/src/devices/cpu/vt50/

'a7b8acbe3eebcf17367baa642375cfa47ae4ea85'/> MAME - Multiple Arcade Machine Emulator
summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/build/file2str.py63
-rw-r--r--src/build/makedep.py314
-rw-r--r--src/build/makelist.py96
-rw-r--r--src/build/png.py2783
-rw-r--r--src/build/png2bdc.py364
-rw-r--r--src/build/verinfo.py170
-rw-r--r--src/devices/bus/a1bus/a1bus.c (renamed from src/emu/bus/a1bus/a1bus.c)0
-rw-r--r--src/devices/bus/a1bus/a1bus.h (renamed from src/emu/bus/a1bus/a1bus.h)0
-rw-r--r--src/devices/bus/a1bus/a1cassette.c (renamed from src/emu/bus/a1bus/a1cassette.c)0
-rw-r--r--src/devices/bus/a1bus/a1cassette.h (renamed from src/emu/bus/a1bus/a1cassette.h)0
-rw-r--r--src/devices/bus/a1bus/a1cffa.c (renamed from src/emu/bus/a1bus/a1cffa.c)0
-rw-r--r--src/devices/bus/a1bus/a1cffa.h (renamed from src/emu/bus/a1bus/a1cffa.h)0
-rw-r--r--src/devices/bus/a2bus/a2alfam2.c (renamed from src/emu/bus/a2bus/a2alfam2.c)0
-rw-r--r--src/devices/bus/a2bus/a2alfam2.h (renamed from src/emu/bus/a2bus/a2alfam2.h)0
-rw-r--r--src/devices/bus/a2bus/a2applicard.c (renamed from src/emu/bus/a2bus/a2applicard.c)0
-rw-r--r--src/devices/bus/a2bus/a2applicard.h (renamed from src/emu/bus/a2bus/a2applicard.h)0
-rw-r--r--src/devices/bus/a2bus/a2arcadebd.c (renamed from src/emu/bus/a2bus/a2arcadebd.c)0
-rw-r--r--src/devices/bus/a2bus/a2arcadebd.h (renamed from src/emu/bus/a2bus/a2arcadebd.h)0
-rw-r--r--src/devices/bus/a2bus/a2bus.c (renamed from src/emu/bus/a2bus/a2bus.c)0
-rw-r--r--src/devices/bus/a2bus/a2bus.h (renamed from src/emu/bus/a2bus/a2bus.h)0
-rw-r--r--src/devices/bus/a2bus/a2cffa.c (renamed from src/emu/bus/a2bus/a2cffa.c)0
-rw-r--r--src/devices/bus/a2bus/a2cffa.h (renamed from src/emu/bus/a2bus/a2cffa.h)0
-rw-r--r--src/devices/bus/a2bus/a2corvus.c (renamed from src/emu/bus/a2bus/a2corvus.c)0
-rw-r--r--src/devices/bus/a2bus/a2corvus.h (renamed from src/emu/bus/a2bus/a2corvus.h)0
-rw-r--r--src/devices/bus/a2bus/a2diskii.c (renamed from src/emu/bus/a2bus/a2diskii.c)0
-rw-r--r--src/devices/bus/a2bus/a2diskii.h (renamed from src/emu/bus/a2bus/a2diskii.h)0
-rw-r--r--src/devices/bus/a2bus/a2diskiing.c (renamed from src/emu/bus/a2bus/a2diskiing.c)0
-rw-r--r--src/devices/bus/a2bus/a2diskiing.h (renamed from src/emu/bus/a2bus/a2diskiing.h)0
-rw-r--r--src/devices/bus/a2bus/a2dx1.c (renamed from src/emu/bus/a2bus/a2dx1.c)0
-rw-r--r--src/devices/bus/a2bus/a2dx1.h (renamed from src/emu/bus/a2bus/a2dx1.h)0
-rw-r--r--src/devices/bus/a2bus/a2eauxslot.c (renamed from src/emu/bus/a2bus/a2eauxslot.c)0
-rw-r--r--src/devices/bus/a2bus/a2eauxslot.h (renamed from src/emu/bus/a2bus/a2eauxslot.h)0
-rw-r--r--src/devices/bus/a2bus/a2echoii.c (renamed from src/emu/bus/a2bus/a2echoii.c)0
-rw-r--r--src/devices/bus/a2bus/a2echoii.h (renamed from src/emu/bus/a2bus/a2echoii.h)0
-rw-r--r--src/devices/bus/a2bus/a2eext80col.c (renamed from src/emu/bus/a2bus/a2eext80col.c)0
-rw-r--r--src/devices/bus/a2bus/a2eext80col.h (renamed from src/emu/bus/a2bus/a2eext80col.h)0
-rw-r--r--src/devices/bus/a2bus/a2eramworks3.c (renamed from src/emu/bus/a2bus/a2eramworks3.c)0
-rw-r--r--src/devices/bus/a2bus/a2eramworks3.h (renamed from src/emu/bus/a2bus/a2eramworks3.h)0
-rw-r--r--src/devices/bus/a2bus/a2estd80col.c (renamed from src/emu/bus/a2bus/a2estd80col.c)0
-rw-r--r--src/devices/bus/a2bus/a2estd80col.h (renamed from src/emu/bus/a2bus/a2estd80col.h)0
-rw-r--r--src/devices/bus/a2bus/a2hsscsi.c (renamed from src/emu/bus/a2bus/a2hsscsi.c)0
-rw-r--r--src/devices/bus/a2bus/a2hsscsi.h (renamed from src/emu/bus/a2bus/a2hsscsi.h)0
-rw-r--r--src/devices/bus/a2bus/a2lang.c (renamed from src/emu/bus/a2bus/a2lang.c)0
-rw-r--r--src/devices/bus/a2bus/a2lang.h (renamed from src/emu/bus/a2bus/a2lang.h)0
-rw-r--r--src/devices/bus/a2bus/a2mcms.c (renamed from src/emu/bus/a2bus/a2mcms.c)0
-rw-r--r--src/devices/bus/a2bus/a2mcms.h (renamed from src/emu/bus/a2bus/a2mcms.h)0
-rw-r--r--src/devices/bus/a2bus/a2memexp.c (renamed from src/emu/bus/a2bus/a2memexp.c)0
-rw-r--r--src/devices/bus/a2bus/a2memexp.h (renamed from src/emu/bus/a2bus/a2memexp.h)0
-rw-r--r--src/devices/bus/a2bus/a2midi.c (renamed from src/emu/bus/a2bus/a2midi.c)0
-rw-r--r--src/devices/bus/a2bus/a2midi.h (renamed from src/emu/bus/a2bus/a2midi.h)0
-rw-r--r--src/devices/bus/a2bus/a2mockingboard.c (renamed from src/emu/bus/a2bus/a2mockingboard.c)0
-rw-r--r--src/devices/bus/a2bus/a2mockingboard.h (renamed from src/emu/bus/a2bus/a2mockingboard.h)0
-rw-r--r--src/devices/bus/a2bus/a2pic.c (renamed from src/emu/bus/a2bus/a2pic.c)0
-rw-r--r--src/devices/bus/a2bus/a2pic.h (renamed from src/emu/bus/a2bus/a2pic.h)0
-rw-r--r--src/devices/bus/a2bus/a2sam.c (renamed from src/emu/bus/a2bus/a2sam.c)0
-rw-r--r--src/devices/bus/a2bus/a2sam.h (renamed from src/emu/bus/a2bus/a2sam.h)0
-rw-r--r--src/devices/bus/a2bus/a2scsi.c (renamed from src/emu/bus/a2bus/a2scsi.c)0
-rw-r--r--src/devices/bus/a2bus/a2scsi.h (renamed from src/emu/bus/a2bus/a2scsi.h)0
-rw-r--r--src/devices/bus/a2bus/a2softcard.c (renamed from src/emu/bus/a2bus/a2softcard.c)0
-rw-r--r--src/devices/bus/a2bus/a2softcard.h (renamed from src/emu/bus/a2bus/a2softcard.h)0
-rw-r--r--src/devices/bus/a2bus/a2ssc.c (renamed from src/emu/bus/a2bus/a2ssc.c)0
-rw-r--r--src/devices/bus/a2bus/a2ssc.h (renamed from src/emu/bus/a2bus/a2ssc.h)0
-rw-r--r--src/devices/bus/a2bus/a2swyft.c (renamed from src/emu/bus/a2bus/a2swyft.c)0
-rw-r--r--src/devices/bus/a2bus/a2swyft.h (renamed from src/emu/bus/a2bus/a2swyft.h)0
-rw-r--r--src/devices/bus/a2bus/a2themill.c (renamed from src/emu/bus/a2bus/a2themill.c)0
-rw-r--r--src/devices/bus/a2bus/a2themill.h (renamed from src/emu/bus/a2bus/a2themill.h)0
-rw-r--r--src/devices/bus/a2bus/a2thunderclock.c (renamed from src/emu/bus/a2bus/a2thunderclock.c)0
-rw-r--r--src/devices/bus/a2bus/a2thunderclock.h (renamed from src/emu/bus/a2bus/a2thunderclock.h)0
-rw-r--r--src/devices/bus/a2bus/a2ultraterm.c (renamed from src/emu/bus/a2bus/a2ultraterm.c)0
-rw-r--r--src/devices/bus/a2bus/a2ultraterm.h (renamed from src/emu/bus/a2bus/a2ultraterm.h)0
-rw-r--r--src/devices/bus/a2bus/a2videoterm.c (renamed from src/emu/bus/a2bus/a2videoterm.c)0
-rw-r--r--src/devices/bus/a2bus/a2videoterm.h (renamed from src/emu/bus/a2bus/a2videoterm.h)0
-rw-r--r--src/devices/bus/a2bus/a2vulcan.c (renamed from src/emu/bus/a2bus/a2vulcan.c)0
-rw-r--r--src/devices/bus/a2bus/a2vulcan.h (renamed from src/emu/bus/a2bus/a2vulcan.h)0
-rw-r--r--src/devices/bus/a2bus/a2zipdrive.c (renamed from src/emu/bus/a2bus/a2zipdrive.c)0
-rw-r--r--src/devices/bus/a2bus/a2zipdrive.h (renamed from src/emu/bus/a2bus/a2zipdrive.h)0
-rw-r--r--src/devices/bus/a2bus/corvfdc01.c (renamed from src/emu/bus/a2bus/corvfdc01.c)0
-rw-r--r--src/devices/bus/a2bus/corvfdc01.h (renamed from src/emu/bus/a2bus/corvfdc01.h)0
-rw-r--r--src/devices/bus/a2bus/corvfdc02.c (renamed from src/emu/bus/a2bus/corvfdc02.c)0
-rw-r--r--src/devices/bus/a2bus/corvfdc02.h (renamed from src/emu/bus/a2bus/corvfdc02.h)0
-rw-r--r--src/devices/bus/a2bus/ezcgi.c (renamed from src/emu/bus/a2bus/ezcgi.c)4
-rw-r--r--src/devices/bus/a2bus/ezcgi.h (renamed from src/emu/bus/a2bus/ezcgi.h)0
-rw-r--r--src/devices/bus/a2bus/laser128.c (renamed from src/emu/bus/a2bus/laser128.c)0
-rw-r--r--src/devices/bus/a2bus/laser128.h (renamed from src/emu/bus/a2bus/laser128.h)0
-rw-r--r--src/devices/bus/a2bus/mouse.c (renamed from src/emu/bus/a2bus/mouse.c)0
-rw-r--r--src/devices/bus/a2bus/mouse.h (renamed from src/emu/bus/a2bus/mouse.h)0
-rw-r--r--src/devices/bus/a2bus/ramcard128k.c (renamed from src/emu/bus/a2bus/ramcard128k.c)0
-rw-r--r--src/devices/bus/a2bus/ramcard128k.h (renamed from src/emu/bus/a2bus/ramcard128k.h)0
-rw-r--r--src/devices/bus/a2bus/ramcard16k.c (renamed from src/emu/bus/a2bus/ramcard16k.c)0
-rw-r--r--src/devices/bus/a2bus/ramcard16k.h (renamed from src/emu/bus/a2bus/ramcard16k.h)0
-rw-r--r--src/devices/bus/a2bus/timemasterho.c (renamed from src/emu/bus/a2bus/timemasterho.c)0
-rw-r--r--src/devices/bus/a2bus/timemasterho.h (renamed from src/emu/bus/a2bus/timemasterho.h)0
-rw-r--r--src/devices/bus/a7800/a78_carts.h (renamed from src/emu/bus/a7800/a78_carts.h)0
-rw-r--r--src/devices/bus/a7800/a78_slot.c (renamed from src/emu/bus/a7800/a78_slot.c)0
-rw-r--r--src/devices/bus/a7800/a78_slot.h (renamed from src/emu/bus/a7800/a78_slot.h)0
-rw-r--r--src/devices/bus/a7800/cpuwiz.c (renamed from src/emu/bus/a7800/cpuwiz.c)0
-rw-r--r--src/devices/bus/a7800/cpuwiz.h (renamed from src/emu/bus/a7800/cpuwiz.h)0
-rw-r--r--src/devices/bus/a7800/hiscore.c (renamed from src/emu/bus/a7800/hiscore.c)0
-rw-r--r--src/devices/bus/a7800/hiscore.h (renamed from src/emu/bus/a7800/hiscore.h)0
-rw-r--r--src/devices/bus/a7800/rom.c (renamed from src/emu/bus/a7800/rom.c)2
-rw-r--r--src/devices/bus/a7800/rom.h (renamed from src/emu/bus/a7800/rom.h)0
-rw-r--r--src/devices/bus/a7800/xboard.c (renamed from src/emu/bus/a7800/xboard.c)0
-rw-r--r--src/devices/bus/a7800/xboard.h (renamed from src/emu/bus/a7800/xboard.h)0
-rw-r--r--src/devices/bus/a800/a800_carts.h (renamed from src/emu/bus/a800/a800_carts.h)0
-rw-r--r--src/devices/bus/a800/a800_slot.c (renamed from src/emu/bus/a800/a800_slot.c)0
-rw-r--r--src/devices/bus/a800/a800_slot.h (renamed from src/emu/bus/a800/a800_slot.h)0
-rw-r--r--src/devices/bus/a800/a8sio.c (renamed from src/emu/bus/a8sio/a8sio.c)0
-rw-r--r--src/devices/bus/a800/a8sio.h (renamed from src/emu/bus/a8sio/a8sio.h)0
-rw-r--r--src/devices/bus/a800/cassette.c (renamed from src/emu/bus/a8sio/cassette.c)0
-rw-r--r--src/devices/bus/a800/cassette.h (renamed from src/emu/bus/a8sio/cassette.h)0
-rw-r--r--src/devices/bus/a800/oss.c (renamed from src/emu/bus/a800/oss.c)0
-rw-r--r--src/devices/bus/a800/oss.h (renamed from src/emu/bus/a800/oss.h)0
-rw-r--r--src/devices/bus/a800/rom.c (renamed from src/emu/bus/a800/rom.c)0
-rw-r--r--src/devices/bus/a800/rom.h (renamed from src/emu/bus/a800/rom.h)0
-rw-r--r--src/devices/bus/a800/sparta.c (renamed from src/emu/bus/a800/sparta.c)0
-rw-r--r--src/devices/bus/a800/sparta.h (renamed from src/emu/bus/a800/sparta.h)0
-rw-r--r--src/devices/bus/abcbus/abc890.c (renamed from src/emu/bus/abcbus/abc890.c)0
-rw-r--r--src/devices/bus/abcbus/abc890.h (renamed from src/emu/bus/abcbus/abc890.h)0
-rw-r--r--src/devices/bus/abcbus/abcbus.c (renamed from src/emu/bus/abcbus/abcbus.c)0
-rw-r--r--src/devices/bus/abcbus/abcbus.h (renamed from src/emu/bus/abcbus/abcbus.h)0
-rw-r--r--src/devices/bus/abcbus/fd2.c (renamed from src/emu/bus/abcbus/fd2.c)0
-rw-r--r--src/devices/bus/abcbus/fd2.h (renamed from src/emu/bus/abcbus/fd2.h)0
-rw-r--r--src/devices/bus/abcbus/hdc.c (renamed from src/emu/bus/abcbus/hdc.c)0
-rw-r--r--src/devices/bus/abcbus/hdc.h (renamed from src/emu/bus/abcbus/hdc.h)0
-rw-r--r--src/devices/bus/abcbus/lux10828.c (renamed from src/emu/bus/abcbus/lux10828.c)0
-rw-r--r--src/devices/bus/abcbus/lux10828.h (renamed from src/emu/bus/abcbus/lux10828.h)0
-rw-r--r--src/devices/bus/abcbus/lux21046.c (renamed from src/emu/bus/abcbus/lux21046.c)0
-rw-r--r--src/devices/bus/abcbus/lux21046.h (renamed from src/emu/bus/abcbus/lux21046.h)0
-rw-r--r--src/devices/bus/abcbus/lux21056.c (renamed from src/emu/bus/abcbus/lux21056.c)0
-rw-r--r--src/devices/bus/abcbus/lux21056.h (renamed from src/emu/bus/abcbus/lux21056.h)0
-rw-r--r--src/devices/bus/abcbus/lux4105.c (renamed from src/emu/bus/abcbus/lux4105.c)0
-rw-r--r--src/devices/bus/abcbus/lux4105.h (renamed from src/emu/bus/abcbus/lux4105.h)0
-rw-r--r--src/devices/bus/abcbus/memcard.c (renamed from src/emu/bus/abcbus/memcard.c)0
-rw-r--r--src/devices/bus/abcbus/memcard.h (renamed from src/emu/bus/abcbus/memcard.h)0
-rw-r--r--src/devices/bus/abcbus/ram.c (renamed from src/emu/bus/abcbus/ram.c)0
-rw-r--r--src/devices/bus/abcbus/ram.h (renamed from src/emu/bus/abcbus/ram.h)0
-rw-r--r--src/devices/bus/abcbus/sio.c (renamed from src/emu/bus/abcbus/sio.c)0
-rw-r--r--src/devices/bus/abcbus/sio.h (renamed from src/emu/bus/abcbus/sio.h)0
-rw-r--r--src/devices/bus/abcbus/slutprov.c (renamed from src/emu/bus/abcbus/slutprov.c)0
-rw-r--r--src/devices/bus/abcbus/slutprov.h (renamed from src/emu/bus/abcbus/slutprov.h)0
-rw-r--r--src/devices/bus/abcbus/turbo.c (renamed from src/emu/bus/abcbus/turbo.c)0
-rw-r--r--src/devices/bus/abcbus/turbo.h (renamed from src/emu/bus/abcbus/turbo.h)0
-rw-r--r--src/devices/bus/abcbus/uni800.c (renamed from src/emu/bus/abcbus/uni800.c)0
-rw-r--r--src/devices/bus/abcbus/uni800.h (renamed from src/emu/bus/abcbus/uni800.h)0
-rw-r--r--src/devices/bus/abckb/abc77.c (renamed from src/emu/bus/abckb/abc77.c)0
-rw-r--r--src/devices/bus/abckb/abc77.h (renamed from src/emu/bus/abckb/abc77.h)0
-rw-r--r--src/devices/bus/abckb/abc800kb.c (renamed from src/emu/bus/abckb/abc800kb.c)0
-rw-r--r--src/devices/bus/abckb/abc800kb.h (renamed from src/emu/bus/abckb/abc800kb.h)0
-rw-r--r--src/devices/bus/abckb/abc99.c (renamed from src/emu/bus/abckb/abc99.c)0
-rw-r--r--src/devices/bus/abckb/abc99.h (renamed from src/emu/bus/abckb/abc99.h)0
-rw-r--r--src/devices/bus/abckb/abckb.c (renamed from src/emu/bus/abckb/abckb.c)0
-rw-r--r--src/devices/bus/abckb/abckb.h (renamed from src/emu/bus/abckb/abckb.h)0
-rw-r--r--src/devices/bus/adam/adamlink.c (renamed from src/emu/bus/adam/adamlink.c)0
-rw-r--r--src/devices/bus/adam/adamlink.h (renamed from src/emu/bus/adam/adamlink.h)0
-rw-r--r--src/devices/bus/adam/exp.c (renamed from src/emu/bus/adam/exp.c)0
-rw-r--r--src/devices/bus/adam/exp.h (renamed from src/emu/bus/adam/exp.h)0
-rw-r--r--src/devices/bus/adam/ide.c (renamed from src/emu/bus/adam/ide.c)0
-rw-r--r--src/devices/bus/adam/ide.h (renamed from src/emu/bus/adam/ide.h)0
-rw-r--r--src/devices/bus/adam/ram.c (renamed from src/emu/bus/adam/ram.c)0
-rw-r--r--src/devices/bus/adam/ram.h (renamed from src/emu/bus/adam/ram.h)0
-rw-r--r--src/devices/bus/adamnet/adamnet.c (renamed from src/emu/bus/adamnet/adamnet.c)0
-rw-r--r--src/devices/bus/adamnet/adamnet.h (renamed from src/emu/bus/adamnet/adamnet.h)0
-rw-r--r--src/devices/bus/adamnet/ddp.c (renamed from src/emu/bus/adamnet/ddp.c)0
-rw-r--r--src/devices/bus/adamnet/ddp.h (renamed from src/emu/bus/adamnet/ddp.h)0
-rw-r--r--src/devices/bus/adamnet/fdc.c (renamed from src/emu/bus/adamnet/fdc.c)0
-rw-r--r--src/devices/bus/adamnet/fdc.h (renamed from src/emu/bus/adamnet/fdc.h)0
-rw-r--r--src/devices/bus/adamnet/kb.c (renamed from src/emu/bus/adamnet/kb.c)0
-rw-r--r--src/devices/bus/adamnet/kb.h (renamed from src/emu/bus/adamnet/kb.h)0
-rw-r--r--src/devices/bus/adamnet/printer.c (renamed from src/emu/bus/adamnet/printer.c)0
-rw-r--r--src/devices/bus/adamnet/printer.h (renamed from src/emu/bus/adamnet/printer.h)0
-rw-r--r--src/devices/bus/adamnet/spi.c (renamed from src/emu/bus/adamnet/spi.c)0
-rw-r--r--src/devices/bus/adamnet/spi.h (renamed from src/emu/bus/adamnet/spi.h)0
-rw-r--r--src/devices/bus/amiga/zorro/a2052.c (renamed from src/emu/bus/amiga/zorro/a2052.c)0
-rw-r--r--src/devices/bus/amiga/zorro/a2052.h (renamed from src/emu/bus/amiga/zorro/a2052.h)0
-rw-r--r--src/devices/bus/amiga/zorro/a2232.c (renamed from src/emu/bus/amiga/zorro/a2232.c)0
-rw-r--r--src/devices/bus/amiga/zorro/a2232.h (renamed from src/emu/bus/amiga/zorro/a2232.h)0
-rw-r--r--src/devices/bus/amiga/zorro/a590.c (renamed from src/emu/bus/amiga/zorro/a590.c)0
-rw-r--r--src/devices/bus/amiga/zorro/a590.h (renamed from src/emu/bus/amiga/zorro/a590.h)0
-rw-r--r--src/devices/bus/amiga/zorro/action_replay.c (renamed from src/emu/bus/amiga/zorro/action_replay.c)0
-rw-r--r--src/devices/bus/amiga/zorro/action_replay.h (renamed from src/emu/bus/amiga/zorro/action_replay.h)0
-rw-r--r--src/devices/bus/amiga/zorro/buddha.c (renamed from src/emu/bus/amiga/zorro/buddha.c)0
-rw-r--r--src/devices/bus/amiga/zorro/buddha.h (renamed from src/emu/bus/amiga/zorro/buddha.h)0
-rw-r--r--src/devices/bus/amiga/zorro/cards.c (renamed from src/emu/bus/amiga/zorro/cards.c)0
-rw-r--r--src/devices/bus/amiga/zorro/cards.h (renamed from src/emu/bus/amiga/zorro/cards.h)0
-rw-r--r--src/devices/bus/amiga/zorro/zorro.c (renamed from src/emu/bus/amiga/zorro/zorro.c)0
-rw-r--r--src/devices/bus/amiga/zorro/zorro.h (renamed from src/emu/bus/amiga/zorro/zorro.h)0
-rw-r--r--src/devices/bus/apf/rom.c (renamed from src/emu/bus/apf/rom.c)0
-rw-r--r--src/devices/bus/apf/rom.h (renamed from src/emu/bus/apf/rom.h)0
-rw-r--r--src/devices/bus/apf/slot.c (renamed from src/emu/bus/apf/slot.c)0
-rw-r--r--src/devices/bus/apf/slot.h (renamed from src/emu/bus/apf/slot.h)0
-rw-r--r--src/devices/bus/apricot/cards.c (renamed from src/emu/bus/apricot/cards.c)0
-rw-r--r--src/devices/bus/apricot/cards.h (renamed from src/emu/bus/apricot/cards.h)0
-rw-r--r--src/devices/bus/apricot/expansion.c (renamed from src/emu/bus/apricot/expansion.c)0
-rw-r--r--src/devices/bus/apricot/expansion.h (renamed from src/emu/bus/apricot/expansion.h)0
-rw-r--r--src/devices/bus/apricot/ram.c (renamed from src/emu/bus/apricot/ram.c)0
-rw-r--r--src/devices/bus/apricot/ram.h (renamed from src/emu/bus/apricot/ram.h)0
-rw-r--r--src/devices/bus/arcadia/rom.c (renamed from src/emu/bus/arcadia/rom.c)0
-rw-r--r--src/devices/bus/arcadia/rom.h (renamed from src/emu/bus/arcadia/rom.h)0
-rw-r--r--src/devices/bus/arcadia/slot.c (renamed from src/emu/bus/arcadia/slot.c)0
-rw-r--r--src/devices/bus/arcadia/slot.h (renamed from src/emu/bus/arcadia/slot.h)0
-rw-r--r--src/devices/bus/astrocde/exp.c (renamed from src/emu/bus/astrocde/exp.c)0
-rw-r--r--src/devices/bus/astrocde/exp.h (renamed from src/emu/bus/astrocde/exp.h)0
-rw-r--r--src/devices/bus/astrocde/ram.c (renamed from src/emu/bus/astrocde/ram.c)0
-rw-r--r--src/devices/bus/astrocde/ram.h (renamed from src/emu/bus/astrocde/ram.h)0
-rw-r--r--src/devices/bus/astrocde/rom.c (renamed from src/emu/bus/astrocde/rom.c)0
-rw-r--r--src/devices/bus/astrocde/rom.h (renamed from src/emu/bus/astrocde/rom.h)0
-rw-r--r--src/devices/bus/astrocde/slot.c (renamed from src/emu/bus/astrocde/slot.c)0
-rw-r--r--src/devices/bus/astrocde/slot.h (renamed from src/emu/bus/astrocde/slot.h)0
-rw-r--r--src/devices/bus/bml3/bml3bus.c (renamed from src/emu/bus/bml3/bml3bus.c)0
-rw-r--r--src/devices/bus/bml3/bml3bus.h (renamed from src/emu/bus/bml3/bml3bus.h)0
-rw-r--r--src/devices/bus/bml3/bml3kanji.c (renamed from src/emu/bus/bml3/bml3kanji.c)0
-rw-r--r--src/devices/bus/bml3/bml3kanji.h (renamed from src/emu/bus/bml3/bml3kanji.h)0
-rw-r--r--src/devices/bus/bml3/bml3mp1802.c (renamed from src/emu/bus/bml3/bml3mp1802.c)0
-rw-r--r--src/devices/bus/bml3/bml3mp1802.h (renamed from src/emu/bus/bml3/bml3mp1802.h)0
-rw-r--r--src/devices/bus/bml3/bml3mp1805.c (renamed from src/emu/bus/bml3/bml3mp1805.c)0
-rw-r--r--src/devices/bus/bml3/bml3mp1805.h (renamed from src/emu/bus/bml3/bml3mp1805.h)0
-rw-r--r--src/devices/bus/bw2/exp.c (renamed from src/emu/bus/bw2/exp.c)0
-rw-r--r--src/devices/bus/bw2/exp.h (renamed from src/emu/bus/bw2/exp.h)0
-rw-r--r--src/devices/bus/bw2/ramcard.c (renamed from src/emu/bus/bw2/ramcard.c)0
-rw-r--r--src/devices/bus/bw2/ramcard.h (renamed from src/emu/bus/bw2/ramcard.h)0
-rw-r--r--src/devices/bus/c64/16kb.c (renamed from src/emu/bus/c64/16kb.c)0
-rw-r--r--src/devices/bus/c64/16kb.h (renamed from src/emu/bus/c64/16kb.h)0
-rw-r--r--src/devices/bus/c64/4dxh.c (renamed from src/emu/bus/c64/4dxh.c)0
-rw-r--r--src/devices/bus/c64/4dxh.h (renamed from src/emu/bus/c64/4dxh.h)0
-rw-r--r--src/devices/bus/c64/4ksa.c (renamed from src/emu/bus/c64/4ksa.c)0
-rw-r--r--src/devices/bus/c64/4ksa.h (renamed from src/emu/bus/c64/4ksa.h)0
-rw-r--r--src/devices/bus/c64/4tba.c (renamed from src/emu/bus/c64/4tba.c)0
-rw-r--r--src/devices/bus/c64/4tba.h (renamed from src/emu/bus/c64/4tba.h)0
-rw-r--r--src/devices/bus/c64/bn1541.c (renamed from src/emu/bus/c64/bn1541.c)0
-rw-r--r--src/devices/bus/c64/bn1541.h (renamed from src/emu/bus/c64/bn1541.h)0
-rw-r--r--src/devices/bus/c64/c128_comal80.c (renamed from src/emu/bus/c64/c128_comal80.c)0
-rw-r--r--src/devices/bus/c64/c128_comal80.h (renamed from src/emu/bus/c64/c128_comal80.h)0
-rw-r--r--src/devices/bus/c64/c128_partner.c250
-rw-r--r--src/devices/bus/c64/c128_partner.h68
-rw-r--r--src/devices/bus/c64/comal80.c (renamed from src/emu/bus/c64/comal80.c)0
-rw-r--r--src/devices/bus/c64/comal80.h (renamed from src/emu/bus/c64/comal80.h)0
-rw-r--r--src/devices/bus/c64/cpm.c (renamed from src/emu/bus/c64/cpm.c)0
-rw-r--r--src/devices/bus/c64/cpm.h (renamed from src/emu/bus/c64/cpm.h)0
-rw-r--r--src/devices/bus/c64/currah_speech.c (renamed from src/emu/bus/c64/currah_speech.c)0
-rw-r--r--src/devices/bus/c64/currah_speech.h (renamed from src/emu/bus/c64/currah_speech.h)0
-rw-r--r--src/devices/bus/c64/dela_ep256.c (renamed from src/emu/bus/c64/dela_ep256.c)0
-rw-r--r--src/devices/bus/c64/dela_ep256.h (renamed from src/emu/bus/c64/dela_ep256.h)0
-rw-r--r--src/devices/bus/c64/dela_ep64.c (renamed from src/emu/bus/c64/dela_ep64.c)0
-rw-r--r--src/devices/bus/c64/dela_ep64.h (renamed from src/emu/bus/c64/dela_ep64.h)0
-rw-r--r--src/devices/bus/c64/dela_ep7x8.c (renamed from src/emu/bus/c64/dela_ep7x8.c)0
-rw-r--r--src/devices/bus/c64/dela_ep7x8.h (renamed from src/emu/bus/c64/dela_ep7x8.h)0
-rw-r--r--src/devices/bus/c64/dinamic.c (renamed from src/emu/bus/c64/dinamic.c)0
-rw-r--r--src/devices/bus/c64/dinamic.h (renamed from src/emu/bus/c64/dinamic.h)0
-rw-r--r--src/devices/bus/c64/dqbb.c (renamed from src/emu/bus/c64/dqbb.c)0
-rw-r--r--src/devices/bus/c64/dqbb.h (renamed from src/emu/bus/c64/dqbb.h)0
-rw-r--r--src/devices/bus/c64/easy_calc_result.c (renamed from src/emu/bus/c64/easy_calc_result.c)0
-rw-r--r--src/devices/bus/c64/easy_calc_result.h (renamed from src/emu/bus/c64/easy_calc_result.h)0
-rw-r--r--src/devices/bus/c64/easyflash.c (renamed from src/emu/bus/c64/easyflash.c)0
-rw-r--r--src/devices/bus/c64/easyflash.h (renamed from src/emu/bus/c64/easyflash.h)0
-rw-r--r--src/devices/bus/c64/epyx_fast_load.c (renamed from src/emu/bus/c64/epyx_fast_load.c)0
-rw-r--r--src/devices/bus/c64/epyx_fast_load.h (renamed from src/emu/bus/c64/epyx_fast_load.h)0
-rw-r--r--src/devices/bus/c64/exos.c (renamed from src/emu/bus/c64/exos.c)0
-rw-r--r--src/devices/bus/c64/exos.h (renamed from src/emu/bus/c64/exos.h)0
-rw-r--r--src/devices/bus/c64/exp.c (renamed from src/emu/bus/c64/exp.c)2
-rw-r--r--src/devices/bus/c64/exp.h (renamed from src/emu/bus/c64/exp.h)0
-rw-r--r--src/devices/bus/c64/fcc.c (renamed from src/emu/bus/c64/fcc.c)0
-rw-r--r--src/devices/bus/c64/fcc.h (renamed from src/emu/bus/c64/fcc.h)0
-rw-r--r--src/devices/bus/c64/final.c (renamed from src/emu/bus/c64/final.c)0
-rw-r--r--src/devices/bus/c64/final.h (renamed from src/emu/bus/c64/final.h)0
-rw-r--r--src/devices/bus/c64/final3.c (renamed from src/emu/bus/c64/final3.c)0
-rw-r--r--src/devices/bus/c64/final3.h (renamed from src/emu/bus/c64/final3.h)0
-rw-r--r--src/devices/bus/c64/fun_play.c (renamed from src/emu/bus/c64/fun_play.c)0
-rw-r--r--src/devices/bus/c64/fun_play.h (renamed from src/emu/bus/c64/fun_play.h)0
-rw-r--r--src/devices/bus/c64/geocable.c (renamed from src/emu/bus/c64/geocable.c)0
-rw-r--r--src/devices/bus/c64/geocable.h (renamed from src/emu/bus/c64/geocable.h)0
-rw-r--r--src/devices/bus/c64/georam.c (renamed from src/emu/bus/c64/georam.c)0
-rw-r--r--src/devices/bus/c64/georam.h (renamed from src/emu/bus/c64/georam.h)0
-rw-r--r--src/devices/bus/c64/ide64.c (renamed from src/emu/bus/c64/ide64.c)0
-rw-r--r--src/devices/bus/c64/ide64.h (renamed from src/emu/bus/c64/ide64.h)0
-rw-r--r--src/devices/bus/c64/ieee488.c (renamed from src/emu/bus/c64/ieee488.c)0
-rw-r--r--src/devices/bus/c64/ieee488.h (renamed from src/emu/bus/c64/ieee488.h)0
-rw-r--r--src/devices/bus/c64/kingsoft.c (renamed from src/emu/bus/c64/kingsoft.c)0
-rw-r--r--src/devices/bus/c64/kingsoft.h (renamed from src/emu/bus/c64/kingsoft.h)0
-rw-r--r--src/devices/bus/c64/mach5.c (renamed from src/emu/bus/c64/mach5.c)0
-rw-r--r--src/devices/bus/c64/mach5.h (renamed from src/emu/bus/c64/mach5.h)0
-rw-r--r--src/devices/bus/c64/magic_desk.c (renamed from src/emu/bus/c64/magic_desk.c)0
-rw-r--r--src/devices/bus/c64/magic_desk.h (renamed from src/emu/bus/c64/magic_desk.h)0
-rw-r--r--src/devices/bus/c64/magic_formel.c (renamed from src/emu/bus/c64/magic_formel.c)0
-rw-r--r--src/devices/bus/c64/magic_formel.h (renamed from src/emu/bus/c64/magic_formel.h)0
-rw-r--r--src/devices/bus/c64/magic_voice.c (renamed from src/emu/bus/c64/magic_voice.c)0
-rw-r--r--src/devices/bus/c64/magic_voice.h (renamed from src/emu/bus/c64/magic_voice.h)0
-rw-r--r--src/devices/bus/c64/midi_maplin.c (renamed from src/emu/bus/c64/midi_maplin.c)0
-rw-r--r--src/devices/bus/c64/midi_maplin.h (renamed from src/emu/bus/c64/midi_maplin.h)0
-rw-r--r--src/devices/bus/c64/midi_namesoft.c (renamed from src/emu/bus/c64/midi_namesoft.c)0
-rw-r--r--src/devices/bus/c64/midi_namesoft.h (renamed from src/emu/bus/c64/midi_namesoft.h)0
-rw-r--r--src/devices/bus/c64/midi_passport.c (renamed from src/emu/bus/c64/midi_passport.c)0
-rw-r--r--src/devices/bus/c64/midi_passport.h (renamed from src/emu/bus/c64/midi_passport.h)0
-rw-r--r--src/devices/bus/c64/midi_sci.c (renamed from src/emu/bus/c64/midi_sci.c)0
-rw-r--r--src/devices/bus/c64/midi_sci.h (renamed from src/emu/bus/c64/midi_sci.h)0
-rw-r--r--src/devices/bus/c64/midi_siel.c (renamed from src/emu/bus/c64/midi_siel.c)0
-rw-r--r--src/devices/bus/c64/midi_siel.h (renamed from src/emu/bus/c64/midi_siel.h)0
-rw-r--r--src/devices/bus/c64/mikro_assembler.c (renamed from src/emu/bus/c64/mikro_assembler.c)0
-rw-r--r--src/devices/bus/c64/mikro_assembler.h (renamed from src/emu/bus/c64/mikro_assembler.h)0
-rw-r--r--src/devices/bus/c64/multiscreen.c (renamed from src/emu/bus/c64/multiscreen.c)0
-rw-r--r--src/devices/bus/c64/multiscreen.h (renamed from src/emu/bus/c64/multiscreen.h)0
-rw-r--r--src/devices/bus/c64/music64.c (renamed from src/emu/bus/c64/music64.c)0
-rw-r--r--src/devices/bus/c64/music64.h (renamed from src/emu/bus/c64/music64.h)0
-rw-r--r--src/devices/bus/c64/neoram.c (renamed from src/emu/bus/c64/neoram.c)0
-rw-r--r--src/devices/bus/c64/neoram.h (renamed from src/emu/bus/c64/neoram.h)0
-rw-r--r--src/devices/bus/c64/ocean.c (renamed from src/emu/bus/c64/ocean.c)0
-rw-r--r--src/devices/bus/c64/ocean.h (renamed from src/emu/bus/c64/ocean.h)0
-rw-r--r--src/devices/bus/c64/pagefox.c (renamed from src/emu/bus/c64/pagefox.c)0
-rw-r--r--src/devices/bus/c64/pagefox.h (renamed from src/emu/bus/c64/pagefox.h)0
-rw-r--r--src/devices/bus/c64/partner.c (renamed from src/emu/bus/c64/partner.c)0
-rw-r--r--src/devices/bus/c64/partner.h (renamed from src/emu/bus/c64/partner.h)0
-rw-r--r--src/devices/bus/c64/prophet64.c (renamed from src/emu/bus/c64/prophet64.c)0
-rw-r--r--src/devices/bus/c64/prophet64.h (renamed from src/emu/bus/c64/prophet64.h)0
-rw-r--r--src/devices/bus/c64/ps64.c (renamed from src/emu/bus/c64/ps64.c)0
-rw-r--r--src/devices/bus/c64/ps64.h (renamed from src/emu/bus/c64/ps64.h)0
-rw-r--r--src/devices/bus/c64/reu.c (renamed from src/emu/bus/c64/reu.c)0
-rw-r--r--src/devices/bus/c64/reu.h (renamed from src/emu/bus/c64/reu.h)0
-rw-r--r--src/devices/bus/c64/rex.c (renamed from src/emu/bus/c64/rex.c)0
-rw-r--r--src/devices/bus/c64/rex.h (renamed from src/emu/bus/c64/rex.h)0
-rw-r--r--src/devices/bus/c64/rex_ep256.c (renamed from src/emu/bus/c64/rex_ep256.c)0
-rw-r--r--src/devices/bus/c64/rex_ep256.h (renamed from src/emu/bus/c64/rex_ep256.h)0
-rw-r--r--src/devices/bus/c64/ross.c (renamed from src/emu/bus/c64/ross.c)0
-rw-r--r--src/devices/bus/c64/ross.h (renamed from src/emu/bus/c64/ross.h)0
-rw-r--r--src/devices/bus/c64/sfx_sound_expander.c (renamed from src/emu/bus/c64/sfx_sound_expander.c)0
-rw-r--r--src/devices/bus/c64/sfx_sound_expander.h (renamed from src/emu/bus/c64/sfx_sound_expander.h)0
-rw-r--r--src/devices/bus/c64/silverrock.c (renamed from src/emu/bus/c64/silverrock.c)0
-rw-r--r--src/devices/bus/c64/silverrock.h (renamed from src/emu/bus/c64/silverrock.h)0
-rw-r--r--src/devices/bus/c64/simons_basic.c (renamed from src/emu/bus/c64/simons_basic.c)0
-rw-r--r--src/devices/bus/c64/simons_basic.h (renamed from src/emu/bus/c64/simons_basic.h)0
-rw-r--r--src/devices/bus/c64/stardos.c (renamed from src/emu/bus/c64/stardos.c)0
-rw-r--r--src/devices/bus/c64/stardos.h (renamed from src/emu/bus/c64/stardos.h)0
-rw-r--r--src/devices/bus/c64/std.c (renamed from src/emu/bus/c64/std.c)0
-rw-r--r--src/devices/bus/c64/std.h (renamed from src/emu/bus/c64/std.h)0
-rw-r--r--src/devices/bus/c64/structured_basic.c (renamed from src/emu/bus/c64/structured_basic.c)0
-rw-r--r--src/devices/bus/c64/structured_basic.h (renamed from src/emu/bus/c64/structured_basic.h)0
-rw-r--r--src/devices/bus/c64/super_explode.c (renamed from src/emu/bus/c64/super_explode.c)0
-rw-r--r--src/devices/bus/c64/super_explode.h (renamed from src/emu/bus/c64/super_explode.h)0
-rw-r--r--src/devices/bus/c64/super_games.c (renamed from src/emu/bus/c64/super_games.c)0
-rw-r--r--src/devices/bus/c64/super_games.h (renamed from src/emu/bus/c64/super_games.h)0
-rw-r--r--src/devices/bus/c64/supercpu.c (renamed from src/emu/bus/c64/supercpu.c)0
-rw-r--r--src/devices/bus/c64/supercpu.h (renamed from src/emu/bus/c64/supercpu.h)0
-rw-r--r--src/devices/bus/c64/sw8k.c (renamed from src/emu/bus/c64/sw8k.c)0
-rw-r--r--src/devices/bus/c64/sw8k.h (renamed from src/emu/bus/c64/sw8k.h)0
-rw-r--r--src/devices/bus/c64/swiftlink.c (renamed from src/emu/bus/c64/swiftlink.c)0
-rw-r--r--src/devices/bus/c64/swiftlink.h (renamed from src/emu/bus/c64/swiftlink.h)0
-rw-r--r--src/devices/bus/c64/system3.c (renamed from src/emu/bus/c64/system3.c)0
-rw-r--r--src/devices/bus/c64/system3.h (renamed from src/emu/bus/c64/system3.h)0
-rw-r--r--src/devices/bus/c64/tdos.c (renamed from src/emu/bus/c64/tdos.c)0
-rw-r--r--src/devices/bus/c64/tdos.h (renamed from src/emu/bus/c64/tdos.h)0
-rw-r--r--src/devices/bus/c64/turbo232.c (renamed from src/emu/bus/c64/turbo232.c)0
-rw-r--r--src/devices/bus/c64/turbo232.h (renamed from src/emu/bus/c64/turbo232.h)0
-rw-r--r--src/devices/bus/c64/user.c (renamed from src/emu/bus/c64/user.c)0
-rw-r--r--src/devices/bus/c64/user.h (renamed from src/emu/bus/c64/user.h)0
-rw-r--r--src/devices/bus/c64/vizastar.c (renamed from src/emu/bus/c64/vizastar.c)0
-rw-r--r--src/devices/bus/c64/vizastar.h (renamed from src/emu/bus/c64/vizastar.h)0
-rw-r--r--src/devices/bus/c64/vw64.c (renamed from src/emu/bus/c64/vw64.c)0
-rw-r--r--src/devices/bus/c64/vw64.h (renamed from src/emu/bus/c64/vw64.h)0
-rw-r--r--src/devices/bus/c64/warp_speed.c (renamed from src/emu/bus/c64/warp_speed.c)0
-rw-r--r--src/devices/bus/c64/warp_speed.h (renamed from src/emu/bus/c64/warp_speed.h)0
-rw-r--r--src/devices/bus/c64/westermann.c (renamed from src/emu/bus/c64/westermann.c)0
-rw-r--r--src/devices/bus/c64/westermann.h (renamed from src/emu/bus/c64/westermann.h)0
-rw-r--r--src/devices/bus/c64/xl80.c (renamed from src/emu/bus/c64/xl80.c)0
-rw-r--r--src/devices/bus/c64/xl80.h (renamed from src/emu/bus/c64/xl80.h)0
-rw-r--r--src/devices/bus/c64/zaxxon.c (renamed from src/emu/bus/c64/zaxxon.c)0
-rw-r--r--src/devices/bus/c64/zaxxon.h (renamed from src/emu/bus/c64/zaxxon.h)0
-rw-r--r--src/devices/bus/cbm2/24k.c (renamed from src/emu/bus/cbm2/24k.c)0
-rw-r--r--src/devices/bus/cbm2/24k.h (renamed from src/emu/bus/cbm2/24k.h)0
-rw-r--r--src/devices/bus/cbm2/exp.c (renamed from src/emu/bus/cbm2/exp.c)0
-rw-r--r--src/devices/bus/cbm2/exp.h (renamed from src/emu/bus/cbm2/exp.h)0
-rw-r--r--src/devices/bus/cbm2/hrg.c (renamed from src/emu/bus/cbm2/hrg.c)0
-rw-r--r--src/devices/bus/cbm2/hrg.h (renamed from src/emu/bus/cbm2/hrg.h)0
-rw-r--r--src/devices/bus/cbm2/std.c (renamed from src/emu/bus/cbm2/std.c)0
-rw-r--r--src/devices/bus/cbm2/std.h (renamed from src/emu/bus/cbm2/std.h)0
-rw-r--r--src/devices/bus/cbm2/user.c (renamed from src/emu/bus/cbm2/user.c)0
-rw-r--r--src/devices/bus/cbm2/user.h (renamed from src/emu/bus/cbm2/user.h)0
-rw-r--r--src/devices/bus/cbmiec/c1526.c269
-rw-r--r--src/devices/bus/cbmiec/c1526.h90
-rw-r--r--src/devices/bus/cbmiec/c1541.c (renamed from src/emu/bus/cbmiec/c1541.c)0
-rw-r--r--src/devices/bus/cbmiec/c1541.h (renamed from src/emu/bus/cbmiec/c1541.h)0
-rw-r--r--src/devices/bus/cbmiec/c1571.c (renamed from src/emu/bus/cbmiec/c1571.c)0
-rw-r--r--src/devices/bus/cbmiec/c1571.h (renamed from src/emu/bus/cbmiec/c1571.h)0
-rw-r--r--src/devices/bus/cbmiec/c1581.c (renamed from src/emu/bus/cbmiec/c1581.c)0
-rw-r--r--src/devices/bus/cbmiec/c1581.h (renamed from src/emu/bus/cbmiec/c1581.h)0
-rw-r--r--src/devices/bus/cbmiec/c64_nl10.c (renamed from src/emu/bus/cbmiec/c64_nl10.c)0
-rw-r--r--src/devices/bus/cbmiec/c64_nl10.h (renamed from src/emu/bus/cbmiec/c64_nl10.h)0
-rw-r--r--src/devices/bus/cbmiec/cbmiec.c (renamed from src/emu/bus/cbmiec/cbmiec.c)7
-rw-r--r--src/devices/bus/cbmiec/cbmiec.h (renamed from src/emu/bus/cbmiec/cbmiec.h)0
-rw-r--r--src/devices/bus/cbmiec/cmdhd.c (renamed from src/emu/bus/cbmiec/cmdhd.c)0
-rw-r--r--src/devices/bus/cbmiec/cmdhd.h (renamed from src/emu/bus/cbmiec/cmdhd.h)0
-rw-r--r--src/devices/bus/cbmiec/diag264_lb_iec.c (renamed from src/emu/bus/cbmiec/diag264_lb_iec.c)0
-rw-r--r--src/devices/bus/cbmiec/diag264_lb_iec.h (renamed from src/emu/bus/cbmiec/diag264_lb_iec.h)0
-rw-r--r--src/devices/bus/cbmiec/fd2000.c (renamed from src/emu/bus/cbmiec/fd2000.c)0
-rw-r--r--src/devices/bus/cbmiec/fd2000.h (renamed from src/emu/bus/cbmiec/fd2000.h)0
-rw-r--r--src/devices/bus/cbmiec/interpod.c (renamed from src/emu/bus/cbmiec/interpod.c)0
-rw-r--r--src/devices/bus/cbmiec/interpod.h (renamed from src/emu/bus/cbmiec/interpod.h)0
-rw-r--r--src/devices/bus/cbmiec/serialbox.c (renamed from src/emu/bus/cbmiec/serialbox.c)0
-rw-r--r--src/devices/bus/cbmiec/serialbox.h (renamed from src/emu/bus/cbmiec/serialbox.h)0
-rw-r--r--src/devices/bus/cbmiec/vic1515.c164
-rw-r--r--src/devices/bus/cbmiec/vic1515.h55
-rw-r--r--src/devices/bus/cbmiec/vic1520.c192
-rw-r--r--src/devices/bus/cbmiec/vic1520.h55
-rw-r--r--src/devices/bus/centronics/comxpl80.c (renamed from src/emu/bus/centronics/comxpl80.c)0
-rw-r--r--src/devices/bus/centronics/comxpl80.h (renamed from src/emu/bus/centronics/comxpl80.h)0
-rw-r--r--src/devices/bus/centronics/covox.c (renamed from src/emu/bus/centronics/covox.c)0
-rw-r--r--src/devices/bus/centronics/covox.h (renamed from src/emu/bus/centronics/covox.h)0
-rw-r--r--src/devices/bus/centronics/ctronics.c (renamed from src/emu/bus/centronics/ctronics.c)2
-rw-r--r--src/devices/bus/centronics/ctronics.h (renamed from src/emu/bus/centronics/ctronics.h)0
-rw-r--r--src/devices/bus/centronics/digiblst.c (renamed from src/emu/bus/centronics/digiblst.c)0
-rw-r--r--src/devices/bus/centronics/digiblst.h (renamed from src/emu/bus/centronics/digiblst.h)0
-rw-r--r--src/devices/bus/centronics/dsjoy.c (renamed from src/emu/bus/centronics/dsjoy.c)0
-rw-r--r--src/devices/bus/centronics/dsjoy.h (renamed from src/emu/bus/centronics/dsjoy.h)0
-rw-r--r--src/devices/bus/centronics/epson_ex800.c (renamed from src/emu/bus/centronics/epson_ex800.c)0
-rw-r--r--src/devices/bus/centronics/epson_ex800.h (renamed from src/emu/bus/centronics/epson_ex800.h)0
-rw-r--r--src/devices/bus/centronics/epson_lx800.c (renamed from src/emu/bus/centronics/epson_lx800.c)0
-rw-r--r--src/devices/bus/centronics/epson_lx800.h (renamed from src/emu/bus/centronics/epson_lx800.h)0
-rw-r--r--src/devices/bus/centronics/epson_lx810l.c (renamed from src/emu/bus/centronics/epson_lx810l.c)94
-rw-r--r--src/devices/bus/centronics/epson_lx810l.h (renamed from src/emu/bus/centronics/epson_lx810l.h)21
-rw-r--r--src/devices/bus/centronics/nec_p72.c94
-rw-r--r--src/devices/bus/centronics/nec_p72.h45
-rw-r--r--src/devices/bus/centronics/printer.c (renamed from src/emu/bus/centronics/printer.c)1
-rw-r--r--src/devices/bus/centronics/printer.h (renamed from src/emu/bus/centronics/printer.h)0
-rw-r--r--src/devices/bus/cgenie/expansion/carts.c (renamed from src/emu/bus/cgenie/expansion/carts.c)0
-rw-r--r--src/devices/bus/cgenie/expansion/carts.h (renamed from src/emu/bus/cgenie/expansion/carts.h)0
-rw-r--r--src/devices/bus/cgenie/expansion/expansion.c (renamed from src/emu/bus/cgenie/expansion/expansion.c)0
-rw-r--r--src/devices/bus/cgenie/expansion/expansion.h (renamed from src/emu/bus/cgenie/expansion/expansion.h)0
-rw-r--r--src/devices/bus/cgenie/expansion/floppy.c (renamed from src/emu/bus/cgenie/expansion/floppy.c)0
-rw-r--r--src/devices/bus/cgenie/expansion/floppy.h (renamed from src/emu/bus/cgenie/expansion/floppy.h)0
-rw-r--r--src/devices/bus/cgenie/parallel/carts.c (renamed from src/emu/bus/cgenie/parallel/carts.c)0
-rw-r--r--src/devices/bus/cgenie/parallel/carts.h (renamed from src/emu/bus/cgenie/parallel/carts.h)0
-rw-r--r--src/devices/bus/cgenie/parallel/joystick.c (renamed from src/emu/bus/cgenie/parallel/joystick.c)0
-rw-r--r--src/devices/bus/cgenie/parallel/joystick.h (renamed from src/emu/bus/cgenie/parallel/joystick.h)0
-rw-r--r--src/devices/bus/cgenie/parallel/parallel.c (renamed from src/emu/bus/cgenie/parallel/parallel.c)0
-rw-r--r--src/devices/bus/cgenie/parallel/parallel.h (renamed from src/emu/bus/cgenie/parallel/parallel.h)0
-rw-r--r--src/devices/bus/cgenie/parallel/printer.c (renamed from src/emu/bus/cgenie/parallel/printer.c)0
-rw-r--r--src/devices/bus/cgenie/parallel/printer.h (renamed from src/emu/bus/cgenie/parallel/printer.h)0
-rw-r--r--src/devices/bus/chanf/rom.c (renamed from src/emu/bus/chanf/rom.c)0
-rw-r--r--src/devices/bus/chanf/rom.h (renamed from src/emu/bus/chanf/rom.h)0
-rw-r--r--src/devices/bus/chanf/slot.c (renamed from src/emu/bus/chanf/slot.c)0
-rw-r--r--src/devices/bus/chanf/slot.h (renamed from src/emu/bus/chanf/slot.h)0
-rw-r--r--src/devices/bus/coco/coco_232.c (renamed from src/emu/bus/coco/coco_232.c)0
-rw-r--r--src/devices/bus/coco/coco_232.h (renamed from src/emu/bus/coco/coco_232.h)0
-rw-r--r--src/devices/bus/coco/coco_dwsock.c (renamed from src/emu/bus/coco/coco_dwsock.c)0
-rw-r--r--src/devices/bus/coco/coco_dwsock.h (renamed from src/emu/bus/coco/coco_dwsock.h)0
-rw-r--r--src/devices/bus/coco/coco_fdc.c (renamed from src/emu/bus/coco/coco_fdc.c)0
-rw-r--r--src/devices/bus/coco/coco_fdc.h (renamed from src/emu/bus/coco/coco_fdc.h)0
-rw-r--r--src/devices/bus/coco/coco_multi.c (renamed from src/emu/bus/coco/coco_multi.c)0
-rw-r--r--src/devices/bus/coco/coco_multi.h (renamed from src/emu/bus/coco/coco_multi.h)0
-rw-r--r--src/devices/bus/coco/coco_orch90.c (renamed from src/emu/bus/coco/coco_orch90.c)0
-rw-r--r--src/devices/bus/coco/coco_orch90.h (renamed from src/emu/bus/coco/coco_orch90.h)0
-rw-r--r--src/devices/bus/coco/coco_pak.c (renamed from src/emu/bus/coco/coco_pak.c)0
-rw-r--r--src/devices/bus/coco/coco_pak.h (renamed from src/emu/bus/coco/coco_pak.h)0
-rw-r--r--src/devices/bus/coco/cococart.c (renamed from src/emu/bus/coco/cococart.c)0
-rw-r--r--src/devices/bus/coco/cococart.h (renamed from src/emu/bus/coco/cococart.h)0
-rw-r--r--src/devices/bus/coleco/ctrl.c (renamed from src/emu/bus/coleco/ctrl.c)0
-rw-r--r--src/devices/bus/coleco/ctrl.h (renamed from src/emu/bus/coleco/ctrl.h)0
-rw-r--r--src/devices/bus/coleco/exp.c (renamed from src/emu/bus/coleco/exp.c)11
-rw-r--r--src/devices/bus/coleco/exp.h (renamed from src/emu/bus/coleco/exp.h)0
-rw-r--r--src/devices/bus/coleco/hand.c (renamed from src/emu/bus/coleco/hand.c)0
-rw-r--r--src/devices/bus/coleco/hand.h (renamed from src/emu/bus/coleco/hand.h)0
-rw-r--r--src/devices/bus/coleco/sac.c (renamed from src/emu/bus/coleco/sac.c)0
-rw-r--r--src/devices/bus/coleco/sac.h (renamed from src/emu/bus/coleco/sac.h)0
-rw-r--r--src/devices/bus/coleco/std.c (renamed from src/emu/bus/coleco/std.c)0
-rw-r--r--src/devices/bus/coleco/std.h (renamed from src/emu/bus/coleco/std.h)0
-rw-r--r--src/devices/bus/coleco/xin1.c71
-rw-r--r--src/devices/bus/coleco/xin1.h48
-rw-r--r--src/devices/bus/compucolor/floppy.c (renamed from src/emu/bus/compucolor/floppy.c)0
-rw-r--r--src/devices/bus/compucolor/floppy.h (renamed from src/emu/bus/compucolor/floppy.h)0
-rw-r--r--src/devices/bus/comx35/clm.c (renamed from src/emu/bus/comx35/clm.c)0
-rw-r--r--src/devices/bus/comx35/clm.h (renamed from src/emu/bus/comx35/clm.h)0
-rw-r--r--src/devices/bus/comx35/eprom.c (renamed from src/emu/bus/comx35/eprom.c)0
-rw-r--r--src/devices/bus/comx35/eprom.h (renamed from src/emu/bus/comx35/eprom.h)0
-rw-r--r--src/devices/bus/comx35/exp.c (renamed from src/emu/bus/comx35/exp.c)0
-rw-r--r--src/devices/bus/comx35/exp.h (renamed from src/emu/bus/comx35/exp.h)0
-rw-r--r--src/devices/bus/comx35/expbox.c (renamed from src/emu/bus/comx35/expbox.c)0
-rw-r--r--src/devices/bus/comx35/expbox.h (renamed from src/emu/bus/comx35/expbox.h)0
-rw-r--r--src/devices/bus/comx35/fdc.c (renamed from src/emu/bus/comx35/fdc.c)0
-rw-r--r--src/devices/bus/comx35/fdc.h (renamed from src/emu/bus/comx35/fdc.h)0
-rw-r--r--src/devices/bus/comx35/joycard.c (renamed from src/emu/bus/comx35/joycard.c)0
-rw-r--r--src/devices/bus/comx35/joycard.h (renamed from src/emu/bus/comx35/joycard.h)0
-rw-r--r--src/devices/bus/comx35/printer.c (renamed from src/emu/bus/comx35/printer.c)0
-rw-r--r--src/devices/bus/comx35/printer.h (renamed from src/emu/bus/comx35/printer.h)0
-rw-r--r--src/devices/bus/comx35/ram.c (renamed from src/emu/bus/comx35/ram.c)0
-rw-r--r--src/devices/bus/comx35/ram.h (renamed from src/emu/bus/comx35/ram.h)0
-rw-r--r--src/devices/bus/comx35/thermal.c (renamed from src/emu/bus/comx35/thermal.c)0
-rw-r--r--src/devices/bus/comx35/thermal.h (renamed from src/emu/bus/comx35/thermal.h)0
-rw-r--r--src/devices/bus/cpc/amdrum.c (renamed from src/emu/bus/cpc/amdrum.c)0
-rw-r--r--src/devices/bus/cpc/amdrum.h (renamed from src/emu/bus/cpc/amdrum.h)0
-rw-r--r--src/devices/bus/cpc/brunword4.c (renamed from src/emu/bus/cpc/brunword4.c)0
-rw-r--r--src/devices/bus/cpc/brunword4.h (renamed from src/emu/bus/cpc/brunword4.h)0
-rw-r--r--src/devices/bus/cpc/cpc_pds.c (renamed from src/emu/bus/cpc/cpc_pds.c)0
-rw-r--r--src/devices/bus/cpc/cpc_pds.h (renamed from src/emu/bus/cpc/cpc_pds.h)0
-rw-r--r--src/devices/bus/cpc/cpc_rom.c (renamed from src/emu/bus/cpc/cpc_rom.c)0
-rw-r--r--src/devices/bus/cpc/cpc_rom.h (renamed from src/emu/bus/cpc/cpc_rom.h)0
-rw-r--r--src/devices/bus/cpc/cpc_rs232.c (renamed from src/emu/bus/cpc/cpc_rs232.c)0
-rw-r--r--src/devices/bus/cpc/cpc_rs232.h (renamed from src/emu/bus/cpc/cpc_rs232.h)0
-rw-r--r--src/devices/bus/cpc/cpc_ssa1.c (renamed from src/emu/bus/cpc/cpc_ssa1.c)0
-rw-r--r--src/devices/bus/cpc/cpc_ssa1.h (renamed from src/emu/bus/cpc/cpc_ssa1.h)0
-rw-r--r--src/devices/bus/cpc/cpcexp.c (renamed from src/emu/bus/cpc/cpcexp.c)0
-rw-r--r--src/devices/bus/cpc/cpcexp.h (renamed from src/emu/bus/cpc/cpcexp.h)10
-rw-r--r--src/devices/bus/cpc/ddi1.c (renamed from src/emu/bus/cpc/ddi1.c)24
-rw-r--r--src/devices/bus/cpc/ddi1.h (renamed from src/emu/bus/cpc/ddi1.h)4
-rw-r--r--src/devices/bus/cpc/hd20.c (renamed from src/emu/bus/cpc/hd20.c)0
-rw-r--r--src/devices/bus/cpc/hd20.h (renamed from src/emu/bus/cpc/hd20.h)0
-rw-r--r--src/devices/bus/cpc/magicsound.c189
-rw-r--r--src/devices/bus/cpc/magicsound.h91
-rw-r--r--src/devices/bus/cpc/mface2.c (renamed from src/emu/bus/cpc/mface2.c)0
-rw-r--r--src/devices/bus/cpc/mface2.h (renamed from src/emu/bus/cpc/mface2.h)0
-rw-r--r--src/devices/bus/cpc/playcity.c (renamed from src/emu/bus/cpc/playcity.c)0
-rw-r--r--src/devices/bus/cpc/playcity.h (renamed from src/emu/bus/cpc/playcity.h)0
-rw-r--r--src/devices/bus/cpc/smartwatch.c (renamed from src/emu/bus/cpc/smartwatch.c)0
-rw-r--r--src/devices/bus/cpc/smartwatch.h (renamed from src/emu/bus/cpc/smartwatch.h)0
-rw-r--r--src/devices/bus/cpc/symbfac2.c (renamed from src/emu/bus/cpc/symbfac2.c)0
-rw-r--r--src/devices/bus/cpc/symbfac2.h (renamed from src/emu/bus/cpc/symbfac2.h)0
-rw-r--r--src/devices/bus/crvision/rom.c (renamed from src/emu/bus/crvision/rom.c)0
-rw-r--r--src/devices/bus/crvision/rom.h (renamed from src/emu/bus/crvision/rom.h)0
-rw-r--r--src/devices/bus/crvision/slot.c (renamed from src/emu/bus/crvision/slot.c)0
-rw-r--r--src/devices/bus/crvision/slot.h (renamed from src/emu/bus/crvision/slot.h)0
-rw-r--r--src/devices/bus/dmv/dmvbus.c (renamed from src/emu/bus/dmv/dmvbus.c)0
-rw-r--r--src/devices/bus/dmv/dmvbus.h (renamed from src/emu/bus/dmv/dmvbus.h)0
-rw-r--r--src/devices/bus/dmv/k210.c (renamed from src/emu/bus/dmv/k210.c)0
-rw-r--r--src/devices/bus/dmv/k210.h (renamed from src/emu/bus/dmv/k210.h)0
-rw-r--r--src/devices/bus/dmv/k220.c (renamed from src/emu/bus/dmv/k220.c)13
-rw-r--r--src/devices/bus/dmv/k220.h (renamed from src/emu/bus/dmv/k220.h)0
-rw-r--r--src/devices/bus/dmv/k230.c (renamed from src/emu/bus/dmv/k230.c)0
-rw-r--r--src/devices/bus/dmv/k230.h (renamed from src/emu/bus/dmv/k230.h)0
-rw-r--r--src/devices/bus/dmv/k233.c (renamed from src/emu/bus/dmv/k233.c)0
-rw-r--r--src/devices/bus/dmv/k233.h (renamed from src/emu/bus/dmv/k233.h)0
-rw-r--r--src/devices/bus/dmv/k801.c (renamed from src/emu/bus/dmv/k801.c)0
-rw-r--r--src/devices/bus/dmv/k801.h (renamed from src/emu/bus/dmv/k801.h)0
-rw-r--r--src/devices/bus/dmv/k803.c (renamed from src/emu/bus/dmv/k803.c)0
-rw-r--r--src/devices/bus/dmv/k803.h (renamed from src/emu/bus/dmv/k803.h)0
-rw-r--r--src/devices/bus/dmv/k806.c (renamed from src/emu/bus/dmv/k806.c)0
-rw-r--r--src/devices/bus/dmv/k806.h (renamed from src/emu/bus/dmv/k806.h)0
-rw-r--r--src/devices/bus/dmv/ram.c (renamed from src/emu/bus/dmv/ram.c)0
-rw-r--r--src/devices/bus/dmv/ram.h (renamed from src/emu/bus/dmv/ram.h)0
-rw-r--r--src/devices/bus/ecbbus/ecbbus.c (renamed from src/emu/bus/ecbbus/ecbbus.c)0
-rw-r--r--src/devices/bus/ecbbus/ecbbus.h (renamed from src/emu/bus/ecbbus/ecbbus.h)0
-rw-r--r--src/devices/bus/ecbbus/grip.c (renamed from src/emu/bus/ecbbus/grip.c)0
-rw-r--r--src/devices/bus/ecbbus/grip.h (renamed from src/emu/bus/ecbbus/grip.h)0
-rw-r--r--src/devices/bus/econet/e01.c (renamed from src/emu/bus/econet/e01.c)0
-rw-r--r--src/devices/bus/econet/e01.h (renamed from src/emu/bus/econet/e01.h)0
-rw-r--r--src/devices/bus/econet/econet.c (renamed from src/emu/bus/econet/econet.c)0
-rw-r--r--src/devices/bus/econet/econet.h (renamed from src/emu/bus/econet/econet.h)0
-rw-r--r--src/devices/bus/ep64/exdos.c (renamed from src/emu/bus/ep64/exdos.c)0
-rw-r--r--src/devices/bus/ep64/exdos.h (renamed from src/emu/bus/ep64/exdos.h)0
-rw-r--r--src/devices/bus/ep64/exp.c (renamed from src/emu/bus/ep64/exp.c)0
-rw-r--r--src/devices/bus/ep64/exp.h (renamed from src/emu/bus/ep64/exp.h)0
-rw-r--r--src/devices/bus/epson_sio/epson_sio.c (renamed from src/emu/bus/epson_sio/epson_sio.c)0
-rw-r--r--src/devices/bus/epson_sio/epson_sio.h (renamed from src/emu/bus/epson_sio/epson_sio.h)0
-rw-r--r--src/devices/bus/epson_sio/pf10.c (renamed from src/emu/bus/epson_sio/pf10.c)0
-rw-r--r--src/devices/bus/epson_sio/pf10.h (renamed from src/emu/bus/epson_sio/pf10.h)0
-rw-r--r--src/devices/bus/epson_sio/tf20.c (renamed from src/emu/bus/epson_sio/tf20.c)0
-rw-r--r--src/devices/bus/epson_sio/tf20.h (renamed from src/emu/bus/epson_sio/tf20.h)0
-rw-r--r--src/devices/bus/gameboy/gb_slot.c (renamed from src/emu/bus/gameboy/gb_slot.c)0
-rw-r--r--src/devices/bus/gameboy/gb_slot.h (renamed from src/emu/bus/gameboy/gb_slot.h)0
-rw-r--r--src/devices/bus/gameboy/mbc.c (renamed from src/emu/bus/gameboy/mbc.c)0
-rw-r--r--src/devices/bus/gameboy/mbc.h (renamed from src/emu/bus/gameboy/mbc.h)0
-rw-r--r--src/devices/bus/gameboy/rom.c (renamed from src/emu/bus/gameboy/rom.c)0
-rw-r--r--src/devices/bus/gameboy/rom.h (renamed from src/emu/bus/gameboy/rom.h)0
-rw-r--r--src/devices/bus/gamegear/ggext.c (renamed from src/emu/bus/gamegear/ggext.c)0
-rw-r--r--src/devices/bus/gamegear/ggext.h (renamed from src/emu/bus/gamegear/ggext.h)0
-rw-r--r--src/devices/bus/gamegear/smsctrladp.c (renamed from src/emu/bus/gamegear/smsctrladp.c)0
-rw-r--r--src/devices/bus/gamegear/smsctrladp.h (renamed from src/emu/bus/gamegear/smsctrladp.h)0
-rw-r--r--src/devices/bus/gba/gba_slot.c (renamed from src/emu/bus/gba/gba_slot.c)0
-rw-r--r--src/devices/bus/gba/gba_slot.h (renamed from src/emu/bus/gba/gba_slot.h)0
-rw-r--r--src/devices/bus/gba/rom.c (renamed from src/emu/bus/gba/rom.c)0
-rw-r--r--src/devices/bus/gba/rom.h (renamed from src/emu/bus/gba/rom.h)0
-rw-r--r--src/devices/bus/generic/carts.c (renamed from src/emu/bus/generic/carts.c)0
-rw-r--r--src/devices/bus/generic/carts.h (renamed from src/emu/bus/generic/carts.h)0
-rw-r--r--src/devices/bus/generic/ram.c (renamed from src/emu/bus/generic/ram.c)0
-rw-r--r--src/devices/bus/generic/ram.h (renamed from src/emu/bus/generic/ram.h)0
-rw-r--r--src/devices/bus/generic/rom.c (renamed from src/emu/bus/generic/rom.c)0
-rw-r--r--src/devices/bus/generic/rom.h (renamed from src/emu/bus/generic/rom.h)0
-rw-r--r--src/devices/bus/generic/slot.c (renamed from src/emu/bus/generic/slot.c)0
-rw-r--r--src/devices/bus/generic/slot.h (renamed from src/emu/bus/generic/slot.h)0
-rw-r--r--src/devices/bus/ieee488/c2031.c (renamed from src/emu/bus/ieee488/c2031.c)0
-rw-r--r--src/devices/bus/ieee488/c2031.h (renamed from src/emu/bus/ieee488/c2031.h)0
-rw-r--r--src/devices/bus/ieee488/c2040.c (renamed from src/emu/bus/ieee488/c2040.c)0
-rw-r--r--src/devices/bus/ieee488/c2040.h (renamed from src/emu/bus/ieee488/c2040.h)0
-rw-r--r--src/devices/bus/ieee488/c2040fdc.c (renamed from src/emu/bus/ieee488/c2040fdc.c)0
-rw-r--r--src/devices/bus/ieee488/c2040fdc.h (renamed from src/emu/bus/ieee488/c2040fdc.h)0
-rw-r--r--src/devices/bus/ieee488/c8050.c (renamed from src/emu/bus/ieee488/c8050.c)0
-rw-r--r--src/devices/bus/ieee488/c8050.h (renamed from src/emu/bus/ieee488/c8050.h)0
-rw-r--r--src/devices/bus/ieee488/c8050fdc.c (renamed from src/emu/bus/ieee488/c8050fdc.c)0
-rw-r--r--src/devices/bus/ieee488/c8050fdc.h (renamed from src/emu/bus/ieee488/c8050fdc.h)0
-rw-r--r--src/devices/bus/ieee488/c8280.c (renamed from src/emu/bus/ieee488/c8280.c)0
-rw-r--r--src/devices/bus/ieee488/c8280.h (renamed from src/emu/bus/ieee488/c8280.h)0
-rw-r--r--src/devices/bus/ieee488/d9060.c (renamed from src/emu/bus/ieee488/d9060.c)0
-rw-r--r--src/devices/bus/ieee488/d9060.h (renamed from src/emu/bus/ieee488/d9060.h)0
-rw-r--r--src/devices/bus/ieee488/hardbox.c (renamed from src/emu/bus/ieee488/hardbox.c)4
-rw-r--r--src/devices/bus/ieee488/hardbox.h (renamed from src/emu/bus/ieee488/hardbox.h)0
-rw-r--r--src/devices/bus/ieee488/ieee488.c (renamed from src/emu/bus/ieee488/ieee488.c)2
-rw-r--r--src/devices/bus/ieee488/ieee488.h (renamed from src/emu/bus/ieee488/ieee488.h)0
-rw-r--r--src/devices/bus/ieee488/shark.c (renamed from src/emu/bus/ieee488/shark.c)0
-rw-r--r--src/devices/bus/ieee488/shark.h (renamed from src/emu/bus/ieee488/shark.h)0
-rw-r--r--src/devices/bus/ieee488/softbox.c (renamed from src/emu/bus/ieee488/softbox.c)2
-rw-r--r--src/devices/bus/ieee488/softbox.h (renamed from src/emu/bus/ieee488/softbox.h)0
-rw-r--r--src/devices/bus/imi7000/imi5000h.c (renamed from src/emu/bus/imi7000/imi5000h.c)0
-rw-r--r--src/devices/bus/imi7000/imi5000h.h (renamed from src/emu/bus/imi7000/imi5000h.h)0
-rw-r--r--src/devices/bus/imi7000/imi7000.c (renamed from src/emu/bus/imi7000/imi7000.c)0
-rw-r--r--src/devices/bus/imi7000/imi7000.h (renamed from src/emu/bus/imi7000/imi7000.h)0
-rw-r--r--src/devices/bus/intv/ecs.c (renamed from src/emu/bus/intv/ecs.c)0
-rw-r--r--src/devices/bus/intv/ecs.h (renamed from src/emu/bus/intv/ecs.h)0
-rw-r--r--src/devices/bus/intv/rom.c (renamed from src/emu/bus/intv/rom.c)0
-rw-r--r--src/devices/bus/intv/rom.h (renamed from src/emu/bus/intv/rom.h)0
-rw-r--r--src/devices/bus/intv/slot.c (renamed from src/emu/bus/intv/slot.c)0
-rw-r--r--src/devices/bus/intv/slot.h (renamed from src/emu/bus/intv/slot.h)0
-rw-r--r--src/devices/bus/intv/voice.c (renamed from src/emu/bus/intv/voice.c)0
-rw-r--r--src/devices/bus/intv/voice.h (renamed from src/emu/bus/intv/voice.h)0
-rw-r--r--src/devices/bus/iq151/disc2.c (renamed from src/emu/bus/iq151/disc2.c)0
-rw-r--r--src/devices/bus/iq151/disc2.h (renamed from src/emu/bus/iq151/disc2.h)0
-rw-r--r--src/devices/bus/iq151/grafik.c (renamed from src/emu/bus/iq151/grafik.c)0
-rw-r--r--src/devices/bus/iq151/grafik.h (renamed from src/emu/bus/iq151/grafik.h)0
-rw-r--r--src/devices/bus/iq151/iq151.c (renamed from src/emu/bus/iq151/iq151.c)0
-rw-r--r--src/devices/bus/iq151/iq151.h (renamed from src/emu/bus/iq151/iq151.h)0
-rw-r--r--src/devices/bus/iq151/minigraf.c (renamed from src/emu/bus/iq151/minigraf.c)0
-rw-r--r--src/devices/bus/iq151/minigraf.h (renamed from src/emu/bus/iq151/minigraf.h)0
-rw-r--r--src/devices/bus/iq151/ms151a.c (renamed from src/emu/bus/iq151/ms151a.c)0
-rw-r--r--src/devices/bus/iq151/ms151a.h (renamed from src/emu/bus/iq151/ms151a.h)0
-rw-r--r--src/devices/bus/iq151/rom.c (renamed from src/emu/bus/iq151/rom.c)0
-rw-r--r--src/devices/bus/iq151/rom.h (renamed from src/emu/bus/iq151/rom.h)0
-rw-r--r--src/devices/bus/iq151/staper.c (renamed from src/emu/bus/iq151/staper.c)0
-rw-r--r--src/devices/bus/iq151/staper.h (renamed from src/emu/bus/iq151/staper.h)0
-rw-r--r--src/devices/bus/iq151/video32.c (renamed from src/emu/bus/iq151/video32.c)0
-rw-r--r--src/devices/bus/iq151/video32.h (renamed from src/emu/bus/iq151/video32.h)0
-rw-r--r--src/devices/bus/iq151/video64.c (renamed from src/emu/bus/iq151/video64.c)0
-rw-r--r--src/devices/bus/iq151/video64.h (renamed from src/emu/bus/iq151/video64.h)0
-rw-r--r--src/devices/bus/isa/3c503.c (renamed from src/emu/bus/isa/3c503.c)0
-rw-r--r--src/devices/bus/isa/3c503.h (renamed from src/emu/bus/isa/3c503.h)0
-rw-r--r--src/devices/bus/isa/3c505.c (renamed from src/emu/bus/isa/3c505.c)0
-rw-r--r--src/devices/bus/isa/3c505.h (renamed from src/emu/bus/isa/3c505.h)0
-rw-r--r--src/devices/bus/isa/adlib.c (renamed from src/emu/bus/isa/adlib.c)0
-rw-r--r--src/devices/bus/isa/adlib.h (renamed from src/emu/bus/isa/adlib.h)0
-rw-r--r--src/devices/bus/isa/aga.c (renamed from src/emu/bus/isa/aga.c)0
-rw-r--r--src/devices/bus/isa/aga.h (renamed from src/emu/bus/isa/aga.h)0
-rw-r--r--src/devices/bus/isa/aha1542.c (renamed from src/emu/bus/isa/aha1542.c)0
-rw-r--r--src/devices/bus/isa/aha1542.h (renamed from src/emu/bus/isa/aha1542.h)0
-rw-r--r--src/devices/bus/isa/cga.c (renamed from src/emu/bus/isa/cga.c)0
-rw-r--r--src/devices/bus/isa/cga.h (renamed from src/emu/bus/isa/cga.h)0
-rw-r--r--src/devices/bus/isa/com.c (renamed from src/emu/bus/isa/com.c)0
-rw-r--r--src/devices/bus/isa/com.h (renamed from src/emu/bus/isa/com.h)0
-rw-r--r--src/devices/bus/isa/dectalk.c (renamed from src/emu/bus/isa/dectalk.c)0
-rw-r--r--src/devices/bus/isa/dectalk.h (renamed from src/emu/bus/isa/dectalk.h)0
-rw-r--r--src/devices/bus/isa/ega.c (renamed from src/emu/bus/isa/ega.c)0
-rw-r--r--src/devices/bus/isa/ega.h (renamed from src/emu/bus/isa/ega.h)0
-rw-r--r--src/devices/bus/isa/fdc.c (renamed from src/emu/bus/isa/fdc.c)0
-rw-r--r--src/devices/bus/isa/fdc.h (renamed from src/emu/bus/isa/fdc.h)0
-rw-r--r--src/devices/bus/isa/finalchs.c (renamed from src/emu/bus/isa/finalchs.c)0
-rw-r--r--src/devices/bus/isa/finalchs.h (renamed from src/emu/bus/isa/finalchs.h)0
-rw-r--r--src/devices/bus/isa/gblaster.c (renamed from src/emu/bus/isa/gblaster.c)12
-rw-r--r--src/devices/bus/isa/gblaster.h (renamed from src/emu/bus/isa/gblaster.h)0
-rw-r--r--src/devices/bus/isa/gus.c (renamed from src/emu/bus/isa/gus.c)2
-rw-r--r--src/devices/bus/isa/gus.h (renamed from src/emu/bus/isa/gus.h)0
-rw-r--r--src/devices/bus/isa/hdc.c (renamed from src/emu/bus/isa/hdc.c)0
-rw-r--r--src/devices/bus/isa/hdc.h (renamed from src/emu/bus/isa/hdc.h)0
-rw-r--r--src/devices/bus/isa/ibm_mfc.c (renamed from src/emu/bus/isa/ibm_mfc.c)0
-rw-r--r--src/devices/bus/isa/ibm_mfc.h (renamed from src/emu/bus/isa/ibm_mfc.h)0
-rw-r--r--src/devices/bus/isa/ide.c (renamed from src/emu/bus/isa/ide.c)0
-rw-r--r--src/devices/bus/isa/ide.h (renamed from src/emu/bus/isa/ide.h)0
-rw-r--r--src/devices/bus/isa/isa.c (renamed from src/emu/bus/isa/isa.c)0
-rw-r--r--src/devices/bus/isa/isa.h (renamed from src/emu/bus/isa/isa.h)0
-rw-r--r--src/devices/bus/isa/isa_cards.c (renamed from src/emu/bus/isa/isa_cards.c)2
-rw-r--r--src/devices/bus/isa/isa_cards.h (renamed from src/emu/bus/isa/isa_cards.h)1
-rw-r--r--src/devices/bus/isa/lpt.c (renamed from src/emu/bus/isa/lpt.c)0
-rw-r--r--src/devices/bus/isa/lpt.h (renamed from src/emu/bus/isa/lpt.h)0
-rw-r--r--src/devices/bus/isa/mach32.c (renamed from src/emu/bus/isa/mach32.c)0
-rw-r--r--src/devices/bus/isa/mach32.h (renamed from src/emu/bus/isa/mach32.h)0
-rw-r--r--src/devices/bus/isa/mc1502_fdc.c (renamed from src/emu/bus/isa/mc1502_fdc.c)0
-rw-r--r--src/devices/bus/isa/mc1502_fdc.h (renamed from src/emu/bus/isa/mc1502_fdc.h)0
-rw-r--r--src/devices/bus/isa/mc1502_rom.c (renamed from src/emu/bus/isa/mc1502_rom.c)0
-rw-r--r--src/devices/bus/isa/mc1502_rom.h (renamed from src/emu/bus/isa/mc1502_rom.h)0
-rw-r--r--src/devices/bus/isa/mda.c (renamed from src/emu/bus/isa/mda.c)0
-rw-r--r--src/devices/bus/isa/mda.h (renamed from src/emu/bus/isa/mda.h)0
-rw-r--r--src/devices/bus/isa/mpu401.c (renamed from src/emu/bus/isa/mpu401.c)0
-rw-r--r--src/devices/bus/isa/mpu401.h (renamed from src/emu/bus/isa/mpu401.h)0
-rw-r--r--src/devices/bus/isa/mufdc.c (renamed from src/emu/bus/isa/mufdc.c)0
-rw-r--r--src/devices/bus/isa/mufdc.h (renamed from src/emu/bus/isa/mufdc.h)0
-rw-r--r--src/devices/bus/isa/ne1000.c (renamed from src/emu/bus/isa/ne1000.c)0
-rw-r--r--src/devices/bus/isa/ne1000.h (renamed from src/emu/bus/isa/ne1000.h)0
-rw-r--r--src/devices/bus/isa/ne2000.c (renamed from src/emu/bus/isa/ne2000.c)0
-rw-r--r--src/devices/bus/isa/ne2000.h (renamed from src/emu/bus/isa/ne2000.h)0
-rw-r--r--src/devices/bus/isa/num9rev.c (renamed from src/emu/bus/isa/num9rev.c)0
-rw-r--r--src/devices/bus/isa/num9rev.h (renamed from src/emu/bus/isa/num9rev.h)0
-rw-r--r--src/devices/bus/isa/omti8621.c (renamed from src/emu/bus/isa/omti8621.c)0
-rw-r--r--src/devices/bus/isa/omti8621.h (renamed from src/emu/bus/isa/omti8621.h)0
-rw-r--r--src/devices/bus/isa/p1_fdc.c (renamed from src/emu/bus/isa/p1_fdc.c)0
-rw-r--r--src/devices/bus/isa/p1_fdc.h (renamed from src/emu/bus/isa/p1_fdc.h)0
-rw-r--r--src/devices/bus/isa/p1_hdc.c (renamed from src/emu/bus/isa/p1_hdc.c)0
-rw-r--r--src/devices/bus/isa/p1_hdc.h (renamed from src/emu/bus/isa/p1_hdc.h)0
-rw-r--r--src/devices/bus/isa/p1_rom.c (renamed from src/emu/bus/isa/p1_rom.c)0
-rw-r--r--src/devices/bus/isa/p1_rom.h (renamed from src/emu/bus/isa/p1_rom.h)0
-rw-r--r--src/devices/bus/isa/pc1640_iga.c (renamed from src/emu/bus/isa/pc1640_iga.c)0
-rw-r--r--src/devices/bus/isa/pc1640_iga.h (renamed from src/emu/bus/isa/pc1640_iga.h)0
-rw-r--r--src/devices/bus/isa/pds.c (renamed from src/emu/bus/isa/pds.c)0
-rw-r--r--src/devices/bus/isa/pds.h (renamed from src/emu/bus/isa/pds.h)0
-rw-r--r--src/devices/bus/isa/pgc.c365
-rw-r--r--src/devices/bus/isa/pgc.h69
-rw-r--r--src/devices/bus/isa/s3virge.c (renamed from src/emu/bus/isa/s3virge.c)0
-rw-r--r--src/devices/bus/isa/s3virge.h (renamed from src/emu/bus/isa/s3virge.h)0
-rw-r--r--src/devices/bus/isa/sb16.c (renamed from src/emu/bus/isa/sb16.c)0
-rw-r--r--src/devices/bus/isa/sb16.h (renamed from src/emu/bus/isa/sb16.h)0
-rw-r--r--src/devices/bus/isa/sblaster.c (renamed from src/emu/bus/isa/sblaster.c)4
-rw-r--r--src/devices/bus/isa/sblaster.h (renamed from src/emu/bus/isa/sblaster.h)0
-rw-r--r--src/devices/bus/isa/sc499.c (renamed from src/emu/bus/isa/sc499.c)0
-rw-r--r--src/devices/bus/isa/sc499.h (renamed from src/emu/bus/isa/sc499.h)0
-rw-r--r--src/devices/bus/isa/side116.c (renamed from src/emu/bus/isa/side116.c)0
-rw-r--r--src/devices/bus/isa/side116.h (renamed from src/emu/bus/isa/side116.h)0
-rw-r--r--src/devices/bus/isa/ssi2001.c (renamed from src/emu/bus/isa/ssi2001.c)0
-rw-r--r--src/devices/bus/isa/ssi2001.h (renamed from src/emu/bus/isa/ssi2001.h)0
-rw-r--r--src/devices/bus/isa/stereo_fx.c (renamed from src/emu/bus/isa/stereo_fx.c)0
-rw-r--r--src/devices/bus/isa/stereo_fx.h (renamed from src/emu/bus/isa/stereo_fx.h)0
-rw-r--r--src/devices/bus/isa/svga_cirrus.c (renamed from src/emu/bus/isa/svga_cirrus.c)0
-rw-r--r--src/devices/bus/isa/svga_cirrus.h (renamed from src/emu/bus/isa/svga_cirrus.h)0
-rw-r--r--src/devices/bus/isa/svga_s3.c (renamed from src/emu/bus/isa/svga_s3.c)0
-rw-r--r--src/devices/bus/isa/svga_s3.h (renamed from src/emu/bus/isa/svga_s3.h)0
-rw-r--r--src/devices/bus/isa/svga_trident.c (renamed from src/emu/bus/isa/svga_trident.c)0
-rw-r--r--src/devices/bus/isa/svga_trident.h (renamed from src/emu/bus/isa/svga_trident.h)0
-rw-r--r--src/devices/bus/isa/svga_tseng.c (renamed from src/emu/bus/isa/svga_tseng.c)0
-rw-r--r--src/devices/bus/isa/svga_tseng.h (renamed from src/emu/bus/isa/svga_tseng.h)0
-rw-r--r--src/devices/bus/isa/trident.c (renamed from src/emu/bus/isa/trident.c)0
-rw-r--r--src/devices/bus/isa/trident.h (renamed from src/emu/bus/isa/trident.h)0
-rw-r--r--src/devices/bus/isa/vga.c (renamed from src/emu/bus/isa/vga.c)0
-rw-r--r--src/devices/bus/isa/vga.h (renamed from src/emu/bus/isa/vga.h)0
-rw-r--r--src/devices/bus/isa/vga_ati.c (renamed from src/emu/bus/isa/vga_ati.c)0
-rw-r--r--src/devices/bus/isa/vga_ati.h (renamed from src/emu/bus/isa/vga_ati.h)0
-rw-r--r--src/devices/bus/isa/wd1002a_wx1.c (renamed from src/emu/bus/isa/wd1002a_wx1.c)0
-rw-r--r--src/devices/bus/isa/wd1002a_wx1.h (renamed from src/emu/bus/isa/wd1002a_wx1.h)0
-rw-r--r--src/devices/bus/isa/wdxt_gen.c (renamed from src/emu/bus/isa/wdxt_gen.c)0
-rw-r--r--src/devices/bus/isa/wdxt_gen.h (renamed from src/emu/bus/isa/wdxt_gen.h)0
-rw-r--r--src/devices/bus/isa/xsu_cards.c (renamed from src/emu/bus/isa/xsu_cards.c)0
-rw-r--r--src/devices/bus/isa/xsu_cards.h (renamed from src/emu/bus/isa/xsu_cards.h)0
-rw-r--r--src/devices/bus/isa/xtide.c (renamed from src/emu/bus/isa/xtide.c)0
-rw-r--r--src/devices/bus/isa/xtide.h (renamed from src/emu/bus/isa/xtide.h)0
-rw-r--r--src/devices/bus/isbx/compis_fdc.c (renamed from src/emu/bus/isbx/compis_fdc.c)0
-rw-r--r--src/devices/bus/isbx/compis_fdc.h (renamed from src/emu/bus/isbx/compis_fdc.h)0
-rw-r--r--src/devices/bus/isbx/isbc_218a.c (renamed from src/emu/bus/isbx/isbc_218a.c)0
-rw-r--r--src/devices/bus/isbx/isbc_218a.h (renamed from src/emu/bus/isbx/isbc_218a.h)0
-rw-r--r--src/devices/bus/isbx/isbx.c (renamed from src/emu/bus/isbx/isbx.c)0
-rw-r--r--src/devices/bus/isbx/isbx.h (renamed from src/emu/bus/isbx/isbx.h)0
-rw-r--r--src/devices/bus/kc/d002.c (renamed from src/emu/bus/kc/d002.c)0
-rw-r--r--src/devices/bus/kc/d002.h (renamed from src/emu/bus/kc/d002.h)0
-rw-r--r--src/devices/bus/kc/d004.c (renamed from src/emu/bus/kc/d004.c)0
-rw-r--r--src/devices/bus/kc/d004.h (renamed from src/emu/bus/kc/d004.h)0
-rw-r--r--src/devices/bus/kc/kc.c (renamed from src/emu/bus/kc/kc.c)0
-rw-r--r--src/devices/bus/kc/kc.h (renamed from src/emu/bus/kc/kc.h)0
-rw-r--r--src/devices/bus/kc/ram.c (renamed from src/emu/bus/kc/ram.c)0
-rw-r--r--src/devices/bus/kc/ram.h (renamed from src/emu/bus/kc/ram.h)0
-rw-r--r--src/devices/bus/kc/rom.c (renamed from src/emu/bus/kc/rom.c)0
-rw-r--r--src/devices/bus/kc/rom.h (renamed from src/emu/bus/kc/rom.h)0
-rw-r--r--src/devices/bus/lpci/cirrus.c (renamed from src/emu/bus/lpci/cirrus.c)0
-rw-r--r--src/devices/bus/lpci/cirrus.h (renamed from src/emu/bus/lpci/cirrus.h)0
-rw-r--r--src/devices/bus/lpci/i82371ab.c (renamed from src/emu/bus/lpci/i82371ab.c)0
-rw-r--r--src/devices/bus/lpci/i82371ab.h (renamed from src/emu/bus/lpci/i82371ab.h)0
-rw-r--r--src/devices/bus/lpci/i82371sb.c (renamed from src/emu/bus/lpci/i82371sb.c)0
-rw-r--r--src/devices/bus/lpci/i82371sb.h (renamed from src/emu/bus/lpci/i82371sb.h)0
-rw-r--r--src/devices/bus/lpci/i82439tx.c (renamed from src/emu/bus/lpci/i82439tx.c)0
-rw-r--r--src/devices/bus/lpci/i82439tx.h (renamed from src/emu/bus/lpci/i82439tx.h)0
-rw-r--r--src/devices/bus/lpci/mpc105.c (renamed from src/emu/bus/lpci/mpc105.c)0
-rw-r--r--src/devices/bus/lpci/mpc105.h (renamed from src/emu/bus/lpci/mpc105.h)0
-rw-r--r--src/devices/bus/lpci/northbridge.c (renamed from src/emu/bus/lpci/northbridge.c)0
-rw-r--r--src/devices/bus/lpci/northbridge.h (renamed from src/emu/bus/lpci/northbridge.h)0
-rw-r--r--src/devices/bus/lpci/pci.c (renamed from src/emu/bus/lpci/pci.c)0
-rw-r--r--src/devices/bus/lpci/pci.h (renamed from src/emu/bus/lpci/pci.h)0
-rw-r--r--src/devices/bus/lpci/southbridge.c (renamed from src/emu/bus/lpci/southbridge.c)0
-rw-r--r--src/devices/bus/lpci/southbridge.h (renamed from src/emu/bus/lpci/southbridge.h)0
-rw-r--r--src/devices/bus/lpci/vt82c505.c96
-rw-r--r--src/devices/bus/lpci/vt82c505.h38
-rw-r--r--src/devices/bus/macpds/macpds.c (renamed from src/emu/bus/macpds/macpds.c)0
-rw-r--r--src/devices/bus/macpds/macpds.h (renamed from src/emu/bus/macpds/macpds.h)0
-rw-r--r--src/devices/bus/macpds/pds_tpdfpd.c (renamed from src/emu/bus/macpds/pds_tpdfpd.c)0
-rw-r--r--src/devices/bus/macpds/pds_tpdfpd.h (renamed from src/emu/bus/macpds/pds_tpdfpd.h)0
-rw-r--r--src/devices/bus/megadrive/eeprom.c (renamed from src/emu/bus/megadrive/eeprom.c)0
-rw-r--r--src/devices/bus/megadrive/eeprom.h (renamed from src/emu/bus/megadrive/eeprom.h)0
-rw-r--r--src/devices/bus/megadrive/ggenie.c (renamed from src/emu/bus/megadrive/ggenie.c)0
-rw-r--r--src/devices/bus/megadrive/ggenie.h (renamed from src/emu/bus/megadrive/ggenie.h)0
-rw-r--r--src/devices/bus/megadrive/jcart.c (renamed from src/emu/bus/megadrive/jcart.c)0
-rw-r--r--src/devices/bus/megadrive/jcart.h (renamed from src/emu/bus/megadrive/jcart.h)0
-rw-r--r--src/devices/bus/megadrive/md_carts.c (renamed from src/emu/bus/megadrive/md_carts.c)0
-rw-r--r--src/devices/bus/megadrive/md_carts.h (renamed from src/emu/bus/megadrive/md_carts.h)0
-rw-r--r--src/devices/bus/megadrive/md_slot.c (renamed from src/emu/bus/megadrive/md_slot.c)0
-rw-r--r--src/devices/bus/megadrive/md_slot.h (renamed from src/emu/bus/megadrive/md_slot.h)0
-rw-r--r--src/devices/bus/megadrive/rom.c (renamed from src/emu/bus/megadrive/rom.c)0
-rw-r--r--src/devices/bus/megadrive/rom.h (renamed from src/emu/bus/megadrive/rom.h)0
-rw-r--r--src/devices/bus/megadrive/sk.c (renamed from src/emu/bus/megadrive/sk.c)0
-rw-r--r--src/devices/bus/megadrive/sk.h (renamed from src/emu/bus/megadrive/sk.h)0
-rw-r--r--src/devices/bus/megadrive/stm95.c (renamed from src/emu/bus/megadrive/stm95.c)0
-rw-r--r--src/devices/bus/megadrive/stm95.h (renamed from src/emu/bus/megadrive/stm95.h)0
-rw-r--r--src/devices/bus/megadrive/svp.c (renamed from src/emu/bus/megadrive/svp.c)0
-rw-r--r--src/devices/bus/megadrive/svp.h (renamed from src/emu/bus/megadrive/svp.h)0
-rw-r--r--src/devices/bus/midi/midi.c (renamed from src/emu/bus/midi/midi.c)0
-rw-r--r--src/devices/bus/midi/midi.h (renamed from src/emu/bus/midi/midi.h)0
-rw-r--r--src/devices/bus/midi/midiinport.c (renamed from src/emu/bus/midi/midiinport.c)0
-rw-r--r--src/devices/bus/midi/midiinport.h (renamed from src/emu/bus/midi/midiinport.h)0
-rw-r--r--src/devices/bus/midi/midioutport.c (renamed from src/emu/bus/midi/midioutport.c)0
-rw-r--r--src/devices/bus/midi/midioutport.h (renamed from src/emu/bus/midi/midioutport.h)0
-rw-r--r--src/devices/bus/msx_cart/arc.c (renamed from src/emu/bus/msx_cart/arc.c)0
-rw-r--r--src/devices/bus/msx_cart/arc.h (renamed from src/emu/bus/msx_cart/arc.h)0
-rw-r--r--src/devices/bus/msx_cart/ascii.c (renamed from src/emu/bus/msx_cart/ascii.c)92
-rw-r--r--src/devices/bus/msx_cart/ascii.h (renamed from src/emu/bus/msx_cart/ascii.h)24
-rw-r--r--src/devices/bus/msx_cart/bm_012.c (renamed from src/emu/bus/msx_cart/bm_012.c)0
-rw-r--r--src/devices/bus/msx_cart/bm_012.h (renamed from src/emu/bus/msx_cart/bm_012.h)0
-rw-r--r--src/devices/bus/msx_cart/cartridge.c (renamed from src/emu/bus/msx_cart/cartridge.c)3
-rw-r--r--src/devices/bus/msx_cart/cartridge.h (renamed from src/emu/bus/msx_cart/cartridge.h)0
-rw-r--r--src/devices/bus/msx_cart/crossblaim.c (renamed from src/emu/bus/msx_cart/crossblaim.c)0
-rw-r--r--src/devices/bus/msx_cart/crossblaim.h (renamed from src/emu/bus/msx_cart/crossblaim.h)0
-rw-r--r--src/devices/bus/msx_cart/disk.c (renamed from src/emu/bus/msx_cart/disk.c)0
-rw-r--r--src/devices/bus/msx_cart/disk.h (renamed from src/emu/bus/msx_cart/disk.h)0
-rw-r--r--src/devices/bus/msx_cart/dooly.c (renamed from src/emu/bus/msx_cart/dooly.c)0
-rw-r--r--src/devices/bus/msx_cart/dooly.h (renamed from src/emu/bus/msx_cart/dooly.h)0
-rw-r--r--src/devices/bus/msx_cart/fmpac.c (renamed from src/emu/bus/msx_cart/fmpac.c)0
-rw-r--r--src/devices/bus/msx_cart/fmpac.h (renamed from src/emu/bus/msx_cart/fmpac.h)0
-rw-r--r--src/devices/bus/msx_cart/fs_sr022.c71
-rw-r--r--src/devices/bus/msx_cart/fs_sr022.h33
-rw-r--r--src/devices/bus/msx_cart/halnote.c (renamed from src/emu/bus/msx_cart/halnote.c)0
-rw-r--r--src/devices/bus/msx_cart/halnote.h (renamed from src/emu/bus/msx_cart/halnote.h)0
-rw-r--r--src/devices/bus/msx_cart/hfox.c (renamed from src/emu/bus/msx_cart/hfox.c)0
-rw-r--r--src/devices/bus/msx_cart/hfox.h (renamed from src/emu/bus/msx_cart/hfox.h)0
-rw-r--r--src/devices/bus/msx_cart/holy_quran.c (renamed from src/emu/bus/msx_cart/holy_quran.c)0
-rw-r--r--src/devices/bus/msx_cart/holy_quran.h (renamed from src/emu/bus/msx_cart/holy_quran.h)0
-rw-r--r--src/devices/bus/msx_cart/konami.c (renamed from src/emu/bus/msx_cart/konami.c)2
-rw-r--r--src/devices/bus/msx_cart/konami.h (renamed from src/emu/bus/msx_cart/konami.h)0
-rw-r--r--src/devices/bus/msx_cart/korean.c (renamed from src/emu/bus/msx_cart/korean.c)0
-rw-r--r--src/devices/bus/msx_cart/korean.h (renamed from src/emu/bus/msx_cart/korean.h)0
-rw-r--r--src/devices/bus/msx_cart/majutsushi.c (renamed from src/emu/bus/msx_cart/majutsushi.c)0
-rw-r--r--src/devices/bus/msx_cart/majutsushi.h (renamed from src/emu/bus/msx_cart/majutsushi.h)0
-rw-r--r--src/devices/bus/msx_cart/moonsound.c (renamed from src/emu/bus/msx_cart/moonsound.c)8
-rw-r--r--src/devices/bus/msx_cart/moonsound.h (renamed from src/emu/bus/msx_cart/moonsound.h)1
-rw-r--r--src/devices/bus/msx_cart/msx_audio.c (renamed from src/emu/bus/msx_cart/msx_audio.c)0
-rw-r--r--src/devices/bus/msx_cart/msx_audio.h (renamed from src/emu/bus/msx_cart/msx_audio.h)0
-rw-r--r--src/devices/bus/msx_cart/msx_audio_kb.c (renamed from src/emu/bus/msx_cart/msx_audio_kb.c)0
-rw-r--r--src/devices/bus/msx_cart/msx_audio_kb.h (renamed from src/emu/bus/msx_cart/msx_audio_kb.h)0
-rw-r--r--src/devices/bus/msx_cart/msxdos2.c (renamed from src/emu/bus/msx_cart/msxdos2.c)0
-rw-r--r--src/devices/bus/msx_cart/msxdos2.h (renamed from src/emu/bus/msx_cart/msxdos2.h)0
-rw-r--r--src/devices/bus/msx_cart/nomapper.c (renamed from src/emu/bus/msx_cart/nomapper.c)0
-rw-r--r--src/devices/bus/msx_cart/nomapper.h (renamed from src/emu/bus/msx_cart/nomapper.h)0
-rw-r--r--src/devices/bus/msx_cart/rtype.c (renamed from src/emu/bus/msx_cart/rtype.c)0
-rw-r--r--src/devices/bus/msx_cart/rtype.h (renamed from src/emu/bus/msx_cart/rtype.h)0
-rw-r--r--src/devices/bus/msx_cart/super_swangi.c (renamed from src/emu/bus/msx_cart/super_swangi.c)0
-rw-r--r--src/devices/bus/msx_cart/super_swangi.h (renamed from src/emu/bus/msx_cart/super_swangi.h)0
-rw-r--r--src/devices/bus/msx_cart/superloderunner.c (renamed from src/emu/bus/msx_cart/superloderunner.c)0
-rw-r--r--src/devices/bus/msx_cart/superloderunner.h (renamed from src/emu/bus/msx_cart/superloderunner.h)0
-rw-r--r--src/devices/bus/msx_cart/yamaha.c (renamed from src/emu/bus/msx_cart/yamaha.c)0
-rw-r--r--src/devices/bus/msx_cart/yamaha.h (renamed from src/emu/bus/msx_cart/yamaha.h)0
-rw-r--r--src/devices/bus/msx_slot/bunsetsu.c (renamed from src/emu/bus/msx_slot/bunsetsu.c)0
-rw-r--r--src/devices/bus/msx_slot/bunsetsu.h (renamed from src/emu/bus/msx_slot/bunsetsu.h)0
-rw-r--r--src/devices/bus/msx_slot/cartridge.c (renamed from src/emu/bus/msx_slot/cartridge.c)0
-rw-r--r--src/devices/bus/msx_slot/cartridge.h (renamed from src/emu/bus/msx_slot/cartridge.h)0
-rw-r--r--src/devices/bus/msx_slot/disk.c (renamed from src/emu/bus/msx_slot/disk.c)0
-rw-r--r--src/devices/bus/msx_slot/disk.h (renamed from src/emu/bus/msx_slot/disk.h)0
-rw-r--r--src/devices/bus/msx_slot/fs4600.c (renamed from src/emu/bus/msx_slot/fs4600.c)0
-rw-r--r--src/devices/bus/msx_slot/fs4600.h (renamed from src/emu/bus/msx_slot/fs4600.h)0
-rw-r--r--src/devices/bus/msx_slot/music.c (renamed from src/emu/bus/msx_slot/music.c)0
-rw-r--r--src/devices/bus/msx_slot/music.h (renamed from src/emu/bus/msx_slot/music.h)0
-rw-r--r--src/devices/bus/msx_slot/panasonic08.c (renamed from src/emu/bus/msx_slot/panasonic08.c)0
-rw-r--r--src/devices/bus/msx_slot/panasonic08.h (renamed from src/emu/bus/msx_slot/panasonic08.h)0
-rw-r--r--src/devices/bus/msx_slot/ram.c (renamed from src/emu/bus/msx_slot/ram.c)0
-rw-r--r--src/devices/bus/msx_slot/ram.h (renamed from src/emu/bus/msx_slot/ram.h)0
-rw-r--r--src/devices/bus/msx_slot/ram_mm.c (renamed from src/emu/bus/msx_slot/ram_mm.c)0
-rw-r--r--src/devices/bus/msx_slot/ram_mm.h (renamed from src/emu/bus/msx_slot/ram_mm.h)0
-rw-r--r--src/devices/bus/msx_slot/rom.c (renamed from src/emu/bus/msx_slot/rom.c)0
-rw-r--r--src/devices/bus/msx_slot/rom.h (renamed from src/emu/bus/msx_slot/rom.h)0
-rw-r--r--src/devices/bus/msx_slot/slot.c (renamed from src/emu/bus/msx_slot/slot.c)0
-rw-r--r--src/devices/bus/msx_slot/slot.h (renamed from src/emu/bus/msx_slot/slot.h)0
-rw-r--r--src/devices/bus/msx_slot/sony08.c (renamed from src/emu/bus/msx_slot/sony08.c)0
-rw-r--r--src/devices/bus/msx_slot/sony08.h (renamed from src/emu/bus/msx_slot/sony08.h)0
-rw-r--r--src/devices/bus/nasbus/avc.c (renamed from src/emu/bus/nasbus/avc.c)17
-rw-r--r--src/devices/bus/nasbus/avc.h (renamed from src/emu/bus/nasbus/avc.h)3
-rw-r--r--src/devices/bus/nasbus/cards.c (renamed from src/emu/bus/nasbus/cards.c)0
-rw-r--r--src/devices/bus/nasbus/cards.h (renamed from src/emu/bus/nasbus/cards.h)0
-rw-r--r--src/devices/bus/nasbus/floppy.c (renamed from src/emu/bus/nasbus/floppy.c)0
-rw-r--r--src/devices/bus/nasbus/floppy.h (renamed from src/emu/bus/nasbus/floppy.h)0
-rw-r--r--src/devices/bus/nasbus/nasbus.c (renamed from src/emu/bus/nasbus/nasbus.c)0
-rw-r--r--src/devices/bus/nasbus/nasbus.h (renamed from src/emu/bus/nasbus/nasbus.h)0
-rw-r--r--src/devices/bus/neogeo/banked_cart.c (renamed from src/emu/bus/neogeo/banked_cart.c)0
-rw-r--r--src/devices/bus/neogeo/banked_cart.h (renamed from src/emu/bus/neogeo/banked_cart.h)0
-rw-r--r--src/devices/bus/neogeo/bootleg_cart.c (renamed from src/emu/bus/neogeo/bootleg_cart.c)0
-rw-r--r--src/devices/bus/neogeo/bootleg_cart.h (renamed from src/emu/bus/neogeo/bootleg_cart.h)0
-rw-r--r--src/devices/bus/neogeo/bootleg_hybrid_cart.c (renamed from src/emu/bus/neogeo/bootleg_hybrid_cart.c)0
-rw-r--r--src/devices/bus/neogeo/bootleg_hybrid_cart.h (renamed from src/emu/bus/neogeo/bootleg_hybrid_cart.h)0
-rw-r--r--src/devices/bus/neogeo/bootleg_prot.c (renamed from src/emu/bus/neogeo/bootleg_prot.c)0
-rw-r--r--src/devices/bus/neogeo/bootleg_prot.h (renamed from src/emu/bus/neogeo/bootleg_prot.h)0
-rw-r--r--src/devices/bus/neogeo/cmc_cart.c (renamed from src/emu/bus/neogeo/cmc_cart.c)0
-rw-r--r--src/devices/bus/neogeo/cmc_cart.h (renamed from src/emu/bus/neogeo/cmc_cart.h)0
-rw-r--r--src/devices/bus/neogeo/cmc_prot.c (renamed from src/emu/bus/neogeo/cmc_prot.c)0
-rw-r--r--src/devices/bus/neogeo/cmc_prot.h (renamed from src/emu/bus/neogeo/cmc_prot.h)0
-rw-r--r--src/devices/bus/neogeo/fatfury2_cart.c (renamed from src/emu/bus/neogeo/fatfury2_cart.c)0
-rw-r--r--src/devices/bus/neogeo/fatfury2_cart.h (renamed from src/emu/bus/neogeo/fatfury2_cart.h)0
-rw-r--r--src/devices/bus/neogeo/fatfury2_prot.c (renamed from src/emu/bus/neogeo/fatfury2_prot.c)0
-rw-r--r--src/devices/bus/neogeo/fatfury2_prot.h (renamed from src/emu/bus/neogeo/fatfury2_prot.h)0
-rw-r--r--src/devices/bus/neogeo/kof2002_cart.c (renamed from src/emu/bus/neogeo/kof2002_cart.c)0
-rw-r--r--src/devices/bus/neogeo/kof2002_cart.h (renamed from src/emu/bus/neogeo/kof2002_cart.h)0
-rw-r--r--src/devices/bus/neogeo/kof2002_prot.c (renamed from src/emu/bus/neogeo/kof2002_prot.c)0
-rw-r--r--src/devices/bus/neogeo/kof2002_prot.h (renamed from src/emu/bus/neogeo/kof2002_prot.h)0
-rw-r--r--src/devices/bus/neogeo/kof98_cart.c (renamed from src/emu/bus/neogeo/kof98_cart.c)0
-rw-r--r--src/devices/bus/neogeo/kof98_cart.h (renamed from src/emu/bus/neogeo/kof98_cart.h)0
-rw-r--r--src/devices/bus/neogeo/kof98_prot.c (renamed from src/emu/bus/neogeo/kof98_prot.c)0
-rw-r--r--src/devices/bus/neogeo/kof98_prot.h (renamed from src/emu/bus/neogeo/kof98_prot.h)0
-rw-r--r--src/devices/bus/neogeo/kog_prot.c (renamed from src/emu/bus/neogeo/kog_prot.c)0
-rw-r--r--src/devices/bus/neogeo/kog_prot.h (renamed from src/emu/bus/neogeo/kog_prot.h)0
-rw-r--r--src/devices/bus/neogeo/mslugx_cart.c (renamed from src/emu/bus/neogeo/mslugx_cart.c)0
-rw-r--r--src/devices/bus/neogeo/mslugx_cart.h (renamed from src/emu/bus/neogeo/mslugx_cart.h)0
-rw-r--r--src/devices/bus/neogeo/mslugx_prot.c (renamed from src/emu/bus/neogeo/mslugx_prot.c)0
-rw-r--r--src/devices/bus/neogeo/mslugx_prot.h (renamed from src/emu/bus/neogeo/mslugx_prot.h)0
-rw-r--r--src/devices/bus/neogeo/neogeo_carts.c (renamed from src/emu/bus/neogeo/neogeo_carts.c)0
-rw-r--r--src/devices/bus/neogeo/neogeo_carts.h (renamed from src/emu/bus/neogeo/neogeo_carts.h)0
-rw-r--r--src/devices/bus/neogeo/neogeo_helper.c (renamed from src/emu/bus/neogeo/neogeo_helper.c)0
-rw-r--r--src/devices/bus/neogeo/neogeo_helper.h (renamed from src/emu/bus/neogeo/neogeo_helper.h)0
-rw-r--r--src/devices/bus/neogeo/neogeo_intf.c (renamed from src/emu/bus/neogeo/neogeo_intf.c)0
-rw-r--r--src/devices/bus/neogeo/neogeo_intf.h (renamed from src/emu/bus/neogeo/neogeo_intf.h)0
-rw-r--r--src/devices/bus/neogeo/neogeo_slot.c (renamed from src/emu/bus/neogeo/neogeo_slot.c)0
-rw-r--r--src/devices/bus/neogeo/neogeo_slot.h (renamed from src/emu/bus/neogeo/neogeo_slot.h)0
-rw-r--r--src/devices/bus/neogeo/pcm2_cart.c (renamed from src/emu/bus/neogeo/pcm2_cart.c)0
-rw-r--r--src/devices/bus/neogeo/pcm2_cart.h (renamed from src/emu/bus/neogeo/pcm2_cart.h)0
-rw-r--r--src/devices/bus/neogeo/pcm2_prot.c (renamed from src/emu/bus/neogeo/pcm2_prot.c)0
-rw-r--r--src/devices/bus/neogeo/pcm2_prot.h (renamed from src/emu/bus/neogeo/pcm2_prot.h)0
-rw-r--r--src/devices/bus/neogeo/pvc_cart.c (renamed from src/emu/bus/neogeo/pvc_cart.c)0
-rw-r--r--src/devices/bus/neogeo/pvc_cart.h (renamed from src/emu/bus/neogeo/pvc_cart.h)0
-rw-r--r--src/devices/bus/neogeo/pvc_prot.c (renamed from src/emu/bus/neogeo/pvc_prot.c)0
-rw-r--r--src/devices/bus/neogeo/pvc_prot.h (renamed from src/emu/bus/neogeo/pvc_prot.h)0
-rw-r--r--src/devices/bus/neogeo/rom.c (renamed from src/emu/bus/neogeo/rom.c)0
-rw-r--r--src/devices/bus/neogeo/rom.h (renamed from src/emu/bus/neogeo/rom.h)0
-rw-r--r--src/devices/bus/neogeo/sbp_prot.c (renamed from src/emu/bus/neogeo/sbp_prot.c)0
-rw-r--r--src/devices/bus/neogeo/sbp_prot.h (renamed from src/emu/bus/neogeo/sbp_prot.h)0
-rw-r--r--src/devices/bus/neogeo/sma_cart.c (renamed from src/emu/bus/neogeo/sma_cart.c)0
-rw-r--r--src/devices/bus/neogeo/sma_cart.h (renamed from src/emu/bus/neogeo/sma_cart.h)0
-rw-r--r--src/devices/bus/neogeo/sma_prot.c (renamed from src/emu/bus/neogeo/sma_prot.c)0
-rw-r--r--src/devices/bus/neogeo/sma_prot.h (renamed from src/emu/bus/neogeo/sma_prot.h)0
-rw-r--r--src/devices/bus/nes/2a03pur.c (renamed from src/emu/bus/nes/2a03pur.c)0
-rw-r--r--src/devices/bus/nes/2a03pur.h (renamed from src/emu/bus/nes/2a03pur.h)0
-rw-r--r--src/devices/bus/nes/act53.c (renamed from src/emu/bus/nes/act53.c)0
-rw-r--r--src/devices/bus/nes/act53.h (renamed from src/emu/bus/nes/act53.h)0
-rw-r--r--src/devices/bus/nes/aladdin.c (renamed from src/emu/bus/nes/aladdin.c)0
-rw-r--r--src/devices/bus/nes/aladdin.h (renamed from src/emu/bus/nes/aladdin.h)0
-rw-r--r--src/devices/bus/nes/ave.c (renamed from src/emu/bus/nes/ave.c)0
-rw-r--r--src/devices/bus/nes/ave.h (renamed from src/emu/bus/nes/ave.h)0
-rw-r--r--src/devices/bus/nes/bandai.c (renamed from src/emu/bus/nes/bandai.c)0
-rw-r--r--src/devices/bus/nes/bandai.h (renamed from src/emu/bus/nes/bandai.h)0
-rw-r--r--src/devices/bus/nes/benshieng.c (renamed from src/emu/bus/nes/benshieng.c)0
-rw-r--r--src/devices/bus/nes/benshieng.h (renamed from src/emu/bus/nes/benshieng.h)0
-rw-r--r--src/devices/bus/nes/bootleg.c (renamed from src/emu/bus/nes/bootleg.c)0
-rw-r--r--src/devices/bus/nes/bootleg.h (renamed from src/emu/bus/nes/bootleg.h)0
-rw-r--r--src/devices/bus/nes/camerica.c (renamed from src/emu/bus/nes/camerica.c)0
-rw-r--r--src/devices/bus/nes/camerica.h (renamed from src/emu/bus/nes/camerica.h)0
-rw-r--r--src/devices/bus/nes/cne.c (renamed from src/emu/bus/nes/cne.c)0
-rw-r--r--src/devices/bus/nes/cne.h (renamed from src/emu/bus/nes/cne.h)0
-rw-r--r--src/devices/bus/nes/cony.c (renamed from src/emu/bus/nes/cony.c)0
-rw-r--r--src/devices/bus/nes/cony.h (renamed from src/emu/bus/nes/cony.h)0
-rw-r--r--src/devices/bus/nes/datach.c (renamed from src/emu/bus/nes/datach.c)0
-rw-r--r--src/devices/bus/nes/datach.h (renamed from src/emu/bus/nes/datach.h)0
-rw-r--r--src/devices/bus/nes/discrete.c (renamed from src/emu/bus/nes/discrete.c)0
-rw-r--r--src/devices/bus/nes/discrete.h (renamed from src/emu/bus/nes/discrete.h)0
-rw-r--r--src/devices/bus/nes/disksys.c (renamed from src/emu/bus/nes/disksys.c)0
-rw-r--r--src/devices/bus/nes/disksys.h (renamed from src/emu/bus/nes/disksys.h)0
-rw-r--r--src/devices/bus/nes/event.c (renamed from src/emu/bus/nes/event.c)0
-rw-r--r--src/devices/bus/nes/event.h (renamed from src/emu/bus/nes/event.h)0
-rw-r--r--src/devices/bus/nes/ggenie.c (renamed from src/emu/bus/nes/ggenie.c)0
-rw-r--r--src/devices/bus/nes/ggenie.h (renamed from src/emu/bus/nes/ggenie.h)0
-rw-r--r--src/devices/bus/nes/henggedianzi.c (renamed from src/emu/bus/nes/henggedianzi.c)0
-rw-r--r--src/devices/bus/nes/henggedianzi.h (renamed from src/emu/bus/nes/henggedianzi.h)0
-rw-r--r--src/devices/bus/nes/hes.c (renamed from src/emu/bus/nes/hes.c)0
-rw-r--r--src/devices/bus/nes/hes.h (renamed from src/emu/bus/nes/hes.h)0
-rw-r--r--src/devices/bus/nes/hosenkan.c (renamed from src/emu/bus/nes/hosenkan.c)0
-rw-r--r--src/devices/bus/nes/hosenkan.h (renamed from src/emu/bus/nes/hosenkan.h)0
-rw-r--r--src/devices/bus/nes/irem.c (renamed from src/emu/bus/nes/irem.c)0
-rw-r--r--src/devices/bus/nes/irem.h (renamed from src/emu/bus/nes/irem.h)0
-rw-r--r--src/devices/bus/nes/jaleco.c (renamed from src/emu/bus/nes/jaleco.c)0
-rw-r--r--src/devices/bus/nes/jaleco.h (renamed from src/emu/bus/nes/jaleco.h)0
-rw-r--r--src/devices/bus/nes/jy.c (renamed from src/emu/bus/nes/jy.c)0
-rw-r--r--src/devices/bus/nes/jy.h (renamed from src/emu/bus/nes/jy.h)0
-rw-r--r--src/devices/bus/nes/kaiser.c (renamed from src/emu/bus/nes/kaiser.c)0
-rw-r--r--src/devices/bus/nes/kaiser.h (renamed from src/emu/bus/nes/kaiser.h)0
-rw-r--r--src/devices/bus/nes/karastudio.c (renamed from src/emu/bus/nes/karastudio.c)0
-rw-r--r--src/devices/bus/nes/karastudio.h (renamed from src/emu/bus/nes/karastudio.h)0
-rw-r--r--src/devices/bus/nes/konami.c (renamed from src/emu/bus/nes/konami.c)0
-rw-r--r--src/devices/bus/nes/konami.h (renamed from src/emu/bus/nes/konami.h)0
-rw-r--r--src/devices/bus/nes/legacy.c (renamed from src/emu/bus/nes/legacy.c)0
-rw-r--r--src/devices/bus/nes/legacy.h (renamed from src/emu/bus/nes/legacy.h)0
-rw-r--r--src/devices/bus/nes/mmc1.c (renamed from src/emu/bus/nes/mmc1.c)0
-rw-r--r--src/devices/bus/nes/mmc1.h (renamed from src/emu/bus/nes/mmc1.h)0
-rw-r--r--src/devices/bus/nes/mmc2.c (renamed from src/emu/bus/nes/mmc2.c)0
-rw-r--r--src/devices/bus/nes/mmc2.h (renamed from src/emu/bus/nes/mmc2.h)0
-rw-r--r--src/devices/bus/nes/mmc3.c (renamed from src/emu/bus/nes/mmc3.c)0
-rw-r--r--src/devices/bus/nes/mmc3.h (renamed from src/emu/bus/nes/mmc3.h)0
-rw-r--r--src/devices/bus/nes/mmc3_clones.c (renamed from src/emu/bus/nes/mmc3_clones.c)0
-rw-r--r--src/devices/bus/nes/mmc3_clones.h (renamed from src/emu/bus/nes/mmc3_clones.h)0
-rw-r--r--src/devices/bus/nes/mmc5.c (renamed from src/emu/bus/nes/mmc5.c)0
-rw-r--r--src/devices/bus/nes/mmc5.h (renamed from src/emu/bus/nes/mmc5.h)0
-rw-r--r--src/devices/bus/nes/multigame.c (renamed from src/emu/bus/nes/multigame.c)0
-rw-r--r--src/devices/bus/nes/multigame.h (renamed from src/emu/bus/nes/multigame.h)0
-rw-r--r--src/devices/bus/nes/namcot.c (renamed from src/emu/bus/nes/namcot.c)0
-rw-r--r--src/devices/bus/nes/namcot.h (renamed from src/emu/bus/nes/namcot.h)0
-rw-r--r--src/devices/bus/nes/nanjing.c (renamed from src/emu/bus/nes/nanjing.c)0
-rw-r--r--src/devices/bus/nes/nanjing.h (renamed from src/emu/bus/nes/nanjing.h)0
-rw-r--r--src/devices/bus/nes/nes_carts.c (renamed from src/emu/bus/nes/nes_carts.c)0
-rw-r--r--src/devices/bus/nes/nes_carts.h (renamed from src/emu/bus/nes/nes_carts.h)0
-rw-r--r--src/devices/bus/nes/nes_ines.inc (renamed from src/emu/bus/nes/nes_ines.inc)0
-rw-r--r--src/devices/bus/nes/nes_pcb.inc (renamed from src/emu/bus/nes/nes_pcb.inc)0
-rw-r--r--src/devices/bus/nes/nes_slot.c (renamed from src/emu/bus/nes/nes_slot.c)0
-rw-r--r--src/devices/bus/nes/nes_slot.h (renamed from src/emu/bus/nes/nes_slot.h)0
-rw-r--r--src/devices/bus/nes/nes_unif.inc (renamed from src/emu/bus/nes/nes_unif.inc)0
-rw-r--r--src/devices/bus/nes/ntdec.c (renamed from src/emu/bus/nes/ntdec.c)0
-rw-r--r--src/devices/bus/nes/ntdec.h (renamed from src/emu/bus/nes/ntdec.h)0
-rw-r--r--src/devices/bus/nes/nxrom.c (renamed from src/emu/bus/nes/nxrom.c)0
-rw-r--r--src/devices/bus/nes/nxrom.h (renamed from src/emu/bus/nes/nxrom.h)0
-rw-r--r--src/devices/bus/nes/pirate.c (renamed from src/emu/bus/nes/pirate.c)0
-rw-r--r--src/devices/bus/nes/pirate.h (renamed from src/emu/bus/nes/pirate.h)0
-rw-r--r--src/devices/bus/nes/pt554.c (renamed from src/emu/bus/nes/pt554.c)0
-rw-r--r--src/devices/bus/nes/pt554.h (renamed from src/emu/bus/nes/pt554.h)0
-rw-r--r--src/devices/bus/nes/racermate.c (renamed from src/emu/bus/nes/racermate.c)0
-rw-r--r--src/devices/bus/nes/racermate.h (renamed from src/emu/bus/nes/racermate.h)0
-rw-r--r--src/devices/bus/nes/rcm.c (renamed from src/emu/bus/nes/rcm.c)0
-rw-r--r--src/devices/bus/nes/rcm.h (renamed from src/emu/bus/nes/rcm.h)0
-rw-r--r--src/devices/bus/nes/rexsoft.c (renamed from src/emu/bus/nes/rexsoft.c)0
-rw-r--r--src/devices/bus/nes/rexsoft.h (renamed from src/emu/bus/nes/rexsoft.h)0
-rw-r--r--src/devices/bus/nes/sachen.c (renamed from src/emu/bus/nes/sachen.c)0
-rw-r--r--src/devices/bus/nes/sachen.h (renamed from src/emu/bus/nes/sachen.h)0
-rw-r--r--src/devices/bus/nes/somari.c (renamed from src/emu/bus/nes/somari.c)0
-rw-r--r--src/devices/bus/nes/somari.h (renamed from src/emu/bus/nes/somari.h)0
-rw-r--r--src/devices/bus/nes/sunsoft.c (renamed from src/emu/bus/nes/sunsoft.c)0
-rw-r--r--src/devices/bus/nes/sunsoft.h (renamed from src/emu/bus/nes/sunsoft.h)0
-rw-r--r--src/devices/bus/nes/sunsoft_dcs.c (renamed from src/emu/bus/nes/sunsoft_dcs.c)0
-rw-r--r--src/devices/bus/nes/sunsoft_dcs.h (renamed from src/emu/bus/nes/sunsoft_dcs.h)0
-rw-r--r--src/devices/bus/nes/taito.c (renamed from src/emu/bus/nes/taito.c)0
-rw-r--r--src/devices/bus/nes/taito.h (renamed from src/emu/bus/nes/taito.h)0
-rw-r--r--src/devices/bus/nes/tengen.c (renamed from src/emu/bus/nes/tengen.c)0
-rw-r--r--src/devices/bus/nes/tengen.h (renamed from src/emu/bus/nes/tengen.h)0
-rw-r--r--src/devices/bus/nes/txc.c (renamed from src/emu/bus/nes/txc.c)0
-rw-r--r--src/devices/bus/nes/txc.h (renamed from src/emu/bus/nes/txc.h)0
-rw-r--r--src/devices/bus/nes/waixing.c (renamed from src/emu/bus/nes/waixing.c)0
-rw-r--r--src/devices/bus/nes/waixing.h (renamed from src/emu/bus/nes/waixing.h)0
-rw-r--r--src/devices/bus/nes_ctrl/4score.c (renamed from src/emu/bus/nes_ctrl/4score.c)0
-rw-r--r--src/devices/bus/nes_ctrl/4score.h (renamed from src/emu/bus/nes_ctrl/4score.h)0
-rw-r--r--src/devices/bus/nes_ctrl/arkpaddle.c (renamed from src/emu/bus/nes_ctrl/arkpaddle.c)0
-rw-r--r--src/devices/bus/nes_ctrl/arkpaddle.h (renamed from src/emu/bus/nes_ctrl/arkpaddle.h)0
-rw-r--r--src/devices/bus/nes_ctrl/bcbattle.c (renamed from src/emu/bus/nes_ctrl/bcbattle.c)0
-rw-r--r--src/devices/bus/nes_ctrl/bcbattle.h (renamed from src/emu/bus/nes_ctrl/bcbattle.h)0
-rw-r--r--src/devices/bus/nes_ctrl/ctrl.c (renamed from src/emu/bus/nes_ctrl/ctrl.c)0
-rw-r--r--src/devices/bus/nes_ctrl/ctrl.h (renamed from src/emu/bus/nes_ctrl/ctrl.h)0
-rw-r--r--src/devices/bus/nes_ctrl/fckeybrd.c (renamed from src/emu/bus/nes_ctrl/fckeybrd.c)0
-rw-r--r--src/devices/bus/nes_ctrl/fckeybrd.h (renamed from src/emu/bus/nes_ctrl/fckeybrd.h)0
-rw-r--r--src/devices/bus/nes_ctrl/ftrainer.c (renamed from src/emu/bus/nes_ctrl/ftrainer.c)0
-rw-r--r--src/devices/bus/nes_ctrl/ftrainer.h (renamed from src/emu/bus/nes_ctrl/ftrainer.h)0
-rw-r--r--src/devices/bus/nes_ctrl/hori.c (renamed from src/emu/bus/nes_ctrl/hori.c)0
-rw-r--r--src/devices/bus/nes_ctrl/hori.h (renamed from src/emu/bus/nes_ctrl/hori.h)0
-rw-r--r--src/devices/bus/nes_ctrl/joypad.c (renamed from src/emu/bus/nes_ctrl/joypad.c)0
-rw-r--r--src/devices/bus/nes_ctrl/joypad.h (renamed from src/emu/bus/nes_ctrl/joypad.h)0
-rw-r--r--src/devices/bus/nes_ctrl/konamihs.c (renamed from src/emu/bus/nes_ctrl/konamihs.c)0
-rw-r--r--src/devices/bus/nes_ctrl/konamihs.h (renamed from src/emu/bus/nes_ctrl/konamihs.h)0
-rw-r--r--src/devices/bus/nes_ctrl/miracle.c (renamed from src/emu/bus/nes_ctrl/miracle.c)0
-rw-r--r--src/devices/bus/nes_ctrl/miracle.h (renamed from src/emu/bus/nes_ctrl/miracle.h)0
-rw-r--r--src/devices/bus/nes_ctrl/mjpanel.c (renamed from src/emu/bus/nes_ctrl/mjpanel.c)0
-rw-r--r--src/devices/bus/nes_ctrl/mjpanel.h (renamed from src/emu/bus/nes_ctrl/mjpanel.h)0
-rw-r--r--src/devices/bus/nes_ctrl/pachinko.c (renamed from src/emu/bus/nes_ctrl/pachinko.c)0
-rw-r--r--src/devices/bus/nes_ctrl/pachinko.h (renamed from src/emu/bus/nes_ctrl/pachinko.h)0
-rw-r--r--src/devices/bus/nes_ctrl/partytap.c (renamed from src/emu/bus/nes_ctrl/partytap.c)0
-rw-r--r--src/devices/bus/nes_ctrl/partytap.h (renamed from src/emu/bus/nes_ctrl/partytap.h)0
-rw-r--r--src/devices/bus/nes_ctrl/powerpad.c (renamed from src/emu/bus/nes_ctrl/powerpad.c)0
-rw-r--r--src/devices/bus/nes_ctrl/powerpad.h (renamed from src/emu/bus/nes_ctrl/powerpad.h)0
-rw-r--r--src/devices/bus/nes_ctrl/suborkey.c (renamed from src/emu/bus/nes_ctrl/suborkey.c)0
-rw-r--r--src/devices/bus/nes_ctrl/suborkey.h (renamed from src/emu/bus/nes_ctrl/suborkey.h)0
-rw-r--r--src/devices/bus/nes_ctrl/zapper.c (renamed from src/emu/bus/nes_ctrl/zapper.c)0
-rw-r--r--src/devices/bus/nes_ctrl/zapper.h (renamed from src/emu/bus/nes_ctrl/zapper.h)0
-rw-r--r--src/devices/bus/nubus/nubus.c (renamed from src/emu/bus/nubus/nubus.c)0
-rw-r--r--src/devices/bus/nubus/nubus.h (renamed from src/emu/bus/nubus/nubus.h)0
-rw-r--r--src/devices/bus/nubus/nubus_48gc.c (renamed from src/emu/bus/nubus/nubus_48gc.c)0
-rw-r--r--src/devices/bus/nubus/nubus_48gc.h (renamed from src/emu/bus/nubus/nubus_48gc.h)0
-rw-r--r--src/devices/bus/nubus/nubus_asntmc3b.c (renamed from src/emu/bus/nubus/nubus_asntmc3b.c)0
-rw-r--r--src/devices/bus/nubus/nubus_asntmc3b.h (renamed from src/emu/bus/nubus/nubus_asntmc3b.h)0
-rw-r--r--src/devices/bus/nubus/nubus_cb264.c (renamed from src/emu/bus/nubus/nubus_cb264.c)0
-rw-r--r--src/devices/bus/nubus/nubus_cb264.h (renamed from src/emu/bus/nubus/nubus_cb264.h)0
-rw-r--r--src/devices/bus/nubus/nubus_image.c (renamed from src/emu/bus/nubus/nubus_image.c)0
-rw-r--r--src/devices/bus/nubus/nubus_image.h (renamed from src/emu/bus/nubus/nubus_image.h)0
-rw-r--r--src/devices/bus/nubus/nubus_m2hires.c (renamed from src/emu/bus/nubus/nubus_m2hires.c)0
-rw-r--r--src/devices/bus/nubus/nubus_m2hires.h (renamed from src/emu/bus/nubus/nubus_m2hires.h)0
-rw-r--r--src/devices/bus/nubus/nubus_m2video.c (renamed from src/emu/bus/nubus/nubus_m2video.c)0
-rw-r--r--src/devices/bus/nubus/nubus_m2video.h (renamed from src/emu/bus/nubus/nubus_m2video.h)0
-rw-r--r--src/devices/bus/nubus/nubus_radiustpd.c (renamed from src/emu/bus/nubus/nubus_radiustpd.c)0
-rw-r--r--src/devices/bus/nubus/nubus_radiustpd.h (renamed from src/emu/bus/nubus/nubus_radiustpd.h)0
-rw-r--r--src/devices/bus/nubus/nubus_spec8.c (renamed from src/emu/bus/nubus/nubus_spec8.c)0
-rw-r--r--src/devices/bus/nubus/nubus_spec8.h (renamed from src/emu/bus/nubus/nubus_spec8.h)0
-rw-r--r--src/devices/bus/nubus/nubus_specpdq.c (renamed from src/emu/bus/nubus/nubus_specpdq.c)0
-rw-r--r--src/devices/bus/nubus/nubus_specpdq.h (renamed from src/emu/bus/nubus/nubus_specpdq.h)0
-rw-r--r--src/devices/bus/nubus/nubus_vikbw.c (renamed from src/emu/bus/nubus/nubus_vikbw.c)0
-rw-r--r--src/devices/bus/nubus/nubus_vikbw.h (renamed from src/emu/bus/nubus/nubus_vikbw.h)0
-rw-r--r--src/devices/bus/nubus/nubus_wsportrait.c (renamed from src/emu/bus/nubus/nubus_wsportrait.c)0
-rw-r--r--src/devices/bus/nubus/nubus_wsportrait.h (renamed from src/emu/bus/nubus/nubus_wsportrait.h)0
-rw-r--r--src/devices/bus/nubus/pds30_30hr.c (renamed from src/emu/bus/nubus/pds30_30hr.c)0
-rw-r--r--src/devices/bus/nubus/pds30_30hr.h (renamed from src/emu/bus/nubus/pds30_30hr.h)0
-rw-r--r--src/devices/bus/nubus/pds30_cb264.c (renamed from src/emu/bus/nubus/pds30_cb264.c)0
-rw-r--r--src/devices/bus/nubus/pds30_cb264.h (renamed from src/emu/bus/nubus/pds30_cb264.h)0
-rw-r--r--src/devices/bus/nubus/pds30_mc30.c (renamed from src/emu/bus/nubus/pds30_mc30.c)0
-rw-r--r--src/devices/bus/nubus/pds30_mc30.h (renamed from src/emu/bus/nubus/pds30_mc30.h)0
-rw-r--r--src/devices/bus/nubus/pds30_procolor816.c (renamed from src/emu/bus/nubus/pds30_procolor816.c)0
-rw-r--r--src/devices/bus/nubus/pds30_procolor816.h (renamed from src/emu/bus/nubus/pds30_procolor816.h)0
-rw-r--r--src/devices/bus/nubus/pds30_sigmalview.c (renamed from src/emu/bus/nubus/pds30_sigmalview.c)0
-rw-r--r--src/devices/bus/nubus/pds30_sigmalview.h (renamed from src/emu/bus/nubus/pds30_sigmalview.h)0
-rw-r--r--src/devices/bus/odyssey2/chess.c (renamed from src/emu/bus/odyssey2/chess.c)0
-rw-r--r--src/devices/bus/odyssey2/chess.h (renamed from src/emu/bus/odyssey2/chess.h)0
-rw-r--r--src/devices/bus/odyssey2/rom.c (renamed from src/emu/bus/odyssey2/rom.c)0
-rw-r--r--src/devices/bus/odyssey2/rom.h (renamed from src/emu/bus/odyssey2/rom.h)0
-rw-r--r--src/devices/bus/odyssey2/slot.c (renamed from src/emu/bus/odyssey2/slot.c)0
-rw-r--r--src/devices/bus/odyssey2/slot.h (renamed from src/emu/bus/odyssey2/slot.h)0
-rw-r--r--src/devices/bus/odyssey2/voice.c (renamed from src/emu/bus/odyssey2/voice.c)0
-rw-r--r--src/devices/bus/odyssey2/voice.h (renamed from src/emu/bus/odyssey2/voice.h)0
-rw-r--r--src/devices/bus/oricext/jasmin.c (renamed from src/emu/bus/oricext/jasmin.c)0
-rw-r--r--src/devices/bus/oricext/jasmin.h (renamed from src/emu/bus/oricext/jasmin.h)0
-rw-r--r--src/devices/bus/oricext/microdisc.c (renamed from src/emu/bus/oricext/microdisc.c)0
-rw-r--r--src/devices/bus/oricext/microdisc.h (renamed from src/emu/bus/oricext/microdisc.h)0
-rw-r--r--src/devices/bus/oricext/oricext.c (renamed from src/emu/bus/oricext/oricext.c)0
-rw-r--r--src/devices/bus/oricext/oricext.h (renamed from src/emu/bus/oricext/oricext.h)0
-rw-r--r--src/devices/bus/pc_joy/pc_joy.c (renamed from src/emu/bus/pc_joy/pc_joy.c)2
-rw-r--r--src/devices/bus/pc_joy/pc_joy.h (renamed from src/emu/bus/pc_joy/pc_joy.h)0
-rw-r--r--src/devices/bus/pc_joy/pc_joy_sw.c (renamed from src/emu/bus/pc_joy/pc_joy_sw.c)0
-rw-r--r--src/devices/bus/pc_joy/pc_joy_sw.h (renamed from src/emu/bus/pc_joy/pc_joy_sw.h)0
-rw-r--r--src/devices/bus/pc_kbd/ec1841.c (renamed from src/emu/bus/pc_kbd/ec1841.c)0
-rw-r--r--src/devices/bus/pc_kbd/ec1841.h (renamed from src/emu/bus/pc_kbd/ec1841.h)0
-rw-r--r--src/devices/bus/pc_kbd/iskr1030.c500
-rw-r--r--src/devices/bus/pc_kbd/iskr1030.h (renamed from src/emu/bus/pc_kbd/iskr1030.h)15
-rw-r--r--src/devices/bus/pc_kbd/keyboards.c (renamed from src/emu/bus/pc_kbd/keyboards.c)0
-rw-r--r--src/devices/bus/pc_kbd/keyboards.h (renamed from src/emu/bus/pc_kbd/keyboards.h)0
-rw-r--r--src/devices/bus/pc_kbd/keytro.c (renamed from src/emu/bus/pc_kbd/keytro.c)0
-rw-r--r--src/devices/bus/pc_kbd/keytro.h (renamed from src/emu/bus/pc_kbd/keytro.h)0
-rw-r--r--src/devices/bus/pc_kbd/msnat.c (renamed from src/emu/bus/pc_kbd/msnat.c)0
-rw-r--r--src/devices/bus/pc_kbd/msnat.h (renamed from src/emu/bus/pc_kbd/msnat.h)0
-rw-r--r--src/devices/bus/pc_kbd/pc83.c (renamed from src/emu/bus/pc_kbd/pc83.c)0
-rw-r--r--src/devices/bus/pc_kbd/pc83.h (renamed from src/emu/bus/pc_kbd/pc83.h)0
-rw-r--r--src/devices/bus/pc_kbd/pc_kbdc.c (renamed from src/emu/bus/pc_kbd/pc_kbdc.c)0
-rw-r--r--src/devices/bus/pc_kbd/pc_kbdc.h (renamed from src/emu/bus/pc_kbd/pc_kbdc.h)0
-rw-r--r--src/devices/bus/pc_kbd/pcat84.c (renamed from src/emu/bus/pc_kbd/pcat84.c)0
-rw-r--r--src/devices/bus/pc_kbd/pcat84.h (renamed from src/emu/bus/pc_kbd/pcat84.h)0
-rw-r--r--src/devices/bus/pc_kbd/pcxt83.c (renamed from src/emu/bus/pc_kbd/pcxt83.c)0
-rw-r--r--src/devices/bus/pc_kbd/pcxt83.h (renamed from src/emu/bus/pc_kbd/pcxt83.h)0
-rw-r--r--src/devices/bus/pce/pce_rom.c (renamed from src/emu/bus/pce/pce_rom.c)0
-rw-r--r--src/devices/bus/pce/pce_rom.h (renamed from src/emu/bus/pce/pce_rom.h)0
-rw-r--r--src/devices/bus/pce/pce_slot.c (renamed from src/emu/bus/pce/pce_slot.c)0
-rw-r--r--src/devices/bus/pce/pce_slot.h (renamed from src/emu/bus/pce/pce_slot.h)0
-rw-r--r--src/devices/bus/pet/64k.c (renamed from src/emu/bus/pet/64k.c)0
-rw-r--r--src/devices/bus/pet/64k.h (renamed from src/emu/bus/pet/64k.h)0
-rw-r--r--src/devices/bus/pet/c2n.c (renamed from src/emu/bus/pet/c2n.c)0
-rw-r--r--src/devices/bus/pet/c2n.h (renamed from src/emu/bus/pet/c2n.h)0
-rw-r--r--src/devices/bus/pet/cass.c (renamed from src/emu/bus/pet/cass.c)0
-rw-r--r--src/devices/bus/pet/cass.h (renamed from src/emu/bus/pet/cass.h)0
-rw-r--r--src/devices/bus/pet/cb2snd.c (renamed from src/emu/bus/pet/cb2snd.c)0
-rw-r--r--src/devices/bus/pet/cb2snd.h (renamed from src/emu/bus/pet/cb2snd.h)0
-rw-r--r--src/devices/bus/pet/diag.c (renamed from src/emu/bus/pet/diag.c)0
-rw-r--r--src/devices/bus/pet/diag.h (renamed from src/emu/bus/pet/diag.h)0
-rw-r--r--src/devices/bus/pet/diag264_lb_tape.c (renamed from src/emu/bus/pet/diag264_lb_tape.c)0
-rw-r--r--src/devices/bus/pet/diag264_lb_tape.h (renamed from src/emu/bus/pet/diag264_lb_tape.h)0
-rw-r--r--src/devices/bus/pet/exp.c (renamed from src/emu/bus/pet/exp.c)0
-rw-r--r--src/devices/bus/pet/exp.h (renamed from src/emu/bus/pet/exp.h)0
-rw-r--r--src/devices/bus/pet/hsg.c (renamed from src/emu/bus/pet/hsg.c)0
-rw-r--r--src/devices/bus/pet/hsg.h (renamed from src/emu/bus/pet/hsg.h)0
-rw-r--r--src/devices/bus/pet/petuja.c (renamed from src/emu/bus/pet/petuja.c)0
-rw-r--r--src/devices/bus/pet/petuja.h (renamed from src/emu/bus/pet/petuja.h)0
-rw-r--r--src/devices/bus/pet/superpet.c (renamed from src/emu/bus/pet/superpet.c)0
-rw-r--r--src/devices/bus/pet/superpet.h (renamed from src/emu/bus/pet/superpet.h)0
-rw-r--r--src/devices/bus/pet/user.c (renamed from src/emu/bus/pet/user.c)0
-rw-r--r--src/devices/bus/pet/user.h (renamed from src/emu/bus/pet/user.h)0
-rw-r--r--src/devices/bus/plus4/c1551.c (renamed from src/emu/bus/plus4/c1551.c)0
-rw-r--r--src/devices/bus/plus4/c1551.h (renamed from src/emu/bus/plus4/c1551.h)0
-rw-r--r--src/devices/bus/plus4/diag264_lb_user.c (renamed from src/emu/bus/plus4/diag264_lb_user.c)0
-rw-r--r--src/devices/bus/plus4/diag264_lb_user.h (renamed from src/emu/bus/plus4/diag264_lb_user.h)0
-rw-r--r--src/devices/bus/plus4/exp.c (renamed from src/emu/bus/plus4/exp.c)0
-rw-r--r--src/devices/bus/plus4/exp.h (renamed from src/emu/bus/plus4/exp.h)0
-rw-r--r--src/devices/bus/plus4/sid.c (renamed from src/emu/bus/plus4/sid.c)0
-rw-r--r--src/devices/bus/plus4/sid.h (renamed from src/emu/bus/plus4/sid.h)0
-rw-r--r--src/devices/bus/plus4/std.c (renamed from src/emu/bus/plus4/std.c)0
-rw-r--r--src/devices/bus/plus4/std.h (renamed from src/emu/bus/plus4/std.h)0
-rw-r--r--src/devices/bus/plus4/user.c (renamed from src/emu/bus/plus4/user.c)0
-rw-r--r--src/devices/bus/plus4/user.h (renamed from src/emu/bus/plus4/user.h)0
-rw-r--r--src/devices/bus/psx/analogue.c (renamed from src/emu/bus/psx/analogue.c)0
-rw-r--r--src/devices/bus/psx/analogue.h (renamed from src/emu/bus/psx/analogue.h)0
-rw-r--r--src/devices/bus/psx/ctlrport.c (renamed from src/emu/bus/psx/ctlrport.c)0
-rw-r--r--src/devices/bus/psx/ctlrport.h (renamed from src/emu/bus/psx/ctlrport.h)0
-rw-r--r--src/devices/bus/psx/memcard.c (renamed from src/emu/bus/psx/memcard.c)0
-rw-r--r--src/devices/bus/psx/memcard.h (renamed from src/emu/bus/psx/memcard.h)0
-rw-r--r--src/devices/bus/psx/multitap.c (renamed from src/emu/bus/psx/multitap.c)0
-rw-r--r--src/devices/bus/psx/multitap.h (renamed from src/emu/bus/psx/multitap.h)0
-rw-r--r--src/devices/bus/ql/cst_q_plus4.c (renamed from src/emu/bus/ql/cst_q_plus4.c)0
-rw-r--r--src/devices/bus/ql/cst_q_plus4.h (renamed from src/emu/bus/ql/cst_q_plus4.h)0
-rw-r--r--src/devices/bus/ql/cst_qdisc.c (renamed from src/emu/bus/ql/cst_qdisc.c)0
-rw-r--r--src/devices/bus/ql/cst_qdisc.h (renamed from src/emu/bus/ql/cst_qdisc.h)0
-rw-r--r--src/devices/bus/ql/cumana_fdi.c (renamed from src/emu/bus/ql/cumana_fdi.c)0
-rw-r--r--src/devices/bus/ql/cumana_fdi.h (renamed from src/emu/bus/ql/cumana_fdi.h)0
-rw-r--r--src/devices/bus/ql/exp.c (renamed from src/emu/bus/ql/exp.c)0
-rw-r--r--src/devices/bus/ql/exp.h (renamed from src/emu/bus/ql/exp.h)0
-rw-r--r--src/devices/bus/ql/kempston_di.c (renamed from src/emu/bus/ql/kempston_di.c)0
-rw-r--r--src/devices/bus/ql/kempston_di.h (renamed from src/emu/bus/ql/kempston_di.h)0
-rw-r--r--src/devices/bus/ql/miracle_gold_card.c (renamed from src/emu/bus/ql/miracle_gold_card.c)0
-rw-r--r--src/devices/bus/ql/miracle_gold_card.h (renamed from src/emu/bus/ql/miracle_gold_card.h)0
-rw-r--r--src/devices/bus/ql/miracle_hd.c (renamed from src/emu/bus/ql/miracle_hd.c)0
-rw-r--r--src/devices/bus/ql/miracle_hd.h (renamed from src/emu/bus/ql/miracle_hd.h)0
-rw-r--r--src/devices/bus/ql/mp_fdi.c (renamed from src/emu/bus/ql/mp_fdi.c)0
-rw-r--r--src/devices/bus/ql/mp_fdi.h (renamed from src/emu/bus/ql/mp_fdi.h)0
-rw-r--r--src/devices/bus/ql/opd_basic_master.c (renamed from src/emu/bus/ql/opd_basic_master.c)0
-rw-r--r--src/devices/bus/ql/opd_basic_master.h (renamed from src/emu/bus/ql/opd_basic_master.h)0
-rw-r--r--src/devices/bus/ql/pcml_qdisk.c (renamed from src/emu/bus/ql/pcml_qdisk.c)0
-rw-r--r--src/devices/bus/ql/pcml_qdisk.h (renamed from src/emu/bus/ql/pcml_qdisk.h)0
-rw-r--r--src/devices/bus/ql/qubide.c (renamed from src/emu/bus/ql/qubide.c)0
-rw-r--r--src/devices/bus/ql/qubide.h (renamed from src/emu/bus/ql/qubide.h)0
-rw-r--r--src/devices/bus/ql/rom.c (renamed from src/emu/bus/ql/rom.c)0
-rw-r--r--src/devices/bus/ql/rom.h (renamed from src/emu/bus/ql/rom.h)0
-rw-r--r--src/devices/bus/ql/sandy_superdisk.c (renamed from src/emu/bus/ql/sandy_superdisk.c)0
-rw-r--r--src/devices/bus/ql/sandy_superdisk.h (renamed from src/emu/bus/ql/sandy_superdisk.h)0
-rw-r--r--src/devices/bus/ql/sandy_superqboard.c (renamed from src/emu/bus/ql/sandy_superqboard.c)0
-rw-r--r--src/devices/bus/ql/sandy_superqboard.h (renamed from src/emu/bus/ql/sandy_superqboard.h)0
-rw-r--r--src/devices/bus/ql/std.c (renamed from src/emu/bus/ql/std.c)0
-rw-r--r--src/devices/bus/ql/std.h (renamed from src/emu/bus/ql/std.h)0
-rw-r--r--src/devices/bus/ql/trumpcard.c (renamed from src/emu/bus/ql/trumpcard.c)0
-rw-r--r--src/devices/bus/ql/trumpcard.h (renamed from src/emu/bus/ql/trumpcard.h)0
-rw-r--r--src/devices/bus/rs232/keyboard.c (renamed from src/emu/bus/rs232/keyboard.c)0
-rw-r--r--src/devices/bus/rs232/keyboard.h (renamed from src/emu/bus/rs232/keyboard.h)0
-rw-r--r--src/devices/bus/rs232/loopback.c (renamed from src/emu/bus/rs232/loopback.c)0
-rw-r--r--src/devices/bus/rs232/loopback.h (renamed from src/emu/bus/rs232/loopback.h)0
-rw-r--r--src/devices/bus/rs232/null_modem.c (renamed from src/emu/bus/rs232/null_modem.c)0
-rw-r--r--src/devices/bus/rs232/null_modem.h (renamed from src/emu/bus/rs232/null_modem.h)0
-rw-r--r--src/devices/bus/rs232/printer.c (renamed from src/emu/bus/rs232/printer.c)0
-rw-r--r--src/devices/bus/rs232/printer.h (renamed from src/emu/bus/rs232/printer.h)0
-rw-r--r--src/devices/bus/rs232/pty.c138
-rw-r--r--src/devices/bus/rs232/pty.h52
-rw-r--r--src/devices/bus/rs232/rs232.c (renamed from src/emu/bus/rs232/rs232.c)2
-rw-r--r--src/devices/bus/rs232/rs232.h (renamed from src/emu/bus/rs232/rs232.h)0
-rw-r--r--src/devices/bus/rs232/ser_mouse.c (renamed from src/emu/bus/rs232/ser_mouse.c)0
-rw-r--r--src/devices/bus/rs232/ser_mouse.h (renamed from src/emu/bus/rs232/ser_mouse.h)0
-rw-r--r--src/devices/bus/rs232/terminal.c (renamed from src/emu/bus/rs232/terminal.c)0
-rw-r--r--src/devices/bus/rs232/terminal.h (renamed from src/emu/bus/rs232/terminal.h)0
-rw-r--r--src/devices/bus/rs232/xvd701.c (renamed from src/emu/bus/rs232/xvd701.c)0
-rw-r--r--src/devices/bus/rs232/xvd701.h (renamed from src/emu/bus/rs232/xvd701.h)0
-rw-r--r--src/devices/bus/s100/dj2db.c (renamed from src/emu/bus/s100/dj2db.c)0
-rw-r--r--src/devices/bus/s100/dj2db.h (renamed from src/emu/bus/s100/dj2db.h)0
-rw-r--r--src/devices/bus/s100/djdma.c (renamed from src/emu/bus/s100/djdma.c)0
-rw-r--r--src/devices/bus/s100/djdma.h (renamed from src/emu/bus/s100/djdma.h)0
-rw-r--r--src/devices/bus/s100/mm65k16s.c (renamed from src/emu/bus/s100/mm65k16s.c)0
-rw-r--r--src/devices/bus/s100/mm65k16s.h (renamed from src/emu/bus/s100/mm65k16s.h)0
-rw-r--r--src/devices/bus/s100/nsmdsa.c (renamed from src/emu/bus/s100/nsmdsa.c)0
-rw-r--r--src/devices/bus/s100/nsmdsa.h (renamed from src/emu/bus/s100/nsmdsa.h)0
-rw-r--r--src/devices/bus/s100/nsmdsad.c (renamed from src/emu/bus/s100/nsmdsad.c)0
-rw-r--r--src/devices/bus/s100/nsmdsad.h (renamed from src/emu/bus/s100/nsmdsad.h)0
-rw-r--r--src/devices/bus/s100/s100.c (renamed from src/emu/bus/s100/s100.c)0
-rw-r--r--src/devices/bus/s100/s100.h (renamed from src/emu/bus/s100/s100.h)0
-rw-r--r--src/devices/bus/s100/wunderbus.c (renamed from src/emu/bus/s100/wunderbus.c)0
-rw-r--r--src/devices/bus/s100/wunderbus.h (renamed from src/emu/bus/s100/wunderbus.h)0
-rw-r--r--src/devices/bus/saturn/bram.c (renamed from src/emu/bus/saturn/bram.c)0
-rw-r--r--src/devices/bus/saturn/bram.h (renamed from src/emu/bus/saturn/bram.h)0
-rw-r--r--src/devices/bus/saturn/dram.c (renamed from src/emu/bus/saturn/dram.c)0
-rw-r--r--src/devices/bus/saturn/dram.h (renamed from src/emu/bus/saturn/dram.h)0
-rw-r--r--src/devices/bus/saturn/rom.c (renamed from src/emu/bus/saturn/rom.c)0
-rw-r--r--src/devices/bus/saturn/rom.h (renamed from src/emu/bus/saturn/rom.h)0
-rw-r--r--src/devices/bus/saturn/sat_slot.c (renamed from src/emu/bus/saturn/sat_slot.c)0
-rw-r--r--src/devices/bus/saturn/sat_slot.h (renamed from src/emu/bus/saturn/sat_slot.h)0
-rw-r--r--src/devices/bus/scsi/acb4070.c (renamed from src/emu/bus/scsi/acb4070.c)0
-rw-r--r--src/devices/bus/scsi/acb4070.h (renamed from src/emu/bus/scsi/acb4070.h)0
-rw-r--r--src/devices/bus/scsi/cdu76s.c (renamed from src/emu/bus/scsi/cdu76s.c)0
-rw-r--r--src/devices/bus/scsi/cdu76s.h (renamed from src/emu/bus/scsi/cdu76s.h)0
-rw-r--r--src/devices/bus/scsi/d9060hd.c (renamed from src/emu/bus/scsi/d9060hd.c)0
-rw-r--r--src/devices/bus/scsi/d9060hd.h (renamed from src/emu/bus/scsi/d9060hd.h)0
-rw-r--r--src/devices/bus/scsi/omti5100.c187
-rw-r--r--src/devices/bus/scsi/omti5100.h (renamed from src/emu/bus/scsi/omti5100.h)2
-rw-r--r--src/devices/bus/scsi/pc9801_sasi.c (renamed from src/emu/bus/scsi/pc9801_sasi.c)0
-rw-r--r--src/devices/bus/scsi/pc9801_sasi.h (renamed from src/emu/bus/scsi/pc9801_sasi.h)0
-rw-r--r--src/devices/bus/scsi/s1410.c (renamed from src/emu/bus/scsi/s1410.c)0
-rw-r--r--src/devices/bus/scsi/s1410.h (renamed from src/emu/bus/scsi/s1410.h)0
-rw-r--r--src/devices/bus/scsi/sa1403d.c (renamed from src/emu/bus/scsi/sa1403d.c)0
-rw-r--r--src/devices/bus/scsi/sa1403d.h (renamed from src/emu/bus/scsi/sa1403d.h)0
-rw-r--r--src/devices/bus/scsi/scsi.c (renamed from src/emu/bus/scsi/scsi.c)0
-rw-r--r--src/devices/bus/scsi/scsi.h (renamed from src/emu/bus/scsi/scsi.h)0
-rw-r--r--src/devices/bus/scsi/scsicd.c (renamed from src/emu/bus/scsi/scsicd.c)0
-rw-r--r--src/devices/bus/scsi/scsicd.h (renamed from src/emu/bus/scsi/scsicd.h)0
-rw-r--r--src/devices/bus/scsi/scsihd.c (renamed from src/emu/bus/scsi/scsihd.c)0
-rw-r--r--src/devices/bus/scsi/scsihd.h (renamed from src/emu/bus/scsi/scsihd.h)0
-rw-r--r--src/devices/bus/scsi/scsihle.c (renamed from src/emu/bus/scsi/scsihle.c)4
-rw-r--r--src/devices/bus/scsi/scsihle.h (renamed from src/emu/bus/scsi/scsihle.h)0
-rw-r--r--src/devices/bus/scv/rom.c (renamed from src/emu/bus/scv/rom.c)0
-rw-r--r--src/devices/bus/scv/rom.h (renamed from src/emu/bus/scv/rom.h)0
-rw-r--r--src/devices/bus/scv/slot.c (renamed from src/emu/bus/scv/slot.c)0
-rw-r--r--src/devices/bus/scv/slot.h (renamed from src/emu/bus/scv/slot.h)0
-rw-r--r--src/devices/bus/sega8/ccatch.c (renamed from src/emu/bus/sega8/ccatch.c)0
-rw-r--r--src/devices/bus/sega8/ccatch.h (renamed from src/emu/bus/sega8/ccatch.h)0
-rw-r--r--src/devices/bus/sega8/mgear.c (renamed from src/emu/bus/sega8/mgear.c)0
-rw-r--r--src/devices/bus/sega8/mgear.h (renamed from src/emu/bus/sega8/mgear.h)0
-rw-r--r--src/devices/bus/sega8/rom.c (renamed from src/emu/bus/sega8/rom.c)0
-rw-r--r--src/devices/bus/sega8/rom.h (renamed from src/emu/bus/sega8/rom.h)0
-rw-r--r--src/devices/bus/sega8/sega8_slot.c (renamed from src/emu/bus/sega8/sega8_slot.c)0
-rw-r--r--src/devices/bus/sega8/sega8_slot.h (renamed from src/emu/bus/sega8/sega8_slot.h)0
-rw-r--r--src/devices/bus/sms_ctrl/graphic.c (renamed from src/emu/bus/sms_ctrl/graphic.c)0
-rw-r--r--src/devices/bus/sms_ctrl/graphic.h (renamed from src/emu/bus/sms_ctrl/graphic.h)0
-rw-r--r--src/devices/bus/sms_ctrl/joypad.c (renamed from src/emu/bus/sms_ctrl/joypad.c)0
-rw-r--r--src/devices/bus/sms_ctrl/joypad.h (renamed from src/emu/bus/sms_ctrl/joypad.h)0
-rw-r--r--src/devices/bus/sms_ctrl/lphaser.c (renamed from src/emu/bus/sms_ctrl/lphaser.c)0
-rw-r--r--src/devices/bus/sms_ctrl/lphaser.h (renamed from src/emu/bus/sms_ctrl/lphaser.h)0
-rw-r--r--src/devices/bus/sms_ctrl/multitap.c (renamed from src/emu/bus/sms_ctrl/multitap.c)0
-rw-r--r--src/devices/bus/sms_ctrl/multitap.h (renamed from src/emu/bus/sms_ctrl/multitap.h)0
-rw-r--r--src/devices/bus/sms_ctrl/paddle.c (renamed from src/emu/bus/sms_ctrl/paddle.c)0
-rw-r--r--src/devices/bus/sms_ctrl/paddle.h (renamed from src/emu/bus/sms_ctrl/paddle.h)0
-rw-r--r--src/devices/bus/sms_ctrl/rfu.c (renamed from src/emu/bus/sms_ctrl/rfu.c)0
-rw-r--r--src/devices/bus/sms_ctrl/rfu.h (renamed from src/emu/bus/sms_ctrl/rfu.h)0
-rw-r--r--src/devices/bus/sms_ctrl/smsctrl.c (renamed from src/emu/bus/sms_ctrl/smsctrl.c)0
-rw-r--r--src/devices/bus/sms_ctrl/smsctrl.h (renamed from src/emu/bus/sms_ctrl/smsctrl.h)0
-rw-r--r--src/devices/bus/sms_ctrl/sports.c (renamed from src/emu/bus/sms_ctrl/sports.c)100
-rw-r--r--src/devices/bus/sms_ctrl/sports.h (renamed from src/emu/bus/sms_ctrl/sports.h)7
-rw-r--r--src/devices/bus/sms_ctrl/sportsjp.c (renamed from src/emu/bus/sms_ctrl/sportsjp.c)0
-rw-r--r--src/devices/bus/sms_ctrl/sportsjp.h (renamed from src/emu/bus/sms_ctrl/sportsjp.h)0
-rw-r--r--src/devices/bus/sms_exp/gender.c (renamed from src/emu/bus/sms_exp/gender.c)0
-rw-r--r--src/devices/bus/sms_exp/gender.h (renamed from src/emu/bus/sms_exp/gender.h)0
-rw-r--r--src/devices/bus/sms_exp/smsexp.c (renamed from src/emu/bus/sms_exp/smsexp.c)0
-rw-r--r--src/devices/bus/sms_exp/smsexp.h (renamed from src/emu/bus/sms_exp/smsexp.h)0
-rw-r--r--src/devices/bus/snes/bsx.c (renamed from src/emu/bus/snes/bsx.c)0
-rw-r--r--src/devices/bus/snes/bsx.h (renamed from src/emu/bus/snes/bsx.h)0
-rw-r--r--src/devices/bus/snes/event.c (renamed from src/emu/bus/snes/event.c)0
-rw-r--r--src/devices/bus/snes/event.h (renamed from src/emu/bus/snes/event.h)0
-rw-r--r--src/devices/bus/snes/rom.c (renamed from src/emu/bus/snes/rom.c)0
-rw-r--r--src/devices/bus/snes/rom.h (renamed from src/emu/bus/snes/rom.h)0
-rw-r--r--src/devices/bus/snes/rom21.c (renamed from src/emu/bus/snes/rom21.c)0
-rw-r--r--src/devices/bus/snes/rom21.h (renamed from src/emu/bus/snes/rom21.h)0
-rw-r--r--src/devices/bus/snes/sa1.c (renamed from src/emu/bus/snes/sa1.c)0
-rw-r--r--src/devices/bus/snes/sa1.h (renamed from src/emu/bus/snes/sa1.h)0
-rw-r--r--src/devices/bus/snes/sdd1.c (renamed from src/emu/bus/snes/sdd1.c)2
-rw-r--r--src/devices/bus/snes/sdd1.h (renamed from src/emu/bus/snes/sdd1.h)0
-rw-r--r--src/devices/bus/snes/sfx.c (renamed from src/emu/bus/snes/sfx.c)0
-rw-r--r--src/devices/bus/snes/sfx.h (renamed from src/emu/bus/snes/sfx.h)0
-rw-r--r--src/devices/bus/snes/sgb.c (renamed from src/emu/bus/snes/sgb.c)0
-rw-r--r--src/devices/bus/snes/sgb.h (renamed from src/emu/bus/snes/sgb.h)0
-rw-r--r--src/devices/bus/snes/snes_carts.c (renamed from src/emu/bus/snes/snes_carts.c)0
-rw-r--r--src/devices/bus/snes/snes_carts.h (renamed from src/emu/bus/snes/snes_carts.h)0
-rw-r--r--src/devices/bus/snes/snes_slot.c (renamed from src/emu/bus/snes/snes_slot.c)0
-rw-r--r--src/devices/bus/snes/snes_slot.h (renamed from src/emu/bus/snes/snes_slot.h)0
-rw-r--r--src/devices/bus/snes/spc7110.c (renamed from src/emu/bus/snes/spc7110.c)0
-rw-r--r--src/devices/bus/snes/spc7110.h (renamed from src/emu/bus/snes/spc7110.h)0
-rw-r--r--src/devices/bus/snes/sufami.c (renamed from src/emu/bus/snes/sufami.c)0
-rw-r--r--src/devices/bus/snes/sufami.h (renamed from src/emu/bus/snes/sufami.h)0
-rw-r--r--src/devices/bus/snes/upd.c (renamed from src/emu/bus/snes/upd.c)0
-rw-r--r--src/devices/bus/snes/upd.h (renamed from src/emu/bus/snes/upd.h)0
-rw-r--r--src/devices/bus/snes_ctrl/bcbattle.c (renamed from src/emu/bus/snes_ctrl/bcbattle.c)0
-rw-r--r--src/devices/bus/snes_ctrl/bcbattle.h (renamed from src/emu/bus/snes_ctrl/bcbattle.h)0
-rw-r--r--src/devices/bus/snes_ctrl/ctrl.c (renamed from src/emu/bus/snes_ctrl/ctrl.c)0
-rw-r--r--src/devices/bus/snes_ctrl/ctrl.h (renamed from src/emu/bus/snes_ctrl/ctrl.h)0
-rw-r--r--src/devices/bus/snes_ctrl/joypad.c (renamed from src/emu/bus/snes_ctrl/joypad.c)0
-rw-r--r--src/devices/bus/snes_ctrl/joypad.h (renamed from src/emu/bus/snes_ctrl/joypad.h)0
-rw-r--r--src/devices/bus/snes_ctrl/miracle.c (renamed from src/emu/bus/snes_ctrl/miracle.c)0
-rw-r--r--src/devices/bus/snes_ctrl/miracle.h (renamed from src/emu/bus/snes_ctrl/miracle.h)0
-rw-r--r--src/devices/bus/snes_ctrl/mouse.c (renamed from src/emu/bus/snes_ctrl/mouse.c)0
-rw-r--r--src/devices/bus/snes_ctrl/mouse.h (renamed from src/emu/bus/snes_ctrl/mouse.h)0
-rw-r--r--src/devices/bus/snes_ctrl/multitap.c (renamed from src/emu/bus/snes_ctrl/multitap.c)0
-rw-r--r--src/devices/bus/snes_ctrl/multitap.h (renamed from src/emu/bus/snes_ctrl/multitap.h)0
-rw-r--r--src/devices/bus/snes_ctrl/pachinko.c (renamed from src/emu/bus/snes_ctrl/pachinko.c)0
-rw-r--r--src/devices/bus/snes_ctrl/pachinko.h (renamed from src/emu/bus/snes_ctrl/pachinko.h)0
-rw-r--r--src/devices/bus/snes_ctrl/sscope.c (renamed from src/emu/bus/snes_ctrl/sscope.c)0
-rw-r--r--src/devices/bus/snes_ctrl/sscope.h (renamed from src/emu/bus/snes_ctrl/sscope.h)0
-rw-r--r--src/devices/bus/snes_ctrl/twintap.c (renamed from src/emu/bus/snes_ctrl/twintap.c)0
-rw-r--r--src/devices/bus/snes_ctrl/twintap.h (renamed from src/emu/bus/snes_ctrl/twintap.h)0
-rw-r--r--src/devices/bus/spc1000/exp.c (renamed from src/emu/bus/spc1000/exp.c)0
-rw-r--r--src/devices/bus/spc1000/exp.h (renamed from src/emu/bus/spc1000/exp.h)0
-rw-r--r--src/devices/bus/spc1000/fdd.c (renamed from src/emu/bus/spc1000/fdd.c)0
-rw-r--r--src/devices/bus/spc1000/fdd.h (renamed from src/emu/bus/spc1000/fdd.h)0
-rw-r--r--src/devices/bus/spc1000/vdp.c (renamed from src/emu/bus/spc1000/vdp.c)0
-rw-r--r--src/devices/bus/spc1000/vdp.h (renamed from src/emu/bus/spc1000/vdp.h)0
-rw-r--r--src/devices/bus/ti99_peb/bwg.c (renamed from src/emu/bus/ti99_peb/bwg.c)4
-rw-r--r--src/devices/bus/ti99_peb/bwg.h (renamed from src/emu/bus/ti99_peb/bwg.h)0
-rw-r--r--src/devices/bus/ti99_peb/evpc.c (renamed from src/emu/bus/ti99_peb/evpc.c)0
-rw-r--r--src/devices/bus/ti99_peb/evpc.h (renamed from src/emu/bus/ti99_peb/evpc.h)0
-rw-r--r--src/devices/bus/ti99_peb/hfdc.c (renamed from src/emu/bus/ti99_peb/hfdc.c)40
-rw-r--r--src/devices/bus/ti99_peb/hfdc.h (renamed from src/emu/bus/ti99_peb/hfdc.h)8
-rw-r--r--src/devices/bus/ti99_peb/horizon.c (renamed from src/emu/bus/ti99_peb/horizon.c)0
-rw-r--r--src/devices/bus/ti99_peb/horizon.h (renamed from src/emu/bus/ti99_peb/horizon.h)0
-rw-r--r--src/devices/bus/ti99_peb/hsgpl.c (renamed from src/emu/bus/ti99_peb/hsgpl.c)18
-rw-r--r--src/devices/bus/ti99_peb/hsgpl.h (renamed from src/emu/bus/ti99_peb/hsgpl.h)10
-rw-r--r--src/devices/bus/ti99_peb/memex.c (renamed from src/emu/bus/ti99_peb/memex.c)0
-rw-r--r--src/devices/bus/ti99_peb/memex.h (renamed from src/emu/bus/ti99_peb/memex.h)0
-rw-r--r--src/devices/bus/ti99_peb/myarcmem.c (renamed from src/emu/bus/ti99_peb/myarcmem.c)0
-rw-r--r--src/devices/bus/ti99_peb/myarcmem.h (renamed from src/emu/bus/ti99_peb/myarcmem.h)0
-rw-r--r--src/devices/bus/ti99_peb/pcode.c (renamed from src/emu/bus/ti99_peb/pcode.c)0
-rw-r--r--src/devices/bus/ti99_peb/pcode.h (renamed from src/emu/bus/ti99_peb/pcode.h)2
-rw-r--r--src/devices/bus/ti99_peb/peribox.c (renamed from src/emu/bus/ti99_peb/peribox.c)0
-rw-r--r--src/devices/bus/ti99_peb/peribox.h (renamed from src/emu/bus/ti99_peb/peribox.h)2
-rw-r--r--src/devices/bus/ti99_peb/samsmem.c (renamed from src/emu/bus/ti99_peb/samsmem.c)0
-rw-r--r--src/devices/bus/ti99_peb/samsmem.h (renamed from src/emu/bus/ti99_peb/samsmem.h)0
-rw-r--r--src/devices/bus/ti99_peb/spchsyn.c (renamed from src/emu/bus/ti99_peb/spchsyn.c)0
-rw-r--r--src/devices/bus/ti99_peb/spchsyn.h (renamed from src/emu/bus/ti99_peb/spchsyn.h)0
-rw-r--r--src/devices/bus/ti99_peb/ti_32kmem.c (renamed from src/emu/bus/ti99_peb/ti_32kmem.c)0
-rw-r--r--src/devices/bus/ti99_peb/ti_32kmem.h (renamed from src/emu/bus/ti99_peb/ti_32kmem.h)0
-rw-r--r--src/devices/bus/ti99_peb/ti_fdc.c (renamed from src/emu/bus/ti99_peb/ti_fdc.c)3
-rw-r--r--src/devices/bus/ti99_peb/ti_fdc.h (renamed from src/emu/bus/ti99_peb/ti_fdc.h)0
-rw-r--r--src/devices/bus/ti99_peb/ti_rs232.c (renamed from src/emu/bus/ti99_peb/ti_rs232.c)11
-rw-r--r--src/devices/bus/ti99_peb/ti_rs232.h (renamed from src/emu/bus/ti99_peb/ti_rs232.h)0
-rw-r--r--src/devices/bus/ti99_peb/tn_ide.c (renamed from src/emu/bus/ti99_peb/tn_ide.c)1
-rw-r--r--src/devices/bus/ti99_peb/tn_ide.h (renamed from src/emu/bus/ti99_peb/tn_ide.h)0
-rw-r--r--src/devices/bus/ti99_peb/tn_usbsm.c (renamed from src/emu/bus/ti99_peb/tn_usbsm.c)0
-rw-r--r--src/devices/bus/ti99_peb/tn_usbsm.h (renamed from src/emu/bus/ti99_peb/tn_usbsm.h)0
-rw-r--r--src/devices/bus/ti99x/990_dk.c (renamed from src/mess/machine/ti99/990_dk.c)0
-rw-r--r--src/devices/bus/ti99x/990_dk.h (renamed from src/mess/machine/ti99/990_dk.h)0
-rw-r--r--src/devices/bus/ti99x/990_hd.c (renamed from src/mess/machine/ti99/990_hd.c)0
-rw-r--r--src/devices/bus/ti99x/990_hd.h (renamed from src/mess/machine/ti99/990_hd.h)0
-rw-r--r--src/devices/bus/ti99x/990_tap.c (renamed from src/mess/machine/ti99/990_tap.c)0
-rw-r--r--src/devices/bus/ti99x/990_tap.h (renamed from src/mess/machine/ti99/990_tap.h)0
-rw-r--r--src/devices/bus/ti99x/998board.c (renamed from src/mess/machine/ti99/mapper8.c)267
-rw-r--r--src/devices/bus/ti99x/998board.h (renamed from src/mess/machine/ti99/mapper8.h)59
-rw-r--r--src/devices/bus/ti99x/datamux.c (renamed from src/mess/machine/ti99/datamux.c)2
-rw-r--r--src/devices/bus/ti99x/datamux.h (renamed from src/mess/machine/ti99/datamux.h)0
-rw-r--r--src/devices/bus/ti99x/genboard.c (renamed from src/mess/machine/ti99/genboard.c)351
-rw-r--r--src/devices/bus/ti99x/genboard.h (renamed from src/mess/machine/ti99/genboard.h)36
-rw-r--r--src/devices/bus/ti99x/grom.c (renamed from src/mess/machine/ti99/grom.c)0
-rw-r--r--src/devices/bus/ti99x/grom.h (renamed from src/mess/machine/ti99/grom.h)0
-rw-r--r--src/devices/bus/ti99x/gromport.c (renamed from src/mess/machine/ti99/gromport.c)216
-rw-r--r--src/devices/bus/ti99x/gromport.h (renamed from src/mess/machine/ti99/gromport.h)28
-rw-r--r--src/devices/bus/ti99x/handset.c (renamed from src/mess/machine/ti99/handset.c)0
-rw-r--r--src/devices/bus/ti99x/handset.h (renamed from src/mess/machine/ti99/handset.h)0
-rw-r--r--src/devices/bus/ti99x/joyport.c (renamed from src/mess/machine/ti99/joyport.c)0
-rw-r--r--src/devices/bus/ti99x/joyport.h (renamed from src/mess/machine/ti99/joyport.h)0
-rw-r--r--src/devices/bus/ti99x/mecmouse.c (renamed from src/mess/machine/ti99/mecmouse.c)0
-rw-r--r--src/devices/bus/ti99x/mecmouse.h (renamed from src/mess/machine/ti99/mecmouse.h)0
-rw-r--r--src/devices/bus/ti99x/ti99defs.h (renamed from src/mess/machine/ti99/ti99defs.h)6
-rw-r--r--src/devices/bus/ti99x/videowrp.c (renamed from src/mess/machine/ti99/videowrp.c)0
-rw-r--r--src/devices/bus/ti99x/videowrp.h (renamed from src/mess/machine/ti99/videowrp.h)2
-rw-r--r--src/devices/bus/tiki100/8088.c176
-rw-r--r--src/devices/bus/tiki100/8088.h60
-rw-r--r--src/devices/bus/tiki100/exp.c207
-rw-r--r--src/devices/bus/tiki100/exp.h193
-rw-r--r--src/devices/bus/tiki100/hdc.c118
-rw-r--r--src/devices/bus/tiki100/hdc.h55
-rw-r--r--src/devices/bus/tvc/hbf.c (renamed from src/emu/bus/tvc/hbf.c)0
-rw-r--r--src/devices/bus/tvc/hbf.h (renamed from src/emu/bus/tvc/hbf.h)0
-rw-r--r--src/devices/bus/tvc/tvc.c (renamed from src/emu/bus/tvc/tvc.c)0
-rw-r--r--src/devices/bus/tvc/tvc.h (renamed from src/emu/bus/tvc/tvc.h)0
-rw-r--r--src/devices/bus/vboy/rom.c (renamed from src/emu/bus/vboy/rom.c)0
-rw-r--r--src/devices/bus/vboy/rom.h (renamed from src/emu/bus/vboy/rom.h)0
-rw-r--r--src/devices/bus/vboy/slot.c (renamed from src/emu/bus/vboy/slot.c)0
-rw-r--r--src/devices/bus/vboy/slot.h (renamed from src/emu/bus/vboy/slot.h)0
-rw-r--r--src/devices/bus/vc4000/rom.c (renamed from src/emu/bus/vc4000/rom.c)0
-rw-r--r--src/devices/bus/vc4000/rom.h (renamed from src/emu/bus/vc4000/rom.h)0
-rw-r--r--src/devices/bus/vc4000/slot.c (renamed from src/emu/bus/vc4000/slot.c)0
-rw-r--r--src/devices/bus/vc4000/slot.h (renamed from src/emu/bus/vc4000/slot.h)0
-rw-r--r--src/devices/bus/vcs/compumat.c (renamed from src/emu/bus/vcs/compumat.c)0
-rw-r--r--src/devices/bus/vcs/compumat.h (renamed from src/emu/bus/vcs/compumat.h)0
-rw-r--r--src/devices/bus/vcs/dpc.c (renamed from src/emu/bus/vcs/dpc.c)0
-rw-r--r--src/devices/bus/vcs/dpc.h (renamed from src/emu/bus/vcs/dpc.h)0
-rwxr-xr-xsrc/devices/bus/vcs/rom.c (renamed from src/emu/bus/vcs/rom.c)0
-rwxr-xr-xsrc/devices/bus/vcs/rom.h (renamed from src/emu/bus/vcs/rom.h)0
-rw-r--r--src/devices/bus/vcs/scharger.c (renamed from src/emu/bus/vcs/scharger.c)0
-rw-r--r--src/devices/bus/vcs/scharger.h (renamed from src/emu/bus/vcs/scharger.h)0
-rwxr-xr-xsrc/devices/bus/vcs/vcs_slot.c (renamed from src/emu/bus/vcs/vcs_slot.c)0
-rwxr-xr-xsrc/devices/bus/vcs/vcs_slot.h (renamed from src/emu/bus/vcs/vcs_slot.h)0
-rw-r--r--src/devices/bus/vcs_ctrl/ctrl.c (renamed from src/emu/bus/vcs_ctrl/ctrl.c)0
-rw-r--r--src/devices/bus/vcs_ctrl/ctrl.h (renamed from src/emu/bus/vcs_ctrl/ctrl.h)0
-rw-r--r--src/devices/bus/vcs_ctrl/joybooster.c (renamed from src/emu/bus/vcs_ctrl/joybooster.c)0
-rw-r--r--src/devices/bus/vcs_ctrl/joybooster.h (renamed from src/emu/bus/vcs_ctrl/joybooster.h)0
-rw-r--r--src/devices/bus/vcs_ctrl/joystick.c (renamed from src/emu/bus/vcs_ctrl/joystick.c)0
-rw-r--r--src/devices/bus/vcs_ctrl/joystick.h (renamed from src/emu/bus/vcs_ctrl/joystick.h)0
-rw-r--r--src/devices/bus/vcs_ctrl/keypad.c (renamed from src/emu/bus/vcs_ctrl/keypad.c)0
-rw-r--r--src/devices/bus/vcs_ctrl/keypad.h (renamed from src/emu/bus/vcs_ctrl/keypad.h)0
-rw-r--r--src/devices/bus/vcs_ctrl/lightpen.c (renamed from src/emu/bus/vcs_ctrl/lightpen.c)0
-rw-r--r--src/devices/bus/vcs_ctrl/lightpen.h (renamed from src/emu/bus/vcs_ctrl/lightpen.h)0
-rw-r--r--src/devices/bus/vcs_ctrl/paddles.c (renamed from src/emu/bus/vcs_ctrl/paddles.c)0
-rw-r--r--src/devices/bus/vcs_ctrl/paddles.h (renamed from src/emu/bus/vcs_ctrl/paddles.h)0
-rw-r--r--src/devices/bus/vcs_ctrl/wheel.c (renamed from src/emu/bus/vcs_ctrl/wheel.c)0
-rw-r--r--src/devices/bus/vcs_ctrl/wheel.h (renamed from src/emu/bus/vcs_ctrl/wheel.h)0
-rw-r--r--src/devices/bus/vectrex/rom.c (renamed from src/emu/bus/vectrex/rom.c)0
-rw-r--r--src/devices/bus/vectrex/rom.h (renamed from src/emu/bus/vectrex/rom.h)0
-rw-r--r--src/devices/bus/vectrex/slot.c (renamed from src/emu/bus/vectrex/slot.c)0
-rw-r--r--src/devices/bus/vectrex/slot.h (renamed from src/emu/bus/vectrex/slot.h)0
-rw-r--r--src/devices/bus/vic10/exp.c (renamed from src/emu/bus/vic10/exp.c)0
-rw-r--r--src/devices/bus/vic10/exp.h (renamed from src/emu/bus/vic10/exp.h)0
-rw-r--r--src/devices/bus/vic10/std.c (renamed from src/emu/bus/vic10/std.c)0
-rw-r--r--src/devices/bus/vic10/std.h (renamed from src/emu/bus/vic10/std.h)0
-rw-r--r--src/devices/bus/vic20/4cga.c (renamed from src/emu/bus/vic20/4cga.c)0
-rw-r--r--src/devices/bus/vic20/4cga.h (renamed from src/emu/bus/vic20/4cga.h)0
-rw-r--r--src/devices/bus/vic20/exp.c (renamed from src/emu/bus/vic20/exp.c)0
-rw-r--r--src/devices/bus/vic20/exp.h (renamed from src/emu/bus/vic20/exp.h)0
-rw-r--r--src/devices/bus/vic20/fe3.c (renamed from src/emu/bus/vic20/fe3.c)0
-rw-r--r--src/devices/bus/vic20/fe3.h (renamed from src/emu/bus/vic20/fe3.h)0
-rw-r--r--src/devices/bus/vic20/megacart.c (renamed from src/emu/bus/vic20/megacart.c)0
-rw-r--r--src/devices/bus/vic20/megacart.h (renamed from src/emu/bus/vic20/megacart.h)0
-rw-r--r--src/devices/bus/vic20/std.c (renamed from src/emu/bus/vic20/std.c)0
-rw-r--r--src/devices/bus/vic20/std.h (renamed from src/emu/bus/vic20/std.h)0
-rw-r--r--src/devices/bus/vic20/user.c (renamed from src/emu/bus/vic20/user.c)0
-rw-r--r--src/devices/bus/vic20/user.h (renamed from src/emu/bus/vic20/user.h)0
-rw-r--r--src/devices/bus/vic20/vic1010.c (renamed from src/emu/bus/vic20/vic1010.c)0
-rw-r--r--src/devices/bus/vic20/vic1010.h (renamed from src/emu/bus/vic20/vic1010.h)0
-rw-r--r--src/devices/bus/vic20/vic1011.c (renamed from src/emu/bus/vic20/vic1011.c)0
-rw-r--r--src/devices/bus/vic20/vic1011.h (renamed from src/emu/bus/vic20/vic1011.h)0
-rw-r--r--src/devices/bus/vic20/vic1110.c (renamed from src/emu/bus/vic20/vic1110.c)0
-rw-r--r--src/devices/bus/vic20/vic1110.h (renamed from src/emu/bus/vic20/vic1110.h)0
-rw-r--r--src/devices/bus/vic20/vic1111.c (renamed from src/emu/bus/vic20/vic1111.c)0
-rw-r--r--src/devices/bus/vic20/vic1111.h (renamed from src/emu/bus/vic20/vic1111.h)0
-rw-r--r--src/devices/bus/vic20/vic1112.c (renamed from src/emu/bus/vic20/vic1112.c)0
-rw-r--r--src/devices/bus/vic20/vic1112.h (renamed from src/emu/bus/vic20/vic1112.h)0
-rw-r--r--src/devices/bus/vic20/vic1210.c (renamed from src/emu/bus/vic20/vic1210.c)0
-rw-r--r--src/devices/bus/vic20/vic1210.h (renamed from src/emu/bus/vic20/vic1210.h)0
-rw-r--r--src/devices/bus/vidbrain/exp.c (renamed from src/emu/bus/vidbrain/exp.c)0
-rw-r--r--src/devices/bus/vidbrain/exp.h (renamed from src/emu/bus/vidbrain/exp.h)0
-rw-r--r--src/devices/bus/vidbrain/money_minder.c (renamed from src/emu/bus/vidbrain/money_minder.c)0
-rw-r--r--src/devices/bus/vidbrain/money_minder.h (renamed from src/emu/bus/vidbrain/money_minder.h)0
-rw-r--r--src/devices/bus/vidbrain/std.c (renamed from src/emu/bus/vidbrain/std.c)0
-rw-r--r--src/devices/bus/vidbrain/std.h (renamed from src/emu/bus/vidbrain/std.h)0
-rw-r--r--src/devices/bus/vidbrain/timeshare.c (renamed from src/emu/bus/vidbrain/timeshare.c)0
-rw-r--r--src/devices/bus/vidbrain/timeshare.h (renamed from src/emu/bus/vidbrain/timeshare.h)0
-rw-r--r--src/devices/bus/vip/byteio.c (renamed from src/emu/bus/vip/byteio.c)0
-rw-r--r--src/devices/bus/vip/byteio.h (renamed from src/emu/bus/vip/byteio.h)0
-rw-r--r--src/devices/bus/vip/exp.c (renamed from src/emu/bus/vip/exp.c)0
-rw-r--r--src/devices/bus/vip/exp.h (renamed from src/emu/bus/vip/exp.h)0
-rw-r--r--src/devices/bus/vip/vp550.c (renamed from src/emu/bus/vip/vp550.c)0
-rw-r--r--src/devices/bus/vip/vp550.h (renamed from src/emu/bus/vip/vp550.h)0
-rw-r--r--src/devices/bus/vip/vp570.c (renamed from src/emu/bus/vip/vp570.c)0
-rw-r--r--src/devices/bus/vip/vp570.h (renamed from src/emu/bus/vip/vp570.h)0
-rw-r--r--src/devices/bus/vip/vp575.c (renamed from src/emu/bus/vip/vp575.c)0
-rw-r--r--src/devices/bus/vip/vp575.h (renamed from src/emu/bus/vip/vp575.h)0
-rw-r--r--src/devices/bus/vip/vp585.c (renamed from src/emu/bus/vip/vp585.c)0
-rw-r--r--src/devices/bus/vip/vp585.h (renamed from src/emu/bus/vip/vp585.h)0
-rw-r--r--src/devices/bus/vip/vp590.c (renamed from src/emu/bus/vip/vp590.c)0
-rw-r--r--src/devices/bus/vip/vp590.h (renamed from src/emu/bus/vip/vp590.h)0
-rw-r--r--src/devices/bus/vip/vp595.c (renamed from src/emu/bus/vip/vp595.c)0
-rw-r--r--src/devices/bus/vip/vp595.h (renamed from src/emu/bus/vip/vp595.h)0
-rw-r--r--src/devices/bus/vip/vp620.c (renamed from src/emu/bus/vip/vp620.c)0
-rw-r--r--src/devices/bus/vip/vp620.h (renamed from src/emu/bus/vip/vp620.h)0
-rw-r--r--src/devices/bus/vip/vp700.c (renamed from src/emu/bus/vip/vp700.c)0
-rw-r--r--src/devices/bus/vip/vp700.h (renamed from src/emu/bus/vip/vp700.h)0
-rw-r--r--src/devices/bus/vtech/ioexp/carts.c (renamed from src/emu/bus/vtech/ioexp/carts.c)0
-rw-r--r--src/devices/bus/vtech/ioexp/carts.h (renamed from src/emu/bus/vtech/ioexp/carts.h)0
-rw-r--r--src/devices/bus/vtech/ioexp/ioexp.c (renamed from src/emu/bus/vtech/ioexp/ioexp.c)0
-rw-r--r--src/devices/bus/vtech/ioexp/ioexp.h (renamed from src/emu/bus/vtech/ioexp/ioexp.h)0
-rw-r--r--src/devices/bus/vtech/ioexp/joystick.c (renamed from src/emu/bus/vtech/ioexp/joystick.c)0
-rw-r--r--src/devices/bus/vtech/ioexp/joystick.h (renamed from src/emu/bus/vtech/ioexp/joystick.h)0
-rw-r--r--src/devices/bus/vtech/ioexp/printer.c (renamed from src/emu/bus/vtech/ioexp/printer.c)0
-rw-r--r--src/devices/bus/vtech/ioexp/printer.h (renamed from src/emu/bus/vtech/ioexp/printer.h)0
-rw-r--r--src/devices/bus/vtech/memexp/carts.c (renamed from src/emu/bus/vtech/memexp/carts.c)0
-rw-r--r--src/devices/bus/vtech/memexp/carts.h (renamed from src/emu/bus/vtech/memexp/carts.h)0
-rw-r--r--src/devices/bus/vtech/memexp/floppy.c (renamed from src/emu/bus/vtech/memexp/floppy.c)0
-rw-r--r--src/devices/bus/vtech/memexp/floppy.h (renamed from src/emu/bus/vtech/memexp/floppy.h)0
-rw-r--r--src/devices/bus/vtech/memexp/memexp.c (renamed from src/emu/bus/vtech/memexp/memexp.c)0
-rw-r--r--src/devices/bus/vtech/memexp/memexp.h (renamed from src/emu/bus/vtech/memexp/memexp.h)0
-rw-r--r--src/devices/bus/vtech/memexp/memory.c (renamed from src/emu/bus/vtech/memexp/memory.c)0
-rw-r--r--src/devices/bus/vtech/memexp/memory.h (renamed from src/emu/bus/vtech/memexp/memory.h)0
-rw-r--r--src/devices/bus/vtech/memexp/rs232.c (renamed from src/emu/bus/vtech/memexp/rs232.c)0
-rw-r--r--src/devices/bus/vtech/memexp/rs232.h (renamed from src/emu/bus/vtech/memexp/rs232.h)0
-rw-r--r--src/devices/bus/vtech/memexp/wordpro.c (renamed from src/emu/bus/vtech/memexp/wordpro.c)0
-rw-r--r--src/devices/bus/vtech/memexp/wordpro.h (renamed from src/emu/bus/vtech/memexp/wordpro.h)0
-rw-r--r--src/devices/bus/wangpc/emb.c (renamed from src/emu/bus/wangpc/emb.c)0
-rw-r--r--src/devices/bus/wangpc/emb.h (renamed from src/emu/bus/wangpc/emb.h)0
-rw-r--r--src/devices/bus/wangpc/lic.c (renamed from src/emu/bus/wangpc/lic.c)0
-rw-r--r--src/devices/bus/wangpc/lic.h (renamed from src/emu/bus/wangpc/lic.h)0
-rw-r--r--src/devices/bus/wangpc/lvc.c (renamed from src/emu/bus/wangpc/lvc.c)0
-rw-r--r--src/devices/bus/wangpc/lvc.h (renamed from src/emu/bus/wangpc/lvc.h)0
-rw-r--r--src/devices/bus/wangpc/mcc.c (renamed from src/emu/bus/wangpc/mcc.c)0
-rw-r--r--src/devices/bus/wangpc/mcc.h (renamed from src/emu/bus/wangpc/mcc.h)0
-rw-r--r--src/devices/bus/wangpc/mvc.c (renamed from src/emu/bus/wangpc/mvc.c)0
-rw-r--r--src/devices/bus/wangpc/mvc.h (renamed from src/emu/bus/wangpc/mvc.h)0
-rw-r--r--src/devices/bus/wangpc/rtc.c (renamed from src/emu/bus/wangpc/rtc.c)0
-rw-r--r--src/devices/bus/wangpc/rtc.h (renamed from src/emu/bus/wangpc/rtc.h)0
-rw-r--r--src/devices/bus/wangpc/tig.c (renamed from src/emu/bus/wangpc/tig.c)0
-rw-r--r--src/devices/bus/wangpc/tig.h (renamed from src/emu/bus/wangpc/tig.h)0
-rw-r--r--src/devices/bus/wangpc/wangpc.c (renamed from src/emu/bus/wangpc/wangpc.c)0
-rw-r--r--src/devices/bus/wangpc/wangpc.h (renamed from src/emu/bus/wangpc/wangpc.h)0
-rw-r--r--src/devices/bus/wangpc/wdc.c (renamed from src/emu/bus/wangpc/wdc.c)0
-rw-r--r--src/devices/bus/wangpc/wdc.h (renamed from src/emu/bus/wangpc/wdc.h)0
-rw-r--r--src/devices/bus/wswan/rom.c (renamed from src/emu/bus/wswan/rom.c)0
-rw-r--r--src/devices/bus/wswan/rom.h (renamed from src/emu/bus/wswan/rom.h)0
-rw-r--r--src/devices/bus/wswan/slot.c (renamed from src/emu/bus/wswan/slot.c)0
-rw-r--r--src/devices/bus/wswan/slot.h (renamed from src/emu/bus/wswan/slot.h)0
-rw-r--r--src/devices/bus/x68k/x68k_neptunex.c (renamed from src/emu/bus/x68k/x68k_neptunex.c)0
-rw-r--r--src/devices/bus/x68k/x68k_neptunex.h (renamed from src/emu/bus/x68k/x68k_neptunex.h)0
-rw-r--r--src/devices/bus/x68k/x68k_scsiext.c (renamed from src/emu/bus/x68k/x68k_scsiext.c)0
-rw-r--r--src/devices/bus/x68k/x68k_scsiext.h (renamed from src/emu/bus/x68k/x68k_scsiext.h)0
-rw-r--r--src/devices/bus/x68k/x68kexp.c (renamed from src/emu/bus/x68k/x68kexp.c)0
-rw-r--r--src/devices/bus/x68k/x68kexp.h (renamed from src/emu/bus/x68k/x68kexp.h)0
-rw-r--r--src/devices/bus/z88/flash.c (renamed from src/emu/bus/z88/flash.c)0
-rw-r--r--src/devices/bus/z88/flash.h (renamed from src/emu/bus/z88/flash.h)0
-rw-r--r--src/devices/bus/z88/ram.c (renamed from src/emu/bus/z88/ram.c)0
-rw-r--r--src/devices/bus/z88/ram.h (renamed from src/emu/bus/z88/ram.h)0
-rw-r--r--src/devices/bus/z88/rom.c (renamed from src/emu/bus/z88/rom.c)0
-rw-r--r--src/devices/bus/z88/rom.h (renamed from src/emu/bus/z88/rom.h)0
-rw-r--r--src/devices/bus/z88/z88.c (renamed from src/emu/bus/z88/z88.c)0
-rw-r--r--src/devices/bus/z88/z88.h (renamed from src/emu/bus/z88/z88.h)0
-rw-r--r--src/devices/cpu/8x300/8x300.c (renamed from src/emu/cpu/8x300/8x300.c)0
-rw-r--r--src/devices/cpu/8x300/8x300.h (renamed from src/emu/cpu/8x300/8x300.h)0
-rw-r--r--src/devices/cpu/8x300/8x300dasm.c (renamed from src/emu/cpu/8x300/8x300dasm.c)0
-rw-r--r--src/devices/cpu/adsp2100/2100dasm.c (renamed from src/emu/cpu/adsp2100/2100dasm.c)0
-rw-r--r--src/devices/cpu/adsp2100/2100ops.inc (renamed from src/emu/cpu/adsp2100/2100ops.inc)0
-rw-r--r--src/devices/cpu/adsp2100/adsp2100.c (renamed from src/emu/cpu/adsp2100/adsp2100.c)0
-rw-r--r--src/devices/cpu/adsp2100/adsp2100.h (renamed from src/emu/cpu/adsp2100/adsp2100.h)0
-rw-r--r--src/devices/cpu/alph8201/8201dasm.c (renamed from src/emu/cpu/alph8201/8201dasm.c)0
-rw-r--r--src/devices/cpu/alph8201/alph8201.c (renamed from src/emu/cpu/alph8201/alph8201.c)0
-rw-r--r--src/devices/cpu/alph8201/alph8201.h (renamed from src/emu/cpu/alph8201/alph8201.h)0
-rw-r--r--src/devices/cpu/alto2/a2curt.c (renamed from src/emu/cpu/alto2/a2curt.c)0
-rw-r--r--src/devices/cpu/alto2/a2curt.h (renamed from src/emu/cpu/alto2/a2curt.h)0
-rw-r--r--src/devices/cpu/alto2/a2dht.c (renamed from src/emu/cpu/alto2/a2dht.c)0
-rw-r--r--src/devices/cpu/alto2/a2dht.h (renamed from src/emu/cpu/alto2/a2dht.h)0
-rw-r--r--src/devices/cpu/alto2/a2disk.c (renamed from src/emu/cpu/alto2/a2disk.c)0
-rw-r--r--src/devices/cpu/alto2/a2disk.h (renamed from src/emu/cpu/alto2/a2disk.h)0
-rw-r--r--src/devices/cpu/alto2/a2disp.c (renamed from src/emu/cpu/alto2/a2disp.c)0
-rw-r--r--src/devices/cpu/alto2/a2disp.h (renamed from src/emu/cpu/alto2/a2disp.h)0
-rw-r--r--src/devices/cpu/alto2/a2dvt.c (renamed from src/emu/cpu/alto2/a2dvt.c)0
-rw-r--r--src/devices/cpu/alto2/a2dvt.h (renamed from src/emu/cpu/alto2/a2dvt.h)0
-rw-r--r--src/devices/cpu/alto2/a2dwt.c (renamed from src/emu/cpu/alto2/a2dwt.c)0
-rw-r--r--src/devices/cpu/alto2/a2dwt.h (renamed from src/emu/cpu/alto2/a2dwt.h)0
-rw-r--r--src/devices/cpu/alto2/a2emu.c (renamed from src/emu/cpu/alto2/a2emu.c)0
-rw-r--r--src/devices/cpu/alto2/a2emu.h (renamed from src/emu/cpu/alto2/a2emu.h)0
-rw-r--r--src/devices/cpu/alto2/a2ether.c (renamed from src/emu/cpu/alto2/a2ether.c)0
-rw-r--r--src/devices/cpu/alto2/a2ether.h (renamed from src/emu/cpu/alto2/a2ether.h)0
-rw-r--r--src/devices/cpu/alto2/a2hw.c (renamed from src/emu/cpu/alto2/a2hw.c)0
-rw-r--r--src/devices/cpu/alto2/a2hw.h (renamed from src/emu/cpu/alto2/a2hw.h)0
-rw-r--r--src/devices/cpu/alto2/a2jkff.h (renamed from src/emu/cpu/alto2/a2jkff.h)0
-rw-r--r--src/devices/cpu/alto2/a2kbd.c (renamed from src/emu/cpu/alto2/a2kbd.c)0
-rw-r--r--src/devices/cpu/alto2/a2kbd.h (renamed from src/emu/cpu/alto2/a2kbd.h)0
-rw-r--r--src/devices/cpu/alto2/a2ksec.c (renamed from src/emu/cpu/alto2/a2ksec.c)0
-rw-r--r--src/devices/cpu/alto2/a2ksec.h (renamed from src/emu/cpu/alto2/a2ksec.h)0
-rw-r--r--src/devices/cpu/alto2/a2kwd.c (renamed from src/emu/cpu/alto2/a2kwd.c)0
-rw-r--r--src/devices/cpu/alto2/a2kwd.h (renamed from src/emu/cpu/alto2/a2kwd.h)0
-rw-r--r--src/devices/cpu/alto2/a2mem.c (renamed from src/emu/cpu/alto2/a2mem.c)0
-rw-r--r--src/devices/cpu/alto2/a2mem.h (renamed from src/emu/cpu/alto2/a2mem.h)0
-rw-r--r--src/devices/cpu/alto2/a2mouse.c (renamed from src/emu/cpu/alto2/a2mouse.c)0
-rw-r--r--src/devices/cpu/alto2/a2mouse.h (renamed from src/emu/cpu/alto2/a2mouse.h)0
-rw-r--r--src/devices/cpu/alto2/a2mrt.c (renamed from src/emu/cpu/alto2/a2mrt.c)0
-rw-r--r--src/devices/cpu/alto2/a2mrt.h (renamed from src/emu/cpu/alto2/a2mrt.h)0
-rw-r--r--src/devices/cpu/alto2/a2part.c (renamed from src/emu/cpu/alto2/a2part.c)0
-rw-r--r--src/devices/cpu/alto2/a2part.h (renamed from src/emu/cpu/alto2/a2part.h)0
-rw-r--r--src/devices/cpu/alto2/a2ram.c (renamed from src/emu/cpu/alto2/a2ram.c)0
-rw-r--r--src/devices/cpu/alto2/a2ram.h (renamed from src/emu/cpu/alto2/a2ram.h)0
-rw-r--r--src/devices/cpu/alto2/a2roms.c (renamed from src/emu/cpu/alto2/a2roms.c)0
-rw-r--r--src/devices/cpu/alto2/a2roms.h (renamed from src/emu/cpu/alto2/a2roms.h)0
-rw-r--r--src/devices/cpu/alto2/alto2cpu.c (renamed from src/emu/cpu/alto2/alto2cpu.c)0
-rw-r--r--src/devices/cpu/alto2/alto2cpu.h (renamed from src/emu/cpu/alto2/alto2cpu.h)0
-rw-r--r--src/devices/cpu/alto2/alto2dsm.c (renamed from src/emu/cpu/alto2/alto2dsm.c)0
-rw-r--r--src/devices/cpu/am29000/am29000.c (renamed from src/emu/cpu/am29000/am29000.c)0
-rw-r--r--src/devices/cpu/am29000/am29000.h (renamed from src/emu/cpu/am29000/am29000.h)0
-rw-r--r--src/devices/cpu/am29000/am29dasm.c (renamed from src/emu/cpu/am29000/am29dasm.c)0
-rw-r--r--src/devices/cpu/am29000/am29ops.h (renamed from src/emu/cpu/am29000/am29ops.h)0
-rw-r--r--src/devices/cpu/amis2000/amis2000.c (renamed from src/emu/cpu/amis2000/amis2000.c)0
-rw-r--r--src/devices/cpu/amis2000/amis2000.h (renamed from src/emu/cpu/amis2000/amis2000.h)0
-rw-r--r--src/devices/cpu/amis2000/amis2000d.c (renamed from src/emu/cpu/amis2000/amis2000d.c)0
-rw-r--r--src/devices/cpu/amis2000/amis2000op.c (renamed from src/emu/cpu/amis2000/amis2000op.c)0
-rw-r--r--src/devices/cpu/apexc/apexc.c (renamed from src/emu/cpu/apexc/apexc.c)0
-rw-r--r--src/devices/cpu/apexc/apexc.h (renamed from src/emu/cpu/apexc/apexc.h)0
-rw-r--r--src/devices/cpu/apexc/apexcdsm.c (renamed from src/emu/cpu/apexc/apexcdsm.c)0
-rw-r--r--src/devices/cpu/arc/arc.c (renamed from src/emu/cpu/arc/arc.c)0
-rw-r--r--src/devices/cpu/arc/arc.h (renamed from src/emu/cpu/arc/arc.h)0
-rw-r--r--src/devices/cpu/arc/arcdasm.c (renamed from src/emu/cpu/arc/arcdasm.c)0
-rw-r--r--src/devices/cpu/arcompact/arcompact.c (renamed from src/emu/cpu/arcompact/arcompact.c)0
-rw-r--r--src/devices/cpu/arcompact/arcompact.h (renamed from src/emu/cpu/arcompact/arcompact.h)0
-rw-r--r--src/devices/cpu/arcompact/arcompact_common.c (renamed from src/emu/cpu/arcompact/arcompact_common.c)0
-rw-r--r--src/devices/cpu/arcompact/arcompact_common.h (renamed from src/emu/cpu/arcompact/arcompact_common.h)0
-rw-r--r--src/devices/cpu/arcompact/arcompact_execute.c (renamed from src/emu/cpu/arcompact/arcompact_execute.c)0
-rw-r--r--src/devices/cpu/arcompact/arcompact_make.py434
-rw-r--r--src/devices/cpu/arcompact/arcompactdasm.c (renamed from src/emu/cpu/arcompact/arcompactdasm.c)0
-rw-r--r--src/devices/cpu/arcompact/arcompactdasm_dispatch.c (renamed from src/emu/cpu/arcompact/arcompactdasm_dispatch.c)0
-rw-r--r--src/devices/cpu/arcompact/arcompactdasm_dispatch.h (renamed from src/emu/cpu/arcompact/arcompactdasm_dispatch.h)0
-rw-r--r--src/devices/cpu/arcompact/arcompactdasm_ops.c (renamed from src/emu/cpu/arcompact/arcompactdasm_ops.c)0
-rw-r--r--src/devices/cpu/arcompact/arcompactdasm_ops.h (renamed from src/emu/cpu/arcompact/arcompactdasm_ops.h)0
-rw-r--r--src/devices/cpu/arm/arm.c (renamed from src/emu/cpu/arm/arm.c)0
-rw-r--r--src/devices/cpu/arm/arm.h (renamed from src/emu/cpu/arm/arm.h)0
-rw-r--r--src/devices/cpu/arm/armdasm.c (renamed from src/emu/cpu/arm/armdasm.c)0
-rw-r--r--src/devices/cpu/arm7/arm7.c (renamed from src/emu/cpu/arm7/arm7.c)0
-rw-r--r--src/devices/cpu/arm7/arm7.h (renamed from src/emu/cpu/arm7/arm7.h)0
-rw-r--r--src/devices/cpu/arm7/arm7core.h (renamed from src/emu/cpu/arm7/arm7core.h)0
-rw-r--r--src/devices/cpu/arm7/arm7core.inc (renamed from src/emu/cpu/arm7/arm7core.inc)0
-rw-r--r--src/devices/cpu/arm7/arm7dasm.c (renamed from src/emu/cpu/arm7/arm7dasm.c)0
-rw-r--r--src/devices/cpu/arm7/arm7drc.inc (renamed from src/emu/cpu/arm7/arm7drc.inc)0
-rw-r--r--src/devices/cpu/arm7/arm7help.h (renamed from src/emu/cpu/arm7/arm7help.h)0
-rw-r--r--src/devices/cpu/arm7/arm7ops.c (renamed from src/emu/cpu/arm7/arm7ops.c)0
-rw-r--r--src/devices/cpu/arm7/arm7tdrc.inc (renamed from src/emu/cpu/arm7/arm7tdrc.inc)0
-rw-r--r--src/devices/cpu/arm7/arm7thmb.c (renamed from src/emu/cpu/arm7/arm7thmb.c)0
-rw-r--r--src/devices/cpu/asap/asap.c (renamed from src/emu/cpu/asap/asap.c)0
-rw-r--r--src/devices/cpu/asap/asap.h (renamed from src/emu/cpu/asap/asap.h)0
-rw-r--r--src/devices/cpu/asap/asapdasm.c (renamed from src/emu/cpu/asap/asapdasm.c)0
-rw-r--r--src/devices/cpu/avr8/avr8.c (renamed from src/emu/cpu/avr8/avr8.c)18
-rw-r--r--src/devices/cpu/avr8/avr8.h (renamed from src/emu/cpu/avr8/avr8.h)18
-rw-r--r--src/devices/cpu/avr8/avr8dasm.c (renamed from src/emu/cpu/avr8/avr8dasm.c)2
-rw-r--r--src/devices/cpu/ccpu/ccpu.c (renamed from src/emu/cpu/ccpu/ccpu.c)0
-rw-r--r--src/devices/cpu/ccpu/ccpu.h (renamed from src/emu/cpu/ccpu/ccpu.h)0
-rw-r--r--src/devices/cpu/ccpu/ccpudasm.c (renamed from src/emu/cpu/ccpu/ccpudasm.c)0
-rw-r--r--src/devices/cpu/cop400/cop400.c (renamed from src/emu/cpu/cop400/cop400.c)0
-rw-r--r--src/devices/cpu/cop400/cop400.h (renamed from src/emu/cpu/cop400/cop400.h)0
-rw-r--r--src/devices/cpu/cop400/cop400op.inc (renamed from src/emu/cpu/cop400/cop400op.inc)0
-rw-r--r--src/devices/cpu/cop400/cop410ds.c (renamed from src/emu/cpu/cop400/cop410ds.c)0
-rw-r--r--src/devices/cpu/cop400/cop420ds.c (renamed from src/emu/cpu/cop400/cop420ds.c)0
-rw-r--r--src/devices/cpu/cop400/cop440ds.c (renamed from src/emu/cpu/cop400/cop440ds.c)0
-rw-r--r--src/devices/cpu/cosmac/cosdasm.c (renamed from src/emu/cpu/cosmac/cosdasm.c)0
-rw-r--r--src/devices/cpu/cosmac/cosmac.c (renamed from src/emu/cpu/cosmac/cosmac.c)0
-rw-r--r--src/devices/cpu/cosmac/cosmac.h (renamed from src/emu/cpu/cosmac/cosmac.h)0
-rw-r--r--src/devices/cpu/cp1610/1610dasm.c (renamed from src/emu/cpu/cp1610/1610dasm.c)0
-rw-r--r--src/devices/cpu/cp1610/cp1610.c (renamed from src/emu/cpu/cp1610/cp1610.c)0
-rw-r--r--src/devices/cpu/cp1610/cp1610.h (renamed from src/emu/cpu/cp1610/cp1610.h)0
-rw-r--r--src/devices/cpu/cubeqcpu/cubedasm.c (renamed from src/emu/cpu/cubeqcpu/cubedasm.c)0
-rw-r--r--src/devices/cpu/cubeqcpu/cubeqcpu.c (renamed from src/emu/cpu/cubeqcpu/cubeqcpu.c)0
-rw-r--r--src/devices/cpu/cubeqcpu/cubeqcpu.h (renamed from src/emu/cpu/cubeqcpu/cubeqcpu.h)0
-rw-r--r--src/devices/cpu/drcbec.c (renamed from src/emu/cpu/drcbec.c)0
-rw-r--r--src/devices/cpu/drcbec.h (renamed from src/emu/cpu/drcbec.h)0
-rw-r--r--src/devices/cpu/drcbeut.c (renamed from src/emu/cpu/drcbeut.c)0
-rw-r--r--src/devices/cpu/drcbeut.h (renamed from src/emu/cpu/drcbeut.h)0
-rw-r--r--src/devices/cpu/drcbex64.c (renamed from src/emu/cpu/drcbex64.c)0
-rw-r--r--src/devices/cpu/drcbex64.h (renamed from src/emu/cpu/drcbex64.h)0
-rw-r--r--src/devices/cpu/drcbex86.c (renamed from src/emu/cpu/drcbex86.c)0
-rw-r--r--src/devices/cpu/drcbex86.h (renamed from src/emu/cpu/drcbex86.h)0
-rw-r--r--src/devices/cpu/drccache.c (renamed from src/emu/cpu/drccache.c)0
-rw-r--r--src/devices/cpu/drccache.h (renamed from src/emu/cpu/drccache.h)0
-rw-r--r--src/devices/cpu/drcfe.c (renamed from src/emu/cpu/drcfe.c)0
-rw-r--r--src/devices/cpu/drcfe.h (renamed from src/emu/cpu/drcfe.h)0
-rw-r--r--src/devices/cpu/drcuml.c (renamed from src/emu/cpu/drcuml.c)0
-rw-r--r--src/devices/cpu/drcuml.h (renamed from src/emu/cpu/drcuml.h)0
-rw-r--r--src/devices/cpu/drcumlsh.h (renamed from src/emu/cpu/drcumlsh.h)0
-rw-r--r--src/devices/cpu/dsp16/dsp16.c (renamed from src/emu/cpu/dsp16/dsp16.c)0
-rw-r--r--src/devices/cpu/dsp16/dsp16.h (renamed from src/emu/cpu/dsp16/dsp16.h)0
-rw-r--r--src/devices/cpu/dsp16/dsp16dis.c (renamed from src/emu/cpu/dsp16/dsp16dis.c)0
-rw-r--r--src/devices/cpu/dsp16/dsp16ops.inc (renamed from src/emu/cpu/dsp16/dsp16ops.inc)0
-rw-r--r--src/devices/cpu/dsp32/dsp32.c (renamed from src/emu/cpu/dsp32/dsp32.c)0
-rw-r--r--src/devices/cpu/dsp32/dsp32.h (renamed from src/emu/cpu/dsp32/dsp32.h)0
-rw-r--r--src/devices/cpu/dsp32/dsp32dis.c (renamed from src/emu/cpu/dsp32/dsp32dis.c)0
-rw-r--r--src/devices/cpu/dsp32/dsp32ops.inc (renamed from src/emu/cpu/dsp32/dsp32ops.inc)0
-rw-r--r--src/devices/cpu/dsp56k/dsp56def.h (renamed from src/emu/cpu/dsp56k/dsp56def.h)0
-rw-r--r--src/devices/cpu/dsp56k/dsp56dsm.c (renamed from src/emu/cpu/dsp56k/dsp56dsm.c)0
-rw-r--r--src/devices/cpu/dsp56k/dsp56k.c (renamed from src/emu/cpu/dsp56k/dsp56k.c)0
-rw-r--r--src/devices/cpu/dsp56k/dsp56k.h (renamed from src/emu/cpu/dsp56k/dsp56k.h)0
-rw-r--r--src/devices/cpu/dsp56k/dsp56mem.c (renamed from src/emu/cpu/dsp56k/dsp56mem.c)0
-rw-r--r--src/devices/cpu/dsp56k/dsp56mem.h (renamed from src/emu/cpu/dsp56k/dsp56mem.h)0
-rw-r--r--src/devices/cpu/dsp56k/dsp56ops.inc (renamed from src/emu/cpu/dsp56k/dsp56ops.inc)0
-rw-r--r--src/devices/cpu/dsp56k/dsp56pcu.c (renamed from src/emu/cpu/dsp56k/dsp56pcu.c)0
-rw-r--r--src/devices/cpu/dsp56k/dsp56pcu.h (renamed from src/emu/cpu/dsp56k/dsp56pcu.h)0
-rw-r--r--src/devices/cpu/dsp56k/inst.c (renamed from src/emu/cpu/dsp56k/inst.c)0
-rw-r--r--src/devices/cpu/dsp56k/inst.h (renamed from src/emu/cpu/dsp56k/inst.h)0
-rw-r--r--src/devices/cpu/dsp56k/opcode.c (renamed from src/emu/cpu/dsp56k/opcode.c)0
-rw-r--r--src/devices/cpu/dsp56k/opcode.h (renamed from src/emu/cpu/dsp56k/opcode.h)0
-rw-r--r--src/devices/cpu/dsp56k/pmove.c (renamed from src/emu/cpu/dsp56k/pmove.c)0
-rw-r--r--src/devices/cpu/dsp56k/pmove.h (renamed from src/emu/cpu/dsp56k/pmove.h)0
-rw-r--r--src/devices/cpu/dsp56k/tables.c (renamed from src/emu/cpu/dsp56k/tables.c)0
-rw-r--r--src/devices/cpu/dsp56k/tables.h (renamed from src/emu/cpu/dsp56k/tables.h)0
-rw-r--r--src/devices/cpu/e0c6200/e0c6200.c (renamed from src/emu/cpu/e0c6200/e0c6200.c)0
-rw-r--r--src/devices/cpu/e0c6200/e0c6200.h (renamed from src/emu/cpu/e0c6200/e0c6200.h)0
-rw-r--r--src/devices/cpu/e0c6200/e0c6200d.c (renamed from src/emu/cpu/e0c6200/e0c6200d.c)0
-rw-r--r--src/devices/cpu/e0c6200/e0c6200op.inc (renamed from src/emu/cpu/e0c6200/e0c6200op.inc)0
-rw-r--r--src/devices/cpu/e0c6200/e0c6s46.c (renamed from src/emu/cpu/e0c6200/e0c6s46.c)0
-rw-r--r--src/devices/cpu/e0c6200/e0c6s46.h (renamed from src/emu/cpu/e0c6200/e0c6s46.h)0
-rw-r--r--src/devices/cpu/e132xs/32xsdasm.c (renamed from src/emu/cpu/e132xs/32xsdasm.c)0
-rw-r--r--src/devices/cpu/e132xs/e132xs.c (renamed from src/emu/cpu/e132xs/e132xs.c)16
-rw-r--r--src/devices/cpu/e132xs/e132xs.h (renamed from src/emu/cpu/e132xs/e132xs.h)0
-rw-r--r--src/devices/cpu/e132xs/e132xsop.inc (renamed from src/emu/cpu/e132xs/e132xsop.inc)0
-rw-r--r--src/devices/cpu/es5510/es5510.c (renamed from src/emu/cpu/es5510/es5510.c)0
-rw-r--r--src/devices/cpu/es5510/es5510.h (renamed from src/emu/cpu/es5510/es5510.h)0
-rw-r--r--src/devices/cpu/esrip/esrip.c (renamed from src/emu/cpu/esrip/esrip.c)0
-rw-r--r--src/devices/cpu/esrip/esrip.h (renamed from src/emu/cpu/esrip/esrip.h)0
-rw-r--r--src/devices/cpu/esrip/esripdsm.c (renamed from src/emu/cpu/esrip/esripdsm.c)0
-rw-r--r--src/devices/cpu/f8/f8.c (renamed from src/emu/cpu/f8/f8.c)0
-rw-r--r--src/devices/cpu/f8/f8.h (renamed from src/emu/cpu/f8/f8.h)0
-rw-r--r--src/devices/cpu/f8/f8dasm.c (renamed from src/emu/cpu/f8/f8dasm.c)0
-rw-r--r--src/devices/cpu/g65816/g65816.c (renamed from src/emu/cpu/g65816/g65816.c)0
-rw-r--r--src/devices/cpu/g65816/g65816.h (renamed from src/emu/cpu/g65816/g65816.h)0
-rw-r--r--src/devices/cpu/g65816/g65816cm.h (renamed from src/emu/cpu/g65816/g65816cm.h)0
-rw-r--r--src/devices/cpu/g65816/g65816ds.c (renamed from src/emu/cpu/g65816/g65816ds.c)0
-rw-r--r--src/devices/cpu/g65816/g65816ds.h (renamed from src/emu/cpu/g65816/g65816ds.h)0
-rw-r--r--src/devices/cpu/g65816/g65816o0.c (renamed from src/emu/cpu/g65816/g65816o0.c)0
-rw-r--r--src/devices/cpu/g65816/g65816o1.c (renamed from src/emu/cpu/g65816/g65816o1.c)0
-rw-r--r--src/devices/cpu/g65816/g65816o2.c (renamed from src/emu/cpu/g65816/g65816o2.c)0
-rw-r--r--src/devices/cpu/g65816/g65816o3.c (renamed from src/emu/cpu/g65816/g65816o3.c)0
-rw-r--r--src/devices/cpu/g65816/g65816o4.c (renamed from src/emu/cpu/g65816/g65816o4.c)0
-rw-r--r--src/devices/cpu/g65816/g65816op.h (renamed from src/emu/cpu/g65816/g65816op.h)0
-rw-r--r--src/devices/cpu/h6280/6280dasm.c (renamed from src/emu/cpu/h6280/6280dasm.c)5
-rw-r--r--src/devices/cpu/h6280/h6280.c (renamed from src/emu/cpu/h6280/h6280.c)0
-rw-r--r--src/devices/cpu/h6280/h6280.h (renamed from src/emu/cpu/h6280/h6280.h)0
-rw-r--r--src/devices/cpu/h8/h8.c (renamed from src/emu/cpu/h8/h8.c)0
-rw-r--r--src/devices/cpu/h8/h8.h (renamed from src/emu/cpu/h8/h8.h)0
-rw-r--r--src/devices/cpu/h8/h8.lst (renamed from src/emu/cpu/h8/h8.lst)0
-rw-r--r--src/devices/cpu/h8/h83002.c (renamed from src/emu/cpu/h8/h83002.c)0
-rw-r--r--src/devices/cpu/h8/h83002.h (renamed from src/emu/cpu/h8/h83002.h)0
-rw-r--r--src/devices/cpu/h8/h83006.c (renamed from src/emu/cpu/h8/h83006.c)0
-rw-r--r--src/devices/cpu/h8/h83006.h (renamed from src/emu/cpu/h8/h83006.h)0
-rw-r--r--src/devices/cpu/h8/h83008.c (renamed from src/emu/cpu/h8/h83008.c)0
-rw-r--r--src/devices/cpu/h8/h83008.h (renamed from src/emu/cpu/h8/h83008.h)0
-rw-r--r--src/devices/cpu/h8/h83048.c (renamed from src/emu/cpu/h8/h83048.c)0
-rw-r--r--src/devices/cpu/h8/h83048.h (renamed from src/emu/cpu/h8/h83048.h)0
-rw-r--r--src/devices/cpu/h8/h83337.c (renamed from src/emu/cpu/h8/h83337.c)0
-rw-r--r--src/devices/cpu/h8/h83337.h (renamed from src/emu/cpu/h8/h83337.h)0
-rw-r--r--src/devices/cpu/h8/h8_adc.c (renamed from src/emu/cpu/h8/h8_adc.c)0
-rw-r--r--src/devices/cpu/h8/h8_adc.h (renamed from src/emu/cpu/h8/h8_adc.h)0
-rw-r--r--src/devices/cpu/h8/h8_intc.c (renamed from src/emu/cpu/h8/h8_intc.c)0
-rw-r--r--src/devices/cpu/h8/h8_intc.h (renamed from src/emu/cpu/h8/h8_intc.h)0
-rw-r--r--src/devices/cpu/h8/h8_port.c (renamed from src/emu/cpu/h8/h8_port.c)0
-rw-r--r--src/devices/cpu/h8/h8_port.h (renamed from src/emu/cpu/h8/h8_port.h)0
-rw-r--r--src/devices/cpu/h8/h8_sci.c (renamed from src/emu/cpu/h8/h8_sci.c)0
-rw-r--r--src/devices/cpu/h8/h8_sci.h (renamed from src/emu/cpu/h8/h8_sci.h)0
-rw-r--r--src/devices/cpu/h8/h8_timer16.c (renamed from src/emu/cpu/h8/h8_timer16.c)2
-rw-r--r--src/devices/cpu/h8/h8_timer16.h (renamed from src/emu/cpu/h8/h8_timer16.h)0
-rw-r--r--src/devices/cpu/h8/h8_timer8.c (renamed from src/emu/cpu/h8/h8_timer8.c)0
-rw-r--r--src/devices/cpu/h8/h8_timer8.h (renamed from src/emu/cpu/h8/h8_timer8.h)0
-rw-r--r--src/devices/cpu/h8/h8h.c (renamed from src/emu/cpu/h8/h8h.c)0
-rw-r--r--src/devices/cpu/h8/h8h.h (renamed from src/emu/cpu/h8/h8h.h)0
-rw-r--r--src/devices/cpu/h8/h8make.py (renamed from src/emu/cpu/h8/h8make.py)118
-rw-r--r--src/devices/cpu/h8/h8s2000.c (renamed from src/emu/cpu/h8/h8s2000.c)0
-rw-r--r--src/devices/cpu/h8/h8s2000.h (renamed from src/emu/cpu/h8/h8s2000.h)0
-rw-r--r--src/devices/cpu/h8/h8s2245.c (renamed from src/emu/cpu/h8/h8s2245.c)0
-rw-r--r--src/devices/cpu/h8/h8s2245.h (renamed from src/emu/cpu/h8/h8s2245.h)0
-rw-r--r--src/devices/cpu/h8/h8s2320.c (renamed from src/emu/cpu/h8/h8s2320.c)0
-rw-r--r--src/devices/cpu/h8/h8s2320.h (renamed from src/emu/cpu/h8/h8s2320.h)0
-rw-r--r--src/devices/cpu/h8/h8s2357.c (renamed from src/emu/cpu/h8/h8s2357.c)0
-rw-r--r--src/devices/cpu/h8/h8s2357.h (renamed from src/emu/cpu/h8/h8s2357.h)0
-rw-r--r--src/devices/cpu/h8/h8s2600.c (renamed from src/emu/cpu/h8/h8s2600.c)0
-rw-r--r--src/devices/cpu/h8/h8s2600.h (renamed from src/emu/cpu/h8/h8s2600.h)0
-rw-r--r--src/devices/cpu/h8/h8s2655.c (renamed from src/emu/cpu/h8/h8s2655.c)0
-rw-r--r--src/devices/cpu/h8/h8s2655.h (renamed from src/emu/cpu/h8/h8s2655.h)0
-rw-r--r--src/devices/cpu/hcd62121/hcd62121.c (renamed from src/emu/cpu/hcd62121/hcd62121.c)0
-rw-r--r--src/devices/cpu/hcd62121/hcd62121.h (renamed from src/emu/cpu/hcd62121/hcd62121.h)0
-rw-r--r--src/devices/cpu/hcd62121/hcd62121_ops.h (renamed from src/emu/cpu/hcd62121/hcd62121_ops.h)0
-rw-r--r--src/devices/cpu/hcd62121/hcd62121d.c (renamed from src/emu/cpu/hcd62121/hcd62121d.c)0
-rw-r--r--src/devices/cpu/hd61700/hd61700.c (renamed from src/emu/cpu/hd61700/hd61700.c)0
-rw-r--r--src/devices/cpu/hd61700/hd61700.h (renamed from src/emu/cpu/hd61700/hd61700.h)0
-rw-r--r--src/devices/cpu/hd61700/hd61700d.c (renamed from src/emu/cpu/hd61700/hd61700d.c)0
-rw-r--r--src/devices/cpu/hmcs40/hmcs40.c (renamed from src/emu/cpu/hmcs40/hmcs40.c)0
-rw-r--r--src/devices/cpu/hmcs40/hmcs40.h (renamed from src/emu/cpu/hmcs40/hmcs40.h)0
-rw-r--r--src/devices/cpu/hmcs40/hmcs40d.c (renamed from src/emu/cpu/hmcs40/hmcs40d.c)0
-rw-r--r--src/devices/cpu/hmcs40/hmcs40op.c (renamed from src/emu/cpu/hmcs40/hmcs40op.c)0
-rw-r--r--src/devices/cpu/hphybrid/hphybrid.c961
-rw-r--r--src/devices/cpu/hphybrid/hphybrid.h (renamed from src/emu/cpu/hphybrid/hphybrid.h)4
-rw-r--r--src/devices/cpu/hphybrid/hphybrid_dasm.c (renamed from src/emu/cpu/hphybrid/hphybrid_dasm.c)0
-rw-r--r--src/devices/cpu/i386/cycles.h (renamed from src/emu/cpu/i386/cycles.h)0
-rw-r--r--src/devices/cpu/i386/i386.c (renamed from src/emu/cpu/i386/i386.c)0
-rw-r--r--src/devices/cpu/i386/i386.h (renamed from src/emu/cpu/i386/i386.h)0
-rw-r--r--src/devices/cpu/i386/i386dasm.c (renamed from src/emu/cpu/i386/i386dasm.c)0
-rw-r--r--src/devices/cpu/i386/i386op16.inc (renamed from src/emu/cpu/i386/i386op16.inc)0
-rw-r--r--src/devices/cpu/i386/i386op32.inc (renamed from src/emu/cpu/i386/i386op32.inc)0
-rw-r--r--src/devices/cpu/i386/i386ops.h (renamed from src/emu/cpu/i386/i386ops.h)0
-rw-r--r--src/devices/cpu/i386/i386ops.inc (renamed from src/emu/cpu/i386/i386ops.inc)0
-rw-r--r--src/devices/cpu/i386/i386priv.h (renamed from src/emu/cpu/i386/i386priv.h)0
-rw-r--r--src/devices/cpu/i386/i486ops.inc (renamed from src/emu/cpu/i386/i486ops.inc)0
-rw-r--r--src/devices/cpu/i386/pentops.inc (renamed from src/emu/cpu/i386/pentops.inc)0
-rw-r--r--src/devices/cpu/i386/x87ops.inc (renamed from src/emu/cpu/i386/x87ops.inc)0
-rw-r--r--src/devices/cpu/i4004/4004dasm.c (renamed from src/emu/cpu/i4004/4004dasm.c)0
-rw-r--r--src/devices/cpu/i4004/i4004.c (renamed from src/emu/cpu/i4004/i4004.c)0
-rw-r--r--src/devices/cpu/i4004/i4004.h (renamed from src/emu/cpu/i4004/i4004.h)0
-rw-r--r--src/devices/cpu/i8008/8008dasm.c (renamed from src/emu/cpu/i8008/8008dasm.c)0
-rw-r--r--src/devices/cpu/i8008/i8008.c (renamed from src/emu/cpu/i8008/i8008.c)0
-rw-r--r--src/devices/cpu/i8008/i8008.h (renamed from src/emu/cpu/i8008/i8008.h)0
-rw-r--r--src/devices/cpu/i8085/8085dasm.c (renamed from src/emu/cpu/i8085/8085dasm.c)0
-rw-r--r--src/devices/cpu/i8085/i8085.c (renamed from src/emu/cpu/i8085/i8085.c)0
-rw-r--r--src/devices/cpu/i8085/i8085.h (renamed from src/emu/cpu/i8085/i8085.h)0
-rw-r--r--src/devices/cpu/i8085/i8085cpu.h (renamed from src/emu/cpu/i8085/i8085cpu.h)0
-rw-r--r--src/devices/cpu/i8089/i8089.c (renamed from src/emu/cpu/i8089/i8089.c)0
-rw-r--r--src/devices/cpu/i8089/i8089.h (renamed from src/emu/cpu/i8089/i8089.h)0
-rw-r--r--src/devices/cpu/i8089/i8089_channel.c (renamed from src/emu/cpu/i8089/i8089_channel.c)0
-rw-r--r--src/devices/cpu/i8089/i8089_channel.h (renamed from src/emu/cpu/i8089/i8089_channel.h)0
-rw-r--r--src/devices/cpu/i8089/i8089_dasm.c (renamed from src/emu/cpu/i8089/i8089_dasm.c)0
-rw-r--r--src/devices/cpu/i8089/i8089_ops.c (renamed from src/emu/cpu/i8089/i8089_ops.c)0
-rw-r--r--src/devices/cpu/i86/i186.c (renamed from src/emu/cpu/i86/i186.c)0
-rw-r--r--src/devices/cpu/i86/i186.h (renamed from src/emu/cpu/i86/i186.h)0
-rw-r--r--src/devices/cpu/i86/i286.c (renamed from src/emu/cpu/i86/i286.c)0
-rw-r--r--src/devices/cpu/i86/i286.h (renamed from src/emu/cpu/i86/i286.h)0
-rw-r--r--src/devices/cpu/i86/i86.c (renamed from src/emu/cpu/i86/i86.c)0
-rw-r--r--src/devices/cpu/i86/i86.h (renamed from src/emu/cpu/i86/i86.h)0
-rw-r--r--src/devices/cpu/i86/i86.txt (renamed from src/emu/cpu/i86/i86.txt)0
-rw-r--r--src/devices/cpu/i86/i86inline.h (renamed from src/emu/cpu/i86/i86inline.h)0
-rw-r--r--src/devices/cpu/i860/i860.c (renamed from src/emu/cpu/i860/i860.c)0
-rw-r--r--src/devices/cpu/i860/i860.h (renamed from src/emu/cpu/i860/i860.h)0
-rw-r--r--src/devices/cpu/i860/i860dasm.c (renamed from src/emu/cpu/i860/i860dasm.c)0
-rw-r--r--src/devices/cpu/i860/i860dec.inc (renamed from src/emu/cpu/i860/i860dec.inc)0
-rw-r--r--src/devices/cpu/i860/i860dis.c (renamed from src/emu/cpu/i860/i860dis.c)0
-rw-r--r--src/devices/cpu/i960/i960.c (renamed from src/emu/cpu/i960/i960.c)0
-rw-r--r--src/devices/cpu/i960/i960.h (renamed from src/emu/cpu/i960/i960.h)0
-rw-r--r--src/devices/cpu/i960/i960dis.c (renamed from src/emu/cpu/i960/i960dis.c)0
-rw-r--r--src/devices/cpu/i960/i960dis.h (renamed from src/emu/cpu/i960/i960dis.h)0
-rw-r--r--src/devices/cpu/ie15/ie15.c (renamed from src/emu/cpu/ie15/ie15.c)0
-rw-r--r--src/devices/cpu/ie15/ie15.h (renamed from src/emu/cpu/ie15/ie15.h)0
-rw-r--r--src/devices/cpu/ie15/ie15dasm.c (renamed from src/emu/cpu/ie15/ie15dasm.c)0
-rw-r--r--src/devices/cpu/jaguar/jagdasm.c (renamed from src/emu/cpu/jaguar/jagdasm.c)0
-rw-r--r--src/devices/cpu/jaguar/jaguar.c (renamed from src/emu/cpu/jaguar/jaguar.c)0
-rw-r--r--src/devices/cpu/jaguar/jaguar.h (renamed from src/emu/cpu/jaguar/jaguar.h)0
-rw-r--r--src/devices/cpu/lc8670/lc8670.c (renamed from src/emu/cpu/lc8670/lc8670.c)6
-rw-r--r--src/devices/cpu/lc8670/lc8670.h (renamed from src/emu/cpu/lc8670/lc8670.h)0
-rw-r--r--src/devices/cpu/lc8670/lc8670dsm.c (renamed from src/emu/cpu/lc8670/lc8670dsm.c)0
-rw-r--r--src/devices/cpu/lh5801/5801dasm.c (renamed from src/emu/cpu/lh5801/5801dasm.c)0
-rw-r--r--src/devices/cpu/lh5801/5801tbl.inc (renamed from src/emu/cpu/lh5801/5801tbl.inc)0
-rw-r--r--src/devices/cpu/lh5801/lh5801.c (renamed from src/emu/cpu/lh5801/lh5801.c)0
-rw-r--r--src/devices/cpu/lh5801/lh5801.h (renamed from src/emu/cpu/lh5801/lh5801.h)0
-rw-r--r--src/devices/cpu/lr35902/lr35902.c (renamed from src/emu/cpu/lr35902/lr35902.c)0
-rw-r--r--src/devices/cpu/lr35902/lr35902.h (renamed from src/emu/cpu/lr35902/lr35902.h)0
-rw-r--r--src/devices/cpu/lr35902/lr35902d.c (renamed from src/emu/cpu/lr35902/lr35902d.c)0
-rw-r--r--src/devices/cpu/lr35902/opc_cb.inc (renamed from src/emu/cpu/lr35902/opc_cb.inc)0
-rw-r--r--src/devices/cpu/lr35902/opc_main.inc (renamed from src/emu/cpu/lr35902/opc_main.inc)0
-rw-r--r--src/devices/cpu/m37710/m37710.c (renamed from src/emu/cpu/m37710/m37710.c)0
-rw-r--r--src/devices/cpu/m37710/m37710.h (renamed from src/emu/cpu/m37710/m37710.h)0
-rw-r--r--src/devices/cpu/m37710/m37710cm.h (renamed from src/emu/cpu/m37710/m37710cm.h)0
-rw-r--r--src/devices/cpu/m37710/m37710il.h (renamed from src/emu/cpu/m37710/m37710il.h)0
-rw-r--r--src/devices/cpu/m37710/m37710o0.c (renamed from src/emu/cpu/m37710/m37710o0.c)0
-rw-r--r--src/devices/cpu/m37710/m37710o1.c (renamed from src/emu/cpu/m37710/m37710o1.c)0
-rw-r--r--src/devices/cpu/m37710/m37710o2.c (renamed from src/emu/cpu/m37710/m37710o2.c)0
-rw-r--r--src/devices/cpu/m37710/m37710o3.c (renamed from src/emu/cpu/m37710/m37710o3.c)0
-rw-r--r--src/devices/cpu/m37710/m37710op.h (renamed from src/emu/cpu/m37710/m37710op.h)0
-rw-r--r--src/devices/cpu/m37710/m7700ds.c (renamed from src/emu/cpu/m37710/m7700ds.c)0
-rw-r--r--src/devices/cpu/m37710/m7700ds.h (renamed from src/emu/cpu/m37710/m7700ds.h)0
-rw-r--r--src/devices/cpu/m6502/ddeco16.lst (renamed from src/emu/cpu/m6502/ddeco16.lst)0
-rw-r--r--src/devices/cpu/m6502/deco16.c (renamed from src/emu/cpu/m6502/deco16.c)0
-rw-r--r--src/devices/cpu/m6502/deco16.h (renamed from src/emu/cpu/m6502/deco16.h)0
-rw-r--r--src/devices/cpu/m6502/dm4510.lst (renamed from src/emu/cpu/m6502/dm4510.lst)0
-rw-r--r--src/devices/cpu/m6502/dm6502.lst (renamed from src/emu/cpu/m6502/dm6502.lst)0
-rw-r--r--src/devices/cpu/m6502/dm6509.lst (renamed from src/emu/cpu/m6502/dm6509.lst)0
-rw-r--r--src/devices/cpu/m6502/dm6510.lst (renamed from src/emu/cpu/m6502/dm6510.lst)0
-rw-r--r--src/devices/cpu/m6502/dm65c02.lst (renamed from src/emu/cpu/m6502/dm65c02.lst)0
-rw-r--r--src/devices/cpu/m6502/dm65ce02.lst (renamed from src/emu/cpu/m6502/dm65ce02.lst)0
-rw-r--r--src/devices/cpu/m6502/dm740.lst (renamed from src/emu/cpu/m6502/dm740.lst)0
-rw-r--r--src/devices/cpu/m6502/dn2a03.lst (renamed from src/emu/cpu/m6502/dn2a03.lst)0
-rw-r--r--src/devices/cpu/m6502/dr65c02.lst (renamed from src/emu/cpu/m6502/dr65c02.lst)0
-rw-r--r--src/devices/cpu/m6502/m3745x.c (renamed from src/emu/cpu/m6502/m3745x.c)0
-rw-r--r--src/devices/cpu/m6502/m3745x.h (renamed from src/emu/cpu/m6502/m3745x.h)0
-rw-r--r--src/devices/cpu/m6502/m4510.c (renamed from src/emu/cpu/m6502/m4510.c)0
-rw-r--r--src/devices/cpu/m6502/m4510.h (renamed from src/emu/cpu/m6502/m4510.h)0
-rw-r--r--src/devices/cpu/m6502/m5074x.c (renamed from src/emu/cpu/m6502/m5074x.c)0
-rw-r--r--src/devices/cpu/m6502/m5074x.h (renamed from src/emu/cpu/m6502/m5074x.h)0
-rw-r--r--src/devices/cpu/m6502/m6502.c (renamed from src/emu/cpu/m6502/m6502.c)0
-rw-r--r--src/devices/cpu/m6502/m6502.h (renamed from src/emu/cpu/m6502/m6502.h)0
-rw-r--r--src/devices/cpu/m6502/m6502.txt (renamed from src/emu/cpu/m6502/m6502.txt)0
-rwxr-xr-xsrc/devices/cpu/m6502/m6502make.py (renamed from src/emu/cpu/m6502/m6502make.py)6
-rw-r--r--src/devices/cpu/m6502/m6504.c (renamed from src/emu/cpu/m6502/m6504.c)0
-rw-r--r--src/devices/cpu/m6502/m6504.h (renamed from src/emu/cpu/m6502/m6504.h)0
-rw-r--r--src/devices/cpu/m6502/m6509.c (renamed from src/emu/cpu/m6502/m6509.c)0
-rw-r--r--src/devices/cpu/m6502/m6509.h (renamed from src/emu/cpu/m6502/m6509.h)0
-rw-r--r--src/devices/cpu/m6502/m6510.c (renamed from src/emu/cpu/m6502/m6510.c)0
-rw-r--r--src/devices/cpu/m6502/m6510.h (renamed from src/emu/cpu/m6502/m6510.h)0
-rw-r--r--src/devices/cpu/m6502/m6510t.c (renamed from src/emu/cpu/m6502/m6510t.c)0
-rw-r--r--src/devices/cpu/m6502/m6510t.h (renamed from src/emu/cpu/m6502/m6510t.h)0
-rw-r--r--src/devices/cpu/m6502/m65c02.c (renamed from src/emu/cpu/m6502/m65c02.c)0
-rw-r--r--src/devices/cpu/m6502/m65c02.h (renamed from src/emu/cpu/m6502/m65c02.h)0
-rw-r--r--src/devices/cpu/m6502/m65ce02.c (renamed from src/emu/cpu/m6502/m65ce02.c)0
-rw-r--r--src/devices/cpu/m6502/m65ce02.h (renamed from src/emu/cpu/m6502/m65ce02.h)0
-rw-r--r--src/devices/cpu/m6502/m65sc02.c (renamed from src/emu/cpu/m6502/m65sc02.c)0
-rw-r--r--src/devices/cpu/m6502/m65sc02.h (renamed from src/emu/cpu/m6502/m65sc02.h)0
-rw-r--r--src/devices/cpu/m6502/m740.c (renamed from src/emu/cpu/m6502/m740.c)0
-rw-r--r--src/devices/cpu/m6502/m740.h (renamed from src/emu/cpu/m6502/m740.h)0
-rw-r--r--src/devices/cpu/m6502/m7501.c (renamed from src/emu/cpu/m6502/m7501.c)0
-rw-r--r--src/devices/cpu/m6502/m7501.h (renamed from src/emu/cpu/m6502/m7501.h)0
-rw-r--r--src/devices/cpu/m6502/m8502.c (renamed from src/emu/cpu/m6502/m8502.c)0
-rw-r--r--src/devices/cpu/m6502/m8502.h (renamed from src/emu/cpu/m6502/m8502.h)0
-rw-r--r--src/devices/cpu/m6502/n2a03.c (renamed from src/emu/cpu/m6502/n2a03.c)0
-rw-r--r--src/devices/cpu/m6502/n2a03.h (renamed from src/emu/cpu/m6502/n2a03.h)0
-rw-r--r--src/devices/cpu/m6502/odeco16.lst (renamed from src/emu/cpu/m6502/odeco16.lst)0
-rw-r--r--src/devices/cpu/m6502/om4510.lst (renamed from src/emu/cpu/m6502/om4510.lst)0
-rw-r--r--src/devices/cpu/m6502/om6502.lst (renamed from src/emu/cpu/m6502/om6502.lst)0
-rw-r--r--src/devices/cpu/m6502/om6509.lst (renamed from src/emu/cpu/m6502/om6509.lst)0
-rw-r--r--src/devices/cpu/m6502/om6510.lst (renamed from src/emu/cpu/m6502/om6510.lst)0
-rw-r--r--src/devices/cpu/m6502/om65c02.lst (renamed from src/emu/cpu/m6502/om65c02.lst)0
-rw-r--r--src/devices/cpu/m6502/om65ce02.lst (renamed from src/emu/cpu/m6502/om65ce02.lst)0
-rw-r--r--src/devices/cpu/m6502/om740.lst (renamed from src/emu/cpu/m6502/om740.lst)0
-rw-r--r--src/devices/cpu/m6502/on2a03.lst (renamed from src/emu/cpu/m6502/on2a03.lst)0
-rw-r--r--src/devices/cpu/m6502/r65c02.c (renamed from src/emu/cpu/m6502/r65c02.c)0
-rw-r--r--src/devices/cpu/m6502/r65c02.h (renamed from src/emu/cpu/m6502/r65c02.h)0
-rw-r--r--src/devices/cpu/m6800/6800dasm.c (renamed from src/emu/cpu/m6800/6800dasm.c)0
-rw-r--r--src/devices/cpu/m6800/6800ops.inc (renamed from src/emu/cpu/m6800/6800ops.inc)0
-rw-r--r--src/devices/cpu/m6800/6800tbl.inc (renamed from src/emu/cpu/m6800/6800tbl.inc)0
-rw-r--r--src/devices/cpu/m6800/m6800.c (renamed from src/emu/cpu/m6800/m6800.c)0
-rw-r--r--src/devices/cpu/m6800/m6800.h (renamed from src/emu/cpu/m6800/m6800.h)0
-rw-r--r--src/devices/cpu/m68000/m68000.h (renamed from src/emu/cpu/m68000/m68000.h)0
-rw-r--r--src/devices/cpu/m68000/m68k_in.c (renamed from src/emu/cpu/m68000/m68k_in.c)37
-rw-r--r--src/devices/cpu/m68000/m68kcpu.c (renamed from src/emu/cpu/m68000/m68kcpu.c)12
-rw-r--r--src/devices/cpu/m68000/m68kcpu.h (renamed from src/emu/cpu/m68000/m68kcpu.h)0
-rw-r--r--src/devices/cpu/m68000/m68kdasm.c (renamed from src/emu/cpu/m68000/m68kdasm.c)0
-rw-r--r--src/devices/cpu/m68000/m68kfpu.inc (renamed from src/emu/cpu/m68000/m68kfpu.inc)6
-rw-r--r--src/devices/cpu/m68000/m68kmake.c (renamed from src/emu/cpu/m68000/m68kmake.c)0
-rw-r--r--src/devices/cpu/m68000/m68kmmu.h (renamed from src/emu/cpu/m68000/m68kmmu.h)0
-rw-r--r--src/devices/cpu/m68000/m68kops.c (renamed from src/emu/cpu/m68000/m68kops.c)90
-rw-r--r--src/devices/cpu/m68000/m68kops.h (renamed from src/emu/cpu/m68000/m68kops.h)0
-rw-r--r--src/devices/cpu/m68000/makefile (renamed from src/emu/cpu/m68000/makefile)0
-rw-r--r--src/devices/cpu/m6805/6805dasm.c (renamed from src/emu/cpu/m6805/6805dasm.c)0
-rw-r--r--src/devices/cpu/m6805/6805ops.inc (renamed from src/emu/cpu/m6805/6805ops.inc)0
-rw-r--r--src/devices/cpu/m6805/m6805.c (renamed from src/emu/cpu/m6805/m6805.c)0
-rw-r--r--src/devices/cpu/m6805/m6805.h (renamed from src/emu/cpu/m6805/m6805.h)0
-rw-r--r--src/devices/cpu/m6809/6309dasm.c (renamed from src/emu/cpu/m6809/6309dasm.c)0
-rw-r--r--src/devices/cpu/m6809/6809dasm.c (renamed from src/emu/cpu/m6809/6809dasm.c)0
-rw-r--r--src/devices/cpu/m6809/base6x09.ops (renamed from src/emu/cpu/m6809/base6x09.ops)0
-rw-r--r--src/devices/cpu/m6809/hd6309.c (renamed from src/emu/cpu/m6809/hd6309.c)0
-rw-r--r--src/devices/cpu/m6809/hd6309.h (renamed from src/emu/cpu/m6809/hd6309.h)0
-rw-r--r--src/devices/cpu/m6809/hd6309.ops (renamed from src/emu/cpu/m6809/hd6309.ops)0
-rw-r--r--src/devices/cpu/m6809/knmidasm.c (renamed from src/emu/cpu/m6809/knmidasm.c)0
-rw-r--r--src/devices/cpu/m6809/konami.c (renamed from src/emu/cpu/m6809/konami.c)0
-rw-r--r--src/devices/cpu/m6809/konami.h (renamed from src/emu/cpu/m6809/konami.h)0
-rw-r--r--src/devices/cpu/m6809/konami.ops (renamed from src/emu/cpu/m6809/konami.ops)0
-rw-r--r--src/devices/cpu/m6809/m6809.c (renamed from src/emu/cpu/m6809/m6809.c)0
-rw-r--r--src/devices/cpu/m6809/m6809.h (renamed from src/emu/cpu/m6809/m6809.h)0
-rw-r--r--src/devices/cpu/m6809/m6809.ops (renamed from src/emu/cpu/m6809/m6809.ops)0
-rw-r--r--src/devices/cpu/m6809/m6809inl.h (renamed from src/emu/cpu/m6809/m6809inl.h)0
-rw-r--r--src/devices/cpu/m6809/m6809make.py (renamed from src/emu/cpu/m6809/m6809make.py)0
-rw-r--r--src/devices/cpu/mb86233/mb86233.c (renamed from src/emu/cpu/mb86233/mb86233.c)0
-rw-r--r--src/devices/cpu/mb86233/mb86233.h (renamed from src/emu/cpu/mb86233/mb86233.h)0
-rw-r--r--src/devices/cpu/mb86233/mb86233d.c (renamed from src/emu/cpu/mb86233/mb86233d.c)0
-rw-r--r--src/devices/cpu/mb86235/mb86235.c (renamed from src/emu/cpu/mb86235/mb86235.c)0
-rw-r--r--src/devices/cpu/mb86235/mb86235.h (renamed from src/emu/cpu/mb86235/mb86235.h)0
-rw-r--r--src/devices/cpu/mb86235/mb86235d.c (renamed from src/emu/cpu/mb86235/mb86235d.c)0
-rw-r--r--src/devices/cpu/mb88xx/mb88dasm.c (renamed from src/emu/cpu/mb88xx/mb88dasm.c)0
-rw-r--r--src/devices/cpu/mb88xx/mb88xx.c (renamed from src/emu/cpu/mb88xx/mb88xx.c)0
-rw-r--r--src/devices/cpu/mb88xx/mb88xx.h (renamed from src/emu/cpu/mb88xx/mb88xx.h)0
-rw-r--r--src/devices/cpu/mc68hc11/hc11dasm.c (renamed from src/emu/cpu/mc68hc11/hc11dasm.c)0
-rw-r--r--src/devices/cpu/mc68hc11/hc11ops.h (renamed from src/emu/cpu/mc68hc11/hc11ops.h)0
-rw-r--r--src/devices/cpu/mc68hc11/hc11ops.inc (renamed from src/emu/cpu/mc68hc11/hc11ops.inc)0
-rw-r--r--src/devices/cpu/mc68hc11/mc68hc11.c (renamed from src/emu/cpu/mc68hc11/mc68hc11.c)0
-rw-r--r--src/devices/cpu/mc68hc11/mc68hc11.h (renamed from src/emu/cpu/mc68hc11/mc68hc11.h)0
-rw-r--r--src/devices/cpu/mcs48/mcs48.c (renamed from src/emu/cpu/mcs48/mcs48.c)0
-rw-r--r--src/devices/cpu/mcs48/mcs48.h (renamed from src/emu/cpu/mcs48/mcs48.h)0
-rw-r--r--src/devices/cpu/mcs48/mcs48dsm.c (renamed from src/emu/cpu/mcs48/mcs48dsm.c)0
-rw-r--r--src/devices/cpu/mcs51/mcs51.c (renamed from src/emu/cpu/mcs51/mcs51.c)0
-rw-r--r--src/devices/cpu/mcs51/mcs51.h (renamed from src/emu/cpu/mcs51/mcs51.h)0
-rw-r--r--src/devices/cpu/mcs51/mcs51dasm.c (renamed from src/emu/cpu/mcs51/mcs51dasm.c)0
-rw-r--r--src/devices/cpu/mcs51/mcs51ops.inc (renamed from src/emu/cpu/mcs51/mcs51ops.inc)0
-rw-r--r--src/devices/cpu/mcs96/i8x9x.c (renamed from src/emu/cpu/mcs96/i8x9x.c)0
-rw-r--r--src/devices/cpu/mcs96/i8x9x.h (renamed from src/emu/cpu/mcs96/i8x9x.h)0
-rw-r--r--src/devices/cpu/mcs96/i8xc196.c (renamed from src/emu/cpu/mcs96/i8xc196.c)0
-rw-r--r--src/devices/cpu/mcs96/i8xc196.h (renamed from src/emu/cpu/mcs96/i8xc196.h)0
-rw-r--r--src/devices/cpu/mcs96/mcs96.c (renamed from src/emu/cpu/mcs96/mcs96.c)0
-rw-r--r--src/devices/cpu/mcs96/mcs96.h (renamed from src/emu/cpu/mcs96/mcs96.h)0
-rw-r--r--src/devices/cpu/mcs96/mcs96make.py (renamed from src/emu/cpu/mcs96/mcs96make.py)40
-rw-r--r--src/devices/cpu/mcs96/mcs96ops.lst (renamed from src/emu/cpu/mcs96/mcs96ops.lst)0
-rw-r--r--src/devices/cpu/melps4/m58846.c (renamed from src/emu/cpu/melps4/m58846.c)0
-rw-r--r--src/devices/cpu/melps4/m58846.h (renamed from src/emu/cpu/melps4/m58846.h)0
-rw-r--r--src/devices/cpu/melps4/melps4.c (renamed from src/emu/cpu/melps4/melps4.c)0
-rw-r--r--src/devices/cpu/melps4/melps4.h (renamed from src/emu/cpu/melps4/melps4.h)0
-rw-r--r--src/devices/cpu/melps4/melps4d.c (renamed from src/emu/cpu/melps4/melps4d.c)0
-rw-r--r--src/devices/cpu/melps4/melps4op.c (renamed from src/emu/cpu/melps4/melps4op.c)0
-rw-r--r--src/devices/cpu/minx/minx.c (renamed from src/emu/cpu/minx/minx.c)0
-rw-r--r--src/devices/cpu/minx/minx.h (renamed from src/emu/cpu/minx/minx.h)0
-rw-r--r--src/devices/cpu/minx/minxd.c (renamed from src/emu/cpu/minx/minxd.c)0
-rw-r--r--src/devices/cpu/minx/minxfunc.h (renamed from src/emu/cpu/minx/minxfunc.h)0
-rw-r--r--src/devices/cpu/minx/minxopce.h (renamed from src/emu/cpu/minx/minxopce.h)0
-rw-r--r--src/devices/cpu/minx/minxopcf.h (renamed from src/emu/cpu/minx/minxopcf.h)0
-rw-r--r--src/devices/cpu/minx/minxops.h (renamed from src/emu/cpu/minx/minxops.h)0
-rw-r--r--src/devices/cpu/mips/mips3.c (renamed from src/emu/cpu/mips/mips3.c)48
-rw-r--r--src/devices/cpu/mips/mips3.h (renamed from src/emu/cpu/mips/mips3.h)1
-rw-r--r--src/devices/cpu/mips/mips3com.c (renamed from src/emu/cpu/mips/mips3com.c)0
-rw-r--r--src/devices/cpu/mips/mips3com.h (renamed from src/emu/cpu/mips/mips3com.h)0
-rw-r--r--src/devices/cpu/mips/mips3drc.c (renamed from src/emu/cpu/mips/mips3drc.c)0
-rw-r--r--src/devices/cpu/mips/mips3dsm.c (renamed from src/emu/cpu/mips/mips3dsm.c)9
-rw-r--r--src/devices/cpu/mips/mips3fe.c (renamed from src/emu/cpu/mips/mips3fe.c)0
-rw-r--r--src/devices/cpu/mips/mips3fe.h (renamed from src/emu/cpu/mips/mips3fe.h)0
-rw-r--r--src/devices/cpu/mips/r3000.c (renamed from src/emu/cpu/mips/r3000.c)0
-rw-r--r--src/devices/cpu/mips/r3000.h (renamed from src/emu/cpu/mips/r3000.h)0
-rw-r--r--src/devices/cpu/mips/r3kdasm.c (renamed from src/emu/cpu/mips/r3kdasm.c)0
-rw-r--r--src/devices/cpu/mn10200/mn10200.c (renamed from src/emu/cpu/mn10200/mn10200.c)0
-rw-r--r--src/devices/cpu/mn10200/mn10200.h (renamed from src/emu/cpu/mn10200/mn10200.h)0
-rw-r--r--src/devices/cpu/mn10200/mn102dis.c (renamed from src/emu/cpu/mn10200/mn102dis.c)0
-rw-r--r--src/devices/cpu/nec/nec.c (renamed from src/emu/cpu/nec/nec.c)0
-rw-r--r--src/devices/cpu/nec/nec.h (renamed from src/emu/cpu/nec/nec.h)0
-rw-r--r--src/devices/cpu/nec/necdasm.c (renamed from src/emu/cpu/nec/necdasm.c)0
-rw-r--r--src/devices/cpu/nec/necea.h (renamed from src/emu/cpu/nec/necea.h)0
-rw-r--r--src/devices/cpu/nec/necinstr.h (renamed from src/emu/cpu/nec/necinstr.h)0
-rw-r--r--src/devices/cpu/nec/necinstr.inc (renamed from src/emu/cpu/nec/necinstr.inc)0
-rw-r--r--src/devices/cpu/nec/necmacro.h (renamed from src/emu/cpu/nec/necmacro.h)0
-rw-r--r--src/devices/cpu/nec/necmodrm.h (renamed from src/emu/cpu/nec/necmodrm.h)0
-rw-r--r--src/devices/cpu/nec/necpriv.h (renamed from src/emu/cpu/nec/necpriv.h)0
-rw-r--r--src/devices/cpu/nec/v25.c (renamed from src/emu/cpu/nec/v25.c)0
-rw-r--r--src/devices/cpu/nec/v25.h (renamed from src/emu/cpu/nec/v25.h)0
-rw-r--r--src/devices/cpu/nec/v25instr.h (renamed from src/emu/cpu/nec/v25instr.h)0
-rw-r--r--src/devices/cpu/nec/v25instr.inc (renamed from src/emu/cpu/nec/v25instr.inc)0
-rw-r--r--src/devices/cpu/nec/v25priv.h (renamed from src/emu/cpu/nec/v25priv.h)0
-rw-r--r--src/devices/cpu/nec/v25sfr.c (renamed from src/emu/cpu/nec/v25sfr.c)0
-rw-r--r--src/devices/cpu/nec/v53.c (renamed from src/emu/cpu/nec/v53.c)56
-rw-r--r--src/devices/cpu/nec/v53.h (renamed from src/emu/cpu/nec/v53.h)0
-rw-r--r--src/devices/cpu/pdp1/pdp1.c (renamed from src/emu/cpu/pdp1/pdp1.c)0
-rw-r--r--src/devices/cpu/pdp1/pdp1.h (renamed from src/emu/cpu/pdp1/pdp1.h)0
-rw-r--r--src/devices/cpu/pdp1/pdp1dasm.c (renamed from src/emu/cpu/pdp1/pdp1dasm.c)0
-rw-r--r--src/devices/cpu/pdp1/tx0.c (renamed from src/emu/cpu/pdp1/tx0.c)0
-rw-r--r--src/devices/cpu/pdp1/tx0.h (renamed from src/emu/cpu/pdp1/tx0.h)0
-rw-r--r--src/devices/cpu/pdp1/tx0dasm.c (renamed from src/emu/cpu/pdp1/tx0dasm.c)0
-rw-r--r--src/devices/cpu/pdp8/pdp8.c249
-rw-r--r--src/devices/cpu/pdp8/pdp8.h113
-rw-r--r--src/devices/cpu/pdp8/pdp8dasm.c174
-rw-r--r--src/devices/cpu/pic16c5x/16c5xdsm.c (renamed from src/emu/cpu/pic16c5x/16c5xdsm.c)0
-rw-r--r--src/devices/cpu/pic16c5x/dis16c5x.c (renamed from src/emu/cpu/pic16c5x/dis16c5x.c)0
-rw-r--r--src/devices/cpu/pic16c5x/pic16c5x.c (renamed from src/emu/cpu/pic16c5x/pic16c5x.c)0
-rw-r--r--src/devices/cpu/pic16c5x/pic16c5x.h (renamed from src/emu/cpu/pic16c5x/pic16c5x.h)0
-rw-r--r--src/devices/cpu/pic16c62x/16c62xdsm.c (renamed from src/emu/cpu/pic16c62x/16c62xdsm.c)0
-rw-r--r--src/devices/cpu/pic16c62x/dis16c62x.c (renamed from src/emu/cpu/pic16c62x/dis16c62x.c)0
-rw-r--r--src/devices/cpu/pic16c62x/pic16c62x.c (renamed from src/emu/cpu/pic16c62x/pic16c62x.c)0
-rw-r--r--src/devices/cpu/pic16c62x/pic16c62x.h (renamed from src/emu/cpu/pic16c62x/pic16c62x.h)0
-rw-r--r--src/devices/cpu/powerpc/drc_ops.c (renamed from src/emu/cpu/powerpc/drc_ops.c)0
-rw-r--r--src/devices/cpu/powerpc/drc_ops.h (renamed from src/emu/cpu/powerpc/drc_ops.h)0
-rw-r--r--src/devices/cpu/powerpc/ppc.c (renamed from src/emu/cpu/powerpc/ppc.c)0
-rw-r--r--src/devices/cpu/powerpc/ppc.h (renamed from src/emu/cpu/powerpc/ppc.h)0
-rw-r--r--src/devices/cpu/powerpc/ppc403.inc (renamed from src/emu/cpu/powerpc/ppc403.inc)0
-rw-r--r--src/devices/cpu/powerpc/ppc602.inc (renamed from src/emu/cpu/powerpc/ppc602.inc)0
-rw-r--r--src/devices/cpu/powerpc/ppc603.inc (renamed from src/emu/cpu/powerpc/ppc603.inc)0
-rw-r--r--src/devices/cpu/powerpc/ppc_dasm.c (renamed from src/emu/cpu/powerpc/ppc_dasm.c)0
-rw-r--r--src/devices/cpu/powerpc/ppc_mem.inc (renamed from src/emu/cpu/powerpc/ppc_mem.inc)0
-rw-r--r--src/devices/cpu/powerpc/ppc_ops.h (renamed from src/emu/cpu/powerpc/ppc_ops.h)0
-rw-r--r--src/devices/cpu/powerpc/ppc_ops.inc (renamed from src/emu/cpu/powerpc/ppc_ops.inc)0
-rw-r--r--src/devices/cpu/powerpc/ppccom.c (renamed from src/emu/cpu/powerpc/ppccom.c)2
-rw-r--r--src/devices/cpu/powerpc/ppccom.h (renamed from src/emu/cpu/powerpc/ppccom.h)0
-rw-r--r--src/devices/cpu/powerpc/ppcdrc.c (renamed from src/emu/cpu/powerpc/ppcdrc.c)0
-rw-r--r--src/devices/cpu/powerpc/ppcfe.c (renamed from src/emu/cpu/powerpc/ppcfe.c)0
-rw-r--r--src/devices/cpu/powerpc/ppcfe.h (renamed from src/emu/cpu/powerpc/ppcfe.h)0
-rw-r--r--src/devices/cpu/pps4/pps4.c (renamed from src/emu/cpu/pps4/pps4.c)0
-rw-r--r--src/devices/cpu/pps4/pps4.h (renamed from src/emu/cpu/pps4/pps4.h)0
-rw-r--r--src/devices/cpu/pps4/pps4dasm.c (renamed from src/emu/cpu/pps4/pps4dasm.c)0
-rw-r--r--src/devices/cpu/psx/dismips.c (renamed from src/emu/cpu/psx/dismips.c)0
-rw-r--r--src/devices/cpu/psx/dismips.mak (renamed from src/emu/cpu/psx/dismips.mak)0
-rw-r--r--src/devices/cpu/psx/dma.c (renamed from src/emu/cpu/psx/dma.c)0
-rw-r--r--src/devices/cpu/psx/dma.h (renamed from src/emu/cpu/psx/dma.h)0
-rw-r--r--src/devices/cpu/psx/gte.c (renamed from src/emu/cpu/psx/gte.c)0
-rw-r--r--src/devices/cpu/psx/gte.h (renamed from src/emu/cpu/psx/gte.h)0
-rw-r--r--src/devices/cpu/psx/irq.c (renamed from src/emu/cpu/psx/irq.c)0
-rw-r--r--src/devices/cpu/psx/irq.h (renamed from src/emu/cpu/psx/irq.h)0
-rw-r--r--src/devices/cpu/psx/mdec.c (renamed from src/emu/cpu/psx/mdec.c)0
-rw-r--r--src/devices/cpu/psx/mdec.h (renamed from src/emu/cpu/psx/mdec.h)0
-rw-r--r--src/devices/cpu/psx/psx.c (renamed from src/emu/cpu/psx/psx.c)8
-rw-r--r--src/devices/cpu/psx/psx.h (renamed from src/emu/cpu/psx/psx.h)4
-rw-r--r--src/devices/cpu/psx/psxdasm.c (renamed from src/emu/cpu/psx/psxdasm.c)0
-rw-r--r--src/devices/cpu/psx/rcnt.c (renamed from src/emu/cpu/psx/rcnt.c)0
-rw-r--r--src/devices/cpu/psx/rcnt.h (renamed from src/emu/cpu/psx/rcnt.h)0
-rw-r--r--src/devices/cpu/psx/sio.c (renamed from src/emu/cpu/psx/sio.c)0
-rw-r--r--src/devices/cpu/psx/sio.h (renamed from src/emu/cpu/psx/sio.h)0
-rw-r--r--src/devices/cpu/rsp/clamp.h (renamed from src/emu/cpu/rsp/clamp.h)0
-rw-r--r--src/devices/cpu/rsp/rsp.c (renamed from src/emu/cpu/rsp/rsp.c)8
-rw-r--r--src/devices/cpu/rsp/rsp.h (renamed from src/emu/cpu/rsp/rsp.h)0
-rw-r--r--src/devices/cpu/rsp/rsp_dasm.c (renamed from src/emu/cpu/rsp/rsp_dasm.c)17
-rw-r--r--src/devices/cpu/rsp/rspcp2.c (renamed from src/emu/cpu/rsp/rspcp2.c)258
-rw-r--r--src/devices/cpu/rsp/rspcp2.h (renamed from src/emu/cpu/rsp/rspcp2.h)35
-rw-r--r--src/devices/cpu/rsp/rspcp2d.c (renamed from src/emu/cpu/rsp/rspcp2d.c)2
-rw-r--r--src/devices/cpu/rsp/rspcp2d.h (renamed from src/emu/cpu/rsp/rspcp2d.h)0
-rw-r--r--src/devices/cpu/rsp/rspdiv.h (renamed from src/emu/cpu/rsp/rspdiv.h)0
-rw-r--r--src/devices/cpu/rsp/rspdrc.c (renamed from src/emu/cpu/rsp/rspdrc.c)2
-rw-r--r--src/devices/cpu/rsp/rspfe.c (renamed from src/emu/cpu/rsp/rspfe.c)0
-rw-r--r--src/devices/cpu/rsp/rspfe.h (renamed from src/emu/cpu/rsp/rspfe.h)0
-rw-r--r--src/devices/cpu/rsp/vabs.h (renamed from src/emu/cpu/rsp/vabs.h)0
-rw-r--r--src/devices/cpu/rsp/vadd.h (renamed from src/emu/cpu/rsp/vadd.h)1
-rw-r--r--src/devices/cpu/rsp/vaddc.h (renamed from src/emu/cpu/rsp/vaddc.h)0
-rw-r--r--src/devices/cpu/rsp/vand.h (renamed from src/emu/cpu/rsp/vand.h)0
-rw-r--r--src/devices/cpu/rsp/vch.h (renamed from src/emu/cpu/rsp/vch.h)0
-rw-r--r--src/devices/cpu/rsp/vcl.h (renamed from src/emu/cpu/rsp/vcl.h)2
-rw-r--r--src/devices/cpu/rsp/vcmp.h (renamed from src/emu/cpu/rsp/vcmp.h)0
-rw-r--r--src/devices/cpu/rsp/vcr.h (renamed from src/emu/cpu/rsp/vcr.h)0
-rw-r--r--src/devices/cpu/rsp/vdivh.h (renamed from src/emu/cpu/rsp/vdivh.h)0
-rw-r--r--src/devices/cpu/rsp/vldst.h (renamed from src/emu/cpu/rsp/vldst.h)0
-rw-r--r--src/devices/cpu/rsp/vmac.h (renamed from src/emu/cpu/rsp/vmac.h)0
-rw-r--r--src/devices/cpu/rsp/vmov.h (renamed from src/emu/cpu/rsp/vmov.h)0
-rw-r--r--src/devices/cpu/rsp/vmrg.h (renamed from src/emu/cpu/rsp/vmrg.h)0
-rw-r--r--src/devices/cpu/rsp/vmudh.h (renamed from src/emu/cpu/rsp/vmudh.h)1
-rw-r--r--src/devices/cpu/rsp/vmul.h (renamed from src/emu/cpu/rsp/vmul.h)0
-rw-r--r--src/devices/cpu/rsp/vmulh.h (renamed from src/emu/cpu/rsp/vmulh.h)1
-rw-r--r--src/devices/cpu/rsp/vmull.h (renamed from src/emu/cpu/rsp/vmull.h)0
-rw-r--r--src/devices/cpu/rsp/vmulm.h (renamed from src/emu/cpu/rsp/vmulm.h)0
-rw-r--r--src/devices/cpu/rsp/vmuln.h (renamed from src/emu/cpu/rsp/vmuln.h)0
-rw-r--r--src/devices/cpu/rsp/vor.h (renamed from src/emu/cpu/rsp/vor.h)0
-rw-r--r--src/devices/cpu/rsp/vrcpsq.h (renamed from src/emu/cpu/rsp/vrcpsq.h)2
-rw-r--r--src/devices/cpu/rsp/vrsq.h (renamed from src/emu/cpu/rsp/vrsq.h)2
-rw-r--r--src/devices/cpu/rsp/vsub.h (renamed from src/emu/cpu/rsp/vsub.h)0
-rw-r--r--src/devices/cpu/rsp/vsubc.h (renamed from src/emu/cpu/rsp/vsubc.h)0
-rw-r--r--src/devices/cpu/rsp/vxor.h (renamed from src/emu/cpu/rsp/vxor.h)0
-rw-r--r--src/devices/cpu/s2650/2650dasm.c (renamed from src/emu/cpu/s2650/2650dasm.c)0
-rw-r--r--src/devices/cpu/s2650/s2650.c (renamed from src/emu/cpu/s2650/s2650.c)0
-rw-r--r--src/devices/cpu/s2650/s2650.h (renamed from src/emu/cpu/s2650/s2650.h)0
-rw-r--r--src/devices/cpu/s2650/s2650cpu.h (renamed from src/emu/cpu/s2650/s2650cpu.h)0
-rw-r--r--src/devices/cpu/saturn/satops.inc (renamed from src/emu/cpu/saturn/satops.inc)0
-rw-r--r--src/devices/cpu/saturn/sattable.inc (renamed from src/emu/cpu/saturn/sattable.inc)0
-rw-r--r--src/devices/cpu/saturn/saturn.c (renamed from src/emu/cpu/saturn/saturn.c)0
-rw-r--r--src/devices/cpu/saturn/saturn.h (renamed from src/emu/cpu/saturn/saturn.h)0
-rw-r--r--src/devices/cpu/saturn/saturnds.c (renamed from src/emu/cpu/saturn/saturnds.c)0
-rw-r--r--src/devices/cpu/sc61860/readpc.c (renamed from src/emu/cpu/sc61860/readpc.c)0
-rw-r--r--src/devices/cpu/sc61860/sc61860.c (renamed from src/emu/cpu/sc61860/sc61860.c)0
-rw-r--r--src/devices/cpu/sc61860/sc61860.h (renamed from src/emu/cpu/sc61860/sc61860.h)0
-rw-r--r--src/devices/cpu/sc61860/scdasm.c (renamed from src/emu/cpu/sc61860/scdasm.c)0
-rw-r--r--src/devices/cpu/sc61860/scops.inc (renamed from src/emu/cpu/sc61860/scops.inc)0
-rw-r--r--src/devices/cpu/sc61860/sctable.inc (renamed from src/emu/cpu/sc61860/sctable.inc)0
-rw-r--r--src/devices/cpu/scmp/scmp.c (renamed from src/emu/cpu/scmp/scmp.c)0
-rw-r--r--src/devices/cpu/scmp/scmp.h (renamed from src/emu/cpu/scmp/scmp.h)0
-rw-r--r--src/devices/cpu/scmp/scmpdasm.c (renamed from src/emu/cpu/scmp/scmpdasm.c)0
-rw-r--r--src/devices/cpu/score/score.c (renamed from src/emu/cpu/score/score.c)0
-rw-r--r--src/devices/cpu/score/score.h (renamed from src/emu/cpu/score/score.h)0
-rw-r--r--src/devices/cpu/score/scoredsm.c (renamed from src/emu/cpu/score/scoredsm.c)0
-rw-r--r--src/devices/cpu/score/scorem.h (renamed from src/emu/cpu/score/scorem.h)0
-rw-r--r--src/devices/cpu/scudsp/scudsp.c (renamed from src/emu/cpu/scudsp/scudsp.c)0
-rw-r--r--src/devices/cpu/scudsp/scudsp.h (renamed from src/emu/cpu/scudsp/scudsp.h)0
-rw-r--r--src/devices/cpu/scudsp/scudspdasm.c (renamed from src/emu/cpu/scudsp/scudspdasm.c)0
-rw-r--r--src/devices/cpu/se3208/se3208.c (renamed from src/emu/cpu/se3208/se3208.c)0
-rw-r--r--src/devices/cpu/se3208/se3208.h (renamed from src/emu/cpu/se3208/se3208.h)0
-rw-r--r--src/devices/cpu/se3208/se3208dis.c (renamed from src/emu/cpu/se3208/se3208dis.c)0
-rw-r--r--src/devices/cpu/sh2/sh2.c (renamed from src/emu/cpu/sh2/sh2.c)20
-rw-r--r--src/devices/cpu/sh2/sh2.h (renamed from src/emu/cpu/sh2/sh2.h)12
-rw-r--r--src/devices/cpu/sh2/sh2comn.c (renamed from src/emu/cpu/sh2/sh2comn.c)35
-rw-r--r--src/devices/cpu/sh2/sh2comn.h (renamed from src/emu/cpu/sh2/sh2comn.h)0
-rw-r--r--src/devices/cpu/sh2/sh2dasm.c (renamed from src/emu/cpu/sh2/sh2dasm.c)0
-rw-r--r--src/devices/cpu/sh2/sh2drc.c (renamed from src/emu/cpu/sh2/sh2drc.c)0
-rw-r--r--src/devices/cpu/sh2/sh2fe.c (renamed from src/emu/cpu/sh2/sh2fe.c)0
-rw-r--r--src/devices/cpu/sh4/sh3comn.c (renamed from src/emu/cpu/sh4/sh3comn.c)0
-rw-r--r--src/devices/cpu/sh4/sh3comn.h (renamed from src/emu/cpu/sh4/sh3comn.h)0
-rw-r--r--src/devices/cpu/sh4/sh4.c (renamed from src/emu/cpu/sh4/sh4.c)0
-rw-r--r--src/devices/cpu/sh4/sh4.h (renamed from src/emu/cpu/sh4/sh4.h)0
-rw-r--r--src/devices/cpu/sh4/sh4comn.c (renamed from src/emu/cpu/sh4/sh4comn.c)0
-rw-r--r--src/devices/cpu/sh4/sh4comn.h (renamed from src/emu/cpu/sh4/sh4comn.h)0
-rw-r--r--src/devices/cpu/sh4/sh4dasm.c (renamed from src/emu/cpu/sh4/sh4dasm.c)0
-rw-r--r--src/devices/cpu/sh4/sh4dmac.c (renamed from src/emu/cpu/sh4/sh4dmac.c)0
-rw-r--r--src/devices/cpu/sh4/sh4dmac.h (renamed from src/emu/cpu/sh4/sh4dmac.h)0
-rw-r--r--src/devices/cpu/sh4/sh4regs.h (renamed from src/emu/cpu/sh4/sh4regs.h)0
-rw-r--r--src/devices/cpu/sh4/sh4tmu.c (renamed from src/emu/cpu/sh4/sh4tmu.c)0
-rw-r--r--src/devices/cpu/sh4/sh4tmu.h (renamed from src/emu/cpu/sh4/sh4tmu.h)0
-rw-r--r--src/devices/cpu/sharc/compute.inc (renamed from src/emu/cpu/sharc/compute.inc)0
-rw-r--r--src/devices/cpu/sharc/sharc.c (renamed from src/emu/cpu/sharc/sharc.c)0
-rw-r--r--src/devices/cpu/sharc/sharc.h (renamed from src/emu/cpu/sharc/sharc.h)0
-rw-r--r--src/devices/cpu/sharc/sharcdma.inc (renamed from src/emu/cpu/sharc/sharcdma.inc)0
-rw-r--r--src/devices/cpu/sharc/sharcdsm.c (renamed from src/emu/cpu/sharc/sharcdsm.c)0
-rw-r--r--src/devices/cpu/sharc/sharcdsm.h (renamed from src/emu/cpu/sharc/sharcdsm.h)0
-rw-r--r--src/devices/cpu/sharc/sharcmem.inc (renamed from src/emu/cpu/sharc/sharcmem.inc)0
-rw-r--r--src/devices/cpu/sharc/sharcops.h (renamed from src/emu/cpu/sharc/sharcops.h)0
-rw-r--r--src/devices/cpu/sharc/sharcops.inc (renamed from src/emu/cpu/sharc/sharcops.inc)0
-rw-r--r--src/devices/cpu/sm510/sm510.c (renamed from src/emu/cpu/sm510/sm510.c)30
-rw-r--r--src/devices/cpu/sm510/sm510.h (renamed from src/emu/cpu/sm510/sm510.h)10
-rw-r--r--src/devices/cpu/sm510/sm510core.c (renamed from src/emu/cpu/sm510/sm510core.c)0
-rw-r--r--src/devices/cpu/sm510/sm510d.c (renamed from src/emu/cpu/sm510/sm510d.c)8
-rw-r--r--src/devices/cpu/sm510/sm510op.c (renamed from src/emu/cpu/sm510/sm510op.c)4
-rw-r--r--src/devices/cpu/sm510/sm511core.c (renamed from src/emu/cpu/sm510/sm511core.c)8
-rw-r--r--src/devices/cpu/sm8500/sm8500.c (renamed from src/emu/cpu/sm8500/sm8500.c)0
-rw-r--r--src/devices/cpu/sm8500/sm8500.h (renamed from src/emu/cpu/sm8500/sm8500.h)0
-rw-r--r--src/devices/cpu/sm8500/sm8500d.c (renamed from src/emu/cpu/sm8500/sm8500d.c)0
-rw-r--r--src/devices/cpu/sm8500/sm85ops.h (renamed from src/emu/cpu/sm8500/sm85ops.h)0
-rw-r--r--src/devices/cpu/spc700/spc700.c (renamed from src/emu/cpu/spc700/spc700.c)0
-rw-r--r--src/devices/cpu/spc700/spc700.h (renamed from src/emu/cpu/spc700/spc700.h)0
-rw-r--r--src/devices/cpu/spc700/spc700ds.c (renamed from src/emu/cpu/spc700/spc700ds.c)0
-rw-r--r--src/devices/cpu/spc700/spc700ds.h (renamed from src/emu/cpu/spc700/spc700ds.h)0
-rw-r--r--src/devices/cpu/ssem/ssem.c (renamed from src/emu/cpu/ssem/ssem.c)2
-rw-r--r--src/devices/cpu/ssem/ssem.h (renamed from src/emu/cpu/ssem/ssem.h)2
-rw-r--r--src/devices/cpu/ssem/ssemdasm.c (renamed from src/emu/cpu/ssem/ssemdasm.c)2
-rw-r--r--src/devices/cpu/ssp1601/ssp1601.c (renamed from src/emu/cpu/ssp1601/ssp1601.c)0
-rw-r--r--src/devices/cpu/ssp1601/ssp1601.h (renamed from src/emu/cpu/ssp1601/ssp1601.h)0
-rw-r--r--src/devices/cpu/ssp1601/ssp1601d.c (renamed from src/emu/cpu/ssp1601/ssp1601d.c)0
-rw-r--r--src/devices/cpu/superfx/sfx_dasm.c (renamed from src/emu/cpu/superfx/sfx_dasm.c)0
-rw-r--r--src/devices/cpu/superfx/superfx.c (renamed from src/emu/cpu/superfx/superfx.c)0
-rw-r--r--src/devices/cpu/superfx/superfx.h (renamed from src/emu/cpu/superfx/superfx.h)0
-rw-r--r--src/devices/cpu/t11/t11.c (renamed from src/emu/cpu/t11/t11.c)43
-rw-r--r--src/devices/cpu/t11/t11.h (renamed from src/emu/cpu/t11/t11.h)18
-rw-r--r--src/devices/cpu/t11/t11dasm.c (renamed from src/emu/cpu/t11/t11dasm.c)0
-rw-r--r--src/devices/cpu/t11/t11ops.inc (renamed from src/emu/cpu/t11/t11ops.inc)0
-rw-r--r--src/devices/cpu/t11/t11table.inc (renamed from src/emu/cpu/t11/t11table.inc)0
-rw-r--r--src/devices/cpu/tlcs90/tlcs90.c (renamed from src/emu/cpu/tlcs90/tlcs90.c)0
-rw-r--r--src/devices/cpu/tlcs90/tlcs90.h (renamed from src/emu/cpu/tlcs90/tlcs90.h)0
-rw-r--r--src/devices/cpu/tlcs900/900tbl.inc (renamed from src/emu/cpu/tlcs900/900tbl.inc)0
-rw-r--r--src/devices/cpu/tlcs900/dasm900.c (renamed from src/emu/cpu/tlcs900/dasm900.c)0
-rw-r--r--src/devices/cpu/tlcs900/tlcs900.c (renamed from src/emu/cpu/tlcs900/tlcs900.c)0
-rw-r--r--src/devices/cpu/tlcs900/tlcs900.h (renamed from src/emu/cpu/tlcs900/tlcs900.h)0
-rw-r--r--src/devices/cpu/tms0980/tms0980.c (renamed from src/emu/cpu/tms0980/tms0980.c)71
-rw-r--r--src/devices/cpu/tms0980/tms0980.h (renamed from src/emu/cpu/tms0980/tms0980.h)18
-rw-r--r--src/devices/cpu/tms0980/tms0980d.c (renamed from src/emu/cpu/tms0980/tms0980d.c)0
-rw-r--r--src/devices/cpu/tms32010/32010dsm.c (renamed from src/emu/cpu/tms32010/32010dsm.c)0
-rw-r--r--src/devices/cpu/tms32010/dis32010.c (renamed from src/emu/cpu/tms32010/dis32010.c)0
-rw-r--r--src/devices/cpu/tms32010/tms32010.c (renamed from src/emu/cpu/tms32010/tms32010.c)0
-rw-r--r--src/devices/cpu/tms32010/tms32010.h (renamed from src/emu/cpu/tms32010/tms32010.h)0
-rw-r--r--src/devices/cpu/tms32025/32025dsm.c (renamed from src/emu/cpu/tms32025/32025dsm.c)0
-rw-r--r--src/devices/cpu/tms32025/dis32025.c (renamed from src/emu/cpu/tms32025/dis32025.c)0
-rw-r--r--src/devices/cpu/tms32025/tms32025.c (renamed from src/emu/cpu/tms32025/tms32025.c)0
-rw-r--r--src/devices/cpu/tms32025/tms32025.h (renamed from src/emu/cpu/tms32025/tms32025.h)0
-rw-r--r--src/devices/cpu/tms32031/32031ops.c (renamed from src/emu/cpu/tms32031/32031ops.c)0
-rw-r--r--src/devices/cpu/tms32031/dis32031.c (renamed from src/emu/cpu/tms32031/dis32031.c)0
-rw-r--r--src/devices/cpu/tms32031/tms32031.c (renamed from src/emu/cpu/tms32031/tms32031.c)0
-rw-r--r--src/devices/cpu/tms32031/tms32031.h (renamed from src/emu/cpu/tms32031/tms32031.h)0
-rw-r--r--src/devices/cpu/tms32051/32051ops.c (renamed from src/emu/cpu/tms32051/32051ops.c)0
-rw-r--r--src/devices/cpu/tms32051/32051ops.h (renamed from src/emu/cpu/tms32051/32051ops.h)0
-rw-r--r--src/devices/cpu/tms32051/dis32051.c (renamed from src/emu/cpu/tms32051/dis32051.c)0
-rw-r--r--src/devices/cpu/tms32051/tms32051.c (renamed from src/emu/cpu/tms32051/tms32051.c)0
-rw-r--r--src/devices/cpu/tms32051/tms32051.h (renamed from src/emu/cpu/tms32051/tms32051.h)0
-rw-r--r--src/devices/cpu/tms32082/dis_mp.c (renamed from src/emu/cpu/tms32082/dis_mp.c)0
-rw-r--r--src/devices/cpu/tms32082/dis_pp.c (renamed from src/emu/cpu/tms32082/dis_pp.c)0
-rw-r--r--src/devices/cpu/tms32082/mp_ops.c (renamed from src/emu/cpu/tms32082/mp_ops.c)67
-rw-r--r--src/devices/cpu/tms32082/tms32082.c (renamed from src/emu/cpu/tms32082/tms32082.c)66
-rw-r--r--src/devices/cpu/tms32082/tms32082.h (renamed from src/emu/cpu/tms32082/tms32082.h)7
-rw-r--r--src/devices/cpu/tms34010/34010dsm.c (renamed from src/emu/cpu/tms34010/34010dsm.c)0
-rw-r--r--src/devices/cpu/tms34010/34010fld.c (renamed from src/emu/cpu/tms34010/34010fld.c)0
-rw-r--r--src/devices/cpu/tms34010/34010gfx.c (renamed from src/emu/cpu/tms34010/34010gfx.c)0
-rw-r--r--src/devices/cpu/tms34010/34010ops.c (renamed from src/emu/cpu/tms34010/34010ops.c)0
-rw-r--r--src/devices/cpu/tms34010/34010ops.h (renamed from src/emu/cpu/tms34010/34010ops.h)0
-rw-r--r--src/devices/cpu/tms34010/34010tbl.c (renamed from src/emu/cpu/tms34010/34010tbl.c)0
-rw-r--r--src/devices/cpu/tms34010/dis34010.c (renamed from src/emu/cpu/tms34010/dis34010.c)0
-rw-r--r--src/devices/cpu/tms34010/makefile (renamed from src/emu/cpu/tms34010/makefile)0
-rw-r--r--src/devices/cpu/tms34010/tms34010.c (renamed from src/emu/cpu/tms34010/tms34010.c)0
-rw-r--r--src/devices/cpu/tms34010/tms34010.h (renamed from src/emu/cpu/tms34010/tms34010.h)0
-rw-r--r--src/devices/cpu/tms57002/57002dsm.c (renamed from src/emu/cpu/tms57002/57002dsm.c)0
-rw-r--r--src/devices/cpu/tms57002/tms57002.c (renamed from src/emu/cpu/tms57002/tms57002.c)0
-rw-r--r--src/devices/cpu/tms57002/tms57002.h (renamed from src/emu/cpu/tms57002/tms57002.h)0
-rw-r--r--src/devices/cpu/tms57002/tms57kdec.c (renamed from src/emu/cpu/tms57002/tms57kdec.c)0
-rw-r--r--src/devices/cpu/tms57002/tmsinstr.lst (renamed from src/emu/cpu/tms57002/tmsinstr.lst)0
-rwxr-xr-xsrc/devices/cpu/tms57002/tmsmake.py (renamed from src/emu/cpu/tms57002/tmsmake.py)0
-rw-r--r--src/devices/cpu/tms7000/7000dasm.c (renamed from src/emu/cpu/tms7000/7000dasm.c)0
-rw-r--r--src/devices/cpu/tms7000/tms7000.c (renamed from src/emu/cpu/tms7000/tms7000.c)0
-rw-r--r--src/devices/cpu/tms7000/tms7000.h (renamed from src/emu/cpu/tms7000/tms7000.h)0
-rw-r--r--src/devices/cpu/tms7000/tms70op.inc (renamed from src/emu/cpu/tms7000/tms70op.inc)0
-rw-r--r--src/devices/cpu/tms9900/9900dasm.c (renamed from src/emu/cpu/tms9900/9900dasm.c)0
-rw-r--r--src/devices/cpu/tms9900/99xxcore.h (renamed from src/emu/cpu/tms9900/99xxcore.h)0
-rw-r--r--src/devices/cpu/tms9900/ti990_10.c (renamed from src/emu/cpu/tms9900/ti990_10.c)0
-rw-r--r--src/devices/cpu/tms9900/ti990_10.h (renamed from src/emu/cpu/tms9900/ti990_10.h)0
-rw-r--r--src/devices/cpu/tms9900/tms9900.c (renamed from src/emu/cpu/tms9900/tms9900.c)0
-rw-r--r--src/devices/cpu/tms9900/tms9900.h (renamed from src/emu/cpu/tms9900/tms9900.h)0
-rw-r--r--src/devices/cpu/tms9900/tms9980a.c (renamed from src/emu/cpu/tms9900/tms9980a.c)0
-rw-r--r--src/devices/cpu/tms9900/tms9980a.h (renamed from src/emu/cpu/tms9900/tms9980a.h)0
-rw-r--r--src/devices/cpu/tms9900/tms9995.c (renamed from src/emu/cpu/tms9900/tms9995.c)2
-rw-r--r--src/devices/cpu/tms9900/tms9995.h (renamed from src/emu/cpu/tms9900/tms9995.h)0
-rw-r--r--src/devices/cpu/tms9900/tms99com.h (renamed from src/emu/cpu/tms9900/tms99com.h)0
-rw-r--r--src/devices/cpu/ucom4/ucom4.c (renamed from src/emu/cpu/ucom4/ucom4.c)102
-rw-r--r--src/devices/cpu/ucom4/ucom4.h (renamed from src/emu/cpu/ucom4/ucom4.h)17
-rw-r--r--src/devices/cpu/ucom4/ucom4d.c (renamed from src/emu/cpu/ucom4/ucom4d.c)0
-rw-r--r--src/devices/cpu/ucom4/ucom4op.c (renamed from src/emu/cpu/ucom4/ucom4op.c)44
-rw-r--r--src/devices/cpu/uml.c (renamed from src/emu/cpu/uml.c)0
-rw-r--r--src/devices/cpu/uml.h (renamed from src/emu/cpu/uml.h)0
-rw-r--r--src/devices/cpu/unsp/unsp.c (renamed from src/emu/cpu/unsp/unsp.c)2
-rw-r--r--src/devices/cpu/unsp/unsp.h (renamed from src/emu/cpu/unsp/unsp.h)2
-rw-r--r--src/devices/cpu/unsp/unspdasm.c (renamed from src/emu/cpu/unsp/unspdasm.c)2
-rw-r--r--src/devices/cpu/upd7725/dasm7725.c (renamed from src/emu/cpu/upd7725/dasm7725.c)0
-rw-r--r--src/devices/cpu/upd7725/upd7725.c (renamed from src/emu/cpu/upd7725/upd7725.c)0
-rw-r--r--src/devices/cpu/upd7725/upd7725.h (renamed from src/emu/cpu/upd7725/upd7725.h)0
-rw-r--r--src/devices/cpu/upd7810/upd7810.c (renamed from src/emu/cpu/upd7810/upd7810.c)0
-rw-r--r--src/devices/cpu/upd7810/upd7810.h (renamed from src/emu/cpu/upd7810/upd7810.h)0
-rw-r--r--src/devices/cpu/upd7810/upd7810_dasm.c (renamed from src/emu/cpu/upd7810/upd7810_dasm.c)0
-rw-r--r--src/devices/cpu/upd7810/upd7810_macros.h (renamed from src/emu/cpu/upd7810/upd7810_macros.h)0
-rw-r--r--src/devices/cpu/upd7810/upd7810_opcodes.c (renamed from src/emu/cpu/upd7810/upd7810_opcodes.c)0
-rw-r--r--src/devices/cpu/upd7810/upd7810_table.c (renamed from src/emu/cpu/upd7810/upd7810_table.c)0
-rw-r--r--src/devices/cpu/v30mz/v30mz.c (renamed from src/emu/cpu/v30mz/v30mz.c)0
-rw-r--r--src/devices/cpu/v30mz/v30mz.h (renamed from src/emu/cpu/v30mz/v30mz.h)0
-rw-r--r--src/devices/cpu/v60/am.inc (renamed from src/emu/cpu/v60/am.inc)0
-rw-r--r--src/devices/cpu/v60/am1.inc (renamed from src/emu/cpu/v60/am1.inc)0
-rw-r--r--src/devices/cpu/v60/am2.inc (renamed from src/emu/cpu/v60/am2.inc)0
-rw-r--r--src/devices/cpu/v60/am3.inc (renamed from src/emu/cpu/v60/am3.inc)0
-rw-r--r--src/devices/cpu/v60/op12.inc (renamed from src/emu/cpu/v60/op12.inc)0
-rw-r--r--src/devices/cpu/v60/op2.inc (renamed from src/emu/cpu/v60/op2.inc)0
-rw-r--r--src/devices/cpu/v60/op3.inc (renamed from src/emu/cpu/v60/op3.inc)0
-rw-r--r--src/devices/cpu/v60/op4.inc (renamed from src/emu/cpu/v60/op4.inc)0
-rw-r--r--src/devices/cpu/v60/op5.inc (renamed from src/emu/cpu/v60/op5.inc)0
-rw-r--r--src/devices/cpu/v60/op6.inc (renamed from src/emu/cpu/v60/op6.inc)0
-rw-r--r--src/devices/cpu/v60/op7a.inc (renamed from src/emu/cpu/v60/op7a.inc)0
-rw-r--r--src/devices/cpu/v60/optable.inc (renamed from src/emu/cpu/v60/optable.inc)0
-rw-r--r--src/devices/cpu/v60/v60.c (renamed from src/emu/cpu/v60/v60.c)65
-rw-r--r--src/devices/cpu/v60/v60.h (renamed from src/emu/cpu/v60/v60.h)0
-rw-r--r--src/devices/cpu/v60/v60d.c (renamed from src/emu/cpu/v60/v60d.c)0
-rw-r--r--src/devices/cpu/v810/v810.c (renamed from src/emu/cpu/v810/v810.c)2
-rw-r--r--src/devices/cpu/v810/v810.h (renamed from src/emu/cpu/v810/v810.h)0
-rw-r--r--src/devices/cpu/v810/v810dasm.c (renamed from src/emu/cpu/v810/v810dasm.c)0
-rw-r--r--src/devices/cpu/vtlb.c (renamed from src/emu/cpu/vtlb.c)0
-rw-r--r--src/devices/cpu/vtlb.h (renamed from src/emu/cpu/vtlb.h)0
-rw-r--r--src/devices/cpu/x86emit.h (renamed from src/emu/cpu/x86emit.h)0
-rw-r--r--src/devices/cpu/x86log.c (renamed from src/emu/cpu/x86log.c)0
-rw-r--r--src/devices/cpu/x86log.h (renamed from src/emu/cpu/x86log.h)0
-rw-r--r--src/devices/cpu/z180/z180.c (renamed from src/emu/cpu/z180/z180.c)0
-rw-r--r--src/devices/cpu/z180/z180.h (renamed from src/emu/cpu/z180/z180.h)0
-rw-r--r--src/devices/cpu/z180/z180cb.inc (renamed from src/emu/cpu/z180/z180cb.inc)0
-rw-r--r--src/devices/cpu/z180/z180dasm.c (renamed from src/emu/cpu/z180/z180dasm.c)0
-rw-r--r--src/devices/cpu/z180/z180dd.inc (renamed from src/emu/cpu/z180/z180dd.inc)0
-rw-r--r--src/devices/cpu/z180/z180ed.inc (renamed from src/emu/cpu/z180/z180ed.inc)0
-rw-r--r--src/devices/cpu/z180/z180fd.inc (renamed from src/emu/cpu/z180/z180fd.inc)0
-rw-r--r--src/devices/cpu/z180/z180op.inc (renamed from src/emu/cpu/z180/z180op.inc)0
-rw-r--r--src/devices/cpu/z180/z180ops.h (renamed from src/emu/cpu/z180/z180ops.h)0
-rw-r--r--src/devices/cpu/z180/z180tbl.h (renamed from src/emu/cpu/z180/z180tbl.h)0
-rw-r--r--src/devices/cpu/z180/z180xy.inc (renamed from src/emu/cpu/z180/z180xy.inc)0
-rw-r--r--src/devices/cpu/z8/z8.c (renamed from src/emu/cpu/z8/z8.c)0
-rw-r--r--src/devices/cpu/z8/z8.h (renamed from src/emu/cpu/z8/z8.h)0
-rw-r--r--src/devices/cpu/z8/z8dasm.c (renamed from src/emu/cpu/z8/z8dasm.c)0
-rw-r--r--src/devices/cpu/z8/z8ops.inc (renamed from src/emu/cpu/z8/z8ops.inc)0
-rw-r--r--src/devices/cpu/z80/kl5c80a12.c (renamed from src/emu/cpu/z80/kl5c80a12.c)0
-rw-r--r--src/devices/cpu/z80/kl5c80a12.h (renamed from src/emu/cpu/z80/kl5c80a12.h)0
-rw-r--r--src/devices/cpu/z80/tmpz84c011.c (renamed from src/emu/cpu/z80/tmpz84c011.c)0
-rw-r--r--src/devices/cpu/z80/tmpz84c011.h (renamed from src/emu/cpu/z80/tmpz84c011.h)0
-rw-r--r--src/devices/cpu/z80/tmpz84c015.c (renamed from src/emu/cpu/z80/tmpz84c015.c)0
-rw-r--r--src/devices/cpu/z80/tmpz84c015.h (renamed from src/emu/cpu/z80/tmpz84c015.h)0
-rw-r--r--src/devices/cpu/z80/z80.c (renamed from src/emu/cpu/z80/z80.c)0
-rw-r--r--src/devices/cpu/z80/z80.h (renamed from src/emu/cpu/z80/z80.h)0
-rw-r--r--src/devices/cpu/z80/z80daisy.c (renamed from src/emu/cpu/z80/z80daisy.c)0
-rw-r--r--src/devices/cpu/z80/z80daisy.h (renamed from src/emu/cpu/z80/z80daisy.h)0
-rw-r--r--src/devices/cpu/z80/z80dasm.c (renamed from src/emu/cpu/z80/z80dasm.c)0
-rw-r--r--src/devices/cpu/z8000/8000dasm.c (renamed from src/emu/cpu/z8000/8000dasm.c)0
-rw-r--r--src/devices/cpu/z8000/makedab.c (renamed from src/emu/cpu/z8000/makedab.c)0
-rw-r--r--src/devices/cpu/z8000/z8000.c (renamed from src/emu/cpu/z8000/z8000.c)0
-rw-r--r--src/devices/cpu/z8000/z8000.h (renamed from src/emu/cpu/z8000/z8000.h)0
-rw-r--r--src/devices/cpu/z8000/z8000cpu.h (renamed from src/emu/cpu/z8000/z8000cpu.h)0
-rw-r--r--src/devices/cpu/z8000/z8000dab.h (renamed from src/emu/cpu/z8000/z8000dab.h)0
-rw-r--r--src/devices/cpu/z8000/z8000ops.inc (renamed from src/emu/cpu/z8000/z8000ops.inc)0
-rw-r--r--src/devices/cpu/z8000/z8000tbl.inc (renamed from src/emu/cpu/z8000/z8000tbl.inc)0
-rw-r--r--src/devices/imagedev/bitbngr.c (renamed from src/emu/imagedev/bitbngr.c)0
-rw-r--r--src/devices/imagedev/bitbngr.h (renamed from src/emu/imagedev/bitbngr.h)0
-rw-r--r--src/devices/imagedev/cassette.c (renamed from src/emu/imagedev/cassette.c)0
-rw-r--r--src/devices/imagedev/cassette.h (renamed from src/emu/imagedev/cassette.h)0
-rw-r--r--src/devices/imagedev/chd_cd.c (renamed from src/emu/imagedev/chd_cd.c)0
-rw-r--r--src/devices/imagedev/chd_cd.h (renamed from src/emu/imagedev/chd_cd.h)0
-rw-r--r--src/devices/imagedev/diablo.c (renamed from src/emu/imagedev/diablo.c)0
-rw-r--r--src/devices/imagedev/diablo.h (renamed from src/emu/imagedev/diablo.h)0
-rw-r--r--src/devices/imagedev/flopdrv.c (renamed from src/emu/imagedev/flopdrv.c)0
-rw-r--r--src/devices/imagedev/flopdrv.h (renamed from src/emu/imagedev/flopdrv.h)0
-rw-r--r--src/devices/imagedev/floppy.c (renamed from src/emu/imagedev/floppy.c)253
-rw-r--r--src/devices/imagedev/floppy.h (renamed from src/emu/imagedev/floppy.h)62
-rw-r--r--src/devices/imagedev/harddriv.c (renamed from src/emu/imagedev/harddriv.c)0
-rw-r--r--src/devices/imagedev/harddriv.h (renamed from src/emu/imagedev/harddriv.h)0
-rw-r--r--src/devices/imagedev/mfmhd.c (renamed from src/emu/machine/ti99_hd.c)960
-rw-r--r--src/devices/imagedev/mfmhd.h (renamed from src/emu/machine/ti99_hd.h)131
-rw-r--r--src/devices/imagedev/midiin.c (renamed from src/emu/imagedev/midiin.c)0
-rw-r--r--src/devices/imagedev/midiin.h (renamed from src/emu/imagedev/midiin.h)0
-rw-r--r--src/devices/imagedev/midiout.c (renamed from src/emu/imagedev/midiout.c)0
-rw-r--r--src/devices/imagedev/midiout.h (renamed from src/emu/imagedev/midiout.h)0
-rw-r--r--src/devices/imagedev/printer.c (renamed from src/emu/imagedev/printer.c)0
-rw-r--r--src/devices/imagedev/printer.h (renamed from src/emu/imagedev/printer.h)0
-rw-r--r--src/devices/imagedev/snapquik.c (renamed from src/emu/imagedev/snapquik.c)0
-rw-r--r--src/devices/imagedev/snapquik.h (renamed from src/emu/imagedev/snapquik.h)0
-rw-r--r--src/devices/machine/40105.c (renamed from src/emu/machine/40105.c)0
-rw-r--r--src/devices/machine/40105.h (renamed from src/emu/machine/40105.h)0
-rw-r--r--src/devices/machine/53c7xx.c (renamed from src/emu/machine/53c7xx.c)0
-rw-r--r--src/devices/machine/53c7xx.h (renamed from src/emu/machine/53c7xx.h)0
-rw-r--r--src/devices/machine/53c810.c (renamed from src/emu/machine/53c810.c)0
-rw-r--r--src/devices/machine/53c810.h (renamed from src/emu/machine/53c810.h)0
-rw-r--r--src/devices/machine/64h156.c (renamed from src/emu/machine/64h156.c)0
-rw-r--r--src/devices/machine/64h156.h (renamed from src/emu/machine/64h156.h)0
-rw-r--r--src/devices/machine/6522via.c (renamed from src/emu/machine/6522via.c)0
-rw-r--r--src/devices/machine/6522via.h (renamed from src/emu/machine/6522via.h)0
-rw-r--r--src/devices/machine/6525tpi.c (renamed from src/emu/machine/6525tpi.c)0
-rw-r--r--src/devices/machine/6525tpi.h (renamed from src/emu/machine/6525tpi.h)0
-rw-r--r--src/devices/machine/6532riot.c (renamed from src/emu/machine/6532riot.c)0
-rw-r--r--src/devices/machine/6532riot.h (renamed from src/emu/machine/6532riot.h)0
-rw-r--r--src/devices/machine/6821pia.c (renamed from src/emu/machine/6821pia.c)0
-rw-r--r--src/devices/machine/6821pia.h (renamed from src/emu/machine/6821pia.h)0
-rw-r--r--src/devices/machine/68230pit.c265
-rw-r--r--src/devices/machine/68230pit.h131
-rw-r--r--src/devices/machine/68307.c (renamed from src/emu/machine/68307.c)0
-rw-r--r--src/devices/machine/68307.h (renamed from src/emu/machine/68307.h)0
-rw-r--r--src/devices/machine/68307bus.c (renamed from src/emu/machine/68307bus.c)0
-rw-r--r--src/devices/machine/68307bus.h (renamed from src/emu/machine/68307bus.h)0
-rw-r--r--src/devices/machine/68307sim.c (renamed from src/emu/machine/68307sim.c)0
-rw-r--r--src/devices/machine/68307sim.h (renamed from src/emu/machine/68307sim.h)0
-rw-r--r--src/devices/machine/68307tmu.c (renamed from src/emu/machine/68307tmu.c)0
-rw-r--r--src/devices/machine/68307tmu.h (renamed from src/emu/machine/68307tmu.h)0
-rw-r--r--src/devices/machine/68340.c (renamed from src/emu/machine/68340.c)0
-rw-r--r--src/devices/machine/68340.h (renamed from src/emu/machine/68340.h)0
-rw-r--r--src/devices/machine/68340dma.c (renamed from src/emu/machine/68340dma.c)0
-rw-r--r--src/devices/machine/68340dma.h (renamed from src/emu/machine/68340dma.h)0
-rw-r--r--src/devices/machine/68340ser.c (renamed from src/emu/machine/68340ser.c)0
-rw-r--r--src/devices/machine/68340ser.h (renamed from src/emu/machine/68340ser.h)0
-rw-r--r--src/devices/machine/68340sim.c (renamed from src/emu/machine/68340sim.c)0
-rw-r--r--src/devices/machine/68340sim.h (renamed from src/emu/machine/68340sim.h)0
-rw-r--r--src/devices/machine/68340tmu.c (renamed from src/emu/machine/68340tmu.c)0
-rw-r--r--src/devices/machine/68340tmu.h (renamed from src/emu/machine/68340tmu.h)0
-rw-r--r--src/devices/machine/6840ptm.c (renamed from src/emu/machine/6840ptm.c)0
-rw-r--r--src/devices/machine/6840ptm.h (renamed from src/emu/machine/6840ptm.h)0
-rw-r--r--src/devices/machine/6850acia.c (renamed from src/emu/machine/6850acia.c)0
-rw-r--r--src/devices/machine/6850acia.h (renamed from src/emu/machine/6850acia.h)0
-rw-r--r--src/devices/machine/68561mpcc.c (renamed from src/emu/machine/68561mpcc.c)0
-rw-r--r--src/devices/machine/68561mpcc.h (renamed from src/emu/machine/68561mpcc.h)0
-rw-r--r--src/devices/machine/7200fifo.c (renamed from src/emu/machine/7200fifo.c)0
-rw-r--r--src/devices/machine/7200fifo.h (renamed from src/emu/machine/7200fifo.h)0
-rw-r--r--src/devices/machine/74123.c (renamed from src/emu/machine/74123.c)0
-rw-r--r--src/devices/machine/74123.h (renamed from src/emu/machine/74123.h)0
-rw-r--r--src/devices/machine/74145.c (renamed from src/emu/machine/74145.c)0
-rw-r--r--src/devices/machine/74145.h (renamed from src/emu/machine/74145.h)0
-rw-r--r--src/devices/machine/74148.c (renamed from src/emu/machine/74148.c)0
-rw-r--r--src/devices/machine/74148.h (renamed from src/emu/machine/74148.h)0
-rw-r--r--src/devices/machine/74153.c (renamed from src/emu/machine/74153.c)0
-rw-r--r--src/devices/machine/74153.h (renamed from src/emu/machine/74153.h)0
-rw-r--r--src/devices/machine/74181.c (renamed from src/emu/machine/74181.c)0
-rw-r--r--src/devices/machine/74181.h (renamed from src/emu/machine/74181.h)0
-rw-r--r--src/devices/machine/7474.c (renamed from src/emu/machine/7474.c)0
-rw-r--r--src/devices/machine/7474.h (renamed from src/emu/machine/7474.h)0
-rw-r--r--src/devices/machine/8042kbdc.c (renamed from src/emu/machine/8042kbdc.c)0
-rw-r--r--src/devices/machine/8042kbdc.h (renamed from src/emu/machine/8042kbdc.h)0
-rw-r--r--src/devices/machine/8530scc.c (renamed from src/emu/machine/8530scc.c)2
-rw-r--r--src/devices/machine/8530scc.h (renamed from src/emu/machine/8530scc.h)0
-rw-r--r--src/devices/machine/aakart.c (renamed from src/emu/machine/aakart.c)0
-rw-r--r--src/devices/machine/aakart.h (renamed from src/emu/machine/aakart.h)0
-rw-r--r--src/devices/machine/adc0808.c (renamed from src/emu/machine/adc0808.c)0
-rw-r--r--src/devices/machine/adc0808.h (renamed from src/emu/machine/adc0808.h)0
-rw-r--r--src/devices/machine/adc083x.c (renamed from src/emu/machine/adc083x.c)0
-rw-r--r--src/devices/machine/adc083x.h (renamed from src/emu/machine/adc083x.h)0
-rw-r--r--src/devices/machine/adc1038.c (renamed from src/emu/machine/adc1038.c)0
-rw-r--r--src/devices/machine/adc1038.h (renamed from src/emu/machine/adc1038.h)0
-rw-r--r--src/devices/machine/adc1213x.c (renamed from src/emu/machine/adc1213x.c)0
-rw-r--r--src/devices/machine/adc1213x.h (renamed from src/emu/machine/adc1213x.h)0
-rw-r--r--src/devices/machine/aicartc.c (renamed from src/emu/machine/aicartc.c)0
-rw-r--r--src/devices/machine/aicartc.h (renamed from src/emu/machine/aicartc.h)0
-rw-r--r--src/devices/machine/akiko.c (renamed from src/emu/machine/akiko.c)0
-rw-r--r--src/devices/machine/akiko.h (renamed from src/emu/machine/akiko.h)0
-rw-r--r--src/devices/machine/am53cf96.c (renamed from src/emu/machine/am53cf96.c)0
-rw-r--r--src/devices/machine/am53cf96.h (renamed from src/emu/machine/am53cf96.h)0
-rw-r--r--src/devices/machine/am9517a.c (renamed from src/emu/machine/am9517a.c)0
-rw-r--r--src/devices/machine/am9517a.h (renamed from src/emu/machine/am9517a.h)0
-rw-r--r--src/devices/machine/amigafdc.c (renamed from src/emu/machine/amigafdc.c)0
-rw-r--r--src/devices/machine/amigafdc.h (renamed from src/emu/machine/amigafdc.h)0
-rw-r--r--src/devices/machine/at28c16.c (renamed from src/emu/machine/at28c16.c)0
-rw-r--r--src/devices/machine/at28c16.h (renamed from src/emu/machine/at28c16.h)0
-rw-r--r--src/devices/machine/at29x.c525
-rw-r--r--src/devices/machine/at29x.h116
-rw-r--r--src/devices/machine/at45dbxx.c (renamed from src/emu/machine/at45dbxx.c)0
-rw-r--r--src/devices/machine/at45dbxx.h (renamed from src/emu/machine/at45dbxx.h)0
-rw-r--r--src/devices/machine/at_keybc.c (renamed from src/emu/machine/at_keybc.c)20
-rw-r--r--src/devices/machine/at_keybc.h (renamed from src/emu/machine/at_keybc.h)1
-rw-r--r--src/devices/machine/atadev.c (renamed from src/emu/machine/atadev.c)0
-rw-r--r--src/devices/machine/atadev.h (renamed from src/emu/machine/atadev.h)0
-rw-r--r--src/devices/machine/ataflash.c (renamed from src/emu/machine/ataflash.c)0
-rw-r--r--src/devices/machine/ataflash.h (renamed from src/emu/machine/ataflash.h)0
-rw-r--r--src/devices/machine/atahle.c (renamed from src/emu/machine/atahle.c)23
-rw-r--r--src/devices/machine/atahle.h (renamed from src/emu/machine/atahle.h)7
-rw-r--r--src/devices/machine/ataintf.c (renamed from src/emu/machine/ataintf.c)0
-rw-r--r--src/devices/machine/ataintf.h (renamed from src/emu/machine/ataintf.h)0
-rw-r--r--src/devices/machine/atapicdr.c (renamed from src/emu/machine/atapicdr.c)0
-rw-r--r--src/devices/machine/atapicdr.h (renamed from src/emu/machine/atapicdr.h)2
-rw-r--r--src/devices/machine/atapihle.c (renamed from src/emu/machine/atapihle.c)6
-rw-r--r--src/devices/machine/atapihle.h (renamed from src/emu/machine/atapihle.h)0
-rw-r--r--src/devices/machine/autoconfig.c (renamed from src/emu/machine/autoconfig.c)0
-rw-r--r--src/devices/machine/autoconfig.h (renamed from src/emu/machine/autoconfig.h)0
-rw-r--r--src/devices/machine/ay31015.c (renamed from src/emu/machine/ay31015.c)0
-rw-r--r--src/devices/machine/ay31015.h (renamed from src/emu/machine/ay31015.h)0
-rw-r--r--src/devices/machine/bankdev.c (renamed from src/emu/machine/bankdev.c)0
-rw-r--r--src/devices/machine/bankdev.h (renamed from src/emu/machine/bankdev.h)0
-rw-r--r--src/devices/machine/bcreader.c (renamed from src/emu/machine/bcreader.c)0
-rw-r--r--src/devices/machine/bcreader.h (renamed from src/emu/machine/bcreader.h)0
-rw-r--r--src/devices/machine/buffer.c (renamed from src/emu/machine/buffer.c)0
-rw-r--r--src/devices/machine/buffer.h (renamed from src/emu/machine/buffer.h)0
-rw-r--r--src/devices/machine/cdp1852.c (renamed from src/emu/machine/cdp1852.c)0
-rw-r--r--src/devices/machine/cdp1852.h (renamed from src/emu/machine/cdp1852.h)0
-rw-r--r--src/devices/machine/cdp1871.c (renamed from src/emu/machine/cdp1871.c)0
-rw-r--r--src/devices/machine/cdp1871.h (renamed from src/emu/machine/cdp1871.h)0
-rw-r--r--src/devices/machine/clock.c (renamed from src/emu/machine/clock.c)0
-rw-r--r--src/devices/machine/clock.h (renamed from src/emu/machine/clock.h)0
-rw-r--r--src/devices/machine/com8116.c (renamed from src/emu/machine/com8116.c)0
-rw-r--r--src/devices/machine/com8116.h (renamed from src/emu/machine/com8116.h)0
-rw-r--r--src/devices/machine/corvushd.c (renamed from src/emu/machine/corvushd.c)0
-rw-r--r--src/devices/machine/corvushd.h (renamed from src/emu/machine/corvushd.h)0
-rw-r--r--src/devices/machine/cr511b.c (renamed from src/emu/machine/cr511b.c)0
-rw-r--r--src/devices/machine/cr511b.h (renamed from src/emu/machine/cr511b.h)0
-rw-r--r--src/devices/machine/cr589.c (renamed from src/emu/machine/cr589.c)0
-rw-r--r--src/devices/machine/cr589.h (renamed from src/emu/machine/cr589.h)0
-rw-r--r--src/devices/machine/cs4031.c (renamed from src/emu/machine/cs4031.c)0
-rw-r--r--src/devices/machine/cs4031.h (renamed from src/emu/machine/cs4031.h)0
-rw-r--r--src/devices/machine/cs8221.c (renamed from src/emu/machine/cs8221.c)0
-rw-r--r--src/devices/machine/cs8221.h (renamed from src/emu/machine/cs8221.h)0
-rw-r--r--src/devices/machine/diablo_hd.c (renamed from src/emu/machine/diablo_hd.c)0
-rw-r--r--src/devices/machine/diablo_hd.h (renamed from src/emu/machine/diablo_hd.h)0
-rw-r--r--src/devices/machine/dmac.c (renamed from src/emu/machine/dmac.c)0
-rw-r--r--src/devices/machine/dmac.h (renamed from src/emu/machine/dmac.h)0
-rw-r--r--src/devices/machine/dp8390.c (renamed from src/emu/machine/dp8390.c)0
-rw-r--r--src/devices/machine/dp8390.h (renamed from src/emu/machine/dp8390.h)0
-rw-r--r--src/devices/machine/ds1204.c (renamed from src/emu/machine/ds1204.c)0
-rw-r--r--src/devices/machine/ds1204.h (renamed from src/emu/machine/ds1204.h)0
-rw-r--r--src/devices/machine/ds128x.c (renamed from src/emu/machine/ds128x.c)0
-rw-r--r--src/devices/machine/ds128x.h (renamed from src/emu/machine/ds128x.h)0
-rw-r--r--src/devices/machine/ds1302.c (renamed from src/emu/machine/ds1302.c)0
-rw-r--r--src/devices/machine/ds1302.h (renamed from src/emu/machine/ds1302.h)0
-rw-r--r--src/devices/machine/ds1315.c (renamed from src/emu/machine/ds1315.c)0
-rw-r--r--src/devices/machine/ds1315.h (renamed from src/emu/machine/ds1315.h)0
-rw-r--r--src/devices/machine/ds2401.c (renamed from src/emu/machine/ds2401.c)0
-rw-r--r--src/devices/machine/ds2401.h (renamed from src/emu/machine/ds2401.h)0
-rw-r--r--src/devices/machine/ds2404.c (renamed from src/emu/machine/ds2404.c)0
-rw-r--r--src/devices/machine/ds2404.h (renamed from src/emu/machine/ds2404.h)0
-rw-r--r--src/devices/machine/ds75160a.c (renamed from src/emu/machine/ds75160a.c)0
-rw-r--r--src/devices/machine/ds75160a.h (renamed from src/emu/machine/ds75160a.h)0
-rw-r--r--src/devices/machine/ds75161a.c (renamed from src/emu/machine/ds75161a.c)0
-rw-r--r--src/devices/machine/ds75161a.h (renamed from src/emu/machine/ds75161a.h)0
-rw-r--r--src/devices/machine/e0516.c (renamed from src/emu/machine/e0516.c)0
-rw-r--r--src/devices/machine/e0516.h (renamed from src/emu/machine/e0516.h)0
-rw-r--r--src/devices/machine/e05a03.c (renamed from src/emu/machine/e05a03.c)0
-rw-r--r--src/devices/machine/e05a03.h (renamed from src/emu/machine/e05a03.h)0
-rw-r--r--src/devices/machine/e05a30.c (renamed from src/emu/machine/e05a30.c)8
-rw-r--r--src/devices/machine/e05a30.h (renamed from src/emu/machine/e05a30.h)0
-rw-r--r--src/devices/machine/eeprom.c (renamed from src/emu/machine/eeprom.c)0
-rw-r--r--src/devices/machine/eeprom.h (renamed from src/emu/machine/eeprom.h)0
-rw-r--r--src/devices/machine/eeprompar.c (renamed from src/emu/machine/eeprompar.c)0
-rw-r--r--src/devices/machine/eeprompar.h (renamed from src/emu/machine/eeprompar.h)0
-rw-r--r--src/devices/machine/eepromser.c (renamed from src/emu/machine/eepromser.c)0
-rw-r--r--src/devices/machine/eepromser.h (renamed from src/emu/machine/eepromser.h)0
-rw-r--r--src/devices/machine/er2055.c (renamed from src/emu/machine/er2055.c)0
-rw-r--r--src/devices/machine/er2055.h (renamed from src/emu/machine/er2055.h)0
-rw-r--r--src/devices/machine/f3853.c (renamed from src/emu/machine/f3853.c)0
-rw-r--r--src/devices/machine/f3853.h (renamed from src/emu/machine/f3853.h)0
-rw-r--r--src/devices/machine/fdc37c665gt.c (renamed from src/emu/machine/fdc37c665gt.c)0
-rw-r--r--src/devices/machine/fdc37c665gt.h (renamed from src/emu/machine/fdc37c665gt.h)0
-rw-r--r--src/devices/machine/fdc_pll.c (renamed from src/emu/machine/fdc_pll.c)8
-rw-r--r--src/devices/machine/fdc_pll.h (renamed from src/emu/machine/fdc_pll.h)0
-rw-r--r--src/devices/machine/gayle.c (renamed from src/emu/machine/gayle.c)0
-rw-r--r--src/devices/machine/gayle.h (renamed from src/emu/machine/gayle.h)0
-rw-r--r--src/devices/machine/hd63450.c (renamed from src/emu/machine/hd63450.c)0
-rw-r--r--src/devices/machine/hd63450.h (renamed from src/emu/machine/hd63450.h)0
-rw-r--r--src/devices/machine/hd64610.c (renamed from src/emu/machine/hd64610.c)0
-rw-r--r--src/devices/machine/hd64610.h (renamed from src/emu/machine/hd64610.h)0
-rw-r--r--src/devices/machine/hdc92x4.c (renamed from src/emu/machine/hdc9234.c)333
-rw-r--r--src/devices/machine/hdc92x4.h (renamed from src/emu/machine/hdc9234.h)73
-rw-r--r--src/devices/machine/i2cmem.c (renamed from src/emu/machine/i2cmem.c)0
-rw-r--r--src/devices/machine/i2cmem.h (renamed from src/emu/machine/i2cmem.h)0
-rw-r--r--src/devices/machine/i6300esb.c (renamed from src/emu/machine/i6300esb.c)0
-rw-r--r--src/devices/machine/i6300esb.h (renamed from src/emu/machine/i6300esb.h)0
-rw-r--r--src/devices/machine/i80130.c (renamed from src/emu/machine/i80130.c)0
-rw-r--r--src/devices/machine/i80130.h (renamed from src/emu/machine/i80130.h)0
-rw-r--r--src/devices/machine/i8155.c (renamed from src/emu/machine/i8155.c)0
-rw-r--r--src/devices/machine/i8155.h (renamed from src/emu/machine/i8155.h)0
-rw-r--r--src/devices/machine/i8212.c (renamed from src/emu/machine/i8212.c)0
-rw-r--r--src/devices/machine/i8212.h (renamed from src/emu/machine/i8212.h)0
-rw-r--r--src/devices/machine/i8214.c (renamed from src/emu/machine/i8214.c)0
-rw-r--r--src/devices/machine/i8214.h (renamed from src/emu/machine/i8214.h)0
-rw-r--r--src/devices/machine/i8243.c (renamed from src/emu/machine/i8243.c)0
-rw-r--r--src/devices/machine/i8243.h (renamed from src/emu/machine/i8243.h)0
-rw-r--r--src/devices/machine/i8251.c (renamed from src/emu/machine/i8251.c)19
-rw-r--r--src/devices/machine/i8251.h (renamed from src/emu/machine/i8251.h)3
-rw-r--r--src/devices/machine/i82541.c (renamed from src/emu/machine/i82541.c)0
-rw-r--r--src/devices/machine/i82541.h (renamed from src/emu/machine/i82541.h)0
-rw-r--r--src/devices/machine/i8255.c (renamed from src/emu/machine/i8255.c)0
-rw-r--r--src/devices/machine/i8255.h (renamed from src/emu/machine/i8255.h)0
-rw-r--r--src/devices/machine/i8257.c (renamed from src/emu/machine/i8257.c)0
-rw-r--r--src/devices/machine/i8257.h (renamed from src/emu/machine/i8257.h)0
-rw-r--r--src/devices/machine/i8271.c1698
-rw-r--r--src/devices/machine/i8271.h296
-rw-r--r--src/devices/machine/i8279.c (renamed from src/emu/machine/i8279.c)0
-rw-r--r--src/devices/machine/i8279.h (renamed from src/emu/machine/i8279.h)0
-rw-r--r--src/devices/machine/i82875p.c (renamed from src/emu/machine/i82875p.c)0
-rw-r--r--src/devices/machine/i82875p.h (renamed from src/emu/machine/i82875p.h)0
-rw-r--r--src/devices/machine/i8355.c (renamed from src/emu/machine/i8355.c)0
-rw-r--r--src/devices/machine/i8355.h (renamed from src/emu/machine/i8355.h)0
-rw-r--r--src/devices/machine/idectrl.c (renamed from src/emu/machine/idectrl.c)10
-rw-r--r--src/devices/machine/idectrl.h (renamed from src/emu/machine/idectrl.h)0
-rw-r--r--src/devices/machine/idehd.c (renamed from src/emu/machine/idehd.c)2
-rw-r--r--src/devices/machine/idehd.h (renamed from src/emu/machine/idehd.h)0
-rw-r--r--src/devices/machine/im6402.c (renamed from src/emu/machine/im6402.c)0
-rw-r--r--src/devices/machine/im6402.h (renamed from src/emu/machine/im6402.h)0
-rw-r--r--src/devices/machine/ins8154.c (renamed from src/emu/machine/ins8154.c)0
-rw-r--r--src/devices/machine/ins8154.h (renamed from src/emu/machine/ins8154.h)0
-rw-r--r--src/devices/machine/ins8250.c (renamed from src/emu/machine/ins8250.c)0
-rw-r--r--src/devices/machine/ins8250.h (renamed from src/emu/machine/ins8250.h)0
-rw-r--r--src/devices/machine/intelfsh.c (renamed from src/emu/machine/intelfsh.c)32
-rw-r--r--src/devices/machine/intelfsh.h (renamed from src/emu/machine/intelfsh.h)12
-rw-r--r--src/devices/machine/jvsdev.c (renamed from src/emu/machine/jvsdev.c)7
-rw-r--r--src/devices/machine/jvsdev.h (renamed from src/emu/machine/jvsdev.h)2
-rw-r--r--src/devices/machine/jvshost.c (renamed from src/emu/machine/jvshost.c)0
-rw-r--r--src/devices/machine/jvshost.h (renamed from src/emu/machine/jvshost.h)0
-rw-r--r--src/devices/machine/k033906.c (renamed from src/emu/machine/k033906.c)0
-rw-r--r--src/devices/machine/k033906.h (renamed from src/emu/machine/k033906.h)0
-rw-r--r--src/devices/machine/k053252.c (renamed from src/emu/machine/k053252.c)0
-rw-r--r--src/devices/machine/k053252.h (renamed from src/emu/machine/k053252.h)0
-rw-r--r--src/devices/machine/k056230.c (renamed from src/emu/machine/k056230.c)0
-rw-r--r--src/devices/machine/k056230.h (renamed from src/emu/machine/k056230.h)0
-rw-r--r--src/devices/machine/kb3600.c (renamed from src/emu/machine/kb3600.c)0
-rw-r--r--src/devices/machine/kb3600.h (renamed from src/emu/machine/kb3600.h)0
-rw-r--r--src/devices/machine/keyboard.c (renamed from src/emu/machine/keyboard.c)0
-rw-r--r--src/devices/machine/keyboard.h (renamed from src/emu/machine/keyboard.h)0
-rw-r--r--src/devices/machine/kr2376.c (renamed from src/emu/machine/kr2376.c)0
-rw-r--r--src/devices/machine/kr2376.h (renamed from src/emu/machine/kr2376.h)0
-rw-r--r--src/devices/machine/laserdsc.c (renamed from src/emu/machine/laserdsc.c)0
-rw-r--r--src/devices/machine/laserdsc.h (renamed from src/emu/machine/laserdsc.h)0
-rw-r--r--src/devices/machine/latch.c (renamed from src/emu/machine/latch.c)0
-rw-r--r--src/devices/machine/latch.h (renamed from src/emu/machine/latch.h)0
-rw-r--r--src/devices/machine/latch8.c (renamed from src/emu/machine/latch8.c)0
-rw-r--r--src/devices/machine/latch8.h (renamed from src/emu/machine/latch8.h)0
-rw-r--r--src/devices/machine/lc89510.c (renamed from src/emu/machine/lc89510.c)0
-rw-r--r--src/devices/machine/lc89510.h (renamed from src/emu/machine/lc89510.h)0
-rw-r--r--src/devices/machine/ldpr8210.c (renamed from src/emu/machine/ldpr8210.c)2
-rw-r--r--src/devices/machine/ldpr8210.h (renamed from src/emu/machine/ldpr8210.h)0
-rw-r--r--src/devices/machine/ldstub.c (renamed from src/emu/machine/ldstub.c)0
-rw-r--r--src/devices/machine/ldstub.h (renamed from src/emu/machine/ldstub.h)0
-rw-r--r--src/devices/machine/ldv1000.c (renamed from src/emu/machine/ldv1000.c)0
-rw-r--r--src/devices/machine/ldv1000.h (renamed from src/emu/machine/ldv1000.h)0
-rw-r--r--src/devices/machine/ldvp931.c (renamed from src/emu/machine/ldvp931.c)0
-rw-r--r--src/devices/machine/ldvp931.h (renamed from src/emu/machine/ldvp931.h)0
-rw-r--r--src/devices/machine/legscsi.c (renamed from src/emu/machine/legscsi.c)0
-rw-r--r--src/devices/machine/legscsi.h (renamed from src/emu/machine/legscsi.h)0
-rw-r--r--src/devices/machine/lh5810.c (renamed from src/emu/machine/lh5810.c)0
-rw-r--r--src/devices/machine/lh5810.h (renamed from src/emu/machine/lh5810.h)0
-rw-r--r--src/devices/machine/linflash.c (renamed from src/emu/machine/linflash.c)0
-rw-r--r--src/devices/machine/linflash.h (renamed from src/emu/machine/linflash.h)0
-rw-r--r--src/devices/machine/lpc-acpi.c (renamed from src/emu/machine/lpc-acpi.c)0
-rw-r--r--src/devices/machine/lpc-acpi.h (renamed from src/emu/machine/lpc-acpi.h)0
-rw-r--r--src/devices/machine/lpc-pit.c (renamed from src/emu/machine/lpc-pit.c)0
-rw-r--r--src/devices/machine/lpc-pit.h (renamed from src/emu/machine/lpc-pit.h)0
-rw-r--r--src/devices/machine/lpc-rtc.c (renamed from src/emu/machine/lpc-rtc.c)0
-rw-r--r--src/devices/machine/lpc-rtc.h (renamed from src/emu/machine/lpc-rtc.h)0
-rw-r--r--src/devices/machine/lpc.c (renamed from src/emu/machine/lpc.c)0
-rw-r--r--src/devices/machine/lpc.h (renamed from src/emu/machine/lpc.h)0
-rw-r--r--src/devices/machine/lpci.c (renamed from src/emu/machine/lpci.c)0
-rw-r--r--src/devices/machine/lpci.h (renamed from src/emu/machine/lpci.h)0
-rw-r--r--src/devices/machine/m6m80011ap.c (renamed from src/emu/machine/m6m80011ap.c)0
-rw-r--r--src/devices/machine/m6m80011ap.h (renamed from src/emu/machine/m6m80011ap.h)0
-rw-r--r--src/devices/machine/matsucd.c (renamed from src/emu/machine/matsucd.c)0
-rw-r--r--src/devices/machine/matsucd.h (renamed from src/emu/machine/matsucd.h)0
-rw-r--r--src/devices/machine/mb14241.c (renamed from src/emu/machine/mb14241.c)0
-rw-r--r--src/devices/machine/mb14241.h (renamed from src/emu/machine/mb14241.h)0
-rw-r--r--src/devices/machine/mb3773.c (renamed from src/emu/machine/mb3773.c)0
-rw-r--r--src/devices/machine/mb3773.h (renamed from src/emu/machine/mb3773.h)0
-rw-r--r--src/devices/machine/mb8421.c (renamed from src/emu/machine/mb8421.c)0
-rw-r--r--src/devices/machine/mb8421.h (renamed from src/emu/machine/mb8421.h)0
-rw-r--r--src/devices/machine/mb87078.c (renamed from src/emu/machine/mb87078.c)0
-rw-r--r--src/devices/machine/mb87078.h (renamed from src/emu/machine/mb87078.h)0
-rw-r--r--src/devices/machine/mb8795.c (renamed from src/emu/machine/mb8795.c)0
-rw-r--r--src/devices/machine/mb8795.h (renamed from src/emu/machine/mb8795.h)0
-rw-r--r--src/devices/machine/mb89352.c (renamed from src/emu/machine/mb89352.c)0
-rw-r--r--src/devices/machine/mb89352.h (renamed from src/emu/machine/mb89352.h)0
-rw-r--r--src/devices/machine/mb89363b.c (renamed from src/emu/machine/mb89363b.c)0
-rw-r--r--src/devices/machine/mb89363b.h (renamed from src/emu/machine/mb89363b.h)0
-rw-r--r--src/devices/machine/mb89371.c (renamed from src/emu/machine/mb89371.c)0
-rw-r--r--src/devices/machine/mb89371.h (renamed from src/emu/machine/mb89371.h)0
-rw-r--r--src/devices/machine/mc146818.c (renamed from src/emu/machine/mc146818.c)17
-rw-r--r--src/devices/machine/mc146818.h (renamed from src/emu/machine/mc146818.h)16
-rw-r--r--src/devices/machine/mc2661.c (renamed from src/emu/machine/mc2661.c)0
-rw-r--r--src/devices/machine/mc2661.h (renamed from src/emu/machine/mc2661.h)0
-rw-r--r--src/devices/machine/mc68328.c (renamed from src/emu/machine/mc68328.c)3
-rw-r--r--src/devices/machine/mc68328.h (renamed from src/emu/machine/mc68328.h)3
-rw-r--r--src/devices/machine/mc6843.c (renamed from src/emu/machine/mc6843.c)0
-rw-r--r--src/devices/machine/mc6843.h (renamed from src/emu/machine/mc6843.h)0
-rw-r--r--src/devices/machine/mc6846.c (renamed from src/emu/machine/mc6846.c)0
-rw-r--r--src/devices/machine/mc6846.h (renamed from src/emu/machine/mc6846.h)0
-rw-r--r--src/devices/machine/mc6852.c (renamed from src/emu/machine/mc6852.c)0
-rw-r--r--src/devices/machine/mc6852.h (renamed from src/emu/machine/mc6852.h)0
-rw-r--r--src/devices/machine/mc6854.c (renamed from src/emu/machine/mc6854.c)0
-rw-r--r--src/devices/machine/mc6854.h (renamed from src/emu/machine/mc6854.h)0
-rw-r--r--src/devices/machine/mc68681.c (renamed from src/emu/machine/mc68681.c)0
-rw-r--r--src/devices/machine/mc68681.h (renamed from src/emu/machine/mc68681.h)0
-rw-r--r--src/devices/machine/mc68901.c (renamed from src/emu/machine/mc68901.c)0
-rw-r--r--src/devices/machine/mc68901.h (renamed from src/emu/machine/mc68901.h)0
-rw-r--r--src/devices/machine/mccs1850.c (renamed from src/emu/machine/mccs1850.c)0
-rw-r--r--src/devices/machine/mccs1850.h (renamed from src/emu/machine/mccs1850.h)0
-rw-r--r--src/devices/machine/mcf5206e.c (renamed from src/emu/machine/mcf5206e.c)0
-rw-r--r--src/devices/machine/mcf5206e.h (renamed from src/emu/machine/mcf5206e.h)0
-rw-r--r--src/devices/machine/microtch.c (renamed from src/emu/machine/microtch.c)0
-rw-r--r--src/devices/machine/microtch.h (renamed from src/emu/machine/microtch.h)0
-rw-r--r--src/devices/machine/mm58167.c (renamed from src/emu/machine/mm58167.c)0
-rw-r--r--src/devices/machine/mm58167.h (renamed from src/emu/machine/mm58167.h)0
-rw-r--r--src/devices/machine/mm58274c.c (renamed from src/emu/machine/mm58274c.c)0
-rw-r--r--src/devices/machine/mm58274c.h (renamed from src/emu/machine/mm58274c.h)0
-rw-r--r--src/devices/machine/mm74c922.c (renamed from src/emu/machine/mm74c922.c)0
-rw-r--r--src/devices/machine/mm74c922.h (renamed from src/emu/machine/mm74c922.h)0
-rw-r--r--src/devices/machine/mos6526.c (renamed from src/emu/machine/mos6526.c)0
-rw-r--r--src/devices/machine/mos6526.h (renamed from src/emu/machine/mos6526.h)0
-rw-r--r--src/devices/machine/mos6529.c (renamed from src/emu/machine/mos6529.c)0
-rw-r--r--src/devices/machine/mos6529.h (renamed from src/emu/machine/mos6529.h)0
-rw-r--r--src/devices/machine/mos6530.c (renamed from src/emu/machine/mos6530.c)0
-rw-r--r--src/devices/machine/mos6530.h (renamed from src/emu/machine/mos6530.h)0
-rw-r--r--src/devices/machine/mos6530n.c (renamed from src/emu/machine/mos6530n.c)0
-rw-r--r--src/devices/machine/mos6530n.h (renamed from src/emu/machine/mos6530n.h)0
-rw-r--r--src/devices/machine/mos6551.c (renamed from src/emu/machine/mos6551.c)0
-rw-r--r--src/devices/machine/mos6551.h (renamed from src/emu/machine/mos6551.h)0
-rw-r--r--src/devices/machine/mos6702.c (renamed from src/emu/machine/mos6702.c)0
-rw-r--r--src/devices/machine/mos6702.h (renamed from src/emu/machine/mos6702.h)0
-rw-r--r--src/devices/machine/mos8706.c (renamed from src/emu/machine/mos8706.c)0
-rw-r--r--src/devices/machine/mos8706.h (renamed from src/emu/machine/mos8706.h)0
-rw-r--r--src/devices/machine/mos8722.c (renamed from src/emu/machine/mos8722.c)0
-rw-r--r--src/devices/machine/mos8722.h (renamed from src/emu/machine/mos8722.h)0
-rw-r--r--src/devices/machine/mos8726.c (renamed from src/emu/machine/mos8726.c)0
-rw-r--r--src/devices/machine/mos8726.h (renamed from src/emu/machine/mos8726.h)0
-rw-r--r--src/devices/machine/mpu401.c (renamed from src/emu/machine/mpu401.c)0
-rw-r--r--src/devices/machine/mpu401.h (renamed from src/emu/machine/mpu401.h)0
-rw-r--r--src/devices/machine/msm5832.c (renamed from src/emu/machine/msm5832.c)0
-rw-r--r--src/devices/machine/msm5832.h (renamed from src/emu/machine/msm5832.h)0
-rw-r--r--src/devices/machine/msm58321.c (renamed from src/emu/machine/msm58321.c)0
-rw-r--r--src/devices/machine/msm58321.h (renamed from src/emu/machine/msm58321.h)0
-rw-r--r--src/devices/machine/msm6242.c (renamed from src/emu/machine/msm6242.c)0
-rw-r--r--src/devices/machine/msm6242.h (renamed from src/emu/machine/msm6242.h)0
-rw-r--r--src/devices/machine/ncr5380.c (renamed from src/emu/machine/ncr5380.c)0
-rw-r--r--src/devices/machine/ncr5380.h (renamed from src/emu/machine/ncr5380.h)0
-rw-r--r--src/devices/machine/ncr5380n.c (renamed from src/emu/machine/ncr5380n.c)0
-rw-r--r--src/devices/machine/ncr5380n.h (renamed from src/emu/machine/ncr5380n.h)0
-rw-r--r--src/devices/machine/ncr5390.c (renamed from src/emu/machine/ncr5390.c)0
-rw-r--r--src/devices/machine/ncr5390.h (renamed from src/emu/machine/ncr5390.h)0
-rw-r--r--src/devices/machine/ncr539x.c (renamed from src/emu/machine/ncr539x.c)0
-rw-r--r--src/devices/machine/ncr539x.h (renamed from src/emu/machine/ncr539x.h)0
-rw-r--r--src/devices/machine/netlist.c (renamed from src/emu/machine/netlist.c)107
-rw-r--r--src/devices/machine/netlist.h (renamed from src/emu/machine/netlist.h)20
-rw-r--r--src/devices/machine/nmc9306.c (renamed from src/emu/machine/nmc9306.c)0
-rw-r--r--src/devices/machine/nmc9306.h (renamed from src/emu/machine/nmc9306.h)0
-rw-r--r--src/devices/machine/nsc810.c (renamed from src/emu/machine/nsc810.c)0
-rw-r--r--src/devices/machine/nsc810.h (renamed from src/emu/machine/nsc810.h)0
-rw-r--r--src/devices/machine/nscsi_bus.c (renamed from src/emu/machine/nscsi_bus.c)0
-rw-r--r--src/devices/machine/nscsi_bus.h (renamed from src/emu/machine/nscsi_bus.h)0
-rw-r--r--src/devices/machine/nscsi_cb.c (renamed from src/emu/machine/nscsi_cb.c)0
-rw-r--r--src/devices/machine/nscsi_cb.h (renamed from src/emu/machine/nscsi_cb.h)0
-rw-r--r--src/devices/machine/nscsi_cd.c (renamed from src/emu/machine/nscsi_cd.c)0
-rw-r--r--src/devices/machine/nscsi_cd.h (renamed from src/emu/machine/nscsi_cd.h)0
-rw-r--r--src/devices/machine/nscsi_hd.c (renamed from src/emu/machine/nscsi_hd.c)0
-rw-r--r--src/devices/machine/nscsi_hd.h (renamed from src/emu/machine/nscsi_hd.h)0
-rw-r--r--src/devices/machine/nscsi_s1410.c (renamed from src/emu/machine/nscsi_s1410.c)0
-rw-r--r--src/devices/machine/nscsi_s1410.h (renamed from src/emu/machine/nscsi_s1410.h)0
-rw-r--r--src/devices/machine/nvram.c (renamed from src/emu/machine/nvram.c)10
-rw-r--r--src/devices/machine/nvram.h (renamed from src/emu/machine/nvram.h)0
-rw-r--r--src/devices/machine/pc_fdc.c (renamed from src/emu/machine/pc_fdc.c)0
-rw-r--r--src/devices/machine/pc_fdc.h (renamed from src/emu/machine/pc_fdc.h)0
-rw-r--r--src/devices/machine/pc_lpt.c (renamed from src/emu/machine/pc_lpt.c)0
-rw-r--r--src/devices/machine/pc_lpt.h (renamed from src/emu/machine/pc_lpt.h)0
-rw-r--r--src/devices/machine/pccard.c (renamed from src/emu/machine/pccard.c)0
-rw-r--r--src/devices/machine/pccard.h (renamed from src/emu/machine/pccard.h)0
-rw-r--r--src/devices/machine/pcf8593.c (renamed from src/emu/machine/pcf8593.c)0
-rw-r--r--src/devices/machine/pcf8593.h (renamed from src/emu/machine/pcf8593.h)0
-rw-r--r--src/devices/machine/pci-apic.c (renamed from src/emu/machine/pci-apic.c)0
-rw-r--r--src/devices/machine/pci-apic.h (renamed from src/emu/machine/pci-apic.h)0
-rw-r--r--src/devices/machine/pci-sata.c (renamed from src/emu/machine/pci-sata.c)0
-rw-r--r--src/devices/machine/pci-sata.h (renamed from src/emu/machine/pci-sata.h)0
-rw-r--r--src/devices/machine/pci-smbus.c (renamed from src/emu/machine/pci-smbus.c)0
-rw-r--r--src/devices/machine/pci-smbus.h (renamed from src/emu/machine/pci-smbus.h)0
-rw-r--r--src/devices/machine/pci-usb.c (renamed from src/emu/machine/pci-usb.c)0
-rw-r--r--src/devices/machine/pci-usb.h (renamed from src/emu/machine/pci-usb.h)0
-rw-r--r--src/devices/machine/pci.c (renamed from src/emu/machine/pci.c)11
-rw-r--r--src/devices/machine/pci.h (renamed from src/emu/machine/pci.h)0
-rw-r--r--src/devices/machine/pci9050.c (renamed from src/emu/machine/pci9050.c)0
-rw-r--r--src/devices/machine/pci9050.h (renamed from src/emu/machine/pci9050.h)0
-rw-r--r--src/devices/machine/pckeybrd.c (renamed from src/emu/machine/pckeybrd.c)0
-rw-r--r--src/devices/machine/pckeybrd.h (renamed from src/emu/machine/pckeybrd.h)0
-rw-r--r--src/devices/machine/pic8259.c (renamed from src/emu/machine/pic8259.c)0
-rw-r--r--src/devices/machine/pic8259.h (renamed from src/emu/machine/pic8259.h)3
-rw-r--r--src/devices/machine/pit8253.c (renamed from src/emu/machine/pit8253.c)28
-rw-r--r--src/devices/machine/pit8253.h (renamed from src/emu/machine/pit8253.h)3
-rw-r--r--src/devices/machine/pla.c (renamed from src/emu/machine/pla.c)0
-rw-r--r--src/devices/machine/pla.h (renamed from src/emu/machine/pla.h)0
-rw-r--r--src/devices/machine/r10696.c (renamed from src/emu/machine/r10696.c)0
-rw-r--r--src/devices/machine/r10696.h (renamed from src/emu/machine/r10696.h)0
-rw-r--r--src/devices/machine/r10788.c (renamed from src/emu/machine/r10788.c)0
-rw-r--r--src/devices/machine/r10788.h (renamed from src/emu/machine/r10788.h)0
-rw-r--r--src/devices/machine/ra17xx.c (renamed from src/emu/machine/ra17xx.c)0
-rw-r--r--src/devices/machine/ra17xx.h (renamed from src/emu/machine/ra17xx.h)0
-rw-r--r--src/devices/machine/ram.c (renamed from src/emu/machine/ram.c)0
-rw-r--r--src/devices/machine/ram.h (renamed from src/emu/machine/ram.h)0
-rw-r--r--src/devices/machine/rescap.h (renamed from src/emu/machine/rescap.h)0
-rw-r--r--src/devices/machine/rf5c296.c (renamed from src/emu/machine/rf5c296.c)0
-rw-r--r--src/devices/machine/rf5c296.h (renamed from src/emu/machine/rf5c296.h)0
-rw-r--r--src/devices/machine/roc10937.c (renamed from src/emu/machine/roc10937.c)0
-rw-r--r--src/devices/machine/roc10937.h (renamed from src/emu/machine/roc10937.h)0
-rw-r--r--src/devices/machine/rp5c01.c (renamed from src/emu/machine/rp5c01.c)0
-rw-r--r--src/devices/machine/rp5c01.h (renamed from src/emu/machine/rp5c01.h)0
-rw-r--r--src/devices/machine/rp5c15.c (renamed from src/emu/machine/rp5c15.c)0
-rw-r--r--src/devices/machine/rp5c15.h (renamed from src/emu/machine/rp5c15.h)0
-rw-r--r--src/devices/machine/rp5h01.c (renamed from src/emu/machine/rp5h01.c)0
-rw-r--r--src/devices/machine/rp5h01.h (renamed from src/emu/machine/rp5h01.h)0
-rw-r--r--src/devices/machine/rtc4543.c (renamed from src/emu/machine/rtc4543.c)0
-rw-r--r--src/devices/machine/rtc4543.h (renamed from src/emu/machine/rtc4543.h)0
-rw-r--r--src/devices/machine/rtc65271.c (renamed from src/emu/machine/rtc65271.c)0
-rw-r--r--src/devices/machine/rtc65271.h (renamed from src/emu/machine/rtc65271.h)0
-rw-r--r--src/devices/machine/rtc9701.c (renamed from src/emu/machine/rtc9701.c)0
-rw-r--r--src/devices/machine/rtc9701.h (renamed from src/emu/machine/rtc9701.h)0
-rw-r--r--src/devices/machine/s2636.c (renamed from src/emu/machine/s2636.c)0
-rw-r--r--src/devices/machine/s2636.h (renamed from src/emu/machine/s2636.h)0
-rw-r--r--src/devices/machine/s3520cf.c (renamed from src/emu/machine/s3520cf.c)0
-rw-r--r--src/devices/machine/s3520cf.h (renamed from src/emu/machine/s3520cf.h)0
-rw-r--r--src/devices/machine/s3c2400.c (renamed from src/emu/machine/s3c2400.c)0
-rw-r--r--src/devices/machine/s3c2400.h (renamed from src/emu/machine/s3c2400.h)0
-rw-r--r--src/devices/machine/s3c2410.c (renamed from src/emu/machine/s3c2410.c)0
-rw-r--r--src/devices/machine/s3c2410.h (renamed from src/emu/machine/s3c2410.h)0
-rw-r--r--src/devices/machine/s3c2440.c (renamed from src/emu/machine/s3c2440.c)0
-rw-r--r--src/devices/machine/s3c2440.h (renamed from src/emu/machine/s3c2440.h)0
-rw-r--r--src/devices/machine/s3c24xx.inc (renamed from src/emu/machine/s3c24xx.inc)0
-rw-r--r--src/devices/machine/s3c44b0.c (renamed from src/emu/machine/s3c44b0.c)0
-rw-r--r--src/devices/machine/s3c44b0.h (renamed from src/emu/machine/s3c44b0.h)0
-rw-r--r--src/devices/machine/saturn.c (renamed from src/emu/machine/saturn.c)2
-rw-r--r--src/devices/machine/serflash.c (renamed from src/emu/machine/serflash.c)0
-rw-r--r--src/devices/machine/serflash.h (renamed from src/emu/machine/serflash.h)0
-rw-r--r--src/devices/machine/smc91c9x.c (renamed from src/emu/machine/smc91c9x.c)0
-rw-r--r--src/devices/machine/smc91c9x.h (renamed from src/emu/machine/smc91c9x.h)0
-rw-r--r--src/devices/machine/smpc.c (renamed from src/emu/machine/smpc.c)12
-rw-r--r--src/devices/machine/smpc.h (renamed from src/emu/machine/smpc.h)0
-rw-r--r--src/devices/machine/spchrom.c (renamed from src/emu/machine/spchrom.c)0
-rw-r--r--src/devices/machine/spchrom.h (renamed from src/emu/machine/spchrom.h)0
-rw-r--r--src/devices/machine/steppers.c (renamed from src/emu/machine/steppers.c)0
-rw-r--r--src/devices/machine/steppers.h (renamed from src/emu/machine/steppers.h)0
-rw-r--r--src/devices/machine/strata.c (renamed from src/emu/machine/strata.c)0
-rw-r--r--src/devices/machine/strata.h (renamed from src/emu/machine/strata.h)0
-rw-r--r--src/devices/machine/stvcd.c (renamed from src/emu/machine/stvcd.c)7
-rw-r--r--src/devices/machine/t10mmc.c (renamed from src/emu/machine/t10mmc.c)0
-rw-r--r--src/devices/machine/t10mmc.h (renamed from src/emu/machine/t10mmc.h)0
-rw-r--r--src/devices/machine/t10sbc.c (renamed from src/emu/machine/t10sbc.c)0
-rw-r--r--src/devices/machine/t10sbc.h (renamed from src/emu/machine/t10sbc.h)0
-rw-r--r--src/devices/machine/t10spc.c (renamed from src/emu/machine/t10spc.c)0
-rw-r--r--src/devices/machine/t10spc.h (renamed from src/emu/machine/t10spc.h)0
-rw-r--r--src/devices/machine/tc009xlvc.c (renamed from src/emu/machine/tc009xlvc.c)0
-rw-r--r--src/devices/machine/tc009xlvc.h (renamed from src/emu/machine/tc009xlvc.h)0
-rw-r--r--src/devices/machine/terminal.c (renamed from src/emu/machine/terminal.c)0
-rw-r--r--src/devices/machine/terminal.h (renamed from src/emu/machine/terminal.h)0
-rw-r--r--src/devices/machine/timekpr.c (renamed from src/emu/machine/timekpr.c)0
-rw-r--r--src/devices/machine/timekpr.h (renamed from src/emu/machine/timekpr.h)0
-rw-r--r--src/devices/machine/tmp68301.c (renamed from src/emu/machine/tmp68301.c)11
-rw-r--r--src/devices/machine/tmp68301.h (renamed from src/emu/machine/tmp68301.h)1
-rw-r--r--src/devices/machine/tms1024.c (renamed from src/emu/machine/tms1024.c)0
-rw-r--r--src/devices/machine/tms1024.h (renamed from src/emu/machine/tms1024.h)0
-rw-r--r--src/devices/machine/tms5501.c (renamed from src/emu/machine/tms5501.c)0
-rw-r--r--src/devices/machine/tms5501.h (renamed from src/emu/machine/tms5501.h)0
-rw-r--r--src/devices/machine/tms6100.c (renamed from src/emu/machine/tms6100.c)23
-rw-r--r--src/devices/machine/tms6100.h (renamed from src/emu/machine/tms6100.h)3
-rw-r--r--src/devices/machine/tms9901.c (renamed from src/emu/machine/tms9901.c)0
-rw-r--r--src/devices/machine/tms9901.h (renamed from src/emu/machine/tms9901.h)0
-rw-r--r--src/devices/machine/tms9902.c (renamed from src/emu/machine/tms9902.c)0
-rw-r--r--src/devices/machine/tms9902.h (renamed from src/emu/machine/tms9902.h)0
-rw-r--r--src/devices/machine/upd1990a.c (renamed from src/emu/machine/upd1990a.c)0
-rw-r--r--src/devices/machine/upd1990a.h (renamed from src/emu/machine/upd1990a.h)0
-rw-r--r--src/devices/machine/upd4701.c (renamed from src/emu/machine/upd4701.c)0
-rw-r--r--src/devices/machine/upd4701.h (renamed from src/emu/machine/upd4701.h)0
-rw-r--r--src/devices/machine/upd4992.c (renamed from src/emu/machine/upd4992.c)0
-rw-r--r--src/devices/machine/upd4992.h (renamed from src/emu/machine/upd4992.h)0
-rw-r--r--src/devices/machine/upd7002.c (renamed from src/emu/machine/upd7002.c)0
-rw-r--r--src/devices/machine/upd7002.h (renamed from src/emu/machine/upd7002.h)0
-rw-r--r--src/devices/machine/upd71071.c (renamed from src/emu/machine/upd71071.c)0
-rw-r--r--src/devices/machine/upd71071.h (renamed from src/emu/machine/upd71071.h)0
-rw-r--r--src/devices/machine/upd765.c (renamed from src/emu/machine/upd765.c)6
-rw-r--r--src/devices/machine/upd765.h (renamed from src/emu/machine/upd765.h)0
-rw-r--r--src/devices/machine/v3021.c (renamed from src/emu/machine/v3021.c)0
-rw-r--r--src/devices/machine/v3021.h (renamed from src/emu/machine/v3021.h)0
-rw-r--r--src/devices/machine/vrc4373.c (renamed from src/emu/machine/vrc4373.c)0
-rw-r--r--src/devices/machine/vrc4373.h (renamed from src/emu/machine/vrc4373.h)0
-rw-r--r--src/devices/machine/vt82c496.c225
-rw-r--r--src/devices/machine/vt82c496.h60
-rw-r--r--src/devices/machine/vt83c461.c (renamed from src/emu/machine/vt83c461.c)0
-rw-r--r--src/devices/machine/vt83c461.h (renamed from src/emu/machine/vt83c461.h)0
-rw-r--r--src/devices/machine/wd11c00_17.c (renamed from src/emu/machine/wd11c00_17.c)0
-rw-r--r--src/devices/machine/wd11c00_17.h (renamed from src/emu/machine/wd11c00_17.h)0
-rw-r--r--src/devices/machine/wd2010.c (renamed from src/emu/machine/wd2010.c)0
-rw-r--r--src/devices/machine/wd2010.h (renamed from src/emu/machine/wd2010.h)0
-rw-r--r--src/devices/machine/wd33c93.c (renamed from src/emu/machine/wd33c93.c)0
-rw-r--r--src/devices/machine/wd33c93.h (renamed from src/emu/machine/wd33c93.h)0
-rw-r--r--src/devices/machine/wd7600.c (renamed from src/emu/machine/wd7600.c)0
-rw-r--r--src/devices/machine/wd7600.h (renamed from src/emu/machine/wd7600.h)0
-rw-r--r--src/devices/machine/wd_fdc.c (renamed from src/emu/machine/wd_fdc.c)4
-rw-r--r--src/devices/machine/wd_fdc.h (renamed from src/emu/machine/wd_fdc.h)2
-rw-r--r--src/devices/machine/wozfdc.c (renamed from src/emu/machine/wozfdc.c)0
-rw-r--r--src/devices/machine/wozfdc.h (renamed from src/emu/machine/wozfdc.h)0
-rw-r--r--src/devices/machine/x2212.c (renamed from src/emu/machine/x2212.c)0
-rw-r--r--src/devices/machine/x2212.h (renamed from src/emu/machine/x2212.h)0
-rw-r--r--src/devices/machine/x76f041.c (renamed from src/emu/machine/x76f041.c)0
-rw-r--r--src/devices/machine/x76f041.h (renamed from src/emu/machine/x76f041.h)0
-rw-r--r--src/devices/machine/x76f100.c (renamed from src/emu/machine/x76f100.c)0
-rw-r--r--src/devices/machine/x76f100.h (renamed from src/emu/machine/x76f100.h)0
-rw-r--r--src/devices/machine/ym2148.c (renamed from src/emu/machine/ym2148.c)0
-rw-r--r--src/devices/machine/ym2148.h (renamed from src/emu/machine/ym2148.h)0
-rw-r--r--src/devices/machine/z80ctc.c (renamed from src/emu/machine/z80ctc.c)2
-rw-r--r--src/devices/machine/z80ctc.h (renamed from src/emu/machine/z80ctc.h)0
-rw-r--r--src/devices/machine/z80dart.c (renamed from src/emu/machine/z80dart.c)0
-rw-r--r--src/devices/machine/z80dart.h (renamed from src/emu/machine/z80dart.h)0
-rw-r--r--src/devices/machine/z80dma.c (renamed from src/emu/machine/z80dma.c)0
-rw-r--r--src/devices/machine/z80dma.h (renamed from src/emu/machine/z80dma.h)0
-rw-r--r--src/devices/machine/z80pio.c (renamed from src/emu/machine/z80pio.c)0
-rw-r--r--src/devices/machine/z80pio.h (renamed from src/emu/machine/z80pio.h)0
-rw-r--r--src/devices/machine/z80scc.c2241
-rw-r--r--src/devices/machine/z80scc.h728
-rw-r--r--src/devices/machine/z80sio.c1429
-rw-r--r--src/devices/machine/z80sio.h533
-rw-r--r--src/devices/machine/z80sti.c (renamed from src/emu/machine/z80sti.c)0
-rw-r--r--src/devices/machine/z80sti.h (renamed from src/emu/machine/z80sti.h)0
-rw-r--r--src/devices/machine/z8536.c (renamed from src/emu/machine/z8536.c)0
-rw-r--r--src/devices/machine/z8536.h (renamed from src/emu/machine/z8536.h)0
-rw-r--r--src/devices/sound/2151intf.c (renamed from src/emu/sound/2151intf.c)0
-rw-r--r--src/devices/sound/2151intf.h (renamed from src/emu/sound/2151intf.h)0
-rw-r--r--src/devices/sound/2203intf.c (renamed from src/emu/sound/2203intf.c)0
-rw-r--r--src/devices/sound/2203intf.h (renamed from src/emu/sound/2203intf.h)0
-rw-r--r--src/devices/sound/2413intf.c (renamed from src/emu/sound/2413intf.c)0
-rw-r--r--src/devices/sound/2413intf.h (renamed from src/emu/sound/2413intf.h)0
-rw-r--r--src/devices/sound/2608intf.c (renamed from src/emu/sound/2608intf.c)0
-rw-r--r--src/devices/sound/2608intf.h (renamed from src/emu/sound/2608intf.h)0
-rw-r--r--src/devices/sound/2610intf.c (renamed from src/emu/sound/2610intf.c)0
-rw-r--r--src/devices/sound/2610intf.h (renamed from src/emu/sound/2610intf.h)0
-rw-r--r--src/devices/sound/2612intf.c (renamed from src/emu/sound/2612intf.c)0
-rw-r--r--src/devices/sound/2612intf.h (renamed from src/emu/sound/2612intf.h)0
-rw-r--r--src/devices/sound/262intf.c (renamed from src/emu/sound/262intf.c)0
-rw-r--r--src/devices/sound/262intf.h (renamed from src/emu/sound/262intf.h)0
-rw-r--r--src/devices/sound/315-5641.c70
-rw-r--r--src/devices/sound/315-5641.h30
-rw-r--r--src/devices/sound/3526intf.c (renamed from src/emu/sound/3526intf.c)0
-rw-r--r--src/devices/sound/3526intf.h (renamed from src/emu/sound/3526intf.h)0
-rw-r--r--src/devices/sound/3812intf.c (renamed from src/emu/sound/3812intf.c)0
-rw-r--r--src/devices/sound/3812intf.h (renamed from src/emu/sound/3812intf.h)0
-rw-r--r--src/devices/sound/8950intf.c (renamed from src/emu/sound/8950intf.c)0
-rw-r--r--src/devices/sound/8950intf.h (renamed from src/emu/sound/8950intf.h)0
-rw-r--r--src/devices/sound/aica.c (renamed from src/emu/sound/aica.c)0
-rw-r--r--src/devices/sound/aica.h (renamed from src/emu/sound/aica.h)0
-rw-r--r--src/devices/sound/aicadsp.c (renamed from src/emu/sound/aicadsp.c)0
-rw-r--r--src/devices/sound/aicadsp.h (renamed from src/emu/sound/aicadsp.h)0
-rw-r--r--src/devices/sound/amiga.c (renamed from src/emu/sound/amiga.c)0
-rw-r--r--src/devices/sound/amiga.h (renamed from src/emu/sound/amiga.h)0
-rw-r--r--src/devices/sound/asc.c (renamed from src/emu/sound/asc.c)0
-rw-r--r--src/devices/sound/asc.h (renamed from src/emu/sound/asc.h)0
-rw-r--r--src/devices/sound/astrocde.c (renamed from src/emu/sound/astrocde.c)0
-rw-r--r--src/devices/sound/astrocde.h (renamed from src/emu/sound/astrocde.h)0
-rw-r--r--src/devices/sound/awacs.c (renamed from src/emu/sound/awacs.c)0
-rw-r--r--src/devices/sound/awacs.h (renamed from src/emu/sound/awacs.h)0
-rw-r--r--src/devices/sound/ay8910.c (renamed from src/emu/sound/ay8910.c)0
-rw-r--r--src/devices/sound/ay8910.h (renamed from src/emu/sound/ay8910.h)0
-rw-r--r--src/devices/sound/beep.c (renamed from src/emu/sound/beep.c)0
-rw-r--r--src/devices/sound/beep.h (renamed from src/emu/sound/beep.h)0
-rw-r--r--src/devices/sound/bsmt2000.c (renamed from src/emu/sound/bsmt2000.c)0
-rw-r--r--src/devices/sound/bsmt2000.h (renamed from src/emu/sound/bsmt2000.h)0
-rw-r--r--src/devices/sound/c140.c (renamed from src/emu/sound/c140.c)20
-rw-r--r--src/devices/sound/c140.h (renamed from src/emu/sound/c140.h)30
-rw-r--r--src/devices/sound/c352.c (renamed from src/emu/sound/c352.c)26
-rw-r--r--src/devices/sound/c352.h (renamed from src/emu/sound/c352.h)11
-rw-r--r--src/devices/sound/c6280.c (renamed from src/emu/sound/c6280.c)0
-rw-r--r--src/devices/sound/c6280.h (renamed from src/emu/sound/c6280.h)0
-rw-r--r--src/devices/sound/cdda.c (renamed from src/emu/sound/cdda.c)0
-rw-r--r--src/devices/sound/cdda.h (renamed from src/emu/sound/cdda.h)0
-rw-r--r--src/devices/sound/cdp1863.c (renamed from src/emu/sound/cdp1863.c)0
-rw-r--r--src/devices/sound/cdp1863.h (renamed from src/emu/sound/cdp1863.h)0
-rw-r--r--src/devices/sound/cdp1864.c (renamed from src/emu/sound/cdp1864.c)0
-rw-r--r--src/devices/sound/cdp1864.h (renamed from src/emu/sound/cdp1864.h)0
-rw-r--r--src/devices/sound/cdp1869.c (renamed from src/emu/sound/cdp1869.c)0
-rw-r--r--src/devices/sound/cdp1869.h (renamed from src/emu/sound/cdp1869.h)0
-rw-r--r--src/devices/sound/cem3394.c (renamed from src/emu/sound/cem3394.c)0
-rw-r--r--src/devices/sound/cem3394.h (renamed from src/emu/sound/cem3394.h)0
-rw-r--r--src/devices/sound/dac.c (renamed from src/emu/sound/dac.c)0
-rw-r--r--src/devices/sound/dac.h (renamed from src/emu/sound/dac.h)0
-rw-r--r--src/devices/sound/digitalk.c (renamed from src/emu/sound/digitalk.c)6
-rw-r--r--src/devices/sound/digitalk.h (renamed from src/emu/sound/digitalk.h)0
-rw-r--r--src/devices/sound/disc_cls.h (renamed from src/emu/sound/disc_cls.h)0
-rw-r--r--src/devices/sound/disc_dev.h (renamed from src/emu/sound/disc_dev.h)0
-rw-r--r--src/devices/sound/disc_dev.inc (renamed from src/emu/sound/disc_dev.inc)0
-rw-r--r--src/devices/sound/disc_flt.h (renamed from src/emu/sound/disc_flt.h)0
-rw-r--r--src/devices/sound/disc_flt.inc (renamed from src/emu/sound/disc_flt.inc)0
-rw-r--r--src/devices/sound/disc_inp.inc (renamed from src/emu/sound/disc_inp.inc)0
-rw-r--r--src/devices/sound/disc_mth.h (renamed from src/emu/sound/disc_mth.h)0
-rw-r--r--src/devices/sound/disc_mth.inc (renamed from src/emu/sound/disc_mth.inc)0
-rw-r--r--src/devices/sound/disc_sys.inc (renamed from src/emu/sound/disc_sys.inc)0
-rw-r--r--src/devices/sound/disc_wav.h (renamed from src/emu/sound/disc_wav.h)0
-rw-r--r--src/devices/sound/disc_wav.inc (renamed from src/emu/sound/disc_wav.inc)0
-rw-r--r--src/devices/sound/discrete.c (renamed from src/emu/sound/discrete.c)16
-rw-r--r--src/devices/sound/discrete.h (renamed from src/emu/sound/discrete.h)2
-rw-r--r--src/devices/sound/dmadac.c (renamed from src/emu/sound/dmadac.c)0
-rw-r--r--src/devices/sound/dmadac.h (renamed from src/emu/sound/dmadac.h)0
-rw-r--r--src/devices/sound/es1373.c (renamed from src/emu/sound/es1373.c)0
-rw-r--r--src/devices/sound/es1373.h (renamed from src/emu/sound/es1373.h)0
-rw-r--r--src/devices/sound/es5503.c (renamed from src/emu/sound/es5503.c)0
-rw-r--r--src/devices/sound/es5503.h (renamed from src/emu/sound/es5503.h)0
-rw-r--r--src/devices/sound/es5506.c (renamed from src/emu/sound/es5506.c)2
-rw-r--r--src/devices/sound/es5506.h (renamed from src/emu/sound/es5506.h)0
-rw-r--r--src/devices/sound/es8712.c (renamed from src/emu/sound/es8712.c)0
-rw-r--r--src/devices/sound/es8712.h (renamed from src/emu/sound/es8712.h)0
-rw-r--r--src/devices/sound/esqpump.c (renamed from src/emu/sound/esqpump.c)0
-rw-r--r--src/devices/sound/esqpump.h (renamed from src/emu/sound/esqpump.h)0
-rw-r--r--src/devices/sound/flt_rc.c (renamed from src/emu/sound/flt_rc.c)0
-rw-r--r--src/devices/sound/flt_rc.h (renamed from src/emu/sound/flt_rc.h)0
-rw-r--r--src/devices/sound/flt_vol.c (renamed from src/emu/sound/flt_vol.c)0
-rw-r--r--src/devices/sound/flt_vol.h (renamed from src/emu/sound/flt_vol.h)0
-rw-r--r--src/devices/sound/fm.c (renamed from src/emu/sound/fm.c)0
-rw-r--r--src/devices/sound/fm.h (renamed from src/emu/sound/fm.h)0
-rw-r--r--src/devices/sound/fm2612.c (renamed from src/emu/sound/fm2612.c)0
-rw-r--r--src/devices/sound/fmopl.c (renamed from src/emu/sound/fmopl.c)0
-rw-r--r--src/devices/sound/fmopl.h (renamed from src/emu/sound/fmopl.h)0
-rw-r--r--src/devices/sound/gaelco.c (renamed from src/emu/sound/gaelco.c)2
-rw-r--r--src/devices/sound/gaelco.h (renamed from src/emu/sound/gaelco.h)0
-rw-r--r--src/devices/sound/hc55516.c (renamed from src/emu/sound/hc55516.c)0
-rw-r--r--src/devices/sound/hc55516.h (renamed from src/emu/sound/hc55516.h)0
-rw-r--r--src/devices/sound/i5000.c (renamed from src/emu/sound/i5000.c)0
-rw-r--r--src/devices/sound/i5000.h (renamed from src/emu/sound/i5000.h)0
-rw-r--r--src/devices/sound/ics2115.c (renamed from src/emu/sound/ics2115.c)0
-rw-r--r--src/devices/sound/ics2115.h (renamed from src/emu/sound/ics2115.h)0
-rw-r--r--src/devices/sound/iremga20.c (renamed from src/emu/sound/iremga20.c)0
-rw-r--r--src/devices/sound/iremga20.h (renamed from src/emu/sound/iremga20.h)0
-rw-r--r--src/devices/sound/k005289.c (renamed from src/emu/sound/k005289.c)0
-rw-r--r--src/devices/sound/k005289.h (renamed from src/emu/sound/k005289.h)0
-rw-r--r--src/devices/sound/k007232.c (renamed from src/emu/sound/k007232.c)0
-rw-r--r--src/devices/sound/k007232.h (renamed from src/emu/sound/k007232.h)0
-rw-r--r--src/devices/sound/k051649.c (renamed from src/emu/sound/k051649.c)0
-rw-r--r--src/devices/sound/k051649.h (renamed from src/emu/sound/k051649.h)0
-rw-r--r--src/devices/sound/k053260.c (renamed from src/emu/sound/k053260.c)0
-rw-r--r--src/devices/sound/k053260.h (renamed from src/emu/sound/k053260.h)0
-rw-r--r--src/devices/sound/k054539.c (renamed from src/emu/sound/k054539.c)0
-rw-r--r--src/devices/sound/k054539.h (renamed from src/emu/sound/k054539.h)0
-rw-r--r--src/devices/sound/k056800.c (renamed from src/emu/sound/k056800.c)0
-rw-r--r--src/devices/sound/k056800.h (renamed from src/emu/sound/k056800.h)0
-rw-r--r--src/devices/sound/l7a1045_l6028_dsp_a.c (renamed from src/emu/sound/l7a1045_l6028_dsp_a.c)2
-rw-r--r--src/devices/sound/l7a1045_l6028_dsp_a.h (renamed from src/emu/sound/l7a1045_l6028_dsp_a.h)2
-rw-r--r--src/devices/sound/lmc1992.c (renamed from src/emu/sound/lmc1992.c)0
-rw-r--r--src/devices/sound/lmc1992.h (renamed from src/emu/sound/lmc1992.h)0
-rw-r--r--src/devices/sound/mas3507d.c (renamed from src/emu/sound/mas3507d.c)0
-rw-r--r--src/devices/sound/mas3507d.h (renamed from src/emu/sound/mas3507d.h)0
-rw-r--r--src/devices/sound/mos6560.c (renamed from src/emu/sound/mos6560.c)0
-rw-r--r--src/devices/sound/mos6560.h (renamed from src/emu/sound/mos6560.h)0
-rw-r--r--src/devices/sound/mos6581.c (renamed from src/emu/sound/mos6581.c)0
-rw-r--r--src/devices/sound/mos6581.h (renamed from src/emu/sound/mos6581.h)0
-rw-r--r--src/devices/sound/mos7360.c (renamed from src/emu/sound/mos7360.c)0
-rw-r--r--src/devices/sound/mos7360.h (renamed from src/emu/sound/mos7360.h)0
-rw-r--r--src/devices/sound/mpeg_audio.c (renamed from src/emu/sound/mpeg_audio.c)0
-rw-r--r--src/devices/sound/mpeg_audio.h (renamed from src/emu/sound/mpeg_audio.h)0
-rw-r--r--src/devices/sound/msm5205.c (renamed from src/emu/sound/msm5205.c)0
-rw-r--r--src/devices/sound/msm5205.h (renamed from src/emu/sound/msm5205.h)0
-rw-r--r--src/devices/sound/msm5232.c (renamed from src/emu/sound/msm5232.c)0
-rw-r--r--src/devices/sound/msm5232.h (renamed from src/emu/sound/msm5232.h)0
-rw-r--r--src/devices/sound/multipcm.c (renamed from src/emu/sound/multipcm.c)0
-rw-r--r--src/devices/sound/multipcm.h (renamed from src/emu/sound/multipcm.h)0
-rw-r--r--src/devices/sound/n63701x.c (renamed from src/emu/sound/n63701x.c)0
-rw-r--r--src/devices/sound/n63701x.h (renamed from src/emu/sound/n63701x.h)0
-rw-r--r--src/devices/sound/namco.c (renamed from src/emu/sound/namco.c)0
-rw-r--r--src/devices/sound/namco.h (renamed from src/emu/sound/namco.h)0
-rw-r--r--src/devices/sound/nes_apu.c (renamed from src/emu/sound/nes_apu.c)4
-rw-r--r--src/devices/sound/nes_apu.h (renamed from src/emu/sound/nes_apu.h)0
-rw-r--r--src/devices/sound/nes_defs.h (renamed from src/emu/sound/nes_defs.h)0
-rw-r--r--src/devices/sound/nile.c (renamed from src/emu/sound/nile.c)0
-rw-r--r--src/devices/sound/nile.h (renamed from src/emu/sound/nile.h)0
-rw-r--r--src/devices/sound/okiadpcm.c (renamed from src/emu/sound/okiadpcm.c)0
-rw-r--r--src/devices/sound/okiadpcm.h (renamed from src/emu/sound/okiadpcm.h)0
-rw-r--r--src/devices/sound/okim6258.c (renamed from src/emu/sound/okim6258.c)0
-rw-r--r--src/devices/sound/okim6258.h (renamed from src/emu/sound/okim6258.h)0
-rw-r--r--src/devices/sound/okim6295.c (renamed from src/emu/sound/okim6295.c)0
-rw-r--r--src/devices/sound/okim6295.h (renamed from src/emu/sound/okim6295.h)0
-rw-r--r--src/devices/sound/okim6376.c (renamed from src/emu/sound/okim6376.c)0
-rw-r--r--src/devices/sound/okim6376.h (renamed from src/emu/sound/okim6376.h)0
-rw-r--r--src/devices/sound/okim9810.c (renamed from src/emu/sound/okim9810.c)0
-rw-r--r--src/devices/sound/okim9810.h (renamed from src/emu/sound/okim9810.h)0
-rw-r--r--src/devices/sound/pci-ac97.c (renamed from src/emu/sound/pci-ac97.c)0
-rw-r--r--src/devices/sound/pci-ac97.h (renamed from src/emu/sound/pci-ac97.h)0
-rw-r--r--src/devices/sound/pokey.c (renamed from src/emu/sound/pokey.c)0
-rw-r--r--src/devices/sound/pokey.h (renamed from src/emu/sound/pokey.h)0
-rw-r--r--src/devices/sound/pokey.txt (renamed from src/emu/sound/pokey.txt)0
-rw-r--r--src/devices/sound/qs1000.c (renamed from src/emu/sound/qs1000.c)0
-rw-r--r--src/devices/sound/qs1000.h (renamed from src/emu/sound/qs1000.h)0
-rw-r--r--src/devices/sound/qsound.c (renamed from src/emu/sound/qsound.c)0
-rw-r--r--src/devices/sound/qsound.h (renamed from src/emu/sound/qsound.h)0
-rw-r--r--src/devices/sound/rf5c400.c (renamed from src/emu/sound/rf5c400.c)12
-rw-r--r--src/devices/sound/rf5c400.h (renamed from src/emu/sound/rf5c400.h)0
-rw-r--r--src/devices/sound/rf5c68.c (renamed from src/emu/sound/rf5c68.c)0
-rw-r--r--src/devices/sound/rf5c68.h (renamed from src/emu/sound/rf5c68.h)0
-rw-r--r--src/devices/sound/s14001a.c (renamed from src/emu/sound/s14001a.c)0
-rw-r--r--src/devices/sound/s14001a.h (renamed from src/emu/sound/s14001a.h)0
-rw-r--r--src/devices/sound/saa1099.c (renamed from src/emu/sound/saa1099.c)0
-rw-r--r--src/devices/sound/saa1099.h (renamed from src/emu/sound/saa1099.h)0
-rw-r--r--src/devices/sound/samples.c (renamed from src/emu/sound/samples.c)12
-rw-r--r--src/devices/sound/samples.h (renamed from src/emu/sound/samples.h)3
-rw-r--r--src/devices/sound/sb0400.c (renamed from src/emu/sound/sb0400.c)0
-rw-r--r--src/devices/sound/sb0400.h (renamed from src/emu/sound/sb0400.h)0
-rw-r--r--src/devices/sound/scsp.c (renamed from src/emu/sound/scsp.c)19
-rw-r--r--src/devices/sound/scsp.h (renamed from src/emu/sound/scsp.h)0
-rw-r--r--src/devices/sound/scspdsp.c (renamed from src/emu/sound/scspdsp.c)0
-rw-r--r--src/devices/sound/scspdsp.h (renamed from src/emu/sound/scspdsp.h)0
-rw-r--r--src/devices/sound/segapcm.c (renamed from src/emu/sound/segapcm.c)0
-rw-r--r--src/devices/sound/segapcm.h (renamed from src/emu/sound/segapcm.h)0
-rw-r--r--src/devices/sound/sid.c (renamed from src/emu/sound/sid.c)0
-rw-r--r--src/devices/sound/sid.h (renamed from src/emu/sound/sid.h)0
-rw-r--r--src/devices/sound/side6581.h (renamed from src/emu/sound/side6581.h)0
-rw-r--r--src/devices/sound/sidenvel.c (renamed from src/emu/sound/sidenvel.c)0
-rw-r--r--src/devices/sound/sidenvel.h (renamed from src/emu/sound/sidenvel.h)0
-rw-r--r--src/devices/sound/sidvoice.c (renamed from src/emu/sound/sidvoice.c)0
-rw-r--r--src/devices/sound/sidvoice.h (renamed from src/emu/sound/sidvoice.h)0
-rw-r--r--src/devices/sound/sidw6581.h (renamed from src/emu/sound/sidw6581.h)0
-rw-r--r--src/devices/sound/sidw8580.h (renamed from src/emu/sound/sidw8580.h)0
-rw-r--r--src/devices/sound/sn76477.c (renamed from src/emu/sound/sn76477.c)2
-rw-r--r--src/devices/sound/sn76477.h (renamed from src/emu/sound/sn76477.h)0
-rw-r--r--src/devices/sound/sn76496.c (renamed from src/emu/sound/sn76496.c)17
-rw-r--r--src/devices/sound/sn76496.h (renamed from src/emu/sound/sn76496.h)4
-rw-r--r--src/devices/sound/snkwave.c (renamed from src/emu/sound/snkwave.c)0
-rw-r--r--src/devices/sound/snkwave.h (renamed from src/emu/sound/snkwave.h)0
-rw-r--r--src/devices/sound/sp0250.c (renamed from src/emu/sound/sp0250.c)0
-rw-r--r--src/devices/sound/sp0250.h (renamed from src/emu/sound/sp0250.h)0
-rw-r--r--src/devices/sound/sp0256.c (renamed from src/emu/sound/sp0256.c)0
-rw-r--r--src/devices/sound/sp0256.h (renamed from src/emu/sound/sp0256.h)0
-rw-r--r--src/devices/sound/speaker.c (renamed from src/emu/sound/speaker.c)0
-rw-r--r--src/devices/sound/speaker.h (renamed from src/emu/sound/speaker.h)0
-rw-r--r--src/devices/sound/spu.c (renamed from src/emu/sound/spu.c)0
-rw-r--r--src/devices/sound/spu.h (renamed from src/emu/sound/spu.h)0
-rw-r--r--src/devices/sound/spu_tables.c (renamed from src/emu/sound/spu_tables.c)0
-rw-r--r--src/devices/sound/spureverb.c (renamed from src/emu/sound/spureverb.c)0
-rw-r--r--src/devices/sound/spureverb.h (renamed from src/emu/sound/spureverb.h)0
-rw-r--r--src/devices/sound/st0016.c (renamed from src/emu/sound/st0016.c)0
-rw-r--r--src/devices/sound/st0016.h (renamed from src/emu/sound/st0016.h)0
-rw-r--r--src/devices/sound/t6721a.c (renamed from src/emu/sound/t6721a.c)0
-rw-r--r--src/devices/sound/t6721a.h (renamed from src/emu/sound/t6721a.h)0
-rw-r--r--src/devices/sound/t6w28.c (renamed from src/emu/sound/t6w28.c)0
-rw-r--r--src/devices/sound/t6w28.h (renamed from src/emu/sound/t6w28.h)0
-rw-r--r--src/devices/sound/tc8830f.c (renamed from src/emu/sound/tc8830f.c)0
-rw-r--r--src/devices/sound/tc8830f.h (renamed from src/emu/sound/tc8830f.h)0
-rw-r--r--src/devices/sound/tiaintf.c (renamed from src/emu/sound/tiaintf.c)0
-rw-r--r--src/devices/sound/tiaintf.h (renamed from src/emu/sound/tiaintf.h)0
-rw-r--r--src/devices/sound/tiasound.c (renamed from src/emu/sound/tiasound.c)0
-rw-r--r--src/devices/sound/tiasound.h (renamed from src/emu/sound/tiasound.h)0
-rw-r--r--src/devices/sound/tms3615.c (renamed from src/emu/sound/tms3615.c)0
-rw-r--r--src/devices/sound/tms3615.h (renamed from src/emu/sound/tms3615.h)0
-rw-r--r--src/devices/sound/tms36xx.c (renamed from src/emu/sound/tms36xx.c)2
-rw-r--r--src/devices/sound/tms36xx.h (renamed from src/emu/sound/tms36xx.h)0
-rw-r--r--src/devices/sound/tms5110.c (renamed from src/emu/sound/tms5110.c)1107
-rw-r--r--src/devices/sound/tms5110.h (renamed from src/emu/sound/tms5110.h)106
-rw-r--r--src/devices/sound/tms5110r.inc (renamed from src/emu/sound/tms5110r.inc)92
-rw-r--r--src/devices/sound/tms5220.c (renamed from src/emu/sound/tms5220.c)729
-rw-r--r--src/devices/sound/tms5220.h (renamed from src/emu/sound/tms5220.h)44
-rw-r--r--src/devices/sound/tms5220.txt (renamed from src/emu/sound/tms5220.txt)0
-rw-r--r--src/devices/sound/upd7752.c (renamed from src/emu/sound/upd7752.c)0
-rw-r--r--src/devices/sound/upd7752.h (renamed from src/emu/sound/upd7752.h)0
-rw-r--r--src/devices/sound/upd7759.c (renamed from src/emu/sound/upd7759.c)25
-rw-r--r--src/devices/sound/upd7759.h (renamed from src/emu/sound/upd7759.h)22
-rw-r--r--src/devices/sound/vlm5030.c (renamed from src/emu/sound/vlm5030.c)0
-rw-r--r--src/devices/sound/vlm5030.h (renamed from src/emu/sound/vlm5030.h)0
-rw-r--r--src/devices/sound/votrax.c (renamed from src/emu/sound/votrax.c)0
-rw-r--r--src/devices/sound/votrax.h (renamed from src/emu/sound/votrax.h)0
-rw-r--r--src/devices/sound/vrc6.c (renamed from src/emu/sound/vrc6.c)0
-rw-r--r--src/devices/sound/vrc6.h (renamed from src/emu/sound/vrc6.h)0
-rw-r--r--src/devices/sound/vrender0.c (renamed from src/emu/sound/vrender0.c)0
-rw-r--r--src/devices/sound/vrender0.h (renamed from src/emu/sound/vrender0.h)0
-rw-r--r--src/devices/sound/wave.c (renamed from src/emu/sound/wave.c)16
-rw-r--r--src/devices/sound/wave.h (renamed from src/emu/sound/wave.h)3
-rw-r--r--src/devices/sound/x1_010.c (renamed from src/emu/sound/x1_010.c)2
-rw-r--r--src/devices/sound/x1_010.h (renamed from src/emu/sound/x1_010.h)0
-rw-r--r--src/devices/sound/ym2151.c (renamed from src/emu/sound/ym2151.c)0
-rw-r--r--src/devices/sound/ym2151.h (renamed from src/emu/sound/ym2151.h)0
-rw-r--r--src/devices/sound/ym2151.txt (renamed from src/emu/sound/ym2151.txt)0
-rw-r--r--src/devices/sound/ym2413.c (renamed from src/emu/sound/ym2413.c)0
-rw-r--r--src/devices/sound/ym2413.h (renamed from src/emu/sound/ym2413.h)0
-rw-r--r--src/devices/sound/ymdeltat.c (renamed from src/emu/sound/ymdeltat.c)0
-rw-r--r--src/devices/sound/ymdeltat.h (renamed from src/emu/sound/ymdeltat.h)0
-rw-r--r--src/devices/sound/ymf262.c (renamed from src/emu/sound/ymf262.c)0
-rw-r--r--src/devices/sound/ymf262.h (renamed from src/emu/sound/ymf262.h)0
-rw-r--r--src/devices/sound/ymf271.c (renamed from src/emu/sound/ymf271.c)0
-rw-r--r--src/devices/sound/ymf271.h (renamed from src/emu/sound/ymf271.h)0
-rw-r--r--src/devices/sound/ymf278b.c (renamed from src/emu/sound/ymf278b.c)57
-rw-r--r--src/devices/sound/ymf278b.h (renamed from src/emu/sound/ymf278b.h)7
-rw-r--r--src/devices/sound/ymz280b.c (renamed from src/emu/sound/ymz280b.c)2
-rw-r--r--src/devices/sound/ymz280b.h (renamed from src/emu/sound/ymz280b.h)0
-rw-r--r--src/devices/sound/ymz770.c (renamed from src/emu/sound/ymz770.c)0
-rw-r--r--src/devices/sound/ymz770.h (renamed from src/emu/sound/ymz770.h)0
-rw-r--r--src/devices/sound/zsg2.c (renamed from src/emu/sound/zsg2.c)0
-rw-r--r--src/devices/sound/zsg2.h (renamed from src/emu/sound/zsg2.h)0
-rw-r--r--src/devices/video/315_5124.c (renamed from src/emu/video/315_5124.c)26
-rw-r--r--src/devices/video/315_5124.h (renamed from src/emu/video/315_5124.h)2
-rw-r--r--src/devices/video/315_5313.c (renamed from src/emu/video/315_5313.c)6
-rw-r--r--src/devices/video/315_5313.h (renamed from src/emu/video/315_5313.h)0
-rw-r--r--src/devices/video/bufsprite.c (renamed from src/emu/video/bufsprite.c)0
-rw-r--r--src/devices/video/bufsprite.h (renamed from src/emu/video/bufsprite.h)0
-rw-r--r--src/devices/video/cdp1861.c (renamed from src/emu/video/cdp1861.c)0
-rw-r--r--src/devices/video/cdp1861.h (renamed from src/emu/video/cdp1861.h)0
-rw-r--r--src/devices/video/cdp1862.c (renamed from src/emu/video/cdp1862.c)0
-rw-r--r--src/devices/video/cdp1862.h (renamed from src/emu/video/cdp1862.h)0
-rw-r--r--src/devices/video/cgapal.c (renamed from src/emu/video/cgapal.c)0
-rw-r--r--src/devices/video/cgapal.h (renamed from src/emu/video/cgapal.h)0
-rw-r--r--src/devices/video/clgd542x.c (renamed from src/emu/video/clgd542x.c)0
-rw-r--r--src/devices/video/clgd542x.h (renamed from src/emu/video/clgd542x.h)0
-rw-r--r--src/devices/video/crt9007.c (renamed from src/emu/video/crt9007.c)0
-rw-r--r--src/devices/video/crt9007.h (renamed from src/emu/video/crt9007.h)0
-rw-r--r--src/devices/video/crt9021.c (renamed from src/emu/video/crt9021.c)0
-rw-r--r--src/devices/video/crt9021.h (renamed from src/emu/video/crt9021.h)0
-rw-r--r--src/devices/video/crt9212.c (renamed from src/emu/video/crt9212.c)0
-rw-r--r--src/devices/video/crt9212.h (renamed from src/emu/video/crt9212.h)0
-rw-r--r--src/devices/video/crtc_ega.c (renamed from src/emu/video/crtc_ega.c)0
-rw-r--r--src/devices/video/crtc_ega.h (renamed from src/emu/video/crtc_ega.h)0
-rw-r--r--src/devices/video/dl1416.c (renamed from src/emu/video/dl1416.c)0
-rw-r--r--src/devices/video/dl1416.h (renamed from src/emu/video/dl1416.h)0
-rw-r--r--src/devices/video/dm9368.c (renamed from src/emu/video/dm9368.c)0
-rw-r--r--src/devices/video/dm9368.h (renamed from src/emu/video/dm9368.h)0
-rw-r--r--src/devices/video/ef9340_1.c (renamed from src/emu/video/ef9340_1.c)0
-rw-r--r--src/devices/video/ef9340_1.h (renamed from src/emu/video/ef9340_1.h)0
-rw-r--r--src/devices/video/ef9341_chargen.h (renamed from src/emu/video/ef9341_chargen.h)0
-rw-r--r--src/devices/video/ef9345.c (renamed from src/emu/video/ef9345.c)2
-rw-r--r--src/devices/video/ef9345.h (renamed from src/emu/video/ef9345.h)0
-rw-r--r--src/devices/video/epic12.c (renamed from src/emu/video/epic12.c)0
-rw-r--r--src/devices/video/epic12.h (renamed from src/emu/video/epic12.h)0
-rw-r--r--src/devices/video/epic12_blit0.c (renamed from src/emu/video/epic12_blit0.c)0
-rw-r--r--src/devices/video/epic12_blit1.c (renamed from src/emu/video/epic12_blit1.c)0
-rw-r--r--src/devices/video/epic12_blit2.c (renamed from src/emu/video/epic12_blit2.c)0
-rw-r--r--src/devices/video/epic12_blit3.c (renamed from src/emu/video/epic12_blit3.c)0
-rw-r--r--src/devices/video/epic12_blit4.c (renamed from src/emu/video/epic12_blit4.c)0
-rw-r--r--src/devices/video/epic12_blit5.c (renamed from src/emu/video/epic12_blit5.c)0
-rw-r--r--src/devices/video/epic12_blit6.c (renamed from src/emu/video/epic12_blit6.c)0
-rw-r--r--src/devices/video/epic12_blit7.c (renamed from src/emu/video/epic12_blit7.c)0
-rw-r--r--src/devices/video/epic12_blit8.c (renamed from src/emu/video/epic12_blit8.c)0
-rw-r--r--src/devices/video/epic12in.inc (renamed from src/emu/video/epic12in.inc)0
-rw-r--r--src/devices/video/epic12pixel.inc (renamed from src/emu/video/epic12pixel.inc)0
-rw-r--r--src/devices/video/fixfreq.c (renamed from src/emu/video/fixfreq.c)0
-rw-r--r--src/devices/video/fixfreq.h (renamed from src/emu/video/fixfreq.h)0
-rw-r--r--src/devices/video/gf4500.c (renamed from src/emu/video/gf4500.c)0
-rw-r--r--src/devices/video/gf4500.h (renamed from src/emu/video/gf4500.h)0
-rw-r--r--src/devices/video/gf7600gs.c (renamed from src/emu/video/gf7600gs.c)0
-rw-r--r--src/devices/video/gf7600gs.h (renamed from src/emu/video/gf7600gs.h)0
-rw-r--r--src/devices/video/h63484.c (renamed from src/emu/video/h63484.c)2
-rw-r--r--src/devices/video/h63484.h (renamed from src/emu/video/h63484.h)0
-rw-r--r--src/devices/video/hd44102.c (renamed from src/emu/video/hd44102.c)0
-rw-r--r--src/devices/video/hd44102.h (renamed from src/emu/video/hd44102.h)0
-rw-r--r--src/devices/video/hd44352.c (renamed from src/emu/video/hd44352.c)0
-rw-r--r--src/devices/video/hd44352.h (renamed from src/emu/video/hd44352.h)0
-rw-r--r--src/devices/video/hd44780.c (renamed from src/emu/video/hd44780.c)0
-rw-r--r--src/devices/video/hd44780.h (renamed from src/emu/video/hd44780.h)16
-rw-r--r--src/devices/video/hd61830.c (renamed from src/emu/video/hd61830.c)0
-rw-r--r--src/devices/video/hd61830.h (renamed from src/emu/video/hd61830.h)0
-rw-r--r--src/devices/video/hd63484.c (renamed from src/emu/video/hd63484.c)0
-rw-r--r--src/devices/video/hd63484.h (renamed from src/emu/video/hd63484.h)0
-rw-r--r--src/devices/video/hd66421.c (renamed from src/emu/video/hd66421.c)0
-rw-r--r--src/devices/video/hd66421.h (renamed from src/emu/video/hd66421.h)0
-rw-r--r--src/devices/video/huc6202.c (renamed from src/emu/video/huc6202.c)0
-rw-r--r--src/devices/video/huc6202.h (renamed from src/emu/video/huc6202.h)0
-rw-r--r--src/devices/video/huc6260.c (renamed from src/emu/video/huc6260.c)0
-rw-r--r--src/devices/video/huc6260.h (renamed from src/emu/video/huc6260.h)0
-rw-r--r--src/devices/video/huc6261.c (renamed from src/emu/video/huc6261.c)0
-rw-r--r--src/devices/video/huc6261.h (renamed from src/emu/video/huc6261.h)0
-rw-r--r--src/devices/video/huc6270.c (renamed from src/emu/video/huc6270.c)0
-rw-r--r--src/devices/video/huc6270.h (renamed from src/emu/video/huc6270.h)0
-rw-r--r--src/devices/video/huc6272.c (renamed from src/emu/video/huc6272.c)0
-rw-r--r--src/devices/video/huc6272.h (renamed from src/emu/video/huc6272.h)0
-rw-r--r--src/devices/video/i8244.c (renamed from src/emu/video/i8244.c)0
-rw-r--r--src/devices/video/i8244.h (renamed from src/emu/video/i8244.h)0
-rw-r--r--src/devices/video/i82730.c (renamed from src/emu/video/i82730.c)6
-rw-r--r--src/devices/video/i82730.h (renamed from src/emu/video/i82730.h)4
-rw-r--r--src/devices/video/i8275.c (renamed from src/emu/video/i8275.c)2
-rw-r--r--src/devices/video/i8275.h (renamed from src/emu/video/i8275.h)0
-rw-r--r--src/devices/video/m50458.c (renamed from src/emu/video/m50458.c)0
-rw-r--r--src/devices/video/m50458.h (renamed from src/emu/video/m50458.h)0
-rw-r--r--src/devices/video/mb90082.c (renamed from src/emu/video/mb90082.c)0
-rw-r--r--src/devices/video/mb90082.h (renamed from src/emu/video/mb90082.h)0
-rw-r--r--src/devices/video/mb_vcu.c (renamed from src/emu/video/mb_vcu.c)2
-rw-r--r--src/devices/video/mb_vcu.h (renamed from src/emu/video/mb_vcu.h)0
-rw-r--r--src/devices/video/mc6845.c (renamed from src/emu/video/mc6845.c)0
-rw-r--r--src/devices/video/mc6845.h (renamed from src/emu/video/mc6845.h)0
-rw-r--r--src/devices/video/mc6847.c (renamed from src/emu/video/mc6847.c)0
-rw-r--r--src/devices/video/mc6847.h (renamed from src/emu/video/mc6847.h)0
-rw-r--r--src/devices/video/mos6566.c (renamed from src/emu/video/mos6566.c)0
-rw-r--r--src/devices/video/mos6566.h (renamed from src/emu/video/mos6566.h)0
-rw-r--r--src/devices/video/msm6222b.c (renamed from src/emu/video/msm6222b.c)0
-rw-r--r--src/devices/video/msm6222b.h (renamed from src/emu/video/msm6222b.h)0
-rw-r--r--src/devices/video/msm6255.c (renamed from src/emu/video/msm6255.c)0
-rw-r--r--src/devices/video/msm6255.h (renamed from src/emu/video/msm6255.h)0
-rw-r--r--src/devices/video/pc_vga.c (renamed from src/emu/video/pc_vga.c)0
-rw-r--r--src/devices/video/pc_vga.h (renamed from src/emu/video/pc_vga.h)0
-rw-r--r--src/devices/video/poly.h (renamed from src/emu/video/poly.h)150
-rw-r--r--src/devices/video/polylgcy.c (renamed from src/emu/video/polylgcy.c)0
-rw-r--r--src/devices/video/polylgcy.h (renamed from src/emu/video/polylgcy.h)6
-rw-r--r--src/devices/video/psx.c (renamed from src/emu/video/psx.c)0
-rw-r--r--src/devices/video/psx.h (renamed from src/emu/video/psx.h)0
-rw-r--r--src/devices/video/ramdac.c (renamed from src/emu/video/ramdac.c)0
-rw-r--r--src/devices/video/ramdac.h (renamed from src/emu/video/ramdac.h)0
-rw-r--r--src/devices/video/saa5050.c (renamed from src/emu/video/saa5050.c)0
-rw-r--r--src/devices/video/saa5050.h (renamed from src/emu/video/saa5050.h)0
-rw-r--r--src/devices/video/scn2674.c (renamed from src/emu/video/scn2674.c)171
-rw-r--r--src/devices/video/scn2674.h (renamed from src/emu/video/scn2674.h)4
-rw-r--r--src/devices/video/sed1200.c (renamed from src/emu/video/sed1200.c)0
-rw-r--r--src/devices/video/sed1200.h (renamed from src/emu/video/sed1200.h)0
-rw-r--r--src/devices/video/sed1330.c (renamed from src/emu/video/sed1330.c)0
-rw-r--r--src/devices/video/sed1330.h (renamed from src/emu/video/sed1330.h)0
-rw-r--r--src/devices/video/sed1520.c (renamed from src/emu/video/sed1520.c)0
-rw-r--r--src/devices/video/sed1520.h (renamed from src/emu/video/sed1520.h)0
-rw-r--r--src/devices/video/snes_ppu.c (renamed from src/emu/video/snes_ppu.c)0
-rw-r--r--src/devices/video/snes_ppu.h (renamed from src/emu/video/snes_ppu.h)0
-rw-r--r--src/devices/video/stvvdp1.c (renamed from src/emu/video/stvvdp1.c)0
-rw-r--r--src/devices/video/stvvdp2.c (renamed from src/emu/video/stvvdp2.c)0
-rw-r--r--src/devices/video/t6a04.c (renamed from src/emu/video/t6a04.c)0
-rw-r--r--src/devices/video/t6a04.h (renamed from src/emu/video/t6a04.h)0
-rw-r--r--src/devices/video/tea1002.c (renamed from src/emu/video/tea1002.c)0
-rw-r--r--src/devices/video/tea1002.h (renamed from src/emu/video/tea1002.h)0
-rw-r--r--src/devices/video/tlc34076.c (renamed from src/emu/video/tlc34076.c)0
-rw-r--r--src/devices/video/tlc34076.h (renamed from src/emu/video/tlc34076.h)0
-rw-r--r--src/devices/video/tms34061.c (renamed from src/emu/video/tms34061.c)0
-rw-r--r--src/devices/video/tms34061.h (renamed from src/emu/video/tms34061.h)0
-rw-r--r--src/devices/video/tms3556.c (renamed from src/emu/video/tms3556.c)0
-rw-r--r--src/devices/video/tms3556.h (renamed from src/emu/video/tms3556.h)0
-rw-r--r--src/devices/video/tms9927.c (renamed from src/emu/video/tms9927.c)0
-rw-r--r--src/devices/video/tms9927.h (renamed from src/emu/video/tms9927.h)0
-rw-r--r--src/devices/video/tms9928a.c (renamed from src/emu/video/tms9928a.c)0
-rw-r--r--src/devices/video/tms9928a.h (renamed from src/emu/video/tms9928a.h)0
-rw-r--r--src/devices/video/upd3301.c (renamed from src/emu/video/upd3301.c)0
-rw-r--r--src/devices/video/upd3301.h (renamed from src/emu/video/upd3301.h)0
-rw-r--r--src/devices/video/upd7220.c (renamed from src/emu/video/upd7220.c)5
-rw-r--r--src/devices/video/upd7220.h (renamed from src/emu/video/upd7220.h)0
-rw-r--r--src/devices/video/upd7227.c (renamed from src/emu/video/upd7227.c)0
-rw-r--r--src/devices/video/upd7227.h (renamed from src/emu/video/upd7227.h)0
-rw-r--r--src/devices/video/v9938.c (renamed from src/emu/video/v9938.c)168
-rw-r--r--src/devices/video/v9938.h (renamed from src/emu/video/v9938.h)59
-rw-r--r--src/devices/video/vic4567.c (renamed from src/emu/video/vic4567.c)0
-rw-r--r--src/devices/video/vic4567.h (renamed from src/emu/video/vic4567.h)0
-rw-r--r--src/devices/video/vooddefs.h (renamed from src/emu/video/vooddefs.h)33
-rw-r--r--src/devices/video/voodoo.c (renamed from src/emu/video/voodoo.c)40
-rw-r--r--src/devices/video/voodoo.h (renamed from src/emu/video/voodoo.h)0
-rw-r--r--src/devices/video/voodoo_pci.c (renamed from src/emu/video/voodoo_pci.c)0
-rw-r--r--src/devices/video/voodoo_pci.h (renamed from src/emu/video/voodoo_pci.h)0
-rw-r--r--src/emu/attotime.c36
-rw-r--r--src/emu/attotime.h132
-rw-r--r--src/emu/audit.c11
-rw-r--r--src/emu/bus/pc_kbd/iskr1030.c453
-rw-r--r--src/emu/bus/scsi/omti5100.c94
-rw-r--r--src/emu/clifront.c6
-rw-r--r--src/emu/cpu/arcompact/arcompact_make.py433
-rw-r--r--src/emu/cpu/hphybrid/hphybrid.c961
-rw-r--r--src/emu/debug/debugcmd.c2
-rw-r--r--src/emu/debug/debugcpu.c11
-rw-r--r--src/emu/device.c4
-rw-r--r--src/emu/dipty.c85
-rw-r--r--src/emu/dipty.h48
-rw-r--r--src/emu/drivenum.c2
-rw-r--r--src/emu/drivenum.h2
-rw-r--r--src/emu/drivers/empty.c2
-rw-r--r--src/emu/drivers/emudummy.c2
-rw-r--r--src/emu/drivers/testcpu.c2
-rw-r--r--src/emu/emu.h1
-rw-r--r--src/emu/emuopts.c35
-rw-r--r--src/emu/emuopts.h17
-rw-r--r--src/emu/emupal.c76
-rw-r--r--src/emu/emupal.h61
-rw-r--r--src/emu/gamedrv.h56
-rw-r--r--src/emu/info.c32
-rw-r--r--src/emu/ioport.c17
-rw-r--r--src/emu/ioport.h1
-rw-r--r--src/emu/luaengine.c2
-rw-r--r--src/emu/machine.c17
-rw-r--r--src/emu/machine/at29040a.c446
-rw-r--r--src/emu/machine/at29040a.h90
-rw-r--r--src/emu/machine/i8271.c1510
-rw-r--r--src/emu/machine/i8271.h165
-rw-r--r--src/emu/mconfig.h2
-rw-r--r--src/emu/memory.c24
-rw-r--r--src/emu/memory.h7
-rw-r--r--src/emu/netlist/macro/nlm_opamp.c47
-rw-r--r--src/emu/netlist/nl_time.h134
-rw-r--r--src/emu/netlist/plib/pstring.c360
-rw-r--r--src/emu/netlist/plib/pstring.h259
-rw-r--r--src/emu/output.c6
-rw-r--r--src/emu/render.c43
-rw-r--r--src/emu/render.h12
-rw-r--r--src/emu/rendfont.c4
-rw-r--r--src/emu/rendlay.c44
-rw-r--r--src/emu/rendlay.h9
-rw-r--r--src/emu/romload.h1
-rw-r--r--src/emu/save.c9
-rw-r--r--src/emu/save.h4
-rw-r--r--src/emu/schedule.c34
-rw-r--r--src/emu/screen.c19
-rw-r--r--src/emu/screen.h15
-rw-r--r--src/emu/softlist.c8
-rw-r--r--src/emu/sound.c26
-rw-r--r--src/emu/ui/devopt.c2
-rw-r--r--src/emu/ui/info_pty.c44
-rw-r--r--src/emu/ui/info_pty.h24
-rw-r--r--src/emu/ui/mainmenu.c9
-rw-r--r--src/emu/ui/mainmenu.h3
-rw-r--r--src/emu/ui/miscmenu.c8
-rw-r--r--src/emu/ui/selgame.c16
-rw-r--r--src/emu/ui/sliders.c3
-rw-r--r--src/emu/ui/ui.c60
-rw-r--r--src/emu/validity.c6
-rw-r--r--src/emu/video.c14
-rw-r--r--src/emu/video/rgbsse.h12
-rw-r--r--src/lib/formats/atom_dsk.c31
-rw-r--r--src/lib/formats/atom_dsk.h22
-rw-r--r--src/lib/formats/bbc_dsk.c216
-rw-r--r--src/lib/formats/bbc_dsk.h62
-rw-r--r--src/lib/formats/flopimg.c2
-rw-r--r--src/lib/formats/mfm_hd.c750
-rw-r--r--src/lib/formats/mfm_hd.h212
-rw-r--r--src/lib/formats/ti99_dsk.c8
-rw-r--r--src/lib/formats/tiki100_dsk.c5
-rw-r--r--src/lib/formats/vector06_dsk.c4
-rw-r--r--src/lib/netlist/analog/nld_bjt.c (renamed from src/emu/netlist/analog/nld_bjt.c)24
-rw-r--r--src/lib/netlist/analog/nld_bjt.h (renamed from src/emu/netlist/analog/nld_bjt.h)30
-rw-r--r--src/lib/netlist/analog/nld_fourterm.c (renamed from src/emu/netlist/analog/nld_fourterm.c)7
-rw-r--r--src/lib/netlist/analog/nld_fourterm.h (renamed from src/emu/netlist/analog/nld_fourterm.h)2
-rw-r--r--src/lib/netlist/analog/nld_opamps.c (renamed from src/emu/netlist/analog/nld_opamps.c)107
-rw-r--r--src/lib/netlist/analog/nld_opamps.h (renamed from src/emu/netlist/analog/nld_opamps.h)6
-rw-r--r--src/lib/netlist/analog/nld_switches.c (renamed from src/emu/netlist/analog/nld_switches.c)2
-rw-r--r--src/lib/netlist/analog/nld_switches.h (renamed from src/emu/netlist/analog/nld_switches.h)2
-rw-r--r--src/lib/netlist/analog/nld_twoterm.c (renamed from src/emu/netlist/analog/nld_twoterm.c)9
-rw-r--r--src/lib/netlist/analog/nld_twoterm.h (renamed from src/emu/netlist/analog/nld_twoterm.h)61
-rw-r--r--src/lib/netlist/build/makefile166
-rw-r--r--src/lib/netlist/devices/net_lib.c (renamed from src/emu/netlist/devices/net_lib.c)62
-rw-r--r--src/lib/netlist/devices/net_lib.h (renamed from src/emu/netlist/devices/net_lib.h)21
-rw-r--r--src/lib/netlist/devices/nld_4020.c (renamed from src/emu/netlist/devices/nld_4020.c)0
-rw-r--r--src/lib/netlist/devices/nld_4020.h (renamed from src/emu/netlist/devices/nld_4020.h)2
-rw-r--r--src/lib/netlist/devices/nld_4066.c (renamed from src/emu/netlist/devices/nld_4066.c)0
-rw-r--r--src/lib/netlist/devices/nld_4066.h (renamed from src/emu/netlist/devices/nld_4066.h)2
-rw-r--r--src/lib/netlist/devices/nld_7400.c (renamed from src/emu/netlist/devices/nld_7400.c)0
-rw-r--r--src/lib/netlist/devices/nld_7400.h (renamed from src/emu/netlist/devices/nld_7400.h)0
-rw-r--r--src/lib/netlist/devices/nld_7402.c (renamed from src/emu/netlist/devices/nld_7402.c)0
-rw-r--r--src/lib/netlist/devices/nld_7402.h (renamed from src/emu/netlist/devices/nld_7402.h)0
-rw-r--r--src/lib/netlist/devices/nld_7404.c (renamed from src/emu/netlist/devices/nld_7404.c)0
-rw-r--r--src/lib/netlist/devices/nld_7404.h (renamed from src/emu/netlist/devices/nld_7404.h)0
-rw-r--r--src/lib/netlist/devices/nld_7408.c (renamed from src/emu/netlist/devices/nld_7408.c)0
-rw-r--r--src/lib/netlist/devices/nld_7408.h (renamed from src/emu/netlist/devices/nld_7408.h)0
-rw-r--r--src/lib/netlist/devices/nld_7410.c (renamed from src/emu/netlist/devices/nld_7410.c)0
-rw-r--r--src/lib/netlist/devices/nld_7410.h (renamed from src/emu/netlist/devices/nld_7410.h)0
-rw-r--r--src/lib/netlist/devices/nld_74107.c (renamed from src/emu/netlist/devices/nld_74107.c)0
-rw-r--r--src/lib/netlist/devices/nld_74107.h (renamed from src/emu/netlist/devices/nld_74107.h)2
-rw-r--r--src/lib/netlist/devices/nld_7411.c (renamed from src/emu/netlist/devices/nld_7411.c)0
-rw-r--r--src/lib/netlist/devices/nld_7411.h (renamed from src/emu/netlist/devices/nld_7411.h)0
-rw-r--r--src/lib/netlist/devices/nld_74123.c (renamed from src/emu/netlist/devices/nld_74123.c)1
-rw-r--r--src/lib/netlist/devices/nld_74123.h (renamed from src/emu/netlist/devices/nld_74123.h)4
-rw-r--r--src/lib/netlist/devices/nld_74153.c (renamed from src/emu/netlist/devices/nld_74153.c)0
-rw-r--r--src/lib/netlist/devices/nld_74153.h (renamed from src/emu/netlist/devices/nld_74153.h)2
-rw-r--r--src/lib/netlist/devices/nld_74175.c (renamed from src/emu/netlist/devices/nld_74175.c)0
-rw-r--r--src/lib/netlist/devices/nld_74175.h (renamed from src/emu/netlist/devices/nld_74175.h)0
-rw-r--r--src/lib/netlist/devices/nld_74192.c (renamed from src/emu/netlist/devices/nld_74192.c)0
-rw-r--r--src/lib/netlist/devices/nld_74192.h (renamed from src/emu/netlist/devices/nld_74192.h)2
-rw-r--r--src/lib/netlist/devices/nld_74193.c (renamed from src/emu/netlist/devices/nld_74193.c)0
-rw-r--r--src/lib/netlist/devices/nld_74193.h (renamed from src/emu/netlist/devices/nld_74193.h)2
-rw-r--r--src/lib/netlist/devices/nld_7420.c (renamed from src/emu/netlist/devices/nld_7420.c)0
-rw-r--r--src/lib/netlist/devices/nld_7420.h (renamed from src/emu/netlist/devices/nld_7420.h)0
-rw-r--r--src/lib/netlist/devices/nld_7425.c (renamed from src/emu/netlist/devices/nld_7425.c)0
-rw-r--r--src/lib/netlist/devices/nld_7425.h (renamed from src/emu/netlist/devices/nld_7425.h)0
-rw-r--r--src/lib/netlist/devices/nld_7427.c (renamed from src/emu/netlist/devices/nld_7427.c)0
-rw-r--r--src/lib/netlist/devices/nld_7427.h (renamed from src/emu/netlist/devices/nld_7427.h)0
-rw-r--r--src/lib/netlist/devices/nld_74279.c (renamed from src/emu/netlist/devices/nld_74279.c)0
-rw-r--r--src/lib/netlist/devices/nld_74279.h (renamed from src/emu/netlist/devices/nld_74279.h)0
-rw-r--r--src/lib/netlist/devices/nld_7430.c (renamed from src/emu/netlist/devices/nld_7430.c)0
-rw-r--r--src/lib/netlist/devices/nld_7430.h (renamed from src/emu/netlist/devices/nld_7430.h)0
-rw-r--r--src/lib/netlist/devices/nld_7432.c (renamed from src/emu/netlist/devices/nld_7432.c)0
-rw-r--r--src/lib/netlist/devices/nld_7432.h (renamed from src/emu/netlist/devices/nld_7432.h)0
-rw-r--r--src/lib/netlist/devices/nld_7437.c (renamed from src/emu/netlist/devices/nld_7437.c)0
-rw-r--r--src/lib/netlist/devices/nld_7437.h (renamed from src/emu/netlist/devices/nld_7437.h)0
-rw-r--r--src/lib/netlist/devices/nld_7448.c (renamed from src/emu/netlist/devices/nld_7448.c)0
-rw-r--r--src/lib/netlist/devices/nld_7448.h (renamed from src/emu/netlist/devices/nld_7448.h)2
-rw-r--r--src/lib/netlist/devices/nld_7450.c (renamed from src/emu/netlist/devices/nld_7450.c)0
-rw-r--r--src/lib/netlist/devices/nld_7450.h (renamed from src/emu/netlist/devices/nld_7450.h)0
-rw-r--r--src/lib/netlist/devices/nld_7474.c (renamed from src/emu/netlist/devices/nld_7474.c)0
-rw-r--r--src/lib/netlist/devices/nld_7474.h (renamed from src/emu/netlist/devices/nld_7474.h)0
-rw-r--r--src/lib/netlist/devices/nld_7483.c (renamed from src/emu/netlist/devices/nld_7483.c)0
-rw-r--r--src/lib/netlist/devices/nld_7483.h (renamed from src/emu/netlist/devices/nld_7483.h)2
-rw-r--r--src/lib/netlist/devices/nld_7486.c (renamed from src/emu/netlist/devices/nld_7486.c)0
-rw-r--r--src/lib/netlist/devices/nld_7486.h (renamed from src/emu/netlist/devices/nld_7486.h)0
-rw-r--r--src/lib/netlist/devices/nld_7490.c (renamed from src/emu/netlist/devices/nld_7490.c)0
-rw-r--r--src/lib/netlist/devices/nld_7490.h (renamed from src/emu/netlist/devices/nld_7490.h)2
-rw-r--r--src/lib/netlist/devices/nld_7493.c (renamed from src/emu/netlist/devices/nld_7493.c)2
-rw-r--r--src/lib/netlist/devices/nld_7493.h (renamed from src/emu/netlist/devices/nld_7493.h)2
-rw-r--r--src/lib/netlist/devices/nld_74ls629.c (renamed from src/emu/netlist/devices/nld_74ls629.c)5
-rw-r--r--src/lib/netlist/devices/nld_74ls629.h (renamed from src/emu/netlist/devices/nld_74ls629.h)4
-rw-r--r--src/lib/netlist/devices/nld_82S16.c (renamed from src/emu/netlist/devices/nld_82S16.c)0
-rw-r--r--src/lib/netlist/devices/nld_82S16.h (renamed from src/emu/netlist/devices/nld_82S16.h)2
-rw-r--r--src/lib/netlist/devices/nld_9310.c (renamed from src/emu/netlist/devices/nld_9310.c)0
-rw-r--r--src/lib/netlist/devices/nld_9310.h (renamed from src/emu/netlist/devices/nld_9310.h)2
-rw-r--r--src/lib/netlist/devices/nld_9312.c (renamed from src/emu/netlist/devices/nld_9312.c)0
-rw-r--r--src/lib/netlist/devices/nld_9312.h (renamed from src/emu/netlist/devices/nld_9312.h)0
-rw-r--r--src/lib/netlist/devices/nld_9316.c (renamed from src/emu/netlist/devices/nld_9316.c)0
-rw-r--r--src/lib/netlist/devices/nld_9316.h (renamed from src/emu/netlist/devices/nld_9316.h)2
-rw-r--r--src/lib/netlist/devices/nld_cmos.h (renamed from src/emu/netlist/devices/nld_cmos.h)4
-rw-r--r--src/lib/netlist/devices/nld_legacy.c (renamed from src/emu/netlist/devices/nld_legacy.c)2
-rw-r--r--src/lib/netlist/devices/nld_legacy.h (renamed from src/emu/netlist/devices/nld_legacy.h)2
-rw-r--r--src/lib/netlist/devices/nld_log.c (renamed from src/emu/netlist/devices/nld_log.c)16
-rw-r--r--src/lib/netlist/devices/nld_log.h (renamed from src/emu/netlist/devices/nld_log.h)9
-rw-r--r--src/lib/netlist/devices/nld_mm5837.c (renamed from src/emu/netlist/devices/nld_mm5837.c)2
-rw-r--r--src/lib/netlist/devices/nld_mm5837.h (renamed from src/emu/netlist/devices/nld_mm5837.h)4
-rw-r--r--src/lib/netlist/devices/nld_ne555.c (renamed from src/emu/netlist/devices/nld_ne555.c)2
-rw-r--r--src/lib/netlist/devices/nld_ne555.h (renamed from src/emu/netlist/devices/nld_ne555.h)4
-rw-r--r--src/lib/netlist/devices/nld_r2r_dac.c (renamed from src/emu/netlist/devices/nld_r2r_dac.c)2
-rw-r--r--src/lib/netlist/devices/nld_r2r_dac.h (renamed from src/emu/netlist/devices/nld_r2r_dac.h)4
-rw-r--r--src/lib/netlist/devices/nld_signal.h (renamed from src/emu/netlist/devices/nld_signal.h)2
-rw-r--r--src/lib/netlist/devices/nld_system.c (renamed from src/emu/netlist/devices/nld_system.c)8
-rw-r--r--src/lib/netlist/devices/nld_system.h (renamed from src/emu/netlist/devices/nld_system.h)19
-rw-r--r--src/lib/netlist/devices/nld_truthtable.c (renamed from src/emu/netlist/devices/nld_truthtable.c)12
-rw-r--r--src/lib/netlist/devices/nld_truthtable.h (renamed from src/emu/netlist/devices/nld_truthtable.h)7
-rw-r--r--src/lib/netlist/macro/nlm_cd4xxx.c (renamed from src/emu/netlist/macro/nlm_cd4xxx.c)14
-rw-r--r--src/lib/netlist/macro/nlm_cd4xxx.h (renamed from src/emu/netlist/macro/nlm_cd4xxx.h)2
-rw-r--r--src/lib/netlist/macro/nlm_opamp.c83
-rw-r--r--src/lib/netlist/macro/nlm_opamp.h (renamed from src/emu/netlist/macro/nlm_opamp.h)10
-rw-r--r--src/lib/netlist/macro/nlm_other.c55
-rw-r--r--src/lib/netlist/macro/nlm_other.h27
-rw-r--r--src/lib/netlist/macro/nlm_ttl74xx.c (renamed from src/emu/netlist/macro/nlm_ttl74xx.c)4
-rw-r--r--src/lib/netlist/macro/nlm_ttl74xx.h (renamed from src/emu/netlist/macro/nlm_ttl74xx.h)6
-rw-r--r--src/lib/netlist/nl_base.c (renamed from src/emu/netlist/nl_base.c)145
-rw-r--r--src/lib/netlist/nl_base.h (renamed from src/emu/netlist/nl_base.h)81
-rw-r--r--src/lib/netlist/nl_config.h (renamed from src/emu/netlist/nl_config.h)23
-rw-r--r--src/lib/netlist/nl_dice_compat.h (renamed from src/emu/netlist/nl_dice_compat.h)0
-rw-r--r--src/lib/netlist/nl_factory.c (renamed from src/emu/netlist/nl_factory.c)34
-rw-r--r--src/lib/netlist/nl_factory.h (renamed from src/emu/netlist/nl_factory.h)21
-rw-r--r--src/lib/netlist/nl_lists.h (renamed from src/emu/netlist/nl_lists.h)0
-rw-r--r--src/lib/netlist/nl_parser.c (renamed from src/emu/netlist/nl_parser.c)61
-rw-r--r--src/lib/netlist/nl_parser.h (renamed from src/emu/netlist/nl_parser.h)10
-rw-r--r--src/lib/netlist/nl_setup.c (renamed from src/emu/netlist/nl_setup.c)440
-rw-r--r--src/lib/netlist/nl_setup.h (renamed from src/emu/netlist/nl_setup.h)100
-rw-r--r--src/lib/netlist/nl_time.h137
-rw-r--r--src/lib/netlist/nl_util.h (renamed from src/emu/netlist/nl_util.h)0
-rw-r--r--src/lib/netlist/plib/palloc.c (renamed from src/emu/netlist/plib/palloc.c)13
-rw-r--r--src/lib/netlist/plib/palloc.h (renamed from src/emu/netlist/plib/palloc.h)25
-rw-r--r--src/lib/netlist/plib/pconfig.h (renamed from src/emu/netlist/plib/pconfig.h)65
-rw-r--r--src/lib/netlist/plib/pfmtlog.c166
-rw-r--r--src/lib/netlist/plib/pfmtlog.h292
-rw-r--r--src/lib/netlist/plib/plists.h (renamed from src/emu/netlist/plib/plists.h)117
-rw-r--r--src/lib/netlist/plib/poptions.h (renamed from src/emu/netlist/plib/poptions.h)0
-rw-r--r--src/lib/netlist/plib/pparser.c (renamed from src/emu/netlist/plib/pparser.c)240
-rw-r--r--src/lib/netlist/plib/pparser.h (renamed from src/emu/netlist/plib/pparser.h)45
-rw-r--r--src/lib/netlist/plib/pstate.c (renamed from src/emu/netlist/plib/pstate.c)4
-rw-r--r--src/lib/netlist/plib/pstate.h (renamed from src/emu/netlist/plib/pstate.h)7
-rw-r--r--src/lib/netlist/plib/pstream.c362
-rw-r--r--src/lib/netlist/plib/pstream.h378
-rw-r--r--src/lib/netlist/plib/pstring.c600
-rw-r--r--src/lib/netlist/plib/pstring.h381
-rw-r--r--src/lib/netlist/plib/ptypes.h97
-rw-r--r--src/lib/netlist/prg/nltool.c (renamed from src/tools/nltool.c)252
-rw-r--r--src/lib/netlist/prg/nlwav.c289
-rw-r--r--src/lib/netlist/solver/mat_cr.h (renamed from src/emu/netlist/solver/mat_cr.h)11
-rw-r--r--src/lib/netlist/solver/nld_ms_direct.h (renamed from src/emu/netlist/solver/nld_ms_direct.h)254
-rw-r--r--src/lib/netlist/solver/nld_ms_direct1.h (renamed from src/emu/netlist/solver/nld_ms_direct1.h)8
-rw-r--r--src/lib/netlist/solver/nld_ms_direct2.h (renamed from src/emu/netlist/solver/nld_ms_direct2.h)12
-rw-r--r--src/lib/netlist/solver/nld_ms_direct_lu.h651
-rw-r--r--src/lib/netlist/solver/nld_ms_gmres.h (renamed from src/emu/netlist/solver/nld_ms_gmres.h)67
-rw-r--r--src/lib/netlist/solver/nld_ms_sor.h (renamed from src/emu/netlist/solver/nld_ms_sor.h)6
-rw-r--r--src/lib/netlist/solver/nld_ms_sor_mat.h (renamed from src/emu/netlist/solver/nld_ms_sor_mat.h)30
-rw-r--r--src/lib/netlist/solver/nld_solver.c (renamed from src/emu/netlist/solver/nld_solver.c)125
-rw-r--r--src/lib/netlist/solver/nld_solver.h (renamed from src/emu/netlist/solver/nld_solver.h)33
-rw-r--r--src/lib/netlist/solver/vector_base.h (renamed from src/emu/netlist/solver/vector_base.h)32
-rw-r--r--src/lib/netlist/tools/nl_convert.c (renamed from src/emu/netlist/tools/nl_convert.c)100
-rw-r--r--src/lib/netlist/tools/nl_convert.h (renamed from src/emu/netlist/tools/nl_convert.h)17
-rw-r--r--src/lib/util/coreutil.c19
-rw-r--r--src/lib/util/coreutil.h1
-rw-r--r--src/lib/util/palette.c60
-rw-r--r--src/lib/util/palette.h3
-rw-r--r--src/mame/arcade.lst497
-rw-r--r--src/mame/audio/alesis.c (renamed from src/mess/audio/alesis.c)0
-rw-r--r--src/mame/audio/arcadia.c (renamed from src/mess/audio/arcadia.c)0
-rw-r--r--src/mame/audio/arcadia.h (renamed from src/mess/audio/arcadia.h)0
-rw-r--r--src/mame/audio/atarijsa.c10
-rw-r--r--src/mame/audio/atarijsa.h5
-rw-r--r--src/mame/audio/cage.c4
-rw-r--r--src/mame/audio/channelf.c (renamed from src/mess/audio/channelf.c)0
-rw-r--r--src/mame/audio/channelf.h (renamed from src/mess/audio/channelf.h)0
-rw-r--r--src/mame/audio/dai_snd.c (renamed from src/mess/audio/dai_snd.c)0
-rw-r--r--src/mame/audio/dai_snd.h (renamed from src/mess/audio/dai_snd.h)0
-rw-r--r--src/mame/audio/dave.c (renamed from src/mess/audio/dave.c)0
-rw-r--r--src/mame/audio/dave.h (renamed from src/mess/audio/dave.h)0
-rw-r--r--src/mame/audio/dcs.c2
-rw-r--r--src/mame/audio/gamate.c (renamed from src/mess/audio/gamate.c)6
-rw-r--r--src/mame/audio/gb.c (renamed from src/mess/audio/gb.c)14
-rw-r--r--src/mame/audio/gb.h (renamed from src/mess/audio/gb.h)0
-rw-r--r--src/mame/audio/hng64.c14
-rw-r--r--src/mame/audio/irem.c158
-rw-r--r--src/mame/audio/irem.h39
-rw-r--r--src/mame/audio/leland.c162
-rw-r--r--src/mame/audio/lynx.c (renamed from src/mess/audio/lynx.c)0
-rw-r--r--src/mame/audio/lynx.h (renamed from src/mess/audio/lynx.h)0
-rw-r--r--src/mame/audio/mac.c (renamed from src/mess/audio/mac.c)0
-rw-r--r--src/mame/audio/mea8000.c (renamed from src/mess/audio/mea8000.c)0
-rw-r--r--src/mame/audio/mea8000.h (renamed from src/mess/audio/mea8000.h)0
-rw-r--r--src/mame/audio/micro3d.c4
-rw-r--r--src/mame/audio/nl_kidniki.c185
-rw-r--r--src/mame/audio/scramble.c13
-rw-r--r--src/mame/audio/seibu.h24
-rw-r--r--src/mame/audio/socrates.c (renamed from src/mess/audio/socrates.c)0
-rw-r--r--src/mame/audio/socrates.h (renamed from src/mess/audio/socrates.h)0
-rw-r--r--src/mame/audio/specimx_snd.c (renamed from src/mess/audio/specimx_snd.c)0
-rw-r--r--src/mame/audio/specimx_snd.h (renamed from src/mess/audio/specimx_snd.h)0
-rw-r--r--src/mame/audio/svis_snd.c (renamed from src/mess/audio/svis_snd.c)0
-rw-r--r--src/mame/audio/svis_snd.h (renamed from src/mess/audio/svis_snd.h)0
-rw-r--r--src/mame/audio/targ.c15
-rw-r--r--src/mame/audio/tvc_snd.c (renamed from src/mess/audio/tvc_snd.c)0
-rw-r--r--src/mame/audio/tvc_snd.h (renamed from src/mess/audio/tvc_snd.h)0
-rw-r--r--src/mame/audio/upd1771.c (renamed from src/mess/audio/upd1771.c)0
-rw-r--r--src/mame/audio/upd1771.h (renamed from src/mess/audio/upd1771.h)0
-rw-r--r--src/mame/audio/vboy.c (renamed from src/mess/audio/vboy.c)0
-rw-r--r--src/mame/audio/vboy.h (renamed from src/mess/audio/vboy.h)0
-rw-r--r--src/mame/audio/vc4000snd.c (renamed from src/mess/audio/vc4000snd.c)0
-rw-r--r--src/mame/audio/vc4000snd.h (renamed from src/mess/audio/vc4000snd.h)0
-rw-r--r--src/mame/audio/wswan_snd.c (renamed from src/mess/audio/wswan_snd.c)0
-rw-r--r--src/mame/audio/wswan_snd.h (renamed from src/mess/audio/wswan_snd.h)0
-rw-r--r--src/mame/drivers/1942.c68
-rw-r--r--src/mame/drivers/1943.c12
-rw-r--r--src/mame/drivers/1945kiii.c5
-rw-r--r--src/mame/drivers/20pacgal.c18
-rw-r--r--src/mame/drivers/24cdjuke.c2
-rw-r--r--src/mame/drivers/2mindril.c2
-rw-r--r--src/mame/drivers/30test.c2
-rw-r--r--src/mame/drivers/39in1.c18
-rw-r--r--src/mame/drivers/3do.c8
-rw-r--r--src/mame/drivers/3x3puzzl.c6
-rw-r--r--src/mame/drivers/4004clk.c (renamed from src/mess/drivers/4004clk.c)13
-rw-r--r--src/mame/drivers/40love.c6
-rw-r--r--src/mame/drivers/4enlinea.c2
-rw-r--r--src/mame/drivers/4enraya.c9
-rw-r--r--src/mame/drivers/4roses.c6
-rw-r--r--src/mame/drivers/5clown.c6
-rw-r--r--src/mame/drivers/68ksbc.c (renamed from src/mess/drivers/68ksbc.c)2
-rw-r--r--src/mame/drivers/8080bw.c253
-rw-r--r--src/mame/drivers/88games.c15
-rw-r--r--src/mame/drivers/a1supply.c6
-rw-r--r--src/mame/drivers/a2600.c (renamed from src/mess/drivers/a2600.c)13
-rw-r--r--src/mame/drivers/a310.c (renamed from src/mess/drivers/a310.c)6
-rw-r--r--src/mame/drivers/a5105.c (renamed from src/mess/drivers/a5105.c)2
-rw-r--r--src/mame/drivers/a51xx.c (renamed from src/mess/drivers/a51xx.c)4
-rw-r--r--src/mame/drivers/a6809.c (renamed from src/mess/drivers/a6809.c)0
-rw-r--r--src/mame/drivers/a7150.c (renamed from src/mess/drivers/a7150.c)2
-rw-r--r--src/mame/drivers/a7800.c (renamed from src/mess/drivers/a7800.c)7
-rw-r--r--src/mame/drivers/abc1600.c (renamed from src/mess/drivers/abc1600.c)2
-rw-r--r--src/mame/drivers/abc80.c (renamed from src/mess/drivers/abc80.c)2
-rw-r--r--src/mame/drivers/abc80x.c (renamed from src/mess/drivers/abc80x.c)8
-rw-r--r--src/mame/drivers/ac1.c (renamed from src/mess/drivers/ac1.c)14
-rw-r--r--src/mame/drivers/ace.c2
-rw-r--r--src/mame/drivers/acefruit.c8
-rw-r--r--src/mame/drivers/aces1.c94
-rw-r--r--src/mame/drivers/acesp.c1076
-rw-r--r--src/mame/drivers/acommand.c2
-rw-r--r--src/mame/drivers/acrnsys1.c (renamed from src/mess/drivers/acrnsys1.c)0
-rw-r--r--src/mame/drivers/actfancr.c10
-rw-r--r--src/mame/drivers/adam.c (renamed from src/mess/drivers/adam.c)2
-rw-r--r--src/mame/drivers/adp.c16
-rw-r--r--src/mame/drivers/advision.c (renamed from src/mess/drivers/advision.c)2
-rw-r--r--src/mame/drivers/aeroboto.c4
-rw-r--r--src/mame/drivers/aerofgt.c89
-rw-r--r--src/mame/drivers/aim65.c (renamed from src/mess/drivers/aim65.c)2
-rw-r--r--src/mame/drivers/aim65_40.c (renamed from src/mess/drivers/aim65_40.c)2
-rw-r--r--src/mame/drivers/airbustr.c6
-rw-r--r--src/mame/drivers/ajax.c18
-rw-r--r--src/mame/drivers/albazc.c2
-rw-r--r--src/mame/drivers/albazg.c2
-rw-r--r--src/mame/drivers/aleck64.c30
-rw-r--r--src/mame/drivers/aleisttl.c4
-rw-r--r--src/mame/drivers/alesis.c (renamed from src/mess/drivers/alesis.c)20
-rw-r--r--src/mame/drivers/alg.c80
-rw-r--r--src/mame/drivers/alien.c2
-rw-r--r--src/mame/drivers/aliens.c39
-rw-r--r--src/mame/drivers/alinvade.c2
-rw-r--r--src/mame/drivers/allied.c24
-rw-r--r--src/mame/drivers/alpha68k.c52
-rw-r--r--src/mame/drivers/alphasma.c (renamed from src/mess/drivers/alphasma.c)4
-rw-r--r--src/mame/drivers/alphatro.c (renamed from src/mess/drivers/alphatro.c)2
-rw-r--r--src/mame/drivers/altair.c (renamed from src/mess/drivers/altair.c)2
-rw-r--r--src/mame/drivers/alto2.c (renamed from src/mess/drivers/alto2.c)2
-rw-r--r--src/mame/drivers/altos5.c (renamed from src/mess/drivers/altos5.c)4
-rw-r--r--src/mame/drivers/alvg.c18
-rw-r--r--src/mame/drivers/amaticmg.c16
-rw-r--r--src/mame/drivers/ambush.c8
-rw-r--r--src/mame/drivers/amico2k.c (renamed from src/mess/drivers/amico2k.c)2
-rw-r--r--src/mame/drivers/amiga.c (renamed from src/mess/drivers/amiga.c)48
-rw-r--r--src/mame/drivers/ampoker2.c26
-rw-r--r--src/mame/drivers/ampro.c (renamed from src/mess/drivers/ampro.c)3
-rw-r--r--src/mame/drivers/amspdwy.c8
-rw-r--r--src/mame/drivers/amstr_pc.c (renamed from src/mess/drivers/amstr_pc.c)12
-rw-r--r--src/mame/drivers/amstrad.c (renamed from src/mess/drivers/amstrad.c)40
-rw-r--r--src/mame/drivers/amusco.c24
-rw-r--r--src/mame/drivers/amust.c (renamed from src/mess/drivers/amust.c)32
-rw-r--r--src/mame/drivers/angelkds.c4
-rw-r--r--src/mame/drivers/apc.c (renamed from src/mess/drivers/apc.c)18
-rw-r--r--src/mame/drivers/apexc.c (renamed from src/mess/drivers/apexc.c)4
-rw-r--r--src/mame/drivers/apf.c (renamed from src/mess/drivers/apf.c)2
-rw-r--r--src/mame/drivers/apogee.c (renamed from src/mess/drivers/apogee.c)0
-rw-r--r--src/mame/drivers/apollo.c (renamed from src/mess/drivers/apollo.c)8
-rw-r--r--src/mame/drivers/apple1.c (renamed from src/mess/drivers/apple1.c)2
-rw-r--r--src/mame/drivers/apple2.c (renamed from src/mess/drivers/apple2.c)83
-rw-r--r--src/mame/drivers/apple2e.c (renamed from src/mess/drivers/apple2e.c)48
-rw-r--r--src/mame/drivers/apple2gs.c (renamed from src/mess/drivers/apple2gs.c)14
-rw-r--r--src/mame/drivers/apple3.c (renamed from src/mess/drivers/apple3.c)2
-rw-r--r--src/mame/drivers/applix.c (renamed from src/mess/drivers/applix.c)2
-rw-r--r--src/mame/drivers/appoooh.c8
-rw-r--r--src/mame/drivers/apricot.c (renamed from src/mess/drivers/apricot.c)4
-rw-r--r--src/mame/drivers/apricotf.c (renamed from src/mess/drivers/apricotf.c)8
-rw-r--r--src/mame/drivers/apricotp.c (renamed from src/mess/drivers/apricotp.c)2
-rw-r--r--src/mame/drivers/aquarium.c2
-rw-r--r--src/mame/drivers/aquarius.c (renamed from src/mess/drivers/aquarius.c)2
-rw-r--r--src/mame/drivers/arabian.c4
-rw-r--r--src/mame/drivers/arachnid.c2
-rw-r--r--src/mame/drivers/arcadecl.c4
-rw-r--r--src/mame/drivers/arcadia.c1710
-rw-r--r--src/mame/drivers/argo.c (renamed from src/mess/drivers/argo.c)2
-rw-r--r--src/mame/drivers/argus.c8
-rw-r--r--src/mame/drivers/aristmk4.c6
-rw-r--r--src/mame/drivers/aristmk5.c30
-rw-r--r--src/mame/drivers/aristmk6.c24
-rw-r--r--src/mame/drivers/arkanoid.c114
-rw-r--r--src/mame/drivers/armedf.c30
-rw-r--r--src/mame/drivers/arsystems.c1004
-rw-r--r--src/mame/drivers/artmagic.c12
-rw-r--r--src/mame/drivers/ashnojoe.c4
-rw-r--r--src/mame/drivers/asst128.c (renamed from src/mess/drivers/asst128.c)32
-rw-r--r--src/mame/drivers/asterix.c10
-rw-r--r--src/mame/drivers/asteroid.c36
-rw-r--r--src/mame/drivers/astinvad.c37
-rw-r--r--src/mame/drivers/astrafr.c366
-rw-r--r--src/mame/drivers/astrcorp.c94
-rw-r--r--src/mame/drivers/astrocde.c150
-rw-r--r--src/mame/drivers/astrof.c32
-rw-r--r--src/mame/drivers/astrohome.c (renamed from src/mess/drivers/astrocde.c)6
-rw-r--r--src/mame/drivers/astropc.c16
-rw-r--r--src/mame/drivers/asuka.c168
-rw-r--r--src/mame/drivers/at.c (renamed from src/mess/drivers/at.c)244
-rw-r--r--src/mame/drivers/atari400.c (renamed from src/mess/drivers/atari400.c)20
-rw-r--r--src/mame/drivers/atari_s1.c10
-rw-r--r--src/mame/drivers/atari_s2.c8
-rw-r--r--src/mame/drivers/atarifb.c14
-rw-r--r--src/mame/drivers/atarig1.c24
-rw-r--r--src/mame/drivers/atarig42.c4
-rw-r--r--src/mame/drivers/atarigt.c12
-rw-r--r--src/mame/drivers/atarigx2.c26
-rw-r--r--src/mame/drivers/atarist.c (renamed from src/mess/drivers/atarist.c)80
-rw-r--r--src/mame/drivers/atarisy1.c122
-rw-r--r--src/mame/drivers/atarisy2.c111
-rw-r--r--src/mame/drivers/atarisy4.c4
-rw-r--r--src/mame/drivers/atarittl.c64
-rw-r--r--src/mame/drivers/atetris.c14
-rw-r--r--src/mame/drivers/atlantis.c6
-rw-r--r--src/mame/drivers/atm.c (renamed from src/mess/drivers/atm.c)8
-rw-r--r--src/mame/drivers/atom.c (renamed from src/mess/drivers/atom.c)43
-rw-r--r--src/mame/drivers/atronic.c60
-rw-r--r--src/mame/drivers/attache.c (renamed from src/mess/drivers/attache.c)28
-rw-r--r--src/mame/drivers/attckufo.c2
-rw-r--r--src/mame/drivers/atvtrack.c6
-rw-r--r--src/mame/drivers/aussiebyte.c574
-rw-r--r--src/mame/drivers/avalnche.c6
-rw-r--r--src/mame/drivers/avigo.c (renamed from src/mess/drivers/avigo.c)10
-rw-r--r--src/mame/drivers/avt.c8
-rw-r--r--src/mame/drivers/ax20.c (renamed from src/mess/drivers/ax20.c)2
-rw-r--r--src/mame/drivers/aztarac.c2
-rw-r--r--src/mame/drivers/b16.c (renamed from src/mess/drivers/b16.c)2
-rw-r--r--src/mame/drivers/b2m.c (renamed from src/mess/drivers/b2m.c)4
-rw-r--r--src/mame/drivers/babbage.c (renamed from src/mess/drivers/babbage.c)2
-rw-r--r--src/mame/drivers/backfire.c4
-rw-r--r--src/mame/drivers/badlands.c4
-rw-r--r--src/mame/drivers/bagman.c24
-rw-r--r--src/mame/drivers/bailey.c4
-rw-r--r--src/mame/drivers/balsente.c66
-rw-r--r--src/mame/drivers/banctec.c (renamed from src/mess/drivers/banctec.c)2
-rw-r--r--src/mame/drivers/bankp.c4
-rw-r--r--src/mame/drivers/barata.c2
-rw-r--r--src/mame/drivers/bartop52.c2
-rw-r--r--src/mame/drivers/basic52.c (renamed from src/mess/drivers/basic52.c)4
-rw-r--r--src/mame/drivers/batman.c2
-rw-r--r--src/mame/drivers/battlane.c6
-rw-r--r--src/mame/drivers/battlera.c6
-rw-r--r--src/mame/drivers/battlex.c2
-rw-r--r--src/mame/drivers/battlnts.c15
-rw-r--r--src/mame/drivers/bbc.c (renamed from src/mess/drivers/bbc.c)945
-rw-r--r--src/mame/drivers/bbcbc.c (renamed from src/mess/drivers/bbcbc.c)2
-rw-r--r--src/mame/drivers/bbusters.c16
-rw-r--r--src/mame/drivers/bcs3.c492
-rw-r--r--src/mame/drivers/beaminv.c4
-rw-r--r--src/mame/drivers/bebox.c (renamed from src/mess/drivers/bebox.c)16
-rw-r--r--src/mame/drivers/beehive.c (renamed from src/mess/drivers/beehive.c)2
-rw-r--r--src/mame/drivers/beezer.c4
-rw-r--r--src/mame/drivers/belatra.c14
-rw-r--r--src/mame/drivers/berzerk.c14
-rw-r--r--src/mame/drivers/besta.c (renamed from src/mess/drivers/besta.c)24
-rw-r--r--src/mame/drivers/bestleag.c4
-rw-r--r--src/mame/drivers/beta.c (renamed from src/mess/drivers/beta.c)2
-rw-r--r--src/mame/drivers/bfcobra.c16
-rw-r--r--src/mame/drivers/bfm_ad5sw.c494
-rw-r--r--src/mame/drivers/bfm_sc1.c28
-rw-r--r--src/mame/drivers/bfm_sc2.c130
-rw-r--r--src/mame/drivers/bfm_sc4.c6238
-rw-r--r--src/mame/drivers/bfm_sc5sw.c3362
-rw-r--r--src/mame/drivers/bfm_swp.c8
-rw-r--r--src/mame/drivers/bfmsys83.c4
-rw-r--r--src/mame/drivers/bfmsys85.c68
-rw-r--r--src/mame/drivers/bgt.c8
-rw-r--r--src/mame/drivers/big10.c37
-rw-r--r--src/mame/drivers/bigbord2.c (renamed from src/mess/drivers/bigbord2.c)2
-rw-r--r--src/mame/drivers/bigevglf.c4
-rw-r--r--src/mame/drivers/bigstrkb.c4
-rw-r--r--src/mame/drivers/binbug.c (renamed from src/mess/drivers/binbug.c)2
-rw-r--r--src/mame/drivers/bingo.c48
-rw-r--r--src/mame/drivers/bingoc.c2
-rw-r--r--src/mame/drivers/bingoman.c4
-rw-r--r--src/mame/drivers/bingor.c10
-rw-r--r--src/mame/drivers/bionicc.c13
-rw-r--r--src/mame/drivers/bishi.c6
-rw-r--r--src/mame/drivers/bitgraph.c (renamed from src/mess/drivers/bitgraph.c)4
-rw-r--r--src/mame/drivers/bk.c (renamed from src/mess/drivers/bk.c)4
-rw-r--r--src/mame/drivers/bking.c6
-rw-r--r--src/mame/drivers/blackt96.c2
-rw-r--r--src/mame/drivers/bladestl.c9
-rw-r--r--src/mame/drivers/blitz.c4
-rw-r--r--src/mame/drivers/blitz68k.c26
-rw-r--r--src/mame/drivers/blktiger.c14
-rw-r--r--src/mame/drivers/blmbycar.c6
-rw-r--r--src/mame/drivers/blockade.c12
-rw-r--r--src/mame/drivers/blockhl.c390
-rw-r--r--src/mame/drivers/blockout.c10
-rw-r--r--src/mame/drivers/bloodbro.c12
-rw-r--r--src/mame/drivers/blueprnt.c8
-rw-r--r--src/mame/drivers/bmcbowl.c2
-rw-r--r--src/mame/drivers/bmcpokr.c6
-rw-r--r--src/mame/drivers/bmjr.c (renamed from src/mess/drivers/bmjr.c)15
-rw-r--r--src/mame/drivers/bml3.c (renamed from src/mess/drivers/bml3.c)19
-rw-r--r--src/mame/drivers/bnstars.c2
-rw-r--r--src/mame/drivers/bntyhunt.c2
-rw-r--r--src/mame/drivers/bob85.c (renamed from src/mess/drivers/bob85.c)2
-rw-r--r--src/mame/drivers/bogeyman.c7
-rw-r--r--src/mame/drivers/bombjack.c6
-rw-r--r--src/mame/drivers/boogwing.c10
-rw-r--r--src/mame/drivers/bottom9.c7
-rw-r--r--src/mame/drivers/bowltry.c2
-rw-r--r--src/mame/drivers/boxer.c2
-rw-r--r--src/mame/drivers/br8641.c200
-rw-r--r--src/mame/drivers/brkthru.c8
-rw-r--r--src/mame/drivers/bsktball.c2
-rw-r--r--src/mame/drivers/btime.c46
-rw-r--r--src/mame/drivers/btoads.c2
-rw-r--r--src/mame/drivers/bublbobl.c34
-rw-r--r--src/mame/drivers/buggychl.c4
-rw-r--r--src/mame/drivers/bullet.c (renamed from src/mess/drivers/bullet.c)4
-rw-r--r--src/mame/drivers/busicom.c (renamed from src/mess/drivers/busicom.c)2
-rw-r--r--src/mame/drivers/buster.c15
-rw-r--r--src/mame/drivers/bw12.c (renamed from src/mess/drivers/bw12.c)4
-rw-r--r--src/mame/drivers/bw2.c (renamed from src/mess/drivers/bw2.c)2
-rw-r--r--src/mame/drivers/bwidow.c20
-rw-r--r--src/mame/drivers/bwing.c10
-rw-r--r--src/mame/drivers/by17.c20
-rw-r--r--src/mame/drivers/by35.c142
-rw-r--r--src/mame/drivers/by6803.c46
-rw-r--r--src/mame/drivers/by68701.c12
-rw-r--r--src/mame/drivers/byvid.c6
-rw-r--r--src/mame/drivers/bzone.c12
-rw-r--r--src/mame/drivers/c10.c (renamed from src/mess/drivers/c10.c)2
-rw-r--r--src/mame/drivers/c128.c (renamed from src/mess/drivers/c128.c)96
-rw-r--r--src/mame/drivers/c64.c (renamed from src/mess/drivers/c64.c)84
-rw-r--r--src/mame/drivers/c64dtv.c (renamed from src/mess/drivers/c64dtv.c)2
-rw-r--r--src/mame/drivers/c65.c (renamed from src/mess/drivers/c65.c)4
-rw-r--r--src/mame/drivers/c65_old.c (renamed from src/mess/drivers/c65_old.c)4
-rw-r--r--src/mame/drivers/c80.c (renamed from src/mess/drivers/c80.c)2
-rw-r--r--src/mame/drivers/c900.c (renamed from src/mess/drivers/c900.c)2
-rw-r--r--src/mame/drivers/cabal.c12
-rw-r--r--src/mame/drivers/cabaret.c2
-rw-r--r--src/mame/drivers/calchase.c4
-rw-r--r--src/mame/drivers/calomega.c86
-rw-r--r--src/mame/drivers/calorie.c5
-rw-r--r--src/mame/drivers/camplynx.c936
-rw-r--r--src/mame/drivers/canon_s80.c54
-rw-r--r--src/mame/drivers/canyon.c4
-rw-r--r--src/mame/drivers/capbowl.c18
-rw-r--r--src/mame/drivers/capcom.c28
-rw-r--r--src/mame/drivers/capr1.c2
-rw-r--r--src/mame/drivers/caprcyc.c2
-rw-r--r--src/mame/drivers/cardline.c2
-rw-r--r--src/mame/drivers/carjmbre.c2
-rw-r--r--src/mame/drivers/carpolo.c2
-rw-r--r--src/mame/drivers/casloopy.c (renamed from src/mess/drivers/casloopy.c)4
-rw-r--r--src/mame/drivers/castle.c4
-rw-r--r--src/mame/drivers/caswin.c8
-rw-r--r--src/mame/drivers/cat.c (renamed from src/mess/drivers/cat.c)4
-rw-r--r--src/mame/drivers/cave.c98
-rw-r--r--src/mame/drivers/cavepc.c2
-rw-r--r--src/mame/drivers/cb2001.c4
-rw-r--r--src/mame/drivers/cball.c2
-rw-r--r--src/mame/drivers/cbasebal.c2
-rw-r--r--src/mame/drivers/cbm2.c (renamed from src/mess/drivers/cbm2.c)32
-rw-r--r--src/mame/drivers/cbuster.c10
-rw-r--r--src/mame/drivers/cc40.c (renamed from src/mess/drivers/cc40.c)2
-rw-r--r--src/mame/drivers/ccastles.c16
-rw-r--r--src/mame/drivers/cchance.c8
-rw-r--r--src/mame/drivers/cchasm.c4
-rw-r--r--src/mame/drivers/cclimber.c74
-rw-r--r--src/mame/drivers/ccs2810.c (renamed from src/mess/drivers/ccs2810.c)5
-rw-r--r--src/mame/drivers/ccs300.c (renamed from src/mess/drivers/ccs300.c)2
-rw-r--r--src/mame/drivers/cd2650.c (renamed from src/mess/drivers/cd2650.c)0
-rw-r--r--src/mame/drivers/cdc721.c (renamed from src/mess/drivers/cdc721.c)2
-rw-r--r--src/mame/drivers/cdi.c28
-rw-r--r--src/mame/drivers/centiped.c30
-rw-r--r--src/mame/drivers/cesclass.c6
-rw-r--r--src/mame/drivers/cfx9850.c (renamed from src/mess/drivers/cfx9850.c)2
-rw-r--r--src/mame/drivers/cgc7900.c (renamed from src/mess/drivers/cgc7900.c)2
-rw-r--r--src/mame/drivers/cgenie.c (renamed from src/mess/drivers/cgenie.c)0
-rw-r--r--src/mame/drivers/chaknpop.c2
-rw-r--r--src/mame/drivers/cham24.c2
-rw-r--r--src/mame/drivers/champbas.c32
-rw-r--r--src/mame/drivers/champbwl.c4
-rw-r--r--src/mame/drivers/chanbara.c26
-rw-r--r--src/mame/drivers/changela.c2
-rw-r--r--src/mame/drivers/channelf.c (renamed from src/mess/drivers/channelf.c)0
-rw-r--r--src/mame/drivers/chaos.c (renamed from src/mess/drivers/chaos.c)2
-rw-r--r--src/mame/drivers/cheekyms.c2
-rw-r--r--src/mame/drivers/chessmst.c (renamed from src/mess/drivers/chessmst.c)2
-rw-r--r--src/mame/drivers/chesstrv.c (renamed from src/mess/drivers/chesstrv.c)4
-rw-r--r--src/mame/drivers/chexx.c420
-rw-r--r--src/mame/drivers/chicago.c18
-rw-r--r--src/mame/drivers/chihiro.c1971
-rw-r--r--src/mame/drivers/chinagat.c8
-rw-r--r--src/mame/drivers/chinsan.c2
-rw-r--r--src/mame/drivers/chqflag.c28
-rw-r--r--src/mame/drivers/chsuper.c6
-rw-r--r--src/mame/drivers/cidelsa.c8
-rw-r--r--src/mame/drivers/cinemat.c50
-rw-r--r--src/mame/drivers/circus.c12
-rw-r--r--src/mame/drivers/circusc.c12
-rw-r--r--src/mame/drivers/cischeat.c16
-rw-r--r--src/mame/drivers/citycon.c6
-rw-r--r--src/mame/drivers/clayshoo.c2
-rw-r--r--src/mame/drivers/clcd.c (renamed from src/mess/drivers/clcd.c)0
-rw-r--r--src/mame/drivers/cliffhgr.c2
-rw-r--r--src/mame/drivers/cloak.c16
-rw-r--r--src/mame/drivers/cloud9.c4
-rw-r--r--src/mame/drivers/clshroad.c8
-rw-r--r--src/mame/drivers/cm1800.c (renamed from src/mess/drivers/cm1800.c)2
-rw-r--r--src/mame/drivers/cmmb.c14
-rw-r--r--src/mame/drivers/cninja.c78
-rw-r--r--src/mame/drivers/cntsteer.c73
-rw-r--r--src/mame/drivers/cobra.c37
-rw-r--r--src/mame/drivers/coco12.c (renamed from src/mess/drivers/coco12.c)0
-rw-r--r--src/mame/drivers/coco3.c (renamed from src/mess/drivers/coco3.c)4
-rw-r--r--src/mame/drivers/cocoloco.c2
-rw-r--r--src/mame/drivers/codata.c (renamed from src/mess/drivers/codata.c)2
-rw-r--r--src/mame/drivers/coinmstr.c10
-rw-r--r--src/mame/drivers/coinmvga.c10
-rw-r--r--src/mame/drivers/coleco.c (renamed from src/mess/drivers/coleco.c)99
-rw-r--r--src/mame/drivers/combatsc.c2
-rw-r--r--src/mame/drivers/comebaby.c2
-rw-r--r--src/mame/drivers/commando.c16
-rw-r--r--src/mame/drivers/compgolf.c4
-rw-r--r--src/mame/drivers/compis.c (renamed from src/mess/drivers/compis.c)4
-rw-r--r--src/mame/drivers/compucolor.c (renamed from src/mess/drivers/compucolor.c)24
-rw-r--r--src/mame/drivers/comquest.c (renamed from src/mess/drivers/comquest.c)2
-rw-r--r--src/mame/drivers/comx35.c (renamed from src/mess/drivers/comx35.c)4
-rw-r--r--src/mame/drivers/concept.c (renamed from src/mess/drivers/concept.c)0
-rw-r--r--src/mame/drivers/contra.c20
-rw-r--r--src/mame/drivers/coolpool.c6
-rw-r--r--src/mame/drivers/coolridr.c77
-rw-r--r--src/mame/drivers/cop01.c6
-rw-r--r--src/mame/drivers/cops.c6
-rw-r--r--src/mame/drivers/copsnrob.c2
-rw-r--r--src/mame/drivers/corona.c4
-rw-r--r--src/mame/drivers/cortex.c (renamed from src/mess/drivers/cortex.c)2
-rw-r--r--src/mame/drivers/cosmic.c32
-rw-r--r--src/mame/drivers/cosmicos.c (renamed from src/mess/drivers/cosmicos.c)2
-rw-r--r--src/mame/drivers/cp1.c (renamed from src/mess/drivers/cp1.c)2
-rw-r--r--src/mame/drivers/cps1.c439
-rw-r--r--src/mame/drivers/cps2.c631
-rw-r--r--src/mame/drivers/cps3.c84
-rw-r--r--src/mame/drivers/craft.c (renamed from src/mess/drivers/craft.c)14
-rw-r--r--src/mame/drivers/crbaloon.c4
-rw-r--r--src/mame/drivers/crgolf.c12
-rw-r--r--src/mame/drivers/crimfght.c261
-rw-r--r--src/mame/drivers/crospang.c6
-rw-r--r--src/mame/drivers/crshrace.c4
-rw-r--r--src/mame/drivers/crvision.c (renamed from src/mess/drivers/crvision.c)4
-rw-r--r--src/mame/drivers/crystal.c6
-rw-r--r--src/mame/drivers/csc.c (renamed from src/mess/drivers/csc.c)2
-rw-r--r--src/mame/drivers/cshooter.c4
-rw-r--r--src/mame/drivers/csplayh5.c116
-rw-r--r--src/mame/drivers/cswat.c2
-rw-r--r--src/mame/drivers/ct486.c (renamed from src/mess/drivers/ct486.c)0
-rw-r--r--src/mame/drivers/cubo.c18
-rw-r--r--src/mame/drivers/cultures.c2
-rw-r--r--src/mame/drivers/cupidon.c14
-rw-r--r--src/mame/drivers/cv1k.c6
-rw-r--r--src/mame/drivers/cvicny.c (renamed from src/mess/drivers/cvicny.c)2
-rw-r--r--src/mame/drivers/cvs.c50
-rw-r--r--src/mame/drivers/cxhumax.c (renamed from src/mess/drivers/cxhumax.c)2
-rw-r--r--src/mame/drivers/cybertnk.c2
-rw-r--r--src/mame/drivers/cybiko.c (renamed from src/mess/drivers/cybiko.c)46
-rw-r--r--src/mame/drivers/cyclemb.c4
-rw-r--r--src/mame/drivers/czk80.c (renamed from src/mess/drivers/czk80.c)2
-rw-r--r--src/mame/drivers/d6800.c (renamed from src/mess/drivers/d6800.c)0
-rw-r--r--src/mame/drivers/d6809.c (renamed from src/mess/drivers/d6809.c)2
-rw-r--r--src/mame/drivers/d9final.c2
-rw-r--r--src/mame/drivers/dacholer.c6
-rw-r--r--src/mame/drivers/dai.c (renamed from src/mess/drivers/dai.c)0
-rw-r--r--src/mame/drivers/dai3wksi.c31
-rw-r--r--src/mame/drivers/darius.c10
-rw-r--r--src/mame/drivers/darkmist.c2
-rw-r--r--src/mame/drivers/darkseal.c10
-rw-r--r--src/mame/drivers/daruma.c169
-rw-r--r--src/mame/drivers/dassault.c12
-rw-r--r--src/mame/drivers/dblcrown.c2
-rw-r--r--src/mame/drivers/dblewing.c2
-rw-r--r--src/mame/drivers/dbz.c6
-rw-r--r--src/mame/drivers/dccons.c (renamed from src/mess/drivers/dccons.c)10
-rw-r--r--src/mame/drivers/dcheese.c18
-rw-r--r--src/mame/drivers/dcon.c4
-rw-r--r--src/mame/drivers/dct11em.c (renamed from src/mess/drivers/dct11em.c)2
-rw-r--r--src/mame/drivers/dday.c4
-rw-r--r--src/mame/drivers/ddayjlc.c4
-rw-r--r--src/mame/drivers/ddealer.c5
-rw-r--r--src/mame/drivers/ddenlovr.c1065
-rw-r--r--src/mame/drivers/ddragon.c46
-rw-r--r--src/mame/drivers/ddragon3.c34
-rw-r--r--src/mame/drivers/ddribble.c4
-rw-r--r--src/mame/drivers/ddz.c2
-rw-r--r--src/mame/drivers/de_2.c34
-rw-r--r--src/mame/drivers/de_3.c92
-rw-r--r--src/mame/drivers/de_3b.c52
-rw-r--r--src/mame/drivers/deadang.c64
-rw-r--r--src/mame/drivers/dec0.c104
-rw-r--r--src/mame/drivers/dec8.c46
-rw-r--r--src/mame/drivers/deco156.c14
-rw-r--r--src/mame/drivers/deco32.c441
-rw-r--r--src/mame/drivers/deco_ld.c10
-rw-r--r--src/mame/drivers/deco_mlc.c4
-rw-r--r--src/mame/drivers/decocass.c10
-rw-r--r--src/mame/drivers/dectalk.c (renamed from src/mess/drivers/dectalk.c)2
-rw-r--r--src/mame/drivers/decwritr.c384
-rw-r--r--src/mame/drivers/deniam.c8
-rw-r--r--src/mame/drivers/deshoros.c2
-rw-r--r--src/mame/drivers/destroyr.c86
-rw-r--r--src/mame/drivers/dfruit.c2
-rw-r--r--src/mame/drivers/dgn_beta.c (renamed from src/mess/drivers/dgn_beta.c)2
-rw-r--r--src/mame/drivers/dgpix.c12
-rw-r--r--src/mame/drivers/dietgo.c8
-rw-r--r--src/mame/drivers/digel804.c (renamed from src/mess/drivers/digel804.c)4
-rw-r--r--src/mame/drivers/dim68k.c (renamed from src/mess/drivers/dim68k.c)2
-rw-r--r--src/mame/drivers/discoboy.c4
-rw-r--r--src/mame/drivers/diverboy.c3
-rw-r--r--src/mame/drivers/djboy.c6
-rw-r--r--src/mame/drivers/djmain.c21
-rw-r--r--src/mame/drivers/dkong.c74
-rw-r--r--src/mame/drivers/dlair.c36
-rw-r--r--src/mame/drivers/dlair2.c30
-rw-r--r--src/mame/drivers/dm7000.c (renamed from src/mess/drivers/dm7000.c)6
-rw-r--r--src/mame/drivers/dmndrby.c4
-rw-r--r--src/mame/drivers/dms5000.c (renamed from src/mess/drivers/dms5000.c)2
-rw-r--r--src/mame/drivers/dms86.c (renamed from src/mess/drivers/dms86.c)2
-rw-r--r--src/mame/drivers/dmv.c (renamed from src/mess/drivers/dmv.c)2
-rw-r--r--src/mame/drivers/docastle.c30
-rw-r--r--src/mame/drivers/dogfgt.c6
-rw-r--r--src/mame/drivers/dolphunk.c (renamed from src/mess/drivers/dolphunk.c)0
-rw-r--r--src/mame/drivers/dominob.c5
-rw-r--r--src/mame/drivers/dooyong.c44
-rw-r--r--src/mame/drivers/dorachan.c48
-rw-r--r--src/mame/drivers/dotrikun.c4
-rw-r--r--src/mame/drivers/dps1.c (renamed from src/mess/drivers/dps1.c)2
-rw-r--r--src/mame/drivers/dragon.c (renamed from src/mess/drivers/dragon.c)0
-rw-r--r--src/mame/drivers/dragrace.c2
-rw-r--r--src/mame/drivers/dreambal.c2
-rw-r--r--src/mame/drivers/dreamwld.c24
-rw-r--r--src/mame/drivers/drgnmst.c2
-rw-r--r--src/mame/drivers/dribling.c6
-rw-r--r--src/mame/drivers/drmicro.c2
-rw-r--r--src/mame/drivers/drtomy.c5
-rw-r--r--src/mame/drivers/drw80pkr.c4
-rw-r--r--src/mame/drivers/dsb46.c (renamed from src/mess/drivers/dsb46.c)2
-rw-r--r--src/mame/drivers/dual68.c (renamed from src/mess/drivers/dual68.c)2
-rw-r--r--src/mame/drivers/dunhuang.c2
-rw-r--r--src/mame/drivers/dvk_kcgd.c384
-rw-r--r--src/mame/drivers/dvk_ksm.c (renamed from src/mess/drivers/dvk_ksm.c)14
-rw-r--r--src/mame/drivers/dwarfd.c12
-rw-r--r--src/mame/drivers/dynadice.c14
-rw-r--r--src/mame/drivers/dynax.c144
-rw-r--r--src/mame/drivers/dynduke.c17
-rw-r--r--src/mame/drivers/eacc.c (renamed from src/mess/drivers/eacc.c)2
-rw-r--r--src/mame/drivers/ec184x.c (renamed from src/mess/drivers/ec184x.c)57
-rw-r--r--src/mame/drivers/ec65.c (renamed from src/mess/drivers/ec65.c)4
-rw-r--r--src/mame/drivers/ecoinf1.c18
-rw-r--r--src/mame/drivers/ecoinf2.c20
-rw-r--r--src/mame/drivers/ecoinf3.c24
-rw-r--r--src/mame/drivers/ecoinfr.c2
-rw-r--r--src/mame/drivers/egghunt.c2
-rw-r--r--src/mame/drivers/einstein.c (renamed from src/mess/drivers/einstein.c)2
-rw-r--r--src/mame/drivers/elecbowl.c (renamed from src/mess/drivers/elecbowl.c)6
-rw-r--r--src/mame/drivers/electra.c2
-rw-r--r--src/mame/drivers/electron.c (renamed from src/mess/drivers/electron.c)57
-rw-r--r--src/mame/drivers/elekscmp.c (renamed from src/mess/drivers/elekscmp.c)2
-rw-r--r--src/mame/drivers/elf.c (renamed from src/mess/drivers/elf.c)2
-rw-r--r--src/mame/drivers/elwro800.c (renamed from src/mess/drivers/elwro800.c)0
-rw-r--r--src/mame/drivers/embargo.c2
-rw-r--r--src/mame/drivers/enigma2.c61
-rw-r--r--src/mame/drivers/enmirage.c (renamed from src/mess/drivers/mirage.c)2
-rw-r--r--src/mame/drivers/eolith.c38
-rw-r--r--src/mame/drivers/eolith16.c2
-rw-r--r--src/mame/drivers/ep64.c (renamed from src/mess/drivers/ep64.c)6
-rw-r--r--src/mame/drivers/epos.c18
-rw-r--r--src/mame/drivers/eprom.c8
-rw-r--r--src/mame/drivers/equites.c16
-rw-r--r--src/mame/drivers/ertictac.c8
-rw-r--r--src/mame/drivers/esd16.c30
-rw-r--r--src/mame/drivers/esh.c6
-rw-r--r--src/mame/drivers/espial.c6
-rw-r--r--src/mame/drivers/esq1.c (renamed from src/mess/drivers/esq1.c)6
-rw-r--r--src/mame/drivers/esq5505.c (renamed from src/mess/drivers/esq5505.c)16
-rw-r--r--src/mame/drivers/esqasr.c (renamed from src/mess/drivers/esqasr.c)4
-rw-r--r--src/mame/drivers/esqkt.c (renamed from src/mess/drivers/esqkt.c)2
-rw-r--r--src/mame/drivers/esqmr.c (renamed from src/mess/drivers/esqmr.c)4
-rw-r--r--src/mame/drivers/esripsys.c6
-rw-r--r--src/mame/drivers/et3400.c (renamed from src/mess/drivers/et3400.c)2
-rw-r--r--src/mame/drivers/eti660.c350
-rw-r--r--src/mame/drivers/ettrivia.c2
-rw-r--r--src/mame/drivers/europc.c (renamed from src/mess/drivers/europc.c)2
-rw-r--r--src/mame/drivers/evmbug.c (renamed from src/mess/drivers/evmbug.c)2
-rw-r--r--src/mame/drivers/excali64.c (renamed from src/mess/drivers/excali64.c)2
-rw-r--r--src/mame/drivers/exedexes.c4
-rw-r--r--src/mame/drivers/exelv.c (renamed from src/mess/drivers/exelv.c)28
-rw-r--r--src/mame/drivers/exerion.c6
-rw-r--r--src/mame/drivers/exidy.c46
-rw-r--r--src/mame/drivers/exidyttl.c6
-rw-r--r--src/mame/drivers/exp85.c (renamed from src/mess/drivers/exp85.c)0
-rw-r--r--src/mame/drivers/expro02.c46
-rw-r--r--src/mame/drivers/exprraid.c14
-rw-r--r--src/mame/drivers/extrema.c20
-rw-r--r--src/mame/drivers/exzisus.c6
-rw-r--r--src/mame/drivers/f-32.c4
-rw-r--r--src/mame/drivers/f1gp.c6
-rw-r--r--src/mame/drivers/famibox.c2
-rw-r--r--src/mame/drivers/fantland.c10
-rw-r--r--src/mame/drivers/fanucs15.c (renamed from src/mess/drivers/fanucs15.c)2
-rw-r--r--src/mame/drivers/fanucspmg.c (renamed from src/mess/drivers/fanucspmg.c)4
-rw-r--r--src/mame/drivers/fastfred.c16
-rw-r--r--src/mame/drivers/fastlane.c2
-rw-r--r--src/mame/drivers/fb01.c (renamed from src/mess/drivers/fb01.c)2
-rw-r--r--src/mame/drivers/fc100.c (renamed from src/mess/drivers/fc100.c)2
-rw-r--r--src/mame/drivers/fcombat.c2
-rw-r--r--src/mame/drivers/fcrash.c86
-rw-r--r--src/mame/drivers/fgoal.c4
-rw-r--r--src/mame/drivers/fidelz80.c (renamed from src/mess/drivers/fidelz80.c)12
-rw-r--r--src/mame/drivers/finalizr.c4
-rw-r--r--src/mame/drivers/fireball.c2
-rw-r--r--src/mame/drivers/firebeat.c1066
-rw-r--r--src/mame/drivers/firetrap.c8
-rw-r--r--src/mame/drivers/fitfight.c8
-rw-r--r--src/mame/drivers/fk1.c (renamed from src/mess/drivers/fk1.c)2
-rw-r--r--src/mame/drivers/flicker.c2
-rw-r--r--src/mame/drivers/flipjack.c2
-rw-r--r--src/mame/drivers/flkatck.c6
-rw-r--r--src/mame/drivers/flower.c4
-rw-r--r--src/mame/drivers/flstory.c12
-rw-r--r--src/mame/drivers/flyball.c4
-rw-r--r--src/mame/drivers/fm7.c (renamed from src/mess/drivers/fm7.c)29
-rw-r--r--src/mame/drivers/fmtowns.c (renamed from src/mess/drivers/fmtowns.c)24
-rw-r--r--src/mame/drivers/foodf.c8
-rw-r--r--src/mame/drivers/force68k.c606
-rw-r--r--src/mame/drivers/forte2.c2
-rw-r--r--src/mame/drivers/fortecar.c2
-rw-r--r--src/mame/drivers/fp1100.c (renamed from src/mess/drivers/fp1100.c)2
-rw-r--r--src/mame/drivers/fp200.c (renamed from src/mess/drivers/fp200.c)2
-rw-r--r--src/mame/drivers/fp6000.c (renamed from src/mess/drivers/fp6000.c)2
-rw-r--r--src/mame/drivers/freekick.c30
-rw-r--r--src/mame/drivers/fresh.c2
-rw-r--r--src/mame/drivers/fromanc2.c6
-rw-r--r--src/mame/drivers/fromance.c16
-rw-r--r--src/mame/drivers/fruitpc.c4
-rw-r--r--src/mame/drivers/ft68m.c (renamed from src/mess/drivers/ft68m.c)2
-rw-r--r--src/mame/drivers/fungames.c4
-rw-r--r--src/mame/drivers/funkball.c2
-rw-r--r--src/mame/drivers/funkybee.c8
-rw-r--r--src/mame/drivers/funkyjet.c8
-rw-r--r--src/mame/drivers/funworld.c28
-rw-r--r--src/mame/drivers/funybubl.c4
-rw-r--r--src/mame/drivers/fuukifg2.c6
-rw-r--r--src/mame/drivers/fuukifg3.c19
-rw-r--r--src/mame/drivers/g627.c6
-rw-r--r--src/mame/drivers/gaelco.c12
-rw-r--r--src/mame/drivers/gaelco2.c44
-rw-r--r--src/mame/drivers/gaelco3d.c14
-rw-r--r--src/mame/drivers/gaiden.c30
-rw-r--r--src/mame/drivers/gal3.c4
-rw-r--r--src/mame/drivers/galaga.c58
-rw-r--r--src/mame/drivers/galastrm.c2
-rw-r--r--src/mame/drivers/galaxi.c5
-rw-r--r--src/mame/drivers/galaxia.c34
-rw-r--r--src/mame/drivers/galaxian.c494
-rw-r--r--src/mame/drivers/galaxold.c126
-rw-r--r--src/mame/drivers/galaxy.c (renamed from src/mess/drivers/galaxy.c)0
-rw-r--r--src/mame/drivers/galeb.c (renamed from src/mess/drivers/galeb.c)0
-rw-r--r--src/mame/drivers/galgame.c2
-rw-r--r--src/mame/drivers/galivan.c22
-rw-r--r--src/mame/drivers/galpani2.c24
-rw-r--r--src/mame/drivers/galpani3.c8
-rw-r--r--src/mame/drivers/galpanic.c9
-rw-r--r--src/mame/drivers/galspnbl.c4
-rw-r--r--src/mame/drivers/gamate.c (renamed from src/mess/drivers/gamate.c)14
-rw-r--r--src/mame/drivers/gambl186.c4
-rw-r--r--src/mame/drivers/gamecom.c (renamed from src/mess/drivers/gamecom.c)2
-rw-r--r--src/mame/drivers/gamecstl.c4
-rw-r--r--src/mame/drivers/gameking.c (renamed from src/mess/drivers/gameking.c)5
-rw-r--r--src/mame/drivers/gameplan.c16
-rw-r--r--src/mame/drivers/gamepock.c (renamed from src/mess/drivers/gamepock.c)0
-rw-r--r--src/mame/drivers/gammagic.c4
-rw-r--r--src/mame/drivers/gamtor.c2
-rw-r--r--src/mame/drivers/gaplus.c18
-rw-r--r--src/mame/drivers/gb.c (renamed from src/mess/drivers/gb.c)43
-rw-r--r--src/mame/drivers/gba.c (renamed from src/mess/drivers/gba.c)6
-rw-r--r--src/mame/drivers/gberet.c8
-rw-r--r--src/mame/drivers/gcpinbal.c2
-rw-r--r--src/mame/drivers/gei.c276
-rw-r--r--src/mame/drivers/geneve.c (renamed from src/mess/drivers/geneve.c)106
-rw-r--r--src/mame/drivers/geniusiq.c (renamed from src/mess/drivers/geniusiq.c)16
-rw-r--r--src/mame/drivers/genpc.c (renamed from src/mess/drivers/genpc.c)2
-rw-r--r--src/mame/drivers/ggconnie.c2
-rw-r--r--src/mame/drivers/ghosteo.c6
-rw-r--r--src/mame/drivers/gijoe.c8
-rw-r--r--src/mame/drivers/gimix.c (renamed from src/mess/drivers/gimix.c)2
-rw-r--r--src/mame/drivers/ginganin.c4
-rw-r--r--src/mame/drivers/gizmondo.c (renamed from src/mess/drivers/gizmondo.c)2
-rw-r--r--src/mame/drivers/gladiatr.c12
-rw-r--r--src/mame/drivers/glasgow.c (renamed from src/mess/drivers/glasgow.c)137
-rw-r--r--src/mame/drivers/glass.c6
-rw-r--r--src/mame/drivers/globalfr.c44
-rw-r--r--src/mame/drivers/globalvr.c18
-rw-r--r--src/mame/drivers/gluck2.c2
-rw-r--r--src/mame/drivers/gmaster.c (renamed from src/mess/drivers/gmaster.c)2
-rw-r--r--src/mame/drivers/gng.c22
-rw-r--r--src/mame/drivers/go2000.c3
-rw-r--r--src/mame/drivers/goal92.c2
-rw-r--r--src/mame/drivers/goindol.c8
-rw-r--r--src/mame/drivers/goldngam.c4
-rw-r--r--src/mame/drivers/goldnpkr.c40
-rw-r--r--src/mame/drivers/goldstar.c207
-rw-r--r--src/mame/drivers/good.c3
-rw-r--r--src/mame/drivers/goodejan.c6
-rw-r--r--src/mame/drivers/gotcha.c4
-rw-r--r--src/mame/drivers/gottlieb.c24
-rw-r--r--src/mame/drivers/gotya.c4
-rw-r--r--src/mame/drivers/gp2x.c (renamed from src/mess/drivers/gp2x.c)2
-rw-r--r--src/mame/drivers/gp32.c (renamed from src/mess/drivers/gp32.c)2
-rw-r--r--src/mame/drivers/gp_1.c20
-rw-r--r--src/mame/drivers/gp_2.c30
-rw-r--r--src/mame/drivers/gpworld.c2
-rw-r--r--src/mame/drivers/gradius3.c91
-rw-r--r--src/mame/drivers/grchamp.c2
-rw-r--r--src/mame/drivers/grfd2301.c (renamed from src/mess/drivers/grfd2301.c)2
-rw-r--r--src/mame/drivers/gridlee.c2
-rw-r--r--src/mame/drivers/groundfx.c2
-rw-r--r--src/mame/drivers/gstream.c6
-rw-r--r--src/mame/drivers/gstriker.c18
-rw-r--r--src/mame/drivers/gsword.c6
-rw-r--r--src/mame/drivers/gticlub.c18
-rw-r--r--src/mame/drivers/gts1.c42
-rw-r--r--src/mame/drivers/gts3.c32
-rw-r--r--src/mame/drivers/gts3a.c70
-rw-r--r--src/mame/drivers/gts80.c44
-rw-r--r--src/mame/drivers/gts80a.c44
-rw-r--r--src/mame/drivers/gts80b.c50
-rw-r--r--src/mame/drivers/guab.c2
-rw-r--r--src/mame/drivers/gumbo.c14
-rw-r--r--src/mame/drivers/gundealr.c12
-rw-r--r--src/mame/drivers/gunpey.c2
-rw-r--r--src/mame/drivers/gunsmoke.c391
-rw-r--r--src/mame/drivers/gyruss.c8
-rw-r--r--src/mame/drivers/h19.c (renamed from src/mess/drivers/h19.c)2
-rw-r--r--src/mame/drivers/h8.c (renamed from src/mess/drivers/h8.c)2
-rw-r--r--src/mame/drivers/h89.c (renamed from src/mess/drivers/h89.c)2
-rw-r--r--src/mame/drivers/halleys.c10
-rw-r--r--src/mame/drivers/hanaawas.c2
-rw-r--r--src/mame/drivers/hankin.c10
-rw-r--r--src/mame/drivers/harddriv.c210
-rw-r--r--src/mame/drivers/harriet.c (renamed from src/mess/drivers/harriet.c)2
-rw-r--r--src/mame/drivers/hazelgr.c2
-rw-r--r--src/mame/drivers/hcastle.c10
-rw-r--r--src/mame/drivers/headonb.c2
-rw-r--r--src/mame/drivers/hec2hrp.c (renamed from src/mess/drivers/hec2hrp.c)14
-rw-r--r--src/mame/drivers/hh_cop400.c (renamed from src/mess/drivers/hh_cop400.c)14
-rw-r--r--src/mame/drivers/hh_hmcs40.c (renamed from src/mess/drivers/hh_hmcs40.c)824
-rw-r--r--src/mame/drivers/hh_melps4.c (renamed from src/mess/drivers/hh_melps4.c)161
-rw-r--r--src/mame/drivers/hh_pic16.c (renamed from src/mess/drivers/hh_pic16.c)4
-rw-r--r--src/mame/drivers/hh_sm510.c (renamed from src/mess/drivers/hh_sm510.c)10
-rw-r--r--src/mame/drivers/hh_tms1k.c (renamed from src/mess/drivers/hh_tms1k.c)101
-rw-r--r--src/mame/drivers/hh_ucom4.c (renamed from src/mess/drivers/hh_ucom4.c)223
-rw-r--r--src/mame/drivers/hideseek.c2
-rw-r--r--src/mame/drivers/higemaru.c2
-rw-r--r--src/mame/drivers/highvdeo.c4
-rw-r--r--src/mame/drivers/hikaru.c12
-rw-r--r--src/mame/drivers/himesiki.c2
-rw-r--r--src/mame/drivers/hitme.c12
-rw-r--r--src/mame/drivers/hitpoker.c2
-rw-r--r--src/mame/drivers/hk68v10.c383
-rw-r--r--src/mame/drivers/hnayayoi.c6
-rw-r--r--src/mame/drivers/hng64.c89
-rw-r--r--src/mame/drivers/holeland.c8
-rw-r--r--src/mame/drivers/homedata.c40
-rw-r--r--src/mame/drivers/homelab.c (renamed from src/mess/drivers/homelab.c)10
-rw-r--r--src/mame/drivers/homerun.c6
-rw-r--r--src/mame/drivers/homez80.c (renamed from src/mess/drivers/homez80.c)2
-rw-r--r--src/mame/drivers/horizon.c (renamed from src/mess/drivers/horizon.c)4
-rw-r--r--src/mame/drivers/hornet.c18
-rw-r--r--src/mame/drivers/hotblock.c2
-rw-r--r--src/mame/drivers/hotstuff.c2
-rw-r--r--src/mame/drivers/hp16500.c (renamed from src/mess/drivers/hp16500.c)8
-rw-r--r--src/mame/drivers/hp48.c (renamed from src/mess/drivers/hp48.c)2
-rw-r--r--src/mame/drivers/hp49gp.c (renamed from src/mess/drivers/hp49gp.c)2
-rw-r--r--src/mame/drivers/hp64k.c (renamed from src/mess/drivers/hp64k.c)620
-rw-r--r--src/mame/drivers/hp9845.c (renamed from src/mess/drivers/hp9845.c)14
-rw-r--r--src/mame/drivers/hp9k.c (renamed from src/mess/drivers/hp9k.c)2
-rw-r--r--src/mame/drivers/hp9k_3xx.c (renamed from src/mess/drivers/hp9k_3xx.c)14
-rw-r--r--src/mame/drivers/hp_ipc.c358
-rw-r--r--src/mame/drivers/hprot1.c (renamed from src/mess/drivers/hprot1.c)6
-rw-r--r--src/mame/drivers/hpz80unk.c (renamed from src/mess/drivers/hpz80unk.c)2
-rw-r--r--src/mame/drivers/hshavoc.c2
-rw-r--r--src/mame/drivers/ht68k.c (renamed from src/mess/drivers/ht68k.c)2
-rw-r--r--src/mame/drivers/huebler.c (renamed from src/mess/drivers/huebler.c)2
-rw-r--r--src/mame/drivers/hunter2.c (renamed from src/mess/drivers/hunter2.c)2
-rw-r--r--src/mame/drivers/hvyunit.c8
-rw-r--r--src/mame/drivers/hx20.c (renamed from src/mess/drivers/hx20.c)4
-rw-r--r--src/mame/drivers/hyhoo.c4
-rw-r--r--src/mame/drivers/hyperscan.c (renamed from src/mess/drivers/hyperscan.c)2
-rw-r--r--src/mame/drivers/hyperspt.c10
-rw-r--r--src/mame/drivers/hyprduel.c6
-rw-r--r--src/mame/drivers/i7000.c415
-rw-r--r--src/mame/drivers/ibm6580.c (renamed from src/mess/drivers/ibm6580.c)2
-rw-r--r--src/mame/drivers/ibmpc.c (renamed from src/mess/drivers/ibmpc.c)2
-rw-r--r--src/mame/drivers/ibmpcjr.c (renamed from src/mess/drivers/ibmpcjr.c)4
-rw-r--r--src/mame/drivers/icatel.c (renamed from src/mess/drivers/icatel.c)28
-rw-r--r--src/mame/drivers/icecold.c4
-rw-r--r--src/mame/drivers/ichiban.c2
-rw-r--r--src/mame/drivers/ie15.c (renamed from src/mess/drivers/ie15.c)15
-rw-r--r--src/mame/drivers/if800.c (renamed from src/mess/drivers/if800.c)2
-rw-r--r--src/mame/drivers/igs009.c4
-rw-r--r--src/mame/drivers/igs011.c34
-rw-r--r--src/mame/drivers/igs017.c669
-rw-r--r--src/mame/drivers/igs_fear.c169
-rw-r--r--src/mame/drivers/igs_m027.c690
-rw-r--r--src/mame/drivers/igs_m036.c12
-rw-r--r--src/mame/drivers/igspc.c4
-rw-r--r--src/mame/drivers/igspoker.c104
-rw-r--r--src/mame/drivers/ikki.c4
-rw-r--r--src/mame/drivers/imds.c (renamed from src/mess/drivers/imds.c)2
-rw-r--r--src/mame/drivers/imds2.c (renamed from src/mess/drivers/imds2.c)48
-rw-r--r--src/mame/drivers/imolagp.c4
-rw-r--r--src/mame/drivers/imsai.c (renamed from src/mess/drivers/imsai.c)2
-rw-r--r--src/mame/drivers/inder.c20
-rw-r--r--src/mame/drivers/indiana.c (renamed from src/mess/drivers/indiana.c)2
-rw-r--r--src/mame/drivers/instruct.c (renamed from src/mess/drivers/instruct.c)0
-rw-r--r--src/mame/drivers/interact.c (renamed from src/mess/drivers/interact.c)4
-rw-r--r--src/mame/drivers/intrscti.c2
-rw-r--r--src/mame/drivers/intv.c (renamed from src/mess/drivers/intv.c)12
-rw-r--r--src/mame/drivers/inufuku.c4
-rw-r--r--src/mame/drivers/invqix.c2
-rw-r--r--src/mame/drivers/ip20.c (renamed from src/mess/drivers/ip20.c)2
-rw-r--r--src/mame/drivers/ip22.c (renamed from src/mess/drivers/ip22.c)6
-rw-r--r--src/mame/drivers/ipc.c (renamed from src/mess/drivers/ipc.c)4
-rw-r--r--src/mame/drivers/ipds.c (renamed from src/mess/drivers/ipds.c)2
-rw-r--r--src/mame/drivers/iq151.c (renamed from src/mess/drivers/iq151.c)0
-rw-r--r--src/mame/drivers/iqblock.c4
-rw-r--r--src/mame/drivers/irisha.c (renamed from src/mess/drivers/irisha.c)2
-rw-r--r--src/mame/drivers/ironhors.c6
-rw-r--r--src/mame/drivers/isbc.c (renamed from src/mess/drivers/isbc.c)8
-rw-r--r--src/mame/drivers/iskr103x.c (renamed from src/mess/drivers/iskr103x.c)2
-rw-r--r--src/mame/drivers/istellar.c2
-rw-r--r--src/mame/drivers/iteagle.c14
-rw-r--r--src/mame/drivers/itech32.c2
-rw-r--r--src/mame/drivers/itech8.c27
-rw-r--r--src/mame/drivers/itgambl2.c34
-rw-r--r--src/mame/drivers/itgambl3.c12
-rw-r--r--src/mame/drivers/itgamble.c20
-rw-r--r--src/mame/drivers/itt3030.c (renamed from src/mess/drivers/itt3030.c)2
-rw-r--r--src/mame/drivers/jack.c43
-rw-r--r--src/mame/drivers/jackie.c2
-rw-r--r--src/mame/drivers/jackpool.c2
-rw-r--r--src/mame/drivers/jade.c (renamed from src/mess/drivers/jade.c)2
-rw-r--r--src/mame/drivers/jaguar.c49
-rw-r--r--src/mame/drivers/jailbrek.c6
-rw-r--r--src/mame/drivers/jalmah.c12
-rw-r--r--src/mame/drivers/jangou.c16
-rw-r--r--src/mame/drivers/jankenmn.c2
-rw-r--r--src/mame/drivers/jantotsu.c2
-rw-r--r--src/mame/drivers/jchan.c4
-rw-r--r--src/mame/drivers/jclub2.c8
-rw-r--r--src/mame/drivers/jedi.c2
-rw-r--r--src/mame/drivers/jeutel.c4
-rw-r--r--src/mame/drivers/jokrwild.c2
-rw-r--r--src/mame/drivers/jollyjgr.c53
-rw-r--r--src/mame/drivers/jongkyo.c2
-rw-r--r--src/mame/drivers/jonos.c (renamed from src/mess/drivers/jonos.c)2
-rw-r--r--src/mame/drivers/joystand.c687
-rw-r--r--src/mame/drivers/jp.c20
-rw-r--r--src/mame/drivers/jpmimpct.c36
-rw-r--r--src/mame/drivers/jpmimpctsw.c2
-rw-r--r--src/mame/drivers/jpmmps.c416
-rw-r--r--src/mame/drivers/jpms80.c48
-rw-r--r--src/mame/drivers/jpmsru.c24
-rw-r--r--src/mame/drivers/jpmsys5.c2
-rw-r--r--src/mame/drivers/jpmsys5sw.c2
-rw-r--r--src/mame/drivers/jpmsys7.c24
-rw-r--r--src/mame/drivers/jr100.c (renamed from src/mess/drivers/jr100.c)0
-rw-r--r--src/mame/drivers/jr200.c (renamed from src/mess/drivers/jr200.c)18
-rw-r--r--src/mame/drivers/jrpacman.c4
-rw-r--r--src/mame/drivers/jtc.c (renamed from src/mess/drivers/jtc.c)8
-rw-r--r--src/mame/drivers/jubilee.c2
-rw-r--r--src/mame/drivers/juicebox.c (renamed from src/mess/drivers/juicebox.c)0
-rw-r--r--src/mame/drivers/junior.c (renamed from src/mess/drivers/junior.c)2
-rw-r--r--src/mame/drivers/junofrst.c9
-rw-r--r--src/mame/drivers/jupace.c (renamed from src/mess/drivers/ace.c)130
-rw-r--r--src/mame/drivers/jupiter.c (renamed from src/mess/drivers/jupiter.c)4
-rw-r--r--src/mame/drivers/jvh.c4
-rw-r--r--src/mame/drivers/k1003.c (renamed from src/mess/drivers/k1003.c)2
-rw-r--r--src/mame/drivers/k8915.c (renamed from src/mess/drivers/k8915.c)2
-rw-r--r--src/mame/drivers/kaneko16.c184
-rw-r--r--src/mame/drivers/kangaroo.c10
-rw-r--r--src/mame/drivers/karnov.c18
-rw-r--r--src/mame/drivers/kas89.c67
-rw-r--r--src/mame/drivers/kaypro.c (renamed from src/mess/drivers/kaypro.c)14
-rw-r--r--src/mame/drivers/kc.c (renamed from src/mess/drivers/kc.c)8
-rw-r--r--src/mame/drivers/kchamp.c10
-rw-r--r--src/mame/drivers/kenseim.c2
-rw-r--r--src/mame/drivers/kickgoal.c4
-rw-r--r--src/mame/drivers/kim1.c (renamed from src/mess/drivers/kim1.c)2
-rw-r--r--src/mame/drivers/kingdrby.c8
-rw-r--r--src/mame/drivers/kingobox.c10
-rw-r--r--src/mame/drivers/kinst.c22
-rw-r--r--src/mame/drivers/kissproto.c2
-rw-r--r--src/mame/drivers/kncljoe.c6
-rw-r--r--src/mame/drivers/koftball.c2
-rw-r--r--src/mame/drivers/koikoi.c2
-rw-r--r--src/mame/drivers/konamigq.c87
-rw-r--r--src/mame/drivers/konamigv.c32
-rw-r--r--src/mame/drivers/konamigx.c192
-rw-r--r--src/mame/drivers/konamim2.c24
-rw-r--r--src/mame/drivers/konendev.c323
-rw-r--r--src/mame/drivers/konin.c (renamed from src/mess/drivers/konin.c)2
-rw-r--r--src/mame/drivers/kontest.c2
-rw-r--r--src/mame/drivers/kopunch.c2
-rw-r--r--src/mame/drivers/korgm1.c (renamed from src/mess/drivers/korgm1.c)2
-rw-r--r--src/mame/drivers/kramermc.c (renamed from src/mess/drivers/kramermc.c)2
-rw-r--r--src/mame/drivers/ksayakyu.c2
-rw-r--r--src/mame/drivers/ksys573.c230
-rw-r--r--src/mame/drivers/kungfur.c2
-rw-r--r--src/mame/drivers/kurukuru.c43
-rw-r--r--src/mame/drivers/kyocera.c (renamed from src/mess/drivers/kyocera.c)4
-rw-r--r--src/mame/drivers/kyugo.c38
-rw-r--r--src/mame/drivers/labyrunr.c6
-rw-r--r--src/mame/drivers/ladybug.c16
-rw-r--r--src/mame/drivers/ladyfrog.c4
-rw-r--r--src/mame/drivers/laser3k.c (renamed from src/mess/drivers/laser3k.c)4
-rw-r--r--src/mame/drivers/laserbas.c6
-rw-r--r--src/mame/drivers/laserbat.c8
-rw-r--r--src/mame/drivers/lasso.c14
-rw-r--r--src/mame/drivers/lastbank.c2
-rw-r--r--src/mame/drivers/lastduel.c181
-rw-r--r--src/mame/drivers/lastfght.c2
-rw-r--r--src/mame/drivers/lazercmd.c6
-rw-r--r--src/mame/drivers/lbeach.c2
-rw-r--r--src/mame/drivers/lc80.c (renamed from src/mess/drivers/lc80.c)6
-rw-r--r--src/mame/drivers/lcmate2.c (renamed from src/mess/drivers/lcmate2.c)2
-rw-r--r--src/mame/drivers/leapster.c (renamed from src/mess/drivers/leapster.c)4
-rw-r--r--src/mame/drivers/legionna.c48
-rw-r--r--src/mame/drivers/leland.c2
-rw-r--r--src/mame/drivers/lemmings.c2
-rw-r--r--src/mame/drivers/lethal.c14
-rw-r--r--src/mame/drivers/lethalj.c29
-rw-r--r--src/mame/drivers/lft.c (renamed from src/mess/drivers/lft.c)4
-rw-r--r--src/mame/drivers/lg-dvd.c41
-rw-r--r--src/mame/drivers/lgp.c4
-rw-r--r--src/mame/drivers/liberate.c25
-rw-r--r--src/mame/drivers/liberatr.c4
-rw-r--r--src/mame/drivers/limenko.c10
-rw-r--r--src/mame/drivers/lindbergh.c165
-rw-r--r--src/mame/drivers/lisa.c (renamed from src/mess/drivers/lisa.c)10
-rw-r--r--src/mame/drivers/littlerb.c2
-rw-r--r--src/mame/drivers/lkage.c14
-rw-r--r--src/mame/drivers/llc.c (renamed from src/mess/drivers/llc.c)2
-rw-r--r--src/mame/drivers/lockon.c4
-rw-r--r--src/mame/drivers/lola8a.c (renamed from src/mess/drivers/lola8a.c)19
-rw-r--r--src/mame/drivers/looping.c8
-rw-r--r--src/mame/drivers/lordgun.c6
-rw-r--r--src/mame/drivers/lsasquad.c6
-rw-r--r--src/mame/drivers/ltcasino.c6
-rw-r--r--src/mame/drivers/ltd.c14
-rw-r--r--src/mame/drivers/luckgrln.c4
-rw-r--r--src/mame/drivers/lucky74.c4
-rw-r--r--src/mame/drivers/lviv.c (renamed from src/mess/drivers/lviv.c)0
-rw-r--r--src/mame/drivers/lwings.c104
-rw-r--r--src/mame/drivers/lynx.c (renamed from src/mess/drivers/lynx.c)4
-rw-r--r--src/mame/drivers/m10.c14
-rw-r--r--src/mame/drivers/m107.c79
-rw-r--r--src/mame/drivers/m14.c2
-rw-r--r--src/mame/drivers/m20.c (renamed from src/mess/drivers/m20.c)10
-rw-r--r--src/mame/drivers/m24.c (renamed from src/mess/drivers/m24.c)4
-rw-r--r--src/mame/drivers/m5.c (renamed from src/mess/drivers/m5.c)0
-rw-r--r--src/mame/drivers/m52.c20
-rw-r--r--src/mame/drivers/m57.c12
-rw-r--r--src/mame/drivers/m58.c27
-rw-r--r--src/mame/drivers/m62.c92
-rw-r--r--src/mame/drivers/m63.c8
-rw-r--r--src/mame/drivers/m6805evs.c (renamed from src/mess/drivers/m6805evs.c)2
-rw-r--r--src/mame/drivers/m72.c1542
-rw-r--r--src/mame/drivers/m79152pc.c (renamed from src/mess/drivers/m79152pc.c)2
-rw-r--r--src/mame/drivers/m79amb.c2
-rw-r--r--src/mame/drivers/m90.c32
-rw-r--r--src/mame/drivers/m92.c174
-rw-r--r--src/mame/drivers/mac.c (renamed from src/mess/drivers/mac.c)52
-rw-r--r--src/mame/drivers/macpci.c (renamed from src/mess/drivers/macpci.c)2
-rw-r--r--src/mame/drivers/macrossp.c78
-rw-r--r--src/mame/drivers/macs.c10
-rw-r--r--src/mame/drivers/madalien.c6
-rw-r--r--src/mame/drivers/madmotor.c2
-rw-r--r--src/mame/drivers/magic10.c35
-rw-r--r--src/mame/drivers/magicard.c14
-rw-r--r--src/mame/drivers/magicfly.c8
-rw-r--r--src/mame/drivers/magictg.c4
-rw-r--r--src/mame/drivers/magmax.c2
-rw-r--r--src/mame/drivers/magtouch.c2
-rw-r--r--src/mame/drivers/mainevt.c88
-rw-r--r--src/mame/drivers/mainsnk.c4
-rw-r--r--src/mame/drivers/malzak.c4
-rw-r--r--src/mame/drivers/manohman.c2
-rw-r--r--src/mame/drivers/mappy.c36
-rw-r--r--src/mame/drivers/marineb.c20
-rw-r--r--src/mame/drivers/marinedt.c2
-rw-r--r--src/mame/drivers/mario.c14
-rw-r--r--src/mame/drivers/markham.c2
-rw-r--r--src/mame/drivers/mastboy.c42
-rw-r--r--src/mame/drivers/matmania.c8
-rw-r--r--src/mame/drivers/maxaflex.c2
-rw-r--r--src/mame/drivers/maygay1bsw.c2
-rw-r--r--src/mame/drivers/maygayep.c1834
-rw-r--r--src/mame/drivers/maygaysw.c20
-rw-r--r--src/mame/drivers/maygayv1.c2
-rw-r--r--src/mame/drivers/mayumi.c2
-rw-r--r--src/mame/drivers/mazerbla.c10
-rw-r--r--src/mame/drivers/mbc200.c (renamed from src/mess/drivers/mbc200.c)2
-rw-r--r--src/mame/drivers/mbc55x.c (renamed from src/mess/drivers/mbc55x.c)2
-rw-r--r--src/mame/drivers/mbdtower.c (renamed from src/mess/drivers/mbdtower.c)4
-rw-r--r--src/mame/drivers/mbee.c (renamed from src/mess/drivers/mbee.c)16
-rw-r--r--src/mame/drivers/mc10.c (renamed from src/mess/drivers/mc10.c)8
-rw-r--r--src/mame/drivers/mc1000.c (renamed from src/mess/drivers/mc1000.c)14
-rw-r--r--src/mame/drivers/mc1502.c (renamed from src/mess/drivers/mc1502.c)2
-rw-r--r--src/mame/drivers/mc80.c (renamed from src/mess/drivers/mc80.c)4
-rw-r--r--src/mame/drivers/mcatadv.c12
-rw-r--r--src/mame/drivers/mcb216.c (renamed from src/mess/drivers/mcb216.c)4
-rw-r--r--src/mame/drivers/mccpm.c (renamed from src/mess/drivers/mccpm.c)2
-rw-r--r--src/mame/drivers/mcr.c66
-rw-r--r--src/mame/drivers/mcr3.c27
-rw-r--r--src/mame/drivers/mcr68.c36
-rw-r--r--src/mame/drivers/meadows.c6
-rw-r--r--src/mame/drivers/meadwttl.c8
-rw-r--r--src/mame/drivers/mediagx.c6
-rw-r--r--src/mame/drivers/megadriv.c (renamed from src/mess/drivers/megadriv.c)66
-rw-r--r--src/mame/drivers/megadrvb.c2
-rw-r--r--src/mame/drivers/megaphx.c2
-rw-r--r--src/mame/drivers/megaplay.c2
-rw-r--r--src/mame/drivers/megasys1.c132
-rw-r--r--src/mame/drivers/megatech.c138
-rw-r--r--src/mame/drivers/megazone.c10
-rw-r--r--src/mame/drivers/meijinsn.c2
-rw-r--r--src/mame/drivers/mekd2.c (renamed from src/mess/drivers/mekd2.c)0
-rw-r--r--src/mame/drivers/mephisto.c511
-rw-r--r--src/mame/drivers/mephistp.c115
-rw-r--r--src/mame/drivers/merit.c164
-rw-r--r--src/mame/drivers/meritm.c248
-rw-r--r--src/mame/drivers/mermaid.c6
-rw-r--r--src/mame/drivers/mes.c (renamed from src/mess/drivers/mes.c)2
-rw-r--r--src/mame/drivers/metalmx.c2
-rw-r--r--src/mame/drivers/metlclsh.c2
-rw-r--r--src/mame/drivers/metro.c80
-rw-r--r--src/mame/drivers/mexico86.c10
-rw-r--r--src/mame/drivers/meyc8080.c8
-rw-r--r--src/mame/drivers/mgames.c2
-rw-r--r--src/mame/drivers/mgavegas.c6
-rw-r--r--src/mame/drivers/mgolf.c2
-rw-r--r--src/mame/drivers/mhavoc.c12
-rw-r--r--src/mame/drivers/mice.c (renamed from src/mess/drivers/mice.c)2
-rw-r--r--src/mame/drivers/micral.c292
-rw-r--r--src/mame/drivers/micro3d.c13
-rw-r--r--src/mame/drivers/microdec.c (renamed from src/mess/drivers/microdec.c)4
-rw-r--r--src/mame/drivers/microkit.c (renamed from src/mess/drivers/microkit.c)2
-rw-r--r--src/mame/drivers/micronic.c (renamed from src/mess/drivers/micronic.c)2
-rw-r--r--src/mame/drivers/micropin.c4
-rw-r--r--src/mame/drivers/microtan.c (renamed from src/mess/drivers/microtan.c)0
-rw-r--r--src/mame/drivers/microvsn.c (renamed from src/mess/drivers/microvsn.c)2
-rw-r--r--src/mame/drivers/midqslvr.c10
-rw-r--r--src/mame/drivers/midtunit.c55
-rw-r--r--src/mame/drivers/midvunit.c42
-rw-r--r--src/mame/drivers/midwunit.c41
-rw-r--r--src/mame/drivers/midxunit.c72
-rw-r--r--src/mame/drivers/midyunit.c232
-rw-r--r--src/mame/drivers/midzeus.c26
-rw-r--r--src/mame/drivers/mikie.c6
-rw-r--r--src/mame/drivers/mikro80.c (renamed from src/mess/drivers/mikro80.c)0
-rw-r--r--src/mame/drivers/mikromik.c (renamed from src/mess/drivers/mikromik.c)6
-rw-r--r--src/mame/drivers/mikrosha.c (renamed from src/mess/drivers/mikrosha.c)0
-rw-r--r--src/mame/drivers/mil4000.c2
-rw-r--r--src/mame/drivers/mini2440.c (renamed from src/mess/drivers/mini2440.c)0
-rw-r--r--src/mame/drivers/miniboy7.c4
-rw-r--r--src/mame/drivers/minicom.c (renamed from src/mess/drivers/minicom.c)4
-rw-r--r--src/mame/drivers/minivadr.c24
-rw-r--r--src/mame/drivers/mirage.c4
-rw-r--r--src/mame/drivers/mirax.c4
-rw-r--r--src/mame/drivers/missb2.c4
-rw-r--r--src/mame/drivers/missile.c18
-rw-r--r--src/mame/drivers/mitchell.c58
-rw-r--r--src/mame/drivers/mits680b.c (renamed from src/mess/drivers/mits680b.c)2
-rw-r--r--src/mame/drivers/mjkjidai.c2
-rw-r--r--src/mame/drivers/mjsister.c2
-rw-r--r--src/mame/drivers/mk1.c (renamed from src/mess/drivers/mk1.c)2
-rw-r--r--src/mame/drivers/mk14.c (renamed from src/mess/drivers/mk14.c)2
-rw-r--r--src/mame/drivers/mk2.c (renamed from src/mess/drivers/mk2.c)0
-rw-r--r--src/mame/drivers/mk85.c (renamed from src/mess/drivers/mk85.c)6
-rw-r--r--src/mame/drivers/mk90.c (renamed from src/mess/drivers/mk90.c)6
-rw-r--r--src/mame/drivers/mkit09.c (renamed from src/mess/drivers/mkit09.c)47
-rw-r--r--src/mame/drivers/mlanding.c2
-rw-r--r--src/mame/drivers/mmagic.c317
-rw-r--r--src/mame/drivers/mmd1.c (renamed from src/mess/drivers/mmd1.c)4
-rw-r--r--src/mame/drivers/mmm.c2
-rw-r--r--src/mame/drivers/mmodular.c (renamed from src/mess/drivers/mmodular.c)60
-rw-r--r--src/mame/drivers/mod8.c (renamed from src/mess/drivers/mod8.c)2
-rw-r--r--src/mame/drivers/model1.c16
-rw-r--r--src/mame/drivers/model2.c132
-rw-r--r--src/mame/drivers/model3.c119
-rw-r--r--src/mame/drivers/modellot.c (renamed from src/mess/drivers/modellot.c)2
-rw-r--r--src/mame/drivers/mogura.c2
-rw-r--r--src/mame/drivers/mole.c12
-rw-r--r--src/mame/drivers/molecular.c (renamed from src/mess/drivers/molecular.c)2
-rw-r--r--src/mame/drivers/momoko.c2
-rw-r--r--src/mame/drivers/monacogp.c4
-rw-r--r--src/mame/drivers/monty.c (renamed from src/mess/drivers/monty.c)4
-rw-r--r--src/mame/drivers/monzagp.c466
-rw-r--r--src/mame/drivers/moo.c18
-rw-r--r--src/mame/drivers/mosaic.c6
-rw-r--r--src/mame/drivers/mouser.c4
-rw-r--r--src/mame/drivers/mpf1.c (renamed from src/mess/drivers/mpf1.c)2
-rw-r--r--src/mame/drivers/mps1230.c162
-rw-r--r--src/mame/drivers/mpu12wbk.c2
-rw-r--r--src/mame/drivers/mpu2.c4
-rw-r--r--src/mame/drivers/mpu3.c2
-rw-r--r--src/mame/drivers/mpu4.c26
-rw-r--r--src/mame/drivers/mpu4avan.c2
-rw-r--r--src/mame/drivers/mpu4bwb.c2
-rw-r--r--src/mame/drivers/mpu4concept.c2
-rw-r--r--src/mame/drivers/mpu4crystal.c204
-rw-r--r--src/mame/drivers/mpu4dealem.c2
-rw-r--r--src/mame/drivers/mpu4empire.c164
-rw-r--r--src/mame/drivers/mpu4mdm.c90
-rw-r--r--src/mame/drivers/mpu4misc.c28
-rw-r--r--src/mame/drivers/mpu4mod2sw.c4
-rw-r--r--src/mame/drivers/mpu4mod4yam.c6
-rw-r--r--src/mame/drivers/mpu4plasma.c16
-rw-r--r--src/mame/drivers/mpu4sw.c66
-rw-r--r--src/mame/drivers/mpu4union.c66
-rw-r--r--src/mame/drivers/mpu4vid.c4
-rw-r--r--src/mame/drivers/mpu5.c1260
-rw-r--r--src/mame/drivers/mpz80.c (renamed from src/mess/drivers/mpz80.c)2
-rw-r--r--src/mame/drivers/mquake.c2
-rw-r--r--src/mame/drivers/mrdo.c14
-rw-r--r--src/mame/drivers/mrflea.c2
-rw-r--r--src/mame/drivers/mrgame.c10
-rw-r--r--src/mame/drivers/mrjong.c6
-rw-r--r--src/mame/drivers/ms0515.c (renamed from src/mess/drivers/ms0515.c)2
-rw-r--r--src/mame/drivers/ms32.c34
-rw-r--r--src/mame/drivers/ms9540.c (renamed from src/mess/drivers/ms9540.c)2
-rw-r--r--src/mame/drivers/msbc1.c (renamed from src/mess/drivers/msbc1.c)2
-rw-r--r--src/mame/drivers/msisaac.c2
-rw-r--r--src/mame/drivers/mstation.c (renamed from src/mess/drivers/mstation.c)2
-rw-r--r--src/mame/drivers/msx.c (renamed from src/mess/drivers/msx.c)133
-rw-r--r--src/mame/drivers/mt735.c71
-rw-r--r--src/mame/drivers/mtx.c (renamed from src/mess/drivers/mtx.c)0
-rw-r--r--src/mame/drivers/mugsmash.c2
-rw-r--r--src/mame/drivers/multfish.c228
-rw-r--r--src/mame/drivers/multfish_boot.c248
-rw-r--r--src/mame/drivers/multfish_ref.c88
-rw-r--r--src/mame/drivers/multi16.c (renamed from src/mess/drivers/multi16.c)2
-rw-r--r--src/mame/drivers/multi8.c (renamed from src/mess/drivers/multi8.c)14
-rw-r--r--src/mame/drivers/munchmo.c4
-rw-r--r--src/mame/drivers/murogem.c8
-rw-r--r--src/mame/drivers/murogmbl.c2
-rw-r--r--src/mame/drivers/mustache.c2
-rw-r--r--src/mame/drivers/mvme350.c257
-rw-r--r--src/mame/drivers/mw18w.c4
-rw-r--r--src/mame/drivers/mw8080bw.c54
-rw-r--r--src/mame/drivers/mwarr.c3
-rw-r--r--src/mame/drivers/mwsub.c2
-rw-r--r--src/mame/drivers/mx2178.c (renamed from src/mess/drivers/mx2178.c)2
-rw-r--r--src/mame/drivers/myb3k.c (renamed from src/mess/drivers/myb3k.c)2
-rw-r--r--src/mame/drivers/mycom.c (renamed from src/mess/drivers/mycom.c)4
-rw-r--r--src/mame/drivers/mystston.c6
-rw-r--r--src/mame/drivers/mystwarr.c60
-rw-r--r--src/mame/drivers/myvision.c (renamed from src/mess/drivers/myvision.c)0
-rw-r--r--src/mame/drivers/mz2000.c (renamed from src/mess/drivers/mz2000.c)20
-rw-r--r--src/mame/drivers/mz2500.c (renamed from src/mess/drivers/mz2500.c)6
-rw-r--r--src/mame/drivers/mz3500.c (renamed from src/mess/drivers/mz3500.c)16
-rw-r--r--src/mame/drivers/mz6500.c (renamed from src/mess/drivers/mz6500.c)2
-rw-r--r--src/mame/drivers/mz700.c (renamed from src/mess/drivers/mz700.c)4
-rw-r--r--src/mame/drivers/mz80.c (renamed from src/mess/drivers/mz80.c)2
-rw-r--r--src/mame/drivers/mzr8105.c369
-rw-r--r--src/mame/drivers/n64.c (renamed from src/mess/drivers/n64.c)33
-rw-r--r--src/mame/drivers/n8080.c24
-rw-r--r--src/mame/drivers/nakajies.c (renamed from src/mess/drivers/nakajies.c)14
-rw-r--r--src/mame/drivers/namcofl.c10
-rw-r--r--src/mame/drivers/namcona1.c80
-rw-r--r--src/mame/drivers/namconb1.c66
-rw-r--r--src/mame/drivers/namcond1.c30
-rw-r--r--src/mame/drivers/namcops2.c1073
-rw-r--r--src/mame/drivers/namcos1.c87
-rw-r--r--src/mame/drivers/namcos10.c347
-rw-r--r--src/mame/drivers/namcos11.c78
-rw-r--r--src/mame/drivers/namcos12.c458
-rw-r--r--src/mame/drivers/namcos2.c38
-rw-r--r--src/mame/drivers/namcos21.c22
-rw-r--r--src/mame/drivers/namcos22.c60
-rw-r--r--src/mame/drivers/namcos23.c235
-rw-r--r--src/mame/drivers/namcos86.c96
-rw-r--r--src/mame/drivers/nanos.c (renamed from src/mess/drivers/nanos.c)2
-rw-r--r--src/mame/drivers/naomi.c320
-rw-r--r--src/mame/drivers/nascom1.c (renamed from src/mess/drivers/nascom1.c)6
-rw-r--r--src/mame/drivers/naughtyb.c28
-rw-r--r--src/mame/drivers/nbmj8688.c78
-rw-r--r--src/mame/drivers/nbmj8891.c86
-rw-r--r--src/mame/drivers/nbmj8900.c4
-rw-r--r--src/mame/drivers/nbmj8991.c36
-rw-r--r--src/mame/drivers/nbmj9195.c72
-rw-r--r--src/mame/drivers/nc.c (renamed from src/mess/drivers/nc.c)2
-rw-r--r--src/mame/drivers/nemesis.c38
-rw-r--r--src/mame/drivers/neogeo.c10
-rw-r--r--src/mame/drivers/neogeo_noslot.c510
-rw-r--r--src/mame/drivers/neoprint.c65
-rw-r--r--src/mame/drivers/neptunp2.c2
-rw-r--r--src/mame/drivers/nes.c (renamed from src/mess/drivers/nes.c)18
-rw-r--r--src/mame/drivers/newbrain.c (renamed from src/mess/drivers/newbrain.c)8
-rw-r--r--src/mame/drivers/news.c4
-rw-r--r--src/mame/drivers/next.c (renamed from src/mess/drivers/next.c)16
-rw-r--r--src/mame/drivers/nexus3d.c8
-rw-r--r--src/mame/drivers/ng_aes.c (renamed from src/mess/drivers/ng_aes.c)4
-rw-r--r--src/mame/drivers/ngen.c (renamed from src/mess/drivers/ngen.c)110
-rw-r--r--src/mame/drivers/ngp.c (renamed from src/mess/drivers/ngp.c)4
-rw-r--r--src/mame/drivers/nightgal.c14
-rw-r--r--src/mame/drivers/ninjakd2.c24
-rw-r--r--src/mame/drivers/ninjaw.c8
-rw-r--r--src/mame/drivers/nitedrvr.c2
-rw-r--r--src/mame/drivers/niyanpai.c10
-rw-r--r--src/mame/drivers/nmg5.c55
-rw-r--r--src/mame/drivers/nmk16.c110
-rw-r--r--src/mame/drivers/norautp.c67
-rw-r--r--src/mame/drivers/nova2001.c30
-rw-r--r--src/mame/drivers/nsm.c2
-rw-r--r--src/mame/drivers/nsmpoker.c2
-rw-r--r--src/mame/drivers/nss.c26
-rw-r--r--src/mame/drivers/nwk-tr.c12
-rw-r--r--src/mame/drivers/nycaptor.c10
-rw-r--r--src/mame/drivers/nyny.c31
-rw-r--r--src/mame/drivers/ob68k1a.c (renamed from src/mess/drivers/ob68k1a.c)2
-rw-r--r--src/mame/drivers/octopus.c (renamed from src/mess/drivers/octopus.c)2
-rw-r--r--src/mame/drivers/odyssey2.c (renamed from src/mess/drivers/odyssey2.c)6
-rw-r--r--src/mame/drivers/ohmygod.c4
-rw-r--r--src/mame/drivers/ojankohs.c10
-rw-r--r--src/mame/drivers/okean240.c (renamed from src/mess/drivers/okean240.c)6
-rw-r--r--src/mame/drivers/olibochu.c3
-rw-r--r--src/mame/drivers/omegrace.c6
-rw-r--r--src/mame/drivers/ondra.c (renamed from src/mess/drivers/ondra.c)0
-rw-r--r--src/mame/drivers/oneshot.c6
-rw-r--r--src/mame/drivers/onetwo.c4
-rw-r--r--src/mame/drivers/onyx.c (renamed from src/mess/drivers/onyx.c)2
-rw-r--r--src/mame/drivers/opwolf.c10
-rw-r--r--src/mame/drivers/orao.c (renamed from src/mess/drivers/orao.c)46
-rw-r--r--src/mame/drivers/orbit.c2
-rw-r--r--src/mame/drivers/oric.c (renamed from src/mess/drivers/oric.c)25
-rw-r--r--src/mame/drivers/orion.c (renamed from src/mess/drivers/orion.c)0
-rw-r--r--src/mame/drivers/osbexec.c (renamed from src/mess/drivers/osbexec.c)2
-rw-r--r--src/mame/drivers/osborne1.c (renamed from src/mess/drivers/osborne1.c)0
-rw-r--r--src/mame/drivers/osi.c (renamed from src/mess/drivers/osi.c)10
-rw-r--r--src/mame/drivers/othello.c2
-rw-r--r--src/mame/drivers/othunder.c209
-rw-r--r--src/mame/drivers/overdriv.c6
-rw-r--r--src/mame/drivers/p112.c (renamed from src/mess/drivers/p112.c)2
-rw-r--r--src/mame/drivers/p2000t.c (renamed from src/mess/drivers/p2000t.c)0
-rw-r--r--src/mame/drivers/p8k.c (renamed from src/mess/drivers/p8k.c)4
-rw-r--r--src/mame/drivers/pachifev.c2
-rw-r--r--src/mame/drivers/pacland.c10
-rw-r--r--src/mame/drivers/pacman.c243
-rw-r--r--src/mame/drivers/palm.c (renamed from src/mess/drivers/palm.c)34
-rw-r--r--src/mame/drivers/palm_dbg.inc (renamed from src/mess/drivers/palm_dbg.inc)0
-rw-r--r--src/mame/drivers/palmz22.c (renamed from src/mess/drivers/palmz22.c)2
-rw-r--r--src/mame/drivers/pandoras.c2
-rw-r--r--src/mame/drivers/pangofun.c2
-rw-r--r--src/mame/drivers/panicr.c4
-rw-r--r--src/mame/drivers/paradise.c22
-rw-r--r--src/mame/drivers/paranoia.c56
-rw-r--r--src/mame/drivers/parodius.c8
-rw-r--r--src/mame/drivers/partner.c (renamed from src/mess/drivers/partner.c)2
-rw-r--r--src/mame/drivers/pasha2.c2
-rw-r--r--src/mame/drivers/paso1600.c (renamed from src/mess/drivers/paso1600.c)2
-rw-r--r--src/mame/drivers/pasogo.c (renamed from src/mess/drivers/pasogo.c)2
-rw-r--r--src/mame/drivers/pasopia.c (renamed from src/mess/drivers/pasopia.c)2
-rw-r--r--src/mame/drivers/pasopia7.c (renamed from src/mess/drivers/pasopia7.c)16
-rw-r--r--src/mame/drivers/pass.c2
-rw-r--r--src/mame/drivers/pastelg.c6
-rw-r--r--src/mame/drivers/pb1000.c (renamed from src/mess/drivers/pb1000.c)6
-rw-r--r--src/mame/drivers/pbaction.c10
-rw-r--r--src/mame/drivers/pc.c (renamed from src/mess/drivers/pc.c)28
-rw-r--r--src/mame/drivers/pc100.c (renamed from src/mess/drivers/pc100.c)25
-rw-r--r--src/mame/drivers/pc1500.c (renamed from src/mess/drivers/pc1500.c)2
-rw-r--r--src/mame/drivers/pc1512.c (renamed from src/mess/drivers/pc1512.c)16
-rw-r--r--src/mame/drivers/pc2000.c (renamed from src/mess/drivers/pc2000.c)32
-rw-r--r--src/mame/drivers/pc4.c (renamed from src/mess/drivers/pc4.c)2
-rw-r--r--src/mame/drivers/pc6001.c (renamed from src/mess/drivers/pc6001.c)12
-rw-r--r--src/mame/drivers/pc8001.c (renamed from src/mess/drivers/pc8001.c)4
-rw-r--r--src/mame/drivers/pc8401a.c (renamed from src/mess/drivers/pc8401a.c)6
-rw-r--r--src/mame/drivers/pc8801.c (renamed from src/mess/drivers/pc8801.c)36
-rw-r--r--src/mame/drivers/pc88va.c (renamed from src/mess/drivers/pc88va.c)6
-rw-r--r--src/mame/drivers/pc9801.c (renamed from src/mess/drivers/pc9801.c)47
-rw-r--r--src/mame/drivers/pcat_dyn.c4
-rw-r--r--src/mame/drivers/pcat_nit.c12
-rw-r--r--src/mame/drivers/pcd.c (renamed from src/mess/drivers/pcd.c)292
-rw-r--r--src/mame/drivers/pce.c (renamed from src/mess/drivers/pce.c)26
-rw-r--r--src/mame/drivers/pce220.c (renamed from src/mess/drivers/pce220.c)4
-rw-r--r--src/mame/drivers/pcfx.c (renamed from src/mess/drivers/pcfx.c)4
-rw-r--r--src/mame/drivers/pcktgal.c14
-rw-r--r--src/mame/drivers/pcm.c (renamed from src/mess/drivers/pcm.c)0
-rw-r--r--src/mame/drivers/pcw.c (renamed from src/mess/drivers/pcw.c)10
-rw-r--r--src/mame/drivers/pcw16.c (renamed from src/mess/drivers/pcw16.c)2
-rw-r--r--src/mame/drivers/pcxt.c4
-rw-r--r--src/mame/drivers/pda600.c (renamed from src/mess/drivers/pda600.c)2
-rw-r--r--src/mame/drivers/pdp1.c (renamed from src/mess/drivers/pdp1.c)38
-rw-r--r--src/mame/drivers/pdp11.c (renamed from src/mess/drivers/pdp11.c)8
-rw-r--r--src/mame/drivers/pecom.c (renamed from src/mess/drivers/pecom.c)0
-rw-r--r--src/mame/drivers/pegasus.c (renamed from src/mess/drivers/pegasus.c)4
-rw-r--r--src/mame/drivers/pencil2.c (renamed from src/mess/drivers/pencil2.c)0
-rw-r--r--src/mame/drivers/pengadvb.c2
-rw-r--r--src/mame/drivers/pengo.c16
-rw-r--r--src/mame/drivers/pentagon.c (renamed from src/mess/drivers/pentagon.c)0
-rw-r--r--src/mame/drivers/peoplepc.c (renamed from src/mess/drivers/peoplepc.c)2
-rw-r--r--src/mame/drivers/peplus.c483
-rw-r--r--src/mame/drivers/pes.c (renamed from src/mess/drivers/pes.c)2
-rw-r--r--src/mame/drivers/pet.c (renamed from src/mess/drivers/pet.c)95
-rw-r--r--src/mame/drivers/peyper.c20
-rw-r--r--src/mame/drivers/pgm.c421
-rw-r--r--src/mame/drivers/pgm2.c16
-rw-r--r--src/mame/drivers/phc25.c (renamed from src/mess/drivers/phc25.c)4
-rw-r--r--src/mame/drivers/phoenix.c155
-rw-r--r--src/mame/drivers/photon2.c58
-rw-r--r--src/mame/drivers/photoply.c2
-rw-r--r--src/mame/drivers/phunsy.c (renamed from src/mess/drivers/phunsy.c)2
-rw-r--r--src/mame/drivers/piggypas.c244
-rw-r--r--src/mame/drivers/pimps.c (renamed from src/mess/drivers/pimps.c)2
-rw-r--r--src/mame/drivers/pinball2k.c8
-rw-r--r--src/mame/drivers/pingpong.c2
-rw-r--r--src/mame/drivers/pinkiri8.c12
-rw-r--r--src/mame/drivers/pipbug.c (renamed from src/mess/drivers/pipbug.c)2
-rw-r--r--src/mame/drivers/pipedrm.c12
-rw-r--r--src/mame/drivers/pipeline.c2
-rw-r--r--src/mame/drivers/pirates.c4
-rw-r--r--src/mame/drivers/pitagjr.c (renamed from src/mess/drivers/pitagjr.c)2
-rw-r--r--src/mame/drivers/pitnrun.c4
-rw-r--r--src/mame/drivers/pk8000.c (renamed from src/mess/drivers/pk8000.c)2
-rw-r--r--src/mame/drivers/pk8020.c (renamed from src/mess/drivers/pk8020.c)0
-rw-r--r--src/mame/drivers/pkscram.c2
-rw-r--r--src/mame/drivers/pktgaldx.c6
-rw-r--r--src/mame/drivers/plan80.c (renamed from src/mess/drivers/plan80.c)2
-rw-r--r--src/mame/drivers/play_1.c10
-rw-r--r--src/mame/drivers/play_2.c16
-rw-r--r--src/mame/drivers/play_3.c4
-rw-r--r--src/mame/drivers/play_5.c22
-rw-r--r--src/mame/drivers/playch10.c12
-rw-r--r--src/mame/drivers/playmark.c22
-rw-r--r--src/mame/drivers/plus4.c (renamed from src/mess/drivers/plus4.c)18
-rw-r--r--src/mame/drivers/pluto5.c228
-rw-r--r--src/mame/drivers/plygonet.c21
-rw-r--r--src/mame/drivers/pm68k.c (renamed from src/mess/drivers/pm68k.c)2
-rw-r--r--src/mame/drivers/pmd85.c (renamed from src/mess/drivers/pmd85.c)35
-rw-r--r--src/mame/drivers/pmi80.c (renamed from src/mess/drivers/pmi80.c)2
-rw-r--r--src/mame/drivers/pntnpuzl.c2
-rw-r--r--src/mame/drivers/pocketc.c (renamed from src/mess/drivers/pocketc.c)28
-rw-r--r--src/mame/drivers/pockstat.c (renamed from src/mess/drivers/pockstat.c)6
-rw-r--r--src/mame/drivers/poisk1.c (renamed from src/mess/drivers/poisk1.c)0
-rw-r--r--src/mame/drivers/pokemini.c (renamed from src/mess/drivers/pokemini.c)2
-rw-r--r--src/mame/drivers/poker72.c2
-rw-r--r--src/mame/drivers/polepos.c2
-rw-r--r--src/mame/drivers/poly.c (renamed from src/mess/drivers/poly.c)2
-rw-r--r--src/mame/drivers/poly88.c (renamed from src/mess/drivers/poly88.c)2
-rw-r--r--src/mame/drivers/poly880.c (renamed from src/mess/drivers/poly880.c)2
-rw-r--r--src/mame/drivers/pong.c8
-rw-r--r--src/mame/drivers/poolshrk.c4
-rw-r--r--src/mame/drivers/pooyan.c6
-rw-r--r--src/mame/drivers/popeye.c10
-rw-r--r--src/mame/drivers/popobear.c2
-rw-r--r--src/mame/drivers/popper.c2
-rw-r--r--src/mame/drivers/portfoli.c (renamed from src/mess/drivers/portfoli.c)2
-rw-r--r--src/mame/drivers/portrait.c4
-rw-r--r--src/mame/drivers/potgoldu.c2
-rw-r--r--src/mame/drivers/powerbal.c6
-rw-r--r--src/mame/drivers/powerins.c8
-rw-r--r--src/mame/drivers/pp01.c (renamed from src/mess/drivers/pp01.c)2
-rw-r--r--src/mame/drivers/ppmast93.c2
-rw-r--r--src/mame/drivers/prehisle.c16
-rw-r--r--src/mame/drivers/prestige.c (renamed from src/mess/drivers/prestige.c)40
-rw-r--r--src/mame/drivers/primo.c (renamed from src/mess/drivers/primo.c)2
-rw-r--r--src/mame/drivers/pro80.c (renamed from src/mess/drivers/pro80.c)2
-rw-r--r--src/mame/drivers/proconn.c274
-rw-r--r--src/mame/drivers/prof180x.c (renamed from src/mess/drivers/prof180x.c)4
-rw-r--r--src/mame/drivers/prof80.c (renamed from src/mess/drivers/prof80.c)2
-rw-r--r--src/mame/drivers/progolf.c4
-rw-r--r--src/mame/drivers/proteus3.c408
-rw-r--r--src/mame/drivers/psattack.c2
-rw-r--r--src/mame/drivers/pse.c6
-rw-r--r--src/mame/drivers/psikyo.c30
-rw-r--r--src/mame/drivers/psikyo4.c16
-rw-r--r--src/mame/drivers/psikyosh.c40
-rw-r--r--src/mame/drivers/psion.c (renamed from src/mess/drivers/psion.c)22
-rw-r--r--src/mame/drivers/psx.c (renamed from src/mess/drivers/psx.c)9
-rw-r--r--src/mame/drivers/psychic5.c6
-rw-r--r--src/mame/drivers/pt68k4.c (renamed from src/mess/drivers/pt68k4.c)4
-rw-r--r--src/mame/drivers/ptcsol.c (renamed from src/mess/drivers/ptcsol.c)0
-rw-r--r--src/mame/drivers/pturn.c2
-rw-r--r--src/mame/drivers/puckpkmn.c2
-rw-r--r--src/mame/drivers/pulsar.c (renamed from src/mess/drivers/pulsar.c)2
-rw-r--r--src/mame/drivers/pv1000.c (renamed from src/mess/drivers/pv1000.c)13
-rw-r--r--src/mame/drivers/pv2000.c (renamed from src/mess/drivers/pv2000.c)2
-rw-r--r--src/mame/drivers/pv9234.c (renamed from src/mess/drivers/pv9234.c)2
-rw-r--r--src/mame/drivers/pve500.c (renamed from src/mess/drivers/pve500.c)2
-rw-r--r--src/mame/drivers/px4.c (renamed from src/mess/drivers/px4.c)0
-rw-r--r--src/mame/drivers/px8.c (renamed from src/mess/drivers/px8.c)2
-rw-r--r--src/mame/drivers/pyl601.c (renamed from src/mess/drivers/pyl601.c)0
-rw-r--r--src/mame/drivers/pyson.c6
-rw-r--r--src/mame/drivers/pzletime.c3
-rw-r--r--src/mame/drivers/qix.c198
-rw-r--r--src/mame/drivers/ql.c (renamed from src/mess/drivers/ql.c)22
-rw-r--r--src/mame/drivers/qtsbc.c (renamed from src/mess/drivers/qtsbc.c)2
-rw-r--r--src/mame/drivers/quakeat.c2
-rw-r--r--src/mame/drivers/quantum.c24
-rw-r--r--src/mame/drivers/quasar.c4
-rw-r--r--src/mame/drivers/queen.c2
-rw-r--r--src/mame/drivers/quizdna.c6
-rw-r--r--src/mame/drivers/quizo.c4
-rw-r--r--src/mame/drivers/quizpani.c2
-rw-r--r--src/mame/drivers/quizpun2.c4
-rw-r--r--src/mame/drivers/quizshow.c2
-rw-r--r--src/mame/drivers/qx10.c (renamed from src/mess/drivers/qx10.c)2
-rw-r--r--src/mame/drivers/r2dtank.c26
-rw-r--r--src/mame/drivers/r2dx_v33.c8
-rw-r--r--src/mame/drivers/rabbit.c2
-rw-r--r--src/mame/drivers/radio86.c (renamed from src/mess/drivers/radio86.c)0
-rw-r--r--src/mame/drivers/raiden.c14
-rw-r--r--src/mame/drivers/raiden2.c72
-rw-r--r--src/mame/drivers/rainbow.c3248
-rw-r--r--src/mame/drivers/rallyx.c34
-rw-r--r--src/mame/drivers/rambo.c227
-rw-r--r--src/mame/drivers/rampart.c6
-rw-r--r--src/mame/drivers/ramtek.c89
-rw-r--r--src/mame/drivers/rastan.c14
-rw-r--r--src/mame/drivers/rastersp.c2
-rw-r--r--src/mame/drivers/ravens.c (renamed from src/mess/drivers/ravens.c)4
-rw-r--r--src/mame/drivers/rbisland.c977
-rw-r--r--src/mame/drivers/rbmk.c2
-rw-r--r--src/mame/drivers/rc759.c (renamed from src/mess/drivers/rc759.c)20
-rw-r--r--src/mame/drivers/rcorsair.c2
-rw-r--r--src/mame/drivers/rd100.c115
-rw-r--r--src/mame/drivers/rd110.c (renamed from src/mess/drivers/rd110.c)2
-rw-r--r--src/mame/drivers/re900.c4
-rw-r--r--src/mame/drivers/realbrk.c14
-rw-r--r--src/mame/drivers/redalert.c8
-rw-r--r--src/mame/drivers/redclash.c12
-rw-r--r--src/mame/drivers/renegade.c6
-rw-r--r--src/mame/drivers/replicator.c727
-rw-r--r--src/mame/drivers/retofinv.c6
-rw-r--r--src/mame/drivers/rex6000.c (renamed from src/mess/drivers/rex6000.c)4
-rw-r--r--src/mame/drivers/rgum.c2
-rw-r--r--src/mame/drivers/riscpc.c (renamed from src/mess/drivers/riscpc.c)14
-rw-r--r--src/mame/drivers/rltennis.c2
-rw-r--r--src/mame/drivers/rm380z.c (renamed from src/mess/drivers/rm380z.c)2
-rw-r--r--src/mame/drivers/rmhaihai.c10
-rw-r--r--src/mame/drivers/rmnimbus.c (renamed from src/mess/drivers/rmnimbus.c)0
-rw-r--r--src/mame/drivers/rmt32.c (renamed from src/mess/drivers/rmt32.c)4
-rw-r--r--src/mame/drivers/rockrage.c8
-rw-r--r--src/mame/drivers/rocnrope.c17
-rw-r--r--src/mame/drivers/rohga.c32
-rw-r--r--src/mame/drivers/rollerg.c4
-rw-r--r--src/mame/drivers/rollext.c366
-rw-r--r--src/mame/drivers/rollrace.c6
-rw-r--r--src/mame/drivers/rotaryf.c2
-rw-r--r--src/mame/drivers/roul.c2
-rw-r--r--src/mame/drivers/route16.c80
-rw-r--r--src/mame/drivers/rowamet.c2
-rw-r--r--src/mame/drivers/royalmah.c26
-rw-r--r--src/mame/drivers/rpunch.c12
-rw-r--r--src/mame/drivers/rsc55.c (renamed from src/mess/drivers/rsc55.c)2
-rw-r--r--src/mame/drivers/rt1715.c (renamed from src/mess/drivers/rt1715.c)6
-rw-r--r--src/mame/drivers/runaway.c4
-rw-r--r--src/mame/drivers/rungun.c12
-rw-r--r--src/mame/drivers/rvoice.c (renamed from src/mess/drivers/rvoice.c)2
-rw-r--r--src/mame/drivers/rx78.c (renamed from src/mess/drivers/rx78.c)0
-rw-r--r--src/mame/drivers/s11.c26
-rw-r--r--src/mame/drivers/s11a.c20
-rw-r--r--src/mame/drivers/s11b.c94
-rw-r--r--src/mame/drivers/s11c.c50
-rw-r--r--src/mame/drivers/s3.c14
-rw-r--r--src/mame/drivers/s4.c34
-rw-r--r--src/mame/drivers/s6.c24
-rw-r--r--src/mame/drivers/s6a.c8
-rw-r--r--src/mame/drivers/s7.c46
-rw-r--r--src/mame/drivers/s8.c4
-rw-r--r--src/mame/drivers/s8a.c2
-rw-r--r--src/mame/drivers/s9.c18
-rw-r--r--src/mame/drivers/sacstate.c (renamed from src/mess/drivers/sacstate.c)2
-rw-r--r--src/mame/drivers/safarir.c4
-rw-r--r--src/mame/drivers/sage2.c (renamed from src/mess/drivers/sage2.c)2
-rw-r--r--src/mame/drivers/sam.c396
-rw-r--r--src/mame/drivers/samcoupe.c (renamed from src/mess/drivers/samcoupe.c)67
-rw-r--r--src/mame/drivers/sandscrp.c6
-rw-r--r--src/mame/drivers/sangho.c141
-rw-r--r--src/mame/drivers/sapi1.c (renamed from src/mess/drivers/sapi1.c)10
-rw-r--r--src/mame/drivers/saturn.c (renamed from src/mess/drivers/saturn.c)10
-rw-r--r--src/mame/drivers/sauro.c10
-rw-r--r--src/mame/drivers/savia84.c (renamed from src/mess/drivers/savia84.c)2
-rw-r--r--src/mame/drivers/savquest.c2
-rw-r--r--src/mame/drivers/sbasketb.c8
-rw-r--r--src/mame/drivers/sbc6510.c (renamed from src/mess/drivers/sbc6510.c)2
-rw-r--r--src/mame/drivers/sbowling.c4
-rw-r--r--src/mame/drivers/sbrain.c (renamed from src/mess/drivers/sbrain.c)2
-rw-r--r--src/mame/drivers/sbrkout.c8
-rw-r--r--src/mame/drivers/sbugger.c4
-rw-r--r--src/mame/drivers/sc1.c (renamed from src/mess/drivers/sc1.c)2
-rw-r--r--src/mame/drivers/sc2.c (renamed from src/mess/drivers/sc2.c)2
-rw-r--r--src/mame/drivers/scobra.c368
-rw-r--r--src/mame/drivers/scorpion.c (renamed from src/mess/drivers/scorpion.c)8
-rw-r--r--src/mame/drivers/scotrsht.c2
-rw-r--r--src/mame/drivers/scramble.c118
-rw-r--r--src/mame/drivers/scregg.c8
-rw-r--r--src/mame/drivers/scv.c (renamed from src/mess/drivers/scv.c)4
-rw-r--r--src/mame/drivers/sderby.c4
-rw-r--r--src/mame/drivers/sdk80.c (renamed from src/mess/drivers/sdk80.c)75
-rw-r--r--src/mame/drivers/sdk85.c (renamed from src/mess/drivers/sdk85.c)2
-rw-r--r--src/mame/drivers/sdk86.c (renamed from src/mess/drivers/sdk86.c)2
-rw-r--r--src/mame/drivers/seabattl.c4
-rw-r--r--src/mame/drivers/sealy.c2
-rw-r--r--src/mame/drivers/seattle.c123
-rw-r--r--src/mame/drivers/seattlecmp.c (renamed from src/mess/drivers/seattle.c)2
-rw-r--r--src/mame/drivers/segac2.c70
-rw-r--r--src/mame/drivers/segacoin.c2
-rw-r--r--src/mame/drivers/segae.c14
-rw-r--r--src/mame/drivers/segag80r.c24
-rw-r--r--src/mame/drivers/segag80v.c22
-rw-r--r--src/mame/drivers/segahang.c166
-rw-r--r--src/mame/drivers/segajw.c2
-rw-r--r--src/mame/drivers/segald.c12
-rw-r--r--src/mame/drivers/segam1.c2
-rw-r--r--src/mame/drivers/segaorun.c359
-rw-r--r--src/mame/drivers/segapico.c (renamed from src/mess/drivers/segapico.c)126
-rw-r--r--src/mame/drivers/segapm.c80
-rw-r--r--src/mame/drivers/segas16a.c231
-rw-r--r--src/mame/drivers/segas16b.c1587
-rw-r--r--src/mame/drivers/segas18.c727
-rw-r--r--src/mame/drivers/segas24.c19
-rw-r--r--src/mame/drivers/segas32.c141
-rw-r--r--src/mame/drivers/segasp.c4
-rw-r--r--src/mame/drivers/segaufo.c14
-rw-r--r--src/mame/drivers/segaxbd.c2290
-rw-r--r--src/mame/drivers/segaybd.c46
-rw-r--r--src/mame/drivers/seibuspi.c108
-rw-r--r--src/mame/drivers/seicross.c12
-rw-r--r--src/mame/drivers/selz80.c (renamed from src/mess/drivers/selz80.c)4
-rw-r--r--src/mame/drivers/sengokmj.c2
-rw-r--r--src/mame/drivers/senjyo.c40
-rw-r--r--src/mame/drivers/seta.c84
-rw-r--r--src/mame/drivers/seta2.c55
-rw-r--r--src/mame/drivers/sf.c10
-rw-r--r--src/mame/drivers/sfbonus.c16
-rw-r--r--src/mame/drivers/sfcbox.c10
-rw-r--r--src/mame/drivers/sfkick.c149
-rw-r--r--src/mame/drivers/sg1000.c (renamed from src/mess/drivers/sg1000.c)14
-rw-r--r--src/mame/drivers/sgi_ip2.c (renamed from src/mess/drivers/sgi_ip2.c)4
-rw-r--r--src/mame/drivers/sgi_ip6.c (renamed from src/mess/drivers/sgi_ip6.c)4
-rw-r--r--src/mame/drivers/sh4robot.c (renamed from src/mess/drivers/sh4robot.c)2
-rw-r--r--src/mame/drivers/shadfrce.c66
-rw-r--r--src/mame/drivers/shangha3.c10
-rw-r--r--src/mame/drivers/shanghai.c10
-rw-r--r--src/mame/drivers/shangkid.c14
-rw-r--r--src/mame/drivers/shaolins.c6
-rw-r--r--src/mame/drivers/shisen.c8
-rw-r--r--src/mame/drivers/shootout.c6
-rw-r--r--src/mame/drivers/shougi.c4
-rw-r--r--src/mame/drivers/shtzone.c2
-rw-r--r--src/mame/drivers/shuuz.c4
-rw-r--r--src/mame/drivers/sidearms.c32
-rw-r--r--src/mame/drivers/sidepckt.c6
-rw-r--r--src/mame/drivers/sigmab52.c8
-rw-r--r--src/mame/drivers/sigmab98.c4
-rw-r--r--src/mame/drivers/silkroad.c4
-rw-r--r--src/mame/drivers/silvmil.c97
-rw-r--r--src/mame/drivers/simpl156.c42
-rw-r--r--src/mame/drivers/simple_st0016.c8
-rw-r--r--src/mame/drivers/simpsons.c21
-rw-r--r--src/mame/drivers/sitcom.c (renamed from src/mess/drivers/sitcom.c)2
-rw-r--r--src/mame/drivers/skeetsht.c4
-rw-r--r--src/mame/drivers/skimaxx.c2
-rw-r--r--src/mame/drivers/skyarmy.c6
-rw-r--r--src/mame/drivers/skydiver.c2
-rw-r--r--src/mame/drivers/skyfox.c6
-rw-r--r--src/mame/drivers/skykid.c10
-rw-r--r--src/mame/drivers/skylncr.c2
-rw-r--r--src/mame/drivers/skyraid.c2
-rw-r--r--src/mame/drivers/slapfght.c40
-rw-r--r--src/mame/drivers/slapshot.c6
-rw-r--r--src/mame/drivers/slc1.c (renamed from src/mess/drivers/slc1.c)0
-rw-r--r--src/mame/drivers/sleic.c2
-rw-r--r--src/mame/drivers/slicer.c (renamed from src/mess/drivers/slicer.c)2
-rw-r--r--src/mame/drivers/sliver.c28
-rw-r--r--src/mame/drivers/slotcarn.c4
-rw-r--r--src/mame/drivers/sm1800.c (renamed from src/mess/drivers/sm1800.c)2
-rw-r--r--src/mame/drivers/smc777.c (renamed from src/mess/drivers/smc777.c)40
-rw-r--r--src/mame/drivers/sms.c (renamed from src/mess/drivers/sms.c)35
-rw-r--r--src/mame/drivers/smsmcorp.c22
-rw-r--r--src/mame/drivers/snes.c (renamed from src/mess/drivers/snes.c)4
-rw-r--r--src/mame/drivers/snesb.c12
-rw-r--r--src/mame/drivers/snk6502.c36
-rw-r--r--src/mame/drivers/snk68.c26
-rw-r--r--src/mame/drivers/snowbros.c56
-rw-r--r--src/mame/drivers/socrates.c (renamed from src/mess/drivers/socrates.c)10
-rw-r--r--src/mame/drivers/softbox.c (renamed from src/mess/drivers/softbox.c)8
-rw-r--r--src/mame/drivers/solomon.c4
-rw-r--r--src/mame/drivers/sonson.c4
-rw-r--r--src/mame/drivers/sorcerer.c (renamed from src/mess/drivers/sorcerer.c)32
-rw-r--r--src/mame/drivers/sothello.c28
-rw-r--r--src/mame/drivers/spacefb.c18
-rw-r--r--src/mame/drivers/spaceg.c2
-rw-r--r--src/mame/drivers/spbactn.c6
-rw-r--r--src/mame/drivers/spc1000.c (renamed from src/mess/drivers/spc1000.c)2
-rw-r--r--src/mame/drivers/spcforce.c42
-rw-r--r--src/mame/drivers/spdodgeb.c6
-rw-r--r--src/mame/drivers/spec128.c (renamed from src/mess/drivers/spec128.c)2
-rw-r--r--src/mame/drivers/special.c (renamed from src/mess/drivers/special.c)4
-rw-r--r--src/mame/drivers/specpls3.c (renamed from src/mess/drivers/specpls3.c)8
-rw-r--r--src/mame/drivers/spectra.c2
-rw-r--r--src/mame/drivers/spectrum.c (renamed from src/mess/drivers/spectrum.c)14
-rw-r--r--src/mame/drivers/speedatk.c2
-rw-r--r--src/mame/drivers/speedbal.c4
-rw-r--r--src/mame/drivers/speedspn.c2
-rw-r--r--src/mame/drivers/speglsht.c2
-rw-r--r--src/mame/drivers/spiders.c23
-rw-r--r--src/mame/drivers/spinb.c10
-rw-r--r--src/mame/drivers/splash.c18
-rw-r--r--src/mame/drivers/splus.c30
-rw-r--r--src/mame/drivers/spoker.c6
-rw-r--r--src/mame/drivers/spool99.c10
-rw-r--r--src/mame/drivers/sprcros2.c4
-rw-r--r--src/mame/drivers/sprint2.c20
-rw-r--r--src/mame/drivers/spy.c5
-rw-r--r--src/mame/drivers/squale.c99
-rw-r--r--src/mame/drivers/srmp2.c16
-rw-r--r--src/mame/drivers/srmp5.c2
-rw-r--r--src/mame/drivers/srmp6.c2
-rw-r--r--src/mame/drivers/srumbler.c8
-rw-r--r--src/mame/drivers/ssem.c (renamed from src/mess/drivers/ssem.c)15
-rw-r--r--src/mame/drivers/ssfindo.c6
-rw-r--r--src/mame/drivers/sshot.c4
-rw-r--r--src/mame/drivers/ssingles.c4
-rw-r--r--src/mame/drivers/sslam.c6
-rw-r--r--src/mame/drivers/ssozumo.c2
-rw-r--r--src/mame/drivers/sspeedr.c2
-rw-r--r--src/mame/drivers/ssrj.c2
-rw-r--r--src/mame/drivers/sstrangr.c38
-rw-r--r--src/mame/drivers/ssv.c62
-rw-r--r--src/mame/drivers/ssystem3.c (renamed from src/mess/drivers/ssystem3.c)90
-rw-r--r--src/mame/drivers/st_mp100.c24
-rw-r--r--src/mame/drivers/st_mp200.c44
-rw-r--r--src/mame/drivers/stactics.c2
-rw-r--r--src/mame/drivers/stadhero.c2
-rw-r--r--src/mame/drivers/starcrus.c2
-rw-r--r--src/mame/drivers/starfire.c8
-rw-r--r--src/mame/drivers/starshp1.c4
-rw-r--r--src/mame/drivers/starwars.c2
-rw-r--r--src/mame/drivers/statriv2.c36
-rw-r--r--src/mame/drivers/stellafr.c4
-rw-r--r--src/mame/drivers/stfight.c16
-rw-r--r--src/mame/drivers/stlforce.c6
-rw-r--r--src/mame/drivers/stratos.c (renamed from src/mess/drivers/stratos.c)2
-rw-r--r--src/mame/drivers/strnskil.c8
-rw-r--r--src/mame/drivers/studio2.c (renamed from src/mess/drivers/studio2.c)16
-rw-r--r--src/mame/drivers/stuntair.c2
-rw-r--r--src/mame/drivers/stv.c140
-rw-r--r--src/mame/drivers/su2000.c2
-rw-r--r--src/mame/drivers/sub.c2
-rw-r--r--src/mame/drivers/subs.c2
-rw-r--r--src/mame/drivers/subsino.c2
-rw-r--r--src/mame/drivers/subsino2.c2
-rw-r--r--src/mame/drivers/summit.c2
-rw-r--r--src/mame/drivers/sumt8035.c4
-rw-r--r--src/mame/drivers/sun1.c (renamed from src/mess/drivers/sun1.c)2
-rw-r--r--src/mame/drivers/sun2.c (renamed from src/mess/drivers/sun2.c)4
-rw-r--r--src/mame/drivers/sun3.c (renamed from src/mess/drivers/sun3.c)18
-rw-r--r--src/mame/drivers/sun4.c (renamed from src/mess/drivers/sun4.c)16
-rw-r--r--src/mame/drivers/suna16.c24
-rw-r--r--src/mame/drivers/suna8.c97
-rw-r--r--src/mame/drivers/supbtime.c8
-rw-r--r--src/mame/drivers/supdrapo.c6
-rw-r--r--src/mame/drivers/supduck.c2
-rw-r--r--src/mame/drivers/super6.c (renamed from src/mess/drivers/super6.c)2
-rw-r--r--src/mame/drivers/super80.c (renamed from src/mess/drivers/super80.c)10
-rw-r--r--src/mame/drivers/supercon.c (renamed from src/mess/drivers/supercon.c)8
-rw-r--r--src/mame/drivers/supercrd.c4
-rw-r--r--src/mame/drivers/superdq.c6
-rw-r--r--src/mame/drivers/superqix.c26
-rw-r--r--src/mame/drivers/superslave.c (renamed from src/mess/drivers/superslave.c)2
-rw-r--r--src/mame/drivers/superwng.c2
-rw-r--r--src/mame/drivers/supracan.c (renamed from src/mess/drivers/supracan.c)7
-rw-r--r--src/mame/drivers/suprgolf.c4
-rw-r--r--src/mame/drivers/suprloco.c4
-rw-r--r--src/mame/drivers/suprnova.c60
-rw-r--r--src/mame/drivers/suprridr.c2
-rw-r--r--src/mame/drivers/suprslam.c2
-rw-r--r--src/mame/drivers/surpratk.c6
-rw-r--r--src/mame/drivers/sv8000.c (renamed from src/mess/drivers/sv8000.c)0
-rw-r--r--src/mame/drivers/svi318.c (renamed from src/mess/drivers/svi318.c)12
-rw-r--r--src/mame/drivers/svision.c (renamed from src/mess/drivers/svision.c)0
-rw-r--r--src/mame/drivers/svmu.c (renamed from src/mess/drivers/svmu.c)2
-rw-r--r--src/mame/drivers/swtpc.c (renamed from src/mess/drivers/swtpc.c)2
-rw-r--r--src/mame/drivers/swtpc09.c (renamed from src/mess/drivers/swtpc09.c)8
-rw-r--r--src/mame/drivers/sym1.c (renamed from src/mess/drivers/sym1.c)0
-rw-r--r--src/mame/drivers/sys2900.c (renamed from src/mess/drivers/sys2900.c)2
-rw-r--r--src/mame/drivers/systec.c (renamed from src/mess/drivers/systec.c)2
-rw-r--r--src/mame/drivers/system1.c204
-rw-r--r--src/mame/drivers/system16.c188
-rw-r--r--src/mame/drivers/tagteam.c4
-rw-r--r--src/mame/drivers/tail2nos.c6
-rw-r--r--src/mame/drivers/taito.c74
-rw-r--r--src/mame/drivers/taito_b.c72
-rw-r--r--src/mame/drivers/taito_f2.c122
-rw-r--r--src/mame/drivers/taito_f3.c112
-rw-r--r--src/mame/drivers/taito_h.c14
-rw-r--r--src/mame/drivers/taito_l.c10
-rw-r--r--src/mame/drivers/taito_o.c2
-rw-r--r--src/mame/drivers/taito_x.c2
-rw-r--r--src/mame/drivers/taito_z.c86
-rw-r--r--src/mame/drivers/taitoair.c45
-rw-r--r--src/mame/drivers/taitogn.c48
-rw-r--r--src/mame/drivers/taitojc.c26
-rw-r--r--src/mame/drivers/taitopjc.c2
-rw-r--r--src/mame/drivers/taitosj.c48
-rw-r--r--src/mame/drivers/taitottl.c26
-rw-r--r--src/mame/drivers/taitotx.c30
-rw-r--r--src/mame/drivers/taitotz.c16
-rw-r--r--src/mame/drivers/taitowlf.c2
-rw-r--r--src/mame/drivers/tamag1.c (renamed from src/mess/drivers/tamag1.c)2
-rw-r--r--src/mame/drivers/tandy1t.c (renamed from src/mess/drivers/tandy1t.c)0
-rw-r--r--src/mame/drivers/tandy2k.c (renamed from src/mess/drivers/tandy2k.c)11
-rw-r--r--src/mame/drivers/tank8.c54
-rw-r--r--src/mame/drivers/tankbatt.c4
-rw-r--r--src/mame/drivers/tankbust.c2
-rw-r--r--src/mame/drivers/taotaido.c6
-rw-r--r--src/mame/drivers/tapatune.c43
-rw-r--r--src/mame/drivers/targeth.c4
-rw-r--r--src/mame/drivers/tasman.c15
-rw-r--r--src/mame/drivers/tatsumi.c12
-rw-r--r--src/mame/drivers/tattack.c2
-rw-r--r--src/mame/drivers/tavernie.c (renamed from src/mess/drivers/tavernie.c)5
-rw-r--r--src/mame/drivers/taxidriv.c2
-rw-r--r--src/mame/drivers/tb303.c (renamed from src/mess/drivers/tb303.c)73
-rw-r--r--src/mame/drivers/tbowl.c6
-rw-r--r--src/mame/drivers/tcl.c2
-rw-r--r--src/mame/drivers/tdv2324.c (renamed from src/mess/drivers/tdv2324.c)2
-rw-r--r--src/mame/drivers/tec1.c (renamed from src/mess/drivers/tec1.c)0
-rw-r--r--src/mame/drivers/techno.c2
-rw-r--r--src/mame/drivers/tecmo.c16
-rw-r--r--src/mame/drivers/tecmo16.c8
-rw-r--r--src/mame/drivers/tecmosys.c6
-rw-r--r--src/mame/drivers/tecnbras.c (renamed from src/mess/drivers/tecnbras.c)2
-rw-r--r--src/mame/drivers/tehkanwc.c10
-rw-r--r--src/mame/drivers/tek405x.c (renamed from src/mess/drivers/tek405x.c)6
-rw-r--r--src/mame/drivers/tek410x.c (renamed from src/mess/drivers/tek410x.c)4
-rw-r--r--src/mame/drivers/tempest.c12
-rw-r--r--src/mame/drivers/terak.c (renamed from src/mess/drivers/terak.c)2
-rw-r--r--src/mame/drivers/terracre.c18
-rw-r--r--src/mame/drivers/test_t400.c (renamed from src/mess/drivers/test_t400.c)4
-rw-r--r--src/mame/drivers/tetrisp2.c26
-rw-r--r--src/mame/drivers/tgtpanic.c2
-rw-r--r--src/mame/drivers/thayers.c4
-rw-r--r--src/mame/drivers/thedealr.c84
-rw-r--r--src/mame/drivers/thedeep.c4
-rw-r--r--src/mame/drivers/thepit.c42
-rw-r--r--src/mame/drivers/thomson.c (renamed from src/mess/drivers/thomson.c)143
-rw-r--r--src/mame/drivers/thoop2.c2
-rw-r--r--src/mame/drivers/thunderx.c19
-rw-r--r--src/mame/drivers/ti630.c (renamed from src/mess/drivers/ti630.c)2
-rw-r--r--src/mame/drivers/ti74.c (renamed from src/mess/drivers/ti74.c)4
-rw-r--r--src/mame/drivers/ti85.c (renamed from src/mess/drivers/ti85.c)22
-rw-r--r--src/mame/drivers/ti89.c (renamed from src/mess/drivers/ti89.c)10
-rw-r--r--src/mame/drivers/ti990_10.c (renamed from src/mess/drivers/ti990_10.c)6
-rw-r--r--src/mame/drivers/ti990_4.c (renamed from src/mess/drivers/ti990_4.c)6
-rw-r--r--src/mame/drivers/ti99_2.c (renamed from src/mess/drivers/ti99_2.c)4
-rw-r--r--src/mame/drivers/ti99_4p.c (renamed from src/mess/drivers/ti99_4p.c)12
-rw-r--r--src/mame/drivers/ti99_4x.c (renamed from src/mess/drivers/ti99_4x.c)18
-rw-r--r--src/mame/drivers/ti99_8.c (renamed from src/mess/drivers/ti99_8.c)13
-rw-r--r--src/mame/drivers/tiamc1.c8
-rw-r--r--src/mame/drivers/ticalc1x.c (renamed from src/mess/drivers/ticalc1x.c)164
-rw-r--r--src/mame/drivers/tigeroad.c14
-rw-r--r--src/mame/drivers/tiki100.c (renamed from src/mess/drivers/tiki100.c)280
-rw-r--r--src/mame/drivers/tim011.c (renamed from src/mess/drivers/tim011.c)2
-rw-r--r--src/mame/drivers/tim100.c (renamed from src/mess/drivers/tim100.c)2
-rw-r--r--src/mame/drivers/timelimt.c4
-rw-r--r--src/mame/drivers/timeplt.c14
-rw-r--r--src/mame/drivers/timetrv.c2
-rw-r--r--src/mame/drivers/timex.c (renamed from src/mess/drivers/timex.c)0
-rw-r--r--src/mame/drivers/tispeak.c (renamed from src/mess/drivers/tispeak.c)784
-rw-r--r--src/mame/drivers/tk2000.c (renamed from src/mess/drivers/tk2000.c)2
-rw-r--r--src/mame/drivers/tk80.c (renamed from src/mess/drivers/tk80.c)10
-rw-r--r--src/mame/drivers/tk80bs.c (renamed from src/mess/drivers/tk80bs.c)2
-rw-r--r--src/mame/drivers/tm990189.c (renamed from src/mess/drivers/tm990189.c)0
-rw-r--r--src/mame/drivers/tmaster.c2
-rw-r--r--src/mame/drivers/tmc1800.c (renamed from src/mess/drivers/tmc1800.c)8
-rw-r--r--src/mame/drivers/tmc2000e.c (renamed from src/mess/drivers/tmc2000e.c)2
-rw-r--r--src/mame/drivers/tmc600.c (renamed from src/mess/drivers/tmc600.c)4
-rw-r--r--src/mame/drivers/tmmjprd.c4
-rw-r--r--src/mame/drivers/tmnt.c129
-rw-r--r--src/mame/drivers/tmspoker.c2
-rw-r--r--src/mame/drivers/tnzs.c68
-rw-r--r--src/mame/drivers/toaplan1.c22
-rw-r--r--src/mame/drivers/toaplan2.c169
-rw-r--r--src/mame/drivers/toki.c16
-rw-r--r--src/mame/drivers/tokyocop.c2
-rw-r--r--src/mame/drivers/tomcat.c2
-rw-r--r--src/mame/drivers/tonton.c39
-rw-r--r--src/mame/drivers/toobin.c12
-rw-r--r--src/mame/drivers/topspeed.c6
-rw-r--r--src/mame/drivers/toratora.c41
-rw-r--r--src/mame/drivers/tourtabl.c4
-rw-r--r--src/mame/drivers/tourvis.c69
-rw-r--r--src/mame/drivers/tp84.c6
-rw-r--r--src/mame/drivers/trackfld.c96
-rw-r--r--src/mame/drivers/travrusa.c32
-rw-r--r--src/mame/drivers/tricep.c (renamed from src/mess/drivers/tricep.c)2
-rw-r--r--src/mame/drivers/triforce.c120
-rw-r--r--src/mame/drivers/triplhnt.c2
-rw-r--r--src/mame/drivers/trs80.c (renamed from src/mess/drivers/trs80.c)2
-rw-r--r--src/mame/drivers/trs80m2.c (renamed from src/mess/drivers/trs80m2.c)10
-rw-r--r--src/mame/drivers/truco.c2
-rw-r--r--src/mame/drivers/trucocl.c2
-rw-r--r--src/mame/drivers/trvmadns.c4
-rw-r--r--src/mame/drivers/trvquest.c2
-rw-r--r--src/mame/drivers/tryout.c2
-rw-r--r--src/mame/drivers/ts802.c (renamed from src/mess/drivers/ts802.c)5
-rw-r--r--src/mame/drivers/ts803.c (renamed from src/mess/drivers/ts803.c)2
-rw-r--r--src/mame/drivers/ts816.c (renamed from src/mess/drivers/ts816.c)2
-rw-r--r--src/mame/drivers/tsamurai.c26
-rw-r--r--src/mame/drivers/tsispch.c (renamed from src/mess/drivers/tsispch.c)4
-rw-r--r--src/mame/drivers/ttchamp.c147
-rw-r--r--src/mame/drivers/tubep.c6
-rw-r--r--src/mame/drivers/tugboat.c8
-rw-r--r--src/mame/drivers/tumbleb.c42
-rw-r--r--src/mame/drivers/tumblep.c4
-rw-r--r--src/mame/drivers/tunhunt.c4
-rw-r--r--src/mame/drivers/turbo.c32
-rw-r--r--src/mame/drivers/tutankhm.c9
-rw-r--r--src/mame/drivers/tutor.c (renamed from src/mess/drivers/tutor.c)0
-rw-r--r--src/mame/drivers/tv950.c (renamed from src/mess/drivers/tv950.c)2
-rw-r--r--src/mame/drivers/tvc.c (renamed from src/mess/drivers/tvc.c)6
-rw-r--r--src/mame/drivers/tvgame.c (renamed from src/mess/drivers/tvgame.c)0
-rw-r--r--src/mame/drivers/twin16.c30
-rw-r--r--src/mame/drivers/twinkle.c34
-rw-r--r--src/mame/drivers/twins.c6
-rw-r--r--src/mame/drivers/tx0.c (renamed from src/mess/drivers/tx0.c)19
-rw-r--r--src/mame/drivers/tx1.c6
-rw-r--r--src/mame/drivers/uapce.c8
-rw-r--r--src/mame/drivers/uknc.c (renamed from src/mess/drivers/uknc.c)10
-rw-r--r--src/mame/drivers/ultraman.c3
-rw-r--r--src/mame/drivers/undrfire.c6
-rw-r--r--src/mame/drivers/unior.c (renamed from src/mess/drivers/unior.c)2
-rw-r--r--src/mame/drivers/unistar.c (renamed from src/mess/drivers/unistar.c)2
-rw-r--r--src/mame/drivers/univac.c (renamed from src/mess/drivers/univac.c)2
-rw-r--r--src/mame/drivers/unixpc.c (renamed from src/mess/drivers/unixpc.c)2
-rw-r--r--src/mame/drivers/unkfr.c4
-rw-r--r--src/mame/drivers/unkhorse.c13
-rw-r--r--src/mame/drivers/upscope.c2
-rw-r--r--src/mame/drivers/usgames.c16
-rw-r--r--src/mame/drivers/ut88.c (renamed from src/mess/drivers/ut88.c)0
-rw-r--r--src/mame/drivers/uzebox.c (renamed from src/mess/drivers/uzebox.c)2
-rw-r--r--src/mame/drivers/v1050.c (renamed from src/mess/drivers/v1050.c)2
-rw-r--r--src/mame/drivers/v6809.c (renamed from src/mess/drivers/v6809.c)3
-rw-r--r--src/mame/drivers/vamphalf.c48
-rw-r--r--src/mame/drivers/vaportra.c8
-rw-r--r--src/mame/drivers/vastar.c10
-rw-r--r--src/mame/drivers/vax11.c (renamed from src/mess/drivers/vax11.c)2
-rw-r--r--src/mame/drivers/vball.c8
-rw-r--r--src/mame/drivers/vboy.c (renamed from src/mess/drivers/vboy.c)2
-rw-r--r--src/mame/drivers/vc4000.c (renamed from src/mess/drivers/vc4000.c)48
-rw-r--r--src/mame/drivers/vcombat.c4
-rw-r--r--src/mame/drivers/vcs80.c (renamed from src/mess/drivers/vcs80.c)2
-rw-r--r--src/mame/drivers/vd.c6
-rw-r--r--src/mame/drivers/vector06.c (renamed from src/mess/drivers/vector06.c)26
-rw-r--r--src/mame/drivers/vector4.c (renamed from src/mess/drivers/vector4.c)2
-rw-r--r--src/mame/drivers/vectrex.c2
-rw-r--r--src/mame/drivers/vega.c2
-rw-r--r--src/mame/drivers/vegaeo.c2
-rw-r--r--src/mame/drivers/vegas.c263
-rw-r--r--src/mame/drivers/vendetta.c20
-rw-r--r--src/mame/drivers/vertigo.c2
-rw-r--r--src/mame/drivers/vg5k.c (renamed from src/mess/drivers/vg5k.c)2
-rw-r--r--src/mame/drivers/vic10.c (renamed from src/mess/drivers/vic10.c)2
-rw-r--r--src/mame/drivers/vic20.c (renamed from src/mess/drivers/vic20.c)8
-rw-r--r--src/mame/drivers/vicdual.c158
-rw-r--r--src/mame/drivers/victor9k.c (renamed from src/mess/drivers/victor9k.c)2
-rw-r--r--src/mame/drivers/victory.c4
-rw-r--r--src/mame/drivers/vidbrain.c (renamed from src/mess/drivers/vidbrain.c)2
-rw-r--r--src/mame/drivers/videopin.c4
-rw-r--r--src/mame/drivers/videopkr.c2
-rw-r--r--src/mame/drivers/vigilant.c28
-rw-r--r--src/mame/drivers/vii.c (renamed from src/mess/drivers/vii.c)14
-rw-r--r--src/mame/drivers/vip.c (renamed from src/mess/drivers/vip.c)4
-rw-r--r--src/mame/drivers/viper.c68
-rw-r--r--src/mame/drivers/vixen.c (renamed from src/mess/drivers/vixen.c)2
-rw-r--r--src/mame/drivers/vk100.c (renamed from src/mess/drivers/vk100.c)86
-rw-r--r--src/mame/drivers/vlc.c2
-rw-r--r--src/mame/drivers/volfied.c12
-rw-r--r--src/mame/drivers/votrpss.c (renamed from src/mess/drivers/votrpss.c)2
-rw-r--r--src/mame/drivers/votrtnt.c (renamed from src/mess/drivers/votrtnt.c)25
-rw-r--r--src/mame/drivers/voyager.c2
-rw-r--r--src/mame/drivers/vp101.c4
-rw-r--r--src/mame/drivers/vpoker.c23
-rw-r--r--src/mame/drivers/vroulet.c2
-rw-r--r--src/mame/drivers/vsnes.c12
-rw-r--r--src/mame/drivers/vt100.c (renamed from src/mess/drivers/vt100.c)24
-rw-r--r--src/mame/drivers/vt220.c (renamed from src/mess/drivers/vt220.c)2
-rw-r--r--src/mame/drivers/vt240.c (renamed from src/mess/drivers/vt240.c)6
-rw-r--r--src/mame/drivers/vt320.c (renamed from src/mess/drivers/vt320.c)8
-rw-r--r--src/mame/drivers/vt520.c (renamed from src/mess/drivers/vt520.c)6
-rw-r--r--src/mame/drivers/vta2000.c (renamed from src/mess/drivers/vta2000.c)2
-rw-r--r--src/mame/drivers/vtech1.c (renamed from src/mess/drivers/vtech1.c)4
-rw-r--r--src/mame/drivers/vtech2.c (renamed from src/mess/drivers/vtech2.c)0
-rw-r--r--src/mame/drivers/vulgus.c6
-rw-r--r--src/mame/drivers/wacky_gator.c178
-rw-r--r--src/mame/drivers/wallc.c8
-rw-r--r--src/mame/drivers/wangpc.c (renamed from src/mess/drivers/wangpc.c)2
-rw-r--r--src/mame/drivers/wardner.c6
-rw-r--r--src/mame/drivers/warpsped.c2
-rw-r--r--src/mame/drivers/warpwarp.c36
-rw-r--r--src/mame/drivers/warriorb.c8
-rw-r--r--src/mame/drivers/wc90.c150
-rw-r--r--src/mame/drivers/wc90b.c6
-rw-r--r--src/mame/drivers/wecleman.c226
-rw-r--r--src/mame/drivers/welltris.c6
-rw-r--r--src/mame/drivers/wgp.c20
-rw-r--r--src/mame/drivers/wheelfir.c2
-rw-r--r--src/mame/drivers/white_mod.c304
-rw-r--r--src/mame/drivers/whitestar.c364
-rw-r--r--src/mame/drivers/wicat.c (renamed from src/mess/drivers/wicat.c)2
-rw-r--r--src/mame/drivers/wico.c2
-rw-r--r--src/mame/drivers/wildfire.c (renamed from src/mess/drivers/wildfire.c)6
-rw-r--r--src/mame/drivers/wildpkr.c2
-rw-r--r--src/mame/drivers/williams.c92
-rw-r--r--src/mame/drivers/wink.c4
-rw-r--r--src/mame/drivers/wiping.c4
-rw-r--r--src/mame/drivers/wiz.c18
-rw-r--r--src/mame/drivers/wms.c54
-rw-r--r--src/mame/drivers/wolfpack.c2
-rw-r--r--src/mame/drivers/wpc_95.c124
-rw-r--r--src/mame/drivers/wpc_an.c34
-rw-r--r--src/mame/drivers/wpc_dcs.c64
-rw-r--r--src/mame/drivers/wpc_dot.c36
-rw-r--r--src/mame/drivers/wpc_flip1.c18
-rw-r--r--src/mame/drivers/wpc_flip2.c98
-rw-r--r--src/mame/drivers/wpc_s.c114
-rw-r--r--src/mame/drivers/wrally.c6
-rw-r--r--src/mame/drivers/wswan.c (renamed from src/mess/drivers/wswan.c)4
-rw-r--r--src/mame/drivers/wwfsstar.c10
-rw-r--r--src/mame/drivers/wyvernf0.c2
-rw-r--r--src/mame/drivers/x07.c (renamed from src/mess/drivers/x07.c)2
-rw-r--r--src/mame/drivers/x1.c (renamed from src/mess/drivers/x1.c)6
-rw-r--r--src/mame/drivers/x1twin.c (renamed from src/mess/drivers/x1twin.c)2
-rw-r--r--src/mame/drivers/x68k.c (renamed from src/mess/drivers/x68k.c)10
-rw-r--r--src/mame/drivers/xain.c8
-rw-r--r--src/mame/drivers/xavix.c (renamed from src/mess/drivers/xavix.c)2
-rw-r--r--src/mame/drivers/xbox.c254
-rw-r--r--src/mame/drivers/xerox820.c (renamed from src/mess/drivers/xerox820.c)8
-rw-r--r--src/mame/drivers/xexex.c6
-rw-r--r--src/mame/drivers/xmen.c76
-rw-r--r--src/mame/drivers/xor100.c (renamed from src/mess/drivers/xor100.c)2
-rw-r--r--src/mame/drivers/xorworld.c9
-rw-r--r--src/mame/drivers/xtheball.c2
-rw-r--r--src/mame/drivers/xtom3d.c2
-rw-r--r--src/mame/drivers/xxmissio.c6
-rw-r--r--src/mame/drivers/xyonix.c8
-rw-r--r--src/mame/drivers/yiear.c4
-rw-r--r--src/mame/drivers/ymmu100.c (renamed from src/mess/drivers/ymmu100.c)4
-rw-r--r--src/mame/drivers/ymmu100.ppm (renamed from src/mess/drivers/ymmu100.ppm)bin578415 -> 578415 bytes
-rw-r--r--src/mame/drivers/yunsun16.c40
-rw-r--r--src/mame/drivers/yunsung8.c10
-rw-r--r--src/mame/drivers/z100.c (renamed from src/mess/drivers/z100.c)2
-rw-r--r--src/mame/drivers/z1013.c (renamed from src/mess/drivers/z1013.c)6
-rw-r--r--src/mame/drivers/z80dev.c (renamed from src/mess/drivers/z80dev.c)2
-rw-r--r--src/mame/drivers/z80ne.c (renamed from src/mess/drivers/z80ne.c)8
-rw-r--r--src/mame/drivers/z88.c (renamed from src/mess/drivers/z88.c)22
-rw-r--r--src/mame/drivers/z9001.c (renamed from src/mess/drivers/z9001.c)12
-rw-r--r--src/mame/drivers/zac2650.c6
-rw-r--r--src/mame/drivers/zac_1.c22
-rw-r--r--src/mame/drivers/zac_2.c76
-rw-r--r--src/mame/drivers/zac_proto.c6
-rw-r--r--src/mame/drivers/zaccaria.c20
-rw-r--r--src/mame/drivers/zapcomputer.c175
-rw-r--r--src/mame/drivers/zaurus.c (renamed from src/mess/drivers/zaurus.c)12
-rw-r--r--src/mame/drivers/zaxxon.c24
-rw-r--r--src/mame/drivers/zerozone.c4
-rw-r--r--src/mame/drivers/zexall.c (renamed from src/mess/drivers/zexall.c)2
-rw-r--r--src/mame/drivers/zn.c210
-rw-r--r--src/mame/drivers/zodiack.c10
-rw-r--r--src/mame/drivers/zorba.c (renamed from src/mess/drivers/zorba.c)5
-rw-r--r--src/mame/drivers/zr107.c18
-rw-r--r--src/mame/drivers/zrt80.c (renamed from src/mess/drivers/zrt80.c)0
-rw-r--r--src/mame/drivers/zsbc3.c (renamed from src/mess/drivers/zsbc3.c)2
-rw-r--r--src/mame/drivers/zx.c (renamed from src/mess/drivers/zx.c)4
-rw-r--r--src/mame/etc/template_driver.c2
-rw-r--r--src/mame/includes/1942.h1
-rw-r--r--src/mame/includes/4enraya.h1
-rw-r--r--src/mame/includes/8080bw.h10
-rw-r--r--src/mame/includes/88games.h3
-rw-r--r--src/mame/includes/abc1600.h (renamed from src/mess/includes/abc1600.h)0
-rw-r--r--src/mame/includes/abc80.h (renamed from src/mess/includes/abc80.h)0
-rw-r--r--src/mame/includes/abc80x.h (renamed from src/mess/includes/abc80x.h)0
-rw-r--r--src/mame/includes/ac1.h (renamed from src/mess/includes/ac1.h)9
-rw-r--r--src/mame/includes/adam.h (renamed from src/mess/includes/adam.h)0
-rw-r--r--src/mame/includes/advision.h (renamed from src/mess/includes/advision.h)0
-rw-r--r--src/mame/includes/aerofgt.h1
-rw-r--r--src/mame/includes/aim65.h (renamed from src/mess/includes/aim65.h)0
-rw-r--r--src/mame/includes/ajax.h8
-rw-r--r--src/mame/includes/alesis.h (renamed from src/mess/includes/alesis.h)17
-rw-r--r--src/mame/includes/aliens.h12
-rw-r--r--src/mame/includes/amiga.h5
-rw-r--r--src/mame/includes/amspdwy.h1
-rw-r--r--src/mame/includes/amstrad.h (renamed from src/mess/includes/amstrad.h)3
-rw-r--r--src/mame/includes/apollo.h (renamed from src/mess/includes/apollo.h)0
-rw-r--r--src/mame/includes/apple1.h (renamed from src/mess/includes/apple1.h)0
-rw-r--r--src/mame/includes/apple2.h (renamed from src/mess/includes/apple2.h)0
-rw-r--r--src/mame/includes/apple2gs.h (renamed from src/mess/includes/apple2gs.h)0
-rw-r--r--src/mame/includes/apple3.h (renamed from src/mess/includes/apple3.h)0
-rw-r--r--src/mame/includes/aquarium.h1
-rw-r--r--src/mame/includes/aquarius.h (renamed from src/mess/includes/aquarius.h)0
-rw-r--r--src/mame/includes/arcadia.h (renamed from src/mess/includes/arcadia.h)0
-rw-r--r--src/mame/includes/armedf.h1
-rw-r--r--src/mame/includes/ashnojoe.h1
-rw-r--r--src/mame/includes/asterix.h3
-rw-r--r--src/mame/includes/astrocde.h41
-rw-r--r--src/mame/includes/asuka.h3
-rw-r--r--src/mame/includes/at.h (renamed from src/mess/includes/at.h)6
-rw-r--r--src/mame/includes/atarist.h (renamed from src/mess/includes/atarist.h)0
-rw-r--r--src/mame/includes/atarisy2.h4
-rw-r--r--src/mame/includes/atom.h (renamed from src/mess/includes/atom.h)6
-rw-r--r--src/mame/includes/aussiebyte.h126
-rw-r--r--src/mame/includes/avigo.h (renamed from src/mess/includes/avigo.h)0
-rw-r--r--src/mame/includes/b2m.h (renamed from src/mess/includes/b2m.h)0
-rw-r--r--src/mame/includes/banctec.h (renamed from src/mess/includes/banctec.h)0
-rw-r--r--src/mame/includes/battlnts.h1
-rw-r--r--src/mame/includes/bbc.h (renamed from src/mess/includes/bbc.h)58
-rw-r--r--src/mame/includes/bebox.h (renamed from src/mess/includes/bebox.h)11
-rw-r--r--src/mame/includes/bionicc.h4
-rw-r--r--src/mame/includes/bishi.h1
-rw-r--r--src/mame/includes/bk.h (renamed from src/mess/includes/bk.h)0
-rw-r--r--src/mame/includes/bladestl.h1
-rw-r--r--src/mame/includes/blktiger.h2
-rw-r--r--src/mame/includes/blockhl.h56
-rw-r--r--src/mame/includes/bogeyman.h2
-rw-r--r--src/mame/includes/bottom9.h6
-rw-r--r--src/mame/includes/btime.h3
-rw-r--r--src/mame/includes/bublbobl.h1
-rw-r--r--src/mame/includes/bullet.h (renamed from src/mess/includes/bullet.h)0
-rw-r--r--src/mame/includes/busicom.h (renamed from src/mess/includes/busicom.h)0
-rw-r--r--src/mame/includes/bw12.h (renamed from src/mess/includes/bw12.h)0
-rw-r--r--src/mame/includes/bw2.h (renamed from src/mess/includes/bw2.h)0
-rw-r--r--src/mame/includes/c128.h (renamed from src/mess/includes/c128.h)1
-rw-r--r--src/mame/includes/c64.h (renamed from src/mess/includes/c64.h)73
-rw-r--r--src/mame/includes/c65.h (renamed from src/mess/includes/c65.h)0
-rw-r--r--src/mame/includes/c80.h (renamed from src/mess/includes/c80.h)0
-rw-r--r--src/mame/includes/cbasebal.h1
-rw-r--r--src/mame/includes/cbm2.h (renamed from src/mess/includes/cbm2.h)0
-rw-r--r--src/mame/includes/cclimber.h2
-rw-r--r--src/mame/includes/cgc7900.h (renamed from src/mess/includes/cgc7900.h)0
-rw-r--r--src/mame/includes/channelf.h (renamed from src/mess/includes/channelf.h)0
-rw-r--r--src/mame/includes/chihiro.h29
-rw-r--r--src/mame/includes/chqflag.h6
-rw-r--r--src/mame/includes/citycon.h1
-rw-r--r--src/mame/includes/coco.h (renamed from src/mess/includes/coco.h)9
-rw-r--r--src/mame/includes/coco12.h (renamed from src/mess/includes/coco12.h)2
-rw-r--r--src/mame/includes/coco3.h (renamed from src/mess/includes/coco3.h)0
-rw-r--r--src/mame/includes/coleco.h (renamed from src/mess/includes/coleco.h)62
-rw-r--r--src/mame/includes/compis.h (renamed from src/mess/includes/compis.h)0
-rw-r--r--src/mame/includes/comquest.h (renamed from src/mess/includes/comquest.h)0
-rw-r--r--src/mame/includes/comx35.h (renamed from src/mess/includes/comx35.h)0
-rw-r--r--src/mame/includes/concept.h (renamed from src/mess/includes/concept.h)0
-rw-r--r--src/mame/includes/cosmicos.h (renamed from src/mess/includes/cosmicos.h)0
-rw-r--r--src/mame/includes/crimfght.h29
-rw-r--r--src/mame/includes/crospang.h1
-rw-r--r--src/mame/includes/crshrace.h2
-rw-r--r--src/mame/includes/crvision.h (renamed from src/mess/includes/crvision.h)0
-rw-r--r--src/mame/includes/cxhumax.h (renamed from src/mess/includes/cxhumax.h)0
-rw-r--r--src/mame/includes/cybiko.h (renamed from src/mess/includes/cybiko.h)16
-rw-r--r--src/mame/includes/dai.h (renamed from src/mess/includes/dai.h)0
-rw-r--r--src/mame/includes/dbz.h1
-rw-r--r--src/mame/includes/dccons.h (renamed from src/mess/includes/dccons.h)0
-rw-r--r--src/mame/includes/dec8.h2
-rw-r--r--src/mame/includes/deco32.h4
-rw-r--r--src/mame/includes/dgn_beta.h (renamed from src/mess/includes/dgn_beta.h)0
-rw-r--r--src/mame/includes/dgnalpha.h (renamed from src/mess/includes/dgnalpha.h)0
-rw-r--r--src/mame/includes/dietgo.h1
-rw-r--r--src/mame/includes/djmain.h5
-rw-r--r--src/mame/includes/dm7000.h (renamed from src/mess/includes/dm7000.h)0
-rw-r--r--src/mame/includes/dogfgt.h1
-rw-r--r--src/mame/includes/dragon.h (renamed from src/mess/includes/dragon.h)4
-rw-r--r--src/mame/includes/drgnmst.h1
-rw-r--r--src/mame/includes/dynduke.h5
-rw-r--r--src/mame/includes/ec184x.h (renamed from src/mess/includes/ec184x.h)0
-rw-r--r--src/mame/includes/einstein.h (renamed from src/mess/includes/einstein.h)0
-rw-r--r--src/mame/includes/electron.h (renamed from src/mess/includes/electron.h)0
-rw-r--r--src/mame/includes/elf.h (renamed from src/mess/includes/elf.h)0
-rw-r--r--src/mame/includes/ep64.h (renamed from src/mess/includes/ep64.h)0
-rw-r--r--src/mame/includes/esd16.h1
-rw-r--r--src/mame/includes/eti660.h (renamed from src/mess/includes/eti660.h)46
-rw-r--r--src/mame/includes/exp85.h (renamed from src/mess/includes/exp85.h)0
-rw-r--r--src/mame/includes/f1gp.h1
-rw-r--r--src/mame/includes/fantland.h1
-rw-r--r--src/mame/includes/fidelz80.h (renamed from src/mess/includes/fidelz80.h)0
-rw-r--r--src/mame/includes/fitfight.h1
-rw-r--r--src/mame/includes/flkatck.h1
-rw-r--r--src/mame/includes/flstory.h2
-rw-r--r--src/mame/includes/fm7.h (renamed from src/mess/includes/fm7.h)8
-rw-r--r--src/mame/includes/fmtowns.h (renamed from src/mess/includes/fmtowns.h)0
-rw-r--r--src/mame/includes/fromance.h1
-rw-r--r--src/mame/includes/funkyjet.h1
-rw-r--r--src/mame/includes/gaelco.h1
-rw-r--r--src/mame/includes/gaelco2.h62
-rw-r--r--src/mame/includes/galastrm.h32
-rw-r--r--src/mame/includes/galaxian.h7
-rw-r--r--src/mame/includes/galaxold.h7
-rw-r--r--src/mame/includes/galaxy.h (renamed from src/mess/includes/galaxy.h)0
-rw-r--r--src/mame/includes/galeb.h (renamed from src/mess/includes/galeb.h)0
-rw-r--r--src/mame/includes/galpanic.h4
-rw-r--r--src/mame/includes/gamate.h (renamed from src/mess/includes/gamate.h)0
-rw-r--r--src/mame/includes/gamecom.h (renamed from src/mess/includes/gamecom.h)0
-rw-r--r--src/mame/includes/gamepock.h (renamed from src/mess/includes/gamepock.h)0
-rw-r--r--src/mame/includes/gb.h (renamed from src/mess/includes/gb.h)0
-rw-r--r--src/mame/includes/gba.h (renamed from src/mess/includes/gba.h)0
-rw-r--r--src/mame/includes/gcpinbal.h1
-rw-r--r--src/mame/includes/genpc.h (renamed from src/mess/includes/genpc.h)0
-rw-r--r--src/mame/includes/gijoe.h1
-rw-r--r--src/mame/includes/ginganin.h1
-rw-r--r--src/mame/includes/glass.h1
-rw-r--r--src/mame/includes/gng.h2
-rw-r--r--src/mame/includes/goal92.h1
-rw-r--r--src/mame/includes/gotcha.h1
-rw-r--r--src/mame/includes/gp32.h (renamed from src/mess/includes/gp32.h)0
-rw-r--r--src/mame/includes/gradius3.h6
-rw-r--r--src/mame/includes/gumbo.h1
-rw-r--r--src/mame/includes/harddriv.h9
-rw-r--r--src/mame/includes/hec2hrp.h (renamed from src/mess/includes/hec2hrp.h)0
-rw-r--r--src/mame/includes/hh_tms1k.h (renamed from src/mess/includes/hh_tms1k.h)4
-rw-r--r--src/mame/includes/hh_ucom4.h (renamed from src/mess/includes/hh_ucom4.h)0
-rw-r--r--src/mame/includes/himesiki.h1
-rw-r--r--src/mame/includes/hng64.h163
-rw-r--r--src/mame/includes/hp48.h (renamed from src/mess/includes/hp48.h)0
-rw-r--r--src/mame/includes/huebler.h (renamed from src/mess/includes/huebler.h)0
-rw-r--r--src/mame/includes/hx20.h (renamed from src/mess/includes/hx20.h)0
-rw-r--r--src/mame/includes/imds2.h (renamed from src/mess/includes/imds2.h)5
-rw-r--r--src/mame/includes/intv.h (renamed from src/mess/includes/intv.h)0
-rw-r--r--src/mame/includes/inufuku.h1
-rw-r--r--src/mame/includes/itech8.h14
-rw-r--r--src/mame/includes/jack.h1
-rw-r--r--src/mame/includes/jupiter.h (renamed from src/mess/includes/jupiter.h)0
-rw-r--r--src/mame/includes/kangaroo.h4
-rw-r--r--src/mame/includes/kaypro.h (renamed from src/mess/includes/kaypro.h)0
-rw-r--r--src/mame/includes/kc.h (renamed from src/mess/includes/kc.h)0
-rw-r--r--src/mame/includes/kickgoal.h1
-rw-r--r--src/mame/includes/konamigx.h8
-rw-r--r--src/mame/includes/kramermc.h (renamed from src/mess/includes/kramermc.h)0
-rw-r--r--src/mame/includes/kyocera.h (renamed from src/mess/includes/kyocera.h)0
-rw-r--r--src/mame/includes/lc80.h (renamed from src/mess/includes/lc80.h)0
-rw-r--r--src/mame/includes/leland.h13
-rw-r--r--src/mame/includes/lethalj.h19
-rw-r--r--src/mame/includes/liberate.h3
-rw-r--r--src/mame/includes/lisa.h (renamed from src/mess/includes/lisa.h)0
-rw-r--r--src/mame/includes/lkage.h1
-rw-r--r--src/mame/includes/llc.h (renamed from src/mess/includes/llc.h)0
-rw-r--r--src/mame/includes/lviv.h (renamed from src/mess/includes/lviv.h)0
-rw-r--r--src/mame/includes/lwings.h5
-rw-r--r--src/mame/includes/lynx.h (renamed from src/mess/includes/lynx.h)0
-rw-r--r--src/mame/includes/m107.h7
-rw-r--r--src/mame/includes/m5.h (renamed from src/mess/includes/m5.h)0
-rw-r--r--src/mame/includes/m72.h58
-rw-r--r--src/mame/includes/m92.h9
-rw-r--r--src/mame/includes/mac.h (renamed from src/mess/includes/mac.h)0
-rw-r--r--src/mame/includes/macpci.h (renamed from src/mess/includes/macpci.h)0
-rw-r--r--src/mame/includes/macrossp.h15
-rw-r--r--src/mame/includes/madmotor.h1
-rw-r--r--src/mame/includes/mainevt.h15
-rw-r--r--src/mame/includes/mbc55x.h (renamed from src/mess/includes/mbc55x.h)0
-rw-r--r--src/mame/includes/mbee.h (renamed from src/mess/includes/mbee.h)0
-rw-r--r--src/mame/includes/mboard.h (renamed from src/mess/includes/mboard.h)21
-rw-r--r--src/mame/includes/mc1000.h (renamed from src/mess/includes/mc1000.h)0
-rw-r--r--src/mame/includes/mc1502.h (renamed from src/mess/includes/mc1502.h)0
-rw-r--r--src/mame/includes/mc80.h (renamed from src/mess/includes/mc80.h)0
-rw-r--r--src/mame/includes/mcatadv.h1
-rw-r--r--src/mame/includes/mcr68.h6
-rw-r--r--src/mame/includes/md_cons.h (renamed from src/mess/includes/md_cons.h)0
-rw-r--r--src/mame/includes/megadriv.h2
-rw-r--r--src/mame/includes/megasys1.h1
-rw-r--r--src/mame/includes/metlclsh.h2
-rw-r--r--src/mame/includes/micro3d.h41
-rw-r--r--src/mame/includes/micronic.h (renamed from src/mess/includes/micronic.h)0
-rw-r--r--src/mame/includes/microtan.h (renamed from src/mess/includes/microtan.h)0
-rw-r--r--src/mame/includes/midtunit.h3
-rw-r--r--src/mame/includes/midzeus.h2
-rw-r--r--src/mame/includes/mikro80.h (renamed from src/mess/includes/mikro80.h)0
-rw-r--r--src/mame/includes/mikromik.h (renamed from src/mess/includes/mikromik.h)0
-rw-r--r--src/mame/includes/model2.h181
-rw-r--r--src/mame/includes/model3.h14
-rw-r--r--src/mame/includes/momoko.h1
-rw-r--r--src/mame/includes/moo.h1
-rw-r--r--src/mame/includes/mpf1.h (renamed from src/mess/includes/mpf1.h)0
-rw-r--r--src/mame/includes/mpz80.h (renamed from src/mess/includes/mpz80.h)0
-rw-r--r--src/mame/includes/mrflea.h1
-rw-r--r--src/mame/includes/msbc1.h (renamed from src/mess/includes/msbc1.h)0
-rw-r--r--src/mame/includes/msx.h (renamed from src/mess/includes/msx.h)2
-rw-r--r--src/mame/includes/mtx.h (renamed from src/mess/includes/mtx.h)0
-rw-r--r--src/mame/includes/mz700.h (renamed from src/mess/includes/mz700.h)0
-rw-r--r--src/mame/includes/mz80.h (renamed from src/mess/includes/mz80.h)0
-rw-r--r--src/mame/includes/n64.h15
-rw-r--r--src/mame/includes/namcona1.h27
-rw-r--r--src/mame/includes/namcond1.h25
-rw-r--r--src/mame/includes/namcos1.h11
-rw-r--r--src/mame/includes/nbmj9195.h2
-rw-r--r--src/mame/includes/nc.h (renamed from src/mess/includes/nc.h)0
-rw-r--r--src/mame/includes/nes.h (renamed from src/mess/includes/nes.h)0
-rw-r--r--src/mame/includes/newbrain.h (renamed from src/mess/includes/newbrain.h)0
-rw-r--r--src/mame/includes/news.h1
-rw-r--r--src/mame/includes/next.h (renamed from src/mess/includes/next.h)0
-rw-r--r--src/mame/includes/nova2001.h1
-rw-r--r--src/mame/includes/ob68k1a.h (renamed from src/mess/includes/ob68k1a.h)0
-rw-r--r--src/mame/includes/ondra.h (renamed from src/mess/includes/ondra.h)0
-rw-r--r--src/mame/includes/orao.h (renamed from src/mess/includes/orao.h)19
-rw-r--r--src/mame/includes/orion.h (renamed from src/mess/includes/orion.h)0
-rw-r--r--src/mame/includes/osborne1.h (renamed from src/mess/includes/osborne1.h)0
-rw-r--r--src/mame/includes/osi.h (renamed from src/mess/includes/osi.h)0
-rw-r--r--src/mame/includes/overdriv.h3
-rw-r--r--src/mame/includes/p2000t.h (renamed from src/mess/includes/p2000t.h)0
-rw-r--r--src/mame/includes/partner.h (renamed from src/mess/includes/partner.h)0
-rw-r--r--src/mame/includes/pasopia.h (renamed from src/mess/includes/pasopia.h)0
-rw-r--r--src/mame/includes/pbaction.h1
-rw-r--r--src/mame/includes/pc1251.h (renamed from src/mess/includes/pc1251.h)0
-rw-r--r--src/mame/includes/pc1350.h (renamed from src/mess/includes/pc1350.h)0
-rw-r--r--src/mame/includes/pc1401.h (renamed from src/mess/includes/pc1401.h)0
-rw-r--r--src/mame/includes/pc1403.h (renamed from src/mess/includes/pc1403.h)0
-rw-r--r--src/mame/includes/pc1512.h (renamed from src/mess/includes/pc1512.h)0
-rw-r--r--src/mame/includes/pc4.h (renamed from src/mess/includes/pc4.h)0
-rw-r--r--src/mame/includes/pc8001.h (renamed from src/mess/includes/pc8001.h)0
-rw-r--r--src/mame/includes/pc8401a.h (renamed from src/mess/includes/pc8401a.h)0
-rw-r--r--src/mame/includes/pce.h (renamed from src/mess/includes/pce.h)10
-rw-r--r--src/mame/includes/pcktgal.h2
-rw-r--r--src/mame/includes/pcw.h (renamed from src/mess/includes/pcw.h)0
-rw-r--r--src/mame/includes/pcw16.h (renamed from src/mess/includes/pcw16.h)0
-rw-r--r--src/mame/includes/pdp1.h (renamed from src/mess/includes/pdp1.h)60
-rw-r--r--src/mame/includes/pecom.h (renamed from src/mess/includes/pecom.h)0
-rw-r--r--src/mame/includes/pes.h (renamed from src/mess/includes/pes.h)0
-rw-r--r--src/mame/includes/pet.h (renamed from src/mess/includes/pet.h)0
-rw-r--r--src/mame/includes/pgm.h4
-rw-r--r--src/mame/includes/phc25.h (renamed from src/mess/includes/phc25.h)0
-rw-r--r--src/mame/includes/phoenix.h1
-rw-r--r--src/mame/includes/pk8020.h (renamed from src/mess/includes/pk8020.h)0
-rw-r--r--src/mame/includes/pktgaldx.h2
-rw-r--r--src/mame/includes/plus4.h (renamed from src/mess/includes/plus4.h)0
-rw-r--r--src/mame/includes/plygonet.h5
-rw-r--r--src/mame/includes/pmd85.h (renamed from src/mess/includes/pmd85.h)7
-rw-r--r--src/mame/includes/pocketc.h (renamed from src/mess/includes/pocketc.h)0
-rw-r--r--src/mame/includes/poisk1.h (renamed from src/mess/includes/poisk1.h)0
-rw-r--r--src/mame/includes/poly88.h (renamed from src/mess/includes/poly88.h)0
-rw-r--r--src/mame/includes/poly880.h (renamed from src/mess/includes/poly880.h)0
-rw-r--r--src/mame/includes/portfoli.h (renamed from src/mess/includes/portfoli.h)0
-rw-r--r--src/mame/includes/pp01.h (renamed from src/mess/includes/pp01.h)0
-rw-r--r--src/mame/includes/primo.h (renamed from src/mess/includes/primo.h)0
-rw-r--r--src/mame/includes/prof180x.h (renamed from src/mess/includes/prof180x.h)0
-rw-r--r--src/mame/includes/prof80.h (renamed from src/mess/includes/prof80.h)0
-rw-r--r--src/mame/includes/psikyo.h1
-rw-r--r--src/mame/includes/psion.h (renamed from src/mess/includes/psion.h)0
-rw-r--r--src/mame/includes/px8.h (renamed from src/mess/includes/px8.h)0
-rw-r--r--src/mame/includes/ql.h (renamed from src/mess/includes/ql.h)0
-rw-r--r--src/mame/includes/radio86.h (renamed from src/mess/includes/radio86.h)0
-rw-r--r--src/mame/includes/rastan.h3
-rw-r--r--src/mame/includes/rbisland.h (renamed from src/mame/includes/rainbow.h)1
-rw-r--r--src/mame/includes/rm380z.h (renamed from src/mess/includes/rm380z.h)0
-rw-r--r--src/mame/includes/rmnimbus.h (renamed from src/mess/includes/rmnimbus.h)12
-rw-r--r--src/mame/includes/rockrage.h1
-rw-r--r--src/mame/includes/rocnrope.h26
-rw-r--r--src/mame/includes/rollerg.h5
-rw-r--r--src/mame/includes/route16.h9
-rw-r--r--src/mame/includes/sage2.h (renamed from src/mess/includes/sage2.h)0
-rw-r--r--src/mame/includes/samcoupe.h (renamed from src/mess/includes/samcoupe.h)59
-rw-r--r--src/mame/includes/scramble.h12
-rw-r--r--src/mame/includes/segas16b.h10
-rw-r--r--src/mame/includes/segaxbd.h165
-rw-r--r--src/mame/includes/senjyo.h16
-rw-r--r--src/mame/includes/seta.h1
-rw-r--r--src/mame/includes/sg1000.h (renamed from src/mess/includes/sg1000.h)0
-rw-r--r--src/mame/includes/shadfrce.h19
-rw-r--r--src/mame/includes/sms.h (renamed from src/mess/includes/sms.h)0
-rw-r--r--src/mame/includes/softbox.h (renamed from src/mess/includes/softbox.h)0
-rw-r--r--src/mame/includes/sorcerer.h (renamed from src/mess/includes/sorcerer.h)2
-rw-r--r--src/mame/includes/special.h (renamed from src/mess/includes/special.h)0
-rw-r--r--src/mame/includes/spectrum.h (renamed from src/mess/includes/spectrum.h)2
-rw-r--r--src/mame/includes/spiders.h9
-rw-r--r--src/mame/includes/spy.h5
-rw-r--r--src/mame/includes/ssystem3.h (renamed from src/mess/includes/ssystem3.h)30
-rw-r--r--src/mame/includes/suna16.h10
-rw-r--r--src/mame/includes/suna8.h11
-rw-r--r--src/mame/includes/supbtime.h1
-rw-r--r--src/mame/includes/super6.h (renamed from src/mess/includes/super6.h)0
-rw-r--r--src/mame/includes/super80.h (renamed from src/mess/includes/super80.h)0
-rw-r--r--src/mame/includes/superqix.h1
-rw-r--r--src/mame/includes/superslave.h (renamed from src/mess/includes/superslave.h)0
-rw-r--r--src/mame/includes/suprslam.h1
-rw-r--r--src/mame/includes/svi318.h (renamed from src/mess/includes/svi318.h)0
-rw-r--r--src/mame/includes/svision.h (renamed from src/mess/includes/svision.h)0
-rw-r--r--src/mame/includes/swtpc09.h (renamed from src/mess/includes/swtpc09.h)0
-rw-r--r--src/mame/includes/system1.h7
-rw-r--r--src/mame/includes/system16.h3
-rw-r--r--src/mame/includes/taito_b.h1
-rw-r--r--src/mame/includes/taito_f2.h2
-rw-r--r--src/mame/includes/taito_f3.h12
-rw-r--r--src/mame/includes/taito_o.h3
-rw-r--r--src/mame/includes/taitoair.h4
-rw-r--r--src/mame/includes/tandy2k.h (renamed from src/mess/includes/tandy2k.h)0
-rw-r--r--src/mame/includes/tank8.h59
-rw-r--r--src/mame/includes/tdv2324.h (renamed from src/mess/includes/tdv2324.h)0
-rw-r--r--src/mame/includes/tek405x.h (renamed from src/mess/includes/tek405x.h)0
-rw-r--r--src/mame/includes/thomson.h (renamed from src/mess/includes/thomson.h)52
-rw-r--r--src/mame/includes/ti85.h (renamed from src/mess/includes/ti85.h)0
-rw-r--r--src/mame/includes/ti89.h (renamed from src/mess/includes/ti89.h)0
-rw-r--r--src/mame/includes/tiki100.h (renamed from src/mess/includes/tiki100.h)68
-rw-r--r--src/mame/includes/tmc1800.h (renamed from src/mess/includes/tmc1800.h)0
-rw-r--r--src/mame/includes/tmc2000e.h (renamed from src/mess/includes/tmc2000e.h)0
-rw-r--r--src/mame/includes/tmc600.h (renamed from src/mess/includes/tmc600.h)0
-rw-r--r--src/mame/includes/tnzs.h24
-rw-r--r--src/mame/includes/trackfld.h1
-rw-r--r--src/mame/includes/trs80.h (renamed from src/mess/includes/trs80.h)0
-rw-r--r--src/mame/includes/trs80m2.h (renamed from src/mess/includes/trs80m2.h)0
-rw-r--r--src/mame/includes/tsispch.h (renamed from src/mess/includes/tsispch.h)0
-rw-r--r--src/mame/includes/tumbleb.h1
-rw-r--r--src/mame/includes/tumblep.h1
-rw-r--r--src/mame/includes/tutankhm.h7
-rw-r--r--src/mame/includes/tx0.h (renamed from src/mess/includes/tx0.h)12
-rw-r--r--src/mame/includes/ultraman.h7
-rw-r--r--src/mame/includes/ut88.h (renamed from src/mess/includes/ut88.h)0
-rw-r--r--src/mame/includes/v1050.h (renamed from src/mess/includes/v1050.h)0
-rw-r--r--src/mame/includes/vc4000.h (renamed from src/mess/includes/vc4000.h)7
-rw-r--r--src/mame/includes/vcs80.h (renamed from src/mess/includes/vcs80.h)0
-rw-r--r--src/mame/includes/vector06.h (renamed from src/mess/includes/vector06.h)70
-rw-r--r--src/mame/includes/vic10.h (renamed from src/mess/includes/vic10.h)0
-rw-r--r--src/mame/includes/vic20.h (renamed from src/mess/includes/vic20.h)0
-rw-r--r--src/mame/includes/vicdual.h17
-rw-r--r--src/mame/includes/victor9k.h (renamed from src/mess/includes/victor9k.h)0
-rw-r--r--src/mame/includes/vidbrain.h (renamed from src/mess/includes/vidbrain.h)0
-rw-r--r--src/mame/includes/vip.h (renamed from src/mess/includes/vip.h)0
-rw-r--r--src/mame/includes/vixen.h (renamed from src/mess/includes/vixen.h)0
-rw-r--r--src/mame/includes/volfied.h1
-rw-r--r--src/mame/includes/vtech2.h (renamed from src/mess/includes/vtech2.h)0
-rw-r--r--src/mame/includes/wangpc.h (renamed from src/mess/includes/wangpc.h)0
-rw-r--r--src/mame/includes/warpwarp.h19
-rw-r--r--src/mame/includes/wgp.h11
-rw-r--r--src/mame/includes/wswan.h (renamed from src/mess/includes/wswan.h)0
-rw-r--r--src/mame/includes/x07.h (renamed from src/mess/includes/x07.h)0
-rw-r--r--src/mame/includes/x1.h (renamed from src/mess/includes/x1.h)0
-rw-r--r--src/mame/includes/x68k.h (renamed from src/mess/includes/x68k.h)0
-rw-r--r--src/mame/includes/xbox.h321
-rw-r--r--src/mame/includes/xerox820.h (renamed from src/mess/includes/xerox820.h)0
-rw-r--r--src/mame/includes/xexex.h1
-rw-r--r--src/mame/includes/xmen.h10
-rw-r--r--src/mame/includes/xor100.h (renamed from src/mess/includes/xor100.h)0
-rw-r--r--src/mame/includes/xxmissio.h2
-rw-r--r--src/mame/includes/z80ne.h (renamed from src/mess/includes/z80ne.h)0
-rw-r--r--src/mame/includes/z88.h (renamed from src/mess/includes/z88.h)0
-rw-r--r--src/mame/includes/zx.h (renamed from src/mess/includes/zx.h)0
-rw-r--r--src/mame/layout/4004clk.lay47
-rw-r--r--src/mame/layout/abc1600.lay (renamed from src/mess/layout/abc1600.lay)0
-rw-r--r--src/mame/layout/acrnsys1.lay (renamed from src/mess/layout/acrnsys1.lay)0
-rw-r--r--src/mame/layout/aim65.lay135
-rw-r--r--src/mame/layout/aim65_40.lay (renamed from src/mess/layout/aim65_40.lay)0
-rw-r--r--src/mame/layout/amaztron.lay (renamed from src/mess/layout/amaztron.lay)0
-rw-r--r--src/mame/layout/amico2k.lay (renamed from src/mess/layout/amico2k.lay)0
-rw-r--r--src/mame/layout/amiga.lay (renamed from src/mess/layout/amiga.lay)0
-rw-r--r--src/mame/layout/apollo.lay (renamed from src/mess/layout/apollo.lay)0
-rw-r--r--src/mame/layout/apollo_15i.lay (renamed from src/mess/layout/apollo_15i.lay)0
-rw-r--r--src/mame/layout/apollo_dsp.lay (renamed from src/mess/layout/apollo_dsp.lay)0
-rw-r--r--src/mame/layout/apricotp.lay (renamed from src/mess/layout/apricotp.lay)0
-rw-r--r--src/mame/layout/aquastge.lay15
-rw-r--r--src/mame/layout/astro.lay (renamed from src/mess/layout/astro.lay)0
-rw-r--r--src/mame/layout/avigo.lay (renamed from src/mess/layout/avigo.lay)0
-rw-r--r--src/mame/layout/babbage.lay (renamed from src/mess/layout/babbage.lay)0
-rw-r--r--src/mame/layout/bankshot.lay (renamed from src/mess/layout/bankshot.lay)0
-rw-r--r--src/mame/layout/bbc.lay (renamed from src/mess/layout/bbc.lay)0
-rw-r--r--src/mame/layout/beta.lay (renamed from src/mess/layout/beta.lay)0
-rw-r--r--src/mame/layout/bigtrak.lay (renamed from src/mess/layout/bigtrak.lay)0
-rw-r--r--src/mame/layout/bitgrpha.lay (renamed from src/mess/layout/bitgrpha.lay)0
-rw-r--r--src/mame/layout/bitgrphb.lay (renamed from src/mess/layout/bitgrphb.lay)0
-rw-r--r--src/mame/layout/bob85.lay (renamed from src/mess/layout/bob85.lay)0
-rw-r--r--src/mame/layout/borisdpl.lay (renamed from src/mess/layout/borisdpl.lay)0
-rw-r--r--src/mame/layout/bridgec3.lay (renamed from src/mess/layout/bridgec3.lay)0
-rw-r--r--src/mame/layout/c80.lay (renamed from src/mess/layout/c80.lay)0
-rw-r--r--src/mame/layout/cc40.lay (renamed from src/mess/layout/cc40.lay)0
-rw-r--r--src/mame/layout/chessmst.lay (renamed from src/mess/layout/chessmst.lay)0
-rw-r--r--src/mame/layout/chesstrv.lay (renamed from src/mess/layout/chesstrv.lay)0
-rw-r--r--src/mame/layout/chexx.lay75
-rw-r--r--src/mame/layout/cmezspin.lay262
-rw-r--r--src/mame/layout/cnsector.lay (renamed from src/mess/layout/cnsector.lay)0
-rw-r--r--src/mame/layout/coco3.lay (renamed from src/mess/layout/coco3.lay)0
-rw-r--r--src/mame/layout/comp4.lay (renamed from src/mess/layout/comp4.lay)0
-rw-r--r--src/mame/layout/cosmicos.lay (renamed from src/mess/layout/cosmicos.lay)0
-rw-r--r--src/mame/layout/cp1.lay (renamed from src/mess/layout/cp1.lay)0
-rw-r--r--src/mame/layout/cvicny.lay (renamed from src/mess/layout/cvicny.lay)0
-rw-r--r--src/mame/layout/dataman.lay78
-rw-r--r--src/mame/layout/digel804.lay (renamed from src/mess/layout/digel804.lay)0
-rw-r--r--src/mame/layout/dmv.lay (renamed from src/mess/layout/dmv.lay)0
-rw-r--r--src/mame/layout/dolphunk.lay (renamed from src/mess/layout/dolphunk.lay)0
-rw-r--r--src/mame/layout/eacc.lay (renamed from src/mess/layout/eacc.lay)0
-rw-r--r--src/mame/layout/ebaskb2.lay (renamed from src/mess/layout/ebaskb2.lay)0
-rw-r--r--src/mame/layout/ebball.lay (renamed from src/mess/layout/ebball.lay)0
-rw-r--r--src/mame/layout/ebball2.lay (renamed from src/mess/layout/ebball2.lay)0
-rw-r--r--src/mame/layout/ebball3.lay (renamed from src/mess/layout/ebball3.lay)0
-rw-r--r--src/mame/layout/efball.lay (renamed from src/mess/layout/efball.lay)0
-rw-r--r--src/mame/layout/efootb4.lay (renamed from src/mess/layout/efootb4.lay)0
-rw-r--r--src/mame/layout/einvader.lay (renamed from src/mess/layout/einvader.lay)0
-rw-r--r--src/mame/layout/einvaderc.lay (renamed from src/mess/layout/einvaderc.lay)0
-rw-r--r--src/mame/layout/elecbowl.lay (renamed from src/mess/layout/elecbowl.lay)0
-rw-r--r--src/mame/layout/elecdet.lay (renamed from src/mess/layout/elecdet.lay)0
-rw-r--r--src/mame/layout/elekscmp.lay (renamed from src/mess/layout/elekscmp.lay)0
-rw-r--r--src/mame/layout/elf2.lay (renamed from src/mess/layout/elf2.lay)0
-rw-r--r--src/mame/layout/esq1by22.lay (renamed from src/mess/layout/esq1by22.lay)0
-rw-r--r--src/mame/layout/esq2by40.lay (renamed from src/mess/layout/esq2by40.lay)0
-rw-r--r--src/mame/layout/et3400.lay (renamed from src/mess/layout/et3400.lay)0
-rw-r--r--src/mame/layout/fb01.lay (renamed from src/mess/layout/fb01.lay)0
-rw-r--r--src/mame/layout/fccpu1.lay17
-rw-r--r--src/mame/layout/fidelz80.lay (renamed from src/mess/layout/fidelz80.lay)0
-rw-r--r--src/mame/layout/funjacks.lay (renamed from src/mess/layout/funjacks.lay)0
-rw-r--r--src/mame/layout/funrlgl.lay (renamed from src/mess/layout/funrlgl.lay)0
-rw-r--r--src/mame/layout/gamecom.lay (renamed from src/mess/layout/gamecom.lay)0
-rw-r--r--src/mame/layout/gjackpot.lay (renamed from src/mess/layout/gjackpot.lay)0
-rw-r--r--src/mame/layout/gl3000s.lay (renamed from src/mess/layout/gl3000s.lay)0
-rw-r--r--src/mame/layout/glasgow.lay (renamed from src/mess/layout/glasgow.lay)0
-rw-r--r--src/mame/layout/gpoker.lay (renamed from src/mess/layout/gpoker.lay)0
-rw-r--r--src/mame/layout/h2hbaseb.lay (renamed from src/mess/layout/h2hbaseb.lay)0
-rw-r--r--src/mame/layout/h2hfootb.lay (renamed from src/mess/layout/h2hfootb.lay)0
-rw-r--r--src/mame/layout/h8.lay (renamed from src/mess/layout/h8.lay)0
-rw-r--r--src/mame/layout/hh_hmcs40_test.lay (renamed from src/mess/layout/hh_hmcs40_test.lay)0
-rw-r--r--src/mame/layout/hh_melps4_test.lay (renamed from src/mess/layout/hh_melps4_test.lay)0
-rw-r--r--src/mame/layout/hh_sm510_test.lay (renamed from src/mess/layout/hh_sm510_test.lay)0
-rw-r--r--src/mame/layout/hh_tms1k_test.lay (renamed from src/mess/layout/hh_tms1k_test.lay)0
-rw-r--r--src/mame/layout/hh_ucom4_test.lay (renamed from src/mess/layout/hh_ucom4_test.lay)0
-rw-r--r--src/mame/layout/ie15.lay (renamed from src/mess/layout/ie15.lay)0
-rw-r--r--src/mame/layout/instruct.lay (renamed from src/mess/layout/instruct.lay)0
-rw-r--r--src/mame/layout/junior.lay (renamed from src/mess/layout/junior.lay)0
-rw-r--r--src/mame/layout/k1003.lay (renamed from src/mess/layout/k1003.lay)0
-rw-r--r--src/mame/layout/kim1.lay (renamed from src/mess/layout/kim1.lay)0
-rw-r--r--src/mame/layout/lantutor.lay (renamed from src/mess/layout/lantutor.lay)2
-rw-r--r--src/mame/layout/lc80.lay (renamed from src/mess/layout/lc80.lay)0
-rw-r--r--src/mame/layout/lightfgt.lay (renamed from src/mess/layout/lightfgt.lay)0
-rw-r--r--src/mame/layout/llc1.lay (renamed from src/mess/layout/llc1.lay)0
-rw-r--r--src/mame/layout/lynx.lay (renamed from src/mess/layout/lynx.lay)0
-rw-r--r--src/mame/layout/mac.lay (renamed from src/mess/layout/mac.lay)0
-rw-r--r--src/mame/layout/maniac.lay (renamed from src/mess/layout/maniac.lay)0
-rw-r--r--src/mame/layout/mathmagi.lay (renamed from src/mess/layout/mathmagi.lay)0
-rw-r--r--src/mame/layout/mbdtower.lay (renamed from src/mess/layout/mbdtower.lay)0
-rw-r--r--src/mame/layout/megacd.lay (renamed from src/mess/layout/megacd.lay)0
-rw-r--r--src/mame/layout/mekd2.lay (renamed from src/mess/layout/mekd2.lay)0
-rw-r--r--src/mame/layout/mephisto.lay (renamed from src/mess/layout/mephisto.lay)0
-rw-r--r--src/mame/layout/merlin.lay (renamed from src/mess/layout/merlin.lay)0
-rw-r--r--src/mame/layout/minicom.lay (renamed from src/mess/layout/minicom.lay)0
-rw-r--r--src/mame/layout/mirage.lay (renamed from src/mess/layout/mirage.lay)0
-rw-r--r--src/mame/layout/mk1.lay (renamed from src/mess/layout/mk1.lay)0
-rw-r--r--src/mame/layout/mk14.lay (renamed from src/mess/layout/mk14.lay)0
-rw-r--r--src/mame/layout/mk2.lay (renamed from src/mess/layout/mk2.lay)0
-rw-r--r--src/mame/layout/mkit09.lay (renamed from src/mess/layout/mkit09.lay)0
-rw-r--r--src/mame/layout/mmd1.lay (renamed from src/mess/layout/mmd1.lay)0
-rw-r--r--src/mame/layout/mmd2.lay (renamed from src/mess/layout/mmd2.lay)0
-rw-r--r--src/mame/layout/mmerlin.lay (renamed from src/mess/layout/mmerlin.lay)0
-rw-r--r--src/mame/layout/monzagp.lay106
-rw-r--r--src/mame/layout/mpf1.lay (renamed from src/mess/layout/mpf1.lay)0
-rw-r--r--src/mame/layout/mpf1b.lay (renamed from src/mess/layout/mpf1b.lay)0
-rw-r--r--src/mame/layout/mpf1p.lay (renamed from src/mess/layout/mpf1p.lay)0
-rw-r--r--src/mame/layout/mvbfree.lay (renamed from src/mess/layout/mvbfree.lay)0
-rw-r--r--src/mame/layout/newbrain.lay (renamed from src/mess/layout/newbrain.lay)0
-rw-r--r--src/mame/layout/pairmtch.lay201
-rw-r--r--src/mame/layout/pc1500.lay (renamed from src/mess/layout/pc1500.lay)0
-rw-r--r--src/mame/layout/pc8500.lay (renamed from src/mess/layout/pc8500.lay)0
-rw-r--r--src/mame/layout/pcw.lay (renamed from src/mess/layout/pcw.lay)0
-rw-r--r--src/mame/layout/piggypas.lay27
-rw-r--r--src/mame/layout/pmi80.lay (renamed from src/mess/layout/pmi80.lay)0
-rw-r--r--src/mame/layout/poly880.lay (renamed from src/mess/layout/poly880.lay)0
-rw-r--r--src/mame/layout/pro80.lay (renamed from src/mess/layout/pro80.lay)0
-rw-r--r--src/mame/layout/pve500.lay (renamed from src/mess/layout/pve500.lay)0
-rw-r--r--src/mame/layout/px4.lay (renamed from src/mess/layout/px4.lay)0
-rw-r--r--src/mame/layout/px8.lay (renamed from src/mess/layout/px8.lay)0
-rw-r--r--src/mame/layout/rainbow.lay (renamed from src/mess/layout/rainbow.lay)0
-rw-r--r--src/mame/layout/ravens.lay (renamed from src/mess/layout/ravens.lay)0
-rw-r--r--src/mame/layout/savia84.lay (renamed from src/mess/layout/savia84.lay)0
-rw-r--r--src/mame/layout/sc1.lay (renamed from src/mess/layout/sc1.lay)0
-rw-r--r--src/mame/layout/sc2.lay (renamed from src/mess/layout/sc2.lay)0
-rw-r--r--src/mame/layout/sdk85.lay (renamed from src/mess/layout/sdk85.lay)0
-rw-r--r--src/mame/layout/sdk86.lay (renamed from src/mess/layout/sdk86.lay)0
-rw-r--r--src/mame/layout/selz80.lay (renamed from src/mess/layout/selz80.lay)0
-rw-r--r--src/mame/layout/simon.lay (renamed from src/mess/layout/simon.lay)0
-rw-r--r--src/mame/layout/sitcom.lay (renamed from src/mess/layout/sitcom.lay)0
-rw-r--r--src/mame/layout/slc1.lay (renamed from src/mess/layout/slc1.lay)0
-rw-r--r--src/mame/layout/sms1.lay (renamed from src/mess/layout/sms1.lay)0
-rw-r--r--src/mame/layout/snmath.lay68
-rw-r--r--src/mame/layout/snspell.lay (renamed from src/mess/layout/snspell.lay)8
-rw-r--r--src/mame/layout/splitsec.lay (renamed from src/mess/layout/splitsec.lay)0
-rw-r--r--src/mame/layout/sr16.lay (renamed from src/mess/layout/sr16.lay)0
-rw-r--r--src/mame/layout/ssimon.lay (renamed from src/mess/layout/ssimon.lay)0
-rw-r--r--src/mame/layout/starwbc.lay (renamed from src/mess/layout/starwbc.lay)0
-rw-r--r--src/mame/layout/stopthie.lay (renamed from src/mess/layout/stopthie.lay)0
-rw-r--r--src/mame/layout/super80.lay (renamed from src/mess/layout/super80.lay)0
-rw-r--r--src/mame/layout/svision.lay (renamed from src/mess/layout/svision.lay)0
-rw-r--r--src/mame/layout/svmu.lay (renamed from src/mess/layout/svmu.lay)0
-rw-r--r--src/mame/layout/sym1.lay (renamed from src/mess/layout/sym1.lay)0
-rw-r--r--src/mame/layout/tactix.lay150
-rw-r--r--src/mame/layout/tama.lay (renamed from src/mess/layout/tama.lay)0
-rw-r--r--src/mame/layout/tandy12.lay (renamed from src/mess/layout/tandy12.lay)0
-rw-r--r--src/mame/layout/tavernie.lay (renamed from src/mess/layout/tavernie.lay)0
-rw-r--r--src/mame/layout/tb303.lay45
-rw-r--r--src/mame/layout/tbreakup.lay (renamed from src/mess/layout/tbreakup.lay)0
-rw-r--r--src/mame/layout/tc4.lay (renamed from src/mess/layout/tc4.lay)0
-rw-r--r--src/mame/layout/tec1.lay (renamed from src/mess/layout/tec1.lay)0
-rw-r--r--src/mame/layout/tecnbras.lay (renamed from src/mess/layout/tecnbras.lay)0
-rw-r--r--src/mame/layout/ti1270.lay (renamed from src/mess/layout/ti1270.lay)0
-rw-r--r--src/mame/layout/ti30.lay (renamed from src/mess/layout/ti30.lay)0
-rw-r--r--src/mame/layout/ti74.lay (renamed from src/mess/layout/ti74.lay)0
-rw-r--r--src/mame/layout/ti95.lay (renamed from src/mess/layout/ti95.lay)0
-rw-r--r--src/mame/layout/tisr16.lay (renamed from src/mess/layout/tisr16.lay)0
-rw-r--r--src/mame/layout/tk80.lay (renamed from src/mess/layout/tk80.lay)0
-rw-r--r--src/mame/layout/tm990189.lay (renamed from src/mess/layout/tm990189.lay)0
-rw-r--r--src/mame/layout/tm990189v.lay (renamed from src/mess/layout/tm990189v.lay)0
-rw-r--r--src/mame/layout/tntell.lay101
-rw-r--r--src/mame/layout/unixpc.lay (renamed from src/mess/layout/unixpc.lay)0
-rw-r--r--src/mame/layout/ut88mini.lay (renamed from src/mess/layout/ut88mini.lay)0
-rw-r--r--src/mame/layout/vboy.lay (renamed from src/mess/layout/vboy.lay)0
-rw-r--r--src/mame/layout/vcs80.lay (renamed from src/mess/layout/vcs80.lay)0
-rw-r--r--src/mame/layout/vidbrain.lay (renamed from src/mess/layout/vidbrain.lay)0
-rw-r--r--src/mame/layout/vk100.lay (renamed from src/mess/layout/vk100.lay)0
-rw-r--r--src/mame/layout/votrpss.lay (renamed from src/mess/layout/votrpss.lay)0
-rw-r--r--src/mame/layout/votrtnt.lay (renamed from src/mess/layout/votrtnt.lay)0
-rw-r--r--src/mame/layout/vsc.lay (renamed from src/mess/layout/vsc.lay)0
-rw-r--r--src/mame/layout/vt100.lay (renamed from src/mess/layout/vt100.lay)0
-rw-r--r--src/mame/layout/wicat.lay (renamed from src/mess/layout/wicat.lay)0
-rw-r--r--src/mame/layout/wildfire.lay (renamed from src/mess/layout/wildfire.lay)0
-rw-r--r--src/mame/layout/wizatron.lay (renamed from src/mess/layout/wizatron.lay)0
-rw-r--r--src/mame/layout/wswan.lay (renamed from src/mess/layout/wswan.lay)0
-rw-r--r--src/mame/layout/x68000.lay (renamed from src/mess/layout/x68000.lay)0
-rw-r--r--src/mame/layout/z80dev.lay (renamed from src/mess/layout/z80dev.lay)0
-rw-r--r--src/mame/layout/z80ne.lay (renamed from src/mess/layout/z80ne.lay)0
-rw-r--r--src/mame/layout/z80net.lay (renamed from src/mess/layout/z80net.lay)0
-rw-r--r--src/mame/layout/z80netb.lay (renamed from src/mess/layout/z80netb.lay)0
-rw-r--r--src/mame/layout/z80netf.lay (renamed from src/mess/layout/z80netf.lay)0
-rw-r--r--src/mame/layout/zapcomputer.lay44
-rw-r--r--src/mame/machine/6883sam.c (renamed from src/mess/machine/6883sam.c)0
-rw-r--r--src/mame/machine/6883sam.h (renamed from src/mess/machine/6883sam.h)0
-rw-r--r--src/mame/machine/abc1600mac.c (renamed from src/mess/machine/abc1600mac.c)0
-rw-r--r--src/mame/machine/abc1600mac.h (renamed from src/mess/machine/abc1600mac.h)0
-rw-r--r--src/mame/machine/abc80kb.c (renamed from src/mess/machine/abc80kb.c)0
-rw-r--r--src/mame/machine/abc80kb.h (renamed from src/mess/machine/abc80kb.h)0
-rw-r--r--src/mame/machine/ac1.c (renamed from src/mess/machine/ac1.c)14
-rw-r--r--src/mame/machine/advision.c (renamed from src/mess/machine/advision.c)0
-rw-r--r--src/mame/machine/aim65.c (renamed from src/mess/machine/aim65.c)0
-rw-r--r--src/mame/machine/ajax.c6
-rw-r--r--src/mame/machine/amiga.c62
-rw-r--r--src/mame/machine/amigakbd.c (renamed from src/mess/machine/amigakbd.c)0
-rw-r--r--src/mame/machine/amigakbd.h (renamed from src/mess/machine/amigakbd.h)0
-rw-r--r--src/mame/machine/amstrad.c (renamed from src/mess/machine/amstrad.c)26
-rw-r--r--src/mame/machine/apollo.c (renamed from src/mess/machine/apollo.c)0
-rw-r--r--src/mame/machine/apollo_dbg.c (renamed from src/mess/machine/apollo_dbg.c)0
-rw-r--r--src/mame/machine/apollo_kbd.c (renamed from src/mess/machine/apollo_kbd.c)0
-rw-r--r--src/mame/machine/apollo_kbd.h (renamed from src/mess/machine/apollo_kbd.h)0
-rw-r--r--src/mame/machine/appldriv.c (renamed from src/mess/machine/appldriv.c)0
-rw-r--r--src/mame/machine/appldriv.h (renamed from src/mess/machine/appldriv.h)0
-rw-r--r--src/mame/machine/apple1.c (renamed from src/mess/machine/apple1.c)0
-rw-r--r--src/mame/machine/apple2.c (renamed from src/mess/machine/apple2.c)0
-rw-r--r--src/mame/machine/apple2gs.c (renamed from src/mess/machine/apple2gs.c)2
-rw-r--r--src/mame/machine/apple3.c (renamed from src/mess/machine/apple3.c)0
-rw-r--r--src/mame/machine/applefdc.c (renamed from src/mess/machine/applefdc.c)0
-rw-r--r--src/mame/machine/applefdc.h (renamed from src/mess/machine/applefdc.h)0
-rw-r--r--src/mame/machine/apricotkb.c (renamed from src/mess/machine/apricotkb.c)0
-rw-r--r--src/mame/machine/apricotkb.h (renamed from src/mess/machine/apricotkb.h)0
-rw-r--r--src/mame/machine/apricotkb_hle.c (renamed from src/mess/machine/apricotkb_hle.c)0
-rw-r--r--src/mame/machine/apricotkb_hle.h (renamed from src/mess/machine/apricotkb_hle.h)0
-rw-r--r--src/mame/machine/at.c (renamed from src/mess/machine/at.c)17
-rw-r--r--src/mame/machine/atari.c12
-rw-r--r--src/mame/machine/atari_vg.c117
-rw-r--r--src/mame/machine/atari_vg.h7
-rw-r--r--src/mame/machine/atarifdc.c (renamed from src/mess/machine/atarifdc.c)0
-rw-r--r--src/mame/machine/atarifdc.h (renamed from src/mess/machine/atarifdc.h)0
-rw-r--r--src/mame/machine/awboard.c10
-rw-r--r--src/mame/machine/b2m.c (renamed from src/mess/machine/b2m.c)0
-rw-r--r--src/mame/machine/bbc.c (renamed from src/mess/machine/bbc.c)701
-rw-r--r--src/mame/machine/bebox.c (renamed from src/mess/machine/bebox.c)37
-rw-r--r--src/mame/machine/beta.c (renamed from src/mess/machine/beta.c)0
-rw-r--r--src/mame/machine/beta.h (renamed from src/mess/machine/beta.h)0
-rw-r--r--src/mame/machine/bk.c (renamed from src/mess/machine/bk.c)0
-rw-r--r--src/mame/machine/c65_old.c (renamed from src/mess/machine/c65_old.c)0
-rw-r--r--src/mame/machine/cbm_snqk.c (renamed from src/mess/machine/cbm_snqk.c)0
-rw-r--r--src/mame/machine/cbm_snqk.h (renamed from src/mess/machine/cbm_snqk.h)0
-rw-r--r--src/mame/machine/cdi070.c2
-rw-r--r--src/mame/machine/cdi070.h2
-rw-r--r--src/mame/machine/cdicdic.c2
-rw-r--r--src/mame/machine/cdicdic.h2
-rw-r--r--src/mame/machine/cdislave.c2
-rw-r--r--src/mame/machine/cdislave.h2
-rw-r--r--src/mame/machine/coco.c (renamed from src/mess/machine/coco.c)54
-rw-r--r--src/mame/machine/coco12.c (renamed from src/mess/machine/coco12.c)5
-rw-r--r--src/mame/machine/coco3.c (renamed from src/mess/machine/coco3.c)0
-rw-r--r--src/mame/machine/coco_vhd.c (renamed from src/mess/machine/coco_vhd.c)0
-rw-r--r--src/mame/machine/coco_vhd.h (renamed from src/mess/machine/coco_vhd.h)0
-rw-r--r--src/mame/machine/coleco.c (renamed from src/mess/machine/coleco.c)92
-rw-r--r--src/mame/machine/coleco.h (renamed from src/mess/machine/coleco.h)3
-rw-r--r--src/mame/machine/compiskb.c (renamed from src/mess/machine/compiskb.c)0
-rw-r--r--src/mame/machine/compiskb.h (renamed from src/mess/machine/compiskb.h)0
-rw-r--r--src/mame/machine/concept.c (renamed from src/mess/machine/concept.c)0
-rw-r--r--src/mame/machine/cuda.c (renamed from src/mess/machine/cuda.c)0
-rw-r--r--src/mame/machine/cuda.h (renamed from src/mess/machine/cuda.h)0
-rw-r--r--src/mame/machine/cx4data.inc (renamed from src/mess/machine/cx4data.inc)0
-rw-r--r--src/mame/machine/cx4fn.inc (renamed from src/mess/machine/cx4fn.inc)0
-rw-r--r--src/mame/machine/cx4oam.inc (renamed from src/mess/machine/cx4oam.inc)0
-rw-r--r--src/mame/machine/cx4ops.inc (renamed from src/mess/machine/cx4ops.inc)0
-rw-r--r--src/mame/machine/cybiko.c (renamed from src/mess/machine/cybiko.c)5
-rw-r--r--src/mame/machine/dai.c (renamed from src/mess/machine/dai.c)0
-rw-r--r--src/mame/machine/dc-ctrl.c42
-rw-r--r--src/mame/machine/dc-ctrl.h6
-rw-r--r--src/mame/machine/dc.c10
-rw-r--r--src/mame/machine/dccons.c (renamed from src/mess/machine/dccons.c)25
-rw-r--r--src/mame/machine/dec_lk201.c (renamed from src/mess/machine/dec_lk201.c)0
-rw-r--r--src/mame/machine/dec_lk201.h (renamed from src/mess/machine/dec_lk201.h)0
-rw-r--r--src/mame/machine/deco146.c2
-rw-r--r--src/mame/machine/dgn_beta.c (renamed from src/mess/machine/dgn_beta.c)0
-rw-r--r--src/mame/machine/dgnalpha.c (renamed from src/mess/machine/dgnalpha.c)0
-rw-r--r--src/mame/machine/dmv_keyb.c (renamed from src/mess/machine/dmv_keyb.c)0
-rw-r--r--src/mame/machine/dmv_keyb.h (renamed from src/mess/machine/dmv_keyb.h)0
-rw-r--r--src/mame/machine/docg3.c (renamed from src/mess/machine/docg3.c)0
-rw-r--r--src/mame/machine/docg3.h (renamed from src/mess/machine/docg3.h)0
-rw-r--r--src/mame/machine/dragon.c (renamed from src/mess/machine/dragon.c)12
-rw-r--r--src/mame/machine/egret.c (renamed from src/mess/machine/egret.c)0
-rw-r--r--src/mame/machine/egret.h (renamed from src/mess/machine/egret.h)0
-rw-r--r--src/mame/machine/einstein.c (renamed from src/mess/machine/einstein.c)0
-rw-r--r--src/mame/machine/electron.c (renamed from src/mess/machine/electron.c)8
-rw-r--r--src/mame/machine/esqpanel.c (renamed from src/mess/machine/esqpanel.c)0
-rw-r--r--src/mame/machine/esqpanel.h (renamed from src/mess/machine/esqpanel.h)0
-rw-r--r--src/mame/machine/esqvfd.c (renamed from src/mess/machine/esqvfd.c)0
-rw-r--r--src/mame/machine/esqvfd.h (renamed from src/mess/machine/esqvfd.h)0
-rw-r--r--src/mame/machine/fd1089.c2
-rw-r--r--src/mame/machine/fd1094.c10
-rw-r--r--src/mame/machine/fm_scsi.c (renamed from src/mess/machine/fm_scsi.c)0
-rw-r--r--src/mame/machine/fm_scsi.h (renamed from src/mess/machine/fm_scsi.h)0
-rw-r--r--src/mame/machine/gaelco2.c18
-rw-r--r--src/mame/machine/galaxy.c (renamed from src/mess/machine/galaxy.c)0
-rw-r--r--src/mame/machine/gamecom.c (renamed from src/mess/machine/gamecom.c)0
-rw-r--r--src/mame/machine/gamepock.c (renamed from src/mess/machine/gamepock.c)0
-rw-r--r--src/mame/machine/gb.c (renamed from src/mess/machine/gb.c)0
-rw-r--r--src/mame/machine/genpc.c (renamed from src/mess/machine/genpc.c)0
-rw-r--r--src/mame/machine/harddriv.c17
-rw-r--r--src/mame/machine/hec2hrp.c (renamed from src/mess/machine/hec2hrp.c)0
-rw-r--r--src/mame/machine/hecdisk2.c (renamed from src/mess/machine/hecdisk2.c)0
-rw-r--r--src/mame/machine/hng64_net.c2
-rw-r--r--src/mame/machine/hp48.c (renamed from src/mess/machine/hp48.c)0
-rw-r--r--src/mame/machine/ie15_kbd.c (renamed from src/mess/machine/ie15_kbd.c)0
-rw-r--r--src/mame/machine/ie15_kbd.h (renamed from src/mess/machine/ie15_kbd.h)0
-rw-r--r--src/mame/machine/intv.c (renamed from src/mess/machine/intv.c)0
-rw-r--r--src/mame/machine/isbc_215g.c (renamed from src/mess/machine/isbc_215g.c)0
-rw-r--r--src/mame/machine/isbc_215g.h (renamed from src/mess/machine/isbc_215g.h)0
-rw-r--r--src/mame/machine/iteagle_fpga.c74
-rw-r--r--src/mame/machine/iteagle_fpga.h2
-rw-r--r--src/mame/machine/jvs13551.c37
-rw-r--r--src/mame/machine/jvs13551.h3
-rw-r--r--src/mame/machine/k7659kb.c (renamed from src/mess/machine/k7659kb.c)0
-rw-r--r--src/mame/machine/k7659kb.h (renamed from src/mess/machine/k7659kb.h)0
-rw-r--r--src/mame/machine/kay_kbd.c (renamed from src/mess/machine/kay_kbd.c)0
-rw-r--r--src/mame/machine/kaypro.c (renamed from src/mess/machine/kaypro.c)0
-rw-r--r--src/mame/machine/kb_7007_3.h (renamed from src/mess/machine/kb_7007_3.h)0
-rw-r--r--src/mame/machine/kb_poisk1.h (renamed from src/mess/machine/kb_poisk1.h)0
-rw-r--r--src/mame/machine/kc.c (renamed from src/mess/machine/kc.c)0
-rw-r--r--src/mame/machine/kc_keyb.c (renamed from src/mess/machine/kc_keyb.c)0
-rw-r--r--src/mame/machine/kc_keyb.h (renamed from src/mess/machine/kc_keyb.h)0
-rw-r--r--src/mame/machine/kramermc.c (renamed from src/mess/machine/kramermc.c)0
-rw-r--r--src/mame/machine/lisa.c (renamed from src/mess/machine/lisa.c)0
-rw-r--r--src/mame/machine/llc.c (renamed from src/mess/machine/llc.c)0
-rw-r--r--src/mame/machine/lviv.c (renamed from src/mess/machine/lviv.c)0
-rw-r--r--src/mame/machine/lynx.c (renamed from src/mess/machine/lynx.c)0
-rw-r--r--src/mame/machine/m1comm.c4
-rw-r--r--src/mame/machine/m20_8086.c (renamed from src/mess/machine/m20_8086.c)0
-rw-r--r--src/mame/machine/m20_8086.h (renamed from src/mess/machine/m20_8086.h)0
-rw-r--r--src/mame/machine/m20_kbd.c (renamed from src/mess/machine/m20_kbd.c)0
-rw-r--r--src/mame/machine/m20_kbd.h (renamed from src/mess/machine/m20_kbd.h)0
-rw-r--r--src/mame/machine/m24_kbd.c (renamed from src/mess/machine/m24_kbd.c)0
-rw-r--r--src/mame/machine/m24_kbd.h (renamed from src/mess/machine/m24_kbd.h)0
-rw-r--r--src/mame/machine/m24_z8000.c (renamed from src/mess/machine/m24_z8000.c)0
-rw-r--r--src/mame/machine/m24_z8000.h (renamed from src/mess/machine/m24_z8000.h)0
-rw-r--r--src/mame/machine/m2comm.c597
-rw-r--r--src/mame/machine/m2comm.h89
-rw-r--r--src/mame/machine/mac.c (renamed from src/mess/machine/mac.c)0
-rw-r--r--src/mame/machine/macadb.c (renamed from src/mess/machine/macadb.c)0
-rw-r--r--src/mame/machine/mackbd.c (renamed from src/mess/machine/mackbd.c)0
-rw-r--r--src/mame/machine/mackbd.h (renamed from src/mess/machine/mackbd.h)0
-rw-r--r--src/mame/machine/macpci.c (renamed from src/mess/machine/macpci.c)0
-rw-r--r--src/mame/machine/macrtc.c (renamed from src/mess/machine/macrtc.c)0
-rw-r--r--src/mame/machine/macrtc.h (renamed from src/mess/machine/macrtc.h)0
-rw-r--r--src/mame/machine/mbc55x.c (renamed from src/mess/machine/mbc55x.c)0
-rw-r--r--src/mame/machine/mbee.c (renamed from src/mess/machine/mbee.c)7
-rw-r--r--src/mame/machine/mboard.c (renamed from src/mess/machine/mboard.c)27
-rw-r--r--src/mame/machine/mc80.c (renamed from src/mess/machine/mc80.c)0
-rw-r--r--src/mame/machine/mc8123.h1
-rw-r--r--src/mame/machine/mega32x.c (renamed from src/mess/machine/mega32x.c)4
-rw-r--r--src/mame/machine/mega32x.h (renamed from src/mess/machine/mega32x.h)0
-rw-r--r--src/mame/machine/megacd.c (renamed from src/mess/machine/megacd.c)0
-rw-r--r--src/mame/machine/megacd.h (renamed from src/mess/machine/megacd.h)0
-rw-r--r--src/mame/machine/megacdcd.c (renamed from src/mess/machine/megacdcd.c)0
-rw-r--r--src/mame/machine/megacdcd.h (renamed from src/mess/machine/megacdcd.h)0
-rw-r--r--src/mame/machine/megadriv.c24
-rw-r--r--src/mame/machine/micro3d.c18
-rw-r--r--src/mame/machine/microdrv.c (renamed from src/mess/machine/microdrv.c)0
-rw-r--r--src/mame/machine/microdrv.h (renamed from src/mess/machine/microdrv.h)0
-rw-r--r--src/mame/machine/micropolis.c (renamed from src/mess/machine/micropolis.c)0
-rw-r--r--src/mame/machine/micropolis.h (renamed from src/mess/machine/micropolis.h)0
-rw-r--r--src/mame/machine/microtan.c (renamed from src/mess/machine/microtan.c)0
-rw-r--r--src/mame/machine/mie.c26
-rw-r--r--src/mame/machine/mie.h1
-rw-r--r--src/mame/machine/mikro80.c (renamed from src/mess/machine/mikro80.c)0
-rw-r--r--src/mame/machine/mm1kb.c (renamed from src/mess/machine/mm1kb.c)35
-rw-r--r--src/mame/machine/mm1kb.h (renamed from src/mess/machine/mm1kb.h)22
-rw-r--r--src/mame/machine/model3.c2
-rw-r--r--src/mame/machine/ms7004.c (renamed from src/mess/machine/ms7004.c)15
-rw-r--r--src/mame/machine/ms7004.h (renamed from src/mess/machine/ms7004.h)0
-rw-r--r--src/mame/machine/msx.c (renamed from src/mess/machine/msx.c)10
-rw-r--r--src/mame/machine/msx_matsushita.c (renamed from src/mess/machine/msx_matsushita.c)0
-rw-r--r--src/mame/machine/msx_matsushita.h (renamed from src/mess/machine/msx_matsushita.h)0
-rw-r--r--src/mame/machine/msx_s1985.c (renamed from src/mess/machine/msx_s1985.c)0
-rw-r--r--src/mame/machine/msx_s1985.h (renamed from src/mess/machine/msx_s1985.h)0
-rw-r--r--src/mame/machine/msx_switched.c (renamed from src/mess/machine/msx_switched.c)0
-rw-r--r--src/mame/machine/msx_switched.h (renamed from src/mess/machine/msx_switched.h)0
-rw-r--r--src/mame/machine/msx_systemflags.c (renamed from src/mess/machine/msx_systemflags.c)0
-rw-r--r--src/mame/machine/msx_systemflags.h (renamed from src/mess/machine/msx_systemflags.h)0
-rw-r--r--src/mame/machine/mtx.c (renamed from src/mess/machine/mtx.c)0
-rw-r--r--src/mame/machine/mz700.c (renamed from src/mess/machine/mz700.c)0
-rw-r--r--src/mame/machine/mz80.c (renamed from src/mess/machine/mz80.c)0
-rw-r--r--src/mame/machine/n64.c137
-rw-r--r--src/mame/machine/namco62.c2
-rw-r--r--src/mame/machine/namco62.h2
-rw-r--r--src/mame/machine/namcond1.c23
-rw-r--r--src/mame/machine/namcos1.c8
-rw-r--r--src/mame/machine/nc.c (renamed from src/mess/machine/nc.c)0
-rw-r--r--src/mame/machine/nes.c (renamed from src/mess/machine/nes.c)0
-rw-r--r--src/mame/machine/nextkbd.c (renamed from src/mess/machine/nextkbd.c)0
-rw-r--r--src/mame/machine/nextkbd.h (renamed from src/mess/machine/nextkbd.h)0
-rw-r--r--src/mame/machine/nextmo.c (renamed from src/mess/machine/nextmo.c)0
-rw-r--r--src/mame/machine/nextmo.h (renamed from src/mess/machine/nextmo.h)0
-rw-r--r--src/mame/machine/ngen_kb.c (renamed from src/mess/machine/ngen_kb.c)0
-rw-r--r--src/mame/machine/ngen_kb.h (renamed from src/mess/machine/ngen_kb.h)0
-rw-r--r--src/mame/machine/nmk004.c2
-rw-r--r--src/mame/machine/ns10crypt.c415
-rw-r--r--src/mame/machine/ns10crypt.h108
-rw-r--r--src/mame/machine/ondra.c (renamed from src/mess/machine/ondra.c)0
-rw-r--r--src/mame/machine/orao.c80
-rw-r--r--src/mame/machine/orion.c (renamed from src/mess/machine/orion.c)2
-rw-r--r--src/mame/machine/osborne1.c (renamed from src/mess/machine/osborne1.c)0
-rw-r--r--src/mame/machine/p2000t.c (renamed from src/mess/machine/p2000t.c)0
-rw-r--r--src/mame/machine/partner.c (renamed from src/mess/machine/partner.c)0
-rw-r--r--src/mame/machine/pc1251.c (renamed from src/mess/machine/pc1251.c)0
-rw-r--r--src/mame/machine/pc1350.c (renamed from src/mess/machine/pc1350.c)0
-rw-r--r--src/mame/machine/pc1401.c (renamed from src/mess/machine/pc1401.c)0
-rw-r--r--src/mame/machine/pc1403.c (renamed from src/mess/machine/pc1403.c)0
-rw-r--r--src/mame/machine/pc1512kb.c (renamed from src/mess/machine/pc1512kb.c)0
-rw-r--r--src/mame/machine/pc1512kb.h (renamed from src/mess/machine/pc1512kb.h)0
-rw-r--r--src/mame/machine/pc9801_118.c (renamed from src/mess/machine/pc9801_118.c)0
-rw-r--r--src/mame/machine/pc9801_118.h (renamed from src/mess/machine/pc9801_118.h)0
-rw-r--r--src/mame/machine/pc9801_26.c (renamed from src/mess/machine/pc9801_26.c)0
-rw-r--r--src/mame/machine/pc9801_26.h (renamed from src/mess/machine/pc9801_26.h)0
-rw-r--r--src/mame/machine/pc9801_86.c (renamed from src/mess/machine/pc9801_86.c)0
-rw-r--r--src/mame/machine/pc9801_86.h (renamed from src/mess/machine/pc9801_86.h)0
-rw-r--r--src/mame/machine/pc9801_cbus.c (renamed from src/mess/machine/pc9801_cbus.c)0
-rw-r--r--src/mame/machine/pc9801_cbus.h (renamed from src/mess/machine/pc9801_cbus.h)0
-rw-r--r--src/mame/machine/pc9801_kbd.c (renamed from src/mess/machine/pc9801_kbd.c)0
-rw-r--r--src/mame/machine/pc9801_kbd.h (renamed from src/mess/machine/pc9801_kbd.h)0
-rw-r--r--src/mame/machine/pcd_kbd.c (renamed from src/mess/machine/pcd_kbd.c)9
-rw-r--r--src/mame/machine/pcd_kbd.h (renamed from src/mess/machine/pcd_kbd.h)0
-rw-r--r--src/mame/machine/pce.c (renamed from src/mess/machine/pce.c)16
-rw-r--r--src/mame/machine/pce220_ser.c (renamed from src/mess/machine/pce220_ser.c)0
-rw-r--r--src/mame/machine/pce220_ser.h (renamed from src/mess/machine/pce220_ser.h)0
-rw-r--r--src/mame/machine/pce_cd.c (renamed from src/mess/machine/pce_cd.c)7
-rw-r--r--src/mame/machine/pce_cd.h (renamed from src/mess/machine/pce_cd.h)2
-rw-r--r--src/mame/machine/pecom.c (renamed from src/mess/machine/pecom.c)0
-rw-r--r--src/mame/machine/pgmcrypt.c185
-rw-r--r--src/mame/machine/pgmcrypt.h4
-rw-r--r--src/mame/machine/pgmprot_orlegend.c13
-rw-r--r--src/mame/machine/pk8020.c (renamed from src/mess/machine/pk8020.c)0
-rw-r--r--src/mame/machine/pmd85.c (renamed from src/mess/machine/pmd85.c)0
-rw-r--r--src/mame/machine/poly88.c (renamed from src/mess/machine/poly88.c)0
-rw-r--r--src/mame/machine/pp01.c (renamed from src/mess/machine/pp01.c)0
-rw-r--r--src/mame/machine/primo.c (renamed from src/mess/machine/primo.c)0
-rw-r--r--src/mame/machine/prof80mmu.c (renamed from src/mess/machine/prof80mmu.c)0
-rw-r--r--src/mame/machine/prof80mmu.h (renamed from src/mess/machine/prof80mmu.h)0
-rw-r--r--src/mame/machine/psion_pack.c (renamed from src/mess/machine/psion_pack.c)0
-rw-r--r--src/mame/machine/psion_pack.h (renamed from src/mess/machine/psion_pack.h)0
-rw-r--r--src/mame/machine/psxcd.c (renamed from src/mess/machine/psxcd.c)0
-rw-r--r--src/mame/machine/psxcd.h (renamed from src/mess/machine/psxcd.h)0
-rw-r--r--src/mame/machine/pxa255.h2
-rw-r--r--src/mame/machine/qimi.c (renamed from src/mess/machine/qimi.c)0
-rw-r--r--src/mame/machine/qimi.h (renamed from src/mess/machine/qimi.h)0
-rw-r--r--src/mame/machine/qx10kbd.c (renamed from src/mess/machine/qx10kbd.c)0
-rw-r--r--src/mame/machine/qx10kbd.h (renamed from src/mess/machine/qx10kbd.h)0
-rw-r--r--src/mame/machine/radio86.c (renamed from src/mess/machine/radio86.c)0
-rw-r--r--src/mame/machine/raiden2cop.c10
-rw-r--r--src/mame/machine/rbisland.c (renamed from src/mame/machine/rainbow.c)2
-rw-r--r--src/mame/machine/rm380z.c (renamed from src/mess/machine/rm380z.c)0
-rw-r--r--src/mame/machine/rmnimbus.c (renamed from src/mess/machine/rmnimbus.c)10
-rw-r--r--src/mame/machine/rmnkbd.c (renamed from src/mess/machine/rmnkbd.c)0
-rw-r--r--src/mame/machine/rmnkbd.h (renamed from src/mess/machine/rmnkbd.h)0
-rw-r--r--src/mame/machine/rx01.c (renamed from src/mess/machine/rx01.c)0
-rw-r--r--src/mame/machine/rx01.h (renamed from src/mess/machine/rx01.h)0
-rw-r--r--src/mame/machine/s32comm.c142
-rw-r--r--src/mame/machine/s32comm.h18
-rw-r--r--src/mame/machine/samcoupe.c (renamed from src/mess/machine/samcoupe.c)18
-rw-r--r--src/mame/machine/scramble.c17
-rw-r--r--src/mame/machine/segacrp2.c2
-rw-r--r--src/mame/machine/segacrp2.h2
-rw-r--r--src/mame/machine/sgi.c (renamed from src/mess/machine/sgi.c)0
-rw-r--r--src/mame/machine/sgi.h (renamed from src/mess/machine/sgi.h)0
-rw-r--r--src/mame/machine/slikshot.c4
-rw-r--r--src/mame/machine/smartmed.c (renamed from src/mess/machine/smartmed.c)0
-rw-r--r--src/mame/machine/smartmed.h (renamed from src/mess/machine/smartmed.h)0
-rw-r--r--src/mame/machine/sms.c (renamed from src/mess/machine/sms.c)70
-rw-r--r--src/mame/machine/snes.c6
-rw-r--r--src/mame/machine/snescx4.c (renamed from src/mess/machine/snescx4.c)0
-rw-r--r--src/mame/machine/snescx4.h (renamed from src/mess/machine/snescx4.h)0
-rw-r--r--src/mame/machine/sonydriv.c (renamed from src/mess/machine/sonydriv.c)0
-rw-r--r--src/mame/machine/sonydriv.h (renamed from src/mess/machine/sonydriv.h)0
-rw-r--r--src/mame/machine/sorcerer.c (renamed from src/mess/machine/sorcerer.c)13
-rw-r--r--src/mame/machine/spec_snqk.c (renamed from src/mess/machine/spec_snqk.c)169
-rw-r--r--src/mame/machine/spec_snqk.h (renamed from src/mess/machine/spec_snqk.h)0
-rw-r--r--src/mame/machine/special.c (renamed from src/mess/machine/special.c)0
-rw-r--r--src/mame/machine/super80.c (renamed from src/mess/machine/super80.c)4
-rw-r--r--src/mame/machine/svi318.c (renamed from src/mess/machine/svi318.c)0
-rw-r--r--src/mame/machine/swim.c (renamed from src/mess/machine/swim.c)0
-rw-r--r--src/mame/machine/swim.h (renamed from src/mess/machine/swim.h)0
-rw-r--r--src/mame/machine/swtpc09.c (renamed from src/mess/machine/swtpc09.c)0
-rw-r--r--src/mame/machine/tandy2kb.c (renamed from src/mess/machine/tandy2kb.c)0
-rw-r--r--src/mame/machine/tandy2kb.h (renamed from src/mess/machine/tandy2kb.h)0
-rw-r--r--src/mame/machine/teleprinter.c (renamed from src/mess/machine/teleprinter.c)0
-rw-r--r--src/mame/machine/teleprinter.h (renamed from src/mess/machine/teleprinter.h)0
-rw-r--r--src/mame/machine/thomflop.c (renamed from src/mess/machine/thomflop.c)14
-rw-r--r--src/mame/machine/thomflop.h (renamed from src/mess/machine/thomflop.h)0
-rw-r--r--src/mame/machine/thomson.c (renamed from src/mess/machine/thomson.c)459
-rw-r--r--src/mame/machine/ti85.c (renamed from src/mess/machine/ti85.c)0
-rw-r--r--src/mame/machine/tnzs.c40
-rw-r--r--src/mame/machine/trs80.c (renamed from src/mess/machine/trs80.c)0
-rw-r--r--src/mame/machine/trs80m2kb.c (renamed from src/mess/machine/trs80m2kb.c)0
-rw-r--r--src/mame/machine/trs80m2kb.h (renamed from src/mess/machine/trs80m2kb.h)0
-rw-r--r--src/mame/machine/upd65031.c (renamed from src/mess/machine/upd65031.c)0
-rw-r--r--src/mame/machine/upd65031.h (renamed from src/mess/machine/upd65031.h)0
-rw-r--r--src/mame/machine/ut88.c (renamed from src/mess/machine/ut88.c)0
-rw-r--r--src/mame/machine/v1050kb.c (renamed from src/mess/machine/v1050kb.c)0
-rw-r--r--src/mame/machine/v1050kb.h (renamed from src/mess/machine/v1050kb.h)0
-rw-r--r--src/mame/machine/vector06.c (renamed from src/mess/machine/vector06.c)42
-rw-r--r--src/mame/machine/victor9k_fdc.c (renamed from src/mess/machine/victor9k_fdc.c)0
-rw-r--r--src/mame/machine/victor9k_fdc.h (renamed from src/mess/machine/victor9k_fdc.h)0
-rw-r--r--src/mame/machine/victor9kb.c (renamed from src/mess/machine/victor9kb.c)32
-rw-r--r--src/mame/machine/victor9kb.h (renamed from src/mess/machine/victor9kb.h)0
-rw-r--r--src/mame/machine/vtech2.c (renamed from src/mess/machine/vtech2.c)0
-rw-r--r--src/mame/machine/wangpckb.c (renamed from src/mess/machine/wangpckb.c)0
-rw-r--r--src/mame/machine/wangpckb.h (renamed from src/mess/machine/wangpckb.h)0
-rw-r--r--src/mame/machine/wswan.c (renamed from src/mess/machine/wswan.c)0
-rw-r--r--src/mame/machine/x1.c (renamed from src/mess/machine/x1.c)0
-rw-r--r--src/mame/machine/x68k_hdc.c (renamed from src/mess/machine/x68k_hdc.c)0
-rw-r--r--src/mame/machine/x68k_hdc.h (renamed from src/mess/machine/x68k_hdc.h)0
-rw-r--r--src/mame/machine/x68k_kbd.c (renamed from src/mess/machine/x68k_kbd.c)0
-rw-r--r--src/mame/machine/x68k_kbd.h (renamed from src/mess/machine/x68k_kbd.h)0
-rw-r--r--src/mame/machine/x820kb.c (renamed from src/mess/machine/x820kb.c)0
-rw-r--r--src/mame/machine/x820kb.h (renamed from src/mess/machine/x820kb.h)0
-rw-r--r--src/mame/machine/xbox.c1542
-rw-r--r--src/mame/machine/z80bin.c (renamed from src/mess/machine/z80bin.c)4
-rw-r--r--src/mame/machine/z80bin.h (renamed from src/mess/machine/z80bin.h)2
-rw-r--r--src/mame/machine/z80ne.c (renamed from src/mess/machine/z80ne.c)0
-rw-r--r--src/mame/machine/zx.c (renamed from src/mess/machine/zx.c)0
-rw-r--r--src/mame/machine/zx8302.c (renamed from src/mess/machine/zx8302.c)0
-rw-r--r--src/mame/machine/zx8302.h (renamed from src/mess/machine/zx8302.h)0
-rw-r--r--src/mame/mame.mak10
-rw-r--r--src/mame/mess.lst90
-rw-r--r--src/mame/osd/windows/mame/mame.man7
-rw-r--r--src/mame/osd/windows/mess/mess.man7
-rw-r--r--src/mame/video/4enraya.c7
-rw-r--r--src/mame/video/733_asr.c (renamed from src/mess/video/733_asr.c)0
-rw-r--r--src/mame/video/733_asr.h (renamed from src/mess/video/733_asr.h)0
-rw-r--r--src/mame/video/8080bw.c214
-rw-r--r--src/mame/video/88games.c12
-rw-r--r--src/mame/video/911_chr.h (renamed from src/mess/video/911_chr.h)0
-rw-r--r--src/mame/video/911_key.h (renamed from src/mess/video/911_key.h)0
-rw-r--r--src/mame/video/911_vdt.c (renamed from src/mess/video/911_vdt.c)0
-rw-r--r--src/mame/video/911_vdt.h (renamed from src/mess/video/911_vdt.h)0
-rw-r--r--src/mame/video/abc1600.c (renamed from src/mess/video/abc1600.c)0
-rw-r--r--src/mame/video/abc1600.h (renamed from src/mess/video/abc1600.h)0
-rw-r--r--src/mame/video/abc80.c (renamed from src/mess/video/abc80.c)0
-rw-r--r--src/mame/video/abc800.c (renamed from src/mess/video/abc800.c)0
-rw-r--r--src/mame/video/abc802.c (renamed from src/mess/video/abc802.c)0
-rw-r--r--src/mame/video/abc806.c (renamed from src/mess/video/abc806.c)0
-rw-r--r--src/mame/video/ac1.c (renamed from src/mess/video/ac1.c)0
-rw-r--r--src/mame/video/advision.c (renamed from src/mess/video/advision.c)0
-rw-r--r--src/mame/video/aerofgt.c2
-rw-r--r--src/mame/video/ajax.c40
-rw-r--r--src/mame/video/alesis.c (renamed from src/mess/video/alesis.c)0
-rw-r--r--src/mame/video/aliens.c35
-rw-r--r--src/mame/video/amiga.c10
-rw-r--r--src/mame/video/amspdwy.c5
-rw-r--r--src/mame/video/antic.c9
-rw-r--r--src/mame/video/antic.h3
-rw-r--r--src/mame/video/apollo.c (renamed from src/mess/video/apollo.c)0
-rw-r--r--src/mame/video/apple1.c (renamed from src/mess/video/apple1.c)0
-rw-r--r--src/mame/video/apple2.c (renamed from src/mess/video/apple2.c)69
-rw-r--r--src/mame/video/apple2.h (renamed from src/mess/video/apple2.h)2
-rw-r--r--src/mame/video/apple2gs.c (renamed from src/mess/video/apple2gs.c)0
-rw-r--r--src/mame/video/apple3.c (renamed from src/mess/video/apple3.c)0
-rw-r--r--src/mame/video/aquarius.c (renamed from src/mess/video/aquarius.c)0
-rw-r--r--src/mame/video/arcadia.c (renamed from src/mess/video/arcadia.c)0
-rw-r--r--src/mame/video/astrocde.c27
-rw-r--r--src/mame/video/atarimo.c14
-rw-r--r--src/mame/video/atarist.c (renamed from src/mess/video/atarist.c)0
-rw-r--r--src/mame/video/atarist.h (renamed from src/mess/video/atarist.h)0
-rw-r--r--src/mame/video/atarisy2.c30
-rw-r--r--src/mame/video/aussiebyte.c196
-rw-r--r--src/mame/video/avgdvg.c4
-rw-r--r--src/mame/video/avgdvg.h2
-rw-r--r--src/mame/video/avigo.c (renamed from src/mess/video/avigo.c)0
-rw-r--r--src/mame/video/b2m.c (renamed from src/mess/video/b2m.c)0
-rw-r--r--src/mame/video/battlnts.c2
-rw-r--r--src/mame/video/bbc.c (renamed from src/mess/video/bbc.c)36
-rw-r--r--src/mame/video/bionicc.c39
-rw-r--r--src/mame/video/bk.c (renamed from src/mess/video/bk.c)0
-rw-r--r--src/mame/video/bladestl.c2
-rw-r--r--src/mame/video/blockhl.c62
-rw-r--r--src/mame/video/bogeyman.c6
-rw-r--r--src/mame/video/bottom9.c48
-rw-r--r--src/mame/video/btime.c9
-rw-r--r--src/mame/video/busicom.c (renamed from src/mess/video/busicom.c)0
-rw-r--r--src/mame/video/cgc7900.c (renamed from src/mess/video/cgc7900.c)0
-rw-r--r--src/mame/video/channelf.c (renamed from src/mess/video/channelf.c)0
-rw-r--r--src/mame/video/chihiro.c546
-rw-r--r--src/mame/video/chqflag.c34
-rw-r--r--src/mame/video/comquest.c (renamed from src/mess/video/comquest.c)0
-rw-r--r--src/mame/video/comx35.c (renamed from src/mess/video/comx35.c)0
-rw-r--r--src/mame/video/cps1.c26
-rw-r--r--src/mame/video/crimfght.c58
-rw-r--r--src/mame/video/crt.c (renamed from src/mess/video/crt.c)0
-rw-r--r--src/mame/video/crt.h (renamed from src/mess/video/crt.h)0
-rw-r--r--src/mame/video/dai.c (renamed from src/mess/video/dai.c)0
-rw-r--r--src/mame/video/deco16ic.c21
-rw-r--r--src/mame/video/deco32.c10
-rw-r--r--src/mame/video/dgn_beta.c (renamed from src/mess/video/dgn_beta.c)0
-rw-r--r--src/mame/video/dynduke.c7
-rw-r--r--src/mame/video/electron.c (renamed from src/mess/video/electron.c)0
-rw-r--r--src/mame/video/fm7.c (renamed from src/mess/video/fm7.c)56
-rw-r--r--src/mame/video/fmtowns.c (renamed from src/mess/video/fmtowns.c)0
-rw-r--r--src/mame/video/galastrm.c144
-rw-r--r--src/mame/video/galaxian.c19
-rw-r--r--src/mame/video/galaxold.c13
-rw-r--r--src/mame/video/galaxy.c (renamed from src/mess/video/galaxy.c)0
-rw-r--r--src/mame/video/galeb.c (renamed from src/mess/video/galeb.c)0
-rw-r--r--src/mame/video/galpanic.c11
-rw-r--r--src/mame/video/gamecom.c (renamed from src/mess/video/gamecom.c)0
-rw-r--r--src/mame/video/gb_lcd.c (renamed from src/mess/video/gb_lcd.c)0
-rw-r--r--src/mame/video/gb_lcd.h (renamed from src/mess/video/gb_lcd.h)0
-rw-r--r--src/mame/video/gba.c (renamed from src/mess/video/gba.c)2
-rw-r--r--src/mame/video/gime.c (renamed from src/mess/video/gime.c)0
-rw-r--r--src/mame/video/gime.h (renamed from src/mess/video/gime.h)0
-rw-r--r--src/mame/video/gradius3.c29
-rw-r--r--src/mame/video/gtia.c2
-rw-r--r--src/mame/video/hec2video.c (renamed from src/mess/video/hec2video.c)0
-rw-r--r--src/mame/video/hexion.c2
-rw-r--r--src/mame/video/hng64.c890
-rw-r--r--src/mame/video/hng64_3d.c1298
-rw-r--r--src/mame/video/hng64_sprite.c2
-rw-r--r--src/mame/video/hp48.c (renamed from src/mess/video/hp48.c)0
-rw-r--r--src/mame/video/igs017_igs031.c448
-rw-r--r--src/mame/video/igs017_igs031.h106
-rw-r--r--src/mame/video/intv.c (renamed from src/mess/video/intv.c)0
-rw-r--r--src/mame/video/itech8.c5
-rw-r--r--src/mame/video/jack.c6
-rw-r--r--src/mame/video/k051960.c107
-rw-r--r--src/mame/video/k051960.h33
-rw-r--r--src/mame/video/k052109.c48
-rw-r--r--src/mame/video/k052109.h23
-rw-r--r--src/mame/video/k057714.c737
-rw-r--r--src/mame/video/k057714.h69
-rw-r--r--src/mame/video/k1ge.c (renamed from src/mess/video/k1ge.c)0
-rw-r--r--src/mame/video/k1ge.h (renamed from src/mess/video/k1ge.h)0
-rw-r--r--src/mame/video/kangaroo.c9
-rw-r--r--src/mame/video/kaypro.c (renamed from src/mess/video/kaypro.c)0
-rw-r--r--src/mame/video/kc.c (renamed from src/mess/video/kc.c)0
-rw-r--r--src/mame/video/konamigx.c32
-rw-r--r--src/mame/video/kramermc.c (renamed from src/mess/video/kramermc.c)0
-rw-r--r--src/mame/video/kyocera.c (renamed from src/mess/video/kyocera.c)0
-rw-r--r--src/mame/video/lethalj.c13
-rw-r--r--src/mame/video/liberate.c8
-rw-r--r--src/mame/video/llc.c (renamed from src/mess/video/llc.c)0
-rw-r--r--src/mame/video/lviv.c (renamed from src/mess/video/lviv.c)0
-rw-r--r--src/mame/video/lwings.c12
-rw-r--r--src/mame/video/m72.c218
-rw-r--r--src/mame/video/mac.c (renamed from src/mess/video/mac.c)4
-rw-r--r--src/mame/video/macrossp.c317
-rw-r--r--src/mame/video/mainevt.c34
-rw-r--r--src/mame/video/maria.c (renamed from src/mess/video/maria.c)0
-rw-r--r--src/mame/video/maria.h (renamed from src/mess/video/maria.h)0
-rw-r--r--src/mame/video/mbc55x.c (renamed from src/mess/video/mbc55x.c)0
-rw-r--r--src/mame/video/mbee.c (renamed from src/mess/video/mbee.c)0
-rw-r--r--src/mame/video/mc80.c (renamed from src/mess/video/mc80.c)0
-rw-r--r--src/mame/video/mcd212.c4
-rw-r--r--src/mame/video/mcd212.h2
-rw-r--r--src/mame/video/mcr68.c27
-rw-r--r--src/mame/video/micro3d.c9
-rw-r--r--src/mame/video/microtan.c (renamed from src/mess/video/microtan.c)0
-rw-r--r--src/mame/video/midtunit.c14
-rw-r--r--src/mame/video/midzeus.c579
-rw-r--r--src/mame/video/midzeus2.c131
-rw-r--r--src/mame/video/mikro80.c (renamed from src/mess/video/mikro80.c)0
-rw-r--r--src/mame/video/mikromik.c (renamed from src/mess/video/mikromik.c)58
-rw-r--r--src/mame/video/model2.c216
-rw-r--r--src/mame/video/model2rd.inc52
-rw-r--r--src/mame/video/model3.c153
-rw-r--r--src/mame/video/mz700.c (renamed from src/mess/video/mz700.c)0
-rw-r--r--src/mame/video/mz80.c (renamed from src/mess/video/mz80.c)0
-rw-r--r--src/mame/video/n64.c255
-rw-r--r--src/mame/video/n64.h11
-rw-r--r--src/mame/video/n64types.h2
-rw-r--r--src/mame/video/namcona1.c47
-rw-r--r--src/mame/video/namcos22.c4
-rw-r--r--src/mame/video/naughtyb.c2
-rw-r--r--src/mame/video/nbmj9195.c6
-rw-r--r--src/mame/video/nc.c (renamed from src/mess/video/nc.c)0
-rw-r--r--src/mame/video/nes.c (renamed from src/mess/video/nes.c)23
-rw-r--r--src/mame/video/newbrain.c (renamed from src/mess/video/newbrain.c)0
-rw-r--r--src/mame/video/newport.c (renamed from src/mess/video/newport.c)0
-rw-r--r--src/mame/video/newport.h (renamed from src/mess/video/newport.h)0
-rw-r--r--src/mame/video/nick.c (renamed from src/mess/video/nick.c)0
-rw-r--r--src/mame/video/nick.h (renamed from src/mess/video/nick.h)0
-rw-r--r--src/mame/video/nova2001.c10
-rw-r--r--src/mame/video/ondra.c (renamed from src/mess/video/ondra.c)0
-rw-r--r--src/mame/video/orao.c (renamed from src/mess/video/orao.c)0
-rw-r--r--src/mame/video/orion.c (renamed from src/mess/video/orion.c)0
-rw-r--r--src/mame/video/osi.c (renamed from src/mess/video/osi.c)0
-rw-r--r--src/mame/video/p2000m.c (renamed from src/mess/video/p2000m.c)0
-rw-r--r--src/mame/video/pc080sn.c1
-rw-r--r--src/mame/video/pc090oj.c1
-rw-r--r--src/mame/video/pc1251.c (renamed from src/mess/video/pc1251.c)0
-rw-r--r--src/mame/video/pc1350.c (renamed from src/mess/video/pc1350.c)0
-rw-r--r--src/mame/video/pc1401.c (renamed from src/mess/video/pc1401.c)0
-rw-r--r--src/mame/video/pc1403.c (renamed from src/mess/video/pc1403.c)0
-rw-r--r--src/mame/video/pc1512.c (renamed from src/mess/video/pc1512.c)0
-rw-r--r--src/mame/video/pc4.c (renamed from src/mess/video/pc4.c)0
-rw-r--r--src/mame/video/pc8401a.c (renamed from src/mess/video/pc8401a.c)0
-rw-r--r--src/mame/video/pc_t1t.c (renamed from src/mess/video/pc_t1t.c)0
-rw-r--r--src/mame/video/pc_t1t.h (renamed from src/mess/video/pc_t1t.h)0
-rw-r--r--src/mame/video/pcd.c486
-rw-r--r--src/mame/video/pcd.h117
-rw-r--r--src/mame/video/pcw.c (renamed from src/mess/video/pcw.c)0
-rw-r--r--src/mame/video/pcw16.c (renamed from src/mess/video/pcw16.c)0
-rw-r--r--src/mame/video/pdp1.c (renamed from src/mess/video/pdp1.c)3
-rw-r--r--src/mame/video/pecom.c (renamed from src/mess/video/pecom.c)0
-rw-r--r--src/mame/video/pk8020.c (renamed from src/mess/video/pk8020.c)0
-rw-r--r--src/mame/video/pocketc.c (renamed from src/mess/video/pocketc.c)0
-rw-r--r--src/mame/video/poisk1.c (renamed from src/mess/video/poisk1.c)0
-rw-r--r--src/mame/video/poisk1.h (renamed from src/mess/video/poisk1.h)0
-rw-r--r--src/mame/video/poly88.c (renamed from src/mess/video/poly88.c)0
-rw-r--r--src/mame/video/powervr2.c5
-rw-r--r--src/mame/video/powervr2.h1
-rw-r--r--src/mame/video/pp01.c (renamed from src/mess/video/pp01.c)0
-rw-r--r--src/mame/video/primo.c (renamed from src/mess/video/primo.c)0
-rw-r--r--src/mame/video/rbisland.c (renamed from src/mame/video/rainbow.c)2
-rw-r--r--src/mame/video/rdpbhelp.h13
-rw-r--r--src/mame/video/rdpblend.c3
-rw-r--r--src/mame/video/rdpblend.h2
-rw-r--r--src/mame/video/rdptpipe.c25
-rw-r--r--src/mame/video/rdptpipe.h2
-rw-r--r--src/mame/video/rm380z.c (renamed from src/mess/video/rm380z.c)0
-rw-r--r--src/mame/video/rmnimbus.c (renamed from src/mess/video/rmnimbus.c)0
-rw-r--r--src/mame/video/rockrage.c2
-rw-r--r--src/mame/video/rollerg.c18
-rw-r--r--src/mame/video/route16.c50
-rw-r--r--src/mame/video/samcoupe.c (renamed from src/mess/video/samcoupe.c)0
-rw-r--r--src/mame/video/sega16sp.c36
-rw-r--r--src/mame/video/sega16sp.h19
-rw-r--r--src/mame/video/segaic16.c86
-rw-r--r--src/mame/video/segaic16_road.c12
-rw-r--r--src/mame/video/segaic16_road.h2
-rw-r--r--src/mame/video/segas32.c4
-rw-r--r--src/mame/video/segaxbd.c6
-rw-r--r--src/mame/video/senjyo.c90
-rw-r--r--src/mame/video/seta.c9
-rw-r--r--src/mame/video/shadfrce.c56
-rw-r--r--src/mame/video/special.c (renamed from src/mess/video/special.c)0
-rw-r--r--src/mame/video/spectrum.c (renamed from src/mess/video/spectrum.c)0
-rw-r--r--src/mame/video/spy.c30
-rw-r--r--src/mame/video/ssystem3.c (renamed from src/mess/video/ssystem3.c)4
-rw-r--r--src/mame/video/starcrus.c2
-rw-r--r--src/mame/video/stic.c (renamed from src/mess/video/stic.c)0
-rw-r--r--src/mame/video/stic.h (renamed from src/mess/video/stic.h)0
-rw-r--r--src/mame/video/suna8.c261
-rw-r--r--src/mame/video/super80.c (renamed from src/mess/video/super80.c)0
-rw-r--r--src/mame/video/superqix.c9
-rw-r--r--src/mame/video/system1.c48
-rw-r--r--src/mame/video/taitoair.c32
-rw-r--r--src/mame/video/tank8.c18
-rw-r--r--src/mame/video/tc0100scn.c1
-rw-r--r--src/mame/video/tc0110pcr.c1
-rw-r--r--src/mame/video/tc0150rod.c1
-rw-r--r--src/mame/video/tc0180vcu.c1
-rw-r--r--src/mame/video/tc0280grd.c1
-rw-r--r--src/mame/video/tc0360pri.c1
-rw-r--r--src/mame/video/tc0480scp.c1
-rw-r--r--src/mame/video/tecmo_spr.c13
-rw-r--r--src/mame/video/tecmo_spr.h6
-rw-r--r--src/mame/video/thomson.c (renamed from src/mess/video/thomson.c)12
-rw-r--r--src/mame/video/thunderx.c4
-rw-r--r--src/mame/video/ti85.c (renamed from src/mess/video/ti85.c)0
-rw-r--r--src/mame/video/timex.c (renamed from src/mess/video/timex.c)0
-rw-r--r--src/mame/video/tmc1800.c (renamed from src/mess/video/tmc1800.c)0
-rw-r--r--src/mame/video/tmc600.c (renamed from src/mess/video/tmc600.c)0
-rw-r--r--src/mame/video/trs80.c (renamed from src/mess/video/trs80.c)0
-rw-r--r--src/mame/video/tutankhm.c32
-rw-r--r--src/mame/video/tx0.c (renamed from src/mess/video/tx0.c)2
-rw-r--r--src/mame/video/ultraman.c40
-rw-r--r--src/mame/video/ut88.c (renamed from src/mess/video/ut88.c)0
-rw-r--r--src/mame/video/uv201.c (renamed from src/mess/video/uv201.c)0
-rw-r--r--src/mame/video/uv201.h (renamed from src/mess/video/uv201.h)0
-rw-r--r--src/mame/video/v1050.c (renamed from src/mess/video/v1050.c)0
-rw-r--r--src/mame/video/vc4000.c (renamed from src/mess/video/vc4000.c)2
-rw-r--r--src/mame/video/vector06.c (renamed from src/mess/video/vector06.c)0
-rw-r--r--src/mame/video/vicdual.c2
-rw-r--r--src/mame/video/vsystem_spr.c6
-rw-r--r--src/mame/video/vtech2.c (renamed from src/mess/video/vtech2.c)0
-rw-r--r--src/mame/video/vtvideo.c (renamed from src/mess/video/vtvideo.c)0
-rw-r--r--src/mame/video/vtvideo.h (renamed from src/mess/video/vtvideo.h)0
-rw-r--r--src/mame/video/wswan_video.c (renamed from src/mess/video/wswan_video.c)0
-rw-r--r--src/mame/video/wswan_video.h (renamed from src/mess/video/wswan_video.h)0
-rw-r--r--src/mame/video/x68k.c (renamed from src/mess/video/x68k.c)0
-rw-r--r--src/mame/video/xxmissio.c9
-rw-r--r--src/mame/video/z88.c (renamed from src/mess/video/z88.c)0
-rw-r--r--src/mame/video/zx.c (renamed from src/mess/video/zx.c)0
-rw-r--r--src/mame/video/zx8301.c (renamed from src/mess/video/zx8301.c)0
-rw-r--r--src/mame/video/zx8301.h (renamed from src/mess/video/zx8301.h)0
-rw-r--r--src/mess/drivers/arcadia.c842
-rw-r--r--src/mess/drivers/bcs3.c528
-rw-r--r--src/mess/drivers/br8641.c64
-rw-r--r--src/mess/drivers/camplynx.c660
-rw-r--r--src/mess/drivers/daruma.c169
-rw-r--r--src/mess/drivers/eti660.c244
-rw-r--r--src/mess/drivers/i7000.c401
-rw-r--r--src/mess/drivers/mephisto.c566
-rw-r--r--src/mess/drivers/rainbow.c2465
-rw-r--r--src/mess/drivers/rambo.c227
-rw-r--r--src/mess/drivers/replicator.c751
-rw-r--r--src/mess/drivers/xbox.c224
-rw-r--r--src/mess/includes/ace.h80
-rw-r--r--src/mess/layout/4004clk.lay18
-rw-r--r--src/mess/layout/aim65.lay100
-rw-r--r--src/mess/layout/supercon.lay18
-rw-r--r--src/mess/layout/tb303.lay20
-rw-r--r--src/mess/machine/orao.c79
-rw-r--r--src/mess/machine/ti99/speech8.c163
-rw-r--r--src/mess/machine/ti99/speech8.h67
-rw-r--r--src/mess/video/pmd85.c69
-rw-r--r--src/osd/modules/debugger/osx/debugview.m3
-rw-r--r--src/osd/modules/debugger/osx/debugwindowhandler.m3
-rw-r--r--src/osd/modules/debugger/osx/pointsviewer.m4
-rw-r--r--src/osd/modules/debugger/win/debugviewinfo.c24
-rw-r--r--src/osd/modules/debugger/win/debugwininfo.c8
-rw-r--r--src/osd/modules/debugger/win/editwininfo.c4
-rw-r--r--src/osd/modules/netdev/pcap.c9
-rw-r--r--src/osd/modules/render/d3d/d3dhlsl.c2
-rw-r--r--src/osd/modules/render/drawbgfx.c6
-rw-r--r--src/osd/modules/render/drawogl.c3
-rw-r--r--src/osd/osdcomm.h2
-rw-r--r--src/osd/osdcore.h19
-rw-r--r--src/osd/osdmini/minifile.c28
-rw-r--r--src/osd/sdl/input.c7
-rw-r--r--src/osd/sdl/man/castool.12
-rw-r--r--src/osd/sdl/man/chdman.12
-rw-r--r--src/osd/sdl/man/floptool.12
-rw-r--r--src/osd/sdl/man/imgtool.12
-rw-r--r--src/osd/sdl/man/jedutil.12
-rw-r--r--src/osd/sdl/man/ldresample.12
-rw-r--r--src/osd/sdl/man/ldverify.12
-rw-r--r--src/osd/sdl/man/mame.62
-rw-r--r--src/osd/sdl/man/romcmp.12
-rw-r--r--src/osd/sdl/man/testkeys.12
-rw-r--r--src/osd/sdl/sdlfile.c19
-rw-r--r--src/osd/sdl/sdlfile.h1
-rw-r--r--src/osd/sdl/sdlptty_os2.c5
-rw-r--r--src/osd/sdl/sdlptty_unix.c124
-rw-r--r--src/osd/windows/input.c45
-rw-r--r--src/osd/windows/output.c8
-rw-r--r--src/osd/windows/window.c8
-rw-r--r--src/osd/windows/winfile.c8
-rw-r--r--src/osd/windows/winmain.c3
-rw-r--r--src/osd/windows/winmain.h2
-rw-r--r--src/osd/windows/winutil.c13
-rw-r--r--src/osd/windows/winutil.h1
-rw-r--r--src/tools/castool.c (renamed from src/mess/tools/castool/main.c)0
-rw-r--r--src/tools/floptool.c (renamed from src/mess/tools/floptool/main.c)0
-rw-r--r--src/tools/imgtool/charconv.c (renamed from src/mess/tools/imgtool/charconv.c)0
-rw-r--r--src/tools/imgtool/charconv.h (renamed from src/mess/tools/imgtool/charconv.h)0
-rw-r--r--src/tools/imgtool/filtbas.c (renamed from src/mess/tools/imgtool/filtbas.c)0
-rw-r--r--src/tools/imgtool/filteoln.c (renamed from src/mess/tools/imgtool/filteoln.c)0
-rw-r--r--src/tools/imgtool/filter.c (renamed from src/mess/tools/imgtool/filter.c)0
-rw-r--r--src/tools/imgtool/filter.h (renamed from src/mess/tools/imgtool/filter.h)0
-rw-r--r--src/tools/imgtool/formats/coco_dsk.c (renamed from src/mess/tools/imgtool/formats/coco_dsk.c)0
-rw-r--r--src/tools/imgtool/formats/coco_dsk.h (renamed from src/mess/tools/imgtool/formats/coco_dsk.h)0
-rw-r--r--src/tools/imgtool/formats/vt_dsk.c (renamed from src/mess/tools/imgtool/formats/vt_dsk.c)0
-rw-r--r--src/tools/imgtool/formats/vt_dsk.h (renamed from src/mess/tools/imgtool/formats/vt_dsk.h)0
-rw-r--r--src/tools/imgtool/iflopimg.c (renamed from src/mess/tools/imgtool/iflopimg.c)0
-rw-r--r--src/tools/imgtool/iflopimg.h (renamed from src/mess/tools/imgtool/iflopimg.h)0
-rw-r--r--src/tools/imgtool/imghd.c (renamed from src/mess/tools/imgtool/imghd.c)0
-rw-r--r--src/tools/imgtool/imghd.h (renamed from src/mess/tools/imgtool/imghd.h)0
-rw-r--r--src/tools/imgtool/imgterrs.c (renamed from src/mess/tools/imgtool/imgterrs.c)0
-rw-r--r--src/tools/imgtool/imgterrs.h (renamed from src/mess/tools/imgtool/imgterrs.h)0
-rw-r--r--src/tools/imgtool/imgtool.c (renamed from src/mess/tools/imgtool/imgtool.c)0
-rw-r--r--src/tools/imgtool/imgtool.h (renamed from src/mess/tools/imgtool/imgtool.h)0
-rw-r--r--src/tools/imgtool/library.c (renamed from src/mess/tools/imgtool/library.c)0
-rw-r--r--src/tools/imgtool/library.h (renamed from src/mess/tools/imgtool/library.h)0
-rw-r--r--src/tools/imgtool/main.c (renamed from src/mess/tools/imgtool/main.c)0
-rw-r--r--src/tools/imgtool/main.h (renamed from src/mess/tools/imgtool/main.h)0
-rw-r--r--src/tools/imgtool/modules.c (renamed from src/mess/tools/imgtool/modules.c)0
-rw-r--r--src/tools/imgtool/modules.h (renamed from src/mess/tools/imgtool/modules.h)0
-rw-r--r--src/tools/imgtool/modules/amiga.c (renamed from src/mess/tools/imgtool/modules/amiga.c)0
-rw-r--r--src/tools/imgtool/modules/bml3.c (renamed from src/mess/tools/imgtool/modules/bml3.c)0
-rw-r--r--src/tools/imgtool/modules/concept.c (renamed from src/mess/tools/imgtool/modules/concept.c)0
-rw-r--r--src/tools/imgtool/modules/cybiko.c (renamed from src/mess/tools/imgtool/modules/cybiko.c)0
-rw-r--r--src/tools/imgtool/modules/cybikoxt.c (renamed from src/mess/tools/imgtool/modules/cybikoxt.c)0
-rw-r--r--src/tools/imgtool/modules/fat.c (renamed from src/mess/tools/imgtool/modules/fat.c)0
-rw-r--r--src/tools/imgtool/modules/fat.h (renamed from src/mess/tools/imgtool/modules/fat.h)0
-rw-r--r--src/tools/imgtool/modules/hp48.c (renamed from src/mess/tools/imgtool/modules/hp48.c)0
-rw-r--r--src/tools/imgtool/modules/mac.c (renamed from src/mess/tools/imgtool/modules/mac.c)0
-rw-r--r--src/tools/imgtool/modules/macbin.c (renamed from src/mess/tools/imgtool/modules/macbin.c)0
-rw-r--r--src/tools/imgtool/modules/macutil.c (renamed from src/mess/tools/imgtool/modules/macutil.c)0
-rw-r--r--src/tools/imgtool/modules/macutil.h (renamed from src/mess/tools/imgtool/modules/macutil.h)0
-rw-r--r--src/tools/imgtool/modules/os9.c (renamed from src/mess/tools/imgtool/modules/os9.c)0
-rw-r--r--src/tools/imgtool/modules/pc_flop.c (renamed from src/mess/tools/imgtool/modules/pc_flop.c)0
-rw-r--r--src/tools/imgtool/modules/pc_hard.c (renamed from src/mess/tools/imgtool/modules/pc_hard.c)0
-rw-r--r--src/tools/imgtool/modules/prodos.c (renamed from src/mess/tools/imgtool/modules/prodos.c)0
-rw-r--r--src/tools/imgtool/modules/psion.c (renamed from src/mess/tools/imgtool/modules/psion.c)0
-rw-r--r--src/tools/imgtool/modules/rsdos.c (renamed from src/mess/tools/imgtool/modules/rsdos.c)0
-rw-r--r--src/tools/imgtool/modules/thomson.c (renamed from src/mess/tools/imgtool/modules/thomson.c)0
-rw-r--r--src/tools/imgtool/modules/ti99.c (renamed from src/mess/tools/imgtool/modules/ti99.c)0
-rw-r--r--src/tools/imgtool/modules/ti990hd.c (renamed from src/mess/tools/imgtool/modules/ti990hd.c)0
-rw-r--r--src/tools/imgtool/modules/vzdos.c (renamed from src/mess/tools/imgtool/modules/vzdos.c)0
-rw-r--r--src/tools/imgtool/stream.c (renamed from src/mess/tools/imgtool/stream.c)0
-rw-r--r--src/tools/imgtool/stream.h (renamed from src/mess/tools/imgtool/stream.h)0
-rw-r--r--src/version.c2
6745 files changed, 101495 insertions, 62044 deletions
diff --git a/src/build/file2str.py b/src/build/file2str.py
deleted file mode 100644
index 7417f338328..00000000000
--- a/src/build/file2str.py
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/usr/bin/python
-##
-## license:BSD-3-Clause
-## copyright-holders:Aaron Giles, Andrew Gardner
-
-from __future__ import with_statement
-
-import sys
-import os
-
-if len(sys.argv) < 4:
- print('Usage:')
- print(' file2str <source.lay> <output.h> <varname> [<type>]')
- print('')
- print('The default <type> is char, with an assumed NULL terminator')
- sys.exit(0)
-
-terminate = 1
-srcfile = sys.argv[1]
-dstfile = sys.argv[2]
-varname = sys.argv[3]
-
-if len(sys.argv) >= 5:
- type = sys.argv[4]
- terminate = 0
-else:
- type = 'char'
-
-try:
- myfile = open(srcfile, 'rb')
-except IOError:
- sys.stderr.write("Unable to open source file '%s'\n" % srcfile)
- sys.exit(-1)
-
-byteCount = os.path.getsize(srcfile)
-try:
- dst = open(dstfile,'w')
- dst.write('extern const %s %s[];\n' % ( type, varname ))
- dst.write('const %s %s[] =\n{\n\t' % ( type, varname))
- offs = 0
- with open(srcfile, "rb") as src:
- while True:
- chunk = src.read(16)
- if chunk:
- for b in chunk:
- # For Python 2.x compatibility.
- if isinstance(b, str):
- b = ord(b)
- dst.write('0x%02x' % b)
- offs += 1
- if offs != byteCount:
- dst.write(',')
- else:
- break
- if offs != byteCount:
- dst.write('\n\t')
- if terminate == 1:
- dst.write(',0x00')
- dst.write('\n};\n')
- dst.close()
-except IOError:
- sys.stderr.write("Unable to open output file '%s'\n" % dstfile)
- sys.exit(-1)
diff --git a/src/build/makedep.py b/src/build/makedep.py
deleted file mode 100644
index d877dfe100e..00000000000
--- a/src/build/makedep.py
+++ /dev/null
@@ -1,314 +0,0 @@
-#!/usr/bin/python
-##
-## license:BSD-3-Clause
-## copyright-holders:Miodrag Milanovic
-
-from __future__ import with_statement
-
-import sys
-## to ignore include of emu.h add it always to list
-
-files_included = ['src/emu/emu.h']
-
-include_dirs = ['src/emu/', 'src/mame/', 'src/mess/']
-
-mappings = dict()
-
-deps_files_included = [ ]
-
-deps_include_dirs = ['src/mame/', 'src/mess/']
-
-components = [ ]
-
-drivers = [ ]
-
-def file_exists(root, srcfile, folder, inc_dir):
- includes = [ folder ]
- includes.extend(inc_dir)
- for line in includes:
- try:
- fp = open(root + line + srcfile, 'rb')
- fp.close()
- return line + srcfile
- except IOError:
- pass
- return ''
-
-def add_c_if_exists(root, fullname):
- try:
- fp = open(root + fullname, 'rb')
- fp.close()
- deps_files_included.append(fullname)
- except IOError:
- pass
-
-def add_rest_if_exists(root, srcfile,folder):
- t = srcfile.rsplit('/', 2)
- if t[1]=='includes':
- t[2] = t[2].replace('.h','.c')
- t[1] = 'drivers'
- add_c_if_exists(root,"/".join(t))
- parse_file_for_deps(root, "/".join(t), folder)
- t[1] = 'machine'
- add_c_if_exists(root,"/".join(t))
- parse_file_for_deps(root, "/".join(t), folder)
- t[1] = 'video'
- add_c_if_exists(root,"/".join(t))
- parse_file_for_deps(root, "/".join(t), folder)
- t[1] = 'audio'
- add_c_if_exists(root,"/".join(t))
- parse_file_for_deps(root, "/".join(t), folder)
-
-def parse_file_for_deps(root, srcfile, folder):
- try:
- fp = open(root + srcfile, 'rb')
- except IOError:
- return 1
- in_comment = 0
- linenum = 0
- for line in fp.readlines():
- content = ''
- linenum+=1
- srcptr = 0
- while srcptr < len(line):
- c = line[srcptr]
- srcptr+=1
- if c==13 or c==10:
- if c==13 and line[srcptr]==10:
- srcptr+=1
- continue
- if c==' ' or c==9:
- continue
- if in_comment==1 and c=='*' and line[srcptr]=='/' :
- srcptr+=1
- in_comment = 0
- continue
- if in_comment:
- continue
- if c=='/' and line[srcptr]=='*' :
- srcptr+=1
- in_comment = 1
- continue
- if c=='/' and line[srcptr]=='/' :
- break
- content += c
- content = content.strip()
- if len(content)>0:
- if content.startswith('#include'):
- name = content[8:]
- name = name.replace('"','')
- fullname = file_exists(root, name, folder,deps_include_dirs)
- if fullname in deps_files_included:
- continue
- if fullname!='':
- deps_files_included.append(fullname)
- add_c_if_exists(root, fullname.replace('.h','.c'))
- add_rest_if_exists(root, fullname,folder)
- newfolder = fullname.rsplit('/', 1)[0] + '/'
- parse_file_for_deps(root, fullname, newfolder)
- continue
- fp.close()
- return 0
-
-def parse_file(root, srcfile, folder):
- try:
- fp = open(root + srcfile, 'rb')
- except IOError:
- return 1
- in_comment = 0
- linenum = 0
- for line in fp.readlines():
- content = ''
- linenum+=1
- srcptr = 0
- while srcptr < len(line):
- c = line[srcptr]
- srcptr+=1
- if c==13 or c==10:
- if c==13 and line[srcptr]==10:
- srcptr+=1
- continue
- if c==' ' or c==9:
- continue
- if in_comment==1 and c=='*' and line[srcptr]=='/' :
- srcptr+=1
- in_comment = 0
- continue
- if in_comment:
- continue
- if c=='/' and line[srcptr]=='*' :
- srcptr+=1
- in_comment = 1
- continue
- if c=='/' and line[srcptr]=='/' :
- break
- content += c
- content = content.strip()
- if len(content)>0:
- if content.startswith('#include'):
- name = content[8:]
- name = name.replace('"','')
- fullname = file_exists(root, name, folder,include_dirs)
- if fullname in files_included:
- continue
- if "src/emu/netlist/" in fullname:
- continue
- if fullname!='':
- if fullname in mappings.keys():
- if not(mappings[fullname] in components):
- components.append(mappings[fullname])
- files_included.append(fullname)
- newfolder = fullname.rsplit('/', 1)[0] + '/'
- parse_file(root, fullname, newfolder)
- if (fullname.endswith('.h')):
- parse_file(root, fullname.replace('.h','.c'), newfolder)
- continue
- fp.close()
- return 0
-
-def parse_file_for_drivers(root, srcfile):
- try:
- fp = open(root + srcfile, 'rb')
- except IOError:
- sys.stderr.write("Unable to open source file '%s'\n" % srcfile)
- return 1
- in_comment = 0
- linenum = 0
- for line in fp.readlines():
- content = ''
- linenum+=1
- srcptr = 0
- while srcptr < len(line):
- c = line[srcptr]
- srcptr+=1
- if c==13 or c==10:
- if c==13 and line[srcptr]==10:
- srcptr+=1
- continue
- if c==' ' or c==9:
- continue
- if in_comment==1 and c=='*' and line[srcptr]=='/' :
- srcptr+=1
- in_comment = 0
- continue
- if in_comment:
- continue
- if c=='/' and line[srcptr]=='*' :
- srcptr+=1
- in_comment = 1
- continue
- if c=='/' and line[srcptr]=='/' :
- break
- content += c
- content = content.strip()
- if len(content)>0:
- if content.startswith('COMP') or content.startswith('CONS') or content.startswith('GAME') or content.startswith('SYST') or content.startswith('GAMEL'):
- name = content[4:]
- drivers.append(name.rsplit(',', 14)[1])
- return 0
-
-def parse_lua_file(srcfile):
- try:
- fp = open(srcfile, 'rb')
- except IOError:
- sys.stderr.write("Unable to open source file '%s'\n" % srcfile)
- return 1
- for line in fp.readlines():
- content = line.strip()
- if len(content)>0:
- if content.startswith('--@'):
- name = content[3:]
- mappings[name.rsplit(',', 1)[0]] = name.rsplit(',', 1)[1]
- return 0
-
-if len(sys.argv) < 5:
- print('Usage:')
- print(' makedep <root> <source.c> <type> <target>')
- sys.exit(0)
-
-root = sys.argv[1] + '/'
-
-parse_lua_file(root +'scripts/src/bus.lua')
-parse_lua_file(root +'scripts/src/cpu.lua')
-parse_lua_file(root +'scripts/src/machine.lua')
-parse_lua_file(root +'scripts/src/sound.lua')
-parse_lua_file(root +'scripts/src/video.lua')
-
-for filename in sys.argv[2].rsplit(',') :
- deps_files_included.append(filename.replace('\\','/'))
- parse_file_for_deps(root,filename,'')
-
-for filename in deps_files_included:
- parse_file(root,filename,'')
-
-for filename in sys.argv[2].rsplit(',') :
- parse_file_for_drivers(root,filename)
-
-
-# display output
-if sys.argv[3]=='drivers':
- # add a reference to the ___empty driver
- drivers.append("___empty")
-
- # start with a header
- print('#include "emu.h"\n')
- print('#include "drivenum.h"\n')
-
- #output the list of externs first
- for drv in sorted(drivers):
- print("GAME_EXTERN(%s);" % drv)
- print("")
-
- # then output the array
- print("const game_driver * const driver_list::s_drivers_sorted[%d] =" % len(drivers))
- print("{")
- for drv in sorted(drivers):
- print("\t&GAME_NAME(%s)," % drv)
- print("};")
- print("")
-
- # also output a global count
- print("int driver_list::s_driver_count = %d;\n" % len(drivers))
-
-if sys.argv[3]=='target':
- for line in components:
- sys.stdout.write("%s\n" % line)
- sys.stdout.write('\n')
- sys.stdout.write('function createProjects_mame_%s(_target, _subtarget)\n' % sys.argv[4])
- sys.stdout.write(' project ("mame_%s")\n' % sys.argv[4])
- sys.stdout.write(' targetsubdir(_target .."_" .. _subtarget)\n')
- sys.stdout.write(' kind (LIBTYPE)\n')
- sys.stdout.write(' uuid (os.uuid("drv-mame-%s"))\n' % sys.argv[4])
- sys.stdout.write(' \n')
- sys.stdout.write(' options {\n')
- sys.stdout.write(' "ForceCPP",\n')
- sys.stdout.write(' }\n')
- sys.stdout.write(' \n')
- sys.stdout.write(' includedirs {\n')
- sys.stdout.write(' MAME_DIR .. "src/osd",\n')
- sys.stdout.write(' MAME_DIR .. "src/emu",\n')
- sys.stdout.write(' MAME_DIR .. "src/mame",\n')
- sys.stdout.write(' MAME_DIR .. "src/mess",\n')
- sys.stdout.write(' MAME_DIR .. "src/lib",\n')
- sys.stdout.write(' MAME_DIR .. "src/lib/util",\n')
- sys.stdout.write(' MAME_DIR .. "3rdparty",\n')
- sys.stdout.write(' GEN_DIR .. "mame/layout",\n')
- sys.stdout.write(' GEN_DIR .. "mess/layout",\n')
- sys.stdout.write(' }\n')
- sys.stdout.write(' if _OPTIONS["with-bundled-zlib"] then\n')
- sys.stdout.write(' includedirs {\n')
- sys.stdout.write(' MAME_DIR .. "3rdparty/zlib",\n')
- sys.stdout.write(' }\n')
- sys.stdout.write(' end\n')
- sys.stdout.write('\n')
- sys.stdout.write(' files{\n')
- for line in deps_files_included:
- sys.stdout.write(' MAME_DIR .. "%s",\n' % line)
- sys.stdout.write(' }\n')
- sys.stdout.write('end\n')
- sys.stdout.write('\n')
- sys.stdout.write('function linkProjects_mame_%s(_target, _subtarget)\n' % sys.argv[4])
- sys.stdout.write(' links {\n')
- sys.stdout.write(' "mame_%s",\n' % sys.argv[4])
- sys.stdout.write(' }\n')
- sys.stdout.write('end\n')
diff --git a/src/build/makelist.py b/src/build/makelist.py
deleted file mode 100644
index 1f94814bf88..00000000000
--- a/src/build/makelist.py
+++ /dev/null
@@ -1,96 +0,0 @@
-#!/usr/bin/python
-##
-## license:BSD-3-Clause
-## copyright-holders:Aaron Giles, Andrew Gardner
-
-from __future__ import with_statement
-
-import sys
-
-drivlist = []
-
-def parse_file(srcfile):
- try:
- fp = open(srcfile, 'rb')
- except IOError:
- sys.stderr.write("Unable to open source file '%s'\n" % srcfile)
- return 1
- in_comment = 0
- linenum = 0
- for line in fp.readlines():
- drivname = ''
- linenum+=1
- srcptr = 0
- while srcptr < len(line):
- c = line[srcptr]
- srcptr+=1
- if c==13 or c==10:
- if c==13 and line[srcptr]==10:
- srcptr+=1
- continue
- if c==' ' or c==9:
- continue
- if in_comment==1 and c=='*' and line[srcptr]=='/' :
- srcptr+=1
- in_comment = 0
- continue
- if in_comment:
- continue
- if c=='/' and line[srcptr]=='*' :
- srcptr+=1
- in_comment = 1
- continue
- if c=='/' and line[srcptr]=='/' :
- break
- drivname += c
- drivname = drivname.strip()
- if len(drivname)>0:
- if drivname[0]=='#':
- sys.stderr.write("Importing drivers from '%s'\n" % drivname[1:])
- parse_file(drivname[1:])
- continue
- if not all(((c >='a' and c<='z') or (c>='0' and c<='9') or c=='_') for c in drivname):
- sys.stderr.write("%s:%d - Invalid character in driver \"%s\"\n" % (srcfile, linenum, drivname))
- return 1
- else:
- drivlist.append(drivname)
- return 0
-
-
-if len(sys.argv) < 2:
- print('Usage:')
- print(' makelist <source.lst>')
- sys.exit(0)
-
-if parse_file(sys.argv[1]) :
- sys.exit(1)
-
-# output a count
-if len(drivlist)==0 :
- sys.stderr.write("No drivers found\n")
- sys.exit(1)
-
-sys.stderr.write("%d drivers found\n" % len(drivlist))
-
-# add a reference to the ___empty driver
-drivlist.append("___empty")
-
-# start with a header
-print('#include "emu.h"\n')
-print('#include "drivenum.h"\n')
-
-#output the list of externs first
-for drv in sorted(drivlist):
- print("GAME_EXTERN(%s);" % drv)
-print("")
-
-# then output the array
-print("const game_driver * const driver_list::s_drivers_sorted[%d] =" % len(drivlist))
-print("{")
-for drv in sorted(drivlist):
- print("\t&GAME_NAME(%s)," % drv)
-print("};")
-print("")
-
-# also output a global count
-print("int driver_list::s_driver_count = %d;\n" % len(drivlist))
diff --git a/src/build/png.py b/src/build/png.py
deleted file mode 100644
index f096a1dbdf5..00000000000
--- a/src/build/png.py
+++ /dev/null
@@ -1,2783 +0,0 @@
-#!/usr/bin/env python
-
-# png.py - PNG encoder/decoder in pure Python
-#
-# Copyright (C) 2006 Johann C. Rocholl <johann@browsershots.org>
-# Portions Copyright (C) 2009 David Jones <drj@pobox.com>
-# And probably portions Copyright (C) 2006 Nicko van Someren <nicko@nicko.org>
-#
-# Original concept by Johann C. Rocholl.
-#
-# LICENCE (MIT)
-#
-# Permission is hereby granted, free of charge, to any person
-# obtaining a copy of this software and associated documentation files
-# (the "Software"), to deal in the Software without restriction,
-# including without limitation the rights to use, copy, modify, merge,
-# publish, distribute, sublicense, and/or sell copies of the Software,
-# and to permit persons to whom the Software is furnished to do so,
-# subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be
-# included in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
-# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
-# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-# SOFTWARE.
-
-"""
-Pure Python PNG Reader/Writer
-
-This Python module implements support for PNG images (see PNG
-specification at http://www.w3.org/TR/2003/REC-PNG-20031110/ ). It reads
-and writes PNG files with all allowable bit depths
-(1/2/4/8/16/24/32/48/64 bits per pixel) and colour combinations:
-greyscale (1/2/4/8/16 bit); RGB, RGBA, LA (greyscale with alpha) with
-8/16 bits per channel; colour mapped images (1/2/4/8 bit).
-Adam7 interlacing is supported for reading and
-writing. A number of optional chunks can be specified (when writing)
-and understood (when reading): ``tRNS``, ``bKGD``, ``gAMA``.
-
-For help, type ``import png; help(png)`` in your python interpreter.
-
-A good place to start is the :class:`Reader` and :class:`Writer`
-classes.
-
-Requires Python 2.3. Limited support is available for Python 2.2, but
-not everything works. Best with Python 2.4 and higher. Installation is
-trivial, but see the ``README.txt`` file (with the source distribution)
-for details.
-
-This file can also be used as a command-line utility to convert
-`Netpbm <http://netpbm.sourceforge.net/>`_ PNM files to PNG, and the
-reverse conversion from PNG to PNM. The interface is similar to that
-of the ``pnmtopng`` program from Netpbm. Type ``python png.py --help``
-at the shell prompt for usage and a list of options.
-
-A note on spelling and terminology
-----------------------------------
-
-Generally British English spelling is used in the documentation. So
-that's "greyscale" and "colour". This not only matches the author's
-native language, it's also used by the PNG specification.
-
-The major colour models supported by PNG (and hence by PyPNG) are:
-greyscale, RGB, greyscale--alpha, RGB--alpha. These are sometimes
-referred to using the abbreviations: L, RGB, LA, RGBA. In this case
-each letter abbreviates a single channel: *L* is for Luminance or Luma
-or Lightness which is the channel used in greyscale images; *R*, *G*,
-*B* stand for Red, Green, Blue, the components of a colour image; *A*
-stands for Alpha, the opacity channel (used for transparency effects,
-but higher values are more opaque, so it makes sense to call it
-opacity).
-
-A note on formats
------------------
-
-When getting pixel data out of this module (reading) and presenting
-data to this module (writing) there are a number of ways the data could
-be represented as a Python value. Generally this module uses one of
-three formats called "flat row flat pixel", "boxed row flat pixel", and
-"boxed row boxed pixel". Basically the concern is whether each pixel
-and each row comes in its own little tuple (box), or not.
-
-Consider an image that is 3 pixels wide by 2 pixels high, and each pixel
-has RGB components:
-
-Boxed row flat pixel::
-
- list([R,G,B, R,G,B, R,G,B],
- [R,G,B, R,G,B, R,G,B])
-
-Each row appears as its own list, but the pixels are flattened so
-that three values for one pixel simply follow the three values for
-the previous pixel. This is the most common format used, because it
-provides a good compromise between space and convenience. PyPNG regards
-itself as at liberty to replace any sequence type with any sufficiently
-compatible other sequence type; in practice each row is an array (from
-the array module), and the outer list is sometimes an iterator rather
-than an explicit list (so that streaming is possible).
-
-Flat row flat pixel::
-
- [R,G,B, R,G,B, R,G,B,
- R,G,B, R,G,B, R,G,B]
-
-The entire image is one single giant sequence of colour values.
-Generally an array will be used (to save space), not a list.
-
-Boxed row boxed pixel::
-
- list([ (R,G,B), (R,G,B), (R,G,B) ],
- [ (R,G,B), (R,G,B), (R,G,B) ])
-
-Each row appears in its own list, but each pixel also appears in its own
-tuple. A serious memory burn in Python.
-
-In all cases the top row comes first, and for each row the pixels are
-ordered from left-to-right. Within a pixel the values appear in the
-order, R-G-B-A (or L-A for greyscale--alpha).
-
-There is a fourth format, mentioned because it is used internally,
-is close to what lies inside a PNG file itself, and has some support
-from the public API. This format is called packed. When packed,
-each row is a sequence of bytes (integers from 0 to 255), just as
-it is before PNG scanline filtering is applied. When the bit depth
-is 8 this is essentially the same as boxed row flat pixel; when the
-bit depth is less than 8, several pixels are packed into each byte;
-when the bit depth is 16 (the only value more than 8 that is supported
-by the PNG image format) each pixel value is decomposed into 2 bytes
-(and `packed` is a misnomer). This format is used by the
-:meth:`Writer.write_packed` method. It isn't usually a convenient
-format, but may be just right if the source data for the PNG image
-comes from something that uses a similar format (for example, 1-bit
-BMPs, or another PNG file).
-
-And now, my famous members
---------------------------
-"""
-
-# http://www.python.org/doc/2.2.3/whatsnew/node5.html
-from __future__ import generators
-
-__version__ = "0.0.17"
-
-from array import array
-try: # See :pyver:old
- import itertools
-except ImportError:
- pass
-import math
-# http://www.python.org/doc/2.4.4/lib/module-operator.html
-import operator
-import struct
-import sys
-import zlib
-# http://www.python.org/doc/2.4.4/lib/module-warnings.html
-import warnings
-try:
- # `cpngfilters` is a Cython module: it must be compiled by
- # Cython for this import to work.
- # If this import does work, then it overrides pure-python
- # filtering functions defined later in this file (see `class
- # pngfilters`).
- import cpngfilters as pngfilters
-except ImportError:
- pass
-
-
-__all__ = ['Image', 'Reader', 'Writer', 'write_chunks', 'from_array']
-
-
-# The PNG signature.
-# http://www.w3.org/TR/PNG/#5PNG-file-signature
-_signature = struct.pack('8B', 137, 80, 78, 71, 13, 10, 26, 10)
-
-_adam7 = ((0, 0, 8, 8),
- (4, 0, 8, 8),
- (0, 4, 4, 8),
- (2, 0, 4, 4),
- (0, 2, 2, 4),
- (1, 0, 2, 2),
- (0, 1, 1, 2))
-
-def group(s, n):
- # See http://www.python.org/doc/2.6/library/functions.html#zip
- return zip(*[iter(s)]*n)
-
-def isarray(x):
- """Same as ``isinstance(x, array)`` except on Python 2.2, where it
- always returns ``False``. This helps PyPNG work on Python 2.2.
- """
-
- try:
- return isinstance(x, array)
- except TypeError:
- # Because on Python 2.2 array.array is not a type.
- return False
-
-try:
- array.tobytes
-except AttributeError:
- try: # see :pyver:old
- array.tostring
- except AttributeError:
- def tostring(row):
- l = len(row)
- return struct.pack('%dB' % l, *row)
- else:
- def tostring(row):
- """Convert row of bytes to string. Expects `row` to be an
- ``array``.
- """
- return row.tostring()
-else:
- def tostring(row):
- """ Python3 definition, array.tostring() is deprecated in Python3
- """
- return row.tobytes()
-
-# Conditionally convert to bytes. Works on Python 2 and Python 3.
-try:
- bytes('', 'ascii')
- def strtobytes(x): return bytes(x, 'iso8859-1')
- def bytestostr(x): return str(x, 'iso8859-1')
-except (NameError, TypeError):
- # We get NameError when bytes() does not exist (most Python
- # 2.x versions), and TypeError when bytes() exists but is on
- # Python 2.x (when it is an alias for str() and takes at most
- # one argument).
- strtobytes = str
- bytestostr = str
-
-def interleave_planes(ipixels, apixels, ipsize, apsize):
- """
- Interleave (colour) planes, e.g. RGB + A = RGBA.
-
- Return an array of pixels consisting of the `ipsize` elements of
- data from each pixel in `ipixels` followed by the `apsize` elements
- of data from each pixel in `apixels`. Conventionally `ipixels`
- and `apixels` are byte arrays so the sizes are bytes, but it
- actually works with any arrays of the same type. The returned
- array is the same type as the input arrays which should be the
- same type as each other.
- """
-
- itotal = len(ipixels)
- atotal = len(apixels)
- newtotal = itotal + atotal
- newpsize = ipsize + apsize
- # Set up the output buffer
- # See http://www.python.org/doc/2.4.4/lib/module-array.html#l2h-1356
- out = array(ipixels.typecode)
- # It's annoying that there is no cheap way to set the array size :-(
- out.extend(ipixels)
- out.extend(apixels)
- # Interleave in the pixel data
- for i in range(ipsize):
- out[i:newtotal:newpsize] = ipixels[i:itotal:ipsize]
- for i in range(apsize):
- out[i+ipsize:newtotal:newpsize] = apixels[i:atotal:apsize]
- return out
-
-def check_palette(palette):
- """Check a palette argument (to the :class:`Writer` class)
- for validity. Returns the palette as a list if okay; raises an
- exception otherwise.
- """
-
- # None is the default and is allowed.
- if palette is None:
- return None
-
- p = list(palette)
- if not (0 < len(p) <= 256):
- raise ValueError("a palette must have between 1 and 256 entries")
- seen_triple = False
- for i,t in enumerate(p):
- if len(t) not in (3,4):
- raise ValueError(
- "palette entry %d: entries must be 3- or 4-tuples." % i)
- if len(t) == 3:
- seen_triple = True
- if seen_triple and len(t) == 4:
- raise ValueError(
- "palette entry %d: all 4-tuples must precede all 3-tuples" % i)
- for x in t:
- if int(x) != x or not(0 <= x <= 255):
- raise ValueError(
- "palette entry %d: values must be integer: 0 <= x <= 255" % i)
- return p
-
-def check_sizes(size, width, height):
- """Check that these arguments, in supplied, are consistent.
- Return a (width, height) pair.
- """
-
- if not size:
- return width, height
-
- if len(size) != 2:
- raise ValueError(
- "size argument should be a pair (width, height)")
- if width is not None and width != size[0]:
- raise ValueError(
- "size[0] (%r) and width (%r) should match when both are used."
- % (size[0], width))
- if height is not None and height != size[1]:
- raise ValueError(
- "size[1] (%r) and height (%r) should match when both are used."
- % (size[1], height))
- return size
-
-def check_color(c, greyscale, which):
- """Checks that a colour argument for transparent or
- background options is the right form. Returns the colour
- (which, if it's a bar integer, is "corrected" to a 1-tuple).
- """
-
- if c is None:
- return c
- if greyscale:
- try:
- len(c)
- except TypeError:
- c = (c,)
- if len(c) != 1:
- raise ValueError("%s for greyscale must be 1-tuple" %
- which)
- if not isinteger(c[0]):
- raise ValueError(
- "%s colour for greyscale must be integer" % which)
- else:
- if not (len(c) == 3 and
- isinteger(c[0]) and
- isinteger(c[1]) and
- isinteger(c[2])):
- raise ValueError(
- "%s colour must be a triple of integers" % which)
- return c
-
-class Error(Exception):
- def __str__(self):
- return self.__class__.__name__ + ': ' + ' '.join(self.args)
-
-class FormatError(Error):
- """Problem with input file format. In other words, PNG file does
- not conform to the specification in some way and is invalid.
- """
-
-class ChunkError(FormatError):
- pass
-
-
-class Writer:
- """
- PNG encoder in pure Python.
- """
-
- def __init__(self, width=None, height=None,
- size=None,
- greyscale=False,
- alpha=False,
- bitdepth=8,
- palette=None,
- transparent=None,
- background=None,
- gamma=None,
- compression=None,
- interlace=False,
- bytes_per_sample=None, # deprecated
- planes=None,
- colormap=None,
- maxval=None,
- chunk_limit=2**20,
- x_pixels_per_unit = None,
- y_pixels_per_unit = None,
- unit_is_meter = False):
- """
- Create a PNG encoder object.
-
- Arguments:
-
- width, height
- Image size in pixels, as two separate arguments.
- size
- Image size (w,h) in pixels, as single argument.
- greyscale
- Input data is greyscale, not RGB.
- alpha
- Input data has alpha channel (RGBA or LA).
- bitdepth
- Bit depth: from 1 to 16.
- palette
- Create a palette for a colour mapped image (colour type 3).
- transparent
- Specify a transparent colour (create a ``tRNS`` chunk).
- background
- Specify a default background colour (create a ``bKGD`` chunk).
- gamma
- Specify a gamma value (create a ``gAMA`` chunk).
- compression
- zlib compression level: 0 (none) to 9 (more compressed);
- default: -1 or None.
- interlace
- Create an interlaced image.
- chunk_limit
- Write multiple ``IDAT`` chunks to save memory.
- x_pixels_per_unit (pHYs chunk)
- Number of pixels a unit along the x axis
- y_pixels_per_unit (pHYs chunk)
- Number of pixels a unit along the y axis
- With x_pixel_unit, give the pixel size ratio
- unit_is_meter (pHYs chunk)
- Indicates if unit is meter or not
-
- The image size (in pixels) can be specified either by using the
- `width` and `height` arguments, or with the single `size`
- argument. If `size` is used it should be a pair (*width*,
- *height*).
-
- `greyscale` and `alpha` are booleans that specify whether
- an image is greyscale (or colour), and whether it has an
- alpha channel (or not).
-
- `bitdepth` specifies the bit depth of the source pixel values.
- Each source pixel value must be an integer between 0 and
- ``2**bitdepth-1``. For example, 8-bit images have values
- between 0 and 255. PNG only stores images with bit depths of
- 1,2,4,8, or 16. When `bitdepth` is not one of these values,
- the next highest valid bit depth is selected, and an ``sBIT``
- (significant bits) chunk is generated that specifies the
- original precision of the source image. In this case the
- supplied pixel values will be rescaled to fit the range of
- the selected bit depth.
-
- The details of which bit depth / colour model combinations the
- PNG file format supports directly, are somewhat arcane
- (refer to the PNG specification for full details). Briefly:
- "small" bit depths (1,2,4) are only allowed with greyscale and
- colour mapped images; colour mapped images cannot have bit depth
- 16.
-
- For colour mapped images (in other words, when the `palette`
- argument is specified) the `bitdepth` argument must match one of
- the valid PNG bit depths: 1, 2, 4, or 8. (It is valid to have a
- PNG image with a palette and an ``sBIT`` chunk, but the meaning
- is slightly different; it would be awkward to press the
- `bitdepth` argument into service for this.)
-
- The `palette` option, when specified, causes a colour mapped
- image to be created: the PNG colour type is set to 3; greyscale
- must not be set; alpha must not be set; transparent must not be
- set; the bit depth must be 1,2,4, or 8. When a colour mapped
- image is created, the pixel values are palette indexes and
- the `bitdepth` argument specifies the size of these indexes
- (not the size of the colour values in the palette).
-
- The palette argument value should be a sequence of 3- or
- 4-tuples. 3-tuples specify RGB palette entries; 4-tuples
- specify RGBA palette entries. If both 4-tuples and 3-tuples
- appear in the sequence then all the 4-tuples must come
- before all the 3-tuples. A ``PLTE`` chunk is created; if there
- are 4-tuples then a ``tRNS`` chunk is created as well. The
- ``PLTE`` chunk will contain all the RGB triples in the same
- sequence; the ``tRNS`` chunk will contain the alpha channel for
- all the 4-tuples, in the same sequence. Palette entries
- are always 8-bit.
-
- If specified, the `transparent` and `background` parameters must
- be a tuple with three integer values for red, green, blue, or
- a simple integer (or singleton tuple) for a greyscale image.
-
- If specified, the `gamma` parameter must be a positive number
- (generally, a float). A ``gAMA`` chunk will be created.
- Note that this will not change the values of the pixels as
- they appear in the PNG file, they are assumed to have already
- been converted appropriately for the gamma specified.
-
- The `compression` argument specifies the compression level to
- be used by the ``zlib`` module. Values from 1 to 9 specify
- compression, with 9 being "more compressed" (usually smaller
- and slower, but it doesn't always work out that way). 0 means
- no compression. -1 and ``None`` both mean that the default
- level of compession will be picked by the ``zlib`` module
- (which is generally acceptable).
-
- If `interlace` is true then an interlaced image is created
- (using PNG's so far only interace method, *Adam7*). This does
- not affect how the pixels should be presented to the encoder,
- rather it changes how they are arranged into the PNG file.
- On slow connexions interlaced images can be partially decoded
- by the browser to give a rough view of the image that is
- successively refined as more image data appears.
-
- .. note ::
-
- Enabling the `interlace` option requires the entire image
- to be processed in working memory.
-
- `chunk_limit` is used to limit the amount of memory used whilst
- compressing the image. In order to avoid using large amounts of
- memory, multiple ``IDAT`` chunks may be created.
- """
-
- # At the moment the `planes` argument is ignored;
- # its purpose is to act as a dummy so that
- # ``Writer(x, y, **info)`` works, where `info` is a dictionary
- # returned by Reader.read and friends.
- # Ditto for `colormap`.
-
- width, height = check_sizes(size, width, height)
- del size
-
- if width <= 0 or height <= 0:
- raise ValueError("width and height must be greater than zero")
- if not isinteger(width) or not isinteger(height):
- raise ValueError("width and height must be integers")
- # http://www.w3.org/TR/PNG/#7Integers-and-byte-order
- if width > 2**32-1 or height > 2**32-1:
- raise ValueError("width and height cannot exceed 2**32-1")
-
- if alpha and transparent is not None:
- raise ValueError(
- "transparent colour not allowed with alpha channel")
-
- if bytes_per_sample is not None:
- warnings.warn('please use bitdepth instead of bytes_per_sample',
- DeprecationWarning)
- if bytes_per_sample not in (0.125, 0.25, 0.5, 1, 2):
- raise ValueError(
- "bytes per sample must be .125, .25, .5, 1, or 2")
- bitdepth = int(8*bytes_per_sample)
- del bytes_per_sample
- if not isinteger(bitdepth) or bitdepth < 1 or 16 < bitdepth:
- raise ValueError("bitdepth (%r) must be a positive integer <= 16" %
- bitdepth)
-
- self.rescale = None
- palette = check_palette(palette)
- if palette:
- if bitdepth not in (1,2,4,8):
- raise ValueError("with palette, bitdepth must be 1, 2, 4, or 8")
- if transparent is not None:
- raise ValueError("transparent and palette not compatible")
- if alpha:
- raise ValueError("alpha and palette not compatible")
- if greyscale:
- raise ValueError("greyscale and palette not compatible")
- else:
- # No palette, check for sBIT chunk generation.
- if alpha or not greyscale:
- if bitdepth not in (8,16):
- targetbitdepth = (8,16)[bitdepth > 8]
- self.rescale = (bitdepth, targetbitdepth)
- bitdepth = targetbitdepth
- del targetbitdepth
- else:
- assert greyscale
- assert not alpha
- if bitdepth not in (1,2,4,8,16):
- if bitdepth > 8:
- targetbitdepth = 16
- elif bitdepth == 3:
- targetbitdepth = 4
- else:
- assert bitdepth in (5,6,7)
- targetbitdepth = 8
- self.rescale = (bitdepth, targetbitdepth)
- bitdepth = targetbitdepth
- del targetbitdepth
-
- if bitdepth < 8 and (alpha or not greyscale and not palette):
- raise ValueError(
- "bitdepth < 8 only permitted with greyscale or palette")
- if bitdepth > 8 and palette:
- raise ValueError(
- "bit depth must be 8 or less for images with palette")
-
- transparent = check_color(transparent, greyscale, 'transparent')
- background = check_color(background, greyscale, 'background')
-
- # It's important that the true boolean values (greyscale, alpha,
- # colormap, interlace) are converted to bool because Iverson's
- # convention is relied upon later on.
- self.width = width
- self.height = height
- self.transparent = transparent
- self.background = background
- self.gamma = gamma
- self.greyscale = bool(greyscale)
- self.alpha = bool(alpha)
- self.colormap = bool(palette)
- self.bitdepth = int(bitdepth)
- self.compression = compression
- self.chunk_limit = chunk_limit
- self.interlace = bool(interlace)
- self.palette = palette
- self.x_pixels_per_unit = x_pixels_per_unit
- self.y_pixels_per_unit = y_pixels_per_unit
- self.unit_is_meter = bool(unit_is_meter)
-
- self.color_type = 4*self.alpha + 2*(not greyscale) + 1*self.colormap
- assert self.color_type in (0,2,3,4,6)
-
- self.color_planes = (3,1)[self.greyscale or self.colormap]
- self.planes = self.color_planes + self.alpha
- # :todo: fix for bitdepth < 8
- self.psize = (self.bitdepth/8) * self.planes
-
- def make_palette(self):
- """Create the byte sequences for a ``PLTE`` and if necessary a
- ``tRNS`` chunk. Returned as a pair (*p*, *t*). *t* will be
- ``None`` if no ``tRNS`` chunk is necessary.
- """
-
- p = array('B')
- t = array('B')
-
- for x in self.palette:
- p.extend(x[0:3])
- if len(x) > 3:
- t.append(x[3])
- p = tostring(p)
- t = tostring(t)
- if t:
- return p,t
- return p,None
-
- def write(self, outfile, rows):
- """Write a PNG image to the output file. `rows` should be
- an iterable that yields each row in boxed row flat pixel
- format. The rows should be the rows of the original image,
- so there should be ``self.height`` rows of ``self.width *
- self.planes`` values. If `interlace` is specified (when
- creating the instance), then an interlaced PNG file will
- be written. Supply the rows in the normal image order;
- the interlacing is carried out internally.
-
- .. note ::
-
- Interlacing will require the entire image to be in working
- memory.
- """
-
- if self.interlace:
- fmt = 'BH'[self.bitdepth > 8]
- a = array(fmt, itertools.chain(*rows))
- return self.write_array(outfile, a)
-
- nrows = self.write_passes(outfile, rows)
- if nrows != self.height:
- raise ValueError(
- "rows supplied (%d) does not match height (%d)" %
- (nrows, self.height))
-
- def write_passes(self, outfile, rows, packed=False):
- """
- Write a PNG image to the output file.
-
- Most users are expected to find the :meth:`write` or
- :meth:`write_array` method more convenient.
-
- The rows should be given to this method in the order that
- they appear in the output file. For straightlaced images,
- this is the usual top to bottom ordering, but for interlaced
- images the rows should have already been interlaced before
- passing them to this function.
-
- `rows` should be an iterable that yields each row. When
- `packed` is ``False`` the rows should be in boxed row flat pixel
- format; when `packed` is ``True`` each row should be a packed
- sequence of bytes.
- """
-
- # http://www.w3.org/TR/PNG/#5PNG-file-signature
- outfile.write(_signature)
-
- # http://www.w3.org/TR/PNG/#11IHDR
- write_chunk(outfile, 'IHDR',
- struct.pack("!2I5B", self.width, self.height,
- self.bitdepth, self.color_type,
- 0, 0, self.interlace))
-
- # See :chunk:order
- # http://www.w3.org/TR/PNG/#11gAMA
- if self.gamma is not None:
- write_chunk(outfile, 'gAMA',
- struct.pack("!L", int(round(self.gamma*1e5))))
-
- # See :chunk:order
- # http://www.w3.org/TR/PNG/#11sBIT
- if self.rescale:
- write_chunk(outfile, 'sBIT',
- struct.pack('%dB' % self.planes,
- *[self.rescale[0]]*self.planes))
-
- # :chunk:order: Without a palette (PLTE chunk), ordering is
- # relatively relaxed. With one, gAMA chunk must precede PLTE
- # chunk which must precede tRNS and bKGD.
- # See http://www.w3.org/TR/PNG/#5ChunkOrdering
- if self.palette:
- p,t = self.make_palette()
- write_chunk(outfile, 'PLTE', p)
- if t:
- # tRNS chunk is optional. Only needed if palette entries
- # have alpha.
- write_chunk(outfile, 'tRNS', t)
-
- # http://www.w3.org/TR/PNG/#11tRNS
- if self.transparent is not None:
- if self.greyscale:
- write_chunk(outfile, 'tRNS',
- struct.pack("!1H", *self.transparent))
- else:
- write_chunk(outfile, 'tRNS',
- struct.pack("!3H", *self.transparent))
-
- # http://www.w3.org/TR/PNG/#11bKGD
- if self.background is not None:
- if self.greyscale:
- write_chunk(outfile, 'bKGD',
- struct.pack("!1H", *self.background))
- else:
- write_chunk(outfile, 'bKGD',
- struct.pack("!3H", *self.background))
-
- # http://www.w3.org/TR/PNG/#11pHYs
- if self.x_pixels_per_unit is not None and self.y_pixels_per_unit is not None:
- tup = (self.x_pixels_per_unit, self.y_pixels_per_unit, int(self.unit_is_meter))
- write_chunk(outfile, 'pHYs', struct.pack("!LLB",*tup))
-
- # http://www.w3.org/TR/PNG/#11IDAT
- if self.compression is not None:
- compressor = zlib.compressobj(self.compression)
- else:
- compressor = zlib.compressobj()
-
- # Choose an extend function based on the bitdepth. The extend
- # function packs/decomposes the pixel values into bytes and
- # stuffs them onto the data array.
- data = array('B')
- if self.bitdepth == 8 or packed:
- extend = data.extend
- elif self.bitdepth == 16:
- # Decompose into bytes
- def extend(sl):
- fmt = '!%dH' % len(sl)
- data.extend(array('B', struct.pack(fmt, *sl)))
- else:
- # Pack into bytes
- assert self.bitdepth < 8
- # samples per byte
- spb = int(8/self.bitdepth)
- def extend(sl):
- a = array('B', sl)
- # Adding padding bytes so we can group into a whole
- # number of spb-tuples.
- l = float(len(a))
- extra = math.ceil(l / float(spb))*spb - l
- a.extend([0]*int(extra))
- # Pack into bytes
- l = group(a, spb)
- l = map(lambda e: reduce(lambda x,y:
- (x << self.bitdepth) + y, e), l)
- data.extend(l)
- if self.rescale:
- oldextend = extend
- factor = \
- float(2**self.rescale[1]-1) / float(2**self.rescale[0]-1)
- def extend(sl):
- oldextend(map(lambda x: int(round(factor*x)), sl))
-
- # Build the first row, testing mostly to see if we need to
- # changed the extend function to cope with NumPy integer types
- # (they cause our ordinary definition of extend to fail, so we
- # wrap it). See
- # http://code.google.com/p/pypng/issues/detail?id=44
- enumrows = enumerate(rows)
- del rows
-
- # First row's filter type.
- data.append(0)
- # :todo: Certain exceptions in the call to ``.next()`` or the
- # following try would indicate no row data supplied.
- # Should catch.
- i,row = enumrows.next()
- try:
- # If this fails...
- extend(row)
- except:
- # ... try a version that converts the values to int first.
- # Not only does this work for the (slightly broken) NumPy
- # types, there are probably lots of other, unknown, "nearly"
- # int types it works for.
- def wrapmapint(f):
- return lambda sl: f(map(int, sl))
- extend = wrapmapint(extend)
- del wrapmapint
- extend(row)
-
- for i,row in enumrows:
- # Add "None" filter type. Currently, it's essential that
- # this filter type be used for every scanline as we do not
- # mark the first row of a reduced pass image; that means we
- # could accidentally compute the wrong filtered scanline if
- # we used "up", "average", or "paeth" on such a line.
- data.append(0)
- extend(row)
- if len(data) > self.chunk_limit:
- compressed = compressor.compress(tostring(data))
- if len(compressed):
- write_chunk(outfile, 'IDAT', compressed)
- # Because of our very witty definition of ``extend``,
- # above, we must re-use the same ``data`` object. Hence
- # we use ``del`` to empty this one, rather than create a
- # fresh one (which would be my natural FP instinct).
- del data[:]
- if len(data):
- compressed = compressor.compress(tostring(data))
- else:
- compressed = strtobytes('')
- flushed = compressor.flush()
- if len(compressed) or len(flushed):
- write_chunk(outfile, 'IDAT', compressed + flushed)
- # http://www.w3.org/TR/PNG/#11IEND
- write_chunk(outfile, 'IEND')
- return i+1
-
- def write_array(self, outfile, pixels):
- """
- Write an array in flat row flat pixel format as a PNG file on
- the output file. See also :meth:`write` method.
- """
-
- if self.interlace:
- self.write_passes(outfile, self.array_scanlines_interlace(pixels))
- else:
- self.write_passes(outfile, self.array_scanlines(pixels))
-
- def write_packed(self, outfile, rows):
- """
- Write PNG file to `outfile`. The pixel data comes from `rows`
- which should be in boxed row packed format. Each row should be
- a sequence of packed bytes.
-
- Technically, this method does work for interlaced images but it
- is best avoided. For interlaced images, the rows should be
- presented in the order that they appear in the file.
-
- This method should not be used when the source image bit depth
- is not one naturally supported by PNG; the bit depth should be
- 1, 2, 4, 8, or 16.
- """
-
- if self.rescale:
- raise Error("write_packed method not suitable for bit depth %d" %
- self.rescale[0])
- return self.write_passes(outfile, rows, packed=True)
-
- def convert_pnm(self, infile, outfile):
- """
- Convert a PNM file containing raw pixel data into a PNG file
- with the parameters set in the writer object. Works for
- (binary) PGM, PPM, and PAM formats.
- """
-
- if self.interlace:
- pixels = array('B')
- pixels.fromfile(infile,
- (self.bitdepth/8) * self.color_planes *
- self.width * self.height)
- self.write_passes(outfile, self.array_scanlines_interlace(pixels))
- else:
- self.write_passes(outfile, self.file_scanlines(infile))
-
- def convert_ppm_and_pgm(self, ppmfile, pgmfile, outfile):
- """
- Convert a PPM and PGM file containing raw pixel data into a
- PNG outfile with the parameters set in the writer object.
- """
- pixels = array('B')
- pixels.fromfile(ppmfile,
- (self.bitdepth/8) * self.color_planes *
- self.width * self.height)
- apixels = array('B')
- apixels.fromfile(pgmfile,
- (self.bitdepth/8) *
- self.width * self.height)
- pixels = interleave_planes(pixels, apixels,
- (self.bitdepth/8) * self.color_planes,
- (self.bitdepth/8))
- if self.interlace:
- self.write_passes(outfile, self.array_scanlines_interlace(pixels))
- else:
- self.write_passes(outfile, self.array_scanlines(pixels))
-
- def file_scanlines(self, infile):
- """
- Generates boxed rows in flat pixel format, from the input file
- `infile`. It assumes that the input file is in a "Netpbm-like"
- binary format, and is positioned at the beginning of the first
- pixel. The number of pixels to read is taken from the image
- dimensions (`width`, `height`, `planes`) and the number of bytes
- per value is implied by the image `bitdepth`.
- """
-
- # Values per row
- vpr = self.width * self.planes
- row_bytes = vpr
- if self.bitdepth > 8:
- assert self.bitdepth == 16
- row_bytes *= 2
- fmt = '>%dH' % vpr
- def line():
- return array('H', struct.unpack(fmt, infile.read(row_bytes)))
- else:
- def line():
- scanline = array('B', infile.read(row_bytes))
- return scanline
- for y in range(self.height):
- yield line()
-
- def array_scanlines(self, pixels):
- """
- Generates boxed rows (flat pixels) from flat rows (flat pixels)
- in an array.
- """
-
- # Values per row
- vpr = self.width * self.planes
- stop = 0
- for y in range(self.height):
- start = stop
- stop = start + vpr
- yield pixels[start:stop]
-
- def array_scanlines_interlace(self, pixels):
- """
- Generator for interlaced scanlines from an array. `pixels` is
- the full source image in flat row flat pixel format. The
- generator yields each scanline of the reduced passes in turn, in
- boxed row flat pixel format.
- """
-
- # http://www.w3.org/TR/PNG/#8InterlaceMethods
- # Array type.
- fmt = 'BH'[self.bitdepth > 8]
- # Value per row
- vpr = self.width * self.planes
- for xstart, ystart, xstep, ystep in _adam7:
- if xstart >= self.width:
- continue
- # Pixels per row (of reduced image)
- ppr = int(math.ceil((self.width-xstart)/float(xstep)))
- # number of values in reduced image row.
- row_len = ppr*self.planes
- for y in range(ystart, self.height, ystep):
- if xstep == 1:
- offset = y * vpr
- yield pixels[offset:offset+vpr]
- else:
- row = array(fmt)
- # There's no easier way to set the length of an array
- row.extend(pixels[0:row_len])
- offset = y * vpr + xstart * self.planes
- end_offset = (y+1) * vpr
- skip = self.planes * xstep
- for i in range(self.planes):
- row[i::self.planes] = \
- pixels[offset+i:end_offset:skip]
- yield row
-
-def write_chunk(outfile, tag, data=strtobytes('')):
- """
- Write a PNG chunk to the output file, including length and
- checksum.
- """
-
- # http://www.w3.org/TR/PNG/#5Chunk-layout
- outfile.write(struct.pack("!I", len(data)))
- tag = strtobytes(tag)
- outfile.write(tag)
- outfile.write(data)
- checksum = zlib.crc32(tag)
- checksum = zlib.crc32(data, checksum)
- checksum &= 2**32-1
- outfile.write(struct.pack("!I", checksum))
-
-def write_chunks(out, chunks):
- """Create a PNG file by writing out the chunks."""
-
- out.write(_signature)
- for chunk in chunks:
- write_chunk(out, *chunk)
-
-def filter_scanline(type, line, fo, prev=None):
- """Apply a scanline filter to a scanline. `type` specifies the
- filter type (0 to 4); `line` specifies the current (unfiltered)
- scanline as a sequence of bytes; `prev` specifies the previous
- (unfiltered) scanline as a sequence of bytes. `fo` specifies the
- filter offset; normally this is size of a pixel in bytes (the number
- of bytes per sample times the number of channels), but when this is
- < 1 (for bit depths < 8) then the filter offset is 1.
- """
-
- assert 0 <= type < 5
-
- # The output array. Which, pathetically, we extend one-byte at a
- # time (fortunately this is linear).
- out = array('B', [type])
-
- def sub():
- ai = -fo
- for x in line:
- if ai >= 0:
- x = (x - line[ai]) & 0xff
- out.append(x)
- ai += 1
- def up():
- for i,x in enumerate(line):
- x = (x - prev[i]) & 0xff
- out.append(x)
- def average():
- ai = -fo
- for i,x in enumerate(line):
- if ai >= 0:
- x = (x - ((line[ai] + prev[i]) >> 1)) & 0xff
- else:
- x = (x - (prev[i] >> 1)) & 0xff
- out.append(x)
- ai += 1
- def paeth():
- # http://www.w3.org/TR/PNG/#9Filter-type-4-Paeth
- ai = -fo # also used for ci
- for i,x in enumerate(line):
- a = 0
- b = prev[i]
- c = 0
-
- if ai >= 0:
- a = line[ai]
- c = prev[ai]
- p = a + b - c
- pa = abs(p - a)
- pb = abs(p - b)
- pc = abs(p - c)
- if pa <= pb and pa <= pc:
- Pr = a
- elif pb <= pc:
- Pr = b
- else:
- Pr = c
-
- x = (x - Pr) & 0xff
- out.append(x)
- ai += 1
-
- if not prev:
- # We're on the first line. Some of the filters can be reduced
- # to simpler cases which makes handling the line "off the top"
- # of the image simpler. "up" becomes "none"; "paeth" becomes
- # "left" (non-trivial, but true). "average" needs to be handled
- # specially.
- if type == 2: # "up"
- type = 0
- elif type == 3:
- prev = [0]*len(line)
- elif type == 4: # "paeth"
- type = 1
- if type == 0:
- out.extend(line)
- elif type == 1:
- sub()
- elif type == 2:
- up()
- elif type == 3:
- average()
- else: # type == 4
- paeth()
- return out
-
-
-def from_array(a, mode=None, info={}):
- """Create a PNG :class:`Image` object from a 2- or 3-dimensional
- array. One application of this function is easy PIL-style saving:
- ``png.from_array(pixels, 'L').save('foo.png')``.
-
- .. note :
-
- The use of the term *3-dimensional* is for marketing purposes
- only. It doesn't actually work. Please bear with us. Meanwhile
- enjoy the complimentary snacks (on request) and please use a
- 2-dimensional array.
-
- Unless they are specified using the *info* parameter, the PNG's
- height and width are taken from the array size. For a 3 dimensional
- array the first axis is the height; the second axis is the width;
- and the third axis is the channel number. Thus an RGB image that is
- 16 pixels high and 8 wide will use an array that is 16x8x3. For 2
- dimensional arrays the first axis is the height, but the second axis
- is ``width*channels``, so an RGB image that is 16 pixels high and 8
- wide will use a 2-dimensional array that is 16x24 (each row will be
- 8*3==24 sample values).
-
- *mode* is a string that specifies the image colour format in a
- PIL-style mode. It can be:
-
- ``'L'``
- greyscale (1 channel)
- ``'LA'``
- greyscale with alpha (2 channel)
- ``'RGB'``
- colour image (3 channel)
- ``'RGBA'``
- colour image with alpha (4 channel)
-
- The mode string can also specify the bit depth (overriding how this
- function normally derives the bit depth, see below). Appending
- ``';16'`` to the mode will cause the PNG to be 16 bits per channel;
- any decimal from 1 to 16 can be used to specify the bit depth.
-
- When a 2-dimensional array is used *mode* determines how many
- channels the image has, and so allows the width to be derived from
- the second array dimension.
-
- The array is expected to be a ``numpy`` array, but it can be any
- suitable Python sequence. For example, a list of lists can be used:
- ``png.from_array([[0, 255, 0], [255, 0, 255]], 'L')``. The exact
- rules are: ``len(a)`` gives the first dimension, height;
- ``len(a[0])`` gives the second dimension; ``len(a[0][0])`` gives the
- third dimension, unless an exception is raised in which case a
- 2-dimensional array is assumed. It's slightly more complicated than
- that because an iterator of rows can be used, and it all still
- works. Using an iterator allows data to be streamed efficiently.
-
- The bit depth of the PNG is normally taken from the array element's
- datatype (but if *mode* specifies a bitdepth then that is used
- instead). The array element's datatype is determined in a way which
- is supposed to work both for ``numpy`` arrays and for Python
- ``array.array`` objects. A 1 byte datatype will give a bit depth of
- 8, a 2 byte datatype will give a bit depth of 16. If the datatype
- does not have an implicit size, for example it is a plain Python
- list of lists, as above, then a default of 8 is used.
-
- The *info* parameter is a dictionary that can be used to specify
- metadata (in the same style as the arguments to the
- :class:``png.Writer`` class). For this function the keys that are
- useful are:
-
- height
- overrides the height derived from the array dimensions and allows
- *a* to be an iterable.
- width
- overrides the width derived from the array dimensions.
- bitdepth
- overrides the bit depth derived from the element datatype (but
- must match *mode* if that also specifies a bit depth).
-
- Generally anything specified in the
- *info* dictionary will override any implicit choices that this
- function would otherwise make, but must match any explicit ones.
- For example, if the *info* dictionary has a ``greyscale`` key then
- this must be true when mode is ``'L'`` or ``'LA'`` and false when
- mode is ``'RGB'`` or ``'RGBA'``.
- """
-
- # We abuse the *info* parameter by modifying it. Take a copy here.
- # (Also typechecks *info* to some extent).
- info = dict(info)
-
- # Syntax check mode string.
- bitdepth = None
- try:
- # Assign the 'L' or 'RGBA' part to `gotmode`.
- if mode.startswith('L'):
- gotmode = 'L'
- mode = mode[1:]
- elif mode.startswith('RGB'):
- gotmode = 'RGB'
- mode = mode[3:]
- else:
- raise Error()
- if mode.startswith('A'):
- gotmode += 'A'
- mode = mode[1:]
-
- # Skip any optional ';'
- while mode.startswith(';'):
- mode = mode[1:]
-
- # Parse optional bitdepth
- if mode:
- try:
- bitdepth = int(mode)
- except (TypeError, ValueError):
- raise Error()
- except Error:
- raise Error("mode string should be 'RGB' or 'L;16' or similar.")
- mode = gotmode
-
- # Get bitdepth from *mode* if possible.
- if bitdepth:
- if info.get('bitdepth') and bitdepth != info['bitdepth']:
- raise Error("mode bitdepth (%d) should match info bitdepth (%d)." %
- (bitdepth, info['bitdepth']))
- info['bitdepth'] = bitdepth
-
- # Fill in and/or check entries in *info*.
- # Dimensions.
- if 'size' in info:
- # Check width, height, size all match where used.
- for dimension,axis in [('width', 0), ('height', 1)]:
- if dimension in info:
- if info[dimension] != info['size'][axis]:
- raise Error(
- "info[%r] should match info['size'][%r]." %
- (dimension, axis))
- info['width'],info['height'] = info['size']
- if 'height' not in info:
- try:
- l = len(a)
- except TypeError:
- raise Error(
- "len(a) does not work, supply info['height'] instead.")
- info['height'] = l
- # Colour format.
- if 'greyscale' in info:
- if bool(info['greyscale']) != ('L' in mode):
- raise Error("info['greyscale'] should match mode.")
- info['greyscale'] = 'L' in mode
- if 'alpha' in info:
- if bool(info['alpha']) != ('A' in mode):
- raise Error("info['alpha'] should match mode.")
- info['alpha'] = 'A' in mode
-
- planes = len(mode)
- if 'planes' in info:
- if info['planes'] != planes:
- raise Error("info['planes'] should match mode.")
-
- # In order to work out whether we the array is 2D or 3D we need its
- # first row, which requires that we take a copy of its iterator.
- # We may also need the first row to derive width and bitdepth.
- a,t = itertools.tee(a)
- row = t.next()
- del t
- try:
- row[0][0]
- threed = True
- testelement = row[0]
- except (IndexError, TypeError):
- threed = False
- testelement = row
- if 'width' not in info:
- if threed:
- width = len(row)
- else:
- width = len(row) // planes
- info['width'] = width
-
- # Not implemented yet
- assert not threed
-
- if 'bitdepth' not in info:
- try:
- dtype = testelement.dtype
- # goto the "else:" clause. Sorry.
- except AttributeError:
- try:
- # Try a Python array.array.
- bitdepth = 8 * testelement.itemsize
- except AttributeError:
- # We can't determine it from the array element's
- # datatype, use a default of 8.
- bitdepth = 8
- else:
- # If we got here without exception, we now assume that
- # the array is a numpy array.
- if dtype.kind == 'b':
- bitdepth = 1
- else:
- bitdepth = 8 * dtype.itemsize
- info['bitdepth'] = bitdepth
-
- for thing in 'width height bitdepth greyscale alpha'.split():
- assert thing in info
- return Image(a, info)
-
-# So that refugee's from PIL feel more at home. Not documented.
-fromarray = from_array
-
-class Image:
- """A PNG image. You can create an :class:`Image` object from
- an array of pixels by calling :meth:`png.from_array`. It can be
- saved to disk with the :meth:`save` method.
- """
-
- def __init__(self, rows, info):
- """
- .. note ::
-
- The constructor is not public. Please do not call it.
- """
-
- self.rows = rows
- self.info = info
-
- def save(self, file):
- """Save the image to *file*. If *file* looks like an open file
- descriptor then it is used, otherwise it is treated as a
- filename and a fresh file is opened.
-
- In general, you can only call this method once; after it has
- been called the first time and the PNG image has been saved, the
- source data will have been streamed, and cannot be streamed
- again.
- """
-
- w = Writer(**self.info)
-
- try:
- file.write
- def close(): pass
- except AttributeError:
- file = open(file, 'wb')
- def close(): file.close()
-
- try:
- w.write(file, self.rows)
- finally:
- close()
-
-class _readable:
- """
- A simple file-like interface for strings and arrays.
- """
-
- def __init__(self, buf):
- self.buf = buf
- self.offset = 0
-
- def read(self, n):
- r = self.buf[self.offset:self.offset+n]
- if isarray(r):
- r = r.tostring()
- self.offset += n
- return r
-
-
-class Reader:
- """
- PNG decoder in pure Python.
- """
-
- def __init__(self, _guess=None, **kw):
- """
- Create a PNG decoder object.
-
- The constructor expects exactly one keyword argument. If you
- supply a positional argument instead, it will guess the input
- type. You can choose among the following keyword arguments:
-
- filename
- Name of input file (a PNG file).
- file
- A file-like object (object with a read() method).
- bytes
- ``array`` or ``string`` with PNG data.
-
- """
- if ((_guess is not None and len(kw) != 0) or
- (_guess is None and len(kw) != 1)):
- raise TypeError("Reader() takes exactly 1 argument")
-
- # Will be the first 8 bytes, later on. See validate_signature.
- self.signature = None
- self.transparent = None
- # A pair of (len,type) if a chunk has been read but its data and
- # checksum have not (in other words the file position is just
- # past the 4 bytes that specify the chunk type). See preamble
- # method for how this is used.
- self.atchunk = None
-
- if _guess is not None:
- if isarray(_guess):
- kw["bytes"] = _guess
- elif isinstance(_guess, str):
- kw["filename"] = _guess
- elif hasattr(_guess, 'read'):
- kw["file"] = _guess
-
- if "filename" in kw:
- self.file = open(kw["filename"], "rb")
- elif "file" in kw:
- self.file = kw["file"]
- elif "bytes" in kw:
- self.file = _readable(kw["bytes"])
- else:
- raise TypeError("expecting filename, file or bytes array")
-
-
- def chunk(self, seek=None, lenient=False):
- """
- Read the next PNG chunk from the input file; returns a
- (*type*,*data*) tuple. *type* is the chunk's type as a string
- (all PNG chunk types are 4 characters long). *data* is the
- chunk's data content, as a string.
-
- If the optional `seek` argument is
- specified then it will keep reading chunks until it either runs
- out of file or finds the type specified by the argument. Note
- that in general the order of chunks in PNGs is unspecified, so
- using `seek` can cause you to miss chunks.
-
- If the optional `lenient` argument evaluates to True,
- checksum failures will raise warnings rather than exceptions.
- """
-
- self.validate_signature()
-
- while True:
- # http://www.w3.org/TR/PNG/#5Chunk-layout
- if not self.atchunk:
- self.atchunk = self.chunklentype()
- length,type = self.atchunk
- self.atchunk = None
- data = self.file.read(length)
- if len(data) != length:
- raise ChunkError('Chunk %s too short for required %i octets.'
- % (type, length))
- checksum = self.file.read(4)
- if len(checksum) != 4:
- raise ChunkError('Chunk %s too short for checksum.' % type)
- if seek and type != seek:
- continue
- verify = zlib.crc32(strtobytes(type))
- verify = zlib.crc32(data, verify)
- # Whether the output from zlib.crc32 is signed or not varies
- # according to hideous implementation details, see
- # http://bugs.python.org/issue1202 .
- # We coerce it to be positive here (in a way which works on
- # Python 2.3 and older).
- verify &= 2**32 - 1
- verify = struct.pack('!I', verify)
- if checksum != verify:
- (a, ) = struct.unpack('!I', checksum)
- (b, ) = struct.unpack('!I', verify)
- message = "Checksum error in %s chunk: 0x%08X != 0x%08X." % (type, a, b)
- if lenient:
- warnings.warn(message, RuntimeWarning)
- else:
- raise ChunkError(message)
- return type, data
-
- def chunks(self):
- """Return an iterator that will yield each chunk as a
- (*chunktype*, *content*) pair.
- """
-
- while True:
- t,v = self.chunk()
- yield t,v
- if t == 'IEND':
- break
-
- def undo_filter(self, filter_type, scanline, previous):
- """Undo the filter for a scanline. `scanline` is a sequence of
- bytes that does not include the initial filter type byte.
- `previous` is decoded previous scanline (for straightlaced
- images this is the previous pixel row, but for interlaced
- images, it is the previous scanline in the reduced image, which
- in general is not the previous pixel row in the final image).
- When there is no previous scanline (the first row of a
- straightlaced image, or the first row in one of the passes in an
- interlaced image), then this argument should be ``None``.
-
- The scanline will have the effects of filtering removed, and the
- result will be returned as a fresh sequence of bytes.
- """
-
- # :todo: Would it be better to update scanline in place?
- # Yes, with the Cython extension making the undo_filter fast,
- # updating scanline inplace makes the code 3 times faster
- # (reading 50 images of 800x800 went from 40s to 16s)
- result = scanline
-
- if filter_type == 0:
- return result
-
- if filter_type not in (1,2,3,4):
- raise FormatError('Invalid PNG Filter Type.'
- ' See http://www.w3.org/TR/2003/REC-PNG-20031110/#9Filters .')
-
- # Filter unit. The stride from one pixel to the corresponding
- # byte from the previous pixel. Normally this is the pixel
- # size in bytes, but when this is smaller than 1, the previous
- # byte is used instead.
- fu = max(1, self.psize)
-
- # For the first line of a pass, synthesize a dummy previous
- # line. An alternative approach would be to observe that on the
- # first line 'up' is the same as 'null', 'paeth' is the same
- # as 'sub', with only 'average' requiring any special case.
- if not previous:
- previous = array('B', [0]*len(scanline))
-
- def sub():
- """Undo sub filter."""
-
- ai = 0
- # Loop starts at index fu. Observe that the initial part
- # of the result is already filled in correctly with
- # scanline.
- for i in range(fu, len(result)):
- x = scanline[i]
- a = result[ai]
- result[i] = (x + a) & 0xff
- ai += 1
-
- def up():
- """Undo up filter."""
-
- for i in range(len(result)):
- x = scanline[i]
- b = previous[i]
- result[i] = (x + b) & 0xff
-
- def average():
- """Undo average filter."""
-
- ai = -fu
- for i in range(len(result)):
- x = scanline[i]
- if ai < 0:
- a = 0
- else:
- a = result[ai]
- b = previous[i]
- result[i] = (x + ((a + b) >> 1)) & 0xff
- ai += 1
-
- def paeth():
- """Undo Paeth filter."""
-
- # Also used for ci.
- ai = -fu
- for i in range(len(result)):
- x = scanline[i]
- if ai < 0:
- a = c = 0
- else:
- a = result[ai]
- c = previous[ai]
- b = previous[i]
- p = a + b - c
- pa = abs(p - a)
- pb = abs(p - b)
- pc = abs(p - c)
- if pa <= pb and pa <= pc:
- pr = a
- elif pb <= pc:
- pr = b
- else:
- pr = c
- result[i] = (x + pr) & 0xff
- ai += 1
-
- # Call appropriate filter algorithm. Note that 0 has already
- # been dealt with.
- (None,
- pngfilters.undo_filter_sub,
- pngfilters.undo_filter_up,
- pngfilters.undo_filter_average,
- pngfilters.undo_filter_paeth)[filter_type](fu, scanline, previous, result)
- return result
-
- def deinterlace(self, raw):
- """
- Read raw pixel data, undo filters, deinterlace, and flatten.
- Return in flat row flat pixel format.
- """
-
- # Values per row (of the target image)
- vpr = self.width * self.planes
-
- # Make a result array, and make it big enough. Interleaving
- # writes to the output array randomly (well, not quite), so the
- # entire output array must be in memory.
- fmt = 'BH'[self.bitdepth > 8]
- a = array(fmt, [0]*vpr*self.height)
- source_offset = 0
-
- for xstart, ystart, xstep, ystep in _adam7:
- if xstart >= self.width:
- continue
- # The previous (reconstructed) scanline. None at the
- # beginning of a pass to indicate that there is no previous
- # line.
- recon = None
- # Pixels per row (reduced pass image)
- ppr = int(math.ceil((self.width-xstart)/float(xstep)))
- # Row size in bytes for this pass.
- row_size = int(math.ceil(self.psize * ppr))
- for y in range(ystart, self.height, ystep):
- filter_type = raw[source_offset]
- source_offset += 1
- scanline = raw[source_offset:source_offset+row_size]
- source_offset += row_size
- recon = self.undo_filter(filter_type, scanline, recon)
- # Convert so that there is one element per pixel value
- flat = self.serialtoflat(recon, ppr)
- if xstep == 1:
- assert xstart == 0
- offset = y * vpr
- a[offset:offset+vpr] = flat
- else:
- offset = y * vpr + xstart * self.planes
- end_offset = (y+1) * vpr
- skip = self.planes * xstep
- for i in range(self.planes):
- a[offset+i:end_offset:skip] = \
- flat[i::self.planes]
- return a
-
- def iterboxed(self, rows):
- """Iterator that yields each scanline in boxed row flat pixel
- format. `rows` should be an iterator that yields the bytes of
- each row in turn.
- """
-
- def asvalues(raw):
- """Convert a row of raw bytes into a flat row. Result will
- be a freshly allocated object, not shared with
- argument.
- """
-
- if self.bitdepth == 8:
- return array('B', raw)
- if self.bitdepth == 16:
- raw = tostring(raw)
- return array('H', struct.unpack('!%dH' % (len(raw)//2), raw))
- assert self.bitdepth < 8
- width = self.width
- # Samples per byte
- spb = 8//self.bitdepth
- out = array('B')
- mask = 2**self.bitdepth - 1
- shifts = map(self.bitdepth.__mul__, reversed(range(spb)))
- for o in raw:
- out.extend(map(lambda i: mask&(o>>i), shifts))
- return out[:width]
-
- return itertools.imap(asvalues, rows)
-
- def serialtoflat(self, bytes, width=None):
- """Convert serial format (byte stream) pixel data to flat row
- flat pixel.
- """
-
- if self.bitdepth == 8:
- return bytes
- if self.bitdepth == 16:
- bytes = tostring(bytes)
- return array('H',
- struct.unpack('!%dH' % (len(bytes)//2), bytes))
- assert self.bitdepth < 8
- if width is None:
- width = self.width
- # Samples per byte
- spb = 8//self.bitdepth
- out = array('B')
- mask = 2**self.bitdepth - 1
- shifts = map(self.bitdepth.__mul__, reversed(range(spb)))
- l = width
- for o in bytes:
- out.extend([(mask&(o>>s)) for s in shifts][:l])
- l -= spb
- if l <= 0:
- l = width
- return out
-
- def iterstraight(self, raw):
- """Iterator that undoes the effect of filtering, and yields
- each row in serialised format (as a sequence of bytes).
- Assumes input is straightlaced. `raw` should be an iterable
- that yields the raw bytes in chunks of arbitrary size.
- """
-
- # length of row, in bytes
- rb = self.row_bytes
- a = array('B')
- # The previous (reconstructed) scanline. None indicates first
- # line of image.
- recon = None
- for some in raw:
- a.extend(some)
- while len(a) >= rb + 1:
- filter_type = a[0]
- scanline = a[1:rb+1]
- del a[:rb+1]
- recon = self.undo_filter(filter_type, scanline, recon)
- yield recon
- if len(a) != 0:
- # :file:format We get here with a file format error:
- # when the available bytes (after decompressing) do not
- # pack into exact rows.
- raise FormatError(
- 'Wrong size for decompressed IDAT chunk.')
- assert len(a) == 0
-
- def validate_signature(self):
- """If signature (header) has not been read then read and
- validate it; otherwise do nothing.
- """
-
- if self.signature:
- return
- self.signature = self.file.read(8)
- if self.signature != _signature:
- raise FormatError("PNG file has invalid signature.")
-
- def preamble(self, lenient=False):
- """
- Extract the image metadata by reading the initial part of
- the PNG file up to the start of the ``IDAT`` chunk. All the
- chunks that precede the ``IDAT`` chunk are read and either
- processed for metadata or discarded.
-
- If the optional `lenient` argument evaluates to True, checksum
- failures will raise warnings rather than exceptions.
- """
-
- self.validate_signature()
-
- while True:
- if not self.atchunk:
- self.atchunk = self.chunklentype()
- if self.atchunk is None:
- raise FormatError(
- 'This PNG file has no IDAT chunks.')
- if self.atchunk[1] == 'IDAT':
- return
- self.process_chunk(lenient=lenient)
-
- def chunklentype(self):
- """Reads just enough of the input to determine the next
- chunk's length and type, returned as a (*length*, *type*) pair
- where *type* is a string. If there are no more chunks, ``None``
- is returned.
- """
-
- x = self.file.read(8)
- if not x:
- return None
- if len(x) != 8:
- raise FormatError(
- 'End of file whilst reading chunk length and type.')
- length,type = struct.unpack('!I4s', x)
- type = bytestostr(type)
- if length > 2**31-1:
- raise FormatError('Chunk %s is too large: %d.' % (type,length))
- return length,type
-
- def process_chunk(self, lenient=False):
- """Process the next chunk and its data. This only processes the
- following chunk types, all others are ignored: ``IHDR``,
- ``PLTE``, ``bKGD``, ``tRNS``, ``gAMA``, ``sBIT``, ``pHYs``.
-
- If the optional `lenient` argument evaluates to True,
- checksum failures will raise warnings rather than exceptions.
- """
-
- type, data = self.chunk(lenient=lenient)
- method = '_process_' + type
- m = getattr(self, method, None)
- if m:
- m(data)
-
- def _process_IHDR(self, data):
- # http://www.w3.org/TR/PNG/#11IHDR
- if len(data) != 13:
- raise FormatError('IHDR chunk has incorrect length.')
- (self.width, self.height, self.bitdepth, self.color_type,
- self.compression, self.filter,
- self.interlace) = struct.unpack("!2I5B", data)
-
- check_bitdepth_colortype(self.bitdepth, self.color_type)
-
- if self.compression != 0:
- raise Error("unknown compression method %d" % self.compression)
- if self.filter != 0:
- raise FormatError("Unknown filter method %d,"
- " see http://www.w3.org/TR/2003/REC-PNG-20031110/#9Filters ."
- % self.filter)
- if self.interlace not in (0,1):
- raise FormatError("Unknown interlace method %d,"
- " see http://www.w3.org/TR/2003/REC-PNG-20031110/#8InterlaceMethods ."
- % self.interlace)
-
- # Derived values
- # http://www.w3.org/TR/PNG/#6Colour-values
- colormap = bool(self.color_type & 1)
- greyscale = not (self.color_type & 2)
- alpha = bool(self.color_type & 4)
- color_planes = (3,1)[greyscale or colormap]
- planes = color_planes + alpha
-
- self.colormap = colormap
- self.greyscale = greyscale
- self.alpha = alpha
- self.color_planes = color_planes
- self.planes = planes
- self.psize = float(self.bitdepth)/float(8) * planes
- if int(self.psize) == self.psize:
- self.psize = int(self.psize)
- self.row_bytes = int(math.ceil(self.width * self.psize))
- # Stores PLTE chunk if present, and is used to check
- # chunk ordering constraints.
- self.plte = None
- # Stores tRNS chunk if present, and is used to check chunk
- # ordering constraints.
- self.trns = None
- # Stores sbit chunk if present.
- self.sbit = None
-
- def _process_PLTE(self, data):
- # http://www.w3.org/TR/PNG/#11PLTE
- if self.plte:
- warnings.warn("Multiple PLTE chunks present.")
- self.plte = data
- if len(data) % 3 != 0:
- raise FormatError(
- "PLTE chunk's length should be a multiple of 3.")
- if len(data) > (2**self.bitdepth)*3:
- raise FormatError("PLTE chunk is too long.")
- if len(data) == 0:
- raise FormatError("Empty PLTE is not allowed.")
-
- def _process_bKGD(self, data):
- try:
- if self.colormap:
- if not self.plte:
- warnings.warn(
- "PLTE chunk is required before bKGD chunk.")
- self.background = struct.unpack('B', data)
- else:
- self.background = struct.unpack("!%dH" % self.color_planes,
- data)
- except struct.error:
- raise FormatError("bKGD chunk has incorrect length.")
-
- def _process_tRNS(self, data):
- # http://www.w3.org/TR/PNG/#11tRNS
- self.trns = data
- if self.colormap:
- if not self.plte:
- warnings.warn("PLTE chunk is required before tRNS chunk.")
- else:
- if len(data) > len(self.plte)/3:
- # Was warning, but promoted to Error as it
- # would otherwise cause pain later on.
- raise FormatError("tRNS chunk is too long.")
- else:
- if self.alpha:
- raise FormatError(
- "tRNS chunk is not valid with colour type %d." %
- self.color_type)
- try:
- self.transparent = \
- struct.unpack("!%dH" % self.color_planes, data)
- except struct.error:
- raise FormatError("tRNS chunk has incorrect length.")
-
- def _process_gAMA(self, data):
- try:
- self.gamma = struct.unpack("!L", data)[0] / 100000.0
- except struct.error:
- raise FormatError("gAMA chunk has incorrect length.")
-
- def _process_sBIT(self, data):
- self.sbit = data
- if (self.colormap and len(data) != 3 or
- not self.colormap and len(data) != self.planes):
- raise FormatError("sBIT chunk has incorrect length.")
-
- def _process_pHYs(self, data):
- # http://www.w3.org/TR/PNG/#11pHYs
- self.phys = data
- fmt = "!LLB"
- if len(data) != struct.calcsize(fmt):
- raise FormatError("pHYs chunk has incorrect length.")
- self.x_pixels_per_unit, self.y_pixels_per_unit, unit = struct.unpack(fmt,data)
- self.unit_is_meter = bool(unit)
-
- def read(self, lenient=False):
- """
- Read the PNG file and decode it. Returns (`width`, `height`,
- `pixels`, `metadata`).
-
- May use excessive memory.
-
- `pixels` are returned in boxed row flat pixel format.
-
- If the optional `lenient` argument evaluates to True,
- checksum failures will raise warnings rather than exceptions.
- """
-
- def iteridat():
- """Iterator that yields all the ``IDAT`` chunks as strings."""
- while True:
- try:
- type, data = self.chunk(lenient=lenient)
- except ValueError, e:
- raise ChunkError(e.args[0])
- if type == 'IEND':
- # http://www.w3.org/TR/PNG/#11IEND
- break
- if type != 'IDAT':
- continue
- # type == 'IDAT'
- # http://www.w3.org/TR/PNG/#11IDAT
- if self.colormap and not self.plte:
- warnings.warn("PLTE chunk is required before IDAT chunk")
- yield data
-
- def iterdecomp(idat):
- """Iterator that yields decompressed strings. `idat` should
- be an iterator that yields the ``IDAT`` chunk data.
- """
-
- # Currently, with no max_length parameter to decompress,
- # this routine will do one yield per IDAT chunk: Not very
- # incremental.
- d = zlib.decompressobj()
- # Each IDAT chunk is passed to the decompressor, then any
- # remaining state is decompressed out.
- for data in idat:
- # :todo: add a max_length argument here to limit output
- # size.
- yield array('B', d.decompress(data))
- yield array('B', d.flush())
-
- self.preamble(lenient=lenient)
- raw = iterdecomp(iteridat())
-
- if self.interlace:
- raw = array('B', itertools.chain(*raw))
- arraycode = 'BH'[self.bitdepth>8]
- # Like :meth:`group` but producing an array.array object for
- # each row.
- pixels = itertools.imap(lambda *row: array(arraycode, row),
- *[iter(self.deinterlace(raw))]*self.width*self.planes)
- else:
- pixels = self.iterboxed(self.iterstraight(raw))
- meta = dict()
- for attr in 'greyscale alpha planes bitdepth interlace'.split():
- meta[attr] = getattr(self, attr)
- meta['size'] = (self.width, self.height)
- for attr in 'gamma transparent background'.split():
- a = getattr(self, attr, None)
- if a is not None:
- meta[attr] = a
- if self.plte:
- meta['palette'] = self.palette()
- return self.width, self.height, pixels, meta
-
-
- def read_flat(self):
- """
- Read a PNG file and decode it into flat row flat pixel format.
- Returns (*width*, *height*, *pixels*, *metadata*).
-
- May use excessive memory.
-
- `pixels` are returned in flat row flat pixel format.
-
- See also the :meth:`read` method which returns pixels in the
- more stream-friendly boxed row flat pixel format.
- """
-
- x, y, pixel, meta = self.read()
- arraycode = 'BH'[meta['bitdepth']>8]
- pixel = array(arraycode, itertools.chain(*pixel))
- return x, y, pixel, meta
-
- def palette(self, alpha='natural'):
- """Returns a palette that is a sequence of 3-tuples or 4-tuples,
- synthesizing it from the ``PLTE`` and ``tRNS`` chunks. These
- chunks should have already been processed (for example, by
- calling the :meth:`preamble` method). All the tuples are the
- same size: 3-tuples if there is no ``tRNS`` chunk, 4-tuples when
- there is a ``tRNS`` chunk. Assumes that the image is colour type
- 3 and therefore a ``PLTE`` chunk is required.
-
- If the `alpha` argument is ``'force'`` then an alpha channel is
- always added, forcing the result to be a sequence of 4-tuples.
- """
-
- if not self.plte:
- raise FormatError(
- "Required PLTE chunk is missing in colour type 3 image.")
- plte = group(array('B', self.plte), 3)
- if self.trns or alpha == 'force':
- trns = array('B', self.trns or '')
- trns.extend([255]*(len(plte)-len(trns)))
- plte = map(operator.add, plte, group(trns, 1))
- return plte
-
- def asDirect(self):
- """Returns the image data as a direct representation of an
- ``x * y * planes`` array. This method is intended to remove the
- need for callers to deal with palettes and transparency
- themselves. Images with a palette (colour type 3)
- are converted to RGB or RGBA; images with transparency (a
- ``tRNS`` chunk) are converted to LA or RGBA as appropriate.
- When returned in this format the pixel values represent the
- colour value directly without needing to refer to palettes or
- transparency information.
-
- Like the :meth:`read` method this method returns a 4-tuple:
-
- (*width*, *height*, *pixels*, *meta*)
-
- This method normally returns pixel values with the bit depth
- they have in the source image, but when the source PNG has an
- ``sBIT`` chunk it is inspected and can reduce the bit depth of
- the result pixels; pixel values will be reduced according to
- the bit depth specified in the ``sBIT`` chunk (PNG nerds should
- note a single result bit depth is used for all channels; the
- maximum of the ones specified in the ``sBIT`` chunk. An RGB565
- image will be rescaled to 6-bit RGB666).
-
- The *meta* dictionary that is returned reflects the `direct`
- format and not the original source image. For example, an RGB
- source image with a ``tRNS`` chunk to represent a transparent
- colour, will have ``planes=3`` and ``alpha=False`` for the
- source image, but the *meta* dictionary returned by this method
- will have ``planes=4`` and ``alpha=True`` because an alpha
- channel is synthesized and added.
-
- *pixels* is the pixel data in boxed row flat pixel format (just
- like the :meth:`read` method).
-
- All the other aspects of the image data are not changed.
- """
-
- self.preamble()
-
- # Simple case, no conversion necessary.
- if not self.colormap and not self.trns and not self.sbit:
- return self.read()
-
- x,y,pixels,meta = self.read()
-
- if self.colormap:
- meta['colormap'] = False
- meta['alpha'] = bool(self.trns)
- meta['bitdepth'] = 8
- meta['planes'] = 3 + bool(self.trns)
- plte = self.palette()
- def iterpal(pixels):
- for row in pixels:
- row = map(plte.__getitem__, row)
- yield array('B', itertools.chain(*row))
- pixels = iterpal(pixels)
- elif self.trns:
- # It would be nice if there was some reasonable way
- # of doing this without generating a whole load of
- # intermediate tuples. But tuples does seem like the
- # easiest way, with no other way clearly much simpler or
- # much faster. (Actually, the L to LA conversion could
- # perhaps go faster (all those 1-tuples!), but I still
- # wonder whether the code proliferation is worth it)
- it = self.transparent
- maxval = 2**meta['bitdepth']-1
- planes = meta['planes']
- meta['alpha'] = True
- meta['planes'] += 1
- typecode = 'BH'[meta['bitdepth']>8]
- def itertrns(pixels):
- for row in pixels:
- # For each row we group it into pixels, then form a
- # characterisation vector that says whether each
- # pixel is opaque or not. Then we convert
- # True/False to 0/maxval (by multiplication),
- # and add it as the extra channel.
- row = group(row, planes)
- opa = map(it.__ne__, row)
- opa = map(maxval.__mul__, opa)
- opa = zip(opa) # convert to 1-tuples
- yield array(typecode,
- itertools.chain(*map(operator.add, row, opa)))
- pixels = itertrns(pixels)
- targetbitdepth = None
- if self.sbit:
- sbit = struct.unpack('%dB' % len(self.sbit), self.sbit)
- targetbitdepth = max(sbit)
- if targetbitdepth > meta['bitdepth']:
- raise Error('sBIT chunk %r exceeds bitdepth %d' %
- (sbit,self.bitdepth))
- if min(sbit) <= 0:
- raise Error('sBIT chunk %r has a 0-entry' % sbit)
- if targetbitdepth == meta['bitdepth']:
- targetbitdepth = None
- if targetbitdepth:
- shift = meta['bitdepth'] - targetbitdepth
- meta['bitdepth'] = targetbitdepth
- def itershift(pixels):
- for row in pixels:
- yield map(shift.__rrshift__, row)
- pixels = itershift(pixels)
- return x,y,pixels,meta
-
- def asFloat(self, maxval=1.0):
- """Return image pixels as per :meth:`asDirect` method, but scale
- all pixel values to be floating point values between 0.0 and
- *maxval*.
- """
-
- x,y,pixels,info = self.asDirect()
- sourcemaxval = 2**info['bitdepth']-1
- del info['bitdepth']
- info['maxval'] = float(maxval)
- factor = float(maxval)/float(sourcemaxval)
- def iterfloat():
- for row in pixels:
- yield map(factor.__mul__, row)
- return x,y,iterfloat(),info
-
- def _as_rescale(self, get, targetbitdepth):
- """Helper used by :meth:`asRGB8` and :meth:`asRGBA8`."""
-
- width,height,pixels,meta = get()
- maxval = 2**meta['bitdepth'] - 1
- targetmaxval = 2**targetbitdepth - 1
- factor = float(targetmaxval) / float(maxval)
- meta['bitdepth'] = targetbitdepth
- def iterscale():
- for row in pixels:
- yield map(lambda x: int(round(x*factor)), row)
- if maxval == targetmaxval:
- return width, height, pixels, meta
- else:
- return width, height, iterscale(), meta
-
- def asRGB8(self):
- """Return the image data as an RGB pixels with 8-bits per
- sample. This is like the :meth:`asRGB` method except that
- this method additionally rescales the values so that they
- are all between 0 and 255 (8-bit). In the case where the
- source image has a bit depth < 8 the transformation preserves
- all the information; where the source image has bit depth
- > 8, then rescaling to 8-bit values loses precision. No
- dithering is performed. Like :meth:`asRGB`, an alpha channel
- in the source image will raise an exception.
-
- This function returns a 4-tuple:
- (*width*, *height*, *pixels*, *metadata*).
- *width*, *height*, *metadata* are as per the
- :meth:`read` method.
-
- *pixels* is the pixel data in boxed row flat pixel format.
- """
-
- return self._as_rescale(self.asRGB, 8)
-
- def asRGBA8(self):
- """Return the image data as RGBA pixels with 8-bits per
- sample. This method is similar to :meth:`asRGB8` and
- :meth:`asRGBA`: The result pixels have an alpha channel, *and*
- values are rescaled to the range 0 to 255. The alpha channel is
- synthesized if necessary (with a small speed penalty).
- """
-
- return self._as_rescale(self.asRGBA, 8)
-
- def asRGB(self):
- """Return image as RGB pixels. RGB colour images are passed
- through unchanged; greyscales are expanded into RGB
- triplets (there is a small speed overhead for doing this).
-
- An alpha channel in the source image will raise an
- exception.
-
- The return values are as for the :meth:`read` method
- except that the *metadata* reflect the returned pixels, not the
- source image. In particular, for this method
- ``metadata['greyscale']`` will be ``False``.
- """
-
- width,height,pixels,meta = self.asDirect()
- if meta['alpha']:
- raise Error("will not convert image with alpha channel to RGB")
- if not meta['greyscale']:
- return width,height,pixels,meta
- meta['greyscale'] = False
- typecode = 'BH'[meta['bitdepth'] > 8]
- def iterrgb():
- for row in pixels:
- a = array(typecode, [0]) * 3 * width
- for i in range(3):
- a[i::3] = row
- yield a
- return width,height,iterrgb(),meta
-
- def asRGBA(self):
- """Return image as RGBA pixels. Greyscales are expanded into
- RGB triplets; an alpha channel is synthesized if necessary.
- The return values are as for the :meth:`read` method
- except that the *metadata* reflect the returned pixels, not the
- source image. In particular, for this method
- ``metadata['greyscale']`` will be ``False``, and
- ``metadata['alpha']`` will be ``True``.
- """
-
- width,height,pixels,meta = self.asDirect()
- if meta['alpha'] and not meta['greyscale']:
- return width,height,pixels,meta
- typecode = 'BH'[meta['bitdepth'] > 8]
- maxval = 2**meta['bitdepth'] - 1
- maxbuffer = struct.pack('=' + typecode, maxval) * 4 * width
- def newarray():
- return array(typecode, maxbuffer)
-
- if meta['alpha'] and meta['greyscale']:
- # LA to RGBA
- def convert():
- for row in pixels:
- # Create a fresh target row, then copy L channel
- # into first three target channels, and A channel
- # into fourth channel.
- a = newarray()
- pngfilters.convert_la_to_rgba(row, a)
- yield a
- elif meta['greyscale']:
- # L to RGBA
- def convert():
- for row in pixels:
- a = newarray()
- pngfilters.convert_l_to_rgba(row, a)
- yield a
- else:
- assert not meta['alpha'] and not meta['greyscale']
- # RGB to RGBA
- def convert():
- for row in pixels:
- a = newarray()
- pngfilters.convert_rgb_to_rgba(row, a)
- yield a
- meta['alpha'] = True
- meta['greyscale'] = False
- return width,height,convert(),meta
-
-def check_bitdepth_colortype(bitdepth, colortype):
- """Check that `bitdepth` and `colortype` are both valid,
- and specified in a valid combination. Returns if valid,
- raise an Exception if not valid.
- """
-
- if bitdepth not in (1,2,4,8,16):
- raise FormatError("invalid bit depth %d" % bitdepth)
- if colortype not in (0,2,3,4,6):
- raise FormatError("invalid colour type %d" % colortype)
- # Check indexed (palettized) images have 8 or fewer bits
- # per pixel; check only indexed or greyscale images have
- # fewer than 8 bits per pixel.
- if colortype & 1 and bitdepth > 8:
- raise FormatError(
- "Indexed images (colour type %d) cannot"
- " have bitdepth > 8 (bit depth %d)."
- " See http://www.w3.org/TR/2003/REC-PNG-20031110/#table111 ."
- % (bitdepth, colortype))
- if bitdepth < 8 and colortype not in (0,3):
- raise FormatError("Illegal combination of bit depth (%d)"
- " and colour type (%d)."
- " See http://www.w3.org/TR/2003/REC-PNG-20031110/#table111 ."
- % (bitdepth, colortype))
-
-def isinteger(x):
- try:
- return int(x) == x
- except (TypeError, ValueError):
- return False
-
-
-# === Legacy Version Support ===
-
-# :pyver:old: PyPNG works on Python versions 2.3 and 2.2, but not
-# without some awkward problems. Really PyPNG works on Python 2.4 (and
-# above); it works on Pythons 2.3 and 2.2 by virtue of fixing up
-# problems here. It's a bit ugly (which is why it's hidden down here).
-#
-# Generally the strategy is one of pretending that we're running on
-# Python 2.4 (or above), and patching up the library support on earlier
-# versions so that it looks enough like Python 2.4. When it comes to
-# Python 2.2 there is one thing we cannot patch: extended slices
-# http://www.python.org/doc/2.3/whatsnew/section-slices.html.
-# Instead we simply declare that features that are implemented using
-# extended slices will not work on Python 2.2.
-#
-# In order to work on Python 2.3 we fix up a recurring annoyance involving
-# the array type. In Python 2.3 an array cannot be initialised with an
-# array, and it cannot be extended with a list (or other sequence).
-# Both of those are repeated issues in the code. Whilst I would not
-# normally tolerate this sort of behaviour, here we "shim" a replacement
-# for array into place (and hope no-one notices). You never read this.
-#
-# In an amusing case of warty hacks on top of warty hacks... the array
-# shimming we try and do only works on Python 2.3 and above (you can't
-# subclass array.array in Python 2.2). So to get it working on Python
-# 2.2 we go for something much simpler and (probably) way slower.
-try:
- array('B').extend([])
- array('B', array('B'))
-# :todo:(drj) Check that TypeError is correct for Python 2.3
-except TypeError:
- # Expect to get here on Python 2.3
- try:
- class _array_shim(array):
- true_array = array
- def __new__(cls, typecode, init=None):
- super_new = super(_array_shim, cls).__new__
- it = super_new(cls, typecode)
- if init is None:
- return it
- it.extend(init)
- return it
- def extend(self, extension):
- super_extend = super(_array_shim, self).extend
- if isinstance(extension, self.true_array):
- return super_extend(extension)
- if not isinstance(extension, (list, str)):
- # Convert to list. Allows iterators to work.
- extension = list(extension)
- return super_extend(self.true_array(self.typecode, extension))
- array = _array_shim
- except TypeError:
- # Expect to get here on Python 2.2
- def array(typecode, init=()):
- if type(init) == str:
- return map(ord, init)
- return list(init)
-
-# Further hacks to get it limping along on Python 2.2
-try:
- enumerate
-except NameError:
- def enumerate(seq):
- i=0
- for x in seq:
- yield i,x
- i += 1
-
-try:
- reversed
-except NameError:
- def reversed(l):
- l = list(l)
- l.reverse()
- for x in l:
- yield x
-
-try:
- itertools
-except NameError:
- class _dummy_itertools:
- pass
- itertools = _dummy_itertools()
- def _itertools_imap(f, seq):
- for x in seq:
- yield f(x)
- itertools.imap = _itertools_imap
- def _itertools_chain(*iterables):
- for it in iterables:
- for element in it:
- yield element
- itertools.chain = _itertools_chain
-
-
-# === Support for users without Cython ===
-
-try:
- pngfilters
-except NameError:
- class pngfilters(object):
- def undo_filter_sub(filter_unit, scanline, previous, result):
- """Undo sub filter."""
-
- ai = 0
- # Loops starts at index fu. Observe that the initial part
- # of the result is already filled in correctly with
- # scanline.
- for i in range(filter_unit, len(result)):
- x = scanline[i]
- a = result[ai]
- result[i] = (x + a) & 0xff
- ai += 1
- undo_filter_sub = staticmethod(undo_filter_sub)
-
- def undo_filter_up(filter_unit, scanline, previous, result):
- """Undo up filter."""
-
- for i in range(len(result)):
- x = scanline[i]
- b = previous[i]
- result[i] = (x + b) & 0xff
- undo_filter_up = staticmethod(undo_filter_up)
-
- def undo_filter_average(filter_unit, scanline, previous, result):
- """Undo up filter."""
-
- ai = -filter_unit
- for i in range(len(result)):
- x = scanline[i]
- if ai < 0:
- a = 0
- else:
- a = result[ai]
- b = previous[i]
- result[i] = (x + ((a + b) >> 1)) & 0xff
- ai += 1
- undo_filter_average = staticmethod(undo_filter_average)
-
- def undo_filter_paeth(filter_unit, scanline, previous, result):
- """Undo Paeth filter."""
-
- # Also used for ci.
- ai = -filter_unit
- for i in range(len(result)):
- x = scanline[i]
- if ai < 0:
- a = c = 0
- else:
- a = result[ai]
- c = previous[ai]
- b = previous[i]
- p = a + b - c
- pa = abs(p - a)
- pb = abs(p - b)
- pc = abs(p - c)
- if pa <= pb and pa <= pc:
- pr = a
- elif pb <= pc:
- pr = b
- else:
- pr = c
- result[i] = (x + pr) & 0xff
- ai += 1
- undo_filter_paeth = staticmethod(undo_filter_paeth)
-
- def convert_la_to_rgba(row, result):
- for i in range(3):
- result[i::4] = row[0::2]
- result[3::4] = row[1::2]
- convert_la_to_rgba = staticmethod(convert_la_to_rgba)
-
- def convert_l_to_rgba(row, result):
- """Convert a grayscale image to RGBA. This method assumes
- the alpha channel in result is already correctly
- initialized.
- """
- for i in range(3):
- result[i::4] = row
- convert_l_to_rgba = staticmethod(convert_l_to_rgba)
-
- def convert_rgb_to_rgba(row, result):
- """Convert an RGB image to RGBA. This method assumes the
- alpha channel in result is already correctly initialized.
- """
- for i in range(3):
- result[i::4] = row[i::3]
- convert_rgb_to_rgba = staticmethod(convert_rgb_to_rgba)
-
-
-# === Command Line Support ===
-
-def read_pam_header(infile):
- """
- Read (the rest of a) PAM header. `infile` should be positioned
- immediately after the initial 'P7' line (at the beginning of the
- second line). Returns are as for `read_pnm_header`.
- """
-
- # Unlike PBM, PGM, and PPM, we can read the header a line at a time.
- header = dict()
- while True:
- l = infile.readline().strip()
- if l == strtobytes('ENDHDR'):
- break
- if not l:
- raise EOFError('PAM ended prematurely')
- if l[0] == strtobytes('#'):
- continue
- l = l.split(None, 1)
- if l[0] not in header:
- header[l[0]] = l[1]
- else:
- header[l[0]] += strtobytes(' ') + l[1]
-
- required = ['WIDTH', 'HEIGHT', 'DEPTH', 'MAXVAL']
- required = [strtobytes(x) for x in required]
- WIDTH,HEIGHT,DEPTH,MAXVAL = required
- present = [x for x in required if x in header]
- if len(present) != len(required):
- raise Error('PAM file must specify WIDTH, HEIGHT, DEPTH, and MAXVAL')
- width = int(header[WIDTH])
- height = int(header[HEIGHT])
- depth = int(header[DEPTH])
- maxval = int(header[MAXVAL])
- if (width <= 0 or
- height <= 0 or
- depth <= 0 or
- maxval <= 0):
- raise Error(
- 'WIDTH, HEIGHT, DEPTH, MAXVAL must all be positive integers')
- return 'P7', width, height, depth, maxval
-
-def read_pnm_header(infile, supported=('P5','P6')):
- """
- Read a PNM header, returning (format,width,height,depth,maxval).
- `width` and `height` are in pixels. `depth` is the number of
- channels in the image; for PBM and PGM it is synthesized as 1, for
- PPM as 3; for PAM images it is read from the header. `maxval` is
- synthesized (as 1) for PBM images.
- """
-
- # Generally, see http://netpbm.sourceforge.net/doc/ppm.html
- # and http://netpbm.sourceforge.net/doc/pam.html
-
- supported = [strtobytes(x) for x in supported]
-
- # Technically 'P7' must be followed by a newline, so by using
- # rstrip() we are being liberal in what we accept. I think this
- # is acceptable.
- type = infile.read(3).rstrip()
- if type not in supported:
- raise NotImplementedError('file format %s not supported' % type)
- if type == strtobytes('P7'):
- # PAM header parsing is completely different.
- return read_pam_header(infile)
- # Expected number of tokens in header (3 for P4, 4 for P6)
- expected = 4
- pbm = ('P1', 'P4')
- if type in pbm:
- expected = 3
- header = [type]
-
- # We have to read the rest of the header byte by byte because the
- # final whitespace character (immediately following the MAXVAL in
- # the case of P6) may not be a newline. Of course all PNM files in
- # the wild use a newline at this point, so it's tempting to use
- # readline; but it would be wrong.
- def getc():
- c = infile.read(1)
- if not c:
- raise Error('premature EOF reading PNM header')
- return c
-
- c = getc()
- while True:
- # Skip whitespace that precedes a token.
- while c.isspace():
- c = getc()
- # Skip comments.
- while c == '#':
- while c not in '\n\r':
- c = getc()
- if not c.isdigit():
- raise Error('unexpected character %s found in header' % c)
- # According to the specification it is legal to have comments
- # that appear in the middle of a token.
- # This is bonkers; I've never seen it; and it's a bit awkward to
- # code good lexers in Python (no goto). So we break on such
- # cases.
- token = strtobytes('')
- while c.isdigit():
- token += c
- c = getc()
- # Slight hack. All "tokens" are decimal integers, so convert
- # them here.
- header.append(int(token))
- if len(header) == expected:
- break
- # Skip comments (again)
- while c == '#':
- while c not in '\n\r':
- c = getc()
- if not c.isspace():
- raise Error('expected header to end with whitespace, not %s' % c)
-
- if type in pbm:
- # synthesize a MAXVAL
- header.append(1)
- depth = (1,3)[type == strtobytes('P6')]
- return header[0], header[1], header[2], depth, header[3]
-
-def write_pnm(file, width, height, pixels, meta):
- """Write a Netpbm PNM/PAM file.
- """
-
- bitdepth = meta['bitdepth']
- maxval = 2**bitdepth - 1
- # Rudely, the number of image planes can be used to determine
- # whether we are L (PGM), LA (PAM), RGB (PPM), or RGBA (PAM).
- planes = meta['planes']
- # Can be an assert as long as we assume that pixels and meta came
- # from a PNG file.
- assert planes in (1,2,3,4)
- if planes in (1,3):
- if 1 == planes:
- # PGM
- # Could generate PBM if maxval is 1, but we don't (for one
- # thing, we'd have to convert the data, not just blat it
- # out).
- fmt = 'P5'
- else:
- # PPM
- fmt = 'P6'
- header = '%s %d %d %d\n' % (fmt, width, height, maxval)
- if planes in (2,4):
- # PAM
- # See http://netpbm.sourceforge.net/doc/pam.html
- if 2 == planes:
- tupltype = 'GRAYSCALE_ALPHA'
- else:
- tupltype = 'RGB_ALPHA'
- header = ('P7\nWIDTH %d\nHEIGHT %d\nDEPTH %d\nMAXVAL %d\n'
- 'TUPLTYPE %s\nENDHDR\n' %
- (width, height, planes, maxval, tupltype))
- file.write(header.encode('ascii'))
- # Values per row
- vpr = planes * width
- # struct format
- fmt = '>%d' % vpr
- if maxval > 0xff:
- fmt = fmt + 'H'
- else:
- fmt = fmt + 'B'
- for row in pixels:
- file.write(struct.pack(fmt, *row))
- file.flush()
-
-def color_triple(color):
- """
- Convert a command line colour value to a RGB triple of integers.
- FIXME: Somewhere we need support for greyscale backgrounds etc.
- """
- if color.startswith('#') and len(color) == 4:
- return (int(color[1], 16),
- int(color[2], 16),
- int(color[3], 16))
- if color.startswith('#') and len(color) == 7:
- return (int(color[1:3], 16),
- int(color[3:5], 16),
- int(color[5:7], 16))
- elif color.startswith('#') and len(color) == 13:
- return (int(color[1:5], 16),
- int(color[5:9], 16),
- int(color[9:13], 16))
-
-def _add_common_options(parser):
- """Call *parser.add_option* for each of the options that are
- common between this PNG--PNM conversion tool and the gen
- tool.
- """
- parser.add_option("-i", "--interlace",
- default=False, action="store_true",
- help="create an interlaced PNG file (Adam7)")
- parser.add_option("-t", "--transparent",
- action="store", type="string", metavar="#RRGGBB",
- help="mark the specified colour as transparent")
- parser.add_option("-b", "--background",
- action="store", type="string", metavar="#RRGGBB",
- help="save the specified background colour")
- parser.add_option("-g", "--gamma",
- action="store", type="float", metavar="value",
- help="save the specified gamma value")
- parser.add_option("-c", "--compression",
- action="store", type="int", metavar="level",
- help="zlib compression level (0-9)")
- return parser
-
-def _main(argv):
- """
- Run the PNG encoder with options from the command line.
- """
-
- # Parse command line arguments
- from optparse import OptionParser
- version = '%prog ' + __version__
- parser = OptionParser(version=version)
- parser.set_usage("%prog [options] [imagefile]")
- parser.add_option('-r', '--read-png', default=False,
- action='store_true',
- help='Read PNG, write PNM')
- parser.add_option("-a", "--alpha",
- action="store", type="string", metavar="pgmfile",
- help="alpha channel transparency (RGBA)")
- _add_common_options(parser)
-
- (options, args) = parser.parse_args(args=argv[1:])
-
- # Convert options
- if options.transparent is not None:
- options.transparent = color_triple(options.transparent)
- if options.background is not None:
- options.background = color_triple(options.background)
-
- # Prepare input and output files
- if len(args) == 0:
- infilename = '-'
- infile = sys.stdin
- elif len(args) == 1:
- infilename = args[0]
- infile = open(infilename, 'rb')
- else:
- parser.error("more than one input file")
- outfile = sys.stdout
- if sys.platform == "win32":
- import msvcrt, os
- msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
-
- if options.read_png:
- # Encode PNG to PPM
- png = Reader(file=infile)
- width,height,pixels,meta = png.asDirect()
- write_pnm(outfile, width, height, pixels, meta)
- else:
- # Encode PNM to PNG
- format, width, height, depth, maxval = \
- read_pnm_header(infile, ('P5','P6','P7'))
- # When it comes to the variety of input formats, we do something
- # rather rude. Observe that L, LA, RGB, RGBA are the 4 colour
- # types supported by PNG and that they correspond to 1, 2, 3, 4
- # channels respectively. So we use the number of channels in
- # the source image to determine which one we have. We do not
- # care about TUPLTYPE.
- greyscale = depth <= 2
- pamalpha = depth in (2,4)
- supported = map(lambda x: 2**x-1, range(1,17))
- try:
- mi = supported.index(maxval)
- except ValueError:
- raise NotImplementedError(
- 'your maxval (%s) not in supported list %s' %
- (maxval, str(supported)))
- bitdepth = mi+1
- writer = Writer(width, height,
- greyscale=greyscale,
- bitdepth=bitdepth,
- interlace=options.interlace,
- transparent=options.transparent,
- background=options.background,
- alpha=bool(pamalpha or options.alpha),
- gamma=options.gamma,
- compression=options.compression)
- if options.alpha:
- pgmfile = open(options.alpha, 'rb')
- format, awidth, aheight, adepth, amaxval = \
- read_pnm_header(pgmfile, 'P5')
- if amaxval != '255':
- raise NotImplementedError(
- 'maxval %s not supported for alpha channel' % amaxval)
- if (awidth, aheight) != (width, height):
- raise ValueError("alpha channel image size mismatch"
- " (%s has %sx%s but %s has %sx%s)"
- % (infilename, width, height,
- options.alpha, awidth, aheight))
- writer.convert_ppm_and_pgm(infile, pgmfile, outfile)
- else:
- writer.convert_pnm(infile, outfile)
-
-
-if __name__ == '__main__':
- try:
- _main(sys.argv)
- except Error, e:
- print >>sys.stderr, e
diff --git a/src/build/png2bdc.py b/src/build/png2bdc.py
deleted file mode 100644
index 58a5983ce97..00000000000
--- a/src/build/png2bdc.py
+++ /dev/null
@@ -1,364 +0,0 @@
-#!/usr/bin/env python
-##
-## license:BSD-3-Clause
-## copyright-holders:Aaron Giles, Andrew Gardner
-## ****************************************************************************
-##
-## png2bdc.c
-##
-## Super-simple PNG to BDC file generator
-##
-## ****************************************************************************
-##
-## Format of PNG data:
-##
-## Multiple rows of characters. A black pixel means "on". All other colors
-## mean "off". Each row looks like this:
-##
-## * 8888 *** *
-## * 4444 * * **
-## * 2222 * * *
-## * 1111 * * *
-## * * * *
-## ** *** ***
-## *
-## *
-##
-## ****** ****
-##
-## The column of pixels on the left-hand side (column 0) indicates the
-## character cell height. This column must be present on each row and
-## the height must be consistent for each row.
-##
-## Protruding one pixel into column 1 is the baseline indicator. There
-## should only be one row with a pixel in column 1 for each line, and
-## that pixel row index should be consistent for each row.
-##
-## In columns 2-5 are a 4-hex-digit starting character index number. This
-## is encoded as binary value. Each column is 4 pixels tall and represents
-## one binary digit. The character index number is the unicode character
-## number of the first character encoded in this row; subsequent
-## characters in the row are at increasing character indices.
-##
-## Starting in column 6 and beyond are the actual character bitmaps.
-## Below them, in the second row after the last row of the character,
-## is a solid line that indicates the width of the character, and also
-## where the character bitmap begins and ends.
-##
-## ***************************************************************************
-
-##
-## Python note:
-## This is a near-literal translation of the original C++ code. As such there
-## are some very non-pythonic things done throughout. The conversion was done
-## this way so as to insure compatibility as much as possible given the small
-## number of test cases.
-##
-
-import os
-import png
-import sys
-
-
-########################################
-## Helper classes
-########################################
-class RenderFontChar:
- """
- Contains information about a single character in a font.
- """
-
- def __init__(self):
- """
- """
- self.width = 0 # width from this character to the next
- self.xOffs = 0 # X offset from baseline to top,left of bitmap
- self.yOffs = 0 # Y offset from baseline to top,left of bitmap
- self.bmWidth = 0 # width of bitmap
- self.bmHeight = 0 # height of bitmap
- self.bitmap = None # pointer to the bitmap containing the raw data
-
-
-class RenderFont:
- """
- Contains information about a font
- """
-
- def __init__(self):
- self.height = 0 # height of the font, from ascent to descent
- self.yOffs = 0 # y offset from baseline to descent
- self.chars = list() # array of characters
- for i in range(0, 65536):
- self.chars.append(RenderFontChar())
-
-
-
-########################################
-## Helper functions
-########################################
-def pixelIsSet(value):
- return (value & 0xffffff) == 0
-
-
-def renderFontSaveCached(font, filename, hash32):
- """
- """
- fp = open(filename, "wb")
- if not fp:
- return 1
-
- # Write the header
- numChars = 0
- for c in font.chars:
- if c.width > 0:
- numChars += 1
-
- CACHED_CHAR_SIZE = 12
- CACHED_HEADER_SIZE = 16
-
- try:
- fp.write('f')
- fp.write('o')
- fp.write('n')
- fp.write('t')
- fp.write(chr(hash32 >> 24 & 0xff))
- fp.write(chr(hash32 >> 16 & 0xff))
- fp.write(chr(hash32 >> 8 & 0xff))
- fp.write(chr(hash32 >> 0 & 0xff))
- fp.write(chr(font.height >> 8 & 0xff))
- fp.write(chr(font.height >> 0 & 0xff))
- fp.write(chr(font.yOffs >> 8 & 0xff))
- fp.write(chr(font.yOffs >> 0 & 0xff))
- fp.write(chr(numChars >> 24 & 0xff))
- fp.write(chr(numChars >> 16 & 0xff))
- fp.write(chr(numChars >> 8 & 0xff))
- fp.write(chr(numChars >> 0 & 0xff))
-
- # Write a blank table at first (?)
- charTable = [0]*(numChars * CACHED_CHAR_SIZE)
- for i in range(numChars * CACHED_CHAR_SIZE):
- fp.write(chr(charTable[i]))
-
- # Loop over all characters
- tableIndex = 0
-
- for i in range(len(font.chars)):
- c = font.chars[i]
- if c.width == 0:
- continue
-
- if c.bitmap:
- dBuffer = list()
- accum = 0
- accbit = 7
-
- # Bit-encode the character data
- for y in range(0, c.bmHeight):
- src = None
- desty = y + font.height + font.yOffs - c.yOffs - c.bmHeight
- if desty >= 0 and desty < font.height:
- src = c.bitmap[desty]
- for x in range(0, c.bmWidth):
- if src is not None and src[x] != 0:
- accum |= 1 << accbit
- accbit -= 1
- if accbit+1 == 0:
- dBuffer.append(accum)
- accum = 0
- accbit = 7
-
- # Flush any extra
- if accbit != 7:
- dBuffer.append(accum)
-
- # Write the data
- for j in range(len(dBuffer)):
- fp.write(chr(dBuffer[j]))
-
- destIndex = tableIndex * CACHED_CHAR_SIZE
- charTable[destIndex + 0] = i >> 8 & 0xff
- charTable[destIndex + 1] = i >> 0 & 0xff
- charTable[destIndex + 2] = c.width >> 8 & 0xff
- charTable[destIndex + 3] = c.width >> 0 & 0xff
- charTable[destIndex + 4] = c.xOffs >> 8 & 0xff
- charTable[destIndex + 5] = c.xOffs >> 0 & 0xff
- charTable[destIndex + 6] = c.yOffs >> 8 & 0xff
- charTable[destIndex + 7] = c.yOffs >> 0 & 0xff
- charTable[destIndex + 8] = c.bmWidth >> 8 & 0xff
- charTable[destIndex + 9] = c.bmWidth >> 0 & 0xff
- charTable[destIndex + 10] = c.bmHeight >> 8 & 0xff
- charTable[destIndex + 11] = c.bmHeight >> 0 & 0xff
- tableIndex += 1
-
- # Seek back to the beginning and rewrite the table
- fp.seek(CACHED_HEADER_SIZE, 0)
- for i in range(numChars * CACHED_CHAR_SIZE):
- fp.write(chr(charTable[i]))
-
- fp.close()
- return 0
-
- except:
- return 1
-
-
-def bitmapToChars(pngObject, font):
- """
- Convert a bitmap to characters in the given font
- """
- # Just cache the bitmap into a list of lists since random access is paramount
- bitmap = list()
- width = pngObject.asRGBA8()[0]
- height = pngObject.asRGBA8()[1]
- rowGenerator = pngObject.asRGBA8()[2]
- for row in rowGenerator:
- cRow = list()
- irpd = iter(row)
- for r,g,b,a in zip(irpd, irpd, irpd, irpd):
- cRow.append(a << 24 | r << 16 | g << 8 | b)
- bitmap.append(cRow)
-
- rowStart = 0
- while rowStart < height:
- # Find the top of the row
- for i in range(rowStart, height):
- if pixelIsSet(bitmap[rowStart][0]):
- break
- rowStart += 1
- if rowStart >= height:
- break
-
- # Find the bottom of the row
- rowEnd = rowStart + 1
- for i in range(rowEnd, height):
- if not pixelIsSet(bitmap[rowEnd][0]):
- rowEnd -= 1
- break
- rowEnd += 1
-
- # Find the baseline
- baseline = rowStart
- for i in range(rowStart, rowEnd+1):
- if pixelIsSet(bitmap[baseline][1]):
- break
- baseline += 1
- if baseline > rowEnd:
- sys.stderr.write("No baseline found between rows %d-%d\n" % (rowStart, rowEnd))
- break
-
- # Set or confirm the height
- if font.height == 0:
- font.height = rowEnd - rowStart + 1
- font.yOffs = baseline - rowEnd
- else:
- if font.height != (rowEnd - rowStart + 1):
- sys.stderr.write("Inconsistent font height at rows %d-%d\n" % (rowStart, rowEnd))
- break
- if font.yOffs != (baseline - rowEnd):
- sys.stderr.write("Inconsistent baseline at rows %d-%d\n" % (rowStart, rowEnd))
- break
-
- # decode the starting character
- chStart = 0
- for x in range(0, 4):
- for y in range(0, 4):
- chStart = (chStart << 1) | pixelIsSet(bitmap[rowStart+y][2+x])
-
- # Print debug info
- # print("Row %d-%d, baseline %d, character start %X" % (rowStart, rowEnd, baseline, chStart))
-
- # scan the column to find characters
- colStart = 0
- while colStart < width:
- ch = RenderFontChar()
-
- # Find the start of the character
- for i in range(colStart, width):
- if pixelIsSet(bitmap[rowEnd+2][colStart]):
- break
- colStart += 1
- if colStart >= width:
- break
-
- # Find the end of the character
- colEnd = colStart + 1
- for i in range(colEnd, width):
- if not pixelIsSet(bitmap[rowEnd+2][colEnd]):
- colEnd -= 1
- break
- colEnd += 1
-
- # Skip char which code is already registered
- if ch.width <= 0:
- # Print debug info
- # print " Character %X - width = %d" % (chStart, colEnd - colStart + 1)
-
- # Plot the character
- ch.bitmap = list()
- for y in range(rowStart, rowEnd+1):
- ch.bitmap.append(list())
- for x in range(colStart, colEnd+1):
- if pixelIsSet(bitmap[y][x]):
- ch.bitmap[-1].append(0xffffffff)
- else:
- ch.bitmap[-1].append(0x00000000)
-
- # Set the character parameters
- ch.width = colEnd - colStart + 1
- ch.xOffs = 0
- ch.yOffs = font.yOffs
- ch.bmWidth = len(ch.bitmap[0])
- ch.bmHeight = len(ch.bitmap)
-
- # Insert the character into the list
- font.chars[chStart] = ch
-
- # Next character
- chStart += 1
- colStart = colEnd + 1
-
- # Next row
- rowStart = rowEnd + 1
-
- # Return non-zero if we errored
- return rowStart < height
-
-
-
-########################################
-## Main
-########################################
-def main():
- if len(sys.argv) < 3:
- sys.stderr.write("Usage:\n%s <input.png> [<input2.png> [...]] <output.bdc>\n" % sys.argv[0])
- return 1
- bdcName = sys.argv[-1]
-
- font = RenderFont()
- for i in range(1, len(sys.argv)-1):
- filename = sys.argv[i]
- if not os.path.exists(filename):
- sys.stderr.write("Error attempting to open PNG file.\n")
- return 1
-
- pngObject = png.Reader(filename)
- try:
- pngObject.validate_signature()
- except:
- sys.stderr.write("Error reading PNG file.\n")
- return 1
-
- error = bitmapToChars(pngObject, font)
- if error:
- return 1
-
- error = renderFontSaveCached(font, bdcName, 0)
- return error
-
-
-
-########################################
-## Program entry point
-########################################
-if __name__ == "__main__":
- sys.exit(main())
diff --git a/src/build/verinfo.py b/src/build/verinfo.py
deleted file mode 100644
index a73d8ad2689..00000000000
--- a/src/build/verinfo.py
+++ /dev/null
@@ -1,170 +0,0 @@
-#!/usr/bin/python
-##
-## license:BSD-3-Clause
-## copyright-holders:Aaron Giles, Andrew Gardner
-
-from __future__ import with_statement
-
-import re
-import sys
-
-
-def parse_args():
- def usage():
- sys.stderr.write('Usage: verinfo.py [-b mame|mess|ume|ldplayer] [-r|-p] [-o <outfile>] <srcfile>\n')
- sys.exit(1)
-
- flags = True
- target = 'mame'
- format = 'rc'
- input = None
- output = None
- i = 1
- while i < len(sys.argv):
- if flags and (sys.argv[i] == '-r'):
- format = 'rc'
- elif flags and (sys.argv[i] == '-p'):
- format = 'plist'
- elif flags and (sys.argv[i] == '-b'):
- i += 1
- if (i >= len(sys.argv)):
- usage()
- else:
- target = sys.argv[i]
- elif flags and (sys.argv[i] == '-o'):
- i += 1
- if (i >= len(sys.argv)) or (output is not None):
- usage()
- else:
- output = sys.argv[i]
- elif flags and (sys.argv[i] == '--'):
- flags = False
- elif flags and sys.argv[i].startswith('-'):
- usage()
- elif input is not None:
- usage()
- else:
- input = sys.argv[i]
- i += 1
- if input is None:
- usage()
- return target, format, input, output
-
-
-def extract_version(input):
- pattern = re.compile('\s+BARE_BUILD_VERSION\s+"(([^."]+)\.([^."]+))"')
- for line in input.readlines():
- match = pattern.search(line)
- if match:
- return match.group(1), match.group(2), match.group(3)
- return None, None, None
-
-
-build, outfmt, srcfile, dstfile = parse_args()
-
-try:
- fp = open(srcfile, 'rU')
-except IOError:
- sys.stderr.write("Unable to open source file '%s'\n" % srcfile)
- sys.exit(1)
-
-version_string, version_major, version_minor = extract_version(fp)
-version_build = "0"
-version_subbuild = "0"
-if not version_string:
- sys.stderr.write("Unable to extract version from source file '%s'\n" % srcfile)
- sys.exit(1)
-fp.close()
-
-if dstfile is not None:
- try:
- fp = open(dstfile, 'w')
- except IOError:
- sys.stderr.write("Unable to open output file '%s'\n" % dstfile)
- sys.exit(1)
-else:
- fp = sys.stdout
-
-if build == "mess":
- # MESS
- author = "MESS Team"
- comments = "Multi Emulation Super System"
- company_name = "MESS Team"
- file_description = "Multi Emulation Super System"
- internal_name = "MESS"
- original_filename = "MESS"
- product_name = "MESS"
- bundle_identifier = "org.mamedev.mess"
-else:
- # MAME
- author = "Nicola Salmoria and the MAME Team"
- comments = "Multiple Arcade Machine Emulator"
- company_name = "MAME Team"
- file_description = "Multiple Arcade Machine Emulator"
- internal_name = "MAME" if build == "mame" else build
- original_filename = "MAME" if build == "mame" else build
- product_name = "MAME" if build == "mame" else build
- bundle_identifier = "org.mamedev." + build
-
-legal_copyright = "Copyright Nicola Salmoria and the MAME team"
-
-if outfmt == 'rc':
- fp.write('VS_VERSION_INFO VERSIONINFO\n')
- fp.write('\tFILEVERSION %s,%s,%s,%s\n' % (version_major, version_minor, version_build, version_subbuild))
- fp.write('\tPRODUCTVERSION %s,%s,%s,%s\n' % (version_major, version_minor, version_build, version_subbuild))
- fp.write('\tFILEFLAGSMASK 0x3fL\n')
- if version_build == 0:
- fp.write('\tFILEFLAGS 0x0L\n')
- else:
- fp.write('\tFILEFLAGS VS_FF_PRERELEASE\n')
- fp.write('\tFILEOS VOS_NT_WINDOWS32\n')
- fp.write('\tFILETYPE VFT_APP\n')
- fp.write('\tFILESUBTYPE VFT2_UNKNOWN\n')
- fp.write('BEGIN\n')
- fp.write('\tBLOCK "StringFileInfo"\n')
- fp.write('\tBEGIN\n')
- fp.write('#ifdef UNICODE\n')
- fp.write('\t\tBLOCK "040904b0"\n')
- fp.write('#else\n')
- fp.write('\t\tBLOCK "040904E4"\n')
- fp.write('#endif\n')
- fp.write('\t\tBEGIN\n')
- fp.write('\t\t\tVALUE "Author", "%s\\0"\n' % author)
- fp.write('\t\t\tVALUE "Comments", "%s\\0"\n' % comments)
- fp.write('\t\t\tVALUE "CompanyName", "%s\\0"\n' % company_name)
- fp.write('\t\t\tVALUE "FileDescription", "%s\\0"\n' % file_description)
- fp.write('\t\t\tVALUE "FileVersion", "%s, %s, %s, %s\\0"\n' % (version_major, version_minor, version_build, version_subbuild))
- fp.write('\t\t\tVALUE "InternalName", "%s\\0"\n' % internal_name)
- fp.write('\t\t\tVALUE "LegalCopyright", "%s\\0"\n' % legal_copyright)
- fp.write('\t\t\tVALUE "OriginalFilename", "%s\\0"\n' % original_filename)
- fp.write('\t\t\tVALUE "ProductName", "%s\\0"\n' % product_name)
- fp.write('\t\t\tVALUE "ProductVersion", "%s\\0"\n' % version_string)
- fp.write('\t\tEND\n')
- fp.write('\tEND\n')
- fp.write('\tBLOCK "VarFileInfo"\n')
- fp.write('\tBEGIN\n')
- fp.write('#ifdef UNICODE\n')
- fp.write('\t\tVALUE "Translation", 0x409, 1200\n')
- fp.write('#else\n')
- fp.write('\t\tVALUE "Translation", 0x409, 1252\n')
- fp.write('#endif\n')
- fp.write('\tEND\n')
- fp.write('END\n')
-elif outfmt == 'plist':
- fp.write('<?xml version="1.0" encoding="UTF-8"?>\n')
- fp.write('<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">\n')
- fp.write('<plist version="1.0">\n')
- fp.write('<dict>\n')
- fp.write('\t<key>CFBundleDisplayName</key>\n')
- fp.write('\t<string>%s</string>\n' % product_name)
- fp.write('\t<key>CFBundleIdentifier</key>\n')
- fp.write('\t<string>%s</string>\n' % bundle_identifier)
- fp.write('\t<key>CFBundleInfoDictionaryVersion</key>\n')
- fp.write('\t<string>6.0</string>\n')
- fp.write('\t<key>CFBundleName</key>\n')
- fp.write('\t<string>%s</string>\n' % product_name)
- fp.write('\t<key>CFBundleShortVersionString</key>\n')
- fp.write('\t<string>%s.%s.%s</string>\n' % (version_major, version_minor, version_build))
- fp.write('</dict>\n')
- fp.write('</plist>\n')
-fp.flush()
diff --git a/src/emu/bus/a1bus/a1bus.c b/src/devices/bus/a1bus/a1bus.c
index 7012d11a81b..7012d11a81b 100644
--- a/src/emu/bus/a1bus/a1bus.c
+++ b/src/devices/bus/a1bus/a1bus.c
diff --git a/src/emu/bus/a1bus/a1bus.h b/src/devices/bus/a1bus/a1bus.h
index ecdb440f948..ecdb440f948 100644
--- a/src/emu/bus/a1bus/a1bus.h
+++ b/src/devices/bus/a1bus/a1bus.h
diff --git a/src/emu/bus/a1bus/a1cassette.c b/src/devices/bus/a1bus/a1cassette.c
index daa79b15ce5..daa79b15ce5 100644
--- a/src/emu/bus/a1bus/a1cassette.c
+++ b/src/devices/bus/a1bus/a1cassette.c
diff --git a/src/emu/bus/a1bus/a1cassette.h b/src/devices/bus/a1bus/a1cassette.h
index e8d656c1c3a..e8d656c1c3a 100644
--- a/src/emu/bus/a1bus/a1cassette.h
+++ b/src/devices/bus/a1bus/a1cassette.h
diff --git a/src/emu/bus/a1bus/a1cffa.c b/src/devices/bus/a1bus/a1cffa.c
index f67470bb5db..f67470bb5db 100644
--- a/src/emu/bus/a1bus/a1cffa.c
+++ b/src/devices/bus/a1bus/a1cffa.c
diff --git a/src/emu/bus/a1bus/a1cffa.h b/src/devices/bus/a1bus/a1cffa.h
index a1dc4258cbc..a1dc4258cbc 100644
--- a/src/emu/bus/a1bus/a1cffa.h
+++ b/src/devices/bus/a1bus/a1cffa.h
diff --git a/src/emu/bus/a2bus/a2alfam2.c b/src/devices/bus/a2bus/a2alfam2.c
index 3a35c8ab253..3a35c8ab253 100644
--- a/src/emu/bus/a2bus/a2alfam2.c
+++ b/src/devices/bus/a2bus/a2alfam2.c
diff --git a/src/emu/bus/a2bus/a2alfam2.h b/src/devices/bus/a2bus/a2alfam2.h
index ab2ee9e38a4..ab2ee9e38a4 100644
--- a/src/emu/bus/a2bus/a2alfam2.h
+++ b/src/devices/bus/a2bus/a2alfam2.h
diff --git a/src/emu/bus/a2bus/a2applicard.c b/src/devices/bus/a2bus/a2applicard.c
index 6698ea4f68c..6698ea4f68c 100644
--- a/src/emu/bus/a2bus/a2applicard.c
+++ b/src/devices/bus/a2bus/a2applicard.c
diff --git a/src/emu/bus/a2bus/a2applicard.h b/src/devices/bus/a2bus/a2applicard.h
index b015d84fe6a..b015d84fe6a 100644
--- a/src/emu/bus/a2bus/a2applicard.h
+++ b/src/devices/bus/a2bus/a2applicard.h
diff --git a/src/emu/bus/a2bus/a2arcadebd.c b/src/devices/bus/a2bus/a2arcadebd.c
index dcad400f8b1..dcad400f8b1 100644
--- a/src/emu/bus/a2bus/a2arcadebd.c
+++ b/src/devices/bus/a2bus/a2arcadebd.c
diff --git a/src/emu/bus/a2bus/a2arcadebd.h b/src/devices/bus/a2bus/a2arcadebd.h
index ae39c51eac6..ae39c51eac6 100644
--- a/src/emu/bus/a2bus/a2arcadebd.h
+++ b/src/devices/bus/a2bus/a2arcadebd.h
diff --git a/src/emu/bus/a2bus/a2bus.c b/src/devices/bus/a2bus/a2bus.c
index cd2eab4eea7..cd2eab4eea7 100644
--- a/src/emu/bus/a2bus/a2bus.c
+++ b/src/devices/bus/a2bus/a2bus.c
diff --git a/src/emu/bus/a2bus/a2bus.h b/src/devices/bus/a2bus/a2bus.h
index 90ab602607d..90ab602607d 100644
--- a/src/emu/bus/a2bus/a2bus.h
+++ b/src/devices/bus/a2bus/a2bus.h
diff --git a/src/emu/bus/a2bus/a2cffa.c b/src/devices/bus/a2bus/a2cffa.c
index 6bde1195ac7..6bde1195ac7 100644
--- a/src/emu/bus/a2bus/a2cffa.c
+++ b/src/devices/bus/a2bus/a2cffa.c
diff --git a/src/emu/bus/a2bus/a2cffa.h b/src/devices/bus/a2bus/a2cffa.h
index a719861efa9..a719861efa9 100644
--- a/src/emu/bus/a2bus/a2cffa.h
+++ b/src/devices/bus/a2bus/a2cffa.h
diff --git a/src/emu/bus/a2bus/a2corvus.c b/src/devices/bus/a2bus/a2corvus.c
index d3de7fdfee0..d3de7fdfee0 100644
--- a/src/emu/bus/a2bus/a2corvus.c
+++ b/src/devices/bus/a2bus/a2corvus.c
diff --git a/src/emu/bus/a2bus/a2corvus.h b/src/devices/bus/a2bus/a2corvus.h
index 4c9ade900ab..4c9ade900ab 100644
--- a/src/emu/bus/a2bus/a2corvus.h
+++ b/src/devices/bus/a2bus/a2corvus.h
diff --git a/src/emu/bus/a2bus/a2diskii.c b/src/devices/bus/a2bus/a2diskii.c
index ad8a860a69f..ad8a860a69f 100644
--- a/src/emu/bus/a2bus/a2diskii.c
+++ b/src/devices/bus/a2bus/a2diskii.c
diff --git a/src/emu/bus/a2bus/a2diskii.h b/src/devices/bus/a2bus/a2diskii.h
index 15e47316fe7..15e47316fe7 100644
--- a/src/emu/bus/a2bus/a2diskii.h
+++ b/src/devices/bus/a2bus/a2diskii.h
diff --git a/src/emu/bus/a2bus/a2diskiing.c b/src/devices/bus/a2bus/a2diskiing.c
index de0f84c26db..de0f84c26db 100644
--- a/src/emu/bus/a2bus/a2diskiing.c
+++ b/src/devices/bus/a2bus/a2diskiing.c
diff --git a/src/emu/bus/a2bus/a2diskiing.h b/src/devices/bus/a2bus/a2diskiing.h
index 462731449bb..462731449bb 100644
--- a/src/emu/bus/a2bus/a2diskiing.h
+++ b/src/devices/bus/a2bus/a2diskiing.h
diff --git a/src/emu/bus/a2bus/a2dx1.c b/src/devices/bus/a2bus/a2dx1.c
index e3b4fcc3fc5..e3b4fcc3fc5 100644
--- a/src/emu/bus/a2bus/a2dx1.c
+++ b/src/devices/bus/a2bus/a2dx1.c
diff --git a/src/emu/bus/a2bus/a2dx1.h b/src/devices/bus/a2bus/a2dx1.h
index 99b9d98193a..99b9d98193a 100644
--- a/src/emu/bus/a2bus/a2dx1.h
+++ b/src/devices/bus/a2bus/a2dx1.h
diff --git a/src/emu/bus/a2bus/a2eauxslot.c b/src/devices/bus/a2bus/a2eauxslot.c
index 3f6d99ead9c..3f6d99ead9c 100644
--- a/src/emu/bus/a2bus/a2eauxslot.c
+++ b/src/devices/bus/a2bus/a2eauxslot.c
diff --git a/src/emu/bus/a2bus/a2eauxslot.h b/src/devices/bus/a2bus/a2eauxslot.h
index 47babc64bab..47babc64bab 100644
--- a/src/emu/bus/a2bus/a2eauxslot.h
+++ b/src/devices/bus/a2bus/a2eauxslot.h
diff --git a/src/emu/bus/a2bus/a2echoii.c b/src/devices/bus/a2bus/a2echoii.c
index e6be96b5d85..e6be96b5d85 100644
--- a/src/emu/bus/a2bus/a2echoii.c
+++ b/src/devices/bus/a2bus/a2echoii.c
diff --git a/src/emu/bus/a2bus/a2echoii.h b/src/devices/bus/a2bus/a2echoii.h
index 9413ce3a900..9413ce3a900 100644
--- a/src/emu/bus/a2bus/a2echoii.h
+++ b/src/devices/bus/a2bus/a2echoii.h
diff --git a/src/emu/bus/a2bus/a2eext80col.c b/src/devices/bus/a2bus/a2eext80col.c
index c3e9af48cac..c3e9af48cac 100644
--- a/src/emu/bus/a2bus/a2eext80col.c
+++ b/src/devices/bus/a2bus/a2eext80col.c
diff --git a/src/emu/bus/a2bus/a2eext80col.h b/src/devices/bus/a2bus/a2eext80col.h
index ba14f5f0ad3..ba14f5f0ad3 100644
--- a/src/emu/bus/a2bus/a2eext80col.h
+++ b/src/devices/bus/a2bus/a2eext80col.h
diff --git a/src/emu/bus/a2bus/a2eramworks3.c b/src/devices/bus/a2bus/a2eramworks3.c
index 17b7b2ceb0e..17b7b2ceb0e 100644
--- a/src/emu/bus/a2bus/a2eramworks3.c
+++ b/src/devices/bus/a2bus/a2eramworks3.c
diff --git a/src/emu/bus/a2bus/a2eramworks3.h b/src/devices/bus/a2bus/a2eramworks3.h
index 93b120bb59d..93b120bb59d 100644
--- a/src/emu/bus/a2bus/a2eramworks3.h
+++ b/src/devices/bus/a2bus/a2eramworks3.h
diff --git a/src/emu/bus/a2bus/a2estd80col.c b/src/devices/bus/a2bus/a2estd80col.c
index 706f32d6a55..706f32d6a55 100644
--- a/src/emu/bus/a2bus/a2estd80col.c
+++ b/src/devices/bus/a2bus/a2estd80col.c
diff --git a/src/emu/bus/a2bus/a2estd80col.h b/src/devices/bus/a2bus/a2estd80col.h
index bcab4bab704..bcab4bab704 100644
--- a/src/emu/bus/a2bus/a2estd80col.h
+++ b/src/devices/bus/a2bus/a2estd80col.h
diff --git a/src/emu/bus/a2bus/a2hsscsi.c b/src/devices/bus/a2bus/a2hsscsi.c
index a292eba7410..a292eba7410 100644
--- a/src/emu/bus/a2bus/a2hsscsi.c
+++ b/src/devices/bus/a2bus/a2hsscsi.c
diff --git a/src/emu/bus/a2bus/a2hsscsi.h b/src/devices/bus/a2bus/a2hsscsi.h
index 2deada2e051..2deada2e051 100644
--- a/src/emu/bus/a2bus/a2hsscsi.h
+++ b/src/devices/bus/a2bus/a2hsscsi.h
diff --git a/src/emu/bus/a2bus/a2lang.c b/src/devices/bus/a2bus/a2lang.c
index 9a0b21dca36..9a0b21dca36 100644
--- a/src/emu/bus/a2bus/a2lang.c
+++ b/src/devices/bus/a2bus/a2lang.c
diff --git a/src/emu/bus/a2bus/a2lang.h b/src/devices/bus/a2bus/a2lang.h
index b97ae92a5b1..b97ae92a5b1 100644
--- a/src/emu/bus/a2bus/a2lang.h
+++ b/src/devices/bus/a2bus/a2lang.h
diff --git a/src/emu/bus/a2bus/a2mcms.c b/src/devices/bus/a2bus/a2mcms.c
index e9bb29d1243..e9bb29d1243 100644
--- a/src/emu/bus/a2bus/a2mcms.c
+++ b/src/devices/bus/a2bus/a2mcms.c
diff --git a/src/emu/bus/a2bus/a2mcms.h b/src/devices/bus/a2bus/a2mcms.h
index 283d13be62c..283d13be62c 100644
--- a/src/emu/bus/a2bus/a2mcms.h
+++ b/src/devices/bus/a2bus/a2mcms.h
diff --git a/src/emu/bus/a2bus/a2memexp.c b/src/devices/bus/a2bus/a2memexp.c
index 210ba76a0d2..210ba76a0d2 100644
--- a/src/emu/bus/a2bus/a2memexp.c
+++ b/src/devices/bus/a2bus/a2memexp.c
diff --git a/src/emu/bus/a2bus/a2memexp.h b/src/devices/bus/a2bus/a2memexp.h
index e7167569c67..e7167569c67 100644
--- a/src/emu/bus/a2bus/a2memexp.h
+++ b/src/devices/bus/a2bus/a2memexp.h
diff --git a/src/emu/bus/a2bus/a2midi.c b/src/devices/bus/a2bus/a2midi.c
index 92dbff70520..92dbff70520 100644
--- a/src/emu/bus/a2bus/a2midi.c
+++ b/src/devices/bus/a2bus/a2midi.c
diff --git a/src/emu/bus/a2bus/a2midi.h b/src/devices/bus/a2bus/a2midi.h
index f7023eba570..f7023eba570 100644
--- a/src/emu/bus/a2bus/a2midi.h
+++ b/src/devices/bus/a2bus/a2midi.h
diff --git a/src/emu/bus/a2bus/a2mockingboard.c b/src/devices/bus/a2bus/a2mockingboard.c
index 9dd792f6e45..9dd792f6e45 100644
--- a/src/emu/bus/a2bus/a2mockingboard.c
+++ b/src/devices/bus/a2bus/a2mockingboard.c
diff --git a/src/emu/bus/a2bus/a2mockingboard.h b/src/devices/bus/a2bus/a2mockingboard.h
index eb297bc9605..eb297bc9605 100644
--- a/src/emu/bus/a2bus/a2mockingboard.h
+++ b/src/devices/bus/a2bus/a2mockingboard.h
diff --git a/src/emu/bus/a2bus/a2pic.c b/src/devices/bus/a2bus/a2pic.c
index daede92b119..daede92b119 100644
--- a/src/emu/bus/a2bus/a2pic.c
+++ b/src/devices/bus/a2bus/a2pic.c
diff --git a/src/emu/bus/a2bus/a2pic.h b/src/devices/bus/a2bus/a2pic.h
index 172ec603502..172ec603502 100644
--- a/src/emu/bus/a2bus/a2pic.h
+++ b/src/devices/bus/a2bus/a2pic.h
diff --git a/src/emu/bus/a2bus/a2sam.c b/src/devices/bus/a2bus/a2sam.c
index 7cdabc64b74..7cdabc64b74 100644
--- a/src/emu/bus/a2bus/a2sam.c
+++ b/src/devices/bus/a2bus/a2sam.c
diff --git a/src/emu/bus/a2bus/a2sam.h b/src/devices/bus/a2bus/a2sam.h
index 3c2076921ef..3c2076921ef 100644
--- a/src/emu/bus/a2bus/a2sam.h
+++ b/src/devices/bus/a2bus/a2sam.h
diff --git a/src/emu/bus/a2bus/a2scsi.c b/src/devices/bus/a2bus/a2scsi.c
index 5e9fc865718..5e9fc865718 100644
--- a/src/emu/bus/a2bus/a2scsi.c
+++ b/src/devices/bus/a2bus/a2scsi.c
diff --git a/src/emu/bus/a2bus/a2scsi.h b/src/devices/bus/a2bus/a2scsi.h
index 660a6d4c7b0..660a6d4c7b0 100644
--- a/src/emu/bus/a2bus/a2scsi.h
+++ b/src/devices/bus/a2bus/a2scsi.h
diff --git a/src/emu/bus/a2bus/a2softcard.c b/src/devices/bus/a2bus/a2softcard.c
index e7fe5cdff95..e7fe5cdff95 100644
--- a/src/emu/bus/a2bus/a2softcard.c
+++ b/src/devices/bus/a2bus/a2softcard.c
diff --git a/src/emu/bus/a2bus/a2softcard.h b/src/devices/bus/a2bus/a2softcard.h
index 5c1064479e2..5c1064479e2 100644
--- a/src/emu/bus/a2bus/a2softcard.h
+++ b/src/devices/bus/a2bus/a2softcard.h
diff --git a/src/emu/bus/a2bus/a2ssc.c b/src/devices/bus/a2bus/a2ssc.c
index 992ae8fa6c0..992ae8fa6c0 100644
--- a/src/emu/bus/a2bus/a2ssc.c
+++ b/src/devices/bus/a2bus/a2ssc.c
diff --git a/src/emu/bus/a2bus/a2ssc.h b/src/devices/bus/a2bus/a2ssc.h
index 8a19b0f49d2..8a19b0f49d2 100644
--- a/src/emu/bus/a2bus/a2ssc.h
+++ b/src/devices/bus/a2bus/a2ssc.h
diff --git a/src/emu/bus/a2bus/a2swyft.c b/src/devices/bus/a2bus/a2swyft.c
index 38be337e8ba..38be337e8ba 100644
--- a/src/emu/bus/a2bus/a2swyft.c
+++ b/src/devices/bus/a2bus/a2swyft.c
diff --git a/src/emu/bus/a2bus/a2swyft.h b/src/devices/bus/a2bus/a2swyft.h
index a7903f29de7..a7903f29de7 100644
--- a/src/emu/bus/a2bus/a2swyft.h
+++ b/src/devices/bus/a2bus/a2swyft.h
diff --git a/src/emu/bus/a2bus/a2themill.c b/src/devices/bus/a2bus/a2themill.c
index 4ea020ae434..4ea020ae434 100644
--- a/src/emu/bus/a2bus/a2themill.c
+++ b/src/devices/bus/a2bus/a2themill.c
diff --git a/src/emu/bus/a2bus/a2themill.h b/src/devices/bus/a2bus/a2themill.h
index 72ea1b47953..72ea1b47953 100644
--- a/src/emu/bus/a2bus/a2themill.h
+++ b/src/devices/bus/a2bus/a2themill.h
diff --git a/src/emu/bus/a2bus/a2thunderclock.c b/src/devices/bus/a2bus/a2thunderclock.c
index d16feb82448..d16feb82448 100644
--- a/src/emu/bus/a2bus/a2thunderclock.c
+++ b/src/devices/bus/a2bus/a2thunderclock.c
diff --git a/src/emu/bus/a2bus/a2thunderclock.h b/src/devices/bus/a2bus/a2thunderclock.h
index 23b9e66981c..23b9e66981c 100644
--- a/src/emu/bus/a2bus/a2thunderclock.h
+++ b/src/devices/bus/a2bus/a2thunderclock.h
diff --git a/src/emu/bus/a2bus/a2ultraterm.c b/src/devices/bus/a2bus/a2ultraterm.c
index 62969c36dee..62969c36dee 100644
--- a/src/emu/bus/a2bus/a2ultraterm.c
+++ b/src/devices/bus/a2bus/a2ultraterm.c
diff --git a/src/emu/bus/a2bus/a2ultraterm.h b/src/devices/bus/a2bus/a2ultraterm.h
index a9f9745f2cc..a9f9745f2cc 100644
--- a/src/emu/bus/a2bus/a2ultraterm.h
+++ b/src/devices/bus/a2bus/a2ultraterm.h
diff --git a/src/emu/bus/a2bus/a2videoterm.c b/src/devices/bus/a2bus/a2videoterm.c
index d29c00d2006..d29c00d2006 100644
--- a/src/emu/bus/a2bus/a2videoterm.c
+++ b/src/devices/bus/a2bus/a2videoterm.c
diff --git a/src/emu/bus/a2bus/a2videoterm.h b/src/devices/bus/a2bus/a2videoterm.h
index 3452430e4dc..3452430e4dc 100644
--- a/src/emu/bus/a2bus/a2videoterm.h
+++ b/src/devices/bus/a2bus/a2videoterm.h
diff --git a/src/emu/bus/a2bus/a2vulcan.c b/src/devices/bus/a2bus/a2vulcan.c
index ff155f25acd..ff155f25acd 100644
--- a/src/emu/bus/a2bus/a2vulcan.c
+++ b/src/devices/bus/a2bus/a2vulcan.c
diff --git a/src/emu/bus/a2bus/a2vulcan.h b/src/devices/bus/a2bus/a2vulcan.h
index bcd9f6fa3b6..bcd9f6fa3b6 100644
--- a/src/emu/bus/a2bus/a2vulcan.h
+++ b/src/devices/bus/a2bus/a2vulcan.h
diff --git a/src/emu/bus/a2bus/a2zipdrive.c b/src/devices/bus/a2bus/a2zipdrive.c
index da958262e34..da958262e34 100644
--- a/src/emu/bus/a2bus/a2zipdrive.c
+++ b/src/devices/bus/a2bus/a2zipdrive.c
diff --git a/src/emu/bus/a2bus/a2zipdrive.h b/src/devices/bus/a2bus/a2zipdrive.h
index 195ad987f25..195ad987f25 100644
--- a/src/emu/bus/a2bus/a2zipdrive.h
+++ b/src/devices/bus/a2bus/a2zipdrive.h
diff --git a/src/emu/bus/a2bus/corvfdc01.c b/src/devices/bus/a2bus/corvfdc01.c
index fc1adf2e269..fc1adf2e269 100644
--- a/src/emu/bus/a2bus/corvfdc01.c
+++ b/src/devices/bus/a2bus/corvfdc01.c
diff --git a/src/emu/bus/a2bus/corvfdc01.h b/src/devices/bus/a2bus/corvfdc01.h
index 2299f77cbd7..2299f77cbd7 100644
--- a/src/emu/bus/a2bus/corvfdc01.h
+++ b/src/devices/bus/a2bus/corvfdc01.h
diff --git a/src/emu/bus/a2bus/corvfdc02.c b/src/devices/bus/a2bus/corvfdc02.c
index eaad8725d1f..eaad8725d1f 100644
--- a/src/emu/bus/a2bus/corvfdc02.c
+++ b/src/devices/bus/a2bus/corvfdc02.c
diff --git a/src/emu/bus/a2bus/corvfdc02.h b/src/devices/bus/a2bus/corvfdc02.h
index 982c0486160..982c0486160 100644
--- a/src/emu/bus/a2bus/corvfdc02.h
+++ b/src/devices/bus/a2bus/corvfdc02.h
diff --git a/src/emu/bus/a2bus/ezcgi.c b/src/devices/bus/a2bus/ezcgi.c
index c943f3cd979..e85db228ad2 100644
--- a/src/emu/bus/a2bus/ezcgi.c
+++ b/src/devices/bus/a2bus/ezcgi.c
@@ -45,7 +45,7 @@ MACHINE_CONFIG_END
#define MSX2_VISIBLE_YBORDER_PIXELS 14 * 2
MACHINE_CONFIG_FRAGMENT( ezcgi9938 )
- MCFG_V9938_ADD(TMS_TAG, SCREEN_TAG, 0x30000) // 192K of VRAM
+ MCFG_V9938_ADD(TMS_TAG, SCREEN_TAG, 0x30000, XTAL_21_4772MHz) // 192K of VRAM / typical 9938 clock, not verified
MCFG_V99X8_INTERRUPT_CALLBACK(WRITELINE(a2bus_ezcgi_9938_device, tms_irq_w))
MCFG_SCREEN_ADD(SCREEN_TAG, RASTER)
@@ -59,7 +59,7 @@ MACHINE_CONFIG_FRAGMENT( ezcgi9938 )
MACHINE_CONFIG_END
MACHINE_CONFIG_FRAGMENT( ezcgi9958 )
- MCFG_V9958_ADD(TMS_TAG, SCREEN_TAG, 0x30000) // 192K of VRAM
+ MCFG_V9958_ADD(TMS_TAG, SCREEN_TAG, 0x30000, XTAL_21_4772MHz) // 192K of VRAM / typcial 9938/9958 clock, not verified
MCFG_V99X8_INTERRUPT_CALLBACK(WRITELINE(a2bus_ezcgi_9958_device, tms_irq_w))
MCFG_SCREEN_ADD(SCREEN_TAG, RASTER)
diff --git a/src/emu/bus/a2bus/ezcgi.h b/src/devices/bus/a2bus/ezcgi.h
index ef1e6e397de..ef1e6e397de 100644
--- a/src/emu/bus/a2bus/ezcgi.h
+++ b/src/devices/bus/a2bus/ezcgi.h
diff --git a/src/emu/bus/a2bus/laser128.c b/src/devices/bus/a2bus/laser128.c
index c64719ba7e5..c64719ba7e5 100644
--- a/src/emu/bus/a2bus/laser128.c
+++ b/src/devices/bus/a2bus/laser128.c
diff --git a/src/emu/bus/a2bus/laser128.h b/src/devices/bus/a2bus/laser128.h
index de754f3b368..de754f3b368 100644
--- a/src/emu/bus/a2bus/laser128.h
+++ b/src/devices/bus/a2bus/laser128.h
diff --git a/src/emu/bus/a2bus/mouse.c b/src/devices/bus/a2bus/mouse.c
index d044fbcdad2..d044fbcdad2 100644
--- a/src/emu/bus/a2bus/mouse.c
+++ b/src/devices/bus/a2bus/mouse.c
diff --git a/src/emu/bus/a2bus/mouse.h b/src/devices/bus/a2bus/mouse.h
index b6065897731..b6065897731 100644
--- a/src/emu/bus/a2bus/mouse.h
+++ b/src/devices/bus/a2bus/mouse.h
diff --git a/src/emu/bus/a2bus/ramcard128k.c b/src/devices/bus/a2bus/ramcard128k.c
index 3b05128e186..3b05128e186 100644
--- a/src/emu/bus/a2bus/ramcard128k.c
+++ b/src/devices/bus/a2bus/ramcard128k.c
diff --git a/src/emu/bus/a2bus/ramcard128k.h b/src/devices/bus/a2bus/ramcard128k.h
index 4d2eb0da497..4d2eb0da497 100644
--- a/src/emu/bus/a2bus/ramcard128k.h
+++ b/src/devices/bus/a2bus/ramcard128k.h
diff --git a/src/emu/bus/a2bus/ramcard16k.c b/src/devices/bus/a2bus/ramcard16k.c
index a25ba79423f..a25ba79423f 100644
--- a/src/emu/bus/a2bus/ramcard16k.c
+++ b/src/devices/bus/a2bus/ramcard16k.c
diff --git a/src/emu/bus/a2bus/ramcard16k.h b/src/devices/bus/a2bus/ramcard16k.h
index 1de1cdaa85c..1de1cdaa85c 100644
--- a/src/emu/bus/a2bus/ramcard16k.h
+++ b/src/devices/bus/a2bus/ramcard16k.h
diff --git a/src/emu/bus/a2bus/timemasterho.c b/src/devices/bus/a2bus/timemasterho.c
index 9b33d8fd511..9b33d8fd511 100644
--- a/src/emu/bus/a2bus/timemasterho.c
+++ b/src/devices/bus/a2bus/timemasterho.c
diff --git a/src/emu/bus/a2bus/timemasterho.h b/src/devices/bus/a2bus/timemasterho.h
index cf26d3cded8..cf26d3cded8 100644
--- a/src/emu/bus/a2bus/timemasterho.h
+++ b/src/devices/bus/a2bus/timemasterho.h
diff --git a/src/emu/bus/a7800/a78_carts.h b/src/devices/bus/a7800/a78_carts.h
index ebf66de8218..ebf66de8218 100644
--- a/src/emu/bus/a7800/a78_carts.h
+++ b/src/devices/bus/a7800/a78_carts.h
diff --git a/src/emu/bus/a7800/a78_slot.c b/src/devices/bus/a7800/a78_slot.c
index 6332492a6c2..6332492a6c2 100644
--- a/src/emu/bus/a7800/a78_slot.c
+++ b/src/devices/bus/a7800/a78_slot.c
diff --git a/src/emu/bus/a7800/a78_slot.h b/src/devices/bus/a7800/a78_slot.h
index ff41ae8a608..ff41ae8a608 100644
--- a/src/emu/bus/a7800/a78_slot.h
+++ b/src/devices/bus/a7800/a78_slot.h
diff --git a/src/emu/bus/a7800/cpuwiz.c b/src/devices/bus/a7800/cpuwiz.c
index 9185e49ac7c..9185e49ac7c 100644
--- a/src/emu/bus/a7800/cpuwiz.c
+++ b/src/devices/bus/a7800/cpuwiz.c
diff --git a/src/emu/bus/a7800/cpuwiz.h b/src/devices/bus/a7800/cpuwiz.h
index 75f980fbffd..75f980fbffd 100644
--- a/src/emu/bus/a7800/cpuwiz.h
+++ b/src/devices/bus/a7800/cpuwiz.h
diff --git a/src/emu/bus/a7800/hiscore.c b/src/devices/bus/a7800/hiscore.c
index cbdab10f02d..cbdab10f02d 100644
--- a/src/emu/bus/a7800/hiscore.c
+++ b/src/devices/bus/a7800/hiscore.c
diff --git a/src/emu/bus/a7800/hiscore.h b/src/devices/bus/a7800/hiscore.h
index 9677e72cdb0..9677e72cdb0 100644
--- a/src/emu/bus/a7800/hiscore.h
+++ b/src/devices/bus/a7800/hiscore.h
diff --git a/src/emu/bus/a7800/rom.c b/src/devices/bus/a7800/rom.c
index fa44813dba4..f642fcf611a 100644
--- a/src/emu/bus/a7800/rom.c
+++ b/src/devices/bus/a7800/rom.c
@@ -469,7 +469,7 @@ READ8_MEMBER(a78_rom_act_device::read_40xx)
WRITE8_MEMBER(a78_rom_act_device::write_40xx)
{
- if (offset >= 0xbf80 && offset <= 0xbf87)
+ if (offset >= 0xbf80 && offset <= 0xbf8f)
m_bank = offset & 7;
}
diff --git a/src/emu/bus/a7800/rom.h b/src/devices/bus/a7800/rom.h
index 0de17b2a952..0de17b2a952 100644
--- a/src/emu/bus/a7800/rom.h
+++ b/src/devices/bus/a7800/rom.h
diff --git a/src/emu/bus/a7800/xboard.c b/src/devices/bus/a7800/xboard.c
index 3c5eb3d0f24..3c5eb3d0f24 100644
--- a/src/emu/bus/a7800/xboard.c
+++ b/src/devices/bus/a7800/xboard.c
diff --git a/src/emu/bus/a7800/xboard.h b/src/devices/bus/a7800/xboard.h
index 44173e70390..44173e70390 100644
--- a/src/emu/bus/a7800/xboard.h
+++ b/src/devices/bus/a7800/xboard.h
diff --git a/src/emu/bus/a800/a800_carts.h b/src/devices/bus/a800/a800_carts.h
index 720b5e7f4f8..720b5e7f4f8 100644
--- a/src/emu/bus/a800/a800_carts.h
+++ b/src/devices/bus/a800/a800_carts.h
diff --git a/src/emu/bus/a800/a800_slot.c b/src/devices/bus/a800/a800_slot.c
index c378d869811..c378d869811 100644
--- a/src/emu/bus/a800/a800_slot.c
+++ b/src/devices/bus/a800/a800_slot.c
diff --git a/src/emu/bus/a800/a800_slot.h b/src/devices/bus/a800/a800_slot.h
index 8359b9c7178..8359b9c7178 100644
--- a/src/emu/bus/a800/a800_slot.h
+++ b/src/devices/bus/a800/a800_slot.h
diff --git a/src/emu/bus/a8sio/a8sio.c b/src/devices/bus/a800/a8sio.c
index fd64d077b50..fd64d077b50 100644
--- a/src/emu/bus/a8sio/a8sio.c
+++ b/src/devices/bus/a800/a8sio.c
diff --git a/src/emu/bus/a8sio/a8sio.h b/src/devices/bus/a800/a8sio.h
index 29e548946d4..29e548946d4 100644
--- a/src/emu/bus/a8sio/a8sio.h
+++ b/src/devices/bus/a800/a8sio.h
diff --git a/src/emu/bus/a8sio/cassette.c b/src/devices/bus/a800/cassette.c
index 45d33173bac..45d33173bac 100644
--- a/src/emu/bus/a8sio/cassette.c
+++ b/src/devices/bus/a800/cassette.c
diff --git a/src/emu/bus/a8sio/cassette.h b/src/devices/bus/a800/cassette.h
index d9b59568864..d9b59568864 100644
--- a/src/emu/bus/a8sio/cassette.h
+++ b/src/devices/bus/a800/cassette.h
diff --git a/src/emu/bus/a800/oss.c b/src/devices/bus/a800/oss.c
index 8f7ae76735f..8f7ae76735f 100644
--- a/src/emu/bus/a800/oss.c
+++ b/src/devices/bus/a800/oss.c
diff --git a/src/emu/bus/a800/oss.h b/src/devices/bus/a800/oss.h
index f781c8f5182..f781c8f5182 100644
--- a/src/emu/bus/a800/oss.h
+++ b/src/devices/bus/a800/oss.h
diff --git a/src/emu/bus/a800/rom.c b/src/devices/bus/a800/rom.c
index f52a489bcf0..f52a489bcf0 100644
--- a/src/emu/bus/a800/rom.c
+++ b/src/devices/bus/a800/rom.c
diff --git a/src/emu/bus/a800/rom.h b/src/devices/bus/a800/rom.h
index a1e6cde0925..a1e6cde0925 100644
--- a/src/emu/bus/a800/rom.h
+++ b/src/devices/bus/a800/rom.h
diff --git a/src/emu/bus/a800/sparta.c b/src/devices/bus/a800/sparta.c
index 8e6a439d669..8e6a439d669 100644
--- a/src/emu/bus/a800/sparta.c
+++ b/src/devices/bus/a800/sparta.c
diff --git a/src/emu/bus/a800/sparta.h b/src/devices/bus/a800/sparta.h
index 6b6cf9eb932..6b6cf9eb932 100644
--- a/src/emu/bus/a800/sparta.h
+++ b/src/devices/bus/a800/sparta.h
diff --git a/src/emu/bus/abcbus/abc890.c b/src/devices/bus/abcbus/abc890.c
index ecfc1abf4d2..ecfc1abf4d2 100644
--- a/src/emu/bus/abcbus/abc890.c
+++ b/src/devices/bus/abcbus/abc890.c
diff --git a/src/emu/bus/abcbus/abc890.h b/src/devices/bus/abcbus/abc890.h
index 3c878bfa95c..3c878bfa95c 100644
--- a/src/emu/bus/abcbus/abc890.h
+++ b/src/devices/bus/abcbus/abc890.h
diff --git a/src/emu/bus/abcbus/abcbus.c b/src/devices/bus/abcbus/abcbus.c
index b5491e4e101..b5491e4e101 100644
--- a/src/emu/bus/abcbus/abcbus.c
+++ b/src/devices/bus/abcbus/abcbus.c
diff --git a/src/emu/bus/abcbus/abcbus.h b/src/devices/bus/abcbus/abcbus.h
index cdfd436495d..cdfd436495d 100644
--- a/src/emu/bus/abcbus/abcbus.h
+++ b/src/devices/bus/abcbus/abcbus.h
diff --git a/src/emu/bus/abcbus/fd2.c b/src/devices/bus/abcbus/fd2.c
index 7faeefb97c4..7faeefb97c4 100644
--- a/src/emu/bus/abcbus/fd2.c
+++ b/src/devices/bus/abcbus/fd2.c
diff --git a/src/emu/bus/abcbus/fd2.h b/src/devices/bus/abcbus/fd2.h
index ef183e92843..ef183e92843 100644
--- a/src/emu/bus/abcbus/fd2.h
+++ b/src/devices/bus/abcbus/fd2.h
diff --git a/src/emu/bus/abcbus/hdc.c b/src/devices/bus/abcbus/hdc.c
index 628fbcb2d7d..628fbcb2d7d 100644
--- a/src/emu/bus/abcbus/hdc.c
+++ b/src/devices/bus/abcbus/hdc.c
diff --git a/src/emu/bus/abcbus/hdc.h b/src/devices/bus/abcbus/hdc.h
index cebe7619174..cebe7619174 100644
--- a/src/emu/bus/abcbus/hdc.h
+++ b/src/devices/bus/abcbus/hdc.h
diff --git a/src/emu/bus/abcbus/lux10828.c b/src/devices/bus/abcbus/lux10828.c
index 705a9e8035b..705a9e8035b 100644
--- a/src/emu/bus/abcbus/lux10828.c
+++ b/src/devices/bus/abcbus/lux10828.c
diff --git a/src/emu/bus/abcbus/lux10828.h b/src/devices/bus/abcbus/lux10828.h
index 3ffa18e9122..3ffa18e9122 100644
--- a/src/emu/bus/abcbus/lux10828.h
+++ b/src/devices/bus/abcbus/lux10828.h
diff --git a/src/emu/bus/abcbus/lux21046.c b/src/devices/bus/abcbus/lux21046.c
index 67396d81139..67396d81139 100644
--- a/src/emu/bus/abcbus/lux21046.c
+++ b/src/devices/bus/abcbus/lux21046.c
diff --git a/src/emu/bus/abcbus/lux21046.h b/src/devices/bus/abcbus/lux21046.h
index f670b9d5768..f670b9d5768 100644
--- a/src/emu/bus/abcbus/lux21046.h
+++ b/src/devices/bus/abcbus/lux21046.h
diff --git a/src/emu/bus/abcbus/lux21056.c b/src/devices/bus/abcbus/lux21056.c
index 375a5927c47..375a5927c47 100644
--- a/src/emu/bus/abcbus/lux21056.c
+++ b/src/devices/bus/abcbus/lux21056.c
diff --git a/src/emu/bus/abcbus/lux21056.h b/src/devices/bus/abcbus/lux21056.h
index 56d550155bf..56d550155bf 100644
--- a/src/emu/bus/abcbus/lux21056.h
+++ b/src/devices/bus/abcbus/lux21056.h
diff --git a/src/emu/bus/abcbus/lux4105.c b/src/devices/bus/abcbus/lux4105.c
index 52e0446d86a..52e0446d86a 100644
--- a/src/emu/bus/abcbus/lux4105.c
+++ b/src/devices/bus/abcbus/lux4105.c
diff --git a/src/emu/bus/abcbus/lux4105.h b/src/devices/bus/abcbus/lux4105.h
index 9d1aae90b4b..9d1aae90b4b 100644
--- a/src/emu/bus/abcbus/lux4105.h
+++ b/src/devices/bus/abcbus/lux4105.h
diff --git a/src/emu/bus/abcbus/memcard.c b/src/devices/bus/abcbus/memcard.c
index c7fbd2f3f31..c7fbd2f3f31 100644
--- a/src/emu/bus/abcbus/memcard.c
+++ b/src/devices/bus/abcbus/memcard.c
diff --git a/src/emu/bus/abcbus/memcard.h b/src/devices/bus/abcbus/memcard.h
index a3308c47f6f..a3308c47f6f 100644
--- a/src/emu/bus/abcbus/memcard.h
+++ b/src/devices/bus/abcbus/memcard.h
diff --git a/src/emu/bus/abcbus/ram.c b/src/devices/bus/abcbus/ram.c
index a91e29bd9c7..a91e29bd9c7 100644
--- a/src/emu/bus/abcbus/ram.c
+++ b/src/devices/bus/abcbus/ram.c
diff --git a/src/emu/bus/abcbus/ram.h b/src/devices/bus/abcbus/ram.h
index f7fbd351927..f7fbd351927 100644
--- a/src/emu/bus/abcbus/ram.h
+++ b/src/devices/bus/abcbus/ram.h
diff --git a/src/emu/bus/abcbus/sio.c b/src/devices/bus/abcbus/sio.c
index fe4d93ac2e7..fe4d93ac2e7 100644
--- a/src/emu/bus/abcbus/sio.c
+++ b/src/devices/bus/abcbus/sio.c
diff --git a/src/emu/bus/abcbus/sio.h b/src/devices/bus/abcbus/sio.h
index 6ad8b90df0e..6ad8b90df0e 100644
--- a/src/emu/bus/abcbus/sio.h
+++ b/src/devices/bus/abcbus/sio.h
diff --git a/src/emu/bus/abcbus/slutprov.c b/src/devices/bus/abcbus/slutprov.c
index bd1184c15c5..bd1184c15c5 100644
--- a/src/emu/bus/abcbus/slutprov.c
+++ b/src/devices/bus/abcbus/slutprov.c
diff --git a/src/emu/bus/abcbus/slutprov.h b/src/devices/bus/abcbus/slutprov.h
index 99d0f8bcc3a..99d0f8bcc3a 100644
--- a/src/emu/bus/abcbus/slutprov.h
+++ b/src/devices/bus/abcbus/slutprov.h
diff --git a/src/emu/bus/abcbus/turbo.c b/src/devices/bus/abcbus/turbo.c
index 55ac6a7fa3d..55ac6a7fa3d 100644
--- a/src/emu/bus/abcbus/turbo.c
+++ b/src/devices/bus/abcbus/turbo.c
diff --git a/src/emu/bus/abcbus/turbo.h b/src/devices/bus/abcbus/turbo.h
index c2242eca29e..c2242eca29e 100644
--- a/src/emu/bus/abcbus/turbo.h
+++ b/src/devices/bus/abcbus/turbo.h
diff --git a/src/emu/bus/abcbus/uni800.c b/src/devices/bus/abcbus/uni800.c
index 9d22dc0a6cd..9d22dc0a6cd 100644
--- a/src/emu/bus/abcbus/uni800.c
+++ b/src/devices/bus/abcbus/uni800.c
diff --git a/src/emu/bus/abcbus/uni800.h b/src/devices/bus/abcbus/uni800.h
index 37ed2e0917b..37ed2e0917b 100644
--- a/src/emu/bus/abcbus/uni800.h
+++ b/src/devices/bus/abcbus/uni800.h
diff --git a/src/emu/bus/abckb/abc77.c b/src/devices/bus/abckb/abc77.c
index c308cd8cf74..c308cd8cf74 100644
--- a/src/emu/bus/abckb/abc77.c
+++ b/src/devices/bus/abckb/abc77.c
diff --git a/src/emu/bus/abckb/abc77.h b/src/devices/bus/abckb/abc77.h
index 5ead0a32f96..5ead0a32f96 100644
--- a/src/emu/bus/abckb/abc77.h
+++ b/src/devices/bus/abckb/abc77.h
diff --git a/src/emu/bus/abckb/abc800kb.c b/src/devices/bus/abckb/abc800kb.c
index dd3cbbc7f51..dd3cbbc7f51 100644
--- a/src/emu/bus/abckb/abc800kb.c
+++ b/src/devices/bus/abckb/abc800kb.c
diff --git a/src/emu/bus/abckb/abc800kb.h b/src/devices/bus/abckb/abc800kb.h
index 52719062314..52719062314 100644
--- a/src/emu/bus/abckb/abc800kb.h
+++ b/src/devices/bus/abckb/abc800kb.h
diff --git a/src/emu/bus/abckb/abc99.c b/src/devices/bus/abckb/abc99.c
index 63a3f0154f0..63a3f0154f0 100644
--- a/src/emu/bus/abckb/abc99.c
+++ b/src/devices/bus/abckb/abc99.c
diff --git a/src/emu/bus/abckb/abc99.h b/src/devices/bus/abckb/abc99.h
index 366d9fa23ce..366d9fa23ce 100644
--- a/src/emu/bus/abckb/abc99.h
+++ b/src/devices/bus/abckb/abc99.h
diff --git a/src/emu/bus/abckb/abckb.c b/src/devices/bus/abckb/abckb.c
index dc9edd10bed..dc9edd10bed 100644
--- a/src/emu/bus/abckb/abckb.c
+++ b/src/devices/bus/abckb/abckb.c
diff --git a/src/emu/bus/abckb/abckb.h b/src/devices/bus/abckb/abckb.h
index 9b396f26983..9b396f26983 100644
--- a/src/emu/bus/abckb/abckb.h
+++ b/src/devices/bus/abckb/abckb.h
diff --git a/src/emu/bus/adam/adamlink.c b/src/devices/bus/adam/adamlink.c
index 1ae12b1156f..1ae12b1156f 100644
--- a/src/emu/bus/adam/adamlink.c
+++ b/src/devices/bus/adam/adamlink.c
diff --git a/src/emu/bus/adam/adamlink.h b/src/devices/bus/adam/adamlink.h
index acf1d2fa31a..acf1d2fa31a 100644
--- a/src/emu/bus/adam/adamlink.h
+++ b/src/devices/bus/adam/adamlink.h
diff --git a/src/emu/bus/adam/exp.c b/src/devices/bus/adam/exp.c
index 110a1299188..110a1299188 100644
--- a/src/emu/bus/adam/exp.c
+++ b/src/devices/bus/adam/exp.c
diff --git a/src/emu/bus/adam/exp.h b/src/devices/bus/adam/exp.h
index 7719c3f8d11..7719c3f8d11 100644
--- a/src/emu/bus/adam/exp.h
+++ b/src/devices/bus/adam/exp.h
diff --git a/src/emu/bus/adam/ide.c b/src/devices/bus/adam/ide.c
index 7ea8a8b24a2..7ea8a8b24a2 100644
--- a/src/emu/bus/adam/ide.c
+++ b/src/devices/bus/adam/ide.c
diff --git a/src/emu/bus/adam/ide.h b/src/devices/bus/adam/ide.h
index 35e26681bcd..35e26681bcd 100644
--- a/src/emu/bus/adam/ide.h
+++ b/src/devices/bus/adam/ide.h
diff --git a/src/emu/bus/adam/ram.c b/src/devices/bus/adam/ram.c
index 6852de8959a..6852de8959a 100644
--- a/src/emu/bus/adam/ram.c
+++ b/src/devices/bus/adam/ram.c
diff --git a/src/emu/bus/adam/ram.h b/src/devices/bus/adam/ram.h
index d6c5e470ee5..d6c5e470ee5 100644
--- a/src/emu/bus/adam/ram.h
+++ b/src/devices/bus/adam/ram.h
diff --git a/src/emu/bus/adamnet/adamnet.c b/src/devices/bus/adamnet/adamnet.c
index 9407b7fbaf2..9407b7fbaf2 100644
--- a/src/emu/bus/adamnet/adamnet.c
+++ b/src/devices/bus/adamnet/adamnet.c
diff --git a/src/emu/bus/adamnet/adamnet.h b/src/devices/bus/adamnet/adamnet.h
index 7bbf9105556..7bbf9105556 100644
--- a/src/emu/bus/adamnet/adamnet.h
+++ b/src/devices/bus/adamnet/adamnet.h
diff --git a/src/emu/bus/adamnet/ddp.c b/src/devices/bus/adamnet/ddp.c
index cca1617dd43..cca1617dd43 100644
--- a/src/emu/bus/adamnet/ddp.c
+++ b/src/devices/bus/adamnet/ddp.c
diff --git a/src/emu/bus/adamnet/ddp.h b/src/devices/bus/adamnet/ddp.h
index 07c2bf0c0c1..07c2bf0c0c1 100644
--- a/src/emu/bus/adamnet/ddp.h
+++ b/src/devices/bus/adamnet/ddp.h
diff --git a/src/emu/bus/adamnet/fdc.c b/src/devices/bus/adamnet/fdc.c
index afe93d74a29..afe93d74a29 100644
--- a/src/emu/bus/adamnet/fdc.c
+++ b/src/devices/bus/adamnet/fdc.c
diff --git a/src/emu/bus/adamnet/fdc.h b/src/devices/bus/adamnet/fdc.h
index fb519e1a5ba..fb519e1a5ba 100644
--- a/src/emu/bus/adamnet/fdc.h
+++ b/src/devices/bus/adamnet/fdc.h
diff --git a/src/emu/bus/adamnet/kb.c b/src/devices/bus/adamnet/kb.c
index a9cc31b8edf..a9cc31b8edf 100644
--- a/src/emu/bus/adamnet/kb.c
+++ b/src/devices/bus/adamnet/kb.c
diff --git a/src/emu/bus/adamnet/kb.h b/src/devices/bus/adamnet/kb.h
index 58bf9f07bc5..58bf9f07bc5 100644
--- a/src/emu/bus/adamnet/kb.h
+++ b/src/devices/bus/adamnet/kb.h
diff --git a/src/emu/bus/adamnet/printer.c b/src/devices/bus/adamnet/printer.c
index 7de2db87b2e..7de2db87b2e 100644
--- a/src/emu/bus/adamnet/printer.c
+++ b/src/devices/bus/adamnet/printer.c
diff --git a/src/emu/bus/adamnet/printer.h b/src/devices/bus/adamnet/printer.h
index 0a2fae5fac5..0a2fae5fac5 100644
--- a/src/emu/bus/adamnet/printer.h
+++ b/src/devices/bus/adamnet/printer.h
diff --git a/src/emu/bus/adamnet/spi.c b/src/devices/bus/adamnet/spi.c
index 7cfff9adfeb..7cfff9adfeb 100644
--- a/src/emu/bus/adamnet/spi.c
+++ b/src/devices/bus/adamnet/spi.c
diff --git a/src/emu/bus/adamnet/spi.h b/src/devices/bus/adamnet/spi.h
index 19a1d5c9866..19a1d5c9866 100644
--- a/src/emu/bus/adamnet/spi.h
+++ b/src/devices/bus/adamnet/spi.h
diff --git a/src/emu/bus/amiga/zorro/a2052.c b/src/devices/bus/amiga/zorro/a2052.c
index dc2727d2117..dc2727d2117 100644
--- a/src/emu/bus/amiga/zorro/a2052.c
+++ b/src/devices/bus/amiga/zorro/a2052.c
diff --git a/src/emu/bus/amiga/zorro/a2052.h b/src/devices/bus/amiga/zorro/a2052.h
index 9a189ec58c2..9a189ec58c2 100644
--- a/src/emu/bus/amiga/zorro/a2052.h
+++ b/src/devices/bus/amiga/zorro/a2052.h
diff --git a/src/emu/bus/amiga/zorro/a2232.c b/src/devices/bus/amiga/zorro/a2232.c
index 89e87d3588a..89e87d3588a 100644
--- a/src/emu/bus/amiga/zorro/a2232.c
+++ b/src/devices/bus/amiga/zorro/a2232.c
diff --git a/src/emu/bus/amiga/zorro/a2232.h b/src/devices/bus/amiga/zorro/a2232.h
index c0a6bea2d8f..c0a6bea2d8f 100644
--- a/src/emu/bus/amiga/zorro/a2232.h
+++ b/src/devices/bus/amiga/zorro/a2232.h
diff --git a/src/emu/bus/amiga/zorro/a590.c b/src/devices/bus/amiga/zorro/a590.c
index 1d66ba99f6e..1d66ba99f6e 100644
--- a/src/emu/bus/amiga/zorro/a590.c
+++ b/src/devices/bus/amiga/zorro/a590.c
diff --git a/src/emu/bus/amiga/zorro/a590.h b/src/devices/bus/amiga/zorro/a590.h
index 4c929f28b01..4c929f28b01 100644
--- a/src/emu/bus/amiga/zorro/a590.h
+++ b/src/devices/bus/amiga/zorro/a590.h
diff --git a/src/emu/bus/amiga/zorro/action_replay.c b/src/devices/bus/amiga/zorro/action_replay.c
index a5356114c2e..a5356114c2e 100644
--- a/src/emu/bus/amiga/zorro/action_replay.c
+++ b/src/devices/bus/amiga/zorro/action_replay.c
diff --git a/src/emu/bus/amiga/zorro/action_replay.h b/src/devices/bus/amiga/zorro/action_replay.h
index 1e47a9b36f0..1e47a9b36f0 100644
--- a/src/emu/bus/amiga/zorro/action_replay.h
+++ b/src/devices/bus/amiga/zorro/action_replay.h
diff --git a/src/emu/bus/amiga/zorro/buddha.c b/src/devices/bus/amiga/zorro/buddha.c
index 761162269d3..761162269d3 100644
--- a/src/emu/bus/amiga/zorro/buddha.c
+++ b/src/devices/bus/amiga/zorro/buddha.c
diff --git a/src/emu/bus/amiga/zorro/buddha.h b/src/devices/bus/amiga/zorro/buddha.h
index d1a41dcf635..d1a41dcf635 100644
--- a/src/emu/bus/amiga/zorro/buddha.h
+++ b/src/devices/bus/amiga/zorro/buddha.h
diff --git a/src/emu/bus/amiga/zorro/cards.c b/src/devices/bus/amiga/zorro/cards.c
index 5fc67353d17..5fc67353d17 100644
--- a/src/emu/bus/amiga/zorro/cards.c
+++ b/src/devices/bus/amiga/zorro/cards.c
diff --git a/src/emu/bus/amiga/zorro/cards.h b/src/devices/bus/amiga/zorro/cards.h
index 919c2c3c899..919c2c3c899 100644
--- a/src/emu/bus/amiga/zorro/cards.h
+++ b/src/devices/bus/amiga/zorro/cards.h
diff --git a/src/emu/bus/amiga/zorro/zorro.c b/src/devices/bus/amiga/zorro/zorro.c
index aec7f5e54f8..aec7f5e54f8 100644
--- a/src/emu/bus/amiga/zorro/zorro.c
+++ b/src/devices/bus/amiga/zorro/zorro.c
diff --git a/src/emu/bus/amiga/zorro/zorro.h b/src/devices/bus/amiga/zorro/zorro.h
index 4b61b644136..4b61b644136 100644
--- a/src/emu/bus/amiga/zorro/zorro.h
+++ b/src/devices/bus/amiga/zorro/zorro.h
diff --git a/src/emu/bus/apf/rom.c b/src/devices/bus/apf/rom.c
index 9eb83e4f12c..9eb83e4f12c 100644
--- a/src/emu/bus/apf/rom.c
+++ b/src/devices/bus/apf/rom.c
diff --git a/src/emu/bus/apf/rom.h b/src/devices/bus/apf/rom.h
index 7c377a0cc77..7c377a0cc77 100644
--- a/src/emu/bus/apf/rom.h
+++ b/src/devices/bus/apf/rom.h
diff --git a/src/emu/bus/apf/slot.c b/src/devices/bus/apf/slot.c
index 832e0cead45..832e0cead45 100644
--- a/src/emu/bus/apf/slot.c
+++ b/src/devices/bus/apf/slot.c
diff --git a/src/emu/bus/apf/slot.h b/src/devices/bus/apf/slot.h
index 73853dd6bdd..73853dd6bdd 100644
--- a/src/emu/bus/apf/slot.h
+++ b/src/devices/bus/apf/slot.h
diff --git a/src/emu/bus/apricot/cards.c b/src/devices/bus/apricot/cards.c
index 9a97adffca6..9a97adffca6 100644
--- a/src/emu/bus/apricot/cards.c
+++ b/src/devices/bus/apricot/cards.c
diff --git a/src/emu/bus/apricot/cards.h b/src/devices/bus/apricot/cards.h
index 67766d51a8e..67766d51a8e 100644
--- a/src/emu/bus/apricot/cards.h
+++ b/src/devices/bus/apricot/cards.h
diff --git a/src/emu/bus/apricot/expansion.c b/src/devices/bus/apricot/expansion.c
index 7fe2b2a721c..7fe2b2a721c 100644
--- a/src/emu/bus/apricot/expansion.c
+++ b/src/devices/bus/apricot/expansion.c
diff --git a/src/emu/bus/apricot/expansion.h b/src/devices/bus/apricot/expansion.h
index 38687db4399..38687db4399 100644
--- a/src/emu/bus/apricot/expansion.h
+++ b/src/devices/bus/apricot/expansion.h
diff --git a/src/emu/bus/apricot/ram.c b/src/devices/bus/apricot/ram.c
index 2221ae37227..2221ae37227 100644
--- a/src/emu/bus/apricot/ram.c
+++ b/src/devices/bus/apricot/ram.c
diff --git a/src/emu/bus/apricot/ram.h b/src/devices/bus/apricot/ram.h
index 20ac01f2867..20ac01f2867 100644
--- a/src/emu/bus/apricot/ram.h
+++ b/src/devices/bus/apricot/ram.h
diff --git a/src/emu/bus/arcadia/rom.c b/src/devices/bus/arcadia/rom.c
index 5a6186aa8de..5a6186aa8de 100644
--- a/src/emu/bus/arcadia/rom.c
+++ b/src/devices/bus/arcadia/rom.c
diff --git a/src/emu/bus/arcadia/rom.h b/src/devices/bus/arcadia/rom.h
index f070ac3aecd..f070ac3aecd 100644
--- a/src/emu/bus/arcadia/rom.h
+++ b/src/devices/bus/arcadia/rom.h
diff --git a/src/emu/bus/arcadia/slot.c b/src/devices/bus/arcadia/slot.c
index b93e7fd211c..b93e7fd211c 100644
--- a/src/emu/bus/arcadia/slot.c
+++ b/src/devices/bus/arcadia/slot.c
diff --git a/src/emu/bus/arcadia/slot.h b/src/devices/bus/arcadia/slot.h
index f1f3ca97f07..f1f3ca97f07 100644
--- a/src/emu/bus/arcadia/slot.h
+++ b/src/devices/bus/arcadia/slot.h
diff --git a/src/emu/bus/astrocde/exp.c b/src/devices/bus/astrocde/exp.c
index 28017230f0d..28017230f0d 100644
--- a/src/emu/bus/astrocde/exp.c
+++ b/src/devices/bus/astrocde/exp.c
diff --git a/src/emu/bus/astrocde/exp.h b/src/devices/bus/astrocde/exp.h
index e691a5b946a..e691a5b946a 100644
--- a/src/emu/bus/astrocde/exp.h
+++ b/src/devices/bus/astrocde/exp.h
diff --git a/src/emu/bus/astrocde/ram.c b/src/devices/bus/astrocde/ram.c
index 95ebb6816aa..95ebb6816aa 100644
--- a/src/emu/bus/astrocde/ram.c
+++ b/src/devices/bus/astrocde/ram.c
diff --git a/src/emu/bus/astrocde/ram.h b/src/devices/bus/astrocde/ram.h
index 9df04bdad0e..9df04bdad0e 100644
--- a/src/emu/bus/astrocde/ram.h
+++ b/src/devices/bus/astrocde/ram.h
diff --git a/src/emu/bus/astrocde/rom.c b/src/devices/bus/astrocde/rom.c
index d8067daa062..d8067daa062 100644
--- a/src/emu/bus/astrocde/rom.c
+++ b/src/devices/bus/astrocde/rom.c
diff --git a/src/emu/bus/astrocde/rom.h b/src/devices/bus/astrocde/rom.h
index e0b5647742a..e0b5647742a 100644
--- a/src/emu/bus/astrocde/rom.h
+++ b/src/devices/bus/astrocde/rom.h
diff --git a/src/emu/bus/astrocde/slot.c b/src/devices/bus/astrocde/slot.c
index 5345d90b7fb..5345d90b7fb 100644
--- a/src/emu/bus/astrocde/slot.c
+++ b/src/devices/bus/astrocde/slot.c
diff --git a/src/emu/bus/astrocde/slot.h b/src/devices/bus/astrocde/slot.h
index 738c32a6faa..738c32a6faa 100644
--- a/src/emu/bus/astrocde/slot.h
+++ b/src/devices/bus/astrocde/slot.h
diff --git a/src/emu/bus/bml3/bml3bus.c b/src/devices/bus/bml3/bml3bus.c
index 5839ea00196..5839ea00196 100644
--- a/src/emu/bus/bml3/bml3bus.c
+++ b/src/devices/bus/bml3/bml3bus.c
diff --git a/src/emu/bus/bml3/bml3bus.h b/src/devices/bus/bml3/bml3bus.h
index 63da81fd1fc..63da81fd1fc 100644
--- a/src/emu/bus/bml3/bml3bus.h
+++ b/src/devices/bus/bml3/bml3bus.h
diff --git a/src/emu/bus/bml3/bml3kanji.c b/src/devices/bus/bml3/bml3kanji.c
index f07e95c8bba..f07e95c8bba 100644
--- a/src/emu/bus/bml3/bml3kanji.c
+++ b/src/devices/bus/bml3/bml3kanji.c
diff --git a/src/emu/bus/bml3/bml3kanji.h b/src/devices/bus/bml3/bml3kanji.h
index e05a4fd96d2..e05a4fd96d2 100644
--- a/src/emu/bus/bml3/bml3kanji.h
+++ b/src/devices/bus/bml3/bml3kanji.h
diff --git a/src/emu/bus/bml3/bml3mp1802.c b/src/devices/bus/bml3/bml3mp1802.c
index 64db414fa21..64db414fa21 100644
--- a/src/emu/bus/bml3/bml3mp1802.c
+++ b/src/devices/bus/bml3/bml3mp1802.c
diff --git a/src/emu/bus/bml3/bml3mp1802.h b/src/devices/bus/bml3/bml3mp1802.h
index 0c4088c0d4f..0c4088c0d4f 100644
--- a/src/emu/bus/bml3/bml3mp1802.h
+++ b/src/devices/bus/bml3/bml3mp1802.h
diff --git a/src/emu/bus/bml3/bml3mp1805.c b/src/devices/bus/bml3/bml3mp1805.c
index f87e0604476..f87e0604476 100644
--- a/src/emu/bus/bml3/bml3mp1805.c
+++ b/src/devices/bus/bml3/bml3mp1805.c
diff --git a/src/emu/bus/bml3/bml3mp1805.h b/src/devices/bus/bml3/bml3mp1805.h
index ca819b4c061..ca819b4c061 100644
--- a/src/emu/bus/bml3/bml3mp1805.h
+++ b/src/devices/bus/bml3/bml3mp1805.h
diff --git a/src/emu/bus/bw2/exp.c b/src/devices/bus/bw2/exp.c
index b094283a862..b094283a862 100644
--- a/src/emu/bus/bw2/exp.c
+++ b/src/devices/bus/bw2/exp.c
diff --git a/src/emu/bus/bw2/exp.h b/src/devices/bus/bw2/exp.h
index 4d87f1d3ea1..4d87f1d3ea1 100644
--- a/src/emu/bus/bw2/exp.h
+++ b/src/devices/bus/bw2/exp.h
diff --git a/src/emu/bus/bw2/ramcard.c b/src/devices/bus/bw2/ramcard.c
index 16f5da689cc..16f5da689cc 100644
--- a/src/emu/bus/bw2/ramcard.c
+++ b/src/devices/bus/bw2/ramcard.c
diff --git a/src/emu/bus/bw2/ramcard.h b/src/devices/bus/bw2/ramcard.h
index 1d346370567..1d346370567 100644
--- a/src/emu/bus/bw2/ramcard.h
+++ b/src/devices/bus/bw2/ramcard.h
diff --git a/src/emu/bus/c64/16kb.c b/src/devices/bus/c64/16kb.c
index ff2ce6e3932..ff2ce6e3932 100644
--- a/src/emu/bus/c64/16kb.c
+++ b/src/devices/bus/c64/16kb.c
diff --git a/src/emu/bus/c64/16kb.h b/src/devices/bus/c64/16kb.h
index 6ebec5dca7e..6ebec5dca7e 100644
--- a/src/emu/bus/c64/16kb.h
+++ b/src/devices/bus/c64/16kb.h
diff --git a/src/emu/bus/c64/4dxh.c b/src/devices/bus/c64/4dxh.c
index 2dd54543203..2dd54543203 100644
--- a/src/emu/bus/c64/4dxh.c
+++ b/src/devices/bus/c64/4dxh.c
diff --git a/src/emu/bus/c64/4dxh.h b/src/devices/bus/c64/4dxh.h
index 3e99406ab89..3e99406ab89 100644
--- a/src/emu/bus/c64/4dxh.h
+++ b/src/devices/bus/c64/4dxh.h
diff --git a/src/emu/bus/c64/4ksa.c b/src/devices/bus/c64/4ksa.c
index 749053fde32..749053fde32 100644
--- a/src/emu/bus/c64/4ksa.c
+++ b/src/devices/bus/c64/4ksa.c
diff --git a/src/emu/bus/c64/4ksa.h b/src/devices/bus/c64/4ksa.h
index 8177922fb1e..8177922fb1e 100644
--- a/src/emu/bus/c64/4ksa.h
+++ b/src/devices/bus/c64/4ksa.h
diff --git a/src/emu/bus/c64/4tba.c b/src/devices/bus/c64/4tba.c
index 56266f5d916..56266f5d916 100644
--- a/src/emu/bus/c64/4tba.c
+++ b/src/devices/bus/c64/4tba.c
diff --git a/src/emu/bus/c64/4tba.h b/src/devices/bus/c64/4tba.h
index 5b4329b5463..5b4329b5463 100644
--- a/src/emu/bus/c64/4tba.h
+++ b/src/devices/bus/c64/4tba.h
diff --git a/src/emu/bus/c64/bn1541.c b/src/devices/bus/c64/bn1541.c
index 41e37f17fdd..41e37f17fdd 100644
--- a/src/emu/bus/c64/bn1541.c
+++ b/src/devices/bus/c64/bn1541.c
diff --git a/src/emu/bus/c64/bn1541.h b/src/devices/bus/c64/bn1541.h
index 3ad7aee1c87..3ad7aee1c87 100644
--- a/src/emu/bus/c64/bn1541.h
+++ b/src/devices/bus/c64/bn1541.h
diff --git a/src/emu/bus/c64/c128_comal80.c b/src/devices/bus/c64/c128_comal80.c
index 25accd52fa0..25accd52fa0 100644
--- a/src/emu/bus/c64/c128_comal80.c
+++ b/src/devices/bus/c64/c128_comal80.c
diff --git a/src/emu/bus/c64/c128_comal80.h b/src/devices/bus/c64/c128_comal80.h
index de7cfc862de..de7cfc862de 100644
--- a/src/emu/bus/c64/c128_comal80.h
+++ b/src/devices/bus/c64/c128_comal80.h
diff --git a/src/devices/bus/c64/c128_partner.c b/src/devices/bus/c64/c128_partner.c
new file mode 100644
index 00000000000..00f5a8e2cb9
--- /dev/null
+++ b/src/devices/bus/c64/c128_partner.c
@@ -0,0 +1,250 @@
+// license:BSD-3-Clause
+// copyright-holders:Curt Coder
+/**********************************************************************
+
+ Timeworks PARTNER 128 cartridge emulation
+
+**********************************************************************/
+
+/*
+
+ PCB Layout
+ ----------
+
+ |---------------|
+ |LS74 SW * |
+ |LS09 LS273|
+ |LS139 RAM |
+ |LS133 |
+ | LS240 |
+ |LS33 ROM |
+ |LS09 |
+ |||||||||||||||
+
+ ROM - Toshiba TMM24128AP 16Kx8 EPROM (blank label)
+ RAM - Sony CXK5864PN-15L 8Kx8 SRAM
+ SW - push button switch
+ * - solder point for joystick port dongle
+
+*/
+
+#include "c128_partner.h"
+
+
+
+//**************************************************************************
+// DEVICE DEFINITIONS
+//**************************************************************************
+
+const device_type C128_PARTNER = &device_creator<partner128_t>;
+
+
+//-------------------------------------------------
+// INPUT_PORTS( c128_partner )
+//-------------------------------------------------
+
+WRITE_LINE_MEMBER( partner128_t::nmi_w )
+{
+ if (state)
+ {
+ m_ls74_q1 = 1;
+ }
+}
+
+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)
+INPUT_PORTS_END
+
+
+//-------------------------------------------------
+// input_ports - device-specific input ports
+//-------------------------------------------------
+
+ioport_constructor partner128_t::device_input_ports() const
+{
+ return INPUT_PORTS_NAME( c128_partner );
+}
+
+
+
+//**************************************************************************
+// LIVE DEVICE
+//**************************************************************************
+
+//-------------------------------------------------
+// partner128_t - constructor
+//-------------------------------------------------
+
+partner128_t::partner128_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
+ device_t(mconfig, C128_PARTNER, "PARTNER 128", tag, owner, clock, "c128_partner", __FILE__),
+ device_c64_expansion_card_interface(mconfig, *this),
+ //device_vcs_control_port_interface(mconfig, *this),
+ m_ram(*this, "ram"),
+ m_ram_a12_a7(0),
+ m_ls74_cd(0),
+ m_ls74_q1(0),
+ m_ls74_q2(0),
+ m_joyb2(0)
+{
+}
+
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void partner128_t::device_start()
+{
+ // allocate memory
+ m_ram.allocate(0x2000);
+
+ // simulate the 16.7ms pulse from CIA1 PB2 that would arrive thru the joystick port dongle
+ t_joyb2 = timer_alloc();
+ t_joyb2->adjust(attotime::from_msec(16), 0, attotime::from_msec(16));
+
+ // state saving
+ save_item(NAME(m_ram_a12_a7));
+ save_item(NAME(m_ls74_cd));
+ save_item(NAME(m_ls74_q1));
+ save_item(NAME(m_ls74_q2));
+ save_item(NAME(m_joyb2));
+}
+
+
+//-------------------------------------------------
+// device_reset - device-specific reset
+//-------------------------------------------------
+
+void partner128_t::device_reset()
+{
+ m_ram_a12_a7 = 0;
+
+ m_ls74_cd = 0;
+ m_ls74_q1 = 0;
+ m_ls74_q2 = 0;
+
+ nmi_w(CLEAR_LINE);
+}
+
+
+//-------------------------------------------------
+// device_timer -
+//-------------------------------------------------
+
+void partner128_t::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
+{
+ if (m_ls74_cd)
+ {
+ m_ls74_q2 = m_ls74_q1;
+
+ nmi_w(m_ls74_q2 ? ASSERT_LINE : CLEAR_LINE);
+ }
+}
+
+
+//-------------------------------------------------
+// c64_cd_r - cartridge data read
+//-------------------------------------------------
+
+UINT8 partner128_t::c64_cd_r(address_space &space, offs_t offset, UINT8 data, int sphi2, int ba, int roml, int romh, int io1, int io2)
+{
+ if (!roml)
+ {
+ data = m_roml[offset & 0x3fff];
+ }
+
+ if (!io1)
+ {
+ if (BIT(offset, 7))
+ {
+ data = m_roml[offset & 0x3fff];
+
+ if (m_ls74_cd)
+ {
+ m_ls74_q1 = 0;
+ }
+ }
+ else
+ {
+ data = m_ram[(m_ram_a12_a7 << 7) | (offset & 0x7f)];
+ }
+ }
+
+ if (m_ls74_q2 && ((offset & 0xfffa) == 0xfffa))
+ {
+ // override the 8502 NMI/IRQ vectors with 0xdede
+ data = 0xde;
+ }
+
+ return data;
+}
+
+
+//-------------------------------------------------
+// c64_cd_w - cartridge data write
+//-------------------------------------------------
+
+void partner128_t::c64_cd_w(address_space &space, offs_t offset, UINT8 data, int sphi2, int ba, int roml, int romh, int io1, int io2)
+{
+ if (!io1)
+ {
+ if (BIT(offset, 7))
+ {
+ /*
+
+ bit description
+
+ 0 RAM A7
+ 1 RAM A8
+ 2 RAM A9
+ 3 RAM A10
+ 4 RAM A11
+ 5 RAM A12
+ 6 LS74 1Cd,2Cd
+ 7 N/C
+
+ */
+
+ m_ram_a12_a7 = data & 0x3f;
+
+ m_ls74_cd = BIT(data, 6);
+
+ if (!m_ls74_cd)
+ {
+ m_ls74_q1 = 0;
+ m_ls74_q2 = 0;
+
+ nmi_w(CLEAR_LINE);
+ }
+ }
+ else
+ {
+ m_ram[(m_ram_a12_a7 << 7) | (offset & 0x7f)] = data;
+ }
+ }
+
+ if (sphi2 && ((offset & 0xfff0) == 0xd600))
+ {
+ m_ram[(m_ram_a12_a7 << 7) | (offset & 0x7f)] = data;
+ }
+}
+
+
+//-------------------------------------------------
+// vcs_joy_w - joystick write
+//-------------------------------------------------
+
+void partner128_t::vcs_joy_w(UINT8 data)
+{
+ int joyb2 = BIT(data, 2);
+
+ if (!m_joyb2 && joyb2 && m_ls74_cd)
+ {
+ m_ls74_q2 = m_ls74_q1;
+
+ nmi_w(m_ls74_q2 ? ASSERT_LINE : CLEAR_LINE);
+ }
+
+ m_joyb2 = joyb2;
+}
diff --git a/src/devices/bus/c64/c128_partner.h b/src/devices/bus/c64/c128_partner.h
new file mode 100644
index 00000000000..2210cdc7388
--- /dev/null
+++ b/src/devices/bus/c64/c128_partner.h
@@ -0,0 +1,68 @@
+// license:BSD-3-Clause
+// copyright-holders:Curt Coder
+/**********************************************************************
+
+ Timeworks PARTNER 128 cartridge emulation
+
+**********************************************************************/
+
+#pragma once
+
+#ifndef __C128_PARTNER__
+#define __C128_PARTNER__
+
+#include "emu.h"
+#include "bus/c64/exp.h"
+#include "bus/vcs_ctrl/ctrl.h"
+
+
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+// ======================> partner128_t
+
+class partner128_t : 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 clock);
+
+ // optional information overrides
+ virtual ioport_constructor device_input_ports() const;
+
+ DECLARE_WRITE_LINE_MEMBER( nmi_w );
+
+protected:
+ // device-level overrides
+ virtual void device_start();
+ virtual void device_reset();
+ virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
+
+ // device_c64_expansion_card_interface overrides
+ virtual UINT8 c64_cd_r(address_space &space, offs_t offset, UINT8 data, int sphi2, int ba, int roml, int romh, int io1, int io2);
+ virtual void c64_cd_w(address_space &space, offs_t offset, UINT8 data, int sphi2, int ba, int roml, int romh, int io1, int io2);
+
+ // device_vcs_control_port_interface overrides
+ virtual void vcs_joy_w(UINT8 data);
+
+private:
+ optional_shared_ptr<UINT8> m_ram;
+
+ emu_timer *t_joyb2;
+ int m_ram_a12_a7;
+ int m_ls74_cd;
+ int m_ls74_q1;
+ int m_ls74_q2;
+ int m_joyb2;
+};
+
+
+// device type definition
+extern const device_type C128_PARTNER;
+
+
+#endif
diff --git a/src/emu/bus/c64/comal80.c b/src/devices/bus/c64/comal80.c
index ee8ffe0d6fd..ee8ffe0d6fd 100644
--- a/src/emu/bus/c64/comal80.c
+++ b/src/devices/bus/c64/comal80.c
diff --git a/src/emu/bus/c64/comal80.h b/src/devices/bus/c64/comal80.h
index 766b6ed10d7..766b6ed10d7 100644
--- a/src/emu/bus/c64/comal80.h
+++ b/src/devices/bus/c64/comal80.h
diff --git a/src/emu/bus/c64/cpm.c b/src/devices/bus/c64/cpm.c
index 1533ab9f93b..1533ab9f93b 100644
--- a/src/emu/bus/c64/cpm.c
+++ b/src/devices/bus/c64/cpm.c
diff --git a/src/emu/bus/c64/cpm.h b/src/devices/bus/c64/cpm.h
index 67e7495d027..67e7495d027 100644
--- a/src/emu/bus/c64/cpm.h
+++ b/src/devices/bus/c64/cpm.h
diff --git a/src/emu/bus/c64/currah_speech.c b/src/devices/bus/c64/currah_speech.c
index 8e73f0801f1..8e73f0801f1 100644
--- a/src/emu/bus/c64/currah_speech.c
+++ b/src/devices/bus/c64/currah_speech.c
diff --git a/src/emu/bus/c64/currah_speech.h b/src/devices/bus/c64/currah_speech.h
index db687704252..db687704252 100644
--- a/src/emu/bus/c64/currah_speech.h
+++ b/src/devices/bus/c64/currah_speech.h
diff --git a/src/emu/bus/c64/dela_ep256.c b/src/devices/bus/c64/dela_ep256.c
index b4708e13856..b4708e13856 100644
--- a/src/emu/bus/c64/dela_ep256.c
+++ b/src/devices/bus/c64/dela_ep256.c
diff --git a/src/emu/bus/c64/dela_ep256.h b/src/devices/bus/c64/dela_ep256.h
index 8cae8b25b25..8cae8b25b25 100644
--- a/src/emu/bus/c64/dela_ep256.h
+++ b/src/devices/bus/c64/dela_ep256.h
diff --git a/src/emu/bus/c64/dela_ep64.c b/src/devices/bus/c64/dela_ep64.c
index 006b915908f..006b915908f 100644
--- a/src/emu/bus/c64/dela_ep64.c
+++ b/src/devices/bus/c64/dela_ep64.c
diff --git a/src/emu/bus/c64/dela_ep64.h b/src/devices/bus/c64/dela_ep64.h
index 9ee3455aeba..9ee3455aeba 100644
--- a/src/emu/bus/c64/dela_ep64.h
+++ b/src/devices/bus/c64/dela_ep64.h
diff --git a/src/emu/bus/c64/dela_ep7x8.c b/src/devices/bus/c64/dela_ep7x8.c
index f79b3828fe5..f79b3828fe5 100644
--- a/src/emu/bus/c64/dela_ep7x8.c
+++ b/src/devices/bus/c64/dela_ep7x8.c
diff --git a/src/emu/bus/c64/dela_ep7x8.h b/src/devices/bus/c64/dela_ep7x8.h
index cf236fadc07..cf236fadc07 100644
--- a/src/emu/bus/c64/dela_ep7x8.h
+++ b/src/devices/bus/c64/dela_ep7x8.h
diff --git a/src/emu/bus/c64/dinamic.c b/src/devices/bus/c64/dinamic.c
index 812e0fcdc92..812e0fcdc92 100644
--- a/src/emu/bus/c64/dinamic.c
+++ b/src/devices/bus/c64/dinamic.c
diff --git a/src/emu/bus/c64/dinamic.h b/src/devices/bus/c64/dinamic.h
index 2f3ecc07302..2f3ecc07302 100644
--- a/src/emu/bus/c64/dinamic.h
+++ b/src/devices/bus/c64/dinamic.h
diff --git a/src/emu/bus/c64/dqbb.c b/src/devices/bus/c64/dqbb.c
index 7e30cdd1545..7e30cdd1545 100644
--- a/src/emu/bus/c64/dqbb.c
+++ b/src/devices/bus/c64/dqbb.c
diff --git a/src/emu/bus/c64/dqbb.h b/src/devices/bus/c64/dqbb.h
index 387be1f2203..387be1f2203 100644
--- a/src/emu/bus/c64/dqbb.h
+++ b/src/devices/bus/c64/dqbb.h
diff --git a/src/emu/bus/c64/easy_calc_result.c b/src/devices/bus/c64/easy_calc_result.c
index d6a4a6b4cf9..d6a4a6b4cf9 100644
--- a/src/emu/bus/c64/easy_calc_result.c
+++ b/src/devices/bus/c64/easy_calc_result.c
diff --git a/src/emu/bus/c64/easy_calc_result.h b/src/devices/bus/c64/easy_calc_result.h
index e0fe1e34ac8..e0fe1e34ac8 100644
--- a/src/emu/bus/c64/easy_calc_result.h
+++ b/src/devices/bus/c64/easy_calc_result.h
diff --git a/src/emu/bus/c64/easyflash.c b/src/devices/bus/c64/easyflash.c
index 0af06b0cc48..0af06b0cc48 100644
--- a/src/emu/bus/c64/easyflash.c
+++ b/src/devices/bus/c64/easyflash.c
diff --git a/src/emu/bus/c64/easyflash.h b/src/devices/bus/c64/easyflash.h
index 4dba6c1e5be..4dba6c1e5be 100644
--- a/src/emu/bus/c64/easyflash.h
+++ b/src/devices/bus/c64/easyflash.h
diff --git a/src/emu/bus/c64/epyx_fast_load.c b/src/devices/bus/c64/epyx_fast_load.c
index 7b0dfeb5934..7b0dfeb5934 100644
--- a/src/emu/bus/c64/epyx_fast_load.c
+++ b/src/devices/bus/c64/epyx_fast_load.c
diff --git a/src/emu/bus/c64/epyx_fast_load.h b/src/devices/bus/c64/epyx_fast_load.h
index f0f30c5ccc6..f0f30c5ccc6 100644
--- a/src/emu/bus/c64/epyx_fast_load.h
+++ b/src/devices/bus/c64/epyx_fast_load.h
diff --git a/src/emu/bus/c64/exos.c b/src/devices/bus/c64/exos.c
index 0b0ce6c8257..0b0ce6c8257 100644
--- a/src/emu/bus/c64/exos.c
+++ b/src/devices/bus/c64/exos.c
diff --git a/src/emu/bus/c64/exos.h b/src/devices/bus/c64/exos.h
index 1fffb003c86..1fffb003c86 100644
--- a/src/emu/bus/c64/exos.h
+++ b/src/devices/bus/c64/exos.h
diff --git a/src/emu/bus/c64/exp.c b/src/devices/bus/c64/exp.c
index 16b3746e8c7..a1c449d180e 100644
--- a/src/emu/bus/c64/exp.c
+++ b/src/devices/bus/c64/exp.c
@@ -308,6 +308,7 @@ int c64_expansion_slot_device::exrom_r(offs_t offset, int sphi2, int ba, int rw,
// slot devices
#include "16kb.h"
#include "c128_comal80.h"
+#include "c128_partner.h"
#include "comal80.h"
#include "cpm.h"
#include "currah_speech.h"
@@ -420,6 +421,7 @@ SLOT_INTERFACE_START( c64_expansion_cards )
SLOT_INTERFACE_INTERNAL("ocean", C64_OCEAN)
SLOT_INTERFACE_INTERNAL("pagefox", C64_PAGEFOX)
SLOT_INTERFACE_INTERNAL("partner", C64_PARTNER)
+ SLOT_INTERFACE_INTERNAL("partner128", C128_PARTNER)
SLOT_INTERFACE_INTERNAL("prophet64", C64_PROPHET64)
SLOT_INTERFACE_INTERNAL("ps64", C64_PS64)
SLOT_INTERFACE_INTERNAL("rex", C64_REX)
diff --git a/src/emu/bus/c64/exp.h b/src/devices/bus/c64/exp.h
index 8ece3920e82..8ece3920e82 100644
--- a/src/emu/bus/c64/exp.h
+++ b/src/devices/bus/c64/exp.h
diff --git a/src/emu/bus/c64/fcc.c b/src/devices/bus/c64/fcc.c
index 0757ae94e76..0757ae94e76 100644
--- a/src/emu/bus/c64/fcc.c
+++ b/src/devices/bus/c64/fcc.c
diff --git a/src/emu/bus/c64/fcc.h b/src/devices/bus/c64/fcc.h
index 0727e3ebec4..0727e3ebec4 100644
--- a/src/emu/bus/c64/fcc.h
+++ b/src/devices/bus/c64/fcc.h
diff --git a/src/emu/bus/c64/final.c b/src/devices/bus/c64/final.c
index 8e29c886a16..8e29c886a16 100644
--- a/src/emu/bus/c64/final.c
+++ b/src/devices/bus/c64/final.c
diff --git a/src/emu/bus/c64/final.h b/src/devices/bus/c64/final.h
index 44ce29e3fee..44ce29e3fee 100644
--- a/src/emu/bus/c64/final.h
+++ b/src/devices/bus/c64/final.h
diff --git a/src/emu/bus/c64/final3.c b/src/devices/bus/c64/final3.c
index 20f969bcbe7..20f969bcbe7 100644
--- a/src/emu/bus/c64/final3.c
+++ b/src/devices/bus/c64/final3.c
diff --git a/src/emu/bus/c64/final3.h b/src/devices/bus/c64/final3.h
index 766e40a942b..766e40a942b 100644
--- a/src/emu/bus/c64/final3.h
+++ b/src/devices/bus/c64/final3.h
diff --git a/src/emu/bus/c64/fun_play.c b/src/devices/bus/c64/fun_play.c
index 69aa80288bc..69aa80288bc 100644
--- a/src/emu/bus/c64/fun_play.c
+++ b/src/devices/bus/c64/fun_play.c
diff --git a/src/emu/bus/c64/fun_play.h b/src/devices/bus/c64/fun_play.h
index 6ea38b0ac7f..6ea38b0ac7f 100644
--- a/src/emu/bus/c64/fun_play.h
+++ b/src/devices/bus/c64/fun_play.h
diff --git a/src/emu/bus/c64/geocable.c b/src/devices/bus/c64/geocable.c
index 3b6acc54d2a..3b6acc54d2a 100644
--- a/src/emu/bus/c64/geocable.c
+++ b/src/devices/bus/c64/geocable.c
diff --git a/src/emu/bus/c64/geocable.h b/src/devices/bus/c64/geocable.h
index 16d7b831d7a..16d7b831d7a 100644
--- a/src/emu/bus/c64/geocable.h
+++ b/src/devices/bus/c64/geocable.h
diff --git a/src/emu/bus/c64/georam.c b/src/devices/bus/c64/georam.c
index d3c30bf029e..d3c30bf029e 100644
--- a/src/emu/bus/c64/georam.c
+++ b/src/devices/bus/c64/georam.c
diff --git a/src/emu/bus/c64/georam.h b/src/devices/bus/c64/georam.h
index 7415b911dc2..7415b911dc2 100644
--- a/src/emu/bus/c64/georam.h
+++ b/src/devices/bus/c64/georam.h
diff --git a/src/emu/bus/c64/ide64.c b/src/devices/bus/c64/ide64.c
index c327b694fd5..c327b694fd5 100644
--- a/src/emu/bus/c64/ide64.c
+++ b/src/devices/bus/c64/ide64.c
diff --git a/src/emu/bus/c64/ide64.h b/src/devices/bus/c64/ide64.h
index c87cbf41479..c87cbf41479 100644
--- a/src/emu/bus/c64/ide64.h
+++ b/src/devices/bus/c64/ide64.h
diff --git a/src/emu/bus/c64/ieee488.c b/src/devices/bus/c64/ieee488.c
index 4b41417b42d..4b41417b42d 100644
--- a/src/emu/bus/c64/ieee488.c
+++ b/src/devices/bus/c64/ieee488.c
diff --git a/src/emu/bus/c64/ieee488.h b/src/devices/bus/c64/ieee488.h
index 9e8b2ee8e4d..9e8b2ee8e4d 100644
--- a/src/emu/bus/c64/ieee488.h
+++ b/src/devices/bus/c64/ieee488.h
diff --git a/src/emu/bus/c64/kingsoft.c b/src/devices/bus/c64/kingsoft.c
index 215670ae78e..215670ae78e 100644
--- a/src/emu/bus/c64/kingsoft.c
+++ b/src/devices/bus/c64/kingsoft.c
diff --git a/src/emu/bus/c64/kingsoft.h b/src/devices/bus/c64/kingsoft.h
index d6ca889b5fa..d6ca889b5fa 100644
--- a/src/emu/bus/c64/kingsoft.h
+++ b/src/devices/bus/c64/kingsoft.h
diff --git a/src/emu/bus/c64/mach5.c b/src/devices/bus/c64/mach5.c
index dea893ca627..dea893ca627 100644
--- a/src/emu/bus/c64/mach5.c
+++ b/src/devices/bus/c64/mach5.c
diff --git a/src/emu/bus/c64/mach5.h b/src/devices/bus/c64/mach5.h
index b3e448e77b4..b3e448e77b4 100644
--- a/src/emu/bus/c64/mach5.h
+++ b/src/devices/bus/c64/mach5.h
diff --git a/src/emu/bus/c64/magic_desk.c b/src/devices/bus/c64/magic_desk.c
index 7c050abb315..7c050abb315 100644
--- a/src/emu/bus/c64/magic_desk.c
+++ b/src/devices/bus/c64/magic_desk.c
diff --git a/src/emu/bus/c64/magic_desk.h b/src/devices/bus/c64/magic_desk.h
index a1db772cb2c..a1db772cb2c 100644
--- a/src/emu/bus/c64/magic_desk.h
+++ b/src/devices/bus/c64/magic_desk.h
diff --git a/src/emu/bus/c64/magic_formel.c b/src/devices/bus/c64/magic_formel.c
index 22faa6cbc9b..22faa6cbc9b 100644
--- a/src/emu/bus/c64/magic_formel.c
+++ b/src/devices/bus/c64/magic_formel.c
diff --git a/src/emu/bus/c64/magic_formel.h b/src/devices/bus/c64/magic_formel.h
index 251fbbb0c90..251fbbb0c90 100644
--- a/src/emu/bus/c64/magic_formel.h
+++ b/src/devices/bus/c64/magic_formel.h
diff --git a/src/emu/bus/c64/magic_voice.c b/src/devices/bus/c64/magic_voice.c
index c23c87052e4..c23c87052e4 100644
--- a/src/emu/bus/c64/magic_voice.c
+++ b/src/devices/bus/c64/magic_voice.c
diff --git a/src/emu/bus/c64/magic_voice.h b/src/devices/bus/c64/magic_voice.h
index ef385a5a502..ef385a5a502 100644
--- a/src/emu/bus/c64/magic_voice.h
+++ b/src/devices/bus/c64/magic_voice.h
diff --git a/src/emu/bus/c64/midi_maplin.c b/src/devices/bus/c64/midi_maplin.c
index 7a143391129..7a143391129 100644
--- a/src/emu/bus/c64/midi_maplin.c
+++ b/src/devices/bus/c64/midi_maplin.c
diff --git a/src/emu/bus/c64/midi_maplin.h b/src/devices/bus/c64/midi_maplin.h
index 95f447f122e..95f447f122e 100644
--- a/src/emu/bus/c64/midi_maplin.h
+++ b/src/devices/bus/c64/midi_maplin.h
diff --git a/src/emu/bus/c64/midi_namesoft.c b/src/devices/bus/c64/midi_namesoft.c
index cd1553b6187..cd1553b6187 100644
--- a/src/emu/bus/c64/midi_namesoft.c
+++ b/src/devices/bus/c64/midi_namesoft.c
diff --git a/src/emu/bus/c64/midi_namesoft.h b/src/devices/bus/c64/midi_namesoft.h
index bc91dbd8f86..bc91dbd8f86 100644
--- a/src/emu/bus/c64/midi_namesoft.h
+++ b/src/devices/bus/c64/midi_namesoft.h
diff --git a/src/emu/bus/c64/midi_passport.c b/src/devices/bus/c64/midi_passport.c
index 2948503f675..2948503f675 100644
--- a/src/emu/bus/c64/midi_passport.c
+++ b/src/devices/bus/c64/midi_passport.c
diff --git a/src/emu/bus/c64/midi_passport.h b/src/devices/bus/c64/midi_passport.h
index e60331cd727..e60331cd727 100644
--- a/src/emu/bus/c64/midi_passport.h
+++ b/src/devices/bus/c64/midi_passport.h
diff --git a/src/emu/bus/c64/midi_sci.c b/src/devices/bus/c64/midi_sci.c
index 40e2c56cbfc..40e2c56cbfc 100644
--- a/src/emu/bus/c64/midi_sci.c
+++ b/src/devices/bus/c64/midi_sci.c
diff --git a/src/emu/bus/c64/midi_sci.h b/src/devices/bus/c64/midi_sci.h
index 0401f3a82a1..0401f3a82a1 100644
--- a/src/emu/bus/c64/midi_sci.h
+++ b/src/devices/bus/c64/midi_sci.h
diff --git a/src/emu/bus/c64/midi_siel.c b/src/devices/bus/c64/midi_siel.c
index cce956a1427..cce956a1427 100644
--- a/src/emu/bus/c64/midi_siel.c
+++ b/src/devices/bus/c64/midi_siel.c
diff --git a/src/emu/bus/c64/midi_siel.h b/src/devices/bus/c64/midi_siel.h
index f566489259e..f566489259e 100644
--- a/src/emu/bus/c64/midi_siel.h
+++ b/src/devices/bus/c64/midi_siel.h
diff --git a/src/emu/bus/c64/mikro_assembler.c b/src/devices/bus/c64/mikro_assembler.c
index 2578d4ae5b4..2578d4ae5b4 100644
--- a/src/emu/bus/c64/mikro_assembler.c
+++ b/src/devices/bus/c64/mikro_assembler.c
diff --git a/src/emu/bus/c64/mikro_assembler.h b/src/devices/bus/c64/mikro_assembler.h
index 15c4e06279d..15c4e06279d 100644
--- a/src/emu/bus/c64/mikro_assembler.h
+++ b/src/devices/bus/c64/mikro_assembler.h
diff --git a/src/emu/bus/c64/multiscreen.c b/src/devices/bus/c64/multiscreen.c
index 0edb8b90c1c..0edb8b90c1c 100644
--- a/src/emu/bus/c64/multiscreen.c
+++ b/src/devices/bus/c64/multiscreen.c
diff --git a/src/emu/bus/c64/multiscreen.h b/src/devices/bus/c64/multiscreen.h
index 08d570f8308..08d570f8308 100644
--- a/src/emu/bus/c64/multiscreen.h
+++ b/src/devices/bus/c64/multiscreen.h
diff --git a/src/emu/bus/c64/music64.c b/src/devices/bus/c64/music64.c
index 723acad7fa7..723acad7fa7 100644
--- a/src/emu/bus/c64/music64.c
+++ b/src/devices/bus/c64/music64.c
diff --git a/src/emu/bus/c64/music64.h b/src/devices/bus/c64/music64.h
index bd1cfe2774b..bd1cfe2774b 100644
--- a/src/emu/bus/c64/music64.h
+++ b/src/devices/bus/c64/music64.h
diff --git a/src/emu/bus/c64/neoram.c b/src/devices/bus/c64/neoram.c
index 2b885c86f55..2b885c86f55 100644
--- a/src/emu/bus/c64/neoram.c
+++ b/src/devices/bus/c64/neoram.c
diff --git a/src/emu/bus/c64/neoram.h b/src/devices/bus/c64/neoram.h
index 0011e942a53..0011e942a53 100644
--- a/src/emu/bus/c64/neoram.h
+++ b/src/devices/bus/c64/neoram.h
diff --git a/src/emu/bus/c64/ocean.c b/src/devices/bus/c64/ocean.c
index 496651a1b25..496651a1b25 100644
--- a/src/emu/bus/c64/ocean.c
+++ b/src/devices/bus/c64/ocean.c
diff --git a/src/emu/bus/c64/ocean.h b/src/devices/bus/c64/ocean.h
index 6a44f6a4ace..6a44f6a4ace 100644
--- a/src/emu/bus/c64/ocean.h
+++ b/src/devices/bus/c64/ocean.h
diff --git a/src/emu/bus/c64/pagefox.c b/src/devices/bus/c64/pagefox.c
index 8f163f41692..8f163f41692 100644
--- a/src/emu/bus/c64/pagefox.c
+++ b/src/devices/bus/c64/pagefox.c
diff --git a/src/emu/bus/c64/pagefox.h b/src/devices/bus/c64/pagefox.h
index d9c71206e10..d9c71206e10 100644
--- a/src/emu/bus/c64/pagefox.h
+++ b/src/devices/bus/c64/pagefox.h
diff --git a/src/emu/bus/c64/partner.c b/src/devices/bus/c64/partner.c
index 4feb8022b08..4feb8022b08 100644
--- a/src/emu/bus/c64/partner.c
+++ b/src/devices/bus/c64/partner.c
diff --git a/src/emu/bus/c64/partner.h b/src/devices/bus/c64/partner.h
index bfa2abb314b..bfa2abb314b 100644
--- a/src/emu/bus/c64/partner.h
+++ b/src/devices/bus/c64/partner.h
diff --git a/src/emu/bus/c64/prophet64.c b/src/devices/bus/c64/prophet64.c
index bd61247eed3..bd61247eed3 100644
--- a/src/emu/bus/c64/prophet64.c
+++ b/src/devices/bus/c64/prophet64.c
diff --git a/src/emu/bus/c64/prophet64.h b/src/devices/bus/c64/prophet64.h
index d9ee926de3c..d9ee926de3c 100644
--- a/src/emu/bus/c64/prophet64.h
+++ b/src/devices/bus/c64/prophet64.h
diff --git a/src/emu/bus/c64/ps64.c b/src/devices/bus/c64/ps64.c
index af9ea9d2402..af9ea9d2402 100644
--- a/src/emu/bus/c64/ps64.c
+++ b/src/devices/bus/c64/ps64.c
diff --git a/src/emu/bus/c64/ps64.h b/src/devices/bus/c64/ps64.h
index 6c7a183c487..6c7a183c487 100644
--- a/src/emu/bus/c64/ps64.h
+++ b/src/devices/bus/c64/ps64.h
diff --git a/src/emu/bus/c64/reu.c b/src/devices/bus/c64/reu.c
index bc83c9554d2..bc83c9554d2 100644
--- a/src/emu/bus/c64/reu.c
+++ b/src/devices/bus/c64/reu.c
diff --git a/src/emu/bus/c64/reu.h b/src/devices/bus/c64/reu.h
index d3df7f4d1d9..d3df7f4d1d9 100644
--- a/src/emu/bus/c64/reu.h
+++ b/src/devices/bus/c64/reu.h
diff --git a/src/emu/bus/c64/rex.c b/src/devices/bus/c64/rex.c
index 5a4a0abaf78..5a4a0abaf78 100644
--- a/src/emu/bus/c64/rex.c
+++ b/src/devices/bus/c64/rex.c
diff --git a/src/emu/bus/c64/rex.h b/src/devices/bus/c64/rex.h
index d94b720f22d..d94b720f22d 100644
--- a/src/emu/bus/c64/rex.h
+++ b/src/devices/bus/c64/rex.h
diff --git a/src/emu/bus/c64/rex_ep256.c b/src/devices/bus/c64/rex_ep256.c
index ef87cf9dc6f..ef87cf9dc6f 100644
--- a/src/emu/bus/c64/rex_ep256.c
+++ b/src/devices/bus/c64/rex_ep256.c
diff --git a/src/emu/bus/c64/rex_ep256.h b/src/devices/bus/c64/rex_ep256.h
index 140e8402ce3..140e8402ce3 100644
--- a/src/emu/bus/c64/rex_ep256.h
+++ b/src/devices/bus/c64/rex_ep256.h
diff --git a/src/emu/bus/c64/ross.c b/src/devices/bus/c64/ross.c
index a610d8c987c..a610d8c987c 100644
--- a/src/emu/bus/c64/ross.c
+++ b/src/devices/bus/c64/ross.c
diff --git a/src/emu/bus/c64/ross.h b/src/devices/bus/c64/ross.h
index 0cb4d1f36b5..0cb4d1f36b5 100644
--- a/src/emu/bus/c64/ross.h
+++ b/src/devices/bus/c64/ross.h
diff --git a/src/emu/bus/c64/sfx_sound_expander.c b/src/devices/bus/c64/sfx_sound_expander.c
index 8c3f7291620..8c3f7291620 100644
--- a/src/emu/bus/c64/sfx_sound_expander.c
+++ b/src/devices/bus/c64/sfx_sound_expander.c
diff --git a/src/emu/bus/c64/sfx_sound_expander.h b/src/devices/bus/c64/sfx_sound_expander.h
index d7a0d229b45..d7a0d229b45 100644
--- a/src/emu/bus/c64/sfx_sound_expander.h
+++ b/src/devices/bus/c64/sfx_sound_expander.h
diff --git a/src/emu/bus/c64/silverrock.c b/src/devices/bus/c64/silverrock.c
index 9e9ce421a6c..9e9ce421a6c 100644
--- a/src/emu/bus/c64/silverrock.c
+++ b/src/devices/bus/c64/silverrock.c
diff --git a/src/emu/bus/c64/silverrock.h b/src/devices/bus/c64/silverrock.h
index 65e20f1ccf6..65e20f1ccf6 100644
--- a/src/emu/bus/c64/silverrock.h
+++ b/src/devices/bus/c64/silverrock.h
diff --git a/src/emu/bus/c64/simons_basic.c b/src/devices/bus/c64/simons_basic.c
index 01baf228189..01baf228189 100644
--- a/src/emu/bus/c64/simons_basic.c
+++ b/src/devices/bus/c64/simons_basic.c
diff --git a/src/emu/bus/c64/simons_basic.h b/src/devices/bus/c64/simons_basic.h
index 3ebff2b672a..3ebff2b672a 100644
--- a/src/emu/bus/c64/simons_basic.h
+++ b/src/devices/bus/c64/simons_basic.h
diff --git a/src/emu/bus/c64/stardos.c b/src/devices/bus/c64/stardos.c
index 4c92982c695..4c92982c695 100644
--- a/src/emu/bus/c64/stardos.c
+++ b/src/devices/bus/c64/stardos.c
diff --git a/src/emu/bus/c64/stardos.h b/src/devices/bus/c64/stardos.h
index a1cbe520afb..a1cbe520afb 100644
--- a/src/emu/bus/c64/stardos.h
+++ b/src/devices/bus/c64/stardos.h
diff --git a/src/emu/bus/c64/std.c b/src/devices/bus/c64/std.c
index 6fa3abfef1d..6fa3abfef1d 100644
--- a/src/emu/bus/c64/std.c
+++ b/src/devices/bus/c64/std.c
diff --git a/src/emu/bus/c64/std.h b/src/devices/bus/c64/std.h
index c726e901025..c726e901025 100644
--- a/src/emu/bus/c64/std.h
+++ b/src/devices/bus/c64/std.h
diff --git a/src/emu/bus/c64/structured_basic.c b/src/devices/bus/c64/structured_basic.c
index 404d1b9d753..404d1b9d753 100644
--- a/src/emu/bus/c64/structured_basic.c
+++ b/src/devices/bus/c64/structured_basic.c
diff --git a/src/emu/bus/c64/structured_basic.h b/src/devices/bus/c64/structured_basic.h
index 18465113d94..18465113d94 100644
--- a/src/emu/bus/c64/structured_basic.h
+++ b/src/devices/bus/c64/structured_basic.h
diff --git a/src/emu/bus/c64/super_explode.c b/src/devices/bus/c64/super_explode.c
index d58923fa97e..d58923fa97e 100644
--- a/src/emu/bus/c64/super_explode.c
+++ b/src/devices/bus/c64/super_explode.c
diff --git a/src/emu/bus/c64/super_explode.h b/src/devices/bus/c64/super_explode.h
index d33b4047725..d33b4047725 100644
--- a/src/emu/bus/c64/super_explode.h
+++ b/src/devices/bus/c64/super_explode.h
diff --git a/src/emu/bus/c64/super_games.c b/src/devices/bus/c64/super_games.c
index 0e15485993b..0e15485993b 100644
--- a/src/emu/bus/c64/super_games.c
+++ b/src/devices/bus/c64/super_games.c
diff --git a/src/emu/bus/c64/super_games.h b/src/devices/bus/c64/super_games.h
index 689fe7c79b9..689fe7c79b9 100644
--- a/src/emu/bus/c64/super_games.h
+++ b/src/devices/bus/c64/super_games.h
diff --git a/src/emu/bus/c64/supercpu.c b/src/devices/bus/c64/supercpu.c
index cb8a28e2198..cb8a28e2198 100644
--- a/src/emu/bus/c64/supercpu.c
+++ b/src/devices/bus/c64/supercpu.c
diff --git a/src/emu/bus/c64/supercpu.h b/src/devices/bus/c64/supercpu.h
index 857f6feb47f..857f6feb47f 100644
--- a/src/emu/bus/c64/supercpu.h
+++ b/src/devices/bus/c64/supercpu.h
diff --git a/src/emu/bus/c64/sw8k.c b/src/devices/bus/c64/sw8k.c
index 9b0cce8c55d..9b0cce8c55d 100644
--- a/src/emu/bus/c64/sw8k.c
+++ b/src/devices/bus/c64/sw8k.c
diff --git a/src/emu/bus/c64/sw8k.h b/src/devices/bus/c64/sw8k.h
index 0838baf68a7..0838baf68a7 100644
--- a/src/emu/bus/c64/sw8k.h
+++ b/src/devices/bus/c64/sw8k.h
diff --git a/src/emu/bus/c64/swiftlink.c b/src/devices/bus/c64/swiftlink.c
index 19e4ea5161a..19e4ea5161a 100644
--- a/src/emu/bus/c64/swiftlink.c
+++ b/src/devices/bus/c64/swiftlink.c
diff --git a/src/emu/bus/c64/swiftlink.h b/src/devices/bus/c64/swiftlink.h
index 713bafbb289..713bafbb289 100644
--- a/src/emu/bus/c64/swiftlink.h
+++ b/src/devices/bus/c64/swiftlink.h
diff --git a/src/emu/bus/c64/system3.c b/src/devices/bus/c64/system3.c
index b14ca7ecc87..b14ca7ecc87 100644
--- a/src/emu/bus/c64/system3.c
+++ b/src/devices/bus/c64/system3.c
diff --git a/src/emu/bus/c64/system3.h b/src/devices/bus/c64/system3.h
index c6adc33c880..c6adc33c880 100644
--- a/src/emu/bus/c64/system3.h
+++ b/src/devices/bus/c64/system3.h
diff --git a/src/emu/bus/c64/tdos.c b/src/devices/bus/c64/tdos.c
index e472ab7e1db..e472ab7e1db 100644
--- a/src/emu/bus/c64/tdos.c
+++ b/src/devices/bus/c64/tdos.c
diff --git a/src/emu/bus/c64/tdos.h b/src/devices/bus/c64/tdos.h
index 93e3823d180..93e3823d180 100644
--- a/src/emu/bus/c64/tdos.h
+++ b/src/devices/bus/c64/tdos.h
diff --git a/src/emu/bus/c64/turbo232.c b/src/devices/bus/c64/turbo232.c
index 8fe00f65fd1..8fe00f65fd1 100644
--- a/src/emu/bus/c64/turbo232.c
+++ b/src/devices/bus/c64/turbo232.c
diff --git a/src/emu/bus/c64/turbo232.h b/src/devices/bus/c64/turbo232.h
index b8ff5a17c8c..b8ff5a17c8c 100644
--- a/src/emu/bus/c64/turbo232.h
+++ b/src/devices/bus/c64/turbo232.h
diff --git a/src/emu/bus/c64/user.c b/src/devices/bus/c64/user.c
index 54e8bc560d2..54e8bc560d2 100644
--- a/src/emu/bus/c64/user.c
+++ b/src/devices/bus/c64/user.c
diff --git a/src/emu/bus/c64/user.h b/src/devices/bus/c64/user.h
index 52aed6eb972..52aed6eb972 100644
--- a/src/emu/bus/c64/user.h
+++ b/src/devices/bus/c64/user.h
diff --git a/src/emu/bus/c64/vizastar.c b/src/devices/bus/c64/vizastar.c
index d635ffec656..d635ffec656 100644
--- a/src/emu/bus/c64/vizastar.c
+++ b/src/devices/bus/c64/vizastar.c
diff --git a/src/emu/bus/c64/vizastar.h b/src/devices/bus/c64/vizastar.h
index 0b01f4424a7..0b01f4424a7 100644
--- a/src/emu/bus/c64/vizastar.h
+++ b/src/devices/bus/c64/vizastar.h
diff --git a/src/emu/bus/c64/vw64.c b/src/devices/bus/c64/vw64.c
index fdc21ff4a05..fdc21ff4a05 100644
--- a/src/emu/bus/c64/vw64.c
+++ b/src/devices/bus/c64/vw64.c
diff --git a/src/emu/bus/c64/vw64.h b/src/devices/bus/c64/vw64.h
index fac67142a1a..fac67142a1a 100644
--- a/src/emu/bus/c64/vw64.h
+++ b/src/devices/bus/c64/vw64.h
diff --git a/src/emu/bus/c64/warp_speed.c b/src/devices/bus/c64/warp_speed.c
index d625fa5ea7d..d625fa5ea7d 100644
--- a/src/emu/bus/c64/warp_speed.c
+++ b/src/devices/bus/c64/warp_speed.c
diff --git a/src/emu/bus/c64/warp_speed.h b/src/devices/bus/c64/warp_speed.h
index e115c7be256..e115c7be256 100644
--- a/src/emu/bus/c64/warp_speed.h
+++ b/src/devices/bus/c64/warp_speed.h
diff --git a/src/emu/bus/c64/westermann.c b/src/devices/bus/c64/westermann.c
index 6a758428a1f..6a758428a1f 100644
--- a/src/emu/bus/c64/westermann.c
+++ b/src/devices/bus/c64/westermann.c
diff --git a/src/emu/bus/c64/westermann.h b/src/devices/bus/c64/westermann.h
index 9ea1d0d605c..9ea1d0d605c 100644
--- a/src/emu/bus/c64/westermann.h
+++ b/src/devices/bus/c64/westermann.h
diff --git a/src/emu/bus/c64/xl80.c b/src/devices/bus/c64/xl80.c
index c1f7fe0f1dd..c1f7fe0f1dd 100644
--- a/src/emu/bus/c64/xl80.c
+++ b/src/devices/bus/c64/xl80.c
diff --git a/src/emu/bus/c64/xl80.h b/src/devices/bus/c64/xl80.h
index 38a90baf6b1..38a90baf6b1 100644
--- a/src/emu/bus/c64/xl80.h
+++ b/src/devices/bus/c64/xl80.h
diff --git a/src/emu/bus/c64/zaxxon.c b/src/devices/bus/c64/zaxxon.c
index 22ce1f35ce9..22ce1f35ce9 100644
--- a/src/emu/bus/c64/zaxxon.c
+++ b/src/devices/bus/c64/zaxxon.c
diff --git a/src/emu/bus/c64/zaxxon.h b/src/devices/bus/c64/zaxxon.h
index b5740605ef0..b5740605ef0 100644
--- a/src/emu/bus/c64/zaxxon.h
+++ b/src/devices/bus/c64/zaxxon.h
diff --git a/src/emu/bus/cbm2/24k.c b/src/devices/bus/cbm2/24k.c
index a31c58a7aaf..a31c58a7aaf 100644
--- a/src/emu/bus/cbm2/24k.c
+++ b/src/devices/bus/cbm2/24k.c
diff --git a/src/emu/bus/cbm2/24k.h b/src/devices/bus/cbm2/24k.h
index 80dbc52046b..80dbc52046b 100644
--- a/src/emu/bus/cbm2/24k.h
+++ b/src/devices/bus/cbm2/24k.h
diff --git a/src/emu/bus/cbm2/exp.c b/src/devices/bus/cbm2/exp.c
index f45dbc2caca..f45dbc2caca 100644
--- a/src/emu/bus/cbm2/exp.c
+++ b/src/devices/bus/cbm2/exp.c
diff --git a/src/emu/bus/cbm2/exp.h b/src/devices/bus/cbm2/exp.h
index 338e4ad1cda..338e4ad1cda 100644
--- a/src/emu/bus/cbm2/exp.h
+++ b/src/devices/bus/cbm2/exp.h
diff --git a/src/emu/bus/cbm2/hrg.c b/src/devices/bus/cbm2/hrg.c
index cb489ec359f..cb489ec359f 100644
--- a/src/emu/bus/cbm2/hrg.c
+++ b/src/devices/bus/cbm2/hrg.c
diff --git a/src/emu/bus/cbm2/hrg.h b/src/devices/bus/cbm2/hrg.h
index 91892274fc1..91892274fc1 100644
--- a/src/emu/bus/cbm2/hrg.h
+++ b/src/devices/bus/cbm2/hrg.h
diff --git a/src/emu/bus/cbm2/std.c b/src/devices/bus/cbm2/std.c
index e6e697927dc..e6e697927dc 100644
--- a/src/emu/bus/cbm2/std.c
+++ b/src/devices/bus/cbm2/std.c
diff --git a/src/emu/bus/cbm2/std.h b/src/devices/bus/cbm2/std.h
index 8dee67b9c11..8dee67b9c11 100644
--- a/src/emu/bus/cbm2/std.h
+++ b/src/devices/bus/cbm2/std.h
diff --git a/src/emu/bus/cbm2/user.c b/src/devices/bus/cbm2/user.c
index 6383f39b061..6383f39b061 100644
--- a/src/emu/bus/cbm2/user.c
+++ b/src/devices/bus/cbm2/user.c
diff --git a/src/emu/bus/cbm2/user.h b/src/devices/bus/cbm2/user.h
index 7952517ed05..7952517ed05 100644
--- a/src/emu/bus/cbm2/user.h
+++ b/src/devices/bus/cbm2/user.h
diff --git a/src/devices/bus/cbmiec/c1526.c b/src/devices/bus/cbmiec/c1526.c
new file mode 100644
index 00000000000..da2cf7197c0
--- /dev/null
+++ b/src/devices/bus/cbmiec/c1526.c
@@ -0,0 +1,269 @@
+// license:BSD-3-Clause
+// copyright-holders:Curt Coder
+/**********************************************************************
+
+ Commodore 1526/MPS-802/4023 Printer emulation
+
+**********************************************************************/
+
+#include "c1526.h"
+
+
+
+//**************************************************************************
+// MACROS / CONSTANTS
+//**************************************************************************
+
+#define M6504_TAG "u7d"
+
+
+
+//**************************************************************************
+// DEVICE DEFINITIONS
+//**************************************************************************
+
+const device_type C1526 = &device_creator<c1526_t>;
+const device_type MPS802 = &device_creator<c1526_t>;
+const device_type C4023 = &device_creator<c4023_t>;
+
+
+//-------------------------------------------------
+// ROM( c1526 )
+//-------------------------------------------------
+
+ROM_START( c1526 )
+ ROM_REGION( 0x2000, M6504_TAG, 0 )
+ ROM_SYSTEM_BIOS( 0, "r05", "Revision 5" )
+ ROMX_LOAD( "325341-05.u8d", 0x0000, 0x2000, CRC(3ef63c59) SHA1(a71be83a476d2777d33dddb0103c036a047975ba), ROM_BIOS(1) )
+ ROM_SYSTEM_BIOS( 1, "r07c", "Revision 7c" )
+ ROMX_LOAD( "325341-08.u8d", 0x0000, 0x2000, CRC(38f85b4a) SHA1(25880091979b21fdaf713b53ef2f1cb8063a3505), ROM_BIOS(2) )
+ ROM_SYSTEM_BIOS( 2, "r07b", "Revision 7b (Swe/Fin)" )
+ ROMX_LOAD( "cbm 1526 vers. 1.0 skand.gen.u8d", 0x0000, 0x2000, CRC(21051f69) SHA1(7e622fc39985ebe9333d2b546b3c85fd6ab17a53), ROM_BIOS(3) )
+ ROM_SYSTEM_BIOS( 3, "grafik", "MPS802 GrafikROM II v60.12" )
+ ROMX_LOAD( "mps802 grafikrom ii v60.12.u8d", 0x0000, 0x2000, CRC(9f5e6b18) SHA1(8b7f620a8f85e250b142d72b812a67fd0e292d68), ROM_BIOS(4) )
+ROM_END
+
+
+//-------------------------------------------------
+// rom_region - device-specific ROM region
+//-------------------------------------------------
+
+const rom_entry *c1526_t::device_rom_region() const
+{
+ return ROM_NAME( c1526 );
+}
+
+
+//-------------------------------------------------
+// ROM( c4023 )
+//-------------------------------------------------
+
+ROM_START( c4023 )
+ ROM_REGION( 0x2000, M6504_TAG, 0 )
+ ROM_LOAD( "325360-03.u8d", 0x0000, 0x2000, CRC(c6bb0977) SHA1(7a8c43d2e205f58d83709c04bc7795602a892ddd) )
+ROM_END
+
+
+//-------------------------------------------------
+// rom_region - device-specific ROM region
+//-------------------------------------------------
+
+const rom_entry *c4023_t::device_rom_region() const
+{
+ return ROM_NAME( c4023 );
+}
+
+
+//-------------------------------------------------
+// ADDRESS_MAP( c1526_mem )
+//-------------------------------------------------
+
+static ADDRESS_MAP_START( c1526_mem, AS_PROGRAM, 8, c1526_base_t )
+ AM_RANGE(0xe000, 0xffff) AM_ROM AM_REGION(M6504_TAG, 0)
+ADDRESS_MAP_END
+
+
+//-------------------------------------------------
+// MACHINE_DRIVER( c1526 )
+//-------------------------------------------------
+
+static MACHINE_CONFIG_FRAGMENT( c1526 )
+ MCFG_CPU_ADD(M6504_TAG, M6504, XTAL_4MHz/4)
+ MCFG_CPU_PROGRAM_MAP(c1526_mem)
+MACHINE_CONFIG_END
+
+
+//-------------------------------------------------
+// machine_config_additions - device-specific
+// machine configurations
+//-------------------------------------------------
+
+machine_config_constructor c1526_t::device_mconfig_additions() const
+{
+ return MACHINE_CONFIG_NAME( c1526 );
+}
+
+
+//-------------------------------------------------
+// MACHINE_DRIVER( c4023 )
+//-------------------------------------------------
+
+static MACHINE_CONFIG_FRAGMENT( c4023 )
+ MCFG_CPU_ADD(M6504_TAG, M6504, XTAL_4MHz/4)
+ MCFG_CPU_PROGRAM_MAP(c1526_mem)
+MACHINE_CONFIG_END
+
+
+//-------------------------------------------------
+// machine_config_additions - device-specific
+// machine configurations
+//-------------------------------------------------
+
+machine_config_constructor c4023_t::device_mconfig_additions() const
+{
+ return MACHINE_CONFIG_NAME( c4023 );
+}
+
+
+//-------------------------------------------------
+// INPUT_PORTS( c1526 )
+//-------------------------------------------------
+
+static INPUT_PORTS_START( c1526 )
+INPUT_PORTS_END
+
+
+//-------------------------------------------------
+// input_ports - device-specific input ports
+//-------------------------------------------------
+
+ioport_constructor c1526_t::device_input_ports() const
+{
+ return INPUT_PORTS_NAME( c1526 );
+}
+
+
+//-------------------------------------------------
+// INPUT_PORTS( c4023 )
+//-------------------------------------------------
+
+static INPUT_PORTS_START( c4023 )
+INPUT_PORTS_END
+
+
+//-------------------------------------------------
+// input_ports - device-specific input ports
+//-------------------------------------------------
+
+ioport_constructor c4023_t::device_input_ports() const
+{
+ return INPUT_PORTS_NAME( c4023 );
+}
+
+
+
+//**************************************************************************
+// LIVE DEVICE
+//**************************************************************************
+
+//-------------------------------------------------
+// c1526_base_t - constructor
+//-------------------------------------------------
+
+c1526_base_t:: c1526_base_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source) :
+ device_t(mconfig, type, name, tag, owner, clock, shortname, source)
+{
+}
+
+
+//-------------------------------------------------
+// c1526_t - constructor
+//-------------------------------------------------
+
+c1526_t::c1526_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
+ c1526_base_t(mconfig, C1526, "1526", tag, owner, clock, "c1526", __FILE__),
+ device_cbm_iec_interface(mconfig, *this)
+{
+}
+
+
+//-------------------------------------------------
+// c4023_t - constructor
+//-------------------------------------------------
+
+c4023_t::c4023_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
+ c1526_base_t(mconfig, C4023, "4023", tag, owner, clock, "c4023", __FILE__),
+ device_ieee488_interface(mconfig, *this)
+{
+}
+
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void c1526_base_t::device_start()
+{
+}
+
+
+//-------------------------------------------------
+// device_reset - device-specific reset
+//-------------------------------------------------
+
+void c1526_base_t::device_reset()
+{
+}
+
+
+//-------------------------------------------------
+// cbm_iec_atn -
+//-------------------------------------------------
+
+void c1526_t::cbm_iec_atn(int state)
+{
+}
+
+
+//-------------------------------------------------
+// cbm_iec_data -
+//-------------------------------------------------
+
+void c1526_t::cbm_iec_data(int state)
+{
+}
+
+
+//-------------------------------------------------
+// cbm_iec_reset -
+//-------------------------------------------------
+
+void c1526_t::cbm_iec_reset(int state)
+{
+ if (!state)
+ {
+ device_reset();
+ }
+}
+
+
+//-------------------------------------------------
+// ieee488_atn_w -
+//-------------------------------------------------
+
+void c4023_t::ieee488_atn(int state)
+{
+}
+
+
+//-------------------------------------------------
+// ieee488_ifc_w -
+//-------------------------------------------------
+
+void c4023_t::ieee488_ifc(int state)
+{
+ if (!state)
+ {
+ device_reset();
+ }
+}
diff --git a/src/devices/bus/cbmiec/c1526.h b/src/devices/bus/cbmiec/c1526.h
new file mode 100644
index 00000000000..c6389bf4662
--- /dev/null
+++ b/src/devices/bus/cbmiec/c1526.h
@@ -0,0 +1,90 @@
+// license:BSD-3-Clause
+// copyright-holders:Curt Coder
+/**********************************************************************
+
+ Commodore 1526/MPS-802/4023 Printer emulation
+
+**********************************************************************/
+
+#pragma once
+
+#ifndef __C1526__
+#define __C1526__
+
+#include "emu.h"
+#include "cbmiec.h"
+#include "bus/ieee488/ieee488.h"
+#include "cpu/m6502/m6504.h"
+
+
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+// ======================> c1526_base_t
+
+class c1526_base_t : public device_t
+{
+public:
+ // construction/destruction
+ c1526_base_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source);
+
+protected:
+ // device-level overrides
+ virtual void device_start();
+ virtual void device_reset();
+};
+
+
+// ======================> c1526_t
+
+class c1526_t : public c1526_base_t,
+ public device_cbm_iec_interface
+{
+public:
+ // construction/destruction
+ c1526_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ // optional information overrides
+ virtual machine_config_constructor device_mconfig_additions() const;
+ virtual ioport_constructor device_input_ports() const;
+ virtual const rom_entry *device_rom_region() const;
+
+protected:
+ // device_cbm_iec_interface overrides
+ void cbm_iec_atn(int state);
+ void cbm_iec_data(int state);
+ void cbm_iec_reset(int state);
+};
+
+
+// ======================> c4023_t
+
+class c4023_t : public c1526_base_t,
+ public device_ieee488_interface
+{
+public:
+ // construction/destruction
+ c4023_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ // optional information overrides
+ virtual machine_config_constructor device_mconfig_additions() const;
+ virtual ioport_constructor device_input_ports() const;
+ virtual const rom_entry *device_rom_region() const;
+
+protected:
+ // device_ieee488_interface overrides
+ virtual void ieee488_atn(int state);
+ virtual void ieee488_ifc(int state);
+};
+
+
+// device type definition
+extern const device_type C1526;
+extern const device_type MPS802;
+extern const device_type C4023;
+
+
+
+#endif
diff --git a/src/emu/bus/cbmiec/c1541.c b/src/devices/bus/cbmiec/c1541.c
index 054c6e27120..054c6e27120 100644
--- a/src/emu/bus/cbmiec/c1541.c
+++ b/src/devices/bus/cbmiec/c1541.c
diff --git a/src/emu/bus/cbmiec/c1541.h b/src/devices/bus/cbmiec/c1541.h
index 7195b93293e..7195b93293e 100644
--- a/src/emu/bus/cbmiec/c1541.h
+++ b/src/devices/bus/cbmiec/c1541.h
diff --git a/src/emu/bus/cbmiec/c1571.c b/src/devices/bus/cbmiec/c1571.c
index a08e88fb696..a08e88fb696 100644
--- a/src/emu/bus/cbmiec/c1571.c
+++ b/src/devices/bus/cbmiec/c1571.c
diff --git a/src/emu/bus/cbmiec/c1571.h b/src/devices/bus/cbmiec/c1571.h
index 6a938b73291..6a938b73291 100644
--- a/src/emu/bus/cbmiec/c1571.h
+++ b/src/devices/bus/cbmiec/c1571.h
diff --git a/src/emu/bus/cbmiec/c1581.c b/src/devices/bus/cbmiec/c1581.c
index 33bc082241e..33bc082241e 100644
--- a/src/emu/bus/cbmiec/c1581.c
+++ b/src/devices/bus/cbmiec/c1581.c
diff --git a/src/emu/bus/cbmiec/c1581.h b/src/devices/bus/cbmiec/c1581.h
index 4a2ac6a28a5..4a2ac6a28a5 100644
--- a/src/emu/bus/cbmiec/c1581.h
+++ b/src/devices/bus/cbmiec/c1581.h
diff --git a/src/emu/bus/cbmiec/c64_nl10.c b/src/devices/bus/cbmiec/c64_nl10.c
index 970baa2f941..970baa2f941 100644
--- a/src/emu/bus/cbmiec/c64_nl10.c
+++ b/src/devices/bus/cbmiec/c64_nl10.c
diff --git a/src/emu/bus/cbmiec/c64_nl10.h b/src/devices/bus/cbmiec/c64_nl10.h
index f0ceafd3f2d..f0ceafd3f2d 100644
--- a/src/emu/bus/cbmiec/c64_nl10.h
+++ b/src/devices/bus/cbmiec/c64_nl10.h
diff --git a/src/emu/bus/cbmiec/cbmiec.c b/src/devices/bus/cbmiec/cbmiec.c
index f7b89521fa0..f546d2ac649 100644
--- a/src/emu/bus/cbmiec/cbmiec.c
+++ b/src/devices/bus/cbmiec/cbmiec.c
@@ -492,6 +492,9 @@ int cbm_iec_device::get_signal(int signal)
#include "fd2000.h"
#include "interpod.h"
#include "serialbox.h"
+#include "vic1515.h"
+#include "vic1520.h"
+#include "c1526.h"
SLOT_INTERFACE_START( cbm_iec_devices )
SLOT_INTERFACE("c1540", C1540)
@@ -516,4 +519,8 @@ SLOT_INTERFACE_START( cbm_iec_devices )
SLOT_INTERFACE("serialbox", SERIAL_BOX)
SLOT_INTERFACE("diag264", DIAG264_SERIAL_LOOPBACK)
SLOT_INTERFACE("nl10", C64_NL10_INTERFACE)
+ SLOT_INTERFACE("vic1515", VIC1515)
+ SLOT_INTERFACE("vic1520", VIC1520)
+ SLOT_INTERFACE("c1526", C1526)
+ SLOT_INTERFACE("mps802", MPS802)
SLOT_INTERFACE_END
diff --git a/src/emu/bus/cbmiec/cbmiec.h b/src/devices/bus/cbmiec/cbmiec.h
index 627e3dc203f..627e3dc203f 100644
--- a/src/emu/bus/cbmiec/cbmiec.h
+++ b/src/devices/bus/cbmiec/cbmiec.h
diff --git a/src/emu/bus/cbmiec/cmdhd.c b/src/devices/bus/cbmiec/cmdhd.c
index d3025700fa7..d3025700fa7 100644
--- a/src/emu/bus/cbmiec/cmdhd.c
+++ b/src/devices/bus/cbmiec/cmdhd.c
diff --git a/src/emu/bus/cbmiec/cmdhd.h b/src/devices/bus/cbmiec/cmdhd.h
index f71c0ad2741..f71c0ad2741 100644
--- a/src/emu/bus/cbmiec/cmdhd.h
+++ b/src/devices/bus/cbmiec/cmdhd.h
diff --git a/src/emu/bus/cbmiec/diag264_lb_iec.c b/src/devices/bus/cbmiec/diag264_lb_iec.c
index d9c2e5ed303..d9c2e5ed303 100644
--- a/src/emu/bus/cbmiec/diag264_lb_iec.c
+++ b/src/devices/bus/cbmiec/diag264_lb_iec.c
diff --git a/src/emu/bus/cbmiec/diag264_lb_iec.h b/src/devices/bus/cbmiec/diag264_lb_iec.h
index ac963ec231e..ac963ec231e 100644
--- a/src/emu/bus/cbmiec/diag264_lb_iec.h
+++ b/src/devices/bus/cbmiec/diag264_lb_iec.h
diff --git a/src/emu/bus/cbmiec/fd2000.c b/src/devices/bus/cbmiec/fd2000.c
index d31b9d97507..d31b9d97507 100644
--- a/src/emu/bus/cbmiec/fd2000.c
+++ b/src/devices/bus/cbmiec/fd2000.c
diff --git a/src/emu/bus/cbmiec/fd2000.h b/src/devices/bus/cbmiec/fd2000.h
index 00ff81a038d..00ff81a038d 100644
--- a/src/emu/bus/cbmiec/fd2000.h
+++ b/src/devices/bus/cbmiec/fd2000.h
diff --git a/src/emu/bus/cbmiec/interpod.c b/src/devices/bus/cbmiec/interpod.c
index 0326210bb54..0326210bb54 100644
--- a/src/emu/bus/cbmiec/interpod.c
+++ b/src/devices/bus/cbmiec/interpod.c
diff --git a/src/emu/bus/cbmiec/interpod.h b/src/devices/bus/cbmiec/interpod.h
index fbbe194cca6..fbbe194cca6 100644
--- a/src/emu/bus/cbmiec/interpod.h
+++ b/src/devices/bus/cbmiec/interpod.h
diff --git a/src/emu/bus/cbmiec/serialbox.c b/src/devices/bus/cbmiec/serialbox.c
index c3b653cb030..c3b653cb030 100644
--- a/src/emu/bus/cbmiec/serialbox.c
+++ b/src/devices/bus/cbmiec/serialbox.c
diff --git a/src/emu/bus/cbmiec/serialbox.h b/src/devices/bus/cbmiec/serialbox.h
index f045fd05dfb..f045fd05dfb 100644
--- a/src/emu/bus/cbmiec/serialbox.h
+++ b/src/devices/bus/cbmiec/serialbox.h
diff --git a/src/devices/bus/cbmiec/vic1515.c b/src/devices/bus/cbmiec/vic1515.c
new file mode 100644
index 00000000000..61f19761d7a
--- /dev/null
+++ b/src/devices/bus/cbmiec/vic1515.c
@@ -0,0 +1,164 @@
+// license:BSD-3-Clause
+// copyright-holders:Curt Coder
+/**********************************************************************
+
+ Commodore VIC-1515 Printer emulation
+
+**********************************************************************/
+
+#include "vic1515.h"
+
+
+
+//**************************************************************************
+// DEVICE DEFINITIONS
+//**************************************************************************
+
+const device_type VIC1515 = &device_creator<vic1515_t>;
+
+
+//-------------------------------------------------
+// ROM( vic1515 )
+//-------------------------------------------------
+
+ROM_START( vic1515 )
+ ROM_REGION( 0x1000, "rom", 0 )
+ ROM_LOAD( "805-5.p4", 0x0000, 0x1000, CRC(05a99a5a) SHA1(035c23dc83923eea34feea260445356a909fbd98) )
+ROM_END
+
+
+//-------------------------------------------------
+// rom_region - device-specific ROM region
+//-------------------------------------------------
+
+const rom_entry *vic1515_t::device_rom_region() const
+{
+ return ROM_NAME( vic1515 );
+}
+
+
+//-------------------------------------------------
+// ADDRESS_MAP( vic1515_mem )
+//-------------------------------------------------
+
+static ADDRESS_MAP_START( vic1515_mem, AS_PROGRAM, 8, vic1515_t )
+ AM_RANGE(0x0000, 0x0fff) AM_ROM AM_REGION("rom", 0)
+ADDRESS_MAP_END
+
+
+//-------------------------------------------------
+// ADDRESS_MAP( vic1515_io )
+//-------------------------------------------------
+
+static ADDRESS_MAP_START( vic1515_io, AS_IO, 8, vic1515_t )
+ADDRESS_MAP_END
+
+
+//-------------------------------------------------
+// MACHINE_DRIVER( vic1515 )
+//-------------------------------------------------
+
+static MACHINE_CONFIG_FRAGMENT( vic1515 )
+ MCFG_CPU_ADD("maincpu", I8039, XTAL_6MHz)
+ MCFG_CPU_PROGRAM_MAP(vic1515_mem)
+ MCFG_CPU_IO_MAP(vic1515_io)
+MACHINE_CONFIG_END
+
+
+//-------------------------------------------------
+// machine_config_additions - device-specific
+// machine configurations
+//-------------------------------------------------
+
+machine_config_constructor vic1515_t::device_mconfig_additions() const
+{
+ return MACHINE_CONFIG_NAME( vic1515 );
+}
+
+
+//-------------------------------------------------
+// INPUT_PORTS( vic1515 )
+//-------------------------------------------------
+
+static INPUT_PORTS_START( vic1515 )
+ PORT_START("ADDRESS")
+ PORT_DIPNAME( 0x03, 0x00, "Device Address" )
+ PORT_DIPSETTING( 0x00, "4" )
+ PORT_DIPSETTING( 0x01, "5" )
+ PORT_DIPSETTING( 0x02, "T" )
+INPUT_PORTS_END
+
+
+//-------------------------------------------------
+// input_ports - device-specific input ports
+//-------------------------------------------------
+
+ioport_constructor vic1515_t::device_input_ports() const
+{
+ return INPUT_PORTS_NAME( vic1515 );
+}
+
+
+
+//**************************************************************************
+// LIVE DEVICE
+//**************************************************************************
+
+//-------------------------------------------------
+// vic1515_t - constructor
+//-------------------------------------------------
+
+vic1515_t::vic1515_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
+ device_t(mconfig, VIC1515, "VIC-1515", tag, owner, clock, "vic1515", __FILE__),
+ device_cbm_iec_interface(mconfig, *this)
+{
+}
+
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void vic1515_t::device_start()
+{
+}
+
+
+//-------------------------------------------------
+// device_reset - device-specific reset
+//-------------------------------------------------
+
+void vic1515_t::device_reset()
+{
+}
+
+
+//-------------------------------------------------
+// cbm_iec_atn -
+//-------------------------------------------------
+
+void vic1515_t::cbm_iec_atn(int state)
+{
+}
+
+
+//-------------------------------------------------
+// cbm_iec_data -
+//-------------------------------------------------
+
+void vic1515_t::cbm_iec_data(int state)
+{
+}
+
+
+//-------------------------------------------------
+// cbm_iec_reset -
+//-------------------------------------------------
+
+void vic1515_t::cbm_iec_reset(int state)
+{
+ if (!state)
+ {
+ device_reset();
+ }
+}
diff --git a/src/devices/bus/cbmiec/vic1515.h b/src/devices/bus/cbmiec/vic1515.h
new file mode 100644
index 00000000000..cd3d4554994
--- /dev/null
+++ b/src/devices/bus/cbmiec/vic1515.h
@@ -0,0 +1,55 @@
+// license:BSD-3-Clause
+// copyright-holders:Curt Coder
+/**********************************************************************
+
+ Commodore VIC-1515 Printer emulation
+
+**********************************************************************/
+
+#pragma once
+
+#ifndef __VIC1515__
+#define __VIC1515__
+
+#include "emu.h"
+#include "cbmiec.h"
+#include "cpu/mcs48/mcs48.h"
+
+
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+// ======================> vic1515_t
+
+class vic1515_t : public device_t,
+ public device_cbm_iec_interface
+{
+public:
+ // construction/destruction
+ vic1515_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ // optional information overrides
+ virtual const rom_entry *device_rom_region() const;
+ virtual machine_config_constructor device_mconfig_additions() const;
+ virtual ioport_constructor device_input_ports() const;
+
+protected:
+ // device-level overrides
+ virtual void device_start();
+ virtual void device_reset();
+
+ // device_cbm_iec_interface overrides
+ void cbm_iec_atn(int state);
+ void cbm_iec_data(int state);
+ void cbm_iec_reset(int state);
+};
+
+
+// device type definition
+extern const device_type VIC1515;
+
+
+
+#endif
diff --git a/src/devices/bus/cbmiec/vic1520.c b/src/devices/bus/cbmiec/vic1520.c
new file mode 100644
index 00000000000..55cd372f385
--- /dev/null
+++ b/src/devices/bus/cbmiec/vic1520.c
@@ -0,0 +1,192 @@
+// license:BSD-3-Clause
+// copyright-holders:Curt Coder
+/**********************************************************************
+
+ Commodore VIC-1520 Plotter emulation
+
+**********************************************************************/
+
+/*
+PA0 ATN
+PA1 _CLK
+PA5 ATTN ACK
+PA6 NRFD
+PA7 _DATA IN
+
+PB0 IEEE SELECT
+PB1 IEEE SELECT
+PB2 IEEE SELECT
+PB4 LED
+PB5 REMOVE
+PB6 CHANGE
+PB7 FEED
+
+PC0 _DN
+PC1 _UP
+PC7 COLOR SENSOR SW
+
+PD0 X MOTOR COM A
+PD1 X MOTOR COM B
+PD2 X MOTOR COM C
+PD3 X MOTOR COM D
+PD4 Y MOTOR COM A
+PD5 Y MOTOR COM B
+PD6 Y MOTOR COM C
+PD7 Y MOTOR COM D
+*/
+
+#include "vic1520.h"
+
+
+
+//**************************************************************************
+// MACROS / CONSTANTS
+//**************************************************************************
+
+#define M6500_1_TAG "u1"
+
+
+
+//**************************************************************************
+// DEVICE DEFINITIONS
+//**************************************************************************
+
+const device_type VIC1520 = &device_creator<vic1520_t>;
+
+
+//-------------------------------------------------
+// ROM( vic1520 )
+//-------------------------------------------------
+
+ROM_START( vic1520 )
+ ROM_REGION( 0x800, M6500_1_TAG, 0 )
+ ROM_SYSTEM_BIOS( 0, "r01", "325340-01" )
+ ROMX_LOAD( "325340-01.u1", 0x000, 0x800, CRC(3757da6f) SHA1(8ab43603f74b0f269bbe890d1939a9ae31307eb1), ROM_BIOS(1) )
+ ROM_SYSTEM_BIOS( 1, "r03", "325340-03" )
+ ROMX_LOAD( "325340-03.u1", 0x000, 0x800, CRC(f72ea2b6) SHA1(74c15b2cc1f7632bffa37439609cbdb50b82ea92), ROM_BIOS(2) )
+ROM_END
+
+
+//-------------------------------------------------
+// rom_region - device-specific ROM region
+//-------------------------------------------------
+
+const rom_entry *vic1520_t::device_rom_region() const
+{
+ return ROM_NAME( vic1520 );
+}
+
+
+//-------------------------------------------------
+// ADDRESS_MAP( vic1520_mem )
+//-------------------------------------------------
+
+static ADDRESS_MAP_START( vic1520_mem, AS_PROGRAM, 8, vic1520_t )
+ ADDRESS_MAP_GLOBAL_MASK(0xfff)
+ AM_RANGE(0x000, 0x03f) AM_RAM
+ AM_RANGE(0x800, 0xfff) AM_ROM AM_REGION(M6500_1_TAG, 0)
+ADDRESS_MAP_END
+
+
+//-------------------------------------------------
+// MACHINE_DRIVER( vic1520 )
+//-------------------------------------------------
+
+static MACHINE_CONFIG_FRAGMENT( vic1520 )
+ MCFG_CPU_ADD(M6500_1_TAG, M6502, XTAL_2MHz) // M6500/1
+ MCFG_CPU_PROGRAM_MAP(vic1520_mem)
+MACHINE_CONFIG_END
+
+
+//-------------------------------------------------
+// machine_config_additions - device-specific
+// machine configurations
+//-------------------------------------------------
+
+machine_config_constructor vic1520_t::device_mconfig_additions() const
+{
+ return MACHINE_CONFIG_NAME( vic1520 );
+}
+
+
+//-------------------------------------------------
+// INPUT_PORTS( vic1520 )
+//-------------------------------------------------
+
+static INPUT_PORTS_START( vic1520 )
+INPUT_PORTS_END
+
+
+//-------------------------------------------------
+// input_ports - device-specific input ports
+//-------------------------------------------------
+
+ioport_constructor vic1520_t::device_input_ports() const
+{
+ return INPUT_PORTS_NAME( vic1520 );
+}
+
+
+
+//**************************************************************************
+// LIVE DEVICE
+//**************************************************************************
+
+//-------------------------------------------------
+// vic1520_t - constructor
+//-------------------------------------------------
+
+vic1520_t::vic1520_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
+ device_t(mconfig, VIC1520, "VIC-1520", tag, owner, clock, "vic1520", __FILE__),
+ device_cbm_iec_interface(mconfig, *this)
+{
+}
+
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void vic1520_t::device_start()
+{
+}
+
+
+//-------------------------------------------------
+// device_reset - device-specific reset
+//-------------------------------------------------
+
+void vic1520_t::device_reset()
+{
+}
+
+
+//-------------------------------------------------
+// cbm_iec_atn -
+//-------------------------------------------------
+
+void vic1520_t::cbm_iec_atn(int state)
+{
+}
+
+
+//-------------------------------------------------
+// cbm_iec_data -
+//-------------------------------------------------
+
+void vic1520_t::cbm_iec_data(int state)
+{
+}
+
+
+//-------------------------------------------------
+// cbm_iec_reset -
+//-------------------------------------------------
+
+void vic1520_t::cbm_iec_reset(int state)
+{
+ if (!state)
+ {
+ device_reset();
+ }
+}
diff --git a/src/devices/bus/cbmiec/vic1520.h b/src/devices/bus/cbmiec/vic1520.h
new file mode 100644
index 00000000000..4169164d0ae
--- /dev/null
+++ b/src/devices/bus/cbmiec/vic1520.h
@@ -0,0 +1,55 @@
+// license:BSD-3-Clause
+// copyright-holders:Curt Coder
+/**********************************************************************
+
+ Commodore VIC-1520 Plotter emulation
+
+**********************************************************************/
+
+#pragma once
+
+#ifndef __VIC1520__
+#define __VIC1520__
+
+#include "emu.h"
+#include "cbmiec.h"
+#include "cpu/m6502/m6502.h"
+
+
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+// ======================> vic1520_t
+
+class vic1520_t : public device_t,
+ public device_cbm_iec_interface
+{
+public:
+ // construction/destruction
+ vic1520_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ // optional information overrides
+ virtual const rom_entry *device_rom_region() const;
+ virtual machine_config_constructor device_mconfig_additions() const;
+ virtual ioport_constructor device_input_ports() const;
+
+protected:
+ // device-level overrides
+ virtual void device_start();
+ virtual void device_reset();
+
+ // device_cbm_iec_interface overrides
+ void cbm_iec_atn(int state);
+ void cbm_iec_data(int state);
+ void cbm_iec_reset(int state);
+};
+
+
+// device type definition
+extern const device_type VIC1520;
+
+
+
+#endif
diff --git a/src/emu/bus/centronics/comxpl80.c b/src/devices/bus/centronics/comxpl80.c
index 6c3fa83a8d7..6c3fa83a8d7 100644
--- a/src/emu/bus/centronics/comxpl80.c
+++ b/src/devices/bus/centronics/comxpl80.c
diff --git a/src/emu/bus/centronics/comxpl80.h b/src/devices/bus/centronics/comxpl80.h
index 4a943459c09..4a943459c09 100644
--- a/src/emu/bus/centronics/comxpl80.h
+++ b/src/devices/bus/centronics/comxpl80.h
diff --git a/src/emu/bus/centronics/covox.c b/src/devices/bus/centronics/covox.c
index 6cf0f6c02e9..6cf0f6c02e9 100644
--- a/src/emu/bus/centronics/covox.c
+++ b/src/devices/bus/centronics/covox.c
diff --git a/src/emu/bus/centronics/covox.h b/src/devices/bus/centronics/covox.h
index c4d3d3ea94a..c4d3d3ea94a 100644
--- a/src/emu/bus/centronics/covox.h
+++ b/src/devices/bus/centronics/covox.h
diff --git a/src/emu/bus/centronics/ctronics.c b/src/devices/bus/centronics/ctronics.c
index c27affa41ea..89850abaf17 100644
--- a/src/emu/bus/centronics/ctronics.c
+++ b/src/devices/bus/centronics/ctronics.c
@@ -117,6 +117,7 @@ device_centronics_peripheral_interface::~device_centronics_peripheral_interface(
#include "epson_ex800.h"
#include "epson_lx800.h"
#include "epson_lx810l.h"
+#include "nec_p72.h"
#include "printer.h"
#include "covox.h"
@@ -126,6 +127,7 @@ SLOT_INTERFACE_START(centronics_devices)
SLOT_INTERFACE("lx800", EPSON_LX800)
SLOT_INTERFACE("lx810l", EPSON_LX810L)
SLOT_INTERFACE("ap2000", EPSON_AP2000)
+ SLOT_INTERFACE("p72", NEC_P72)
SLOT_INTERFACE("printer", CENTRONICS_PRINTER)
SLOT_INTERFACE("covox", CENTRONICS_COVOX)
SLOT_INTERFACE("covox_stereo", CENTRONICS_COVOX_STEREO)
diff --git a/src/emu/bus/centronics/ctronics.h b/src/devices/bus/centronics/ctronics.h
index 1235179fdf6..1235179fdf6 100644
--- a/src/emu/bus/centronics/ctronics.h
+++ b/src/devices/bus/centronics/ctronics.h
diff --git a/src/emu/bus/centronics/digiblst.c b/src/devices/bus/centronics/digiblst.c
index 9fdbfd5c279..9fdbfd5c279 100644
--- a/src/emu/bus/centronics/digiblst.c
+++ b/src/devices/bus/centronics/digiblst.c
diff --git a/src/emu/bus/centronics/digiblst.h b/src/devices/bus/centronics/digiblst.h
index 340e5cd0f4c..340e5cd0f4c 100644
--- a/src/emu/bus/centronics/digiblst.h
+++ b/src/devices/bus/centronics/digiblst.h
diff --git a/src/emu/bus/centronics/dsjoy.c b/src/devices/bus/centronics/dsjoy.c
index de9b1138ec8..de9b1138ec8 100644
--- a/src/emu/bus/centronics/dsjoy.c
+++ b/src/devices/bus/centronics/dsjoy.c
diff --git a/src/emu/bus/centronics/dsjoy.h b/src/devices/bus/centronics/dsjoy.h
index a6eec3668ad..a6eec3668ad 100644
--- a/src/emu/bus/centronics/dsjoy.h
+++ b/src/devices/bus/centronics/dsjoy.h
diff --git a/src/emu/bus/centronics/epson_ex800.c b/src/devices/bus/centronics/epson_ex800.c
index 9555284c711..9555284c711 100644
--- a/src/emu/bus/centronics/epson_ex800.c
+++ b/src/devices/bus/centronics/epson_ex800.c
diff --git a/src/emu/bus/centronics/epson_ex800.h b/src/devices/bus/centronics/epson_ex800.h
index 274eac50bf0..274eac50bf0 100644
--- a/src/emu/bus/centronics/epson_ex800.h
+++ b/src/devices/bus/centronics/epson_ex800.h
diff --git a/src/emu/bus/centronics/epson_lx800.c b/src/devices/bus/centronics/epson_lx800.c
index cfcffb7329c..cfcffb7329c 100644
--- a/src/emu/bus/centronics/epson_lx800.c
+++ b/src/devices/bus/centronics/epson_lx800.c
diff --git a/src/emu/bus/centronics/epson_lx800.h b/src/devices/bus/centronics/epson_lx800.h
index 591d75cbcf3..591d75cbcf3 100644
--- a/src/emu/bus/centronics/epson_lx800.h
+++ b/src/devices/bus/centronics/epson_lx800.h
diff --git a/src/emu/bus/centronics/epson_lx810l.c b/src/devices/bus/centronics/epson_lx810l.c
index eed6401875f..167ec22488e 100644
--- a/src/emu/bus/centronics/epson_lx810l.c
+++ b/src/devices/bus/centronics/epson_lx810l.c
@@ -2,7 +2,7 @@
// copyright-holders:Ramiro Polla, Felipe Sanches
/*
* Epson LX-810L dot matrix printer emulation
-
+ *
* IC list:
* uPD7810HG (cpu)
* E05A30 (gate array)
@@ -12,9 +12,7 @@
* uPC494C (pulse width modulation control)
*
* Devices boot and enter main input loop. Data is received through the
- * centronics bus and printed as expected. The actual paper output is
- * still not implemented, though. Look at the output from the fire signal
- * (epson_lx810l_t::co0_w()) to see what's actually being printed.
+ * centronics bus and printed as expected in a separate screen.
*
* It is possible to run the printers' self test with this procedure:
* - Turn on device;
@@ -22,12 +20,9 @@
* - Reset device;
* - Toggle Line Feed button again;
* - Press Online button (press 'O');
- * - Press Online button again;
*
- * The printer's carriage will seek home, it will pull in paper for a while,
- * and it will start printing some test data. The Online LED will blink at
- * each line. Look at the output from the fire signal to see what's actually
- * being printed (epson_lx810l_t::co0_w()).
+ * The printer's carriage will seek home and it will start printing
+ * some test data. The Online LED will blink at each line.
*/
#include "epson_lx810l.h"
@@ -139,9 +134,17 @@ static MACHINE_CONFIG_FRAGMENT( epson_lx810l )
MCFG_DEFAULT_LAYOUT(layout_lx800)
+ /* video hardware (simulates paper) */
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(60)
+ 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)
+
/* audio hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
- MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
+ MCFG_DAC_ADD("dac")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
/* gate array */
@@ -160,19 +163,12 @@ static MACHINE_CONFIG_FRAGMENT( epson_lx810l )
MCFG_EEPROM_SERIAL_93C06_ADD("eeprom")
/* steppers */
- //should this have MCFG_STEPPER_MAX_STEPS(200*2) ? code shows 200 steps...
MCFG_STEPPER_ADD("pf_stepper")
MCFG_STEPPER_REEL_TYPE(NOT_A_REEL)
- MCFG_STEPPER_START_INDEX(16)
- MCFG_STEPPER_END_INDEX(24)
- MCFG_STEPPER_INDEX_PATTERN(0x00)
- MCFG_STEPPER_INIT_PHASE(0)
+ MCFG_STEPPER_INIT_PHASE(4)
MCFG_STEPPER_ADD("cr_stepper")
MCFG_STEPPER_REEL_TYPE(NOT_A_REEL)
- MCFG_STEPPER_START_INDEX(16)
- MCFG_STEPPER_END_INDEX(24)
- MCFG_STEPPER_INDEX_PATTERN(0x00)
MCFG_STEPPER_INIT_PHASE(2)
MACHINE_CONFIG_END
@@ -296,14 +292,15 @@ epson_lx810l_t::epson_lx810l_t(const machine_config &mconfig, const char *tag, d
m_pf_stepper(*this, "pf_stepper"),
m_cr_stepper(*this, "cr_stepper"),
m_eeprom(*this, "eeprom"),
- m_speaker(*this, "speaker"),
+ m_dac(*this, "dac"),
m_e05a30(*this, "e05a30"),
+ m_screen(*this, "screen"),
m_93c06_clk(0),
m_93c06_cs(0),
m_printhead(0),
- m_pf_pos_abs(200),
- m_cr_pos_abs(200),
- m_real_cr_pos(200),
+ 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)
{
@@ -316,14 +313,15 @@ epson_lx810l_t::epson_lx810l_t(const machine_config &mconfig, device_type type,
m_pf_stepper(*this, "pf_stepper"),
m_cr_stepper(*this, "cr_stepper"),
m_eeprom(*this, "eeprom"),
- m_speaker(*this, "speaker"),
+ m_dac(*this, "dac"),
m_e05a30(*this, "e05a30"),
+ m_screen(*this, "screen"),
m_93c06_clk(0),
m_93c06_cs(0),
m_printhead(0),
- m_pf_pos_abs(200),
- m_cr_pos_abs(200),
- m_real_cr_pos(200),
+ 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)
{
@@ -343,6 +341,8 @@ epson_ap2000_t::epson_ap2000_t(const machine_config &mconfig, const char *tag, d
void epson_lx810l_t::device_start()
{
+ machine().first_screen()->register_screen_bitmap(m_bitmap);
+ m_bitmap.fill(0xffffff); /* Start with a clean white piece of paper */
}
@@ -352,7 +352,7 @@ void epson_lx810l_t::device_start()
void epson_lx810l_t::device_reset()
{
- m_speaker->level_w(0);
+ m_dac->write_unsigned8(0);
}
@@ -517,8 +517,14 @@ WRITE16_MEMBER( epson_lx810l_t::printhead )
WRITE8_MEMBER( epson_lx810l_t::pf_stepper )
{
- m_pf_stepper->update(data);
- m_pf_pos_abs = 200 - m_pf_stepper->get_absolute_position();
+ int changed = m_pf_stepper->update(data);
+ m_pf_pos_abs = -m_pf_stepper->get_absolute_position();
+
+ /* clear last line of paper */
+ if (changed > 0) {
+ void *line = m_bitmap.raw_pixptr(bitmap_line(9), 0);
+ memset(line, 0xff, m_bitmap.width() * 4);
+ }
LX810LLOG("%s: %s(%02x); abs %d\n", machine().describe_context(), __func__, data, m_pf_pos_abs);
}
@@ -528,7 +534,7 @@ WRITE8_MEMBER( epson_lx810l_t::cr_stepper )
int m_cr_pos_abs_prev = m_cr_pos_abs;
m_cr_stepper->update(data);
- m_cr_pos_abs = 200 - m_cr_stepper->get_absolute_position();
+ m_cr_pos_abs = -m_cr_stepper->get_absolute_position();
if (m_cr_pos_abs > m_cr_pos_abs_prev) {
/* going right */
@@ -552,13 +558,27 @@ WRITE_LINE_MEMBER( epson_lx810l_t::e05a30_ready )
/***************************************************************************
+ Video hardware (simulates paper)
+***************************************************************************/
+
+UINT32 epson_lx810l_t::screen_update_lx810l(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
+{
+ int scrolly = -bitmap_line(9);
+ copyscrollbitmap(bitmap, m_bitmap, 0, NULL, 1, &scrolly, cliprect);
+
+ /* draw "printhead" */
+ bitmap.plot_box(m_real_cr_pos + CR_OFFSET - 10, PAPER_HEIGHT - 36, 20, 36, 0x888888);
+
+ return 0;
+}
+
+
+/***************************************************************************
Extended Timer Output
***************************************************************************/
WRITE_LINE_MEMBER( epson_lx810l_t::co0_w )
{
- /* TODO Draw the dots on the paper using this information. */
-
/* Printhead is being fired on !state. */
if (!state) {
/* The firmware expects a 300 microseconds delay between the fire
@@ -572,13 +592,19 @@ WRITE_LINE_MEMBER( epson_lx810l_t::co0_w )
* lines which are being printed in different directions is
* noticeably off in the 20+ years old printer used for testing =).
*/
- LX810LLOG("FIRE0 %d %d %04x\n", m_pf_pos_abs, m_real_cr_pos, m_printhead);
+ if (m_real_cr_pos < m_bitmap.width()) {
+ for (int i = 0; i < 9; i++) {
+ unsigned int y = bitmap_line(i);
+ if ((m_printhead & (1<<(8-i))) != 0)
+ m_bitmap.pix32(y, m_real_cr_pos + CR_OFFSET) = 0x000000;
+ }
+ }
}
}
WRITE_LINE_MEMBER( epson_lx810l_t::co1_w )
{
- m_speaker->level_w(state);
+ m_dac->write_unsigned8(0 - !state);
}
diff --git a/src/emu/bus/centronics/epson_lx810l.h b/src/devices/bus/centronics/epson_lx810l.h
index 71bcc68db6a..4d1b54f0c63 100644
--- a/src/emu/bus/centronics/epson_lx810l.h
+++ b/src/devices/bus/centronics/epson_lx810l.h
@@ -16,9 +16,19 @@
#include "machine/e05a30.h"
#include "machine/eepromser.h"
#include "machine/steppers.h"
-#include "sound/speaker.h"
+#include "sound/dac.h"
+/* The printer starts printing at x offset 44 and stops printing at x
+ * offset 1009, giving a total of 965 printable pixels. Supposedly, the
+ * border at the far right would be at x offset 1053. I've chosen the
+ * width for the paper as 1024, since it's a nicer number than 1053, so
+ * an offset must be used to centralize the pixels.
+ */
+#define CR_OFFSET (-14)
+#define PAPER_WIDTH 1024
+#define PAPER_HEIGHT 576
+
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
@@ -91,6 +101,11 @@ public:
/* Panel buttons */
DECLARE_INPUT_CHANGED_MEMBER(online_sw);
+ /* Video hardware (simulates paper) */
+ UINT32 screen_update_lx810l(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+#define uabs(x) ((x) > 0 ? (x) : -(x))
+ unsigned int bitmap_line(int i) { return ((uabs(m_pf_pos_abs) / 6) + i) % m_bitmap.height(); }
+
protected:
// device-level overrides
virtual void device_start();
@@ -102,8 +117,9 @@ private:
required_device<stepper_device> m_pf_stepper;
required_device<stepper_device> m_cr_stepper;
required_device<eeprom_serial_93cxx_device> m_eeprom;
- required_device<speaker_sound_device> m_speaker;
+ required_device<dac_device> m_dac;
required_device<e05a30_device> m_e05a30;
+ required_device<screen_device> m_screen;
int m_93c06_clk;
int m_93c06_cs;
@@ -114,6 +130,7 @@ private:
int m_real_cr_steps;
int m_real_cr_dir; /* 1 is going right, -1 is going left */
UINT8 m_fakemem;
+ bitmap_rgb32 m_bitmap;
enum {
TIMER_CR
diff --git a/src/devices/bus/centronics/nec_p72.c b/src/devices/bus/centronics/nec_p72.c
new file mode 100644
index 00000000000..8ef53e54513
--- /dev/null
+++ b/src/devices/bus/centronics/nec_p72.c
@@ -0,0 +1,94 @@
+// license:BSD-3-Clause
+// copyright-holders:Ramiro Polla
+
+#include "nec_p72.h"
+
+
+//**************************************************************************
+// DEVICE DEFINITIONS
+//**************************************************************************
+
+const device_type NEC_P72 = &device_creator<nec_p72_t>;
+
+
+//-------------------------------------------------
+// ROM( p72 )
+//-------------------------------------------------
+
+ROM_START( p72 )
+ ROM_REGION(0x100000, "maincpu", 0)
+ ROM_LOAD("p72.2c", 0x000000, 0x100000, CRC(2bc6846f) SHA1(10430f1d3b73ad413d77053515d9d53831a1341b))
+ROM_END
+
+
+//-------------------------------------------------
+// rom_region - device-specific ROM region
+//-------------------------------------------------
+
+const rom_entry *nec_p72_t::device_rom_region() const
+{
+ return ROM_NAME( p72 );
+}
+
+
+//-------------------------------------------------
+// ADDRESS_MAP( p72_mem )
+//-------------------------------------------------
+
+static ADDRESS_MAP_START( p72_mem, AS_PROGRAM, 8, nec_p72_t )
+ AM_RANGE(0x000000, 0x0fffff) AM_ROM /* 1Mbit firmware */
+ AM_RANGE(0x100000, 0x1fffff) AM_RAM /* 1Mbit external RAM */ /* TODO might be 2x1Mbit */
+ADDRESS_MAP_END
+
+
+//-------------------------------------------------
+// MACHINE_DRIVER( nec_p72 )
+//-------------------------------------------------
+
+static MACHINE_CONFIG_FRAGMENT( nec_p72 )
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", V33, XTAL_16MHz/2) /* TODO it's actually a V40 */
+ MCFG_CPU_PROGRAM_MAP(p72_mem)
+
+MACHINE_CONFIG_END
+
+//-------------------------------------------------
+// machine_config_additions - device-specific
+// machine configurations
+//-------------------------------------------------
+
+machine_config_constructor nec_p72_t::device_mconfig_additions() const
+{
+ return MACHINE_CONFIG_NAME( nec_p72 );
+}
+
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void nec_p72_t::device_start()
+{
+}
+
+//**************************************************************************
+// LIVE DEVICE
+//**************************************************************************
+
+//-------------------------------------------------
+// nec_p72_t - constructor
+//-------------------------------------------------
+
+nec_p72_t::nec_p72_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 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_t::nec_p72_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source) :
+ device_t(mconfig, type, name, tag, owner, clock, shortname, __FILE__),
+ 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
new file mode 100644
index 00000000000..07335577ed4
--- /dev/null
+++ b/src/devices/bus/centronics/nec_p72.h
@@ -0,0 +1,45 @@
+// license:BSD-3-Clause
+// copyright-holders:Ramiro Polla
+
+#pragma once
+
+#ifndef __NEC_P72__
+#define __NEC_P72__
+
+#include "emu.h"
+#include "ctronics.h"
+#include "cpu/nec/nec.h"
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+// ======================> nec_p72_t
+
+class nec_p72_t : 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 clock);
+ nec_p72_t(const machine_config &mconfig, device_type type,
+ const char *name, const char *tag, device_t *owner,
+ UINT32 clock, const char *shortname, const char *source);
+
+ // optional information overrides
+ virtual const rom_entry *device_rom_region() const;
+ virtual machine_config_constructor device_mconfig_additions() const;
+
+protected:
+ // device-level overrides
+ virtual void device_start();
+
+private:
+ required_device<cpu_device> m_maincpu;
+};
+
+// device type definition
+extern const device_type NEC_P72;
+
+#endif
diff --git a/src/emu/bus/centronics/printer.c b/src/devices/bus/centronics/printer.c
index 8d338dc2cbb..8aa924f23d2 100644
--- a/src/emu/bus/centronics/printer.c
+++ b/src/devices/bus/centronics/printer.c
@@ -99,6 +99,7 @@ void centronics_printer_device::device_reset()
output_busy(m_busy);
output_fault(1);
output_ack(1);
+ output_select(1);
}
/*-------------------------------------------------
diff --git a/src/emu/bus/centronics/printer.h b/src/devices/bus/centronics/printer.h
index 7f10fd7e4c2..7f10fd7e4c2 100644
--- a/src/emu/bus/centronics/printer.h
+++ b/src/devices/bus/centronics/printer.h
diff --git a/src/emu/bus/cgenie/expansion/carts.c b/src/devices/bus/cgenie/expansion/carts.c
index f4b23a5cf9d..f4b23a5cf9d 100644
--- a/src/emu/bus/cgenie/expansion/carts.c
+++ b/src/devices/bus/cgenie/expansion/carts.c
diff --git a/src/emu/bus/cgenie/expansion/carts.h b/src/devices/bus/cgenie/expansion/carts.h
index 45bf66a4c90..45bf66a4c90 100644
--- a/src/emu/bus/cgenie/expansion/carts.h
+++ b/src/devices/bus/cgenie/expansion/carts.h
diff --git a/src/emu/bus/cgenie/expansion/expansion.c b/src/devices/bus/cgenie/expansion/expansion.c
index 88a89a32cce..88a89a32cce 100644
--- a/src/emu/bus/cgenie/expansion/expansion.c
+++ b/src/devices/bus/cgenie/expansion/expansion.c
diff --git a/src/emu/bus/cgenie/expansion/expansion.h b/src/devices/bus/cgenie/expansion/expansion.h
index 311da3afa6d..311da3afa6d 100644
--- a/src/emu/bus/cgenie/expansion/expansion.h
+++ b/src/devices/bus/cgenie/expansion/expansion.h
diff --git a/src/emu/bus/cgenie/expansion/floppy.c b/src/devices/bus/cgenie/expansion/floppy.c
index 6941ae33ad3..6941ae33ad3 100644
--- a/src/emu/bus/cgenie/expansion/floppy.c
+++ b/src/devices/bus/cgenie/expansion/floppy.c
diff --git a/src/emu/bus/cgenie/expansion/floppy.h b/src/devices/bus/cgenie/expansion/floppy.h
index 67926ba9954..67926ba9954 100644
--- a/src/emu/bus/cgenie/expansion/floppy.h
+++ b/src/devices/bus/cgenie/expansion/floppy.h
diff --git a/src/emu/bus/cgenie/parallel/carts.c b/src/devices/bus/cgenie/parallel/carts.c
index 61a6380117f..61a6380117f 100644
--- a/src/emu/bus/cgenie/parallel/carts.c
+++ b/src/devices/bus/cgenie/parallel/carts.c
diff --git a/src/emu/bus/cgenie/parallel/carts.h b/src/devices/bus/cgenie/parallel/carts.h
index 29c092b9d0a..29c092b9d0a 100644
--- a/src/emu/bus/cgenie/parallel/carts.h
+++ b/src/devices/bus/cgenie/parallel/carts.h
diff --git a/src/emu/bus/cgenie/parallel/joystick.c b/src/devices/bus/cgenie/parallel/joystick.c
index de520ba0669..de520ba0669 100644
--- a/src/emu/bus/cgenie/parallel/joystick.c
+++ b/src/devices/bus/cgenie/parallel/joystick.c
diff --git a/src/emu/bus/cgenie/parallel/joystick.h b/src/devices/bus/cgenie/parallel/joystick.h
index 28be43b00e6..28be43b00e6 100644
--- a/src/emu/bus/cgenie/parallel/joystick.h
+++ b/src/devices/bus/cgenie/parallel/joystick.h
diff --git a/src/emu/bus/cgenie/parallel/parallel.c b/src/devices/bus/cgenie/parallel/parallel.c
index e948af9c00a..e948af9c00a 100644
--- a/src/emu/bus/cgenie/parallel/parallel.c
+++ b/src/devices/bus/cgenie/parallel/parallel.c
diff --git a/src/emu/bus/cgenie/parallel/parallel.h b/src/devices/bus/cgenie/parallel/parallel.h
index 4976e5caaf9..4976e5caaf9 100644
--- a/src/emu/bus/cgenie/parallel/parallel.h
+++ b/src/devices/bus/cgenie/parallel/parallel.h
diff --git a/src/emu/bus/cgenie/parallel/printer.c b/src/devices/bus/cgenie/parallel/printer.c
index f9963844dd5..f9963844dd5 100644
--- a/src/emu/bus/cgenie/parallel/printer.c
+++ b/src/devices/bus/cgenie/parallel/printer.c
diff --git a/src/emu/bus/cgenie/parallel/printer.h b/src/devices/bus/cgenie/parallel/printer.h
index 52479c73d5c..52479c73d5c 100644
--- a/src/emu/bus/cgenie/parallel/printer.h
+++ b/src/devices/bus/cgenie/parallel/printer.h
diff --git a/src/emu/bus/chanf/rom.c b/src/devices/bus/chanf/rom.c
index 12beebafa4b..12beebafa4b 100644
--- a/src/emu/bus/chanf/rom.c
+++ b/src/devices/bus/chanf/rom.c
diff --git a/src/emu/bus/chanf/rom.h b/src/devices/bus/chanf/rom.h
index 5a13e38b2df..5a13e38b2df 100644
--- a/src/emu/bus/chanf/rom.h
+++ b/src/devices/bus/chanf/rom.h
diff --git a/src/emu/bus/chanf/slot.c b/src/devices/bus/chanf/slot.c
index 3bb58417a9c..3bb58417a9c 100644
--- a/src/emu/bus/chanf/slot.c
+++ b/src/devices/bus/chanf/slot.c
diff --git a/src/emu/bus/chanf/slot.h b/src/devices/bus/chanf/slot.h
index 98276b81b9f..98276b81b9f 100644
--- a/src/emu/bus/chanf/slot.h
+++ b/src/devices/bus/chanf/slot.h
diff --git a/src/emu/bus/coco/coco_232.c b/src/devices/bus/coco/coco_232.c
index a1b9c673c4b..a1b9c673c4b 100644
--- a/src/emu/bus/coco/coco_232.c
+++ b/src/devices/bus/coco/coco_232.c
diff --git a/src/emu/bus/coco/coco_232.h b/src/devices/bus/coco/coco_232.h
index 362e4928de6..362e4928de6 100644
--- a/src/emu/bus/coco/coco_232.h
+++ b/src/devices/bus/coco/coco_232.h
diff --git a/src/emu/bus/coco/coco_dwsock.c b/src/devices/bus/coco/coco_dwsock.c
index 0c8ee07bd42..0c8ee07bd42 100644
--- a/src/emu/bus/coco/coco_dwsock.c
+++ b/src/devices/bus/coco/coco_dwsock.c
diff --git a/src/emu/bus/coco/coco_dwsock.h b/src/devices/bus/coco/coco_dwsock.h
index 21b0ceb2170..21b0ceb2170 100644
--- a/src/emu/bus/coco/coco_dwsock.h
+++ b/src/devices/bus/coco/coco_dwsock.h
diff --git a/src/emu/bus/coco/coco_fdc.c b/src/devices/bus/coco/coco_fdc.c
index bf165df42f5..bf165df42f5 100644
--- a/src/emu/bus/coco/coco_fdc.c
+++ b/src/devices/bus/coco/coco_fdc.c
diff --git a/src/emu/bus/coco/coco_fdc.h b/src/devices/bus/coco/coco_fdc.h
index 8773a48bea4..8773a48bea4 100644
--- a/src/emu/bus/coco/coco_fdc.h
+++ b/src/devices/bus/coco/coco_fdc.h
diff --git a/src/emu/bus/coco/coco_multi.c b/src/devices/bus/coco/coco_multi.c
index 0e488c582d8..0e488c582d8 100644
--- a/src/emu/bus/coco/coco_multi.c
+++ b/src/devices/bus/coco/coco_multi.c
diff --git a/src/emu/bus/coco/coco_multi.h b/src/devices/bus/coco/coco_multi.h
index 6c894b6377d..6c894b6377d 100644
--- a/src/emu/bus/coco/coco_multi.h
+++ b/src/devices/bus/coco/coco_multi.h
diff --git a/src/emu/bus/coco/coco_orch90.c b/src/devices/bus/coco/coco_orch90.c
index 83f2acaee54..83f2acaee54 100644
--- a/src/emu/bus/coco/coco_orch90.c
+++ b/src/devices/bus/coco/coco_orch90.c
diff --git a/src/emu/bus/coco/coco_orch90.h b/src/devices/bus/coco/coco_orch90.h
index d96c99a911a..d96c99a911a 100644
--- a/src/emu/bus/coco/coco_orch90.h
+++ b/src/devices/bus/coco/coco_orch90.h
diff --git a/src/emu/bus/coco/coco_pak.c b/src/devices/bus/coco/coco_pak.c
index 72729f156a4..72729f156a4 100644
--- a/src/emu/bus/coco/coco_pak.c
+++ b/src/devices/bus/coco/coco_pak.c
diff --git a/src/emu/bus/coco/coco_pak.h b/src/devices/bus/coco/coco_pak.h
index 50df99ea4d5..50df99ea4d5 100644
--- a/src/emu/bus/coco/coco_pak.h
+++ b/src/devices/bus/coco/coco_pak.h
diff --git a/src/emu/bus/coco/cococart.c b/src/devices/bus/coco/cococart.c
index 11687681810..11687681810 100644
--- a/src/emu/bus/coco/cococart.c
+++ b/src/devices/bus/coco/cococart.c
diff --git a/src/emu/bus/coco/cococart.h b/src/devices/bus/coco/cococart.h
index a583935b5a2..a583935b5a2 100644
--- a/src/emu/bus/coco/cococart.h
+++ b/src/devices/bus/coco/cococart.h
diff --git a/src/emu/bus/coleco/ctrl.c b/src/devices/bus/coleco/ctrl.c
index 575276ee231..575276ee231 100644
--- a/src/emu/bus/coleco/ctrl.c
+++ b/src/devices/bus/coleco/ctrl.c
diff --git a/src/emu/bus/coleco/ctrl.h b/src/devices/bus/coleco/ctrl.h
index dc45d18c1aa..dc45d18c1aa 100644
--- a/src/emu/bus/coleco/ctrl.h
+++ b/src/devices/bus/coleco/ctrl.h
diff --git a/src/emu/bus/coleco/exp.c b/src/devices/bus/coleco/exp.c
index e8be5dfe15d..c981406017e 100644
--- a/src/emu/bus/coleco/exp.c
+++ b/src/devices/bus/coleco/exp.c
@@ -114,6 +114,15 @@ bool colecovision_cartridge_slot_device::call_softlist_load(software_list_device
void colecovision_cartridge_slot_device::get_default_card_software(std::string &result)
{
+ if (open_image_file(mconfig().options()))
+ {
+ UINT32 length = core_fsize(m_file);
+ if (length == 0x100000 || length == 0x200000)
+ {
+ software_get_default_slot(result, "xin1");
+ return;
+ }
+ }
software_get_default_slot(result, "standard");
}
@@ -138,8 +147,10 @@ UINT8 colecovision_cartridge_slot_device::bd_r(address_space &space, offs_t offs
//-------------------------------------------------
#include "std.h"
+#include "xin1.h"
SLOT_INTERFACE_START( colecovision_cartridges )
// the following need ROMs from the software list
SLOT_INTERFACE_INTERNAL("standard", COLECOVISION_STANDARD)
+ SLOT_INTERFACE_INTERNAL("xin1", COLECOVISION_XIN1)
SLOT_INTERFACE_END
diff --git a/src/emu/bus/coleco/exp.h b/src/devices/bus/coleco/exp.h
index 882bb04b659..882bb04b659 100644
--- a/src/emu/bus/coleco/exp.h
+++ b/src/devices/bus/coleco/exp.h
diff --git a/src/emu/bus/coleco/hand.c b/src/devices/bus/coleco/hand.c
index 058f06a3711..058f06a3711 100644
--- a/src/emu/bus/coleco/hand.c
+++ b/src/devices/bus/coleco/hand.c
diff --git a/src/emu/bus/coleco/hand.h b/src/devices/bus/coleco/hand.h
index d57ea3ea212..d57ea3ea212 100644
--- a/src/emu/bus/coleco/hand.h
+++ b/src/devices/bus/coleco/hand.h
diff --git a/src/emu/bus/coleco/sac.c b/src/devices/bus/coleco/sac.c
index 42ef14ca909..42ef14ca909 100644
--- a/src/emu/bus/coleco/sac.c
+++ b/src/devices/bus/coleco/sac.c
diff --git a/src/emu/bus/coleco/sac.h b/src/devices/bus/coleco/sac.h
index b4bf3b09111..b4bf3b09111 100644
--- a/src/emu/bus/coleco/sac.h
+++ b/src/devices/bus/coleco/sac.h
diff --git a/src/emu/bus/coleco/std.c b/src/devices/bus/coleco/std.c
index f66a0463eae..f66a0463eae 100644
--- a/src/emu/bus/coleco/std.c
+++ b/src/devices/bus/coleco/std.c
diff --git a/src/emu/bus/coleco/std.h b/src/devices/bus/coleco/std.h
index ee0a6e24e9a..ee0a6e24e9a 100644
--- a/src/emu/bus/coleco/std.h
+++ b/src/devices/bus/coleco/std.h
diff --git a/src/devices/bus/coleco/xin1.c b/src/devices/bus/coleco/xin1.c
new file mode 100644
index 00000000000..e46b65eeadd
--- /dev/null
+++ b/src/devices/bus/coleco/xin1.c
@@ -0,0 +1,71 @@
+// license:BSD-3-Clause
+// copyright-holders:Wilbert Pol
+/**********************************************************************
+
+ ColecoVision X-in-1 cartridge emulation
+
+**********************************************************************/
+
+#include "xin1.h"
+
+
+
+//**************************************************************************
+// DEVICE DEFINITIONS
+//**************************************************************************
+
+const device_type COLECOVISION_XIN1 = &device_creator<colecovision_xin1_cartridge_device>;
+
+
+
+//**************************************************************************
+// LIVE DEVICE
+//**************************************************************************
+
+//-------------------------------------------------
+// colecovision_xin1_cartridge_device - constructor
+//-------------------------------------------------
+
+colecovision_xin1_cartridge_device::colecovision_xin1_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
+ device_t(mconfig, COLECOVISION_XIN1, "ColecoVision X-in-1 cartridge", tag, owner, clock, "colecovision_xin1", __FILE__),
+ device_colecovision_cartridge_interface(mconfig, *this),
+ m_current_offset(0)
+{
+}
+
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void colecovision_xin1_cartridge_device::device_start()
+{
+}
+
+
+//-------------------------------------------------
+// device_reset - device-specific reset
+//-------------------------------------------------
+
+void colecovision_xin1_cartridge_device::device_reset()
+{
+ m_current_offset = m_rom_size - 0x8000;
+}
+
+
+//-------------------------------------------------
+// read - cartridge data read
+//-------------------------------------------------
+
+UINT8 colecovision_xin1_cartridge_device::bd_r(address_space &space, offs_t offset, UINT8 data, int _8000, int _a000, int _c000, int _e000)
+{
+ if (!_8000 || !_a000 || !_c000 || !_e000)
+ {
+ data = m_rom[m_current_offset + offset];
+ if (!_e000 && offset >= 0x7fc0) {
+ m_current_offset = (0x8000 * (offset - 0x7fc0)) % m_rom_size;
+ }
+ }
+
+ return data;
+}
diff --git a/src/devices/bus/coleco/xin1.h b/src/devices/bus/coleco/xin1.h
new file mode 100644
index 00000000000..79a940c646f
--- /dev/null
+++ b/src/devices/bus/coleco/xin1.h
@@ -0,0 +1,48 @@
+// license:BSD-3-Clause
+// copyright-holders:Wilbert Pol
+/**********************************************************************
+
+ ColecoVision X-in-1 cartridge emulation
+
+**********************************************************************/
+
+#pragma once
+
+#ifndef __COLECOVISION_XIN1_CARTRIDGE__
+#define __COLECOVISION_XIN1_CARTRIDGE__
+
+#include "exp.h"
+
+
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+// ======================> colecovision_xin1_cartridge_device
+
+class colecovision_xin1_cartridge_device : public device_t,
+ public device_colecovision_cartridge_interface
+{
+public:
+ // construction/destruction
+ colecovision_xin1_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+protected:
+ // device-level overrides
+ virtual void device_start();
+ virtual void device_reset();
+
+ // device_colecovision_expansion_card_interface overrides
+ virtual UINT8 bd_r(address_space &space, offs_t offset, UINT8 data, int _8000, int _a000, int _c000, int _e000);
+
+private:
+ UINT32 m_current_offset;
+};
+
+
+// device type definition
+extern const device_type COLECOVISION_XIN1;
+
+
+#endif
diff --git a/src/emu/bus/compucolor/floppy.c b/src/devices/bus/compucolor/floppy.c
index 7fa7e678dc2..7fa7e678dc2 100644
--- a/src/emu/bus/compucolor/floppy.c
+++ b/src/devices/bus/compucolor/floppy.c
diff --git a/src/emu/bus/compucolor/floppy.h b/src/devices/bus/compucolor/floppy.h
index f229e96c3a9..f229e96c3a9 100644
--- a/src/emu/bus/compucolor/floppy.h
+++ b/src/devices/bus/compucolor/floppy.h
diff --git a/src/emu/bus/comx35/clm.c b/src/devices/bus/comx35/clm.c
index b9cc57b836f..b9cc57b836f 100644
--- a/src/emu/bus/comx35/clm.c
+++ b/src/devices/bus/comx35/clm.c
diff --git a/src/emu/bus/comx35/clm.h b/src/devices/bus/comx35/clm.h
index c64e57956bd..c64e57956bd 100644
--- a/src/emu/bus/comx35/clm.h
+++ b/src/devices/bus/comx35/clm.h
diff --git a/src/emu/bus/comx35/eprom.c b/src/devices/bus/comx35/eprom.c
index 56be84b4902..56be84b4902 100644
--- a/src/emu/bus/comx35/eprom.c
+++ b/src/devices/bus/comx35/eprom.c
diff --git a/src/emu/bus/comx35/eprom.h b/src/devices/bus/comx35/eprom.h
index f3b03f42367..f3b03f42367 100644
--- a/src/emu/bus/comx35/eprom.h
+++ b/src/devices/bus/comx35/eprom.h
diff --git a/src/emu/bus/comx35/exp.c b/src/devices/bus/comx35/exp.c
index b0ff7aa77c3..b0ff7aa77c3 100644
--- a/src/emu/bus/comx35/exp.c
+++ b/src/devices/bus/comx35/exp.c
diff --git a/src/emu/bus/comx35/exp.h b/src/devices/bus/comx35/exp.h
index df4f7fffb68..df4f7fffb68 100644
--- a/src/emu/bus/comx35/exp.h
+++ b/src/devices/bus/comx35/exp.h
diff --git a/src/emu/bus/comx35/expbox.c b/src/devices/bus/comx35/expbox.c
index 7e4e9799e29..7e4e9799e29 100644
--- a/src/emu/bus/comx35/expbox.c
+++ b/src/devices/bus/comx35/expbox.c
diff --git a/src/emu/bus/comx35/expbox.h b/src/devices/bus/comx35/expbox.h
index 6863f2c1339..6863f2c1339 100644
--- a/src/emu/bus/comx35/expbox.h
+++ b/src/devices/bus/comx35/expbox.h
diff --git a/src/emu/bus/comx35/fdc.c b/src/devices/bus/comx35/fdc.c
index 0c83d5bed29..0c83d5bed29 100644
--- a/src/emu/bus/comx35/fdc.c
+++ b/src/devices/bus/comx35/fdc.c
diff --git a/src/emu/bus/comx35/fdc.h b/src/devices/bus/comx35/fdc.h
index ce1a71c46a2..ce1a71c46a2 100644
--- a/src/emu/bus/comx35/fdc.h
+++ b/src/devices/bus/comx35/fdc.h
diff --git a/src/emu/bus/comx35/joycard.c b/src/devices/bus/comx35/joycard.c
index 2408693f1b8..2408693f1b8 100644
--- a/src/emu/bus/comx35/joycard.c
+++ b/src/devices/bus/comx35/joycard.c
diff --git a/src/emu/bus/comx35/joycard.h b/src/devices/bus/comx35/joycard.h
index be7bd63e528..be7bd63e528 100644
--- a/src/emu/bus/comx35/joycard.h
+++ b/src/devices/bus/comx35/joycard.h
diff --git a/src/emu/bus/comx35/printer.c b/src/devices/bus/comx35/printer.c
index 2f36fffd9bd..2f36fffd9bd 100644
--- a/src/emu/bus/comx35/printer.c
+++ b/src/devices/bus/comx35/printer.c
diff --git a/src/emu/bus/comx35/printer.h b/src/devices/bus/comx35/printer.h
index f67997b19ea..f67997b19ea 100644
--- a/src/emu/bus/comx35/printer.h
+++ b/src/devices/bus/comx35/printer.h
diff --git a/src/emu/bus/comx35/ram.c b/src/devices/bus/comx35/ram.c
index 0a2caafa1da..0a2caafa1da 100644
--- a/src/emu/bus/comx35/ram.c
+++ b/src/devices/bus/comx35/ram.c
diff --git a/src/emu/bus/comx35/ram.h b/src/devices/bus/comx35/ram.h
index 3618d6e2b4b..3618d6e2b4b 100644
--- a/src/emu/bus/comx35/ram.h
+++ b/src/devices/bus/comx35/ram.h
diff --git a/src/emu/bus/comx35/thermal.c b/src/devices/bus/comx35/thermal.c
index e74b62978d6..e74b62978d6 100644
--- a/src/emu/bus/comx35/thermal.c
+++ b/src/devices/bus/comx35/thermal.c
diff --git a/src/emu/bus/comx35/thermal.h b/src/devices/bus/comx35/thermal.h
index 8314039301c..8314039301c 100644
--- a/src/emu/bus/comx35/thermal.h
+++ b/src/devices/bus/comx35/thermal.h
diff --git a/src/emu/bus/cpc/amdrum.c b/src/devices/bus/cpc/amdrum.c
index 8bf9fa8ad34..8bf9fa8ad34 100644
--- a/src/emu/bus/cpc/amdrum.c
+++ b/src/devices/bus/cpc/amdrum.c
diff --git a/src/emu/bus/cpc/amdrum.h b/src/devices/bus/cpc/amdrum.h
index 5040e7d4457..5040e7d4457 100644
--- a/src/emu/bus/cpc/amdrum.h
+++ b/src/devices/bus/cpc/amdrum.h
diff --git a/src/emu/bus/cpc/brunword4.c b/src/devices/bus/cpc/brunword4.c
index cd3ab420349..cd3ab420349 100644
--- a/src/emu/bus/cpc/brunword4.c
+++ b/src/devices/bus/cpc/brunword4.c
diff --git a/src/emu/bus/cpc/brunword4.h b/src/devices/bus/cpc/brunword4.h
index 8b66afaefae..8b66afaefae 100644
--- a/src/emu/bus/cpc/brunword4.h
+++ b/src/devices/bus/cpc/brunword4.h
diff --git a/src/emu/bus/cpc/cpc_pds.c b/src/devices/bus/cpc/cpc_pds.c
index b1453d9338b..b1453d9338b 100644
--- a/src/emu/bus/cpc/cpc_pds.c
+++ b/src/devices/bus/cpc/cpc_pds.c
diff --git a/src/emu/bus/cpc/cpc_pds.h b/src/devices/bus/cpc/cpc_pds.h
index 12100e8acbe..12100e8acbe 100644
--- a/src/emu/bus/cpc/cpc_pds.h
+++ b/src/devices/bus/cpc/cpc_pds.h
diff --git a/src/emu/bus/cpc/cpc_rom.c b/src/devices/bus/cpc/cpc_rom.c
index 36ccb82e867..36ccb82e867 100644
--- a/src/emu/bus/cpc/cpc_rom.c
+++ b/src/devices/bus/cpc/cpc_rom.c
diff --git a/src/emu/bus/cpc/cpc_rom.h b/src/devices/bus/cpc/cpc_rom.h
index 06908b14539..06908b14539 100644
--- a/src/emu/bus/cpc/cpc_rom.h
+++ b/src/devices/bus/cpc/cpc_rom.h
diff --git a/src/emu/bus/cpc/cpc_rs232.c b/src/devices/bus/cpc/cpc_rs232.c
index 8dba63da31c..8dba63da31c 100644
--- a/src/emu/bus/cpc/cpc_rs232.c
+++ b/src/devices/bus/cpc/cpc_rs232.c
diff --git a/src/emu/bus/cpc/cpc_rs232.h b/src/devices/bus/cpc/cpc_rs232.h
index b11960c01f9..b11960c01f9 100644
--- a/src/emu/bus/cpc/cpc_rs232.h
+++ b/src/devices/bus/cpc/cpc_rs232.h
diff --git a/src/emu/bus/cpc/cpc_ssa1.c b/src/devices/bus/cpc/cpc_ssa1.c
index 0c638b5cf37..0c638b5cf37 100644
--- a/src/emu/bus/cpc/cpc_ssa1.c
+++ b/src/devices/bus/cpc/cpc_ssa1.c
diff --git a/src/emu/bus/cpc/cpc_ssa1.h b/src/devices/bus/cpc/cpc_ssa1.h
index 32c311f5b65..32c311f5b65 100644
--- a/src/emu/bus/cpc/cpc_ssa1.h
+++ b/src/devices/bus/cpc/cpc_ssa1.h
diff --git a/src/emu/bus/cpc/cpcexp.c b/src/devices/bus/cpc/cpcexp.c
index a6d8d77db16..a6d8d77db16 100644
--- a/src/emu/bus/cpc/cpcexp.c
+++ b/src/devices/bus/cpc/cpcexp.c
diff --git a/src/emu/bus/cpc/cpcexp.h b/src/devices/bus/cpc/cpcexp.h
index 57ebba1e063..1a61dc2b409 100644
--- a/src/emu/bus/cpc/cpcexp.h
+++ b/src/devices/bus/cpc/cpcexp.h
@@ -31,6 +31,16 @@
* RAMDIS 45 46 CURSOR
* L.PEN 47 48 _EXP
* GND 49 50 CLOCK
+ *
+ * Aleste 520EX expansion port is 62-pin. Same as the CPC above, except that pin 40 is not connected, plus the following:
+ *
+ * MAP14 A26 B26 MAP15
+ * MAP16 A27 B27 MAP17
+ * MAP18 A28 B28 MAPBLK
+ * _INTA A29 B29 _DISP
+ * Agnd A30 B30 _CPU
+ * Aucc A31 B31 HIGH
+ *
*/
#pragma once
diff --git a/src/emu/bus/cpc/ddi1.c b/src/devices/bus/cpc/ddi1.c
index b2440021310..2f9eef38a77 100644
--- a/src/emu/bus/cpc/ddi1.c
+++ b/src/devices/bus/cpc/ddi1.c
@@ -23,7 +23,7 @@ SLOT_INTERFACE_END
//-------------------------------------------------
ROM_START( cpc_ddi1 )
- ROM_REGION( 0x4000, "exp_rom", 0 )
+ ROM_REGION( 0x4000, "disc_rom", 0 )
ROM_LOAD("cpcados.rom", 0x0000, 0x4000, CRC(1fe22ecd) SHA1(39102c8e9cb55fcc0b9b62098780ed4a3cb6a4bb))
ROM_END
@@ -80,6 +80,7 @@ void cpc_ddi1_device::device_start()
space.install_write_handler(0xfa7e,0xfa7f,0,0,write8_delegate(FUNC(cpc_ddi1_device::motor_w),this));
space.install_readwrite_handler(0xfb7e,0xfb7f,0,0,read8_delegate(FUNC(cpc_ddi1_device::fdc_r),this),write8_delegate(FUNC(cpc_ddi1_device::fdc_w),this));
+ space.install_write_handler(0xdf00,0xdfff,0,0,write8_delegate(FUNC(cpc_ddi1_device::rombank_w),this));
}
//-------------------------------------------------
@@ -88,6 +89,7 @@ void cpc_ddi1_device::device_start()
void cpc_ddi1_device::device_reset()
{
+ m_rom_active = false;
}
WRITE8_MEMBER(cpc_ddi1_device::motor_w)
@@ -125,7 +127,7 @@ WRITE8_MEMBER(cpc_ddi1_device::fdc_w)
READ8_MEMBER(cpc_ddi1_device::fdc_r)
{
UINT8 data = 0xff;
-
+
switch(offset)
{
case 0x00:
@@ -138,3 +140,21 @@ READ8_MEMBER(cpc_ddi1_device::fdc_r)
return data;
}
+WRITE8_MEMBER(cpc_ddi1_device::rombank_w)
+{
+ if(data == 0x07)
+ m_rom_active = true;
+ else
+ m_rom_active = false;
+ m_slot->rom_select(space,0,data);
+}
+
+void cpc_ddi1_device::set_mapping()
+{
+ if(m_rom_active)
+ {
+ UINT8* ROM = memregion("disc_rom")->base();
+ membank(":bank7")->set_base(ROM);
+ membank(":bank8")->set_base(ROM+0x2000);
+ }
+}
diff --git a/src/emu/bus/cpc/ddi1.h b/src/devices/bus/cpc/ddi1.h
index 8f813e8c09a..fe78153c543 100644
--- a/src/emu/bus/cpc/ddi1.h
+++ b/src/devices/bus/cpc/ddi1.h
@@ -25,10 +25,12 @@ public:
// optional information overrides
virtual const rom_entry *device_rom_region() const;
virtual machine_config_constructor device_mconfig_additions() const;
+ virtual void set_mapping();
DECLARE_WRITE8_MEMBER(motor_w);
DECLARE_WRITE8_MEMBER(fdc_w);
DECLARE_READ8_MEMBER(fdc_r);
+ DECLARE_WRITE8_MEMBER(rombank_w);
protected:
// device-level overrides
virtual void device_start();
@@ -39,6 +41,8 @@ private:
required_device<upd765_family_device> m_fdc;
required_device<floppy_connector> m_connector;
+
+ bool m_rom_active;
};
// device type definition
diff --git a/src/emu/bus/cpc/hd20.c b/src/devices/bus/cpc/hd20.c
index a6cb2772719..a6cb2772719 100644
--- a/src/emu/bus/cpc/hd20.c
+++ b/src/devices/bus/cpc/hd20.c
diff --git a/src/emu/bus/cpc/hd20.h b/src/devices/bus/cpc/hd20.h
index 0926e6bd5be..0926e6bd5be 100644
--- a/src/emu/bus/cpc/hd20.h
+++ b/src/devices/bus/cpc/hd20.h
diff --git a/src/devices/bus/cpc/magicsound.c b/src/devices/bus/cpc/magicsound.c
new file mode 100644
index 00000000000..16e4f7d51b8
--- /dev/null
+++ b/src/devices/bus/cpc/magicsound.c
@@ -0,0 +1,189 @@
+// license:BSD-3-Clause
+// copyright-holders:Barry Rodewald
+/*
+ * magicsound.c
+ *
+ * Magic Sound Board for the Aleste 520EX
+ *
+ */
+
+#include "emu.h"
+#include "magicsound.h"
+#include "includes/amstrad.h"
+
+
+//**************************************************************************
+// DEVICE DEFINITIONS
+//**************************************************************************
+
+const device_type AL_MAGICSOUND = &device_creator<al_magicsound_device>;
+
+
+static MACHINE_CONFIG_FRAGMENT( al_magicsound )
+ MCFG_DEVICE_ADD( "dmac", AM9517A, XTAL_4MHz ) // CLK from expansion port
+ // According to the schematics, the TC pin (EOP on western chips) is connected to NMI on the expansion port.
+ // NMIs seem to occur too quickly when this is active, so either EOP is not triggered at the correct time, or
+ // the K1810WT37 is different to the i8237/AM9517A
+ //MCFG_I8237_OUT_EOP_CB(DEVWRITELINE("^", cpc_expansion_slot_device, nmi_w)) // MCFG_DEVCB_INVERT
+ MCFG_I8237_OUT_HREQ_CB(DEVWRITELINE("dmac", am9517a_device, hack_w))
+ MCFG_I8237_IN_MEMR_CB(READ8(al_magicsound_device,dma_read_byte))
+ MCFG_I8237_OUT_IOW_0_CB(WRITE8(al_magicsound_device,dma_write_byte))
+ MCFG_I8237_OUT_IOW_1_CB(WRITE8(al_magicsound_device,dma_write_byte))
+ MCFG_I8237_OUT_IOW_2_CB(WRITE8(al_magicsound_device,dma_write_byte))
+ MCFG_I8237_OUT_IOW_3_CB(WRITE8(al_magicsound_device,dma_write_byte))
+ MCFG_I8237_OUT_DACK_0_CB(WRITELINE(al_magicsound_device, dack0_w))
+ MCFG_I8237_OUT_DACK_1_CB(WRITELINE(al_magicsound_device, dack1_w))
+ MCFG_I8237_OUT_DACK_2_CB(WRITELINE(al_magicsound_device, dack2_w))
+ MCFG_I8237_OUT_DACK_3_CB(WRITELINE(al_magicsound_device, dack3_w))
+
+ // Timing does not seem to be correct.
+ // According to the schematics, the clock is from the clock pin on the expansion port (4MHz), and
+ // passes through an inverter to each CLK pin on both timers. This seems to be too fast.
+ // Timer outputs to SAM0/1/2/3 are sample clocks for each sound channel, D/A0 is the low bit of the channel select.
+ MCFG_DEVICE_ADD("timer1", PIT8254, 0)
+ MCFG_PIT8253_CLK0(XTAL_4MHz)
+ MCFG_PIT8253_OUT0_HANDLER(WRITELINE(al_magicsound_device,sam0_w))
+ MCFG_PIT8253_CLK1(XTAL_4MHz)
+ MCFG_PIT8253_OUT1_HANDLER(WRITELINE(al_magicsound_device,sam1_w))
+ MCFG_PIT8253_CLK2(XTAL_4MHz)
+ MCFG_PIT8253_OUT2_HANDLER(WRITELINE(al_magicsound_device,sam2_w))
+
+ MCFG_DEVICE_ADD("timer2", PIT8254, 0)
+ MCFG_PIT8253_CLK0(XTAL_4MHz)
+ MCFG_PIT8253_OUT0_HANDLER(WRITELINE(al_magicsound_device,sam3_w))
+ MCFG_PIT8253_CLK1(XTAL_4MHz)
+ MCFG_PIT8253_OUT1_HANDLER(WRITELINE(al_magicsound_device,da0_w))
+ MCFG_PIT8253_CLK2(XTAL_4MHz)
+
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_DAC_ADD("dac1")
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
+ // no pass-through(?)
+MACHINE_CONFIG_END
+
+machine_config_constructor al_magicsound_device::device_mconfig_additions() const
+{
+ return MACHINE_CONFIG_NAME( al_magicsound );
+}
+
+//**************************************************************************
+// LIVE DEVICE
+//**************************************************************************
+
+al_magicsound_device::al_magicsound_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
+ device_t(mconfig, AL_MAGICSOUND, "Magic Sound Board", tag, owner, clock, "al_magicsound", __FILE__),
+ device_cpc_expansion_card_interface(mconfig, *this),
+ m_dac1(*this,"dac1"),
+ m_dmac(*this,"dmac"),
+ m_timer1(*this,"timer1"),
+ m_timer2(*this,"timer2")
+{
+}
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void al_magicsound_device::device_start()
+{
+ device_t* cpu = machine().device("maincpu");
+ address_space& space = cpu->memory().space(AS_IO);
+ m_slot = dynamic_cast<cpc_expansion_slot_device *>(owner());
+
+ space.install_readwrite_handler(0xf8d0,0xf8df,0,0,read8_delegate(FUNC(al_magicsound_device::dmac_r),this),write8_delegate(FUNC(al_magicsound_device::dmac_w),this));
+ space.install_write_handler(0xf9d0,0xf9df,0,0,write8_delegate(FUNC(al_magicsound_device::timer_w),this));
+ space.install_write_handler(0xfad0,0xfadf,0,0,write8_delegate(FUNC(al_magicsound_device::volume_w),this));
+ space.install_write_handler(0xfbd0,0xfbdf,0,0,write8_delegate(FUNC(al_magicsound_device::mapper_w),this));
+
+ m_ramptr = machine().device<ram_device>(":" RAM_TAG);
+
+ for(int x=0;x<4;x++)
+ {
+ save_item(NAME(m_output[x]),x);
+ }
+}
+
+//-------------------------------------------------
+// device_reset - device-specific reset
+//-------------------------------------------------
+
+void al_magicsound_device::device_reset()
+{
+ m_current_channel = -1;
+ m_current_output = 0;
+ set_timer_gate(false);
+}
+
+READ8_MEMBER(al_magicsound_device::dmac_r)
+{
+ return m_dmac->read(space,offset);
+}
+
+WRITE8_MEMBER(al_magicsound_device::dmac_w)
+{
+ m_dmac->write(space,offset,data);
+}
+
+WRITE8_MEMBER(al_magicsound_device::timer_w)
+{
+ // can both PITs be selected at the same time?
+ if(offset & 0x08)
+ m_timer1->write(space,offset & 0x03,data);
+ if(offset & 0x04)
+ m_timer2->write(space,offset & 0x03,data);
+}
+
+WRITE8_MEMBER(al_magicsound_device::volume_w)
+{
+ m_volume[offset & 0x03] = data & 0x3f;
+}
+
+WRITE8_MEMBER(al_magicsound_device::mapper_w)
+{
+ UINT8 channel = (offset & 0x0c) >> 2;
+ UINT8 page = offset & 0x03;
+ m_page[channel][page] = (~(data) & 0x3f) * 0x4000;
+ set_timer_gate(true);
+}
+
+WRITE_LINE_MEMBER(al_magicsound_device::da0_w)
+{
+ m_dac1->write_unsigned8(m_output[m_current_output++]);
+ if(m_current_output > 3)
+ m_current_output = 0;
+}
+
+WRITE_LINE_MEMBER(al_magicsound_device::dack0_w) { m_dack[0] = state; }
+WRITE_LINE_MEMBER(al_magicsound_device::dack1_w) { m_dack[1] = state; }
+WRITE_LINE_MEMBER(al_magicsound_device::dack2_w) { m_dack[2] = state; }
+WRITE_LINE_MEMBER(al_magicsound_device::dack3_w) { m_dack[3] = state; }
+
+WRITE_LINE_MEMBER(al_magicsound_device::sam0_w) { m_current_channel = 0; if(m_dack[0] && state) m_dmac->dreq0_w(1); }
+WRITE_LINE_MEMBER(al_magicsound_device::sam1_w) { m_current_channel = 1; if(m_dack[1] && state) m_dmac->dreq1_w(1); }
+WRITE_LINE_MEMBER(al_magicsound_device::sam2_w) { m_current_channel = 2; if(m_dack[2] && state) m_dmac->dreq2_w(1); }
+WRITE_LINE_MEMBER(al_magicsound_device::sam3_w) { m_current_channel = 3; if(m_dack[3] && state) m_dmac->dreq3_w(1); }
+
+READ8_MEMBER(al_magicsound_device::dma_read_byte)
+{
+ UINT8 ret = 0xff;
+ UINT8 page = (offset & 0xc000) >> 14;
+
+ if(m_current_channel != -1)
+ ret = m_ramptr->read(m_page[m_current_channel][page] + (offset & 0x3fff));
+ return ret;
+}
+
+WRITE8_MEMBER(al_magicsound_device::dma_write_byte)
+{
+ m_output[m_current_channel] = data;
+}
+
+void al_magicsound_device::set_timer_gate(bool state)
+{
+ m_timer1->write_gate0(state);
+ m_timer1->write_gate1(state);
+ m_timer1->write_gate2(state);
+ m_timer2->write_gate0(state);
+ m_timer2->write_gate1(state);
+ m_timer2->write_gate2(state);
+}
diff --git a/src/devices/bus/cpc/magicsound.h b/src/devices/bus/cpc/magicsound.h
new file mode 100644
index 00000000000..588ead99b40
--- /dev/null
+++ b/src/devices/bus/cpc/magicsound.h
@@ -0,0 +1,91 @@
+// license:BSD-3-Clause
+// copyright-holders:Barry Rodewald
+/*
+ * magicsound.h
+ *
+ * Magic Sound Board for the Aleste 520EX
+ *
+ * DMA-based 4-channel sound board
+ *
+ * 1x K1810WT37 DMA controller (i8237/AM9517A)
+ * 2x K1810WT54 programmable timers (i8254)
+ * 1x K1118PA1 DAC (MC10318)
+ *
+ * I/O Ports:
+ * FxDx: selects the board
+ * F8Dx: DMA controller (R/w)
+ * F9Dx: PIT timers (A2 active for channels 0-2, A3 active for channels 3-5) (W/O)
+ * FADx: Volume control (A1-A0 = channel) (W/O, 6-bit)
+ * FBDx: Mapper (A1-A0 = mapper page number, A3-A2 = channel, D5-D0 = inverted page number) (W/O)
+ *
+ * Further info available here: http://cpcwiki.eu/index.php/Magic_Sound_Board
+ *
+ */
+
+#ifndef MAGICSOUND_H_
+#define MAGICSOUND_H_
+
+#include "emu.h"
+#include "cpcexp.h"
+#include "sound/dmadac.h"
+#include "sound/dac.h"
+#include "machine/am9517a.h"
+#include "machine/pit8253.h"
+#include "machine/ram.h"
+
+class al_magicsound_device : public device_t,
+ public device_cpc_expansion_card_interface
+{
+public:
+ // construction/destruction
+ al_magicsound_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ // optional information overrides
+ virtual machine_config_constructor device_mconfig_additions() const;
+
+ DECLARE_READ8_MEMBER(dmac_r);
+ DECLARE_WRITE8_MEMBER(dmac_w);
+ DECLARE_WRITE8_MEMBER(timer_w);
+ DECLARE_WRITE8_MEMBER(volume_w);
+ DECLARE_WRITE8_MEMBER(mapper_w);
+ DECLARE_WRITE_LINE_MEMBER(da0_w);
+ DECLARE_READ8_MEMBER(dma_read_byte);
+ DECLARE_WRITE8_MEMBER(dma_write_byte);
+ DECLARE_WRITE_LINE_MEMBER(dack0_w);
+ DECLARE_WRITE_LINE_MEMBER(dack1_w);
+ DECLARE_WRITE_LINE_MEMBER(dack2_w);
+ DECLARE_WRITE_LINE_MEMBER(dack3_w);
+ DECLARE_WRITE_LINE_MEMBER(sam0_w);
+ DECLARE_WRITE_LINE_MEMBER(sam1_w);
+ DECLARE_WRITE_LINE_MEMBER(sam2_w);
+ DECLARE_WRITE_LINE_MEMBER(sam3_w);
+
+protected:
+ // device-level overrides
+ virtual void device_start();
+ virtual void device_reset();
+
+private:
+ cpc_expansion_slot_device *m_slot;
+
+ required_device<dac_device> m_dac1;
+ required_device<am9517a_device> m_dmac;
+ required_device<pit8254_device> m_timer1;
+ required_device<pit8254_device> m_timer2;
+
+ void set_timer_gate(bool state);
+
+ UINT8 m_volume[4];
+ UINT32 m_page[4][4];
+ UINT8 m_output[4];
+ bool m_dack[4];
+ INT8 m_current_channel;
+ ram_device* m_ramptr;
+ UINT8 m_current_output;
+};
+
+// device type definition
+extern const device_type AL_MAGICSOUND;
+
+
+#endif /* MAGICSOUND_H_ */
diff --git a/src/emu/bus/cpc/mface2.c b/src/devices/bus/cpc/mface2.c
index 122f97fe46a..122f97fe46a 100644
--- a/src/emu/bus/cpc/mface2.c
+++ b/src/devices/bus/cpc/mface2.c
diff --git a/src/emu/bus/cpc/mface2.h b/src/devices/bus/cpc/mface2.h
index 56eb017b208..56eb017b208 100644
--- a/src/emu/bus/cpc/mface2.h
+++ b/src/devices/bus/cpc/mface2.h
diff --git a/src/emu/bus/cpc/playcity.c b/src/devices/bus/cpc/playcity.c
index 9686ce952f7..9686ce952f7 100644
--- a/src/emu/bus/cpc/playcity.c
+++ b/src/devices/bus/cpc/playcity.c
diff --git a/src/emu/bus/cpc/playcity.h b/src/devices/bus/cpc/playcity.h
index d7abaa08c33..d7abaa08c33 100644
--- a/src/emu/bus/cpc/playcity.h
+++ b/src/devices/bus/cpc/playcity.h
diff --git a/src/emu/bus/cpc/smartwatch.c b/src/devices/bus/cpc/smartwatch.c
index 75cc3bb8a89..75cc3bb8a89 100644
--- a/src/emu/bus/cpc/smartwatch.c
+++ b/src/devices/bus/cpc/smartwatch.c
diff --git a/src/emu/bus/cpc/smartwatch.h b/src/devices/bus/cpc/smartwatch.h
index 3a4655f4304..3a4655f4304 100644
--- a/src/emu/bus/cpc/smartwatch.h
+++ b/src/devices/bus/cpc/smartwatch.h
diff --git a/src/emu/bus/cpc/symbfac2.c b/src/devices/bus/cpc/symbfac2.c
index 7fd8e756d5c..7fd8e756d5c 100644
--- a/src/emu/bus/cpc/symbfac2.c
+++ b/src/devices/bus/cpc/symbfac2.c
diff --git a/src/emu/bus/cpc/symbfac2.h b/src/devices/bus/cpc/symbfac2.h
index 2392dbf7bd0..2392dbf7bd0 100644
--- a/src/emu/bus/cpc/symbfac2.h
+++ b/src/devices/bus/cpc/symbfac2.h
diff --git a/src/emu/bus/crvision/rom.c b/src/devices/bus/crvision/rom.c
index 875a2b40fbc..875a2b40fbc 100644
--- a/src/emu/bus/crvision/rom.c
+++ b/src/devices/bus/crvision/rom.c
diff --git a/src/emu/bus/crvision/rom.h b/src/devices/bus/crvision/rom.h
index 2d8330f0d1e..2d8330f0d1e 100644
--- a/src/emu/bus/crvision/rom.h
+++ b/src/devices/bus/crvision/rom.h
diff --git a/src/emu/bus/crvision/slot.c b/src/devices/bus/crvision/slot.c
index af3bce0a016..af3bce0a016 100644
--- a/src/emu/bus/crvision/slot.c
+++ b/src/devices/bus/crvision/slot.c
diff --git a/src/emu/bus/crvision/slot.h b/src/devices/bus/crvision/slot.h
index 006f1522d40..006f1522d40 100644
--- a/src/emu/bus/crvision/slot.h
+++ b/src/devices/bus/crvision/slot.h
diff --git a/src/emu/bus/dmv/dmvbus.c b/src/devices/bus/dmv/dmvbus.c
index 7e1a45779c9..7e1a45779c9 100644
--- a/src/emu/bus/dmv/dmvbus.c
+++ b/src/devices/bus/dmv/dmvbus.c
diff --git a/src/emu/bus/dmv/dmvbus.h b/src/devices/bus/dmv/dmvbus.h
index 7043423dc1a..7043423dc1a 100644
--- a/src/emu/bus/dmv/dmvbus.h
+++ b/src/devices/bus/dmv/dmvbus.h
diff --git a/src/emu/bus/dmv/k210.c b/src/devices/bus/dmv/k210.c
index 0b0e86fb27a..0b0e86fb27a 100644
--- a/src/emu/bus/dmv/k210.c
+++ b/src/devices/bus/dmv/k210.c
diff --git a/src/emu/bus/dmv/k210.h b/src/devices/bus/dmv/k210.h
index 705e1afe978..705e1afe978 100644
--- a/src/emu/bus/dmv/k210.h
+++ b/src/devices/bus/dmv/k210.h
diff --git a/src/emu/bus/dmv/k220.c b/src/devices/bus/dmv/k220.c
index 432f0359716..de6092f3d71 100644
--- a/src/emu/bus/dmv/k220.c
+++ b/src/devices/bus/dmv/k220.c
@@ -63,8 +63,13 @@
ROM_START( dmv_k220 )
ROM_REGION(0x4000, "rom", 0)
- ROM_LOAD( "ncr_32563_diagnostics_rom.bin", 0x0000, 0x2000, CRC(57445768) SHA1(59b615437444789bf10ba6768cd3c43a69c7ed7b))
- ROM_LOAD( "ncr_32564_diagnostics_rom.bin", 0x2000, 0x2000, CRC(172e0c60) SHA1(eedae538636009a5b86fc78e50a03c72eeb0e73b))
+ ROM_SYSTEM_BIOS(0, "v4", "V 04.00")
+ ROMX_LOAD("34014.u17", 0x0000, 0x2000, CRC(552c2247) SHA1(7babd264ead2e04afe624c3035f211279c203f41), ROM_BIOS(1))
+ ROMX_LOAD("34015.u18", 0x2000, 0x2000, CRC(d714f2d8) SHA1(1a7095401d63951ba9189bc3e384c26996113815), ROM_BIOS(1))
+
+ ROM_SYSTEM_BIOS(1, "v2", "V 02.00")
+ ROMX_LOAD("32563.u17", 0x0000, 0x2000, CRC(57445768) SHA1(59b615437444789bf10ba6768cd3c43a69c7ed7b), ROM_BIOS(2))
+ ROMX_LOAD("32564.u18", 0x2000, 0x2000, CRC(172e0c60) SHA1(eedae538636009a5b86fc78e50a03c72eeb0e73b), ROM_BIOS(2))
ROM_REGION(0x0080, "prom", 0)
ROM_LOAD( "u11.bin", 0x0000, 0x0080, NO_DUMP) // used for address decoding
@@ -199,7 +204,7 @@ bool dmv_k220_device::read(offs_t offset, UINT8 &data)
}
else if ((m_portc & 0x02) && offset >= 0xf000 && offset < 0xf800)
{
- data = m_ram->base()[offset];
+ data = m_ram->base()[offset & 0x7ff];
return true;
}
@@ -219,7 +224,7 @@ bool dmv_k220_device::write(offs_t offset, UINT8 data)
}
else if ((m_portc & 0x02) && offset >= 0xf000 && offset < 0xf800)
{
- m_ram->base()[offset] = data;
+ m_ram->base()[offset & 0x7ff] = data;
return true;
}
diff --git a/src/emu/bus/dmv/k220.h b/src/devices/bus/dmv/k220.h
index 0465d3de706..0465d3de706 100644
--- a/src/emu/bus/dmv/k220.h
+++ b/src/devices/bus/dmv/k220.h
diff --git a/src/emu/bus/dmv/k230.c b/src/devices/bus/dmv/k230.c
index 4ce6a97f807..4ce6a97f807 100644
--- a/src/emu/bus/dmv/k230.c
+++ b/src/devices/bus/dmv/k230.c
diff --git a/src/emu/bus/dmv/k230.h b/src/devices/bus/dmv/k230.h
index 6c658f2d2c3..6c658f2d2c3 100644
--- a/src/emu/bus/dmv/k230.h
+++ b/src/devices/bus/dmv/k230.h
diff --git a/src/emu/bus/dmv/k233.c b/src/devices/bus/dmv/k233.c
index 859b8b7f8f8..859b8b7f8f8 100644
--- a/src/emu/bus/dmv/k233.c
+++ b/src/devices/bus/dmv/k233.c
diff --git a/src/emu/bus/dmv/k233.h b/src/devices/bus/dmv/k233.h
index 5aeb5b6c782..5aeb5b6c782 100644
--- a/src/emu/bus/dmv/k233.h
+++ b/src/devices/bus/dmv/k233.h
diff --git a/src/emu/bus/dmv/k801.c b/src/devices/bus/dmv/k801.c
index b091d117088..b091d117088 100644
--- a/src/emu/bus/dmv/k801.c
+++ b/src/devices/bus/dmv/k801.c
diff --git a/src/emu/bus/dmv/k801.h b/src/devices/bus/dmv/k801.h
index 9ad8489a4c2..9ad8489a4c2 100644
--- a/src/emu/bus/dmv/k801.h
+++ b/src/devices/bus/dmv/k801.h
diff --git a/src/emu/bus/dmv/k803.c b/src/devices/bus/dmv/k803.c
index 7f748cc4806..7f748cc4806 100644
--- a/src/emu/bus/dmv/k803.c
+++ b/src/devices/bus/dmv/k803.c
diff --git a/src/emu/bus/dmv/k803.h b/src/devices/bus/dmv/k803.h
index 51fd9eaaa9c..51fd9eaaa9c 100644
--- a/src/emu/bus/dmv/k803.h
+++ b/src/devices/bus/dmv/k803.h
diff --git a/src/emu/bus/dmv/k806.c b/src/devices/bus/dmv/k806.c
index 612940f01c1..612940f01c1 100644
--- a/src/emu/bus/dmv/k806.c
+++ b/src/devices/bus/dmv/k806.c
diff --git a/src/emu/bus/dmv/k806.h b/src/devices/bus/dmv/k806.h
index a1cf7c7b145..a1cf7c7b145 100644
--- a/src/emu/bus/dmv/k806.h
+++ b/src/devices/bus/dmv/k806.h
diff --git a/src/emu/bus/dmv/ram.c b/src/devices/bus/dmv/ram.c
index 32039302b14..32039302b14 100644
--- a/src/emu/bus/dmv/ram.c
+++ b/src/devices/bus/dmv/ram.c
diff --git a/src/emu/bus/dmv/ram.h b/src/devices/bus/dmv/ram.h
index ac841932532..ac841932532 100644
--- a/src/emu/bus/dmv/ram.h
+++ b/src/devices/bus/dmv/ram.h
diff --git a/src/emu/bus/ecbbus/ecbbus.c b/src/devices/bus/ecbbus/ecbbus.c
index b3c5fa54ab1..b3c5fa54ab1 100644
--- a/src/emu/bus/ecbbus/ecbbus.c
+++ b/src/devices/bus/ecbbus/ecbbus.c
diff --git a/src/emu/bus/ecbbus/ecbbus.h b/src/devices/bus/ecbbus/ecbbus.h
index c04a0245596..c04a0245596 100644
--- a/src/emu/bus/ecbbus/ecbbus.h
+++ b/src/devices/bus/ecbbus/ecbbus.h
diff --git a/src/emu/bus/ecbbus/grip.c b/src/devices/bus/ecbbus/grip.c
index f2db25938d8..f2db25938d8 100644
--- a/src/emu/bus/ecbbus/grip.c
+++ b/src/devices/bus/ecbbus/grip.c
diff --git a/src/emu/bus/ecbbus/grip.h b/src/devices/bus/ecbbus/grip.h
index 9c4f098d2b9..9c4f098d2b9 100644
--- a/src/emu/bus/ecbbus/grip.h
+++ b/src/devices/bus/ecbbus/grip.h
diff --git a/src/emu/bus/econet/e01.c b/src/devices/bus/econet/e01.c
index bcb9b4b6bae..bcb9b4b6bae 100644
--- a/src/emu/bus/econet/e01.c
+++ b/src/devices/bus/econet/e01.c
diff --git a/src/emu/bus/econet/e01.h b/src/devices/bus/econet/e01.h
index dc8708ef78d..dc8708ef78d 100644
--- a/src/emu/bus/econet/e01.h
+++ b/src/devices/bus/econet/e01.h
diff --git a/src/emu/bus/econet/econet.c b/src/devices/bus/econet/econet.c
index 94b0bb77786..94b0bb77786 100644
--- a/src/emu/bus/econet/econet.c
+++ b/src/devices/bus/econet/econet.c
diff --git a/src/emu/bus/econet/econet.h b/src/devices/bus/econet/econet.h
index e072c7bb43b..e072c7bb43b 100644
--- a/src/emu/bus/econet/econet.h
+++ b/src/devices/bus/econet/econet.h
diff --git a/src/emu/bus/ep64/exdos.c b/src/devices/bus/ep64/exdos.c
index f0813ff8d7e..f0813ff8d7e 100644
--- a/src/emu/bus/ep64/exdos.c
+++ b/src/devices/bus/ep64/exdos.c
diff --git a/src/emu/bus/ep64/exdos.h b/src/devices/bus/ep64/exdos.h
index 2ac9f5bca85..2ac9f5bca85 100644
--- a/src/emu/bus/ep64/exdos.h
+++ b/src/devices/bus/ep64/exdos.h
diff --git a/src/emu/bus/ep64/exp.c b/src/devices/bus/ep64/exp.c
index 55747d8b0ea..55747d8b0ea 100644
--- a/src/emu/bus/ep64/exp.c
+++ b/src/devices/bus/ep64/exp.c
diff --git a/src/emu/bus/ep64/exp.h b/src/devices/bus/ep64/exp.h
index cbd7b4394a1..cbd7b4394a1 100644
--- a/src/emu/bus/ep64/exp.h
+++ b/src/devices/bus/ep64/exp.h
diff --git a/src/emu/bus/epson_sio/epson_sio.c b/src/devices/bus/epson_sio/epson_sio.c
index b281d076f82..b281d076f82 100644
--- a/src/emu/bus/epson_sio/epson_sio.c
+++ b/src/devices/bus/epson_sio/epson_sio.c
diff --git a/src/emu/bus/epson_sio/epson_sio.h b/src/devices/bus/epson_sio/epson_sio.h
index 828d64a3eae..828d64a3eae 100644
--- a/src/emu/bus/epson_sio/epson_sio.h
+++ b/src/devices/bus/epson_sio/epson_sio.h
diff --git a/src/emu/bus/epson_sio/pf10.c b/src/devices/bus/epson_sio/pf10.c
index e3b6651e2b9..e3b6651e2b9 100644
--- a/src/emu/bus/epson_sio/pf10.c
+++ b/src/devices/bus/epson_sio/pf10.c
diff --git a/src/emu/bus/epson_sio/pf10.h b/src/devices/bus/epson_sio/pf10.h
index dd937ff0526..dd937ff0526 100644
--- a/src/emu/bus/epson_sio/pf10.h
+++ b/src/devices/bus/epson_sio/pf10.h
diff --git a/src/emu/bus/epson_sio/tf20.c b/src/devices/bus/epson_sio/tf20.c
index 084ca861be0..084ca861be0 100644
--- a/src/emu/bus/epson_sio/tf20.c
+++ b/src/devices/bus/epson_sio/tf20.c
diff --git a/src/emu/bus/epson_sio/tf20.h b/src/devices/bus/epson_sio/tf20.h
index a51848ffc38..a51848ffc38 100644
--- a/src/emu/bus/epson_sio/tf20.h
+++ b/src/devices/bus/epson_sio/tf20.h
diff --git a/src/emu/bus/gameboy/gb_slot.c b/src/devices/bus/gameboy/gb_slot.c
index 922dc91cce2..922dc91cce2 100644
--- a/src/emu/bus/gameboy/gb_slot.c
+++ b/src/devices/bus/gameboy/gb_slot.c
diff --git a/src/emu/bus/gameboy/gb_slot.h b/src/devices/bus/gameboy/gb_slot.h
index 711037a0da8..711037a0da8 100644
--- a/src/emu/bus/gameboy/gb_slot.h
+++ b/src/devices/bus/gameboy/gb_slot.h
diff --git a/src/emu/bus/gameboy/mbc.c b/src/devices/bus/gameboy/mbc.c
index 4c0a81459b6..4c0a81459b6 100644
--- a/src/emu/bus/gameboy/mbc.c
+++ b/src/devices/bus/gameboy/mbc.c
diff --git a/src/emu/bus/gameboy/mbc.h b/src/devices/bus/gameboy/mbc.h
index 3ad27d2cdee..3ad27d2cdee 100644
--- a/src/emu/bus/gameboy/mbc.h
+++ b/src/devices/bus/gameboy/mbc.h
diff --git a/src/emu/bus/gameboy/rom.c b/src/devices/bus/gameboy/rom.c
index 2be759adf1b..2be759adf1b 100644
--- a/src/emu/bus/gameboy/rom.c
+++ b/src/devices/bus/gameboy/rom.c
diff --git a/src/emu/bus/gameboy/rom.h b/src/devices/bus/gameboy/rom.h
index 3bd27a362c8..3bd27a362c8 100644
--- a/src/emu/bus/gameboy/rom.h
+++ b/src/devices/bus/gameboy/rom.h
diff --git a/src/emu/bus/gamegear/ggext.c b/src/devices/bus/gamegear/ggext.c
index 7419ec1d45a..7419ec1d45a 100644
--- a/src/emu/bus/gamegear/ggext.c
+++ b/src/devices/bus/gamegear/ggext.c
diff --git a/src/emu/bus/gamegear/ggext.h b/src/devices/bus/gamegear/ggext.h
index a3110dea711..a3110dea711 100644
--- a/src/emu/bus/gamegear/ggext.h
+++ b/src/devices/bus/gamegear/ggext.h
diff --git a/src/emu/bus/gamegear/smsctrladp.c b/src/devices/bus/gamegear/smsctrladp.c
index 54b9139b433..54b9139b433 100644
--- a/src/emu/bus/gamegear/smsctrladp.c
+++ b/src/devices/bus/gamegear/smsctrladp.c
diff --git a/src/emu/bus/gamegear/smsctrladp.h b/src/devices/bus/gamegear/smsctrladp.h
index 76c629f4dd8..76c629f4dd8 100644
--- a/src/emu/bus/gamegear/smsctrladp.h
+++ b/src/devices/bus/gamegear/smsctrladp.h
diff --git a/src/emu/bus/gba/gba_slot.c b/src/devices/bus/gba/gba_slot.c
index 8844acbccb5..8844acbccb5 100644
--- a/src/emu/bus/gba/gba_slot.c
+++ b/src/devices/bus/gba/gba_slot.c
diff --git a/src/emu/bus/gba/gba_slot.h b/src/devices/bus/gba/gba_slot.h
index 05181d29d4c..05181d29d4c 100644
--- a/src/emu/bus/gba/gba_slot.h
+++ b/src/devices/bus/gba/gba_slot.h
diff --git a/src/emu/bus/gba/rom.c b/src/devices/bus/gba/rom.c
index 3b7f775e7cf..3b7f775e7cf 100644
--- a/src/emu/bus/gba/rom.c
+++ b/src/devices/bus/gba/rom.c
diff --git a/src/emu/bus/gba/rom.h b/src/devices/bus/gba/rom.h
index e008c318b7c..e008c318b7c 100644
--- a/src/emu/bus/gba/rom.h
+++ b/src/devices/bus/gba/rom.h
diff --git a/src/emu/bus/generic/carts.c b/src/devices/bus/generic/carts.c
index 23a079289c9..23a079289c9 100644
--- a/src/emu/bus/generic/carts.c
+++ b/src/devices/bus/generic/carts.c
diff --git a/src/emu/bus/generic/carts.h b/src/devices/bus/generic/carts.h
index fdd354314ed..fdd354314ed 100644
--- a/src/emu/bus/generic/carts.h
+++ b/src/devices/bus/generic/carts.h
diff --git a/src/emu/bus/generic/ram.c b/src/devices/bus/generic/ram.c
index 3767ddae724..3767ddae724 100644
--- a/src/emu/bus/generic/ram.c
+++ b/src/devices/bus/generic/ram.c
diff --git a/src/emu/bus/generic/ram.h b/src/devices/bus/generic/ram.h
index ac3cfdbb113..ac3cfdbb113 100644
--- a/src/emu/bus/generic/ram.h
+++ b/src/devices/bus/generic/ram.h
diff --git a/src/emu/bus/generic/rom.c b/src/devices/bus/generic/rom.c
index a816040e229..a816040e229 100644
--- a/src/emu/bus/generic/rom.c
+++ b/src/devices/bus/generic/rom.c
diff --git a/src/emu/bus/generic/rom.h b/src/devices/bus/generic/rom.h
index f6c9da14341..f6c9da14341 100644
--- a/src/emu/bus/generic/rom.h
+++ b/src/devices/bus/generic/rom.h
diff --git a/src/emu/bus/generic/slot.c b/src/devices/bus/generic/slot.c
index f88740cc048..f88740cc048 100644
--- a/src/emu/bus/generic/slot.c
+++ b/src/devices/bus/generic/slot.c
diff --git a/src/emu/bus/generic/slot.h b/src/devices/bus/generic/slot.h
index 7c8725e89a7..7c8725e89a7 100644
--- a/src/emu/bus/generic/slot.h
+++ b/src/devices/bus/generic/slot.h
diff --git a/src/emu/bus/ieee488/c2031.c b/src/devices/bus/ieee488/c2031.c
index b26c27c2ff6..b26c27c2ff6 100644
--- a/src/emu/bus/ieee488/c2031.c
+++ b/src/devices/bus/ieee488/c2031.c
diff --git a/src/emu/bus/ieee488/c2031.h b/src/devices/bus/ieee488/c2031.h
index 8423a8c1c95..8423a8c1c95 100644
--- a/src/emu/bus/ieee488/c2031.h
+++ b/src/devices/bus/ieee488/c2031.h
diff --git a/src/emu/bus/ieee488/c2040.c b/src/devices/bus/ieee488/c2040.c
index 8ce2856e371..8ce2856e371 100644
--- a/src/emu/bus/ieee488/c2040.c
+++ b/src/devices/bus/ieee488/c2040.c
diff --git a/src/emu/bus/ieee488/c2040.h b/src/devices/bus/ieee488/c2040.h
index 1618a46599f..1618a46599f 100644
--- a/src/emu/bus/ieee488/c2040.h
+++ b/src/devices/bus/ieee488/c2040.h
diff --git a/src/emu/bus/ieee488/c2040fdc.c b/src/devices/bus/ieee488/c2040fdc.c
index 4dfccbde366..4dfccbde366 100644
--- a/src/emu/bus/ieee488/c2040fdc.c
+++ b/src/devices/bus/ieee488/c2040fdc.c
diff --git a/src/emu/bus/ieee488/c2040fdc.h b/src/devices/bus/ieee488/c2040fdc.h
index 178e81240a2..178e81240a2 100644
--- a/src/emu/bus/ieee488/c2040fdc.h
+++ b/src/devices/bus/ieee488/c2040fdc.h
diff --git a/src/emu/bus/ieee488/c8050.c b/src/devices/bus/ieee488/c8050.c
index e60386db689..e60386db689 100644
--- a/src/emu/bus/ieee488/c8050.c
+++ b/src/devices/bus/ieee488/c8050.c
diff --git a/src/emu/bus/ieee488/c8050.h b/src/devices/bus/ieee488/c8050.h
index 3d5904dd6cb..3d5904dd6cb 100644
--- a/src/emu/bus/ieee488/c8050.h
+++ b/src/devices/bus/ieee488/c8050.h
diff --git a/src/emu/bus/ieee488/c8050fdc.c b/src/devices/bus/ieee488/c8050fdc.c
index 02bceb80328..02bceb80328 100644
--- a/src/emu/bus/ieee488/c8050fdc.c
+++ b/src/devices/bus/ieee488/c8050fdc.c
diff --git a/src/emu/bus/ieee488/c8050fdc.h b/src/devices/bus/ieee488/c8050fdc.h
index 8228c9660d0..8228c9660d0 100644
--- a/src/emu/bus/ieee488/c8050fdc.h
+++ b/src/devices/bus/ieee488/c8050fdc.h
diff --git a/src/emu/bus/ieee488/c8280.c b/src/devices/bus/ieee488/c8280.c
index 1dd1c679c5d..1dd1c679c5d 100644
--- a/src/emu/bus/ieee488/c8280.c
+++ b/src/devices/bus/ieee488/c8280.c
diff --git a/src/emu/bus/ieee488/c8280.h b/src/devices/bus/ieee488/c8280.h
index 076edcd736c..076edcd736c 100644
--- a/src/emu/bus/ieee488/c8280.h
+++ b/src/devices/bus/ieee488/c8280.h
diff --git a/src/emu/bus/ieee488/d9060.c b/src/devices/bus/ieee488/d9060.c
index f21653efb09..f21653efb09 100644
--- a/src/emu/bus/ieee488/d9060.c
+++ b/src/devices/bus/ieee488/d9060.c
diff --git a/src/emu/bus/ieee488/d9060.h b/src/devices/bus/ieee488/d9060.h
index 7efc20006cf..7efc20006cf 100644
--- a/src/emu/bus/ieee488/d9060.h
+++ b/src/devices/bus/ieee488/d9060.h
diff --git a/src/emu/bus/ieee488/hardbox.c b/src/devices/bus/ieee488/hardbox.c
index 4a2a0c16dae..5da15513579 100644
--- a/src/emu/bus/ieee488/hardbox.c
+++ b/src/devices/bus/ieee488/hardbox.c
@@ -18,7 +18,7 @@
Start the pet8032 emulator with the HardBox attached as device 9,
with the new CHD and the utilities floppy mounted:
- $ mess pet8032 -ieee9 hardbox \
+ $ mame pet8032 -ieee9 hardbox \
-hard1 /path/to/corvus20mb.chd \
-flop1 /path/to/hardbox-utils.d80
@@ -85,7 +85,7 @@ ROM_START( hardbox )
Disassembling the ROMs showed that v2.3 and v2.4 are for Corvus Systems drives but v3.1 is
for Sunol Systems drives. Both types use the Corvus flat cable interface but there may be
some programming differences, e.g. the v3.1 firmware for Sunol does not have the park heads
- routine in the Corvus versions. MESS emulates a Corvus drive so we default to the last
+ routine in the Corvus versions. MAME emulates a Corvus drive so we default to the last
known HardBox firmware for Corvus (v2.4). */
ROM_END
diff --git a/src/emu/bus/ieee488/hardbox.h b/src/devices/bus/ieee488/hardbox.h
index 77cbd23fb07..77cbd23fb07 100644
--- a/src/emu/bus/ieee488/hardbox.h
+++ b/src/devices/bus/ieee488/hardbox.h
diff --git a/src/emu/bus/ieee488/ieee488.c b/src/devices/bus/ieee488/ieee488.c
index 16b8dda4f98..f3d61fa539a 100644
--- a/src/emu/bus/ieee488/ieee488.c
+++ b/src/devices/bus/ieee488/ieee488.c
@@ -368,6 +368,7 @@ UINT8 ieee488_device::get_data()
//-------------------------------------------------
// slot devices
+#include "bus/cbmiec/c1526.h"
#include "c2031.h"
#include "c2040.h"
#include "c8050.h"
@@ -391,4 +392,5 @@ SLOT_INTERFACE_START( cbm_ieee488_devices )
SLOT_INTERFACE("softbox", SOFTBOX)
SLOT_INTERFACE("hardbox", HARDBOX)
SLOT_INTERFACE("shark", SHARK)
+ SLOT_INTERFACE("c4023", C4023)
SLOT_INTERFACE_END
diff --git a/src/emu/bus/ieee488/ieee488.h b/src/devices/bus/ieee488/ieee488.h
index 3a6c53966f1..3a6c53966f1 100644
--- a/src/emu/bus/ieee488/ieee488.h
+++ b/src/devices/bus/ieee488/ieee488.h
diff --git a/src/emu/bus/ieee488/shark.c b/src/devices/bus/ieee488/shark.c
index 47582aa42b8..47582aa42b8 100644
--- a/src/emu/bus/ieee488/shark.c
+++ b/src/devices/bus/ieee488/shark.c
diff --git a/src/emu/bus/ieee488/shark.h b/src/devices/bus/ieee488/shark.h
index d5e2f1fe1f8..d5e2f1fe1f8 100644
--- a/src/emu/bus/ieee488/shark.h
+++ b/src/devices/bus/ieee488/shark.h
diff --git a/src/emu/bus/ieee488/softbox.c b/src/devices/bus/ieee488/softbox.c
index 7f1dfe64b9d..a42de1e5011 100644
--- a/src/emu/bus/ieee488/softbox.c
+++ b/src/devices/bus/ieee488/softbox.c
@@ -10,7 +10,7 @@
This is an emulation of the SoftBox as a PET/CBM peripheral, where
the PET is used as a terminal over IEEE-488. For the standalone
mode where an RS-232 terminal is used, and also information on
- how to set up the Corvus drive, see: src/mess/drivers/softbox.c.
+ how to set up the Corvus drive, see: src/mame/drivers/softbox.c.
*/
diff --git a/src/emu/bus/ieee488/softbox.h b/src/devices/bus/ieee488/softbox.h
index 97e729fcc8d..97e729fcc8d 100644
--- a/src/emu/bus/ieee488/softbox.h
+++ b/src/devices/bus/ieee488/softbox.h
diff --git a/src/emu/bus/imi7000/imi5000h.c b/src/devices/bus/imi7000/imi5000h.c
index ff57b942f17..ff57b942f17 100644
--- a/src/emu/bus/imi7000/imi5000h.c
+++ b/src/devices/bus/imi7000/imi5000h.c
diff --git a/src/emu/bus/imi7000/imi5000h.h b/src/devices/bus/imi7000/imi5000h.h
index 2577293ae20..2577293ae20 100644
--- a/src/emu/bus/imi7000/imi5000h.h
+++ b/src/devices/bus/imi7000/imi5000h.h
diff --git a/src/emu/bus/imi7000/imi7000.c b/src/devices/bus/imi7000/imi7000.c
index b67c980c466..b67c980c466 100644
--- a/src/emu/bus/imi7000/imi7000.c
+++ b/src/devices/bus/imi7000/imi7000.c
diff --git a/src/emu/bus/imi7000/imi7000.h b/src/devices/bus/imi7000/imi7000.h
index 257ad0c562c..257ad0c562c 100644
--- a/src/emu/bus/imi7000/imi7000.h
+++ b/src/devices/bus/imi7000/imi7000.h
diff --git a/src/emu/bus/intv/ecs.c b/src/devices/bus/intv/ecs.c
index f9d140bb62d..f9d140bb62d 100644
--- a/src/emu/bus/intv/ecs.c
+++ b/src/devices/bus/intv/ecs.c
diff --git a/src/emu/bus/intv/ecs.h b/src/devices/bus/intv/ecs.h
index 8148459fc22..8148459fc22 100644
--- a/src/emu/bus/intv/ecs.h
+++ b/src/devices/bus/intv/ecs.h
diff --git a/src/emu/bus/intv/rom.c b/src/devices/bus/intv/rom.c
index 74b5664a6fc..74b5664a6fc 100644
--- a/src/emu/bus/intv/rom.c
+++ b/src/devices/bus/intv/rom.c
diff --git a/src/emu/bus/intv/rom.h b/src/devices/bus/intv/rom.h
index 15a66e10817..15a66e10817 100644
--- a/src/emu/bus/intv/rom.h
+++ b/src/devices/bus/intv/rom.h
diff --git a/src/emu/bus/intv/slot.c b/src/devices/bus/intv/slot.c
index 6b48f976e7f..6b48f976e7f 100644
--- a/src/emu/bus/intv/slot.c
+++ b/src/devices/bus/intv/slot.c
diff --git a/src/emu/bus/intv/slot.h b/src/devices/bus/intv/slot.h
index 2b5269edb8b..2b5269edb8b 100644
--- a/src/emu/bus/intv/slot.h
+++ b/src/devices/bus/intv/slot.h
diff --git a/src/emu/bus/intv/voice.c b/src/devices/bus/intv/voice.c
index 2ec50862d0d..2ec50862d0d 100644
--- a/src/emu/bus/intv/voice.c
+++ b/src/devices/bus/intv/voice.c
diff --git a/src/emu/bus/intv/voice.h b/src/devices/bus/intv/voice.h
index 412d3de7760..412d3de7760 100644
--- a/src/emu/bus/intv/voice.h
+++ b/src/devices/bus/intv/voice.h
diff --git a/src/emu/bus/iq151/disc2.c b/src/devices/bus/iq151/disc2.c
index 795813b30bb..795813b30bb 100644
--- a/src/emu/bus/iq151/disc2.c
+++ b/src/devices/bus/iq151/disc2.c
diff --git a/src/emu/bus/iq151/disc2.h b/src/devices/bus/iq151/disc2.h
index 1f35778429a..1f35778429a 100644
--- a/src/emu/bus/iq151/disc2.h
+++ b/src/devices/bus/iq151/disc2.h
diff --git a/src/emu/bus/iq151/grafik.c b/src/devices/bus/iq151/grafik.c
index e1a9aac6254..e1a9aac6254 100644
--- a/src/emu/bus/iq151/grafik.c
+++ b/src/devices/bus/iq151/grafik.c
diff --git a/src/emu/bus/iq151/grafik.h b/src/devices/bus/iq151/grafik.h
index c93c534e72d..c93c534e72d 100644
--- a/src/emu/bus/iq151/grafik.h
+++ b/src/devices/bus/iq151/grafik.h
diff --git a/src/emu/bus/iq151/iq151.c b/src/devices/bus/iq151/iq151.c
index 842602aceb8..842602aceb8 100644
--- a/src/emu/bus/iq151/iq151.c
+++ b/src/devices/bus/iq151/iq151.c
diff --git a/src/emu/bus/iq151/iq151.h b/src/devices/bus/iq151/iq151.h
index 4b9c5db9887..4b9c5db9887 100644
--- a/src/emu/bus/iq151/iq151.h
+++ b/src/devices/bus/iq151/iq151.h
diff --git a/src/emu/bus/iq151/minigraf.c b/src/devices/bus/iq151/minigraf.c
index 1cec65a47d1..1cec65a47d1 100644
--- a/src/emu/bus/iq151/minigraf.c
+++ b/src/devices/bus/iq151/minigraf.c
diff --git a/src/emu/bus/iq151/minigraf.h b/src/devices/bus/iq151/minigraf.h
index 6226d0ffa2d..6226d0ffa2d 100644
--- a/src/emu/bus/iq151/minigraf.h
+++ b/src/devices/bus/iq151/minigraf.h
diff --git a/src/emu/bus/iq151/ms151a.c b/src/devices/bus/iq151/ms151a.c
index 67909362f8e..67909362f8e 100644
--- a/src/emu/bus/iq151/ms151a.c
+++ b/src/devices/bus/iq151/ms151a.c
diff --git a/src/emu/bus/iq151/ms151a.h b/src/devices/bus/iq151/ms151a.h
index cbba64981c5..cbba64981c5 100644
--- a/src/emu/bus/iq151/ms151a.h
+++ b/src/devices/bus/iq151/ms151a.h
diff --git a/src/emu/bus/iq151/rom.c b/src/devices/bus/iq151/rom.c
index 4505732486c..4505732486c 100644
--- a/src/emu/bus/iq151/rom.c
+++ b/src/devices/bus/iq151/rom.c
diff --git a/src/emu/bus/iq151/rom.h b/src/devices/bus/iq151/rom.h
index da1f72bcec4..da1f72bcec4 100644
--- a/src/emu/bus/iq151/rom.h
+++ b/src/devices/bus/iq151/rom.h
diff --git a/src/emu/bus/iq151/staper.c b/src/devices/bus/iq151/staper.c
index 49079c74b3c..49079c74b3c 100644
--- a/src/emu/bus/iq151/staper.c
+++ b/src/devices/bus/iq151/staper.c
diff --git a/src/emu/bus/iq151/staper.h b/src/devices/bus/iq151/staper.h
index e8aa6639d4e..e8aa6639d4e 100644
--- a/src/emu/bus/iq151/staper.h
+++ b/src/devices/bus/iq151/staper.h
diff --git a/src/emu/bus/iq151/video32.c b/src/devices/bus/iq151/video32.c
index 24ee5d1438b..24ee5d1438b 100644
--- a/src/emu/bus/iq151/video32.c
+++ b/src/devices/bus/iq151/video32.c
diff --git a/src/emu/bus/iq151/video32.h b/src/devices/bus/iq151/video32.h
index f813ca6edb2..f813ca6edb2 100644
--- a/src/emu/bus/iq151/video32.h
+++ b/src/devices/bus/iq151/video32.h
diff --git a/src/emu/bus/iq151/video64.c b/src/devices/bus/iq151/video64.c
index c6751adfe3d..c6751adfe3d 100644
--- a/src/emu/bus/iq151/video64.c
+++ b/src/devices/bus/iq151/video64.c
diff --git a/src/emu/bus/iq151/video64.h b/src/devices/bus/iq151/video64.h
index 36487711acf..36487711acf 100644
--- a/src/emu/bus/iq151/video64.h
+++ b/src/devices/bus/iq151/video64.h
diff --git a/src/emu/bus/isa/3c503.c b/src/devices/bus/isa/3c503.c
index 84af1d2db32..84af1d2db32 100644
--- a/src/emu/bus/isa/3c503.c
+++ b/src/devices/bus/isa/3c503.c
diff --git a/src/emu/bus/isa/3c503.h b/src/devices/bus/isa/3c503.h
index ad5da16dac8..ad5da16dac8 100644
--- a/src/emu/bus/isa/3c503.h
+++ b/src/devices/bus/isa/3c503.h
diff --git a/src/emu/bus/isa/3c505.c b/src/devices/bus/isa/3c505.c
index 98328c41683..98328c41683 100644
--- a/src/emu/bus/isa/3c505.c
+++ b/src/devices/bus/isa/3c505.c
diff --git a/src/emu/bus/isa/3c505.h b/src/devices/bus/isa/3c505.h
index 929089628ef..929089628ef 100644
--- a/src/emu/bus/isa/3c505.h
+++ b/src/devices/bus/isa/3c505.h
diff --git a/src/emu/bus/isa/adlib.c b/src/devices/bus/isa/adlib.c
index 42e2afd9604..42e2afd9604 100644
--- a/src/emu/bus/isa/adlib.c
+++ b/src/devices/bus/isa/adlib.c
diff --git a/src/emu/bus/isa/adlib.h b/src/devices/bus/isa/adlib.h
index 873b60a7ad1..873b60a7ad1 100644
--- a/src/emu/bus/isa/adlib.h
+++ b/src/devices/bus/isa/adlib.h
diff --git a/src/emu/bus/isa/aga.c b/src/devices/bus/isa/aga.c
index 1d321533391..1d321533391 100644
--- a/src/emu/bus/isa/aga.c
+++ b/src/devices/bus/isa/aga.c
diff --git a/src/emu/bus/isa/aga.h b/src/devices/bus/isa/aga.h
index 1526fade3a6..1526fade3a6 100644
--- a/src/emu/bus/isa/aga.h
+++ b/src/devices/bus/isa/aga.h
diff --git a/src/emu/bus/isa/aha1542.c b/src/devices/bus/isa/aha1542.c
index cc557c47eaa..cc557c47eaa 100644
--- a/src/emu/bus/isa/aha1542.c
+++ b/src/devices/bus/isa/aha1542.c
diff --git a/src/emu/bus/isa/aha1542.h b/src/devices/bus/isa/aha1542.h
index 035a9ebdd46..035a9ebdd46 100644
--- a/src/emu/bus/isa/aha1542.h
+++ b/src/devices/bus/isa/aha1542.h
diff --git a/src/emu/bus/isa/cga.c b/src/devices/bus/isa/cga.c
index 6041df5f9ce..6041df5f9ce 100644
--- a/src/emu/bus/isa/cga.c
+++ b/src/devices/bus/isa/cga.c
diff --git a/src/emu/bus/isa/cga.h b/src/devices/bus/isa/cga.h
index d6dcb791bf3..d6dcb791bf3 100644
--- a/src/emu/bus/isa/cga.h
+++ b/src/devices/bus/isa/cga.h
diff --git a/src/emu/bus/isa/com.c b/src/devices/bus/isa/com.c
index 6d4873009a4..6d4873009a4 100644
--- a/src/emu/bus/isa/com.c
+++ b/src/devices/bus/isa/com.c
diff --git a/src/emu/bus/isa/com.h b/src/devices/bus/isa/com.h
index ff48980dc12..ff48980dc12 100644
--- a/src/emu/bus/isa/com.h
+++ b/src/devices/bus/isa/com.h
diff --git a/src/emu/bus/isa/dectalk.c b/src/devices/bus/isa/dectalk.c
index 5cd014b7b6e..5cd014b7b6e 100644
--- a/src/emu/bus/isa/dectalk.c
+++ b/src/devices/bus/isa/dectalk.c
diff --git a/src/emu/bus/isa/dectalk.h b/src/devices/bus/isa/dectalk.h
index 029d41e8263..029d41e8263 100644
--- a/src/emu/bus/isa/dectalk.h
+++ b/src/devices/bus/isa/dectalk.h
diff --git a/src/emu/bus/isa/ega.c b/src/devices/bus/isa/ega.c
index 4da4ead2c6d..4da4ead2c6d 100644
--- a/src/emu/bus/isa/ega.c
+++ b/src/devices/bus/isa/ega.c
diff --git a/src/emu/bus/isa/ega.h b/src/devices/bus/isa/ega.h
index dc449e81ee7..dc449e81ee7 100644
--- a/src/emu/bus/isa/ega.h
+++ b/src/devices/bus/isa/ega.h
diff --git a/src/emu/bus/isa/fdc.c b/src/devices/bus/isa/fdc.c
index a7698784a26..a7698784a26 100644
--- a/src/emu/bus/isa/fdc.c
+++ b/src/devices/bus/isa/fdc.c
diff --git a/src/emu/bus/isa/fdc.h b/src/devices/bus/isa/fdc.h
index 2c929259c9c..2c929259c9c 100644
--- a/src/emu/bus/isa/fdc.h
+++ b/src/devices/bus/isa/fdc.h
diff --git a/src/emu/bus/isa/finalchs.c b/src/devices/bus/isa/finalchs.c
index 212a05cad87..212a05cad87 100644
--- a/src/emu/bus/isa/finalchs.c
+++ b/src/devices/bus/isa/finalchs.c
diff --git a/src/emu/bus/isa/finalchs.h b/src/devices/bus/isa/finalchs.h
index ec1d05e1f43..ec1d05e1f43 100644
--- a/src/emu/bus/isa/finalchs.h
+++ b/src/devices/bus/isa/finalchs.h
diff --git a/src/emu/bus/isa/gblaster.c b/src/devices/bus/isa/gblaster.c
index 6ee9600cdb6..22cb5edd328 100644
--- a/src/emu/bus/isa/gblaster.c
+++ b/src/devices/bus/isa/gblaster.c
@@ -19,11 +19,13 @@
jumperable? normally 0x220
*/
static MACHINE_CONFIG_FRAGMENT( game_blaster_config )
- MCFG_SPEAKER_STANDARD_MONO("mono")
- MCFG_SAA1099_ADD("saa1099.1", 7159000)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
- MCFG_SAA1099_ADD("saa1099.2", 7159000)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
+ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
+ MCFG_SAA1099_ADD("saa1099.1", 7159090)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50)
+ MCFG_SAA1099_ADD("saa1099.2", 7159090)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50)
MACHINE_CONFIG_END
READ8_MEMBER( isa8_gblaster_device::saa1099_16_r )
diff --git a/src/emu/bus/isa/gblaster.h b/src/devices/bus/isa/gblaster.h
index b2625e98975..b2625e98975 100644
--- a/src/emu/bus/isa/gblaster.h
+++ b/src/devices/bus/isa/gblaster.h
diff --git a/src/emu/bus/isa/gus.c b/src/devices/bus/isa/gus.c
index f9cba907c81..ad7d034a183 100644
--- a/src/emu/bus/isa/gus.c
+++ b/src/devices/bus/isa/gus.c
@@ -1438,7 +1438,7 @@ READ8_MEMBER(isa16_gus_device::joy_r)
data = ioport("gus_joy")->read() | 0x0f;
{
- delta = ((new_time - m_joy_time) * 256 * 1000).seconds;
+ delta = ((new_time - m_joy_time) * 256 * 1000).seconds();
if (ioport("gus_joy_1")->read() < delta) data &= ~0x01;
if (ioport("gus_joy_2")->read() < delta) data &= ~0x02;
diff --git a/src/emu/bus/isa/gus.h b/src/devices/bus/isa/gus.h
index 60d03cf0262..60d03cf0262 100644
--- a/src/emu/bus/isa/gus.h
+++ b/src/devices/bus/isa/gus.h
diff --git a/src/emu/bus/isa/hdc.c b/src/devices/bus/isa/hdc.c
index 45b6bc334dd..45b6bc334dd 100644
--- a/src/emu/bus/isa/hdc.c
+++ b/src/devices/bus/isa/hdc.c
diff --git a/src/emu/bus/isa/hdc.h b/src/devices/bus/isa/hdc.h
index 21a47707e69..21a47707e69 100644
--- a/src/emu/bus/isa/hdc.h
+++ b/src/devices/bus/isa/hdc.h
diff --git a/src/emu/bus/isa/ibm_mfc.c b/src/devices/bus/isa/ibm_mfc.c
index 293162aa70a..293162aa70a 100644
--- a/src/emu/bus/isa/ibm_mfc.c
+++ b/src/devices/bus/isa/ibm_mfc.c
diff --git a/src/emu/bus/isa/ibm_mfc.h b/src/devices/bus/isa/ibm_mfc.h
index 51bcace8bd8..51bcace8bd8 100644
--- a/src/emu/bus/isa/ibm_mfc.h
+++ b/src/devices/bus/isa/ibm_mfc.h
diff --git a/src/emu/bus/isa/ide.c b/src/devices/bus/isa/ide.c
index 9215572bb19..9215572bb19 100644
--- a/src/emu/bus/isa/ide.c
+++ b/src/devices/bus/isa/ide.c
diff --git a/src/emu/bus/isa/ide.h b/src/devices/bus/isa/ide.h
index 290eee2a153..290eee2a153 100644
--- a/src/emu/bus/isa/ide.h
+++ b/src/devices/bus/isa/ide.h
diff --git a/src/emu/bus/isa/isa.c b/src/devices/bus/isa/isa.c
index 5b8b213580e..5b8b213580e 100644
--- a/src/emu/bus/isa/isa.c
+++ b/src/devices/bus/isa/isa.c
diff --git a/src/emu/bus/isa/isa.h b/src/devices/bus/isa/isa.h
index e851cebe8af..e851cebe8af 100644
--- a/src/emu/bus/isa/isa.h
+++ b/src/devices/bus/isa/isa.h
diff --git a/src/emu/bus/isa/isa_cards.c b/src/devices/bus/isa/isa_cards.c
index 8835fc00ec6..a9ab1b9dc8f 100644
--- a/src/emu/bus/isa/isa_cards.c
+++ b/src/devices/bus/isa/isa_cards.c
@@ -18,6 +18,7 @@ SLOT_INTERFACE_START( pc_isa8_cards )
SLOT_INTERFACE("aga", ISA8_AGA)
SLOT_INTERFACE("aga_pc200", ISA8_AGA_PC200)
SLOT_INTERFACE("ega", ISA8_EGA)
+ SLOT_INTERFACE("pgc", ISA8_PGC)
SLOT_INTERFACE("svga_et4k", ISA8_SVGA_ET4K)
SLOT_INTERFACE("num9rev",ISA8_NUM_9_REV)
SLOT_INTERFACE("com", ISA8_COM)
@@ -55,6 +56,7 @@ SLOT_INTERFACE_START( pc_isa16_cards )
SLOT_INTERFACE("cga", ISA8_CGA)
SLOT_INTERFACE("wyse700", ISA8_WYSE700)
SLOT_INTERFACE("ega", ISA8_EGA)
+ SLOT_INTERFACE("pgc", ISA8_PGC)
SLOT_INTERFACE("vga", ISA8_VGA)
SLOT_INTERFACE("svga_et4k", ISA8_SVGA_ET4K)
SLOT_INTERFACE("num9rev",ISA8_NUM_9_REV)
diff --git a/src/emu/bus/isa/isa_cards.h b/src/devices/bus/isa/isa_cards.h
index 731d0d901fa..5133d4772d4 100644
--- a/src/emu/bus/isa/isa_cards.h
+++ b/src/devices/bus/isa/isa_cards.h
@@ -18,6 +18,7 @@
#include "cga.h"
#include "aga.h"
#include "ega.h"
+#include "pgc.h"
#include "vga.h"
#include "vga_ati.h"
#include "svga_cirrus.h"
diff --git a/src/emu/bus/isa/lpt.c b/src/devices/bus/isa/lpt.c
index 28219c8a988..28219c8a988 100644
--- a/src/emu/bus/isa/lpt.c
+++ b/src/devices/bus/isa/lpt.c
diff --git a/src/emu/bus/isa/lpt.h b/src/devices/bus/isa/lpt.h
index 4f73b68c5d5..4f73b68c5d5 100644
--- a/src/emu/bus/isa/lpt.h
+++ b/src/devices/bus/isa/lpt.h
diff --git a/src/emu/bus/isa/mach32.c b/src/devices/bus/isa/mach32.c
index 46121451182..46121451182 100644
--- a/src/emu/bus/isa/mach32.c
+++ b/src/devices/bus/isa/mach32.c
diff --git a/src/emu/bus/isa/mach32.h b/src/devices/bus/isa/mach32.h
index 340ca31a8bb..340ca31a8bb 100644
--- a/src/emu/bus/isa/mach32.h
+++ b/src/devices/bus/isa/mach32.h
diff --git a/src/emu/bus/isa/mc1502_fdc.c b/src/devices/bus/isa/mc1502_fdc.c
index ada13d1d4ec..ada13d1d4ec 100644
--- a/src/emu/bus/isa/mc1502_fdc.c
+++ b/src/devices/bus/isa/mc1502_fdc.c
diff --git a/src/emu/bus/isa/mc1502_fdc.h b/src/devices/bus/isa/mc1502_fdc.h
index 344b4df9ff0..344b4df9ff0 100644
--- a/src/emu/bus/isa/mc1502_fdc.h
+++ b/src/devices/bus/isa/mc1502_fdc.h
diff --git a/src/emu/bus/isa/mc1502_rom.c b/src/devices/bus/isa/mc1502_rom.c
index 9a12c5ec712..9a12c5ec712 100644
--- a/src/emu/bus/isa/mc1502_rom.c
+++ b/src/devices/bus/isa/mc1502_rom.c
diff --git a/src/emu/bus/isa/mc1502_rom.h b/src/devices/bus/isa/mc1502_rom.h
index 9e426d93ab3..9e426d93ab3 100644
--- a/src/emu/bus/isa/mc1502_rom.h
+++ b/src/devices/bus/isa/mc1502_rom.h
diff --git a/src/emu/bus/isa/mda.c b/src/devices/bus/isa/mda.c
index 1d8991cab7a..1d8991cab7a 100644
--- a/src/emu/bus/isa/mda.c
+++ b/src/devices/bus/isa/mda.c
diff --git a/src/emu/bus/isa/mda.h b/src/devices/bus/isa/mda.h
index 8c62520308b..8c62520308b 100644
--- a/src/emu/bus/isa/mda.h
+++ b/src/devices/bus/isa/mda.h
diff --git a/src/emu/bus/isa/mpu401.c b/src/devices/bus/isa/mpu401.c
index 420a753b750..420a753b750 100644
--- a/src/emu/bus/isa/mpu401.c
+++ b/src/devices/bus/isa/mpu401.c
diff --git a/src/emu/bus/isa/mpu401.h b/src/devices/bus/isa/mpu401.h
index b31bb3a2308..b31bb3a2308 100644
--- a/src/emu/bus/isa/mpu401.h
+++ b/src/devices/bus/isa/mpu401.h
diff --git a/src/emu/bus/isa/mufdc.c b/src/devices/bus/isa/mufdc.c
index 0a983dc7a2e..0a983dc7a2e 100644
--- a/src/emu/bus/isa/mufdc.c
+++ b/src/devices/bus/isa/mufdc.c
diff --git a/src/emu/bus/isa/mufdc.h b/src/devices/bus/isa/mufdc.h
index bf33d8f4a6d..bf33d8f4a6d 100644
--- a/src/emu/bus/isa/mufdc.h
+++ b/src/devices/bus/isa/mufdc.h
diff --git a/src/emu/bus/isa/ne1000.c b/src/devices/bus/isa/ne1000.c
index a62d5e71f8f..a62d5e71f8f 100644
--- a/src/emu/bus/isa/ne1000.c
+++ b/src/devices/bus/isa/ne1000.c
diff --git a/src/emu/bus/isa/ne1000.h b/src/devices/bus/isa/ne1000.h
index c246c70d02f..c246c70d02f 100644
--- a/src/emu/bus/isa/ne1000.h
+++ b/src/devices/bus/isa/ne1000.h
diff --git a/src/emu/bus/isa/ne2000.c b/src/devices/bus/isa/ne2000.c
index b635f8e736c..b635f8e736c 100644
--- a/src/emu/bus/isa/ne2000.c
+++ b/src/devices/bus/isa/ne2000.c
diff --git a/src/emu/bus/isa/ne2000.h b/src/devices/bus/isa/ne2000.h
index 76a271dadc0..76a271dadc0 100644
--- a/src/emu/bus/isa/ne2000.h
+++ b/src/devices/bus/isa/ne2000.h
diff --git a/src/emu/bus/isa/num9rev.c b/src/devices/bus/isa/num9rev.c
index 8e2216654fd..8e2216654fd 100644
--- a/src/emu/bus/isa/num9rev.c
+++ b/src/devices/bus/isa/num9rev.c
diff --git a/src/emu/bus/isa/num9rev.h b/src/devices/bus/isa/num9rev.h
index 44011ddb9af..44011ddb9af 100644
--- a/src/emu/bus/isa/num9rev.h
+++ b/src/devices/bus/isa/num9rev.h
diff --git a/src/emu/bus/isa/omti8621.c b/src/devices/bus/isa/omti8621.c
index 96b1214ff85..96b1214ff85 100644
--- a/src/emu/bus/isa/omti8621.c
+++ b/src/devices/bus/isa/omti8621.c
diff --git a/src/emu/bus/isa/omti8621.h b/src/devices/bus/isa/omti8621.h
index 1a49a8e3993..1a49a8e3993 100644
--- a/src/emu/bus/isa/omti8621.h
+++ b/src/devices/bus/isa/omti8621.h
diff --git a/src/emu/bus/isa/p1_fdc.c b/src/devices/bus/isa/p1_fdc.c
index 4ba01ed47da..4ba01ed47da 100644
--- a/src/emu/bus/isa/p1_fdc.c
+++ b/src/devices/bus/isa/p1_fdc.c
diff --git a/src/emu/bus/isa/p1_fdc.h b/src/devices/bus/isa/p1_fdc.h
index 810f7e4cba0..810f7e4cba0 100644
--- a/src/emu/bus/isa/p1_fdc.h
+++ b/src/devices/bus/isa/p1_fdc.h
diff --git a/src/emu/bus/isa/p1_hdc.c b/src/devices/bus/isa/p1_hdc.c
index eb8d68524eb..eb8d68524eb 100644
--- a/src/emu/bus/isa/p1_hdc.c
+++ b/src/devices/bus/isa/p1_hdc.c
diff --git a/src/emu/bus/isa/p1_hdc.h b/src/devices/bus/isa/p1_hdc.h
index f1a844b5edc..f1a844b5edc 100644
--- a/src/emu/bus/isa/p1_hdc.h
+++ b/src/devices/bus/isa/p1_hdc.h
diff --git a/src/emu/bus/isa/p1_rom.c b/src/devices/bus/isa/p1_rom.c
index bd078972a04..bd078972a04 100644
--- a/src/emu/bus/isa/p1_rom.c
+++ b/src/devices/bus/isa/p1_rom.c
diff --git a/src/emu/bus/isa/p1_rom.h b/src/devices/bus/isa/p1_rom.h
index 7b5ddd79150..7b5ddd79150 100644
--- a/src/emu/bus/isa/p1_rom.h
+++ b/src/devices/bus/isa/p1_rom.h
diff --git a/src/emu/bus/isa/pc1640_iga.c b/src/devices/bus/isa/pc1640_iga.c
index 127d90560b5..127d90560b5 100644
--- a/src/emu/bus/isa/pc1640_iga.c
+++ b/src/devices/bus/isa/pc1640_iga.c
diff --git a/src/emu/bus/isa/pc1640_iga.h b/src/devices/bus/isa/pc1640_iga.h
index 3bb632528d4..3bb632528d4 100644
--- a/src/emu/bus/isa/pc1640_iga.h
+++ b/src/devices/bus/isa/pc1640_iga.h
diff --git a/src/emu/bus/isa/pds.c b/src/devices/bus/isa/pds.c
index 235e0acdd02..235e0acdd02 100644
--- a/src/emu/bus/isa/pds.c
+++ b/src/devices/bus/isa/pds.c
diff --git a/src/emu/bus/isa/pds.h b/src/devices/bus/isa/pds.h
index d9d255cb19c..d9d255cb19c 100644
--- a/src/emu/bus/isa/pds.h
+++ b/src/devices/bus/isa/pds.h
diff --git a/src/devices/bus/isa/pgc.c b/src/devices/bus/isa/pgc.c
new file mode 100644
index 00000000000..01ef4668b58
--- /dev/null
+++ b/src/devices/bus/isa/pgc.c
@@ -0,0 +1,365 @@
+// license:BSD-3-Clause
+// copyright-holders:Sergey Svishchev
+
+/***************************************************************************
+
+ IBM Professional Graphics Controller (PGC), skeleton driver.
+
+ Designed for IBM by Vermont Microsystems. References:
+
+ IBM Options and Adapters manual
+ http://www.minuszerodegrees.net/oa/OA%20-%20IBM%20Professional%20Graphics%20Controller.pdf
+ http://bitsavers.org/pdf/ibm/pc/cards/Technical_Reference_Options_and_Adapters_Volume_3.pdf
+ IBM Systems Journal white paper
+ http://wayback.archive.org/web/20061015235146/http://www.research.ibm.com/journal/sj/241/ibmsj2401D.pdf
+ John Elliott's page
+ http://www.seasip.info/VintagePC/pgc.html
+
+ To do:
+ - decode memory map
+ - various VRAM write modes
+ - what's up with irq 3 (= vblank irq)? (causes soft reset)
+ - "test pin of the microprocessor samples the hsync pulse"
+ - CGA emulator
+ - bus state handling?
+ - VRAM address translator ROM?
+
+***************************************************************************/
+
+#include "emu.h"
+
+#include "pgc.h"
+
+#define VERBOSE_PGC 1
+
+#define DBG_LOG(N,M,A) \
+ do { \
+ if(VERBOSE_PGC>=N) \
+ { \
+ if( M ) \
+ logerror("%11.6f at %s: %-24s",machine().time().as_double(),machine().describe_context(),(char*)M ); \
+ logerror A; \
+ } \
+ } while (0)
+
+#define PGC_SCREEN_NAME "pgc_screen"
+
+#define PGC_TOTAL_HORZ 820
+#define PGC_DISP_HORZ 640
+#define PGC_HORZ_START 80
+
+#define PGC_TOTAL_VERT 508
+#define PGC_DISP_VERT 480
+#define PGC_VERT_START 10
+
+/*
+ Prototypes
+*/
+
+ROM_START( pgc )
+ ROM_REGION(0x100000, "maincpu", 0)
+ ROM_DEFAULT_BIOS("1985")
+
+ ROM_SYSTEM_BIOS(0, "1984", "1984 firmware, P/N 6137322/3")
+ ROMX_LOAD("ibm_6137323_pgc_card_27256.bin", 0x00000, 0x8000, CRC(f564f342) SHA1(c5ef17fd1569043cb59f61faf828ea8b0ee95526), ROM_BIOS(1))
+ ROMX_LOAD("ibm_6137322_pgc_card_27256.bin", 0x08000, 0x8000, CRC(5e6cc82f) SHA1(45b3ffb5a9c51986862f8d47b3e03dcaaf4073d5), ROM_BIOS(1))
+
+ ROM_SYSTEM_BIOS(1, "1985", "1985 firmware, P/N 59X7354/5")
+ ROMX_LOAD("pgc_u44.bin", 0x00000, 0x8000, CRC(71280241) SHA1(7042ccd4ebd03f576a256a433b8aa38d1b4fefa8), ROM_BIOS(2))
+ ROMX_LOAD("pgc_u43.bin", 0x08000, 0x8000, CRC(923f5ea3) SHA1(2b2a55d64b20d3a613b00c51443105aa03eca5d6), ROM_BIOS(2))
+
+ ROM_REGION(0x800, "commarea", ROMREGION_ERASE00)
+
+ ROM_REGION(0x1000, "chargen", 0)
+ ROM_LOAD("pgc_u27.bin", 0x0000, 0x1000, CRC(6be256cc) SHA1(deb1195886268dcddce10459911e020f7a9f74f7))
+ROM_END
+
+static INPUT_PORTS_START( pgc )
+ PORT_START("DSW")
+/*
+ PORT_DIPNAME( 0x01, 0x00, "CGA emulator")
+ PORT_DIPSETTING( 0x00, DEF_STR(No) )
+ PORT_DIPSETTING( 0x01, DEF_STR(Yes) )
+*/
+ PORT_DIPNAME( 0x02, 0x00, "Communication area")
+ PORT_DIPSETTING( 0x00, "C6000" )
+ PORT_DIPSETTING( 0x02, "C6400" )
+INPUT_PORTS_END
+
+/*
+write only
+ 30000 LUT WR O L
+ 30001 LUT WR I L
+ 32000 MODE WT L
+ 32001 NIBBLE WT L
+ 3200A ??
+ 34000 FUNCTION WT L
+ 34001 STARTADD WT L
+ 36001 CURSOR WT L
+
+read only
+ 38000 LUT RD O L
+ 38001 LUT RD I L
+ 3C001 INIT L/INIT H
+*/
+
+static ADDRESS_MAP_START( pgc_map, AS_PROGRAM, 8, isa8_pgc_device )
+ ADDRESS_MAP_UNMAP_HIGH
+ AM_RANGE(0x00000, 0x07fff) AM_ROM
+ AM_RANGE(0x08000, 0x0ffff) AM_ROM AM_REGION("maincpu", 0x8000)
+ AM_RANGE(0x10000, 0x1001f) AM_READWRITE(stateparam_r, stateparam_w)
+// AM_RANGE(0x18000, 0x18fff) AM_RAM // ??
+ AM_RANGE(0x28000, 0x287ff) AM_RAM AM_REGION("commarea", 0) AM_MIRROR(0x800)
+ AM_RANGE(0x3c000, 0x3c001) AM_READ(init_r)
+// AM_RANGE(0x3e000, 0x3efff) AM_RAM // ??
+ AM_RANGE(0xf8000, 0xfffff) AM_ROM AM_REGION("maincpu", 0x8000)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( pgc_io, AS_IO, 8, isa8_pgc_device )
+ ADDRESS_MAP_UNMAP_HIGH
+ADDRESS_MAP_END
+
+static const gfx_layout pgc_charlayout =
+{
+ 8, 16, /* 8x16 pixels */
+ 256, /* 256 characters */
+ 1, /* 1 bits per pixel */
+ { 0 }, /* no bitplanes */
+ /* x offsets */
+ { 0, 1, 2, 3, 4, 5, 6, 7 },
+ /* y offsets */
+ { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 },
+ 8*16 /* every char takes 10 bytes */
+};
+
+static GFXDECODE_START( pgc )
+ GFXDECODE_REVERSEBITS("chargen", 0, pgc_charlayout, 0, 1)
+GFXDECODE_END
+
+MACHINE_CONFIG_FRAGMENT( pcvideo_pgc )
+ MCFG_CPU_ADD("maincpu", I8088, XTAL_24MHz/3)
+ MCFG_CPU_PROGRAM_MAP(pgc_map)
+ MCFG_CPU_IO_MAP(pgc_io)
+#if 0
+ MCFG_CPU_VBLANK_INT_DRIVER(PGC_SCREEN_NAME, isa8_pgc_device, vblank_irq)
+ MCFG_CPU_IRQ_ACKNOWLEDGE_DRIVER(isa8_pgc_device, irq_callback)
+#endif
+
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("scantimer", isa8_pgc_device, scanline_callback,
+ attotime::from_hz(60*PGC_TOTAL_VERT))
+ MCFG_TIMER_START_DELAY(attotime::from_hz(XTAL_50MHz/(2*PGC_HORZ_START)))
+
+ MCFG_SCREEN_ADD(PGC_SCREEN_NAME, RASTER)
+ MCFG_SCREEN_RAW_PARAMS(XTAL_50MHz/2,
+ PGC_TOTAL_HORZ, PGC_HORZ_START, PGC_HORZ_START+PGC_DISP_HORZ,
+ PGC_TOTAL_VERT, PGC_VERT_START, PGC_VERT_START+PGC_DISP_VERT)
+ MCFG_SCREEN_UPDATE_DRIVER(isa8_pgc_device, screen_update)
+ MCFG_SCREEN_PALETTE("palette")
+
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", pgc)
+ MCFG_PALETTE_ADD( "palette", 256 )
+MACHINE_CONFIG_END
+
+//**************************************************************************
+// GLOBAL VARIABLES
+//**************************************************************************
+
+const device_type ISA8_PGC = &device_creator<isa8_pgc_device>;
+
+
+//-------------------------------------------------
+// machine_config_additions - device-specific
+// machine configurations
+//-------------------------------------------------
+
+machine_config_constructor isa8_pgc_device::device_mconfig_additions() const
+{
+ return MACHINE_CONFIG_NAME( pcvideo_pgc );
+}
+
+//-------------------------------------------------
+// rom_region - device-specific ROM region
+//-------------------------------------------------
+
+const rom_entry *isa8_pgc_device::device_rom_region() const
+{
+ return ROM_NAME( pgc );
+}
+
+//-------------------------------------------------
+// input_ports - device-specific input ports
+//-------------------------------------------------
+
+ioport_constructor isa8_pgc_device::device_input_ports() const
+{
+ return INPUT_PORTS_NAME( pgc );
+}
+
+//**************************************************************************
+// LIVE DEVICE
+//**************************************************************************
+
+//-------------------------------------------------
+// isa8_pgc_device - constructor
+//-------------------------------------------------
+
+isa8_pgc_device::isa8_pgc_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 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")
+{
+}
+
+isa8_pgc_device::isa8_pgc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source) :
+ device_t(mconfig, type, name, tag, owner, clock, shortname, source),
+ device_isa8_card_interface(mconfig, *this),
+ m_cpu(*this, "maincpu"),
+ m_screen(*this, PGC_SCREEN_NAME),
+ m_palette(*this, "palette")
+{
+}
+
+void isa8_pgc_device::device_start()
+{
+ address_space &space = m_cpu->space( AS_PROGRAM );
+ int width = PGC_DISP_HORZ;
+ int height = PGC_DISP_VERT;
+
+ if (m_palette != NULL && !m_palette->started())
+ throw device_missing_dependencies();
+
+ set_isa_device();
+
+ for (int i = 0; i < 256; i++ )
+ {
+ m_palette->set_pen_color( i, 0, 0, 0 );
+ }
+
+ m_bitmap = auto_bitmap_ind16_alloc(machine(), width, height);
+ m_bitmap->fill(0);
+
+ m_vram = auto_alloc_array(machine(), UINT8, 0x78000);
+ space.install_readwrite_bank(0x80000, 0xf7fff, "vram");
+ membank("vram")->set_base(m_vram);
+
+ m_eram = auto_alloc_array(machine(), UINT8, 0x8000);
+
+ machine().add_notifier(MACHINE_NOTIFY_RESET, machine_notify_delegate(FUNC(isa8_pgc_device::reset_common), this));
+}
+
+void isa8_pgc_device::reset_common()
+{
+ address_space &space = m_cpu->space( AS_PROGRAM );
+
+ space.unmap_readwrite(0xf8000, 0xfffff);
+ space.install_rom(0xf8000, 0xfffff, memregion("maincpu")->base() + 0x8000);
+}
+
+void isa8_pgc_device::device_reset()
+{
+ memset(m_stateparam, 0, sizeof(m_stateparam));
+ memset(m_lut, 0, sizeof(m_lut));
+
+ m_commarea = memregion("commarea")->base();
+ if (BIT(ioport("DSW")->read(), 1))
+ m_isa->install_bank(0xc6400, 0xc67ff, 0, 0, "commarea", m_commarea);
+ else
+ m_isa->install_bank(0xc6000, 0xc63ff, 0, 0, "commarea", m_commarea);
+}
+
+//
+
+INTERRUPT_GEN_MEMBER(isa8_pgc_device::vblank_irq)
+{
+ DBG_LOG(2,"irq",("vblank_irq\n"));
+ m_cpu->set_input_line(0, ASSERT_LINE);
+}
+
+IRQ_CALLBACK_MEMBER(isa8_pgc_device::irq_callback)
+{
+ DBG_LOG(2,"irq",("irq_callback\n"));
+ m_cpu->set_input_line(0, CLEAR_LINE);
+ return 3;
+}
+
+// memory handlers
+
+READ8_MEMBER( isa8_pgc_device::stateparam_r ) {
+ UINT8 ret;
+
+ ret = m_stateparam[offset >> 1];
+ if ((machine().debug_flags & DEBUG_FLAG_ENABLED) != 0)
+ {
+ DBG_LOG(1,"stateparam",("R @ %02x == %02x\n", offset, ret));
+ }
+ return ret;
+}
+
+WRITE8_MEMBER( isa8_pgc_device::stateparam_w ) {
+ if ((machine().debug_flags & DEBUG_FLAG_ENABLED) != 0)
+ {
+ DBG_LOG(1,"stateparam",("W @ %02x <- %02x\n", offset, data));
+ }
+ m_stateparam[offset >> 1] = data;
+}
+
+WRITE8_MEMBER( isa8_pgc_device::lut_w ) {
+ UINT8 o = (offset >> 1) * 3;
+
+ if (offset & 1) {
+ m_lut[o + 2] = (data & 15) << 4;
+ m_palette->set_pen_color( offset >> 1, m_lut[o], m_lut[o + 1], m_lut[o + 2] );
+ DBG_LOG(1,"lut",("W @ %02X <- %d %d %d\n",
+ offset >> 1, m_lut[o], m_lut[o + 1], m_lut[o + 2] ));
+ } else {
+ m_lut[o ] = data & 0xf0;
+ m_lut[o + 1] = (data & 15) << 4;
+ }
+}
+
+READ8_MEMBER( isa8_pgc_device::init_r ) {
+ DBG_LOG(1,"INIT",("unmapping ROM\n"));
+ space.unmap_read(0xf8000, 0xfffff);
+
+ DBG_LOG(1,"INIT",("mapping emulator RAM\n"));
+ space.install_readwrite_bank(0xf8000, 0xfffff, "eram");
+ membank("eram")->set_base(m_eram);
+
+ DBG_LOG(1,"INIT",("mapping LUT\n"));
+ space.install_write_handler(0xf8400, 0xf85ff,
+ write8_delegate(FUNC(isa8_pgc_device::lut_w), this));
+
+ return 0; // XXX ignored
+}
+
+TIMER_DEVICE_CALLBACK_MEMBER(isa8_pgc_device::scanline_callback)
+{
+ UINT16 x, y = m_screen->vpos();
+ UINT16 *p;
+ UINT8 *v;
+
+ // XXX hpos shifts every frame -- fix
+ if (y == 0) DBG_LOG(2,"scanline_cb",
+ ("frame %d x %.4d y %.3d\n",
+ (int) m_screen->frame_number(), m_screen->hpos(), y));
+
+ if (y < PGC_VERT_START) return;
+ y -= PGC_VERT_START;
+ if (y >= PGC_DISP_VERT) return;
+
+ // XXX address translation happens in hardware
+ v = &m_vram[y * 1024];
+ p = &m_bitmap->pix16(y, 0);
+
+ for (x = 0; x < PGC_DISP_HORZ; x++) {
+ *p++ = *v++;
+ }
+}
+
+UINT32 isa8_pgc_device::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+{
+ copybitmap(bitmap, *m_bitmap, 0, 0, PGC_HORZ_START, PGC_VERT_START, cliprect);
+ return 0;
+}
diff --git a/src/devices/bus/isa/pgc.h b/src/devices/bus/isa/pgc.h
new file mode 100644
index 00000000000..9e5361bf105
--- /dev/null
+++ b/src/devices/bus/isa/pgc.h
@@ -0,0 +1,69 @@
+// license:BSD-3-Clause
+// copyright-holders:Sergey Svishchev
+
+#pragma once
+
+#ifndef __ISA_PGC_H__
+#define __ISA_PGC_H__
+
+#include "emu.h"
+
+#include "cpu/i86/i86.h"
+#include "isa.h"
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+// ======================> isa8_pgc_device
+
+class isa8_pgc_device :
+ public device_t,
+ public device_isa8_card_interface
+{
+public:
+ // construction/destruction
+ isa8_pgc_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+ isa8_pgc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source);
+
+ // optional information overrides
+ virtual machine_config_constructor device_mconfig_additions() const;
+ virtual const rom_entry *device_rom_region() const;
+ virtual ioport_constructor device_input_ports() const;
+
+ UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+
+ TIMER_DEVICE_CALLBACK_MEMBER( scanline_callback );
+ INTERRUPT_GEN_MEMBER(vblank_irq);
+ IRQ_CALLBACK_MEMBER(irq_callback);
+
+ DECLARE_WRITE8_MEMBER( stateparam_w );
+ DECLARE_READ8_MEMBER( stateparam_r );
+ DECLARE_WRITE8_MEMBER( lut_w );
+ DECLARE_READ8_MEMBER( init_r );
+
+ void reset_common();
+
+protected:
+ // device-level overrides
+ virtual void device_start();
+ virtual void device_reset();
+
+private:
+ required_device<i8088_cpu_device> m_cpu;
+ required_device<screen_device> m_screen;
+ required_device<palette_device> m_palette;
+
+ UINT8 *m_commarea;
+ UINT8 *m_vram;
+ UINT8 *m_eram;
+ UINT8 m_stateparam[16];
+ UINT8 m_lut[256*3];
+ bitmap_ind16 *m_bitmap;
+};
+
+
+// device type definition
+extern const device_type ISA8_PGC;
+
+#endif /* __ISA_PGC_H__ */
diff --git a/src/emu/bus/isa/s3virge.c b/src/devices/bus/isa/s3virge.c
index 965e47e50f0..965e47e50f0 100644
--- a/src/emu/bus/isa/s3virge.c
+++ b/src/devices/bus/isa/s3virge.c
diff --git a/src/emu/bus/isa/s3virge.h b/src/devices/bus/isa/s3virge.h
index 44bed38689f..44bed38689f 100644
--- a/src/emu/bus/isa/s3virge.h
+++ b/src/devices/bus/isa/s3virge.h
diff --git a/src/emu/bus/isa/sb16.c b/src/devices/bus/isa/sb16.c
index b39195c9557..b39195c9557 100644
--- a/src/emu/bus/isa/sb16.c
+++ b/src/devices/bus/isa/sb16.c
diff --git a/src/emu/bus/isa/sb16.h b/src/devices/bus/isa/sb16.h
index 0236f97ea3f..0236f97ea3f 100644
--- a/src/emu/bus/isa/sb16.h
+++ b/src/devices/bus/isa/sb16.h
diff --git a/src/emu/bus/isa/sblaster.c b/src/devices/bus/isa/sblaster.c
index 9b02d91b5c4..15b7191af29 100644
--- a/src/emu/bus/isa/sblaster.c
+++ b/src/devices/bus/isa/sblaster.c
@@ -66,10 +66,10 @@ static MACHINE_CONFIG_FRAGMENT( sblaster1_0_config )
MCFG_SOUND_ADD("ym3812", YM3812, ym3812_StdClock)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 3.00)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 3.00)
- MCFG_SAA1099_ADD("saa1099.1", 7159000)
+ MCFG_SAA1099_ADD("saa1099.1", 7159090)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50)
- MCFG_SAA1099_ADD("saa1099.2", 7159000)
+ MCFG_SAA1099_ADD("saa1099.2", 7159090)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50)
diff --git a/src/emu/bus/isa/sblaster.h b/src/devices/bus/isa/sblaster.h
index fc8be653fd1..fc8be653fd1 100644
--- a/src/emu/bus/isa/sblaster.h
+++ b/src/devices/bus/isa/sblaster.h
diff --git a/src/emu/bus/isa/sc499.c b/src/devices/bus/isa/sc499.c
index ea6969afe1a..ea6969afe1a 100644
--- a/src/emu/bus/isa/sc499.c
+++ b/src/devices/bus/isa/sc499.c
diff --git a/src/emu/bus/isa/sc499.h b/src/devices/bus/isa/sc499.h
index a83b61564b8..a83b61564b8 100644
--- a/src/emu/bus/isa/sc499.h
+++ b/src/devices/bus/isa/sc499.h
diff --git a/src/emu/bus/isa/side116.c b/src/devices/bus/isa/side116.c
index 2de8254ffe4..2de8254ffe4 100644
--- a/src/emu/bus/isa/side116.c
+++ b/src/devices/bus/isa/side116.c
diff --git a/src/emu/bus/isa/side116.h b/src/devices/bus/isa/side116.h
index 43c7a003810..43c7a003810 100644
--- a/src/emu/bus/isa/side116.h
+++ b/src/devices/bus/isa/side116.h
diff --git a/src/emu/bus/isa/ssi2001.c b/src/devices/bus/isa/ssi2001.c
index 4a77e870190..4a77e870190 100644
--- a/src/emu/bus/isa/ssi2001.c
+++ b/src/devices/bus/isa/ssi2001.c
diff --git a/src/emu/bus/isa/ssi2001.h b/src/devices/bus/isa/ssi2001.h
index 589adac9f0b..589adac9f0b 100644
--- a/src/emu/bus/isa/ssi2001.h
+++ b/src/devices/bus/isa/ssi2001.h
diff --git a/src/emu/bus/isa/stereo_fx.c b/src/devices/bus/isa/stereo_fx.c
index 4c1f3a37a80..4c1f3a37a80 100644
--- a/src/emu/bus/isa/stereo_fx.c
+++ b/src/devices/bus/isa/stereo_fx.c
diff --git a/src/emu/bus/isa/stereo_fx.h b/src/devices/bus/isa/stereo_fx.h
index d82367cfff9..d82367cfff9 100644
--- a/src/emu/bus/isa/stereo_fx.h
+++ b/src/devices/bus/isa/stereo_fx.h
diff --git a/src/emu/bus/isa/svga_cirrus.c b/src/devices/bus/isa/svga_cirrus.c
index bf6ff8842e0..bf6ff8842e0 100644
--- a/src/emu/bus/isa/svga_cirrus.c
+++ b/src/devices/bus/isa/svga_cirrus.c
diff --git a/src/emu/bus/isa/svga_cirrus.h b/src/devices/bus/isa/svga_cirrus.h
index 5259590bf7e..5259590bf7e 100644
--- a/src/emu/bus/isa/svga_cirrus.h
+++ b/src/devices/bus/isa/svga_cirrus.h
diff --git a/src/emu/bus/isa/svga_s3.c b/src/devices/bus/isa/svga_s3.c
index 01ac8d3053a..01ac8d3053a 100644
--- a/src/emu/bus/isa/svga_s3.c
+++ b/src/devices/bus/isa/svga_s3.c
diff --git a/src/emu/bus/isa/svga_s3.h b/src/devices/bus/isa/svga_s3.h
index 5e62d941fa3..5e62d941fa3 100644
--- a/src/emu/bus/isa/svga_s3.h
+++ b/src/devices/bus/isa/svga_s3.h
diff --git a/src/emu/bus/isa/svga_trident.c b/src/devices/bus/isa/svga_trident.c
index affbf97a6a5..affbf97a6a5 100644
--- a/src/emu/bus/isa/svga_trident.c
+++ b/src/devices/bus/isa/svga_trident.c
diff --git a/src/emu/bus/isa/svga_trident.h b/src/devices/bus/isa/svga_trident.h
index d5dde48d531..d5dde48d531 100644
--- a/src/emu/bus/isa/svga_trident.h
+++ b/src/devices/bus/isa/svga_trident.h
diff --git a/src/emu/bus/isa/svga_tseng.c b/src/devices/bus/isa/svga_tseng.c
index d1be1f4ec9b..d1be1f4ec9b 100644
--- a/src/emu/bus/isa/svga_tseng.c
+++ b/src/devices/bus/isa/svga_tseng.c
diff --git a/src/emu/bus/isa/svga_tseng.h b/src/devices/bus/isa/svga_tseng.h
index 23700089f0e..23700089f0e 100644
--- a/src/emu/bus/isa/svga_tseng.h
+++ b/src/devices/bus/isa/svga_tseng.h
diff --git a/src/emu/bus/isa/trident.c b/src/devices/bus/isa/trident.c
index 03f646139be..03f646139be 100644
--- a/src/emu/bus/isa/trident.c
+++ b/src/devices/bus/isa/trident.c
diff --git a/src/emu/bus/isa/trident.h b/src/devices/bus/isa/trident.h
index e8c03a5254b..e8c03a5254b 100644
--- a/src/emu/bus/isa/trident.h
+++ b/src/devices/bus/isa/trident.h
diff --git a/src/emu/bus/isa/vga.c b/src/devices/bus/isa/vga.c
index 8b52309b31f..8b52309b31f 100644
--- a/src/emu/bus/isa/vga.c
+++ b/src/devices/bus/isa/vga.c
diff --git a/src/emu/bus/isa/vga.h b/src/devices/bus/isa/vga.h
index 4317592b33b..4317592b33b 100644
--- a/src/emu/bus/isa/vga.h
+++ b/src/devices/bus/isa/vga.h
diff --git a/src/emu/bus/isa/vga_ati.c b/src/devices/bus/isa/vga_ati.c
index dc6c9930ed2..dc6c9930ed2 100644
--- a/src/emu/bus/isa/vga_ati.c
+++ b/src/devices/bus/isa/vga_ati.c
diff --git a/src/emu/bus/isa/vga_ati.h b/src/devices/bus/isa/vga_ati.h
index 94c5167f1d5..94c5167f1d5 100644
--- a/src/emu/bus/isa/vga_ati.h
+++ b/src/devices/bus/isa/vga_ati.h
diff --git a/src/emu/bus/isa/wd1002a_wx1.c b/src/devices/bus/isa/wd1002a_wx1.c
index 29df9cec729..29df9cec729 100644
--- a/src/emu/bus/isa/wd1002a_wx1.c
+++ b/src/devices/bus/isa/wd1002a_wx1.c
diff --git a/src/emu/bus/isa/wd1002a_wx1.h b/src/devices/bus/isa/wd1002a_wx1.h
index d328fb0f16b..d328fb0f16b 100644
--- a/src/emu/bus/isa/wd1002a_wx1.h
+++ b/src/devices/bus/isa/wd1002a_wx1.h
diff --git a/src/emu/bus/isa/wdxt_gen.c b/src/devices/bus/isa/wdxt_gen.c
index abd262cd918..abd262cd918 100644
--- a/src/emu/bus/isa/wdxt_gen.c
+++ b/src/devices/bus/isa/wdxt_gen.c
diff --git a/src/emu/bus/isa/wdxt_gen.h b/src/devices/bus/isa/wdxt_gen.h
index dae157cba89..dae157cba89 100644
--- a/src/emu/bus/isa/wdxt_gen.h
+++ b/src/devices/bus/isa/wdxt_gen.h
diff --git a/src/emu/bus/isa/xsu_cards.c b/src/devices/bus/isa/xsu_cards.c
index 1a24062a9d1..1a24062a9d1 100644
--- a/src/emu/bus/isa/xsu_cards.c
+++ b/src/devices/bus/isa/xsu_cards.c
diff --git a/src/emu/bus/isa/xsu_cards.h b/src/devices/bus/isa/xsu_cards.h
index 8ddd30f173d..8ddd30f173d 100644
--- a/src/emu/bus/isa/xsu_cards.h
+++ b/src/devices/bus/isa/xsu_cards.h
diff --git a/src/emu/bus/isa/xtide.c b/src/devices/bus/isa/xtide.c
index bde729cc012..bde729cc012 100644
--- a/src/emu/bus/isa/xtide.c
+++ b/src/devices/bus/isa/xtide.c
diff --git a/src/emu/bus/isa/xtide.h b/src/devices/bus/isa/xtide.h
index 762be607ea3..762be607ea3 100644
--- a/src/emu/bus/isa/xtide.h
+++ b/src/devices/bus/isa/xtide.h
diff --git a/src/emu/bus/isbx/compis_fdc.c b/src/devices/bus/isbx/compis_fdc.c
index 2718f57c78f..2718f57c78f 100644
--- a/src/emu/bus/isbx/compis_fdc.c
+++ b/src/devices/bus/isbx/compis_fdc.c
diff --git a/src/emu/bus/isbx/compis_fdc.h b/src/devices/bus/isbx/compis_fdc.h
index 3ccd294a9f8..3ccd294a9f8 100644
--- a/src/emu/bus/isbx/compis_fdc.h
+++ b/src/devices/bus/isbx/compis_fdc.h
diff --git a/src/emu/bus/isbx/isbc_218a.c b/src/devices/bus/isbx/isbc_218a.c
index 319fb66a38a..319fb66a38a 100644
--- a/src/emu/bus/isbx/isbc_218a.c
+++ b/src/devices/bus/isbx/isbc_218a.c
diff --git a/src/emu/bus/isbx/isbc_218a.h b/src/devices/bus/isbx/isbc_218a.h
index 8718c012696..8718c012696 100644
--- a/src/emu/bus/isbx/isbc_218a.h
+++ b/src/devices/bus/isbx/isbc_218a.h
diff --git a/src/emu/bus/isbx/isbx.c b/src/devices/bus/isbx/isbx.c
index 09b7d84b6fd..09b7d84b6fd 100644
--- a/src/emu/bus/isbx/isbx.c
+++ b/src/devices/bus/isbx/isbx.c
diff --git a/src/emu/bus/isbx/isbx.h b/src/devices/bus/isbx/isbx.h
index 5124b4fde60..5124b4fde60 100644
--- a/src/emu/bus/isbx/isbx.h
+++ b/src/devices/bus/isbx/isbx.h
diff --git a/src/emu/bus/kc/d002.c b/src/devices/bus/kc/d002.c
index db93fbf582c..db93fbf582c 100644
--- a/src/emu/bus/kc/d002.c
+++ b/src/devices/bus/kc/d002.c
diff --git a/src/emu/bus/kc/d002.h b/src/devices/bus/kc/d002.h
index 0f9ebe5f07e..0f9ebe5f07e 100644
--- a/src/emu/bus/kc/d002.h
+++ b/src/devices/bus/kc/d002.h
diff --git a/src/emu/bus/kc/d004.c b/src/devices/bus/kc/d004.c
index de615403d69..de615403d69 100644
--- a/src/emu/bus/kc/d004.c
+++ b/src/devices/bus/kc/d004.c
diff --git a/src/emu/bus/kc/d004.h b/src/devices/bus/kc/d004.h
index 79f45cba03a..79f45cba03a 100644
--- a/src/emu/bus/kc/d004.h
+++ b/src/devices/bus/kc/d004.h
diff --git a/src/emu/bus/kc/kc.c b/src/devices/bus/kc/kc.c
index 5ecc1b196b6..5ecc1b196b6 100644
--- a/src/emu/bus/kc/kc.c
+++ b/src/devices/bus/kc/kc.c
diff --git a/src/emu/bus/kc/kc.h b/src/devices/bus/kc/kc.h
index def77ffd955..def77ffd955 100644
--- a/src/emu/bus/kc/kc.h
+++ b/src/devices/bus/kc/kc.h
diff --git a/src/emu/bus/kc/ram.c b/src/devices/bus/kc/ram.c
index 1d747f4e53c..1d747f4e53c 100644
--- a/src/emu/bus/kc/ram.c
+++ b/src/devices/bus/kc/ram.c
diff --git a/src/emu/bus/kc/ram.h b/src/devices/bus/kc/ram.h
index 02eca67c909..02eca67c909 100644
--- a/src/emu/bus/kc/ram.h
+++ b/src/devices/bus/kc/ram.h
diff --git a/src/emu/bus/kc/rom.c b/src/devices/bus/kc/rom.c
index 3a80207dd7b..3a80207dd7b 100644
--- a/src/emu/bus/kc/rom.c
+++ b/src/devices/bus/kc/rom.c
diff --git a/src/emu/bus/kc/rom.h b/src/devices/bus/kc/rom.h
index 9cfa06eefab..9cfa06eefab 100644
--- a/src/emu/bus/kc/rom.h
+++ b/src/devices/bus/kc/rom.h
diff --git a/src/emu/bus/lpci/cirrus.c b/src/devices/bus/lpci/cirrus.c
index 61cea36a3e9..61cea36a3e9 100644
--- a/src/emu/bus/lpci/cirrus.c
+++ b/src/devices/bus/lpci/cirrus.c
diff --git a/src/emu/bus/lpci/cirrus.h b/src/devices/bus/lpci/cirrus.h
index 4de5fc32d74..4de5fc32d74 100644
--- a/src/emu/bus/lpci/cirrus.h
+++ b/src/devices/bus/lpci/cirrus.h
diff --git a/src/emu/bus/lpci/i82371ab.c b/src/devices/bus/lpci/i82371ab.c
index 9f5a9de2edd..9f5a9de2edd 100644
--- a/src/emu/bus/lpci/i82371ab.c
+++ b/src/devices/bus/lpci/i82371ab.c
diff --git a/src/emu/bus/lpci/i82371ab.h b/src/devices/bus/lpci/i82371ab.h
index a905404e14c..a905404e14c 100644
--- a/src/emu/bus/lpci/i82371ab.h
+++ b/src/devices/bus/lpci/i82371ab.h
diff --git a/src/emu/bus/lpci/i82371sb.c b/src/devices/bus/lpci/i82371sb.c
index de9cbc365e7..de9cbc365e7 100644
--- a/src/emu/bus/lpci/i82371sb.c
+++ b/src/devices/bus/lpci/i82371sb.c
diff --git a/src/emu/bus/lpci/i82371sb.h b/src/devices/bus/lpci/i82371sb.h
index b8cac08edb9..b8cac08edb9 100644
--- a/src/emu/bus/lpci/i82371sb.h
+++ b/src/devices/bus/lpci/i82371sb.h
diff --git a/src/emu/bus/lpci/i82439tx.c b/src/devices/bus/lpci/i82439tx.c
index 108302045d9..108302045d9 100644
--- a/src/emu/bus/lpci/i82439tx.c
+++ b/src/devices/bus/lpci/i82439tx.c
diff --git a/src/emu/bus/lpci/i82439tx.h b/src/devices/bus/lpci/i82439tx.h
index d6ac36a372e..d6ac36a372e 100644
--- a/src/emu/bus/lpci/i82439tx.h
+++ b/src/devices/bus/lpci/i82439tx.h
diff --git a/src/emu/bus/lpci/mpc105.c b/src/devices/bus/lpci/mpc105.c
index cd1c88c9f88..cd1c88c9f88 100644
--- a/src/emu/bus/lpci/mpc105.c
+++ b/src/devices/bus/lpci/mpc105.c
diff --git a/src/emu/bus/lpci/mpc105.h b/src/devices/bus/lpci/mpc105.h
index 404a891d446..404a891d446 100644
--- a/src/emu/bus/lpci/mpc105.h
+++ b/src/devices/bus/lpci/mpc105.h
diff --git a/src/emu/bus/lpci/northbridge.c b/src/devices/bus/lpci/northbridge.c
index ec5a0a8582a..ec5a0a8582a 100644
--- a/src/emu/bus/lpci/northbridge.c
+++ b/src/devices/bus/lpci/northbridge.c
diff --git a/src/emu/bus/lpci/northbridge.h b/src/devices/bus/lpci/northbridge.h
index f52f690ada2..f52f690ada2 100644
--- a/src/emu/bus/lpci/northbridge.h
+++ b/src/devices/bus/lpci/northbridge.h
diff --git a/src/emu/bus/lpci/pci.c b/src/devices/bus/lpci/pci.c
index 13baf9e66a3..13baf9e66a3 100644
--- a/src/emu/bus/lpci/pci.c
+++ b/src/devices/bus/lpci/pci.c
diff --git a/src/emu/bus/lpci/pci.h b/src/devices/bus/lpci/pci.h
index 87433ebdd6f..87433ebdd6f 100644
--- a/src/emu/bus/lpci/pci.h
+++ b/src/devices/bus/lpci/pci.h
diff --git a/src/emu/bus/lpci/southbridge.c b/src/devices/bus/lpci/southbridge.c
index b051d29a73a..b051d29a73a 100644
--- a/src/emu/bus/lpci/southbridge.c
+++ b/src/devices/bus/lpci/southbridge.c
diff --git a/src/emu/bus/lpci/southbridge.h b/src/devices/bus/lpci/southbridge.h
index aaf8bc973e3..aaf8bc973e3 100644
--- a/src/emu/bus/lpci/southbridge.h
+++ b/src/devices/bus/lpci/southbridge.h
diff --git a/src/devices/bus/lpci/vt82c505.c b/src/devices/bus/lpci/vt82c505.c
new file mode 100644
index 00000000000..15ba12b403b
--- /dev/null
+++ b/src/devices/bus/lpci/vt82c505.c
@@ -0,0 +1,96 @@
+// license:BSD-3-Clause
+// copyright-holders:Barry Rodewald
+/*
+
+ VIA VT82C505 ISA/VL PCI bridge
+
+*/
+
+#include "emu.h"
+#include "vt82c505.h"
+
+
+/***************************************************************************
+ IMPLEMENTATION
+***************************************************************************/
+
+const device_type VT82C505 = &device_creator<vt82c505_device>;
+
+
+vt82c505_device::vt82c505_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : device_t(mconfig, VT82C505, "VIA VT82C505 PCI bridge", tag, owner, clock, "vt82c505", __FILE__),
+ pci_device_interface( mconfig, *this )
+{
+}
+
+
+UINT32 vt82c505_device::pci_read(pci_bus_device *pcibus, int function, int offset, UINT32 mem_mask)
+{
+ UINT32 result = 0;
+
+ if (function != 0)
+ return result;
+
+ switch (offset)
+ {
+ case 0x00: // vendor/device ID
+ result = 0x05051106;
+ break;
+ case 0x04: // command / status
+ result = 0x00000007;
+ break;
+ case 0x80: // DIP switch / revision, memory size, buffer control, VLB interface timing
+ result = 0x00000100;
+ break;
+ }
+ logerror("%s: PCI read func %i, offset %02x, result %08x\n",tag(),function,offset,result);
+
+ return result;
+}
+
+void vt82c505_device::pci_write(pci_bus_device *pcibus, int function, int offset, UINT32 data, UINT32 mem_mask)
+{
+ if (function != 0)
+ return;
+
+ switch(offset)
+ {
+ case 0x84:
+ if(ACCESSING_BITS_0_7) // RX87: memory window 1 A31:24
+ {
+ m_window_addr[0] = (m_window_addr[0] & 0xff00) | (data & 0x000000ff);
+ logerror("%s: memory window #1 A31:24 set: %04x\n",tag(),m_window_addr[0]);
+ }
+ break;
+ case 0x88:
+ if(ACCESSING_BITS_24_31) // RX88: memory window 1 A23:16
+ {
+ m_window_addr[0] = (m_window_addr[0] & 0x00ff) | ((data & 0xff000000) >> 24);
+ logerror("%s: memory window #1 A23:16 set: %04x\n",tag(),m_window_addr[0]);
+ }
+ if(ACCESSING_BITS_16_23) // RX89: memory window 1 attributes
+ {
+ m_window_attr[0] = ((data & 0x00ff0000) >> 16);
+ logerror("%s: memory window #1 attributes set: %02x\n",tag(),m_window_attr[0]);
+ }
+ break;
+ }
+ logerror("%s: PCI write func %i, offset %02x, data %08x\n",tag(),function,offset,data);
+}
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void vt82c505_device::device_start()
+{
+ /* setup save states */
+}
+
+//-------------------------------------------------
+// device_reset - device-specific reset
+//-------------------------------------------------
+
+void vt82c505_device::device_reset()
+{
+}
diff --git a/src/devices/bus/lpci/vt82c505.h b/src/devices/bus/lpci/vt82c505.h
new file mode 100644
index 00000000000..8021077081f
--- /dev/null
+++ b/src/devices/bus/lpci/vt82c505.h
@@ -0,0 +1,38 @@
+// license:BSD-3-Clause
+// copyright-holders:Barry Rodewald
+/*
+
+ VIA VT82C505 PCI bridge
+
+*/
+
+#ifndef __VT82C505_H__
+#define __VT82C505_H__
+
+#include "pci.h"
+
+class vt82c505_device : public device_t,
+ public pci_device_interface
+{
+public:
+ // construction/destruction
+ vt82c505_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ virtual UINT32 pci_read(pci_bus_device *pcibus, int function, int offset, UINT32 mem_mask);
+ virtual void pci_write(pci_bus_device *pcibus, int function, int offset, UINT32 data, UINT32 mem_mask);
+
+protected:
+ // device-level overrides
+ virtual void device_start();
+ virtual void device_reset();
+
+private:
+ UINT16 m_window_addr[3];
+ UINT8 m_window_attr[3];
+};
+
+// device type definition
+extern const device_type VT82C505;
+
+
+#endif /* __VT82C505_H__ */
diff --git a/src/emu/bus/macpds/macpds.c b/src/devices/bus/macpds/macpds.c
index 0a2cf2477e9..0a2cf2477e9 100644
--- a/src/emu/bus/macpds/macpds.c
+++ b/src/devices/bus/macpds/macpds.c
diff --git a/src/emu/bus/macpds/macpds.h b/src/devices/bus/macpds/macpds.h
index 90c136e73bb..90c136e73bb 100644
--- a/src/emu/bus/macpds/macpds.h
+++ b/src/devices/bus/macpds/macpds.h
diff --git a/src/emu/bus/macpds/pds_tpdfpd.c b/src/devices/bus/macpds/pds_tpdfpd.c
index a9e7c36c067..a9e7c36c067 100644
--- a/src/emu/bus/macpds/pds_tpdfpd.c
+++ b/src/devices/bus/macpds/pds_tpdfpd.c
diff --git a/src/emu/bus/macpds/pds_tpdfpd.h b/src/devices/bus/macpds/pds_tpdfpd.h
index 126af9887a1..126af9887a1 100644
--- a/src/emu/bus/macpds/pds_tpdfpd.h
+++ b/src/devices/bus/macpds/pds_tpdfpd.h
diff --git a/src/emu/bus/megadrive/eeprom.c b/src/devices/bus/megadrive/eeprom.c
index e0a72f3a939..e0a72f3a939 100644
--- a/src/emu/bus/megadrive/eeprom.c
+++ b/src/devices/bus/megadrive/eeprom.c
diff --git a/src/emu/bus/megadrive/eeprom.h b/src/devices/bus/megadrive/eeprom.h
index a7916e628bf..a7916e628bf 100644
--- a/src/emu/bus/megadrive/eeprom.h
+++ b/src/devices/bus/megadrive/eeprom.h
diff --git a/src/emu/bus/megadrive/ggenie.c b/src/devices/bus/megadrive/ggenie.c
index 1c75febc54b..1c75febc54b 100644
--- a/src/emu/bus/megadrive/ggenie.c
+++ b/src/devices/bus/megadrive/ggenie.c
diff --git a/src/emu/bus/megadrive/ggenie.h b/src/devices/bus/megadrive/ggenie.h
index 010ace73441..010ace73441 100644
--- a/src/emu/bus/megadrive/ggenie.h
+++ b/src/devices/bus/megadrive/ggenie.h
diff --git a/src/emu/bus/megadrive/jcart.c b/src/devices/bus/megadrive/jcart.c
index 6e45c2481f6..6e45c2481f6 100644
--- a/src/emu/bus/megadrive/jcart.c
+++ b/src/devices/bus/megadrive/jcart.c
diff --git a/src/emu/bus/megadrive/jcart.h b/src/devices/bus/megadrive/jcart.h
index c59f3af7572..c59f3af7572 100644
--- a/src/emu/bus/megadrive/jcart.h
+++ b/src/devices/bus/megadrive/jcart.h
diff --git a/src/emu/bus/megadrive/md_carts.c b/src/devices/bus/megadrive/md_carts.c
index 698060c6014..698060c6014 100644
--- a/src/emu/bus/megadrive/md_carts.c
+++ b/src/devices/bus/megadrive/md_carts.c
diff --git a/src/emu/bus/megadrive/md_carts.h b/src/devices/bus/megadrive/md_carts.h
index b9ab25d146b..b9ab25d146b 100644
--- a/src/emu/bus/megadrive/md_carts.h
+++ b/src/devices/bus/megadrive/md_carts.h
diff --git a/src/emu/bus/megadrive/md_slot.c b/src/devices/bus/megadrive/md_slot.c
index 6caa7df817f..6caa7df817f 100644
--- a/src/emu/bus/megadrive/md_slot.c
+++ b/src/devices/bus/megadrive/md_slot.c
diff --git a/src/emu/bus/megadrive/md_slot.h b/src/devices/bus/megadrive/md_slot.h
index e7cf7e43c3b..e7cf7e43c3b 100644
--- a/src/emu/bus/megadrive/md_slot.h
+++ b/src/devices/bus/megadrive/md_slot.h
diff --git a/src/emu/bus/megadrive/rom.c b/src/devices/bus/megadrive/rom.c
index bc81477cc09..bc81477cc09 100644
--- a/src/emu/bus/megadrive/rom.c
+++ b/src/devices/bus/megadrive/rom.c
diff --git a/src/emu/bus/megadrive/rom.h b/src/devices/bus/megadrive/rom.h
index 1ecc693606e..1ecc693606e 100644
--- a/src/emu/bus/megadrive/rom.h
+++ b/src/devices/bus/megadrive/rom.h
diff --git a/src/emu/bus/megadrive/sk.c b/src/devices/bus/megadrive/sk.c
index 8c10826f685..8c10826f685 100644
--- a/src/emu/bus/megadrive/sk.c
+++ b/src/devices/bus/megadrive/sk.c
diff --git a/src/emu/bus/megadrive/sk.h b/src/devices/bus/megadrive/sk.h
index 4ad52056066..4ad52056066 100644
--- a/src/emu/bus/megadrive/sk.h
+++ b/src/devices/bus/megadrive/sk.h
diff --git a/src/emu/bus/megadrive/stm95.c b/src/devices/bus/megadrive/stm95.c
index 67c367425a6..67c367425a6 100644
--- a/src/emu/bus/megadrive/stm95.c
+++ b/src/devices/bus/megadrive/stm95.c
diff --git a/src/emu/bus/megadrive/stm95.h b/src/devices/bus/megadrive/stm95.h
index 39e40770019..39e40770019 100644
--- a/src/emu/bus/megadrive/stm95.h
+++ b/src/devices/bus/megadrive/stm95.h
diff --git a/src/emu/bus/megadrive/svp.c b/src/devices/bus/megadrive/svp.c
index 324c5302a33..324c5302a33 100644
--- a/src/emu/bus/megadrive/svp.c
+++ b/src/devices/bus/megadrive/svp.c
diff --git a/src/emu/bus/megadrive/svp.h b/src/devices/bus/megadrive/svp.h
index 0f128240a86..0f128240a86 100644
--- a/src/emu/bus/megadrive/svp.h
+++ b/src/devices/bus/megadrive/svp.h
diff --git a/src/emu/bus/midi/midi.c b/src/devices/bus/midi/midi.c
index 3c77b4ca227..3c77b4ca227 100644
--- a/src/emu/bus/midi/midi.c
+++ b/src/devices/bus/midi/midi.c
diff --git a/src/emu/bus/midi/midi.h b/src/devices/bus/midi/midi.h
index 2013e625f91..2013e625f91 100644
--- a/src/emu/bus/midi/midi.h
+++ b/src/devices/bus/midi/midi.h
diff --git a/src/emu/bus/midi/midiinport.c b/src/devices/bus/midi/midiinport.c
index 13632219c03..13632219c03 100644
--- a/src/emu/bus/midi/midiinport.c
+++ b/src/devices/bus/midi/midiinport.c
diff --git a/src/emu/bus/midi/midiinport.h b/src/devices/bus/midi/midiinport.h
index 5c95257f0e5..5c95257f0e5 100644
--- a/src/emu/bus/midi/midiinport.h
+++ b/src/devices/bus/midi/midiinport.h
diff --git a/src/emu/bus/midi/midioutport.c b/src/devices/bus/midi/midioutport.c
index 6ba39d6ee57..6ba39d6ee57 100644
--- a/src/emu/bus/midi/midioutport.c
+++ b/src/devices/bus/midi/midioutport.c
diff --git a/src/emu/bus/midi/midioutport.h b/src/devices/bus/midi/midioutport.h
index 3c0de35cb08..3c0de35cb08 100644
--- a/src/emu/bus/midi/midioutport.h
+++ b/src/devices/bus/midi/midioutport.h
diff --git a/src/emu/bus/msx_cart/arc.c b/src/devices/bus/msx_cart/arc.c
index a64f321af14..a64f321af14 100644
--- a/src/emu/bus/msx_cart/arc.c
+++ b/src/devices/bus/msx_cart/arc.c
diff --git a/src/emu/bus/msx_cart/arc.h b/src/devices/bus/msx_cart/arc.h
index 57e96c5a925..57e96c5a925 100644
--- a/src/emu/bus/msx_cart/arc.h
+++ b/src/devices/bus/msx_cart/arc.h
diff --git a/src/emu/bus/msx_cart/ascii.c b/src/devices/bus/msx_cart/ascii.c
index 7b911794eea..cb3aebf0d4d 100644
--- a/src/emu/bus/msx_cart/ascii.c
+++ b/src/devices/bus/msx_cart/ascii.c
@@ -8,6 +8,7 @@ const device_type MSX_CART_ASCII8 = &device_creator<msx_cart_ascii8>;
const device_type MSX_CART_ASCII16 = &device_creator<msx_cart_ascii16>;
const device_type MSX_CART_ASCII8_SRAM = &device_creator<msx_cart_ascii8_sram>;
const device_type MSX_CART_ASCII16_SRAM = &device_creator<msx_cart_ascii16_sram>;
+const device_type MSX_CART_MSXWRITE = &device_creator<msx_cart_msxwrite>;
msx_cart_ascii8::msx_cart_ascii8(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
@@ -441,3 +442,94 @@ 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 clock)
+ : device_t(mconfig, MSX_CART_MSXWRITE, "MSX Cartridge - MSXWRITE", tag, owner, clock, "msx_cart_msxwrite", __FILE__)
+ , msx_cart_interface(mconfig, *this)
+ , m_bank_mask(0)
+{
+ for (int i = 0; i < 2; i++)
+ {
+ m_selected_bank[i] = 0;
+ m_bank_base[i] = NULL;
+ }
+}
+
+
+void msx_cart_msxwrite::device_start()
+{
+ save_item(NAME(m_selected_bank));
+
+ machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_msxwrite::restore_banks), this));
+}
+
+
+void msx_cart_msxwrite::restore_banks()
+{
+ for (int i = 0; i < 2; i++)
+ {
+ m_bank_base[i] = get_rom_base() + (m_selected_bank[i] & m_bank_mask) * 0x4000;
+ }
+}
+
+
+void msx_cart_msxwrite::device_reset()
+{
+ for (int i = 0; i < 2; i++)
+ {
+ m_selected_bank[i] = 0;
+ }
+}
+
+
+void msx_cart_msxwrite::initialize_cartridge()
+{
+ UINT32 size = get_rom_size();
+
+ if ( size > 256 * 0x4000 )
+ {
+ fatalerror("msxwrite: ROM is too big\n");
+ }
+
+ UINT16 banks = size / 0x4000;
+
+ if (size != banks * 0x4000 || (~(banks - 1) % banks))
+ {
+ fatalerror("msxwrite: Invalid ROM size\n");
+ }
+
+ m_bank_mask = banks - 1;
+
+ restore_banks();
+}
+
+
+READ8_MEMBER(msx_cart_msxwrite::read_cart)
+{
+ if ( offset >= 0x4000 && offset < 0xC000 )
+ {
+ return m_bank_base[offset >> 15][offset & 0x3fff];
+ }
+ return 0xff;
+}
+
+
+WRITE8_MEMBER(msx_cart_msxwrite::write_cart)
+{
+ // The rom writes to 6fff and 7fff for banking, unknown whether
+ // other locations also trigger banking.
+ switch (offset)
+ {
+ case 0x6fff:
+ m_selected_bank[0] = data;
+ m_bank_base[0] = get_rom_base() + (m_selected_bank[0] & m_bank_mask) * 0x4000;
+ break;
+
+ case 0x7fff:
+ m_selected_bank[1] = data;
+ m_bank_base[1] = get_rom_base() + (m_selected_bank[1] & m_bank_mask) * 0x4000;
+ break;
+ }
+}
diff --git a/src/emu/bus/msx_cart/ascii.h b/src/devices/bus/msx_cart/ascii.h
index 46545b31ec8..e23ce939e31 100644
--- a/src/emu/bus/msx_cart/ascii.h
+++ b/src/devices/bus/msx_cart/ascii.h
@@ -10,6 +10,7 @@ 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;
class msx_cart_ascii8 : public device_t
@@ -114,4 +115,27 @@ private:
};
+class msx_cart_msxwrite : public device_t
+ , public msx_cart_interface
+{
+public:
+ msx_cart_msxwrite(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ // device-level overrides
+ virtual void device_start();
+ virtual void device_reset();
+
+ virtual void initialize_cartridge();
+
+ virtual DECLARE_READ8_MEMBER(read_cart);
+ virtual DECLARE_WRITE8_MEMBER(write_cart);
+
+ void restore_banks();
+
+private:
+ UINT8 m_bank_mask;
+ UINT8 m_selected_bank[2];
+ UINT8 *m_bank_base[2];
+};
+
#endif
diff --git a/src/emu/bus/msx_cart/bm_012.c b/src/devices/bus/msx_cart/bm_012.c
index 89430da93f2..89430da93f2 100644
--- a/src/emu/bus/msx_cart/bm_012.c
+++ b/src/devices/bus/msx_cart/bm_012.c
diff --git a/src/emu/bus/msx_cart/bm_012.h b/src/devices/bus/msx_cart/bm_012.h
index ce0ad337777..ce0ad337777 100644
--- a/src/emu/bus/msx_cart/bm_012.h
+++ b/src/devices/bus/msx_cart/bm_012.h
diff --git a/src/emu/bus/msx_cart/cartridge.c b/src/devices/bus/msx_cart/cartridge.c
index 9415ab2f3c0..7f990101a08 100644
--- a/src/emu/bus/msx_cart/cartridge.c
+++ b/src/devices/bus/msx_cart/cartridge.c
@@ -10,6 +10,7 @@
#include "disk.h"
#include "dooly.h"
#include "fmpac.h"
+#include "fs_sr022.h"
#include "halnote.h"
#include "hfox.h"
#include "holy_quran.h"
@@ -39,12 +40,14 @@ SLOT_INTERFACE_START(msx_cart)
SLOT_INTERFACE_INTERNAL("rtype", MSX_CART_RTYPE)
SLOT_INTERFACE_INTERNAL("majutsushi", MSX_CART_MAJUTSUSHI)
SLOT_INTERFACE_INTERNAL("fmpac", MSX_CART_FMPAC)
+ SLOT_INTERFACE_INTERNAL("fs_sr022", MSX_CART_FS_SR022)
SLOT_INTERFACE_INTERNAL("superloderunner", MSX_CART_SUPERLODERUNNER)
SLOT_INTERFACE_INTERNAL("synthesizer", MSX_CART_SYNTHESIZER)
SLOT_INTERFACE_INTERNAL("cross_blaim", MSX_CART_CROSSBLAIM)
SLOT_INTERFACE_INTERNAL("korean_80in1", MSX_CART_KOREAN_80IN1)
SLOT_INTERFACE_INTERNAL("korean_90in1", MSX_CART_KOREAN_90IN1)
SLOT_INTERFACE_INTERNAL("korean_126in1", MSX_CART_KOREAN_126IN1)
+ SLOT_INTERFACE_INTERNAL("msxwrite", MSX_CART_MSXWRITE)
SLOT_INTERFACE_INTERNAL("sound_snatcher", MSX_CART_SOUND_SNATCHER)
SLOT_INTERFACE_INTERNAL("sound_sdsnatch", MSX_CART_SOUND_SDSNATCHER)
SLOT_INTERFACE_INTERNAL("msxaud_hxmu900", MSX_CART_MSX_AUDIO_HXMU900)
diff --git a/src/emu/bus/msx_cart/cartridge.h b/src/devices/bus/msx_cart/cartridge.h
index 6deb2140dea..6deb2140dea 100644
--- a/src/emu/bus/msx_cart/cartridge.h
+++ b/src/devices/bus/msx_cart/cartridge.h
diff --git a/src/emu/bus/msx_cart/crossblaim.c b/src/devices/bus/msx_cart/crossblaim.c
index 2b2edece1f3..2b2edece1f3 100644
--- a/src/emu/bus/msx_cart/crossblaim.c
+++ b/src/devices/bus/msx_cart/crossblaim.c
diff --git a/src/emu/bus/msx_cart/crossblaim.h b/src/devices/bus/msx_cart/crossblaim.h
index b94a3cc6e59..b94a3cc6e59 100644
--- a/src/emu/bus/msx_cart/crossblaim.h
+++ b/src/devices/bus/msx_cart/crossblaim.h
diff --git a/src/emu/bus/msx_cart/disk.c b/src/devices/bus/msx_cart/disk.c
index 64bc061ba35..64bc061ba35 100644
--- a/src/emu/bus/msx_cart/disk.c
+++ b/src/devices/bus/msx_cart/disk.c
diff --git a/src/emu/bus/msx_cart/disk.h b/src/devices/bus/msx_cart/disk.h
index efe48e28255..efe48e28255 100644
--- a/src/emu/bus/msx_cart/disk.h
+++ b/src/devices/bus/msx_cart/disk.h
diff --git a/src/emu/bus/msx_cart/dooly.c b/src/devices/bus/msx_cart/dooly.c
index 95f2748b04a..95f2748b04a 100644
--- a/src/emu/bus/msx_cart/dooly.c
+++ b/src/devices/bus/msx_cart/dooly.c
diff --git a/src/emu/bus/msx_cart/dooly.h b/src/devices/bus/msx_cart/dooly.h
index 45ba9343fd4..45ba9343fd4 100644
--- a/src/emu/bus/msx_cart/dooly.h
+++ b/src/devices/bus/msx_cart/dooly.h
diff --git a/src/emu/bus/msx_cart/fmpac.c b/src/devices/bus/msx_cart/fmpac.c
index c4222094c1a..c4222094c1a 100644
--- a/src/emu/bus/msx_cart/fmpac.c
+++ b/src/devices/bus/msx_cart/fmpac.c
diff --git a/src/emu/bus/msx_cart/fmpac.h b/src/devices/bus/msx_cart/fmpac.h
index 610f3b99038..610f3b99038 100644
--- a/src/emu/bus/msx_cart/fmpac.h
+++ b/src/devices/bus/msx_cart/fmpac.h
diff --git a/src/devices/bus/msx_cart/fs_sr022.c b/src/devices/bus/msx_cart/fs_sr022.c
new file mode 100644
index 00000000000..c3aee7b9b81
--- /dev/null
+++ b/src/devices/bus/msx_cart/fs_sr022.c
@@ -0,0 +1,71 @@
+// license:BSD-3-Clause
+// copyright-holders:Wilbert Pol
+#include "emu.h"
+#include "fs_sr022.h"
+
+
+const device_type MSX_CART_FS_SR022 = &device_creator<msx_cart_fs_sr022>;
+
+
+msx_cart_fs_sr022::msx_cart_fs_sr022(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : device_t(mconfig, MSX_CART_FS_SR022, "MSX Cartridge - FS-SR022", tag, owner, clock, "msx_cart_fs_sr022", __FILE__)
+ , msx_cart_interface(mconfig, *this)
+ , m_bunsetsu_rom(NULL)
+ , m_bunsetsu_address(0)
+{
+}
+
+
+void msx_cart_fs_sr022::device_start()
+{
+ save_item(NAME(m_bunsetsu_address));
+}
+
+
+void msx_cart_fs_sr022::device_reset()
+{
+ m_bunsetsu_address = 0;
+}
+
+
+void msx_cart_fs_sr022::initialize_cartridge()
+{
+ if (get_rom_size() != 0x40000)
+ {
+ fatalerror("fs_sr022: Invalid ROM size\n");
+ }
+ m_bunsetsu_rom = get_rom_base() + 0x20000;
+}
+
+
+READ8_MEMBER(msx_cart_fs_sr022::read_cart)
+{
+ if (offset >= 0x4000 && offset < 0xc000)
+ {
+ if (offset == 0xbfff) {
+ return m_bunsetsu_rom[m_bunsetsu_address++ & 0x1ffff];
+ }
+
+ return get_rom_base()[offset - 0x4000];
+ }
+ return 0xff;
+}
+
+
+WRITE8_MEMBER(msx_cart_fs_sr022::write_cart)
+{
+ switch (offset)
+ {
+ case 0xbffc:
+ m_bunsetsu_address = (m_bunsetsu_address & 0xffff00) | data;
+ break;
+
+ case 0xbffd:
+ m_bunsetsu_address = (m_bunsetsu_address & 0xff00ff) | (data << 8);
+ break;
+
+ case 0xbffe:
+ m_bunsetsu_address = (m_bunsetsu_address & 0x00ffff) | (data << 16);
+ break;
+ }
+}
diff --git a/src/devices/bus/msx_cart/fs_sr022.h b/src/devices/bus/msx_cart/fs_sr022.h
new file mode 100644
index 00000000000..edae6296beb
--- /dev/null
+++ b/src/devices/bus/msx_cart/fs_sr022.h
@@ -0,0 +1,33 @@
+// license:BSD-3-Clause
+// copyright-holders:Wilbert Pol
+#ifndef __MSX_CART_FS_SR022_H
+#define __MSX_CART_FS_SR022_H
+
+#include "bus/msx_cart/cartridge.h"
+
+
+extern const device_type MSX_CART_FS_SR022;
+
+
+class msx_cart_fs_sr022 : public device_t
+ , public msx_cart_interface
+{
+public:
+ msx_cart_fs_sr022(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ // device-level overrides
+ virtual void device_start();
+ virtual void device_reset();
+
+ virtual void initialize_cartridge();
+
+ virtual DECLARE_READ8_MEMBER(read_cart);
+ virtual DECLARE_WRITE8_MEMBER(write_cart);
+
+private:
+ const UINT8 *m_bunsetsu_rom;
+ UINT32 m_bunsetsu_address;
+};
+
+
+#endif
diff --git a/src/emu/bus/msx_cart/halnote.c b/src/devices/bus/msx_cart/halnote.c
index 35b0582b241..35b0582b241 100644
--- a/src/emu/bus/msx_cart/halnote.c
+++ b/src/devices/bus/msx_cart/halnote.c
diff --git a/src/emu/bus/msx_cart/halnote.h b/src/devices/bus/msx_cart/halnote.h
index 8020219a77d..8020219a77d 100644
--- a/src/emu/bus/msx_cart/halnote.h
+++ b/src/devices/bus/msx_cart/halnote.h
diff --git a/src/emu/bus/msx_cart/hfox.c b/src/devices/bus/msx_cart/hfox.c
index 8cf349c403d..8cf349c403d 100644
--- a/src/emu/bus/msx_cart/hfox.c
+++ b/src/devices/bus/msx_cart/hfox.c
diff --git a/src/emu/bus/msx_cart/hfox.h b/src/devices/bus/msx_cart/hfox.h
index c3a17d365c5..c3a17d365c5 100644
--- a/src/emu/bus/msx_cart/hfox.h
+++ b/src/devices/bus/msx_cart/hfox.h
diff --git a/src/emu/bus/msx_cart/holy_quran.c b/src/devices/bus/msx_cart/holy_quran.c
index cb9d0b850a7..cb9d0b850a7 100644
--- a/src/emu/bus/msx_cart/holy_quran.c
+++ b/src/devices/bus/msx_cart/holy_quran.c
diff --git a/src/emu/bus/msx_cart/holy_quran.h b/src/devices/bus/msx_cart/holy_quran.h
index e6c949f1eac..e6c949f1eac 100644
--- a/src/emu/bus/msx_cart/holy_quran.h
+++ b/src/devices/bus/msx_cart/holy_quran.h
diff --git a/src/emu/bus/msx_cart/konami.c b/src/devices/bus/msx_cart/konami.c
index 66045d4b39d..c0beb8da357 100644
--- a/src/emu/bus/msx_cart/konami.c
+++ b/src/devices/bus/msx_cart/konami.c
@@ -88,7 +88,7 @@ READ8_MEMBER(msx_cart_konami::read_cart)
WRITE8_MEMBER(msx_cart_konami::write_cart)
{
- switch (offset)
+ switch (offset & 0xe000)
{
case 0x4000:
m_selected_bank[0] = data;
diff --git a/src/emu/bus/msx_cart/konami.h b/src/devices/bus/msx_cart/konami.h
index 1fd982610e8..1fd982610e8 100644
--- a/src/emu/bus/msx_cart/konami.h
+++ b/src/devices/bus/msx_cart/konami.h
diff --git a/src/emu/bus/msx_cart/korean.c b/src/devices/bus/msx_cart/korean.c
index 58cdd0d5985..58cdd0d5985 100644
--- a/src/emu/bus/msx_cart/korean.c
+++ b/src/devices/bus/msx_cart/korean.c
diff --git a/src/emu/bus/msx_cart/korean.h b/src/devices/bus/msx_cart/korean.h
index 83dc84680f1..83dc84680f1 100644
--- a/src/emu/bus/msx_cart/korean.h
+++ b/src/devices/bus/msx_cart/korean.h
diff --git a/src/emu/bus/msx_cart/majutsushi.c b/src/devices/bus/msx_cart/majutsushi.c
index 6c9c16e7319..6c9c16e7319 100644
--- a/src/emu/bus/msx_cart/majutsushi.c
+++ b/src/devices/bus/msx_cart/majutsushi.c
diff --git a/src/emu/bus/msx_cart/majutsushi.h b/src/devices/bus/msx_cart/majutsushi.h
index aadbc8a8b5d..aadbc8a8b5d 100644
--- a/src/emu/bus/msx_cart/majutsushi.h
+++ b/src/devices/bus/msx_cart/majutsushi.h
diff --git a/src/emu/bus/msx_cart/moonsound.c b/src/devices/bus/msx_cart/moonsound.c
index b8601335917..cdae9385815 100644
--- a/src/emu/bus/msx_cart/moonsound.c
+++ b/src/devices/bus/msx_cart/moonsound.c
@@ -5,7 +5,6 @@
TODO:
- Properly hook up correct SRAM sizes for different moonsound compatible
cartridges. (Original moonsound has 128KB SRAM)
-- Fix FM support (ymf262 support needs to be added to ymf278b).
**********************************************************************************/
@@ -21,7 +20,7 @@ const device_type MSX_CART_MOONSOUND = &device_creator<msx_cart_moonsound>;
msx_cart_moonsound::msx_cart_moonsound(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
- : device_t(mconfig, MSX_CART_MOONSOUND, "MSX Cartridge - MoonSound", tag, owner, clock, "msx_cart_moonsound", __FILE__)
+ : device_t(mconfig, MSX_CART_MOONSOUND, "MSX Cartridge - MoonSound", tag, owner, clock, "msx_moonsound", __FILE__)
, msx_cart_interface(mconfig, *this)
, m_ymf278b(*this, "ymf278b")
{
@@ -42,6 +41,10 @@ static MACHINE_CONFIG_FRAGMENT( moonsound )
MCFG_YMF278B_IRQ_HANDLER(WRITELINE(msx_cart_moonsound,irq_w))
MCFG_SOUND_ROUTE(0, "lspeaker", 0.50)
MCFG_SOUND_ROUTE(1, "rspeaker", 0.50)
+ MCFG_SOUND_ROUTE(2, "lspeaker", 0.40)
+ MCFG_SOUND_ROUTE(3, "rspeaker", 0.40)
+ MCFG_SOUND_ROUTE(4, "lspeaker", 0.40)
+ MCFG_SOUND_ROUTE(5, "rspeaker", 0.40)
MACHINE_CONFIG_END
@@ -121,4 +124,3 @@ READ8_MEMBER(msx_cart_moonsound::read_c0)
LOG(("moonsound: read 0xc0\n"));
return 0x00;
}
-
diff --git a/src/emu/bus/msx_cart/moonsound.h b/src/devices/bus/msx_cart/moonsound.h
index 930fedb363c..e09aa0e58d2 100644
--- a/src/emu/bus/msx_cart/moonsound.h
+++ b/src/devices/bus/msx_cart/moonsound.h
@@ -31,7 +31,6 @@ public:
private:
required_device<ymf278b_device> m_ymf278b;
-
};
diff --git a/src/emu/bus/msx_cart/msx_audio.c b/src/devices/bus/msx_cart/msx_audio.c
index 640dbc02b07..640dbc02b07 100644
--- a/src/emu/bus/msx_cart/msx_audio.c
+++ b/src/devices/bus/msx_cart/msx_audio.c
diff --git a/src/emu/bus/msx_cart/msx_audio.h b/src/devices/bus/msx_cart/msx_audio.h
index f62462e29a5..f62462e29a5 100644
--- a/src/emu/bus/msx_cart/msx_audio.h
+++ b/src/devices/bus/msx_cart/msx_audio.h
diff --git a/src/emu/bus/msx_cart/msx_audio_kb.c b/src/devices/bus/msx_cart/msx_audio_kb.c
index eb6ca123c39..eb6ca123c39 100644
--- a/src/emu/bus/msx_cart/msx_audio_kb.c
+++ b/src/devices/bus/msx_cart/msx_audio_kb.c
diff --git a/src/emu/bus/msx_cart/msx_audio_kb.h b/src/devices/bus/msx_cart/msx_audio_kb.h
index db09bf64dd9..db09bf64dd9 100644
--- a/src/emu/bus/msx_cart/msx_audio_kb.h
+++ b/src/devices/bus/msx_cart/msx_audio_kb.h
diff --git a/src/emu/bus/msx_cart/msxdos2.c b/src/devices/bus/msx_cart/msxdos2.c
index b3c127a10cb..b3c127a10cb 100644
--- a/src/emu/bus/msx_cart/msxdos2.c
+++ b/src/devices/bus/msx_cart/msxdos2.c
diff --git a/src/emu/bus/msx_cart/msxdos2.h b/src/devices/bus/msx_cart/msxdos2.h
index 1209b102372..1209b102372 100644
--- a/src/emu/bus/msx_cart/msxdos2.h
+++ b/src/devices/bus/msx_cart/msxdos2.h
diff --git a/src/emu/bus/msx_cart/nomapper.c b/src/devices/bus/msx_cart/nomapper.c
index 922649d5c1f..922649d5c1f 100644
--- a/src/emu/bus/msx_cart/nomapper.c
+++ b/src/devices/bus/msx_cart/nomapper.c
diff --git a/src/emu/bus/msx_cart/nomapper.h b/src/devices/bus/msx_cart/nomapper.h
index b0c197d2545..b0c197d2545 100644
--- a/src/emu/bus/msx_cart/nomapper.h
+++ b/src/devices/bus/msx_cart/nomapper.h
diff --git a/src/emu/bus/msx_cart/rtype.c b/src/devices/bus/msx_cart/rtype.c
index e09a57894d7..e09a57894d7 100644
--- a/src/emu/bus/msx_cart/rtype.c
+++ b/src/devices/bus/msx_cart/rtype.c
diff --git a/src/emu/bus/msx_cart/rtype.h b/src/devices/bus/msx_cart/rtype.h
index e6bfec30de8..e6bfec30de8 100644
--- a/src/emu/bus/msx_cart/rtype.h
+++ b/src/devices/bus/msx_cart/rtype.h
diff --git a/src/emu/bus/msx_cart/super_swangi.c b/src/devices/bus/msx_cart/super_swangi.c
index 61dffe0d567..61dffe0d567 100644
--- a/src/emu/bus/msx_cart/super_swangi.c
+++ b/src/devices/bus/msx_cart/super_swangi.c
diff --git a/src/emu/bus/msx_cart/super_swangi.h b/src/devices/bus/msx_cart/super_swangi.h
index a71bf7fe250..a71bf7fe250 100644
--- a/src/emu/bus/msx_cart/super_swangi.h
+++ b/src/devices/bus/msx_cart/super_swangi.h
diff --git a/src/emu/bus/msx_cart/superloderunner.c b/src/devices/bus/msx_cart/superloderunner.c
index c8bd6f6c973..c8bd6f6c973 100644
--- a/src/emu/bus/msx_cart/superloderunner.c
+++ b/src/devices/bus/msx_cart/superloderunner.c
diff --git a/src/emu/bus/msx_cart/superloderunner.h b/src/devices/bus/msx_cart/superloderunner.h
index f3737081b98..f3737081b98 100644
--- a/src/emu/bus/msx_cart/superloderunner.h
+++ b/src/devices/bus/msx_cart/superloderunner.h
diff --git a/src/emu/bus/msx_cart/yamaha.c b/src/devices/bus/msx_cart/yamaha.c
index b78ec43fb9f..b78ec43fb9f 100644
--- a/src/emu/bus/msx_cart/yamaha.c
+++ b/src/devices/bus/msx_cart/yamaha.c
diff --git a/src/emu/bus/msx_cart/yamaha.h b/src/devices/bus/msx_cart/yamaha.h
index c186ad52e16..c186ad52e16 100644
--- a/src/emu/bus/msx_cart/yamaha.h
+++ b/src/devices/bus/msx_cart/yamaha.h
diff --git a/src/emu/bus/msx_slot/bunsetsu.c b/src/devices/bus/msx_slot/bunsetsu.c
index b8c1e7b4471..b8c1e7b4471 100644
--- a/src/emu/bus/msx_slot/bunsetsu.c
+++ b/src/devices/bus/msx_slot/bunsetsu.c
diff --git a/src/emu/bus/msx_slot/bunsetsu.h b/src/devices/bus/msx_slot/bunsetsu.h
index 4da57dc565b..4da57dc565b 100644
--- a/src/emu/bus/msx_slot/bunsetsu.h
+++ b/src/devices/bus/msx_slot/bunsetsu.h
diff --git a/src/emu/bus/msx_slot/cartridge.c b/src/devices/bus/msx_slot/cartridge.c
index a7d79be1a51..a7d79be1a51 100644
--- a/src/emu/bus/msx_slot/cartridge.c
+++ b/src/devices/bus/msx_slot/cartridge.c
diff --git a/src/emu/bus/msx_slot/cartridge.h b/src/devices/bus/msx_slot/cartridge.h
index 865faad0f0f..865faad0f0f 100644
--- a/src/emu/bus/msx_slot/cartridge.h
+++ b/src/devices/bus/msx_slot/cartridge.h
diff --git a/src/emu/bus/msx_slot/disk.c b/src/devices/bus/msx_slot/disk.c
index 799f05b9337..799f05b9337 100644
--- a/src/emu/bus/msx_slot/disk.c
+++ b/src/devices/bus/msx_slot/disk.c
diff --git a/src/emu/bus/msx_slot/disk.h b/src/devices/bus/msx_slot/disk.h
index 34de73f69e9..34de73f69e9 100644
--- a/src/emu/bus/msx_slot/disk.h
+++ b/src/devices/bus/msx_slot/disk.h
diff --git a/src/emu/bus/msx_slot/fs4600.c b/src/devices/bus/msx_slot/fs4600.c
index f6ad2b8c892..f6ad2b8c892 100644
--- a/src/emu/bus/msx_slot/fs4600.c
+++ b/src/devices/bus/msx_slot/fs4600.c
diff --git a/src/emu/bus/msx_slot/fs4600.h b/src/devices/bus/msx_slot/fs4600.h
index c383ba49e30..c383ba49e30 100644
--- a/src/emu/bus/msx_slot/fs4600.h
+++ b/src/devices/bus/msx_slot/fs4600.h
diff --git a/src/emu/bus/msx_slot/music.c b/src/devices/bus/msx_slot/music.c
index 5c7d0905427..5c7d0905427 100644
--- a/src/emu/bus/msx_slot/music.c
+++ b/src/devices/bus/msx_slot/music.c
diff --git a/src/emu/bus/msx_slot/music.h b/src/devices/bus/msx_slot/music.h
index 8cbefb4bc0c..8cbefb4bc0c 100644
--- a/src/emu/bus/msx_slot/music.h
+++ b/src/devices/bus/msx_slot/music.h
diff --git a/src/emu/bus/msx_slot/panasonic08.c b/src/devices/bus/msx_slot/panasonic08.c
index df78f76a27b..df78f76a27b 100644
--- a/src/emu/bus/msx_slot/panasonic08.c
+++ b/src/devices/bus/msx_slot/panasonic08.c
diff --git a/src/emu/bus/msx_slot/panasonic08.h b/src/devices/bus/msx_slot/panasonic08.h
index c9be040678f..c9be040678f 100644
--- a/src/emu/bus/msx_slot/panasonic08.h
+++ b/src/devices/bus/msx_slot/panasonic08.h
diff --git a/src/emu/bus/msx_slot/ram.c b/src/devices/bus/msx_slot/ram.c
index cb07422358a..cb07422358a 100644
--- a/src/emu/bus/msx_slot/ram.c
+++ b/src/devices/bus/msx_slot/ram.c
diff --git a/src/emu/bus/msx_slot/ram.h b/src/devices/bus/msx_slot/ram.h
index 1b85ee8ac5d..1b85ee8ac5d 100644
--- a/src/emu/bus/msx_slot/ram.h
+++ b/src/devices/bus/msx_slot/ram.h
diff --git a/src/emu/bus/msx_slot/ram_mm.c b/src/devices/bus/msx_slot/ram_mm.c
index 4d70fff80bc..4d70fff80bc 100644
--- a/src/emu/bus/msx_slot/ram_mm.c
+++ b/src/devices/bus/msx_slot/ram_mm.c
diff --git a/src/emu/bus/msx_slot/ram_mm.h b/src/devices/bus/msx_slot/ram_mm.h
index 59eb7f18e89..59eb7f18e89 100644
--- a/src/emu/bus/msx_slot/ram_mm.h
+++ b/src/devices/bus/msx_slot/ram_mm.h
diff --git a/src/emu/bus/msx_slot/rom.c b/src/devices/bus/msx_slot/rom.c
index 609201f60d1..609201f60d1 100644
--- a/src/emu/bus/msx_slot/rom.c
+++ b/src/devices/bus/msx_slot/rom.c
diff --git a/src/emu/bus/msx_slot/rom.h b/src/devices/bus/msx_slot/rom.h
index 6317d28f3c0..6317d28f3c0 100644
--- a/src/emu/bus/msx_slot/rom.h
+++ b/src/devices/bus/msx_slot/rom.h
diff --git a/src/emu/bus/msx_slot/slot.c b/src/devices/bus/msx_slot/slot.c
index db8e8f89ae7..db8e8f89ae7 100644
--- a/src/emu/bus/msx_slot/slot.c
+++ b/src/devices/bus/msx_slot/slot.c
diff --git a/src/emu/bus/msx_slot/slot.h b/src/devices/bus/msx_slot/slot.h
index fe5a540a19e..fe5a540a19e 100644
--- a/src/emu/bus/msx_slot/slot.h
+++ b/src/devices/bus/msx_slot/slot.h
diff --git a/src/emu/bus/msx_slot/sony08.c b/src/devices/bus/msx_slot/sony08.c
index 66a5f733e2d..66a5f733e2d 100644
--- a/src/emu/bus/msx_slot/sony08.c
+++ b/src/devices/bus/msx_slot/sony08.c
diff --git a/src/emu/bus/msx_slot/sony08.h b/src/devices/bus/msx_slot/sony08.h
index 28798f9bc06..28798f9bc06 100644
--- a/src/emu/bus/msx_slot/sony08.h
+++ b/src/devices/bus/msx_slot/sony08.h
diff --git a/src/emu/bus/nasbus/avc.c b/src/devices/bus/nasbus/avc.c
index 35b86e09420..8960a19573f 100644
--- a/src/emu/bus/nasbus/avc.c
+++ b/src/devices/bus/nasbus/avc.c
@@ -25,6 +25,8 @@ static MACHINE_CONFIG_FRAGMENT( nascom_avc )
MCFG_SCREEN_RAW_PARAMS(16250000, 1024, 0, 768, 320, 0, 256)
MCFG_SCREEN_UPDATE_DEVICE("mc6845", mc6845_device, screen_update)
+ MCFG_PALETTE_ADD_3BIT_RGB("palette")
+
MCFG_MC6845_ADD("mc6845", MC6845, "screen", XTAL_16MHz / 8)
MCFG_MC6845_SHOW_BORDER_AREA(false)
MCFG_MC6845_CHAR_WIDTH(6)
@@ -36,18 +38,6 @@ machine_config_constructor nascom_avc_device::device_mconfig_additions() const
return MACHINE_CONFIG_NAME( nascom_avc );
}
-const rgb_t nascom_avc_device::m_palette[] =
-{
- rgb_t::black,
- rgb_t(0xff, 0x00, 0x00),
- rgb_t(0x00, 0xff, 0x00),
- rgb_t(0xff, 0xff, 0x00),
- rgb_t(0x00, 0x00, 0xff),
- rgb_t(0xff, 0x00, 0xff),
- rgb_t(0x00, 0xff, 0xff),
- rgb_t::white,
-};
-
//**************************************************************************
// LIVE DEVICE
@@ -61,6 +51,7 @@ nascom_avc_device::nascom_avc_device(const machine_config &mconfig, const char *
device_t(mconfig, NASCOM_AVC, "Nascom Advanced Video Card", tag, owner, clock, "nascom_avc", __FILE__),
device_nasbus_card_interface(mconfig, *this),
m_crtc(*this, "mc6845"),
+ m_palette(*this, "palette"),
m_control(0x80)
{
}
@@ -130,7 +121,7 @@ MC6845_UPDATE_ROW( nascom_avc_device::crtc_update_row )
}
// plot the pixel
- bitmap.pix32(y, x) = m_palette[(b << 2) | (g << 1) | (r << 0)];
+ bitmap.pix32(y, x) = m_palette->pen_color((b << 2) | (g << 1) | (r << 0));
}
}
diff --git a/src/emu/bus/nasbus/avc.h b/src/devices/bus/nasbus/avc.h
index bcd22b09050..754781fc70e 100644
--- a/src/emu/bus/nasbus/avc.h
+++ b/src/devices/bus/nasbus/avc.h
@@ -41,14 +41,13 @@ protected:
private:
required_device<mc6845_device> m_crtc;
+ required_device<palette_device> m_palette;
std::vector<UINT8> m_r_ram;
std::vector<UINT8> m_g_ram;
std::vector<UINT8> m_b_ram;
UINT8 m_control;
-
- static const rgb_t m_palette[];
};
// device type definition
diff --git a/src/emu/bus/nasbus/cards.c b/src/devices/bus/nasbus/cards.c
index 913c17d8759..913c17d8759 100644
--- a/src/emu/bus/nasbus/cards.c
+++ b/src/devices/bus/nasbus/cards.c
diff --git a/src/emu/bus/nasbus/cards.h b/src/devices/bus/nasbus/cards.h
index f0e5fac912b..f0e5fac912b 100644
--- a/src/emu/bus/nasbus/cards.h
+++ b/src/devices/bus/nasbus/cards.h
diff --git a/src/emu/bus/nasbus/floppy.c b/src/devices/bus/nasbus/floppy.c
index cf68765a0ae..cf68765a0ae 100644
--- a/src/emu/bus/nasbus/floppy.c
+++ b/src/devices/bus/nasbus/floppy.c
diff --git a/src/emu/bus/nasbus/floppy.h b/src/devices/bus/nasbus/floppy.h
index 9315bb92df1..9315bb92df1 100644
--- a/src/emu/bus/nasbus/floppy.h
+++ b/src/devices/bus/nasbus/floppy.h
diff --git a/src/emu/bus/nasbus/nasbus.c b/src/devices/bus/nasbus/nasbus.c
index 739ef9decdf..739ef9decdf 100644
--- a/src/emu/bus/nasbus/nasbus.c
+++ b/src/devices/bus/nasbus/nasbus.c
diff --git a/src/emu/bus/nasbus/nasbus.h b/src/devices/bus/nasbus/nasbus.h
index f7766bc0426..f7766bc0426 100644
--- a/src/emu/bus/nasbus/nasbus.h
+++ b/src/devices/bus/nasbus/nasbus.h
diff --git a/src/emu/bus/neogeo/banked_cart.c b/src/devices/bus/neogeo/banked_cart.c
index 9d0e1f06cad..9d0e1f06cad 100644
--- a/src/emu/bus/neogeo/banked_cart.c
+++ b/src/devices/bus/neogeo/banked_cart.c
diff --git a/src/emu/bus/neogeo/banked_cart.h b/src/devices/bus/neogeo/banked_cart.h
index f81b8f5b9c9..f81b8f5b9c9 100644
--- a/src/emu/bus/neogeo/banked_cart.h
+++ b/src/devices/bus/neogeo/banked_cart.h
diff --git a/src/emu/bus/neogeo/bootleg_cart.c b/src/devices/bus/neogeo/bootleg_cart.c
index 45a4563f88d..45a4563f88d 100644
--- a/src/emu/bus/neogeo/bootleg_cart.c
+++ b/src/devices/bus/neogeo/bootleg_cart.c
diff --git a/src/emu/bus/neogeo/bootleg_cart.h b/src/devices/bus/neogeo/bootleg_cart.h
index a3932c25df8..a3932c25df8 100644
--- a/src/emu/bus/neogeo/bootleg_cart.h
+++ b/src/devices/bus/neogeo/bootleg_cart.h
diff --git a/src/emu/bus/neogeo/bootleg_hybrid_cart.c b/src/devices/bus/neogeo/bootleg_hybrid_cart.c
index 5d677c8cc74..5d677c8cc74 100644
--- a/src/emu/bus/neogeo/bootleg_hybrid_cart.c
+++ b/src/devices/bus/neogeo/bootleg_hybrid_cart.c
diff --git a/src/emu/bus/neogeo/bootleg_hybrid_cart.h b/src/devices/bus/neogeo/bootleg_hybrid_cart.h
index ace1886e840..ace1886e840 100644
--- a/src/emu/bus/neogeo/bootleg_hybrid_cart.h
+++ b/src/devices/bus/neogeo/bootleg_hybrid_cart.h
diff --git a/src/emu/bus/neogeo/bootleg_prot.c b/src/devices/bus/neogeo/bootleg_prot.c
index aa5ad7da084..aa5ad7da084 100644
--- a/src/emu/bus/neogeo/bootleg_prot.c
+++ b/src/devices/bus/neogeo/bootleg_prot.c
diff --git a/src/emu/bus/neogeo/bootleg_prot.h b/src/devices/bus/neogeo/bootleg_prot.h
index 6ad1f257845..6ad1f257845 100644
--- a/src/emu/bus/neogeo/bootleg_prot.h
+++ b/src/devices/bus/neogeo/bootleg_prot.h
diff --git a/src/emu/bus/neogeo/cmc_cart.c b/src/devices/bus/neogeo/cmc_cart.c
index c528366b717..c528366b717 100644
--- a/src/emu/bus/neogeo/cmc_cart.c
+++ b/src/devices/bus/neogeo/cmc_cart.c
diff --git a/src/emu/bus/neogeo/cmc_cart.h b/src/devices/bus/neogeo/cmc_cart.h
index 2e07e29c93f..2e07e29c93f 100644
--- a/src/emu/bus/neogeo/cmc_cart.h
+++ b/src/devices/bus/neogeo/cmc_cart.h
diff --git a/src/emu/bus/neogeo/cmc_prot.c b/src/devices/bus/neogeo/cmc_prot.c
index f4ccc1ecada..f4ccc1ecada 100644
--- a/src/emu/bus/neogeo/cmc_prot.c
+++ b/src/devices/bus/neogeo/cmc_prot.c
diff --git a/src/emu/bus/neogeo/cmc_prot.h b/src/devices/bus/neogeo/cmc_prot.h
index 8660c3bf3ed..8660c3bf3ed 100644
--- a/src/emu/bus/neogeo/cmc_prot.h
+++ b/src/devices/bus/neogeo/cmc_prot.h
diff --git a/src/emu/bus/neogeo/fatfury2_cart.c b/src/devices/bus/neogeo/fatfury2_cart.c
index 047ca79a2eb..047ca79a2eb 100644
--- a/src/emu/bus/neogeo/fatfury2_cart.c
+++ b/src/devices/bus/neogeo/fatfury2_cart.c
diff --git a/src/emu/bus/neogeo/fatfury2_cart.h b/src/devices/bus/neogeo/fatfury2_cart.h
index 1356d130bf9..1356d130bf9 100644
--- a/src/emu/bus/neogeo/fatfury2_cart.h
+++ b/src/devices/bus/neogeo/fatfury2_cart.h
diff --git a/src/emu/bus/neogeo/fatfury2_prot.c b/src/devices/bus/neogeo/fatfury2_prot.c
index 07e483dbc44..07e483dbc44 100644
--- a/src/emu/bus/neogeo/fatfury2_prot.c
+++ b/src/devices/bus/neogeo/fatfury2_prot.c
diff --git a/src/emu/bus/neogeo/fatfury2_prot.h b/src/devices/bus/neogeo/fatfury2_prot.h
index 2abe9c92da6..2abe9c92da6 100644
--- a/src/emu/bus/neogeo/fatfury2_prot.h
+++ b/src/devices/bus/neogeo/fatfury2_prot.h
diff --git a/src/emu/bus/neogeo/kof2002_cart.c b/src/devices/bus/neogeo/kof2002_cart.c
index 9726bd34b4b..9726bd34b4b 100644
--- a/src/emu/bus/neogeo/kof2002_cart.c
+++ b/src/devices/bus/neogeo/kof2002_cart.c
diff --git a/src/emu/bus/neogeo/kof2002_cart.h b/src/devices/bus/neogeo/kof2002_cart.h
index 7d995c88adc..7d995c88adc 100644
--- a/src/emu/bus/neogeo/kof2002_cart.h
+++ b/src/devices/bus/neogeo/kof2002_cart.h
diff --git a/src/emu/bus/neogeo/kof2002_prot.c b/src/devices/bus/neogeo/kof2002_prot.c
index f234602a0c2..f234602a0c2 100644
--- a/src/emu/bus/neogeo/kof2002_prot.c
+++ b/src/devices/bus/neogeo/kof2002_prot.c
diff --git a/src/emu/bus/neogeo/kof2002_prot.h b/src/devices/bus/neogeo/kof2002_prot.h
index b0abde55809..b0abde55809 100644
--- a/src/emu/bus/neogeo/kof2002_prot.h
+++ b/src/devices/bus/neogeo/kof2002_prot.h
diff --git a/src/emu/bus/neogeo/kof98_cart.c b/src/devices/bus/neogeo/kof98_cart.c
index 6314522e4ff..6314522e4ff 100644
--- a/src/emu/bus/neogeo/kof98_cart.c
+++ b/src/devices/bus/neogeo/kof98_cart.c
diff --git a/src/emu/bus/neogeo/kof98_cart.h b/src/devices/bus/neogeo/kof98_cart.h
index f0054d8c4bd..f0054d8c4bd 100644
--- a/src/emu/bus/neogeo/kof98_cart.h
+++ b/src/devices/bus/neogeo/kof98_cart.h
diff --git a/src/emu/bus/neogeo/kof98_prot.c b/src/devices/bus/neogeo/kof98_prot.c
index fefe7c190d3..fefe7c190d3 100644
--- a/src/emu/bus/neogeo/kof98_prot.c
+++ b/src/devices/bus/neogeo/kof98_prot.c
diff --git a/src/emu/bus/neogeo/kof98_prot.h b/src/devices/bus/neogeo/kof98_prot.h
index bdd634cbb04..bdd634cbb04 100644
--- a/src/emu/bus/neogeo/kof98_prot.h
+++ b/src/devices/bus/neogeo/kof98_prot.h
diff --git a/src/emu/bus/neogeo/kog_prot.c b/src/devices/bus/neogeo/kog_prot.c
index d3caaff3e15..d3caaff3e15 100644
--- a/src/emu/bus/neogeo/kog_prot.c
+++ b/src/devices/bus/neogeo/kog_prot.c
diff --git a/src/emu/bus/neogeo/kog_prot.h b/src/devices/bus/neogeo/kog_prot.h
index c14b6d919d0..c14b6d919d0 100644
--- a/src/emu/bus/neogeo/kog_prot.h
+++ b/src/devices/bus/neogeo/kog_prot.h
diff --git a/src/emu/bus/neogeo/mslugx_cart.c b/src/devices/bus/neogeo/mslugx_cart.c
index d6bd6388864..d6bd6388864 100644
--- a/src/emu/bus/neogeo/mslugx_cart.c
+++ b/src/devices/bus/neogeo/mslugx_cart.c
diff --git a/src/emu/bus/neogeo/mslugx_cart.h b/src/devices/bus/neogeo/mslugx_cart.h
index 70d25d2338a..70d25d2338a 100644
--- a/src/emu/bus/neogeo/mslugx_cart.h
+++ b/src/devices/bus/neogeo/mslugx_cart.h
diff --git a/src/emu/bus/neogeo/mslugx_prot.c b/src/devices/bus/neogeo/mslugx_prot.c
index 567f308414c..567f308414c 100644
--- a/src/emu/bus/neogeo/mslugx_prot.c
+++ b/src/devices/bus/neogeo/mslugx_prot.c
diff --git a/src/emu/bus/neogeo/mslugx_prot.h b/src/devices/bus/neogeo/mslugx_prot.h
index dabd8425503..dabd8425503 100644
--- a/src/emu/bus/neogeo/mslugx_prot.h
+++ b/src/devices/bus/neogeo/mslugx_prot.h
diff --git a/src/emu/bus/neogeo/neogeo_carts.c b/src/devices/bus/neogeo/neogeo_carts.c
index 8f9d62037b4..8f9d62037b4 100644
--- a/src/emu/bus/neogeo/neogeo_carts.c
+++ b/src/devices/bus/neogeo/neogeo_carts.c
diff --git a/src/emu/bus/neogeo/neogeo_carts.h b/src/devices/bus/neogeo/neogeo_carts.h
index f6925b96e98..f6925b96e98 100644
--- a/src/emu/bus/neogeo/neogeo_carts.h
+++ b/src/devices/bus/neogeo/neogeo_carts.h
diff --git a/src/emu/bus/neogeo/neogeo_helper.c b/src/devices/bus/neogeo/neogeo_helper.c
index fdbd9ba7203..fdbd9ba7203 100644
--- a/src/emu/bus/neogeo/neogeo_helper.c
+++ b/src/devices/bus/neogeo/neogeo_helper.c
diff --git a/src/emu/bus/neogeo/neogeo_helper.h b/src/devices/bus/neogeo/neogeo_helper.h
index 3d125f7fd62..3d125f7fd62 100644
--- a/src/emu/bus/neogeo/neogeo_helper.h
+++ b/src/devices/bus/neogeo/neogeo_helper.h
diff --git a/src/emu/bus/neogeo/neogeo_intf.c b/src/devices/bus/neogeo/neogeo_intf.c
index 92f7ba5be19..92f7ba5be19 100644
--- a/src/emu/bus/neogeo/neogeo_intf.c
+++ b/src/devices/bus/neogeo/neogeo_intf.c
diff --git a/src/emu/bus/neogeo/neogeo_intf.h b/src/devices/bus/neogeo/neogeo_intf.h
index 5c6947ff52d..5c6947ff52d 100644
--- a/src/emu/bus/neogeo/neogeo_intf.h
+++ b/src/devices/bus/neogeo/neogeo_intf.h
diff --git a/src/emu/bus/neogeo/neogeo_slot.c b/src/devices/bus/neogeo/neogeo_slot.c
index 0c8fa80887e..0c8fa80887e 100644
--- a/src/emu/bus/neogeo/neogeo_slot.c
+++ b/src/devices/bus/neogeo/neogeo_slot.c
diff --git a/src/emu/bus/neogeo/neogeo_slot.h b/src/devices/bus/neogeo/neogeo_slot.h
index 3020a7045a9..3020a7045a9 100644
--- a/src/emu/bus/neogeo/neogeo_slot.h
+++ b/src/devices/bus/neogeo/neogeo_slot.h
diff --git a/src/emu/bus/neogeo/pcm2_cart.c b/src/devices/bus/neogeo/pcm2_cart.c
index 04eede0ebe9..04eede0ebe9 100644
--- a/src/emu/bus/neogeo/pcm2_cart.c
+++ b/src/devices/bus/neogeo/pcm2_cart.c
diff --git a/src/emu/bus/neogeo/pcm2_cart.h b/src/devices/bus/neogeo/pcm2_cart.h
index 5cbb31656fc..5cbb31656fc 100644
--- a/src/emu/bus/neogeo/pcm2_cart.h
+++ b/src/devices/bus/neogeo/pcm2_cart.h
diff --git a/src/emu/bus/neogeo/pcm2_prot.c b/src/devices/bus/neogeo/pcm2_prot.c
index 6ee156712e9..6ee156712e9 100644
--- a/src/emu/bus/neogeo/pcm2_prot.c
+++ b/src/devices/bus/neogeo/pcm2_prot.c
diff --git a/src/emu/bus/neogeo/pcm2_prot.h b/src/devices/bus/neogeo/pcm2_prot.h
index 7920b745970..7920b745970 100644
--- a/src/emu/bus/neogeo/pcm2_prot.h
+++ b/src/devices/bus/neogeo/pcm2_prot.h
diff --git a/src/emu/bus/neogeo/pvc_cart.c b/src/devices/bus/neogeo/pvc_cart.c
index ee587724b7f..ee587724b7f 100644
--- a/src/emu/bus/neogeo/pvc_cart.c
+++ b/src/devices/bus/neogeo/pvc_cart.c
diff --git a/src/emu/bus/neogeo/pvc_cart.h b/src/devices/bus/neogeo/pvc_cart.h
index e3e409081c4..e3e409081c4 100644
--- a/src/emu/bus/neogeo/pvc_cart.h
+++ b/src/devices/bus/neogeo/pvc_cart.h
diff --git a/src/emu/bus/neogeo/pvc_prot.c b/src/devices/bus/neogeo/pvc_prot.c
index 95b8cfeb770..95b8cfeb770 100644
--- a/src/emu/bus/neogeo/pvc_prot.c
+++ b/src/devices/bus/neogeo/pvc_prot.c
diff --git a/src/emu/bus/neogeo/pvc_prot.h b/src/devices/bus/neogeo/pvc_prot.h
index 794783cc4dd..794783cc4dd 100644
--- a/src/emu/bus/neogeo/pvc_prot.h
+++ b/src/devices/bus/neogeo/pvc_prot.h
diff --git a/src/emu/bus/neogeo/rom.c b/src/devices/bus/neogeo/rom.c
index 085e68edec2..085e68edec2 100644
--- a/src/emu/bus/neogeo/rom.c
+++ b/src/devices/bus/neogeo/rom.c
diff --git a/src/emu/bus/neogeo/rom.h b/src/devices/bus/neogeo/rom.h
index 9394a7ec5bd..9394a7ec5bd 100644
--- a/src/emu/bus/neogeo/rom.h
+++ b/src/devices/bus/neogeo/rom.h
diff --git a/src/emu/bus/neogeo/sbp_prot.c b/src/devices/bus/neogeo/sbp_prot.c
index a286bbbb88e..a286bbbb88e 100644
--- a/src/emu/bus/neogeo/sbp_prot.c
+++ b/src/devices/bus/neogeo/sbp_prot.c
diff --git a/src/emu/bus/neogeo/sbp_prot.h b/src/devices/bus/neogeo/sbp_prot.h
index 7aa5ebb67da..7aa5ebb67da 100644
--- a/src/emu/bus/neogeo/sbp_prot.h
+++ b/src/devices/bus/neogeo/sbp_prot.h
diff --git a/src/emu/bus/neogeo/sma_cart.c b/src/devices/bus/neogeo/sma_cart.c
index 61e07b962f3..61e07b962f3 100644
--- a/src/emu/bus/neogeo/sma_cart.c
+++ b/src/devices/bus/neogeo/sma_cart.c
diff --git a/src/emu/bus/neogeo/sma_cart.h b/src/devices/bus/neogeo/sma_cart.h
index d0b0fb64432..d0b0fb64432 100644
--- a/src/emu/bus/neogeo/sma_cart.h
+++ b/src/devices/bus/neogeo/sma_cart.h
diff --git a/src/emu/bus/neogeo/sma_prot.c b/src/devices/bus/neogeo/sma_prot.c
index 5fe723375a0..5fe723375a0 100644
--- a/src/emu/bus/neogeo/sma_prot.c
+++ b/src/devices/bus/neogeo/sma_prot.c
diff --git a/src/emu/bus/neogeo/sma_prot.h b/src/devices/bus/neogeo/sma_prot.h
index 271e1248f4d..271e1248f4d 100644
--- a/src/emu/bus/neogeo/sma_prot.h
+++ b/src/devices/bus/neogeo/sma_prot.h
diff --git a/src/emu/bus/nes/2a03pur.c b/src/devices/bus/nes/2a03pur.c
index d7c807b63f2..d7c807b63f2 100644
--- a/src/emu/bus/nes/2a03pur.c
+++ b/src/devices/bus/nes/2a03pur.c
diff --git a/src/emu/bus/nes/2a03pur.h b/src/devices/bus/nes/2a03pur.h
index c0d80f67bd1..c0d80f67bd1 100644
--- a/src/emu/bus/nes/2a03pur.h
+++ b/src/devices/bus/nes/2a03pur.h
diff --git a/src/emu/bus/nes/act53.c b/src/devices/bus/nes/act53.c
index a09244b3a85..a09244b3a85 100644
--- a/src/emu/bus/nes/act53.c
+++ b/src/devices/bus/nes/act53.c
diff --git a/src/emu/bus/nes/act53.h b/src/devices/bus/nes/act53.h
index c870d600102..c870d600102 100644
--- a/src/emu/bus/nes/act53.h
+++ b/src/devices/bus/nes/act53.h
diff --git a/src/emu/bus/nes/aladdin.c b/src/devices/bus/nes/aladdin.c
index 67749cbe12d..67749cbe12d 100644
--- a/src/emu/bus/nes/aladdin.c
+++ b/src/devices/bus/nes/aladdin.c
diff --git a/src/emu/bus/nes/aladdin.h b/src/devices/bus/nes/aladdin.h
index 18bcf988a1b..18bcf988a1b 100644
--- a/src/emu/bus/nes/aladdin.h
+++ b/src/devices/bus/nes/aladdin.h
diff --git a/src/emu/bus/nes/ave.c b/src/devices/bus/nes/ave.c
index bc24f1294a5..bc24f1294a5 100644
--- a/src/emu/bus/nes/ave.c
+++ b/src/devices/bus/nes/ave.c
diff --git a/src/emu/bus/nes/ave.h b/src/devices/bus/nes/ave.h
index 9d35c3eb623..9d35c3eb623 100644
--- a/src/emu/bus/nes/ave.h
+++ b/src/devices/bus/nes/ave.h
diff --git a/src/emu/bus/nes/bandai.c b/src/devices/bus/nes/bandai.c
index 4aa54055969..4aa54055969 100644
--- a/src/emu/bus/nes/bandai.c
+++ b/src/devices/bus/nes/bandai.c
diff --git a/src/emu/bus/nes/bandai.h b/src/devices/bus/nes/bandai.h
index ae19589be37..ae19589be37 100644
--- a/src/emu/bus/nes/bandai.h
+++ b/src/devices/bus/nes/bandai.h
diff --git a/src/emu/bus/nes/benshieng.c b/src/devices/bus/nes/benshieng.c
index b96c75e6297..b96c75e6297 100644
--- a/src/emu/bus/nes/benshieng.c
+++ b/src/devices/bus/nes/benshieng.c
diff --git a/src/emu/bus/nes/benshieng.h b/src/devices/bus/nes/benshieng.h
index 2a042a432e4..2a042a432e4 100644
--- a/src/emu/bus/nes/benshieng.h
+++ b/src/devices/bus/nes/benshieng.h
diff --git a/src/emu/bus/nes/bootleg.c b/src/devices/bus/nes/bootleg.c
index 23b13b51711..23b13b51711 100644
--- a/src/emu/bus/nes/bootleg.c
+++ b/src/devices/bus/nes/bootleg.c
diff --git a/src/emu/bus/nes/bootleg.h b/src/devices/bus/nes/bootleg.h
index d261ba23c31..d261ba23c31 100644
--- a/src/emu/bus/nes/bootleg.h
+++ b/src/devices/bus/nes/bootleg.h
diff --git a/src/emu/bus/nes/camerica.c b/src/devices/bus/nes/camerica.c
index 61c41dd7867..61c41dd7867 100644
--- a/src/emu/bus/nes/camerica.c
+++ b/src/devices/bus/nes/camerica.c
diff --git a/src/emu/bus/nes/camerica.h b/src/devices/bus/nes/camerica.h
index 7c91bda1f91..7c91bda1f91 100644
--- a/src/emu/bus/nes/camerica.h
+++ b/src/devices/bus/nes/camerica.h
diff --git a/src/emu/bus/nes/cne.c b/src/devices/bus/nes/cne.c
index 76dc0a999f2..76dc0a999f2 100644
--- a/src/emu/bus/nes/cne.c
+++ b/src/devices/bus/nes/cne.c
diff --git a/src/emu/bus/nes/cne.h b/src/devices/bus/nes/cne.h
index d00ef06f5cc..d00ef06f5cc 100644
--- a/src/emu/bus/nes/cne.h
+++ b/src/devices/bus/nes/cne.h
diff --git a/src/emu/bus/nes/cony.c b/src/devices/bus/nes/cony.c
index a64063ebc8a..a64063ebc8a 100644
--- a/src/emu/bus/nes/cony.c
+++ b/src/devices/bus/nes/cony.c
diff --git a/src/emu/bus/nes/cony.h b/src/devices/bus/nes/cony.h
index e97cfdee81d..e97cfdee81d 100644
--- a/src/emu/bus/nes/cony.h
+++ b/src/devices/bus/nes/cony.h
diff --git a/src/emu/bus/nes/datach.c b/src/devices/bus/nes/datach.c
index 1bf562976ed..1bf562976ed 100644
--- a/src/emu/bus/nes/datach.c
+++ b/src/devices/bus/nes/datach.c
diff --git a/src/emu/bus/nes/datach.h b/src/devices/bus/nes/datach.h
index b804c079a6f..b804c079a6f 100644
--- a/src/emu/bus/nes/datach.h
+++ b/src/devices/bus/nes/datach.h
diff --git a/src/emu/bus/nes/discrete.c b/src/devices/bus/nes/discrete.c
index e0109a84d94..e0109a84d94 100644
--- a/src/emu/bus/nes/discrete.c
+++ b/src/devices/bus/nes/discrete.c
diff --git a/src/emu/bus/nes/discrete.h b/src/devices/bus/nes/discrete.h
index 1fb615c38f2..1fb615c38f2 100644
--- a/src/emu/bus/nes/discrete.h
+++ b/src/devices/bus/nes/discrete.h
diff --git a/src/emu/bus/nes/disksys.c b/src/devices/bus/nes/disksys.c
index 45cb275e9de..45cb275e9de 100644
--- a/src/emu/bus/nes/disksys.c
+++ b/src/devices/bus/nes/disksys.c
diff --git a/src/emu/bus/nes/disksys.h b/src/devices/bus/nes/disksys.h
index dcb2bd75c0c..dcb2bd75c0c 100644
--- a/src/emu/bus/nes/disksys.h
+++ b/src/devices/bus/nes/disksys.h
diff --git a/src/emu/bus/nes/event.c b/src/devices/bus/nes/event.c
index 4059b107a24..4059b107a24 100644
--- a/src/emu/bus/nes/event.c
+++ b/src/devices/bus/nes/event.c
diff --git a/src/emu/bus/nes/event.h b/src/devices/bus/nes/event.h
index 31076cec074..31076cec074 100644
--- a/src/emu/bus/nes/event.h
+++ b/src/devices/bus/nes/event.h
diff --git a/src/emu/bus/nes/ggenie.c b/src/devices/bus/nes/ggenie.c
index f9320a5fbee..f9320a5fbee 100644
--- a/src/emu/bus/nes/ggenie.c
+++ b/src/devices/bus/nes/ggenie.c
diff --git a/src/emu/bus/nes/ggenie.h b/src/devices/bus/nes/ggenie.h
index e4620e59e09..e4620e59e09 100644
--- a/src/emu/bus/nes/ggenie.h
+++ b/src/devices/bus/nes/ggenie.h
diff --git a/src/emu/bus/nes/henggedianzi.c b/src/devices/bus/nes/henggedianzi.c
index 5cda60e6938..5cda60e6938 100644
--- a/src/emu/bus/nes/henggedianzi.c
+++ b/src/devices/bus/nes/henggedianzi.c
diff --git a/src/emu/bus/nes/henggedianzi.h b/src/devices/bus/nes/henggedianzi.h
index a229ddbda4a..a229ddbda4a 100644
--- a/src/emu/bus/nes/henggedianzi.h
+++ b/src/devices/bus/nes/henggedianzi.h
diff --git a/src/emu/bus/nes/hes.c b/src/devices/bus/nes/hes.c
index ddfda0590d8..ddfda0590d8 100644
--- a/src/emu/bus/nes/hes.c
+++ b/src/devices/bus/nes/hes.c
diff --git a/src/emu/bus/nes/hes.h b/src/devices/bus/nes/hes.h
index 6a895a8ec1e..6a895a8ec1e 100644
--- a/src/emu/bus/nes/hes.h
+++ b/src/devices/bus/nes/hes.h
diff --git a/src/emu/bus/nes/hosenkan.c b/src/devices/bus/nes/hosenkan.c
index fae439ac903..fae439ac903 100644
--- a/src/emu/bus/nes/hosenkan.c
+++ b/src/devices/bus/nes/hosenkan.c
diff --git a/src/emu/bus/nes/hosenkan.h b/src/devices/bus/nes/hosenkan.h
index f775a513adb..f775a513adb 100644
--- a/src/emu/bus/nes/hosenkan.h
+++ b/src/devices/bus/nes/hosenkan.h
diff --git a/src/emu/bus/nes/irem.c b/src/devices/bus/nes/irem.c
index 43f5bab1d7d..43f5bab1d7d 100644
--- a/src/emu/bus/nes/irem.c
+++ b/src/devices/bus/nes/irem.c
diff --git a/src/emu/bus/nes/irem.h b/src/devices/bus/nes/irem.h
index 5c7924b4e7d..5c7924b4e7d 100644
--- a/src/emu/bus/nes/irem.h
+++ b/src/devices/bus/nes/irem.h
diff --git a/src/emu/bus/nes/jaleco.c b/src/devices/bus/nes/jaleco.c
index 28df5250118..28df5250118 100644
--- a/src/emu/bus/nes/jaleco.c
+++ b/src/devices/bus/nes/jaleco.c
diff --git a/src/emu/bus/nes/jaleco.h b/src/devices/bus/nes/jaleco.h
index facea12b75f..facea12b75f 100644
--- a/src/emu/bus/nes/jaleco.h
+++ b/src/devices/bus/nes/jaleco.h
diff --git a/src/emu/bus/nes/jy.c b/src/devices/bus/nes/jy.c
index 31358e2ab16..31358e2ab16 100644
--- a/src/emu/bus/nes/jy.c
+++ b/src/devices/bus/nes/jy.c
diff --git a/src/emu/bus/nes/jy.h b/src/devices/bus/nes/jy.h
index f2441654d57..f2441654d57 100644
--- a/src/emu/bus/nes/jy.h
+++ b/src/devices/bus/nes/jy.h
diff --git a/src/emu/bus/nes/kaiser.c b/src/devices/bus/nes/kaiser.c
index 1c7d7bced0a..1c7d7bced0a 100644
--- a/src/emu/bus/nes/kaiser.c
+++ b/src/devices/bus/nes/kaiser.c
diff --git a/src/emu/bus/nes/kaiser.h b/src/devices/bus/nes/kaiser.h
index b00f410ba05..b00f410ba05 100644
--- a/src/emu/bus/nes/kaiser.h
+++ b/src/devices/bus/nes/kaiser.h
diff --git a/src/emu/bus/nes/karastudio.c b/src/devices/bus/nes/karastudio.c
index 002bdf6eea3..002bdf6eea3 100644
--- a/src/emu/bus/nes/karastudio.c
+++ b/src/devices/bus/nes/karastudio.c
diff --git a/src/emu/bus/nes/karastudio.h b/src/devices/bus/nes/karastudio.h
index b0b671e0034..b0b671e0034 100644
--- a/src/emu/bus/nes/karastudio.h
+++ b/src/devices/bus/nes/karastudio.h
diff --git a/src/emu/bus/nes/konami.c b/src/devices/bus/nes/konami.c
index 4cd4f1fd872..4cd4f1fd872 100644
--- a/src/emu/bus/nes/konami.c
+++ b/src/devices/bus/nes/konami.c
diff --git a/src/emu/bus/nes/konami.h b/src/devices/bus/nes/konami.h
index 0ecece270fd..0ecece270fd 100644
--- a/src/emu/bus/nes/konami.h
+++ b/src/devices/bus/nes/konami.h
diff --git a/src/emu/bus/nes/legacy.c b/src/devices/bus/nes/legacy.c
index 3a452fd2f39..3a452fd2f39 100644
--- a/src/emu/bus/nes/legacy.c
+++ b/src/devices/bus/nes/legacy.c
diff --git a/src/emu/bus/nes/legacy.h b/src/devices/bus/nes/legacy.h
index 4b4667ab61b..4b4667ab61b 100644
--- a/src/emu/bus/nes/legacy.h
+++ b/src/devices/bus/nes/legacy.h
diff --git a/src/emu/bus/nes/mmc1.c b/src/devices/bus/nes/mmc1.c
index ff31250ee19..ff31250ee19 100644
--- a/src/emu/bus/nes/mmc1.c
+++ b/src/devices/bus/nes/mmc1.c
diff --git a/src/emu/bus/nes/mmc1.h b/src/devices/bus/nes/mmc1.h
index 05e25c46818..05e25c46818 100644
--- a/src/emu/bus/nes/mmc1.h
+++ b/src/devices/bus/nes/mmc1.h
diff --git a/src/emu/bus/nes/mmc2.c b/src/devices/bus/nes/mmc2.c
index b9ef5402a00..b9ef5402a00 100644
--- a/src/emu/bus/nes/mmc2.c
+++ b/src/devices/bus/nes/mmc2.c
diff --git a/src/emu/bus/nes/mmc2.h b/src/devices/bus/nes/mmc2.h
index 205fcf7a1d4..205fcf7a1d4 100644
--- a/src/emu/bus/nes/mmc2.h
+++ b/src/devices/bus/nes/mmc2.h
diff --git a/src/emu/bus/nes/mmc3.c b/src/devices/bus/nes/mmc3.c
index 8e81fac286f..8e81fac286f 100644
--- a/src/emu/bus/nes/mmc3.c
+++ b/src/devices/bus/nes/mmc3.c
diff --git a/src/emu/bus/nes/mmc3.h b/src/devices/bus/nes/mmc3.h
index ace03588bb4..ace03588bb4 100644
--- a/src/emu/bus/nes/mmc3.h
+++ b/src/devices/bus/nes/mmc3.h
diff --git a/src/emu/bus/nes/mmc3_clones.c b/src/devices/bus/nes/mmc3_clones.c
index 4a806d0fde2..4a806d0fde2 100644
--- a/src/emu/bus/nes/mmc3_clones.c
+++ b/src/devices/bus/nes/mmc3_clones.c
diff --git a/src/emu/bus/nes/mmc3_clones.h b/src/devices/bus/nes/mmc3_clones.h
index 9445395889d..9445395889d 100644
--- a/src/emu/bus/nes/mmc3_clones.h
+++ b/src/devices/bus/nes/mmc3_clones.h
diff --git a/src/emu/bus/nes/mmc5.c b/src/devices/bus/nes/mmc5.c
index 26149c48e50..26149c48e50 100644
--- a/src/emu/bus/nes/mmc5.c
+++ b/src/devices/bus/nes/mmc5.c
diff --git a/src/emu/bus/nes/mmc5.h b/src/devices/bus/nes/mmc5.h
index 46fe19af7a8..46fe19af7a8 100644
--- a/src/emu/bus/nes/mmc5.h
+++ b/src/devices/bus/nes/mmc5.h
diff --git a/src/emu/bus/nes/multigame.c b/src/devices/bus/nes/multigame.c
index ba65c3d0e7c..ba65c3d0e7c 100644
--- a/src/emu/bus/nes/multigame.c
+++ b/src/devices/bus/nes/multigame.c
diff --git a/src/emu/bus/nes/multigame.h b/src/devices/bus/nes/multigame.h
index dbc824dfd54..dbc824dfd54 100644
--- a/src/emu/bus/nes/multigame.h
+++ b/src/devices/bus/nes/multigame.h
diff --git a/src/emu/bus/nes/namcot.c b/src/devices/bus/nes/namcot.c
index 236effc4a24..236effc4a24 100644
--- a/src/emu/bus/nes/namcot.c
+++ b/src/devices/bus/nes/namcot.c
diff --git a/src/emu/bus/nes/namcot.h b/src/devices/bus/nes/namcot.h
index 268347068b9..268347068b9 100644
--- a/src/emu/bus/nes/namcot.h
+++ b/src/devices/bus/nes/namcot.h
diff --git a/src/emu/bus/nes/nanjing.c b/src/devices/bus/nes/nanjing.c
index 4d0fc022520..4d0fc022520 100644
--- a/src/emu/bus/nes/nanjing.c
+++ b/src/devices/bus/nes/nanjing.c
diff --git a/src/emu/bus/nes/nanjing.h b/src/devices/bus/nes/nanjing.h
index 40fb8c2e714..40fb8c2e714 100644
--- a/src/emu/bus/nes/nanjing.h
+++ b/src/devices/bus/nes/nanjing.h
diff --git a/src/emu/bus/nes/nes_carts.c b/src/devices/bus/nes/nes_carts.c
index 6acac2fc6e7..6acac2fc6e7 100644
--- a/src/emu/bus/nes/nes_carts.c
+++ b/src/devices/bus/nes/nes_carts.c
diff --git a/src/emu/bus/nes/nes_carts.h b/src/devices/bus/nes/nes_carts.h
index 144d7aa0a8e..144d7aa0a8e 100644
--- a/src/emu/bus/nes/nes_carts.h
+++ b/src/devices/bus/nes/nes_carts.h
diff --git a/src/emu/bus/nes/nes_ines.inc b/src/devices/bus/nes/nes_ines.inc
index ceb9581b82f..ceb9581b82f 100644
--- a/src/emu/bus/nes/nes_ines.inc
+++ b/src/devices/bus/nes/nes_ines.inc
diff --git a/src/emu/bus/nes/nes_pcb.inc b/src/devices/bus/nes/nes_pcb.inc
index 57cdf3d498c..57cdf3d498c 100644
--- a/src/emu/bus/nes/nes_pcb.inc
+++ b/src/devices/bus/nes/nes_pcb.inc
diff --git a/src/emu/bus/nes/nes_slot.c b/src/devices/bus/nes/nes_slot.c
index ec1b1f5f4af..ec1b1f5f4af 100644
--- a/src/emu/bus/nes/nes_slot.c
+++ b/src/devices/bus/nes/nes_slot.c
diff --git a/src/emu/bus/nes/nes_slot.h b/src/devices/bus/nes/nes_slot.h
index f959465af33..f959465af33 100644
--- a/src/emu/bus/nes/nes_slot.h
+++ b/src/devices/bus/nes/nes_slot.h
diff --git a/src/emu/bus/nes/nes_unif.inc b/src/devices/bus/nes/nes_unif.inc
index b501c590159..b501c590159 100644
--- a/src/emu/bus/nes/nes_unif.inc
+++ b/src/devices/bus/nes/nes_unif.inc
diff --git a/src/emu/bus/nes/ntdec.c b/src/devices/bus/nes/ntdec.c
index 4dd7e56a842..4dd7e56a842 100644
--- a/src/emu/bus/nes/ntdec.c
+++ b/src/devices/bus/nes/ntdec.c
diff --git a/src/emu/bus/nes/ntdec.h b/src/devices/bus/nes/ntdec.h
index 00712eecf1c..00712eecf1c 100644
--- a/src/emu/bus/nes/ntdec.h
+++ b/src/devices/bus/nes/ntdec.h
diff --git a/src/emu/bus/nes/nxrom.c b/src/devices/bus/nes/nxrom.c
index 431d384e7f1..431d384e7f1 100644
--- a/src/emu/bus/nes/nxrom.c
+++ b/src/devices/bus/nes/nxrom.c
diff --git a/src/emu/bus/nes/nxrom.h b/src/devices/bus/nes/nxrom.h
index fe105be0189..fe105be0189 100644
--- a/src/emu/bus/nes/nxrom.h
+++ b/src/devices/bus/nes/nxrom.h
diff --git a/src/emu/bus/nes/pirate.c b/src/devices/bus/nes/pirate.c
index 557831ed144..557831ed144 100644
--- a/src/emu/bus/nes/pirate.c
+++ b/src/devices/bus/nes/pirate.c
diff --git a/src/emu/bus/nes/pirate.h b/src/devices/bus/nes/pirate.h
index f11c53ced0d..f11c53ced0d 100644
--- a/src/emu/bus/nes/pirate.h
+++ b/src/devices/bus/nes/pirate.h
diff --git a/src/emu/bus/nes/pt554.c b/src/devices/bus/nes/pt554.c
index 4f6e843d8d1..4f6e843d8d1 100644
--- a/src/emu/bus/nes/pt554.c
+++ b/src/devices/bus/nes/pt554.c
diff --git a/src/emu/bus/nes/pt554.h b/src/devices/bus/nes/pt554.h
index 0d0bd7b60f4..0d0bd7b60f4 100644
--- a/src/emu/bus/nes/pt554.h
+++ b/src/devices/bus/nes/pt554.h
diff --git a/src/emu/bus/nes/racermate.c b/src/devices/bus/nes/racermate.c
index 6989c2254cb..6989c2254cb 100644
--- a/src/emu/bus/nes/racermate.c
+++ b/src/devices/bus/nes/racermate.c
diff --git a/src/emu/bus/nes/racermate.h b/src/devices/bus/nes/racermate.h
index 209c2f56601..209c2f56601 100644
--- a/src/emu/bus/nes/racermate.h
+++ b/src/devices/bus/nes/racermate.h
diff --git a/src/emu/bus/nes/rcm.c b/src/devices/bus/nes/rcm.c
index 28ec6e8277e..28ec6e8277e 100644
--- a/src/emu/bus/nes/rcm.c
+++ b/src/devices/bus/nes/rcm.c
diff --git a/src/emu/bus/nes/rcm.h b/src/devices/bus/nes/rcm.h
index 4a5c05b6aa9..4a5c05b6aa9 100644
--- a/src/emu/bus/nes/rcm.h
+++ b/src/devices/bus/nes/rcm.h
diff --git a/src/emu/bus/nes/rexsoft.c b/src/devices/bus/nes/rexsoft.c
index c0e261dc5fa..c0e261dc5fa 100644
--- a/src/emu/bus/nes/rexsoft.c
+++ b/src/devices/bus/nes/rexsoft.c
diff --git a/src/emu/bus/nes/rexsoft.h b/src/devices/bus/nes/rexsoft.h
index 81527759574..81527759574 100644
--- a/src/emu/bus/nes/rexsoft.h
+++ b/src/devices/bus/nes/rexsoft.h
diff --git a/src/emu/bus/nes/sachen.c b/src/devices/bus/nes/sachen.c
index 87edbc6a700..87edbc6a700 100644
--- a/src/emu/bus/nes/sachen.c
+++ b/src/devices/bus/nes/sachen.c
diff --git a/src/emu/bus/nes/sachen.h b/src/devices/bus/nes/sachen.h
index d6604578d3a..d6604578d3a 100644
--- a/src/emu/bus/nes/sachen.h
+++ b/src/devices/bus/nes/sachen.h
diff --git a/src/emu/bus/nes/somari.c b/src/devices/bus/nes/somari.c
index 634aad58b68..634aad58b68 100644
--- a/src/emu/bus/nes/somari.c
+++ b/src/devices/bus/nes/somari.c
diff --git a/src/emu/bus/nes/somari.h b/src/devices/bus/nes/somari.h
index 726df0a4926..726df0a4926 100644
--- a/src/emu/bus/nes/somari.h
+++ b/src/devices/bus/nes/somari.h
diff --git a/src/emu/bus/nes/sunsoft.c b/src/devices/bus/nes/sunsoft.c
index 48d95c05727..48d95c05727 100644
--- a/src/emu/bus/nes/sunsoft.c
+++ b/src/devices/bus/nes/sunsoft.c
diff --git a/src/emu/bus/nes/sunsoft.h b/src/devices/bus/nes/sunsoft.h
index 53ea24adeae..53ea24adeae 100644
--- a/src/emu/bus/nes/sunsoft.h
+++ b/src/devices/bus/nes/sunsoft.h
diff --git a/src/emu/bus/nes/sunsoft_dcs.c b/src/devices/bus/nes/sunsoft_dcs.c
index c7de9fd3040..c7de9fd3040 100644
--- a/src/emu/bus/nes/sunsoft_dcs.c
+++ b/src/devices/bus/nes/sunsoft_dcs.c
diff --git a/src/emu/bus/nes/sunsoft_dcs.h b/src/devices/bus/nes/sunsoft_dcs.h
index 67fcaf83b1e..67fcaf83b1e 100644
--- a/src/emu/bus/nes/sunsoft_dcs.h
+++ b/src/devices/bus/nes/sunsoft_dcs.h
diff --git a/src/emu/bus/nes/taito.c b/src/devices/bus/nes/taito.c
index 2338d91ee25..2338d91ee25 100644
--- a/src/emu/bus/nes/taito.c
+++ b/src/devices/bus/nes/taito.c
diff --git a/src/emu/bus/nes/taito.h b/src/devices/bus/nes/taito.h
index 9f2b57ca512..9f2b57ca512 100644
--- a/src/emu/bus/nes/taito.h
+++ b/src/devices/bus/nes/taito.h
diff --git a/src/emu/bus/nes/tengen.c b/src/devices/bus/nes/tengen.c
index 555b0da3f35..555b0da3f35 100644
--- a/src/emu/bus/nes/tengen.c
+++ b/src/devices/bus/nes/tengen.c
diff --git a/src/emu/bus/nes/tengen.h b/src/devices/bus/nes/tengen.h
index 8732e6e1321..8732e6e1321 100644
--- a/src/emu/bus/nes/tengen.h
+++ b/src/devices/bus/nes/tengen.h
diff --git a/src/emu/bus/nes/txc.c b/src/devices/bus/nes/txc.c
index ae36ece75ee..ae36ece75ee 100644
--- a/src/emu/bus/nes/txc.c
+++ b/src/devices/bus/nes/txc.c
diff --git a/src/emu/bus/nes/txc.h b/src/devices/bus/nes/txc.h
index e71e6fde249..e71e6fde249 100644
--- a/src/emu/bus/nes/txc.h
+++ b/src/devices/bus/nes/txc.h
diff --git a/src/emu/bus/nes/waixing.c b/src/devices/bus/nes/waixing.c
index 8a223a8e295..8a223a8e295 100644
--- a/src/emu/bus/nes/waixing.c
+++ b/src/devices/bus/nes/waixing.c
diff --git a/src/emu/bus/nes/waixing.h b/src/devices/bus/nes/waixing.h
index 42220c5523d..42220c5523d 100644
--- a/src/emu/bus/nes/waixing.h
+++ b/src/devices/bus/nes/waixing.h
diff --git a/src/emu/bus/nes_ctrl/4score.c b/src/devices/bus/nes_ctrl/4score.c
index 867af2669b1..867af2669b1 100644
--- a/src/emu/bus/nes_ctrl/4score.c
+++ b/src/devices/bus/nes_ctrl/4score.c
diff --git a/src/emu/bus/nes_ctrl/4score.h b/src/devices/bus/nes_ctrl/4score.h
index f4f17174957..f4f17174957 100644
--- a/src/emu/bus/nes_ctrl/4score.h
+++ b/src/devices/bus/nes_ctrl/4score.h
diff --git a/src/emu/bus/nes_ctrl/arkpaddle.c b/src/devices/bus/nes_ctrl/arkpaddle.c
index 897c35da000..897c35da000 100644
--- a/src/emu/bus/nes_ctrl/arkpaddle.c
+++ b/src/devices/bus/nes_ctrl/arkpaddle.c
diff --git a/src/emu/bus/nes_ctrl/arkpaddle.h b/src/devices/bus/nes_ctrl/arkpaddle.h
index 84fe327b7d4..84fe327b7d4 100644
--- a/src/emu/bus/nes_ctrl/arkpaddle.h
+++ b/src/devices/bus/nes_ctrl/arkpaddle.h
diff --git a/src/emu/bus/nes_ctrl/bcbattle.c b/src/devices/bus/nes_ctrl/bcbattle.c
index 96b0a5bda86..96b0a5bda86 100644
--- a/src/emu/bus/nes_ctrl/bcbattle.c
+++ b/src/devices/bus/nes_ctrl/bcbattle.c
diff --git a/src/emu/bus/nes_ctrl/bcbattle.h b/src/devices/bus/nes_ctrl/bcbattle.h
index c68d0bc669b..c68d0bc669b 100644
--- a/src/emu/bus/nes_ctrl/bcbattle.h
+++ b/src/devices/bus/nes_ctrl/bcbattle.h
diff --git a/src/emu/bus/nes_ctrl/ctrl.c b/src/devices/bus/nes_ctrl/ctrl.c
index d128b1cfb5e..d128b1cfb5e 100644
--- a/src/emu/bus/nes_ctrl/ctrl.c
+++ b/src/devices/bus/nes_ctrl/ctrl.c
diff --git a/src/emu/bus/nes_ctrl/ctrl.h b/src/devices/bus/nes_ctrl/ctrl.h
index 1c682c0491b..1c682c0491b 100644
--- a/src/emu/bus/nes_ctrl/ctrl.h
+++ b/src/devices/bus/nes_ctrl/ctrl.h
diff --git a/src/emu/bus/nes_ctrl/fckeybrd.c b/src/devices/bus/nes_ctrl/fckeybrd.c
index 946fb072e53..946fb072e53 100644
--- a/src/emu/bus/nes_ctrl/fckeybrd.c
+++ b/src/devices/bus/nes_ctrl/fckeybrd.c
diff --git a/src/emu/bus/nes_ctrl/fckeybrd.h b/src/devices/bus/nes_ctrl/fckeybrd.h
index 594c3bcae8e..594c3bcae8e 100644
--- a/src/emu/bus/nes_ctrl/fckeybrd.h
+++ b/src/devices/bus/nes_ctrl/fckeybrd.h
diff --git a/src/emu/bus/nes_ctrl/ftrainer.c b/src/devices/bus/nes_ctrl/ftrainer.c
index 491cc59539e..491cc59539e 100644
--- a/src/emu/bus/nes_ctrl/ftrainer.c
+++ b/src/devices/bus/nes_ctrl/ftrainer.c
diff --git a/src/emu/bus/nes_ctrl/ftrainer.h b/src/devices/bus/nes_ctrl/ftrainer.h
index bc546295c8f..bc546295c8f 100644
--- a/src/emu/bus/nes_ctrl/ftrainer.h
+++ b/src/devices/bus/nes_ctrl/ftrainer.h
diff --git a/src/emu/bus/nes_ctrl/hori.c b/src/devices/bus/nes_ctrl/hori.c
index cecf1f05dbc..cecf1f05dbc 100644
--- a/src/emu/bus/nes_ctrl/hori.c
+++ b/src/devices/bus/nes_ctrl/hori.c
diff --git a/src/emu/bus/nes_ctrl/hori.h b/src/devices/bus/nes_ctrl/hori.h
index 8df4fd892ee..8df4fd892ee 100644
--- a/src/emu/bus/nes_ctrl/hori.h
+++ b/src/devices/bus/nes_ctrl/hori.h
diff --git a/src/emu/bus/nes_ctrl/joypad.c b/src/devices/bus/nes_ctrl/joypad.c
index efe17fb8a62..efe17fb8a62 100644
--- a/src/emu/bus/nes_ctrl/joypad.c
+++ b/src/devices/bus/nes_ctrl/joypad.c
diff --git a/src/emu/bus/nes_ctrl/joypad.h b/src/devices/bus/nes_ctrl/joypad.h
index 87966386e8d..87966386e8d 100644
--- a/src/emu/bus/nes_ctrl/joypad.h
+++ b/src/devices/bus/nes_ctrl/joypad.h
diff --git a/src/emu/bus/nes_ctrl/konamihs.c b/src/devices/bus/nes_ctrl/konamihs.c
index 33be8576788..33be8576788 100644
--- a/src/emu/bus/nes_ctrl/konamihs.c
+++ b/src/devices/bus/nes_ctrl/konamihs.c
diff --git a/src/emu/bus/nes_ctrl/konamihs.h b/src/devices/bus/nes_ctrl/konamihs.h
index d2ec5b92b2a..d2ec5b92b2a 100644
--- a/src/emu/bus/nes_ctrl/konamihs.h
+++ b/src/devices/bus/nes_ctrl/konamihs.h
diff --git a/src/emu/bus/nes_ctrl/miracle.c b/src/devices/bus/nes_ctrl/miracle.c
index bcfc6fbadac..bcfc6fbadac 100644
--- a/src/emu/bus/nes_ctrl/miracle.c
+++ b/src/devices/bus/nes_ctrl/miracle.c
diff --git a/src/emu/bus/nes_ctrl/miracle.h b/src/devices/bus/nes_ctrl/miracle.h
index ee68cf7f357..ee68cf7f357 100644
--- a/src/emu/bus/nes_ctrl/miracle.h
+++ b/src/devices/bus/nes_ctrl/miracle.h
diff --git a/src/emu/bus/nes_ctrl/mjpanel.c b/src/devices/bus/nes_ctrl/mjpanel.c
index cb37aeb1c2a..cb37aeb1c2a 100644
--- a/src/emu/bus/nes_ctrl/mjpanel.c
+++ b/src/devices/bus/nes_ctrl/mjpanel.c
diff --git a/src/emu/bus/nes_ctrl/mjpanel.h b/src/devices/bus/nes_ctrl/mjpanel.h
index e48ee792a80..e48ee792a80 100644
--- a/src/emu/bus/nes_ctrl/mjpanel.h
+++ b/src/devices/bus/nes_ctrl/mjpanel.h
diff --git a/src/emu/bus/nes_ctrl/pachinko.c b/src/devices/bus/nes_ctrl/pachinko.c
index 8c61cf00c14..8c61cf00c14 100644
--- a/src/emu/bus/nes_ctrl/pachinko.c
+++ b/src/devices/bus/nes_ctrl/pachinko.c
diff --git a/src/emu/bus/nes_ctrl/pachinko.h b/src/devices/bus/nes_ctrl/pachinko.h
index 8d01ce6983d..8d01ce6983d 100644
--- a/src/emu/bus/nes_ctrl/pachinko.h
+++ b/src/devices/bus/nes_ctrl/pachinko.h
diff --git a/src/emu/bus/nes_ctrl/partytap.c b/src/devices/bus/nes_ctrl/partytap.c
index 3338a443423..3338a443423 100644
--- a/src/emu/bus/nes_ctrl/partytap.c
+++ b/src/devices/bus/nes_ctrl/partytap.c
diff --git a/src/emu/bus/nes_ctrl/partytap.h b/src/devices/bus/nes_ctrl/partytap.h
index 3fc29c19445..3fc29c19445 100644
--- a/src/emu/bus/nes_ctrl/partytap.h
+++ b/src/devices/bus/nes_ctrl/partytap.h
diff --git a/src/emu/bus/nes_ctrl/powerpad.c b/src/devices/bus/nes_ctrl/powerpad.c
index 569695d97ca..569695d97ca 100644
--- a/src/emu/bus/nes_ctrl/powerpad.c
+++ b/src/devices/bus/nes_ctrl/powerpad.c
diff --git a/src/emu/bus/nes_ctrl/powerpad.h b/src/devices/bus/nes_ctrl/powerpad.h
index 47463a9055c..47463a9055c 100644
--- a/src/emu/bus/nes_ctrl/powerpad.h
+++ b/src/devices/bus/nes_ctrl/powerpad.h
diff --git a/src/emu/bus/nes_ctrl/suborkey.c b/src/devices/bus/nes_ctrl/suborkey.c
index 8c6e6be7b3c..8c6e6be7b3c 100644
--- a/src/emu/bus/nes_ctrl/suborkey.c
+++ b/src/devices/bus/nes_ctrl/suborkey.c
diff --git a/src/emu/bus/nes_ctrl/suborkey.h b/src/devices/bus/nes_ctrl/suborkey.h
index 21f804da6f0..21f804da6f0 100644
--- a/src/emu/bus/nes_ctrl/suborkey.h
+++ b/src/devices/bus/nes_ctrl/suborkey.h
diff --git a/src/emu/bus/nes_ctrl/zapper.c b/src/devices/bus/nes_ctrl/zapper.c
index 422b9664f5e..422b9664f5e 100644
--- a/src/emu/bus/nes_ctrl/zapper.c
+++ b/src/devices/bus/nes_ctrl/zapper.c
diff --git a/src/emu/bus/nes_ctrl/zapper.h b/src/devices/bus/nes_ctrl/zapper.h
index ca4b1eb40fd..ca4b1eb40fd 100644
--- a/src/emu/bus/nes_ctrl/zapper.h
+++ b/src/devices/bus/nes_ctrl/zapper.h
diff --git a/src/emu/bus/nubus/nubus.c b/src/devices/bus/nubus/nubus.c
index 5d6548289ec..5d6548289ec 100644
--- a/src/emu/bus/nubus/nubus.c
+++ b/src/devices/bus/nubus/nubus.c
diff --git a/src/emu/bus/nubus/nubus.h b/src/devices/bus/nubus/nubus.h
index 72bee5f7b84..72bee5f7b84 100644
--- a/src/emu/bus/nubus/nubus.h
+++ b/src/devices/bus/nubus/nubus.h
diff --git a/src/emu/bus/nubus/nubus_48gc.c b/src/devices/bus/nubus/nubus_48gc.c
index 213cf0a0753..213cf0a0753 100644
--- a/src/emu/bus/nubus/nubus_48gc.c
+++ b/src/devices/bus/nubus/nubus_48gc.c
diff --git a/src/emu/bus/nubus/nubus_48gc.h b/src/devices/bus/nubus/nubus_48gc.h
index 85384ace70f..85384ace70f 100644
--- a/src/emu/bus/nubus/nubus_48gc.h
+++ b/src/devices/bus/nubus/nubus_48gc.h
diff --git a/src/emu/bus/nubus/nubus_asntmc3b.c b/src/devices/bus/nubus/nubus_asntmc3b.c
index 1d911055e11..1d911055e11 100644
--- a/src/emu/bus/nubus/nubus_asntmc3b.c
+++ b/src/devices/bus/nubus/nubus_asntmc3b.c
diff --git a/src/emu/bus/nubus/nubus_asntmc3b.h b/src/devices/bus/nubus/nubus_asntmc3b.h
index fd5851a61df..fd5851a61df 100644
--- a/src/emu/bus/nubus/nubus_asntmc3b.h
+++ b/src/devices/bus/nubus/nubus_asntmc3b.h
diff --git a/src/emu/bus/nubus/nubus_cb264.c b/src/devices/bus/nubus/nubus_cb264.c
index 2e4febed481..2e4febed481 100644
--- a/src/emu/bus/nubus/nubus_cb264.c
+++ b/src/devices/bus/nubus/nubus_cb264.c
diff --git a/src/emu/bus/nubus/nubus_cb264.h b/src/devices/bus/nubus/nubus_cb264.h
index 633bf0f4962..633bf0f4962 100644
--- a/src/emu/bus/nubus/nubus_cb264.h
+++ b/src/devices/bus/nubus/nubus_cb264.h
diff --git a/src/emu/bus/nubus/nubus_image.c b/src/devices/bus/nubus/nubus_image.c
index 6b929c98270..6b929c98270 100644
--- a/src/emu/bus/nubus/nubus_image.c
+++ b/src/devices/bus/nubus/nubus_image.c
diff --git a/src/emu/bus/nubus/nubus_image.h b/src/devices/bus/nubus/nubus_image.h
index cbd68d1ae51..cbd68d1ae51 100644
--- a/src/emu/bus/nubus/nubus_image.h
+++ b/src/devices/bus/nubus/nubus_image.h
diff --git a/src/emu/bus/nubus/nubus_m2hires.c b/src/devices/bus/nubus/nubus_m2hires.c
index 7a2d1a8ffdf..7a2d1a8ffdf 100644
--- a/src/emu/bus/nubus/nubus_m2hires.c
+++ b/src/devices/bus/nubus/nubus_m2hires.c
diff --git a/src/emu/bus/nubus/nubus_m2hires.h b/src/devices/bus/nubus/nubus_m2hires.h
index b47db82b0a6..b47db82b0a6 100644
--- a/src/emu/bus/nubus/nubus_m2hires.h
+++ b/src/devices/bus/nubus/nubus_m2hires.h
diff --git a/src/emu/bus/nubus/nubus_m2video.c b/src/devices/bus/nubus/nubus_m2video.c
index edf0b90abbb..edf0b90abbb 100644
--- a/src/emu/bus/nubus/nubus_m2video.c
+++ b/src/devices/bus/nubus/nubus_m2video.c
diff --git a/src/emu/bus/nubus/nubus_m2video.h b/src/devices/bus/nubus/nubus_m2video.h
index 211482c4c97..211482c4c97 100644
--- a/src/emu/bus/nubus/nubus_m2video.h
+++ b/src/devices/bus/nubus/nubus_m2video.h
diff --git a/src/emu/bus/nubus/nubus_radiustpd.c b/src/devices/bus/nubus/nubus_radiustpd.c
index 3b30fc4a384..3b30fc4a384 100644
--- a/src/emu/bus/nubus/nubus_radiustpd.c
+++ b/src/devices/bus/nubus/nubus_radiustpd.c
diff --git a/src/emu/bus/nubus/nubus_radiustpd.h b/src/devices/bus/nubus/nubus_radiustpd.h
index eb12fdaf0ae..eb12fdaf0ae 100644
--- a/src/emu/bus/nubus/nubus_radiustpd.h
+++ b/src/devices/bus/nubus/nubus_radiustpd.h
diff --git a/src/emu/bus/nubus/nubus_spec8.c b/src/devices/bus/nubus/nubus_spec8.c
index b72fc2d676f..b72fc2d676f 100644
--- a/src/emu/bus/nubus/nubus_spec8.c
+++ b/src/devices/bus/nubus/nubus_spec8.c
diff --git a/src/emu/bus/nubus/nubus_spec8.h b/src/devices/bus/nubus/nubus_spec8.h
index ed04f1598e8..ed04f1598e8 100644
--- a/src/emu/bus/nubus/nubus_spec8.h
+++ b/src/devices/bus/nubus/nubus_spec8.h
diff --git a/src/emu/bus/nubus/nubus_specpdq.c b/src/devices/bus/nubus/nubus_specpdq.c
index 9971454feac..9971454feac 100644
--- a/src/emu/bus/nubus/nubus_specpdq.c
+++ b/src/devices/bus/nubus/nubus_specpdq.c
diff --git a/src/emu/bus/nubus/nubus_specpdq.h b/src/devices/bus/nubus/nubus_specpdq.h
index fb956743197..fb956743197 100644
--- a/src/emu/bus/nubus/nubus_specpdq.h
+++ b/src/devices/bus/nubus/nubus_specpdq.h
diff --git a/src/emu/bus/nubus/nubus_vikbw.c b/src/devices/bus/nubus/nubus_vikbw.c
index 52e30c0ca92..52e30c0ca92 100644
--- a/src/emu/bus/nubus/nubus_vikbw.c
+++ b/src/devices/bus/nubus/nubus_vikbw.c
diff --git a/src/emu/bus/nubus/nubus_vikbw.h b/src/devices/bus/nubus/nubus_vikbw.h
index 8ddc5aaf50f..8ddc5aaf50f 100644
--- a/src/emu/bus/nubus/nubus_vikbw.h
+++ b/src/devices/bus/nubus/nubus_vikbw.h
diff --git a/src/emu/bus/nubus/nubus_wsportrait.c b/src/devices/bus/nubus/nubus_wsportrait.c
index 3f00160ba40..3f00160ba40 100644
--- a/src/emu/bus/nubus/nubus_wsportrait.c
+++ b/src/devices/bus/nubus/nubus_wsportrait.c
diff --git a/src/emu/bus/nubus/nubus_wsportrait.h b/src/devices/bus/nubus/nubus_wsportrait.h
index a677daea6cc..a677daea6cc 100644
--- a/src/emu/bus/nubus/nubus_wsportrait.h
+++ b/src/devices/bus/nubus/nubus_wsportrait.h
diff --git a/src/emu/bus/nubus/pds30_30hr.c b/src/devices/bus/nubus/pds30_30hr.c
index 1d1af85f5ba..1d1af85f5ba 100644
--- a/src/emu/bus/nubus/pds30_30hr.c
+++ b/src/devices/bus/nubus/pds30_30hr.c
diff --git a/src/emu/bus/nubus/pds30_30hr.h b/src/devices/bus/nubus/pds30_30hr.h
index 9366a555285..9366a555285 100644
--- a/src/emu/bus/nubus/pds30_30hr.h
+++ b/src/devices/bus/nubus/pds30_30hr.h
diff --git a/src/emu/bus/nubus/pds30_cb264.c b/src/devices/bus/nubus/pds30_cb264.c
index 21eafd10935..21eafd10935 100644
--- a/src/emu/bus/nubus/pds30_cb264.c
+++ b/src/devices/bus/nubus/pds30_cb264.c
diff --git a/src/emu/bus/nubus/pds30_cb264.h b/src/devices/bus/nubus/pds30_cb264.h
index d1f7839ab45..d1f7839ab45 100644
--- a/src/emu/bus/nubus/pds30_cb264.h
+++ b/src/devices/bus/nubus/pds30_cb264.h
diff --git a/src/emu/bus/nubus/pds30_mc30.c b/src/devices/bus/nubus/pds30_mc30.c
index ddc063bbb8f..ddc063bbb8f 100644
--- a/src/emu/bus/nubus/pds30_mc30.c
+++ b/src/devices/bus/nubus/pds30_mc30.c
diff --git a/src/emu/bus/nubus/pds30_mc30.h b/src/devices/bus/nubus/pds30_mc30.h
index b7b7276df9f..b7b7276df9f 100644
--- a/src/emu/bus/nubus/pds30_mc30.h
+++ b/src/devices/bus/nubus/pds30_mc30.h
diff --git a/src/emu/bus/nubus/pds30_procolor816.c b/src/devices/bus/nubus/pds30_procolor816.c
index 4150a2c91b0..4150a2c91b0 100644
--- a/src/emu/bus/nubus/pds30_procolor816.c
+++ b/src/devices/bus/nubus/pds30_procolor816.c
diff --git a/src/emu/bus/nubus/pds30_procolor816.h b/src/devices/bus/nubus/pds30_procolor816.h
index 65bf9d9e76f..65bf9d9e76f 100644
--- a/src/emu/bus/nubus/pds30_procolor816.h
+++ b/src/devices/bus/nubus/pds30_procolor816.h
diff --git a/src/emu/bus/nubus/pds30_sigmalview.c b/src/devices/bus/nubus/pds30_sigmalview.c
index 32028fd6824..32028fd6824 100644
--- a/src/emu/bus/nubus/pds30_sigmalview.c
+++ b/src/devices/bus/nubus/pds30_sigmalview.c
diff --git a/src/emu/bus/nubus/pds30_sigmalview.h b/src/devices/bus/nubus/pds30_sigmalview.h
index 62530e412b1..62530e412b1 100644
--- a/src/emu/bus/nubus/pds30_sigmalview.h
+++ b/src/devices/bus/nubus/pds30_sigmalview.h
diff --git a/src/emu/bus/odyssey2/chess.c b/src/devices/bus/odyssey2/chess.c
index 8885733923c..8885733923c 100644
--- a/src/emu/bus/odyssey2/chess.c
+++ b/src/devices/bus/odyssey2/chess.c
diff --git a/src/emu/bus/odyssey2/chess.h b/src/devices/bus/odyssey2/chess.h
index 8604c317924..8604c317924 100644
--- a/src/emu/bus/odyssey2/chess.h
+++ b/src/devices/bus/odyssey2/chess.h
diff --git a/src/emu/bus/odyssey2/rom.c b/src/devices/bus/odyssey2/rom.c
index 2e364e59b9c..2e364e59b9c 100644
--- a/src/emu/bus/odyssey2/rom.c
+++ b/src/devices/bus/odyssey2/rom.c
diff --git a/src/emu/bus/odyssey2/rom.h b/src/devices/bus/odyssey2/rom.h
index 18bfa63c4b4..18bfa63c4b4 100644
--- a/src/emu/bus/odyssey2/rom.h
+++ b/src/devices/bus/odyssey2/rom.h
diff --git a/src/emu/bus/odyssey2/slot.c b/src/devices/bus/odyssey2/slot.c
index 72262afe7ac..72262afe7ac 100644
--- a/src/emu/bus/odyssey2/slot.c
+++ b/src/devices/bus/odyssey2/slot.c
diff --git a/src/emu/bus/odyssey2/slot.h b/src/devices/bus/odyssey2/slot.h
index a5cebb9ed0d..a5cebb9ed0d 100644
--- a/src/emu/bus/odyssey2/slot.h
+++ b/src/devices/bus/odyssey2/slot.h
diff --git a/src/emu/bus/odyssey2/voice.c b/src/devices/bus/odyssey2/voice.c
index e94b3bd1432..e94b3bd1432 100644
--- a/src/emu/bus/odyssey2/voice.c
+++ b/src/devices/bus/odyssey2/voice.c
diff --git a/src/emu/bus/odyssey2/voice.h b/src/devices/bus/odyssey2/voice.h
index 71fb77b067c..71fb77b067c 100644
--- a/src/emu/bus/odyssey2/voice.h
+++ b/src/devices/bus/odyssey2/voice.h
diff --git a/src/emu/bus/oricext/jasmin.c b/src/devices/bus/oricext/jasmin.c
index c8fd1d81081..c8fd1d81081 100644
--- a/src/emu/bus/oricext/jasmin.c
+++ b/src/devices/bus/oricext/jasmin.c
diff --git a/src/emu/bus/oricext/jasmin.h b/src/devices/bus/oricext/jasmin.h
index 8dae60eedbf..8dae60eedbf 100644
--- a/src/emu/bus/oricext/jasmin.h
+++ b/src/devices/bus/oricext/jasmin.h
diff --git a/src/emu/bus/oricext/microdisc.c b/src/devices/bus/oricext/microdisc.c
index c66adfa555a..c66adfa555a 100644
--- a/src/emu/bus/oricext/microdisc.c
+++ b/src/devices/bus/oricext/microdisc.c
diff --git a/src/emu/bus/oricext/microdisc.h b/src/devices/bus/oricext/microdisc.h
index bf790c4af52..bf790c4af52 100644
--- a/src/emu/bus/oricext/microdisc.h
+++ b/src/devices/bus/oricext/microdisc.h
diff --git a/src/emu/bus/oricext/oricext.c b/src/devices/bus/oricext/oricext.c
index e13b5c5f245..e13b5c5f245 100644
--- a/src/emu/bus/oricext/oricext.c
+++ b/src/devices/bus/oricext/oricext.c
diff --git a/src/emu/bus/oricext/oricext.h b/src/devices/bus/oricext/oricext.h
index 4eeb7766aea..4eeb7766aea 100644
--- a/src/emu/bus/oricext/oricext.h
+++ b/src/devices/bus/oricext/oricext.h
diff --git a/src/emu/bus/pc_joy/pc_joy.c b/src/devices/bus/pc_joy/pc_joy.c
index a8059c2f6da..99c3f5c1957 100644
--- a/src/emu/bus/pc_joy/pc_joy.c
+++ b/src/devices/bus/pc_joy/pc_joy.c
@@ -21,7 +21,7 @@ pc_joy_device::pc_joy_device(const machine_config &mconfig, const char *tag, dev
READ8_MEMBER ( pc_joy_device::joy_port_r )
{
- int delta = ((machine().time() - m_stime) * 256 * 1000).seconds;
+ int delta = ((machine().time() - m_stime) * 256 * 1000).seconds();
if(!m_dev)
return 0xf0;
diff --git a/src/emu/bus/pc_joy/pc_joy.h b/src/devices/bus/pc_joy/pc_joy.h
index f67e74ff003..f67e74ff003 100644
--- a/src/emu/bus/pc_joy/pc_joy.h
+++ b/src/devices/bus/pc_joy/pc_joy.h
diff --git a/src/emu/bus/pc_joy/pc_joy_sw.c b/src/devices/bus/pc_joy/pc_joy_sw.c
index ebfb1af785b..ebfb1af785b 100644
--- a/src/emu/bus/pc_joy/pc_joy_sw.c
+++ b/src/devices/bus/pc_joy/pc_joy_sw.c
diff --git a/src/emu/bus/pc_joy/pc_joy_sw.h b/src/devices/bus/pc_joy/pc_joy_sw.h
index 12506ef1f1b..12506ef1f1b 100644
--- a/src/emu/bus/pc_joy/pc_joy_sw.h
+++ b/src/devices/bus/pc_joy/pc_joy_sw.h
diff --git a/src/emu/bus/pc_kbd/ec1841.c b/src/devices/bus/pc_kbd/ec1841.c
index 54c4d6b3a97..54c4d6b3a97 100644
--- a/src/emu/bus/pc_kbd/ec1841.c
+++ b/src/devices/bus/pc_kbd/ec1841.c
diff --git a/src/emu/bus/pc_kbd/ec1841.h b/src/devices/bus/pc_kbd/ec1841.h
index 20c8e74a5d6..20c8e74a5d6 100644
--- a/src/emu/bus/pc_kbd/ec1841.h
+++ b/src/devices/bus/pc_kbd/ec1841.h
diff --git a/src/devices/bus/pc_kbd/iskr1030.c b/src/devices/bus/pc_kbd/iskr1030.c
new file mode 100644
index 00000000000..581f30b5a77
--- /dev/null
+++ b/src/devices/bus/pc_kbd/iskr1030.c
@@ -0,0 +1,500 @@
+// license:BSD-3-Clause
+// copyright-holders:Sergey Svishchev
+/**********************************************************************
+
+ Iskra-1030 and -1031 XX-key keyboard emulation
+
+*********************************************************************/
+
+#include "iskr1030.h"
+
+#define VERBOSE_DBG 1 /* general debug messages */
+
+#define DBG_LOG(N,M,A) \
+ do { \
+ if(VERBOSE_DBG>=N) \
+ { \
+ logerror("%11.6f at %s: ",machine().time().as_double(),machine().describe_context()); \
+ logerror A; \
+ } \
+ } while (0)
+
+
+
+//**************************************************************************
+// MACROS / CONSTANTS
+//**************************************************************************
+
+#define I8048_TAG "i8048"
+
+
+
+//**************************************************************************
+// DEVICE DEFINITIONS
+//**************************************************************************
+
+const device_type PC_KBD_ISKR_1030 = &device_creator<iskr_1030_keyboard_device>;
+
+
+//-------------------------------------------------
+// ROM( iskr_1030_keyboard )
+//-------------------------------------------------
+
+ROM_START( iskr_1030_keyboard )
+ ROM_REGION( 0x800, I8048_TAG, 0 )
+ ROM_LOAD( "i1030.bin", 0x000, 0x800, CRC(7cac9c4b) SHA1(03959d3350e012ebfe61cee9c062b6c1fdd8766e) )
+ROM_END
+
+
+//-------------------------------------------------
+// rom_region - device-specific ROM region
+//-------------------------------------------------
+
+const rom_entry *iskr_1030_keyboard_device::device_rom_region() const
+{
+ return ROM_NAME( iskr_1030_keyboard );
+}
+
+
+//-------------------------------------------------
+// ADDRESS_MAP( kb_io )
+//-------------------------------------------------
+
+static ADDRESS_MAP_START( iskr_1030_keyboard_io, AS_IO, 8, iskr_1030_keyboard_device )
+ AM_RANGE(0x00, 0xFF) AM_READWRITE(ram_r, ram_w)
+ AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_READWRITE(p1_r, p1_w)
+ AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_WRITE(p2_w)
+ AM_RANGE(MCS48_PORT_T1, MCS48_PORT_T1) AM_READ(t1_r)
+ADDRESS_MAP_END
+
+
+//-------------------------------------------------
+// MACHINE_DRIVER( iskr_1030_keyboard )
+//-------------------------------------------------
+
+static MACHINE_CONFIG_FRAGMENT( iskr_1030_keyboard )
+ MCFG_CPU_ADD(I8048_TAG, I8048, XTAL_5MHz)
+ MCFG_CPU_IO_MAP(iskr_1030_keyboard_io)
+MACHINE_CONFIG_END
+
+
+//-------------------------------------------------
+// machine_config_additions - device-specific
+// machine configurations
+//-------------------------------------------------
+
+machine_config_constructor iskr_1030_keyboard_device::device_mconfig_additions() const
+{
+ return MACHINE_CONFIG_NAME( iskr_1030_keyboard );
+}
+
+
+//-------------------------------------------------
+// INPUT_PORTS( iskr_1030_keyboard )
+//-------------------------------------------------
+
+INPUT_PORTS_START( iskr_1030_keyboard )
+ PORT_START("MD00")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+
+ PORT_START("MD01")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+
+ PORT_START("MD02")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+
+ PORT_START("MD03")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+
+ PORT_START("MD04")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+
+ PORT_START("MD05")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+
+ PORT_START("MD06")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+
+ PORT_START("MD07")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+
+ PORT_START("MD08")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+
+ PORT_START("MD09")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+
+ PORT_START("MD10")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+
+ PORT_START("MD11")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+
+ PORT_START("MD12")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+
+ PORT_START("MD13")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+
+ PORT_START("MD14")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+
+ PORT_START("MD15")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+
+ PORT_START("MD16")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+
+ PORT_START("MD17")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+
+ PORT_START("MD18")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+
+ PORT_START("MD19")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+
+ PORT_START("MD20")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+
+ PORT_START("MD21")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+
+ PORT_START("MD22")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+
+ PORT_START("MD23")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD )
+INPUT_PORTS_END
+
+
+//-------------------------------------------------
+// input_ports - device-specific input ports
+//-------------------------------------------------
+
+ioport_constructor iskr_1030_keyboard_device::device_input_ports() const
+{
+ return INPUT_PORTS_NAME( iskr_1030_keyboard );
+}
+
+
+
+//**************************************************************************
+// LIVE DEVICE
+//**************************************************************************
+
+//-------------------------------------------------
+// iskr_1030_keyboard_device - constructor
+//-------------------------------------------------
+
+iskr_1030_keyboard_device::iskr_1030_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : device_t(mconfig, PC_KBD_ISKR_1030, "Iskra-1030 Keyboard", tag, owner, clock, "kb_iskr1030", __FILE__),
+ device_pc_kbd_interface(mconfig, *this),
+ m_maincpu(*this, I8048_TAG),
+ m_md00(*this, "MD00"),
+ m_md01(*this, "MD01"),
+ m_md02(*this, "MD02"),
+ m_md03(*this, "MD03"),
+ m_md04(*this, "MD04"),
+ m_md05(*this, "MD05"),
+ m_md06(*this, "MD06"),
+ m_md07(*this, "MD07"),
+ m_md08(*this, "MD08"),
+ m_md09(*this, "MD09"),
+ m_md10(*this, "MD10"),
+ m_md11(*this, "MD11"),
+ m_md12(*this, "MD12"),
+ m_md13(*this, "MD13"),
+ m_md14(*this, "MD14"),
+ m_md15(*this, "MD15"),
+ m_md16(*this, "MD16"),
+ m_md17(*this, "MD17"),
+ m_md18(*this, "MD18"),
+ m_md19(*this, "MD19"),
+ m_md20(*this, "MD20"),
+ m_md21(*this, "MD21"),
+ m_md22(*this, "MD22"),
+ m_md23(*this, "MD23"),
+ m_p1(0),
+ m_p2(0),
+ m_q(0)
+{
+}
+
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void iskr_1030_keyboard_device::device_start()
+{
+ set_pc_kbdc_device();
+
+ m_ram.resize(0x100);
+ save_item(NAME(m_ram));
+
+ save_item(NAME(m_bus));
+ save_item(NAME(m_p1));
+ save_item(NAME(m_p2));
+ save_item(NAME(m_q));
+}
+
+
+//-------------------------------------------------
+// device_reset - device-specific reset
+//-------------------------------------------------
+
+void iskr_1030_keyboard_device::device_reset()
+{
+}
+
+
+//-------------------------------------------------
+// clock_write -
+//-------------------------------------------------
+
+WRITE_LINE_MEMBER( iskr_1030_keyboard_device::clock_write )
+{
+ DBG_LOG(1,0,( "%s: clock write %d\n", tag(), state));
+ m_maincpu->set_input_line(MCS48_INPUT_IRQ, state ? CLEAR_LINE : ASSERT_LINE);
+}
+
+
+//-------------------------------------------------
+// data_write -
+//-------------------------------------------------
+
+WRITE_LINE_MEMBER( iskr_1030_keyboard_device::data_write )
+{
+ DBG_LOG(1,0,( "%s: data write %d\n", tag(), state));
+}
+
+
+//-------------------------------------------------
+// t1_r -
+//-------------------------------------------------
+
+READ8_MEMBER( iskr_1030_keyboard_device::t1_r )
+{
+ UINT8 data = data_signal();
+ UINT8 bias = m_p1 & 15;
+
+ if (!BIT(m_p1, 7)) {
+ DBG_LOG(2,0,( "%s: t1_r (l) %d\n", tag(), data));
+ return data;
+ }
+
+ if (bias) {
+ DBG_LOG(2,0,( "%s: t1_r (b) %d\n", tag(), bias));
+ return 1;
+ }
+
+ data = 0;
+ switch (m_bus >> 2)
+ {
+ case 0<<1: data = m_md00->read(); break;
+ case 1<<1: data = m_md01->read(); break;
+ case 2<<1: data = m_md02->read(); break;
+ case 3<<1: data = m_md03->read(); break;
+ case 4<<1: data = m_md04->read(); break;
+ case 5<<1: data = m_md05->read(); break;
+ case 6<<1: data = m_md06->read(); break;
+ case 7<<1: data = m_md07->read(); break;
+ case 8<<1: data = m_md08->read(); break;
+ case 9<<1: data = m_md09->read(); break;
+ case 10<<1: data = m_md10->read(); break;
+ case 11<<1: data = m_md11->read(); break;
+ case (0<<1)+1: data = m_md12->read(); break;
+ case (1<<1)+1: data = m_md13->read(); break;
+ case (2<<1)+1: data = m_md14->read(); break;
+ case (3<<1)+1: data = m_md15->read(); break;
+ case (4<<1)+1: data = m_md16->read(); break;
+ case (5<<1)+1: data = m_md17->read(); break;
+ case (6<<1)+1: data = m_md18->read(); break;
+ case (7<<1)+1: data = m_md19->read(); break;
+ case (8<<1)+1: data = m_md20->read(); break;
+ case (9<<1)+1: data = m_md21->read(); break;
+ case (10<<1)+1: data = m_md22->read(); break;
+ case (11<<1)+1: data = m_md23->read(); break;
+ }
+ data = BIT(data, m_bus&3);
+
+ DBG_LOG(2,0,( "%s: t1_r (k r%d c%d) %d\n", tag(), m_bus&3, m_bus>>2, data));
+ return data;
+}
+
+
+//-------------------------------------------------
+// ram_w -
+//-------------------------------------------------
+
+WRITE8_MEMBER( iskr_1030_keyboard_device::ram_w )
+{
+ DBG_LOG(2,0,( "%s: ram_w[%02x] <- %02x\n", tag(), offset, data));
+
+ m_bus = offset;
+ m_ram[offset] = data;
+}
+
+
+//-------------------------------------------------
+// ram_r -
+//-------------------------------------------------
+
+READ8_MEMBER( iskr_1030_keyboard_device::ram_r )
+{
+ DBG_LOG(2,0,( "%s: ram_r[%02x] = %02x\n", tag(), offset, m_ram[offset]));
+
+ return m_ram[offset];
+}
+
+
+//-------------------------------------------------
+// p1_r -
+//-------------------------------------------------
+
+READ8_MEMBER( iskr_1030_keyboard_device::p1_r )
+{
+ /*
+ bit description
+
+ 0 -REQ IN
+ 1 DATA IN
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ */
+
+ UINT8 data = 0;
+
+ DBG_LOG(1,0,( "%s: p1_r %02x\n", tag(), data));
+
+ return data;
+}
+
+
+//-------------------------------------------------
+// p2_w -
+//-------------------------------------------------
+
+WRITE8_MEMBER( iskr_1030_keyboard_device::p2_w )
+{
+ /*
+ bit description
+
+ 0 ...
+ 1 ...
+ 2 ...
+ 3 (not connected)
+ 4 SPEAKER
+ 5 LED RUS/LAT
+ 6 LED NLK
+ 7 LED CLK
+ */
+ DBG_LOG(1,0,( "%s: p2_w %02x\n", tag(), data));
+
+ m_p2 = data;
+}
+
+
+//-------------------------------------------------
+// p1_w - OK
+//-------------------------------------------------
+
+WRITE8_MEMBER( iskr_1030_keyboard_device::p1_w )
+{
+ /*
+ bit description
+
+ 0 XXX
+ 1 XXX
+ 2 XXX
+ 3 XXX
+ 4 CLOCK out
+ 5 DATA out
+ 6 XXX
+ 7 POLL GATE
+ */
+
+ m_p1 = data;
+
+ DBG_LOG(1,0,( "%s: p1_w %02x (c %d d %d bias %d)\n", tag(), data, BIT(data, 4), BIT(data, 5), data&15));
+
+ m_pc_kbdc->data_write_from_kb(BIT(data, 5));
+ m_pc_kbdc->clock_write_from_kb(BIT(data, 4));
+}
diff --git a/src/emu/bus/pc_kbd/iskr1030.h b/src/devices/bus/pc_kbd/iskr1030.h
index 37ae7953662..40957295b52 100644
--- a/src/emu/bus/pc_kbd/iskr1030.h
+++ b/src/devices/bus/pc_kbd/iskr1030.h
@@ -36,10 +36,11 @@ public:
virtual machine_config_constructor device_mconfig_additions() const;
virtual ioport_constructor device_input_ports() const;
+ DECLARE_READ8_MEMBER( ram_r );
+ DECLARE_WRITE8_MEMBER( ram_w );
DECLARE_READ8_MEMBER( p1_r );
DECLARE_WRITE8_MEMBER( p1_w );
DECLARE_WRITE8_MEMBER( p2_w );
- DECLARE_READ8_MEMBER( t0_r );
DECLARE_READ8_MEMBER( t1_r );
protected:
@@ -69,7 +70,17 @@ private:
required_ioport m_md13;
required_ioport m_md14;
required_ioport m_md15;
-
+ required_ioport m_md16;
+ required_ioport m_md17;
+ required_ioport m_md18;
+ required_ioport m_md19;
+ required_ioport m_md20;
+ required_ioport m_md21;
+ required_ioport m_md22;
+ required_ioport m_md23;
+
+ dynamic_buffer m_ram;
+ UINT8 m_bus;
UINT8 m_p1;
UINT8 m_p2;
int m_q;
diff --git a/src/emu/bus/pc_kbd/keyboards.c b/src/devices/bus/pc_kbd/keyboards.c
index c9bc4c33acd..c9bc4c33acd 100644
--- a/src/emu/bus/pc_kbd/keyboards.c
+++ b/src/devices/bus/pc_kbd/keyboards.c
diff --git a/src/emu/bus/pc_kbd/keyboards.h b/src/devices/bus/pc_kbd/keyboards.h
index cd88f8b1096..cd88f8b1096 100644
--- a/src/emu/bus/pc_kbd/keyboards.h
+++ b/src/devices/bus/pc_kbd/keyboards.h
diff --git a/src/emu/bus/pc_kbd/keytro.c b/src/devices/bus/pc_kbd/keytro.c
index 01fbaf6852b..01fbaf6852b 100644
--- a/src/emu/bus/pc_kbd/keytro.c
+++ b/src/devices/bus/pc_kbd/keytro.c
diff --git a/src/emu/bus/pc_kbd/keytro.h b/src/devices/bus/pc_kbd/keytro.h
index 4a41b9bb4f5..4a41b9bb4f5 100644
--- a/src/emu/bus/pc_kbd/keytro.h
+++ b/src/devices/bus/pc_kbd/keytro.h
diff --git a/src/emu/bus/pc_kbd/msnat.c b/src/devices/bus/pc_kbd/msnat.c
index 201ff864fb2..201ff864fb2 100644
--- a/src/emu/bus/pc_kbd/msnat.c
+++ b/src/devices/bus/pc_kbd/msnat.c
diff --git a/src/emu/bus/pc_kbd/msnat.h b/src/devices/bus/pc_kbd/msnat.h
index 6ed13a35b8e..6ed13a35b8e 100644
--- a/src/emu/bus/pc_kbd/msnat.h
+++ b/src/devices/bus/pc_kbd/msnat.h
diff --git a/src/emu/bus/pc_kbd/pc83.c b/src/devices/bus/pc_kbd/pc83.c
index ef979eef530..ef979eef530 100644
--- a/src/emu/bus/pc_kbd/pc83.c
+++ b/src/devices/bus/pc_kbd/pc83.c
diff --git a/src/emu/bus/pc_kbd/pc83.h b/src/devices/bus/pc_kbd/pc83.h
index 5ee259253ff..5ee259253ff 100644
--- a/src/emu/bus/pc_kbd/pc83.h
+++ b/src/devices/bus/pc_kbd/pc83.h
diff --git a/src/emu/bus/pc_kbd/pc_kbdc.c b/src/devices/bus/pc_kbd/pc_kbdc.c
index 296dbbef547..296dbbef547 100644
--- a/src/emu/bus/pc_kbd/pc_kbdc.c
+++ b/src/devices/bus/pc_kbd/pc_kbdc.c
diff --git a/src/emu/bus/pc_kbd/pc_kbdc.h b/src/devices/bus/pc_kbd/pc_kbdc.h
index 76b82de023f..76b82de023f 100644
--- a/src/emu/bus/pc_kbd/pc_kbdc.h
+++ b/src/devices/bus/pc_kbd/pc_kbdc.h
diff --git a/src/emu/bus/pc_kbd/pcat84.c b/src/devices/bus/pc_kbd/pcat84.c
index 471333e9d18..471333e9d18 100644
--- a/src/emu/bus/pc_kbd/pcat84.c
+++ b/src/devices/bus/pc_kbd/pcat84.c
diff --git a/src/emu/bus/pc_kbd/pcat84.h b/src/devices/bus/pc_kbd/pcat84.h
index 06f58c84738..06f58c84738 100644
--- a/src/emu/bus/pc_kbd/pcat84.h
+++ b/src/devices/bus/pc_kbd/pcat84.h
diff --git a/src/emu/bus/pc_kbd/pcxt83.c b/src/devices/bus/pc_kbd/pcxt83.c
index dfbc5616b73..dfbc5616b73 100644
--- a/src/emu/bus/pc_kbd/pcxt83.c
+++ b/src/devices/bus/pc_kbd/pcxt83.c
diff --git a/src/emu/bus/pc_kbd/pcxt83.h b/src/devices/bus/pc_kbd/pcxt83.h
index cec03f8bc92..cec03f8bc92 100644
--- a/src/emu/bus/pc_kbd/pcxt83.h
+++ b/src/devices/bus/pc_kbd/pcxt83.h
diff --git a/src/emu/bus/pce/pce_rom.c b/src/devices/bus/pce/pce_rom.c
index 8829e7823d0..8829e7823d0 100644
--- a/src/emu/bus/pce/pce_rom.c
+++ b/src/devices/bus/pce/pce_rom.c
diff --git a/src/emu/bus/pce/pce_rom.h b/src/devices/bus/pce/pce_rom.h
index 3f6b9efcd47..3f6b9efcd47 100644
--- a/src/emu/bus/pce/pce_rom.h
+++ b/src/devices/bus/pce/pce_rom.h
diff --git a/src/emu/bus/pce/pce_slot.c b/src/devices/bus/pce/pce_slot.c
index bc124852c0c..bc124852c0c 100644
--- a/src/emu/bus/pce/pce_slot.c
+++ b/src/devices/bus/pce/pce_slot.c
diff --git a/src/emu/bus/pce/pce_slot.h b/src/devices/bus/pce/pce_slot.h
index e6968518b49..e6968518b49 100644
--- a/src/emu/bus/pce/pce_slot.h
+++ b/src/devices/bus/pce/pce_slot.h
diff --git a/src/emu/bus/pet/64k.c b/src/devices/bus/pet/64k.c
index 4bc9c01d596..4bc9c01d596 100644
--- a/src/emu/bus/pet/64k.c
+++ b/src/devices/bus/pet/64k.c
diff --git a/src/emu/bus/pet/64k.h b/src/devices/bus/pet/64k.h
index 6a7511357ad..6a7511357ad 100644
--- a/src/emu/bus/pet/64k.h
+++ b/src/devices/bus/pet/64k.h
diff --git a/src/emu/bus/pet/c2n.c b/src/devices/bus/pet/c2n.c
index aab392e9ffb..aab392e9ffb 100644
--- a/src/emu/bus/pet/c2n.c
+++ b/src/devices/bus/pet/c2n.c
diff --git a/src/emu/bus/pet/c2n.h b/src/devices/bus/pet/c2n.h
index a8e09d57c00..a8e09d57c00 100644
--- a/src/emu/bus/pet/c2n.h
+++ b/src/devices/bus/pet/c2n.h
diff --git a/src/emu/bus/pet/cass.c b/src/devices/bus/pet/cass.c
index f425478e5a2..f425478e5a2 100644
--- a/src/emu/bus/pet/cass.c
+++ b/src/devices/bus/pet/cass.c
diff --git a/src/emu/bus/pet/cass.h b/src/devices/bus/pet/cass.h
index b4c2da0738b..b4c2da0738b 100644
--- a/src/emu/bus/pet/cass.h
+++ b/src/devices/bus/pet/cass.h
diff --git a/src/emu/bus/pet/cb2snd.c b/src/devices/bus/pet/cb2snd.c
index d89ef26268c..d89ef26268c 100644
--- a/src/emu/bus/pet/cb2snd.c
+++ b/src/devices/bus/pet/cb2snd.c
diff --git a/src/emu/bus/pet/cb2snd.h b/src/devices/bus/pet/cb2snd.h
index 77d5f93979a..77d5f93979a 100644
--- a/src/emu/bus/pet/cb2snd.h
+++ b/src/devices/bus/pet/cb2snd.h
diff --git a/src/emu/bus/pet/diag.c b/src/devices/bus/pet/diag.c
index 7cd73c6fff0..7cd73c6fff0 100644
--- a/src/emu/bus/pet/diag.c
+++ b/src/devices/bus/pet/diag.c
diff --git a/src/emu/bus/pet/diag.h b/src/devices/bus/pet/diag.h
index 2f8d094ef01..2f8d094ef01 100644
--- a/src/emu/bus/pet/diag.h
+++ b/src/devices/bus/pet/diag.h
diff --git a/src/emu/bus/pet/diag264_lb_tape.c b/src/devices/bus/pet/diag264_lb_tape.c
index 0c3bfb87d74..0c3bfb87d74 100644
--- a/src/emu/bus/pet/diag264_lb_tape.c
+++ b/src/devices/bus/pet/diag264_lb_tape.c
diff --git a/src/emu/bus/pet/diag264_lb_tape.h b/src/devices/bus/pet/diag264_lb_tape.h
index 4d37e32ec94..4d37e32ec94 100644
--- a/src/emu/bus/pet/diag264_lb_tape.h
+++ b/src/devices/bus/pet/diag264_lb_tape.h
diff --git a/src/emu/bus/pet/exp.c b/src/devices/bus/pet/exp.c
index e550c2cf80f..e550c2cf80f 100644
--- a/src/emu/bus/pet/exp.c
+++ b/src/devices/bus/pet/exp.c
diff --git a/src/emu/bus/pet/exp.h b/src/devices/bus/pet/exp.h
index ed583333c60..ed583333c60 100644
--- a/src/emu/bus/pet/exp.h
+++ b/src/devices/bus/pet/exp.h
diff --git a/src/emu/bus/pet/hsg.c b/src/devices/bus/pet/hsg.c
index 5f2d7d1df9d..5f2d7d1df9d 100644
--- a/src/emu/bus/pet/hsg.c
+++ b/src/devices/bus/pet/hsg.c
diff --git a/src/emu/bus/pet/hsg.h b/src/devices/bus/pet/hsg.h
index 40345894063..40345894063 100644
--- a/src/emu/bus/pet/hsg.h
+++ b/src/devices/bus/pet/hsg.h
diff --git a/src/emu/bus/pet/petuja.c b/src/devices/bus/pet/petuja.c
index 4bc335e7dab..4bc335e7dab 100644
--- a/src/emu/bus/pet/petuja.c
+++ b/src/devices/bus/pet/petuja.c
diff --git a/src/emu/bus/pet/petuja.h b/src/devices/bus/pet/petuja.h
index f923b3dccda..f923b3dccda 100644
--- a/src/emu/bus/pet/petuja.h
+++ b/src/devices/bus/pet/petuja.h
diff --git a/src/emu/bus/pet/superpet.c b/src/devices/bus/pet/superpet.c
index 35a80c2e298..35a80c2e298 100644
--- a/src/emu/bus/pet/superpet.c
+++ b/src/devices/bus/pet/superpet.c
diff --git a/src/emu/bus/pet/superpet.h b/src/devices/bus/pet/superpet.h
index 2cf1c011c6e..2cf1c011c6e 100644
--- a/src/emu/bus/pet/superpet.h
+++ b/src/devices/bus/pet/superpet.h
diff --git a/src/emu/bus/pet/user.c b/src/devices/bus/pet/user.c
index b543777df63..b543777df63 100644
--- a/src/emu/bus/pet/user.c
+++ b/src/devices/bus/pet/user.c
diff --git a/src/emu/bus/pet/user.h b/src/devices/bus/pet/user.h
index 9c6e6d8bd3e..9c6e6d8bd3e 100644
--- a/src/emu/bus/pet/user.h
+++ b/src/devices/bus/pet/user.h
diff --git a/src/emu/bus/plus4/c1551.c b/src/devices/bus/plus4/c1551.c
index 5439eaf1fd5..5439eaf1fd5 100644
--- a/src/emu/bus/plus4/c1551.c
+++ b/src/devices/bus/plus4/c1551.c
diff --git a/src/emu/bus/plus4/c1551.h b/src/devices/bus/plus4/c1551.h
index e31ec0afdd5..e31ec0afdd5 100644
--- a/src/emu/bus/plus4/c1551.h
+++ b/src/devices/bus/plus4/c1551.h
diff --git a/src/emu/bus/plus4/diag264_lb_user.c b/src/devices/bus/plus4/diag264_lb_user.c
index 10d93e462e6..10d93e462e6 100644
--- a/src/emu/bus/plus4/diag264_lb_user.c
+++ b/src/devices/bus/plus4/diag264_lb_user.c
diff --git a/src/emu/bus/plus4/diag264_lb_user.h b/src/devices/bus/plus4/diag264_lb_user.h
index 25e0766d064..25e0766d064 100644
--- a/src/emu/bus/plus4/diag264_lb_user.h
+++ b/src/devices/bus/plus4/diag264_lb_user.h
diff --git a/src/emu/bus/plus4/exp.c b/src/devices/bus/plus4/exp.c
index 801470cbf30..801470cbf30 100644
--- a/src/emu/bus/plus4/exp.c
+++ b/src/devices/bus/plus4/exp.c
diff --git a/src/emu/bus/plus4/exp.h b/src/devices/bus/plus4/exp.h
index 0bd8e963cc6..0bd8e963cc6 100644
--- a/src/emu/bus/plus4/exp.h
+++ b/src/devices/bus/plus4/exp.h
diff --git a/src/emu/bus/plus4/sid.c b/src/devices/bus/plus4/sid.c
index 57515474824..57515474824 100644
--- a/src/emu/bus/plus4/sid.c
+++ b/src/devices/bus/plus4/sid.c
diff --git a/src/emu/bus/plus4/sid.h b/src/devices/bus/plus4/sid.h
index 63a7040416f..63a7040416f 100644
--- a/src/emu/bus/plus4/sid.h
+++ b/src/devices/bus/plus4/sid.h
diff --git a/src/emu/bus/plus4/std.c b/src/devices/bus/plus4/std.c
index 8627f99cc30..8627f99cc30 100644
--- a/src/emu/bus/plus4/std.c
+++ b/src/devices/bus/plus4/std.c
diff --git a/src/emu/bus/plus4/std.h b/src/devices/bus/plus4/std.h
index 3949240b037..3949240b037 100644
--- a/src/emu/bus/plus4/std.h
+++ b/src/devices/bus/plus4/std.h
diff --git a/src/emu/bus/plus4/user.c b/src/devices/bus/plus4/user.c
index 7c9c6ed24b5..7c9c6ed24b5 100644
--- a/src/emu/bus/plus4/user.c
+++ b/src/devices/bus/plus4/user.c
diff --git a/src/emu/bus/plus4/user.h b/src/devices/bus/plus4/user.h
index abf4a909ccb..abf4a909ccb 100644
--- a/src/emu/bus/plus4/user.h
+++ b/src/devices/bus/plus4/user.h
diff --git a/src/emu/bus/psx/analogue.c b/src/devices/bus/psx/analogue.c
index f9896dcd2e5..f9896dcd2e5 100644
--- a/src/emu/bus/psx/analogue.c
+++ b/src/devices/bus/psx/analogue.c
diff --git a/src/emu/bus/psx/analogue.h b/src/devices/bus/psx/analogue.h
index dad5490f944..dad5490f944 100644
--- a/src/emu/bus/psx/analogue.h
+++ b/src/devices/bus/psx/analogue.h
diff --git a/src/emu/bus/psx/ctlrport.c b/src/devices/bus/psx/ctlrport.c
index 09099cb5481..09099cb5481 100644
--- a/src/emu/bus/psx/ctlrport.c
+++ b/src/devices/bus/psx/ctlrport.c
diff --git a/src/emu/bus/psx/ctlrport.h b/src/devices/bus/psx/ctlrport.h
index 2e7a35d2d9d..2e7a35d2d9d 100644
--- a/src/emu/bus/psx/ctlrport.h
+++ b/src/devices/bus/psx/ctlrport.h
diff --git a/src/emu/bus/psx/memcard.c b/src/devices/bus/psx/memcard.c
index c0461a3efac..c0461a3efac 100644
--- a/src/emu/bus/psx/memcard.c
+++ b/src/devices/bus/psx/memcard.c
diff --git a/src/emu/bus/psx/memcard.h b/src/devices/bus/psx/memcard.h
index 85b8d2fa4fd..85b8d2fa4fd 100644
--- a/src/emu/bus/psx/memcard.h
+++ b/src/devices/bus/psx/memcard.h
diff --git a/src/emu/bus/psx/multitap.c b/src/devices/bus/psx/multitap.c
index 67a794b1f58..67a794b1f58 100644
--- a/src/emu/bus/psx/multitap.c
+++ b/src/devices/bus/psx/multitap.c
diff --git a/src/emu/bus/psx/multitap.h b/src/devices/bus/psx/multitap.h
index f968d4e4dc6..f968d4e4dc6 100644
--- a/src/emu/bus/psx/multitap.h
+++ b/src/devices/bus/psx/multitap.h
diff --git a/src/emu/bus/ql/cst_q_plus4.c b/src/devices/bus/ql/cst_q_plus4.c
index 76f5a046566..76f5a046566 100644
--- a/src/emu/bus/ql/cst_q_plus4.c
+++ b/src/devices/bus/ql/cst_q_plus4.c
diff --git a/src/emu/bus/ql/cst_q_plus4.h b/src/devices/bus/ql/cst_q_plus4.h
index 3fa37a71bcc..3fa37a71bcc 100644
--- a/src/emu/bus/ql/cst_q_plus4.h
+++ b/src/devices/bus/ql/cst_q_plus4.h
diff --git a/src/emu/bus/ql/cst_qdisc.c b/src/devices/bus/ql/cst_qdisc.c
index f9fdcf26e04..f9fdcf26e04 100644
--- a/src/emu/bus/ql/cst_qdisc.c
+++ b/src/devices/bus/ql/cst_qdisc.c
diff --git a/src/emu/bus/ql/cst_qdisc.h b/src/devices/bus/ql/cst_qdisc.h
index a4f50cb7ccb..a4f50cb7ccb 100644
--- a/src/emu/bus/ql/cst_qdisc.h
+++ b/src/devices/bus/ql/cst_qdisc.h
diff --git a/src/emu/bus/ql/cumana_fdi.c b/src/devices/bus/ql/cumana_fdi.c
index 91259f0db43..91259f0db43 100644
--- a/src/emu/bus/ql/cumana_fdi.c
+++ b/src/devices/bus/ql/cumana_fdi.c
diff --git a/src/emu/bus/ql/cumana_fdi.h b/src/devices/bus/ql/cumana_fdi.h
index b3249e76cdf..b3249e76cdf 100644
--- a/src/emu/bus/ql/cumana_fdi.h
+++ b/src/devices/bus/ql/cumana_fdi.h
diff --git a/src/emu/bus/ql/exp.c b/src/devices/bus/ql/exp.c
index 4276f941811..4276f941811 100644
--- a/src/emu/bus/ql/exp.c
+++ b/src/devices/bus/ql/exp.c
diff --git a/src/emu/bus/ql/exp.h b/src/devices/bus/ql/exp.h
index c9f84c793e9..c9f84c793e9 100644
--- a/src/emu/bus/ql/exp.h
+++ b/src/devices/bus/ql/exp.h
diff --git a/src/emu/bus/ql/kempston_di.c b/src/devices/bus/ql/kempston_di.c
index c69c129e2e9..c69c129e2e9 100644
--- a/src/emu/bus/ql/kempston_di.c
+++ b/src/devices/bus/ql/kempston_di.c
diff --git a/src/emu/bus/ql/kempston_di.h b/src/devices/bus/ql/kempston_di.h
index 0920fe2430d..0920fe2430d 100644
--- a/src/emu/bus/ql/kempston_di.h
+++ b/src/devices/bus/ql/kempston_di.h
diff --git a/src/emu/bus/ql/miracle_gold_card.c b/src/devices/bus/ql/miracle_gold_card.c
index 3e25f43e0a6..3e25f43e0a6 100644
--- a/src/emu/bus/ql/miracle_gold_card.c
+++ b/src/devices/bus/ql/miracle_gold_card.c
diff --git a/src/emu/bus/ql/miracle_gold_card.h b/src/devices/bus/ql/miracle_gold_card.h
index 36c358984a3..36c358984a3 100644
--- a/src/emu/bus/ql/miracle_gold_card.h
+++ b/src/devices/bus/ql/miracle_gold_card.h
diff --git a/src/emu/bus/ql/miracle_hd.c b/src/devices/bus/ql/miracle_hd.c
index b181fc48918..b181fc48918 100644
--- a/src/emu/bus/ql/miracle_hd.c
+++ b/src/devices/bus/ql/miracle_hd.c
diff --git a/src/emu/bus/ql/miracle_hd.h b/src/devices/bus/ql/miracle_hd.h
index 43ef817475a..43ef817475a 100644
--- a/src/emu/bus/ql/miracle_hd.h
+++ b/src/devices/bus/ql/miracle_hd.h
diff --git a/src/emu/bus/ql/mp_fdi.c b/src/devices/bus/ql/mp_fdi.c
index d23542ab8f4..d23542ab8f4 100644
--- a/src/emu/bus/ql/mp_fdi.c
+++ b/src/devices/bus/ql/mp_fdi.c
diff --git a/src/emu/bus/ql/mp_fdi.h b/src/devices/bus/ql/mp_fdi.h
index 5f0d3e9fd0f..5f0d3e9fd0f 100644
--- a/src/emu/bus/ql/mp_fdi.h
+++ b/src/devices/bus/ql/mp_fdi.h
diff --git a/src/emu/bus/ql/opd_basic_master.c b/src/devices/bus/ql/opd_basic_master.c
index fa20bf4f5eb..fa20bf4f5eb 100644
--- a/src/emu/bus/ql/opd_basic_master.c
+++ b/src/devices/bus/ql/opd_basic_master.c
diff --git a/src/emu/bus/ql/opd_basic_master.h b/src/devices/bus/ql/opd_basic_master.h
index 4a9b2b7e043..4a9b2b7e043 100644
--- a/src/emu/bus/ql/opd_basic_master.h
+++ b/src/devices/bus/ql/opd_basic_master.h
diff --git a/src/emu/bus/ql/pcml_qdisk.c b/src/devices/bus/ql/pcml_qdisk.c
index b5d534f68d7..b5d534f68d7 100644
--- a/src/emu/bus/ql/pcml_qdisk.c
+++ b/src/devices/bus/ql/pcml_qdisk.c
diff --git a/src/emu/bus/ql/pcml_qdisk.h b/src/devices/bus/ql/pcml_qdisk.h
index e59d101d9c4..e59d101d9c4 100644
--- a/src/emu/bus/ql/pcml_qdisk.h
+++ b/src/devices/bus/ql/pcml_qdisk.h
diff --git a/src/emu/bus/ql/qubide.c b/src/devices/bus/ql/qubide.c
index 7af6c6d6694..7af6c6d6694 100644
--- a/src/emu/bus/ql/qubide.c
+++ b/src/devices/bus/ql/qubide.c
diff --git a/src/emu/bus/ql/qubide.h b/src/devices/bus/ql/qubide.h
index 8c93c68cae6..8c93c68cae6 100644
--- a/src/emu/bus/ql/qubide.h
+++ b/src/devices/bus/ql/qubide.h
diff --git a/src/emu/bus/ql/rom.c b/src/devices/bus/ql/rom.c
index 13d72619e8b..13d72619e8b 100644
--- a/src/emu/bus/ql/rom.c
+++ b/src/devices/bus/ql/rom.c
diff --git a/src/emu/bus/ql/rom.h b/src/devices/bus/ql/rom.h
index a8b82d0dc57..a8b82d0dc57 100644
--- a/src/emu/bus/ql/rom.h
+++ b/src/devices/bus/ql/rom.h
diff --git a/src/emu/bus/ql/sandy_superdisk.c b/src/devices/bus/ql/sandy_superdisk.c
index cf334d6db67..cf334d6db67 100644
--- a/src/emu/bus/ql/sandy_superdisk.c
+++ b/src/devices/bus/ql/sandy_superdisk.c
diff --git a/src/emu/bus/ql/sandy_superdisk.h b/src/devices/bus/ql/sandy_superdisk.h
index 350ba709c72..350ba709c72 100644
--- a/src/emu/bus/ql/sandy_superdisk.h
+++ b/src/devices/bus/ql/sandy_superdisk.h
diff --git a/src/emu/bus/ql/sandy_superqboard.c b/src/devices/bus/ql/sandy_superqboard.c
index 3e5558302db..3e5558302db 100644
--- a/src/emu/bus/ql/sandy_superqboard.c
+++ b/src/devices/bus/ql/sandy_superqboard.c
diff --git a/src/emu/bus/ql/sandy_superqboard.h b/src/devices/bus/ql/sandy_superqboard.h
index 07bcd60a137..07bcd60a137 100644
--- a/src/emu/bus/ql/sandy_superqboard.h
+++ b/src/devices/bus/ql/sandy_superqboard.h
diff --git a/src/emu/bus/ql/std.c b/src/devices/bus/ql/std.c
index 11132954104..11132954104 100644
--- a/src/emu/bus/ql/std.c
+++ b/src/devices/bus/ql/std.c
diff --git a/src/emu/bus/ql/std.h b/src/devices/bus/ql/std.h
index 70b1328d79c..70b1328d79c 100644
--- a/src/emu/bus/ql/std.h
+++ b/src/devices/bus/ql/std.h
diff --git a/src/emu/bus/ql/trumpcard.c b/src/devices/bus/ql/trumpcard.c
index fa77ed23d53..fa77ed23d53 100644
--- a/src/emu/bus/ql/trumpcard.c
+++ b/src/devices/bus/ql/trumpcard.c
diff --git a/src/emu/bus/ql/trumpcard.h b/src/devices/bus/ql/trumpcard.h
index 4c303aafd3e..4c303aafd3e 100644
--- a/src/emu/bus/ql/trumpcard.h
+++ b/src/devices/bus/ql/trumpcard.h
diff --git a/src/emu/bus/rs232/keyboard.c b/src/devices/bus/rs232/keyboard.c
index f30d8476d56..f30d8476d56 100644
--- a/src/emu/bus/rs232/keyboard.c
+++ b/src/devices/bus/rs232/keyboard.c
diff --git a/src/emu/bus/rs232/keyboard.h b/src/devices/bus/rs232/keyboard.h
index d2f12663d90..d2f12663d90 100644
--- a/src/emu/bus/rs232/keyboard.h
+++ b/src/devices/bus/rs232/keyboard.h
diff --git a/src/emu/bus/rs232/loopback.c b/src/devices/bus/rs232/loopback.c
index 20c75e4099d..20c75e4099d 100644
--- a/src/emu/bus/rs232/loopback.c
+++ b/src/devices/bus/rs232/loopback.c
diff --git a/src/emu/bus/rs232/loopback.h b/src/devices/bus/rs232/loopback.h
index 3027fe167f3..3027fe167f3 100644
--- a/src/emu/bus/rs232/loopback.h
+++ b/src/devices/bus/rs232/loopback.h
diff --git a/src/emu/bus/rs232/null_modem.c b/src/devices/bus/rs232/null_modem.c
index 16fc4215c9a..16fc4215c9a 100644
--- a/src/emu/bus/rs232/null_modem.c
+++ b/src/devices/bus/rs232/null_modem.c
diff --git a/src/emu/bus/rs232/null_modem.h b/src/devices/bus/rs232/null_modem.h
index e985cafdda3..e985cafdda3 100644
--- a/src/emu/bus/rs232/null_modem.h
+++ b/src/devices/bus/rs232/null_modem.h
diff --git a/src/emu/bus/rs232/printer.c b/src/devices/bus/rs232/printer.c
index e8734ad6de6..e8734ad6de6 100644
--- a/src/emu/bus/rs232/printer.c
+++ b/src/devices/bus/rs232/printer.c
diff --git a/src/emu/bus/rs232/printer.h b/src/devices/bus/rs232/printer.h
index ba36eef04eb..ba36eef04eb 100644
--- a/src/emu/bus/rs232/printer.h
+++ b/src/devices/bus/rs232/printer.h
diff --git a/src/devices/bus/rs232/pty.c b/src/devices/bus/rs232/pty.c
new file mode 100644
index 00000000000..bc673318e2a
--- /dev/null
+++ b/src/devices/bus/rs232/pty.c
@@ -0,0 +1,138 @@
+// license:BSD-3-Clause
+// copyright-holders:F. Ulivi
+//
+#include <stdio.h>
+#include "pty.h"
+
+static const int TIMER_POLL = 1;
+
+pseudo_terminal_device::pseudo_terminal_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 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)
+{
+}
+
+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());
+
+ set_data_frame(startbits, databits, parity, stopbits);
+
+ int txbaud = convert_baud(m_rs232_txbaud->read());
+ set_tra_rate(txbaud);
+
+ int rxbaud = convert_baud(m_rs232_rxbaud->read());
+ set_rcv_rate(rxbaud);
+
+ output_rxd(1);
+
+ // 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)
+INPUT_PORTS_END
+
+ioport_constructor pseudo_terminal_device::device_input_ports() const
+{
+ return INPUT_PORTS_NAME(pseudo_terminal);
+}
+
+void pseudo_terminal_device::device_start()
+{
+ m_timer_poll = timer_alloc(TIMER_POLL);
+
+ open();
+}
+
+void pseudo_terminal_device::device_stop()
+{
+ close();
+}
+
+void pseudo_terminal_device::device_reset()
+{
+ 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;
+
+ default:
+ device_serial_interface::device_timer(timer, id, param, ptr);
+ }
+}
+
+void pseudo_terminal_device::tra_callback()
+{
+ output_rxd(transmit_register_get_data_bit());
+}
+
+void pseudo_terminal_device::tra_complete()
+{
+ queue();
+}
+
+void pseudo_terminal_device::rcv_complete()
+{
+ receive_register_extract();
+ write(get_received_char());
+}
+
+void pseudo_terminal_device::queue(void)
+{
+ 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
+ {
+ int txbaud = convert_baud(m_rs232_txbaud->read());
+ m_timer_poll->adjust(attotime::from_hz(txbaud));
+ }
+ }
+}
+
+const device_type PSEUDO_TERMINAL = &device_creator<pseudo_terminal_device>;
diff --git a/src/devices/bus/rs232/pty.h b/src/devices/bus/rs232/pty.h
new file mode 100644
index 00000000000..1f4ddbce754
--- /dev/null
+++ b/src/devices/bus/rs232/pty.h
@@ -0,0 +1,52 @@
+// license:BSD-3-Clause
+// copyright-holders:F. Ulivi
+//
+#ifndef _RS232_PTY_H_
+#define _RS232_PTY_H_
+
+#include "rs232.h"
+
+class pseudo_terminal_device : public device_t,
+ public device_serial_interface,
+ public device_rs232_port_interface,
+ public device_pty_interface
+{
+public:
+ pseudo_terminal_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ virtual DECLARE_WRITE_LINE_MEMBER( input_txd ) {
+ device_serial_interface::rx_w(state);
+ }
+
+ DECLARE_WRITE_LINE_MEMBER(update_serial);
+
+protected:
+ virtual ioport_constructor device_input_ports() const;
+ virtual void device_start();
+ virtual void device_stop();
+ virtual void device_reset();
+ virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
+
+ virtual void tra_callback();
+ virtual void tra_complete();
+ virtual void rcv_complete();
+
+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 m_input_buffer[ 1024 ];
+ UINT32 m_input_count;
+ UINT32 m_input_index;
+ emu_timer *m_timer_poll;
+
+ void queue(void);
+};
+
+extern const device_type PSEUDO_TERMINAL;
+
+#endif /* _RS232_PTY_H_ */
diff --git a/src/emu/bus/rs232/rs232.c b/src/devices/bus/rs232/rs232.c
index acc1af5dea3..cb2d1771a6e 100644
--- a/src/emu/bus/rs232/rs232.c
+++ b/src/devices/bus/rs232/rs232.c
@@ -103,6 +103,7 @@ device_rs232_port_interface::~device_rs232_port_interface()
#include "null_modem.h"
#include "printer.h"
#include "terminal.h"
+#include "pty.h"
SLOT_INTERFACE_START( default_rs232_devices )
SLOT_INTERFACE("keyboard", SERIAL_KEYBOARD)
@@ -110,4 +111,5 @@ SLOT_INTERFACE_START( default_rs232_devices )
SLOT_INTERFACE("null_modem", NULL_MODEM)
SLOT_INTERFACE("printer", SERIAL_PRINTER)
SLOT_INTERFACE("terminal", SERIAL_TERMINAL)
+ SLOT_INTERFACE("pty", PSEUDO_TERMINAL)
SLOT_INTERFACE_END
diff --git a/src/emu/bus/rs232/rs232.h b/src/devices/bus/rs232/rs232.h
index 6be21fcb639..6be21fcb639 100644
--- a/src/emu/bus/rs232/rs232.h
+++ b/src/devices/bus/rs232/rs232.h
diff --git a/src/emu/bus/rs232/ser_mouse.c b/src/devices/bus/rs232/ser_mouse.c
index cb2d4d12b50..cb2d4d12b50 100644
--- a/src/emu/bus/rs232/ser_mouse.c
+++ b/src/devices/bus/rs232/ser_mouse.c
diff --git a/src/emu/bus/rs232/ser_mouse.h b/src/devices/bus/rs232/ser_mouse.h
index ccc4cdbbdae..ccc4cdbbdae 100644
--- a/src/emu/bus/rs232/ser_mouse.h
+++ b/src/devices/bus/rs232/ser_mouse.h
diff --git a/src/emu/bus/rs232/terminal.c b/src/devices/bus/rs232/terminal.c
index a8b8db63e36..a8b8db63e36 100644
--- a/src/emu/bus/rs232/terminal.c
+++ b/src/devices/bus/rs232/terminal.c
diff --git a/src/emu/bus/rs232/terminal.h b/src/devices/bus/rs232/terminal.h
index d2c92be9920..d2c92be9920 100644
--- a/src/emu/bus/rs232/terminal.h
+++ b/src/devices/bus/rs232/terminal.h
diff --git a/src/emu/bus/rs232/xvd701.c b/src/devices/bus/rs232/xvd701.c
index 47c960e55af..47c960e55af 100644
--- a/src/emu/bus/rs232/xvd701.c
+++ b/src/devices/bus/rs232/xvd701.c
diff --git a/src/emu/bus/rs232/xvd701.h b/src/devices/bus/rs232/xvd701.h
index e25f91fd662..e25f91fd662 100644
--- a/src/emu/bus/rs232/xvd701.h
+++ b/src/devices/bus/rs232/xvd701.h
diff --git a/src/emu/bus/s100/dj2db.c b/src/devices/bus/s100/dj2db.c
index f32d32e3eb2..f32d32e3eb2 100644
--- a/src/emu/bus/s100/dj2db.c
+++ b/src/devices/bus/s100/dj2db.c
diff --git a/src/emu/bus/s100/dj2db.h b/src/devices/bus/s100/dj2db.h
index 460a45ff3dc..460a45ff3dc 100644
--- a/src/emu/bus/s100/dj2db.h
+++ b/src/devices/bus/s100/dj2db.h
diff --git a/src/emu/bus/s100/djdma.c b/src/devices/bus/s100/djdma.c
index c0d93aed2f5..c0d93aed2f5 100644
--- a/src/emu/bus/s100/djdma.c
+++ b/src/devices/bus/s100/djdma.c
diff --git a/src/emu/bus/s100/djdma.h b/src/devices/bus/s100/djdma.h
index b5b54c972c4..b5b54c972c4 100644
--- a/src/emu/bus/s100/djdma.h
+++ b/src/devices/bus/s100/djdma.h
diff --git a/src/emu/bus/s100/mm65k16s.c b/src/devices/bus/s100/mm65k16s.c
index 22240dd789a..22240dd789a 100644
--- a/src/emu/bus/s100/mm65k16s.c
+++ b/src/devices/bus/s100/mm65k16s.c
diff --git a/src/emu/bus/s100/mm65k16s.h b/src/devices/bus/s100/mm65k16s.h
index 35d9cbc21c5..35d9cbc21c5 100644
--- a/src/emu/bus/s100/mm65k16s.h
+++ b/src/devices/bus/s100/mm65k16s.h
diff --git a/src/emu/bus/s100/nsmdsa.c b/src/devices/bus/s100/nsmdsa.c
index 91fb4f46135..91fb4f46135 100644
--- a/src/emu/bus/s100/nsmdsa.c
+++ b/src/devices/bus/s100/nsmdsa.c
diff --git a/src/emu/bus/s100/nsmdsa.h b/src/devices/bus/s100/nsmdsa.h
index 88a2f330391..88a2f330391 100644
--- a/src/emu/bus/s100/nsmdsa.h
+++ b/src/devices/bus/s100/nsmdsa.h
diff --git a/src/emu/bus/s100/nsmdsad.c b/src/devices/bus/s100/nsmdsad.c
index d1a06407c6d..d1a06407c6d 100644
--- a/src/emu/bus/s100/nsmdsad.c
+++ b/src/devices/bus/s100/nsmdsad.c
diff --git a/src/emu/bus/s100/nsmdsad.h b/src/devices/bus/s100/nsmdsad.h
index 1c156590ba1..1c156590ba1 100644
--- a/src/emu/bus/s100/nsmdsad.h
+++ b/src/devices/bus/s100/nsmdsad.h
diff --git a/src/emu/bus/s100/s100.c b/src/devices/bus/s100/s100.c
index aee9ecbccf6..aee9ecbccf6 100644
--- a/src/emu/bus/s100/s100.c
+++ b/src/devices/bus/s100/s100.c
diff --git a/src/emu/bus/s100/s100.h b/src/devices/bus/s100/s100.h
index 9d622b573b6..9d622b573b6 100644
--- a/src/emu/bus/s100/s100.h
+++ b/src/devices/bus/s100/s100.h
diff --git a/src/emu/bus/s100/wunderbus.c b/src/devices/bus/s100/wunderbus.c
index 4b269a80e93..4b269a80e93 100644
--- a/src/emu/bus/s100/wunderbus.c
+++ b/src/devices/bus/s100/wunderbus.c
diff --git a/src/emu/bus/s100/wunderbus.h b/src/devices/bus/s100/wunderbus.h
index 9b51f9afaee..9b51f9afaee 100644
--- a/src/emu/bus/s100/wunderbus.h
+++ b/src/devices/bus/s100/wunderbus.h
diff --git a/src/emu/bus/saturn/bram.c b/src/devices/bus/saturn/bram.c
index 28d0aba2945..28d0aba2945 100644
--- a/src/emu/bus/saturn/bram.c
+++ b/src/devices/bus/saturn/bram.c
diff --git a/src/emu/bus/saturn/bram.h b/src/devices/bus/saturn/bram.h
index c4402431caf..c4402431caf 100644
--- a/src/emu/bus/saturn/bram.h
+++ b/src/devices/bus/saturn/bram.h
diff --git a/src/emu/bus/saturn/dram.c b/src/devices/bus/saturn/dram.c
index d1078fcc722..d1078fcc722 100644
--- a/src/emu/bus/saturn/dram.c
+++ b/src/devices/bus/saturn/dram.c
diff --git a/src/emu/bus/saturn/dram.h b/src/devices/bus/saturn/dram.h
index 53bf97d8468..53bf97d8468 100644
--- a/src/emu/bus/saturn/dram.h
+++ b/src/devices/bus/saturn/dram.h
diff --git a/src/emu/bus/saturn/rom.c b/src/devices/bus/saturn/rom.c
index 7b8068735a1..7b8068735a1 100644
--- a/src/emu/bus/saturn/rom.c
+++ b/src/devices/bus/saturn/rom.c
diff --git a/src/emu/bus/saturn/rom.h b/src/devices/bus/saturn/rom.h
index 021526bcce4..021526bcce4 100644
--- a/src/emu/bus/saturn/rom.h
+++ b/src/devices/bus/saturn/rom.h
diff --git a/src/emu/bus/saturn/sat_slot.c b/src/devices/bus/saturn/sat_slot.c
index aa3a563f68d..aa3a563f68d 100644
--- a/src/emu/bus/saturn/sat_slot.c
+++ b/src/devices/bus/saturn/sat_slot.c
diff --git a/src/emu/bus/saturn/sat_slot.h b/src/devices/bus/saturn/sat_slot.h
index 13b46c23374..13b46c23374 100644
--- a/src/emu/bus/saturn/sat_slot.h
+++ b/src/devices/bus/saturn/sat_slot.h
diff --git a/src/emu/bus/scsi/acb4070.c b/src/devices/bus/scsi/acb4070.c
index 1503272b55c..1503272b55c 100644
--- a/src/emu/bus/scsi/acb4070.c
+++ b/src/devices/bus/scsi/acb4070.c
diff --git a/src/emu/bus/scsi/acb4070.h b/src/devices/bus/scsi/acb4070.h
index e396c6eb58f..e396c6eb58f 100644
--- a/src/emu/bus/scsi/acb4070.h
+++ b/src/devices/bus/scsi/acb4070.h
diff --git a/src/emu/bus/scsi/cdu76s.c b/src/devices/bus/scsi/cdu76s.c
index bb6a70390ed..bb6a70390ed 100644
--- a/src/emu/bus/scsi/cdu76s.c
+++ b/src/devices/bus/scsi/cdu76s.c
diff --git a/src/emu/bus/scsi/cdu76s.h b/src/devices/bus/scsi/cdu76s.h
index a0997ea6c05..a0997ea6c05 100644
--- a/src/emu/bus/scsi/cdu76s.h
+++ b/src/devices/bus/scsi/cdu76s.h
diff --git a/src/emu/bus/scsi/d9060hd.c b/src/devices/bus/scsi/d9060hd.c
index 3d212582a39..3d212582a39 100644
--- a/src/emu/bus/scsi/d9060hd.c
+++ b/src/devices/bus/scsi/d9060hd.c
diff --git a/src/emu/bus/scsi/d9060hd.h b/src/devices/bus/scsi/d9060hd.h
index f3fa504cf81..f3fa504cf81 100644
--- a/src/emu/bus/scsi/d9060hd.h
+++ b/src/devices/bus/scsi/d9060hd.h
diff --git a/src/devices/bus/scsi/omti5100.c b/src/devices/bus/scsi/omti5100.c
new file mode 100644
index 00000000000..9dd436f4acb
--- /dev/null
+++ b/src/devices/bus/scsi/omti5100.c
@@ -0,0 +1,187 @@
+// license:BSD-3-Clause
+// copyright-holders:smf
+#include "omti5100.h"
+
+#define OMTI_STATUS_SEEK_FAIL 0x02
+#define OMTI_STATUS_NOT_READY 0x04
+#define OMTI_CHECK_TRACK_FORMAT 0x05
+#define OMTI_FORMAT_TRACK 0x06
+#define OMTI_READ_DATA_BUFFER 0xec
+#define OMTI_ASSIGN_DISK_PARAM 0xc2
+
+const device_type OMTI5100 = &device_creator<omti5100_device>;
+
+#if 0
+ROM_START( omti5100 )
+ ROM_REGION(0x1000, "mcu", 0) // Hitachi Z8
+ ROM_LOAD("100240-N.7a", 0x0000, 0x1000, CRC(d227d6cb) SHA1(3d6140764d3d043428c941826370ebf1597c63bd))
+ROM_END
+
+const rom_entry *omti5100_device::device_rom_region() const
+{
+ return ROM_NAME( omti5100 );
+}
+#endif
+
+omti5100_device::omti5100_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : scsihd_device(mconfig, OMTI5100, "OMTI 5100", tag, owner, clock, "omti5100", __FILE__),
+ m_image0(*this, "image0"),
+ m_image1(*this, "image1")
+{
+}
+
+void omti5100_device::device_start()
+{
+ if(!m_image0->get_hard_disk_file())
+ m_image = m_image1;
+ m_image = m_image0;
+ scsihle_device::device_start();
+}
+
+void omti5100_device::ExecCommand()
+{
+ int drive = (command[1] >> 5) & 1;
+ hard_disk_file *image = (drive ? m_image1 : m_image0)->get_hard_disk_file();
+ if(!image)
+ {
+ if(command[0] == T10SPC_CMD_REQUEST_SENSE)
+ return scsihd_device::ExecCommand();
+
+ m_phase = SCSI_PHASE_STATUS;
+ m_status_code = SCSI_STATUS_CODE_CHECK_CONDITION;
+ m_sense_asc = OMTI_STATUS_NOT_READY;
+ m_transfer_length = 0;
+ return;
+ }
+ hard_disk_info *info = hard_disk_get_info(image);
+ switch(command[0])
+ {
+ case OMTI_READ_DATA_BUFFER:
+ m_phase = SCSI_PHASE_DATAIN;
+ m_status_code = SCSI_STATUS_CODE_GOOD;
+ m_transfer_length = 512;
+ break;
+ case OMTI_ASSIGN_DISK_PARAM:
+ m_phase = SCSI_PHASE_DATAOUT;
+ m_status_code = SCSI_STATUS_CODE_GOOD;
+ m_transfer_length = 10;
+ break;
+ case OMTI_CHECK_TRACK_FORMAT:
+ m_phase = SCSI_PHASE_STATUS;
+ m_status_code = SCSI_STATUS_CODE_GOOD;
+ m_transfer_length = 0;
+ break;
+
+ case T10SBC_CMD_READ_6:
+ {
+ int track = ((command[1]&0x1f)<<16 | command[2]<<8 | command[3]) / (m_param[drive].sectors ? m_param[drive].sectors : 1);
+ int heads = m_param[drive].heads ? m_param[drive].heads : 1;
+ if(((track % heads) > info->heads) || (track >= (info->cylinders * heads)))
+ {
+ m_phase = SCSI_PHASE_STATUS;
+ m_status_code = SCSI_STATUS_CODE_CHECK_CONDITION;
+ m_sense_asc = OMTI_STATUS_SEEK_FAIL;
+ m_transfer_length = 0;
+ }
+ else
+ {
+ SetDevice(image);
+ scsihd_device::ExecCommand();
+ }
+ break;
+ }
+ case OMTI_FORMAT_TRACK:
+ {
+ int track = ((command[1]&0x1f)<<16 | command[2]<<8 | command[3]) / m_param[drive].sectors;
+ if(((track % m_param[drive].heads) <= info->heads) && (track < (info->cylinders * m_param[drive].heads)))
+ {
+ dynamic_buffer sector(info->sectorbytes);
+ memset(&sector[0], 0xe5, info->sectorbytes);
+ m_phase = SCSI_PHASE_STATUS;
+ m_status_code = SCSI_STATUS_CODE_GOOD;
+ m_transfer_length = 0;
+ for(int i = 0; i < info->sectors; i++)
+ hard_disk_write(image, track * info->sectors + i, &sector[0]);
+ }
+ else
+ {
+ m_phase = SCSI_PHASE_STATUS;
+ m_status_code = SCSI_STATUS_CODE_CHECK_CONDITION;
+ m_sense_asc = OMTI_STATUS_SEEK_FAIL;
+ m_transfer_length = 0;
+ }
+ break;
+ }
+ default:
+ SetDevice(image);
+ scsihd_device::ExecCommand();
+ break;
+ }
+}
+
+void omti5100_device::ReadData( UINT8 *data, int dataLength )
+{
+ switch( command[ 0 ] )
+ {
+ case OMTI_READ_DATA_BUFFER:
+ data[0] = '5';
+ data[1] = '1';
+ data[2] = '0';
+ data[3] = '0';
+ break;
+
+ default:
+ scsihd_device::ReadData( data, dataLength );
+ break;
+ }
+}
+
+void omti5100_device::WriteData( UINT8 *data, int dataLength )
+{
+ switch( command[ 0 ] )
+ {
+ case OMTI_ASSIGN_DISK_PARAM:
+ {
+ int drive = ((command[1] >> 5) & 1);
+ hard_disk_file *image = (drive ? m_image1 : m_image0)->get_hard_disk_file();
+ m_param[drive].heads = data[3] + 1;
+ m_param[drive].cylinders = ((data[4] << 8) | data[5]) + 1;
+ if(!data[8] && image)
+ {
+ switch(hard_disk_get_info(image)->sectorbytes)
+ {
+ case 128:
+ m_param[drive].sectors = 53;
+ break;
+ case 256:
+ m_param[drive].sectors = 32;
+ break;
+ case 512:
+ m_param[drive].sectors = 18; // XXX: check this!
+ break;
+ case 1024:
+ m_param[drive].sectors = 9;
+ break;
+ }
+ }
+ else
+ m_param[drive].sectors = data[8] + 1;
+ break;
+ }
+
+ default:
+ scsihd_device::WriteData( data, dataLength );
+ break;
+ }
+}
+
+static MACHINE_CONFIG_FRAGMENT( omti5100 )
+ MCFG_HARDDISK_ADD("image0")
+ MCFG_HARDDISK_ADD("image1")
+MACHINE_CONFIG_END
+
+
+machine_config_constructor omti5100_device::device_mconfig_additions() const
+{
+ return MACHINE_CONFIG_NAME( omti5100 );
+}
diff --git a/src/emu/bus/scsi/omti5100.h b/src/devices/bus/scsi/omti5100.h
index 9c9e1e5444c..f07be338226 100644
--- a/src/emu/bus/scsi/omti5100.h
+++ b/src/devices/bus/scsi/omti5100.h
@@ -18,11 +18,13 @@ public:
virtual void ExecCommand();
virtual void ReadData( UINT8 *data, int dataLength );
+ virtual void WriteData( UINT8 *data, int dataLength );
void device_start();
private:
required_device<harddisk_image_device> m_image0;
required_device<harddisk_image_device> m_image1;
+ hard_disk_info m_param[2];
};
extern const device_type OMTI5100;
diff --git a/src/emu/bus/scsi/pc9801_sasi.c b/src/devices/bus/scsi/pc9801_sasi.c
index 619f9f074da..619f9f074da 100644
--- a/src/emu/bus/scsi/pc9801_sasi.c
+++ b/src/devices/bus/scsi/pc9801_sasi.c
diff --git a/src/emu/bus/scsi/pc9801_sasi.h b/src/devices/bus/scsi/pc9801_sasi.h
index 44ef5f5e0cc..44ef5f5e0cc 100644
--- a/src/emu/bus/scsi/pc9801_sasi.h
+++ b/src/devices/bus/scsi/pc9801_sasi.h
diff --git a/src/emu/bus/scsi/s1410.c b/src/devices/bus/scsi/s1410.c
index 59b964ce4f2..59b964ce4f2 100644
--- a/src/emu/bus/scsi/s1410.c
+++ b/src/devices/bus/scsi/s1410.c
diff --git a/src/emu/bus/scsi/s1410.h b/src/devices/bus/scsi/s1410.h
index b7834f56c88..b7834f56c88 100644
--- a/src/emu/bus/scsi/s1410.h
+++ b/src/devices/bus/scsi/s1410.h
diff --git a/src/emu/bus/scsi/sa1403d.c b/src/devices/bus/scsi/sa1403d.c
index 1abe47e0805..1abe47e0805 100644
--- a/src/emu/bus/scsi/sa1403d.c
+++ b/src/devices/bus/scsi/sa1403d.c
diff --git a/src/emu/bus/scsi/sa1403d.h b/src/devices/bus/scsi/sa1403d.h
index 5f92ff11240..5f92ff11240 100644
--- a/src/emu/bus/scsi/sa1403d.h
+++ b/src/devices/bus/scsi/sa1403d.h
diff --git a/src/emu/bus/scsi/scsi.c b/src/devices/bus/scsi/scsi.c
index 7eac8fc7631..7eac8fc7631 100644
--- a/src/emu/bus/scsi/scsi.c
+++ b/src/devices/bus/scsi/scsi.c
diff --git a/src/emu/bus/scsi/scsi.h b/src/devices/bus/scsi/scsi.h
index dd8c88635ed..dd8c88635ed 100644
--- a/src/emu/bus/scsi/scsi.h
+++ b/src/devices/bus/scsi/scsi.h
diff --git a/src/emu/bus/scsi/scsicd.c b/src/devices/bus/scsi/scsicd.c
index 9ee7d92668f..9ee7d92668f 100644
--- a/src/emu/bus/scsi/scsicd.c
+++ b/src/devices/bus/scsi/scsicd.c
diff --git a/src/emu/bus/scsi/scsicd.h b/src/devices/bus/scsi/scsicd.h
index c7667ee3321..c7667ee3321 100644
--- a/src/emu/bus/scsi/scsicd.h
+++ b/src/devices/bus/scsi/scsicd.h
diff --git a/src/emu/bus/scsi/scsihd.c b/src/devices/bus/scsi/scsihd.c
index 8774310d0b3..8774310d0b3 100644
--- a/src/emu/bus/scsi/scsihd.c
+++ b/src/devices/bus/scsi/scsihd.c
diff --git a/src/emu/bus/scsi/scsihd.h b/src/devices/bus/scsi/scsihd.h
index db151095847..db151095847 100644
--- a/src/emu/bus/scsi/scsihd.h
+++ b/src/devices/bus/scsi/scsihd.h
diff --git a/src/emu/bus/scsi/scsihle.c b/src/devices/bus/scsi/scsihle.c
index 033e1f66bae..57a1759db07 100644
--- a/src/emu/bus/scsi/scsihle.c
+++ b/src/devices/bus/scsi/scsihle.c
@@ -183,6 +183,10 @@ void scsihle_device::scsibus_read_data()
void scsihle_device::scsibus_write_data()
{
+ data_last = (bytes_left >= m_sector_bytes) ? m_sector_bytes : bytes_left;
+
+ LOG(2,"SCSIBUS:scsibus_write_data bytes_left=%04X, data_last=%04X\n",bytes_left,data_last);
+
if (data_last > 0)
{
WriteData(buffer, data_last);
diff --git a/src/emu/bus/scsi/scsihle.h b/src/devices/bus/scsi/scsihle.h
index 5f638149ffd..5f638149ffd 100644
--- a/src/emu/bus/scsi/scsihle.h
+++ b/src/devices/bus/scsi/scsihle.h
diff --git a/src/emu/bus/scv/rom.c b/src/devices/bus/scv/rom.c
index ce71249d453..ce71249d453 100644
--- a/src/emu/bus/scv/rom.c
+++ b/src/devices/bus/scv/rom.c
diff --git a/src/emu/bus/scv/rom.h b/src/devices/bus/scv/rom.h
index 412f72acfef..412f72acfef 100644
--- a/src/emu/bus/scv/rom.h
+++ b/src/devices/bus/scv/rom.h
diff --git a/src/emu/bus/scv/slot.c b/src/devices/bus/scv/slot.c
index 12ecf7c4db9..12ecf7c4db9 100644
--- a/src/emu/bus/scv/slot.c
+++ b/src/devices/bus/scv/slot.c
diff --git a/src/emu/bus/scv/slot.h b/src/devices/bus/scv/slot.h
index dea4af488fb..dea4af488fb 100644
--- a/src/emu/bus/scv/slot.h
+++ b/src/devices/bus/scv/slot.h
diff --git a/src/emu/bus/sega8/ccatch.c b/src/devices/bus/sega8/ccatch.c
index ec42d1304b4..ec42d1304b4 100644
--- a/src/emu/bus/sega8/ccatch.c
+++ b/src/devices/bus/sega8/ccatch.c
diff --git a/src/emu/bus/sega8/ccatch.h b/src/devices/bus/sega8/ccatch.h
index ece120c0a57..ece120c0a57 100644
--- a/src/emu/bus/sega8/ccatch.h
+++ b/src/devices/bus/sega8/ccatch.h
diff --git a/src/emu/bus/sega8/mgear.c b/src/devices/bus/sega8/mgear.c
index 250eb58e13a..250eb58e13a 100644
--- a/src/emu/bus/sega8/mgear.c
+++ b/src/devices/bus/sega8/mgear.c
diff --git a/src/emu/bus/sega8/mgear.h b/src/devices/bus/sega8/mgear.h
index 2e4afa40466..2e4afa40466 100644
--- a/src/emu/bus/sega8/mgear.h
+++ b/src/devices/bus/sega8/mgear.h
diff --git a/src/emu/bus/sega8/rom.c b/src/devices/bus/sega8/rom.c
index 3770560806d..3770560806d 100644
--- a/src/emu/bus/sega8/rom.c
+++ b/src/devices/bus/sega8/rom.c
diff --git a/src/emu/bus/sega8/rom.h b/src/devices/bus/sega8/rom.h
index c04a149fdc9..c04a149fdc9 100644
--- a/src/emu/bus/sega8/rom.h
+++ b/src/devices/bus/sega8/rom.h
diff --git a/src/emu/bus/sega8/sega8_slot.c b/src/devices/bus/sega8/sega8_slot.c
index ac696a0ac95..ac696a0ac95 100644
--- a/src/emu/bus/sega8/sega8_slot.c
+++ b/src/devices/bus/sega8/sega8_slot.c
diff --git a/src/emu/bus/sega8/sega8_slot.h b/src/devices/bus/sega8/sega8_slot.h
index ac0fdd406cd..ac0fdd406cd 100644
--- a/src/emu/bus/sega8/sega8_slot.h
+++ b/src/devices/bus/sega8/sega8_slot.h
diff --git a/src/emu/bus/sms_ctrl/graphic.c b/src/devices/bus/sms_ctrl/graphic.c
index 31d211e30a8..31d211e30a8 100644
--- a/src/emu/bus/sms_ctrl/graphic.c
+++ b/src/devices/bus/sms_ctrl/graphic.c
diff --git a/src/emu/bus/sms_ctrl/graphic.h b/src/devices/bus/sms_ctrl/graphic.h
index 852a6f7a71b..852a6f7a71b 100644
--- a/src/emu/bus/sms_ctrl/graphic.h
+++ b/src/devices/bus/sms_ctrl/graphic.h
diff --git a/src/emu/bus/sms_ctrl/joypad.c b/src/devices/bus/sms_ctrl/joypad.c
index b2537453c6a..b2537453c6a 100644
--- a/src/emu/bus/sms_ctrl/joypad.c
+++ b/src/devices/bus/sms_ctrl/joypad.c
diff --git a/src/emu/bus/sms_ctrl/joypad.h b/src/devices/bus/sms_ctrl/joypad.h
index ed7b1141b03..ed7b1141b03 100644
--- a/src/emu/bus/sms_ctrl/joypad.h
+++ b/src/devices/bus/sms_ctrl/joypad.h
diff --git a/src/emu/bus/sms_ctrl/lphaser.c b/src/devices/bus/sms_ctrl/lphaser.c
index 32998115887..32998115887 100644
--- a/src/emu/bus/sms_ctrl/lphaser.c
+++ b/src/devices/bus/sms_ctrl/lphaser.c
diff --git a/src/emu/bus/sms_ctrl/lphaser.h b/src/devices/bus/sms_ctrl/lphaser.h
index ed0687a9f6e..ed0687a9f6e 100644
--- a/src/emu/bus/sms_ctrl/lphaser.h
+++ b/src/devices/bus/sms_ctrl/lphaser.h
diff --git a/src/emu/bus/sms_ctrl/multitap.c b/src/devices/bus/sms_ctrl/multitap.c
index fd098b82c18..fd098b82c18 100644
--- a/src/emu/bus/sms_ctrl/multitap.c
+++ b/src/devices/bus/sms_ctrl/multitap.c
diff --git a/src/emu/bus/sms_ctrl/multitap.h b/src/devices/bus/sms_ctrl/multitap.h
index 9fc8de8b745..9fc8de8b745 100644
--- a/src/emu/bus/sms_ctrl/multitap.h
+++ b/src/devices/bus/sms_ctrl/multitap.h
diff --git a/src/emu/bus/sms_ctrl/paddle.c b/src/devices/bus/sms_ctrl/paddle.c
index e2418f38345..e2418f38345 100644
--- a/src/emu/bus/sms_ctrl/paddle.c
+++ b/src/devices/bus/sms_ctrl/paddle.c
diff --git a/src/emu/bus/sms_ctrl/paddle.h b/src/devices/bus/sms_ctrl/paddle.h
index 984b5a87082..984b5a87082 100644
--- a/src/emu/bus/sms_ctrl/paddle.h
+++ b/src/devices/bus/sms_ctrl/paddle.h
diff --git a/src/emu/bus/sms_ctrl/rfu.c b/src/devices/bus/sms_ctrl/rfu.c
index 3da326aa378..3da326aa378 100644
--- a/src/emu/bus/sms_ctrl/rfu.c
+++ b/src/devices/bus/sms_ctrl/rfu.c
diff --git a/src/emu/bus/sms_ctrl/rfu.h b/src/devices/bus/sms_ctrl/rfu.h
index a27ef0aca02..a27ef0aca02 100644
--- a/src/emu/bus/sms_ctrl/rfu.h
+++ b/src/devices/bus/sms_ctrl/rfu.h
diff --git a/src/emu/bus/sms_ctrl/smsctrl.c b/src/devices/bus/sms_ctrl/smsctrl.c
index 59536ef0f38..59536ef0f38 100644
--- a/src/emu/bus/sms_ctrl/smsctrl.c
+++ b/src/devices/bus/sms_ctrl/smsctrl.c
diff --git a/src/emu/bus/sms_ctrl/smsctrl.h b/src/devices/bus/sms_ctrl/smsctrl.h
index 950e620c99b..950e620c99b 100644
--- a/src/emu/bus/sms_ctrl/smsctrl.h
+++ b/src/devices/bus/sms_ctrl/smsctrl.h
diff --git a/src/emu/bus/sms_ctrl/sports.c b/src/devices/bus/sms_ctrl/sports.c
index f5bc15e170b..4050159beb1 100644
--- a/src/emu/bus/sms_ctrl/sports.c
+++ b/src/devices/bus/sms_ctrl/sports.c
@@ -6,6 +6,22 @@
**********************************************************************/
+// The games designed for the US model of the Sports Pad controller use the
+// TH line of the controller port as output, to select which nibble, of the
+// two axis bytes, will be read at a time. The Japanese cartridge Sports Pad
+// Soccer uses a different mode, because the Sega Mark III lacks TH output, so
+// there is a different Sports Pad model released in Japan (see sportsjp.c).
+
+// It was discovered that games designed for the Paddle Controller, released
+// in Japan, switch to a mode incompatible with the original Paddle when
+// detect the system region as Export. Similar to how the US model of the
+// Sports Pad works, that mode uses the TH line as output to select which
+// nibble of the X axis will be read. So, on an Export console version, paddle
+// games are somewhat playable with the US Sport Pad model, though it needs to
+// be used inverted and the trackball needs to be moved slowly, else the
+// software for the paddle think it's moving backward.
+// See http://mametesters.org/view.php?id=5872 for discussion.
+
#include "sports.h"
@@ -16,32 +32,33 @@
const device_type SMS_SPORTS_PAD = &device_creator<sms_sports_pad_device>;
-
+// time interval not verified
#define SPORTS_PAD_INTERVAL attotime::from_hz(XTAL_53_693175MHz/15/512)
-CUSTOM_INPUT_MEMBER( sms_sports_pad_device::dir_pins_r )
+void sms_sports_pad_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
{
- UINT8 data = 0;
-
- switch (m_read_state)
+ switch (id)
{
- case 0:
- data = m_sports_x->read() >> 4;
- break;
- case 1:
- data = m_sports_x->read();
- break;
- case 2:
- data = m_sports_y->read() >> 4;
- break;
- case 3:
- data = m_sports_y->read();
+ case TIMER_SPORTSPAD:
+ // values for x and y axis need to be resetted for Sports Pad games, but
+ // are not resetted for paddle games, so it was assumed the reset occurs
+ // only when this timer fires after the read state reached maximum value.
+ if (m_read_state == 3)
+ {
+ m_x_axis_reset_value = m_sports_x->read();
+ m_y_axis_reset_value = m_sports_y->read();
+ }
+ else
+ {
+ // set to maximum value, so it wraps to 0 at next increment
+ m_read_state = 3;
+ }
+
break;
+ default:
+ assert_always(FALSE, "Unknown id in sms_sports_pad_device::device_timer");
}
-
- // The returned value is inverted due to IP_ACTIVE_LOW mapping.
- return ~(data & 0x0f);
}
@@ -53,18 +70,34 @@ CUSTOM_INPUT_MEMBER( sms_sports_pad_device::th_pin_r )
INPUT_CHANGED_MEMBER( sms_sports_pad_device::th_pin_w )
{
- attotime cur_time = machine().time();
+ m_read_state = (m_read_state + 1) & 3;
+ m_sportspad_timer->adjust(m_interval);
+ m_last_data = newval;
+}
- if (cur_time - m_last_time > m_interval)
- {
- m_read_state = 0;
- }
- else
+
+CUSTOM_INPUT_MEMBER( sms_sports_pad_device::dir_pins_r )
+{
+ UINT8 data = 0;
+
+ switch (m_read_state)
{
- m_read_state = (m_read_state + 1) & 3;
+ case 0:
+ data = (m_sports_x->read() - m_x_axis_reset_value) >> 4;
+ break;
+ case 1:
+ data = (m_sports_x->read() - m_x_axis_reset_value);
+ break;
+ case 2:
+ data = (m_sports_y->read() - m_y_axis_reset_value) >> 4;
+ break;
+ case 3:
+ data = (m_sports_y->read() - m_y_axis_reset_value);
+ break;
}
- m_last_time = cur_time;
- m_last_data = newval;
+
+ // The returned value is inverted due to IP_ACTIVE_LOW mapping.
+ return ~(data & 0x0f);
}
@@ -84,10 +117,10 @@ static INPUT_PORTS_START( sms_sports_pad )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) // TR (Button 2)
PORT_START("SPORTS_X") /* Sports Pad X axis */
- PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(40) PORT_RESET PORT_REVERSE
+ PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(40) PORT_REVERSE
PORT_START("SPORTS_Y") /* Sports Pad Y axis */
- PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(40) PORT_RESET PORT_REVERSE
+ PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(40) PORT_REVERSE
INPUT_PORTS_END
@@ -119,6 +152,8 @@ sms_sports_pad_device::sms_sports_pad_device(const machine_config &mconfig, cons
m_sports_y(*this, "SPORTS_Y"),
m_read_state(0),
m_last_data(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)
{
}
@@ -130,11 +165,12 @@ sms_sports_pad_device::sms_sports_pad_device(const machine_config &mconfig, cons
void sms_sports_pad_device::device_start()
{
- m_last_time = machine().time();
+ m_sportspad_timer = timer_alloc(TIMER_SPORTSPAD);
save_item(NAME(m_read_state));
save_item(NAME(m_last_data));
- save_item(NAME(m_last_time));
+ save_item(NAME(m_x_axis_reset_value));
+ save_item(NAME(m_y_axis_reset_value));
}
diff --git a/src/emu/bus/sms_ctrl/sports.h b/src/devices/bus/sms_ctrl/sports.h
index b0efde2abe8..f303b140a5b 100644
--- a/src/emu/bus/sms_ctrl/sports.h
+++ b/src/devices/bus/sms_ctrl/sports.h
@@ -53,8 +53,13 @@ private:
UINT8 m_read_state;
UINT8 m_last_data;
+ UINT8 m_x_axis_reset_value;
+ UINT8 m_y_axis_reset_value;
const attotime m_interval;
- attotime m_last_time;
+ emu_timer *m_sportspad_timer;
+ static const device_timer_id TIMER_SPORTSPAD = 0;
+
+ void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
};
diff --git a/src/emu/bus/sms_ctrl/sportsjp.c b/src/devices/bus/sms_ctrl/sportsjp.c
index d431f0a6816..d431f0a6816 100644
--- a/src/emu/bus/sms_ctrl/sportsjp.c
+++ b/src/devices/bus/sms_ctrl/sportsjp.c
diff --git a/src/emu/bus/sms_ctrl/sportsjp.h b/src/devices/bus/sms_ctrl/sportsjp.h
index 082546221e6..082546221e6 100644
--- a/src/emu/bus/sms_ctrl/sportsjp.h
+++ b/src/devices/bus/sms_ctrl/sportsjp.h
diff --git a/src/emu/bus/sms_exp/gender.c b/src/devices/bus/sms_exp/gender.c
index 4ef55b1ffe5..4ef55b1ffe5 100644
--- a/src/emu/bus/sms_exp/gender.c
+++ b/src/devices/bus/sms_exp/gender.c
diff --git a/src/emu/bus/sms_exp/gender.h b/src/devices/bus/sms_exp/gender.h
index 2b8503da968..2b8503da968 100644
--- a/src/emu/bus/sms_exp/gender.h
+++ b/src/devices/bus/sms_exp/gender.h
diff --git a/src/emu/bus/sms_exp/smsexp.c b/src/devices/bus/sms_exp/smsexp.c
index 9b26999a94b..9b26999a94b 100644
--- a/src/emu/bus/sms_exp/smsexp.c
+++ b/src/devices/bus/sms_exp/smsexp.c
diff --git a/src/emu/bus/sms_exp/smsexp.h b/src/devices/bus/sms_exp/smsexp.h
index 58d1a33228d..58d1a33228d 100644
--- a/src/emu/bus/sms_exp/smsexp.h
+++ b/src/devices/bus/sms_exp/smsexp.h
diff --git a/src/emu/bus/snes/bsx.c b/src/devices/bus/snes/bsx.c
index 08fa68dc082..08fa68dc082 100644
--- a/src/emu/bus/snes/bsx.c
+++ b/src/devices/bus/snes/bsx.c
diff --git a/src/emu/bus/snes/bsx.h b/src/devices/bus/snes/bsx.h
index a91e713560d..a91e713560d 100644
--- a/src/emu/bus/snes/bsx.h
+++ b/src/devices/bus/snes/bsx.h
diff --git a/src/emu/bus/snes/event.c b/src/devices/bus/snes/event.c
index ebd203adaad..ebd203adaad 100644
--- a/src/emu/bus/snes/event.c
+++ b/src/devices/bus/snes/event.c
diff --git a/src/emu/bus/snes/event.h b/src/devices/bus/snes/event.h
index 1bd3e0c97e0..1bd3e0c97e0 100644
--- a/src/emu/bus/snes/event.h
+++ b/src/devices/bus/snes/event.h
diff --git a/src/emu/bus/snes/rom.c b/src/devices/bus/snes/rom.c
index 9e77da8dda5..9e77da8dda5 100644
--- a/src/emu/bus/snes/rom.c
+++ b/src/devices/bus/snes/rom.c
diff --git a/src/emu/bus/snes/rom.h b/src/devices/bus/snes/rom.h
index bdcbd8ed92c..bdcbd8ed92c 100644
--- a/src/emu/bus/snes/rom.h
+++ b/src/devices/bus/snes/rom.h
diff --git a/src/emu/bus/snes/rom21.c b/src/devices/bus/snes/rom21.c
index 09630b7e393..09630b7e393 100644
--- a/src/emu/bus/snes/rom21.c
+++ b/src/devices/bus/snes/rom21.c
diff --git a/src/emu/bus/snes/rom21.h b/src/devices/bus/snes/rom21.h
index a70d9fdc6c8..a70d9fdc6c8 100644
--- a/src/emu/bus/snes/rom21.h
+++ b/src/devices/bus/snes/rom21.h
diff --git a/src/emu/bus/snes/sa1.c b/src/devices/bus/snes/sa1.c
index 6da031f21b2..6da031f21b2 100644
--- a/src/emu/bus/snes/sa1.c
+++ b/src/devices/bus/snes/sa1.c
diff --git a/src/emu/bus/snes/sa1.h b/src/devices/bus/snes/sa1.h
index d388303f9f9..d388303f9f9 100644
--- a/src/emu/bus/snes/sa1.h
+++ b/src/devices/bus/snes/sa1.h
diff --git a/src/emu/bus/snes/sdd1.c b/src/devices/bus/snes/sdd1.c
index fe7b2c762ec..0b47d84f3c0 100644
--- a/src/emu/bus/snes/sdd1.c
+++ b/src/devices/bus/snes/sdd1.c
@@ -5,7 +5,7 @@
S-DD1 add-on chip emulation (for SNES/SFC)
Based on Andreas Naive Public Domain code.
- Code ported by MooglyGuy and updated to slots by Fabio Priuli.
+ Code ported by Ryan Holtz and updated to slots by Fabio Priuli.
***********************************************************************************************************/
diff --git a/src/emu/bus/snes/sdd1.h b/src/devices/bus/snes/sdd1.h
index cef80512694..cef80512694 100644
--- a/src/emu/bus/snes/sdd1.h
+++ b/src/devices/bus/snes/sdd1.h
diff --git a/src/emu/bus/snes/sfx.c b/src/devices/bus/snes/sfx.c
index 9fce31d00db..9fce31d00db 100644
--- a/src/emu/bus/snes/sfx.c
+++ b/src/devices/bus/snes/sfx.c
diff --git a/src/emu/bus/snes/sfx.h b/src/devices/bus/snes/sfx.h
index 04a2313fd92..04a2313fd92 100644
--- a/src/emu/bus/snes/sfx.h
+++ b/src/devices/bus/snes/sfx.h
diff --git a/src/emu/bus/snes/sgb.c b/src/devices/bus/snes/sgb.c
index 93edb4aeb50..93edb4aeb50 100644
--- a/src/emu/bus/snes/sgb.c
+++ b/src/devices/bus/snes/sgb.c
diff --git a/src/emu/bus/snes/sgb.h b/src/devices/bus/snes/sgb.h
index 01bfd6ea887..01bfd6ea887 100644
--- a/src/emu/bus/snes/sgb.h
+++ b/src/devices/bus/snes/sgb.h
diff --git a/src/emu/bus/snes/snes_carts.c b/src/devices/bus/snes/snes_carts.c
index 478dd6af83c..478dd6af83c 100644
--- a/src/emu/bus/snes/snes_carts.c
+++ b/src/devices/bus/snes/snes_carts.c
diff --git a/src/emu/bus/snes/snes_carts.h b/src/devices/bus/snes/snes_carts.h
index 11eab07a315..11eab07a315 100644
--- a/src/emu/bus/snes/snes_carts.h
+++ b/src/devices/bus/snes/snes_carts.h
diff --git a/src/emu/bus/snes/snes_slot.c b/src/devices/bus/snes/snes_slot.c
index d44325d728f..d44325d728f 100644
--- a/src/emu/bus/snes/snes_slot.c
+++ b/src/devices/bus/snes/snes_slot.c
diff --git a/src/emu/bus/snes/snes_slot.h b/src/devices/bus/snes/snes_slot.h
index a6fa076810f..a6fa076810f 100644
--- a/src/emu/bus/snes/snes_slot.h
+++ b/src/devices/bus/snes/snes_slot.h
diff --git a/src/emu/bus/snes/spc7110.c b/src/devices/bus/snes/spc7110.c
index 6124ddec6d1..6124ddec6d1 100644
--- a/src/emu/bus/snes/spc7110.c
+++ b/src/devices/bus/snes/spc7110.c
diff --git a/src/emu/bus/snes/spc7110.h b/src/devices/bus/snes/spc7110.h
index 128c3ecc5a8..128c3ecc5a8 100644
--- a/src/emu/bus/snes/spc7110.h
+++ b/src/devices/bus/snes/spc7110.h
diff --git a/src/emu/bus/snes/sufami.c b/src/devices/bus/snes/sufami.c
index 2cf4de90d6c..2cf4de90d6c 100644
--- a/src/emu/bus/snes/sufami.c
+++ b/src/devices/bus/snes/sufami.c
diff --git a/src/emu/bus/snes/sufami.h b/src/devices/bus/snes/sufami.h
index c56f566777f..c56f566777f 100644
--- a/src/emu/bus/snes/sufami.h
+++ b/src/devices/bus/snes/sufami.h
diff --git a/src/emu/bus/snes/upd.c b/src/devices/bus/snes/upd.c
index 056f462e2fa..056f462e2fa 100644
--- a/src/emu/bus/snes/upd.c
+++ b/src/devices/bus/snes/upd.c
diff --git a/src/emu/bus/snes/upd.h b/src/devices/bus/snes/upd.h
index 28fdf077f11..28fdf077f11 100644
--- a/src/emu/bus/snes/upd.h
+++ b/src/devices/bus/snes/upd.h
diff --git a/src/emu/bus/snes_ctrl/bcbattle.c b/src/devices/bus/snes_ctrl/bcbattle.c
index 5d332c4885e..5d332c4885e 100644
--- a/src/emu/bus/snes_ctrl/bcbattle.c
+++ b/src/devices/bus/snes_ctrl/bcbattle.c
diff --git a/src/emu/bus/snes_ctrl/bcbattle.h b/src/devices/bus/snes_ctrl/bcbattle.h
index 120c289c894..120c289c894 100644
--- a/src/emu/bus/snes_ctrl/bcbattle.h
+++ b/src/devices/bus/snes_ctrl/bcbattle.h
diff --git a/src/emu/bus/snes_ctrl/ctrl.c b/src/devices/bus/snes_ctrl/ctrl.c
index ccd05ec8cf9..ccd05ec8cf9 100644
--- a/src/emu/bus/snes_ctrl/ctrl.c
+++ b/src/devices/bus/snes_ctrl/ctrl.c
diff --git a/src/emu/bus/snes_ctrl/ctrl.h b/src/devices/bus/snes_ctrl/ctrl.h
index d2ef092e4e7..d2ef092e4e7 100644
--- a/src/emu/bus/snes_ctrl/ctrl.h
+++ b/src/devices/bus/snes_ctrl/ctrl.h
diff --git a/src/emu/bus/snes_ctrl/joypad.c b/src/devices/bus/snes_ctrl/joypad.c
index 6c638a321b8..6c638a321b8 100644
--- a/src/emu/bus/snes_ctrl/joypad.c
+++ b/src/devices/bus/snes_ctrl/joypad.c
diff --git a/src/emu/bus/snes_ctrl/joypad.h b/src/devices/bus/snes_ctrl/joypad.h
index 2133f396d0f..2133f396d0f 100644
--- a/src/emu/bus/snes_ctrl/joypad.h
+++ b/src/devices/bus/snes_ctrl/joypad.h
diff --git a/src/emu/bus/snes_ctrl/miracle.c b/src/devices/bus/snes_ctrl/miracle.c
index d0dfddb71ff..d0dfddb71ff 100644
--- a/src/emu/bus/snes_ctrl/miracle.c
+++ b/src/devices/bus/snes_ctrl/miracle.c
diff --git a/src/emu/bus/snes_ctrl/miracle.h b/src/devices/bus/snes_ctrl/miracle.h
index 2a814050593..2a814050593 100644
--- a/src/emu/bus/snes_ctrl/miracle.h
+++ b/src/devices/bus/snes_ctrl/miracle.h
diff --git a/src/emu/bus/snes_ctrl/mouse.c b/src/devices/bus/snes_ctrl/mouse.c
index 535b68d02bb..535b68d02bb 100644
--- a/src/emu/bus/snes_ctrl/mouse.c
+++ b/src/devices/bus/snes_ctrl/mouse.c
diff --git a/src/emu/bus/snes_ctrl/mouse.h b/src/devices/bus/snes_ctrl/mouse.h
index 56608e40992..56608e40992 100644
--- a/src/emu/bus/snes_ctrl/mouse.h
+++ b/src/devices/bus/snes_ctrl/mouse.h
diff --git a/src/emu/bus/snes_ctrl/multitap.c b/src/devices/bus/snes_ctrl/multitap.c
index 7b5ad87bfbc..7b5ad87bfbc 100644
--- a/src/emu/bus/snes_ctrl/multitap.c
+++ b/src/devices/bus/snes_ctrl/multitap.c
diff --git a/src/emu/bus/snes_ctrl/multitap.h b/src/devices/bus/snes_ctrl/multitap.h
index 1720fe6280e..1720fe6280e 100644
--- a/src/emu/bus/snes_ctrl/multitap.h
+++ b/src/devices/bus/snes_ctrl/multitap.h
diff --git a/src/emu/bus/snes_ctrl/pachinko.c b/src/devices/bus/snes_ctrl/pachinko.c
index 724c4bccbd9..724c4bccbd9 100644
--- a/src/emu/bus/snes_ctrl/pachinko.c
+++ b/src/devices/bus/snes_ctrl/pachinko.c
diff --git a/src/emu/bus/snes_ctrl/pachinko.h b/src/devices/bus/snes_ctrl/pachinko.h
index ae47adc40b4..ae47adc40b4 100644
--- a/src/emu/bus/snes_ctrl/pachinko.h
+++ b/src/devices/bus/snes_ctrl/pachinko.h
diff --git a/src/emu/bus/snes_ctrl/sscope.c b/src/devices/bus/snes_ctrl/sscope.c
index 72c81e84328..72c81e84328 100644
--- a/src/emu/bus/snes_ctrl/sscope.c
+++ b/src/devices/bus/snes_ctrl/sscope.c
diff --git a/src/emu/bus/snes_ctrl/sscope.h b/src/devices/bus/snes_ctrl/sscope.h
index a207a29d9a6..a207a29d9a6 100644
--- a/src/emu/bus/snes_ctrl/sscope.h
+++ b/src/devices/bus/snes_ctrl/sscope.h
diff --git a/src/emu/bus/snes_ctrl/twintap.c b/src/devices/bus/snes_ctrl/twintap.c
index 0755e14ef74..0755e14ef74 100644
--- a/src/emu/bus/snes_ctrl/twintap.c
+++ b/src/devices/bus/snes_ctrl/twintap.c
diff --git a/src/emu/bus/snes_ctrl/twintap.h b/src/devices/bus/snes_ctrl/twintap.h
index 4474ec1e6da..4474ec1e6da 100644
--- a/src/emu/bus/snes_ctrl/twintap.h
+++ b/src/devices/bus/snes_ctrl/twintap.h
diff --git a/src/emu/bus/spc1000/exp.c b/src/devices/bus/spc1000/exp.c
index 7a63161096e..7a63161096e 100644
--- a/src/emu/bus/spc1000/exp.c
+++ b/src/devices/bus/spc1000/exp.c
diff --git a/src/emu/bus/spc1000/exp.h b/src/devices/bus/spc1000/exp.h
index 3607f021a0e..3607f021a0e 100644
--- a/src/emu/bus/spc1000/exp.h
+++ b/src/devices/bus/spc1000/exp.h
diff --git a/src/emu/bus/spc1000/fdd.c b/src/devices/bus/spc1000/fdd.c
index 9089dae5829..9089dae5829 100644
--- a/src/emu/bus/spc1000/fdd.c
+++ b/src/devices/bus/spc1000/fdd.c
diff --git a/src/emu/bus/spc1000/fdd.h b/src/devices/bus/spc1000/fdd.h
index 4d384e2ee44..4d384e2ee44 100644
--- a/src/emu/bus/spc1000/fdd.h
+++ b/src/devices/bus/spc1000/fdd.h
diff --git a/src/emu/bus/spc1000/vdp.c b/src/devices/bus/spc1000/vdp.c
index 7824e9fccb4..7824e9fccb4 100644
--- a/src/emu/bus/spc1000/vdp.c
+++ b/src/devices/bus/spc1000/vdp.c
diff --git a/src/emu/bus/spc1000/vdp.h b/src/devices/bus/spc1000/vdp.h
index d7311f8c104..d7311f8c104 100644
--- a/src/emu/bus/spc1000/vdp.h
+++ b/src/devices/bus/spc1000/vdp.h
diff --git a/src/emu/bus/ti99_peb/bwg.c b/src/devices/bus/ti99_peb/bwg.c
index d5504ff2283..55a1150f972 100644
--- a/src/emu/bus/ti99_peb/bwg.c
+++ b/src/devices/bus/ti99_peb/bwg.c
@@ -670,9 +670,13 @@ MACHINE_CONFIG_FRAGMENT( bwg_fdc )
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, NULL, snug_bwg_device::floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("3", bwg_floppies, NULL, snug_bwg_device::floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
MACHINE_CONFIG_END
ROM_START( bwg_fdc )
diff --git a/src/emu/bus/ti99_peb/bwg.h b/src/devices/bus/ti99_peb/bwg.h
index a1012e06257..a1012e06257 100644
--- a/src/emu/bus/ti99_peb/bwg.h
+++ b/src/devices/bus/ti99_peb/bwg.h
diff --git a/src/emu/bus/ti99_peb/evpc.c b/src/devices/bus/ti99_peb/evpc.c
index 57b16fb9466..57b16fb9466 100644
--- a/src/emu/bus/ti99_peb/evpc.c
+++ b/src/devices/bus/ti99_peb/evpc.c
diff --git a/src/emu/bus/ti99_peb/evpc.h b/src/devices/bus/ti99_peb/evpc.h
index 86ec224246e..86ec224246e 100644
--- a/src/emu/bus/ti99_peb/evpc.h
+++ b/src/devices/bus/ti99_peb/evpc.h
diff --git a/src/emu/bus/ti99_peb/hfdc.c b/src/devices/bus/ti99_peb/hfdc.c
index ed73221837a..62f31b7d141 100644
--- a/src/emu/bus/ti99_peb/hfdc.c
+++ b/src/devices/bus/ti99_peb/hfdc.c
@@ -57,7 +57,7 @@
#include "emu.h"
#include "peribox.h"
#include "hfdc.h"
-#include "machine/ti99_hd.h"
+#include "formats/mfm_hd.h"
#include "formats/ti99_dsk.h" // Format
#define BUFFER "ram"
@@ -350,10 +350,11 @@ WRITE8_MEMBER( myarc_hfdc_device::write )
7 6 5 4 3 2 1 0
+-----+-----+-----+-----+-----+-----+-----+-----+
- | 0 | 0 | 0 | 0 | 0 | MON | DIP | IRQ |
+ | 0 | 0 | 0 | 0 | WAIT| MON*| DIP | IRQ |
+-----+-----+-----+-----+-----+-----+-----+-----+
- MON = Motor on
+ WAIT = Wait for WDS1 to become ready
+ MON* = Motor on
DIP = DMA in progress
IRQ = Interrupt request
---
@@ -375,7 +376,8 @@ READ8Z_MEMBER(myarc_hfdc_device::crureadz)
reply = 0;
if (m_irq == ASSERT_LINE) reply |= 0x01;
if (m_dip == ASSERT_LINE) reply |= 0x02;
- if (m_motor_running) reply |= 0x04;
+ if (!m_motor_running) reply |= 0x04;
+ if (m_wait_for_hd1) reply |= 0x08;
}
*value = reply;
}
@@ -888,6 +890,7 @@ void myarc_hfdc_device::device_reset()
}
m_cru_base = ioport("CRUHFDC")->read();
+ m_wait_for_hd1 = ioport("WAITHD1")->read();
// Resetting values
m_rom_page = 0;
@@ -956,6 +959,11 @@ void myarc_hfdc_device::device_config_complete()
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" )
@@ -1011,7 +1019,7 @@ static SLOT_INTERFACE_START( hfdc_floppies )
SLOT_INTERFACE_END
static SLOT_INTERFACE_START( hfdc_harddisks )
- SLOT_INTERFACE( "generic", MFMHD_GENERIC ) // Generic high-level emulation
+ 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)
@@ -1019,22 +1027,26 @@ SLOT_INTERFACE_END
MACHINE_CONFIG_FRAGMENT( ti99_hfdc )
MCFG_DEVICE_ADD(FDC_TAG, HDC9234, 0)
- MCFG_HDC9234_INTRQ_CALLBACK(WRITELINE(myarc_hfdc_device, intrq_w))
- MCFG_HDC9234_DIP_CALLBACK(WRITELINE(myarc_hfdc_device, dip_w))
- MCFG_HDC9234_AUXBUS_OUT_CALLBACK(WRITE8(myarc_hfdc_device, auxbus_out))
- MCFG_HDC9234_DMARQ_CALLBACK(WRITELINE(myarc_hfdc_device, dmarq_w))
- MCFG_HDC9234_DMA_IN_CALLBACK(READ8(myarc_hfdc_device, read_buffer))
- MCFG_HDC9234_DMA_OUT_CALLBACK(WRITE8(myarc_hfdc_device, write_buffer))
+ 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, NULL, myarc_hfdc_device::floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("f4", hfdc_floppies, NULL, 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, NULL, MFM_BYTE, 3000, 20, MFMHD_TI99_FORMAT)
- MCFG_MFM_HARDDISK_CONN_ADD("h2", hfdc_harddisks, NULL, MFM_BYTE, 2000, 20, MFMHD_TI99_FORMAT)
- MCFG_MFM_HARDDISK_CONN_ADD("h3", hfdc_harddisks, NULL, MFM_BYTE, 2000, 20, MFMHD_TI99_FORMAT)
+ MCFG_MFM_HARDDISK_CONN_ADD("h1", hfdc_harddisks, NULL, MFM_BYTE, 3000, 20, MFMHD_GEN_FORMAT)
+ MCFG_MFM_HARDDISK_CONN_ADD("h2", hfdc_harddisks, NULL, MFM_BYTE, 2000, 20, MFMHD_GEN_FORMAT)
+ MCFG_MFM_HARDDISK_CONN_ADD("h3", hfdc_harddisks, NULL, MFM_BYTE, 2000, 20, MFMHD_GEN_FORMAT)
MCFG_DEVICE_ADD(CLOCK_TAG, MM58274C, 0)
MCFG_MM58274C_MODE24(1) // 24 hour
diff --git a/src/emu/bus/ti99_peb/hfdc.h b/src/devices/bus/ti99_peb/hfdc.h
index d27a9f4c8bc..a49e6062c44 100644
--- a/src/emu/bus/ti99_peb/hfdc.h
+++ b/src/devices/bus/ti99_peb/hfdc.h
@@ -17,9 +17,10 @@
#define __HFDC__
#include "imagedev/floppy.h"
+#include "imagedev/mfmhd.h"
+
#include "machine/mm58274c.h"
-#include "machine/hdc9234.h"
-#include "machine/ti99_hd.h"
+#include "machine/hdc92x4.h"
extern const device_type TI99_HFDC;
@@ -141,6 +142,9 @@ private:
// DMA in progress
bool m_dma_in_progress;
+ // Wait for HD. This was an addition in later cards.
+ bool m_wait_for_hd1;
+
// Device Service Routine ROM (firmware)
UINT8* m_dsrrom;
diff --git a/src/emu/bus/ti99_peb/horizon.c b/src/devices/bus/ti99_peb/horizon.c
index 36bf35cbd18..36bf35cbd18 100644
--- a/src/emu/bus/ti99_peb/horizon.c
+++ b/src/devices/bus/ti99_peb/horizon.c
diff --git a/src/emu/bus/ti99_peb/horizon.h b/src/devices/bus/ti99_peb/horizon.h
index f1241c001ad..f1241c001ad 100644
--- a/src/emu/bus/ti99_peb/horizon.h
+++ b/src/devices/bus/ti99_peb/horizon.h
diff --git a/src/emu/bus/ti99_peb/hsgpl.c b/src/devices/bus/ti99_peb/hsgpl.c
index 7a7f09d5311..8cfe1c9ede7 100644
--- a/src/emu/bus/ti99_peb/hsgpl.c
+++ b/src/devices/bus/ti99_peb/hsgpl.c
@@ -476,7 +476,7 @@ void snug_high_speed_gpl_device::cartspace_write(address_space& space, offs_t of
{
logerror("%s: invalid write %04x <- %02x\n", tag(), offset, data);
// feeprom is normally written to using GPL ports, and I don't know
- // writing through >6000 page is enabled
+ // 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);
@@ -640,10 +640,10 @@ void snug_high_speed_gpl_device::device_reset()
void snug_high_speed_gpl_device::device_config_complete(void)
{
- m_dsr_eeprom = subdevice<at29040a_device>(DSR_EEPROM);
- m_rom6_eeprom = subdevice<at29040a_device>(ROM6_EEPROM);
- m_grom_a_eeprom = subdevice<at29040a_device>(GROM_A_EEPROM);
- m_grom_b_eeprom = subdevice<at29040a_device>(GROM_B_EEPROM);
+ m_dsr_eeprom = subdevice<at29c040a_device>(DSR_EEPROM);
+ m_rom6_eeprom = subdevice<at29c040a_device>(ROM6_EEPROM);
+ m_grom_a_eeprom = subdevice<at29c040a_device>(GROM_A_EEPROM);
+ m_grom_b_eeprom = subdevice<at29c040a_device>(GROM_B_EEPROM);
}
void snug_high_speed_gpl_device::device_stop()
@@ -661,10 +661,10 @@ INPUT_PORTS_START( ti99_hsgpl)
INPUT_PORTS_END
MACHINE_CONFIG_FRAGMENT( ti99_hsgpl )
- MCFG_AT29040A_ADD( DSR_EEPROM )
- MCFG_AT29040A_ADD( GROM_B_EEPROM )
- MCFG_AT29040A_ADD( GROM_A_EEPROM )
- MCFG_AT29040A_ADD( ROM6_EEPROM )
+ MCFG_AT29C040A_ADD( DSR_EEPROM )
+ MCFG_AT29C040A_ADD( GROM_B_EEPROM )
+ MCFG_AT29C040A_ADD( GROM_A_EEPROM )
+ MCFG_AT29C040A_ADD( ROM6_EEPROM )
MACHINE_CONFIG_END
machine_config_constructor snug_high_speed_gpl_device::device_mconfig_additions() const
diff --git a/src/emu/bus/ti99_peb/hsgpl.h b/src/devices/bus/ti99_peb/hsgpl.h
index a662b69c8e2..bb87cc77a38 100644
--- a/src/emu/bus/ti99_peb/hsgpl.h
+++ b/src/devices/bus/ti99_peb/hsgpl.h
@@ -18,7 +18,7 @@
#include "emu.h"
#include "peribox.h"
-#include "machine/at29040a.h"
+#include "machine/at29x.h"
extern const device_type TI99_HSGPL;
@@ -42,10 +42,10 @@ protected:
virtual machine_config_constructor device_mconfig_additions() const;
private:
- at29040a_device* m_dsr_eeprom;
- at29040a_device* m_rom6_eeprom;
- at29040a_device* m_grom_a_eeprom;
- at29040a_device* m_grom_b_eeprom;
+ at29c040a_device* m_dsr_eeprom;
+ at29c040a_device* m_rom6_eeprom;
+ at29c040a_device* m_grom_a_eeprom;
+ at29c040a_device* m_grom_b_eeprom;
UINT8* m_ram6_memory;
UINT8* m_gram_memory;
diff --git a/src/emu/bus/ti99_peb/memex.c b/src/devices/bus/ti99_peb/memex.c
index 66c3a571838..66c3a571838 100644
--- a/src/emu/bus/ti99_peb/memex.c
+++ b/src/devices/bus/ti99_peb/memex.c
diff --git a/src/emu/bus/ti99_peb/memex.h b/src/devices/bus/ti99_peb/memex.h
index bccc4da161c..bccc4da161c 100644
--- a/src/emu/bus/ti99_peb/memex.h
+++ b/src/devices/bus/ti99_peb/memex.h
diff --git a/src/emu/bus/ti99_peb/myarcmem.c b/src/devices/bus/ti99_peb/myarcmem.c
index caeeb9504df..caeeb9504df 100644
--- a/src/emu/bus/ti99_peb/myarcmem.c
+++ b/src/devices/bus/ti99_peb/myarcmem.c
diff --git a/src/emu/bus/ti99_peb/myarcmem.h b/src/devices/bus/ti99_peb/myarcmem.h
index a28c4d989b2..a28c4d989b2 100644
--- a/src/emu/bus/ti99_peb/myarcmem.h
+++ b/src/devices/bus/ti99_peb/myarcmem.h
diff --git a/src/emu/bus/ti99_peb/pcode.c b/src/devices/bus/ti99_peb/pcode.c
index eb12a20a8e8..eb12a20a8e8 100644
--- a/src/emu/bus/ti99_peb/pcode.c
+++ b/src/devices/bus/ti99_peb/pcode.c
diff --git a/src/emu/bus/ti99_peb/pcode.h b/src/devices/bus/ti99_peb/pcode.h
index 10f86debca8..4630d127f13 100644
--- a/src/emu/bus/ti99_peb/pcode.h
+++ b/src/devices/bus/ti99_peb/pcode.h
@@ -17,7 +17,7 @@
#include "emu.h"
#include "peribox.h"
-#include "machine/ti99/grom.h"
+#include "bus/ti99x/grom.h"
extern const device_type TI99_P_CODE;
diff --git a/src/emu/bus/ti99_peb/peribox.c b/src/devices/bus/ti99_peb/peribox.c
index 9d5024e7fa6..9d5024e7fa6 100644
--- a/src/emu/bus/ti99_peb/peribox.c
+++ b/src/devices/bus/ti99_peb/peribox.c
diff --git a/src/emu/bus/ti99_peb/peribox.h b/src/devices/bus/ti99_peb/peribox.h
index 85c8bfcbdbc..7e48726f75c 100644
--- a/src/emu/bus/ti99_peb/peribox.h
+++ b/src/devices/bus/ti99_peb/peribox.h
@@ -14,7 +14,7 @@
#ifndef __PBOX__
#define __PBOX__
-#include "machine/ti99/ti99defs.h"
+#include "bus/ti99x/ti99defs.h"
extern const device_type PERIBOX;
extern const device_type PERIBOX_SLOT;
diff --git a/src/emu/bus/ti99_peb/samsmem.c b/src/devices/bus/ti99_peb/samsmem.c
index 7a8db384ffd..7a8db384ffd 100644
--- a/src/emu/bus/ti99_peb/samsmem.c
+++ b/src/devices/bus/ti99_peb/samsmem.c
diff --git a/src/emu/bus/ti99_peb/samsmem.h b/src/devices/bus/ti99_peb/samsmem.h
index 0dd5e959755..0dd5e959755 100644
--- a/src/emu/bus/ti99_peb/samsmem.h
+++ b/src/devices/bus/ti99_peb/samsmem.h
diff --git a/src/emu/bus/ti99_peb/spchsyn.c b/src/devices/bus/ti99_peb/spchsyn.c
index 70be9ee3db6..70be9ee3db6 100644
--- a/src/emu/bus/ti99_peb/spchsyn.c
+++ b/src/devices/bus/ti99_peb/spchsyn.c
diff --git a/src/emu/bus/ti99_peb/spchsyn.h b/src/devices/bus/ti99_peb/spchsyn.h
index 0984cf4de2e..0984cf4de2e 100644
--- a/src/emu/bus/ti99_peb/spchsyn.h
+++ b/src/devices/bus/ti99_peb/spchsyn.h
diff --git a/src/emu/bus/ti99_peb/ti_32kmem.c b/src/devices/bus/ti99_peb/ti_32kmem.c
index 49ce105b89c..49ce105b89c 100644
--- a/src/emu/bus/ti99_peb/ti_32kmem.c
+++ b/src/devices/bus/ti99_peb/ti_32kmem.c
diff --git a/src/emu/bus/ti99_peb/ti_32kmem.h b/src/devices/bus/ti99_peb/ti_32kmem.h
index 5e0e1f2c5cf..5e0e1f2c5cf 100644
--- a/src/emu/bus/ti99_peb/ti_32kmem.h
+++ b/src/devices/bus/ti99_peb/ti_32kmem.h
diff --git a/src/emu/bus/ti99_peb/ti_fdc.c b/src/devices/bus/ti99_peb/ti_fdc.c
index 610832e2539..e43a1be2475 100644
--- a/src/emu/bus/ti99_peb/ti_fdc.c
+++ b/src/devices/bus/ti99_peb/ti_fdc.c
@@ -407,8 +407,11 @@ MACHINE_CONFIG_FRAGMENT( ti_fdc )
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, NULL, ti_fdc_device::floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
MACHINE_CONFIG_END
ROM_START( ti_fdc )
diff --git a/src/emu/bus/ti99_peb/ti_fdc.h b/src/devices/bus/ti99_peb/ti_fdc.h
index 9fedb1c2590..9fedb1c2590 100644
--- a/src/emu/bus/ti99_peb/ti_fdc.h
+++ b/src/devices/bus/ti99_peb/ti_fdc.h
diff --git a/src/emu/bus/ti99_peb/ti_rs232.c b/src/devices/bus/ti99_peb/ti_rs232.c
index 3f1bf2761ec..9f3706cece1 100644
--- a/src/emu/bus/ti99_peb/ti_rs232.c
+++ b/src/devices/bus/ti99_peb/ti_rs232.c
@@ -230,13 +230,13 @@ bool ti_pio_attached_device::call_load()
{
ti_rs232_pio_device* card = static_cast<ti_rs232_pio_device*>(owner());
- /* tell whether the image is readable */
+ // tell whether the image is readable
card->m_pio_readable = !has_been_created();
- /* tell whether the image is writable */
+ // 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 */
+ card->m_pio_handshakein = false; // receiver ready
else
card->m_pio_handshakein = true;
@@ -1025,6 +1025,9 @@ void ti_rs232_pio_device::device_start()
// Prepare the receive buffers
m_recvbuf[0] = global_alloc_array(UINT8, 512);
m_recvbuf[1] = global_alloc_array(UINT8, 512);
+ m_pio_write = true; // required for call_load of pio_attached_device
+ m_pio_writable = false;
+ m_pio_handshakein = false;
}
void ti_rs232_pio_device::device_stop()
@@ -1038,14 +1041,12 @@ void ti_rs232_pio_device::device_reset()
m_pio_direction_in = false;
m_pio_handshakeout = false;
m_pio_spareout = false;
- m_pio_writable = false;
m_flag0 = false;
set_bit(0, CTS, 0);
set_bit(1, CTS, 0);
m_led = false;
- m_pio_write = true;
m_recv_mode[0] = RECV_MODE_NORMAL;
m_recv_mode[1] = RECV_MODE_NORMAL;
diff --git a/src/emu/bus/ti99_peb/ti_rs232.h b/src/devices/bus/ti99_peb/ti_rs232.h
index 7c75e208d65..7c75e208d65 100644
--- a/src/emu/bus/ti99_peb/ti_rs232.h
+++ b/src/devices/bus/ti99_peb/ti_rs232.h
diff --git a/src/emu/bus/ti99_peb/tn_ide.c b/src/devices/bus/ti99_peb/tn_ide.c
index c073f3443a7..10e69ace518 100644
--- a/src/emu/bus/ti99_peb/tn_ide.c
+++ b/src/devices/bus/ti99_peb/tn_ide.c
@@ -31,7 +31,6 @@
#include "peribox.h"
#include "machine/ataintf.h"
#include "tn_ide.h"
-#include "machine/ti99_hd.h"
#define CRU_BASE 0x1000
diff --git a/src/emu/bus/ti99_peb/tn_ide.h b/src/devices/bus/ti99_peb/tn_ide.h
index bb9371e4cfb..bb9371e4cfb 100644
--- a/src/emu/bus/ti99_peb/tn_ide.h
+++ b/src/devices/bus/ti99_peb/tn_ide.h
diff --git a/src/emu/bus/ti99_peb/tn_usbsm.c b/src/devices/bus/ti99_peb/tn_usbsm.c
index f3a911af0f2..f3a911af0f2 100644
--- a/src/emu/bus/ti99_peb/tn_usbsm.c
+++ b/src/devices/bus/ti99_peb/tn_usbsm.c
diff --git a/src/emu/bus/ti99_peb/tn_usbsm.h b/src/devices/bus/ti99_peb/tn_usbsm.h
index 951565b0367..951565b0367 100644
--- a/src/emu/bus/ti99_peb/tn_usbsm.h
+++ b/src/devices/bus/ti99_peb/tn_usbsm.h
diff --git a/src/mess/machine/ti99/990_dk.c b/src/devices/bus/ti99x/990_dk.c
index 5eb8ea58892..5eb8ea58892 100644
--- a/src/mess/machine/ti99/990_dk.c
+++ b/src/devices/bus/ti99x/990_dk.c
diff --git a/src/mess/machine/ti99/990_dk.h b/src/devices/bus/ti99x/990_dk.h
index 2f83660ae75..2f83660ae75 100644
--- a/src/mess/machine/ti99/990_dk.h
+++ b/src/devices/bus/ti99x/990_dk.h
diff --git a/src/mess/machine/ti99/990_hd.c b/src/devices/bus/ti99x/990_hd.c
index fa0cd00646b..fa0cd00646b 100644
--- a/src/mess/machine/ti99/990_hd.c
+++ b/src/devices/bus/ti99x/990_hd.c
diff --git a/src/mess/machine/ti99/990_hd.h b/src/devices/bus/ti99x/990_hd.h
index 4c5e85f928d..4c5e85f928d 100644
--- a/src/mess/machine/ti99/990_hd.h
+++ b/src/devices/bus/ti99x/990_hd.h
diff --git a/src/mess/machine/ti99/990_tap.c b/src/devices/bus/ti99x/990_tap.c
index 20ca2333f7b..20ca2333f7b 100644
--- a/src/mess/machine/ti99/990_tap.c
+++ b/src/devices/bus/ti99x/990_tap.c
diff --git a/src/mess/machine/ti99/990_tap.h b/src/devices/bus/ti99x/990_tap.h
index 09e2e30da0a..09e2e30da0a 100644
--- a/src/mess/machine/ti99/990_tap.h
+++ b/src/devices/bus/ti99x/990_tap.h
diff --git a/src/mess/machine/ti99/mapper8.c b/src/devices/bus/ti99x/998board.c
index c8c5d293660..987cac6de54 100644
--- a/src/mess/machine/ti99/mapper8.c
+++ b/src/devices/bus/ti99x/998board.c
@@ -193,15 +193,15 @@
***************************************************************************/
-#include "mapper8.h"
+#include "998board.h"
#define TRACE_CRU 0
#define TRACE_MEM 0
#define TRACE_MAP 0
#define TRACE_CONFIG 0
#define TRACE_OSO 0
-
-#define LOG logerror
+#define TRACE_SPEECH 0
+#define TRACE_DETAIL 0
mainboard8_device::mainboard8_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: bus8z_device(mconfig, MAINBOARD8, "TI-99/8 Main board", tag, owner, clock, "ti998_mainboard", __FILE__),
@@ -218,7 +218,7 @@ mainboard8_device::mainboard8_device(const machine_config &mconfig, const char *
READ8Z_MEMBER(mainboard8_device::crureadz)
{
- if (TRACE_CRU) LOG("mainboard_998: read CRU %04x ignored\n", offset);
+ if (TRACE_CRU) logerror("%s: read CRU %04x ignored\n", tag(), offset);
// Nothing here.
}
@@ -236,10 +236,10 @@ WRITE8_MEMBER(mainboard8_device::cruwrite)
case 0:
// Turn on/off the internal DSR
m_dsr_selected = (data!=0);
- if (TRACE_CRU) LOG("mainboard_998: DSR select = %d\n", data);
+ if (TRACE_CRU) logerror("%s: DSR select = %d\n", tag(), data);
break;
case 1:
- if (TRACE_CRU) LOG("mainboard_998: System reset by CRU request\n");
+ if (TRACE_CRU) logerror("%s: System reset by CRU request\n", tag());
machine().schedule_soft_reset();
break;
}
@@ -254,10 +254,10 @@ WRITE8_MEMBER(mainboard8_device::cruwrite)
case 0:
// Turn on/off the Hexbus DSR
m_hexbus_selected = (data!=0);
- if (TRACE_CRU) LOG("mainboard_998: Hexbus select = %d\n", data);
+ if (TRACE_CRU) logerror("%s: Hexbus select = %d\n", tag(), data);
break;
default:
- if (TRACE_CRU) LOG("mainboard_998: Set CRU>%04x (Hexbus) to %d\n",offset,data);
+ if (TRACE_CRU) logerror("%s: Set CRU>%04x (Hexbus) to %d\n", tag(), offset,data);
break;
}
return;
@@ -265,14 +265,14 @@ WRITE8_MEMBER(mainboard8_device::cruwrite)
if ((offset & 0xff00)>=0x0100)
{
- if (TRACE_CRU) LOG("mainboard_998: Set CRU>%04x (unknown) to %d\n",offset,data);
+ if (TRACE_CRU) logerror("%s: Set CRU>%04x (unknown) to %d\n", tag(), offset,data);
return;
}
}
void mainboard8_device::CRUS_set(bool state)
{
- if (TRACE_CRU) LOG("mainboard_998: set CRUS=%d\n", state);
+ if (TRACE_CRU) logerror("%s: set CRUS=%d\n", tag(), state);
m_CRUS = state;
}
@@ -281,7 +281,7 @@ void mainboard8_device::CRUS_set(bool state)
*/
void mainboard8_device::PTGE_set(bool state)
{
- if (TRACE_CRU) LOG("mainboard_998: set PTGEN=%d\n", state? 1:0);
+ if (TRACE_CRU) logerror("%s: set PTGEN=%d\n", tag(), state? 1:0);
m_PTGE = state;
}
@@ -296,7 +296,7 @@ READ8_MEMBER( mainboard8_device::readm )
{
UINT8 value = 0;
bool found = false;
- if (TRACE_MEM) LOG("mainboard_998: read from %04x\n", offset);
+ if (TRACE_MEM) logerror("%s: read from %04x\n", tag(), offset);
found = access_logical_r(space, offset, &value, mem_mask);
m_waitcount = 2;
@@ -365,7 +365,7 @@ READ8Z_MEMBER( mainboard8_device::readz )
{
// Starts at 0x4000 in the image
*value = m_rom1[0x4000 | (offset & 0x1fff)];
- if (TRACE_MEM) LOG("mainboard_998: (intDSR) %04x -> %02x\n", offset, *value);
+ if (TRACE_MEM) logerror("%s: (intDSR) %04x -> %02x\n", tag(), offset, *value);
}
else
{
@@ -379,7 +379,7 @@ READ8Z_MEMBER( mainboard8_device::readz )
{
// Starts at 0x6000 in the image
*value = m_rom1[0x6000 | (offset & 0x1fff)];
- if (TRACE_MEM) LOG("mainboard_998: (HexDSR) %04x -> %02x\n", offset, *value);
+ if (TRACE_MEM) logerror("%s: (HexDSR) %04x -> %02x\n", tag(), offset, *value);
}
}
}
@@ -388,7 +388,7 @@ READ8Z_MEMBER( mainboard8_device::readz )
{
if (((offset & 0xfff0)==0xf870 && m_CRUS==false)||(((offset & 0xfff0)==0x8810 && m_CRUS==true)))
{
- if (TRACE_MEM) LOG("mainboard_998: read access to mapper ignored: %04x\n", offset);
+ if (TRACE_MEM) logerror("%s: read access to mapper ignored: %04x\n", tag(), offset);
}
}
}
@@ -410,18 +410,18 @@ WRITE8_MEMBER( mainboard8_device::write )
}
else
{
- LOG("mainboard_998: Write access to Hexbus DSR address %06x ignored\n", offset);
+ logerror("%s: Write access to Hexbus DSR address %06x ignored\n", tag(), offset);
}
}
else
{
if (m_dsr_selected)
{
- LOG("mainboard_998: Write access to internal DSR address %06x ignored\n", offset);
+ logerror("%s: Write access to internal DSR address %06x ignored\n", tag(), offset);
}
else
{
- LOG("mainboard_998: Write access to unmapped DSR space at address %06x ignored\n", offset);
+ logerror("%s: Write access to unmapped DSR space at address %06x ignored\n", tag(), offset);
}
}
}
@@ -449,7 +449,7 @@ void mainboard8_device::mapwrite(int offset, UINT8 data)
int bankindx = (data & 0x0e)>>1;
if (data & 1)
{
- if (TRACE_MAP) LOG("mainboard_998: load mapper from SRAM, bank %d\n", bankindx);
+ if (TRACE_MAP) logerror("%s: load mapper from SRAM, bank %d\n", tag(), bankindx);
// Load from SRAM
// In reality the CPU is put on HOLD during this transfer
for (int i=0; i < 16; i++)
@@ -457,12 +457,12 @@ void mainboard8_device::mapwrite(int offset, UINT8 data)
int ptr = (bankindx << 6);
m_pas_offset[i] = (m_sram[(i<<2) + ptr] << 24) | (m_sram[(i<<2)+ ptr+1] << 16)
| (m_sram[(i<<2) + ptr+2] << 8) | (m_sram[(i<<2) + ptr+3]);
- if (TRACE_MAP) LOG("mainboard_998: load %d=%08x\n", i, m_pas_offset[i]);
+ if (TRACE_MAP) logerror("%s: load %d=%08x\n", tag(), i, m_pas_offset[i]);
}
}
else
{
- if (TRACE_MAP) LOG("mainboard_998: store mapper to SRAM, bank %d\n", bankindx);
+ if (TRACE_MAP) logerror("%s: store mapper to SRAM, bank %d\n", tag(), bankindx);
// Store in SRAM
for (int i=0; i < 16; i++)
{
@@ -471,7 +471,7 @@ void mainboard8_device::mapwrite(int offset, UINT8 data)
m_sram[(i<<2) + ptr +1] = (m_pas_offset[i] >> 16)& 0xff;
m_sram[(i<<2) + ptr +2] = (m_pas_offset[i] >> 8)& 0xff;
m_sram[(i<<2) + ptr +3] = (m_pas_offset[i])& 0xff;
- if (TRACE_MAP) LOG("mainboard_998: save %d=%08x\n", i, m_pas_offset[i]);
+ if (TRACE_MAP) logerror("%s: save %d=%08x\n", tag(), i, m_pas_offset[i]);
}
}
}
@@ -487,10 +487,10 @@ bool mainboard8_device::access_logical_r(address_space& space, offs_t offset, UI
logically_addressed_device *ldev = m_logcomp.first();
bus8z_device *bdev = NULL;
- if (TRACE_MEM) LOG("mainboard_998: offset=%04x; CRUS=%d, PTGEN=%d\n", offset, m_CRUS? 1:0, m_PTGE? 0:1);
+ if (TRACE_MEM) logerror("%s: offset=%04x; CRUS=%d, PTGEN=%d\n", tag(), offset, m_CRUS? 1:0, m_PTGE? 0:1);
while (ldev != NULL)
{
- if (TRACE_MEM) LOG("mainboard_998: checking node=%s\n", ldev->m_config->name);
+ if (TRACE_MEM) logerror("%s: checking node=%s\n", tag(), ldev->m_config->name);
// Check the mode
if (((ldev->m_config->mode == NATIVE) && (m_CRUS==false))
|| ((ldev->m_config->mode == TI99EM) && (m_CRUS==true))
@@ -502,21 +502,21 @@ bool mainboard8_device::access_logical_r(address_space& space, offs_t offset, UI
{
case MAP8_SRAM:
*value = m_sram[offset & ~ldev->m_config->address_mask];
- if (TRACE_MEM) LOG("mainboard_998: (SRAM) %04x -> %02x\n", offset, *value);
+ if (TRACE_MEM) logerror("%s: (SRAM) %04x -> %02x\n", tag(), offset, *value);
break;
case MAP8_ROM0:
// Starts at 0000
*value = m_rom0[offset & ~ldev->m_config->address_mask];
- if (TRACE_MEM) LOG("mainboard_998: (ROM0) %04x -> %02x\n", offset, *value);
+ if (TRACE_MEM) logerror("%s: (ROM0) %04x -> %02x\n", tag(), offset, *value);
break;
case MAP8_DEV:
// device
bdev = static_cast<bus8z_device*>(ldev->m_device);
bdev->readz(space, offset, value, mem_mask);
- if (TRACE_MEM) LOG("mainboard_998: (dev %s) %04x -> %02x\n", ldev->m_config->name, offset, *value);
+ if (TRACE_MEM) logerror("%s: (dev %s) %04x -> %02x\n", tag(), ldev->m_config->name, offset, *value);
break;
default:
- if (TRACE_MEM) LOG("mainboard_998: Invalid kind for read access: %d\n", ldev->m_kind);
+ if (TRACE_MEM) logerror("%s: Invalid kind for read access: %d\n", tag(), ldev->m_kind);
}
found = true;
if (ldev->m_config->stop==STOP) break;
@@ -546,19 +546,19 @@ bool mainboard8_device::access_logical_w(address_space& space, offs_t offset, UI
{
case MAP8_SRAM:
m_sram[offset & ~ldev->m_config->address_mask] = data;
- if (TRACE_MEM) LOG("mainboard_998: (SRAM) %04x <- %02x\n", offset, data);
+ if (TRACE_MEM) logerror("%s: (SRAM) %04x <- %02x\n", tag(), offset, data);
break;
case MAP8_ROM0:
- if (TRACE_MEM) LOG("mainboard_998: (ROM0) %04x <- %02x (ignored)\n", offset, data);
+ if (TRACE_MEM) logerror("%s: (ROM0) %04x <- %02x (ignored)\n", tag(), offset, data);
break;
case MAP8_DEV:
// device
bdev = static_cast<bus8z_device*>(ldev->m_device);
bdev->write(space, offset, data, mem_mask);
- if (TRACE_MEM) LOG("mainboard_998: (dev %s) %04x <- %02x\n", ldev->m_config->name, offset, data);
+ if (TRACE_MEM) logerror("%s: (dev %s) %04x <- %02x\n", tag(), ldev->m_config->name, offset, data);
break;
default:
- if (TRACE_MEM) LOG("mainboard_998: Invalid kind for write access: %d\n", ldev->m_kind);
+ if (TRACE_MEM) logerror("%s: Invalid kind for write access: %d\n", tag(), ldev->m_kind);
}
found = true;
if (ldev->m_config->stop==STOP) break;
@@ -583,34 +583,34 @@ void mainboard8_device::access_physical_r( address_space& space, offs_t pas_addr
{
case MAP8_DRAM:
*value = m_dram[pas_address & ~pdev->m_config->address_mask];
- if (TRACE_MEM) LOG("mainboard_998: (DRAM) %06x -> %02x\n", pas_address, *value);
+ if (TRACE_MEM) logerror("%s: (DRAM) %06x -> %02x\n", tag(), pas_address, *value);
break;
case MAP8_ROM1A0:
// Starts at 0000 in the image, 8K
*value = m_rom1[pas_address & 0x1fff];
- if (TRACE_MEM) LOG("mainboard_998: (ROM) %06x -> %02x\n", pas_address, *value);
+ if (TRACE_MEM) logerror("%s: (ROM) %06x -> %02x\n", tag(), pas_address, *value);
break;
case MAP8_ROM1C0:
// Starts at 2000 in the image, 8K
*value = m_rom1[0x2000 | (pas_address & 0x1fff)];
- if (TRACE_MEM) LOG("mainboard_998: (ROM) %06x -> %02x\n", pas_address, *value);
+ if (TRACE_MEM) logerror("%s: (ROM) %06x -> %02x\n", tag(), pas_address, *value);
break;
case MAP8_PCODE:
*value = m_pcode[pas_address & 0x3fff];
- if (TRACE_MEM) LOG("mainboard_998: (PCDOE) %06x -> %02x\n", pas_address, *value);
+ if (TRACE_MEM) logerror("%s: (PCODE) %06x -> %02x\n", tag(), pas_address, *value);
break;
case MAP8_INTS:
// Interrupt sense
- LOG("mainboard_998: ILSENSE not implemented.\n");
+ logerror("%s: ILSENSE not implemented.\n", tag());
break;
case MAP8_DEV:
// devices
bdev = static_cast<bus8z_device*>(pdev->m_device);
bdev->readz(space, pas_address, value, mem_mask);
- if (TRACE_MEM) LOG("mainboard_998: (dev %s) %06x -> %02x\n", pdev->m_config->name, pas_address, *value);
+ if (TRACE_MEM) logerror("%s: (dev %s) %06x -> %02x\n", tag(), pdev->m_config->name, pas_address, *value);
break;
default:
- LOG("mainboard_998: Invalid kind for physical read access: %d\n", pdev->m_kind);
+ logerror("%s: Invalid kind for physical read access: %d\n", tag(), pdev->m_kind);
}
if (pdev->m_config->stop==STOP) break;
}
@@ -631,27 +631,27 @@ void mainboard8_device::access_physical_w( address_space& space, offs_t pas_addr
{
case MAP8_DRAM:
m_dram[pas_address & ~pdev->m_config->address_mask] = data;
- if (TRACE_MEM) LOG("mainboard_998: (DRAM) %06x <- %02x\n", pas_address, data);
+ if (TRACE_MEM) logerror("%s: (DRAM) %06x <- %02x\n", tag(), pas_address, data);
break;
case MAP8_ROM1A0:
case MAP8_ROM1C0:
- if (TRACE_MEM) LOG("mainboard_998: (ROM1) %06x <- %02x (ignored)\n", pas_address, data);
+ if (TRACE_MEM) logerror("%s: (ROM1) %06x <- %02x (ignored)\n", tag(), pas_address, data);
break;
case MAP8_PCODE:
- if (TRACE_MEM) LOG("mainboard_998: (PCODE) %06x <- %02x (ignored)\n", pas_address, data);
+ if (TRACE_MEM) logerror("%s: (PCODE) %06x <- %02x (ignored)\n", tag(), pas_address, data);
break;
case MAP8_INTS:
// Interrupt sense
- LOG("ti99_8: write to ilsense ignored\n");
+ logerror("%s: write to ilsense ignored\n", tag());
break;
case MAP8_DEV:
// devices
bdev = static_cast<bus8z_device*>(pdev->m_device);
- if (TRACE_MEM) LOG("mainboard_998: (dev %s) %06x <- %02x\n", pdev->m_config->name, pas_address, data);
+ if (TRACE_MEM) logerror("%s: (dev %s) %06x <- %02x\n", tag(), pdev->m_config->name, pas_address, data);
bdev->write(space, pas_address, data, mem_mask);
break;
default:
- LOG("mainboard_998: Invalid kind for physical write access: %d\n", pdev->m_kind);
+ logerror("%s: Invalid kind for physical write access: %d\n", tag(), pdev->m_kind);
}
if (pdev->m_config->stop==STOP) break;
}
@@ -684,7 +684,7 @@ void mainboard8_device::clock_in(int clock)
*/
void mainboard8_device::device_start()
{
- LOG("ti99_8: Starting mapper\n");
+ logerror("%s: Starting mapper\n", tag());
// String values of the pseudo constants, used in the configuration.
const char *const pseudodev[7] = { SRAMNAME, ROM0NAME, ROM1A0NAME, ROM1C0NAME, DRAMNAME, PCODENAME, INTSNAME };
@@ -737,24 +737,24 @@ void mainboard8_device::device_start()
{
logically_addressed_device *ad = new logically_addressed_device(kind, (device_t*)dev, entry[i]);
m_logcomp.append(*ad);
- if (TRACE_CONFIG) LOG("mainboard_998: Device %s mounted into logical address space.\n", entry[i].name);
+ if (TRACE_CONFIG) logerror("%s: Device %s mounted into logical address space.\n", tag(), entry[i].name);
}
else
{
physically_addressed_device *ad = new physically_addressed_device(kind, (device_t*)dev, entry[i]);
m_physcomp.append(*ad);
- if (TRACE_CONFIG) LOG("mainboard_998: Device %s mounted into physical address space.\n", entry[i].name);
+ if (TRACE_CONFIG) logerror("%s: Device %s mounted into physical address space.\n", tag(), entry[i].name);
}
}
else
{
- if (TRACE_CONFIG) LOG("mainboard_998: Device %s not found.\n", entry[i].name);
+ if (TRACE_CONFIG) logerror("%s: Device %s not found.\n", tag(), entry[i].name);
}
}
}
}
- if (TRACE_CONFIG) LOG("Mapper logical device count = %d\n", m_logcomp.count());
- if (TRACE_CONFIG) LOG("Mapper physical device count = %d\n", m_physcomp.count());
+ if (TRACE_CONFIG) logerror("%s: Mapper logical device count = %d\n", tag(), m_logcomp.count());
+ if (TRACE_CONFIG) logerror("%s: Mapper physical device count = %d\n", tag(), m_physcomp.count());
m_dsr_selected = false;
m_CRUS = true;
@@ -861,7 +861,6 @@ enum
ti998_oso_device::ti998_oso_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: device_t(mconfig, OSO, "OSO Hexbus interface", tag, owner, clock, "ti998_oso", __FILE__)
{
- if (TRACE_OSO) LOG("ti998/oso: Creating OSO\n");
}
READ8_MEMBER( ti998_oso_device::read )
@@ -872,23 +871,23 @@ READ8_MEMBER( ti998_oso_device::read )
{
case 0:
// read 5FF8: read data register
- if (TRACE_OSO) LOG("ti998/oso: Read data register = %02x\n", value);
+ if (TRACE_OSO) logerror("%s: Read data register = %02x\n", tag(), value);
value = m_data;
break;
case 1:
// read 5FFA: read status register
value = m_status;
- if (TRACE_OSO) LOG("ti998/oso: Read status %02x\n", value);
+ if (TRACE_OSO) logerror("%s: Read status %02x\n", tag(), value);
break;
case 2:
// read 5FFC: read control register
value = m_control;
- if (TRACE_OSO) LOG("ti998/oso: Read control register = %02x\n", value);
+ if (TRACE_OSO) logerror("%s: Read control register = %02x\n", tag(), value);
break;
case 3:
// read 5FFE: read transmit register
value = m_xmit;
- if (TRACE_OSO) LOG("ti998/oso: Read transmit register = %02x\n", value);
+ if (TRACE_OSO) logerror("%s: Read transmit register = %02x\n", tag(), value);
break;
}
return value;
@@ -901,7 +900,7 @@ WRITE8_MEMBER( ti998_oso_device::write )
{
case 0:
// write 5FF8: write transmit register
- if (TRACE_OSO) LOG("ti998/oso: Write transmit register %02x\n", data);
+ if (TRACE_OSO) logerror("%s: Write transmit register %02x\n", tag(), data);
m_xmit = data;
// We set the status register directly in order to prevent lock-ups
// until we have a complete Hexbus implementation
@@ -909,12 +908,12 @@ WRITE8_MEMBER( ti998_oso_device::write )
break;
case 1:
// write 5FFA: write control register
- if (TRACE_OSO) LOG("ti998/oso: Write control register %02x\n", data);
+ if (TRACE_OSO) logerror("%s: Write control register %02x\n", tag(), data);
m_control = data;
break;
default:
// write 5FFC, 5FFE: undefined
- if (TRACE_OSO) LOG("ti998/oso: Invalid write on %04x: %02x\n", (offset<<1) | 0x5ff0, data);
+ if (TRACE_OSO) logerror("%s: Invalid write on %04x: %02x\n", tag(), (offset<<1) | 0x5ff0, data);
break;
}
}
@@ -925,3 +924,153 @@ void ti998_oso_device::device_start()
}
const device_type OSO = &device_creator<ti998_oso_device>;
+
+
+// ========================================================================
+
+/****************************************************************************
+
+ TI-99/8 Speech synthesizer subsystem
+
+ The TI-99/8 contains a speech synthesizer inside the console, so we cannot
+ reuse the spchsyn implementation of the P-Box speech synthesizer.
+ Accordingly, this is not a ti_expansion_card_device.
+
+ For comments on real timing see ti99/spchsyn.c
+
+ Note that before the REAL_TIMING can be used we must first establish
+ the set_address logic in 998board.
+
+*****************************************************************************/
+
+#define TMS5220_ADDRESS_MASK 0x3FFFFUL /* 18-bit mask for tms5220 address */
+#define SPEECHSYN_TAG "speechsyn"
+#define REAL_TIMING 0
+
+ti998_spsyn_device::ti998_spsyn_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+: bus8z_device(mconfig, SPEECH8, "TI-99/8 Onboard Speech synthesizer", tag, owner, clock, "ti998_speech", __FILE__),
+ m_ready(*this)
+{
+}
+
+/*
+ Memory read
+*/
+#if REAL_TIMING
+// ====== This is the version with real timing =======
+READ8Z_MEMBER( ti998_spsyn_device::readz )
+{
+ m_vsp->wsq_w(TRUE);
+ m_vsp->rsq_w(FALSE);
+ *value = m_vsp->read(offset) & 0xff;
+ if (TRACE_SPEECH) logerror("%s: read value = %02x\n", tag(), *value);
+}
+
+/*
+ Memory write
+*/
+WRITE8_MEMBER( ti998_spsyn_device::write )
+{
+ m_vsp->rsq_w(m_vsp, TRUE);
+ m_vsp->wsq_w(m_vsp, FALSE);
+ if (TRACE_SPEECH) logerror("%s: write value = %02x\n", tag(), data);
+ m_vsp->write(offset, data);
+}
+
+#else
+// ====== This is the version without real timing =======
+
+READ8Z_MEMBER( ti998_spsyn_device::readz )
+{
+ machine().device("maincpu")->execute().adjust_icount(-(18+3)); /* this is just a minimum, it can be more */
+ *value = m_vsp->status_r(space, offset, 0xff) & 0xff;
+ if (TRACE_SPEECH) logerror("%s: read value = %02x\n", tag(), *value);
+}
+
+/*
+ Memory write
+*/
+WRITE8_MEMBER( ti998_spsyn_device::write )
+{
+ machine().device("maincpu")->execute().adjust_icount(-(54+3)); /* this is just an approx. minimum, it can be much more */
+
+ /* RN: the stupid design of the tms5220 core means that ready is cleared */
+ /* when there are 15 bytes in FIFO. It should be 16. Of course, if */
+ /* it were the case, we would need to store the value on the bus, */
+ /* which would be more complex. */
+ if (!m_vsp->readyq_r())
+ {
+ attotime time_to_ready = attotime::from_double(m_vsp->time_to_ready());
+ int cycles_to_ready = machine().device<cpu_device>("maincpu")->attotime_to_cycles(time_to_ready);
+ if (TRACE_SPEECH && TRACE_DETAIL) logerror("%s: time to ready: %f -> %d\n", tag(), time_to_ready.as_double(), (int) cycles_to_ready);
+
+ machine().device("maincpu")->execute().adjust_icount(-cycles_to_ready);
+ machine().scheduler().timer_set(attotime::zero, FUNC_NULL);
+ }
+ if (TRACE_SPEECH) logerror("%s: write value = %02x\n", tag(), data);
+ m_vsp->data_w(space, offset, data);
+}
+#endif
+
+/**************************************************************************/
+
+WRITE_LINE_MEMBER( ti998_spsyn_device::speech8_ready )
+{
+ // The TMS5200 implementation uses TRUE/FALSE, not ASSERT/CLEAR semantics
+ m_ready((state==0)? ASSERT_LINE : CLEAR_LINE);
+ if (TRACE_SPEECH) logerror("%s: READY = %d\n", tag(), (state==0));
+
+#if REAL_TIMING
+ // Need to do that here (see explanations in spchsyn.c)
+ if (state==0)
+ {
+ m_vsp->rsq_w(TRUE);
+ m_vsp->wsq_w(TRUE);
+ }
+#endif
+}
+
+void ti998_spsyn_device::device_start()
+{
+ m_ready.resolve_safe();
+ m_vsp = subdevice<tms5220_device>(SPEECHSYN_TAG);
+ speechrom_device* mem = subdevice<speechrom_device>("vsm");
+ mem->set_reverse_bit_order(true);
+}
+
+void ti998_spsyn_device::device_reset()
+{
+ if (TRACE_SPEECH) logerror("%s: reset\n", tag());
+}
+
+// Unlike the TI-99/4A, the 99/8 uses the CD2501ECD
+// The CD2501ECD is a tms5200/cd2501e with the rate control from the tms5220c added in.
+// (it's probably actually a tms5220c die with the cd2501e/tms5200 lpc rom masked onto it)
+MACHINE_CONFIG_FRAGMENT( ti998_speech )
+ MCFG_DEVICE_ADD("vsm", SPEECHROM, 0)
+
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_SOUND_ADD(SPEECHSYN_TAG, CD2501ECD, 640000L)
+ MCFG_TMS52XX_READYQ_HANDLER(WRITELINE(ti998_spsyn_device, speech8_ready))
+ MCFG_TMS52XX_SPEECHROM("vsm")
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
+MACHINE_CONFIG_END
+
+/* Verified on a real machine: TI-99/8 uses the same speech rom contents
+ as the TI speech synthesizer. */
+ROM_START( ti998_speech )
+ ROM_REGION(0x8000, "vsm", 0)
+ ROM_LOAD("cd2325a.vsm", 0x0000, 0x4000, CRC(1f58b571) SHA1(0ef4f178716b575a1c0c970c56af8a8d97561ffe))
+ ROM_LOAD("cd2326a.vsm", 0x4000, 0x4000, CRC(65d00401) SHA1(a367242c2c96cebf0e2bf21862f3f6734b2b3020))
+ROM_END
+
+machine_config_constructor ti998_spsyn_device::device_mconfig_additions() const
+{
+ return MACHINE_CONFIG_NAME( ti998_speech );
+}
+
+const rom_entry *ti998_spsyn_device::device_rom_region() const
+{
+ return ROM_NAME( ti998_speech );
+}
+const device_type SPEECH8 = &device_creator<ti998_spsyn_device>;
diff --git a/src/mess/machine/ti99/mapper8.h b/src/devices/bus/ti99x/998board.h
index 4683a0d150e..87332491b97 100644
--- a/src/mess/machine/ti99/mapper8.h
+++ b/src/devices/bus/ti99x/998board.h
@@ -2,13 +2,14 @@
// copyright-holders:Michael Zapf
/****************************************************************************
- TI-99/8 Address decoder and mapper
+ TI-99/8 main board logic
- See mapper8.c for documentation
+ This component implements the address decoder and mapper logic from the
+ TI-99/8 console.
- Michael Zapf
+ See 998board.c for documentation
- February 2012: Rewritten as class
+ Michael Zapf
*****************************************************************************/
@@ -17,11 +18,14 @@
#include "emu.h"
#include "ti99defs.h"
+#include "sound/tms5220.h"
extern const device_type MAINBOARD8;
extern const device_type OSO;
+extern const device_type SPEECH8;
#define OSO_TAG "oso"
+#define SPEECHSYN_TAG "speechsyn"
#define NATIVE 0
#define TI99EM 1
@@ -132,6 +136,53 @@ private:
UINT8 m_xmit;
};
+/*
+ Speech support
+*/
+#define MCFG_SPEECH8_READY_CALLBACK(_write) \
+ devcb = &ti998_spsyn_device::set_ready_wr_callback(*device, DEVCB_##_write);
+
+class ti998_spsyn_device : public bus8z_device
+{
+public:
+ ti998_spsyn_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ template<class _Object> static devcb_base &set_ready_wr_callback(device_t &device, _Object object) { return downcast<ti998_spsyn_device &>(device).m_ready.set_callback(object); }
+
+ DECLARE_READ8Z_MEMBER(readz);
+ DECLARE_WRITE8_MEMBER(write);
+
+ DECLARE_READ8Z_MEMBER(crureadz) { };
+ DECLARE_WRITE8_MEMBER(cruwrite) { };
+
+ DECLARE_WRITE_LINE_MEMBER( speech8_ready );
+
+ DECLARE_READ8_MEMBER( spchrom_read );
+ DECLARE_WRITE8_MEMBER( spchrom_load_address );
+ DECLARE_WRITE8_MEMBER( spchrom_read_and_branch );
+
+protected:
+ virtual void device_start();
+ virtual void device_reset(void);
+ virtual const rom_entry *device_rom_region() const;
+ virtual machine_config_constructor device_mconfig_additions() const;
+
+private:
+ tms5220_device *m_vsp;
+// UINT8 *m_speechrom; // pointer to speech ROM data
+// int m_load_pointer; // which 4-bit nibble will be affected by load address
+// int m_rombits_count; // current bit position in ROM
+// UINT32 m_sprom_address; // 18 bit pointer in ROM
+// UINT32 m_sprom_length; // length of data pointed by speechrom_data, from 0 to 2^18
+
+ // Ready line to the CPU
+ devcb_write_line m_ready;
+};
+
+#define MCFG_TISPEECH8_ADD(_tag, _conf) \
+ MCFG_DEVICE_ADD(_tag, TI99_SPEECH8, 0) \
+ MCFG_DEVICE_CONFIG(_conf)
+
/*
Main class
diff --git a/src/mess/machine/ti99/datamux.c b/src/devices/bus/ti99x/datamux.c
index a18b448f354..c9db97f1788 100644
--- a/src/mess/machine/ti99/datamux.c
+++ b/src/devices/bus/ti99x/datamux.c
@@ -470,7 +470,7 @@ void ti99_datamux_device::device_reset(void)
INPUT_PORTS_START( datamux )
PORT_START( "RAM" ) /* config */
- PORT_CONFNAME( 0x01, 0x01, "Console 32 KiB RAM upgrade (16 bit)" )
+ PORT_CONFNAME( 0x01, 0x00, "Console 32 KiB RAM upgrade (16 bit)" )
PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
PORT_CONFSETTING( 0x01, DEF_STR( On ) )
diff --git a/src/mess/machine/ti99/datamux.h b/src/devices/bus/ti99x/datamux.h
index 7bc52972602..7bc52972602 100644
--- a/src/mess/machine/ti99/datamux.h
+++ b/src/devices/bus/ti99x/datamux.h
diff --git a/src/mess/machine/ti99/genboard.c b/src/devices/bus/ti99x/genboard.c
index 76c5695f178..0c021bd0234 100644
--- a/src/mess/machine/ti99/genboard.c
+++ b/src/devices/bus/ti99x/genboard.c
@@ -168,17 +168,42 @@
Waitstate behavior (Nov 2013)
Almost perfect. Only video read access from code in DRAM is too fast by one WS
+ ==========================
+ PFM expansion
+ ==========================
+ The "Programmable Flash Memory expansion" is a replacement for the boot
+ EPROM.
+
+ PFM: Original version, 128 KiB
+ PFM+: Expansion of the original version, piggybacked, adds another 128KiB
+ PFM512: Using an AT29C040 (not A), 512 KiB
+
+ The PFM is visible as four banks in memory pages 0xF0 - 0xFF.
+
+ Bank switching is done by four 9901 pins:
+
+ 0028: LSB of bank number
+ 003A: MSB of bank number
+
+ Bank 0 is the boot code, while banks 1-3 can be used as flash drives
Michael Zapf, October 2011
February 2012: rewritten as class, restructured
+ Aug 2015: PFM added
***************************************************************************/
#include "genboard.h"
-#define VERBOSE 1
-#define LOG logerror
+#define TRACE_READ 0
+#define TRACE_WRITE 0
+#define TRACE_DETAIL 0
+#define TRACE_KEYBOARD 0
+#define TRACE_CLOCK 0
+#define TRACE_LINES 0
+#define TRACE_SETTING 1
+#define TRACE_PFM 0
geneve_mapper_device::geneve_mapper_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: device_t(mconfig, GENEVE_MAPPER, "Geneve Gate Array", tag, owner, clock, "geneve_mapper", __FILE__),
@@ -187,23 +212,30 @@ geneve_mapper_device::geneve_mapper_device(const machine_config &mconfig, const
m_eprom = NULL;
}
-INPUT_CHANGED_MEMBER( geneve_mapper_device::gm_changed )
+INPUT_CHANGED_MEMBER( geneve_mapper_device::settings_changed )
{
int number = (int)((UINT64)param&0x03);
int value = newval;
- if (number==1)
+ switch (number)
{
+ case 1:
// Turbo switch. May be changed at any time.
- if (VERBOSE>0) LOG("genboard: Setting turbo flag to %d\n", value);
+ if (TRACE_SETTING) logerror("%s: Setting turbo flag to %d\n", tag(), value);
m_turbo = (value!=0);
- }
- else
- {
+ break;
+ case 2:
// TIMode switch. Causes reset when changed.
- if (VERBOSE>0) LOG("genboard: Setting timode flag to %d\n", value);
+ if (TRACE_SETTING) logerror("%s: Setting timode flag to %d\n", tag(), value);
m_timode = (value!=0);
machine().schedule_hard_reset();
+ break;
+ case 3:
+ // Used when switching the boot ROMs during runtime, especially the PFM
+ set_boot_rom(value);
+ break;
+ default:
+ logerror("%s: Unknown setting %d ignored\n", tag(), number);
}
}
@@ -294,7 +326,7 @@ void geneve_mapper_device::set_wait(int min)
m_waitcount = min + 1;
if (m_waitcount > 1)
{
- if (VERBOSE>7) LOG("genboard: Pulling down READY line for %d cycles\n", min);
+ if (TRACE_LINES) logerror("%s: Pulling down READY line for %d cycles\n", tag(), min);
m_ready(CLEAR_LINE);
m_ready_asserted = false;
}
@@ -306,6 +338,71 @@ void geneve_mapper_device::set_ext_wait(int min)
m_ext_waitcount = min;
}
+void geneve_mapper_device::set_boot_rom(int selection)
+{
+ switch (selection)
+ {
+ case GENEVE_098:
+ logerror("%s: Using 0.98 boot eprom\n", tag());
+ m_eprom = machine().root_device().memregion("maincpu")->base() + 0x4000;
+ m_pfm_mode = 0;
+ break;
+ case GENEVE_100:
+ logerror("%s: Using 1.00 boot eprom\n", tag());
+ m_eprom = machine().root_device().memregion("maincpu")->base();
+ m_pfm_mode = 0;
+ break;
+ case GENEVE_PFM512:
+ logerror("%s: Using PFM512 (AT29C040)\n", tag());
+ m_pfm_mode = 1;
+ break;
+ case GENEVE_PFM512A:
+ logerror("%s: Using PFM512A (AT29C040A)\n", tag());
+ m_pfm_mode = 2;
+ break;
+ default:
+ logerror("%s: Unknown boot ROM selection\n", tag());
+ }
+}
+
+void geneve_mapper_device::set_geneve_mode(bool geneve)
+{
+ if (TRACE_SETTING) logerror("%s: Setting Geneve mode = %d\n", tag(), geneve);
+ m_geneve_mode = geneve;
+}
+
+void geneve_mapper_device::set_direct_mode(bool direct)
+{
+ if (TRACE_SETTING) logerror("%s: Setting direct mode = %d\n", tag(), direct);
+ m_direct_mode = direct;
+}
+
+void geneve_mapper_device::set_cartridge_size(int size)
+{
+ if (TRACE_SETTING) logerror("%s: Setting cartridge size to %d\n", tag(), size);
+ m_cartridge_size = size;
+}
+
+void geneve_mapper_device::set_cartridge_writable(int base, bool write)
+{
+ if (TRACE_SETTING) logerror("%s: Cartridge %04x space writable = %d\n", tag(), base, write);
+ if (base==0x6000) m_cartridge6_writable = write;
+ else m_cartridge7_writable = write;
+}
+
+void geneve_mapper_device::set_video_waitstates(bool wait)
+{
+ if (TRACE_SETTING) logerror("%s: Setting video waitstates = %d\n", tag(), wait);
+ m_video_waitstates = wait;
+}
+
+void geneve_mapper_device::set_extra_waitstates(bool wait)
+{
+ if (TRACE_SETTING) logerror("%s: Setting extra waitstates = %d\n", tag(), wait);
+ m_extra_waitstates = wait;
+}
+
+
/************************************************************************
Called by the address map
************************************************************************/
@@ -347,7 +444,6 @@ enum
READ8_MEMBER( geneve_mapper_device::readm )
{
UINT8 value = 0;
- assert (m_eprom!=NULL);
decdata *dec;
decdata debug;
@@ -371,7 +467,7 @@ READ8_MEMBER( geneve_mapper_device::readm )
{
case MLGVIDEO:
m_video->readz(space, dec->offset, &value, 0xff);
- if (VERBOSE>7) LOG("genboard: Read video %04x -> %02x\n", dec->offset, value);
+ if (TRACE_READ) logerror("%s: Read video %04x -> %02x\n", tag(), dec->offset, value);
// Video wait states are created *after* the access
// Accordingly, they have no effect when execution is in onchip RAM
if (m_video_waitstates) set_ext_wait(15);
@@ -380,13 +476,13 @@ READ8_MEMBER( geneve_mapper_device::readm )
case MLGMAPPER:
// mapper
value = m_map[dec->offset];
- if (VERBOSE>7) LOG("genboard: read mapper %04x -> %02x\n", dec->offset, value);
+ if (TRACE_READ) logerror("%s: read mapper %04x -> %02x\n", tag(), dec->offset, value);
break;
case MLGKEY:
// key
if (!space.debugger_access()) value = m_keyboard->get_recent_key();
- if (VERBOSE>7) LOG("genboard: Read keyboard -> %02x\n", value);
+ if (TRACE_READ) logerror("%s: Read keyboard -> %02x\n", tag(), value);
break;
case MLGCLOCK:
@@ -394,19 +490,19 @@ READ8_MEMBER( geneve_mapper_device::readm )
// tests on the real machine showed that
// upper nibble is 0xf (probably because of the location at 0xf130?)
value = m_clock->read(space, dec->offset) | 0xf0;
- if (VERBOSE>7) LOG("genboard: Read clock %04x -> %02x\n", dec->offset, value);
+ if (TRACE_READ) logerror("%s: Read clock %04x -> %02x\n", tag(), dec->offset, value);
break;
case MLTMAPPER:
// mapper
value = m_map[dec->offset];
- if (VERBOSE>7) LOG("genboard: Read mapper %04x -> %02x\n", dec->offset, value);
+ if (TRACE_READ) logerror("%s: Read mapper %04x -> %02x\n", tag(), dec->offset, value);
break;
case MLTKEY:
// key
if (!space.debugger_access()) value = m_keyboard->get_recent_key();
- if (VERBOSE>7) LOG("genboard: Read keyboard -> %02x\n", value);
+ if (TRACE_READ) logerror("%s: Read keyboard -> %02x\n", tag(), value);
break;
case MLTCLOCK:
@@ -420,7 +516,7 @@ READ8_MEMBER( geneve_mapper_device::readm )
// value floating around.
value = m_clock->read(space, dec->offset);
value |= (dec->offset==0x000f)? 0x20 : 0x10;
- if (VERBOSE>7) LOG("genboard: Read clock %04x -> %02x\n", dec->offset, value);
+ if (TRACE_READ) logerror("%s: Read clock %04x -> %02x\n", tag(), dec->offset, value);
break;
case MLTVIDEO:
@@ -428,7 +524,7 @@ READ8_MEMBER( geneve_mapper_device::readm )
// ++++ ++-- ---- ---+
// 1000 1000 0000 00x0
m_video->readz(space, dec->offset, &value, 0xff);
- if (VERBOSE>7) LOG("genboard: Read video %04x -> %02x\n", dec->offset, value);
+ if (TRACE_READ) logerror("%s: Read video %04x -> %02x\n", tag(), dec->offset, value);
// See above
if (m_video_waitstates) set_ext_wait(15);
break;
@@ -439,7 +535,7 @@ READ8_MEMBER( geneve_mapper_device::readm )
// 1001 0000 0000 0000
// We need to add the address prefix bits
m_peribox->readz(space, dec->offset, &value, 0xff);
- if (VERBOSE>7) LOG("genboard: Read speech -> %02x\n", value);
+ if (TRACE_READ) logerror("%s: Read speech -> %02x\n", tag(), value);
break;
case MLTGROM:
@@ -447,7 +543,7 @@ READ8_MEMBER( geneve_mapper_device::readm )
// ++++ ++-- ---- ---+
// 1001 1000 0000 00x0
if (!space.debugger_access()) value = read_grom(space, dec->offset, 0xff);
- if (VERBOSE>7) LOG("genboard: Read GROM %04x -> %02x\n", dec->offset, value);
+ if (TRACE_READ) logerror("%s: Read GROM %04x -> %02x\n", tag(), dec->offset, value);
break;
case MLGSOUND:
@@ -460,20 +556,25 @@ READ8_MEMBER( geneve_mapper_device::readm )
// DRAM.
value = m_dram[dec->physaddr];
// LOG("dram read physaddr = %06x logaddr = %04x value = %02x\n", dec->physaddr, dec->offset, value);
- if (VERBOSE>7) LOG("genboard: Read DRAM %04x (%06x) -> %02x\n", dec->offset, dec->physaddr, value);
+ if (TRACE_READ) logerror("%s: Read DRAM %04x (%06x) -> %02x\n", tag(), dec->offset, dec->physaddr, value);
break;
case MPGEXP:
// On-board memory expansion for standard Geneve (never used)
- if (VERBOSE>7) LOG("genboard: Read unmapped area %06x\n", dec->physaddr);
+ if (TRACE_READ) logerror("%s: Read unmapped area %06x\n", tag(), dec->physaddr);
value = 0;
break;
case MPGEPROM:
// 1 111. ..xx xxxx xxxx xxxx on-board eprom (16K)
// mirrored for f0, f2, f4, ...; f1, f3, f5, ...
- value = m_eprom[dec->physaddr];
- if (VERBOSE>7) LOG("genboard: Read EPROM %04x (%06x) -> %02x\n", dec->offset, dec->physaddr, value);
+ if (m_pfm_mode == 0)
+ {
+ value = m_eprom[dec->physaddr & 0x003fff];
+ if (TRACE_READ) logerror("%s: Read EPROM %04x (%06x) -> %02x\n", tag(), dec->offset, dec->physaddr, value);
+ }
+ else value = read_from_pfm(space, dec->physaddr, 0xff);
+
break;
case MPGSRAM:
@@ -484,7 +585,7 @@ READ8_MEMBER( geneve_mapper_device::readm )
else value = 0;
// Return in any case
// LOG("sram read physaddr = %06x logaddr = %04x value = %02x\n", dec->physaddr, dec->offset, value);
- if (VERBOSE>7) LOG("genboard: Read SRAM %04x (%06x) -> %02x\n", dec->offset, dec->physaddr, value);
+ if (TRACE_READ) logerror("%s: Read SRAM %04x (%06x) -> %02x\n", tag(), dec->offset, dec->physaddr, value);
break;
case MPGBOX:
@@ -493,7 +594,7 @@ READ8_MEMBER( geneve_mapper_device::readm )
// 0x000000-0x1fffff for the GenMod.(AME,AMD,AMC,AMB,AMA,A0 ...,A15)
m_peribox->readz(space, dec->physaddr, &value, 0xff);
- if (VERBOSE>7) LOG("genboard: Read P-Box %04x (%06x) -> %02x\n", dec->offset, dec->physaddr, value);
+ if (TRACE_READ) logerror("%s: Read P-Box %04x (%06x) -> %02x\n", tag(), dec->offset, dec->physaddr, value);
break;
case MPGMDRAM:
@@ -504,7 +605,12 @@ READ8_MEMBER( geneve_mapper_device::readm )
case MPGMEPROM:
// 1 111. ..xx xxxx xxxx xxxx on-board eprom (16K)
// mirrored for f0, f2, f4, ...; f1, f3, f5, ...
- value = m_eprom[dec->physaddr];
+ if (m_pfm_mode == 0)
+ {
+ value = m_eprom[dec->physaddr & 0x003fff];
+ if (TRACE_READ) logerror("%s: Read EPROM %04x (%06x) -> %02x\n", tag(), dec->offset, dec->physaddr, value);
+ }
+ else value = read_from_pfm(space, dec->physaddr, 0xff);
break;
case MPGMBOX:
@@ -541,7 +647,7 @@ WRITE8_MEMBER( geneve_mapper_device::writem )
// ++++ ++++ ++++ ---+
// 1111 0001 0000 .cc0
m_video->write(space, dec->offset, data, 0xff);
- if (VERBOSE>7) LOG("genboard: Write video %04x <- %02x\n", offset, data);
+ if (TRACE_WRITE) logerror("%s: Write video %04x <- %02x\n", tag(), offset, data);
// See above
if (m_video_waitstates) set_ext_wait(15);
break;
@@ -549,33 +655,33 @@ WRITE8_MEMBER( geneve_mapper_device::writem )
case MLGMAPPER:
// mapper
m_map[dec->offset] = data;
- if (VERBOSE>7) LOG("genboard: Write mapper %04x <- %02x\n", offset, data);
+ if (TRACE_WRITE) logerror("%s: Write mapper %04x <- %02x\n", tag(), offset, data);
break;
case MLGCLOCK:
// clock
// ++++ ++++ ++++ ----
m_clock->write(space, dec->offset, data);
- if (VERBOSE>7) LOG("genboard: Write clock %04x <- %02x\n", offset, data);
+ if (TRACE_WRITE) logerror("%s: Write clock %04x <- %02x\n", tag(), offset, data);
break;
case MLGSOUND:
// sound
// ++++ ++++ ++++ ---+
m_sound->write(space, 0, data, 0xff);
- if (VERBOSE>7) LOG("genboard: Write sound <- %02x\n", data);
+ if (TRACE_WRITE) logerror("%s: Write sound <- %02x\n", tag(), data);
break;
case MLTMAPPER:
// mapper
m_map[dec->offset] = data;
- if (VERBOSE>7) LOG("genboard: Write mapper %04x <- %02x\n", offset, data);
+ if (TRACE_WRITE) logerror("%s: Write mapper %04x <- %02x\n", tag(), offset, data);
break;
case MLTCLOCK:
// clock
m_clock->write(space, dec->offset, data);
- if (VERBOSE>7) LOG("genboard: Write clock %04x <- %02x\n", offset, data);
+ if (TRACE_WRITE) logerror("%s: Write clock %04x <- %02x\n", tag(), offset, data);
break;
case MLTVIDEO:
@@ -584,7 +690,7 @@ WRITE8_MEMBER( geneve_mapper_device::writem )
// 1000 1100 0000 00c0
// Initialize waitstate timer
m_video->write(space, dec->offset, data, 0xff);
- if (VERBOSE>7) LOG("genboard: Write video %04x <- %02x\n", offset, data);
+ if (TRACE_WRITE) logerror("%s: Write video %04x <- %02x\n", tag(), offset, data);
// See above
if (m_video_waitstates) set_ext_wait(15);
break;
@@ -595,7 +701,7 @@ WRITE8_MEMBER( geneve_mapper_device::writem )
// 1001 0100 0000 0000
// We need to add the address prefix bits
m_peribox->write(space, dec->offset, data, 0xff);
- if (VERBOSE>7) LOG("genboard: Write speech <- %02x\n", data);
+ if (TRACE_WRITE) logerror("%s: Write speech <- %02x\n", tag(), data);
break;
case MLTGROM:
@@ -603,7 +709,7 @@ WRITE8_MEMBER( geneve_mapper_device::writem )
// ++++ ++-- ---- ---+
// 1001 1100 0000 00c0
write_grom(space, dec->offset, data, 0xff);
- if (VERBOSE>7) LOG("genboard: Write GROM %04x <- %02x\n", offset, data);
+ if (TRACE_WRITE) logerror("%s: Write GROM %04x <- %02x\n", tag(), offset, data);
break;
case MLTSOUND:
@@ -611,7 +717,7 @@ WRITE8_MEMBER( geneve_mapper_device::writem )
// ++++ ++-- ---- ---+
// 1000 0100 0000 0000
m_sound->write(space, 0, data, 0xff);
- if (VERBOSE>7) LOG("genboard: Write sound <- %02x\n", data);
+ if (TRACE_WRITE) logerror("%s: Write sound <- %02x\n", tag(), data);
break;
case MLTKEY:
@@ -621,19 +727,21 @@ WRITE8_MEMBER( geneve_mapper_device::writem )
case MPGDRAM:
// DRAM write. One wait state. (only for normal Geneve)
m_dram[dec->physaddr] = data;
- if (VERBOSE>7) LOG("genboard: Write DRAM %04x (%06x) <- %02x\n", offset, dec->physaddr, data);
+ if (TRACE_WRITE) logerror("%s: Write DRAM %04x (%06x) <- %02x\n", tag(), offset, dec->physaddr, data);
break;
case MPGEXP:
// On-board memory expansion for standard Geneve (never used)
- if (VERBOSE>7) LOG("genboard: Write unmapped area %06x\n", dec->physaddr);
+ if (TRACE_WRITE) logerror("%s: Write unmapped area %06x\n", tag(), dec->physaddr);
break;
case MPGEPROM:
// 1 111. ..xx xxxx xxxx xxxx on-board eprom (16K)
// mirrored for f0, f2, f4, ...; f1, f3, f5, ...
- // Ignore EPROM write
- if (VERBOSE>7) LOG("genboard: Write EPROM %04x (%06x) <- %02x, ignored\n", offset, dec->physaddr, data);
+ // Ignore EPROM write (unless PFM)
+ if (m_pfm_mode != 0) write_to_pfm(space, dec->physaddr, data, 0xff);
+ else
+ logerror("%s: Write EPROM %04x (%06x) <- %02x, ignored\n", tag(), offset, dec->physaddr, data);
break;
case MPGSRAM:
@@ -641,12 +749,12 @@ WRITE8_MEMBER( geneve_mapper_device::writem )
{
m_sram[dec->physaddr & ~m_sram_mask] = data;
}
- if (VERBOSE>7) LOG("genboard: Write SRAM %04x (%06x) <- %02x\n", offset, dec->physaddr, data);
+ if (TRACE_WRITE) logerror("%s: Write SRAM %04x (%06x) <- %02x\n", tag(), offset, dec->physaddr, data);
break;
case MPGBOX:
dec->physaddr = (dec->physaddr & 0x0007ffff); // 19 bit address
- if (VERBOSE>7) LOG("genboard: Write P-Box %04x (%06x) <- %02x\n", offset, dec->physaddr, data);
+ if (TRACE_WRITE) logerror("%s: Write P-Box %04x (%06x) <- %02x\n", tag(), offset, dec->physaddr, data);
m_peribox->write(space, dec->physaddr, data, 0xff);
break;
@@ -659,6 +767,9 @@ WRITE8_MEMBER( geneve_mapper_device::writem )
// 1 111. ..xx xxxx xxxx xxxx on-board eprom (16K)
// mirrored for f0, f2, f4, ...; f1, f3, f5, ...
// Ignore EPROM write
+ if (m_pfm_mode != 0) write_to_pfm(space, dec->physaddr, data, 0xff);
+ else
+ logerror("%s: Write EPROM %04x (%06x) <- %02x, ignored\n", tag(), offset, dec->physaddr, data);
break;
case MPGMBOX:
@@ -784,7 +895,7 @@ void geneve_mapper_device::decode(address_space& space, offs_t offset, bool read
// Determine physical address
if (m_direct_mode)
{
- dec->physaddr = 0x1e0000; // points to boot eprom
+ dec->physaddr = 0x1f0000; // points to boot eprom (page F8)
}
else
{
@@ -822,9 +933,8 @@ void geneve_mapper_device::decode(address_space& space, offs_t offset, bool read
if ((dec->physaddr & 0x1e0000)==0x1e0000)
{
// 1 111. ..xx xxxx xxxx xxxx on-board eprom (16K)
- // mirrored for f0, f2, f4, ...; f1, f3, f5, ...
+ // mirrored for f0, f2, f4, ...; f1, f3, f5, ... unless using PFM
dec->function = MPGEPROM;
- dec->physaddr = dec->physaddr & 0x003fff;
set_wait(0);
return;
}
@@ -862,9 +972,8 @@ void geneve_mapper_device::decode(address_space& space, offs_t offset, bool read
if ((dec->physaddr & 0x1e0000)==0x1e0000)
{
// 1 111. ..xx xxxx xxxx xxxx on-board eprom (16K)
- // mirrored for f0, f2, f4, ...; f1, f3, f5, ...
+ // mirrored for f0, f2, f4, ...; f1, f3, f5, ... unless using PFM
dec->function = MPGMEPROM;
- dec->physaddr = dec->physaddr & 0x003fff;
set_wait(0);
return;
}
@@ -983,7 +1092,7 @@ void geneve_mapper_device::decode(address_space& space, offs_t offset, bool read
if (m_cartridge_size==0x4000)
{
m_cartridge_secondpage = ((dec->offset & 0x0002)!=0);
- if (VERBOSE>7) LOG("genboard: Set cartridge page %02x\n", m_cartridge_secondpage);
+ if (TRACE_WRITE) logerror("%s: Set cartridge page %02x\n", tag(), m_cartridge_secondpage);
set_wait(1);
return;
}
@@ -993,7 +1102,7 @@ void geneve_mapper_device::decode(address_space& space, offs_t offset, bool read
if ((((dec->offset & 0x1000)==0x0000) && !m_cartridge6_writable)
|| (((dec->offset & 0x1000)==0x1000) && !m_cartridge7_writable))
{
- if (VERBOSE>0) LOG("genboard: Writing to protected cartridge space %04x ignored\n", dec->offset);
+ logerror("%s: Writing to protected cartridge space %04x ignored\n", tag(), dec->offset);
return;
}
else
@@ -1049,7 +1158,7 @@ void geneve_mapper_device::decode(address_space& space, offs_t offset, bool read
{
// GenMod mode
if ((dec->physaddr & 0x1e0000)==0x1e0000)
- { // EPROM, ignore
+ { // EPROM, ignore (unless PFM)
dec->function = MPGMEPROM;
set_wait(0);
return;
@@ -1073,13 +1182,61 @@ void geneve_mapper_device::decode(address_space& space, offs_t offset, bool read
}
/*
+ Read from PFM.
+*/
+READ8_MEMBER( geneve_mapper_device::read_from_pfm )
+{
+ UINT8 value = 0;
+ if (!m_pfm_output_enable) return 0;
+
+ int address = (offset & 0x01ffff) | (m_pfm_bank<<17);
+
+ switch (m_pfm_mode)
+ {
+ case 1:
+ value = m_pfm512->read(space, address, mem_mask);
+ break;
+ case 2:
+ value = m_pfm512a->read(space, address, mem_mask);
+ break;
+ default:
+ logerror("%s: Illegal mode for reading PFM: %d\n", tag(), m_pfm_mode);
+ return 0;
+ }
+
+ if (TRACE_PFM) logerror("%s: Reading from PFM at address %05x -> %02x\n", tag(), address, value);
+ return value;
+}
+
+WRITE8_MEMBER( geneve_mapper_device::write_to_pfm )
+{
+ // Nota bene: The PFM must be write protected on startup, or the RESET
+ // of the 9995 will attempt to write the return vector into the flash EEPROM
+ int address = (offset & 0x01ffff) | (m_pfm_bank<<17);
+ if (TRACE_PFM) logerror("%s: Writing to PFM at address %05x <- %02x\n", tag(), address, data);
+
+ switch (m_pfm_mode)
+ {
+ case 1:
+ m_pfm512->write(space, address, data, mem_mask);
+ break;
+ case 2:
+ m_pfm512a->write(space, address, data, mem_mask);
+ break;
+ default:
+ logerror("%s: Illegal mode for writing to PFM: %d\n", tag(), m_pfm_mode);
+ }
+}
+
+
+/*
Accept the address passed over the address bus and decode it appropriately.
This decoding will later be used in the READ/WRITE member functions. Also,
we initiate wait state creation here.
*/
SETOFFSET_MEMBER( geneve_mapper_device::setoffset )
{
- if (VERBOSE>7) LOG("genboard: setoffset = %04x\n", offset);
+ if (TRACE_DETAIL) logerror("%s: setoffset = %04x\n", tag(), offset);
m_debug_no_ws = false;
decode(space, offset, m_read_mode, &m_decoded);
}
@@ -1108,14 +1265,14 @@ WRITE_LINE_MEMBER( geneve_mapper_device::clock_in )
m_waitcount--;
if (m_waitcount == 0)
{
- if (VERBOSE>5) LOG("genboard: clock, READY asserted\n");
+ if (TRACE_CLOCK) logerror("%s: clock, READY asserted\n", tag());
m_ready(ASSERT_LINE);
m_ready_asserted = true;
}
- else
- {
- if (VERBOSE>5) LOG("genboard: clock\n");
- }
+ else
+ {
+ if (TRACE_CLOCK) logerror("%s: clock\n", tag());
+ }
}
else
{
@@ -1124,13 +1281,13 @@ WRITE_LINE_MEMBER( geneve_mapper_device::clock_in )
m_ext_waitcount--;
if (m_ext_waitcount == 0)
{
- if (VERBOSE>5) LOG("genboard: clock, READY asserted after video\n");
+ if (TRACE_CLOCK) logerror("%s: clock, READY asserted after video\n", tag());
m_ready(ASSERT_LINE);
m_ready_asserted = true;
}
else
{
- if (VERBOSE>5) LOG("genboard: vclock, ew=%d\n", m_ext_waitcount);
+ if (TRACE_CLOCK) logerror("%s: vclock, ew=%d\n", tag(), m_ext_waitcount);
}
}
}
@@ -1142,7 +1299,7 @@ WRITE_LINE_MEMBER( geneve_mapper_device::clock_in )
// Do we have video wait states? In that case, clear the line again
if ((m_waitcount == 0) && (m_ext_waitcount > 0) && m_ready_asserted)
{
- if (VERBOSE>5) LOG("genboard: clock, READY cleared for video\n");
+ if (TRACE_CLOCK) logerror("%s: clock, READY cleared for video\n", tag());
m_ready(CLEAR_LINE);
m_ready_asserted = false;
}
@@ -1155,14 +1312,39 @@ WRITE_LINE_MEMBER( geneve_mapper_device::clock_in )
WRITE_LINE_MEMBER( geneve_mapper_device::dbin_in )
{
m_read_mode = (state==ASSERT_LINE);
- if (VERBOSE>7) LOG("genboard: dbin = %02x\n", m_read_mode? 1:0);
+ if (TRACE_DETAIL) logerror("%s: dbin = %02x\n", tag(), m_read_mode? 1:0);
+}
+
+/*
+ PFM expansion: Setting the bank.
+*/
+WRITE_LINE_MEMBER( geneve_mapper_device::pfm_select_lsb )
+{
+ if (state==ASSERT_LINE) m_pfm_bank |= 1;
+ else m_pfm_bank &= 0xfe;
+ if (TRACE_PFM) logerror("%s: Setting bank (l) = %d\n", tag(), m_pfm_bank);
+}
+
+WRITE_LINE_MEMBER( geneve_mapper_device::pfm_select_msb )
+{
+ if (state==ASSERT_LINE) m_pfm_bank |= 2;
+ else m_pfm_bank &= 0xfd;
+ if (TRACE_PFM) logerror("%s: Setting bank (u) = %d\n", tag(), m_pfm_bank);
+}
+
+WRITE_LINE_MEMBER( geneve_mapper_device::pfm_output_enable )
+{
+ // Negative logic
+ m_pfm_output_enable = (state==CLEAR_LINE);
+ if (TRACE_PFM) logerror("%s: PFM output %s\n", tag(), m_pfm_output_enable? "enable" : "disable");
}
-/*** DEVICE LIFECYCLE FUNCTIONS ***/
+//====================================================================
+// Common device lifecycle
+//====================================================================
void geneve_mapper_device::device_start()
{
- if (VERBOSE>0) LOG("genboard: Starting Geneve mapper\n");
// Get pointers
m_peribox = machine().device<bus8z_device>(PERIBOX_TAG);
m_keyboard = machine().device<geneve_keyboard_device>(GKEYBOARD_TAG);
@@ -1170,6 +1352,10 @@ void geneve_mapper_device::device_start()
m_sound = machine().device<bus8z_device>(TISOUND_TAG);
m_clock = machine().device<mm58274c_device>(GCLOCK_TAG);
+ // PFM expansion
+ m_pfm512 = machine().device<at29c040_device>(PFM512_TAG);
+ m_pfm512a = machine().device<at29c040a_device>(PFM512A_TAG);
+
m_ready.resolve();
m_sram = machine().root_device().memregion(SRAM_TAG)->base();
@@ -1182,8 +1368,6 @@ void geneve_mapper_device::device_start()
void geneve_mapper_device::device_reset()
{
- if (VERBOSE>1) LOG("genboard: Resetting mapper\n");
-
m_extra_waitstates = false;
m_video_waitstates = true;
m_read_mode = false;
@@ -1198,33 +1382,25 @@ void geneve_mapper_device::device_reset()
m_cartridge6_writable = false;
m_cartridge7_writable = false;
m_grom_address = 0;
+ m_pfm_bank = 0;
+ m_pfm_output_enable = true;
// Clear map
for (int i=0; i < 8; i++) m_map[i] = 0;
m_genmod = false;
- if (machine().root_device().ioport("MODE")->read()==0)
- {
- switch (machine().root_device().ioport("BOOTROM")->read())
- {
- case GENEVE_098:
- if (VERBOSE>0) LOG("genboard: Using 0.98 boot eprom\n");
- m_eprom = machine().root_device().memregion("maincpu")->base() + 0x4000;
- break;
- case GENEVE_100:
- if (VERBOSE>0) LOG("genboard: Using 1.00 boot eprom\n");
- m_eprom = machine().root_device().memregion("maincpu")->base();
- break;
- }
- }
- else
+ // Check which boot EPROM we are using (or PFM)
+ set_boot_rom(machine().root_device().ioport("BOOTROM")->read());
+
+ // Check for GenMod. We assume that GenMod can be combined with PFM.
+ if (machine().root_device().ioport("MODE")->read()!=0)
{
- if (VERBOSE>0) LOG("genboard: Using GenMod modification\n");
+ logerror("%s: Using GenMod modification\n", tag());
m_eprom = machine().root_device().memregion("maincpu")->base() + 0x8000;
if (m_eprom[0] != 0xf0)
{
- fatalerror("genboard: GenMod boot rom missing.\n");
+ fatalerror("genboard: GenMod boot ROM missing\n");
}
m_genmod = true;
m_turbo = ((machine().root_device().ioport("GENMODDIPS")->read() & GM_TURBO)!=0);
@@ -1301,7 +1477,7 @@ void geneve_keyboard_device::post_in_key_queue(int keycode)
m_key_queue[(m_key_queue_head + m_key_queue_length) % KEYQUEUESIZE] = keycode;
m_key_queue_length++;
- if (VERBOSE>5) LOG("genboard: posting keycode %02x\n", keycode);
+ if (TRACE_KEYBOARD) logerror("%s: Posting keycode %02x\n", tag(), keycode);
}
void geneve_keyboard_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
@@ -1316,7 +1492,7 @@ void geneve_keyboard_device::poll()
int i, j;
int keycode;
int pressed;
- if (VERBOSE>7) LOG("genboard: poll keyboard\n");
+ if (TRACE_KEYBOARD) logerror("%s: Poll keyboard\n", tag());
if (m_key_reset) return;
/* Poll keyboard */
@@ -1522,7 +1698,7 @@ void geneve_keyboard_device::signal_when_key_available()
// buffer clear is disabled, and key queue is not empty. */
if ((!m_key_reset) && (m_keyboard_clock) && (m_keep_keybuf) && (m_key_queue_length != 0))
{
- if (VERBOSE>6) LOG("genboard: signalling key available\n");
+ if (TRACE_KEYBOARD) logerror("%s: Signalling key available\n", tag());
m_interrupt(ASSERT_LINE);
m_key_in_buffer = true;
}
@@ -1532,7 +1708,7 @@ WRITE_LINE_MEMBER( geneve_keyboard_device::clock_control )
{
bool rising_edge = (!m_keyboard_clock && (state==ASSERT_LINE));
m_keyboard_clock = (state==ASSERT_LINE);
- if (VERBOSE>5) LOG("genboard: keyboard clock_control state=%d\n", m_keyboard_clock);
+ if (TRACE_KEYBOARD) logerror("%s: Keyboard clock_control state=%d\n", tag(), m_keyboard_clock);
if (rising_edge)
signal_when_key_available();
}
@@ -1582,7 +1758,6 @@ WRITE_LINE_MEMBER( geneve_keyboard_device::reset_line )
void geneve_keyboard_device::device_start()
{
- if (VERBOSE>2) LOG("genboard: Keyboard started\n");
m_timer = timer_alloc(0);
m_interrupt.resolve();
}
diff --git a/src/mess/machine/ti99/genboard.h b/src/devices/bus/ti99x/genboard.h
index 7728552aea8..d9905ba9168 100644
--- a/src/mess/machine/ti99/genboard.h
+++ b/src/devices/bus/ti99x/genboard.h
@@ -18,6 +18,7 @@
#include "machine/mm58274c.h"
#include "video/v9938.h"
#include "cpu/tms9900/tms9995.h"
+#include "machine/at29x.h"
extern const device_type GENEVE_MOUSE;
extern const device_type GENEVE_KEYBOARD;
@@ -109,25 +110,27 @@ class geneve_mapper_device : public device_t
{
public:
geneve_mapper_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
- inline void set_geneve_mode(bool geneve) { m_geneve_mode = geneve; }
- inline void set_direct_mode(bool direct) { m_direct_mode = direct; }
- inline void set_cartridge_size(int size) { m_cartridge_size = size; }
- inline void set_cartridge_writable(int base, bool write)
- {
- if (base==0x6000) m_cartridge6_writable = write;
- else m_cartridge7_writable = write;
- }
- inline void set_video_waitstates(bool wait) { m_video_waitstates = wait; }
- inline void set_extra_waitstates(bool wait) { m_extra_waitstates = wait; }
+ void set_geneve_mode(bool geneve);
+ void set_direct_mode(bool direct);
+ void set_cartridge_size(int size);
+ void set_cartridge_writable(int base, bool write);
+ void set_video_waitstates(bool wait);
+ void set_extra_waitstates(bool wait);
DECLARE_READ8_MEMBER( readm );
DECLARE_WRITE8_MEMBER( writem );
DECLARE_SETOFFSET_MEMBER( setoffset );
- DECLARE_INPUT_CHANGED_MEMBER( gm_changed );
+ DECLARE_INPUT_CHANGED_MEMBER( settings_changed );
DECLARE_WRITE_LINE_MEMBER( clock_in );
DECLARE_WRITE_LINE_MEMBER( dbin_in );
+
+ // PFM support
+ DECLARE_WRITE_LINE_MEMBER( pfm_select_lsb );
+ DECLARE_WRITE_LINE_MEMBER( pfm_select_msb );
+ DECLARE_WRITE_LINE_MEMBER( pfm_output_enable );
+
template<class _Object> static devcb_base &static_set_ready_callback(device_t &device, _Object object) { return downcast<geneve_mapper_device &>(device).m_ready.set_callback(object); }
protected:
@@ -177,6 +180,15 @@ private:
bool m_genmod;
bool m_timode;
+ // PFM mod (0 = none, 1 = AT29C040, 2 = AT29C040A)
+ DECLARE_READ8_MEMBER( read_from_pfm );
+ DECLARE_WRITE8_MEMBER( write_to_pfm );
+ void set_boot_rom(int selection);
+ int m_pfm_mode;
+ int m_pfm_bank;
+ bool m_pfm_output_enable;
+
+ // SRAM access
int m_sram_mask;
int m_sram_val;
@@ -190,6 +202,8 @@ private:
// Devices
mm58274c_device* m_clock;
tms9995_device* m_cpu;
+ at29c040_device* m_pfm512;
+ at29c040a_device* m_pfm512a;
geneve_keyboard_device* m_keyboard;
bus8z_device* m_video;
diff --git a/src/mess/machine/ti99/grom.c b/src/devices/bus/ti99x/grom.c
index 3c20eeb35d7..3c20eeb35d7 100644
--- a/src/mess/machine/ti99/grom.c
+++ b/src/devices/bus/ti99x/grom.c
diff --git a/src/mess/machine/ti99/grom.h b/src/devices/bus/ti99x/grom.h
index 19a9a973b81..19a9a973b81 100644
--- a/src/mess/machine/ti99/grom.h
+++ b/src/devices/bus/ti99x/grom.h
diff --git a/src/mess/machine/ti99/gromport.c b/src/devices/bus/ti99x/gromport.c
index 427dc929b8a..2119a93c348 100644
--- a/src/mess/machine/ti99/gromport.c
+++ b/src/devices/bus/ti99x/gromport.c
@@ -112,8 +112,14 @@
***************************************************************************/
#include "gromport.h"
-#define VERBOSE 1
-#define LOG logerror
+#define TRACE_RPK 0
+#define TRACE_CHANGE 0
+#define TRACE_ILLWRITE 0
+#define TRACE_CONFIG 0
+#define TRACE_READ 0
+#define TRACE_GROM 0
+#define TRACE_GKRACKER 0
+#define TRACE_CRU 0
#define GROM3_TAG "grom3"
#define GROM4_TAG "grom4"
@@ -123,7 +129,6 @@
#define CARTGROM_TAG "grom_contents"
#define CARTROM_TAG "rom_contents"
-#define CARTROM2_TAG "rom2_contents"
#define GKRACKER_ROM_TAG "gkracker_rom"
#define GKRACKER_NVRAM_TAG "gkracker_nvram"
@@ -407,8 +412,8 @@ multi_conn_device::multi_conn_device(const machine_config &mconfig, const char *
*/
void multi_conn_device::set_slot(int slotnumber)
{
- if (VERBOSE>7)
- if (m_active_slot != slotnumber) LOG("multi_conn_device: Setting cartslot to %d\n", slotnumber);
+ if (TRACE_CHANGE)
+ if (m_active_slot != slotnumber) logerror("%s: Setting cartslot to %d\n", tag(), slotnumber);
if (m_fixed_slot==AUTO)
m_active_slot = slotnumber;
@@ -432,14 +437,14 @@ int multi_conn_device::get_active_slot(bool changebase, offs_t offset)
void multi_conn_device::insert(int index, ti99_cartridge_device* cart)
{
- if (VERBOSE>3) LOG("multi_conn_device: insert slot %d\n", index);
+ if (TRACE_CHANGE) logerror("%s: Insert slot %d\n", tag(), index);
m_cartridge[index] = cart;
m_gromport->cartridge_inserted();
}
void multi_conn_device::remove(int index)
{
- if (VERBOSE>3) LOG("multi_conn_device: remove slot %d\n", index);
+ if (TRACE_CHANGE) logerror("%s: Remove slot %d\n", tag(), index);
m_cartridge[index] = NULL;
}
@@ -494,7 +499,7 @@ WRITE8_MEMBER(multi_conn_device::write)
{
if (slot < NUMBER_OF_CARTRIDGE_SLOTS && m_cartridge[slot] != NULL)
{
- // LOG("try it on slot %d\n", slot);
+ // logerror("%s: try it on slot %d\n", tag(), slot);
m_cartridge[slot]->write(space, offset, data, mem_mask);
}
}
@@ -798,7 +803,7 @@ READ8Z_MEMBER(gkracker_device::readz)
}
}
}
- if (VERBOSE>8) LOG("gkracker_device: read %04x -> %02x\n", offset, *value);
+ if (TRACE_READ) logerror("%s: Read %04x -> %02x\n", tag(), offset, *value);
}
WRITE8_MEMBER(gkracker_device::write)
@@ -820,7 +825,7 @@ WRITE8_MEMBER(gkracker_device::write)
// Accept low address byte (second write)
m_grom_address = (m_grom_address & 0xff00) | data;
m_waddr_LSB = false;
- if (VERBOSE>8) LOG("gkracker_device: set grom address %04x\n", m_grom_address);
+ if (TRACE_GROM) logerror("%s: Set grom address %04x\n", tag(), m_grom_address);
}
else
{
@@ -832,7 +837,7 @@ WRITE8_MEMBER(gkracker_device::write)
else
{
// Write data byte to GRAM area.
- if (VERBOSE>7) LOG("gkracker_device: gwrite %04x(%04x) <- %02x\n", offset, m_grom_address, data);
+ if (TRACE_GROM) logerror("%s: gwrite %04x(%04x) <- %02x\n", tag(), offset, m_grom_address, data);
// According to manual:
// Writing to GRAM 0: switch 2 set to GRAM 0 + Write protect switch (4) in 1 or 2 position
@@ -871,7 +876,7 @@ WRITE8_MEMBER(gkracker_device::write)
{
// Write to the RAM space of the GRAM Kracker
// (only if no cartridge is present)
- if (VERBOSE>7) LOG("gkracker_device: write %04x <- %02x\n", offset, data);
+ if (TRACE_GROM) logerror("%s: write %04x <- %02x\n", tag(), offset, data);
if (m_cartridge == NULL)
{
if (m_gk_switch[1] == GK_OFF) return; // just don't do anything
@@ -908,13 +913,13 @@ WRITE8_MEMBER( gkracker_device::cruwrite )
INPUT_CHANGED_MEMBER( gkracker_device::gk_changed )
{
- if (VERBOSE>7) LOG("gkracker_device: input changed %d - %d\n", (int)((UINT64)param & 0x07), newval);
+ if (TRACE_GKRACKER) logerror("%s: Input changed %d - %d\n", tag(), (int)((UINT64)param & 0x07), newval);
m_gk_switch[(UINT64)param & 0x07] = newval;
}
void gkracker_device::insert(int index, ti99_cartridge_device* cart)
{
- if (VERBOSE>3) LOG("gkracker_device: insert cartridge\n");
+ if (TRACE_CHANGE) logerror("%s: Insert cartridge\n", tag());
m_cartridge = cart;
// Switch 1 has a third location for resetting. We do the reset by default
// here. It can be turned off in the configuration.
@@ -923,7 +928,7 @@ void gkracker_device::insert(int index, ti99_cartridge_device* cart)
void gkracker_device::remove(int index)
{
- if (VERBOSE>3) LOG("gkracker_device: remove cartridge\n");
+ if (TRACE_CHANGE) logerror("%s: Remove cartridge\n", tag());
m_cartridge = NULL;
}
@@ -946,7 +951,7 @@ void gkracker_device::gk_install_menu(const char* menutext, int len, int ptr, in
*/
void gkracker_device::nvram_default()
{
- if (VERBOSE>3) LOG("gkracker_device: Creating default NVRAM\n");
+ if (TRACE_GKRACKER) logerror("%s: Creating default NVRAM\n", tag());
memset(m_ram_ptr, 0, 81920);
m_ram_ptr[0x6000] = 0xaa;
@@ -970,7 +975,7 @@ void gkracker_device::nvram_default()
void gkracker_device::nvram_read(emu_file &file)
{
int readsize = file.read(m_ram_ptr, 81920);
- if (VERBOSE>3) LOG("gkracker_device: reading NVRAM\n");
+ if (TRACE_GKRACKER) logerror("%s: Reading NVRAM\n", tag());
// If we increased the size, fill the remaining parts with 0
if (readsize < 81920)
{
@@ -980,7 +985,7 @@ void gkracker_device::nvram_read(emu_file &file)
void gkracker_device::nvram_write(emu_file &file)
{
- if (VERBOSE>3) LOG("gkracker_device: writing NVRAM\n");
+ if (TRACE_GKRACKER) logerror("%s: Writing NVRAM\n", tag());
file.write(m_ram_ptr, 81920);
}
@@ -1080,6 +1085,8 @@ enum
PCB_SUPER,
PCB_MBX,
PCB_PAGED379I,
+ PCB_PAGED378,
+ PCB_PAGED377,
PCB_PAGEDCRU,
PCB_GROMEMU
};
@@ -1092,6 +1099,8 @@ static const pcb_type pcbdefs[] =
{ PCB_SUPER, "super" },
{ PCB_MBX, "mbx" },
{ PCB_PAGED379I, "paged379i" },
+ { PCB_PAGED378, "paged378" },
+ { PCB_PAGED377, "paged377" },
{ PCB_PAGEDCRU, "pagedcru" },
{ PCB_GROMEMU, "gromemu" },
{ 0, NULL}
@@ -1123,15 +1132,14 @@ void ti99_cartridge_device::prepare_cartridge()
int rom2_length;
UINT8* grom_ptr;
+ UINT8* rom_ptr;
memory_region *regg;
memory_region *regr;
- memory_region *regr2;
// Initialize some values.
m_pcb->m_rom_page = 0;
m_pcb->m_rom_ptr = NULL;
- m_pcb->m_rom2_ptr = NULL;
m_pcb->m_ram_size = 0;
m_pcb->m_ram_ptr = NULL;
m_pcb->m_ram_page = 0;
@@ -1139,7 +1147,7 @@ void ti99_cartridge_device::prepare_cartridge()
for (int i=0; i < 5; i++) m_pcb->m_grom[i] = NULL;
m_pcb->m_grom_size = m_softlist? get_software_region_length("grom_socket") : m_rpk->get_resource_length("grom_socket");
- if (VERBOSE>6) LOG("gromport: grom_socket.size=0x%04x\n", m_pcb->m_grom_size);
+ if (TRACE_CONFIG) logerror("%s: grom_socket.size=0x%04x\n", tag(), m_pcb->m_grom_size);
if (m_pcb->m_grom_size > 0)
{
@@ -1160,22 +1168,22 @@ void ti99_cartridge_device::prepare_cartridge()
m_pcb->m_rom_size = m_softlist? get_software_region_length("rom_socket") : m_rpk->get_resource_length("rom_socket");
if (m_pcb->m_rom_size > 0)
{
- if (VERBOSE>6) LOG("gromport: rom_socket.size=0x%04x\n", m_pcb->m_rom_size);
+ if (TRACE_CONFIG) logerror("%s: rom_socket.size=0x%04x\n", tag(), m_pcb->m_rom_size);
regr = memregion(CARTROM_TAG);
- m_pcb->m_rom_ptr = m_softlist? get_software_region("rom_socket") : m_rpk->get_contents_of_socket("rom_socket");
- memcpy(regr->base(), m_pcb->m_rom_ptr, m_pcb->m_rom_size);
+ rom_ptr = m_softlist? get_software_region("rom_socket") : m_rpk->get_contents_of_socket("rom_socket");
+ memcpy(regr->base(), rom_ptr, m_pcb->m_rom_size);
// Set both pointers to the same region for now
- m_pcb->m_rom_ptr = m_pcb->m_rom2_ptr = regr->base();
+ m_pcb->m_rom_ptr = regr->base();
}
rom2_length = m_softlist? get_software_region_length("rom2_socket") : m_rpk->get_resource_length("rom2_socket");
if (rom2_length > 0)
{
// sizes do not differ between rom and rom2
- regr2 = memregion(CARTROM2_TAG);
- m_pcb->m_rom2_ptr = m_softlist? get_software_region("rom2_socket") : m_rpk->get_contents_of_socket("rom2_socket");
- memcpy(regr2->base(), m_pcb->m_rom2_ptr, rom2_length);
- m_pcb->m_rom2_ptr = regr2->base();
+ // We use the large cartrom space for the second bank as well
+ regr = memregion(CARTROM_TAG);
+ rom_ptr = m_softlist? get_software_region("rom2_socket") : m_rpk->get_contents_of_socket("rom2_socket");
+ memcpy(regr->base() + 0x2000, rom_ptr, rom2_length);
}
// NVRAM cartridges are not supported by softlists (we need to find a way to load the nvram contents first)
@@ -1227,11 +1235,11 @@ bool ti99_cartridge_device::call_load()
{
// File name is in m_basename
// return true = error
- if (VERBOSE>8) LOG("cartridge_device: loading %s in slot %s\n", m_basename.c_str(), tag());
+ if (TRACE_CHANGE) logerror("%s: Loading %s in slot %s\n", tag(), m_basename.c_str(), tag());
if (m_softlist)
{
- if (VERBOSE>7) LOG("using softlists\n");
+ if (TRACE_CONFIG) logerror("%s: Using softlists\n", tag());
int i = 0;
const char* pcb = get_feature("pcb");
do
@@ -1243,7 +1251,7 @@ bool ti99_cartridge_device::call_load()
}
i++;
} while (sw_pcbdefs[i].id != 0);
- if (VERBOSE>5) LOG("gromport.cartridge_device: Cartridge type is %s (%d)\n", pcb, m_pcbtype);
+ if (TRACE_CONFIG) logerror("%s: Cartridge type is %s (%d)\n", tag(), pcb, m_pcbtype);
}
else
{
@@ -1255,7 +1263,7 @@ bool ti99_cartridge_device::call_load()
}
catch (rpk_exception& err)
{
- LOG("gromport.cartridge_device: Failed to load cartridge '%s': %s\n", basename(), err.to_string());
+ logerror("%s: Failed to load cartridge '%s': %s\n", tag(), basename(), err.to_string());
m_rpk = NULL;
m_err = IMAGE_ERROR_INVALIDIMAGE;
return true;
@@ -1265,41 +1273,50 @@ bool ti99_cartridge_device::call_load()
switch (m_pcbtype)
{
case PCB_STANDARD:
- if (VERBOSE>6) LOG("gromport.cartridge_device: standard PCB\n");
+ if (TRACE_CONFIG) logerror("%s: Standard PCB\n", tag());
m_pcb = new ti99_standard_cartridge();
break;
case PCB_PAGED:
- if (VERBOSE>6) LOG("gromport.cartridge_device: paged PCB\n");
+ if (TRACE_CONFIG) logerror("%s: Paged PCB\n", tag());
m_pcb = new ti99_paged_cartridge();
break;
case PCB_MINIMEM:
- if (VERBOSE>6) LOG("gromport.cartridge_device: minimem PCB\n");
+ if (TRACE_CONFIG) logerror("%s: Minimem PCB\n", tag());
m_pcb = new ti99_minimem_cartridge();
break;
case PCB_SUPER:
- if (VERBOSE>6) LOG("gromport.cartridge_device: superspace PCB\n");
+ if (TRACE_CONFIG) logerror("%s: Superspace PCB\n", tag());
m_pcb = new ti99_super_cartridge();
break;
case PCB_MBX:
- if (VERBOSE>6) LOG("gromport.cartridge_device: MBX PCB\n");
+ if (TRACE_CONFIG) logerror("%s: MBX PCB\n", tag());
m_pcb = new ti99_mbx_cartridge();
break;
case PCB_PAGED379I:
- if (VERBOSE>6) LOG("gromport.cartridge_device: Paged379i PCB\n");
+ if (TRACE_CONFIG) logerror("%s: Paged379i PCB\n", tag());
m_pcb = new ti99_paged379i_cartridge();
break;
+ case PCB_PAGED378:
+ if (TRACE_CONFIG) logerror("%s: Paged378 PCB\n", tag());
+ m_pcb = new ti99_paged378_cartridge();
+ break;
+ case PCB_PAGED377:
+ if (TRACE_CONFIG) logerror("%s: Paged377 PCB\n", tag());
+ m_pcb = new ti99_paged377_cartridge();
+ break;
case PCB_PAGEDCRU:
- if (VERBOSE>6) LOG("gromport.cartridge_device: PagedCRU PCB\n");
+ if (TRACE_CONFIG) logerror("%s: PagedCRU PCB\n", tag());
m_pcb = new ti99_pagedcru_cartridge();
break;
case PCB_GROMEMU:
- if (VERBOSE>6) LOG("gromport.cartridge_device: GromEmulation PCB\n");
+ if (TRACE_CONFIG) logerror("%s: Grom Emulation PCB\n", tag());
m_pcb = new ti99_gromemu_cartridge();
break;
}
prepare_cartridge();
m_pcb->set_cartridge(this);
+ m_pcb->set_tag(tag());
m_slot = get_index_from_tagname();
m_connector->insert(m_slot, this);
return false;
@@ -1307,7 +1324,7 @@ bool ti99_cartridge_device::call_load()
void ti99_cartridge_device::call_unload()
{
- if (VERBOSE>7) LOG("ti99_cartridge_device: unload\n");
+ if (TRACE_CHANGE) logerror("%s: Unload\n", tag());
if (m_rpk != NULL)
{
m_rpk->close(); // will write NVRAM contents
@@ -1326,7 +1343,7 @@ void ti99_cartridge_device::set_slot(int i)
bool ti99_cartridge_device::call_softlist_load(software_list_device &swlist, const char *swname, const rom_entry *start_entry)
{
- if (VERBOSE>8) LOG("ti99_cartridge_device: swlist = %s, swname = %s\n", swlist.list_name(), swname);
+ if (TRACE_CONFIG) logerror("%s: swlist = %s, swname = %s\n", tag(), swlist.list_name(), swname);
load_software_part_region(*this, swlist, swname, start_entry);
m_softlist = true;
m_rpk = NULL;
@@ -1409,13 +1426,12 @@ machine_config_constructor ti99_cartridge_device::device_mconfig_additions() con
/*
Memory area for one cartridge. For most cartridges we only need 8 KiB for
- ROM contents, but cartridges of the "paged379i" type have up to 128 KiB
+ ROM contents, but cartridges of the "paged377" type have up to 2 MiB
organised as selectable banks, so we must be sure there is enough space.
*/
ROM_START( cartridge_memory )
ROM_REGION(0xa000, CARTGROM_TAG, ROMREGION_ERASE00)
- ROM_REGION(0x20000, CARTROM_TAG, ROMREGION_ERASE00)
- ROM_REGION(0x2000, CARTROM2_TAG, ROMREGION_ERASE00)
+ ROM_REGION(0x200000, CARTROM_TAG, ROMREGION_ERASE00)
ROM_END
const rom_entry *ti99_cartridge_device::device_rom_region() const
@@ -1486,19 +1502,19 @@ READ8Z_MEMBER(ti99_cartridge_pcb::readz)
// For TI-99/8 we should plan for 16K cartridges. However, none was ever produced.
// Well, forget about that.
*value = m_rom_ptr[offset & 0x1fff];
- // LOG("read cartridge rom space %04x = %02x\n", offset, *value);
+ // logerror("%s: read cartridge rom space %04x = %02x\n", tag(), offset, *value);
}
}
}
WRITE8_MEMBER(ti99_cartridge_pcb::write)
{
- // LOG("write standard\n");
+ // logerror("%s: write standard\n", tag());
if ((offset & grom_mask())==grom_base())
gromwrite(space, offset, data, mem_mask);
else
{
- if (VERBOSE>5) LOG("cartridge_pcb_device: Cannot write to ROM space at %04x\n", offset);
+ if (TRACE_ILLWRITE) logerror("%s: Cannot write to ROM space at %04x\n", tag(), offset);
}
}
@@ -1530,20 +1546,13 @@ READ8Z_MEMBER(ti99_paged_cartridge::readz)
gromreadz(space, offset, value, mem_mask);
else
{
- if (m_rom_page==0)
- {
- *value = m_rom_ptr[offset & 0x1fff];
- }
- else
- {
- *value = m_rom2_ptr[offset & 0x1fff];
- }
+ *value = m_rom_ptr[(offset & 0x1fff) | (m_rom_page << 13)];
}
}
WRITE8_MEMBER(ti99_paged_cartridge::write)
{
- // LOG("write standard\n");
+ // logerror("%s: write standard\n", tag());
if ((offset & grom_mask())==grom_base())
gromwrite(space, offset, data, mem_mask);
@@ -1584,7 +1593,7 @@ READ8Z_MEMBER(ti99_minimem_cartridge::readz)
/* Write function for the minimem cartridge. */
WRITE8_MEMBER(ti99_minimem_cartridge::write)
{
- // LOG("write standard\n");
+ // logerror("%s: write standard\n", tag());
if ((offset & grom_mask())==grom_base())
gromwrite(space, offset, data, mem_mask);
@@ -1592,7 +1601,7 @@ WRITE8_MEMBER(ti99_minimem_cartridge::write)
{
if ((offset & 0x1000)==0x0000)
{
- if (VERBOSE>1) LOG("ti99: gromport: Write access to cartridge ROM at address %04x ignored", offset);
+ if (TRACE_ILLWRITE) logerror("%s: Write access to cartridge ROM at address %04x ignored", tag(), offset);
}
else
{
@@ -1674,7 +1683,7 @@ READ8Z_MEMBER(ti99_super_cartridge::crureadz)
if ((offset & 0xfff0) == 0x0800)
{
- if (VERBOSE>2) LOG("ti99_super_cartridge: CRU accessed at %04x\n", offset);
+ if (TRACE_CRU) logerror("%s: CRU accessed at %04x\n", tag(), offset);
UINT8 val = 0x02 << (m_ram_page << 1);
*value = (val >> ((offset - 0x0800)>>1)) & 0xff;
}
@@ -1684,7 +1693,7 @@ WRITE8_MEMBER(ti99_super_cartridge::cruwrite)
{
if ((offset & 0xfff0) == 0x0800)
{
- if (VERBOSE>2) LOG("ti99_super_cartridge: CRU accessed at %04x\n", offset);
+ if (TRACE_CRU) logerror("%s: CRU accessed at %04x\n", tag(), offset);
if (data != 0)
m_ram_page = (offset-0x0802)>>2;
}
@@ -1824,6 +1833,64 @@ WRITE8_MEMBER(ti99_paged379i_cartridge::write)
}
/*****************************************************************************
+ Cartridge type: paged378
+ This type is intended for high-capacity cartridges of up to 512 KiB
+ plus GROM space of 120KiB (not supported yet)
+
+ Due to its huge GROM space it is also called the "UberGROM"
+
+ The cartridge may also be used without GROM.
+
+ The selection scheme is much simpler than in the 379i type.
+
+******************************************************************************/
+
+/* Read function for the paged378 cartridge. */
+READ8Z_MEMBER(ti99_paged378_cartridge::readz)
+{
+ if ((offset & 0xe000)==0x6000)
+ *value = m_rom_ptr[(m_rom_page<<13) | (offset & 0x1fff)];
+}
+
+/* Write function for the paged378 cartridge. Only used to set the bank. */
+WRITE8_MEMBER(ti99_paged378_cartridge::write)
+{
+ // Bits: 0110 0000 0bbb bbbx
+ // x = don't care, bbbb = bank
+ if ((offset & 0xff80)==0x6000)
+ {
+ // Set bank
+ m_rom_page = ((offset >> 1)&0x003f);
+ }
+}
+
+/*****************************************************************************
+ Cartridge type: paged377
+ This type is intended for high-capacity cartridges of up to 2 MiB
+
+ The paged379i cartrige does not have any GROMs.
+******************************************************************************/
+
+/* Read function for the paged377 cartridge. */
+READ8Z_MEMBER(ti99_paged377_cartridge::readz)
+{
+ if ((offset & 0xe000)==0x6000)
+ *value = m_rom_ptr[(m_rom_page<<13) | (offset & 0x1fff)];
+}
+
+/* Write function for the paged377 cartridge. Only used to set the bank. */
+WRITE8_MEMBER(ti99_paged377_cartridge::write)
+{
+ // Bits: 0110 000b bbbb bbbx
+ // x = don't care, bbbb = bank
+ if ((offset & 0xfe00)==0x6000)
+ {
+ // Set bank
+ m_rom_page = ((offset >> 1)&0x00ff);
+ }
+}
+
+/*****************************************************************************
Cartridge type: pagedcru
This cartridge consists of one 16 KiB, 32 KiB, or 64 KiB EEPROM which is
organised in 2, 4, or 8 pages of 8 KiB each. We assume there is only one
@@ -1933,20 +2000,13 @@ READ8Z_MEMBER(ti99_gromemu_cartridge::readz)
}
if (m_rom_ptr == NULL) return;
- if (m_rom_page==0)
- {
- *value = m_rom_ptr[offset & 0x1fff];
- }
- else
- {
- *value = m_rom2_ptr[offset & 0x1fff];
- }
+ *value = m_rom_ptr[(offset & 0x1fff) | (m_rom_page << 13)];
}
}
WRITE8_MEMBER(ti99_gromemu_cartridge::write)
{
- // LOG("write standard\n");
+ // logerror("%s: write standard\n", tag());
if ((offset & grom_mask())==grom_base())
gromemuwrite(space, offset, data, mem_mask);
@@ -1991,7 +2051,7 @@ WRITE8_MEMBER(ti99_gromemu_cartridge::gromemuwrite)
// Accept low address byte (second write)
m_grom_address = (m_grom_address & 0xff00) | data;
m_waddr_LSB = false;
- if (VERBOSE>8) LOG("ti99_gromemu_cartridge: set grom address %04x\n", m_grom_address);
+ if (TRACE_GROM) logerror("%s: Set grom address %04x\n", tag(), m_grom_address);
}
else
{
@@ -2001,7 +2061,7 @@ WRITE8_MEMBER(ti99_gromemu_cartridge::gromemuwrite)
}
}
else {
- if (VERBOSE>2) LOG("ti99_gromemu_cartridge: ignoring write to GROM area at address %04x\n", m_grom_address);
+ if (TRACE_ILLWRITE) logerror("%s: Ignoring write to GROM area at address %04x\n", tag(), m_grom_address);
}
}
@@ -2070,7 +2130,7 @@ rpk::rpk(emu_options& options, const char* sysname)
rpk::~rpk()
{
- if (VERBOSE>6) LOG("rpk: Destroy RPK\n");
+ if (TRACE_RPK) logerror("gromport/RPK: Destroy RPK\n");
}
/*
@@ -2178,7 +2238,7 @@ rpk_socket* rpk_reader::load_rom_resource(zip_file* zip, xml_data_node* rom_reso
file = xml_get_attribute_string(rom_resource_node, "file", NULL);
if (file == NULL) throw rpk_exception(RPK_INVALID_LAYOUT, "<rom> must have a 'file' attribute");
- if (VERBOSE>6) LOG("gromport/RPK: Loading ROM contents for socket '%s' from file %s\n", socketname, file);
+ if (TRACE_RPK) logerror("gromport/RPK: Loading ROM contents for socket '%s' from file %s\n", socketname, file);
// check for crc
crcstr = xml_get_attribute_string(rom_resource_node, "crc", NULL);
@@ -2266,7 +2326,7 @@ rpk_socket* rpk_reader::load_ram_resource(emu_options &options, xml_data_node* r
contents = global_alloc_array_clear(UINT8, length);
if (contents==NULL) throw rpk_exception(RPK_OUT_OF_MEMORY);
- if (VERBOSE>6) LOG("gromport/RPK: Allocating RAM buffer (%d bytes) for socket '%s'\n", length, socketname);
+ if (TRACE_RPK) logerror("gromport/RPK: Allocating RAM buffer (%d bytes) for socket '%s'\n", length, socketname);
ram_pname = NULL;
@@ -2288,7 +2348,7 @@ rpk_socket* rpk_reader::load_ram_resource(emu_options &options, xml_data_node* r
std::string ram_pathname = std::string(system_name).append(PATH_SEPARATOR).append(ram_filename);
ram_pname = core_strdup(ram_pathname.c_str());
// load, and fill rest with 00
- if (VERBOSE>6) LOG("gromport/RPK: Loading NVRAM contents from '%s'\n", ram_pname);
+ if (TRACE_RPK) logerror("gromport/RPK: Loading NVRAM contents from '%s'\n", ram_pname);
image_battery_load_by_name(options, ram_pname, contents, length, 0x00);
}
}
@@ -2378,7 +2438,7 @@ rpk* rpk_reader::open(emu_options &options, const char *filename, const char *sy
// We'll try to find the PCB type on the provided type list.
pcb_type = xml_get_attribute_string(pcb_node, "type", NULL);
if (pcb_type==NULL) throw rpk_exception(RPK_INVALID_LAYOUT, "<pcb> must have a 'type' attribute");
- if (VERBOSE>6) LOG("gromport/RPK: Cartridge says it has PCB type '%s'\n", pcb_type);
+ if (TRACE_RPK) logerror("gromport/RPK: Cartridge says it has PCB type '%s'\n", pcb_type);
i=0;
do
diff --git a/src/mess/machine/ti99/gromport.h b/src/devices/bus/ti99x/gromport.h
index 367b68ba2b6..a6c0c1c3c8f 100644
--- a/src/mess/machine/ti99/gromport.h
+++ b/src/devices/bus/ti99x/gromport.h
@@ -282,6 +282,8 @@ protected:
void set_cartridge(ti99_cartridge_device *cart);
UINT16 grom_base();
UINT16 grom_mask();
+ const char* tag() { return m_tag; }
+ void set_tag(const char* tag) { m_tag = tag; }
ti99_cartridge_device* m_cart;
ti99_grom_device* m_grom[5];
@@ -290,12 +292,12 @@ protected:
int m_ram_size;
UINT8* m_rom_ptr;
- UINT8* m_rom2_ptr;
UINT8* m_ram_ptr;
int m_rom_page; // for some cartridge types
UINT8* m_grom_ptr; // for gromemu
int m_grom_address; // for gromemu
int m_ram_page; // for super
+ const char* m_tag;
private:
};
@@ -361,6 +363,30 @@ private:
int get_paged379i_bank(int rompage);
};
+/********************** Paged 378 ************************************/
+
+class ti99_paged378_cartridge : public ti99_cartridge_pcb
+{
+public:
+ ~ti99_paged378_cartridge() { };
+ DECLARE_READ8Z_MEMBER(readz);
+ DECLARE_WRITE8_MEMBER(write);
+private:
+ int get_paged378_bank(int rompage);
+};
+
+/********************** Paged 377 ************************************/
+
+class ti99_paged377_cartridge : public ti99_cartridge_pcb
+{
+public:
+ ~ti99_paged377_cartridge() { };
+ DECLARE_READ8Z_MEMBER(readz);
+ DECLARE_WRITE8_MEMBER(write);
+private:
+ int get_paged377_bank(int rompage);
+};
+
/********************** Paged CRU ************************************/
class ti99_pagedcru_cartridge : public ti99_cartridge_pcb
diff --git a/src/mess/machine/ti99/handset.c b/src/devices/bus/ti99x/handset.c
index 4b41ea0bd06..4b41ea0bd06 100644
--- a/src/mess/machine/ti99/handset.c
+++ b/src/devices/bus/ti99x/handset.c
diff --git a/src/mess/machine/ti99/handset.h b/src/devices/bus/ti99x/handset.h
index ccecd741034..ccecd741034 100644
--- a/src/mess/machine/ti99/handset.h
+++ b/src/devices/bus/ti99x/handset.h
diff --git a/src/mess/machine/ti99/joyport.c b/src/devices/bus/ti99x/joyport.c
index d49345e0b0a..d49345e0b0a 100644
--- a/src/mess/machine/ti99/joyport.c
+++ b/src/devices/bus/ti99x/joyport.c
diff --git a/src/mess/machine/ti99/joyport.h b/src/devices/bus/ti99x/joyport.h
index 6d19148fad7..6d19148fad7 100644
--- a/src/mess/machine/ti99/joyport.h
+++ b/src/devices/bus/ti99x/joyport.h
diff --git a/src/mess/machine/ti99/mecmouse.c b/src/devices/bus/ti99x/mecmouse.c
index 6afcec642d4..6afcec642d4 100644
--- a/src/mess/machine/ti99/mecmouse.c
+++ b/src/devices/bus/ti99x/mecmouse.c
diff --git a/src/mess/machine/ti99/mecmouse.h b/src/devices/bus/ti99x/mecmouse.h
index 8a915b681ab..8a915b681ab 100644
--- a/src/mess/machine/ti99/mecmouse.h
+++ b/src/devices/bus/ti99x/mecmouse.h
diff --git a/src/mess/machine/ti99/ti99defs.h b/src/devices/bus/ti99x/ti99defs.h
index fbb7c73645c..543b5ad04ba 100644
--- a/src/mess/machine/ti99/ti99defs.h
+++ b/src/devices/bus/ti99x/ti99defs.h
@@ -51,6 +51,8 @@
#define GMAPPER_TAG "gmapper"
#define GMOUSE_TAG "gmouse"
#define GCLOCK_TAG "mm58274c"
+#define PFM512_TAG "pfm512"
+#define PFM512A_TAG "pfm512a"
#define READ16Z_MEMBER(name) void name(ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT16 *value, ATTR_UNUSED UINT16 mem_mask)
#define DECLARE_READ16Z_MEMBER(name) void name(ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT16 *value, ATTR_UNUSED UINT16 mem_mask = 0xffff)
@@ -106,7 +108,9 @@ enum
enum
{
GENEVE_098 = 0,
- GENEVE_100 = 1
+ GENEVE_100,
+ GENEVE_PFM512,
+ GENEVE_PFM512A
};
#endif
diff --git a/src/mess/machine/ti99/videowrp.c b/src/devices/bus/ti99x/videowrp.c
index d42349947f8..d42349947f8 100644
--- a/src/mess/machine/ti99/videowrp.c
+++ b/src/devices/bus/ti99x/videowrp.c
diff --git a/src/mess/machine/ti99/videowrp.h b/src/devices/bus/ti99x/videowrp.h
index 3de151e92ff..c38a8e7f152 100644
--- a/src/mess/machine/ti99/videowrp.h
+++ b/src/devices/bus/ti99x/videowrp.h
@@ -165,7 +165,7 @@ protected:
#define MCFG_TI_V9938_ADD(_tag, _rate, _screen, _blank, _x, _y, _class, _int) \
MCFG_DEVICE_ADD(_tag, V9938VIDEO, 0) \
- MCFG_V9938_ADD(VDP_TAG, _screen, 0x20000) \
+ MCFG_V9938_ADD(VDP_TAG, _screen, 0x20000, XTAL_21_4772MHz) /* typical 9938 clock, not verified */ \
MCFG_V99X8_INTERRUPT_CALLBACK(WRITELINE(_class, _int)) \
MCFG_SCREEN_ADD(_screen, RASTER) \
MCFG_SCREEN_REFRESH_RATE(_rate) \
diff --git a/src/devices/bus/tiki100/8088.c b/src/devices/bus/tiki100/8088.c
new file mode 100644
index 00000000000..1065c856340
--- /dev/null
+++ b/src/devices/bus/tiki100/8088.c
@@ -0,0 +1,176 @@
+// license:BSD-3-Clause
+// copyright-holders:Curt Coder
+/**********************************************************************
+
+ TIKI-100 8/16 8088/8087 expansion card emulation
+
+**********************************************************************/
+
+#include "8088.h"
+
+
+
+//**************************************************************************
+// MACROS/CONSTANTS
+//**************************************************************************
+
+#define I8088_TAG "u3"
+
+
+
+//**************************************************************************
+// DEVICE DEFINITIONS
+//**************************************************************************
+
+const device_type TIKI100_8088 = &device_creator<tiki100_8088_t>;
+
+
+//-------------------------------------------------
+// ROM( tiki100_8088 )
+//-------------------------------------------------
+
+ROM_START( tiki100_8088 )
+ ROM_REGION( 0x1000, I8088_TAG, 0 )
+ ROM_LOAD( "boot 1.0.u3", 0x0000, 0x1000, CRC(436974aa) SHA1(837087b3ab982d047e4f15799fef3daa37dd6c01) )
+
+ ROM_REGION( 0x100, "u26", 0 )
+ ROM_LOAD( "53ls140.u26", 0x000, 0x100, CRC(fc5902e1) SHA1(afb9cb54ab6fc449e7544ddb3cbebc3770c4f937) )
+ROM_END
+
+
+//-------------------------------------------------
+// rom_region - device-specific ROM region
+//-------------------------------------------------
+
+const rom_entry *tiki100_8088_t::device_rom_region() const
+{
+ return ROM_NAME( tiki100_8088 );
+}
+
+
+static ADDRESS_MAP_START( i8088_mem, AS_PROGRAM, 8, tiki100_8088_t )
+ 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(0xff000, 0xfffff) AM_ROM AM_REGION(I8088_TAG, 0)
+ADDRESS_MAP_END
+
+
+static ADDRESS_MAP_START( i8088_io, AS_IO, 8, tiki100_8088_t )
+ AM_RANGE(0x7f, 0x7f) AM_READWRITE(read, write)
+ADDRESS_MAP_END
+
+
+//-------------------------------------------------
+// MACHINE_CONFIG_FRAGMENT( tiki100_8088 )
+//-------------------------------------------------
+
+static MACHINE_CONFIG_FRAGMENT( tiki100_8088 )
+ MCFG_CPU_ADD(I8088_TAG, I8088, 6000000)
+ MCFG_CPU_PROGRAM_MAP(i8088_mem)
+ MCFG_CPU_IO_MAP(i8088_io)
+MACHINE_CONFIG_END
+
+
+//-------------------------------------------------
+// machine_config_additions - device-specific
+// machine configurations
+//-------------------------------------------------
+
+machine_config_constructor tiki100_8088_t::device_mconfig_additions() const
+{
+ return MACHINE_CONFIG_NAME( tiki100_8088 );
+}
+
+
+
+//**************************************************************************
+// LIVE DEVICE
+//**************************************************************************
+
+//-------------------------------------------------
+// tiki100_8088_t - constructor
+//-------------------------------------------------
+
+tiki100_8088_t::tiki100_8088_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
+ device_t(mconfig, TIKI100_8088, "TIKI-100 8/16", tag, owner, clock, "tiki100_8088", __FILE__),
+ device_tiki100bus_card_interface(mconfig, *this),
+ m_maincpu(*this, I8088_TAG),
+ m_data(0)
+{
+}
+
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void tiki100_8088_t::device_start()
+{
+}
+
+
+//-------------------------------------------------
+// device_reset - device-specific reset
+//-------------------------------------------------
+
+void tiki100_8088_t::device_reset()
+{
+ m_maincpu->reset();
+
+ m_data = 0;
+}
+
+
+//-------------------------------------------------
+// tiki100bus_iorq_r - I/O read
+//-------------------------------------------------
+
+UINT8 tiki100_8088_t::iorq_r(address_space &space, offs_t offset, UINT8 data)
+{
+ if ((offset & 0xff) == 0x7f)
+ {
+ data = m_data;
+ }
+
+ return data;
+}
+
+
+//-------------------------------------------------
+// tiki100bus_iorq_w - I/O write
+//-------------------------------------------------
+
+void tiki100_8088_t::iorq_w(address_space &space, offs_t offset, UINT8 data)
+{
+ if ((offset & 0xff) == 0x7f)
+ {
+ m_data = data & 0x0f;
+
+ if (BIT(data, 5))
+ {
+ device_reset();
+ }
+ }
+}
+
+
+//-------------------------------------------------
+// read -
+//-------------------------------------------------
+
+READ8_MEMBER( tiki100_8088_t::read )
+{
+ return m_busak << 4 | m_data;
+}
+
+
+//-------------------------------------------------
+// write -
+//-------------------------------------------------
+
+WRITE8_MEMBER( tiki100_8088_t::write )
+{
+ m_data = data & 0x0f;
+
+ m_bus->busrq_w(BIT(data, 4));
+}
diff --git a/src/devices/bus/tiki100/8088.h b/src/devices/bus/tiki100/8088.h
new file mode 100644
index 00000000000..2700866a169
--- /dev/null
+++ b/src/devices/bus/tiki100/8088.h
@@ -0,0 +1,60 @@
+// license:BSD-3-Clause
+// copyright-holders:Curt Coder
+/**********************************************************************
+
+ TIKI-100 8/16 8088/8087 expansion card emulation
+
+**********************************************************************/
+
+#pragma once
+
+#ifndef __TIKI100_8088__
+#define __TIKI100_8088__
+
+#include "emu.h"
+#include "bus/tiki100/exp.h"
+#include "cpu/i86/i86.h"
+
+
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+// ======================> tiki100_8088_t
+
+class tiki100_8088_t : 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 clock);
+
+ // optional information overrides
+ virtual const rom_entry *device_rom_region() const;
+ virtual machine_config_constructor device_mconfig_additions() const;
+
+ DECLARE_READ8_MEMBER( read );
+ DECLARE_WRITE8_MEMBER( write );
+
+protected:
+ // device-level overrides
+ virtual void device_start();
+ virtual void device_reset();
+
+ // device_tiki100bus_card_interface overrides
+ virtual UINT8 iorq_r(address_space &space, offs_t offset, UINT8 data);
+ virtual void iorq_w(address_space &space, offs_t offset, UINT8 data);
+
+private:
+ required_device<i8088_cpu_device> m_maincpu;
+
+ UINT8 m_data;
+};
+
+
+// device type definition
+extern const device_type TIKI100_8088;
+
+
+#endif
diff --git a/src/devices/bus/tiki100/exp.c b/src/devices/bus/tiki100/exp.c
new file mode 100644
index 00000000000..3122ff5fc31
--- /dev/null
+++ b/src/devices/bus/tiki100/exp.c
@@ -0,0 +1,207 @@
+// license:BSD-3-Clause
+// copyright-holders:Curt Coder
+/**********************************************************************
+
+ TIKI-100 expansion bus emulation
+
+**********************************************************************/
+
+#include "exp.h"
+
+
+//**************************************************************************
+// DEVICE DEFINITIONS
+//**************************************************************************
+
+const device_type TIKI100_BUS = &device_creator<tiki100_bus_t>;
+const device_type TIKI100_BUS_SLOT = &device_creator<tiki100_bus_slot_t>;
+
+
+
+//**************************************************************************
+// LIVE DEVICE
+//**************************************************************************
+
+//-------------------------------------------------
+// tiki100_bus_slot_t - constructor
+//-------------------------------------------------
+
+tiki100_bus_slot_t::tiki100_bus_slot_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
+ device_t(mconfig, TIKI100_BUS_SLOT, "TIKI-100 expansion bus slot", tag, owner, clock, "tiki100bus_slot", __FILE__),
+ device_slot_interface(mconfig, *this),
+ device_z80daisy_interface(mconfig, *this)
+{
+}
+
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void tiki100_bus_slot_t::device_start()
+{
+ m_bus = machine().device<tiki100_bus_t>(TIKI100_BUS_TAG);
+ device_tiki100bus_card_interface *dev = dynamic_cast<device_tiki100bus_card_interface *>(get_card_device());
+ if (dev)
+ {
+ m_bus->add_card(dev);
+ m_card = dev;
+ }
+}
+
+
+//-------------------------------------------------
+// tiki100_bus_t - constructor
+//-------------------------------------------------
+
+tiki100_bus_t::tiki100_bus_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
+ device_t(mconfig, TIKI100_BUS, "TIKI-100 expansion bus", tag, owner, clock, "tiki100bus", __FILE__),
+ m_irq_cb(*this),
+ m_nmi_cb(*this),
+ m_busrq_cb(*this),
+ m_in_mrq_cb(*this),
+ m_out_mrq_cb(*this)
+{
+}
+
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void tiki100_bus_t::device_start()
+{
+ // resolve callbacks
+ m_irq_cb.resolve_safe();
+ m_nmi_cb.resolve_safe();
+ m_busrq_cb.resolve_safe();
+ m_in_mrq_cb.resolve();
+ m_out_mrq_cb.resolve();
+}
+
+
+//-------------------------------------------------
+// add_card - add card
+//-------------------------------------------------
+
+void tiki100_bus_t::add_card(device_tiki100bus_card_interface *card)
+{
+ m_device_list.append(*card);
+
+ card->m_bus = this;
+}
+
+
+//-------------------------------------------------
+// mrq_r - memory read
+//-------------------------------------------------
+
+UINT8 tiki100_bus_t::mrq_r(address_space &space, offs_t offset, UINT8 data, bool &mdis)
+{
+ device_tiki100bus_card_interface *entry = m_device_list.first();
+
+ while (entry)
+ {
+ data &= entry->mrq_r(space, offset, data, mdis);
+ entry = entry->next();
+ }
+
+ return data;
+}
+
+
+//-------------------------------------------------
+// mrq_w - memory write
+//-------------------------------------------------
+
+WRITE8_MEMBER( tiki100_bus_t::mrq_w )
+{
+ device_tiki100bus_card_interface *entry = m_device_list.first();
+
+ while (entry)
+ {
+ entry->mrq_w(space, offset, data);
+ entry = entry->next();
+ }
+}
+
+
+//-------------------------------------------------
+// iorq_r - I/O read
+//-------------------------------------------------
+
+UINT8 tiki100_bus_t::iorq_r(address_space &space, offs_t offset, UINT8 data)
+{
+ device_tiki100bus_card_interface *entry = m_device_list.first();
+
+ while (entry)
+ {
+ data &= entry->iorq_r(space, offset, data);
+ entry = entry->next();
+ }
+
+ return data;
+}
+
+
+//-------------------------------------------------
+// iorq_w - I/O write
+//-------------------------------------------------
+
+WRITE8_MEMBER( tiki100_bus_t::iorq_w )
+{
+ device_tiki100bus_card_interface *entry = m_device_list.first();
+
+ while (entry)
+ {
+ entry->iorq_w(space, offset, data);
+ entry = entry->next();
+ }
+}
+
+
+//-------------------------------------------------
+// busak_w - bus acknowledge write
+//-------------------------------------------------
+
+WRITE_LINE_MEMBER( tiki100_bus_t::busak_w )
+{
+ device_tiki100bus_card_interface *entry = m_device_list.first();
+
+ while (entry)
+ {
+ entry->busak_w(state);
+ entry = entry->next();
+ }
+}
+
+
+
+//**************************************************************************
+// DEVICE TIKI-100 BUS CARD INTERFACE
+//**************************************************************************
+
+//-------------------------------------------------
+// device_tiki100bus_card_interface - constructor
+//-------------------------------------------------
+
+device_tiki100bus_card_interface::device_tiki100bus_card_interface(const machine_config &mconfig, device_t &device) :
+ device_slot_card_interface(mconfig, device),
+ m_busak(CLEAR_LINE)
+{
+ m_slot = dynamic_cast<tiki100_bus_slot_t *>(device.owner());
+}
+
+
+//-------------------------------------------------
+// SLOT_INTERFACE( tiki100_cards )
+//-------------------------------------------------
+
+// slot devices
+#include "8088.h"
+#include "hdc.h"
+
+SLOT_INTERFACE_START( tiki100_cards )
+ SLOT_INTERFACE("8088", TIKI100_8088)
+ SLOT_INTERFACE("hdc", TIKI100_HDC)
+SLOT_INTERFACE_END
diff --git a/src/devices/bus/tiki100/exp.h b/src/devices/bus/tiki100/exp.h
new file mode 100644
index 00000000000..fc25c522c79
--- /dev/null
+++ b/src/devices/bus/tiki100/exp.h
@@ -0,0 +1,193 @@
+// license:BSD-3-Clause
+// copyright-holders:Curt Coder
+/**********************************************************************
+
+ TIKI-100 expansion bus emulation
+
+**********************************************************************
+
+
+**********************************************************************/
+
+#pragma once
+
+#ifndef __TIKI100_BUS__
+#define __TIKI100_BUS__
+
+#include "emu.h"
+#include "cpu/z80/z80daisy.h"
+
+
+
+//**************************************************************************
+// CONSTANTS
+//**************************************************************************
+
+#define TIKI100_BUS_TAG "tiki100bus"
+
+
+
+//**************************************************************************
+// INTERFACE CONFIGURATION MACROS
+//**************************************************************************
+
+#define MCFG_TIKI100_BUS_ADD() \
+ MCFG_DEVICE_ADD(TIKI100_BUS_TAG, TIKI100_BUS, 0)
+
+#define MCFG_TIKI100_BUS_SLOT_ADD(_tag, _def_slot) \
+ MCFG_DEVICE_ADD(_tag, TIKI100_BUS_SLOT, 0) \
+ MCFG_DEVICE_SLOT_INTERFACE(tiki100_cards, _def_slot, false)
+
+
+#define MCFG_TIKI100_BUS_IRQ_CALLBACK(_write) \
+ devcb = &tiki100_bus_t::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);
+
+#define MCFG_TIKI100_BUS_BUSRQ_CALLBACK(_write) \
+ devcb = &tiki100_bus_t::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);
+
+#define MCFG_TIKI100_BUS_OUT_MREQ_CALLBACK(_write) \
+ devcb = &tiki100_bus_t::set_mrq_wr_callback(*device, DEVCB_##_write);
+
+
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+// ======================> tiki100_bus_slot_t
+
+class tiki100_bus_t;
+class tiki100_bus_slot_t;
+
+
+// ======================> device_tiki100bus_card_interface
+
+class device_tiki100bus_card_interface : public device_slot_card_interface
+{
+ friend class tiki100_bus_t;
+
+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 mrq_r(address_space &space, offs_t offset, UINT8 data, bool &mdis) { mdis = 1; return data; };
+ virtual void mrq_w(address_space &space, offs_t offset, UINT8 data) { };
+
+ // I/O access
+ virtual UINT8 iorq_r(address_space &space, offs_t offset, UINT8 data) { return data; };
+ virtual void iorq_w(address_space &space, offs_t offset, UINT8 data) { };
+
+ 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;
+ int m_busak;
+
+ device_tiki100bus_card_interface *m_next;
+};
+
+
+// ======================> tiki100_bus_slot_t
+
+class tiki100_bus_slot_t : 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 clock);
+
+ // device-level overrides
+ virtual void device_start();
+
+protected:
+ // device_z80daisy_interface overrides
+ virtual int z80daisy_irq_state() { return get_card_device() ? m_card->z80daisy_irq_state() : 0; }
+ virtual int z80daisy_irq_ack() { return get_card_device() ? m_card->z80daisy_irq_ack() : 0; }
+ virtual void z80daisy_irq_reti() { if (get_card_device()) m_card->z80daisy_irq_reti(); }
+
+private:
+ // configuration
+ tiki100_bus_t *m_bus;
+ device_tiki100bus_card_interface *m_card;
+};
+
+
+// device type definition
+extern const device_type TIKI100_BUS_SLOT;
+
+
+// ======================> tiki100_bus_t
+
+class tiki100_bus_t : public device_t
+{
+public:
+ // construction/destruction
+ tiki100_bus_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+ ~tiki100_bus_t() { m_device_list.detach_all(); }
+
+ template<class _Object> static devcb_base &set_irq_wr_callback(device_t &device, _Object object) { return downcast<tiki100_bus_t &>(device).m_irq_cb.set_callback(object); }
+ template<class _Object> static devcb_base &set_nmi_wr_callback(device_t &device, _Object object) { return downcast<tiki100_bus_t &>(device).m_nmi_cb.set_callback(object); }
+ template<class _Object> static devcb_base &set_busrq_wr_callback(device_t &device, _Object object) { return downcast<tiki100_bus_t &>(device).m_busrq_cb.set_callback(object); }
+ template<class _Object> static devcb_base &set_mrq_rd_callback(device_t &device, _Object object) { return downcast<tiki100_bus_t &>(device).m_in_mrq_cb.set_callback(object); }
+ template<class _Object> static devcb_base &set_mrq_wr_callback(device_t &device, _Object object) { return downcast<tiki100_bus_t &>(device).m_out_mrq_cb.set_callback(object); }
+
+ void add_card(device_tiki100bus_card_interface *card);
+
+ // computer interface
+ UINT8 mrq_r(address_space &space, offs_t offset, UINT8 data, bool &mdis);
+ DECLARE_WRITE8_MEMBER( mrq_w );
+
+ UINT8 iorq_r(address_space &space, offs_t offset, UINT8 data);
+ DECLARE_WRITE8_MEMBER( iorq_w );
+
+ DECLARE_WRITE_LINE_MEMBER( busak_w );
+
+ // peripheral interface
+ DECLARE_WRITE_LINE_MEMBER( irq_w ) { m_irq_cb(state); }
+ DECLARE_WRITE_LINE_MEMBER( nmi_w ) { m_nmi_cb(state); }
+ DECLARE_WRITE_LINE_MEMBER( busrq_w ) { m_busrq_cb(state); }
+ DECLARE_READ8_MEMBER( exin_mrq_r ) { return m_in_mrq_cb(offset); }
+ DECLARE_WRITE8_MEMBER( exin_mrq_w ) { m_out_mrq_cb(offset, data); }
+
+protected:
+ // device-level overrides
+ virtual void device_start();
+
+private:
+ devcb_write_line m_irq_cb;
+ devcb_write_line m_nmi_cb;
+ devcb_write_line m_busrq_cb;
+ devcb_read8 m_in_mrq_cb;
+ devcb_write8 m_out_mrq_cb;
+
+ simple_list<device_tiki100bus_card_interface> m_device_list;
+};
+
+
+// device type definition
+extern const device_type TIKI100_BUS;
+
+
+
+
+SLOT_INTERFACE_EXTERN( tiki100_cards );
+
+
+
+#endif
diff --git a/src/devices/bus/tiki100/hdc.c b/src/devices/bus/tiki100/hdc.c
new file mode 100644
index 00000000000..2b978635ead
--- /dev/null
+++ b/src/devices/bus/tiki100/hdc.c
@@ -0,0 +1,118 @@
+// license:BSD-3-Clause
+// copyright-holders:Curt Coder
+/**********************************************************************
+
+ TIKI-100 Winchester controller card emulation
+
+**********************************************************************/
+
+#include "hdc.h"
+
+
+
+//**************************************************************************
+// MACROS/CONSTANTS
+//**************************************************************************
+
+#define WD1010_TAG "hdc"
+
+
+
+//**************************************************************************
+// DEVICE DEFINITIONS
+//**************************************************************************
+
+const device_type TIKI100_HDC = &device_creator<tiki100_hdc_t>;
+
+
+//-------------------------------------------------
+// MACHINE_CONFIG_FRAGMENT( tiki100_hdc )
+//-------------------------------------------------
+
+static MACHINE_CONFIG_FRAGMENT( tiki100_hdc )
+ MCFG_DEVICE_ADD(WD1010_TAG, WD2010, 5000000)
+ //MCFG_WD2010_OUT_INTRQ_CB()
+ MCFG_WD2010_IN_DRDY_CB(VCC)
+ MCFG_WD2010_IN_INDEX_CB(VCC)
+ MCFG_WD2010_IN_WF_CB(VCC)
+ MCFG_WD2010_IN_TK000_CB(VCC)
+ MCFG_WD2010_IN_SC_CB(VCC)
+
+ MCFG_HARDDISK_ADD("hard0")
+ MCFG_HARDDISK_ADD("hard1")
+MACHINE_CONFIG_END
+
+
+//-------------------------------------------------
+// machine_config_additions - device-specific
+// machine configurations
+//-------------------------------------------------
+
+machine_config_constructor tiki100_hdc_t::device_mconfig_additions() const
+{
+ return MACHINE_CONFIG_NAME( tiki100_hdc );
+}
+
+
+
+//**************************************************************************
+// LIVE DEVICE
+//**************************************************************************
+
+//-------------------------------------------------
+// tiki100_hdc_t - constructor
+//-------------------------------------------------
+
+tiki100_hdc_t::tiki100_hdc_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
+ device_t(mconfig, TIKI100_HDC, "TIKI-100 Winchester controller", tag, owner, clock, "tiki100_hdc", __FILE__),
+ device_tiki100bus_card_interface(mconfig, *this),
+ m_hdc(*this, WD1010_TAG)
+{
+}
+
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void tiki100_hdc_t::device_start()
+{
+}
+
+
+//-------------------------------------------------
+// device_reset - device-specific reset
+//-------------------------------------------------
+
+void tiki100_hdc_t::device_reset()
+{
+ m_hdc->reset();
+}
+
+
+//-------------------------------------------------
+// tiki100bus_iorq_r - I/O read
+//-------------------------------------------------
+
+UINT8 tiki100_hdc_t::iorq_r(address_space &space, offs_t offset, UINT8 data)
+{
+ if ((offset & 0xf8) == 0x20)
+ {
+ data = m_hdc->read(space, offset & 0x07);
+ }
+
+ return data;
+}
+
+
+//-------------------------------------------------
+// tiki100bus_iorq_w - I/O write
+//-------------------------------------------------
+
+void tiki100_hdc_t::iorq_w(address_space &space, offs_t offset, UINT8 data)
+{
+ if ((offset & 0xf8) == 0x20)
+ {
+ m_hdc->write(space, offset, data);
+ }
+}
diff --git a/src/devices/bus/tiki100/hdc.h b/src/devices/bus/tiki100/hdc.h
new file mode 100644
index 00000000000..d06342fc66c
--- /dev/null
+++ b/src/devices/bus/tiki100/hdc.h
@@ -0,0 +1,55 @@
+// license:BSD-3-Clause
+// copyright-holders:Curt Coder
+/**********************************************************************
+
+ TIKI-100 Winchester controller card emulation
+
+**********************************************************************/
+
+#pragma once
+
+#ifndef __TIKI100_HDC__
+#define __TIKI100_HDC__
+
+#include "emu.h"
+#include "bus/tiki100/exp.h"
+#include "imagedev/harddriv.h"
+#include "machine/wd2010.h"
+
+
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+// ======================> tiki100_hdc_t
+
+class tiki100_hdc_t : 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 clock);
+
+ // optional information overrides
+ virtual machine_config_constructor device_mconfig_additions() const;
+
+protected:
+ // device-level overrides
+ virtual void device_start();
+ virtual void device_reset();
+
+ // device_tiki100bus_card_interface overrides
+ virtual UINT8 iorq_r(address_space &space, offs_t offset, UINT8 data);
+ virtual void iorq_w(address_space &space, offs_t offset, UINT8 data);
+
+private:
+ required_device<wd2010_device> m_hdc;
+};
+
+
+// device type definition
+extern const device_type TIKI100_HDC;
+
+
+#endif
diff --git a/src/emu/bus/tvc/hbf.c b/src/devices/bus/tvc/hbf.c
index 760226a2cfb..760226a2cfb 100644
--- a/src/emu/bus/tvc/hbf.c
+++ b/src/devices/bus/tvc/hbf.c
diff --git a/src/emu/bus/tvc/hbf.h b/src/devices/bus/tvc/hbf.h
index 6a321ae5599..6a321ae5599 100644
--- a/src/emu/bus/tvc/hbf.h
+++ b/src/devices/bus/tvc/hbf.h
diff --git a/src/emu/bus/tvc/tvc.c b/src/devices/bus/tvc/tvc.c
index 54ea47c9149..54ea47c9149 100644
--- a/src/emu/bus/tvc/tvc.c
+++ b/src/devices/bus/tvc/tvc.c
diff --git a/src/emu/bus/tvc/tvc.h b/src/devices/bus/tvc/tvc.h
index 181806f8195..181806f8195 100644
--- a/src/emu/bus/tvc/tvc.h
+++ b/src/devices/bus/tvc/tvc.h
diff --git a/src/emu/bus/vboy/rom.c b/src/devices/bus/vboy/rom.c
index 587be158610..587be158610 100644
--- a/src/emu/bus/vboy/rom.c
+++ b/src/devices/bus/vboy/rom.c
diff --git a/src/emu/bus/vboy/rom.h b/src/devices/bus/vboy/rom.h
index 0f26468892b..0f26468892b 100644
--- a/src/emu/bus/vboy/rom.h
+++ b/src/devices/bus/vboy/rom.h
diff --git a/src/emu/bus/vboy/slot.c b/src/devices/bus/vboy/slot.c
index da00aeaca04..da00aeaca04 100644
--- a/src/emu/bus/vboy/slot.c
+++ b/src/devices/bus/vboy/slot.c
diff --git a/src/emu/bus/vboy/slot.h b/src/devices/bus/vboy/slot.h
index e865eece213..e865eece213 100644
--- a/src/emu/bus/vboy/slot.h
+++ b/src/devices/bus/vboy/slot.h
diff --git a/src/emu/bus/vc4000/rom.c b/src/devices/bus/vc4000/rom.c
index 5c8ebf5c7bb..5c8ebf5c7bb 100644
--- a/src/emu/bus/vc4000/rom.c
+++ b/src/devices/bus/vc4000/rom.c
diff --git a/src/emu/bus/vc4000/rom.h b/src/devices/bus/vc4000/rom.h
index ae4502f57a2..ae4502f57a2 100644
--- a/src/emu/bus/vc4000/rom.h
+++ b/src/devices/bus/vc4000/rom.h
diff --git a/src/emu/bus/vc4000/slot.c b/src/devices/bus/vc4000/slot.c
index 2c353ef90b6..2c353ef90b6 100644
--- a/src/emu/bus/vc4000/slot.c
+++ b/src/devices/bus/vc4000/slot.c
diff --git a/src/emu/bus/vc4000/slot.h b/src/devices/bus/vc4000/slot.h
index 62cf4655f89..62cf4655f89 100644
--- a/src/emu/bus/vc4000/slot.h
+++ b/src/devices/bus/vc4000/slot.h
diff --git a/src/emu/bus/vcs/compumat.c b/src/devices/bus/vcs/compumat.c
index 4fc7d9cba5b..4fc7d9cba5b 100644
--- a/src/emu/bus/vcs/compumat.c
+++ b/src/devices/bus/vcs/compumat.c
diff --git a/src/emu/bus/vcs/compumat.h b/src/devices/bus/vcs/compumat.h
index 80f1df069fd..80f1df069fd 100644
--- a/src/emu/bus/vcs/compumat.h
+++ b/src/devices/bus/vcs/compumat.h
diff --git a/src/emu/bus/vcs/dpc.c b/src/devices/bus/vcs/dpc.c
index f0787b6bcb4..f0787b6bcb4 100644
--- a/src/emu/bus/vcs/dpc.c
+++ b/src/devices/bus/vcs/dpc.c
diff --git a/src/emu/bus/vcs/dpc.h b/src/devices/bus/vcs/dpc.h
index 9e04ddb2e67..9e04ddb2e67 100644
--- a/src/emu/bus/vcs/dpc.h
+++ b/src/devices/bus/vcs/dpc.h
diff --git a/src/emu/bus/vcs/rom.c b/src/devices/bus/vcs/rom.c
index b689db7094e..b689db7094e 100755
--- a/src/emu/bus/vcs/rom.c
+++ b/src/devices/bus/vcs/rom.c
diff --git a/src/emu/bus/vcs/rom.h b/src/devices/bus/vcs/rom.h
index 2d7b73586be..2d7b73586be 100755
--- a/src/emu/bus/vcs/rom.h
+++ b/src/devices/bus/vcs/rom.h
diff --git a/src/emu/bus/vcs/scharger.c b/src/devices/bus/vcs/scharger.c
index a3d90391ce9..a3d90391ce9 100644
--- a/src/emu/bus/vcs/scharger.c
+++ b/src/devices/bus/vcs/scharger.c
diff --git a/src/emu/bus/vcs/scharger.h b/src/devices/bus/vcs/scharger.h
index d2f669b0bbd..d2f669b0bbd 100644
--- a/src/emu/bus/vcs/scharger.h
+++ b/src/devices/bus/vcs/scharger.h
diff --git a/src/emu/bus/vcs/vcs_slot.c b/src/devices/bus/vcs/vcs_slot.c
index d04f45a195e..d04f45a195e 100755
--- a/src/emu/bus/vcs/vcs_slot.c
+++ b/src/devices/bus/vcs/vcs_slot.c
diff --git a/src/emu/bus/vcs/vcs_slot.h b/src/devices/bus/vcs/vcs_slot.h
index 9b087988d80..9b087988d80 100755
--- a/src/emu/bus/vcs/vcs_slot.h
+++ b/src/devices/bus/vcs/vcs_slot.h
diff --git a/src/emu/bus/vcs_ctrl/ctrl.c b/src/devices/bus/vcs_ctrl/ctrl.c
index 07afbb93cb1..07afbb93cb1 100644
--- a/src/emu/bus/vcs_ctrl/ctrl.c
+++ b/src/devices/bus/vcs_ctrl/ctrl.c
diff --git a/src/emu/bus/vcs_ctrl/ctrl.h b/src/devices/bus/vcs_ctrl/ctrl.h
index 50f817a2a01..50f817a2a01 100644
--- a/src/emu/bus/vcs_ctrl/ctrl.h
+++ b/src/devices/bus/vcs_ctrl/ctrl.h
diff --git a/src/emu/bus/vcs_ctrl/joybooster.c b/src/devices/bus/vcs_ctrl/joybooster.c
index e1fbfec7c90..e1fbfec7c90 100644
--- a/src/emu/bus/vcs_ctrl/joybooster.c
+++ b/src/devices/bus/vcs_ctrl/joybooster.c
diff --git a/src/emu/bus/vcs_ctrl/joybooster.h b/src/devices/bus/vcs_ctrl/joybooster.h
index 3b08f8b9577..3b08f8b9577 100644
--- a/src/emu/bus/vcs_ctrl/joybooster.h
+++ b/src/devices/bus/vcs_ctrl/joybooster.h
diff --git a/src/emu/bus/vcs_ctrl/joystick.c b/src/devices/bus/vcs_ctrl/joystick.c
index f1539eabeef..f1539eabeef 100644
--- a/src/emu/bus/vcs_ctrl/joystick.c
+++ b/src/devices/bus/vcs_ctrl/joystick.c
diff --git a/src/emu/bus/vcs_ctrl/joystick.h b/src/devices/bus/vcs_ctrl/joystick.h
index 9e4d6eebed5..9e4d6eebed5 100644
--- a/src/emu/bus/vcs_ctrl/joystick.h
+++ b/src/devices/bus/vcs_ctrl/joystick.h
diff --git a/src/emu/bus/vcs_ctrl/keypad.c b/src/devices/bus/vcs_ctrl/keypad.c
index 0ef8b6b4db3..0ef8b6b4db3 100644
--- a/src/emu/bus/vcs_ctrl/keypad.c
+++ b/src/devices/bus/vcs_ctrl/keypad.c
diff --git a/src/emu/bus/vcs_ctrl/keypad.h b/src/devices/bus/vcs_ctrl/keypad.h
index 8c1cc25dbee..8c1cc25dbee 100644
--- a/src/emu/bus/vcs_ctrl/keypad.h
+++ b/src/devices/bus/vcs_ctrl/keypad.h
diff --git a/src/emu/bus/vcs_ctrl/lightpen.c b/src/devices/bus/vcs_ctrl/lightpen.c
index 8531930b2a1..8531930b2a1 100644
--- a/src/emu/bus/vcs_ctrl/lightpen.c
+++ b/src/devices/bus/vcs_ctrl/lightpen.c
diff --git a/src/emu/bus/vcs_ctrl/lightpen.h b/src/devices/bus/vcs_ctrl/lightpen.h
index 61849e789ad..61849e789ad 100644
--- a/src/emu/bus/vcs_ctrl/lightpen.h
+++ b/src/devices/bus/vcs_ctrl/lightpen.h
diff --git a/src/emu/bus/vcs_ctrl/paddles.c b/src/devices/bus/vcs_ctrl/paddles.c
index b8a4f4a6de5..b8a4f4a6de5 100644
--- a/src/emu/bus/vcs_ctrl/paddles.c
+++ b/src/devices/bus/vcs_ctrl/paddles.c
diff --git a/src/emu/bus/vcs_ctrl/paddles.h b/src/devices/bus/vcs_ctrl/paddles.h
index 90e8dc910ab..90e8dc910ab 100644
--- a/src/emu/bus/vcs_ctrl/paddles.h
+++ b/src/devices/bus/vcs_ctrl/paddles.h
diff --git a/src/emu/bus/vcs_ctrl/wheel.c b/src/devices/bus/vcs_ctrl/wheel.c
index 9d1f3009596..9d1f3009596 100644
--- a/src/emu/bus/vcs_ctrl/wheel.c
+++ b/src/devices/bus/vcs_ctrl/wheel.c
diff --git a/src/emu/bus/vcs_ctrl/wheel.h b/src/devices/bus/vcs_ctrl/wheel.h
index 5ae4fc8a9d7..5ae4fc8a9d7 100644
--- a/src/emu/bus/vcs_ctrl/wheel.h
+++ b/src/devices/bus/vcs_ctrl/wheel.h
diff --git a/src/emu/bus/vectrex/rom.c b/src/devices/bus/vectrex/rom.c
index 866fd741f9a..866fd741f9a 100644
--- a/src/emu/bus/vectrex/rom.c
+++ b/src/devices/bus/vectrex/rom.c
diff --git a/src/emu/bus/vectrex/rom.h b/src/devices/bus/vectrex/rom.h
index eac8ef812f3..eac8ef812f3 100644
--- a/src/emu/bus/vectrex/rom.h
+++ b/src/devices/bus/vectrex/rom.h
diff --git a/src/emu/bus/vectrex/slot.c b/src/devices/bus/vectrex/slot.c
index 932248c22ce..932248c22ce 100644
--- a/src/emu/bus/vectrex/slot.c
+++ b/src/devices/bus/vectrex/slot.c
diff --git a/src/emu/bus/vectrex/slot.h b/src/devices/bus/vectrex/slot.h
index e2f5d3cdbe5..e2f5d3cdbe5 100644
--- a/src/emu/bus/vectrex/slot.h
+++ b/src/devices/bus/vectrex/slot.h
diff --git a/src/emu/bus/vic10/exp.c b/src/devices/bus/vic10/exp.c
index c6d7a43c6bb..c6d7a43c6bb 100644
--- a/src/emu/bus/vic10/exp.c
+++ b/src/devices/bus/vic10/exp.c
diff --git a/src/emu/bus/vic10/exp.h b/src/devices/bus/vic10/exp.h
index 26e5f6c1e45..26e5f6c1e45 100644
--- a/src/emu/bus/vic10/exp.h
+++ b/src/devices/bus/vic10/exp.h
diff --git a/src/emu/bus/vic10/std.c b/src/devices/bus/vic10/std.c
index a0cd1aa67cf..a0cd1aa67cf 100644
--- a/src/emu/bus/vic10/std.c
+++ b/src/devices/bus/vic10/std.c
diff --git a/src/emu/bus/vic10/std.h b/src/devices/bus/vic10/std.h
index cdbaef140de..cdbaef140de 100644
--- a/src/emu/bus/vic10/std.h
+++ b/src/devices/bus/vic10/std.h
diff --git a/src/emu/bus/vic20/4cga.c b/src/devices/bus/vic20/4cga.c
index 67901823065..67901823065 100644
--- a/src/emu/bus/vic20/4cga.c
+++ b/src/devices/bus/vic20/4cga.c
diff --git a/src/emu/bus/vic20/4cga.h b/src/devices/bus/vic20/4cga.h
index b852c5e0958..b852c5e0958 100644
--- a/src/emu/bus/vic20/4cga.h
+++ b/src/devices/bus/vic20/4cga.h
diff --git a/src/emu/bus/vic20/exp.c b/src/devices/bus/vic20/exp.c
index bab88756ff5..bab88756ff5 100644
--- a/src/emu/bus/vic20/exp.c
+++ b/src/devices/bus/vic20/exp.c
diff --git a/src/emu/bus/vic20/exp.h b/src/devices/bus/vic20/exp.h
index 8dfd840fa22..8dfd840fa22 100644
--- a/src/emu/bus/vic20/exp.h
+++ b/src/devices/bus/vic20/exp.h
diff --git a/src/emu/bus/vic20/fe3.c b/src/devices/bus/vic20/fe3.c
index 6b9cc319cd4..6b9cc319cd4 100644
--- a/src/emu/bus/vic20/fe3.c
+++ b/src/devices/bus/vic20/fe3.c
diff --git a/src/emu/bus/vic20/fe3.h b/src/devices/bus/vic20/fe3.h
index f42ae0e2f94..f42ae0e2f94 100644
--- a/src/emu/bus/vic20/fe3.h
+++ b/src/devices/bus/vic20/fe3.h
diff --git a/src/emu/bus/vic20/megacart.c b/src/devices/bus/vic20/megacart.c
index e92e1dbbc55..e92e1dbbc55 100644
--- a/src/emu/bus/vic20/megacart.c
+++ b/src/devices/bus/vic20/megacart.c
diff --git a/src/emu/bus/vic20/megacart.h b/src/devices/bus/vic20/megacart.h
index 5e9f82b10bf..5e9f82b10bf 100644
--- a/src/emu/bus/vic20/megacart.h
+++ b/src/devices/bus/vic20/megacart.h
diff --git a/src/emu/bus/vic20/std.c b/src/devices/bus/vic20/std.c
index 4757470b093..4757470b093 100644
--- a/src/emu/bus/vic20/std.c
+++ b/src/devices/bus/vic20/std.c
diff --git a/src/emu/bus/vic20/std.h b/src/devices/bus/vic20/std.h
index e7a70d338e5..e7a70d338e5 100644
--- a/src/emu/bus/vic20/std.h
+++ b/src/devices/bus/vic20/std.h
diff --git a/src/emu/bus/vic20/user.c b/src/devices/bus/vic20/user.c
index f810cddc46e..f810cddc46e 100644
--- a/src/emu/bus/vic20/user.c
+++ b/src/devices/bus/vic20/user.c
diff --git a/src/emu/bus/vic20/user.h b/src/devices/bus/vic20/user.h
index 2273a744917..2273a744917 100644
--- a/src/emu/bus/vic20/user.h
+++ b/src/devices/bus/vic20/user.h
diff --git a/src/emu/bus/vic20/vic1010.c b/src/devices/bus/vic20/vic1010.c
index 98fd3552afa..98fd3552afa 100644
--- a/src/emu/bus/vic20/vic1010.c
+++ b/src/devices/bus/vic20/vic1010.c
diff --git a/src/emu/bus/vic20/vic1010.h b/src/devices/bus/vic20/vic1010.h
index 56f194635b8..56f194635b8 100644
--- a/src/emu/bus/vic20/vic1010.h
+++ b/src/devices/bus/vic20/vic1010.h
diff --git a/src/emu/bus/vic20/vic1011.c b/src/devices/bus/vic20/vic1011.c
index 402a44f41df..402a44f41df 100644
--- a/src/emu/bus/vic20/vic1011.c
+++ b/src/devices/bus/vic20/vic1011.c
diff --git a/src/emu/bus/vic20/vic1011.h b/src/devices/bus/vic20/vic1011.h
index 9ec16e5fd2a..9ec16e5fd2a 100644
--- a/src/emu/bus/vic20/vic1011.h
+++ b/src/devices/bus/vic20/vic1011.h
diff --git a/src/emu/bus/vic20/vic1110.c b/src/devices/bus/vic20/vic1110.c
index c8d9acb1398..c8d9acb1398 100644
--- a/src/emu/bus/vic20/vic1110.c
+++ b/src/devices/bus/vic20/vic1110.c
diff --git a/src/emu/bus/vic20/vic1110.h b/src/devices/bus/vic20/vic1110.h
index 4b6aecebd5a..4b6aecebd5a 100644
--- a/src/emu/bus/vic20/vic1110.h
+++ b/src/devices/bus/vic20/vic1110.h
diff --git a/src/emu/bus/vic20/vic1111.c b/src/devices/bus/vic20/vic1111.c
index 770d5639d8f..770d5639d8f 100644
--- a/src/emu/bus/vic20/vic1111.c
+++ b/src/devices/bus/vic20/vic1111.c
diff --git a/src/emu/bus/vic20/vic1111.h b/src/devices/bus/vic20/vic1111.h
index e20dc4a8e2d..e20dc4a8e2d 100644
--- a/src/emu/bus/vic20/vic1111.h
+++ b/src/devices/bus/vic20/vic1111.h
diff --git a/src/emu/bus/vic20/vic1112.c b/src/devices/bus/vic20/vic1112.c
index 482f7f01b03..482f7f01b03 100644
--- a/src/emu/bus/vic20/vic1112.c
+++ b/src/devices/bus/vic20/vic1112.c
diff --git a/src/emu/bus/vic20/vic1112.h b/src/devices/bus/vic20/vic1112.h
index 6149866c020..6149866c020 100644
--- a/src/emu/bus/vic20/vic1112.h
+++ b/src/devices/bus/vic20/vic1112.h
diff --git a/src/emu/bus/vic20/vic1210.c b/src/devices/bus/vic20/vic1210.c
index 5acb518cd08..5acb518cd08 100644
--- a/src/emu/bus/vic20/vic1210.c
+++ b/src/devices/bus/vic20/vic1210.c
diff --git a/src/emu/bus/vic20/vic1210.h b/src/devices/bus/vic20/vic1210.h
index 904336dd6c0..904336dd6c0 100644
--- a/src/emu/bus/vic20/vic1210.h
+++ b/src/devices/bus/vic20/vic1210.h
diff --git a/src/emu/bus/vidbrain/exp.c b/src/devices/bus/vidbrain/exp.c
index e3634283efa..e3634283efa 100644
--- a/src/emu/bus/vidbrain/exp.c
+++ b/src/devices/bus/vidbrain/exp.c
diff --git a/src/emu/bus/vidbrain/exp.h b/src/devices/bus/vidbrain/exp.h
index 8e6064dbc94..8e6064dbc94 100644
--- a/src/emu/bus/vidbrain/exp.h
+++ b/src/devices/bus/vidbrain/exp.h
diff --git a/src/emu/bus/vidbrain/money_minder.c b/src/devices/bus/vidbrain/money_minder.c
index f5fa70bd868..f5fa70bd868 100644
--- a/src/emu/bus/vidbrain/money_minder.c
+++ b/src/devices/bus/vidbrain/money_minder.c
diff --git a/src/emu/bus/vidbrain/money_minder.h b/src/devices/bus/vidbrain/money_minder.h
index 9cdd6c8f4e6..9cdd6c8f4e6 100644
--- a/src/emu/bus/vidbrain/money_minder.h
+++ b/src/devices/bus/vidbrain/money_minder.h
diff --git a/src/emu/bus/vidbrain/std.c b/src/devices/bus/vidbrain/std.c
index f56f5fd9d9f..f56f5fd9d9f 100644
--- a/src/emu/bus/vidbrain/std.c
+++ b/src/devices/bus/vidbrain/std.c
diff --git a/src/emu/bus/vidbrain/std.h b/src/devices/bus/vidbrain/std.h
index 74e9b4096e8..74e9b4096e8 100644
--- a/src/emu/bus/vidbrain/std.h
+++ b/src/devices/bus/vidbrain/std.h
diff --git a/src/emu/bus/vidbrain/timeshare.c b/src/devices/bus/vidbrain/timeshare.c
index 196bf66db2e..196bf66db2e 100644
--- a/src/emu/bus/vidbrain/timeshare.c
+++ b/src/devices/bus/vidbrain/timeshare.c
diff --git a/src/emu/bus/vidbrain/timeshare.h b/src/devices/bus/vidbrain/timeshare.h
index 6f57c04d32f..6f57c04d32f 100644
--- a/src/emu/bus/vidbrain/timeshare.h
+++ b/src/devices/bus/vidbrain/timeshare.h
diff --git a/src/emu/bus/vip/byteio.c b/src/devices/bus/vip/byteio.c
index bdebad76dba..bdebad76dba 100644
--- a/src/emu/bus/vip/byteio.c
+++ b/src/devices/bus/vip/byteio.c
diff --git a/src/emu/bus/vip/byteio.h b/src/devices/bus/vip/byteio.h
index fd696975c7c..fd696975c7c 100644
--- a/src/emu/bus/vip/byteio.h
+++ b/src/devices/bus/vip/byteio.h
diff --git a/src/emu/bus/vip/exp.c b/src/devices/bus/vip/exp.c
index 4d83df7119a..4d83df7119a 100644
--- a/src/emu/bus/vip/exp.c
+++ b/src/devices/bus/vip/exp.c
diff --git a/src/emu/bus/vip/exp.h b/src/devices/bus/vip/exp.h
index 37a33482db8..37a33482db8 100644
--- a/src/emu/bus/vip/exp.h
+++ b/src/devices/bus/vip/exp.h
diff --git a/src/emu/bus/vip/vp550.c b/src/devices/bus/vip/vp550.c
index c5f4ed201e4..c5f4ed201e4 100644
--- a/src/emu/bus/vip/vp550.c
+++ b/src/devices/bus/vip/vp550.c
diff --git a/src/emu/bus/vip/vp550.h b/src/devices/bus/vip/vp550.h
index 1045871b5d7..1045871b5d7 100644
--- a/src/emu/bus/vip/vp550.h
+++ b/src/devices/bus/vip/vp550.h
diff --git a/src/emu/bus/vip/vp570.c b/src/devices/bus/vip/vp570.c
index 42ec4119c21..42ec4119c21 100644
--- a/src/emu/bus/vip/vp570.c
+++ b/src/devices/bus/vip/vp570.c
diff --git a/src/emu/bus/vip/vp570.h b/src/devices/bus/vip/vp570.h
index 2a382a064f5..2a382a064f5 100644
--- a/src/emu/bus/vip/vp570.h
+++ b/src/devices/bus/vip/vp570.h
diff --git a/src/emu/bus/vip/vp575.c b/src/devices/bus/vip/vp575.c
index c7801e9c414..c7801e9c414 100644
--- a/src/emu/bus/vip/vp575.c
+++ b/src/devices/bus/vip/vp575.c
diff --git a/src/emu/bus/vip/vp575.h b/src/devices/bus/vip/vp575.h
index 83ea31fd277..83ea31fd277 100644
--- a/src/emu/bus/vip/vp575.h
+++ b/src/devices/bus/vip/vp575.h
diff --git a/src/emu/bus/vip/vp585.c b/src/devices/bus/vip/vp585.c
index dd51edebcff..dd51edebcff 100644
--- a/src/emu/bus/vip/vp585.c
+++ b/src/devices/bus/vip/vp585.c
diff --git a/src/emu/bus/vip/vp585.h b/src/devices/bus/vip/vp585.h
index 2bda8647c57..2bda8647c57 100644
--- a/src/emu/bus/vip/vp585.h
+++ b/src/devices/bus/vip/vp585.h
diff --git a/src/emu/bus/vip/vp590.c b/src/devices/bus/vip/vp590.c
index e4a045388dd..e4a045388dd 100644
--- a/src/emu/bus/vip/vp590.c
+++ b/src/devices/bus/vip/vp590.c
diff --git a/src/emu/bus/vip/vp590.h b/src/devices/bus/vip/vp590.h
index e4be2ab48fa..e4be2ab48fa 100644
--- a/src/emu/bus/vip/vp590.h
+++ b/src/devices/bus/vip/vp590.h
diff --git a/src/emu/bus/vip/vp595.c b/src/devices/bus/vip/vp595.c
index d2ed10de18d..d2ed10de18d 100644
--- a/src/emu/bus/vip/vp595.c
+++ b/src/devices/bus/vip/vp595.c
diff --git a/src/emu/bus/vip/vp595.h b/src/devices/bus/vip/vp595.h
index bd7bcdbdbe7..bd7bcdbdbe7 100644
--- a/src/emu/bus/vip/vp595.h
+++ b/src/devices/bus/vip/vp595.h
diff --git a/src/emu/bus/vip/vp620.c b/src/devices/bus/vip/vp620.c
index 42a00b37444..42a00b37444 100644
--- a/src/emu/bus/vip/vp620.c
+++ b/src/devices/bus/vip/vp620.c
diff --git a/src/emu/bus/vip/vp620.h b/src/devices/bus/vip/vp620.h
index 67400cd2304..67400cd2304 100644
--- a/src/emu/bus/vip/vp620.h
+++ b/src/devices/bus/vip/vp620.h
diff --git a/src/emu/bus/vip/vp700.c b/src/devices/bus/vip/vp700.c
index 7d9b32536a7..7d9b32536a7 100644
--- a/src/emu/bus/vip/vp700.c
+++ b/src/devices/bus/vip/vp700.c
diff --git a/src/emu/bus/vip/vp700.h b/src/devices/bus/vip/vp700.h
index 8f521199d76..8f521199d76 100644
--- a/src/emu/bus/vip/vp700.h
+++ b/src/devices/bus/vip/vp700.h
diff --git a/src/emu/bus/vtech/ioexp/carts.c b/src/devices/bus/vtech/ioexp/carts.c
index 5bdd6aca63f..5bdd6aca63f 100644
--- a/src/emu/bus/vtech/ioexp/carts.c
+++ b/src/devices/bus/vtech/ioexp/carts.c
diff --git a/src/emu/bus/vtech/ioexp/carts.h b/src/devices/bus/vtech/ioexp/carts.h
index ef9125b5e7b..ef9125b5e7b 100644
--- a/src/emu/bus/vtech/ioexp/carts.h
+++ b/src/devices/bus/vtech/ioexp/carts.h
diff --git a/src/emu/bus/vtech/ioexp/ioexp.c b/src/devices/bus/vtech/ioexp/ioexp.c
index 3028ffd5226..3028ffd5226 100644
--- a/src/emu/bus/vtech/ioexp/ioexp.c
+++ b/src/devices/bus/vtech/ioexp/ioexp.c
diff --git a/src/emu/bus/vtech/ioexp/ioexp.h b/src/devices/bus/vtech/ioexp/ioexp.h
index 7948a9ae932..7948a9ae932 100644
--- a/src/emu/bus/vtech/ioexp/ioexp.h
+++ b/src/devices/bus/vtech/ioexp/ioexp.h
diff --git a/src/emu/bus/vtech/ioexp/joystick.c b/src/devices/bus/vtech/ioexp/joystick.c
index 38e9732d17a..38e9732d17a 100644
--- a/src/emu/bus/vtech/ioexp/joystick.c
+++ b/src/devices/bus/vtech/ioexp/joystick.c
diff --git a/src/emu/bus/vtech/ioexp/joystick.h b/src/devices/bus/vtech/ioexp/joystick.h
index 7c6612fc3fc..7c6612fc3fc 100644
--- a/src/emu/bus/vtech/ioexp/joystick.h
+++ b/src/devices/bus/vtech/ioexp/joystick.h
diff --git a/src/emu/bus/vtech/ioexp/printer.c b/src/devices/bus/vtech/ioexp/printer.c
index a122c9fa2c7..a122c9fa2c7 100644
--- a/src/emu/bus/vtech/ioexp/printer.c
+++ b/src/devices/bus/vtech/ioexp/printer.c
diff --git a/src/emu/bus/vtech/ioexp/printer.h b/src/devices/bus/vtech/ioexp/printer.h
index ddf2ce9726c..ddf2ce9726c 100644
--- a/src/emu/bus/vtech/ioexp/printer.h
+++ b/src/devices/bus/vtech/ioexp/printer.h
diff --git a/src/emu/bus/vtech/memexp/carts.c b/src/devices/bus/vtech/memexp/carts.c
index dc40d0e8a57..dc40d0e8a57 100644
--- a/src/emu/bus/vtech/memexp/carts.c
+++ b/src/devices/bus/vtech/memexp/carts.c
diff --git a/src/emu/bus/vtech/memexp/carts.h b/src/devices/bus/vtech/memexp/carts.h
index a1e86987a31..a1e86987a31 100644
--- a/src/emu/bus/vtech/memexp/carts.h
+++ b/src/devices/bus/vtech/memexp/carts.h
diff --git a/src/emu/bus/vtech/memexp/floppy.c b/src/devices/bus/vtech/memexp/floppy.c
index ef169703035..ef169703035 100644
--- a/src/emu/bus/vtech/memexp/floppy.c
+++ b/src/devices/bus/vtech/memexp/floppy.c
diff --git a/src/emu/bus/vtech/memexp/floppy.h b/src/devices/bus/vtech/memexp/floppy.h
index 91c332332c1..91c332332c1 100644
--- a/src/emu/bus/vtech/memexp/floppy.h
+++ b/src/devices/bus/vtech/memexp/floppy.h
diff --git a/src/emu/bus/vtech/memexp/memexp.c b/src/devices/bus/vtech/memexp/memexp.c
index d41b2d073b7..d41b2d073b7 100644
--- a/src/emu/bus/vtech/memexp/memexp.c
+++ b/src/devices/bus/vtech/memexp/memexp.c
diff --git a/src/emu/bus/vtech/memexp/memexp.h b/src/devices/bus/vtech/memexp/memexp.h
index d0de2049b5b..d0de2049b5b 100644
--- a/src/emu/bus/vtech/memexp/memexp.h
+++ b/src/devices/bus/vtech/memexp/memexp.h
diff --git a/src/emu/bus/vtech/memexp/memory.c b/src/devices/bus/vtech/memexp/memory.c
index 5b4b9d71701..5b4b9d71701 100644
--- a/src/emu/bus/vtech/memexp/memory.c
+++ b/src/devices/bus/vtech/memexp/memory.c
diff --git a/src/emu/bus/vtech/memexp/memory.h b/src/devices/bus/vtech/memexp/memory.h
index e45d65c83fe..e45d65c83fe 100644
--- a/src/emu/bus/vtech/memexp/memory.h
+++ b/src/devices/bus/vtech/memexp/memory.h
diff --git a/src/emu/bus/vtech/memexp/rs232.c b/src/devices/bus/vtech/memexp/rs232.c
index bd74662c9f5..bd74662c9f5 100644
--- a/src/emu/bus/vtech/memexp/rs232.c
+++ b/src/devices/bus/vtech/memexp/rs232.c
diff --git a/src/emu/bus/vtech/memexp/rs232.h b/src/devices/bus/vtech/memexp/rs232.h
index c89133e5a33..c89133e5a33 100644
--- a/src/emu/bus/vtech/memexp/rs232.h
+++ b/src/devices/bus/vtech/memexp/rs232.h
diff --git a/src/emu/bus/vtech/memexp/wordpro.c b/src/devices/bus/vtech/memexp/wordpro.c
index 1a038bcf0ac..1a038bcf0ac 100644
--- a/src/emu/bus/vtech/memexp/wordpro.c
+++ b/src/devices/bus/vtech/memexp/wordpro.c
diff --git a/src/emu/bus/vtech/memexp/wordpro.h b/src/devices/bus/vtech/memexp/wordpro.h
index 8626787f16e..8626787f16e 100644
--- a/src/emu/bus/vtech/memexp/wordpro.h
+++ b/src/devices/bus/vtech/memexp/wordpro.h
diff --git a/src/emu/bus/wangpc/emb.c b/src/devices/bus/wangpc/emb.c
index e53b8ea2308..e53b8ea2308 100644
--- a/src/emu/bus/wangpc/emb.c
+++ b/src/devices/bus/wangpc/emb.c
diff --git a/src/emu/bus/wangpc/emb.h b/src/devices/bus/wangpc/emb.h
index 169cb68a428..169cb68a428 100644
--- a/src/emu/bus/wangpc/emb.h
+++ b/src/devices/bus/wangpc/emb.h
diff --git a/src/emu/bus/wangpc/lic.c b/src/devices/bus/wangpc/lic.c
index cebc359a942..cebc359a942 100644
--- a/src/emu/bus/wangpc/lic.c
+++ b/src/devices/bus/wangpc/lic.c
diff --git a/src/emu/bus/wangpc/lic.h b/src/devices/bus/wangpc/lic.h
index 5fb1d792bcd..5fb1d792bcd 100644
--- a/src/emu/bus/wangpc/lic.h
+++ b/src/devices/bus/wangpc/lic.h
diff --git a/src/emu/bus/wangpc/lvc.c b/src/devices/bus/wangpc/lvc.c
index fb0ef5e9325..fb0ef5e9325 100644
--- a/src/emu/bus/wangpc/lvc.c
+++ b/src/devices/bus/wangpc/lvc.c
diff --git a/src/emu/bus/wangpc/lvc.h b/src/devices/bus/wangpc/lvc.h
index 9f758f24c06..9f758f24c06 100644
--- a/src/emu/bus/wangpc/lvc.h
+++ b/src/devices/bus/wangpc/lvc.h
diff --git a/src/emu/bus/wangpc/mcc.c b/src/devices/bus/wangpc/mcc.c
index 35a664201b9..35a664201b9 100644
--- a/src/emu/bus/wangpc/mcc.c
+++ b/src/devices/bus/wangpc/mcc.c
diff --git a/src/emu/bus/wangpc/mcc.h b/src/devices/bus/wangpc/mcc.h
index a87be116251..a87be116251 100644
--- a/src/emu/bus/wangpc/mcc.h
+++ b/src/devices/bus/wangpc/mcc.h
diff --git a/src/emu/bus/wangpc/mvc.c b/src/devices/bus/wangpc/mvc.c
index 9a2e74a0f4a..9a2e74a0f4a 100644
--- a/src/emu/bus/wangpc/mvc.c
+++ b/src/devices/bus/wangpc/mvc.c
diff --git a/src/emu/bus/wangpc/mvc.h b/src/devices/bus/wangpc/mvc.h
index 6521aee33a4..6521aee33a4 100644
--- a/src/emu/bus/wangpc/mvc.h
+++ b/src/devices/bus/wangpc/mvc.h
diff --git a/src/emu/bus/wangpc/rtc.c b/src/devices/bus/wangpc/rtc.c
index 2f2ea7a073f..2f2ea7a073f 100644
--- a/src/emu/bus/wangpc/rtc.c
+++ b/src/devices/bus/wangpc/rtc.c
diff --git a/src/emu/bus/wangpc/rtc.h b/src/devices/bus/wangpc/rtc.h
index 1162c743f23..1162c743f23 100644
--- a/src/emu/bus/wangpc/rtc.h
+++ b/src/devices/bus/wangpc/rtc.h
diff --git a/src/emu/bus/wangpc/tig.c b/src/devices/bus/wangpc/tig.c
index a2b7214c054..a2b7214c054 100644
--- a/src/emu/bus/wangpc/tig.c
+++ b/src/devices/bus/wangpc/tig.c
diff --git a/src/emu/bus/wangpc/tig.h b/src/devices/bus/wangpc/tig.h
index 66b29c0ad3d..66b29c0ad3d 100644
--- a/src/emu/bus/wangpc/tig.h
+++ b/src/devices/bus/wangpc/tig.h
diff --git a/src/emu/bus/wangpc/wangpc.c b/src/devices/bus/wangpc/wangpc.c
index d5773f8e283..d5773f8e283 100644
--- a/src/emu/bus/wangpc/wangpc.c
+++ b/src/devices/bus/wangpc/wangpc.c
diff --git a/src/emu/bus/wangpc/wangpc.h b/src/devices/bus/wangpc/wangpc.h
index 2870a4e4ec5..2870a4e4ec5 100644
--- a/src/emu/bus/wangpc/wangpc.h
+++ b/src/devices/bus/wangpc/wangpc.h
diff --git a/src/emu/bus/wangpc/wdc.c b/src/devices/bus/wangpc/wdc.c
index 4e4e8fb92bc..4e4e8fb92bc 100644
--- a/src/emu/bus/wangpc/wdc.c
+++ b/src/devices/bus/wangpc/wdc.c
diff --git a/src/emu/bus/wangpc/wdc.h b/src/devices/bus/wangpc/wdc.h
index 156dc4c10a9..156dc4c10a9 100644
--- a/src/emu/bus/wangpc/wdc.h
+++ b/src/devices/bus/wangpc/wdc.h
diff --git a/src/emu/bus/wswan/rom.c b/src/devices/bus/wswan/rom.c
index de57f954b8c..de57f954b8c 100644
--- a/src/emu/bus/wswan/rom.c
+++ b/src/devices/bus/wswan/rom.c
diff --git a/src/emu/bus/wswan/rom.h b/src/devices/bus/wswan/rom.h
index e3ac0134c84..e3ac0134c84 100644
--- a/src/emu/bus/wswan/rom.h
+++ b/src/devices/bus/wswan/rom.h
diff --git a/src/emu/bus/wswan/slot.c b/src/devices/bus/wswan/slot.c
index 8da5f6e694d..8da5f6e694d 100644
--- a/src/emu/bus/wswan/slot.c
+++ b/src/devices/bus/wswan/slot.c
diff --git a/src/emu/bus/wswan/slot.h b/src/devices/bus/wswan/slot.h
index 87ac47a2a97..87ac47a2a97 100644
--- a/src/emu/bus/wswan/slot.h
+++ b/src/devices/bus/wswan/slot.h
diff --git a/src/emu/bus/x68k/x68k_neptunex.c b/src/devices/bus/x68k/x68k_neptunex.c
index affb3ead65c..affb3ead65c 100644
--- a/src/emu/bus/x68k/x68k_neptunex.c
+++ b/src/devices/bus/x68k/x68k_neptunex.c
diff --git a/src/emu/bus/x68k/x68k_neptunex.h b/src/devices/bus/x68k/x68k_neptunex.h
index ad6f1b9560c..ad6f1b9560c 100644
--- a/src/emu/bus/x68k/x68k_neptunex.h
+++ b/src/devices/bus/x68k/x68k_neptunex.h
diff --git a/src/emu/bus/x68k/x68k_scsiext.c b/src/devices/bus/x68k/x68k_scsiext.c
index b3490cda74d..b3490cda74d 100644
--- a/src/emu/bus/x68k/x68k_scsiext.c
+++ b/src/devices/bus/x68k/x68k_scsiext.c
diff --git a/src/emu/bus/x68k/x68k_scsiext.h b/src/devices/bus/x68k/x68k_scsiext.h
index 93f6fa24b79..93f6fa24b79 100644
--- a/src/emu/bus/x68k/x68k_scsiext.h
+++ b/src/devices/bus/x68k/x68k_scsiext.h
diff --git a/src/emu/bus/x68k/x68kexp.c b/src/devices/bus/x68k/x68kexp.c
index 3aaf03bdd3a..3aaf03bdd3a 100644
--- a/src/emu/bus/x68k/x68kexp.c
+++ b/src/devices/bus/x68k/x68kexp.c
diff --git a/src/emu/bus/x68k/x68kexp.h b/src/devices/bus/x68k/x68kexp.h
index 9a016b7ebbe..9a016b7ebbe 100644
--- a/src/emu/bus/x68k/x68kexp.h
+++ b/src/devices/bus/x68k/x68kexp.h
diff --git a/src/emu/bus/z88/flash.c b/src/devices/bus/z88/flash.c
index 0793f126c18..0793f126c18 100644
--- a/src/emu/bus/z88/flash.c
+++ b/src/devices/bus/z88/flash.c
diff --git a/src/emu/bus/z88/flash.h b/src/devices/bus/z88/flash.h
index 8ea09040e39..8ea09040e39 100644
--- a/src/emu/bus/z88/flash.h
+++ b/src/devices/bus/z88/flash.h
diff --git a/src/emu/bus/z88/ram.c b/src/devices/bus/z88/ram.c
index d35f3d81ccd..d35f3d81ccd 100644
--- a/src/emu/bus/z88/ram.c
+++ b/src/devices/bus/z88/ram.c
diff --git a/src/emu/bus/z88/ram.h b/src/devices/bus/z88/ram.h
index 0f8dc4a4ff7..0f8dc4a4ff7 100644
--- a/src/emu/bus/z88/ram.h
+++ b/src/devices/bus/z88/ram.h
diff --git a/src/emu/bus/z88/rom.c b/src/devices/bus/z88/rom.c
index 4ebdef5fc85..4ebdef5fc85 100644
--- a/src/emu/bus/z88/rom.c
+++ b/src/devices/bus/z88/rom.c
diff --git a/src/emu/bus/z88/rom.h b/src/devices/bus/z88/rom.h
index 41cdbc4a771..41cdbc4a771 100644
--- a/src/emu/bus/z88/rom.h
+++ b/src/devices/bus/z88/rom.h
diff --git a/src/emu/bus/z88/z88.c b/src/devices/bus/z88/z88.c
index b1c13865fb7..b1c13865fb7 100644
--- a/src/emu/bus/z88/z88.c
+++ b/src/devices/bus/z88/z88.c
diff --git a/src/emu/bus/z88/z88.h b/src/devices/bus/z88/z88.h
index bcba1671941..bcba1671941 100644
--- a/src/emu/bus/z88/z88.h
+++ b/src/devices/bus/z88/z88.h
diff --git a/src/emu/cpu/8x300/8x300.c b/src/devices/cpu/8x300/8x300.c
index bf6a5148ca5..bf6a5148ca5 100644
--- a/src/emu/cpu/8x300/8x300.c
+++ b/src/devices/cpu/8x300/8x300.c
diff --git a/src/emu/cpu/8x300/8x300.h b/src/devices/cpu/8x300/8x300.h
index 274f161c889..274f161c889 100644
--- a/src/emu/cpu/8x300/8x300.h
+++ b/src/devices/cpu/8x300/8x300.h
diff --git a/src/emu/cpu/8x300/8x300dasm.c b/src/devices/cpu/8x300/8x300dasm.c
index e35b2b7cb41..e35b2b7cb41 100644
--- a/src/emu/cpu/8x300/8x300dasm.c
+++ b/src/devices/cpu/8x300/8x300dasm.c
diff --git a/src/emu/cpu/adsp2100/2100dasm.c b/src/devices/cpu/adsp2100/2100dasm.c
index 47d8ad8e800..47d8ad8e800 100644
--- a/src/emu/cpu/adsp2100/2100dasm.c
+++ b/src/devices/cpu/adsp2100/2100dasm.c
diff --git a/src/emu/cpu/adsp2100/2100ops.inc b/src/devices/cpu/adsp2100/2100ops.inc
index 31cae1ae59b..31cae1ae59b 100644
--- a/src/emu/cpu/adsp2100/2100ops.inc
+++ b/src/devices/cpu/adsp2100/2100ops.inc
diff --git a/src/emu/cpu/adsp2100/adsp2100.c b/src/devices/cpu/adsp2100/adsp2100.c
index 8142a6a7a34..8142a6a7a34 100644
--- a/src/emu/cpu/adsp2100/adsp2100.c
+++ b/src/devices/cpu/adsp2100/adsp2100.c
diff --git a/src/emu/cpu/adsp2100/adsp2100.h b/src/devices/cpu/adsp2100/adsp2100.h
index 4b84d6e1b2a..4b84d6e1b2a 100644
--- a/src/emu/cpu/adsp2100/adsp2100.h
+++ b/src/devices/cpu/adsp2100/adsp2100.h
diff --git a/src/emu/cpu/alph8201/8201dasm.c b/src/devices/cpu/alph8201/8201dasm.c
index c22a4316ea4..c22a4316ea4 100644
--- a/src/emu/cpu/alph8201/8201dasm.c
+++ b/src/devices/cpu/alph8201/8201dasm.c
diff --git a/src/emu/cpu/alph8201/alph8201.c b/src/devices/cpu/alph8201/alph8201.c
index e575f149d34..e575f149d34 100644
--- a/src/emu/cpu/alph8201/alph8201.c
+++ b/src/devices/cpu/alph8201/alph8201.c
diff --git a/src/emu/cpu/alph8201/alph8201.h b/src/devices/cpu/alph8201/alph8201.h
index 16555803988..16555803988 100644
--- a/src/emu/cpu/alph8201/alph8201.h
+++ b/src/devices/cpu/alph8201/alph8201.h
diff --git a/src/emu/cpu/alto2/a2curt.c b/src/devices/cpu/alto2/a2curt.c
index c5d9353f768..c5d9353f768 100644
--- a/src/emu/cpu/alto2/a2curt.c
+++ b/src/devices/cpu/alto2/a2curt.c
diff --git a/src/emu/cpu/alto2/a2curt.h b/src/devices/cpu/alto2/a2curt.h
index cdfc6a22973..cdfc6a22973 100644
--- a/src/emu/cpu/alto2/a2curt.h
+++ b/src/devices/cpu/alto2/a2curt.h
diff --git a/src/emu/cpu/alto2/a2dht.c b/src/devices/cpu/alto2/a2dht.c
index 3b70d371259..3b70d371259 100644
--- a/src/emu/cpu/alto2/a2dht.c
+++ b/src/devices/cpu/alto2/a2dht.c
diff --git a/src/emu/cpu/alto2/a2dht.h b/src/devices/cpu/alto2/a2dht.h
index 9ff7acc17f4..9ff7acc17f4 100644
--- a/src/emu/cpu/alto2/a2dht.h
+++ b/src/devices/cpu/alto2/a2dht.h
diff --git a/src/emu/cpu/alto2/a2disk.c b/src/devices/cpu/alto2/a2disk.c
index 1a8736962bb..1a8736962bb 100644
--- a/src/emu/cpu/alto2/a2disk.c
+++ b/src/devices/cpu/alto2/a2disk.c
diff --git a/src/emu/cpu/alto2/a2disk.h b/src/devices/cpu/alto2/a2disk.h
index 5fd994f654e..5fd994f654e 100644
--- a/src/emu/cpu/alto2/a2disk.h
+++ b/src/devices/cpu/alto2/a2disk.h
diff --git a/src/emu/cpu/alto2/a2disp.c b/src/devices/cpu/alto2/a2disp.c
index 3f902431efa..3f902431efa 100644
--- a/src/emu/cpu/alto2/a2disp.c
+++ b/src/devices/cpu/alto2/a2disp.c
diff --git a/src/emu/cpu/alto2/a2disp.h b/src/devices/cpu/alto2/a2disp.h
index 80454eb4896..80454eb4896 100644
--- a/src/emu/cpu/alto2/a2disp.h
+++ b/src/devices/cpu/alto2/a2disp.h
diff --git a/src/emu/cpu/alto2/a2dvt.c b/src/devices/cpu/alto2/a2dvt.c
index acb51d92e7c..acb51d92e7c 100644
--- a/src/emu/cpu/alto2/a2dvt.c
+++ b/src/devices/cpu/alto2/a2dvt.c
diff --git a/src/emu/cpu/alto2/a2dvt.h b/src/devices/cpu/alto2/a2dvt.h
index 3b73ac7bf7e..3b73ac7bf7e 100644
--- a/src/emu/cpu/alto2/a2dvt.h
+++ b/src/devices/cpu/alto2/a2dvt.h
diff --git a/src/emu/cpu/alto2/a2dwt.c b/src/devices/cpu/alto2/a2dwt.c
index 19831e3fd46..19831e3fd46 100644
--- a/src/emu/cpu/alto2/a2dwt.c
+++ b/src/devices/cpu/alto2/a2dwt.c
diff --git a/src/emu/cpu/alto2/a2dwt.h b/src/devices/cpu/alto2/a2dwt.h
index 74c6c94939b..74c6c94939b 100644
--- a/src/emu/cpu/alto2/a2dwt.h
+++ b/src/devices/cpu/alto2/a2dwt.h
diff --git a/src/emu/cpu/alto2/a2emu.c b/src/devices/cpu/alto2/a2emu.c
index fd30fa1d0f8..fd30fa1d0f8 100644
--- a/src/emu/cpu/alto2/a2emu.c
+++ b/src/devices/cpu/alto2/a2emu.c
diff --git a/src/emu/cpu/alto2/a2emu.h b/src/devices/cpu/alto2/a2emu.h
index 344c7ff2c71..344c7ff2c71 100644
--- a/src/emu/cpu/alto2/a2emu.h
+++ b/src/devices/cpu/alto2/a2emu.h
diff --git a/src/emu/cpu/alto2/a2ether.c b/src/devices/cpu/alto2/a2ether.c
index 32d8a716f49..32d8a716f49 100644
--- a/src/emu/cpu/alto2/a2ether.c
+++ b/src/devices/cpu/alto2/a2ether.c
diff --git a/src/emu/cpu/alto2/a2ether.h b/src/devices/cpu/alto2/a2ether.h
index 6bdbd24ce3e..6bdbd24ce3e 100644
--- a/src/emu/cpu/alto2/a2ether.h
+++ b/src/devices/cpu/alto2/a2ether.h
diff --git a/src/emu/cpu/alto2/a2hw.c b/src/devices/cpu/alto2/a2hw.c
index cc8a77c3f54..cc8a77c3f54 100644
--- a/src/emu/cpu/alto2/a2hw.c
+++ b/src/devices/cpu/alto2/a2hw.c
diff --git a/src/emu/cpu/alto2/a2hw.h b/src/devices/cpu/alto2/a2hw.h
index 49d20ff5e30..49d20ff5e30 100644
--- a/src/emu/cpu/alto2/a2hw.h
+++ b/src/devices/cpu/alto2/a2hw.h
diff --git a/src/emu/cpu/alto2/a2jkff.h b/src/devices/cpu/alto2/a2jkff.h
index 687313607b1..687313607b1 100644
--- a/src/emu/cpu/alto2/a2jkff.h
+++ b/src/devices/cpu/alto2/a2jkff.h
diff --git a/src/emu/cpu/alto2/a2kbd.c b/src/devices/cpu/alto2/a2kbd.c
index fa1bb5f9596..fa1bb5f9596 100644
--- a/src/emu/cpu/alto2/a2kbd.c
+++ b/src/devices/cpu/alto2/a2kbd.c
diff --git a/src/emu/cpu/alto2/a2kbd.h b/src/devices/cpu/alto2/a2kbd.h
index b7bf6607ee2..b7bf6607ee2 100644
--- a/src/emu/cpu/alto2/a2kbd.h
+++ b/src/devices/cpu/alto2/a2kbd.h
diff --git a/src/emu/cpu/alto2/a2ksec.c b/src/devices/cpu/alto2/a2ksec.c
index b6ca5359dc6..b6ca5359dc6 100644
--- a/src/emu/cpu/alto2/a2ksec.c
+++ b/src/devices/cpu/alto2/a2ksec.c
diff --git a/src/emu/cpu/alto2/a2ksec.h b/src/devices/cpu/alto2/a2ksec.h
index 96c2530a2a5..96c2530a2a5 100644
--- a/src/emu/cpu/alto2/a2ksec.h
+++ b/src/devices/cpu/alto2/a2ksec.h
diff --git a/src/emu/cpu/alto2/a2kwd.c b/src/devices/cpu/alto2/a2kwd.c
index 1eb060258a8..1eb060258a8 100644
--- a/src/emu/cpu/alto2/a2kwd.c
+++ b/src/devices/cpu/alto2/a2kwd.c
diff --git a/src/emu/cpu/alto2/a2kwd.h b/src/devices/cpu/alto2/a2kwd.h
index 678408501d2..678408501d2 100644
--- a/src/emu/cpu/alto2/a2kwd.h
+++ b/src/devices/cpu/alto2/a2kwd.h
diff --git a/src/emu/cpu/alto2/a2mem.c b/src/devices/cpu/alto2/a2mem.c
index b84653ebdd9..b84653ebdd9 100644
--- a/src/emu/cpu/alto2/a2mem.c
+++ b/src/devices/cpu/alto2/a2mem.c
diff --git a/src/emu/cpu/alto2/a2mem.h b/src/devices/cpu/alto2/a2mem.h
index c450693a22b..c450693a22b 100644
--- a/src/emu/cpu/alto2/a2mem.h
+++ b/src/devices/cpu/alto2/a2mem.h
diff --git a/src/emu/cpu/alto2/a2mouse.c b/src/devices/cpu/alto2/a2mouse.c
index 0844d45de6d..0844d45de6d 100644
--- a/src/emu/cpu/alto2/a2mouse.c
+++ b/src/devices/cpu/alto2/a2mouse.c
diff --git a/src/emu/cpu/alto2/a2mouse.h b/src/devices/cpu/alto2/a2mouse.h
index 29d5e88ca5b..29d5e88ca5b 100644
--- a/src/emu/cpu/alto2/a2mouse.h
+++ b/src/devices/cpu/alto2/a2mouse.h
diff --git a/src/emu/cpu/alto2/a2mrt.c b/src/devices/cpu/alto2/a2mrt.c
index c57cd85728f..c57cd85728f 100644
--- a/src/emu/cpu/alto2/a2mrt.c
+++ b/src/devices/cpu/alto2/a2mrt.c
diff --git a/src/emu/cpu/alto2/a2mrt.h b/src/devices/cpu/alto2/a2mrt.h
index 20b00724fc9..20b00724fc9 100644
--- a/src/emu/cpu/alto2/a2mrt.h
+++ b/src/devices/cpu/alto2/a2mrt.h
diff --git a/src/emu/cpu/alto2/a2part.c b/src/devices/cpu/alto2/a2part.c
index ecf9da51ea5..ecf9da51ea5 100644
--- a/src/emu/cpu/alto2/a2part.c
+++ b/src/devices/cpu/alto2/a2part.c
diff --git a/src/emu/cpu/alto2/a2part.h b/src/devices/cpu/alto2/a2part.h
index 0bc8583bbbc..0bc8583bbbc 100644
--- a/src/emu/cpu/alto2/a2part.h
+++ b/src/devices/cpu/alto2/a2part.h
diff --git a/src/emu/cpu/alto2/a2ram.c b/src/devices/cpu/alto2/a2ram.c
index 92986996270..92986996270 100644
--- a/src/emu/cpu/alto2/a2ram.c
+++ b/src/devices/cpu/alto2/a2ram.c
diff --git a/src/emu/cpu/alto2/a2ram.h b/src/devices/cpu/alto2/a2ram.h
index 0077ded7a99..0077ded7a99 100644
--- a/src/emu/cpu/alto2/a2ram.h
+++ b/src/devices/cpu/alto2/a2ram.h
diff --git a/src/emu/cpu/alto2/a2roms.c b/src/devices/cpu/alto2/a2roms.c
index 1b859aa07aa..1b859aa07aa 100644
--- a/src/emu/cpu/alto2/a2roms.c
+++ b/src/devices/cpu/alto2/a2roms.c
diff --git a/src/emu/cpu/alto2/a2roms.h b/src/devices/cpu/alto2/a2roms.h
index abd218344c9..abd218344c9 100644
--- a/src/emu/cpu/alto2/a2roms.h
+++ b/src/devices/cpu/alto2/a2roms.h
diff --git a/src/emu/cpu/alto2/alto2cpu.c b/src/devices/cpu/alto2/alto2cpu.c
index 9c62096b5dd..9c62096b5dd 100644
--- a/src/emu/cpu/alto2/alto2cpu.c
+++ b/src/devices/cpu/alto2/alto2cpu.c
diff --git a/src/emu/cpu/alto2/alto2cpu.h b/src/devices/cpu/alto2/alto2cpu.h
index 1e2640e6ac0..1e2640e6ac0 100644
--- a/src/emu/cpu/alto2/alto2cpu.h
+++ b/src/devices/cpu/alto2/alto2cpu.h
diff --git a/src/emu/cpu/alto2/alto2dsm.c b/src/devices/cpu/alto2/alto2dsm.c
index 121ab50b398..121ab50b398 100644
--- a/src/emu/cpu/alto2/alto2dsm.c
+++ b/src/devices/cpu/alto2/alto2dsm.c
diff --git a/src/emu/cpu/am29000/am29000.c b/src/devices/cpu/am29000/am29000.c
index 27924fa163f..27924fa163f 100644
--- a/src/emu/cpu/am29000/am29000.c
+++ b/src/devices/cpu/am29000/am29000.c
diff --git a/src/emu/cpu/am29000/am29000.h b/src/devices/cpu/am29000/am29000.h
index c47d87fd7ce..c47d87fd7ce 100644
--- a/src/emu/cpu/am29000/am29000.h
+++ b/src/devices/cpu/am29000/am29000.h
diff --git a/src/emu/cpu/am29000/am29dasm.c b/src/devices/cpu/am29000/am29dasm.c
index bd8c6712fd2..bd8c6712fd2 100644
--- a/src/emu/cpu/am29000/am29dasm.c
+++ b/src/devices/cpu/am29000/am29dasm.c
diff --git a/src/emu/cpu/am29000/am29ops.h b/src/devices/cpu/am29000/am29ops.h
index bd3602391e6..bd3602391e6 100644
--- a/src/emu/cpu/am29000/am29ops.h
+++ b/src/devices/cpu/am29000/am29ops.h
diff --git a/src/emu/cpu/amis2000/amis2000.c b/src/devices/cpu/amis2000/amis2000.c
index 3082b09f14b..3082b09f14b 100644
--- a/src/emu/cpu/amis2000/amis2000.c
+++ b/src/devices/cpu/amis2000/amis2000.c
diff --git a/src/emu/cpu/amis2000/amis2000.h b/src/devices/cpu/amis2000/amis2000.h
index d04127eec16..d04127eec16 100644
--- a/src/emu/cpu/amis2000/amis2000.h
+++ b/src/devices/cpu/amis2000/amis2000.h
diff --git a/src/emu/cpu/amis2000/amis2000d.c b/src/devices/cpu/amis2000/amis2000d.c
index 27077170402..27077170402 100644
--- a/src/emu/cpu/amis2000/amis2000d.c
+++ b/src/devices/cpu/amis2000/amis2000d.c
diff --git a/src/emu/cpu/amis2000/amis2000op.c b/src/devices/cpu/amis2000/amis2000op.c
index 02f23ebed0a..02f23ebed0a 100644
--- a/src/emu/cpu/amis2000/amis2000op.c
+++ b/src/devices/cpu/amis2000/amis2000op.c
diff --git a/src/emu/cpu/apexc/apexc.c b/src/devices/cpu/apexc/apexc.c
index 77e5c919f44..77e5c919f44 100644
--- a/src/emu/cpu/apexc/apexc.c
+++ b/src/devices/cpu/apexc/apexc.c
diff --git a/src/emu/cpu/apexc/apexc.h b/src/devices/cpu/apexc/apexc.h
index 538d903ab44..538d903ab44 100644
--- a/src/emu/cpu/apexc/apexc.h
+++ b/src/devices/cpu/apexc/apexc.h
diff --git a/src/emu/cpu/apexc/apexcdsm.c b/src/devices/cpu/apexc/apexcdsm.c
index 81effc58b0e..81effc58b0e 100644
--- a/src/emu/cpu/apexc/apexcdsm.c
+++ b/src/devices/cpu/apexc/apexcdsm.c
diff --git a/src/emu/cpu/arc/arc.c b/src/devices/cpu/arc/arc.c
index 2fe40ae9bd6..2fe40ae9bd6 100644
--- a/src/emu/cpu/arc/arc.c
+++ b/src/devices/cpu/arc/arc.c
diff --git a/src/emu/cpu/arc/arc.h b/src/devices/cpu/arc/arc.h
index 80ed03280bc..80ed03280bc 100644
--- a/src/emu/cpu/arc/arc.h
+++ b/src/devices/cpu/arc/arc.h
diff --git a/src/emu/cpu/arc/arcdasm.c b/src/devices/cpu/arc/arcdasm.c
index 7a525d6cb61..7a525d6cb61 100644
--- a/src/emu/cpu/arc/arcdasm.c
+++ b/src/devices/cpu/arc/arcdasm.c
diff --git a/src/emu/cpu/arcompact/arcompact.c b/src/devices/cpu/arcompact/arcompact.c
index dca1bf9fd91..dca1bf9fd91 100644
--- a/src/emu/cpu/arcompact/arcompact.c
+++ b/src/devices/cpu/arcompact/arcompact.c
diff --git a/src/emu/cpu/arcompact/arcompact.h b/src/devices/cpu/arcompact/arcompact.h
index 09f1cf708c2..09f1cf708c2 100644
--- a/src/emu/cpu/arcompact/arcompact.h
+++ b/src/devices/cpu/arcompact/arcompact.h
diff --git a/src/emu/cpu/arcompact/arcompact_common.c b/src/devices/cpu/arcompact/arcompact_common.c
index f9b74683461..f9b74683461 100644
--- a/src/emu/cpu/arcompact/arcompact_common.c
+++ b/src/devices/cpu/arcompact/arcompact_common.c
diff --git a/src/emu/cpu/arcompact/arcompact_common.h b/src/devices/cpu/arcompact/arcompact_common.h
index 86259ba2972..86259ba2972 100644
--- a/src/emu/cpu/arcompact/arcompact_common.h
+++ b/src/devices/cpu/arcompact/arcompact_common.h
diff --git a/src/emu/cpu/arcompact/arcompact_execute.c b/src/devices/cpu/arcompact/arcompact_execute.c
index ae241987190..ae241987190 100644
--- a/src/emu/cpu/arcompact/arcompact_execute.c
+++ b/src/devices/cpu/arcompact/arcompact_execute.c
diff --git a/src/devices/cpu/arcompact/arcompact_make.py b/src/devices/cpu/arcompact/arcompact_make.py
new file mode 100644
index 00000000000..080fd72b426
--- /dev/null
+++ b/src/devices/cpu/arcompact/arcompact_make.py
@@ -0,0 +1,434 @@
+#!/usr/bin/python
+
+from __future__ import print_function
+import sys
+
+def EmitGroup04_Handle_NZ_Flags(f, funcname, opname):
+ print(" if (result & 0x80000000) { STATUS32_SET_N; }", file=f)
+ print(" else { STATUS32_CLEAR_N; }", file=f)
+ print(" if (result == 0x00000000) { STATUS32_SET_Z; }", file=f)
+ print(" else { STATUS32_CLEAR_Z; }", file=f)
+
+def EmitGroup04_Handle_NZC_LSR1_Flags(f, funcname, opname):
+ print(" if (result & 0x80000000) { STATUS32_SET_N; }", file=f)
+ print(" else { STATUS32_CLEAR_N; }", file=f)
+ print(" if (result == 0x00000000) { STATUS32_SET_Z; }", file=f)
+ print(" else { STATUS32_CLEAR_Z; }", file=f)
+ print(" if (c == 0x00000001) { STATUS32_SET_C; }", file=f)
+ print(" else { STATUS32_CLEAR_C; }", file=f)
+
+def EmitGroup04_Handle_NZCV_ADD_Flags(f, funcname, opname):
+ print(" if (result & 0x80000000) { STATUS32_SET_N; }", file=f)
+ print(" else { STATUS32_CLEAR_N; }", file=f)
+ print(" if (result == 0x00000000) { STATUS32_SET_Z; }", file=f)
+ print(" else { STATUS32_CLEAR_Z; }", file=f)
+ print(" if ((b & 0x80000000) == (c & 0x80000000))", file=f)
+ print(" {", file=f)
+ print(" if ((result & 0x80000000) != (b & 0x80000000))", file=f)
+ print(" {", file=f)
+ print(" STATUS32_SET_V;", file=f)
+ print(" }", file=f)
+ print(" else", file=f)
+ print(" {", file=f)
+ print(" STATUS32_CLEAR_V;", file=f)
+ print(" }", file=f)
+ print(" }", file=f)
+ print(" if (b < c)", file=f)
+ print(" {", file=f)
+ print(" STATUS32_SET_C;", file=f)
+ print(" }", file=f)
+ print(" else", file=f)
+ print(" {", file=f)
+ print(" STATUS32_CLEAR_C;", file=f)
+ print(" }", file=f)
+
+
+def EmitGroup04_no_Flags(f, funcname, opname):
+ print(" // no flag changes", file=f)
+
+def EmitGroup04_unsupported_Flags(f, funcname, opname):
+ print(" arcompact_fatal(\"arcompact_handle%s (%s) (F set)\\n\"); // not yet supported" % (funcname, opname), file=f)
+
+def EmitGroup04_Flaghandler(f,funcname, opname, flagcondition, flaghandler):
+ if flagcondition == -1:
+ print(" if (F)", file=f)
+ print(" {", file=f)
+ flaghandler(f, funcname, opname)
+ print(" }", file=f)
+ elif flagcondition == 0:
+ print(" if (0)", file=f)
+ print(" {", file=f)
+ flaghandler(f, funcname, opname)
+ print(" }", file=f)
+ elif flagcondition == 1:
+ print(" if (1)", file=f)
+ print(" {", file=f)
+ flaghandler(f, funcname, opname)
+ print(" }", file=f)
+
+def EmitGroup04_u5fragment(f,funcname, opname, opexecute, opwrite, opwrite_alt, ignore_a, breg_is_dst_only, flagcondition, flaghandler):
+ print(" int size = 4;", file=f)
+
+ if breg_is_dst_only == 0:
+ print(" UINT32 limm = 0;", file=f)
+
+ print("/* int got_limm = 0; */", file=f)
+ print(" ", file=f)
+ print(" COMMON32_GET_breg;", file=f)
+
+ if flagcondition == -1:
+ print(" COMMON32_GET_F;", file=f)
+
+ print(" COMMON32_GET_u6;", file=f)
+
+ if ignore_a == 0:
+ print(" COMMON32_GET_areg;", file=f)
+ elif ignore_a == 1:
+ print(" //COMMON32_GET_areg; // areg is reserved / not used", file=f)
+ elif ignore_a == 2:
+ print(" //COMMON32_GET_areg; // areg bits already used as opcode select", file=f)
+ elif ignore_a == 3:
+ print(" //COMMON32_GET_areg; // areg bits already used as condition code select", file=f)
+ print(" ", file=f)
+
+ print(" UINT32 c;", file=f)
+ if breg_is_dst_only == 0:
+ print(" UINT32 b;", file=f)
+ print(" ", file=f)
+ print(" /* is having b as LIMM valid here? LIMM vs. fixed u6 value makes no sense */", file=f)
+ print(" if (breg == LIMM_REG)", file=f)
+ print(" {", file=f)
+ print(" GET_LIMM_32;", file=f)
+ print(" size = 8;", file=f)
+ print("/* got_limm = 1; */", file=f)
+ print(" b = limm;", file=f)
+ print(" }", file=f)
+ print(" else", file=f)
+ print(" {", file=f)
+ print(" b = m_regs[breg];", file=f)
+ print(" }", file=f)
+
+ print(" ", file=f)
+ print(" c = u;", file=f)
+ print(" ", file=f)
+ print(" /* todo: if areg = LIMM then there is no result (but since that register can never be read, I guess it doesn't matter if we store it there anyway?) */", file=f)
+
+def EmitGroup04(f,funcname, opname, opexecute, opwrite, opwrite_alt, ignore_a, breg_is_dst_only, flagcondition, flaghandler):
+ # the mode 0x00 handler
+ print("ARCOMPACT_RETTYPE arcompact_device::arcompact_handle%s_p00(OPS_32)" % funcname, file=f)
+ print("{", file=f)
+ print(" int size = 4;", file=f)
+
+ print(" UINT32 limm = 0;", file=f)
+
+ print(" int got_limm = 0;", file=f)
+ print(" ", file=f)
+ print(" COMMON32_GET_breg;", file=f)
+
+ if flagcondition == -1:
+ print(" COMMON32_GET_F;", file=f)
+
+ print(" COMMON32_GET_creg;", file=f)
+
+ if ignore_a == 0:
+ print(" COMMON32_GET_areg;", file=f)
+ elif ignore_a == 1:
+ print(" //COMMON32_GET_areg; // areg is reserved / not used", file=f)
+ elif ignore_a == 2:
+ print(" //COMMON32_GET_areg; // areg bits already used as opcode select", file=f)
+
+ print(" ", file=f)
+
+ print(" UINT32 c;", file=f)
+ if breg_is_dst_only == 0:
+ print(" UINT32 b;", file=f)
+ print(" ", file=f)
+ print(" if (breg == LIMM_REG)", file=f)
+ print(" {", file=f)
+ print(" GET_LIMM_32;", file=f)
+ print(" size = 8;", file=f)
+ print(" got_limm = 1;", file=f)
+ print(" b = limm;", file=f)
+ print(" }", file=f)
+ print(" else", file=f)
+ print(" {", file=f)
+ print(" b = m_regs[breg];", file=f)
+ print(" }", file=f)
+
+ print(" ", file=f)
+ print(" if (creg == LIMM_REG)", file=f)
+ print(" {", file=f)
+ print(" if (!got_limm)", file=f)
+ print(" {", file=f)
+ print(" GET_LIMM_32;", file=f)
+ print(" size = 8;", file=f)
+ print(" }", file=f)
+ print(" c = limm;", file=f)
+ print(" }", file=f)
+ print(" else", file=f)
+ print(" {", file=f)
+ print(" c = m_regs[creg];", file=f)
+ print(" }", file=f)
+ print(" /* todo: is the limm, limm syntax valid? (it's pointless.) */", file=f)
+ print(" /* todo: if areg = LIMM then there is no result (but since that register can never be read, I guess it doesn't matter if we store it there anyway?) */", file=f)
+ print(" %s" % opexecute, file=f)
+ print(" %s" % opwrite, file=f)
+ print(" ", file=f)
+ EmitGroup04_Flaghandler(f,funcname,opname,flagcondition,flaghandler)
+ print(" return m_pc + (size >> 0);", file=f)
+ print("}", file=f)
+ print("", file=f)
+ print("", file=f)
+ # the mode 0x01 handler
+ print("ARCOMPACT_RETTYPE arcompact_device::arcompact_handle%s_p01(OPS_32)" % funcname, file=f)
+ print("{", file=f)
+ EmitGroup04_u5fragment(f,funcname, opname, opexecute, opwrite, opwrite_alt, ignore_a, breg_is_dst_only, flagcondition, flaghandler)
+ print(" %s" % opexecute, file=f)
+ print(" %s" % opwrite, file=f)
+ print(" ", file=f)
+ EmitGroup04_Flaghandler(f,funcname,opname,flagcondition,flaghandler)
+ print(" return m_pc + (size >> 0);", file=f)
+ print("}", file=f)
+ print("", file=f)
+ print("", file=f)
+ # the mode 0x10 handler
+ print("ARCOMPACT_RETTYPE arcompact_device::arcompact_handle%s_p10(OPS_32)" % funcname, file=f)
+ if ignore_a == 2:
+ print("{", file=f)
+ print(" int size = 4;", file=f)
+ print(" arcompact_fatal(\"illegal arcompact_handle%s_p10 (ares bits already used as opcode select, can't be used as s12) (%s)\\n\");" % (funcname, opname), file=f)
+ print(" return m_pc + (size >> 0);", file=f)
+ print("}", file=f)
+ else:
+ print("{", file=f)
+ print(" int size = 4;", file=f)
+ if breg_is_dst_only == 0:
+ print(" UINT32 limm = 0;", file=f)
+
+ print("/* int got_limm = 0; */", file=f)
+ print(" ", file=f)
+ print(" COMMON32_GET_breg;", file=f)
+
+ if flagcondition == -1:
+ print(" COMMON32_GET_F;", file=f)
+
+ print(" COMMON32_GET_s12;", file=f)
+
+ # areg can't be used here, it's used for s12 bits
+
+ print(" ", file=f)
+ print(" UINT32 c;", file=f)
+ if breg_is_dst_only == 0:
+ print(" UINT32 b;", file=f)
+ print(" ", file=f)
+ print(" /* is having b as LIMM valid here? LIMM vs. fixed u6 value makes no sense */", file=f)
+ print(" if (breg == LIMM_REG)", file=f)
+ print(" {", file=f)
+ print(" GET_LIMM_32;", file=f)
+ print(" size = 8;", file=f)
+ print("/* got_limm = 1; */", file=f)
+ print(" b = limm;", file=f)
+ print(" }", file=f)
+ print(" else", file=f)
+ print(" {", file=f)
+ print(" b = m_regs[breg];", file=f)
+ print(" }", file=f)
+
+ print(" ", file=f)
+ print(" c = (UINT32)S;", file=f)
+ print(" ", file=f)
+ print(" /* todo: if areg = LIMM then there is no result (but since that register can never be read, I guess it doesn't matter if we store it there anyway?) */", file=f)
+ print(" %s" % opexecute, file=f)
+ print(" %s" % opwrite_alt, file=f)
+ print(" ", file=f)
+ EmitGroup04_Flaghandler(f,funcname,opname,flagcondition,flaghandler)
+ print(" return m_pc + (size >> 0);", file=f)
+ print("}", file=f)
+ print("", file=f)
+ print("", file=f)
+ # the mode 0x11 m0 handler
+ print("ARCOMPACT_RETTYPE arcompact_device::arcompact_handle%s_p11_m0(OPS_32)" % funcname, file=f)
+ if ignore_a == 2:
+ print("{", file=f)
+ print(" int size = 4;", file=f)
+ print(" arcompact_fatal(\"illegal arcompact_handle%s_p11_m0 (ares bits already used as opcode select, can't be used as Q condition) (%s)\\n\");" % (funcname, opname), file=f)
+ print(" return m_pc + (size >> 0);", file=f)
+ print("}", file=f)
+ else:
+ print("{", file=f)
+ print(" int size = 4;", file=f)
+ print(" arcompact_fatal(\"arcompact_handle%s_p11_m0 (%s)\\n\");" % (funcname, opname), file=f)
+ print(" return m_pc + (size >> 0);", file=f)
+ print("}", file=f)
+ print("", file=f)
+ print("", file=f)
+ # the mode 0x11 m1 handler
+ print("ARCOMPACT_RETTYPE arcompact_device::arcompact_handle%s_p11_m1(OPS_32)" % funcname, file=f)
+ if ignore_a == 2:
+ print("{", file=f)
+ print(" int size = 4;", file=f)
+ print(" arcompact_fatal(\"illegal arcompact_handle%s_p11_m1 (ares bits already used as opcode select, can't be used as Q condition) (%s)\\n\");" % (funcname, opname), file=f)
+ print(" return m_pc + (size >> 0);", file=f)
+ print("}", file=f)
+ else:
+ print("{", file=f)
+ EmitGroup04_u5fragment(f,funcname, opname, opexecute, opwrite, opwrite_alt, 3, breg_is_dst_only, flagcondition, flaghandler)
+ print(" COMMON32_GET_CONDITION;", file=f)
+ print(" if (!check_condition(condition))", file=f)
+ print(" return m_pc + (size>>0);", file=f)
+ print("", file=f)
+ print(" %s" % opexecute, file=f)
+ print(" %s" % opwrite_alt, file=f)
+ print(" ", file=f)
+ EmitGroup04_Flaghandler(f,funcname,opname,flagcondition,flaghandler)
+ print(" return m_pc + (size >> 0);", file=f)
+ print("}", file=f)
+ print("", file=f)
+ print("", file=f)
+
+
+# xxx_S c, b, u3 format opcodes (note c is destination)
+def EmitGroup0d(f,funcname, opname, opexecute, opwrite):
+ print("ARCOMPACT_RETTYPE arcompact_device::arcompact_handle%s(OPS_16)" % funcname, file=f)
+ print("{", file=f)
+ print(" int u, breg, creg;", file=f)
+ print("", file=f)
+ print(" COMMON16_GET_u3;", file=f)
+ print(" COMMON16_GET_breg;", file=f)
+ print(" COMMON16_GET_creg;", file=f)
+ print("", file=f)
+ print(" REG_16BIT_RANGE(breg);", file=f)
+ print(" REG_16BIT_RANGE(creg);", file=f)
+ print("", file=f)
+ print(" %s" % opexecute, file=f)
+ print(" %s" % opwrite, file=f)
+ print("", file=f)
+ print(" return m_pc + (2 >> 0);", file=f)
+ print("}", file=f)
+ print("", file=f)
+ print("", file=f)
+
+
+# xxx_S b <- b,c format opcodes
+def EmitGroup0f(f,funcname, opname, opexecute, opwrite):
+ print("ARCOMPACT_RETTYPE arcompact_device::arcompact_handle%s(OPS_16)"% funcname, file=f)
+ print("{", file=f)
+ print(" int breg, creg;", file=f)
+ print("", file=f)
+ print(" COMMON16_GET_breg;", file=f)
+ print(" COMMON16_GET_creg;", file=f)
+ print("", file=f)
+ print(" REG_16BIT_RANGE(breg);", file=f)
+ print(" REG_16BIT_RANGE(creg);", file=f)
+ print("", file=f)
+ print(" %s" % opexecute, file=f)
+ print(" %s" % opwrite, file=f)
+ print("", file=f)
+ print(" return m_pc + (2 >> 0);", file=f)
+ print("}", file=f)
+ print("", file=f)
+ print("", file=f)
+
+
+# xxx_S b, b, u5 format opcodes
+def EmitGroup17(f,funcname, opname, opexecute):
+ print("ARCOMPACT_RETTYPE arcompact_device::arcompact_handle%s(OPS_16)" % funcname, file=f)
+ print("{", file=f)
+ print(" int breg, u;", file=f)
+ print(" ", file=f)
+ print(" COMMON16_GET_breg;", file=f)
+ print(" COMMON16_GET_u5;", file=f)
+ print(" ", file=f)
+ print(" REG_16BIT_RANGE(breg);", file=f)
+ print(" ", file=f)
+ print(" %s" % opexecute, file=f)
+ print(" ", file=f)
+ print(" return m_pc + (2 >> 0);", file=f)
+ print("}", file=f)
+ print("", file=f)
+ print("", file=f)
+
+
+
+try:
+ f = open(sys.argv[1], "w")
+except Exception:
+ err = sys.exc_info()[1]
+ sys.stderr.write("cannot write file %s [%s]\n" % (sys.argv[1], err))
+ sys.exit(1)
+
+
+EmitGroup04(f, "04_00", "ADD", "UINT32 result = b + c;", "m_regs[areg] = result;", "m_regs[breg] = result;", 0,0, -1, EmitGroup04_Handle_NZCV_ADD_Flags )
+
+EmitGroup04(f, "04_02", "SUB", "UINT32 result = b - c;", "m_regs[areg] = result;", "m_regs[breg] = result;", 0,0, -1, EmitGroup04_unsupported_Flags )
+
+EmitGroup04(f, "04_04", "AND", "UINT32 result = b & c;", "if (areg != LIMM_REG) { m_regs[areg] = result; }", "if (breg != LIMM_REG) { m_regs[breg] = result; }", 0,0, -1, EmitGroup04_Handle_NZ_Flags )
+EmitGroup04(f, "04_05", "OR", "UINT32 result = b | c;", "m_regs[areg] = result;", "m_regs[breg] = result;", 0,0, -1, EmitGroup04_unsupported_Flags )
+EmitGroup04(f, "04_06", "BIC", "UINT32 result = b & (~c);", "m_regs[areg] = result;", "m_regs[breg] = result;", 0,0, -1, EmitGroup04_unsupported_Flags )
+EmitGroup04(f, "04_07", "XOR", "UINT32 result = b ^ c;", "m_regs[areg] = result;", "m_regs[breg] = result;", 0,0, -1, EmitGroup04_unsupported_Flags )
+
+EmitGroup04(f, "04_0a", "MOV", "UINT32 result = c;", "m_regs[breg] = result;", "m_regs[breg] = result;", 1,1, -1, EmitGroup04_Handle_NZ_Flags ) # special case, result always goes to breg
+
+EmitGroup04(f, "04_0e", "RSUB", "UINT32 result = c - b;", "m_regs[areg] = result;", "m_regs[breg] = result;", 0,0, -1, EmitGroup04_unsupported_Flags )
+EmitGroup04(f, "04_0f", "BSET", "UINT32 result = b | (1 << (c & 0x1f));", "m_regs[areg] = result;", "m_regs[breg] = result;", 0,0, -1, EmitGroup04_unsupported_Flags )
+
+EmitGroup04(f, "04_13", "BMSK", "UINT32 result = b & ((1<<(c+1))-1);", "m_regs[areg] = result;", "m_regs[breg] = result;", 0,0, -1, EmitGroup04_unsupported_Flags )
+
+
+EmitGroup04(f, "04_14", "ADD1", "UINT32 result = b + (c << 1);", "m_regs[areg] = result;", "m_regs[breg] = result;", 0,0, -1, EmitGroup04_unsupported_Flags )
+EmitGroup04(f, "04_15", "ADD2", "UINT32 result = b + (c << 2);", "m_regs[areg] = result;", "m_regs[breg] = result;", 0,0, -1, EmitGroup04_unsupported_Flags )
+EmitGroup04(f, "04_16", "ADD3", "UINT32 result = b + (c << 3);", "m_regs[areg] = result;", "m_regs[breg] = result;", 0,0, -1, EmitGroup04_unsupported_Flags )
+EmitGroup04(f, "04_17", "SUB1", "UINT32 result = b - (c << 1);", "m_regs[areg] = result;", "m_regs[breg] = result;", 0,0, -1, EmitGroup04_unsupported_Flags )
+EmitGroup04(f, "04_18", "SUB2", "UINT32 result = b - (c << 2);", "m_regs[areg] = result;", "m_regs[breg] = result;", 0,0, -1, EmitGroup04_unsupported_Flags )
+EmitGroup04(f, "04_19", "SUB3", "UINT32 result = b - (c << 3);", "m_regs[areg] = result;", "m_regs[breg] = result;", 0,0, -1, EmitGroup04_unsupported_Flags )
+
+EmitGroup04(f, "04_2a", "LR", "m_regs[breg] = READAUX(c);", "", "", 1,1, -1, EmitGroup04_no_Flags ) # this can't be conditional (todo)
+EmitGroup04(f, "04_2b", "SR", "WRITEAUX(c,b);", "", "", 1,0, -1, EmitGroup04_no_Flags ) # this can't be conditional (todo)
+
+
+
+EmitGroup04(f, "05_00", "ASL", "UINT32 result = b << (c&0x1f);", "m_regs[areg] = result;", "m_regs[breg] = result;", 0,0, -1, EmitGroup04_unsupported_Flags )
+EmitGroup04(f, "05_01", "LSR", "UINT32 result = b >> (c&0x1f);", "m_regs[areg] = result;", "m_regs[breg] = result;", 0,0, -1, EmitGroup04_unsupported_Flags )
+
+# the 04_2f subgroup uses the same encoding, but the areg is already used as sub-opcode select, so any modes relying on areg bits for other reasons (sign, condition) (modes 10, 11m0, 11m1) are illegal. the destination is also breg not areg
+EmitGroup04(f, "04_2f_02", "LSR1", "UINT32 result = c >> 1;", "m_regs[breg] = result;","", 2,1, -1, EmitGroup04_Handle_NZC_LSR1_Flags ) # no alt handler (invalid path)
+EmitGroup04(f, "04_2f_03", "ROR", "int shift = 1; UINT32 mask = (1 << (shift)) - 1; mask <<= (32-shift); UINT32 result = ((c >> shift) & ~mask) | ((c << (32-shift)) & mask);", "m_regs[breg] = result;","", 2,1, -1, EmitGroup04_Handle_NZC_LSR1_Flags )
+
+
+EmitGroup04(f, "04_2f_07", "EXTB", "UINT32 result = c & 0x000000ff;", "m_regs[breg] = result;","", 2,1, -1, EmitGroup04_unsupported_Flags ) # ^
+EmitGroup04(f, "04_2f_08", "EXTW", "UINT32 result = c & 0x0000ffff;", "m_regs[breg] = result;","", 2,1, -1, EmitGroup04_unsupported_Flags ) # ^
+
+# xxx_S c, b, u3 format opcodes (note c is destination)
+EmitGroup0d(f, "0d_00", "ADD_S", "UINT32 result = m_regs[breg] + u;", "m_regs[creg] = result;" )
+EmitGroup0d(f, "0d_01", "SUB_S", "UINT32 result = m_regs[breg] - u;", "m_regs[creg] = result;" )
+EmitGroup0d(f, "0d_02", "ASL_S", "UINT32 result = m_regs[breg] << u;", "m_regs[creg] = result;" )
+
+# xxx_S b <- b,c format opcodes (or in some cases xxx_S b,c)
+EmitGroup0f(f, "0f_02", "SUB_S", "UINT32 result = m_regs[breg] - m_regs[creg];", "m_regs[breg] = result;" )
+EmitGroup0f(f, "0f_04", "AND_S", "UINT32 result = m_regs[breg] & m_regs[creg];", "m_regs[breg] = result;" )
+EmitGroup0f(f, "0f_05", "OR_S", "UINT32 result = m_regs[breg] | m_regs[creg];", "m_regs[breg] = result;" )
+EmitGroup0f(f, "0f_07", "XOR_S", "UINT32 result = m_regs[breg] ^ m_regs[creg];", "m_regs[breg] = result;" )
+EmitGroup0f(f, "0f_0f", "EXTB_S","UINT32 result = m_regs[creg] & 0x000000ff;", "m_regs[breg] = result;" )
+EmitGroup0f(f, "0f_10", "EXTW_S","UINT32 result = m_regs[creg] & 0x0000ffff;", "m_regs[breg] = result;" )
+EmitGroup0f(f, "0f_13", "NEG_S"," UINT32 result = 0 - m_regs[creg];", "m_regs[breg] = result;" )
+
+EmitGroup0f(f, "0f_14", "ADD1_S"," UINT32 result = m_regs[breg] + (m_regs[creg] <<1);", "m_regs[breg] = result;" )
+EmitGroup0f(f, "0f_15", "ADD2_S"," UINT32 result = m_regs[breg] + (m_regs[creg] <<2);", "m_regs[breg] = result;" )
+EmitGroup0f(f, "0f_16", "ADD3_S"," UINT32 result = m_regs[breg] + (m_regs[creg] <<3);", "m_regs[breg] = result;" )
+
+EmitGroup0f(f, "0f_19", "LSR_S", "UINT32 result = m_regs[breg] >> (m_regs[creg]&0x1f);","m_regs[breg] = result;" )
+EmitGroup0f(f, "0f_1b", "ASL1_S","UINT32 result = m_regs[creg] << 1;", "m_regs[breg] = result;" )
+
+
+# xxx_S b, b, u5 format opcodes
+EmitGroup17(f, "17_00", "ASL_S", "m_regs[breg] = m_regs[breg] << (u&0x1f);" )
+EmitGroup17(f, "17_01", "LSR_S", "m_regs[breg] = m_regs[breg] >> (u&0x1f);" )
+EmitGroup17(f, "17_02", "ASR_S", "INT32 temp = (INT32)m_regs[breg]; m_regs[breg] = temp >> (u&0x1f); // treat it as a signed value, so sign extension occurs during shift" )
+EmitGroup17(f, "17_03", "SUB_S", "m_regs[breg] = m_regs[breg] - u;" )
+EmitGroup17(f, "17_04", "BSET_S", "m_regs[breg] = m_regs[breg] | (1 << (u & 0x1f));" )
+
+EmitGroup17(f, "17_06", "BMSK_S", "m_regs[breg] = m_regs[breg] | ((1 << (u + 1)) - 1);" )
+
+
+
+
diff --git a/src/emu/cpu/arcompact/arcompactdasm.c b/src/devices/cpu/arcompact/arcompactdasm.c
index 0b917a05d56..0b917a05d56 100644
--- a/src/emu/cpu/arcompact/arcompactdasm.c
+++ b/src/devices/cpu/arcompact/arcompactdasm.c
diff --git a/src/emu/cpu/arcompact/arcompactdasm_dispatch.c b/src/devices/cpu/arcompact/arcompactdasm_dispatch.c
index ddd809b84bc..ddd809b84bc 100644
--- a/src/emu/cpu/arcompact/arcompactdasm_dispatch.c
+++ b/src/devices/cpu/arcompact/arcompactdasm_dispatch.c
diff --git a/src/emu/cpu/arcompact/arcompactdasm_dispatch.h b/src/devices/cpu/arcompact/arcompactdasm_dispatch.h
index 40cb06f2d6b..40cb06f2d6b 100644
--- a/src/emu/cpu/arcompact/arcompactdasm_dispatch.h
+++ b/src/devices/cpu/arcompact/arcompactdasm_dispatch.h
diff --git a/src/emu/cpu/arcompact/arcompactdasm_ops.c b/src/devices/cpu/arcompact/arcompactdasm_ops.c
index eeac8cac2f8..eeac8cac2f8 100644
--- a/src/emu/cpu/arcompact/arcompactdasm_ops.c
+++ b/src/devices/cpu/arcompact/arcompactdasm_ops.c
diff --git a/src/emu/cpu/arcompact/arcompactdasm_ops.h b/src/devices/cpu/arcompact/arcompactdasm_ops.h
index a2d09d83441..a2d09d83441 100644
--- a/src/emu/cpu/arcompact/arcompactdasm_ops.h
+++ b/src/devices/cpu/arcompact/arcompactdasm_ops.h
diff --git a/src/emu/cpu/arm/arm.c b/src/devices/cpu/arm/arm.c
index 8d9b420486d..8d9b420486d 100644
--- a/src/emu/cpu/arm/arm.c
+++ b/src/devices/cpu/arm/arm.c
diff --git a/src/emu/cpu/arm/arm.h b/src/devices/cpu/arm/arm.h
index 824ac1b69db..824ac1b69db 100644
--- a/src/emu/cpu/arm/arm.h
+++ b/src/devices/cpu/arm/arm.h
diff --git a/src/emu/cpu/arm/armdasm.c b/src/devices/cpu/arm/armdasm.c
index 83860b22aff..83860b22aff 100644
--- a/src/emu/cpu/arm/armdasm.c
+++ b/src/devices/cpu/arm/armdasm.c
diff --git a/src/emu/cpu/arm7/arm7.c b/src/devices/cpu/arm7/arm7.c
index 346dcb1020d..346dcb1020d 100644
--- a/src/emu/cpu/arm7/arm7.c
+++ b/src/devices/cpu/arm7/arm7.c
diff --git a/src/emu/cpu/arm7/arm7.h b/src/devices/cpu/arm7/arm7.h
index 9b98151494f..9b98151494f 100644
--- a/src/emu/cpu/arm7/arm7.h
+++ b/src/devices/cpu/arm7/arm7.h
diff --git a/src/emu/cpu/arm7/arm7core.h b/src/devices/cpu/arm7/arm7core.h
index 2bdd15d7ba3..2bdd15d7ba3 100644
--- a/src/emu/cpu/arm7/arm7core.h
+++ b/src/devices/cpu/arm7/arm7core.h
diff --git a/src/emu/cpu/arm7/arm7core.inc b/src/devices/cpu/arm7/arm7core.inc
index 736d42b0262..736d42b0262 100644
--- a/src/emu/cpu/arm7/arm7core.inc
+++ b/src/devices/cpu/arm7/arm7core.inc
diff --git a/src/emu/cpu/arm7/arm7dasm.c b/src/devices/cpu/arm7/arm7dasm.c
index b749d3624a2..b749d3624a2 100644
--- a/src/emu/cpu/arm7/arm7dasm.c
+++ b/src/devices/cpu/arm7/arm7dasm.c
diff --git a/src/emu/cpu/arm7/arm7drc.inc b/src/devices/cpu/arm7/arm7drc.inc
index d31eee5a632..d31eee5a632 100644
--- a/src/emu/cpu/arm7/arm7drc.inc
+++ b/src/devices/cpu/arm7/arm7drc.inc
diff --git a/src/emu/cpu/arm7/arm7help.h b/src/devices/cpu/arm7/arm7help.h
index 5625318b942..5625318b942 100644
--- a/src/emu/cpu/arm7/arm7help.h
+++ b/src/devices/cpu/arm7/arm7help.h
diff --git a/src/emu/cpu/arm7/arm7ops.c b/src/devices/cpu/arm7/arm7ops.c
index 9b96ca9054c..9b96ca9054c 100644
--- a/src/emu/cpu/arm7/arm7ops.c
+++ b/src/devices/cpu/arm7/arm7ops.c
diff --git a/src/emu/cpu/arm7/arm7tdrc.inc b/src/devices/cpu/arm7/arm7tdrc.inc
index ee0573a32e7..ee0573a32e7 100644
--- a/src/emu/cpu/arm7/arm7tdrc.inc
+++ b/src/devices/cpu/arm7/arm7tdrc.inc
diff --git a/src/emu/cpu/arm7/arm7thmb.c b/src/devices/cpu/arm7/arm7thmb.c
index 3dfd46094aa..3dfd46094aa 100644
--- a/src/emu/cpu/arm7/arm7thmb.c
+++ b/src/devices/cpu/arm7/arm7thmb.c
diff --git a/src/emu/cpu/asap/asap.c b/src/devices/cpu/asap/asap.c
index 21133e46975..21133e46975 100644
--- a/src/emu/cpu/asap/asap.c
+++ b/src/devices/cpu/asap/asap.c
diff --git a/src/emu/cpu/asap/asap.h b/src/devices/cpu/asap/asap.h
index 6cac9ee4c36..6cac9ee4c36 100644
--- a/src/emu/cpu/asap/asap.h
+++ b/src/devices/cpu/asap/asap.h
diff --git a/src/emu/cpu/asap/asapdasm.c b/src/devices/cpu/asap/asapdasm.c
index eb16985da1b..eb16985da1b 100644
--- a/src/emu/cpu/asap/asapdasm.c
+++ b/src/devices/cpu/asap/asapdasm.c
diff --git a/src/emu/cpu/avr8/avr8.c b/src/devices/cpu/avr8/avr8.c
index 0f15c655cb4..ebd880af285 100644
--- a/src/emu/cpu/avr8/avr8.c
+++ b/src/devices/cpu/avr8/avr8.c
@@ -40,20 +40,20 @@
- Fixed V and C flags in SBIW opcode
30 Oct. 2012
- - Added FMUL, FMULS, FMULSU opcodes [MooglyGuy]
- - Fixed incorrect flag calculation in ROR opcode [MooglyGuy]
- - Fixed incorrect bit testing in SBIC/SBIS opcodes [MooglyGuy]
+ - Added FMUL, FMULS, FMULSU opcodes [Ryan Holtz]
+ - Fixed incorrect flag calculation in ROR opcode [Ryan Holtz]
+ - Fixed incorrect bit testing in SBIC/SBIS opcodes [Ryan Holtz]
25 Oct. 2012
- - Added MULS, ANDI, STI Z+, LD -Z, LD -Y, LD -X, LD Y+q, LD Z+q, SWAP, ASR, ROR and SBIS opcodes [MooglyGuy]
- - Corrected cycle counts for LD and ST opcodes [MooglyGuy]
+ - Added MULS, ANDI, STI Z+, LD -Z, LD -Y, LD -X, LD Y+q, LD Z+q, SWAP, ASR, ROR and SBIS opcodes [Ryan Holtz]
+ - Corrected cycle counts for LD and ST opcodes [Ryan Holtz]
- Moved opcycles init into inner while loop, fixes 2-cycle and 3-cycle opcodes effectively forcing
- all subsequent 1-cycle opcodes to be 2 or 3 cycles [MooglyGuy]
- - Fixed register behavior in MULSU, LD -Z, and LD -Y opcodes [MooglyGuy]
+ all subsequent 1-cycle opcodes to be 2 or 3 cycles [Ryan Holtz]
+ - Fixed register behavior in MULSU, LD -Z, and LD -Y opcodes [Ryan Holtz]
18 Oct. 2012
- - Added OR, SBCI, ORI, ST Y+, ADIQ opcodes [MooglyGuy]
- - Fixed COM, NEG, LSR opcodes [MooglyGuy]
+ - Added OR, SBCI, ORI, ST Y+, ADIQ opcodes [Ryan Holtz]
+ - Fixed COM, NEG, LSR opcodes [Ryan Holtz]
*/
diff --git a/src/emu/cpu/avr8/avr8.h b/src/devices/cpu/avr8/avr8.h
index 3b3cbd8f6a0..fb9433ff824 100644
--- a/src/emu/cpu/avr8/avr8.h
+++ b/src/devices/cpu/avr8/avr8.h
@@ -20,20 +20,20 @@
- Fixed V and C flags in SBIW opcode
30 Oct. 2012
- - Added FMUL, FMULS, FMULSU opcodes [MooglyGuy]
- - Fixed incorrect flag calculation in ROR opcode [MooglyGuy]
- - Fixed incorrect bit testing in SBIC/SBIS opcodes [MooglyGuy]
+ - Added FMUL, FMULS, FMULSU opcodes [Ryan Holtz]
+ - Fixed incorrect flag calculation in ROR opcode [Ryan Holtz]
+ - Fixed incorrect bit testing in SBIC/SBIS opcodes [Ryan Holtz]
25 Oct. 2012
- - Added MULS, ANDI, STI Z+, LD -Z, LD -Y, LD -X, LD Y+q, LD Z+q, SWAP, ASR, ROR and SBIS opcodes [MooglyGuy]
- - Corrected cycle counts for LD and ST opcodes [MooglyGuy]
+ - Added MULS, ANDI, STI Z+, LD -Z, LD -Y, LD -X, LD Y+q, LD Z+q, SWAP, ASR, ROR and SBIS opcodes [Ryan Holtz]
+ - Corrected cycle counts for LD and ST opcodes [Ryan Holtz]
- Moved opcycles init into inner while loop, fixes 2-cycle and 3-cycle opcodes effectively forcing
- all subsequent 1-cycle opcodes to be 2 or 3 cycles [MooglyGuy]
- - Fixed register behavior in MULSU, LD -Z, and LD -Y opcodes [MooglyGuy]
+ all subsequent 1-cycle opcodes to be 2 or 3 cycles [Ryan Holtz]
+ - Fixed register behavior in MULSU, LD -Z, and LD -Y opcodes [Ryan Holtz]
18 Oct. 2012
- - Added OR, SBCI, ORI, ST Y+, ADIQ opcodes [MooglyGuy]
- - Fixed COM, NEG, LSR opcodes [MooglyGuy]
+ - Added OR, SBCI, ORI, ST Y+, ADIQ opcodes [Ryan Holtz]
+ - Fixed COM, NEG, LSR opcodes [Ryan Holtz]
*/
diff --git a/src/emu/cpu/avr8/avr8dasm.c b/src/devices/cpu/avr8/avr8dasm.c
index 30f62779c8d..62d5808d16c 100644
--- a/src/emu/cpu/avr8/avr8dasm.c
+++ b/src/devices/cpu/avr8/avr8dasm.c
@@ -3,7 +3,7 @@
/*
Atmel 8-bit AVR disassembler
- Written by MooglyGuy
+ Written by Ryan Holtz
*/
#include "emu.h"
diff --git a/src/emu/cpu/ccpu/ccpu.c b/src/devices/cpu/ccpu/ccpu.c
index e8893580f0c..e8893580f0c 100644
--- a/src/emu/cpu/ccpu/ccpu.c
+++ b/src/devices/cpu/ccpu/ccpu.c
diff --git a/src/emu/cpu/ccpu/ccpu.h b/src/devices/cpu/ccpu/ccpu.h
index 96a0fac344a..96a0fac344a 100644
--- a/src/emu/cpu/ccpu/ccpu.h
+++ b/src/devices/cpu/ccpu/ccpu.h
diff --git a/src/emu/cpu/ccpu/ccpudasm.c b/src/devices/cpu/ccpu/ccpudasm.c
index e1f54d1ec00..e1f54d1ec00 100644
--- a/src/emu/cpu/ccpu/ccpudasm.c
+++ b/src/devices/cpu/ccpu/ccpudasm.c
diff --git a/src/emu/cpu/cop400/cop400.c b/src/devices/cpu/cop400/cop400.c
index eca60705b2c..eca60705b2c 100644
--- a/src/emu/cpu/cop400/cop400.c
+++ b/src/devices/cpu/cop400/cop400.c
diff --git a/src/emu/cpu/cop400/cop400.h b/src/devices/cpu/cop400/cop400.h
index aba03516d39..aba03516d39 100644
--- a/src/emu/cpu/cop400/cop400.h
+++ b/src/devices/cpu/cop400/cop400.h
diff --git a/src/emu/cpu/cop400/cop400op.inc b/src/devices/cpu/cop400/cop400op.inc
index 1f1bf1bfade..1f1bf1bfade 100644
--- a/src/emu/cpu/cop400/cop400op.inc
+++ b/src/devices/cpu/cop400/cop400op.inc
diff --git a/src/emu/cpu/cop400/cop410ds.c b/src/devices/cpu/cop400/cop410ds.c
index 638653151d0..638653151d0 100644
--- a/src/emu/cpu/cop400/cop410ds.c
+++ b/src/devices/cpu/cop400/cop410ds.c
diff --git a/src/emu/cpu/cop400/cop420ds.c b/src/devices/cpu/cop400/cop420ds.c
index 007b9afc8c6..007b9afc8c6 100644
--- a/src/emu/cpu/cop400/cop420ds.c
+++ b/src/devices/cpu/cop400/cop420ds.c
diff --git a/src/emu/cpu/cop400/cop440ds.c b/src/devices/cpu/cop400/cop440ds.c
index 4af02d3c481..4af02d3c481 100644
--- a/src/emu/cpu/cop400/cop440ds.c
+++ b/src/devices/cpu/cop400/cop440ds.c
diff --git a/src/emu/cpu/cosmac/cosdasm.c b/src/devices/cpu/cosmac/cosdasm.c
index f8f41e2c4ce..f8f41e2c4ce 100644
--- a/src/emu/cpu/cosmac/cosdasm.c
+++ b/src/devices/cpu/cosmac/cosdasm.c
diff --git a/src/emu/cpu/cosmac/cosmac.c b/src/devices/cpu/cosmac/cosmac.c
index f011e37a47a..f011e37a47a 100644
--- a/src/emu/cpu/cosmac/cosmac.c
+++ b/src/devices/cpu/cosmac/cosmac.c
diff --git a/src/emu/cpu/cosmac/cosmac.h b/src/devices/cpu/cosmac/cosmac.h
index c80a8e9ab6c..c80a8e9ab6c 100644
--- a/src/emu/cpu/cosmac/cosmac.h
+++ b/src/devices/cpu/cosmac/cosmac.h
diff --git a/src/emu/cpu/cp1610/1610dasm.c b/src/devices/cpu/cp1610/1610dasm.c
index 0035e9b78a5..0035e9b78a5 100644
--- a/src/emu/cpu/cp1610/1610dasm.c
+++ b/src/devices/cpu/cp1610/1610dasm.c
diff --git a/src/emu/cpu/cp1610/cp1610.c b/src/devices/cpu/cp1610/cp1610.c
index fd6fd5eceb7..fd6fd5eceb7 100644
--- a/src/emu/cpu/cp1610/cp1610.c
+++ b/src/devices/cpu/cp1610/cp1610.c
diff --git a/src/emu/cpu/cp1610/cp1610.h b/src/devices/cpu/cp1610/cp1610.h
index d3d7c9a78a4..d3d7c9a78a4 100644
--- a/src/emu/cpu/cp1610/cp1610.h
+++ b/src/devices/cpu/cp1610/cp1610.h
diff --git a/src/emu/cpu/cubeqcpu/cubedasm.c b/src/devices/cpu/cubeqcpu/cubedasm.c
index 81d7d95c088..81d7d95c088 100644
--- a/src/emu/cpu/cubeqcpu/cubedasm.c
+++ b/src/devices/cpu/cubeqcpu/cubedasm.c
diff --git a/src/emu/cpu/cubeqcpu/cubeqcpu.c b/src/devices/cpu/cubeqcpu/cubeqcpu.c
index 2a1678396c2..2a1678396c2 100644
--- a/src/emu/cpu/cubeqcpu/cubeqcpu.c
+++ b/src/devices/cpu/cubeqcpu/cubeqcpu.c
diff --git a/src/emu/cpu/cubeqcpu/cubeqcpu.h b/src/devices/cpu/cubeqcpu/cubeqcpu.h
index 4befd97d662..4befd97d662 100644
--- a/src/emu/cpu/cubeqcpu/cubeqcpu.h
+++ b/src/devices/cpu/cubeqcpu/cubeqcpu.h
diff --git a/src/emu/cpu/drcbec.c b/src/devices/cpu/drcbec.c
index d3e1538c1ba..d3e1538c1ba 100644
--- a/src/emu/cpu/drcbec.c
+++ b/src/devices/cpu/drcbec.c
diff --git a/src/emu/cpu/drcbec.h b/src/devices/cpu/drcbec.h
index 720d70f9a87..720d70f9a87 100644
--- a/src/emu/cpu/drcbec.h
+++ b/src/devices/cpu/drcbec.h
diff --git a/src/emu/cpu/drcbeut.c b/src/devices/cpu/drcbeut.c
index 4df863c8fb5..4df863c8fb5 100644
--- a/src/emu/cpu/drcbeut.c
+++ b/src/devices/cpu/drcbeut.c
diff --git a/src/emu/cpu/drcbeut.h b/src/devices/cpu/drcbeut.h
index 8987edb49c2..8987edb49c2 100644
--- a/src/emu/cpu/drcbeut.h
+++ b/src/devices/cpu/drcbeut.h
diff --git a/src/emu/cpu/drcbex64.c b/src/devices/cpu/drcbex64.c
index 64f2dd89bf0..64f2dd89bf0 100644
--- a/src/emu/cpu/drcbex64.c
+++ b/src/devices/cpu/drcbex64.c
diff --git a/src/emu/cpu/drcbex64.h b/src/devices/cpu/drcbex64.h
index 6b6cf729b64..6b6cf729b64 100644
--- a/src/emu/cpu/drcbex64.h
+++ b/src/devices/cpu/drcbex64.h
diff --git a/src/emu/cpu/drcbex86.c b/src/devices/cpu/drcbex86.c
index b52ece2b0cc..b52ece2b0cc 100644
--- a/src/emu/cpu/drcbex86.c
+++ b/src/devices/cpu/drcbex86.c
diff --git a/src/emu/cpu/drcbex86.h b/src/devices/cpu/drcbex86.h
index 3c3af63d0d0..3c3af63d0d0 100644
--- a/src/emu/cpu/drcbex86.h
+++ b/src/devices/cpu/drcbex86.h
diff --git a/src/emu/cpu/drccache.c b/src/devices/cpu/drccache.c
index 74a0116aa97..74a0116aa97 100644
--- a/src/emu/cpu/drccache.c
+++ b/src/devices/cpu/drccache.c
diff --git a/src/emu/cpu/drccache.h b/src/devices/cpu/drccache.h
index cf5a41e41dd..cf5a41e41dd 100644
--- a/src/emu/cpu/drccache.h
+++ b/src/devices/cpu/drccache.h
diff --git a/src/emu/cpu/drcfe.c b/src/devices/cpu/drcfe.c
index f3746b22dc0..f3746b22dc0 100644
--- a/src/emu/cpu/drcfe.c
+++ b/src/devices/cpu/drcfe.c
diff --git a/src/emu/cpu/drcfe.h b/src/devices/cpu/drcfe.h
index 67c67067221..67c67067221 100644
--- a/src/emu/cpu/drcfe.h
+++ b/src/devices/cpu/drcfe.h
diff --git a/src/emu/cpu/drcuml.c b/src/devices/cpu/drcuml.c
index b7e3c3e0045..b7e3c3e0045 100644
--- a/src/emu/cpu/drcuml.c
+++ b/src/devices/cpu/drcuml.c
diff --git a/src/emu/cpu/drcuml.h b/src/devices/cpu/drcuml.h
index 10652a224cc..10652a224cc 100644
--- a/src/emu/cpu/drcuml.h
+++ b/src/devices/cpu/drcuml.h
diff --git a/src/emu/cpu/drcumlsh.h b/src/devices/cpu/drcumlsh.h
index d14c1321d9e..d14c1321d9e 100644
--- a/src/emu/cpu/drcumlsh.h
+++ b/src/devices/cpu/drcumlsh.h
diff --git a/src/emu/cpu/dsp16/dsp16.c b/src/devices/cpu/dsp16/dsp16.c
index 9f1de0c79f6..9f1de0c79f6 100644
--- a/src/emu/cpu/dsp16/dsp16.c
+++ b/src/devices/cpu/dsp16/dsp16.c
diff --git a/src/emu/cpu/dsp16/dsp16.h b/src/devices/cpu/dsp16/dsp16.h
index 195cdcb5943..195cdcb5943 100644
--- a/src/emu/cpu/dsp16/dsp16.h
+++ b/src/devices/cpu/dsp16/dsp16.h
diff --git a/src/emu/cpu/dsp16/dsp16dis.c b/src/devices/cpu/dsp16/dsp16dis.c
index 2e144df03af..2e144df03af 100644
--- a/src/emu/cpu/dsp16/dsp16dis.c
+++ b/src/devices/cpu/dsp16/dsp16dis.c
diff --git a/src/emu/cpu/dsp16/dsp16ops.inc b/src/devices/cpu/dsp16/dsp16ops.inc
index d63fe9d3f99..d63fe9d3f99 100644
--- a/src/emu/cpu/dsp16/dsp16ops.inc
+++ b/src/devices/cpu/dsp16/dsp16ops.inc
diff --git a/src/emu/cpu/dsp32/dsp32.c b/src/devices/cpu/dsp32/dsp32.c
index 21de1f18a74..21de1f18a74 100644
--- a/src/emu/cpu/dsp32/dsp32.c
+++ b/src/devices/cpu/dsp32/dsp32.c
diff --git a/src/emu/cpu/dsp32/dsp32.h b/src/devices/cpu/dsp32/dsp32.h
index 1ef1642f6c2..1ef1642f6c2 100644
--- a/src/emu/cpu/dsp32/dsp32.h
+++ b/src/devices/cpu/dsp32/dsp32.h
diff --git a/src/emu/cpu/dsp32/dsp32dis.c b/src/devices/cpu/dsp32/dsp32dis.c
index 25f43e30761..25f43e30761 100644
--- a/src/emu/cpu/dsp32/dsp32dis.c
+++ b/src/devices/cpu/dsp32/dsp32dis.c
diff --git a/src/emu/cpu/dsp32/dsp32ops.inc b/src/devices/cpu/dsp32/dsp32ops.inc
index 09844f6ee4f..09844f6ee4f 100644
--- a/src/emu/cpu/dsp32/dsp32ops.inc
+++ b/src/devices/cpu/dsp32/dsp32ops.inc
diff --git a/src/emu/cpu/dsp56k/dsp56def.h b/src/devices/cpu/dsp56k/dsp56def.h
index 14fe208dbb8..14fe208dbb8 100644
--- a/src/emu/cpu/dsp56k/dsp56def.h
+++ b/src/devices/cpu/dsp56k/dsp56def.h
diff --git a/src/emu/cpu/dsp56k/dsp56dsm.c b/src/devices/cpu/dsp56k/dsp56dsm.c
index 283f712ecda..283f712ecda 100644
--- a/src/emu/cpu/dsp56k/dsp56dsm.c
+++ b/src/devices/cpu/dsp56k/dsp56dsm.c
diff --git a/src/emu/cpu/dsp56k/dsp56k.c b/src/devices/cpu/dsp56k/dsp56k.c
index 9e151019c7e..9e151019c7e 100644
--- a/src/emu/cpu/dsp56k/dsp56k.c
+++ b/src/devices/cpu/dsp56k/dsp56k.c
diff --git a/src/emu/cpu/dsp56k/dsp56k.h b/src/devices/cpu/dsp56k/dsp56k.h
index fc461dbcb16..fc461dbcb16 100644
--- a/src/emu/cpu/dsp56k/dsp56k.h
+++ b/src/devices/cpu/dsp56k/dsp56k.h
diff --git a/src/emu/cpu/dsp56k/dsp56mem.c b/src/devices/cpu/dsp56k/dsp56mem.c
index 6ec2251df64..6ec2251df64 100644
--- a/src/emu/cpu/dsp56k/dsp56mem.c
+++ b/src/devices/cpu/dsp56k/dsp56mem.c
diff --git a/src/emu/cpu/dsp56k/dsp56mem.h b/src/devices/cpu/dsp56k/dsp56mem.h
index 93ab74ede42..93ab74ede42 100644
--- a/src/emu/cpu/dsp56k/dsp56mem.h
+++ b/src/devices/cpu/dsp56k/dsp56mem.h
diff --git a/src/emu/cpu/dsp56k/dsp56ops.inc b/src/devices/cpu/dsp56k/dsp56ops.inc
index f00d1cc84b4..f00d1cc84b4 100644
--- a/src/emu/cpu/dsp56k/dsp56ops.inc
+++ b/src/devices/cpu/dsp56k/dsp56ops.inc
diff --git a/src/emu/cpu/dsp56k/dsp56pcu.c b/src/devices/cpu/dsp56k/dsp56pcu.c
index 7ec53891e4c..7ec53891e4c 100644
--- a/src/emu/cpu/dsp56k/dsp56pcu.c
+++ b/src/devices/cpu/dsp56k/dsp56pcu.c
diff --git a/src/emu/cpu/dsp56k/dsp56pcu.h b/src/devices/cpu/dsp56k/dsp56pcu.h
index 7463ac11d35..7463ac11d35 100644
--- a/src/emu/cpu/dsp56k/dsp56pcu.h
+++ b/src/devices/cpu/dsp56k/dsp56pcu.h
diff --git a/src/emu/cpu/dsp56k/inst.c b/src/devices/cpu/dsp56k/inst.c
index d01bbdbcf04..d01bbdbcf04 100644
--- a/src/emu/cpu/dsp56k/inst.c
+++ b/src/devices/cpu/dsp56k/inst.c
diff --git a/src/emu/cpu/dsp56k/inst.h b/src/devices/cpu/dsp56k/inst.h
index b83508a7df2..b83508a7df2 100644
--- a/src/emu/cpu/dsp56k/inst.h
+++ b/src/devices/cpu/dsp56k/inst.h
diff --git a/src/emu/cpu/dsp56k/opcode.c b/src/devices/cpu/dsp56k/opcode.c
index dd71d852650..dd71d852650 100644
--- a/src/emu/cpu/dsp56k/opcode.c
+++ b/src/devices/cpu/dsp56k/opcode.c
diff --git a/src/emu/cpu/dsp56k/opcode.h b/src/devices/cpu/dsp56k/opcode.h
index 66423716ffb..66423716ffb 100644
--- a/src/emu/cpu/dsp56k/opcode.h
+++ b/src/devices/cpu/dsp56k/opcode.h
diff --git a/src/emu/cpu/dsp56k/pmove.c b/src/devices/cpu/dsp56k/pmove.c
index dce702d094b..dce702d094b 100644
--- a/src/emu/cpu/dsp56k/pmove.c
+++ b/src/devices/cpu/dsp56k/pmove.c
diff --git a/src/emu/cpu/dsp56k/pmove.h b/src/devices/cpu/dsp56k/pmove.h
index 8e30a534073..8e30a534073 100644
--- a/src/emu/cpu/dsp56k/pmove.h
+++ b/src/devices/cpu/dsp56k/pmove.h
diff --git a/src/emu/cpu/dsp56k/tables.c b/src/devices/cpu/dsp56k/tables.c
index 5837580409e..5837580409e 100644
--- a/src/emu/cpu/dsp56k/tables.c
+++ b/src/devices/cpu/dsp56k/tables.c
diff --git a/src/emu/cpu/dsp56k/tables.h b/src/devices/cpu/dsp56k/tables.h
index f0bb88f21d8..f0bb88f21d8 100644
--- a/src/emu/cpu/dsp56k/tables.h
+++ b/src/devices/cpu/dsp56k/tables.h
diff --git a/src/emu/cpu/e0c6200/e0c6200.c b/src/devices/cpu/e0c6200/e0c6200.c
index e0b6a2eb8d2..e0b6a2eb8d2 100644
--- a/src/emu/cpu/e0c6200/e0c6200.c
+++ b/src/devices/cpu/e0c6200/e0c6200.c
diff --git a/src/emu/cpu/e0c6200/e0c6200.h b/src/devices/cpu/e0c6200/e0c6200.h
index 430cc36f6f8..430cc36f6f8 100644
--- a/src/emu/cpu/e0c6200/e0c6200.h
+++ b/src/devices/cpu/e0c6200/e0c6200.h
diff --git a/src/emu/cpu/e0c6200/e0c6200d.c b/src/devices/cpu/e0c6200/e0c6200d.c
index 4fc0599ac24..4fc0599ac24 100644
--- a/src/emu/cpu/e0c6200/e0c6200d.c
+++ b/src/devices/cpu/e0c6200/e0c6200d.c
diff --git a/src/emu/cpu/e0c6200/e0c6200op.inc b/src/devices/cpu/e0c6200/e0c6200op.inc
index 09fc07b3c70..09fc07b3c70 100644
--- a/src/emu/cpu/e0c6200/e0c6200op.inc
+++ b/src/devices/cpu/e0c6200/e0c6200op.inc
diff --git a/src/emu/cpu/e0c6200/e0c6s46.c b/src/devices/cpu/e0c6200/e0c6s46.c
index be131a1e5dc..be131a1e5dc 100644
--- a/src/emu/cpu/e0c6200/e0c6s46.c
+++ b/src/devices/cpu/e0c6200/e0c6s46.c
diff --git a/src/emu/cpu/e0c6200/e0c6s46.h b/src/devices/cpu/e0c6200/e0c6s46.h
index 0b5f1e8bee3..0b5f1e8bee3 100644
--- a/src/emu/cpu/e0c6200/e0c6s46.h
+++ b/src/devices/cpu/e0c6200/e0c6s46.h
diff --git a/src/emu/cpu/e132xs/32xsdasm.c b/src/devices/cpu/e132xs/32xsdasm.c
index f5e9885b220..f5e9885b220 100644
--- a/src/emu/cpu/e132xs/32xsdasm.c
+++ b/src/devices/cpu/e132xs/32xsdasm.c
diff --git a/src/emu/cpu/e132xs/e132xs.c b/src/devices/cpu/e132xs/e132xs.c
index fb156aae200..f714f6f8a6b 100644
--- a/src/emu/cpu/e132xs/e132xs.c
+++ b/src/devices/cpu/e132xs/e132xs.c
@@ -95,13 +95,13 @@
- Added generic registers decode function
- Some other little fixes.
- MooglyGuy 29/03/2004
+ Ryan Holtz 29/03/2004
- Changed MOVI to use unsigned values instead of signed, correcting
an ugly glitch when loading 32-bit immediates.
Pierpaolo Prazzoli
- Same fix in get_const
- MooglyGuy - 02/27/04
+ Ryan Holtz - 02/27/04
- Fixed delayed branching
- const_val for CALL should always have bit 0 clear
@@ -133,7 +133,7 @@
(From the doc: A Call, Trap or Software instruction increments the FP and sets FL
to 6, thus creating a new stack frame with the length of 6 registers).
- MooglyGuy - 10/25/03
+ Ryan Holtz - 10/25/03
- Fixed CALL enough that it at least jumps to the right address, no word
yet as to whether or not it's working enough to return.
- Added get_lrconst() to get the const value for the CALL operand, since
@@ -152,7 +152,7 @@
Apparently no matter what the current frame pointer is they'll always use
local_regs[0] through local_regs[15].
- MooglyGuy - 08/20/03
+ Ryan Holtz - 08/20/03
- Added H flag support for MOV and MOVI
- Changed init routine to set S flag on boot. Apparently the CPU defaults to
supervisor mode as opposed to user mode when it powers on, as shown by the
@@ -164,18 +164,18 @@
(movd, divu, divs, ldxx1, ldxx2, stxx1, stxx2, mulu, muls, set, mul
call, chk)
- MooglyGuy - 08/17/03
+ Ryan Holtz - 08/17/03
- Working on support for H flag, nothing quite done yet
- Added trap Range Error for CHK PC, PC
- Fixed relative jumps, they have to be taken from the opcode following the
- jump minstead of the jump opcode itself.
+ jump instead of the jump opcode itself.
Pierpaolo Prazzoli - 08/17/03
- Fixed get_pcrel() when OP & 0x80 is set.
- Decremented PC by 2 also in MOV, ADD, ADDI, SUM, SUB and added the check if
D_BIT is not set. (when pc is changed they are implicit branch)
- MooglyGuy - 08/17/03
+ Ryan Holtz - 08/17/03
- Implemented a crude hack to set FL in the SR to 6, since according to the docs
that's supposed to happen each time a trap occurs, apparently including when
the processor starts up. The 3rd opcode executed in vamphalf checks to see if
@@ -191,7 +191,7 @@
a few bytes. While it does indeed branch to valid code, I highly doubt that
this is the desired effect. Check for signed/unsigned relative branch, maybe?
- MooglyGuy - 08/16/03
+ Ryan Holtz - 08/16/03
- Fixed the debugger at least somewhat so that it displays hex instead of decimal,
and so that it disassembles opcodes properly.
- Fixed hyperstone_execute() to increment PC *after* executing the opcode instead of
diff --git a/src/emu/cpu/e132xs/e132xs.h b/src/devices/cpu/e132xs/e132xs.h
index c8f43641ff5..c8f43641ff5 100644
--- a/src/emu/cpu/e132xs/e132xs.h
+++ b/src/devices/cpu/e132xs/e132xs.h
diff --git a/src/emu/cpu/e132xs/e132xsop.inc b/src/devices/cpu/e132xs/e132xsop.inc
index e37ef914246..e37ef914246 100644
--- a/src/emu/cpu/e132xs/e132xsop.inc
+++ b/src/devices/cpu/e132xs/e132xsop.inc
diff --git a/src/emu/cpu/es5510/es5510.c b/src/devices/cpu/es5510/es5510.c
index 77b88b5d861..77b88b5d861 100644
--- a/src/emu/cpu/es5510/es5510.c
+++ b/src/devices/cpu/es5510/es5510.c
diff --git a/src/emu/cpu/es5510/es5510.h b/src/devices/cpu/es5510/es5510.h
index b3e12cba119..b3e12cba119 100644
--- a/src/emu/cpu/es5510/es5510.h
+++ b/src/devices/cpu/es5510/es5510.h
diff --git a/src/emu/cpu/esrip/esrip.c b/src/devices/cpu/esrip/esrip.c
index fa7ab139b08..fa7ab139b08 100644
--- a/src/emu/cpu/esrip/esrip.c
+++ b/src/devices/cpu/esrip/esrip.c
diff --git a/src/emu/cpu/esrip/esrip.h b/src/devices/cpu/esrip/esrip.h
index ecfba10975d..ecfba10975d 100644
--- a/src/emu/cpu/esrip/esrip.h
+++ b/src/devices/cpu/esrip/esrip.h
diff --git a/src/emu/cpu/esrip/esripdsm.c b/src/devices/cpu/esrip/esripdsm.c
index 8e5a01ae792..8e5a01ae792 100644
--- a/src/emu/cpu/esrip/esripdsm.c
+++ b/src/devices/cpu/esrip/esripdsm.c
diff --git a/src/emu/cpu/f8/f8.c b/src/devices/cpu/f8/f8.c
index 182638543d7..182638543d7 100644
--- a/src/emu/cpu/f8/f8.c
+++ b/src/devices/cpu/f8/f8.c
diff --git a/src/emu/cpu/f8/f8.h b/src/devices/cpu/f8/f8.h
index a478cf137b1..a478cf137b1 100644
--- a/src/emu/cpu/f8/f8.h
+++ b/src/devices/cpu/f8/f8.h
diff --git a/src/emu/cpu/f8/f8dasm.c b/src/devices/cpu/f8/f8dasm.c
index 03e3d3065ea..03e3d3065ea 100644
--- a/src/emu/cpu/f8/f8dasm.c
+++ b/src/devices/cpu/f8/f8dasm.c
diff --git a/src/emu/cpu/g65816/g65816.c b/src/devices/cpu/g65816/g65816.c
index 03e7320eb89..03e7320eb89 100644
--- a/src/emu/cpu/g65816/g65816.c
+++ b/src/devices/cpu/g65816/g65816.c
diff --git a/src/emu/cpu/g65816/g65816.h b/src/devices/cpu/g65816/g65816.h
index 19b76fb3d31..19b76fb3d31 100644
--- a/src/emu/cpu/g65816/g65816.h
+++ b/src/devices/cpu/g65816/g65816.h
diff --git a/src/emu/cpu/g65816/g65816cm.h b/src/devices/cpu/g65816/g65816cm.h
index 7cfbcdf2cfb..7cfbcdf2cfb 100644
--- a/src/emu/cpu/g65816/g65816cm.h
+++ b/src/devices/cpu/g65816/g65816cm.h
diff --git a/src/emu/cpu/g65816/g65816ds.c b/src/devices/cpu/g65816/g65816ds.c
index 17af208a822..17af208a822 100644
--- a/src/emu/cpu/g65816/g65816ds.c
+++ b/src/devices/cpu/g65816/g65816ds.c
diff --git a/src/emu/cpu/g65816/g65816ds.h b/src/devices/cpu/g65816/g65816ds.h
index 58b47752ca5..58b47752ca5 100644
--- a/src/emu/cpu/g65816/g65816ds.h
+++ b/src/devices/cpu/g65816/g65816ds.h
diff --git a/src/emu/cpu/g65816/g65816o0.c b/src/devices/cpu/g65816/g65816o0.c
index 5829325bd37..5829325bd37 100644
--- a/src/emu/cpu/g65816/g65816o0.c
+++ b/src/devices/cpu/g65816/g65816o0.c
diff --git a/src/emu/cpu/g65816/g65816o1.c b/src/devices/cpu/g65816/g65816o1.c
index 4b277c9abf2..4b277c9abf2 100644
--- a/src/emu/cpu/g65816/g65816o1.c
+++ b/src/devices/cpu/g65816/g65816o1.c
diff --git a/src/emu/cpu/g65816/g65816o2.c b/src/devices/cpu/g65816/g65816o2.c
index 63a8157e961..63a8157e961 100644
--- a/src/emu/cpu/g65816/g65816o2.c
+++ b/src/devices/cpu/g65816/g65816o2.c
diff --git a/src/emu/cpu/g65816/g65816o3.c b/src/devices/cpu/g65816/g65816o3.c
index 24cdebf05b6..24cdebf05b6 100644
--- a/src/emu/cpu/g65816/g65816o3.c
+++ b/src/devices/cpu/g65816/g65816o3.c
diff --git a/src/emu/cpu/g65816/g65816o4.c b/src/devices/cpu/g65816/g65816o4.c
index 60262c859fb..60262c859fb 100644
--- a/src/emu/cpu/g65816/g65816o4.c
+++ b/src/devices/cpu/g65816/g65816o4.c
diff --git a/src/emu/cpu/g65816/g65816op.h b/src/devices/cpu/g65816/g65816op.h
index 81f887b3e12..81f887b3e12 100644
--- a/src/emu/cpu/g65816/g65816op.h
+++ b/src/devices/cpu/g65816/g65816op.h
diff --git a/src/emu/cpu/h6280/6280dasm.c b/src/devices/cpu/h6280/6280dasm.c
index 7dbafd939c4..4a9923ae0dc 100644
--- a/src/emu/cpu/h6280/6280dasm.c
+++ b/src/devices/cpu/h6280/6280dasm.c
@@ -18,6 +18,11 @@
******************************************************************************/
+#ifdef __OS2__
+/* To avoid name clash of _brk */
+#define __STRICT_ANSI__
+#endif
+
#include "emu.h"
#define RDOP(addr) (oprom[addr - pc])
diff --git a/src/emu/cpu/h6280/h6280.c b/src/devices/cpu/h6280/h6280.c
index f92e0520a12..f92e0520a12 100644
--- a/src/emu/cpu/h6280/h6280.c
+++ b/src/devices/cpu/h6280/h6280.c
diff --git a/src/emu/cpu/h6280/h6280.h b/src/devices/cpu/h6280/h6280.h
index dccf221abf7..dccf221abf7 100644
--- a/src/emu/cpu/h6280/h6280.h
+++ b/src/devices/cpu/h6280/h6280.h
diff --git a/src/emu/cpu/h8/h8.c b/src/devices/cpu/h8/h8.c
index 9084c0b76fa..9084c0b76fa 100644
--- a/src/emu/cpu/h8/h8.c
+++ b/src/devices/cpu/h8/h8.c
diff --git a/src/emu/cpu/h8/h8.h b/src/devices/cpu/h8/h8.h
index b1880c23b4d..b1880c23b4d 100644
--- a/src/emu/cpu/h8/h8.h
+++ b/src/devices/cpu/h8/h8.h
diff --git a/src/emu/cpu/h8/h8.lst b/src/devices/cpu/h8/h8.lst
index 3ec1f46fbe4..3ec1f46fbe4 100644
--- a/src/emu/cpu/h8/h8.lst
+++ b/src/devices/cpu/h8/h8.lst
diff --git a/src/emu/cpu/h8/h83002.c b/src/devices/cpu/h8/h83002.c
index 451454dca40..451454dca40 100644
--- a/src/emu/cpu/h8/h83002.c
+++ b/src/devices/cpu/h8/h83002.c
diff --git a/src/emu/cpu/h8/h83002.h b/src/devices/cpu/h8/h83002.h
index c6b9612fc9c..c6b9612fc9c 100644
--- a/src/emu/cpu/h8/h83002.h
+++ b/src/devices/cpu/h8/h83002.h
diff --git a/src/emu/cpu/h8/h83006.c b/src/devices/cpu/h8/h83006.c
index 2e203a84dbb..2e203a84dbb 100644
--- a/src/emu/cpu/h8/h83006.c
+++ b/src/devices/cpu/h8/h83006.c
diff --git a/src/emu/cpu/h8/h83006.h b/src/devices/cpu/h8/h83006.h
index 3dcd1690f93..3dcd1690f93 100644
--- a/src/emu/cpu/h8/h83006.h
+++ b/src/devices/cpu/h8/h83006.h
diff --git a/src/emu/cpu/h8/h83008.c b/src/devices/cpu/h8/h83008.c
index c919008667d..c919008667d 100644
--- a/src/emu/cpu/h8/h83008.c
+++ b/src/devices/cpu/h8/h83008.c
diff --git a/src/emu/cpu/h8/h83008.h b/src/devices/cpu/h8/h83008.h
index 8a26d62ed69..8a26d62ed69 100644
--- a/src/emu/cpu/h8/h83008.h
+++ b/src/devices/cpu/h8/h83008.h
diff --git a/src/emu/cpu/h8/h83048.c b/src/devices/cpu/h8/h83048.c
index 8254f5a6c22..8254f5a6c22 100644
--- a/src/emu/cpu/h8/h83048.c
+++ b/src/devices/cpu/h8/h83048.c
diff --git a/src/emu/cpu/h8/h83048.h b/src/devices/cpu/h8/h83048.h
index ecb3ed573d5..ecb3ed573d5 100644
--- a/src/emu/cpu/h8/h83048.h
+++ b/src/devices/cpu/h8/h83048.h
diff --git a/src/emu/cpu/h8/h83337.c b/src/devices/cpu/h8/h83337.c
index 00a353e4347..00a353e4347 100644
--- a/src/emu/cpu/h8/h83337.c
+++ b/src/devices/cpu/h8/h83337.c
diff --git a/src/emu/cpu/h8/h83337.h b/src/devices/cpu/h8/h83337.h
index b01580733da..b01580733da 100644
--- a/src/emu/cpu/h8/h83337.h
+++ b/src/devices/cpu/h8/h83337.h
diff --git a/src/emu/cpu/h8/h8_adc.c b/src/devices/cpu/h8/h8_adc.c
index b1f02f83ca7..b1f02f83ca7 100644
--- a/src/emu/cpu/h8/h8_adc.c
+++ b/src/devices/cpu/h8/h8_adc.c
diff --git a/src/emu/cpu/h8/h8_adc.h b/src/devices/cpu/h8/h8_adc.h
index 5a7a5f67cbb..5a7a5f67cbb 100644
--- a/src/emu/cpu/h8/h8_adc.h
+++ b/src/devices/cpu/h8/h8_adc.h
diff --git a/src/emu/cpu/h8/h8_intc.c b/src/devices/cpu/h8/h8_intc.c
index e88476fc05c..e88476fc05c 100644
--- a/src/emu/cpu/h8/h8_intc.c
+++ b/src/devices/cpu/h8/h8_intc.c
diff --git a/src/emu/cpu/h8/h8_intc.h b/src/devices/cpu/h8/h8_intc.h
index b255f80684f..b255f80684f 100644
--- a/src/emu/cpu/h8/h8_intc.h
+++ b/src/devices/cpu/h8/h8_intc.h
diff --git a/src/emu/cpu/h8/h8_port.c b/src/devices/cpu/h8/h8_port.c
index 0f289edc7a3..0f289edc7a3 100644
--- a/src/emu/cpu/h8/h8_port.c
+++ b/src/devices/cpu/h8/h8_port.c
diff --git a/src/emu/cpu/h8/h8_port.h b/src/devices/cpu/h8/h8_port.h
index 2ac35b5b48a..2ac35b5b48a 100644
--- a/src/emu/cpu/h8/h8_port.h
+++ b/src/devices/cpu/h8/h8_port.h
diff --git a/src/emu/cpu/h8/h8_sci.c b/src/devices/cpu/h8/h8_sci.c
index 758e09141f2..758e09141f2 100644
--- a/src/emu/cpu/h8/h8_sci.c
+++ b/src/devices/cpu/h8/h8_sci.c
diff --git a/src/emu/cpu/h8/h8_sci.h b/src/devices/cpu/h8/h8_sci.h
index 7e93f14dc14..7e93f14dc14 100644
--- a/src/emu/cpu/h8/h8_sci.h
+++ b/src/devices/cpu/h8/h8_sci.h
diff --git a/src/emu/cpu/h8/h8_timer16.c b/src/devices/cpu/h8/h8_timer16.c
index 2498d3bf743..5714985dd84 100644
--- a/src/emu/cpu/h8/h8_timer16.c
+++ b/src/devices/cpu/h8/h8_timer16.c
@@ -164,7 +164,7 @@ void h8_timer16_channel_device::device_start()
{
intc = owner()->siblingdevice<h8_intc_device>(intc_tag);
channel_active = false;
- clock_type = DIV_1;
+ device_reset();
save_item(NAME(tgr_clearing));
save_item(NAME(tcr));
diff --git a/src/emu/cpu/h8/h8_timer16.h b/src/devices/cpu/h8/h8_timer16.h
index e187999625e..e187999625e 100644
--- a/src/emu/cpu/h8/h8_timer16.h
+++ b/src/devices/cpu/h8/h8_timer16.h
diff --git a/src/emu/cpu/h8/h8_timer8.c b/src/devices/cpu/h8/h8_timer8.c
index b652f091c07..b652f091c07 100644
--- a/src/emu/cpu/h8/h8_timer8.c
+++ b/src/devices/cpu/h8/h8_timer8.c
diff --git a/src/emu/cpu/h8/h8_timer8.h b/src/devices/cpu/h8/h8_timer8.h
index d58677097e5..d58677097e5 100644
--- a/src/emu/cpu/h8/h8_timer8.h
+++ b/src/devices/cpu/h8/h8_timer8.h
diff --git a/src/emu/cpu/h8/h8h.c b/src/devices/cpu/h8/h8h.c
index 89615fadad5..89615fadad5 100644
--- a/src/emu/cpu/h8/h8h.c
+++ b/src/devices/cpu/h8/h8h.c
diff --git a/src/emu/cpu/h8/h8h.h b/src/devices/cpu/h8/h8h.h
index 2fb500b77f8..2fb500b77f8 100644
--- a/src/emu/cpu/h8/h8h.h
+++ b/src/devices/cpu/h8/h8h.h
diff --git a/src/emu/cpu/h8/h8make.py b/src/devices/cpu/h8/h8make.py
index 4cd435df373..929b5d14c4e 100644
--- a/src/emu/cpu/h8/h8make.py
+++ b/src/devices/cpu/h8/h8make.py
@@ -1,5 +1,7 @@
#!/usr/bin/python
+from __future__ import print_function
+
USAGE = """
Usage:
%s h8.lst <type> h8.inc (type = o/h/s20/s26)
@@ -45,45 +47,45 @@ def has_eat(ins):
return False
def save_full_one(f, t, name, source):
- print >>f, "void %s::%s_full()" % (t, name)
- print >>f, "{"
+ print("void %s::%s_full()" % (t, name), file=f)
+ print("{", file=f)
substate = 1
for line in source:
if has_memory(line):
- print >>f, "\tif(icount <= bcount) { inst_substate = %d; return; }" % substate
- print >>f, line
+ print("\tif(icount <= bcount) { inst_substate = %d; return; }" % substate, file=f)
+ print(line, file=f)
substate += 1
elif has_eat(line):
- print >>f, "\tif(icount) icount = bcount; inst_substate = %d; return;" % substate
+ print("\tif(icount) icount = bcount; inst_substate = %d; return;" % substate, file=f)
substate += 1
else:
- print >>f, line
- print >>f, "}"
- print >>f
+ print(line, file=f)
+ print("}", file=f)
+ print("", file=f)
def save_partial_one(f, t, name, source):
- print >>f, "void %s::%s_partial()" % (t, name)
- print >>f, "{"
- print >>f, "switch(inst_substate) {"
- print >>f, "case 0:"
+ print("void %s::%s_partial()" % (t, name), file=f)
+ print("{", file=f)
+ print("switch(inst_substate) {", file=f)
+ print("case 0:", file=f)
substate = 1
for line in source:
if has_memory(line):
- print >>f, "\tif(icount <= bcount) { inst_substate = %d; return; }" % substate
- print >>f, "case %d:;" % substate
- print >>f, line
+ print("\tif(icount <= bcount) { inst_substate = %d; return; }" % substate, file=f)
+ print("case %d:;" % substate, file=f)
+ print(line, file=f)
substate += 1
elif has_eat(line):
- print >>f, "\tif(icount) icount = bcount; inst_substate = %d; return;" % substate
- print >>f, "case %d:;" % substate
+ print("\tif(icount) icount = bcount; inst_substate = %d; return;" % substate, file=f)
+ print("case %d:;" % substate, file=f)
substate += 1
else:
- print >>f, line
- print >>f, "\tbreak;"
- print >>f, "}"
- print >>f, "\tinst_substate = 0;"
- print >>f, "}"
- print >>f
+ print(line, file=f)
+ print("\tbreak;", file=f)
+ print("}", file=f)
+ print("\tinst_substate = 0;", file=f)
+ print("}", file=f)
+ print("", file=f)
class Hash:
def __init__(self, premask):
@@ -185,7 +187,7 @@ class Opcode:
else:
flags = "%d" % size
- print >>f, "\t{ %d, 0x%08x, 0x%08x, 0x%04x, 0x%04x, \"%s\", DASM_%s, DASM_%s, %s }, // %s" % ( slot, val, mask, val2, mask2, self.name, self.am1 if self.am1 != "-" else "none", self.am2 if self.am2 != "-" else "none", flags, "needed" if self.needed else "inherited")
+ print("\t{ %d, 0x%08x, 0x%08x, 0x%04x, 0x%04x, \"%s\", DASM_%s, DASM_%s, %s }, // %s" % ( slot, val, mask, val2, mask2, self.name, self.am1 if self.am1 != "-" else "none", self.am2 if self.am2 != "-" else "none", flags, "needed" if self.needed else "inherited"), file=f)
class Special:
def __init__(self, val, name, otype, dtype):
@@ -244,7 +246,7 @@ class DispatchStep:
return True
def source(self):
- start = self.pos / 2
+ start = self.pos // 2
end = start + self.skip
s = []
for i in range(start, end+1):
@@ -345,13 +347,13 @@ class OpcodeList:
h = self.get(d.id)
def save_dasm(self, f, dname):
- print >>f, "const %s::disasm_entry %s::disasm_entries[] = {" % (dname, dname)
+ print("const %s::disasm_entry %s::disasm_entries[] = {" % (dname, dname), file=f)
for opc in self.opcode_info:
if opc.enabled:
opc.save_dasm(f)
- print >>f, "\t{ 0, 0, 0, 0, 0, \"illegal\", 0, 0, 2 },"
- print >>f, "};"
- print >>f
+ print("\t{ 0, 0, 0, 0, 0, \"illegal\", 0, 0, 2 },", file=f)
+ print("};", file=f)
+ print("", file=f)
def save_opcodes(self, f, t):
for opc in self.opcode_info:
@@ -370,24 +372,24 @@ class OpcodeList:
save_partial_one(f, t, "dispatch_" + dsp.name, dsp.source())
def save_exec(self, f, t, dtype, v):
- print >>f, "void %s::do_exec_%s()" % (t, v)
- print >>f, "{"
- print >>f, "\tswitch(inst_state >> 16) {"
+ print("void %s::do_exec_%s()" % (t, v), file=f)
+ print("{", file=f)
+ print("\tswitch(inst_state >> 16) {", file=f)
for i in range(0, len(self.dispatch_info)+2):
if i == 1:
- print >>f, "\tcase 0x01: {"
- print >>f, "\t\tswitch(inst_state & 0xffff) {"
+ print("\tcase 0x01: {", file=f)
+ print("\t\tswitch(inst_state & 0xffff) {", file=f)
for sta in self.states_info:
if sta.enabled:
- print >>f, "\t\tcase 0x%02x: state_%s_%s(); break;" % (sta.val & 0xffff, sta.name, v)
- print >>f, "\t\t}"
- print >>f, "\t\tbreak;"
- print >>f, "\t}"
+ print("\t\tcase 0x%02x: state_%s_%s(); break;" % (sta.val & 0xffff, sta.name, v), file=f)
+ print("\t\t}", file=f)
+ print("\t\tbreak;", file=f)
+ print("\t}", file=f)
else:
if i == 0 or self.dispatch_info[i-2].enabled:
- print >>f, "\tcase 0x%02x: {" % i
+ print("\tcase 0x%02x: {" % i, file=f)
h = self.get(i)
- print >>f, "\t\tswitch((inst_state >> 8) & 0x%02x) {" % h.mask
+ print("\t\tswitch((inst_state >> 8) & 0x%02x) {" % h.mask, file=f)
for val, h2 in sorted(h.d.items()):
if h2.enabled:
fmask = h2.premask | (h.mask ^ 0xff)
@@ -398,16 +400,16 @@ class OpcodeList:
s += 1
while s & fmask:
s += s & fmask
- print >>f, "\t\t%s{" % c
+ print("\t\t%s{" % c, file=f)
if h2.mask == 0x00:
n = h2.d[0]
if n.is_dispatch():
- print >>f, "\t\t\tdispatch_%s_%s();" % (n.name, v)
+ print("\t\t\tdispatch_%s_%s();" % (n.name, v), file=f)
else:
- print >>f, "\t\t\t%s_%s();" % (n.function_name(), v)
- print >>f, "\t\t\tbreak;"
+ print("\t\t\t%s_%s();" % (n.function_name(), v), file=f)
+ print("\t\t\tbreak;", file=f)
else:
- print >>f, "\t\t\tswitch(inst_state & 0x%02x) {" % h2.mask
+ print("\t\t\tswitch(inst_state & 0x%02x) {" % h2.mask, file=f)
if i == 0:
mpos = 1
else:
@@ -427,23 +429,23 @@ class OpcodeList:
while s & fmask:
s += s & fmask
if n.is_dispatch():
- print >>f, "\t\t\t%sdispatch_%s_%s(); break;" % (c, n.name, v)
+ print("\t\t\t%sdispatch_%s_%s(); break;" % (c, n.name, v), file=f)
else:
- print >>f, "\t\t\t%s%s_%s(); break;" % (c, n.function_name(), v)
- print >>f, "\t\t\tdefault: illegal(); break;"
- print >>f, "\t\t\t}"
- print >>f, "\t\t\tbreak;"
- print >>f, "\t\t}"
- print >>f, "\t\tdefault: illegal(); break;"
- print >>f, "\t\t}"
- print >>f, "\t\tbreak;"
- print >>f, "\t}"
- print >>f, "\t}"
- print >>f, "}"
+ print("\t\t\t%s%s_%s(); break;" % (c, n.function_name(), v), file=f)
+ print("\t\t\tdefault: illegal(); break;", file=f)
+ print("\t\t\t}", file=f)
+ print("\t\t\tbreak;", file=f)
+ print("\t\t}", file=f)
+ print("\t\tdefault: illegal(); break;", file=f)
+ print("\t\t}", file=f)
+ print("\t\tbreak;", file=f)
+ print("\t}", file=f)
+ print("\t}", file=f)
+ print("}", file=f)
def main(argv):
if len(argv) != 4:
- print USAGE % argv[0]
+ print(USAGE % argv[0])
return 1
dtype = name_to_type(argv[2])
diff --git a/src/emu/cpu/h8/h8s2000.c b/src/devices/cpu/h8/h8s2000.c
index 4686e718666..4686e718666 100644
--- a/src/emu/cpu/h8/h8s2000.c
+++ b/src/devices/cpu/h8/h8s2000.c
diff --git a/src/emu/cpu/h8/h8s2000.h b/src/devices/cpu/h8/h8s2000.h
index 8b0c7ef1f7f..8b0c7ef1f7f 100644
--- a/src/emu/cpu/h8/h8s2000.h
+++ b/src/devices/cpu/h8/h8s2000.h
diff --git a/src/emu/cpu/h8/h8s2245.c b/src/devices/cpu/h8/h8s2245.c
index ca0e4b54c74..ca0e4b54c74 100644
--- a/src/emu/cpu/h8/h8s2245.c
+++ b/src/devices/cpu/h8/h8s2245.c
diff --git a/src/emu/cpu/h8/h8s2245.h b/src/devices/cpu/h8/h8s2245.h
index 257c1d0f35a..257c1d0f35a 100644
--- a/src/emu/cpu/h8/h8s2245.h
+++ b/src/devices/cpu/h8/h8s2245.h
diff --git a/src/emu/cpu/h8/h8s2320.c b/src/devices/cpu/h8/h8s2320.c
index d168ade1060..d168ade1060 100644
--- a/src/emu/cpu/h8/h8s2320.c
+++ b/src/devices/cpu/h8/h8s2320.c
diff --git a/src/emu/cpu/h8/h8s2320.h b/src/devices/cpu/h8/h8s2320.h
index f3ff765daf6..f3ff765daf6 100644
--- a/src/emu/cpu/h8/h8s2320.h
+++ b/src/devices/cpu/h8/h8s2320.h
diff --git a/src/emu/cpu/h8/h8s2357.c b/src/devices/cpu/h8/h8s2357.c
index 56248a29c3a..56248a29c3a 100644
--- a/src/emu/cpu/h8/h8s2357.c
+++ b/src/devices/cpu/h8/h8s2357.c
diff --git a/src/emu/cpu/h8/h8s2357.h b/src/devices/cpu/h8/h8s2357.h
index 042207fc67e..042207fc67e 100644
--- a/src/emu/cpu/h8/h8s2357.h
+++ b/src/devices/cpu/h8/h8s2357.h
diff --git a/src/emu/cpu/h8/h8s2600.c b/src/devices/cpu/h8/h8s2600.c
index a72cf591a19..a72cf591a19 100644
--- a/src/emu/cpu/h8/h8s2600.c
+++ b/src/devices/cpu/h8/h8s2600.c
diff --git a/src/emu/cpu/h8/h8s2600.h b/src/devices/cpu/h8/h8s2600.h
index 5f224361734..5f224361734 100644
--- a/src/emu/cpu/h8/h8s2600.h
+++ b/src/devices/cpu/h8/h8s2600.h
diff --git a/src/emu/cpu/h8/h8s2655.c b/src/devices/cpu/h8/h8s2655.c
index cedce054d48..cedce054d48 100644
--- a/src/emu/cpu/h8/h8s2655.c
+++ b/src/devices/cpu/h8/h8s2655.c
diff --git a/src/emu/cpu/h8/h8s2655.h b/src/devices/cpu/h8/h8s2655.h
index 89b76187bd1..89b76187bd1 100644
--- a/src/emu/cpu/h8/h8s2655.h
+++ b/src/devices/cpu/h8/h8s2655.h
diff --git a/src/emu/cpu/hcd62121/hcd62121.c b/src/devices/cpu/hcd62121/hcd62121.c
index f45ebdbe03d..f45ebdbe03d 100644
--- a/src/emu/cpu/hcd62121/hcd62121.c
+++ b/src/devices/cpu/hcd62121/hcd62121.c
diff --git a/src/emu/cpu/hcd62121/hcd62121.h b/src/devices/cpu/hcd62121/hcd62121.h
index feaa1bf6533..feaa1bf6533 100644
--- a/src/emu/cpu/hcd62121/hcd62121.h
+++ b/src/devices/cpu/hcd62121/hcd62121.h
diff --git a/src/emu/cpu/hcd62121/hcd62121_ops.h b/src/devices/cpu/hcd62121/hcd62121_ops.h
index 7ede44b3105..7ede44b3105 100644
--- a/src/emu/cpu/hcd62121/hcd62121_ops.h
+++ b/src/devices/cpu/hcd62121/hcd62121_ops.h
diff --git a/src/emu/cpu/hcd62121/hcd62121d.c b/src/devices/cpu/hcd62121/hcd62121d.c
index 2283c0682af..2283c0682af 100644
--- a/src/emu/cpu/hcd62121/hcd62121d.c
+++ b/src/devices/cpu/hcd62121/hcd62121d.c
diff --git a/src/emu/cpu/hd61700/hd61700.c b/src/devices/cpu/hd61700/hd61700.c
index 9e8276c6bc0..9e8276c6bc0 100644
--- a/src/emu/cpu/hd61700/hd61700.c
+++ b/src/devices/cpu/hd61700/hd61700.c
diff --git a/src/emu/cpu/hd61700/hd61700.h b/src/devices/cpu/hd61700/hd61700.h
index d903b8ecff7..d903b8ecff7 100644
--- a/src/emu/cpu/hd61700/hd61700.h
+++ b/src/devices/cpu/hd61700/hd61700.h
diff --git a/src/emu/cpu/hd61700/hd61700d.c b/src/devices/cpu/hd61700/hd61700d.c
index 719fade4f49..719fade4f49 100644
--- a/src/emu/cpu/hd61700/hd61700d.c
+++ b/src/devices/cpu/hd61700/hd61700d.c
diff --git a/src/emu/cpu/hmcs40/hmcs40.c b/src/devices/cpu/hmcs40/hmcs40.c
index d76385cf2ba..d76385cf2ba 100644
--- a/src/emu/cpu/hmcs40/hmcs40.c
+++ b/src/devices/cpu/hmcs40/hmcs40.c
diff --git a/src/emu/cpu/hmcs40/hmcs40.h b/src/devices/cpu/hmcs40/hmcs40.h
index c7862ec76b5..c7862ec76b5 100644
--- a/src/emu/cpu/hmcs40/hmcs40.h
+++ b/src/devices/cpu/hmcs40/hmcs40.h
diff --git a/src/emu/cpu/hmcs40/hmcs40d.c b/src/devices/cpu/hmcs40/hmcs40d.c
index b63ba1fde4d..b63ba1fde4d 100644
--- a/src/emu/cpu/hmcs40/hmcs40d.c
+++ b/src/devices/cpu/hmcs40/hmcs40d.c
diff --git a/src/emu/cpu/hmcs40/hmcs40op.c b/src/devices/cpu/hmcs40/hmcs40op.c
index f6faab90360..f6faab90360 100644
--- a/src/emu/cpu/hmcs40/hmcs40op.c
+++ b/src/devices/cpu/hmcs40/hmcs40op.c
diff --git a/src/devices/cpu/hphybrid/hphybrid.c b/src/devices/cpu/hphybrid/hphybrid.c
new file mode 100644
index 00000000000..027a37e03ed
--- /dev/null
+++ b/src/devices/cpu/hphybrid/hphybrid.c
@@ -0,0 +1,961 @@
+// license:BSD-3-Clause
+// copyright-holders:F. Ulivi
+
+#include "emu.h"
+#include "debugger.h"
+#include "hphybrid.h"
+
+enum {
+ HPHYBRID_A,
+ HPHYBRID_B,
+ HPHYBRID_C,
+ HPHYBRID_D,
+ HPHYBRID_P,
+ HPHYBRID_R,
+ HPHYBRID_IV,
+ HPHYBRID_PA,
+ HPHYBRID_DMAPA,
+ HPHYBRID_DMAMA,
+ HPHYBRID_DMAC,
+ HPHYBRID_I
+};
+
+#define BIT_MASK(n) (1U << (n))
+
+// Macros to clear/set single bits
+#define BIT_CLR(w , n) ((w) &= ~BIT_MASK(n))
+#define BIT_SET(w , n) ((w) |= BIT_MASK(n))
+
+// Bits in m_flags
+#define HPHYBRID_C_BIT 0 // Carry/extend
+#define HPHYBRID_O_BIT 1 // Overflow
+#define HPHYBRID_CB_BIT 2 // Cb
+#define HPHYBRID_DB_BIT 3 // Db
+#define HPHYBRID_INTEN_BIT 4 // Interrupt enable
+#define HPHYBRID_DMAEN_BIT 5 // DMA enable
+#define HPHYBRID_DMADIR_BIT 6 // DMA direction (1 = OUT)
+#define HPHYBRID_HALT_BIT 7 // Halt flag
+#define HPHYBRID_IRH_BIT 8 // IRH requested
+#define HPHYBRID_IRL_BIT 9 // IRL requested
+#define HPHYBRID_IRH_SVC_BIT 10 // IRH in service
+#define HPHYBRID_IRL_SVC_BIT 11 // IRL in service
+#define HPHYBRID_DMAR_BIT 12 // DMA request
+
+#define HPHYBRID_IV_MASK 0xfff0 // IV mask
+
+#define CURRENT_PA (m_reg_PA[ 0 ])
+
+#define HP_RESET_ADDR 0x0020
+
+const device_type HP_5061_3011 = &device_creator<hp_5061_3011_cpu_device>;
+
+WRITE_LINE_MEMBER(hp_hybrid_cpu_device::dmar_w)
+{
+ if (state) {
+ BIT_SET(m_flags , HPHYBRID_DMAR_BIT);
+ } else {
+ BIT_CLR(m_flags , HPHYBRID_DMAR_BIT);
+ }
+}
+
+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 clock, const char *shortname)
+: cpu_device(mconfig, type, name, tag, owner, clock, shortname, __FILE__),
+ m_program_config("program", ENDIANNESS_BIG, 16, 16, -1),
+ m_io_config("io", ENDIANNESS_BIG, 16, 6, -1)
+{
+}
+
+void hp_hybrid_cpu_device::device_start()
+{
+ m_reg_A = 0;
+ m_reg_B = 0;
+ m_reg_P = HP_RESET_ADDR;
+ m_reg_R = 0;
+ m_reg_C = 0;
+ m_reg_D = 0;
+ m_reg_IV = 0;
+ m_reg_PA[ 0 ] = 0;
+ m_reg_PA[ 1 ] = 0;
+ m_reg_PA[ 2 ] = 0;
+ m_flags = 0;
+ m_dmapa = 0;
+ m_dmama = 0;
+ m_dmac = 0;
+ m_reg_I = 0;
+
+ {
+ state_add(HPHYBRID_A, "A", m_reg_A);
+ state_add(HPHYBRID_B, "B", m_reg_B);
+ state_add(HPHYBRID_C, "C", m_reg_C);
+ state_add(HPHYBRID_D, "D", m_reg_D);
+ state_add(HPHYBRID_P, "P", m_reg_P);
+ state_add(STATE_GENPC, "GENPC", m_reg_P).noshow();
+ state_add(HPHYBRID_R, "R", m_reg_R);
+ state_add(STATE_GENSP, "GENSP", m_reg_R).noshow();
+ state_add(HPHYBRID_IV, "IV", m_reg_IV);
+ state_add(HPHYBRID_PA, "PA", m_reg_PA[ 0 ]);
+ state_add(STATE_GENFLAGS, "GENFLAGS", m_flags).noshow().formatstr("%9s");
+ state_add(HPHYBRID_DMAPA , "DMAPA" , m_dmapa).noshow();
+ state_add(HPHYBRID_DMAMA , "DMAMA" , m_dmama).noshow();
+ state_add(HPHYBRID_DMAC , "DMAC" , m_dmac).noshow();
+ state_add(HPHYBRID_I , "I" , m_reg_I).noshow();
+ }
+
+ m_program = &space(AS_PROGRAM);
+ m_direct = &m_program->direct();
+ m_io = &space(AS_IO);
+
+ save_item(NAME(m_reg_A));
+ save_item(NAME(m_reg_B));
+ save_item(NAME(m_reg_C));
+ save_item(NAME(m_reg_D));
+ save_item(NAME(m_reg_P));
+ save_item(NAME(m_reg_R));
+ save_item(NAME(m_reg_IV));
+ save_item(NAME(m_reg_PA[0]));
+ save_item(NAME(m_reg_PA[1]));
+ save_item(NAME(m_reg_PA[2]));
+ save_item(NAME(m_flags));
+ save_item(NAME(m_dmapa));
+ save_item(NAME(m_dmama));
+ save_item(NAME(m_dmac));
+ save_item(NAME(m_reg_I));
+
+ m_icountptr = &m_icount;
+}
+
+void hp_hybrid_cpu_device::device_reset()
+{
+ m_reg_P = HP_RESET_ADDR;
+ m_reg_I = RM(m_reg_P);
+ m_flags = 0;
+}
+
+void hp_hybrid_cpu_device::execute_run()
+{
+ do {
+ if (BIT(m_flags , HPHYBRID_DMAEN_BIT) && BIT(m_flags , HPHYBRID_DMAR_BIT)) {
+ handle_dma();
+ } else {
+ debugger_instruction_hook(this, m_reg_P);
+
+ // Check for interrupts
+ check_for_interrupts();
+
+ m_reg_I = execute_one(m_reg_I);
+ }
+ } while (m_icount > 0);
+}
+
+void hp_hybrid_cpu_device::execute_set_input(int inputnum, int state)
+{
+ if (inputnum < HPHYBRID_INT_LVLS) {
+ if (state) {
+ BIT_SET(m_flags , HPHYBRID_IRH_BIT + inputnum);
+ } else {
+ BIT_CLR(m_flags , HPHYBRID_IRH_BIT + inputnum);
+ }
+ }
+}
+
+/**
+ * Execute 1 instruction
+ *
+ * @param opcode Opcode to be executed
+ *
+ * @return Next opcode to be executed
+ */
+UINT16 hp_hybrid_cpu_device::execute_one(UINT16 opcode)
+{
+ if ((opcode & 0x7fe0) == 0x7000) {
+ // EXE
+ m_icount -= 8;
+ return RM(opcode & 0x1f);
+ } else {
+ m_reg_P = execute_one_sub(opcode);
+ return RM(m_reg_P);
+ }
+}
+
+/**
+ * Execute 1 instruction (except EXE)
+ *
+ * @param opcode Opcode to be executed (no EXE instructions)
+ *
+ * @return new value of P register
+ */
+UINT16 hp_hybrid_cpu_device::execute_one_sub(UINT16 opcode)
+{
+ UINT16 ea;
+ UINT16 tmp;
+
+ switch (opcode & 0x7800) {
+ case 0x0000:
+ // LDA
+ m_icount -= 13;
+ m_reg_A = RM(get_ea(opcode));
+ break;
+
+ case 0x0800:
+ // LDB
+ m_icount -= 13;
+ m_reg_B = RM(get_ea(opcode));
+ break;
+
+ case 0x1000:
+ // CPA
+ m_icount -= 16;
+ if (m_reg_A != RM(get_ea(opcode))) {
+ // Skip next instruction
+ return m_reg_P + 2;
+ }
+ break;
+
+ case 0x1800:
+ // CPB
+ m_icount -= 16;
+ if (m_reg_B != RM(get_ea(opcode))) {
+ // Skip next instruction
+ return m_reg_P + 2;
+ }
+ break;
+
+ case 0x2000:
+ // ADA
+ m_icount -= 13;
+ do_add(m_reg_A , RM(get_ea(opcode)));
+ break;
+
+ case 0x2800:
+ // ADB
+ m_icount -= 13;
+ do_add(m_reg_B , RM(get_ea(opcode)));
+ break;
+
+ case 0x3000:
+ // STA
+ m_icount -= 13;
+ WM(get_ea(opcode) , m_reg_A);
+ break;
+
+ case 0x3800:
+ // STB
+ m_icount -= 13;
+ WM(get_ea(opcode) , m_reg_B);
+ break;
+
+ case 0x4000:
+ // JSM
+ m_icount -= 17;
+ WM(++m_reg_R , m_reg_P);
+ return get_ea(opcode);
+
+ case 0x4800:
+ // ISZ
+ m_icount -= 19;
+ ea = get_ea(opcode);
+ tmp = RM(ea) + 1;
+ WM(ea , tmp);
+ if (tmp == 0) {
+ // Skip next instruction
+ return m_reg_P + 2;
+ }
+ break;
+
+ case 0x5000:
+ // AND
+ m_icount -= 13;
+ m_reg_A &= RM(get_ea(opcode));
+ break;
+
+ case 0x5800:
+ // DSZ
+ m_icount -= 19;
+ ea = get_ea(opcode);
+ tmp = RM(ea) - 1;
+ WM(ea , tmp);
+ if (tmp == 0) {
+ // Skip next instruction
+ return m_reg_P + 2;
+ }
+ break;
+
+ case 0x6000:
+ // IOR
+ m_icount -= 13;
+ m_reg_A |= RM(get_ea(opcode));
+ break;
+
+ case 0x6800:
+ // JMP
+ m_icount -= 8;
+ return get_ea(opcode);
+
+ default:
+ switch (opcode & 0xfec0) {
+ case 0x7400:
+ // RZA
+ // SZA
+ m_icount -= 14;
+ return get_skip_addr(opcode , m_reg_A == 0);
+
+ case 0x7440:
+ // RIA
+ // SIA
+ m_icount -= 14;
+ return get_skip_addr(opcode , m_reg_A++ == 0);
+
+ case 0x7480:
+ // SFS
+ // SFC
+ m_icount -= 14;
+ // TODO: read flag bit
+ return get_skip_addr(opcode , true);
+
+ case 0x7C00:
+ // RZB
+ // SZB
+ m_icount -= 14;
+ return get_skip_addr(opcode , m_reg_B == 0);
+
+ case 0x7C40:
+ // RIB
+ // SIB
+ m_icount -= 14;
+ return get_skip_addr(opcode , m_reg_B++ == 0);
+
+ case 0x7c80:
+ // SSS
+ // SSC
+ m_icount -= 14;
+ // TODO: read status bit
+ return get_skip_addr(opcode , true);
+
+ case 0x7cc0:
+ // SHS
+ // SHC
+ m_icount -= 14;
+ return get_skip_addr(opcode , !BIT(m_flags , HPHYBRID_HALT_BIT));
+
+ default:
+ switch (opcode & 0xfe00) {
+ case 0x7600:
+ // SLA
+ // RLA
+ m_icount -= 14;
+ return get_skip_addr_sc(opcode , m_reg_A , 0);
+
+ case 0x7e00:
+ // SLB
+ // RLB
+ m_icount -= 14;
+ return get_skip_addr_sc(opcode , m_reg_B , 0);
+
+ case 0xf400:
+ // SAP
+ // SAM
+ m_icount -= 14;
+ return get_skip_addr_sc(opcode , m_reg_A , 15);
+
+ case 0xf600:
+ // SOC
+ // SOS
+ m_icount -= 14;
+ return get_skip_addr_sc(opcode , m_flags , HPHYBRID_O_BIT);
+
+ case 0xfc00:
+ // SBP
+ // SBM
+ m_icount -= 14;
+ return get_skip_addr_sc(opcode , m_reg_B , 15);
+
+ case 0xfe00:
+ // SEC
+ // SES
+ m_icount -= 14;
+ return get_skip_addr_sc(opcode , m_flags , HPHYBRID_C_BIT);
+
+ default:
+ switch (opcode & 0xfff0) {
+ case 0xf100:
+ // AAR
+ tmp = (opcode & 0xf) + 1;
+ m_icount -= (9 + tmp);
+ // A shift by 16 positions is equivalent to a shift by 15
+ tmp = tmp > 15 ? 15 : tmp;
+ m_reg_A = ((m_reg_A ^ 0x8000) >> tmp) - (0x8000 >> tmp);
+ break;
+
+ case 0xf900:
+ // ABR
+ tmp = (opcode & 0xf) + 1;
+ m_icount -= (9 + tmp);
+ tmp = tmp > 15 ? 15 : tmp;
+ m_reg_B = ((m_reg_B ^ 0x8000) >> tmp) - (0x8000 >> tmp);
+ break;
+
+ case 0xf140:
+ // SAR
+ tmp = (opcode & 0xf) + 1;
+ m_icount -= (9 + tmp);
+ m_reg_A >>= tmp;
+ break;
+
+ case 0xf940:
+ // SBR
+ tmp = (opcode & 0xf) + 1;
+ m_icount -= (9 + tmp);
+ m_reg_B >>= tmp;
+ break;
+
+ case 0xf180:
+ // SAL
+ tmp = (opcode & 0xf) + 1;
+ m_icount -= (9 + tmp);
+ m_reg_A <<= tmp;
+ break;
+
+ case 0xf980:
+ // SBL
+ tmp = (opcode & 0xf) + 1;
+ m_icount -= (9 + tmp);
+ m_reg_B <<= tmp;
+ break;
+
+ case 0xf1c0:
+ // RAR
+ tmp = (opcode & 0xf) + 1;
+ m_icount -= (9 + tmp);
+ m_reg_A = (m_reg_A >> tmp) | (m_reg_A << (16 - tmp));
+ break;
+
+ case 0xf9c0:
+ // RBR
+ tmp = (opcode & 0xf) + 1;
+ m_icount -= (9 + tmp);
+ m_reg_B = (m_reg_B >> tmp) | (m_reg_B << (16 - tmp));
+ break;
+
+ default:
+ if ((opcode & 0xf760) == 0x7160) {
+ // Place/withdraw instructions
+ m_icount -= 23;
+ do_pw(opcode);
+ } else if ((opcode & 0xff80) == 0xf080) {
+ // RET
+ m_icount -= 16;
+ if (BIT(opcode , 6)) {
+ // Pop PA stack
+ if (BIT(m_flags , HPHYBRID_IRH_SVC_BIT)) {
+ BIT_CLR(m_flags , HPHYBRID_IRH_SVC_BIT);
+ memmove(&m_reg_PA[ 0 ] , &m_reg_PA[ 1 ] , HPHYBRID_INT_LVLS);
+ } else if (BIT(m_flags , HPHYBRID_IRL_SVC_BIT)) {
+ BIT_CLR(m_flags , HPHYBRID_IRL_SVC_BIT);
+ memmove(&m_reg_PA[ 0 ] , &m_reg_PA[ 1 ] , HPHYBRID_INT_LVLS);
+ }
+ }
+ tmp = RM(m_reg_R--) + (opcode & 0x1f);
+ return BIT(opcode , 5) ? tmp - 0x20 : tmp;
+ } else {
+ switch (opcode) {
+ case 0x7100:
+ // SDO
+ m_icount -= 12;
+ BIT_SET(m_flags , HPHYBRID_DMADIR_BIT);
+ break;
+
+ case 0x7108:
+ // SDI
+ m_icount -= 12;
+ BIT_CLR(m_flags , HPHYBRID_DMADIR_BIT);
+ break;
+
+ case 0x7110:
+ // EIR
+ m_icount -= 12;
+ BIT_SET(m_flags , HPHYBRID_INTEN_BIT);
+ break;
+
+ case 0x7118:
+ // DIR
+ m_icount -= 12;
+ BIT_CLR(m_flags , HPHYBRID_INTEN_BIT);
+ break;
+
+ case 0x7120:
+ // DMA
+ m_icount -= 12;
+ BIT_SET(m_flags , HPHYBRID_DMAEN_BIT);
+ break;
+
+ case 0x7138:
+ // DDR
+ m_icount -= 12;
+ BIT_CLR(m_flags , HPHYBRID_DMAEN_BIT);
+ break;
+
+ case 0x7140:
+ // DBL
+ m_icount -= 12;
+ BIT_CLR(m_flags , HPHYBRID_DB_BIT);
+ break;
+
+ case 0x7148:
+ // CBL
+ m_icount -= 12;
+ BIT_CLR(m_flags , HPHYBRID_CB_BIT);
+ break;
+
+ case 0x7150:
+ // DBU
+ m_icount -= 12;
+ BIT_SET(m_flags , HPHYBRID_DB_BIT);
+ break;
+
+ case 0x7158:
+ // CBU
+ m_icount -= 12;
+ BIT_SET(m_flags , HPHYBRID_CB_BIT);
+ break;
+
+ case 0xf020:
+ // TCA
+ m_icount -= 9;
+ m_reg_A = ~m_reg_A;
+ do_add(m_reg_A , 1);
+ break;
+
+ case 0xf060:
+ // CMA
+ m_icount -= 9;
+ m_reg_A = ~m_reg_A;
+ break;
+
+ case 0xf820:
+ // TCB
+ m_icount -= 9;
+ m_reg_B = ~m_reg_B;
+ do_add(m_reg_B , 1);
+ break;
+
+ case 0xf860:
+ // CMB
+ m_icount -= 9;
+ m_reg_B = ~m_reg_B;
+ break;
+
+ default:
+ // Unrecognized instructions: NOP
+ // Execution time is fictional
+ m_icount -= 6;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ return m_reg_P + 1;
+}
+
+void hp_hybrid_cpu_device::state_string_export(const device_state_entry &entry, std::string &str)
+{
+ if (entry.index() == STATE_GENFLAGS) {
+ strprintf(str, "%s %s %c %c",
+ BIT(m_flags , HPHYBRID_DB_BIT) ? "Db":"..",
+ BIT(m_flags , HPHYBRID_CB_BIT) ? "Cb":"..",
+ BIT(m_flags , HPHYBRID_O_BIT) ? 'O':'.',
+ BIT(m_flags , HPHYBRID_C_BIT) ? 'E':'.');
+ }
+}
+
+offs_t hp_hybrid_cpu_device::disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options)
+{
+ extern CPU_DISASSEMBLE(hp_hybrid);
+ return CPU_DISASSEMBLE_NAME(hp_hybrid)(this, buffer, pc, oprom, opram, options);
+}
+
+UINT16 hp_hybrid_cpu_device::get_ea(UINT16 opcode)
+{
+ UINT16 base;
+ UINT16 off;
+
+ if (BIT(opcode , 10)) {
+ // Current page
+ base = m_reg_P;
+ } else {
+ // Base page
+ base = 0;
+ }
+
+ off = opcode & 0x3ff;
+ if (off & 0x200) {
+ off -= 0x400;
+ }
+
+ base += off;
+
+ if (BIT(opcode , 15)) {
+ // Indirect addressing
+ m_icount -= 6;
+ return RM(base);
+ } else {
+ // Direct addressing
+ return base;
+ }
+}
+
+void hp_hybrid_cpu_device::do_add(UINT16& addend1 , UINT16 addend2)
+{
+ UINT32 tmp = addend1 + addend2;
+
+ if (BIT(tmp , 16)) {
+ // Carry
+ BIT_SET(m_flags , HPHYBRID_C_BIT);
+ }
+
+ if (BIT((tmp ^ addend1) & (tmp ^ addend2) , 15)) {
+ // Overflow
+ BIT_SET(m_flags , HPHYBRID_O_BIT);
+ }
+
+ addend1 = (UINT16)tmp;
+}
+
+UINT16 hp_hybrid_cpu_device::get_skip_addr(UINT16 opcode , bool condition) const
+{
+ bool skip_val = BIT(opcode , 8) != 0;
+
+ if (condition == skip_val) {
+ UINT16 off = opcode & 0x1f;
+
+ if (BIT(opcode , 5)) {
+ off -= 0x20;
+ }
+ return m_reg_P + off;
+ } else {
+ return m_reg_P + 1;
+ }
+}
+
+UINT16 hp_hybrid_cpu_device::get_skip_addr_sc(UINT16 opcode , UINT16& v , unsigned n)
+{
+ bool val = BIT(v , n);
+
+ if (BIT(opcode , 7)) {
+ if (BIT(opcode , 6)) {
+ BIT_SET(v , n);
+ } else {
+ BIT_CLR(v , n);
+ }
+ }
+
+ return get_skip_addr(opcode , val);
+}
+
+void hp_hybrid_cpu_device::do_pw(UINT16 opcode)
+{
+ UINT16 tmp;
+ UINT16 reg_addr = opcode & 7;
+ UINT16 *ptr_reg;
+ UINT16 b_mask;
+
+ if (BIT(opcode , 3)) {
+ ptr_reg = &m_reg_D;
+ b_mask = BIT_MASK(HPHYBRID_DB_BIT);
+ } else {
+ ptr_reg = &m_reg_C;
+ b_mask = BIT_MASK(HPHYBRID_CB_BIT);
+ }
+
+ if (BIT(opcode , 4)) {
+ // Withdraw
+ if (BIT(opcode , 11)) {
+ // Byte
+ UINT32 tmp_addr = (UINT32)(*ptr_reg);
+ if (m_flags & b_mask) {
+ tmp_addr |= 0x10000;
+ }
+ tmp = RM((UINT16)(tmp_addr >> 1));
+ if (BIT(tmp_addr , 0)) {
+ tmp &= 0xff;
+ } else {
+ tmp >>= 8;
+ }
+ } else {
+ // Word
+ tmp = RM(*ptr_reg);
+ }
+ WM(reg_addr , tmp);
+
+ if (BIT(opcode , 7)) {
+ // Post-decrement
+ if ((*ptr_reg)-- == 0) {
+ m_flags ^= b_mask;
+ }
+ } else {
+ // Post-increment
+ if (++(*ptr_reg) == 0) {
+ m_flags ^= b_mask;
+ }
+ }
+ } else {
+ // Place
+ if (BIT(opcode , 7)) {
+ // Pre-decrement
+ if ((*ptr_reg)-- == 0) {
+ m_flags ^= b_mask;
+ }
+ } else {
+ // Pre-increment
+ if (++(*ptr_reg) == 0) {
+ m_flags ^= b_mask;
+ }
+ }
+ tmp = RM(reg_addr);
+ if (BIT(opcode , 11)) {
+ // Byte
+ UINT32 tmp_addr = (UINT32)(*ptr_reg);
+ if (m_flags & b_mask) {
+ tmp_addr |= 0x10000;
+ }
+ WMB(tmp_addr , (UINT8)tmp);
+ } else {
+ // Word
+ WM(*ptr_reg , tmp);
+ }
+ }
+}
+
+void hp_hybrid_cpu_device::check_for_interrupts(void)
+{
+ if (!BIT(m_flags , HPHYBRID_INTEN_BIT) || BIT(m_flags , HPHYBRID_IRH_SVC_BIT)) {
+ return;
+ }
+
+ int irqline;
+
+ if (BIT(m_flags , HPHYBRID_IRH_BIT)) {
+ // Service high-level interrupt
+ BIT_SET(m_flags , HPHYBRID_IRH_SVC_BIT);
+ irqline = HPHYBRID_IRH;
+ } else if (BIT(m_flags , HPHYBRID_IRL_BIT) && !BIT(m_flags , HPHYBRID_IRL_SVC_BIT)) {
+ // Service low-level interrupt
+ BIT_SET(m_flags , HPHYBRID_IRL_SVC_BIT);
+ irqline = HPHYBRID_IRL;
+ } else {
+ return;
+ }
+
+ // Get interrupt vector in low byte
+ UINT8 vector = (UINT8)standard_irq_callback(irqline);
+ UINT8 new_PA;
+
+ // Get highest numbered 1
+ // Don't know what happens if vector is 0, here we assume bit 7 = 1
+ if (vector == 0) {
+ new_PA = 7;
+ } else {
+ for (new_PA = 7; new_PA && !BIT(vector , 7); new_PA--, vector <<= 1) {
+ }
+ }
+ if (irqline == HPHYBRID_IRH) {
+ BIT_SET(new_PA , 3);
+ }
+
+ // Push PA stack
+ memmove(&m_reg_PA[ 1 ] , &m_reg_PA[ 0 ] , HPHYBRID_INT_LVLS);
+
+ CURRENT_PA = new_PA;
+
+ // Is this correct? Patent @ pg 210 suggests that the whole interrupt recognition sequence
+ // lasts for 32 cycles (6 are already accounted for in get_ea for one indirection)
+ m_icount -= 26;
+
+ // Do a double-indirect JSM IV,I instruction
+ WM(++m_reg_R , m_reg_P);
+ m_reg_P = RM(get_ea(0xc008));
+ m_reg_I = RM(m_reg_P);
+}
+
+void hp_hybrid_cpu_device::handle_dma(void)
+{
+ // Patent hints at the fact that terminal count is detected by bit 15 of dmac being 1 after decrementing
+ bool tc = BIT(--m_dmac , 15) != 0;
+ UINT16 tmp;
+
+ if (BIT(m_flags , HPHYBRID_DMADIR_BIT)) {
+ // "Outward" DMA: memory -> peripheral
+ tmp = RM(m_dmama++);
+ WIO(m_dmapa , tc ? 2 : 0 , tmp);
+ m_icount -= 10;
+ } else {
+ // "Inward" DMA: peripheral -> memory
+ tmp = RIO(m_dmapa , tc ? 2 : 0);
+ WM(m_dmama++ , tmp);
+ m_icount -= 9;
+ }
+
+ // This is the one of the biggest question marks: is the DMA automatically disabled on TC?
+ // Here we assume it is. After all it would make no difference because there is no way
+ // to read the DMA enable flag back, so each time the DMA is needed it has to be enabled again.
+ if (tc) {
+ BIT_CLR(m_flags , HPHYBRID_DMAEN_BIT);
+ }
+}
+
+UINT16 hp_hybrid_cpu_device::RM(UINT16 addr)
+{
+ UINT16 tmp;
+
+ if (addr <= HP_REG_LAST_ADDR) {
+ // Memory mapped registers
+ switch (addr) {
+ case HP_REG_A_ADDR:
+ return m_reg_A;
+
+ case HP_REG_B_ADDR:
+ return m_reg_B;
+
+ case HP_REG_P_ADDR:
+ return m_reg_P;
+
+ case HP_REG_R_ADDR:
+ return m_reg_R;
+
+ case HP_REG_R4_ADDR:
+ case HP_REG_R5_ADDR:
+ case HP_REG_R6_ADDR:
+ case HP_REG_R7_ADDR:
+ return RIO(CURRENT_PA , addr - HP_REG_R4_ADDR);
+
+ case HP_REG_IV_ADDR:
+ // Correct?
+ if (!BIT(m_flags , HPHYBRID_IRH_SVC_BIT) && !BIT(m_flags , HPHYBRID_IRL_SVC_BIT)) {
+ return m_reg_IV;
+ } else {
+ return m_reg_IV | CURRENT_PA;
+ }
+
+ case HP_REG_PA_ADDR:
+ return CURRENT_PA;
+
+ case HP_REG_DMAPA_ADDR:
+ tmp = m_dmapa & HP_REG_PA_MASK;
+ if (BIT(m_flags , HPHYBRID_CB_BIT)) {
+ BIT_SET(tmp , 15);
+ }
+ if (BIT(m_flags , HPHYBRID_DB_BIT)) {
+ BIT_SET(tmp , 14);
+ }
+ return tmp;
+
+ case HP_REG_DMAMA_ADDR:
+ return m_dmama;
+
+ case HP_REG_DMAC_ADDR:
+ return m_dmac;
+
+ case HP_REG_C_ADDR:
+ return m_reg_C;
+
+ case HP_REG_D_ADDR:
+ return m_reg_D;
+
+ default:
+ // Unknown registers are returned as 0
+ return 0;
+ }
+ } else {
+ return m_direct->read_word((offs_t)addr << 1);
+ }
+}
+
+void hp_hybrid_cpu_device::WM(UINT16 addr , UINT16 v)
+{
+ if (addr <= HP_REG_LAST_ADDR) {
+ // Memory mapped registers
+ switch (addr) {
+ case HP_REG_A_ADDR:
+ m_reg_A = v;
+ break;
+
+ case HP_REG_B_ADDR:
+ m_reg_B = v;
+ break;
+
+ case HP_REG_P_ADDR:
+ m_reg_P = v;
+ break;
+
+ case HP_REG_R_ADDR:
+ m_reg_R = v;
+ break;
+
+ case HP_REG_R4_ADDR:
+ case HP_REG_R5_ADDR:
+ case HP_REG_R6_ADDR:
+ case HP_REG_R7_ADDR:
+ WIO(CURRENT_PA , addr - HP_REG_R4_ADDR , v);
+ break;
+
+ case HP_REG_IV_ADDR:
+ m_reg_IV = v & HP_REG_IV_MASK;
+ break;
+
+ case HP_REG_PA_ADDR:
+ CURRENT_PA = v & HP_REG_PA_MASK;
+ break;
+
+ case HP_REG_DMAPA_ADDR:
+ m_dmapa = v & HP_REG_PA_MASK;
+ break;
+
+ case HP_REG_DMAMA_ADDR:
+ m_dmama = v;
+ break;
+
+ case HP_REG_DMAC_ADDR:
+ m_dmac = v;
+ break;
+
+ case HP_REG_C_ADDR:
+ m_reg_C = v;
+ break;
+
+ case HP_REG_D_ADDR:
+ m_reg_D = v;
+ break;
+
+ default:
+ // Unknown registers are silently discarded
+ break;
+ }
+ } else {
+ m_program->write_word((offs_t)addr << 1 , v);
+ }
+}
+
+void hp_hybrid_cpu_device::WMB(UINT32 addr , UINT8 v)
+{
+ if (addr <= (HP_REG_LAST_ADDR * 2 + 1)) {
+ // Cannot write bytes to registers
+ } else {
+ m_program->write_byte(addr , v);
+ }
+}
+
+UINT16 hp_hybrid_cpu_device::RIO(UINT8 pa , UINT8 ic)
+{
+ return m_io->read_word(HP_MAKE_IOADDR(pa, ic) << 1);
+}
+
+void hp_hybrid_cpu_device::WIO(UINT8 pa , UINT8 ic , UINT16 v)
+{
+ m_io->write_word(HP_MAKE_IOADDR(pa, ic) << 1 , v);
+}
+
+hp_5061_3011_cpu_device::hp_5061_3011_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+: hp_hybrid_cpu_device(mconfig, HP_5061_3011, "HP_5061_3011", tag, owner, clock, "5061-3011")
+{
+}
diff --git a/src/emu/cpu/hphybrid/hphybrid.h b/src/devices/cpu/hphybrid/hphybrid.h
index 5ef9f927d0e..7683cce28b6 100644
--- a/src/emu/cpu/hphybrid/hphybrid.h
+++ b/src/devices/cpu/hphybrid/hphybrid.h
@@ -65,7 +65,7 @@
class hp_hybrid_cpu_device : public cpu_device
{
public:
- DECLARE_WRITE_LINE_MEMBER(dmar_w);
+ DECLARE_WRITE_LINE_MEMBER(dmar_w);
protected:
hp_hybrid_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname);
@@ -126,7 +126,7 @@ private:
UINT16 get_skip_addr_sc(UINT16 opcode , UINT16& v , unsigned n);
void do_pw(UINT16 opcode);
void check_for_interrupts(void);
- void handle_dma(void);
+ void handle_dma(void);
UINT16 RM(UINT16 addr);
void WM(UINT16 addr , UINT16 v);
diff --git a/src/emu/cpu/hphybrid/hphybrid_dasm.c b/src/devices/cpu/hphybrid/hphybrid_dasm.c
index e9eddf49a96..e9eddf49a96 100644
--- a/src/emu/cpu/hphybrid/hphybrid_dasm.c
+++ b/src/devices/cpu/hphybrid/hphybrid_dasm.c
diff --git a/src/emu/cpu/i386/cycles.h b/src/devices/cpu/i386/cycles.h
index a04e54da8e0..a04e54da8e0 100644
--- a/src/emu/cpu/i386/cycles.h
+++ b/src/devices/cpu/i386/cycles.h
diff --git a/src/emu/cpu/i386/i386.c b/src/devices/cpu/i386/i386.c
index 9f6b218ed9e..9f6b218ed9e 100644
--- a/src/emu/cpu/i386/i386.c
+++ b/src/devices/cpu/i386/i386.c
diff --git a/src/emu/cpu/i386/i386.h b/src/devices/cpu/i386/i386.h
index 237001be9ac..237001be9ac 100644
--- a/src/emu/cpu/i386/i386.h
+++ b/src/devices/cpu/i386/i386.h
diff --git a/src/emu/cpu/i386/i386dasm.c b/src/devices/cpu/i386/i386dasm.c
index 18e5557b4b5..18e5557b4b5 100644
--- a/src/emu/cpu/i386/i386dasm.c
+++ b/src/devices/cpu/i386/i386dasm.c
diff --git a/src/emu/cpu/i386/i386op16.inc b/src/devices/cpu/i386/i386op16.inc
index 9456f8931b2..9456f8931b2 100644
--- a/src/emu/cpu/i386/i386op16.inc
+++ b/src/devices/cpu/i386/i386op16.inc
diff --git a/src/emu/cpu/i386/i386op32.inc b/src/devices/cpu/i386/i386op32.inc
index 96b3baddb1c..96b3baddb1c 100644
--- a/src/emu/cpu/i386/i386op32.inc
+++ b/src/devices/cpu/i386/i386op32.inc
diff --git a/src/emu/cpu/i386/i386ops.h b/src/devices/cpu/i386/i386ops.h
index 2760b9cf410..2760b9cf410 100644
--- a/src/emu/cpu/i386/i386ops.h
+++ b/src/devices/cpu/i386/i386ops.h
diff --git a/src/emu/cpu/i386/i386ops.inc b/src/devices/cpu/i386/i386ops.inc
index 291c493233b..291c493233b 100644
--- a/src/emu/cpu/i386/i386ops.inc
+++ b/src/devices/cpu/i386/i386ops.inc
diff --git a/src/emu/cpu/i386/i386priv.h b/src/devices/cpu/i386/i386priv.h
index c1f6ecea94c..c1f6ecea94c 100644
--- a/src/emu/cpu/i386/i386priv.h
+++ b/src/devices/cpu/i386/i386priv.h
diff --git a/src/emu/cpu/i386/i486ops.inc b/src/devices/cpu/i386/i486ops.inc
index d22f6c079c3..d22f6c079c3 100644
--- a/src/emu/cpu/i386/i486ops.inc
+++ b/src/devices/cpu/i386/i486ops.inc
diff --git a/src/emu/cpu/i386/pentops.inc b/src/devices/cpu/i386/pentops.inc
index 34dad95afda..34dad95afda 100644
--- a/src/emu/cpu/i386/pentops.inc
+++ b/src/devices/cpu/i386/pentops.inc
diff --git a/src/emu/cpu/i386/x87ops.inc b/src/devices/cpu/i386/x87ops.inc
index 9306a7a5727..9306a7a5727 100644
--- a/src/emu/cpu/i386/x87ops.inc
+++ b/src/devices/cpu/i386/x87ops.inc
diff --git a/src/emu/cpu/i4004/4004dasm.c b/src/devices/cpu/i4004/4004dasm.c
index 2e76c14b3b5..2e76c14b3b5 100644
--- a/src/emu/cpu/i4004/4004dasm.c
+++ b/src/devices/cpu/i4004/4004dasm.c
diff --git a/src/emu/cpu/i4004/i4004.c b/src/devices/cpu/i4004/i4004.c
index c6e65cb27ee..c6e65cb27ee 100644
--- a/src/emu/cpu/i4004/i4004.c
+++ b/src/devices/cpu/i4004/i4004.c
diff --git a/src/emu/cpu/i4004/i4004.h b/src/devices/cpu/i4004/i4004.h
index 956218f3723..956218f3723 100644
--- a/src/emu/cpu/i4004/i4004.h
+++ b/src/devices/cpu/i4004/i4004.h
diff --git a/src/emu/cpu/i8008/8008dasm.c b/src/devices/cpu/i8008/8008dasm.c
index d5f1e082d5e..d5f1e082d5e 100644
--- a/src/emu/cpu/i8008/8008dasm.c
+++ b/src/devices/cpu/i8008/8008dasm.c
diff --git a/src/emu/cpu/i8008/i8008.c b/src/devices/cpu/i8008/i8008.c
index 9527185339a..9527185339a 100644
--- a/src/emu/cpu/i8008/i8008.c
+++ b/src/devices/cpu/i8008/i8008.c
diff --git a/src/emu/cpu/i8008/i8008.h b/src/devices/cpu/i8008/i8008.h
index c9cbecce7aa..c9cbecce7aa 100644
--- a/src/emu/cpu/i8008/i8008.h
+++ b/src/devices/cpu/i8008/i8008.h
diff --git a/src/emu/cpu/i8085/8085dasm.c b/src/devices/cpu/i8085/8085dasm.c
index e68bdfac337..e68bdfac337 100644
--- a/src/emu/cpu/i8085/8085dasm.c
+++ b/src/devices/cpu/i8085/8085dasm.c
diff --git a/src/emu/cpu/i8085/i8085.c b/src/devices/cpu/i8085/i8085.c
index 3e278f64d6c..3e278f64d6c 100644
--- a/src/emu/cpu/i8085/i8085.c
+++ b/src/devices/cpu/i8085/i8085.c
diff --git a/src/emu/cpu/i8085/i8085.h b/src/devices/cpu/i8085/i8085.h
index a0e8f5d8d3a..a0e8f5d8d3a 100644
--- a/src/emu/cpu/i8085/i8085.h
+++ b/src/devices/cpu/i8085/i8085.h
diff --git a/src/emu/cpu/i8085/i8085cpu.h b/src/devices/cpu/i8085/i8085cpu.h
index 5ccecf3cd95..5ccecf3cd95 100644
--- a/src/emu/cpu/i8085/i8085cpu.h
+++ b/src/devices/cpu/i8085/i8085cpu.h
diff --git a/src/emu/cpu/i8089/i8089.c b/src/devices/cpu/i8089/i8089.c
index b81869bda1d..b81869bda1d 100644
--- a/src/emu/cpu/i8089/i8089.c
+++ b/src/devices/cpu/i8089/i8089.c
diff --git a/src/emu/cpu/i8089/i8089.h b/src/devices/cpu/i8089/i8089.h
index f40607bdc7c..f40607bdc7c 100644
--- a/src/emu/cpu/i8089/i8089.h
+++ b/src/devices/cpu/i8089/i8089.h
diff --git a/src/emu/cpu/i8089/i8089_channel.c b/src/devices/cpu/i8089/i8089_channel.c
index fe7666ac17c..fe7666ac17c 100644
--- a/src/emu/cpu/i8089/i8089_channel.c
+++ b/src/devices/cpu/i8089/i8089_channel.c
diff --git a/src/emu/cpu/i8089/i8089_channel.h b/src/devices/cpu/i8089/i8089_channel.h
index 7c1f5a6e445..7c1f5a6e445 100644
--- a/src/emu/cpu/i8089/i8089_channel.h
+++ b/src/devices/cpu/i8089/i8089_channel.h
diff --git a/src/emu/cpu/i8089/i8089_dasm.c b/src/devices/cpu/i8089/i8089_dasm.c
index d1f62621f3c..d1f62621f3c 100644
--- a/src/emu/cpu/i8089/i8089_dasm.c
+++ b/src/devices/cpu/i8089/i8089_dasm.c
diff --git a/src/emu/cpu/i8089/i8089_ops.c b/src/devices/cpu/i8089/i8089_ops.c
index 09c8f5cd037..09c8f5cd037 100644
--- a/src/emu/cpu/i8089/i8089_ops.c
+++ b/src/devices/cpu/i8089/i8089_ops.c
diff --git a/src/emu/cpu/i86/i186.c b/src/devices/cpu/i86/i186.c
index 072d70a95bb..072d70a95bb 100644
--- a/src/emu/cpu/i86/i186.c
+++ b/src/devices/cpu/i86/i186.c
diff --git a/src/emu/cpu/i86/i186.h b/src/devices/cpu/i86/i186.h
index af7302e729a..af7302e729a 100644
--- a/src/emu/cpu/i86/i186.h
+++ b/src/devices/cpu/i86/i186.h
diff --git a/src/emu/cpu/i86/i286.c b/src/devices/cpu/i86/i286.c
index e6314b9cf83..e6314b9cf83 100644
--- a/src/emu/cpu/i86/i286.c
+++ b/src/devices/cpu/i86/i286.c
diff --git a/src/emu/cpu/i86/i286.h b/src/devices/cpu/i86/i286.h
index 64a0355bf6b..64a0355bf6b 100644
--- a/src/emu/cpu/i86/i286.h
+++ b/src/devices/cpu/i86/i286.h
diff --git a/src/emu/cpu/i86/i86.c b/src/devices/cpu/i86/i86.c
index 9c8d5a75465..9c8d5a75465 100644
--- a/src/emu/cpu/i86/i86.c
+++ b/src/devices/cpu/i86/i86.c
diff --git a/src/emu/cpu/i86/i86.h b/src/devices/cpu/i86/i86.h
index 6e48fecd71e..6e48fecd71e 100644
--- a/src/emu/cpu/i86/i86.h
+++ b/src/devices/cpu/i86/i86.h
diff --git a/src/emu/cpu/i86/i86.txt b/src/devices/cpu/i86/i86.txt
index 39b54d6a8d0..39b54d6a8d0 100644
--- a/src/emu/cpu/i86/i86.txt
+++ b/src/devices/cpu/i86/i86.txt
diff --git a/src/emu/cpu/i86/i86inline.h b/src/devices/cpu/i86/i86inline.h
index d848e336e35..d848e336e35 100644
--- a/src/emu/cpu/i86/i86inline.h
+++ b/src/devices/cpu/i86/i86inline.h
diff --git a/src/emu/cpu/i860/i860.c b/src/devices/cpu/i860/i860.c
index 5023fa65c60..5023fa65c60 100644
--- a/src/emu/cpu/i860/i860.c
+++ b/src/devices/cpu/i860/i860.c
diff --git a/src/emu/cpu/i860/i860.h b/src/devices/cpu/i860/i860.h
index 1079d46b479..1079d46b479 100644
--- a/src/emu/cpu/i860/i860.h
+++ b/src/devices/cpu/i860/i860.h
diff --git a/src/emu/cpu/i860/i860dasm.c b/src/devices/cpu/i860/i860dasm.c
index 60c83a5fec0..60c83a5fec0 100644
--- a/src/emu/cpu/i860/i860dasm.c
+++ b/src/devices/cpu/i860/i860dasm.c
diff --git a/src/emu/cpu/i860/i860dec.inc b/src/devices/cpu/i860/i860dec.inc
index d0943c9e5a6..d0943c9e5a6 100644
--- a/src/emu/cpu/i860/i860dec.inc
+++ b/src/devices/cpu/i860/i860dec.inc
diff --git a/src/emu/cpu/i860/i860dis.c b/src/devices/cpu/i860/i860dis.c
index 1c72a9f474d..1c72a9f474d 100644
--- a/src/emu/cpu/i860/i860dis.c
+++ b/src/devices/cpu/i860/i860dis.c
diff --git a/src/emu/cpu/i960/i960.c b/src/devices/cpu/i960/i960.c
index 8b00a58d4c6..8b00a58d4c6 100644
--- a/src/emu/cpu/i960/i960.c
+++ b/src/devices/cpu/i960/i960.c
diff --git a/src/emu/cpu/i960/i960.h b/src/devices/cpu/i960/i960.h
index 7251a091fd0..7251a091fd0 100644
--- a/src/emu/cpu/i960/i960.h
+++ b/src/devices/cpu/i960/i960.h
diff --git a/src/emu/cpu/i960/i960dis.c b/src/devices/cpu/i960/i960dis.c
index 8e1a4c00431..8e1a4c00431 100644
--- a/src/emu/cpu/i960/i960dis.c
+++ b/src/devices/cpu/i960/i960dis.c
diff --git a/src/emu/cpu/i960/i960dis.h b/src/devices/cpu/i960/i960dis.h
index 6ad878ee119..6ad878ee119 100644
--- a/src/emu/cpu/i960/i960dis.h
+++ b/src/devices/cpu/i960/i960dis.h
diff --git a/src/emu/cpu/ie15/ie15.c b/src/devices/cpu/ie15/ie15.c
index cae9bc8db1d..cae9bc8db1d 100644
--- a/src/emu/cpu/ie15/ie15.c
+++ b/src/devices/cpu/ie15/ie15.c
diff --git a/src/emu/cpu/ie15/ie15.h b/src/devices/cpu/ie15/ie15.h
index 8aaaa5a81ab..8aaaa5a81ab 100644
--- a/src/emu/cpu/ie15/ie15.h
+++ b/src/devices/cpu/ie15/ie15.h
diff --git a/src/emu/cpu/ie15/ie15dasm.c b/src/devices/cpu/ie15/ie15dasm.c
index 3f21fb977e0..3f21fb977e0 100644
--- a/src/emu/cpu/ie15/ie15dasm.c
+++ b/src/devices/cpu/ie15/ie15dasm.c
diff --git a/src/emu/cpu/jaguar/jagdasm.c b/src/devices/cpu/jaguar/jagdasm.c
index e5e9cd70882..e5e9cd70882 100644
--- a/src/emu/cpu/jaguar/jagdasm.c
+++ b/src/devices/cpu/jaguar/jagdasm.c
diff --git a/src/emu/cpu/jaguar/jaguar.c b/src/devices/cpu/jaguar/jaguar.c
index 976ab4f5983..976ab4f5983 100644
--- a/src/emu/cpu/jaguar/jaguar.c
+++ b/src/devices/cpu/jaguar/jaguar.c
diff --git a/src/emu/cpu/jaguar/jaguar.h b/src/devices/cpu/jaguar/jaguar.h
index 5139158861b..5139158861b 100644
--- a/src/emu/cpu/jaguar/jaguar.h
+++ b/src/devices/cpu/jaguar/jaguar.h
diff --git a/src/emu/cpu/lc8670/lc8670.c b/src/devices/cpu/lc8670/lc8670.c
index 96bcfaa0348..9abb2121a66 100644
--- a/src/emu/cpu/lc8670/lc8670.c
+++ b/src/devices/cpu/lc8670/lc8670.c
@@ -105,9 +105,9 @@ const device_type LC8670 = &device_creator<lc8670_cpu_device>;
#define GET_AC BIT(REG_PSW,6)
#define GET_OV BIT(REG_PSW,2)
#define GET_P BIT(REG_PSW,0)
-#define SET_CY(v) { if (v) REG_PSW |= FLAG_CY; else REG_PSW &= ~FLAG_CY; } while(0)
-#define SET_AC(v) { if (v) REG_PSW |= FLAG_AC; else REG_PSW &= ~FLAG_AC; } while(0)
-#define SET_OV(v) { if (v) REG_PSW |= FLAG_OV; else REG_PSW &= ~FLAG_OV; } while(0)
+#define SET_CY(v) do { if (v) REG_PSW |= FLAG_CY; else REG_PSW &= ~FLAG_CY; } while(0)
+#define SET_AC(v) do { if (v) REG_PSW |= FLAG_AC; else REG_PSW &= ~FLAG_AC; } while(0)
+#define SET_OV(v) do { if (v) REG_PSW |= FLAG_OV; else REG_PSW &= ~FLAG_OV; } while(0)
#define CHECK_P() check_p_flag()
// CPU state
diff --git a/src/emu/cpu/lc8670/lc8670.h b/src/devices/cpu/lc8670/lc8670.h
index e2668c1bacd..e2668c1bacd 100644
--- a/src/emu/cpu/lc8670/lc8670.h
+++ b/src/devices/cpu/lc8670/lc8670.h
diff --git a/src/emu/cpu/lc8670/lc8670dsm.c b/src/devices/cpu/lc8670/lc8670dsm.c
index 45985ea6e5f..45985ea6e5f 100644
--- a/src/emu/cpu/lc8670/lc8670dsm.c
+++ b/src/devices/cpu/lc8670/lc8670dsm.c
diff --git a/src/emu/cpu/lh5801/5801dasm.c b/src/devices/cpu/lh5801/5801dasm.c
index b622bda9de6..b622bda9de6 100644
--- a/src/emu/cpu/lh5801/5801dasm.c
+++ b/src/devices/cpu/lh5801/5801dasm.c
diff --git a/src/emu/cpu/lh5801/5801tbl.inc b/src/devices/cpu/lh5801/5801tbl.inc
index 98a8d7b1d02..98a8d7b1d02 100644
--- a/src/emu/cpu/lh5801/5801tbl.inc
+++ b/src/devices/cpu/lh5801/5801tbl.inc
diff --git a/src/emu/cpu/lh5801/lh5801.c b/src/devices/cpu/lh5801/lh5801.c
index 0287e0d0859..0287e0d0859 100644
--- a/src/emu/cpu/lh5801/lh5801.c
+++ b/src/devices/cpu/lh5801/lh5801.c
diff --git a/src/emu/cpu/lh5801/lh5801.h b/src/devices/cpu/lh5801/lh5801.h
index e5c6aa74690..e5c6aa74690 100644
--- a/src/emu/cpu/lh5801/lh5801.h
+++ b/src/devices/cpu/lh5801/lh5801.h
diff --git a/src/emu/cpu/lr35902/lr35902.c b/src/devices/cpu/lr35902/lr35902.c
index 02cb785e1ff..02cb785e1ff 100644
--- a/src/emu/cpu/lr35902/lr35902.c
+++ b/src/devices/cpu/lr35902/lr35902.c
diff --git a/src/emu/cpu/lr35902/lr35902.h b/src/devices/cpu/lr35902/lr35902.h
index 509f06e77f5..509f06e77f5 100644
--- a/src/emu/cpu/lr35902/lr35902.h
+++ b/src/devices/cpu/lr35902/lr35902.h
diff --git a/src/emu/cpu/lr35902/lr35902d.c b/src/devices/cpu/lr35902/lr35902d.c
index cf6d61bd7d6..cf6d61bd7d6 100644
--- a/src/emu/cpu/lr35902/lr35902d.c
+++ b/src/devices/cpu/lr35902/lr35902d.c
diff --git a/src/emu/cpu/lr35902/opc_cb.inc b/src/devices/cpu/lr35902/opc_cb.inc
index ace58d019e7..ace58d019e7 100644
--- a/src/emu/cpu/lr35902/opc_cb.inc
+++ b/src/devices/cpu/lr35902/opc_cb.inc
diff --git a/src/emu/cpu/lr35902/opc_main.inc b/src/devices/cpu/lr35902/opc_main.inc
index c551bb3d351..c551bb3d351 100644
--- a/src/emu/cpu/lr35902/opc_main.inc
+++ b/src/devices/cpu/lr35902/opc_main.inc
diff --git a/src/emu/cpu/m37710/m37710.c b/src/devices/cpu/m37710/m37710.c
index 26a2accfe76..26a2accfe76 100644
--- a/src/emu/cpu/m37710/m37710.c
+++ b/src/devices/cpu/m37710/m37710.c
diff --git a/src/emu/cpu/m37710/m37710.h b/src/devices/cpu/m37710/m37710.h
index 3bcc57ae68d..3bcc57ae68d 100644
--- a/src/emu/cpu/m37710/m37710.h
+++ b/src/devices/cpu/m37710/m37710.h
diff --git a/src/emu/cpu/m37710/m37710cm.h b/src/devices/cpu/m37710/m37710cm.h
index aa691b2e9aa..aa691b2e9aa 100644
--- a/src/emu/cpu/m37710/m37710cm.h
+++ b/src/devices/cpu/m37710/m37710cm.h
diff --git a/src/emu/cpu/m37710/m37710il.h b/src/devices/cpu/m37710/m37710il.h
index ffc1aed0a7a..ffc1aed0a7a 100644
--- a/src/emu/cpu/m37710/m37710il.h
+++ b/src/devices/cpu/m37710/m37710il.h
diff --git a/src/emu/cpu/m37710/m37710o0.c b/src/devices/cpu/m37710/m37710o0.c
index 6fdd9b2a01f..6fdd9b2a01f 100644
--- a/src/emu/cpu/m37710/m37710o0.c
+++ b/src/devices/cpu/m37710/m37710o0.c
diff --git a/src/emu/cpu/m37710/m37710o1.c b/src/devices/cpu/m37710/m37710o1.c
index d8de494a6ce..d8de494a6ce 100644
--- a/src/emu/cpu/m37710/m37710o1.c
+++ b/src/devices/cpu/m37710/m37710o1.c
diff --git a/src/emu/cpu/m37710/m37710o2.c b/src/devices/cpu/m37710/m37710o2.c
index d92556b3207..d92556b3207 100644
--- a/src/emu/cpu/m37710/m37710o2.c
+++ b/src/devices/cpu/m37710/m37710o2.c
diff --git a/src/emu/cpu/m37710/m37710o3.c b/src/devices/cpu/m37710/m37710o3.c
index 16e2084ec4a..16e2084ec4a 100644
--- a/src/emu/cpu/m37710/m37710o3.c
+++ b/src/devices/cpu/m37710/m37710o3.c
diff --git a/src/emu/cpu/m37710/m37710op.h b/src/devices/cpu/m37710/m37710op.h
index 03e29580323..03e29580323 100644
--- a/src/emu/cpu/m37710/m37710op.h
+++ b/src/devices/cpu/m37710/m37710op.h
diff --git a/src/emu/cpu/m37710/m7700ds.c b/src/devices/cpu/m37710/m7700ds.c
index f6b77932b1e..f6b77932b1e 100644
--- a/src/emu/cpu/m37710/m7700ds.c
+++ b/src/devices/cpu/m37710/m7700ds.c
diff --git a/src/emu/cpu/m37710/m7700ds.h b/src/devices/cpu/m37710/m7700ds.h
index c0af0846b72..c0af0846b72 100644
--- a/src/emu/cpu/m37710/m7700ds.h
+++ b/src/devices/cpu/m37710/m7700ds.h
diff --git a/src/emu/cpu/m6502/ddeco16.lst b/src/devices/cpu/m6502/ddeco16.lst
index b57f2614cf0..b57f2614cf0 100644
--- a/src/emu/cpu/m6502/ddeco16.lst
+++ b/src/devices/cpu/m6502/ddeco16.lst
diff --git a/src/emu/cpu/m6502/deco16.c b/src/devices/cpu/m6502/deco16.c
index a500b287d7a..a500b287d7a 100644
--- a/src/emu/cpu/m6502/deco16.c
+++ b/src/devices/cpu/m6502/deco16.c
diff --git a/src/emu/cpu/m6502/deco16.h b/src/devices/cpu/m6502/deco16.h
index d82087477f7..d82087477f7 100644
--- a/src/emu/cpu/m6502/deco16.h
+++ b/src/devices/cpu/m6502/deco16.h
diff --git a/src/emu/cpu/m6502/dm4510.lst b/src/devices/cpu/m6502/dm4510.lst
index 6de7627ebc7..6de7627ebc7 100644
--- a/src/emu/cpu/m6502/dm4510.lst
+++ b/src/devices/cpu/m6502/dm4510.lst
diff --git a/src/emu/cpu/m6502/dm6502.lst b/src/devices/cpu/m6502/dm6502.lst
index 335cae3d2e7..335cae3d2e7 100644
--- a/src/emu/cpu/m6502/dm6502.lst
+++ b/src/devices/cpu/m6502/dm6502.lst
diff --git a/src/emu/cpu/m6502/dm6509.lst b/src/devices/cpu/m6502/dm6509.lst
index 644aa6c79d6..644aa6c79d6 100644
--- a/src/emu/cpu/m6502/dm6509.lst
+++ b/src/devices/cpu/m6502/dm6509.lst
diff --git a/src/emu/cpu/m6502/dm6510.lst b/src/devices/cpu/m6502/dm6510.lst
index dbc8bd88d57..dbc8bd88d57 100644
--- a/src/emu/cpu/m6502/dm6510.lst
+++ b/src/devices/cpu/m6502/dm6510.lst
diff --git a/src/emu/cpu/m6502/dm65c02.lst b/src/devices/cpu/m6502/dm65c02.lst
index 4b0cd1f2db4..4b0cd1f2db4 100644
--- a/src/emu/cpu/m6502/dm65c02.lst
+++ b/src/devices/cpu/m6502/dm65c02.lst
diff --git a/src/emu/cpu/m6502/dm65ce02.lst b/src/devices/cpu/m6502/dm65ce02.lst
index b2fafe67203..b2fafe67203 100644
--- a/src/emu/cpu/m6502/dm65ce02.lst
+++ b/src/devices/cpu/m6502/dm65ce02.lst
diff --git a/src/emu/cpu/m6502/dm740.lst b/src/devices/cpu/m6502/dm740.lst
index c11f0826cd5..c11f0826cd5 100644
--- a/src/emu/cpu/m6502/dm740.lst
+++ b/src/devices/cpu/m6502/dm740.lst
diff --git a/src/emu/cpu/m6502/dn2a03.lst b/src/devices/cpu/m6502/dn2a03.lst
index 7f0a5d4a9cb..7f0a5d4a9cb 100644
--- a/src/emu/cpu/m6502/dn2a03.lst
+++ b/src/devices/cpu/m6502/dn2a03.lst
diff --git a/src/emu/cpu/m6502/dr65c02.lst b/src/devices/cpu/m6502/dr65c02.lst
index fa4a97bda56..fa4a97bda56 100644
--- a/src/emu/cpu/m6502/dr65c02.lst
+++ b/src/devices/cpu/m6502/dr65c02.lst
diff --git a/src/emu/cpu/m6502/m3745x.c b/src/devices/cpu/m6502/m3745x.c
index 79aa2a95a83..79aa2a95a83 100644
--- a/src/emu/cpu/m6502/m3745x.c
+++ b/src/devices/cpu/m6502/m3745x.c
diff --git a/src/emu/cpu/m6502/m3745x.h b/src/devices/cpu/m6502/m3745x.h
index d7d24c80880..d7d24c80880 100644
--- a/src/emu/cpu/m6502/m3745x.h
+++ b/src/devices/cpu/m6502/m3745x.h
diff --git a/src/emu/cpu/m6502/m4510.c b/src/devices/cpu/m6502/m4510.c
index 2a7eb10ee1e..2a7eb10ee1e 100644
--- a/src/emu/cpu/m6502/m4510.c
+++ b/src/devices/cpu/m6502/m4510.c
diff --git a/src/emu/cpu/m6502/m4510.h b/src/devices/cpu/m6502/m4510.h
index 492572fddb6..492572fddb6 100644
--- a/src/emu/cpu/m6502/m4510.h
+++ b/src/devices/cpu/m6502/m4510.h
diff --git a/src/emu/cpu/m6502/m5074x.c b/src/devices/cpu/m6502/m5074x.c
index dc499b912c0..dc499b912c0 100644
--- a/src/emu/cpu/m6502/m5074x.c
+++ b/src/devices/cpu/m6502/m5074x.c
diff --git a/src/emu/cpu/m6502/m5074x.h b/src/devices/cpu/m6502/m5074x.h
index 10f0aa06df5..10f0aa06df5 100644
--- a/src/emu/cpu/m6502/m5074x.h
+++ b/src/devices/cpu/m6502/m5074x.h
diff --git a/src/emu/cpu/m6502/m6502.c b/src/devices/cpu/m6502/m6502.c
index 01b2b8f0f98..01b2b8f0f98 100644
--- a/src/emu/cpu/m6502/m6502.c
+++ b/src/devices/cpu/m6502/m6502.c
diff --git a/src/emu/cpu/m6502/m6502.h b/src/devices/cpu/m6502/m6502.h
index 33b13f3afb6..33b13f3afb6 100644
--- a/src/emu/cpu/m6502/m6502.h
+++ b/src/devices/cpu/m6502/m6502.h
diff --git a/src/emu/cpu/m6502/m6502.txt b/src/devices/cpu/m6502/m6502.txt
index d92af7ec146..d92af7ec146 100644
--- a/src/emu/cpu/m6502/m6502.txt
+++ b/src/devices/cpu/m6502/m6502.txt
diff --git a/src/emu/cpu/m6502/m6502make.py b/src/devices/cpu/m6502/m6502make.py
index 591d01268ca..4ac62e90ce9 100755
--- a/src/emu/cpu/m6502/m6502make.py
+++ b/src/devices/cpu/m6502/m6502make.py
@@ -1,5 +1,7 @@
#!/usr/bin/python
+from __future__ import print_function
+
USAGE = """
Usage:
%s device_name {opc.lst|-} disp.lst device.inc
@@ -52,7 +54,7 @@ def load_disp(fname):
def emit(f, text):
"""write string to file"""
- print >>f, text,
+ print(text, file=f)
FULL_PROLOG="""\
void %(device)s::%(opcode)s_full()
@@ -252,7 +254,7 @@ def main(argv):
if len(argv) != 5:
- print USAGE % argv[0]
+ print(USAGE % argv[0])
return 1
device_name = argv[1]
diff --git a/src/emu/cpu/m6502/m6504.c b/src/devices/cpu/m6502/m6504.c
index f2ae2c4b6d9..f2ae2c4b6d9 100644
--- a/src/emu/cpu/m6502/m6504.c
+++ b/src/devices/cpu/m6502/m6504.c
diff --git a/src/emu/cpu/m6502/m6504.h b/src/devices/cpu/m6502/m6504.h
index f272b059333..f272b059333 100644
--- a/src/emu/cpu/m6502/m6504.h
+++ b/src/devices/cpu/m6502/m6504.h
diff --git a/src/emu/cpu/m6502/m6509.c b/src/devices/cpu/m6502/m6509.c
index 77af9e8f1f7..77af9e8f1f7 100644
--- a/src/emu/cpu/m6502/m6509.c
+++ b/src/devices/cpu/m6502/m6509.c
diff --git a/src/emu/cpu/m6502/m6509.h b/src/devices/cpu/m6502/m6509.h
index 2bfee01981a..2bfee01981a 100644
--- a/src/emu/cpu/m6502/m6509.h
+++ b/src/devices/cpu/m6502/m6509.h
diff --git a/src/emu/cpu/m6502/m6510.c b/src/devices/cpu/m6502/m6510.c
index 10e57fb27b8..10e57fb27b8 100644
--- a/src/emu/cpu/m6502/m6510.c
+++ b/src/devices/cpu/m6502/m6510.c
diff --git a/src/emu/cpu/m6502/m6510.h b/src/devices/cpu/m6502/m6510.h
index 86aaa60ffaa..86aaa60ffaa 100644
--- a/src/emu/cpu/m6502/m6510.h
+++ b/src/devices/cpu/m6502/m6510.h
diff --git a/src/emu/cpu/m6502/m6510t.c b/src/devices/cpu/m6502/m6510t.c
index 7e8a34c6f20..7e8a34c6f20 100644
--- a/src/emu/cpu/m6502/m6510t.c
+++ b/src/devices/cpu/m6502/m6510t.c
diff --git a/src/emu/cpu/m6502/m6510t.h b/src/devices/cpu/m6502/m6510t.h
index f580ed6aef3..f580ed6aef3 100644
--- a/src/emu/cpu/m6502/m6510t.h
+++ b/src/devices/cpu/m6502/m6510t.h
diff --git a/src/emu/cpu/m6502/m65c02.c b/src/devices/cpu/m6502/m65c02.c
index 4f02de6471c..4f02de6471c 100644
--- a/src/emu/cpu/m6502/m65c02.c
+++ b/src/devices/cpu/m6502/m65c02.c
diff --git a/src/emu/cpu/m6502/m65c02.h b/src/devices/cpu/m6502/m65c02.h
index 5eda5593fee..5eda5593fee 100644
--- a/src/emu/cpu/m6502/m65c02.h
+++ b/src/devices/cpu/m6502/m65c02.h
diff --git a/src/emu/cpu/m6502/m65ce02.c b/src/devices/cpu/m6502/m65ce02.c
index 97ad2c4b535..97ad2c4b535 100644
--- a/src/emu/cpu/m6502/m65ce02.c
+++ b/src/devices/cpu/m6502/m65ce02.c
diff --git a/src/emu/cpu/m6502/m65ce02.h b/src/devices/cpu/m6502/m65ce02.h
index f8e03867d82..f8e03867d82 100644
--- a/src/emu/cpu/m6502/m65ce02.h
+++ b/src/devices/cpu/m6502/m65ce02.h
diff --git a/src/emu/cpu/m6502/m65sc02.c b/src/devices/cpu/m6502/m65sc02.c
index f61bc63cf7f..f61bc63cf7f 100644
--- a/src/emu/cpu/m6502/m65sc02.c
+++ b/src/devices/cpu/m6502/m65sc02.c
diff --git a/src/emu/cpu/m6502/m65sc02.h b/src/devices/cpu/m6502/m65sc02.h
index f754fc3de89..f754fc3de89 100644
--- a/src/emu/cpu/m6502/m65sc02.h
+++ b/src/devices/cpu/m6502/m65sc02.h
diff --git a/src/emu/cpu/m6502/m740.c b/src/devices/cpu/m6502/m740.c
index 5e011ba3561..5e011ba3561 100644
--- a/src/emu/cpu/m6502/m740.c
+++ b/src/devices/cpu/m6502/m740.c
diff --git a/src/emu/cpu/m6502/m740.h b/src/devices/cpu/m6502/m740.h
index 728fea5a074..728fea5a074 100644
--- a/src/emu/cpu/m6502/m740.h
+++ b/src/devices/cpu/m6502/m740.h
diff --git a/src/emu/cpu/m6502/m7501.c b/src/devices/cpu/m6502/m7501.c
index 83bc290a172..83bc290a172 100644
--- a/src/emu/cpu/m6502/m7501.c
+++ b/src/devices/cpu/m6502/m7501.c
diff --git a/src/emu/cpu/m6502/m7501.h b/src/devices/cpu/m6502/m7501.h
index 7ded4caffe2..7ded4caffe2 100644
--- a/src/emu/cpu/m6502/m7501.h
+++ b/src/devices/cpu/m6502/m7501.h
diff --git a/src/emu/cpu/m6502/m8502.c b/src/devices/cpu/m6502/m8502.c
index a967d03d74c..a967d03d74c 100644
--- a/src/emu/cpu/m6502/m8502.c
+++ b/src/devices/cpu/m6502/m8502.c
diff --git a/src/emu/cpu/m6502/m8502.h b/src/devices/cpu/m6502/m8502.h
index 1969ba6ffad..1969ba6ffad 100644
--- a/src/emu/cpu/m6502/m8502.h
+++ b/src/devices/cpu/m6502/m8502.h
diff --git a/src/emu/cpu/m6502/n2a03.c b/src/devices/cpu/m6502/n2a03.c
index b3b2cb31808..b3b2cb31808 100644
--- a/src/emu/cpu/m6502/n2a03.c
+++ b/src/devices/cpu/m6502/n2a03.c
diff --git a/src/emu/cpu/m6502/n2a03.h b/src/devices/cpu/m6502/n2a03.h
index 6d56a42e9b7..6d56a42e9b7 100644
--- a/src/emu/cpu/m6502/n2a03.h
+++ b/src/devices/cpu/m6502/n2a03.h
diff --git a/src/emu/cpu/m6502/odeco16.lst b/src/devices/cpu/m6502/odeco16.lst
index 6cea2fa7282..6cea2fa7282 100644
--- a/src/emu/cpu/m6502/odeco16.lst
+++ b/src/devices/cpu/m6502/odeco16.lst
diff --git a/src/emu/cpu/m6502/om4510.lst b/src/devices/cpu/m6502/om4510.lst
index fbe49491fac..fbe49491fac 100644
--- a/src/emu/cpu/m6502/om4510.lst
+++ b/src/devices/cpu/m6502/om4510.lst
diff --git a/src/emu/cpu/m6502/om6502.lst b/src/devices/cpu/m6502/om6502.lst
index 24c560c02fa..24c560c02fa 100644
--- a/src/emu/cpu/m6502/om6502.lst
+++ b/src/devices/cpu/m6502/om6502.lst
diff --git a/src/emu/cpu/m6502/om6509.lst b/src/devices/cpu/m6502/om6509.lst
index 4595827b1d7..4595827b1d7 100644
--- a/src/emu/cpu/m6502/om6509.lst
+++ b/src/devices/cpu/m6502/om6509.lst
diff --git a/src/emu/cpu/m6502/om6510.lst b/src/devices/cpu/m6502/om6510.lst
index e08a5229111..e08a5229111 100644
--- a/src/emu/cpu/m6502/om6510.lst
+++ b/src/devices/cpu/m6502/om6510.lst
diff --git a/src/emu/cpu/m6502/om65c02.lst b/src/devices/cpu/m6502/om65c02.lst
index d64ddcdc409..d64ddcdc409 100644
--- a/src/emu/cpu/m6502/om65c02.lst
+++ b/src/devices/cpu/m6502/om65c02.lst
diff --git a/src/emu/cpu/m6502/om65ce02.lst b/src/devices/cpu/m6502/om65ce02.lst
index 049097fded8..049097fded8 100644
--- a/src/emu/cpu/m6502/om65ce02.lst
+++ b/src/devices/cpu/m6502/om65ce02.lst
diff --git a/src/emu/cpu/m6502/om740.lst b/src/devices/cpu/m6502/om740.lst
index 9f17dc639bf..9f17dc639bf 100644
--- a/src/emu/cpu/m6502/om740.lst
+++ b/src/devices/cpu/m6502/om740.lst
diff --git a/src/emu/cpu/m6502/on2a03.lst b/src/devices/cpu/m6502/on2a03.lst
index 7d8a72c8d62..7d8a72c8d62 100644
--- a/src/emu/cpu/m6502/on2a03.lst
+++ b/src/devices/cpu/m6502/on2a03.lst
diff --git a/src/emu/cpu/m6502/r65c02.c b/src/devices/cpu/m6502/r65c02.c
index 3101ffd0341..3101ffd0341 100644
--- a/src/emu/cpu/m6502/r65c02.c
+++ b/src/devices/cpu/m6502/r65c02.c
diff --git a/src/emu/cpu/m6502/r65c02.h b/src/devices/cpu/m6502/r65c02.h
index ed3f65f40ad..ed3f65f40ad 100644
--- a/src/emu/cpu/m6502/r65c02.h
+++ b/src/devices/cpu/m6502/r65c02.h
diff --git a/src/emu/cpu/m6800/6800dasm.c b/src/devices/cpu/m6800/6800dasm.c
index 49f908013cd..49f908013cd 100644
--- a/src/emu/cpu/m6800/6800dasm.c
+++ b/src/devices/cpu/m6800/6800dasm.c
diff --git a/src/emu/cpu/m6800/6800ops.inc b/src/devices/cpu/m6800/6800ops.inc
index cf0360c7538..cf0360c7538 100644
--- a/src/emu/cpu/m6800/6800ops.inc
+++ b/src/devices/cpu/m6800/6800ops.inc
diff --git a/src/emu/cpu/m6800/6800tbl.inc b/src/devices/cpu/m6800/6800tbl.inc
index 38376dadd59..38376dadd59 100644
--- a/src/emu/cpu/m6800/6800tbl.inc
+++ b/src/devices/cpu/m6800/6800tbl.inc
diff --git a/src/emu/cpu/m6800/m6800.c b/src/devices/cpu/m6800/m6800.c
index 46a7cc4a99a..46a7cc4a99a 100644
--- a/src/emu/cpu/m6800/m6800.c
+++ b/src/devices/cpu/m6800/m6800.c
diff --git a/src/emu/cpu/m6800/m6800.h b/src/devices/cpu/m6800/m6800.h
index af02be492d8..af02be492d8 100644
--- a/src/emu/cpu/m6800/m6800.h
+++ b/src/devices/cpu/m6800/m6800.h
diff --git a/src/emu/cpu/m68000/m68000.h b/src/devices/cpu/m68000/m68000.h
index 5279ad655ec..5279ad655ec 100644
--- a/src/emu/cpu/m68000/m68000.h
+++ b/src/devices/cpu/m68000/m68000.h
diff --git a/src/emu/cpu/m68000/m68k_in.c b/src/devices/cpu/m68000/m68k_in.c
index 74b136a0012..9bdc9558a83 100644
--- a/src/emu/cpu/m68000/m68k_in.c
+++ b/src/devices/cpu/m68000/m68k_in.c
@@ -91,7 +91,6 @@ M68KMAKE_PROTOTYPE_HEADER
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
M68KMAKE_PROTOTYPE_FOOTER
-
/* Build the opcode handler table */
void m68ki_build_opcode_table(void);
@@ -2490,7 +2489,7 @@ M68KMAKE_OP(bfchg, 32, ., .)
if((width + offset) > 32)
{
- mask_byte = MASK_OUT_ABOVE_8(mask_base);
+ mask_byte = MASK_OUT_ABOVE_8(mask_base) << (8-offset);
data_byte = m68ki_read_8((mc68kcpu), ea+4);
(mc68kcpu)->not_z_flag |= (data_byte & mask_byte);
m68ki_write_8((mc68kcpu), ea+4, data_byte ^ mask_byte);
@@ -2581,7 +2580,7 @@ M68KMAKE_OP(bfclr, 32, ., .)
if((width + offset) > 32)
{
- mask_byte = MASK_OUT_ABOVE_8(mask_base);
+ mask_byte = MASK_OUT_ABOVE_8(mask_base) << (8-offset);
data_byte = m68ki_read_8((mc68kcpu), ea+4);
(mc68kcpu)->not_z_flag |= (data_byte & mask_byte);
m68ki_write_8((mc68kcpu), ea+4, data_byte & ~mask_byte);
@@ -2959,7 +2958,7 @@ M68KMAKE_OP(bfins, 32, ., .)
if((width + offset) > 32)
{
- mask_byte = MASK_OUT_ABOVE_8(mask_base);
+ mask_byte = MASK_OUT_ABOVE_8(mask_base) << (8-offset);
insert_byte = MASK_OUT_ABOVE_8(insert_base);
data_byte = m68ki_read_8((mc68kcpu), ea+4);
(mc68kcpu)->not_z_flag |= (data_byte & mask_byte);
@@ -3022,7 +3021,6 @@ M68KMAKE_OP(bfset, 32, ., .)
UINT32 mask_byte = 0;
UINT32 ea = M68KMAKE_GET_EA_AY_8;
-
if(BIT_B(word2))
offset = MAKE_INT_32(REG_D(mc68kcpu)[offset&7]);
if(BIT_5(word2))
@@ -3038,7 +3036,6 @@ M68KMAKE_OP(bfset, 32, ., .)
}
width = ((width-1) & 31) + 1;
-
mask_base = MASK_OUT_ABOVE_32(0xffffffff << (32 - width));
mask_long = mask_base >> offset;
@@ -3052,7 +3049,7 @@ M68KMAKE_OP(bfset, 32, ., .)
if((width + offset) > 32)
{
- mask_byte = MASK_OUT_ABOVE_8(mask_base);
+ mask_byte = MASK_OUT_ABOVE_8(mask_base) << (8-offset);
data_byte = m68ki_read_8((mc68kcpu), ea+4);
(mc68kcpu)->not_z_flag |= (data_byte & mask_byte);
m68ki_write_8((mc68kcpu), ea+4, data_byte | mask_byte);
@@ -3139,7 +3136,7 @@ M68KMAKE_OP(bftst, 32, ., .)
if((width + offset) > 32)
{
- mask_byte = MASK_OUT_ABOVE_8(mask_base);
+ mask_byte = MASK_OUT_ABOVE_8(mask_base) << (8-offset);
data_byte = m68ki_read_8((mc68kcpu), ea+4);
(mc68kcpu)->not_z_flag |= (data_byte & mask_byte);
}
@@ -8174,7 +8171,7 @@ M68KMAKE_OP(pack, 16, mm, ax7)
ea_src = EA_AY_PD_8(mc68kcpu);
src = ((src << 8) | m68ki_read_8((mc68kcpu), ea_src)) + OPER_I_16(mc68kcpu);
- m68ki_write_8((mc68kcpu), EA_A7_PD_8(mc68kcpu), ((src >> 4) & 0x00f0) | (src & 0x000f));
+ m68ki_write_8((mc68kcpu), EA_A7_PD_8(mc68kcpu), ((src >> 8) & 0x000f) | ((src<<4) & 0x00f0));
return;
}
m68ki_exception_illegal(mc68kcpu);
@@ -8191,7 +8188,7 @@ M68KMAKE_OP(pack, 16, mm, ay7)
ea_src = EA_A7_PD_8(mc68kcpu);
src = ((src << 8) | m68ki_read_8((mc68kcpu), ea_src)) + OPER_I_16(mc68kcpu);
- m68ki_write_8((mc68kcpu), EA_AX_PD_8(mc68kcpu), ((src >> 4) & 0x00f0) | (src & 0x000f));
+ m68ki_write_8((mc68kcpu), EA_AX_PD_8(mc68kcpu), ((src >> 8) & 0x000f) | ((src<<4) & 0x00f0));
return;
}
m68ki_exception_illegal(mc68kcpu);
@@ -8207,7 +8204,7 @@ M68KMAKE_OP(pack, 16, mm, axy7)
ea_src = EA_A7_PD_8(mc68kcpu);
src = ((src << 8) | m68ki_read_8((mc68kcpu), ea_src)) + OPER_I_16(mc68kcpu);
- m68ki_write_8((mc68kcpu), EA_A7_PD_8(mc68kcpu), ((src >> 4) & 0x00f0) | (src & 0x000f));
+ m68ki_write_8((mc68kcpu), EA_A7_PD_8(mc68kcpu), ((src >> 8) & 0x000f) | ((src<<4) & 0x00f0));
return;
}
m68ki_exception_illegal(mc68kcpu);
@@ -8224,7 +8221,7 @@ M68KMAKE_OP(pack, 16, mm, .)
ea_src = EA_AY_PD_8(mc68kcpu);
src = ((src << 8) | m68ki_read_8((mc68kcpu), ea_src)) + OPER_I_16(mc68kcpu);
- m68ki_write_8((mc68kcpu), EA_AX_PD_8(mc68kcpu), ((src >> 4) & 0x00f0) | (src & 0x000f));
+ m68ki_write_8((mc68kcpu), EA_AX_PD_8(mc68kcpu), ((src >> 8) & 0x000f) | ((src<<4) & 0x00f0));
return;
}
m68ki_exception_illegal(mc68kcpu);
@@ -10446,9 +10443,9 @@ M68KMAKE_OP(unpk, 16, mm, ax7)
src = (((src << 4) & 0x0f00) | (src & 0x000f)) + OPER_I_16(mc68kcpu);
ea_dst = EA_A7_PD_8(mc68kcpu);
- m68ki_write_8((mc68kcpu), ea_dst, (src >> 8) & 0xff);
- ea_dst = EA_A7_PD_8(mc68kcpu);
m68ki_write_8((mc68kcpu), ea_dst, src & 0xff);
+ ea_dst = EA_A7_PD_8(mc68kcpu);
+ m68ki_write_8((mc68kcpu), ea_dst, (src >> 8) & 0xff);
return;
}
m68ki_exception_illegal(mc68kcpu);
@@ -10465,9 +10462,9 @@ M68KMAKE_OP(unpk, 16, mm, ay7)
src = (((src << 4) & 0x0f00) | (src & 0x000f)) + OPER_I_16(mc68kcpu);
ea_dst = EA_AX_PD_8(mc68kcpu);
- m68ki_write_8((mc68kcpu), ea_dst, (src >> 8) & 0xff);
- ea_dst = EA_AX_PD_8(mc68kcpu);
m68ki_write_8((mc68kcpu), ea_dst, src & 0xff);
+ ea_dst = EA_AX_PD_8(mc68kcpu);
+ m68ki_write_8((mc68kcpu), ea_dst, (src >> 8) & 0xff);
return;
}
m68ki_exception_illegal(mc68kcpu);
@@ -10483,9 +10480,9 @@ M68KMAKE_OP(unpk, 16, mm, axy7)
src = (((src << 4) & 0x0f00) | (src & 0x000f)) + OPER_I_16(mc68kcpu);
ea_dst = EA_A7_PD_8(mc68kcpu);
- m68ki_write_8((mc68kcpu), ea_dst, (src >> 8) & 0xff);
- ea_dst = EA_A7_PD_8(mc68kcpu);
m68ki_write_8((mc68kcpu), ea_dst, src & 0xff);
+ ea_dst = EA_A7_PD_8(mc68kcpu);
+ m68ki_write_8((mc68kcpu), ea_dst, (src >> 8) & 0xff);
return;
}
m68ki_exception_illegal(mc68kcpu);
@@ -10502,9 +10499,9 @@ M68KMAKE_OP(unpk, 16, mm, .)
src = (((src << 4) & 0x0f00) | (src & 0x000f)) + OPER_I_16(mc68kcpu);
ea_dst = EA_AX_PD_8(mc68kcpu);
- m68ki_write_8((mc68kcpu), ea_dst, (src >> 8) & 0xff);
- ea_dst = EA_AX_PD_8(mc68kcpu);
m68ki_write_8((mc68kcpu), ea_dst, src & 0xff);
+ ea_dst = EA_AX_PD_8(mc68kcpu);
+ m68ki_write_8((mc68kcpu), ea_dst, (src >> 8) & 0xff);
return;
}
m68ki_exception_illegal(mc68kcpu);
diff --git a/src/emu/cpu/m68000/m68kcpu.c b/src/devices/cpu/m68000/m68kcpu.c
index b925594825d..bc5e7bc9b3d 100644
--- a/src/emu/cpu/m68000/m68kcpu.c
+++ b/src/devices/cpu/m68000/m68kcpu.c
@@ -2336,8 +2336,8 @@ const device_type M68K = &device_creator<m68000_base_device>;
m68000_base_device::m68000_base_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: cpu_device(mconfig, M68K, "M68K", tag, owner, clock, "m68k", __FILE__),
- m_program_config("program", ENDIANNESS_BIG, 16, 24),
- m_oprogram_config("decrypted_opcodes", ENDIANNESS_BIG, 16, 24)
+ m_program_config("program", ENDIANNESS_BIG, 16, 24),
+ m_oprogram_config("decrypted_opcodes", ENDIANNESS_BIG, 16, 24)
{
clear_all();
}
@@ -2348,8 +2348,8 @@ 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 clock,
const device_type type, UINT32 prg_data_width, UINT32 prg_address_bits, address_map_constructor internal_map, const char *shortname, const char *source)
: cpu_device(mconfig, type, name, tag, owner, clock, shortname, source),
- 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)
+ 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)
{
clear_all();
}
@@ -2358,8 +2358,8 @@ 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 clock,
const device_type type, UINT32 prg_data_width, UINT32 prg_address_bits, const char *shortname, const char *source)
: cpu_device(mconfig, type, name, tag, owner, clock, shortname, source),
- 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)
+ 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)
{
clear_all();
}
diff --git a/src/emu/cpu/m68000/m68kcpu.h b/src/devices/cpu/m68000/m68kcpu.h
index 2c30bf78a98..2c30bf78a98 100644
--- a/src/emu/cpu/m68000/m68kcpu.h
+++ b/src/devices/cpu/m68000/m68kcpu.h
diff --git a/src/emu/cpu/m68000/m68kdasm.c b/src/devices/cpu/m68000/m68kdasm.c
index e82d5c7111a..e82d5c7111a 100644
--- a/src/emu/cpu/m68000/m68kdasm.c
+++ b/src/devices/cpu/m68000/m68kdasm.c
diff --git a/src/emu/cpu/m68000/m68kfpu.inc b/src/devices/cpu/m68000/m68kfpu.inc
index 217a418a006..32d0179e6c2 100644
--- a/src/emu/cpu/m68000/m68kfpu.inc
+++ b/src/devices/cpu/m68000/m68kfpu.inc
@@ -988,6 +988,12 @@ static void WRITE_EA_32(m68000_base_device *m68k, int ea, UINT32 data)
{
switch (reg)
{
+ case 0: // (xxx).W
+ {
+ UINT32 ea = OPER_I_16(m68k);
+ m68ki_write_32(m68k, ea, data);
+ break;
+ }
case 1: // (xxx).L
{
UINT32 d1 = OPER_I_16(m68k);
diff --git a/src/emu/cpu/m68000/m68kmake.c b/src/devices/cpu/m68000/m68kmake.c
index 6a3642c4b1d..6a3642c4b1d 100644
--- a/src/emu/cpu/m68000/m68kmake.c
+++ b/src/devices/cpu/m68000/m68kmake.c
diff --git a/src/emu/cpu/m68000/m68kmmu.h b/src/devices/cpu/m68000/m68kmmu.h
index 342fc8ea981..342fc8ea981 100644
--- a/src/emu/cpu/m68000/m68kmmu.h
+++ b/src/devices/cpu/m68000/m68kmmu.h
diff --git a/src/emu/cpu/m68000/m68kops.c b/src/devices/cpu/m68000/m68kops.c
index f0962a93ef8..b0eeec4fad3 100644
--- a/src/emu/cpu/m68000/m68kops.c
+++ b/src/devices/cpu/m68000/m68kops.c
@@ -1,5 +1,3 @@
-// license:BSD-3-Clause
-// copyright-holders:Karl Stenerud
#include "emu.h"
#include "m68kcpu.h"
extern void m68040_fpu_op0(m68000_base_device *m68k);
@@ -5346,7 +5344,7 @@ void m68000_base_device_ops::m68k_op_bfchg_32_ai(m68000_base_device* mc68kcpu)
if((width + offset) > 32)
{
- mask_byte = MASK_OUT_ABOVE_8(mask_base);
+ mask_byte = MASK_OUT_ABOVE_8(mask_base) << (8-offset);
data_byte = m68ki_read_8((mc68kcpu), ea+4);
(mc68kcpu)->not_z_flag |= (data_byte & mask_byte);
m68ki_write_8((mc68kcpu), ea+4, data_byte ^ mask_byte);
@@ -5400,7 +5398,7 @@ void m68000_base_device_ops::m68k_op_bfchg_32_di(m68000_base_device* mc68kcpu)
if((width + offset) > 32)
{
- mask_byte = MASK_OUT_ABOVE_8(mask_base);
+ mask_byte = MASK_OUT_ABOVE_8(mask_base) << (8-offset);
data_byte = m68ki_read_8((mc68kcpu), ea+4);
(mc68kcpu)->not_z_flag |= (data_byte & mask_byte);
m68ki_write_8((mc68kcpu), ea+4, data_byte ^ mask_byte);
@@ -5454,7 +5452,7 @@ void m68000_base_device_ops::m68k_op_bfchg_32_ix(m68000_base_device* mc68kcpu)
if((width + offset) > 32)
{
- mask_byte = MASK_OUT_ABOVE_8(mask_base);
+ mask_byte = MASK_OUT_ABOVE_8(mask_base) << (8-offset);
data_byte = m68ki_read_8((mc68kcpu), ea+4);
(mc68kcpu)->not_z_flag |= (data_byte & mask_byte);
m68ki_write_8((mc68kcpu), ea+4, data_byte ^ mask_byte);
@@ -5508,7 +5506,7 @@ void m68000_base_device_ops::m68k_op_bfchg_32_aw(m68000_base_device* mc68kcpu)
if((width + offset) > 32)
{
- mask_byte = MASK_OUT_ABOVE_8(mask_base);
+ mask_byte = MASK_OUT_ABOVE_8(mask_base) << (8-offset);
data_byte = m68ki_read_8((mc68kcpu), ea+4);
(mc68kcpu)->not_z_flag |= (data_byte & mask_byte);
m68ki_write_8((mc68kcpu), ea+4, data_byte ^ mask_byte);
@@ -5562,7 +5560,7 @@ void m68000_base_device_ops::m68k_op_bfchg_32_al(m68000_base_device* mc68kcpu)
if((width + offset) > 32)
{
- mask_byte = MASK_OUT_ABOVE_8(mask_base);
+ mask_byte = MASK_OUT_ABOVE_8(mask_base) << (8-offset);
data_byte = m68ki_read_8((mc68kcpu), ea+4);
(mc68kcpu)->not_z_flag |= (data_byte & mask_byte);
m68ki_write_8((mc68kcpu), ea+4, data_byte ^ mask_byte);
@@ -5653,7 +5651,7 @@ void m68000_base_device_ops::m68k_op_bfclr_32_ai(m68000_base_device* mc68kcpu)
if((width + offset) > 32)
{
- mask_byte = MASK_OUT_ABOVE_8(mask_base);
+ mask_byte = MASK_OUT_ABOVE_8(mask_base) << (8-offset);
data_byte = m68ki_read_8((mc68kcpu), ea+4);
(mc68kcpu)->not_z_flag |= (data_byte & mask_byte);
m68ki_write_8((mc68kcpu), ea+4, data_byte & ~mask_byte);
@@ -5707,7 +5705,7 @@ void m68000_base_device_ops::m68k_op_bfclr_32_di(m68000_base_device* mc68kcpu)
if((width + offset) > 32)
{
- mask_byte = MASK_OUT_ABOVE_8(mask_base);
+ mask_byte = MASK_OUT_ABOVE_8(mask_base) << (8-offset);
data_byte = m68ki_read_8((mc68kcpu), ea+4);
(mc68kcpu)->not_z_flag |= (data_byte & mask_byte);
m68ki_write_8((mc68kcpu), ea+4, data_byte & ~mask_byte);
@@ -5761,7 +5759,7 @@ void m68000_base_device_ops::m68k_op_bfclr_32_ix(m68000_base_device* mc68kcpu)
if((width + offset) > 32)
{
- mask_byte = MASK_OUT_ABOVE_8(mask_base);
+ mask_byte = MASK_OUT_ABOVE_8(mask_base) << (8-offset);
data_byte = m68ki_read_8((mc68kcpu), ea+4);
(mc68kcpu)->not_z_flag |= (data_byte & mask_byte);
m68ki_write_8((mc68kcpu), ea+4, data_byte & ~mask_byte);
@@ -5815,7 +5813,7 @@ void m68000_base_device_ops::m68k_op_bfclr_32_aw(m68000_base_device* mc68kcpu)
if((width + offset) > 32)
{
- mask_byte = MASK_OUT_ABOVE_8(mask_base);
+ mask_byte = MASK_OUT_ABOVE_8(mask_base) << (8-offset);
data_byte = m68ki_read_8((mc68kcpu), ea+4);
(mc68kcpu)->not_z_flag |= (data_byte & mask_byte);
m68ki_write_8((mc68kcpu), ea+4, data_byte & ~mask_byte);
@@ -5869,7 +5867,7 @@ void m68000_base_device_ops::m68k_op_bfclr_32_al(m68000_base_device* mc68kcpu)
if((width + offset) > 32)
{
- mask_byte = MASK_OUT_ABOVE_8(mask_base);
+ mask_byte = MASK_OUT_ABOVE_8(mask_base) << (8-offset);
data_byte = m68ki_read_8((mc68kcpu), ea+4);
(mc68kcpu)->not_z_flag |= (data_byte & mask_byte);
m68ki_write_8((mc68kcpu), ea+4, data_byte & ~mask_byte);
@@ -7177,7 +7175,7 @@ void m68000_base_device_ops::m68k_op_bfins_32_ai(m68000_base_device* mc68kcpu)
if((width + offset) > 32)
{
- mask_byte = MASK_OUT_ABOVE_8(mask_base);
+ mask_byte = MASK_OUT_ABOVE_8(mask_base) << (8-offset);
insert_byte = MASK_OUT_ABOVE_8(insert_base);
data_byte = m68ki_read_8((mc68kcpu), ea+4);
(mc68kcpu)->not_z_flag |= (data_byte & mask_byte);
@@ -7253,7 +7251,7 @@ void m68000_base_device_ops::m68k_op_bfins_32_di(m68000_base_device* mc68kcpu)
if((width + offset) > 32)
{
- mask_byte = MASK_OUT_ABOVE_8(mask_base);
+ mask_byte = MASK_OUT_ABOVE_8(mask_base) << (8-offset);
insert_byte = MASK_OUT_ABOVE_8(insert_base);
data_byte = m68ki_read_8((mc68kcpu), ea+4);
(mc68kcpu)->not_z_flag |= (data_byte & mask_byte);
@@ -7329,7 +7327,7 @@ void m68000_base_device_ops::m68k_op_bfins_32_ix(m68000_base_device* mc68kcpu)
if((width + offset) > 32)
{
- mask_byte = MASK_OUT_ABOVE_8(mask_base);
+ mask_byte = MASK_OUT_ABOVE_8(mask_base) << (8-offset);
insert_byte = MASK_OUT_ABOVE_8(insert_base);
data_byte = m68ki_read_8((mc68kcpu), ea+4);
(mc68kcpu)->not_z_flag |= (data_byte & mask_byte);
@@ -7405,7 +7403,7 @@ void m68000_base_device_ops::m68k_op_bfins_32_aw(m68000_base_device* mc68kcpu)
if((width + offset) > 32)
{
- mask_byte = MASK_OUT_ABOVE_8(mask_base);
+ mask_byte = MASK_OUT_ABOVE_8(mask_base) << (8-offset);
insert_byte = MASK_OUT_ABOVE_8(insert_base);
data_byte = m68ki_read_8((mc68kcpu), ea+4);
(mc68kcpu)->not_z_flag |= (data_byte & mask_byte);
@@ -7481,7 +7479,7 @@ void m68000_base_device_ops::m68k_op_bfins_32_al(m68000_base_device* mc68kcpu)
if((width + offset) > 32)
{
- mask_byte = MASK_OUT_ABOVE_8(mask_base);
+ mask_byte = MASK_OUT_ABOVE_8(mask_base) << (8-offset);
insert_byte = MASK_OUT_ABOVE_8(insert_base);
data_byte = m68ki_read_8((mc68kcpu), ea+4);
(mc68kcpu)->not_z_flag |= (data_byte & mask_byte);
@@ -7544,7 +7542,6 @@ void m68000_base_device_ops::m68k_op_bfset_32_ai(m68000_base_device* mc68kcpu)
UINT32 mask_byte = 0;
UINT32 ea = EA_AY_AI_8(mc68kcpu);
-
if(BIT_B(word2))
offset = MAKE_INT_32(REG_D(mc68kcpu)[offset&7]);
if(BIT_5(word2))
@@ -7560,7 +7557,6 @@ void m68000_base_device_ops::m68k_op_bfset_32_ai(m68000_base_device* mc68kcpu)
}
width = ((width-1) & 31) + 1;
-
mask_base = MASK_OUT_ABOVE_32(0xffffffff << (32 - width));
mask_long = mask_base >> offset;
@@ -7574,7 +7570,7 @@ void m68000_base_device_ops::m68k_op_bfset_32_ai(m68000_base_device* mc68kcpu)
if((width + offset) > 32)
{
- mask_byte = MASK_OUT_ABOVE_8(mask_base);
+ mask_byte = MASK_OUT_ABOVE_8(mask_base) << (8-offset);
data_byte = m68ki_read_8((mc68kcpu), ea+4);
(mc68kcpu)->not_z_flag |= (data_byte & mask_byte);
m68ki_write_8((mc68kcpu), ea+4, data_byte | mask_byte);
@@ -7599,7 +7595,6 @@ void m68000_base_device_ops::m68k_op_bfset_32_di(m68000_base_device* mc68kcpu)
UINT32 mask_byte = 0;
UINT32 ea = EA_AY_DI_8(mc68kcpu);
-
if(BIT_B(word2))
offset = MAKE_INT_32(REG_D(mc68kcpu)[offset&7]);
if(BIT_5(word2))
@@ -7615,7 +7610,6 @@ void m68000_base_device_ops::m68k_op_bfset_32_di(m68000_base_device* mc68kcpu)
}
width = ((width-1) & 31) + 1;
-
mask_base = MASK_OUT_ABOVE_32(0xffffffff << (32 - width));
mask_long = mask_base >> offset;
@@ -7629,7 +7623,7 @@ void m68000_base_device_ops::m68k_op_bfset_32_di(m68000_base_device* mc68kcpu)
if((width + offset) > 32)
{
- mask_byte = MASK_OUT_ABOVE_8(mask_base);
+ mask_byte = MASK_OUT_ABOVE_8(mask_base) << (8-offset);
data_byte = m68ki_read_8((mc68kcpu), ea+4);
(mc68kcpu)->not_z_flag |= (data_byte & mask_byte);
m68ki_write_8((mc68kcpu), ea+4, data_byte | mask_byte);
@@ -7654,7 +7648,6 @@ void m68000_base_device_ops::m68k_op_bfset_32_ix(m68000_base_device* mc68kcpu)
UINT32 mask_byte = 0;
UINT32 ea = EA_AY_IX_8(mc68kcpu);
-
if(BIT_B(word2))
offset = MAKE_INT_32(REG_D(mc68kcpu)[offset&7]);
if(BIT_5(word2))
@@ -7670,7 +7663,6 @@ void m68000_base_device_ops::m68k_op_bfset_32_ix(m68000_base_device* mc68kcpu)
}
width = ((width-1) & 31) + 1;
-
mask_base = MASK_OUT_ABOVE_32(0xffffffff << (32 - width));
mask_long = mask_base >> offset;
@@ -7684,7 +7676,7 @@ void m68000_base_device_ops::m68k_op_bfset_32_ix(m68000_base_device* mc68kcpu)
if((width + offset) > 32)
{
- mask_byte = MASK_OUT_ABOVE_8(mask_base);
+ mask_byte = MASK_OUT_ABOVE_8(mask_base) << (8-offset);
data_byte = m68ki_read_8((mc68kcpu), ea+4);
(mc68kcpu)->not_z_flag |= (data_byte & mask_byte);
m68ki_write_8((mc68kcpu), ea+4, data_byte | mask_byte);
@@ -7709,7 +7701,6 @@ void m68000_base_device_ops::m68k_op_bfset_32_aw(m68000_base_device* mc68kcpu)
UINT32 mask_byte = 0;
UINT32 ea = EA_AW_8(mc68kcpu);
-
if(BIT_B(word2))
offset = MAKE_INT_32(REG_D(mc68kcpu)[offset&7]);
if(BIT_5(word2))
@@ -7725,7 +7716,6 @@ void m68000_base_device_ops::m68k_op_bfset_32_aw(m68000_base_device* mc68kcpu)
}
width = ((width-1) & 31) + 1;
-
mask_base = MASK_OUT_ABOVE_32(0xffffffff << (32 - width));
mask_long = mask_base >> offset;
@@ -7739,7 +7729,7 @@ void m68000_base_device_ops::m68k_op_bfset_32_aw(m68000_base_device* mc68kcpu)
if((width + offset) > 32)
{
- mask_byte = MASK_OUT_ABOVE_8(mask_base);
+ mask_byte = MASK_OUT_ABOVE_8(mask_base) << (8-offset);
data_byte = m68ki_read_8((mc68kcpu), ea+4);
(mc68kcpu)->not_z_flag |= (data_byte & mask_byte);
m68ki_write_8((mc68kcpu), ea+4, data_byte | mask_byte);
@@ -7764,7 +7754,6 @@ void m68000_base_device_ops::m68k_op_bfset_32_al(m68000_base_device* mc68kcpu)
UINT32 mask_byte = 0;
UINT32 ea = EA_AL_8(mc68kcpu);
-
if(BIT_B(word2))
offset = MAKE_INT_32(REG_D(mc68kcpu)[offset&7]);
if(BIT_5(word2))
@@ -7780,7 +7769,6 @@ void m68000_base_device_ops::m68k_op_bfset_32_al(m68000_base_device* mc68kcpu)
}
width = ((width-1) & 31) + 1;
-
mask_base = MASK_OUT_ABOVE_32(0xffffffff << (32 - width));
mask_long = mask_base >> offset;
@@ -7794,7 +7782,7 @@ void m68000_base_device_ops::m68k_op_bfset_32_al(m68000_base_device* mc68kcpu)
if((width + offset) > 32)
{
- mask_byte = MASK_OUT_ABOVE_8(mask_base);
+ mask_byte = MASK_OUT_ABOVE_8(mask_base) << (8-offset);
data_byte = m68ki_read_8((mc68kcpu), ea+4);
(mc68kcpu)->not_z_flag |= (data_byte & mask_byte);
m68ki_write_8((mc68kcpu), ea+4, data_byte | mask_byte);
@@ -7881,7 +7869,7 @@ void m68000_base_device_ops::m68k_op_bftst_32_ai(m68000_base_device* mc68kcpu)
if((width + offset) > 32)
{
- mask_byte = MASK_OUT_ABOVE_8(mask_base);
+ mask_byte = MASK_OUT_ABOVE_8(mask_base) << (8-offset);
data_byte = m68ki_read_8((mc68kcpu), ea+4);
(mc68kcpu)->not_z_flag |= (data_byte & mask_byte);
}
@@ -7932,7 +7920,7 @@ void m68000_base_device_ops::m68k_op_bftst_32_di(m68000_base_device* mc68kcpu)
if((width + offset) > 32)
{
- mask_byte = MASK_OUT_ABOVE_8(mask_base);
+ mask_byte = MASK_OUT_ABOVE_8(mask_base) << (8-offset);
data_byte = m68ki_read_8((mc68kcpu), ea+4);
(mc68kcpu)->not_z_flag |= (data_byte & mask_byte);
}
@@ -7983,7 +7971,7 @@ void m68000_base_device_ops::m68k_op_bftst_32_ix(m68000_base_device* mc68kcpu)
if((width + offset) > 32)
{
- mask_byte = MASK_OUT_ABOVE_8(mask_base);
+ mask_byte = MASK_OUT_ABOVE_8(mask_base) << (8-offset);
data_byte = m68ki_read_8((mc68kcpu), ea+4);
(mc68kcpu)->not_z_flag |= (data_byte & mask_byte);
}
@@ -8034,7 +8022,7 @@ void m68000_base_device_ops::m68k_op_bftst_32_aw(m68000_base_device* mc68kcpu)
if((width + offset) > 32)
{
- mask_byte = MASK_OUT_ABOVE_8(mask_base);
+ mask_byte = MASK_OUT_ABOVE_8(mask_base) << (8-offset);
data_byte = m68ki_read_8((mc68kcpu), ea+4);
(mc68kcpu)->not_z_flag |= (data_byte & mask_byte);
}
@@ -8085,7 +8073,7 @@ void m68000_base_device_ops::m68k_op_bftst_32_al(m68000_base_device* mc68kcpu)
if((width + offset) > 32)
{
- mask_byte = MASK_OUT_ABOVE_8(mask_base);
+ mask_byte = MASK_OUT_ABOVE_8(mask_base) << (8-offset);
data_byte = m68ki_read_8((mc68kcpu), ea+4);
(mc68kcpu)->not_z_flag |= (data_byte & mask_byte);
}
@@ -8136,7 +8124,7 @@ void m68000_base_device_ops::m68k_op_bftst_32_pcdi(m68000_base_device* mc68kcpu)
if((width + offset) > 32)
{
- mask_byte = MASK_OUT_ABOVE_8(mask_base);
+ mask_byte = MASK_OUT_ABOVE_8(mask_base) << (8-offset);
data_byte = m68ki_read_8((mc68kcpu), ea+4);
(mc68kcpu)->not_z_flag |= (data_byte & mask_byte);
}
@@ -8187,7 +8175,7 @@ void m68000_base_device_ops::m68k_op_bftst_32_pcix(m68000_base_device* mc68kcpu)
if((width + offset) > 32)
{
- mask_byte = MASK_OUT_ABOVE_8(mask_base);
+ mask_byte = MASK_OUT_ABOVE_8(mask_base) << (8-offset);
data_byte = m68ki_read_8((mc68kcpu), ea+4);
(mc68kcpu)->not_z_flag |= (data_byte & mask_byte);
}
@@ -26403,7 +26391,7 @@ void m68000_base_device_ops::m68k_op_pack_16_mm_ax7(m68000_base_device* mc68kcpu
ea_src = EA_AY_PD_8(mc68kcpu);
src = ((src << 8) | m68ki_read_8((mc68kcpu), ea_src)) + OPER_I_16(mc68kcpu);
- m68ki_write_8((mc68kcpu), EA_A7_PD_8(mc68kcpu), ((src >> 4) & 0x00f0) | (src & 0x000f));
+ m68ki_write_8((mc68kcpu), EA_A7_PD_8(mc68kcpu), ((src >> 8) & 0x000f) | ((src<<4) & 0x00f0));
return;
}
m68ki_exception_illegal(mc68kcpu);
@@ -26420,7 +26408,7 @@ void m68000_base_device_ops::m68k_op_pack_16_mm_ay7(m68000_base_device* mc68kcpu
ea_src = EA_A7_PD_8(mc68kcpu);
src = ((src << 8) | m68ki_read_8((mc68kcpu), ea_src)) + OPER_I_16(mc68kcpu);
- m68ki_write_8((mc68kcpu), EA_AX_PD_8(mc68kcpu), ((src >> 4) & 0x00f0) | (src & 0x000f));
+ m68ki_write_8((mc68kcpu), EA_AX_PD_8(mc68kcpu), ((src >> 8) & 0x000f) | ((src<<4) & 0x00f0));
return;
}
m68ki_exception_illegal(mc68kcpu);
@@ -26436,7 +26424,7 @@ void m68000_base_device_ops::m68k_op_pack_16_mm_axy7(m68000_base_device* mc68kcp
ea_src = EA_A7_PD_8(mc68kcpu);
src = ((src << 8) | m68ki_read_8((mc68kcpu), ea_src)) + OPER_I_16(mc68kcpu);
- m68ki_write_8((mc68kcpu), EA_A7_PD_8(mc68kcpu), ((src >> 4) & 0x00f0) | (src & 0x000f));
+ m68ki_write_8((mc68kcpu), EA_A7_PD_8(mc68kcpu), ((src >> 8) & 0x000f) | ((src<<4) & 0x00f0));
return;
}
m68ki_exception_illegal(mc68kcpu);
@@ -26453,7 +26441,7 @@ void m68000_base_device_ops::m68k_op_pack_16_mm(m68000_base_device* mc68kcpu)
ea_src = EA_AY_PD_8(mc68kcpu);
src = ((src << 8) | m68ki_read_8((mc68kcpu), ea_src)) + OPER_I_16(mc68kcpu);
- m68ki_write_8((mc68kcpu), EA_AX_PD_8(mc68kcpu), ((src >> 4) & 0x00f0) | (src & 0x000f));
+ m68ki_write_8((mc68kcpu), EA_AX_PD_8(mc68kcpu), ((src >> 8) & 0x000f) | ((src<<4) & 0x00f0));
return;
}
m68ki_exception_illegal(mc68kcpu);
@@ -32668,9 +32656,9 @@ void m68000_base_device_ops::m68k_op_unpk_16_mm_ax7(m68000_base_device* mc68kcpu
src = (((src << 4) & 0x0f00) | (src & 0x000f)) + OPER_I_16(mc68kcpu);
ea_dst = EA_A7_PD_8(mc68kcpu);
- m68ki_write_8((mc68kcpu), ea_dst, (src >> 8) & 0xff);
- ea_dst = EA_A7_PD_8(mc68kcpu);
m68ki_write_8((mc68kcpu), ea_dst, src & 0xff);
+ ea_dst = EA_A7_PD_8(mc68kcpu);
+ m68ki_write_8((mc68kcpu), ea_dst, (src >> 8) & 0xff);
return;
}
m68ki_exception_illegal(mc68kcpu);
@@ -32687,9 +32675,9 @@ void m68000_base_device_ops::m68k_op_unpk_16_mm_ay7(m68000_base_device* mc68kcpu
src = (((src << 4) & 0x0f00) | (src & 0x000f)) + OPER_I_16(mc68kcpu);
ea_dst = EA_AX_PD_8(mc68kcpu);
- m68ki_write_8((mc68kcpu), ea_dst, (src >> 8) & 0xff);
- ea_dst = EA_AX_PD_8(mc68kcpu);
m68ki_write_8((mc68kcpu), ea_dst, src & 0xff);
+ ea_dst = EA_AX_PD_8(mc68kcpu);
+ m68ki_write_8((mc68kcpu), ea_dst, (src >> 8) & 0xff);
return;
}
m68ki_exception_illegal(mc68kcpu);
@@ -32705,9 +32693,9 @@ void m68000_base_device_ops::m68k_op_unpk_16_mm_axy7(m68000_base_device* mc68kcp
src = (((src << 4) & 0x0f00) | (src & 0x000f)) + OPER_I_16(mc68kcpu);
ea_dst = EA_A7_PD_8(mc68kcpu);
- m68ki_write_8((mc68kcpu), ea_dst, (src >> 8) & 0xff);
- ea_dst = EA_A7_PD_8(mc68kcpu);
m68ki_write_8((mc68kcpu), ea_dst, src & 0xff);
+ ea_dst = EA_A7_PD_8(mc68kcpu);
+ m68ki_write_8((mc68kcpu), ea_dst, (src >> 8) & 0xff);
return;
}
m68ki_exception_illegal(mc68kcpu);
@@ -32724,9 +32712,9 @@ void m68000_base_device_ops::m68k_op_unpk_16_mm(m68000_base_device* mc68kcpu)
src = (((src << 4) & 0x0f00) | (src & 0x000f)) + OPER_I_16(mc68kcpu);
ea_dst = EA_AX_PD_8(mc68kcpu);
- m68ki_write_8((mc68kcpu), ea_dst, (src >> 8) & 0xff);
- ea_dst = EA_AX_PD_8(mc68kcpu);
m68ki_write_8((mc68kcpu), ea_dst, src & 0xff);
+ ea_dst = EA_AX_PD_8(mc68kcpu);
+ m68ki_write_8((mc68kcpu), ea_dst, (src >> 8) & 0xff);
return;
}
m68ki_exception_illegal(mc68kcpu);
diff --git a/src/emu/cpu/m68000/m68kops.h b/src/devices/cpu/m68000/m68kops.h
index 3f936f646f2..3f936f646f2 100644
--- a/src/emu/cpu/m68000/m68kops.h
+++ b/src/devices/cpu/m68000/m68kops.h
diff --git a/src/emu/cpu/m68000/makefile b/src/devices/cpu/m68000/makefile
index 12b29fa267a..12b29fa267a 100644
--- a/src/emu/cpu/m68000/makefile
+++ b/src/devices/cpu/m68000/makefile
diff --git a/src/emu/cpu/m6805/6805dasm.c b/src/devices/cpu/m6805/6805dasm.c
index 9471d976924..9471d976924 100644
--- a/src/emu/cpu/m6805/6805dasm.c
+++ b/src/devices/cpu/m6805/6805dasm.c
diff --git a/src/emu/cpu/m6805/6805ops.inc b/src/devices/cpu/m6805/6805ops.inc
index 713be5e0d7b..713be5e0d7b 100644
--- a/src/emu/cpu/m6805/6805ops.inc
+++ b/src/devices/cpu/m6805/6805ops.inc
diff --git a/src/emu/cpu/m6805/m6805.c b/src/devices/cpu/m6805/m6805.c
index b7fc47c8dfc..b7fc47c8dfc 100644
--- a/src/emu/cpu/m6805/m6805.c
+++ b/src/devices/cpu/m6805/m6805.c
diff --git a/src/emu/cpu/m6805/m6805.h b/src/devices/cpu/m6805/m6805.h
index 26bccefbd15..26bccefbd15 100644
--- a/src/emu/cpu/m6805/m6805.h
+++ b/src/devices/cpu/m6805/m6805.h
diff --git a/src/emu/cpu/m6809/6309dasm.c b/src/devices/cpu/m6809/6309dasm.c
index d39f03796e2..d39f03796e2 100644
--- a/src/emu/cpu/m6809/6309dasm.c
+++ b/src/devices/cpu/m6809/6309dasm.c
diff --git a/src/emu/cpu/m6809/6809dasm.c b/src/devices/cpu/m6809/6809dasm.c
index 192dda3b484..192dda3b484 100644
--- a/src/emu/cpu/m6809/6809dasm.c
+++ b/src/devices/cpu/m6809/6809dasm.c
diff --git a/src/emu/cpu/m6809/base6x09.ops b/src/devices/cpu/m6809/base6x09.ops
index 334521eb385..334521eb385 100644
--- a/src/emu/cpu/m6809/base6x09.ops
+++ b/src/devices/cpu/m6809/base6x09.ops
diff --git a/src/emu/cpu/m6809/hd6309.c b/src/devices/cpu/m6809/hd6309.c
index 5b270d26c90..5b270d26c90 100644
--- a/src/emu/cpu/m6809/hd6309.c
+++ b/src/devices/cpu/m6809/hd6309.c
diff --git a/src/emu/cpu/m6809/hd6309.h b/src/devices/cpu/m6809/hd6309.h
index 15da7a6cc8d..15da7a6cc8d 100644
--- a/src/emu/cpu/m6809/hd6309.h
+++ b/src/devices/cpu/m6809/hd6309.h
diff --git a/src/emu/cpu/m6809/hd6309.ops b/src/devices/cpu/m6809/hd6309.ops
index 6da3a904d2b..6da3a904d2b 100644
--- a/src/emu/cpu/m6809/hd6309.ops
+++ b/src/devices/cpu/m6809/hd6309.ops
diff --git a/src/emu/cpu/m6809/knmidasm.c b/src/devices/cpu/m6809/knmidasm.c
index 5c325e81718..5c325e81718 100644
--- a/src/emu/cpu/m6809/knmidasm.c
+++ b/src/devices/cpu/m6809/knmidasm.c
diff --git a/src/emu/cpu/m6809/konami.c b/src/devices/cpu/m6809/konami.c
index 8dc2bf3ab78..8dc2bf3ab78 100644
--- a/src/emu/cpu/m6809/konami.c
+++ b/src/devices/cpu/m6809/konami.c
diff --git a/src/emu/cpu/m6809/konami.h b/src/devices/cpu/m6809/konami.h
index dfc5c741497..dfc5c741497 100644
--- a/src/emu/cpu/m6809/konami.h
+++ b/src/devices/cpu/m6809/konami.h
diff --git a/src/emu/cpu/m6809/konami.ops b/src/devices/cpu/m6809/konami.ops
index e2246f85b71..e2246f85b71 100644
--- a/src/emu/cpu/m6809/konami.ops
+++ b/src/devices/cpu/m6809/konami.ops
diff --git a/src/emu/cpu/m6809/m6809.c b/src/devices/cpu/m6809/m6809.c
index d69b0417453..d69b0417453 100644
--- a/src/emu/cpu/m6809/m6809.c
+++ b/src/devices/cpu/m6809/m6809.c
diff --git a/src/emu/cpu/m6809/m6809.h b/src/devices/cpu/m6809/m6809.h
index 595585cd098..595585cd098 100644
--- a/src/emu/cpu/m6809/m6809.h
+++ b/src/devices/cpu/m6809/m6809.h
diff --git a/src/emu/cpu/m6809/m6809.ops b/src/devices/cpu/m6809/m6809.ops
index 96b9f6c11a7..96b9f6c11a7 100644
--- a/src/emu/cpu/m6809/m6809.ops
+++ b/src/devices/cpu/m6809/m6809.ops
diff --git a/src/emu/cpu/m6809/m6809inl.h b/src/devices/cpu/m6809/m6809inl.h
index 8fd1cfe330d..8fd1cfe330d 100644
--- a/src/emu/cpu/m6809/m6809inl.h
+++ b/src/devices/cpu/m6809/m6809inl.h
diff --git a/src/emu/cpu/m6809/m6809make.py b/src/devices/cpu/m6809/m6809make.py
index 28e018f8b2d..28e018f8b2d 100644
--- a/src/emu/cpu/m6809/m6809make.py
+++ b/src/devices/cpu/m6809/m6809make.py
diff --git a/src/emu/cpu/mb86233/mb86233.c b/src/devices/cpu/mb86233/mb86233.c
index 0ad34296064..0ad34296064 100644
--- a/src/emu/cpu/mb86233/mb86233.c
+++ b/src/devices/cpu/mb86233/mb86233.c
diff --git a/src/emu/cpu/mb86233/mb86233.h b/src/devices/cpu/mb86233/mb86233.h
index a52f419e66d..a52f419e66d 100644
--- a/src/emu/cpu/mb86233/mb86233.h
+++ b/src/devices/cpu/mb86233/mb86233.h
diff --git a/src/emu/cpu/mb86233/mb86233d.c b/src/devices/cpu/mb86233/mb86233d.c
index 6e27c3b4d06..6e27c3b4d06 100644
--- a/src/emu/cpu/mb86233/mb86233d.c
+++ b/src/devices/cpu/mb86233/mb86233d.c
diff --git a/src/emu/cpu/mb86235/mb86235.c b/src/devices/cpu/mb86235/mb86235.c
index c68a66e4e7b..c68a66e4e7b 100644
--- a/src/emu/cpu/mb86235/mb86235.c
+++ b/src/devices/cpu/mb86235/mb86235.c
diff --git a/src/emu/cpu/mb86235/mb86235.h b/src/devices/cpu/mb86235/mb86235.h
index f7fc4e51bf1..f7fc4e51bf1 100644
--- a/src/emu/cpu/mb86235/mb86235.h
+++ b/src/devices/cpu/mb86235/mb86235.h
diff --git a/src/emu/cpu/mb86235/mb86235d.c b/src/devices/cpu/mb86235/mb86235d.c
index e77da1a0cad..e77da1a0cad 100644
--- a/src/emu/cpu/mb86235/mb86235d.c
+++ b/src/devices/cpu/mb86235/mb86235d.c
diff --git a/src/emu/cpu/mb88xx/mb88dasm.c b/src/devices/cpu/mb88xx/mb88dasm.c
index 49bf547ccd4..49bf547ccd4 100644
--- a/src/emu/cpu/mb88xx/mb88dasm.c
+++ b/src/devices/cpu/mb88xx/mb88dasm.c
diff --git a/src/emu/cpu/mb88xx/mb88xx.c b/src/devices/cpu/mb88xx/mb88xx.c
index 0508bfad1d4..0508bfad1d4 100644
--- a/src/emu/cpu/mb88xx/mb88xx.c
+++ b/src/devices/cpu/mb88xx/mb88xx.c
diff --git a/src/emu/cpu/mb88xx/mb88xx.h b/src/devices/cpu/mb88xx/mb88xx.h
index 3603d9dfc91..3603d9dfc91 100644
--- a/src/emu/cpu/mb88xx/mb88xx.h
+++ b/src/devices/cpu/mb88xx/mb88xx.h
diff --git a/src/emu/cpu/mc68hc11/hc11dasm.c b/src/devices/cpu/mc68hc11/hc11dasm.c
index eed3df13c5e..eed3df13c5e 100644
--- a/src/emu/cpu/mc68hc11/hc11dasm.c
+++ b/src/devices/cpu/mc68hc11/hc11dasm.c
diff --git a/src/emu/cpu/mc68hc11/hc11ops.h b/src/devices/cpu/mc68hc11/hc11ops.h
index 2eafc2850a2..2eafc2850a2 100644
--- a/src/emu/cpu/mc68hc11/hc11ops.h
+++ b/src/devices/cpu/mc68hc11/hc11ops.h
diff --git a/src/emu/cpu/mc68hc11/hc11ops.inc b/src/devices/cpu/mc68hc11/hc11ops.inc
index cb71a839c2f..cb71a839c2f 100644
--- a/src/emu/cpu/mc68hc11/hc11ops.inc
+++ b/src/devices/cpu/mc68hc11/hc11ops.inc
diff --git a/src/emu/cpu/mc68hc11/mc68hc11.c b/src/devices/cpu/mc68hc11/mc68hc11.c
index f05d9126334..f05d9126334 100644
--- a/src/emu/cpu/mc68hc11/mc68hc11.c
+++ b/src/devices/cpu/mc68hc11/mc68hc11.c
diff --git a/src/emu/cpu/mc68hc11/mc68hc11.h b/src/devices/cpu/mc68hc11/mc68hc11.h
index 6098cebdfe4..6098cebdfe4 100644
--- a/src/emu/cpu/mc68hc11/mc68hc11.h
+++ b/src/devices/cpu/mc68hc11/mc68hc11.h
diff --git a/src/emu/cpu/mcs48/mcs48.c b/src/devices/cpu/mcs48/mcs48.c
index a24cf72f0d6..a24cf72f0d6 100644
--- a/src/emu/cpu/mcs48/mcs48.c
+++ b/src/devices/cpu/mcs48/mcs48.c
diff --git a/src/emu/cpu/mcs48/mcs48.h b/src/devices/cpu/mcs48/mcs48.h
index a8184bcbd34..a8184bcbd34 100644
--- a/src/emu/cpu/mcs48/mcs48.h
+++ b/src/devices/cpu/mcs48/mcs48.h
diff --git a/src/emu/cpu/mcs48/mcs48dsm.c b/src/devices/cpu/mcs48/mcs48dsm.c
index 9e2a080430c..9e2a080430c 100644
--- a/src/emu/cpu/mcs48/mcs48dsm.c
+++ b/src/devices/cpu/mcs48/mcs48dsm.c
diff --git a/src/emu/cpu/mcs51/mcs51.c b/src/devices/cpu/mcs51/mcs51.c
index 3b791f2b78c..3b791f2b78c 100644
--- a/src/emu/cpu/mcs51/mcs51.c
+++ b/src/devices/cpu/mcs51/mcs51.c
diff --git a/src/emu/cpu/mcs51/mcs51.h b/src/devices/cpu/mcs51/mcs51.h
index e8effbbd950..e8effbbd950 100644
--- a/src/emu/cpu/mcs51/mcs51.h
+++ b/src/devices/cpu/mcs51/mcs51.h
diff --git a/src/emu/cpu/mcs51/mcs51dasm.c b/src/devices/cpu/mcs51/mcs51dasm.c
index 9c0758c4e35..9c0758c4e35 100644
--- a/src/emu/cpu/mcs51/mcs51dasm.c
+++ b/src/devices/cpu/mcs51/mcs51dasm.c
diff --git a/src/emu/cpu/mcs51/mcs51ops.inc b/src/devices/cpu/mcs51/mcs51ops.inc
index e60cc3505eb..e60cc3505eb 100644
--- a/src/emu/cpu/mcs51/mcs51ops.inc
+++ b/src/devices/cpu/mcs51/mcs51ops.inc
diff --git a/src/emu/cpu/mcs96/i8x9x.c b/src/devices/cpu/mcs96/i8x9x.c
index 1170aa4fa1a..1170aa4fa1a 100644
--- a/src/emu/cpu/mcs96/i8x9x.c
+++ b/src/devices/cpu/mcs96/i8x9x.c
diff --git a/src/emu/cpu/mcs96/i8x9x.h b/src/devices/cpu/mcs96/i8x9x.h
index 3f700fd6e9d..3f700fd6e9d 100644
--- a/src/emu/cpu/mcs96/i8x9x.h
+++ b/src/devices/cpu/mcs96/i8x9x.h
diff --git a/src/emu/cpu/mcs96/i8xc196.c b/src/devices/cpu/mcs96/i8xc196.c
index 19553280de2..19553280de2 100644
--- a/src/emu/cpu/mcs96/i8xc196.c
+++ b/src/devices/cpu/mcs96/i8xc196.c
diff --git a/src/emu/cpu/mcs96/i8xc196.h b/src/devices/cpu/mcs96/i8xc196.h
index 299f6c9128d..299f6c9128d 100644
--- a/src/emu/cpu/mcs96/i8xc196.h
+++ b/src/devices/cpu/mcs96/i8xc196.h
diff --git a/src/emu/cpu/mcs96/mcs96.c b/src/devices/cpu/mcs96/mcs96.c
index 4c4cf849b88..4c4cf849b88 100644
--- a/src/emu/cpu/mcs96/mcs96.c
+++ b/src/devices/cpu/mcs96/mcs96.c
diff --git a/src/emu/cpu/mcs96/mcs96.h b/src/devices/cpu/mcs96/mcs96.h
index 31e90d137ca..31e90d137ca 100644
--- a/src/emu/cpu/mcs96/mcs96.h
+++ b/src/devices/cpu/mcs96/mcs96.h
diff --git a/src/emu/cpu/mcs96/mcs96make.py b/src/devices/cpu/mcs96/mcs96make.py
index 8381e63dc2f..72d8f36cfa6 100644
--- a/src/emu/cpu/mcs96/mcs96make.py
+++ b/src/devices/cpu/mcs96/mcs96make.py
@@ -1,5 +1,7 @@
#!/usr/bin/python
+from __future__ import print_function
+
USAGE = """
Usage:
%s mcs96ops.lst mcs96.inc
@@ -7,12 +9,12 @@ Usage:
import sys
def save_full_one(f, t, name, source):
- print >>f, "void %s_device::%s_full()" % (t, name)
- print >>f, "{"
+ print("void %s_device::%s_full()" % (t, name), file=f)
+ print("{", file=f)
for line in source:
- print >>f, line
- print >>f, "}"
- print >>f
+ print(line, file=f)
+ print("}", file=f)
+ print("", file=f)
class Opcode:
def __init__(self, rng, name, amode, is_196, ea):
@@ -113,7 +115,7 @@ class OpcodeList:
self.opcode_per_id[i] = inf
def save_dasm(self, f, t):
- print >>f, "const %s_device::disasm_entry %s_device::disasm_entries[0x100] = {" % (t, t)
+ print("const %s_device::disasm_entry %s_device::disasm_entries[0x100] = {" % (t, t), file=f)
for i in range(0, 0x100):
if i in self.opcode_per_id:
opc = self.opcode_per_id[i]
@@ -126,11 +128,11 @@ class OpcodeList:
flags = "DASMFLAG_STEP_OUT"
else:
flags = "0"
- print >>f, "\t{ \"%s\", %s, DASM_%s, %s }," % (opc.name, alt, opc.amode, flags)
+ print("\t{ \"%s\", %s, DASM_%s, %s }," % (opc.name, alt, opc.amode, flags), file=f)
else:
- print >>f, "\t{ \"???\", NULL, DASM_none, 0 },"
- print >>f, "};"
- print >>f
+ print("\t{ \"???\", NULL, DASM_none, 0 },", file=f)
+ print("};", file=f)
+ print("", file=f)
def save_opcodes(self, f, t):
pf = ""
@@ -146,9 +148,9 @@ class OpcodeList:
save_full_one(f, t, "fetch_noirq", self.fetch_noirq.source)
def save_exec(self, f, t):
- print >>f, "void %s_device::do_exec_full()" % t
- print >>f, "{"
- print >>f, "\tswitch(inst_state) {"
+ print("void %s_device::do_exec_full()" % t, file=f)
+ print("{", file=f)
+ print("\tswitch(inst_state) {", file=f)
for i in range(0x000, 0x200):
opc = None
if i >= 0x100 and i-0x100+0xfe00 in self.opcode_per_id:
@@ -159,15 +161,15 @@ class OpcodeList:
nm = opc.name + "_" + opc.amode
if opc.is_196:
nm += "_196"
- print >>f, "\tcase 0x%03x: %s_full(); break;" % (i, nm)
- print >>f, "\tcase 0x200: fetch_full(); break;"
- print >>f, "\tcase 0x201: fetch_noirq_full(); break;"
- print >>f, "\t}"
- print >>f, "}"
+ print("\tcase 0x%03x: %s_full(); break;" % (i, nm), file=f)
+ print("\tcase 0x200: fetch_full(); break;", file=f)
+ print("\tcase 0x201: fetch_noirq_full(); break;", file=f)
+ print("\t}", file=f)
+ print("}", file=f)
def main(argv):
if len(argv) != 4:
- print USAGE % argv[0]
+ print(USAGE % argv[0])
return 1
t = argv[1]
diff --git a/src/emu/cpu/mcs96/mcs96ops.lst b/src/devices/cpu/mcs96/mcs96ops.lst
index 7ccedf358da..7ccedf358da 100644
--- a/src/emu/cpu/mcs96/mcs96ops.lst
+++ b/src/devices/cpu/mcs96/mcs96ops.lst
diff --git a/src/emu/cpu/melps4/m58846.c b/src/devices/cpu/melps4/m58846.c
index 4d892d38307..4d892d38307 100644
--- a/src/emu/cpu/melps4/m58846.c
+++ b/src/devices/cpu/melps4/m58846.c
diff --git a/src/emu/cpu/melps4/m58846.h b/src/devices/cpu/melps4/m58846.h
index 25d850b455e..25d850b455e 100644
--- a/src/emu/cpu/melps4/m58846.h
+++ b/src/devices/cpu/melps4/m58846.h
diff --git a/src/emu/cpu/melps4/melps4.c b/src/devices/cpu/melps4/melps4.c
index b7390eaccf5..b7390eaccf5 100644
--- a/src/emu/cpu/melps4/melps4.c
+++ b/src/devices/cpu/melps4/melps4.c
diff --git a/src/emu/cpu/melps4/melps4.h b/src/devices/cpu/melps4/melps4.h
index 329ea035b13..329ea035b13 100644
--- a/src/emu/cpu/melps4/melps4.h
+++ b/src/devices/cpu/melps4/melps4.h
diff --git a/src/emu/cpu/melps4/melps4d.c b/src/devices/cpu/melps4/melps4d.c
index 4c2ca2fd9d4..4c2ca2fd9d4 100644
--- a/src/emu/cpu/melps4/melps4d.c
+++ b/src/devices/cpu/melps4/melps4d.c
diff --git a/src/emu/cpu/melps4/melps4op.c b/src/devices/cpu/melps4/melps4op.c
index 4f77764a66b..4f77764a66b 100644
--- a/src/emu/cpu/melps4/melps4op.c
+++ b/src/devices/cpu/melps4/melps4op.c
diff --git a/src/emu/cpu/minx/minx.c b/src/devices/cpu/minx/minx.c
index e822fbd9ecc..e822fbd9ecc 100644
--- a/src/emu/cpu/minx/minx.c
+++ b/src/devices/cpu/minx/minx.c
diff --git a/src/emu/cpu/minx/minx.h b/src/devices/cpu/minx/minx.h
index 836b76026cc..836b76026cc 100644
--- a/src/emu/cpu/minx/minx.h
+++ b/src/devices/cpu/minx/minx.h
diff --git a/src/emu/cpu/minx/minxd.c b/src/devices/cpu/minx/minxd.c
index 58789942409..58789942409 100644
--- a/src/emu/cpu/minx/minxd.c
+++ b/src/devices/cpu/minx/minxd.c
diff --git a/src/emu/cpu/minx/minxfunc.h b/src/devices/cpu/minx/minxfunc.h
index 45478bc6667..45478bc6667 100644
--- a/src/emu/cpu/minx/minxfunc.h
+++ b/src/devices/cpu/minx/minxfunc.h
diff --git a/src/emu/cpu/minx/minxopce.h b/src/devices/cpu/minx/minxopce.h
index ec0198273e3..ec0198273e3 100644
--- a/src/emu/cpu/minx/minxopce.h
+++ b/src/devices/cpu/minx/minxopce.h
diff --git a/src/emu/cpu/minx/minxopcf.h b/src/devices/cpu/minx/minxopcf.h
index f81d991304a..f81d991304a 100644
--- a/src/emu/cpu/minx/minxopcf.h
+++ b/src/devices/cpu/minx/minxopcf.h
diff --git a/src/emu/cpu/minx/minxops.h b/src/devices/cpu/minx/minxops.h
index b19e733deb2..b19e733deb2 100644
--- a/src/emu/cpu/minx/minxops.h
+++ b/src/devices/cpu/minx/minxops.h
diff --git a/src/emu/cpu/mips/mips3.c b/src/devices/cpu/mips/mips3.c
index ce8466b2b21..907adfb2926 100644
--- a/src/emu/cpu/mips/mips3.c
+++ b/src/devices/cpu/mips/mips3.c
@@ -95,8 +95,6 @@ static const UINT8 fpmode_source[4] =
uml::ROUND_FLOOR
};
-
-
/***************************************************************************
MEMORY ACCESSORS
***************************************************************************/
@@ -130,6 +128,7 @@ mips3_device::mips3_device(const machine_config &mconfig, device_type type, cons
, m_ppc(0)
, m_nextpc(0)
, m_pcbase(0)
+ , m_delayslot(false)
, m_op(0)
, m_interrupt_cycles(0)
, m_ll_value(0)
@@ -255,8 +254,9 @@ void mips3_device::generate_exception(int exception, int backup)
}
/* if we were in a branch delay slot, adjust */
- if (m_nextpc != ~0)
+ if ((m_nextpc != ~0) || (m_delayslot))
{
+ m_delayslot = false;
m_nextpc = ~0;
m_core->cpr[0][COP0_EPC] -= 4;
CAUSE |= 0x80000000;
@@ -1517,7 +1517,7 @@ void mips3_device::handle_cop0(UINT32 op)
break;
case 0x10: /* RFE */ invalid_instruction(op); break;
- case 0x18: /* ERET */ logerror("ERET\n"); m_core->pc = m_core->cpr[0][COP0_EPC]; SR &= ~SR_EXL; check_irqs(); m_lld_value ^= 0xffffffff; m_ll_value ^= 0xffffffff; break;
+ case 0x18: /* ERET logerror("ERET\n"); */ m_core->pc = m_core->cpr[0][COP0_EPC]; SR &= ~SR_EXL; check_irqs(); m_lld_value ^= 0xffffffff; m_ll_value ^= 0xffffffff; break;
case 0x20: /* WAIT */ break;
default: invalid_instruction(op); break;
}
@@ -2767,12 +2767,16 @@ void mips3_device::execute_run()
/* adjust for next PC */
if (m_nextpc != ~0)
{
+ /* Exceptions need to be able to see delayslot, since nextpc gets cleared before instruction execution */
+ m_delayslot = true;
m_core->pc = m_nextpc;
m_nextpc = ~0;
}
else
+ {
+ m_delayslot = false;
m_core->pc += 4;
-
+ }
/* parse the instruction */
const int switch_val = (op >> 26) & 0x3f;
@@ -2845,11 +2849,23 @@ void mips3_device::execute_run()
case 0x2e: /* SWR */ (this->*m_swr)(op); break;
case 0x2f: /* CACHE */ /* effective no-op */ break;
case 0x30: /* LL */ if (RWORD(SIMMVAL+RSVAL32, &temp) && RTREG) RTVAL64 = (UINT32)temp; m_ll_value = RTVAL32; break;
- case 0x31: /* LWC1 */ if (RWORD(SIMMVAL+RSVAL32, &temp)) set_cop1_reg32(RTREG, temp); break;
+ case 0x31: /* LWC1 */
+ if (!(SR & SR_COP1))
+ {
+ m_badcop_value = 1;
+ generate_exception(EXCEPTION_BADCOP, 1);
+ }
+ if (RWORD(SIMMVAL+RSVAL32, &temp)) set_cop1_reg32(RTREG, temp); break;
case 0x32: /* LWC2 */ if (RWORD(SIMMVAL+RSVAL32, &temp)) set_cop2_reg(RTREG, temp); break;
case 0x33: /* PREF */ /* effective no-op */ break;
case 0x34: /* LLD */ if (RDOUBLE(SIMMVAL+RSVAL32, &temp64) && RTREG) RTVAL64 = temp64; m_lld_value = temp64; break;
- case 0x35: /* LDC1 */ if (RDOUBLE(SIMMVAL+RSVAL32, &temp64)) set_cop1_reg64(RTREG, temp64); break;
+ case 0x35: /* LDC1 */
+ if (!(SR & SR_COP1))
+ {
+ m_badcop_value = 1;
+ generate_exception(EXCEPTION_BADCOP, 1);
+ }
+ if (RDOUBLE(SIMMVAL+RSVAL32, &temp64)) set_cop1_reg64(RTREG, temp64); break;
case 0x36: /* LDC2 */ if (RDOUBLE(SIMMVAL+RSVAL32, &temp64)) set_cop2_reg(RTREG, temp64); break;
case 0x37: /* LD */ if (RDOUBLE(SIMMVAL+RSVAL32, &temp64) && RTREG) RTVAL64 = temp64; break;
case 0x38: /* SC */ if (RWORD(SIMMVAL+RSVAL32, &temp) && RTREG)
@@ -2865,7 +2881,13 @@ void mips3_device::execute_run()
}
}
break;
- case 0x39: /* SWC1 */ WWORD(SIMMVAL+RSVAL32, get_cop1_reg32(RTREG)); break;
+ case 0x39: /* SWC1 */
+ if (!(SR & SR_COP1))
+ {
+ m_badcop_value = 1;
+ generate_exception(EXCEPTION_BADCOP, 1);
+ }
+ WWORD(SIMMVAL+RSVAL32, get_cop1_reg32(RTREG)); break;
case 0x3a: /* SWC2 */ WWORD(SIMMVAL+RSVAL32, get_cop2_reg(RTREG)); break;
case 0x3b: /* SWC3 */ invalid_instruction(op); break;
case 0x3c: /* SCD */ if (RDOUBLE(SIMMVAL+RSVAL32, &temp64) && RTREG)
@@ -2881,11 +2903,19 @@ void mips3_device::execute_run()
}
}
break;
- case 0x3d: /* SDC1 */ WDOUBLE(SIMMVAL+RSVAL32, get_cop1_reg64(RTREG)); break;
+ case 0x3d: /* SDC1 */
+ if (!(SR & SR_COP1))
+ {
+ m_badcop_value = 1;
+ generate_exception(EXCEPTION_BADCOP, 1);
+ }
+ WDOUBLE(SIMMVAL+RSVAL32, get_cop1_reg64(RTREG)); break;
case 0x3e: /* SDC2 */ WDOUBLE(SIMMVAL+RSVAL32, get_cop2_reg(RTREG)); break;
case 0x3f: /* SD */ WDOUBLE(SIMMVAL+RSVAL32, RTVAL64); break;
default: /* ??? */ invalid_instruction(op); break;
}
+ /* Clear this flag once instruction execution is finished, will interfere with interrupt exceptions otherwise */
+ m_delayslot = false;
m_core->icount--;
} while (m_core->icount > 0 || m_nextpc != ~0);
diff --git a/src/emu/cpu/mips/mips3.h b/src/devices/cpu/mips/mips3.h
index b8d9330cffb..4ae8398dac0 100644
--- a/src/emu/cpu/mips/mips3.h
+++ b/src/devices/cpu/mips/mips3.h
@@ -366,6 +366,7 @@ private:
UINT32 m_nextpc;
UINT32 m_pcbase;
UINT8 m_cf[4][8];
+ bool m_delayslot;
int m_op;
int m_interrupt_cycles;
UINT32 m_ll_value;
diff --git a/src/emu/cpu/mips/mips3com.c b/src/devices/cpu/mips/mips3com.c
index 0409014eeba..0409014eeba 100644
--- a/src/emu/cpu/mips/mips3com.c
+++ b/src/devices/cpu/mips/mips3com.c
diff --git a/src/emu/cpu/mips/mips3com.h b/src/devices/cpu/mips/mips3com.h
index 86d7f0c7a05..86d7f0c7a05 100644
--- a/src/emu/cpu/mips/mips3com.h
+++ b/src/devices/cpu/mips/mips3com.h
diff --git a/src/emu/cpu/mips/mips3drc.c b/src/devices/cpu/mips/mips3drc.c
index 22af8e16063..22af8e16063 100644
--- a/src/emu/cpu/mips/mips3drc.c
+++ b/src/devices/cpu/mips/mips3drc.c
diff --git a/src/emu/cpu/mips/mips3dsm.c b/src/devices/cpu/mips/mips3dsm.c
index be8440aff24..d453a17f1c0 100644
--- a/src/emu/cpu/mips/mips3dsm.c
+++ b/src/devices/cpu/mips/mips3dsm.c
@@ -30,6 +30,13 @@ static const char *const reg[32] =
};
#endif
+static const char *const cacheop[32] =
+{
+ "I_Invd", "D_WBInvd", "Unknown 2", "Unknown 3", "I_IndexLoadTag", "D_IndexLoadTag", "Unknown 6", "Unknown 7",
+ "I_IndexStoreTag", "D_IndexStoreTag", "Unknown 10", "Unknown 11", "Unknown 12", "D_CreateDirtyExcl", "Unknown 14", "Unknown 15",
+ "I_HitInvalid", "D_HitInvalid", "Unknown 18", "Unknown 19", "I_Fill", "D_HitWBInvalid", "Unknown 22", "Unknown 23",
+ "I_HitWB", "D_HitWB", "Unknown 26", "Unknown 27", "Unknown 28", "Unknown 29", "Unknown 30", "Unknown 31"
+};
static const char *const cpreg[4][32] =
@@ -503,7 +510,7 @@ unsigned dasmmips3(char *buffer, unsigned pc, UINT32 op)
case 0x2c: sprintf(buffer, "sdl %s,%s(%s)", reg[rt], signed_16bit(op), reg[rs]); break;
case 0x2d: sprintf(buffer, "sdr %s,%s(%s)", reg[rt], signed_16bit(op), reg[rs]); break;
case 0x2e: sprintf(buffer, "swr %s,%s(%s)", reg[rt], signed_16bit(op), reg[rs]); break;
- case 0x2f: sprintf(buffer, "cache %s(%s)", reg[rs], signed_16bit(op)); break;
+ case 0x2f: sprintf(buffer, "cache %s,%s(%s)", cacheop[rt], reg[rs], signed_16bit(op)); break;
case 0x30: sprintf(buffer, "ll %s,%s(%s)", reg[rt], signed_16bit(op), reg[rs]); break;
case 0x31: sprintf(buffer, "lwc1 %s,%s(%s)", cpreg[1][rt], signed_16bit(op), reg[rs]); break;
case 0x32: sprintf(buffer, "lwc2 %s,%s(%s)", cpreg[2][rt], signed_16bit(op), reg[rs]); break;
diff --git a/src/emu/cpu/mips/mips3fe.c b/src/devices/cpu/mips/mips3fe.c
index 42055c39e24..42055c39e24 100644
--- a/src/emu/cpu/mips/mips3fe.c
+++ b/src/devices/cpu/mips/mips3fe.c
diff --git a/src/emu/cpu/mips/mips3fe.h b/src/devices/cpu/mips/mips3fe.h
index 15e90c922e0..15e90c922e0 100644
--- a/src/emu/cpu/mips/mips3fe.h
+++ b/src/devices/cpu/mips/mips3fe.h
diff --git a/src/emu/cpu/mips/r3000.c b/src/devices/cpu/mips/r3000.c
index 1b64e05799c..1b64e05799c 100644
--- a/src/emu/cpu/mips/r3000.c
+++ b/src/devices/cpu/mips/r3000.c
diff --git a/src/emu/cpu/mips/r3000.h b/src/devices/cpu/mips/r3000.h
index a29ea5cd163..a29ea5cd163 100644
--- a/src/emu/cpu/mips/r3000.h
+++ b/src/devices/cpu/mips/r3000.h
diff --git a/src/emu/cpu/mips/r3kdasm.c b/src/devices/cpu/mips/r3kdasm.c
index 78521a9679f..78521a9679f 100644
--- a/src/emu/cpu/mips/r3kdasm.c
+++ b/src/devices/cpu/mips/r3kdasm.c
diff --git a/src/emu/cpu/mn10200/mn10200.c b/src/devices/cpu/mn10200/mn10200.c
index bf00be5b984..bf00be5b984 100644
--- a/src/emu/cpu/mn10200/mn10200.c
+++ b/src/devices/cpu/mn10200/mn10200.c
diff --git a/src/emu/cpu/mn10200/mn10200.h b/src/devices/cpu/mn10200/mn10200.h
index 59be253f852..59be253f852 100644
--- a/src/emu/cpu/mn10200/mn10200.h
+++ b/src/devices/cpu/mn10200/mn10200.h
diff --git a/src/emu/cpu/mn10200/mn102dis.c b/src/devices/cpu/mn10200/mn102dis.c
index c3b09b0ed93..c3b09b0ed93 100644
--- a/src/emu/cpu/mn10200/mn102dis.c
+++ b/src/devices/cpu/mn10200/mn102dis.c
diff --git a/src/emu/cpu/nec/nec.c b/src/devices/cpu/nec/nec.c
index 6c53cfa677a..6c53cfa677a 100644
--- a/src/emu/cpu/nec/nec.c
+++ b/src/devices/cpu/nec/nec.c
diff --git a/src/emu/cpu/nec/nec.h b/src/devices/cpu/nec/nec.h
index 2e881591426..2e881591426 100644
--- a/src/emu/cpu/nec/nec.h
+++ b/src/devices/cpu/nec/nec.h
diff --git a/src/emu/cpu/nec/necdasm.c b/src/devices/cpu/nec/necdasm.c
index 726ada18247..726ada18247 100644
--- a/src/emu/cpu/nec/necdasm.c
+++ b/src/devices/cpu/nec/necdasm.c
diff --git a/src/emu/cpu/nec/necea.h b/src/devices/cpu/nec/necea.h
index 2633637304a..2633637304a 100644
--- a/src/emu/cpu/nec/necea.h
+++ b/src/devices/cpu/nec/necea.h
diff --git a/src/emu/cpu/nec/necinstr.h b/src/devices/cpu/nec/necinstr.h
index 6dd8d52aa49..6dd8d52aa49 100644
--- a/src/emu/cpu/nec/necinstr.h
+++ b/src/devices/cpu/nec/necinstr.h
diff --git a/src/emu/cpu/nec/necinstr.inc b/src/devices/cpu/nec/necinstr.inc
index 1630bf5c82f..1630bf5c82f 100644
--- a/src/emu/cpu/nec/necinstr.inc
+++ b/src/devices/cpu/nec/necinstr.inc
diff --git a/src/emu/cpu/nec/necmacro.h b/src/devices/cpu/nec/necmacro.h
index a6091f34eba..a6091f34eba 100644
--- a/src/emu/cpu/nec/necmacro.h
+++ b/src/devices/cpu/nec/necmacro.h
diff --git a/src/emu/cpu/nec/necmodrm.h b/src/devices/cpu/nec/necmodrm.h
index 8afc0240a78..8afc0240a78 100644
--- a/src/emu/cpu/nec/necmodrm.h
+++ b/src/devices/cpu/nec/necmodrm.h
diff --git a/src/emu/cpu/nec/necpriv.h b/src/devices/cpu/nec/necpriv.h
index bee9426cf8d..bee9426cf8d 100644
--- a/src/emu/cpu/nec/necpriv.h
+++ b/src/devices/cpu/nec/necpriv.h
diff --git a/src/emu/cpu/nec/v25.c b/src/devices/cpu/nec/v25.c
index 384043c8f9c..384043c8f9c 100644
--- a/src/emu/cpu/nec/v25.c
+++ b/src/devices/cpu/nec/v25.c
diff --git a/src/emu/cpu/nec/v25.h b/src/devices/cpu/nec/v25.h
index 41d55cc4fb8..41d55cc4fb8 100644
--- a/src/emu/cpu/nec/v25.h
+++ b/src/devices/cpu/nec/v25.h
diff --git a/src/emu/cpu/nec/v25instr.h b/src/devices/cpu/nec/v25instr.h
index 5d878f24f2b..5d878f24f2b 100644
--- a/src/emu/cpu/nec/v25instr.h
+++ b/src/devices/cpu/nec/v25instr.h
diff --git a/src/emu/cpu/nec/v25instr.inc b/src/devices/cpu/nec/v25instr.inc
index bd11b0626a8..bd11b0626a8 100644
--- a/src/emu/cpu/nec/v25instr.inc
+++ b/src/devices/cpu/nec/v25instr.inc
diff --git a/src/emu/cpu/nec/v25priv.h b/src/devices/cpu/nec/v25priv.h
index 19e8fcb7171..19e8fcb7171 100644
--- a/src/emu/cpu/nec/v25priv.h
+++ b/src/devices/cpu/nec/v25priv.h
diff --git a/src/emu/cpu/nec/v25sfr.c b/src/devices/cpu/nec/v25sfr.c
index 7e8afc8b39c..7e8afc8b39c 100644
--- a/src/emu/cpu/nec/v25sfr.c
+++ b/src/devices/cpu/nec/v25sfr.c
diff --git a/src/emu/cpu/nec/v53.c b/src/devices/cpu/nec/v53.c
index 43969a0a78c..daf1f806e48 100644
--- a/src/emu/cpu/nec/v53.c
+++ b/src/devices/cpu/nec/v53.c
@@ -18,112 +18,112 @@ const device_type V53A =&device_creator<v53a_device>;
WRITE8_MEMBER(v53_base_device::BSEL_w)
{
- printf("v53: BSEL_w %02x\n", data);
+ //printf("v53: BSEL_w %02x\n", data);
}
WRITE8_MEMBER(v53_base_device::BADR_w)
{
- printf("v53: BADR_w %02x\n", data);
+ //printf("v53: BADR_w %02x\n", data);
}
WRITE8_MEMBER(v53_base_device::BRC_w)
{
- printf("v53: BRC_w %02x\n", data);
+ //printf("v53: BRC_w %02x\n", data);
}
WRITE8_MEMBER(v53_base_device::WMB0_w)
{
- printf("v53: WMB0_w %02x\n", data);
+ //printf("v53: WMB0_w %02x\n", data);
}
WRITE8_MEMBER(v53_base_device::WCY1_w)
{
- printf("v53: WCY1_w %02x\n", data);
+ //printf("v53: WCY1_w %02x\n", data);
}
WRITE8_MEMBER(v53_base_device::WCY0_w)
{
- printf("v53: WCY0_w %02x\n", data);
+ //printf("v53: WCY0_w %02x\n", data);
}
WRITE8_MEMBER(v53_base_device::WAC_w)
{
- printf("v53: WAC_w %02x\n", data);
+ //printf("v53: WAC_w %02x\n", data);
}
WRITE8_MEMBER(v53_base_device::TCKS_w)
{
- printf("v53: TCKS_w %02x\n", data);
+ //printf("v53: TCKS_w %02x\n", data);
}
WRITE8_MEMBER(v53_base_device::SBCR_w)
{
- printf("v53: SBCR_w %02x\n", data);
+ //printf("v53: SBCR_w %02x\n", data);
}
WRITE8_MEMBER(v53_base_device::REFC_w)
{
- printf("v53: REFC_w %02x\n", data);
+ //printf("v53: REFC_w %02x\n", data);
}
WRITE8_MEMBER(v53_base_device::WMB1_w)
{
- printf("v53: WMB1_w %02x\n", data);
+ //printf("v53: WMB1_w %02x\n", data);
}
WRITE8_MEMBER(v53_base_device::WCY2_w)
{
- printf("v53: WCY2_w %02x\n", data);
+ //printf("v53: WCY2_w %02x\n", data);
}
WRITE8_MEMBER(v53_base_device::WCY3_w)
{
- printf("v53: WCY3_w %02x\n", data);
+ //printf("v53: WCY3_w %02x\n", data);
}
WRITE8_MEMBER(v53_base_device::WCY4_w)
{
- printf("v53: WCY4_w %02x\n", data);
+ //printf("v53: WCY4_w %02x\n", data);
}
WRITE8_MEMBER(v53_base_device::SULA_w)
{
- printf("v53: SULA_w %02x\n", data);
+ //printf("v53: SULA_w %02x\n", data);
m_SULA = data;
install_peripheral_io();
}
WRITE8_MEMBER(v53_base_device::TULA_w)
{
- printf("v53: TULA_w %02x\n", data);
+ //printf("v53: TULA_w %02x\n", data);
m_TULA = data;
install_peripheral_io();
}
WRITE8_MEMBER(v53_base_device::IULA_w)
{
- printf("v53: IULA_w %02x\n", data);
+ //printf("v53: IULA_w %02x\n", data);
m_IULA = data;
install_peripheral_io();
}
WRITE8_MEMBER(v53_base_device::DULA_w)
{
- printf("v53: DULA_w %02x\n", data);
+ //printf("v53: DULA_w %02x\n", data);
m_DULA = data;
install_peripheral_io();
}
WRITE8_MEMBER(v53_base_device::OPHA_w)
{
- printf("v53: OPHA_w %02x\n", data);
+ //printf("v53: OPHA_w %02x\n", data);
m_OPHA = data;
install_peripheral_io();
}
WRITE8_MEMBER(v53_base_device::OPSEL_w)
{
- printf("v53: OPSEL_w %02x\n", data);
+ //printf("v53: OPSEL_w %02x\n", data);
m_OPSEL = data;
install_peripheral_io();
}
@@ -139,7 +139,7 @@ WRITE8_MEMBER(v53_base_device::SCTL_w)
// bit 1: uPD71037 DMA mode enable (otherwise in uPD71071 mode)
// bit 0: Onboard pripheral I/O maps to 8-bit boundaries? (otherwise 16-bit)
- printf("v53: SCTL_w %02x\n", data);
+ //printf("v53: SCTL_w %02x\n", data);
m_SCTL = data;
install_peripheral_io();
}
@@ -311,14 +311,14 @@ void v53_base_device::install_peripheral_io()
READ8_MEMBER(v53_base_device::scu_simk_r)
{
- printf("v53: scu_simk_r\n");
+ //printf("v53: scu_simk_r\n");
return m_simk;
}
WRITE8_MEMBER(v53_base_device::scu_simk_w)
{
m_simk = data;
- printf("v53: scu_simk_w %02x\n", data);
+ //printf("v53: scu_simk_w %02x\n", data);
}
@@ -350,7 +350,7 @@ WRITE_LINE_MEMBER(v53_base_device::dreq0_w)
}
else
{
- printf("v53: dreq0 not in 71071mode\n");
+ //printf("v53: dreq0 not in 71071mode\n");
}
}
@@ -362,7 +362,7 @@ WRITE_LINE_MEMBER(v53_base_device::dreq1_w)
}
else
{
- printf("v53: dreq1 not in 71071mode\n");
+ //printf("v53: dreq1 not in 71071mode\n");
}
}
@@ -374,7 +374,7 @@ WRITE_LINE_MEMBER(v53_base_device::dreq2_w)
}
else
{
- printf("v53: dreq2 not in 71071mode\n");
+ //printf("v53: dreq2 not in 71071mode\n");
}
}
@@ -386,7 +386,7 @@ WRITE_LINE_MEMBER(v53_base_device::dreq3_w)
}
else
{
- printf("v53: dreq3 not in 71071mode\n");
+ //printf("v53: dreq3 not in 71071mode\n");
}
}
@@ -398,7 +398,7 @@ WRITE_LINE_MEMBER(v53_base_device::hack_w)
}
else
{
- printf("v53: hack_w not in 71071mode\n");
+ //printf("v53: hack_w not in 71071mode\n");
}
}
diff --git a/src/emu/cpu/nec/v53.h b/src/devices/cpu/nec/v53.h
index 796f620fd40..796f620fd40 100644
--- a/src/emu/cpu/nec/v53.h
+++ b/src/devices/cpu/nec/v53.h
diff --git a/src/emu/cpu/pdp1/pdp1.c b/src/devices/cpu/pdp1/pdp1.c
index bb7beee4128..bb7beee4128 100644
--- a/src/emu/cpu/pdp1/pdp1.c
+++ b/src/devices/cpu/pdp1/pdp1.c
diff --git a/src/emu/cpu/pdp1/pdp1.h b/src/devices/cpu/pdp1/pdp1.h
index f4d1281aa07..f4d1281aa07 100644
--- a/src/emu/cpu/pdp1/pdp1.h
+++ b/src/devices/cpu/pdp1/pdp1.h
diff --git a/src/emu/cpu/pdp1/pdp1dasm.c b/src/devices/cpu/pdp1/pdp1dasm.c
index c8682ca1491..c8682ca1491 100644
--- a/src/emu/cpu/pdp1/pdp1dasm.c
+++ b/src/devices/cpu/pdp1/pdp1dasm.c
diff --git a/src/emu/cpu/pdp1/tx0.c b/src/devices/cpu/pdp1/tx0.c
index 03c8441d88f..03c8441d88f 100644
--- a/src/emu/cpu/pdp1/tx0.c
+++ b/src/devices/cpu/pdp1/tx0.c
diff --git a/src/emu/cpu/pdp1/tx0.h b/src/devices/cpu/pdp1/tx0.h
index e88172bc8ff..e88172bc8ff 100644
--- a/src/emu/cpu/pdp1/tx0.h
+++ b/src/devices/cpu/pdp1/tx0.h
diff --git a/src/emu/cpu/pdp1/tx0dasm.c b/src/devices/cpu/pdp1/tx0dasm.c
index 3d8a1daf9e1..3d8a1daf9e1 100644
--- a/src/emu/cpu/pdp1/tx0dasm.c
+++ b/src/devices/cpu/pdp1/tx0dasm.c
diff --git a/src/devices/cpu/pdp8/pdp8.c b/src/devices/cpu/pdp8/pdp8.c
new file mode 100644
index 00000000000..1ed24effe12
--- /dev/null
+++ b/src/devices/cpu/pdp8/pdp8.c
@@ -0,0 +1,249 @@
+// license:BSD-3-Clause
+// copyright-holders:Ryan Holtz
+/*
+ First-gen DEC PDP-8 emulator skeleton
+
+ Written by Ryan Holtz
+*/
+
+#include "emu.h"
+#include "debugger.h"
+#include "pdp8.h"
+
+CPU_DISASSEMBLE( pdp8 );
+
+#define OP ((op >> 011) & 07)
+
+#define MR_IND ((op >> 010) & 01)
+#define MR_PAGE ((op >> 07) & 01)
+#define MR_ADDR (op & 0177)
+
+#define IOT_DEVICE ((op >> 03) & 077)
+#define IOT_IOP1 (op & 01)
+#define IOT_IOP2 ((op >> 01) & 01)
+#define IOT_IOP4 ((op >> 02) & 01)
+
+#define OPR_GROUP ((op >> 010) & 01)
+#define OPR_CLA ((op >> 07) & 01)
+#define OPR_CLL ((op >> 06) & 01)
+#define OPR_CMA ((op >> 05) & 01)
+#define OPR_CML ((op >> 04) & 01)
+#define OPR_ROR ((op >> 03) & 01)
+#define OPR_ROL ((op >> 02) & 01)
+#define OPR_ROT2 ((op >> 01) & 01)
+#define OPR_IAC (op & 01)
+
+#define OPR_SMA OPR_CLL
+#define OPR_SZA OPR_CMA
+#define OPR_SNL OPR_CML
+#define OPR_REVSKIP OPR_ROR
+#define OPR_OSR OPR_ROL
+#define OPR_HLT OPR_ROT2
+
+#define OPR_GROUP_MASK 0401
+#define OPR_GROUP1_VAL 0000
+#define OPR_GROUP2_VAL 0400
+
+const device_type PDP8CPU = &device_creator<pdp8_device>;
+
+//-------------------------------------------------
+// pdp8_device - constructor
+//-------------------------------------------------
+
+pdp8_device::pdp8_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : cpu_device(mconfig, PDP8CPU, "PDP8CPU", tag, owner, clock, "pdp8_cpu", __FILE__),
+ m_program_config("program", ENDIANNESS_BIG, 12, 12),
+ m_pc(0),
+ m_ac(0),
+ m_mb(0),
+ m_ma(0),
+ m_sr(0),
+ m_l(0),
+ m_ir(0),
+ m_halt(true),
+ m_icount(0)
+{
+ // Allocate & setup
+}
+
+
+void pdp8_device::device_start()
+{
+ m_program = &space(AS_PROGRAM);
+
+ // register our state for the debugger
+ std::string tempstr;
+ state_add(STATE_GENPC, "GENPC", m_pc).noshow();
+ state_add(STATE_GENFLAGS, "GENFLAGS", m_l).callimport().callexport().formatstr("%1s").noshow();
+ state_add(PDP8_PC, "PC", m_pc).mask(0xfff);
+ state_add(PDP8_AC, "AC", m_ac).mask(0xfff);
+ state_add(PDP8_MB, "MB", m_mb).mask(0xfff);
+ state_add(PDP8_MA, "MA", m_ma).mask(0xfff);
+ state_add(PDP8_SR, "SR", m_sr).mask(0xfff);
+ state_add(PDP8_L, "L", m_l).mask(0xf);
+ state_add(PDP8_IR, "IR", m_ir).mask(0xff);
+ state_add(PDP8_HALT, "HLT", m_halt).mask(0xf);
+
+ // setup regtable
+ save_item(NAME(m_pc));
+ save_item(NAME(m_ac));
+ save_item(NAME(m_mb));
+ save_item(NAME(m_ma));
+ save_item(NAME(m_sr));
+ save_item(NAME(m_l));
+ save_item(NAME(m_ir));
+ save_item(NAME(m_halt));
+
+ // set our instruction counter
+ m_icountptr = &m_icount;
+}
+
+void pdp8_device::device_stop()
+{
+}
+
+void pdp8_device::device_reset()
+{
+ m_pc = 0;
+ m_ac = 0;
+ m_mb = 0;
+ m_ma = 0;
+ m_sr = 0;
+ m_l = 0;
+ m_ir = 0;
+ m_halt = true;
+}
+
+
+//-------------------------------------------------
+// memory_space_config - return the configuration
+// of the specified address space, or NULL if
+// the space doesn't exist
+//-------------------------------------------------
+
+const address_space_config *pdp8_device::memory_space_config(address_spacenum spacenum) const
+{
+ if (spacenum == AS_PROGRAM)
+ {
+ return &m_program_config;
+ }
+ return NULL;
+}
+
+
+//-------------------------------------------------
+// state_string_export - export state as a string
+// for the debugger
+//-------------------------------------------------
+
+void pdp8_device::state_string_export(const device_state_entry &entry, std::string &str)
+{
+ switch (entry.index())
+ {
+ case STATE_GENFLAGS:
+ strprintf(str, "%c", m_halt ? 'H' : '.');
+ break;
+ }
+}
+
+
+//-------------------------------------------------
+// disasm_min_opcode_bytes - return the length
+// of the shortest instruction, in bytes
+//-------------------------------------------------
+
+UINT32 pdp8_device::disasm_min_opcode_bytes() const
+{
+ return 2;
+}
+
+
+//-------------------------------------------------
+// disasm_max_opcode_bytes - return the length
+// of the longest instruction, in bytes
+//-------------------------------------------------
+
+UINT32 pdp8_device::disasm_max_opcode_bytes() const
+{
+ return 2;
+}
+
+
+//-------------------------------------------------
+// disasm_disassemble - call the disassembly
+// helper function
+//-------------------------------------------------
+
+offs_t pdp8_device::disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options)
+{
+ extern CPU_DISASSEMBLE( pdp8 );
+ return CPU_DISASSEMBLE_NAME(pdp8)(this, buffer, pc, oprom, opram, options);
+}
+
+
+//**************************************************************************
+// CORE EXECUTION LOOP
+//**************************************************************************
+
+//-------------------------------------------------
+// execute_min_cycles - return minimum number of
+// cycles it takes for one instruction to execute
+//-------------------------------------------------
+
+UINT32 pdp8_device::execute_min_cycles() const
+{
+ return 1; // TODO
+}
+
+
+//-------------------------------------------------
+// execute_max_cycles - return maximum number of
+// cycles it takes for one instruction to execute
+//-------------------------------------------------
+
+UINT32 pdp8_device::execute_max_cycles() const
+{
+ return 3; // TODO
+}
+
+
+//-------------------------------------------------
+// execute_input_lines - return the number of
+// input/interrupt lines
+//-------------------------------------------------
+
+UINT32 pdp8_device::execute_input_lines() const
+{
+ return 0; // TODO
+}
+
+
+//-------------------------------------------------
+// execute_set_input - set the state of an input
+// line during execution
+//-------------------------------------------------
+
+void pdp8_device::execute_set_input(int inputnum, int state)
+{
+ // TODO
+}
+
+
+//-------------------------------------------------
+// execute_run - execute a timeslice's worth of
+// opcodes
+//-------------------------------------------------
+
+void pdp8_device::execute_run()
+{
+ while (m_icount > 0)
+ {
+ m_pc &= 07777;
+
+ debugger_instruction_hook(this, m_pc);
+
+ UINT16 op = m_program->read_word(m_pc);
+
+ --m_icount;
+ }
+}
diff --git a/src/devices/cpu/pdp8/pdp8.h b/src/devices/cpu/pdp8/pdp8.h
new file mode 100644
index 00000000000..2569edd2d8f
--- /dev/null
+++ b/src/devices/cpu/pdp8/pdp8.h
@@ -0,0 +1,113 @@
+// license:BSD-3-Clause
+// copyright-holders:Ryan Holtz
+/*
+ First-gen DEC PDP-8 CPU emulator
+
+ Written by Ryan Holtz
+*/
+
+#pragma once
+
+#ifndef __PDP8_H__
+#define __PDP8_H__
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+// ======================> pdp8_device
+
+// Used by core CPU interface
+class pdp8_device : public cpu_device
+{
+public:
+ // construction/destruction
+ pdp8_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ // device-level overrides
+ virtual void device_start();
+ virtual void device_reset();
+ virtual void device_stop();
+
+ // device_execute_interface overrides
+ virtual UINT32 execute_min_cycles() const;
+ virtual UINT32 execute_max_cycles() const;
+ virtual UINT32 execute_input_lines() const;
+ virtual void execute_run();
+ virtual void execute_set_input(int inputnum, int state);
+
+ // device_memory_interface overrides
+ virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const;
+
+ // device_disasm_interface overrides
+ virtual UINT32 disasm_min_opcode_bytes() const;
+ virtual UINT32 disasm_max_opcode_bytes() const;
+ virtual offs_t disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options);
+
+ // device_state_interface overrides
+ virtual void state_string_export(const device_state_entry &entry, std::string &str);
+
+ // address spaces
+ const address_space_config m_program_config;
+
+ enum state
+ {
+ FETCH,
+ DEFER,
+ EXECUTE,
+ WORD_COUNT,
+ CURRENT_ADDR,
+ BREAK
+ }
+
+ enum opcode
+ {
+ AND = 0,
+ TAD,
+ ISZ,
+ DCA,
+ JMS,
+ JMP,
+ IOT,
+ OPR
+ }
+private:
+ // CPU registers
+ UINT16 m_pc;
+ UINT16 m_ac;
+ UINT16 m_mb;
+ UINT16 m_ma;
+ UINT16 m_sr;
+ UINT8 m_l;
+ UINT8 m_ir;
+ bool m_halt;
+
+ // other internal states
+ int m_icount;
+
+ // address spaces
+ address_space *m_program;
+};
+
+// device type definition
+extern const device_type PDP8CPU;
+
+/***************************************************************************
+ REGISTER ENUMERATION
+***************************************************************************/
+
+enum
+{
+ PDP8_PC = 1,
+ PDP8_AC,
+ PDP8_MB,
+ PDP8_MA,
+ PDP8_SR,
+ PDP8_L,
+ PDP8_IR,
+ PDP8_HALT
+};
+
+CPU_DISASSEMBLE( pdp8 );
+
+#endif /* __PDP8_H__ */
diff --git a/src/devices/cpu/pdp8/pdp8dasm.c b/src/devices/cpu/pdp8/pdp8dasm.c
new file mode 100644
index 00000000000..01dc3621ffa
--- /dev/null
+++ b/src/devices/cpu/pdp8/pdp8dasm.c
@@ -0,0 +1,174 @@
+// license:BSD-3-Clause
+// copyright-holders:Ryan Holtz
+/*
+ First-gen DEC PDP-8 disassembler
+
+ Written by Ryan Holtz
+*/
+
+#include "emu.h"
+
+static char *output;
+
+offs_t pdp8_dasm_one(char *buffer, offs_t pc, UINT16 op)
+{
+ UINT8 opcode = (op >> 011) & 07;
+ UINT16 current_page = pc & 07600;
+ UINT16 zero_addr = op & 0177;
+ UINT16 current_addr = current_page | zero_addr;
+ bool indirect = (op & 0400) ? true : false;
+ bool zero_page = (op & 0200) ? false : true;
+
+ output = buffer;
+
+ switch (opcode)
+ {
+ case 0:
+ output += sprintf(buffer, "AND %c %05o", indirect ? 'I' : ' ', zero_page ? zero_addr : current_addr);
+ break;
+ case 1:
+ output += sprintf(buffer, "TAD %c %05o", indirect ? 'I' : ' ', zero_page ? zero_addr : current_addr);
+ break;
+ case 2:
+ output += sprintf(buffer, "ISZ %c %05o", indirect ? 'I' : ' ', zero_page ? zero_addr : current_addr);
+ break;
+ case 3:
+ output += sprintf(buffer, "DCA %c %05o", indirect ? 'I' : ' ', zero_page ? zero_addr : current_addr);
+ break;
+ case 4:
+ output += sprintf(buffer, "JMS %c %05o", indirect ? 'I' : ' ', zero_page ? zero_addr : current_addr);
+ break;
+ case 5:
+ output += sprintf(buffer, "JMP %c %05o", indirect ? 'I' : ' ', zero_page ? zero_addr : current_addr);
+ break;
+ case 6:
+ output += sprintf(buffer, "IOT %03o %01o", (op >> 03) & 077, op & 07);
+ break;
+ case 7:
+ {
+ bool group2 = ((op & 0401) == 0400);
+ if (!group2)
+ {
+ if (!(op & 0377))
+ {
+ output += sprintf(buffer, "NOP ");
+ }
+ else
+ {
+ if (op & 0200)
+ {
+ output += sprintf(buffer, "CLA ");
+ }
+ if (op & 0100)
+ {
+ output += sprintf(buffer, "CLL ");
+ }
+ if (op & 040)
+ {
+ output += sprintf(buffer, "CMA ");
+ }
+ if (op & 020)
+ {
+ output += sprintf(buffer, "CML ");
+ }
+ if (op & 01)
+ {
+ output += sprintf(buffer, "IAC ");
+ }
+ if (op & 010)
+ {
+ if (op & 02)
+ {
+ output += sprintf(buffer, "RTR ");
+ }
+ else
+ {
+ output += sprintf(buffer, "RAR ");
+ }
+ }
+ if (op & 04)
+ {
+ if (op & 02)
+ {
+ output += sprintf(buffer, "RTL ");
+ }
+ else
+ {
+ output += sprintf(buffer, "RAL ");
+ }
+ }
+ }
+ }
+ else
+ {
+ if (!(op & 0377))
+ {
+ output += sprintf(buffer, "NOP ");
+ }
+ else
+ {
+ if (op & 010)
+ {
+ if (!(op & 0160))
+ {
+ output += sprintf(buffer, "SKP ");
+ }
+ else
+ {
+ if (op & 0100)
+ {
+ output += sprintf(buffer, "SPA ");
+ }
+ if (op & 040)
+ {
+ output += sprintf(buffer, "SNA ");
+ }
+ if (op & 020)
+ {
+ output += sprintf(buffer, "SZL ");
+ }
+ }
+ }
+ else
+ {
+ if (op & 0100)
+ {
+ output += sprintf(buffer, "SMA ");
+ }
+ if (op & 040)
+ {
+ output += sprintf(buffer, "SZA ");
+ }
+ if (op & 020)
+ {
+ output += sprintf(buffer, "SNL ");
+ }
+ }
+ if (op & 0200)
+ {
+ output += sprintf(buffer, "CLA ");
+ }
+ if (op & 04)
+ {
+ output += sprintf(buffer, "OSR ");
+ }
+ if (op & 02)
+ {
+ output += sprintf(buffer, "HLT ");
+ }
+ }
+ }
+ }
+ }
+
+ return 2 | DASMFLAG_SUPPORTED;
+}
+
+/*****************************************************************************/
+
+CPU_DISASSEMBLE( pdp8 )
+{
+ UINT16 op = (*(UINT8 *)(opram + 0) << 8) |
+ (*(UINT8 *)(opram + 1) << 0);
+ return pdp8_dasm_one(buffer, pc, op);
+}
diff --git a/src/emu/cpu/pic16c5x/16c5xdsm.c b/src/devices/cpu/pic16c5x/16c5xdsm.c
index 45ff3154ec1..45ff3154ec1 100644
--- a/src/emu/cpu/pic16c5x/16c5xdsm.c
+++ b/src/devices/cpu/pic16c5x/16c5xdsm.c
diff --git a/src/emu/cpu/pic16c5x/dis16c5x.c b/src/devices/cpu/pic16c5x/dis16c5x.c
index 5b108310b5f..5b108310b5f 100644
--- a/src/emu/cpu/pic16c5x/dis16c5x.c
+++ b/src/devices/cpu/pic16c5x/dis16c5x.c
diff --git a/src/emu/cpu/pic16c5x/pic16c5x.c b/src/devices/cpu/pic16c5x/pic16c5x.c
index 3acd46944f7..3acd46944f7 100644
--- a/src/emu/cpu/pic16c5x/pic16c5x.c
+++ b/src/devices/cpu/pic16c5x/pic16c5x.c
diff --git a/src/emu/cpu/pic16c5x/pic16c5x.h b/src/devices/cpu/pic16c5x/pic16c5x.h
index 5f45ca3bf33..5f45ca3bf33 100644
--- a/src/emu/cpu/pic16c5x/pic16c5x.h
+++ b/src/devices/cpu/pic16c5x/pic16c5x.h
diff --git a/src/emu/cpu/pic16c62x/16c62xdsm.c b/src/devices/cpu/pic16c62x/16c62xdsm.c
index 5bdd824dc16..5bdd824dc16 100644
--- a/src/emu/cpu/pic16c62x/16c62xdsm.c
+++ b/src/devices/cpu/pic16c62x/16c62xdsm.c
diff --git a/src/emu/cpu/pic16c62x/dis16c62x.c b/src/devices/cpu/pic16c62x/dis16c62x.c
index c87acd87018..c87acd87018 100644
--- a/src/emu/cpu/pic16c62x/dis16c62x.c
+++ b/src/devices/cpu/pic16c62x/dis16c62x.c
diff --git a/src/emu/cpu/pic16c62x/pic16c62x.c b/src/devices/cpu/pic16c62x/pic16c62x.c
index 2a38bcd5f93..2a38bcd5f93 100644
--- a/src/emu/cpu/pic16c62x/pic16c62x.c
+++ b/src/devices/cpu/pic16c62x/pic16c62x.c
diff --git a/src/emu/cpu/pic16c62x/pic16c62x.h b/src/devices/cpu/pic16c62x/pic16c62x.h
index f7ac6fd43ae..f7ac6fd43ae 100644
--- a/src/emu/cpu/pic16c62x/pic16c62x.h
+++ b/src/devices/cpu/pic16c62x/pic16c62x.h
diff --git a/src/emu/cpu/powerpc/drc_ops.c b/src/devices/cpu/powerpc/drc_ops.c
index cfe3614fb5a..cfe3614fb5a 100644
--- a/src/emu/cpu/powerpc/drc_ops.c
+++ b/src/devices/cpu/powerpc/drc_ops.c
diff --git a/src/emu/cpu/powerpc/drc_ops.h b/src/devices/cpu/powerpc/drc_ops.h
index 792cdd6260a..792cdd6260a 100644
--- a/src/emu/cpu/powerpc/drc_ops.h
+++ b/src/devices/cpu/powerpc/drc_ops.h
diff --git a/src/emu/cpu/powerpc/ppc.c b/src/devices/cpu/powerpc/ppc.c
index cb85522177d..cb85522177d 100644
--- a/src/emu/cpu/powerpc/ppc.c
+++ b/src/devices/cpu/powerpc/ppc.c
diff --git a/src/emu/cpu/powerpc/ppc.h b/src/devices/cpu/powerpc/ppc.h
index 73bcb0b470b..73bcb0b470b 100644
--- a/src/emu/cpu/powerpc/ppc.h
+++ b/src/devices/cpu/powerpc/ppc.h
diff --git a/src/emu/cpu/powerpc/ppc403.inc b/src/devices/cpu/powerpc/ppc403.inc
index 054c2657142..054c2657142 100644
--- a/src/emu/cpu/powerpc/ppc403.inc
+++ b/src/devices/cpu/powerpc/ppc403.inc
diff --git a/src/emu/cpu/powerpc/ppc602.inc b/src/devices/cpu/powerpc/ppc602.inc
index 6b1998201f7..6b1998201f7 100644
--- a/src/emu/cpu/powerpc/ppc602.inc
+++ b/src/devices/cpu/powerpc/ppc602.inc
diff --git a/src/emu/cpu/powerpc/ppc603.inc b/src/devices/cpu/powerpc/ppc603.inc
index 114728d19ce..114728d19ce 100644
--- a/src/emu/cpu/powerpc/ppc603.inc
+++ b/src/devices/cpu/powerpc/ppc603.inc
diff --git a/src/emu/cpu/powerpc/ppc_dasm.c b/src/devices/cpu/powerpc/ppc_dasm.c
index d80f800c89b..d80f800c89b 100644
--- a/src/emu/cpu/powerpc/ppc_dasm.c
+++ b/src/devices/cpu/powerpc/ppc_dasm.c
diff --git a/src/emu/cpu/powerpc/ppc_mem.inc b/src/devices/cpu/powerpc/ppc_mem.inc
index 0f8851e4c5c..0f8851e4c5c 100644
--- a/src/emu/cpu/powerpc/ppc_mem.inc
+++ b/src/devices/cpu/powerpc/ppc_mem.inc
diff --git a/src/emu/cpu/powerpc/ppc_ops.h b/src/devices/cpu/powerpc/ppc_ops.h
index b44e92a016b..b44e92a016b 100644
--- a/src/emu/cpu/powerpc/ppc_ops.h
+++ b/src/devices/cpu/powerpc/ppc_ops.h
diff --git a/src/emu/cpu/powerpc/ppc_ops.inc b/src/devices/cpu/powerpc/ppc_ops.inc
index 86ccd8e2225..86ccd8e2225 100644
--- a/src/emu/cpu/powerpc/ppc_ops.inc
+++ b/src/devices/cpu/powerpc/ppc_ops.inc
diff --git a/src/emu/cpu/powerpc/ppccom.c b/src/devices/cpu/powerpc/ppccom.c
index 6f91b4a96e8..a98872029ec 100644
--- a/src/emu/cpu/powerpc/ppccom.c
+++ b/src/devices/cpu/powerpc/ppccom.c
@@ -2650,7 +2650,7 @@ void ppc_device::ppc4xx_spu_timer_reset()
attotime charperiod = clockperiod * (divisor * 16 * bpc);
m_spu.timer->adjust(charperiod, 0, charperiod);
if (PRINTF_SPU)
- printf("ppc4xx_spu_timer_reset: baud rate = %.0f\n", ATTOSECONDS_TO_HZ(charperiod.attoseconds) * bpc);
+ printf("ppc4xx_spu_timer_reset: baud rate = %.0f\n", ATTOSECONDS_TO_HZ(charperiod.attoseconds()) * bpc);
}
/* otherwise, disable the timer */
diff --git a/src/emu/cpu/powerpc/ppccom.h b/src/devices/cpu/powerpc/ppccom.h
index b978aa4101b..b978aa4101b 100644
--- a/src/emu/cpu/powerpc/ppccom.h
+++ b/src/devices/cpu/powerpc/ppccom.h
diff --git a/src/emu/cpu/powerpc/ppcdrc.c b/src/devices/cpu/powerpc/ppcdrc.c
index 088eab855aa..088eab855aa 100644
--- a/src/emu/cpu/powerpc/ppcdrc.c
+++ b/src/devices/cpu/powerpc/ppcdrc.c
diff --git a/src/emu/cpu/powerpc/ppcfe.c b/src/devices/cpu/powerpc/ppcfe.c
index 8ba5a90eb4e..8ba5a90eb4e 100644
--- a/src/emu/cpu/powerpc/ppcfe.c
+++ b/src/devices/cpu/powerpc/ppcfe.c
diff --git a/src/emu/cpu/powerpc/ppcfe.h b/src/devices/cpu/powerpc/ppcfe.h
index 5ba2f53dbb1..5ba2f53dbb1 100644
--- a/src/emu/cpu/powerpc/ppcfe.h
+++ b/src/devices/cpu/powerpc/ppcfe.h
diff --git a/src/emu/cpu/pps4/pps4.c b/src/devices/cpu/pps4/pps4.c
index 5be986f2c3d..5be986f2c3d 100644
--- a/src/emu/cpu/pps4/pps4.c
+++ b/src/devices/cpu/pps4/pps4.c
diff --git a/src/emu/cpu/pps4/pps4.h b/src/devices/cpu/pps4/pps4.h
index 8c115745cbb..8c115745cbb 100644
--- a/src/emu/cpu/pps4/pps4.h
+++ b/src/devices/cpu/pps4/pps4.h
diff --git a/src/emu/cpu/pps4/pps4dasm.c b/src/devices/cpu/pps4/pps4dasm.c
index 4ee5079ee91..4ee5079ee91 100644
--- a/src/emu/cpu/pps4/pps4dasm.c
+++ b/src/devices/cpu/pps4/pps4dasm.c
diff --git a/src/emu/cpu/psx/dismips.c b/src/devices/cpu/psx/dismips.c
index 76f67fba2cf..76f67fba2cf 100644
--- a/src/emu/cpu/psx/dismips.c
+++ b/src/devices/cpu/psx/dismips.c
diff --git a/src/emu/cpu/psx/dismips.mak b/src/devices/cpu/psx/dismips.mak
index 306d6f53788..306d6f53788 100644
--- a/src/emu/cpu/psx/dismips.mak
+++ b/src/devices/cpu/psx/dismips.mak
diff --git a/src/emu/cpu/psx/dma.c b/src/devices/cpu/psx/dma.c
index 5f3386a188e..5f3386a188e 100644
--- a/src/emu/cpu/psx/dma.c
+++ b/src/devices/cpu/psx/dma.c
diff --git a/src/emu/cpu/psx/dma.h b/src/devices/cpu/psx/dma.h
index 3e99583ca60..3e99583ca60 100644
--- a/src/emu/cpu/psx/dma.h
+++ b/src/devices/cpu/psx/dma.h
diff --git a/src/emu/cpu/psx/gte.c b/src/devices/cpu/psx/gte.c
index ce50afba6a4..ce50afba6a4 100644
--- a/src/emu/cpu/psx/gte.c
+++ b/src/devices/cpu/psx/gte.c
diff --git a/src/emu/cpu/psx/gte.h b/src/devices/cpu/psx/gte.h
index 3fc7075a81d..3fc7075a81d 100644
--- a/src/emu/cpu/psx/gte.h
+++ b/src/devices/cpu/psx/gte.h
diff --git a/src/emu/cpu/psx/irq.c b/src/devices/cpu/psx/irq.c
index 51b55cd2639..51b55cd2639 100644
--- a/src/emu/cpu/psx/irq.c
+++ b/src/devices/cpu/psx/irq.c
diff --git a/src/emu/cpu/psx/irq.h b/src/devices/cpu/psx/irq.h
index 041aa90f26c..041aa90f26c 100644
--- a/src/emu/cpu/psx/irq.h
+++ b/src/devices/cpu/psx/irq.h
diff --git a/src/emu/cpu/psx/mdec.c b/src/devices/cpu/psx/mdec.c
index 57c6b3393b4..57c6b3393b4 100644
--- a/src/emu/cpu/psx/mdec.c
+++ b/src/devices/cpu/psx/mdec.c
diff --git a/src/emu/cpu/psx/mdec.h b/src/devices/cpu/psx/mdec.h
index 097f43c0d5d..097f43c0d5d 100644
--- a/src/emu/cpu/psx/mdec.h
+++ b/src/devices/cpu/psx/mdec.h
diff --git a/src/emu/cpu/psx/psx.c b/src/devices/cpu/psx/psx.c
index a60a1204b9f..a262c9bd42c 100644
--- a/src/emu/cpu/psx/psx.c
+++ b/src/devices/cpu/psx/psx.c
@@ -1417,7 +1417,7 @@ void psxcpu_device::update_rom_config()
}
}
- if( window_size < max_window_size )
+ if( window_size < max_window_size && !m_disable_rom_berr)
{
m_program->install_readwrite_handler( 0x1fc00000 + window_size, 0x1fffffff, read32_delegate( FUNC( psxcpu_device::berr_r ), this ), write32_delegate( FUNC( psxcpu_device::berr_w ), this ) );
m_program->install_readwrite_handler( 0x9fc00000 + window_size, 0x9fffffff, read32_delegate( FUNC( psxcpu_device::berr_r ), this ), write32_delegate( FUNC( psxcpu_device::berr_w ), this ) );
@@ -1756,6 +1756,7 @@ psxcpu_device::psxcpu_device( const machine_config &mconfig, device_type type, c
m_cd_write_handler( *this ),
m_ram( *this, "ram" )
{
+ m_disable_rom_berr = false;
}
cxd8530aq_device::cxd8530aq_device( const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock )
@@ -3374,6 +3375,11 @@ WRITE8_MEMBER( psxcpu_device::cd_w )
m_cd_write_handler( space, offset, data, mem_mask );
}
+void psxcpu_device::set_disable_rom_berr(bool mode)
+{
+ m_disable_rom_berr = mode;
+}
+
static MACHINE_CONFIG_FRAGMENT( psx )
MCFG_DEVICE_ADD( "irq", PSX_IRQ, 0 )
MCFG_PSX_IRQ_HANDLER( INPUTLINE( DEVICE_SELF, PSXCPU_IRQ0 ) )
diff --git a/src/emu/cpu/psx/psx.h b/src/devices/cpu/psx/psx.h
index 4f5895bf4e9..21b6d8adc55 100644
--- a/src/emu/cpu/psx/psx.h
+++ b/src/devices/cpu/psx/psx.h
@@ -128,6 +128,8 @@ enum
devcb = &psxcpu_device::set_cd_read_handler(*device, DEVCB_##_devcb);
#define MCFG_PSX_CD_WRITE_HANDLER(_devcb) \
devcb = &psxcpu_device::set_cd_write_handler(*device, DEVCB_##_devcb);
+#define MCFG_PSX_DISABLE_ROM_BERR \
+ downcast<psxcpu_device *>(device)->set_disable_rom_berr(true);
//**************************************************************************
// TYPE DEFINITIONS
@@ -196,6 +198,7 @@ public:
DECLARE_READ32_MEMBER( com_delay_r );
static psxcpu_device *getcpu( device_t &device, const char *cputag );
+ 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 clock, const char *shortname, const char *source);
@@ -346,6 +349,7 @@ protected:
devcb_write8 m_cd_write_handler;
required_device<ram_device> m_ram;
memory_region *m_rom;
+ bool m_disable_rom_berr;
private:
// disassembler interface
diff --git a/src/emu/cpu/psx/psxdasm.c b/src/devices/cpu/psx/psxdasm.c
index dabb4da9413..dabb4da9413 100644
--- a/src/emu/cpu/psx/psxdasm.c
+++ b/src/devices/cpu/psx/psxdasm.c
diff --git a/src/emu/cpu/psx/rcnt.c b/src/devices/cpu/psx/rcnt.c
index 31d3eb468e9..31d3eb468e9 100644
--- a/src/emu/cpu/psx/rcnt.c
+++ b/src/devices/cpu/psx/rcnt.c
diff --git a/src/emu/cpu/psx/rcnt.h b/src/devices/cpu/psx/rcnt.h
index 4cdae90276a..4cdae90276a 100644
--- a/src/emu/cpu/psx/rcnt.h
+++ b/src/devices/cpu/psx/rcnt.h
diff --git a/src/emu/cpu/psx/sio.c b/src/devices/cpu/psx/sio.c
index abf3c4b8bf1..abf3c4b8bf1 100644
--- a/src/emu/cpu/psx/sio.c
+++ b/src/devices/cpu/psx/sio.c
diff --git a/src/emu/cpu/psx/sio.h b/src/devices/cpu/psx/sio.h
index ebae81d5a93..ebae81d5a93 100644
--- a/src/emu/cpu/psx/sio.h
+++ b/src/devices/cpu/psx/sio.h
diff --git a/src/emu/cpu/rsp/clamp.h b/src/devices/cpu/rsp/clamp.h
index 5b69b746a7d..5b69b746a7d 100644
--- a/src/emu/cpu/rsp/clamp.h
+++ b/src/devices/cpu/rsp/clamp.h
diff --git a/src/emu/cpu/rsp/rsp.c b/src/devices/cpu/rsp/rsp.c
index edea79ac688..6419282a598 100644
--- a/src/emu/cpu/rsp/rsp.c
+++ b/src/devices/cpu/rsp/rsp.c
@@ -801,9 +801,9 @@ void rsp_device::execute_run()
m_rsp_state->icount = MIN(m_rsp_state->icount, 0);
}
/*m_cop2->dump(op);
- if (((op >> 26) & 0x3f) == 0x3a)
- {
- m_cop2->dump_dmem();
- }*/
+ if (((op >> 26) & 0x3f) == 0x3a)
+ {
+ m_cop2->dump_dmem();
+ }*/
}
}
diff --git a/src/emu/cpu/rsp/rsp.h b/src/devices/cpu/rsp/rsp.h
index 6bc588c2f01..6bc588c2f01 100644
--- a/src/emu/cpu/rsp/rsp.h
+++ b/src/devices/cpu/rsp/rsp.h
diff --git a/src/emu/cpu/rsp/rsp_dasm.c b/src/devices/cpu/rsp/rsp_dasm.c
index 2f455567588..bf56b240652 100644
--- a/src/emu/cpu/rsp/rsp_dasm.c
+++ b/src/devices/cpu/rsp/rsp_dasm.c
@@ -8,12 +8,21 @@
#include "emu.h"
+/*static const char *const reg[32] =
+{
+ "0", "r1", "r2", "r3", "r4", "r5", "r6", "r7",
+ "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
+ "r16", "r17", "r18", "r19", "r20", "r21", "r22", "r23",
+ "r24", "r25", "r26", "r27", "r28", "r29", "r30", "r31"
+};
+*/
+
static const char *const reg[32] =
{
- "0", "r1", "r2", "r3", "r4", "r5", "r6", "r7",
- "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
- "r16", "r17", "r18", "r19", "r20", "r21", "r22", "r23",
- "r24", "r25", "r26", "r27", "r28", "r29", "r30", "r31"
+ "$0", "$at", "$v0", "$v1", "$a0", "$a1", "$a2", "$a3",
+ "$t0", "$t1", "$t2", "$t3", "$t4", "$t5", "$t6", "$t7",
+ "$s0", "$s1", "$s2", "$s3", "$s4", "$s5", "$s6", "$s7",
+ "$t8", "$t9", "$k0", "$k1", "$gp", "$sp", "$fp", "$ra"
};
static const char *const vreg[32] =
diff --git a/src/emu/cpu/rsp/rspcp2.c b/src/devices/cpu/rsp/rspcp2.c
index cde6f3b5be8..ab6afed4cbc 100644
--- a/src/emu/cpu/rsp/rspcp2.c
+++ b/src/devices/cpu/rsp/rspcp2.c
@@ -206,9 +206,9 @@ const rsp_cop2::vec_helpers_t rsp_cop2::m_vec_helpers = {
{ 0xffff, 0xffff, 0x0000, 0x0000 }, // L
{ 0xffff, 0xffff, 0xffff, 0xffff } // D
},
- { // word_reverse
- 0x0203, 0x0001, 0x0607, 0x0405, 0x0a0b, 0x0809, 0x0e0f, 0x0c0d
- }
+ { // word_reverse
+ 0x0203, 0x0001, 0x0607, 0x0405, 0x0a0b, 0x0809, 0x0e0f, 0x0c0d
+ }
};
#if !(defined(__SSSE3__) || defined(_MSC_VER))
@@ -322,7 +322,7 @@ void rsp_cop2::vec_load_group1(UINT32 addr, UINT32 element, UINT16 *regp, rsp_ve
dqm = _mm_shuffle_epi8(dqm, ekey);
#endif
- // Align the data to the DQM so we can mask it in.
+ // Align the data to the DQM so we can mask it in.
#if !(defined(__SSSE3__) || defined(_MSC_VER))
data = sse2_pshufb(data, m_vec_helpers.ror_b2l_keys[ror & 0xF]);
#else
@@ -330,7 +330,7 @@ void rsp_cop2::vec_load_group1(UINT32 addr, UINT32 element, UINT16 *regp, rsp_ve
data = _mm_shuffle_epi8(data, ekey);
#endif
- // Mask and mux in the data.
+ // Mask and mux in the data.
#if (defined(__SSE4_1__) || defined(_MSC_VER))
reg = _mm_blendv_epi8(reg, data, dqm);
#else
@@ -377,7 +377,7 @@ void rsp_cop2::vec_load_group2(UINT32 addr, UINT32 element, UINT16 *regp, rsp_ve
}
// "Unpack" the data.
- rsp_vec_t zero = _mm_setzero_si128();
+ rsp_vec_t zero = _mm_setzero_si128();
data = _mm_unpacklo_epi8(zero, data);
if (request_type != RSP_MEM_REQUEST_PACK)
@@ -385,10 +385,10 @@ void rsp_cop2::vec_load_group2(UINT32 addr, UINT32 element, UINT16 *regp, rsp_ve
data = _mm_srli_epi16(data, 1);
}
- data = _mm_shufflehi_epi16(data, _MM_SHUFFLE(0, 1, 2, 3));
- data = _mm_shufflelo_epi16(data, _MM_SHUFFLE(0, 1, 2, 3));
+ data = _mm_shufflehi_epi16(data, _MM_SHUFFLE(0, 1, 2, 3));
+ data = _mm_shufflelo_epi16(data, _MM_SHUFFLE(0, 1, 2, 3));
- _mm_store_si128((rsp_vec_t *) regp, data);
+ _mm_store_si128((rsp_vec_t *) regp, data);
}
//
@@ -403,7 +403,7 @@ void rsp_cop2::vec_load_group4(UINT32 addr, UINT32 element, UINT16 *regp, rsp_ve
{
UINT32 aligned_addr = addr & 0xFF0;
UINT32 offset = addr & 0xF;
- static UINT32 call_count = 0;
+ static UINT32 call_count = 0;
rsp_vec_t data = _mm_load_si128((rsp_vec_t *) (m_rsp.get_dmem() + aligned_addr));
@@ -439,7 +439,7 @@ void rsp_cop2::vec_load_group4(UINT32 addr, UINT32 element, UINT16 *regp, rsp_ve
_mm_store_si128((rsp_vec_t *) regp, data);
- call_count++;
+ call_count++;
}
//
@@ -542,7 +542,7 @@ void rsp_cop2::vec_store_group2(UINT32 addr, UINT32 element, UINT16 *regp, rsp_v
reg = _mm_shuffle_epi8(reg, dkey);
#endif
- // TODO: Always store in 8-byte chunks to emulate wraparound.
+ // TODO: Always store in 8-byte chunks to emulate wraparound.
_mm_storel_epi64((rsp_vec_t *) (m_rsp.get_dmem() + addr), reg);
}
@@ -574,7 +574,7 @@ void rsp_cop2::vec_store_group4(UINT32 addr, UINT32 element, UINT16 *regp, rsp_v
reg = _mm_shuffle_epi8(reg, ekey);
#endif
- // Mask and mux out the data, write.
+ // Mask and mux out the data, write.
#if (defined(__SSE4_1__) || defined(_MSC_VER))
data = _mm_blendv_epi8(data, reg, dqm);
#else
@@ -702,10 +702,10 @@ rsp_cop2::rsp_cop2(rsp_device &rsp, running_machine &machine)
memset(m_vflag, 0, sizeof(m_vflag));
memset(m_accum, 0, sizeof(m_accum));
#if USE_SIMD
- memset(&m_acc, 0, sizeof(m_acc));
- memset(&m_flags, 0, sizeof(aligned_rsp_2vect_t) * 3);
- m_div_out = 0;
- m_div_in = 0;
+ memset(&m_acc, 0, sizeof(m_acc));
+ memset(&m_flags, 0, sizeof(aligned_rsp_2vect_t) * 3);
+ m_div_out = 0;
+ m_div_in = 0;
#endif
m_rspcop2_state = (internal_rspcop2_state *)rsp.m_cache.alloc_near(sizeof(internal_rspcop2_state));
}
@@ -877,7 +877,7 @@ void rsp_cop2::handle_lwc2(UINT32 op)
//
// Load 1 byte to vector byte index
- //printf("LBV ");
+ //printf("LBV ");
#if USE_SIMD
vec_lbdlsv_sbdlsv(op, m_rsp.m_rsp_state->r[base]);
#else
@@ -896,7 +896,7 @@ void rsp_cop2::handle_lwc2(UINT32 op)
//
// Loads 2 bytes starting from vector byte index
- //printf("LSV ");
+ //printf("LSV ");
#if USE_SIMD
vec_lbdlsv_sbdlsv(op, m_rsp.m_rsp_state->r[base]);
#else
@@ -922,7 +922,7 @@ void rsp_cop2::handle_lwc2(UINT32 op)
//
// Loads 4 bytes starting from vector byte index
- //printf("LLV ");
+ //printf("LLV ");
#if USE_SIMD
vec_lbdlsv_sbdlsv(op, m_rsp.m_rsp_state->r[base]);
#else
@@ -948,7 +948,7 @@ void rsp_cop2::handle_lwc2(UINT32 op)
//
// Loads 8 bytes starting from vector byte index
- //printf("LDV ");
+ //printf("LDV ");
#if USE_SIMD
vec_lbdlsv_sbdlsv(op, m_rsp.m_rsp_state->r[base]);
#else
@@ -974,7 +974,7 @@ void rsp_cop2::handle_lwc2(UINT32 op)
//
// Loads up to 16 bytes starting from vector byte index
- //printf("LQV ");
+ //printf("LQV ");
#if USE_SIMD
vec_lqrv_sqrv(op, m_rsp.m_rsp_state->r[base]);
#else
@@ -1001,7 +1001,7 @@ void rsp_cop2::handle_lwc2(UINT32 op)
//
// Stores up to 16 bytes starting from right side until 16-byte boundary
- //printf("LRV ");
+ //printf("LRV ");
#if USE_SIMD
vec_lqrv_sqrv(op, m_rsp.m_rsp_state->r[base]);
#else
@@ -1029,7 +1029,7 @@ void rsp_cop2::handle_lwc2(UINT32 op)
//
// Loads a byte as the upper 8 bits of each element
- //printf("LPV ");
+ //printf("LPV ");
#if USE_SIMD
vec_lfhpuv_sfhpuv(op, m_rsp.m_rsp_state->r[base]);
#else
@@ -1052,7 +1052,7 @@ void rsp_cop2::handle_lwc2(UINT32 op)
//
// Loads a byte as the bits 14-7 of each element
- //printf("LUV ");
+ //printf("LUV ");
#if USE_SIMD
vec_lfhpuv_sfhpuv(op, m_rsp.m_rsp_state->r[base]);
#else
@@ -1075,7 +1075,7 @@ void rsp_cop2::handle_lwc2(UINT32 op)
//
// Loads a byte as the bits 14-7 of each element, with 2-byte stride
- //printf("LHV ");
+ //printf("LHV ");
#if USE_SIMD
vec_lfhpuv_sfhpuv(op, m_rsp.m_rsp_state->r[base]);
#else
@@ -1098,7 +1098,7 @@ void rsp_cop2::handle_lwc2(UINT32 op)
//
// Loads a byte as the bits 14-7 of upper or lower quad, with 4-byte stride
- //printf("LFV ");
+ //printf("LFV ");
#if USE_SIMD
vec_lfhpuv_sfhpuv(op, m_rsp.m_rsp_state->r[base]);
#else
@@ -1127,7 +1127,7 @@ void rsp_cop2::handle_lwc2(UINT32 op)
// Loads the full 128-bit vector starting from vector byte index and wrapping to index 0
// after byte index 15
- //printf("LWV ");
+ //printf("LWV ");
#if USE_SIMD
#else
ea = (base) ? m_rsp.m_rsp_state->r[base] + (offset * 16) : (offset * 16);
@@ -1154,15 +1154,15 @@ void rsp_cop2::handle_lwc2(UINT32 op)
// FIXME: has a small problem with odd indices
- //printf("LTV ");
+ //printf("LTV ");
#if 0
#else
- INT32 index = (op >> 7) & 0xf;
- INT32 offset = (op & 0x7f);
- if (offset & 0x40)
- offset |= 0xffffffc0;
+ INT32 index = (op >> 7) & 0xf;
+ INT32 offset = (op & 0x7f);
+ if (offset & 0x40)
+ offset |= 0xffffffc0;
- INT32 vs = (op >> 16) & 0x1f;
+ INT32 vs = (op >> 16) & 0x1f;
INT32 ve = vs + 8;
if (ve > 32)
ve = 32;
@@ -1225,7 +1225,7 @@ void rsp_cop2::handle_swc2(UINT32 op)
//
// Stores 1 byte from vector byte index
- //printf("SBV ");
+ //printf("SBV ");
#if USE_SIMD
vec_lbdlsv_sbdlsv(op, m_rsp.m_rsp_state->r[base]);
#else
@@ -1244,7 +1244,7 @@ void rsp_cop2::handle_swc2(UINT32 op)
//
// Stores 2 bytes starting from vector byte index
- //printf("SSV ");
+ //printf("SSV ");
#if USE_SIMD
vec_lbdlsv_sbdlsv(op, m_rsp.m_rsp_state->r[base]);
#else
@@ -1270,7 +1270,7 @@ void rsp_cop2::handle_swc2(UINT32 op)
//
// Stores 4 bytes starting from vector byte index
- //printf("SLV ");
+ //printf("SLV ");
#if USE_SIMD
vec_lbdlsv_sbdlsv(op, m_rsp.m_rsp_state->r[base]);
#else
@@ -1296,7 +1296,7 @@ void rsp_cop2::handle_swc2(UINT32 op)
//
// Stores 8 bytes starting from vector byte index
- //printf("SDV ");
+ //printf("SDV ");
#if USE_SIMD
vec_lbdlsv_sbdlsv(op, m_rsp.m_rsp_state->r[base]);
#else
@@ -1322,7 +1322,7 @@ void rsp_cop2::handle_swc2(UINT32 op)
//
// Stores up to 16 bytes starting from vector byte index until 16-byte boundary
- //printf("SQV ");
+ //printf("SQV ");
#if USE_SIMD
vec_lqrv_sqrv(op, m_rsp.m_rsp_state->r[base]);
#else
@@ -1348,7 +1348,7 @@ void rsp_cop2::handle_swc2(UINT32 op)
//
// Stores up to 16 bytes starting from right side until 16-byte boundary
- //printf("SRV ");
+ //printf("SRV ");
#if USE_SIMD
vec_lqrv_sqrv(op, m_rsp.m_rsp_state->r[base]);
#else
@@ -1377,7 +1377,7 @@ void rsp_cop2::handle_swc2(UINT32 op)
//
// Stores upper 8 bits of each element
- //printf("SPV ");
+ //printf("SPV ");
#if USE_SIMD
vec_lfhpuv_sfhpuv(op, m_rsp.m_rsp_state->r[base]);
#else
@@ -1409,7 +1409,7 @@ void rsp_cop2::handle_swc2(UINT32 op)
//
// Stores bits 14-7 of each element
- //printf("SUV ");
+ //printf("SUV ");
#if USE_SIMD
vec_lfhpuv_sfhpuv(op, m_rsp.m_rsp_state->r[base]);
#else
@@ -1441,7 +1441,7 @@ void rsp_cop2::handle_swc2(UINT32 op)
//
// Stores bits 14-7 of each element, with 2-byte stride
- //printf("SHV ");
+ //printf("SHV ");
#if USE_SIMD
vec_lfhpuv_sfhpuv(op, m_rsp.m_rsp_state->r[base]);
#else
@@ -1470,7 +1470,7 @@ void rsp_cop2::handle_swc2(UINT32 op)
// FIXME: only works for index 0 and index 8
- //printf("SFV ");
+ //printf("SFV ");
#if USE_SIMD
vec_lfhpuv_sfhpuv(op, m_rsp.m_rsp_state->r[base]);
#else
@@ -1500,7 +1500,7 @@ void rsp_cop2::handle_swc2(UINT32 op)
// Stores the full 128-bit vector starting from vector byte index and wrapping to index 0
// after byte index 15
- //printf("SWV ");
+ //printf("SWV ");
#if USE_SIMD
#else
ea = (base) ? m_rsp.m_rsp_state->r[base] + (offset * 16) : (offset * 16);
@@ -1528,13 +1528,13 @@ void rsp_cop2::handle_swc2(UINT32 op)
//
// Stores one element from maximum of 8 vectors, while incrementing element index
- //printf("STV ");
+ //printf("STV ");
#if 0
#else
- INT32 index = (op >> 7) & 0xf;
- INT32 offset = (op & 0x7f);
- if (offset & 0x40)
- offset |= 0xffffffc0;
+ INT32 index = (op >> 7) & 0xf;
+ INT32 offset = (op & 0x7f);
+ if (offset & 0x40)
+ offset |= 0xffffffc0;
INT32 vs = (op >> 16) & 0x1f;
INT32 ve = vs + 8;
@@ -1548,7 +1548,7 @@ void rsp_cop2::handle_swc2(UINT32 op)
INT32 eaoffset = (ea & 0xf) + (element * 2);
ea &= ~0xf;
- for (INT32 i = vs; i < ve; i++)
+ for (INT32 i = vs; i < ve; i++)
{
m_rsp.WRITE16(ea + (eaoffset & 0xf), VREG_S(i, element & 0x7));
eaoffset += 2;
@@ -1654,7 +1654,7 @@ void rsp_cop2::handle_vector_ops(UINT32 op)
//
// Multiplies signed integer by signed integer * 2
- //printf("MULF ");
+ //printf("MULF ");
#if USE_SIMD
UINT16 *acc = m_acc.s;
rsp_vec_t acc_lo, acc_mid, acc_hi;
@@ -1706,7 +1706,7 @@ void rsp_cop2::handle_vector_ops(UINT32 op)
// ------------------------------------------------------
//
- //printf("MULU ");
+ //printf("MULU ");
#if USE_SIMD
UINT16 *acc = m_acc.s;
rsp_vec_t acc_lo, acc_mid, acc_hi;
@@ -1762,7 +1762,7 @@ void rsp_cop2::handle_vector_ops(UINT32 op)
// Stores the higher 16 bits of the 32-bit result to accumulator
// The low slice of accumulator is stored into destination element
- //printf("MUDL ");
+ //printf("MUDL ");
#if USE_SIMD
UINT16 *acc = m_acc.s;
rsp_vec_t acc_lo, acc_mid, acc_hi;
@@ -1809,7 +1809,7 @@ void rsp_cop2::handle_vector_ops(UINT32 op)
// The result is stored into accumulator
// The middle slice of accumulator is stored into destination element
- //printf("MUDM ");
+ //printf("MUDM ");
#if USE_SIMD
UINT16 *acc = m_acc.s;
rsp_vec_t acc_lo, acc_mid, acc_hi;
@@ -1857,7 +1857,7 @@ void rsp_cop2::handle_vector_ops(UINT32 op)
// The result is stored into accumulator
// The low slice of accumulator is stored into destination element
- //printf("MUDN ");
+ //printf("MUDN ");
#if USE_SIMD
UINT16 *acc = m_acc.s;
rsp_vec_t acc_lo = read_acc_lo(acc);
@@ -1902,7 +1902,7 @@ void rsp_cop2::handle_vector_ops(UINT32 op)
// The result is stored into highest 32 bits of accumulator, the low slice is zero
// The highest 32 bits of accumulator is saturated into destination element
- //printf("MUDH ");
+ //printf("MUDH ");
#if USE_SIMD
UINT16 *acc = m_acc.s;
rsp_vec_t acc_lo, acc_mid, acc_hi;
@@ -1950,7 +1950,7 @@ void rsp_cop2::handle_vector_ops(UINT32 op)
// Multiplies signed integer by signed integer * 2
// The result is added to accumulator
- //printf("MACF ");
+ //printf("MACF ");
#if USE_SIMD
UINT16 *acc = m_acc.s;
rsp_vec_t acc_lo, acc_mid, acc_hi;
@@ -2001,7 +2001,7 @@ void rsp_cop2::handle_vector_ops(UINT32 op)
// ------------------------------------------------------
//
- //printf("MACU ");
+ //printf("MACU ");
#if USE_SIMD
UINT16 *acc = m_acc.s;
rsp_vec_t acc_lo, acc_mid, acc_hi;
@@ -2071,7 +2071,7 @@ void rsp_cop2::handle_vector_ops(UINT32 op)
// Adds the higher 16 bits of the 32-bit result to accumulator
// The low slice of accumulator is stored into destination element
- //printf("MADL ");
+ //printf("MADL ");
#if USE_SIMD
UINT16 *acc = m_acc.s;
rsp_vec_t acc_lo, acc_mid, acc_hi;
@@ -2120,7 +2120,7 @@ void rsp_cop2::handle_vector_ops(UINT32 op)
// The result is added into accumulator
// The middle slice of accumulator is stored into destination element
- //printf("MADM ");
+ //printf("MADM ");
#if USE_SIMD
UINT16 *acc = m_acc.s;
rsp_vec_t acc_lo, acc_mid, acc_hi;
@@ -2171,7 +2171,7 @@ void rsp_cop2::handle_vector_ops(UINT32 op)
// The result is added into accumulator
// The low slice of accumulator is stored into destination element
- //printf("MADN ");
+ //printf("MADN ");
#if USE_SIMD
UINT16 *acc = m_acc.s;
rsp_vec_t acc_lo, acc_mid, acc_hi;
@@ -2225,7 +2225,7 @@ void rsp_cop2::handle_vector_ops(UINT32 op)
// The result is added into highest 32 bits of accumulator, the low slice is zero
// The highest 32 bits of accumulator is saturated into destination element
- //printf("MADH ");
+ //printf("MADH ");
#if USE_SIMD
UINT16 *acc = m_acc.s;
rsp_vec_t acc_lo, acc_mid, acc_hi;
@@ -2275,7 +2275,7 @@ void rsp_cop2::handle_vector_ops(UINT32 op)
// TODO: check VS2REG == VDREG
- //printf("ADD ");
+ //printf("ADD ");
#if USE_SIMD
rsp_vec_t acc_lo;
UINT16 *acc = m_acc.s;
@@ -2321,7 +2321,7 @@ void rsp_cop2::handle_vector_ops(UINT32 op)
// TODO: check VS2REG == VDREG
- //printf("SUB ");
+ //printf("SUB ");
#if USE_SIMD
rsp_vec_t acc_lo;
UINT16 *acc = m_acc.s;
@@ -2367,7 +2367,7 @@ void rsp_cop2::handle_vector_ops(UINT32 op)
// Changes the sign of source register 2 if source register 1 is negative and stores
// the result to destination register
- //printf("ABS ");
+ //printf("ABS ");
#if USE_SIMD
rsp_vec_t acc_lo;
UINT16 *acc = m_acc.s;
@@ -2423,7 +2423,7 @@ void rsp_cop2::handle_vector_ops(UINT32 op)
// TODO: check VS2REG = VDREG
- //printf("ADDC ");
+ //printf("ADDC ");
#if USE_SIMD
UINT16 *acc = m_acc.s;
rsp_vec_t sn;
@@ -2471,7 +2471,7 @@ void rsp_cop2::handle_vector_ops(UINT32 op)
// TODO: check VS2REG = VDREG
- //printf("SUBC ");
+ //printf("SUBC ");
#if USE_SIMD
UINT16 *acc = m_acc.s;
rsp_vec_t eq, sn;
@@ -2521,7 +2521,7 @@ void rsp_cop2::handle_vector_ops(UINT32 op)
//
// Stores high, middle or low slice of accumulator to destination vector
- //printf("SAW ");
+ //printf("SAW ");
#if USE_SIMD
UINT16 *acc = m_acc.s;
switch (EL)
@@ -2586,7 +2586,7 @@ void rsp_cop2::handle_vector_ops(UINT32 op)
// Sets compare flags if elements in VS1 are less than VS2
// Moves the element in VS2 to destination vector
- //printf("LT ");
+ //printf("LT ");
#if USE_SIMD
UINT16 *acc = m_acc.s;
rsp_vec_t le;
@@ -2655,7 +2655,7 @@ void rsp_cop2::handle_vector_ops(UINT32 op)
// Sets compare flags if elements in VS1 are equal with VS2
// Moves the element in VS2 to destination vector
- //printf("EQ ");
+ //printf("EQ ");
#if USE_SIMD
UINT16 *acc = m_acc.s;
rsp_vec_t le;
@@ -2712,7 +2712,7 @@ void rsp_cop2::handle_vector_ops(UINT32 op)
// Sets compare flags if elements in VS1 are not equal with VS2
// Moves the element in VS2 to destination vector
- //printf("NE ");
+ //printf("NE ");
#if USE_SIMD
UINT16 *acc = m_acc.s;
rsp_vec_t le;
@@ -2770,7 +2770,7 @@ void rsp_cop2::handle_vector_ops(UINT32 op)
// Sets compare flags if elements in VS1 are greater or equal with VS2
// Moves the element in VS2 to destination vector
- //printf("GE ");
+ //printf("GE ");
#if USE_SIMD
UINT16 *acc = m_acc.s;
rsp_vec_t le;
@@ -2827,7 +2827,7 @@ void rsp_cop2::handle_vector_ops(UINT32 op)
//
// Vector clip low
- //printf("CL ");
+ //printf("CL ");
#if USE_SIMD
UINT16 *acc = m_acc.s;
@@ -2944,7 +2944,7 @@ void rsp_cop2::handle_vector_ops(UINT32 op)
//
// Vector clip high
- //printf("CH ");
+ //printf("CH ");
#if USE_SIMD
UINT16 *acc = m_acc.s;
rsp_vec_t ge, le, sign, eq, vce;
@@ -3047,7 +3047,7 @@ void rsp_cop2::handle_vector_ops(UINT32 op)
//
// Vector clip reverse
- //printf("CR ");
+ //printf("CR ");
#if USE_SIMD
UINT16 *acc = m_acc.s;
rsp_vec_t ge, le;
@@ -3125,7 +3125,7 @@ void rsp_cop2::handle_vector_ops(UINT32 op)
//
// Merges two vectors according to compare flags
- //printf("MRG ");
+ //printf("MRG ");
#if USE_SIMD
UINT16 *acc = m_acc.s;
rsp_vec_t le = read_vcc_lo(m_flags[RSP_VCC].s);
@@ -3166,7 +3166,7 @@ void rsp_cop2::handle_vector_ops(UINT32 op)
//
// Bitwise AND of two vector registers
- //printf("AND ");
+ //printf("AND ");
#if USE_SIMD
UINT16 *acc = m_acc.s;
@@ -3196,7 +3196,7 @@ void rsp_cop2::handle_vector_ops(UINT32 op)
//
// Bitwise NOT AND of two vector registers
- //printf("NAND ");
+ //printf("NAND ");
#if USE_SIMD
UINT16 *acc = m_acc.s;
@@ -3226,7 +3226,7 @@ void rsp_cop2::handle_vector_ops(UINT32 op)
//
// Bitwise OR of two vector registers
- //printf("OR ");
+ //printf("OR ");
#if USE_SIMD
UINT16 *acc = m_acc.s;
@@ -3256,7 +3256,7 @@ void rsp_cop2::handle_vector_ops(UINT32 op)
//
// Bitwise NOT OR of two vector registers
- //printf("NOR ");
+ //printf("NOR ");
#if USE_SIMD
UINT16 *acc = m_acc.s;
@@ -3286,7 +3286,7 @@ void rsp_cop2::handle_vector_ops(UINT32 op)
//
// Bitwise XOR of two vector registers
- //printf("XOR ");
+ //printf("XOR ");
#if USE_SIMD
UINT16 *acc = m_acc.s;
@@ -3316,7 +3316,7 @@ void rsp_cop2::handle_vector_ops(UINT32 op)
//
// Bitwise NOT XOR of two vector registers
- //printf("NXOR ");
+ //printf("NXOR ");
#if USE_SIMD
UINT16 *acc = m_acc.s;
@@ -3347,7 +3347,7 @@ void rsp_cop2::handle_vector_ops(UINT32 op)
//
// Calculates reciprocal
- //printf("RCP ");
+ //printf("RCP ");
#if USE_SIMD
write_acc_lo(m_acc.s, vec_load_and_shuffle_operand(m_v[VS2REG].s, EL));
@@ -3418,7 +3418,7 @@ void rsp_cop2::handle_vector_ops(UINT32 op)
//
// Calculates reciprocal low part
- //printf("RCPL ");
+ //printf("RCPL ");
#if USE_SIMD
write_acc_lo(m_acc.s, vec_load_and_shuffle_operand(m_v[VS2REG].s, EL));
@@ -3505,7 +3505,7 @@ void rsp_cop2::handle_vector_ops(UINT32 op)
//
// Calculates reciprocal high part
- //printf("RCPH ");
+ //printf("RCPH ");
#if USE_SIMD
write_acc_lo(m_acc.s, vec_load_and_shuffle_operand(m_v[VS2REG].s, EL));
@@ -3537,7 +3537,7 @@ void rsp_cop2::handle_vector_ops(UINT32 op)
//
// Moves element from vector to destination vector
- //printf("MOV ");
+ //printf("MOV ");
#if USE_SIMD
write_acc_lo(m_acc.s, vec_load_and_shuffle_operand(m_v[VS2REG].s, EL));
m_v[VDREG].v = vec_vmov(VS2REG, EL, VDREG, VS1REG);
@@ -3561,7 +3561,7 @@ void rsp_cop2::handle_vector_ops(UINT32 op)
//
// Calculates reciprocal square-root
- //printf("RSQ ");
+ //printf("RSQ ");
#if USE_SIMD
write_acc_lo(m_acc.s, vec_load_and_shuffle_operand(m_v[VS2REG].s, EL));
@@ -3633,7 +3633,7 @@ void rsp_cop2::handle_vector_ops(UINT32 op)
//
// Calculates reciprocal square-root low part
- //printf("RSQL ");
+ //printf("RSQL ");
#if USE_SIMD
write_acc_lo(m_acc.s, vec_load_and_shuffle_operand(m_v[VS2REG].s, EL));
@@ -3723,7 +3723,7 @@ void rsp_cop2::handle_vector_ops(UINT32 op)
//
// Calculates reciprocal square-root high part
- //printf("RSQH ");
+ //printf("RSQH ");
#if USE_SIMD
write_acc_lo(m_acc.s, vec_load_and_shuffle_operand(m_v[VS2REG].s, EL));
@@ -3754,7 +3754,7 @@ void rsp_cop2::handle_vector_ops(UINT32 op)
//
// Vector null instruction
- //printf("NOP ");
+ //printf("NOP ");
break;
}
@@ -3777,7 +3777,7 @@ void rsp_cop2::handle_cop2(UINT32 op)
// | 010010 | 00000 | TTTTT | DDDDD | IIII | 0000000 |
// ---------------------------------------------------
//
- //printf("MFC2 ");
+ //printf("MFC2 ");
int el = (op >> 7) & 0xf;
UINT16 b1 = VREG_B(RDREG, (el+0) & 0xf);
UINT16 b2 = VREG_B(RDREG, (el+1) & 0xf);
@@ -3792,15 +3792,15 @@ void rsp_cop2::handle_cop2(UINT32 op)
// | 010010 | 00010 | TTTTT | DDDDD | 00000000000 |
// ------------------------------------------------
//
- //printf("CFC2 ");
+ //printf("CFC2 ");
if (RTREG)
{
#if USE_SIMD
- INT32 src = RDREG & 3;
- if (src == 3) {
- src = 2;
- }
- RTVAL = get_flags(m_flags[src].s);
+ INT32 src = RDREG & 3;
+ if (src == 3) {
+ src = 2;
+ }
+ RTVAL = get_flags(m_flags[src].s);
#else
switch(RDREG)
{
@@ -3865,7 +3865,7 @@ void rsp_cop2::handle_cop2(UINT32 op)
// | 010010 | 00100 | TTTTT | DDDDD | IIII | 0000000 |
// ---------------------------------------------------
//
- //printf("MTC2 ");
+ //printf("MTC2 ");
int el = (op >> 7) & 0xf;
W_VREG_B(RDREG, (el+0) & 0xf, (RTVAL >> 8) & 0xff);
W_VREG_B(RDREG, (el+1) & 0xf, (RTVAL >> 0) & 0xff);
@@ -3966,7 +3966,7 @@ void rsp_cop2::handle_cop2(UINT32 op)
case 0x10: case 0x11: case 0x12: case 0x13: case 0x14: case 0x15: case 0x16: case 0x17:
case 0x18: case 0x19: case 0x1a: case 0x1b: case 0x1c: case 0x1d: case 0x1e: case 0x1f:
{
- //printf("V");
+ //printf("V");
handle_vector_ops(op);
break;
}
@@ -4185,38 +4185,38 @@ void rsp_cop2::dump(UINT32 op)
}
#if USE_SIMD
- printf("acc_h: %04x|%04x|%04x|%04x|%04x|%04x|%04x|%04x\n", m_acc.s[0], m_acc.s[1], m_acc.s[2], m_acc.s[3], m_acc.s[4], m_acc.s[5], m_acc.s[6], m_acc.s[7]);
- printf("acc_m: %04x|%04x|%04x|%04x|%04x|%04x|%04x|%04x\n", m_acc.s[8], m_acc.s[9], m_acc.s[10], m_acc.s[11], m_acc.s[12], m_acc.s[13], m_acc.s[14], m_acc.s[15]);
- printf("acc_l: %04x|%04x|%04x|%04x|%04x|%04x|%04x|%04x\n", m_acc.s[16], m_acc.s[17], m_acc.s[18], m_acc.s[19], m_acc.s[20], m_acc.s[21], m_acc.s[22], m_acc.s[23]);
- printf("vcc_hi: %04x|%04x|%04x|%04x|%04x|%04x|%04x|%04x\n", m_flags[RSP_VCC].s[0], m_flags[RSP_VCC].s[1], m_flags[RSP_VCC].s[2], m_flags[RSP_VCC].s[3], m_flags[RSP_VCC].s[4], m_flags[RSP_VCC].s[5], m_flags[RSP_VCC].s[6], m_flags[RSP_VCC].s[7]);
- printf("vcc_lo: %04x|%04x|%04x|%04x|%04x|%04x|%04x|%04x\n", m_flags[RSP_VCC].s[8], m_flags[RSP_VCC].s[9], m_flags[RSP_VCC].s[10], m_flags[RSP_VCC].s[11], m_flags[RSP_VCC].s[12], m_flags[RSP_VCC].s[13], m_flags[RSP_VCC].s[14], m_flags[RSP_VCC].s[15]);
- printf("vco_hi: %04x|%04x|%04x|%04x|%04x|%04x|%04x|%04x\n", m_flags[RSP_VCO].s[0], m_flags[RSP_VCO].s[1], m_flags[RSP_VCO].s[2], m_flags[RSP_VCO].s[3], m_flags[RSP_VCO].s[4], m_flags[RSP_VCO].s[5], m_flags[RSP_VCO].s[6], m_flags[RSP_VCO].s[7]);
- printf("vco_lo: %04x|%04x|%04x|%04x|%04x|%04x|%04x|%04x\n", m_flags[RSP_VCO].s[8], m_flags[RSP_VCO].s[9], m_flags[RSP_VCO].s[10], m_flags[RSP_VCO].s[11], m_flags[RSP_VCO].s[12], m_flags[RSP_VCO].s[13], m_flags[RSP_VCO].s[14], m_flags[RSP_VCO].s[15]);
- printf("vce: %04x|%04x|%04x|%04x|%04x|%04x|%04x|%04x\n", m_flags[RSP_VCE].s[0], m_flags[RSP_VCE].s[1], m_flags[RSP_VCE].s[2], m_flags[RSP_VCE].s[3], m_flags[RSP_VCE].s[4], m_flags[RSP_VCE].s[5], m_flags[RSP_VCE].s[6], m_flags[RSP_VCE].s[7]);
+ printf("acc_h: %04x|%04x|%04x|%04x|%04x|%04x|%04x|%04x\n", m_acc.s[0], m_acc.s[1], m_acc.s[2], m_acc.s[3], m_acc.s[4], m_acc.s[5], m_acc.s[6], m_acc.s[7]);
+ printf("acc_m: %04x|%04x|%04x|%04x|%04x|%04x|%04x|%04x\n", m_acc.s[8], m_acc.s[9], m_acc.s[10], m_acc.s[11], m_acc.s[12], m_acc.s[13], m_acc.s[14], m_acc.s[15]);
+ printf("acc_l: %04x|%04x|%04x|%04x|%04x|%04x|%04x|%04x\n", m_acc.s[16], m_acc.s[17], m_acc.s[18], m_acc.s[19], m_acc.s[20], m_acc.s[21], m_acc.s[22], m_acc.s[23]);
+ printf("vcc_hi: %04x|%04x|%04x|%04x|%04x|%04x|%04x|%04x\n", m_flags[RSP_VCC].s[0], m_flags[RSP_VCC].s[1], m_flags[RSP_VCC].s[2], m_flags[RSP_VCC].s[3], m_flags[RSP_VCC].s[4], m_flags[RSP_VCC].s[5], m_flags[RSP_VCC].s[6], m_flags[RSP_VCC].s[7]);
+ printf("vcc_lo: %04x|%04x|%04x|%04x|%04x|%04x|%04x|%04x\n", m_flags[RSP_VCC].s[8], m_flags[RSP_VCC].s[9], m_flags[RSP_VCC].s[10], m_flags[RSP_VCC].s[11], m_flags[RSP_VCC].s[12], m_flags[RSP_VCC].s[13], m_flags[RSP_VCC].s[14], m_flags[RSP_VCC].s[15]);
+ printf("vco_hi: %04x|%04x|%04x|%04x|%04x|%04x|%04x|%04x\n", m_flags[RSP_VCO].s[0], m_flags[RSP_VCO].s[1], m_flags[RSP_VCO].s[2], m_flags[RSP_VCO].s[3], m_flags[RSP_VCO].s[4], m_flags[RSP_VCO].s[5], m_flags[RSP_VCO].s[6], m_flags[RSP_VCO].s[7]);
+ printf("vco_lo: %04x|%04x|%04x|%04x|%04x|%04x|%04x|%04x\n", m_flags[RSP_VCO].s[8], m_flags[RSP_VCO].s[9], m_flags[RSP_VCO].s[10], m_flags[RSP_VCO].s[11], m_flags[RSP_VCO].s[12], m_flags[RSP_VCO].s[13], m_flags[RSP_VCO].s[14], m_flags[RSP_VCO].s[15]);
+ printf("vce: %04x|%04x|%04x|%04x|%04x|%04x|%04x|%04x\n", m_flags[RSP_VCE].s[0], m_flags[RSP_VCE].s[1], m_flags[RSP_VCE].s[2], m_flags[RSP_VCE].s[3], m_flags[RSP_VCE].s[4], m_flags[RSP_VCE].s[5], m_flags[RSP_VCE].s[6], m_flags[RSP_VCE].s[7]);
#else
- printf("acc_h: %04x|%04x|%04x|%04x|%04x|%04x|%04x|%04x\n", ACCUM_H(0), ACCUM_H(1), ACCUM_H(2), ACCUM_H(3), ACCUM_H(4), ACCUM_H(5), ACCUM_H(6), ACCUM_H(7));
- printf("acc_m: %04x|%04x|%04x|%04x|%04x|%04x|%04x|%04x\n", ACCUM_M(0), ACCUM_M(1), ACCUM_M(2), ACCUM_M(3), ACCUM_M(4), ACCUM_M(5), ACCUM_M(6), ACCUM_M(7));
- printf("acc_l: %04x|%04x|%04x|%04x|%04x|%04x|%04x|%04x\n", ACCUM_L(0), ACCUM_L(1), ACCUM_L(2), ACCUM_L(3), ACCUM_L(4), ACCUM_L(5), ACCUM_L(6), ACCUM_L(7));
- printf("vcc_hi: %04x|%04x|%04x|%04x|%04x|%04x|%04x|%04x\n", m_vflag[4][0], m_vflag[4][1], m_vflag[4][2], m_vflag[4][3], m_vflag[4][4], m_vflag[4][5], m_vflag[4][6], m_vflag[4][7]);
- printf("vcc_lo: %04x|%04x|%04x|%04x|%04x|%04x|%04x|%04x\n", m_vflag[1][0], m_vflag[1][1], m_vflag[1][2], m_vflag[1][3], m_vflag[1][4], m_vflag[1][5], m_vflag[1][6], m_vflag[1][7]);
- printf("vco_hi: %04x|%04x|%04x|%04x|%04x|%04x|%04x|%04x\n", m_vflag[3][0], m_vflag[3][1], m_vflag[3][2], m_vflag[3][3], m_vflag[3][4], m_vflag[3][5], m_vflag[3][6], m_vflag[3][7]);
- printf("vco_lo: %04x|%04x|%04x|%04x|%04x|%04x|%04x|%04x\n", m_vflag[0][0], m_vflag[0][1], m_vflag[0][2], m_vflag[0][3], m_vflag[0][4], m_vflag[0][5], m_vflag[0][6], m_vflag[0][7]);
- printf("vce: %04x|%04x|%04x|%04x|%04x|%04x|%04x|%04x\n", m_vflag[2][0], m_vflag[2][1], m_vflag[2][2], m_vflag[2][3], m_vflag[2][4], m_vflag[2][5], m_vflag[2][6], m_vflag[2][7]);
+ printf("acc_h: %04x|%04x|%04x|%04x|%04x|%04x|%04x|%04x\n", ACCUM_H(0), ACCUM_H(1), ACCUM_H(2), ACCUM_H(3), ACCUM_H(4), ACCUM_H(5), ACCUM_H(6), ACCUM_H(7));
+ printf("acc_m: %04x|%04x|%04x|%04x|%04x|%04x|%04x|%04x\n", ACCUM_M(0), ACCUM_M(1), ACCUM_M(2), ACCUM_M(3), ACCUM_M(4), ACCUM_M(5), ACCUM_M(6), ACCUM_M(7));
+ printf("acc_l: %04x|%04x|%04x|%04x|%04x|%04x|%04x|%04x\n", ACCUM_L(0), ACCUM_L(1), ACCUM_L(2), ACCUM_L(3), ACCUM_L(4), ACCUM_L(5), ACCUM_L(6), ACCUM_L(7));
+ printf("vcc_hi: %04x|%04x|%04x|%04x|%04x|%04x|%04x|%04x\n", m_vflag[4][0], m_vflag[4][1], m_vflag[4][2], m_vflag[4][3], m_vflag[4][4], m_vflag[4][5], m_vflag[4][6], m_vflag[4][7]);
+ printf("vcc_lo: %04x|%04x|%04x|%04x|%04x|%04x|%04x|%04x\n", m_vflag[1][0], m_vflag[1][1], m_vflag[1][2], m_vflag[1][3], m_vflag[1][4], m_vflag[1][5], m_vflag[1][6], m_vflag[1][7]);
+ printf("vco_hi: %04x|%04x|%04x|%04x|%04x|%04x|%04x|%04x\n", m_vflag[3][0], m_vflag[3][1], m_vflag[3][2], m_vflag[3][3], m_vflag[3][4], m_vflag[3][5], m_vflag[3][6], m_vflag[3][7]);
+ printf("vco_lo: %04x|%04x|%04x|%04x|%04x|%04x|%04x|%04x\n", m_vflag[0][0], m_vflag[0][1], m_vflag[0][2], m_vflag[0][3], m_vflag[0][4], m_vflag[0][5], m_vflag[0][6], m_vflag[0][7]);
+ printf("vce: %04x|%04x|%04x|%04x|%04x|%04x|%04x|%04x\n", m_vflag[2][0], m_vflag[2][1], m_vflag[2][2], m_vflag[2][3], m_vflag[2][4], m_vflag[2][5], m_vflag[2][6], m_vflag[2][7]);
#endif
}
void rsp_cop2::dump_dmem()
{
- UINT8* dmem = m_rsp.get_dmem();
- printf("\n");
- for (int i = 0; i < 0x1000; i += 32)
- {
- printf("%04x: ", i);
- for (int j = 0; j < 32; j++)
- {
- printf("%02x ", dmem[i + j]);
- }
- printf("\n");
- }
- printf("\n");
-} \ No newline at end of file
+ UINT8* dmem = m_rsp.get_dmem();
+ printf("\n");
+ for (int i = 0; i < 0x1000; i += 32)
+ {
+ printf("%04x: ", i);
+ for (int j = 0; j < 32; j++)
+ {
+ printf("%02x ", dmem[i + j]);
+ }
+ printf("\n");
+ }
+ printf("\n");
+}
diff --git a/src/emu/cpu/rsp/rspcp2.h b/src/devices/cpu/rsp/rspcp2.h
index c5e01218def..909b0ae4172 100644
--- a/src/emu/cpu/rsp/rspcp2.h
+++ b/src/devices/cpu/rsp/rspcp2.h
@@ -17,21 +17,28 @@
#include "rsp.h"
#include "rspdiv.h"
-#define SIMD_OFF (1)
+#define SIMD_OFF (1)
#if (defined(__SSE2__) || defined(__SSE3__) || defined(__SSSE3__) || defined(__SSE4_1__) || defined(__SSE4_2__))
-#define SSE_AVAILABLE (1)
+#define SSE_AVAILABLE (1)
#else
-#define SSE_AVAILABLE (0)
+#define SSE_AVAILABLE (0)
#endif
#if (SSE_AVAILABLE || defined(_MSC_VER)) && defined(PTR64) && !SIMD_OFF
-#define USE_SIMD (1)
+#define USE_SIMD (1)
#else
-#define USE_SIMD (0)
+#define USE_SIMD (0)
#endif
#if USE_SIMD
+
+#ifdef _MSC_VER
+#define __align16 __declspec(align(16))
+#else
+#define __align16 __attribute__((aligned(16)))
+#endif
+
#if (defined(__SSE4_2__) || defined(_MSC_VER))
#include <nmmintrin.h>
#elif (defined(__SSE4_1__) || defined(_MSC_VER))
@@ -160,8 +167,8 @@ public:
void log_instruction_execution();
virtual void cfunc_unimplemented_opcode() { }
- void dump(UINT32 op);
- void dump_dmem();
+ void dump(UINT32 op);
+ void dump_dmem();
protected:
virtual int generate_vector_opcode(drcuml_block *block, rsp_device::compiler_state *compiler, const opcode_desc *desc) { return TRUE; }
@@ -181,7 +188,7 @@ protected:
UINT32 m_vres[8]; /* used for temporary vector results */
#if USE_SIMD
- __declspec(align(16)) VECTOR_REG m_v[32];
+ __align16 VECTOR_REG m_v[32];
#else
VECTOR_REG m_v[32];
#endif
@@ -232,9 +239,9 @@ protected:
UINT16 s[24];
};
- __declspec(align(16)) aligned_rsp_1vect_t m_vdqm;
- __declspec(align(16)) aligned_rsp_2vect_t m_flags[3];
- __declspec(align(16)) aligned_rsp_3vect_t m_acc;
+ __align16 aligned_rsp_1vect_t m_vdqm;
+ __align16 aligned_rsp_2vect_t m_flags[3];
+ __align16 aligned_rsp_3vect_t m_acc;
UINT32 m_dp_flag;
typedef struct
@@ -335,7 +342,7 @@ protected:
static inline INT16 get_flags(const UINT16 *flags)
{
- return _mm_movemask_epi8(_mm_packs_epi16(_mm_load_si128((rsp_vec_t*) (flags + (sizeof(rsp_vec_t) >> 1))), _mm_load_si128((rsp_vec_t*) flags)));
+ return _mm_movemask_epi8(_mm_packs_epi16(_mm_load_si128((rsp_vec_t*) (flags + (sizeof(rsp_vec_t) >> 1))), _mm_load_si128((rsp_vec_t*) flags)));
}
static inline rsp_vec_t vec_zero()
@@ -382,8 +389,8 @@ private:
void handle_swc2(UINT32 op);
void handle_vector_ops(UINT32 op);
- UINT32 m_div_in;
- UINT32 m_div_out;
+ UINT32 m_div_in;
+ UINT32 m_div_out;
};
#endif /* __RSPCP2_H__ */
diff --git a/src/emu/cpu/rsp/rspcp2d.c b/src/devices/cpu/rsp/rspcp2d.c
index d7844be717c..da23d00df0d 100644
--- a/src/emu/cpu/rsp/rspcp2d.c
+++ b/src/devices/cpu/rsp/rspcp2d.c
@@ -5,7 +5,7 @@
rspcp2d.c
Universal machine language-based Nintendo/SGI RSP COP2 emulator.
- Written by Harmony of the MESS team.
+ Written by Ryan Holtz
***************************************************************************/
diff --git a/src/emu/cpu/rsp/rspcp2d.h b/src/devices/cpu/rsp/rspcp2d.h
index 831773d5c66..831773d5c66 100644
--- a/src/emu/cpu/rsp/rspcp2d.h
+++ b/src/devices/cpu/rsp/rspcp2d.h
diff --git a/src/emu/cpu/rsp/rspdiv.h b/src/devices/cpu/rsp/rspdiv.h
index 67e4afacd01..67e4afacd01 100644
--- a/src/emu/cpu/rsp/rspdiv.h
+++ b/src/devices/cpu/rsp/rspdiv.h
diff --git a/src/emu/cpu/rsp/rspdrc.c b/src/devices/cpu/rsp/rspdrc.c
index ae719af5959..fc8710d5afd 100644
--- a/src/emu/cpu/rsp/rspdrc.c
+++ b/src/devices/cpu/rsp/rspdrc.c
@@ -5,7 +5,7 @@
rspdrc.c
Universal machine language-based Nintendo/SGI RSP emulator.
- Written by Harmony of the MESS team.
+ Written by Ryan Holtz
SIMD versions of vector multiplication opcodes provided by Marathon Man
of the CEN64 team.
diff --git a/src/emu/cpu/rsp/rspfe.c b/src/devices/cpu/rsp/rspfe.c
index 7a80fb6347b..7a80fb6347b 100644
--- a/src/emu/cpu/rsp/rspfe.c
+++ b/src/devices/cpu/rsp/rspfe.c
diff --git a/src/emu/cpu/rsp/rspfe.h b/src/devices/cpu/rsp/rspfe.h
index bdfd7a83fb7..bdfd7a83fb7 100644
--- a/src/emu/cpu/rsp/rspfe.h
+++ b/src/devices/cpu/rsp/rspfe.h
diff --git a/src/emu/cpu/rsp/vabs.h b/src/devices/cpu/rsp/vabs.h
index 273841b9610..273841b9610 100644
--- a/src/emu/cpu/rsp/vabs.h
+++ b/src/devices/cpu/rsp/vabs.h
diff --git a/src/emu/cpu/rsp/vadd.h b/src/devices/cpu/rsp/vadd.h
index 33b21fd7312..16009e53287 100644
--- a/src/emu/cpu/rsp/vadd.h
+++ b/src/devices/cpu/rsp/vadd.h
@@ -14,4 +14,3 @@ inline rsp_vec_t vec_vadd(rsp_vec_t vs, rsp_vec_t vt, rsp_vec_t carry, rsp_vec_t
minimum = _mm_subs_epi16(minimum, carry);
return _mm_adds_epi16(minimum, maximum);
}
-
diff --git a/src/emu/cpu/rsp/vaddc.h b/src/devices/cpu/rsp/vaddc.h
index 0ebd30cbd31..0ebd30cbd31 100644
--- a/src/emu/cpu/rsp/vaddc.h
+++ b/src/devices/cpu/rsp/vaddc.h
diff --git a/src/emu/cpu/rsp/vand.h b/src/devices/cpu/rsp/vand.h
index 4349227fdd3..4349227fdd3 100644
--- a/src/emu/cpu/rsp/vand.h
+++ b/src/devices/cpu/rsp/vand.h
diff --git a/src/emu/cpu/rsp/vch.h b/src/devices/cpu/rsp/vch.h
index 6abac437a2c..6abac437a2c 100644
--- a/src/emu/cpu/rsp/vch.h
+++ b/src/devices/cpu/rsp/vch.h
diff --git a/src/emu/cpu/rsp/vcl.h b/src/devices/cpu/rsp/vcl.h
index e82a7fde162..e09a13d5a8e 100644
--- a/src/emu/cpu/rsp/vcl.h
+++ b/src/devices/cpu/rsp/vcl.h
@@ -46,7 +46,7 @@ inline rsp_vec_t vec_vcl(rsp_vec_t vs, rsp_vec_t vt, rsp_vec_t zero, rsp_vec_t *
*ge = _mm_or_si128(ge_eq, *ge);
#endif
- // Mux the result based on the value of sign.
+ // Mux the result based on the value of sign.
#if (defined(__SSE4_1__) || defined(_MSC_VER))
rsp_vec_t mux_mask = _mm_blendv_epi8(*ge, *le, sign);
#else
diff --git a/src/emu/cpu/rsp/vcmp.h b/src/devices/cpu/rsp/vcmp.h
index 7ae4dc4c444..7ae4dc4c444 100644
--- a/src/emu/cpu/rsp/vcmp.h
+++ b/src/devices/cpu/rsp/vcmp.h
diff --git a/src/emu/cpu/rsp/vcr.h b/src/devices/cpu/rsp/vcr.h
index 78f78c66244..78f78c66244 100644
--- a/src/emu/cpu/rsp/vcr.h
+++ b/src/devices/cpu/rsp/vcr.h
diff --git a/src/emu/cpu/rsp/vdivh.h b/src/devices/cpu/rsp/vdivh.h
index 286aa8a3ca7..286aa8a3ca7 100644
--- a/src/emu/cpu/rsp/vdivh.h
+++ b/src/devices/cpu/rsp/vdivh.h
diff --git a/src/emu/cpu/rsp/vldst.h b/src/devices/cpu/rsp/vldst.h
index 4a38af029d4..4a38af029d4 100644
--- a/src/emu/cpu/rsp/vldst.h
+++ b/src/devices/cpu/rsp/vldst.h
diff --git a/src/emu/cpu/rsp/vmac.h b/src/devices/cpu/rsp/vmac.h
index ecf921a261c..ecf921a261c 100644
--- a/src/emu/cpu/rsp/vmac.h
+++ b/src/devices/cpu/rsp/vmac.h
diff --git a/src/emu/cpu/rsp/vmov.h b/src/devices/cpu/rsp/vmov.h
index 10a7b1df85f..10a7b1df85f 100644
--- a/src/emu/cpu/rsp/vmov.h
+++ b/src/devices/cpu/rsp/vmov.h
diff --git a/src/emu/cpu/rsp/vmrg.h b/src/devices/cpu/rsp/vmrg.h
index ab9be63ef16..ab9be63ef16 100644
--- a/src/emu/cpu/rsp/vmrg.h
+++ b/src/devices/cpu/rsp/vmrg.h
diff --git a/src/emu/cpu/rsp/vmudh.h b/src/devices/cpu/rsp/vmudh.h
index 6ae77e2ef7e..71c3a38f4fb 100644
--- a/src/emu/cpu/rsp/vmudh.h
+++ b/src/devices/cpu/rsp/vmudh.h
@@ -8,4 +8,3 @@ inline rsp_vec_t rsp_vmudh(rsp_vec_t vs, rsp_vec_t vt, rsp_vec_t *acc_md, rsp_ve
return sclamp_acc_to_mid(*acc_md, *acc_hi);
}
-
diff --git a/src/emu/cpu/rsp/vmul.h b/src/devices/cpu/rsp/vmul.h
index c8bfc1bbb14..c8bfc1bbb14 100644
--- a/src/emu/cpu/rsp/vmul.h
+++ b/src/devices/cpu/rsp/vmul.h
diff --git a/src/emu/cpu/rsp/vmulh.h b/src/devices/cpu/rsp/vmulh.h
index 61140f4744c..aaccf9d41b3 100644
--- a/src/emu/cpu/rsp/vmulh.h
+++ b/src/devices/cpu/rsp/vmulh.h
@@ -28,4 +28,3 @@ inline rsp_vec_t vec_vmadh_vmudh(UINT32 iw, rsp_vec_t vs, rsp_vec_t vt, rsp_vec_
return sclamp_acc_to_mid(*acc_md, *acc_hi);
}
-
diff --git a/src/emu/cpu/rsp/vmull.h b/src/devices/cpu/rsp/vmull.h
index 2052d537aa8..2052d537aa8 100644
--- a/src/emu/cpu/rsp/vmull.h
+++ b/src/devices/cpu/rsp/vmull.h
diff --git a/src/emu/cpu/rsp/vmulm.h b/src/devices/cpu/rsp/vmulm.h
index 0319a2f6dcc..0319a2f6dcc 100644
--- a/src/emu/cpu/rsp/vmulm.h
+++ b/src/devices/cpu/rsp/vmulm.h
diff --git a/src/emu/cpu/rsp/vmuln.h b/src/devices/cpu/rsp/vmuln.h
index b9e012622fc..b9e012622fc 100644
--- a/src/emu/cpu/rsp/vmuln.h
+++ b/src/devices/cpu/rsp/vmuln.h
diff --git a/src/emu/cpu/rsp/vor.h b/src/devices/cpu/rsp/vor.h
index 9f946df7ca9..9f946df7ca9 100644
--- a/src/emu/cpu/rsp/vor.h
+++ b/src/devices/cpu/rsp/vor.h
diff --git a/src/emu/cpu/rsp/vrcpsq.h b/src/devices/cpu/rsp/vrcpsq.h
index 2e2434863e9..930d8237853 100644
--- a/src/emu/cpu/rsp/vrcpsq.h
+++ b/src/devices/cpu/rsp/vrcpsq.h
@@ -26,7 +26,7 @@ inline rsp_vec_t vec_vrcp_vrsq(UINT32 iw, INT32 dp, UINT32 src, UINT32 e, UINT32
}
else if (input == -32768)
{
- result = 0xffff0000;
+ result = 0xffff0000;
}
else // Main case: compute the reciprocal.
{
diff --git a/src/emu/cpu/rsp/vrsq.h b/src/devices/cpu/rsp/vrsq.h
index 140e46dcd01..f657bc42554 100644
--- a/src/emu/cpu/rsp/vrsq.h
+++ b/src/devices/cpu/rsp/vrsq.h
@@ -26,7 +26,7 @@ rsp_vec_t vec_vrsq(INT32 dp, UINT32 src, UINT32 e, UINT32 dest, UINT32 de)
}
else if (input == -32768)
{
- result = 0xffff0000;
+ result = 0xffff0000;
}
else // Main case: compute the reciprocal.
{
diff --git a/src/emu/cpu/rsp/vsub.h b/src/devices/cpu/rsp/vsub.h
index c3df93627c8..c3df93627c8 100644
--- a/src/emu/cpu/rsp/vsub.h
+++ b/src/devices/cpu/rsp/vsub.h
diff --git a/src/emu/cpu/rsp/vsubc.h b/src/devices/cpu/rsp/vsubc.h
index 8632b9462d9..8632b9462d9 100644
--- a/src/emu/cpu/rsp/vsubc.h
+++ b/src/devices/cpu/rsp/vsubc.h
diff --git a/src/emu/cpu/rsp/vxor.h b/src/devices/cpu/rsp/vxor.h
index b11e1b96bc1..b11e1b96bc1 100644
--- a/src/emu/cpu/rsp/vxor.h
+++ b/src/devices/cpu/rsp/vxor.h
diff --git a/src/emu/cpu/s2650/2650dasm.c b/src/devices/cpu/s2650/2650dasm.c
index 6a6f9b1a00c..6a6f9b1a00c 100644
--- a/src/emu/cpu/s2650/2650dasm.c
+++ b/src/devices/cpu/s2650/2650dasm.c
diff --git a/src/emu/cpu/s2650/s2650.c b/src/devices/cpu/s2650/s2650.c
index a67bc2ce5fe..a67bc2ce5fe 100644
--- a/src/emu/cpu/s2650/s2650.c
+++ b/src/devices/cpu/s2650/s2650.c
diff --git a/src/emu/cpu/s2650/s2650.h b/src/devices/cpu/s2650/s2650.h
index e9a0a01c3b9..e9a0a01c3b9 100644
--- a/src/emu/cpu/s2650/s2650.h
+++ b/src/devices/cpu/s2650/s2650.h
diff --git a/src/emu/cpu/s2650/s2650cpu.h b/src/devices/cpu/s2650/s2650cpu.h
index c4ff88f7aff..c4ff88f7aff 100644
--- a/src/emu/cpu/s2650/s2650cpu.h
+++ b/src/devices/cpu/s2650/s2650cpu.h
diff --git a/src/emu/cpu/saturn/satops.inc b/src/devices/cpu/saturn/satops.inc
index 8f7420584e3..8f7420584e3 100644
--- a/src/emu/cpu/saturn/satops.inc
+++ b/src/devices/cpu/saturn/satops.inc
diff --git a/src/emu/cpu/saturn/sattable.inc b/src/devices/cpu/saturn/sattable.inc
index f8b5398973c..f8b5398973c 100644
--- a/src/emu/cpu/saturn/sattable.inc
+++ b/src/devices/cpu/saturn/sattable.inc
diff --git a/src/emu/cpu/saturn/saturn.c b/src/devices/cpu/saturn/saturn.c
index 1d94a3a9ceb..1d94a3a9ceb 100644
--- a/src/emu/cpu/saturn/saturn.c
+++ b/src/devices/cpu/saturn/saturn.c
diff --git a/src/emu/cpu/saturn/saturn.h b/src/devices/cpu/saturn/saturn.h
index 836f832cbf6..836f832cbf6 100644
--- a/src/emu/cpu/saturn/saturn.h
+++ b/src/devices/cpu/saturn/saturn.h
diff --git a/src/emu/cpu/saturn/saturnds.c b/src/devices/cpu/saturn/saturnds.c
index 1dc6eb3d622..1dc6eb3d622 100644
--- a/src/emu/cpu/saturn/saturnds.c
+++ b/src/devices/cpu/saturn/saturnds.c
diff --git a/src/emu/cpu/sc61860/readpc.c b/src/devices/cpu/sc61860/readpc.c
index 46afbbf8a3e..46afbbf8a3e 100644
--- a/src/emu/cpu/sc61860/readpc.c
+++ b/src/devices/cpu/sc61860/readpc.c
diff --git a/src/emu/cpu/sc61860/sc61860.c b/src/devices/cpu/sc61860/sc61860.c
index a36c02a658a..a36c02a658a 100644
--- a/src/emu/cpu/sc61860/sc61860.c
+++ b/src/devices/cpu/sc61860/sc61860.c
diff --git a/src/emu/cpu/sc61860/sc61860.h b/src/devices/cpu/sc61860/sc61860.h
index e34197f83f9..e34197f83f9 100644
--- a/src/emu/cpu/sc61860/sc61860.h
+++ b/src/devices/cpu/sc61860/sc61860.h
diff --git a/src/emu/cpu/sc61860/scdasm.c b/src/devices/cpu/sc61860/scdasm.c
index 047ba7fae30..047ba7fae30 100644
--- a/src/emu/cpu/sc61860/scdasm.c
+++ b/src/devices/cpu/sc61860/scdasm.c
diff --git a/src/emu/cpu/sc61860/scops.inc b/src/devices/cpu/sc61860/scops.inc
index 7bc5b05c987..7bc5b05c987 100644
--- a/src/emu/cpu/sc61860/scops.inc
+++ b/src/devices/cpu/sc61860/scops.inc
diff --git a/src/emu/cpu/sc61860/sctable.inc b/src/devices/cpu/sc61860/sctable.inc
index 2e16dc51033..2e16dc51033 100644
--- a/src/emu/cpu/sc61860/sctable.inc
+++ b/src/devices/cpu/sc61860/sctable.inc
diff --git a/src/emu/cpu/scmp/scmp.c b/src/devices/cpu/scmp/scmp.c
index edd8502c1c5..edd8502c1c5 100644
--- a/src/emu/cpu/scmp/scmp.c
+++ b/src/devices/cpu/scmp/scmp.c
diff --git a/src/emu/cpu/scmp/scmp.h b/src/devices/cpu/scmp/scmp.h
index 86590f93546..86590f93546 100644
--- a/src/emu/cpu/scmp/scmp.h
+++ b/src/devices/cpu/scmp/scmp.h
diff --git a/src/emu/cpu/scmp/scmpdasm.c b/src/devices/cpu/scmp/scmpdasm.c
index f8bcc491ce4..f8bcc491ce4 100644
--- a/src/emu/cpu/scmp/scmpdasm.c
+++ b/src/devices/cpu/scmp/scmpdasm.c
diff --git a/src/emu/cpu/score/score.c b/src/devices/cpu/score/score.c
index a8e3dd210fc..a8e3dd210fc 100644
--- a/src/emu/cpu/score/score.c
+++ b/src/devices/cpu/score/score.c
diff --git a/src/emu/cpu/score/score.h b/src/devices/cpu/score/score.h
index e2c6dc15fef..e2c6dc15fef 100644
--- a/src/emu/cpu/score/score.h
+++ b/src/devices/cpu/score/score.h
diff --git a/src/emu/cpu/score/scoredsm.c b/src/devices/cpu/score/scoredsm.c
index faac8140e51..faac8140e51 100644
--- a/src/emu/cpu/score/scoredsm.c
+++ b/src/devices/cpu/score/scoredsm.c
diff --git a/src/emu/cpu/score/scorem.h b/src/devices/cpu/score/scorem.h
index 0f809e817fe..0f809e817fe 100644
--- a/src/emu/cpu/score/scorem.h
+++ b/src/devices/cpu/score/scorem.h
diff --git a/src/emu/cpu/scudsp/scudsp.c b/src/devices/cpu/scudsp/scudsp.c
index 14d1565caa2..14d1565caa2 100644
--- a/src/emu/cpu/scudsp/scudsp.c
+++ b/src/devices/cpu/scudsp/scudsp.c
diff --git a/src/emu/cpu/scudsp/scudsp.h b/src/devices/cpu/scudsp/scudsp.h
index ac46450a9d4..ac46450a9d4 100644
--- a/src/emu/cpu/scudsp/scudsp.h
+++ b/src/devices/cpu/scudsp/scudsp.h
diff --git a/src/emu/cpu/scudsp/scudspdasm.c b/src/devices/cpu/scudsp/scudspdasm.c
index d5e79a2cbd7..d5e79a2cbd7 100644
--- a/src/emu/cpu/scudsp/scudspdasm.c
+++ b/src/devices/cpu/scudsp/scudspdasm.c
diff --git a/src/emu/cpu/se3208/se3208.c b/src/devices/cpu/se3208/se3208.c
index 98a87335d33..98a87335d33 100644
--- a/src/emu/cpu/se3208/se3208.c
+++ b/src/devices/cpu/se3208/se3208.c
diff --git a/src/emu/cpu/se3208/se3208.h b/src/devices/cpu/se3208/se3208.h
index 696d53affa8..696d53affa8 100644
--- a/src/emu/cpu/se3208/se3208.h
+++ b/src/devices/cpu/se3208/se3208.h
diff --git a/src/emu/cpu/se3208/se3208dis.c b/src/devices/cpu/se3208/se3208dis.c
index 9de811f846a..9de811f846a 100644
--- a/src/emu/cpu/se3208/se3208dis.c
+++ b/src/devices/cpu/se3208/se3208dis.c
diff --git a/src/emu/cpu/sh2/sh2.c b/src/devices/cpu/sh2/sh2.c
index b2ea57f60d4..629d447323e 100644
--- a/src/emu/cpu/sh2/sh2.c
+++ b/src/devices/cpu/sh2/sh2.c
@@ -143,11 +143,11 @@ READ32_MEMBER(sh2_device::sh2_internal_a5)
static ADDRESS_MAP_START( sh7604_map, AS_PROGRAM, 32, sh2_device )
AM_RANGE(0x40000000, 0xbfffffff) AM_READ(sh2_internal_a5)
-/*!
+/*!
@todo: cps3boot breaks with this enabled. Needs customization ...
*/
-// AM_RANGE(0xc0000000, 0xc0000fff) AM_RAM // cache data array
-// AM_RANGE(0xffffff88, 0xffffff8b) AM_READWRITE(dma_dtcr0_r,dma_dtcr0_w)
+// AM_RANGE(0xc0000000, 0xc0000fff) AM_RAM // cache data array
+// AM_RANGE(0xffffff88, 0xffffff8b) AM_READWRITE(dma_dtcr0_r,dma_dtcr0_w)
AM_RANGE(0xe0000000, 0xe00001ff) AM_MIRROR(0x1ffffe00) AM_READWRITE(sh7604_r, sh7604_w)
ADDRESS_MAP_END
@@ -159,14 +159,14 @@ static ADDRESS_MAP_START( sh7021_map, AS_PROGRAM, 32, sh2a_device )
AM_RANGE(0x05ffff48, 0x05ffff4b) AM_READWRITE16(dma_tcr0_r, dma_tcr0_w,0x0000ffff)
AM_RANGE(0x05ffff4c, 0x05ffff4f) AM_READWRITE16(dma_chcr0_r, dma_chcr0_w, 0x0000ffff)
// fall-back
- AM_RANGE(0x05fffe00, 0x05ffffff) AM_READWRITE16(sh7021_r,sh7021_w,0xffffffff) // SH-7032H internal i/o
-// AM_RANGE(0x07000000, 0x070003ff) AM_RAM AM_SHARE("oram")// on-chip RAM, actually at 0xf000000 (1 kb)
-// AM_RANGE(0x0f000000, 0x0f0003ff) AM_RAM AM_SHARE("oram")// on-chip RAM, actually at 0xf000000 (1 kb)
+ AM_RANGE(0x05fffe00, 0x05ffffff) AM_READWRITE16(sh7021_r,sh7021_w,0xffffffff) // SH-7032H internal i/o
+// AM_RANGE(0x07000000, 0x070003ff) AM_RAM AM_SHARE("oram")// on-chip RAM, actually at 0xf000000 (1 kb)
+// AM_RANGE(0x0f000000, 0x0f0003ff) AM_RAM AM_SHARE("oram")// on-chip RAM, actually at 0xf000000 (1 kb)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sh7032_map, AS_PROGRAM, 32, sh1_device )
// fall-back
- AM_RANGE(0x05fffe00, 0x05ffffff) AM_READWRITE16(sh7032_r,sh7032_w,0xffffffff) // SH-7032H internal i/o
+ AM_RANGE(0x05fffe00, 0x05ffffff) AM_READWRITE16(sh7032_r,sh7032_w,0xffffffff) // SH-7032H internal i/o
ADDRESS_MAP_END
sh2_device::sh2_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
@@ -300,7 +300,7 @@ void sh2_device::WB(offs_t A, UINT8 V)
m_program->write_byte(A & AM,V);
return;
}
-
+
m_program->write_byte(A,V);
}
@@ -311,7 +311,7 @@ void sh2_device::WW(offs_t A, UINT16 V)
m_program->write_word(A & AM,V);
return;
}
-
+
m_program->write_word(A,V);
}
@@ -322,7 +322,7 @@ void sh2_device::WL(offs_t A, UINT32 V)
m_program->write_dword(A & AM,V);
return;
}
-
+
/* 0x20000000 no Cache */
/* 0x00000000 read thru Cache if CE bit is 1 */
m_program->write_dword(A,V);
diff --git a/src/emu/cpu/sh2/sh2.h b/src/devices/cpu/sh2/sh2.h
index c53b6baad59..9724c1f51b0 100644
--- a/src/emu/cpu/sh2/sh2.h
+++ b/src/devices/cpu/sh2/sh2.h
@@ -513,17 +513,17 @@ public:
DECLARE_READ16_MEMBER(sh7021_r);
DECLARE_WRITE16_MEMBER(sh7021_w);
void sh7032_dma_exec(int ch);
-
+
private:
UINT16 m_sh7021_regs[0x200];
struct
{
- UINT32 sar; /**< Source Address Register */
- UINT32 dar; /**< Destination Address Register */
- UINT16 tcr; /**< Transfer Count Register */
- UINT16 chcr; /**< Channel Control Register */
+ UINT32 sar; /**< Source Address Register */
+ UINT32 dar; /**< Destination Address Register */
+ UINT16 tcr; /**< Transfer Count Register */
+ UINT16 chcr; /**< Channel Control Register */
} m_dma[4];
- UINT16 m_dmaor; /**< DMA Operation Register (status flags) */
+ UINT16 m_dmaor; /**< DMA Operation Register (status flags) */
};
diff --git a/src/emu/cpu/sh2/sh2comn.c b/src/devices/cpu/sh2/sh2comn.c
index f6883649ee9..1080203494f 100644
--- a/src/emu/cpu/sh2/sh2comn.c
+++ b/src/devices/cpu/sh2/sh2comn.c
@@ -13,6 +13,14 @@
#include "sh2.h"
#include "sh2comn.h"
+
+// for now, make buggy GCC/Mingw STFU about I64FMT
+#if (defined(__MINGW32__) && (__GNUC__ >= 5))
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wformat"
+#pragma GCC diagnostic ignored "-Wformat-extra-args"
+#endif
+
#define VERBOSE 0
#define LOG(x) do { if (VERBOSE) logerror x; } while (0)
@@ -887,47 +895,47 @@ void sh2_device::sh2_exception(const char *message, int irqline)
/*
SH-7021 on-chip device
*/
-
+
void sh2a_device::sh7032_dma_exec(int ch)
{
const short dma_word_size[4] = { 0, +1, -1, 0 };
- UINT8 rs = (m_dma[ch].chcr >> 8) & 0xf; /**< Resource Select bits */
+ UINT8 rs = (m_dma[ch].chcr >> 8) & 0xf; /**< Resource Select bits */
if(rs != 0xc) // Auto-Request
{
logerror("Warning: SH7032 DMA enables non auto-request transfer\n");
return;
}
-
+
// channel enable & master enable
if((m_dma[ch].chcr & 1) == 0 || (m_dmaor & 1) == 0)
return;
-
+
printf("%08x %08x %04x\n",m_dma[ch].sar,m_dma[ch].dar,m_dma[ch].chcr);
- UINT8 dm = (m_dma[ch].chcr >> 14) & 3; /**< Destination Address Mode bits */
- UINT8 sm = (m_dma[ch].chcr >> 12) & 3; /**< Source Address Mode bits */
- bool ts = (m_dma[ch].chcr & 8); /**< Transfer Size bit */
+ UINT8 dm = (m_dma[ch].chcr >> 14) & 3; /**< Destination Address Mode bits */
+ UINT8 sm = (m_dma[ch].chcr >> 12) & 3; /**< Source Address Mode bits */
+ bool ts = (m_dma[ch].chcr & 8); /**< Transfer Size bit */
int src_word_size = dma_word_size[sm] * ((ts == true) ? 2 : 1);
int dst_word_size = dma_word_size[dm] * ((ts == true) ? 2 : 1);
UINT32 src_addr = m_dma[ch].sar;
- UINT32 dst_addr = m_dma[ch].dar;
+ UINT32 dst_addr = m_dma[ch].dar;
UINT32 size_index = m_dma[ch].tcr;
if(size_index == 0)
size_index = 0x10000;
-
+
if(ts == false)
logerror("SH7032: DMA byte mode check\n");
-
+
for(int index = size_index;index>-1;index--)
{
if(ts == true)
m_program->write_word(dst_addr,m_program->read_word(src_addr));
else
m_program->write_byte(dst_addr,m_program->read_byte(src_addr));
-
+
src_addr += src_word_size;
dst_addr += dst_word_size;
}
-
+
m_dma[ch].chcr &= ~1; /**< @todo non-instant DMA */
printf("%02x %02x %02x %1d\n",sm,dm,rs,ts);
}
@@ -1014,3 +1022,6 @@ WRITE16_MEMBER(sh2a_device::sh7021_w)
{
COMBINE_DATA(&m_sh7021_regs[offset]);
}
+#if (defined(__MINGW32__) && (__GNUC__ >= 5))
+#pragma GCC diagnostic pop
+#endif
diff --git a/src/emu/cpu/sh2/sh2comn.h b/src/devices/cpu/sh2/sh2comn.h
index 79d06547462..79d06547462 100644
--- a/src/emu/cpu/sh2/sh2comn.h
+++ b/src/devices/cpu/sh2/sh2comn.h
diff --git a/src/emu/cpu/sh2/sh2dasm.c b/src/devices/cpu/sh2/sh2dasm.c
index e37611b9d28..e37611b9d28 100644
--- a/src/emu/cpu/sh2/sh2dasm.c
+++ b/src/devices/cpu/sh2/sh2dasm.c
diff --git a/src/emu/cpu/sh2/sh2drc.c b/src/devices/cpu/sh2/sh2drc.c
index 4069f3287c7..4069f3287c7 100644
--- a/src/emu/cpu/sh2/sh2drc.c
+++ b/src/devices/cpu/sh2/sh2drc.c
diff --git a/src/emu/cpu/sh2/sh2fe.c b/src/devices/cpu/sh2/sh2fe.c
index 8ea8ccb82d3..8ea8ccb82d3 100644
--- a/src/emu/cpu/sh2/sh2fe.c
+++ b/src/devices/cpu/sh2/sh2fe.c
diff --git a/src/emu/cpu/sh4/sh3comn.c b/src/devices/cpu/sh4/sh3comn.c
index 1fcacaa9165..1fcacaa9165 100644
--- a/src/emu/cpu/sh4/sh3comn.c
+++ b/src/devices/cpu/sh4/sh3comn.c
diff --git a/src/emu/cpu/sh4/sh3comn.h b/src/devices/cpu/sh4/sh3comn.h
index 8aa68c27b26..8aa68c27b26 100644
--- a/src/emu/cpu/sh4/sh3comn.h
+++ b/src/devices/cpu/sh4/sh3comn.h
diff --git a/src/emu/cpu/sh4/sh4.c b/src/devices/cpu/sh4/sh4.c
index e0835b1f9c0..e0835b1f9c0 100644
--- a/src/emu/cpu/sh4/sh4.c
+++ b/src/devices/cpu/sh4/sh4.c
diff --git a/src/emu/cpu/sh4/sh4.h b/src/devices/cpu/sh4/sh4.h
index 2078d1e6435..2078d1e6435 100644
--- a/src/emu/cpu/sh4/sh4.h
+++ b/src/devices/cpu/sh4/sh4.h
diff --git a/src/emu/cpu/sh4/sh4comn.c b/src/devices/cpu/sh4/sh4comn.c
index 5052622e2d4..5052622e2d4 100644
--- a/src/emu/cpu/sh4/sh4comn.c
+++ b/src/devices/cpu/sh4/sh4comn.c
diff --git a/src/emu/cpu/sh4/sh4comn.h b/src/devices/cpu/sh4/sh4comn.h
index 3aaec85692f..3aaec85692f 100644
--- a/src/emu/cpu/sh4/sh4comn.h
+++ b/src/devices/cpu/sh4/sh4comn.h
diff --git a/src/emu/cpu/sh4/sh4dasm.c b/src/devices/cpu/sh4/sh4dasm.c
index cba1bea7bd5..cba1bea7bd5 100644
--- a/src/emu/cpu/sh4/sh4dasm.c
+++ b/src/devices/cpu/sh4/sh4dasm.c
diff --git a/src/emu/cpu/sh4/sh4dmac.c b/src/devices/cpu/sh4/sh4dmac.c
index 6d3fef194ba..6d3fef194ba 100644
--- a/src/emu/cpu/sh4/sh4dmac.c
+++ b/src/devices/cpu/sh4/sh4dmac.c
diff --git a/src/emu/cpu/sh4/sh4dmac.h b/src/devices/cpu/sh4/sh4dmac.h
index 60148653c2b..60148653c2b 100644
--- a/src/emu/cpu/sh4/sh4dmac.h
+++ b/src/devices/cpu/sh4/sh4dmac.h
diff --git a/src/emu/cpu/sh4/sh4regs.h b/src/devices/cpu/sh4/sh4regs.h
index 384f062858e..384f062858e 100644
--- a/src/emu/cpu/sh4/sh4regs.h
+++ b/src/devices/cpu/sh4/sh4regs.h
diff --git a/src/emu/cpu/sh4/sh4tmu.c b/src/devices/cpu/sh4/sh4tmu.c
index 89b59ac42ee..89b59ac42ee 100644
--- a/src/emu/cpu/sh4/sh4tmu.c
+++ b/src/devices/cpu/sh4/sh4tmu.c
diff --git a/src/emu/cpu/sh4/sh4tmu.h b/src/devices/cpu/sh4/sh4tmu.h
index 7bbad37a0c1..7bbad37a0c1 100644
--- a/src/emu/cpu/sh4/sh4tmu.h
+++ b/src/devices/cpu/sh4/sh4tmu.h
diff --git a/src/emu/cpu/sharc/compute.inc b/src/devices/cpu/sharc/compute.inc
index 880b368ad1f..880b368ad1f 100644
--- a/src/emu/cpu/sharc/compute.inc
+++ b/src/devices/cpu/sharc/compute.inc
diff --git a/src/emu/cpu/sharc/sharc.c b/src/devices/cpu/sharc/sharc.c
index 702f36ebe4c..702f36ebe4c 100644
--- a/src/emu/cpu/sharc/sharc.c
+++ b/src/devices/cpu/sharc/sharc.c
diff --git a/src/emu/cpu/sharc/sharc.h b/src/devices/cpu/sharc/sharc.h
index 52f6d91ecd9..52f6d91ecd9 100644
--- a/src/emu/cpu/sharc/sharc.h
+++ b/src/devices/cpu/sharc/sharc.h
diff --git a/src/emu/cpu/sharc/sharcdma.inc b/src/devices/cpu/sharc/sharcdma.inc
index eacede6fb5b..eacede6fb5b 100644
--- a/src/emu/cpu/sharc/sharcdma.inc
+++ b/src/devices/cpu/sharc/sharcdma.inc
diff --git a/src/emu/cpu/sharc/sharcdsm.c b/src/devices/cpu/sharc/sharcdsm.c
index c498dcb78e5..c498dcb78e5 100644
--- a/src/emu/cpu/sharc/sharcdsm.c
+++ b/src/devices/cpu/sharc/sharcdsm.c
diff --git a/src/emu/cpu/sharc/sharcdsm.h b/src/devices/cpu/sharc/sharcdsm.h
index 8407b73cb50..8407b73cb50 100644
--- a/src/emu/cpu/sharc/sharcdsm.h
+++ b/src/devices/cpu/sharc/sharcdsm.h
diff --git a/src/emu/cpu/sharc/sharcmem.inc b/src/devices/cpu/sharc/sharcmem.inc
index 3427e0346b8..3427e0346b8 100644
--- a/src/emu/cpu/sharc/sharcmem.inc
+++ b/src/devices/cpu/sharc/sharcmem.inc
diff --git a/src/emu/cpu/sharc/sharcops.h b/src/devices/cpu/sharc/sharcops.h
index 42c305d8d10..42c305d8d10 100644
--- a/src/emu/cpu/sharc/sharcops.h
+++ b/src/devices/cpu/sharc/sharcops.h
diff --git a/src/emu/cpu/sharc/sharcops.inc b/src/devices/cpu/sharc/sharcops.inc
index f36454f1805..f36454f1805 100644
--- a/src/emu/cpu/sharc/sharcops.inc
+++ b/src/devices/cpu/sharc/sharcops.inc
diff --git a/src/emu/cpu/sm510/sm510.c b/src/devices/cpu/sm510/sm510.c
index 09029709849..ef4f704590b 100644
--- a/src/emu/cpu/sm510/sm510.c
+++ b/src/devices/cpu/sm510/sm510.c
@@ -6,14 +6,14 @@
- SM510: 2.7Kx8 ROM, 128x4 RAM(32x4 for LCD)
- SM511: 4Kx8 ROM, 128x4 RAM(32x4 for LCD), melody controller
- SM512: 4Kx8 ROM, 128x4 RAM(48x4 for LCD), melody controller
-
+
Other chips that may be in the same family, investigate more when one of
them needs to get emulated: SM500, SM530/31, SM4A, SM3903, ..
References:
- 1990 Sharp Microcomputers Data Book
- 1996 Sharp Microcomputer Databook
-
+
TODO:
- proper support for LFSR program counter in debugger
- callback for lcd screen as MAME bitmap (when needed)
@@ -146,12 +146,12 @@ void sm510_base_device::device_reset()
m_op = m_prev_op = 0;
do_branch(3, 7, 0);
m_prev_pc = m_pc;
-
+
// lcd is on (Bp on, BC off, bs(y) off)
m_bp = true;
m_bc = false;
m_y = 0;
-
+
m_r = 0;
m_write_r(0, 0, 0xff);
m_melody_rd &= ~1;
@@ -168,11 +168,11 @@ inline UINT16 sm510_base_device::get_lcd_row(int column, UINT8* ram)
// output 0 if lcd blackpate/bleeder is off, or in case row doesn't exist
if (ram == NULL || m_bc || !m_bp)
return 0;
-
+
UINT16 rowdata = 0;
for (int i = 0; i < 0x10; i++)
rowdata |= (ram[i] >> column & 1) << i;
-
+
return rowdata;
}
@@ -185,12 +185,12 @@ TIMER_CALLBACK_MEMBER(sm510_base_device::lcd_timer_cb)
m_write_sega(h | SM510_PORT_SEGA, get_lcd_row(h, m_lcd_ram_a), 0xffff);
m_write_segb(h | SM510_PORT_SEGB, get_lcd_row(h, m_lcd_ram_b), 0xffff);
m_write_segc(h | SM510_PORT_SEGC, get_lcd_row(h, m_lcd_ram_c), 0xffff);
-
+
// bs output from L/X and Y regs
UINT8 bs = (m_l >> h & 1) | ((m_x*2) >> h & 2);
m_write_segbs(h | SM510_PORT_SEGBS, (m_bc || !m_bp) ? 0 : bs, 0xffff);
}
-
+
// schedule next timeout
m_lcd_timer->adjust(attotime::from_ticks(0x200, unscaled_clock()));
}
@@ -222,10 +222,10 @@ void sm510_base_device::clock_melody()
0, 0, 8, 8, 9, 9, 10,10,11,12,12,13,14,15, 8*2, 8*2,
0, 0, 8, 9, 9, 10,10,11,11,12,13,14,14,15, 8*2, 9*2
};
-
+
UINT8 cmd = m_melody_rom[m_melody_address] & 0x3f;
UINT8 out = 0;
-
+
// clock duty cycle if tone is active
if ((cmd & 0xf) > 1)
{
@@ -245,7 +245,7 @@ void sm510_base_device::clock_melody()
// rest tell signal
m_melody_rd |= 2;
}
-
+
// clock time base on F8(d7)
if ((m_div & 0x7f) == 0)
{
@@ -255,7 +255,7 @@ void sm510_base_device::clock_melody()
if (m_melody_step_count == 0)
m_melody_address++;
}
-
+
// output to R pin
if (out != m_r)
{
@@ -293,7 +293,7 @@ bool sm510_base_device::wake_me_up()
// after waking up, but we leave it unchanged
m_halt = false;
do_branch(1, 0, 0);
-
+
standard_irq_callback(0);
return true;
}
@@ -305,7 +305,7 @@ void sm510_base_device::execute_set_input(int line, int state)
{
if (line != SM510_INPUT_LINE_K)
return;
-
+
// set K input lines active state
m_k_active = (state != 0);
}
@@ -317,7 +317,7 @@ TIMER_CALLBACK_MEMBER(sm510_base_device::div_timer_cb)
// 1S signal on overflow(falling edge of f1)
if (m_div == 0)
m_1s = true;
-
+
clock_melody();
}
diff --git a/src/emu/cpu/sm510/sm510.h b/src/devices/cpu/sm510/sm510.h
index b50cea20957..8dd7446b884 100644
--- a/src/emu/cpu/sm510/sm510.h
+++ b/src/devices/cpu/sm510/sm510.h
@@ -134,7 +134,7 @@ protected:
int m_stack_levels;
UINT16 m_stack[2];
int m_icount;
-
+
UINT8 m_acc;
UINT8 m_bl;
UINT8 m_bm;
@@ -177,7 +177,7 @@ protected:
bool wake_me_up();
void init_divider();
TIMER_CALLBACK_MEMBER(div_timer_cb);
-
+
// other i/o handlers
devcb_read8 m_read_k;
devcb_read_line m_read_ba;
@@ -251,12 +251,12 @@ protected:
void op_rm();
void op_sm();
-
+
void op_pre();
void op_sme();
void op_rme();
void op_tmel();
-
+
void op_skip();
void op_cend();
void op_idiv();
@@ -274,7 +274,7 @@ protected:
virtual offs_t disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options);
virtual void execute_one();
virtual void get_opcode_param();
-
+
virtual void update_w_latch() { m_write_s(0, m_w, 0xff); } // W is connected directly to S
};
diff --git a/src/emu/cpu/sm510/sm510core.c b/src/devices/cpu/sm510/sm510core.c
index bf1449804c3..bf1449804c3 100644
--- a/src/emu/cpu/sm510/sm510core.c
+++ b/src/devices/cpu/sm510/sm510core.c
diff --git a/src/emu/cpu/sm510/sm510d.c b/src/devices/cpu/sm510/sm510d.c
index fec8bc44bbd..70e6b2c8ed6 100644
--- a/src/emu/cpu/sm510/sm510d.c
+++ b/src/devices/cpu/sm510/sm510d.c
@@ -103,7 +103,7 @@ static offs_t sm510_common_disasm(const UINT8 *lut_mnemonic, const UINT8 *lut_ex
param = oprom[s_next_pc[pc & 0x3f]];
len++;
}
-
+
// extended opcode
bool is_extended = (instr == mEXT);
if (is_extended)
@@ -131,12 +131,12 @@ static offs_t sm510_common_disasm(const UINT8 *lut_mnemonic, const UINT8 *lut_ex
UINT16 address = (param << 4 & 0xc00) | (mask << 6 & 0x3c0) | (param & 0x03f);
dst += sprintf(dst, "$%03X", address);
}
-
+
// show param offset
if (bits >= 8)
dst += sprintf(dst, " [$%03X]", pc + s_next_pc[pc & 0x3f]);
}
-
+
return len | s_flags[instr] | DASMFLAG_SUPPORTED;
}
@@ -210,6 +210,6 @@ CPU_DISASSEMBLE(sm511)
UINT8 ext[0x100];
memset(ext, 0, 0x100);
memcpy(ext + 0x30, sm511_extended, 0x10);
-
+
return sm510_common_disasm(sm511_mnemonic, ext, buffer, pc, oprom, opram);
}
diff --git a/src/emu/cpu/sm510/sm510op.c b/src/devices/cpu/sm510/sm510op.c
index bb0f4975511..cf99cbc5ae4 100644
--- a/src/emu/cpu/sm510/sm510op.c
+++ b/src/devices/cpu/sm510/sm510op.c
@@ -57,12 +57,12 @@ inline UINT8 sm510_base_device::bitmask(UINT16 param)
void sm510_base_device::op_lb()
{
// LB x: load BM/BL with 4-bit immediate value (partial)
-
+
// SM510 WIP..
// bm and bl(low) are probably ok!
m_bm = (m_bm & 4) | (m_op & 3);
m_bl = (m_op >> 2 & 3);
-
+
// bl(high) is still unclear, official doc is confusing
UINT8 hi = 0;
switch (m_bl)
diff --git a/src/emu/cpu/sm510/sm511core.c b/src/devices/cpu/sm510/sm511core.c
index d5dcf94cc7c..2347721ff90 100644
--- a/src/emu/cpu/sm510/sm511core.c
+++ b/src/devices/cpu/sm510/sm511core.c
@@ -102,7 +102,7 @@ void sm511_device::execute_one()
switch (m_op)
{
case 0x00: op_rot(); break;
-// case 0x01: op_xxx(); break; // ?
+// case 0x01: op_xxx(); break; // ?
case 0x02: op_sbm(); break;
case 0x03: op_atpl(); break;
case 0x08: op_add(); break;
@@ -119,7 +119,7 @@ void sm511_device::execute_one()
case 0x5a: op_ta0(); break;
case 0x5b: op_tabl(); break;
case 0x5c: op_atx(); break;
-// case 0x5d: op_cend(); break;
+// case 0x5d: op_cend(); break;
case 0x5e: op_tal(); break;
case 0x5f: op_lbl(); break;
@@ -127,14 +127,14 @@ void sm511_device::execute_one()
case 0x62: op_wr(); break;
case 0x63: op_ws(); break;
case 0x64: op_incb(); break;
-// case 0x65: op_idiv(); break;
+// case 0x65: op_idiv(); break;
case 0x66: op_rc(); break;
case 0x67: op_sc(); break;
case 0x6c: op_decb(); break;
case 0x6d: op_ptw(); break;
case 0x6e: op_rtn0(); break;
case 0x6f: op_rtn1(); break;
-
+
// extended opcodes
case 0x60:
m_op = m_op << 8 | m_param;
diff --git a/src/emu/cpu/sm8500/sm8500.c b/src/devices/cpu/sm8500/sm8500.c
index 6159d8a45fa..6159d8a45fa 100644
--- a/src/emu/cpu/sm8500/sm8500.c
+++ b/src/devices/cpu/sm8500/sm8500.c
diff --git a/src/emu/cpu/sm8500/sm8500.h b/src/devices/cpu/sm8500/sm8500.h
index 7cd7df8f6f4..7cd7df8f6f4 100644
--- a/src/emu/cpu/sm8500/sm8500.h
+++ b/src/devices/cpu/sm8500/sm8500.h
diff --git a/src/emu/cpu/sm8500/sm8500d.c b/src/devices/cpu/sm8500/sm8500d.c
index 06b37795d54..06b37795d54 100644
--- a/src/emu/cpu/sm8500/sm8500d.c
+++ b/src/devices/cpu/sm8500/sm8500d.c
diff --git a/src/emu/cpu/sm8500/sm85ops.h b/src/devices/cpu/sm8500/sm85ops.h
index dacfa02482d..dacfa02482d 100644
--- a/src/emu/cpu/sm8500/sm85ops.h
+++ b/src/devices/cpu/sm8500/sm85ops.h
diff --git a/src/emu/cpu/spc700/spc700.c b/src/devices/cpu/spc700/spc700.c
index a21ab8bc27f..a21ab8bc27f 100644
--- a/src/emu/cpu/spc700/spc700.c
+++ b/src/devices/cpu/spc700/spc700.c
diff --git a/src/emu/cpu/spc700/spc700.h b/src/devices/cpu/spc700/spc700.h
index 7177e2a6534..7177e2a6534 100644
--- a/src/emu/cpu/spc700/spc700.h
+++ b/src/devices/cpu/spc700/spc700.h
diff --git a/src/emu/cpu/spc700/spc700ds.c b/src/devices/cpu/spc700/spc700ds.c
index ef5fbd4fe91..ef5fbd4fe91 100644
--- a/src/emu/cpu/spc700/spc700ds.c
+++ b/src/devices/cpu/spc700/spc700ds.c
diff --git a/src/emu/cpu/spc700/spc700ds.h b/src/devices/cpu/spc700/spc700ds.h
index e2135526363..e2135526363 100644
--- a/src/emu/cpu/spc700/spc700ds.h
+++ b/src/devices/cpu/spc700/spc700ds.h
diff --git a/src/emu/cpu/ssem/ssem.c b/src/devices/cpu/ssem/ssem.c
index f5622e5fb38..aae760aa26d 100644
--- a/src/emu/cpu/ssem/ssem.c
+++ b/src/devices/cpu/ssem/ssem.c
@@ -3,7 +3,7 @@
/*
Manchester Small-Scale Experimental Machine (SSEM) emulator
- Written by MooglyGuy
+ Written by Ryan Holtz
*/
#include "emu.h"
diff --git a/src/emu/cpu/ssem/ssem.h b/src/devices/cpu/ssem/ssem.h
index cfcb0e5dc11..79bed8616be 100644
--- a/src/emu/cpu/ssem/ssem.h
+++ b/src/devices/cpu/ssem/ssem.h
@@ -3,7 +3,7 @@
/*
Manchester Small-Scale Experimental Machine (SSEM) emulator
- Written by MooglyGuy
+ Written by Ryan Holtz
*/
#pragma once
diff --git a/src/emu/cpu/ssem/ssemdasm.c b/src/devices/cpu/ssem/ssemdasm.c
index 0a10e4dbe12..7b8a6a47a7b 100644
--- a/src/emu/cpu/ssem/ssemdasm.c
+++ b/src/devices/cpu/ssem/ssemdasm.c
@@ -3,7 +3,7 @@
/*
Manchester Small-Scale Experimental Machine (SSEM) disassembler
- Written by MooglyGuy
+ Written by Ryan Holtz
*/
#include "emu.h"
diff --git a/src/emu/cpu/ssp1601/ssp1601.c b/src/devices/cpu/ssp1601/ssp1601.c
index fb15aa3d84e..fb15aa3d84e 100644
--- a/src/emu/cpu/ssp1601/ssp1601.c
+++ b/src/devices/cpu/ssp1601/ssp1601.c
diff --git a/src/emu/cpu/ssp1601/ssp1601.h b/src/devices/cpu/ssp1601/ssp1601.h
index ef400cac42b..ef400cac42b 100644
--- a/src/emu/cpu/ssp1601/ssp1601.h
+++ b/src/devices/cpu/ssp1601/ssp1601.h
diff --git a/src/emu/cpu/ssp1601/ssp1601d.c b/src/devices/cpu/ssp1601/ssp1601d.c
index c147cbd8534..c147cbd8534 100644
--- a/src/emu/cpu/ssp1601/ssp1601d.c
+++ b/src/devices/cpu/ssp1601/ssp1601d.c
diff --git a/src/emu/cpu/superfx/sfx_dasm.c b/src/devices/cpu/superfx/sfx_dasm.c
index e76e37ee003..e76e37ee003 100644
--- a/src/emu/cpu/superfx/sfx_dasm.c
+++ b/src/devices/cpu/superfx/sfx_dasm.c
diff --git a/src/emu/cpu/superfx/superfx.c b/src/devices/cpu/superfx/superfx.c
index b59be533acd..b59be533acd 100644
--- a/src/emu/cpu/superfx/superfx.c
+++ b/src/devices/cpu/superfx/superfx.c
diff --git a/src/emu/cpu/superfx/superfx.h b/src/devices/cpu/superfx/superfx.h
index 8c3a8b3d2bd..8c3a8b3d2bd 100644
--- a/src/emu/cpu/superfx/superfx.h
+++ b/src/devices/cpu/superfx/superfx.h
diff --git a/src/emu/cpu/t11/t11.c b/src/devices/cpu/t11/t11.c
index 211bbd1f071..4a012ec0505 100644
--- a/src/emu/cpu/t11/t11.c
+++ b/src/devices/cpu/t11/t11.c
@@ -36,8 +36,24 @@
const device_type T11 = &device_creator<t11_device>;
+const device_type K1801VM2 = &device_creator<k1801vm2_device>;
+k1801vm2_device::k1801vm2_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : t11_device(mconfig, K1801VM2, "K1801VM2", tag, owner, clock, "k1801vm2", __FILE__)
+{
+}
+
+t11_device::t11_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source)
+ : cpu_device(mconfig, type, name, tag, owner, clock, shortname, source)
+ , m_program_config("program", ENDIANNESS_LITTLE, 16, 16, 0)
+ , c_initial_mode(0)
+{
+ m_is_octal = true;
+ memset(m_reg, 0x00, sizeof(m_reg));
+ memset(&m_psw, 0x00, sizeof(m_psw));
+}
+
t11_device::t11_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: cpu_device(mconfig, T11, "T11", tag, owner, clock, "t11", __FILE__)
, m_program_config("program", ENDIANNESS_LITTLE, 16, 16, 0)
@@ -294,6 +310,26 @@ void t11_device::state_string_export(const device_state_entry &entry, std::strin
}
}
+void k1801vm2_device::state_string_export(const device_state_entry &entry, std::string &str)
+{
+ switch (entry.index())
+ {
+ case STATE_GENFLAGS:
+ strprintf(str, "%c%c%c%c%c%c%c%c%c",
+ m_psw.b.l & 0x100 ? 'H':'.',
+ m_psw.b.l & 0x80 ? 'P':'.',
+ m_psw.b.l & 0x40 ? '?':'.',
+ m_psw.b.l & 0x20 ? '?':'.',
+ m_psw.b.l & 0x10 ? 'T':'.',
+ m_psw.b.l & 0x08 ? 'N':'.',
+ m_psw.b.l & 0x04 ? 'Z':'.',
+ m_psw.b.l & 0x02 ? 'V':'.',
+ m_psw.b.l & 0x01 ? 'C':'.'
+ );
+ break;
+ }
+}
+
/*************************************
*
@@ -326,6 +362,13 @@ void t11_device::device_reset()
m_wait_state = 0;
}
+void k1801vm2_device::device_reset()
+{
+ t11_device::device_reset();
+
+ PC = RWORD(c_initial_mode);
+ PSW = RWORD(c_initial_mode+2);
+}
/*************************************
diff --git a/src/emu/cpu/t11/t11.h b/src/devices/cpu/t11/t11.h
index d5c8c38fb56..45c4ca86c5f 100644
--- a/src/emu/cpu/t11/t11.h
+++ b/src/devices/cpu/t11/t11.h
@@ -37,6 +37,7 @@ class t11_device : public cpu_device
public:
// construction/destruction
t11_device(const machine_config &mconfig, const char *_tag, device_t *_owner, UINT32 _clock);
+ t11_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source);
// static configuration helpers
static void set_initial_mode(device_t &device, const UINT16 mode) { downcast<t11_device &>(device).c_initial_mode = mode; }
@@ -65,7 +66,7 @@ protected:
virtual UINT32 disasm_max_opcode_bytes() const { return 6; }
virtual offs_t disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options);
-private:
+protected:
address_space_config m_program_config;
UINT16 c_initial_mode;
@@ -1133,8 +1134,23 @@ private:
void sub_ixd_ixd(UINT16 op);
};
+class k1801vm2_device : public t11_device
+{
+public:
+ // construction/destruction
+ k1801vm2_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+protected:
+ // device-level overrides
+ virtual void device_reset();
+
+ // device_state_interface overrides
+ void state_string_export(const device_state_entry &entry, std::string &str);
+};
+
extern const device_type T11;
+extern const device_type K1801VM2;
#endif /* __T11_H__ */
diff --git a/src/emu/cpu/t11/t11dasm.c b/src/devices/cpu/t11/t11dasm.c
index 0bb9da4e7ea..0bb9da4e7ea 100644
--- a/src/emu/cpu/t11/t11dasm.c
+++ b/src/devices/cpu/t11/t11dasm.c
diff --git a/src/emu/cpu/t11/t11ops.inc b/src/devices/cpu/t11/t11ops.inc
index 223159a9357..223159a9357 100644
--- a/src/emu/cpu/t11/t11ops.inc
+++ b/src/devices/cpu/t11/t11ops.inc
diff --git a/src/emu/cpu/t11/t11table.inc b/src/devices/cpu/t11/t11table.inc
index 14a5ec825f1..14a5ec825f1 100644
--- a/src/emu/cpu/t11/t11table.inc
+++ b/src/devices/cpu/t11/t11table.inc
diff --git a/src/emu/cpu/tlcs90/tlcs90.c b/src/devices/cpu/tlcs90/tlcs90.c
index 1e3d5dde80a..1e3d5dde80a 100644
--- a/src/emu/cpu/tlcs90/tlcs90.c
+++ b/src/devices/cpu/tlcs90/tlcs90.c
diff --git a/src/emu/cpu/tlcs90/tlcs90.h b/src/devices/cpu/tlcs90/tlcs90.h
index 5e379cb4425..5e379cb4425 100644
--- a/src/emu/cpu/tlcs90/tlcs90.h
+++ b/src/devices/cpu/tlcs90/tlcs90.h
diff --git a/src/emu/cpu/tlcs900/900tbl.inc b/src/devices/cpu/tlcs900/900tbl.inc
index 2e66f1cf6c9..2e66f1cf6c9 100644
--- a/src/emu/cpu/tlcs900/900tbl.inc
+++ b/src/devices/cpu/tlcs900/900tbl.inc
diff --git a/src/emu/cpu/tlcs900/dasm900.c b/src/devices/cpu/tlcs900/dasm900.c
index 7231a2f4759..7231a2f4759 100644
--- a/src/emu/cpu/tlcs900/dasm900.c
+++ b/src/devices/cpu/tlcs900/dasm900.c
diff --git a/src/emu/cpu/tlcs900/tlcs900.c b/src/devices/cpu/tlcs900/tlcs900.c
index c11dc9c08a9..c11dc9c08a9 100644
--- a/src/emu/cpu/tlcs900/tlcs900.c
+++ b/src/devices/cpu/tlcs900/tlcs900.c
diff --git a/src/emu/cpu/tlcs900/tlcs900.h b/src/devices/cpu/tlcs900/tlcs900.h
index e8235ae5cb5..e8235ae5cb5 100644
--- a/src/emu/cpu/tlcs900/tlcs900.h
+++ b/src/devices/cpu/tlcs900/tlcs900.h
diff --git a/src/emu/cpu/tms0980/tms0980.c b/src/devices/cpu/tms0980/tms0980.c
index 8275f09d815..e487564ef23 100644
--- a/src/emu/cpu/tms0980/tms0980.c
+++ b/src/devices/cpu/tms0980/tms0980.c
@@ -169,6 +169,13 @@ const device_type TMS1670 = &device_creator<tms1670_cpu_device>; // high voltage
// - 16-term output PLA and segment PLA above the RAM (rotate opla 90 degrees)
const device_type TMS0980 = &device_creator<tms0980_cpu_device>; // 28-pin DIP, 9 R pins
+// TMS1980 is a TMS0980 with a TMS1x00 style opla
+// - RAM, ROM, and main instructions PLA is exactly the same as TMS0980
+// - one of the microinstructions redirects to a RSTR instruction, like on TMS0270
+// - 32-term output PLA above the RAM, 7 bits! (rotate opla 270 degrees)
+const device_type TMS1980 = &device_creator<tms1980_cpu_device>; // 28-pin DIP, 7 O pins, ? R pins, high voltage
+// TMS0260 is same?
+
// TMS0970 is a stripped-down version of the TMS0980, itself acting more like a TMS1000
// - RAM and ROM is exactly the same as TMS1000
// - main instructions PLA at the top half, to the right of the midline
@@ -184,7 +191,6 @@ const device_type TMS1990 = &device_creator<tms1990_cpu_device>; // 28-pin DIP,
// - 48-term output PLA above the RAM (rotate opla 90 degrees)
const device_type TMS0270 = &device_creator<tms0270_cpu_device>; // 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 similar? except opla is 32 instead of 48 terms
// internal memory maps
@@ -309,6 +315,10 @@ tms0980_cpu_device::tms0980_cpu_device(const machine_config &mconfig, device_typ
: 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)
{ }
+tms1980_cpu_device::tms1980_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : tms0980_cpu_device(mconfig, TMS1980, "TMS1980", tag, owner, clock, 7, 11, 7, 9, 4, 12, ADDRESS_MAP_NAME(program_11bit_9), 8, ADDRESS_MAP_NAME(data_64x9_as4), "tms1980", __FILE__)
+{ }
+
tms0270_cpu_device::tms0270_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: tms0980_cpu_device(mconfig, TMS0270, "TMS0270", tag, owner, clock, 16, 16, 7, 9, 4, 12, ADDRESS_MAP_NAME(program_11bit_9), 8, ADDRESS_MAP_NAME(data_64x9_as4), "tms0270", __FILE__)
@@ -387,6 +397,23 @@ machine_config_constructor tms0980_cpu_device::device_mconfig_additions() const
}
+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_ADD("mpla", 6, 21, 64)
+ MCFG_PLA_FILEFORMAT(PLA_FMT_BERKELEY)
+ MCFG_PLA_ADD("opla", 5, 7, 32)
+ MCFG_PLA_FILEFORMAT(PLA_FMT_BERKELEY)
+MACHINE_CONFIG_END
+
+machine_config_constructor tms1980_cpu_device::device_mconfig_additions() const
+{
+ return MACHINE_CONFIG_NAME(tms1980);
+}
+
+
static MACHINE_CONFIG_FRAGMENT(tms0270)
// main opcodes PLA, microinstructions PLA, output PLA
@@ -441,8 +468,8 @@ void tms1xxx_cpu_device::state_string_export(const device_state_entry &entry, st
enum
{
- TMS0980_PC=1, TMS0980_SR, TMS0980_PA, TMS0980_PB,
- TMS0980_A, TMS0980_X, TMS0980_Y, TMS0980_STATUS
+ TMS1XXX_PC=1, TMS1XXX_SR, TMS1XXX_PA, TMS1XXX_PB,
+ TMS1XXX_A, TMS1XXX_X, TMS1XXX_Y, TMS1XXX_STATUS
};
void tms1xxx_cpu_device::device_start()
@@ -538,14 +565,14 @@ void tms1xxx_cpu_device::device_start()
save_item(NAME(m_subcycle));
// register state for debugger
- state_add(TMS0980_PC, "PC", m_pc ).formatstr("%02X");
- state_add(TMS0980_SR, "SR", m_sr ).formatstr("%01X");
- state_add(TMS0980_PA, "PA", m_pa ).formatstr("%01X");
- state_add(TMS0980_PB, "PB", m_pb ).formatstr("%01X");
- state_add(TMS0980_A, "A", m_a ).formatstr("%01X");
- state_add(TMS0980_X, "X", m_x ).formatstr("%01X");
- state_add(TMS0980_Y, "Y", m_y ).formatstr("%01X");
- state_add(TMS0980_STATUS, "STATUS", m_status).formatstr("%01X");
+ state_add(TMS1XXX_PC, "PC", m_pc ).formatstr("%02X");
+ state_add(TMS1XXX_SR, "SR", m_sr ).formatstr("%01X");
+ state_add(TMS1XXX_PA, "PA", m_pa ).formatstr("%01X");
+ state_add(TMS1XXX_PB, "PB", m_pb ).formatstr("%01X");
+ state_add(TMS1XXX_A, "A", m_a ).formatstr("%01X");
+ state_add(TMS1XXX_X, "X", m_x ).formatstr("%01X");
+ state_add(TMS1XXX_Y, "Y", m_y ).formatstr("%01X");
+ state_add(TMS1XXX_STATUS, "STATUS", m_status).formatstr("%01X");
state_add(STATE_GENPC, "curpc", m_rom_address).formatstr("%03X").noshow();
state_add(STATE_GENFLAGS, "GENFLAGS", m_sr).formatstr("%8s").noshow();
@@ -735,7 +762,7 @@ UINT32 tms0980_cpu_device::decode_micro(UINT8 sel)
UINT32 mask = m_mpla->read(sel);
mask ^= 0x43fc3; // invert active-negative
- // M_RSTR is specific to TMS02x0, it redirects to F_RSTR
+ // M_RSTR is specific to TMS02x0/TMS1980, it redirects to F_RSTR
// M_UNK1 is specific to TMS0270, unknown yet
// _______ ______ _____ _____ _____ _____ ______ _____ ______ _____ _____
const UINT32 md[22] = { M_NDMTP, M_DMTP, M_AUTY, M_AUTA, M_CKM, M_SSE, M_CKP, M_YTP, M_MTP, M_ATN, M_NATN, M_MTN, M_15TN, M_CKN, M_NE, M_C8, M_SSS, M_CME, M_CIN, M_STO, M_RSTR, M_UNK1 };
@@ -844,16 +871,11 @@ void tms0980_cpu_device::read_opcode()
else
m_micro = m_micro_decode[m_opcode];
- next_pc();
-}
-
-void tms0270_cpu_device::read_opcode()
-{
- tms0980_cpu_device::read_opcode();
-
- // RSTR is on the mpla
+ // TMS02x0/TMS1980: RSTR is on the mpla
if (m_micro & M_RSTR)
m_fixed |= F_RSTR;
+
+ next_pc();
}
@@ -1278,6 +1300,15 @@ void tms1xxx_cpu_device::op_sbl()
}
+// TMS1980-specific
+
+void tms1980_cpu_device::op_tdo()
+{
+ // TDO: transfer accumulator and status(not status_latch!) to O-output
+ write_o_output(m_status << 4 | m_a);
+}
+
+
// TMS0270-specific
void tms0270_cpu_device::op_setr()
diff --git a/src/emu/cpu/tms0980/tms0980.h b/src/devices/cpu/tms0980/tms0980.h
index fb9c3690fdd..7101a614e2f 100644
--- a/src/emu/cpu/tms0980/tms0980.h
+++ b/src/devices/cpu/tms0980/tms0980.h
@@ -405,6 +405,22 @@ protected:
UINT32 decode_micro(UINT8 sel);
};
+class tms1980_cpu_device : public tms0980_cpu_device
+{
+public:
+ tms1980_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+protected:
+ // overrides
+ virtual machine_config_constructor device_mconfig_additions() const;
+
+ virtual void write_o_output(UINT8 index) { tms1xxx_cpu_device::write_o_output(index); }
+ virtual UINT8 read_k_input() { return tms1xxx_cpu_device::read_k_input(); }
+
+ virtual void op_setr() { tms1xxx_cpu_device::op_setr(); }
+ virtual void op_tdo();
+};
+
class tms0270_cpu_device : public tms0980_cpu_device
{
@@ -426,7 +442,6 @@ protected:
virtual void write_o_output(UINT8 index) { tms1xxx_cpu_device::write_o_output(index); }
virtual UINT8 read_k_input();
virtual void dynamic_output();
- virtual void read_opcode();
virtual void op_setr();
virtual void op_rstr();
@@ -466,6 +481,7 @@ extern const device_type TMS1670;
extern const device_type TMS0970;
extern const device_type TMS1990;
extern const device_type TMS0980;
+extern const device_type TMS1980;
extern const device_type TMS0270;
diff --git a/src/emu/cpu/tms0980/tms0980d.c b/src/devices/cpu/tms0980/tms0980d.c
index ea72ba9be2e..ea72ba9be2e 100644
--- a/src/emu/cpu/tms0980/tms0980d.c
+++ b/src/devices/cpu/tms0980/tms0980d.c
diff --git a/src/emu/cpu/tms32010/32010dsm.c b/src/devices/cpu/tms32010/32010dsm.c
index a4c0fd5294c..a4c0fd5294c 100644
--- a/src/emu/cpu/tms32010/32010dsm.c
+++ b/src/devices/cpu/tms32010/32010dsm.c
diff --git a/src/emu/cpu/tms32010/dis32010.c b/src/devices/cpu/tms32010/dis32010.c
index adc18d7c34d..adc18d7c34d 100644
--- a/src/emu/cpu/tms32010/dis32010.c
+++ b/src/devices/cpu/tms32010/dis32010.c
diff --git a/src/emu/cpu/tms32010/tms32010.c b/src/devices/cpu/tms32010/tms32010.c
index e6264d3f1dd..e6264d3f1dd 100644
--- a/src/emu/cpu/tms32010/tms32010.c
+++ b/src/devices/cpu/tms32010/tms32010.c
diff --git a/src/emu/cpu/tms32010/tms32010.h b/src/devices/cpu/tms32010/tms32010.h
index 6059d1efa57..6059d1efa57 100644
--- a/src/emu/cpu/tms32010/tms32010.h
+++ b/src/devices/cpu/tms32010/tms32010.h
diff --git a/src/emu/cpu/tms32025/32025dsm.c b/src/devices/cpu/tms32025/32025dsm.c
index d266c468d65..d266c468d65 100644
--- a/src/emu/cpu/tms32025/32025dsm.c
+++ b/src/devices/cpu/tms32025/32025dsm.c
diff --git a/src/emu/cpu/tms32025/dis32025.c b/src/devices/cpu/tms32025/dis32025.c
index 212c5339627..212c5339627 100644
--- a/src/emu/cpu/tms32025/dis32025.c
+++ b/src/devices/cpu/tms32025/dis32025.c
diff --git a/src/emu/cpu/tms32025/tms32025.c b/src/devices/cpu/tms32025/tms32025.c
index 9acc4a31f8c..9acc4a31f8c 100644
--- a/src/emu/cpu/tms32025/tms32025.c
+++ b/src/devices/cpu/tms32025/tms32025.c
diff --git a/src/emu/cpu/tms32025/tms32025.h b/src/devices/cpu/tms32025/tms32025.h
index 5992012d08e..5992012d08e 100644
--- a/src/emu/cpu/tms32025/tms32025.h
+++ b/src/devices/cpu/tms32025/tms32025.h
diff --git a/src/emu/cpu/tms32031/32031ops.c b/src/devices/cpu/tms32031/32031ops.c
index 1475c5f8839..1475c5f8839 100644
--- a/src/emu/cpu/tms32031/32031ops.c
+++ b/src/devices/cpu/tms32031/32031ops.c
diff --git a/src/emu/cpu/tms32031/dis32031.c b/src/devices/cpu/tms32031/dis32031.c
index bc2bd737318..bc2bd737318 100644
--- a/src/emu/cpu/tms32031/dis32031.c
+++ b/src/devices/cpu/tms32031/dis32031.c
diff --git a/src/emu/cpu/tms32031/tms32031.c b/src/devices/cpu/tms32031/tms32031.c
index 1d8096ce959..1d8096ce959 100644
--- a/src/emu/cpu/tms32031/tms32031.c
+++ b/src/devices/cpu/tms32031/tms32031.c
diff --git a/src/emu/cpu/tms32031/tms32031.h b/src/devices/cpu/tms32031/tms32031.h
index e55fcc2d3b4..e55fcc2d3b4 100644
--- a/src/emu/cpu/tms32031/tms32031.h
+++ b/src/devices/cpu/tms32031/tms32031.h
diff --git a/src/emu/cpu/tms32051/32051ops.c b/src/devices/cpu/tms32051/32051ops.c
index 527c7366394..527c7366394 100644
--- a/src/emu/cpu/tms32051/32051ops.c
+++ b/src/devices/cpu/tms32051/32051ops.c
diff --git a/src/emu/cpu/tms32051/32051ops.h b/src/devices/cpu/tms32051/32051ops.h
index f0a1d7d3d25..f0a1d7d3d25 100644
--- a/src/emu/cpu/tms32051/32051ops.h
+++ b/src/devices/cpu/tms32051/32051ops.h
diff --git a/src/emu/cpu/tms32051/dis32051.c b/src/devices/cpu/tms32051/dis32051.c
index 6f3c4ea2156..6f3c4ea2156 100644
--- a/src/emu/cpu/tms32051/dis32051.c
+++ b/src/devices/cpu/tms32051/dis32051.c
diff --git a/src/emu/cpu/tms32051/tms32051.c b/src/devices/cpu/tms32051/tms32051.c
index 01a5a414022..01a5a414022 100644
--- a/src/emu/cpu/tms32051/tms32051.c
+++ b/src/devices/cpu/tms32051/tms32051.c
diff --git a/src/emu/cpu/tms32051/tms32051.h b/src/devices/cpu/tms32051/tms32051.h
index 43c1008d79c..43c1008d79c 100644
--- a/src/emu/cpu/tms32051/tms32051.h
+++ b/src/devices/cpu/tms32051/tms32051.h
diff --git a/src/emu/cpu/tms32082/dis_mp.c b/src/devices/cpu/tms32082/dis_mp.c
index 1b89eb88129..1b89eb88129 100644
--- a/src/emu/cpu/tms32082/dis_mp.c
+++ b/src/devices/cpu/tms32082/dis_mp.c
diff --git a/src/emu/cpu/tms32082/dis_pp.c b/src/devices/cpu/tms32082/dis_pp.c
index 54f8a6d7004..54f8a6d7004 100644
--- a/src/emu/cpu/tms32082/dis_pp.c
+++ b/src/devices/cpu/tms32082/dis_pp.c
diff --git a/src/emu/cpu/tms32082/mp_ops.c b/src/devices/cpu/tms32082/mp_ops.c
index eb59ca228f1..79c0b401392 100644
--- a/src/emu/cpu/tms32082/mp_ops.c
+++ b/src/devices/cpu/tms32082/mp_ops.c
@@ -465,6 +465,17 @@ void tms32082_mp_device::execute_short_imm()
break;
}
+ case 0x12: // and.tf
+ {
+ int rd = OP_RD();
+ int rs = OP_RS();
+ UINT32 imm = OP_UIMM15();
+
+ if (rd)
+ m_reg[rd] = ~m_reg[rs] & imm;
+ break;
+ }
+
case 0x14: // and.ft
{
int rd = OP_RD();
@@ -681,6 +692,19 @@ void tms32082_mp_device::execute_short_imm()
break;
}
+ case 0x45: // jsr.a
+ {
+ int link = OP_LINK();
+ int base = OP_BASE();
+ INT32 offset = OP_SIMM15();
+
+ if (link)
+ m_reg[link] = m_fetchpc;
+
+ m_fetchpc = m_reg[base] + offset;
+ break;
+ }
+
case 0x48: // bbz
{
int bitnum = OP_BITNUM() ^ 0x1f;
@@ -888,6 +912,38 @@ void tms32082_mp_device::execute_reg_long_imm()
break;
}
+ case 0x1a: // shift.es
+ {
+ int r = (m_ir & (1 << 10));
+ int inv = (m_ir & (1 << 11));
+ int rot = m_reg[OP_ROTATE()];
+ int end = OP_ENDMASK();
+ UINT32 source = m_reg[OP_RS()];
+ int rd = OP_RD();
+
+ UINT32 endmask = end ? SHIFT_MASK[end ? end : 32] : m_reg[OP_ROTATE()+1];
+ if (inv) endmask = ~endmask;
+
+ int shift = r ? 32-rot : rot;
+ UINT32 shiftmask = SHIFT_MASK[shift ? shift : 32];
+ UINT32 compmask = endmask & shiftmask;
+
+ UINT32 res = 0;
+ if (r) // right
+ {
+ res = ROTATE_R(source, rot) & compmask;
+ res = SIGN_EXTEND(res, rot);
+ }
+ else // left
+ {
+ res = ROTATE_L(source, rot) & compmask;
+ }
+
+ if (rd)
+ m_reg[rd] = res;
+ break;
+ }
+
case 0x1c: // shift.iz
{
int r = (m_ir & (1 << 10));
@@ -965,6 +1021,17 @@ void tms32082_mp_device::execute_reg_long_imm()
break;
}
+ case 0x3a:
+ case 0x3b: // or.ft
+ {
+ int rd = OP_RD();
+ int rs = OP_RS();
+
+ if (rd)
+ m_reg[rd] = m_reg[rs] | ~(has_imm ? imm32 : m_reg[OP_SRC1()]);
+ break;
+ }
+
case 0x40:
case 0x41:
case 0x48:
diff --git a/src/emu/cpu/tms32082/tms32082.c b/src/devices/cpu/tms32082/tms32082.c
index 56d97713b45..6ce5a2e2c80 100644
--- a/src/emu/cpu/tms32082/tms32082.c
+++ b/src/devices/cpu/tms32082/tms32082.c
@@ -197,6 +197,9 @@ void tms32082_mp_device::device_start()
state_add(MP_IE, "ie", m_ie).formatstr("%08X");
state_add(MP_INTPEN, "intpen", m_intpen).formatstr("%08X");
+ state_add(MP_TCOUNT, "tcount", m_tcount).formatstr("%08X");
+ state_add(MP_TSCALE, "tscale", m_tscale).formatstr("%08X");
+
state_add(STATE_GENPC, "curpc", m_pc).noshow();
m_program = &space(AS_PROGRAM);
@@ -283,6 +286,55 @@ void tms32082_mp_device::processor_command(UINT32 command)
{
// simulate PP behavior for now...
m_program->write_dword(0x00000084, 3);
+
+ UINT32 num = m_program->read_dword(0x90);
+
+ printf("PP num %d\n", num);
+
+ /*
+ UINT32 ra = 0x1000280;
+
+ printf("FIFO push:\n");
+
+ for (int i=0; i < num; i++)
+ {
+ printf("Entry %d:\n", i);
+ for (int k=0; k < 6; k++)
+ {
+ for (int l=0; l < 4; l++)
+ {
+ UINT32 dd = m_program->read_dword(ra);
+ ra += 4;
+
+ printf("%08X(%f) ", dd, u2f(dd));
+ }
+ printf("\n");
+ }
+ printf("\n");
+ }
+ */
+
+ UINT32 ra = 0x1000280;
+
+ int oldnum = m_program->read_dword(0x600ffffc);
+ UINT32 rb = 0x60000000 + (oldnum * 0x60);
+
+ for (int i=0; i < num; i++)
+ {
+ for (int k=0; k < 24; k++)
+ {
+ UINT32 dd = m_program->read_dword(ra);
+ ra += 4;
+
+ m_program->write_dword(rb, dd);
+ rb += 4;
+ }
+ }
+ m_program->write_dword(0x600ffffc, oldnum+num);
+
+ m_program->write_dword(0x00000090, 0);
+ m_program->write_dword(0x00000094, num);
+
}
}
// PP1
@@ -315,6 +367,9 @@ UINT32 tms32082_mp_device::read_creg(int reg)
case 0xa: // PPERROR
return 0xe0000;
+ case 0xe: // TCOUNT
+ return m_tcount;
+
case 0x4000: // IN0P
return m_in0p;
@@ -358,6 +413,10 @@ void tms32082_mp_device::write_creg(int reg, UINT32 data)
printf("IE = %08X\n", data);
break;
+ case 0xe: // TCOUNT
+ m_tcount = data;
+ break;
+
case 0x4000: // IN0P
m_in0p = data;
break;
@@ -453,6 +512,13 @@ void tms32082_mp_device::execute_run()
m_ir = fetch();
execute();
+ m_tcount--;
+ if (m_tcount < 0)
+ {
+ // TODO: timer interrupt
+ m_tcount = m_tscale;
+ }
+
m_icount--;
};
diff --git a/src/emu/cpu/tms32082/tms32082.h b/src/devices/cpu/tms32082/tms32082.h
index c08fffa3640..494f1580504 100644
--- a/src/emu/cpu/tms32082/tms32082.h
+++ b/src/devices/cpu/tms32082/tms32082.h
@@ -55,7 +55,9 @@ public:
MP_IN1P,
MP_OUTP,
MP_IE,
- MP_INTPEN
+ MP_INTPEN,
+ MP_TCOUNT,
+ MP_TSCALE
};
enum
@@ -127,6 +129,9 @@ protected:
UINT32 m_epc;
UINT32 m_eip;
+ UINT32 m_tcount;
+ UINT32 m_tscale;
+
UINT32 m_param_ram[0x800];
int m_icount;
diff --git a/src/emu/cpu/tms34010/34010dsm.c b/src/devices/cpu/tms34010/34010dsm.c
index 15136885da4..15136885da4 100644
--- a/src/emu/cpu/tms34010/34010dsm.c
+++ b/src/devices/cpu/tms34010/34010dsm.c
diff --git a/src/emu/cpu/tms34010/34010fld.c b/src/devices/cpu/tms34010/34010fld.c
index ca05039dac0..ca05039dac0 100644
--- a/src/emu/cpu/tms34010/34010fld.c
+++ b/src/devices/cpu/tms34010/34010fld.c
diff --git a/src/emu/cpu/tms34010/34010gfx.c b/src/devices/cpu/tms34010/34010gfx.c
index 15394269a77..15394269a77 100644
--- a/src/emu/cpu/tms34010/34010gfx.c
+++ b/src/devices/cpu/tms34010/34010gfx.c
diff --git a/src/emu/cpu/tms34010/34010ops.c b/src/devices/cpu/tms34010/34010ops.c
index 6674d7a1faa..6674d7a1faa 100644
--- a/src/emu/cpu/tms34010/34010ops.c
+++ b/src/devices/cpu/tms34010/34010ops.c
diff --git a/src/emu/cpu/tms34010/34010ops.h b/src/devices/cpu/tms34010/34010ops.h
index 6dad233c034..6dad233c034 100644
--- a/src/emu/cpu/tms34010/34010ops.h
+++ b/src/devices/cpu/tms34010/34010ops.h
diff --git a/src/emu/cpu/tms34010/34010tbl.c b/src/devices/cpu/tms34010/34010tbl.c
index 2cef83dcb9c..2cef83dcb9c 100644
--- a/src/emu/cpu/tms34010/34010tbl.c
+++ b/src/devices/cpu/tms34010/34010tbl.c
diff --git a/src/emu/cpu/tms34010/dis34010.c b/src/devices/cpu/tms34010/dis34010.c
index 19e3338a7d2..19e3338a7d2 100644
--- a/src/emu/cpu/tms34010/dis34010.c
+++ b/src/devices/cpu/tms34010/dis34010.c
diff --git a/src/emu/cpu/tms34010/makefile b/src/devices/cpu/tms34010/makefile
index 9d2d0cedba9..9d2d0cedba9 100644
--- a/src/emu/cpu/tms34010/makefile
+++ b/src/devices/cpu/tms34010/makefile
diff --git a/src/emu/cpu/tms34010/tms34010.c b/src/devices/cpu/tms34010/tms34010.c
index 4faf2967bc8..4faf2967bc8 100644
--- a/src/emu/cpu/tms34010/tms34010.c
+++ b/src/devices/cpu/tms34010/tms34010.c
diff --git a/src/emu/cpu/tms34010/tms34010.h b/src/devices/cpu/tms34010/tms34010.h
index 70d453cda6e..70d453cda6e 100644
--- a/src/emu/cpu/tms34010/tms34010.h
+++ b/src/devices/cpu/tms34010/tms34010.h
diff --git a/src/emu/cpu/tms57002/57002dsm.c b/src/devices/cpu/tms57002/57002dsm.c
index 960054806fc..960054806fc 100644
--- a/src/emu/cpu/tms57002/57002dsm.c
+++ b/src/devices/cpu/tms57002/57002dsm.c
diff --git a/src/emu/cpu/tms57002/tms57002.c b/src/devices/cpu/tms57002/tms57002.c
index fb55dfa916c..fb55dfa916c 100644
--- a/src/emu/cpu/tms57002/tms57002.c
+++ b/src/devices/cpu/tms57002/tms57002.c
diff --git a/src/emu/cpu/tms57002/tms57002.h b/src/devices/cpu/tms57002/tms57002.h
index cd450ab578b..cd450ab578b 100644
--- a/src/emu/cpu/tms57002/tms57002.h
+++ b/src/devices/cpu/tms57002/tms57002.h
diff --git a/src/emu/cpu/tms57002/tms57kdec.c b/src/devices/cpu/tms57002/tms57kdec.c
index b71d0695141..b71d0695141 100644
--- a/src/emu/cpu/tms57002/tms57kdec.c
+++ b/src/devices/cpu/tms57002/tms57kdec.c
diff --git a/src/emu/cpu/tms57002/tmsinstr.lst b/src/devices/cpu/tms57002/tmsinstr.lst
index bcae2967949..bcae2967949 100644
--- a/src/emu/cpu/tms57002/tmsinstr.lst
+++ b/src/devices/cpu/tms57002/tmsinstr.lst
diff --git a/src/emu/cpu/tms57002/tmsmake.py b/src/devices/cpu/tms57002/tmsmake.py
index c822599e7d2..c822599e7d2 100755
--- a/src/emu/cpu/tms57002/tmsmake.py
+++ b/src/devices/cpu/tms57002/tmsmake.py
diff --git a/src/emu/cpu/tms7000/7000dasm.c b/src/devices/cpu/tms7000/7000dasm.c
index e265ef1db7e..e265ef1db7e 100644
--- a/src/emu/cpu/tms7000/7000dasm.c
+++ b/src/devices/cpu/tms7000/7000dasm.c
diff --git a/src/emu/cpu/tms7000/tms7000.c b/src/devices/cpu/tms7000/tms7000.c
index 99451e30d6b..99451e30d6b 100644
--- a/src/emu/cpu/tms7000/tms7000.c
+++ b/src/devices/cpu/tms7000/tms7000.c
diff --git a/src/emu/cpu/tms7000/tms7000.h b/src/devices/cpu/tms7000/tms7000.h
index 92effc0d079..92effc0d079 100644
--- a/src/emu/cpu/tms7000/tms7000.h
+++ b/src/devices/cpu/tms7000/tms7000.h
diff --git a/src/emu/cpu/tms7000/tms70op.inc b/src/devices/cpu/tms7000/tms70op.inc
index f1aeef7be3c..f1aeef7be3c 100644
--- a/src/emu/cpu/tms7000/tms70op.inc
+++ b/src/devices/cpu/tms7000/tms70op.inc
diff --git a/src/emu/cpu/tms9900/9900dasm.c b/src/devices/cpu/tms9900/9900dasm.c
index 7b3153e6c4c..7b3153e6c4c 100644
--- a/src/emu/cpu/tms9900/9900dasm.c
+++ b/src/devices/cpu/tms9900/9900dasm.c
diff --git a/src/emu/cpu/tms9900/99xxcore.h b/src/devices/cpu/tms9900/99xxcore.h
index cb94fac286f..cb94fac286f 100644
--- a/src/emu/cpu/tms9900/99xxcore.h
+++ b/src/devices/cpu/tms9900/99xxcore.h
diff --git a/src/emu/cpu/tms9900/ti990_10.c b/src/devices/cpu/tms9900/ti990_10.c
index b6cd8d32d41..b6cd8d32d41 100644
--- a/src/emu/cpu/tms9900/ti990_10.c
+++ b/src/devices/cpu/tms9900/ti990_10.c
diff --git a/src/emu/cpu/tms9900/ti990_10.h b/src/devices/cpu/tms9900/ti990_10.h
index f1d4e20ce3a..f1d4e20ce3a 100644
--- a/src/emu/cpu/tms9900/ti990_10.h
+++ b/src/devices/cpu/tms9900/ti990_10.h
diff --git a/src/emu/cpu/tms9900/tms9900.c b/src/devices/cpu/tms9900/tms9900.c
index 0029d9cf392..0029d9cf392 100644
--- a/src/emu/cpu/tms9900/tms9900.c
+++ b/src/devices/cpu/tms9900/tms9900.c
diff --git a/src/emu/cpu/tms9900/tms9900.h b/src/devices/cpu/tms9900/tms9900.h
index 8e7f19042c6..8e7f19042c6 100644
--- a/src/emu/cpu/tms9900/tms9900.h
+++ b/src/devices/cpu/tms9900/tms9900.h
diff --git a/src/emu/cpu/tms9900/tms9980a.c b/src/devices/cpu/tms9900/tms9980a.c
index 054a293a403..054a293a403 100644
--- a/src/emu/cpu/tms9900/tms9980a.c
+++ b/src/devices/cpu/tms9900/tms9980a.c
diff --git a/src/emu/cpu/tms9900/tms9980a.h b/src/devices/cpu/tms9900/tms9980a.h
index 82492d6073a..82492d6073a 100644
--- a/src/emu/cpu/tms9900/tms9980a.h
+++ b/src/devices/cpu/tms9900/tms9980a.h
diff --git a/src/emu/cpu/tms9900/tms9995.c b/src/devices/cpu/tms9900/tms9995.c
index d561a0550c9..ae9248fd82d 100644
--- a/src/emu/cpu/tms9900/tms9995.c
+++ b/src/devices/cpu/tms9900/tms9995.c
@@ -1412,7 +1412,7 @@ void tms9995_device::decode(UINT16 inst)
if (decoded == NULL)
{
// not found
- logerror("tms9995: Unknown opcode %04x, will trigger MID\n", inst);
+ logerror("tms9995: Undefined opcode %04x at logical address %04x, will trigger MID\n", inst, PC);
m_decoded[dindex].IR = 0;
m_decoded[dindex].command = MID;
}
diff --git a/src/emu/cpu/tms9900/tms9995.h b/src/devices/cpu/tms9900/tms9995.h
index 81e2e560505..81e2e560505 100644
--- a/src/emu/cpu/tms9900/tms9995.h
+++ b/src/devices/cpu/tms9900/tms9995.h
diff --git a/src/emu/cpu/tms9900/tms99com.h b/src/devices/cpu/tms9900/tms99com.h
index 3a1aeeb57ee..3a1aeeb57ee 100644
--- a/src/emu/cpu/tms9900/tms99com.h
+++ b/src/devices/cpu/tms9900/tms99com.h
diff --git a/src/emu/cpu/ucom4/ucom4.c b/src/devices/cpu/ucom4/ucom4.c
index d480b04fce5..0c6bd280358 100644
--- a/src/emu/cpu/ucom4/ucom4.c
+++ b/src/devices/cpu/ucom4/ucom4.c
@@ -12,6 +12,11 @@
TODO:
- what happens with uCOM-43 opcodes on an uCOM-44/45 MCU?
- what's the data after the ROM data for? (eg. 2000-2047, official ROM size is 2000)
+ - is DPh internally 3-bit or 4-bit? (currently assume 4-bit, it could have effect
+ on specific uCOM-43 exchange opcodes)
+ - RAM access from 0x50-0x7f on data_96x4
+ - invalid port accesses via DPl
+ - documentation is conflicting if IRQ is level or edge triggered
*/
@@ -21,6 +26,7 @@
// uCOM-43 products: 2000x8 ROM, RAM size custom, supports full instruction set
const device_type NEC_D553 = &device_creator<upd553_cpu_device>; // 42-pin PMOS, 35 pins for I/O, Open Drain output, 96x4 RAM
+const device_type NEC_D557L = &device_creator<upd557l_cpu_device>; // 28-pin PMOS, 21 pins for I/O, Open Drain output, 96x4 RAM
const device_type NEC_D650 = &device_creator<upd650_cpu_device>; // 42-pin CMOS, 35 pins for I/O, push-pull output, 96x4 RAM
// uCOM-44 products: 1000x8 ROM, 64x4 RAM, does not support external interrupt
@@ -56,6 +62,10 @@ upd553_cpu_device::upd553_cpu_device(const machine_config &mconfig, const char *
: ucom4_cpu_device(mconfig, NEC_D553, "uPD553", 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", __FILE__)
{ }
+upd557l_cpu_device::upd557l_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 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__)
+{ }
+
upd650_cpu_device::upd650_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 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__)
{ }
@@ -116,10 +126,10 @@ void ucom4_cpu_device::device_start()
m_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(ucom4_cpu_device::simple_timer_cb), this));
// resolve callbacks
- m_read_a.resolve_safe(0xf);
- m_read_b.resolve_safe(0xf);
- m_read_c.resolve_safe(0xf);
- m_read_d.resolve_safe(0xf);
+ m_read_a.resolve_safe(0);
+ m_read_b.resolve_safe(0);
+ m_read_c.resolve_safe(0);
+ m_read_d.resolve_safe(0);
m_write_c.resolve_safe();
m_write_d.resolve_safe();
@@ -203,6 +213,90 @@ void ucom4_cpu_device::device_reset()
//-------------------------------------------------
+// i/o handling
+//-------------------------------------------------
+
+// default:
+// A,B are inputs, C,D are input/output, E,F,G,H,I are output
+
+UINT8 ucom4_cpu_device::input_r(int index)
+{
+ index &= 0xf;
+ UINT8 inp = 0;
+
+ switch (index)
+ {
+ case NEC_UCOM4_PORTA: inp = m_read_a(index, 0xff); break;
+ case NEC_UCOM4_PORTB: inp = m_read_b(index, 0xff); break;
+ case NEC_UCOM4_PORTC: inp = m_read_c(index, 0xff) | m_port_out[index]; break;
+ case NEC_UCOM4_PORTD: inp = m_read_d(index, 0xff) | m_port_out[index]; break;
+
+ default:
+ logerror("%s read from unknown port %c at $%03X\n", tag(), 'A' + index, m_prev_pc);
+ break;
+ }
+
+ return inp & 0xf;
+}
+
+void ucom4_cpu_device::output_w(int index, UINT8 data)
+{
+ index &= 0xf;
+ data &= 0xf;
+
+ switch (index)
+ {
+ case NEC_UCOM4_PORTC: m_write_c(index, data, 0xff); break;
+ case NEC_UCOM4_PORTD: m_write_d(index, data, 0xff); break;
+ case NEC_UCOM4_PORTE: m_write_e(index, data, 0xff); break;
+ case NEC_UCOM4_PORTF: m_write_f(index, data, 0xff); break;
+ case NEC_UCOM4_PORTG: m_write_g(index, data, 0xff); break;
+ case NEC_UCOM4_PORTH: m_write_h(index, data, 0xff); break;
+ case NEC_UCOM4_PORTI: m_write_i(index, data & 7, 0xff); break;
+
+ default:
+ logerror("%s write to unknown port %c = $%X at $%03X\n", tag(), 'A' + index, data, m_prev_pc);
+ break;
+ }
+
+ m_port_out[index] = data;
+}
+
+// uPD557L:
+// ports B,H,I are stripped, port G is reduced to 1 pin
+
+UINT8 upd557l_cpu_device::input_r(int index)
+{
+ index &= 0xf;
+
+ if (index == NEC_UCOM4_PORTB)
+ logerror("%s read from unknown port %c at $%03X\n", tag(), 'A' + index, m_prev_pc);
+ else
+ return ucom4_cpu_device::input_r(index);
+
+ return 0;
+}
+
+void upd557l_cpu_device::output_w(int index, UINT8 data)
+{
+ index &= 0xf;
+ data &= 0xf;
+
+ if (index == NEC_UCOM4_PORTH || index == NEC_UCOM4_PORTI)
+ logerror("%s write to unknown port %c = $%X at $%03X\n", tag(), 'A' + index, data, m_prev_pc);
+ else
+ {
+ // only G0 for port G
+ if (index == NEC_UCOM4_PORTG)
+ data &= 1;
+
+ ucom4_cpu_device::output_w(index, data);
+ }
+}
+
+
+
+//-------------------------------------------------
// interrupt
//-------------------------------------------------
diff --git a/src/emu/cpu/ucom4/ucom4.h b/src/devices/cpu/ucom4/ucom4.h
index e6165bcde28..9b0651b6703 100644
--- a/src/emu/cpu/ucom4/ucom4.h
+++ b/src/devices/cpu/ucom4/ucom4.h
@@ -207,6 +207,9 @@ protected:
devcb_write8 m_write_h;
devcb_write8 m_write_i;
+ virtual UINT8 input_r(int index);
+ virtual void output_w(int index, UINT8 data);
+
// misc internal helpers
void increment_pc();
void fetch_arg();
@@ -216,8 +219,6 @@ protected:
void ram_w(UINT8 data);
void pop_stack();
void push_stack();
- UINT8 input_r(int index);
- void output_w(int index, UINT8 data);
bool check_op_43();
TIMER_CALLBACK_MEMBER( simple_timer_cb );
@@ -318,6 +319,17 @@ public:
};
+class upd557l_cpu_device : public ucom4_cpu_device
+{
+public:
+ upd557l_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+protected:
+ virtual UINT8 input_r(int index);
+ virtual void output_w(int index, UINT8 data);
+};
+
+
class upd650_cpu_device : public ucom4_cpu_device
{
public:
@@ -334,6 +346,7 @@ public:
extern const device_type NEC_D553;
+extern const device_type NEC_D557L;
extern const device_type NEC_D650;
extern const device_type NEC_D552;
diff --git a/src/emu/cpu/ucom4/ucom4d.c b/src/devices/cpu/ucom4/ucom4d.c
index 14adfefbc79..14adfefbc79 100644
--- a/src/emu/cpu/ucom4/ucom4d.c
+++ b/src/devices/cpu/ucom4/ucom4d.c
diff --git a/src/emu/cpu/ucom4/ucom4op.c b/src/devices/cpu/ucom4/ucom4op.c
index 11475ee254d..a9c5c0fe892 100644
--- a/src/emu/cpu/ucom4/ucom4op.c
+++ b/src/devices/cpu/ucom4/ucom4op.c
@@ -34,48 +34,9 @@ void ucom4_cpu_device::push_stack()
m_stack[0] = m_pc;
}
-UINT8 ucom4_cpu_device::input_r(int index)
-{
- index &= 0xf;
- UINT8 inp = 0xf;
-
- switch (index)
- {
- case NEC_UCOM4_PORTA: inp = m_read_a(index, 0xff); break;
- case NEC_UCOM4_PORTB: inp = m_read_b(index, 0xff); break;
- case NEC_UCOM4_PORTC: inp = m_read_c(index, 0xff); break;
- case NEC_UCOM4_PORTD: inp = m_read_d(index, 0xff); break;
-
- default:
- logerror("%s read from unknown port %c at $%03X\n", tag(), 'A' + index, m_prev_pc);
- break;
- }
-
- return inp & 0xf;
-}
-
-void ucom4_cpu_device::output_w(int index, UINT8 data)
-{
- index &= 0xf;
- data &= 0xf;
- switch (index)
- {
- case NEC_UCOM4_PORTC: m_write_c(index, data, 0xff); break;
- case NEC_UCOM4_PORTD: m_write_d(index, data, 0xff); break;
- case NEC_UCOM4_PORTE: m_write_e(index, data, 0xff); break;
- case NEC_UCOM4_PORTF: m_write_f(index, data, 0xff); break;
- case NEC_UCOM4_PORTG: m_write_g(index, data, 0xff); break;
- case NEC_UCOM4_PORTH: m_write_h(index, data, 0xff); break;
- case NEC_UCOM4_PORTI: m_write_i(index, data & 7, 0xff); break;
- default:
- logerror("%s write to unknown port %c = $%X at $%03X\n", tag(), 'A' + index, data & 0xf, m_prev_pc);
- break;
- }
-
- m_port_out[index] = data;
-}
+// basic instruction set
void ucom4_cpu_device::op_illegal()
{
@@ -83,9 +44,6 @@ void ucom4_cpu_device::op_illegal()
}
-
-// basic instruction set
-
// Load
void ucom4_cpu_device::op_li()
diff --git a/src/emu/cpu/uml.c b/src/devices/cpu/uml.c
index f7b0584431f..f7b0584431f 100644
--- a/src/emu/cpu/uml.c
+++ b/src/devices/cpu/uml.c
diff --git a/src/emu/cpu/uml.h b/src/devices/cpu/uml.h
index 96960bd910e..96960bd910e 100644
--- a/src/emu/cpu/uml.h
+++ b/src/devices/cpu/uml.h
diff --git a/src/emu/cpu/unsp/unsp.c b/src/devices/cpu/unsp/unsp.c
index 5b3d89ca822..717ddb2a0de 100644
--- a/src/emu/cpu/unsp/unsp.c
+++ b/src/devices/cpu/unsp/unsp.c
@@ -4,7 +4,7 @@
*
* SunPlus u'nSP core
*
-* by Harmony
+* by Ryan Holtz
*
\**************************/
diff --git a/src/emu/cpu/unsp/unsp.h b/src/devices/cpu/unsp/unsp.h
index 8d1ca02dd7e..219b1f6b9b0 100644
--- a/src/emu/cpu/unsp/unsp.h
+++ b/src/devices/cpu/unsp/unsp.h
@@ -4,7 +4,7 @@
*
* SunPlus u'nSP emulator
*
-* by Harmony
+* by Ryan Holtz
*
\**************************/
diff --git a/src/emu/cpu/unsp/unspdasm.c b/src/devices/cpu/unsp/unspdasm.c
index 19399dbf157..f755a3fcf5a 100644
--- a/src/emu/cpu/unsp/unspdasm.c
+++ b/src/devices/cpu/unsp/unspdasm.c
@@ -4,7 +4,7 @@
*
* SunPlus u'nSP disassembler
*
-* by Harmony
+* by Ryan Holtz
*
\**************************/
diff --git a/src/emu/cpu/upd7725/dasm7725.c b/src/devices/cpu/upd7725/dasm7725.c
index 987002412ac..987002412ac 100644
--- a/src/emu/cpu/upd7725/dasm7725.c
+++ b/src/devices/cpu/upd7725/dasm7725.c
diff --git a/src/emu/cpu/upd7725/upd7725.c b/src/devices/cpu/upd7725/upd7725.c
index d422eae21b0..d422eae21b0 100644
--- a/src/emu/cpu/upd7725/upd7725.c
+++ b/src/devices/cpu/upd7725/upd7725.c
diff --git a/src/emu/cpu/upd7725/upd7725.h b/src/devices/cpu/upd7725/upd7725.h
index d10094073c3..d10094073c3 100644
--- a/src/emu/cpu/upd7725/upd7725.h
+++ b/src/devices/cpu/upd7725/upd7725.h
diff --git a/src/emu/cpu/upd7810/upd7810.c b/src/devices/cpu/upd7810/upd7810.c
index f22ccb07b4f..f22ccb07b4f 100644
--- a/src/emu/cpu/upd7810/upd7810.c
+++ b/src/devices/cpu/upd7810/upd7810.c
diff --git a/src/emu/cpu/upd7810/upd7810.h b/src/devices/cpu/upd7810/upd7810.h
index cdea4f376b8..cdea4f376b8 100644
--- a/src/emu/cpu/upd7810/upd7810.h
+++ b/src/devices/cpu/upd7810/upd7810.h
diff --git a/src/emu/cpu/upd7810/upd7810_dasm.c b/src/devices/cpu/upd7810/upd7810_dasm.c
index 63e7291ff5e..63e7291ff5e 100644
--- a/src/emu/cpu/upd7810/upd7810_dasm.c
+++ b/src/devices/cpu/upd7810/upd7810_dasm.c
diff --git a/src/emu/cpu/upd7810/upd7810_macros.h b/src/devices/cpu/upd7810/upd7810_macros.h
index 27783fb5d9a..27783fb5d9a 100644
--- a/src/emu/cpu/upd7810/upd7810_macros.h
+++ b/src/devices/cpu/upd7810/upd7810_macros.h
diff --git a/src/emu/cpu/upd7810/upd7810_opcodes.c b/src/devices/cpu/upd7810/upd7810_opcodes.c
index ab4589222c1..ab4589222c1 100644
--- a/src/emu/cpu/upd7810/upd7810_opcodes.c
+++ b/src/devices/cpu/upd7810/upd7810_opcodes.c
diff --git a/src/emu/cpu/upd7810/upd7810_table.c b/src/devices/cpu/upd7810/upd7810_table.c
index f150af4fc2f..f150af4fc2f 100644
--- a/src/emu/cpu/upd7810/upd7810_table.c
+++ b/src/devices/cpu/upd7810/upd7810_table.c
diff --git a/src/emu/cpu/v30mz/v30mz.c b/src/devices/cpu/v30mz/v30mz.c
index 3bc7c28236a..3bc7c28236a 100644
--- a/src/emu/cpu/v30mz/v30mz.c
+++ b/src/devices/cpu/v30mz/v30mz.c
diff --git a/src/emu/cpu/v30mz/v30mz.h b/src/devices/cpu/v30mz/v30mz.h
index 35f6ca7dbe8..35f6ca7dbe8 100644
--- a/src/emu/cpu/v30mz/v30mz.h
+++ b/src/devices/cpu/v30mz/v30mz.h
diff --git a/src/emu/cpu/v60/am.inc b/src/devices/cpu/v60/am.inc
index aa9c9687c8e..aa9c9687c8e 100644
--- a/src/emu/cpu/v60/am.inc
+++ b/src/devices/cpu/v60/am.inc
diff --git a/src/emu/cpu/v60/am1.inc b/src/devices/cpu/v60/am1.inc
index cc5e0f4a1fd..cc5e0f4a1fd 100644
--- a/src/emu/cpu/v60/am1.inc
+++ b/src/devices/cpu/v60/am1.inc
diff --git a/src/emu/cpu/v60/am2.inc b/src/devices/cpu/v60/am2.inc
index 2b01d324979..2b01d324979 100644
--- a/src/emu/cpu/v60/am2.inc
+++ b/src/devices/cpu/v60/am2.inc
diff --git a/src/emu/cpu/v60/am3.inc b/src/devices/cpu/v60/am3.inc
index 93af406f266..93af406f266 100644
--- a/src/emu/cpu/v60/am3.inc
+++ b/src/devices/cpu/v60/am3.inc
diff --git a/src/emu/cpu/v60/op12.inc b/src/devices/cpu/v60/op12.inc
index 319e9995595..319e9995595 100644
--- a/src/emu/cpu/v60/op12.inc
+++ b/src/devices/cpu/v60/op12.inc
diff --git a/src/emu/cpu/v60/op2.inc b/src/devices/cpu/v60/op2.inc
index 98a8612f345..98a8612f345 100644
--- a/src/emu/cpu/v60/op2.inc
+++ b/src/devices/cpu/v60/op2.inc
diff --git a/src/emu/cpu/v60/op3.inc b/src/devices/cpu/v60/op3.inc
index 0f014d40909..0f014d40909 100644
--- a/src/emu/cpu/v60/op3.inc
+++ b/src/devices/cpu/v60/op3.inc
diff --git a/src/emu/cpu/v60/op4.inc b/src/devices/cpu/v60/op4.inc
index ca5b4cef4c6..ca5b4cef4c6 100644
--- a/src/emu/cpu/v60/op4.inc
+++ b/src/devices/cpu/v60/op4.inc
diff --git a/src/emu/cpu/v60/op5.inc b/src/devices/cpu/v60/op5.inc
index be6084eb6e1..be6084eb6e1 100644
--- a/src/emu/cpu/v60/op5.inc
+++ b/src/devices/cpu/v60/op5.inc
diff --git a/src/emu/cpu/v60/op6.inc b/src/devices/cpu/v60/op6.inc
index 087680534f9..087680534f9 100644
--- a/src/emu/cpu/v60/op6.inc
+++ b/src/devices/cpu/v60/op6.inc
diff --git a/src/emu/cpu/v60/op7a.inc b/src/devices/cpu/v60/op7a.inc
index 67a7b0fb82c..67a7b0fb82c 100644
--- a/src/emu/cpu/v60/op7a.inc
+++ b/src/devices/cpu/v60/op7a.inc
diff --git a/src/emu/cpu/v60/optable.inc b/src/devices/cpu/v60/optable.inc
index 87de19686bc..87de19686bc 100644
--- a/src/emu/cpu/v60/optable.inc
+++ b/src/devices/cpu/v60/optable.inc
diff --git a/src/emu/cpu/v60/v60.c b/src/devices/cpu/v60/v60.c
index 38b17139fb7..2a770739e25 100644
--- a/src/emu/cpu/v60/v60.c
+++ b/src/devices/cpu/v60/v60.c
@@ -8,6 +8,71 @@
// Emulation for the NEC V60 (uPD70615) and V70 (uPD70632) CPUs
//
+/*
+Taken from the NEC Semiconductor Selection Guide Guide Book (Oct. 1995):
+
+uPD70615 (V60)
+Features:
+- Virtual memory (paging method)
+- Level protection architecture - 4-level hierarchical protection function
+ for system multi-programming.
+- Abundant general registers - Thirty two 32-bit general registers for
+ optimizing compiler
+- Refined instruction set - 2-address method: Arbitrary addressing mode
+ can be used independently for source operand and destination operand.
+- Abundant address modes and data types - Auto increment/decrement mode
+ for string process, and memory indirect addressing for pointer operation
+- High cost-to performance chip
+- No multiprocessor system - no FRM function for increasing system
+ reliability using two or more processors.
+- No V20/V30 simulation mode
+Address bus: 24 bits
+Data bus: 16 bits
+Memory space: 4G bytes
+Operating frequency: 16 MHz
+Package: 120-pin QFP
+
+uPD70616 (V60)
+Features:
+- Virtual memory (paging method)
+- Level protection architecture - 4-level hierarchical protection function
+ for system multi-programming.
+- Abundant general registers - Thirty two 32-bit general registers for
+ optimizing compiler
+- Refined instruction set - 2-address method: Arbitrary addressing mode
+ can be used independently for source operand and destination operand.
+- Abundant address modes and data types - Auto increment/decrement mode
+ for string process, and memory indirect addressing for pointer operation
+- Multiprocessor system - FRM function for increasing system reliability
+ using two or more processors.
+- V20/V30 simulation mode
+Address bus: 24 bits
+Data bus: 16 bits
+Memory space: 4G bytes
+Operating frequency: 16 MHz
+Package: 68-pin PGA
+
+uPD70632 (V70)
+Features:
+- Virtual memory (paging method)
+- Level protection architecture - 4-level hierarchical protection function
+ for system multi-programming.
+- Abundant general registers - Thirty two 32-bit general registers for
+ optimizing compiler
+- Refined instruction set - 2-address method: Arbitrary addressing mode
+ can be used independently for source operand and destination operand.
+- Abundant address modes and data types - Auto increment/decrement mode
+ for string process, and memory indirect addressing for pointer operation
+- Multiprocessor system - FRM function for increasing system reliability
+ using two or more processors.
+- V20/V30 simulation mode
+Address bus: 32 bits
+Data bus: 32 bits
+Memory space: 4G bytes
+Operating frequency: 20 MHz
+Package: 132-pin PGA, 200-pin QFP
+*/
+
#include "emu.h"
#include "debugger.h"
#include "v60.h"
diff --git a/src/emu/cpu/v60/v60.h b/src/devices/cpu/v60/v60.h
index 28cba0b15c9..28cba0b15c9 100644
--- a/src/emu/cpu/v60/v60.h
+++ b/src/devices/cpu/v60/v60.h
diff --git a/src/emu/cpu/v60/v60d.c b/src/devices/cpu/v60/v60d.c
index a32268fc2b4..a32268fc2b4 100644
--- a/src/emu/cpu/v60/v60d.c
+++ b/src/devices/cpu/v60/v60d.c
diff --git a/src/emu/cpu/v810/v810.c b/src/devices/cpu/v810/v810.c
index 9e6db000949..fa41ce71986 100644
--- a/src/emu/cpu/v810/v810.c
+++ b/src/devices/cpu/v810/v810.c
@@ -636,7 +636,7 @@ UINT32 v810_device::opRETI(UINT32 op)
UINT32 v810_device::opHALT(UINT32 op)
{
- printf("V810: HALT @ %X",PC-2);
+ printf("V810: HALT @ %X\n",PC-2);
return clkIF;
}
diff --git a/src/emu/cpu/v810/v810.h b/src/devices/cpu/v810/v810.h
index c5fcf163147..c5fcf163147 100644
--- a/src/emu/cpu/v810/v810.h
+++ b/src/devices/cpu/v810/v810.h
diff --git a/src/emu/cpu/v810/v810dasm.c b/src/devices/cpu/v810/v810dasm.c
index 2f541cc73c4..2f541cc73c4 100644
--- a/src/emu/cpu/v810/v810dasm.c
+++ b/src/devices/cpu/v810/v810dasm.c
diff --git a/src/emu/cpu/vtlb.c b/src/devices/cpu/vtlb.c
index f5a488100f7..f5a488100f7 100644
--- a/src/emu/cpu/vtlb.c
+++ b/src/devices/cpu/vtlb.c
diff --git a/src/emu/cpu/vtlb.h b/src/devices/cpu/vtlb.h
index f63a0ac50f6..f63a0ac50f6 100644
--- a/src/emu/cpu/vtlb.h
+++ b/src/devices/cpu/vtlb.h
diff --git a/src/emu/cpu/x86emit.h b/src/devices/cpu/x86emit.h
index 45e1c456737..45e1c456737 100644
--- a/src/emu/cpu/x86emit.h
+++ b/src/devices/cpu/x86emit.h
diff --git a/src/emu/cpu/x86log.c b/src/devices/cpu/x86log.c
index 4c311310d96..4c311310d96 100644
--- a/src/emu/cpu/x86log.c
+++ b/src/devices/cpu/x86log.c
diff --git a/src/emu/cpu/x86log.h b/src/devices/cpu/x86log.h
index 68ca2ec5257..68ca2ec5257 100644
--- a/src/emu/cpu/x86log.h
+++ b/src/devices/cpu/x86log.h
diff --git a/src/emu/cpu/z180/z180.c b/src/devices/cpu/z180/z180.c
index 134e67dfb72..134e67dfb72 100644
--- a/src/emu/cpu/z180/z180.c
+++ b/src/devices/cpu/z180/z180.c
diff --git a/src/emu/cpu/z180/z180.h b/src/devices/cpu/z180/z180.h
index 7529280b95a..7529280b95a 100644
--- a/src/emu/cpu/z180/z180.h
+++ b/src/devices/cpu/z180/z180.h
diff --git a/src/emu/cpu/z180/z180cb.inc b/src/devices/cpu/z180/z180cb.inc
index 3a58725024e..3a58725024e 100644
--- a/src/emu/cpu/z180/z180cb.inc
+++ b/src/devices/cpu/z180/z180cb.inc
diff --git a/src/emu/cpu/z180/z180dasm.c b/src/devices/cpu/z180/z180dasm.c
index 5c83ed212b2..5c83ed212b2 100644
--- a/src/emu/cpu/z180/z180dasm.c
+++ b/src/devices/cpu/z180/z180dasm.c
diff --git a/src/emu/cpu/z180/z180dd.inc b/src/devices/cpu/z180/z180dd.inc
index bd2a9fc7137..bd2a9fc7137 100644
--- a/src/emu/cpu/z180/z180dd.inc
+++ b/src/devices/cpu/z180/z180dd.inc
diff --git a/src/emu/cpu/z180/z180ed.inc b/src/devices/cpu/z180/z180ed.inc
index 91520228f87..91520228f87 100644
--- a/src/emu/cpu/z180/z180ed.inc
+++ b/src/devices/cpu/z180/z180ed.inc
diff --git a/src/emu/cpu/z180/z180fd.inc b/src/devices/cpu/z180/z180fd.inc
index 66697a9b997..66697a9b997 100644
--- a/src/emu/cpu/z180/z180fd.inc
+++ b/src/devices/cpu/z180/z180fd.inc
diff --git a/src/emu/cpu/z180/z180op.inc b/src/devices/cpu/z180/z180op.inc
index b3005629a78..b3005629a78 100644
--- a/src/emu/cpu/z180/z180op.inc
+++ b/src/devices/cpu/z180/z180op.inc
diff --git a/src/emu/cpu/z180/z180ops.h b/src/devices/cpu/z180/z180ops.h
index 36f06a6847f..36f06a6847f 100644
--- a/src/emu/cpu/z180/z180ops.h
+++ b/src/devices/cpu/z180/z180ops.h
diff --git a/src/emu/cpu/z180/z180tbl.h b/src/devices/cpu/z180/z180tbl.h
index 4884992a5e3..4884992a5e3 100644
--- a/src/emu/cpu/z180/z180tbl.h
+++ b/src/devices/cpu/z180/z180tbl.h
diff --git a/src/emu/cpu/z180/z180xy.inc b/src/devices/cpu/z180/z180xy.inc
index e8976079dfd..e8976079dfd 100644
--- a/src/emu/cpu/z180/z180xy.inc
+++ b/src/devices/cpu/z180/z180xy.inc
diff --git a/src/emu/cpu/z8/z8.c b/src/devices/cpu/z8/z8.c
index 7db38eaf500..7db38eaf500 100644
--- a/src/emu/cpu/z8/z8.c
+++ b/src/devices/cpu/z8/z8.c
diff --git a/src/emu/cpu/z8/z8.h b/src/devices/cpu/z8/z8.h
index 3ab30695bd6..3ab30695bd6 100644
--- a/src/emu/cpu/z8/z8.h
+++ b/src/devices/cpu/z8/z8.h
diff --git a/src/emu/cpu/z8/z8dasm.c b/src/devices/cpu/z8/z8dasm.c
index 3801ca5c34b..3801ca5c34b 100644
--- a/src/emu/cpu/z8/z8dasm.c
+++ b/src/devices/cpu/z8/z8dasm.c
diff --git a/src/emu/cpu/z8/z8ops.inc b/src/devices/cpu/z8/z8ops.inc
index 4c522791b8e..4c522791b8e 100644
--- a/src/emu/cpu/z8/z8ops.inc
+++ b/src/devices/cpu/z8/z8ops.inc
diff --git a/src/emu/cpu/z80/kl5c80a12.c b/src/devices/cpu/z80/kl5c80a12.c
index 500b68d567b..500b68d567b 100644
--- a/src/emu/cpu/z80/kl5c80a12.c
+++ b/src/devices/cpu/z80/kl5c80a12.c
diff --git a/src/emu/cpu/z80/kl5c80a12.h b/src/devices/cpu/z80/kl5c80a12.h
index 3e5e35a460b..3e5e35a460b 100644
--- a/src/emu/cpu/z80/kl5c80a12.h
+++ b/src/devices/cpu/z80/kl5c80a12.h
diff --git a/src/emu/cpu/z80/tmpz84c011.c b/src/devices/cpu/z80/tmpz84c011.c
index 428dd924c71..428dd924c71 100644
--- a/src/emu/cpu/z80/tmpz84c011.c
+++ b/src/devices/cpu/z80/tmpz84c011.c
diff --git a/src/emu/cpu/z80/tmpz84c011.h b/src/devices/cpu/z80/tmpz84c011.h
index 1a5bdd83a85..1a5bdd83a85 100644
--- a/src/emu/cpu/z80/tmpz84c011.h
+++ b/src/devices/cpu/z80/tmpz84c011.h
diff --git a/src/emu/cpu/z80/tmpz84c015.c b/src/devices/cpu/z80/tmpz84c015.c
index 1677358e059..1677358e059 100644
--- a/src/emu/cpu/z80/tmpz84c015.c
+++ b/src/devices/cpu/z80/tmpz84c015.c
diff --git a/src/emu/cpu/z80/tmpz84c015.h b/src/devices/cpu/z80/tmpz84c015.h
index 225a658edc3..225a658edc3 100644
--- a/src/emu/cpu/z80/tmpz84c015.h
+++ b/src/devices/cpu/z80/tmpz84c015.h
diff --git a/src/emu/cpu/z80/z80.c b/src/devices/cpu/z80/z80.c
index 2b5e2e877f7..2b5e2e877f7 100644
--- a/src/emu/cpu/z80/z80.c
+++ b/src/devices/cpu/z80/z80.c
diff --git a/src/emu/cpu/z80/z80.h b/src/devices/cpu/z80/z80.h
index e424c4f9937..e424c4f9937 100644
--- a/src/emu/cpu/z80/z80.h
+++ b/src/devices/cpu/z80/z80.h
diff --git a/src/emu/cpu/z80/z80daisy.c b/src/devices/cpu/z80/z80daisy.c
index c1b0a5454c3..c1b0a5454c3 100644
--- a/src/emu/cpu/z80/z80daisy.c
+++ b/src/devices/cpu/z80/z80daisy.c
diff --git a/src/emu/cpu/z80/z80daisy.h b/src/devices/cpu/z80/z80daisy.h
index b4651649a20..b4651649a20 100644
--- a/src/emu/cpu/z80/z80daisy.h
+++ b/src/devices/cpu/z80/z80daisy.h
diff --git a/src/emu/cpu/z80/z80dasm.c b/src/devices/cpu/z80/z80dasm.c
index ebb965db26e..ebb965db26e 100644
--- a/src/emu/cpu/z80/z80dasm.c
+++ b/src/devices/cpu/z80/z80dasm.c
diff --git a/src/emu/cpu/z8000/8000dasm.c b/src/devices/cpu/z8000/8000dasm.c
index 91a4849da41..91a4849da41 100644
--- a/src/emu/cpu/z8000/8000dasm.c
+++ b/src/devices/cpu/z8000/8000dasm.c
diff --git a/src/emu/cpu/z8000/makedab.c b/src/devices/cpu/z8000/makedab.c
index 57668f3af85..57668f3af85 100644
--- a/src/emu/cpu/z8000/makedab.c
+++ b/src/devices/cpu/z8000/makedab.c
diff --git a/src/emu/cpu/z8000/z8000.c b/src/devices/cpu/z8000/z8000.c
index 76ff93c76b8..76ff93c76b8 100644
--- a/src/emu/cpu/z8000/z8000.c
+++ b/src/devices/cpu/z8000/z8000.c
diff --git a/src/emu/cpu/z8000/z8000.h b/src/devices/cpu/z8000/z8000.h
index 4437e0399ab..4437e0399ab 100644
--- a/src/emu/cpu/z8000/z8000.h
+++ b/src/devices/cpu/z8000/z8000.h
diff --git a/src/emu/cpu/z8000/z8000cpu.h b/src/devices/cpu/z8000/z8000cpu.h
index 1a3f9e52b0f..1a3f9e52b0f 100644
--- a/src/emu/cpu/z8000/z8000cpu.h
+++ b/src/devices/cpu/z8000/z8000cpu.h
diff --git a/src/emu/cpu/z8000/z8000dab.h b/src/devices/cpu/z8000/z8000dab.h
index 44280993803..44280993803 100644
--- a/src/emu/cpu/z8000/z8000dab.h
+++ b/src/devices/cpu/z8000/z8000dab.h
diff --git a/src/emu/cpu/z8000/z8000ops.inc b/src/devices/cpu/z8000/z8000ops.inc
index c9d0b365783..c9d0b365783 100644
--- a/src/emu/cpu/z8000/z8000ops.inc
+++ b/src/devices/cpu/z8000/z8000ops.inc
diff --git a/src/emu/cpu/z8000/z8000tbl.inc b/src/devices/cpu/z8000/z8000tbl.inc
index e4959706858..e4959706858 100644
--- a/src/emu/cpu/z8000/z8000tbl.inc
+++ b/src/devices/cpu/z8000/z8000tbl.inc
diff --git a/src/emu/imagedev/bitbngr.c b/src/devices/imagedev/bitbngr.c
index 9577d9e1efd..9577d9e1efd 100644
--- a/src/emu/imagedev/bitbngr.c
+++ b/src/devices/imagedev/bitbngr.c
diff --git a/src/emu/imagedev/bitbngr.h b/src/devices/imagedev/bitbngr.h
index 4c3b3e5b9d1..4c3b3e5b9d1 100644
--- a/src/emu/imagedev/bitbngr.h
+++ b/src/devices/imagedev/bitbngr.h
diff --git a/src/emu/imagedev/cassette.c b/src/devices/imagedev/cassette.c
index 4721a486b62..4721a486b62 100644
--- a/src/emu/imagedev/cassette.c
+++ b/src/devices/imagedev/cassette.c
diff --git a/src/emu/imagedev/cassette.h b/src/devices/imagedev/cassette.h
index 188670922cc..188670922cc 100644
--- a/src/emu/imagedev/cassette.h
+++ b/src/devices/imagedev/cassette.h
diff --git a/src/emu/imagedev/chd_cd.c b/src/devices/imagedev/chd_cd.c
index b506ebfa784..b506ebfa784 100644
--- a/src/emu/imagedev/chd_cd.c
+++ b/src/devices/imagedev/chd_cd.c
diff --git a/src/emu/imagedev/chd_cd.h b/src/devices/imagedev/chd_cd.h
index 5bdd7e4122a..5bdd7e4122a 100644
--- a/src/emu/imagedev/chd_cd.h
+++ b/src/devices/imagedev/chd_cd.h
diff --git a/src/emu/imagedev/diablo.c b/src/devices/imagedev/diablo.c
index d7d499ec523..d7d499ec523 100644
--- a/src/emu/imagedev/diablo.c
+++ b/src/devices/imagedev/diablo.c
diff --git a/src/emu/imagedev/diablo.h b/src/devices/imagedev/diablo.h
index 11e0ffe091c..11e0ffe091c 100644
--- a/src/emu/imagedev/diablo.h
+++ b/src/devices/imagedev/diablo.h
diff --git a/src/emu/imagedev/flopdrv.c b/src/devices/imagedev/flopdrv.c
index 8fafd466dae..8fafd466dae 100644
--- a/src/emu/imagedev/flopdrv.c
+++ b/src/devices/imagedev/flopdrv.c
diff --git a/src/emu/imagedev/flopdrv.h b/src/devices/imagedev/flopdrv.h
index e2511ca9a50..e2511ca9a50 100644
--- a/src/emu/imagedev/flopdrv.h
+++ b/src/devices/imagedev/flopdrv.h
diff --git a/src/emu/imagedev/floppy.c b/src/devices/imagedev/floppy.c
index 8fea5c24566..384f050e4f6 100644
--- a/src/emu/imagedev/floppy.c
+++ b/src/devices/imagedev/floppy.c
@@ -20,6 +20,8 @@
// Show step operation
#define TRACE_STEP 0
+#define FLOPSND_TAG "floppysound"
+
// device type definition
const device_type FLOPPY_CONNECTOR = &device_creator<floppy_connector>;
@@ -123,7 +125,8 @@ 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 clock) :
device_t(mconfig, FLOPPY_CONNECTOR, "Floppy drive connector abstraction", tag, owner, clock, "floppy_connector", __FILE__),
- device_slot_interface(mconfig, *this)
+ device_slot_interface(mconfig, *this),
+ m_enable_sound(false)
{
}
@@ -144,7 +147,10 @@ void floppy_connector::device_config_complete()
{
floppy_image_device *dev = dynamic_cast<floppy_image_device *>(get_card_device());
if(dev)
+ {
dev->set_formats(formats);
+ dev->enable_sound(m_enable_sound);
+ }
}
floppy_image_device *floppy_connector::get_device()
@@ -161,7 +167,8 @@ floppy_image_device::floppy_image_device(const machine_config &mconfig, device_t
device_image_interface(mconfig, *this),
device_slot_card_interface(mconfig, *this),
image(NULL),
- fif_list(NULL)
+ fif_list(NULL),
+ m_make_sound(false)
{
extension_list[0] = '\0';
m_err = IMAGE_ERROR_INVALIDIMAGE;
@@ -262,7 +269,7 @@ void floppy_image_device::setup_write(floppy_image_format_t *_output_format)
void floppy_image_device::commit_image()
{
image_dirty = false;
- if(!output_format)
+ if(!output_format || !output_format->supports_save())
return;
io_generic io;
// Do _not_ remove this cast otherwise the pointer will be incorrect when used by the ioprocs.
@@ -304,12 +311,20 @@ void floppy_image_device::device_start()
setup_characteristics();
+ if (m_make_sound) m_sound_out = subdevice<floppy_sound_device>(FLOPSND_TAG);
+
save_item(NAME(cyl));
save_item(NAME(subcyl));
}
void floppy_image_device::device_reset()
{
+ if (m_make_sound)
+ {
+ // Have we loaded all samples? Otherwise mute the floppy.
+ m_make_sound = m_sound_out->samples_loaded();
+ }
+
revolution_start_time = attotime::never;
revolution_count = 0;
mon = 1;
@@ -358,6 +373,7 @@ floppy_image_format_t *floppy_image_device::identify(std::string filename)
bool floppy_image_device::call_load()
{
io_generic io;
+
// Do _not_ remove this cast otherwise the pointer will be incorrect when used by the ioprocs.
io.file = (device_image_interface *)this;
io.procs = &image_ioprocs;
@@ -490,6 +506,8 @@ void floppy_image_device::mon_w(int state)
cur_ready_cb(this, ready);
}
}
+
+ if (m_make_sound) m_sound_out->motor(state==0);
}
attotime floppy_image_device::time_next_index()
@@ -573,7 +591,11 @@ void floppy_image_device::stp_w(int state)
if ( cyl < tracks-1 ) cyl++;
}
if(ocyl != cyl)
+ {
if (TRACE_STEP) logerror("%s: track %d\n", tag(), cyl);
+ // Do we want a stepper sound?
+ if (m_make_sound) m_sound_out->step();
+ }
/* Update disk detection if applicable */
if (exists())
{
@@ -1032,6 +1054,231 @@ void ui_menu_control_floppy_image::handle()
}
}
+//===================================================================
+// Floppy sound
+//
+// In order to enable floppy sound you must add the line
+// MCFG_FLOPPY_DRIVE_SOUND(true)
+// after MCFG_FLOPPY_DRIVE_ADD
+// and you must put audio samples (44100Hz, mono) with names as
+// shown in floppy_sample_names into the directory samples/floppy
+// Sound will be disabled when these samples are missing.
+//
+// MZ, Aug 2015
+//===================================================================
+
+floppy_sound_device::floppy_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : samples_device(mconfig, FLOPPYSOUND, "Floppy sound", tag, owner, clock, "flopsnd", __FILE__)
+{
+ m_loaded = false;
+}
+
+void floppy_sound_device::register_for_save_states()
+{
+ save_item(NAME(m_is525));
+ save_item(NAME(m_sampleindex_motor_start));
+ save_item(NAME(m_sampleindex_motor_loop));
+ save_item(NAME(m_sampleindex_motor_end));
+ save_item(NAME(m_samplesize_motor_start));
+ save_item(NAME(m_samplesize_motor_loop));
+ save_item(NAME(m_samplesize_motor_end));
+ save_item(NAME(m_samplepos_motor));
+ save_item(NAME(m_motor_playback_state));
+ save_item(NAME(m_motor_on));
+ save_item(NAME(m_step_samples));
+ save_item(NAME(m_sampleindex_step1));
+ save_item(NAME(m_samplesize_step));
+ save_item(NAME(m_samplepos_step));
+ save_item(NAME(m_step_playback_state));
+}
+
+void floppy_sound_device::device_start()
+{
+ // Sample playback phases
+ m_motor_playback_state = 0; // 0 == currently not playing, 1 == playing startup sample, 2 == playing the loop, 3 == playing loop for the last time, 4 == playing the spin down sample
+ m_step_playback_state = 0; // 0 == currently not playing, > 0 = playing one of the step samples from start to end
+
+ m_motor_on = false;
+ m_is525 = strstr(tag(), "525") != NULL;
+ if (m_is525)
+ {
+ m_sampleindex_motor_start = 2;
+ m_sampleindex_motor_loop = 3;
+ m_sampleindex_motor_end = 4;
+ m_step_samples = 5;
+ m_sampleindex_step1 = 5;
+ }
+ else
+ {
+ m_sampleindex_motor_start = 0;
+ m_sampleindex_motor_loop = 0;
+ m_sampleindex_motor_end = 0;
+ m_step_samples = 1;
+ m_sampleindex_step1 = 1;
+ }
+ m_samplepos_motor = 0;
+ m_samplepos_step = 0;
+ m_samplesize_motor_start = 0;
+ m_samplesize_motor_loop = 0;
+ m_samplesize_motor_end = 0;
+ for (int i = 0; i < MAX_STEP_SAMPLES; ++i) m_samplesize_step[i] = 0;
+
+ // Read audio samples. The samples are stored in the list m_samples.
+ m_loaded = load_samples();
+
+ // If we don't have all samples, don't allocate a stream or access sample data.
+ if (m_loaded)
+ {
+ m_sound = machine().sound().stream_alloc(*this, 0, 1, clock()); // per-floppy stream
+
+ // Get the sample lengths from the sample_t
+ m_samplesize_motor_start = m_sample[m_sampleindex_motor_start].data.size();
+ m_samplesize_motor_loop = m_sample[m_sampleindex_motor_loop].data.size();
+ m_samplesize_motor_end = m_sample[m_sampleindex_motor_end].data.size();
+ for (int i = 0; i < m_step_samples; ++i) m_samplesize_step[i] = m_sample[m_sampleindex_step1 + i].data.size();
+ }
+
+ register_for_save_states();
+}
+
+void floppy_sound_device::motor(bool state)
+{
+ if (!m_loaded) return;
+ m_sound->update(); // required
+ if ((!m_motor_playback_state || m_motor_playback_state > 2) && state) // motor was either off or already spinning down
+ {
+ m_samplepos_motor = 0;
+ m_motor_playback_state = 1; // (re)start the motor sound
+ }
+ else if (m_motor_playback_state == 2 && !state) m_motor_playback_state = 3; // go to spin down sound when loop is finished
+ m_motor_on = state;
+}
+
+// Activate the step sound.
+void floppy_sound_device::step()
+{
+ if (!m_loaded) return;
+ m_sound->update(); // required
+ if (m_step_playback_state == 0)
+ {
+ m_step_playback_state = machine().rand() % m_step_samples + 1; // play one of the floppy drive step samples
+ m_samplepos_step = 0; // restart step sound
+ }
+}
+
+//-------------------------------------------------
+// sound_stream_update - update the sound stream
+//-------------------------------------------------
+
+void floppy_sound_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples)
+{
+ // We are using only one stream, unlike the parent class
+ // Also, there is no need for interpolation, as we only expect
+ // one sample rate of 44100 for all samples
+
+ INT16 out = 0;
+ stream_sample_t *samplebuffer = outputs[0];
+
+ while (samples-- > 0)
+ {
+ out = 0;
+
+ // make sure we are spinning the motor if stepping is going on!
+ if (m_motor_playback_state == 0 && m_step_playback_state > 0)
+ {
+ m_samplepos_motor = 0;
+ m_motor_playback_state = 2;
+ }
+
+ // Motor sound
+ if (m_motor_playback_state > 0)
+ {
+ switch (m_motor_playback_state)
+ {
+ case 1:
+ out = m_sample[m_sampleindex_motor_start].data[m_samplepos_motor++];
+ if (m_samplepos_motor >= m_samplesize_motor_start)
+ {
+ m_samplepos_motor = 0;
+ m_motor_playback_state = 2; // move to looping sound
+ }
+ break;
+ case 2:
+ out = m_sample[m_sampleindex_motor_loop].data[m_samplepos_motor++];
+ if (m_samplepos_motor >= m_samplesize_motor_loop)
+ {
+ m_samplepos_motor = 0; // continue loop, unless...
+ if (!m_motor_on) m_motor_playback_state = 4; // motor was turned off already (during spin-up maybe) -> spin down
+ }
+ break;
+ case 3:
+ out = m_sample[m_sampleindex_motor_loop].data[m_samplepos_motor++];
+ if (m_samplepos_motor >= m_samplesize_motor_loop)
+ {
+ m_samplepos_motor = 0;
+ m_motor_playback_state = 4; // move to spin down sound
+ }
+ break;
+ case 4:
+ out = m_sample[m_sampleindex_motor_end].data[m_samplepos_motor++];
+ if (m_samplepos_motor >= m_samplesize_motor_end)
+ {
+ m_samplepos_motor = 0;
+ m_motor_playback_state = !m_motor_on ? 0 : 1; // stop or restart motor sound
+ }
+ break;
+ }
+ }
+
+ // Stepper sound
+ if (m_step_playback_state > 0)
+ {
+ // Mix it into the stream value
+ out += m_sample[m_sampleindex_step1 + m_step_playback_state - 1].data[m_samplepos_step++];
+ if (m_samplepos_step >= m_samplesize_step[m_step_playback_state - 1])
+ {
+ m_samplepos_step = 0;
+ m_step_playback_state = 0;
+ }
+ }
+
+ // Write to the stream buffer
+ *(samplebuffer++) = out;
+ }
+}
+
+static const char *const floppy_sample_names[] =
+{
+ "*floppy",
+ "floppy_35_motor",
+ "floppy_35_step",
+ "floppy_525_motor_start",
+ "floppy_525_motor_loop",
+ "floppy_525_motor_end",
+ "floppy_525_step1",
+ "floppy_525_step2",
+ "floppy_525_step3",
+ "floppy_525_step4",
+ "floppy_525_step5",
+ 0
+};
+
+#define FLOPSPK "flopsndout"
+
+MACHINE_CONFIG_FRAGMENT( floppy_img )
+ MCFG_SPEAKER_STANDARD_MONO(FLOPSPK)
+ MCFG_SOUND_ADD(FLOPSND_TAG, FLOPPYSOUND, 44100)
+ MCFG_SAMPLES_NAMES(floppy_sample_names)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, FLOPSPK, 0.5)
+MACHINE_CONFIG_END
+
+machine_config_constructor floppy_image_device::device_mconfig_additions() const
+{
+ return MACHINE_CONFIG_NAME( floppy_img );
+}
+
+const device_type FLOPPYSOUND = &device_creator<floppy_sound_device>;
+
//**************************************************************************
// GENERIC FLOPPY DRIVE DEFINITIONS
diff --git a/src/emu/imagedev/floppy.h b/src/devices/imagedev/floppy.h
index 5b230ae9e49..a57b2c7b72e 100644
--- a/src/emu/imagedev/floppy.h
+++ b/src/devices/imagedev/floppy.h
@@ -20,12 +20,16 @@
#include "formats/cqm_dsk.h"
#include "formats/dsk_dsk.h"
#include "ui/imgcntrl.h"
+#include "sound/samples.h"
#define MCFG_FLOPPY_DRIVE_ADD(_tag, _slot_intf, _def_slot, _formats) \
MCFG_DEVICE_ADD(_tag, FLOPPY_CONNECTOR, 0) \
MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) \
static_cast<floppy_connector *>(device)->set_formats(_formats);
+#define MCFG_FLOPPY_DRIVE_SOUND(_doit) \
+ static_cast<floppy_connector *>(device)->enable_sound(_doit);
+
#define DECLARE_FLOPPY_FORMATS(_name) \
static const floppy_format_type _name []
@@ -44,6 +48,7 @@
FLOPPY_DSK_FORMAT, \
NULL };
+class floppy_sound_device;
/***************************************************************************
TYPE DEFINITIONS
@@ -129,6 +134,9 @@ public:
static const floppy_format_type default_floppy_formats[];
+ // Enable sound
+ void enable_sound(bool doit) { m_make_sound = doit; }
+
protected:
// device-level overrides
virtual void device_config_complete();
@@ -136,6 +144,8 @@ protected:
virtual void device_reset();
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
+ virtual machine_config_constructor device_mconfig_additions() const;
+
virtual void setup_characteristics() = 0;
floppy_image_format_t *input_format;
@@ -187,6 +197,10 @@ protected:
void write_zone(UINT32 *buf, int &cells, int &index, UINT32 spos, UINT32 epos, UINT32 mg);
void commit_image();
attotime get_next_index_time(std::vector<UINT32> &buf, int index, int delta, attotime base);
+
+ // Sound
+ bool m_make_sound;
+ floppy_sound_device* m_sound_out;
};
class ui_menu_control_floppy_image : public ui_menu_control_device_image {
@@ -249,6 +263,52 @@ 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")
+extern const device_type FLOPPYSOUND;
+
+
+/*
+ Floppy drive sound
+*/
+
+#define MAX_STEP_SAMPLES 5
+
+class floppy_sound_device : public samples_device
+{
+public:
+ floppy_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+ void motor(bool on);
+ void step();
+ bool samples_loaded() { return m_loaded; }
+ void register_for_save_states();
+
+protected:
+ void device_start();
+
+private:
+ // device_sound_interface overrides
+ void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples);
+
+ sound_stream* m_sound;
+ bool m_loaded;
+ bool m_is525; // true if this is a 5.25" floppy drive
+
+ int m_sampleindex_motor_start;
+ int m_sampleindex_motor_loop;
+ int m_sampleindex_motor_end;
+ int m_samplesize_motor_start;
+ int m_samplesize_motor_loop;
+ int m_samplesize_motor_end;
+ int m_samplepos_motor;
+ int m_motor_playback_state;
+ bool m_motor_on;
+
+ int m_step_samples;
+ int m_sampleindex_step1;
+ int m_samplesize_step[MAX_STEP_SAMPLES];
+ int m_samplepos_step;
+ int m_step_playback_state;
+};
+
class floppy_connector: public device_t,
public device_slot_interface
@@ -259,6 +319,7 @@ public:
void set_formats(const floppy_format_type *formats);
floppy_image_device *get_device();
+ void enable_sound(bool doit) { m_enable_sound = doit; }
protected:
virtual void device_start();
@@ -266,6 +327,7 @@ protected:
private:
const floppy_format_type *formats;
+ bool m_enable_sound;
};
diff --git a/src/emu/imagedev/harddriv.c b/src/devices/imagedev/harddriv.c
index bc39d53e4b3..bc39d53e4b3 100644
--- a/src/emu/imagedev/harddriv.c
+++ b/src/devices/imagedev/harddriv.c
diff --git a/src/emu/imagedev/harddriv.h b/src/devices/imagedev/harddriv.h
index f72dc0553f1..f72dc0553f1 100644
--- a/src/emu/imagedev/harddriv.h
+++ b/src/devices/imagedev/harddriv.h
diff --git a/src/emu/machine/ti99_hd.c b/src/devices/imagedev/mfmhd.c
index f6f3344f94a..cfcdbed0353 100644
--- a/src/emu/machine/ti99_hd.c
+++ b/src/devices/imagedev/mfmhd.c
@@ -2,37 +2,286 @@
// copyright-holders:Michael Zapf
/*************************************************************************
- Hard disk emulation
+ MFM Hard disk emulation
+ -----------------------
+
+ This is a low-level emulation of a hard disk drive. Unlike high-level
+ emulations which just deliver the data bytes, this implementation
+ considers all bytes on a track, including gaps, CRC, interleave, and more.
+
+ The actual data are stored on a CHD file, however, only as a sequence
+ of sector contents. The other metadata (like gap information, interleave)
+ are stored as metadata information in the CHD.
+
+ To provide the desired low-level emulation grade, the tracks must be
+ reconstructed from the sector contents in the CHD. This is done in
+ the call_load method.
+
+ Usually, more than one sector of a track is read, so when a track is
+ reconstructed, the track image is retained for later accesses.
+
+ This implementation also features a LRU cache for the track images,
+ implemented by the class mfmhd_trackimage_cache, also contained in this
+ source file. The LRU cache stores the most recently accessed track images.
+ When lines must be evicted, they are stored back into the CHD file. This
+ is done in the call_unload method. Beside the sector contents, call_unload
+ also saves track layout metadata which have been detected during usage.
+
+ The architecture can be imagined like this:
+
+ [host system] ---- [controller] --- [harddisk] --- [track cache]
+ |
+ [format] ---- [CHD]
+
+ Encodings
+ ---------
+ The goal of this implementation is to provide an emulation that is very
+ close to the original, similar to the grade achieved for the floppy
+ emulation. This means that the track image does not contain a byte
+ sequence but a sequence of MFM cell values. Unlike the floppy emulation,
+ we do not define the cells by time intervals but simply by a sequence of
+ bits which represent the MFM cell contents; this is also due to the fact
+ that the cell rate is more than 10 times higher than with floppy media.
+
+ There are four options for encodings which differ by overhead and
+ emulation precision.
+
+ - MFM_BITS: MFM cells are transferred bit by bit for reading and writing
+ - MFM_BYTE: MFM cells are transferred in clusters of 16 cells, thus
+ encoding a full data byte (with 8 clock bits interleaved)
+ - SEPARATED: 16 bits are transferred in one go, with the 8 clock bits in the
+ first byte, and the 8 data bits in the second byte
+ - SEPARATED_SIMPLE: Similar to SEPARATED, but instead of the clock bits,
+ 0x00 is used for normal data, and 0xff is used for marks.
+
+ Following the specification of MFM, the data byte 0x67 is encoded as follows:
+
+ MFM_BITS / MFM_BYTE: 1001010010010101 = 0x9495
+ SEPARATED: 10001000 01100111 = 0x8867
+ SEPARATED_SIMPLE: 00000000 01100111 = 0x0067
+
+ The ID Address Mark (0xA1) is encoded this way:
+
+ MFM_BITS / MFM_BYTE: 0100010010001001 = 0x4489
+ SEPARATED: 00001010 10100001 = 0x0AA1
+ SEPARATED_SIMPLE: 11111111 10100001 = 0xFFA1
+
+ If the CPU load by the emulation is already very high, the
+ SEPARATED(_SIMPLE) options are recommended. The MFM_BITS option is closest
+ to the real processing, but causes a high load. MFM_BYTE is a good
+ compromise between speed and precision.
+
+
+ Drive definition
+ ----------------
+ Hard disk drives are defined by subclassing mfm_harddisk_device, as can
+ be seen for the offered Seagate drive implementations.
+
+ The following parameters must be set in the constructor of the subclass:
+
+ - Number of physical cylinders. These can be more than the number of
+ cylinders that are used for data. Some drives have cylinders near the
+ spindle that are used as park positions.
+
+ - Number of cylinders used for data. This is the number of the highest
+ cylinder plus 1 (counting from 0).
+
+ - Landing zone: Cylinder number where the head is parked. Should be higher
+ than the number of usable cylinders.
+
+ - Heads: Number of heads.
+
+ - Time for one cylinder seek step in milliseconds: This is the time the
+ drive heads need to step one cylinder inwards or outwards. This time
+ includes the settling time.
+
+ - Maximum seek time in milliseconds: This is the time the drive needs to
+ seek from cylinder 0 to the maximum cylinder. This time includes the
+ settling time and is typically far less than the one cylinder time
+ multiplied by the number of cylinders, because the settling time only
+ occurs once. These delay values are calculated in call_load.
+
+ If the number of physical cylinders is set to 0, the cylinder and head
+ count in taken from the metadata of the mounted CHD file. This allows for
+ using all kinds of CHD images that can be handled by the controller,
+ without having to define a proper drive for them.
+
+ The predefined drives are
+
+ ST-213: Seagate hard disk drive, 10 MB capacity
+ ST-225: Seagate hard disk drive, 20 MB capacity
+ ST-251: Seagate hard disk drive, 40 MB capacity
+
+ generic: Hard disk with 0 physical cylinders, which can be used for
+ all CHDs that can be handled by the controller.
+
+ The ST-xxx drives require to mount a CHD that exactly matches their
+ geometry.
+
+
+ Track image cache
+ -----------------
+ Since the reconstruction of the track takes some time, and we don't want
+ to create unnecessary effort, track images (sector contents plus all
+ preambles and gaps encoded as selected) are kept in a cache. Whenever a
+ track shall be read, the cache is consulted first to retrieve a copy.
+ If no recent copy is available, the track is loaded from the CHD, set up
+ by the format implementation (see lib/formats/mfm_hd.c). The least
+ recently used track is evicted from the cache and written back to the CHD
+ (also by means of the format implementation).
+
+ When the emulation is stopped, all cache lines are evicted and written back.
+ If the emulation is killed before, cache contents may possibly not be
+ written back, so changes may be lost. To alleviate this issue, the cache
+ writes back one line every 5 seconds so that changes are automatically
+ committed after some time.
+
+ This cache is not related to caches on real hard drives. It is a pure
+ emulation artifact, intended to keep conversion efforts as low as possible.
+
+
+ Interface
+ ---------
+ There are three outgoing lines, used as callbacks to the controller:
+ - READY: asserted when the drive has completed its spinup.
+ - INDEX: asserted when the index hole passes by. Unlike the floppy
+ implementation, this hard disk implementation produces a
+ zero-length pulse (assert/clear). This must be considered for
+ the controller emulation.
+ - SEEK COMPLETE: asserted when the read/write heads have settled over the
+ target cylinder. This line is important for controller that want
+ to employ buffered steps.
+
+ There are two data transfer methods:
+
+ - read(attotime &from_when, const attotime &limit, UINT16 &data)
+
+ Delivers the MFM cells at the given point in time. The cells are returned
+ in the data parameter. The behavior depends on the chosen encoding:
+
+ MFM_BITS: data contains 0x0000 or 0x0001
+ MFM_BYTE: data contains a set of 16 consecutive cells at the given time
+ SEPARATED: data contains the clock bits in the MSB, the data bits in the LSB
+ SEPARATED_SIMPLE: data contains 0x00 or 0xFF in the MSB (normal or mark)
+ and the data bits in the LSB.
+
+ When the limit is exceeded, the method returns true, otherwise false.
+
+ - write(attotime &from_when, const attotime &limit, UINT16 cdata, bool wpcom=false, bool reduced_wc=false)
+
+ Writes the MFM cells at the given point in time. cdata contains the
+ cells according to the encoding (see above). The controller also has
+ to set wpcom to true to indicate write precompensation, and reduced_wc
+ to true to indicate a reduced write current; otherwise, these settings
+ are assumed to be false. The wpcom and rwc settings do not affect the
+ recording of the data bytes in this emulation, but the drive will store
+ the cylinder with the lowest number where wpcom (or rwc) occured and
+ store this in the CHD.
+
+ These methods are used to move and select the heads:
+
+ - step_w(line_state line)
+ - direction_in_w(line_state line)
+ - headsel_w(int head)
+
+ Some status lines:
+
+ - ready_r
+ - seek_complete_r
+ - trk00_r
+
+ These reflect the values that are also passed by the callback routines
+ listed above and can be used for a polling scheme. Track00 is not available
+ as a callback. It indicates whether track 0 has been reached.
+
+
+ Configuration
+ -------------
+ For a working example please refer to emu/bus/ti99_peb/hfdc.c.
+
+ According to the MAME/MESS concept of slot devices, the settings are
+ passed over the slot to the slot device, in this case, the hard disk drive.
+
+ This means that when we add a slot (the connector), we also have to
+ pass the desired parameters for the drive.
+
+ MCFG_MFM_HARDDISK_CONN_ADD(_tag, _slot_intf, _def_slot, _enc, _spinupms, _cache, _format)
+
+ Specific parameters:
+
+ _enc: Select an encoding from the values as listed above.
+ _spinupms: Number of milliseconds until the drive announces READY. Many
+ drives like the included Seagate drives require a pretty long
+ powerup time (10-20 seconds). In some computer systems, the
+ user is therefore asked to turn on the drive first so that
+ on first access by the system, the drive may have completed
+ its powerup. In MAME/MESS we cannot turn on components earlier,
+ thus we do not define the spinup time inside the drive
+ implementation but at this point.
+ _cache: Number of tracks to be stored in the LRU track cache
+ _format: Format to be used for the drive. Must be a subclass of
+ mfmhd_image_format_t, for example, mfmhd_generic_format. The format
+ is specified by its format creator identifier (e.g. MFMHD_GEN_FORMAT).
+
+ Metadata
+ --------
+ We have three sets of metadata information. The first one is the
+ declaration of cylinders, heads, sectors, and sector size. It is stored
+ by the tag GDDD in the CHD.
+ The second is the declaration of interleave, skew, write precompensation,
+ and reduced write current.
+
+ Write precompensation is a modification of the timing used for the inner
+ cylinders. Although write precompensation (wpcom for short) can be applied
+ at every write operation, it is usually only used starting from some
+ cylinder, going towards the spindle, applied to the whole tracks.
+ The value defined here is the first cylinder where wpcom is applied.
+ Reduced write current (rwc) is a modification of the electrical current
+ used for writing data. The value defined here is the first cylinder where
+ rwc is applied.
+
+ Both wpcom and rwc have an effect on the physical device, but this is not
+ emulated. For that reason we store the information as additional metadata
+ inside the CHD. It is not relevant for the functionality of the emulated
+ hard disk. The write operations
+
+ When wpcom or rwc are not used, their value is defined to be -1.
+
+ Interleave affects the order how sectors are arranged on the track; skew
+ is the number of sectors that the sector sequence is shifted on the
+ next cylinder (cylinder skew) or head (head skew). These values are used
+ to compensate for the delay that occurs when the read/write heads are moved
+ from one cylinder to the next, or switched from one head to the next.
+
+ These parameters are stored by the tag GDDI on the CHD.
+
+ The third set refers to the specification of gaps and sync fields on the
+ track. These values may change only on first use (when undefined) or when
+ the hard disk is reformatted with a different controller or driver. These
+ parameters are also stored by the GDDI tag as a second record.
+
Michael Zapf
- April 2010
- February 2012: Rewritten as class
- April 2015: Rewritten with deeper emulation detail
+ August 2015
References:
[1] ST225 OEM Manual, Seagate
**************************************************************************/
-// TODO: Define format by a file
-// Save interleave in CHD
-
#include "emu.h"
#include "formats/imageutl.h"
#include "harddisk.h"
-
-#include "ti99_hd.h"
+#include "mfmhd.h"
#define TRACE_STEPS 0
#define TRACE_SIGNALS 0
#define TRACE_READ 0
#define TRACE_WRITE 0
#define TRACE_CACHE 0
-#define TRACE_RWTRACK 0
#define TRACE_BITS 0
#define TRACE_DETAIL 0
#define TRACE_TIMING 0
-#define TRACE_IMAGE 0
#define TRACE_STATE 1
#define TRACE_CONFIG 1
@@ -51,15 +300,11 @@ enum
STEP_SETTLE
};
-#define TRACKSLOTS 5
-
-#define OFFLIMIT -1
-
std::string mfm_harddisk_device::tts(const attotime &t)
{
char buf[256];
- int nsec = t.attoseconds / ATTOSECONDS_PER_NANOSECOND;
- sprintf(buf, "%4d.%03d,%03d,%03d", int(t.seconds), nsec/1000000, (nsec/1000)%1000, nsec % 1000);
+ int nsec = t.attoseconds() / ATTOSECONDS_PER_NANOSECOND;
+ sprintf(buf, "%4d.%03d,%03d,%03d", int(t.seconds()), nsec/1000000, (nsec/1000)%1000, nsec % 1000);
return buf;
}
@@ -68,19 +313,19 @@ mfm_harddisk_device::mfm_harddisk_device(const machine_config &mconfig, device_t
device_slot_card_interface(mconfig, *this)
{
m_spinupms = 10000;
- m_cachelines = TRACKSLOTS;
+ m_cachelines = 5;
m_max_cylinders = 0;
m_phys_cylinders = 0; // We will get this value for generic drives from the image
m_max_heads = 0;
m_cell_size = 100;
m_rpm = 3600; // MFM drives have a revolution rate of 3600 rpm (i.e. 60/sec)
- m_trackimage_size = (int)((60000000000L / (m_rpm * m_cell_size)) / 16 + 1);
+ m_trackimage_size = (int)((60000000000ULL / (m_rpm * m_cell_size)) / 16 + 1);
m_cache = NULL;
// We will calculate default values from the time specs later.
m_seeknext_time = 0;
m_maxseek_time = 0;
m_actual_cylinders = 0;
- m_park_pos = 0;
+ m_landing_zone = 0;
m_interleave = 0;
}
@@ -98,7 +343,7 @@ void mfm_harddisk_device::device_start()
m_rev_time = attotime::from_hz(m_rpm/60);
m_index_timer->adjust(attotime::from_hz(m_rpm/60), 0, attotime::from_hz(m_rpm/60));
- m_current_cylinder = m_park_pos; // Park position
+ m_current_cylinder = m_landing_zone; // Park position
m_spinup_timer->adjust(attotime::from_msec(m_spinupms));
m_cache = global_alloc(mfmhd_trackimage_cache);
@@ -131,6 +376,12 @@ void mfm_harddisk_device::device_stop()
bool mfm_harddisk_device::call_load()
{
bool loaded = harddisk_image_device::call_load();
+
+ std::string devtag(tag());
+ devtag += ":format";
+
+ m_format->set_tag(devtag);
+
if (loaded==IMAGE_INIT_PASS)
{
std::string metadata;
@@ -153,35 +404,81 @@ bool mfm_harddisk_device::call_load()
if (TRACE_CONFIG) logerror("%s: CHD metadata: %s\n", tag(), metadata.c_str());
// Parse the metadata
- int imagecyls;
- int imageheads;
- int imagesecpt;
- int imagesecsz;
+ mfmhd_layout_params param;
+ param.encoding = m_encoding;
+ if (TRACE_CONFIG) logerror("%s: Set encoding to %d\n", tag(), m_encoding);
- if (sscanf(metadata.c_str(), HARD_DISK_METADATA_FORMAT, &imagecyls, &imageheads, &imagesecpt, &imagesecsz) != 4)
+ if (sscanf(metadata.c_str(), HARD_DISK_METADATA_FORMAT, &param.cylinders, &param.heads, &param.sectors_per_track, &param.sector_size) != 4)
{
logerror("%s: Invalid CHD metadata\n", tag());
return IMAGE_INIT_FAIL;
}
- if (TRACE_CONFIG) logerror("%s: CHD image has geometry cyl=%d, head=%d, sect=%d, size=%d\n", tag(), imagecyls, imageheads, imagesecpt, imagesecsz);
+ if (TRACE_CONFIG) logerror("%s: CHD image has geometry cyl=%d, head=%d, sect=%d, size=%d\n", tag(), param.cylinders, param.heads, param.sectors_per_track, param.sector_size);
+
+ if (m_max_cylinders != 0 && (param.cylinders != m_max_cylinders || param.heads != m_max_heads))
+ {
+ throw emu_fatalerror("Image geometry does not fit this kind of hard drive: drive=(%d,%d), image=(%d,%d)", m_max_cylinders, m_max_heads, param.cylinders, param.heads);
+ }
+
+ // MDM format specs
+ param.interleave = 0;
+ param.cylskew = 0;
+ param.headskew = 0;
+ param.write_precomp_cylinder = -1;
+ param.reduced_wcurr_cylinder = -1;
+
+ state = chdfile->read_metadata(MFM_HARD_DISK_METADATA_TAG, 0, metadata);
+ if (state != CHDERR_NONE)
+ {
+ logerror("%s: Failed to read CHD sector arrangement/recording specs, applying defaults\n", tag());
+ }
+ else
+ {
+ sscanf(metadata.c_str(), MFMHD_REC_METADATA_FORMAT, &param.interleave, &param.cylskew, &param.headskew, &param.write_precomp_cylinder, &param.reduced_wcurr_cylinder);
+ }
+
+ if (!param.sane_rec())
+ {
+ if (TRACE_CONFIG) logerror("%s: Sector arrangement/recording specs have invalid values, applying defaults\n", tag());
+ param.reset_rec();
+ }
+ else
+ if (TRACE_CONFIG) logerror("%s: MFM HD rec specs: interleave=%d, cylskew=%d, headskew=%d, wpcom=%d, rwc=%d\n",
+ tag(), param.interleave, param.cylskew, param.headskew, param.write_precomp_cylinder, param.reduced_wcurr_cylinder);
- if (m_max_cylinders != 0 && (imagecyls != m_max_cylinders || imageheads != m_max_heads))
+ state = chdfile->read_metadata(MFM_HARD_DISK_METADATA_TAG, 1, metadata);
+ if (state != CHDERR_NONE)
{
- throw emu_fatalerror("Image geometry does not fit this kind of hard drive: drive=(%d,%d), image=(%d,%d)", m_max_cylinders, m_max_heads, imagecyls, imageheads);
+ logerror("%s: Failed to read CHD track gap specs, applying defaults\n", tag());
+ }
+ else
+ {
+ sscanf(metadata.c_str(), MFMHD_GAP_METADATA_FORMAT, &param.gap1, &param.gap2, &param.gap3, &param.sync, &param.headerlen, &param.ecctype);
}
- m_cache->init(chdfile, tag(), m_trackimage_size, imagecyls, imageheads, imagesecpt, m_cachelines, m_encoding, m_format);
+ if (!param.sane_gap())
+ {
+ if (TRACE_CONFIG) logerror("%s: MFM HD gap specs have invalid values, applying defaults\n", tag());
+ param.reset_gap();
+ }
+ else
+ if (TRACE_CONFIG) logerror("%s: MFM HD gap specs: gap1=%d, gap2=%d, gap3=%d, sync=%d, headerlen=%d, ecctype=%d\n",
+ tag(), param.gap1, param.gap2, param.gap3, param.sync, param.headerlen, param.ecctype);
+
+ m_format->set_layout_params(param);
+
+ m_cache->init(this, m_trackimage_size, m_cachelines);
// Head timing
// We assume that the real times are 80% of the max times
// The single-step time includes the settle time, so does the max time
// From that we calculate the actual cylinder-by-cylinder time and the settle time
- m_actual_cylinders = m_cache->get_cylinders();
- if (m_phys_cylinders == 0) m_phys_cylinders = m_actual_cylinders+1;
+ m_actual_cylinders = param.cylinders;
- m_park_pos = m_phys_cylinders-1;
+ if (m_phys_cylinders == 0) m_phys_cylinders = m_actual_cylinders+1;
+ if (m_landing_zone == 0) m_landing_zone = m_phys_cylinders-1;
float realnext = (m_seeknext_time==0)? 10 : (m_seeknext_time * 0.8);
float realmax = (m_maxseek_time==0)? (m_actual_cylinders * 0.2) : (m_maxseek_time * 0.8);
@@ -192,8 +489,7 @@ bool mfm_harddisk_device::call_load()
m_settle_time = attotime::from_usec((int)settle_us);
m_step_time = attotime::from_usec((int)step_us);
- m_current_cylinder = m_park_pos;
- m_interleave = m_format->get_interleave();
+ m_current_cylinder = m_landing_zone;
}
else
{
@@ -202,19 +498,48 @@ bool mfm_harddisk_device::call_load()
return loaded;
}
+const char *MFMHD_REC_METADATA_FORMAT = "IL:%d,CSKEW:%d,HSKEW:%d,WPCOM:%d,RWC:%d";
+const char *MFMHD_GAP_METADATA_FORMAT = "GAP1:%d,GAP2:%d,GAP3:%d,SYNC:%d,HLEN:%d,ECC:%d";
+
void mfm_harddisk_device::call_unload()
{
+ mfmhd_layout_params* params = m_format->get_current_params();
+ mfmhd_layout_params* oldparams = m_format->get_initial_params();
+
if (m_cache!=NULL)
{
m_cache->cleanup();
- if (m_interleave != m_format->get_interleave())
+ if (m_format->save_param(MFMHD_IL) && !params->equals_rec(oldparams))
{
- logerror("%s: Interleave changed from %d to %d; committing to CHD\n", tag(), m_interleave, m_format->get_interleave());
+ logerror("%s: MFM HD sector arrangement and recording specs have changed; updating CHD metadata\n", tag());
+ chd_file* chdfile = get_chd_file();
+ std::string metadata;
+
+ strprintf(metadata, MFMHD_REC_METADATA_FORMAT, params->interleave, params->cylskew, params->headskew, params->write_precomp_cylinder, params->reduced_wcurr_cylinder);
+
+ chd_error err = chdfile->write_metadata(MFM_HARD_DISK_METADATA_TAG, 0, metadata, 0);
+ if (err != CHDERR_NONE)
+ {
+ logerror("%s: Failed to save MFM HD sector arrangement/recording specs to CHD\n", tag());
+ }
}
- }
- // TODO: If interleave changed, commit that to CHD
+ if (m_format->save_param(MFMHD_GAP1) && !params->equals_gap(oldparams))
+ {
+ logerror("%s: MFM HD track gap specs have changed; updating CHD metadata\n", tag());
+ chd_file* chdfile = get_chd_file();
+ std::string metadata;
+
+ strprintf(metadata, MFMHD_GAP_METADATA_FORMAT, params->gap1, params->gap2, params->gap3, params->sync, params->headerlen, params->ecctype);
+
+ chd_error err = chdfile->write_metadata(MFM_HARD_DISK_METADATA_TAG, 1, metadata, 0);
+ if (err != CHDERR_NONE)
+ {
+ logerror("%s: Failed to save MFM HD track gap specs to CHD\n", tag());
+ }
+ }
+ }
harddisk_image_device::call_unload();
}
@@ -294,6 +619,11 @@ void mfm_harddisk_device::device_timer(emu_timer &timer, device_timer_id id, int
m_seek_timer->adjust(m_settle_time);
if (TRACE_STEPS && TRACE_DETAIL) logerror("%s: Arrived at target cylinder %d, settling ...\n", tag(), m_current_cylinder);
}
+ else
+ {
+ // need to move the head again
+ head_move();
+ }
break;
case STEP_SETTLE:
// Do we have new step pulses?
@@ -502,7 +832,7 @@ bool mfm_harddisk_device::read(attotime &from_when, const attotime &limit, UINT1
Returns true if the time limit will be exceeded before writing the bit or complete byte.
*/
-bool mfm_harddisk_device::write(attotime &from_when, const attotime &limit, UINT16 cdata)
+bool mfm_harddisk_device::write(attotime &from_when, const attotime &limit, UINT16 cdata, bool wpcom, bool reduced_wc)
{
UINT16* track = m_cache->get_trackimage(m_current_cylinder, m_current_head);
@@ -533,10 +863,40 @@ bool mfm_harddisk_device::write(attotime &from_when, const attotime &limit, UINT
track[bytepos] = cdata;
}
- if (TRACE_WRITE) if ((bitpos&0x0f)==0) logerror("%s: Wrote data=%04x (c=%d,h=%d) at position %04x\n", tag(), track[bytepos], m_current_cylinder, m_current_head, bytepos);
+ // Update our cylinders for reduced write current and write precompensation.
+ // We assume that write precompensation and reduced write current occur
+ // at some cylinder and continue up to the innermost cylinder.
+ mfmhd_layout_params* params = m_format->get_current_params();
+
+ if (reduced_wc && (params->reduced_wcurr_cylinder == -1 || m_current_cylinder < params->reduced_wcurr_cylinder))
+ params->reduced_wcurr_cylinder = m_current_cylinder;
+
+ if (wpcom && (params->write_precomp_cylinder == -1 || m_current_cylinder < params->write_precomp_cylinder))
+ params->write_precomp_cylinder = m_current_cylinder;
+
+ if (TRACE_WRITE) if ((bitpos&0x0f)==0) logerror("%s: Wrote data=%04x (c=%d,h=%d) at position %04x, wpcom=%d, rwc=%d\n", tag(), track[bytepos], m_current_cylinder, m_current_head, bytepos, wpcom, reduced_wc);
return false;
}
+chd_error mfm_harddisk_device::load_track(UINT16* data, int cylinder, int head)
+{
+ chd_error state = m_format->load(m_chd, data, m_trackimage_size, cylinder, head);
+ return state;
+}
+
+void mfm_harddisk_device::write_track(UINT16* data, int cylinder, int head)
+{
+ m_format->save(m_chd, data, m_trackimage_size, cylinder, head);
+}
+
+int mfm_harddisk_device::get_actual_heads()
+{
+ return m_format->get_current_params()->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 clock)
: mfm_harddisk_device(mconfig, MFMHD_GENERIC, "Generic MFM hard disk", tag, owner, clock, "mfm_harddisk", __FILE__)
{
@@ -552,7 +912,7 @@ mfm_hd_st213_device::mfm_hd_st213_device(const machine_config &mconfig, const ch
{
m_phys_cylinders = 670;
m_max_cylinders = 615; // 0..614
- m_park_pos = 620;
+ m_landing_zone = 620;
m_max_heads = 2;
m_seeknext_time = 20; // time for one step including settle time
m_maxseek_time = 150;
@@ -565,7 +925,7 @@ mfm_hd_st225_device::mfm_hd_st225_device(const machine_config &mconfig, const ch
{
m_phys_cylinders = 670;
m_max_cylinders = 615;
- m_park_pos = 620;
+ m_landing_zone = 620;
m_max_heads = 4;
m_seeknext_time = 20;
m_maxseek_time = 150;
@@ -578,7 +938,7 @@ mfm_hd_st251_device::mfm_hd_st251_device(const machine_config &mconfig, const ch
{
m_phys_cylinders = 821;
m_max_cylinders = 820;
- m_park_pos = 820;
+ m_landing_zone = 820;
m_max_heads = 6;
m_seeknext_time = 8;
m_maxseek_time = 70;
@@ -595,14 +955,12 @@ const device_type MFMHD_ST251 = &device_creator<mfm_hd_st251_device>;
mfmhd_trackimage_cache::mfmhd_trackimage_cache():
m_tracks(NULL)
{
- m_current_crc = 0;
- m_tracksize = 0;
}
mfmhd_trackimage_cache::~mfmhd_trackimage_cache()
{
mfmhd_trackimage* current = m_tracks;
- if (TRACE_CACHE) logerror("%s: MFM HD cache destroy\n", tag());
+ if (TRACE_CACHE) logerror("%s: MFM HD cache destroy\n", m_mfmhd->tag());
while (current != NULL)
{
@@ -621,8 +979,7 @@ void mfmhd_trackimage_cache::write_back_one()
{
if (current->dirty)
{
- // write_track(m_chd, current->encdata, m_tracksize, current->cylinder, current->head);
- m_format->save(tag(), m_chd, current->encdata, m_encoding, m_tracksize, current->cylinder, current->head, m_cylinders, m_heads, m_sectors_per_track);
+ m_mfmhd->write_track(current->encdata, current->cylinder, current->head);
current->dirty = false;
break;
}
@@ -634,16 +991,15 @@ void mfmhd_trackimage_cache::write_back_one()
void mfmhd_trackimage_cache::cleanup()
{
mfmhd_trackimage* current = m_tracks;
- if (TRACE_CACHE) logerror("%s: MFM HD cache cleanup\n", tag());
+ if (TRACE_CACHE) logerror("%s: MFM HD cache cleanup\n", m_mfmhd->tag());
// Still dirty?
while (current != NULL)
{
- if (TRACE_CACHE) logerror("%s: MFM HD cache: evict line cylinder=%d head=%d\n", tag(), current->cylinder, current->head);
+ if (TRACE_CACHE) logerror("%s: MFM HD cache: evict line cylinder=%d head=%d\n", m_mfmhd->tag(), current->cylinder, current->head);
if (current->dirty)
{
- // write_track(m_chd, current->encdata, m_tracksize, current->cylinder, current->head);
- m_format->save(tag(), m_chd, current->encdata, m_encoding, m_tracksize, current->cylinder, current->head, m_cylinders, m_heads, m_sectors_per_track);
+ m_mfmhd->write_track(current->encdata, current->cylinder, current->head);
current->dirty = false;
}
mfmhd_trackimage* currenttmp = current->next;
@@ -665,48 +1021,39 @@ const char *encnames[] = { "MFM_BITS","MFM_BYTE","SEPARATE","SSIMPLE " };
/*
Initialize the cache by loading the first <trackslots> tracks.
*/
-void mfmhd_trackimage_cache::init(chd_file* chdfile, const char* dtag, int tracksize, int imagecyl, int imageheads, int imagesecpt, int trackslots, mfmhd_enc_t encoding, mfmhd_image_format_t* format)
+void mfmhd_trackimage_cache::init(mfm_harddisk_device* mfmhd, int tracksize, int trackslots)
{
- m_encoding = encoding;
- m_tagdev = dtag;
+ if (TRACE_CACHE) logerror("%s: MFM HD cache init; cache size is %d tracks\n", mfmhd->tag(), trackslots);
- if (TRACE_CACHE) logerror("%s: MFM HD cache init; using encoding %s; cache size is %d tracks\n", m_tagdev, encnames[encoding], trackslots);
chd_error state = CHDERR_NONE;
+
mfmhd_trackimage* previous = NULL;
mfmhd_trackimage* current = NULL;
- std::string metadata;
- m_tracksize = tracksize;
- m_chd = chdfile;
- m_format = format;
- m_cylinders = imagecyl;
- m_heads = imageheads;
- m_sectors_per_track = imagesecpt;
+ m_mfmhd = mfmhd;
// Load some tracks into the cache
int track = 0;
int head = 0;
int cylinder = 0;
+
while (track < trackslots)
{
- if (TRACE_CACHE && TRACE_DETAIL) logerror("%s: MFM HD allocate cache slot\n", tag());
+ if (TRACE_CACHE && TRACE_DETAIL) logerror("%s: MFM HD allocate cache slot\n", mfmhd->tag());
previous = current;
current = global_alloc(mfmhd_trackimage);
current->encdata = global_alloc_array(UINT16, tracksize);
// Load the first tracks into the slots
- // state = load_track(m_chd, current->encdata, m_tracksize, cylinder, head);
-
- state = m_format->load(tag(), m_chd, current->encdata, m_encoding, m_tracksize, cylinder, head, m_cylinders, m_heads, m_sectors_per_track);
+ state = m_mfmhd->load_track(current->encdata, cylinder, head);
+ if (state != CHDERR_NONE) throw emu_fatalerror("Cannot load (c=%d,h=%d) from hard disk", cylinder, head);
current->dirty = false;
current->cylinder = cylinder;
current->head = head;
- if (state != CHDERR_NONE) throw emu_fatalerror("Cannot load (c=%d,h=%d) from hard disk", cylinder, head);
-
// We will read all heads per cylinder first, then go to the next cylinder.
- if (++head >= m_heads)
+ if (++head >= mfmhd->get_actual_heads())
{
head = 0;
cylinder++;
@@ -771,17 +1118,15 @@ UINT16* mfmhd_trackimage_cache::get_trackimage(int cylinder, int head)
// previous points to the second to last element
current = previous->next;
- if (TRACE_CACHE) logerror("%s: MFM HD cache: evict line (c=%d,h=%d)\n", tag(), current->cylinder, current->head);
+ if (TRACE_CACHE) logerror("%s: MFM HD cache: evict line (c=%d,h=%d)\n", m_mfmhd->tag(), current->cylinder, current->head);
if (current->dirty)
{
- // write_track(m_chd, current->encdata, m_tracksize, current->cylinder, current->head);
- m_format->save(tag(), m_chd, current->encdata, m_encoding, m_tracksize, current->cylinder, current->head, m_cylinders, m_heads, m_sectors_per_track);
+ m_mfmhd->write_track(current->encdata, current->cylinder, current->head);
current->dirty = false;
}
- // state = load_track(m_chd, current->encdata, m_tracksize, cylinder, head);
- state = m_format->load(tag(), m_chd, current->encdata, m_encoding, m_tracksize, cylinder, head, m_cylinders, m_heads, m_sectors_per_track);
+ state = m_mfmhd->load_track(current->encdata, cylinder, head);
current->dirty = false;
current->cylinder = cylinder;
@@ -829,466 +1174,3 @@ void mfm_harddisk_connector::device_config_complete()
}
const device_type MFM_HD_CONNECTOR = &device_creator<mfm_harddisk_connector>;
-
-// ================================================================
-
-mfmhd_image_format_t::mfmhd_image_format_t()
-{
-};
-
-mfmhd_image_format_t::~mfmhd_image_format_t()
-{
-};
-
-void mfmhd_image_format_t::mfm_encode(UINT16* trackimage, int& position, UINT8 byte, int count)
-{
- mfm_encode_mask(trackimage, position, byte, count, 0x00);
-}
-
-void mfmhd_image_format_t::mfm_encode_a1(UINT16* trackimage, int& position)
-{
- m_current_crc = 0xffff;
- mfm_encode_mask(trackimage, position, 0xa1, 1, 0x04);
- // 0x443b; CRC for A1
-}
-
-void mfmhd_image_format_t::mfm_encode_mask(UINT16* trackimage, int& position, UINT8 byte, int count, int mask)
-{
- UINT16 encclock = 0;
- UINT16 encdata = 0;
- UINT8 thisbyte = byte;
- bool mark = (mask != 0x00);
-
- m_current_crc = ccitt_crc16_one(m_current_crc, byte);
-
- for (int i=0; i < 8; i++)
- {
- encdata <<= 1;
- encclock <<= 1;
-
- if (m_encoding == MFM_BITS || m_encoding == MFM_BYTE)
- {
- // skip one position for later interleaving
- encdata <<= 1;
- encclock <<= 1;
- }
-
- if (thisbyte & 0x80)
- {
- // Encoding 1 => 01
- encdata |= 1;
- m_lastbit = true;
- }
- else
- {
- // Encoding 0 => x0
- // If the bit in the mask is set, suppress the clock bit
- // Also, if we use the simplified encoding, don't set the clock bits
- if (m_lastbit == false && m_encoding != SEPARATED_SIMPLE && (mask & 0x80) == 0) encclock |= 1;
- m_lastbit = false;
- }
- mask <<= 1;
- // For simplified encoding, set all clock bits to indicate a mark
- if (m_encoding == SEPARATED_SIMPLE && mark) encclock |= 1;
- thisbyte <<= 1;
- }
-
- if (m_encoding == MFM_BITS || m_encoding == MFM_BYTE)
- encclock <<= 1;
- else
- encclock <<= 8;
-
- trackimage[position++] = (encclock | encdata);
-
- // When we write the byte multiple times, check whether the next encoding
- // differs from the previous because of the last bit
-
- if (m_encoding == MFM_BITS || m_encoding == MFM_BYTE)
- {
- encclock &= 0x7fff;
- if ((byte & 0x80)==0 && m_lastbit==false) encclock |= 0x8000;
- }
-
- for (int j=1; j < count; j++)
- {
- trackimage[position++] = (encclock | encdata);
- m_current_crc = ccitt_crc16_one(m_current_crc, byte);
- }
-}
-
-UINT8 mfmhd_image_format_t::mfm_decode(UINT16 raw)
-{
- unsigned int value = 0;
-
- for (int i=0; i < 8; i++)
- {
- value <<= 1;
-
- value |= (raw & 0x4000);
- raw <<= 2;
- }
- return (value >> 14) & 0xff;
-}
-
-/*
- For debugging. Outputs the byte array in a xxd-like way.
-*/
-void mfmhd_image_format_t::showtrack(UINT16* enctrack, int length)
-{
- for (int i=0; i < length; i+=16)
- {
- logerror("%07x: ", i);
- for (int j=0; j < 16; j++)
- {
- logerror("%04x ", enctrack[i+j]);
- }
- logerror(" ");
- logerror("\n");
- }
-}
-
-// ======================================================================
-// TI-99-specific format
-// ======================================================================
-
-const mfmhd_format_type MFMHD_TI99_FORMAT = &mfmhd_image_format_creator<ti99_mfmhd_format>;
-
-enum
-{
- SEARCH_A1=0,
- FOUND_A1,
- DAM_FOUND,
- CHECK_CRC
-};
-
-
-/*
- Calculate the ident byte from the cylinder. The specification does not
- define idents beyond cylinder 1023, but formatting programs seem to
- continue with 0xfd for cylinders between 1024 and 2047.
-*/
-UINT8 ti99_mfmhd_format::cylinder_to_ident(int cylinder)
-{
- if (cylinder < 256) return 0xfe;
- if (cylinder < 512) return 0xff;
- if (cylinder < 768) return 0xfc;
- return 0xfd;
-}
-
-/*
- Returns the linear sector number, given the CHS data.
-
- C,H,S
- | 0,0,0 | 0,0,1 | 0,0,2 | ...
- | 0,1,0 | 0,1,1 | 0,1,2 | ...
- ...
- | 1,0,0 | ...
- ...
-*/
-int ti99_mfmhd_format::chs_to_lba(int cylinder, int head, int sector)
-{
- if ((cylinder < m_cylinders) && (head < m_heads) && (sector < m_sectors_per_track))
- {
- return (cylinder * m_heads + head) * m_sectors_per_track + sector;
- }
- else return -1;
-}
-
-chd_error ti99_mfmhd_format::load(const char* tagdev, chd_file* chdfile, UINT16* trackimage, mfmhd_enc_t encoding, int tracksize, int cylinder, int head, int cylcnt, int headcnt, int sect_per_track)
-{
- chd_error state = CHDERR_NONE;
-
- int sectorcount = 32;
- int size = 256;
- int interleave = 4;
-
- m_encoding = encoding;
- m_cylinders = cylcnt;
- m_heads = headcnt;
- m_sectors_per_track = sect_per_track;
- m_tagdev = tagdev;
-
- UINT8 sector_content[1024];
-
- if (TRACE_RWTRACK) logerror("%s: MFM HD cache: load track (c=%d,h=%d) from CHD\n", tag(), cylinder, head);
-
- m_lastbit = false;
- int position = 0; // will be incremented by each encode call
-
- // According to MDM5 formatting:
- // gap0=16 gap1=16 gap2=3 gap3=22 sync=13 count=32 size=2
-
- // HFDC manual: When using the hard disk format, the values for GAP0 and GAP1 must
- // both be set to the same number and loaded in the appropriate registers.
-
- // Gap 1
- mfm_encode(trackimage, position, 0x4e, 16);
-
- int sec_il_start = 0;
- int sec_number = 0;
- int identfield = 0;
- int cylfield = 0;
- int headfield = 0;
- int sizefield = (size >> 7)-1;
-
- // Round up
- int delta = (sectorcount + interleave-1) / interleave;
-
- if (TRACE_DETAIL) logerror("%s: cyl=%d head=%d: sector sequence = ", tag(), cylinder, head);
- for (int sector = 0; sector < sectorcount; sector++)
- {
- if (TRACE_DETAIL) logerror("%02d ", sec_number);
-
- // Sync gap
- mfm_encode(trackimage, position, 0x00, 13);
-
- // Write IDAM
- mfm_encode_a1(trackimage, position);
-
- // Write header
- identfield = cylinder_to_ident(cylinder);
- cylfield = cylinder & 0xff;
- headfield = ((cylinder & 0x700)>>4) | (head&0x0f);
-
- mfm_encode(trackimage, position, identfield);
- mfm_encode(trackimage, position, cylfield);
- mfm_encode(trackimage, position, headfield);
- mfm_encode(trackimage, position, sec_number);
- mfm_encode(trackimage, position, sizefield);
- // logerror("%s: Created header (%02x,%02x,%02x,%02x)\n", tag(), identfield, cylfield, headfield, sector);
-
- // Write CRC for header.
- int crc = m_current_crc;
- mfm_encode(trackimage, position, (crc >> 8) & 0xff);
- mfm_encode(trackimage, position, crc & 0xff);
-
- // Gap 2
- mfm_encode(trackimage, position, 0x4e, 3);
-
- // Sync
- mfm_encode(trackimage, position, 0x00, 13);
-
- // Write DAM
- mfm_encode_a1(trackimage, position);
- mfm_encode(trackimage, position, 0xfb);
-
- // Get sector content from CHD
- int lbaposition = chs_to_lba(cylinder, head, sec_number);
- if (lbaposition>=0)
- {
- chd_error state = chdfile->read_units(lbaposition, sector_content);
- if (state != CHDERR_NONE) break;
- }
- else
- {
- logerror("%s: Invalid CHS data (%d,%d,%d); not loading from CHD\n", tag(), cylinder, head, sector);
- }
-
- for (int i=0; i < size; i++)
- mfm_encode(trackimage, position, sector_content[i]);
-
- // Write CRC for content.
- crc = m_current_crc;
- mfm_encode(trackimage, position, (crc >> 8) & 0xff);
- mfm_encode(trackimage, position, crc & 0xff);
-
- // Gap 3
- mfm_encode(trackimage, position, 0x00, 3);
- mfm_encode(trackimage, position, 0x4e, 19);
-
- // Calculate next sector number
- sec_number += delta;
- if (sec_number >= sectorcount) sec_number = ++sec_il_start;
- }
- if (TRACE_DETAIL) logerror("\n");
-
- // Gap 4
- if (state == CHDERR_NONE)
- {
- // Fill the rest with 0x4e
- mfm_encode(trackimage, position, 0x4e, tracksize-position);
- if (TRACE_IMAGE)
- {
- showtrack(trackimage, tracksize);
- }
- }
- return state;
-}
-
-chd_error ti99_mfmhd_format::save(const char* tagdev, chd_file* chdfile, UINT16* trackimage, mfmhd_enc_t encoding, int tracksize, int current_cylinder, int current_head, int cylcnt, int headcnt, int sect_per_track)
-{
- if (TRACE_CACHE) logerror("%s: MFM HD cache: write back (c=%d,h=%d) to CHD\n", tag(), current_cylinder, current_head);
-
- UINT8 buffer[1024]; // for header or sector content
-
- int bytepos = 0;
- int state = SEARCH_A1;
- int count = 0;
- int pos = 0;
- UINT16 crc = 0;
- UINT8 byte;
- bool search_header = true;
-
- int ident = 0;
- int cylinder = 0;
- int head = 0;
- int sector = 0;
-
- int headerpos = 0;
-
- int calc_interleave = 0;
- int interleave_prec = -1;
- bool check_interleave = true;
-
- chd_error chdstate = CHDERR_NONE;
-
- m_encoding = encoding;
- m_cylinders = cylcnt;
- m_heads = headcnt;
- m_sectors_per_track = sect_per_track;
- m_tagdev = tagdev;
-
- if (TRACE_IMAGE)
- {
- for (int i=0; i < tracksize; i++)
- {
- if ((i % 16)==0) logerror("\n%04x: ", i);
- logerror("%02x ", (m_encoding==MFM_BITS || m_encoding==MFM_BYTE)? mfm_decode(trackimage[i]) : (trackimage[i]&0xff));
- }
- logerror("\n");
- }
-
- // We have to go through the bytes of the track and save a sector as soon as one shows up
- while (bytepos < tracksize)
- {
- switch (state)
- {
- case SEARCH_A1:
- if (((m_encoding==MFM_BITS || m_encoding==MFM_BYTE) && trackimage[bytepos]==0x4489)
- || (m_encoding==SEPARATED && trackimage[bytepos]==0x0aa1)
- || (m_encoding==SEPARATED_SIMPLE && trackimage[bytepos]==0xffa1))
- {
- state = FOUND_A1;
- count = search_header? 7 : 259;
- crc = 0x443b; // init value with a1
- pos = 0;
- }
- bytepos++;
- break;
-
- case FOUND_A1:
- // read next values into array
- if (m_encoding==MFM_BITS || m_encoding==MFM_BYTE)
- {
- byte = mfm_decode(trackimage[bytepos]);
- }
- else byte = (trackimage[bytepos] & 0xff);
-
- crc = ccitt_crc16_one(crc, byte);
- // logerror("%s: MFM HD: Byte = %02x, CRC=%04x\n", tag(), byte, crc);
-
- // Put byte into buffer
- // but not the data mark and the CRC
- if (search_header || (count > 2 && count < 259)) buffer[pos++] = byte;
-
- if (--count == 0)
- {
- if (crc==0)
- {
- if (search_header)
- {
- // Found a header
- ident = buffer[0];
- // Highest three bits are in the head field
- cylinder = buffer[1] | ((buffer[2]&0x70)<<4);
- head = buffer[2] & 0x0f;
- sector = buffer[3];
- int identexp = cylinder_to_ident(cylinder);
-
- if (identexp != ident)
- {
- logerror("%s: MFM HD: Field error; ident = %02x (expected %02x) for sector chs=(%d,%d,%d)\n", tag(), ident, identexp, cylinder, head, sector);
- }
-
- if (cylinder != current_cylinder)
- {
- logerror("%s: MFM HD: Sector header of sector %d defines cylinder = %02x (should be %02x)\n", tag(), sector, cylinder, current_cylinder);
- }
-
- if (head != current_head)
- {
- logerror("%s: MFM HD: Sector header of sector %d defines head = %02x (should be %02x)\n", tag(), sector, head, current_head);
- }
-
- // Count the sectors for the interleave
- if (check_interleave)
- {
- if (interleave_prec == -1) interleave_prec = sector;
- else
- {
- if (sector == interleave_prec+1) check_interleave = false;
- calc_interleave++;
- }
- }
-
- if (calc_interleave == 0) calc_interleave = sector - buffer[3];
- // size = buffer[4];
- search_header = false;
- if (TRACE_DETAIL) logerror("%s: MFM HD: Found sector chs=(%d,%d,%d)\n", tag(), cylinder, head, sector);
- headerpos = pos;
- }
- else
- {
- // Sector contents
- // Write the sectors to the CHD
- int lbaposition = chs_to_lba(cylinder, head, sector);
- if (lbaposition>=0)
- {
- if (TRACE_DETAIL) logerror("%s: MFM HD: Writing sector chs=(%d,%d,%d) to CHD\n", tag(), current_cylinder, current_head, sector);
- chdstate = chdfile->write_units(chs_to_lba(current_cylinder, current_head, sector), buffer);
-
- if (chdstate != CHDERR_NONE)
- {
- logerror("%s: MFM HD: Write error while writing sector chs=(%d,%d,%d)\n", tag(), cylinder, head, sector);
- }
- }
- else
- {
- logerror("%s: Invalid CHS data in track image: (%d,%d,%d); not saving to CHD\n", tag(), cylinder, head, sector);
- }
-
- search_header = true;
- }
- }
- else
- {
- logerror("%s: MFM HD: CRC error in %s of (%d,%d,%d)\n", tag(), search_header? "header" : "data", cylinder, head, sector);
- search_header = true;
- }
- // search next A1
- state = SEARCH_A1;
-
- if (!search_header && (pos - headerpos) > 30)
- {
- logerror("%s: MFM HD: Error; missing DAM; searching next header\n", tag());
- search_header = true;
- }
- }
- bytepos++;
- break;
- }
- }
-
- if (check_interleave == false)
- {
- // Successfully determined the interleave
- m_interleave = calc_interleave;
- }
-
- if (TRACE_CACHE)
- {
- logerror("%s: MFM HD cache: write back complete (c=%d,h=%d), interleave = %d\n", tag(), current_cylinder, current_head, m_interleave);
- }
-
- return chdstate;
-}
diff --git a/src/emu/machine/ti99_hd.h b/src/devices/imagedev/mfmhd.h
index b004ea7cafb..c15b892423d 100644
--- a/src/emu/machine/ti99_hd.h
+++ b/src/devices/imagedev/mfmhd.h
@@ -2,43 +2,23 @@
// copyright-holders:Michael Zapf
/****************************************************************************
- Hard disk support
- See ti99_hd.c for documentation
+ MFM hard disk emulation
- Michael Zapf
+ See mfmhd.c for documentation
- February 2012: Rewritten as class
+ Michael Zapf
+ August 2015
*****************************************************************************/
-#ifndef __TI99_HD__
-#define __TI99_HD__
+#ifndef __MFMHD__
+#define __MFMHD__
#include "emu.h"
#include "imagedev/harddriv.h"
+#include "formats/mfm_hd.h"
-/*
- Determine how data are passed from the hard disk to the controller. We
- allow for different degrees of hardware emulation.
-*/
-enum mfmhd_enc_t
-{
- MFM_BITS, // One bit at a time
- MFM_BYTE, // One data byte with interleaved clock bits
- SEPARATED, // 8 clock bits (most sig byte), one data byte (least sig byte)
- SEPARATED_SIMPLE // MSB: 00/FF (standard / mark) clock, LSB: one data byte
-};
-
-class mfmhd_image_format_t;
-
-// Pointer to its alloc function
-typedef mfmhd_image_format_t *(*mfmhd_format_type)();
-
-template<class _FormatClass>
-mfmhd_image_format_t *mfmhd_image_format_creator()
-{
- return new _FormatClass();
-}
+class mfm_harddisk_device;
class mfmhd_trackimage
{
@@ -55,31 +35,15 @@ class mfmhd_trackimage_cache
public:
mfmhd_trackimage_cache();
~mfmhd_trackimage_cache();
- void init(chd_file* chdfile, const char* tag, int tracksize, int imagecyls, int imageheads, int imagesecpt, int trackslots, mfmhd_enc_t encoding, mfmhd_image_format_t* format);
+ void init(mfm_harddisk_device* mfmhd, int tracksize, int trackslots);
UINT16* get_trackimage(int cylinder, int head);
void mark_current_as_dirty();
void cleanup();
void write_back_one();
- int get_cylinders() { return m_cylinders; }
private:
- chd_file* m_chd;
-
- const char* m_tagdev;
- mfmhd_trackimage* m_tracks;
- mfmhd_enc_t m_encoding;
- mfmhd_image_format_t* m_format;
-
- bool m_lastbit;
- int m_current_crc;
- int m_cylinders;
- int m_heads;
- int m_sectors_per_track;
- int m_sectorsize;
- int m_tracksize;
-
- void showtrack(UINT16* enctrack, int length);
- const char* tag() { return m_tagdev; }
+ mfm_harddisk_device* m_mfmhd;
+ mfmhd_trackimage* m_tracks;
};
class mfm_harddisk_device : public harddisk_image_device,
@@ -110,14 +74,11 @@ public:
line_state seek_complete_r() { return m_seek_complete? ASSERT_LINE : CLEAR_LINE; } ;
line_state trk00_r() { return m_current_cylinder==0? ASSERT_LINE : CLEAR_LINE; }
- // Common routine for read/write
- bool find_position(attotime &from_when, const attotime &limit, int &bytepos, int &bitpos);
-
// Data output towards controller
bool read(attotime &from_when, const attotime &limit, UINT16 &data);
// Data input from controller
- bool write(attotime &from_when, const attotime &limit, UINT16 data);
+ bool write(attotime &from_when, const attotime &limit, UINT16 cdata, bool wpcom=false, bool reduced_wc=false);
// Step
void step_w(line_state line);
@@ -129,9 +90,16 @@ public:
bool call_load();
void call_unload();
- // Tells us the time when the track ends (next index pulse)
+ // Tells us the time when the track ends (next index pulse). Needed by the controller.
attotime track_end_time();
+ // Access the tracks on the image. Used as a callback from the cache.
+ chd_error load_track(UINT16* data, int cylinder, int head);
+ void write_track(UINT16* data, int cylinder, int head);
+
+ // Delivers the number of heads according to the loaded image
+ int get_actual_heads();
+
protected:
void device_start();
void device_stop();
@@ -149,7 +117,10 @@ protected:
int m_phys_cylinders;
int m_actual_cylinders; // after reading the CHD
int m_max_heads;
- int m_park_pos;
+ int m_landing_zone;
+ int m_precomp_cyl;
+ int m_redwc_cyl;
+
int m_maxseek_time;
int m_seeknext_time;
@@ -185,6 +156,9 @@ private:
void prepare_track(int cylinder, int head);
void head_move();
void recalibrate();
+
+ // Common routine for read/write
+ bool find_position(attotime &from_when, const attotime &limit, int &bytepos, int &bitpos);
};
/*
@@ -261,7 +235,7 @@ extern const device_type MFM_HD_CONNECTOR;
_tag = Tag of the connector
_slot_intf = Selection of hard drives
_def_slot = Default hard drive
- _enc = Encoding (see comments in ti99_hd.c)
+ _enc = Encoding (see comments in mfm_hd.c)
_spinupms = Spinup time in milliseconds (some configurations assume that the
user has turned on the hard disk before turning on the system. We cannot
emulate this, so we allow for shorter times)
@@ -273,53 +247,4 @@ extern const device_type MFM_HD_CONNECTOR;
static_cast<mfm_harddisk_connector *>(device)->configure(_enc, _spinupms, _cache, _format);
-/*
- Hard disk format
-*/
-class mfmhd_image_format_t
-{
-public:
- mfmhd_image_format_t();
- virtual ~mfmhd_image_format_t();
-
- // Load the image.
- virtual chd_error load(const char* tagdev, chd_file* chdfile, UINT16* trackimage, mfmhd_enc_t encoding, int tracksize, int cylinder, int head, int cylcnt, int headcnt, int sect_per_track) = 0;
-
- // Save the image.
- virtual chd_error save(const char* tagdev, chd_file* chdfile, UINT16* trackimage, mfmhd_enc_t encoding, int tracksize, int cylinder, int head, int cylcnt, int headcnt, int sect_per_track) = 0;
-
- // Return the recent interleave of the image
- int get_interleave() { return m_interleave; }
-
-protected:
- bool m_lastbit;
- int m_current_crc;
- mfmhd_enc_t m_encoding;
- const char* m_tagdev;
- int m_cylinders;
- int m_heads;
- int m_sectors_per_track;
- int m_interleave;
-
- void mfm_encode(UINT16* trackimage, int& position, UINT8 byte, int count=1);
- void mfm_encode_a1(UINT16* trackimage, int& position);
- void mfm_encode_mask(UINT16* trackimage, int& position, UINT8 byte, int count, int mask);
- UINT8 mfm_decode(UINT16 raw);
- const char* tag() { return m_tagdev; }
- void showtrack(UINT16* enctrack, int length);
-};
-
-class ti99_mfmhd_format : public mfmhd_image_format_t
-{
-public:
- ti99_mfmhd_format() {};
- chd_error load(const char* tagdev, chd_file* chdfile, UINT16* trackimage, mfmhd_enc_t encoding, int tracksize, int cylinder, int head, int cylcnt, int headcnt, int sect_per_track);
- chd_error save(const char* tagdev, chd_file* chdfile, UINT16* trackimage, mfmhd_enc_t encoding, int tracksize, int cylinder, int head, int cylcnt, int headcnt, int sect_per_track);
-private:
- UINT8 cylinder_to_ident(int cylinder);
- int chs_to_lba(int cylinder, int head, int sector);
-};
-
-extern const mfmhd_format_type MFMHD_TI99_FORMAT;
-
#endif
diff --git a/src/emu/imagedev/midiin.c b/src/devices/imagedev/midiin.c
index e412409aa38..e412409aa38 100644
--- a/src/emu/imagedev/midiin.c
+++ b/src/devices/imagedev/midiin.c
diff --git a/src/emu/imagedev/midiin.h b/src/devices/imagedev/midiin.h
index d8cc99eb0aa..d8cc99eb0aa 100644
--- a/src/emu/imagedev/midiin.h
+++ b/src/devices/imagedev/midiin.h
diff --git a/src/emu/imagedev/midiout.c b/src/devices/imagedev/midiout.c
index 97ecb36ab89..97ecb36ab89 100644
--- a/src/emu/imagedev/midiout.c
+++ b/src/devices/imagedev/midiout.c
diff --git a/src/emu/imagedev/midiout.h b/src/devices/imagedev/midiout.h
index 5ac4d7c3ed4..5ac4d7c3ed4 100644
--- a/src/emu/imagedev/midiout.h
+++ b/src/devices/imagedev/midiout.h
diff --git a/src/emu/imagedev/printer.c b/src/devices/imagedev/printer.c
index aedfecbeddd..aedfecbeddd 100644
--- a/src/emu/imagedev/printer.c
+++ b/src/devices/imagedev/printer.c
diff --git a/src/emu/imagedev/printer.h b/src/devices/imagedev/printer.h
index 8e6ca051fdc..8e6ca051fdc 100644
--- a/src/emu/imagedev/printer.h
+++ b/src/devices/imagedev/printer.h
diff --git a/src/emu/imagedev/snapquik.c b/src/devices/imagedev/snapquik.c
index 02fc2fa241e..02fc2fa241e 100644
--- a/src/emu/imagedev/snapquik.c
+++ b/src/devices/imagedev/snapquik.c
diff --git a/src/emu/imagedev/snapquik.h b/src/devices/imagedev/snapquik.h
index a9e186ba2bd..a9e186ba2bd 100644
--- a/src/emu/imagedev/snapquik.h
+++ b/src/devices/imagedev/snapquik.h
diff --git a/src/emu/machine/40105.c b/src/devices/machine/40105.c
index e2f059dfed0..e2f059dfed0 100644
--- a/src/emu/machine/40105.c
+++ b/src/devices/machine/40105.c
diff --git a/src/emu/machine/40105.h b/src/devices/machine/40105.h
index bc632c8cdca..bc632c8cdca 100644
--- a/src/emu/machine/40105.h
+++ b/src/devices/machine/40105.h
diff --git a/src/emu/machine/53c7xx.c b/src/devices/machine/53c7xx.c
index f2aad1ad75b..f2aad1ad75b 100644
--- a/src/emu/machine/53c7xx.c
+++ b/src/devices/machine/53c7xx.c
diff --git a/src/emu/machine/53c7xx.h b/src/devices/machine/53c7xx.h
index 937bd9d16a0..937bd9d16a0 100644
--- a/src/emu/machine/53c7xx.h
+++ b/src/devices/machine/53c7xx.h
diff --git a/src/emu/machine/53c810.c b/src/devices/machine/53c810.c
index a2a22f0fac0..a2a22f0fac0 100644
--- a/src/emu/machine/53c810.c
+++ b/src/devices/machine/53c810.c
diff --git a/src/emu/machine/53c810.h b/src/devices/machine/53c810.h
index f55c3cdbfb1..f55c3cdbfb1 100644
--- a/src/emu/machine/53c810.h
+++ b/src/devices/machine/53c810.h
diff --git a/src/emu/machine/64h156.c b/src/devices/machine/64h156.c
index 508034169dd..508034169dd 100644
--- a/src/emu/machine/64h156.c
+++ b/src/devices/machine/64h156.c
diff --git a/src/emu/machine/64h156.h b/src/devices/machine/64h156.h
index d21ce389dd0..d21ce389dd0 100644
--- a/src/emu/machine/64h156.h
+++ b/src/devices/machine/64h156.h
diff --git a/src/emu/machine/6522via.c b/src/devices/machine/6522via.c
index 56a35e19040..56a35e19040 100644
--- a/src/emu/machine/6522via.c
+++ b/src/devices/machine/6522via.c
diff --git a/src/emu/machine/6522via.h b/src/devices/machine/6522via.h
index 0b882ee7195..0b882ee7195 100644
--- a/src/emu/machine/6522via.h
+++ b/src/devices/machine/6522via.h
diff --git a/src/emu/machine/6525tpi.c b/src/devices/machine/6525tpi.c
index 038440e29d3..038440e29d3 100644
--- a/src/emu/machine/6525tpi.c
+++ b/src/devices/machine/6525tpi.c
diff --git a/src/emu/machine/6525tpi.h b/src/devices/machine/6525tpi.h
index 5a2e07d12dd..5a2e07d12dd 100644
--- a/src/emu/machine/6525tpi.h
+++ b/src/devices/machine/6525tpi.h
diff --git a/src/emu/machine/6532riot.c b/src/devices/machine/6532riot.c
index 98bb8c2dacc..98bb8c2dacc 100644
--- a/src/emu/machine/6532riot.c
+++ b/src/devices/machine/6532riot.c
diff --git a/src/emu/machine/6532riot.h b/src/devices/machine/6532riot.h
index 2825f31dc9d..2825f31dc9d 100644
--- a/src/emu/machine/6532riot.h
+++ b/src/devices/machine/6532riot.h
diff --git a/src/emu/machine/6821pia.c b/src/devices/machine/6821pia.c
index 3fbf6477fa9..3fbf6477fa9 100644
--- a/src/emu/machine/6821pia.c
+++ b/src/devices/machine/6821pia.c
diff --git a/src/emu/machine/6821pia.h b/src/devices/machine/6821pia.h
index cc686114feb..cc686114feb 100644
--- a/src/emu/machine/6821pia.h
+++ b/src/devices/machine/6821pia.h
diff --git a/src/devices/machine/68230pit.c b/src/devices/machine/68230pit.c
new file mode 100644
index 00000000000..d0acaf6ae45
--- /dev/null
+++ b/src/devices/machine/68230pit.c
@@ -0,0 +1,265 @@
+// license:BSD-3-Clause
+// copyright-holders:Joakim Larsson Edstr??m
+/**********************************************************************
+*
+* Motorola MC68230 PI/T Parallell Interface and Timer
+*
+* Revisions
+* 2015-07-15 JLE initial
+*
+* Todo
+* - Add clock and timers
+* - Add all missing registers
+* - Add configuration
+**********************************************************************/
+
+#include "68230pit.h"
+
+#define LOG(x) /* x */
+
+//**************************************************************************
+// DEVICE TYPE DEFINITIONS
+//**************************************************************************
+
+const device_type PIT68230 = &device_creator<pit68230_device>;
+
+//-------------------------------------------------
+// pit68230_device - constructors
+//-------------------------------------------------
+pit68230_device::pit68230_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, UINT32 variant, const char *shortname, const char *source)
+ : device_t (mconfig, type, name, tag, owner, clock, shortname, source),
+ device_execute_interface (mconfig, *this)
+ , m_icount (0)
+ , m_write_pa (*this)
+ , m_write_h2 (*this)
+{
+}
+
+
+pit68230_device::pit68230_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : device_t (mconfig, PIT68230, "PIT68230", tag, owner, clock, "pit68230", __FILE__),
+ device_execute_interface (mconfig, *this)
+ , m_icount (0)
+ , m_write_pa (*this)
+ , m_write_h2 (*this)
+{
+}
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+void pit68230_device::device_start ()
+{
+ LOG (logerror ("PIT68230 device started\n"));
+ m_icountptr = &m_icount;
+
+ // resolve callbacks
+ m_write_pa.resolve_safe ();
+ m_write_h2.resolve_safe ();
+}
+
+//-------------------------------------------------
+// device_reset - device-specific reset
+//-------------------------------------------------
+void pit68230_device::device_reset ()
+{
+ LOG (logerror ("PIT68230 device reseted\n"));
+ m_pgcr = 0;
+ m_psrr = 0;
+ m_paddr = 0;
+ m_pbddr = 0;
+ m_pcddr = 0;
+ m_pacr = 0; m_write_h2 (m_pacr);
+ m_pbcr = 0;
+ m_padr = 0; m_write_pa ((offs_t)0, m_padr); // TODO: check PADDR
+ m_pbdr = 0;
+ m_psr = 0;
+}
+
+//-------------------------------------------------
+// device_timer - handler timer events
+//-------------------------------------------------
+void pit68230_device::device_timer (emu_timer &timer, device_timer_id id, INT32 param, void *ptr)
+{
+}
+
+void pit68230_device::h1_set (UINT8 state)
+{
+ LOG (logerror ("h1_set %d @ m_psr %2x => ", state, m_psr));
+ if (state) m_psr |= 1; else m_psr &= ~1;
+ LOG (logerror ("%02x %lld\n", m_psr, machine ().firstcpu->total_cycles ()));
+}
+
+void pit68230_device::portb_setbit (UINT8 bit, UINT8 state)
+{
+ LOG (logerror ("portb_setbit %d/%d @ m_pbdr %2x => ", bit, state, m_pbdr));
+ if (state) m_pbdr |= (1 << bit); else m_pbdr &= ~(1 << bit);
+ LOG (logerror ("%02x %lld\n", m_pbdr, machine ().firstcpu->total_cycles ()));
+}
+
+//-------------------------------------------------
+// execute_run -
+//-------------------------------------------------
+void pit68230_device::execute_run ()
+{
+ do {
+ synchronize ();
+
+ m_icount--;
+ } while (m_icount > 0);
+}
+
+LOG (static INT32 ow_cnt = 0)
+LOG (static INT32 ow_data = 0)
+LOG (static INT32 ow_ofs = 0)
+
+WRITE8_MEMBER (pit68230_device::write){
+ switch (offset) {
+ case PIT_68230_PGCR:
+ m_pgcr = data;
+ break;
+
+ case PIT_68230_PSRR:
+ m_psrr = data;
+ break;
+
+ case PIT_68230_PADDR:
+ m_paddr = data;
+ break;
+
+ case PIT_68230_PBDDR:
+ m_pbddr = data;
+ break;
+
+ case PIT_68230_PCDDR:
+ m_pcddr = data;
+ break;
+
+ case PIT_68230_PACR:
+ m_pacr = data;
+ // callbacks
+ /*PACR in Mode 0
+ * 5 43 H2 Control in Submode 00 && 01
+ * ------------------------------------
+ * 0 XX Input pin - edge-sensitive status input, H2S is set on an asserted edge.
+ * 1 00 Output pin - negated, H2S is always clear.
+ * 1 01 Output pin - asserted, H2S is always clear.
+ * 1 10 Output pin - interlocked input handshake protocol, H2S is always clear.
+ * 1 11 Output pin - pulsed input handshake protocol, H2S is always clear.
+ *
+ * 5 43 H2 Control in Submode 1x
+ * ------------------------------------
+ * 0 XX Input pin - edge-sensitive status input, H2S is set on an asserted edge.
+ * 1 X0 Output pin - negated, H2S is always cleared.
+ * 1 X1 Output pin - asserted, H2S is always cleared.
+ */
+ m_write_h2 (m_pacr & 0x08 ? 1 : 0); // TODO: Check mode and submodes
+ break;
+
+ case PIT_68230_PBCR:
+ m_pbcr = data;
+ break;
+
+ case PIT_68230_PADR:
+ m_padr = data;
+ // callbacks
+ m_write_pa ((offs_t)0, m_padr); // TODO: check PADDR
+ break;
+
+ case PIT_68230_PSR:
+ m_psr = data;
+ break;
+
+ default:
+ LOG (logerror ("unhandled register %02x", offset));
+ }
+
+ LOG (if (offset != ow_ofs || data != ow_data || ow_cnt >= 1000) {
+ logerror ("\npit68230_device::write: previous identical operation performed %02x times\n", ow_cnt);
+ ow_cnt = 0;
+ ow_data = data;
+ ow_ofs = offset;
+ logerror ("pit68230_device::write: offset=%02x data=%02x %lld\n", ow_ofs, ow_data, machine ().firstcpu->total_cycles ());
+ }
+ else
+ ow_cnt++; )
+}
+
+LOG (static INT32 or_cnt = 0)
+LOG (static INT32 or_data = 0)
+LOG (static INT32 or_ofs = 0)
+
+READ8_MEMBER (pit68230_device::read){
+ UINT8 data = 0;
+
+ switch (offset) {
+ case PIT_68230_PGCR:
+ data = m_pgcr;
+ break;
+
+ case PIT_68230_PSRR:
+ data = m_psrr;
+ break;
+
+ case PIT_68230_PADDR:
+ data = m_paddr;
+ break;
+
+ case PIT_68230_PBDDR:
+ data = m_pbddr;
+ break;
+
+ case PIT_68230_PCDDR:
+ data = m_pcddr;
+ break;
+
+ case PIT_68230_PACR:
+ data = m_pacr;
+ break;
+
+ case PIT_68230_PBCR:
+ data = m_pbcr;
+ break;
+
+ case PIT_68230_PADR:
+ data = m_padr;
+ break;
+
+ case PIT_68230_PBDR:
+ /* 4.6.2. PORT B DATA REGISTER (PBDR). The port B data register is a holding
+ * register for moving data to and from port B pins. The port B data direction
+ * register determines whether each pin is an input (zero) or an output (one).
+ * This register is readable and writable at all times. Depending on the chosen
+ * mode/submode, reading or writing may affect the double-buffered handshake
+ * mechanism. The port B data register is not affected by the assertion of the
+ * RESET pin. PB0-PB7 sits on pins 17-24 on a 48 pin DIP package */
+ data = m_pbdr;
+ break;
+
+ case PIT_68230_PSR:
+ /* 4.8. PORT STATUS REGISTER (PSR) The port status register contains information about
+ * handshake pin activity. Bits 7-4 show the instantaneous level of the respective handshake
+ * pin, and are independent of the handshake pin sense bits in the port general control
+ * register. Bits 3-0 are the respective status bits referred to throughout this document.
+ * Their interpretation depends on the programmed mode/submode of the PI/T. For bits
+ * 3-0 a one is the active or asserted state. */
+ data = m_psr;
+ break;
+
+ default:
+ LOG (logerror ("unhandled register %02x", offset));
+ data = 0;
+ }
+
+ LOG (if (offset != or_ofs || data != or_data || or_cnt >= 1000) {
+ logerror ("\npit68230_device::read: previous identical operation performed %02x times\n", or_cnt);
+ or_cnt = 0;
+ or_data = data;
+ or_ofs = offset;
+ logerror ("pit68230_device::read: offset=%02x data=%02x %lld\n", or_ofs, or_data, machine ().firstcpu->total_cycles ());
+ }
+ else
+ or_cnt++; )
+
+ return data;
+}
diff --git a/src/devices/machine/68230pit.h b/src/devices/machine/68230pit.h
new file mode 100644
index 00000000000..b78dbc887aa
--- /dev/null
+++ b/src/devices/machine/68230pit.h
@@ -0,0 +1,131 @@
+// license:BSD-3-Clause
+// copyright-holders:Joakim Larsson Edstr??m
+/**********************************************************************
+*
+* Motorola MC68230 PI/T Parallell Interface and Timer
+*
+* _____ _____
+* D5 1 |* \_/ | 48 D4
+* D6 2 | | 47 D3
+* D7 3 | | 46 D2
+* PA0 4 | | 45 D1
+* PA1 5 | | 44 D0
+* PA2 6 | | 43 R/W*
+* PA3 7 | | 42 DTACK*
+* PA4 8 | | 41 CS*
+* PA5 9 | | 40 CLK
+* PA6 10 | | 39 RESET*
+* PA7 11 | | 38 VSS
+* Vcc 12 | TS68230 | 37 PC7/TIACK*
+* H1 13 | SC87845 | 36 PC6/PIACK*
+* H2 14 | | 35 PC5/PIRQ*
+* H3 15 | | 34 PC4/DMAREQ*
+* H4 16 | | 33 PC3/TOUT
+* PB0 17 | | 32 PC2/TIN
+* PB1 18 | | 31 PC1
+* PB2 19 | | 30 PC0
+* PB3 20 | | 29 RS1
+* PB4 21 | | 28 RS2
+* PB5 22 | | 27 RS3
+* PB6 23 | | 26 RS4
+* PB7 24 |_____________| 25 RS5
+*
+**********************************************************************/
+
+#pragma once
+
+#ifndef __68230PIT_H__
+#define __68230PIT_H__
+
+#include "emu.h"
+
+//**************************************************************************
+// INTERFACE CONFIGURATION MACROS
+//**************************************************************************
+
+#define MCFG_PIT68230_PA_OUTPUT_CALLBACK(_write) \
+ devcb = &pit68230_device::set_pa_wr_callback (*device, DEVCB_ ## _write);
+
+#define MCFG_PIT68230_PB_OUTPUT_CALLBACK(_write) \
+ devcb = &pit68230_device::set_pb_wr_callback (*device, DEVCB_ ## _write);
+
+#define MCFG_PIT68230_H2_CALLBACK(_write) \
+ devcb = &pit68230_device::set_h2_wr_callback (*device, DEVCB_ ## _write);
+
+/*-----------------------------------------------------------------------
+ * Registers RS1-RS5 R/W Description
+ * -------------------------------------------------------------------------*/
+#define PIT_68230_PGCR 0x00 /* RW Port General Control register */
+#define PIT_68230_PSRR 0x01 /* RW Port Service Request register */
+#define PIT_68230_PADDR 0x02 /* RW Port A Data Direction register */
+#define PIT_68230_PBDDR 0x03 /* RW Port B Data Direction register */
+#define PIT_68230_PCDDR 0x04 /* RW Port C Data Direction register */
+#define PIT_68230_PIVR 0x05 /* RW Port Interrupt vector register */
+#define PIT_68230_PACR 0x06 /* RW Port A Control register */
+#define PIT_68230_PBCR 0x07 /* RW Port B Control register */
+#define PIT_68230_PADR 0x08 /* RW Port A Data register */
+#define PIT_68230_PBDR 0x09 /* RW Port B Data register */
+#define PIT_68230_PAAR 0x0a /* RO Port A Alternate register */
+#define PIT_68230_PBAR 0x0b /* RO Port B Alternate register */
+#define PIT_68230_PCDR 0x0c /* RW Port C Data register */
+#define PIT_68230_PSR 0x0d /* RW Port Status register */
+#define PIT_68230_TCR 0x10 /* RW Timer Control Register */
+#define PIT_68230_TIVR 0x11 /* RW Timer Interrupt Vector Register */
+#define PIT_68230_CPRH 0x13 /* RW Counter Preload Register High */
+#define PIT_68230_CPRM 0x14 /* RW Counter Preload Register Middle */
+#define PIT_68230_CPRL 0x15 /* RW Counter Preload Register Low */
+#define PIT_68230_CNTRH 0x17 /* RO Counter Register High */
+#define PIT_68230_CNTRM 0x18 /* RO Counter Register Middle */
+#define PIT_68230_CNTRL 0x19 /* RO Counter Register Low */
+#define PIT_68230_TSR 0x1A /* RW Timer Status Register */
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+class pit68230_device : public device_t, public device_execute_interface
+{
+public:
+// construction/destruction
+pit68230_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, UINT32 variant, const char *shortname, const char *source);
+pit68230_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+template<class _Object> static devcb_base &set_pa_wr_callback (device_t &device, _Object object)
+{
+ return downcast<pit68230_device &>(device).m_write_pa.set_callback (object);
+}
+template<class _Object> static devcb_base &set_h2_wr_callback (device_t &device, _Object object)
+{
+ return downcast<pit68230_device &>(device).m_write_h2.set_callback (object);
+}
+
+DECLARE_WRITE8_MEMBER (write);
+DECLARE_READ8_MEMBER (read);
+
+void h1_set (UINT8 state);
+void portb_setbit (UINT8 bit, UINT8 state);
+
+protected:
+// device-level overrides
+virtual void device_start ();
+virtual void device_reset ();
+virtual void device_timer (emu_timer &timer, device_timer_id id, int param, void *ptr);
+virtual void execute_run ();
+int m_icount;
+devcb_write8 m_write_pa;
+devcb_write_line m_write_h2;
+
+// peripheral ports
+UINT8 m_pgcr; // Port General Control register
+UINT8 m_psrr; // Port Service Request register
+UINT8 m_paddr; // Port A Data Direction register
+UINT8 m_pbddr; // Port B Data Direction register
+UINT8 m_pcddr; // Port C Data Direction register
+UINT8 m_pacr; // Port A Control register
+UINT8 m_pbcr; // Port B Control register
+UINT8 m_padr; // Port A Data register
+UINT8 m_pbdr; // Port B Data register
+UINT8 m_psr; // Port Status Register
+};
+
+// device type definition
+extern const device_type PIT68230;
+#endif /* __68230PIT_H__ */
diff --git a/src/emu/machine/68307.c b/src/devices/machine/68307.c
index 320c701acc7..320c701acc7 100644
--- a/src/emu/machine/68307.c
+++ b/src/devices/machine/68307.c
diff --git a/src/emu/machine/68307.h b/src/devices/machine/68307.h
index 57b09b639ca..57b09b639ca 100644
--- a/src/emu/machine/68307.h
+++ b/src/devices/machine/68307.h
diff --git a/src/emu/machine/68307bus.c b/src/devices/machine/68307bus.c
index c9af37df775..c9af37df775 100644
--- a/src/emu/machine/68307bus.c
+++ b/src/devices/machine/68307bus.c
diff --git a/src/emu/machine/68307bus.h b/src/devices/machine/68307bus.h
index 5131ad4c9c5..5131ad4c9c5 100644
--- a/src/emu/machine/68307bus.h
+++ b/src/devices/machine/68307bus.h
diff --git a/src/emu/machine/68307sim.c b/src/devices/machine/68307sim.c
index 3709c346fbf..3709c346fbf 100644
--- a/src/emu/machine/68307sim.c
+++ b/src/devices/machine/68307sim.c
diff --git a/src/emu/machine/68307sim.h b/src/devices/machine/68307sim.h
index 59b33bee1e7..59b33bee1e7 100644
--- a/src/emu/machine/68307sim.h
+++ b/src/devices/machine/68307sim.h
diff --git a/src/emu/machine/68307tmu.c b/src/devices/machine/68307tmu.c
index 23a67ada9ad..23a67ada9ad 100644
--- a/src/emu/machine/68307tmu.c
+++ b/src/devices/machine/68307tmu.c
diff --git a/src/emu/machine/68307tmu.h b/src/devices/machine/68307tmu.h
index 2c62858b66d..2c62858b66d 100644
--- a/src/emu/machine/68307tmu.h
+++ b/src/devices/machine/68307tmu.h
diff --git a/src/emu/machine/68340.c b/src/devices/machine/68340.c
index 752a7be4592..752a7be4592 100644
--- a/src/emu/machine/68340.c
+++ b/src/devices/machine/68340.c
diff --git a/src/emu/machine/68340.h b/src/devices/machine/68340.h
index 6f1260ae1cb..6f1260ae1cb 100644
--- a/src/emu/machine/68340.h
+++ b/src/devices/machine/68340.h
diff --git a/src/emu/machine/68340dma.c b/src/devices/machine/68340dma.c
index 9ee0ae5114e..9ee0ae5114e 100644
--- a/src/emu/machine/68340dma.c
+++ b/src/devices/machine/68340dma.c
diff --git a/src/emu/machine/68340dma.h b/src/devices/machine/68340dma.h
index 56d8228fa2d..56d8228fa2d 100644
--- a/src/emu/machine/68340dma.h
+++ b/src/devices/machine/68340dma.h
diff --git a/src/emu/machine/68340ser.c b/src/devices/machine/68340ser.c
index 9e4118ec92e..9e4118ec92e 100644
--- a/src/emu/machine/68340ser.c
+++ b/src/devices/machine/68340ser.c
diff --git a/src/emu/machine/68340ser.h b/src/devices/machine/68340ser.h
index 0fda812ff0a..0fda812ff0a 100644
--- a/src/emu/machine/68340ser.h
+++ b/src/devices/machine/68340ser.h
diff --git a/src/emu/machine/68340sim.c b/src/devices/machine/68340sim.c
index 88e56d78763..88e56d78763 100644
--- a/src/emu/machine/68340sim.c
+++ b/src/devices/machine/68340sim.c
diff --git a/src/emu/machine/68340sim.h b/src/devices/machine/68340sim.h
index 493fa9805ce..493fa9805ce 100644
--- a/src/emu/machine/68340sim.h
+++ b/src/devices/machine/68340sim.h
diff --git a/src/emu/machine/68340tmu.c b/src/devices/machine/68340tmu.c
index f8109214ba0..f8109214ba0 100644
--- a/src/emu/machine/68340tmu.c
+++ b/src/devices/machine/68340tmu.c
diff --git a/src/emu/machine/68340tmu.h b/src/devices/machine/68340tmu.h
index a892e2792d8..a892e2792d8 100644
--- a/src/emu/machine/68340tmu.h
+++ b/src/devices/machine/68340tmu.h
diff --git a/src/emu/machine/6840ptm.c b/src/devices/machine/6840ptm.c
index 239498f681c..239498f681c 100644
--- a/src/emu/machine/6840ptm.c
+++ b/src/devices/machine/6840ptm.c
diff --git a/src/emu/machine/6840ptm.h b/src/devices/machine/6840ptm.h
index d00577d62d0..d00577d62d0 100644
--- a/src/emu/machine/6840ptm.h
+++ b/src/devices/machine/6840ptm.h
diff --git a/src/emu/machine/6850acia.c b/src/devices/machine/6850acia.c
index 7c1fcc85178..7c1fcc85178 100644
--- a/src/emu/machine/6850acia.c
+++ b/src/devices/machine/6850acia.c
diff --git a/src/emu/machine/6850acia.h b/src/devices/machine/6850acia.h
index 8bb1a3891bd..8bb1a3891bd 100644
--- a/src/emu/machine/6850acia.h
+++ b/src/devices/machine/6850acia.h
diff --git a/src/emu/machine/68561mpcc.c b/src/devices/machine/68561mpcc.c
index 1b8a8895fed..1b8a8895fed 100644
--- a/src/emu/machine/68561mpcc.c
+++ b/src/devices/machine/68561mpcc.c
diff --git a/src/emu/machine/68561mpcc.h b/src/devices/machine/68561mpcc.h
index df036282f1c..df036282f1c 100644
--- a/src/emu/machine/68561mpcc.h
+++ b/src/devices/machine/68561mpcc.h
diff --git a/src/emu/machine/7200fifo.c b/src/devices/machine/7200fifo.c
index ee44eada962..ee44eada962 100644
--- a/src/emu/machine/7200fifo.c
+++ b/src/devices/machine/7200fifo.c
diff --git a/src/emu/machine/7200fifo.h b/src/devices/machine/7200fifo.h
index 0f5c28e7048..0f5c28e7048 100644
--- a/src/emu/machine/7200fifo.h
+++ b/src/devices/machine/7200fifo.h
diff --git a/src/emu/machine/74123.c b/src/devices/machine/74123.c
index f88b71dfab8..f88b71dfab8 100644
--- a/src/emu/machine/74123.c
+++ b/src/devices/machine/74123.c
diff --git a/src/emu/machine/74123.h b/src/devices/machine/74123.h
index 93325bdbeb1..93325bdbeb1 100644
--- a/src/emu/machine/74123.h
+++ b/src/devices/machine/74123.h
diff --git a/src/emu/machine/74145.c b/src/devices/machine/74145.c
index f85439398de..f85439398de 100644
--- a/src/emu/machine/74145.c
+++ b/src/devices/machine/74145.c
diff --git a/src/emu/machine/74145.h b/src/devices/machine/74145.h
index 9b047207f1b..9b047207f1b 100644
--- a/src/emu/machine/74145.h
+++ b/src/devices/machine/74145.h
diff --git a/src/emu/machine/74148.c b/src/devices/machine/74148.c
index 02d1be3927a..02d1be3927a 100644
--- a/src/emu/machine/74148.c
+++ b/src/devices/machine/74148.c
diff --git a/src/emu/machine/74148.h b/src/devices/machine/74148.h
index 294869de12f..294869de12f 100644
--- a/src/emu/machine/74148.h
+++ b/src/devices/machine/74148.h
diff --git a/src/emu/machine/74153.c b/src/devices/machine/74153.c
index e38194f5d6e..e38194f5d6e 100644
--- a/src/emu/machine/74153.c
+++ b/src/devices/machine/74153.c
diff --git a/src/emu/machine/74153.h b/src/devices/machine/74153.h
index bfd9967e0e4..bfd9967e0e4 100644
--- a/src/emu/machine/74153.h
+++ b/src/devices/machine/74153.h
diff --git a/src/emu/machine/74181.c b/src/devices/machine/74181.c
index dee894446ea..dee894446ea 100644
--- a/src/emu/machine/74181.c
+++ b/src/devices/machine/74181.c
diff --git a/src/emu/machine/74181.h b/src/devices/machine/74181.h
index 5aeb64768f7..5aeb64768f7 100644
--- a/src/emu/machine/74181.h
+++ b/src/devices/machine/74181.h
diff --git a/src/emu/machine/7474.c b/src/devices/machine/7474.c
index 1b6ce95033d..1b6ce95033d 100644
--- a/src/emu/machine/7474.c
+++ b/src/devices/machine/7474.c
diff --git a/src/emu/machine/7474.h b/src/devices/machine/7474.h
index 9373e41d7d3..9373e41d7d3 100644
--- a/src/emu/machine/7474.h
+++ b/src/devices/machine/7474.h
diff --git a/src/emu/machine/8042kbdc.c b/src/devices/machine/8042kbdc.c
index a1d36a41b43..a1d36a41b43 100644
--- a/src/emu/machine/8042kbdc.c
+++ b/src/devices/machine/8042kbdc.c
diff --git a/src/emu/machine/8042kbdc.h b/src/devices/machine/8042kbdc.h
index b8d9c4e22fd..b8d9c4e22fd 100644
--- a/src/emu/machine/8042kbdc.h
+++ b/src/devices/machine/8042kbdc.h
diff --git a/src/emu/machine/8530scc.c b/src/devices/machine/8530scc.c
index 8180d01f869..8ca86e173f6 100644
--- a/src/emu/machine/8530scc.c
+++ b/src/devices/machine/8530scc.c
@@ -26,7 +26,7 @@ const device_type SCC8530 = &device_creator<scc8530_t>;
***************************************************************************/
scc8530_t::scc8530_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
- device_t(mconfig, SCC8530, "Zilog 8530 SCC", tag, owner, clock, "scc8530", __FILE__),
+ device_t(mconfig, SCC8530, "Zilog 8530 SCC (Legacy)", tag, owner, clock, "scc8530l", __FILE__),
intrq_cb(*this)
{
}
diff --git a/src/emu/machine/8530scc.h b/src/devices/machine/8530scc.h
index af4cef88e1e..af4cef88e1e 100644
--- a/src/emu/machine/8530scc.h
+++ b/src/devices/machine/8530scc.h
diff --git a/src/emu/machine/aakart.c b/src/devices/machine/aakart.c
index 762a1a2f8b9..762a1a2f8b9 100644
--- a/src/emu/machine/aakart.c
+++ b/src/devices/machine/aakart.c
diff --git a/src/emu/machine/aakart.h b/src/devices/machine/aakart.h
index bd59a54838a..bd59a54838a 100644
--- a/src/emu/machine/aakart.h
+++ b/src/devices/machine/aakart.h
diff --git a/src/emu/machine/adc0808.c b/src/devices/machine/adc0808.c
index dc173cc178e..dc173cc178e 100644
--- a/src/emu/machine/adc0808.c
+++ b/src/devices/machine/adc0808.c
diff --git a/src/emu/machine/adc0808.h b/src/devices/machine/adc0808.h
index a7d1c3eb6c5..a7d1c3eb6c5 100644
--- a/src/emu/machine/adc0808.h
+++ b/src/devices/machine/adc0808.h
diff --git a/src/emu/machine/adc083x.c b/src/devices/machine/adc083x.c
index 4f1b11cebf0..4f1b11cebf0 100644
--- a/src/emu/machine/adc083x.c
+++ b/src/devices/machine/adc083x.c
diff --git a/src/emu/machine/adc083x.h b/src/devices/machine/adc083x.h
index 60050506f81..60050506f81 100644
--- a/src/emu/machine/adc083x.h
+++ b/src/devices/machine/adc083x.h
diff --git a/src/emu/machine/adc1038.c b/src/devices/machine/adc1038.c
index 46b2d7c8e76..46b2d7c8e76 100644
--- a/src/emu/machine/adc1038.c
+++ b/src/devices/machine/adc1038.c
diff --git a/src/emu/machine/adc1038.h b/src/devices/machine/adc1038.h
index 1d6b0f890bc..1d6b0f890bc 100644
--- a/src/emu/machine/adc1038.h
+++ b/src/devices/machine/adc1038.h
diff --git a/src/emu/machine/adc1213x.c b/src/devices/machine/adc1213x.c
index f6104f273e3..f6104f273e3 100644
--- a/src/emu/machine/adc1213x.c
+++ b/src/devices/machine/adc1213x.c
diff --git a/src/emu/machine/adc1213x.h b/src/devices/machine/adc1213x.h
index 3f2f0dbc63c..3f2f0dbc63c 100644
--- a/src/emu/machine/adc1213x.h
+++ b/src/devices/machine/adc1213x.h
diff --git a/src/emu/machine/aicartc.c b/src/devices/machine/aicartc.c
index dc6dba7c2e6..dc6dba7c2e6 100644
--- a/src/emu/machine/aicartc.c
+++ b/src/devices/machine/aicartc.c
diff --git a/src/emu/machine/aicartc.h b/src/devices/machine/aicartc.h
index 1b877a604ff..1b877a604ff 100644
--- a/src/emu/machine/aicartc.h
+++ b/src/devices/machine/aicartc.h
diff --git a/src/emu/machine/akiko.c b/src/devices/machine/akiko.c
index 99acef43cab..99acef43cab 100644
--- a/src/emu/machine/akiko.c
+++ b/src/devices/machine/akiko.c
diff --git a/src/emu/machine/akiko.h b/src/devices/machine/akiko.h
index 9be2ac08185..9be2ac08185 100644
--- a/src/emu/machine/akiko.h
+++ b/src/devices/machine/akiko.h
diff --git a/src/emu/machine/am53cf96.c b/src/devices/machine/am53cf96.c
index 595a38f985b..595a38f985b 100644
--- a/src/emu/machine/am53cf96.c
+++ b/src/devices/machine/am53cf96.c
diff --git a/src/emu/machine/am53cf96.h b/src/devices/machine/am53cf96.h
index 8fda3ee0e5b..8fda3ee0e5b 100644
--- a/src/emu/machine/am53cf96.h
+++ b/src/devices/machine/am53cf96.h
diff --git a/src/emu/machine/am9517a.c b/src/devices/machine/am9517a.c
index 469da3d167f..469da3d167f 100644
--- a/src/emu/machine/am9517a.c
+++ b/src/devices/machine/am9517a.c
diff --git a/src/emu/machine/am9517a.h b/src/devices/machine/am9517a.h
index 817cf5ce9df..817cf5ce9df 100644
--- a/src/emu/machine/am9517a.h
+++ b/src/devices/machine/am9517a.h
diff --git a/src/emu/machine/amigafdc.c b/src/devices/machine/amigafdc.c
index 0be33c07ec9..0be33c07ec9 100644
--- a/src/emu/machine/amigafdc.c
+++ b/src/devices/machine/amigafdc.c
diff --git a/src/emu/machine/amigafdc.h b/src/devices/machine/amigafdc.h
index 77727d51a88..77727d51a88 100644
--- a/src/emu/machine/amigafdc.h
+++ b/src/devices/machine/amigafdc.h
diff --git a/src/emu/machine/at28c16.c b/src/devices/machine/at28c16.c
index e50049d9cbc..e50049d9cbc 100644
--- a/src/emu/machine/at28c16.c
+++ b/src/devices/machine/at28c16.c
diff --git a/src/emu/machine/at28c16.h b/src/devices/machine/at28c16.h
index f8f71011347..f8f71011347 100644
--- a/src/emu/machine/at28c16.h
+++ b/src/devices/machine/at28c16.h
diff --git a/src/devices/machine/at29x.c b/src/devices/machine/at29x.c
new file mode 100644
index 00000000000..440645b4c00
--- /dev/null
+++ b/src/devices/machine/at29x.c
@@ -0,0 +1,525 @@
+// license:BSD-3-Clause
+// copyright-holders:Michael Zapf
+/*
+ ATMEL AT29 family of Flash EEPROM
+
+ References:
+ [1] ATMEL: 4-megabit (512K x 8) 5-volt Only 256-byte sector Flash Memory
+ [2] ATMEL: Programming Atmel's AT29 Flash Family
+
+
+ AT29 family
+
+ Device Memory ID Sectors Sector Size Write Cycle Time Comments
+ ------------------------------------------------------------------------------------------
+ AT29C256 32K x 8 DC 512 64 bytes 10 ms
+ AT29LV256 32K x 8 BC 512 64 bytes 20 ms
+ AT29C257 32K x 8 DC 512 64 bytes 10 ms
+ AT29C512 64K x 8 5D 512 128 bytes 10 ms
+ AT29LV512 64K x 8 3D 512 128 bytes 20 ms
+ AT29C010A 128K x 8 D5 1024 128 bytes 10 ms
+ AT29LV010A 128K x 8 35 1024 128 bytes 20 ms
+ AT29BV010A 128K x 8 35 1024 128 bytes 20 ms
+ AT29C1024 64K x 16 25 512 128 words 10 ms
+ AT29LV1024 64K x 16 26 512 128 words 20 ms
+ AT29C020 256K x 8 DA 1024 256 bytes 10 ms
+ AT29LV020 256K x 8 BA 1024 256 bytes 20 ms
+ AT29BV020 256K x 8 BA 1024 256 bytes 20 ms
+ AT29C040 512K x 8 5B 1024 512 bytes 10 ms Use AT29C040A for new designs
+ AT29LV040 512K x 8 3B 1024 512 bytes 20 ms Use AT29LV040A for new designs
+ AT29BV040 512K x 8 3B 1024 512 bytes 20 ms Use AT29BV040A for new designs
+ AT29C040A 512K x 8 A4 2048 256 bytes 10 ms
+ AT29LV040A 512K x 8 C4 2048 256 bytes 20 ms
+ AT29BV040A 512K x 8 C4 2048 256 bytes 20 ms
+
+ TODO: Implement remaining variants
+
+ MZ, Aug 2015
+*/
+
+#include "at29x.h"
+
+#define TRACE_PRG 0
+#define TRACE_READ 0
+#define TRACE_WRITE 0
+#define TRACE_CONFIG 0
+#define TRACE_STATE 0
+
+enum
+{
+ PRGTIMER = 1
+};
+
+/*
+ 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 clock, const char *shortname, const char *source)
+ : device_t(mconfig, type, name, tag, owner, clock, shortname, source),
+ device_nvram_interface(mconfig, *this),
+ m_memory_size(0), // bytes
+ m_word_width(8),
+ m_device_id(0),
+ m_sector_size(0),
+ m_cycle_time(10), // ms
+ m_boot_block_size(16*1024),
+ m_version(0)
+{
+}
+
+/*
+ Constructor for AT29C020
+*/
+at29c020_device::at29c020_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : at29x_device(mconfig, AT29C020, "ATMEL 29C020 256K x 8 FEEPROM", tag, owner, clock, "at29c020", __FILE__)
+{
+ 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 clock)
+ : at29x_device(mconfig, AT29C040, "ATMEL 29C040 512K x 8 FEEPROM", tag, owner, clock, "at29c040", __FILE__)
+{
+ 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 clock)
+ : at29x_device(mconfig, AT29C040A, "ATMEL 29C040A 512K x 8 FEEPROM", tag, owner, clock, "at29c040a", __FILE__)
+{
+ m_memory_size = 512*1024;
+ m_device_id = 0xa4;
+ m_sector_size = 256;
+}
+
+
+//-------------------------------------------------
+// nvram_default - called to initialize NVRAM to
+// its default state
+//-------------------------------------------------
+
+void at29x_device::nvram_default()
+{
+ memset(m_eememory, 0, m_memory_size+2);
+}
+
+//-------------------------------------------------
+// nvram_read - called to read NVRAM from the
+// .nv file
+//-------------------------------------------------
+
+void at29x_device::nvram_read(emu_file &file)
+{
+ file.read(m_eememory, m_memory_size+2);
+}
+
+//-------------------------------------------------
+// nvram_write - called to write NVRAM to the
+// .nv file
+//-------------------------------------------------
+
+void at29x_device::nvram_write(emu_file &file)
+{
+ // If we don't write (because there were no changes), the file will be wiped
+ if (TRACE_PRG) logerror("%s: Write to NVRAM file\n", tag());
+ m_eememory[0] = m_version;
+ file.write(m_eememory, m_memory_size+2);
+}
+
+/*
+ Programming timer callback
+*/
+void at29x_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
+{
+ switch (m_pgm)
+ {
+ case PGM_1:
+ // Programming cycle timeout
+ logerror("%s: Programming cycle timeout\n", tag());
+ m_pgm = PGM_0;
+ break;
+
+ case PGM_2:
+ // Programming cycle start
+ if (TRACE_PRG) logerror("%s: Sector write start\n", tag());
+ m_pgm = PGM_3;
+ // We assume a typical delay of 70% of the max value
+ m_programming_timer->adjust(attotime::from_msec(m_cycle_time*7/10));
+ break;
+
+ case PGM_3:
+ // Programming cycle end; now burn the buffer into the flash EEPROM
+ memcpy(m_eememory + 2 + get_sector_number(m_programming_last_offset) * m_sector_size, m_programming_buffer, m_sector_size);
+
+ if (TRACE_PRG) logerror("%s: Sector write completed at location %04x\n", tag(), m_programming_last_offset);
+
+ // Data protect state will be activated at the end of the program cycle [1]
+ if (m_enabling_sdb) m_sdp = true;
+
+ // Data protect state will be deactivated at the end of the program period [1]
+ if (m_disabling_sdb) m_sdp = false;
+
+ if (TRACE_PRG) logerror("%s: Software data protection = %d\n", tag(), m_sdp);
+
+ m_pgm = PGM_0;
+ m_enabling_sdb = false;
+ m_disabling_sdb = false;
+ sync_flags();
+ break;
+
+ default:
+ logerror("%s: Invalid state %d during programming\n", tag(), m_pgm);
+ m_pgm = PGM_0;
+ break;
+ }
+}
+
+void at29x_device::sync_flags()
+{
+ if (m_lower_bbl) m_eememory[1] |= 0x04;
+ else m_eememory[1] &= ~0x04;
+
+ if (m_higher_bbl) m_eememory[1] |= 0x02;
+ else m_eememory[1] &= ~0x02;
+
+ if (m_sdp) m_eememory[1] |= 0x01;
+ else m_eememory[1] &= ~0x01;
+}
+
+/*
+ read a byte from FEEPROM
+*/
+READ8_MEMBER( at29x_device::read )
+{
+ int reply;
+
+ offset &= m_address_mask;
+
+ // Reading in the midst of any command sequence cancels it (not verified)
+ m_cmd = CMD_0;
+ m_long_sequence = false;
+
+ sync_flags();
+
+ // Reading before the start of a programming cycle cancels it (not verified)
+ if (m_pgm == PGM_1)
+ {
+ // Attempt to access a locked out boot block: cancel programming command if necessary
+ m_pgm = PGM_0;
+ m_enabling_sdb = false;
+ m_disabling_sdb = false;
+ m_programming_timer->adjust(attotime::never);
+ }
+
+ if (m_id_mode)
+ {
+ // Experiments showed that the manufacturer code and device code
+ // are returned for every address 0 and 1 modulo sector_size.
+ //
+ if ((offset % m_sector_size)==0) reply = 0x1f; // Manufacturer code
+ else
+ {
+ if ((offset % m_sector_size)==1) reply = m_device_id; // Device code
+ else
+ {
+ // Boot block lockout detection [1]
+ if (offset == 0x00002) reply = m_lower_bbl? 0xff : 0xfe;
+ else
+ {
+ if (offset == 0x7fff2) reply = m_higher_bbl? 0xff : 0xfe;
+ else reply = 0;
+ }
+ }
+ }
+ }
+ else if ((m_pgm == PGM_2) || (m_pgm == PGM_3))
+ {
+ if (m_pgm == PGM_2)
+ {
+ // DATA* polling starts the programming cycle (not verified)
+ m_pgm = PGM_3;
+
+ // We assume a typical delay of 70% of the max value
+ m_programming_timer->adjust(attotime::from_msec(m_cycle_time*7/10));
+ }
+
+ if (TRACE_READ) logerror("%s: DATA poll; toggle bit 1\n", tag());
+ reply = m_toggle_bit? 0x02 : 0x00;
+ m_toggle_bit = !m_toggle_bit;
+
+ // When we read the byte on the last position, we get the inverse of the last bit [1]
+ if (offset == m_programming_last_offset)
+ {
+ reply |= ((~m_programming_buffer[m_programming_last_offset & m_sector_mask]) & 0x01);
+ }
+ }
+ else
+ // Simple case: just read the memory contents
+ reply = m_eememory[offset+2];
+
+ if (TRACE_READ) logerror("%s: %05x -> %02x (PGM=%d)\n", tag(), offset, reply, m_pgm);
+
+ return reply;
+}
+
+/*
+ Write a byte to FEEPROM
+*/
+WRITE8_MEMBER( at29x_device::write )
+{
+ offset &= m_address_mask;
+ if (TRACE_WRITE) logerror("%s: %05x <- %02x\n", tag(), offset, data);
+
+ // The special CFI commands assume a smaller address space according
+ // to the specification ("address format A14-A0")
+ offs_t cfi_offset = offset & 0x7fff;
+
+ if (m_enabling_bbl)
+ {
+ // Determine whether we lock the upper or lower boot block
+ if (TRACE_STATE) logerror("%s: Enabling boot block lockout\n", tag());
+ m_enabling_bbl = false;
+
+ if ((offset == 0x00000) && (data == 0x00))
+ {
+ if (TRACE_STATE) logerror("%s: Enabling lower boot block lockout\n", tag());
+ m_lower_bbl = true;
+ sync_flags();
+ return;
+ }
+ else
+ {
+ if ((offset == 0x7ffff) && (data == 0xff))
+ {
+ if (TRACE_STATE) logerror("%s: Enabling higher boot block lockout\n", tag());
+ m_higher_bbl = true;
+ sync_flags();
+ return;
+ }
+ else
+ {
+ logerror("%s: Invalid boot block specification: %05x/%02x\n", tag(), offset, data);
+ }
+ }
+ }
+
+ switch (m_cmd)
+ {
+ case CMD_0:
+ // CMD_0: start state
+ if ((cfi_offset == 0x5555) && (data == 0xaa))
+ {
+ if (TRACE_STATE) logerror("%s: Command sequence started (aa)\n", tag());
+ m_cmd = CMD_1;
+ return;
+ }
+ else
+ {
+ m_cmd = CMD_0;
+ m_long_sequence = false;
+ }
+ break;
+
+ case CMD_1:
+ // CMD_1: state after writing aa to 5555
+ if ((cfi_offset == 0x2aaa) && (data == 0x55))
+ {
+ if (TRACE_STATE) logerror("%s: Command sequence continued (55)\n", tag());
+ m_cmd = CMD_2;
+ return;
+ }
+ else
+ {
+ m_cmd = CMD_0;
+ m_long_sequence = false;
+ if (TRACE_STATE) logerror("%s: Command sequence aborted\n", tag());
+ }
+ break;
+
+ case CMD_2:
+ // CMD_2: state after writing 55 to 2aaa
+ if (cfi_offset == 0x5555)
+ {
+ m_pgm = PGM_0;
+ m_enabling_sdb = false;
+ m_disabling_sdb = false;
+ m_programming_timer->adjust(attotime::never);
+
+ // Process command
+ if (TRACE_STATE) logerror("%s: Command sequence continued (%2x)\n", tag(), data);
+ switch (data)
+ {
+ case 0x10:
+ // Software chip erase (optional feature, see [1])
+ if (m_long_sequence)
+ {
+ if (m_lower_bbl || m_higher_bbl)
+ logerror("%s: Boot block lockout active; chip cannot be erased.\n", tag());
+ else
+ {
+ if (TRACE_STATE) logerror("%s: Erase chip\n", tag());
+ memset(m_eememory+2, 0xff, m_memory_size);
+ }
+ }
+ break;
+
+ case 0x20:
+ // Software data protection disable
+ // The complete sequence is aa-55-80-aa-55-20
+ // so we need a 80 before, else the sequence is invalid
+ if (m_long_sequence)
+ {
+ if (TRACE_STATE) logerror("%s: Software data protection disable\n", tag());
+ m_pgm = PGM_1;
+ m_disabling_sdb = true;
+ // It is not clear from the specification whether the byte cycle timer
+ // is already started here or when the first data byte is written
+ }
+ break;
+
+ case 0x40:
+ // Boot block lockout enable
+ // Complete sequence is aa-55-80-aa-55-40
+ if (TRACE_STATE) logerror("%s: Boot block lockout enable\n", tag());
+ if (m_long_sequence) m_enabling_bbl = true;
+ // We'll know which boot block is affected on the next write
+ break;
+
+ case 0x80:
+ // Long sequences are those that contain aa55 twice
+ m_long_sequence = true;
+ break;
+
+ case 0x90:
+ // Software product identification entry
+ if (TRACE_STATE) logerror("%s: Entering Identification mode\n", tag());
+ m_id_mode = true;
+ break;
+
+ case 0xa0:
+ // Software data protection enable
+ if (TRACE_STATE) logerror("%s: Software data protection enable\n", tag());
+ m_pgm = PGM_1;
+ m_enabling_sdb = true;
+ // It is not clear from the specification whether the byte cycle timer
+ // is already started here or when the first data byte is written
+ break;
+
+ case 0xf0:
+ // Software product identification exit
+ if (TRACE_STATE) logerror("%s: Exiting Identification mode\n", tag());
+ m_id_mode = false;
+ break;
+ }
+ m_cmd = CMD_0;
+ if (data != 0x80) m_long_sequence = false;
+
+ // Return, because we don't want to write the EEPROM with the command byte
+ return;
+ }
+ else
+ {
+ m_cmd = CMD_0;
+ m_long_sequence = false;
+ }
+ }
+
+ if ((m_pgm == PGM_2) && (get_sector_number(offset) != get_sector_number(m_programming_last_offset)))
+ {
+ // cancel current programming cycle
+ if (TRACE_WRITE) logerror("%s: Invalid sector change (from sector 0x%04x to 0x%04x); cancel programming cycle\n", tag(), get_sector_number(m_programming_last_offset), get_sector_number(offset));
+ m_pgm = PGM_0;
+ m_enabling_sdb = false;
+ m_disabling_sdb = false;
+ m_programming_timer->adjust(attotime::never);
+ }
+
+ if (((m_pgm == PGM_0) && !m_sdp) // write directly
+ || (m_pgm == PGM_1)) // write after unlocking
+ {
+ if (((offset < m_boot_block_size) && m_lower_bbl)
+ || ((offset >= m_memory_size-m_boot_block_size) && m_higher_bbl))
+ {
+ // attempt to access a locked out boot block: cancel programming
+ // command if necessary
+ if (TRACE_WRITE) logerror("%s: Attempt to access a locked out boot block: offset = %05x, lowblock=%d, highblock=%d\n", tag(), offset, m_lower_bbl, m_higher_bbl);
+
+ m_pgm = PGM_0;
+ m_enabling_sdb = false;
+ m_disabling_sdb = false;
+ }
+ else
+ { // enter programming mode
+ if (TRACE_STATE) logerror("%s: Enter programming mode (m_pgm=%d, m_sdp=%d)\n", tag(), m_pgm, m_sdp);
+ // Clear the programming buffer
+ memset(m_programming_buffer, 0xff, m_sector_size);
+ m_pgm = PGM_2;
+ }
+ }
+ // TODO: If data protection is active and bytes are written, the device
+ // enters a dummy write mode
+
+ if (m_pgm == PGM_2)
+ {
+ // write data to programming buffer
+ if (TRACE_PRG) logerror("%s: Write data to programming buffer: buf[%x] = %02x\n", tag(), offset & m_sector_mask, data);
+ m_programming_buffer[offset & m_sector_mask] = data;
+ m_programming_last_offset = offset;
+ m_programming_timer->adjust(attotime::from_usec(150)); // next byte must be written before the timer expires
+ }
+}
+
+void at29x_device::device_start(void)
+{
+ m_programming_buffer = global_alloc_array(UINT8, m_sector_size);
+ m_eememory = global_alloc_array(UINT8, m_memory_size+2);
+ m_programming_timer = timer_alloc(PRGTIMER);
+
+ // TODO: Complete 16-bit handling
+ m_address_mask = m_memory_size/(m_word_width/8) - 1;
+ m_sector_mask = m_sector_size - 1;
+}
+
+void at29x_device::device_stop(void)
+{
+ global_free_array(m_programming_buffer);
+ global_free_array(m_eememory);
+}
+
+void at29x_device::device_reset(void)
+{
+ if (m_eememory[0] != m_version)
+ {
+ logerror("%s: Warning: Version mismatch; expected %d but found %d in file. Resetting.\n", tag(), m_version, m_eememory[0]);
+ m_eememory[0] = 0;
+ m_eememory[1] = 0;
+ }
+
+ m_lower_bbl = ((m_eememory[1] & 0x04)!=0);
+ m_higher_bbl = ((m_eememory[1] & 0x02)!=0);
+ m_sdp = ((m_eememory[1] & 0x01)!=0);
+
+ if (TRACE_CONFIG) logerror("%s: LowerBBL = %d, HigherBBL = %d, SoftDataProt = %d\n", tag(), m_lower_bbl, m_higher_bbl, m_sdp);
+
+ m_id_mode = false;
+ m_cmd = CMD_0;
+ m_enabling_bbl = false;
+ m_long_sequence = false;
+ m_pgm = PGM_0;
+ m_enabling_sdb = false;
+ m_disabling_sdb = false;
+ m_toggle_bit = false;
+ m_programming_last_offset = 0;
+}
+
+const device_type AT29C020 = &device_creator<at29c020_device>;
+const device_type AT29C040 = &device_creator<at29c040_device>;
+const device_type AT29C040A = &device_creator<at29c040a_device>;
diff --git a/src/devices/machine/at29x.h b/src/devices/machine/at29x.h
new file mode 100644
index 00000000000..91c81c585cf
--- /dev/null
+++ b/src/devices/machine/at29x.h
@@ -0,0 +1,116 @@
+// license:BSD-3-Clause
+// copyright-holders:Raphael Nabet, Michael Zapf
+/*
+ ATMEL AT29 family
+
+ Michael Zapf
+ August 2015
+*/
+
+#ifndef __AT29X__
+#define __AT29X__
+
+#include "emu.h"
+
+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
+};
+
+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 clock, const char *shortname, const char *source);
+ DECLARE_READ8_MEMBER( read );
+ DECLARE_WRITE8_MEMBER( write );
+
+protected:
+ virtual void device_start(void);
+ virtual void device_reset(void);
+ virtual void device_stop(void);
+ virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
+
+ void nvram_default();
+ void nvram_read(emu_file &file);
+ void nvram_write(emu_file &file);
+
+ int get_sector_number(offs_t address) { return address / m_sector_size; }
+
+ int m_memory_size; // bytes
+ int m_word_width;
+ int m_device_id;
+ int m_sector_size;
+ int m_cycle_time; // ms
+ int m_boot_block_size;
+ int m_version;
+ int m_address_mask;
+ int m_sector_mask;
+
+private:
+ void sync_flags(void);
+
+ UINT8* m_eememory;
+
+ bool m_lower_bbl; // set when lower boot block lockout is enabled
+ bool m_higher_bbl; // set when upper boot block lockout is enabled
+ bool m_sdp; // set when in software data protect mode
+
+ bool m_id_mode; // set when in chip id mode
+ s_cmd_t m_cmd; // command state
+ bool m_enabling_bbl; // set when a boot block lockout command is expecting its parameter
+ bool m_long_sequence; // set if 0x80 command has just been executed (some command require this prefix)
+ s_pgm_t m_pgm; // programming state
+ bool m_enabling_sdb; // set when a sdp enable command is in progress
+ bool m_disabling_sdb; // set when a sdp disable command is in progress
+ bool m_toggle_bit; // indicates flashing in progress (toggles for each query)
+
+ UINT8* m_programming_buffer;
+ int m_programming_last_offset;
+ emu_timer* m_programming_timer;
+};
+
+/*
+ Variants
+*/
+class at29c020_device : public at29x_device
+{
+public:
+ at29c020_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+};
+
+class at29c040_device : public at29x_device
+{
+public:
+ at29c040_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+};
+
+class at29c040a_device : public at29x_device
+{
+public:
+ at29c040a_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+};
+
+#define MCFG_AT29C020_ADD(_tag ) \
+ MCFG_DEVICE_ADD(_tag, AT29C020, 0)
+
+#define MCFG_AT29C040_ADD(_tag ) \
+ MCFG_DEVICE_ADD(_tag, AT29C040, 0)
+
+#define MCFG_AT29C040A_ADD(_tag ) \
+ MCFG_DEVICE_ADD(_tag, AT29C040A, 0)
+
+#endif
diff --git a/src/emu/machine/at45dbxx.c b/src/devices/machine/at45dbxx.c
index 2890f8784d4..2890f8784d4 100644
--- a/src/emu/machine/at45dbxx.c
+++ b/src/devices/machine/at45dbxx.c
diff --git a/src/emu/machine/at45dbxx.h b/src/devices/machine/at45dbxx.h
index a1e41e88657..a1e41e88657 100644
--- a/src/emu/machine/at45dbxx.h
+++ b/src/devices/machine/at45dbxx.h
diff --git a/src/emu/machine/at_keybc.c b/src/devices/machine/at_keybc.c
index bc77324cf96..a2930d627f9 100644
--- a/src/emu/machine/at_keybc.c
+++ b/src/devices/machine/at_keybc.c
@@ -24,6 +24,15 @@ static ADDRESS_MAP_START( at_keybc_io, AS_IO, 8, at_keyboard_controller_device)
AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_READ( p1_r)
AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_READWRITE(p2_r, p2_w)
ADDRESS_MAP_END
+
+static INPUT_PORTS_START( at_keybc )
+ PORT_START("DSW")
+ PORT_BIT( 0xbf, 0xbf, IPT_UNUSED )
+ PORT_DIPNAME( 0x40, 0x00, "Display switch")
+ PORT_DIPSETTING( 0x40, "Monochrome adapter" )
+ PORT_DIPSETTING( 0x00, "Color/Graphics adapter" )
+INPUT_PORTS_END
+
// machine fragment
static MACHINE_CONFIG_FRAGMENT( at_keybc )
MCFG_CPU_ADD("at_keybc", I8042, DERIVED_CLOCK(1,1))
@@ -72,6 +81,15 @@ const rom_entry *at_keyboard_controller_device::device_rom_region() const
}
//-------------------------------------------------
+// input_ports - device-specific input ports
+//-------------------------------------------------
+
+ioport_constructor at_keyboard_controller_device::device_input_ports() const
+{
+ return INPUT_PORTS_NAME( at_keybc );
+}
+
+//-------------------------------------------------
// machine_config_additions - return a pointer to
// the device's machine fragment
//-------------------------------------------------
@@ -139,7 +157,7 @@ READ8_MEMBER( at_keyboard_controller_device::t1_r )
*/
READ8_MEMBER( at_keyboard_controller_device::p1_r )
{
- return 0xbf;
+ return ioport("DSW")->read();
}
READ8_MEMBER( at_keyboard_controller_device::p2_r )
diff --git a/src/emu/machine/at_keybc.h b/src/devices/machine/at_keybc.h
index f21c6d25035..2051071da5f 100644
--- a/src/emu/machine/at_keybc.h
+++ b/src/devices/machine/at_keybc.h
@@ -79,6 +79,7 @@ protected:
virtual void device_reset();
virtual const rom_entry *device_rom_region() const;
+ virtual ioport_constructor device_input_ports() const;
virtual machine_config_constructor device_mconfig_additions() const;
private:
diff --git a/src/emu/machine/atadev.c b/src/devices/machine/atadev.c
index 691ffe7562f..691ffe7562f 100644
--- a/src/emu/machine/atadev.c
+++ b/src/devices/machine/atadev.c
diff --git a/src/emu/machine/atadev.h b/src/devices/machine/atadev.h
index 3b96a6b580c..3b96a6b580c 100644
--- a/src/emu/machine/atadev.h
+++ b/src/devices/machine/atadev.h
diff --git a/src/emu/machine/ataflash.c b/src/devices/machine/ataflash.c
index 914ba2bcc65..914ba2bcc65 100644
--- a/src/emu/machine/ataflash.c
+++ b/src/devices/machine/ataflash.c
diff --git a/src/emu/machine/ataflash.h b/src/devices/machine/ataflash.h
index 3bfd198f1af..3bfd198f1af 100644
--- a/src/emu/machine/ataflash.h
+++ b/src/devices/machine/ataflash.h
diff --git a/src/emu/machine/atahle.c b/src/devices/machine/atahle.c
index 3a1599a3eed..850ab39d34f 100644
--- a/src/emu/machine/atahle.c
+++ b/src/devices/machine/atahle.c
@@ -110,6 +110,7 @@ void ata_hle_device::device_start()
save_item(NAME(m_identify_buffer));
m_busy_timer = timer_alloc(TID_BUSY);
+ m_buffer_empty_timer = timer_alloc(TID_BUFFER_EMPTY);
}
void ata_hle_device::device_reset()
@@ -158,6 +159,10 @@ void ata_hle_device::device_timer(emu_timer &timer, device_timer_id id, int para
finished_busy(param);
break;
+ case TID_BUFFER_EMPTY:
+ m_buffer_empty_timer->enable(false);
+ fill_buffer();
+ break;
}
}
@@ -346,16 +351,19 @@ int ata_hle_device::bit_to_mode(UINT16 word)
return -1;
}
+// Return the currently selected single word dma mode, -1 if none selected
int ata_hle_device::single_word_dma_mode()
{
return bit_to_mode(m_identify_buffer[62]);
}
+// Return the currently selected multi word dma mode, -1 if none selected
int ata_hle_device::multi_word_dma_mode()
{
return bit_to_mode(m_identify_buffer[63]);
}
+// Return the currently selected ultra dma mode, -1 if none selected
int ata_hle_device::ultra_dma_mode()
{
return bit_to_mode(m_identify_buffer[88]);
@@ -459,10 +467,11 @@ void ata_hle_device::read_buffer_empty()
m_status &= ~IDE_STATUS_DRQ;
- if (multi_word_dma_mode() >= 0)
+ if ((multi_word_dma_mode() >= 0) || (ultra_dma_mode() >= 0))
set_dmarq(CLEAR_LINE);
- fill_buffer();
+ m_buffer_empty_timer->enable(true);
+ m_buffer_empty_timer->adjust(attotime::zero);
}
void ata_hle_device::write_buffer_full()
@@ -471,7 +480,7 @@ void ata_hle_device::write_buffer_full()
m_status &= ~IDE_STATUS_DRQ;
- if (multi_word_dma_mode() >= 0)
+ if ((multi_word_dma_mode() >= 0) || (ultra_dma_mode() >= 0))
set_dmarq(CLEAR_LINE);
process_buffer();
@@ -547,6 +556,10 @@ UINT16 ata_hle_device::read_dma()
{
logerror( "%s: %s dev %d read_dma ignored (!DMARQ)\n", machine().describe_context(), tag(), dev() );
}
+ else if (!m_dmarq && ultra_dma_mode() >= 0)
+ {
+ logerror("%s: %s dev %d read_dma ignored (!DMARQ)\n", machine().describe_context(), tag(), dev());
+ }
else if (m_status & IDE_STATUS_BSY)
{
logerror( "%s: %s dev %d read_dma ignored (BSY)\n", machine().describe_context(), tag(), dev() );
@@ -767,6 +780,10 @@ void ata_hle_device::write_dma( UINT16 data )
{
logerror( "%s: %s dev %d write_dma %04x ignored (!DMARQ)\n", machine().describe_context(), tag(), dev(), data );
}
+ else if (!m_dmarq && ultra_dma_mode() >= 0)
+ {
+ logerror("%s: %s dev %d write_dma %04x ignored (!DMARQ)\n", machine().describe_context(), tag(), dev(), data);
+ }
else if (m_status & IDE_STATUS_BSY)
{
logerror( "%s: %s dev %d write_dma %04x ignored (BSY)\n", machine().describe_context(), tag(), dev(), data );
diff --git a/src/emu/machine/atahle.h b/src/devices/machine/atahle.h
index a1efe0d00dd..cd1d921fc37 100644
--- a/src/emu/machine/atahle.h
+++ b/src/devices/machine/atahle.h
@@ -34,6 +34,8 @@ public:
virtual DECLARE_WRITE_LINE_MEMBER(write_dmack);
virtual DECLARE_WRITE_LINE_MEMBER(write_pdiag);
+ TIMER_CALLBACK_MEMBER(buffer_empty_timer_work);
+
protected:
virtual void device_start();
virtual void device_reset();
@@ -122,6 +124,7 @@ protected:
IDE_COMMAND_WRITE_DMA = 0xca,
IDE_COMMAND_IDLE_IMMEDIATE = 0xe1,
IDE_COMMAND_IDLE = 0xe3,
+ IDE_COMMAND_CHECK_POWER_MODE = 0xe5,
IDE_COMMAND_CACHE_FLUSH = 0xe7,
IDE_COMMAND_IDENTIFY_DEVICE = 0xec,
IDE_COMMAND_SET_FEATURES = 0xef,
@@ -159,7 +162,8 @@ protected:
enum
{
- TID_BUSY
+ TID_BUSY,
+ TID_BUFFER_EMPTY
};
enum
@@ -212,6 +216,7 @@ private:
bool m_resetting;
emu_timer *m_busy_timer;
+ emu_timer *m_buffer_empty_timer;
};
#endif
diff --git a/src/emu/machine/ataintf.c b/src/devices/machine/ataintf.c
index 56c2031bd56..56c2031bd56 100644
--- a/src/emu/machine/ataintf.c
+++ b/src/devices/machine/ataintf.c
diff --git a/src/emu/machine/ataintf.h b/src/devices/machine/ataintf.h
index 01ee67e159f..01ee67e159f 100644
--- a/src/emu/machine/ataintf.h
+++ b/src/devices/machine/ataintf.h
diff --git a/src/emu/machine/atapicdr.c b/src/devices/machine/atapicdr.c
index 1588f6d17cd..1588f6d17cd 100644
--- a/src/emu/machine/atapicdr.c
+++ b/src/devices/machine/atapicdr.c
diff --git a/src/emu/machine/atapicdr.h b/src/devices/machine/atapicdr.h
index 535a5b801b1..fdc1e50eea2 100644
--- a/src/emu/machine/atapicdr.h
+++ b/src/devices/machine/atapicdr.h
@@ -23,6 +23,8 @@ public:
atapi_cdrom_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
atapi_cdrom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock,const char *shortname, const char *source);
+ UINT16 *identify_device_buffer() { return m_identify_buffer; }
+
protected:
// device-level overrides
virtual void device_start();
diff --git a/src/emu/machine/atapihle.c b/src/devices/machine/atapihle.c
index c57cde5c212..dcbc00fb26c 100644
--- a/src/emu/machine/atapihle.c
+++ b/src/devices/machine/atapihle.c
@@ -244,6 +244,12 @@ void atapi_hle_device::process_command()
set_irq(ASSERT_LINE);
break;
+ case IDE_COMMAND_CHECK_POWER_MODE:
+ m_status = IDE_STATUS_DRDY;
+ m_sector_count = 0xff; // Power mode: 0x00 = Standby, 0x80 = Idle mode, 0xff = Active mode or Idle mode
+ set_irq(ASSERT_LINE);
+ break;
+
default:
ata_hle_device::process_command();
break;
diff --git a/src/emu/machine/atapihle.h b/src/devices/machine/atapihle.h
index 4d33e60a378..4d33e60a378 100644
--- a/src/emu/machine/atapihle.h
+++ b/src/devices/machine/atapihle.h
diff --git a/src/emu/machine/autoconfig.c b/src/devices/machine/autoconfig.c
index 84b51cd8c24..84b51cd8c24 100644
--- a/src/emu/machine/autoconfig.c
+++ b/src/devices/machine/autoconfig.c
diff --git a/src/emu/machine/autoconfig.h b/src/devices/machine/autoconfig.h
index 042d3886189..042d3886189 100644
--- a/src/emu/machine/autoconfig.h
+++ b/src/devices/machine/autoconfig.h
diff --git a/src/emu/machine/ay31015.c b/src/devices/machine/ay31015.c
index 2ecd3f311f7..2ecd3f311f7 100644
--- a/src/emu/machine/ay31015.c
+++ b/src/devices/machine/ay31015.c
diff --git a/src/emu/machine/ay31015.h b/src/devices/machine/ay31015.h
index 2f2ae33eca8..2f2ae33eca8 100644
--- a/src/emu/machine/ay31015.h
+++ b/src/devices/machine/ay31015.h
diff --git a/src/emu/machine/bankdev.c b/src/devices/machine/bankdev.c
index 1a600527511..1a600527511 100644
--- a/src/emu/machine/bankdev.c
+++ b/src/devices/machine/bankdev.c
diff --git a/src/emu/machine/bankdev.h b/src/devices/machine/bankdev.h
index 54359fc6282..54359fc6282 100644
--- a/src/emu/machine/bankdev.h
+++ b/src/devices/machine/bankdev.h
diff --git a/src/emu/machine/bcreader.c b/src/devices/machine/bcreader.c
index 5a5df7fb452..5a5df7fb452 100644
--- a/src/emu/machine/bcreader.c
+++ b/src/devices/machine/bcreader.c
diff --git a/src/emu/machine/bcreader.h b/src/devices/machine/bcreader.h
index 23b80ddab70..23b80ddab70 100644
--- a/src/emu/machine/bcreader.h
+++ b/src/devices/machine/bcreader.h
diff --git a/src/emu/machine/buffer.c b/src/devices/machine/buffer.c
index 6b2058c6937..6b2058c6937 100644
--- a/src/emu/machine/buffer.c
+++ b/src/devices/machine/buffer.c
diff --git a/src/emu/machine/buffer.h b/src/devices/machine/buffer.h
index cab1b9914f4..cab1b9914f4 100644
--- a/src/emu/machine/buffer.h
+++ b/src/devices/machine/buffer.h
diff --git a/src/emu/machine/cdp1852.c b/src/devices/machine/cdp1852.c
index 7a91e4060c3..7a91e4060c3 100644
--- a/src/emu/machine/cdp1852.c
+++ b/src/devices/machine/cdp1852.c
diff --git a/src/emu/machine/cdp1852.h b/src/devices/machine/cdp1852.h
index 232e148e474..232e148e474 100644
--- a/src/emu/machine/cdp1852.h
+++ b/src/devices/machine/cdp1852.h
diff --git a/src/emu/machine/cdp1871.c b/src/devices/machine/cdp1871.c
index e685f8c43ad..e685f8c43ad 100644
--- a/src/emu/machine/cdp1871.c
+++ b/src/devices/machine/cdp1871.c
diff --git a/src/emu/machine/cdp1871.h b/src/devices/machine/cdp1871.h
index 651f9c4343d..651f9c4343d 100644
--- a/src/emu/machine/cdp1871.h
+++ b/src/devices/machine/cdp1871.h
diff --git a/src/emu/machine/clock.c b/src/devices/machine/clock.c
index 9896bebabcc..9896bebabcc 100644
--- a/src/emu/machine/clock.c
+++ b/src/devices/machine/clock.c
diff --git a/src/emu/machine/clock.h b/src/devices/machine/clock.h
index 9f3712327aa..9f3712327aa 100644
--- a/src/emu/machine/clock.h
+++ b/src/devices/machine/clock.h
diff --git a/src/emu/machine/com8116.c b/src/devices/machine/com8116.c
index 46a0ce83986..46a0ce83986 100644
--- a/src/emu/machine/com8116.c
+++ b/src/devices/machine/com8116.c
diff --git a/src/emu/machine/com8116.h b/src/devices/machine/com8116.h
index a423f3782d7..a423f3782d7 100644
--- a/src/emu/machine/com8116.h
+++ b/src/devices/machine/com8116.h
diff --git a/src/emu/machine/corvushd.c b/src/devices/machine/corvushd.c
index 0444d3cb530..0444d3cb530 100644
--- a/src/emu/machine/corvushd.c
+++ b/src/devices/machine/corvushd.c
diff --git a/src/emu/machine/corvushd.h b/src/devices/machine/corvushd.h
index bc83fa2585d..bc83fa2585d 100644
--- a/src/emu/machine/corvushd.h
+++ b/src/devices/machine/corvushd.h
diff --git a/src/emu/machine/cr511b.c b/src/devices/machine/cr511b.c
index 9ce22895dba..9ce22895dba 100644
--- a/src/emu/machine/cr511b.c
+++ b/src/devices/machine/cr511b.c
diff --git a/src/emu/machine/cr511b.h b/src/devices/machine/cr511b.h
index 59a8fc13fca..59a8fc13fca 100644
--- a/src/emu/machine/cr511b.h
+++ b/src/devices/machine/cr511b.h
diff --git a/src/emu/machine/cr589.c b/src/devices/machine/cr589.c
index 8c0ae34f6c9..8c0ae34f6c9 100644
--- a/src/emu/machine/cr589.c
+++ b/src/devices/machine/cr589.c
diff --git a/src/emu/machine/cr589.h b/src/devices/machine/cr589.h
index 87fe1c16641..87fe1c16641 100644
--- a/src/emu/machine/cr589.h
+++ b/src/devices/machine/cr589.h
diff --git a/src/emu/machine/cs4031.c b/src/devices/machine/cs4031.c
index b6d8de1acd8..b6d8de1acd8 100644
--- a/src/emu/machine/cs4031.c
+++ b/src/devices/machine/cs4031.c
diff --git a/src/emu/machine/cs4031.h b/src/devices/machine/cs4031.h
index e27886f7b41..e27886f7b41 100644
--- a/src/emu/machine/cs4031.h
+++ b/src/devices/machine/cs4031.h
diff --git a/src/emu/machine/cs8221.c b/src/devices/machine/cs8221.c
index 95a890d7bba..95a890d7bba 100644
--- a/src/emu/machine/cs8221.c
+++ b/src/devices/machine/cs8221.c
diff --git a/src/emu/machine/cs8221.h b/src/devices/machine/cs8221.h
index b2d04dfe89e..b2d04dfe89e 100644
--- a/src/emu/machine/cs8221.h
+++ b/src/devices/machine/cs8221.h
diff --git a/src/emu/machine/diablo_hd.c b/src/devices/machine/diablo_hd.c
index 9ee566350ff..9ee566350ff 100644
--- a/src/emu/machine/diablo_hd.c
+++ b/src/devices/machine/diablo_hd.c
diff --git a/src/emu/machine/diablo_hd.h b/src/devices/machine/diablo_hd.h
index 835cc2c281d..835cc2c281d 100644
--- a/src/emu/machine/diablo_hd.h
+++ b/src/devices/machine/diablo_hd.h
diff --git a/src/emu/machine/dmac.c b/src/devices/machine/dmac.c
index d739d64f308..d739d64f308 100644
--- a/src/emu/machine/dmac.c
+++ b/src/devices/machine/dmac.c
diff --git a/src/emu/machine/dmac.h b/src/devices/machine/dmac.h
index 52c5d64ff5d..52c5d64ff5d 100644
--- a/src/emu/machine/dmac.h
+++ b/src/devices/machine/dmac.h
diff --git a/src/emu/machine/dp8390.c b/src/devices/machine/dp8390.c
index e67499538ac..e67499538ac 100644
--- a/src/emu/machine/dp8390.c
+++ b/src/devices/machine/dp8390.c
diff --git a/src/emu/machine/dp8390.h b/src/devices/machine/dp8390.h
index 46889b3b025..46889b3b025 100644
--- a/src/emu/machine/dp8390.h
+++ b/src/devices/machine/dp8390.h
diff --git a/src/emu/machine/ds1204.c b/src/devices/machine/ds1204.c
index a35624a3c6a..a35624a3c6a 100644
--- a/src/emu/machine/ds1204.c
+++ b/src/devices/machine/ds1204.c
diff --git a/src/emu/machine/ds1204.h b/src/devices/machine/ds1204.h
index 7c8f1727c37..7c8f1727c37 100644
--- a/src/emu/machine/ds1204.h
+++ b/src/devices/machine/ds1204.h
diff --git a/src/emu/machine/ds128x.c b/src/devices/machine/ds128x.c
index 5b7fa8e0663..5b7fa8e0663 100644
--- a/src/emu/machine/ds128x.c
+++ b/src/devices/machine/ds128x.c
diff --git a/src/emu/machine/ds128x.h b/src/devices/machine/ds128x.h
index d07e785340f..d07e785340f 100644
--- a/src/emu/machine/ds128x.h
+++ b/src/devices/machine/ds128x.h
diff --git a/src/emu/machine/ds1302.c b/src/devices/machine/ds1302.c
index c254690cae0..c254690cae0 100644
--- a/src/emu/machine/ds1302.c
+++ b/src/devices/machine/ds1302.c
diff --git a/src/emu/machine/ds1302.h b/src/devices/machine/ds1302.h
index 15a6fad80c8..15a6fad80c8 100644
--- a/src/emu/machine/ds1302.h
+++ b/src/devices/machine/ds1302.h
diff --git a/src/emu/machine/ds1315.c b/src/devices/machine/ds1315.c
index 8470aaaaf9c..8470aaaaf9c 100644
--- a/src/emu/machine/ds1315.c
+++ b/src/devices/machine/ds1315.c
diff --git a/src/emu/machine/ds1315.h b/src/devices/machine/ds1315.h
index 0d5a7abc802..0d5a7abc802 100644
--- a/src/emu/machine/ds1315.h
+++ b/src/devices/machine/ds1315.h
diff --git a/src/emu/machine/ds2401.c b/src/devices/machine/ds2401.c
index 48182b2d2c3..48182b2d2c3 100644
--- a/src/emu/machine/ds2401.c
+++ b/src/devices/machine/ds2401.c
diff --git a/src/emu/machine/ds2401.h b/src/devices/machine/ds2401.h
index b8b1148dc37..b8b1148dc37 100644
--- a/src/emu/machine/ds2401.h
+++ b/src/devices/machine/ds2401.h
diff --git a/src/emu/machine/ds2404.c b/src/devices/machine/ds2404.c
index 57f8fa62d8f..57f8fa62d8f 100644
--- a/src/emu/machine/ds2404.c
+++ b/src/devices/machine/ds2404.c
diff --git a/src/emu/machine/ds2404.h b/src/devices/machine/ds2404.h
index 31ff35a99a6..31ff35a99a6 100644
--- a/src/emu/machine/ds2404.h
+++ b/src/devices/machine/ds2404.h
diff --git a/src/emu/machine/ds75160a.c b/src/devices/machine/ds75160a.c
index 1560fa4f0b2..1560fa4f0b2 100644
--- a/src/emu/machine/ds75160a.c
+++ b/src/devices/machine/ds75160a.c
diff --git a/src/emu/machine/ds75160a.h b/src/devices/machine/ds75160a.h
index d3ca0b38de6..d3ca0b38de6 100644
--- a/src/emu/machine/ds75160a.h
+++ b/src/devices/machine/ds75160a.h
diff --git a/src/emu/machine/ds75161a.c b/src/devices/machine/ds75161a.c
index 5ec21a0e003..5ec21a0e003 100644
--- a/src/emu/machine/ds75161a.c
+++ b/src/devices/machine/ds75161a.c
diff --git a/src/emu/machine/ds75161a.h b/src/devices/machine/ds75161a.h
index 83f129857e6..83f129857e6 100644
--- a/src/emu/machine/ds75161a.h
+++ b/src/devices/machine/ds75161a.h
diff --git a/src/emu/machine/e0516.c b/src/devices/machine/e0516.c
index 0fc743ba95c..0fc743ba95c 100644
--- a/src/emu/machine/e0516.c
+++ b/src/devices/machine/e0516.c
diff --git a/src/emu/machine/e0516.h b/src/devices/machine/e0516.h
index 8adcdc75948..8adcdc75948 100644
--- a/src/emu/machine/e0516.h
+++ b/src/devices/machine/e0516.h
diff --git a/src/emu/machine/e05a03.c b/src/devices/machine/e05a03.c
index 258c3d1ca0b..258c3d1ca0b 100644
--- a/src/emu/machine/e05a03.c
+++ b/src/devices/machine/e05a03.c
diff --git a/src/emu/machine/e05a03.h b/src/devices/machine/e05a03.h
index 03fa2aca98a..03fa2aca98a 100644
--- a/src/emu/machine/e05a03.h
+++ b/src/devices/machine/e05a03.h
diff --git a/src/emu/machine/e05a30.c b/src/devices/machine/e05a30.c
index 682a8fb96ec..709f103d48c 100644
--- a/src/emu/machine/e05a30.c
+++ b/src/devices/machine/e05a30.c
@@ -97,11 +97,11 @@ void e05a30_device::device_reset()
void e05a30_device::update_printhead(int pos, UINT8 data)
{
if (pos == 0) {
- m_printhead &= 0x00ff;
- m_printhead |= (UINT16) !!data << 8;
+ m_printhead &= 0x01fe;
+ m_printhead |= (data >> 7);
} else {
- m_printhead &= 0xff00;
- m_printhead |= data;
+ m_printhead &= 0x0001;
+ m_printhead |= (UINT16) (data << 1);
}
m_write_printhead(m_printhead);
}
diff --git a/src/emu/machine/e05a30.h b/src/devices/machine/e05a30.h
index 95e4fadb37c..95e4fadb37c 100644
--- a/src/emu/machine/e05a30.h
+++ b/src/devices/machine/e05a30.h
diff --git a/src/emu/machine/eeprom.c b/src/devices/machine/eeprom.c
index a0e8886e7f4..a0e8886e7f4 100644
--- a/src/emu/machine/eeprom.c
+++ b/src/devices/machine/eeprom.c
diff --git a/src/emu/machine/eeprom.h b/src/devices/machine/eeprom.h
index d6db74f5a21..d6db74f5a21 100644
--- a/src/emu/machine/eeprom.h
+++ b/src/devices/machine/eeprom.h
diff --git a/src/emu/machine/eeprompar.c b/src/devices/machine/eeprompar.c
index af575ec1419..af575ec1419 100644
--- a/src/emu/machine/eeprompar.c
+++ b/src/devices/machine/eeprompar.c
diff --git a/src/emu/machine/eeprompar.h b/src/devices/machine/eeprompar.h
index 84c4090f14e..84c4090f14e 100644
--- a/src/emu/machine/eeprompar.h
+++ b/src/devices/machine/eeprompar.h
diff --git a/src/emu/machine/eepromser.c b/src/devices/machine/eepromser.c
index 347accae06f..347accae06f 100644
--- a/src/emu/machine/eepromser.c
+++ b/src/devices/machine/eepromser.c
diff --git a/src/emu/machine/eepromser.h b/src/devices/machine/eepromser.h
index 49161ba883f..49161ba883f 100644
--- a/src/emu/machine/eepromser.h
+++ b/src/devices/machine/eepromser.h
diff --git a/src/emu/machine/er2055.c b/src/devices/machine/er2055.c
index 24ab1766744..24ab1766744 100644
--- a/src/emu/machine/er2055.c
+++ b/src/devices/machine/er2055.c
diff --git a/src/emu/machine/er2055.h b/src/devices/machine/er2055.h
index 58919f30e4c..58919f30e4c 100644
--- a/src/emu/machine/er2055.h
+++ b/src/devices/machine/er2055.h
diff --git a/src/emu/machine/f3853.c b/src/devices/machine/f3853.c
index a37e1b7e59b..a37e1b7e59b 100644
--- a/src/emu/machine/f3853.c
+++ b/src/devices/machine/f3853.c
diff --git a/src/emu/machine/f3853.h b/src/devices/machine/f3853.h
index f2afc03b588..f2afc03b588 100644
--- a/src/emu/machine/f3853.h
+++ b/src/devices/machine/f3853.h
diff --git a/src/emu/machine/fdc37c665gt.c b/src/devices/machine/fdc37c665gt.c
index 671d0314560..671d0314560 100644
--- a/src/emu/machine/fdc37c665gt.c
+++ b/src/devices/machine/fdc37c665gt.c
diff --git a/src/emu/machine/fdc37c665gt.h b/src/devices/machine/fdc37c665gt.h
index f9401ab56ce..f9401ab56ce 100644
--- a/src/emu/machine/fdc37c665gt.h
+++ b/src/devices/machine/fdc37c665gt.h
diff --git a/src/emu/machine/fdc_pll.c b/src/devices/machine/fdc_pll.c
index 32df60be493..cf616468a12 100644
--- a/src/emu/machine/fdc_pll.c
+++ b/src/devices/machine/fdc_pll.c
@@ -5,11 +5,11 @@
std::string fdc_pll_t::tts(attotime t)
{
char buf[256];
- bool neg = t.seconds < 0;
+ bool neg = t.seconds() < 0;
if(neg)
t = attotime::zero - t;
- int nsec = t.attoseconds / ATTOSECONDS_PER_NANOSECOND;
- sprintf(buf, "%c%3d.%03d,%03d,%03d", neg ? '-' : ' ', int(t.seconds), nsec/1000000, (nsec/1000)%1000, nsec % 1000);
+ int nsec = t.attoseconds() / ATTOSECONDS_PER_NANOSECOND;
+ sprintf(buf, "%c%3d.%03d,%03d,%03d", neg ? '-' : ' ', int(t.seconds()), nsec/1000000, (nsec/1000)%1000, nsec % 1000);
return buf;
}
@@ -80,7 +80,7 @@ int fdc_pll_t::get_next_bit(attotime &tm, floppy_image_device *floppy, const att
attotime delta = edge - (next - period/2);
- if(delta.seconds < 0)
+ if(delta.seconds() < 0)
phase_adjust = attotime::zero - ((attotime::zero - delta)*65)/100;
else
phase_adjust = (delta*65)/100;
diff --git a/src/emu/machine/fdc_pll.h b/src/devices/machine/fdc_pll.h
index 31eaae07d1b..31eaae07d1b 100644
--- a/src/emu/machine/fdc_pll.h
+++ b/src/devices/machine/fdc_pll.h
diff --git a/src/emu/machine/gayle.c b/src/devices/machine/gayle.c
index bf56f2aaf9e..bf56f2aaf9e 100644
--- a/src/emu/machine/gayle.c
+++ b/src/devices/machine/gayle.c
diff --git a/src/emu/machine/gayle.h b/src/devices/machine/gayle.h
index 19e9cc5df73..19e9cc5df73 100644
--- a/src/emu/machine/gayle.h
+++ b/src/devices/machine/gayle.h
diff --git a/src/emu/machine/hd63450.c b/src/devices/machine/hd63450.c
index 9528026b95e..9528026b95e 100644
--- a/src/emu/machine/hd63450.c
+++ b/src/devices/machine/hd63450.c
diff --git a/src/emu/machine/hd63450.h b/src/devices/machine/hd63450.h
index baf6d0337f1..baf6d0337f1 100644
--- a/src/emu/machine/hd63450.h
+++ b/src/devices/machine/hd63450.h
diff --git a/src/emu/machine/hd64610.c b/src/devices/machine/hd64610.c
index d4639892e17..d4639892e17 100644
--- a/src/emu/machine/hd64610.c
+++ b/src/devices/machine/hd64610.c
diff --git a/src/emu/machine/hd64610.h b/src/devices/machine/hd64610.h
index cb1d79d8388..cb1d79d8388 100644
--- a/src/emu/machine/hd64610.h
+++ b/src/devices/machine/hd64610.h
diff --git a/src/emu/machine/hdc9234.c b/src/devices/machine/hdc92x4.c
index 4247f17aa51..4b4253cfa8c 100644
--- a/src/emu/machine/hdc9234.c
+++ b/src/devices/machine/hdc92x4.c
@@ -2,29 +2,28 @@
// copyright-holders:Michael Zapf
/**************************************************************************
- HDC9234 Hard and Floppy Disk Controller
+ HDC 9224 and HDC 9234 Hard and Floppy Disk Controller
Standard Microsystems Corporation (SMC)
This controller handles MFM and FM encoded floppy disks and hard disks.
- A variant, the HDC9224, is used in some DEC systems.
-
- The HDC9234 is used in the Myarc HFDC card for the TI99/4A.
References:
[1] SMC HDC9234 preliminary data book (1988)
+ [2] SMC HDC9224 data book
- The HDC9234 controller is also referred to as the "Universal Disk Controller" (UDC)
+ The HDC 9224 / 9234 controller is also referred to as the "Universal Disk Controller" (UDC)
by the data book
- Michael Zapf, July 2015
+ Michael Zapf, August 2015
***************************************************************************/
#include "emu.h"
-#include "hdc9234.h"
+#include "hdc92x4.h"
#include "formats/imageutl.h"
// Per-command debugging
+#define TRACE_COMMAND 0
#define TRACE_SELECT 0
#define TRACE_STEP 0
#define TRACE_RESTORE 0
@@ -410,30 +409,30 @@ enum
SUCCESS
};
-const hdc9234_device::cmddef hdc9234_device::s_command[] =
+const hdc92x4_device::cmddef hdc92x4_device::s_command[] =
{
- { 0x00, 0xff, &hdc9234_device::reset_controller },
- { 0x01, 0xff, &hdc9234_device::drive_deselect },
- { 0x02, 0xfe, &hdc9234_device::restore_drive },
- { 0x04, 0xfc, &hdc9234_device::step_drive },
- { 0x08, 0xf8, &hdc9234_device::tape_backup },
- { 0x10, 0xf0, &hdc9234_device::poll_drives },
- { 0x20, 0xe0, &hdc9234_device::drive_select },
- { 0x40, 0xf0, &hdc9234_device::set_register_pointer },
- { 0x50, 0xf8, &hdc9234_device::seek_read_id },
- { 0x58, 0xfe, &hdc9234_device::read_sectors },
- { 0x5a, 0xfe, &hdc9234_device::read_track },
- { 0x5c, 0xfc, &hdc9234_device::read_sectors },
- { 0x60, 0xe0, &hdc9234_device::format_track },
- { 0x80, 0x80, &hdc9234_device::write_sectors },
+ { 0x00, 0xff, &hdc92x4_device::reset_controller },
+ { 0x01, 0xff, &hdc92x4_device::drive_deselect },
+ { 0x02, 0xfe, &hdc92x4_device::restore_drive },
+ { 0x04, 0xfc, &hdc92x4_device::step_drive },
+ { 0x08, 0xf8, &hdc92x4_device::tape_backup },
+ { 0x10, 0xf0, &hdc92x4_device::poll_drives },
+ { 0x20, 0xe0, &hdc92x4_device::drive_select },
+ { 0x40, 0xf0, &hdc92x4_device::set_register_pointer },
+ { 0x50, 0xf8, &hdc92x4_device::seek_read_id },
+ { 0x58, 0xfe, &hdc92x4_device::read_sectors },
+ { 0x5a, 0xfe, &hdc92x4_device::read_track },
+ { 0x5c, 0xfc, &hdc92x4_device::read_sectors },
+ { 0x60, 0xe0, &hdc92x4_device::format_track },
+ { 0x80, 0x80, &hdc92x4_device::write_sectors },
{ 0, 0, 0 }
};
/*
- Standard constructor.
+ Standard constructor for the base class and the two variants
*/
-hdc9234_device::hdc9234_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
- : device_t(mconfig, HDC9234, "SMC HDC9234 Universal Disk Controller", tag, owner, clock, "hdc9234", __FILE__),
+hdc92x4_device::hdc92x4_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source)
+ : device_t(mconfig, type, name, tag, owner, clock, shortname, source),
m_out_intrq(*this),
m_out_dmarq(*this),
m_out_dip(*this),
@@ -444,10 +443,23 @@ hdc9234_device::hdc9234_device(const machine_config &mconfig, const char *tag, d
{
}
+hdc9224_device::hdc9224_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : hdc92x4_device(mconfig, HDC9224, "SMC HDC9224 Universal Disk Controller", tag, owner, clock, "hdc9224", __FILE__)
+{
+ m_is_hdc9234 = false;
+}
+
+hdc9234_device::hdc9234_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : hdc92x4_device(mconfig, HDC9234, "SMC HDC9234 Universal Disk Controller", tag, owner, clock, "hdc9234", __FILE__)
+{
+ m_is_hdc9234 = true;
+}
+
+
/*
Set or reset some bits.
*/
-void hdc9234_device::set_bits(UINT8& byte, int mask, bool set)
+void hdc92x4_device::set_bits(UINT8& byte, int mask, bool set)
{
if (set) byte |= mask;
else byte &= ~mask;
@@ -456,7 +468,7 @@ void hdc9234_device::set_bits(UINT8& byte, int mask, bool set)
/*
Tell whether the controller is in FM mode.
*/
-bool hdc9234_device::fm_mode()
+bool hdc92x4_device::fm_mode()
{
return ((m_register_w[MODE]&MO_DENSITY)!=0);
}
@@ -464,7 +476,7 @@ bool hdc9234_device::fm_mode()
/*
Are we back on track 0?
*/
-bool hdc9234_device::on_track00()
+bool hdc92x4_device::on_track00()
{
return (m_register_r[DRIVE_STATUS] & HDC_DS_TRK00)!=0;
}
@@ -472,7 +484,7 @@ bool hdc9234_device::on_track00()
/*
Seek completed?
*/
-bool hdc9234_device::seek_complete()
+bool hdc92x4_device::seek_complete()
{
return (m_register_r[DRIVE_STATUS] & HDC_DS_SKCOM)!=0;
}
@@ -480,7 +492,7 @@ bool hdc9234_device::seek_complete()
/*
Index hole?
*/
-bool hdc9234_device::index_hole()
+bool hdc92x4_device::index_hole()
{
return (m_register_r[DRIVE_STATUS] & HDC_DS_INDEX)!=0;
}
@@ -488,7 +500,7 @@ bool hdc9234_device::index_hole()
/*
Drive ready?
*/
-bool hdc9234_device::drive_ready()
+bool hdc92x4_device::drive_ready()
{
return (m_register_r[DRIVE_STATUS] & HDC_DS_READY)!=0;
}
@@ -496,7 +508,7 @@ bool hdc9234_device::drive_ready()
/*
Doing a track read?
*/
-bool hdc9234_device::reading_track()
+bool hdc92x4_device::reading_track()
{
return (current_command() & 0xfe) == 0x5a;
}
@@ -511,42 +523,42 @@ bool hdc9234_device::reading_track()
This is true for the desired cyl/head, current cyl/head, and the header
fields on the track.
*/
-int hdc9234_device::desired_head()
+int hdc92x4_device::desired_head()
{
return m_register_w[DESIRED_HEAD] & 0x0f;
}
-int hdc9234_device::desired_cylinder()
+int hdc92x4_device::desired_cylinder()
{
return (m_register_w[DESIRED_CYLINDER] & 0xff) | ((m_register_w[DESIRED_HEAD] & 0x70) << 4);
}
-int hdc9234_device::desired_sector()
+int hdc92x4_device::desired_sector()
{
return m_register_w[DESIRED_SECTOR] & 0xff;
}
-int hdc9234_device::current_head()
+int hdc92x4_device::current_head()
{
return m_register_r[CURRENT_HEAD] & 0x0f;
}
-int hdc9234_device::current_cylinder()
+int hdc92x4_device::current_cylinder()
{
return (m_register_r[CURRENT_CYLINDER] & 0xff) | ((m_register_r[CURRENT_HEAD] & 0x70) << 4);
}
-int hdc9234_device::current_sector()
+int hdc92x4_device::current_sector()
{
return m_register_r[CURRENT_SECTOR] & 0xff;
}
-UINT8 hdc9234_device::current_command()
+UINT8 hdc92x4_device::current_command()
{
return m_register_w[COMMAND];
}
-bool hdc9234_device::using_floppy()
+bool hdc92x4_device::using_floppy()
{
return (m_selected_drive_type == TYPE_FLOPPY5 || m_selected_drive_type == TYPE_FLOPPY8);
}
@@ -554,7 +566,7 @@ bool hdc9234_device::using_floppy()
/*
Delivers the step time (in microseconds) minus the pulse width
*/
-int hdc9234_device::step_time()
+int hdc92x4_device::step_time()
{
int time = 0;
int index = m_register_w[MODE] & MO_STEPRATE;
@@ -574,7 +586,7 @@ int hdc9234_device::step_time()
/*
Delivers the pulse width time (in microseconds)
*/
-int hdc9234_device::pulse_width()
+int hdc92x4_device::pulse_width()
{
int time = 0;
// Get seek time.
@@ -593,7 +605,7 @@ int hdc9234_device::pulse_width()
/*
Delivers the sector size
*/
-int hdc9234_device::calc_sector_size()
+int hdc92x4_device::calc_sector_size()
{
return 128 << (m_register_r[CURRENT_SIZE] & 3);
}
@@ -603,26 +615,27 @@ int hdc9234_device::calc_sector_size()
// We can wait for a given time period or for a line to be set or cleared
// ===========================================================================
-void hdc9234_device::wait_time(emu_timer *tm, int microsec, int next_substate)
+void hdc92x4_device::wait_time(emu_timer *tm, int microsec, int next_substate)
{
- if (TRACE_DELAY) logerror("%s: Delay by %d microsec\n", tag(), microsec);
- tm->adjust(attotime::from_usec(microsec));
- m_substate = next_substate;
+ wait_time(tm, attotime::from_usec(microsec), next_substate);
}
-void hdc9234_device::wait_time(emu_timer *tm, const attotime &delay, int param)
+void hdc92x4_device::wait_time(emu_timer *tm, const attotime &delay, int param)
{
if (TRACE_DELAY) logerror("%s: [%s] Delaying by %4.2f microsecs\n", tag(), ttsn().c_str(), delay.as_double()*1000000);
tm->adjust(delay);
m_substate = param;
+ m_state_after_line = UNDEF;
+ m_timed_wait = true;
}
/*
Set the hook for line level handling
*/
-void hdc9234_device::wait_line(int line, line_state level, int substate, bool stopwrite)
+void hdc92x4_device::wait_line(int line, line_state level, int substate, bool stopwrite)
{
bool line_at_level = true;
+ m_timed_wait = false;
if (line == SEEKCOMP_LINE && (seek_complete() == (level==ASSERT_LINE)))
{
@@ -675,7 +688,7 @@ void hdc9234_device::wait_line(int line, line_state level, int substate, bool st
(must have saved that value before!)
- steps to that location during OUTPUT2 times
*/
-void hdc9234_device::read_id(int& cont, bool implied_seek, bool wait_seek_complete)
+void hdc92x4_device::read_id(int& cont, bool implied_seek, bool wait_seek_complete)
{
cont = CONTINUE;
@@ -775,7 +788,7 @@ void hdc9234_device::read_id(int& cont, bool implied_seek, bool wait_seek_comple
break;
default:
- logerror("%s: unknown substate %02x in read_id\n", tag(), m_substate);
+ logerror("%s: BUG: Unknown substate %02x in read_id, aborting command\n", tag(), m_substate);
cont = ERROR;
}
}
@@ -795,7 +808,7 @@ void hdc9234_device::read_id(int& cont, bool implied_seek, bool wait_seek_comple
contents of the DESIRED_HEAD/CYLINDER/SECTOR registers
- checks the CRC
*/
-void hdc9234_device::verify(int& cont)
+void hdc92x4_device::verify(int& cont)
{
cont = CONTINUE;
@@ -887,7 +900,7 @@ void hdc9234_device::verify(int& cont)
break;
default:
- logerror("%s: unknown substate %02x in verify\n", tag(), m_substate);
+ logerror("%s: BUG: Unknown substate %02x in verify, aborting command\n", tag(), m_substate);
cont = ERROR;
}
}
@@ -909,7 +922,7 @@ void hdc9234_device::verify(int& cont)
- transfers the contents of the current sector into memory via DMA (read) or
via DMA to the sector (write)
*/
-void hdc9234_device::data_transfer(int& cont)
+void hdc92x4_device::data_transfer(int& cont)
{
cont = CONTINUE;
@@ -1059,7 +1072,7 @@ void hdc9234_device::data_transfer(int& cont)
break;
default:
- logerror("%s: unknown substate %02x in data_transfer\n", tag(), m_substate);
+ logerror("%s: BUG: Unknown substate %02x in data_transfer, aborting command\n", tag(), m_substate);
cont = ERROR;
}
}
@@ -1090,7 +1103,7 @@ void hdc9234_device::data_transfer(int& cont)
+-----+-----+-----+-----+-----+-----+-----+-----+
*/
-void hdc9234_device::reset_controller()
+void hdc92x4_device::reset_controller()
{
logerror("%s: RESET command\n", tag());
device_reset();
@@ -1107,7 +1120,7 @@ void hdc9234_device::reset_controller()
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
+-----+-----+-----+-----+-----+-----+-----+-----+
*/
-void hdc9234_device::drive_deselect()
+void hdc92x4_device::drive_deselect()
{
if (TRACE_SELECT) logerror("%s: DESELECT command\n", tag());
m_selected_drive_number = NODRIVE;
@@ -1127,7 +1140,7 @@ void hdc9234_device::drive_deselect()
| 0 | 0 | 0 | 0 | 0 | 0 | 1 |skcom|
+-----+-----+-----+-----+-----+-----+-----+-----+
*/
-void hdc9234_device::restore_drive()
+void hdc92x4_device::restore_drive()
{
int cont = CONTINUE;
bool buffered_step = current_command() & 1;
@@ -1181,7 +1194,7 @@ void hdc9234_device::restore_drive()
break;
case STEP_ON:
- if (TRACE_RESTORE && TRACE_SUBSTATES) logerror("%s: substate STEP_ON\n", tag());
+ if (TRACE_RESTORE && TRACE_SUBSTATES) logerror("%s: [%s] substate STEP_ON\n", tag(), ttsn().c_str());
// Increase step count
m_seek_count++;
@@ -1196,7 +1209,7 @@ void hdc9234_device::restore_drive()
break;
case STEP_OFF:
- if (TRACE_RESTORE && TRACE_SUBSTATES) logerror("%s: substate STEP_OFF\n", tag());
+ if (TRACE_RESTORE && TRACE_SUBSTATES) logerror("%s: [%s] substate STEP_OFF\n", tag(), ttsn().c_str());
set_bits(m_output2, OUT2_STEPPULSE, false);
wait_time(m_timer, step_time(), RESTORE_CHECK);
cont = WAIT;
@@ -1231,7 +1244,7 @@ void hdc9234_device::restore_drive()
+-----+-----+-----+-----+-----+-----+-----+-----+
*/
-void hdc9234_device::step_drive()
+void hdc92x4_device::step_drive()
{
int cont = CONTINUE;
@@ -1281,7 +1294,7 @@ void hdc9234_device::step_drive()
TAPE BACKUP
Not implemented
*/
-void hdc9234_device::tape_backup()
+void hdc92x4_device::tape_backup()
{
logerror("%s: TAPE BACKUP command %02x not implemented\n", tag(), current_command());
set_command_done(TC_SUCCESS);
@@ -1304,7 +1317,7 @@ void hdc9234_device::tape_backup()
This command only sets the select lines but does not process parameters
like head load times or drive types.
*/
-void hdc9234_device::poll_drives()
+void hdc92x4_device::poll_drives()
{
UINT8 drivebit = 0;
if (m_substate == UNDEF)
@@ -1387,7 +1400,7 @@ void hdc9234_device::poll_drives()
+-----+-----+-----+-----+-----+-----+-----+-----+
*/
-void hdc9234_device::drive_select()
+void hdc92x4_device::drive_select()
{
int cont = CONTINUE;
int head_load_delay = 0;
@@ -1448,7 +1461,7 @@ void hdc9234_device::drive_select()
Sets the pointer to the read and write registers. On read or write accesses,
the pointer is increased until it reaches the DATA register.
*/
-void hdc9234_device::set_register_pointer()
+void hdc92x4_device::set_register_pointer()
{
m_register_pointer = current_command() & 0xf;
if (TRACE_SETPTR) logerror("%s: SET REGISTER POINTER command; start reg=%d\n", tag(), m_register_pointer);
@@ -1477,7 +1490,7 @@ void hdc9234_device::set_register_pointer()
All combinations of flags are legal ([1], p.12).
*/
-void hdc9234_device::seek_read_id()
+void hdc92x4_device::seek_read_id()
{
if (m_substate == UNDEF)
{
@@ -1510,7 +1523,8 @@ void hdc9234_device::seek_read_id()
cont = SUCCESS;
break;
default:
- logerror("%s: unknown substate %02x in seek_read_id\n", tag(), m_substate);
+ logerror("%s: BUG: Unknown substate %02x in seek_read_id, aborting command\n", tag(), m_substate);
+ set_command_done(TC_DATAERR);
cont = ERROR;
}
}
@@ -1539,7 +1553,7 @@ void hdc9234_device::seek_read_id()
+-----+-----+-----+-----+-----+--------+------+------+
*/
-void hdc9234_device::read_sectors()
+void hdc92x4_device::read_sectors()
{
m_logical = (current_command() & 0x04)!=0;
@@ -1572,7 +1586,8 @@ void hdc9234_device::read_sectors()
data_transfer(cont);
break;
default:
- logerror("%s: unknown substate %02x in read_sectors\n", tag(), m_substate);
+ logerror("%s: BUG: Unknown substate %02x in read_sectors, aborting command\n", tag(), m_substate);
+ set_command_done(TC_DATAERR);
cont = ERROR;
}
}
@@ -1593,7 +1608,7 @@ void hdc9234_device::read_sectors()
+-----+-----+-----+-----+-----+-----+-----+------+
*/
-void hdc9234_device::read_track()
+void hdc92x4_device::read_track()
{
if (m_substate == UNDEF)
{
@@ -1698,16 +1713,16 @@ void hdc9234_device::read_track()
7 6 5 4 3 2 1 0
+-----+-----+-----+------+-----+-----+-----+------+
- | 0 | 1 | 1 |Normal|RedWC| Precompensation |
+ | 0 | 1 | 1 |DelMrk|RedWC| Precompensation |
+-----+-----+-----+------+-----+-----+-----+------+
*/
-void hdc9234_device::format_track()
+void hdc92x4_device::format_track()
{
if (m_substate == UNDEF)
{
if (TRACE_FORMAT) logerror("%s: FORMAT TRACK command %02x, head = %d\n", tag(), current_command(), desired_head());
m_substate = WAITINDEX0;
- m_deleted = (current_command() & 0x10)==0;
+ m_deleted = (current_command() & 0x10)!=0;
m_reduced_write_current = (current_command() & 0x08)!=0;
m_precompensation = (current_command() & 0x07);
m_write = true;
@@ -1793,13 +1808,10 @@ void hdc9234_device::format_track()
7 6 5 4 3 2 1 0
+-----+------+-------+------+-----+-----+-----+------+
- | 1 |NoSeek|Logical|Normal|RedWC| Precompensation |
+ | 1 |NoSeek|Logical|DelMrk|RedWC| Precompensation |
+-----+------+-------+------+-----+-----+-----+------+
-
- Write physical: typical value 11000000
- Write logical : typical value 10110000
*/
-void hdc9234_device::write_sectors()
+void hdc92x4_device::write_sectors()
{
m_logical = (current_command() & 0x20)!=0;
@@ -1809,7 +1821,7 @@ void hdc9234_device::write_sectors()
m_multi_sector = (m_register_w[SECTOR_COUNT] != 1);
m_substate = READ_ID;
- m_deleted = (current_command() & 0x10)==0;
+ m_deleted = (current_command() & 0x10)!=0;
m_reduced_write_current = (current_command() & 0x08)!=0;
m_precompensation = (current_command() & 0x07);
// Important for DATA TRANSFER
@@ -1857,7 +1869,8 @@ void hdc9234_device::write_sectors()
data_transfer(cont);
break;
default:
- logerror("%s: unknown substate %02x in write_sectors\n", tag(), m_substate);
+ logerror("%s: BUG: Unknown substate %02x in write_sectors, aborting command\n", tag(), m_substate);
+ set_command_done(TC_DATAERR);
cont = ERROR;
}
}
@@ -1880,20 +1893,20 @@ void hdc9234_device::write_sectors()
===========================================================================
*/
-std::string hdc9234_device::tts(const attotime &t)
+std::string hdc92x4_device::tts(const attotime &t)
{
char buf[256];
- int nsec = t.attoseconds / ATTOSECONDS_PER_NANOSECOND;
- sprintf(buf, "%4d.%03d,%03d,%03d", int(t.seconds), nsec/1000000, (nsec/1000)%1000, nsec % 1000);
+ int nsec = t.attoseconds() / ATTOSECONDS_PER_NANOSECOND;
+ sprintf(buf, "%4d.%03d,%03d,%03d", int(t.seconds()), nsec/1000000, (nsec/1000)%1000, nsec % 1000);
return buf;
}
-std::string hdc9234_device::ttsn()
+std::string hdc92x4_device::ttsn()
{
return tts(machine().time());
}
-bool hdc9234_device::found_mark(int state)
+bool hdc92x4_device::found_mark(int state)
{
bool ismark = false;
if (using_floppy())
@@ -1930,7 +1943,7 @@ bool hdc9234_device::found_mark(int state)
The controller starts to read bits from the disk. This method takes an
argument for the state machine called at the end.
*/
-void hdc9234_device::live_start(int state)
+void hdc92x4_device::live_start(int state)
{
if (TRACE_LIVE) logerror("%s: [%s] Live start substate=%02x\n", tag(), ttsn().c_str(), state);
m_live_state.time = machine().time();
@@ -1956,7 +1969,7 @@ void hdc9234_device::live_start(int state)
if (TRACE_LIVE) logerror("%s: [%s] Live start end\n", tag(), ttsn().c_str()); // delete
}
-void hdc9234_device::live_run()
+void hdc92x4_device::live_run()
{
if (using_floppy()) live_run_until(attotime::never);
else live_run_hd_until(attotime::never);
@@ -1970,7 +1983,7 @@ void hdc9234_device::live_run()
THIS IS THE FLOPPY-ONLY LIVE_RUN
*/
-void hdc9234_device::live_run_until(attotime limit)
+void hdc92x4_device::live_run_until(attotime limit)
{
int slot = 0;
@@ -2504,9 +2517,9 @@ void hdc9234_device::live_run_until(attotime limit)
write_on_track(encode((m_live_state.crc >> 8) & 0xff), 1, WRITE_DATA_CRC);
}
else
- // Write a filler byte so that the last CRC bit is saved correctly (why actually?)
- // write_on_track(encode(0xff), 1, WRITE_DONE);
- m_live_state.state = WRITE_DONE;
+ // Write a filler byte so that the last CRC bit is saved correctly
+ // Without, the last bit of the CRC value may be flipped
+ write_on_track(encode(0xff), 1, WRITE_DONE);
break;
@@ -2801,7 +2814,7 @@ void hdc9234_device::live_run_until(attotime limit)
[1], section "Drive select", table
This is currently unsupported; hard disks are forced to MFM
*/
-void hdc9234_device::live_run_hd_until(attotime limit)
+void hdc92x4_device::live_run_hd_until(attotime limit)
{
int slot = 0;
if (TRACE_LIVE) logerror("%s: live_run_hd\n", tag());
@@ -3402,7 +3415,7 @@ void hdc9234_device::live_run_hd_until(attotime limit)
Results in a new checkpoint and a live position at machine time or behind.
As a side effect, portions of the track may be re-read
*/
-void hdc9234_device::live_sync()
+void hdc92x4_device::live_sync()
{
// Do we have some time set?
if (!m_live_state.time.is_never())
@@ -3454,7 +3467,7 @@ void hdc9234_device::live_sync()
}
}
-void hdc9234_device::live_abort()
+void hdc92x4_device::live_abort()
{
if (!m_live_state.time.is_never() && m_live_state.time > machine().time())
{
@@ -3475,7 +3488,7 @@ void hdc9234_device::live_abort()
comprised by WRITE_TRACK_(NEXT_)BYTE
Arguments: byte to be written, number, state on return
*/
-void hdc9234_device::write_on_track(UINT16 encoded, int repeat, int next_state)
+void hdc92x4_device::write_on_track(UINT16 encoded, int repeat, int next_state)
{
m_live_state.repeat = repeat;
m_live_state.state = WRITE_TRACK_BYTE;
@@ -3488,7 +3501,7 @@ void hdc9234_device::write_on_track(UINT16 encoded, int repeat, int next_state)
only intended for skipping bytes.
Arguments: number, state on return
*/
-void hdc9234_device::skip_on_track(int repeat, int next_state)
+void hdc92x4_device::skip_on_track(int repeat, int next_state)
{
m_live_state.bit_counter = 0;
m_live_state.repeat = repeat;
@@ -3496,7 +3509,7 @@ void hdc9234_device::skip_on_track(int repeat, int next_state)
m_live_state.return_state = next_state;
}
-UINT8 hdc9234_device::get_data_from_encoding(UINT16 raw)
+UINT8 hdc92x4_device::get_data_from_encoding(UINT16 raw)
{
unsigned int value = 0;
@@ -3511,7 +3524,7 @@ UINT8 hdc9234_device::get_data_from_encoding(UINT16 raw)
return (value >> 14) & 0xff;
}
-void hdc9234_device::rollback()
+void hdc92x4_device::rollback()
{
m_live_state = m_checkpoint_state;
m_pll = m_checkpoint_pll;
@@ -3521,7 +3534,7 @@ void hdc9234_device::rollback()
Wait for real time to catch up. This way we pretend that the last
operation actually needed the real time.
*/
-void hdc9234_device::wait_for_realtime(int state)
+void hdc92x4_device::wait_for_realtime(int state)
{
m_live_state.next_state = state;
m_timer->adjust(m_live_state.time - machine().time());
@@ -3535,7 +3548,7 @@ void hdc9234_device::wait_for_realtime(int state)
rightmost bit; the shift register is a member of m_live_state. Also,
the CRC is updated.
*/
-bool hdc9234_device::read_one_bit(const attotime &limit)
+bool hdc92x4_device::read_one_bit(const attotime &limit)
{
// Get the next bit from the phase-locked loop.
int bit = m_pll.get_next_bit(m_live_state.time, m_floppy, limit);
@@ -3549,7 +3562,7 @@ bool hdc9234_device::read_one_bit(const attotime &limit)
// value < 100: big trouble for controller, will fail
if (UNRELIABLE_MEDIA)
{
- if ((machine().time().attoseconds % 1009)==0) bit = 0;
+ if ((machine().time().attoseconds() % 1009)==0) bit = 0;
}
// Push into shift register
@@ -3574,7 +3587,7 @@ bool hdc9234_device::read_one_bit(const attotime &limit)
return false;
}
-bool hdc9234_device::write_one_bit(const attotime &limit)
+bool hdc92x4_device::write_one_bit(const attotime &limit)
{
bool bit = (m_live_state.shift_reg & 0x8000)!=0;
@@ -3594,7 +3607,7 @@ bool hdc9234_device::write_one_bit(const attotime &limit)
return false;
}
-UINT16 hdc9234_device::encode(UINT8 byte)
+UINT16 hdc92x4_device::encode(UINT8 byte)
{
UINT16 raw;
UINT8 check_pos;
@@ -3640,12 +3653,12 @@ UINT16 hdc9234_device::encode(UINT8 byte)
return raw;
}
-void hdc9234_device::encode_again()
+void hdc92x4_device::encode_again()
{
encode_raw(m_live_state.shift_reg_save);
}
-void hdc9234_device::encode_raw(UINT16 raw)
+void hdc92x4_device::encode_raw(UINT16 raw)
{
m_live_state.bit_counter = 16;
m_live_state.shift_reg = m_live_state.shift_reg_save = raw;
@@ -3662,7 +3675,7 @@ void hdc9234_device::encode_raw(UINT16 raw)
When writing, the controller generates the proper output bitstream, so we
have to set it from its own state (fm/mfm and device type).
*/
-void hdc9234_device::pll_reset(const attotime &when, bool output)
+void hdc92x4_device::pll_reset(const attotime &when, bool output)
{
m_pll.reset(when);
@@ -3677,7 +3690,7 @@ void hdc9234_device::pll_reset(const attotime &when, bool output)
m_pll.set_clock(attotime::from_nsec(8000 >> (~m_clock_divider & 0x03)));
}
-void hdc9234_device::checkpoint()
+void hdc92x4_device::checkpoint()
{
// Commit bits from pll buffer to disk until live time (if there is something to write)
// For HD we do not use a PLL in this implementation
@@ -3700,10 +3713,19 @@ void hdc9234_device::checkpoint()
Updates the CRC and the shift register. Also, the time is updated.
*/
-bool hdc9234_device::read_from_mfmhd(const attotime &limit)
+bool hdc92x4_device::read_from_mfmhd(const attotime &limit)
{
UINT16 data = 0;
- bool offlimit = m_harddisk->read(m_live_state.time, limit, data);
+ bool offlimit = false;
+
+ if (m_harddisk != NULL)
+ {
+ offlimit = m_harddisk->read(m_live_state.time, limit, data);
+ }
+ else
+ {
+ data = 0;
+ }
// We have reached the time limit
if (offlimit) return true;
@@ -3768,11 +3790,11 @@ bool hdc9234_device::read_from_mfmhd(const attotime &limit)
Return false: valid return
Updates the CRC and the shift register. Also, the time is updated.
*/
-bool hdc9234_device::write_to_mfmhd(const attotime &limit)
+bool hdc92x4_device::write_to_mfmhd(const attotime &limit)
{
UINT16 data = 0;
int count;
- bool offlimit;
+ bool offlimit = false;
if (m_hd_encoding == MFM_BITS)
{
@@ -3785,7 +3807,12 @@ bool hdc9234_device::write_to_mfmhd(const attotime &limit)
data = m_live_state.shift_reg;
count = 16;
}
- offlimit = m_harddisk->write(m_live_state.time, limit, data);
+
+ if (m_harddisk != NULL)
+ {
+ offlimit = m_harddisk->write(m_live_state.time, limit, data, m_precompensation != 0, m_reduced_write_current);
+ }
+
if (offlimit) return true;
m_live_state.bit_counter -= count;
@@ -3811,7 +3838,7 @@ bool hdc9234_device::write_to_mfmhd(const attotime &limit)
return false;
}
-UINT16 hdc9234_device::encode_hd(UINT8 byte)
+UINT16 hdc92x4_device::encode_hd(UINT8 byte)
{
UINT16 cells;
UINT8 check_pos;
@@ -3855,7 +3882,7 @@ UINT16 hdc9234_device::encode_hd(UINT8 byte)
return cells;
}
-UINT16 hdc9234_device::encode_a1_hd()
+UINT16 hdc92x4_device::encode_a1_hd()
{
UINT16 cells = 0;
@@ -3886,15 +3913,14 @@ UINT16 hdc9234_device::encode_a1_hd()
Read a byte of data from the controller
The address (offset) encodes the C/D* line (command and /data)
*/
-READ8_MEMBER( hdc9234_device::read )
+READ8_MEMBER( hdc92x4_device::read )
{
UINT8 reply = 0;
-
if ((offset & 1) == 0)
{
// Data register
reply = m_register_r[m_register_pointer];
- if (TRACE_READREG) logerror("%s: read register[%d] -> %02x\n", tag(), m_register_pointer, reply);
+ if (TRACE_READREG) logerror("%s: Read register[%d] -> %02x\n", tag(), m_register_pointer, reply);
// Autoincrement until DATA is reached.
if (m_register_pointer < DATA) m_register_pointer++;
@@ -3906,7 +3932,7 @@ READ8_MEMBER( hdc9234_device::read )
// "The interrupt pin is reset to its inactive state
// when the UDC interrupt status register is read." [1] (p.3)
- if (TRACE_READREG) logerror("%s: read interrupt status register -> %02x\n", tag(), reply);
+ if (TRACE_READREG) logerror("%s: Read interrupt status register -> %02x\n", tag(), reply);
set_interrupt(CLEAR_LINE);
// Clear the bits due to interrupt status register read.
@@ -3922,19 +3948,22 @@ READ8_MEMBER( hdc9234_device::read )
The operation terminates immediately, and the controller picks up the
values stored in this phase at a later time.
*/
-WRITE8_MEMBER( hdc9234_device::write )
+WRITE8_MEMBER( hdc92x4_device::write )
{
if ((offset & 1) == 0)
{
- m_regvalue = data & 0xff;
- wait_time(m_cmd_timer, attotime::from_nsec(REGISTER_COMMIT), REGISTER_ACCESS);
+ if (TRACE_COMMAND) logerror("%s: New register write access %02x\n", tag(), data & 0xff);
+ if (m_executing) logerror("%s: Error - previous command %02x not completed; register access ignored\n", tag(), current_command());
+ else
+ {
+ m_regvalue = data & 0xff;
+ wait_time(m_cmd_timer, attotime::from_nsec(REGISTER_COMMIT), REGISTER_ACCESS);
+ }
}
else
{
- if (m_executing)
- {
- logerror("%s: [%s] Error - previous command %02x not completed; new command %02x ignored\n", tag(), ttsn().c_str(), current_command(), data);
- }
+ if (TRACE_COMMAND) logerror("%s: New incoming command %02x\n", tag(), data);
+ if (m_executing) logerror("%s: Error - previous command %02x not completed; new command %02x ignored\n", tag(), current_command(), data);
else
{
m_register_w[COMMAND] = data;
@@ -3946,7 +3975,7 @@ WRITE8_MEMBER( hdc9234_device::write )
/*
When the commit period has passed, process the command or register access
*/
-void hdc9234_device::process_command()
+void hdc92x4_device::process_command()
{
if (m_substate == REGISTER_ACCESS)
{
@@ -4006,7 +4035,7 @@ void hdc9234_device::process_command()
auxbus_out();
}
-void hdc9234_device::reenter_command_processing()
+void hdc92x4_device::reenter_command_processing()
{
if (TRACE_DELAY) logerror("%s: Re-enter command processing; live state = %02x\n", tag(), m_live_state.state);
// Do we have a live run on the track?
@@ -4028,7 +4057,7 @@ void hdc9234_device::reenter_command_processing()
/*
Assert Command Done status bit, triggering interrupts as needed
*/
-void hdc9234_device::set_command_done(int flags)
+void hdc92x4_device::set_command_done(int flags)
{
// Do another output, then set the flag
auxbus_out();
@@ -4057,7 +4086,7 @@ void hdc9234_device::set_command_done(int flags)
/*
Preserve previously set termination code
*/
-void hdc9234_device::set_command_done()
+void hdc92x4_device::set_command_done()
{
set_command_done(-1);
}
@@ -4065,7 +4094,7 @@ void hdc9234_device::set_command_done()
/*
Auxiliary bus operation.
- The auxbus of the HDC9234 is used to poll the drive status of the cur-
+ The auxbus of the HDC92x4 is used to poll the drive status of the cur-
rently selected drive, to transmit DMA address bytes, to output the
OUTPUT1 register, and to output the OUTPUT2 register.
@@ -4108,7 +4137,7 @@ void hdc9234_device::set_command_done()
Read the drive status over the auxbus
(as said, let the controller board push the values into the controller)
*/
-void hdc9234_device::auxbus_in(UINT8 data)
+void hdc92x4_device::auxbus_in(UINT8 data)
{
// Kill unwanted input via auxbus until we are initialized.
if (!m_initialized)
@@ -4133,12 +4162,12 @@ void hdc9234_device::auxbus_in(UINT8 data)
if (prevskcom != seek_complete()) seek_complete_handler();
}
-bool hdc9234_device::waiting_for_line(int line, int level)
+bool hdc92x4_device::waiting_for_line(int line, int level)
{
return (m_event_line == line && m_state_after_line != UNDEF && m_line_level == level);
}
-bool hdc9234_device::waiting_for_other_line(int line)
+bool hdc92x4_device::waiting_for_other_line(int line)
{
return (m_state_after_line != UNDEF && m_event_line != line);
}
@@ -4146,7 +4175,7 @@ bool hdc9234_device::waiting_for_other_line(int line)
/*
Handlers for incoming signal lines.
*/
-void hdc9234_device::index_handler()
+void hdc92x4_device::index_handler()
{
int level = index_hole()? ASSERT_LINE : CLEAR_LINE;
if (TRACE_LINES) logerror("%s: [%s] Index handler; level=%d\n", tag(), ttsn().c_str(), level);
@@ -4176,12 +4205,12 @@ void hdc9234_device::index_handler()
{
// Live processing waits for INDEX
// For harddisk we will continue processing on the falling edge
- if (!waiting_for_other_line(INDEX_LINE) && (using_floppy() || level == CLEAR_LINE))
+ if (!m_timed_wait && !waiting_for_other_line(INDEX_LINE) && (using_floppy() || level == CLEAR_LINE))
reenter_command_processing();
}
}
-void hdc9234_device::ready_handler()
+void hdc92x4_device::ready_handler()
{
int level = drive_ready()? ASSERT_LINE : CLEAR_LINE;
if (TRACE_LINES) logerror("%s: [%s] Ready handler; level=%d\n", tag(), ttsn().c_str(), level);
@@ -4208,7 +4237,7 @@ void hdc9234_device::ready_handler()
}
}
-void hdc9234_device::seek_complete_handler()
+void hdc92x4_device::seek_complete_handler()
{
int level = seek_complete()? ASSERT_LINE : CLEAR_LINE;
if (TRACE_LINES) logerror("%s: [%s] Seek complete handler; level=%d\n", tag(), ttsn().c_str(), level);
@@ -4250,7 +4279,7 @@ void hdc9234_device::seek_complete_handler()
Step = Step pulse
Head = desired head
*/
-void hdc9234_device::auxbus_out()
+void hdc92x4_device::auxbus_out()
{
// prepare output2
set_bits(m_output2, OUT2_DRVSEL3I, (m_output1 & OUT1_DRVSEL3)==0);
@@ -4270,7 +4299,7 @@ void hdc9234_device::auxbus_out()
}
}
-void hdc9234_device::dma_address_out(UINT8 addrub, UINT8 addrhb, UINT8 addrlb)
+void hdc92x4_device::dma_address_out(UINT8 addrub, UINT8 addrhb, UINT8 addrlb)
{
if (TRACE_DMA) logerror("%s: Setting DMA address %06x\n", tag(), (addrub<<16 | addrhb<<8 | addrlb)&0xffffff);
m_out_auxbus((offs_t)HDC_OUTPUT_DMA_ADDR, addrub);
@@ -4286,7 +4315,7 @@ void hdc9234_device::dma_address_out(UINT8 addrub, UINT8 addrhb, UINT8 addrlb)
- when the READY_CHANGE bit is set to 1 in the ISR and ST_RDYCHNG is set to 1
(ready change: 1->0 or 0->1)
*/
-void hdc9234_device::set_interrupt(line_state intr)
+void hdc92x4_device::set_interrupt(line_state intr)
{
if (intr == ASSERT_LINE)
{
@@ -4308,7 +4337,7 @@ void hdc9234_device::set_interrupt(line_state intr)
/*
DMA acknowledge line.
*/
-WRITE_LINE_MEMBER( hdc9234_device::dmaack )
+WRITE_LINE_MEMBER( hdc92x4_device::dmaack )
{
if (state==ASSERT_LINE)
{
@@ -4321,7 +4350,7 @@ WRITE_LINE_MEMBER( hdc9234_device::dmaack )
This is pretty simple here, compared to wd17xx, because index and ready
callbacks have to be tied to the controller board outside the chip.
*/
-void hdc9234_device::connect_floppy_drive(floppy_image_device* floppy)
+void hdc92x4_device::connect_floppy_drive(floppy_image_device* floppy)
{
m_floppy = floppy;
}
@@ -4329,7 +4358,7 @@ void hdc9234_device::connect_floppy_drive(floppy_image_device* floppy)
/*
Connect the current hard drive.
*/
-void hdc9234_device::connect_hard_drive(mfm_harddisk_device* harddisk)
+void hdc92x4_device::connect_hard_drive(mfm_harddisk_device* harddisk)
{
m_harddisk = harddisk;
m_hd_encoding = m_harddisk->get_encoding();
@@ -4342,7 +4371,7 @@ void hdc9234_device::connect_hard_drive(mfm_harddisk_device* harddisk)
at some time and make it a device of its own.
line: CD0 (0) and CD1(1), value 0 or 1
*/
-void hdc9234_device::set_clock_divider(int line, int value)
+void hdc92x4_device::set_clock_divider(int line, int value)
{
set_bits(m_clock_divider, (line==0)? 1 : 2, value&1);
}
@@ -4350,9 +4379,10 @@ void hdc9234_device::set_clock_divider(int line, int value)
/*
This is reached when a timer has expired
*/
-void hdc9234_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
+void hdc92x4_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
{
live_sync();
+ m_timed_wait = false;
switch (id)
{
@@ -4362,16 +4392,13 @@ void hdc9234_device::device_timer(emu_timer &timer, device_timer_id id, int para
case COM_TIMER:
process_command();
break;
- /* case LIVE_TIMER:
- live_run();
- break; */
}
}
/*
Reset the controller. Negative logic, but we use ASSERT_LINE.
*/
-WRITE_LINE_MEMBER( hdc9234_device::reset )
+WRITE_LINE_MEMBER( hdc92x4_device::reset )
{
if (state == ASSERT_LINE)
{
@@ -4380,7 +4407,7 @@ WRITE_LINE_MEMBER( hdc9234_device::reset )
}
}
-void hdc9234_device::device_start()
+void hdc92x4_device::device_start()
{
m_out_intrq.resolve_safe();
m_out_dip.resolve_safe();
@@ -4397,13 +4424,15 @@ void hdc9234_device::device_start()
m_live_state.state = IDLE;
}
-void hdc9234_device::device_reset()
+void hdc92x4_device::device_reset()
{
m_clock_divider = 0;
m_deleted = false;
m_executing = false;
m_event_line = UNDEF;
m_first_sector_found = false;
+ m_floppy = NULL;
+ m_harddisk = NULL;
m_initialized = true;
m_line_level = CLEAR_LINE;
m_live_state.state = IDLE;
@@ -4425,6 +4454,7 @@ void hdc9234_device::device_reset()
m_state_after_line = UNDEF;
m_stop_after_index = false;
m_substate = UNDEF;
+ m_timed_wait = false;
m_track_delta = 0;
m_transfer_enabled = true;
m_wait_for_index = false;
@@ -4438,4 +4468,5 @@ void hdc9234_device::device_reset()
m_out_dmarq(CLEAR_LINE);
}
+const device_type HDC9224 = &device_creator<hdc9224_device>;
const device_type HDC9234 = &device_creator<hdc9234_device>;
diff --git a/src/emu/machine/hdc9234.h b/src/devices/machine/hdc92x4.h
index 5398e32a099..da3c5b6d954 100644
--- a/src/emu/machine/hdc9234.h
+++ b/src/devices/machine/hdc92x4.h
@@ -1,17 +1,18 @@
// license:BSD-3-Clause
// copyright-holders:Michael Zapf
/*
- HDC9234 Hard and Floppy Disk Controller
- For details see hdc9234.c
+ HDC9224 / HDC9234 Hard and Floppy Disk Controller
+ For details see hdc92x4.c
*/
-#ifndef __HDC9234_H__
-#define __HDC9234_H__
+#ifndef __HDC92X4_H__
+#define __HDC92X4_H__
#include "emu.h"
#include "imagedev/floppy.h"
+#include "imagedev/mfmhd.h"
#include "fdc_pll.h"
-#include "ti99_hd.h"
+extern const device_type HDC9224;
extern const device_type HDC9234;
/*
@@ -44,41 +45,41 @@ enum
//===================================================================
/* Interrupt line. To be connected with the controller PCB. */
-#define MCFG_HDC9234_INTRQ_CALLBACK(_write) \
- devcb = &hdc9234_device::set_intrq_wr_callback(*device, DEVCB_##_write);
+#define MCFG_HDC92X4_INTRQ_CALLBACK(_write) \
+ devcb = &hdc92x4_device::set_intrq_wr_callback(*device, DEVCB_##_write);
/* DMA request line. To be connected with the controller PCB. */
-#define MCFG_HDC9234_DMARQ_CALLBACK(_write) \
- devcb = &hdc9234_device::set_dmarq_wr_callback(*device, DEVCB_##_write);
+#define MCFG_HDC92X4_DMARQ_CALLBACK(_write) \
+ devcb = &hdc92x4_device::set_dmarq_wr_callback(*device, DEVCB_##_write);
/* DMA in progress line. To be connected with the controller PCB. */
-#define MCFG_HDC9234_DIP_CALLBACK(_write) \
- devcb = &hdc9234_device::set_dip_wr_callback(*device, DEVCB_##_write);
+#define MCFG_HDC92X4_DIP_CALLBACK(_write) \
+ devcb = &hdc92x4_device::set_dip_wr_callback(*device, DEVCB_##_write);
/* Auxiliary Bus. These 8 lines need to be connected to external latches
and to a counter circuitry which works together with the external RAM.
We use the S0/S1 lines as address lines. */
-#define MCFG_HDC9234_AUXBUS_OUT_CALLBACK(_write) \
- devcb = &hdc9234_device::set_auxbus_wr_callback(*device, DEVCB_##_write);
+#define MCFG_HDC92X4_AUXBUS_OUT_CALLBACK(_write) \
+ devcb = &hdc92x4_device::set_auxbus_wr_callback(*device, DEVCB_##_write);
/* Callback to read the contents of the external RAM via the data bus.
Note that the address must be set and automatically increased
by external circuitry. */
-#define MCFG_HDC9234_DMA_IN_CALLBACK(_read) \
- devcb = &hdc9234_device::set_dma_rd_callback(*device, DEVCB_##_read);
+#define MCFG_HDC92X4_DMA_IN_CALLBACK(_read) \
+ devcb = &hdc92x4_device::set_dma_rd_callback(*device, DEVCB_##_read);
/* Callback to write the contents of the external RAM via the data bus.
Note that the address must be set and automatically increased
by external circuitry. */
-#define MCFG_HDC9234_DMA_OUT_CALLBACK(_write) \
- devcb = &hdc9234_device::set_dma_wr_callback(*device, DEVCB_##_write);
+#define MCFG_HDC92X4_DMA_OUT_CALLBACK(_write) \
+ devcb = &hdc92x4_device::set_dma_wr_callback(*device, DEVCB_##_write);
//===================================================================
-class hdc9234_device : public device_t
+class hdc92x4_device : public device_t
{
public:
- hdc9234_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+ hdc92x4_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source);
// Accesors from the CPU side
DECLARE_READ8_MEMBER( read );
@@ -87,12 +88,12 @@ public:
DECLARE_WRITE_LINE_MEMBER( dmaack );
// Callbacks
- template<class _Object> static devcb_base &set_intrq_wr_callback(device_t &device, _Object object) { return downcast<hdc9234_device &>(device).m_out_intrq.set_callback(object); }
- template<class _Object> static devcb_base &set_dmarq_wr_callback(device_t &device, _Object object) { return downcast<hdc9234_device &>(device).m_out_dmarq.set_callback(object); }
- template<class _Object> static devcb_base &set_dip_wr_callback(device_t &device, _Object object) { return downcast<hdc9234_device &>(device).m_out_dip.set_callback(object); }
- template<class _Object> static devcb_base &set_auxbus_wr_callback(device_t &device, _Object object) { return downcast<hdc9234_device &>(device).m_out_auxbus.set_callback(object); }
- template<class _Object> static devcb_base &set_dma_rd_callback(device_t &device, _Object object) { return downcast<hdc9234_device &>(device).m_in_dma.set_callback(object); }
- template<class _Object> static devcb_base &set_dma_wr_callback(device_t &device, _Object object) { return downcast<hdc9234_device &>(device).m_out_dma.set_callback(object); }
+ template<class _Object> static devcb_base &set_intrq_wr_callback(device_t &device, _Object object) { return downcast<hdc92x4_device &>(device).m_out_intrq.set_callback(object); }
+ template<class _Object> static devcb_base &set_dmarq_wr_callback(device_t &device, _Object object) { return downcast<hdc92x4_device &>(device).m_out_dmarq.set_callback(object); }
+ template<class _Object> static devcb_base &set_dip_wr_callback(device_t &device, _Object object) { return downcast<hdc92x4_device &>(device).m_out_dip.set_callback(object); }
+ template<class _Object> static devcb_base &set_auxbus_wr_callback(device_t &device, _Object object) { return downcast<hdc92x4_device &>(device).m_out_auxbus.set_callback(object); }
+ template<class _Object> static devcb_base &set_dma_rd_callback(device_t &device, _Object object) { return downcast<hdc92x4_device &>(device).m_in_dma.set_callback(object); }
+ template<class _Object> static devcb_base &set_dma_wr_callback(device_t &device, _Object object) { return downcast<hdc92x4_device &>(device).m_out_dma.set_callback(object); }
// auxbus_in is intended to read events from the drives
// In the real chip the status is polled; to avoid unnecessary load
@@ -117,7 +118,8 @@ protected:
void device_start();
void device_reset();
-private:
+ bool m_is_hdc9234;
+
devcb_write_line m_out_intrq; // INT line
devcb_write_line m_out_dmarq; // DMA request line
devcb_write_line m_out_dip; // DMA in progress line
@@ -202,6 +204,7 @@ private:
line_state m_line_level;
int m_event_line;
int m_state_after_line;
+ bool m_timed_wait;
// ==============================================
// Live state machine
@@ -308,7 +311,7 @@ private:
int m_substate;
- typedef void (hdc9234_device::*cmdfunc)(void);
+ typedef void (hdc92x4_device::*cmdfunc)(void);
typedef struct
{
@@ -465,4 +468,20 @@ private:
void write_sectors();
};
+// =====================================================
+// Subclasses: the two variants
+// =====================================================
+
+class hdc9224_device : public hdc92x4_device
+{
+public:
+ hdc9224_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+};
+
+class hdc9234_device : public hdc92x4_device
+{
+public:
+ hdc9234_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+};
+
#endif
diff --git a/src/emu/machine/i2cmem.c b/src/devices/machine/i2cmem.c
index 5e714c0b129..5e714c0b129 100644
--- a/src/emu/machine/i2cmem.c
+++ b/src/devices/machine/i2cmem.c
diff --git a/src/emu/machine/i2cmem.h b/src/devices/machine/i2cmem.h
index ce1bbdb3141..ce1bbdb3141 100644
--- a/src/emu/machine/i2cmem.h
+++ b/src/devices/machine/i2cmem.h
diff --git a/src/emu/machine/i6300esb.c b/src/devices/machine/i6300esb.c
index ec7ca934d31..ec7ca934d31 100644
--- a/src/emu/machine/i6300esb.c
+++ b/src/devices/machine/i6300esb.c
diff --git a/src/emu/machine/i6300esb.h b/src/devices/machine/i6300esb.h
index 2349db91b73..2349db91b73 100644
--- a/src/emu/machine/i6300esb.h
+++ b/src/devices/machine/i6300esb.h
diff --git a/src/emu/machine/i80130.c b/src/devices/machine/i80130.c
index fb419a06090..fb419a06090 100644
--- a/src/emu/machine/i80130.c
+++ b/src/devices/machine/i80130.c
diff --git a/src/emu/machine/i80130.h b/src/devices/machine/i80130.h
index b7aaece8fe7..b7aaece8fe7 100644
--- a/src/emu/machine/i80130.h
+++ b/src/devices/machine/i80130.h
diff --git a/src/emu/machine/i8155.c b/src/devices/machine/i8155.c
index a2914b9081f..a2914b9081f 100644
--- a/src/emu/machine/i8155.c
+++ b/src/devices/machine/i8155.c
diff --git a/src/emu/machine/i8155.h b/src/devices/machine/i8155.h
index c85c0a62846..c85c0a62846 100644
--- a/src/emu/machine/i8155.h
+++ b/src/devices/machine/i8155.h
diff --git a/src/emu/machine/i8212.c b/src/devices/machine/i8212.c
index 14b06841278..14b06841278 100644
--- a/src/emu/machine/i8212.c
+++ b/src/devices/machine/i8212.c
diff --git a/src/emu/machine/i8212.h b/src/devices/machine/i8212.h
index 78e87470acd..78e87470acd 100644
--- a/src/emu/machine/i8212.h
+++ b/src/devices/machine/i8212.h
diff --git a/src/emu/machine/i8214.c b/src/devices/machine/i8214.c
index 9a7cf9ecd1c..9a7cf9ecd1c 100644
--- a/src/emu/machine/i8214.c
+++ b/src/devices/machine/i8214.c
diff --git a/src/emu/machine/i8214.h b/src/devices/machine/i8214.h
index 62e7f98fd51..62e7f98fd51 100644
--- a/src/emu/machine/i8214.h
+++ b/src/devices/machine/i8214.h
diff --git a/src/emu/machine/i8243.c b/src/devices/machine/i8243.c
index d3393cea4fd..d3393cea4fd 100644
--- a/src/emu/machine/i8243.c
+++ b/src/devices/machine/i8243.c
diff --git a/src/emu/machine/i8243.h b/src/devices/machine/i8243.h
index 7ac782f3496..7ac782f3496 100644
--- a/src/emu/machine/i8243.h
+++ b/src/devices/machine/i8243.h
diff --git a/src/emu/machine/i8251.c b/src/devices/machine/i8251.c
index 362b3372574..7008fe394a3 100644
--- a/src/emu/machine/i8251.c
+++ b/src/devices/machine/i8251.c
@@ -107,7 +107,8 @@ void i8251_device::device_start()
save_item(NAME(m_rxc_count));
save_item(NAME(m_txc_count));
save_item(NAME(m_br_factor));
- save_item(NAME(m_data));
+ save_item(NAME(m_rx_data));
+ save_item(NAME(m_tx_data));
save_item(NAME(m_tx_busy));
save_item(NAME(m_disable_tx_pending));
device_serial_interface::register_save_state(machine().save(), this);
@@ -190,7 +191,7 @@ void i8251_device::transmit_clock()
if (is_transmit_register_empty())
{
/* set it up */
- transmit_register_setup(m_data);
+ transmit_register_setup(m_tx_data);
/* i8251 transmit reg now empty */
m_status |=I8251_STATUS_TX_EMPTY;
/* ready for next transmit */
@@ -339,7 +340,8 @@ void i8251_device::device_reset()
m_status = I8251_STATUS_TX_EMPTY | I8251_STATUS_TX_READY;
m_mode_byte = 0;
m_command = 0;
- m_data = 0;
+ m_rx_data = 0;
+ m_tx_data = 0;
m_rxc_count = m_txc_count = 0;
m_br_factor = 1;
m_tx_busy = m_disable_tx_pending = false;
@@ -688,8 +690,9 @@ READ8_MEMBER(i8251_device::status_r)
WRITE8_MEMBER(i8251_device::data_w)
{
- m_data = data;
+ m_tx_data = data;
+ LOG(("data_w %02x\n" , data));
// printf("i8251 transmit char: %02x\n",data);
/* writing clears */
@@ -711,9 +714,7 @@ WRITE8_MEMBER(i8251_device::data_w)
void i8251_device::receive_character(UINT8 ch)
{
-// printf("i8251 receive char: %02x\n",ch);
-
- m_data = ch;
+ m_rx_data = ch;
/* char has not been read and another has arrived! */
if (m_status & I8251_STATUS_RX_READY)
@@ -733,12 +734,12 @@ void i8251_device::receive_character(UINT8 ch)
READ8_MEMBER(i8251_device::data_r)
{
- //logerror("read data: %02x, STATUS=%02x\n",m_data,m_status);
+ LOG(("read data: %02x, STATUS=%02x\n",m_rx_data,m_status));
/* reading clears */
m_status &= ~I8251_STATUS_RX_READY;
update_rx_ready();
- return m_data;
+ return m_rx_data;
}
diff --git a/src/emu/machine/i8251.h b/src/devices/machine/i8251.h
index 7f51f0dfff2..2825faf1ed1 100644
--- a/src/emu/machine/i8251.h
+++ b/src/devices/machine/i8251.h
@@ -132,7 +132,8 @@ private:
int m_br_factor;
/* data being received */
- UINT8 m_data;
+ UINT8 m_rx_data;
+ UINT8 m_tx_data;
bool m_tx_busy;
bool m_disable_tx_pending;
};
diff --git a/src/emu/machine/i82541.c b/src/devices/machine/i82541.c
index 8e5a1467183..8e5a1467183 100644
--- a/src/emu/machine/i82541.c
+++ b/src/devices/machine/i82541.c
diff --git a/src/emu/machine/i82541.h b/src/devices/machine/i82541.h
index 810c4dc7b4a..810c4dc7b4a 100644
--- a/src/emu/machine/i82541.h
+++ b/src/devices/machine/i82541.h
diff --git a/src/emu/machine/i8255.c b/src/devices/machine/i8255.c
index 7725565cde2..7725565cde2 100644
--- a/src/emu/machine/i8255.c
+++ b/src/devices/machine/i8255.c
diff --git a/src/emu/machine/i8255.h b/src/devices/machine/i8255.h
index c232b2105e0..c232b2105e0 100644
--- a/src/emu/machine/i8255.h
+++ b/src/devices/machine/i8255.h
diff --git a/src/emu/machine/i8257.c b/src/devices/machine/i8257.c
index 23abcc3915c..23abcc3915c 100644
--- a/src/emu/machine/i8257.c
+++ b/src/devices/machine/i8257.c
diff --git a/src/emu/machine/i8257.h b/src/devices/machine/i8257.h
index 9ab509d38e7..9ab509d38e7 100644
--- a/src/emu/machine/i8257.h
+++ b/src/devices/machine/i8257.h
diff --git a/src/devices/machine/i8271.c b/src/devices/machine/i8271.c
new file mode 100644
index 00000000000..6e938162ada
--- /dev/null
+++ b/src/devices/machine/i8271.c
@@ -0,0 +1,1698 @@
+// license:BSD-3-Clause
+// copyright-holders:Carl,Olivier Galibert
+
+#include "i8271.h"
+
+const device_type I8271 = &device_creator<i8271_device>;
+
+i8271_device::i8271_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : device_t(mconfig, I8271, "Intel 8271", tag, owner, clock, "i8271", __FILE__),
+ intrq_cb(*this),
+ drq_cb(*this),
+ hdl_cb(*this),
+ opt_cb(*this)
+{
+ select_connected = true;
+ external_ready = false;
+}
+
+DEVICE_ADDRESS_MAP_START(map, 8, i8271_device)
+ AM_RANGE(0x0, 0x0) AM_READWRITE(sr_r, cmd_w)
+ AM_RANGE(0x1, 0x1) AM_READWRITE(rr_r, param_w)
+ AM_RANGE(0x2, 0x2) AM_WRITE(reset_w)
+ADDRESS_MAP_END
+
+void i8271_device::set_ready_line_connected(bool _ready)
+{
+ ready_connected = _ready;
+}
+
+void i8271_device::set_select_lines_connected(bool _select)
+{
+ select_connected = _select;
+}
+
+void i8271_device::device_start()
+{
+ intrq_cb.resolve_safe();
+ drq_cb.resolve_safe();
+ hdl_cb.resolve_safe();
+ opt_cb.resolve_safe();
+
+ for(int i=0; i != 2; i++) {
+ char name[2];
+ flopi[i].tm = timer_alloc(i);
+ flopi[i].id = i;
+ if(select_connected) {
+ name[0] = '0'+i;
+ name[1] = 0;
+ floppy_connector *con = subdevice<floppy_connector>(name);
+ if(con) {
+ flopi[i].dev = con->get_device();
+ if (flopi[i].dev != NULL)
+ flopi[i].dev->setup_index_pulse_cb(floppy_image_device::index_pulse_cb(FUNC(i8271_device::index_callback), this));
+ } else
+ flopi[i].dev = NULL;
+ } else
+ flopi[i].dev = NULL;
+
+ flopi[i].main_state = IDLE;
+ flopi[i].sub_state = IDLE;
+ flopi[i].dir = 0;
+ flopi[i].counter = 0;
+ flopi[i].pcn = 0;
+ flopi[i].live = false;
+ flopi[i].index = false;
+ flopi[i].ready = true;
+ }
+ cur_rate = 250000;
+
+ cur_live.tm = attotime::never;
+ cur_live.state = IDLE;
+ cur_live.next_state = -1;
+ cur_live.fi = NULL;
+}
+
+void i8271_device::device_reset()
+{
+ soft_reset();
+}
+
+void i8271_device::soft_reset()
+{
+ main_phase = PHASE_IDLE;
+ for(int i=0; i<2; i++) {
+ flopi[i].main_state = IDLE;
+ flopi[i].sub_state = IDLE;
+ flopi[i].live = false;
+ flopi[i].ready = get_ready(i);
+ }
+ set_irq(false);
+ set_drq(false);
+ command_pos = 0;
+ cur_live.fi = 0;
+ cur_live.tm = attotime::never;
+ cur_live.state = IDLE;
+ cur_live.next_state = -1;
+ cur_live.fi = NULL;
+ rr = 0;
+ scan_sec = 0;
+ moder = 0xc0;
+ oport = 0;
+ scan_cnt[0] = scan_cnt[1] = 0;
+}
+
+void i8271_device::ready_w(bool _ready)
+{
+ external_ready = _ready;
+}
+
+bool i8271_device::get_ready(int fid)
+{
+ if(!flopi[fid].ready)
+ return false;
+ if(ready_connected)
+ return flopi[fid].dev ? !flopi[fid].dev->ready_r() : false;
+ return !external_ready;
+}
+
+void i8271_device::set_floppy(floppy_image_device *flop)
+{
+ for(int fid=0; fid<2; fid++) {
+ if(flopi[fid].dev)
+ flopi[fid].dev->setup_index_pulse_cb(floppy_image_device::index_pulse_cb());
+ flopi[fid].dev = flop;
+ }
+ if(flop)
+ flop->setup_index_pulse_cb(floppy_image_device::index_pulse_cb(FUNC(i8271_device::index_callback), this));
+}
+
+READ8_MEMBER(i8271_device::sr_r)
+{
+ UINT32 ret = (irq ? SR_IRQ : 0);
+ switch(main_phase) {
+ case PHASE_CMD:
+ ret |= SR_CF;
+ break;
+ case PHASE_EXEC:
+ ret |= SR_BSY;
+ if((moder & 1) && drq)
+ ret |= SR_DRQ;
+ break;
+ case PHASE_RESULT:
+ ret |= SR_RF;
+ break;
+ }
+ return ret;
+}
+
+READ8_MEMBER(i8271_device::rr_r)
+{
+ if(main_phase == PHASE_RESULT)
+ main_phase = PHASE_IDLE;
+ set_irq(false);
+ return rr;
+}
+
+void i8271_device::set_rate(int rate)
+{
+ cur_rate = rate;
+}
+
+READ8_MEMBER(i8271_device::data_r)
+{
+ set_drq(false);
+ return dma_data;
+}
+
+WRITE8_MEMBER(i8271_device::data_w)
+{
+ if(drq) {
+ set_drq(false);
+ dma_data = data;
+ }
+}
+
+WRITE8_MEMBER(i8271_device::cmd_w)
+{
+ if(main_phase == PHASE_IDLE) {
+ command[0] = data;
+ command_pos = 1;
+
+ int cmd = check_command();
+ if(cmd != C_INVALID) {
+ main_phase = PHASE_CMD;
+ if(cmd != C_INCOMPLETE)
+ start_command(cmd);
+ }
+ }
+}
+
+WRITE8_MEMBER(i8271_device::param_w)
+{
+ if(main_phase == PHASE_CMD) {
+ command[command_pos++] = data;
+ int cmd = check_command();
+ if(cmd != C_INCOMPLETE)
+ start_command(cmd);
+ }
+}
+
+bool i8271_device::set_output(UINT8 data)
+{
+ if(main_phase == PHASE_EXEC) {
+ if(drq) {
+ rr = ERR_DMA;
+ return false;
+ }
+ dma_data = data;
+ set_drq(true);
+ }
+ return true;
+}
+
+bool i8271_device::get_input(UINT8 *data)
+{
+ if(main_phase == PHASE_EXEC) {
+ if(drq) {
+ rr = ERR_DMA;
+ return false;
+ }
+ *data = dma_data;
+ set_drq(true);
+ }
+ return true;
+}
+
+void i8271_device::set_drq(bool state)
+{
+ if(state != drq) {
+ drq = state;
+ drq_cb(drq);
+ if(moder & 1)
+ intrq_cb(drq);
+ }
+}
+
+void i8271_device::set_irq(bool state)
+{
+ if(state != irq) {
+ irq = state;
+ intrq_cb(irq);
+ }
+}
+
+void i8271_device::live_start(floppy_info &fi, int state)
+{
+ cur_live.tm = machine().time();
+ cur_live.state = state;
+ cur_live.next_state = -1;
+ cur_live.fi = &fi;
+ cur_live.shift_reg = 0;
+ cur_live.crc = 0xffff;
+ cur_live.bit_counter = 0;
+ cur_live.data_separator_phase = false;
+ cur_live.data_reg = 0;
+ cur_live.previous_type = live_info::PT_NONE;
+ cur_live.data_bit_context = false;
+ cur_live.byte_counter = 0;
+ cur_live.pll.reset(cur_live.tm);
+ cur_live.pll.set_clock(attotime::from_hz(cur_rate));
+ checkpoint_live = cur_live;
+ fi.live = true;
+
+ live_run();
+}
+
+void i8271_device::checkpoint()
+{
+ if(cur_live.fi)
+ cur_live.pll.commit(cur_live.fi->dev, cur_live.tm);
+ checkpoint_live = cur_live;
+}
+
+void i8271_device::rollback()
+{
+ cur_live = checkpoint_live;
+}
+
+void i8271_device::live_delay(int state)
+{
+ cur_live.next_state = state;
+ if(cur_live.tm != machine().time())
+ cur_live.fi->tm->adjust(cur_live.tm - machine().time());
+ else
+ live_sync();
+}
+
+void i8271_device::live_sync()
+{
+ if(!cur_live.tm.is_never()) {
+ if(cur_live.tm > machine().time()) {
+ rollback();
+ live_run(machine().time());
+ cur_live.pll.commit(cur_live.fi->dev, cur_live.tm);
+ } else {
+ cur_live.pll.commit(cur_live.fi->dev, cur_live.tm);
+ if(cur_live.next_state != -1) {
+ cur_live.state = cur_live.next_state;
+ cur_live.next_state = -1;
+ }
+ if(cur_live.state == IDLE) {
+ cur_live.pll.stop_writing(cur_live.fi->dev, cur_live.tm);
+ cur_live.tm = attotime::never;
+ cur_live.fi->live = false;
+ cur_live.fi = 0;
+ }
+ }
+ cur_live.next_state = -1;
+ checkpoint();
+ }
+}
+
+void i8271_device::live_abort()
+{
+ if(!cur_live.tm.is_never() && cur_live.tm > machine().time()) {
+ rollback();
+ live_run(machine().time());
+ }
+
+ if(cur_live.fi) {
+ cur_live.pll.stop_writing(cur_live.fi->dev, cur_live.tm);
+ cur_live.fi->live = false;
+ cur_live.fi = 0;
+ }
+
+ cur_live.tm = attotime::never;
+ cur_live.state = IDLE;
+ cur_live.next_state = -1;
+}
+
+void i8271_device::live_run(attotime limit)
+{
+ if(cur_live.state == IDLE || cur_live.next_state != -1)
+ return;
+
+ if(limit == attotime::never) {
+ if(cur_live.fi->dev)
+ limit = cur_live.fi->dev->time_next_index();
+ if(limit == attotime::never) {
+ // Happens when there's no disk or if the fdc is not
+ // connected to a drive, hence no index pulse. Force a
+ // sync from time to time in that case, so that the main
+ // cpu timeout isn't too painful. Avoids looping into
+ // infinity looking for data too.
+
+ limit = machine().time() + attotime::from_msec(1);
+ cur_live.fi->tm->adjust(attotime::from_msec(1));
+ }
+ }
+
+ for(;;) {
+ switch(cur_live.state) {
+ case SEARCH_ADDRESS_MARK_HEADER:
+ if(read_one_bit(limit))
+ return;
+#if 0
+ fprintf(stderr, "%s: shift = %04x data=%02x c=%d\n", tts(cur_live.tm).c_str(), cur_live.shift_reg,
+ (cur_live.shift_reg & 0x4000 ? 0x80 : 0x00) |
+ (cur_live.shift_reg & 0x1000 ? 0x40 : 0x00) |
+ (cur_live.shift_reg & 0x0400 ? 0x20 : 0x00) |
+ (cur_live.shift_reg & 0x0100 ? 0x10 : 0x00) |
+ (cur_live.shift_reg & 0x0040 ? 0x08 : 0x00) |
+ (cur_live.shift_reg & 0x0010 ? 0x04 : 0x00) |
+ (cur_live.shift_reg & 0x0004 ? 0x02 : 0x00) |
+ (cur_live.shift_reg & 0x0001 ? 0x01 : 0x00),
+ cur_live.bit_counter);
+#endif
+
+ if(cur_live.shift_reg == 0xf57e) {
+ cur_live.crc = 0xef21;
+ cur_live.data_separator_phase = false;
+ cur_live.bit_counter = 0;
+ cur_live.state = READ_ID_BLOCK;
+ }
+ break;
+
+ case READ_ID_BLOCK: {
+ if(read_one_bit(limit))
+ return;
+ if(cur_live.bit_counter & 15)
+ break;
+ int slot = (cur_live.bit_counter >> 4)-1;
+
+ if(0)
+ fprintf(stderr, "%s: slot=%d data=%02x crc=%04x\n", tts(cur_live.tm).c_str(), slot, cur_live.data_reg, cur_live.crc);
+ cur_live.idbuf[slot] = cur_live.data_reg;
+ if(cur_live.fi->main_state == READ_ID) {
+ if(!set_output(cur_live.data_reg)) {
+ live_delay(IDLE);
+ return;
+ }
+ }
+ if(slot == 5) {
+ live_delay(IDLE);
+ return;
+ }
+ break;
+ }
+
+ case SEARCH_ADDRESS_MARK_DATA:
+ if(read_one_bit(limit))
+ return;
+#if 0
+ fprintf(stderr, "%s: shift = %04x data=%02x c=%d.%x\n", tts(cur_live.tm).c_str(), cur_live.shift_reg,
+ (cur_live.shift_reg & 0x4000 ? 0x80 : 0x00) |
+ (cur_live.shift_reg & 0x1000 ? 0x40 : 0x00) |
+ (cur_live.shift_reg & 0x0400 ? 0x20 : 0x00) |
+ (cur_live.shift_reg & 0x0100 ? 0x10 : 0x00) |
+ (cur_live.shift_reg & 0x0040 ? 0x08 : 0x00) |
+ (cur_live.shift_reg & 0x0010 ? 0x04 : 0x00) |
+ (cur_live.shift_reg & 0x0004 ? 0x02 : 0x00) |
+ (cur_live.shift_reg & 0x0001 ? 0x01 : 0x00),
+ cur_live.bit_counter >> 4, cur_live.bit_counter & 15);
+#endif
+
+ if(cur_live.bit_counter > 23*16) {
+ live_delay(SEARCH_ADDRESS_MARK_DATA_FAILED);
+ return;
+ }
+
+ if(cur_live.bit_counter >= 11*16 && (cur_live.shift_reg == 0xf56a || cur_live.shift_reg == 0xf56f)) {
+ cur_live.crc = cur_live.shift_reg == 0xf56a ? 0x8fe7 : 0xbf84;
+ cur_live.data_separator_phase = false;
+ cur_live.bit_counter = 0;
+ cur_live.state = READ_SECTOR_DATA;
+ }
+
+ break;
+
+ case SEARCH_ADDRESS_MARK_DATA_FAILED:
+ cur_live.state = IDLE;
+ return;
+
+ case READ_SECTOR_DATA: {
+ if(read_one_bit(limit))
+ return;
+ if(cur_live.bit_counter & 15)
+ break;
+ int slot = (cur_live.bit_counter >> 4)-1;
+ if(slot < sector_size) {
+ // Sector data
+ if(cur_live.fi->main_state == SCAN_DATA)
+ live_delay(SCAN_SECTOR_DATA_BYTE);
+ else if(cur_live.fi->main_state == VERIFY_DATA)
+ live_delay(VERIFY_SECTOR_DATA_BYTE);
+ else
+ live_delay(READ_SECTOR_DATA_BYTE);
+ return;
+ } else if(slot < sector_size+2) {
+ // CRC
+ if(slot == sector_size+1) {
+ live_delay(IDLE);
+ return;
+ }
+ }
+ break;
+ }
+
+ case READ_SECTOR_DATA_BYTE:
+ if(!set_output(cur_live.data_reg)) {
+ live_delay(IDLE);
+ return;
+ }
+ cur_live.state = READ_SECTOR_DATA;
+ checkpoint();
+ break;
+
+ case SCAN_SECTOR_DATA_BYTE:
+ if(!scan_done)
+ {
+ UINT8 data = 0;
+ if(!get_input(&data)) {
+ live_delay(IDLE);
+ return;
+ }
+ if(cur_live.data_reg != 0xff)
+ {
+ switch(command[4] >> 6) {
+ case 0:
+ if(cur_live.data_reg != data)
+ scan_match = false;
+ break;
+ case 1:
+ if(cur_live.data_reg < data)
+ scan_match = false;
+ break;
+ case 2:
+ if(cur_live.data_reg > data)
+ scan_match = false;
+ break;
+ default:
+ scan_match = false;
+ break;
+ }
+ }
+ scan_len++;
+ if(scan_len == command[5]) {
+ if(scan_match) {
+ int slot = calc_sector_size(command[3] >> 5) - ((cur_live.bit_counter >> 4)-1);
+ scan_sec = cur_live.idbuf[2];
+ scan_cnt[0] = slot & 0x7f;
+ scan_cnt[1] = slot >> 9;
+ scan_done = true;
+ rr = command[4] & 0xc0 ? ERR_SMNE : ERR_SMEQ;
+ }
+ else
+ {
+ scan_match = true;
+ scan_len = 0;
+ }
+ }
+ }
+ cur_live.state = READ_SECTOR_DATA;
+ checkpoint();
+ break;
+
+ case VERIFY_SECTOR_DATA_BYTE:
+ cur_live.state = READ_SECTOR_DATA;
+ checkpoint();
+ break;
+
+ case WRITE_SECTOR_SKIP_GAP2:
+ cur_live.bit_counter = 0;
+ cur_live.byte_counter = 0;
+ cur_live.state = WRITE_SECTOR_SKIP_GAP2_BYTE;
+ checkpoint();
+ break;
+
+ case WRITE_SECTOR_SKIP_GAP2_BYTE:
+ if(read_one_bit(limit))
+ return;
+ if(cur_live.bit_counter != 11*16)
+ break;
+ cur_live.bit_counter = 0;
+ cur_live.byte_counter = 0;
+ live_delay(WRITE_SECTOR_DATA);
+ return;
+
+ case WRITE_SECTOR_DATA:
+ if(cur_live.byte_counter < 6)
+ live_write_fm(0x00);
+ else if(cur_live.byte_counter < 7) {
+ cur_live.crc = 0xffff;
+ live_write_raw(BIT(command[0], 2) ? 0xf56a : 0xf56f);
+ } else if(cur_live.byte_counter < 7+sector_size) {
+ UINT8 data = 0;
+ if(!get_input(&data)) {
+ live_delay(IDLE);
+ return;
+ }
+ live_write_fm(data);
+ }
+ else if(cur_live.byte_counter < 7+sector_size+2)
+ live_write_fm(cur_live.crc >> 8);
+ else if(cur_live.byte_counter < 7+sector_size+2+1)
+ live_write_fm(0xff);
+ else {
+ cur_live.pll.stop_writing(cur_live.fi->dev, cur_live.tm);
+ cur_live.state = IDLE;
+ return;
+ }
+ cur_live.state = WRITE_SECTOR_DATA_BYTE;
+ cur_live.bit_counter = 16;
+ checkpoint();
+ break;
+
+ case WRITE_TRACK_PRE_SECTORS:
+ if(command[4]) {
+ if(cur_live.byte_counter < command[4])
+ live_write_fm(0xff);
+ else if(cur_live.byte_counter < (command[4] + 6))
+ live_write_fm(0x00);
+ else if(cur_live.byte_counter < (command[4] + 7))
+ live_write_raw(0xf77a);
+ else if(cur_live.byte_counter < (command[4] + command[5] + 7))
+ live_write_fm(0xff);
+ else {
+ cur_live.state = WRITE_TRACK_SECTOR;
+ cur_live.byte_counter = 0;
+ break;
+ }
+ } else {
+ if(cur_live.byte_counter < command[5])
+ live_write_fm(0xff);
+ else {
+ cur_live.state = WRITE_TRACK_SECTOR;
+ cur_live.byte_counter = 0;
+ break;
+ }
+ }
+ cur_live.state = WRITE_TRACK_PRE_SECTORS_BYTE;
+ cur_live.bit_counter = 16;
+ checkpoint();
+ break;
+
+ case WRITE_TRACK_SECTOR:
+ if(cur_live.byte_counter < 6)
+ live_write_fm(0x00);
+ else if(cur_live.byte_counter < 7) {
+ cur_live.crc = 0xffff;
+ live_write_raw(0xf57e);
+ } else if(cur_live.byte_counter < 11) {
+ UINT8 data = 0;
+ if(!get_input(&data)) {
+ live_delay(IDLE);
+ return;
+ }
+ live_write_fm(data);
+ } else if(cur_live.byte_counter < 13)
+ live_write_fm(cur_live.crc >> 8);
+ else if(cur_live.byte_counter < 24)
+ live_write_fm(0xff);
+ else if(cur_live.byte_counter < 30)
+ live_write_fm(0x00);
+ else if(cur_live.byte_counter < 31) {
+ cur_live.crc = 0xffff;
+ live_write_raw(0xf56f);
+ } else if(cur_live.byte_counter < 31+sector_size)
+ live_write_fm(0xe5);
+ else if(cur_live.byte_counter < 33+sector_size)
+ live_write_fm(cur_live.crc >> 8);
+ else if(cur_live.byte_counter < 33+sector_size+command[2])
+ live_write_fm(0xff);
+ else {
+ cur_live.byte_counter = 0;
+ command[3] = (command[3] & 0xe0) | ((command[3] & 0x1f) - 1);
+ cur_live.state = command[3] & 0x1f ? WRITE_TRACK_SECTOR : WRITE_TRACK_POST_SECTORS;
+ break;
+ }
+ cur_live.state = WRITE_TRACK_SECTOR_BYTE;
+ cur_live.bit_counter = 16;
+ checkpoint();
+ break;
+
+ case WRITE_TRACK_POST_SECTORS:
+ live_write_fm(0xff);
+ cur_live.state = WRITE_TRACK_POST_SECTORS_BYTE;
+ cur_live.bit_counter = 16;
+ checkpoint();
+ break;
+
+ case WRITE_TRACK_PRE_SECTORS_BYTE:
+ case WRITE_TRACK_SECTOR_BYTE:
+ case WRITE_TRACK_POST_SECTORS_BYTE:
+ case WRITE_SECTOR_DATA_BYTE:
+ if(write_one_bit(limit))
+ return;
+ if(cur_live.bit_counter == 0) {
+ cur_live.byte_counter++;
+ live_delay(cur_live.state-1);
+ return;
+ }
+ break;
+
+ default:
+ logerror("%s: Unknown live state %d\n", tts(cur_live.tm).c_str(), cur_live.state);
+ return;
+ }
+ }
+}
+
+int i8271_device::check_command()
+{
+ switch(command[0] & 0x3f) {
+ case 0x00:
+ case 0x04:
+ return command_pos == 6 ? C_SCAN : C_INCOMPLETE;
+
+ case 0x0a:
+ case 0x0e:
+ return command_pos == 3 ? C_WRITE_DATA_SINGLE : C_INCOMPLETE;
+
+ case 0x0b:
+ case 0x0f:
+ return command_pos == 4 ? C_WRITE_DATA_MULTI : C_INCOMPLETE;
+
+ case 0x12:
+ case 0x16:
+ return command_pos == 3 ? C_READ_DATA_SINGLE : C_INCOMPLETE;
+
+ case 0x13:
+ case 0x17:
+ return command_pos == 4 ? C_READ_DATA_MULTI : C_INCOMPLETE;
+
+ case 0x1e:
+ return command_pos == 3 ? C_VERIFY_DATA_SINGLE : C_INCOMPLETE;
+
+ case 0x1f:
+ return command_pos == 4 ? C_VERIFY_DATA_MULTI : C_INCOMPLETE;
+
+ case 0x1b:
+ return command_pos == 4 ? C_READ_ID : C_INCOMPLETE;
+
+ case 0x23:
+ return command_pos == 6 ? C_FORMAT_TRACK : C_INCOMPLETE;
+
+ case 0x29:
+ return command_pos == 2 ? C_SEEK : C_INCOMPLETE;
+
+ case 0x2c:
+ return C_READ_DRIVE_STATUS;
+
+ case 0x35:
+ return command_pos == 5 ? C_SPECIFY : C_INCOMPLETE;
+
+ case 0x3a:
+ return command_pos == 3 ? C_WRITE_SPECIAL_REGISTER : C_INCOMPLETE;
+
+ case 0x3d:
+ return command_pos == 2 ? C_READ_SPECIAL_REGISTER : C_INCOMPLETE;
+
+ default:
+ return C_INVALID;
+ }
+}
+
+void i8271_device::start_command(int cmd)
+{
+ command_pos = 0;
+ main_phase = PHASE_EXEC;
+ switch(cmd) {
+ case C_READ_DATA_SINGLE:
+ command[3] = 1;
+ case C_READ_DATA_MULTI:
+ read_data_start(flopi[BIT(command[0], 7)]);
+ break;
+
+ case C_VERIFY_DATA_SINGLE:
+ command[3] = 1;
+ case C_VERIFY_DATA_MULTI:
+ verify_data_start(flopi[BIT(command[0], 7)]);
+ break;
+
+ case C_FORMAT_TRACK:
+ format_track_start(flopi[BIT(command[0], 7)]);
+ break;
+
+ case C_READ_ID:
+ read_id_start(flopi[BIT(command[0], 7)]);
+ break;
+
+ case C_SCAN:
+ scan_start(flopi[BIT(command[0], 7)]);
+ break;
+
+ case C_SEEK:
+ if(!command[1])
+ recalibrate_start(flopi[BIT(command[0], 7)]);
+ else
+ seek_start(flopi[BIT(command[0], 7)]);
+ break;
+
+ case C_READ_DRIVE_STATUS:
+ {
+ floppy_info &fi = flopi[BIT(command[0], 7)];
+ rr = (get_ready(1) ? 0x40 : 0) | (fi.dev->idx_r() ? 0x10 : 0) | (fi.dev->wpt_r() ? 0 : 8) |
+ (get_ready(0) ? 4 : 0) | (fi.dev->trk00_r() ? 1 : 0);
+ flopi[0].ready = true;
+ flopi[1].ready = true;
+ main_phase = PHASE_IDLE;
+ break;
+ }
+ case C_SPECIFY:
+ logerror("%s: command specify %02x %02x %02x %02x\n",
+ tag(), command[1],
+ command[2], command[3], command[4]);
+ switch(command[1]) {
+ case 0x0d:
+ srate = command[2];
+ hset = command[3];
+ icnt = command[4] >> 4;
+ hload = command[4] & 0xf;
+ break;
+ case 0x10:
+ case 0x18:
+ {
+ floppy_info &fi = flopi[BIT(command[1], 3)];
+ fi.badtrack[0] = command[2];
+ fi.badtrack[1] = command[3];
+ fi.pcn = command[4];
+ }
+ }
+ main_phase = PHASE_IDLE;
+ break;
+
+ case C_WRITE_DATA_SINGLE:
+ command[3] = 1;
+ case C_WRITE_DATA_MULTI:
+ write_data_start(flopi[BIT(command[0], 7)]);
+ break;
+
+ case C_READ_SPECIAL_REGISTER:
+ switch(command[1] & 0x3f) {
+ case 0x06:
+ rr = scan_sec;
+ break;
+ case 0x10:
+ case 0x11:
+ rr = flopi[0].badtrack[BIT(command[1], 0)];
+ break;
+ case 0x12:
+ rr = flopi[0].pcn;
+ break;
+ case 0x13:
+ rr = scan_cnt[0];
+ break;
+ case 0x14:
+ rr = scan_cnt[1];
+ break;
+ case 0x17:
+ rr = moder;
+ break;
+ case 0x18:
+ case 0x19:
+ rr = flopi[1].badtrack[BIT(command[1], 0)];
+ break;
+ case 0x1a:
+ rr = flopi[1].pcn;
+ break;
+ case 0x22: {
+ floppy_info &fi = flopi[BIT(command[0], 7)];
+ rr = (get_ready(1) ? 0x40 : 0) | (fi.dev->idx_r() ? 0x10 : 0) | (fi.dev->wpt_r() ? 0 : 8) |
+ (get_ready(0) ? 4 : 0) | (fi.dev->trk00_r() ? 1 : 0);
+ break;
+ }
+ case 0x23:
+ rr = (command[0] & 0xc0) | oport;
+ break;
+ default:
+ rr = 0;
+ break;
+ }
+ main_phase = PHASE_IDLE;
+ break;
+
+ case C_WRITE_SPECIAL_REGISTER:
+ switch(command[1]) {
+ case 0x06:
+ scan_sec = command[2];
+ break;
+ case 0x10:
+ case 0x11:
+ flopi[0].badtrack[BIT(command[1], 0)] = command[2];
+ break;
+ case 0x12:
+ flopi[0].pcn = command[2];
+ break;
+ case 0x13:
+ scan_cnt[0] = command[2];
+ break;
+ case 0x14:
+ scan_cnt[1] = command[2];
+ break;
+ case 0x17:
+ moder = command[2] | 0xc0;
+ break;
+ case 0x18:
+ case 0x19:
+ flopi[1].badtrack[BIT(command[1], 0)] = command[2];
+ break;
+ case 0x1a:
+ flopi[1].pcn = command[2];
+ break;
+ case 0x22:
+ break;
+ case 0x23: {
+ oport = command[2] & ~0xc0;
+ floppy_info &fi = flopi[BIT(command[0], 7)];
+ fi.dev->dir_w(BIT(command[2], 2));
+ fi.dev->stp_w(BIT(command[2], 1));
+ opt_cb(BIT(command[2], 5));
+ hdl_cb(BIT(command[2], 3));
+ break;
+ }
+ }
+ main_phase = PHASE_IDLE;
+ break;
+
+ default:
+ fprintf(stderr, "start command %d\n", cmd);
+ exit(1);
+ }
+}
+
+void i8271_device::command_end(floppy_info &fi, bool data_completion)
+{
+ logerror("%s: command done (%s) - %02x\n", tag(), data_completion ? "data" : "seek", rr);
+ fi.main_state = fi.sub_state = IDLE;
+ main_phase = PHASE_RESULT;
+ set_irq(true);
+}
+
+void i8271_device::recalibrate_start(floppy_info &fi)
+{
+ logerror("%s: command recalibrate\n", tag());
+ fi.main_state = RECALIBRATE;
+ fi.sub_state = SEEK_WAIT_STEP_TIME_DONE;
+ fi.dir = 1;
+ fi.counter = 255;
+ seek_continue(fi);
+}
+
+void i8271_device::seek_start(floppy_info &fi)
+{
+ logerror("%s: command seek %d\n", tag(), command[1]);
+ fi.main_state = SEEK;
+ fi.sub_state = SEEK_WAIT_STEP_TIME_DONE;
+ fi.dir = fi.pcn > command[1] ? 1 : 0;
+ seek_continue(fi);
+}
+
+void i8271_device::delay_cycles(emu_timer *tm, int cycles)
+{
+ tm->adjust(attotime::from_double(double(cycles)/cur_rate));
+}
+
+void i8271_device::seek_continue(floppy_info &fi)
+{
+ for(;;) {
+ switch(fi.sub_state) {
+ case SEEK_MOVE:
+ if(fi.dev) {
+ fi.dev->dir_w(fi.dir);
+ fi.dev->stp_w(0);
+ }
+ fi.sub_state = SEEK_WAIT_STEP_SIGNAL_TIME;
+ fi.tm->adjust(attotime::from_nsec(2500));
+ return;
+
+ case SEEK_WAIT_STEP_SIGNAL_TIME:
+ return;
+
+ case SEEK_WAIT_STEP_SIGNAL_TIME_DONE:
+ if(fi.dev)
+ fi.dev->stp_w(1);
+
+ do {
+ if(fi.pcn > command[1])
+ fi.pcn--;
+ else
+ fi.pcn++;
+ } while((fi.pcn == fi.badtrack[0]) || (fi.pcn == fi.badtrack[1]));
+ fi.sub_state = SEEK_WAIT_STEP_TIME;
+ delay_cycles(fi.tm, 500*srate);
+ return;
+
+ case SEEK_WAIT_STEP_TIME:
+ return;
+
+ case SEEK_WAIT_STEP_TIME_DONE: {
+ bool done = false;
+ switch(fi.main_state) {
+ case RECALIBRATE:
+ fi.counter--;
+ done = fi.dev && !fi.dev->trk00_r();
+ if(done)
+ fi.pcn = 0;
+ else if(!fi.counter) {
+ rr = ERR_T0NF;
+ command_end(fi, false);
+ return;
+ }
+ break;
+ case SEEK:
+ done = fi.pcn == command[1];
+ break;
+ }
+ if(done) {
+ rr = ERR_NONE;
+ command_end(fi, false);
+ return;
+ }
+ fi.sub_state = SEEK_MOVE;
+ break;
+ }
+ }
+ }
+}
+
+void i8271_device::read_data_start(floppy_info &fi)
+{
+ fi.main_state = READ_DATA;
+ fi.sub_state = HEAD_LOAD_DONE;
+
+ logerror("%s: command read%s data%s cmd=%02x crn=(%d, %d, %d) len=%02x rate=%d\n",
+ tag(),
+ command[0] & 0x04 ? " deleted" : "",
+ command[0] & 0x01 ? " multi" : "",
+ command[0],
+ command[1],
+ command[2],
+ calc_sector_size(command[3] >> 5),
+ command[3] & 0x1f,
+ cur_rate);
+
+ rr = ERR_NONE;
+ fi.ready = get_ready(BIT(command[0], 7));
+
+ if(!fi.ready) {
+ rr = ERR_NR;
+ fi.sub_state = COMMAND_DONE;
+ read_data_continue(fi);
+ return;
+ }
+
+ read_data_continue(fi);
+}
+
+void i8271_device::scan_start(floppy_info &fi)
+{
+ fi.main_state = SCAN_DATA;
+ fi.sub_state = HEAD_LOAD_DONE;
+
+ logerror("%s: command scan%s data%s cmd=%02x crn=(%d, %d, %d) len=%02x rate=%d\n",
+ tag(),
+ command[0] & 0x04 ? " deleted" : "",
+ command[0] & 0x01 ? " multi" : "",
+ command[0],
+ command[1],
+ command[2],
+ calc_sector_size(command[3] >> 5),
+ command[3] & 0x1f,
+ cur_rate);
+
+ rr = ERR_NONE;
+ scan_done = false;
+ scan_len = 0;
+ scan_match = true;
+ fi.ready = get_ready(BIT(command[0], 7));
+
+ if(!fi.ready) {
+ rr = ERR_NR;
+ fi.sub_state = COMMAND_DONE;
+ read_data_continue(fi);
+ return;
+ }
+ read_data_continue(fi);
+}
+
+void i8271_device::verify_data_start(floppy_info &fi)
+{
+ fi.main_state = VERIFY_DATA;
+ fi.sub_state = HEAD_LOAD_DONE;
+
+ logerror("%s: command verify%s data%s cmd=%02x crn=(%d, %d, %d) len=%02x rate=%d\n",
+ tag(),
+ command[0] & 0x04 ? " deleted" : "",
+ command[0] & 0x01 ? " multi" : "",
+ command[0],
+ command[1],
+ command[2],
+ calc_sector_size(command[3] >> 5),
+ command[3] & 0x1f,
+ cur_rate);
+
+ rr = ERR_NONE;
+ fi.ready = get_ready(BIT(command[0], 7));
+
+ if(!fi.ready) {
+ rr = ERR_NR;
+ fi.sub_state = COMMAND_DONE;
+ read_data_continue(fi);
+ return;
+ }
+ read_data_continue(fi);
+}
+
+void i8271_device::read_data_continue(floppy_info &fi)
+{
+ for(;;) {
+ switch(fi.sub_state) {
+ case HEAD_LOAD_DONE:
+ if(fi.pcn == command[1]) {
+ fi.sub_state = SEEK_DONE;
+ break;
+ }
+ if(fi.dev) {
+ fi.dev->dir_w(fi.pcn > command[1] ? 1 : 0);
+ fi.dev->stp_w(0);
+ }
+ fi.sub_state = SEEK_WAIT_STEP_SIGNAL_TIME;
+ fi.tm->adjust(attotime::from_nsec(2500));
+ return;
+
+ case SEEK_WAIT_STEP_SIGNAL_TIME:
+ return;
+
+ case SEEK_WAIT_STEP_SIGNAL_TIME_DONE:
+ if(fi.dev)
+ fi.dev->stp_w(1);
+
+ fi.sub_state = SEEK_WAIT_STEP_TIME;
+ delay_cycles(fi.tm, 500*srate);
+ return;
+
+ case SEEK_WAIT_STEP_TIME:
+ return;
+
+ case SEEK_WAIT_STEP_TIME_DONE:
+ do {
+ if(fi.pcn > command[1])
+ fi.pcn--;
+ else
+ fi.pcn++;
+ } while((fi.pcn == fi.badtrack[0]) || (fi.pcn == fi.badtrack[1]));
+ fi.sub_state = HEAD_LOAD_DONE;
+ break;
+
+ case SEEK_DONE:
+ fi.counter = 0;
+ fi.sub_state = SCAN_ID;
+ live_start(fi, SEARCH_ADDRESS_MARK_HEADER);
+ return;
+
+ case SCAN_ID:
+ if(cur_live.crc) {
+ rr = ERR_ICRC;
+ fi.sub_state = COMMAND_DONE;
+ break;
+ }
+ if(!sector_matches()) {
+ if(cur_live.idbuf[0] != command[1]) {
+ rr = ERR_NF;
+ fi.sub_state = COMMAND_DONE;
+ break;
+ }
+ live_start(fi, SEARCH_ADDRESS_MARK_HEADER);
+ return;
+ }
+ logerror("%s: reading sector %02x %02x %02x %02x\n",
+ tag(),
+ cur_live.idbuf[0],
+ cur_live.idbuf[1],
+ cur_live.idbuf[2],
+ cur_live.idbuf[3]);
+ sector_size = calc_sector_size(cur_live.idbuf[3]);
+ fi.sub_state = SECTOR_READ;
+ live_start(fi, SEARCH_ADDRESS_MARK_DATA);
+ return;
+
+ case SCAN_ID_FAILED:
+ rr = ERR_NF;
+ fi.sub_state = COMMAND_DONE;
+ break;
+
+ case SECTOR_READ: {
+ if(cur_live.crc) {
+ rr = ERR_DCRC;
+ fi.sub_state = COMMAND_DONE;
+ break;
+ }
+ bool done = rr || (!(command[0] & 1) && (fi.main_state != SCAN_DATA));
+ if(!done)
+ {
+ command[3] = (command[3] & 0xe0) | ((command[3] & 0x1f) - 1);
+ if(command[3] & 0x1f)
+ command[2]++;
+ else
+ done = true;
+ }
+ if(!done) {
+ fi.sub_state = SEEK_DONE;
+ break;
+ }
+ fi.sub_state = COMMAND_DONE;
+ break;
+ }
+
+ case COMMAND_DONE:
+ command_end(fi, true);
+ return;
+
+ default:
+ logerror("%s: read sector unknown sub-state %d\n", ttsn().c_str(), fi.sub_state);
+ return;
+ }
+ }
+}
+
+void i8271_device::write_data_start(floppy_info &fi)
+{
+ fi.main_state = WRITE_DATA;
+ fi.sub_state = HEAD_LOAD_DONE;
+ logerror("%s: command write%s data%s cmd=%02x crn=(%d, %d, %d) len=%02x rate=%d\n",
+ tag(),
+ command[0] & 0x04 ? " deleted" : "",
+ command[0] & 0x01 ? " multi" : "",
+ command[0],
+ command[1],
+ command[2],
+ calc_sector_size(command[3] >> 5),
+ command[3] & 0x1f,
+ cur_rate);
+
+ rr = ERR_NONE;
+ fi.ready = get_ready(BIT(command[0], 7));
+
+ if(!fi.ready) {
+ rr = ERR_NR;
+ fi.sub_state = COMMAND_DONE;
+ write_data_continue(fi);
+ return;
+ }
+
+ write_data_continue(fi);
+}
+
+void i8271_device::write_data_continue(floppy_info &fi)
+{
+ for(;;) {
+ switch(fi.sub_state) {
+ case HEAD_LOAD_DONE:
+ if(fi.pcn == command[1]) {
+ fi.sub_state = SEEK_DONE;
+ break;
+ }
+ if(fi.dev) {
+ fi.dev->dir_w(fi.pcn > command[1] ? 1 : 0);
+ fi.dev->stp_w(0);
+ }
+ fi.sub_state = SEEK_WAIT_STEP_SIGNAL_TIME;
+ fi.tm->adjust(attotime::from_nsec(2500));
+ return;
+
+ case SEEK_WAIT_STEP_SIGNAL_TIME:
+ return;
+
+ case SEEK_WAIT_STEP_SIGNAL_TIME_DONE:
+ if(fi.dev)
+ fi.dev->stp_w(1);
+
+ fi.sub_state = SEEK_WAIT_STEP_TIME;
+ delay_cycles(fi.tm, 500*srate);
+ return;
+
+ case SEEK_WAIT_STEP_TIME:
+ return;
+
+ case SEEK_WAIT_STEP_TIME_DONE:
+ do {
+ if(fi.pcn > command[1])
+ fi.pcn--;
+ else
+ fi.pcn++;
+ } while((fi.pcn == fi.badtrack[0]) || (fi.pcn == fi.badtrack[1]));
+ fi.sub_state = HEAD_LOAD_DONE;
+ break;
+
+ case SEEK_DONE:
+ fi.counter = 0;
+ fi.sub_state = SCAN_ID;
+ live_start(fi, SEARCH_ADDRESS_MARK_HEADER);
+ return;
+
+ case SCAN_ID:
+ if(!sector_matches()) {
+ live_start(fi, SEARCH_ADDRESS_MARK_HEADER);
+ return;
+ }
+ if(cur_live.crc) {
+ rr = ERR_ICRC;
+ fi.sub_state = COMMAND_DONE;
+ break;
+ }
+ sector_size = calc_sector_size(cur_live.idbuf[3]);
+ fi.sub_state = SECTOR_WRITTEN;
+ set_drq(true);
+ live_start(fi, WRITE_SECTOR_SKIP_GAP2);
+ return;
+
+ case SCAN_ID_FAILED:
+ rr = ERR_NF;
+ fi.sub_state = COMMAND_DONE;
+ break;
+
+ case SECTOR_WRITTEN: {
+ bool done = rr || !(command[0] & 1);
+ if(!done)
+ {
+ command[3] = (command[3] & 0xe0) | ((command[3] & 0x1f) - 1);
+ if(command[3] & 0x1f)
+ command[2]++;
+ else
+ done = true;
+ }
+ if(!done) {
+ fi.sub_state = HEAD_LOAD_DONE;
+ break;
+ }
+ fi.sub_state = COMMAND_DONE;
+ break;
+ }
+
+ case COMMAND_DONE:
+ command_end(fi, true);
+ return;
+
+ default:
+ logerror("%s: write sector unknown sub-state %d\n", ttsn().c_str(), fi.sub_state);
+ return;
+ }
+ }
+}
+
+int i8271_device::calc_sector_size(UINT8 size)
+{
+ return size > 7 ? 16384 : 128 << size;
+}
+
+void i8271_device::format_track_start(floppy_info &fi)
+{
+ fi.main_state = FORMAT_TRACK;
+ fi.sub_state = HEAD_LOAD_DONE;
+
+ logerror("%s: command format track c=%02x n=%02x sc=%02x gap3=%02x gap5=%02x gap1=%02x\n",
+ tag(),
+ command[1], command[3] >> 5, command[3] & 0x1f, command[2], command[4], command[5]);
+
+ rr = ERR_NONE;
+
+ fi.ready = get_ready(BIT(command[0], 7));
+
+ if(!fi.ready) {
+ rr = ERR_NR;
+ fi.sub_state = TRACK_DONE;
+ format_track_continue(fi);
+ return;
+ }
+ sector_size = calc_sector_size(command[3] >> 5);
+
+ format_track_continue(fi);
+}
+
+void i8271_device::format_track_continue(floppy_info &fi)
+{
+ for(;;) {
+ switch(fi.sub_state) {
+ case HEAD_LOAD_DONE:
+ if(fi.pcn == command[1]) {
+ fi.sub_state = WAIT_INDEX;
+ break;
+ }
+ if(fi.dev) {
+ fi.dev->dir_w(fi.pcn > command[1] ? 1 : 0);
+ fi.dev->stp_w(0);
+ }
+ fi.sub_state = SEEK_WAIT_STEP_SIGNAL_TIME;
+ fi.tm->adjust(attotime::from_nsec(2500));
+ return;
+
+ case SEEK_WAIT_STEP_SIGNAL_TIME:
+ return;
+
+ case SEEK_WAIT_STEP_SIGNAL_TIME_DONE:
+ if(fi.dev)
+ fi.dev->stp_w(1);
+
+ fi.sub_state = SEEK_WAIT_STEP_TIME;
+ delay_cycles(fi.tm, 500*srate);
+ return;
+
+ case SEEK_WAIT_STEP_TIME:
+ return;
+
+ case SEEK_WAIT_STEP_TIME_DONE:
+ do {
+ if(fi.pcn > command[1])
+ fi.pcn--;
+ else
+ fi.pcn++;
+ } while((fi.pcn == fi.badtrack[0]) || (fi.pcn == fi.badtrack[1]));
+ fi.sub_state = HEAD_LOAD_DONE;
+ break;
+
+ case SEEK_DONE:
+ fi.sub_state = WAIT_INDEX;
+ break;
+
+ case WAIT_INDEX:
+ return;
+
+ case WAIT_INDEX_DONE:
+ logerror("%s: index found, writing track\n", tag());
+ fi.sub_state = TRACK_DONE;
+ cur_live.pll.start_writing(machine().time());
+ set_drq(true);
+ live_start(fi, WRITE_TRACK_PRE_SECTORS);
+ return;
+
+ case TRACK_DONE:
+ command_end(fi, true);
+ return;
+
+ default:
+ logerror("%s: format track unknown sub-state %d\n", ttsn().c_str(), fi.sub_state);
+ return;
+ }
+ }
+}
+
+void i8271_device::read_id_start(floppy_info &fi)
+{
+ fi.main_state = READ_ID;
+ fi.sub_state = HEAD_LOAD_DONE;
+
+ logerror("%s: command read id, rate=%d\n",
+ tag(),
+ cur_rate);
+
+ rr = ERR_NONE;
+
+ for(int i=0; i<4; i++)
+ cur_live.idbuf[i] = 0x00;
+
+ fi.ready = get_ready(command[1] & 3);
+
+ if(!fi.ready) {
+ rr = ERR_NR;
+ fi.sub_state = COMMAND_DONE;
+ read_id_continue(fi);
+ return;
+ }
+
+ read_id_continue(fi);
+}
+
+void i8271_device::read_id_continue(floppy_info &fi)
+{
+ for(;;) {
+ switch(fi.sub_state) {
+ case HEAD_LOAD_DONE:
+ if(fi.pcn == command[1]) {
+ fi.sub_state = SEEK_DONE;
+ break;
+ }
+ if(fi.dev) {
+ fi.dev->dir_w(fi.pcn > command[1] ? 1 : 0);
+ fi.dev->stp_w(0);
+ }
+ fi.sub_state = SEEK_WAIT_STEP_SIGNAL_TIME;
+ fi.tm->adjust(attotime::from_nsec(2500));
+ return;
+
+ case SEEK_WAIT_STEP_SIGNAL_TIME:
+ return;
+
+ case SEEK_WAIT_STEP_SIGNAL_TIME_DONE:
+ if(fi.dev)
+ fi.dev->stp_w(1);
+
+ fi.sub_state = SEEK_WAIT_STEP_TIME;
+ delay_cycles(fi.tm, 500*srate);
+ return;
+
+ case SEEK_WAIT_STEP_TIME:
+ return;
+
+ case SEEK_WAIT_STEP_TIME_DONE:
+ do {
+ if(fi.pcn > command[1])
+ fi.pcn--;
+ else
+ fi.pcn++;
+ } while((fi.pcn == fi.badtrack[0]) || (fi.pcn == fi.badtrack[1]));
+ fi.sub_state = HEAD_LOAD_DONE;
+ break;
+
+ case SEEK_DONE:
+ fi.counter = 0;
+ fi.sub_state = SCAN_ID;
+ live_start(fi, SEARCH_ADDRESS_MARK_HEADER);
+ return;
+
+ case SCAN_ID:
+ if(cur_live.crc) {
+ rr = ERR_ICRC;
+ fi.sub_state = COMMAND_DONE;
+ break;
+ }
+ if(!(command[3]--)) {
+ fi.counter = 0;
+ fi.sub_state = SCAN_ID;
+ }
+ else
+ fi.sub_state = COMMAND_DONE;
+ break;
+
+ case SCAN_ID_FAILED:
+ if(rr != ERR_DMA)
+ rr = ERR_NF;
+ fi.sub_state = COMMAND_DONE;
+ break;
+
+ case COMMAND_DONE:
+ command_end(fi, true);
+ return;
+
+ default:
+ logerror("%s: read id unknown sub-state %d\n", ttsn().c_str(), fi.sub_state);
+ return;
+ }
+ }
+}
+
+std::string i8271_device::tts(attotime t)
+{
+ char buf[256];
+ const char *sign = "";
+ if(t.seconds() < 0) {
+ t = attotime::zero-t;
+ sign = "-";
+ }
+ int nsec = t.attoseconds() / ATTOSECONDS_PER_NANOSECOND;
+ sprintf(buf, "%s%04d.%03d,%03d,%03d", sign, int(t.seconds()), nsec/1000000, (nsec/1000)%1000, nsec % 1000);
+ return buf;
+}
+
+std::string i8271_device::ttsn()
+{
+ return tts(machine().time());
+}
+
+void i8271_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
+{
+ live_sync();
+
+ floppy_info &fi = flopi[id];
+ switch(fi.sub_state) {
+ case SEEK_WAIT_STEP_SIGNAL_TIME:
+ fi.sub_state = SEEK_WAIT_STEP_SIGNAL_TIME_DONE;
+ break;
+ case SEEK_WAIT_STEP_TIME:
+ fi.sub_state = SEEK_WAIT_STEP_TIME_DONE;
+ break;
+ }
+
+ general_continue(fi);
+}
+
+void i8271_device::index_callback(floppy_image_device *floppy, int state)
+{
+ for(int fid=0; fid<2; fid++) {
+ floppy_info &fi = flopi[fid];
+ if(fi.dev != floppy)
+ continue;
+
+ if(fi.live)
+ live_sync();
+ fi.index = state;
+
+ if(!state) {
+ general_continue(fi);
+ continue;
+ }
+
+ switch(fi.sub_state) {
+ case IDLE:
+ case SEEK_MOVE:
+ case SEEK_WAIT_STEP_SIGNAL_TIME:
+ case SEEK_WAIT_STEP_SIGNAL_TIME_DONE:
+ case SEEK_WAIT_STEP_TIME:
+ case SEEK_WAIT_STEP_TIME_DONE:
+ case HEAD_LOAD_DONE:
+ case SCAN_ID_FAILED:
+ case SECTOR_READ:
+ break;
+
+ case WAIT_INDEX:
+ fi.sub_state = WAIT_INDEX_DONE;
+ break;
+
+ case SCAN_ID:
+ fi.counter++;
+ if(fi.counter == 2) {
+ fi.sub_state = SCAN_ID_FAILED;
+ live_abort();
+ }
+ break;
+
+ case TRACK_DONE:
+ live_abort();
+ break;
+
+ default:
+ logerror("%s: Index pulse on unknown sub-state %d\n", ttsn().c_str(), fi.sub_state);
+ break;
+ }
+
+ general_continue(fi);
+ }
+}
+
+
+void i8271_device::general_continue(floppy_info &fi)
+{
+ if(fi.live && cur_live.state != IDLE) {
+ live_run();
+ if(cur_live.state != IDLE)
+ return;
+ }
+
+ switch(fi.main_state) {
+ case IDLE:
+ break;
+
+ case RECALIBRATE:
+ case SEEK:
+ seek_continue(fi);
+ break;
+
+ case READ_DATA:
+ case SCAN_DATA:
+ case VERIFY_DATA:
+ read_data_continue(fi);
+ break;
+
+ case WRITE_DATA:
+ write_data_continue(fi);
+ break;
+
+ case FORMAT_TRACK:
+ format_track_continue(fi);
+ break;
+
+ case READ_ID:
+ read_id_continue(fi);
+ break;
+
+ default:
+ logerror("%s: general_continue on unknown main-state %d\n", ttsn().c_str(), fi.main_state);
+ break;
+ }
+}
+
+bool i8271_device::read_one_bit(const attotime &limit)
+{
+ int bit = cur_live.pll.get_next_bit(cur_live.tm, cur_live.fi->dev, limit);
+ if(bit < 0)
+ return true;
+ cur_live.shift_reg = (cur_live.shift_reg << 1) | bit;
+ cur_live.bit_counter++;
+ if(cur_live.data_separator_phase) {
+ cur_live.data_reg = (cur_live.data_reg << 1) | bit;
+ if((cur_live.crc ^ (bit ? 0x8000 : 0x0000)) & 0x8000)
+ cur_live.crc = (cur_live.crc << 1) ^ 0x1021;
+ else
+ cur_live.crc = cur_live.crc << 1;
+ }
+ cur_live.data_separator_phase = !cur_live.data_separator_phase;
+ return false;
+}
+
+bool i8271_device::write_one_bit(const attotime &limit)
+{
+ bool bit = cur_live.shift_reg & 0x8000;
+ if(cur_live.pll.write_next_bit(bit, cur_live.tm, cur_live.fi->dev, limit))
+ return true;
+ if(cur_live.bit_counter & 1) {
+ if((cur_live.crc ^ (bit ? 0x8000 : 0x0000)) & 0x8000)
+ cur_live.crc = (cur_live.crc << 1) ^ 0x1021;
+ else
+ cur_live.crc = cur_live.crc << 1;
+ }
+ cur_live.shift_reg = cur_live.shift_reg << 1;
+ cur_live.bit_counter--;
+ return false;
+}
+
+void i8271_device::live_write_raw(UINT16 raw)
+{
+ // logerror("write %04x %04x\n", raw, cur_live.crc);
+ cur_live.shift_reg = raw;
+ cur_live.data_bit_context = raw & 1;
+}
+
+void i8271_device::live_write_fm(UINT8 fm)
+{
+ UINT16 raw = 0xaaaa;
+ for(int i=0; i<8; i++)
+ if(fm & (0x80 >> i))
+ raw |= 0x4000 >> (2*i);
+ cur_live.data_reg = fm;
+ cur_live.shift_reg = raw;
+ cur_live.data_bit_context = fm & 1;
+ // logerror("write %02x %04x %04x\n", fm, cur_live.crc, raw);
+}
+
+bool i8271_device::sector_matches() const
+{
+ if(0)
+ logerror("%s: matching %02x %02x %02x - %02x %02x %02x\n", tag(),
+ cur_live.idbuf[0], cur_live.idbuf[2], cur_live.idbuf[3],
+ command[1], command[2], command[3] >> 5);
+ return
+ cur_live.idbuf[0] == command[1] &&
+ cur_live.idbuf[2] == command[2] &&
+ cur_live.idbuf[3] == (command[3] >> 5);
+}
diff --git a/src/devices/machine/i8271.h b/src/devices/machine/i8271.h
new file mode 100644
index 00000000000..d3400e95adf
--- /dev/null
+++ b/src/devices/machine/i8271.h
@@ -0,0 +1,296 @@
+// license:BSD-3-Clause
+// copyright-holders:Carl,Olivier Galibert
+#ifndef I8271N_H_
+#define I8271N_H_
+
+#include "emu.h"
+#include "imagedev/floppy.h"
+#include "fdc_pll.h"
+
+#define MCFG_I8271_IRQ_CALLBACK(_write) \
+ devcb = &i8271_device::set_intrq_wr_callback(*device, DEVCB_##_write);
+
+#define MCFG_I8271_DRQ_CALLBACK(_write) \
+ devcb = &i8271_device::set_drq_wr_callback(*device, DEVCB_##_write);
+
+#define MCFG_I8271_HDL_CALLBACK(_write) \
+ devcb = &i8271_device::set_hdl_wr_callback(*device, DEVCB_##_write);
+
+#define MCFG_I8271_OPT_CALLBACK(_write) \
+ devcb = &i8271_device::set_opt_wr_callback(*device, DEVCB_##_write);
+
+/***************************************************************************
+ MACROS
+***************************************************************************/
+
+class i8271_device : public device_t
+{
+public:
+ i8271_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+ ~i8271_device() {}
+
+ template<class _Object> static devcb_base &set_intrq_wr_callback(device_t &device, _Object object) { return downcast<i8271_device &>(device).intrq_cb.set_callback(object); }
+ template<class _Object> static devcb_base &set_drq_wr_callback(device_t &device, _Object object) { return downcast<i8271_device &>(device).drq_cb.set_callback(object); }
+ template<class _Object> static devcb_base &set_hdl_wr_callback(device_t &device, _Object object) { return downcast<i8271_device &>(device).hdl_cb.set_callback(object); }
+ template<class _Object> static devcb_base &set_opt_wr_callback(device_t &device, _Object object) { return downcast<i8271_device &>(device).opt_cb.set_callback(object); }
+
+ DECLARE_READ8_MEMBER (sr_r);
+ DECLARE_READ8_MEMBER (rr_r);
+ DECLARE_WRITE8_MEMBER(reset_w) { if(data == 1) soft_reset(); }
+ DECLARE_WRITE8_MEMBER(cmd_w);
+ DECLARE_WRITE8_MEMBER(param_w);
+ DECLARE_READ8_MEMBER (data_r);
+ DECLARE_WRITE8_MEMBER(data_w);
+ DECLARE_ADDRESS_MAP(map, 8);
+
+ void ready_w(bool val);
+
+ void set_rate(int rate); // rate in bps, to be used when the fdc is externally frequency-controlled
+
+ void set_ready_line_connected(bool ready);
+ void set_select_lines_connected(bool select);
+ void set_floppy(floppy_image_device *image);
+ void soft_reset();
+
+protected:
+ virtual void device_start();
+ virtual void device_reset();
+ virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
+
+private:
+ enum {
+ PHASE_IDLE, PHASE_CMD, PHASE_EXEC, PHASE_RESULT
+ };
+
+ enum {
+ RR_DEL = 0x20,
+ RR_CT = 0x18,
+ RR_CC = 0x06,
+
+ SR_BSY = 0x80,
+ SR_CF = 0x40,
+ SR_PF = 0x20,
+ SR_RF = 0x10,
+ SR_IRQ = 0x08,
+ SR_DRQ = 0x04
+ };
+
+ enum {
+ ERR_NONE = 0x00,
+ ERR_SMEQ = 0x02,
+ ERR_SMNE = 0x04,
+ ERR_CLK = 0x08,
+ ERR_DMA = 0x0a,
+ ERR_ICRC = 0x0c,
+ ERR_DCRC = 0x0e,
+ ERR_NR = 0x10,
+ ERR_WP = 0x12,
+ ERR_T0NF = 0x14,
+ ERR_WF = 0x16,
+ ERR_NF = 0x18
+ };
+
+ enum {
+ // General "doing nothing" state
+ IDLE,
+
+ // Main states
+ RECALIBRATE,
+ SEEK,
+ READ_DATA,
+ WRITE_DATA,
+ FORMAT_TRACK,
+ READ_ID,
+ SCAN_DATA,
+ VERIFY_DATA,
+
+ // Sub-states
+ COMMAND_DONE,
+
+ SEEK_MOVE,
+ SEEK_WAIT_STEP_SIGNAL_TIME,
+ SEEK_WAIT_STEP_SIGNAL_TIME_DONE,
+ SEEK_WAIT_STEP_TIME,
+ SEEK_WAIT_STEP_TIME_DONE,
+ SEEK_DONE,
+
+ HEAD_LOAD_DONE,
+
+ WAIT_INDEX,
+ WAIT_INDEX_DONE,
+
+ SCAN_ID,
+ SCAN_ID_FAILED,
+
+ SECTOR_READ,
+ SECTOR_WRITTEN,
+ TC_DONE,
+
+ TRACK_DONE,
+
+ // Live states
+ SEARCH_ADDRESS_MARK_HEADER,
+ READ_ID_BLOCK,
+ SEARCH_ADDRESS_MARK_DATA,
+ SEARCH_ADDRESS_MARK_DATA_FAILED,
+ READ_SECTOR_DATA,
+ READ_SECTOR_DATA_BYTE,
+ SCAN_SECTOR_DATA_BYTE,
+ VERIFY_SECTOR_DATA_BYTE,
+
+ WRITE_SECTOR_SKIP_GAP2,
+ WRITE_SECTOR_SKIP_GAP2_BYTE,
+ WRITE_SECTOR_DATA,
+ WRITE_SECTOR_DATA_BYTE,
+
+ WRITE_TRACK_PRE_SECTORS,
+ WRITE_TRACK_PRE_SECTORS_BYTE,
+
+ WRITE_TRACK_SECTOR,
+ WRITE_TRACK_SECTOR_BYTE,
+
+ WRITE_TRACK_POST_SECTORS,
+ WRITE_TRACK_POST_SECTORS_BYTE
+ };
+
+ struct pll_t {
+ attotime ctime, period, min_period, max_period, period_adjust_base, phase_adjust;
+
+ attotime write_start_time;
+ attotime write_buffer[32];
+ int write_position;
+ int freq_hist;
+
+ void set_clock(const attotime &period);
+ void reset(const attotime &when);
+ int get_next_bit(attotime &tm, floppy_image_device *floppy, 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);
+ void stop_writing(floppy_image_device *floppy, const attotime &tm);
+ };
+
+ struct floppy_info {
+ enum { IRQ_NONE, IRQ_POLLED, IRQ_SEEK, IRQ_DONE };
+ emu_timer *tm;
+ floppy_image_device *dev;
+ int id;
+ int main_state, sub_state;
+ int dir, counter;
+ UINT8 pcn, badtrack[2];
+ bool live, index, ready;
+ };
+
+ struct live_info {
+ enum { PT_NONE, PT_CRC_1, PT_CRC_2 };
+
+ attotime tm;
+ int state, next_state;
+ floppy_info *fi;
+ UINT16 shift_reg;
+ UINT16 crc;
+ int bit_counter, byte_counter, previous_type;
+ bool data_separator_phase, data_bit_context;
+ UINT8 data_reg;
+ UINT8 idbuf[6];
+ fdc_pll_t pll;
+ };
+
+ bool ready_connected, select_connected;
+
+ bool external_ready;
+
+ int mode;
+ int main_phase;
+
+ live_info cur_live, checkpoint_live;
+ devcb_write_line intrq_cb, drq_cb, hdl_cb, opt_cb;
+ bool irq, drq, scan_done, scan_match;
+ floppy_info flopi[2];
+
+ int command_pos, sectors_read, scan_len;
+ UINT8 command[6], dma_data, oport;
+ UINT8 rr, scan_sec, moder;
+ UINT8 precomp, perpmode, scan_cnt[2];
+ UINT8 srate, hset, icnt, hload;
+ int sector_size;
+ int cur_rate;
+
+ static std::string tts(attotime t);
+ std::string ttsn();
+
+ enum {
+ C_FORMAT_TRACK,
+ C_READ_DATA_SINGLE,
+ C_READ_DATA_MULTI,
+ C_VERIFY_DATA_SINGLE,
+ C_VERIFY_DATA_MULTI,
+ C_WRITE_DATA_SINGLE,
+ C_WRITE_DATA_MULTI,
+ C_READ_ID,
+ C_SEEK,
+ C_READ_DRIVE_STATUS,
+ C_SPECIFY,
+ C_SCAN,
+ C_WRITE_SPECIAL_REGISTER,
+ C_READ_SPECIAL_REGISTER,
+
+ C_INVALID,
+ C_INCOMPLETE
+ };
+
+ void delay_cycles(emu_timer *tm, int cycles);
+ void set_drq(bool state);
+ void set_irq(bool state);
+ bool get_ready(int fid);
+
+ void enable_transfer();
+ void disable_transfer();
+ int calc_sector_size(UINT8 size);
+
+ int check_command();
+ void start_command(int cmd);
+ void command_end(floppy_info &fi, bool data_completion);
+
+ void recalibrate_start(floppy_info &fi);
+ void seek_start(floppy_info &fi);
+ void seek_continue(floppy_info &fi);
+
+ void read_data_start(floppy_info &fi);
+ void read_data_continue(floppy_info &fi);
+
+ void write_data_start(floppy_info &fi);
+ void write_data_continue(floppy_info &fi);
+
+ void format_track_start(floppy_info &fi);
+ void format_track_continue(floppy_info &fi);
+
+ void read_id_start(floppy_info &fi);
+ void read_id_continue(floppy_info &fi);
+
+ void scan_start(floppy_info &fi);
+ void verify_data_start(floppy_info &fi);
+
+ void general_continue(floppy_info &fi);
+ void index_callback(floppy_image_device *floppy, int state);
+ bool sector_matches() const;
+
+ void live_start(floppy_info &fi, int live_state);
+ void live_abort();
+ void checkpoint();
+ void rollback();
+ void live_delay(int state);
+ void live_sync();
+ void live_run(attotime limit = attotime::never);
+ void live_write_raw(UINT16 raw);
+ void live_write_fm(UINT8 fm);
+
+ bool read_one_bit(const attotime &limit);
+ bool write_one_bit(const attotime &limit);
+ bool set_output(UINT8 data);
+ bool get_input(UINT8 *data);
+};
+
+extern const device_type I8271;
+
+#endif
diff --git a/src/emu/machine/i8279.c b/src/devices/machine/i8279.c
index abd4fb3beb1..abd4fb3beb1 100644
--- a/src/emu/machine/i8279.c
+++ b/src/devices/machine/i8279.c
diff --git a/src/emu/machine/i8279.h b/src/devices/machine/i8279.h
index 42a77d7634f..42a77d7634f 100644
--- a/src/emu/machine/i8279.h
+++ b/src/devices/machine/i8279.h
diff --git a/src/emu/machine/i82875p.c b/src/devices/machine/i82875p.c
index 58f8b3264c9..58f8b3264c9 100644
--- a/src/emu/machine/i82875p.c
+++ b/src/devices/machine/i82875p.c
diff --git a/src/emu/machine/i82875p.h b/src/devices/machine/i82875p.h
index 8ab4a597eb2..8ab4a597eb2 100644
--- a/src/emu/machine/i82875p.h
+++ b/src/devices/machine/i82875p.h
diff --git a/src/emu/machine/i8355.c b/src/devices/machine/i8355.c
index d417bd1e3c3..d417bd1e3c3 100644
--- a/src/emu/machine/i8355.c
+++ b/src/devices/machine/i8355.c
diff --git a/src/emu/machine/i8355.h b/src/devices/machine/i8355.h
index 33d68d0fa57..33d68d0fa57 100644
--- a/src/emu/machine/i8355.h
+++ b/src/devices/machine/i8355.h
diff --git a/src/emu/machine/idectrl.c b/src/devices/machine/idectrl.c
index 403364d57c1..bebfcc09d0d 100644
--- a/src/emu/machine/idectrl.c
+++ b/src/devices/machine/idectrl.c
@@ -90,7 +90,7 @@ WRITE16_MEMBER( ide_controller_device::write_cs1 )
const device_type IDE_CONTROLLER_32 = &device_creator<ide_controller_32_device>;
ide_controller_32_device::ide_controller_32_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
- ide_controller_device(mconfig, IDE_CONTROLLER, "IDE Controller (32 bit)", tag, owner, clock, "ide_controller", __FILE__)
+ ide_controller_device(mconfig, IDE_CONTROLLER, "IDE Controller (32 bit)", tag, owner, clock, "ide_controller32", __FILE__)
{
}
@@ -274,11 +274,11 @@ WRITE32_MEMBER( bus_master_ide_controller_device::bmdma_w )
case 0:
if( ACCESSING_BITS_0_7 )
{
- /* command register */
+ /* Bus Master IDE Command register */
UINT8 old = m_bus_master_command;
UINT8 val = data & 0xff;
- /* save the read/write bit and the start/stop bit */
+ /* save the "Read or Write Control" bit 3 and the "Start/Stop Bus Master" bit 0 */
m_bus_master_command = (old & 0xf6) | (val & 0x09);
if ((old ^ m_bus_master_command) & 1)
@@ -306,7 +306,7 @@ WRITE32_MEMBER( bus_master_ide_controller_device::bmdma_w )
if( ACCESSING_BITS_16_23 )
{
- /* status register */
+ /* Bus Master IDE Status register */
UINT8 old = m_bus_master_status;
UINT8 val = data >> 16;
@@ -334,7 +334,7 @@ void bus_master_ide_controller_device::execute_dma()
while (m_dmarq && (m_bus_master_status & IDE_BUSMASTER_STATUS_ACTIVE))
{
- /* if we're out of space, grab the next descriptor */
+ /* if we're out of space, grab the next Physical Region Descriptor */
if (m_dma_bytes_left == 0)
{
/* fetch the address */
diff --git a/src/emu/machine/idectrl.h b/src/devices/machine/idectrl.h
index d31490e2385..d31490e2385 100644
--- a/src/emu/machine/idectrl.h
+++ b/src/devices/machine/idectrl.h
diff --git a/src/emu/machine/idehd.c b/src/devices/machine/idehd.c
index aa5517a1a3e..afc6de0c3de 100644
--- a/src/emu/machine/idehd.c
+++ b/src/devices/machine/idehd.c
@@ -149,7 +149,7 @@ void ata_mass_storage_device::ide_build_identify_device()
m_identify_buffer[85] = 0x00; /* 85: command set/feature enabled */
m_identify_buffer[86] = 0x00; /* 86: command set/feature enabled */
m_identify_buffer[87] = 0x00; /* 87: command set/feature default */
- m_identify_buffer[88] = 0x00; /* 88: additional DMA modes */
+ m_identify_buffer[88] = 0x00; /* 88: additional DMA modes (ultra dma) */
m_identify_buffer[89] = 0x00; /* 89: time required for security erase unit completion */
m_identify_buffer[90] = 0x00; /* 90: time required for enhanced security erase unit completion */
m_identify_buffer[91] = 0x00; /* 91: current advanced power management value */
diff --git a/src/emu/machine/idehd.h b/src/devices/machine/idehd.h
index beacb0a25c4..beacb0a25c4 100644
--- a/src/emu/machine/idehd.h
+++ b/src/devices/machine/idehd.h
diff --git a/src/emu/machine/im6402.c b/src/devices/machine/im6402.c
index f713a048517..f713a048517 100644
--- a/src/emu/machine/im6402.c
+++ b/src/devices/machine/im6402.c
diff --git a/src/emu/machine/im6402.h b/src/devices/machine/im6402.h
index 46ac592b7ac..46ac592b7ac 100644
--- a/src/emu/machine/im6402.h
+++ b/src/devices/machine/im6402.h
diff --git a/src/emu/machine/ins8154.c b/src/devices/machine/ins8154.c
index 1c36af845be..1c36af845be 100644
--- a/src/emu/machine/ins8154.c
+++ b/src/devices/machine/ins8154.c
diff --git a/src/emu/machine/ins8154.h b/src/devices/machine/ins8154.h
index 300b9763a9b..300b9763a9b 100644
--- a/src/emu/machine/ins8154.h
+++ b/src/devices/machine/ins8154.h
diff --git a/src/emu/machine/ins8250.c b/src/devices/machine/ins8250.c
index bbd0fee1584..bbd0fee1584 100644
--- a/src/emu/machine/ins8250.c
+++ b/src/devices/machine/ins8250.c
diff --git a/src/emu/machine/ins8250.h b/src/devices/machine/ins8250.h
index 9415c2b70ce..9415c2b70ce 100644
--- a/src/emu/machine/ins8250.h
+++ b/src/devices/machine/ins8250.h
diff --git a/src/emu/machine/intelfsh.c b/src/devices/machine/intelfsh.c
index fa5a6abfdbd..6f841692bea 100644
--- a/src/emu/machine/intelfsh.c
+++ b/src/devices/machine/intelfsh.c
@@ -93,6 +93,7 @@ const device_type FUJITSU_29DL16X = &device_creator<fujitsu_29dl16x_device>;
const device_type INTEL_E28F400B = &device_creator<intel_e28f400b_device>;
const device_type MACRONIX_29L001MC = &device_creator<macronix_29l001mc_device>;
const device_type MACRONIX_29LV160TMC = &device_creator<macronix_29lv160tmc_device>;
+const device_type TMS_29F040 = &device_creator<tms_29f040_device>;
const device_type PANASONIC_MN63F805MNP = &device_creator<panasonic_mn63f805mnp_device>;
const device_type SANYO_LE26FV10N1TS = &device_creator<sanyo_le26fv10n1ts_device>;
@@ -166,6 +167,7 @@ intelfsh_device::intelfsh_device(const machine_config &mconfig, device_type type
m_type(variant),
m_size(0),
m_bits(8),
+ m_addrmask(0),
m_device_id(0),
m_maker_id(0),
m_sector_is_4k(false),
@@ -215,6 +217,7 @@ intelfsh_device::intelfsh_device(const machine_config &mconfig, device_type type
case FLASH_AMD_29F080:
m_bits = 8;
m_size = 0x100000;
+ m_addrmask = 0x7ff;
m_maker_id = MFG_AMD;
m_device_id = 0xd5;
map = ADDRESS_MAP_NAME( memory_map8_8Mb );
@@ -369,6 +372,14 @@ intelfsh_device::intelfsh_device(const machine_config &mconfig, device_type type
m_device_id = 0x04;
map = ADDRESS_MAP_NAME( memory_map8_4Mb );
break;
+ case FLASH_TMS_29F040:
+ m_bits = 8;
+ m_addrmask = 0x7fff;
+ m_size = 0x80000;
+ m_maker_id = MFG_AMD;
+ m_device_id = 0xa4;
+ map = ADDRESS_MAP_NAME( memory_map8_4Mb );
+ break;
}
int addrbits;
@@ -414,10 +425,10 @@ amd_29f080_device::amd_29f080_device(const machine_config &mconfig, const char *
: intelfsh8_device(mconfig, AMD_29F080, "AMD 29F080 Flash", tag, owner, clock, FLASH_AMD_29F080, "amd_29f080", __FILE__) { }
amd_29f400t_device::amd_29f400t_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
- : intelfsh8_device(mconfig, AMD_29F080, "AMD 29F400 Flash", tag, owner, clock, FLASH_AMD_29F400T, "amd_29f400t", __FILE__) { }
+ : intelfsh8_device(mconfig, AMD_29F400T, "AMD 29F400 Flash", tag, owner, clock, FLASH_AMD_29F400T, "amd_29f400t", __FILE__) { }
amd_29f800t_device::amd_29f800t_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
- : intelfsh8_device(mconfig, AMD_29F080, "AMD 29F800 Flash", tag, owner, clock, FLASH_AMD_29F080, "amd_29f800t", __FILE__) { }
+ : intelfsh8_device(mconfig, AMD_29F800T, "AMD 29F800 Flash", tag, owner, clock, FLASH_AMD_29F800T, "amd_29f800t", __FILE__) { }
amd_29lv200t_device::amd_29lv200t_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: intelfsh8_device(mconfig, AMD_29LV200T, "AMD 29LV200T Flash", tag, owner, clock, FLASH_AMD_29LV200T, "amd_29lv200t", __FILE__) { }
@@ -465,6 +476,10 @@ intel_28f320j5_device::intel_28f320j5_device(const machine_config &mconfig, cons
sst_39vf400a_device::sst_39vf400a_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: intelfsh16_device(mconfig, SST_39VF400A, "SST 39VF400A Flash", tag, owner, clock, FLASH_SST_39VF400A, "sst_39vf400a", __FILE__) { }
+
+tms_29f040_device::tms_29f040_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : intelfsh8_device(mconfig, TMS_29F040, "Texas Instruments 29F040 Flash", tag, owner, clock, FLASH_TMS_29F040, "tms_29f040", __FILE__) { }
+
//-------------------------------------------------
// device_start - device-specific startup
//-------------------------------------------------
@@ -761,7 +776,8 @@ void intelfsh_device::write_full(UINT32 address, UINT32 data)
{
m_flash_mode = FM_READAMDID2;
}
- else if( ( address & 0x7ff ) == 0x2aa && ( data & 0xff ) == 0x55 && m_type == FLASH_AMD_29F080 )
+ // for AMD 29F080 address bits A11-A19 don't care, for TMS 29F040 address bits A15-A18 don't care
+ else if( ( address & m_addrmask ) == ( 0xaaaa & m_addrmask ) && ( data & 0xff ) == 0x55 && m_addrmask )
{
m_flash_mode = FM_READAMDID2;
}
@@ -833,20 +849,20 @@ void intelfsh_device::write_full(UINT32 address, UINT32 data)
m_flash_mode = FM_BANKSELECT;
}
- // for AMD 29F080 address bits A11-A19 don't care
- else if(( address & 0x7ff ) == 0x555 && ( data & 0xff ) == 0x80 && m_type == FLASH_AMD_29F080 )
+ // for AMD 29F080 address bits A11-A19 don't care, for TMS 29F040 address bits A15-A18 don't care
+ else if(( address & m_addrmask ) == ( 0x5555 & m_addrmask ) && ( data & 0xff ) == 0x80 && m_addrmask )
{
m_flash_mode = FM_ERASEAMD1;
}
- else if(( address & 0x7ff ) == 0x555 && ( data & 0xff ) == 0x90 && m_type == FLASH_AMD_29F080 )
+ else if(( address & m_addrmask ) == ( 0x5555 & m_addrmask ) && ( data & 0xff ) == 0x90 && m_addrmask )
{
m_flash_mode = FM_READAMDID3;
}
- else if(( address & 0x7ff ) == 0x555 && ( data & 0xff ) == 0xa0 && m_type == FLASH_AMD_29F080 )
+ else if(( address & m_addrmask ) == ( 0x5555 & m_addrmask ) && ( data & 0xff ) == 0xa0 && m_addrmask )
{
m_flash_mode = FM_BYTEPROGRAM;
}
- else if(( address & 0x7ff ) == 0x555 && ( data & 0xff ) == 0xf0 && m_type == FLASH_AMD_29F080 )
+ else if(( address & m_addrmask ) == ( 0x5555 & m_addrmask ) && ( data & 0xff ) == 0xf0 && m_addrmask )
{
m_flash_mode = FM_NORMAL;
}
diff --git a/src/emu/machine/intelfsh.h b/src/devices/machine/intelfsh.h
index 1dbaab76fea..5e4b86f10d2 100644
--- a/src/emu/machine/intelfsh.h
+++ b/src/devices/machine/intelfsh.h
@@ -90,6 +90,9 @@
#define MCFG_SST_39VF400A_ADD(_tag) \
MCFG_DEVICE_ADD(_tag, SST_39VF400A, 0)
+#define MCFG_TMS_29F040_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, TMS_29F040, 0)
+
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
@@ -126,6 +129,7 @@ public:
FLASH_SANYO_LE26FV10N1TS,
FLASH_SST_28SF040,
FLASH_SST_39VF020,
+ FLASH_TMS_29F040,
// 16-bit variants
FLASH_SHARP_LH28F400 = 0x1000,
@@ -163,6 +167,7 @@ protected:
UINT32 m_type;
INT32 m_size;
UINT8 m_bits;
+ UINT32 m_addrmask;
UINT16 m_device_id;
UINT8 m_maker_id;
bool m_sector_is_4k;
@@ -338,6 +343,12 @@ public:
sst_39vf020_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
};
+class tms_29f040_device : public intelfsh8_device
+{
+public:
+ tms_29f040_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+};
+
// 16-bit variants
class sharp_lh28f400_device : public intelfsh16_device
{
@@ -398,6 +409,7 @@ 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;
diff --git a/src/emu/machine/jvsdev.c b/src/devices/machine/jvsdev.c
index 204d874ca9a..3357ce90f55 100644
--- a/src/emu/machine/jvsdev.c
+++ b/src/devices/machine/jvsdev.c
@@ -244,7 +244,7 @@ bool jvs_device::swoutputs(UINT8 id, UINT8 val)
return false;
}
-void jvs_device::handle_output(const char *tag, UINT8 id, UINT8 val)
+void jvs_device::handle_output(ioport_port *port, UINT8 id, UINT8 val)
{
UINT32 m = 1 << id;
switch(val) {
@@ -253,5 +253,8 @@ void jvs_device::handle_output(const char *tag, UINT8 id, UINT8 val)
case 2: jvs_outputs ^= m; break;
}
- machine().root_device().ioport(tag)->write_safe(jvs_outputs, m);
+ if (port)
+ {
+ port->write(jvs_outputs, m);
+ }
}
diff --git a/src/emu/machine/jvsdev.h b/src/devices/machine/jvsdev.h
index fcbb8c08926..97382ea1655 100644
--- a/src/emu/machine/jvsdev.h
+++ b/src/devices/machine/jvsdev.h
@@ -23,7 +23,7 @@ public:
protected:
UINT32 jvs_outputs;
- void handle_output(const char *tag, UINT8 id, UINT8 val);
+ void handle_output(ioport_port *port, UINT8 id, UINT8 val);
// device-level overrides
virtual void device_start();
diff --git a/src/emu/machine/jvshost.c b/src/devices/machine/jvshost.c
index 1621d691cea..1621d691cea 100644
--- a/src/emu/machine/jvshost.c
+++ b/src/devices/machine/jvshost.c
diff --git a/src/emu/machine/jvshost.h b/src/devices/machine/jvshost.h
index 872e8a774e5..872e8a774e5 100644
--- a/src/emu/machine/jvshost.h
+++ b/src/devices/machine/jvshost.h
diff --git a/src/emu/machine/k033906.c b/src/devices/machine/k033906.c
index 37ad31cff45..37ad31cff45 100644
--- a/src/emu/machine/k033906.c
+++ b/src/devices/machine/k033906.c
diff --git a/src/emu/machine/k033906.h b/src/devices/machine/k033906.h
index bec3bc1c3ac..bec3bc1c3ac 100644
--- a/src/emu/machine/k033906.h
+++ b/src/devices/machine/k033906.h
diff --git a/src/emu/machine/k053252.c b/src/devices/machine/k053252.c
index 1cea029d38d..1cea029d38d 100644
--- a/src/emu/machine/k053252.c
+++ b/src/devices/machine/k053252.c
diff --git a/src/emu/machine/k053252.h b/src/devices/machine/k053252.h
index 79bfe9fa7a4..79bfe9fa7a4 100644
--- a/src/emu/machine/k053252.h
+++ b/src/devices/machine/k053252.h
diff --git a/src/emu/machine/k056230.c b/src/devices/machine/k056230.c
index 8d750b66a8a..8d750b66a8a 100644
--- a/src/emu/machine/k056230.c
+++ b/src/devices/machine/k056230.c
diff --git a/src/emu/machine/k056230.h b/src/devices/machine/k056230.h
index d8ec4a70ebc..d8ec4a70ebc 100644
--- a/src/emu/machine/k056230.h
+++ b/src/devices/machine/k056230.h
diff --git a/src/emu/machine/kb3600.c b/src/devices/machine/kb3600.c
index f83ba9c46d8..f83ba9c46d8 100644
--- a/src/emu/machine/kb3600.c
+++ b/src/devices/machine/kb3600.c
diff --git a/src/emu/machine/kb3600.h b/src/devices/machine/kb3600.h
index 57a42c906fb..57a42c906fb 100644
--- a/src/emu/machine/kb3600.h
+++ b/src/devices/machine/kb3600.h
diff --git a/src/emu/machine/keyboard.c b/src/devices/machine/keyboard.c
index 03d538f2a3e..03d538f2a3e 100644
--- a/src/emu/machine/keyboard.c
+++ b/src/devices/machine/keyboard.c
diff --git a/src/emu/machine/keyboard.h b/src/devices/machine/keyboard.h
index 8658cf3f92f..8658cf3f92f 100644
--- a/src/emu/machine/keyboard.h
+++ b/src/devices/machine/keyboard.h
diff --git a/src/emu/machine/kr2376.c b/src/devices/machine/kr2376.c
index d818c52ce68..d818c52ce68 100644
--- a/src/emu/machine/kr2376.c
+++ b/src/devices/machine/kr2376.c
diff --git a/src/emu/machine/kr2376.h b/src/devices/machine/kr2376.h
index e282362d761..e282362d761 100644
--- a/src/emu/machine/kr2376.h
+++ b/src/devices/machine/kr2376.h
diff --git a/src/emu/machine/laserdsc.c b/src/devices/machine/laserdsc.c
index a027ac62271..a027ac62271 100644
--- a/src/emu/machine/laserdsc.c
+++ b/src/devices/machine/laserdsc.c
diff --git a/src/emu/machine/laserdsc.h b/src/devices/machine/laserdsc.h
index 55d4aeda1b3..55d4aeda1b3 100644
--- a/src/emu/machine/laserdsc.h
+++ b/src/devices/machine/laserdsc.h
diff --git a/src/emu/machine/latch.c b/src/devices/machine/latch.c
index 55aaf7dfeba..55aaf7dfeba 100644
--- a/src/emu/machine/latch.c
+++ b/src/devices/machine/latch.c
diff --git a/src/emu/machine/latch.h b/src/devices/machine/latch.h
index f184fd3a865..f184fd3a865 100644
--- a/src/emu/machine/latch.h
+++ b/src/devices/machine/latch.h
diff --git a/src/emu/machine/latch8.c b/src/devices/machine/latch8.c
index 9213f8e50c6..9213f8e50c6 100644
--- a/src/emu/machine/latch8.c
+++ b/src/devices/machine/latch8.c
diff --git a/src/emu/machine/latch8.h b/src/devices/machine/latch8.h
index 6c82bd0689d..6c82bd0689d 100644
--- a/src/emu/machine/latch8.h
+++ b/src/devices/machine/latch8.h
diff --git a/src/emu/machine/lc89510.c b/src/devices/machine/lc89510.c
index 9ad9f4cb37a..9ad9f4cb37a 100644
--- a/src/emu/machine/lc89510.c
+++ b/src/devices/machine/lc89510.c
diff --git a/src/emu/machine/lc89510.h b/src/devices/machine/lc89510.h
index 4866cb24f76..4866cb24f76 100644
--- a/src/emu/machine/lc89510.h
+++ b/src/devices/machine/lc89510.h
diff --git a/src/emu/machine/ldpr8210.c b/src/devices/machine/ldpr8210.c
index b52b3b38f4d..967dac974e7 100644
--- a/src/emu/machine/ldpr8210.c
+++ b/src/devices/machine/ldpr8210.c
@@ -249,7 +249,7 @@ void pioneer_pr8210_device::control_w(UINT8 data)
// log the deltas for debugging
if (LOG_SERIAL)
{
- int usecdiff = (int)(delta.attoseconds / ATTOSECONDS_IN_USEC(1));
+ int usecdiff = (int)(delta.attoseconds() / ATTOSECONDS_IN_USEC(1));
printf("bitdelta = %5d (%d) - accum = %04X\n", usecdiff, longpulse, m_accumulator);
}
diff --git a/src/emu/machine/ldpr8210.h b/src/devices/machine/ldpr8210.h
index 96273dcb12a..96273dcb12a 100644
--- a/src/emu/machine/ldpr8210.h
+++ b/src/devices/machine/ldpr8210.h
diff --git a/src/emu/machine/ldstub.c b/src/devices/machine/ldstub.c
index 14dd42fdc2b..14dd42fdc2b 100644
--- a/src/emu/machine/ldstub.c
+++ b/src/devices/machine/ldstub.c
diff --git a/src/emu/machine/ldstub.h b/src/devices/machine/ldstub.h
index d10cd0313ea..d10cd0313ea 100644
--- a/src/emu/machine/ldstub.h
+++ b/src/devices/machine/ldstub.h
diff --git a/src/emu/machine/ldv1000.c b/src/devices/machine/ldv1000.c
index 18c8d86fc9a..18c8d86fc9a 100644
--- a/src/emu/machine/ldv1000.c
+++ b/src/devices/machine/ldv1000.c
diff --git a/src/emu/machine/ldv1000.h b/src/devices/machine/ldv1000.h
index bb65a24515e..bb65a24515e 100644
--- a/src/emu/machine/ldv1000.h
+++ b/src/devices/machine/ldv1000.h
diff --git a/src/emu/machine/ldvp931.c b/src/devices/machine/ldvp931.c
index 0d927fed665..0d927fed665 100644
--- a/src/emu/machine/ldvp931.c
+++ b/src/devices/machine/ldvp931.c
diff --git a/src/emu/machine/ldvp931.h b/src/devices/machine/ldvp931.h
index 636f4529d6b..636f4529d6b 100644
--- a/src/emu/machine/ldvp931.h
+++ b/src/devices/machine/ldvp931.h
diff --git a/src/emu/machine/legscsi.c b/src/devices/machine/legscsi.c
index 4071ccf8c3a..4071ccf8c3a 100644
--- a/src/emu/machine/legscsi.c
+++ b/src/devices/machine/legscsi.c
diff --git a/src/emu/machine/legscsi.h b/src/devices/machine/legscsi.h
index c7382fa9ad0..c7382fa9ad0 100644
--- a/src/emu/machine/legscsi.h
+++ b/src/devices/machine/legscsi.h
diff --git a/src/emu/machine/lh5810.c b/src/devices/machine/lh5810.c
index 296a28a60ec..296a28a60ec 100644
--- a/src/emu/machine/lh5810.c
+++ b/src/devices/machine/lh5810.c
diff --git a/src/emu/machine/lh5810.h b/src/devices/machine/lh5810.h
index d78458ca172..d78458ca172 100644
--- a/src/emu/machine/lh5810.h
+++ b/src/devices/machine/lh5810.h
diff --git a/src/emu/machine/linflash.c b/src/devices/machine/linflash.c
index fe72efa921d..fe72efa921d 100644
--- a/src/emu/machine/linflash.c
+++ b/src/devices/machine/linflash.c
diff --git a/src/emu/machine/linflash.h b/src/devices/machine/linflash.h
index b4bd488d55d..b4bd488d55d 100644
--- a/src/emu/machine/linflash.h
+++ b/src/devices/machine/linflash.h
diff --git a/src/emu/machine/lpc-acpi.c b/src/devices/machine/lpc-acpi.c
index 72d066affaa..72d066affaa 100644
--- a/src/emu/machine/lpc-acpi.c
+++ b/src/devices/machine/lpc-acpi.c
diff --git a/src/emu/machine/lpc-acpi.h b/src/devices/machine/lpc-acpi.h
index 2abf019d408..2abf019d408 100644
--- a/src/emu/machine/lpc-acpi.h
+++ b/src/devices/machine/lpc-acpi.h
diff --git a/src/emu/machine/lpc-pit.c b/src/devices/machine/lpc-pit.c
index 19a07373ec5..19a07373ec5 100644
--- a/src/emu/machine/lpc-pit.c
+++ b/src/devices/machine/lpc-pit.c
diff --git a/src/emu/machine/lpc-pit.h b/src/devices/machine/lpc-pit.h
index 4a49a76c10c..4a49a76c10c 100644
--- a/src/emu/machine/lpc-pit.h
+++ b/src/devices/machine/lpc-pit.h
diff --git a/src/emu/machine/lpc-rtc.c b/src/devices/machine/lpc-rtc.c
index d92d7b515d0..d92d7b515d0 100644
--- a/src/emu/machine/lpc-rtc.c
+++ b/src/devices/machine/lpc-rtc.c
diff --git a/src/emu/machine/lpc-rtc.h b/src/devices/machine/lpc-rtc.h
index f85c6c5cd11..f85c6c5cd11 100644
--- a/src/emu/machine/lpc-rtc.h
+++ b/src/devices/machine/lpc-rtc.h
diff --git a/src/emu/machine/lpc.c b/src/devices/machine/lpc.c
index afb51435f23..afb51435f23 100644
--- a/src/emu/machine/lpc.c
+++ b/src/devices/machine/lpc.c
diff --git a/src/emu/machine/lpc.h b/src/devices/machine/lpc.h
index 6ade06d03ff..6ade06d03ff 100644
--- a/src/emu/machine/lpc.h
+++ b/src/devices/machine/lpc.h
diff --git a/src/emu/machine/lpci.c b/src/devices/machine/lpci.c
index 913dd915184..913dd915184 100644
--- a/src/emu/machine/lpci.c
+++ b/src/devices/machine/lpci.c
diff --git a/src/emu/machine/lpci.h b/src/devices/machine/lpci.h
index 8d420d28a07..8d420d28a07 100644
--- a/src/emu/machine/lpci.h
+++ b/src/devices/machine/lpci.h
diff --git a/src/emu/machine/m6m80011ap.c b/src/devices/machine/m6m80011ap.c
index 776cbcae6e7..776cbcae6e7 100644
--- a/src/emu/machine/m6m80011ap.c
+++ b/src/devices/machine/m6m80011ap.c
diff --git a/src/emu/machine/m6m80011ap.h b/src/devices/machine/m6m80011ap.h
index 196617f2339..196617f2339 100644
--- a/src/emu/machine/m6m80011ap.h
+++ b/src/devices/machine/m6m80011ap.h
diff --git a/src/emu/machine/matsucd.c b/src/devices/machine/matsucd.c
index 6c12c5950d1..6c12c5950d1 100644
--- a/src/emu/machine/matsucd.c
+++ b/src/devices/machine/matsucd.c
diff --git a/src/emu/machine/matsucd.h b/src/devices/machine/matsucd.h
index 19a456760a6..19a456760a6 100644
--- a/src/emu/machine/matsucd.h
+++ b/src/devices/machine/matsucd.h
diff --git a/src/emu/machine/mb14241.c b/src/devices/machine/mb14241.c
index 732dccf8e1d..732dccf8e1d 100644
--- a/src/emu/machine/mb14241.c
+++ b/src/devices/machine/mb14241.c
diff --git a/src/emu/machine/mb14241.h b/src/devices/machine/mb14241.h
index 68a85c583ec..68a85c583ec 100644
--- a/src/emu/machine/mb14241.h
+++ b/src/devices/machine/mb14241.h
diff --git a/src/emu/machine/mb3773.c b/src/devices/machine/mb3773.c
index b2093787338..b2093787338 100644
--- a/src/emu/machine/mb3773.c
+++ b/src/devices/machine/mb3773.c
diff --git a/src/emu/machine/mb3773.h b/src/devices/machine/mb3773.h
index 3199f545bf7..3199f545bf7 100644
--- a/src/emu/machine/mb3773.h
+++ b/src/devices/machine/mb3773.h
diff --git a/src/emu/machine/mb8421.c b/src/devices/machine/mb8421.c
index 0d3cb819a66..0d3cb819a66 100644
--- a/src/emu/machine/mb8421.c
+++ b/src/devices/machine/mb8421.c
diff --git a/src/emu/machine/mb8421.h b/src/devices/machine/mb8421.h
index 92300e45946..92300e45946 100644
--- a/src/emu/machine/mb8421.h
+++ b/src/devices/machine/mb8421.h
diff --git a/src/emu/machine/mb87078.c b/src/devices/machine/mb87078.c
index a94380456f5..a94380456f5 100644
--- a/src/emu/machine/mb87078.c
+++ b/src/devices/machine/mb87078.c
diff --git a/src/emu/machine/mb87078.h b/src/devices/machine/mb87078.h
index 15e68b83b22..15e68b83b22 100644
--- a/src/emu/machine/mb87078.h
+++ b/src/devices/machine/mb87078.h
diff --git a/src/emu/machine/mb8795.c b/src/devices/machine/mb8795.c
index 3a83f02af94..3a83f02af94 100644
--- a/src/emu/machine/mb8795.c
+++ b/src/devices/machine/mb8795.c
diff --git a/src/emu/machine/mb8795.h b/src/devices/machine/mb8795.h
index 478d9487263..478d9487263 100644
--- a/src/emu/machine/mb8795.h
+++ b/src/devices/machine/mb8795.h
diff --git a/src/emu/machine/mb89352.c b/src/devices/machine/mb89352.c
index 1b0894c2007..1b0894c2007 100644
--- a/src/emu/machine/mb89352.c
+++ b/src/devices/machine/mb89352.c
diff --git a/src/emu/machine/mb89352.h b/src/devices/machine/mb89352.h
index 05776ca4e34..05776ca4e34 100644
--- a/src/emu/machine/mb89352.h
+++ b/src/devices/machine/mb89352.h
diff --git a/src/emu/machine/mb89363b.c b/src/devices/machine/mb89363b.c
index 2e4f210a865..2e4f210a865 100644
--- a/src/emu/machine/mb89363b.c
+++ b/src/devices/machine/mb89363b.c
diff --git a/src/emu/machine/mb89363b.h b/src/devices/machine/mb89363b.h
index e29f75fda41..e29f75fda41 100644
--- a/src/emu/machine/mb89363b.h
+++ b/src/devices/machine/mb89363b.h
diff --git a/src/emu/machine/mb89371.c b/src/devices/machine/mb89371.c
index 1188f295725..1188f295725 100644
--- a/src/emu/machine/mb89371.c
+++ b/src/devices/machine/mb89371.c
diff --git a/src/emu/machine/mb89371.h b/src/devices/machine/mb89371.h
index 2f0aa11fc4f..2f0aa11fc4f 100644
--- a/src/emu/machine/mb89371.h
+++ b/src/devices/machine/mb89371.h
diff --git a/src/emu/machine/mc146818.c b/src/devices/machine/mc146818.c
index 6639710cec6..1509e7586e9 100644
--- a/src/emu/machine/mc146818.c
+++ b/src/devices/machine/mc146818.c
@@ -37,7 +37,10 @@ mc146818_device::mc146818_device(const machine_config &mconfig, const char *tag,
m_last_refresh(attotime::zero),
m_write_irq(*this),
m_century_index(-1),
- m_use_utc(false)
+ m_epoch(0),
+ m_use_utc(false),
+ m_binary(false),
+ m_hour(false)
{
}
@@ -48,7 +51,10 @@ mc146818_device::mc146818_device(const machine_config &mconfig, device_type type
m_last_refresh(attotime::zero),
m_write_irq(*this),
m_century_index(-1),
- m_use_utc(false)
+ m_epoch(0),
+ m_use_utc(false),
+ m_binary(false),
+ m_hour(false)
{
}
@@ -199,6 +205,11 @@ void mc146818_device::nvram_default()
memset(&m_data[0], 0, data_size());
}
+ if(m_binary)
+ m_data[0x0b] |= REG_B_DM;
+ if(m_hour)
+ m_data[0x0b] |= REG_B_24_12;
+
set_base_datetime();
update_timer();
update_irq();
@@ -391,7 +402,7 @@ void mc146818_device::set_base_datetime()
set_dayofweek(current_time.weekday + 1);
set_dayofmonth(current_time.mday);
set_month(current_time.month + 1);
- set_year(current_time.year % 100);
+ set_year((current_time.year - m_epoch) % (m_data[0x0b] & REG_B_DM ? 0x100 : 100));
if (m_century_index >= 0)
m_data[m_century_index] = to_ram(current_time.year / 100);
diff --git a/src/emu/machine/mc146818.h b/src/devices/machine/mc146818.h
index 3db19ec533e..1793402fb64 100644
--- a/src/emu/machine/mc146818.h
+++ b/src/devices/machine/mc146818.h
@@ -34,6 +34,15 @@
#define MCFG_MC146818_UTC(_utc) \
downcast<mc146818_device *>(device)->set_use_utc(_utc);
+#define MCFG_MC146818_BINARY(_bin) \
+ downcast<mc146818_device *>(device)->set_binary(_bin);
+
+#define MCFG_MC146818_24_12(_hour) \
+ downcast<mc146818_device *>(device)->set_hour(_hour);
+
+#define MCFG_MC146818_EPOCH(_epoch) \
+ downcast<mc146818_device *>(device)->set_epoch(_epoch);
+
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
@@ -52,6 +61,9 @@ public:
template<class _irq> void set_irq_callback(_irq irq) { m_write_irq.set_callback(irq); }
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; }
+ void set_hour(bool hour) { m_hour = hour; }
+ void set_epoch(int epoch) { m_epoch = epoch; }
// read/write access
DECLARE_READ8_MEMBER( read );
@@ -165,8 +177,8 @@ private:
emu_timer *m_periodic_timer;
devcb_write_line m_write_irq;
- int m_century_index;
- bool m_use_utc;
+ int m_century_index, m_epoch;
+ bool m_use_utc, m_binary, m_hour;
};
diff --git a/src/emu/machine/mc2661.c b/src/devices/machine/mc2661.c
index f93dc1b5ab1..f93dc1b5ab1 100644
--- a/src/emu/machine/mc2661.c
+++ b/src/devices/machine/mc2661.c
diff --git a/src/emu/machine/mc2661.h b/src/devices/machine/mc2661.h
index 5cc2f3e27fc..5cc2f3e27fc 100644
--- a/src/emu/machine/mc2661.h
+++ b/src/devices/machine/mc2661.h
diff --git a/src/emu/machine/mc68328.c b/src/devices/machine/mc68328.c
index c97e0aea815..9c270004ab5 100644
--- a/src/emu/machine/mc68328.c
+++ b/src/devices/machine/mc68328.c
@@ -4,8 +4,7 @@
Motorola 68328 ("DragonBall") System-on-a-Chip implementation
- By MooglyGuy
- contact mooglyguy@gmail.com with licensing and usage questions.
+ By Ryan Holtz
**********************************************************************/
diff --git a/src/emu/machine/mc68328.h b/src/devices/machine/mc68328.h
index da680dae32b..06ae394e7e1 100644
--- a/src/emu/machine/mc68328.h
+++ b/src/devices/machine/mc68328.h
@@ -4,8 +4,7 @@
Motorola 68328 ("DragonBall") System-on-a-Chip implementation
- By MooglyGuy
- contact mooglyguy@gmail.com with licensing and usage questions.
+ By Ryan Holtz
**********************************************************************/
diff --git a/src/emu/machine/mc6843.c b/src/devices/machine/mc6843.c
index f30dafde916..f30dafde916 100644
--- a/src/emu/machine/mc6843.c
+++ b/src/devices/machine/mc6843.c
diff --git a/src/emu/machine/mc6843.h b/src/devices/machine/mc6843.h
index 3a855d1c196..3a855d1c196 100644
--- a/src/emu/machine/mc6843.h
+++ b/src/devices/machine/mc6843.h
diff --git a/src/emu/machine/mc6846.c b/src/devices/machine/mc6846.c
index 18b9f723bfb..18b9f723bfb 100644
--- a/src/emu/machine/mc6846.c
+++ b/src/devices/machine/mc6846.c
diff --git a/src/emu/machine/mc6846.h b/src/devices/machine/mc6846.h
index 0bf6b84658f..0bf6b84658f 100644
--- a/src/emu/machine/mc6846.h
+++ b/src/devices/machine/mc6846.h
diff --git a/src/emu/machine/mc6852.c b/src/devices/machine/mc6852.c
index b0cf1ff9ca9..b0cf1ff9ca9 100644
--- a/src/emu/machine/mc6852.c
+++ b/src/devices/machine/mc6852.c
diff --git a/src/emu/machine/mc6852.h b/src/devices/machine/mc6852.h
index 859d9e8bef2..859d9e8bef2 100644
--- a/src/emu/machine/mc6852.h
+++ b/src/devices/machine/mc6852.h
diff --git a/src/emu/machine/mc6854.c b/src/devices/machine/mc6854.c
index 7ed16885b19..7ed16885b19 100644
--- a/src/emu/machine/mc6854.c
+++ b/src/devices/machine/mc6854.c
diff --git a/src/emu/machine/mc6854.h b/src/devices/machine/mc6854.h
index 2808255c0f6..2808255c0f6 100644
--- a/src/emu/machine/mc6854.h
+++ b/src/devices/machine/mc6854.h
diff --git a/src/emu/machine/mc68681.c b/src/devices/machine/mc68681.c
index 8b40488de24..8b40488de24 100644
--- a/src/emu/machine/mc68681.c
+++ b/src/devices/machine/mc68681.c
diff --git a/src/emu/machine/mc68681.h b/src/devices/machine/mc68681.h
index 3e4d0b9f256..3e4d0b9f256 100644
--- a/src/emu/machine/mc68681.h
+++ b/src/devices/machine/mc68681.h
diff --git a/src/emu/machine/mc68901.c b/src/devices/machine/mc68901.c
index 4d35d2a2c44..4d35d2a2c44 100644
--- a/src/emu/machine/mc68901.c
+++ b/src/devices/machine/mc68901.c
diff --git a/src/emu/machine/mc68901.h b/src/devices/machine/mc68901.h
index 7147af2a478..7147af2a478 100644
--- a/src/emu/machine/mc68901.h
+++ b/src/devices/machine/mc68901.h
diff --git a/src/emu/machine/mccs1850.c b/src/devices/machine/mccs1850.c
index b037f184bfc..b037f184bfc 100644
--- a/src/emu/machine/mccs1850.c
+++ b/src/devices/machine/mccs1850.c
diff --git a/src/emu/machine/mccs1850.h b/src/devices/machine/mccs1850.h
index 933e67a5f8f..933e67a5f8f 100644
--- a/src/emu/machine/mccs1850.h
+++ b/src/devices/machine/mccs1850.h
diff --git a/src/emu/machine/mcf5206e.c b/src/devices/machine/mcf5206e.c
index d993c7235e4..d993c7235e4 100644
--- a/src/emu/machine/mcf5206e.c
+++ b/src/devices/machine/mcf5206e.c
diff --git a/src/emu/machine/mcf5206e.h b/src/devices/machine/mcf5206e.h
index d49b88119d3..d49b88119d3 100644
--- a/src/emu/machine/mcf5206e.h
+++ b/src/devices/machine/mcf5206e.h
diff --git a/src/emu/machine/microtch.c b/src/devices/machine/microtch.c
index eee87447495..eee87447495 100644
--- a/src/emu/machine/microtch.c
+++ b/src/devices/machine/microtch.c
diff --git a/src/emu/machine/microtch.h b/src/devices/machine/microtch.h
index c7ba5a3c00b..c7ba5a3c00b 100644
--- a/src/emu/machine/microtch.h
+++ b/src/devices/machine/microtch.h
diff --git a/src/emu/machine/mm58167.c b/src/devices/machine/mm58167.c
index 74572770710..74572770710 100644
--- a/src/emu/machine/mm58167.c
+++ b/src/devices/machine/mm58167.c
diff --git a/src/emu/machine/mm58167.h b/src/devices/machine/mm58167.h
index 83714042433..83714042433 100644
--- a/src/emu/machine/mm58167.h
+++ b/src/devices/machine/mm58167.h
diff --git a/src/emu/machine/mm58274c.c b/src/devices/machine/mm58274c.c
index 0690f775b5d..0690f775b5d 100644
--- a/src/emu/machine/mm58274c.c
+++ b/src/devices/machine/mm58274c.c
diff --git a/src/emu/machine/mm58274c.h b/src/devices/machine/mm58274c.h
index 225340721ea..225340721ea 100644
--- a/src/emu/machine/mm58274c.h
+++ b/src/devices/machine/mm58274c.h
diff --git a/src/emu/machine/mm74c922.c b/src/devices/machine/mm74c922.c
index 6b7f9b50d53..6b7f9b50d53 100644
--- a/src/emu/machine/mm74c922.c
+++ b/src/devices/machine/mm74c922.c
diff --git a/src/emu/machine/mm74c922.h b/src/devices/machine/mm74c922.h
index 88a7bfde186..88a7bfde186 100644
--- a/src/emu/machine/mm74c922.h
+++ b/src/devices/machine/mm74c922.h
diff --git a/src/emu/machine/mos6526.c b/src/devices/machine/mos6526.c
index 3d9561b36f7..3d9561b36f7 100644
--- a/src/emu/machine/mos6526.c
+++ b/src/devices/machine/mos6526.c
diff --git a/src/emu/machine/mos6526.h b/src/devices/machine/mos6526.h
index da54967e080..da54967e080 100644
--- a/src/emu/machine/mos6526.h
+++ b/src/devices/machine/mos6526.h
diff --git a/src/emu/machine/mos6529.c b/src/devices/machine/mos6529.c
index ebae2ca6f5a..ebae2ca6f5a 100644
--- a/src/emu/machine/mos6529.c
+++ b/src/devices/machine/mos6529.c
diff --git a/src/emu/machine/mos6529.h b/src/devices/machine/mos6529.h
index 0e6f00f4dd0..0e6f00f4dd0 100644
--- a/src/emu/machine/mos6529.h
+++ b/src/devices/machine/mos6529.h
diff --git a/src/emu/machine/mos6530.c b/src/devices/machine/mos6530.c
index a32383fcbda..a32383fcbda 100644
--- a/src/emu/machine/mos6530.c
+++ b/src/devices/machine/mos6530.c
diff --git a/src/emu/machine/mos6530.h b/src/devices/machine/mos6530.h
index d63fdd95a12..d63fdd95a12 100644
--- a/src/emu/machine/mos6530.h
+++ b/src/devices/machine/mos6530.h
diff --git a/src/emu/machine/mos6530n.c b/src/devices/machine/mos6530n.c
index 58f279f5437..58f279f5437 100644
--- a/src/emu/machine/mos6530n.c
+++ b/src/devices/machine/mos6530n.c
diff --git a/src/emu/machine/mos6530n.h b/src/devices/machine/mos6530n.h
index 01044ac7c7b..01044ac7c7b 100644
--- a/src/emu/machine/mos6530n.h
+++ b/src/devices/machine/mos6530n.h
diff --git a/src/emu/machine/mos6551.c b/src/devices/machine/mos6551.c
index 6f240799af2..6f240799af2 100644
--- a/src/emu/machine/mos6551.c
+++ b/src/devices/machine/mos6551.c
diff --git a/src/emu/machine/mos6551.h b/src/devices/machine/mos6551.h
index 7ba7d6bc7f3..7ba7d6bc7f3 100644
--- a/src/emu/machine/mos6551.h
+++ b/src/devices/machine/mos6551.h
diff --git a/src/emu/machine/mos6702.c b/src/devices/machine/mos6702.c
index 9dc11e24af9..9dc11e24af9 100644
--- a/src/emu/machine/mos6702.c
+++ b/src/devices/machine/mos6702.c
diff --git a/src/emu/machine/mos6702.h b/src/devices/machine/mos6702.h
index d0675e5140b..d0675e5140b 100644
--- a/src/emu/machine/mos6702.h
+++ b/src/devices/machine/mos6702.h
diff --git a/src/emu/machine/mos8706.c b/src/devices/machine/mos8706.c
index ca07506423b..ca07506423b 100644
--- a/src/emu/machine/mos8706.c
+++ b/src/devices/machine/mos8706.c
diff --git a/src/emu/machine/mos8706.h b/src/devices/machine/mos8706.h
index 070c592b9fe..070c592b9fe 100644
--- a/src/emu/machine/mos8706.h
+++ b/src/devices/machine/mos8706.h
diff --git a/src/emu/machine/mos8722.c b/src/devices/machine/mos8722.c
index 31b2beb1f27..31b2beb1f27 100644
--- a/src/emu/machine/mos8722.c
+++ b/src/devices/machine/mos8722.c
diff --git a/src/emu/machine/mos8722.h b/src/devices/machine/mos8722.h
index d342781fc4e..d342781fc4e 100644
--- a/src/emu/machine/mos8722.h
+++ b/src/devices/machine/mos8722.h
diff --git a/src/emu/machine/mos8726.c b/src/devices/machine/mos8726.c
index eca6ada5187..eca6ada5187 100644
--- a/src/emu/machine/mos8726.c
+++ b/src/devices/machine/mos8726.c
diff --git a/src/emu/machine/mos8726.h b/src/devices/machine/mos8726.h
index 324d99794de..324d99794de 100644
--- a/src/emu/machine/mos8726.h
+++ b/src/devices/machine/mos8726.h
diff --git a/src/emu/machine/mpu401.c b/src/devices/machine/mpu401.c
index 5a2933380df..5a2933380df 100644
--- a/src/emu/machine/mpu401.c
+++ b/src/devices/machine/mpu401.c
diff --git a/src/emu/machine/mpu401.h b/src/devices/machine/mpu401.h
index 58acb3ab98e..58acb3ab98e 100644
--- a/src/emu/machine/mpu401.h
+++ b/src/devices/machine/mpu401.h
diff --git a/src/emu/machine/msm5832.c b/src/devices/machine/msm5832.c
index 7bc6fa70bfa..7bc6fa70bfa 100644
--- a/src/emu/machine/msm5832.c
+++ b/src/devices/machine/msm5832.c
diff --git a/src/emu/machine/msm5832.h b/src/devices/machine/msm5832.h
index 68b72a3f8bf..68b72a3f8bf 100644
--- a/src/emu/machine/msm5832.h
+++ b/src/devices/machine/msm5832.h
diff --git a/src/emu/machine/msm58321.c b/src/devices/machine/msm58321.c
index 679b85584ff..679b85584ff 100644
--- a/src/emu/machine/msm58321.c
+++ b/src/devices/machine/msm58321.c
diff --git a/src/emu/machine/msm58321.h b/src/devices/machine/msm58321.h
index 8b1ad54edd9..8b1ad54edd9 100644
--- a/src/emu/machine/msm58321.h
+++ b/src/devices/machine/msm58321.h
diff --git a/src/emu/machine/msm6242.c b/src/devices/machine/msm6242.c
index a4a188cbcb6..a4a188cbcb6 100644
--- a/src/emu/machine/msm6242.c
+++ b/src/devices/machine/msm6242.c
diff --git a/src/emu/machine/msm6242.h b/src/devices/machine/msm6242.h
index 4d44fd1b860..4d44fd1b860 100644
--- a/src/emu/machine/msm6242.h
+++ b/src/devices/machine/msm6242.h
diff --git a/src/emu/machine/ncr5380.c b/src/devices/machine/ncr5380.c
index 175e9130c1c..175e9130c1c 100644
--- a/src/emu/machine/ncr5380.c
+++ b/src/devices/machine/ncr5380.c
diff --git a/src/emu/machine/ncr5380.h b/src/devices/machine/ncr5380.h
index 678460f6133..678460f6133 100644
--- a/src/emu/machine/ncr5380.h
+++ b/src/devices/machine/ncr5380.h
diff --git a/src/emu/machine/ncr5380n.c b/src/devices/machine/ncr5380n.c
index ed2270ba097..ed2270ba097 100644
--- a/src/emu/machine/ncr5380n.c
+++ b/src/devices/machine/ncr5380n.c
diff --git a/src/emu/machine/ncr5380n.h b/src/devices/machine/ncr5380n.h
index e9a142d78e5..e9a142d78e5 100644
--- a/src/emu/machine/ncr5380n.h
+++ b/src/devices/machine/ncr5380n.h
diff --git a/src/emu/machine/ncr5390.c b/src/devices/machine/ncr5390.c
index 26e4218b226..26e4218b226 100644
--- a/src/emu/machine/ncr5390.c
+++ b/src/devices/machine/ncr5390.c
diff --git a/src/emu/machine/ncr5390.h b/src/devices/machine/ncr5390.h
index 93cf76a5486..93cf76a5486 100644
--- a/src/emu/machine/ncr5390.h
+++ b/src/devices/machine/ncr5390.h
diff --git a/src/emu/machine/ncr539x.c b/src/devices/machine/ncr539x.c
index fe1fd9919e1..fe1fd9919e1 100644
--- a/src/emu/machine/ncr539x.c
+++ b/src/devices/machine/ncr539x.c
diff --git a/src/emu/machine/ncr539x.h b/src/devices/machine/ncr539x.h
index 2280613d22f..2280613d22f 100644
--- a/src/emu/machine/ncr539x.h
+++ b/src/devices/machine/ncr539x.h
diff --git a/src/emu/machine/netlist.c b/src/devices/machine/netlist.c
index 8db7fa3feb4..bf6ad42f88c 100644
--- a/src/emu/machine/netlist.c
+++ b/src/devices/machine/netlist.c
@@ -129,6 +129,7 @@ netlist_mame_logic_input_t::netlist_mame_logic_input_t(const machine_config &mco
void netlist_mame_logic_input_t::static_set_params(device_t &device, const char *param_name, const UINT32 mask, const UINT32 shift)
{
netlist_mame_logic_input_t &netlist = downcast<netlist_mame_logic_input_t &>(device);
+ LOG_DEV_CALLS(("static_set_params %s\n", device.tag()));
netlist.m_param_name = param_name;
netlist.m_shift = shift;
netlist.m_mask = mask;
@@ -175,11 +176,11 @@ void netlist_mame_stream_input_t::custom_netlist_additions(netlist::setup_t &set
if (snd_in == NULL)
snd_in = dynamic_cast<NETLIB_NAME(sound_in) *>(setup.register_dev("NETDEV_SOUND_IN", "STREAM_INPUT"));
- pstring sparam = pstring::sprintf("STREAM_INPUT.CHAN%d", m_channel);
+ pstring sparam = pfmt("STREAM_INPUT.CHAN{1}")(m_channel);
setup.register_param(sparam, m_param_name);
- sparam = pstring::sprintf("STREAM_INPUT.MULT%d", m_channel);
+ sparam = pfmt("STREAM_INPUT.MULT{1}")(m_channel);
setup.register_param(sparam, m_mult);
- sparam = pstring::sprintf("STREAM_INPUT.OFFSET%d", m_channel);
+ sparam = pfmt("STREAM_INPUT.OFFSET{1}")(m_channel);
setup.register_param(sparam, m_offset);
}
@@ -210,7 +211,7 @@ void netlist_mame_stream_output_t::device_start()
void netlist_mame_stream_output_t::custom_netlist_additions(netlist::setup_t &setup)
{
//NETLIB_NAME(sound_out) *snd_out;
- pstring sname = pstring::sprintf("STREAM_OUT_%d", m_channel);
+ pstring sname = pfmt("STREAM_OUT_{1}")(m_channel);
//snd_out = dynamic_cast<NETLIB_NAME(sound_out) *>(setup.register_dev("nld_sound_out", sname));
setup.register_dev("NETDEV_SOUND_OUT", sname);
@@ -226,19 +227,28 @@ void netlist_mame_stream_output_t::custom_netlist_additions(netlist::setup_t &se
// netlist_mame_t
// ----------------------------------------------------------------------------------------
-void netlist_mame_t::verror(const loglevel_e level, const char *format, va_list ap) const
+void netlist_mame_t::vlog(const plog_level &l, const pstring &ls) const
{
- pstring errstr = pstring(format).vprintf(ap);
+ pstring errstr = ls;
- switch (level)
+ switch (l)
{
- case NL_WARNING:
+ case plog_level::DEBUG:
+ logerror("netlist DEBUG: %s\n", errstr.cstr());
+ break;
+ case plog_level::INFO:
+ logerror("netlist INFO: %s\n", errstr.cstr());
+ break;
+ case plog_level::VERBOSE:
+ logerror("netlist VERBOSE: %s\n", errstr.cstr());
+ break;
+ case plog_level::WARNING:
logerror("netlist WARNING: %s\n", errstr.cstr());
break;
- case NL_LOG:
- logerror("netlist LOG: %s\n", errstr.cstr());
+ case plog_level::ERROR:
+ logerror("netlist ERROR: %s\n", errstr.cstr());
break;
- case NL_ERROR:
+ case plog_level::FATAL:
emu_fatalerror error("netlist ERROR: %s\n", errstr.cstr());
throw error;
}
@@ -255,8 +265,6 @@ ADDRESS_MAP_END
netlist_mame_device_t::netlist_mame_device_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: device_t(mconfig, NETLIST_CORE, "Netlist core device", tag, owner, clock, "netlist_core", __FILE__),
m_icount(0),
- m_div(0),
- m_rem(0),
m_old(netlist::netlist_time::zero),
m_netlist(NULL),
m_setup(NULL),
@@ -267,8 +275,6 @@ netlist_mame_device_t::netlist_mame_device_t(const machine_config &mconfig, cons
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 clock, const char *shortname, const char *file)
: device_t(mconfig, type, name, tag, owner, clock, shortname, file),
m_icount(0),
- m_div(0),
- m_rem(0),
m_old(netlist::netlist_time::zero),
m_netlist(NULL),
m_setup(NULL),
@@ -326,18 +332,14 @@ void netlist_mame_device_t::device_start()
save_state();
m_old = netlist::netlist_time::zero;
- m_rem = 0;
+ m_rem = netlist::netlist_time::zero;
}
void netlist_mame_device_t::device_clock_changed()
{
- //printf("device_clock_changed\n");
- m_div = netlist::netlist_time::from_hz(clock()).as_raw();
- //m_rem = 0;
- //NL_VERBOSE_OUT(("Setting clock %" I64FMT "d and divisor %d\n", clock(), m_div));
- NL_VERBOSE_OUT(("Setting clock %d and divisor %d\n", clock(), m_div));
- //printf("Setting clock %d and divisor %d\n", clock(), m_div);
+ m_div = netlist::netlist_time::from_hz(clock());
+ netlist().log().debug("Setting clock {1} and divisor {2}\n", clock(), m_div.as_double());
}
@@ -345,7 +347,7 @@ void netlist_mame_device_t::device_reset()
{
LOG_DEV_CALLS(("device_reset\n"));
m_old = netlist::netlist_time::zero;
- m_rem = 0;
+ m_rem = netlist::netlist_time::zero;
netlist().do_reset();
}
@@ -383,9 +385,12 @@ void netlist_mame_device_t::device_timer(emu_timer &timer, device_timer_id id, i
ATTR_HOT ATTR_ALIGN void netlist_mame_device_t::update_time_x()
{
- const netlist::netlist_time delta = netlist().time() - m_old + netlist::netlist_time::from_raw(m_rem);
- m_old = netlist().time();
- m_icount -= divu_64x32_rem(delta.as_raw(), m_div, &m_rem);
+ const netlist::netlist_time newt = netlist().time();
+ const netlist::netlist_time delta = newt - m_old + m_rem;
+ const UINT64 d = delta / m_div;
+ m_old = newt;
+ m_rem = delta - (m_div * d);
+ m_icount -= d;
}
ATTR_HOT ATTR_ALIGN void netlist_mame_device_t::check_mame_abort_slice()
@@ -399,41 +404,47 @@ ATTR_COLD void netlist_mame_device_t::save_state()
for (int i=0; i< netlist().save_list().size(); i++)
{
pstate_entry_t *s = netlist().save_list()[i];
- NL_VERBOSE_OUT(("saving state for %s\n", s->m_name.cstr()));
+ netlist().log().debug("saving state for {1}\n", s->m_name.cstr());
switch (s->m_dt)
{
case DT_DOUBLE:
{
double *td = s->resolved<double>();
- if (td != NULL) save_pointer(td, s->m_name, s->m_count);
+ if (td != NULL) save_pointer(td, s->m_name.cstr(), s->m_count);
}
break;
case DT_FLOAT:
{
float *td = s->resolved<float>();
- if (td != NULL) save_pointer(td, s->m_name, s->m_count);
+ if (td != NULL) save_pointer(td, s->m_name.cstr(), s->m_count);
}
break;
+#if (PHAS_INT128)
+ case DT_INT128:
+ // FIXME: we are cheating here
+ save_pointer((char *) s->m_ptr, s->m_name.cstr(), s->m_count * sizeof(INT128));
+ break;
+#endif
case DT_INT64:
- save_pointer((INT64 *) s->m_ptr, s->m_name, s->m_count);
+ save_pointer((INT64 *) s->m_ptr, s->m_name.cstr(), s->m_count);
break;
case DT_INT16:
- save_pointer((INT16 *) s->m_ptr, s->m_name, s->m_count);
+ save_pointer((INT16 *) s->m_ptr, s->m_name.cstr(), s->m_count);
break;
case DT_INT8:
- save_pointer((INT8 *) s->m_ptr, s->m_name, s->m_count);
+ save_pointer((INT8 *) s->m_ptr, s->m_name.cstr(), s->m_count);
break;
case DT_INT:
- save_pointer((int *) s->m_ptr, s->m_name, s->m_count);
+ save_pointer((int *) s->m_ptr, s->m_name.cstr(), s->m_count);
break;
case DT_BOOLEAN:
- save_pointer((bool *) s->m_ptr, s->m_name, s->m_count);
+ save_pointer((bool *) s->m_ptr, s->m_name.cstr(), s->m_count);
break;
case DT_CUSTOM:
break;
case NOT_SUPPORTED:
default:
- netlist().error("found unsupported save element %s\n", s->m_name.cstr());
+ netlist().log().fatal("found unsupported save element %s\n", s->m_name);
break;
}
}
@@ -470,11 +481,11 @@ void netlist_mame_cpu_device_t::device_start()
netlist::net_t *n = netlist().m_nets[i];
if (n->isFamily(netlist::object_t::LOGIC))
{
- state_add(i*2, n->name(), downcast<netlist::logic_net_t *>(n)->Q_state_ptr());
+ state_add(i*2, n->name().cstr(), downcast<netlist::logic_net_t *>(n)->Q_state_ptr());
}
else
{
- state_add(i*2+1, n->name(), downcast<netlist::analog_net_t *>(n)->Q_Analog_state_ptr()).formatstr("%20s");
+ state_add(i*2+1, n->name().cstr(), downcast<netlist::analog_net_t *>(n)->Q_Analog_state_ptr()).formatstr("%20s");
}
}
@@ -529,13 +540,13 @@ ATTR_HOT void netlist_mame_cpu_device_t::execute_run()
m_genPC++;
m_genPC &= 255;
debugger_instruction_hook(this, m_genPC);
- netlist().process_queue(netlist::netlist_time::from_raw(m_div));
+ netlist().process_queue(m_div);
update_time_x();
}
}
else
{
- netlist().process_queue(netlist::netlist_time::from_raw(m_div) * m_icount);
+ netlist().process_queue(m_div * m_icount);
update_time_x();
}
}
@@ -570,7 +581,7 @@ void netlist_mame_sound_device_t::device_start()
{
int chan = outdevs[i]->m_channel.Value();
- netlist().log("Output %d on channel %d", i, chan);
+ netlist().log().verbose("Output %d on channel %d", i, chan);
if (chan < 0 || chan >= MAX_OUT || chan >= outdevs.size())
fatalerror("illegal channel number");
@@ -623,9 +634,9 @@ void netlist_mame_sound_device_t::sound_stream_update(sound_stream &stream, stre
netlist::netlist_time cur = netlist().time();
- netlist().process_queue(netlist::netlist_time::from_raw(m_div) * samples);
+ netlist().process_queue(m_div * samples);
- cur += (netlist::netlist_time::from_raw(m_div) * samples);
+ cur += (m_div * samples);
for (int i=0; i < m_num_outputs; i++)
{
@@ -638,9 +649,13 @@ void netlist_mame_sound_device_t::sound_stream_update(sound_stream &stream, stre
// memregion source support
// ----------------------------------------------------------------------------------------
-bool netlist_source_memregion_t::parse(netlist::setup_t *setup, const pstring name)
+bool netlist_source_memregion_t::parse(netlist::setup_t &setup, const pstring &name)
{
- const char *mem = (const char *)downcast<netlist_mame_t &>(setup->netlist()).machine().root_device().memregion(m_name.cstr())->base();
- netlist::parser_t p(*setup);
- return p.parse(mem, name);
+ // FIXME: preprocessor should be a stream!
+ memory_region *mem = downcast<netlist_mame_t &>(setup.netlist()).machine().root_device().memregion(m_name.cstr());
+ pimemstream istrm(mem->base(),mem->bytes() );
+ pomemstream ostrm;
+
+ pimemstream istrm2(ppreprocessor().process(istrm, ostrm));
+ return netlist::parser_t(istrm2, setup).parse(name);
}
diff --git a/src/emu/machine/netlist.h b/src/devices/machine/netlist.h
index ed93abbed3d..8b9bceb2b3d 100644
--- a/src/emu/machine/netlist.h
+++ b/src/devices/machine/netlist.h
@@ -68,7 +68,7 @@ public:
{
}
- bool parse(netlist::setup_t *setup, const pstring name);
+ bool parse(netlist::setup_t &setup, const pstring &name);
private:
pstring m_name;
};
@@ -97,7 +97,7 @@ public:
protected:
- void verror(const loglevel_e level, const char *format, va_list ap) const;
+ void vlog(const plog_level &l, const pstring &ls) const;
private:
netlist_mame_device_t &m_parent;
@@ -114,7 +114,7 @@ public:
// construction/destruction
netlist_mame_device_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
netlist_mame_device_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *file);
- virtual ~netlist_mame_device_t() {}
+ virtual ~netlist_mame_device_t() { pstring::resetmem(); }
static void static_set_constructor(device_t &device, void (*setup_func)(netlist::setup_t &));
@@ -143,13 +143,13 @@ protected:
//virtual void device_debug_setup();
virtual void device_clock_changed();
- UINT32 m_div;
+ netlist::netlist_time m_div;
private:
void save_state();
/* timing support here - so sound can hijack it ... */
- UINT32 m_rem;
+ netlist::netlist_time m_rem;
netlist::netlist_time m_old;
netlist_mame_t * m_netlist;
@@ -583,7 +583,7 @@ public:
{
int pos = (upto - m_last_buffer) / m_sample;
if (pos >= BUFSIZE)
- netlist().error("sound %s: exceeded BUFSIZE\n", name().cstr());
+ netlist().log().fatal("sound {1}: exceeded BUFSIZE\n", name().cstr());
while (m_last_pos < pos )
{
m_buffer[m_last_pos++] = (stream_sample_t) m_cur;
@@ -648,9 +648,9 @@ public:
for (int i = 0; i < MAX_INPUT_CHANNELS; i++)
{
- register_param(pstring::sprintf("CHAN%d", i), m_param_name[i], "");
- register_param(pstring::sprintf("MULT%d", i), m_param_mult[i], 1.0);
- register_param(pstring::sprintf("OFFSET%d", i), m_param_offset[i], 0.0);
+ register_param(pfmt("CHAN{1}")(i), m_param_name[i], "");
+ register_param(pfmt("MULT{1}")(i), m_param_mult[i], 1.0);
+ register_param(pfmt("OFFSET{1}")(i), m_param_offset[i], 0.0);
}
m_num_channel = 0;
}
@@ -670,7 +670,7 @@ public:
if (m_param_name[i].Value() != "")
{
if (i != m_num_channel)
- netlist().error("sound input numbering has to be sequential!");
+ netlist().log().fatal("sound input numbering has to be sequential!");
m_num_channel++;
m_param[i] = dynamic_cast<netlist::param_double_t *>(setup().find_param(m_param_name[i].Value(), true));
}
diff --git a/src/emu/machine/nmc9306.c b/src/devices/machine/nmc9306.c
index 0b23eda21d7..0b23eda21d7 100644
--- a/src/emu/machine/nmc9306.c
+++ b/src/devices/machine/nmc9306.c
diff --git a/src/emu/machine/nmc9306.h b/src/devices/machine/nmc9306.h
index 95db0133025..95db0133025 100644
--- a/src/emu/machine/nmc9306.h
+++ b/src/devices/machine/nmc9306.h
diff --git a/src/emu/machine/nsc810.c b/src/devices/machine/nsc810.c
index 51aec5cf654..51aec5cf654 100644
--- a/src/emu/machine/nsc810.c
+++ b/src/devices/machine/nsc810.c
diff --git a/src/emu/machine/nsc810.h b/src/devices/machine/nsc810.h
index f7aea895f0b..f7aea895f0b 100644
--- a/src/emu/machine/nsc810.h
+++ b/src/devices/machine/nsc810.h
diff --git a/src/emu/machine/nscsi_bus.c b/src/devices/machine/nscsi_bus.c
index 182fe98e0aa..182fe98e0aa 100644
--- a/src/emu/machine/nscsi_bus.c
+++ b/src/devices/machine/nscsi_bus.c
diff --git a/src/emu/machine/nscsi_bus.h b/src/devices/machine/nscsi_bus.h
index 2aa4a57db7e..2aa4a57db7e 100644
--- a/src/emu/machine/nscsi_bus.h
+++ b/src/devices/machine/nscsi_bus.h
diff --git a/src/emu/machine/nscsi_cb.c b/src/devices/machine/nscsi_cb.c
index 5c3c12e8a34..5c3c12e8a34 100644
--- a/src/emu/machine/nscsi_cb.c
+++ b/src/devices/machine/nscsi_cb.c
diff --git a/src/emu/machine/nscsi_cb.h b/src/devices/machine/nscsi_cb.h
index 9152ddaf8f9..9152ddaf8f9 100644
--- a/src/emu/machine/nscsi_cb.h
+++ b/src/devices/machine/nscsi_cb.h
diff --git a/src/emu/machine/nscsi_cd.c b/src/devices/machine/nscsi_cd.c
index c8d8440b3ce..c8d8440b3ce 100644
--- a/src/emu/machine/nscsi_cd.c
+++ b/src/devices/machine/nscsi_cd.c
diff --git a/src/emu/machine/nscsi_cd.h b/src/devices/machine/nscsi_cd.h
index a890848152d..a890848152d 100644
--- a/src/emu/machine/nscsi_cd.h
+++ b/src/devices/machine/nscsi_cd.h
diff --git a/src/emu/machine/nscsi_hd.c b/src/devices/machine/nscsi_hd.c
index 96aec81979c..96aec81979c 100644
--- a/src/emu/machine/nscsi_hd.c
+++ b/src/devices/machine/nscsi_hd.c
diff --git a/src/emu/machine/nscsi_hd.h b/src/devices/machine/nscsi_hd.h
index 855c125294d..855c125294d 100644
--- a/src/emu/machine/nscsi_hd.h
+++ b/src/devices/machine/nscsi_hd.h
diff --git a/src/emu/machine/nscsi_s1410.c b/src/devices/machine/nscsi_s1410.c
index b486b4994e9..b486b4994e9 100644
--- a/src/emu/machine/nscsi_s1410.c
+++ b/src/devices/machine/nscsi_s1410.c
diff --git a/src/emu/machine/nscsi_s1410.h b/src/devices/machine/nscsi_s1410.h
index f9dc2707887..f9dc2707887 100644
--- a/src/emu/machine/nscsi_s1410.h
+++ b/src/devices/machine/nscsi_s1410.h
diff --git a/src/emu/machine/nvram.c b/src/devices/machine/nvram.c
index 17a8fbcf60c..a1c9d734e2e 100644
--- a/src/emu/machine/nvram.c
+++ b/src/devices/machine/nvram.c
@@ -12,6 +12,12 @@
#include "machine/nvram.h"
+// for now, make buggy GCC/Mingw STFU about I64FMT
+#if (defined(__MINGW32__) && (__GNUC__ >= 5))
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wformat"
+#pragma GCC diagnostic ignored "-Wformat-extra-args"
+#endif
//**************************************************************************
// LIVE DEVICE
@@ -169,3 +175,7 @@ void nvram_device::determine_final_base()
if (m_region != NULL && m_region->bytes() != m_length)
throw emu_fatalerror("NVRAM device '%s' has a default region, but it should be 0x%" SIZETFMT "X bytes", tag(), m_length);
}
+
+#if (defined(__MINGW32__) && (__GNUC__ >= 5))
+#pragma GCC diagnostic pop
+#endif
diff --git a/src/emu/machine/nvram.h b/src/devices/machine/nvram.h
index 10c3954a83c..10c3954a83c 100644
--- a/src/emu/machine/nvram.h
+++ b/src/devices/machine/nvram.h
diff --git a/src/emu/machine/pc_fdc.c b/src/devices/machine/pc_fdc.c
index 5c56a53d3d6..5c56a53d3d6 100644
--- a/src/emu/machine/pc_fdc.c
+++ b/src/devices/machine/pc_fdc.c
diff --git a/src/emu/machine/pc_fdc.h b/src/devices/machine/pc_fdc.h
index 159bb89a59b..159bb89a59b 100644
--- a/src/emu/machine/pc_fdc.h
+++ b/src/devices/machine/pc_fdc.h
diff --git a/src/emu/machine/pc_lpt.c b/src/devices/machine/pc_lpt.c
index 319a5cb0a2c..319a5cb0a2c 100644
--- a/src/emu/machine/pc_lpt.c
+++ b/src/devices/machine/pc_lpt.c
diff --git a/src/emu/machine/pc_lpt.h b/src/devices/machine/pc_lpt.h
index 08de865ce94..08de865ce94 100644
--- a/src/emu/machine/pc_lpt.h
+++ b/src/devices/machine/pc_lpt.h
diff --git a/src/emu/machine/pccard.c b/src/devices/machine/pccard.c
index 0d9887fa15f..0d9887fa15f 100644
--- a/src/emu/machine/pccard.c
+++ b/src/devices/machine/pccard.c
diff --git a/src/emu/machine/pccard.h b/src/devices/machine/pccard.h
index 7a7b9abd1ab..7a7b9abd1ab 100644
--- a/src/emu/machine/pccard.h
+++ b/src/devices/machine/pccard.h
diff --git a/src/emu/machine/pcf8593.c b/src/devices/machine/pcf8593.c
index 48e002fdf2d..48e002fdf2d 100644
--- a/src/emu/machine/pcf8593.c
+++ b/src/devices/machine/pcf8593.c
diff --git a/src/emu/machine/pcf8593.h b/src/devices/machine/pcf8593.h
index 2475f0a2dfe..2475f0a2dfe 100644
--- a/src/emu/machine/pcf8593.h
+++ b/src/devices/machine/pcf8593.h
diff --git a/src/emu/machine/pci-apic.c b/src/devices/machine/pci-apic.c
index ce32692c7e6..ce32692c7e6 100644
--- a/src/emu/machine/pci-apic.c
+++ b/src/devices/machine/pci-apic.c
diff --git a/src/emu/machine/pci-apic.h b/src/devices/machine/pci-apic.h
index 85b8de34b4d..85b8de34b4d 100644
--- a/src/emu/machine/pci-apic.h
+++ b/src/devices/machine/pci-apic.h
diff --git a/src/emu/machine/pci-sata.c b/src/devices/machine/pci-sata.c
index 65cc090848b..65cc090848b 100644
--- a/src/emu/machine/pci-sata.c
+++ b/src/devices/machine/pci-sata.c
diff --git a/src/emu/machine/pci-sata.h b/src/devices/machine/pci-sata.h
index 59b41635622..59b41635622 100644
--- a/src/emu/machine/pci-sata.h
+++ b/src/devices/machine/pci-sata.h
diff --git a/src/emu/machine/pci-smbus.c b/src/devices/machine/pci-smbus.c
index 13d4d491570..13d4d491570 100644
--- a/src/emu/machine/pci-smbus.c
+++ b/src/devices/machine/pci-smbus.c
diff --git a/src/emu/machine/pci-smbus.h b/src/devices/machine/pci-smbus.h
index e149e3e547c..e149e3e547c 100644
--- a/src/emu/machine/pci-smbus.h
+++ b/src/devices/machine/pci-smbus.h
diff --git a/src/emu/machine/pci-usb.c b/src/devices/machine/pci-usb.c
index 56789e12eb3..56789e12eb3 100644
--- a/src/emu/machine/pci-usb.c
+++ b/src/devices/machine/pci-usb.c
diff --git a/src/emu/machine/pci-usb.h b/src/devices/machine/pci-usb.h
index e103e89d968..e103e89d968 100644
--- a/src/emu/machine/pci-usb.h
+++ b/src/devices/machine/pci-usb.h
diff --git a/src/emu/machine/pci.c b/src/devices/machine/pci.c
index 079444f379b..a5c95198c75 100644
--- a/src/emu/machine/pci.c
+++ b/src/devices/machine/pci.c
@@ -2,6 +2,13 @@
// copyright-holders:Olivier Galibert
#include "pci.h"
+// for now, make buggy GCC/Mingw STFU about I64FMT
+#if (defined(__MINGW32__) && (__GNUC__ >= 5))
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wformat"
+#pragma GCC diagnostic ignored "-Wformat-extra-args"
+#endif
+
const device_type PCI_ROOT = &device_creator<pci_root_device>;
const device_type PCI_BRIDGE = &device_creator<pci_bridge_device>;
@@ -895,3 +902,7 @@ void pci_root_device::device_start()
void pci_root_device::device_reset()
{
}
+
+#if (defined(__MINGW32__) && (__GNUC__ >= 5))
+#pragma GCC diagnostic pop
+#endif
diff --git a/src/emu/machine/pci.h b/src/devices/machine/pci.h
index 34566f5f1e6..34566f5f1e6 100644
--- a/src/emu/machine/pci.h
+++ b/src/devices/machine/pci.h
diff --git a/src/emu/machine/pci9050.c b/src/devices/machine/pci9050.c
index 2687966c718..2687966c718 100644
--- a/src/emu/machine/pci9050.c
+++ b/src/devices/machine/pci9050.c
diff --git a/src/emu/machine/pci9050.h b/src/devices/machine/pci9050.h
index 7915e46b9ea..7915e46b9ea 100644
--- a/src/emu/machine/pci9050.h
+++ b/src/devices/machine/pci9050.h
diff --git a/src/emu/machine/pckeybrd.c b/src/devices/machine/pckeybrd.c
index f7a049e2469..f7a049e2469 100644
--- a/src/emu/machine/pckeybrd.c
+++ b/src/devices/machine/pckeybrd.c
diff --git a/src/emu/machine/pckeybrd.h b/src/devices/machine/pckeybrd.h
index 12ca33f0f4c..12ca33f0f4c 100644
--- a/src/emu/machine/pckeybrd.h
+++ b/src/devices/machine/pckeybrd.h
diff --git a/src/emu/machine/pic8259.c b/src/devices/machine/pic8259.c
index 40fe6fd916c..40fe6fd916c 100644
--- a/src/emu/machine/pic8259.c
+++ b/src/devices/machine/pic8259.c
diff --git a/src/emu/machine/pic8259.h b/src/devices/machine/pic8259.h
index 48914c07fe9..19e3d95ee2f 100644
--- a/src/emu/machine/pic8259.h
+++ b/src/devices/machine/pic8259.h
@@ -63,6 +63,9 @@ 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; }
+
protected:
// device-level overrides
virtual void device_start();
diff --git a/src/emu/machine/pit8253.c b/src/devices/machine/pit8253.c
index ebd243899fc..1ad506686e0 100644
--- a/src/emu/machine/pit8253.c
+++ b/src/devices/machine/pit8253.c
@@ -23,6 +23,12 @@
#include "emu.h"
#include "machine/pit8253.h"
+// for now, make buggy GCC/Mingw STFU about I64FMT
+#if (defined(__MINGW32__) && (__GNUC__ >= 5))
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wformat"
+#pragma GCC diagnostic ignored "-Wformat-extra-args"
+#endif
/* device types */
enum
@@ -107,7 +113,7 @@ void pit8253_device::device_start()
pit8253_timer *timer = get_timer(timerno);
/* initialize timer */
- timer->updatetimer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(pit8253_device::update_timer_cb),this));
+ timer->updatetimer = timer_alloc(timerno);
timer->updatetimer->adjust(attotime::never, timerno);
/* set up state save values */
@@ -507,7 +513,7 @@ void pit8253_device::simulate2(pit8253_timer *timer, INT64 elapsed_cycles)
if (elapsed_cycles > 0 && timer->phase == 3)
{
/* Reload counter, output goes high */
- --elapsed_cycles;
+ elapsed_cycles -= adjusted_value;
timer->phase = 2;
load_counter_value(timer);
adjusted_value = adjusted_count(bcd, timer->value);
@@ -735,16 +741,6 @@ void pit8253_device::update(pit8253_timer *timer)
}
-TIMER_CALLBACK_MEMBER( pit8253_device::update_timer_cb )
-{
- pit8253_timer *timer = get_timer(param);
-
- LOG2(("pit8253: output_changed(): timer %d\n", param));
-
- update(timer);
-}
-
-
/* We recycle bit 0 of timer->value to hold the phase in mode 3 when count is
odd. Since read commands in mode 3 always return even numbers, we need to
mask this bit off. */
@@ -935,6 +931,10 @@ void pit8254_device::readback_command(UINT8 data)
readback(get_timer(2), read_command);
}
+void pit8253_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
+{
+ update(get_timer(id));
+}
WRITE8_MEMBER( pit8253_device::write )
{
@@ -1129,3 +1129,7 @@ WRITE_LINE_MEMBER( pit8253_device::write_clk2 )
{
set_clock_signal(2, state);
}
+
+#if (defined(__MINGW32__) && (__GNUC__ >= 5))
+#pragma GCC diagnostic pop
+#endif
diff --git a/src/emu/machine/pit8253.h b/src/devices/machine/pit8253.h
index a5ced426044..67e3f86b23b 100644
--- a/src/emu/machine/pit8253.h
+++ b/src/devices/machine/pit8253.h
@@ -93,6 +93,7 @@ protected:
// device-level overrides
virtual void device_start();
virtual void device_reset();
+ virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
// internal state
struct pit8253_timer
@@ -141,8 +142,6 @@ private:
pit8253_timer m_timers[PIT8253_MAX_TIMER];
- TIMER_CALLBACK_MEMBER(update_timer_cb);
-
inline UINT32 adjusted_count(int bcd, UINT16 val);
void decrease_counter_value(pit8253_timer *timer, INT64 cycles);
void load_counter_value(pit8253_timer *timer);
diff --git a/src/emu/machine/pla.c b/src/devices/machine/pla.c
index e8ca43d448f..e8ca43d448f 100644
--- a/src/emu/machine/pla.c
+++ b/src/devices/machine/pla.c
diff --git a/src/emu/machine/pla.h b/src/devices/machine/pla.h
index 10dbc850370..10dbc850370 100644
--- a/src/emu/machine/pla.h
+++ b/src/devices/machine/pla.h
diff --git a/src/emu/machine/r10696.c b/src/devices/machine/r10696.c
index ab20caed731..ab20caed731 100644
--- a/src/emu/machine/r10696.c
+++ b/src/devices/machine/r10696.c
diff --git a/src/emu/machine/r10696.h b/src/devices/machine/r10696.h
index ca3b87c935e..ca3b87c935e 100644
--- a/src/emu/machine/r10696.h
+++ b/src/devices/machine/r10696.h
diff --git a/src/emu/machine/r10788.c b/src/devices/machine/r10788.c
index f6e9d65ecbf..f6e9d65ecbf 100644
--- a/src/emu/machine/r10788.c
+++ b/src/devices/machine/r10788.c
diff --git a/src/emu/machine/r10788.h b/src/devices/machine/r10788.h
index af58aca65c7..af58aca65c7 100644
--- a/src/emu/machine/r10788.h
+++ b/src/devices/machine/r10788.h
diff --git a/src/emu/machine/ra17xx.c b/src/devices/machine/ra17xx.c
index c1252181c7d..c1252181c7d 100644
--- a/src/emu/machine/ra17xx.c
+++ b/src/devices/machine/ra17xx.c
diff --git a/src/emu/machine/ra17xx.h b/src/devices/machine/ra17xx.h
index 3ca8877d7de..3ca8877d7de 100644
--- a/src/emu/machine/ra17xx.h
+++ b/src/devices/machine/ra17xx.h
diff --git a/src/emu/machine/ram.c b/src/devices/machine/ram.c
index 3a92aa48c1b..3a92aa48c1b 100644
--- a/src/emu/machine/ram.c
+++ b/src/devices/machine/ram.c
diff --git a/src/emu/machine/ram.h b/src/devices/machine/ram.h
index c17832dff16..c17832dff16 100644
--- a/src/emu/machine/ram.h
+++ b/src/devices/machine/ram.h
diff --git a/src/emu/machine/rescap.h b/src/devices/machine/rescap.h
index 23e4b9f4329..23e4b9f4329 100644
--- a/src/emu/machine/rescap.h
+++ b/src/devices/machine/rescap.h
diff --git a/src/emu/machine/rf5c296.c b/src/devices/machine/rf5c296.c
index 72fea9ede66..72fea9ede66 100644
--- a/src/emu/machine/rf5c296.c
+++ b/src/devices/machine/rf5c296.c
diff --git a/src/emu/machine/rf5c296.h b/src/devices/machine/rf5c296.h
index 61556b677b7..61556b677b7 100644
--- a/src/emu/machine/rf5c296.h
+++ b/src/devices/machine/rf5c296.h
diff --git a/src/emu/machine/roc10937.c b/src/devices/machine/roc10937.c
index fbfda7ce0e8..fbfda7ce0e8 100644
--- a/src/emu/machine/roc10937.c
+++ b/src/devices/machine/roc10937.c
diff --git a/src/emu/machine/roc10937.h b/src/devices/machine/roc10937.h
index 9aee3bf6997..9aee3bf6997 100644
--- a/src/emu/machine/roc10937.h
+++ b/src/devices/machine/roc10937.h
diff --git a/src/emu/machine/rp5c01.c b/src/devices/machine/rp5c01.c
index 5ac56b4b415..5ac56b4b415 100644
--- a/src/emu/machine/rp5c01.c
+++ b/src/devices/machine/rp5c01.c
diff --git a/src/emu/machine/rp5c01.h b/src/devices/machine/rp5c01.h
index e0283816067..e0283816067 100644
--- a/src/emu/machine/rp5c01.h
+++ b/src/devices/machine/rp5c01.h
diff --git a/src/emu/machine/rp5c15.c b/src/devices/machine/rp5c15.c
index 7967366c349..7967366c349 100644
--- a/src/emu/machine/rp5c15.c
+++ b/src/devices/machine/rp5c15.c
diff --git a/src/emu/machine/rp5c15.h b/src/devices/machine/rp5c15.h
index 2f97d49d99f..2f97d49d99f 100644
--- a/src/emu/machine/rp5c15.h
+++ b/src/devices/machine/rp5c15.h
diff --git a/src/emu/machine/rp5h01.c b/src/devices/machine/rp5h01.c
index 53691cf160f..53691cf160f 100644
--- a/src/emu/machine/rp5h01.c
+++ b/src/devices/machine/rp5h01.c
diff --git a/src/emu/machine/rp5h01.h b/src/devices/machine/rp5h01.h
index 016f05884ae..016f05884ae 100644
--- a/src/emu/machine/rp5h01.h
+++ b/src/devices/machine/rp5h01.h
diff --git a/src/emu/machine/rtc4543.c b/src/devices/machine/rtc4543.c
index ccbf32b5faa..ccbf32b5faa 100644
--- a/src/emu/machine/rtc4543.c
+++ b/src/devices/machine/rtc4543.c
diff --git a/src/emu/machine/rtc4543.h b/src/devices/machine/rtc4543.h
index c1eafb47efb..c1eafb47efb 100644
--- a/src/emu/machine/rtc4543.h
+++ b/src/devices/machine/rtc4543.h
diff --git a/src/emu/machine/rtc65271.c b/src/devices/machine/rtc65271.c
index 074b8d87f48..074b8d87f48 100644
--- a/src/emu/machine/rtc65271.c
+++ b/src/devices/machine/rtc65271.c
diff --git a/src/emu/machine/rtc65271.h b/src/devices/machine/rtc65271.h
index b81e92755d5..b81e92755d5 100644
--- a/src/emu/machine/rtc65271.h
+++ b/src/devices/machine/rtc65271.h
diff --git a/src/emu/machine/rtc9701.c b/src/devices/machine/rtc9701.c
index afa46572ef4..afa46572ef4 100644
--- a/src/emu/machine/rtc9701.c
+++ b/src/devices/machine/rtc9701.c
diff --git a/src/emu/machine/rtc9701.h b/src/devices/machine/rtc9701.h
index eaad28ad0b5..eaad28ad0b5 100644
--- a/src/emu/machine/rtc9701.h
+++ b/src/devices/machine/rtc9701.h
diff --git a/src/emu/machine/s2636.c b/src/devices/machine/s2636.c
index c3cf7bb8178..c3cf7bb8178 100644
--- a/src/emu/machine/s2636.c
+++ b/src/devices/machine/s2636.c
diff --git a/src/emu/machine/s2636.h b/src/devices/machine/s2636.h
index 082eeabab9f..082eeabab9f 100644
--- a/src/emu/machine/s2636.h
+++ b/src/devices/machine/s2636.h
diff --git a/src/emu/machine/s3520cf.c b/src/devices/machine/s3520cf.c
index 3a183982298..3a183982298 100644
--- a/src/emu/machine/s3520cf.c
+++ b/src/devices/machine/s3520cf.c
diff --git a/src/emu/machine/s3520cf.h b/src/devices/machine/s3520cf.h
index af7ba33a835..af7ba33a835 100644
--- a/src/emu/machine/s3520cf.h
+++ b/src/devices/machine/s3520cf.h
diff --git a/src/emu/machine/s3c2400.c b/src/devices/machine/s3c2400.c
index d47e81b08ce..d47e81b08ce 100644
--- a/src/emu/machine/s3c2400.c
+++ b/src/devices/machine/s3c2400.c
diff --git a/src/emu/machine/s3c2400.h b/src/devices/machine/s3c2400.h
index f274e5ad36d..f274e5ad36d 100644
--- a/src/emu/machine/s3c2400.h
+++ b/src/devices/machine/s3c2400.h
diff --git a/src/emu/machine/s3c2410.c b/src/devices/machine/s3c2410.c
index ac5bec78180..ac5bec78180 100644
--- a/src/emu/machine/s3c2410.c
+++ b/src/devices/machine/s3c2410.c
diff --git a/src/emu/machine/s3c2410.h b/src/devices/machine/s3c2410.h
index 6ad02c90d1e..6ad02c90d1e 100644
--- a/src/emu/machine/s3c2410.h
+++ b/src/devices/machine/s3c2410.h
diff --git a/src/emu/machine/s3c2440.c b/src/devices/machine/s3c2440.c
index eaa0301d157..eaa0301d157 100644
--- a/src/emu/machine/s3c2440.c
+++ b/src/devices/machine/s3c2440.c
diff --git a/src/emu/machine/s3c2440.h b/src/devices/machine/s3c2440.h
index b76148eca09..b76148eca09 100644
--- a/src/emu/machine/s3c2440.h
+++ b/src/devices/machine/s3c2440.h
diff --git a/src/emu/machine/s3c24xx.inc b/src/devices/machine/s3c24xx.inc
index d90f105b7bb..d90f105b7bb 100644
--- a/src/emu/machine/s3c24xx.inc
+++ b/src/devices/machine/s3c24xx.inc
diff --git a/src/emu/machine/s3c44b0.c b/src/devices/machine/s3c44b0.c
index fb9d3f15036..fb9d3f15036 100644
--- a/src/emu/machine/s3c44b0.c
+++ b/src/devices/machine/s3c44b0.c
diff --git a/src/emu/machine/s3c44b0.h b/src/devices/machine/s3c44b0.h
index 462bda280d2..462bda280d2 100644
--- a/src/emu/machine/s3c44b0.h
+++ b/src/devices/machine/s3c44b0.h
diff --git a/src/emu/machine/saturn.c b/src/devices/machine/saturn.c
index a9ad0638c68..cf79fdc26a2 100644
--- a/src/emu/machine/saturn.c
+++ b/src/devices/machine/saturn.c
@@ -38,7 +38,7 @@
H counter value 0x0ec (236) -> 0xe0
H counter value 0x12c (300) -> 0x100
- Timer 1 seems to count backwards compared to Timer 0 from setting 0x6b onward.
- - Yabause claims that if VDP2 DISP bit isn't enabled then vblank irqs (hblank too?)
+ - Yabause claims that if VDP2 DISP bit isn't enabled then vblank irqs (hblank too?)
doesn't happen.
**************************************************************************************/
diff --git a/src/emu/machine/serflash.c b/src/devices/machine/serflash.c
index 60ff6712a2b..60ff6712a2b 100644
--- a/src/emu/machine/serflash.c
+++ b/src/devices/machine/serflash.c
diff --git a/src/emu/machine/serflash.h b/src/devices/machine/serflash.h
index fdda31e3912..fdda31e3912 100644
--- a/src/emu/machine/serflash.h
+++ b/src/devices/machine/serflash.h
diff --git a/src/emu/machine/smc91c9x.c b/src/devices/machine/smc91c9x.c
index c075f03fb76..c075f03fb76 100644
--- a/src/emu/machine/smc91c9x.c
+++ b/src/devices/machine/smc91c9x.c
diff --git a/src/emu/machine/smc91c9x.h b/src/devices/machine/smc91c9x.h
index 799af951928..799af951928 100644
--- a/src/emu/machine/smc91c9x.h
+++ b/src/devices/machine/smc91c9x.h
diff --git a/src/emu/machine/smpc.c b/src/devices/machine/smpc.c
index eab928f4daa..caf0834da5a 100644
--- a/src/emu/machine/smpc.c
+++ b/src/devices/machine/smpc.c
@@ -686,8 +686,7 @@ void saturn_state::smpc_comreg_exec(address_space &space, UINT8 data, UINT8 is_s
case 0x0a:
case 0x0b:
popmessage ("SMPC: NETLINK %s, contact MAMEdev",(data & 1) ? "off" : "on");
- break;
- case 0x0d:
+ break; case 0x0d:
if(LOG_SMPC) printf ("SMPC: System Reset\n");
smpc_system_reset();
break;
@@ -926,8 +925,9 @@ UINT8 saturn_state::smpc_th_control_mode(UINT8 pad_n)
case 2:
res = th<<6;
// 1 C B Right Left Down Up
+ // WHP actually has a very specific code at 0x6015f30, doesn't like bits 0-1 active here ...
res|= (((machine().root_device().ioport(padnames[pad_n])->read()>>4)) & 0x30); // C & B
- res|= (((machine().root_device().ioport(padnames[pad_n])->read()>>12)) & 0xf);
+ res|= (((machine().root_device().ioport(padnames[pad_n])->read()>>12)) & 0xc);
break;
case 1:
res = th<<6;
@@ -939,6 +939,8 @@ UINT8 saturn_state::smpc_th_control_mode(UINT8 pad_n)
// 0 Start A 0 0 Down Up
res|= (((machine().root_device().ioport(padnames[pad_n])->read()>>6)) & 0x30); // Start & A
res|= (((machine().root_device().ioport(padnames[pad_n])->read()>>12)) & 0x3);
+ // ... and actually wants bits 2 - 3 active here.
+ res|= 0xc;
break;
}
@@ -1025,13 +1027,13 @@ WRITE8_MEMBER( saturn_state::saturn_SMPC_w )
{
if(data & 0x40)
{
- if(LOG_PAD_CMD) printf("SMPC: BREAK request\n");
+ if(LOG_PAD_CMD) printf("SMPC: BREAK request %02x\n",data);
m_smpc.SR &= 0x0f;
m_smpc.intback_stage = 0;
}
else if(data & 0x80)
{
- if(LOG_PAD_CMD) printf("SMPC: CONTINUE request\n");
+ if(LOG_PAD_CMD) printf("SMPC: CONTINUE request %02x\n",data);
machine().scheduler().timer_set(attotime::from_usec(700), timer_expired_delegate(FUNC(saturn_state::intback_peripheral),this),0); /* TODO: is timing correct? */
m_smpc.OREG[31] = 0x10;
m_smpc.SF = 0x01; //TODO: set hand-shake flag?
diff --git a/src/emu/machine/smpc.h b/src/devices/machine/smpc.h
index 7bb17fe337d..7bb17fe337d 100644
--- a/src/emu/machine/smpc.h
+++ b/src/devices/machine/smpc.h
diff --git a/src/emu/machine/spchrom.c b/src/devices/machine/spchrom.c
index a49590e9e00..a49590e9e00 100644
--- a/src/emu/machine/spchrom.c
+++ b/src/devices/machine/spchrom.c
diff --git a/src/emu/machine/spchrom.h b/src/devices/machine/spchrom.h
index 520c7fc967b..520c7fc967b 100644
--- a/src/emu/machine/spchrom.h
+++ b/src/devices/machine/spchrom.h
diff --git a/src/emu/machine/steppers.c b/src/devices/machine/steppers.c
index e1eea4d648e..e1eea4d648e 100644
--- a/src/emu/machine/steppers.c
+++ b/src/devices/machine/steppers.c
diff --git a/src/emu/machine/steppers.h b/src/devices/machine/steppers.h
index 1ed62da6885..1ed62da6885 100644
--- a/src/emu/machine/steppers.h
+++ b/src/devices/machine/steppers.h
diff --git a/src/emu/machine/strata.c b/src/devices/machine/strata.c
index 01651eb90bd..01651eb90bd 100644
--- a/src/emu/machine/strata.c
+++ b/src/devices/machine/strata.c
diff --git a/src/emu/machine/strata.h b/src/devices/machine/strata.h
index c037a24396b..c037a24396b 100644
--- a/src/emu/machine/strata.h
+++ b/src/devices/machine/strata.h
diff --git a/src/emu/machine/stvcd.c b/src/devices/machine/stvcd.c
index bb3ed98115b..eebb8d11cb4 100644
--- a/src/emu/machine/stvcd.c
+++ b/src/devices/machine/stvcd.c
@@ -862,7 +862,11 @@ void saturn_state::cd_exec_command( void )
//printf("Partition %08x %04x\n",bufnum,cr4);
}
- hirqreg |= (CMOK|DRDY);
+ //printf("%04x\n",cr4);
+ if(cr4 == 0)
+ hirqreg |= (CMOK);
+ else
+ hirqreg |= (CMOK|DRDY);
status_type = 1;
}
break;
@@ -1908,6 +1912,7 @@ void saturn_state::cd_writeWord(UINT32 addr, UINT16 data)
cr1 = data;
cd_stat &= ~CD_STAT_PERI;
cmd_pending |= 1;
+ sh1_timer->adjust(attotime::never);
break;
case 0x001c:
case 0x001e:
diff --git a/src/emu/machine/t10mmc.c b/src/devices/machine/t10mmc.c
index 86e3ec696ed..86e3ec696ed 100644
--- a/src/emu/machine/t10mmc.c
+++ b/src/devices/machine/t10mmc.c
diff --git a/src/emu/machine/t10mmc.h b/src/devices/machine/t10mmc.h
index cfebfc1694c..cfebfc1694c 100644
--- a/src/emu/machine/t10mmc.h
+++ b/src/devices/machine/t10mmc.h
diff --git a/src/emu/machine/t10sbc.c b/src/devices/machine/t10sbc.c
index c5d68be8162..c5d68be8162 100644
--- a/src/emu/machine/t10sbc.c
+++ b/src/devices/machine/t10sbc.c
diff --git a/src/emu/machine/t10sbc.h b/src/devices/machine/t10sbc.h
index d32c0beee57..d32c0beee57 100644
--- a/src/emu/machine/t10sbc.h
+++ b/src/devices/machine/t10sbc.h
diff --git a/src/emu/machine/t10spc.c b/src/devices/machine/t10spc.c
index 80b279efb44..80b279efb44 100644
--- a/src/emu/machine/t10spc.c
+++ b/src/devices/machine/t10spc.c
diff --git a/src/emu/machine/t10spc.h b/src/devices/machine/t10spc.h
index 778fd40bce1..778fd40bce1 100644
--- a/src/emu/machine/t10spc.h
+++ b/src/devices/machine/t10spc.h
diff --git a/src/emu/machine/tc009xlvc.c b/src/devices/machine/tc009xlvc.c
index 5897d555d88..5897d555d88 100644
--- a/src/emu/machine/tc009xlvc.c
+++ b/src/devices/machine/tc009xlvc.c
diff --git a/src/emu/machine/tc009xlvc.h b/src/devices/machine/tc009xlvc.h
index de7e20a5c43..de7e20a5c43 100644
--- a/src/emu/machine/tc009xlvc.h
+++ b/src/devices/machine/tc009xlvc.h
diff --git a/src/emu/machine/terminal.c b/src/devices/machine/terminal.c
index f46bcd3156e..f46bcd3156e 100644
--- a/src/emu/machine/terminal.c
+++ b/src/devices/machine/terminal.c
diff --git a/src/emu/machine/terminal.h b/src/devices/machine/terminal.h
index 0a0e2ff9b77..0a0e2ff9b77 100644
--- a/src/emu/machine/terminal.h
+++ b/src/devices/machine/terminal.h
diff --git a/src/emu/machine/timekpr.c b/src/devices/machine/timekpr.c
index 940fa84f259..940fa84f259 100644
--- a/src/emu/machine/timekpr.c
+++ b/src/devices/machine/timekpr.c
diff --git a/src/emu/machine/timekpr.h b/src/devices/machine/timekpr.h
index 6e72f9add62..6e72f9add62 100644
--- a/src/emu/machine/timekpr.h
+++ b/src/devices/machine/timekpr.h
diff --git a/src/emu/machine/tmp68301.c b/src/devices/machine/tmp68301.c
index 26a4d2fea70..955a10c463b 100644
--- a/src/emu/machine/tmp68301.c
+++ b/src/devices/machine/tmp68301.c
@@ -82,17 +82,20 @@ READ16_MEMBER(tmp68301_device::pdir_r)
WRITE16_MEMBER(tmp68301_device::pdir_w)
{
- m_pdir = data;
+ COMBINE_DATA(&m_pdir);
}
READ16_MEMBER(tmp68301_device::pdr_r)
{
- return m_in_parallel_cb(0) & ~m_pdir;
+ return (m_in_parallel_cb(0) & ~m_pdir) | (m_pdr & m_pdir);
}
WRITE16_MEMBER(tmp68301_device::pdr_w)
{
- m_out_parallel_cb(0, data & m_pdir, mem_mask);
+ UINT16 old = m_pdr;
+ COMBINE_DATA(&m_pdr);
+ m_pdr = (old & ~m_pdir) | (m_pdr & m_pdir);
+ m_out_parallel_cb(0, m_pdr, mem_mask);
}
@@ -105,6 +108,7 @@ tmp68301_device::tmp68301_device(const machine_config &mconfig, const char *tag,
m_iisr(0),
m_scr(0),
m_pdir(0),
+ m_pdr(0),
m_space_config("regs", ENDIANNESS_LITTLE, 16, 10, 0, NULL, *ADDRESS_MAP_NAME(tmp68301_regs))
{
memset(m_regs, 0, sizeof(m_regs));
@@ -133,6 +137,7 @@ void tmp68301_device::device_start()
save_item(NAME(m_iisr));
save_item(NAME(m_scr));
save_item(NAME(m_pdir));
+ save_item(NAME(m_pdr));
}
//-------------------------------------------------
diff --git a/src/emu/machine/tmp68301.h b/src/devices/machine/tmp68301.h
index d7a49a434b7..b96296d31f2 100644
--- a/src/emu/machine/tmp68301.h
+++ b/src/devices/machine/tmp68301.h
@@ -78,6 +78,7 @@ private:
UINT16 m_iisr;
UINT16 m_scr;
UINT16 m_pdir;
+ UINT16 m_pdr;
inline UINT16 read_word(offs_t address);
inline void write_word(offs_t address, UINT16 data);
diff --git a/src/emu/machine/tms1024.c b/src/devices/machine/tms1024.c
index f362349ef16..f362349ef16 100644
--- a/src/emu/machine/tms1024.c
+++ b/src/devices/machine/tms1024.c
diff --git a/src/emu/machine/tms1024.h b/src/devices/machine/tms1024.h
index a7bdb4539bf..a7bdb4539bf 100644
--- a/src/emu/machine/tms1024.h
+++ b/src/devices/machine/tms1024.h
diff --git a/src/emu/machine/tms5501.c b/src/devices/machine/tms5501.c
index 71f3f298cde..71f3f298cde 100644
--- a/src/emu/machine/tms5501.c
+++ b/src/devices/machine/tms5501.c
diff --git a/src/emu/machine/tms5501.h b/src/devices/machine/tms5501.h
index 0a62f751910..0a62f751910 100644
--- a/src/emu/machine/tms5501.h
+++ b/src/devices/machine/tms5501.h
diff --git a/src/emu/machine/tms6100.c b/src/devices/machine/tms6100.c
index c0b355feee5..7d0f3226ca5 100644
--- a/src/emu/machine/tms6100.c
+++ b/src/devices/machine/tms6100.c
@@ -88,6 +88,11 @@
#define TMS6100_READ_PENDING 0x01
#define TMS6100_NEXT_READ_IS_DUMMY 0x02
+/* Variants */
+
+#define TMS6110_IS_TMS6100 (1)
+#define TMS6110_IS_M58819 (2)
+
const device_type TMS6100 = &device_creator<tms6100_device>;
@@ -136,15 +141,15 @@ void tms6100_device::device_start()
save_item(NAME(m_m0));
save_item(NAME(m_m1));
save_item(NAME(m_state));
- //save_item(NAME(m_variant));
- //tms6100_set_variant(tms, TMS6110_IS_TMS6100);
+ save_item(NAME(m_variant));
+ set_variant(TMS6110_IS_TMS6100);
}
void m58819_device::device_start()
{
tms6100_device::device_start();
- //tms6100_set_variant(tms, TMS6110_IS_M58819);
+ set_variant(TMS6110_IS_M58819);
}
//-------------------------------------------------
@@ -165,6 +170,11 @@ void tms6100_device::device_reset()
m_data = 0;
}
+void tms6100_device::set_variant(int variant)
+{
+ m_variant = variant;
+}
+
WRITE_LINE_MEMBER(tms6100_device::tms6100_m0_w)
{
if (state != m_m0)
@@ -199,15 +209,14 @@ WRITE_LINE_MEMBER(tms6100_device::tms6100_romclock_w)
else
{
/* read bit at address */
- /* if (m_variant == TMS6110_IS_M58819)
+ if (m_variant == TMS6110_IS_M58819)
{
m_data = (m_rom[m_address >> 3] >> (7-(m_address & 0x07))) & 1;
}
else // m_variant == (TMS6110_IS_TMS6100 || TMS6110_IS_TMS6125)
{
- */
- m_data = (m_rom[m_address >> 3] >> (m_address & 0x07)) & 1;
- /* } */
+ m_data = (m_rom[m_address >> 3] >> (m_address & 0x07)) & 1;
+ }
m_address++;
}
m_state &= ~TMS6100_READ_PENDING;
diff --git a/src/emu/machine/tms6100.h b/src/devices/machine/tms6100.h
index 2838adf63cf..4aed02a846b 100644
--- a/src/emu/machine/tms6100.h
+++ b/src/devices/machine/tms6100.h
@@ -25,6 +25,7 @@ protected:
virtual void device_config_complete();
virtual void device_start();
virtual void device_reset();
+ void set_variant(int variant);
private:
// internal state
required_region_ptr<UINT8> m_rom;
@@ -37,7 +38,7 @@ private:
UINT8 m_tms_clock;
UINT8 m_data;
UINT8 m_state;
- //UINT8 m_variant;
+ UINT8 m_variant;
};
diff --git a/src/emu/machine/tms9901.c b/src/devices/machine/tms9901.c
index 8ca2f4b2bf7..8ca2f4b2bf7 100644
--- a/src/emu/machine/tms9901.c
+++ b/src/devices/machine/tms9901.c
diff --git a/src/emu/machine/tms9901.h b/src/devices/machine/tms9901.h
index d6859bf21c5..d6859bf21c5 100644
--- a/src/emu/machine/tms9901.h
+++ b/src/devices/machine/tms9901.h
diff --git a/src/emu/machine/tms9902.c b/src/devices/machine/tms9902.c
index 557da504f96..557da504f96 100644
--- a/src/emu/machine/tms9902.c
+++ b/src/devices/machine/tms9902.c
diff --git a/src/emu/machine/tms9902.h b/src/devices/machine/tms9902.h
index ba775d3caa1..ba775d3caa1 100644
--- a/src/emu/machine/tms9902.h
+++ b/src/devices/machine/tms9902.h
diff --git a/src/emu/machine/upd1990a.c b/src/devices/machine/upd1990a.c
index f40bb30af48..f40bb30af48 100644
--- a/src/emu/machine/upd1990a.c
+++ b/src/devices/machine/upd1990a.c
diff --git a/src/emu/machine/upd1990a.h b/src/devices/machine/upd1990a.h
index 745f6c6e648..745f6c6e648 100644
--- a/src/emu/machine/upd1990a.h
+++ b/src/devices/machine/upd1990a.h
diff --git a/src/emu/machine/upd4701.c b/src/devices/machine/upd4701.c
index 4a7adfda291..4a7adfda291 100644
--- a/src/emu/machine/upd4701.c
+++ b/src/devices/machine/upd4701.c
diff --git a/src/emu/machine/upd4701.h b/src/devices/machine/upd4701.h
index e8cb0e0243f..e8cb0e0243f 100644
--- a/src/emu/machine/upd4701.h
+++ b/src/devices/machine/upd4701.h
diff --git a/src/emu/machine/upd4992.c b/src/devices/machine/upd4992.c
index 3636a7e7d75..3636a7e7d75 100644
--- a/src/emu/machine/upd4992.c
+++ b/src/devices/machine/upd4992.c
diff --git a/src/emu/machine/upd4992.h b/src/devices/machine/upd4992.h
index 90d3f303c83..90d3f303c83 100644
--- a/src/emu/machine/upd4992.h
+++ b/src/devices/machine/upd4992.h
diff --git a/src/emu/machine/upd7002.c b/src/devices/machine/upd7002.c
index b74d1bbf1d0..b74d1bbf1d0 100644
--- a/src/emu/machine/upd7002.c
+++ b/src/devices/machine/upd7002.c
diff --git a/src/emu/machine/upd7002.h b/src/devices/machine/upd7002.h
index aba6bb8b36f..aba6bb8b36f 100644
--- a/src/emu/machine/upd7002.h
+++ b/src/devices/machine/upd7002.h
diff --git a/src/emu/machine/upd71071.c b/src/devices/machine/upd71071.c
index 59965256bc5..59965256bc5 100644
--- a/src/emu/machine/upd71071.c
+++ b/src/devices/machine/upd71071.c
diff --git a/src/emu/machine/upd71071.h b/src/devices/machine/upd71071.h
index 99da46f80d6..99da46f80d6 100644
--- a/src/emu/machine/upd71071.h
+++ b/src/devices/machine/upd71071.h
diff --git a/src/emu/machine/upd765.c b/src/devices/machine/upd765.c
index 5a40d63aad3..e1ce769880e 100644
--- a/src/emu/machine/upd765.c
+++ b/src/devices/machine/upd765.c
@@ -2187,12 +2187,12 @@ std::string upd765_family_device::tts(attotime t)
{
char buf[256];
const char *sign = "";
- if(t.seconds < 0) {
+ if(t.seconds() < 0) {
t = attotime::zero-t;
sign = "-";
}
- int nsec = t.attoseconds / ATTOSECONDS_PER_NANOSECOND;
- sprintf(buf, "%s%04d.%03d,%03d,%03d", sign, int(t.seconds), nsec/1000000, (nsec/1000)%1000, nsec % 1000);
+ int nsec = t.attoseconds() / ATTOSECONDS_PER_NANOSECOND;
+ sprintf(buf, "%s%04d.%03d,%03d,%03d", sign, int(t.seconds()), nsec/1000000, (nsec/1000)%1000, nsec % 1000);
return buf;
}
diff --git a/src/emu/machine/upd765.h b/src/devices/machine/upd765.h
index a3465887943..a3465887943 100644
--- a/src/emu/machine/upd765.h
+++ b/src/devices/machine/upd765.h
diff --git a/src/emu/machine/v3021.c b/src/devices/machine/v3021.c
index de8f8526f25..de8f8526f25 100644
--- a/src/emu/machine/v3021.c
+++ b/src/devices/machine/v3021.c
diff --git a/src/emu/machine/v3021.h b/src/devices/machine/v3021.h
index 3dd1c709d1e..3dd1c709d1e 100644
--- a/src/emu/machine/v3021.h
+++ b/src/devices/machine/v3021.h
diff --git a/src/emu/machine/vrc4373.c b/src/devices/machine/vrc4373.c
index 860b7ff601a..860b7ff601a 100644
--- a/src/emu/machine/vrc4373.c
+++ b/src/devices/machine/vrc4373.c
diff --git a/src/emu/machine/vrc4373.h b/src/devices/machine/vrc4373.h
index 31439b58537..31439b58537 100644
--- a/src/emu/machine/vrc4373.h
+++ b/src/devices/machine/vrc4373.h
diff --git a/src/devices/machine/vt82c496.c b/src/devices/machine/vt82c496.c
new file mode 100644
index 00000000000..0a05d9cf17a
--- /dev/null
+++ b/src/devices/machine/vt82c496.c
@@ -0,0 +1,225 @@
+// license:BSD-3-Clause
+// copyright-holders:Barry Rodewald
+/*
+
+ VIA VT82C496G "Green PC" system chipset
+
+*/
+
+#include "vt82c496.h"
+
+/***************************************************************************
+ IMPLEMENTATION
+***************************************************************************/
+
+const device_type VT82C496 = &device_creator<vt82c496_device>;
+
+
+vt82c496_device::vt82c496_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : device_t(mconfig, VT82C496, "VIA VT82C496G system chipset", tag, owner, clock, "vt82c496", __FILE__)
+{
+}
+
+void vt82c496_device::device_start()
+{
+ /* get address space we are working on */
+ device_t *cpu = machine().device(m_cpu_tag);
+ assert(cpu != NULL);
+
+ m_space = &cpu->memory().space(AS_PROGRAM);
+
+ /* get rom region */
+ m_rom = machine().root_device().memregion(m_region_tag)->base();
+
+ save_pointer(m_reg,"Registers",0x100);
+
+ m_ram = machine().device<ram_device>(RAM_TAG);
+}
+
+void vt82c496_device::device_reset()
+{
+ memset(m_reg,0,0x100);
+
+ // set up default ROM banking
+ m_space->install_read_bank(0xc0000,0xc3fff,0,0,"bios_c0_r");
+ m_space->install_read_bank(0xc4000,0xc7fff,0,0,"bios_c4_r");
+ m_space->install_read_bank(0xc8000,0xcbfff,0,0,"bios_c8_r");
+ m_space->install_read_bank(0xcc000,0xcffff,0,0,"bios_cc_r");
+ m_space->install_read_bank(0xd0000,0xd3fff,0,0,"bios_d0_r");
+ m_space->install_read_bank(0xd4000,0xd7fff,0,0,"bios_d4_r");
+ m_space->install_read_bank(0xd8000,0xdbfff,0,0,"bios_d8_r");
+ m_space->install_read_bank(0xdc000,0xdffff,0,0,"bios_dc_r");
+ m_space->install_read_bank(0xe0000,0xeffff,0,0,"bios_e0_r");
+ m_space->install_read_bank(0xf0000,0xfffff,0,0,"bios_f0_r");
+ m_space->nop_write(0xc0000,0xfffff,0,0);
+ machine().root_device().membank("bios_c0_r")->set_base(m_rom);
+ machine().root_device().membank("bios_c4_r")->set_base(m_rom+0x4000);
+ machine().root_device().membank("bios_c8_r")->set_base(m_rom+0x8000);
+ machine().root_device().membank("bios_cc_r")->set_base(m_rom+0xc000);
+ machine().root_device().membank("bios_d0_r")->set_base(m_rom+0x10000);
+ machine().root_device().membank("bios_d4_r")->set_base(m_rom+0x14000);
+ machine().root_device().membank("bios_d8_r")->set_base(m_rom+0x18000);
+ machine().root_device().membank("bios_dc_r")->set_base(m_rom+0x1c000);
+ machine().root_device().membank("bios_e0_r")->set_base(m_rom+0x20000);
+ machine().root_device().membank("bios_f0_r")->set_base(m_rom+0x30000);
+}
+
+READ8_MEMBER(vt82c496_device::read)
+{
+ if(offset == 1)
+ return m_reg[m_reg_select];
+ return 0x00;
+}
+
+WRITE8_MEMBER(vt82c496_device::write)
+{
+ if(offset == 0)
+ m_reg_select = data;
+ if(offset == 1)
+ {
+ m_reg[m_reg_select] = data;
+ switch(m_reg_select)
+ {
+ case 0x30:
+ update_mem_c0(data);
+ break;
+ case 0x31:
+ update_mem_d0(data);
+ break;
+ case 0x32:
+ update_mem_e0(data);
+ break;
+ }
+ }
+}
+
+void vt82c496_device::update_mem_c0(UINT8 data)
+{
+ if(data & 0x80)
+ machine().root_device().membank("bios_cc_r")->set_base(m_ram->pointer()+0xcc000);
+ else
+ machine().root_device().membank("bios_cc_r")->set_base(m_rom+0xc000);
+ if(data & 0x40)
+ {
+ m_space->install_write_bank(0xcc000,0xcffff,0,0,"bios_cc_w");
+ machine().root_device().membank("bios_cc_w")->set_base(m_ram->pointer()+0xcc000);
+ }
+ else
+ m_space->nop_write(0xcc000,0xcffff,0,0);
+
+ if(data & 0x20)
+ machine().root_device().membank("bios_c8_r")->set_base(m_ram->pointer()+0xc8000);
+ else
+ machine().root_device().membank("bios_c8_r")->set_base(m_rom+0x8000);
+ if(data & 0x10)
+ {
+ m_space->install_write_bank(0xc8000,0xcbfff,0,0,"bios_c8_w");
+ machine().root_device().membank("bios_c8_w")->set_base(m_ram->pointer()+0xc8000);
+ }
+ else
+ m_space->nop_write(0xc8000,0xcbfff,0,0);
+
+ if(data & 0x08)
+ machine().root_device().membank("bios_c4_r")->set_base(m_ram->pointer()+0xc4000);
+ else
+ machine().root_device().membank("bios_c4_r")->set_base(m_rom+0x4000);
+ if(data & 0x04)
+ {
+ m_space->install_write_bank(0xc4000,0xc7fff,0,0,"bios_c4_w");
+ machine().root_device().membank("bios_c4_w")->set_base(m_ram->pointer()+0xc4000);
+ }
+ else
+ m_space->nop_write(0xc4000,0xc7fff,0,0);
+
+ if(data & 0x02)
+ machine().root_device().membank("bios_c0_r")->set_base(m_ram->pointer()+0xc0000);
+ else
+ machine().root_device().membank("bios_c0_r")->set_base(m_rom+0);
+ if(data & 0x01)
+ {
+ m_space->install_write_bank(0xc0000,0xc3fff,0,0,"bios_c0_w");
+ machine().root_device().membank("bios_c0_w")->set_base(m_ram->pointer()+0xc0000);
+ }
+ else
+ m_space->nop_write(0xc0000,0xc3fff,0,0);
+}
+
+void vt82c496_device::update_mem_d0(UINT8 data)
+{
+ if(data & 0x80)
+ machine().root_device().membank("bios_dc_r")->set_base(m_ram->pointer()+0xdc000);
+ else
+ machine().root_device().membank("bios_dc_r")->set_base(m_rom+0x1c000);
+ if(data & 0x40)
+ {
+ m_space->install_write_bank(0xdc000,0xdffff,0,0,"bios_dc_w");
+ machine().root_device().membank("bios_dc_w")->set_base(m_ram->pointer()+0xdc000);
+ }
+ else
+ m_space->nop_write(0xdc000,0xdffff,0,0);
+
+ if(data & 0x20)
+ machine().root_device().membank("bios_d8_r")->set_base(m_ram->pointer()+0xd8000);
+ else
+ machine().root_device().membank("bios_d8_r")->set_base(m_rom+0x18000);
+ if(data & 0x10)
+ {
+ m_space->install_write_bank(0xd8000,0xdbfff,0,0,"bios_d8_w");
+ machine().root_device().membank("bios_d8_w")->set_base(m_ram->pointer()+0xd8000);
+ }
+ else
+ m_space->nop_write(0xd8000,0xdbfff,0,0);
+
+ if(data & 0x08)
+ machine().root_device().membank("bios_d4_r")->set_base(m_ram->pointer()+0xd4000);
+ else
+ machine().root_device().membank("bios_d4_r")->set_base(m_rom+0x14000);
+ if(data & 0x04)
+ {
+ m_space->install_write_bank(0xd4000,0xd7fff,0,0,"bios_d4_w");
+ machine().root_device().membank("bios_d4_w")->set_base(m_ram->pointer()+0xd4000);
+ }
+ else
+ m_space->nop_write(0xd4000,0xd7fff,0,0);
+
+ if(data & 0x02)
+ machine().root_device().membank("bios_d0_r")->set_base(m_ram->pointer()+0xd0000);
+ else
+ machine().root_device().membank("bios_d0_r")->set_base(m_rom+0x10000);
+ if(data & 0x01)
+ {
+ m_space->install_write_bank(0xd0000,0xd3fff,0,0,"bios_d0_w");
+ machine().root_device().membank("bios_d0_w")->set_base(m_ram->pointer()+0xd0000);
+ }
+ else
+ m_space->nop_write(0xd0000,0xd3fff,0,0);
+}
+
+void vt82c496_device::update_mem_e0(UINT8 data)
+{
+ if(data & 0x80)
+ machine().root_device().membank("bios_e0_r")->set_base(m_ram->pointer()+0xe0000);
+ else
+ machine().root_device().membank("bios_e0_r")->set_base(m_rom+0x20000);
+
+ if(data & 0x40)
+ {
+ m_space->install_write_bank(0xe0000,0xeffff,0,0,"bios_e0_w");
+ machine().root_device().membank("bios_e0_w")->set_base(m_ram->pointer()+0xe0000);
+ }
+ else
+ m_space->nop_write(0xe0000,0xeffff,0,0);
+
+ if(data & 0x20)
+ machine().root_device().membank("bios_f0_r")->set_base(m_ram->pointer()+0xf0000);
+ else
+ machine().root_device().membank("bios_f0_r")->set_base(m_rom+0x30000);
+
+ if(data & 0x10)
+ {
+ m_space->install_write_bank(0xf0000,0xfffff,0,0,"bios_f0_w");
+ machine().root_device().membank("bios_f0_w")->set_base(m_ram->pointer()+0xf0000);
+ }
+ else
+ m_space->nop_write(0xf0000,0xfffff,0,0);
+}
diff --git a/src/devices/machine/vt82c496.h b/src/devices/machine/vt82c496.h
new file mode 100644
index 00000000000..4e1a79a0943
--- /dev/null
+++ b/src/devices/machine/vt82c496.h
@@ -0,0 +1,60 @@
+// license:BSD-3-Clause
+// copyright-holders:Barry Rodewald
+/*
+
+ VIA VT82C496G "Green PC" system chipset
+
+*/
+
+#ifndef __VT82C496_H__
+#define __VT82C496_H__
+
+#include "emu.h"
+#include "ram.h"
+
+#define MCFG_VT82C496_ADD(_tag) \
+ MCFG_DEVICE_ADD(_tag, VT82C496, 0)
+
+#define MCFG_VT82C496_CPU( _tag ) \
+ vt82c496_device::static_set_cpu(*device, _tag);
+
+#define MCFG_VT82C496_REGION( _tag ) \
+ vt82c496_device::static_set_region(*device, _tag);
+
+class vt82c496_device : public device_t
+{
+public:
+ // construction/destruction
+ vt82c496_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ static void static_set_cpu(device_t &device, const char *tag) { dynamic_cast<vt82c496_device &>(device).m_cpu_tag = tag; }
+ static void static_set_region(device_t &device, const char *tag) { dynamic_cast<vt82c496_device &>(device).m_region_tag = tag; }
+
+ DECLARE_READ8_MEMBER(read);
+ DECLARE_WRITE8_MEMBER(write);
+protected:
+ // device-level overrides
+ virtual void device_start();
+ virtual void device_reset();
+
+private:
+ const char* m_cpu_tag;
+ const char* m_region_tag;
+// cpu_device* m_maincpu;
+ address_space* m_space;
+ ram_device* m_ram;
+ UINT8* m_rom;
+
+ UINT8 m_reg[0x100];
+ UINT8 m_reg_select;
+
+ void update_mem_c0(UINT8 data);
+ void update_mem_d0(UINT8 data);
+ void update_mem_e0(UINT8 data);
+};
+
+// device type definition
+extern const device_type VT82C496;
+
+
+#endif /* __VT82C496_H__ */
diff --git a/src/emu/machine/vt83c461.c b/src/devices/machine/vt83c461.c
index 1957b848c9b..1957b848c9b 100644
--- a/src/emu/machine/vt83c461.c
+++ b/src/devices/machine/vt83c461.c
diff --git a/src/emu/machine/vt83c461.h b/src/devices/machine/vt83c461.h
index 18e737ed29b..18e737ed29b 100644
--- a/src/emu/machine/vt83c461.h
+++ b/src/devices/machine/vt83c461.h
diff --git a/src/emu/machine/wd11c00_17.c b/src/devices/machine/wd11c00_17.c
index 0f38c32c624..0f38c32c624 100644
--- a/src/emu/machine/wd11c00_17.c
+++ b/src/devices/machine/wd11c00_17.c
diff --git a/src/emu/machine/wd11c00_17.h b/src/devices/machine/wd11c00_17.h
index adc8a9f2c64..adc8a9f2c64 100644
--- a/src/emu/machine/wd11c00_17.h
+++ b/src/devices/machine/wd11c00_17.h
diff --git a/src/emu/machine/wd2010.c b/src/devices/machine/wd2010.c
index 6f50622ec79..6f50622ec79 100644
--- a/src/emu/machine/wd2010.c
+++ b/src/devices/machine/wd2010.c
diff --git a/src/emu/machine/wd2010.h b/src/devices/machine/wd2010.h
index 678844f28d6..678844f28d6 100644
--- a/src/emu/machine/wd2010.h
+++ b/src/devices/machine/wd2010.h
diff --git a/src/emu/machine/wd33c93.c b/src/devices/machine/wd33c93.c
index 2ae5f9d370a..2ae5f9d370a 100644
--- a/src/emu/machine/wd33c93.c
+++ b/src/devices/machine/wd33c93.c
diff --git a/src/emu/machine/wd33c93.h b/src/devices/machine/wd33c93.h
index 68ca8acfc58..68ca8acfc58 100644
--- a/src/emu/machine/wd33c93.h
+++ b/src/devices/machine/wd33c93.h
diff --git a/src/emu/machine/wd7600.c b/src/devices/machine/wd7600.c
index 26873553e14..26873553e14 100644
--- a/src/emu/machine/wd7600.c
+++ b/src/devices/machine/wd7600.c
diff --git a/src/emu/machine/wd7600.h b/src/devices/machine/wd7600.h
index 7cfada03261..7cfada03261 100644
--- a/src/emu/machine/wd7600.h
+++ b/src/devices/machine/wd7600.h
diff --git a/src/emu/machine/wd_fdc.c b/src/devices/machine/wd_fdc.c
index 06d6df35f92..8b27486c79a 100644
--- a/src/emu/machine/wd_fdc.c
+++ b/src/devices/machine/wd_fdc.c
@@ -203,8 +203,8 @@ void wd_fdc_t::dden_w(bool _dden)
std::string wd_fdc_t::tts(const attotime &t)
{
char buf[256];
- int nsec = t.attoseconds / ATTOSECONDS_PER_NANOSECOND;
- sprintf(buf, "%4d.%03d,%03d,%03d", int(t.seconds), nsec/1000000, (nsec/1000)%1000, nsec % 1000);
+ int nsec = t.attoseconds() / ATTOSECONDS_PER_NANOSECOND;
+ sprintf(buf, "%4d.%03d,%03d,%03d", int(t.seconds()), nsec/1000000, (nsec/1000)%1000, nsec % 1000);
return buf;
}
diff --git a/src/emu/machine/wd_fdc.h b/src/devices/machine/wd_fdc.h
index 1aa0e1b13dc..7af735a7bef 100644
--- a/src/emu/machine/wd_fdc.h
+++ b/src/devices/machine/wd_fdc.h
@@ -179,7 +179,7 @@ public:
void hlt_w(bool state);
bool enp_r();
-
+
void index_callback(floppy_image_device *floppy, int state);
protected:
diff --git a/src/emu/machine/wozfdc.c b/src/devices/machine/wozfdc.c
index dd3f2483c77..dd3f2483c77 100644
--- a/src/emu/machine/wozfdc.c
+++ b/src/devices/machine/wozfdc.c
diff --git a/src/emu/machine/wozfdc.h b/src/devices/machine/wozfdc.h
index 384f057919d..384f057919d 100644
--- a/src/emu/machine/wozfdc.h
+++ b/src/devices/machine/wozfdc.h
diff --git a/src/emu/machine/x2212.c b/src/devices/machine/x2212.c
index 01db1709c74..01db1709c74 100644
--- a/src/emu/machine/x2212.c
+++ b/src/devices/machine/x2212.c
diff --git a/src/emu/machine/x2212.h b/src/devices/machine/x2212.h
index 4345c8f9a64..4345c8f9a64 100644
--- a/src/emu/machine/x2212.h
+++ b/src/devices/machine/x2212.h
diff --git a/src/emu/machine/x76f041.c b/src/devices/machine/x76f041.c
index 21dea0ae141..21dea0ae141 100644
--- a/src/emu/machine/x76f041.c
+++ b/src/devices/machine/x76f041.c
diff --git a/src/emu/machine/x76f041.h b/src/devices/machine/x76f041.h
index d1f8a8e9e46..d1f8a8e9e46 100644
--- a/src/emu/machine/x76f041.h
+++ b/src/devices/machine/x76f041.h
diff --git a/src/emu/machine/x76f100.c b/src/devices/machine/x76f100.c
index 830a0e51448..830a0e51448 100644
--- a/src/emu/machine/x76f100.c
+++ b/src/devices/machine/x76f100.c
diff --git a/src/emu/machine/x76f100.h b/src/devices/machine/x76f100.h
index dea839c4c5e..dea839c4c5e 100644
--- a/src/emu/machine/x76f100.h
+++ b/src/devices/machine/x76f100.h
diff --git a/src/emu/machine/ym2148.c b/src/devices/machine/ym2148.c
index d0f45fc8844..d0f45fc8844 100644
--- a/src/emu/machine/ym2148.c
+++ b/src/devices/machine/ym2148.c
diff --git a/src/emu/machine/ym2148.h b/src/devices/machine/ym2148.h
index 58d2d5cb360..58d2d5cb360 100644
--- a/src/emu/machine/ym2148.h
+++ b/src/devices/machine/ym2148.h
diff --git a/src/emu/machine/z80ctc.c b/src/devices/machine/z80ctc.c
index aee057c2c1a..8ab638a5e8d 100644
--- a/src/emu/machine/z80ctc.c
+++ b/src/devices/machine/z80ctc.c
@@ -364,7 +364,7 @@ UINT8 z80ctc_device::ctc_channel::read()
{
attotime period = ((m_mode & PRESCALER) == PRESCALER_16) ? m_device->m_period16 : m_device->m_period256;
- VPRINTF(("CTC clock %f\n",ATTOSECONDS_TO_HZ(period.attoseconds)));
+ VPRINTF(("CTC clock %f\n",ATTOSECONDS_TO_HZ(period.attoseconds())));
if (m_timer != NULL)
return ((int)(m_timer->remaining().as_double() / period.as_double()) + 1) & 0xff;
diff --git a/src/emu/machine/z80ctc.h b/src/devices/machine/z80ctc.h
index b5191d21104..b5191d21104 100644
--- a/src/emu/machine/z80ctc.h
+++ b/src/devices/machine/z80ctc.h
diff --git a/src/emu/machine/z80dart.c b/src/devices/machine/z80dart.c
index 6254d1d81f1..6254d1d81f1 100644
--- a/src/emu/machine/z80dart.c
+++ b/src/devices/machine/z80dart.c
diff --git a/src/emu/machine/z80dart.h b/src/devices/machine/z80dart.h
index 2674f84758a..2674f84758a 100644
--- a/src/emu/machine/z80dart.h
+++ b/src/devices/machine/z80dart.h
diff --git a/src/emu/machine/z80dma.c b/src/devices/machine/z80dma.c
index 745d22877f0..745d22877f0 100644
--- a/src/emu/machine/z80dma.c
+++ b/src/devices/machine/z80dma.c
diff --git a/src/emu/machine/z80dma.h b/src/devices/machine/z80dma.h
index 389112e6f19..389112e6f19 100644
--- a/src/emu/machine/z80dma.h
+++ b/src/devices/machine/z80dma.h
diff --git a/src/emu/machine/z80pio.c b/src/devices/machine/z80pio.c
index 6463adc8fb7..6463adc8fb7 100644
--- a/src/emu/machine/z80pio.c
+++ b/src/devices/machine/z80pio.c
diff --git a/src/emu/machine/z80pio.h b/src/devices/machine/z80pio.h
index 80a458dd4fd..80a458dd4fd 100644
--- a/src/emu/machine/z80pio.h
+++ b/src/devices/machine/z80pio.h
diff --git a/src/devices/machine/z80scc.c b/src/devices/machine/z80scc.c
new file mode 100644
index 00000000000..91221c8d339
--- /dev/null
+++ b/src/devices/machine/z80scc.c
@@ -0,0 +1,2241 @@
+// license:BSD-3-Clause copyright-holders: Joakim Larsson Edstrom
+/***************************************************************************
+
+ Z80-SCC Serial Communications Controller emulation
+
+ The z80scc is an updated version of the z80sio, with additional support for CRC
+ checks and a number of data link layer protocols such as HDLC, SDLC and BiSync.
+ (See https://en.wikipedia.org/wiki/Zilog_SCC). The variants in the SCC
+ family are as follows:
+ Zbus Universal bus
+ NMOS Z8030 Z8530
+ CMOS Z80C30 Z85C30
+ ESCC Z80230 Z85230, Z8523L (L = low voltage)
+ EMSCC Z85233
+ The difference between Zbus and Universal bus is mainly at hardware
+ design level and suitable for Intel oriented (Zbus) or Motorola oriented
+ chip designs.
+
+TODO:
+ NMOS CMOS ESCC EMSCC
+ -------------------------------------------------------------------
+ Channels 2 FD 2 FD 2 FD 2 FD FD = Full Duplex
+ Synch data rates 2Mbps 4Mbps 5Mbps 5Mbps
+ 1Mbps (FM)
+ .5Mbps (NRZI)
+ -- asynchrounous features -------------------------------------------
+ 5-8 bit per char Y Y Y Y
+ 1,1.5,2 stop bits Y Y Y Y
+ odd/even parity Y Y Y Y
+ x1,x16,x32,x64 Y Y Y Y
+ break det/gen Y Y Y Y
+ parity, framing & Y Y Y Y
+ overrun error det Y Y Y Y
+ -- byte oriented synchrounous features -------------------------------
+ Int/ext char sync Y Y Y Y
+ 1/2 synch chars Y Y Y Y
+ Aut CRC gen/det Y Y Y Y
+ -- SDLC/HDLC capabilities --------------------------------------------
+ Abort seq gen/chk Y Y Y Y
+ Aut zero ins/det Y Y Y Y
+ Aut flag insert Y Y Y Y
+ Addr field rec Y Y Y Y
+ I-fld resid hand Y Y Y Y
+ CRC gen/det Y Y Y Y
+ SDLC loop w EOP Y Y Y Y
+ --
+ Receiver FIFO 3 3 8 8
+ Transmitter FIFO 1 1 4 4
+ NRZ, NRZI or Y Y Y Y
+ FM enc/dec Y Y Y Y
+ Manchester dec Y Y Y Y
+ Baud gen per chan Y Y Y Y
+ DPLL clock recov Y Y Y Y
+ -- Additional features CMOS versions -----------------------------------
+ Status FIFO N Y Y Y
+ SWI ack feat N Y Y Y
+ higher bps w ext DPLL N 32Mbps 32Mbps 32Mbps
+ -- Additional features 85C30 -------------------------------------------
+ New WR7 feat N 85C30 Y Y
+ Improved SDLC N 85C30 Y Y
+ Improved reg handl N 85C30 Y Y
+ Improved auto feat N 85C30 Y Y
+ -- Additional features ESCC -------------------------------------------
+ Progrmbl FIFO int &
+ DMA req lev Y Y Y Y
+ Improved SDLC Y Y Y Y
+ DPLL counter as TXc Y Y Y Y
+ Improved reg handl Y Y Y Y
+ -------------------------------------------------------------------------
+ * = Features that has been implemented n/a = features that will not
+***************************************************************************/
+
+#include "z80scc.h"
+
+//**************************************************************************
+// MACROS / CONSTANTS
+//**************************************************************************
+
+#define VERBOSE 0
+
+#define LOG(x) do { if (VERBOSE) logerror x; } while (0)
+#if VERBOSE == 2
+#define logerror printf
+#endif
+
+#ifdef _MSC_VER
+#define FUNCNAME __func__
+#else
+#define FUNCNAME __PRETTY_FUNCTION__
+#endif
+
+#define CHANA_TAG "cha"
+#define CHANB_TAG "chb"
+
+//**************************************************************************
+// DEVICE DEFINITIONS
+//**************************************************************************
+// device type definition
+const device_type Z80SCC = &device_creator<z80scc_device>;
+const device_type Z80SCC_CHANNEL = &device_creator<z80scc_channel>;
+const device_type SCC8030 = &device_creator<scc8030_device>;
+const device_type SCC80C30 = &device_creator<scc80C30_device>;
+const device_type SCC80230 = &device_creator<scc80230_device>;
+const device_type SCC8530N = &device_creator<scc8530_device>; // remove trailing N when 8530scc.c is fully replaced and removed
+const device_type SCC85C30 = &device_creator<scc85C30_device>;
+const device_type SCC85230 = &device_creator<scc85230_device>;
+const device_type SCC85233 = &device_creator<scc85233_device>;
+const device_type SCC8523L = &device_creator<scc8523L_device>;
+
+//-------------------------------------------------
+// device_mconfig_additions -
+//-------------------------------------------------
+MACHINE_CONFIG_FRAGMENT( z80scc )
+ MCFG_DEVICE_ADD(CHANA_TAG, Z80SCC_CHANNEL, 0)
+ MCFG_DEVICE_ADD(CHANB_TAG, Z80SCC_CHANNEL, 0)
+MACHINE_CONFIG_END
+
+machine_config_constructor z80scc_device::device_mconfig_additions() const
+{
+ return MACHINE_CONFIG_NAME( z80scc );
+}
+
+//**************************************************************************
+// LIVE DEVICE
+//**************************************************************************
+
+//-------------------------------------------------
+// z80scc_device - constructor
+//-------------------------------------------------
+
+z80scc_device::z80scc_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, UINT32 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),
+ m_wr0_ptrbits(0){
+ for (int i = 0; i < 6; i++)
+ m_int_state[i] = 0;
+}
+
+z80scc_device::z80scc_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : device_t(mconfig, Z80SCC, "Z80 SCC", tag, owner, clock, "z80scc", __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_Z80SCC)
+{
+ for (int i = 0; i < 6; i++)
+ m_int_state[i] = 0;
+}
+
+scc8030_device::scc8030_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : z80scc_device(mconfig, SCC8030, "SCC 8030", tag, owner, clock, TYPE_SCC8030, "scc8030", __FILE__){ }
+
+scc80C30_device::scc80C30_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : z80scc_device(mconfig, SCC80C30, "SCC 80C30", tag, owner, clock, TYPE_SCC80C30, "scc80C30", __FILE__){ }
+
+scc80230_device::scc80230_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : z80scc_device(mconfig, SCC80230, "SCC 80230", tag, owner, clock, TYPE_SCC80230, "scc80230", __FILE__){ }
+
+scc8530_device::scc8530_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+: z80scc_device(mconfig, SCC8530N, "SCC 8530", tag, owner, clock, TYPE_SCC8530, "scc8530", __FILE__){ }
+
+scc85C30_device::scc85C30_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : z80scc_device(mconfig, SCC85C30, "SCC 85C30", tag, owner, clock, TYPE_SCC85C30, "scc85C30", __FILE__){ }
+
+scc85230_device::scc85230_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : z80scc_device(mconfig, SCC85230, "SCC 85230", tag, owner, clock, TYPE_SCC85230, "scc85230", __FILE__){ }
+
+scc85233_device::scc85233_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : z80scc_device(mconfig, SCC85233, "SCC 85233", tag, owner, clock, TYPE_SCC85233, "scc85233", __FILE__){ }
+
+scc8523L_device::scc8523L_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : z80scc_device(mconfig, SCC8523L, "SCC 8523L", tag, owner, clock, TYPE_SCC8523L, "scc8523L", __FILE__){ }
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void z80scc_device::device_start()
+{
+ LOG(("%s\n", FUNCNAME));
+ // resolve callbacks
+ m_out_txda_cb.resolve_safe();
+ m_out_dtra_cb.resolve_safe();
+ m_out_rtsa_cb.resolve_safe();
+ m_out_wrdya_cb.resolve_safe();
+ m_out_synca_cb.resolve_safe();
+ m_out_txdb_cb.resolve_safe();
+ m_out_dtrb_cb.resolve_safe();
+ m_out_rtsb_cb.resolve_safe();
+ m_out_wrdyb_cb.resolve_safe();
+ m_out_syncb_cb.resolve_safe();
+ m_out_int_cb.resolve_safe();
+ m_out_rxdrqa_cb.resolve_safe();
+ m_out_txdrqa_cb.resolve_safe();
+ m_out_rxdrqb_cb.resolve_safe();
+ m_out_txdrqb_cb.resolve_safe();
+
+ // configure channel A
+ m_chanA->m_rxc = m_rxca;
+ m_chanA->m_txc = m_txca;
+
+ // configure channel B
+ m_chanB->m_rxc = m_rxcb;
+ m_chanB->m_txc = m_txcb;
+
+ // state saving
+ save_item(NAME(m_int_state));
+
+ LOG((" - SCC variant %02x\n", m_variant));
+}
+
+
+//-------------------------------------------------
+// device_reset - device-specific reset
+//-------------------------------------------------
+
+void z80scc_device::device_reset()
+{
+ LOG(("%s %s \n",FUNCNAME, tag()));
+
+ m_chanA->reset();
+ m_chanB->reset();
+}
+
+/*
+ * Interrupts
+Each of the SCC's two channels contain three sources of interrupts, making a total of six interrupt
+sources. These three sources of interrupts are: 1) Receiver, 2) Transmitter, and 3) External/Status
+conditions. In addition, there are several conditions that may cause these interrupts.*/
+//-------------------------------------------------
+// z80daisy_irq_state - get interrupt status
+//-------------------------------------------------
+
+int z80scc_device::z80daisy_irq_state()
+{
+ int state = 0;
+ int i;
+
+ LOG(("%s %s A:%d%d%d B:%d%d%d ",FUNCNAME, 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]));
+
+ // loop over all interrupt sources
+ for (i = 0; i < 6; i++)
+ {
+ // if we're servicing a request, don't indicate more interrupts
+ if (m_int_state[i] & Z80_DAISY_IEO)
+ {
+ state |= Z80_DAISY_IEO;
+ break;
+ }
+ state |= m_int_state[i];
+ }
+
+ LOG(("Interrupt State %u\n", state));
+
+ return state;
+}
+
+
+//-------------------------------------------------
+// z80daisy_irq_ack - interrupt acknowledge
+//-------------------------------------------------
+
+int z80scc_device::z80daisy_irq_ack()
+{
+ int i;
+
+ LOG(("%s %s - needs fixing for SCC\n",FUNCNAME, tag()));
+
+ // loop over all interrupt sources
+ for (i = 0; i < 6; i++)
+ {
+ // find the first channel with an interrupt requested
+ if (m_int_state[i] & Z80_DAISY_INT)
+ {
+ // clear interrupt, switch to the IEO state, and update the IRQs
+ m_int_state[i] = Z80_DAISY_IEO;
+ //m_chanA->m_rr0 &= ~z80scc_channel::RR0_INTERRUPT_PENDING;
+ check_interrupts();
+
+ //LOG(("%s %s \n",FUNCNAME, tag(), m_chanB->m_rr2));
+
+ return m_chanB->m_rr2;
+ }
+ }
+
+ //logerror("z80scc_irq_ack: failed to find an interrupt to ack!\n");
+
+ return m_chanB->m_rr2;
+}
+
+
+//-------------------------------------------------
+// z80daisy_irq_reti - return from interrupt
+//-------------------------------------------------
+
+void z80scc_device::z80daisy_irq_reti()
+{
+ int i;
+
+ LOG(("%s %s \n",FUNCNAME, tag()));
+
+ // loop over all interrupt sources
+ for (i = 0; i < 6; i++)
+ {
+ // find the first channel with an IEO pending
+ if (m_int_state[i] & Z80_DAISY_IEO)
+ {
+ // clear the IEO state and update the IRQs
+ m_int_state[i] &= ~Z80_DAISY_IEO;
+ check_interrupts();
+ return;
+ }
+ }
+
+ //logerror("z80scc_irq_reti: failed to find an interrupt to clear IEO on!\n");
+}
+
+
+//-------------------------------------------------
+// check_interrupts -
+//-------------------------------------------------
+
+void z80scc_device::check_interrupts()
+{
+ int state = (z80daisy_irq_state() & Z80_DAISY_INT) ? ASSERT_LINE : CLEAR_LINE;
+ LOG(("%s %s \n",FUNCNAME, tag()));
+ m_out_int_cb(state);
+}
+
+
+//-------------------------------------------------
+// reset_interrupts -
+//-------------------------------------------------
+
+void z80scc_device::reset_interrupts()
+{
+ LOG(("%s %s \n",FUNCNAME, tag()));
+ // reset internal interrupt sources
+ for (int i = 0; i < 6; i++)
+ {
+ m_int_state[i] = 0;
+ }
+
+ // check external interrupt sources
+ check_interrupts();
+}
+
+UINT8 z80scc_device::modify_vector(UINT8 vec, int i, UINT8 src)
+{
+ /*
+ Interrupt Vector Modification
+ V3 V2 V1 Status High/Status Low =0
+ V4 V5 V6 Status High/Status Low =1
+ 0 0 0 Ch B Transmit Buffer Empty
+ 0 0 1 Ch B External/Status Change
+ 0 1 0 Ch B Receive Char. Available
+ 0 1 1 Ch B Special Receive Condition
+ 1 0 0 Ch A Transmit Buffer Empty
+ 1 0 1 Ch A External/Status Change
+ 1 1 0 Ch A Receive Char. Available
+ 1 1 1 Ch A Special Receive Condition
+ */
+ // Add channel offset according to table above
+ src |= (i == CHANNEL_A ? 0x04 : 0x00 );
+
+ // Modify vector according to Hi/lo bit of WR9
+ if (m_chanA->m_wr9 & z80scc_channel::WR9_BIT_SHSL) // Affect V4-V6
+ {
+ vec |= src << 4;
+ }
+ else // Affect V1-V3
+ {
+ vec |= src << 1;
+ }
+ return vec;
+}
+
+
+//-------------------------------------------------
+// trigger_interrupt -
+//-------------------------------------------------
+void z80scc_device::trigger_interrupt(int index, int state)
+{
+ UINT8 vector = m_chanB->m_wr2;
+ UINT8 source = 0;
+ int priority;
+
+ int prio_level = 0;
+
+ LOG(("%s %s:%c %d \n",FUNCNAME, tag(), 'A' + index, state));
+
+ /* The Master Interrupt Enable (MIE) bit, WR9 D3, must be set to enable the SCC to generate interrupts.*/
+ if (!(m_chanA->m_wr9 & z80scc_channel::WR9_BIT_MIE))
+ {
+ LOG(("Master Interrupt Enable is not set, blocking attempt to interrupt\n"));
+ return;
+ }
+
+ switch(state)
+ {
+ case z80scc_channel::INT_RECEIVE:
+ /*The sources of receive interrupts consist of Receive Character Available and Special Receive Condition.
+ The Special Receive Condition can be subdivided into Receive Overrun, Framing Error (Asynchronous) or
+ End of Frame (SDLC). In addition, a parity error can be a special receive condition by programming*/
+ source = 2;
+ prio_level = 2;
+ break;
+ case z80scc_channel::INT_TRANSMIT:
+ /*The NMOS/CMOS version of the SCC only has a one byte deep transmit buffer. The status of the
+ transmit buffer can be determined through TBE bit in RR0, bit D2, which shows whether the
+ transmit buffer is empty or not. After a hardware reset (including a hardware reset by software), or
+ a channel reset, this bit is set to 1.
+ While transmit interrupts are enabled, the NMOS/CMOS version sets the Transmit Interrupt Pending
+ (TxIP) bit whenever the transmit buffer becomes empty. This means that the transmit buffer
+ must be full before the TxIP can be set. Thus, when transmit interrupts are first enabled, the TxIP
+ will not be set until after the first character is written to the NMOS/CMOS.*/
+ source = 0;
+ prio_level = 1;
+ break;
+ case z80scc_channel::INT_SPECIAL:
+ /*This mode allows the receiver to interrupt only on
+ characters with a special receive condition. When an interrupt occurs, the data containing the error
+ is held in the Receive FIFO until an Error Reset command is issued. When using this mode in conjunction
+ with a DMA, the DMA is initialized and enabled before any characters have been
+ received by the ESCC. This eliminates the time-critical section of code required in the Receive
+ Interrupt on First Character or Special Condition mode. Hence, all data can be transferred via the
+ DMA so that the CPU need not handle the first received character as a special case. In SDLC
+ mode, if the SDLC Frame Status FIFO is enabled and an EOF is received, an interrupt with vector
+ for receive data available is generated and the Receive FIFO is not locked.*/
+ source = 3;
+ prio_level = 0;
+ break;
+ default:
+ logerror("Attempt to trigger interrupt of unknown origin blocked: %02x on channel %c\n", state, 'A' + index);
+ return;
+ }
+
+ // Vector modification requested?
+ if (m_chanA->m_wr9 & z80scc_channel::WR9_BIT_VIS)
+ {
+ vector = modify_vector(vector, index, source);
+ }
+
+ //LOG(("Z80SCC \"%s\": %c : Interrupt Request %u\n", tag(), 'A' + index, state));
+
+ // update vector register // TODO: What if interrupts are nested? May we loose the modified vector or even get the wrong one?
+ m_chanB->m_wr2 = vector;
+
+ /* Check the interrupt source and build the vector modification */
+ /*Interrupt Source Priority order
+ Channel A Receive
+ Channel A Transmit
+ Channel A External/Status
+ Channel B Receive
+ Channel B Transmit
+ Channel B External/Status
+ */
+ // Add channel offset to priority according to table above
+ priority = prio_level + (index == CHANNEL_A ? 3 : 0 );
+
+ // trigger interrupt
+ m_int_state[priority] |= Z80_DAISY_INT;
+
+ // Based on the fact that prio levels are aligned with the bitorder of rr3 we can do this...
+ m_chanA->m_rr3 |= (prio_level << (index == CHANNEL_A ? 3 : 0 ));
+
+ // check for interrupt
+ check_interrupts();
+}
+
+
+//-------------------------------------------------
+// m1_r - interrupt acknowledge
+//-------------------------------------------------
+
+int z80scc_device::m1_r()
+{
+ return z80daisy_irq_ack();
+}
+
+
+//-------------------------------------------------
+// cd_ba_r - Universal Bus read
+//-------------------------------------------------
+READ8_MEMBER( z80scc_device::cd_ba_r )
+{
+ int ba = BIT(offset, 0);
+ int cd = BIT(offset, 1);
+ z80scc_channel *channel = ba ? m_chanB : m_chanA;
+
+ /* Expell non-Universal Bus variants */
+ if ( !(m_variant & SET_Z85X3X))
+ {
+ logerror("Z80SCC cd_ba_r not supported by this device variant, you should probably use combinations of c*_r/w and d*_r/w (see z80scc.h)\n");
+ return 0;
+ }
+
+ // LOG(("z80scc_device::cd_ba_r ba:%02x cd:%02x\n", ba, cd));
+ return cd ? channel->control_read() : channel->data_read();
+}
+
+//-------------------------------------------------
+// cd_ba_w - Universal Bus write
+//-------------------------------------------------
+WRITE8_MEMBER( z80scc_device::cd_ba_w )
+{
+ int ba = BIT(offset, 0);
+ int cd = BIT(offset, 1);
+ z80scc_channel *channel = ba ? m_chanB : m_chanA;
+
+ /* Expell non-Universal Bus variants */
+ if ( !(m_variant & SET_Z85X3X) )
+ {
+ logerror("Z80SCC cd_ba_w not supported by this device variant, you should probably use combinations of c*_r/w and d*_r/w (see z80scc.h)\n");
+ return;
+ }
+
+ // LOG(("z80scc_device::cd_ba_w ba:%02x cd:%02x\n", ba, cd));
+ if (cd)
+ channel->control_write(data);
+ else
+ channel->data_write(data);
+}
+
+
+//-------------------------------------------------
+// ba_cd_r - Universal Bus read
+//-------------------------------------------------
+
+READ8_MEMBER( z80scc_device::ba_cd_r )
+{
+ int ba = BIT(offset, 1);
+ int cd = BIT(offset, 0);
+ z80scc_channel *channel = ba ? m_chanB : m_chanA;
+
+ /* Expell non-Universal Bus variants */
+ if ( !(m_variant & SET_Z85X3X) )
+ {
+ logerror("Z80SCC ba_cd_r not supported by this device variant, you should probably use combinations of c*_r/w and d*_r/w (see z80scc.h)\n");
+ return 0;
+ }
+
+ // LOG(("z80scc_device::ba_cd_r ba:%02x cd:%02x\n", ba, cd));
+ return cd ? channel->control_read() : channel->data_read();
+}
+
+
+//-------------------------------------------------
+// ba_cd_w -
+//-------------------------------------------------
+
+WRITE8_MEMBER( z80scc_device::ba_cd_w )
+{
+ int ba = BIT(offset, 1);
+ int cd = BIT(offset, 0);
+ z80scc_channel *channel = ba ? m_chanB : m_chanA;
+
+ /* Expell non-Universal Bus variants */
+ if ( !(m_variant & SET_Z85X3X) )
+ {
+ logerror("Z80SCC ba_cd_w not supported by this device variant, you should probably use combinations of c*_r/w and d*_r/w (see z80scc.h)\n");
+ return;
+ }
+
+ LOG(("z80scc_device::ba_cd_w ba:%02x cd:%02x\n", ba, cd));
+
+ if (cd)
+ channel->control_write(data);
+ else
+ channel->data_write(data);
+}
+
+//**************************************************************************
+// SCC CHANNEL
+//**************************************************************************
+
+//-------------------------------------------------
+// SCC_channel - constructor
+//-------------------------------------------------
+
+z80scc_channel::z80scc_channel(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : device_t(mconfig, Z80SCC_CHANNEL, "Z80 SCC channel", tag, owner, clock, "z80scc_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_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_rr0 = m_rr1 = m_rr2 = m_rr3 = m_rr4 = m_rr5 = m_rr6 = m_rr7 = m_rr8
+ = m_rr9 = m_rr10 = m_rr11 = m_rr12 = m_rr13 = m_rr14 = m_rr15 = 0;
+ m_wr0 = m_wr1 = m_wr2 = m_wr3 = m_wr4 = m_wr5 = m_wr6 = m_wr7 = m_wr8
+ = m_wr9 = m_wr10 = m_wr11 = m_wr12 = m_wr13 = m_wr14 = m_wr15 = 0;
+
+ for (int i = 0; i < 3; i++) // TODO adapt to SCC fifos
+ {
+ m_rx_data_fifo[i] = 0;
+ m_rx_error_fifo[i] = 0;
+ }
+}
+
+
+//-------------------------------------------------
+// start - channel startup
+//-------------------------------------------------
+
+void z80scc_channel::device_start()
+{
+ LOG(("%s\n", FUNCNAME));
+ m_uart = downcast<z80scc_device *>(owner());
+ m_index = m_uart->get_channel_index(this);
+
+ m_uart->m_wr0_ptrbits = 0;
+
+ m_rx_fifo_sz = (m_uart->m_variant & SET_ESCC) ? 8 : 3;
+ m_rx_fifo_wp = m_rx_fifo_rp = 0;
+
+ // state saving
+ save_item(NAME(m_rr0));
+ save_item(NAME(m_rr1));
+ save_item(NAME(m_rr2));
+ save_item(NAME(m_rr3));
+ save_item(NAME(m_rr4));
+ save_item(NAME(m_rr5));
+ save_item(NAME(m_rr6));
+ save_item(NAME(m_rr7));
+ save_item(NAME(m_rr8));
+ save_item(NAME(m_rr9));
+ save_item(NAME(m_rr10));
+ save_item(NAME(m_rr11));
+ save_item(NAME(m_rr12));
+ save_item(NAME(m_rr13));
+ save_item(NAME(m_rr14));
+ save_item(NAME(m_rr15));
+ save_item(NAME(m_wr0));
+ save_item(NAME(m_wr1));
+ save_item(NAME(m_wr2));
+ save_item(NAME(m_wr3));
+ save_item(NAME(m_wr4));
+ save_item(NAME(m_wr5));
+ save_item(NAME(m_wr6));
+ save_item(NAME(m_wr7));
+ save_item(NAME(m_wr8));
+ save_item(NAME(m_wr9));
+ save_item(NAME(m_wr10));
+ save_item(NAME(m_wr11));
+ save_item(NAME(m_wr12));
+ save_item(NAME(m_wr13));
+ save_item(NAME(m_wr14));
+ save_item(NAME(m_wr15));
+ save_item(NAME(m_rx_data_fifo));
+ save_item(NAME(m_rx_error_fifo));
+ save_item(NAME(m_rx_fifo_rp));
+ save_item(NAME(m_rx_fifo_wp));
+ save_item(NAME(m_rx_fifo_sz));
+ save_item(NAME(m_rx_clock));
+ save_item(NAME(m_rx_first));
+ save_item(NAME(m_rx_break));
+ save_item(NAME(m_rx_rr0_latch));
+ save_item(NAME(m_ri));
+ save_item(NAME(m_cts));
+ save_item(NAME(m_dcd));
+ save_item(NAME(m_tx_data));
+ save_item(NAME(m_tx_clock));
+ save_item(NAME(m_dtr));
+ save_item(NAME(m_rts));
+ save_item(NAME(m_sync));
+
+ device_serial_interface::register_save_state(machine().save(), this);
+}
+
+
+//-------------------------------------------------
+// reset - reset channel status
+//-------------------------------------------------
+
+void z80scc_channel::device_reset()
+{
+ LOG(("%s\n", FUNCNAME));
+
+ // Reset RS232 emulation
+ receive_register_reset();
+ transmit_register_reset();
+
+ // Soft/Channel Reset values according to SCC users manual
+ m_wr0 = 0x00;
+ m_wr1 &= 0x24;
+ m_wr3 &= 0x01;
+ m_wr4 |= 0x04;
+ m_wr5 &= 0x61;
+ if (m_uart->m_variant & (z80scc_device::TYPE_SCC85C30 | SET_ESCC))
+ m_wr7 = 0x20;
+ m_wr9 &= 0xdf; // WR9 has a different hard reset value
+ m_wr10 &= 0x60; // WR10 has a different hard reset value
+ m_wr11 &= 0xff; // WR11 has a different hard reset value
+ m_wr14 &= 0xc3; // WR14 has a different hard reset value
+ m_wr14 |= 0x20;
+ m_wr15 = 0xf8;
+ m_rr0 &= 0xfc;
+ m_rr0 |= 0x44;
+ m_rr1 &= 0x07;
+ m_rr1 |= 0x06;
+ m_rr3 = 0x00;
+ m_rr10 &= 0x40;
+
+#if 1 // old reset code
+ // disable receiver
+ m_wr3 &= ~WR3_RX_ENABLE;
+
+ // disable transmitter
+ m_wr5 &= ~WR5_TX_ENABLE;
+ m_rr0 |= RR0_TX_BUFFER_EMPTY;
+#endif
+ // TODO: check dependencies on RR1_ALL_SENT and (re)move this setting
+ m_rr1 |= RR1_ALL_SENT; // It is a don't care in the SCC user manual
+
+ // reset external lines TODO: check relation to control bits and reset
+ set_rts(1);
+ set_dtr(1);
+
+ // reset interrupts
+ if (m_index == z80scc_device::CHANNEL_A)
+ {
+ m_uart->reset_interrupts();
+ }
+}
+
+void z80scc_channel::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
+{
+ device_serial_interface::device_timer(timer, id, param, ptr);
+}
+
+
+//-------------------------------------------------
+// tra_callback -
+//-------------------------------------------------
+
+void z80scc_channel::tra_callback()
+{
+ if (!(m_wr5 & WR5_TX_ENABLE))
+ {
+ LOG(("%" I64FMT "d %s() \"%s \"Channel %c transmit mark 1 m_wr5:%02x\n", machine().firstcpu->total_cycles(), FUNCNAME, m_owner->tag(), 'A' + m_index, m_wr5));
+ // transmit mark
+ if (m_index == z80scc_device::CHANNEL_A)
+ m_uart->m_out_txda_cb(1);
+ else
+ m_uart->m_out_txdb_cb(1);
+ }
+ else if (m_wr5 & WR5_SEND_BREAK)
+ {
+ LOG(("%" I64FMT "d %s() \"%s \"Channel %c send break 1 m_wr5:%02x\n", machine().firstcpu->total_cycles(), FUNCNAME, m_owner->tag(), 'A' + m_index, m_wr5));
+ // transmit break
+ if (m_index == z80scc_device::CHANNEL_A)
+ m_uart->m_out_txda_cb(0);
+ else
+ m_uart->m_out_txdb_cb(0);
+ }
+ else if (!is_transmit_register_empty())
+ {
+ int db = transmit_register_get_data_bit();
+
+ LOG(("%" I64FMT "d %s() \"%s \"Channel %c transmit data bit %d m_wr5:%02x\n", machine().firstcpu->total_cycles(), FUNCNAME, m_owner->tag(), 'A' + m_index, db, m_wr5));
+ // transmit data
+ if (m_index == z80scc_device::CHANNEL_A)
+ m_uart->m_out_txda_cb(db);
+ else
+ m_uart->m_out_txdb_cb(db);
+ }
+ else
+ {
+ LOG(("%" I64FMT "d %s() \"%s \"Channel %c Failed to transmit m_wr5:%02x\n", machine().firstcpu->total_cycles(), FUNCNAME, m_owner->tag(), 'A' + m_index, m_wr5));
+ logerror("%s \"%s \"Channel %c Failed to transmit\n", FUNCNAME, m_owner->tag(), 'A' + m_index);
+ }
+}
+
+
+//-------------------------------------------------
+// tra_complete -
+//-------------------------------------------------
+
+void z80scc_channel::tra_complete()
+{
+ if ((m_wr5 & WR5_TX_ENABLE) && !(m_wr5 & WR5_SEND_BREAK) && !(m_rr0 & RR0_TX_BUFFER_EMPTY))
+ {
+ LOG(("%" I64FMT "d %s() \"%s \"Channel %c Transmit Data Byte '%02x' m_wr5:%02x\n", machine().firstcpu->total_cycles(), FUNCNAME, m_owner->tag(), 'A' + m_index, m_tx_data, m_wr5));
+
+ transmit_register_setup(m_tx_data);
+
+ // empty transmit buffer
+ m_rr0 |= RR0_TX_BUFFER_EMPTY;
+
+ if (m_wr1 & WR1_TX_INT_ENABLE)
+ m_uart->trigger_interrupt(m_index, INT_TRANSMIT);
+ }
+ else if (m_wr5 & WR5_SEND_BREAK)
+ {
+ LOG(("%" I64FMT "d %s() \"%s \"Channel %c Transmit Break 0 m_wr5:%02x\n", machine().firstcpu->total_cycles(), FUNCNAME, m_owner->tag(), 'A' + m_index, m_wr5));
+ // transmit break
+ if (m_index == z80scc_device::CHANNEL_A)
+ m_uart->m_out_txda_cb(0);
+ else
+ m_uart->m_out_txdb_cb(0);
+ }
+ else
+ {
+ LOG(("%" I64FMT "d %s() \"%s \"Channel %c Transmit Mark 1 m_wr5:%02x\n", machine().firstcpu->total_cycles(), FUNCNAME, m_owner->tag(), 'A' + m_index, m_wr5));
+ // transmit mark
+ if (m_index == z80scc_device::CHANNEL_A)
+ m_uart->m_out_txda_cb(1);
+ else
+ m_uart->m_out_txdb_cb(1);
+ }
+
+ // if transmit buffer is empty
+ if (m_rr0 & RR0_TX_BUFFER_EMPTY)
+ {
+ LOG(("%" I64FMT "d %s() \"%s \"Channel %c Transmit buffer empty m_wr5:%02x\n", machine().firstcpu->total_cycles(), FUNCNAME, m_owner->tag(), 'A' + m_index, m_wr5));
+ // then all characters have been sent
+ m_rr1 |= RR1_ALL_SENT;
+
+ // when the RTS bit is reset, the _RTS output goes high after the transmitter empties
+ if (!m_rts)
+ set_rts(1);
+ }
+}
+
+
+//-------------------------------------------------
+// rcv_callback -
+//-------------------------------------------------
+
+void z80scc_channel::rcv_callback()
+{
+ if (m_wr3 & WR3_RX_ENABLE)
+ {
+ receive_register_update_bit(m_rxd);
+ }
+#if 1
+ else
+ {
+ LOG(("%" I64FMT "d %s() \"%s \"Channel %c Received Data Bit but receiver is disabled\n", machine().firstcpu->total_cycles(), FUNCNAME, m_owner->tag(), 'A' + m_index));
+ logerror("Z80SCC %s() \"%s \"Channel %c Received data dit but receiver is disabled\n", __func__, m_owner->tag(), 'A' + m_index);
+ }
+#endif
+}
+
+
+//-------------------------------------------------
+// rcv_complete -
+//-------------------------------------------------
+
+void z80scc_channel::rcv_complete()
+{
+ UINT8 data;
+
+ receive_register_extract();
+ data = get_received_char();
+ LOG(("%" I64FMT "d %s() \"%s \"Channel %c Received Data %c\n", machine().firstcpu->total_cycles(), FUNCNAME, m_owner->tag(), 'A' + m_index, data));
+ receive_data(data);
+}
+
+
+//-------------------------------------------------
+// get_clock_mode - get clock divisor
+//-------------------------------------------------
+
+int z80scc_channel::get_clock_mode()
+{
+ int clocks = 1;
+
+ switch (m_wr4 & WR4_CLOCK_RATE_MASK)
+ {
+ case WR4_CLOCK_RATE_X1: clocks = 1; break;
+ case WR4_CLOCK_RATE_X16: clocks = 16; break;
+ case WR4_CLOCK_RATE_X32: clocks = 32; break;
+ case WR4_CLOCK_RATE_X64: clocks = 64; break;
+ }
+
+ return clocks;
+}
+
+/* From Zilog SCC/ESCC USers manual, UM010902-0609:
+"/RTSA, /RTSB. Request To Send (outputs, active Low). The /RTS pins can be used as generalpurpose
+outputs or with the Auto Enable feature. When used with Auto Enable ON (WR3, D5=1)
+in asynchronous mode, the /RTS pin goes High after the transmitter is empty. When Auto Enable
+is OFF, the /RTS pins are used as general-purpose outputs, and, they strictly follow the inverse
+state of WR5, bit D1.
+ESCC and 85C30: In SDLC mode, the /RTS pins can be programmed to be deasserted when the closing
+flag of the message clears the TxD pin, if WR7' D2 is set."
+TODO:
+- SDLC mode behaviour for ESCC/85C30
+*/
+void z80scc_channel::set_rts(int state)
+{
+ LOG(("%s(%d) \"%s\": %c \n", FUNCNAME, state, m_owner->tag(), 'A' + m_index));
+ if (m_index == z80scc_device::CHANNEL_A)
+ m_uart->m_out_rtsa_cb(state);
+ else
+ m_uart->m_out_rtsb_cb(state);
+}
+
+void z80scc_channel::update_rts()
+{
+// LOG(("%s(%d) \"%s\": %c \n", FUNCNAME, state, m_owner->tag(), 'A' + m_index));
+ if (m_wr5 & WR5_RTS)
+ {
+ // when the RTS bit is set, the _RTS output goes low
+ set_rts(0);
+ m_rts = 1;
+ }
+ else
+ {
+ // when the RTS bit is reset, the _RTS output goes high after the transmitter empties
+ m_rts = 0;
+ }
+
+ // data terminal ready output follows the state programmed into the DTR bit*/
+ set_dtr((m_wr5 & WR5_DTR) ? 0 : 1);
+}
+
+//-------------------------------------------------
+// get_stop_bits - get number of stop bits
+//-------------------------------------------------
+
+device_serial_interface::stop_bits_t z80scc_channel::get_stop_bits()
+{
+ switch (m_wr4 & WR4_STOP_BITS_MASK)
+ {
+ case WR4_STOP_BITS_1: return STOP_BITS_1;
+ case WR4_STOP_BITS_1_5: return STOP_BITS_1_5;
+ case WR4_STOP_BITS_2: return STOP_BITS_2;
+ }
+
+ return STOP_BITS_0;
+}
+
+
+//-------------------------------------------------
+// get_rx_word_length - get receive word length
+//-------------------------------------------------
+
+int z80scc_channel::get_rx_word_length()
+{
+ int bits = 5;
+
+ switch (m_wr3 & WR3_RX_WORD_LENGTH_MASK)
+ {
+ case WR3_RX_WORD_LENGTH_5: bits = 5; break;
+ case WR3_RX_WORD_LENGTH_6: bits = 6; break;
+ case WR3_RX_WORD_LENGTH_7: bits = 7; break;
+ case WR3_RX_WORD_LENGTH_8: bits = 8; break;
+ }
+
+ return bits;
+}
+
+
+//-------------------------------------------------
+// get_tx_word_length - get transmit word length
+//-------------------------------------------------
+
+int z80scc_channel::get_tx_word_length()
+{
+ int bits = 5;
+
+ switch (m_wr5 & WR5_TX_WORD_LENGTH_MASK)
+ {
+ case WR5_TX_WORD_LENGTH_5: bits = 5; break;
+ case WR5_TX_WORD_LENGTH_6: bits = 6; break;
+ case WR5_TX_WORD_LENGTH_7: bits = 7; break;
+ case WR5_TX_WORD_LENGTH_8: bits = 8; break;
+ }
+
+ return bits;
+}
+
+/*
+ * This register contains the status of the receive and transmit buffers; the
+ * DCD, CTS, and SYNC inputs; the Transmit Underrun/EOM latch; and the
+ * Break/Abort latch. */
+UINT8 z80scc_channel::do_sccreg_rr0()
+{
+ LOG(("%s %s\n",FUNCNAME, tag()));
+ return m_rr0;
+}
+
+/*
+ * This register contains the Special Receive condition status bits and Residue
+ * codes for the I-Field in the SDLC Receive Mode. */
+UINT8 z80scc_channel::do_sccreg_rr1()
+{
+ LOG(("%s %s\n",FUNCNAME, tag()));
+ return m_rr1;
+}
+
+/* From Zilog SCC/ESCC USers manual, UM010902-0609:
+"RR2 contains the interrupt vector written into WR2. When the register is accessed in Channel A,
+the vector returned is the vector actually stored in WR2. When this register is accessed in Channel
+B, the vector returned includes status information in bits 1, 2 and 3 or in bits 6, 5 and 4, depending
+on the state of the Status High/Status Low bit in WR9 and independent of the state of the VIS bit
+in WR9."*/
+UINT8 z80scc_channel::do_sccreg_rr2()
+{
+ LOG(("Z80SCC %s()\n", __func__));
+
+ // Assume the unmodified in polled mode
+ m_rr2 = m_uart->m_chanA->m_wr2;
+
+ // If we are chan B we have to modify the vector regardless of the VIS bit
+ if (m_index == z80scc_device::CHANNEL_B)
+ {
+ // loop over all interrupt sources
+ for (int i = 0; i < 6; i++)
+ {
+ // find the first channel with an interrupt requested
+ if (m_uart->m_int_state[i] & Z80_DAISY_INT)
+ {
+ m_rr2 = m_uart->modify_vector(m_rr2, i < 3 ? z80scc_device::CHANNEL_A : z80scc_device::CHANNEL_B, i & 3);
+ break;
+ }
+ }
+ }
+ return m_rr2;
+}
+
+/* From Zilog SCC/ESCC USers manual, UM010902-0609:
+RR3 is the interrupt Pending register. The status of each of the interrupt Pending bits in the SCC is
+reported in this register. This register exists only in Channel A. If this register is accessed in Channel
+B, all 0s are returned. The two unused bits are always returned as 0. Figure displays the bit positions for RR3."
+*/
+UINT8 z80scc_channel::do_sccreg_rr3()
+{
+ LOG(("Z80SCC %s()\n", __func__));
+ return m_rr3; // TODO Update all bits of this status register
+}
+
+
+/* (ESCC and 85C30 Only) */
+/*On the ESCC, Read Register 4 reflects the contents of Write Register 4 provided the Extended
+ Read option is enabled. Otherwise, this register returns an image of RR0. On the NMOS/CMOS version,
+ a read to this location returns an image of RR0.*/
+UINT8 z80scc_channel::do_sccreg_rr4()
+{
+ LOG(("Z80SCC %s()\n", __func__));
+ if (m_uart->m_variant & (SET_ESCC | z80scc_device::TYPE_SCC85C30))
+ return (BIT(m_wr7, 6) ? m_wr4 : m_rr0);
+ else
+ return m_rr0;
+}
+
+ /* (ESCC and 85C30 Only) */
+/*On the ESCC, Read Register 5 reflects the contents of Write Register 5 provided the Extended
+ Read option is enabled. Otherwise, this register returns an image of RR1. On the NMOS/CMOS version,
+ a read to this register returns an image of RR1.*/
+UINT8 z80scc_channel::do_sccreg_rr5()
+{
+ LOG(("Z80SCC %s()\n", __func__));
+ if (m_uart->m_variant & (SET_ESCC | z80scc_device::TYPE_SCC85C30))
+ return BIT(m_wr7, 6) ? m_wr5 : m_rr1;
+ else
+ return m_rr1;
+}
+
+/* (not on NMOS)
+ On the CMOS and ESCC, Read Register 6 contains the least significant byte of the frame byte
+ count that is currently at the top of the Status FIFO. RR6 is displayed in Figure on page 183. This
+ register is readable only if the FIFO is enabled (refer to the description Write Register 15, bit D2,
+ and SDLC Frame Status FIFO on page 126). Otherwise, this register is an image of RR2.
+ On the NMOS version, a read to this register location returns an image of RR2.*/
+UINT8 z80scc_channel::do_sccreg_rr6()
+{
+ LOG(("Z80SCC %s()\n", __func__));
+ if (!(m_uart->m_variant & (SET_NMOS)))
+ {
+ logerror("Z80SCC %s() not implemented feature\n", __func__);
+ return 0;
+ }
+ return m_rr2;
+}
+
+/* (not on NMOS)
+ On the CMOS and ESCC, Read Register 7 contains the most significant six bits of the frame byte
+ count that is currently at the top of the Status FIFO. Bit D7 is the FIFO Overflow Status and bit D6
+ is the FIFO Data Available Status. The status indications are given in Table on page 184. RR7 is
+ displayed in Figure on page 183. This register is readable only if the FIFO is enabled (refer to the
+ description Write Register 15, bit D2). Otherwise this register is an image of RR3. Note, for proper
+ operation of the FIFO and byte count logic, the registers should be read in the following order:
+ RR7, RR6, RR1.*/
+UINT8 z80scc_channel::do_sccreg_rr7()
+{
+ LOG(("Z80SCC %s()\n", __func__));
+ if (!(m_uart->m_variant & (SET_NMOS)))
+ {
+ logerror("Z80SCC %s() not implemented feature\n", __func__);
+ return 0;
+ }
+ return m_rr3;
+}
+
+#if 0 // Short cutted in control_read()
+/* RR8 is the Receive Data register. */
+UINT8 z80scc_channel::do_sccreg_rr8()
+{
+ return data_read():
+}
+#endif
+
+/* (ESCC and 85C30 Only)
+ On the ESCC, Read Register 9 reflects the contents of Write Register 3 provided the Extended
+ Read option has been enabled. On the NMOS/CMOS version, a read to this location returns an image
+ of RR13. TODO: Check what is returned if Extended Read option is turned off */
+UINT8 z80scc_channel::do_sccreg_rr9()
+{
+ LOG(("Z80SCC %s()\n", __func__));
+ if (m_uart->m_variant & (SET_ESCC | z80scc_device::TYPE_SCC85C30))
+ return BIT(m_wr7, 6) ? m_wr3 : m_rr13;
+ else
+ return m_rr13;
+}
+
+/* RR10 contains some SDLC related miscellaneous status bits. Unused bits are always 0. */
+UINT8 z80scc_channel::do_sccreg_rr10()
+{
+ LOG(("Z80SCC %s()\n", __func__));
+ logerror("Z80SCC %s() not implemented feature\n", __func__);
+ return m_rr10;
+}
+
+/* (ESCC and 85C30 Only)
+ On the ESCC, Read Register 11 reflects the contents of Write Register 10 provided the Extended
+ Read option has been enabled. Otherwise, this register returns an image of RR15.
+ On the NMOS/CMOS version, a read to this location returns an image of RR15.*/
+UINT8 z80scc_channel::do_sccreg_rr11()
+{
+ LOG(("Z80SCC %s()\n", __func__));
+ if (m_uart->m_variant & (SET_ESCC | z80scc_device::TYPE_SCC85C30))
+ return BIT(m_wr7, 6) ? m_wr10 : m_rr15;
+ else
+ return m_rr15;
+}
+
+/*
+ RR12 returns the value stored in WR12, the lower byte of the time constant, for the BRG.*/
+UINT8 z80scc_channel::do_sccreg_rr12()
+{
+ return m_wr12;
+}
+
+/*
+ RR13 returns the value stored in WR13, the upper byte of the time constant for the BRG. */
+UINT8 z80scc_channel::do_sccreg_rr13()
+{
+ return m_wr13;
+}
+
+/* (ESCC and 85C30 Only)
+On the ESCC, Read Register 14 reflects the contents of Write Register 7 Prime provided the
+Extended Read option has been enabled. Otherwise, this register returns an image of RR10.
+On the NMOS/CMOS version, a read to this location returns an image of RR10.*/
+UINT8 z80scc_channel::do_sccreg_rr14()
+{
+ LOG(("Z80SCC %s()\n", __func__));
+ if (m_uart->m_variant & (SET_ESCC | z80scc_device::TYPE_SCC85C30))
+ return BIT(m_wr7, 6) ? m_wr7 : m_rr10;
+ else
+ return m_rr10;
+}
+
+/*
+ RR15 reflects the value stored in WR15, the External/Status IE bits. The two unused bits are
+ always returned as Os. */
+UINT8 z80scc_channel::do_sccreg_rr15()
+{
+ LOG(("Z80SCC %s()\n", __func__));
+ logerror("Z80SCC %s() not implemented feature\n", __func__);
+ return m_wr15 & 0xf5; // Mask out the used bits
+}
+
+//-------------------------------------------------
+// control_read - read control register
+//-------------------------------------------------
+UINT8 z80scc_channel::control_read()
+{
+ UINT8 data = 0;
+ int reg = m_uart->m_wr0_ptrbits; //m_wr0;
+ int regmask = (WR0_REGISTER_MASK | (m_uart->m_wr0_ptrbits & WR0_POINT_HIGH));
+
+ // LOG(("%s(%02x) reg %02x, regmask %02x, WR0 %02x\n", __func__, data, reg, regmask, m_wr0));
+ m_uart->m_wr0_ptrbits = 0;
+ reg &= regmask;
+
+ if (reg != 0)
+ {
+ // mask out register index
+ m_wr0 &= ~regmask;
+ }
+
+ /* TODO. Sort out 80X30 limitations in register access */
+ switch (reg)
+ {
+ case REG_RR0_STATUS: data = do_sccreg_rr0(); break; // TODO: verify handling of SCC specific bits: D6 and D1
+ case REG_RR1_SPEC_RCV_COND: data = do_sccreg_rr1(); break;
+ case REG_RR2_INTERRUPT_VECT: data = do_sccreg_rr2(); break; // Channel dependent and SCC specific handling compared to SIO
+ /* registers 3-7 are specific to SCC. TODO: Check variant and log/stop misuse */
+ case REG_RR3_INTERUPPT_PEND: data = do_sccreg_rr3(); break;
+ case REG_RR4_WR4_OR_RR0: data = do_sccreg_rr4(); break;
+ case REG_RR5_WR5_OR_RR0: data = do_sccreg_rr5(); break;
+ case REG_RR6_LSB_OR_RR2: data = do_sccreg_rr6(); break;
+ case REG_RR7_MSB_OR_RR3: data = do_sccreg_rr7(); break;
+ /* registers 8-15 are specific to SCC */
+ case REG_RR8_RECEIVE_DATA: data = data_read(); break;
+ case REG_RR9_WR3_OR_RR13: data = do_sccreg_rr9(); break;
+ case REG_RR10_MISC_STATUS: data = do_sccreg_rr10(); break;
+ case REG_RR11_WR10_OR_RR15: data = do_sccreg_rr11(); break;
+ case REG_RR12_LO_TIME_CONST: data = do_sccreg_rr12(); break;
+ case REG_RR13_HI_TIME_CONST: data = do_sccreg_rr13(); break;
+ case REG_RR14_WR7_OR_R10: data = do_sccreg_rr14(); break;
+ case REG_RR15_WR15_EXT_STAT: data = do_sccreg_rr15(); break;
+ default:
+ logerror("Z80SCC \"%s\" %s: %c : Unsupported RRx register:%02x\n", m_owner->tag(), __func__, 'A' + m_index, reg);
+ }
+
+ //LOG(("Z80SCC \"%s\": %c : Register R%d read '%02x'\n", m_owner->tag(), 'A' + m_index, reg, data));
+ return data;
+}
+
+/* CRC Initialization Code handling - candidate for breaking out in a z80sio_base class
+ Handle the WR0 CRC Reset/Init bits separatelly, needed by derived devices separatelly from the commands */
+void z80scc_channel::do_sccreg_wr0_resets(UINT8 data)
+{
+ LOG(("%s(%02x) %s",FUNCNAME, data, tag()));
+ switch (data & WR0_CRC_RESET_CODE_MASK)
+ {
+ case WR0_CRC_RESET_NULL:
+ LOG((" CRC_RESET_NULL\n"));
+ break;
+ case WR0_CRC_RESET_RX: /* In Synchronous mode: all Os (zeros) (CCITT-O CRC-16) */
+ LOG((" CRC_RESET_RX - not implemented\n"));
+ break;
+ case WR0_CRC_RESET_TX: /* In HDLC mode: all 1s (ones) (CCITT-1) */
+ LOG((" CRC_RESET_TX - not implemented\n"));
+ break;
+ case WR0_CRC_RESET_TX_UNDERRUN: /* Resets Tx underrun/EOM bit (D6 of the SRO register) */
+ LOG((" CRC_RESET_TX_UNDERRUN - not implemented\n"));
+ break;
+ default: /* Will not happen unless someone messes with the mask */
+ logerror(" Wrong CRC reset/init command:%02x\n", data & WR0_CRC_RESET_CODE_MASK);
+ }
+}
+
+/**/
+void z80scc_channel::do_sccreg_wr0(UINT8 data)
+{
+ m_wr0 = data;
+ m_uart->m_wr0_ptrbits = data & WR0_REGISTER_MASK;
+
+ /* Sort out SCC specific behaviours from legacy SIO behaviour */
+ /* WR0_Z_* are Z80X30 specific commands */
+ switch (data & WR0_COMMAND_MASK)
+ {
+ case WR0_POINT_HIGH:
+ /*This command effectively adds eight to the Register Pointer (D2-D0) by allowing
+ WR8 through WR15 to be accessed. The Point High command and the Register
+ Pointer bits are written simultaneously. This command is used in the Z85X30
+ 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)
+ {
+ LOG(("Z80SCC \"%s\" %s: %c : %s - Point High command\n", m_owner->tag(), __func__, 'A' + m_index, __func__));
+ //m_ph = 8;
+ m_uart->m_wr0_ptrbits |= 8;
+ }
+ else
+ LOG(("Z80SCC \"%s\" %s: %c : %s - NULL command 2\n", m_owner->tag(), __func__, 'A' + m_index, __func__));
+ break;
+ case WR0_RESET_EXT_STATUS: // TODO: Take care of the Zero Count flag and the 2 slot fifo
+ /*After an External/Status interrupt (a change on a modem line or a break condition,
+ for example), the status bits in RR0 are latched. This command re-enables the bits
+ and allows interrupts to occur again as a result of a status change. Latching the
+ status bits captures short pulses until the CPU has time to read the change.
+ The SCC contains simple queueing logic associated with most of the external status
+ bits in RR0. If another External/Status condition changes while a previous condition
+ is still pending (Reset External/Status Interrupt has not yet been issued) and this
+ condition persists until after the command is issued, this second change causes another
+ External/Status interrupt. However, if this second status change does not persist
+ (there are two transitions), another interrupt is not generated. Exceptions to this
+ rule are detailed in the RR0 description.*/
+ // do_sccreg_wr0(data);
+ if (!m_zc)
+ {
+ m_rr0 |= RR0_ZC;
+ }
+ LOG(("Z80SCC \"%s\" %s: %c : %s - Reset External/Status Interrupt\n", m_owner->tag(), __func__, 'A' + m_index, __func__));
+ break;
+ case WR0_RESET_HIGHEST_IUS:
+ /* This command resets the highest priority Interrupt Under Service (IUS) bit, allowing lower
+ 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.TODO: Implement internal Daisychain */
+ LOG(("Z80SCC \"%s\" %s: %c : Reset Highest IUS\n", m_owner->tag(), __func__, 'A' + m_index));
+ break;
+ case WR0_ERROR_RESET:
+ /*Error Reset Command (110). This command resets the error bits in RR1. If interrupt on first Rx
+ Character or Interrupt on Special Condition modes is selected and a special condition exists, the
+ data with the special condition is held in the Receive FIFO until this command is issued. If either
+ of these modes is selected and this command is issued before the data has been read from the
+ Receive FIFO, the data is lost */
+ LOG(("Z80SCC \"%s\" %s: %c : WR0_ERROR_RESET\n", m_owner->tag(), __func__, 'A' + m_index));
+ //do_sccreg_wr0(data); // reset status registers
+ m_rx_fifo_rp_step(); // Reset error state in fifo and unlock it. unlock == step to next slot in fifo.
+ break;
+ case WR0_SEND_ABORT:
+ data &= 0xef; // convert SCC SEND_ABORT command to a SIO SEND_ABORT command and fall through
+ /* The following commands relies on the SIO default behviour */
+ case WR0_NULL:
+ LOG(("Z80SCC \"%s\" Channel %c : Null\n", m_owner->tag(), 'A' + m_index));
+ break;
+ case WR0_ENABLE_INT_NEXT_RX:
+ // enable interrupt on next receive character
+ LOG(("Z80SCC \"%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(("Z80SCC \"%s\" Channel %c : Reset Transmitter Interrupt Pending\n", m_owner->tag(), 'A' + m_index));
+ logerror("Z80SCC \"%s\" Channel %c : unsupported command: Reset Transmitter Interrupt Pending\n", m_owner->tag(), 'A' + m_index);
+ break;
+ default:
+ break;
+ // do_sioreg_wr0(data);
+ }
+ do_sccreg_wr0_resets(data);
+
+ if ( m_uart->m_variant & SET_Z85X3X)
+ {
+ m_uart->m_wr0_ptrbits |= (m_wr0 & (WR0_REGISTER_MASK));
+ }
+ else if ( m_uart->m_variant & SET_Z80X30) // TODO: Implement adress decoding for Z80X30 using the shift logic described below
+ {
+ /*The registers in the Z80X30 are addressed via the address on AD7-AD0 and are latched by the rising
+ edge of /AS. The Shift Right/Shift Left bit in the Channel B WR0 controls which bits are
+ decoded to form the register address. It is placed in this register to simplify programming when the
+ current state of the Shift Right/Shift Left bit is not known.
+ A hardware reset forces Shift Left mode where the address is decoded from AD5-AD1. In Shift
+ Right mode, the address is decoded from AD4-AD0. The Shift Right/Shift Left bit is written via a
+ command to make the software writing to WR0 independent of the state of the Shift Right/Shift
+ Left bit.
+ While in the Shift Left mode, the register address is placed on AD4-AD1 and the Channel Select
+ bit, A/B, is decoded from AD5. The register map for this case is listed in Table on page 21. In
+ Shift Right mode, the register address is again placed on AD4-AD1 but the channel select A/B is
+ decoded from AD0. The register map for this case is listed in Table on page 23.
+ Because the Z80X30 does not contain 16 read registers, the decoding of the read registers is not
+ complete; this is listed in Table on page 21 and Table on page 23 by parentheses around the register
+ name. These addresses may also be used to access the read registers. Also, note that the
+ Z80X30 contains only one WR2 and WR9; these registers may be written from either channel.
+ Shift Left Mode is used when Channel A and B are to be programmed differently. This allows the
+ software to sequence through the registers of one channel at a time. The Shift Right Mode is used
+ when the channels are programmed the same. By incrementing the address, the user can program
+ the same data value into both the Channel A and Channel B register.*/
+ switch(data & WR0_Z_SHIFT_MASK)
+ {
+ case WR0_Z_SEL_SHFT_LEFT:
+ LOG(("Z80SCC \"%s\": %c : %s - Shift Left Addressing Mode - not implemented\n", m_owner->tag(), 'A' + m_index, __func__));
+ break;
+ case WR0_Z_SEL_SHFT_RIGHT:
+ LOG(("Z80SCC \"%s\": %c : %s - Shift Right Addressing Mode - not implemented\n", m_owner->tag(), 'A' + m_index, __func__));
+ break;
+ default:
+ break;
+ // LOG(("Z80SCC \"%s\": %c : %s - Null commands\n", m_owner->tag(), 'A' + m_index, __func__));
+ }
+ }
+}
+
+/* Write Register 1 is the control register for the various SCC interrupt and Wait/Request modes.*/
+void z80scc_channel::do_sccreg_wr1(UINT8 data)
+{
+ LOG(("%s(%02x) \"%s\": %c : %s - %02x\n", FUNCNAME, data, m_owner->tag(), 'A' + m_index, __func__, data));
+ /* TODO: Sort out SCC specific behaviours from legacy SIO behaviours:
+ - Channel B only bits vs
+ - Parity Is Special Condition, bit2 */
+ m_wr1 = data;
+ LOG(("- External Interrupt Enable %u\n", (data & WR1_EXT_INT_ENABLE) ? 1 : 0));
+ LOG(("- Transmit Interrupt Enable %u\n", (data & WR1_TX_INT_ENABLE) ? 1 : 0));
+ LOG(("- Parity is special condition %u\n", (data & WR1_PARITY_IS_SPEC_COND) ? 1 : 0));
+ LOG(("- Wait/Ready Enable %u\n", (data & WR1_WRDY_ENABLE) ? 1 : 0));
+ LOG(("- Wait/Ready Function %s\n", (data & WR1_WRDY_FUNCTION) ? "Ready" : "Wait"));
+ LOG(("- Wait/Ready on %s\n", (data & WR1_WRDY_ON_RX_TX) ? "Receive" : "Transmit"));
+
+ switch (data & WR1_RX_INT_MODE_MASK)
+ {
+ case WR1_RX_INT_DISABLE:
+ LOG(("- Receiver Interrupt Disabled\n"));
+ break;
+
+ case WR1_RX_INT_FIRST:
+ LOG(("- Receiver Interrupt on First Character\n"));
+ break;
+
+ case WR1_RX_INT_ALL_PARITY:
+ LOG(("- Receiver Interrupt on All Characters, Parity Affects Vector\n"));
+ break;
+
+ case WR1_RX_INT_ALL:
+ LOG(("- Receiver Interrupt on All Characters\n"));
+ break;
+ }
+ m_uart->check_interrupts();
+}
+
+/*WR2 is the interrupt vector register. Only one vector register exists in the SCC, and it can be
+accessed through either channel. The interrupt vector can be modified by status information. This
+is controlled by the Vector Includes Status (VIS) and the Status High/Status Low bits in WR9.*/
+void z80scc_channel::do_sccreg_wr2(UINT8 data)
+{
+ LOG(("%s(%d) Setting the interrupt vector\n", FUNCNAME, data));
+ m_wr2 = data;
+ m_uart->m_chanA->m_rr2 = data;
+ m_uart->m_chanB->m_rr2 = data; /* TODO: Sort out the setting of ChanB depending on bits in WR9 */
+
+ m_uart->check_interrupts();
+}
+
+void z80scc_channel::do_sccreg_wr3(UINT8 data)
+{
+ LOG(("%s(%d) Setting up the receiver\n", FUNCNAME, data));
+ m_wr3 = data;
+ LOG(("- Receiver Enable %u\n", (data & WR3_RX_ENABLE) ? 1 : 0));
+ LOG(("- Auto Enables %u\n", (data & WR3_AUTO_ENABLES) ? 1 : 0));
+ LOG(("- Receiver Bits/Character %u\n", get_rx_word_length()));
+}
+
+void z80scc_channel::do_sccreg_wr4(UINT8 data)
+{
+ LOG(("%s(%d) Setting up asynchronous frame format and clock\n", FUNCNAME, data));
+ m_wr4 = data;
+ LOG(("- Parity Enable %u\n", (data & WR4_PARITY_ENABLE) ? 1 : 0));
+ LOG(("- Parity %s\n", (data & WR4_PARITY_EVEN) ? "Even" : "Odd"));
+ LOG(("- Stop Bits %s\n", stop_bits_tostring(get_stop_bits())));
+ LOG(("- Clock Mode %uX\n", get_clock_mode()));
+}
+
+void z80scc_channel::do_sccreg_wr5(UINT8 data)
+{
+ LOG(("%s(%d) Setting up the transmitter\n", FUNCNAME, data));
+ m_wr5 = data;
+ LOG(("- Transmitter Enable %u\n", (data & WR5_TX_ENABLE) ? 1 : 0));
+ LOG(("- Transmitter Bits/Character %u\n", get_tx_word_length()));
+ LOG(("- Send Break %u\n", (data & WR5_SEND_BREAK) ? 1 : 0));
+ LOG(("- Request to Send %u\n", (data & WR5_RTS) ? 1 : 0));
+ LOG(("- Data Terminal Ready %u\n", (data & WR5_DTR) ? 1 : 0));
+}
+
+void z80scc_channel::do_sccreg_wr6(UINT8 data)
+{
+ LOG(("%s(%d) Transmit sync\n", FUNCNAME, data));
+ m_sync = (m_sync & 0xff00) | data;
+}
+
+void z80scc_channel::do_sccreg_wr7(UINT8 data)
+{
+ LOG(("%s(%d) Receive sync\n", FUNCNAME, data));
+ m_sync = (data << 8) | (m_sync & 0xff);
+}
+
+/* WR8 is the transmit buffer register */
+void z80scc_channel::do_sccreg_wr8(UINT8 data)
+{
+ LOG(("%s(%d) \"%s\": %c : Transmit Buffer read %02x\n", FUNCNAME, data, m_owner->tag(), 'A' + m_index, data));
+ data_write(data);
+}
+
+/*WR9 is the Master Interrupt Control register and contains the Reset command bits. Only one WR9
+exists in the SCC and is accessed from either channel. The Interrupt control bits are programmed
+at the same time as the Reset command, because these bits are only reset by a hardware reset
+note that the Z80X30 contains only one WR2 and WR9; these registers may be written from either channel.*/
+void z80scc_channel::do_sccreg_wr9(UINT8 data)
+{
+ if (m_uart->m_variant & SET_Z80X30)
+ {
+ m_uart->m_chanA->m_wr9 = data;
+ m_uart->m_chanB->m_wr9 = data;
+ }
+ else
+ m_wr9 = data;
+
+ switch (data & WR9_CMD_MASK)
+ {
+ case WR9_CMD_NORESET:
+ LOG(("Z80SCC \"%s\": %c : Master Interrupt Control - No reset %02x\n", m_owner->tag(), 'A' + m_index, data));
+ break;
+ case WR9_CMD_CHNB_RESET:
+ LOG(("Z80SCC \"%s\": %c : Master Interrupt Control - Channel B reset %02x\n", m_owner->tag(), 'A' + m_index, data));
+ m_uart->m_chanB->reset();
+ break;
+ case WR9_CMD_CHNA_RESET:
+ LOG(("Z80SCC \"%s\": %c : Master Interrupt Control - Channel A reset %02x\n", m_owner->tag(), 'A' + m_index, data));
+ m_uart->m_chanA->reset();
+ break;
+ case WR9_CMD_HW_RESET:
+ LOG(("Z80SCC \"%s\": %c : Master Interrupt Control - Device reset %02x\n", m_owner->tag(), 'A' + m_index, 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."
+ The Shift Right/Shift Left bits of the WR0 is only valid on SCC8030 device hence not implemented yet, just the SCC8530 */
+ if (data & (WR9_BIT_MIE | WR9_BIT_IACK | WR9_BIT_SHSL | WR9_BIT_DLC | WR9_BIT_NV))
+ logerror("Z80SCC: SCC Interrupt system not yet implemented, please be patient!\n");
+ m_uart->device_reset();
+ default:
+ logerror("Z80SCC Code is broken in WR9, please report!\n");
+ }
+}
+
+/* WR10 contains miscellaneous control bits for both the receiver and the transmitter. Bit positions
+for WR10 are displayed in Figure . On the ESCC and 85C30 with the Extended Read option
+enabled, this register may be read as RR11.*/
+void z80scc_channel::do_sccreg_wr10(UINT8 data)
+{
+ m_wr10 = data;
+ LOG(("Z80SCC \"%s\": %c : %s Misc Tx/Rx Control %02x - not implemented \n", m_owner->tag(), 'A' + m_index, __func__, data));
+}
+
+/* WR11 is the Clock Mode Control register. The bits in this register control the sources of both the
+receive and transmit clocks, the type of signal on the /SYNC and /RTxC pins, and the direction of
+the /TRxC pin.*/
+void z80scc_channel::do_sccreg_wr11(UINT8 data)
+{
+ LOG(("Z80SCC \"%s\": %c : %s Clock Mode Control %02x - not implemented \n", m_owner->tag(), 'A' + m_index, __func__, data));
+ m_wr11 = data;
+ /*Bit 7: This bit controls the type of input signal the SCC expects to see on the /RTxC pin. If this bit is set
+ to 0, the SCC expects a TTL-compatible signal as an input to this pin. If this bit is set to 1, the SCC
+ connects a high-gain amplifier between the /RTxC and /SYNC pins in expectation of a quartz
+ crystal being placed across the pins.
+ The output of this oscillator is available for use as a clocking source. In this mode of operation, the
+ /SYNC pin is unavailable for other use. The /SYNC signal is forced to zero internally. A hardware
+ reset forces /NO XTAL. (At least 20 ms should be allowed after this bit is set to allow the oscillator
+ to stabilize.)*/
+ LOG((" Clock type %s\n", data & WR11_RCVCLK_TYPE ? "Crystal oscillator between RTxC and /SYNC pins" : "TTL level on RTxC pin"));
+ /*Bits 6 and 5: Receiver Clock select bits 1 and 0
+ These bits determine the source of the receive clock as listed below. They do not
+ interfere with any of the modes of operation in the SCC, but simply control a multiplexer just
+ before the internal receive clock input. A hardware reset forces the receive clock to come from the
+ /RTxC pin.*/
+ LOG((" Receive clock source is: "));
+ switch (data & WR11_RCVCLK_SRC_MASK)
+ {
+ case WR11_RCVCLK_SRC_RTXC: LOG(("RTxC\n")); break;
+ case WR11_RCVCLK_SRC_TRXC: LOG(("TRxC\n")); break;
+ case WR11_RCVCLK_SRC_BR: LOG(("Baudrate Generator\n")); break;
+ case WR11_RCVCLK_SRC_DPLL: LOG(("DPLL\n")); break;
+ default: logerror("Wrong!\n");/* Will not happen unless someone messes with the mask */
+ }
+ /*Bits 4 and 3: Transmit Clock select bits 1 and 0.
+ These bits determine the source of the transmit clock as listed in Table . They do not interfere with
+ any of the modes of operation of the SCC, but simply control a multiplexer just before the internal
+ transmit clock input. The DPLL output that is used to feed the transmitter in FM modes lags by 90
+ degrees the output of the DPLL used by the receiver. This makes the received and transmitted bit
+ cells occur simultaneously, neglecting delays. A hardware reset selects the /TRxC pin as the
+ source of the transmit clocks.*/
+ LOG((" Transmit clock source is: "));
+ switch (data & WR11_TRACLK_SRC_MASK)
+ {
+ case WR11_TRACLK_SRC_RTXC: LOG(("RTxC\n")); break;
+ case WR11_TRACLK_SRC_TRXC: LOG(("TRxC\n")); break;
+ case WR11_TRACLK_SRC_BR: LOG(("Baudrate Generator\n")); break;
+ case WR11_TRACLK_SRC_DPLL: LOG(("DPLL\n")); break;
+ default: logerror("Wrong!\n");/* Will not happen unless someone messes with the mask */
+ }
+ /* Bit 2: TRxC Pin I/O control bit
+ This bit determines the direction of the /TRxC pin. If this bit is set to 1, the /TRxC pin is an output
+ and carries the signal selected by D1 and D0 of this register. However, if either the receive or the
+ transmit clock is programmed to come from the /TRxC pin, /TRxC is an input, regardless of the
+ state of this bit. The /TRxC pin is also an input if this bit is set to 0. A hardware reset forces this bit
+ to 0.*/
+ LOG((" TRxC pin is %s\n", data & WR11_TRXC_DIRECTION ? "Output" : "Input"));
+ /*Bits 1 and 0: /TRxC Output Source select bits 1 and 0
+ These bits determine the signal to be echoed out of the SCC via the /TRxC pin as listed in Table
+ on page 167. No signal is produced if /TRxC has been programmed as the source of either the
+ receive or the transmit clock. If /TRxC O/I (bit 2) is set to 0, these bits are ignored.
+ If the XTAL oscillator output is programmed to be echoed, and the XTAL oscillator is not enabled,
+ the /TRxC pin goes High. The DPLL signal that is echoed is the DPLL signal used by the receiver.
+ Hardware reset selects the XTAL oscillator as the output source*/
+ LOG((" TRxC clock source is: "));
+ switch (data & WR11_TRXSRC_SRC_MASK)
+ {
+ case WR11_TRXSRC_SRC_XTAL: LOG(("the Oscillator\n")); break;
+ case WR11_TRXSRC_SRC_TRA: LOG(("Transmit clock\n")); break;
+ case WR11_TRXSRC_SRC_BR: LOG(("Baudrate Generator\n")); break;
+ case WR11_TRXSRC_SRC_DPLL: LOG(("DPLL\n")); break;
+ default: logerror("Wrong!\n");/* Will not happen unless someone messes with the mask */
+ }
+}
+
+/*WR12 contains the lower byte of the time constant for the baud rate generator. The time constant
+ can be changed at any time, but the new value does not take effect until the next time the time constant
+ is loaded into the down counter. No attempt is made to synchronize the loading of the time
+ constant into WR12 and WR13 with the clock driving the down counter. For this reason, it is
+ advisable to disable the baud rate generator while the new time constant is loaded into WR12 and
+ WR13. Ordinarily, this is done anyway to prevent a load of the down counter between the writing
+ of the upper and lower bytes of the time constant.
+ The formula for determining the appropriate time constant for a given baud is shown below, with
+ the desired rate in bits per second and the BR clock period in seconds. This formula is derived
+ because the counter decrements from N down to zero-plus-one-cycle for reloading the time constant.
+ This is then fed to a toggle flip-flop to make the output a square wave.
+
+ Time Constant = Clock Frequency / (2 * Desired Rate * Baud Rate Clock Period) - 2
+
+*/
+void z80scc_channel::do_sccreg_wr12(UINT8 data)
+{
+ m_wr12 = data;
+ LOG(("Z80SCC \"%s\": %c : %s %02x Low byte of Time Constant for Baudrate generator - not implemented \n", m_owner->tag(), 'A' + m_index, __func__, data));
+}
+
+/* WR13 contains the upper byte of the time constant for the baud rate generator. */
+void z80scc_channel::do_sccreg_wr13(UINT8 data)
+{
+ m_wr13 = data;
+ LOG(("Z80SCC \"%s\": %c : %s %02x High byte of Time Constant for Baudrate generator - not implemented \n", m_owner->tag(), 'A' + m_index, __func__, data));
+}
+
+/*
+ WR14 contains some miscellaneous control bits */
+void z80scc_channel::do_sccreg_wr14(UINT8 data)
+{
+ switch (data & WR14_DPLL_CMD_MASK)
+ {
+ case WR14_CMD_NULL:
+ LOG(("Z80SCC \"%s\": %c : %s Misc Control Bits Null Command %02x\n", m_owner->tag(), 'A' + m_index, __func__, data));
+ break;
+ case WR14_CMD_ESM:
+/* Issuing this command causes the DPLL to enter the Search mode, where the DPLL searches for a locking edge in the
+ incoming data stream. The action taken by the DPLL upon receipt of this command depends on the operating mode of
+ the DPLL. In NRZI mode, the output of the DPLL is High while the DPLL is waiting for an edge in the incoming data
+ stream. After the Search mode is entered, the first edge the DPLL sees is assumed to be a valid data edge, and
+ the DPLL begins the clock recovery operation from that point. The DPLL clock rate must be 32x the data rate in
+ NRZI mode. Upon leaving the Search mode, the first sampling edge of the DPLL occurs 16 of these 32x clocks after
+ the first data edge, and the second sampling occurs 48 of these 32x clocks after the first data edge. Beyond
+ this point, the DPLL begins normal operation, adjusting the output to remain in sync with the incoming data.
+ In FM mode, the output of the DPLL is Low while the DPLL is waiting for an edge in the incoming data stream.
+ The first edge the DPLL detects is assumed to be a valid clock edge. For this to be the case, the line must
+ contain only clock edges; i.e. with FM1 encoding, the line must be continuous 0s. With FM0 encoding the line must
+ be continuous 1s, whereas Manchester encoding requires alternating 1s and 0s on the line. The DPLL clock rate must
+ be 16 times the data rate in FM mode. The DPLL output causes the receiver to sample the data stream in the nominal
+ center of the two halves of the bit to decide whether the data was a 1 or a 0. After this command is issued, as in
+ NRZI mode, the DPLL starts sampling immediately after the first edge is detected. (In FM mode, the DPLL examines
+ the clock edge of every other bit to decide what correction must be made to remain in sync.) If the DPLL does not
+ see an edge during the expected window, the one clock missing bit in RR10 is set. If the DPLL does not see an edge
+ after two successive attempts, the two clocks missing bits in RR10 are set and the DPLL automatically enters the
+ Search mode. This command resets both clocks missing latches.*/
+ LOG(("Z80SCC \"%s\": %c : %s Misc Control Bits Enter Search Mode Command - not implemented\n", m_owner->tag(), 'A' + m_index, __func__));
+ break;
+ case WR14_CMD_RMC:
+ /* Issuing this command disables the DPLL, resets the clock missing latches in RR10, and forces a continuous Search mode state */
+ LOG(("Z80SCC \"%s\": %c : %s Misc Control Bits Reset Missing Clocks Command - not implemented\n", m_owner->tag(), 'A' + m_index, __func__));
+ break;
+ case WR14_CMD_DISABLE_DPLL:
+ /* Issuing this command disables the DPLL, resets the clock missing latches in RR10, and forces a continuous Search mode state.*/
+ LOG(("Z80SCC \"%s\": %c : %s Misc Control Bits Disable DPLL Command - not implemented\n", m_owner->tag(), 'A' + m_index, __func__));
+ break;
+ case WR14_CMD_SS_BGR:
+ /* Issuing this command forces the clock for the DPLL to come from the output of the BRG. */
+ LOG(("Z80SCC \"%s\": %c : %s Misc Control Bits Baudrate Generator Input DPLL Command - not implemented\n", m_owner->tag(), 'A' + m_index, __func__));
+ break;
+ case WR14_CMD_SS_RTXC:
+ /* Issuing the command forces the clock for the DPLL to come from the /RTxC pin or the crystal oscillator, depending on
+ the state of the XTAL/no XTAL bit in WR11. This mode is selected by a channel or hardware reset*/
+ LOG(("Z80SCC \"%s\": %c : %s Misc Control Bits RTxC Input DPLL Command - not implemented\n", m_owner->tag(), 'A' + m_index, __func__));
+ break;
+ case WR14_CMD_SET_FM:
+ /* This command forces the DPLL to operate in the FM mode and is used to recover the clock from FM or Manchester-Encoded
+ data. (Manchester is decoded by placing the receiver in NRZ mode while the DPLL is in FM mode.)*/
+ LOG(("Z80SCC \"%s\": %c : %s Misc Control Bits Set FM Mode Command - not implemented\n", m_owner->tag(), 'A' + m_index, __func__));
+ break;
+ case WR14_CMD_SET_NRZI:
+ /* Issuing this command forces the DPLL to operate in the NRZI mode. This mode is also selected by a hardware or channel reset.*/
+ LOG(("Z80SCC \"%s\": %c : %s Mics Control Bits Set NRZI Mode Command - not implemented\n", m_owner->tag(), 'A' + m_index, __func__));
+ break;
+ default:
+ logerror("Z80SCC \"%s\": %c : %s Mics Control Bits command %02x - not implemented \n", m_owner->tag(), 'A' + m_index, __func__, data);
+ }
+ // TODO: Add info on the other bits of this register
+ m_wr14 = data;
+}
+
+/* WR15 is the External/Status Source Control register. If the External/Status interrupts are enabled
+ as a group via WR1, bits in this register control which External/Status conditions cause an interrupt.
+ Only the External/Status conditions that occur after the controlling bit is set to 1 cause an
+ interrupt. This is true, even if an External/Status condition is pending at the time the bit is set*/
+void z80scc_channel::do_sccreg_wr15(UINT8 data)
+{
+ LOG(("%s(%d) \"%s\": %c : External/Status Control Bits - not implemented\n",
+ FUNCNAME, data, m_owner->tag(), 'A' + m_index));
+ m_wr15 = data;
+}
+
+/*TODO: Z80X30 Register Access
+ ----------------------------
+The Shift Right/Shift Left bit in the Channel B WR0 controls which bits are decoded to form the register
+address. See do_sccreg_wr0() for details */
+
+/*Z85X30 Register Access
+ -----------------------
+The registers in the Z85X30 are accessed in a two step process, using a Register Pointer to perform
+the addressing. To access a particular register, the pointer bits are set by writing to WR0. The
+pointer bits may be written in either channel because only one set exists in the Z85X30. After the
+pointer bits are set, the next read or write cycle of the Z85X30 having D//C Low will access the
+desired register. At the conclusion of this read or write cycle the pointer bits are reset to 0s, so that
+the next control write is to the pointers in WR0.
+
+A read to RR8 (the receive data FIFO) or a write to WR8 (the transmit data FIFO) is either done in
+this fashion or by accessing the Z85X30 having D//C pin High. A read or write with D//C High
+accesses the data registers directly, and independently of the state of the pointer bits. This allows
+single-cycle access to the data registers and does not disturb the pointer bits.
+
+The fact that the pointer bits are reset to 0, unless explicitly set otherwise, means that WR0 and
+RR0 may also be accessed in a single cycle. That is, it is not necessary to write the pointer bits
+with 0 before accessing WR0 or RR0.*/
+//-------------------------------------------------
+// control_write - write control register
+//-------------------------------------------------
+
+void z80scc_channel::control_write(UINT8 data)
+{
+ UINT8 reg = m_uart->m_wr0_ptrbits; //m_wr0;
+ UINT8 regmask = (WR0_REGISTER_MASK | (m_uart->m_wr0_ptrbits & WR0_POINT_HIGH));
+
+ m_uart->m_wr0_ptrbits = 0; // The "Point High" command is only valid for one access
+
+ reg &= regmask;
+
+ if (reg != 0)
+ {
+ // mask out register index
+ m_wr0 &= ~regmask;
+ }
+
+ LOG(("\n%s(%02x) reg %02x, regmask %02x\n", FUNCNAME, data, reg, regmask));
+
+ /* TODO. Sort out 80X30 & other SCC variants limitations in register access */
+ switch (reg)
+ {
+ case REG_WR0_COMMAND_REGPT: do_sccreg_wr0(data); ;break;
+ case REG_WR1_INT_DMA_ENABLE: do_sccreg_wr1(data); m_uart->check_interrupts(); break;
+ case REG_WR2_INT_VECTOR: do_sccreg_wr2(data); break;
+ case REG_WR3_RX_CONTROL:
+ do_sccreg_wr3(data);
+ update_serial();
+ receive_register_reset();
+ break;
+ case REG_WR4_RX_TX_MODES:
+ do_sccreg_wr4(data);
+ update_serial();
+ transmit_register_reset();
+ receive_register_reset();
+ break;
+ case REG_WR5_TX_CONTROL:
+ do_sccreg_wr5(data);
+ update_serial();
+ transmit_register_reset();
+ update_rts();
+ break;
+ case REG_WR6_SYNC_OR_SDLC_A: do_sccreg_wr6(data); break;
+ case REG_WR7_SYNC_OR_SDLC_F: do_sccreg_wr7(data); break;
+ case REG_WR8_TRANSMIT_DATA: do_sccreg_wr8(data); break;
+ case REG_WR9_MASTER_INT_CTRL: do_sccreg_wr9(data); break;
+ case REG_WR10_MSC_RX_TX_CTRL: do_sccreg_wr10(data); break;
+ case REG_WR11_CLOCK_MODES: do_sccreg_wr11(data); break;
+ case REG_WR12_LO_BAUD_GEN: do_sccreg_wr12(data); break;
+ case REG_WR13_HI_BAUD_GEN: do_sccreg_wr13(data); break;
+ case REG_WR14_MISC_CTRL: do_sccreg_wr14(data); break;
+ case REG_WR15_EXT_ST_INT_CTRL:do_sccreg_wr15(data); break;
+ default:
+ logerror("Z80SCC \"%s\": %c : Unsupported WRx register:%02x\n", m_owner->tag(), 'A' + m_index, reg);
+ }
+}
+
+
+//-------------------------------------------------
+// data_read - read data register from fifo
+//-------------------------------------------------
+
+UINT8 z80scc_channel::data_read()
+{
+ UINT8 data = 0;
+
+ LOG(("%s \"%s\": %c : Data Register Read: \n", FUNCNAME, m_owner->tag(), 'A' + m_index));
+
+ if (m_rx_fifo_wp != m_rx_fifo_rp)
+ {
+ /* Special Receive Condition interrupts are generated after the character is read from
+ the FIFO, not when the special condition is first detected. This is done so that when
+ using receive interrupt on first or Special Condition or Special Condition Only, data is
+ directly read out of the data FIFO without checking the status first. If a special condi-
+ tion interrupted the CPU when first detected, it would be necessary to read RR1
+ before each byte in the FIFO to determine which byte had the special condition.
+ Therefore, by not generating the interrupt until after the byte has been read and then
+ locking the FIFO, only one status read is necessary. A DMA can be used to do all data
+ transfers (otherwise, it would be necessary to disable the DMA to allow the CPU to
+ read the status on each byte). Consequently, since the special condition locks the
+ FIFO to preserve the status, it is necessary to issue the Error Reset command to
+ unlock it. Only the exit location of the FIFO is locked allowing more data to be
+ received into the other bytes of the Receive FIFO.*/
+
+ // load data from the FIFO
+ data = m_rx_fifo_rp_data();
+
+ // load error status from the FIFO
+ m_rr1 = (m_rr1 & ~(RR1_CRC_FRAMING_ERROR | RR1_RX_OVERRUN_ERROR | RR1_PARITY_ERROR)) | m_rx_error_fifo[m_rx_fifo_rp];
+
+ // trigger interrup and lock the fifo if an error is present
+ if (m_rr1 & (RR1_CRC_FRAMING_ERROR | RR1_RX_OVERRUN_ERROR | RR1_PARITY_ERROR))
+ {
+ switch (m_wr1 & WR1_RX_INT_MODE_MASK)
+ {
+ case WR1_RX_INT_FIRST:
+ if (!m_rx_first)
+ {
+ m_uart->trigger_interrupt(m_index, INT_SPECIAL);
+ }
+ break;
+
+ case WR1_RX_INT_ALL_PARITY:
+ case WR1_RX_INT_ALL:
+ m_uart->trigger_interrupt(m_index, INT_SPECIAL);
+ break;
+ }
+ }
+ else
+ {
+ // decrease FIFO pointer
+ m_rx_fifo_rp_step();
+ }
+ }
+ else
+ {
+ LOG(("data_read: Attempt to read out character from empty FIFO\n"));
+ logerror("data_read: Attempt to read out character from empty FIFO\n");
+ }
+
+ LOG(("'%c' %02x\n", isascii(data) ? data : ' ', data));
+ return data;
+}
+
+/* Get data from top of fifo data but restore read pointer in case of exit latch lock */
+UINT8 z80scc_channel::m_rx_fifo_rp_data()
+{
+ UINT8 data;
+ UINT8 old_rp = m_rx_fifo_rp;
+ m_rx_fifo_rp_step();
+ data = m_rx_data_fifo[m_rx_fifo_rp];
+ m_rx_fifo_rp = old_rp;
+
+ return data;
+}
+
+/* Step read pointer */
+void z80scc_channel::m_rx_fifo_rp_step()
+{
+ m_rx_fifo_rp++;
+ if (m_rx_fifo_rp >= m_rx_fifo_sz)
+ {
+ m_rx_fifo_rp = 0;
+ }
+
+ // check if FIFO is empty
+ if (m_rx_fifo_rp == m_rx_fifo_wp)
+ {
+ // no more characters available in the FIFO
+ m_rr0 &= ~ RR0_RX_CHAR_AVAILABLE;
+ }
+}
+
+READ8_MEMBER (z80scc_device::da_r) { return m_chanA->data_read(); }
+WRITE8_MEMBER (z80scc_device::da_w) { m_chanA->data_write(data); }
+READ8_MEMBER (z80scc_device::db_r) { return m_chanB->data_read(); }
+WRITE8_MEMBER (z80scc_device::db_w) { m_chanB->data_write(data); }
+
+//-------------------------------------------------
+// data_write - write data register
+//-------------------------------------------------
+void z80scc_channel::data_write(UINT8 data)
+{
+ m_tx_data = data;
+
+ if ((m_wr5 & WR5_TX_ENABLE) && is_transmit_register_empty())
+ {
+ LOG(("%s(%d) \"%s\": %c : Transmit Data Byte '%02x'\n", FUNCNAME, data, m_owner->tag(), 'A' + m_index, m_tx_data));
+
+ transmit_register_setup(m_tx_data);
+
+ // empty transmit buffer
+ m_rr0 |= RR0_TX_BUFFER_EMPTY;
+
+ if (m_wr1 & WR1_TX_INT_ENABLE)
+ {
+ m_uart->trigger_interrupt(m_index, INT_TRANSMIT);
+ }
+ }
+ else
+ {
+ m_rr0 &= ~RR0_TX_BUFFER_EMPTY;
+ LOG(("%s(%d) \"%s\": %c : failed to send %c,(%02x)\n", FUNCNAME, data, m_owner->tag(), 'A' + m_index, isascii(data) ? data : ' ', data));
+ }
+
+ m_rr1 &= ~RR1_ALL_SENT;
+}
+
+
+//-------------------------------------------------
+// receive_data - receive data word into fifo
+//-------------------------------------------------
+
+void z80scc_channel::receive_data(UINT8 data)
+{
+ LOG(("Z80SCC \"%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) ))
+ {
+ // receive overrun error detected
+ m_rx_error_fifo[m_rx_fifo_wp] |= RR1_RX_OVERRUN_ERROR; // = m_rx_error;
+ }
+ else
+ {
+ m_rx_error_fifo[m_rx_fifo_wp] &= ~RR1_RX_OVERRUN_ERROR; // = m_rx_error;
+ m_rx_fifo_wp++;
+ if (m_rx_fifo_wp >= m_rx_fifo_sz)
+ {
+ m_rx_fifo_wp = 0;
+ }
+ }
+
+ // store received character
+ m_rx_data_fifo[m_rx_fifo_wp] = data;
+
+ m_rr0 |= RR0_RX_CHAR_AVAILABLE;
+
+#if 0 // interrupt on exit from fifo
+ // receive interrupt
+ switch (m_wr1 & WR1_RX_INT_MODE_MASK)
+ {
+ case WR1_RX_INT_FIRST:
+ if (m_rx_first)
+ {
+ m_uart->trigger_interrupt(m_index, INT_RECEIVE);
+
+ m_rx_first = 0;
+ }
+ break;
+
+ case WR1_RX_INT_ALL_PARITY:
+ case WR1_RX_INT_ALL:
+ m_uart->trigger_interrupt(m_index, INT_RECEIVE);
+ break;
+ }
+#endif
+}
+
+
+//-------------------------------------------------
+// cts_w - clear to send handler
+//-------------------------------------------------
+
+WRITE_LINE_MEMBER( z80scc_channel::cts_w )
+{
+ LOG(("Z80SCC \"%s\" %s: %c : CTS %u\n", m_owner->tag(), __func__, 'A' + m_index, state));
+
+ if (m_cts != state)
+ {
+ // enable transmitter if in auto enables mode
+ if (!state)
+ if (m_wr3 & WR3_AUTO_ENABLES)
+ m_wr5 |= WR5_TX_ENABLE;
+
+ // set clear to send
+ m_cts = state;
+
+ if (!m_rx_rr0_latch)
+ {
+ if (!m_cts)
+ m_rr0 |= RR0_CTS;
+ else
+ m_rr0 &= ~RR0_CTS;
+
+ // trigger interrupt
+ if (m_wr1 & WR1_EXT_INT_ENABLE)
+ {
+ // trigger interrupt
+ m_uart->trigger_interrupt(m_index, INT_EXTERNAL);
+
+ // latch read register 0
+ m_rx_rr0_latch = 1;
+ }
+ }
+ }
+}
+
+
+//-------------------------------------------------
+// dcd_w - data carrier detected handler
+//-------------------------------------------------
+
+WRITE_LINE_MEMBER( z80scc_channel::dcd_w )
+{
+ LOG(("Z80SCC \"%s\": %c : DCD %u\n", m_owner->tag(), 'A' + m_index, state));
+
+ if (m_dcd != state)
+ {
+ // enable receiver if in auto enables mode
+ if (!state)
+ if (m_wr3 & WR3_AUTO_ENABLES)
+ m_wr3 |= WR3_RX_ENABLE;
+
+ // set data carrier detect
+ m_dcd = state;
+
+ if (!m_rx_rr0_latch)
+ {
+ if (m_dcd)
+ m_rr0 |= RR0_DCD;
+ else
+ m_rr0 &= ~RR0_DCD;
+
+ if (m_wr1 & WR1_EXT_INT_ENABLE)
+ {
+ // trigger interrupt
+ m_uart->trigger_interrupt(m_index, INT_EXTERNAL);
+
+ // latch read register 0
+ m_rx_rr0_latch = 1;
+ }
+ }
+ }
+}
+
+
+//-------------------------------------------------
+// ri_w - ring indicator handler
+//-------------------------------------------------
+
+WRITE_LINE_MEMBER( z80scc_channel::ri_w )
+{
+ LOG(("Z80SCC \"%s\": %c : RI %u\n", m_owner->tag(), 'A' + m_index, state));
+
+ if (m_ri != state)
+ {
+ // set ring indicator state
+ m_ri = state;
+
+ if (!m_rx_rr0_latch)
+ {
+ if (m_ri)
+ m_rr0 |= RR0_RI;
+ else
+ m_rr0 &= ~RR0_RI;
+
+ if (m_wr1 & WR1_EXT_INT_ENABLE)
+ {
+ // trigger interrupt
+ m_uart->trigger_interrupt(m_index, INT_EXTERNAL);
+
+ // latch read register 0
+ m_rx_rr0_latch = 1;
+ }
+ }
+ }
+}
+
+//-------------------------------------------------
+// sync_w - sync handler
+//-------------------------------------------------
+WRITE_LINE_MEMBER( z80scc_channel::sync_w )
+{
+ LOG(("Z80SCC \"%s\": %c : SYNC %u\n", m_owner->tag(), 'A' + m_index, state));
+}
+
+//-------------------------------------------------
+// rxc_w - receive clock
+//-------------------------------------------------
+WRITE_LINE_MEMBER( z80scc_channel::rxc_w )
+{
+ //LOG(("Z80SCC \"%s\": %c : Receiver Clock Pulse\n", m_owner->tag(), m_index + 'A'));
+ if (m_wr3 & WR3_RX_ENABLE)
+ {
+ int clocks = get_clock_mode();
+ if (clocks == 1)
+ rx_clock_w(state);
+ else if(state)
+ {
+ rx_clock_w(m_rx_clock < clocks/2);
+
+ m_rx_clock++;
+ if (m_rx_clock == clocks)
+ m_rx_clock = 0;
+
+ }
+ }
+}
+
+//-------------------------------------------------
+// txc_w - transmit clock
+//-------------------------------------------------
+WRITE_LINE_MEMBER( z80scc_channel::txc_w )
+{
+ //LOG(("Z80SCC \"%s\": %c : Transmitter Clock Pulse\n", m_owner->tag(), m_index + 'A'));
+ if (m_wr5 & WR5_TX_ENABLE)
+ {
+ int clocks = get_clock_mode();
+ if (clocks == 1)
+ tx_clock_w(state);
+ else if(state)
+ {
+ tx_clock_w(m_tx_clock < clocks/2);
+
+ m_tx_clock++;
+ if (m_tx_clock == clocks)
+ m_tx_clock = 0;
+ }
+ }
+}
+
+//-------------------------------------------------
+// update_serial -
+//-------------------------------------------------
+void z80scc_channel::update_serial()
+{
+ int data_bit_count = get_rx_word_length();
+ stop_bits_t stop_bits = get_stop_bits();
+ parity_t parity;
+
+ if (m_wr4 & WR4_PARITY_ENABLE)
+ {
+ if (m_wr4 & WR4_PARITY_EVEN)
+ parity = PARITY_EVEN;
+ else
+ parity = PARITY_ODD;
+ }
+ else
+ parity = PARITY_NONE;
+
+ LOG(("%" I64FMT "d %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);
+
+ int clocks = get_clock_mode();
+
+ 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));
+ }
+
+ 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));
+ }
+}
+
+//-------------------------------------------------
+// set_dtr -
+//-------------------------------------------------
+void z80scc_channel::set_dtr(int state)
+{
+ LOG(("%s(%d)\n", FUNCNAME, state));
+ m_dtr = state;
+
+ if (m_index == z80scc_device::CHANNEL_A)
+ m_uart->m_out_dtra_cb(m_dtr);
+ else
+ m_uart->m_out_dtrb_cb(m_dtr);
+}
+
+
+
+//-------------------------------------------------
+// write_rx - called by terminal through rs232/diserial
+// when character is sent to board
+//-------------------------------------------------
+WRITE_LINE_MEMBER(z80scc_channel::write_rx)
+{
+ m_rxd = state;
+ //only use rx_w when self-clocked
+ if(m_rxc)
+ device_serial_interface::rx_w(state);
+}
diff --git a/src/devices/machine/z80scc.h b/src/devices/machine/z80scc.h
new file mode 100644
index 00000000000..5e21b85bff7
--- /dev/null
+++ b/src/devices/machine/z80scc.h
@@ -0,0 +1,728 @@
+// license:BSD-3-Clause
+// copyright-holders:Joakim Larsson Edstrom
+/***************************************************************************
+
+ Z80-SCC Serial Communications Controller emulation
+
+****************************************************************************
+ _____ _____ _____ _____
+ AD1 1|* \_/ |40 AD0 D1 1|* \_/ |40 D0
+ AD3 2| |39 AD2 D3 2| |39 D2
+ AD5 3| |38 AD4 D5 3| |38 D4
+ AD7 4| |37 AD6 D7 4| |37 D6
+ _INT 5| |36 _DS _INT 5| |36 _RD
+ IEO 6| |35 _AS IEO 6| |35 _WR
+ IEI 7| |34 R/_W IEI 7| |34 B/_A
+ _INTACK 8| |33 _CS0 _INTACK 8| |33 _CE
+ VCC 9| |32 CS1 VCC 9| |32 C/_D
+ _W//REQA 10| |31 GND _W//REQA 10| |31 GND
+ _SYNCA 11| Z8030 |30 _W/_REQ _SYNCA 11| Z8530 |30 _W/_REQB
+ _RTxCA 12| Z80C30 |29 _SYNCB _RTxCA 12| Z85C30 |29 _SYNCB
+ RxDA 13| Z80230 |28 _RTxCB RxDA 13| Z85230 |28 _RTxCB
+ _TRxCA 14| |27 RxDB _TRxCA 14| |27 RxDB
+ TxDA 15| |26 _TRxCB TxDA 15| |26 _TRxCB
+ _DTR//REQA 16| |25 TxDB _DTR//REQA 16| |25 TxDB
+ _RTSA 17| |24 _DTR/_REQB _RTSA 17| |24 _DTR/_REQB
+ _CTSA 18| |23 _RTSB _CTSA 18| |23 _RTSB
+ _DCDA 19| |22 _CTSB _DCDA 19| |22 _CTSB
+ PCLK 20|_____________|21 _DCDB PCLK 20|_____________|21 _DCDB
+ ZBUS Universal Bus
+
+***************************************************************************/
+
+#ifndef __Z80SCC_H__
+#define __Z80SCC_H__
+
+#include "emu.h"
+#include "z80sio.h"
+#include "cpu/z80/z80daisy.h"
+
+//**************************************************************************
+// DEVICE CONFIGURATION MACROS
+//**************************************************************************
+
+#define MCFG_Z80SCC_ADD(_tag, _clock, _rxa, _txa, _rxb, _txb) \
+ MCFG_DEVICE_ADD(_tag, Z80SCC, _clock) \
+ MCFG_Z80SCC_OFFSETS(_rxa, _txa, _rxb, _txb)
+
+#define MCFG_SCC8530_ADD(_tag, _clock, _rxa, _txa, _rxb, _txb) \
+ MCFG_DEVICE_ADD(_tag, SCC8530N, _clock) \
+ MCFG_Z80SCC_OFFSETS(_rxa, _txa, _rxb, _txb)
+
+#define MCFG_Z80SCC_OFFSETS(_rxa, _txa, _rxb, _txb) \
+ z80scc_device::configure_channels(*device, _rxa, _txa, _rxb, _txb);
+
+// Port A callbacks
+#define MCFG_Z80SCC_OUT_TXDA_CB(_devcb) \
+ devcb = &z80scc_device::set_out_txda_callback(*device, DEVCB_##_devcb);
+
+#define MCFG_Z80SCC_OUT_DTRA_CB(_devcb) \
+ devcb = &z80scc_device::set_out_dtra_callback(*device, DEVCB_##_devcb);
+
+#define MCFG_Z80SCC_OUT_RTSA_CB(_devcb) \
+ devcb = &z80scc_device::set_out_rtsa_callback(*device, DEVCB_##_devcb);
+
+#define MCFG_Z80SCC_OUT_WRDYA_CB(_devcb) \
+ devcb = &z80scc_device::set_out_wrdya_callback(*device, DEVCB_##_devcb);
+
+#define MCFG_Z80SCC_OUT_SYNCA_CB(_devcb) \
+ devcb = &z80scc_device::set_out_synca_callback(*device, DEVCB_##_devcb);
+
+// Port B callbacks
+#define MCFG_Z80SCC_OUT_TXDB_CB(_devcb) \
+ devcb = &z80scc_device::set_out_txdb_callback(*device, DEVCB_##_devcb);
+
+#define MCFG_Z80SCC_OUT_DTRB_CB(_devcb) \
+ devcb = &z80scc_device::set_out_dtrb_callback(*device, DEVCB_##_devcb);
+
+#define MCFG_Z80SCC_OUT_RTSB_CB(_devcb) \
+ devcb = &z80scc_device::set_out_rtsb_callback(*device, DEVCB_##_devcb);
+
+#define MCFG_Z80SCC_OUT_WRDYB_CB(_devcb) \
+ devcb = &z80scc_device::set_out_wrdyb_callback(*device, DEVCB_##_devcb);
+
+#define MCFG_Z80SCC_OUT_SYNCB_CB(_devcb) \
+ devcb = &z80scc_device::set_out_syncb_callback(*device, DEVCB_##_devcb);
+
+#define MCFG_Z80SCC_OUT_INT_CB(_devcb) \
+ devcb = &z80scc_device::set_out_int_callback(*device, DEVCB_##_devcb);
+
+#define MCFG_Z80SCC_OUT_RXDRQA_CB(_devcb) \
+ devcb = &z80scc_device::set_out_rxdrqa_callback(*device, DEVCB_##_devcb);
+
+#define MCFG_Z80SCC_OUT_TXDRQA_CB(_devcb) \
+ devcb = &z80scc_device::set_out_txdrqa_callback(*device, DEVCB_##_devcb);
+
+#define MCFG_Z80SCC_OUT_RXDRQB_CB(_devcb) \
+ devcb = &z80scc_device::set_out_rxdrqb_callback(*device, DEVCB_##_devcb);
+
+#define MCFG_Z80SCC_OUT_TXDRQB_CB(_devcb) \
+ devcb = &z80scc_device::set_out_txdrqb_callback(*device, DEVCB_##_devcb);
+
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+// ======================> z80scc_channel
+
+class z80scc_device;
+
+//class z80scc_channel : public z80sio_channel
+class z80scc_channel : public device_t,
+ public device_serial_interface
+{
+ friend class z80scc_device;
+
+public:
+ z80scc_channel(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ // device-level overrides
+ virtual void device_start();
+ virtual void device_reset();
+ virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
+
+ // device_serial_interface overrides
+ virtual void tra_callback();
+ virtual void tra_complete();
+ virtual void rcv_callback();
+ virtual void rcv_complete();
+
+ // read register handlers
+ UINT8 do_sccreg_rr0();
+ UINT8 do_sccreg_rr1();
+ UINT8 do_sccreg_rr2();
+ UINT8 do_sccreg_rr3();
+ UINT8 do_sccreg_rr4();
+ UINT8 do_sccreg_rr5();
+ UINT8 do_sccreg_rr6();
+ UINT8 do_sccreg_rr7();
+ UINT8 do_sccreg_rr8();
+ UINT8 do_sccreg_rr9();
+ UINT8 do_sccreg_rr10();
+ UINT8 do_sccreg_rr11();
+ UINT8 do_sccreg_rr12();
+ UINT8 do_sccreg_rr13();
+ UINT8 do_sccreg_rr14();
+ UINT8 do_sccreg_rr15();
+
+ // write register handlers
+ void do_sccreg_wr0(UINT8 data);
+ void do_sccreg_wr0_resets(UINT8 data);
+ void do_sccreg_wr1(UINT8 data);
+ void do_sccreg_wr2(UINT8 data);
+ void do_sccreg_wr3(UINT8 data);
+ void do_sccreg_wr4(UINT8 data);
+ void do_sccreg_wr5(UINT8 data);
+ void do_sccreg_wr6(UINT8 data);
+ void do_sccreg_wr7(UINT8 data);
+ void do_sccreg_wr8(UINT8 data);
+ void do_sccreg_wr9(UINT8 data);
+ void do_sccreg_wr10(UINT8 data);
+ void do_sccreg_wr11(UINT8 data);
+ void do_sccreg_wr12(UINT8 data);
+ void do_sccreg_wr13(UINT8 data);
+ void do_sccreg_wr14(UINT8 data);
+ void do_sccreg_wr15(UINT8 data);
+
+ UINT8 control_read();
+ void control_write(UINT8 data);
+
+ UINT8 data_read();
+ void data_write(UINT8 data);
+
+ void receive_data(UINT8 data);
+ void m_rx_fifo_rp_step();
+ UINT8 m_rx_fifo_rp_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;
+
+ // Register state
+ // read registers enum
+ UINT8 m_rr0; // REG_RR0_STATUS
+ UINT8 m_rr1; // REG_RR1_SPEC_RCV_COND
+ UINT8 m_rr2; // REG_RR2_INTERRUPT_VECT
+ UINT8 m_rr3; // REG_RR3_INTERUPPT_PEND
+ UINT8 m_rr4; // REG_RR4_WR4_OR_RR0
+ UINT8 m_rr5; // REG_RR5_WR5_OR_RR0
+ UINT8 m_rr6; // REG_RR6_LSB_OR_RR2
+ UINT8 m_rr7; // REG_RR7_MSB_OR_RR3
+ UINT8 m_rr8; // REG_RR8_RECEIVE_DATA
+ UINT8 m_rr9; // REG_RR9_WR3_OR_RR13
+ UINT8 m_rr10; // REG_RR10_MISC_STATUS
+ UINT8 m_rr11; // REG_RR11_WR10_OR_RR15
+ UINT8 m_rr12; // REG_RR12_LO_TIME_CONST
+ UINT8 m_rr13; // REG_RR13_HI_TIME_CONST
+ UINT8 m_rr14; // REG_RR14_WR7_OR_R10
+ UINT8 m_rr15; // REG_RR15_WR15_EXT_STAT
+
+ // write registers enum
+ UINT8 m_wr0; // REG_WR0_COMMAND_REGPT
+ UINT8 m_wr1; // REG_WR1_INT_DMA_ENABLE
+ UINT8 m_wr2; // REG_WR2_INT_VECTOR
+ UINT8 m_wr3; // REG_WR3_RX_CONTROL
+ UINT8 m_wr4; // REG_WR4_RX_TX_MODES
+ UINT8 m_wr5; // REG_WR5_TX_CONTROL
+ UINT8 m_wr6; // REG_WR6_SYNC_OR_SDLC_A
+ UINT8 m_wr7; // REG_WR7_SYNC_OR_SDLC_F
+ UINT8 m_wr8; // REG_WR8_TRANSMIT_DATA
+ UINT8 m_wr9; // REG_WR9_MASTER_INT_CTRL
+ UINT8 m_wr10; // REG_WR10_MSC_RX_TX_CTRL
+ UINT8 m_wr11; // REG_WR11_CLOCK_MODES
+ UINT8 m_wr12; // REG_WR12_LO_BAUD_GEN
+ UINT8 m_wr13; // REG_WR13_HI_BAUD_GEN
+ UINT8 m_wr14; // REG_WR14_MISC_CTRL
+ UINT8 m_wr15; // REG_WR15_EXT_ST_INT_CTRL
+
+
+protected:
+ enum
+ {
+ INT_TRANSMIT = 0,
+ INT_EXTERNAL = 1,
+ INT_RECEIVE = 2,
+ INT_SPECIAL = 3
+ };
+
+ // Read registers
+ enum
+ {
+ REG_RR0_STATUS = 0, // SIO
+ REG_RR1_SPEC_RCV_COND = 1, // SIO
+ REG_RR2_INTERRUPT_VECT = 2, // SIO
+ REG_RR3_INTERUPPT_PEND = 3,
+ REG_RR4_WR4_OR_RR0 = 4,
+ REG_RR5_WR5_OR_RR0 = 5,
+ REG_RR6_LSB_OR_RR2 = 6,
+ REG_RR7_MSB_OR_RR3 = 7,
+ REG_RR8_RECEIVE_DATA = 8,
+ REG_RR9_WR3_OR_RR13 = 9,
+ REG_RR10_MISC_STATUS = 10,
+ REG_RR11_WR10_OR_RR15 = 11,
+ REG_RR12_LO_TIME_CONST = 12,
+ REG_RR13_HI_TIME_CONST = 13,
+ REG_RR14_WR7_OR_R10 = 14,
+ REG_RR15_WR15_EXT_STAT = 15
+ };
+
+ // Write registers
+ enum
+ {
+ REG_WR0_COMMAND_REGPT = 0, // SIO
+ REG_WR1_INT_DMA_ENABLE = 1, // SIO
+ REG_WR2_INT_VECTOR = 2, // SIO
+ REG_WR3_RX_CONTROL = 3, // SIO
+ REG_WR4_RX_TX_MODES = 4, // SIO
+ REG_WR5_TX_CONTROL = 5, // SIO
+ REG_WR6_SYNC_OR_SDLC_A = 6, // SIO
+ REG_WR7_SYNC_OR_SDLC_F = 7, // SIO
+ REG_WR8_TRANSMIT_DATA = 8,
+ REG_WR9_MASTER_INT_CTRL = 9,
+ REG_WR10_MSC_RX_TX_CTRL = 10,
+ REG_WR11_CLOCK_MODES = 11,
+ REG_WR12_LO_BAUD_GEN = 12,
+ REG_WR13_HI_BAUD_GEN = 13,
+ REG_WR14_MISC_CTRL = 14,
+ REG_WR15_EXT_ST_INT_CTRL= 15
+ };
+
+ enum
+ {
+ RR0_RX_CHAR_AVAILABLE = 0x01, // SIO bit
+ RR0_ZC = 0x02, // SCC bit
+ RR0_TX_BUFFER_EMPTY = 0x04, // SIO
+ RR0_DCD = 0x08, // SIO
+ RR0_RI = 0x10, // DART bit? TODO: investigate function and remove
+ RR0_SYNC_HUNT = 0x10, // SIO bit, not supported
+ RR0_CTS = 0x20, // SIO bit
+ RR0_TX_UNDERRUN = 0x40, // SIO bit, not supported
+ RR0_BREAK_ABORT = 0x80 // SIO bit, not supported
+ };
+
+ enum
+ {
+ RR1_ALL_SENT = 0x01, // SIO/SCC bit
+ RR1_RESIDUE_CODE_MASK = 0x0e, // SIO/SCC bits, not supported
+ RR1_PARITY_ERROR = 0x10, // SIO/SCC bits
+ RR1_RX_OVERRUN_ERROR = 0x20, // SIO/SCC bits
+ RR1_CRC_FRAMING_ERROR = 0x40, // SIO/SCC bits
+ RR1_END_OF_FRAME = 0x80 // SIO/SCC bits, not supported
+ };
+
+ enum
+ { // TODO: overload SIO functionality
+ RR2_INT_VECTOR_MASK = 0xff, // SCC channel A, SIO channel B (special case)
+ RR2_INT_VECTOR_V1 = 0x02, // SIO (special case) /SCC Channel B
+ RR2_INT_VECTOR_V2 = 0x04, // SIO (special case) /SCC Channel B
+ RR2_INT_VECTOR_V3 = 0x08 // SIO (special case) /SCC Channel B
+ };
+
+ enum
+ {
+ RR3_CHANB_EXT_IP = 0x01, // SCC IP pending registers
+ RR3_CHANB_TX_IP = 0x02, // only read in Channel A (for both channels)
+ RR3_CHANB_RX_IP = 0x04, // channel B return all zero
+ RR3_CHANA_EXT_IP = 0x08,
+ RR3_CHANA_TX_IP = 0x10,
+ RR3_CHANA_RX_IP = 0x20
+ };
+
+ enum // Universal Bus WR0 commands for 85X30
+ {
+ WR0_REGISTER_MASK = 0x07,
+ WR0_COMMAND_MASK = 0x38, // COMMANDS
+ WR0_NULL = 0x00, // 0 0 0
+ WR0_POINT_HIGH = 0x08, // 0 0 1
+ WR0_RESET_EXT_STATUS = 0x10, // 0 1 0
+ WR0_SEND_ABORT = 0x18, // 0 1 1
+ WR0_ENABLE_INT_NEXT_RX = 0x20, // 1 0 0
+ WR0_RESET_TX_INT = 0x28, // 1 0 1
+ WR0_ERROR_RESET = 0x30, // 1 1 0
+ WR0_RESET_HIGHEST_IUS = 0x38, // 1 1 1
+ WR0_CRC_RESET_CODE_MASK = 0xc0, // RESET
+ WR0_CRC_RESET_NULL = 0x00, // 0 0
+ WR0_CRC_RESET_RX = 0x40, // 0 1
+ WR0_CRC_RESET_TX = 0x80, // 1 0
+ WR0_CRC_RESET_TX_UNDERRUN = 0xc0 // 1 1
+ };
+
+ enum // ZBUS WR0 commands or 80X30
+ {
+ WR0_Z_COMMAND_MASK = 0x38, // COMMANDS
+ WR0_Z_NULL_1 = 0x00, // 0 0 0
+ WR0_Z_NULL_2 = 0x08, // 0 0 1
+ WR0_Z_RESET_EXT_STATUS = 0x10, // 0 1 0
+ WR0_Z_SEND_ABORT = 0x18, // 0 1 1
+ WR0_Z_ENABLE_INT_NEXT_RX = 0x20, // 1 0 0
+ WR0_Z_RESET_TX_INT = 0x28, // 1 0 1
+ WR0_Z_ERROR_RESET = 0x30, // 1 1 0
+ WR0_Z_RESET_HIGHEST_IUS = 0x38, // 1 1 1
+ WR0_Z_SHIFT_MASK = 0x03, // SHIFT mode SDLC chan B
+ WR0_Z_SEL_SHFT_LEFT = 0x02, // 1 0
+ WR0_Z_SEL_SHFT_RIGHT = 0x03 // 1 1
+ };
+
+ enum
+ {
+ WR1_EXT_INT_ENABLE = 0x01,
+ WR1_TX_INT_ENABLE = 0x02,
+ WR1_PARITY_IS_SPEC_COND = 0x04,
+ WR1_RX_INT_MODE_MASK = 0x18,
+ 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
+ };
+
+ enum
+ {
+ 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_ENTER_HUNT_PHASE = 0x10, // not supported
+ WR3_AUTO_ENABLES = 0x20,
+ WR3_RX_WORD_LENGTH_MASK = 0xc0,
+ WR3_RX_WORD_LENGTH_5 = 0x00,
+ WR3_RX_WORD_LENGTH_7 = 0x40,
+ WR3_RX_WORD_LENGTH_6 = 0x80,
+ WR3_RX_WORD_LENGTH_8 = 0xc0
+ };
+
+ 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_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
+ };
+
+ 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_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
+ };
+
+ /* SCC specifics */
+ enum
+ {
+ WR9_CMD_MASK = 0xC0,
+ WR9_CMD_NORESET = 0x00,
+ WR9_CMD_CHNB_RESET = 0x40,
+ WR9_CMD_CHNA_RESET = 0x80,
+ WR9_CMD_HW_RESET = 0xC0,
+ WR9_BIT_VIS = 0x01,
+ WR9_BIT_NV = 0x02,
+ WR9_BIT_DLC = 0x04,
+ WR9_BIT_MIE = 0x08,
+ WR9_BIT_SHSL = 0x10,
+ WR9_BIT_IACK = 0x20
+ };
+
+ enum
+ {
+ WR11_RCVCLK_TYPE = 0x80,
+ WR11_RCVCLK_SRC_MASK = 0x60, // RCV CLOCK
+ WR11_RCVCLK_SRC_RTXC = 0x00, // 0 0
+ WR11_RCVCLK_SRC_TRXC = 0x20, // 0 1
+ WR11_RCVCLK_SRC_BR = 0x40, // 1 0
+ WR11_RCVCLK_SRC_DPLL = 0x60, // 1 1
+ WR11_TRACLK_SRC_MASK = 0x18, // TRA CLOCK
+ WR11_TRACLK_SRC_RTXC = 0x00, // 0 0
+ WR11_TRACLK_SRC_TRXC = 0x08, // 0 1
+ WR11_TRACLK_SRC_BR = 0x10, // 1 0
+ WR11_TRACLK_SRC_DPLL = 0x18, // 1 1
+ WR11_TRXC_DIRECTION = 0x04,
+ WR11_TRXSRC_SRC_MASK = 0x03, // TRXX CLOCK
+ WR11_TRXSRC_SRC_XTAL = 0x00, // 0 0
+ WR11_TRXSRC_SRC_TRA = 0x01, // 0 1
+ WR11_TRXSRC_SRC_BR = 0x02, // 1 0
+ WR11_TRXSRC_SRC_DPLL = 0x03 // 1 1
+ };
+
+ enum
+ {
+ WR14_DPLL_CMD_MASK = 0xe0, // Command
+ WR14_CMD_NULL = 0x00, // 0 0 0
+ WR14_CMD_ESM = 0x20, // 0 0 1
+ WR14_CMD_RMC = 0x40, // 0 1 0
+ WR14_CMD_DISABLE_DPLL = 0x60, // 0 1 1
+ WR14_CMD_SS_BGR = 0x80, // 1 0 0
+ WR14_CMD_SS_RTXC = 0xa0, // 1 0 1
+ WR14_CMD_SET_FM = 0xc0, // 1 1 0
+ WR14_CMD_SET_NRZI = 0xe0 // 1 1 1
+ };
+
+ void update_serial();
+ void set_dtr(int state);
+ void set_rts(int state);
+
+ int get_clock_mode();
+ void update_rts();
+ stop_bits_t get_stop_bits();
+ int get_rx_word_length();
+ int get_tx_word_length();
+
+ // receiver state
+ UINT8 m_rx_data_fifo[8]; // receive data FIFO
+ UINT8 m_rx_error_fifo[8]; // receive error FIFO
+ UINT8 m_rx_error; // current receive error
+ //int m_rx_fifo // receive FIFO pointer
+ int m_rx_fifo_rp; // receive FIFO read pointer
+ int m_rx_fifo_wp; // receive FIFO write pointer
+ int m_rx_fifo_sz; // receive FIFO size
+
+ int m_rx_clock; // receive clock pulse count
+ int m_rx_first; // first character received
+ int m_rx_break; // receive break condition
+ UINT8 m_rx_rr0_latch; // read register 0 latched
+
+ int m_rxd;
+ int m_ri; // ring indicator latch
+ int m_cts; // clear to send latch
+ int m_dcd; // data carrier detect latch
+
+ // transmitter state
+ UINT8 m_tx_data; // transmit data register
+ int m_tx_clock; // transmit clock pulse count
+
+ int m_dtr; // data terminal ready
+ int m_rts; // request to send
+
+ // synchronous state
+ UINT16 m_sync; // sync character
+
+ int m_index;
+ z80scc_device *m_uart;
+
+ // SCC specifics
+ int m_ph; // Point high command to access regs 08-0f
+ UINT8 m_zc;
+};
+
+
+// ======================> z80scc_device
+
+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 clock, UINT32 variant, const char *shortname, const char *source);
+ z80scc_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ template<class _Object> static devcb_base &set_out_txda_callback(device_t &device, _Object object) { return downcast<z80scc_device &>(device).m_out_txda_cb.set_callback(object); }
+ template<class _Object> static devcb_base &set_out_dtra_callback(device_t &device, _Object object) { return downcast<z80scc_device &>(device).m_out_dtra_cb.set_callback(object); }
+ template<class _Object> static devcb_base &set_out_rtsa_callback(device_t &device, _Object object) { return downcast<z80scc_device &>(device).m_out_rtsa_cb.set_callback(object); }
+ template<class _Object> static devcb_base &set_out_wrdya_callback(device_t &device, _Object object) { return downcast<z80scc_device &>(device).m_out_wrdya_cb.set_callback(object); }
+ template<class _Object> static devcb_base &set_out_synca_callback(device_t &device, _Object object) { return downcast<z80scc_device &>(device).m_out_synca_cb.set_callback(object); }
+ template<class _Object> static devcb_base &set_out_txdb_callback(device_t &device, _Object object) { return downcast<z80scc_device &>(device).m_out_txdb_cb.set_callback(object); }
+ template<class _Object> static devcb_base &set_out_dtrb_callback(device_t &device, _Object object) { return downcast<z80scc_device &>(device).m_out_dtrb_cb.set_callback(object); }
+ template<class _Object> static devcb_base &set_out_rtsb_callback(device_t &device, _Object object) { return downcast<z80scc_device &>(device).m_out_rtsb_cb.set_callback(object); }
+ template<class _Object> static devcb_base &set_out_wrdyb_callback(device_t &device, _Object object) { return downcast<z80scc_device &>(device).m_out_wrdyb_cb.set_callback(object); }
+ template<class _Object> static devcb_base &set_out_syncb_callback(device_t &device, _Object object) { return downcast<z80scc_device &>(device).m_out_syncb_cb.set_callback(object); }
+ template<class _Object> static devcb_base &set_out_int_callback(device_t &device, _Object object) { return downcast<z80scc_device &>(device).m_out_int_cb.set_callback(object); }
+ template<class _Object> static devcb_base &set_out_rxdrqa_callback(device_t &device, _Object object) { return downcast<z80scc_device &>(device).m_out_rxdrqa_cb.set_callback(object); }
+ template<class _Object> static devcb_base &set_out_txdrqa_callback(device_t &device, _Object object) { return downcast<z80scc_device &>(device).m_out_txdrqa_cb.set_callback(object); }
+ template<class _Object> static devcb_base &set_out_rxdrqb_callback(device_t &device, _Object object) { return downcast<z80scc_device &>(device).m_out_rxdrqb_cb.set_callback(object); }
+ template<class _Object> static devcb_base &set_out_txdrqb_callback(device_t &device, _Object object) { return downcast<z80scc_device &>(device).m_out_txdrqb_cb.set_callback(object); }
+
+ static void configure_channels(device_t &device, int rxa, int txa, int rxb, int txb)
+ {
+ z80scc_device &dev = downcast<z80scc_device &>(device);
+ dev.m_rxca = rxa;
+ dev.m_txca = txa;
+ dev.m_rxcb = rxb;
+ dev.m_txcb = txb;
+ }
+
+ DECLARE_READ8_MEMBER( cd_ba_r );
+ DECLARE_WRITE8_MEMBER( cd_ba_w );
+ DECLARE_READ8_MEMBER( ba_cd_r );
+ DECLARE_WRITE8_MEMBER( ba_cd_w );
+
+ /* Definitions moved to z80scc.c for enhencements */
+ DECLARE_READ8_MEMBER( da_r ); // { return m_chanA->data_read(); }
+ DECLARE_WRITE8_MEMBER( da_w ); // { m_chanA->data_write(data); }
+ DECLARE_READ8_MEMBER( db_r ); // { return m_chanB->data_read(); }
+ DECLARE_WRITE8_MEMBER( db_w ); // { m_chanB->data_write(data); }
+
+ DECLARE_READ8_MEMBER( ca_r ) { return m_chanA->control_read(); }
+ DECLARE_WRITE8_MEMBER( ca_w ) { m_chanA->control_write(data); }
+ DECLARE_READ8_MEMBER( cb_r ) { return m_chanB->control_read(); }
+ DECLARE_WRITE8_MEMBER( cb_w ) { m_chanB->control_write(data); }
+
+ // interrupt acknowledge
+ int m1_r();
+
+ DECLARE_WRITE_LINE_MEMBER( rxa_w ) { m_chanA->write_rx(state); }
+ DECLARE_WRITE_LINE_MEMBER( rxb_w ) { m_chanB->write_rx(state); }
+ DECLARE_WRITE_LINE_MEMBER( ctsa_w ) { m_chanA->cts_w(state); }
+ DECLARE_WRITE_LINE_MEMBER( ctsb_w ) { m_chanB->cts_w(state); }
+ DECLARE_WRITE_LINE_MEMBER( dcda_w ) { m_chanA->dcd_w(state); }
+ DECLARE_WRITE_LINE_MEMBER( dcdb_w ) { m_chanB->dcd_w(state); }
+ DECLARE_WRITE_LINE_MEMBER( ria_w ) { m_chanA->ri_w(state); }
+ DECLARE_WRITE_LINE_MEMBER( rib_w ) { m_chanB->ri_w(state); }
+ DECLARE_WRITE_LINE_MEMBER( rxca_w ) { m_chanA->rxc_w(state); }
+ DECLARE_WRITE_LINE_MEMBER( rxcb_w ) { m_chanB->rxc_w(state); }
+ DECLARE_WRITE_LINE_MEMBER( txca_w ) { m_chanA->txc_w(state); }
+ DECLARE_WRITE_LINE_MEMBER( txcb_w ) { m_chanB->txc_w(state); }
+ 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); }
+
+protected:
+ // device-level overrides
+ virtual void device_start();
+ virtual void device_reset();
+ virtual machine_config_constructor device_mconfig_additions() const;
+
+ // device_z80daisy_interface overrides
+ virtual int z80daisy_irq_state();
+ virtual int z80daisy_irq_ack();
+ virtual void z80daisy_irq_reti();
+
+ // internal interrupt management
+ void check_interrupts();
+ void reset_interrupts();
+ UINT8 modify_vector(UINT8 vect, int i, UINT8 src);
+ void trigger_interrupt(int index, int state);
+ int get_channel_index(z80scc_channel *ch) { return (ch == m_chanA) ? 0 : 1; }
+
+ // Variants in the SCC family
+ enum
+ {
+ TYPE_Z80SCC = 0x001,
+ TYPE_SCC8030 = 0x002,
+ TYPE_SCC80C30 = 0x004,
+ TYPE_SCC80230 = 0x008,
+ TYPE_SCC8530 = 0x010,
+ TYPE_SCC85C30 = 0x020,
+ TYPE_SCC85230 = 0x040,
+ TYPE_SCC85233 = 0x080,
+ TYPE_SCC8523L = 0x100
+ };
+
+#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,
+ CHANNEL_B
+ };
+
+ required_device<z80scc_channel> m_chanA;
+ required_device<z80scc_channel> m_chanB;
+
+ // internal state
+ int m_rxca;
+ int m_txca;
+ int m_rxcb;
+ int m_txcb;
+
+ devcb_write_line m_out_txda_cb;
+ devcb_write_line m_out_dtra_cb;
+ devcb_write_line m_out_rtsa_cb;
+ devcb_write_line m_out_wrdya_cb;
+ devcb_write_line m_out_synca_cb;
+
+ devcb_write_line m_out_txdb_cb;
+ devcb_write_line m_out_dtrb_cb;
+ devcb_write_line m_out_rtsb_cb;
+ devcb_write_line m_out_wrdyb_cb;
+ devcb_write_line m_out_syncb_cb;
+
+ devcb_write_line m_out_int_cb;
+ devcb_write_line m_out_rxdrqa_cb;
+ devcb_write_line m_out_txdrqa_cb;
+ devcb_write_line m_out_rxdrqb_cb;
+ devcb_write_line m_out_txdrqb_cb;
+
+ int m_int_state[6]; // interrupt state
+
+ int m_variant;
+ UINT8 m_wr0_ptrbits;
+};
+
+class scc8030_device : public z80scc_device
+{
+public :
+ scc8030_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+};
+
+class scc80C30_device : public z80scc_device
+{
+public :
+ scc80C30_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+};
+
+class scc80230_device : public z80scc_device
+{
+public :
+ scc80230_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+};
+
+class scc8530_device : public z80scc_device
+{
+public :
+ scc8530_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+};
+
+class scc85C30_device : public z80scc_device
+{
+public :
+ scc85C30_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+};
+
+class scc85230_device : public z80scc_device
+{
+public :
+ scc85230_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+};
+
+class scc85233_device : public z80scc_device
+{
+public :
+ scc85233_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+};
+
+class scc8523L_device : public z80scc_device
+{
+public :
+ scc8523L_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 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__
diff --git a/src/devices/machine/z80sio.c b/src/devices/machine/z80sio.c
new file mode 100644
index 00000000000..09c0e46663f
--- /dev/null
+++ b/src/devices/machine/z80sio.c
@@ -0,0 +1,1429 @@
+// license:BSD-3-Clause
+// copyright-holders:Curt Coder, Joakim Larsson Edstrom
+/***************************************************************************
+
+ Z80-SIO Serial Input/Output emulation
+
+ The variants in the SIO family are only different in the packaging
+ but has the same register features. However, since some signals are
+ not connected to the pins on the package or share a pin with another
+ signal the functionality is limited. However, this driver does not
+ check that an operation is invalid because of package type but relies
+ on the software to be adapated for the particular version.
+
+ Package: DIP40 SIO/0, SIO/1, SIO/2, SIO/9
+ QFP44 SIO/3
+ PLCC44 SIO/4
+ -------------------------------------------------------------------
+ Channels / Full Duplex 2 / Y
+ Synch data rates 2Mhz 500Kbps
+ 4MHz 800Kbps
+ 6MHz 1200Kbps
+ 10MHz 2500Kbps
+ -- Asynchrounous features -------------------------------------------
+ 5-8 bit per char Y
+ 1,1.5,2 stop bits Y
+ odd/even parity Y
+ x1,x16,x32,x64 Y
+ break det/gen Y
+ parity, framing & Y
+ overrun error det Y
+ -- Byte oriented synchrounous features -------------------------------
+ Int/ext char sync Y
+ 1/2 synch chars Y
+ Aut synch char insertion Y
+ Aut CRC gen/det Y
+ -- SDLC/HDLC capabilities --------------------------------------------
+ Abort seq gen/chk Y
+ Aut zero ins/det Y
+ Aut flag insert Y
+ Addr field rec Y
+ 1-fld resid hand Y
+ Valid rec msg protection Y
+ --
+ Receiver FIFO 3
+ Transmitter FIFO 1
+ -------------------------------------------------------------------------
+ * = Features that has been implemented n/a = features that will not
+***************************************************************************/
+
+#include "z80sio.h"
+
+//**************************************************************************
+// MACROS / CONSTANTS
+//**************************************************************************
+
+#define VERBOSE 0
+
+#define LOG(x) do { if (VERBOSE) logerror x; } while (0)
+#if VERBOSE == 2
+#define logerror printf
+#endif
+
+#ifdef _MSC_VER
+#define LLFORMAT "%I64%"
+#define FUNCNAME __func__
+#else
+#define LLFORMAT "%lld"
+#define FUNCNAME __PRETTY_FUNCTION__
+#endif
+
+#define CHANA_TAG "cha"
+#define CHANB_TAG "chb"
+
+
+
+//**************************************************************************
+// DEVICE DEFINITIONS
+//**************************************************************************
+
+// device type definition
+const device_type Z80SIO = &device_creator<z80sio_device>;
+const device_type Z80SIO_CHANNEL = &device_creator<z80sio_channel>;
+
+//-------------------------------------------------
+// device_mconfig_additions -
+//-------------------------------------------------
+
+MACHINE_CONFIG_FRAGMENT( z80sio )
+MCFG_DEVICE_ADD(CHANA_TAG, Z80SIO_CHANNEL, 0)
+MCFG_DEVICE_ADD(CHANB_TAG, Z80SIO_CHANNEL, 0)
+MACHINE_CONFIG_END
+
+machine_config_constructor z80sio_device::device_mconfig_additions() const
+{
+ return MACHINE_CONFIG_NAME( z80sio );
+}
+
+//**************************************************************************
+// LIVE DEVICE
+//**************************************************************************
+
+//-------------------------------------------------
+// z80sio_device - constructor
+//-------------------------------------------------
+
+z80sio_device::z80sio_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, UINT32 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)
+{
+ for (int i = 0; i < 8; i++)
+ m_int_state[i] = 0;
+}
+
+z80sio_device::z80sio_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 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)
+{
+ for (int i = 0; i < 8; i++)
+ m_int_state[i] = 0;
+}
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+void z80sio_device::device_start()
+{
+ LOG(("%s\n", FUNCNAME));
+ // resolve callbacks
+ m_out_txda_cb.resolve_safe();
+ m_out_dtra_cb.resolve_safe();
+ m_out_rtsa_cb.resolve_safe();
+ m_out_wrdya_cb.resolve_safe();
+ m_out_synca_cb.resolve_safe();
+ m_out_txdb_cb.resolve_safe();
+ m_out_dtrb_cb.resolve_safe();
+ m_out_rtsb_cb.resolve_safe();
+ m_out_wrdyb_cb.resolve_safe();
+ m_out_syncb_cb.resolve_safe();
+ m_out_int_cb.resolve_safe();
+ m_out_rxdrqa_cb.resolve_safe();
+ m_out_txdrqa_cb.resolve_safe();
+ m_out_rxdrqb_cb.resolve_safe();
+ m_out_txdrqb_cb.resolve_safe();
+
+ // configure channel A
+ m_chanA->m_rxc = m_rxca;
+ m_chanA->m_txc = m_txca;
+
+ // configure channel B
+ m_chanB->m_rxc = m_rxcb;
+ m_chanB->m_txc = m_txcb;
+
+ // state saving
+ save_item(NAME(m_int_state));
+}
+
+
+//-------------------------------------------------
+// device_reset - device-specific reset
+//-------------------------------------------------
+void z80sio_device::device_reset()
+{
+ LOG(("%s \"%s\" \n", FUNCNAME, tag()));
+
+ m_chanA->reset();
+ m_chanB->reset();
+}
+
+//-------------------------------------------------
+// z80daisy_irq_state - get interrupt status
+//-------------------------------------------------
+int z80sio_device::z80daisy_irq_state()
+{
+ int state = 0;
+ int i;
+
+
+ LOG(("%s %s A:%d%d%d%d B:%d%d%d%d ",FUNCNAME, 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]));
+
+ // loop over all interrupt sources
+ for (i = 0; i < 8; i++)
+ {
+ // if we're servicing a request, don't indicate more interrupts
+ if (m_int_state[i] & Z80_DAISY_IEO)
+ {
+ state |= Z80_DAISY_IEO;
+ break;
+ }
+ state |= m_int_state[i];
+ }
+
+ LOG(("Interrupt State %u\n", state));
+
+ return state;
+}
+
+
+//-------------------------------------------------
+// z80daisy_irq_ack - interrupt acknowledge
+//-------------------------------------------------
+int z80sio_device::z80daisy_irq_ack()
+{
+ int i;
+
+ LOG(("%s %s \n",FUNCNAME, tag()));
+
+ // loop over all interrupt sources
+ for (i = 0; i < 8; i++)
+ {
+ // find the first channel with an interrupt requested
+ if (m_int_state[i] & Z80_DAISY_INT)
+ {
+ // clear interrupt, switch to the IEO state, and update the IRQs
+ m_int_state[i] = Z80_DAISY_IEO;
+ m_chanA->m_rr0 &= ~z80sio_channel::RR0_INTERRUPT_PENDING;
+ check_interrupts();
+
+ //LOG(("%s %s \n",FUNCNAME, tag(), m_chanB->m_rr2));
+
+ return m_chanB->m_rr2;
+ }
+ }
+
+ //logerror("z80sio_irq_ack: failed to find an interrupt to ack!\n");
+
+ return m_chanB->m_rr2;
+}
+
+
+//-------------------------------------------------
+// z80daisy_irq_reti - return from interrupt
+//-------------------------------------------------
+void z80sio_device::z80daisy_irq_reti()
+{
+ int i;
+
+ LOG(("%s %s \n",FUNCNAME, tag()));
+
+ // loop over all interrupt sources
+ for (i = 0; i < 8; i++)
+ {
+ // find the first channel with an IEO pending
+ if (m_int_state[i] & Z80_DAISY_IEO)
+ {
+ // clear the IEO state and update the IRQs
+ m_int_state[i] &= ~Z80_DAISY_IEO;
+ check_interrupts();
+ return;
+ }
+ }
+
+ //logerror("z80sio_irq_reti: failed to find an interrupt to clear IEO on!\n");
+}
+
+
+//-------------------------------------------------
+// check_interrupts -
+//-------------------------------------------------
+void z80sio_device::check_interrupts()
+{
+ LOG(("%s %s \n",FUNCNAME, tag()));
+ int state = (z80daisy_irq_state() & Z80_DAISY_INT) ? ASSERT_LINE : CLEAR_LINE;
+ m_out_int_cb(state);
+}
+
+
+//-------------------------------------------------
+// reset_interrupts -
+//-------------------------------------------------
+void z80sio_device::reset_interrupts()
+{
+ LOG(("%s %s \n",FUNCNAME, tag()));
+ // reset internal interrupt sources
+ for (int i = 0; i < 8; i++)
+ {
+ m_int_state[i] = 0;
+ }
+
+ check_interrupts();
+}
+
+
+//-------------------------------------------------
+// trigger_interrupt - TODO: needs attention for SIO
+//-------------------------------------------------
+void z80sio_device::trigger_interrupt(int index, int state)
+{
+ UINT8 vector = m_chanB->m_wr2;
+ int priority;
+
+ LOG(("%s %s \n",FUNCNAME, tag()));
+
+#if 0
+ if((m_variant == TYPE_I8274) || (m_variant == TYPE_UPD7201))
+ {
+ int prio_level = 0;
+ switch(state)
+ {
+ case z80sio_channel::INT_TRANSMIT:
+ prio_level = 1;
+ break;
+ case z80sio_channel::INT_RECEIVE:
+ case z80sio_channel::INT_SPECIAL:
+ prio_level = 0;
+ break;
+ case z80sio_channel::INT_EXTERNAL:
+ prio_level = 2;
+ break;
+ }
+
+ if(m_chanA->m_wr2 & z80sio_channel::WR2_PRIORITY)
+ {
+ priority = (prio_level * 2) + index;
+ }
+ else
+ {
+ priority = (prio_level == 2) ? index + 4 : ((index * 2) + prio_level);
+ }
+ if (m_chanB->m_wr1 & z80sio_channel::WR1_STATUS_VECTOR)
+ {
+ vector = (!index << 2) | state;
+ if((m_chanA->m_wr1 & 0x18) == z80sio_channel::WR2_MODE_8086_8088)
+ {
+ vector = (m_chanB->m_wr2 & 0xf8) | vector;
+ }
+ else
+ {
+ vector = (m_chanB->m_wr2 & 0xe3) | (vector << 2);
+ }
+ }
+ }
+ else
+ {
+#endif
+ priority = (index << 2) | state;
+ if (m_chanB->m_wr1 & z80sio_channel::WR1_STATUS_VECTOR)
+ {
+ // status affects vector
+ vector = (m_chanB->m_wr2 & 0xf1) | (!index << 3) | (state << 1);
+ }
+// }
+ // update vector register
+ m_chanB->m_rr2 = vector;
+
+ // trigger interrupt
+ m_int_state[priority] |= Z80_DAISY_INT;
+ m_chanA->m_rr0 |= z80sio_channel::RR0_INTERRUPT_PENDING;
+
+ // check for interrupt
+ check_interrupts();
+}
+
+
+//-------------------------------------------------
+// m1_r - interrupt acknowledge
+//-------------------------------------------------
+int z80sio_device::m1_r()
+{
+ LOG(("%s %s \n",FUNCNAME, tag()));
+ return z80daisy_irq_ack();
+}
+
+
+//-------------------------------------------------
+// cd_ba_r -
+//-------------------------------------------------
+READ8_MEMBER( z80sio_device::cd_ba_r )
+{
+ int ba = BIT(offset, 0);
+ int cd = BIT(offset, 1);
+ z80sio_channel *channel = ba ? m_chanB : m_chanA;
+
+ //LOG(("%s %s %c %s read\n",FUNCNAME, tag(), 'A' + ba ? 1 : 0 , cd ? "control" : "data" ));
+
+ return cd ? channel->control_read() : channel->data_read();
+}
+
+
+//-------------------------------------------------
+// cd_ba_w -
+//-------------------------------------------------
+WRITE8_MEMBER( z80sio_device::cd_ba_w )
+{
+ int ba = BIT(offset, 0);
+ int cd = BIT(offset, 1);
+ z80sio_channel *channel = ba ? m_chanB : m_chanA;
+
+ LOG(("%s %s %c %s write\n",FUNCNAME, tag(), 'A' + ba ? 1 : 0 , cd ? "control" : "data" ));
+
+ if (cd)
+ channel->control_write(data);
+ else
+ channel->data_write(data);
+}
+
+
+//-------------------------------------------------
+// ba_cd_r -
+//-------------------------------------------------
+READ8_MEMBER( z80sio_device::ba_cd_r )
+{
+ int ba = BIT(offset, 1);
+ int cd = BIT(offset, 0);
+ z80sio_channel *channel = ba ? m_chanB : m_chanA;
+
+ //LOG(("%s %s %c %s read\n",FUNCNAME, tag(), 'A' + ba ? 1 : 0 , cd ? "control" : "data" ));
+
+ return cd ? channel->control_read() : channel->data_read();
+}
+
+
+//-------------------------------------------------
+// ba_cd_w -
+//-------------------------------------------------
+WRITE8_MEMBER( z80sio_device::ba_cd_w )
+{
+ int ba = BIT(offset, 1);
+ int cd = BIT(offset, 0);
+ z80sio_channel *channel = ba ? m_chanB : m_chanA;
+
+ LOG(("%s %s %c %s write\n",FUNCNAME, tag(), 'A' + ba ? 1 : 0 , cd ? "control" : "data" ));
+
+ if (cd)
+ channel->control_write(data);
+ else
+ channel->data_write(data);
+}
+
+//**************************************************************************
+// SIO CHANNEL
+//**************************************************************************
+
+//-------------------------------------------------
+// z80sio_channel - constructor
+//-------------------------------------------------
+z80sio_channel::z80sio_channel(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 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_fifo(-1),
+ 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
+ m_rr0 = m_rr1 = m_rr2 = 0;
+ m_wr0 = m_wr1 = m_wr2 = m_wr3 = m_wr4 = m_wr5 = m_wr6 = m_wr7 = 0;
+
+ for (int i = 0; i < 3; i++)
+ {
+ m_rx_data_fifo[i] = 0;
+ m_rx_error_fifo[i] = 0;
+ }
+}
+
+
+//-------------------------------------------------
+// start - channel startup
+//-------------------------------------------------
+void z80sio_channel::device_start()
+{
+ LOG(("%s\n",FUNCNAME));
+ m_uart = downcast<z80sio_device *>(owner());
+ m_index = m_uart->get_channel_index(this);
+ m_variant = ((z80sio_device *)m_owner)->m_variant;
+
+ // state saving
+ save_item(NAME(m_rr0));
+ save_item(NAME(m_rr1));
+ save_item(NAME(m_rr2));
+ save_item(NAME(m_wr0));
+ save_item(NAME(m_wr1));
+ save_item(NAME(m_wr2));
+ save_item(NAME(m_wr3));
+ save_item(NAME(m_wr4));
+ save_item(NAME(m_wr5));
+ save_item(NAME(m_wr6));
+ save_item(NAME(m_wr7));
+ save_item(NAME(m_rx_data_fifo));
+ save_item(NAME(m_rx_error_fifo));
+ save_item(NAME(m_rx_error));
+ save_item(NAME(m_rx_fifo));
+ save_item(NAME(m_rx_clock));
+ save_item(NAME(m_rx_first));
+ save_item(NAME(m_rx_break));
+ save_item(NAME(m_rx_rr0_latch));
+ save_item(NAME(m_sh));
+ save_item(NAME(m_cts));
+ save_item(NAME(m_dcd));
+ save_item(NAME(m_tx_data));
+ save_item(NAME(m_tx_clock));
+ save_item(NAME(m_dtr));
+ save_item(NAME(m_rts));
+ save_item(NAME(m_sync));
+ save_item(NAME(m_variant));
+ device_serial_interface::register_save_state(machine().save(), this);
+}
+
+
+//-------------------------------------------------
+// reset - reset channel status
+//-------------------------------------------------
+void z80sio_channel::device_reset()
+{
+ LOG(("%s\n", FUNCNAME));
+
+ // Reset RS232 emulation
+ receive_register_reset();
+ transmit_register_reset();
+
+ // disable receiver
+ m_wr3 &= ~WR3_RX_ENABLE;
+
+ // disable transmitter
+ m_wr5 &= ~WR5_TX_ENABLE;
+ m_rr0 |= RR0_TX_BUFFER_EMPTY;
+ m_rr1 |= RR1_ALL_SENT;
+
+ // reset external lines
+ set_rts(1);
+ set_dtr(1);
+
+ // reset interrupts
+ if (m_index == z80sio_device::CHANNEL_A)
+ {
+ m_uart->reset_interrupts();
+ }
+}
+
+void z80sio_channel::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
+{
+ device_serial_interface::device_timer(timer, id, param, ptr);
+}
+
+//-------------------------------------------------
+// tra_callback -
+//-------------------------------------------------
+void z80sio_channel::tra_callback()
+{
+ if (!(m_wr5 & WR5_TX_ENABLE))
+ {
+ LOG(("%" I64FMT "d %s() \"%s \"Channel %c transmit mark 1 m_wr5:%02x\n", machine().firstcpu->total_cycles(), FUNCNAME, m_owner->tag(), 'A' + m_index, m_wr5));
+ // transmit mark
+ if (m_index == z80sio_device::CHANNEL_A)
+ m_uart->m_out_txda_cb(1);
+ else
+ m_uart->m_out_txdb_cb(1);
+ }
+ else if (m_wr5 & WR5_SEND_BREAK)
+ {
+ LOG(("%" I64FMT "d %s() \"%s \"Channel %c send break 1 m_wr5:%02x\n", machine().firstcpu->total_cycles(), FUNCNAME, m_owner->tag(), 'A' + m_index, m_wr5));
+ // transmit break
+ if (m_index == z80sio_device::CHANNEL_A)
+ m_uart->m_out_txda_cb(0);
+ else
+ m_uart->m_out_txdb_cb(0);
+ }
+ else if (!is_transmit_register_empty())
+ {
+ int db = transmit_register_get_data_bit();
+
+ LOG(("%" I64FMT "d %s() \"%s \"Channel %c transmit data bit %d m_wr5:%02x\n", machine().firstcpu->total_cycles(), FUNCNAME, m_owner->tag(), 'A' + m_index, db, m_wr5));
+ // transmit data
+ if (m_index == z80sio_device::CHANNEL_A)
+ m_uart->m_out_txda_cb(db);
+ else
+ m_uart->m_out_txdb_cb(db);
+ }
+ else
+ {
+ LOG(("%" I64FMT "d %s() \"%s \"Channel %c Failed to transmit m_wr5:%02x\n", machine().firstcpu->total_cycles(), FUNCNAME, m_owner->tag(), 'A' + m_index, m_wr5));
+ logerror("%s \"%s \"Channel %c Failed to transmit\n", FUNCNAME, m_owner->tag(), 'A' + m_index);
+ }
+}
+
+
+//-------------------------------------------------
+// tra_complete -
+//-------------------------------------------------
+void z80sio_channel::tra_complete()
+{
+ LOG(("%s %s\n",FUNCNAME, tag()));
+ if ((m_wr5 & WR5_TX_ENABLE) && !(m_wr5 & WR5_SEND_BREAK) && !(m_rr0 & RR0_TX_BUFFER_EMPTY))
+ {
+ LOG(("%" I64FMT "d %s() \"%s \"Channel %c Transmit Data Byte '%02x' m_wr5:%02x\n", machine().firstcpu->total_cycles(), FUNCNAME, m_owner->tag(), 'A' + m_index, m_tx_data, m_wr5));
+
+ transmit_register_setup(m_tx_data);
+
+ // empty transmit buffer
+ m_rr0 |= RR0_TX_BUFFER_EMPTY;
+
+ if (m_wr1 & WR1_TX_INT_ENABLE)
+ m_uart->trigger_interrupt(m_index, INT_TRANSMIT);
+ }
+ else if (m_wr5 & WR5_SEND_BREAK)
+ {
+ LOG(("%" I64FMT "d %s() \"%s \"Channel %c Transmit Break 0 m_wr5:%02x\n", machine().firstcpu->total_cycles(), FUNCNAME, m_owner->tag(), 'A' + m_index, m_wr5));
+ // transmit break
+ if (m_index == z80sio_device::CHANNEL_A)
+ m_uart->m_out_txda_cb(0);
+ else
+ m_uart->m_out_txdb_cb(0);
+ }
+ else
+ {
+ LOG(("%" I64FMT "d %s() \"%s \"Channel %c Transmit Mark 1 m_wr5:%02x\n", machine().firstcpu->total_cycles(), FUNCNAME, m_owner->tag(), 'A' + m_index, m_wr5));
+ // transmit mark
+ if (m_index == z80sio_device::CHANNEL_A)
+ m_uart->m_out_txda_cb(1);
+ else
+ m_uart->m_out_txdb_cb(1);
+ }
+
+ // if transmit buffer is empty
+ if (m_rr0 & RR0_TX_BUFFER_EMPTY)
+ {
+ LOG(("%" I64FMT "d %s() \"%s \"Channel %c Transmit buffer empty m_wr5:%02x\n", machine().firstcpu->total_cycles(), FUNCNAME, m_owner->tag(), 'A' + m_index, m_wr5));
+ // then all characters have been sent
+ m_rr1 |= RR1_ALL_SENT;
+
+ // when the RTS bit is reset, the _RTS output goes high after the transmitter empties
+ if (!m_rts)
+ set_rts(1);
+ }
+}
+
+
+//-------------------------------------------------
+// rcv_callback -
+//-------------------------------------------------
+void z80sio_channel::rcv_callback()
+{
+ if (m_wr3 & WR3_RX_ENABLE)
+ {
+ LOG(("%" I64FMT "d %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);
+ }
+#if 0
+ else
+ {
+ LOG(("%" I64FMT "d %s() \"%s \"Channel %c Received Data Bit but receiver is disabled\n", machine().firstcpu->total_cycles(), FUNCNAME, m_owner->tag(), 'A' + m_index));
+ logerror("Z80SIO %s() \"%s \"Channel %c Received data dit but receiver is disabled\n", __func__, m_owner->tag(), 'A' + m_index);
+ }
+#endif
+}
+
+
+//-------------------------------------------------
+// rcv_complete -
+//-------------------------------------------------
+void z80sio_channel::rcv_complete()
+{
+ UINT8 data;
+
+ receive_register_extract();
+ data = get_received_char();
+ LOG(("%" I64FMT "d %s() \"%s \"Channel %c Received Data %02x\n", machine().firstcpu->total_cycles(), FUNCNAME, m_owner->tag(), 'A' + m_index, data));
+ receive_data(data);
+}
+
+
+//-------------------------------------------------
+// get_clock_mode - get clock divisor
+//-------------------------------------------------
+
+int z80sio_channel::get_clock_mode()
+{
+ LOG(("%s %s\n",FUNCNAME, tag()));
+ int clocks = 1;
+
+ switch (m_wr4 & WR4_CLOCK_RATE_MASK)
+ {
+ case WR4_CLOCK_RATE_X1: clocks = 1; break;
+ case WR4_CLOCK_RATE_X16: clocks = 16; break;
+ case WR4_CLOCK_RATE_X32: clocks = 32; break;
+ case WR4_CLOCK_RATE_X64: clocks = 64; break;
+ }
+
+ return clocks;
+}
+
+/* From "uPD7201/7201A MULTI PROTOCOL SERIAL COMMUNICATION CONTROLLER" by NEC:
+"RTSA (Request to Send A): The state of the RTS bit (01 of the CR5 register) controls this pin. If
+the RTS bit is reset in the asynchronous mode, a high level will not be output on the RTS pin until
+all transmit characters are written and the all sent bit (D0 of the SR1 register) is set. In the
+synchronous mode, the state of the RTS bit is used as is. That is, when the RTS bit is 0, the RTS
+pin is 1. When the RTS bit is 1, the RTS pin is O."
+
+CR5 = m_wr5 and SR1 = m_rr1
+
+*/
+
+void z80sio_channel::set_rts(int state)
+{
+ LOG(("%s(%d) \"%s\" Channel %c \n", FUNCNAME, state, m_owner->tag(), 'A' + m_index));
+ if (m_index == z80sio_device::CHANNEL_A)
+ m_uart->m_out_rtsa_cb(state);
+ else
+ m_uart->m_out_rtsb_cb(state);
+}
+
+void z80sio_channel::update_rts()
+{
+ // LOG(("%s(%d) \"%s\" Channel %c \n", FUNCNAME, state, m_owner->tag(), 'A' + m_index));
+ LOG(("%s() \"%s\" Channel %c \n", FUNCNAME, m_owner->tag(), 'A' + m_index));
+ if (m_wr5 & WR5_RTS)
+ {
+ // when the RTS bit is set, the _RTS output goes low
+ set_rts(0);
+ m_rts = 1;
+ }
+ else
+ {
+ // when the RTS bit is reset, the _RTS output goes high after the transmitter empties
+ m_rts = 0;
+ }
+
+ // data terminal ready output follows the state programmed into the DTR bit*/
+ set_dtr((m_wr5 & WR5_DTR) ? 0 : 1);
+}
+
+//-------------------------------------------------
+// get_stop_bits - get number of stop bits
+//-------------------------------------------------
+
+device_serial_interface::stop_bits_t z80sio_channel::get_stop_bits()
+{
+ LOG(("%s %s\n",FUNCNAME, tag()));
+ switch (m_wr4 & WR4_STOP_BITS_MASK)
+ {
+ case WR4_STOP_BITS_1: return STOP_BITS_1;
+ case WR4_STOP_BITS_1_5: return STOP_BITS_1_5;
+ case WR4_STOP_BITS_2: return STOP_BITS_2;
+ }
+
+ return STOP_BITS_0;
+}
+
+
+//-------------------------------------------------
+// get_rx_word_length - get receive word length
+//-------------------------------------------------
+
+int z80sio_channel::get_rx_word_length()
+{
+ LOG(("%s %s\n",FUNCNAME, tag()));
+ int bits = 5;
+
+ switch (m_wr3 & WR3_RX_WORD_LENGTH_MASK)
+ {
+ case WR3_RX_WORD_LENGTH_5: bits = 5; break;
+ case WR3_RX_WORD_LENGTH_6: bits = 6; break;
+ case WR3_RX_WORD_LENGTH_7: bits = 7; break;
+ case WR3_RX_WORD_LENGTH_8: bits = 8; break;
+ }
+
+ return bits;
+}
+
+
+//-------------------------------------------------
+// get_tx_word_length - get transmit word length
+//-------------------------------------------------
+
+int z80sio_channel::get_tx_word_length()
+{
+ LOG(("%s %s\n",FUNCNAME, tag()));
+ int bits = 5;
+
+ switch (m_wr5 & WR5_TX_WORD_LENGTH_MASK)
+ {
+ case WR5_TX_WORD_LENGTH_5: bits = 5; break;
+ case WR5_TX_WORD_LENGTH_6: bits = 6; break;
+ case WR5_TX_WORD_LENGTH_7: bits = 7; break;
+ case WR5_TX_WORD_LENGTH_8: bits = 8; break;
+ }
+
+ return bits;
+}
+
+/*
+ * This register contains the status of the receive and transmit buffers; the
+ * DCD, CTS, and SYNC inputs; the Transmit Underrun/EOM latch; and the
+ * Break/Abort latch. */
+UINT8 z80sio_channel::do_sioreg_rr0()
+{
+ LOG(("%s %s\n",FUNCNAME, tag()));
+ return m_rr0;
+}
+/*
+ * This register contains the Special Receive condition status bits and Residue
+ * codes for the I-Field in the SDLC Receive Mode. */
+UINT8 z80sio_channel::do_sioreg_rr1()
+{
+ LOG(("%s %s\n",FUNCNAME, tag()));
+ return m_rr1;
+}
+/*
+ * This register contains the interrupt vector written into WR2 if the Status
+Affects Vector control bit is not set. If the control bit is set, it contains the
+modified vector listed in the Status Affects Vector paragraph of the Write
+Register 1 section. When this register is read, the vector returned is modi-
+fied by the highest priority interrupting condition at the time of the read. If
+no interrupts are pending, the vector is modified with V3 = 0, V2 = 1, and
+V1 = 1. This register is read only through Channel B. */
+UINT8 z80sio_channel::do_sioreg_rr2()
+{
+ LOG(("%s %s\n",FUNCNAME, tag()));
+ // channel B only
+ return m_index == z80sio_device::CHANNEL_B ? m_rr2 : 0;
+}
+
+
+//-------------------------------------------------
+// control_read - read control register
+//-------------------------------------------------
+
+UINT8 z80sio_channel::control_read()
+{
+ UINT8 data = 0;
+ UINT8 reg = m_wr0 & WR0_REGISTER_MASK;
+
+ //LOG(("%s %s\n",FUNCNAME, tag()));
+ if (reg != 0)
+ {
+ // mask out register index
+ m_wr0 &= ~WR0_REGISTER_MASK;
+ }
+
+ switch (reg)
+ {
+ case REG_RR0_STATUS: data = do_sioreg_rr0(); break;
+ case REG_RR1_SPEC_RCV_COND: data = do_sioreg_rr1(); break;
+ case REG_RR2_INTERRUPT_VECT: data = do_sioreg_rr2(); break;
+ default:
+ logerror("Z80SIO \"%s\" Channel %c : Unsupported RRx register:%02x\n", m_owner->tag(), 'A' + m_index, reg);
+ LOG(("%s %s unsupported register:%02x\n",FUNCNAME, tag(), reg));
+ }
+
+ return data;
+}
+
+/* SIO CRC Initialization Code handling - candidate for breaking out in a z80sio_base class
+ Handle the WR0 CRC Reset/Init bits separatelly, needed by derived devices separatelly from the commands */
+void z80sio_channel::do_sioreg_wr0_resets(UINT8 data)
+{
+ LOG(("%s %s\n",FUNCNAME, tag()));
+ switch (data & WR0_CRC_RESET_CODE_MASK)
+ {
+ case WR0_CRC_RESET_NULL:
+ LOG(("Z80SIO \"%s\" Channel %c : CRC_RESET_NULL\n", m_owner->tag(), 'A' + m_index));
+ break;
+ case WR0_CRC_RESET_RX: /* In Synchronous mode: all Os (zeros) (CCITT-O CRC-16) */
+ LOG(("Z80SIO \"%s\" Channel %c : CRC_RESET_RX - not implemented\n", m_owner->tag(), 'A' + m_index));
+ break;
+ case WR0_CRC_RESET_TX: /* In HDLC mode: all 1s (ones) (CCITT-1) */
+ LOG(("Z80SIO \"%s\" Channel %c : CRC_RESET_TX - not implemented\n", m_owner->tag(), 'A' + m_index));
+ break;
+ case WR0_CRC_RESET_TX_UNDERRUN: /* Resets Tx underrun/EOM bit (D6 of the SRO register) */
+ LOG(("Z80SIO \"%s\" Channel %c : CRC_RESET_TX_UNDERRUN - not implemented\n", m_owner->tag(), 'A' + m_index));
+ break;
+ default: /* Will not happen unless someone messes with the mask */
+ logerror("Z80SIO \"%s\" Channel %c : %s Wrong CRC reset/init command:%02x\n", m_owner->tag(), 'A' + m_index, FUNCNAME, data & WR0_CRC_RESET_CODE_MASK);
+ }
+}
+
+void z80sio_channel::do_sioreg_wr0(UINT8 data)
+{
+ m_wr0 = data;
+ switch (data & WR0_COMMAND_MASK)
+ {
+ case WR0_NULL:
+ LOG(("Z80SIO \"%s\" Channel %c : Null\n", m_owner->tag(), 'A' + m_index));
+ break;
+ case WR0_RESET_EXT_STATUS:
+ // reset external/status interrupt
+ m_rr0 &= ~(RR0_DCD | RR0_SYNC_HUNT | RR0_CTS | RR0_BREAK_ABORT);
+ // release the latch
+ m_rx_rr0_latch = 0;
+ // update register to reflect wire values TODO: Check if this will fire new interrupts
+ if (!m_dcd) m_rr0 |= RR0_DCD;
+ if (m_sync) m_rr0 |= RR0_SYNC_HUNT;
+ if (m_cts) m_rr0 |= RR0_CTS;
+
+ LOG(("Z80SIO \"%s\" Channel %c : Reset External/Status Interrupt\n", m_owner->tag(), 'A' + m_index));
+ break;
+ case WR0_CHANNEL_RESET:
+ // channel reset
+ LOG(("Z80SIO \"%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(("Z80SIO \"%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(("Z80SIO \"%s\" Channel %c : Reset Transmitter Interrupt Pending\n", m_owner->tag(), 'A' + m_index));
+ logerror("Z80SIO \"%s\" Channel %c : unsupported command: Reset Transmitter Interrupt Pending\n", m_owner->tag(), 'A' + m_index);
+ break;
+ case WR0_ERROR_RESET:
+ // error reset
+ LOG(("Z80SIO \"%s\" Channel %c : Error Reset\n", m_owner->tag(), 'A' + m_index));
+ m_rr1 &= ~(RR1_CRC_FRAMING_ERROR | RR1_RX_OVERRUN_ERROR | RR1_PARITY_ERROR);
+ break;
+ case WR0_RETURN_FROM_INT:
+ // return from interrupt
+ LOG(("Z80SIO \"%s\" Channel %c : Return from Interrupt\n", m_owner->tag(), 'A' + m_index));
+ m_uart->z80daisy_irq_reti();
+ break;
+ default:
+ LOG(("Z80SIO \"%s\" Channel %c : Unsupported WR0 command %02x mask %02x\n", m_owner->tag(), 'A' + m_index, data, WR0_REGISTER_MASK));
+
+ }
+ do_sioreg_wr0_resets(data);
+}
+
+void z80sio_channel::do_sioreg_wr1(UINT8 data)
+{
+/* TODO: implement vector modifications when WR1 bit D2 is changed */
+ m_wr1 = data;
+ LOG(("Z80SIO \"%s\" Channel %c : External Interrupt Enable %u\n", m_owner->tag(), 'A' + m_index, (data & WR1_EXT_INT_ENABLE) ? 1 : 0));
+ LOG(("Z80SIO \"%s\" Channel %c : Transmit Interrupt Enable %u\n", m_owner->tag(), 'A' + m_index, (data & WR1_TX_INT_ENABLE) ? 1 : 0));
+ LOG(("Z80SIO \"%s\" Channel %c : Status Affects Vector %u\n", m_owner->tag(), 'A' + m_index, (data & WR1_STATUS_VECTOR) ? 1 : 0));
+ LOG(("Z80SIO \"%s\" Channel %c : Wait/Ready Enable %u\n", m_owner->tag(), 'A' + m_index, (data & WR1_WRDY_ENABLE) ? 1 : 0));
+ LOG(("Z80SIO \"%s\" Channel %c : Wait/Ready Function %s\n", m_owner->tag(), 'A' + m_index, (data & WR1_WRDY_FUNCTION) ? "Ready" : "Wait"));
+ LOG(("Z80SIO \"%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(("Z80SIO \"%s\" Channel %c : Receiver Interrupt Disabled\n", m_owner->tag(), 'A' + m_index));
+ break;
+
+ case WR1_RX_INT_FIRST:
+ LOG(("Z80SIO \"%s\" Channel %c : Receiver Interrupt on First Character\n", m_owner->tag(), 'A' + m_index));
+ break;
+
+ case WR1_RX_INT_ALL_PARITY:
+ LOG(("Z80SIO \"%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(("Z80SIO \"%s\" Channel %c : Receiver Interrupt on All Characters\n", m_owner->tag(), 'A' + m_index));
+ break;
+ }
+}
+
+void z80sio_channel::do_sioreg_wr2(UINT8 data)
+{
+ m_wr2 = data;
+ if (m_index == z80sio_device::CHANNEL_B)
+ {
+ if (m_wr1 & z80sio_channel::WR1_STATUS_VECTOR)
+ m_rr2 = ( m_rr2 & 0x0e ) | ( m_wr2 & 0xF1);
+ else
+ m_rr2 = m_wr2;
+ }
+ m_uart->check_interrupts();
+ LOG(("Z80SIO \"%s\" Channel %c : Interrupt Vector %02x\n", m_owner->tag(), 'A' + m_index, data));
+}
+
+void z80sio_channel::do_sioreg_wr3(UINT8 data)
+{
+ m_wr3 = data;
+ LOG(("Z80SIO \"%s\" Channel %c : Receiver Enable %u\n", m_owner->tag(), 'A' + m_index, (data & WR3_RX_ENABLE) ? 1 : 0));
+ LOG(("Z80SIO \"%s\" Channel %c : Auto Enables %u\n", m_owner->tag(), 'A' + m_index, (data & WR3_AUTO_ENABLES) ? 1 : 0));
+ LOG(("Z80SIO \"%s\" Channel %c : Receiver Bits/Character %u\n", m_owner->tag(), 'A' + m_index, get_rx_word_length()));
+}
+
+void z80sio_channel::do_sioreg_wr4(UINT8 data)
+{
+ m_wr4 = data;
+ LOG(("Z80SIO \"%s\" Channel %c : Parity Enable %u\n", m_owner->tag(), 'A' + m_index, (data & WR4_PARITY_ENABLE) ? 1 : 0));
+ LOG(("Z80SIO \"%s\" Channel %c : Parity %s\n", m_owner->tag(), 'A' + m_index, (data & WR4_PARITY_EVEN) ? "Even" : "Odd"));
+ LOG(("Z80SIO \"%s\" Channel %c : Stop Bits %s\n", m_owner->tag(), 'A' + m_index, stop_bits_tostring(get_stop_bits())));
+ LOG(("Z80SIO \"%s\" Channel %c : Clock Mode %uX\n", m_owner->tag(), 'A' + m_index, get_clock_mode()));
+}
+
+void z80sio_channel::do_sioreg_wr5(UINT8 data)
+{
+ m_wr5 = data;
+ LOG(("Z80SIO \"%s\" Channel %c : Transmitter Enable %u\n", m_owner->tag(), 'A' + m_index, (data & WR5_TX_ENABLE) ? 1 : 0));
+ LOG(("Z80SIO \"%s\" Channel %c : Transmitter Bits/Character %u\n", m_owner->tag(), 'A' + m_index, get_tx_word_length()));
+ LOG(("Z80SIO \"%s\" Channel %c : Send Break %u\n", m_owner->tag(), 'A' + m_index, (data & WR5_SEND_BREAK) ? 1 : 0));
+ LOG(("Z80SIO \"%s\" Channel %c : Request to Send %u\n", m_owner->tag(), 'A' + m_index, (data & WR5_RTS) ? 1 : 0));
+ LOG(("Z80SIO \"%s\" Channel %c : Data Terminal Ready %u\n", m_owner->tag(), 'A' + m_index, (data & WR5_DTR) ? 1 : 0));
+}
+
+void z80sio_channel::do_sioreg_wr6(UINT8 data)
+{
+ LOG(("Z80SIO \"%s\" Channel %c : Transmit Sync %02x\n", m_owner->tag(), 'A' + m_index, data));
+ m_sync = (m_sync & 0xff00) | data;
+}
+
+void z80sio_channel::do_sioreg_wr7(UINT8 data)
+{
+ LOG(("Z80SIO \"%s\" Channel %c : Receive Sync %02x\n", m_owner->tag(), 'A' + m_index, data));
+ m_sync = (data << 8) | (m_sync & 0xff);
+}
+
+//-------------------------------------------------
+// control_write - write control register
+//-------------------------------------------------
+void z80sio_channel::control_write(UINT8 data)
+{
+ UINT8 reg = m_wr0 & WR0_REGISTER_MASK;
+
+ if (reg != 0)
+ {
+ // mask out register index
+ m_wr0 &= ~WR0_REGISTER_MASK;
+ }
+
+ LOG(("\n%s(%02x) reg %02x\n", FUNCNAME, data, reg));
+
+ switch (reg)
+ {
+ case REG_WR0_COMMAND_REGPT: do_sioreg_wr0(data); break;
+ case REG_WR1_INT_DMA_ENABLE: do_sioreg_wr1(data); m_uart->check_interrupts(); break;
+ case REG_WR2_INT_VECTOR: do_sioreg_wr2(data); break;
+ case REG_WR3_RX_CONTROL: do_sioreg_wr3(data); update_serial(); break;
+ case REG_WR4_RX_TX_MODES: do_sioreg_wr4(data); update_serial(); break;
+ case REG_WR5_TX_CONTROL: do_sioreg_wr5(data); update_serial(); update_rts(); break;
+ case REG_WR6_SYNC_OR_SDLC_A: do_sioreg_wr6(data); break;
+ case REG_WR7_SYNC_OR_SDLC_F: do_sioreg_wr7(data); break;
+ default:
+ logerror("Z80SIO \"%s\" Channel %c : Unsupported WRx register:%02x\n", m_owner->tag(), 'A' + m_index, reg);
+ }
+}
+
+
+//-------------------------------------------------
+// data_read - read data register
+//-------------------------------------------------
+UINT8 z80sio_channel::data_read()
+{
+ UINT8 data = 0;
+
+ if (m_rx_fifo >= 0)
+ {
+ // load data from the FIFO
+ data = m_rx_data_fifo[m_rx_fifo];
+
+ // load error status from the FIFO
+ m_rr1 = (m_rr1 & ~(RR1_CRC_FRAMING_ERROR | RR1_RX_OVERRUN_ERROR | RR1_PARITY_ERROR)) | m_rx_error_fifo[m_rx_fifo];
+
+ // decrease FIFO pointer
+ m_rx_fifo--;
+
+ if (m_rx_fifo < 0)
+ {
+ // no more characters available in the FIFO
+ m_rr0 &= ~ RR0_RX_CHAR_AVAILABLE;
+ }
+ }
+
+ LOG(("Z80SIO \"%s\" Channel %c : Data Register Read '%02x'\n", m_owner->tag(), 'A' + m_index, data));
+
+ return data;
+}
+
+
+//-------------------------------------------------
+// data_write - write data register
+//-------------------------------------------------
+void z80sio_channel::data_write(UINT8 data)
+{
+ m_tx_data = data;
+
+ if ((m_wr5 & WR5_TX_ENABLE) && is_transmit_register_empty())
+ {
+ LOG(("Z80SIO \"%s\" Channel %c : Transmit Data Byte '%02x'\n", m_owner->tag(), 'A' + m_index, m_tx_data));
+
+ transmit_register_setup(m_tx_data);
+
+ // empty transmit buffer
+ m_rr0 |= RR0_TX_BUFFER_EMPTY;
+
+ if (m_wr1 & WR1_TX_INT_ENABLE)
+ m_uart->trigger_interrupt(m_index, INT_TRANSMIT);
+ }
+ else
+ {
+ LOG((" Transmitter %s, data byte dropped\n", m_wr5 & WR5_TX_ENABLE ? "not enabled" : "not emptied"));
+ m_rr0 &= ~RR0_TX_BUFFER_EMPTY;
+ }
+
+ m_rr1 &= ~RR1_ALL_SENT;
+}
+
+
+//-------------------------------------------------
+// receive_data - receive data word
+//-------------------------------------------------
+void z80sio_channel::receive_data(UINT8 data)
+{
+ LOG(("%s(%02x) %s:%c\n",FUNCNAME, data, tag(), 'A' + m_index));
+
+ if (m_rx_fifo == 2)
+ {
+ LOG((" Overrun detected\n"));
+ // receive overrun error detected
+ m_rx_error |= RR1_RX_OVERRUN_ERROR;
+
+ switch (m_wr1 & WR1_RX_INT_MODE_MASK)
+ {
+ case WR1_RX_INT_FIRST:
+ if (!m_rx_first)
+ {
+ m_uart->trigger_interrupt(m_index, INT_SPECIAL);
+ }
+ break;
+
+ case WR1_RX_INT_ALL_PARITY:
+ case WR1_RX_INT_ALL:
+ m_uart->trigger_interrupt(m_index, INT_SPECIAL);
+ break;
+ }
+ }
+ else
+ {
+ m_rx_fifo++;
+ }
+
+ // store received character and error status into FIFO
+ m_rx_data_fifo[m_rx_fifo] = data;
+ m_rx_error_fifo[m_rx_fifo] = m_rx_error;
+
+ m_rr0 |= RR0_RX_CHAR_AVAILABLE;
+
+ // receive interrupt
+ switch (m_wr1 & WR1_RX_INT_MODE_MASK)
+ {
+ case WR1_RX_INT_FIRST:
+ if (m_rx_first)
+ {
+ m_uart->trigger_interrupt(m_index, INT_RECEIVE);
+ m_rx_first = 0;
+ }
+ break;
+
+ case WR1_RX_INT_ALL_PARITY:
+ case WR1_RX_INT_ALL:
+ m_uart->trigger_interrupt(m_index, INT_RECEIVE);
+ break;
+ default:
+ LOG(("No interrupt triggered\n"));
+
+ }
+}
+
+
+//-------------------------------------------------
+// cts_w - clear to send handler
+//-------------------------------------------------
+
+WRITE_LINE_MEMBER( z80sio_channel::cts_w )
+{
+ LOG(("%s(%02x) %s:%c\n",FUNCNAME, state, tag(), 'A' + m_index));
+
+ if (m_cts != state)
+ {
+ // enable transmitter if in auto enables mode
+ if (!state)
+ if (m_wr3 & WR3_AUTO_ENABLES)
+ m_wr5 |= WR5_TX_ENABLE;
+
+ // set clear to send
+ m_cts = state;
+
+ if (!m_rx_rr0_latch)
+ {
+ if (!m_cts)
+ m_rr0 |= RR0_CTS;
+ else
+ m_rr0 &= ~RR0_CTS;
+
+ // trigger interrupt
+ if (m_wr1 & WR1_EXT_INT_ENABLE)
+ {
+ // trigger interrupt
+ m_uart->trigger_interrupt(m_index, INT_EXTERNAL);
+
+ // latch read register 0
+ m_rx_rr0_latch = 1;
+ }
+ }
+ }
+}
+
+
+//-------------------------------------------------
+// dcd_w - data carrier detected handler
+//-------------------------------------------------
+
+WRITE_LINE_MEMBER( z80sio_channel::dcd_w )
+{
+ LOG(("Z80SIO \"%s\" Channel %c : DCD %u\n", m_owner->tag(), 'A' + m_index, state));
+
+ if (m_dcd != state)
+ {
+ // enable receiver if in auto enables mode
+ if (!state)
+ if (m_wr3 & WR3_AUTO_ENABLES)
+ m_wr3 |= WR3_RX_ENABLE;
+
+ // set data carrier detect
+ m_dcd = state;
+
+ if (!m_rx_rr0_latch)
+ {
+ if (m_dcd)
+ m_rr0 |= RR0_DCD;
+ else
+ m_rr0 &= ~RR0_DCD;
+
+ if (m_wr1 & WR1_EXT_INT_ENABLE)
+ {
+ // trigger interrupt
+ m_uart->trigger_interrupt(m_index, INT_EXTERNAL);
+
+ // latch read register 0
+ m_rx_rr0_latch = 1;
+ }
+ }
+ }
+}
+
+
+//-------------------------------------------------
+// sh_w - Sync Hunt handler
+//-------------------------------------------------
+
+WRITE_LINE_MEMBER( z80sio_channel::sync_w )
+{
+ LOG(("Z80SIO \"%s\" Channel %c : Sync %u\n", m_owner->tag(), 'A' + m_index, state));
+
+ if (m_sh != state)
+ {
+ // set ring indicator state
+ m_sh = state;
+
+ if (!m_rx_rr0_latch)
+ {
+ if (m_sh)
+ m_rr0 |= RR0_SYNC_HUNT;
+ else
+ m_rr0 &= ~RR0_SYNC_HUNT;
+
+ if (m_wr1 & WR1_EXT_INT_ENABLE)
+ {
+ // trigger interrupt
+ m_uart->trigger_interrupt(m_index, INT_EXTERNAL);
+
+ // latch read register 0
+ m_rx_rr0_latch = 1;
+ }
+ }
+ }
+}
+
+
+//-------------------------------------------------
+// rxc_w - receive clock
+//-------------------------------------------------
+
+WRITE_LINE_MEMBER( z80sio_channel::rxc_w )
+{
+ //LOG(("Z80SIO \"%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);
+ else if(state)
+ {
+ rx_clock_w(m_rx_clock < clocks/2);
+
+ m_rx_clock++;
+ if (m_rx_clock == clocks)
+ m_rx_clock = 0;
+
+ }
+}
+
+
+//-------------------------------------------------
+// txc_w - transmit clock
+//-------------------------------------------------
+
+WRITE_LINE_MEMBER( z80sio_channel::txc_w )
+{
+ //LOG(("Z80SIO \"%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);
+ else if(state)
+ {
+ tx_clock_w(m_tx_clock < clocks/2);
+
+ m_tx_clock++;
+ if (m_tx_clock == clocks)
+ m_tx_clock = 0;
+
+ }
+}
+
+
+//-------------------------------------------------
+// update_serial -
+//-------------------------------------------------
+void z80sio_channel::update_serial()
+{
+ int data_bit_count = get_rx_word_length();
+ stop_bits_t stop_bits = get_stop_bits();
+ parity_t parity;
+
+ LOG(("Z80SIO update_serial\n"));
+
+ if (m_wr4 & WR4_PARITY_ENABLE)
+ {
+ if (m_wr4 & WR4_PARITY_EVEN)
+ parity = PARITY_EVEN;
+ else
+ parity = PARITY_ODD;
+ }
+ else
+ parity = PARITY_NONE;
+
+ set_data_frame(1, data_bit_count, parity, stop_bits);
+
+ int clocks = get_clock_mode();
+
+ if (m_rxc > 0)
+ {
+ set_rcv_rate(m_rxc / clocks);
+ }
+
+ if (m_txc > 0)
+ {
+ set_tra_rate(m_txc / clocks);
+ }
+ receive_register_reset(); // if stop bits is changed from 0, receive register has to be reset
+}
+
+
+//-------------------------------------------------
+// set_dtr -
+//-------------------------------------------------
+
+void z80sio_channel::set_dtr(int state)
+{
+ LOG(("%s(%d)\n", FUNCNAME, state));
+ m_dtr = state;
+
+ if (m_index == z80sio_device::CHANNEL_A)
+ m_uart->m_out_dtra_cb(m_dtr);
+ else
+ m_uart->m_out_dtrb_cb(m_dtr);
+}
+
+//-------------------------------------------------
+// write_rx -
+//-------------------------------------------------
+
+WRITE_LINE_MEMBER(z80sio_channel::write_rx)
+{
+ m_rxd = state;
+ //only use rx_w when self-clocked
+ if(m_rxc)
+ device_serial_interface::rx_w(state);
+}
diff --git a/src/devices/machine/z80sio.h b/src/devices/machine/z80sio.h
new file mode 100644
index 00000000000..bf75e8fe362
--- /dev/null
+++ b/src/devices/machine/z80sio.h
@@ -0,0 +1,533 @@
+// license:BSD-3-Clause
+// copyright-holders:Curt Coder, Joakim Larsson Edstrom
+/***************************************************************************
+
+ Z80-SIO Serial Input/Output
+
+****************************************************************************
+ _____ _____ _____ _____
+ D1 1|* \_/ |40 D0 _/ |40 D0 _/ |40 D0
+ D3 2| |39 D2 : |39 D2 : |39 D2
+ D5 3| |38 D4 : |38 D4 : |38 D4
+ D7 4| |37 D6 : |37 D6 : |37 D6
+ _INT 5| |36 _IORQ : |36 _IORQ : |36 _IORQ
+ IEO 6| |35 _CE : |35 _CE : |35 _CE
+ IEI 7| |34 B/_A : |34 B/_A : |34 B/_A
+ _M1 8| |33 C/_D : |33 C/_D : |33 C/_D
+ VDD 9| DIP40 |32 _RD : DIP40 |32 _RD : DIP40 |32 _RD
+ _W//RDYA 10| Z80 |31 GND : Z80 |31 GND : Z80 |31 GND
+ _SYNCA 11| SIO/0 |30 _W/_RDYB: SIO/1 |30 _W/_RDYB: SIO/2 |30 _W/_RDYB
+ RxDA 12| |29 _SYNCB : |29 _SYNCB : |29 _SYNCB
+ _RxCA 13| |28 RxDB : |28 RxDB : |28 _RxCB
+ _TxCA 14| |27 _RxTxCB : |27 _RxCB : |27 _TxCB
+ TxDA 15| |26 TxDB : |26 _TxCB : |26 TxDB
+ _DTRA 16| |25 _DTRB : |25 TxD_B : |25 _DTRB
+ _RTSA 17| |24 _RTSB : |24 _RTSB : |24 _RTSB
+ _CTSA 18| |23 _CTSB : |23 _CTSB : |23 _CTSB
+ _DCDA 19| |22 _DCDB : |22 _DCDB : |22 _DCDB
+ CLK 20|_____________|21 _RESET :_______|21 _RESET :_______|21 _RESET
+
+ *I *I
+ *I N O *I O
+ N D D D D / D D D D R N D D D D D D D D R*C
+ T 7 5 3 1 C 0 2 4 6 Q T 7 5 3 1 0 2 4 6 Q E
+ +----------------------+ +----------------------+
+ IEI|34 22| *CE IEI|6 5 4 3 2 1 44 42 40|B/ *A
+ IEO|35 21| B/ *A IEO|8 43 41 |C/ *D
+ *M1| | C/ *D *M1|9 37|*RD
+ +5v| | *RD +5V|10 36|GND
+*W/ *RDYA| QFP44 | GND *W/ *RDYA|11 PLCC44 35|*W/ *RDYB
+ N/C| Z80 SIO/3 | N/C *SYNCA|12 Z80 SIO/4 34|*SYNCB
+ *SYNCA| Z804C43 | *W/ *RDYB RxDA|13 33|RxDB
+ RxDA| | *SYNCB *RxCA|14 32|*RxCB
+ *RxCA|42 | RxDB *TxCA|15 31|*TxCB
+ *TxCA|43 1 1 | *RxCB TxDA| 19 21 23 25 30|TxDB
+ TxDA`. 2 3 4 5 6 7 8 9 0 1 | *TxCB N/C|18 20 22 24 26 29|N/C
+ `--------------------+ +----------------------+
+ *D*R*C*D C*R*D*C*R*D*T *D*R*C*D C*R*D*C*R*D N
+ T T T C L E C*T T T x T T T C L E C T T T /
+ R S S D K S D S S R D R S S D K S D S S R C
+ A A A A E B B B B B A A A A E B B B B
+ T T
+
+***************************************************************************/
+
+#ifndef __Z80SIO_H__
+#define __Z80SIO_H__
+
+#include "emu.h"
+#include "cpu/z80/z80daisy.h"
+
+//**************************************************************************
+// DEVICE CONFIGURATION MACROS
+//**************************************************************************
+
+#define MCFG_Z80SIO_ADD(_tag, _clock, _rxa, _txa, _rxb, _txb) \
+ MCFG_DEVICE_ADD(_tag, Z80SIO, _clock) \
+ MCFG_Z80SIO_OFFSETS(_rxa, _txa, _rxb, _txb)
+
+#define MCFG_Z80SIO_OFFSETS(_rxa, _txa, _rxb, _txb) \
+ z80sio_device::configure_channels(*device, _rxa, _txa, _rxb, _txb);
+
+#define MCFG_Z80SIO_OUT_TXDA_CB(_devcb) \
+ devcb = &z80sio_device::set_out_txda_callback(*device, DEVCB_##_devcb);
+
+#define MCFG_Z80SIO_OUT_DTRA_CB(_devcb) \
+ devcb = &z80sio_device::set_out_dtra_callback(*device, DEVCB_##_devcb);
+
+#define MCFG_Z80SIO_OUT_RTSA_CB(_devcb) \
+ devcb = &z80sio_device::set_out_rtsa_callback(*device, DEVCB_##_devcb);
+
+#define MCFG_Z80SIO_OUT_WRDYA_CB(_devcb) \
+ devcb = &z80sio_device::set_out_wrdya_callback(*device, DEVCB_##_devcb);
+
+#define MCFG_Z80SIO_OUT_SYNCA_CB(_devcb) \
+ devcb = &z80sio_device::set_out_synca_callback(*device, DEVCB_##_devcb);
+
+#define MCFG_Z80SIO_OUT_TXDB_CB(_devcb) \
+ devcb = &z80sio_device::set_out_txdb_callback(*device, DEVCB_##_devcb);
+
+#define MCFG_Z80SIO_OUT_DTRB_CB(_devcb) \
+ devcb = &z80sio_device::set_out_dtrb_callback(*device, DEVCB_##_devcb);
+
+#define MCFG_Z80SIO_OUT_RTSB_CB(_devcb) \
+ devcb = &z80sio_device::set_out_rtsb_callback(*device, DEVCB_##_devcb);
+
+#define MCFG_Z80SIO_OUT_WRDYB_CB(_devcb) \
+ devcb = &z80sio_device::set_out_wrdyb_callback(*device, DEVCB_##_devcb);
+
+#define MCFG_Z80SIO_OUT_SYNCB_CB(_devcb) \
+ devcb = &z80sio_device::set_out_syncb_callback(*device, DEVCB_##_devcb);
+
+#define MCFG_Z80SIO_OUT_INT_CB(_devcb) \
+ devcb = &z80sio_device::set_out_int_callback(*device, DEVCB_##_devcb);
+
+#define MCFG_Z80SIO_OUT_RXDRQA_CB(_devcb) \
+ devcb = &z80sio_device::set_out_rxdrqa_callback(*device, DEVCB_##_devcb);
+
+#define MCFG_Z80SIO_OUT_TXDRQA_CB(_devcb) \
+ devcb = &z80sio_device::set_out_txdrqa_callback(*device, DEVCB_##_devcb);
+
+#define MCFG_Z80SIO_OUT_RXDRQB_CB(_devcb) \
+ devcb = &z80sio_device::set_out_rxdrqb_callback(*device, DEVCB_##_devcb);
+
+#define MCFG_Z80SIO_OUT_TXDRQB_CB(_devcb) \
+ devcb = &z80sio_device::set_out_txdrqb_callback(*device, DEVCB_##_devcb);
+
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+// ======================> z80sio_channel
+
+class z80sio_device;
+
+class z80sio_channel : public device_t,
+ public device_serial_interface
+{
+ friend class z80sio_device;
+
+public:
+ z80sio_channel(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ // device-level overrides
+ virtual void device_start();
+ virtual void device_reset();
+ virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
+
+ // device_serial_interface overrides
+ virtual void tra_callback();
+ virtual void tra_complete();
+ virtual void rcv_callback();
+ virtual void rcv_complete();
+
+ // read register handlers
+ UINT8 do_sioreg_rr0();
+ UINT8 do_sioreg_rr1();
+ UINT8 do_sioreg_rr2();
+
+ // write register handlers
+ void do_sioreg_wr0(UINT8 data);
+ void do_sioreg_wr0_resets(UINT8 data);
+ void do_sioreg_wr1(UINT8 data);
+ void do_sioreg_wr2(UINT8 data);
+ void do_sioreg_wr3(UINT8 data);
+ void do_sioreg_wr4(UINT8 data);
+ void do_sioreg_wr5(UINT8 data);
+ void do_sioreg_wr6(UINT8 data);
+ void do_sioreg_wr7(UINT8 data);
+
+ UINT8 control_read();
+ void control_write(UINT8 data);
+
+ UINT8 data_read();
+ void data_write(UINT8 data);
+
+ void receive_data(UINT8 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;
+
+ // Register state
+ // read registers enum
+ UINT8 m_rr0; // REG_RR0_STATUS
+ UINT8 m_rr1; // REG_RR1_SPEC_RCV_COND
+ UINT8 m_rr2; // REG_RR2_INTERRUPT_VECT
+ // write registers enum
+ UINT8 m_wr0; // REG_WR0_COMMAND_REGPT
+ UINT8 m_wr1; // REG_WR1_INT_DMA_ENABLE
+ UINT8 m_wr2; // REG_WR2_INT_VECTOR
+ UINT8 m_wr3; // REG_WR3_RX_CONTROL
+ UINT8 m_wr4; // REG_WR4_RX_TX_MODES
+ UINT8 m_wr5; // REG_WR5_TX_CONTROL
+ UINT8 m_wr6; // REG_WR6_SYNC_OR_SDLC_A
+ UINT8 m_wr7; // REG_WR7_SYNC_OR_SDLC_F
+
+ int m_variant; // Set in device
+
+protected:
+ enum
+ {
+ INT_TRANSMIT = 0,
+ INT_EXTERNAL,
+ INT_RECEIVE,
+ INT_SPECIAL
+ };
+
+ // Read registers
+ enum
+ {
+ REG_RR0_STATUS = 0,
+ REG_RR1_SPEC_RCV_COND = 1,
+ REG_RR2_INTERRUPT_VECT = 2
+ };
+
+ // Write registers
+ enum
+ {
+ 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_WR6_SYNC_OR_SDLC_A = 6,
+ REG_WR7_SYNC_OR_SDLC_F = 7
+ };
+
+ enum
+ {
+ 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
+ };
+
+ enum
+ {
+ RR1_ALL_SENT = 0x01,
+ RR1_RESIDUE_CODE_MASK = 0x0e,
+ RR1_PARITY_ERROR = 0x10,
+ RR1_RX_OVERRUN_ERROR = 0x20,
+ RR1_CRC_FRAMING_ERROR = 0x40,
+ RR1_END_OF_FRAME = 0x80
+ };
+
+ enum
+ { // TODO: overload SIO functionality
+ RR2_INT_VECTOR_MASK = 0xff, // SCC channel A, SIO channel B (special case)
+ RR2_INT_VECTOR_V1 = 0x02, // SIO (special case) /SCC Channel B
+ RR2_INT_VECTOR_V2 = 0x04, // SIO (special case) /SCC Channel B
+ RR2_INT_VECTOR_V3 = 0x08 // SIO (special case) /SCC Channel B
+ };
+
+ enum
+ {
+ WR0_REGISTER_MASK = 0x07,
+ WR0_COMMAND_MASK = 0x38,
+ WR0_NULL = 0x00,
+ WR0_SEND_ABORT = 0x08, // not supported
+ WR0_RESET_EXT_STATUS = 0x10,
+ WR0_CHANNEL_RESET = 0x18,
+ WR0_ENABLE_INT_NEXT_RX = 0x20,
+ WR0_RESET_TX_INT = 0x28, // not supported
+ WR0_ERROR_RESET = 0x30,
+ WR0_RETURN_FROM_INT = 0x38, // not supported
+ WR0_CRC_RESET_CODE_MASK = 0xc0, // not supported
+ WR0_CRC_RESET_NULL = 0x00, // not supported
+ WR0_CRC_RESET_RX = 0x40, // not supported
+ WR0_CRC_RESET_TX = 0x80, // not supported
+ WR0_CRC_RESET_TX_UNDERRUN = 0xc0 // not supported
+ };
+
+ enum
+ {
+ 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_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
+ };
+
+ enum
+ {
+ 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_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_PIN10_SYNDETB_RTSB = 0x80 // not supported
+ };
+
+ enum
+ {
+ 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_ENTER_HUNT_PHASE = 0x10, // not supported
+ WR3_AUTO_ENABLES = 0x20,
+ WR3_RX_WORD_LENGTH_MASK = 0xc0,
+ WR3_RX_WORD_LENGTH_5 = 0x00,
+ WR3_RX_WORD_LENGTH_7 = 0x40,
+ WR3_RX_WORD_LENGTH_6 = 0x80,
+ WR3_RX_WORD_LENGTH_8 = 0xc0
+ };
+
+ 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_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
+ };
+
+ 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_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
+ };
+
+ void update_serial();
+ void update_rts();
+ void set_dtr(int state);
+ void set_rts(int state);
+
+ int get_clock_mode();
+ stop_bits_t get_stop_bits();
+ int get_rx_word_length();
+ int get_tx_word_length();
+
+ // receiver state
+ UINT8 m_rx_data_fifo[3]; // receive data FIFO
+ UINT8 m_rx_error_fifo[3]; // receive error FIFO
+ UINT8 m_rx_error; // current receive error
+ int m_rx_fifo; // receive FIFO pointer
+
+ int m_rx_clock; // receive clock pulse count
+ int m_rx_first; // first character received
+ int m_rx_break; // receive break condition
+ UINT8 m_rx_rr0_latch; // read register 0 latched
+
+ int m_rxd;
+ int m_sh; // sync hunt
+ int m_cts; // clear to send latch
+ int m_dcd; // data carrier detect latch
+
+ // transmitter state
+ UINT8 m_tx_data; // transmit data register
+ int m_tx_clock; // transmit clock pulse count
+
+ int m_dtr; // data terminal ready
+ int m_rts; // request to send
+
+ // synchronous state
+ UINT16 m_sync; // sync character
+
+ int m_index;
+ z80sio_device *m_uart;
+};
+
+
+// ======================> z80sio_device
+
+class z80sio_device : public device_t,
+ public device_z80daisy_interface
+{
+ friend class z80sio_channel;
+
+ public:
+ // construction/destruction
+ z80sio_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, UINT32 variant, const char *shortname, const char *source);
+ z80sio_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ template<class _Object> static devcb_base &set_out_txda_callback(device_t &device, _Object object) { return downcast<z80sio_device &>(device).m_out_txda_cb.set_callback(object); }
+ template<class _Object> static devcb_base &set_out_dtra_callback(device_t &device, _Object object) { return downcast<z80sio_device &>(device).m_out_dtra_cb.set_callback(object); }
+ template<class _Object> static devcb_base &set_out_rtsa_callback(device_t &device, _Object object) { return downcast<z80sio_device &>(device).m_out_rtsa_cb.set_callback(object); }
+ template<class _Object> static devcb_base &set_out_wrdya_callback(device_t &device, _Object object) { return downcast<z80sio_device &>(device).m_out_wrdya_cb.set_callback(object); }
+ template<class _Object> static devcb_base &set_out_synca_callback(device_t &device, _Object object) { return downcast<z80sio_device &>(device).m_out_synca_cb.set_callback(object); }
+ template<class _Object> static devcb_base &set_out_txdb_callback(device_t &device, _Object object) { return downcast<z80sio_device &>(device).m_out_txdb_cb.set_callback(object); }
+ template<class _Object> static devcb_base &set_out_dtrb_callback(device_t &device, _Object object) { return downcast<z80sio_device &>(device).m_out_dtrb_cb.set_callback(object); }
+ template<class _Object> static devcb_base &set_out_rtsb_callback(device_t &device, _Object object) { return downcast<z80sio_device &>(device).m_out_rtsb_cb.set_callback(object); }
+ template<class _Object> static devcb_base &set_out_wrdyb_callback(device_t &device, _Object object) { return downcast<z80sio_device &>(device).m_out_wrdyb_cb.set_callback(object); }
+ template<class _Object> static devcb_base &set_out_syncb_callback(device_t &device, _Object object) { return downcast<z80sio_device &>(device).m_out_syncb_cb.set_callback(object); }
+ template<class _Object> static devcb_base &set_out_int_callback(device_t &device, _Object object) { return downcast<z80sio_device &>(device).m_out_int_cb.set_callback(object); }
+ template<class _Object> static devcb_base &set_out_rxdrqa_callback(device_t &device, _Object object) { return downcast<z80sio_device &>(device).m_out_rxdrqa_cb.set_callback(object); }
+ template<class _Object> static devcb_base &set_out_txdrqa_callback(device_t &device, _Object object) { return downcast<z80sio_device &>(device).m_out_txdrqa_cb.set_callback(object); }
+ template<class _Object> static devcb_base &set_out_rxdrqb_callback(device_t &device, _Object object) { return downcast<z80sio_device &>(device).m_out_rxdrqb_cb.set_callback(object); }
+ template<class _Object> static devcb_base &set_out_txdrqb_callback(device_t &device, _Object object) { return downcast<z80sio_device &>(device).m_out_txdrqb_cb.set_callback(object); }
+
+ static void configure_channels(device_t &device, int rxa, int txa, int rxb, int txb)
+ {
+ z80sio_device &dev = downcast<z80sio_device &>(device);
+ dev.m_rxca = rxa;
+ dev.m_txca = txa;
+ dev.m_rxcb = rxb;
+ dev.m_txcb = txb;
+ }
+
+ DECLARE_READ8_MEMBER( cd_ba_r );
+ DECLARE_WRITE8_MEMBER( cd_ba_w );
+ DECLARE_READ8_MEMBER( ba_cd_r );
+ DECLARE_WRITE8_MEMBER( ba_cd_w );
+
+ DECLARE_READ8_MEMBER( da_r ) { return m_chanA->data_read(); }
+ DECLARE_WRITE8_MEMBER( da_w ) { m_chanA->data_write(data); }
+ DECLARE_READ8_MEMBER( db_r ) { return m_chanB->data_read(); }
+ DECLARE_WRITE8_MEMBER( db_w ) { m_chanB->data_write(data); }
+
+ DECLARE_READ8_MEMBER( ca_r ) { return m_chanA->control_read(); }
+ DECLARE_WRITE8_MEMBER( ca_w ) { m_chanA->control_write(data); }
+ DECLARE_READ8_MEMBER( cb_r ) { return m_chanB->control_read(); }
+ DECLARE_WRITE8_MEMBER( cb_w ) { m_chanB->control_write(data); }
+
+ // interrupt acknowledge
+ int m1_r();
+
+ DECLARE_WRITE_LINE_MEMBER( rxa_w ) { m_chanA->write_rx(state); }
+ DECLARE_WRITE_LINE_MEMBER( rxb_w ) { m_chanB->write_rx(state); }
+ DECLARE_WRITE_LINE_MEMBER( ctsa_w ) { m_chanA->cts_w(state); }
+ DECLARE_WRITE_LINE_MEMBER( ctsb_w ) { m_chanB->cts_w(state); }
+ DECLARE_WRITE_LINE_MEMBER( dcda_w ) { m_chanA->dcd_w(state); }
+ DECLARE_WRITE_LINE_MEMBER( dcdb_w ) { m_chanB->dcd_w(state); }
+ DECLARE_WRITE_LINE_MEMBER( ria_w ) { m_chanA->ri_w(state); }
+ DECLARE_WRITE_LINE_MEMBER( rib_w ) { m_chanB->ri_w(state); }
+ DECLARE_WRITE_LINE_MEMBER( rxca_w ) { m_chanA->rxc_w(state); }
+ DECLARE_WRITE_LINE_MEMBER( rxcb_w ) { m_chanB->rxc_w(state); }
+ DECLARE_WRITE_LINE_MEMBER( txca_w ) { m_chanA->txc_w(state); }
+ DECLARE_WRITE_LINE_MEMBER( txcb_w ) { m_chanB->txc_w(state); }
+ 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); }
+
+protected:
+ // device-level overrides
+ virtual void device_start();
+ virtual void device_reset();
+ virtual machine_config_constructor device_mconfig_additions() const;
+
+ // device_z80daisy_interface overrides
+ virtual int z80daisy_irq_state();
+ virtual int z80daisy_irq_ack();
+ virtual void z80daisy_irq_reti();
+
+ // internal interrupt management
+ void check_interrupts();
+ void reset_interrupts();
+ void trigger_interrupt(int index, int state);
+ int get_channel_index(z80sio_channel *ch) { return (ch == m_chanA) ? 0 : 1; }
+
+ enum
+ {
+ TYPE_Z80SIO
+ };
+
+ enum
+ {
+ CHANNEL_A = 0,
+ CHANNEL_B
+ };
+
+ required_device<z80sio_channel> m_chanA;
+ required_device<z80sio_channel> m_chanB;
+
+ // internal state
+ int m_rxca;
+ int m_txca;
+ int m_rxcb;
+ int m_txcb;
+
+ devcb_write_line m_out_txda_cb;
+ devcb_write_line m_out_dtra_cb;
+ devcb_write_line m_out_rtsa_cb;
+ devcb_write_line m_out_wrdya_cb;
+ devcb_write_line m_out_synca_cb;
+
+ devcb_write_line m_out_txdb_cb;
+ devcb_write_line m_out_dtrb_cb;
+ devcb_write_line m_out_rtsb_cb;
+ devcb_write_line m_out_wrdyb_cb;
+ devcb_write_line m_out_syncb_cb;
+
+ devcb_write_line m_out_int_cb;
+ devcb_write_line m_out_rxdrqa_cb;
+ devcb_write_line m_out_txdrqa_cb;
+ devcb_write_line m_out_rxdrqb_cb;
+ devcb_write_line m_out_txdrqb_cb;
+
+ int m_int_state[8]; // interrupt state
+ int m_variant;
+};
+
+
+// device type definition
+extern const device_type Z80SIO;
+extern const device_type Z80SIO_CHANNEL;
+#endif
diff --git a/src/emu/machine/z80sti.c b/src/devices/machine/z80sti.c
index a27295f6ff1..a27295f6ff1 100644
--- a/src/emu/machine/z80sti.c
+++ b/src/devices/machine/z80sti.c
diff --git a/src/emu/machine/z80sti.h b/src/devices/machine/z80sti.h
index 1691695147c..1691695147c 100644
--- a/src/emu/machine/z80sti.h
+++ b/src/devices/machine/z80sti.h
diff --git a/src/emu/machine/z8536.c b/src/devices/machine/z8536.c
index fc5e770b15a..fc5e770b15a 100644
--- a/src/emu/machine/z8536.c
+++ b/src/devices/machine/z8536.c
diff --git a/src/emu/machine/z8536.h b/src/devices/machine/z8536.h
index 96c39e0123a..96c39e0123a 100644
--- a/src/emu/machine/z8536.h
+++ b/src/devices/machine/z8536.h
diff --git a/src/emu/sound/2151intf.c b/src/devices/sound/2151intf.c
index e4739c758ee..e4739c758ee 100644
--- a/src/emu/sound/2151intf.c
+++ b/src/devices/sound/2151intf.c
diff --git a/src/emu/sound/2151intf.h b/src/devices/sound/2151intf.h
index 79952d76228..79952d76228 100644
--- a/src/emu/sound/2151intf.h
+++ b/src/devices/sound/2151intf.h
diff --git a/src/emu/sound/2203intf.c b/src/devices/sound/2203intf.c
index 279ae52cea4..279ae52cea4 100644
--- a/src/emu/sound/2203intf.c
+++ b/src/devices/sound/2203intf.c
diff --git a/src/emu/sound/2203intf.h b/src/devices/sound/2203intf.h
index 8d81c54282a..8d81c54282a 100644
--- a/src/emu/sound/2203intf.h
+++ b/src/devices/sound/2203intf.h
diff --git a/src/emu/sound/2413intf.c b/src/devices/sound/2413intf.c
index 3ecfd061241..3ecfd061241 100644
--- a/src/emu/sound/2413intf.c
+++ b/src/devices/sound/2413intf.c
diff --git a/src/emu/sound/2413intf.h b/src/devices/sound/2413intf.h
index 0edf7d1a696..0edf7d1a696 100644
--- a/src/emu/sound/2413intf.h
+++ b/src/devices/sound/2413intf.h
diff --git a/src/emu/sound/2608intf.c b/src/devices/sound/2608intf.c
index 4a2c25597bb..4a2c25597bb 100644
--- a/src/emu/sound/2608intf.c
+++ b/src/devices/sound/2608intf.c
diff --git a/src/emu/sound/2608intf.h b/src/devices/sound/2608intf.h
index ea610036d88..ea610036d88 100644
--- a/src/emu/sound/2608intf.h
+++ b/src/devices/sound/2608intf.h
diff --git a/src/emu/sound/2610intf.c b/src/devices/sound/2610intf.c
index 88f05e354cc..88f05e354cc 100644
--- a/src/emu/sound/2610intf.c
+++ b/src/devices/sound/2610intf.c
diff --git a/src/emu/sound/2610intf.h b/src/devices/sound/2610intf.h
index 40842f48411..40842f48411 100644
--- a/src/emu/sound/2610intf.h
+++ b/src/devices/sound/2610intf.h
diff --git a/src/emu/sound/2612intf.c b/src/devices/sound/2612intf.c
index b5464d4e824..b5464d4e824 100644
--- a/src/emu/sound/2612intf.c
+++ b/src/devices/sound/2612intf.c
diff --git a/src/emu/sound/2612intf.h b/src/devices/sound/2612intf.h
index 8199172044d..8199172044d 100644
--- a/src/emu/sound/2612intf.h
+++ b/src/devices/sound/2612intf.h
diff --git a/src/emu/sound/262intf.c b/src/devices/sound/262intf.c
index b15b6f4deda..b15b6f4deda 100644
--- a/src/emu/sound/262intf.c
+++ b/src/devices/sound/262intf.c
diff --git a/src/emu/sound/262intf.h b/src/devices/sound/262intf.h
index 2ff45f3190c..2ff45f3190c 100644
--- a/src/emu/sound/262intf.h
+++ b/src/devices/sound/262intf.h
diff --git a/src/devices/sound/315-5641.c b/src/devices/sound/315-5641.c
new file mode 100644
index 00000000000..9a14be61469
--- /dev/null
+++ b/src/devices/sound/315-5641.c
@@ -0,0 +1,70 @@
+/* Sega 315-5641 / D77591 / 9442CA010 */
+
+#include "emu.h"
+#include "315-5641.h"
+
+const device_type SEGA_315_5641_PCM = &device_creator<sega_315_5641_pcm_device>;
+
+sega_315_5641_pcm_device::sega_315_5641_pcm_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : upd7759_device(mconfig, SEGA_315_5641_PCM, "315-5641 PCM", tag, owner, clock, "315-5641_pcm", __FILE__)
+{
+}
+
+void sega_315_5641_pcm_device::device_start()
+{
+ save_item(NAME(m_fifo_data), 0x40);
+ save_item(NAME(m_fifo_read));
+ save_item(NAME(m_fifo_write));
+
+ upd7759_device::device_start();
+}
+
+void sega_315_5641_pcm_device::advance_state()
+{
+ switch (m_state)
+ {
+ case STATE_DROP_DRQ:
+ if (m_rombase == NULL)
+ {
+ // Slave Mode: get data from FIFO buffer
+ UINT8 fiforead = (m_fifo_read + 1) & 0x3F;
+ if (fiforead != m_fifo_write)
+ {
+ m_fifo_in = m_fifo_data[fiforead];
+ m_fifo_read = fiforead;
+ }
+ }
+ break;
+ }
+
+ upd775x_device::advance_state();
+}
+
+
+WRITE8_MEMBER( sega_315_5641_pcm_device::port_w )
+{
+ if (m_rombase != NULL)
+ {
+ /* update the FIFO value */
+ m_fifo_in = data;
+ }
+ else
+ {
+ m_fifo_data[m_fifo_write++] = data;
+ m_fifo_write &= 0x3F;
+ }
+}
+
+
+UINT8 sega_315_5641_pcm_device::get_fifo_space()
+{
+ return (m_fifo_read - m_fifo_write) & 0x3F;
+}
+
+void sega_315_5641_pcm_device::device_reset()
+{
+ m_fifo_read = 0x3F;
+ m_fifo_write = 0x00;
+
+ upd775x_device::device_reset();
+}
diff --git a/src/devices/sound/315-5641.h b/src/devices/sound/315-5641.h
new file mode 100644
index 00000000000..108db11800c
--- /dev/null
+++ b/src/devices/sound/315-5641.h
@@ -0,0 +1,30 @@
+/* Sega 315-5641 / D77591 / 9442CA010 */
+
+// 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 hardawre.
+
+#include "upd7759.h"
+
+
+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 clock);
+
+ UINT8 get_fifo_space();
+ void advance_state();
+ DECLARE_WRITE8_MEMBER(port_w);
+
+ UINT8 m_fifo_data[0x40];
+ UINT8 m_fifo_read; // last read offset (will read in m_fifo_read+1)
+ UINT8 m_fifo_write; // write offset
+
+protected:
+ // device-level overrides
+ virtual void device_start();
+ virtual void device_reset();
+
+
+};
+
+extern const device_type SEGA_315_5641_PCM;
diff --git a/src/emu/sound/3526intf.c b/src/devices/sound/3526intf.c
index d90b053a4d3..d90b053a4d3 100644
--- a/src/emu/sound/3526intf.c
+++ b/src/devices/sound/3526intf.c
diff --git a/src/emu/sound/3526intf.h b/src/devices/sound/3526intf.h
index 4f0d59f1c74..4f0d59f1c74 100644
--- a/src/emu/sound/3526intf.h
+++ b/src/devices/sound/3526intf.h
diff --git a/src/emu/sound/3812intf.c b/src/devices/sound/3812intf.c
index ee4a9e3d5af..ee4a9e3d5af 100644
--- a/src/emu/sound/3812intf.c
+++ b/src/devices/sound/3812intf.c
diff --git a/src/emu/sound/3812intf.h b/src/devices/sound/3812intf.h
index ee87e8a43d9..ee87e8a43d9 100644
--- a/src/emu/sound/3812intf.h
+++ b/src/devices/sound/3812intf.h
diff --git a/src/emu/sound/8950intf.c b/src/devices/sound/8950intf.c
index 172ee03ef25..172ee03ef25 100644
--- a/src/emu/sound/8950intf.c
+++ b/src/devices/sound/8950intf.c
diff --git a/src/emu/sound/8950intf.h b/src/devices/sound/8950intf.h
index 42db5339696..42db5339696 100644
--- a/src/emu/sound/8950intf.h
+++ b/src/devices/sound/8950intf.h
diff --git a/src/emu/sound/aica.c b/src/devices/sound/aica.c
index e788b4fda34..e788b4fda34 100644
--- a/src/emu/sound/aica.c
+++ b/src/devices/sound/aica.c
diff --git a/src/emu/sound/aica.h b/src/devices/sound/aica.h
index 0c7d5caf4f4..0c7d5caf4f4 100644
--- a/src/emu/sound/aica.h
+++ b/src/devices/sound/aica.h
diff --git a/src/emu/sound/aicadsp.c b/src/devices/sound/aicadsp.c
index 4f533125825..4f533125825 100644
--- a/src/emu/sound/aicadsp.c
+++ b/src/devices/sound/aicadsp.c
diff --git a/src/emu/sound/aicadsp.h b/src/devices/sound/aicadsp.h
index e28301a6100..e28301a6100 100644
--- a/src/emu/sound/aicadsp.h
+++ b/src/devices/sound/aicadsp.h
diff --git a/src/emu/sound/amiga.c b/src/devices/sound/amiga.c
index 84b761e73bd..84b761e73bd 100644
--- a/src/emu/sound/amiga.c
+++ b/src/devices/sound/amiga.c
diff --git a/src/emu/sound/amiga.h b/src/devices/sound/amiga.h
index eb8b9ee436d..eb8b9ee436d 100644
--- a/src/emu/sound/amiga.h
+++ b/src/devices/sound/amiga.h
diff --git a/src/emu/sound/asc.c b/src/devices/sound/asc.c
index ad7559e0d3d..ad7559e0d3d 100644
--- a/src/emu/sound/asc.c
+++ b/src/devices/sound/asc.c
diff --git a/src/emu/sound/asc.h b/src/devices/sound/asc.h
index 24f085e50ac..24f085e50ac 100644
--- a/src/emu/sound/asc.h
+++ b/src/devices/sound/asc.h
diff --git a/src/emu/sound/astrocde.c b/src/devices/sound/astrocde.c
index 0870347c6ae..0870347c6ae 100644
--- a/src/emu/sound/astrocde.c
+++ b/src/devices/sound/astrocde.c
diff --git a/src/emu/sound/astrocde.h b/src/devices/sound/astrocde.h
index 23e9a83c733..23e9a83c733 100644
--- a/src/emu/sound/astrocde.h
+++ b/src/devices/sound/astrocde.h
diff --git a/src/emu/sound/awacs.c b/src/devices/sound/awacs.c
index 57668acaef5..57668acaef5 100644
--- a/src/emu/sound/awacs.c
+++ b/src/devices/sound/awacs.c
diff --git a/src/emu/sound/awacs.h b/src/devices/sound/awacs.h
index 93b9da2d5d9..93b9da2d5d9 100644
--- a/src/emu/sound/awacs.h
+++ b/src/devices/sound/awacs.h
diff --git a/src/emu/sound/ay8910.c b/src/devices/sound/ay8910.c
index 9e8d397ff7a..9e8d397ff7a 100644
--- a/src/emu/sound/ay8910.c
+++ b/src/devices/sound/ay8910.c
diff --git a/src/emu/sound/ay8910.h b/src/devices/sound/ay8910.h
index 30ef634b766..30ef634b766 100644
--- a/src/emu/sound/ay8910.h
+++ b/src/devices/sound/ay8910.h
diff --git a/src/emu/sound/beep.c b/src/devices/sound/beep.c
index ce5558f3320..ce5558f3320 100644
--- a/src/emu/sound/beep.c
+++ b/src/devices/sound/beep.c
diff --git a/src/emu/sound/beep.h b/src/devices/sound/beep.h
index 4b587bd3c89..4b587bd3c89 100644
--- a/src/emu/sound/beep.h
+++ b/src/devices/sound/beep.h
diff --git a/src/emu/sound/bsmt2000.c b/src/devices/sound/bsmt2000.c
index 0b1dea55354..0b1dea55354 100644
--- a/src/emu/sound/bsmt2000.c
+++ b/src/devices/sound/bsmt2000.c
diff --git a/src/emu/sound/bsmt2000.h b/src/devices/sound/bsmt2000.h
index fb993e982e0..fb993e982e0 100644
--- a/src/emu/sound/bsmt2000.h
+++ b/src/devices/sound/bsmt2000.h
diff --git a/src/emu/sound/c140.c b/src/devices/sound/c140.c
index 0c0d9405098..6649f53616a 100644
--- a/src/emu/sound/c140.c
+++ b/src/devices/sound/c140.c
@@ -134,6 +134,26 @@ void c140_device::device_start()
/* allocate a pair of buffers to mix into - 1 second's worth should be more than enough */
m_mixer_buffer_left = auto_alloc_array(machine(), INT16, 2 * m_sample_rate);
m_mixer_buffer_right = m_mixer_buffer_left + m_sample_rate;
+
+ save_item(NAME(m_REG));
+
+ for (int i = 0; i < C140_MAX_VOICE; i++)
+ {
+ save_item(NAME(m_voi[i].ptoffset), i);
+ save_item(NAME(m_voi[i].pos), i);
+ save_item(NAME(m_voi[i].key), i);
+ save_item(NAME(m_voi[i].lastdt), i);
+ save_item(NAME(m_voi[i].prevdt), i);
+ save_item(NAME(m_voi[i].dltdt), i);
+ save_item(NAME(m_voi[i].rvol), i);
+ save_item(NAME(m_voi[i].lvol), i);
+ save_item(NAME(m_voi[i].frequency), i);
+ save_item(NAME(m_voi[i].bank), i);
+ save_item(NAME(m_voi[i].mode), i);
+ save_item(NAME(m_voi[i].sample_start), i);
+ save_item(NAME(m_voi[i].sample_end), i);
+ save_item(NAME(m_voi[i].sample_loop), i);
+ }
}
diff --git a/src/emu/sound/c140.h b/src/devices/sound/c140.h
index c3879e8257e..13b6bfbcc7c 100644
--- a/src/emu/sound/c140.h
+++ b/src/devices/sound/c140.h
@@ -51,23 +51,23 @@ struct C140_VOICE
sample_end(0),
sample_loop(0) {}
- long ptoffset;
- long pos;
- long key;
+ INT32 ptoffset;
+ INT32 pos;
+ INT32 key;
//--work
- long lastdt;
- long prevdt;
- long dltdt;
+ INT32 lastdt;
+ INT32 prevdt;
+ INT32 dltdt;
//--reg
- long rvol;
- long lvol;
- long frequency;
- long bank;
- long mode;
-
- long sample_start;
- long sample_end;
- long sample_loop;
+ INT32 rvol;
+ INT32 lvol;
+ INT32 frequency;
+ INT32 bank;
+ INT32 mode;
+
+ INT32 sample_start;
+ INT32 sample_end;
+ INT32 sample_loop;
};
diff --git a/src/emu/sound/c352.c b/src/devices/sound/c352.c
index b4172e43aa0..e0bc39918b8 100644
--- a/src/emu/sound/c352.c
+++ b/src/devices/sound/c352.c
@@ -13,6 +13,14 @@
Supports 8-bit linear and 8-bit muLaw samples
Output: digital, 16 bit, 4 channels
Output sample rate is the input clock / (288 * 2).
+
+ superctr: The clock divider appears to be configurable for each system.
+ Below is a list of the divider values followed by the systems that use it.
+
+ * 228: System 11.
+ * 288: System 22, Super 22, NB-1/2, ND-1, FL.
+ * 296: System 23, Super 23.
+ * 332: System 12.
*/
#include "emu.h"
@@ -468,7 +476,7 @@ void c352_device::write_reg16(unsigned long address, unsigned short val)
void c352_device::device_start()
{
- int i, divider;
+ int i;
double x_max = 32752.0;
double y_max = 127.0;
double u = 10.0;
@@ -476,21 +484,7 @@ void c352_device::device_start()
// find our direct access
m_direct = &space().direct();
- switch(m_divider)
- {
- case C352_DIVIDER_228:
- divider=228;
- break;
- case C352_DIVIDER_288:
- default:
- divider=288;
- break;
- case C352_DIVIDER_332:
- divider=332;
- break;
- }
-
- m_sample_rate_base = clock() / divider;
+ m_sample_rate_base = clock() / m_divider;
m_stream = machine().sound().stream_alloc(*this, 0, 4, m_sample_rate_base);
diff --git a/src/emu/sound/c352.h b/src/devices/sound/c352.h
index 31eceffb366..24a2a1cbe74 100644
--- a/src/emu/sound/c352.h
+++ b/src/devices/sound/c352.h
@@ -6,17 +6,6 @@
#define __C352_H__
//**************************************************************************
-// CONSTANTS
-//**************************************************************************
-
-enum
-{
- C352_DIVIDER_228 = 0,
- C352_DIVIDER_288 = 1,
- C352_DIVIDER_332 = 2
-};
-
-//**************************************************************************
// INTERFACE CONFIGURATION MACROS
//**************************************************************************
diff --git a/src/emu/sound/c6280.c b/src/devices/sound/c6280.c
index d484b8281c0..d484b8281c0 100644
--- a/src/emu/sound/c6280.c
+++ b/src/devices/sound/c6280.c
diff --git a/src/emu/sound/c6280.h b/src/devices/sound/c6280.h
index af53962a83e..af53962a83e 100644
--- a/src/emu/sound/c6280.h
+++ b/src/devices/sound/c6280.h
diff --git a/src/emu/sound/cdda.c b/src/devices/sound/cdda.c
index 1b7c81c1172..1b7c81c1172 100644
--- a/src/emu/sound/cdda.c
+++ b/src/devices/sound/cdda.c
diff --git a/src/emu/sound/cdda.h b/src/devices/sound/cdda.h
index 7650348a099..7650348a099 100644
--- a/src/emu/sound/cdda.h
+++ b/src/devices/sound/cdda.h
diff --git a/src/emu/sound/cdp1863.c b/src/devices/sound/cdp1863.c
index 08a88f914ce..08a88f914ce 100644
--- a/src/emu/sound/cdp1863.c
+++ b/src/devices/sound/cdp1863.c
diff --git a/src/emu/sound/cdp1863.h b/src/devices/sound/cdp1863.h
index 910be5153fd..910be5153fd 100644
--- a/src/emu/sound/cdp1863.h
+++ b/src/devices/sound/cdp1863.h
diff --git a/src/emu/sound/cdp1864.c b/src/devices/sound/cdp1864.c
index b4859cee4a3..b4859cee4a3 100644
--- a/src/emu/sound/cdp1864.c
+++ b/src/devices/sound/cdp1864.c
diff --git a/src/emu/sound/cdp1864.h b/src/devices/sound/cdp1864.h
index ab9f384dc1a..ab9f384dc1a 100644
--- a/src/emu/sound/cdp1864.h
+++ b/src/devices/sound/cdp1864.h
diff --git a/src/emu/sound/cdp1869.c b/src/devices/sound/cdp1869.c
index 383d7eb5d88..383d7eb5d88 100644
--- a/src/emu/sound/cdp1869.c
+++ b/src/devices/sound/cdp1869.c
diff --git a/src/emu/sound/cdp1869.h b/src/devices/sound/cdp1869.h
index 96185021ac4..96185021ac4 100644
--- a/src/emu/sound/cdp1869.h
+++ b/src/devices/sound/cdp1869.h
diff --git a/src/emu/sound/cem3394.c b/src/devices/sound/cem3394.c
index f5af2dd2b86..f5af2dd2b86 100644
--- a/src/emu/sound/cem3394.c
+++ b/src/devices/sound/cem3394.c
diff --git a/src/emu/sound/cem3394.h b/src/devices/sound/cem3394.h
index 65290aefce9..65290aefce9 100644
--- a/src/emu/sound/cem3394.h
+++ b/src/devices/sound/cem3394.h
diff --git a/src/emu/sound/dac.c b/src/devices/sound/dac.c
index 8e4baffe3aa..8e4baffe3aa 100644
--- a/src/emu/sound/dac.c
+++ b/src/devices/sound/dac.c
diff --git a/src/emu/sound/dac.h b/src/devices/sound/dac.h
index fadc1a7e324..fadc1a7e324 100644
--- a/src/emu/sound/dac.h
+++ b/src/devices/sound/dac.h
diff --git a/src/emu/sound/digitalk.c b/src/devices/sound/digitalk.c
index cf5d99d0c07..7f240879d53 100644
--- a/src/emu/sound/digitalk.c
+++ b/src/devices/sound/digitalk.c
@@ -169,7 +169,7 @@ period.
- Rom organization
-The rom starts with a vector of 16-bits little endian values which are
+The rom starts with a vector of 16-bits big endian values which are
the addresses of the segments table for the samples. The segments data
is a vector of 24-bits little-endian values organized as such:
@@ -385,7 +385,7 @@ void digitalker_device::digitalker_step_mode_0()
void digitalker_device::digitalker_step_mode_1()
{
- logerror("Digitalker mode 1 unsupported");
+ logerror("Digitalker mode 1 unsupported\n");
m_zero_count = 1;
m_cur_segment = m_segments;
}
@@ -516,6 +516,7 @@ void digitalker_device::digitalker_step()
return;
}
} else if(m_stop_after == 1) {
+ digitalker_set_intr(1);
m_bpos = 0xffff;
m_zero_count = 81920;
m_stop_after = 2;
@@ -525,7 +526,6 @@ void digitalker_device::digitalker_step()
m_repeats = 0;
} else {
m_stop_after = 0;
- digitalker_set_intr(1);
}
}
diff --git a/src/emu/sound/digitalk.h b/src/devices/sound/digitalk.h
index fc2dd497f09..fc2dd497f09 100644
--- a/src/emu/sound/digitalk.h
+++ b/src/devices/sound/digitalk.h
diff --git a/src/emu/sound/disc_cls.h b/src/devices/sound/disc_cls.h
index 255b0958c15..255b0958c15 100644
--- a/src/emu/sound/disc_cls.h
+++ b/src/devices/sound/disc_cls.h
diff --git a/src/emu/sound/disc_dev.h b/src/devices/sound/disc_dev.h
index 80af62a3ae3..80af62a3ae3 100644
--- a/src/emu/sound/disc_dev.h
+++ b/src/devices/sound/disc_dev.h
diff --git a/src/emu/sound/disc_dev.inc b/src/devices/sound/disc_dev.inc
index 47026747cd1..47026747cd1 100644
--- a/src/emu/sound/disc_dev.inc
+++ b/src/devices/sound/disc_dev.inc
diff --git a/src/emu/sound/disc_flt.h b/src/devices/sound/disc_flt.h
index 3c6f2d72607..3c6f2d72607 100644
--- a/src/emu/sound/disc_flt.h
+++ b/src/devices/sound/disc_flt.h
diff --git a/src/emu/sound/disc_flt.inc b/src/devices/sound/disc_flt.inc
index 18cb8f41c1c..18cb8f41c1c 100644
--- a/src/emu/sound/disc_flt.inc
+++ b/src/devices/sound/disc_flt.inc
diff --git a/src/emu/sound/disc_inp.inc b/src/devices/sound/disc_inp.inc
index b9eedb9fdff..b9eedb9fdff 100644
--- a/src/emu/sound/disc_inp.inc
+++ b/src/devices/sound/disc_inp.inc
diff --git a/src/emu/sound/disc_mth.h b/src/devices/sound/disc_mth.h
index a459440a3b6..a459440a3b6 100644
--- a/src/emu/sound/disc_mth.h
+++ b/src/devices/sound/disc_mth.h
diff --git a/src/emu/sound/disc_mth.inc b/src/devices/sound/disc_mth.inc
index 45e04654445..45e04654445 100644
--- a/src/emu/sound/disc_mth.inc
+++ b/src/devices/sound/disc_mth.inc
diff --git a/src/emu/sound/disc_sys.inc b/src/devices/sound/disc_sys.inc
index 4192e832d93..4192e832d93 100644
--- a/src/emu/sound/disc_sys.inc
+++ b/src/devices/sound/disc_sys.inc
diff --git a/src/emu/sound/disc_wav.h b/src/devices/sound/disc_wav.h
index 4775dd8fe68..4775dd8fe68 100644
--- a/src/emu/sound/disc_wav.h
+++ b/src/devices/sound/disc_wav.h
diff --git a/src/emu/sound/disc_wav.inc b/src/devices/sound/disc_wav.inc
index 57a90ae5a5b..57a90ae5a5b 100644
--- a/src/emu/sound/disc_wav.inc
+++ b/src/devices/sound/disc_wav.inc
diff --git a/src/emu/sound/discrete.c b/src/devices/sound/discrete.c
index 5270f37ebb9..71e95ed46bc 100644
--- a/src/emu/sound/discrete.c
+++ b/src/devices/sound/discrete.c
@@ -36,9 +36,17 @@
************************************************************************/
#include "emu.h"
-#include "wavwrite.h"
+#include "sound/wavwrite.h"
#include "discrete.h"
+// for now, make buggy GCC/Mingw STFU about I64FMT
+#if (defined(__MINGW32__) && (__GNUC__ >= 5))
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wformat"
+#pragma GCC diagnostic ignored "-Wformat-extra-args"
+#endif
+
+
/* 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++)
@@ -863,7 +871,7 @@ void discrete_device::device_start()
//m_stream = machine().sound().stream_alloc(*this, 0, 2, 22257);
const discrete_block *intf_start = m_intf;
- char name[32];
+ char name[128];
/* If a clock is specified we will use it, otherwise run at the audio sample rate. */
if (this->clock())
@@ -1134,3 +1142,7 @@ WRITE8_MEMBER( discrete_device::write )
discrete_log("discrete_sound_w write to non-existent NODE_%02d\n", offset-NODE_00);
}
}
+
+#if (defined(__MINGW32__) && (__GNUC__ >= 5))
+#pragma GCC diagnostic pop
+#endif
diff --git a/src/emu/sound/discrete.h b/src/devices/sound/discrete.h
index d3dfd2c4e85..92eeb40810e 100644
--- a/src/emu/sound/discrete.h
+++ b/src/devices/sound/discrete.h
@@ -3467,7 +3467,7 @@
*
************************************************************************/
-#include "wavwrite.h"
+#include "sound/wavwrite.h"
/*************************************
*
diff --git a/src/emu/sound/dmadac.c b/src/devices/sound/dmadac.c
index 622b566f1ee..622b566f1ee 100644
--- a/src/emu/sound/dmadac.c
+++ b/src/devices/sound/dmadac.c
diff --git a/src/emu/sound/dmadac.h b/src/devices/sound/dmadac.h
index 65bfe16b3ff..65bfe16b3ff 100644
--- a/src/emu/sound/dmadac.h
+++ b/src/devices/sound/dmadac.h
diff --git a/src/emu/sound/es1373.c b/src/devices/sound/es1373.c
index 509b4a873d2..509b4a873d2 100644
--- a/src/emu/sound/es1373.c
+++ b/src/devices/sound/es1373.c
diff --git a/src/emu/sound/es1373.h b/src/devices/sound/es1373.h
index a5c7e974204..a5c7e974204 100644
--- a/src/emu/sound/es1373.h
+++ b/src/devices/sound/es1373.h
diff --git a/src/emu/sound/es5503.c b/src/devices/sound/es5503.c
index b1881412da2..b1881412da2 100644
--- a/src/emu/sound/es5503.c
+++ b/src/devices/sound/es5503.c
diff --git a/src/emu/sound/es5503.h b/src/devices/sound/es5503.h
index 582456e830b..582456e830b 100644
--- a/src/emu/sound/es5503.h
+++ b/src/devices/sound/es5503.h
diff --git a/src/emu/sound/es5506.c b/src/devices/sound/es5506.c
index 2c46b7560d6..d6e1865b8ae 100644
--- a/src/emu/sound/es5506.c
+++ b/src/devices/sound/es5506.c
@@ -96,7 +96,7 @@ Ensoniq OTIS - ES5505 Ensoniq OTTO -
#define RAINE_CHECK 0
#if MAKE_WAVS
-#include "wavwrite.h"
+#include "sound/wavwrite.h"
#endif
diff --git a/src/emu/sound/es5506.h b/src/devices/sound/es5506.h
index c434ec8b12e..c434ec8b12e 100644
--- a/src/emu/sound/es5506.h
+++ b/src/devices/sound/es5506.h
diff --git a/src/emu/sound/es8712.c b/src/devices/sound/es8712.c
index f6087f83dc1..f6087f83dc1 100644
--- a/src/emu/sound/es8712.c
+++ b/src/devices/sound/es8712.c
diff --git a/src/emu/sound/es8712.h b/src/devices/sound/es8712.h
index ed05a4b3497..ed05a4b3497 100644
--- a/src/emu/sound/es8712.h
+++ b/src/devices/sound/es8712.h
diff --git a/src/emu/sound/esqpump.c b/src/devices/sound/esqpump.c
index 147f97786ca..147f97786ca 100644
--- a/src/emu/sound/esqpump.c
+++ b/src/devices/sound/esqpump.c
diff --git a/src/emu/sound/esqpump.h b/src/devices/sound/esqpump.h
index bc2c72f8a72..bc2c72f8a72 100644
--- a/src/emu/sound/esqpump.h
+++ b/src/devices/sound/esqpump.h
diff --git a/src/emu/sound/flt_rc.c b/src/devices/sound/flt_rc.c
index 5fc0a7df882..5fc0a7df882 100644
--- a/src/emu/sound/flt_rc.c
+++ b/src/devices/sound/flt_rc.c
diff --git a/src/emu/sound/flt_rc.h b/src/devices/sound/flt_rc.h
index 0ea52c6972a..0ea52c6972a 100644
--- a/src/emu/sound/flt_rc.h
+++ b/src/devices/sound/flt_rc.h
diff --git a/src/emu/sound/flt_vol.c b/src/devices/sound/flt_vol.c
index 0012f3fc4db..0012f3fc4db 100644
--- a/src/emu/sound/flt_vol.c
+++ b/src/devices/sound/flt_vol.c
diff --git a/src/emu/sound/flt_vol.h b/src/devices/sound/flt_vol.h
index 20ce17a58e9..20ce17a58e9 100644
--- a/src/emu/sound/flt_vol.h
+++ b/src/devices/sound/flt_vol.h
diff --git a/src/emu/sound/fm.c b/src/devices/sound/fm.c
index 3782790409f..3782790409f 100644
--- a/src/emu/sound/fm.c
+++ b/src/devices/sound/fm.c
diff --git a/src/emu/sound/fm.h b/src/devices/sound/fm.h
index 878f753b599..878f753b599 100644
--- a/src/emu/sound/fm.h
+++ b/src/devices/sound/fm.h
diff --git a/src/emu/sound/fm2612.c b/src/devices/sound/fm2612.c
index 034b07a8595..034b07a8595 100644
--- a/src/emu/sound/fm2612.c
+++ b/src/devices/sound/fm2612.c
diff --git a/src/emu/sound/fmopl.c b/src/devices/sound/fmopl.c
index 4932cde31fa..4932cde31fa 100644
--- a/src/emu/sound/fmopl.c
+++ b/src/devices/sound/fmopl.c
diff --git a/src/emu/sound/fmopl.h b/src/devices/sound/fmopl.h
index 3b0cda28c9f..3b0cda28c9f 100644
--- a/src/emu/sound/fmopl.h
+++ b/src/devices/sound/fmopl.h
diff --git a/src/emu/sound/gaelco.c b/src/devices/sound/gaelco.c
index 9a40796a1ac..c11c39979ff 100644
--- a/src/emu/sound/gaelco.c
+++ b/src/devices/sound/gaelco.c
@@ -37,7 +37,7 @@ Registers per channel:
#include "emu.h"
#include "gaelco.h"
-#include "wavwrite.h"
+#include "sound/wavwrite.h"
#define VERBOSE_SOUND 0
#define VERBOSE_READ_WRITES 0
diff --git a/src/emu/sound/gaelco.h b/src/devices/sound/gaelco.h
index 25b8cb129d2..25b8cb129d2 100644
--- a/src/emu/sound/gaelco.h
+++ b/src/devices/sound/gaelco.h
diff --git a/src/emu/sound/hc55516.c b/src/devices/sound/hc55516.c
index 9d8a191bdba..9d8a191bdba 100644
--- a/src/emu/sound/hc55516.c
+++ b/src/devices/sound/hc55516.c
diff --git a/src/emu/sound/hc55516.h b/src/devices/sound/hc55516.h
index a6323f8ee4f..a6323f8ee4f 100644
--- a/src/emu/sound/hc55516.h
+++ b/src/devices/sound/hc55516.h
diff --git a/src/emu/sound/i5000.c b/src/devices/sound/i5000.c
index df86311904e..df86311904e 100644
--- a/src/emu/sound/i5000.c
+++ b/src/devices/sound/i5000.c
diff --git a/src/emu/sound/i5000.h b/src/devices/sound/i5000.h
index cdf8b33430e..cdf8b33430e 100644
--- a/src/emu/sound/i5000.h
+++ b/src/devices/sound/i5000.h
diff --git a/src/emu/sound/ics2115.c b/src/devices/sound/ics2115.c
index af3557c28c3..af3557c28c3 100644
--- a/src/emu/sound/ics2115.c
+++ b/src/devices/sound/ics2115.c
diff --git a/src/emu/sound/ics2115.h b/src/devices/sound/ics2115.h
index fbfeb64e24a..fbfeb64e24a 100644
--- a/src/emu/sound/ics2115.h
+++ b/src/devices/sound/ics2115.h
diff --git a/src/emu/sound/iremga20.c b/src/devices/sound/iremga20.c
index 925814945fe..925814945fe 100644
--- a/src/emu/sound/iremga20.c
+++ b/src/devices/sound/iremga20.c
diff --git a/src/emu/sound/iremga20.h b/src/devices/sound/iremga20.h
index 13bc8c0ef64..13bc8c0ef64 100644
--- a/src/emu/sound/iremga20.h
+++ b/src/devices/sound/iremga20.h
diff --git a/src/emu/sound/k005289.c b/src/devices/sound/k005289.c
index 746cf04413f..746cf04413f 100644
--- a/src/emu/sound/k005289.c
+++ b/src/devices/sound/k005289.c
diff --git a/src/emu/sound/k005289.h b/src/devices/sound/k005289.h
index 8bee1534390..8bee1534390 100644
--- a/src/emu/sound/k005289.h
+++ b/src/devices/sound/k005289.h
diff --git a/src/emu/sound/k007232.c b/src/devices/sound/k007232.c
index 6f5286b951f..6f5286b951f 100644
--- a/src/emu/sound/k007232.c
+++ b/src/devices/sound/k007232.c
diff --git a/src/emu/sound/k007232.h b/src/devices/sound/k007232.h
index 236fbd26671..236fbd26671 100644
--- a/src/emu/sound/k007232.h
+++ b/src/devices/sound/k007232.h
diff --git a/src/emu/sound/k051649.c b/src/devices/sound/k051649.c
index d69b9f25445..d69b9f25445 100644
--- a/src/emu/sound/k051649.c
+++ b/src/devices/sound/k051649.c
diff --git a/src/emu/sound/k051649.h b/src/devices/sound/k051649.h
index ee4ffcbfb8e..ee4ffcbfb8e 100644
--- a/src/emu/sound/k051649.h
+++ b/src/devices/sound/k051649.h
diff --git a/src/emu/sound/k053260.c b/src/devices/sound/k053260.c
index 86054000829..86054000829 100644
--- a/src/emu/sound/k053260.c
+++ b/src/devices/sound/k053260.c
diff --git a/src/emu/sound/k053260.h b/src/devices/sound/k053260.h
index 4a6e6353d08..4a6e6353d08 100644
--- a/src/emu/sound/k053260.h
+++ b/src/devices/sound/k053260.h
diff --git a/src/emu/sound/k054539.c b/src/devices/sound/k054539.c
index 965ed5b9b58..965ed5b9b58 100644
--- a/src/emu/sound/k054539.c
+++ b/src/devices/sound/k054539.c
diff --git a/src/emu/sound/k054539.h b/src/devices/sound/k054539.h
index d6fa2dc73a1..d6fa2dc73a1 100644
--- a/src/emu/sound/k054539.h
+++ b/src/devices/sound/k054539.h
diff --git a/src/emu/sound/k056800.c b/src/devices/sound/k056800.c
index 1534783f8de..1534783f8de 100644
--- a/src/emu/sound/k056800.c
+++ b/src/devices/sound/k056800.c
diff --git a/src/emu/sound/k056800.h b/src/devices/sound/k056800.h
index 7a14647b3f1..7a14647b3f1 100644
--- a/src/emu/sound/k056800.h
+++ b/src/devices/sound/k056800.h
diff --git a/src/emu/sound/l7a1045_l6028_dsp_a.c b/src/devices/sound/l7a1045_l6028_dsp_a.c
index 9f5f6cbe965..baf277b55e2 100644
--- a/src/emu/sound/l7a1045_l6028_dsp_a.c
+++ b/src/devices/sound/l7a1045_l6028_dsp_a.c
@@ -1,5 +1,5 @@
// license:LGPL-2.1+
-// copyright-holders:David Haywood, Angelo Salese, ElSemi, Andrew Gardner, Andrew Zaferakis
+// copyright-holders:David Haywood, Angelo Salese, ElSemi
/***************************************************************************
L7A1045 L6028 DSP-A
diff --git a/src/emu/sound/l7a1045_l6028_dsp_a.h b/src/devices/sound/l7a1045_l6028_dsp_a.h
index 76c6a9a6744..c0283f36836 100644
--- a/src/emu/sound/l7a1045_l6028_dsp_a.h
+++ b/src/devices/sound/l7a1045_l6028_dsp_a.h
@@ -1,5 +1,5 @@
// license:LGPL-2.1+
-// copyright-holders:David Haywood, Angelo Salese, ElSemi, Andrew Gardner, Andrew Zaferakis
+// copyright-holders:David Haywood, Angelo Salese, ElSemi
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
diff --git a/src/emu/sound/lmc1992.c b/src/devices/sound/lmc1992.c
index f4007ea875d..f4007ea875d 100644
--- a/src/emu/sound/lmc1992.c
+++ b/src/devices/sound/lmc1992.c
diff --git a/src/emu/sound/lmc1992.h b/src/devices/sound/lmc1992.h
index 0f76e38544e..0f76e38544e 100644
--- a/src/emu/sound/lmc1992.h
+++ b/src/devices/sound/lmc1992.h
diff --git a/src/emu/sound/mas3507d.c b/src/devices/sound/mas3507d.c
index a7be9bb4ba1..a7be9bb4ba1 100644
--- a/src/emu/sound/mas3507d.c
+++ b/src/devices/sound/mas3507d.c
diff --git a/src/emu/sound/mas3507d.h b/src/devices/sound/mas3507d.h
index 0dad34bfe61..0dad34bfe61 100644
--- a/src/emu/sound/mas3507d.h
+++ b/src/devices/sound/mas3507d.h
diff --git a/src/emu/sound/mos6560.c b/src/devices/sound/mos6560.c
index eb4ee0a5c30..eb4ee0a5c30 100644
--- a/src/emu/sound/mos6560.c
+++ b/src/devices/sound/mos6560.c
diff --git a/src/emu/sound/mos6560.h b/src/devices/sound/mos6560.h
index 05768815bf0..05768815bf0 100644
--- a/src/emu/sound/mos6560.h
+++ b/src/devices/sound/mos6560.h
diff --git a/src/emu/sound/mos6581.c b/src/devices/sound/mos6581.c
index 73115c79f83..73115c79f83 100644
--- a/src/emu/sound/mos6581.c
+++ b/src/devices/sound/mos6581.c
diff --git a/src/emu/sound/mos6581.h b/src/devices/sound/mos6581.h
index 4699bdc51d7..4699bdc51d7 100644
--- a/src/emu/sound/mos6581.h
+++ b/src/devices/sound/mos6581.h
diff --git a/src/emu/sound/mos7360.c b/src/devices/sound/mos7360.c
index fe8631cfee2..fe8631cfee2 100644
--- a/src/emu/sound/mos7360.c
+++ b/src/devices/sound/mos7360.c
diff --git a/src/emu/sound/mos7360.h b/src/devices/sound/mos7360.h
index aea96b42bd9..aea96b42bd9 100644
--- a/src/emu/sound/mos7360.h
+++ b/src/devices/sound/mos7360.h
diff --git a/src/emu/sound/mpeg_audio.c b/src/devices/sound/mpeg_audio.c
index bf024383a06..bf024383a06 100644
--- a/src/emu/sound/mpeg_audio.c
+++ b/src/devices/sound/mpeg_audio.c
diff --git a/src/emu/sound/mpeg_audio.h b/src/devices/sound/mpeg_audio.h
index 615116b6021..615116b6021 100644
--- a/src/emu/sound/mpeg_audio.h
+++ b/src/devices/sound/mpeg_audio.h
diff --git a/src/emu/sound/msm5205.c b/src/devices/sound/msm5205.c
index ae925a513b8..ae925a513b8 100644
--- a/src/emu/sound/msm5205.c
+++ b/src/devices/sound/msm5205.c
diff --git a/src/emu/sound/msm5205.h b/src/devices/sound/msm5205.h
index ab3b4219df2..ab3b4219df2 100644
--- a/src/emu/sound/msm5205.h
+++ b/src/devices/sound/msm5205.h
diff --git a/src/emu/sound/msm5232.c b/src/devices/sound/msm5232.c
index 6bd36aac09e..6bd36aac09e 100644
--- a/src/emu/sound/msm5232.c
+++ b/src/devices/sound/msm5232.c
diff --git a/src/emu/sound/msm5232.h b/src/devices/sound/msm5232.h
index a7e30e72a57..a7e30e72a57 100644
--- a/src/emu/sound/msm5232.h
+++ b/src/devices/sound/msm5232.h
diff --git a/src/emu/sound/multipcm.c b/src/devices/sound/multipcm.c
index 69c164bad2c..69c164bad2c 100644
--- a/src/emu/sound/multipcm.c
+++ b/src/devices/sound/multipcm.c
diff --git a/src/emu/sound/multipcm.h b/src/devices/sound/multipcm.h
index 18854902ef1..18854902ef1 100644
--- a/src/emu/sound/multipcm.h
+++ b/src/devices/sound/multipcm.h
diff --git a/src/emu/sound/n63701x.c b/src/devices/sound/n63701x.c
index a1308c36713..a1308c36713 100644
--- a/src/emu/sound/n63701x.c
+++ b/src/devices/sound/n63701x.c
diff --git a/src/emu/sound/n63701x.h b/src/devices/sound/n63701x.h
index 9af9bfc62ab..9af9bfc62ab 100644
--- a/src/emu/sound/n63701x.h
+++ b/src/devices/sound/n63701x.h
diff --git a/src/emu/sound/namco.c b/src/devices/sound/namco.c
index ea59b5c6393..ea59b5c6393 100644
--- a/src/emu/sound/namco.c
+++ b/src/devices/sound/namco.c
diff --git a/src/emu/sound/namco.h b/src/devices/sound/namco.h
index 56be828b046..56be828b046 100644
--- a/src/emu/sound/namco.h
+++ b/src/devices/sound/namco.h
diff --git a/src/emu/sound/nes_apu.c b/src/devices/sound/nes_apu.c
index 95a68e9c3b1..cd2dfa8e4cb 100644
--- a/src/emu/sound/nes_apu.c
+++ b/src/devices/sound/nes_apu.c
@@ -143,9 +143,9 @@ void nesapu_device::device_start()
int rate = clock() / 4;
/* Initialize global variables */
- m_samps_per_sync = rate / ATTOSECONDS_TO_HZ(machine().first_screen()->frame_period().attoseconds);
+ m_samps_per_sync = rate / ATTOSECONDS_TO_HZ(machine().first_screen()->frame_period().attoseconds());
m_buffer_size = m_samps_per_sync;
- m_real_rate = m_samps_per_sync * ATTOSECONDS_TO_HZ(machine().first_screen()->frame_period().attoseconds);
+ m_real_rate = m_samps_per_sync * ATTOSECONDS_TO_HZ(machine().first_screen()->frame_period().attoseconds());
m_apu_incsize = (float) (clock() / (float) m_real_rate);
/* Use initializer calls */
diff --git a/src/emu/sound/nes_apu.h b/src/devices/sound/nes_apu.h
index 48823246e39..48823246e39 100644
--- a/src/emu/sound/nes_apu.h
+++ b/src/devices/sound/nes_apu.h
diff --git a/src/emu/sound/nes_defs.h b/src/devices/sound/nes_defs.h
index 0215a6a1208..0215a6a1208 100644
--- a/src/emu/sound/nes_defs.h
+++ b/src/devices/sound/nes_defs.h
diff --git a/src/emu/sound/nile.c b/src/devices/sound/nile.c
index a0fd9d8b5a5..a0fd9d8b5a5 100644
--- a/src/emu/sound/nile.c
+++ b/src/devices/sound/nile.c
diff --git a/src/emu/sound/nile.h b/src/devices/sound/nile.h
index 9aa05d79511..9aa05d79511 100644
--- a/src/emu/sound/nile.h
+++ b/src/devices/sound/nile.h
diff --git a/src/emu/sound/okiadpcm.c b/src/devices/sound/okiadpcm.c
index 611f7e2f13f..611f7e2f13f 100644
--- a/src/emu/sound/okiadpcm.c
+++ b/src/devices/sound/okiadpcm.c
diff --git a/src/emu/sound/okiadpcm.h b/src/devices/sound/okiadpcm.h
index 311ee9d404f..311ee9d404f 100644
--- a/src/emu/sound/okiadpcm.h
+++ b/src/devices/sound/okiadpcm.h
diff --git a/src/emu/sound/okim6258.c b/src/devices/sound/okim6258.c
index d26810e33d5..d26810e33d5 100644
--- a/src/emu/sound/okim6258.c
+++ b/src/devices/sound/okim6258.c
diff --git a/src/emu/sound/okim6258.h b/src/devices/sound/okim6258.h
index c4cfed1c82c..c4cfed1c82c 100644
--- a/src/emu/sound/okim6258.h
+++ b/src/devices/sound/okim6258.h
diff --git a/src/emu/sound/okim6295.c b/src/devices/sound/okim6295.c
index fc9f35e3a58..fc9f35e3a58 100644
--- a/src/emu/sound/okim6295.c
+++ b/src/devices/sound/okim6295.c
diff --git a/src/emu/sound/okim6295.h b/src/devices/sound/okim6295.h
index 33c8962767a..33c8962767a 100644
--- a/src/emu/sound/okim6295.h
+++ b/src/devices/sound/okim6295.h
diff --git a/src/emu/sound/okim6376.c b/src/devices/sound/okim6376.c
index 2db0a475b04..2db0a475b04 100644
--- a/src/emu/sound/okim6376.c
+++ b/src/devices/sound/okim6376.c
diff --git a/src/emu/sound/okim6376.h b/src/devices/sound/okim6376.h
index df87344eb50..df87344eb50 100644
--- a/src/emu/sound/okim6376.h
+++ b/src/devices/sound/okim6376.h
diff --git a/src/emu/sound/okim9810.c b/src/devices/sound/okim9810.c
index e134e646ddb..e134e646ddb 100644
--- a/src/emu/sound/okim9810.c
+++ b/src/devices/sound/okim9810.c
diff --git a/src/emu/sound/okim9810.h b/src/devices/sound/okim9810.h
index 6d3595c59b2..6d3595c59b2 100644
--- a/src/emu/sound/okim9810.h
+++ b/src/devices/sound/okim9810.h
diff --git a/src/emu/sound/pci-ac97.c b/src/devices/sound/pci-ac97.c
index 84018534e46..84018534e46 100644
--- a/src/emu/sound/pci-ac97.c
+++ b/src/devices/sound/pci-ac97.c
diff --git a/src/emu/sound/pci-ac97.h b/src/devices/sound/pci-ac97.h
index 56a3e4c3ace..56a3e4c3ace 100644
--- a/src/emu/sound/pci-ac97.h
+++ b/src/devices/sound/pci-ac97.h
diff --git a/src/emu/sound/pokey.c b/src/devices/sound/pokey.c
index 89279c16184..89279c16184 100644
--- a/src/emu/sound/pokey.c
+++ b/src/devices/sound/pokey.c
diff --git a/src/emu/sound/pokey.h b/src/devices/sound/pokey.h
index 96c9f672246..96c9f672246 100644
--- a/src/emu/sound/pokey.h
+++ b/src/devices/sound/pokey.h
diff --git a/src/emu/sound/pokey.txt b/src/devices/sound/pokey.txt
index e0a30094893..e0a30094893 100644
--- a/src/emu/sound/pokey.txt
+++ b/src/devices/sound/pokey.txt
diff --git a/src/emu/sound/qs1000.c b/src/devices/sound/qs1000.c
index 3100800acbc..3100800acbc 100644
--- a/src/emu/sound/qs1000.c
+++ b/src/devices/sound/qs1000.c
diff --git a/src/emu/sound/qs1000.h b/src/devices/sound/qs1000.h
index 24b843184b4..24b843184b4 100644
--- a/src/emu/sound/qs1000.h
+++ b/src/devices/sound/qs1000.h
diff --git a/src/emu/sound/qsound.c b/src/devices/sound/qsound.c
index c519da454a5..c519da454a5 100644
--- a/src/emu/sound/qsound.c
+++ b/src/devices/sound/qsound.c
diff --git a/src/emu/sound/qsound.h b/src/devices/sound/qsound.h
index 208fdac41e9..208fdac41e9 100644
--- a/src/emu/sound/qsound.h
+++ b/src/devices/sound/qsound.h
diff --git a/src/emu/sound/rf5c400.c b/src/devices/sound/rf5c400.c
index 91f9cf0d761..2e3b823c013 100644
--- a/src/emu/sound/rf5c400.c
+++ b/src/devices/sound/rf5c400.c
@@ -413,6 +413,18 @@ WRITE16_MEMBER( rf5c400_device::rf5c400_w )
case 0x08: // relative to env attack (channel no)
case 0x09: // relative to env attack (0x0c00/ 0x1c00)
+ case 0x11: // ? counter for 0x13?
+ {
+ break;
+ }
+ case 0x13: // ? bujutsu writes sample data here
+ {
+ break;
+ }
+
+ case 0x14: // ? related to 0x11/0x13 ?
+ break;
+
case 0x21: // reverb(character).w
case 0x32: // reverb(pre-lpf).w
case 0x2B: // reverb(level).w
diff --git a/src/emu/sound/rf5c400.h b/src/devices/sound/rf5c400.h
index 4781f8893d9..4781f8893d9 100644
--- a/src/emu/sound/rf5c400.h
+++ b/src/devices/sound/rf5c400.h
diff --git a/src/emu/sound/rf5c68.c b/src/devices/sound/rf5c68.c
index af99edd197a..af99edd197a 100644
--- a/src/emu/sound/rf5c68.c
+++ b/src/devices/sound/rf5c68.c
diff --git a/src/emu/sound/rf5c68.h b/src/devices/sound/rf5c68.h
index 8dafb114f21..8dafb114f21 100644
--- a/src/emu/sound/rf5c68.h
+++ b/src/devices/sound/rf5c68.h
diff --git a/src/emu/sound/s14001a.c b/src/devices/sound/s14001a.c
index 50cca284241..50cca284241 100644
--- a/src/emu/sound/s14001a.c
+++ b/src/devices/sound/s14001a.c
diff --git a/src/emu/sound/s14001a.h b/src/devices/sound/s14001a.h
index 4427a59f8b7..4427a59f8b7 100644
--- a/src/emu/sound/s14001a.h
+++ b/src/devices/sound/s14001a.h
diff --git a/src/emu/sound/saa1099.c b/src/devices/sound/saa1099.c
index a915fa6ed38..a915fa6ed38 100644
--- a/src/emu/sound/saa1099.c
+++ b/src/devices/sound/saa1099.c
diff --git a/src/emu/sound/saa1099.h b/src/devices/sound/saa1099.h
index 1909efa1c52..1909efa1c52 100644
--- a/src/emu/sound/saa1099.h
+++ b/src/devices/sound/saa1099.h
diff --git a/src/emu/sound/samples.c b/src/devices/sound/samples.c
index 5a47e5d27da..863e30f0832 100644
--- a/src/emu/sound/samples.c
+++ b/src/devices/sound/samples.c
@@ -595,13 +595,15 @@ bool samples_device::read_flac_sample(emu_file &file, sample_t &sample)
//-------------------------------------------------
// load_samples - load all the samples in our
// attached interface
+// Returns true when all samples were successfully read, else false
//-------------------------------------------------
-void samples_device::load_samples()
+bool samples_device::load_samples()
{
+ bool ok = true;
// if the user doesn't want to use samples, bail
if (!machine().options().samples())
- return;
+ return false;
// iterate over ourself
const char *basename = machine().basename();
@@ -631,6 +633,10 @@ void samples_device::load_samples()
if (filerr == FILERR_NONE)
read_sample(file, m_sample[index]);
else if (filerr == FILERR_NOT_FOUND)
- osd_printf_warning("Sample '%s' NOT FOUND\n", samplename);
+ {
+ logerror("%s: Sample '%s' NOT FOUND\n", tag(), samplename);
+ ok = false;
+ }
}
+ return ok;
}
diff --git a/src/emu/sound/samples.h b/src/devices/sound/samples.h
index 45770e127ed..24bb4541766 100644
--- a/src/emu/sound/samples.h
+++ b/src/devices/sound/samples.h
@@ -92,7 +92,6 @@ protected:
// device_sound_interface overrides
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples);
-private:
// internal classes
struct channel_t
{
@@ -111,7 +110,7 @@ private:
// internal helpers
static bool read_wav_sample(emu_file &file, sample_t &sample);
static bool read_flac_sample(emu_file &file, sample_t &sample);
- void load_samples();
+ bool load_samples();
// internal state
std::vector<channel_t> m_channel;
diff --git a/src/emu/sound/sb0400.c b/src/devices/sound/sb0400.c
index 343cb6aecaa..343cb6aecaa 100644
--- a/src/emu/sound/sb0400.c
+++ b/src/devices/sound/sb0400.c
diff --git a/src/emu/sound/sb0400.h b/src/devices/sound/sb0400.h
index aeb1ec43e61..aeb1ec43e61 100644
--- a/src/emu/sound/sb0400.h
+++ b/src/devices/sound/sb0400.h
diff --git a/src/emu/sound/scsp.c b/src/devices/sound/scsp.c
index b37284cc05c..df2a5ef0143 100644
--- a/src/emu/sound/scsp.c
+++ b/src/devices/sound/scsp.c
@@ -30,6 +30,7 @@
*/
#include "emu.h"
+#include "sound/cdda.h"
#include "scsp.h"
@@ -281,6 +282,8 @@ void scsp_device::MainCheckPendingIRQ(UINT16 irq_type)
{
m_mcipd |= irq_type;
+ //machine().scheduler().synchronize(); // force resync
+
if(m_mcipd & m_mcieb)
m_main_irq_cb(1);
else
@@ -695,8 +698,8 @@ void scsp_device::UpdateReg(address_space &space, int reg)
break;
case 8:
case 9:
- /* Only MSLC could be written. */
- m_udata.data[0x8/2] &= 0x7800;
+ /* Only MSLC could be written. */
+ m_udata.data[0x8/2] &= 0xf800; /**< @todo Docs claims MSLC to be 0x7800, but Jikkyou Parodius doesn't agree. */
break;
case 0x12:
case 0x13:
@@ -1010,8 +1013,10 @@ unsigned short scsp_device::r16(address_space &space, unsigned int addr)
v= *((unsigned short *) (m_DSP.EFREG+(addr-0xec0)/2));
else
{
- /*
- TODO: Kyuutenkai reads from 0xee0/0xee2, it's an undocumented "DSP internal buffer" register ...
+ /**!
+ @todo Kyuutenkai reads from 0xee0/0xee2, it's tied with EXTS register(s) also used for CD-Rom Player equalizer.
+ This port is actually an external parallel port, directly connected from the CD Block device, hence code is a bit of an hack.
+ Kyuutenkai code snippet for reference:
004A3A: 207C 0010 0EE0 movea.l #$100ee0, A0
004A40: 43EA 0090 lea ($90,A2), A1 ;A2=0x700
004A44: 6100 0254 bsr $4c9a
@@ -1044,11 +1049,11 @@ unsigned short scsp_device::r16(address_space &space, unsigned int addr)
004CB0: 4CDF 0002 movem.l (A7)+, D1
004CB4: 4E75 rts
*/
- logerror("SCSP: Reading from unmapped register %08x\n",addr);
+ logerror("SCSP: Reading from EXTS register %08x\n",addr);
if(addr == 0xee0)
- v= m_DSP.TEMP[0] >> 16;
+ v = space.machine().device<cdda_device>("cdda")->get_channel_volume(0);
if(addr == 0xee2)
- v= m_DSP.TEMP[0] & 0xffff;
+ v = space.machine().device<cdda_device>("cdda")->get_channel_volume(1);
}
}
return v;
diff --git a/src/emu/sound/scsp.h b/src/devices/sound/scsp.h
index bc104a85b68..bc104a85b68 100644
--- a/src/emu/sound/scsp.h
+++ b/src/devices/sound/scsp.h
diff --git a/src/emu/sound/scspdsp.c b/src/devices/sound/scspdsp.c
index 75b30cfe85a..75b30cfe85a 100644
--- a/src/emu/sound/scspdsp.c
+++ b/src/devices/sound/scspdsp.c
diff --git a/src/emu/sound/scspdsp.h b/src/devices/sound/scspdsp.h
index 319b3ebe099..319b3ebe099 100644
--- a/src/emu/sound/scspdsp.h
+++ b/src/devices/sound/scspdsp.h
diff --git a/src/emu/sound/segapcm.c b/src/devices/sound/segapcm.c
index 50e875bc474..50e875bc474 100644
--- a/src/emu/sound/segapcm.c
+++ b/src/devices/sound/segapcm.c
diff --git a/src/emu/sound/segapcm.h b/src/devices/sound/segapcm.h
index df7110bb7b2..df7110bb7b2 100644
--- a/src/emu/sound/segapcm.h
+++ b/src/devices/sound/segapcm.h
diff --git a/src/emu/sound/sid.c b/src/devices/sound/sid.c
index 375095e7401..375095e7401 100644
--- a/src/emu/sound/sid.c
+++ b/src/devices/sound/sid.c
diff --git a/src/emu/sound/sid.h b/src/devices/sound/sid.h
index 9fb8a6dc5bb..9fb8a6dc5bb 100644
--- a/src/emu/sound/sid.h
+++ b/src/devices/sound/sid.h
diff --git a/src/emu/sound/side6581.h b/src/devices/sound/side6581.h
index 9fb28ffd6d0..9fb28ffd6d0 100644
--- a/src/emu/sound/side6581.h
+++ b/src/devices/sound/side6581.h
diff --git a/src/emu/sound/sidenvel.c b/src/devices/sound/sidenvel.c
index 9b375c37b1f..9b375c37b1f 100644
--- a/src/emu/sound/sidenvel.c
+++ b/src/devices/sound/sidenvel.c
diff --git a/src/emu/sound/sidenvel.h b/src/devices/sound/sidenvel.h
index 72f303b8110..72f303b8110 100644
--- a/src/emu/sound/sidenvel.h
+++ b/src/devices/sound/sidenvel.h
diff --git a/src/emu/sound/sidvoice.c b/src/devices/sound/sidvoice.c
index 2dd42bcf3c4..2dd42bcf3c4 100644
--- a/src/emu/sound/sidvoice.c
+++ b/src/devices/sound/sidvoice.c
diff --git a/src/emu/sound/sidvoice.h b/src/devices/sound/sidvoice.h
index f0aebf50f08..f0aebf50f08 100644
--- a/src/emu/sound/sidvoice.h
+++ b/src/devices/sound/sidvoice.h
diff --git a/src/emu/sound/sidw6581.h b/src/devices/sound/sidw6581.h
index b37f7693c54..b37f7693c54 100644
--- a/src/emu/sound/sidw6581.h
+++ b/src/devices/sound/sidw6581.h
diff --git a/src/emu/sound/sidw8580.h b/src/devices/sound/sidw8580.h
index e1f0c10ec8e..e1f0c10ec8e 100644
--- a/src/emu/sound/sidw8580.h
+++ b/src/devices/sound/sidw8580.h
diff --git a/src/emu/sound/sn76477.c b/src/devices/sound/sn76477.c
index ea90e03b185..402db065d51 100644
--- a/src/emu/sound/sn76477.c
+++ b/src/devices/sound/sn76477.c
@@ -30,7 +30,7 @@
*****************************************************************************/
#include "emu.h"
-#include "wavwrite.h"
+#include "sound/wavwrite.h"
#include "sn76477.h"
diff --git a/src/emu/sound/sn76477.h b/src/devices/sound/sn76477.h
index 392beb13489..392beb13489 100644
--- a/src/emu/sound/sn76477.h
+++ b/src/devices/sound/sn76477.h
diff --git a/src/emu/sound/sn76496.c b/src/devices/sound/sn76496.c
index 7d0ccf50319..2f65392174d 100644
--- a/src/emu/sound/sn76496.c
+++ b/src/devices/sound/sn76496.c
@@ -110,6 +110,11 @@
27/06/2012: Michael Zapf
Converted to modern device, legacy devices were gradually removed afterwards.
+ 16/09/2015: Lord Nightmare
+ Fix PSG chips to have volume reg inited on reset to 0x0 based on tests by
+ ValleyBell. Made Sega PSG chips start up with register 0x3 selected (volume
+ for channel 2) based on hardware tests by Nemesis.
+
TODO: * Implement the TMS9919 - any difference to sn94624?
* Implement the T6W28; has registers in a weird order, needs writes
to be 'sanitized' first. Also is stereo, similar to game gear.
@@ -126,7 +131,7 @@
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 freq0,
+ const char *tag, int feedbackmask, int noisetap1, int noisetap2, bool negate, bool stereo, int clockdivider, int sega,
device_t *owner, UINT32 clock, const char *shortname, const char *source)
: device_t(mconfig, type, name, tag, owner, clock, shortname, source),
@@ -138,7 +143,7 @@ sn76496_base_device::sn76496_base_device(const machine_config &mconfig, device_t
m_negate(negate),
m_stereo(stereo),
m_clock_divider(clockdivider),
- m_freq0_is_max(freq0)
+ m_sega_style_psg(sega)
{
}
@@ -187,11 +192,11 @@ void sn76496_base_device::device_start()
for (i = 0; i < 4; i++) m_volume[i] = 0;
- m_last_register = 0;
+ m_last_register = m_sega_style_psg?3:0; // Sega VDP PSG defaults to selected period reg for 2nd channel
for (i = 0; i < 8; i+=2)
{
m_register[i] = 0;
- m_register[i + 1] = 0x0f; // volume = 0
+ m_register[i + 1] = 0x0; // volume = 0x0 (max volume) on reset; this needs testing on chips other than SN76489A and Sega VDP PSG
}
for (i = 0; i < 4; i++)
@@ -270,7 +275,7 @@ void sn76496_base_device::write(UINT8 data)
case 2: // tone 1: frequency
case 4: // tone 2: frequency
if ((data & 0x80) == 0) m_register[r] = (m_register[r] & 0x0f) | ((data & 0x3f) << 4);
- if ((m_register[r] != 0) || (!m_freq0_is_max)) m_period[c] = m_register[r];
+ if ((m_register[r] != 0) || (!m_sega_style_psg)) m_period[c] = m_register[r];
else m_period[c] = 0x400;
if (r == 4)
@@ -426,7 +431,7 @@ void sn76496_base_device::register_for_save_states()
save_item(NAME(m_count));
save_item(NAME(m_output));
save_item(NAME(m_cycles_to_ready));
-// save_item(NAME(m_freq0_is_max));
+// save_item(NAME(m_sega_style_psg));
}
const device_type SN76496 = &device_creator<sn76496_device>;
diff --git a/src/emu/sound/sn76496.h b/src/devices/sound/sn76496.h
index bedee2de532..f374b4d1293 100644
--- a/src/emu/sound/sn76496.h
+++ b/src/devices/sound/sn76496.h
@@ -24,7 +24,7 @@ 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 freq0,
+ int feedbackmask, int noisetap1, int noisetap2, bool negate, bool stereo, int clockdivider, int sega,
device_t *owner, UINT32 clock, const char *shortname, const char *source);
// static configuration helpers
@@ -56,7 +56,7 @@ private:
const bool m_negate; // output negate flag
const bool m_stereo; // whether we're dealing with stereo or not
const INT32 m_clock_divider; // clock divider
- const bool m_freq0_is_max; // flag for if frequency zero acts as if it is one more than max (0x3ff+1) or if it acts like 0
+ const bool m_sega_style_psg; // flag for if frequency zero acts as if it is one more than max (0x3ff+1) or if it acts like 0; AND if the initial register is pointing to 0x3 instead of 0x0 AND if the volume reg is preloaded with 0xF instead of 0x0
INT32 m_vol_table[16]; // volume table (for 4-bit to db conversion)
INT32 m_register[8]; // registers
diff --git a/src/emu/sound/snkwave.c b/src/devices/sound/snkwave.c
index bc9cca6b59c..bc9cca6b59c 100644
--- a/src/emu/sound/snkwave.c
+++ b/src/devices/sound/snkwave.c
diff --git a/src/emu/sound/snkwave.h b/src/devices/sound/snkwave.h
index f613ca3ff5b..f613ca3ff5b 100644
--- a/src/emu/sound/snkwave.h
+++ b/src/devices/sound/snkwave.h
diff --git a/src/emu/sound/sp0250.c b/src/devices/sound/sp0250.c
index 5bf37c4e924..5bf37c4e924 100644
--- a/src/emu/sound/sp0250.c
+++ b/src/devices/sound/sp0250.c
diff --git a/src/emu/sound/sp0250.h b/src/devices/sound/sp0250.h
index 846a193cfa2..846a193cfa2 100644
--- a/src/emu/sound/sp0250.h
+++ b/src/devices/sound/sp0250.h
diff --git a/src/emu/sound/sp0256.c b/src/devices/sound/sp0256.c
index 31071bb247e..31071bb247e 100644
--- a/src/emu/sound/sp0256.c
+++ b/src/devices/sound/sp0256.c
diff --git a/src/emu/sound/sp0256.h b/src/devices/sound/sp0256.h
index f4ceb61bb68..f4ceb61bb68 100644
--- a/src/emu/sound/sp0256.h
+++ b/src/devices/sound/sp0256.h
diff --git a/src/emu/sound/speaker.c b/src/devices/sound/speaker.c
index 7872351a0e3..7872351a0e3 100644
--- a/src/emu/sound/speaker.c
+++ b/src/devices/sound/speaker.c
diff --git a/src/emu/sound/speaker.h b/src/devices/sound/speaker.h
index 67819769926..67819769926 100644
--- a/src/emu/sound/speaker.h
+++ b/src/devices/sound/speaker.h
diff --git a/src/emu/sound/spu.c b/src/devices/sound/spu.c
index ef5a81e0e82..ef5a81e0e82 100644
--- a/src/emu/sound/spu.c
+++ b/src/devices/sound/spu.c
diff --git a/src/emu/sound/spu.h b/src/devices/sound/spu.h
index 8a6727e4833..8a6727e4833 100644
--- a/src/emu/sound/spu.h
+++ b/src/devices/sound/spu.h
diff --git a/src/emu/sound/spu_tables.c b/src/devices/sound/spu_tables.c
index faa5719c4c6..faa5719c4c6 100644
--- a/src/emu/sound/spu_tables.c
+++ b/src/devices/sound/spu_tables.c
diff --git a/src/emu/sound/spureverb.c b/src/devices/sound/spureverb.c
index 3c784acbbee..3c784acbbee 100644
--- a/src/emu/sound/spureverb.c
+++ b/src/devices/sound/spureverb.c
diff --git a/src/emu/sound/spureverb.h b/src/devices/sound/spureverb.h
index 8a8cb040ba8..8a8cb040ba8 100644
--- a/src/emu/sound/spureverb.h
+++ b/src/devices/sound/spureverb.h
diff --git a/src/emu/sound/st0016.c b/src/devices/sound/st0016.c
index 99328a93b4d..99328a93b4d 100644
--- a/src/emu/sound/st0016.c
+++ b/src/devices/sound/st0016.c
diff --git a/src/emu/sound/st0016.h b/src/devices/sound/st0016.h
index dd23b0c9b7a..dd23b0c9b7a 100644
--- a/src/emu/sound/st0016.h
+++ b/src/devices/sound/st0016.h
diff --git a/src/emu/sound/t6721a.c b/src/devices/sound/t6721a.c
index 2cc9828f407..2cc9828f407 100644
--- a/src/emu/sound/t6721a.c
+++ b/src/devices/sound/t6721a.c
diff --git a/src/emu/sound/t6721a.h b/src/devices/sound/t6721a.h
index ff969fa60be..ff969fa60be 100644
--- a/src/emu/sound/t6721a.h
+++ b/src/devices/sound/t6721a.h
diff --git a/src/emu/sound/t6w28.c b/src/devices/sound/t6w28.c
index 25303ec4f1b..25303ec4f1b 100644
--- a/src/emu/sound/t6w28.c
+++ b/src/devices/sound/t6w28.c
diff --git a/src/emu/sound/t6w28.h b/src/devices/sound/t6w28.h
index 7bee03bbc6b..7bee03bbc6b 100644
--- a/src/emu/sound/t6w28.h
+++ b/src/devices/sound/t6w28.h
diff --git a/src/emu/sound/tc8830f.c b/src/devices/sound/tc8830f.c
index 824b9d78958..824b9d78958 100644
--- a/src/emu/sound/tc8830f.c
+++ b/src/devices/sound/tc8830f.c
diff --git a/src/emu/sound/tc8830f.h b/src/devices/sound/tc8830f.h
index a8b9a2c62f9..a8b9a2c62f9 100644
--- a/src/emu/sound/tc8830f.h
+++ b/src/devices/sound/tc8830f.h
diff --git a/src/emu/sound/tiaintf.c b/src/devices/sound/tiaintf.c
index 7cbfe6683e4..7cbfe6683e4 100644
--- a/src/emu/sound/tiaintf.c
+++ b/src/devices/sound/tiaintf.c
diff --git a/src/emu/sound/tiaintf.h b/src/devices/sound/tiaintf.h
index 0fd349b4037..0fd349b4037 100644
--- a/src/emu/sound/tiaintf.h
+++ b/src/devices/sound/tiaintf.h
diff --git a/src/emu/sound/tiasound.c b/src/devices/sound/tiasound.c
index 960520b6b79..960520b6b79 100644
--- a/src/emu/sound/tiasound.c
+++ b/src/devices/sound/tiasound.c
diff --git a/src/emu/sound/tiasound.h b/src/devices/sound/tiasound.h
index a73b63c9cbe..a73b63c9cbe 100644
--- a/src/emu/sound/tiasound.h
+++ b/src/devices/sound/tiasound.h
diff --git a/src/emu/sound/tms3615.c b/src/devices/sound/tms3615.c
index 3ccf9159b9d..3ccf9159b9d 100644
--- a/src/emu/sound/tms3615.c
+++ b/src/devices/sound/tms3615.c
diff --git a/src/emu/sound/tms3615.h b/src/devices/sound/tms3615.h
index f68a4718ef1..f68a4718ef1 100644
--- a/src/emu/sound/tms3615.h
+++ b/src/devices/sound/tms3615.h
diff --git a/src/emu/sound/tms36xx.c b/src/devices/sound/tms36xx.c
index c170b1305b1..18c55ce6235 100644
--- a/src/emu/sound/tms36xx.c
+++ b/src/devices/sound/tms36xx.c
@@ -375,7 +375,7 @@ void tms36xx_device::device_start()
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));
-
+
save_item(NAME(m_octave));
save_item(NAME(m_tune_counter));
save_item(NAME(m_note_counter));
diff --git a/src/emu/sound/tms36xx.h b/src/devices/sound/tms36xx.h
index b15e5908cc5..b15e5908cc5 100644
--- a/src/emu/sound/tms36xx.h
+++ b/src/devices/sound/tms36xx.h
diff --git a/src/emu/sound/tms5110.c b/src/devices/sound/tms5110.c
index c5861e2d7c6..17c52f2146c 100644
--- a/src/emu/sound/tms5110.c
+++ b/src/devices/sound/tms5110.c
@@ -14,7 +14,6 @@
Todo:
- implement CS
- - implement missing commands
- TMS5110_CMD_TEST_TALK is only partially implemented
TMS5100:
@@ -66,6 +65,56 @@
#include "emu.h"
#include "tms5110.h"
+static INT16 clip_analog(INT16 cliptemp);
+
+/* *****optional defines***** */
+
+/* Hacky improvements which don't match patent: */
+/* Interpolation shift logic:
+ * One of the following two lines should be used, and the other commented
+ * The second line is more accurate mathematically but not accurate to the patent
+ */
+#define INTERP_SHIFT >> m_coeff->interp_coeff[m_IP]
+//define INTERP_SHIFT / (1<<m_coeff->interp_coeff[m_IP])
+
+/* Other hacks */
+/* HACK: if defined, outputs the low 4 bits of the lattice filter to the i/o
+ * or clip logic, even though the real hardware doesn't do this, partially verified by decap */
+#undef ALLOW_4_LSB
+
+/* forces m_TALK active instantly whenever m_SPEN would be activated, causing speech delay to be reduced by up to one frame time */
+/* for some reason, this hack makes snmath behave marginally more accurate to hardware, though it does not match the patent */
+#define FAST_START_HACK 1
+
+
+/* *****configuration of chip connection stuff***** */
+/* must be defined; if 0, output the waveform as if it was tapped on the speaker pin as usual, if 1, output the waveform as if it was tapped on the i/o pin (volume is much lower in the latter case) */
+#define FORCE_DIGITAL 0
+
+
+/* *****debugging defines***** */
+#undef VERBOSE
+// above is general, somewhat obsolete, catch all for debugs which don't fit elsewhere
+#undef DEBUG_PARSE_FRAME_DUMP
+// above dumps each frame to stderr: be sure to select one of the options below if you define it!
+#undef DEBUG_PARSE_FRAME_DUMP_BIN
+// dumps each speech frame as binary
+#undef DEBUG_PARSE_FRAME_DUMP_HEX
+// dumps each speech frame as hex
+#undef DEBUG_FRAME_ERRORS
+// above dumps info if a frame ran out of data
+#undef DEBUG_COMMAND_DUMP
+// above dumps all command writes and PDC-related state machine changes, plus command writes to VSMs
+#undef DEBUG_GENERATION
+// above dumps debug information related to the sample generation loop, i.e. whether interpolation is inhibited or not, and what the current and target values for each frame are.
+#undef DEBUG_GENERATION_VERBOSE
+// above dumps MUCH MORE debug information related to the sample generation loop, namely the excitation, energy, pitch, k*, and output values for EVERY SINGLE SAMPLE during a frame.
+#undef DEBUG_LATTICE
+// above dumps the lattice filter state data each sample.
+#undef DEBUG_CLIP
+// above dumps info to stderr whenever the analog clip hardware is (or would be) clipping the signal.
+
+
#define MAX_SAMPLE_CHUNK 512
/* 6 Variants, from tms5110r.inc */
@@ -164,103 +213,121 @@ UINT8 tms5110_device::new_int_read()
void tms5110_device::register_for_save_states()
{
- save_item(NAME(m_fifo));
- save_item(NAME(m_fifo_head));
- save_item(NAME(m_fifo_tail));
- save_item(NAME(m_fifo_count));
+ save_item(NAME(m_variant));
save_item(NAME(m_PDC));
save_item(NAME(m_CTL_pins));
- save_item(NAME(m_speaking_now));
- save_item(NAME(m_talk_status));
+ save_item(NAME(m_SPEN));
+ save_item(NAME(m_TALK));
+ save_item(NAME(m_TALKD));
save_item(NAME(m_state));
- save_item(NAME(m_old_energy));
- save_item(NAME(m_old_pitch));
- save_item(NAME(m_old_k));
-
- save_item(NAME(m_new_energy));
- save_item(NAME(m_new_pitch));
- save_item(NAME(m_new_k));
+ save_item(NAME(m_address));
+ save_item(NAME(m_next_is_address));
+ save_item(NAME(m_schedule_dummy_read));
+ save_item(NAME(m_addr_bit));
+ save_item(NAME(m_CTL_buffer));
+ save_item(NAME(m_OLDE));
+ save_item(NAME(m_OLDP));
+
+ 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
+ save_item(NAME(m_old_frame_energy_idx));
+ save_item(NAME(m_old_frame_pitch_idx));
+ save_item(NAME(m_old_frame_k_idx));
+ save_item(NAME(m_old_zpar));
+ save_item(NAME(m_old_uv_zpar));
+#endif
save_item(NAME(m_current_energy));
save_item(NAME(m_current_pitch));
save_item(NAME(m_current_k));
- save_item(NAME(m_target_energy));
- save_item(NAME(m_target_pitch));
- save_item(NAME(m_target_k));
+ save_item(NAME(m_previous_energy));
- save_item(NAME(m_interp_count));
- save_item(NAME(m_sample_count));
+ save_item(NAME(m_subcycle));
+ save_item(NAME(m_subc_reload));
+ save_item(NAME(m_PC));
+ save_item(NAME(m_IP));
+ save_item(NAME(m_inhibit));
+ save_item(NAME(m_uv_zpar));
+ save_item(NAME(m_zpar));
+ save_item(NAME(m_pitch_zero));
save_item(NAME(m_pitch_count));
- save_item(NAME(m_next_is_address));
- save_item(NAME(m_address));
- save_item(NAME(m_schedule_dummy_read));
- save_item(NAME(m_addr_bit));
- save_item(NAME(m_CTL_buffer));
-
+ save_item(NAME(m_u));
save_item(NAME(m_x));
save_item(NAME(m_RNG));
-}
-
+ save_item(NAME(m_excitation_data));
+ save_item(NAME(m_digital_select));
+ save_item(NAME(m_speech_rom_bitnum));
-/******************************************************************************************
+ save_item(NAME(m_romclk_hack_timer_started));
+ save_item(NAME(m_romclk_hack_state));
+}
- FIFO_data_write -- handle bit data write to the TMS5110 (as a result of toggling M0 pin)
+/**********************************************************************************************
-******************************************************************************************/
-void tms5110_device::FIFO_data_write(int data)
-{
- /* add this bit to the FIFO */
- if (m_fifo_count < FIFO_SIZE)
- {
- m_fifo[m_fifo_tail] = (data&1); /* set bit to 1 or 0 */
+ printbits helper function: takes a long int input and prints the resulting bits to stderr
- m_fifo_tail = (m_fifo_tail + 1) % FIFO_SIZE;
- m_fifo_count++;
+***********************************************************************************************/
- if (DEBUG_5110) logerror("Added bit to FIFO (size=%2d)\n", m_fifo_count);
- }
- else
+#ifdef DEBUG_PARSE_FRAME_DUMP_BIN
+static void printbits(long data, int num)
+{
+ int i;
+ for (i=(num-1); i>=0; i--)
+ fprintf(stderr,"%0ld", (data>>i)&1);
+}
+#endif
+#ifdef DEBUG_PARSE_FRAME_DUMP_HEX
+static void printbits(long data, int num)
+{
+ switch((num-1)&0xFC)
{
- if (DEBUG_5110) logerror("Ran out of room in the FIFO!\n");
+ case 0:
+ fprintf(stderr,"%0lx", data);
+ break;
+ case 4:
+ fprintf(stderr,"%02lx", data);
+ break;
+ case 8:
+ fprintf(stderr,"%03lx", data);
+ break;
+ case 12:
+ fprintf(stderr,"%04lx", data);
+ break;
+ default:
+ fprintf(stderr,"%04lx", data);
+ break;
}
}
+#endif
/******************************************************************************************
- extract_bits -- extract a specific number of bits from the FIFO
+ extract_bits -- extract a specific number of bits from the VSM
******************************************************************************************/
int tms5110_device::extract_bits(int count)
{
int val = 0;
- if (DEBUG_5110) logerror("requesting %d bits from fifo: ", count);
- while (count--)
+ if (DEBUG_5110) logerror("requesting %d bits", count);
+ for (int i = 0; i < count; i++)
{
- val = (val << 1) | (m_fifo[m_fifo_head] & 1);
- m_fifo_count--;
- m_fifo_head = (m_fifo_head + 1) % FIFO_SIZE;
+ val = (val<<1) | new_int_read();
+ if (DEBUG_5110) logerror("bit read: %d\n", val&1);
}
if (DEBUG_5110) logerror("returning: %02x\n", val);
return val;
}
-void tms5110_device::request_bits(int no)
-{
- for (int i = 0; i < no; i++)
- {
- UINT8 data = new_int_read();
- if (DEBUG_5110) logerror("bit added to fifo: %d\n", data);
- FIFO_data_write(data);
- }
-}
void tms5110_device::perform_dummy_read()
{
@@ -284,309 +351,408 @@ void tms5110_device::perform_dummy_read()
void tms5110_device::process(INT16 *buffer, unsigned int size)
{
int buf_count=0;
- int i, interp_period, bitout;
- INT16 Y11, cliptemp;
-
- /* if we're not speaking, fill with nothingness */
- if (!m_speaking_now)
- goto empty;
-
- /* if we're to speak, but haven't started */
- if (!m_talk_status)
- {
- /* a "dummy read" is mentioned in the tms5200 datasheet */
- /* The Bagman speech roms data are organized in such a way that
- ** the bit at address 0 is NOT a speech data. The bit at address 1
- ** is the speech data. It seems that the tms5110 performs a dummy read
- ** just before it executes a SPEAK command.
- ** This has been moved to command logic ...
- ** perform_dummy_read();
- */
-
- /* clear out the new frame parameters (it will become old frame just before the first call to parse_frame() ) */
- m_new_energy = 0;
- m_new_pitch = 0;
- for (i = 0; i < m_coeff->num_k; i++)
- m_new_k[i] = 0;
-
- m_talk_status = 1;
- }
-
+ int i, bitout;
+ INT32 this_sample;
/* loop until the buffer is full or we've stopped speaking */
- while ((size > 0) && m_speaking_now)
+ while (size > 0)
{
- int current_val;
-
- /* if we're ready for a new frame */
- if ((m_interp_count == 0) && (m_sample_count == 0))
+ if(m_TALKD) // speaking
{
- /* remember previous frame */
- m_old_energy = m_new_energy;
- m_old_pitch = m_new_pitch;
- for (i = 0; i < m_coeff->num_k; i++)
- m_old_k[i] = m_new_k[i];
-
-
- /* if the old frame was a stop frame, exit and do not process any more frames */
- if (m_old_energy == COEFF_ENERGY_SENTINEL)
+ /* if we're ready for a new frame to be applied, i.e. when IP=0, PC=12, Sub=1
+ * (In reality, the frame was really loaded incrementally during the entire IP=0
+ * PC=x time period, but it doesn't affect anything until IP=0 PC=12 happens)
+ */
+ if ((m_IP == 0) && (m_PC == 12) && (m_subcycle == 1))
{
- if (DEBUG_5110) logerror("processing frame: stop frame\n");
- m_target_energy = m_current_energy = 0;
- m_speaking_now = m_talk_status = 0;
- m_interp_count = m_sample_count = m_pitch_count = 0;
- goto empty;
- }
-
-
- /* Parse a new frame into the new_energy, new_pitch and new_k[] */
- parse_frame();
-
+ // HACK for regression testing, be sure to comment out before release!
+ //m_RNG = 0x1234;
+ // end HACK
+
+#ifdef 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;
+ for (i = 0; i < m_coeff->num_k; i++)
+ m_old_frame_k_idx[i] = m_new_frame_k_idx[i];
+#endif
- /* Set old target as new start of frame */
- m_current_energy = m_old_energy;
- m_current_pitch = m_old_pitch;
+ /* Parse a new frame into the new_target_energy, new_target_pitch and new_target_k[] */
+ parse_frame();
- for (i = 0; i < m_coeff->num_k; i++)
- m_current_k[i] = m_old_k[i];
+ /* 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)
+ {
+ m_TALK = m_SPEN = 0;
+ }
+ /* in all cases where interpolation would be inhibited, set the inhibit flag; otherwise clear it.
+ * Interpolation inhibit cases:
+ * Old frame was voiced, new is unvoiced
+ * Old frame was silence/zero energy, new has non-zero energy
+ * 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 == 1))
+ || ((OLD_FRAME_UNVOICED_FLAG == 1) && (NEW_FRAME_UNVOICED_FLAG == 0))
+ || ((OLD_FRAME_SILENCE_FLAG == 1) && (NEW_FRAME_SILENCE_FLAG == 0)) )
+ //|| ((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)) )
+ 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,"Processing new frame: ");
+ if (m_inhibit == 0)
+ fprintf(stderr, "Normal Frame\n");
+ else
+ fprintf(stderr,"Interpolation Inhibited\n");
+ fprintf(stderr,"*** current Energy, Pitch and Ks = %04d, %04d, %04d, %04d, %04d, %04d, %04d, %04d, %04d, %04d, %04d, %04d\n",m_current_energy, m_current_pitch, m_current_k[0], m_current_k[1], m_current_k[2], m_current_k[3], m_current_k[4], m_current_k[5], m_current_k[6], m_current_k[7], m_current_k[8], m_current_k[9]);
+ fprintf(stderr,"*** target Energy(idx), Pitch, and Ks = %04d(%x),%04d, %04d, %04d, %04d, %04d, %04d, %04d, %04d, %04d, %04d, %04d\n",
+ (m_coeff->energytable[m_new_frame_energy_idx] * (1-m_zpar)),
+ m_new_frame_energy_idx,
+ (m_coeff->pitchtable[m_new_frame_pitch_idx] * (1-m_zpar)),
+ (m_coeff->ktable[0][m_new_frame_k_idx[0]] * (1-m_zpar)),
+ (m_coeff->ktable[1][m_new_frame_k_idx[1]] * (1-m_zpar)),
+ (m_coeff->ktable[2][m_new_frame_k_idx[2]] * (1-m_zpar)),
+ (m_coeff->ktable[3][m_new_frame_k_idx[3]] * (1-m_zpar)),
+ (m_coeff->ktable[4][m_new_frame_k_idx[4]] * (1-m_uv_zpar)),
+ (m_coeff->ktable[5][m_new_frame_k_idx[5]] * (1-m_uv_zpar)),
+ (m_coeff->ktable[6][m_new_frame_k_idx[6]] * (1-m_uv_zpar)),
+ (m_coeff->ktable[7][m_new_frame_k_idx[7]] * (1-m_uv_zpar)),
+ (m_coeff->ktable[8][m_new_frame_k_idx[8]] * (1-m_uv_zpar)),
+ (m_coeff->ktable[9][m_new_frame_k_idx[9]] * (1-m_uv_zpar)) );
+#endif
- /* is this the stop (ramp down) frame? */
- if (m_new_energy == COEFF_ENERGY_SENTINEL)
+ }
+ else // Not a new frame, just interpolate the existing frame.
{
- /*logerror("processing frame: ramp down\n");*/
- m_target_energy = 0;
- m_target_pitch = m_old_pitch;
+ 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
+ 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));
+ //fprintf(stderr, "CS: %03d", current_sample);
+ // reset the current energy, pitch, etc to what it was at frame start
+ m_current_energy = (m_coeff->energytable[m_old_frame_energy_idx] * (1-m_old_zpar));
+ m_current_pitch = (m_coeff->pitchtable[m_old_frame_pitch_idx] * (1-m_old_zpar));
for (i = 0; i < m_coeff->num_k; i++)
- m_target_k[i] = m_old_k[i];
+ m_current_k[i] = (m_coeff->ktable[i][m_old_frame_k_idx[i]] * (1-((i<4)?m_old_zpar:m_old_uv_zpar)));
+ // now adjust each value to be exactly correct for each of the samples per frame
+ if (m_IP != 0) // if we're still interpolating...
+ {
+ m_current_energy = (m_current_energy + (((m_coeff->energytable[m_new_frame_energy_idx] - m_current_energy)*(1-inhibit_state))*current_sample)/samples_per_frame)*(1-m_zpar);
+ m_current_pitch = (m_current_pitch + (((m_coeff->pitchtable[m_new_frame_pitch_idx] - m_current_pitch)*(1-inhibit_state))*current_sample)/samples_per_frame)*(1-m_zpar);
+ for (i = 0; i < m_coeff->num_k; i++)
+ m_current_k[i] = (m_current_k[i] + (((m_coeff->ktable[i][m_new_frame_k_idx[i]] - m_current_k[i])*(1-inhibit_state))*current_sample)/samples_per_frame)*(1-((i<4)?m_zpar:m_uv_zpar));
+ }
+ else // we're done, play this frame for 1/8 frame.
+ {
+ if (m_subcycle == 2) m_pitch_zero = 0; // this reset happens around the second subcycle during IP=0
+ m_current_energy = (m_coeff->energytable[m_new_frame_energy_idx] * (1-m_zpar));
+ m_current_pitch = (m_coeff->pitchtable[m_new_frame_pitch_idx] * (1-m_zpar));
+ for (i = 0; i < m_coeff->num_k; i++)
+ m_current_k[i] = (m_coeff->ktable[i][m_new_frame_k_idx[i]] * (1-((i<4)?m_zpar:m_uv_zpar)));
+ }
+#else
+ //Updates to parameters only happen on subcycle '2' (B cycle) of PCs.
+ if (m_subcycle == 2)
+ {
+ switch(m_PC)
+ {
+ case 0: /* PC = 0, B cycle, write updated energy */
+ if (m_IP==0) m_pitch_zero = 0; // this reset happens around the second subcycle during IP=0
+ m_current_energy = (m_current_energy + (((m_coeff->energytable[m_new_frame_energy_idx] - m_current_energy)*(1-inhibit_state)) INTERP_SHIFT))*(1-m_zpar);
+ break;
+ case 1: /* PC = 1, B cycle, write updated pitch */
+ m_current_pitch = (m_current_pitch + (((m_coeff->pitchtable[m_new_frame_pitch_idx] - m_current_pitch)*(1-inhibit_state)) INTERP_SHIFT))*(1-m_zpar);
+ break;
+ case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 10: case 11:
+ /* PC = 2 through 11, B cycle, write updated K1 through K10 */
+ m_current_k[m_PC-2] = (m_current_k[m_PC-2] + (((m_coeff->ktable[m_PC-2][m_new_frame_k_idx[m_PC-2]] - m_current_k[m_PC-2])*(1-inhibit_state)) INTERP_SHIFT))*(1-(((m_PC-2)<4)?m_zpar:m_uv_zpar));
+ break;
+ case 12: /* PC = 12 */
+ /* we should NEVER reach this point, PC=12 doesn't have a subcycle 2 */
+ break;
+ }
+ }
+#endif
}
- else if ((m_old_energy == 0) && (m_new_energy != 0)) /* was the old frame a zero-energy frame? */
+
+ // calculate the output
+ if (OLD_FRAME_UNVOICED_FLAG == 1)
{
- /* if so, and if the new frame is non-zero energy frame then the new parameters
- should become our current and target parameters immediately,
- i.e. we should NOT interpolate them slowly in.
- */
-
- /*logerror("processing non-zero energy frame after zero-energy frame\n");*/
- m_target_energy = m_new_energy;
- m_target_pitch = m_current_pitch = m_new_pitch;
- for (i = 0; i < m_coeff->num_k; i++)
- m_target_k[i] = m_current_k[i] = m_new_k[i];
+ // generate unvoiced samples here
+ if (m_RNG & 1)
+ m_excitation_data = ~0x3F; /* according to the patent it is (either + or -) half of the maximum value in the chirp table, so either 01000000(0x40) or 11000000(0xC0)*/
+ else
+ m_excitation_data = 0x40;
}
- else if ((m_old_pitch == 0) && (m_new_pitch != 0)) /* is this a change from unvoiced to voiced frame ? */
+ else /* (OLD_FRAME_UNVOICED_FLAG == 0) */
{
- /* if so, then the new parameters should become our current and target parameters immediately,
- i.e. we should NOT interpolate them slowly in.
- */
- /*if (DEBUG_5110) logerror("processing frame: UNVOICED->VOICED frame change\n");*/
- m_target_energy = m_new_energy;
- m_target_pitch = m_current_pitch = m_new_pitch;
- for (i = 0; i < m_coeff->num_k; i++)
- m_target_k[i] = m_current_k[i] = m_new_k[i];
+ // generate voiced samples here
+ /* US patent 4331836 Figure 14B shows, and logic would hold, that a pitch based chirp
+ * function has a chirp/peak and then a long chain of zeroes.
+ * The last entry of the chirp rom is at address 0b110011 (51d), the 52nd sample,
+ * and if the address reaches that point the ADDRESS incrementer is
+ * disabled, forcing all samples beyond 51d to be == 51d
+ */
+ if (m_pitch_count >= 51)
+ m_excitation_data = (INT8)m_coeff->chirptable[51];
+ else /*m_pitch_count < 51*/
+ m_excitation_data = (INT8)m_coeff->chirptable[m_pitch_count];
}
- else if ((m_old_pitch != 0) && (m_new_pitch == 0)) /* is this a change from voiced to unvoiced frame ? */
+
+ // Update LFSR *20* times every sample (once per T cycle), like patent shows
+ for (i=0; i<20; i++)
{
- /* if so, then the new parameters should become our current and target parameters immediately,
- i.e. we should NOT interpolate them slowly in.
- */
- /*if (DEBUG_5110) logerror("processing frame: VOICED->UNVOICED frame change\n");*/
- m_target_energy = m_new_energy;
- m_target_pitch = m_current_pitch = m_new_pitch;
- for (i = 0; i < m_coeff->num_k; i++)
- m_target_k[i] = m_current_k[i] = m_new_k[i];
+ bitout = ((m_RNG >> 12) & 1) ^
+ ((m_RNG >> 3) & 1) ^
+ ((m_RNG >> 2) & 1) ^
+ ((m_RNG >> 0) & 1);
+ m_RNG <<= 1;
+ m_RNG |= bitout;
}
- else
+ this_sample = lattice_filter(); /* execute lattice filter */
+#ifdef DEBUG_GENERATION_VERBOSE
+ //fprintf(stderr,"C:%01d; ",m_subcycle);
+ fprintf(stderr,"IP:%01d PC:%02d X:%04d E:%03d P:%03d Pc:%03d ",m_IP, m_PC, m_excitation_data, m_current_energy, m_current_pitch, m_pitch_count);
+ //fprintf(stderr,"X:%04d E:%03d P:%03d Pc:%03d ", m_excitation_data, m_current_energy, m_current_pitch, m_pitch_count);
+ 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
+// 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);
+//#endif
+ fprintf(stderr,"\n");
+#endif
+ /* next, force result to 14 bits (since its possible that the addition at the final (k1) stage of the lattice overflowed) */
+ while (this_sample > 16383) this_sample -= 32768;
+ while (this_sample < -16384) this_sample += 32768;
+ if (m_digital_select == 0) // analog SPK pin output is only 8 bits, with clipping
+ buffer[buf_count] = clip_analog(this_sample);
+ else // digital I/O pin output is 12 bits
{
- /*logerror("processing frame: Normal\n");*/
- /*logerror("*** Energy = %d\n",current_energy);*/
- /*logerror("proc: %d %d\n",last_fbuf_head,fbuf_head);*/
+#ifdef ALLOW_4_LSB
+ // input: ssss ssss ssss ssss ssnn nnnn nnnn nnnn
+ // N taps: ^ = 0x2000;
+ // output: ssss ssss ssss ssss snnn nnnn nnnn nnnN
+ buffer[buf_count] = (this_sample<<1)|((this_sample&0x2000)>>13);
+#else
+ this_sample &= ~0xF;
+ // input: ssss ssss ssss ssss ssnn nnnn nnnn 0000
+ // N taps: ^^ ^^^ = 0x3E00;
+ // output: ssss ssss ssss ssss snnn nnnn nnnN NNNN
+ buffer[buf_count] = (this_sample<<1)|((this_sample&0x3E00)>>9);
+#endif
+ }
+ // Update all counts
- m_target_energy = m_new_energy;
- m_target_pitch = m_new_pitch;
- for (i = 0; i < m_coeff->num_k; i++)
- m_target_k[i] = m_new_k[i];
+ m_subcycle++;
+ if ((m_subcycle == 2) && (m_PC == 12)) // RESETF3
+ {
+ /* Circuit 412 in the patent acts a reset, resetting the pitch counter to 0
+ * if INHIBIT was true during the most recent frame transition.
+ * The exact time this occurs is betwen IP=7, PC=12 sub=0, T=t12
+ * and m_IP = 0, PC=0 sub=0, T=t12, a period of exactly 20 cycles,
+ * which overlaps the time OLDE and OLDP are updated at IP=7 PC=12 T17
+ * (and hence INHIBIT itself 2 t-cycles later).
+ * According to testing the pitch zeroing lasts approximately 2 samples.
+ * We set the zeroing latch here, and unset it on PC=1 in the generator.
+ */
+ if ((m_IP == 7)&&(m_inhibit==1)) m_pitch_zero = 1;
+ 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 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))
+ fprintf(stderr,"tms5110_process: processing frame: TALKD = 0 caused by stop frame, halting speech.\n");
+#endif
+ m_TALKD = m_TALK; // TALKD is latched from TALK
+ if ((!m_TALK) && m_SPEN) m_TALK = 1; // TALK is only activated if it wasn't already active, if m_SPEN is active, and if we're in RESETL4 (which we are).
+ }
+ m_subcycle = m_subc_reload;
+ m_PC = 0;
+ m_IP++;
+ m_IP&=0x7;
}
- }
- else
- {
- interp_period = m_sample_count / 25;
- switch(m_interp_count)
+ else if (m_subcycle == 3)
{
- /* PC=X X cycle, rendering change (change for next cycle which chip is actually doing) */
- case 0: /* PC=0, A cycle, nothing happens (calc energy) */
- break;
- case 1: /* PC=0, B cycle, nothing happens (update energy) */
- break;
- case 2: /* PC=1, A cycle, update energy (calc pitch) */
- m_current_energy += ((m_target_energy - m_current_energy) >> m_coeff->interp_coeff[interp_period]);
- break;
- case 3: /* PC=1, B cycle, nothing happens (update pitch) */
- break;
- case 4: /* PC=2, A cycle, update pitch (calc K1) */
- m_current_pitch += ((m_target_pitch - m_current_pitch) >> m_coeff->interp_coeff[interp_period]);
- break;
- case 5: /* PC=2, B cycle, nothing happens (update K1) */
- break;
- case 6: /* PC=3, A cycle, update K1 (calc K2) */
- m_current_k[0] += ((m_target_k[0] - m_current_k[0]) >> m_coeff->interp_coeff[interp_period]);
- break;
- case 7: /* PC=3, B cycle, nothing happens (update K2) */
- break;
- case 8: /* PC=4, A cycle, update K2 (calc K3) */
- m_current_k[1] += ((m_target_k[1] - m_current_k[1]) >> m_coeff->interp_coeff[interp_period]);
- break;
- case 9: /* PC=4, B cycle, nothing happens (update K3) */
- break;
- case 10: /* PC=5, A cycle, update K3 (calc K4) */
- m_current_k[2] += ((m_target_k[2] - m_current_k[2]) >> m_coeff->interp_coeff[interp_period]);
- break;
- case 11: /* PC=5, B cycle, nothing happens (update K4) */
- break;
- case 12: /* PC=6, A cycle, update K4 (calc K5) */
- m_current_k[3] += ((m_target_k[3] - m_current_k[3]) >> m_coeff->interp_coeff[interp_period]);
- break;
- case 13: /* PC=6, B cycle, nothing happens (update K5) */
- break;
- case 14: /* PC=7, A cycle, update K5 (calc K6) */
- m_current_k[4] += ((m_target_k[4] - m_current_k[4]) >> m_coeff->interp_coeff[interp_period]);
- break;
- case 15: /* PC=7, B cycle, nothing happens (update K6) */
- break;
- case 16: /* PC=8, A cycle, update K6 (calc K7) */
- m_current_k[5] += ((m_target_k[5] - m_current_k[5]) >> m_coeff->interp_coeff[interp_period]);
- break;
- case 17: /* PC=8, B cycle, nothing happens (update K7) */
- break;
- case 18: /* PC=9, A cycle, update K7 (calc K8) */
- m_current_k[6] += ((m_target_k[6] - m_current_k[6]) >> m_coeff->interp_coeff[interp_period]);
- break;
- case 19: /* PC=9, B cycle, nothing happens (update K8) */
- break;
- case 20: /* PC=10, A cycle, update K8 (calc K9) */
- m_current_k[7] += ((m_target_k[7] - m_current_k[7]) >> m_coeff->interp_coeff[interp_period]);
- break;
- case 21: /* PC=10, B cycle, nothing happens (update K9) */
- break;
- case 22: /* PC=11, A cycle, update K9 (calc K10) */
- m_current_k[8] += ((m_target_k[8] - m_current_k[8]) >> m_coeff->interp_coeff[interp_period]);
- break;
- case 23: /* PC=11, B cycle, nothing happens (update K10) */
- break;
- case 24: /* PC=12, A cycle, update K10 (do nothing) */
- m_current_k[9] += ((m_target_k[9] - m_current_k[9]) >> m_coeff->interp_coeff[interp_period]);
- break;
+ m_subcycle = m_subc_reload;
+ m_PC++;
}
+ m_pitch_count++;
+ if ((m_pitch_count >= m_current_pitch)||(m_pitch_zero == 1)) m_pitch_count = 0;
+ m_pitch_count &= 0x1FF;
}
-
-
- /* calculate the output */
-
- if (m_current_energy == 0)
- {
- /* generate silent samples here */
- current_val = 0x00;
- }
- else if (m_old_pitch == 0)
- {
- /* generate unvoiced samples here */
- if (m_RNG&1)
- current_val = -64; /* according to the patent it is (either + or -) half of the maximum value in the chirp table */
- else
- current_val = 64;
-
- }
- else
- {
- // generate voiced samples here
- /* US patent 4331836 Figure 14B shows, and logic would hold, that a pitch based chirp
- * function has a chirp/peak and then a long chain of zeroes.
- * The last entry of the chirp rom is at address 0b110011 (51d), the 52nd sample,
- * and if the address reaches that point the ADDRESS incrementer is
- * disabled, forcing all samples beyond 51d to be == 51d
- */
- if (m_pitch_count >= 51)
- current_val = (INT8)m_coeff->chirptable[51];
- else /*m_pitch_count < 51*/
- current_val = (INT8)m_coeff->chirptable[m_pitch_count];
- }
-
- /* Update LFSR *20* times every sample, like patent shows */
- for (i=0; i<20; i++)
+ else // m_TALKD == 0
{
- bitout = ((m_RNG>>12)&1) ^
- ((m_RNG>>10)&1) ^
- ((m_RNG>> 9)&1) ^
- ((m_RNG>> 0)&1);
- m_RNG >>= 1;
- m_RNG |= (bitout<<12);
+ m_subcycle++;
+ if ((m_subcycle == 2) && (m_PC == 12)) // RESETF3
+ {
+ if (m_IP == 7) // RESETL4
+ {
+ m_TALKD = m_TALK; // TALKD is latched from TALK
+ if ((!m_TALK) && m_SPEN) m_TALK = 1; // TALK is only activated if it wasn't already active, if m_SPEN is active, and if we're in RESETL4 (which we are).
+ }
+ m_subcycle = m_subc_reload;
+ m_PC = 0;
+ m_IP++;
+ m_IP&=0x7;
+ }
+ else if (m_subcycle == 3)
+ {
+ m_subcycle = m_subc_reload;
+ m_PC++;
+ }
+ buffer[buf_count] = -1; /* should be just -1; actual chip outputs -1 every idle sample; (cf note in data sheet, p 10, table 4) */
}
+ buf_count++;
+ size--;
+ }
+}
- /* Lattice filter here */
-
- Y11 = (current_val * 64 * m_current_energy) / 512;
+/**********************************************************************************************
- for (i = m_coeff->num_k - 1; i >= 0; i--)
- {
- Y11 = Y11 - ((m_current_k[i] * m_x[i]) / 512);
- m_x[i+1] = m_x[i] + ((m_current_k[i] * Y11) / 512);
- }
+ clip_analog -- clips the 14 bit return value from the lattice filter to its final 10 bit value (-512 to 511), and upshifts/range extends this to 16 bits
- m_x[0] = Y11;
+***********************************************************************************************/
+static INT16 clip_analog(INT16 cliptemp)
+{
+ /* clipping, just like the patent shows:
+ * the top 10 bits of this result are visible on the digital output IO pin.
+ * next, if the top 3 bits of the 14 bit result are all the same, the lowest of those 3 bits plus the next 7 bits are the signed analog output, otherwise the low bits are all forced to match the inverse of the topmost bit, i.e.:
+ * 1x xxxx xxxx xxxx -> 0b10000000
+ * 11 1bcd efgh xxxx -> 0b1bcdefgh
+ * 00 0bcd efgh xxxx -> 0b0bcdefgh
+ * 0x xxxx xxxx xxxx -> 0b01111111
+ */
+#ifdef DEBUG_CLIP
+ if ((cliptemp > 2047) || (cliptemp < -2048)) fprintf(stderr,"clipping cliptemp to range; was %d\n", cliptemp);
+#endif
+ if (cliptemp > 2047) cliptemp = 2047;
+ else if (cliptemp < -2048) cliptemp = -2048;
+ /* at this point the analog output is tapped */
+#ifdef ALLOW_4_LSB
+ // input: ssss snnn nnnn nnnn
+ // N taps: ^^^ ^ = 0x0780
+ // output: snnn nnnn nnnn NNNN
+ return (cliptemp << 4)|((cliptemp&0x780)>>7); // upshift and range adjust
+#else
+ cliptemp &= ~0xF;
+ // input: ssss snnn nnnn 0000
+ // N taps: ^^^ ^^^^ = 0x07F0
+ // P taps: ^ = 0x0400
+ // output: snnn nnnn NNNN NNNP
+ return (cliptemp << 4)|((cliptemp&0x7F0)>>3)|((cliptemp&0x400)>>10); // upshift and range adjust
+#endif
+}
- /* clipping & wrapping, just like the patent */
- /* YL10 - YL4 ==> DA6 - DA0 */
- cliptemp = Y11 / 16;
+/**********************************************************************************************
- /* M58817 seems to be different */
- if (m_coeff->subtype & (SUBTYPE_M58817))
- cliptemp = cliptemp / 2;
+ matrix_multiply -- does the proper multiply and shift
+ a is the k coefficient and is clamped to 10 bits (9 bits plus a sign)
+ b is the running result and is clamped to 14 bits.
+ output is 14 bits, but note the result LSB bit is always 1.
+ Because the low 4 bits of the result are trimmed off before
+ output, this makes almost no difference in the computation.
- if (cliptemp > 511) cliptemp = -512 + (cliptemp-511);
- else if (cliptemp < -512) cliptemp = 511 - (cliptemp+512);
+**********************************************************************************************/
+static INT32 matrix_multiply(INT32 a, INT32 b)
+{
+ INT32 result;
+ while (a>511) { a-=1024; }
+ while (a<-512) { a+=1024; }
+ while (b>16383) { b-=32768; }
+ while (b<-16384) { b+=32768; }
+ result = ((a*b)>>9)|1;//&(~1);
+#ifdef VERBOSE
+ if (result>16383) fprintf(stderr,"matrix multiplier overflowed! a: %x, b: %x, result: %x", a, b, result);
+ if (result<-16384) fprintf(stderr,"matrix multiplier underflowed! a: %x, b: %x, result: %x", a, b, result);
+#endif
+ return result;
+}
- if (cliptemp > 127)
- buffer[buf_count] = 127*256;
- else if (cliptemp < -128)
- buffer[buf_count] = -128*256;
- else
- buffer[buf_count] = cliptemp *256;
+/**********************************************************************************************
- /* Update all counts */
+ lattice_filter -- executes one 'full run' of the lattice filter on a specific byte of
+ excitation data, and specific values of all the current k constants, and returns the
+ resulting sample.
- m_sample_count = (m_sample_count + 1) % 200;
+***********************************************************************************************/
- if (m_current_pitch != 0)
+INT32 tms5110_device::lattice_filter()
+{
+ // Lattice filter here
+ // Aug/05/07: redone as unrolled loop, for clarity - LN
+ /* Originally Copied verbatim from table I in US patent 4,209,804, now updated to be in same order as the actual chip does it, not that it matters.
+ notation equivalencies from table:
+ Yn(i) == m_u[n-1]
+ Kn = m_current_k[n-1]
+ bn = m_x[n-1]
+ */
+ /*
+ int ep = matrix_multiply(m_previous_energy, (m_excitation_data<<6)); //Y(11)
+ m_u[10] = ep;
+ for (int i = 0; i < 10; i++)
+ {
+ int ii = 10-i; // for m = 10, this would be 11 - i, and since i is from 1 to 10, then ii ranges from 10 to 1
+ //int jj = ii+1; // this variable, even on the fortran version, is never used. it probably was intended to be used on the two lines below the next one to save some redundant additions on each.
+ ep = ep - (((m_current_k[ii-1] * m_x[ii-1])>>9)|1); // subtract reflection from lower stage 'top of lattice'
+ m_u[ii-1] = ep;
+ m_x[ii] = m_x[ii-1] + (((m_current_k[ii-1] * ep)>>9)|1); // add reflection from upper stage 'bottom of lattice'
+ }
+ m_x[0] = ep; // feed the last section of the top of the lattice directly to the bottom of the lattice
+ */
+ m_u[10] = matrix_multiply(m_previous_energy, (m_excitation_data<<6)); //Y(11)
+ m_u[9] = m_u[10] - matrix_multiply(m_current_k[9], m_x[9]);
+ m_u[8] = m_u[9] - matrix_multiply(m_current_k[8], m_x[8]);
+ m_u[7] = m_u[8] - matrix_multiply(m_current_k[7], m_x[7]);
+ m_u[6] = m_u[7] - matrix_multiply(m_current_k[6], m_x[6]);
+ m_u[5] = m_u[6] - matrix_multiply(m_current_k[5], m_x[5]);
+ m_u[4] = m_u[5] - matrix_multiply(m_current_k[4], m_x[4]);
+ m_u[3] = m_u[4] - matrix_multiply(m_current_k[3], m_x[3]);
+ m_u[2] = m_u[3] - matrix_multiply(m_current_k[2], m_x[2]);
+ m_u[1] = m_u[2] - matrix_multiply(m_current_k[1], m_x[1]);
+ m_u[0] = m_u[1] - matrix_multiply(m_current_k[0], m_x[0]);
+ m_x[9] = m_x[8] + matrix_multiply(m_current_k[8], m_u[8]);
+ m_x[8] = m_x[7] + matrix_multiply(m_current_k[7], m_u[7]);
+ m_x[7] = m_x[6] + matrix_multiply(m_current_k[6], m_u[6]);
+ m_x[6] = m_x[5] + matrix_multiply(m_current_k[5], m_u[5]);
+ m_x[5] = m_x[4] + matrix_multiply(m_current_k[4], m_u[4]);
+ m_x[4] = m_x[3] + matrix_multiply(m_current_k[3], m_u[3]);
+ m_x[3] = m_x[2] + matrix_multiply(m_current_k[2], m_u[2]);
+ m_x[2] = m_x[1] + matrix_multiply(m_current_k[1], m_u[1]);
+ m_x[1] = m_x[0] + matrix_multiply(m_current_k[0], m_u[0]);
+ m_x[0] = m_u[0];
+ m_previous_energy = m_current_energy;
+#ifdef DEBUG_LATTICE
+ int i;
+ fprintf(stderr,"V:%04d ", m_u[10]);
+ for (i = 9; i >= 0; i--)
{
- m_pitch_count++;
- if (m_pitch_count >= m_current_pitch)
- m_pitch_count = 0;
+ fprintf(stderr,"Y%d:%04d ", i+1, m_u[i]);
+ fprintf(stderr,"b%d:%04d ", i+1, m_x[i]);
+ if ((i % 5) == 0) fprintf(stderr,"\n");
}
- else
- m_pitch_count = 0;
-
- m_interp_count = (m_interp_count + 1) % 25;
-
- buf_count++;
- size--;
- }
-
-empty:
-
- while (size > 0)
- {
- m_sample_count = (m_sample_count + 1) % 200;
- m_interp_count = (m_interp_count + 1) % 25;
-
- buffer[buf_count] = 0x00;
- buf_count++;
- size--;
- }
+#endif
+ return m_u[0];
}
+
/******************************************************************************************
PDC_set -- set Processor Data Clock. Execute CTL_pins command on hi-lo transition.
@@ -600,7 +766,9 @@ void tms5110_device::PDC_set(int data)
m_PDC = data & 0x1;
if (m_PDC == 0) /* toggling 1->0 processes command on CTL_pins */
{
- if (DEBUG_5110) logerror("PDC falling edge: ");
+#ifdef DEBUG_COMMAND_DUMP
+ fprintf(stderr,"PDC falling edge(%02X): ",m_state);
+#endif
/* first pdc toggles output, next toggles input */
switch (m_state)
{
@@ -608,26 +776,36 @@ void tms5110_device::PDC_set(int data)
/* continue */
break;
case CTL_STATE_NEXT_TTALK_OUTPUT:
- if (DEBUG_5110) logerror("Switching CTL bus direction to output for Test Talk\n");
+#ifdef DEBUG_COMMAND_DUMP
+ fprintf(stderr,"Switching CTL bus direction to output for Test Talk\n");
+#endif
m_state = CTL_STATE_TTALK_OUTPUT;
return;
case CTL_STATE_TTALK_OUTPUT:
- if (DEBUG_5110) logerror("Switching CTL bus direction back to input from Test Talk\n");
+#ifdef DEBUG_COMMAND_DUMP
+ fprintf(stderr,"Switching CTL bus direction back to input from Test Talk\n");
+#endif
m_state = CTL_STATE_INPUT;
return;
case CTL_STATE_NEXT_OUTPUT:
- if (DEBUG_5110) logerror("Switching CTL bus direction for Read Bit Buffer Output\n");
+#ifdef DEBUG_COMMAND_DUMP
+ fprintf(stderr,"Switching CTL bus direction for Read Bit Buffer Output\n");
+#endif
m_state = CTL_STATE_OUTPUT;
return;
case CTL_STATE_OUTPUT:
- if (DEBUG_5110) logerror("Switching CTL bus direction back to input from Read Bit Buffer Output\n");
+#ifdef DEBUG_COMMAND_DUMP
+ fprintf(stderr,"Switching CTL bus direction back to input from Read Bit Buffer Output\n");
+#endif
m_state = CTL_STATE_INPUT;
return;
}
/* the only real commands we handle now are SPEAK and RESET */
if (m_next_is_address)
{
- if (DEBUG_5110) logerror("Loading address nybble %02x to VSMs\n", m_CTL_pins);
+#ifdef DEBUG_COMMAND_DUMP
+ fprintf(stderr,"Loading address nybble %02x to VSMs\n", m_CTL_pins);
+#endif
m_next_is_address = FALSE;
m_address = m_address | ((m_CTL_pins & 0x0F)<<m_addr_bit);
m_addr_bit = (m_addr_bit + 4) % 12;
@@ -636,40 +814,65 @@ void tms5110_device::PDC_set(int data)
}
else
{
- if (DEBUG_5110) logerror("Got command nybble %02x: ", m_CTL_pins);
+#ifdef DEBUG_COMMAND_DUMP
+ fprintf(stderr,"Got command nybble %02x: ", m_CTL_pins);
+#endif
switch (m_CTL_pins & 0xe) /*CTL1 - don't care*/
{
case TMS5110_CMD_RESET:
- if (DEBUG_5110) logerror("RESET\n");
+#ifdef DEBUG_COMMAND_DUMP
+ fprintf(stderr,"RESET\n");
+#endif
perform_dummy_read();
reset();
break;
case TMS5110_CMD_LOAD_ADDRESS:
- if (DEBUG_5110) logerror("LOAD ADDRESS\n");
+#ifdef DEBUG_COMMAND_DUMP
+ fprintf(stderr,"LOAD ADDRESS\n");
+#endif
m_next_is_address = TRUE;
break;
case TMS5110_CMD_OUTPUT:
- if (DEBUG_5110) logerror("OUTPUT (from read-bit buffer)\n");
+#ifdef DEBUG_COMMAND_DUMP
+ fprintf(stderr,"OUTPUT (from read-bit buffer)\n");
+#endif
m_state = CTL_STATE_NEXT_OUTPUT;
break;
case TMS5110_CMD_SPKSLOW:
- if (DEBUG_5110) logerror("SPKSLOW (todo: this isn't implemented right yet)\n");
+#ifdef DEBUG_COMMAND_DUMP
+ fprintf(stderr,"SPKSLOW\n");
+#endif
perform_dummy_read();
- m_speaking_now = 1;
- //should FIFO be cleared now ????? there is no fifo! the fifo is a lie!
+ m_SPEN = 1; /* start immediately */
+#ifdef FAST_START_HACK
+ m_TALK = 1;
+#endif
+ /* clear out variables before speaking */
+ m_zpar = 1; // zero all the parameters
+ 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
+ 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:
- if (DEBUG_5110) logerror("READ BIT\n");
+#ifdef DEBUG_COMMAND_DUMP
+ fprintf(stderr,"READ BIT\n");
+#endif
if (m_schedule_dummy_read)
perform_dummy_read();
else
{
- if (DEBUG_5110) logerror("actually reading a bit now\n");
- request_bits(1);
+#ifdef DEBUG_COMMAND_DUMP
+ fprintf(stderr,"actually reading a bit now\n");
+#endif
m_CTL_buffer >>= 1;
m_CTL_buffer |= (extract_bits(1)<<3);
m_CTL_buffer &= 0xF;
@@ -677,14 +880,30 @@ void tms5110_device::PDC_set(int data)
break;
case TMS5110_CMD_SPEAK:
- if (DEBUG_5110) logerror("SPEAK\n");
+#ifdef DEBUG_COMMAND_DUMP
+ fprintf(stderr,"SPEAK\n");
+#endif
perform_dummy_read();
- m_speaking_now = 1;
- //should FIFO be cleared now ????? there is no fifo! the fifo is a lie!
+ m_SPEN = 1; /* start immediately */
+#ifdef FAST_START_HACK
+ m_TALK = 1;
+#endif
+ /* clear out variables before speaking */
+ m_zpar = 1; // zero all the parameters
+ 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
+ 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:
- if (DEBUG_5110) logerror("READ AND BRANCH\n");
+#ifdef DEBUG_COMMAND_DUMP
+ fprintf(stderr,"READ AND BRANCH\n");
+#endif
new_int_write(0,1,1,0);
new_int_write(1,1,1,0);
new_int_write(0,1,1,0);
@@ -695,12 +914,16 @@ void tms5110_device::PDC_set(int data)
break;
case TMS5110_CMD_TEST_TALK:
- if (DEBUG_5110) logerror("TEST TALK\n");
+#ifdef DEBUG_COMMAND_DUMP
+ fprintf(stderr,"TEST TALK\n");
+#endif
m_state = CTL_STATE_NEXT_TTALK_OUTPUT;
break;
default:
- logerror("tms5110.c: unknown command: 0x%02x\n", m_CTL_pins);
+#ifdef DEBUG_COMMAND_DUMP
+ fprintf(stderr,"tms5110.c: unknown command: 0x%02x\n", m_CTL_pins);
+#endif
break;
}
@@ -719,132 +942,76 @@ void tms5110_device::PDC_set(int data)
void tms5110_device::parse_frame()
{
- int bits, indx, i, rep_flag;
-#if (DEBUG_5110)
- int ene;
+ int i, rep_flag;
+#ifdef PERFECT_INTERPOLATION_HACK
+ m_old_uv_zpar = m_uv_zpar;
+ m_old_zpar = m_zpar;
#endif
-
- /* count the total number of bits available */
- bits = m_fifo_count;
-
-
- /* attempt to extract the energy index */
- bits -= m_coeff->energy_bits;
- if (bits < 0)
- {
- request_bits( -bits ); /* toggle M0 to receive needed bits */
- bits = 0;
- }
- indx = extract_bits(m_coeff->energy_bits);
- m_new_energy = m_coeff->energytable[indx];
-#if (DEBUG_5110)
- ene = indx;
+ // since we're parsing a frame, we must be talking, so clear zpar here
+ // before we start parsing a frame, the P=0 and E=0 latches were both reset by RESETL4, so clear m_uv_zpar here
+ m_uv_zpar = m_zpar = 0;
+
+ // attempt to extract the energy index
+ m_new_frame_energy_idx = extract_bits(m_coeff->energy_bits);
+#ifdef DEBUG_PARSE_FRAME_DUMP
+ printbits(m_new_frame_energy_idx,m_coeff->energy_bits);
+ fprintf(stderr," ");
#endif
- /* if the energy index is 0 or 15, we're done */
-
- if ((indx == 0) || (indx == 15))
- {
- if (DEBUG_5110) logerror(" (4-bit energy=%d frame)\n",m_new_energy);
-
- /* clear the k's */
- if (indx == 0)
- {
- for (i = 0; i < m_coeff->num_k; i++)
- m_new_k[i] = 0;
- }
-
- /* clear fifo if stop frame encountered */
- if (indx == 15)
- {
- if (DEBUG_5110) logerror(" (4-bit energy=%d STOP frame)\n",m_new_energy);
- m_fifo_head = m_fifo_tail = m_fifo_count = 0;
- }
+ // if the energy index is 0 or 15, we're done
+ if ((m_new_frame_energy_idx == 0) || (m_new_frame_energy_idx == 15))
return;
- }
-
- /* attempt to extract the repeat flag */
- bits -= 1;
- if (bits < 0)
- {
- request_bits( -bits ); /* toggle M0 to receive needed bits */
- bits = 0;
- }
rep_flag = extract_bits(1);
+#ifdef DEBUG_PARSE_FRAME_DUMP
+ printbits(rep_flag, 1);
+ fprintf(stderr," ");
+#endif
- /* attempt to extract the pitch */
- bits -= m_coeff->pitch_bits;
- if (bits < 0)
- {
- request_bits( -bits ); /* toggle M0 to receive needed bits */
- bits = 0;
- }
- indx = extract_bits(m_coeff->pitch_bits);
- m_new_pitch = m_coeff->pitchtable[indx];
-
- /* if this is a repeat frame, just copy the k's */
+ m_new_frame_pitch_idx = extract_bits(m_coeff->pitch_bits);
+#ifdef DEBUG_PARSE_FRAME_DUMP
+ printbits(m_new_frame_pitch_idx,m_coeff->pitch_bits);
+ 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;
+ // if this is a repeat frame, just do nothing, it will reuse the old coefficients
if (rep_flag)
- {
- //actually, we do nothing because the k's were already loaded (on parsing the previous frame)
-
- if (DEBUG_5110) logerror(" (10-bit energy=%d pitch=%d rep=%d frame)\n", m_new_energy, m_new_pitch, rep_flag);
return;
- }
-
- /* if the pitch index was zero, we need 4 k's */
- if (indx == 0)
+ // extract first 4 K coefficients
+ for (i = 0; i < 4; i++)
{
- /* attempt to extract 4 K's */
- bits -= 18;
- if (bits < 0)
- {
- request_bits( -bits ); /* toggle M0 to receive needed bits */
- bits = 0;
- }
- for (i = 0; i < 4; i++)
- m_new_k[i] = m_coeff->ktable[i][extract_bits(m_coeff->kbits[i])];
-
- /* and clear the rest of the new_k[] */
- for (i = 4; i < m_coeff->num_k; i++)
- m_new_k[i] = 0;
-
- if (DEBUG_5110) logerror(" (28-bit energy=%d pitch=%d rep=%d 4K frame)\n", m_new_energy, m_new_pitch, rep_flag);
- return;
+ m_new_frame_k_idx[i] = extract_bits(m_coeff->kbits[i]);
+#ifdef DEBUG_PARSE_FRAME_DUMP
+ printbits(m_new_frame_k_idx[i],m_coeff->kbits[i]);
+ fprintf(stderr," ");
+#endif
}
- /* else we need 10 K's */
- bits -= 39;
- if (bits < 0)
- {
- request_bits( -bits ); /* toggle M0 to receive needed bits */
- bits = 0;
- }
-#if (DEBUG_5110)
- printf("FrameDump %02d ", ene);
- for (i = 0; i < m_coeff->num_k; i++)
+ // if the pitch index was zero, we only need 4 K's...
+ if (m_new_frame_pitch_idx == 0)
{
- int x;
- x = extract_bits( m_coeff->kbits[i]);
- m_new_k[i] = m_coeff->ktable[i][x];
- printf("%02d ", x);
+ /* and the rest of the coefficients are zeroed, but that's done in the generator code */
+ return;
}
- printf("\n");
-#else
- for (i = 0; i < m_coeff->num_k; i++)
+
+ // If we got here, we need the remaining 6 K's
+ for (i = 4; i < m_coeff->num_k; i++)
{
- int x;
- x = extract_bits( m_coeff->kbits[i]);
- m_new_k[i] = m_coeff->ktable[i][x];
+ m_new_frame_k_idx[i] = extract_bits(m_coeff->kbits[i]);
+#ifdef DEBUG_PARSE_FRAME_DUMP
+ printbits(m_new_frame_k_idx[i],m_coeff->kbits[i]);
+ fprintf(stderr," ");
+#endif
}
+#ifdef VERBOSE
+ logerror("Parsed a frame successfully in ROM\n");
#endif
- if (DEBUG_5110) logerror(" (49-bit energy=%d pitch=%d rep=%d 10K frame)\n", m_new_energy, m_new_pitch, rep_flag);
-
+ return;
}
-
#if 0
/*This is an example word TEN taken from the TMS5110A datasheet*/
static const unsigned int example_word_TEN[619]={
@@ -981,30 +1148,36 @@ void m58817_device::device_start()
void tms5110_device::device_reset()
{
- /* initialize the FIFO */
- memset(m_fifo, 0, sizeof(m_fifo));
- m_fifo_head = m_fifo_tail = m_fifo_count = 0;
+ m_digital_select = FORCE_DIGITAL; // assume analog output
/* initialize the chip state */
- m_speaking_now = m_talk_status = 0;
+ m_SPEN = m_TALK = m_TALKD = 0;
m_CTL_pins = 0;
m_RNG = 0x1fff;
m_CTL_buffer = 0;
m_PDC = 0;
/* initialize the energy/pitch/k states */
- m_old_energy = m_new_energy = m_current_energy = m_target_energy = 0;
- m_old_pitch = m_new_pitch = m_current_pitch = m_target_pitch = 0;
- memset(m_old_k, 0, sizeof(m_old_k));
- memset(m_new_k, 0, sizeof(m_new_k));
+#ifdef 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;
+#endif
+ m_new_frame_energy_idx = m_current_energy = m_previous_energy = 0;
+ m_new_frame_pitch_idx = m_current_pitch = 0;
+ m_zpar = m_uv_zpar = 0;
+ memset(m_new_frame_k_idx, 0, sizeof(m_new_frame_k_idx));
memset(m_current_k, 0, sizeof(m_current_k));
- memset(m_target_k, 0, sizeof(m_target_k));
/* initialize the sample generators */
- m_interp_count = m_sample_count = m_pitch_count = 0;
+ m_inhibit = 1;
+ m_subcycle = m_pitch_count = m_pitch_zero = m_PC = m_zpar = 0;
+ m_subc_reload = 1;
+ m_OLDE = m_OLDP = 1;
+ m_IP = 0;
+ m_RNG = 0x1FFF;
+ memset(m_u, 0, sizeof(m_u));
memset(m_x, 0, sizeof(m_x));
- m_next_is_address = FALSE;
- m_address = 0;
if (m_table != NULL)
{
/* legacy interface */
@@ -1017,6 +1190,8 @@ void tms5110_device::device_reset()
*/
m_schedule_dummy_read = FALSE;
}
+ m_next_is_address = FALSE;
+ m_address = 0;
m_addr_bit = 0;
}
@@ -1075,8 +1250,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", m_talk_status);
- return (m_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)
{
@@ -1094,7 +1269,7 @@ READ8_MEMBER( m58817_device::status_r )
{
/* bring up to date first */
m_stream->update();
- return (m_talk_status << 0); /*CTL1 = still talking ? */
+ return (TALK_STATUS << 0); /*CTL1 = still talking ? */
}
/******************************************************************************
@@ -1123,22 +1298,6 @@ READ8_MEMBER( tms5110_device::romclk_hack_r )
}
-
-/******************************************************************************
-
- tms5110_ready_r -- return the not ready status from the sound chip
-
-******************************************************************************/
-
-int tms5110_device::ready_r()
-{
- /* bring up to date first */
- m_stream->update();
- return (m_fifo_count < FIFO_SIZE-1);
-}
-
-
-
/******************************************************************************
tms5110_update -- update the sound chip so that it is in sync with CPU execution
diff --git a/src/emu/sound/tms5110.h b/src/devices/sound/tms5110.h
index 43863042940..dffb19b29d7 100644
--- a/src/emu/sound/tms5110.h
+++ b/src/devices/sound/tms5110.h
@@ -7,7 +7,8 @@
#include "emu.h"
-#define FIFO_SIZE 64 // TODO: technically the tms51xx chips don't have a fifo at all
+/* HACK: if defined, uses impossibly perfect 'straight line' interpolation */
+#undef PERFECT_INTERPOLATION_HACK
/* TMS5110 commands */
/* CTL8 CTL4 CTL2 CTL1 | PDC's */
@@ -15,7 +16,7 @@
#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: this command 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 whereever it would normally only take one, effectively making speech of any given word take about twice as long as normal. */
+#define TMS5110_CMD_SPKSLOW (6) /* 0 1 1 x | 1 | Note: this command 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 three A cycles whereever it would normally only take one, effectively making speech of any given word take twice 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 */
@@ -64,7 +65,6 @@ public:
*/
DECLARE_READ8_MEMBER( romclk_hack_r );
- int ready_r();
void set_frequency(int frequency);
int _speech_rom_read_bit();
@@ -82,7 +82,10 @@ protected:
void set_variant(int variant);
- UINT8 m_talk_status;
+ UINT8 m_SPEN; /* set on speak command, cleared on stop command or reset command */
+ UINT8 m_TALK; /* set on SPEN & RESETL4(pc12->pc0 transition), cleared on stop command or reset command */
+#define TALK_STATUS (m_SPEN|m_TALKD)
+ UINT8 m_TALKD; /* TALK(TCON) value, latched every RESETL4 */
sound_stream *m_stream;
private:
@@ -90,26 +93,23 @@ private:
void new_int_write_addr(UINT8 addr);
UINT8 new_int_read();
void register_for_save_states();
- void FIFO_data_write(int data);
int extract_bits(int count);
- void request_bits(int no);
void perform_dummy_read();
+ INT32 lattice_filter();
void process(INT16 *buffer, unsigned int size);
void PDC_set(int data);
void parse_frame();
- /* these contain data that describes the 64 bits FIFO */
- UINT8 m_fifo[FIFO_SIZE];
- UINT8 m_fifo_head;
- UINT8 m_fifo_tail;
- UINT8 m_fifo_count;
+ // internal state
+ /* coefficient tables */
+ int m_variant; /* Variant of the 5110 - see tms5110.h */
+
+ /* coefficient tables */
+ const struct tms5100_coeffs *m_coeff;
/* these contain global status bits */
UINT8 m_PDC;
UINT8 m_CTL_pins;
- UINT8 m_speaking_now;
-
-
UINT8 m_state;
/* Rom interface */
@@ -131,43 +131,69 @@ 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 */
- UINT16 m_old_energy;
- UINT16 m_old_pitch;
- INT32 m_old_k[10];
+#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 m_OLDE;
+ UINT8 m_OLDP;
- UINT16 m_new_energy;
- UINT16 m_new_pitch;
- INT32 m_new_k[10];
+#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 m_new_frame_energy_idx;
+ UINT8 m_new_frame_pitch_idx;
+ UINT8 m_new_frame_k_idx[10];
/* these are all used to contain the current state of the sound generation */
- UINT16 m_current_energy;
- UINT16 m_current_pitch;
+#ifndef PERFECT_INTERPOLATION_HACK
+ INT16 m_current_energy;
+ INT16 m_current_pitch;
+ INT16 m_current_k[10];
+#else
+ UINT8 m_old_frame_energy_idx;
+ UINT8 m_old_frame_pitch_idx;
+ UINT8 m_old_frame_k_idx[10];
+ UINT8 m_old_zpar;
+ UINT8 m_old_uv_zpar;
+
+ INT32 m_current_energy;
+ INT32 m_current_pitch;
INT32 m_current_k[10];
-
- UINT16 m_target_energy;
- UINT16 m_target_pitch;
- INT32 m_target_k[10];
-
- UINT8 m_interp_count; /* number of interp periods (0-7) */
- UINT8 m_sample_count; /* sample number within interp (0-24) */
- INT32 m_pitch_count;
-
- INT32 m_x[11];
-
- INT32 m_RNG; /* the random noise generator configuration is: 1 + x + x^3 + x^4 + x^13 */
+#endif
+
+ UINT16 m_previous_energy; /* needed for lattice filter to match patent */
+
+ UINT8 m_subcycle; /* contains the current subcycle for a given PC: 0 is A' (only used on SPKSLOW mode on 51xx), 1 is A, 2 is B */
+ UINT8 m_subc_reload; /* contains 1 for normal speech, 0 when SPKSLOW is active */
+ UINT8 m_PC; /* current parameter counter (what param is being interpolated), ranges from 0 to 12 */
+ /* NOTE: the interpolation period counts 1,2,3,4,5,6,7,0 for divide by 8,8,8,4,4,2,2,1 */
+ UINT8 m_IP; /* the current interpolation period */
+ UINT8 m_inhibit; /* If 1, interpolation is inhibited until the DIV1 period */
+ UINT8 m_uv_zpar; /* If 1, zero k5 thru k10 coefficients */
+ UINT8 m_zpar; /* If 1, zero ALL parameters. */
+ UINT8 m_pitch_zero; /* circuit 412; pitch is forced to zero under certain circumstances */
+ UINT16 m_pitch_count; /* pitch counter; provides chirp rom address */
+
+ INT32 m_u[11];
+ INT32 m_x[10];
+
+ UINT16 m_RNG; /* the random noise generator configuration is: 1 + x + x^3 + x^4 + x^13 TODO: no it isn't */
+ INT16 m_excitation_data;
+
+ /* The TMS51xx has two different ways of providing output data: the
+ analog speaker pins (which were usually used) and the Digital I/O pin.
+ The internal DAC used to feed the analog pins is only 8 bits, and has the
+ funny clipping/clamping logic, while the digital pin gives full 10 bit
+ resolution of the output data.
+ TODO: add a way to set/reset this other than the FORCE_DIGITAL define
+ */
+ UINT8 m_digital_select;
INT32 m_speech_rom_bitnum;
UINT8 m_romclk_hack_timer_started;
UINT8 m_romclk_hack_state;
- /* coefficient tables */
- int m_variant; /* Variant of the 5110 - see tms5110.h */
-
- /* coefficient tables */
- const struct tms5100_coeffs *m_coeff;
-
emu_timer *m_romclk_hack_timer;
const UINT8 *m_table;
};
diff --git a/src/emu/sound/tms5110r.inc b/src/devices/sound/tms5110r.inc
index 41abe5caea4..45fe4c984b2 100644
--- a/src/emu/sound/tms5110r.inc
+++ b/src/devices/sound/tms5110r.inc
@@ -47,7 +47,7 @@
T0280B 0281A = 1979 speak & spell, also == TMS5100, uses old chirp
?????? ????? (no decap; likely 'T0280D 0281D') = 1980 speak & spell, 1981 speak & spell compact, changed energy table, otherwise same as above, uses old chirp
T0280F 2801A = 1980 speak & math, 1980 speak and read, uses old chirp
- ?????? ????? (no decap; likely 'T0280F 2802') = touch and tell, language translator; uses a unique chirp rom.
+ T0280F 2802 = touch and tell, language translator; uses a unique chirp rom.
?????? ????? = TMS5110
T0280F 5110A = TMS5110AN2L
@@ -70,7 +70,6 @@
#define MAX_K 10
#define MAX_SCALE_BITS 6
#define MAX_SCALE (1<<MAX_SCALE_BITS)
-#define COEFF_ENERGY_SENTINEL (511)
#define MAX_CHIRP_SIZE 52
struct tms5100_coeffs
@@ -92,21 +91,13 @@ struct tms5100_coeffs
#define TI_0280_PATENT_ENERGY \
/* E */\
{ 0, 0, 1, 1, 2, 3, 5, 7, \
- 10, 15, 21, 30, 43, 61, 86, COEFF_ENERGY_SENTINEL }, // last rom value is actually really 0, but the tms5110.c code still requires the sentinel value to function correctly, until it is properly updated or merged with tms5220.c
+ 10, 15, 21, 30, 43, 61, 86, 0 },
-#define TI_0280_LATER_ENERGY \
- /* E */\
- { 0, 1, 2, 3, 4, 6, 8, 11, \
- 16, 23, 33, 47, 63, 85,114, COEFF_ENERGY_SENTINEL }, // last rom value is actually really 0, but the tms5110.c code still requires the sentinel value to function correctly, until it is properly updated or merged with tms5220.c
-
-//technically this is the same as above, but tms5220.c expects the 0 rather than needing a sentinel value
-//TODO: when tms5110.c no longer needs sentinel, get rid of this and merge with above.
-#define TI_0285_LATER_ENERGY \
+#define TI_028X_LATER_ENERGY \
/* E */\
{ 0, 1, 2, 3, 4, 6, 8, 11, \
16, 23, 33, 47, 63, 85,114, 0 },
-
/* pitch */
#define TI_0280_2801_PATENT_PITCH \
/* P */\
@@ -307,14 +298,13 @@ struct tms5100_coeffs
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\
0x00, 0x00, 0x00, 0x00 },
-//TODO: Fix me! below is INACCURATE, no decap of 2802 yet!
#define TI_2802_CHIRP \
/* Chirp table */\
- { 0x00, 0xa3, 0xbe, 0xee, 0x38, 0x78, 0x7f, 0x3e,\
- 0xe2, 0xe0, 0x26, 0x19, 0xce, 0x06, 0x1e, 0xd0,\
- 0x12, 0xcd, 0xea, 0xde, 0xda, 0x02, 0xff, 0x06,\
- 0xfe, 0x00, 0xfe, 0xfb, 0xfd, 0xfd, 0x00, 0x00,\
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,\
+ { 0x00, 0xa5, 0xbd, 0xee, 0x34, 0x73, 0x7e, 0x3d,\
+ 0xe8, 0xea, 0x34, 0x24, 0xd1, 0x01, 0x13, 0xc3,\
+ 0x0c, 0xd2, 0xe7, 0xdd, 0xd9, 0x00, 0x00, 0x00,\
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\
0x00, 0x00, 0x00, 0x00 },
@@ -328,6 +318,11 @@ struct tms5100_coeffs
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\
0x00, 0x00, 0x00, 0x00 },
+/* Interpolation Table */
+#define TI_INTERP \
+ /* interpolation shift coefficients */\
+ { 0, 3, 3, 3, 2, 2, 1, 1 }
+
/* TMS5100/TMC0281:
(Die revs A, B; 1977?-1981?)
The TMS5100NL was decapped and imaged by digshadow in April, 2013.
@@ -357,8 +352,7 @@ static const struct tms5100_coeffs T0280B_0281A_coeff =
TI_0280_PATENT_LPC
},
TI_0280_PATENT_CHIRP
- /* interpolation coefficients */
- { 3, 3, 3, 2, 2, 1, 1, 0 }
+ TI_INTERP
};
/* TMS5110A/TMC0281D:
@@ -376,14 +370,13 @@ static const struct tms5100_coeffs T0280D_0281D_coeff =
4,
5,
{ 5, 5, 4, 4, 4, 4, 4, 3, 3, 3 },
- TI_0280_LATER_ENERGY
+ TI_028X_LATER_ENERGY
TI_0280_2801_PATENT_PITCH
{
TI_0280_PATENT_LPC
},
TI_0280_PATENT_CHIRP
- /* interpolation coefficients */
- { 3, 3, 3, 2, 2, 1, 1, 0 }
+ TI_INTERP
};
/* TMC0280/CD2801:
@@ -412,14 +405,13 @@ static const struct tms5100_coeffs T0280F_2801A_coeff =
4,
5,
{ 5, 5, 4, 4, 4, 4, 4, 3, 3, 3 },
- TI_0280_LATER_ENERGY
+ TI_028X_LATER_ENERGY
TI_0280_2801_PATENT_PITCH
{
TI_2801_2501E_LPC
},
TI_2801_CHIRP
- /* interpolation coefficients */
- { 3, 3, 3, 2, 2, 1, 1, 0 }
+ TI_INTERP
};
/* Mitsubishi M58817
@@ -436,21 +428,21 @@ static const struct tms5100_coeffs M58817_coeff =
4,
5,
{ 5, 5, 4, 4, 4, 4, 4, 3, 3, 3 },
- TI_0280_LATER_ENERGY
+ TI_028X_LATER_ENERGY
TI_0280_2801_PATENT_PITCH
{
TI_2801_2501E_LPC
},
TI_2801_CHIRP
- /* interpolation coefficients */
- { 3, 3, 3, 2, 2, 1, 1, 0 }
+ TI_INTERP
};
/* CD2802:
(1984 era?)
- Used in Touch and Tell only (and Vocaid?), this chip has a unique pitch, LPC and chirp table.
+ Used in Touch and Tell only (and Vocaid), this chip has a unique pitch, LPC and chirp table.
Has the 'alternate' interpolation behavior.
Digitally dumped via PROMOUT by PlgDavid in 2014
+ Decapped by Sean Riddle in 2015
*/
static const struct tms5100_coeffs T0280F_2802_coeff =
{
@@ -460,14 +452,13 @@ static const struct tms5100_coeffs T0280F_2802_coeff =
4,
5,
{ 5, 5, 4, 4, 4, 4, 4, 3, 3, 3 },
- TI_0280_LATER_ENERGY
+ TI_028X_LATER_ENERGY
TI_2802_PITCH
{
TI_2802_LPC
},
TI_2802_CHIRP
- /* interpolation coefficients */
- { 3, 3, 3, 2, 2, 1, 1, 0 }
+ TI_INTERP
};
/* TMS5110A:
@@ -477,8 +468,8 @@ static const struct tms5100_coeffs T0280F_2802_coeff =
by PlgDavid.
NullMoogleCable decapped a TMS5110AN2L in 2015: http://wtfmoogle.com/wp-content/uploads/2015/03/0317_1.jpg
which was used to verify the chirp table.
- The slightly older but otherwise identical TMS5111NLL was decapped and imaged by digshadow in April, 2013.
- The die is marked "TMS5110AJ"
+ The slightly older but otherwise identical TMS5111NLL was decapped and imaged by digshadow in April, 2013,
+ its die is marked "TMS5110AJ"
The LPC table is verified from decap to match the values from Jarek and PlgDavid's PROMOUT dumps of the TMS5110.
The LPC table matches that of the TMS5220.
It uses the 'newer' 5200-style chirp table.
@@ -492,14 +483,13 @@ static const struct tms5100_coeffs tms5110a_coeff =
4,
5,
{ 5, 5, 4, 4, 4, 4, 4, 3, 3, 3 },
- TI_0280_LATER_ENERGY
+ TI_028X_LATER_ENERGY
TI_5110_PITCH
{
TI_5110_5220_LPC
},
TI_LATER_CHIRP
- /* interpolation coefficients */
- { 3, 3, 3, 2, 2, 1, 1, 0 }
+ TI_INTERP
};
/* The following coefficients come from US Patent 4,335,277 and 4,581,757.
@@ -518,7 +508,7 @@ static const struct tms5100_coeffs pat4335277_coeff =
4,
6,
{ 5, 5, 4, 4, 4, 4, 4, 3, 3, 3 },
- TI_0285_LATER_ENERGY
+ TI_028X_LATER_ENERGY
TI_2501E_PITCH
{
/* K1dc */
@@ -554,8 +544,7 @@ static const struct tms5100_coeffs pat4335277_coeff =
{ -205, -132, -59, 14, 87, 160, 234, 307 },
},
TI_0280_PATENT_CHIRP
- /* interpolation coefficients */
- { 3, 3, 3, 2, 2, 1, 1, 0 }
+ TI_INTERP
};
/* TMS5200/CD2501E
@@ -579,8 +568,8 @@ NOTE FROM DECAP: immediately to the left of each of the K1,2,3,4,5,and 6
patent 4,335,277. They are likely related to the multiplicative interpolator
described in us patent 4,419,540; whether the 5200/2501E and the 5220 or 5220C
actually implement this interpolator or not is unclear. This interpolator
- seems intended for chips with variable frame rate, so it may only exist
- on the TMS/TSP5220C and CD2501ECD.
+ seems intended for chips with variable frame rate, so if it exists at all,
+ it may only exist on the TMS/TSP5220C and CD2501ECD.
*/
static const struct tms5100_coeffs T0285_2501E_coeff =
@@ -591,14 +580,13 @@ static const struct tms5100_coeffs T0285_2501E_coeff =
4,
6,
{ 5, 5, 4, 4, 4, 4, 4, 3, 3, 3 },
- TI_0285_LATER_ENERGY
+ TI_028X_LATER_ENERGY
TI_2501E_PITCH
{
TI_2801_2501E_LPC
},
TI_LATER_CHIRP
- /* interpolation coefficients */
- { 0, 3, 3, 3, 2, 2, 1, 1 }
+ TI_INTERP
};
/* TMS5220/5220C:
@@ -620,14 +608,13 @@ static const struct tms5100_coeffs tms5220_coeff =
4,
6,
{ 5, 5, 4, 4, 4, 4, 4, 3, 3, 3 },
- TI_0285_LATER_ENERGY
+ TI_028X_LATER_ENERGY
TI_5220_PITCH
{
TI_5110_5220_LPC
},
TI_LATER_CHIRP
- /* interpolation coefficients */
- { 0, 3, 3, 3, 2, 2, 1, 1 }
+ TI_INTERP
};
/* The following Sanyo VLM5030 coefficients are derived from decaps of the chip
@@ -642,7 +629,7 @@ K1A holds odd values of K1, K1B holds even values.
K2 holds values for K2 only
K3 and K4 are actually the table index values <<6
K5 thru K10 are actually the table index values <<7
-The concept of only having non-binary weighted reflection coefficients for the
+This concept of only having non-binary weighted reflection coefficients for the
first two k stages is mentioned in Markel & Gray "Linear Prediction of Speech"
and in Thomas Parsons' "Voice and Speech Processing"
*/
@@ -682,13 +669,9 @@ static const struct tms5100_coeffs vlm5030_coeff =
0,-510,-502,-490,-473,-452,-426,-396, /* entry 16(0x10) either has some special function, purpose unknown, or is a manufacturing error and should have been -512 */
-362,-325,-284,-241,-196,-149,-100, -50 },
/* K3 */
- /*{ 0, 100, 196, 284, 362, 426, 473, 502,
- -510,-490,-452,-396,-325,-241,-149, -50 },*/
{ 0, 64, 128, 192, 256, 320, 384, 448,
-512,-448,-384,-320,-256,-192,-128, -64 },
/* K4 */
- /*{ 0, 100, 196, 284, 362, 426, 473, 502,
- -510,-490,-452,-396,-325,-241,-149, -50 },*/
{ 0, 64, 128, 192, 256, 320, 384, 448,
-512,-448,-384,-320,-256,-192,-128, -64 },
/* K5 */
@@ -702,7 +685,6 @@ static const struct tms5100_coeffs vlm5030_coeff =
/* K9 */
{ 0, 128, 256, 384,-512,-384,-256,-128 },
/* K10 */
- /*{ 0, 196, 362, 473,-510,-452,-325,-149 },*/
{ 0, 128, 256, 384,-512,-384,-256,-128 },
},
/* Chirp table */
diff --git a/src/emu/sound/tms5220.c b/src/devices/sound/tms5220.c
index d71344a01e8..feb3a8e01fe 100644
--- a/src/emu/sound/tms5220.c
+++ b/src/devices/sound/tms5220.c
@@ -47,14 +47,7 @@ Note the standard naming for d* data bits with 7 as MSB and 0 as LSB is in lower
TI's naming has D7 as LSB and D0 as MSB and is in uppercase
TODO:
- * Ever since the big rewrite, there are glitches on certain frame transitions
- for example in the word 'robots' during the eprom attract mode,
- I (LN) am not entirely sure why the real chip doesn't have these as well.
- Needs more real hardware testing/dumps for comparison.
- * Ever since the timing rewrite, the above problem is slightly worse. This
- time, however, it is probably a 'real' bug, which I (LN) am in the process
- of tracking down.
- i.e. the word 'congratulations' in victory when you get a high score.
+ * Samples repeat over and over in the 'eprom' test mode. Needs investigation.
* Implement a ready callback for pc interfaces
- this will be quite a challenge since for it to be really accurate
the whole emulation has to run in sync (lots of timers) with the
@@ -62,7 +55,6 @@ TODO:
* If a command is still executing, /READY will be kept high until the command has
finished if the next command is written.
* tomcat has a 5220 which is not hooked up at all
- * Is the TS=0 forcing energy to 0 for next frame in the interpolator actually correct? I'm (LN) guessing no. The patent schematics state that TS=0 shuts off the output dac completely, though doesn't affect the I/O pin.
Pedantic detail from observation of real chip:
The 5200 and 5220 chips outputs the following coefficients over PROMOUT while
@@ -267,10 +259,14 @@ static INT16 clip_analog(INT16 cliptemp);
//define INTERP_SHIFT / (1<<m_coeff->interp_coeff[m_IP])
/* Other hacks */
-/* HACK?: if defined, outputs the low 4 bits of the lattice filter to the i/o
+/* HACK: if defined, outputs the low 4 bits of the lattice filter to the i/o
* or clip logic, even though the real hardware doesn't do this, partially verified by decap */
#undef ALLOW_4_LSB
+/* forces m_TALK active instantly whenever m_SPEN would be activated, causing speech delay to be reduced by up to one frame time */
+/* for some reason, this hack makes victory behave better, though it does not match the patent */
+#define FAST_START_HACK 1
+
/* *****configuration of chip connection stuff***** */
/* must be defined; if 0, output the waveform as if it was tapped on the speaker pin as usual, if 1, output the waveform as if it was tapped on the i/o pin (volume is much lower in the latter case) */
@@ -353,15 +349,19 @@ void tms5220_device::set_variant(int 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));
save_item(NAME(m_fifo_count));
save_item(NAME(m_fifo_bits_taken));
- save_item(NAME(m_speaking_now));
- save_item(NAME(m_speak_external));
- save_item(NAME(m_talk_status));
+ save_item(NAME(m_previous_TALK_STATUS));
+ save_item(NAME(m_SPEN));
+ save_item(NAME(m_DDIS));
+ save_item(NAME(m_TALK));
+ save_item(NAME(m_TALKD));
save_item(NAME(m_buffer_low));
save_item(NAME(m_buffer_empty));
save_item(NAME(m_irq_pin));
@@ -382,10 +382,6 @@ void tms5220_device::register_for_save_states()
save_item(NAME(m_current_pitch));
save_item(NAME(m_current_k));
- save_item(NAME(m_target_energy));
- save_item(NAME(m_target_pitch));
- save_item(NAME(m_target_k));
-
save_item(NAME(m_previous_energy));
save_item(NAME(m_subcycle));
@@ -393,6 +389,9 @@ void tms5220_device::register_for_save_states()
save_item(NAME(m_PC));
save_item(NAME(m_IP));
save_item(NAME(m_inhibit));
+ save_item(NAME(m_uv_zpar));
+ save_item(NAME(m_zpar));
+ save_item(NAME(m_pitch_zero));
save_item(NAME(m_c_variant_rate));
save_item(NAME(m_pitch_count));
@@ -463,10 +462,11 @@ static void printbits(long data, int num)
void tms5220_device::data_write(int data)
{
+ int old_buffer_low = m_buffer_low;
#ifdef DEBUG_DUMP_INPUT_DATA
fprintf(stdout, "%c",data);
#endif
- if (m_speak_external) // If we're in speak external mode
+ if (m_DDIS) // If we're in speak external mode
{
// add this byte to the FIFO
if (m_fifo_count < FIFO_SIZE)
@@ -475,20 +475,29 @@ void tms5220_device::data_write(int data)
m_fifo_tail = (m_fifo_tail + 1) % FIFO_SIZE;
m_fifo_count++;
#ifdef DEBUG_FIFO
- logerror("data_write: Added byte to FIFO (current count=%2d)\n", m_fifo_count);
+ fprintf(stderr,"data_write: Added byte to FIFO (current count=%2d)\n", m_fifo_count);
#endif
update_fifo_status_and_ints();
- if ((m_talk_status == 0) && (m_buffer_low == 0)) // we just unset buffer low with that last write, and talk status *was* zero...
+ // if we just unset buffer low with that last write, and SPEN *was* zero (see circuit 251, sheet 12)
+ if ((m_SPEN == 0) && ((old_buffer_low == 1) && (m_buffer_low == 0))) // MUST HAVE EDGE DETECT
{
- int i;
+ int i;
#ifdef DEBUG_FIFO
- logerror("data_write triggered talk status to go active!\n");
+ fprintf(stderr,"data_write triggered SPEN to go active!\n");
+#endif
+ // ...then we now have enough bytes to start talking; set zpar and clear out the new frame parameters (it will become old frame just before the first call to parse_frame() )
+ m_zpar = 1;
+ 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
+ m_old_zpar = 1; // zero all the old parameters
+ m_old_uv_zpar = 1; // zero old k4-k10 as well
+#endif
+ m_SPEN = 1;
+#ifdef FAST_START_HACK
+ m_TALK = 1;
#endif
- // ...then we now have enough bytes to start talking; clear out the new frame parameters (it will become old frame just before the first call to parse_frame() )
- // TODO: the 3 lines below (and others) are needed for victory to not fail its selftest due to a sample ending too late, may require additional investigation
- m_subcycle = m_subc_reload;
- m_PC = 0;
- m_IP = reload_table[m_c_variant_rate&0x3]; // is this correct? should this be always 7 instead, so that the new frame is loaded quickly?
m_new_frame_energy_idx = 0;
m_new_frame_pitch_idx = 0;
for (i = 0; i < 4; i++)
@@ -497,20 +506,20 @@ void tms5220_device::data_write(int data)
m_new_frame_k_idx[i] = 0xF;
for (i = 7; i < m_coeff->num_k; i++)
m_new_frame_k_idx[i] = 0x7;
- m_talk_status = m_speaking_now = 1;
+
}
}
else
{
#ifdef DEBUG_FIFO
- logerror("data_write: Ran out of room in the tms52xx FIFO! this should never happen!\n");
+ fprintf(stderr,"data_write: Ran out of room in the tms52xx FIFO! this should never happen!\n");
// at this point, /READY should remain HIGH/inactive until the fifo has at least one byte open in it.
#endif
}
}
- else //(! m_speak_external)
+ else //(! m_DDIS)
// R Nabet : we parse commands at once. It is necessary for such commands as read.
process_command(data);
}
@@ -558,31 +567,31 @@ void tms5220_device::update_fifo_status_and_ints()
m_buffer_low = 0;
/* BE is set if neither byte 15 nor 14 of the fifo are in use; this
- translates to having fifo_count equal to exactly 0 */
+ translates to having fifo_count equal to exactly 0
+ */
if (m_fifo_count == 0)
{
// generate an interrupt if necessary; if /BE was inactive and is now active, set int.
if (!m_buffer_empty)
set_interrupt_state(1);
m_buffer_empty = 1;
+ m_TALK = m_SPEN = 0; // /BE being active clears the TALK status via TCON, which in turn clears SPEN
}
else
m_buffer_empty = 0;
- /* TS is talk status and is set elsewhere in the fifo parser and in
- the SPEAK command handler; however, if /BE is true during speak external
- mode, it is immediately unset here. */
- if ((m_speak_external == 1) && (m_buffer_empty == 1))
+ // 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))
{
- // generate an interrupt: /TS was active, and is now inactive.
- if (m_talk_status == 1)
- {
- m_talk_status = m_speak_external = 0;
- set_interrupt_state(1);
- }
+#ifdef VERBOSE
+ fprintf(stderr,"Talk status WAS 1, is now 0, unsetting DDIS and firing an interrupt!\n");
+#endif
+ set_interrupt_state(1);
+ m_DDIS = 0;
}
- /* Note that TS being unset will also generate an interrupt when a STOP
- frame is encountered; this is handled in the sample generator code and not here */
+ m_previous_TALK_STATUS = TALK_STATUS;
+
}
/**********************************************************************************************
@@ -595,7 +604,7 @@ int tms5220_device::extract_bits(int count)
{
int val = 0;
- if (m_speak_external)
+ if (m_DDIS)
{
// extract from FIFO
while (count--)
@@ -618,7 +627,6 @@ int tms5220_device::extract_bits(int count)
if (m_speechrom)
val = m_speechrom->read(count);
}
-
return val;
}
@@ -637,14 +645,12 @@ int tms5220_device::status_read()
}
else
{ /* read status */
-
/* 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", m_talk_status, m_buffer_low, m_buffer_empty);
+ fprintf(stderr,"Status read: TS=%d BL=%d BE=%d\n", TALK_STATUS, m_buffer_low, m_buffer_empty);
#endif
-
- return (m_talk_status << 7) | (m_buffer_low << 6) | (m_buffer_empty << 5);
+ return (TALK_STATUS << 7) | (m_buffer_low << 6) | (m_buffer_empty << 5);
}
}
@@ -658,9 +664,9 @@ int tms5220_device::status_read()
int tms5220_device::ready_read()
{
#ifdef DEBUG_PIN_READS
- logerror("ready_read: ready pin read, io_ready is %d, fifo count is %d\n", m_io_ready, m_fifo_count);
+ fprintf(stderr,"ready_read: ready pin read, io_ready is %d, fifo count is %d, DDIS(speak external) is %d\n", m_io_ready, m_fifo_count, m_DDIS);
#endif
- return ((m_fifo_count < FIFO_SIZE)||(!m_speak_external)) && m_io_ready;
+ return ((m_fifo_count < FIFO_SIZE)||(!m_DDIS)) && m_io_ready;
}
@@ -716,7 +722,7 @@ int tms5220_device::cycles_to_ready()
int tms5220_device::int_read()
{
#ifdef DEBUG_PIN_READS
- logerror("int_read: irq pin read, state is %d\n", m_irq_pin);
+ fprintf(stderr,"int_read: irq pin read, state is %d\n", m_irq_pin);
#endif
return m_irq_pin;
}
@@ -731,291 +737,289 @@ int tms5220_device::int_read()
void tms5220_device::process(INT16 *buffer, unsigned int size)
{
int buf_count=0;
- int i, bitout, zpar;
+ int i, bitout;
INT32 this_sample;
- /* the following gotos are probably safe to remove */
- /* if we're empty and still not speaking, fill with nothingness */
- if (!m_speaking_now)
- goto empty;
-
- /* if speak external is set, but talk status is not (yet) set,
- wait for buffer low to clear */
- if (!m_talk_status && m_speak_external && m_buffer_low)
- goto empty;
+#ifdef VERBOSE
+ fprintf(stderr,"process called with size of %d; IP=%d, PC=%d, subcycle=%d, m_SPEN=%d, m_TALK=%d, m_TALKD=%d\n", size, m_IP, m_PC, m_subcycle, m_SPEN, m_TALK, m_TALKD);
+#endif
/* loop until the buffer is full or we've stopped speaking */
- while ((size > 0) && m_speaking_now)
+ while (size > 0)
{
- /* if it is the appropriate time to update the old energy/pitch idxes,
- * i.e. when IP=7, PC=12, T=17, subcycle=2, do so. Since IP=7 PC=12 T=17
- * is JUST BEFORE the transition to IP=0 PC=0 T=0 sybcycle=(0 or 1),
- * which happens 4 T-cycles later), we change on the latter.*/
- if ((m_IP == 0) && (m_PC == 0) && (m_subcycle < 2))
- {
- m_OLDE = (m_new_frame_energy_idx == 0);
- m_OLDP = (m_new_frame_pitch_idx == 0);
- }
-
- /* if we're ready for a new frame to be applied, i.e. when IP=0, PC=12, Sub=1
- * (In reality, the frame was really loaded incrementally during the entire IP=0
- * PC=x time period, but it doesn't affect anything until IP=0 PC=12 happens)
- */
- if ((m_IP == 0) && (m_PC == 12) && (m_subcycle == 1))
+ if(m_TALKD) // speaking
{
- // HACK for regression testing, be sure to comment out before release!
- //m_RNG = 0x1234;
- // end HACK
+ /* if we're ready for a new frame to be applied, i.e. when IP=0, PC=12, Sub=1
+ * (In reality, the frame was really loaded incrementally during the entire IP=0
+ * PC=x time period, but it doesn't affect anything until IP=0 PC=12 happens)
+ */
+ if ((m_IP == 0) && (m_PC == 12) && (m_subcycle == 1))
+ {
+ // HACK for regression testing, be sure to comment out before release!
+ //m_RNG = 0x1234;
+ // end HACK
- /* appropriately override the interp count if needed; this will be incremented after the frame parse! */
- m_IP = reload_table[m_c_variant_rate&0x3];
+ /* 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
- /* 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;
- for (i = 0; i < m_coeff->num_k; i++)
- m_old_frame_k_idx[i] = m_new_frame_k_idx[i];
-#endif
-
- /* if the talk status was clear last frame, halt speech now. */
- if (m_talk_status == 0)
- {
-#ifdef DEBUG_GENERATION
- fprintf(stderr,"tms5220_process: processing frame: talk status = 0 caused by stop frame or buffer empty, halting speech.\n");
+ /* 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;
+ for (i = 0; i < m_coeff->num_k; i++)
+ m_old_frame_k_idx[i] = m_new_frame_k_idx[i];
#endif
- m_speaking_now = 0; // finally halt speech
- goto empty;
- }
-
- /* Parse a new frame into the new_target_energy, new_target_pitch and new_target_k[] */
- parse_frame();
-#ifdef DEBUG_PARSE_FRAME_DUMP
- fprintf(stderr,"\n");
-#endif
+ /* Parse a new frame into the new_target_energy, new_target_pitch and new_target_k[] */
+ parse_frame();
- /* if the new frame is a stop frame, set an interrupt and set talk status to 0 */
- if (NEW_FRAME_STOP_FLAG == 1)
+ /* 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)
{
- m_talk_status = m_speak_external = 0;
- set_interrupt_state(1);
- update_fifo_status_and_ints();
+ m_TALK = m_SPEN = 0;
+ update_fifo_status_and_ints(); // probably not necessary...
}
- /* in all cases where interpolation would be inhibited, set the inhibit flag; otherwise clear it.
- Interpolation inhibit cases:
- * Old frame was voiced, new is unvoiced
- * Old frame was silence/zero energy, new has nonzero energy
- * Old frame was unvoiced, new is voiced (note this is the case on the patent but may not be correct on the real final chip)
- */
- if ( ((OLD_FRAME_UNVOICED_FLAG == 0) && (NEW_FRAME_UNVOICED_FLAG == 1))
- || ((OLD_FRAME_UNVOICED_FLAG == 1) && (NEW_FRAME_UNVOICED_FLAG == 0)) /* this line needs further investigation, starwars tie fighters may sound better without it */
- || ((OLD_FRAME_SILENCE_FLAG == 1) && (NEW_FRAME_SILENCE_FLAG == 0)) )
- m_inhibit = 1;
- else // normal frame, normal interpolation
- m_inhibit = 0;
-
- /* load new frame targets from tables, using parsed indices */
- m_target_energy = m_coeff->energytable[m_new_frame_energy_idx];
- m_target_pitch = m_coeff->pitchtable[m_new_frame_pitch_idx];
- zpar = NEW_FRAME_UNVOICED_FLAG; // find out if parameters k5-k10 should be zeroed
- for (i = 0; i < 4; i++)
- m_target_k[i] = m_coeff->ktable[i][m_new_frame_k_idx[i]];
- for (i = 4; i < m_coeff->num_k; i++)
- m_target_k[i] = (m_coeff->ktable[i][m_new_frame_k_idx[i]] * (1-zpar));
+ /* in all cases where interpolation would be inhibited, set the inhibit flag; otherwise clear it.
+ * Interpolation inhibit cases:
+ * Old frame was voiced, new is unvoiced
+ * Old frame was silence/zero energy, new has non-zero energy
+ * 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 == 1))
+ || ((OLD_FRAME_UNVOICED_FLAG == 1) && (NEW_FRAME_UNVOICED_FLAG == 0))
+ || ((OLD_FRAME_SILENCE_FLAG == 1) && (NEW_FRAME_SILENCE_FLAG == 0))
+ //|| ((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)) )
+ m_inhibit = 1;
+ else // normal frame, normal interpolation
+ m_inhibit = 0;
#ifdef DEBUG_GENERATION
- /* Debug info for current parsed frame */
- fprintf(stderr, "OLDE: %d; OLDP: %d; ", m_OLDE, m_OLDP);
- fprintf(stderr,"Processing frame: ");
- if (m_inhibit == 0)
- fprintf(stderr, "Normal Frame\n");
- else
- fprintf(stderr,"Interpolation Inhibited\n");
- fprintf(stderr,"*** current Energy, Pitch and Ks = %04d, %04d, %04d, %04d, %04d, %04d, %04d, %04d, %04d, %04d, %04d, %04d\n",m_current_energy, m_current_pitch, m_current_k[0], m_current_k[1], m_current_k[2], m_current_k[3], m_current_k[4], m_current_k[5], m_current_k[6], m_current_k[7], m_current_k[8], m_current_k[9]);
- fprintf(stderr,"*** target Energy(idx), Pitch, and Ks = %04d(%x),%04d, %04d, %04d, %04d, %04d, %04d, %04d, %04d, %04d, %04d, %04d\n",m_target_energy, m_new_frame_energy_idx, m_target_pitch, m_target_k[0], m_target_k[1], m_target_k[2], m_target_k[3], m_target_k[4], m_target_k[5], m_target_k[6], m_target_k[7], m_target_k[8], m_target_k[9]);
+ /* 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,"Processing new frame: ");
+ if (m_inhibit == 0)
+ fprintf(stderr, "Normal Frame\n");
+ else
+ fprintf(stderr,"Interpolation Inhibited\n");
+ fprintf(stderr,"*** current Energy, Pitch and Ks = %04d, %04d, %04d, %04d, %04d, %04d, %04d, %04d, %04d, %04d, %04d, %04d\n",m_current_energy, m_current_pitch, m_current_k[0], m_current_k[1], m_current_k[2], m_current_k[3], m_current_k[4], m_current_k[5], m_current_k[6], m_current_k[7], m_current_k[8], m_current_k[9]);
+ fprintf(stderr,"*** target Energy(idx), Pitch, and Ks = %04d(%x),%04d, %04d, %04d, %04d, %04d, %04d, %04d, %04d, %04d, %04d, %04d\n",
+ (m_coeff->energytable[m_new_frame_energy_idx] * (1-m_zpar)),
+ m_new_frame_energy_idx,
+ (m_coeff->pitchtable[m_new_frame_pitch_idx] * (1-m_zpar)),
+ (m_coeff->ktable[0][m_new_frame_k_idx[0]] * (1-m_zpar)),
+ (m_coeff->ktable[1][m_new_frame_k_idx[1]] * (1-m_zpar)),
+ (m_coeff->ktable[2][m_new_frame_k_idx[2]] * (1-m_zpar)),
+ (m_coeff->ktable[3][m_new_frame_k_idx[3]] * (1-m_zpar)),
+ (m_coeff->ktable[4][m_new_frame_k_idx[4]] * (1-m_uv_zpar)),
+ (m_coeff->ktable[5][m_new_frame_k_idx[5]] * (1-m_uv_zpar)),
+ (m_coeff->ktable[6][m_new_frame_k_idx[6]] * (1-m_uv_zpar)),
+ (m_coeff->ktable[7][m_new_frame_k_idx[7]] * (1-m_uv_zpar)),
+ (m_coeff->ktable[8][m_new_frame_k_idx[8]] * (1-m_uv_zpar)),
+ (m_coeff->ktable[9][m_new_frame_k_idx[9]] * (1-m_uv_zpar)) );
#endif
- /* if TS is now 0, ramp the energy down to 0. Is this really correct to hardware? */
- if (m_talk_status == 0)
- {
-#ifdef DEBUG_GENERATION
- fprintf(stderr,"Talk status is 0, forcing target energy to 0\n");
-#endif
- m_target_energy = 0;
- }
- }
- 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
- 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));
-
- zpar = OLD_FRAME_UNVOICED_FLAG;
- //fprintf(stderr, "CS: %03d", current_sample);
- // reset the current energy, pitch, etc to what it was at frame start
- m_current_energy = m_coeff->energytable[m_old_frame_energy_idx];
- m_current_pitch = m_coeff->pitchtable[m_old_frame_pitch_idx];
- for (i = 0; i < 4; i++)
- m_current_k[i] = m_coeff->ktable[i][m_old_frame_k_idx[i]];
- for (i = 4; i < m_coeff->num_k; i++)
- m_current_k[i] = (m_coeff->ktable[i][m_old_frame_k_idx[i]] * (1-zpar));
- // now adjust each value to be exactly correct for each of the samples per frame
- if (m_IP != 0) // if we're still interpolating...
- {
- m_current_energy += (((m_target_energy - m_current_energy)*(1-inhibit_state))*current_sample)/samples_per_frame;
- m_current_pitch += (((m_target_pitch - m_current_pitch)*(1-inhibit_state))*current_sample)/samples_per_frame;
- for (i = 0; i < m_coeff->num_k; i++)
- m_current_k[i] += (((m_target_k[i] - m_current_k[i])*(1-inhibit_state))*current_sample)/samples_per_frame;
}
- else // we're done, play this frame for 1/8 frame.
+ else // Not a new frame, just interpolate the existing frame.
{
- m_current_energy = m_target_energy;
- m_current_pitch = m_target_pitch;
+ 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
+ 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));
+ //fprintf(stderr, "CS: %03d", current_sample);
+ // reset the current energy, pitch, etc to what it was at frame start
+ m_current_energy = (m_coeff->energytable[m_old_frame_energy_idx] * (1-m_old_zpar));
+ m_current_pitch = (m_coeff->pitchtable[m_old_frame_pitch_idx] * (1-m_old_zpar));
for (i = 0; i < m_coeff->num_k; i++)
- m_current_k[i] = m_target_k[i];
- }
+ m_current_k[i] = (m_coeff->ktable[i][m_old_frame_k_idx[i]] * (1-((i<4)?m_old_zpar:m_old_uv_zpar)));
+ // now adjust each value to be exactly correct for each of the samples per frame
+ if (m_IP != 0) // if we're still interpolating...
+ {
+ m_current_energy = (m_current_energy + (((m_coeff->energytable[m_new_frame_energy_idx] - m_current_energy)*(1-inhibit_state))*current_sample)/samples_per_frame)*(1-m_zpar);
+ m_current_pitch = (m_current_pitch + (((m_coeff->pitchtable[m_new_frame_pitch_idx] - m_current_pitch)*(1-inhibit_state))*current_sample)/samples_per_frame)*(1-m_zpar);
+ for (i = 0; i < m_coeff->num_k; i++)
+ m_current_k[i] = (m_current_k[i] + (((m_coeff->ktable[i][m_new_frame_k_idx[i]] - m_current_k[i])*(1-inhibit_state))*current_sample)/samples_per_frame)*(1-((i<4)?m_zpar:m_uv_zpar));
+ }
+ else // we're done, play this frame for 1/8 frame.
+ {
+ if (m_subcycle == 2) m_pitch_zero = 0; // this reset happens around the second subcycle during IP=0
+ m_current_energy = (m_coeff->energytable[m_new_frame_energy_idx] * (1-m_zpar));
+ m_current_pitch = (m_coeff->pitchtable[m_new_frame_pitch_idx] * (1-m_zpar));
+ for (i = 0; i < m_coeff->num_k; i++)
+ m_current_k[i] = (m_coeff->ktable[i][m_new_frame_k_idx[i]] * (1-((i<4)?m_zpar:m_uv_zpar)));
+ }
#else
- //Updates to parameters only happen on subcycle '2' (B cycle) of PCs.
- if (m_subcycle == 2)
- {
- switch(m_PC)
+ //Updates to parameters only happen on subcycle '2' (B cycle) of PCs.
+ if (m_subcycle == 2)
{
- case 0: /* PC = 0, B cycle, write updated energy */
- m_current_energy += (((m_target_energy - m_current_energy)*(1-inhibit_state)) INTERP_SHIFT);
- break;
- case 1: /* PC = 1, B cycle, write updated pitch */
- m_current_pitch += (((m_target_pitch - m_current_pitch)*(1-inhibit_state)) INTERP_SHIFT);
- break;
- case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 10: case 11:
- /* PC = 2 through 11, B cycle, write updated K1 through K10 */
- m_current_k[m_PC-2] += (((m_target_k[m_PC-2] - m_current_k[m_PC-2])*(1-inhibit_state)) INTERP_SHIFT);
- break;
- case 12: /* PC = 12, do nothing */
- break;
+ switch(m_PC)
+ {
+ case 0: /* PC = 0, B cycle, write updated energy */
+ if (m_IP==0) m_pitch_zero = 0; // this reset happens around the second subcycle during IP=0
+ m_current_energy = (m_current_energy + (((m_coeff->energytable[m_new_frame_energy_idx] - m_current_energy)*(1-inhibit_state)) INTERP_SHIFT))*(1-m_zpar);
+ break;
+ case 1: /* PC = 1, B cycle, write updated pitch */
+ m_current_pitch = (m_current_pitch + (((m_coeff->pitchtable[m_new_frame_pitch_idx] - m_current_pitch)*(1-inhibit_state)) INTERP_SHIFT))*(1-m_zpar);
+ break;
+ case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 10: case 11:
+ /* PC = 2 through 11, B cycle, write updated K1 through K10 */
+ m_current_k[m_PC-2] = (m_current_k[m_PC-2] + (((m_coeff->ktable[m_PC-2][m_new_frame_k_idx[m_PC-2]] - m_current_k[m_PC-2])*(1-inhibit_state)) INTERP_SHIFT))*(1-(((m_PC-2)<4)?m_zpar:m_uv_zpar));
+ break;
+ case 12: /* PC = 12 */
+ /* we should NEVER reach this point, PC=12 doesn't have a subcycle 2 */
+ break;
+ }
}
- }
#endif
- }
+ }
- // calculate the output
- if (OLD_FRAME_UNVOICED_FLAG == 1)
- {
- // generate unvoiced samples here
- if (m_RNG & 1)
- m_excitation_data = ~0x3F; /* according to the patent it is (either + or -) half of the maximum value in the chirp table, so either 01000000(0x40) or 11000000(0xC0)*/
- else
- m_excitation_data = 0x40;
- }
- 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
- * function has a chirp/peak and then a long chain of zeroes.
- * The last entry of the chirp rom is at address 0b110011 (51d), the 52nd sample,
- * and if the address reaches that point the ADDRESS incrementer is
- * disabled, forcing all samples beyond 51d to be == 51d
- */
- if (m_pitch_count >= 51)
- m_excitation_data = (INT8)m_coeff->chirptable[51];
- else /*m_pitch_count < 51*/
- m_excitation_data = (INT8)m_coeff->chirptable[m_pitch_count];
- }
+ // calculate the output
+ if (OLD_FRAME_UNVOICED_FLAG == 1)
+ {
+ // generate unvoiced samples here
+ if (m_RNG & 1)
+ m_excitation_data = ~0x3F; /* according to the patent it is (either + or -) half of the maximum value in the chirp table, so either 01000000(0x40) or 11000000(0xC0)*/
+ else
+ m_excitation_data = 0x40;
+ }
+ 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
+ * function has a chirp/peak and then a long chain of zeroes.
+ * The last entry of the chirp rom is at address 0b110011 (51d), the 52nd sample,
+ * and if the address reaches that point the ADDRESS incrementer is
+ * disabled, forcing all samples beyond 51d to be == 51d
+ */
+ if (m_pitch_count >= 51)
+ m_excitation_data = (INT8)m_coeff->chirptable[51];
+ else /*m_pitch_count < 51*/
+ m_excitation_data = (INT8)m_coeff->chirptable[m_pitch_count];
+ }
- // Update LFSR *20* times every sample (once per T cycle), like patent shows
- for (i=0; i<20; i++)
- {
- bitout = ((m_RNG >> 12) & 1) ^
- ((m_RNG >> 3) & 1) ^
- ((m_RNG >> 2) & 1) ^
- ((m_RNG >> 0) & 1);
- m_RNG <<= 1;
- m_RNG |= bitout;
- }
- this_sample = lattice_filter(); /* execute lattice filter */
+ // Update LFSR *20* times every sample (once per T cycle), like patent shows
+ for (i=0; i<20; i++)
+ {
+ bitout = ((m_RNG >> 12) & 1) ^
+ ((m_RNG >> 3) & 1) ^
+ ((m_RNG >> 2) & 1) ^
+ ((m_RNG >> 0) & 1);
+ m_RNG <<= 1;
+ m_RNG |= bitout;
+ }
+ this_sample = lattice_filter(); /* execute lattice filter */
#ifdef DEBUG_GENERATION_VERBOSE
- //fprintf(stderr,"C:%01d; ",m_subcycle);
- fprintf(stderr,"IP:%01d PC:%02d X:%04d E:%03d P:%03d Pc:%03d ",m_IP, m_PC, m_excitation_data, m_current_energy, m_current_pitch, m_pitch_count);
- //fprintf(stderr,"X:%04d E:%03d P:%03d Pc:%03d ", m_excitation_data, m_current_energy, m_current_pitch, m_pitch_count);
- for (i=0; i<10; i++)
- fprintf(stderr,"K%d:%04d ", i+1, m_current_k[i]);
- fprintf(stderr,"Out:%06d", this_sample);
- fprintf(stderr,"\n");
+ //fprintf(stderr,"C:%01d; ",m_subcycle);
+ fprintf(stderr,"IP:%01d PC:%02d X:%04d E:%03d P:%03d Pc:%03d ",m_IP, m_PC, m_excitation_data, m_current_energy, m_current_pitch, m_pitch_count);
+ //fprintf(stderr,"X:%04d E:%03d P:%03d Pc:%03d ", m_excitation_data, m_current_energy, m_current_pitch, m_pitch_count);
+ 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
+// 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);
+//#endif
+ fprintf(stderr,"\n");
#endif
- /* next, force result to 14 bits (since its possible that the addition at the final (k1) stage of the lattice overflowed) */
- while (this_sample > 16383) this_sample -= 32768;
- while (this_sample < -16384) this_sample += 32768;
- if (m_digital_select == 0) // analog SPK pin output is only 8 bits, with clipping
- buffer[buf_count] = clip_analog(this_sample);
- else // digital I/O pin output is 12 bits
- {
+ /* next, force result to 14 bits (since its possible that the addition at the final (k1) stage of the lattice overflowed) */
+ while (this_sample > 16383) this_sample -= 32768;
+ while (this_sample < -16384) this_sample += 32768;
+ if (m_digital_select == 0) // analog SPK pin output is only 8 bits, with clipping
+ buffer[buf_count] = clip_analog(this_sample);
+ else // digital I/O pin output is 12 bits
+ {
#ifdef ALLOW_4_LSB
- // input: ssss ssss ssss ssss ssnn nnnn nnnn nnnn
- // N taps: ^ = 0x2000;
- // output: ssss ssss ssss ssss snnn nnnn nnnn nnnN
- buffer[buf_count] = (this_sample<<1)|((this_sample&0x2000)>>13);
+ // input: ssss ssss ssss ssss ssnn nnnn nnnn nnnn
+ // N taps: ^ = 0x2000;
+ // output: ssss ssss ssss ssss snnn nnnn nnnn nnnN
+ buffer[buf_count] = (this_sample<<1)|((this_sample&0x2000)>>13);
#else
- this_sample &= ~0xF;
- // input: ssss ssss ssss ssss ssnn nnnn nnnn 0000
- // N taps: ^^ ^^^ = 0x3E00;
- // output: ssss ssss ssss ssss snnn nnnn nnnN NNNN
- buffer[buf_count] = (this_sample<<1)|((this_sample&0x3E00)>>9);
+ this_sample &= ~0xF;
+ // input: ssss ssss ssss ssss ssnn nnnn nnnn 0000
+ // N taps: ^^ ^^^ = 0x3E00;
+ // output: ssss ssss ssss ssss snnn nnnn nnnN NNNN
+ buffer[buf_count] = (this_sample<<1)|((this_sample&0x3E00)>>9);
#endif
- }
- // Update all counts
-
- m_subcycle++;
- if ((m_subcycle == 2) && (m_PC == 12))
- {
- /* Circuit 412 in the patent acts a reset, resetting the pitch counter to 0
- * if INHIBIT was true during the most recent frame transition.
- * The exact time this occurs is betwen IP=7, PC=12 sub=0, T=t12
- * and m_IP = 0, PC=0 sub=0, T=t12, a period of exactly 20 cycles,
- * which overlaps the time OLDE and OLDP are updated at IP=7 PC=12 T17
- * (and hence INHIBIT itself 2 t-cycles later). We do it here because it is
- * convenient and should make no difference in output.
- */
- if ((m_IP == 7)&&(m_inhibit==1)) m_pitch_count = 0;
- m_subcycle = m_subc_reload;
- m_PC = 0;
- m_IP++;
- m_IP&=0x7;
- }
- else if (m_subcycle == 3)
- {
- m_subcycle = m_subc_reload;
- m_PC++;
- }
- m_pitch_count++;
- if (m_pitch_count >= m_current_pitch) m_pitch_count = 0;
- m_pitch_count &= 0x1FF;
- buf_count++;
- size--;
- }
-
-empty:
+ }
+ // Update all counts
- while (size > 0)
- {
- m_subcycle++;
- if ((m_subcycle == 2) && (m_PC == 12))
- {
- m_subcycle = m_subc_reload;
- m_PC = 0;
- m_IP++;
- m_IP&=0x7;
+ m_subcycle++;
+ if ((m_subcycle == 2) && (m_PC == 12)) // RESETF3
+ {
+ /* Circuit 412 in the patent acts a reset, resetting the pitch counter to 0
+ * if INHIBIT was true during the most recent frame transition.
+ * The exact time this occurs is betwen IP=7, PC=12 sub=0, T=t12
+ * and m_IP = 0, PC=0 sub=0, T=t12, a period of exactly 20 cycles,
+ * which overlaps the time OLDE and OLDP are updated at IP=7 PC=12 T17
+ * (and hence INHIBIT itself 2 t-cycles later).
+ * According to testing the pitch zeroing lasts approximately 2 samples.
+ * We set the zeroing latch here, and unset it on PC=1 in the generator.
+ */
+ if ((m_IP == 7)&&(m_inhibit==1)) m_pitch_zero = 1;
+ 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 TALK was clear last frame, halt speech now, since TALKD (latched from TALK on new frame) just went inactive. */
+#ifdef DEBUG_GENERATION
+ fprintf(stderr,"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);
+#endif
+#ifdef DEBUG_GENERATION
+ if ((!m_TALK) && (!m_SPEN))
+ fprintf(stderr,"tms5220_process: processing frame: TALKD = 0 caused by stop frame or buffer empty, halting speech.\n");
+#endif
+ m_TALKD = m_TALK; // TALKD is latched from TALK
+ update_fifo_status_and_ints(); // to trigger an interrupt if TALK_STATUS has changed
+ if ((!m_TALK) && m_SPEN) m_TALK = 1; // TALK is only activated if it wasn't already active, if m_SPEN is active, and if we're in RESETL4 (which we are).
+#ifdef DEBUG_GENERATION
+ fprintf(stderr,"RESETL4, status updated: 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);
+#endif
+ }
+ m_subcycle = m_subc_reload;
+ m_PC = 0;
+ m_IP++;
+ m_IP&=0x7;
+ }
+ else if (m_subcycle == 3)
+ {
+ m_subcycle = m_subc_reload;
+ m_PC++;
+ }
+ m_pitch_count++;
+ if ((m_pitch_count >= m_current_pitch)||(m_pitch_zero == 1)) m_pitch_count = 0;
+ m_pitch_count &= 0x1FF;
}
- else if (m_subcycle == 3)
+ else // m_TALKD == 0
{
- m_subcycle = m_subc_reload;
- m_PC++;
+ m_subcycle++;
+ if ((m_subcycle == 2) && (m_PC == 12)) // RESETF3
+ {
+ if (m_IP == 7) // RESETL4
+ {
+ m_TALKD = m_TALK; // TALKD is latched from TALK
+ update_fifo_status_and_ints(); // probably not necessary
+ if ((!m_TALK) && m_SPEN) m_TALK = 1; // TALK is only activated if it wasn't already active, if m_SPEN is active, and if we're in RESETL4 (which we are).
+ }
+ m_subcycle = m_subc_reload;
+ m_PC = 0;
+ m_IP++;
+ m_IP&=0x7;
+ }
+ else if (m_subcycle == 3)
+ {
+ m_subcycle = m_subc_reload;
+ m_PC++;
+ }
+ buffer[buf_count] = -1; /* should be just -1; actual chip outputs -1 every idle sample; (cf note in data sheet, p 10, table 4) */
}
- buffer[buf_count] = -1; /* should be just -1; actual chip outputs -1 every idle sample; (cf note in data sheet, p 10, table 4) */
- buf_count++;
- size--;
+ buf_count++;
+ size--;
}
}
@@ -1157,6 +1161,7 @@ INT32 tms5220_device::lattice_filter()
void tms5220_device::process_command(unsigned char cmd)
{
+ int i;
#ifdef DEBUG_COMMAND_DUMP
fprintf(stderr,"process_command called with parameter %02X\n",cmd);
#endif
@@ -1164,7 +1169,7 @@ void tms5220_device::process_command(unsigned char cmd)
switch (cmd & 0x70)
{
case 0x10 : /* read byte */
- if (m_talk_status == 0) /* TALKST must be clear for RDBY */
+ if (TALK_STATUS == 0) /* TALKST must be clear for RDBY */
{
if (m_schedule_dummy_read)
{
@@ -1186,10 +1191,10 @@ void tms5220_device::process_command(unsigned char cmd)
break;
case 0x30 : /* read and branch */
- if (m_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");
+ fprintf(stderr,"read and branch command received\n");
#endif
m_RDB_flag = FALSE;
if (m_speechrom)
@@ -1198,7 +1203,7 @@ void tms5220_device::process_command(unsigned char cmd)
break;
case 0x40 : /* load address */
- if (m_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. */
@@ -1215,17 +1220,22 @@ void tms5220_device::process_command(unsigned char cmd)
if (m_speechrom)
m_speechrom->read(1);
}
- m_speaking_now = 1;
- m_speak_external = 0;
- m_talk_status = 1; /* start immediately */
- /* clear out variables before speaking */
- // TODO: similar to the victory case described above, but for VSM speech
- m_subcycle = m_subc_reload;
- m_PC = 0;
- m_IP = reload_table[m_c_variant_rate&0x3];
+ m_SPEN = 1;
+#ifdef FAST_START_HACK
+ m_TALK = 1;
+#endif
+ m_DDIS = 0;
+ m_zpar = 1; // zero all the parameters
+ 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
+ m_old_zpar = 1; // zero all the old parameters
+ m_old_uv_zpar = 1; // zero old k4-k10 as well
+#endif
+ // following is semi-hack but matches idle state observed on chip
m_new_frame_energy_idx = 0;
m_new_frame_pitch_idx = 0;
- int i;
for (i = 0; i < 4; i++)
m_new_frame_k_idx[i] = 0;
for (i = 4; i < 7; i++)
@@ -1235,9 +1245,27 @@ void tms5220_device::process_command(unsigned char cmd)
break;
case 0x60 : /* speak external */
- //SPKEXT going active activates SPKEE which clears the fifo
+ // SPKEXT going active activates SPKEE which clears the fifo
m_fifo_head = m_fifo_tail = m_fifo_count = m_fifo_bits_taken = 0;
- m_speak_external = 1;
+ // SPEN is enabled when the fifo passes half full (falling edge of BL signal)
+ m_DDIS = 1;
+ m_zpar = 1; // zero all the parameters
+ 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
+ m_old_zpar = 1; // zero all the old parameters
+ m_old_uv_zpar = 1; // zero old k4-k10 as well
+#endif
+ // following is semi-hack but matches idle state observed on chip
+ m_new_frame_energy_idx = 0;
+ m_new_frame_pitch_idx = 0;
+ for (i = 0; i < 4; i++)
+ m_new_frame_k_idx[i] = 0;
+ for (i = 4; i < 7; i++)
+ m_new_frame_k_idx[i] = 0xF;
+ for (i = 7; i < m_coeff->num_k; i++)
+ m_new_frame_k_idx[i] = 0x7;
m_RDB_flag = FALSE;
break;
@@ -1264,7 +1292,14 @@ void tms5220_device::process_command(unsigned char cmd)
void tms5220_device::parse_frame()
{
- int indx, i, rep_flag;
+ int i, rep_flag;
+#ifdef PERFECT_INTERPOLATION_HACK
+ m_old_uv_zpar = m_uv_zpar;
+ m_old_zpar = m_zpar;
+#endif
+ // since we're parsing a frame, we must be talking, so clear zpar here
+ // before we start parsing a frame, the P=0 and E=0 latches were both reset by RESETL4, so clear m_uv_zpar here
+ m_uv_zpar = m_zpar = 0;
// We actually don't care how many bits are left in the fifo here; the frame subpart will be processed normally, and any bits extracted 'past the end' of the fifo will be read as zeroes; the fifo being emptied will set the /BE latch which will halt speech exactly as if a stop frame had been encountered (instead of whatever partial frame was read); the same exact circuitry is used for both on the real chip, see us patent 4335277 sheet 16, gates 232a (decode stop frame) and 232b (decode /BE plus DDIS (decode disable) which is active during speak external).
@@ -1272,18 +1307,18 @@ void tms5220_device::parse_frame()
has a 2 bit rate preceding it, grab two bits here and store them as the rate; */
if ((TMS5220_HAS_RATE_CONTROL) && (m_c_variant_rate & 0x04))
{
- indx = extract_bits(2);
+ i = extract_bits(2);
#ifdef DEBUG_PARSE_FRAME_DUMP
- printbits(indx,2);
+ printbits(i,2);
fprintf(stderr," ");
#endif
- m_IP = reload_table[indx];
+ m_IP = reload_table[i];
}
else // non-5220C and 5220C in fixed rate mode
m_IP = reload_table[m_c_variant_rate&0x3];
update_fifo_status_and_ints();
- if (!m_talk_status) goto ranout;
+ if (m_DDIS && m_buffer_empty) goto ranout;
// attempt to extract the energy index
m_new_frame_energy_idx = extract_bits(m_coeff->energy_bits);
@@ -1292,7 +1327,7 @@ void tms5220_device::parse_frame()
fprintf(stderr," ");
#endif
update_fifo_status_and_ints();
- if (!m_talk_status) goto ranout;
+ if (m_DDIS && m_buffer_empty) goto ranout;
// if the energy index is 0 or 15, we're done
if ((m_new_frame_energy_idx == 0) || (m_new_frame_energy_idx == 15))
return;
@@ -1311,8 +1346,10 @@ void tms5220_device::parse_frame()
printbits(m_new_frame_pitch_idx,m_coeff->pitch_bits);
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;
update_fifo_status_and_ints();
- if (!m_talk_status) goto ranout;
+ if (m_DDIS && m_buffer_empty) goto ranout;
// if this is a repeat frame, just do nothing, it will reuse the old coefficients
if (rep_flag)
return;
@@ -1326,7 +1363,7 @@ void tms5220_device::parse_frame()
fprintf(stderr," ");
#endif
update_fifo_status_and_ints();
- if (!m_talk_status) goto ranout;
+ if (m_DDIS && m_buffer_empty) goto ranout;
}
// if the pitch index was zero, we only need 4 K's...
@@ -1345,19 +1382,22 @@ void tms5220_device::parse_frame()
fprintf(stderr," ");
#endif
update_fifo_status_and_ints();
- if (!m_talk_status) goto ranout;
+ if (m_DDIS && m_buffer_empty) goto ranout;
}
+#ifdef DEBUG_PARSE_FRAME_DUMP
+ fprintf(stderr,"\n");
+#endif
#ifdef VERBOSE
- if (m_speak_external)
- logerror("Parsed a frame successfully in FIFO - %d bits remaining\n", (m_fifo_count*8)-(m_fifo_bits_taken));
+ if (m_DDIS)
+ fprintf(stderr,"Parsed a frame successfully in FIFO - %d bits remaining\n", (m_fifo_count*8)-(m_fifo_bits_taken));
else
- logerror("Parsed a frame successfully in ROM\n");
+ fprintf(stderr,"Parsed a frame successfully in ROM\n");
#endif
return;
ranout:
#ifdef DEBUG_FRAME_ERRORS
- logerror("Ran out of bits on a parse!\n");
+ fprintf(stderr,"Ran out of bits on a parse!\n");
#endif
return;
}
@@ -1372,7 +1412,7 @@ void tms5220_device::set_interrupt_state(int state)
{
if (!TMS5220_IS_52xx) return; // bail out if not a 52xx chip, since there's no int pin
#ifdef DEBUG_PIN_READS
- logerror("irq pin set to state %d\n", state);
+ fprintf(stderr,"irq pin set to state %d\n", state);
#endif
if (!m_irq_handler.isnull() && state != m_irq_pin)
m_irq_handler(!state);
@@ -1389,7 +1429,7 @@ void tms5220_device::update_ready_state()
{
int state = ready_read();
#ifdef DEBUG_PIN_READS
- logerror("ready pin set to state %d\n", state);
+ fprintf(stderr,"ready pin set to state %d\n", state);
#endif
if (!m_readyq_handler.isnull() && state != m_ready_pin)
m_readyq_handler(!state);
@@ -1489,7 +1529,7 @@ void tms5220_device::device_reset()
/* initialize the chip state */
/* Note that we do not actually clear IRQ on start-up : IRQ is even raised if m_buffer_empty or m_buffer_low are 0 */
- m_speaking_now = m_speak_external = m_talk_status = m_irq_pin = m_ready_pin = 0;
+ m_SPEN = m_DDIS = m_TALK = m_TALKD = m_previous_TALK_STATUS = m_irq_pin = m_ready_pin = 0;
set_interrupt_state(0);
update_ready_state();
m_buffer_empty = m_buffer_low = 1;
@@ -1500,12 +1540,13 @@ void tms5220_device::device_reset()
#ifdef 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;
#endif
- m_new_frame_energy_idx = m_current_energy = m_target_energy = m_previous_energy = 0;
- m_new_frame_pitch_idx = m_current_pitch = m_target_pitch = 0;
+ m_new_frame_energy_idx = m_current_energy = m_previous_energy = 0;
+ m_new_frame_pitch_idx = m_current_pitch = 0;
+ m_zpar = m_uv_zpar = 0;
memset(m_new_frame_k_idx, 0, sizeof(m_new_frame_k_idx));
memset(m_current_k, 0, sizeof(m_current_k));
- memset(m_target_k, 0, sizeof(m_target_k));
/* initialize the sample generators */
m_inhibit = 1;
@@ -1549,7 +1590,7 @@ void tms5220_device::device_timer(emu_timer &timer, device_timer_id id, int para
/* Write */
/* bring up to date first */
#ifdef DEBUG_IO_READY
- logerror("Serviced write: %02x\n", m_write_latch);
+ fprintf(stderr,"Serviced write: %02x\n", m_write_latch);
//fprintf(stderr, "Processed write data: %02X\n", m_write_latch);
#endif
m_stream->update();
@@ -1585,7 +1626,7 @@ WRITE_LINE_MEMBER( tms5220_device::rsq_w )
m_true_timing = 1;
state &= 0x01;
#ifdef DEBUG_RS_WS
- logerror("/RS written with data: %d\n", state);
+ fprintf(stderr,"/RS written with data: %d\n", state);
#endif
new_val = (m_rs_ws & 0x01) | (state<<1);
if (new_val != m_rs_ws)
@@ -1598,7 +1639,7 @@ WRITE_LINE_MEMBER( tms5220_device::rsq_w )
#ifdef DEBUG_RS_WS
else
/* illegal */
- logerror("tms5220_rs_w: illegal\n");
+ fprintf(stderr,"tms5220_rs_w: illegal\n");
#endif
return;
}
@@ -1616,7 +1657,7 @@ WRITE_LINE_MEMBER( tms5220_device::rsq_w )
{
/* high to low - schedule ready cycle */
#ifdef DEBUG_RS_WS
- logerror("Scheduling ready cycle for /RS...\n");
+ fprintf(stderr,"Scheduling ready cycle for /RS...\n");
#endif
/* upon /RS being activated, /READY goes inactive after 100 nsec from data sheet, through 3 asynchronous gates on patent. This is effectively within one clock, so we immediately set io_ready to 0 and activate the callback. */
m_io_ready = 0;
@@ -1637,7 +1678,7 @@ WRITE_LINE_MEMBER( tms5220_device::wsq_w )
m_true_timing = 1;
state &= 0x01;
#ifdef DEBUG_RS_WS
- logerror("/WS written with data: %d\n", state);
+ fprintf(stderr,"/WS written with data: %d\n", state);
#endif
new_val = (m_rs_ws & 0x02) | (state<<0);
if (new_val != m_rs_ws)
@@ -1650,7 +1691,7 @@ WRITE_LINE_MEMBER( tms5220_device::wsq_w )
#ifdef DEBUG_RS_WS
else
/* illegal */
- logerror("tms5220_ws_w: illegal\n");
+ fprintf(stderr,"tms5220_ws_w: illegal\n");
#endif
return;
}
@@ -1668,7 +1709,7 @@ WRITE_LINE_MEMBER( tms5220_device::wsq_w )
{
/* high to low - schedule ready cycle */
#ifdef DEBUG_RS_WS
- logerror("Scheduling ready cycle for /WS...\n");
+ fprintf(stderr,"Scheduling ready cycle for /WS...\n");
#endif
/* upon /WS being activated, /READY goes inactive after 100 nsec from data sheet, through 3 asynchronous gates on patent. This is effectively within one clock, so we immediately set io_ready to 0 and activate the callback. */
m_io_ready = 0;
@@ -1701,7 +1742,7 @@ WRITE8_MEMBER( tms5220_device::data_w )
if (space.debugger_access()) return;
#ifdef DEBUG_RS_WS
- logerror("tms5220_data_w: data %02x\n", data);
+ fprintf(stderr,"tms5220_data_w: data %02x\n", data);
#endif
if (!m_true_timing)
{
@@ -1714,7 +1755,7 @@ WRITE8_MEMBER( tms5220_device::data_w )
/* actually in a write ? */
#ifdef DEBUG_RS_WS
if (!(m_rs_ws == 0x02))
- logerror("tms5220_data_w: data written outside ws, status: %02x!\n", m_rs_ws);
+ fprintf(stderr,"tms5220_data_w: data written outside ws, status: %02x!\n", m_rs_ws);
#endif
m_write_latch = data;
}
@@ -1746,7 +1787,7 @@ READ8_MEMBER( tms5220_device::status_r )
return m_read_latch;
#ifdef DEBUG_RS_WS
else
- logerror("tms5220_status_r: data read outside rs!\n");
+ fprintf(stderr,"tms5220_status_r: data read outside rs!\n");
#endif
return 0xff;
}
diff --git a/src/emu/sound/tms5220.h b/src/devices/sound/tms5220.h
index 7150ce5457b..12edc66e5c3 100644
--- a/src/emu/sound/tms5220.h
+++ b/src/devices/sound/tms5220.h
@@ -105,9 +105,12 @@ private:
/* these contain global status bits */
- UINT8 m_speaking_now; /* True only if actual speech is being generated right now. Is set when a speak vsm command happens OR when speak external happens and buffer low becomes nontrue; Is cleared when speech halts after the last stop frame or the last frame after talk status is otherwise cleared.*/
- UINT8 m_speak_external; /* If 1, DDIS is 1, i.e. Speak External command in progress, writes go to FIFO. */
- UINT8 m_talk_status; /* If 1, TS status bit is 1, i.e. speak or speak external is in progress and we have not encountered a stop frame yet; talk_status differs from speaking_now in that speaking_now is set as soon as a speak or speak external command is started; talk_status does NOT go active until after 8 bytes are written to the fifo on a speak external command, otherwise the two are the same. TS is cleared by 3 things: 1. when a STOP command has just been processed as a new frame in the speech stream; 2. if the fifo runs out in speak external mode; 3. on power-up/during a reset command; When it gets cleared, speak_external is also cleared, an interrupt is generated, and speaking_now will be cleared when the next frame starts. */
+ UINT8 m_previous_TALK_STATUS; /* this is the OLD value of TALK_STATUS (i.e. previous value of m_SPEN|m_TALKD), needed for generating interrupts on a falling TALK_STATUS edge */
+ UINT8 m_SPEN; /* set on speak(or speak external and BL falling edge) command, cleared on stop command, reset command, or buffer out */
+ UINT8 m_DDIS; /* If 1, DDIS is 1, i.e. Speak External command in progress, writes go to FIFO. */
+ UINT8 m_TALK; /* set on SPEN & RESETL4(pc12->pc0 transition), cleared on stop command or reset command */
+#define TALK_STATUS (m_SPEN|m_TALKD)
+ UINT8 m_TALKD; /* TALK(TCON) value, latched every RESETL4 */
UINT8 m_buffer_low; /* If 1, FIFO has less than 8 bytes in it */
UINT8 m_buffer_empty; /* If 1, FIFO is empty */
UINT8 m_irq_pin; /* state of the IRQ pin (output) */
@@ -132,22 +135,16 @@ private:
INT16 m_current_energy;
INT16 m_current_pitch;
INT16 m_current_k[10];
-
- INT16 m_target_energy;
- INT16 m_target_pitch;
- INT16 m_target_k[10];
#else
UINT8 m_old_frame_energy_idx;
UINT8 m_old_frame_pitch_idx;
UINT8 m_old_frame_k_idx[10];
+ UINT8 m_old_zpar;
+ UINT8 m_old_uv_zpar;
INT32 m_current_energy;
INT32 m_current_pitch;
INT32 m_current_k[10];
-
- INT32 m_target_energy;
- INT32 m_target_pitch;
- INT32 m_target_k[10];
#endif
UINT16 m_previous_energy; /* needed for lattice filter to match patent */
@@ -155,16 +152,19 @@ private:
UINT8 m_subcycle; /* contains the current subcycle for a given PC: 0 is A' (only used on SPKSLOW mode on 51xx), 1 is A, 2 is B */
UINT8 m_subc_reload; /* contains 1 for normal speech, 0 when SPKSLOW is active */
UINT8 m_PC; /* current parameter counter (what param is being interpolated), ranges from 0 to 12 */
- /* TODO/NOTE: the current interpolation period, counts 1,2,3,4,5,6,7,0 for divide by 8,8,8,4,4,2,2,1 */
+ /* NOTE: the interpolation period counts 1,2,3,4,5,6,7,0 for divide by 8,8,8,4,4,2,2,1 */
UINT8 m_IP; /* the current interpolation period */
UINT8 m_inhibit; /* If 1, interpolation is inhibited until the DIV1 period */
+ UINT8 m_uv_zpar; /* If 1, zero k5 thru k10 coefficients */
+ UINT8 m_zpar; /* If 1, zero ALL parameters. */
+ UINT8 m_pitch_zero; /* circuit 412; pitch is forced to zero under certain circumstances */
UINT8 m_c_variant_rate; /* only relevant for tms5220C's multi frame rate feature; is the actual 4 bit value written on a 0x2* or 0x0* command */
UINT16 m_pitch_count; /* pitch counter; provides chirp rom address */
INT32 m_u[11];
INT32 m_x[10];
- UINT16 m_RNG; /* the random noise generator configuration is: 1 + x + x^3 + x^4 + x^13 */
+ UINT16 m_RNG; /* the random noise generator configuration is: 1 + x + x^3 + x^4 + x^13 TODO: no it isn't */
INT16 m_excitation_data;
/* R Nabet : These have been added to emulate speech Roms */
@@ -172,6 +172,15 @@ private:
UINT8 m_data_register; /* data register, used by read command */
UINT8 m_RDB_flag; /* whether we should read data register or status register */
+ /* The TMS52xx has two different ways of providing output data: the
+ analog speaker pin (which was usually used) and the Digital I/O pin.
+ The internal DAC used to feed the analog pin is only 8 bits, and has the
+ funny clipping/clamping logic, while the digital pin gives full 10 bit
+ resolution of the output data.
+ TODO: add a way to set/reset this other than the FORCE_DIGITAL define
+ */
+ UINT8 m_digital_select;
+
/* io_ready: page 3 of the datasheet specifies that READY will be asserted until
* data is available or processed by the system.
*/
@@ -185,15 +194,6 @@ private:
UINT8 m_read_latch;
UINT8 m_write_latch;
- /* The TMS52xx has two different ways of providing output data: the
- analog speaker pin (which was usually used) and the Digital I/O pin.
- The internal DAC used to feed the analog pin is only 8 bits, and has the
- funny clipping/clamping logic, while the digital pin gives full 10 bit
- resolution of the output data.
- TODO: add a way to set/reset this other than the FORCE_DIGITAL define
- */
- UINT8 m_digital_select;
-
sound_stream *m_stream;
int m_clock;
emu_timer *m_timer_io_ready;
diff --git a/src/emu/sound/tms5220.txt b/src/devices/sound/tms5220.txt
index d7a8b1a178c..d7a8b1a178c 100644
--- a/src/emu/sound/tms5220.txt
+++ b/src/devices/sound/tms5220.txt
diff --git a/src/emu/sound/upd7752.c b/src/devices/sound/upd7752.c
index bebe180f722..bebe180f722 100644
--- a/src/emu/sound/upd7752.c
+++ b/src/devices/sound/upd7752.c
diff --git a/src/emu/sound/upd7752.h b/src/devices/sound/upd7752.h
index eabd705e047..eabd705e047 100644
--- a/src/emu/sound/upd7752.h
+++ b/src/devices/sound/upd7752.h
diff --git a/src/emu/sound/upd7759.c b/src/devices/sound/upd7759.c
index ff8accd0cb4..4b7d4e13a18 100644
--- a/src/emu/sound/upd7759.c
+++ b/src/devices/sound/upd7759.c
@@ -143,23 +143,6 @@
#define FRAC_ONE (1 << FRAC_BITS)
#define FRAC_MASK (FRAC_ONE - 1)
-/* 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::upd775x_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source)
: device_t(mconfig, type, name, tag, owner, clock, shortname, source),
@@ -204,6 +187,14 @@ upd7759_device::upd7759_device(const machine_config &mconfig, const char *tag, d
{
}
+
+upd7759_device::upd7759_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source)
+ : upd775x_device(mconfig, type, name, tag, owner, clock, shortname, source),
+ m_timer(NULL)
+{
+}
+
+
const device_type UPD7756 = &device_creator<upd7756_device>;
upd7756_device::upd7756_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
diff --git a/src/emu/sound/upd7759.h b/src/devices/sound/upd7759.h
index cb19c2f2646..94286e7cd57 100644
--- a/src/emu/sound/upd7759.h
+++ b/src/devices/sound/upd7759.h
@@ -5,6 +5,23 @@
#ifndef __UPD7759_H__
#define __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
+};
/* NEC uPD7759/55/56/P56/57/58 ADPCM Speech Processor */
@@ -29,7 +46,7 @@ public:
DECLARE_WRITE_LINE_MEMBER( reset_w );
DECLARE_READ_LINE_MEMBER( busy_r );
- DECLARE_WRITE8_MEMBER( port_w );
+ virtual DECLARE_WRITE8_MEMBER( port_w );
void postload();
protected:
@@ -86,13 +103,14 @@ protected:
devcb_write_line m_drqcallback;
void update_adpcm(int data);
- void advance_state();
+ virtual void advance_state();
};
class upd7759_device : public upd775x_device
{
public:
upd7759_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+ upd7759_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source);
enum
{
diff --git a/src/emu/sound/vlm5030.c b/src/devices/sound/vlm5030.c
index 6a66cfab937..6a66cfab937 100644
--- a/src/emu/sound/vlm5030.c
+++ b/src/devices/sound/vlm5030.c
diff --git a/src/emu/sound/vlm5030.h b/src/devices/sound/vlm5030.h
index 94a5b846b39..94a5b846b39 100644
--- a/src/emu/sound/vlm5030.h
+++ b/src/devices/sound/vlm5030.h
diff --git a/src/emu/sound/votrax.c b/src/devices/sound/votrax.c
index f6b857c5dea..f6b857c5dea 100644
--- a/src/emu/sound/votrax.c
+++ b/src/devices/sound/votrax.c
diff --git a/src/emu/sound/votrax.h b/src/devices/sound/votrax.h
index 152c1a51f99..152c1a51f99 100644
--- a/src/emu/sound/votrax.h
+++ b/src/devices/sound/votrax.h
diff --git a/src/emu/sound/vrc6.c b/src/devices/sound/vrc6.c
index 91775d932b6..91775d932b6 100644
--- a/src/emu/sound/vrc6.c
+++ b/src/devices/sound/vrc6.c
diff --git a/src/emu/sound/vrc6.h b/src/devices/sound/vrc6.h
index db2cdffd542..db2cdffd542 100644
--- a/src/emu/sound/vrc6.h
+++ b/src/devices/sound/vrc6.h
diff --git a/src/emu/sound/vrender0.c b/src/devices/sound/vrender0.c
index b13f4556525..b13f4556525 100644
--- a/src/emu/sound/vrender0.c
+++ b/src/devices/sound/vrender0.c
diff --git a/src/emu/sound/vrender0.h b/src/devices/sound/vrender0.h
index 9baaefac203..9baaefac203 100644
--- a/src/emu/sound/vrender0.h
+++ b/src/devices/sound/vrender0.h
diff --git a/src/emu/sound/wave.c b/src/devices/sound/wave.c
index 6728b7cafab..76f9bdda8d6 100644
--- a/src/emu/sound/wave.c
+++ b/src/devices/sound/wave.c
@@ -16,7 +16,6 @@
****************************************************************************/
#include "emu.h"
-#include "imagedev/cassette.h"
#include "wave.h"
#define ALWAYS_PLAY_SOUND 0
@@ -60,6 +59,7 @@ void wave_device::device_start()
machine().sound().stream_alloc(*this, 0, 2, machine().sample_rate());
else
machine().sound().stream_alloc(*this, 0, 1, machine().sample_rate());
+ m_cass = machine().device<cassette_image_device>(m_cassette_tag);
}
//-------------------------------------------------
@@ -68,8 +68,6 @@ void wave_device::device_start()
void wave_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples)
{
- cassette_image_device *cass = machine().device<cassette_image_device>(m_cassette_tag);
- cassette_image *cassette;
cassette_state state;
double time_index;
double duration;
@@ -77,20 +75,20 @@ void wave_device::sound_stream_update(sound_stream &stream, stream_sample_t **in
stream_sample_t *right_buffer = NULL;
int i;
- speaker_device_iterator spkiter(cass->machine().root_device());
+ speaker_device_iterator spkiter(m_cass->machine().root_device());
int speakers = spkiter.count();
if (speakers>1)
right_buffer = outputs[1];
- state = cass->get_state();
+ state = m_cass->get_state();
state = (cassette_state)(state & (CASSETTE_MASK_UISTATE | CASSETTE_MASK_MOTOR | CASSETTE_MASK_SPEAKER));
- if (cass->exists() && (ALWAYS_PLAY_SOUND || (state == (CASSETTE_PLAY | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED))))
+ if (m_cass->exists() && (ALWAYS_PLAY_SOUND || (state == (CASSETTE_PLAY | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED))))
{
- cassette = cass->get_image();
- time_index = cass->get_position();
- duration = ((double) samples) / cass->machine().sample_rate();
+ cassette_image *cassette = m_cass->get_image();
+ time_index = m_cass->get_position();
+ duration = ((double) samples) / m_cass->machine().sample_rate();
cassette_get_samples(cassette, 0, time_index, duration, samples, 2, left_buffer, CASSETTE_WAVEFORM_16BIT);
if (speakers > 1)
diff --git a/src/emu/sound/wave.h b/src/devices/sound/wave.h
index 77d78d95328..d4ff4865551 100644
--- a/src/emu/sound/wave.h
+++ b/src/devices/sound/wave.h
@@ -5,6 +5,8 @@
#ifndef __WAVE_H__
#define __WAVE_H__
+#include "imagedev/cassette.h"
+
/*****************************************************************************
* CassetteWave interface
@@ -28,6 +30,7 @@ protected:
private:
const char *m_cassette_tag;
+ cassette_image_device *m_cass;
};
extern const device_type WAVE;
diff --git a/src/emu/sound/x1_010.c b/src/devices/sound/x1_010.c
index 5d8377569bb..0ed9168e735 100644
--- a/src/emu/sound/x1_010.c
+++ b/src/devices/sound/x1_010.c
@@ -110,7 +110,7 @@ void x1_010_device::device_start()
int i;
m_base_clock = clock();
- m_rate = clock() / 1024;
+ m_rate = clock() / 512;
for( i = 0; i < SETA_NUM_CHANNELS; i++ ) {
m_smp_offset[i] = 0;
diff --git a/src/emu/sound/x1_010.h b/src/devices/sound/x1_010.h
index a5026124210..a5026124210 100644
--- a/src/emu/sound/x1_010.h
+++ b/src/devices/sound/x1_010.h
diff --git a/src/emu/sound/ym2151.c b/src/devices/sound/ym2151.c
index 804cbc5a6fd..804cbc5a6fd 100644
--- a/src/emu/sound/ym2151.c
+++ b/src/devices/sound/ym2151.c
diff --git a/src/emu/sound/ym2151.h b/src/devices/sound/ym2151.h
index 3d62ac278ac..3d62ac278ac 100644
--- a/src/emu/sound/ym2151.h
+++ b/src/devices/sound/ym2151.h
diff --git a/src/emu/sound/ym2151.txt b/src/devices/sound/ym2151.txt
index a28893ae3ff..a28893ae3ff 100644
--- a/src/emu/sound/ym2151.txt
+++ b/src/devices/sound/ym2151.txt
diff --git a/src/emu/sound/ym2413.c b/src/devices/sound/ym2413.c
index 631560912b0..631560912b0 100644
--- a/src/emu/sound/ym2413.c
+++ b/src/devices/sound/ym2413.c
diff --git a/src/emu/sound/ym2413.h b/src/devices/sound/ym2413.h
index eb9441bec5a..eb9441bec5a 100644
--- a/src/emu/sound/ym2413.h
+++ b/src/devices/sound/ym2413.h
diff --git a/src/emu/sound/ymdeltat.c b/src/devices/sound/ymdeltat.c
index 30600b2d02b..30600b2d02b 100644
--- a/src/emu/sound/ymdeltat.c
+++ b/src/devices/sound/ymdeltat.c
diff --git a/src/emu/sound/ymdeltat.h b/src/devices/sound/ymdeltat.h
index 28b5d535b32..28b5d535b32 100644
--- a/src/emu/sound/ymdeltat.h
+++ b/src/devices/sound/ymdeltat.h
diff --git a/src/emu/sound/ymf262.c b/src/devices/sound/ymf262.c
index 0982ae266e8..0982ae266e8 100644
--- a/src/emu/sound/ymf262.c
+++ b/src/devices/sound/ymf262.c
diff --git a/src/emu/sound/ymf262.h b/src/devices/sound/ymf262.h
index 904b4f259c5..904b4f259c5 100644
--- a/src/emu/sound/ymf262.h
+++ b/src/devices/sound/ymf262.h
diff --git a/src/emu/sound/ymf271.c b/src/devices/sound/ymf271.c
index c10420af8a4..c10420af8a4 100644
--- a/src/emu/sound/ymf271.c
+++ b/src/devices/sound/ymf271.c
diff --git a/src/emu/sound/ymf271.h b/src/devices/sound/ymf271.h
index 185a8fda4eb..185a8fda4eb 100644
--- a/src/emu/sound/ymf271.h
+++ b/src/devices/sound/ymf271.h
diff --git a/src/emu/sound/ymf278b.c b/src/devices/sound/ymf278b.c
index ae9b9e7dffc..60097767655 100644
--- a/src/emu/sound/ymf278b.c
+++ b/src/devices/sound/ymf278b.c
@@ -43,13 +43,12 @@
TODO:
- accurate timing of envelopes
- LFO (vibrato, tremolo)
- - integrate YMF262 (used by Fuuki games, not used by Psikyo and Metro games)
- - able to hook up "Moonsound", supporting mixed ROM+RAM (for MSX driver in MESS)
- (this should be possible now by using a custom address map?)
+ - integrate YMF262 mixing (used by Fuuki games, not used by Psikyo and Metro games)
*/
#include "emu.h"
#include "ymf278b.h"
+#include "ymf262.h"
#define VERBOSE 0
#define LOG(x) do { if (VERBOSE) logerror x; } while (0)
@@ -226,6 +225,12 @@ void ymf278b_device::sound_stream_update(sound_stream &stream, stream_sample_t *
INT32 *mixp;
INT32 vl, vr;
+ if (&stream == m_stream_ymf262)
+ {
+ ymf262_update_one(m_ymf262, outputs, samples);
+ return;
+ }
+
memset(m_mix_buffer, 0, sizeof(m_mix_buffer[0])*samples*2);
for (i = 0; i < 24; i++)
@@ -683,6 +688,7 @@ WRITE8_MEMBER( ymf278b_device::write )
timer_busy_start(0);
m_port_AB = data;
m_lastport = offset>>1 & 1;
+ ymf262_write(m_ymf262, offset, data);
break;
case 1:
@@ -691,6 +697,7 @@ WRITE8_MEMBER( ymf278b_device::write )
if (m_lastport) B_w(m_port_AB, data);
else A_w(m_port_AB, data);
m_last_fm_data = data;
+ ymf262_write(m_ymf262, offset, data);
break;
case 4:
@@ -830,6 +837,14 @@ void ymf278b_device::device_reset()
m_current_irq = 0;
if (!m_irq_handler.isnull())
m_irq_handler(0);
+
+ ymf262_reset_chip(m_ymf262);
+}
+
+void ymf278b_device::device_stop()
+{
+ ymf262_shutdown(m_ymf262);
+ m_ymf262 = NULL;
}
void ymf278b_device::precompute_rate_tables()
@@ -928,6 +943,28 @@ 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;
@@ -973,6 +1010,20 @@ void ymf278b_device::device_start()
// Register state for saving
register_save_state();
+
+ // YMF262 related
+
+ /* stream system initialize */
+ int ymf262_clock = clock() / (19/8.0);
+ m_ymf262 = ymf262_init(this, ymf262_clock, ymf262_clock / 288);
+ assert_always(m_ymf262 != NULL, "Error creating YMF262 chip");
+
+ 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);
}
diff --git a/src/emu/sound/ymf278b.h b/src/devices/sound/ymf278b.h
index 8a3fdad12cb..096e2e3d3c4 100644
--- a/src/emu/sound/ymf278b.h
+++ b/src/devices/sound/ymf278b.h
@@ -25,11 +25,14 @@ public:
DECLARE_READ8_MEMBER( read );
DECLARE_WRITE8_MEMBER( write );
+ void ymf262_update_request();
+
protected:
// device-level overrides
virtual void device_config_complete();
virtual void device_start();
virtual void device_reset();
+ virtual void device_stop();
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
@@ -132,6 +135,10 @@ private:
const address_space_config m_space_config;
devcb_write_line m_irq_handler;
UINT8 m_last_fm_data;
+
+ // ymf262
+ void *m_ymf262;
+ sound_stream * m_stream_ymf262;
};
extern const device_type YMF278B;
diff --git a/src/emu/sound/ymz280b.c b/src/devices/sound/ymz280b.c
index 8a1f323bbdd..9d07f057739 100644
--- a/src/emu/sound/ymz280b.c
+++ b/src/devices/sound/ymz280b.c
@@ -44,7 +44,7 @@
#define INTERNAL_SAMPLE_RATE (m_master_clock * 2.0)
#if MAKE_WAVS
-#include "wavwrite.h"
+#include "sound/wavwrite.h"
#endif
diff --git a/src/emu/sound/ymz280b.h b/src/devices/sound/ymz280b.h
index a67c0d8567b..a67c0d8567b 100644
--- a/src/emu/sound/ymz280b.h
+++ b/src/devices/sound/ymz280b.h
diff --git a/src/emu/sound/ymz770.c b/src/devices/sound/ymz770.c
index f367f4d10eb..f367f4d10eb 100644
--- a/src/emu/sound/ymz770.c
+++ b/src/devices/sound/ymz770.c
diff --git a/src/emu/sound/ymz770.h b/src/devices/sound/ymz770.h
index d98d40308ca..d98d40308ca 100644
--- a/src/emu/sound/ymz770.h
+++ b/src/devices/sound/ymz770.h
diff --git a/src/emu/sound/zsg2.c b/src/devices/sound/zsg2.c
index 4f3f1a42ca9..4f3f1a42ca9 100644
--- a/src/emu/sound/zsg2.c
+++ b/src/devices/sound/zsg2.c
diff --git a/src/emu/sound/zsg2.h b/src/devices/sound/zsg2.h
index e98e2c315ae..e98e2c315ae 100644
--- a/src/emu/sound/zsg2.h
+++ b/src/devices/sound/zsg2.h
diff --git a/src/emu/video/315_5124.c b/src/devices/video/315_5124.c
index dac2027d126..27508e79e52 100644
--- a/src/emu/video/315_5124.c
+++ b/src/devices/video/315_5124.c
@@ -36,6 +36,12 @@ A scanline contains the following sections:
- right blanking 8 87-8B
- horizontal sync 17 8B-93 => HSYNC low
+ Although the processing done for a section happens when HCount is in the
+ specified range (e.g. 00-7F for active display), probably there is a delay
+ until its signal is shown on screen, as happens on the TMS9918 chip
+ according to this timing diagram:
+ http://www.smspower.org/Development/TMS9918MasterTimingDiagram
+
NTSC frame timing
256x192 256x224 256x240 (doesn't work on real hardware)
@@ -911,7 +917,7 @@ void sega315_5124_device::select_sprites( int line )
if (sprite_y >= 240)
{
- sprite_y -= 256;
+ sprite_y -= 256; /* wrap from top if y position is >= 240 */
}
if (m_sprite_zoom > 1)
@@ -927,15 +933,9 @@ void sega315_5124_device::select_sprites( int line )
int sprite_tile_selected = space().read_byte( m_sprite_base + sprite_index + 2 );
UINT8 flags = space().read_byte( m_sprite_base + sprite_index + 3 );
- if (flags & 0x80)
- sprite_x -= 32;
-
int sprite_line = parse_line - sprite_y;
- if (m_reg[0x01] & 0x01)
- sprite_line >>= 1;
-
- if (m_reg[0x01] & 0x02)
+ if (m_sprite_height == 16)
{
sprite_tile_selected &= 0xfc;
@@ -971,7 +971,7 @@ void sega315_5124_device::select_sprites( int line )
if (sprite_y >= 240)
{
- sprite_y -= 256; /* wrap from top if y position is > 240 */
+ sprite_y -= 256; /* wrap from top if y position is >= 240 */
}
if (m_sprite_zoom > 1)
@@ -996,7 +996,7 @@ void sega315_5124_device::select_sprites( int line )
sprite_tile_selected += 256; /* pattern table select */
}
- if (m_reg[0x01] & 0x02)
+ if (m_sprite_height == 16)
{
sprite_tile_selected &= 0x01fe; /* force even index */
}
@@ -1148,11 +1148,13 @@ void sega315_5124_device::draw_sprites_tms9918_mode( int *line_buffer, int line
for (int sprite_buffer_index = m_sprite_count - 1; sprite_buffer_index >= 0; sprite_buffer_index--)
{
int sprite_x = m_sprite_x[sprite_buffer_index];
+ int sprite_tile_selected = m_sprite_tile_selected[sprite_buffer_index];
+ UINT16 sprite_pattern_line = m_sprite_pattern_line[sprite_buffer_index];
UINT8 flags = m_sprite_flags[sprite_buffer_index];
int pen_selected = m_palette_offset + ( flags & 0x0f );
- int sprite_tile_selected = m_sprite_tile_selected[sprite_buffer_index];
- UINT16 sprite_pattern_line = m_sprite_pattern_line[sprite_buffer_index];
+ if (flags & 0x80)
+ sprite_x -= 32;
for (int height = 8; height <= m_sprite_height; height += 8)
{
diff --git a/src/emu/video/315_5124.h b/src/devices/video/315_5124.h
index 409dc2e08a3..a28e61a5e5a 100644
--- a/src/emu/video/315_5124.h
+++ b/src/devices/video/315_5124.h
@@ -131,7 +131,7 @@ protected:
int m_pending_reg_write;
int m_pending_sprcol_x;
UINT8 m_buffer;
- bool m_sega315_5124_compatibility_mode; /* Shrunk SMS screen on GG lcd mode flag */
+ bool m_sega315_5124_compatibility_mode; /* when true, GG VDP behaves as SMS VDP */
int m_irq_state; /* The status of the IRQ line of the VDP */
int m_vdp_mode; /* Current mode of the VDP: 0,1,2,3,4 */
int m_y_pixels; /* 192, 224, 240 */
diff --git a/src/emu/video/315_5313.c b/src/devices/video/315_5313.c
index 0153c2ad05b..a612c384e99 100644
--- a/src/emu/video/315_5313.c
+++ b/src/devices/video/315_5313.c
@@ -1141,9 +1141,9 @@ UINT16 sega315_5313_device::get_hposition()
time_elapsed_since_megadriv_scanline_timer = m_megadriv_scanline_timer->time_elapsed();
- if (time_elapsed_since_megadriv_scanline_timer.attoseconds<(ATTOSECONDS_PER_SECOND/m_framerate /m_total_scanlines))
+ if (time_elapsed_since_megadriv_scanline_timer.attoseconds() < (ATTOSECONDS_PER_SECOND/m_framerate /m_total_scanlines))
{
- value4 = (UINT16)(MAX_HPOSITION*((double)(time_elapsed_since_megadriv_scanline_timer.attoseconds) / (double)(ATTOSECONDS_PER_SECOND/m_framerate /m_total_scanlines)));
+ value4 = (UINT16)(MAX_HPOSITION*((double)(time_elapsed_since_megadriv_scanline_timer.attoseconds()) / (double)(ATTOSECONDS_PER_SECOND/m_framerate /m_total_scanlines)));
}
else /* in some cases (probably due to rounding errors) we get some stupid results (the odd huge value where the time elapsed is much higher than the scanline time??!).. hopefully by clamping the result to the maximum we limit errors */
{
@@ -2735,7 +2735,7 @@ void sega315_5313_device::vdp_handle_eof()
visarea.set(0, scr_width - 1, 0, m_visible_scanlines - 1);
- m_screen->configure(480, m_total_scanlines, visarea, m_screen->frame_period().attoseconds);
+ m_screen->configure(480, m_total_scanlines, visarea, m_screen->frame_period().attoseconds());
}
diff --git a/src/emu/video/315_5313.h b/src/devices/video/315_5313.h
index 8bcf91a6d5f..8bcf91a6d5f 100644
--- a/src/emu/video/315_5313.h
+++ b/src/devices/video/315_5313.h
diff --git a/src/emu/video/bufsprite.c b/src/devices/video/bufsprite.c
index bc9717d8ef7..bc9717d8ef7 100644
--- a/src/emu/video/bufsprite.c
+++ b/src/devices/video/bufsprite.c
diff --git a/src/emu/video/bufsprite.h b/src/devices/video/bufsprite.h
index 86fb699085a..86fb699085a 100644
--- a/src/emu/video/bufsprite.h
+++ b/src/devices/video/bufsprite.h
diff --git a/src/emu/video/cdp1861.c b/src/devices/video/cdp1861.c
index a02309decca..a02309decca 100644
--- a/src/emu/video/cdp1861.c
+++ b/src/devices/video/cdp1861.c
diff --git a/src/emu/video/cdp1861.h b/src/devices/video/cdp1861.h
index ccf6938173b..ccf6938173b 100644
--- a/src/emu/video/cdp1861.h
+++ b/src/devices/video/cdp1861.h
diff --git a/src/emu/video/cdp1862.c b/src/devices/video/cdp1862.c
index e75cb66c888..e75cb66c888 100644
--- a/src/emu/video/cdp1862.c
+++ b/src/devices/video/cdp1862.c
diff --git a/src/emu/video/cdp1862.h b/src/devices/video/cdp1862.h
index 159c12f8a3c..159c12f8a3c 100644
--- a/src/emu/video/cdp1862.h
+++ b/src/devices/video/cdp1862.h
diff --git a/src/emu/video/cgapal.c b/src/devices/video/cgapal.c
index 396c313c1ba..396c313c1ba 100644
--- a/src/emu/video/cgapal.c
+++ b/src/devices/video/cgapal.c
diff --git a/src/emu/video/cgapal.h b/src/devices/video/cgapal.h
index c5dfafd636e..c5dfafd636e 100644
--- a/src/emu/video/cgapal.h
+++ b/src/devices/video/cgapal.h
diff --git a/src/emu/video/clgd542x.c b/src/devices/video/clgd542x.c
index 854611d1c80..854611d1c80 100644
--- a/src/emu/video/clgd542x.c
+++ b/src/devices/video/clgd542x.c
diff --git a/src/emu/video/clgd542x.h b/src/devices/video/clgd542x.h
index 20300d160fd..20300d160fd 100644
--- a/src/emu/video/clgd542x.h
+++ b/src/devices/video/clgd542x.h
diff --git a/src/emu/video/crt9007.c b/src/devices/video/crt9007.c
index a5722fbd3bf..a5722fbd3bf 100644
--- a/src/emu/video/crt9007.c
+++ b/src/devices/video/crt9007.c
diff --git a/src/emu/video/crt9007.h b/src/devices/video/crt9007.h
index 95745ecece6..95745ecece6 100644
--- a/src/emu/video/crt9007.h
+++ b/src/devices/video/crt9007.h
diff --git a/src/emu/video/crt9021.c b/src/devices/video/crt9021.c
index d72baff2b2b..d72baff2b2b 100644
--- a/src/emu/video/crt9021.c
+++ b/src/devices/video/crt9021.c
diff --git a/src/emu/video/crt9021.h b/src/devices/video/crt9021.h
index f050f7d745c..f050f7d745c 100644
--- a/src/emu/video/crt9021.h
+++ b/src/devices/video/crt9021.h
diff --git a/src/emu/video/crt9212.c b/src/devices/video/crt9212.c
index 0535afa169b..0535afa169b 100644
--- a/src/emu/video/crt9212.c
+++ b/src/devices/video/crt9212.c
diff --git a/src/emu/video/crt9212.h b/src/devices/video/crt9212.h
index 71590ee35f8..71590ee35f8 100644
--- a/src/emu/video/crt9212.h
+++ b/src/devices/video/crt9212.h
diff --git a/src/emu/video/crtc_ega.c b/src/devices/video/crtc_ega.c
index 102df087008..102df087008 100644
--- a/src/emu/video/crtc_ega.c
+++ b/src/devices/video/crtc_ega.c
diff --git a/src/emu/video/crtc_ega.h b/src/devices/video/crtc_ega.h
index b06fa31560c..b06fa31560c 100644
--- a/src/emu/video/crtc_ega.h
+++ b/src/devices/video/crtc_ega.h
diff --git a/src/emu/video/dl1416.c b/src/devices/video/dl1416.c
index b017e9994e1..b017e9994e1 100644
--- a/src/emu/video/dl1416.c
+++ b/src/devices/video/dl1416.c
diff --git a/src/emu/video/dl1416.h b/src/devices/video/dl1416.h
index 6b77a75edac..6b77a75edac 100644
--- a/src/emu/video/dl1416.h
+++ b/src/devices/video/dl1416.h
diff --git a/src/emu/video/dm9368.c b/src/devices/video/dm9368.c
index 16dee4e420f..16dee4e420f 100644
--- a/src/emu/video/dm9368.c
+++ b/src/devices/video/dm9368.c
diff --git a/src/emu/video/dm9368.h b/src/devices/video/dm9368.h
index 35a2da3431d..35a2da3431d 100644
--- a/src/emu/video/dm9368.h
+++ b/src/devices/video/dm9368.h
diff --git a/src/emu/video/ef9340_1.c b/src/devices/video/ef9340_1.c
index d3dd81f5d2e..d3dd81f5d2e 100644
--- a/src/emu/video/ef9340_1.c
+++ b/src/devices/video/ef9340_1.c
diff --git a/src/emu/video/ef9340_1.h b/src/devices/video/ef9340_1.h
index 3aa2d6539d9..3aa2d6539d9 100644
--- a/src/emu/video/ef9340_1.h
+++ b/src/devices/video/ef9340_1.h
diff --git a/src/emu/video/ef9341_chargen.h b/src/devices/video/ef9341_chargen.h
index d33db19d18e..d33db19d18e 100644
--- a/src/emu/video/ef9341_chargen.h
+++ b/src/devices/video/ef9341_chargen.h
diff --git a/src/emu/video/ef9345.c b/src/devices/video/ef9345.c
index 22ade42300c..ca8062bbb95 100644
--- a/src/emu/video/ef9345.c
+++ b/src/devices/video/ef9345.c
@@ -244,7 +244,7 @@ void ef9345_device::set_video_mode(void)
rectangle visarea = m_screen->visible_area();
visarea.max_x = new_width - 1;
- m_screen->configure(new_width, m_screen->height(), visarea, m_screen->frame_period().attoseconds);
+ m_screen->configure(new_width, m_screen->height(), visarea, m_screen->frame_period().attoseconds());
}
//border color
diff --git a/src/emu/video/ef9345.h b/src/devices/video/ef9345.h
index 332b037a223..332b037a223 100644
--- a/src/emu/video/ef9345.h
+++ b/src/devices/video/ef9345.h
diff --git a/src/emu/video/epic12.c b/src/devices/video/epic12.c
index a22100e5543..a22100e5543 100644
--- a/src/emu/video/epic12.c
+++ b/src/devices/video/epic12.c
diff --git a/src/emu/video/epic12.h b/src/devices/video/epic12.h
index 42d4d3d2172..42d4d3d2172 100644
--- a/src/emu/video/epic12.h
+++ b/src/devices/video/epic12.h
diff --git a/src/emu/video/epic12_blit0.c b/src/devices/video/epic12_blit0.c
index 3588573bdee..3588573bdee 100644
--- a/src/emu/video/epic12_blit0.c
+++ b/src/devices/video/epic12_blit0.c
diff --git a/src/emu/video/epic12_blit1.c b/src/devices/video/epic12_blit1.c
index 2cef4fae933..2cef4fae933 100644
--- a/src/emu/video/epic12_blit1.c
+++ b/src/devices/video/epic12_blit1.c
diff --git a/src/emu/video/epic12_blit2.c b/src/devices/video/epic12_blit2.c
index 039ab762635..039ab762635 100644
--- a/src/emu/video/epic12_blit2.c
+++ b/src/devices/video/epic12_blit2.c
diff --git a/src/emu/video/epic12_blit3.c b/src/devices/video/epic12_blit3.c
index 868f4c1e25e..868f4c1e25e 100644
--- a/src/emu/video/epic12_blit3.c
+++ b/src/devices/video/epic12_blit3.c
diff --git a/src/emu/video/epic12_blit4.c b/src/devices/video/epic12_blit4.c
index c5ed93ae70b..c5ed93ae70b 100644
--- a/src/emu/video/epic12_blit4.c
+++ b/src/devices/video/epic12_blit4.c
diff --git a/src/emu/video/epic12_blit5.c b/src/devices/video/epic12_blit5.c
index 4c0a3b0bd0d..4c0a3b0bd0d 100644
--- a/src/emu/video/epic12_blit5.c
+++ b/src/devices/video/epic12_blit5.c
diff --git a/src/emu/video/epic12_blit6.c b/src/devices/video/epic12_blit6.c
index 9ef7302b139..9ef7302b139 100644
--- a/src/emu/video/epic12_blit6.c
+++ b/src/devices/video/epic12_blit6.c
diff --git a/src/emu/video/epic12_blit7.c b/src/devices/video/epic12_blit7.c
index 6ab5366a721..6ab5366a721 100644
--- a/src/emu/video/epic12_blit7.c
+++ b/src/devices/video/epic12_blit7.c
diff --git a/src/emu/video/epic12_blit8.c b/src/devices/video/epic12_blit8.c
index fb9cc763395..fb9cc763395 100644
--- a/src/emu/video/epic12_blit8.c
+++ b/src/devices/video/epic12_blit8.c
diff --git a/src/emu/video/epic12in.inc b/src/devices/video/epic12in.inc
index cf0c81dd80f..cf0c81dd80f 100644
--- a/src/emu/video/epic12in.inc
+++ b/src/devices/video/epic12in.inc
diff --git a/src/emu/video/epic12pixel.inc b/src/devices/video/epic12pixel.inc
index 3cb01cebbf4..3cb01cebbf4 100644
--- a/src/emu/video/epic12pixel.inc
+++ b/src/devices/video/epic12pixel.inc
diff --git a/src/emu/video/fixfreq.c b/src/devices/video/fixfreq.c
index 033bcb5b301..033bcb5b301 100644
--- a/src/emu/video/fixfreq.c
+++ b/src/devices/video/fixfreq.c
diff --git a/src/emu/video/fixfreq.h b/src/devices/video/fixfreq.h
index 833829fbc3b..833829fbc3b 100644
--- a/src/emu/video/fixfreq.h
+++ b/src/devices/video/fixfreq.h
diff --git a/src/emu/video/gf4500.c b/src/devices/video/gf4500.c
index 48e2f8495c3..48e2f8495c3 100644
--- a/src/emu/video/gf4500.c
+++ b/src/devices/video/gf4500.c
diff --git a/src/emu/video/gf4500.h b/src/devices/video/gf4500.h
index eb246ec0ea9..eb246ec0ea9 100644
--- a/src/emu/video/gf4500.h
+++ b/src/devices/video/gf4500.h
diff --git a/src/emu/video/gf7600gs.c b/src/devices/video/gf7600gs.c
index 85b6b2f06da..85b6b2f06da 100644
--- a/src/emu/video/gf7600gs.c
+++ b/src/devices/video/gf7600gs.c
diff --git a/src/emu/video/gf7600gs.h b/src/devices/video/gf7600gs.h
index 1d336ee5454..1d336ee5454 100644
--- a/src/emu/video/gf7600gs.h
+++ b/src/devices/video/gf7600gs.h
diff --git a/src/emu/video/h63484.c b/src/devices/video/h63484.c
index dd949cbc222..906c01573e4 100644
--- a/src/emu/video/h63484.c
+++ b/src/devices/video/h63484.c
@@ -531,7 +531,7 @@ inline void h63484_device::recompute_parameters()
rectangle visarea = m_screen->visible_area();
visarea.set((m_hsw + m_hds) * ppmc, (m_hsw + m_hds + m_hdw) * ppmc - 1, m_vds, vbstart - 1);
- attoseconds_t frame_period = m_screen->frame_period().attoseconds; // TODO: use clock() to calculate the frame_period
+ attoseconds_t frame_period = m_screen->frame_period().attoseconds(); // TODO: use clock() to calculate the frame_period
m_screen->configure(m_hc * ppmc, m_vc, visarea, frame_period);
}
diff --git a/src/emu/video/h63484.h b/src/devices/video/h63484.h
index ac0232fae8f..ac0232fae8f 100644
--- a/src/emu/video/h63484.h
+++ b/src/devices/video/h63484.h
diff --git a/src/emu/video/hd44102.c b/src/devices/video/hd44102.c
index e9a1a9d014d..e9a1a9d014d 100644
--- a/src/emu/video/hd44102.c
+++ b/src/devices/video/hd44102.c
diff --git a/src/emu/video/hd44102.h b/src/devices/video/hd44102.h
index 2ba39282e9e..2ba39282e9e 100644
--- a/src/emu/video/hd44102.h
+++ b/src/devices/video/hd44102.h
diff --git a/src/emu/video/hd44352.c b/src/devices/video/hd44352.c
index 8b30b0afd9b..8b30b0afd9b 100644
--- a/src/emu/video/hd44352.c
+++ b/src/devices/video/hd44352.c
diff --git a/src/emu/video/hd44352.h b/src/devices/video/hd44352.h
index b305e8ccfa9..b305e8ccfa9 100644
--- a/src/emu/video/hd44352.h
+++ b/src/devices/video/hd44352.h
diff --git a/src/emu/video/hd44780.c b/src/devices/video/hd44780.c
index b21dc2e04e1..b21dc2e04e1 100644
--- a/src/emu/video/hd44780.c
+++ b/src/devices/video/hd44780.c
diff --git a/src/emu/video/hd44780.h b/src/devices/video/hd44780.h
index f98bc01806b..c175ccb9e47 100644
--- a/src/emu/video/hd44780.h
+++ b/src/devices/video/hd44780.h
@@ -70,14 +70,14 @@ protected:
{
CHARSET_HD44780_A00,
CHARSET_KS0066_F05 /*,
- CHARSET_HD44780_A01,
- CHARSET_HD44780_A02,
- CHARSET_KS0066_F00,
- CHARSET_KS0066_F03,
- CHARSET_KS0066_F04,
- CHARSET_KS0066_F06,
- CHARSET_KS0066_F59
- */
+ CHARSET_HD44780_A01,
+ CHARSET_HD44780_A02,
+ CHARSET_KS0066_F00,
+ CHARSET_KS0066_F03,
+ CHARSET_KS0066_F04,
+ CHARSET_KS0066_F06,
+ CHARSET_KS0066_F59
+ */
};
void set_charset_type(int type);
diff --git a/src/emu/video/hd61830.c b/src/devices/video/hd61830.c
index a9a21e7dbc5..a9a21e7dbc5 100644
--- a/src/emu/video/hd61830.c
+++ b/src/devices/video/hd61830.c
diff --git a/src/emu/video/hd61830.h b/src/devices/video/hd61830.h
index 359f2d78b1a..359f2d78b1a 100644
--- a/src/emu/video/hd61830.h
+++ b/src/devices/video/hd61830.h
diff --git a/src/emu/video/hd63484.c b/src/devices/video/hd63484.c
index cdfddbcb23d..cdfddbcb23d 100644
--- a/src/emu/video/hd63484.c
+++ b/src/devices/video/hd63484.c
diff --git a/src/emu/video/hd63484.h b/src/devices/video/hd63484.h
index 08d147a8081..08d147a8081 100644
--- a/src/emu/video/hd63484.h
+++ b/src/devices/video/hd63484.h
diff --git a/src/emu/video/hd66421.c b/src/devices/video/hd66421.c
index af67be24d78..af67be24d78 100644
--- a/src/emu/video/hd66421.c
+++ b/src/devices/video/hd66421.c
diff --git a/src/emu/video/hd66421.h b/src/devices/video/hd66421.h
index baed72ad30c..baed72ad30c 100644
--- a/src/emu/video/hd66421.h
+++ b/src/devices/video/hd66421.h
diff --git a/src/emu/video/huc6202.c b/src/devices/video/huc6202.c
index 3f33a3eaa05..3f33a3eaa05 100644
--- a/src/emu/video/huc6202.c
+++ b/src/devices/video/huc6202.c
diff --git a/src/emu/video/huc6202.h b/src/devices/video/huc6202.h
index 85ae87c1db7..85ae87c1db7 100644
--- a/src/emu/video/huc6202.h
+++ b/src/devices/video/huc6202.h
diff --git a/src/emu/video/huc6260.c b/src/devices/video/huc6260.c
index 7d3ccc75f78..7d3ccc75f78 100644
--- a/src/emu/video/huc6260.c
+++ b/src/devices/video/huc6260.c
diff --git a/src/emu/video/huc6260.h b/src/devices/video/huc6260.h
index 2ff38ccf131..2ff38ccf131 100644
--- a/src/emu/video/huc6260.h
+++ b/src/devices/video/huc6260.h
diff --git a/src/emu/video/huc6261.c b/src/devices/video/huc6261.c
index f22bdfba582..f22bdfba582 100644
--- a/src/emu/video/huc6261.c
+++ b/src/devices/video/huc6261.c
diff --git a/src/emu/video/huc6261.h b/src/devices/video/huc6261.h
index e5ef43a8429..e5ef43a8429 100644
--- a/src/emu/video/huc6261.h
+++ b/src/devices/video/huc6261.h
diff --git a/src/emu/video/huc6270.c b/src/devices/video/huc6270.c
index c0fe5225c8e..c0fe5225c8e 100644
--- a/src/emu/video/huc6270.c
+++ b/src/devices/video/huc6270.c
diff --git a/src/emu/video/huc6270.h b/src/devices/video/huc6270.h
index 017fe5c9e70..017fe5c9e70 100644
--- a/src/emu/video/huc6270.h
+++ b/src/devices/video/huc6270.h
diff --git a/src/emu/video/huc6272.c b/src/devices/video/huc6272.c
index 849ec9f09d6..849ec9f09d6 100644
--- a/src/emu/video/huc6272.c
+++ b/src/devices/video/huc6272.c
diff --git a/src/emu/video/huc6272.h b/src/devices/video/huc6272.h
index 140d086efb0..140d086efb0 100644
--- a/src/emu/video/huc6272.h
+++ b/src/devices/video/huc6272.h
diff --git a/src/emu/video/i8244.c b/src/devices/video/i8244.c
index a074b676e64..a074b676e64 100644
--- a/src/emu/video/i8244.c
+++ b/src/devices/video/i8244.c
diff --git a/src/emu/video/i8244.h b/src/devices/video/i8244.h
index ea518051a9f..ea518051a9f 100644
--- a/src/emu/video/i8244.h
+++ b/src/devices/video/i8244.h
diff --git a/src/emu/video/i82730.c b/src/devices/video/i82730.c
index 5bcc3240a35..d90a79d04ee 100644
--- a/src/emu/video/i82730.c
+++ b/src/devices/video/i82730.c
@@ -15,9 +15,9 @@
// CONSTANTS
//**************************************************************************
-#define VERBOSE 1
-#define VERBOSE_COMMANDS 1
-#define VERBOSE_DATASTREAM 0
+#define VERBOSE 1
+#define VERBOSE_COMMANDS 1
+#define VERBOSE_DATASTREAM 0
//**************************************************************************
diff --git a/src/emu/video/i82730.h b/src/devices/video/i82730.h
index 5df4e46a5de..ff2602d2307 100644
--- a/src/emu/video/i82730.h
+++ b/src/devices/video/i82730.h
@@ -35,9 +35,9 @@
// TYPE DEFINITIONS
//**************************************************************************
-typedef device_delegate<void (bitmap_rgb32 &bitmap, UINT16 *data, UINT8 lc, UINT16 y, int x_count)> i82730_update_row_delegate;
+typedef device_delegate<void (bitmap_rgb32 &bitmap, UINT16 *data, UINT8 lc, UINT16 y, int x_count)> i82730_update_row_delegate;
-#define I82730_UPDATE_ROW(name) \
+#define I82730_UPDATE_ROW(name) \
void name(bitmap_rgb32 &bitmap, UINT16 *data, UINT8 lc, UINT16 y, int x_count)
diff --git a/src/emu/video/i8275.c b/src/devices/video/i8275.c
index 59f50b04f70..4f75d7cbc1a 100644
--- a/src/emu/video/i8275.c
+++ b/src/devices/video/i8275.c
@@ -666,7 +666,7 @@ void i8275_device::recompute_parameters()
int horiz_pix_total = (CHARACTERS_PER_ROW + HRTC_COUNT) * m_hpixels_per_column;
int vert_pix_total = (CHARACTER_ROWS_PER_FRAME + VRTC_ROW_COUNT) * SCANLINES_PER_ROW;
- attoseconds_t refresh = m_screen->frame_period().attoseconds;
+ attoseconds_t refresh = m_screen->frame_period().attoseconds();
int max_visible_x = (CHARACTERS_PER_ROW * m_hpixels_per_column) - 1;
int max_visible_y = (CHARACTER_ROWS_PER_FRAME * SCANLINES_PER_ROW) - 1;
diff --git a/src/emu/video/i8275.h b/src/devices/video/i8275.h
index 15451d4c7e8..15451d4c7e8 100644
--- a/src/emu/video/i8275.h
+++ b/src/devices/video/i8275.h
diff --git a/src/emu/video/m50458.c b/src/devices/video/m50458.c
index 1db8b57aaf0..1db8b57aaf0 100644
--- a/src/emu/video/m50458.c
+++ b/src/devices/video/m50458.c
diff --git a/src/emu/video/m50458.h b/src/devices/video/m50458.h
index 79246a68fdd..79246a68fdd 100644
--- a/src/emu/video/m50458.h
+++ b/src/devices/video/m50458.h
diff --git a/src/emu/video/mb90082.c b/src/devices/video/mb90082.c
index cefa4e60415..cefa4e60415 100644
--- a/src/emu/video/mb90082.c
+++ b/src/devices/video/mb90082.c
diff --git a/src/emu/video/mb90082.h b/src/devices/video/mb90082.h
index 863a3aec797..863a3aec797 100644
--- a/src/emu/video/mb90082.h
+++ b/src/devices/video/mb90082.h
diff --git a/src/emu/video/mb_vcu.c b/src/devices/video/mb_vcu.c
index a5ff14230bf..0ad568976f8 100644
--- a/src/emu/video/mb_vcu.c
+++ b/src/devices/video/mb_vcu.c
@@ -191,7 +191,7 @@ void mb_vcu_device::device_start()
3, resistances_gb, m_weights_b, 3600, 0,
2, resistances_r, m_weights_r, 3600, 0);
}
-
+
save_item(NAME(m_status));
save_pointer(NAME(m_ram), 0x800);
save_pointer(NAME(m_palram), 0x100);
diff --git a/src/emu/video/mb_vcu.h b/src/devices/video/mb_vcu.h
index ed6e45663c9..ed6e45663c9 100644
--- a/src/emu/video/mb_vcu.h
+++ b/src/devices/video/mb_vcu.h
diff --git a/src/emu/video/mc6845.c b/src/devices/video/mc6845.c
index 4c1d811369c..4c1d811369c 100644
--- a/src/emu/video/mc6845.c
+++ b/src/devices/video/mc6845.c
diff --git a/src/emu/video/mc6845.h b/src/devices/video/mc6845.h
index 053c2b9491e..053c2b9491e 100644
--- a/src/emu/video/mc6845.h
+++ b/src/devices/video/mc6845.h
diff --git a/src/emu/video/mc6847.c b/src/devices/video/mc6847.c
index 76c0dcb4c92..76c0dcb4c92 100644
--- a/src/emu/video/mc6847.c
+++ b/src/devices/video/mc6847.c
diff --git a/src/emu/video/mc6847.h b/src/devices/video/mc6847.h
index d3420a7fcba..d3420a7fcba 100644
--- a/src/emu/video/mc6847.h
+++ b/src/devices/video/mc6847.h
diff --git a/src/emu/video/mos6566.c b/src/devices/video/mos6566.c
index 64b061c3107..64b061c3107 100644
--- a/src/emu/video/mos6566.c
+++ b/src/devices/video/mos6566.c
diff --git a/src/emu/video/mos6566.h b/src/devices/video/mos6566.h
index e14c00140e9..e14c00140e9 100644
--- a/src/emu/video/mos6566.h
+++ b/src/devices/video/mos6566.h
diff --git a/src/emu/video/msm6222b.c b/src/devices/video/msm6222b.c
index f6c2c9564a3..f6c2c9564a3 100644
--- a/src/emu/video/msm6222b.c
+++ b/src/devices/video/msm6222b.c
diff --git a/src/emu/video/msm6222b.h b/src/devices/video/msm6222b.h
index 70279cae218..70279cae218 100644
--- a/src/emu/video/msm6222b.h
+++ b/src/devices/video/msm6222b.h
diff --git a/src/emu/video/msm6255.c b/src/devices/video/msm6255.c
index 36fd36325d1..36fd36325d1 100644
--- a/src/emu/video/msm6255.c
+++ b/src/devices/video/msm6255.c
diff --git a/src/emu/video/msm6255.h b/src/devices/video/msm6255.h
index 32975132cf6..32975132cf6 100644
--- a/src/emu/video/msm6255.h
+++ b/src/devices/video/msm6255.h
diff --git a/src/emu/video/pc_vga.c b/src/devices/video/pc_vga.c
index c494e4904ec..c494e4904ec 100644
--- a/src/emu/video/pc_vga.c
+++ b/src/devices/video/pc_vga.c
diff --git a/src/emu/video/pc_vga.h b/src/devices/video/pc_vga.h
index ee0504a95e1..ee0504a95e1 100644
--- a/src/emu/video/pc_vga.h
+++ b/src/devices/video/pc_vga.h
diff --git a/src/emu/video/poly.h b/src/devices/video/poly.h
index 4a9589affa7..0ba401e0755 100644
--- a/src/emu/video/poly.h
+++ b/src/devices/video/poly.h
@@ -34,8 +34,8 @@
#pragma once
-#ifndef __POLYNEW_H__
-#define __POLYNEW_H__
+#ifndef __POLY_H__
+#define __POLY_H__
#include <limits.h>
@@ -1172,4 +1172,148 @@ int poly_manager<_BaseType, _ObjectData, _MaxParams, _MaxPolys>::zclip_if_less(i
return nextout - outv;
}
-#endif // __POLYNEW_H__
+
+template<typename _BaseType, int _MaxParams>
+struct frustum_clip_vertex
+{
+ _BaseType x, y, z, w; // A 3d coordinate already transformed by a projection matrix
+ _BaseType p[_MaxParams]; // Additional parameters to clip
+};
+
+
+template<typename _BaseType, int _MaxParams>
+int frustum_clip_w(const frustum_clip_vertex<_BaseType, _MaxParams>* v, int num_vertices, frustum_clip_vertex<_BaseType, _MaxParams>* out)
+{
+ if (num_vertices <= 0)
+ return 0;
+
+ const _BaseType W_PLANE = 0.000001f;
+
+ frustum_clip_vertex<_BaseType, _MaxParams> clipv[10];
+ int clip_verts = 0;
+
+ int previ = num_vertices - 1;
+
+ for (int i=0; i < num_vertices; i++)
+ {
+ int v1_side = (v[i].w < W_PLANE) ? -1 : 1;
+ int v2_side = (v[previ].w < W_PLANE) ? -1 : 1;
+
+ if ((v1_side * v2_side) < 0) // edge goes through W plane
+ {
+ // insert vertex at intersection point
+ _BaseType wdiv = v[previ].w - v[i].w;
+ if (wdiv == 0.0f) // 0 edge means degenerate polygon
+ return 0;
+
+ _BaseType t = fabs((W_PLANE - v[previ].w) / wdiv);
+
+ clipv[clip_verts].x = v[previ].x + ((v[i].x - v[previ].x) * t);
+ clipv[clip_verts].y = v[previ].y + ((v[i].y - v[previ].y) * t);
+ clipv[clip_verts].z = v[previ].z + ((v[i].z - v[previ].z) * t);
+ clipv[clip_verts].w = v[previ].w + ((v[i].w - v[previ].w) * t);
+
+ // Interpolate the rest of the parameters
+ for (int pi = 0; pi < _MaxParams; pi++)
+ clipv[clip_verts].p[pi] = v[previ].p[pi] + ((v[i].p[pi] - v[previ].p[pi]) * t);
+
+ ++clip_verts;
+ }
+ if (v1_side > 0) // current point is inside
+ {
+ clipv[clip_verts] = v[i];
+ ++clip_verts;
+ }
+
+ previ = i;
+ }
+
+ memcpy(&out[0], &clipv[0], sizeof(out[0]) * clip_verts);
+ return clip_verts;
+}
+
+
+template<typename _BaseType, int _MaxParams>
+int frustum_clip(const frustum_clip_vertex<_BaseType, _MaxParams>* v, int num_vertices, frustum_clip_vertex<_BaseType, _MaxParams>* out, int axis, int sign)
+{
+ if (num_vertices <= 0)
+ return 0;
+
+ frustum_clip_vertex<_BaseType, _MaxParams> clipv[10];
+ int clip_verts = 0;
+
+ int previ = num_vertices - 1;
+
+ for (int i=0; i < num_vertices; i++)
+ {
+ int v1_side, v2_side;
+ _BaseType* v1a = (_BaseType*)&v[i];
+ _BaseType* v2a = (_BaseType*)&v[previ];
+
+ _BaseType v1_axis, v2_axis;
+
+ if (sign) // +axis
+ {
+ v1_axis = v1a[axis];
+ v2_axis = v2a[axis];
+ }
+ else // -axis
+ {
+ v1_axis = -v1a[axis];
+ v2_axis = -v2a[axis];
+ }
+
+ v1_side = (v1_axis <= v[i].w) ? 1 : -1;
+ v2_side = (v2_axis <= v[previ].w) ? 1 : -1;
+
+ if ((v1_side * v2_side) < 0) // edge goes through W plane
+ {
+ // insert vertex at intersection point
+ _BaseType wdiv = ((v[previ].w - v2_axis) - (v[i].w - v1_axis));
+
+ if (wdiv == 0.0f) // 0 edge means degenerate polygon
+ return 0;
+
+ _BaseType t = fabs((v[previ].w - v2_axis) / wdiv);
+
+ clipv[clip_verts].x = v[previ].x + ((v[i].x - v[previ].x) * t);
+ clipv[clip_verts].y = v[previ].y + ((v[i].y - v[previ].y) * t);
+ clipv[clip_verts].z = v[previ].z + ((v[i].z - v[previ].z) * t);
+ clipv[clip_verts].w = v[previ].w + ((v[i].w - v[previ].w) * t);
+
+ // Interpolate the rest of the parameters
+ for (int pi = 0; pi < _MaxParams; pi++)
+ clipv[clip_verts].p[pi] = v[previ].p[pi] + ((v[i].p[pi] - v[previ].p[pi]) * t);
+
+ ++clip_verts;
+ }
+ if (v1_side > 0) // current point is inside
+ {
+ clipv[clip_verts] = v[i];
+ ++clip_verts;
+ }
+
+ previ = i;
+ }
+
+ memcpy(&out[0], &clipv[0], sizeof(out[0]) * clip_verts);
+ return clip_verts;
+}
+
+
+template<typename _BaseType, int _MaxParams>
+int frustum_clip_all(frustum_clip_vertex<_BaseType, _MaxParams>* clip_vert, int num_vertices, frustum_clip_vertex<_BaseType, _MaxParams>* out)
+{
+ num_vertices = frustum_clip_w<_BaseType, _MaxParams>(clip_vert, num_vertices, clip_vert);
+ num_vertices = frustum_clip<_BaseType, _MaxParams>(clip_vert, num_vertices, clip_vert, 0, 0); // W <= -X
+ num_vertices = frustum_clip<_BaseType, _MaxParams>(clip_vert, num_vertices, clip_vert, 0, 1); // W <= +X
+ num_vertices = frustum_clip<_BaseType, _MaxParams>(clip_vert, num_vertices, clip_vert, 1, 0); // W <= -Y
+ num_vertices = frustum_clip<_BaseType, _MaxParams>(clip_vert, num_vertices, clip_vert, 1, 1); // W <= +X
+ num_vertices = frustum_clip<_BaseType, _MaxParams>(clip_vert, num_vertices, clip_vert, 2, 0); // W <= -Z
+ num_vertices = frustum_clip<_BaseType, _MaxParams>(clip_vert, num_vertices, clip_vert, 2, 1); // W <= +Z
+ out = clip_vert;
+ return num_vertices;
+}
+
+
+#endif // __POLY_H__
diff --git a/src/emu/video/polylgcy.c b/src/devices/video/polylgcy.c
index 720110e5ca3..720110e5ca3 100644
--- a/src/emu/video/polylgcy.c
+++ b/src/devices/video/polylgcy.c
diff --git a/src/emu/video/polylgcy.h b/src/devices/video/polylgcy.h
index a69ae8e721a..bc409d77db5 100644
--- a/src/emu/video/polylgcy.h
+++ b/src/devices/video/polylgcy.h
@@ -34,8 +34,8 @@
#pragma once
-#ifndef __POLYNEW_H__
-#define __POLYNEW_H__
+#ifndef __POLYLGCY_H__
+#define __POLYLGCY_H__
/***************************************************************************
@@ -152,4 +152,4 @@ UINT32 poly_render_polygon(legacy_poly_manager *poly, void *dest, const rectangl
int poly_zclip_if_less(int numverts, const poly_vertex *v, poly_vertex *outv, int paramcount, float clipval);
-#endif /* __POLY_H__ */
+#endif /* __POLYLGCY_H__ */
diff --git a/src/emu/video/psx.c b/src/devices/video/psx.c
index 167280e3415..167280e3415 100644
--- a/src/emu/video/psx.c
+++ b/src/devices/video/psx.c
diff --git a/src/emu/video/psx.h b/src/devices/video/psx.h
index c8cdff69c42..c8cdff69c42 100644
--- a/src/emu/video/psx.h
+++ b/src/devices/video/psx.h
diff --git a/src/emu/video/ramdac.c b/src/devices/video/ramdac.c
index f9794e60081..f9794e60081 100644
--- a/src/emu/video/ramdac.c
+++ b/src/devices/video/ramdac.c
diff --git a/src/emu/video/ramdac.h b/src/devices/video/ramdac.h
index 0cbf29e9057..0cbf29e9057 100644
--- a/src/emu/video/ramdac.h
+++ b/src/devices/video/ramdac.h
diff --git a/src/emu/video/saa5050.c b/src/devices/video/saa5050.c
index 2440d0bc357..2440d0bc357 100644
--- a/src/emu/video/saa5050.c
+++ b/src/devices/video/saa5050.c
diff --git a/src/emu/video/saa5050.h b/src/devices/video/saa5050.h
index 0155da83e4e..0155da83e4e 100644
--- a/src/emu/video/saa5050.h
+++ b/src/devices/video/saa5050.h
diff --git a/src/emu/video/scn2674.c b/src/devices/video/scn2674.c
index ee1b9a10d79..fc2f5e23512 100644
--- a/src/emu/video/scn2674.c
+++ b/src/devices/video/scn2674.c
@@ -38,6 +38,8 @@ void scn2674_device::device_start()
save_item(NAME(m_linecounter));
save_item(NAME(m_screen2_l));
save_item(NAME(m_screen2_h));
+ save_item(NAME(m_cursor_l));
+ save_item(NAME(m_cursor_h));
}
void scn2674_device::device_reset()
@@ -58,7 +60,7 @@ void scn2674_device::device_reset()
m_display_enabled_scanline= 0;
m_cursor_enabled= 0;
m_IR0_double_ht_wd= 0;
- m_IR0_scanline_per_char_row= 0;
+ m_IR0_scanline_per_char_row= 1;
m_IR0_sync_select= 0;
m_IR0_buffer_mode_select= 0;
m_IR1_interlace_enable= 0;
@@ -94,10 +96,12 @@ void scn2674_device::device_reset()
m_spl1= 0;
m_spl2= 0;
m_dbl1= 0;
+ m_buffer= 0;
m_linecounter= 0;
m_irq_state= 0;
m_IR_pointer = 0;
m_address = 0;
+ m_start1change = 0;
m_hpixels_per_column = m_text_hpixels_per_column;
}
@@ -246,8 +250,7 @@ void scn2674_device::write_init_regs(UINT8 data)
break;
}
- if(m_display_enabled)
- recompute_parameters();
+ recompute_parameters();
m_IR_pointer++;
if (m_IR_pointer>14)m_IR_pointer=14;
@@ -291,8 +294,7 @@ void scn2674_device::write_command(UINT8 data)
/* Disable GFX */
LOG2674(("disable GFX %02x\n",data));
m_gfx_enabled = 0;
- if(m_display_enabled)
- recompute_parameters();
+ recompute_parameters();
}
if ((data&0xe3)==0x23)
@@ -300,8 +302,7 @@ void scn2674_device::write_command(UINT8 data)
/* Enable GFX */
LOG2674(("enable GFX %02x\n",data));
m_gfx_enabled = 1;
- if(m_display_enabled)
- recompute_parameters();
+ recompute_parameters();
}
if ((data&0xe9)==0x28)
@@ -410,59 +411,70 @@ void scn2674_device::write_command(UINT8 data)
/* Delayed Commands */
/* These set 0x20 in status register when done */
-
- if (data == 0xa4)
+ // These use the pointer address according to the datasheet but the pcx expects the screen start 2 address instead
+ switch(data)
{
- /* read at pointer address */
- LOG2674(("DELAYED read at pointer address %02x\n",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));
+ break;
- if (data == 0xa2)
- {
- /* write at pointer address */
- LOG2674(("DELAYED write at pointer address %02x\n",data));
- }
+ 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));
+ break;
- if (data == 0xa9)
- {
- /* increase cursor address */
- LOG2674(("DELAYED increase cursor address %02x\n",data));
- }
+ case 0xa9:
+ /* increment cursor address */
+ if(!(++m_cursor_l))
+ m_cursor_h++;
+ LOG2674(("DELAYED increase cursor address %02x\n",data));
+ break;
- if (data == 0xac)
- {
- /* read at cursor address */
- LOG2674(("DELAYED read at cursor address %02x\n",data));
- }
+ 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));
+ break;
- if (data == 0xaa)
- {
- /* write at cursor address */
- LOG2674(("DELAYED write at cursor address %02x\n",data));
- }
+ 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));
+ break;
- if (data == 0xad)
- {
- /* read at cursor address + increment */
- LOG2674(("DELAYED read at cursor address+increment %02x\n",data));
- }
+ case 0xad:
+ /* read at cursor address + increment */
+ 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));
+ break;
- if (data == 0xab)
- {
- /* write at cursor address + increment */
- LOG2674(("DELAYED write at cursor address+increment %02x\n",data));
- }
+ case 0xab:
+ /* write at cursor address + increment */
+ 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));
+ break;
- if (data == 0xbb)
- {
- /* write from cursor address to pointer address */
- LOG2674(("DELAYED write from cursor address to pointer address %02x\n",data));
- }
+ case 0xbb:
+ /* write from cursor address to pointer address TODO: transfer only during blank*/
+ for(i = m_cursor_l | (m_cursor_h << 8); i != (m_screen2_l | (m_screen2_h << 8)); i = ((i + 1) & 0xffff))
+ space().write_byte(i, m_buffer);
+ 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));
+ break;
- if (data == 0xbd)
- {
- /* read from cursor address to pointer address */
- LOG2674(("DELAYED read from cursor address to pointer address %02x\n",data));
+ case 0xbd:
+ /* read from cursor address to pointer address */
+ LOG2674(("DELAYED read from cursor address to pointer address %02x\n",data));
+ break;
}
}
@@ -540,7 +552,11 @@ WRITE8_MEMBER( scn2674_device::write )
write_command(data);
break;
- case 2: m_screen1_l = data; break;
+ case 2:
+ m_screen1_l = data;
+ if(!m_screen->vblank())
+ m_start1change = (m_linecounter / m_IR0_scanline_per_char_row) + 1;
+ break;
case 3:
m_screen1_h = data;
m_dbl1=(data & 0xc0)>>6;
@@ -550,6 +566,8 @@ WRITE8_MEMBER( scn2674_device::write )
m_screen1_h &= 0x3f;
LOG2674(("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;
break;
case 4: m_cursor_l = data; break;
@@ -568,10 +586,16 @@ void scn2674_device::recompute_parameters()
m_hpixels_per_column = m_gfx_enabled ? m_gfx_hpixels_per_column : m_text_hpixels_per_column;
int horiz_pix_total = ((m_IR1_equalizing_constant + (m_IR2_horz_sync_width << 1)) << 1) * m_hpixels_per_column;
int vert_pix_total = m_IR4_rows_per_screen * m_IR0_scanline_per_char_row + m_IR3_vert_front_porch + m_IR3_vert_back_porch + m_IR7_vsync_width;
- attoseconds_t refresh = m_screen->frame_period().attoseconds;
+ attoseconds_t refresh = m_screen->frame_period().attoseconds();
int max_visible_x = (m_IR5_character_per_row * m_hpixels_per_column) - 1;
int max_visible_y = (m_IR4_rows_per_screen * m_IR0_scanline_per_char_row) - 1;
+ if(!horiz_pix_total || !vert_pix_total)
+ {
+ m_scanline_timer->adjust(attotime::never);
+ 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)));
rectangle visarea;
@@ -594,22 +618,11 @@ void scn2674_device::device_timer(emu_timer &timer, device_timer_id id, int para
m_display_enabled_scanline = 0;
m_display_enabled_field = 0;
}
- else if(!m_display_enabled)
- break;
- else
- m_linecounter++;
- // should be triggered at the start of each ROW (line zero for that row)
+ m_linecounter++;
+
if(m_linecounter >= m_screen->height())
{
- m_status_register |= 0x08;
- if (m_irq_mask & 0x08)
- {
- LOG2674(("SCN2674 Line Zero\n"));
- m_irq_state = 1;
- m_irq_register |= 0x08;
- m_irq_cb(1);
- }
m_linecounter = 0;
m_address = (m_screen1_h << 8) | m_screen1_l;
}
@@ -629,6 +642,22 @@ void scn2674_device::device_timer(emu_timer &timer, device_timer_id id, int para
if(m_linecounter >= (m_IR4_rows_per_screen * m_IR0_scanline_per_char_row))
break;
+ int charrow = m_linecounter % m_IR0_scanline_per_char_row;
+ int tilerow = charrow;
+
+ // should be triggered at the start of each ROW (line zero for that row)
+ if(!charrow)
+ {
+ m_status_register |= 0x08;
+ if (m_irq_mask & 0x08)
+ {
+ LOG2674(("SCN2674 Line Zero\n"));
+ m_irq_state = 1;
+ m_irq_register |= 0x08;
+ m_irq_cb(1);
+ }
+ }
+
if((m_linecounter == (m_IR12_split_register_1 * m_IR0_scanline_per_char_row)) && m_linecounter) /* Split Screen 1 */
{
m_status_register |= 0x04;
@@ -661,8 +690,8 @@ void scn2674_device::device_timer(emu_timer &timer, device_timer_id id, int para
dw = m_IR14_double_2;
}
- int charrow = m_linecounter % m_IR0_scanline_per_char_row;
- int tilerow = charrow;
+ if(!m_display_enabled)
+ break;
if(m_IR2_row_table)
{
@@ -684,7 +713,11 @@ void scn2674_device::device_timer(emu_timer &timer, device_timer_id id, int para
m_screen2_h = (addr >> 8) & 0x3f;
m_screen2_l = addr & 0xff;
}
-
+ }
+ else if(m_start1change && (m_start1change == (m_linecounter / m_IR0_scanline_per_char_row)))
+ {
+ m_address = (m_screen1_h << 8) | m_screen1_l;
+ m_start1change = 0;
}
if(dw == 2)
diff --git a/src/emu/video/scn2674.h b/src/devices/video/scn2674.h
index 2b1eaa17184..b30c65c4039 100644
--- a/src/emu/video/scn2674.h
+++ b/src/devices/video/scn2674.h
@@ -37,6 +37,8 @@ public:
DECLARE_READ8_MEMBER( read );
DECLARE_WRITE8_MEMBER( write );
+ DECLARE_READ8_MEMBER( buffer_r ) { return m_buffer; }
+ DECLARE_WRITE8_MEMBER( buffer_w ) { m_buffer = data; }
UINT32 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 { return (spacenum == AS_0) ? &m_space_config : NULL; }
@@ -105,8 +107,10 @@ private:
UINT8 m_spl1;
UINT8 m_spl2;
UINT8 m_dbl1;
+ UINT8 m_buffer;
int m_linecounter;
UINT16 m_address;
+ int m_start1change;
UINT8 m_irq_state;
diff --git a/src/emu/video/sed1200.c b/src/devices/video/sed1200.c
index 029ab01c236..029ab01c236 100644
--- a/src/emu/video/sed1200.c
+++ b/src/devices/video/sed1200.c
diff --git a/src/emu/video/sed1200.h b/src/devices/video/sed1200.h
index 7429215c245..7429215c245 100644
--- a/src/emu/video/sed1200.h
+++ b/src/devices/video/sed1200.h
diff --git a/src/emu/video/sed1330.c b/src/devices/video/sed1330.c
index 2ced64a8170..2ced64a8170 100644
--- a/src/emu/video/sed1330.c
+++ b/src/devices/video/sed1330.c
diff --git a/src/emu/video/sed1330.h b/src/devices/video/sed1330.h
index a78c71ef3a3..a78c71ef3a3 100644
--- a/src/emu/video/sed1330.h
+++ b/src/devices/video/sed1330.h
diff --git a/src/emu/video/sed1520.c b/src/devices/video/sed1520.c
index ba5c68145cd..ba5c68145cd 100644
--- a/src/emu/video/sed1520.c
+++ b/src/devices/video/sed1520.c
diff --git a/src/emu/video/sed1520.h b/src/devices/video/sed1520.h
index ebcc640314e..ebcc640314e 100644
--- a/src/emu/video/sed1520.h
+++ b/src/devices/video/sed1520.h
diff --git a/src/emu/video/snes_ppu.c b/src/devices/video/snes_ppu.c
index 93529ad307e..93529ad307e 100644
--- a/src/emu/video/snes_ppu.c
+++ b/src/devices/video/snes_ppu.c
diff --git a/src/emu/video/snes_ppu.h b/src/devices/video/snes_ppu.h
index 806865a0729..806865a0729 100644
--- a/src/emu/video/snes_ppu.h
+++ b/src/devices/video/snes_ppu.h
diff --git a/src/emu/video/stvvdp1.c b/src/devices/video/stvvdp1.c
index 126089d40b5..126089d40b5 100644
--- a/src/emu/video/stvvdp1.c
+++ b/src/devices/video/stvvdp1.c
diff --git a/src/emu/video/stvvdp2.c b/src/devices/video/stvvdp2.c
index e2fbcf7f58d..e2fbcf7f58d 100644
--- a/src/emu/video/stvvdp2.c
+++ b/src/devices/video/stvvdp2.c
diff --git a/src/emu/video/t6a04.c b/src/devices/video/t6a04.c
index 89bf9cf716a..89bf9cf716a 100644
--- a/src/emu/video/t6a04.c
+++ b/src/devices/video/t6a04.c
diff --git a/src/emu/video/t6a04.h b/src/devices/video/t6a04.h
index 2fe5b68bd33..2fe5b68bd33 100644
--- a/src/emu/video/t6a04.h
+++ b/src/devices/video/t6a04.h
diff --git a/src/emu/video/tea1002.c b/src/devices/video/tea1002.c
index ba518e6a6ac..ba518e6a6ac 100644
--- a/src/emu/video/tea1002.c
+++ b/src/devices/video/tea1002.c
diff --git a/src/emu/video/tea1002.h b/src/devices/video/tea1002.h
index ee01a2178b2..ee01a2178b2 100644
--- a/src/emu/video/tea1002.h
+++ b/src/devices/video/tea1002.h
diff --git a/src/emu/video/tlc34076.c b/src/devices/video/tlc34076.c
index b695ce08ed7..b695ce08ed7 100644
--- a/src/emu/video/tlc34076.c
+++ b/src/devices/video/tlc34076.c
diff --git a/src/emu/video/tlc34076.h b/src/devices/video/tlc34076.h
index 08c8d666fee..08c8d666fee 100644
--- a/src/emu/video/tlc34076.h
+++ b/src/devices/video/tlc34076.h
diff --git a/src/emu/video/tms34061.c b/src/devices/video/tms34061.c
index 02720cda66a..02720cda66a 100644
--- a/src/emu/video/tms34061.c
+++ b/src/devices/video/tms34061.c
diff --git a/src/emu/video/tms34061.h b/src/devices/video/tms34061.h
index fa8d6a98601..fa8d6a98601 100644
--- a/src/emu/video/tms34061.h
+++ b/src/devices/video/tms34061.h
diff --git a/src/emu/video/tms3556.c b/src/devices/video/tms3556.c
index 9d073bdbe0d..9d073bdbe0d 100644
--- a/src/emu/video/tms3556.c
+++ b/src/devices/video/tms3556.c
diff --git a/src/emu/video/tms3556.h b/src/devices/video/tms3556.h
index a331b8333e3..a331b8333e3 100644
--- a/src/emu/video/tms3556.h
+++ b/src/devices/video/tms3556.h
diff --git a/src/emu/video/tms9927.c b/src/devices/video/tms9927.c
index 85c6a178243..85c6a178243 100644
--- a/src/emu/video/tms9927.c
+++ b/src/devices/video/tms9927.c
diff --git a/src/emu/video/tms9927.h b/src/devices/video/tms9927.h
index adadf8945cb..adadf8945cb 100644
--- a/src/emu/video/tms9927.h
+++ b/src/devices/video/tms9927.h
diff --git a/src/emu/video/tms9928a.c b/src/devices/video/tms9928a.c
index 8e8b672f8e4..8e8b672f8e4 100644
--- a/src/emu/video/tms9928a.c
+++ b/src/devices/video/tms9928a.c
diff --git a/src/emu/video/tms9928a.h b/src/devices/video/tms9928a.h
index b87807782d1..b87807782d1 100644
--- a/src/emu/video/tms9928a.h
+++ b/src/devices/video/tms9928a.h
diff --git a/src/emu/video/upd3301.c b/src/devices/video/upd3301.c
index 8370f52c85c..8370f52c85c 100644
--- a/src/emu/video/upd3301.c
+++ b/src/devices/video/upd3301.c
diff --git a/src/emu/video/upd3301.h b/src/devices/video/upd3301.h
index cef42e08627..cef42e08627 100644
--- a/src/emu/video/upd3301.h
+++ b/src/devices/video/upd3301.h
diff --git a/src/emu/video/upd7220.c b/src/devices/video/upd7220.c
index 05f64cc2878..d17ac6ee7dc 100644
--- a/src/emu/video/upd7220.c
+++ b/src/devices/video/upd7220.c
@@ -316,11 +316,10 @@ inline void upd7220_device::dequeue(UINT8 *data, int *flag)
m_fifo_ptr--;
+ if (m_fifo_ptr <= 0)
+ m_sr |= UPD7220_SR_FIFO_EMPTY;
if (m_fifo_ptr == -1)
- {
m_sr &= ~UPD7220_SR_DATA_READY;
- m_sr |= UPD7220_SR_FIFO_EMPTY;
- }
}
}
diff --git a/src/emu/video/upd7220.h b/src/devices/video/upd7220.h
index 4a8be071cac..4a8be071cac 100644
--- a/src/emu/video/upd7220.h
+++ b/src/devices/video/upd7220.h
diff --git a/src/emu/video/upd7227.c b/src/devices/video/upd7227.c
index 037dd037610..037dd037610 100644
--- a/src/emu/video/upd7227.c
+++ b/src/devices/video/upd7227.c
diff --git a/src/emu/video/upd7227.h b/src/devices/video/upd7227.h
index 19d04224d1c..19d04224d1c 100644
--- a/src/emu/video/upd7227.h
+++ b/src/devices/video/upd7227.h
diff --git a/src/emu/video/v9938.c b/src/devices/video/v9938.c
index 3192593e76a..33d5b74d5fb 100644
--- a/src/emu/video/v9938.c
+++ b/src/devices/video/v9938.c
@@ -5,6 +5,25 @@
v9938 / v9958 emulation
+Vertical display parameters from Yamaha V9938 Technical Data Book.
+NTSC: page 146, Table 7-2
+PAL: page 147, Table 7-3
+
+Vertical timing:
+ PAL NTSC
+ 192(LN=0) 212(LN=1) 192(LN=0) 212(LN=1)
+ ------------------- --------------------
+1. Top erase (top blanking) 13 13 13 13
+2. Top border 53 43 26 16
+3. Active display 192 212 192 212
+4. Bottom border 49 39 25 15
+5. Bottom erase (bottom blanking) 3 3 3 3
+6. Vertical sync (bottom blanking) 3 3 3 3
+7. Total 313 313 262 262
+
+ Refresh rate 50.158974 59.922743
+
+
***************************************************************************/
/*
@@ -59,8 +78,8 @@ Similar to the TMS9928, the V9938 has an own address space. It can handle
at most 192 KiB RAM (128 KiB base, 64 KiB expansion).
*/
static ADDRESS_MAP_START(memmap, AS_DATA, 8, v99x8_device)
-ADDRESS_MAP_GLOBAL_MASK(0x3ffff)
-AM_RANGE(0x00000, 0x2ffff) AM_RAM
+ ADDRESS_MAP_GLOBAL_MASK(0x3ffff)
+ AM_RANGE(0x00000, 0x2ffff) AM_RAM
ADDRESS_MAP_END
@@ -68,6 +87,7 @@ ADDRESS_MAP_END
const device_type V9938 = &device_creator<v9938_device>;
const device_type V9958 = &device_creator<v9958_device>;
+
v99x8_device::v99x8_device(const machine_config &mconfig, device_type type, const char *name, const char *shortname, const char *tag, device_t *owner, UINT32 clock)
: device_t(mconfig, type, name, tag, owner, clock, shortname, __FILE__),
device_memory_interface(mconfig, *this),
@@ -96,7 +116,8 @@ v99x8_device::v99x8_device(const machine_config &mconfig, device_type type, cons
m_button_state(0),
m_vdp_ops_count(0),
m_vdp_engine(NULL),
- m_palette(*this, "palette")
+ m_palette(*this, "palette"),
+ m_pal_ntsc(0)
{
static_set_addrmap(*this, AS_DATA, ADDRESS_MAP_NAME(memmap));
}
@@ -114,59 +135,105 @@ v9958_device::v9958_device(const machine_config &mconfig, const char *tag, devic
}
-int v99x8_device::interrupt ()
+void v99x8_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
{
- int scanline, max, pal, scanline_start;
+ int scanline = (m_scanline - (m_scanline_start + m_offset_y));
update_command ();
- pal = m_cont_reg[9] & 2;
- if (pal) scanline_start = 53; else scanline_start = 22;
-
// set flags
- if (m_scanline == (m_offset_y + scanline_start) )
+ if (m_scanline == (m_scanline_start + m_offset_y))
{
m_stat_reg[2] &= ~0x40;
}
- else if (m_scanline == (m_offset_y + m_visible_y + scanline_start) )
+ else if (m_scanline == (m_scanline_start + m_offset_y + m_visible_y))
{
m_stat_reg[2] |= 0x40;
m_stat_reg[0] |= 0x80;
}
- max = (pal) ? 255 : (m_cont_reg[9] & 0x80) ? 234 : 244;
- scanline = (m_scanline - scanline_start - m_offset_y);
- if ( (scanline >= 0) && (scanline <= max) &&
- ( ( (scanline + m_cont_reg[23]) & 255) == m_cont_reg[19]) )
+ if ( (scanline >= 0) && (scanline <= m_scanline_max) &&
+ (((scanline + m_cont_reg[23]) & 255) == m_cont_reg[19]) )
{
m_stat_reg[1] |= 1;
LOG(("V9938: scanline interrupt (%d)\n", scanline));
}
- else
- if ( !(m_cont_reg[0] & 0x10) ) m_stat_reg[1] &= 0xfe;
+ else if (!(m_cont_reg[0] & 0x10))
+ {
+ m_stat_reg[1] &= 0xfe;
+ }
- check_int ();
+ check_int();
// check for start of vblank
- if ((pal && (m_scanline == 310)) ||
- (!pal && (m_scanline == 259)))
- interrupt_start_vblank ();
+ if (m_scanline == m_vblank_start)
+ {
+ interrupt_start_vblank();
+ }
// render the current line
- if ((m_scanline >= scanline_start) && (m_scanline < (212 + 28 + scanline_start)))
+ if (m_scanline < m_vblank_start)
{
- scanline = (m_scanline - scanline_start) & 255;
-
- refresh_line (scanline);
+ refresh_line(scanline);
}
- max = (m_cont_reg[9] & 2) ? 313 : 262;
- if (++m_scanline >= max)
+ if (++m_scanline >= m_height)
+ {
m_scanline = 0;
+ // PAL/NTSC changed?
+ int pal = m_cont_reg[9] & 2;
+ if (m_pal_ntsc != pal)
+ {
+ m_pal_ntsc = pal;
+ configure_pal_ntsc();
+ }
+ //m_screen->reset_origin();
+ m_offset_y = position_offset(m_cont_reg[18] >> 4);
+ set_screen_parameters();
+ }
+}
+
+
+void v99x8_device::set_screen_parameters()
+{
+ if (m_pal_ntsc)
+ {
+ // PAL
+ m_scanline_start = (m_cont_reg[9] & 0x80) ? 43 : 53;
+ m_scanline_max = 255;
+ }
+ else
+ {
+ // NYSC
+ m_scanline_start = (m_cont_reg[9] & 0x80) ? 16 : 26;
+ m_scanline_max = (m_cont_reg[9] & 0x80) ? 234 : 244;
+ }
+ m_visible_y = (m_cont_reg[9] & 0x80) ? 212 : 192;
+}
- return m_int_state;
+
+void v99x8_device::configure_pal_ntsc()
+{
+ if (m_pal_ntsc)
+ {
+ // PAL
+ m_height = VTOTAL_PAL;
+ rectangle visible;
+ visible.set(0, HVISIBLE - 1, VERTICAL_ADJUST * 2, VVISIBLE_PAL * 2 - 1 - VERTICAL_ADJUST * 2);
+ m_screen->configure(HTOTAL, VTOTAL_PAL * 2, visible, HZ_TO_ATTOSECONDS(50.158974));
+ }
+ else
+ {
+ // NTSC
+ m_height = VTOTAL_NTSC;
+ rectangle visible;
+ visible.set(0, HVISIBLE - 1, VERTICAL_ADJUST * 2, VVISIBLE_NTSC * 2 - 1 - VERTICAL_ADJUST * 2);
+ m_screen->configure(HTOTAL, VTOTAL_NTSC * 2, visible, HZ_TO_ATTOSECONDS(59.922743));
+ }
+ m_vblank_start = m_height - VERTICAL_SYNC - TOP_ERASE; /* Sync + top erase */
}
+
/*
Not really right... won't work with sprites in graphics 7
and with palette updated mid-screen
@@ -570,6 +637,8 @@ void v99x8_device::device_start()
for (int addr = m_vram_size; addr < 0x30000; addr++) m_vram_space->write_byte(addr, 0xff);
}
+ m_line_timer = timer_alloc(TIMER_LINE);
+
save_item(NAME(m_offset_x));
save_item(NAME(m_offset_y));
save_item(NAME(m_visible_y));
@@ -612,6 +681,11 @@ void v99x8_device::device_start()
save_item(NAME(m_mmc.MXS));
save_item(NAME(m_mmc.MXD));
save_item(NAME(m_vdp_ops_count));
+ save_item(NAME(m_pal_ntsc));
+ save_item(NAME(m_scanline_start));
+ save_item(NAME(m_vblank_start));
+ save_item(NAME(m_scanline_max));
+ save_item(NAME(m_height));
}
void v99x8_device::device_reset()
@@ -620,7 +694,7 @@ void v99x8_device::device_reset()
// offset reset
m_offset_x = 8;
- m_offset_y = 8 + 16;
+ m_offset_y = 0;
m_visible_y = 192;
// register reset
reset_palette (); // palette registers
@@ -644,10 +718,16 @@ void v99x8_device::device_reset()
// TODO: SR3-S6 do not yet store the information about the sprite collision
m_stat_reg[4] = 0xfe;
m_stat_reg[6] = 0xfc;
+
+ // Start the timer
+ m_line_timer->adjust(attotime::from_ticks(HTOTAL*2, m_clock), 0, attotime::from_ticks(HTOTAL*2, m_clock));
+
+ configure_pal_ntsc();
+ set_screen_parameters();
}
-void v99x8_device::reset_palette ()
+void v99x8_device::reset_palette()
{
// taken from V9938 Technical Data book, page 148. it's in G-R-B format
static const UINT8 pal16[16*3] = {
@@ -795,17 +875,8 @@ void v99x8_device::register_write (int reg, int data)
case 9:
m_cont_reg[reg] = data;
// recalc offset
- m_offset_x = (( (~m_cont_reg[18] - 8) & 0x0f) + 1);
- m_offset_y = ((~(m_cont_reg[18]>>4) - 8) & 0x0f) + 7;
- if (m_cont_reg[9] & 0x80)
- {
- m_visible_y = 212;
- }
- else
- {
- m_visible_y = 192;
- m_offset_y += 10;
- }
+ m_offset_x = 8 + position_offset(m_cont_reg[18] & 0x0f);
+ // Y offset is only applied once per frame?
break;
case 15:
@@ -1789,32 +1860,31 @@ void v99x8_device::refresh_16(int line)
if (m_cont_reg[9] & 0x08)
{
- ln = &m_bitmap.pix16(line*2+((m_stat_reg[2]>>1)&1));
+ ln = &m_bitmap.pix16(m_scanline*2+((m_stat_reg[2]>>1)&1));
}
else
{
- ln = &m_bitmap.pix16(line*2);
- ln2 = &m_bitmap.pix16(line*2+1);
+ ln = &m_bitmap.pix16(m_scanline*2);
+ ln2 = &m_bitmap.pix16(m_scanline*2+1);
double_lines = true;
}
if ( !(m_cont_reg[1] & 0x40) || (m_stat_reg[2] & 0x40) )
{
- (this->*s_modes[m_mode].border_16) (pens, ln);
+ (this->*s_modes[m_mode].border_16)(pens, ln);
}
else
{
- int i = (line - m_offset_y) & 255;
- (this->*s_modes[m_mode].visible_16) (pens, ln, i);
+ (this->*s_modes[m_mode].visible_16)(pens, ln, line);
if (s_modes[m_mode].sprites)
{
- (this->*s_modes[m_mode].sprites) (i, col);
- (this->*s_modes[m_mode].draw_sprite_16) (pens, ln, col);
+ (this->*s_modes[m_mode].sprites)(line, col);
+ (this->*s_modes[m_mode].draw_sprite_16)(pens, ln, col);
}
}
if (double_lines)
- memcpy (ln2, ln, (512 + 32) * 2);
+ memcpy(ln2, ln, (512 + 32) * 2);
}
void v99x8_device::refresh_line(int line)
diff --git a/src/emu/video/v9938.h b/src/devices/video/v9938.h
index 1393765ace3..7e620a66c21 100644
--- a/src/emu/video/v9938.h
+++ b/src/devices/video/v9938.h
@@ -17,15 +17,39 @@
// DEVICE CONFIGURATION MACROS
//**************************************************************************
-#define MCFG_V9938_ADD(_tag, _screen, _vramsize) \
- MCFG_DEVICE_ADD(_tag, V9938, 0) \
+#define MCFG_V9938_ADD(_tag, _screen, _vramsize, _clock) \
+ MCFG_DEVICE_ADD(_tag, V9938, _clock) \
MCFG_VIDEO_SET_SCREEN(_screen) \
v9938_device::static_set_vram_size(*device, _vramsize);
-#define MCFG_V9958_ADD(_tag, _screen, _vramsize) \
- MCFG_DEVICE_ADD(_tag, V9958, 0) \
+#define MCFG_V9958_ADD(_tag, _screen, _vramsize, _clock) \
+ MCFG_DEVICE_ADD(_tag, V9958, _clock) \
MCFG_VIDEO_SET_SCREEN(_screen) \
v9938_device::static_set_vram_size(*device, _vramsize);
+#define MCFG_V99X8_SCREEN_ADD_NTSC(_screen_tag, _v9938_tag, _clock) \
+ MCFG_SCREEN_ADD(_screen_tag, RASTER) \
+ MCFG_SCREEN_RAW_PARAMS(_clock, \
+ v99x8_device::HTOTAL, \
+ 0, \
+ v99x8_device::HVISIBLE - 1, \
+ v99x8_device::VTOTAL_NTSC * 2, \
+ v99x8_device::VERTICAL_ADJUST * 2, \
+ v99x8_device::VVISIBLE_NTSC * 2 - 1 - v99x8_device::VERTICAL_ADJUST * 2) \
+ MCFG_SCREEN_UPDATE_DEVICE(_v9938_tag, v9938_device, screen_update) \
+ MCFG_SCREEN_PALETTE(_v9938_tag":palette")
+
+#define MCFG_V99X8_SCREEN_ADD_PAL(_screen_tag, _v9938_tag, _clock) \
+ MCFG_SCREEN_ADD(_screen_tag, RASTER) \
+ MCFG_SCREEN_RAW_PARAMS(_clock, \
+ v99x8_device::HTOTAL, \
+ 0, \
+ v99x8_device::HVISIBLE - 1, \
+ v99x8_device::VTOTAL_PAL * 2, \
+ v99x8_device::VERTICAL_ADJUST * 2, \
+ v99x8_device::VVISIBLE_PAL * 2 - 1 - v99x8_device::VERTICAL_ADJUST * 2) \
+ MCFG_SCREEN_UPDATE_DEVICE(_v9938_tag, v9938_device, screen_update) \
+ MCFG_SCREEN_PALETTE(_v9938_tag":palette")
+
#define MCFG_V99X8_INTERRUPT_CALLBACK(_irq) \
downcast<v99x8_device *>(device)->set_interrupt_callback(DEVCB_##_irq);
@@ -58,7 +82,6 @@ public:
template<class _irq> void set_interrupt_callback(_irq irq) {
m_int_callback.set_callback(irq);
}
- int interrupt ();
int get_transpen();
bitmap_ind16 &get_bitmap() { return m_bitmap; }
void update_mouse_state(int mx_delta, int my_delta, int button_state);
@@ -80,7 +103,22 @@ 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;
+ // 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;
+
protected:
+ static const device_timer_id TIMER_LINE = 0;
const address_space_config m_space_config;
address_space* m_vram_space;
@@ -89,12 +127,17 @@ protected:
// device overrides
virtual void device_start();
virtual void device_reset();
+ virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
// device_memory_interface overrides
virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_DATA) const { return (spacenum == AS_DATA) ? &m_space_config : NULL; }
+ void configure_pal_ntsc();
+ void set_screen_parameters();
+
private:
// internal helpers
+ inline int position_offset(UINT8 value) { value &= 0x0f; return (value < 8) ? -value : 16 - value; }
void reset_palette();
void vram_write(int offset, int data);
int vram_read(int offset);
@@ -220,6 +263,12 @@ private:
} ;
static const v99x8_mode s_modes[];
required_device<palette_device> m_palette;
+ emu_timer *m_line_timer;
+ UINT8 m_pal_ntsc;
+ int m_scanline_start;
+ int m_vblank_start;
+ int m_scanline_max;
+ int m_height;
protected:
static UINT16 s_pal_indYJK[0x20000];
};
diff --git a/src/emu/video/vic4567.c b/src/devices/video/vic4567.c
index ca98279365b..ca98279365b 100644
--- a/src/emu/video/vic4567.c
+++ b/src/devices/video/vic4567.c
diff --git a/src/emu/video/vic4567.h b/src/devices/video/vic4567.h
index 41d385397fa..41d385397fa 100644
--- a/src/emu/video/vic4567.h
+++ b/src/devices/video/vic4567.h
diff --git a/src/emu/video/vooddefs.h b/src/devices/video/vooddefs.h
index db67d2de8d5..f98aece2110 100644
--- a/src/emu/video/vooddefs.h
+++ b/src/devices/video/vooddefs.h
@@ -3209,7 +3209,7 @@ do
INT32 smax, tmax; \
UINT32 texbase; \
rgb_union c_local; \
- \
+ \
/* determine the S/T/LOD values for this texture */ \
if (TEXMODE_ENABLE_PERSPECTIVE(TEXMODE)) \
{ \
@@ -4737,15 +4737,16 @@ INLINE INT32 ATTR_FORCE_INLINE new_log2(double &value)
}
// Computes A/C and B/C and returns log2 of 1/C
-// A, B and C are 16.32 values. The results are 14.18.
+// A, B and C are 16.32 values. The results are 24.8.
INLINE void ATTR_FORCE_INLINE multi_reciplog(INT64 valueA, INT64 valueB, INT64 valueC, INT32 &log, INT32 &resA, INT32 &resB)
{
- double recip = 1.0f/valueC;
- double resAD = valueA * recip * ((INT64)1<<(47-29));
- double resBD = valueB * recip * ((INT64)1<<(47-29));
- log = new_log2(recip);
- resA = resAD;
- resB = resBD;
+ double recip = double(1ULL<<(47-39))/valueC;
+ double resAD = valueA * recip;
+ double resBD = valueB * recip;
+ log = new_log2(recip);
+ log += 56<<8;
+ resA = resAD;
+ resB = resBD;
}
@@ -4761,8 +4762,8 @@ INLINE rgbaint_t ATTR_FORCE_INLINE genTexture(tmu_state *TT, INT32 x, const UINT
INT32 wLog;
if (USE_FAST_RECIP) {
const INT32 oow = fast_reciplog((ITERW), &wLog);
- s = ((INT64)oow * (ITERS)) >> 29;
- t = ((INT64)oow * (ITERT)) >> 29;
+ s = ((INT64)oow * (ITERS)) >> (29+10);
+ t = ((INT64)oow * (ITERT)) >> (29+10);
} else {
multi_reciplog(ITERS, ITERT, ITERW, wLog, s, t);
}
@@ -4770,8 +4771,8 @@ INLINE rgbaint_t ATTR_FORCE_INLINE genTexture(tmu_state *TT, INT32 x, const UINT
}
else
{
- s = (ITERS) >> 14;
- t = (ITERT) >> 14;
+ s = (ITERS) >> (14+10);
+ t = (ITERT) >> (14+10);
}
/* clamp W */
@@ -4810,8 +4811,8 @@ INLINE rgbaint_t ATTR_FORCE_INLINE genTexture(tmu_state *TT, INT32 x, const UINT
UINT32 texel0;
/* adjust S/T for the LOD and strip off the fractions */
- s >>= ilod + 18;
- t >>= ilod + 18;
+ s >>= ilod + (18-10);
+ t >>= ilod + (18-10);
/* clamp/wrap S/T if necessary */
if (TEXMODE_CLAMP_S(TEXMODE))
@@ -4847,8 +4848,8 @@ INLINE rgbaint_t ATTR_FORCE_INLINE genTexture(tmu_state *TT, INT32 x, const UINT
/* adjust S/T for the LOD and strip off all but the low 8 bits of */
/* the fraction */
- s >>= ilod + 10;
- t >>= ilod + 10;
+ s >>= ilod; // + (10-10);
+ t >>= ilod; // + (10-10);
/* also subtract 1/2 texel so that (0.5,0.5) = a full (0,0) texel */
s -= 0x80;
diff --git a/src/emu/video/voodoo.c b/src/devices/video/voodoo.c
index 774387c3921..1874fccad29 100644
--- a/src/emu/video/voodoo.c
+++ b/src/devices/video/voodoo.c
@@ -2095,8 +2095,8 @@ static void cmdfifo_w(voodoo_state *v, cmdfifo_info *f, offs_t offset, UINT32 da
v->pci.op_end_time = v->device->machine().time() + attotime(0, (attoseconds_t)cycles * v->attoseconds_per_cycle);
if (LOG_FIFO_VERBOSE) logerror("VOODOO.%d.FIFO:direct write start at %d.%08X%08X end at %d.%08X%08X\n", v->index,
- v->device->machine().time().seconds, (UINT32)(v->device->machine().time().attoseconds >> 32), (UINT32)v->device->machine().time().attoseconds,
- v->pci.op_end_time.seconds, (UINT32)(v->pci.op_end_time.attoseconds >> 32), (UINT32)v->pci.op_end_time.attoseconds);
+ v->device->machine().time().seconds(), (UINT32)(v->device->machine().time().attoseconds() >> 32), (UINT32)v->device->machine().time().attoseconds(),
+ v->pci.op_end_time.seconds(), (UINT32)(v->pci.op_end_time.attoseconds() >> 32), (UINT32)v->pci.op_end_time.attoseconds());
}
}
}
@@ -2585,7 +2585,7 @@ static INT32 register_w(voodoo_state *v, offs_t offset, UINT32 data)
if (v->reg[hSync].u != 0 && v->reg[vSync].u != 0 && v->reg[videoDimensions].u != 0)
{
int hvis, vvis, htotal, vtotal, hbp, vbp;
- attoseconds_t refresh = v->screen->frame_period().attoseconds;
+ attoseconds_t refresh = v->screen->frame_period().attoseconds();
attoseconds_t stdperiod, medperiod, vgaperiod;
attoseconds_t stddiff, meddiff, vgadiff;
rectangle visarea;
@@ -3569,8 +3569,8 @@ static void flush_fifos(voodoo_state *v, attotime current_time)
if (!v->pci.op_pending) fatalerror("flush_fifos called with no pending operation\n");
if (LOG_FIFO_VERBOSE) logerror("VOODOO.%d.FIFO:flush_fifos start -- pending=%d.%08X%08X cur=%d.%08X%08X\n", v->index,
- v->pci.op_end_time.seconds, (UINT32)(v->pci.op_end_time.attoseconds >> 32), (UINT32)v->pci.op_end_time.attoseconds,
- current_time.seconds, (UINT32)(current_time.attoseconds >> 32), (UINT32)current_time.attoseconds);
+ v->pci.op_end_time.seconds(), (UINT32)(v->pci.op_end_time.attoseconds() >> 32), (UINT32)v->pci.op_end_time.attoseconds(),
+ current_time.seconds(), (UINT32)(current_time.attoseconds() >> 32), (UINT32)current_time.attoseconds());
/* loop while we still have cycles to burn */
while (v->pci.op_end_time <= current_time)
@@ -3667,12 +3667,12 @@ static void flush_fifos(voodoo_state *v, attotime current_time)
v->pci.op_end_time += attotime(0, (attoseconds_t)cycles * v->attoseconds_per_cycle);
if (LOG_FIFO_VERBOSE) logerror("VOODOO.%d.FIFO:update -- pending=%d.%08X%08X cur=%d.%08X%08X\n", v->index,
- v->pci.op_end_time.seconds, (UINT32)(v->pci.op_end_time.attoseconds >> 32), (UINT32)v->pci.op_end_time.attoseconds,
- current_time.seconds, (UINT32)(current_time.attoseconds >> 32), (UINT32)current_time.attoseconds);
+ v->pci.op_end_time.seconds(), (UINT32)(v->pci.op_end_time.attoseconds() >> 32), (UINT32)v->pci.op_end_time.attoseconds(),
+ current_time.seconds(), (UINT32)(current_time.attoseconds() >> 32), (UINT32)current_time.attoseconds());
}
if (LOG_FIFO_VERBOSE) logerror("VOODOO.%d.FIFO:flush_fifos end -- pending command complete at %d.%08X%08X\n", v->index,
- v->pci.op_end_time.seconds, (UINT32)(v->pci.op_end_time.attoseconds >> 32), (UINT32)v->pci.op_end_time.attoseconds);
+ v->pci.op_end_time.seconds(), (UINT32)(v->pci.op_end_time.attoseconds() >> 32), (UINT32)v->pci.op_end_time.attoseconds());
in_flush = FALSE;
}
@@ -3782,8 +3782,8 @@ WRITE32_MEMBER( voodoo_device::voodoo_w )
v->pci.op_end_time = machine().time() + attotime(0, (attoseconds_t)cycles * v->attoseconds_per_cycle);
if (LOG_FIFO_VERBOSE) logerror("VOODOO.%d.FIFO:direct write start at %d.%08X%08X end at %d.%08X%08X\n", v->index,
- machine().time().seconds, (UINT32)(machine().time().attoseconds >> 32), (UINT32)machine().time().attoseconds,
- v->pci.op_end_time.seconds, (UINT32)(v->pci.op_end_time.attoseconds >> 32), (UINT32)v->pci.op_end_time.attoseconds);
+ machine().time().seconds(), (UINT32)(machine().time().attoseconds() >> 32), (UINT32)machine().time().attoseconds(),
+ v->pci.op_end_time.seconds(), (UINT32)(v->pci.op_end_time.attoseconds() >> 32), (UINT32)v->pci.op_end_time.attoseconds());
}
g_profiler.stop();
return;
@@ -6513,5 +6513,25 @@ RASTERIZER_ENTRY( 0x00002425, 0x00045119, 0x000000C1, 0x00010FF9, 0x00000ACD, 0x
RASTERIZER_ENTRY( 0x00482405, 0x00045119, 0x000000C1, 0x00010FF9, 0x000000C4, 0x0C261ACD ) /* * 66 74 3951 */
RASTERIZER_ENTRY( 0x00482405, 0x00045119, 0x00000000, 0x00010FF9, 0x00000ACD, 0x04221AC9 ) /* 70 374 3691 */
RASTERIZER_ENTRY( 0x00482405, 0x00045119, 0x000000C1, 0x00010FF9, 0x00000ACD, 0x0C261ACD ) /* * 20 350 7928 */
+/* virtpool ----> fbzColorPath alphaMode fogMode, fbzMode, texMode0, texMode1 hash */
+RASTERIZER_ENTRY( 0x00002421, 0x00000000, 0x00000000, 0x000B0739, 0x0C261A0F, 0x042210C0 ) /* * 78 2182388 74854175 */
+RASTERIZER_ENTRY( 0x00002421, 0x00000000, 0x00000000, 0x000B07F9, 0x0C261A0F, 0x042210C0 ) /* * 46 114830 6776826 */
+RASTERIZER_ENTRY( 0x00482405, 0x00045110, 0x00000000, 0x000B0739, 0x0C261A0F, 0x042210C0 ) /* * 58 1273673 4513463 */
+RASTERIZER_ENTRY( 0x00482405, 0x00045110, 0x00000000, 0x000B0739, 0x0C261A09, 0x042210C0 ) /* * 46 634995 2275612 */
+RASTERIZER_ENTRY( 0x00002421, 0x00000000, 0x00000000, 0x000B073B, 0x0C261A0F, 0x042210C0 ) /* * 46 26651 1883507 */
+RASTERIZER_ENTRY( 0x00482405, 0x00045110, 0x00000000, 0x000B073B, 0x0C261A0F, 0x042210C0 ) /* * 26 220644 751241 */
+//RASTERIZER_ENTRY( 0x00002421, 0x00445110, 0x00000000, 0x000B073B, 0x0C261A09, 0x042210C0 ) /* * 79 14846 3499120 */
+//RASTERIZER_ENTRY( 0x00002421, 0x00000000, 0x00000000, 0x000B0739, 0x0C261A09, 0x042210C0 ) /* * 66 26665 1583363 */
+//RASTERIZER_ENTRY( 0x00002421, 0x00000000, 0x00000000, 0x000B073B, 0x0C26100F, 0x042210C0 ) /* * 78 33096 957935 */
+//RASTERIZER_ENTRY( 0x00002425, 0x00445110, 0x00000000, 0x000B07F9, 0x0C261A0F, 0x042210C0 ) /* * 38 12494 678029 */
+//RASTERIZER_ENTRY( 0x00800000, 0x00000000, 0x00000000, 0x00000200, 0x00000000, 0x00000000 ) /* * 28 25348 316181 */
+//RASTERIZER_ENTRY( 0x00002421, 0x00000000, 0x00000000, 0x000B0739, 0x0C26100F, 0x042210C0 ) /* * 13 11344 267903 */
+//RASTERIZER_ENTRY( 0x00002421, 0x00000000, 0x00000000, 0x000B073B, 0x0C261A09, 0x042210C0 ) /* * 34 1548 112168 */
+//RASTERIZER_ENTRY( 0x00002421, 0x00000000, 0x00000000, 0x000B07FB, 0x0C26100F, 0x042210C0 ) /* * 35 664 25222 */
+//RASTERIZER_ENTRY( 0x00000002, 0x00000000, 0x00000000, 0x00000300, 0xFFFFFFFF, 0xFFFFFFFF ) /* * 33 512 18393 */
+//RASTERIZER_ENTRY( 0x00002421, 0x00000000, 0x00000000, 0x000B07FB, 0x0C261A0F, 0x042210C0 ) /* * 14 216 16842 */
+//RASTERIZER_ENTRY( 0x00000001, 0x00000000, 0x00000000, 0x00000300, 0x00000800, 0x00000800 ) /* * 87 2 72 */
+//RASTERIZER_ENTRY( 0x00000001, 0x00000000, 0x00000000, 0x00000200, 0x08241A00, 0x08241A00 ) /* * 92 2 8 */
+//RASTERIZER_ENTRY( 0x00000001, 0x00000000, 0x00000000, 0x00000200, 0x00000000, 0x08241A00 ) /* * 93 2 8 */
#endif
diff --git a/src/emu/video/voodoo.h b/src/devices/video/voodoo.h
index dcd03d38876..dcd03d38876 100644
--- a/src/emu/video/voodoo.h
+++ b/src/devices/video/voodoo.h
diff --git a/src/emu/video/voodoo_pci.c b/src/devices/video/voodoo_pci.c
index 7570a007efb..7570a007efb 100644
--- a/src/emu/video/voodoo_pci.c
+++ b/src/devices/video/voodoo_pci.c
diff --git a/src/emu/video/voodoo_pci.h b/src/devices/video/voodoo_pci.h
index a1fe30bd7db..a1fe30bd7db 100644
--- a/src/emu/video/voodoo_pci.h
+++ b/src/devices/video/voodoo_pci.h
diff --git a/src/emu/attotime.c b/src/emu/attotime.c
index 7eec042e8dd..7f7b2005b94 100644
--- a/src/emu/attotime.c
+++ b/src/emu/attotime.c
@@ -20,8 +20,6 @@
const attotime attotime::zero(0, 0);
const attotime attotime::never(ATTOTIME_MAX_SECONDS, 0);
-
-
//**************************************************************************
// CORE MATH FUNCTIONS
//**************************************************************************
@@ -34,7 +32,7 @@ const attotime attotime::never(ATTOTIME_MAX_SECONDS, 0);
attotime &attotime::operator*=(UINT32 factor)
{
// if one of the items is attotime::never, return attotime::never
- if (seconds >= ATTOTIME_MAX_SECONDS)
+ if (m_seconds >= ATTOTIME_MAX_SECONDS)
return *this = never;
// 0 times anything is zero
@@ -43,7 +41,7 @@ attotime &attotime::operator*=(UINT32 factor)
// split attoseconds into upper and lower halves which fit into 32 bits
UINT32 attolo;
- UINT32 attohi = divu_64x32_rem(attoseconds, ATTOSECONDS_PER_SECOND_SQRT, &attolo);
+ UINT32 attohi = divu_64x32_rem(m_attoseconds, ATTOSECONDS_PER_SECOND_SQRT, &attolo);
// scale the lower half, then split into high/low parts
UINT64 temp = mulu_32x32(attolo, factor);
@@ -56,13 +54,13 @@ attotime &attotime::operator*=(UINT32 factor)
temp = divu_64x32_rem(temp, ATTOSECONDS_PER_SECOND_SQRT, &reshi);
// scale the seconds
- temp += mulu_32x32(seconds, factor);
+ temp += mulu_32x32(m_seconds, factor);
if (temp >= ATTOTIME_MAX_SECONDS)
return *this = never;
// build the result
- seconds = temp;
- attoseconds = (attoseconds_t)reslo + mul_32x32(reshi, ATTOSECONDS_PER_SECOND_SQRT);
+ m_seconds = temp;
+ m_attoseconds = (attoseconds_t)reslo + mul_32x32(reshi, ATTOSECONDS_PER_SECOND_SQRT);
return *this;
}
@@ -74,7 +72,7 @@ attotime &attotime::operator*=(UINT32 factor)
attotime &attotime::operator/=(UINT32 factor)
{
// if one of the items is attotime::never, return attotime::never
- if (seconds >= ATTOTIME_MAX_SECONDS)
+ if (m_seconds >= ATTOTIME_MAX_SECONDS)
return *this = never;
// ignore divide by zero
@@ -83,11 +81,11 @@ attotime &attotime::operator/=(UINT32 factor)
// split attoseconds into upper and lower halves which fit into 32 bits
UINT32 attolo;
- UINT32 attohi = divu_64x32_rem(attoseconds, ATTOSECONDS_PER_SECOND_SQRT, &attolo);
+ UINT32 attohi = divu_64x32_rem(m_attoseconds, ATTOSECONDS_PER_SECOND_SQRT, &attolo);
// divide the seconds and get the remainder
UINT32 remainder;
- seconds = divu_64x32_rem(seconds, factor, &remainder);
+ m_seconds = divu_64x32_rem(m_seconds, factor, &remainder);
// combine the upper half of attoseconds with the remainder and divide that
UINT64 temp = (INT64)attohi + mulu_32x32(remainder, ATTOSECONDS_PER_SECOND_SQRT);
@@ -98,12 +96,12 @@ attotime &attotime::operator/=(UINT32 factor)
UINT32 reslo = divu_64x32_rem(temp, factor, &remainder);
// round based on the remainder
- attoseconds = (attoseconds_t)reslo + mulu_32x32(reshi, ATTOSECONDS_PER_SECOND_SQRT);
+ m_attoseconds = (attoseconds_t)reslo + mulu_32x32(reshi, ATTOSECONDS_PER_SECOND_SQRT);
if (remainder >= factor / 2)
- if (++attoseconds >= ATTOSECONDS_PER_SECOND)
+ if (++m_attoseconds >= ATTOSECONDS_PER_SECOND)
{
- attoseconds = 0;
- seconds++;
+ m_attoseconds = 0;
+ m_seconds++;
}
return *this;
}
@@ -126,33 +124,33 @@ const char *attotime::as_string(int precision) const
// case 1: we want no precision; seconds only
else if (precision == 0)
- sprintf(buffer, "%d", seconds);
+ sprintf(buffer, "%d", m_seconds);
// case 2: we want 9 or fewer digits of precision
else if (precision <= 9)
{
- UINT32 upper = attoseconds / ATTOSECONDS_PER_SECOND_SQRT;
+ UINT32 upper = m_attoseconds / ATTOSECONDS_PER_SECOND_SQRT;
int temp = precision;
while (temp < 9)
{
upper /= 10;
temp++;
}
- sprintf(buffer, "%d.%0*d", seconds, precision, upper);
+ sprintf(buffer, "%d.%0*d", m_seconds, precision, upper);
}
// case 3: more than 9 digits of precision
else
{
UINT32 lower;
- UINT32 upper = divu_64x32_rem(attoseconds, ATTOSECONDS_PER_SECOND_SQRT, &lower);
+ UINT32 upper = divu_64x32_rem(m_attoseconds, ATTOSECONDS_PER_SECOND_SQRT, &lower);
int temp = precision;
while (temp < 18)
{
lower /= 10;
temp++;
}
- sprintf(buffer, "%d.%09d%0*d", seconds, upper, precision - 9, lower);
+ sprintf(buffer, "%d.%09d%0*d", m_seconds, upper, precision - 9, lower);
}
return buffer;
}
diff --git a/src/emu/attotime.h b/src/emu/attotime.h
index e2bdf19adaf..0cdaa424ca0 100644
--- a/src/emu/attotime.h
+++ b/src/emu/attotime.h
@@ -39,8 +39,6 @@
#undef min
#undef max
-
-
//**************************************************************************
// CONSTANTS
//**************************************************************************
@@ -90,35 +88,49 @@ class attotime
public:
// construction/destruction
attotime()
- : seconds(0),
- attoseconds(0) { }
+ : m_seconds(0),
+ m_attoseconds(0) { }
attotime(seconds_t secs, attoseconds_t attos)
- : seconds(secs),
- attoseconds(attos) { }
+ : m_seconds(secs),
+ m_attoseconds(attos) { }
attotime(const attotime& that)
- : seconds(that.seconds),
- attoseconds(that.attoseconds) { }
+ : m_seconds(that.m_seconds),
+ m_attoseconds(that.m_attoseconds) { }
// assignment
attotime& operator=(const attotime& that)
{
- this->seconds = that.seconds;
- this->attoseconds = that.attoseconds;
+ this->m_seconds = that.m_seconds;
+ this->m_attoseconds = that.m_attoseconds;
return *this;
}
// queries
- bool is_zero() const { return (seconds == 0 && attoseconds == 0); }
- bool is_never() const { return (seconds >= ATTOTIME_MAX_SECONDS); }
+ bool is_zero() const { return (m_seconds == 0 && m_attoseconds == 0); }
+ bool is_never() const { return (m_seconds >= ATTOTIME_MAX_SECONDS); }
// conversion to other forms
- double as_double() const { return double(seconds) + ATTOSECONDS_TO_DOUBLE(attoseconds); }
+ double as_double() const { return double(m_seconds) + ATTOSECONDS_TO_DOUBLE(m_attoseconds); }
attoseconds_t as_attoseconds() const;
UINT64 as_ticks(UINT32 frequency) const;
const char *as_string(int precision = 9) const;
+ // Needed by gba.c FIXME: this shouldn't be necessary?
+
+ void normalize()
+ {
+ while (m_attoseconds >= ATTOSECONDS_PER_SECOND)
+ {
+ m_seconds++;
+ m_attoseconds -= ATTOSECONDS_PER_SECOND;
+ }
+ }
+
+ attoseconds_t attoseconds() const { return m_attoseconds; }
+ seconds_t seconds() const { return m_seconds; }
+
// conversion from other forms
static attotime from_double(double _time);
static attotime from_ticks(UINT64 ticks, UINT32 frequency);
@@ -135,8 +147,8 @@ public:
attotime &operator/=(UINT32 factor);
// members
- seconds_t seconds;
- attoseconds_t attoseconds;
+ seconds_t m_seconds;
+ attoseconds_t m_attoseconds;
// constants
static const attotime never;
@@ -159,22 +171,22 @@ inline attotime operator+(const attotime &left, const attotime &right)
attotime result;
// if one of the items is never, return never
- if (left.seconds >= ATTOTIME_MAX_SECONDS || right.seconds >= ATTOTIME_MAX_SECONDS)
+ if (left.m_seconds >= ATTOTIME_MAX_SECONDS || right.m_seconds >= ATTOTIME_MAX_SECONDS)
return attotime::never;
// add the seconds and attoseconds
- result.attoseconds = left.attoseconds + right.attoseconds;
- result.seconds = left.seconds + right.seconds;
+ result.m_attoseconds = left.m_attoseconds + right.m_attoseconds;
+ result.m_seconds = left.m_seconds + right.m_seconds;
// normalize and return
- if (result.attoseconds >= ATTOSECONDS_PER_SECOND)
+ if (result.m_attoseconds >= ATTOSECONDS_PER_SECOND)
{
- result.attoseconds -= ATTOSECONDS_PER_SECOND;
- result.seconds++;
+ result.m_attoseconds -= ATTOSECONDS_PER_SECOND;
+ result.m_seconds++;
}
// overflow
- if (result.seconds >= ATTOTIME_MAX_SECONDS)
+ if (result.m_seconds >= ATTOTIME_MAX_SECONDS)
return attotime::never;
return result;
}
@@ -182,22 +194,22 @@ inline attotime operator+(const attotime &left, const attotime &right)
inline attotime &attotime::operator+=(const attotime &right)
{
// if one of the items is never, return never
- if (this->seconds >= ATTOTIME_MAX_SECONDS || right.seconds >= ATTOTIME_MAX_SECONDS)
+ if (this->m_seconds >= ATTOTIME_MAX_SECONDS || right.m_seconds >= ATTOTIME_MAX_SECONDS)
return *this = never;
// add the seconds and attoseconds
- attoseconds += right.attoseconds;
- seconds += right.seconds;
+ m_attoseconds += right.m_attoseconds;
+ m_seconds += right.m_seconds;
// normalize and return
- if (this->attoseconds >= ATTOSECONDS_PER_SECOND)
+ if (this->m_attoseconds >= ATTOSECONDS_PER_SECOND)
{
- this->attoseconds -= ATTOSECONDS_PER_SECOND;
- this->seconds++;
+ this->m_attoseconds -= ATTOSECONDS_PER_SECOND;
+ this->m_seconds++;
}
// overflow
- if (this->seconds >= ATTOTIME_MAX_SECONDS)
+ if (this->m_seconds >= ATTOTIME_MAX_SECONDS)
return *this = never;
return *this;
}
@@ -213,18 +225,18 @@ inline attotime operator-(const attotime &left, const attotime &right)
attotime result;
// if time1 is never, return never
- if (left.seconds >= ATTOTIME_MAX_SECONDS)
+ if (left.m_seconds >= ATTOTIME_MAX_SECONDS)
return attotime::never;
// add the seconds and attoseconds
- result.attoseconds = left.attoseconds - right.attoseconds;
- result.seconds = left.seconds - right.seconds;
+ result.m_attoseconds = left.m_attoseconds - right.m_attoseconds;
+ result.m_seconds = left.m_seconds - right.m_seconds;
// normalize and return
- if (result.attoseconds < 0)
+ if (result.m_attoseconds < 0)
{
- result.attoseconds += ATTOSECONDS_PER_SECOND;
- result.seconds--;
+ result.m_attoseconds += ATTOSECONDS_PER_SECOND;
+ result.m_seconds--;
}
return result;
}
@@ -232,18 +244,18 @@ inline attotime operator-(const attotime &left, const attotime &right)
inline attotime &attotime::operator-=(const attotime &right)
{
// if time1 is never, return never
- if (this->seconds >= ATTOTIME_MAX_SECONDS)
+ if (this->m_seconds >= ATTOTIME_MAX_SECONDS)
return *this = never;
// add the seconds and attoseconds
- attoseconds -= right.attoseconds;
- seconds -= right.seconds;
+ m_attoseconds -= right.m_attoseconds;
+ m_seconds -= right.m_seconds;
// normalize and return
- if (this->attoseconds < 0)
+ if (this->m_attoseconds < 0)
{
- this->attoseconds += ATTOSECONDS_PER_SECOND;
- this->seconds--;
+ this->m_attoseconds += ATTOSECONDS_PER_SECOND;
+ this->m_seconds--;
}
return *this;
}
@@ -284,32 +296,32 @@ inline attotime operator/(const attotime &left, UINT32 factor)
inline bool operator==(const attotime &left, const attotime &right)
{
- return (left.seconds == right.seconds && left.attoseconds == right.attoseconds);
+ return (left.m_seconds == right.m_seconds && left.m_attoseconds == right.m_attoseconds);
}
inline bool operator!=(const attotime &left, const attotime &right)
{
- return (left.seconds != right.seconds || left.attoseconds != right.attoseconds);
+ return (left.m_seconds != right.m_seconds || left.m_attoseconds != right.m_attoseconds);
}
inline bool operator<(const attotime &left, const attotime &right)
{
- return (left.seconds < right.seconds || (left.seconds == right.seconds && left.attoseconds < right.attoseconds));
+ return (left.m_seconds < right.m_seconds || (left.m_seconds == right.m_seconds && left.m_attoseconds < right.m_attoseconds));
}
inline bool operator<=(const attotime &left, const attotime &right)
{
- return (left.seconds < right.seconds || (left.seconds == right.seconds && left.attoseconds <= right.attoseconds));
+ return (left.m_seconds < right.m_seconds || (left.m_seconds == right.m_seconds && left.m_attoseconds <= right.m_attoseconds));
}
inline bool operator>(const attotime &left, const attotime &right)
{
- return (left.seconds > right.seconds || (left.seconds == right.seconds && left.attoseconds > right.attoseconds));
+ return (left.m_seconds > right.m_seconds || (left.m_seconds == right.m_seconds && left.m_attoseconds > right.m_attoseconds));
}
inline bool operator>=(const attotime &left, const attotime &right)
{
- return (left.seconds > right.seconds || (left.seconds == right.seconds && left.attoseconds >= right.attoseconds));
+ return (left.m_seconds > right.m_seconds || (left.m_seconds == right.m_seconds && left.m_attoseconds >= right.m_attoseconds));
}
@@ -319,11 +331,11 @@ inline bool operator>=(const attotime &left, const attotime &right)
inline attotime min(const attotime &left, const attotime &right)
{
- if (left.seconds > right.seconds)
+ if (left.m_seconds > right.m_seconds)
return right;
- if (left.seconds < right.seconds)
+ if (left.m_seconds < right.m_seconds)
return left;
- if (left.attoseconds > right.attoseconds)
+ if (left.m_attoseconds > right.m_attoseconds)
return right;
return left;
}
@@ -335,11 +347,11 @@ inline attotime min(const attotime &left, const attotime &right)
inline attotime max(const attotime &left, const attotime &right)
{
- if (left.seconds > right.seconds)
+ if (left.m_seconds > right.m_seconds)
return left;
- if (left.seconds < right.seconds)
+ if (left.m_seconds < right.m_seconds)
return right;
- if (left.attoseconds > right.attoseconds)
+ if (left.m_attoseconds > right.m_attoseconds)
return left;
return right;
}
@@ -353,15 +365,15 @@ inline attotime max(const attotime &left, const attotime &right)
inline attoseconds_t attotime::as_attoseconds() const
{
// positive values between 0 and 1 second
- if (seconds == 0)
- return attoseconds;
+ if (m_seconds == 0)
+ return m_attoseconds;
// negative values between -1 and 0 seconds
- else if (seconds == -1)
- return attoseconds - ATTOSECONDS_PER_SECOND;
+ else if (m_seconds == -1)
+ return m_attoseconds - ATTOSECONDS_PER_SECOND;
// out-of-range positive values
- else if (seconds > 0)
+ else if (m_seconds > 0)
return ATTOSECONDS_PER_SECOND;
// out-of-range negative values
@@ -377,8 +389,8 @@ inline attoseconds_t attotime::as_attoseconds() const
inline UINT64 attotime::as_ticks(UINT32 frequency) const
{
- UINT32 fracticks = (attotime(0, attoseconds) * frequency).seconds;
- return mulu_32x32(seconds, frequency) + fracticks;
+ UINT32 fracticks = (attotime(0, m_attoseconds) * frequency).m_seconds;
+ return mulu_32x32(m_seconds, frequency) + fracticks;
}
diff --git a/src/emu/audit.c b/src/emu/audit.c
index b8ab208d6a0..f6d90cee7d3 100644
--- a/src/emu/audit.c
+++ b/src/emu/audit.c
@@ -14,6 +14,13 @@
#include "chd.h"
#include "sound/samples.h"
+// for now, make buggy GCC/Mingw STFU about I64FMT
+#if (defined(__MINGW32__) && (__GNUC__ >= 5))
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wformat"
+#pragma GCC diagnostic ignored "-Wformat-extra-args"
+#endif
+
//**************************************************************************
// CORE FUNCTIONS
@@ -607,3 +614,7 @@ audit_record::audit_record(const char *name, media_type type)
m_shared_device(NULL)
{
}
+
+#if (defined(__MINGW32__) && (__GNUC__ >= 5))
+#pragma GCC diagnostic pop
+#endif
diff --git a/src/emu/bus/pc_kbd/iskr1030.c b/src/emu/bus/pc_kbd/iskr1030.c
deleted file mode 100644
index a4c2026cdce..00000000000
--- a/src/emu/bus/pc_kbd/iskr1030.c
+++ /dev/null
@@ -1,453 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Sergey Svishchev
-/**********************************************************************
-
- Iskra-1030 and -1031 XX-key keyboard emulation
-
-*********************************************************************/
-
-#include "iskr1030.h"
-
-#define VERBOSE_DBG 1 /* general debug messages */
-
-#define DBG_LOG(N,M,A) \
- do { \
- if(VERBOSE_DBG>=N) \
- { \
- logerror("%11.6f at %s: ",machine().time().as_double(),machine().describe_context()); \
- logerror A; \
- } \
- } while (0)
-
-
-
-//**************************************************************************
-// MACROS / CONSTANTS
-//**************************************************************************
-
-#define I8048_TAG "i8048"
-
-
-
-//**************************************************************************
-// DEVICE DEFINITIONS
-//**************************************************************************
-
-const device_type PC_KBD_ISKR_1030 = &device_creator<iskr_1030_keyboard_device>;
-
-
-//-------------------------------------------------
-// ROM( iskr_1030_keyboard )
-//-------------------------------------------------
-
-ROM_START( iskr_1030_keyboard )
- ROM_REGION( 0x800, I8048_TAG, 0 )
- // XXX add P/N etc
- ROM_LOAD( "i1030.bin", 0x000, 0x800, CRC(7cac9c4b) SHA1(03959d3350e012ebfe61cee9c062b6c1fdd8766e) )
-ROM_END
-
-
-//-------------------------------------------------
-// rom_region - device-specific ROM region
-//-------------------------------------------------
-
-const rom_entry *iskr_1030_keyboard_device::device_rom_region() const
-{
- return ROM_NAME( iskr_1030_keyboard );
-}
-
-
-//-------------------------------------------------
-// ADDRESS_MAP( kb_io )
-//-------------------------------------------------
-
-static ADDRESS_MAP_START( iskr_1030_keyboard_io, AS_IO, 8, iskr_1030_keyboard_device )
- AM_RANGE(0x00, 0xFF) AM_RAM
- AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_READWRITE(p1_r, p1_w)
- AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_WRITE(p2_w)
-// AM_RANGE(MCS48_PORT_T0, MCS48_PORT_T0) AM_READ(t0_r)
- AM_RANGE(MCS48_PORT_T1, MCS48_PORT_T1) AM_READ(t1_r)
-ADDRESS_MAP_END
-
-
-//-------------------------------------------------
-// MACHINE_DRIVER( iskr_1030_keyboard )
-//-------------------------------------------------
-
-static MACHINE_CONFIG_FRAGMENT( iskr_1030_keyboard )
- // XXX check
- MCFG_CPU_ADD(I8048_TAG, I8048, MCS48_LC_CLOCK(IND_U(47), CAP_P(20.7)))
- MCFG_CPU_IO_MAP(iskr_1030_keyboard_io)
-MACHINE_CONFIG_END
-
-
-//-------------------------------------------------
-// machine_config_additions - device-specific
-// machine configurations
-//-------------------------------------------------
-
-machine_config_constructor iskr_1030_keyboard_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME( iskr_1030_keyboard );
-}
-
-
-//-------------------------------------------------
-// INPUT_PORTS( iskr_1030_keyboard )
-//-------------------------------------------------
-
-INPUT_PORTS_START( iskr_1030_keyboard )
- PORT_START("MD00")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_TAB) PORT_CHAR(UCHAR_MAMEKEY(TAB))
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A')
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Z) PORT_CHAR('z') PORT_CHAR('Z')
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("?59?") // 0x59 = Inf
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS_PAD) PORT_CHAR(UCHAR_MAMEKEY(MINUS_PAD))
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("MD01")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ESC) PORT_CHAR(UCHAR_MAMEKEY(ESC))
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Q) PORT_CHAR('q') PORT_CHAR('Q')
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_S) PORT_CHAR('s') PORT_CHAR('S')
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_X) PORT_CHAR('x') PORT_CHAR('X')
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ')
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 7 Home") PORT_CODE(KEYCODE_7_PAD) PORT_CHAR(UCHAR_MAMEKEY(7_PAD))
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("MD02")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!')
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W')
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_D) PORT_CHAR('d') PORT_CHAR('D')
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_C) PORT_CHAR('c') PORT_CHAR('C')
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_RCONTROL) // 0x5a = R/L (R)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 8 " UTF8_UP) PORT_CODE(KEYCODE_8_PAD) PORT_CHAR(UCHAR_MAMEKEY(8_PAD))
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("MD03")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('@')
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_E) PORT_CHAR('e') PORT_CHAR('E')
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F) PORT_CHAR('f') PORT_CHAR('F')
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_V) PORT_CHAR('v') PORT_CHAR('V')
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F12) PORT_CHAR(UCHAR_MAMEKEY(F12)) // 0x5b = Rus
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 9 PgUp") PORT_CODE(KEYCODE_9_PAD) PORT_CHAR(UCHAR_MAMEKEY(9_PAD))
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("MD04")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#')
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_R) PORT_CHAR('r') PORT_CHAR('R')
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_G) PORT_CHAR('g') PORT_CHAR('G')
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_B) PORT_CHAR('b') PORT_CHAR('B')
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F1) PORT_CHAR(UCHAR_MAMEKEY(F1))
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 4 " UTF8_LEFT) PORT_CODE(KEYCODE_4_PAD) PORT_CHAR(UCHAR_MAMEKEY(4_PAD))
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("MD05")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$')
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_T) PORT_CHAR('t') PORT_CHAR('T')
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_H) PORT_CHAR('h') PORT_CHAR('H')
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_N) PORT_CHAR('n') PORT_CHAR('N')
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F2) PORT_CHAR(UCHAR_MAMEKEY(F2))
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5_PAD) PORT_CHAR(UCHAR_MAMEKEY(5_PAD))
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("MD06")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%')
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y')
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_J) PORT_CHAR('j') PORT_CHAR('J')
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M')
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F3) PORT_CHAR(UCHAR_MAMEKEY(F3))
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 6 " UTF8_RIGHT) PORT_CODE(KEYCODE_6_PAD) PORT_CHAR(UCHAR_MAMEKEY(6_PAD))
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("MD07")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('^')
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_U) PORT_CHAR('u') PORT_CHAR('U')
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_K) PORT_CHAR('k') PORT_CHAR('K')
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_TILDE) PORT_CHAR('`') PORT_CHAR('~')
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F4) PORT_CHAR(UCHAR_MAMEKEY(F4))
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 1 End") PORT_CODE(KEYCODE_1_PAD) PORT_CHAR(UCHAR_MAMEKEY(1_PAD))
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("MD08")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('&')
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_I) PORT_CHAR('i') PORT_CHAR('I')
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L')
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("?2a?")
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F5) PORT_CHAR(UCHAR_MAMEKEY(F5))
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 2 " UTF8_DOWN) PORT_CODE(KEYCODE_2_PAD) PORT_CHAR(UCHAR_MAMEKEY(2_PAD))
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("MD09")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('*')
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O')
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('[') PORT_CHAR('{')
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("?5c?") // 0x5c = YO
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F6) PORT_CHAR(UCHAR_MAMEKEY(F6))
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 3 PgDn") PORT_CODE(KEYCODE_3_PAD) PORT_CHAR(UCHAR_MAMEKEY(3_PAD))
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("MD10")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR('(')
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_P) PORT_CHAR('p') PORT_CHAR('P')
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(']') PORT_CHAR('}')
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<')
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F7) PORT_CHAR(UCHAR_MAMEKEY(F7))
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 0 Ins") PORT_CODE(KEYCODE_0_PAD) PORT_CHAR(UCHAR_MAMEKEY(0_PAD))
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("MD11")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR(')')
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("?36?")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR(':')
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>')
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F8) PORT_CHAR(UCHAR_MAMEKEY(F8))
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad . Del") PORT_CODE(KEYCODE_DEL_PAD) PORT_CHAR(UCHAR_MAMEKEY(DEL_PAD))
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("MD12")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('_')
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("?3a?")
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR('\'') PORT_CHAR('"')
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) // 0x55
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F9) PORT_CHAR(UCHAR_MAMEKEY(F9))
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_PLUS_PAD) PORT_CHAR(UCHAR_MAMEKEY(PLUS_PAD))
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("MD13")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=') PORT_CHAR('+')
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?')
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_CAPSLOCK) PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK)) // 0x56
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F10) PORT_CHAR(UCHAR_MAMEKEY(F10))
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("MD14")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('\\') PORT_CHAR('|')
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_PRTSCR)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_LALT) PORT_CHAR(UCHAR_MAMEKEY(LALT))
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F11) PORT_CHAR(UCHAR_MAMEKEY(F11)) // 0x57 = Lat
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_NUMLOCK) PORT_CHAR(UCHAR_MAMEKEY(NUMLOCK))
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
-
- PORT_START("MD15")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_SHIFT_2)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1) // 0x54
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_RALT) // 0x58 = R/L (L)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Scroll Lock Break") PORT_CODE(KEYCODE_SCRLOCK) PORT_CHAR(UCHAR_MAMEKEY(SCRLOCK))
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
-INPUT_PORTS_END
-
-
-//-------------------------------------------------
-// input_ports - device-specific input ports
-//-------------------------------------------------
-
-ioport_constructor iskr_1030_keyboard_device::device_input_ports() const
-{
- return INPUT_PORTS_NAME( iskr_1030_keyboard );
-}
-
-
-
-//**************************************************************************
-// LIVE DEVICE
-//**************************************************************************
-
-//-------------------------------------------------
-// iskr_1030_keyboard_device - constructor
-//-------------------------------------------------
-
-iskr_1030_keyboard_device::iskr_1030_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
- : device_t(mconfig, PC_KBD_ISKR_1030, "Iskra-1030 Keyboard", tag, owner, clock, "kb_iskr1030", __FILE__),
- device_pc_kbd_interface(mconfig, *this),
- m_maincpu(*this, I8048_TAG),
- m_md00(*this, "MD00"),
- m_md01(*this, "MD01"),
- m_md02(*this, "MD02"),
- m_md03(*this, "MD03"),
- m_md04(*this, "MD04"),
- m_md05(*this, "MD05"),
- m_md06(*this, "MD06"),
- m_md07(*this, "MD07"),
- m_md08(*this, "MD08"),
- m_md09(*this, "MD09"),
- m_md10(*this, "MD10"),
- m_md11(*this, "MD11"),
- m_md12(*this, "MD12"),
- m_md13(*this, "MD13"),
- m_md14(*this, "MD14"),
- m_md15(*this, "MD15"),
- m_p1(0),
- m_p2(0),
- m_q(0)
-{
-}
-
-
-//-------------------------------------------------
-// device_start - device-specific startup
-//-------------------------------------------------
-
-void iskr_1030_keyboard_device::device_start()
-{
- set_pc_kbdc_device();
-
- // state saving
- save_item(NAME(m_p1));
- save_item(NAME(m_p2));
- save_item(NAME(m_q));
-}
-
-
-//-------------------------------------------------
-// device_reset - device-specific reset
-//-------------------------------------------------
-
-void iskr_1030_keyboard_device::device_reset()
-{
-}
-
-
-//-------------------------------------------------
-// clock_write -
-//-------------------------------------------------
-
-WRITE_LINE_MEMBER( iskr_1030_keyboard_device::clock_write )
-{
- DBG_LOG(1,0,( "%s: clock write %d\n", tag(), state));
- m_maincpu->set_input_line(MCS48_INPUT_IRQ, state ? CLEAR_LINE : ASSERT_LINE);
-}
-
-
-//-------------------------------------------------
-// data_write -
-//-------------------------------------------------
-
-WRITE_LINE_MEMBER( iskr_1030_keyboard_device::data_write )
-{
- DBG_LOG(1,0,( "%s: data write %d\n", tag(), state));
-}
-
-
-//-------------------------------------------------
-// t0_r - XXX ENT0 CLK
-//-------------------------------------------------
-
-READ8_MEMBER( iskr_1030_keyboard_device::t0_r )
-{
- return 0;
-// return clock_signal();
-}
-
-
-//-------------------------------------------------
-// t1_r - OK
-//-------------------------------------------------
-
-READ8_MEMBER( iskr_1030_keyboard_device::t1_r )
-{
- UINT8 data = data_signal();
-
- DBG_LOG(2,0,( "%s: t1_r %d\n", tag(), data));
-
- return data;
-}
-
-
-//-------------------------------------------------
-// p1_r -
-//-------------------------------------------------
-
-READ8_MEMBER( iskr_1030_keyboard_device::p1_r )
-{
- /*
-
- bit description
-
- 0 -REQ IN
- 1 DATA IN
- 2
- 3
- 4
- 5
- 6
- 7
-
- */
-
- UINT8 data = 0;
-
- DBG_LOG(1,0,( "%s: p1_r %02x\n", tag(), data));
-
- return data;
-}
-
-
-//-------------------------------------------------
-// p2_w -
-//-------------------------------------------------
-
-WRITE8_MEMBER( iskr_1030_keyboard_device::p2_w )
-{
- /*
- bit description
-
- 0
- 1
- 2
- 3
- 4
- 5 LED XXX
- 6 LED XXX
- 7 LED XXX
- */
- DBG_LOG(1,0,( "%s: p2_w %02x\n", tag(), data));
-
- m_p1 = data;
-}
-
-
-//-------------------------------------------------
-// p1_w - OK
-//-------------------------------------------------
-
-WRITE8_MEMBER( iskr_1030_keyboard_device::p1_w )
-{
- /*
- bit description
-
- 0 XXX
- 1 XXX
- 2 XXX
- 3 XXX
- 4 CLOCK out
- 5 DATA out (inverted!)
- 6 XXX
- 7 XXX
- */
- DBG_LOG(1,0,( "%s: p1_w %02x (clk %d data %d)\n", tag(), data, BIT(data, 4), BIT(data, 5)));
-
- m_pc_kbdc->data_write_from_kb(BIT(data, 5));
- m_pc_kbdc->clock_write_from_kb(BIT(data, 4));
-}
diff --git a/src/emu/bus/scsi/omti5100.c b/src/emu/bus/scsi/omti5100.c
deleted file mode 100644
index 9e10538102d..00000000000
--- a/src/emu/bus/scsi/omti5100.c
+++ /dev/null
@@ -1,94 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:smf
-#include "omti5100.h"
-
-#define OMTI_STATUS_NOT_READY 0x04
-#define OMTI_READ_DATA_BUFFER 0xec
-#define OMTI_ASSIGN_DISK_PARAM 0xc2
-
-const device_type OMTI5100 = &device_creator<omti5100_device>;
-
-#if 0
-ROM_START( omti5100 )
- ROM_REGION(0x1000, "mcu", 0) // Hitachi Z8
- ROM_LOAD("100240-N.7a", 0x0000, 0x1000, CRC(d227d6cb) SHA1(3d6140764d3d043428c941826370ebf1597c63bd))
-ROM_END
-
-const rom_entry *omti5100_device::device_rom_region() const
-{
- return ROM_NAME( omti5100 );
-}
-#endif
-
-omti5100_device::omti5100_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
- : scsihd_device(mconfig, OMTI5100, "OMTI 5100", tag, owner, clock, "omti5100", __FILE__),
- m_image0(*this, "image0"),
- m_image1(*this, "image1")
-{
-}
-
-void omti5100_device::device_start()
-{
- m_image = m_image0;
- scsihle_device::device_start();
-}
-
-void omti5100_device::ExecCommand()
-{
- harddisk_image_device *image = ((command[1] >> 5) & 1) ? m_image1 : m_image0;
- switch(command[0])
- {
- case OMTI_READ_DATA_BUFFER:
- m_phase = SCSI_PHASE_DATAIN;
- m_status_code = SCSI_STATUS_CODE_GOOD;
- m_transfer_length = 512;
- break;
- case OMTI_ASSIGN_DISK_PARAM:
- m_phase = SCSI_PHASE_DATAOUT;
- m_status_code = SCSI_STATUS_CODE_GOOD;
- m_transfer_length = 10;
- break;
- default:
- if(!image)
- {
- m_phase = SCSI_PHASE_STATUS;
- m_status_code = SCSI_STATUS_CODE_CHECK_CONDITION;
- m_sense_asc = OMTI_STATUS_NOT_READY;
- m_transfer_length = 0;
- }
- else
- {
- SetDevice(image);
- scsihd_device::ExecCommand();
- }
- break;
- }
-}
-
-void omti5100_device::ReadData( UINT8 *data, int dataLength )
-{
- switch( command[ 0 ] )
- {
- case OMTI_READ_DATA_BUFFER:
- data[0] = '5';
- data[1] = '1';
- data[2] = '0';
- data[3] = '0';
- break;
-
- default:
- scsihd_device::ReadData( data, dataLength );
- break;
- }
-}
-
-static MACHINE_CONFIG_FRAGMENT( omti5100 )
- MCFG_HARDDISK_ADD("image0")
- MCFG_HARDDISK_ADD("image1")
-MACHINE_CONFIG_END
-
-
-machine_config_constructor omti5100_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME( omti5100 );
-}
diff --git a/src/emu/clifront.c b/src/emu/clifront.c
index 90f63bde35e..303ab462a54 100644
--- a/src/emu/clifront.c
+++ b/src/emu/clifront.c
@@ -310,7 +310,7 @@ void cli_frontend::listfull(const char *gamename)
// iterate through drivers and output the info
while (drivlist.next())
- if ((drivlist.driver().flags & GAME_NO_STANDALONE) == 0)
+ if ((drivlist.driver().flags & MACHINE_NO_STANDALONE) == 0)
osd_printf_info("%-18s\"%s\"\n", drivlist.driver().name, drivlist.driver().description);
}
@@ -350,7 +350,7 @@ void cli_frontend::listclones(const char *gamename)
{
// if we have a non-bios clone and it matches, keep it
int clone_of = drivlist.clone();
- if (clone_of != -1 && (drivlist.driver(clone_of).flags & GAME_IS_BIOS_ROOT) == 0)
+ if (clone_of != -1 && (drivlist.driver(clone_of).flags & MACHINE_IS_BIOS_ROOT) == 0)
if (drivlist.matches(gamename, drivlist.driver(clone_of).name))
drivlist.include();
}
@@ -374,7 +374,7 @@ void cli_frontend::listclones(const char *gamename)
while (drivlist.next())
{
int clone_of = drivlist.clone();
- if (clone_of != -1 && (drivlist.driver(clone_of).flags & GAME_IS_BIOS_ROOT) == 0)
+ if (clone_of != -1 && (drivlist.driver(clone_of).flags & MACHINE_IS_BIOS_ROOT) == 0)
osd_printf_info("%-16s %-8s\n", drivlist.driver().name, drivlist.driver(clone_of).name);
}
}
diff --git a/src/emu/cpu/arcompact/arcompact_make.py b/src/emu/cpu/arcompact/arcompact_make.py
deleted file mode 100644
index dba815b9f70..00000000000
--- a/src/emu/cpu/arcompact/arcompact_make.py
+++ /dev/null
@@ -1,433 +0,0 @@
-#!/usr/bin/python
-
-import sys
-
-def EmitGroup04_Handle_NZ_Flags(f, funcname, opname):
- print >>f, " if (result & 0x80000000) { STATUS32_SET_N; }"
- print >>f, " else { STATUS32_CLEAR_N; }"
- print >>f, " if (result == 0x00000000) { STATUS32_SET_Z; }"
- print >>f, " else { STATUS32_CLEAR_Z; }"
-
-def EmitGroup04_Handle_NZC_LSR1_Flags(f, funcname, opname):
- print >>f, " if (result & 0x80000000) { STATUS32_SET_N; }"
- print >>f, " else { STATUS32_CLEAR_N; }"
- print >>f, " if (result == 0x00000000) { STATUS32_SET_Z; }"
- print >>f, " else { STATUS32_CLEAR_Z; }"
- print >>f, " if (c == 0x00000001) { STATUS32_SET_C; }"
- print >>f, " else { STATUS32_CLEAR_C; }"
-
-def EmitGroup04_Handle_NZCV_ADD_Flags(f, funcname, opname):
- print >>f, " if (result & 0x80000000) { STATUS32_SET_N; }"
- print >>f, " else { STATUS32_CLEAR_N; }"
- print >>f, " if (result == 0x00000000) { STATUS32_SET_Z; }"
- print >>f, " else { STATUS32_CLEAR_Z; }"
- print >>f, " if ((b & 0x80000000) == (c & 0x80000000))"
- print >>f, " {"
- print >>f, " if ((result & 0x80000000) != (b & 0x80000000))"
- print >>f, " {"
- print >>f, " STATUS32_SET_V;"
- print >>f, " }"
- print >>f, " else"
- print >>f, " {"
- print >>f, " STATUS32_CLEAR_V;"
- print >>f, " }"
- print >>f, " }"
- print >>f, " if (b < c)"
- print >>f, " {"
- print >>f, " STATUS32_SET_C;"
- print >>f, " }"
- print >>f, " else"
- print >>f, " {"
- print >>f, " STATUS32_CLEAR_C;"
- print >>f, " }"
-
-
-def EmitGroup04_no_Flags(f, funcname, opname):
- print >>f, " // no flag changes"
-
-def EmitGroup04_unsupported_Flags(f, funcname, opname):
- print >>f, " arcompact_fatal(\"arcompact_handle%s (%s) (F set)\\n\"); // not yet supported" % (funcname, opname)
-
-def EmitGroup04_Flaghandler(f,funcname, opname, flagcondition, flaghandler):
- if flagcondition == -1:
- print >>f, " if (F)"
- print >>f, " {"
- flaghandler(f, funcname, opname)
- print >>f, " }"
- elif flagcondition == 0:
- print >>f, " if (0)"
- print >>f, " {"
- flaghandler(f, funcname, opname)
- print >>f, " }"
- elif flagcondition == 1:
- print >>f, " if (1)"
- print >>f, " {"
- flaghandler(f, funcname, opname)
- print >>f, " }"
-
-def EmitGroup04_u5fragment(f,funcname, opname, opexecute, opwrite, opwrite_alt, ignore_a, breg_is_dst_only, flagcondition, flaghandler):
- print >>f, " int size = 4;"
-
- if breg_is_dst_only == 0:
- print >>f, " UINT32 limm = 0;"
-
- print >>f, "/* int got_limm = 0; */"
- print >>f, " "
- print >>f, " COMMON32_GET_breg;"
-
- if flagcondition == -1:
- print >>f, " COMMON32_GET_F;"
-
- print >>f, " COMMON32_GET_u6;"
-
- if ignore_a == 0:
- print >>f, " COMMON32_GET_areg;"
- elif ignore_a == 1:
- print >>f, " //COMMON32_GET_areg; // areg is reserved / not used"
- elif ignore_a == 2:
- print >>f, " //COMMON32_GET_areg; // areg bits already used as opcode select"
- elif ignore_a == 3:
- print >>f, " //COMMON32_GET_areg; // areg bits already used as condition code select"
- print >>f, " "
-
- print >>f, " UINT32 c;"
- if breg_is_dst_only == 0:
- print >>f, " UINT32 b;"
- print >>f, " "
- print >>f, " /* is having b as LIMM valid here? LIMM vs. fixed u6 value makes no sense */"
- print >>f, " if (breg == LIMM_REG)"
- print >>f, " {"
- print >>f, " GET_LIMM_32;"
- print >>f, " size = 8;"
- print >>f, "/* got_limm = 1; */"
- print >>f, " b = limm;"
- print >>f, " }"
- print >>f, " else"
- print >>f, " {"
- print >>f, " b = m_regs[breg];"
- print >>f, " }"
-
- print >>f, " "
- print >>f, " c = u;"
- print >>f, " "
- print >>f, " /* todo: if areg = LIMM then there is no result (but since that register can never be read, I guess it doesn't matter if we store it there anyway?) */"
-
-def EmitGroup04(f,funcname, opname, opexecute, opwrite, opwrite_alt, ignore_a, breg_is_dst_only, flagcondition, flaghandler):
- # the mode 0x00 handler
- print >>f, "ARCOMPACT_RETTYPE arcompact_device::arcompact_handle%s_p00(OPS_32)" % funcname
- print >>f, "{"
- print >>f, " int size = 4;"
-
- print >>f, " UINT32 limm = 0;"
-
- print >>f, " int got_limm = 0;"
- print >>f, " "
- print >>f, " COMMON32_GET_breg;"
-
- if flagcondition == -1:
- print >>f, " COMMON32_GET_F;"
-
- print >>f, " COMMON32_GET_creg;"
-
- if ignore_a == 0:
- print >>f, " COMMON32_GET_areg;"
- elif ignore_a == 1:
- print >>f, " //COMMON32_GET_areg; // areg is reserved / not used"
- elif ignore_a == 2:
- print >>f, " //COMMON32_GET_areg; // areg bits already used as opcode select"
-
- print >>f, " "
-
- print >>f, " UINT32 c;"
- if breg_is_dst_only == 0:
- print >>f, " UINT32 b;"
- print >>f, " "
- print >>f, " if (breg == LIMM_REG)"
- print >>f, " {"
- print >>f, " GET_LIMM_32;"
- print >>f, " size = 8;"
- print >>f, " got_limm = 1;"
- print >>f, " b = limm;"
- print >>f, " }"
- print >>f, " else"
- print >>f, " {"
- print >>f, " b = m_regs[breg];"
- print >>f, " }"
-
- print >>f, " "
- print >>f, " if (creg == LIMM_REG)"
- print >>f, " {"
- print >>f, " if (!got_limm)"
- print >>f, " {"
- print >>f, " GET_LIMM_32;"
- print >>f, " size = 8;"
- print >>f, " }"
- print >>f, " c = limm;"
- print >>f, " }"
- print >>f, " else"
- print >>f, " {"
- print >>f, " c = m_regs[creg];"
- print >>f, " }"
- print >>f, " /* todo: is the limm, limm syntax valid? (it's pointless.) */"
- print >>f, " /* todo: if areg = LIMM then there is no result (but since that register can never be read, I guess it doesn't matter if we store it there anyway?) */"
- print >>f, " %s" % opexecute
- print >>f, " %s" % opwrite
- print >>f, " "
- EmitGroup04_Flaghandler(f,funcname,opname,flagcondition,flaghandler)
- print >>f, " return m_pc + (size >> 0);"
- print >>f, "}"
- print >>f, ""
- print >>f, ""
- # the mode 0x01 handler
- print >>f, "ARCOMPACT_RETTYPE arcompact_device::arcompact_handle%s_p01(OPS_32)" % funcname
- print >>f, "{"
- EmitGroup04_u5fragment(f,funcname, opname, opexecute, opwrite, opwrite_alt, ignore_a, breg_is_dst_only, flagcondition, flaghandler)
- print >>f, " %s" % opexecute
- print >>f, " %s" % opwrite
- print >>f, " "
- EmitGroup04_Flaghandler(f,funcname,opname,flagcondition,flaghandler)
- print >>f, " return m_pc + (size >> 0);"
- print >>f, "}"
- print >>f, ""
- print >>f, ""
- # the mode 0x10 handler
- print >>f, "ARCOMPACT_RETTYPE arcompact_device::arcompact_handle%s_p10(OPS_32)" % funcname
- if ignore_a == 2:
- print >>f, "{"
- print >>f, " int size = 4;"
- print >>f, " arcompact_fatal(\"illegal arcompact_handle%s_p10 (ares bits already used as opcode select, can't be used as s12) (%s)\\n\");" % (funcname, opname)
- print >>f, " return m_pc + (size >> 0);"
- print >>f, "}"
- else:
- print >>f, "{"
- print >>f, " int size = 4;"
- if breg_is_dst_only == 0:
- print >>f, " UINT32 limm = 0;"
-
- print >>f, "/* int got_limm = 0; */"
- print >>f, " "
- print >>f, " COMMON32_GET_breg;"
-
- if flagcondition == -1:
- print >>f, " COMMON32_GET_F;"
-
- print >>f, " COMMON32_GET_s12;"
-
- # areg can't be used here, it's used for s12 bits
-
- print >>f, " "
- print >>f, " UINT32 c;"
- if breg_is_dst_only == 0:
- print >>f, " UINT32 b;"
- print >>f, " "
- print >>f, " /* is having b as LIMM valid here? LIMM vs. fixed u6 value makes no sense */"
- print >>f, " if (breg == LIMM_REG)"
- print >>f, " {"
- print >>f, " GET_LIMM_32;"
- print >>f, " size = 8;"
- print >>f, "/* got_limm = 1; */"
- print >>f, " b = limm;"
- print >>f, " }"
- print >>f, " else"
- print >>f, " {"
- print >>f, " b = m_regs[breg];"
- print >>f, " }"
-
- print >>f, " "
- print >>f, " c = (UINT32)S;"
- print >>f, " "
- print >>f, " /* todo: if areg = LIMM then there is no result (but since that register can never be read, I guess it doesn't matter if we store it there anyway?) */"
- print >>f, " %s" % opexecute
- print >>f, " %s" % opwrite_alt
- print >>f, " "
- EmitGroup04_Flaghandler(f,funcname,opname,flagcondition,flaghandler)
- print >>f, " return m_pc + (size >> 0);"
- print >>f, "}"
- print >>f, ""
- print >>f, ""
- # the mode 0x11 m0 handler
- print >>f, "ARCOMPACT_RETTYPE arcompact_device::arcompact_handle%s_p11_m0(OPS_32)" % funcname
- if ignore_a == 2:
- print >>f, "{"
- print >>f, " int size = 4;"
- print >>f, " arcompact_fatal(\"illegal arcompact_handle%s_p11_m0 (ares bits already used as opcode select, can't be used as Q condition) (%s)\\n\");" % (funcname, opname)
- print >>f, " return m_pc + (size >> 0);"
- print >>f, "}"
- else:
- print >>f, "{"
- print >>f, " int size = 4;"
- print >>f, " arcompact_fatal(\"arcompact_handle%s_p11_m0 (%s)\\n\");" % (funcname, opname)
- print >>f, " return m_pc + (size >> 0);"
- print >>f, "}"
- print >>f, ""
- print >>f, ""
- # the mode 0x11 m1 handler
- print >>f, "ARCOMPACT_RETTYPE arcompact_device::arcompact_handle%s_p11_m1(OPS_32)" % funcname
- if ignore_a == 2:
- print >>f, "{"
- print >>f, " int size = 4;"
- print >>f, " arcompact_fatal(\"illegal arcompact_handle%s_p11_m1 (ares bits already used as opcode select, can't be used as Q condition) (%s)\\n\");" % (funcname, opname)
- print >>f, " return m_pc + (size >> 0);"
- print >>f, "}"
- else:
- print >>f, "{"
- EmitGroup04_u5fragment(f,funcname, opname, opexecute, opwrite, opwrite_alt, 3, breg_is_dst_only, flagcondition, flaghandler)
- print >>f, " COMMON32_GET_CONDITION;"
- print >>f, " if (!check_condition(condition))"
- print >>f, " return m_pc + (size>>0);"
- print >>f, ""
- print >>f, " %s" % opexecute
- print >>f, " %s" % opwrite_alt
- print >>f, " "
- EmitGroup04_Flaghandler(f,funcname,opname,flagcondition,flaghandler)
- print >>f, " return m_pc + (size >> 0);"
- print >>f, "}"
- print >>f, ""
- print >>f, ""
-
-
-# xxx_S c, b, u3 format opcodes (note c is destination)
-def EmitGroup0d(f,funcname, opname, opexecute, opwrite):
- print >>f, "ARCOMPACT_RETTYPE arcompact_device::arcompact_handle%s(OPS_16)" % funcname
- print >>f, "{"
- print >>f, " int u, breg, creg;"
- print >>f, ""
- print >>f, " COMMON16_GET_u3;"
- print >>f, " COMMON16_GET_breg;"
- print >>f, " COMMON16_GET_creg;"
- print >>f, ""
- print >>f, " REG_16BIT_RANGE(breg);"
- print >>f, " REG_16BIT_RANGE(creg);"
- print >>f, ""
- print >>f, " %s" % opexecute
- print >>f, " %s" % opwrite
- print >>f, ""
- print >>f, " return m_pc + (2 >> 0);"
- print >>f, "}"
- print >>f, ""
- print >>f, ""
-
-
-# xxx_S b <- b,c format opcodes
-def EmitGroup0f(f,funcname, opname, opexecute, opwrite):
- print >>f, "ARCOMPACT_RETTYPE arcompact_device::arcompact_handle%s(OPS_16)"% funcname
- print >>f, "{"
- print >>f, " int breg, creg;"
- print >>f, ""
- print >>f, " COMMON16_GET_breg;"
- print >>f, " COMMON16_GET_creg;"
- print >>f, ""
- print >>f, " REG_16BIT_RANGE(breg);"
- print >>f, " REG_16BIT_RANGE(creg);"
- print >>f, ""
- print >>f, " %s" % opexecute
- print >>f, " %s" % opwrite
- print >>f, ""
- print >>f, " return m_pc + (2 >> 0);"
- print >>f, "}"
- print >>f, ""
- print >>f, ""
-
-
-# xxx_S b, b, u5 format opcodes
-def EmitGroup17(f,funcname, opname, opexecute):
- print >>f, "ARCOMPACT_RETTYPE arcompact_device::arcompact_handle%s(OPS_16)" % funcname
- print >>f, "{"
- print >>f, " int breg, u;"
- print >>f, " "
- print >>f, " COMMON16_GET_breg;"
- print >>f, " COMMON16_GET_u5;"
- print >>f, " "
- print >>f, " REG_16BIT_RANGE(breg);"
- print >>f, " "
- print >>f, " %s" % opexecute
- print >>f, " "
- print >>f, " return m_pc + (2 >> 0);"
- print >>f, "}"
- print >>f, ""
- print >>f, ""
-
-
-
-try:
- f = open(sys.argv[1], "w")
-except Exception:
- err = sys.exc_info()[1]
- sys.stderr.write("cannot write file %s [%s]\n" % (sys.argv[1], err))
- sys.exit(1)
-
-
-EmitGroup04(f, "04_00", "ADD", "UINT32 result = b + c;", "m_regs[areg] = result;", "m_regs[breg] = result;", 0,0, -1, EmitGroup04_Handle_NZCV_ADD_Flags )
-
-EmitGroup04(f, "04_02", "SUB", "UINT32 result = b - c;", "m_regs[areg] = result;", "m_regs[breg] = result;", 0,0, -1, EmitGroup04_unsupported_Flags )
-
-EmitGroup04(f, "04_04", "AND", "UINT32 result = b & c;", "if (areg != LIMM_REG) { m_regs[areg] = result; }", "if (breg != LIMM_REG) { m_regs[breg] = result; }", 0,0, -1, EmitGroup04_Handle_NZ_Flags )
-EmitGroup04(f, "04_05", "OR", "UINT32 result = b | c;", "m_regs[areg] = result;", "m_regs[breg] = result;", 0,0, -1, EmitGroup04_unsupported_Flags )
-EmitGroup04(f, "04_06", "BIC", "UINT32 result = b & (~c);", "m_regs[areg] = result;", "m_regs[breg] = result;", 0,0, -1, EmitGroup04_unsupported_Flags )
-EmitGroup04(f, "04_07", "XOR", "UINT32 result = b ^ c;", "m_regs[areg] = result;", "m_regs[breg] = result;", 0,0, -1, EmitGroup04_unsupported_Flags )
-
-EmitGroup04(f, "04_0a", "MOV", "UINT32 result = c;", "m_regs[breg] = result;", "m_regs[breg] = result;", 1,1, -1, EmitGroup04_Handle_NZ_Flags ) # special case, result always goes to breg
-
-EmitGroup04(f, "04_0e", "RSUB", "UINT32 result = c - b;", "m_regs[areg] = result;", "m_regs[breg] = result;", 0,0, -1, EmitGroup04_unsupported_Flags )
-EmitGroup04(f, "04_0f", "BSET", "UINT32 result = b | (1 << (c & 0x1f));", "m_regs[areg] = result;", "m_regs[breg] = result;", 0,0, -1, EmitGroup04_unsupported_Flags )
-
-EmitGroup04(f, "04_13", "BMSK", "UINT32 result = b & ((1<<(c+1))-1);", "m_regs[areg] = result;", "m_regs[breg] = result;", 0,0, -1, EmitGroup04_unsupported_Flags )
-
-
-EmitGroup04(f, "04_14", "ADD1", "UINT32 result = b + (c << 1);", "m_regs[areg] = result;", "m_regs[breg] = result;", 0,0, -1, EmitGroup04_unsupported_Flags )
-EmitGroup04(f, "04_15", "ADD2", "UINT32 result = b + (c << 2);", "m_regs[areg] = result;", "m_regs[breg] = result;", 0,0, -1, EmitGroup04_unsupported_Flags )
-EmitGroup04(f, "04_16", "ADD3", "UINT32 result = b + (c << 3);", "m_regs[areg] = result;", "m_regs[breg] = result;", 0,0, -1, EmitGroup04_unsupported_Flags )
-EmitGroup04(f, "04_17", "SUB1", "UINT32 result = b - (c << 1);", "m_regs[areg] = result;", "m_regs[breg] = result;", 0,0, -1, EmitGroup04_unsupported_Flags )
-EmitGroup04(f, "04_18", "SUB2", "UINT32 result = b - (c << 2);", "m_regs[areg] = result;", "m_regs[breg] = result;", 0,0, -1, EmitGroup04_unsupported_Flags )
-EmitGroup04(f, "04_19", "SUB3", "UINT32 result = b - (c << 3);", "m_regs[areg] = result;", "m_regs[breg] = result;", 0,0, -1, EmitGroup04_unsupported_Flags )
-
-EmitGroup04(f, "04_2a", "LR", "m_regs[breg] = READAUX(c);", "", "", 1,1, -1, EmitGroup04_no_Flags ) # this can't be conditional (todo)
-EmitGroup04(f, "04_2b", "SR", "WRITEAUX(c,b);", "", "", 1,0, -1, EmitGroup04_no_Flags ) # this can't be conditional (todo)
-
-
-
-EmitGroup04(f, "05_00", "ASL", "UINT32 result = b << (c&0x1f);", "m_regs[areg] = result;", "m_regs[breg] = result;", 0,0, -1, EmitGroup04_unsupported_Flags )
-EmitGroup04(f, "05_01", "LSR", "UINT32 result = b >> (c&0x1f);", "m_regs[areg] = result;", "m_regs[breg] = result;", 0,0, -1, EmitGroup04_unsupported_Flags )
-
-# the 04_2f subgroup uses the same encoding, but the areg is already used as sub-opcode select, so any modes relying on areg bits for other reasons (sign, condition) (modes 10, 11m0, 11m1) are illegal. the destination is also breg not areg
-EmitGroup04(f, "04_2f_02", "LSR1", "UINT32 result = c >> 1;", "m_regs[breg] = result;","", 2,1, -1, EmitGroup04_Handle_NZC_LSR1_Flags ) # no alt handler (invalid path)
-EmitGroup04(f, "04_2f_03", "ROR", "int shift = 1; UINT32 mask = (1 << (shift)) - 1; mask <<= (32-shift); UINT32 result = ((c >> shift) & ~mask) | ((c << (32-shift)) & mask);", "m_regs[breg] = result;","", 2,1, -1, EmitGroup04_Handle_NZC_LSR1_Flags )
-
-
-EmitGroup04(f, "04_2f_07", "EXTB", "UINT32 result = c & 0x000000ff;", "m_regs[breg] = result;","", 2,1, -1, EmitGroup04_unsupported_Flags ) # ^
-EmitGroup04(f, "04_2f_08", "EXTW", "UINT32 result = c & 0x0000ffff;", "m_regs[breg] = result;","", 2,1, -1, EmitGroup04_unsupported_Flags ) # ^
-
-# xxx_S c, b, u3 format opcodes (note c is destination)
-EmitGroup0d(f, "0d_00", "ADD_S", "UINT32 result = m_regs[breg] + u;", "m_regs[creg] = result;" )
-EmitGroup0d(f, "0d_01", "SUB_S", "UINT32 result = m_regs[breg] - u;", "m_regs[creg] = result;" )
-EmitGroup0d(f, "0d_02", "ASL_S", "UINT32 result = m_regs[breg] << u;", "m_regs[creg] = result;" )
-
-# xxx_S b <- b,c format opcodes (or in some cases xxx_S b,c)
-EmitGroup0f(f, "0f_02", "SUB_S", "UINT32 result = m_regs[breg] - m_regs[creg];", "m_regs[breg] = result;" )
-EmitGroup0f(f, "0f_04", "AND_S", "UINT32 result = m_regs[breg] & m_regs[creg];", "m_regs[breg] = result;" )
-EmitGroup0f(f, "0f_05", "OR_S", "UINT32 result = m_regs[breg] | m_regs[creg];", "m_regs[breg] = result;" )
-EmitGroup0f(f, "0f_07", "XOR_S", "UINT32 result = m_regs[breg] ^ m_regs[creg];", "m_regs[breg] = result;" )
-EmitGroup0f(f, "0f_0f", "EXTB_S","UINT32 result = m_regs[creg] & 0x000000ff;", "m_regs[breg] = result;" )
-EmitGroup0f(f, "0f_10", "EXTW_S","UINT32 result = m_regs[creg] & 0x0000ffff;", "m_regs[breg] = result;" )
-EmitGroup0f(f, "0f_13", "NEG_S"," UINT32 result = 0 - m_regs[creg];", "m_regs[breg] = result;" )
-
-EmitGroup0f(f, "0f_14", "ADD1_S"," UINT32 result = m_regs[breg] + (m_regs[creg] <<1);", "m_regs[breg] = result;" )
-EmitGroup0f(f, "0f_15", "ADD2_S"," UINT32 result = m_regs[breg] + (m_regs[creg] <<2);", "m_regs[breg] = result;" )
-EmitGroup0f(f, "0f_16", "ADD3_S"," UINT32 result = m_regs[breg] + (m_regs[creg] <<3);", "m_regs[breg] = result;" )
-
-EmitGroup0f(f, "0f_19", "LSR_S", "UINT32 result = m_regs[breg] >> (m_regs[creg]&0x1f);","m_regs[breg] = result;" )
-EmitGroup0f(f, "0f_1b", "ASL1_S","UINT32 result = m_regs[creg] << 1;", "m_regs[breg] = result;" )
-
-
-# xxx_S b, b, u5 format opcodes
-EmitGroup17(f, "17_00", "ASL_S", "m_regs[breg] = m_regs[breg] << (u&0x1f);" )
-EmitGroup17(f, "17_01", "LSR_S", "m_regs[breg] = m_regs[breg] >> (u&0x1f);" )
-EmitGroup17(f, "17_02", "ASR_S", "INT32 temp = (INT32)m_regs[breg]; m_regs[breg] = temp >> (u&0x1f); // treat it as a signed value, so sign extension occurs during shift" )
-EmitGroup17(f, "17_03", "SUB_S", "m_regs[breg] = m_regs[breg] - u;" )
-EmitGroup17(f, "17_04", "BSET_S", "m_regs[breg] = m_regs[breg] | (1 << (u & 0x1f));" )
-
-EmitGroup17(f, "17_06", "BMSK_S", "m_regs[breg] = m_regs[breg] | ((1 << (u + 1)) - 1);" )
-
-
-
-
diff --git a/src/emu/cpu/hphybrid/hphybrid.c b/src/emu/cpu/hphybrid/hphybrid.c
deleted file mode 100644
index 03a36549b60..00000000000
--- a/src/emu/cpu/hphybrid/hphybrid.c
+++ /dev/null
@@ -1,961 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:F. Ulivi
-
-#include "emu.h"
-#include "debugger.h"
-#include "hphybrid.h"
-
-enum {
- HPHYBRID_A,
- HPHYBRID_B,
- HPHYBRID_C,
- HPHYBRID_D,
- HPHYBRID_P,
- HPHYBRID_R,
- HPHYBRID_IV,
- HPHYBRID_PA,
- HPHYBRID_DMAPA,
- HPHYBRID_DMAMA,
- HPHYBRID_DMAC,
- HPHYBRID_I
-};
-
-#define BIT_MASK(n) (1U << (n))
-
-// Macros to clear/set single bits
-#define BIT_CLR(w , n) ((w) &= ~BIT_MASK(n))
-#define BIT_SET(w , n) ((w) |= BIT_MASK(n))
-
-// Bits in m_flags
-#define HPHYBRID_C_BIT 0 // Carry/extend
-#define HPHYBRID_O_BIT 1 // Overflow
-#define HPHYBRID_CB_BIT 2 // Cb
-#define HPHYBRID_DB_BIT 3 // Db
-#define HPHYBRID_INTEN_BIT 4 // Interrupt enable
-#define HPHYBRID_DMAEN_BIT 5 // DMA enable
-#define HPHYBRID_DMADIR_BIT 6 // DMA direction (1 = OUT)
-#define HPHYBRID_HALT_BIT 7 // Halt flag
-#define HPHYBRID_IRH_BIT 8 // IRH requested
-#define HPHYBRID_IRL_BIT 9 // IRL requested
-#define HPHYBRID_IRH_SVC_BIT 10 // IRH in service
-#define HPHYBRID_IRL_SVC_BIT 11 // IRL in service
-#define HPHYBRID_DMAR_BIT 12 // DMA request
-
-#define HPHYBRID_IV_MASK 0xfff0 // IV mask
-
-#define CURRENT_PA (m_reg_PA[ 0 ])
-
-#define HP_RESET_ADDR 0x0020
-
-const device_type HP_5061_3011 = &device_creator<hp_5061_3011_cpu_device>;
-
-WRITE_LINE_MEMBER(hp_hybrid_cpu_device::dmar_w)
-{
- if (state) {
- BIT_SET(m_flags , HPHYBRID_DMAR_BIT);
- } else {
- BIT_CLR(m_flags , HPHYBRID_DMAR_BIT);
- }
-}
-
-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 clock, const char *shortname)
-: cpu_device(mconfig, type, name, tag, owner, clock, shortname, __FILE__),
- m_program_config("program", ENDIANNESS_BIG, 16, 16, -1),
- m_io_config("io", ENDIANNESS_BIG, 16, 6, -1)
-{
-}
-
-void hp_hybrid_cpu_device::device_start()
-{
- m_reg_A = 0;
- m_reg_B = 0;
- m_reg_P = HP_RESET_ADDR;
- m_reg_R = 0;
- m_reg_C = 0;
- m_reg_D = 0;
- m_reg_IV = 0;
- m_reg_PA[ 0 ] = 0;
- m_reg_PA[ 1 ] = 0;
- m_reg_PA[ 2 ] = 0;
- m_flags = 0;
- m_dmapa = 0;
- m_dmama = 0;
- m_dmac = 0;
- m_reg_I = 0;
-
- {
- state_add(HPHYBRID_A, "A", m_reg_A);
- state_add(HPHYBRID_B, "B", m_reg_B);
- state_add(HPHYBRID_C, "C", m_reg_C);
- state_add(HPHYBRID_D, "D", m_reg_D);
- state_add(HPHYBRID_P, "P", m_reg_P);
- state_add(STATE_GENPC, "GENPC", m_reg_P).noshow();
- state_add(HPHYBRID_R, "R", m_reg_R);
- state_add(STATE_GENSP, "GENSP", m_reg_R).noshow();
- state_add(HPHYBRID_IV, "IV", m_reg_IV);
- state_add(HPHYBRID_PA, "PA", m_reg_PA[ 0 ]);
- state_add(STATE_GENFLAGS, "GENFLAGS", m_flags).noshow().formatstr("%9s");
- state_add(HPHYBRID_DMAPA , "DMAPA" , m_dmapa).noshow();
- state_add(HPHYBRID_DMAMA , "DMAMA" , m_dmama).noshow();
- state_add(HPHYBRID_DMAC , "DMAC" , m_dmac).noshow();
- state_add(HPHYBRID_I , "I" , m_reg_I).noshow();
- }
-
- m_program = &space(AS_PROGRAM);
- m_direct = &m_program->direct();
- m_io = &space(AS_IO);
-
- save_item(NAME(m_reg_A));
- save_item(NAME(m_reg_B));
- save_item(NAME(m_reg_C));
- save_item(NAME(m_reg_D));
- save_item(NAME(m_reg_P));
- save_item(NAME(m_reg_R));
- save_item(NAME(m_reg_IV));
- save_item(NAME(m_reg_PA[0]));
- save_item(NAME(m_reg_PA[1]));
- save_item(NAME(m_reg_PA[2]));
- save_item(NAME(m_flags));
- save_item(NAME(m_dmapa));
- save_item(NAME(m_dmama));
- save_item(NAME(m_dmac));
- save_item(NAME(m_reg_I));
-
- m_icountptr = &m_icount;
-}
-
-void hp_hybrid_cpu_device::device_reset()
-{
- m_reg_P = HP_RESET_ADDR;
- m_reg_I = RM(m_reg_P);
- m_flags = 0;
-}
-
-void hp_hybrid_cpu_device::execute_run()
-{
- do {
- if (BIT(m_flags , HPHYBRID_DMAEN_BIT) && BIT(m_flags , HPHYBRID_DMAR_BIT)) {
- handle_dma();
- } else {
- debugger_instruction_hook(this, m_reg_P);
-
- // Check for interrupts
- check_for_interrupts();
-
- m_reg_I = execute_one(m_reg_I);
- }
- } while (m_icount > 0);
-}
-
-void hp_hybrid_cpu_device::execute_set_input(int inputnum, int state)
-{
- if (inputnum < HPHYBRID_INT_LVLS) {
- if (state) {
- BIT_SET(m_flags , HPHYBRID_IRH_BIT + inputnum);
- } else {
- BIT_CLR(m_flags , HPHYBRID_IRH_BIT + inputnum);
- }
- }
-}
-
-/**
- * Execute 1 instruction
- *
- * @param opcode Opcode to be executed
- *
- * @return Next opcode to be executed
- */
-UINT16 hp_hybrid_cpu_device::execute_one(UINT16 opcode)
-{
- if ((opcode & 0x7fe0) == 0x7000) {
- // EXE
- m_icount -= 8;
- return RM(opcode & 0x1f);
- } else {
- m_reg_P = execute_one_sub(opcode);
- return RM(m_reg_P);
- }
-}
-
-/**
- * Execute 1 instruction (except EXE)
- *
- * @param opcode Opcode to be executed (no EXE instructions)
- *
- * @return new value of P register
- */
-UINT16 hp_hybrid_cpu_device::execute_one_sub(UINT16 opcode)
-{
- UINT16 ea;
- UINT16 tmp;
-
- switch (opcode & 0x7800) {
- case 0x0000:
- // LDA
- m_icount -= 13;
- m_reg_A = RM(get_ea(opcode));
- break;
-
- case 0x0800:
- // LDB
- m_icount -= 13;
- m_reg_B = RM(get_ea(opcode));
- break;
-
- case 0x1000:
- // CPA
- m_icount -= 16;
- if (m_reg_A != RM(get_ea(opcode))) {
- // Skip next instruction
- return m_reg_P + 2;
- }
- break;
-
- case 0x1800:
- // CPB
- m_icount -= 16;
- if (m_reg_B != RM(get_ea(opcode))) {
- // Skip next instruction
- return m_reg_P + 2;
- }
- break;
-
- case 0x2000:
- // ADA
- m_icount -= 13;
- do_add(m_reg_A , RM(get_ea(opcode)));
- break;
-
- case 0x2800:
- // ADB
- m_icount -= 13;
- do_add(m_reg_B , RM(get_ea(opcode)));
- break;
-
- case 0x3000:
- // STA
- m_icount -= 13;
- WM(get_ea(opcode) , m_reg_A);
- break;
-
- case 0x3800:
- // STB
- m_icount -= 13;
- WM(get_ea(opcode) , m_reg_B);
- break;
-
- case 0x4000:
- // JSM
- m_icount -= 17;
- WM(++m_reg_R , m_reg_P);
- return get_ea(opcode);
-
- case 0x4800:
- // ISZ
- m_icount -= 19;
- ea = get_ea(opcode);
- tmp = RM(ea) + 1;
- WM(ea , tmp);
- if (tmp == 0) {
- // Skip next instruction
- return m_reg_P + 2;
- }
- break;
-
- case 0x5000:
- // AND
- m_icount -= 13;
- m_reg_A &= RM(get_ea(opcode));
- break;
-
- case 0x5800:
- // DSZ
- m_icount -= 19;
- ea = get_ea(opcode);
- tmp = RM(ea) - 1;
- WM(ea , tmp);
- if (tmp == 0) {
- // Skip next instruction
- return m_reg_P + 2;
- }
- break;
-
- case 0x6000:
- // IOR
- m_icount -= 13;
- m_reg_A |= RM(get_ea(opcode));
- break;
-
- case 0x6800:
- // JMP
- m_icount -= 8;
- return get_ea(opcode);
-
- default:
- switch (opcode & 0xfec0) {
- case 0x7400:
- // RZA
- // SZA
- m_icount -= 14;
- return get_skip_addr(opcode , m_reg_A == 0);
-
- case 0x7440:
- // RIA
- // SIA
- m_icount -= 14;
- return get_skip_addr(opcode , m_reg_A++ == 0);
-
- case 0x7480:
- // SFS
- // SFC
- m_icount -= 14;
- // TODO: read flag bit
- return get_skip_addr(opcode , true);
-
- case 0x7C00:
- // RZB
- // SZB
- m_icount -= 14;
- return get_skip_addr(opcode , m_reg_B == 0);
-
- case 0x7C40:
- // RIB
- // SIB
- m_icount -= 14;
- return get_skip_addr(opcode , m_reg_B++ == 0);
-
- case 0x7c80:
- // SSS
- // SSC
- m_icount -= 14;
- // TODO: read status bit
- return get_skip_addr(opcode , true);
-
- case 0x7cc0:
- // SHS
- // SHC
- m_icount -= 14;
- return get_skip_addr(opcode , !BIT(m_flags , HPHYBRID_HALT_BIT));
-
- default:
- switch (opcode & 0xfe00) {
- case 0x7600:
- // SLA
- // RLA
- m_icount -= 14;
- return get_skip_addr_sc(opcode , m_reg_A , 0);
-
- case 0x7e00:
- // SLB
- // RLB
- m_icount -= 14;
- return get_skip_addr_sc(opcode , m_reg_B , 0);
-
- case 0xf400:
- // SAP
- // SAM
- m_icount -= 14;
- return get_skip_addr_sc(opcode , m_reg_A , 15);
-
- case 0xf600:
- // SOC
- // SOS
- m_icount -= 14;
- return get_skip_addr_sc(opcode , m_flags , HPHYBRID_O_BIT);
-
- case 0xfc00:
- // SBP
- // SBM
- m_icount -= 14;
- return get_skip_addr_sc(opcode , m_reg_B , 15);
-
- case 0xfe00:
- // SEC
- // SES
- m_icount -= 14;
- return get_skip_addr_sc(opcode , m_flags , HPHYBRID_C_BIT);
-
- default:
- switch (opcode & 0xfff0) {
- case 0xf100:
- // AAR
- tmp = (opcode & 0xf) + 1;
- m_icount -= (9 + tmp);
- // A shift by 16 positions is equivalent to a shift by 15
- tmp = tmp > 15 ? 15 : tmp;
- m_reg_A = ((m_reg_A ^ 0x8000) >> tmp) - (0x8000 >> tmp);
- break;
-
- case 0xf900:
- // ABR
- tmp = (opcode & 0xf) + 1;
- m_icount -= (9 + tmp);
- tmp = tmp > 15 ? 15 : tmp;
- m_reg_B = ((m_reg_B ^ 0x8000) >> tmp) - (0x8000 >> tmp);
- break;
-
- case 0xf140:
- // SAR
- tmp = (opcode & 0xf) + 1;
- m_icount -= (9 + tmp);
- m_reg_A >>= tmp;
- break;
-
- case 0xf940:
- // SBR
- tmp = (opcode & 0xf) + 1;
- m_icount -= (9 + tmp);
- m_reg_B >>= tmp;
- break;
-
- case 0xf180:
- // SAL
- tmp = (opcode & 0xf) + 1;
- m_icount -= (9 + tmp);
- m_reg_A <<= tmp;
- break;
-
- case 0xf980:
- // SBL
- tmp = (opcode & 0xf) + 1;
- m_icount -= (9 + tmp);
- m_reg_B <<= tmp;
- break;
-
- case 0xf1c0:
- // RAR
- tmp = (opcode & 0xf) + 1;
- m_icount -= (9 + tmp);
- m_reg_A = (m_reg_A >> tmp) | (m_reg_A << (16 - tmp));
- break;
-
- case 0xf9c0:
- // RBR
- tmp = (opcode & 0xf) + 1;
- m_icount -= (9 + tmp);
- m_reg_B = (m_reg_B >> tmp) | (m_reg_B << (16 - tmp));
- break;
-
- default:
- if ((opcode & 0xf760) == 0x7160) {
- // Place/withdraw instructions
- m_icount -= 23;
- do_pw(opcode);
- } else if ((opcode & 0xff80) == 0xf080) {
- // RET
- m_icount -= 16;
- if (BIT(opcode , 6)) {
- // Pop PA stack
- if (BIT(m_flags , HPHYBRID_IRH_SVC_BIT)) {
- BIT_CLR(m_flags , HPHYBRID_IRH_SVC_BIT);
- memmove(&m_reg_PA[ 0 ] , &m_reg_PA[ 1 ] , HPHYBRID_INT_LVLS);
- } else if (BIT(m_flags , HPHYBRID_IRL_SVC_BIT)) {
- BIT_CLR(m_flags , HPHYBRID_IRL_SVC_BIT);
- memmove(&m_reg_PA[ 0 ] , &m_reg_PA[ 1 ] , HPHYBRID_INT_LVLS);
- }
- }
- tmp = RM(m_reg_R--) + (opcode & 0x1f);
- return BIT(opcode , 5) ? tmp - 0x20 : tmp;
- } else {
- switch (opcode) {
- case 0x7100:
- // SDO
- m_icount -= 12;
- BIT_SET(m_flags , HPHYBRID_DMADIR_BIT);
- break;
-
- case 0x7108:
- // SDI
- m_icount -= 12;
- BIT_CLR(m_flags , HPHYBRID_DMADIR_BIT);
- break;
-
- case 0x7110:
- // EIR
- m_icount -= 12;
- BIT_SET(m_flags , HPHYBRID_INTEN_BIT);
- break;
-
- case 0x7118:
- // DIR
- m_icount -= 12;
- BIT_CLR(m_flags , HPHYBRID_INTEN_BIT);
- break;
-
- case 0x7120:
- // DMA
- m_icount -= 12;
- BIT_SET(m_flags , HPHYBRID_DMAEN_BIT);
- break;
-
- case 0x7138:
- // DDR
- m_icount -= 12;
- BIT_CLR(m_flags , HPHYBRID_DMAEN_BIT);
- break;
-
- case 0x7140:
- // DBL
- m_icount -= 12;
- BIT_CLR(m_flags , HPHYBRID_DB_BIT);
- break;
-
- case 0x7148:
- // CBL
- m_icount -= 12;
- BIT_CLR(m_flags , HPHYBRID_CB_BIT);
- break;
-
- case 0x7150:
- // DBU
- m_icount -= 12;
- BIT_SET(m_flags , HPHYBRID_DB_BIT);
- break;
-
- case 0x7158:
- // CBU
- m_icount -= 12;
- BIT_SET(m_flags , HPHYBRID_CB_BIT);
- break;
-
- case 0xf020:
- // TCA
- m_icount -= 9;
- m_reg_A = ~m_reg_A;
- do_add(m_reg_A , 1);
- break;
-
- case 0xf060:
- // CMA
- m_icount -= 9;
- m_reg_A = ~m_reg_A;
- break;
-
- case 0xf820:
- // TCB
- m_icount -= 9;
- m_reg_B = ~m_reg_B;
- do_add(m_reg_B , 1);
- break;
-
- case 0xf860:
- // CMB
- m_icount -= 9;
- m_reg_B = ~m_reg_B;
- break;
-
- default:
- // Unrecognized instructions: NOP
- // Execution time is fictional
- m_icount -= 6;
- }
- }
- }
- }
- }
- }
-
- return m_reg_P + 1;
-}
-
-void hp_hybrid_cpu_device::state_string_export(const device_state_entry &entry, std::string &str)
-{
- if (entry.index() == STATE_GENFLAGS) {
- strprintf(str, "%s %s %c %c",
- BIT(m_flags , HPHYBRID_DB_BIT) ? "Db":"..",
- BIT(m_flags , HPHYBRID_CB_BIT) ? "Cb":"..",
- BIT(m_flags , HPHYBRID_O_BIT) ? 'O':'.',
- BIT(m_flags , HPHYBRID_C_BIT) ? 'E':'.');
- }
-}
-
-offs_t hp_hybrid_cpu_device::disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options)
-{
- extern CPU_DISASSEMBLE(hp_hybrid);
- return CPU_DISASSEMBLE_NAME(hp_hybrid)(this, buffer, pc, oprom, opram, options);
-}
-
-UINT16 hp_hybrid_cpu_device::get_ea(UINT16 opcode)
-{
- UINT16 base;
- UINT16 off;
-
- if (BIT(opcode , 10)) {
- // Current page
- base = m_reg_P;
- } else {
- // Base page
- base = 0;
- }
-
- off = opcode & 0x3ff;
- if (off & 0x200) {
- off -= 0x400;
- }
-
- base += off;
-
- if (BIT(opcode , 15)) {
- // Indirect addressing
- m_icount -= 6;
- return RM(base);
- } else {
- // Direct addressing
- return base;
- }
-}
-
-void hp_hybrid_cpu_device::do_add(UINT16& addend1 , UINT16 addend2)
-{
- UINT32 tmp = addend1 + addend2;
-
- if (BIT(tmp , 16)) {
- // Carry
- BIT_SET(m_flags , HPHYBRID_C_BIT);
- }
-
- if (BIT((tmp ^ addend1) & (tmp ^ addend2) , 15)) {
- // Overflow
- BIT_SET(m_flags , HPHYBRID_O_BIT);
- }
-
- addend1 = (UINT16)tmp;
-}
-
-UINT16 hp_hybrid_cpu_device::get_skip_addr(UINT16 opcode , bool condition) const
-{
- bool skip_val = BIT(opcode , 8) != 0;
-
- if (condition == skip_val) {
- UINT16 off = opcode & 0x1f;
-
- if (BIT(opcode , 5)) {
- off -= 0x20;
- }
- return m_reg_P + off;
- } else {
- return m_reg_P + 1;
- }
-}
-
-UINT16 hp_hybrid_cpu_device::get_skip_addr_sc(UINT16 opcode , UINT16& v , unsigned n)
-{
- bool val = BIT(v , n);
-
- if (BIT(opcode , 7)) {
- if (BIT(opcode , 6)) {
- BIT_SET(v , n);
- } else {
- BIT_CLR(v , n);
- }
- }
-
- return get_skip_addr(opcode , val);
-}
-
-void hp_hybrid_cpu_device::do_pw(UINT16 opcode)
-{
- UINT16 tmp;
- UINT16 reg_addr = opcode & 7;
- UINT16 *ptr_reg;
- UINT16 b_mask;
-
- if (BIT(opcode , 3)) {
- ptr_reg = &m_reg_D;
- b_mask = BIT_MASK(HPHYBRID_DB_BIT);
- } else {
- ptr_reg = &m_reg_C;
- b_mask = BIT_MASK(HPHYBRID_CB_BIT);
- }
-
- if (BIT(opcode , 4)) {
- // Withdraw
- if (BIT(opcode , 11)) {
- // Byte
- UINT32 tmp_addr = (UINT32)(*ptr_reg);
- if (m_flags & b_mask) {
- tmp_addr |= 0x10000;
- }
- tmp = RM((UINT16)(tmp_addr >> 1));
- if (BIT(tmp_addr , 0)) {
- tmp &= 0xff;
- } else {
- tmp >>= 8;
- }
- } else {
- // Word
- tmp = RM(*ptr_reg);
- }
- WM(reg_addr , tmp);
-
- if (BIT(opcode , 7)) {
- // Post-decrement
- if ((*ptr_reg)-- == 0) {
- m_flags ^= b_mask;
- }
- } else {
- // Post-increment
- if (++(*ptr_reg) == 0) {
- m_flags ^= b_mask;
- }
- }
- } else {
- // Place
- if (BIT(opcode , 7)) {
- // Pre-decrement
- if ((*ptr_reg)-- == 0) {
- m_flags ^= b_mask;
- }
- } else {
- // Pre-increment
- if (++(*ptr_reg) == 0) {
- m_flags ^= b_mask;
- }
- }
- tmp = RM(reg_addr);
- if (BIT(opcode , 11)) {
- // Byte
- UINT32 tmp_addr = (UINT32)(*ptr_reg);
- if (m_flags & b_mask) {
- tmp_addr |= 0x10000;
- }
- WMB(tmp_addr , (UINT8)tmp);
- } else {
- // Word
- WM(*ptr_reg , tmp);
- }
- }
-}
-
-void hp_hybrid_cpu_device::check_for_interrupts(void)
-{
- if (!BIT(m_flags , HPHYBRID_INTEN_BIT) || BIT(m_flags , HPHYBRID_IRH_SVC_BIT)) {
- return;
- }
-
- int irqline;
-
- if (BIT(m_flags , HPHYBRID_IRH_BIT)) {
- // Service high-level interrupt
- BIT_SET(m_flags , HPHYBRID_IRH_SVC_BIT);
- irqline = HPHYBRID_IRH;
- } else if (BIT(m_flags , HPHYBRID_IRL_BIT) && !BIT(m_flags , HPHYBRID_IRL_SVC_BIT)) {
- // Service low-level interrupt
- BIT_SET(m_flags , HPHYBRID_IRL_SVC_BIT);
- irqline = HPHYBRID_IRL;
- } else {
- return;
- }
-
- // Get interrupt vector in low byte
- UINT8 vector = (UINT8)standard_irq_callback(irqline);
- UINT8 new_PA;
-
- // Get highest numbered 1
- // Don't know what happens if vector is 0, here we assume bit 7 = 1
- if (vector == 0) {
- new_PA = 7;
- } else {
- for (new_PA = 7; new_PA && !BIT(vector , 7); new_PA--, vector <<= 1) {
- }
- }
- if (irqline == HPHYBRID_IRH) {
- BIT_SET(new_PA , 3);
- }
-
- // Push PA stack
- memmove(&m_reg_PA[ 1 ] , &m_reg_PA[ 0 ] , HPHYBRID_INT_LVLS);
-
- CURRENT_PA = new_PA;
-
- // Is this correct? Patent @ pg 210 suggests that the whole interrupt recognition sequence
- // lasts for 32 cycles (6 are already accounted for in get_ea for one indirection)
- m_icount -= 26;
-
- // Do a double-indirect JSM IV,I instruction
- WM(++m_reg_R , m_reg_P);
- m_reg_P = RM(get_ea(0xc008));
- m_reg_I = RM(m_reg_P);
-}
-
-void hp_hybrid_cpu_device::handle_dma(void)
-{
- // Patent hints at the fact that terminal count is detected by bit 15 of dmac being 1 after decrementing
- bool tc = BIT(--m_dmac , 15) != 0;
- UINT16 tmp;
-
- if (BIT(m_flags , HPHYBRID_DMADIR_BIT)) {
- // "Outward" DMA: memory -> peripheral
- tmp = RM(m_dmama++);
- WIO(m_dmapa , tc ? 2 : 0 , tmp);
- m_icount -= 10;
- } else {
- // "Inward" DMA: peripheral -> memory
- tmp = RIO(m_dmapa , tc ? 2 : 0);
- WM(m_dmama++ , tmp);
- m_icount -= 9;
- }
-
- // This is the one of the biggest question marks: is the DMA automatically disabled on TC?
- // Here we assume it is. After all it would make no difference because there is no way
- // to read the DMA enable flag back, so each time the DMA is needed it has to be enabled again.
- if (tc) {
- BIT_CLR(m_flags , HPHYBRID_DMAEN_BIT);
- }
-}
-
-UINT16 hp_hybrid_cpu_device::RM(UINT16 addr)
-{
- UINT16 tmp;
-
- if (addr <= HP_REG_LAST_ADDR) {
- // Memory mapped registers
- switch (addr) {
- case HP_REG_A_ADDR:
- return m_reg_A;
-
- case HP_REG_B_ADDR:
- return m_reg_B;
-
- case HP_REG_P_ADDR:
- return m_reg_P;
-
- case HP_REG_R_ADDR:
- return m_reg_R;
-
- case HP_REG_R4_ADDR:
- case HP_REG_R5_ADDR:
- case HP_REG_R6_ADDR:
- case HP_REG_R7_ADDR:
- return RIO(CURRENT_PA , addr - HP_REG_R4_ADDR);
-
- case HP_REG_IV_ADDR:
- // Correct?
- if (!BIT(m_flags , HPHYBRID_IRH_SVC_BIT) && !BIT(m_flags , HPHYBRID_IRL_SVC_BIT)) {
- return m_reg_IV;
- } else {
- return m_reg_IV | CURRENT_PA;
- }
-
- case HP_REG_PA_ADDR:
- return CURRENT_PA;
-
- case HP_REG_DMAPA_ADDR:
- tmp = m_dmapa & HP_REG_PA_MASK;
- if (BIT(m_flags , HPHYBRID_CB_BIT)) {
- BIT_SET(tmp , 15);
- }
- if (BIT(m_flags , HPHYBRID_DB_BIT)) {
- BIT_SET(tmp , 14);
- }
- return tmp;
-
- case HP_REG_DMAMA_ADDR:
- return m_dmama;
-
- case HP_REG_DMAC_ADDR:
- return m_dmac;
-
- case HP_REG_C_ADDR:
- return m_reg_C;
-
- case HP_REG_D_ADDR:
- return m_reg_D;
-
- default:
- // Unknown registers are returned as 0
- return 0;
- }
- } else {
- return m_direct->read_word((offs_t)addr << 1);
- }
-}
-
-void hp_hybrid_cpu_device::WM(UINT16 addr , UINT16 v)
-{
- if (addr <= HP_REG_LAST_ADDR) {
- // Memory mapped registers
- switch (addr) {
- case HP_REG_A_ADDR:
- m_reg_A = v;
- break;
-
- case HP_REG_B_ADDR:
- m_reg_B = v;
- break;
-
- case HP_REG_P_ADDR:
- m_reg_P = v;
- break;
-
- case HP_REG_R_ADDR:
- m_reg_R = v;
- break;
-
- case HP_REG_R4_ADDR:
- case HP_REG_R5_ADDR:
- case HP_REG_R6_ADDR:
- case HP_REG_R7_ADDR:
- WIO(CURRENT_PA , addr - HP_REG_R4_ADDR , v);
- break;
-
- case HP_REG_IV_ADDR:
- m_reg_IV = v & HP_REG_IV_MASK;
- break;
-
- case HP_REG_PA_ADDR:
- CURRENT_PA = v & HP_REG_PA_MASK;
- break;
-
- case HP_REG_DMAPA_ADDR:
- m_dmapa = v & HP_REG_PA_MASK;
- break;
-
- case HP_REG_DMAMA_ADDR:
- m_dmama = v;
- break;
-
- case HP_REG_DMAC_ADDR:
- m_dmac = v;
- break;
-
- case HP_REG_C_ADDR:
- m_reg_C = v;
- break;
-
- case HP_REG_D_ADDR:
- m_reg_D = v;
- break;
-
- default:
- // Unknown registers are silently discarded
- break;
- }
- } else {
- m_program->write_word((offs_t)addr << 1 , v);
- }
-}
-
-void hp_hybrid_cpu_device::WMB(UINT32 addr , UINT8 v)
-{
- if (addr <= (HP_REG_LAST_ADDR * 2 + 1)) {
- // Cannot write bytes to registers
- } else {
- m_program->write_byte(addr , v);
- }
-}
-
-UINT16 hp_hybrid_cpu_device::RIO(UINT8 pa , UINT8 ic)
-{
- return m_io->read_word(HP_MAKE_IOADDR(pa, ic) << 1);
-}
-
-void hp_hybrid_cpu_device::WIO(UINT8 pa , UINT8 ic , UINT16 v)
-{
- m_io->write_word(HP_MAKE_IOADDR(pa, ic) << 1 , v);
-}
-
-hp_5061_3011_cpu_device::hp_5061_3011_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
-: hp_hybrid_cpu_device(mconfig, HP_5061_3011, "HP_5061_3011", tag, owner, clock, "5061-3011")
-{
-}
diff --git a/src/emu/debug/debugcmd.c b/src/emu/debug/debugcmd.c
index d7e5f48f79c..9bab7b07b25 100644
--- a/src/emu/debug/debugcmd.c
+++ b/src/emu/debug/debugcmd.c
@@ -1193,6 +1193,8 @@ static void execute_comment_save(running_machine &machine, int ref, int params,
{
if (debug_comment_save(machine))
debug_console_printf(machine, "Comments successfully saved\n");
+ else
+ debug_console_printf(machine, "Comments not saved\n");
}
diff --git a/src/emu/debug/debugcpu.c b/src/emu/debug/debugcpu.c
index 2eeb2e1af72..22344cb2deb 100644
--- a/src/emu/debug/debugcpu.c
+++ b/src/emu/debug/debugcpu.c
@@ -19,8 +19,8 @@
#include "debugger.h"
#include "uiinput.h"
#include "xmlfile.h"
+#include "coreutil.h"
#include <ctype.h>
-#include <zlib.h>
/***************************************************************************
@@ -288,6 +288,8 @@ void debug_cpu_source_script(running_machine &machine, const char *file)
bool debug_comment_save(running_machine &machine)
{
+ bool comments_saved = false;
+
// if we don't have a root, bail
xml_data_node *root = xml_file_create();
if (root == NULL)
@@ -332,7 +334,10 @@ bool debug_comment_save(running_machine &machine)
emu_file file(machine.options().comment_directory(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
file_error filerr = file.open(machine.basename(), ".cmt");
if (filerr == FILERR_NONE)
+ {
xml_file_write(root, file);
+ comments_saved = true;
+ }
}
}
catch (emu_exception &)
@@ -343,7 +348,7 @@ bool debug_comment_save(running_machine &machine)
// free and get out of here
xml_file_free(root);
- return true;
+ return comments_saved;
}
@@ -2746,7 +2751,7 @@ UINT32 device_debug::compute_opcode_crc32(offs_t pc) const
UINT32 numbytes = disassemble(diasmbuf, pc, opbuf, argbuf) & DASMFLAG_LENGTHMASK;
// return a CRC of the exact count of opcode bytes
- return crc32(0, opbuf, numbytes);
+ return core_crc32(0, opbuf, numbytes);
}
diff --git a/src/emu/device.c b/src/emu/device.c
index 5991bcfb30c..2fd68e6ed8e 100644
--- a/src/emu/device.c
+++ b/src/emu/device.c
@@ -333,7 +333,7 @@ attotime device_t::clocks_to_attotime(UINT64 numclocks) const
UINT64 device_t::attotime_to_clocks(const attotime &duration) const
{
- return mulu_32x32(duration.seconds, m_clock) + (UINT64)duration.attoseconds / (UINT64)m_attoseconds_per_clock;
+ return mulu_32x32(duration.seconds(), m_clock) + (UINT64)duration.attoseconds() / (UINT64)m_attoseconds_per_clock;
}
@@ -413,7 +413,7 @@ void device_t::start()
if (state_registrations == 0 && (interface(exec) || interface(sound)) && type() != SPEAKER)
{
logerror("Device '%s' did not register any state to save!\n", tag());
- if ((machine().system().flags & GAME_SUPPORTS_SAVE) != 0)
+ if ((machine().system().flags & MACHINE_SUPPORTS_SAVE) != 0)
fatalerror("Device '%s' did not register any state to save!\n", tag());
}
diff --git a/src/emu/dipty.c b/src/emu/dipty.c
new file mode 100644
index 00000000000..1d188f95d0a
--- /dev/null
+++ b/src/emu/dipty.c
@@ -0,0 +1,85 @@
+// license:BSD-3-Clause
+// copyright-holders:F.Ulivi
+/***************************************************************************
+
+ dipty.h
+
+ Device PTY interface
+
+***************************************************************************/
+
+#include "emu.h"
+#include "osdcore.h"
+
+device_pty_interface::device_pty_interface(const machine_config &mconfig, device_t &device)
+ : device_interface(device, "pty"),
+ m_pty_master(NULL),
+ m_slave_name(),
+ m_opened(false)
+{
+}
+
+device_pty_interface::~device_pty_interface()
+{
+}
+
+bool device_pty_interface::open(void)
+{
+ if (!m_opened) {
+ char buffer[ 128 ];
+
+ if (osd_openpty(&m_pty_master , buffer , sizeof(buffer)) == FILERR_NONE) {
+ m_opened = true;
+ m_slave_name.assign(buffer);
+ } else {
+ m_opened = false;
+ m_pty_master = NULL;
+ }
+ }
+
+ return m_opened;
+}
+
+void device_pty_interface::close(void)
+{
+ if (m_opened) {
+ osd_close(m_pty_master);
+ m_opened = false;
+ }
+}
+
+bool device_pty_interface::is_open(void) const
+{
+ return m_opened;
+}
+
+ssize_t device_pty_interface::read(UINT8 *rx_chars , size_t count)
+{
+ UINT32 actual_bytes;
+
+ if (m_opened && osd_read(m_pty_master, rx_chars, 0, count, &actual_bytes) == FILERR_NONE) {
+ return actual_bytes;
+ } else {
+ return -1;
+ }
+}
+
+void device_pty_interface::write(UINT8 tx_char)
+{
+ UINT32 actual_bytes;
+
+ if (m_opened) {
+ osd_write(m_pty_master, &tx_char, 0, 1, &actual_bytes);
+ }
+}
+
+bool device_pty_interface::is_slave_connected(void) const
+{
+ // TODO: really check for slave status
+ return m_opened;
+}
+
+const char *device_pty_interface::slave_name(void) const
+{
+ return m_slave_name.c_str();
+}
diff --git a/src/emu/dipty.h b/src/emu/dipty.h
new file mode 100644
index 00000000000..c381420a0ca
--- /dev/null
+++ b/src/emu/dipty.h
@@ -0,0 +1,48 @@
+// license:BSD-3-Clause
+// copyright-holders:F.Ulivi
+/***************************************************************************
+
+ dipty.h
+
+ Device PTY interface
+
+***************************************************************************/
+
+#pragma once
+
+#ifndef __EMU_H__
+#error Dont include this file directly; include emu.h instead.
+#endif
+
+#ifndef __DIPTY_H__
+#define __DIPTY_H__
+
+class device_pty_interface : public device_interface
+{
+public:
+ // construction/destruction
+ device_pty_interface(const machine_config &mconfig, device_t &device);
+ virtual ~device_pty_interface();
+
+ bool open(void);
+ void close(void);
+
+ bool is_open(void) const;
+
+ ssize_t read(UINT8 *rx_chars , size_t count);
+ void write(UINT8 tx_char);
+
+ bool is_slave_connected(void) const;
+
+ const char *slave_name(void) const;
+
+protected:
+ osd_file *m_pty_master;
+ std::string m_slave_name;
+ bool m_opened;
+};
+
+// iterator
+typedef device_interface_iterator<device_pty_interface> pty_interface_iterator;
+
+#endif /* __DIPTY_H__ */
diff --git a/src/emu/drivenum.c b/src/emu/drivenum.c
index 6d1590c030b..04ff2714e18 100644
--- a/src/emu/drivenum.c
+++ b/src/emu/drivenum.c
@@ -360,7 +360,7 @@ void driver_enumerator::find_approximate_matches(const char *string, int count,
if (m_included[index])
{
// skip things that can't run
- if ((s_drivers_sorted[index]->flags & GAME_NO_STANDALONE) != 0)
+ if ((s_drivers_sorted[index]->flags & MACHINE_NO_STANDALONE) != 0)
continue;
// pick the best match between driver name and description
diff --git a/src/emu/drivenum.h b/src/emu/drivenum.h
index 672c24d2c3e..096d8b873a1 100644
--- a/src/emu/drivenum.h
+++ b/src/emu/drivenum.h
@@ -36,7 +36,7 @@ public:
// any item by index
static const game_driver &driver(int index) { assert(index >= 0 && index < s_driver_count); return *s_drivers_sorted[index]; }
static int clone(int index) { return find(driver(index).parent); }
- static int non_bios_clone(int index) { int result = find(driver(index).parent); return (result != -1 && (driver(result).flags & GAME_IS_BIOS_ROOT) == 0) ? result : -1; }
+ static int non_bios_clone(int index) { int result = find(driver(index).parent); return (result != -1 && (driver(result).flags & MACHINE_IS_BIOS_ROOT) == 0) ? result : -1; }
static int compatible_with(int index) { return find(driver(index).compatible_with); }
// any item by driver
diff --git a/src/emu/drivers/empty.c b/src/emu/drivers/empty.c
index 7a4c08ac256..215af57190b 100644
--- a/src/emu/drivers/empty.c
+++ b/src/emu/drivers/empty.c
@@ -71,4 +71,4 @@ ROM_END
// GAME DRIVERS
//**************************************************************************
-GAME( 2007, ___empty, 0, ___empty, 0, driver_device, 0, ROT0, "MAME", "No Driver Loaded", GAME_NO_SOUND )
+GAME( 2007, ___empty, 0, ___empty, 0, driver_device, 0, ROT0, "MAME", "No Driver Loaded", MACHINE_NO_SOUND )
diff --git a/src/emu/drivers/emudummy.c b/src/emu/drivers/emudummy.c
index 4010fde9f57..948be2f2987 100644
--- a/src/emu/drivers/emudummy.c
+++ b/src/emu/drivers/emudummy.c
@@ -33,4 +33,4 @@ ROM_START( __dummy )
ROM_END
-GAME( 1900, __dummy, 0, __dummy, 0, driver_device, 0, ROT0, "(none)", "Dummy", GAME_NO_SOUND )
+GAME( 1900, __dummy, 0, __dummy, 0, driver_device, 0, ROT0, "(none)", "Dummy", MACHINE_NO_SOUND )
diff --git a/src/emu/drivers/testcpu.c b/src/emu/drivers/testcpu.c
index b76bbe23d06..d3d077f025b 100644
--- a/src/emu/drivers/testcpu.c
+++ b/src/emu/drivers/testcpu.c
@@ -209,4 +209,4 @@ ROM_END
// GAME DRIVERS
//**************************************************************************
-GAME( 2012, testcpu, 0, testcpu, 0, driver_device, 0, ROT0, "MAME", "CPU Tester", GAME_NO_SOUND )
+GAME( 2012, testcpu, 0, testcpu, 0, driver_device, 0, ROT0, "MAME", "CPU Tester", MACHINE_NO_SOUND )
diff --git a/src/emu/emu.h b/src/emu/emu.h
index 93015100645..969ee94f50e 100644
--- a/src/emu/emu.h
+++ b/src/emu/emu.h
@@ -78,6 +78,7 @@ typedef device_t * (*machine_config_constructor)(machine_config &config, device_
#include "schedule.h"
#include "timer.h"
#include "dinetwork.h"
+#include "dipty.h"
// machine and driver configuration
#include "mconfig.h"
diff --git a/src/emu/emuopts.c b/src/emu/emuopts.c
index b0efd442101..21128e53e93 100644
--- a/src/emu/emuopts.c
+++ b/src/emu/emuopts.c
@@ -202,6 +202,10 @@ const options_entry emu_options::s_option_entries[] =
emu_options::emu_options()
: core_options()
+, m_coin_impulse(0)
+, m_joystick_contradictory(false)
+, m_sleep(true)
+, m_refresh_speed(false)
{
add_entries(emu_options::s_option_entries);
}
@@ -380,6 +384,8 @@ bool emu_options::parse_slot_devices(int argc, char *argv[], std::string &error_
result = core_options::parse_command_line(argc, argv, OPTION_PRIORITY_CMDLINE, error_string);
} while (num != options_count());
+ update_cached_options();
+
return result;
}
@@ -393,7 +399,9 @@ bool emu_options::parse_command_line(int argc, char *argv[], std::string &error_
{
// parse as normal
core_options::parse_command_line(argc, argv, OPTION_PRIORITY_CMDLINE, error_string);
- return parse_slot_devices(argc, argv, error_string, NULL, NULL);
+ bool result = parse_slot_devices(argc, argv, error_string, NULL, NULL);
+ update_cached_options();
+ return result;
}
@@ -427,13 +435,13 @@ void emu_options::parse_standard_inis(std::string &error_string)
else
parse_one_ini("horizont", OPTION_PRIORITY_ORIENTATION_INI, &error_string);
- if (cursystem->flags & GAME_TYPE_ARCADE)
+ if (cursystem->flags & MACHINE_TYPE_ARCADE)
parse_one_ini("arcade", OPTION_PRIORITY_SYSTYPE_INI, &error_string);
- else if (cursystem->flags & GAME_TYPE_CONSOLE)
+ else if (cursystem->flags & MACHINE_TYPE_CONSOLE)
parse_one_ini("console", OPTION_PRIORITY_SYSTYPE_INI, &error_string);
- else if (cursystem->flags & GAME_TYPE_COMPUTER)
+ else if (cursystem->flags & MACHINE_TYPE_COMPUTER)
parse_one_ini("computer", OPTION_PRIORITY_SYSTYPE_INI, &error_string);
- else if (cursystem->flags & GAME_TYPE_OTHER)
+ else if (cursystem->flags & MACHINE_TYPE_OTHER)
parse_one_ini("othersys", OPTION_PRIORITY_SYSTYPE_INI, &error_string);
machine_config config(*cursystem, *this);
@@ -480,6 +488,8 @@ void emu_options::parse_standard_inis(std::string &error_string)
// Re-evaluate slot options after loading ini files
update_slot_options();
+
+ update_cached_options();
}
@@ -582,3 +592,18 @@ const char *emu_options::sub_value(std::string &buffer, const char *name, const
buffer.clear();
return buffer.c_str();
}
+
+
+//-------------------------------------------------
+// update_cached_options - to prevent tagmap
+// lookups keep copies of frequently requested
+// options in member variables.
+//-------------------------------------------------
+
+void emu_options::update_cached_options()
+{
+ m_coin_impulse = int_value(OPTION_COIN_IMPULSE);
+ m_joystick_contradictory = bool_value(OPTION_JOYSTICK_CONTRADICTORY);
+ m_sleep = bool_value(OPTION_SLEEP);
+ m_refresh_speed = bool_value(OPTION_REFRESHSPEED);
+}
diff --git a/src/emu/emuopts.h b/src/emu/emuopts.h
index e471edfe95a..0bbeb6ae3d7 100644
--- a/src/emu/emuopts.h
+++ b/src/emu/emuopts.h
@@ -266,9 +266,9 @@ public:
int frameskip() const { return int_value(OPTION_FRAMESKIP); }
int seconds_to_run() const { return int_value(OPTION_SECONDS_TO_RUN); }
bool throttle() const { return bool_value(OPTION_THROTTLE); }
- bool sleep() const { return bool_value(OPTION_SLEEP); }
+ bool sleep() const { return m_sleep; }
float speed() const { return float_value(OPTION_SPEED); }
- bool refresh_speed() const { return bool_value(OPTION_REFRESHSPEED); }
+ bool refresh_speed() const { return m_refresh_speed; }
// core rotation options
bool rotate() const { return bool_value(OPTION_ROTATE); }
@@ -327,8 +327,8 @@ public:
bool ui_active() const { return bool_value(OPTION_UI_ACTIVE); }
bool offscreen_reload() const { return bool_value(OPTION_OFFSCREEN_RELOAD); }
bool natural_keyboard() const { return bool_value(OPTION_NATURAL_KEYBOARD); }
- bool joystick_contradictory() const { return bool_value(OPTION_JOYSTICK_CONTRADICTORY); }
- int coin_impulse() const { return int_value(OPTION_COIN_IMPULSE); }
+ bool joystick_contradictory() const { return m_joystick_contradictory; }
+ int coin_impulse() const { return m_coin_impulse; }
// core debugging options
bool log() const { return bool_value(OPTION_LOG); }
@@ -382,7 +382,16 @@ private:
// INI parsing helper
bool parse_one_ini(const char *basename, int priority, std::string *error_string = NULL);
+ // cache frequently used options in members
+ void update_cached_options();
+
static const options_entry s_option_entries[];
+
+ // cached options
+ int m_coin_impulse;
+ bool m_joystick_contradictory;
+ bool m_sleep;
+ bool m_refresh_speed;
};
diff --git a/src/emu/emupal.c b/src/emu/emupal.c
index c4190456567..b1bda17bc98 100644
--- a/src/emu/emupal.c
+++ b/src/emu/emupal.c
@@ -816,6 +816,72 @@ void palette_device::palette_init_monochrome_yellow(palette_device &palette)
/*-------------------------------------------------
+ 3bit_rgb - 8-color rgb
+-------------------------------------------------*/
+
+void palette_device::palette_init_3bit_rgb(palette_device &palette)
+{
+ for (int i = 0; i < 8; i++)
+ palette.set_pen_color(i, rgb_t(pal1bit(i >> 0), pal1bit(i >> 1), pal1bit(i >> 2)));
+}
+
+
+/*-------------------------------------------------
+ 3bit_rbg - 8-color rgb
+-------------------------------------------------*/
+
+void palette_device::palette_init_3bit_rbg(palette_device &palette)
+{
+ for (int i = 0; i < 8; i++)
+ palette.set_pen_color(i, rgb_t(pal1bit(i >> 0), pal1bit(i >> 2), pal1bit(i >> 1)));
+}
+
+
+/*-------------------------------------------------
+ 3bit_brg - 8-color rgb
+-------------------------------------------------*/
+
+void palette_device::palette_init_3bit_brg(palette_device &palette)
+{
+ for (int i = 0; i < 8; i++)
+ palette.set_pen_color(i, rgb_t(pal1bit(i >> 1), pal1bit(i >> 2), pal1bit(i >> 0)));
+}
+
+
+/*-------------------------------------------------
+ 3bit_grb - 8-color rgb
+-------------------------------------------------*/
+
+void palette_device::palette_init_3bit_grb(palette_device &palette)
+{
+ for (int i = 0; i < 8; i++)
+ palette.set_pen_color(i, rgb_t(pal1bit(i >> 1), pal1bit(i >> 0), pal1bit(i >> 2)));
+}
+
+
+/*-------------------------------------------------
+ 3bit_gbr - 8-color rgb
+-------------------------------------------------*/
+
+void palette_device::palette_init_3bit_gbr(palette_device &palette)
+{
+ for (int i = 0; i < 8; i++)
+ palette.set_pen_color(i, rgb_t(pal1bit(i >> 2), pal1bit(i >> 0), pal1bit(i >> 1)));
+}
+
+
+/*-------------------------------------------------
+ 3bit_bgr - 8-color rgb
+-------------------------------------------------*/
+
+void palette_device::palette_init_3bit_bgr(palette_device &palette)
+{
+ for (int i = 0; i < 8; i++)
+ palette.set_pen_color(i, rgb_t(pal1bit(i >> 2), pal1bit(i >> 1), pal1bit(i >> 0)));
+}
+
+
+/*-------------------------------------------------
RRRR_GGGG_BBBB - standard 4-4-4 palette,
assuming the commonly used resistor values:
@@ -900,16 +966,6 @@ void palette_device::palette_init_RRRRRGGGGGGBBBBB(palette_device &palette)
palette.set_pen_color(i, rgbexpand<5,6,5>(i, 11, 5, 0));
}
-
-rgb_t raw_to_rgb_converter::BBGGRRII_decoder(UINT32 raw)
-{
- UINT8 i = raw & 3;
- UINT8 r = pal4bit(((raw >> 0) & 0x0c) | i);
- UINT8 g = pal4bit(((raw >> 2) & 0x0c) | i);
- UINT8 b = pal4bit(((raw >> 4) & 0x0c) | i);
- return rgb_t(r, g, b);
-}
-
rgb_t raw_to_rgb_converter::IRRRRRGGGGGBBBBB_decoder(UINT32 raw)
{
UINT8 i = (raw >> 15) & 1;
diff --git a/src/emu/emupal.h b/src/emu/emupal.h
index a8879ba4730..1b6bfb296a5 100644
--- a/src/emu/emupal.h
+++ b/src/emu/emupal.h
@@ -119,8 +119,14 @@
#define PALETTE_FORMAT_BBGGGRRR raw_to_rgb_converter(1, &raw_to_rgb_converter::standard_rgb_decoder<3,3,2, 0,3,6>)
#define PALETTE_FORMAT_RRRGGGBB raw_to_rgb_converter(1, &raw_to_rgb_converter::standard_rgb_decoder<3,3,2, 5,2,0>)
-// standard 2-2-2-2 formats
-#define PALETTE_FORMAT_BBGGRRII raw_to_rgb_converter(1, &raw_to_rgb_converter::BBGGRRII_decoder)
+// data-inverted 3-3-2 formats
+#define PALETTE_FORMAT_BBGGGRRR_inverted raw_to_rgb_converter(1, &raw_to_rgb_converter::inverted_rgb_decoder<3,3,2, 0,3,6>)
+#define PALETTE_FORMAT_RRRGGGBB_inverted raw_to_rgb_converter(1, &raw_to_rgb_converter::inverted_rgb_decoder<3,3,2, 5,2,0>)
+
+// standard 3-3-3 formats
+#define PALETTE_FORMAT_xxxxxxxBBBGGGRRR raw_to_rgb_converter(2, &raw_to_rgb_converter::standard_rgb_decoder<3,3,3, 0,3,6>)
+#define PALETTE_FORMAT_xxxxxxxRRRBBBGGG raw_to_rgb_converter(2, &raw_to_rgb_converter::standard_rgb_decoder<3,3,3, 6,0,3>)
+#define PALETTE_FORMAT_xxxxxxxRRRGGGBBB raw_to_rgb_converter(2, &raw_to_rgb_converter::standard_rgb_decoder<3,3,3, 6,3,0>)
// standard 4-4-4 formats
#define PALETTE_FORMAT_xxxxBBBBGGGGRRRR raw_to_rgb_converter(2, &raw_to_rgb_converter::standard_rgb_decoder<4,4,4, 0,4,8>)
@@ -140,12 +146,16 @@
#define PALETTE_FORMAT_xRRRRRGGGGGBBBBB raw_to_rgb_converter(2, &raw_to_rgb_converter::standard_rgb_decoder<5,5,5, 10,5,0>)
#define PALETTE_FORMAT_xGGGGGRRRRRBBBBB raw_to_rgb_converter(2, &raw_to_rgb_converter::standard_rgb_decoder<5,5,5, 5,10,0>)
#define PALETTE_FORMAT_xGGGGGBBBBBRRRRR raw_to_rgb_converter(2, &raw_to_rgb_converter::standard_rgb_decoder<5,5,5, 0,10,5>)
-#define PALETTE_FORMAT_RRRRRGGGGGBBBBBx raw_to_rgb_converter(2, &raw_to_rgb_converter::standard_rgb_decoder<5,5,5, 11,6,1>)
+#define PALETTE_FORMAT_BBBBBRRRRRGGGGGx raw_to_rgb_converter(2, &raw_to_rgb_converter::standard_rgb_decoder<5,5,5, 6,1,11>)
#define PALETTE_FORMAT_GGGGGRRRRRBBBBBx raw_to_rgb_converter(2, &raw_to_rgb_converter::standard_rgb_decoder<5,5,5, 6,11,1>)
+#define PALETTE_FORMAT_RRRRRGGGGGBBBBBx raw_to_rgb_converter(2, &raw_to_rgb_converter::standard_rgb_decoder<5,5,5, 11,6,1>)
#define PALETTE_FORMAT_RRRRGGGGBBBBRGBx raw_to_rgb_converter(2, &raw_to_rgb_converter::RRRRGGGGBBBBRGBx_decoder)
#define PALETTE_FORMAT_xRGBRRRRGGGGBBBB_bit0 raw_to_rgb_converter(2, &raw_to_rgb_converter::xRGBRRRRGGGGBBBB_bit0_decoder)
#define PALETTE_FORMAT_xRGBRRRRGGGGBBBB_bit4 raw_to_rgb_converter(2, &raw_to_rgb_converter::xRGBRRRRGGGGBBBB_bit4_decoder)
+// data-inverted 5-5-5 formats
+#define PALETTE_FORMAT_xRRRRRBBBBBGGGGG_inverted raw_to_rgb_converter(2, &raw_to_rgb_converter::inverted_rgb_decoder<5,5,5, 10,0,5>)
+
// standard 5-6-5 formats
#define PALETTE_FORMAT_RRRRRGGGGGGBBBBB raw_to_rgb_converter(2, &raw_to_rgb_converter::standard_rgb_decoder<5,6,5, 11,5,0>)
#define PALETTE_FORMAT_BBBBBGGGGGGRRRRR raw_to_rgb_converter(2, &raw_to_rgb_converter::standard_rgb_decoder<5,6,5, 0,5,11>)
@@ -232,6 +242,30 @@
MCFG_PALETTE_ADD(_tag, 2) \
palette_device::static_set_init(*device, palette_init_delegate(FUNC(palette_device::palette_init_monochrome_yellow), downcast<palette_device *>(device)));
+#define MCFG_PALETTE_ADD_3BIT_RGB(_tag) \
+ MCFG_PALETTE_ADD(_tag, 8) \
+ palette_device::static_set_init(*device, palette_init_delegate(FUNC(palette_device::palette_init_3bit_rgb), downcast<palette_device *>(device)));
+
+#define MCFG_PALETTE_ADD_3BIT_RBG(_tag) \
+ MCFG_PALETTE_ADD(_tag, 8) \
+ palette_device::static_set_init(*device, palette_init_delegate(FUNC(palette_device::palette_init_3bit_rbg), downcast<palette_device *>(device)));
+
+#define MCFG_PALETTE_ADD_3BIT_BRG(_tag) \
+ MCFG_PALETTE_ADD(_tag, 8) \
+ palette_device::static_set_init(*device, palette_init_delegate(FUNC(palette_device::palette_init_3bit_brg), downcast<palette_device *>(device)));
+
+#define MCFG_PALETTE_ADD_3BIT_GRB(_tag) \
+ MCFG_PALETTE_ADD(_tag, 8) \
+ palette_device::static_set_init(*device, palette_init_delegate(FUNC(palette_device::palette_init_3bit_grb), downcast<palette_device *>(device)));
+
+#define MCFG_PALETTE_ADD_3BIT_GBR(_tag) \
+ MCFG_PALETTE_ADD(_tag, 8) \
+ palette_device::static_set_init(*device, palette_init_delegate(FUNC(palette_device::palette_init_3bit_gbr), downcast<palette_device *>(device)));
+
+#define MCFG_PALETTE_ADD_3BIT_BGR(_tag) \
+ MCFG_PALETTE_ADD(_tag, 8) \
+ palette_device::static_set_init(*device, palette_init_delegate(FUNC(palette_device::palette_init_3bit_bgr), downcast<palette_device *>(device)));
+
#define MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB(_tag) \
MCFG_PALETTE_ADD(_tag, 32768) \
palette_device::static_set_init(*device, palette_init_delegate(FUNC(palette_device::palette_init_RRRRRGGGGGBBBBB), downcast<palette_device *>(device)));
@@ -294,6 +328,17 @@ public:
UINT8 b = palexpand<_BlueBits>(raw >> _BlueShift);
return rgb_t(r, g, b);
}
+
+ // data-inverted generic raw-to-RGB conversion helpers
+ template<int _RedBits, int _GreenBits, int _BlueBits, int _RedShift, int _GreenShift, int _BlueShift>
+ static rgb_t inverted_rgb_decoder(UINT32 raw)
+ {
+ UINT8 r = palexpand<_RedBits>(~raw >> _RedShift);
+ UINT8 g = palexpand<_GreenBits>(~raw >> _GreenShift);
+ UINT8 b = palexpand<_BlueBits>(~raw >> _BlueShift);
+ return rgb_t(r, g, b);
+ }
+
template<int _IntBits, int _RedBits, int _GreenBits, int _BlueBits, int _IntShift, int _RedShift, int _GreenShift, int _BlueShift>
static rgb_t standard_irgb_decoder(UINT32 raw)
{
@@ -305,7 +350,6 @@ public:
}
// other standard decoders
- static rgb_t BBGGRRII_decoder(UINT32 raw);
static rgb_t IRRRRRGGGGGBBBBB_decoder(UINT32 raw);
static rgb_t RRRRGGGGBBBBRGBx_decoder(UINT32 raw); // bits 3/2/1 are LSb
static rgb_t xRGBRRRRGGGGBBBB_bit0_decoder(UINT32 raw); // bits 14/13/12 are LSb
@@ -359,6 +403,9 @@ public:
// setters
void set_pen_color(pen_t pen, rgb_t rgb) { m_palette->entry_set_color(pen, rgb); }
+ void set_pen_red_level(pen_t pen, UINT8 level) { m_palette->entry_set_red_level(pen, level); }
+ void set_pen_green_level(pen_t pen, UINT8 level) { m_palette->entry_set_green_level(pen, level); }
+ void set_pen_blue_level(pen_t pen, UINT8 level) { m_palette->entry_set_blue_level(pen, level); }
void set_pen_color(pen_t pen, UINT8 r, UINT8 g, UINT8 b) { m_palette->entry_set_color(pen, rgb_t(r, g, b)); }
void set_pen_colors(pen_t color_base, const rgb_t *colors, int color_count) { while (color_count--) set_pen_color(color_base++, *colors++); }
void set_pen_colors(pen_t color_base, const std::vector<rgb_t> &colors) { for(unsigned int i=0; i != colors.size(); i++) set_pen_color(color_base+i, colors[i]); }
@@ -396,6 +443,12 @@ public:
void palette_init_monochrome_green(palette_device &palette);
void palette_init_monochrome_green_highlight(palette_device &palette);
void palette_init_monochrome_yellow(palette_device &palette);
+ void palette_init_3bit_rgb(palette_device &palette);
+ void palette_init_3bit_rbg(palette_device &palette);
+ void palette_init_3bit_brg(palette_device &palette);
+ void palette_init_3bit_grb(palette_device &palette);
+ void palette_init_3bit_gbr(palette_device &palette);
+ void palette_init_3bit_bgr(palette_device &palette);
void palette_init_RRRRGGGGBBBB_proms(palette_device &palette);
void palette_init_RRRRRGGGGGBBBBB(palette_device &palette);
void palette_init_BBBBBGGGGGRRRRR(palette_device &palette);
diff --git a/src/emu/gamedrv.h b/src/emu/gamedrv.h
index 36263aec1e1..db5e02f31cc 100644
--- a/src/emu/gamedrv.h
+++ b/src/emu/gamedrv.h
@@ -22,32 +22,32 @@
const int MAX_DRIVER_NAME_CHARS = 8;
// flags for game drivers
-const UINT32 ORIENTATION_MASK = 0x00000007;
-const UINT32 GAME_NOT_WORKING = 0x00000008;
-const UINT32 GAME_UNEMULATED_PROTECTION = 0x00000010; // game's protection not fully emulated
-const UINT32 GAME_WRONG_COLORS = 0x00000020; // colors are totally wrong
-const UINT32 GAME_IMPERFECT_COLORS = 0x00000040; // colors are not 100% accurate, but close
-const UINT32 GAME_IMPERFECT_GRAPHICS = 0x00000080; // graphics are wrong/incomplete
-const UINT32 GAME_NO_COCKTAIL = 0x00000100; // screen flip support is missing
-const UINT32 GAME_NO_SOUND = 0x00000200; // sound is missing
-const UINT32 GAME_IMPERFECT_SOUND = 0x00000400; // sound is known to be wrong
-const UINT32 GAME_SUPPORTS_SAVE = 0x00000800; // game supports save states
-const UINT32 GAME_IS_BIOS_ROOT = 0x00001000; // this driver entry is a BIOS root
-const UINT32 GAME_NO_STANDALONE = 0x00002000; // this driver cannot stand alone
-const UINT32 GAME_REQUIRES_ARTWORK = 0x00004000; // the driver requires external artwork for key elements of the game
-const UINT32 GAME_UNOFFICIAL = 0x00008000; // unofficial hardware change
-const UINT32 GAME_NO_SOUND_HW = 0x00010000; // sound hardware not available
-const UINT32 GAME_MECHANICAL = 0x00020000; // contains mechanical parts (pinball, redemption games,...)
-const UINT32 GAME_TYPE_ARCADE = 0x00040000; // arcade machine (coin operated machines)
-const UINT32 GAME_TYPE_CONSOLE = 0x00080000; // console system
-const UINT32 GAME_TYPE_COMPUTER = 0x00100000; // any kind of computer including home computers, minis, calcs,...
-const UINT32 GAME_TYPE_OTHER = 0x00200000; // any other emulated system that doesn't fit above (ex. clock, satelite receiver,...)
-const UINT32 GAME_IMPERFECT_KEYBOARD = 0x00400000; // keyboard is known to be wrong
-const UINT32 GAME_CLICKABLE_ARTWORK = 0x00800000; // marking that artwork is clickable and require mouse cursor
+const UINT32 ORIENTATION_MASK = 0x00000007;
+const UINT32 MACHINE_NOT_WORKING = 0x00000008;
+const UINT32 MACHINE_UNEMULATED_PROTECTION = 0x00000010; // game's protection not fully emulated
+const UINT32 MACHINE_WRONG_COLORS = 0x00000020; // colors are totally wrong
+const UINT32 MACHINE_IMPERFECT_COLORS = 0x00000040; // colors are not 100% accurate, but close
+const UINT32 MACHINE_IMPERFECT_GRAPHICS = 0x00000080; // graphics are wrong/incomplete
+const UINT32 MACHINE_NO_COCKTAIL = 0x00000100; // screen flip support is missing
+const UINT32 MACHINE_NO_SOUND = 0x00000200; // sound is missing
+const UINT32 MACHINE_IMPERFECT_SOUND = 0x00000400; // sound is known to be wrong
+const UINT32 MACHINE_SUPPORTS_SAVE = 0x00000800; // game supports save states
+const UINT32 MACHINE_IS_BIOS_ROOT = 0x00001000; // this driver entry is a BIOS root
+const UINT32 MACHINE_NO_STANDALONE = 0x00002000; // this driver cannot stand alone
+const UINT32 MACHINE_REQUIRES_ARTWORK = 0x00004000; // the driver requires external artwork for key elements of the game
+const UINT32 MACHINE_UNOFFICIAL = 0x00008000; // unofficial hardware change
+const UINT32 MACHINE_NO_SOUND_HW = 0x00010000; // sound hardware not available
+const UINT32 MACHINE_MECHANICAL = 0x00020000; // contains mechanical parts (pinball, redemption games,...)
+const UINT32 MACHINE_TYPE_ARCADE = 0x00040000; // arcade machine (coin operated machines)
+const UINT32 MACHINE_TYPE_CONSOLE = 0x00080000; // console system
+const UINT32 MACHINE_TYPE_COMPUTER = 0x00100000; // any kind of computer including home computers, minis, calcs,...
+const UINT32 MACHINE_TYPE_OTHER = 0x00200000; // any other emulated system that doesn't fit above (ex. clock, satelite receiver,...)
+const UINT32 MACHINE_IMPERFECT_KEYBOARD = 0x00400000; // keyboard is known to be wrong
+const UINT32 MACHINE_CLICKABLE_ARTWORK = 0x00800000; // marking that artwork is clickable and require mouse cursor
// useful combinations of flags
-const UINT32 GAME_IS_SKELETON = GAME_NO_SOUND | GAME_NOT_WORKING; // mask for skelly games
-const UINT32 GAME_IS_SKELETON_MECHANICAL = GAME_IS_SKELETON | GAME_MECHANICAL | GAME_REQUIRES_ARTWORK; // mask for skelly mechanical games
+const UINT32 MACHINE_IS_SKELETON = MACHINE_NO_SOUND | MACHINE_NOT_WORKING; // mask for skelly games
+const UINT32 MACHINE_IS_SKELETON_MECHANICAL = MACHINE_IS_SKELETON | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK; // mask for skelly mechanical games
@@ -111,7 +111,7 @@ extern const game_driver GAME_NAME(NAME) = \
&driver_device::driver_init_wrapper<CLASS, &CLASS::init_##INIT>, \
ROM_NAME(NAME), \
NULL, \
- (MONITOR)|(FLAGS)|GAME_TYPE_ARCADE, \
+ (MONITOR)|(FLAGS)|MACHINE_TYPE_ARCADE, \
&LAYOUT[0] \
};
@@ -130,7 +130,7 @@ extern const game_driver GAME_NAME(NAME) = \
&driver_device::driver_init_wrapper<CLASS, &CLASS::init_##INIT>, \
ROM_NAME(NAME), \
#COMPAT, \
- ROT0|(FLAGS)|GAME_TYPE_CONSOLE, \
+ ROT0|(FLAGS)|MACHINE_TYPE_CONSOLE, \
NULL \
};
@@ -149,7 +149,7 @@ extern const game_driver GAME_NAME(NAME) = \
&driver_device::driver_init_wrapper<CLASS, &CLASS::init_##INIT>, \
ROM_NAME(NAME), \
#COMPAT, \
- ROT0|(FLAGS)|GAME_TYPE_COMPUTER, \
+ ROT0|(FLAGS)|MACHINE_TYPE_COMPUTER, \
NULL \
};
@@ -168,7 +168,7 @@ extern const game_driver GAME_NAME(NAME) = \
&driver_device::driver_init_wrapper<CLASS, &CLASS::init_##INIT>, \
ROM_NAME(NAME), \
#COMPAT, \
- ROT0|(FLAGS)|GAME_TYPE_OTHER, \
+ ROT0|(FLAGS)|MACHINE_TYPE_OTHER, \
NULL \
};
diff --git a/src/emu/info.c b/src/emu/info.c
index d87cc529bb0..25ea424130f 100644
--- a/src/emu/info.c
+++ b/src/emu/info.c
@@ -233,7 +233,7 @@ void info_xml_creator::output_one()
{
// no action if not a game
const game_driver &driver = m_drivlist.driver();
- if (driver.flags & GAME_NO_STANDALONE)
+ if (driver.flags & MACHINE_NO_STANDALONE)
return;
// allocate input ports
@@ -257,16 +257,16 @@ void info_xml_creator::output_one()
fprintf(m_output, " sourcefile=\"%s\"", xml_normalize_string(start + 1));
// append bios and runnable flags
- if (driver.flags & GAME_IS_BIOS_ROOT)
+ if (driver.flags & MACHINE_IS_BIOS_ROOT)
fprintf(m_output, " isbios=\"yes\"");
- if (driver.flags & GAME_NO_STANDALONE)
+ if (driver.flags & MACHINE_NO_STANDALONE)
fprintf(m_output, " runnable=\"no\"");
- if (driver.flags & GAME_MECHANICAL)
+ if (driver.flags & MACHINE_MECHANICAL)
fprintf(m_output, " ismechanical=\"yes\"");
// display clone information
int clone_of = m_drivlist.find(driver.parent);
- if (clone_of != -1 && !(m_drivlist.driver(clone_of).flags & GAME_IS_BIOS_ROOT))
+ if (clone_of != -1 && !(m_drivlist.driver(clone_of).flags & MACHINE_IS_BIOS_ROOT))
fprintf(m_output, " cloneof=\"%s\"", xml_normalize_string(m_drivlist.driver(clone_of).name));
if (clone_of != -1)
fprintf(m_output, " romof=\"%s\"", xml_normalize_string(m_drivlist.driver(clone_of).name));
@@ -1169,44 +1169,44 @@ void info_xml_creator::output_driver()
/* some minor issues, games marked as status=preliminary */
/* don't work or have major emulation problems. */
- if (m_drivlist.driver().flags & (GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_NO_SOUND | GAME_WRONG_COLORS | GAME_MECHANICAL))
+ if (m_drivlist.driver().flags & (MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_MECHANICAL))
fprintf(m_output, " status=\"preliminary\"");
- else if (m_drivlist.driver().flags & (GAME_IMPERFECT_COLORS | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS))
+ else if (m_drivlist.driver().flags & (MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS))
fprintf(m_output, " status=\"imperfect\"");
else
fprintf(m_output, " status=\"good\"");
- if (m_drivlist.driver().flags & GAME_NOT_WORKING)
+ if (m_drivlist.driver().flags & MACHINE_NOT_WORKING)
fprintf(m_output, " emulation=\"preliminary\"");
else
fprintf(m_output, " emulation=\"good\"");
- if (m_drivlist.driver().flags & GAME_WRONG_COLORS)
+ if (m_drivlist.driver().flags & MACHINE_WRONG_COLORS)
fprintf(m_output, " color=\"preliminary\"");
- else if (m_drivlist.driver().flags & GAME_IMPERFECT_COLORS)
+ else if (m_drivlist.driver().flags & MACHINE_IMPERFECT_COLORS)
fprintf(m_output, " color=\"imperfect\"");
else
fprintf(m_output, " color=\"good\"");
- if (m_drivlist.driver().flags & GAME_NO_SOUND)
+ if (m_drivlist.driver().flags & MACHINE_NO_SOUND)
fprintf(m_output, " sound=\"preliminary\"");
- else if (m_drivlist.driver().flags & GAME_IMPERFECT_SOUND)
+ else if (m_drivlist.driver().flags & MACHINE_IMPERFECT_SOUND)
fprintf(m_output, " sound=\"imperfect\"");
else
fprintf(m_output, " sound=\"good\"");
- if (m_drivlist.driver().flags & GAME_IMPERFECT_GRAPHICS)
+ if (m_drivlist.driver().flags & MACHINE_IMPERFECT_GRAPHICS)
fprintf(m_output, " graphic=\"imperfect\"");
else
fprintf(m_output, " graphic=\"good\"");
- if (m_drivlist.driver().flags & GAME_NO_COCKTAIL)
+ if (m_drivlist.driver().flags & MACHINE_NO_COCKTAIL)
fprintf(m_output, " cocktail=\"preliminary\"");
- if (m_drivlist.driver().flags & GAME_UNEMULATED_PROTECTION)
+ if (m_drivlist.driver().flags & MACHINE_UNEMULATED_PROTECTION)
fprintf(m_output, " protection=\"preliminary\"");
- if (m_drivlist.driver().flags & GAME_SUPPORTS_SAVE)
+ if (m_drivlist.driver().flags & MACHINE_SUPPORTS_SAVE)
fprintf(m_output, " savestate=\"supported\"");
else
fprintf(m_output, " savestate=\"unsupported\"");
diff --git a/src/emu/ioport.c b/src/emu/ioport.c
index b085104b9b5..1514462e579 100644
--- a/src/emu/ioport.c
+++ b/src/emu/ioport.c
@@ -2902,12 +2902,11 @@ g_profiler.start(PROFILER_INPUT);
ioport_field *mouse_field = NULL;
if (mouse_button && mouse_target != NULL)
{
- const char *tag = NULL;
+ ioport_port *port = NULL;
ioport_value mask;
float x, y;
- if (mouse_target->map_point_input(mouse_target_x, mouse_target_y, tag, mask, x, y))
+ if (mouse_target->map_point_input(mouse_target_x, mouse_target_y, port, mask, x, y))
{
- ioport_port *port = machine().root_device().ioport(tag);
if (port != NULL)
mouse_field = port->field(mask);
}
@@ -3443,9 +3442,11 @@ void ioport_manager::playback_frame(const attotime &curtime)
if (m_playback_file.is_open())
{
// first the absolute time
- attotime readtime;
- playback_read(readtime.seconds);
- playback_read(readtime.attoseconds);
+ seconds_t seconds_temp;
+ attoseconds_t attoseconds_temp;
+ playback_read(seconds_temp);
+ playback_read(attoseconds_temp);
+ attotime readtime(seconds_temp, attoseconds_temp);
if (readtime != curtime)
playback_end("Out of sync");
@@ -3582,8 +3583,8 @@ void ioport_manager::record_frame(const attotime &curtime)
if (m_record_file.is_open())
{
// first the absolute time
- record_write(curtime.seconds);
- record_write(curtime.attoseconds);
+ record_write(curtime.seconds());
+ record_write(curtime.attoseconds());
// then the current speed
record_write(UINT32(machine().video().speed_percent() * double(1 << 20)));
diff --git a/src/emu/ioport.h b/src/emu/ioport.h
index 4839fe34272..623a3083253 100644
--- a/src/emu/ioport.h
+++ b/src/emu/ioport.h
@@ -1200,7 +1200,6 @@ public:
const char *tag() const { return m_tag.c_str(); }
int modcount() const { return m_modcount; }
ioport_value active() const { return m_active; }
- ioport_value active_safe(ioport_value defval) const { return (this == NULL) ? defval : active(); }
ioport_port_live &live() const { assert(m_live != NULL); return *m_live; }
// read/write to the port
diff --git a/src/emu/luaengine.c b/src/emu/luaengine.c
index 588c8334eff..b5c9764fb77 100644
--- a/src/emu/luaengine.c
+++ b/src/emu/luaengine.c
@@ -958,6 +958,8 @@ void lua_engine::initialize()
.addFunction ("exit", &running_machine::schedule_exit)
.addFunction ("hard_reset", &running_machine::schedule_hard_reset)
.addFunction ("soft_reset", &running_machine::schedule_soft_reset)
+ .addFunction ("save", &running_machine::schedule_save)
+ .addFunction ("load", &running_machine::schedule_load)
.addFunction ("system", &running_machine::system)
.addProperty <luabridge::LuaRef, void> ("devices", &lua_engine::l_machine_get_devices)
.addProperty <luabridge::LuaRef, void> ("screens", &lua_engine::l_machine_get_screens)
diff --git a/src/emu/machine.c b/src/emu/machine.c
index c5da99961d4..3f0eb5a9c15 100644
--- a/src/emu/machine.c
+++ b/src/emu/machine.c
@@ -275,6 +275,8 @@ void running_machine::start()
if ((debug_flags & DEBUG_FLAG_ENABLED) != 0)
debugger_init(*this);
+ m_render->resolve_tags();
+
// call the game driver's init function
// this is where decryption is done and memory maps are altered
// so this location in the init order is important
@@ -293,7 +295,7 @@ void running_machine::start()
schedule_load(savegame);
// if we're in autosave mode, schedule a load
- else if (options().autosave() && (m_system.flags & GAME_SUPPORTS_SAVE) != 0)
+ else if (options().autosave() && (m_system.flags & MACHINE_SUPPORTS_SAVE) != 0)
schedule_load("auto");
// set up the cheat engine
@@ -339,7 +341,7 @@ int running_machine::run(bool firstrun)
m_current_phase = MACHINE_PHASE_INIT;
// if we have a logfile, set up the callback
- if (options().log())
+ if (options().log() && &system() != &GAME_NAME(___empty))
{
m_logfile.reset(global_alloc(emu_file(OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS)));
file_error filerr = m_logfile->open("error.log");
@@ -501,7 +503,7 @@ void running_machine::schedule_exit()
#endif
// if we're autosaving on exit, schedule a save as well
- if (options().autosave() && (m_system.flags & GAME_SUPPORTS_SAVE) && this->time() > attotime::zero)
+ if (options().autosave() && (m_system.flags & MACHINE_SUPPORTS_SAVE) && this->time() > attotime::zero)
schedule_save("auto");
}
@@ -848,7 +850,7 @@ void running_machine::base_datetime(system_time &systime)
void running_machine::current_datetime(system_time &systime)
{
- systime.set(m_base_time + this->time().seconds);
+ systime.set(m_base_time + this->time().seconds());
}
@@ -935,7 +937,7 @@ void running_machine::handle_saveload()
break;
case STATERR_NONE:
- if (!(m_system.flags & GAME_SUPPORTS_SAVE))
+ if (!(m_system.flags & MACHINE_SUPPORTS_SAVE))
popmessage("State successfully %s.\nWarning: Save states are not officially supported for this game.", opnamed);
else
popmessage("State successfully %s.", opnamed);
@@ -1349,10 +1351,11 @@ void system_time::full_time::set(struct tm &t)
static running_machine * jsmess_machine;
-void js_main_loop() {
+void js_main_loop()
+{
device_scheduler * scheduler;
scheduler = &(jsmess_machine->scheduler());
- attotime stoptime = scheduler->time() + attotime(0,HZ_TO_ATTOSECONDS(60));
+ attotime stoptime(scheduler->time() + attotime(0,HZ_TO_ATTOSECONDS(60)));
while (scheduler->time() < stoptime) {
scheduler->timeslice();
}
diff --git a/src/emu/machine/at29040a.c b/src/emu/machine/at29040a.c
deleted file mode 100644
index 3285b265792..00000000000
--- a/src/emu/machine/at29040a.c
+++ /dev/null
@@ -1,446 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Raphael Nabet, Michael Zapf
-/*
- Atmel at29c040a flash EEPROM
-
- 512k*8 FEEPROM, organized in pages of 256 bytes.
-
- References:
- Datasheets were found on Atmel's site (www.atmel.com)
-
- Raphael Nabet 2003
-
- September 2010: Rewritten as device
- February 2012: Rewritten as class
-*/
-
-#include "at29040a.h"
-
-#define VERBOSE 2
-#define LOG logerror
-
-#define FEEPROM_SIZE 0x80000
-#define SECTOR_SIZE 0x00100
-#define BOOT_BLOCK_SIZE 0x04000
-
-#define ADDRESS_MASK 0x7ffff
-#define SECTOR_ADDRESS_MASK 0x7ff00
-#define BYTE_ADDRESS_MASK 0x000ff
-
-#define PRG_TIMER 1
-
-#define VERSION 0
-
-/*
- Constructor.
-*/
-at29040a_device::at29040a_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
-: device_t(mconfig, AT29040A, "ATMEL 29040A 512K*8 FEEPROM", tag, owner, clock, "at29040a", __FILE__),
- device_nvram_interface(mconfig, *this)
-{
-}
-
-//-------------------------------------------------
-// nvram_default - called to initialize NVRAM to
-// its default state
-//-------------------------------------------------
-
-void at29040a_device::nvram_default()
-{
- memset(m_eememory, 0, FEEPROM_SIZE+2);
-}
-
-//-------------------------------------------------
-// nvram_read - called to read NVRAM from the
-// .nv file
-//-------------------------------------------------
-
-void at29040a_device::nvram_read(emu_file &file)
-{
- file.read(m_eememory, FEEPROM_SIZE+2);
-}
-
-//-------------------------------------------------
-// nvram_write - called to write NVRAM to the
-// .nv file
-//-------------------------------------------------
-
-void at29040a_device::nvram_write(emu_file &file)
-{
- m_eememory[0] = VERSION;
- file.write(m_eememory, FEEPROM_SIZE+2);
-}
-
-/*
- programming timer callback
-*/
-void at29040a_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
-{
- switch (m_pgm)
- {
- case PGM_1:
- /* programming cycle timeout */
- if (VERBOSE>7) LOG("at29040a: Programming cycle timeout\n");
- m_pgm = PGM_0;
- break;
-
- case PGM_2:
- /* programming cycle start */
- if (VERBOSE>7) LOG("at29040a: Sector write start\n");
- m_pgm = PGM_3;
- /* max delay 10ms, typical delay 5 to 7 ms */
- m_programming_timer->adjust(attotime::from_msec(5));
- break;
-
- case PGM_3:
- /* programming cycle end */
- memcpy(m_eememory + 2 + (m_programming_last_offset & ~0xff), m_programming_buffer, SECTOR_SIZE);
- if (VERBOSE>7) LOG("at29040a: Sector write completed at location %04x + 2\n", (m_programming_last_offset & ~0xff));
- if (m_enabling_sdb)
- {
- m_sdp = true;
- }
- if (m_disabling_sdb)
- {
- m_sdp = false;
- }
- if (VERBOSE>7) LOG("at29040a: Software data protection = %d\n", m_sdp);
-
- m_pgm = PGM_0;
- m_enabling_sdb = false;
- m_disabling_sdb = false;
-
- break;
-
- default:
- if (VERBOSE>1) LOG("internal error in %s %d\n", __FILE__, __LINE__);
- break;
- }
-}
-
-void at29040a_device::sync_flags()
-{
- if (m_lower_bbl) m_eememory[1] |= 0x04;
- else m_eememory[1] &= ~0x04;
-
- if (m_higher_bbl) m_eememory[1] |= 0x02;
- else m_eememory[1] &= ~0x02;
-
- if (m_sdp) m_eememory[1] |= 0x01;
- else m_eememory[1] &= ~0x01;
-}
-
-/*
- read a byte from FEEPROM
-*/
-READ8_MEMBER( at29040a_device::read )
-{
- int reply;
-
- offset &= ADDRESS_MASK;
-
- /* reading in the midst of any command sequence cancels it (right???) */
- m_cmd = CMD_0;
- m_long_sequence = false;
- // m_higher_bbl = true; // who says that?
-
- sync_flags();
-
- /* reading before the start of a programming cycle cancels it (right???) */
- if (m_pgm == PGM_1)
- {
- // attempt to access a locked out boot block: cancel programming
- // command if necessary
- m_pgm = PGM_0;
- m_enabling_sdb = false;
- m_disabling_sdb = false;
- m_programming_timer->adjust(attotime::never);
- }
-
- if (m_id_mode)
- {
- switch (offset)
- {
- case 0x00000:
- reply = 0x1f; // Manufacturer code
- break;
-
- case 0x00001:
- reply = 0xa4; // Device code
- break;
-
- case 0x00002:
- reply = m_lower_bbl? 0xff : 0xfe;
- break;
-
- case 0x7fff2:
- reply = m_higher_bbl? 0xff : 0xfe;
- break;
-
- default:
- reply = 0;
- break;
- }
- }
- else if ((m_pgm == PGM_2) || (m_pgm == PGM_3))
- {
- if (m_pgm == PGM_2)
- { // DATA* polling starts the programming cycle (right???)
- m_pgm = PGM_3;
- /* max delay 10ms, typical delay 5 to 7 ms */
- m_programming_timer->adjust(attotime::from_msec(5));
- }
-
- reply = m_toggle_bit? 0x02 : 0x00;
- m_toggle_bit = !m_toggle_bit;
-
- if ((offset == m_programming_last_offset) && (! (m_programming_buffer[m_programming_last_offset & 0xff] & 0x01)))
- reply |= 0x01;
- }
- else
- reply = m_eememory[offset+2];
-
- if (VERBOSE>7) LOG("at29040a: %05x -> %02x\n", offset, reply);
-
- return reply;
-}
-
-/*
- Write a byte to FEEPROM
-*/
-WRITE8_MEMBER( at29040a_device::write )
-{
- offset &= ADDRESS_MASK;
- if (VERBOSE>7) LOG("at29040a: %05x <- %02x\n", offset, data);
-
- /* The special CFI commands assume a smaller address space according */
- /* to the specification ("address format A14-A0") */
- offs_t cfi_offset = offset & 0x7fff;
-
- if (m_enabling_bbl)
- {
- if (VERBOSE>7) LOG("at29040a: Enabling boot block lockout\n");
- m_enabling_bbl = false;
-
- if ((offset == 0x00000) && (data == 0x00))
- {
- if (VERBOSE>7) LOG("at29040a: Enabling lower boot block lockout\n");
- m_lower_bbl = true;
- sync_flags();
- return;
- }
- else
- {
- if ((offset == 0x7ffff) && (data == 0xff))
- {
- if (VERBOSE>7) LOG("at29040a: Enabling higher boot block lockout\n");
- m_higher_bbl = true;
- sync_flags();
- return;
- }
- else
- {
- if (VERBOSE>1) LOG("at29040a: Invalid boot block specification: %05x/%02x\n", offset, data);
- }
- }
- }
-
- switch (m_cmd)
- {
- case CMD_0:
- if ((cfi_offset == 0x5555) && (data == 0xaa))
- {
- if (VERBOSE>7) LOG("at29040a: Command sequence started\n");
- m_cmd = CMD_1;
- }
- else
- {
- m_cmd = CMD_0;
- m_long_sequence = false;
- }
- break;
-
- case CMD_1:
- if ((cfi_offset == 0x2aaa) && (data == 0x55))
- {
- m_cmd = CMD_2;
- }
- else
- {
- m_cmd = CMD_0;
- m_long_sequence = false;
- if (VERBOSE>7) LOG("at29040a: Command sequence aborted\n");
- }
- break;
-
- case CMD_2:
- if (cfi_offset == 0x5555)
- {
- if (!m_long_sequence)
- if (VERBOSE>7) LOG("at29040a: Command sequence completed\n");
-
- m_pgm = PGM_0;
- m_enabling_sdb = false;
- m_disabling_sdb = false;
- m_programming_timer->adjust(attotime::never);
-
- /* process command */
- switch (data)
- {
- case 0x10:
- /* Software chip erase */
- if (m_long_sequence)
- {
- if (m_lower_bbl || m_higher_bbl)
- {
- if (VERBOSE>1) LOG("at29040a: Chip erase sequence deactivated due to previous boot block lockout.\n");
- }
- else
- {
- if (VERBOSE>7) LOG("at29040a: Erase chip\n");
- memset(m_eememory+2, 0xff, FEEPROM_SIZE);
- }
- }
- break;
-
- case 0x20:
- /* Software data protection disable */
- if (VERBOSE>7) LOG("at29040a: Software data protection disable\n");
- // The complete sequence is aa-55-80-aa-55-20
- // so we need a 80 before, else the sequence is invalid
- if (m_long_sequence)
- {
- m_pgm = PGM_1;
- m_disabling_sdb = true;
- /* set command timeout (right???) */
- //m_programming_timer->adjust(attotime::from_usec(150), id, 0.);
- }
- break;
-
- case 0x40:
- /* Boot block lockout enable */
- // Complete sequence is aa-55-80-aa-55-40
- if (VERBOSE>7) LOG("at29040a: Boot block lockout enable\n");
- if (m_long_sequence) m_enabling_bbl = true;
- break;
-
- case 0x80:
- m_long_sequence = true;
- break;
-
- case 0x90:
- /* Software product identification entry */
- if (VERBOSE>7) LOG("at29040a: Identification mode (start)\n");
- m_id_mode = true;
- break;
-
- case 0xa0:
- /* Software data protection enable */
- if (VERBOSE>7) LOG("at29040a: Software data protection enable\n");
- m_pgm = PGM_1;
- m_enabling_sdb = true;
- /* set command timeout (right???) */
- //m_programming_timer->adjust(attotime::from_usec(150), id, 0.);
- break;
-
- case 0xf0:
- /* Software product identification exit */
- if (VERBOSE>7) LOG("at29040a: Identification mode (end)\n");
- m_id_mode = false;
- break;
- }
- m_cmd = CMD_0;
- if (data != 0x80) m_long_sequence = false;
-
- /* return, because we don't want to write the EEPROM with the command byte */
- return;
- }
- else
- {
- m_cmd = CMD_0;
- m_long_sequence = false;
- }
- }
- if ((m_pgm == PGM_2)
- && ((offset & ~0xff) != (m_programming_last_offset & ~0xff)))
- {
- /* cancel current programming cycle */
- if (VERBOSE>7) LOG("at29040a: invalid sector change (from %05x to %05x); cancel programming cycle\n",(offset & ~0xff), (m_programming_last_offset & ~0xff));
- m_pgm = PGM_0;
- m_enabling_sdb = false;
- m_disabling_sdb = false;
- m_programming_timer->adjust(attotime::never);
- }
-
- if (((m_pgm == PGM_0) && !m_sdp) // write directly
- || (m_pgm == PGM_1)) // write after unlocking
- {
- if (((offset < BOOT_BLOCK_SIZE) && m_lower_bbl)
- || ((offset >= FEEPROM_SIZE-BOOT_BLOCK_SIZE) && m_higher_bbl))
- {
- // attempt to access a locked out boot block: cancel programming
- // command if necessary
- if (VERBOSE>7) LOG("at29040a: attempt to access a locked out boot block: offset = %05x, lowblock=%d, highblock=%d\n", offset, m_lower_bbl, m_higher_bbl);
-
- m_pgm = PGM_0;
- m_enabling_sdb = false;
- m_disabling_sdb = false;
- }
- else
- { /* enter programming mode */
- if (VERBOSE>7) LOG("at29040a: enter programming mode (m_pgm=%d)\n", m_pgm);
- memset(m_programming_buffer, 0xff, SECTOR_SIZE);
- m_pgm = PGM_2;
- }
- }
- if (m_pgm == PGM_2)
- {
- /* write data to programming buffer */
- if (VERBOSE>7) LOG("at29040a: Write data to programming buffer\n");
- m_programming_buffer[offset & 0xff] = data;
- m_programming_last_offset = offset;
- m_programming_timer->adjust(attotime::from_usec(150)); // next byte must be written before the timer expires
- }
-}
-
-void at29040a_device::device_start(void)
-{
- m_programming_buffer = global_alloc_array(UINT8, SECTOR_SIZE);
- m_programming_timer = timer_alloc(PRG_TIMER);
-
- m_eememory = global_alloc_array(UINT8, FEEPROM_SIZE+2);
-}
-
-void at29040a_device::device_stop(void)
-{
- global_free_array(m_programming_buffer);
- global_free_array(m_eememory);
-}
-
-void at29040a_device::device_reset(void)
-{
- if (m_eememory[0] != VERSION)
- {
- if (VERBOSE>1) LOG("AT29040A: Warning: Version mismatch; expected %d but found %d for %s. Resetting.\n", VERSION, m_eememory[0], tag());
- m_eememory[0] = 0;
- m_eememory[1] = 0;
- }
-
- m_lower_bbl = ((m_eememory[1] & 0x04)!=0);
- m_higher_bbl = ((m_eememory[1] & 0x02)!=0);
- m_sdp = ((m_eememory[1] & 0x01)!=0);
-
- if (VERBOSE>7) LOG("at29040a (%s): LowerBBL = %d, HigherBBL = %d, SoftDataProt = %d\n", tag(), m_lower_bbl, m_higher_bbl, m_sdp);
-
- m_id_mode = false;
- m_cmd = CMD_0;
- m_enabling_bbl = false;
- m_long_sequence = false;
- m_pgm = PGM_0;
- m_enabling_sdb = false;
- m_disabling_sdb = false;
- m_toggle_bit = false;
- m_programming_last_offset = 0;
-}
-
-const device_type AT29040A = &device_creator<at29040a_device>;
diff --git a/src/emu/machine/at29040a.h b/src/emu/machine/at29040a.h
deleted file mode 100644
index 1af258fb719..00000000000
--- a/src/emu/machine/at29040a.h
+++ /dev/null
@@ -1,90 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Raphael Nabet, Michael Zapf
-/*
- ATMEL 29040a
-
- Michael Zapf
- September 2010: Rewritten as device
- February 2012: Rewritten as class
-*/
-
-#ifndef __AT29040__
-#define __AT29040__
-
-#include "emu.h"
-
-extern const device_type AT29040A;
-
-/*
- at29c40a state
-
- Command states (CMD_0 is the initial state):
- CMD_0: default state
- CMD_1: state after writing aa to 5555
- CMD_2: state after writing 55 to 2aaa
-
- Programming states (s_programming_0 is the initial state):
- PGM_0: default state
- PGM_1: a program and enable/disable lock command has been executed, but programming has not actually started.
- PGM_2: the programming buffer is being written to
- PGM_3: the programming buffer is being burnt to flash ROM
-*/
-enum s_cmd_t
-{
- CMD_0 = 0x0,
- CMD_1 = 0x1,
- CMD_2 = 0x2
-};
-
-enum s_pgm_t
-{
- PGM_0 = 0x0,
- PGM_1 = 0x1,
- PGM_2 = 0x2,
- PGM_3 = 0x3
-};
-
-class at29040a_device : public device_t, public device_nvram_interface
-{
-public:
- at29040a_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
- DECLARE_READ8_MEMBER( read );
- DECLARE_WRITE8_MEMBER( write );
-
-protected:
- virtual void device_start(void);
- virtual void device_reset(void);
- virtual void device_stop(void);
- virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
-
- void nvram_default();
- void nvram_read(emu_file &file);
- void nvram_write(emu_file &file);
-
-private:
- void sync_flags(void);
-
- UINT8* m_eememory;
-
- bool m_lower_bbl; /* set when lower boot block lockout is enabled */
- bool m_higher_bbl; /* set when upper boot block lockout is enabled */
- bool m_sdp; /* set when in software data protect mode */
-
- bool m_id_mode; /* set when in chip id mode */
- s_cmd_t m_cmd; /* command state */
- bool m_enabling_bbl; /* set when a boot block lockout command is expecting its parameter */
- bool m_long_sequence; /* set if 0x80 command has just been executed (some command require this prefix) */
- s_pgm_t m_pgm; /* programming state */
- bool m_enabling_sdb; /* set when a sdp enable command is in progress */
- bool m_disabling_sdb; /* set when a sdp disable command is in progress */
- //bool m_dirty; /* set when the memory contents should be set */
- bool m_toggle_bit; // indicates flashing in progress (toggles for each query)
- UINT8* m_programming_buffer;
- int m_programming_last_offset;
- emu_timer* m_programming_timer;
-};
-
-#define MCFG_AT29040A_ADD(_tag ) \
- MCFG_DEVICE_ADD(_tag, AT29040A, 0)
-
-#endif
diff --git a/src/emu/machine/i8271.c b/src/emu/machine/i8271.c
deleted file mode 100644
index 08e5944f4fc..00000000000
--- a/src/emu/machine/i8271.c
+++ /dev/null
@@ -1,1510 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Kevin Thacker
-/* Intel 8271 Floppy Disc Controller */
-/* used in BBC Micro B,Acorn Atom */
-/* Jun 2000. Kev Thacker */
-
-/* TODO:
-
- - Scan commands
- - Check the commands work properly using a BBC disc copier program
- - check if 0 is specified as number of sectors, how many sectors
- is actually transfered
- - deleted data functions (error if data finds deleted data?)
-*/
-
-
-#include "emu.h"
-#include "i8271.h"
-
-/* data request */
-#define I8271_FLAGS_DATA_REQUEST 0x01
-/* data direction. If 0x02, then it is from fdc to cpu, else
-it is from cpu to fdc */
-#define I8271_FLAGS_DATA_DIRECTION 0x02
-
-enum I8271_STATE_t
-{
- I8271_STATE_EXECUTION_READ = 0,
- I8271_STATE_EXECUTION_WRITE
-};
-
-/* commands accepted */
-#define I8271_COMMAND_SPECIFY 0x035
-#define I8271_COMMAND_SEEK 0x029
-#define I8271_COMMAND_READ_DRIVE_STATUS 0x02c
-#define I8271_COMMAND_READ_SPECIAL_REGISTER 0x03d
-#define I8271_COMMAND_WRITE_SPECIAL_REGISTER 0x03a
-#define I8271_COMMAND_FORMAT 0x023
-#define I8271_COMMAND_READ_ID 0x01b
-#define I8271_COMMAND_READ_DATA_SINGLE_RECORD 0x012
-#define I8271_COMMAND_READ_DATA_AND_DELETED_DATA_SINGLE_RECORD 0x016
-#define I8271_COMMAND_WRITE_DATA_SINGLE_RECORD 0x00a
-#define I8271_COMMAND_WRITE_DELETED_DATA_SINGLE_RECORD 0x00e
-#define I8271_COMMAND_VERIFY_DATA_AND_DELETED_DATA_SINGLE_RECORD 0x01e
-#define I8271_COMMAND_READ_DATA_MULTI_RECORD 0x013
-#define I8271_COMMAND_READ_DATA_AND_DELETED_DATA_MULTI_RECORD 0x017
-#define I8271_COMMAND_WRITE_DATA_MULTI_RECORD 0x00b
-#define I8271_COMMAND_WRITE_DELETED_DATA_MULTI_RECORD 0x00f
-#define I8271_COMMAND_VERIFY_DATA_AND_DELETED_DATA_MULTI_RECORD 0x01f
-#define I8271_COMMAND_SCAN_DATA 0x000
-#define I8271_COMMAND_SCAN_DATA_AND_DELETED_DATA 0x004
-
-/*
-#define I8271_COMMAND_READ_OPERATION (1<<4)
-#define I8271_COMMAND_DELETED_DATA (1<<2)
-#define I8271_COMMAND_MULTI_RECORD (1<<0)
-*/
-
-
-
-/* first parameter for specify command */
-#define I8271_SPECIFY_INITIALIZATION 0x0d
-#define I8271_SPECIFY_LOAD_BAD_TRACKS_SURFACE_0 0x010
-#define I8271_SPECIFY_LOAD_BAD_TRACKS_SURFACE_1 0x018
-
-/* first parameter for read/write special register */
-#define I8271_SPECIAL_REGISTER_SCAN_SECTOR_NUMBER 0x06
-#define I8271_SPECIAL_REGISTER_SCAN_MSB_OF_COUNT 0x014
-#define I8271_SPECIAL_REGISTER_SCAN_LSB_OF_COUNT 0x013
-#define I8271_SPECIAL_REGISTER_SURFACE_0_CURRENT_TRACK 0x012
-#define I8271_SPECIAL_REGISTER_SURFACE_1_CURRENT_TRACK 0x01a
-#define I8271_SPECIAL_REGISTER_MODE_REGISTER 0x017
-#define I8271_SPECIAL_REGISTER_DRIVE_CONTROL_OUTPUT_PORT 0x023
-#define I8271_SPECIAL_REGISTER_DRIVE_CONTROL_INPUT_PORT 0x022
-#define I8271_SPECIAL_REGISTER_SURFACE_0_BAD_TRACK_1 0x010
-#define I8271_SPECIAL_REGISTER_SURFACE_0_BAD_TRACK_2 0x011
-#define I8271_SPECIAL_REGISTER_SURFACE_1_BAD_TRACK_1 0x018
-#define I8271_SPECIAL_REGISTER_SURFACE_1_BAD_TRACK_2 0x019
-
-
-/* status register bits */
-#define I8271_STATUS_COMMAND_BUSY 0x080
-#define I8271_STATUS_COMMAND_FULL 0x040
-#define I8271_STATUS_PARAMETER_FULL 0x020
-#define I8271_STATUS_RESULT_FULL 0x010
-#define I8271_STATUS_INT_REQUEST 0x008
-#define I8271_STATUS_NON_DMA_REQUEST 0x004
-
-#define VERBOSE 0
-
-#define LOG(x) do { if (VERBOSE) logerror x; } while (0)
-#define FDC_LOG(x) do { if (VERBOSE) logerror("I8271: %s\n",x); } while (0)
-#define FDC_LOG_COMMAND(x) do { if (VERBOSE) logerror("I8271: COMMAND %s\n",x); } while (0)
-
-
-/* Device Interface */
-
-const device_type I8271 = &device_creator<i8271_device>;
-
-i8271_device::i8271_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
- : device_t(mconfig, I8271, "Intel 8271", tag, owner, clock, "i8271", __FILE__),
- m_write_irq(*this),
- m_write_drq(*this),
- m_floppy_tag1(NULL),
- m_floppy_tag2(NULL),
- m_flags(0),
- m_state(0),
- m_Command(0),
- m_StatusRegister(0),
- m_CommandRegister(0),
- m_ResultRegister(0),
- m_ParameterRegister(0),
- m_ResetRegister(0),
- m_data(0),
- m_ParameterCount(0),
- m_ParameterCountWritten(0),
- m_Mode(0),
- m_drive(0),
- m_side(0),
- m_drive_control_output(0),
- m_drive_control_input(0),
- m_StepRate(0),
- m_HeadSettlingTime(0),
- m_IndexCountBeforeHeadUnload(0),
- m_HeadLoadTime(0),
- //m_ID_C(0),
- //m_ID_H(0),
- m_ID_R(0),
- m_ID_N(0),
- m_data_id(0),
- m_ExecutionPhaseTransferCount(0),
- m_ExecutionPhaseCount(0),
- m_Counter(0)
- //m_data_direction(0)
-{
- for (int i = 0; i < 8; i++ )
- {
- m_CommandParameters[i] = 0;
- }
-
- for (int i = 0; i < 2; i++ )
- {
- m_CurrentTrack[i] = 0;
- }
-
- for (int i = 0; i < 4; i++ )
- {
- m_BadTracks[i] = 0;
- }
-}
-
-//-------------------------------------------------
-// device_start - device-specific startup
-//-------------------------------------------------
-
-void i8271_device::device_start()
-{
- m_write_irq.resolve_safe();
- m_write_drq.resolve_safe();
-
- m_data_timer = timer_alloc(TIMER_DATA_CALLBACK);
- m_command_complete_timer = timer_alloc(TIMER_TIMED_COMMAND_COMPLETE);
- m_drive = 0;
- m_pExecutionPhaseData = auto_alloc_array(machine(), char, 0x4000);
-
- m_floppy[0] = machine().device<legacy_floppy_image_device>(m_floppy_tag1);
- m_floppy[1] = machine().device<legacy_floppy_image_device>(m_floppy_tag2);
-
- // register for state saving
- /*save_item(NAME(m_flags));
- save_item(NAME(m_state));
- save_item(NAME(m_Command));
- save_item(NAME(m_StatusRegister));
- save_item(NAME(m_CommandRegister));
- save_item(NAME(m_ResultRegister));
- save_item(NAME(m_ParameterRegister));
- save_item(NAME(m_ResetRegister));
- save_item(NAME(m_data));
- //save_item(NAME(m_ParameterCount));
- //save_item(NAME(m_ParameterCountWritten));
- save_item(NAME(m_CommandParameters));
- //save_item(NAME(m_CurrentTrack));
- //save_item(NAME(m_BadTracks));
- //save_item(NAME(m_Mode));
- save_item(NAME(m_drive));
- save_item(NAME(m_side));
- save_item(NAME(m_drive_control_output));
- save_item(NAME(m_drive_control_input));
- //save_item(NAME(m_StepRate));
- //save_item(NAME(m_HeadSettlingTime));
- //save_item(NAME(m_IndexCountBeforeHeadUnload));
- //save_item(NAME(m_HeadLoadTime));
- save_item(NAME(m_ID_C));
- save_item(NAME(m_ID_H));
- save_item(NAME(m_ID_R));
- save_item(NAME(m_ID_N));
- save_item(NAME(m_data_id));
- save_item(NAME(m_ExecutionPhaseTransferCount));
- save_item(NAME(m_ExecutionPhaseCount));
- save_item(NAME(m_Counter));
- save_item(NAME(m_data_direction));
- save_pointer(NAME(m_pExecutionPhaseData), 0x4000);*/
-}
-
-//-------------------------------------------------
-// device_reset - device-specific reset
-//-------------------------------------------------
-
-void i8271_device::device_reset()
-{
- m_StatusRegister = 0; //I8271_STATUS_INT_REQUEST | I8271_STATUS_NON_DMA_REQUEST;
- m_Mode = 0x0c0; /* bits 0, 1 are initialized to zero */
- m_ParameterCountWritten = 0;
- m_ParameterCount = 0;
-
- /* if timer is active remove */
- m_command_complete_timer->reset();
- m_data_timer->reset();
-
- /* clear irq */
- set_irq_state(0);
- /* clear dma */
- set_dma_drq();
-}
-
-void i8271_device::seek_to_track(int track)
-{
- if (track==0)
- {
- /* seek to track 0 */
- unsigned char StepCount = 0x0ff;
-
- /*logerror("step\n"); */
-
- /* track 0 not set, not seeked more than 255 tracks */
- while (m_floppy[m_drive]->floppy_tk00_r() && (StepCount != 0))
- {
-/* logerror("step\n"); */
- StepCount--;
- m_floppy[m_drive]->floppy_drive_seek(-1);
- }
-
- m_CurrentTrack[m_drive] = 0;
-
- /* failed to find track 0? */
- if (StepCount==0)
- {
- /* Completion Type: operator intervation probably required for recovery */
- /* Completion code: track 0 not found */
- m_ResultRegister |= (2<<3) | 2<<1;
- }
-
- /* step out - towards track 0 */
- m_drive_control_output &=~(1<<2);
- }
- else
- {
- signed int SignedTracks;
-
- /* calculate number of tracks to seek */
- SignedTracks = track - m_CurrentTrack[m_drive];
-
- /* step towards 0 */
- m_drive_control_output &= ~(1<<2);
-
- if (SignedTracks>0)
- {
- /* step away from 0 */
- m_drive_control_output |= (1<<2);
- }
-
-
- /* seek to track 0 */
- m_floppy[m_drive]->floppy_drive_seek(SignedTracks);
-
- m_CurrentTrack[m_drive] = track;
- }
-}
-
-void i8271_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
-{
- switch (id)
- {
- case TIMER_DATA_CALLBACK:
- /* ok, trigger data request now */
- data_request();
-
- /* stop it */
- m_data_timer->reset();
- break;
-
- case TIMER_TIMED_COMMAND_COMPLETE:
- command_complete(1,1);
-
- /* stop it, but don't allow it to be free'd */
- m_command_complete_timer->reset();
- break;
-
- default:
- break;
- }
-}
-
-/* setup a timed data request - data request will be triggered in a few usecs time */
-void i8271_device::timed_data_request()
-{
- int usecs;
- /* 64 for single density */
- usecs = 64;
-
- /* set timers */
- m_command_complete_timer->reset();
- m_data_timer->adjust(attotime::from_usec(usecs));
-}
-
-
-/* setup a irq to occur 128us later - in reality this would be much later, because the int would
-come after reading the two CRC bytes at least! This function is used when a irq is required at
-command completion. Required for read data and write data, where last byte could be missed! */
-void i8271_device::timed_command_complete()
-{
- int usecs;
-
- /* 64 for single density - 2 crc bytes later*/
- usecs = 64*2;
-
- /* set timers */
- m_data_timer->reset();
- m_command_complete_timer->adjust(attotime::from_usec(usecs));
-}
-
-void i8271_device::set_irq_state(int state)
-{
- m_StatusRegister &= ~I8271_STATUS_INT_REQUEST;
- if (state)
- {
- m_StatusRegister |= I8271_STATUS_INT_REQUEST;
- }
-
- m_write_irq((m_StatusRegister & I8271_STATUS_INT_REQUEST) ? ASSERT_LINE : CLEAR_LINE);
-}
-
-void i8271_device::set_dma_drq()
-{
- m_write_drq((m_flags & I8271_FLAGS_DATA_REQUEST) ? 1 : 0);
-}
-
-void i8271_device::load_bad_tracks(int surface)
-{
- m_BadTracks[(surface<<1) + 0] = m_CommandParameters[1];
- m_BadTracks[(surface<<1) + 1] = m_CommandParameters[2];
- m_CurrentTrack[surface] = m_CommandParameters[3];
-}
-
-void i8271_device::write_bad_track(int surface, int track, int data)
-{
- m_BadTracks[(surface<<1) + (track-1)] = data;
-}
-
-void i8271_device::write_current_track(int surface, int track)
-{
- m_CurrentTrack[surface] = track;
-}
-
-int i8271_device::read_current_track(int surface)
-{
- return m_CurrentTrack[surface];
-}
-
-int i8271_device::read_bad_track(int surface, int track)
-{
- return m_BadTracks[(surface<<1) + (track-1)];
-}
-
-void i8271_device::get_drive()
-{
- /* &40 = drive 0 side 0 */
- /* &80 = drive 1 side 0 */
-
-
-
- if (m_CommandRegister & (1<<6))
- {
- m_drive = 0;
- }
-
- if (m_CommandRegister & (1<<7))
- {
- m_drive = 1;
- }
-
-}
-
-void i8271_device::check_all_parameters_written()
-{
- if (m_ParameterCount == m_ParameterCountWritten)
- {
- m_StatusRegister &= ~I8271_STATUS_COMMAND_FULL;
-
- command_execute();
- }
-}
-
-
-void i8271_device::update_state()
-{
- switch (m_state)
- {
- /* fdc reading data and passing it to cpu which must read it */
- case I8271_STATE_EXECUTION_READ:
- {
- // /* if data request has been cleared, i.e. caused by a read of the register */
- // if ((m_flags & I8271_FLAGS_DATA_REQUEST)==0)
- {
- /* setup data with byte */
- m_data = m_pExecutionPhaseData[m_ExecutionPhaseCount];
-
-/* logerror("read data %02x\n", m_data); */
-
- /* update counters */
- m_ExecutionPhaseCount++;
- m_ExecutionPhaseTransferCount--;
-
- // logerror("Count: %04x\n", m_ExecutionPhaseCount);
- // logerror("Remaining: %04x\n", m_ExecutionPhaseTransferCount);
-
- /* completed? */
- if (m_ExecutionPhaseTransferCount==0)
- {
- /* yes */
-
- // logerror("sector read complete!\n");
- /* continue command */
- command_continue();
- }
- else
- {
- /* no */
-
- /* issue data request */
- timed_data_request();
- }
- }
- }
- break;
-
- /* fdc reading data and passing it to cpu which must read it */
- case I8271_STATE_EXECUTION_WRITE:
- {
- /* setup data with byte */
- m_pExecutionPhaseData[m_ExecutionPhaseCount] = m_data;
- /* update counters */
- m_ExecutionPhaseCount++;
- m_ExecutionPhaseTransferCount--;
-
- /* completed? */
- if (m_ExecutionPhaseTransferCount==0)
- {
- /* yes */
-
- /* continue command */
- command_continue();
- }
- else
- {
- /* no */
-
- /* issue data request */
- timed_data_request();
- }
- }
- break;
-
- default:
- break;
- }
-}
-
-void i8271_device::initialise_execution_phase_read(int transfer_size)
-{
- /* read */
- m_flags |= I8271_FLAGS_DATA_DIRECTION;
- m_ExecutionPhaseCount = 0;
- m_ExecutionPhaseTransferCount = transfer_size;
- m_state = I8271_STATE_EXECUTION_READ;
-}
-
-
-void i8271_device::initialise_execution_phase_write(int transfer_size)
-{
- /* write */
- m_flags &= ~I8271_FLAGS_DATA_DIRECTION;
- m_ExecutionPhaseCount = 0;
- m_ExecutionPhaseTransferCount = transfer_size;
- m_state = I8271_STATE_EXECUTION_WRITE;
-}
-
-/* for data transfers */
-void i8271_device::data_request()
-{
- m_flags |= I8271_FLAGS_DATA_REQUEST;
-
- if ((m_Mode & 0x01)!=0)
- {
- /* non-dma */
- m_StatusRegister |= I8271_STATUS_NON_DMA_REQUEST;
- /* set int */
- set_irq_state(1);
- }
- else
- {
- /* dma */
- m_StatusRegister &= ~I8271_STATUS_NON_DMA_REQUEST;
-
- set_dma_drq();
- }
-}
-
-void i8271_device::command_complete(int result, int int_rq)
-{
- /* not busy, and not a execution phase data request in non-dma mode */
- m_StatusRegister &= ~(I8271_STATUS_COMMAND_BUSY | I8271_STATUS_NON_DMA_REQUEST);
-
- if (result)
- {
- m_StatusRegister |= I8271_STATUS_RESULT_FULL;
- }
-
- if (int_rq)
- {
- /* trigger an int */
- set_irq_state(1);
- }
-
- /* correct?? */
- m_drive_control_output &=~1;
-}
-
-
-/* for data transfers */
-void i8271_device::clear_data_request()
-{
- m_flags &= ~I8271_FLAGS_DATA_REQUEST;
-
- if ((m_Mode & 0x01)!=0)
- {
- /* non-dma */
- m_StatusRegister &= ~I8271_STATUS_NON_DMA_REQUEST;
- /* set int */
- set_irq_state(0);
- }
- else
- {
- /* dma */
- set_dma_drq();
- }
-}
-
-
-void i8271_device::command_continue()
-{
- switch (m_Command)
- {
- case I8271_COMMAND_READ_DATA_MULTI_RECORD:
- case I8271_COMMAND_READ_DATA_SINGLE_RECORD:
- {
- /* completed all sectors? */
- m_Counter--;
- /* increment sector id */
- m_ID_R++;
-
- /* end command? */
- if (m_Counter==0)
- {
- timed_command_complete();
- return;
- }
-
- do_read();
- }
- break;
-
- case I8271_COMMAND_WRITE_DATA_MULTI_RECORD:
- case I8271_COMMAND_WRITE_DATA_SINGLE_RECORD:
- {
- /* put the buffer to the sector */
- m_floppy[m_drive]->floppy_drive_write_sector_data(m_side, m_data_id, m_pExecutionPhaseData, 1<<(m_ID_N+7),0);
-
- /* completed all sectors? */
- m_Counter--;
- /* increment sector id */
- m_ID_R++;
-
- /* end command? */
- if (m_Counter==0)
- {
- timed_command_complete();
- return;
- }
-
- do_write();
- }
- break;
-
- case I8271_COMMAND_READ_ID:
- {
- m_Counter--;
-
- if (m_Counter==0)
- {
- timed_command_complete();
- return;
- }
-
- do_read_id();
- }
- break;
-
- default:
- break;
- }
-}
-
-void i8271_device::do_read()
-{
- /* find the sector */
- if (find_sector())
- {
- /* get the sector into the buffer */
- m_floppy[m_drive]->floppy_drive_read_sector_data(m_side, m_data_id, m_pExecutionPhaseData, 1<<(m_ID_N+7));
-
- /* initialise for reading */
- initialise_execution_phase_read(1<<(m_ID_N+7));
-
- /* update state - gets first byte and triggers a data request */
- timed_data_request();
- return;
- }
- LOG(("error getting sector data\n"));
-
- timed_command_complete();
-}
-
-void i8271_device::do_read_id()
-{
- chrn_id id;
-
- /* get next id from disc */
- m_floppy[m_drive]->floppy_drive_get_next_id(m_side,&id);
-
- m_pExecutionPhaseData[0] = id.C;
- m_pExecutionPhaseData[1] = id.H;
- m_pExecutionPhaseData[2] = id.R;
- m_pExecutionPhaseData[3] = id.N;
-
- initialise_execution_phase_read(4);
-}
-
-
-void i8271_device::do_write()
-{
- /* find the sector */
- if (find_sector())
- {
- /* initialise for reading */
- initialise_execution_phase_write(1<<(m_ID_N+7));
-
- /* update state - gets first byte and triggers a data request */
- timed_data_request();
- return;
- }
- LOG(("error getting sector data\n"));
-
- timed_command_complete();
-}
-
-
-
-int i8271_device::find_sector()
-{
-// int track_count_attempt;
-
-// track_count_attempt
- /* find sector within one revolution of the disc - 2 index pulses */
-
- /* number of times we have seen index hole */
- int index_count = 0;
-
- /* get sector id's */
- do
- {
- chrn_id id;
-
- /* get next id from disc */
- if (m_floppy[m_drive]->floppy_drive_get_next_id(m_side,&id))
- {
- /* tested on Amstrad CPC - All bytes must match, otherwise
- a NO DATA error is reported */
- if (id.R == m_ID_R)
- {
- /* TODO: Is this correct? What about bad tracks? */
- if (id.C == m_CurrentTrack[m_drive])
- {
- m_data_id = id.data_id;
- return 1;
- }
- else
- {
- /* TODO: if track doesn't match, the real 8271 does a step */
-
-
- return 0;
- }
- }
- }
-
- /* index set? */
- if (m_floppy[m_drive]->floppy_drive_get_flag_state(FLOPPY_DRIVE_INDEX))
- {
- index_count++;
- }
-
- }
- while (index_count!=2);
-
- /* completion type: command/drive error */
- /* completion code: sector not found */
- m_ResultRegister |= (3<<3);
-
- return 0;
-}
-
-void i8271_device::command_execute()
-{
- /* clear it = good completion status */
- /* this will be changed if anything bad happens! */
- m_ResultRegister = 0;
-
- switch (m_Command)
- {
- case I8271_COMMAND_SPECIFY:
- {
- switch (m_CommandParameters[0])
- {
- case 0x0d:
- {
- LOG(("Initialization\n"));
- m_StepRate = m_CommandParameters[1];
- m_HeadSettlingTime = m_CommandParameters[2];
- m_IndexCountBeforeHeadUnload = (m_CommandParameters[3]>>4) & 0x0f;
- m_HeadLoadTime = (m_CommandParameters[3] & 0x0f);
- }
- break;
-
- case 0x010:
- {
- LOG(("Load bad Tracks Surface 0\n"));
- load_bad_tracks(0);
-
- }
- break;
-
- case 0x018:
- {
- LOG(("Load bad Tracks Surface 1\n"));
- load_bad_tracks(1);
-
- }
- break;
- }
-
- /* no result */
- command_complete(0,0);
- }
- break;
-
- case I8271_COMMAND_READ_SPECIAL_REGISTER:
- {
- /* unknown - what is read when a special register that isn't allowed is specified? */
- int data = 0x0ff;
-
- switch (m_CommandParameters[0])
- {
- case I8271_SPECIAL_REGISTER_MODE_REGISTER:
- {
- data = m_Mode;
- }
- break;
-
- case I8271_SPECIAL_REGISTER_SURFACE_0_CURRENT_TRACK:
- {
- data = read_current_track(0);
-
- }
- break;
-
- case I8271_SPECIAL_REGISTER_SURFACE_1_CURRENT_TRACK:
- {
- data = read_current_track(1);
- }
- break;
-
- case I8271_SPECIAL_REGISTER_SURFACE_0_BAD_TRACK_1:
- {
- data = read_bad_track(0,1);
- }
- break;
-
- case I8271_SPECIAL_REGISTER_SURFACE_0_BAD_TRACK_2:
- {
- data = read_bad_track(0,2);
- }
- break;
-
- case I8271_SPECIAL_REGISTER_SURFACE_1_BAD_TRACK_1:
- {
- data = read_bad_track(1,1);
- }
- break;
-
- case I8271_SPECIAL_REGISTER_SURFACE_1_BAD_TRACK_2:
- {
- data = read_bad_track(1,2);
- }
- break;
-
- case I8271_SPECIAL_REGISTER_DRIVE_CONTROL_OUTPUT_PORT:
- {
- FDC_LOG_COMMAND("Read Drive Control Output port\n");
-
- get_drive();
-
- /* assumption: select bits reflect the select bits from the previous
- command. i.e. read drive status */
- data = (m_drive_control_output & ~0x0c0) | (m_CommandRegister & 0x0c0);
- }
- break;
-
- case I8271_SPECIAL_REGISTER_DRIVE_CONTROL_INPUT_PORT:
- {
- /* bit 7: not used */
- /* bit 6: ready 1 */
- /* bit 5: write fault */
- /* bit 4: index */
- /* bit 3: wr prot */
- /* bit 2: rdy 0 */
- /* bit 1: track 0 */
- /* bit 0: cnt/opi */
-
- FDC_LOG_COMMAND("Read Drive Control Input port\n");
-
-
- m_drive_control_input = (1<<6) | (1<<2);
-
- /* bit 3 = 0 if write protected */
- m_drive_control_input |= m_floppy[m_drive]->floppy_wpt_r() << 3;
-
- /* bit 1 = 0 if head at track 0 */
- m_drive_control_input |= m_floppy[m_drive]->floppy_tk00_r() << 1;
-
- /* need to setup this register based on drive selected */
- data = m_drive_control_input;
- }
- break;
-
- }
-
- m_ResultRegister = data;
-
- command_complete(1,0);
- }
- break;
-
-
- case I8271_COMMAND_WRITE_SPECIAL_REGISTER:
- {
- switch (m_CommandParameters[0])
- {
- case I8271_SPECIAL_REGISTER_MODE_REGISTER:
- {
- /* TODO: Check bits 6-7 and 5-2 are valid */
- m_Mode = m_CommandParameters[1];
-
- if (m_Mode & 0x01)
- {
- LOG(("Mode: Non-DMA\n"));
- }
- else
- {
- LOG(("Mode: DMA\n"));
- }
-
- if (m_Mode & 0x02)
- {
- LOG(("Single actuator\n"));
- }
- else
- {
- LOG(("Double actuator\n"));
- }
- }
- break;
-
- case I8271_SPECIAL_REGISTER_SURFACE_0_CURRENT_TRACK:
- {
- LOG(("Surface 0 Current Track\n"));
- write_current_track(0, m_CommandParameters[1]);
- }
- break;
-
- case I8271_SPECIAL_REGISTER_SURFACE_1_CURRENT_TRACK:
- {
- LOG(("Surface 1 Current Track\n"));
- write_current_track(1, m_CommandParameters[1]);
- }
- break;
-
- case I8271_SPECIAL_REGISTER_SURFACE_0_BAD_TRACK_1:
- {
- LOG(("Surface 0 Bad Track 1\n"));
- write_bad_track(0, 1, m_CommandParameters[1]);
- }
- break;
-
- case I8271_SPECIAL_REGISTER_SURFACE_0_BAD_TRACK_2:
- {
- LOG(("Surface 0 Bad Track 2\n"));
- write_bad_track(0, 2,m_CommandParameters[1]);
- }
- break;
-
- case I8271_SPECIAL_REGISTER_SURFACE_1_BAD_TRACK_1:
- {
- LOG(("Surface 1 Bad Track 1\n"));
-
-
- write_bad_track(1, 1, m_CommandParameters[1]);
- }
- break;
-
- case I8271_SPECIAL_REGISTER_SURFACE_1_BAD_TRACK_2:
- {
- LOG(("Surface 1 Bad Track 2\n"));
-
- write_bad_track(1, 2, m_CommandParameters[1]);
- }
- break;
-
- case I8271_SPECIAL_REGISTER_DRIVE_CONTROL_OUTPUT_PORT:
- {
-// /* get drive selected */
-// m_drive = (m_CommandParameters[1]>>6) & 0x03;
-
- FDC_LOG_COMMAND("Write Drive Control Output port\n");
-
-
- if (m_CommandParameters[1] & 0x01)
- {
- LOG(("Write Enable\n"));
- }
- if (m_CommandParameters[1] & 0x02)
- {
- LOG(("Seek/Step\n"));
- }
- if (m_CommandParameters[1] & 0x04)
- {
- LOG(("Direction\n"));
- }
- if (m_CommandParameters[1] & 0x08)
- {
- LOG(("Load Head\n"));
- }
- if (m_CommandParameters[1] & 0x010)
- {
- LOG(("Low head current\n"));
- }
- if (m_CommandParameters[1] & 0x020)
- {
- LOG(("Write Fault Reset\n"));
- }
-
- LOG(("Select %02x\n", (m_CommandParameters[1] & 0x0c0)>>6));
-
- /* get drive */
- get_drive();
-
- /* on bbc dfs 09 this is the side select output */
- m_side = (m_CommandParameters[1]>>5) & 0x01;
-
- /* load head - on mini-sized drives this turns on the disc motor,
- on standard-sized drives this loads the head and turns the motor on */
- m_floppy[m_drive]->floppy_mon_w(!BIT(m_CommandParameters[1], 3));
- m_floppy[m_drive]->floppy_drive_set_ready_state(1, 1);
-
- /* step pin changed? if so perform a step in the direction indicated */
- if (((m_drive_control_output^m_CommandParameters[1]) & (1<<1))!=0)
- {
- /* step pin changed state? */
-
- if (BIT(m_CommandParameters[1], 1))
- {
- signed int signed_tracks;
-
- if (BIT(m_CommandParameters[1], 2))
- {
- signed_tracks = 1;
- }
- else
- {
- signed_tracks = -1;
- }
-
- m_floppy[m_drive]->floppy_drive_seek(signed_tracks);
- }
- }
-
- m_drive_control_output = m_CommandParameters[1];
-
-
- }
- break;
-
- case I8271_SPECIAL_REGISTER_DRIVE_CONTROL_INPUT_PORT:
- {
- FDC_LOG_COMMAND("Write Drive Control Input port\n");
-
- // m_drive_control_input = m_CommandParameters[1];
- }
- break;
-
- }
-
- /* write doesn't supply a result */
- command_complete(0,0);
- }
- break;
-
- case I8271_COMMAND_READ_DRIVE_STATUS:
- {
- unsigned char status;
-
- get_drive();
-
- /* no write fault */
- status = 0;
-
- status |= (1<<2) | (1<<6);
-
- /* these two do not appear to be set at all! ?? */
-
- if (m_floppy[0])
- {
- if (m_floppy[0]->floppy_drive_get_flag_state(FLOPPY_DRIVE_READY))
- {
- status |= (1 << 2);
- }
- }
-
- if (m_floppy[1])
- {
- if (m_floppy[1]->floppy_drive_get_flag_state(FLOPPY_DRIVE_READY))
- {
- status |= (1 << 6);
- }
- }
-
- /* bit 3 = 1 if write protected */
- status |= !m_floppy[m_drive]->floppy_wpt_r() << 3;
-
- /* bit 1 = 1 if head at track 0 */
- status |= !m_floppy[m_drive]->floppy_tk00_r() << 1;
-
- m_ResultRegister = status;
- command_complete(1,0);
-
- }
- break;
-
- case I8271_COMMAND_SEEK:
- {
- get_drive();
-
- seek_to_track(m_CommandParameters[0]);
-
- /* check for bad seek */
- timed_command_complete();
-
- }
- break;
-
- case I8271_COMMAND_READ_DATA_MULTI_RECORD:
- {
- /* N value as stored in ID field */
- m_ID_N = (m_CommandParameters[2]>>5) & 0x07;
-
- /* starting sector id */
- m_ID_R = m_CommandParameters[1];
-
- /* number of sectors to transfer */
- m_Counter = m_CommandParameters[2] & 0x01f;
-
-
- FDC_LOG_COMMAND("READ DATA MULTI RECORD");
-
- LOG(("Sector Count: %02x\n", m_Counter));
- LOG(("Track: %02x\n",m_CommandParameters[0]));
- LOG(("Sector: %02x\n", m_CommandParameters[1]));
- LOG(("Sector Length: %02x bytes\n", 1<<(m_ID_N+7)));
-
- get_drive();
-
- if (!m_floppy[m_drive]->floppy_drive_get_flag_state(FLOPPY_DRIVE_READY))
- {
- /* Completion type: operation intervention probably required for recovery */
- /* Completion code: Drive not ready */
- m_ResultRegister = (2<<3);
- timed_command_complete();
- }
- else
- {
- seek_to_track(m_CommandParameters[0]);
-
-
- do_read();
- }
-
- }
- break;
-
- case I8271_COMMAND_READ_DATA_SINGLE_RECORD:
- {
- FDC_LOG_COMMAND("READ DATA SINGLE RECORD");
-
- m_ID_N = 0;
- m_Counter = 1;
- m_ID_R = m_CommandParameters[1];
-
- LOG(("Sector Count: %02x\n", m_Counter));
- LOG(("Track: %02x\n",m_CommandParameters[0]));
- LOG(("Sector: %02x\n", m_CommandParameters[1]));
- LOG(("Sector Length: %02x bytes\n", 1<<(m_ID_N+7)));
-
- get_drive();
-
- if (!m_floppy[m_drive]->floppy_drive_get_flag_state(FLOPPY_DRIVE_READY))
- {
- /* Completion type: operation intervention probably required for recovery */
- /* Completion code: Drive not ready */
- m_ResultRegister = (2<<3);
- timed_command_complete();
- }
- else
- {
- seek_to_track(m_CommandParameters[0]);
-
- do_read();
- }
-
- }
- break;
-
- case I8271_COMMAND_WRITE_DATA_MULTI_RECORD:
- {
- /* N value as stored in ID field */
- m_ID_N = (m_CommandParameters[2]>>5) & 0x07;
-
- /* starting sector id */
- m_ID_R = m_CommandParameters[1];
-
- /* number of sectors to transfer */
- m_Counter = m_CommandParameters[2] & 0x01f;
-
- FDC_LOG_COMMAND("READ DATA MULTI RECORD");
-
- LOG(("Sector Count: %02x\n", m_Counter));
- LOG(("Track: %02x\n",m_CommandParameters[0]));
- LOG(("Sector: %02x\n", m_CommandParameters[1]));
- LOG(("Sector Length: %02x bytes\n", 1<<(m_ID_N+7)));
-
- get_drive();
-
- m_drive_control_output &=~1;
-
- if (!m_floppy[m_drive]->floppy_drive_get_flag_state(FLOPPY_DRIVE_READY))
- {
- /* Completion type: operation intervention probably required for recovery */
- /* Completion code: Drive not ready */
- m_ResultRegister = (2<<3);
- timed_command_complete();
- }
- else
- {
- if (m_floppy[m_drive]->floppy_wpt_r() == CLEAR_LINE)
- {
- /* Completion type: operation intervention probably required for recovery */
- /* Completion code: Drive write protected */
- m_ResultRegister = (2<<3) | (1<<1);
- timed_command_complete();
- }
- else
- {
- m_drive_control_output |=1;
-
- seek_to_track(m_CommandParameters[0]);
-
- do_write();
- }
- }
- }
- break;
-
- case I8271_COMMAND_WRITE_DATA_SINGLE_RECORD:
- {
- FDC_LOG_COMMAND("WRITE DATA SINGLE RECORD");
-
- m_ID_N = 0;
- m_Counter = 1;
- m_ID_R = m_CommandParameters[1];
-
-
- LOG(("Sector Count: %02x\n", m_Counter));
- LOG(("Track: %02x\n",m_CommandParameters[0]));
- LOG(("Sector: %02x\n", m_CommandParameters[1]));
- LOG(("Sector Length: %02x bytes\n", 1<<(m_ID_N+7)));
- get_drive();
-
- m_drive_control_output &=~1;
-
- if (!m_floppy[m_drive]->floppy_drive_get_flag_state(FLOPPY_DRIVE_READY))
- {
- /* Completion type: operation intervention probably required for recovery */
- /* Completion code: Drive not ready */
- m_ResultRegister = (2<<3);
- timed_command_complete();
- }
- else
- {
- if (m_floppy[m_drive]->floppy_wpt_r() == CLEAR_LINE)
- {
- /* Completion type: operation intervention probably required for recovery */
- /* Completion code: Drive write protected */
- m_ResultRegister = (2<<3) | (1<<1);
- timed_command_complete();
- }
- else
- {
- m_drive_control_output |=1;
-
- seek_to_track(m_CommandParameters[0]);
-
- do_write();
- }
- }
-
- }
- break;
-
-
- case I8271_COMMAND_READ_ID:
- {
- FDC_LOG_COMMAND("READ ID");
-
- LOG(("Track: %02x\n",m_CommandParameters[0]));
- LOG(("ID Field Count: %02x\n", m_CommandParameters[2]));
-
- get_drive();
-
- if (!m_floppy[m_drive]->floppy_drive_get_flag_state(FLOPPY_DRIVE_READY))
- {
- /* Completion type: operation intervention probably required for recovery */
- /* Completion code: Drive not ready */
- m_ResultRegister = (2<<3);
- timed_command_complete();
- }
- else
- {
- m_Counter = m_CommandParameters[2];
-
- seek_to_track(m_CommandParameters[0]);
-
- do_read_id();
- }
- }
- break;
-
- default:
- LOG(("ERROR Unrecognised Command\n"));
- break;
- }
-}
-
-
-
-WRITE8_MEMBER(i8271_device::write)
-{
- switch (offset & 3)
- {
- case 0:
- {
- LOG(("I8271 W Command Register: %02x\n", data));
-
- m_CommandRegister = data;
- m_Command = m_CommandRegister & 0x03f;
-
- m_StatusRegister |= I8271_STATUS_COMMAND_BUSY | I8271_STATUS_COMMAND_FULL;
- m_StatusRegister &= ~I8271_STATUS_PARAMETER_FULL | I8271_STATUS_RESULT_FULL;
- m_ParameterCountWritten = 0;
-
- switch (m_Command)
- {
- case I8271_COMMAND_SPECIFY:
- {
- FDC_LOG_COMMAND("SPECIFY");
-
- m_ParameterCount = 4;
- }
- break;
-
- case I8271_COMMAND_SEEK:
- {
- FDC_LOG_COMMAND("SEEK");
-
- m_ParameterCount = 1;
- }
- break;
-
- case I8271_COMMAND_READ_DRIVE_STATUS:
- {
- FDC_LOG_COMMAND("READ DRIVE STATUS");
-
- m_ParameterCount = 0;
- }
- break;
-
- case I8271_COMMAND_READ_SPECIAL_REGISTER:
- {
- FDC_LOG_COMMAND("READ SPECIAL REGISTER");
-
- m_ParameterCount = 1;
- }
- break;
-
- case I8271_COMMAND_WRITE_SPECIAL_REGISTER:
- {
- FDC_LOG_COMMAND("WRITE SPECIAL REGISTER");
-
- m_ParameterCount = 2;
- }
- break;
-
- case I8271_COMMAND_FORMAT:
- {
- m_ParameterCount = 5;
- }
- break;
-
- case I8271_COMMAND_READ_ID:
- {
- m_ParameterCount = 3;
-
- }
- break;
-
-
- case I8271_COMMAND_READ_DATA_SINGLE_RECORD:
- case I8271_COMMAND_READ_DATA_AND_DELETED_DATA_SINGLE_RECORD:
- case I8271_COMMAND_WRITE_DATA_SINGLE_RECORD:
- case I8271_COMMAND_WRITE_DELETED_DATA_SINGLE_RECORD:
- case I8271_COMMAND_VERIFY_DATA_AND_DELETED_DATA_SINGLE_RECORD:
- {
- m_ParameterCount = 2;
- }
- break;
-
- case I8271_COMMAND_READ_DATA_MULTI_RECORD:
- case I8271_COMMAND_READ_DATA_AND_DELETED_DATA_MULTI_RECORD:
- case I8271_COMMAND_WRITE_DATA_MULTI_RECORD:
- case I8271_COMMAND_WRITE_DELETED_DATA_MULTI_RECORD:
- case I8271_COMMAND_VERIFY_DATA_AND_DELETED_DATA_MULTI_RECORD:
- {
- m_ParameterCount = 3;
- }
- break;
-
- case I8271_COMMAND_SCAN_DATA:
- case I8271_COMMAND_SCAN_DATA_AND_DELETED_DATA:
- {
- m_ParameterCount = 5;
- }
- break;
-
-
-
-
-
-
- }
-
- check_all_parameters_written();
- }
- break;
-
- case 1:
- {
- LOG(("I8271 W Parameter Register: %02x\n",data));
- m_ParameterRegister = data;
-
- if (m_ParameterCount!=0)
- {
- m_CommandParameters[m_ParameterCountWritten] = data;
- m_ParameterCountWritten++;
- }
-
- check_all_parameters_written();
- }
- break;
-
- case 2:
- {
- LOG(("I8271 W Reset Register: %02x\n", data));
- if (((data ^ m_ResetRegister) & 0x01)!=0)
- {
- if ((data & 0x01)==0)
- {
- reset();
- }
- }
-
- m_ResetRegister = data;
-
-
- }
- break;
-
- default:
- break;
- }
-}
-
-READ8_MEMBER(i8271_device::read)
-{
- switch (offset & 3)
- {
- case 0:
- {
- /* bit 1,0 are zero other bits contain status data */
- m_StatusRegister &= ~0x03;
- LOG(("I8271 R Status Register: %02x\n",m_StatusRegister));
- return m_StatusRegister;
- }
-
- case 1:
- {
- if ((m_StatusRegister & I8271_STATUS_COMMAND_BUSY)==0)
- {
- /* clear IRQ */
- set_irq_state(0);
-
- m_StatusRegister &= ~I8271_STATUS_RESULT_FULL;
- LOG(("I8271 R Result Register %02x\n",m_ResultRegister));
- return m_ResultRegister;
- }
-
- /* not useful information when command busy */
- return 0x0ff;
- }
-
-
- default:
- break;
- }
-
- return 0x0ff;
-}
-
-
-/* to be completed! */
-READ8_MEMBER(i8271_device::dack_r)
-{
- return data_r(space, offset);
-}
-
-/* to be completed! */
-WRITE8_MEMBER(i8271_device::dack_w)
-{
- data_w(space, offset, data);
-}
-
-READ8_MEMBER(i8271_device::data_r)
-{
- clear_data_request();
-
- update_state();
-
- // logerror("I8271 R data: %02x\n",m_data);
-
-
- return m_data;
-}
-
-WRITE8_MEMBER(i8271_device::data_w)
-{
- m_data = data;
-
-// logerror("I8271 W data: %02x\n",m_data);
-
- clear_data_request();
-
- update_state();
-}
diff --git a/src/emu/machine/i8271.h b/src/emu/machine/i8271.h
deleted file mode 100644
index c73fb4b680c..00000000000
--- a/src/emu/machine/i8271.h
+++ /dev/null
@@ -1,165 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Kevin Thacker
-/*****************************************************************************
- *
- * machine/i8271.h
- *
- ****************************************************************************/
-
-#ifndef I8271_H_
-#define I8271_H_
-
-#include "imagedev/flopdrv.h"
-
-#define MCFG_I8271_IRQ_CALLBACK(_write) \
- devcb = &i8271_device::set_irq_wr_callback(*device, DEVCB_##_write);
-
-#define MCFG_I8271_DRQ_CALLBACK(_write) \
- devcb = &i8271_device::set_drq_wr_callback(*device, DEVCB_##_write);
-
-#define MCFG_I8271_FLOPPIES(_tag1, _tag2) \
- i8271_device::set_floppy_tags(*device, _tag1, _tag2);
-
-/***************************************************************************
- MACROS
-***************************************************************************/
-
-class i8271_device : public device_t
-{
-public:
- i8271_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
- ~i8271_device() {}
-
- template<class _Object> static devcb_base &set_irq_wr_callback(device_t &device, _Object object) { return downcast<i8271_device &>(device).m_write_irq.set_callback(object); }
- template<class _Object> static devcb_base &set_drq_wr_callback(device_t &device, _Object object) { return downcast<i8271_device &>(device).m_write_drq.set_callback(object); }
-
- static void set_floppy_tags(device_t &device, const char *tag1, const char *tag2)
- {
- i8271_device &dev = downcast<i8271_device &>(device);
- dev.m_floppy_tag1 = tag1;
- dev.m_floppy_tag2 = tag2;
- }
-
- DECLARE_READ8_MEMBER(read);
- DECLARE_WRITE8_MEMBER(write);
-
- DECLARE_READ8_MEMBER(dack_r);
- DECLARE_WRITE8_MEMBER(dack_w);
-
- DECLARE_READ8_MEMBER(data_r);
- DECLARE_WRITE8_MEMBER(data_w);
-
-protected:
- // device-level overrides
- virtual void device_start();
- virtual void device_reset();
- virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
-
-private:
- // internal state
- enum
- {
- TIMER_DATA_CALLBACK,
- TIMER_TIMED_COMMAND_COMPLETE
- };
-
- devcb_write_line m_write_irq;
- devcb_write_line m_write_drq;
-
- const char *m_floppy_tag1, *m_floppy_tag2;
- legacy_floppy_image_device *m_floppy[2];
-
- int m_flags;
- int m_state;
- unsigned char m_Command;
- unsigned char m_StatusRegister;
- unsigned char m_CommandRegister;
- unsigned char m_ResultRegister;
- unsigned char m_ParameterRegister;
- unsigned char m_ResetRegister;
- unsigned char m_data;
-
- /* number of parameters required after command is specified */
- unsigned long m_ParameterCount;
- /* number of parameters written so far */
- unsigned long m_ParameterCountWritten;
-
- unsigned char m_CommandParameters[8];
-
- /* current track for each drive */
- unsigned long m_CurrentTrack[2];
-
- /* 2 bad tracks for drive 0, followed by 2 bad tracks for drive 1 */
- unsigned long m_BadTracks[4];
-
- /* mode special register */
- unsigned long m_Mode;
-
-
- /* drive outputs */
- int m_drive;
- int m_side;
-
- /* drive control output special register */
- int m_drive_control_output;
- /* drive control input special register */
- int m_drive_control_input;
-
- unsigned long m_StepRate;
- unsigned long m_HeadSettlingTime;
- unsigned long m_IndexCountBeforeHeadUnload;
- unsigned long m_HeadLoadTime;
-
- /* id on disc to find */
- //int m_ID_C;
- //int m_ID_H;
- int m_ID_R;
- int m_ID_N;
-
- /* id of data for read/write */
- int m_data_id;
-
- int m_ExecutionPhaseTransferCount;
- char *m_pExecutionPhaseData;
- int m_ExecutionPhaseCount;
-
- /* sector counter and id counter */
- int m_Counter;
-
- /* ==0, to cpu, !=0 =from cpu */
- //int m_data_direction;
-
- emu_timer *m_data_timer;
- emu_timer *m_command_complete_timer;
-
- void seek_to_track(int track);
- void load_bad_tracks(int surface);
- void write_bad_track(int surface, int track, int data);
- void write_current_track(int surface, int track);
- int read_current_track(int surface);
- int read_bad_track(int surface, int track);
- void get_drive();
- void check_all_parameters_written();
- void update_state();
- void initialise_execution_phase_read(int transfer_size);
- void initialise_execution_phase_write(int transfer_size);
- void command_execute();
- void command_continue();
- void command_complete(int result, int int_rq);
- void timed_command_complete();
- void data_request();
- void clear_data_request();
- void timed_data_request();
- /* locate sector for read/write operation */
- int find_sector();
- /* do a read operation */
- void do_read();
- void do_write();
- void do_read_id();
- void set_irq_state(int);
- void set_dma_drq();
-};
-
-extern const device_type I8271;
-
-#endif /* I8271_H_ */
diff --git a/src/emu/mconfig.h b/src/emu/mconfig.h
index f17ea06e632..280866cf96a 100644
--- a/src/emu/mconfig.h
+++ b/src/emu/mconfig.h
@@ -62,7 +62,7 @@ public:
std::string m_perfect_cpu_quantum; // tag of CPU to use for "perfect" scheduling
INT32 m_watchdog_vblank_count; // number of VBLANKs until the watchdog kills us
attotime m_watchdog_time; // length of time until the watchdog kills us
- bool m_force_no_drc; // whether or not to force DRC off
+ bool m_force_no_drc; // whether or not to force DRC off
// other parameters
const char * m_default_layout; // default layout for this machine
diff --git a/src/emu/memory.c b/src/emu/memory.c
index 790597ed295..bf251912004 100644
--- a/src/emu/memory.c
+++ b/src/emu/memory.c
@@ -2311,6 +2311,30 @@ void address_space::install_bank_generic(offs_t addrstart, offs_t addrend, offs_
}
+void address_space::install_bank_generic(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, memory_bank *rbank, memory_bank *wbank)
+{
+ VPRINTF(("address_space::install_readwrite_bank(%s-%s mask=%s mirror=%s, read=\"%s\" / write=\"%s\")\n",
+ core_i64_hex_format(addrstart, m_addrchars), core_i64_hex_format(addrend, m_addrchars),
+ core_i64_hex_format(addrmask, m_addrchars), core_i64_hex_format(addrmirror, m_addrchars),
+ (rbank != NULL) ? rbank->tag() : "(none)", (wbank != NULL) ? wbank->tag() : "(none)"));
+
+ // map the read bank
+ if (rbank != NULL)
+ {
+ read().map_range(addrstart, addrend, addrmask, addrmirror, rbank->index());
+ }
+
+ // map the write bank
+ if (wbank != NULL)
+ {
+ write().map_range(addrstart, addrend, addrmask, addrmirror, wbank->index());
+ }
+
+ // update the memory dump
+ generate_memdump(machine());
+}
+
+
//-------------------------------------------------
// install_ram_generic - install a simple fixed
// RAM region into the given address space
diff --git a/src/emu/memory.h b/src/emu/memory.h
index ff02476fc7f..3352621263d 100644
--- a/src/emu/memory.h
+++ b/src/emu/memory.h
@@ -374,6 +374,9 @@ public:
void install_read_bank(offs_t addrstart, offs_t addrend, const char *tag) { install_read_bank(addrstart, addrend, 0, 0, tag); }
void install_write_bank(offs_t addrstart, offs_t addrend, const char *tag) { install_write_bank(addrstart, addrend, 0, 0, tag); }
void install_readwrite_bank(offs_t addrstart, offs_t addrend, const char *tag) { install_readwrite_bank(addrstart, addrend, 0, 0, tag); }
+ void install_read_bank(offs_t addrstart, offs_t addrend, memory_bank *bank) { install_read_bank(addrstart, addrend, 0, 0, bank); }
+ void install_write_bank(offs_t addrstart, offs_t addrend, memory_bank *bank) { install_write_bank(addrstart, addrend, 0, 0, bank); }
+ void install_readwrite_bank(offs_t addrstart, offs_t addrend, memory_bank *bank) { install_readwrite_bank(addrstart, addrend, 0, 0, bank); }
void *install_rom(offs_t addrstart, offs_t addrend, void *baseptr = NULL) { return install_rom(addrstart, addrend, 0, 0, baseptr); }
void *install_writeonly(offs_t addrstart, offs_t addrend, void *baseptr = NULL) { return install_writeonly(addrstart, addrend, 0, 0, baseptr); }
void *install_ram(offs_t addrstart, offs_t addrend, void *baseptr = NULL) { return install_ram(addrstart, addrend, 0, 0, baseptr); }
@@ -385,6 +388,9 @@ public:
void install_read_bank(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, const char *tag) { install_bank_generic(addrstart, addrend, addrmask, addrmirror, tag, NULL); }
void install_write_bank(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, const char *tag) { install_bank_generic(addrstart, addrend, addrmask, addrmirror, NULL, tag); }
void install_readwrite_bank(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, const char *tag) { install_bank_generic(addrstart, addrend, addrmask, addrmirror, tag, tag); }
+ void install_read_bank(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, memory_bank *bank) { install_bank_generic(addrstart, addrend, addrmask, addrmirror, bank, NULL); }
+ void install_write_bank(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, memory_bank *bank) { install_bank_generic(addrstart, addrend, addrmask, addrmirror, NULL, bank); }
+ void install_readwrite_bank(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, memory_bank *bank) { install_bank_generic(addrstart, addrend, addrmask, addrmirror, bank, bank); }
void *install_rom(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, void *baseptr = NULL) { return install_ram_generic(addrstart, addrend, addrmask, addrmirror, ROW_READ, baseptr); }
void *install_writeonly(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, void *baseptr = NULL) { return install_ram_generic(addrstart, addrend, addrmask, addrmirror, ROW_WRITE, baseptr); }
void *install_ram(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, void *baseptr = NULL) { return install_ram_generic(addrstart, addrend, addrmask, addrmirror, ROW_READWRITE, baseptr); }
@@ -446,6 +452,7 @@ private:
void unmap_generic(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, read_or_write readorwrite, bool quiet);
void *install_ram_generic(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, read_or_write readorwrite, void *baseptr);
void install_bank_generic(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, const char *rtag, const char *wtag);
+ void install_bank_generic(offs_t addrstart, offs_t addrend, offs_t addrmask, offs_t addrmirror, memory_bank *rbank, memory_bank *wbank);
void bind_and_install_handler(const address_map_entry &entry, read_or_write readorwrite, device_t *device);
void adjust_addresses(offs_t &start, offs_t &end, offs_t &mask, offs_t &mirror);
void *find_backing_memory(offs_t addrstart, offs_t addrend);
diff --git a/src/emu/netlist/macro/nlm_opamp.c b/src/emu/netlist/macro/nlm_opamp.c
deleted file mode 100644
index 143f4d8cfec..00000000000
--- a/src/emu/netlist/macro/nlm_opamp.c
+++ /dev/null
@@ -1,47 +0,0 @@
-
-#include "nlm_opamp.h"
-
-#include "analog/nld_opamps.h"
-#include "devices/nld_system.h"
-
-/*
- * Generic layout with 4 opamps, VCC on pint 4 and GND on pin 11
- */
-
-NETLIST_START(opamp_layout_4_4_11)
- DIPPINS( /* +--------------+ */
- A.OUT, /* |1 ++ 14| */ D.OUT,
- A.MINUS, /* |2 13| */ D.MINUS,
- A.PLUS, /* |3 12| */ D.PLUS,
- A.VCC, /* |4 11| */ A.GND,
- B.PLUS, /* |5 10| */ C.PLUS,
- B.MINUS, /* |6 9| */ C.MINUS,
- B.OUT, /* |7 8| */ C.OUT
- /* +--------------+ */
- )
- NET_C(A.GND, B.GND, C.GND, D.GND)
- NET_C(A.VCC, B.VCC, C.VCC, D.VCC)
-NETLIST_END()
-
-NETLIST_START(MB3614_DIP)
- /* The opamp actually has an FPF of about 500k. This doesn't work here and causes oscillations.
- * FPF here therefore about half the Solver clock.
- */
- OPAMP(A, "MB3614")
- OPAMP(B, "MB3614")
- OPAMP(C, "MB3614")
- OPAMP(D, "MB3614")
-
- INCLUDE(opamp_layout_4_4_11)
-
-NETLIST_END()
-
-NETLIST_START(OPAMP_lib)
- LOCAL_LIB_ENTRY(opamp_layout_4_4_11)
-
- NET_MODEL(".model MB3614 OPAMP(TYPE=3 VLH=2.0 VLL=0.2 FPF=5 UGF=500k SLEW=0.6M RI=1000k RO=50 DAB=0.002)")
- NET_MODEL(".model MB3614_SLOW OPAMP(TYPE=3 VLH=2.0 VLL=0.2 FPF=5 UGF=11k SLEW=0.6M RI=1000k RO=50 DAB=0.002)")
- LOCAL_LIB_ENTRY(MB3614_DIP)
-
-
-NETLIST_END()
diff --git a/src/emu/netlist/nl_time.h b/src/emu/netlist/nl_time.h
deleted file mode 100644
index 4473b67d2c8..00000000000
--- a/src/emu/netlist/nl_time.h
+++ /dev/null
@@ -1,134 +0,0 @@
-// license:GPL-2.0+
-// copyright-holders:Couriersud
-/*
- * nltime.h
- */
-
-#ifndef NLTIME_H_
-#define NLTIME_H_
-
-#include "nl_config.h"
-#include "plib/pstate.h"
-
-//============================================================
-// MACROS
-//============================================================
-
-#define NLTIME_FROM_NS(_t) netlist_time::from_nsec(_t)
-#define NLTIME_FROM_US(_t) netlist_time::from_usec(_t)
-#define NLTIME_FROM_MS(_t) netlist_time::from_msec(_t)
-#define NLTIME_IMMEDIATE netlist_time::from_nsec(1)
-
-// ----------------------------------------------------------------------------------------
-// net_list_time
-// ----------------------------------------------------------------------------------------
-
-#define RESOLUTION NETLIST_INTERNAL_RES
-
-namespace netlist
-{
- struct netlist_time
- {
- public:
-
- typedef UINT64 INTERNALTYPE;
-
- ATTR_HOT /* inline */ netlist_time() : m_time(0) {}
-
- ATTR_HOT friend /* inline */ const netlist_time operator-(const netlist_time &left, const netlist_time &right);
- ATTR_HOT friend /* inline */ const netlist_time operator+(const netlist_time &left, const netlist_time &right);
- ATTR_HOT friend /* inline */ const netlist_time operator*(const netlist_time &left, const UINT32 factor);
- ATTR_HOT friend /* inline */ UINT32 operator/(const netlist_time &left, const netlist_time &right);
- ATTR_HOT friend /* inline */ bool operator>(const netlist_time &left, const netlist_time &right);
- ATTR_HOT friend /* inline */ bool operator<(const netlist_time &left, const netlist_time &right);
- ATTR_HOT friend /* inline */ bool operator>=(const netlist_time &left, const netlist_time &right);
- ATTR_HOT friend /* inline */ bool operator<=(const netlist_time &left, const netlist_time &right);
- ATTR_HOT friend /* inline */ bool operator!=(const netlist_time &left, const netlist_time &right);
-
- ATTR_HOT /* inline */ const netlist_time &operator=(const netlist_time &right) { m_time = right.m_time; return *this; }
- ATTR_HOT /* inline */ const netlist_time &operator=(const double &right) { m_time = (INTERNALTYPE) ( right * (double) RESOLUTION); return *this; }
-
- // issues with ISO C++ standard
- //ATTR_HOT /* inline */ operator double() const { return as_double(); }
-
- ATTR_HOT /* inline */ const netlist_time &operator+=(const netlist_time &right) { m_time += right.m_time; return *this; }
-
- ATTR_HOT /* inline */ INTERNALTYPE as_raw() const { return m_time; }
- ATTR_HOT /* inline */ double as_double() const { return (double) m_time / (double) RESOLUTION; }
-
- // for save states ....
- ATTR_HOT /* inline */ INTERNALTYPE *get_internaltype_ptr() { return &m_time; }
-
- ATTR_HOT static /* inline */ const netlist_time from_nsec(const int ns) { return netlist_time((UINT64) ns * (RESOLUTION / U64(1000000000))); }
- ATTR_HOT static /* inline */ const netlist_time from_usec(const int us) { return netlist_time((UINT64) us * (RESOLUTION / U64(1000000))); }
- ATTR_HOT static /* inline */ const netlist_time from_msec(const int ms) { return netlist_time((UINT64) ms * (RESOLUTION / U64(1000))); }
- ATTR_HOT static /* inline */ const netlist_time from_hz(const UINT64 hz) { return netlist_time(RESOLUTION / hz); }
- ATTR_HOT static /* inline */ const netlist_time from_double(const double t) { return netlist_time((INTERNALTYPE) ( t * (double) RESOLUTION)); }
- ATTR_HOT static /* inline */ const netlist_time from_raw(const INTERNALTYPE raw) { return netlist_time(raw); }
-
- static const netlist_time zero;
-
- protected:
-
- ATTR_HOT /* inline */ netlist_time(const INTERNALTYPE val) : m_time(val) {}
-
- private:
- INTERNALTYPE m_time;
- };
-
- #undef RESOLUTION
-
- ATTR_HOT inline const netlist_time operator-(const netlist_time &left, const netlist_time &right)
- {
- return netlist_time::from_raw(left.m_time - right.m_time);
- }
-
- ATTR_HOT inline const netlist_time operator*(const netlist_time &left, const UINT32 factor)
- {
- return netlist_time::from_raw(left.m_time * factor);
- }
-
- ATTR_HOT inline UINT32 operator/(const netlist_time &left, const netlist_time &right)
- {
- return left.m_time / right.m_time;
- }
-
- ATTR_HOT inline const netlist_time operator+(const netlist_time &left, const netlist_time &right)
- {
- return netlist_time::from_raw(left.m_time + right.m_time);
- }
-
- ATTR_HOT inline bool operator<(const netlist_time &left, const netlist_time &right)
- {
- return (left.m_time < right.m_time);
- }
-
- ATTR_HOT inline bool operator>(const netlist_time &left, const netlist_time &right)
- {
- return (left.m_time > right.m_time);
- }
-
- ATTR_HOT inline bool operator<=(const netlist_time &left, const netlist_time &right)
- {
- return (left.m_time <= right.m_time);
- }
-
- ATTR_HOT inline bool operator>=(const netlist_time &left, const netlist_time &right)
- {
- return (left.m_time >= right.m_time);
- }
-
- ATTR_HOT inline bool operator!=(const netlist_time &left, const netlist_time &right)
- {
- return (left.m_time != right.m_time);
- }
-
-}
-
-template<> ATTR_COLD inline void pstate_manager_t::save_item(netlist::netlist_time &nlt, const void *owner, const pstring &stname)
-{
- save_state_ptr(stname, DT_INT64, owner, sizeof(netlist::netlist_time::INTERNALTYPE), 1, nlt.get_internaltype_ptr(), false);
-}
-
-
-#endif /* NLTIME_H_ */
diff --git a/src/emu/netlist/plib/pstring.c b/src/emu/netlist/plib/pstring.c
deleted file mode 100644
index e5f73ffa17b..00000000000
--- a/src/emu/netlist/plib/pstring.c
+++ /dev/null
@@ -1,360 +0,0 @@
-// license:GPL-2.0+
-// copyright-holders:Couriersud
-/*
- * nl_string.c
- *
- */
-
-#include <cstdio>
-#include <cstring>
-//FIXME:: pstring should be locale free
-#include <cctype>
-#include <cstdlib>
-#include <algorithm>
-
-#include "pstring.h"
-#include "palloc.h"
-
-// The following will work on linux, however not on Windows ....
-
-//pblockpool *pstring::m_pool = new pblockpool;
-//pstring::str_t *pstring::m_zero = new(pstring::m_pool, 0) pstring::str_t(0);
-
-pstring::str_t pstring::m_zero = str_t(0);
-
-/*
- * Uncomment the following to override defaults
- */
-
-#define IMMEDIATE_MODE (1)
-//#define DEBUG_MODE (0)
-
-#ifdef MAME_DEBUG
- #ifndef IMMEDIATE_MODE
- #define IMMEDIATE_MODE (1)
- #endif
- #ifndef DEBUG_MODE
- #define DEBUG_MODE (0)
- #endif
-#else
- #ifndef IMMEDIATE_MODE
- #define IMMEDIATE_MODE (1)
- #endif
- #ifndef DEBUG_MODE
- #define DEBUG_MODE (0)
- #endif
-#endif
-
-pstring::~pstring()
-{
- sfree(m_ptr);
-}
-
-void pstring::pcat(const char *s)
-{
- int slen = strlen(s);
- str_t *n = salloc(m_ptr->len() + slen);
- if (m_ptr->len() > 0)
- std::memcpy(n->str(), m_ptr->str(), m_ptr->len());
- if (slen > 0)
- std::memcpy(n->str() + m_ptr->len(), s, slen);
- *(n->str() + n->len()) = 0;
- sfree(m_ptr);
- m_ptr = n;
-}
-
-void pstring::pcopy(const char *from, int size)
-{
- str_t *n = salloc(size);
- if (size > 0)
- std::memcpy(n->str(), from, size);
- *(n->str() + size) = 0;
- sfree(m_ptr);
- m_ptr = n;
-}
-
-const pstring pstring::substr(unsigned int start, int count) const
-{
- pstring ret;
- unsigned alen = len();
- if (start >= alen)
- return ret;
- if (count <0 || start + count > alen)
- count = alen - start;
- ret.pcopy(cstr() + start, count);
- return ret;
-}
-
-const pstring pstring::ucase() const
-{
- pstring ret = *this;
- ret.pcopy(cstr(), len());
- for (int i=0; i<ret.len(); i++)
- ret.m_ptr->str()[i] = toupper((unsigned) ret.m_ptr->str()[i]);
- return ret;
-}
-
-int pstring::find_first_not_of(const pstring &no) const
-{
- for (int i=0; i < len(); i++)
- {
- bool f = true;
- for (int j=0; j < no.len(); j++)
- if (m_ptr->str()[i] == no.m_ptr->str()[j])
- f = false;
- if (f)
- return i;
- }
- return -1;
-}
-
-int pstring::find_last_not_of(const pstring &no) const
-{
- for (int i=len() - 1; i >= 0; i--)
- {
- bool f = true;
- for (int j=0; j < no.len(); j++)
- if (m_ptr->str()[i] == no.m_ptr->str()[j])
- f = false;
- if (f)
- return i;
- }
- return -1;
-}
-
-pstring pstring::replace(const pstring &search, const pstring &replace) const
-{
- pstring ret = "";
-
- if (search.len() == 0)
- return *this;
- int i = 0;
- while (i<len())
- {
- if (strncmp(cstr()+i,search.cstr(),search.len()) == 0)
- {
- ret += replace;
- i += search.len();
- }
- else
- {
- ret += *(cstr() + i);
- i++;
- }
- }
- return ret;
-}
-const pstring pstring::ltrim(const pstring &ws) const
-{
- int f = find_first_not_of(ws);
- if (f>=0)
- return substr(f);
- else
- return "";
-}
-
-const pstring pstring::rtrim(const pstring &ws) const
-{
- int f = find_last_not_of(ws);
- if (f>=0)
- return left(f+1);
- else
- return "";
-}
-
-void pstring::pcopy(const char *from)
-{
- pcopy(from, strlen(from));
-}
-
-//-------------------------------------------------
-// pcmpi - compare a character array to an nstring
-//-------------------------------------------------
-
-int pstring::pcmpi(const char *lhs, const char *rhs, int count) const
-{
- // loop while equal until we hit the end of strings
- int index;
- for (index = 0; index < count; index++)
- if (lhs[index] == 0 || std::tolower(lhs[index]) != std::tolower(rhs[index]))
- break;
-
- // determine the final result
- if (index < count)
- return std::tolower(lhs[index]) - std::tolower(rhs[index]);
- if (lhs[index] == 0)
- return 0;
- return 1;
-}
-
-double pstring::as_double(bool *error) const
-{
- double ret;
- char *e = NULL;
-
- if (error != NULL)
- *error = false;
- ret = strtod(cstr(), &e);
- if (*e != 0)
- if (error != NULL)
- *error = true;
- return ret;
-}
-
-long pstring::as_long(bool *error) const
-{
- long ret;
- char *e = NULL;
-
- if (error != NULL)
- *error = false;
- if (startsWith("0x"))
- ret = strtol(&(cstr()[2]), &e, 16);
- else
- ret = strtol(cstr(), &e, 10);
- if (*e != 0)
- if (error != NULL)
- *error = true;
- return ret;
-}
-
-const pstring pstring::vprintf(va_list args) const
-{
- // sprintf into the temporary buffer
- char tempbuf[4096];
- std::vsprintf(tempbuf, cstr(), args);
-
- return pstring(tempbuf);
-}
-
-// ----------------------------------------------------------------------------------------
-// static stuff ...
-// ----------------------------------------------------------------------------------------
-
-void pstring::sfree(str_t *s)
-{
- s->m_ref_count--;
- if (s->m_ref_count == 0 && s != &m_zero)
- {
- pfree_array(((char *)s));
- //_mm_free(((char *)s));
- }
-}
-
-pstring::str_t *pstring::salloc(int n)
-{
- int size = sizeof(str_t) + n + 1;
- str_t *p = (str_t *) palloc_array(char, size);
- // str_t *p = (str_t *) _mm_malloc(size, 8);
- p->init(n);
- return p;
-}
-
-void pstring::resetmem()
-{
- // Release the 0 string
-}
-
-// ----------------------------------------------------------------------------------------
-// pstring ...
-// ----------------------------------------------------------------------------------------
-
-const pstring pstring::sprintf(const char *format, ...)
-{
- va_list ap;
- va_start(ap, format);
- pstring ret = pstring(format).vprintf(ap);
- va_end(ap);
- return ret;
-}
-
-
-int pstring::find(const char *search, int start) const
-{
- int alen = len();
- const char *result = std::strstr(cstr() + std::min(start, alen), search);
- return (result != NULL) ? (result - cstr()) : -1;
-}
-
-int pstring::find(const char search, int start) const
-{
- int alen = len();
- const char *result = std::strchr(cstr() + std::min(start, alen), search);
- return (result != NULL) ? (result - cstr()) : -1;
-}
-
-bool pstring::startsWith(const char *arg) const
-{
- return (pcmp(cstr(), arg, std::strlen(arg)) == 0);
-}
-
-int pstring::pcmp(const char *left, const char *right, int count) const
-{
- if (count < 0)
- return std::strcmp(left, right);
- else
- return std::strncmp(left, right, count);
-}
-
-// ----------------------------------------------------------------------------------------
-// pstringbuffer
-// ----------------------------------------------------------------------------------------
-
-pstringbuffer::~pstringbuffer()
-{
- if (m_ptr != NULL)
- pfree_array(m_ptr);
-}
-
-void pstringbuffer::resize(const std::size_t size)
-{
- if (m_ptr == NULL)
- {
- m_size = DEFAULT_SIZE;
- while (m_size <= size)
- m_size *= 2;
- m_ptr = palloc_array(char, m_size);
- m_len = 0;
- }
- else if (m_size < size)
- {
- while (m_size < size)
- m_size *= 2;
- char *new_buf = palloc_array(char, m_size);
- std::strncpy(new_buf, m_ptr, m_len + 1);
- pfree_array(m_ptr);
- m_ptr = new_buf;
- }
-}
-
-void pstringbuffer::pcopy(const char *from)
-{
- std::size_t nl = strlen(from) + 1;
- resize(nl);
- std::strncpy(m_ptr, from, nl);
-}
-
-void pstringbuffer::pcopy(const pstring &from)
-{
- std::size_t nl = from.len() + 1;
- resize(nl);
- std::strncpy(m_ptr, from.cstr(), nl);
-}
-
-void pstringbuffer::pcat(const char *s)
-{
- std::size_t slen = std::strlen(s);
- std::size_t nl = m_len + slen + 1;
- resize(nl);
- std::strncpy(m_ptr + m_len, s, slen + 1);
- m_len += slen;
-}
-
-void pstringbuffer::pcat(const pstring &s)
-{
- std::size_t slen = s.len();
- std::size_t nl = m_len + slen + 1;
- resize(nl);
- std::strncpy(m_ptr + m_len, s.cstr(), slen + 1);
- m_len += slen;
-}
diff --git a/src/emu/netlist/plib/pstring.h b/src/emu/netlist/plib/pstring.h
deleted file mode 100644
index 88a8922e98b..00000000000
--- a/src/emu/netlist/plib/pstring.h
+++ /dev/null
@@ -1,259 +0,0 @@
-// license:GPL-2.0+
-// copyright-holders:Couriersud
-/*
- * pstring.h
- */
-
-#ifndef _PSTRING_H_
-#define _PSTRING_H_
-
-#include <cstdarg>
-#include <cstddef>
-
-#include "pconfig.h"
-
-// ----------------------------------------------------------------------------------------
-// pstring: immutable strings ...
-//
-// pstrings are just a pointer to a "pascal-style" string representation.
-// It uses reference counts and only uses new memory when a string changes.
-// ----------------------------------------------------------------------------------------
-
-struct pstring
-{
-public:
- // simple construction/destruction
- pstring()
- {
- init();
- }
- ~pstring();
-
- // construction with copy
- pstring(const char *string) {init(); if (string != NULL && *string != 0) pcopy(string); }
- pstring(const pstring &string) {init(); pcopy(string); }
-
- // assignment operators
- pstring &operator=(const char *string) { pcopy(string); return *this; }
- pstring &operator=(const pstring &string) { pcopy(string); return *this; }
-
- // C string conversion operators and helpers
- operator const char *() const { return m_ptr->str(); }
- const char *cstr() const { return m_ptr->str(); }
-
- // concatenation operators
- pstring& operator+=(const char c) { char buf[2] = { c, 0 }; pcat(buf); return *this; }
- pstring& operator+=(const pstring &string) { pcat(string.cstr()); return *this; }
- pstring& operator+=(const char *string) { pcat(string); return *this; }
- friend pstring operator+(const pstring &lhs, const pstring &rhs) { return pstring(lhs) += rhs; }
- friend pstring operator+(const pstring &lhs, const char *rhs) { return pstring(lhs) += rhs; }
- friend pstring operator+(const pstring &lhs, const char rhs) { return pstring(lhs) += rhs; }
- friend pstring operator+(const char *lhs, const pstring &rhs) { return pstring(lhs) += rhs; }
-
- // comparison operators
- bool operator==(const char *string) const { return (pcmp(string) == 0); }
- bool operator==(const pstring &string) const { return (pcmp(string.cstr()) == 0); }
- bool operator!=(const char *string) const { return (pcmp(string) != 0); }
- bool operator!=(const pstring &string) const { return (pcmp(string.cstr()) != 0); }
- bool operator<(const char *string) const { return (pcmp(string) < 0); }
- bool operator<(const pstring &string) const { return (pcmp(string.cstr()) < 0); }
- bool operator<=(const char *string) const { return (pcmp(string) <= 0); }
- bool operator<=(const pstring &string) const { return (pcmp(string.cstr()) <= 0); }
- bool operator>(const char *string) const { return (pcmp(string) > 0); }
- bool operator>(const pstring &string) const { return (pcmp(string.cstr()) > 0); }
- bool operator>=(const char *string) const { return (pcmp(string) >= 0); }
- bool operator>=(const pstring &string) const { return (pcmp(string.cstr()) >= 0); }
-
- int len() const { return m_ptr->len(); }
-
- bool equals(const pstring &string) const { return (pcmp(string.cstr(), m_ptr->str()) == 0); }
- bool iequals(const pstring &string) const { return (pcmpi(string.cstr(), m_ptr->str()) == 0); }
-
- int cmp(const pstring &string) const { return pcmp(string.cstr()); }
- int cmpi(const pstring &string) const { return pcmpi(cstr(), string.cstr()); }
-
- int find(const char *search, int start = 0) const;
-
- int find(const char search, int start = 0) const;
-
- // various
-
- bool startsWith(const pstring &arg) const { return (pcmp(cstr(), arg.cstr(), arg.len()) == 0); }
- bool startsWith(const char *arg) const;
-
- pstring replace(const pstring &search, const pstring &replace) const;
-
- // these return nstring ...
- const pstring cat(const pstring &s) const { return *this + s; }
- const pstring cat(const char *s) const { return *this + s; }
-
- const pstring substr(unsigned int start, int count = -1) const ;
-
- const pstring left(unsigned int count) const { return substr(0, count); }
- const pstring right(unsigned int count) const { return substr(len() - count, count); }
-
- int find_first_not_of(const pstring &no) const;
- int find_last_not_of(const pstring &no) const;
-
- const pstring ltrim(const pstring &ws = " \t\n\r") const;
- const pstring rtrim(const pstring &ws = " \t\n\r") const;
- const pstring trim(const pstring &ws = " \t\n\r") const { return this->ltrim(ws).rtrim(ws); }
-
- const pstring rpad(const pstring &ws, const int cnt) const
- {
- // FIXME: slow!
- pstring ret = *this;
- while (ret.len() < cnt)
- ret += ws;
- return ret.substr(0, cnt);
- }
-
- const pstring ucase() const;
-
- // conversions
-
- double as_double(bool *error = NULL) const;
-
- long as_long(bool *error = NULL) const;
-
- // printf using string as format ...
-
- const pstring vprintf(va_list args) const;
-
- // static
- static const pstring sprintf(const char *format, ...) ATTR_PRINTF(1,2);
- static void resetmem();
-
-protected:
-
- struct str_t
- {
- //str_t() : m_ref_count(1), m_len(0) { m_str[0] = 0; }
- str_t(const int alen)
- {
- init(alen);
- }
- void init(const int alen)
- {
- m_ref_count = 1;
- m_len = alen;
- m_str[0] = 0;
- }
- char *str() { return &m_str[0]; }
- int len() { return m_len; }
- int m_ref_count;
- private:
- int m_len;
- char m_str[1];
- };
-
- str_t *m_ptr;
-
-private:
- void init()
- {
- m_ptr = &m_zero;
- m_ptr->m_ref_count++;
- }
-
- int pcmp(const char *right) const
- {
- return pcmp(m_ptr->str(), right);
- }
-
- int pcmp(const char *left, const char *right, int count = -1) const;
-
- int pcmpi(const char *lhs, const char *rhs, int count = -1) const;
-
- void pcopy(const char *from, int size);
-
- void pcopy(const char *from);
-
- void pcopy(const pstring &from)
- {
- sfree(m_ptr);
- m_ptr = from.m_ptr;
- m_ptr->m_ref_count++;
- }
-
- void pcat(const char *s);
-
- static str_t *salloc(int n);
- static void sfree(str_t *s);
-
- static str_t m_zero;
-};
-
-// ----------------------------------------------------------------------------------------
-// pstringbuffer: a string buffer implementation
-//
-// string buffer are optimized to handle concatenations. This implementation is designed
-// to specifically interact with pstrings nicely.
-// ----------------------------------------------------------------------------------------
-
-struct pstringbuffer
-{
-public:
- static const int DEFAULT_SIZE = 2048;
- // simple construction/destruction
- pstringbuffer()
- {
- init();
- resize(DEFAULT_SIZE);
- }
-
- ~pstringbuffer();
-
- // construction with copy
- pstringbuffer(const char *string) {init(); if (string != NULL) pcopy(string); }
- pstringbuffer(const pstring &string) {init(); pcopy(string); }
-
- // assignment operators
- pstringbuffer &operator=(const char *string) { pcopy(string); return *this; }
- pstringbuffer &operator=(const pstring &string) { pcopy(string); return *this; }
- pstringbuffer &operator=(const pstringbuffer &string) { pcopy(string.cstr()); return *this; }
-
- // C string conversion operators and helpers
- operator const char *() const { return m_ptr; }
- const char *cstr() const { return m_ptr; }
-
- operator pstring() const { return pstring(m_ptr); }
-
- // concatenation operators
- pstringbuffer& operator+=(const char c) { char buf[2] = { c, 0 }; pcat(buf); return *this; }
- pstringbuffer& operator+=(const pstring &string) { pcat(string.cstr()); return *this; }
-
- std::size_t len() const { return m_len; }
-
- void cat(const pstring &s) { pcat(s); }
- void cat(const char *s) { pcat(s); }
-
- pstring substr(unsigned int start, int count = -1)
- {
- return pstring(m_ptr).substr(start, count);
- }
-
-private:
-
- void init()
- {
- m_ptr = NULL;
- m_size = 0;
- m_len = 0;
- }
-
- void resize(const std::size_t size);
-
- void pcopy(const char *from);
- void pcopy(const pstring &from);
- void pcat(const char *s);
- void pcat(const pstring &s);
-
- char *m_ptr;
- std::size_t m_size;
- std::size_t m_len;
-
-};
-
-
-#endif /* _PSTRING_H_ */
diff --git a/src/emu/output.c b/src/emu/output.c
index 37c4a112eda..54d2d91e85a 100644
--- a/src/emu/output.c
+++ b/src/emu/output.c
@@ -8,9 +8,7 @@
***************************************************************************/
#include "emu.h"
-#include <zlib.h>
-
-
+#include "coreutil.h"
/***************************************************************************
CONSTANTS
@@ -82,7 +80,7 @@ static void output_exit(running_machine &machine);
INLINE UINT32 get_hash(const char *string)
{
- return crc32(0, (UINT8 *)string, (UINT32)strlen(string));
+ return core_crc32(0, (UINT8 *)string, (UINT32)strlen(string));
}
diff --git a/src/emu/render.c b/src/emu/render.c
index 57fcc418e97..6ee9e871c43 100644
--- a/src/emu/render.c
+++ b/src/emu/render.c
@@ -1394,9 +1394,9 @@ render_primitive_list &render_target::get_primitives()
bool render_target::map_point_container(INT32 target_x, INT32 target_y, render_container &container, float &container_x, float &container_y)
{
- const char *input_tag;
+ ioport_port *input_port;
ioport_value input_mask;
- return map_point_internal(target_x, target_y, &container, container_x, container_y, input_tag, input_mask);
+ return map_point_internal(target_x, target_y, &container, container_x, container_y, input_port, input_mask);
}
@@ -1406,9 +1406,9 @@ bool render_target::map_point_container(INT32 target_x, INT32 target_y, render_c
// container, if possible
//-------------------------------------------------
-bool render_target::map_point_input(INT32 target_x, INT32 target_y, const char *&input_tag, ioport_value &input_mask, float &input_x, float &input_y)
+bool render_target::map_point_input(INT32 target_x, INT32 target_y, ioport_port *&input_port, ioport_value &input_mask, float &input_x, float &input_y)
{
- return map_point_internal(target_x, target_y, NULL, input_x, input_y, input_tag, input_mask);
+ return map_point_internal(target_x, target_y, NULL, input_x, input_y, input_port, input_mask);;
}
@@ -1467,6 +1467,22 @@ void render_target::debug_top(render_container &container)
//-------------------------------------------------
+// resolve_tags - resolve tag lookups
+//-------------------------------------------------
+
+void render_target::resolve_tags()
+{
+ for (layout_file *file = m_filelist.first(); file != NULL; file = file->next())
+ {
+ for (layout_view *view = file->first_view(); view != NULL; view = view->next())
+ {
+ view->resolve_tags();
+ }
+ }
+}
+
+
+//-------------------------------------------------
// update_layer_config - recompute after a layer
// config change
//-------------------------------------------------
@@ -1861,7 +1877,7 @@ void render_target::add_element_primitives(render_primitive_list &list, const ob
// mapping points
//-------------------------------------------------
-bool render_target::map_point_internal(INT32 target_x, INT32 target_y, render_container *container, float &mapped_x, float &mapped_y, const char *&mapped_input_tag, ioport_value &mapped_input_mask)
+bool render_target::map_point_internal(INT32 target_x, INT32 target_y, render_container *container, float &mapped_x, float &mapped_y, ioport_port *&mapped_input_port, ioport_value &mapped_input_mask)
{
// compute the visible width/height
INT32 viswidth, visheight;
@@ -1875,7 +1891,7 @@ bool render_target::map_point_internal(INT32 target_x, INT32 target_y, render_co
// default to point not mapped
mapped_x = -1.0;
mapped_y = -1.0;
- mapped_input_tag = NULL;
+ mapped_input_port = NULL;
mapped_input_mask = 0;
// convert target coordinates to float
@@ -1926,7 +1942,7 @@ bool render_target::map_point_internal(INT32 target_x, INT32 target_y, render_co
// point successfully mapped
mapped_x = (target_fx - item->bounds().x0) / (item->bounds().x1 - item->bounds().x0);
mapped_y = (target_fy - item->bounds().y0) / (item->bounds().y1 - item->bounds().y0);
- mapped_input_tag = item->input_tag_and_mask(mapped_input_mask);
+ mapped_input_port = item->input_tag_and_mask(mapped_input_mask);
return true;
}
}
@@ -2589,6 +2605,19 @@ void render_manager::invalidate_all(void *refptr)
//-------------------------------------------------
+// resolve_tags - resolve tag lookups
+//-------------------------------------------------
+
+void render_manager::resolve_tags()
+{
+ for (render_target *target = m_targetlist.first(); target != NULL; target = target->next())
+ {
+ target->resolve_tags();
+ }
+}
+
+
+//-------------------------------------------------
// container_alloc - allocate a new container
//-------------------------------------------------
diff --git a/src/emu/render.h b/src/emu/render.h
index 3c3a100a987..f3f434a35c6 100644
--- a/src/emu/render.h
+++ b/src/emu/render.h
@@ -436,7 +436,7 @@ private:
void get_scaled(UINT32 dwidth, UINT32 dheight, render_texinfo &texinfo, render_primitive_list &primlist);
const rgb_t *get_adjusted_palette(render_container &container);
- static const int MAX_TEXTURE_SCALES = 8;
+ static const int MAX_TEXTURE_SCALES = 16;
// a scaled_texture contains a single scaled entry for a texture
struct scaled_texture
@@ -652,7 +652,7 @@ public:
// hit testing
bool map_point_container(INT32 target_x, INT32 target_y, render_container &container, float &container_x, float &container_y);
- bool map_point_input(INT32 target_x, INT32 target_y, const char *&input_tag, ioport_value &input_mask, float &input_x, float &input_y);
+ bool map_point_input(INT32 target_x, INT32 target_y, ioport_port *&input_port, ioport_value &input_mask, float &input_x, float &input_y);
// reference tracking
void invalidate_all(void *refptr);
@@ -662,6 +662,9 @@ public:
void debug_free(render_container &container);
void debug_top(render_container &container);
+ // resolve tag lookups
+ void resolve_tags();
+
private:
// internal helpers
void update_layer_config();
@@ -669,7 +672,7 @@ private:
bool load_layout_file(const char *dirname, const char *filename);
void add_container_primitives(render_primitive_list &list, const object_transform &xform, render_container &container, int blendmode);
void add_element_primitives(render_primitive_list &list, const object_transform &xform, layout_element &element, int state, int blendmode);
- bool map_point_internal(INT32 target_x, INT32 target_y, render_container *container, float &mapped_x, float &mapped_y, const char *&mapped_input_tag, ioport_value &mapped_input_mask);
+ bool map_point_internal(INT32 target_x, INT32 target_y, render_container *container, float &mapped_x, float &mapped_y, ioport_port *&mapped_input_port, ioport_value &mapped_input_mask);
// config callbacks
void config_load(xml_data_node &targetnode);
@@ -761,6 +764,9 @@ public:
// reference tracking
void invalidate_all(void *refptr);
+ // resolve tag lookups
+ void resolve_tags();
+
private:
// containers
render_container *container_alloc(screen_device *screen = NULL);
diff --git a/src/emu/rendfont.c b/src/emu/rendfont.c
index 2011119979c..5248bc326b5 100644
--- a/src/emu/rendfont.c
+++ b/src/emu/rendfont.c
@@ -12,7 +12,7 @@
#include "rendfont.h"
#include "rendutil.h"
#include "emuopts.h"
-#include <zlib.h>
+#include "coreutil.h"
#include "osdepend.h"
#include "uismall.fh"
@@ -389,7 +389,7 @@ bool render_font::load_cached_bdf(const char *filename)
return false;
// has the chunk
- UINT32 hash = crc32(0, (const UINT8 *)&m_rawdata[0], bytes) ^ (UINT32)m_rawsize;
+ UINT32 hash = core_crc32(0, (const UINT8 *)&m_rawdata[0], bytes) ^ (UINT32)m_rawsize;
// create the cached filename, changing the 'F' to a 'C' on the extension
std::string cachedname(filename);
diff --git a/src/emu/rendlay.c b/src/emu/rendlay.c
index cb229846299..6733ecbcb92 100644
--- a/src/emu/rendlay.c
+++ b/src/emu/rendlay.c
@@ -2304,6 +2304,22 @@ void layout_view::recompute(render_layer_config layerconfig)
}
+//-----------------------------
+// resolve_tags - resolve tags
+//-----------------------------
+
+void layout_view::resolve_tags()
+{
+ for (item_layer layer = ITEM_LAYER_FIRST; layer < ITEM_LAYER_MAX; layer++)
+ {
+ for (item *curitem = first_item(layer); curitem != NULL; curitem = curitem->next())
+ {
+ curitem->resolve_tags();
+ }
+ }
+}
+
+
//**************************************************************************
// LAYOUT VIEW ITEM
@@ -2316,6 +2332,7 @@ void layout_view::recompute(render_layer_config layerconfig)
layout_view::item::item(running_machine &machine, xml_data_node &itemnode, simple_list<layout_element> &elemlist)
: m_next(NULL),
m_element(NULL),
+ m_input_port(NULL),
m_input_mask(0),
m_screen(NULL),
m_orientation(ROT0)
@@ -2365,6 +2382,11 @@ layout_view::item::item(running_machine &machine, xml_data_node &itemnode, simpl
if (m_element == NULL)
throw emu_fatalerror("Layout item of type %s require an element tag", itemnode.name);
}
+
+ if (has_input())
+ {
+ m_input_port = m_element->machine().root_device().ioport(m_input_tag.c_str());
+ }
}
@@ -2387,6 +2409,7 @@ render_container *layout_view::item::screen_container(running_machine &machine)
return (m_screen != NULL) ? &m_screen->container() : NULL;
}
+
//-------------------------------------------------
// state - fetch state based on configured source
//-------------------------------------------------
@@ -2404,18 +2427,31 @@ int layout_view::item::state() const
// if configured to an input, fetch the input value
else if (m_input_tag[0] != 0)
{
- ioport_port *port = m_element->machine().root_device().ioport(m_input_tag.c_str());
- if (port != NULL)
+ if (m_input_port != NULL)
{
- ioport_field *field = port->field(m_input_mask);
+ ioport_field *field = m_input_port->field(m_input_mask);
if (field != NULL)
- state = ((port->read() ^ field->defvalue()) & m_input_mask) ? 1 : 0;
+ state = ((m_input_port->read() ^ field->defvalue()) & m_input_mask) ? 1 : 0;
}
}
return state;
}
+//---------------------------------------------
+// resolve_tags - resolve tags, if any are set
+//---------------------------------------------
+
+
+void layout_view::item::resolve_tags()
+{
+ if (has_input())
+ {
+ m_input_port = m_element->machine().root_device().ioport(m_input_tag.c_str());
+ }
+}
+
+
//**************************************************************************
// LAYOUT FILE
diff --git a/src/emu/rendlay.h b/src/emu/rendlay.h
index 966e3d2b901..dc8660f84d1 100644
--- a/src/emu/rendlay.h
+++ b/src/emu/rendlay.h
@@ -208,17 +208,21 @@ public:
int orientation() const { return m_orientation; }
render_container *screen_container(running_machine &machine) const;
bool has_input() const { return !m_input_tag.empty(); }
- const char *input_tag_and_mask(ioport_value &mask) const { mask = m_input_mask; return m_input_tag.c_str(); }
+ ioport_port *input_tag_and_mask(ioport_value &mask) const { mask = m_input_mask; return m_input_port; };
// fetch state based on configured source
int state() const;
+ // resolve tags, if any
+ void resolve_tags();
+
private:
// internal state
item * m_next; // link to next item
layout_element * m_element; // pointer to the associated element (non-screens only)
std::string m_output_name; // name of this item
std::string m_input_tag; // input tag of this item
+ ioport_port * m_input_port; // input port of this item
ioport_value m_input_mask; // input mask of this item
screen_device * m_screen; // pointer to screen
int m_orientation; // orientation of this item
@@ -247,6 +251,9 @@ public:
// operations
void recompute(render_layer_config layerconfig);
+ // resolve tags, if any
+ void resolve_tags();
+
private:
// internal state
layout_view * m_next; // pointer to next layout in the list
diff --git a/src/emu/romload.h b/src/emu/romload.h
index 3628d72701d..ec0e3375cdd 100644
--- a/src/emu/romload.h
+++ b/src/emu/romload.h
@@ -225,6 +225,7 @@ struct rom_entry
#define ROM_LOAD32_DWORD(name,offset,length,hash) ROMX_LOAD(name, offset, length, hash, ROM_GROUPDWORD)
#define ROM_LOAD64_WORD(name,offset,length,hash) ROMX_LOAD(name, offset, length, hash, ROM_GROUPWORD | ROM_SKIP(6))
#define ROM_LOAD64_WORD_SWAP(name,offset,length,hash) ROMX_LOAD(name, offset, length, hash, ROM_GROUPWORD | ROM_REVERSE | ROM_SKIP(6))
+#define ROM_LOAD64_DWORD_SWAP(name,offset,length,hash) ROMX_LOAD(name, offset, length, hash, ROM_GROUPDWORD | ROM_REVERSE | ROM_SKIP(4))
/* ----- ROM_RELOAD related macros ----- */
diff --git a/src/emu/save.c b/src/emu/save.c
index 3efeea2856d..c6a1e5bd6fc 100644
--- a/src/emu/save.c
+++ b/src/emu/save.c
@@ -23,8 +23,7 @@
***************************************************************************/
#include "emu.h"
-
-#include <zlib.h>
+#include "coreutil.h"
//**************************************************************************
@@ -155,7 +154,7 @@ void save_manager::save_memory(device_t *device, const char *module, const char
if (!m_reg_allowed)
{
logerror("Attempt to register save state entry after state registration is closed!\nModule %s tag %s name %s\n", module, tag, name);
- if (machine().system().flags & GAME_SUPPORTS_SAVE)
+ if (machine().system().flags & MACHINE_SUPPORTS_SAVE)
fatalerror("Attempt to register save state entry after state registration is closed!\nModule %s tag %s name %s\n", module, tag, name);
m_illegal_regs++;
return;
@@ -333,13 +332,13 @@ UINT32 save_manager::signature() const
for (state_entry *entry = m_entry_list.first(); entry != NULL; entry = entry->next())
{
// add the entry name to the CRC
- crc = crc32(crc, (UINT8 *)entry->m_name.c_str(), entry->m_name.length());
+ crc = core_crc32(crc, (UINT8 *)entry->m_name.c_str(), entry->m_name.length());
// add the type and size to the CRC
UINT32 temp[2];
temp[0] = LITTLE_ENDIANIZE_INT32(entry->m_typecount);
temp[1] = LITTLE_ENDIANIZE_INT32(entry->m_typesize);
- crc = crc32(crc, (UINT8 *)&temp[0], sizeof(temp));
+ crc = core_crc32(crc, (UINT8 *)&temp[0], sizeof(temp));
}
return crc;
}
diff --git a/src/emu/save.h b/src/emu/save.h
index 85bb660540c..41cc4a07fb4 100644
--- a/src/emu/save.h
+++ b/src/emu/save.h
@@ -250,9 +250,9 @@ template<>
inline void save_manager::save_item(device_t *device, const char *module, const char *tag, int index, attotime &value, const char *name)
{
std::string tempstr = std::string(name).append(".attoseconds");
- save_memory(device, module, tag, index, tempstr.c_str(), &value.attoseconds, sizeof(value.attoseconds));
+ save_memory(device, module, tag, index, tempstr.c_str(), &value.m_attoseconds, sizeof(value.m_attoseconds));
tempstr.assign(name).append(".seconds");
- save_memory(device, module, tag, index, tempstr.c_str(), &value.seconds, sizeof(value.seconds));
+ save_memory(device, module, tag, index, tempstr.c_str(), &value.m_seconds, sizeof(value.m_seconds));
}
diff --git a/src/emu/schedule.c b/src/emu/schedule.c
index 1695936fa26..f94b2919b5d 100644
--- a/src/emu/schedule.c
+++ b/src/emu/schedule.c
@@ -11,6 +11,13 @@
#include "emu.h"
#include "debugger.h"
+// for now, make buggy GCC/Mingw STFU about I64FMT
+#if (defined(__MINGW32__) && (__GNUC__ >= 5))
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wformat"
+#pragma GCC diagnostic ignored "-Wformat-extra-args"
+#endif
+
//**************************************************************************
// DEBUGGING
@@ -187,7 +194,7 @@ void emu_timer::adjust(attotime start_delay, INT32 param, const attotime &period
m_enabled = true;
// clamp negative times to 0
- if (start_delay.seconds < 0)
+ if (start_delay.seconds() < 0)
start_delay = attotime::zero;
// set the start and expire times
@@ -427,7 +434,7 @@ void device_scheduler::timeslice()
while (m_basetime < m_timer_list->m_expire)
{
// by default, assume our target is the end of the next quantum
- attotime target = m_basetime + attotime(0, m_quantum_list.first()->m_actual);
+ attotime target(m_basetime + attotime(0, m_quantum_list.first()->m_actual));
// however, if the next timer is going to fire before then, override
if (m_timer_list->m_expire < target)
@@ -445,11 +452,11 @@ void device_scheduler::timeslice()
{
// only process if this CPU is executing or truly halted (not yielding)
// and if our target is later than the CPU's current time (coarse check)
- if (EXPECTED((exec->m_suspend == 0 || exec->m_eatcycles) && target.seconds >= exec->m_localtime.seconds))
+ if (EXPECTED((exec->m_suspend == 0 || exec->m_eatcycles) && target.seconds() >= exec->m_localtime.seconds()))
{
// compute how many attoseconds to execute this CPU
- attoseconds_t delta = target.attoseconds - exec->m_localtime.attoseconds;
- if (delta < 0 && target.seconds > exec->m_localtime.seconds)
+ attoseconds_t delta = target.attoseconds() - exec->m_localtime.attoseconds();
+ if (delta < 0 && target.seconds() > exec->m_localtime.seconds())
delta += ATTOSECONDS_PER_SECOND;
assert(delta == (target - exec->m_localtime).as_attoseconds());
@@ -557,7 +564,7 @@ void device_scheduler::trigger(int trigid, const attotime &after)
void device_scheduler::boost_interleave(const attotime &timeslice_time, const attotime &boost_duration)
{
// ignore timeslices > 1 second
- if (timeslice_time.seconds > 0)
+ if (timeslice_time.seconds() > 0)
return;
add_scheduling_quantum(timeslice_time, boost_duration);
}
@@ -934,10 +941,11 @@ inline void device_scheduler::execute_timers()
void device_scheduler::add_scheduling_quantum(const attotime &quantum, const attotime &duration)
{
- assert(quantum.seconds == 0);
+ assert(quantum.seconds() == 0);
attotime curtime = time();
attotime expire = curtime + duration;
+ const attoseconds_t quantum_attos = quantum.attoseconds();
// figure out where to insert ourselves, expiring any quanta that are out-of-date
quantum_slot *insert_after = NULL;
@@ -950,20 +958,20 @@ void device_scheduler::add_scheduling_quantum(const attotime &quantum, const att
m_quantum_allocator.reclaim(m_quantum_list.detach(*quant));
// if this quantum is shorter than us, we need to be inserted afterwards
- else if (quant->m_requested <= quantum.attoseconds)
+ else if (quant->m_requested <= quantum_attos)
insert_after = quant;
}
// if we found an exact match, just take the maximum expiry time
- if (insert_after != NULL && insert_after->m_requested == quantum.attoseconds)
+ if (insert_after != NULL && insert_after->m_requested == quantum_attos)
insert_after->m_expire = max(insert_after->m_expire, expire);
// otherwise, allocate a new quantum and insert it after the one we picked
else
{
quantum_slot &quant = *m_quantum_allocator.alloc();
- quant.m_requested = quantum.attoseconds;
- quant.m_actual = MAX(quantum.attoseconds, m_quantum_minimum);
+ quant.m_requested = quantum_attos;
+ quant.m_actual = MAX(quantum_attos, m_quantum_minimum);
quant.m_expire = expire;
m_quantum_list.insert_after(quant, insert_after);
}
@@ -982,3 +990,7 @@ void device_scheduler::dump_timers() const
timer->dump();
logerror("=============================================\n");
}
+
+#if (defined(__MINGW32__) && (__GNUC__ >= 5))
+#pragma GCC diagnostic pop
+#endif
diff --git a/src/emu/screen.c b/src/emu/screen.c
index 12bf4280dd8..c3bb09e320a 100644
--- a/src/emu/screen.c
+++ b/src/emu/screen.c
@@ -63,6 +63,8 @@ screen_device::screen_device(const machine_config &mconfig, const char *tag, dev
m_curtexture(0),
m_changed(true),
m_last_partial_scan(0),
+ m_color(rgb_t(0xff, 0xff, 0xff, 0xff)),
+ m_brightness(0xff),
m_frame_period(DEFAULT_FRAME_PERIOD.as_attoseconds()),
m_scantime(1),
m_pixeltime(1),
@@ -356,6 +358,7 @@ void screen_device::device_start()
save_item(NAME(m_visarea.max_y));
save_item(NAME(m_last_partial_scan));
save_item(NAME(m_frame_period));
+ save_item(NAME(m_brightness));
save_item(NAME(m_scantime));
save_item(NAME(m_pixeltime));
save_item(NAME(m_vblank_period));
@@ -366,6 +369,17 @@ void screen_device::device_start()
//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void screen_device::device_reset()
+{
+ // reset brightness to default
+ m_brightness = 0xff;
+}
+
+
+//-------------------------------------------------
// device_stop - clean up before the machine goes
// away
//-------------------------------------------------
@@ -884,9 +898,12 @@ bool screen_device::update_quads()
m_curbitmap = 1 - m_curbitmap;
}
+ // brightness adjusted render color
+ rgb_t color = m_color - rgb_t(0, 0xff - m_brightness, 0xff - m_brightness, 0xff - m_brightness);
+
// create an empty container with a single quad
m_container->empty();
- m_container->add_quad(0.0f, 0.0f, 1.0f, 1.0f, rgb_t(0xff,0xff,0xff,0xff), m_texture[m_curtexture], PRIMFLAG_BLENDMODE(BLENDMODE_NONE) | PRIMFLAG_SCREENTEX(1));
+ m_container->add_quad(0.0f, 0.0f, 1.0f, 1.0f, color, m_texture[m_curtexture], PRIMFLAG_BLENDMODE(BLENDMODE_NONE) | PRIMFLAG_SCREENTEX(1));
}
}
diff --git a/src/emu/screen.h b/src/emu/screen.h
index d91328cb1e9..f3aab539cce 100644
--- a/src/emu/screen.h
+++ b/src/emu/screen.h
@@ -186,10 +186,12 @@ public:
render_container &container() const { assert(m_container != NULL); return *m_container; }
bitmap_ind8 &priority() { return m_priority; }
palette_device *palette() { return m_palette; }
+
// dynamic configuration
void configure(int width, int height, const rectangle &visarea, attoseconds_t frame_period);
void reset_origin(int beamy = 0, int beamx = 0);
void set_visible_area(int min_x, int max_x, int min_y, int max_y);
+ void set_brightness(UINT8 brightness) { m_brightness = brightness; }
// beam positioning and state
int vpos() const;
@@ -239,6 +241,7 @@ private:
// device-level overrides
virtual void device_validity_check(validity_checker &valid) const;
virtual void device_start();
+ virtual void device_reset();
virtual void device_stop();
virtual void device_post_load();
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
@@ -284,6 +287,8 @@ private:
INT32 m_last_partial_scan; // scanline of last partial update
bitmap_argb32 m_screen_overlay_bitmap; // screen overlay bitmap
UINT32 m_unique_id; // unique id for this screen_device
+ rgb_t m_color; // render color
+ UINT8 m_brightness; // global brightness
// screen timing
attoseconds_t m_frame_period; // attoseconds per frame
@@ -355,7 +360,7 @@ typedef device_type_iterator<&device_creator<screen_device>, screen_device> scre
/*!
@brief Configures screen parameters for the given screen.
-
+
@param _pixclock Pixel Clock frequency value
@param _htotal Total number of horizontal pixels, including hblank period.
@param _hbend Horizontal pixel position for HBlank end event, also first pixel where screen rectangle is visible.
@@ -369,7 +374,7 @@ typedef device_type_iterator<&device_creator<screen_device>, screen_device> scre
/*!
@brief Sets the number of Frames Per Second for this screen
-
+
@param _rate FPS number
@deprecated Please use MCFG_SCREEN_RAW_PARAMS instead. Gives imprecise timings.
*/
@@ -378,7 +383,7 @@ typedef device_type_iterator<&device_creator<screen_device>, screen_device> scre
/*!
@brief Sets the vblank time of the given screen
-
+
@param _time Time parameter, in attotime value\
@deprecated Please use MCFG_SCREEN_RAW_PARAMS instead. Gives imprecise timings.
*/
@@ -387,7 +392,7 @@ typedef device_type_iterator<&device_creator<screen_device>, screen_device> scre
/*!
@brief Sets total screen size, including H/V-Blanks
-
+
@param _width Screen horizontal size
@param _height Screen vertical size
@deprecated Please use MCFG_SCREEN_RAW_PARAMS instead. Gives imprecise timings.
@@ -397,7 +402,7 @@ typedef device_type_iterator<&device_creator<screen_device>, screen_device> scre
/*!
@brief Sets screen visible area
-
+
@param _minx Screen left border
@param _maxx Screen right border, must be in N-1 format
@param _miny Screen top border
diff --git a/src/emu/softlist.c b/src/emu/softlist.c
index fdfd980aeea..c2e8dba671a 100644
--- a/src/emu/softlist.c
+++ b/src/emu/softlist.c
@@ -625,14 +625,6 @@ void software_list_device::internal_validity_check(validity_checker &valid)
for (const rom_entry *data = part->romdata(); data->_name != NULL; data++)
if (data->_hashdata != NULL)
{
- // make sure it's all lowercase
- for (const char *str = data->_name; *str; str++)
- if (tolower((UINT8)*str) != *str)
- {
- osd_printf_error("%s: %s has upper case ROM name %s\n", filename(), swinfo->shortname(), data->_name);
- break;
- }
-
// make sure the hash is valid
hash_collection hashes;
if (!hashes.from_internal_string(data->_hashdata))
diff --git a/src/emu/sound.c b/src/emu/sound.c
index d2543154bf6..3a08bdf4971 100644
--- a/src/emu/sound.c
+++ b/src/emu/sound.c
@@ -118,7 +118,7 @@ sound_stream::sound_stream(device_t &device, int inputs, int outputs, int sample
attotime sound_stream::sample_time() const
{
- return attotime(m_device.machine().sound().last_update().seconds, 0) + attotime(0, m_output_sampindex * m_attoseconds_per_sample);
+ return attotime(m_device.machine().sound().last_update().seconds(), 0) + attotime(0, m_output_sampindex * m_attoseconds_per_sample);
}
@@ -264,20 +264,20 @@ void sound_stream::update()
{
// determine the number of samples since the start of this second
attotime time = m_device.machine().time();
- INT32 update_sampindex = INT32(time.attoseconds / m_attoseconds_per_sample);
+ INT32 update_sampindex = INT32(time.attoseconds() / m_attoseconds_per_sample);
// if we're ahead of the last update, then adjust upwards
attotime last_update = m_device.machine().sound().last_update();
- if (time.seconds > last_update.seconds)
+ if (time.seconds() > last_update.seconds())
{
- assert(time.seconds == last_update.seconds + 1);
+ assert(time.seconds() == last_update.seconds() + 1);
update_sampindex += m_sample_rate;
}
// if we're behind the last update, then adjust downwards
- if (time.seconds < last_update.seconds)
+ if (time.seconds() < last_update.seconds())
{
- assert(time.seconds == last_update.seconds - 1);
+ assert(time.seconds() == last_update.seconds() - 1);
update_sampindex -= m_sample_rate;
}
@@ -297,7 +297,7 @@ void sound_stream::sync_update(void *, INT32)
{
update();
attotime time = m_device.machine().time();
- attoseconds_t next_edge = m_attoseconds_per_sample - (time.attoseconds % m_attoseconds_per_sample);
+ attoseconds_t next_edge = m_attoseconds_per_sample - (time.attoseconds() % m_attoseconds_per_sample);
m_sync_timer->adjust(attotime(0, next_edge));
}
@@ -514,7 +514,7 @@ void sound_stream::recompute_sample_rate_data()
if (m_synchronous)
{
attotime time = m_device.machine().time();
- attoseconds_t next_edge = m_attoseconds_per_sample - (time.attoseconds % m_attoseconds_per_sample);
+ attoseconds_t next_edge = m_attoseconds_per_sample - (time.attoseconds() % m_attoseconds_per_sample);
m_sync_timer->adjust(attotime(0, next_edge));
}
}
@@ -584,7 +584,7 @@ void sound_stream::postload()
memset(&m_output[outputnum].m_buffer[0], 0, m_output_bufalloc * sizeof(m_output[outputnum].m_buffer[0]));
// recompute the sample indexes to make sense
- m_output_sampindex = m_device.machine().sound().last_update().attoseconds / m_attoseconds_per_sample;
+ m_output_sampindex = m_device.machine().sound().last_update().attoseconds() / m_attoseconds_per_sample;
m_output_update_sampindex = m_output_sampindex;
m_output_base_sampindex = m_output_sampindex - m_max_samples_per_update;
}
@@ -817,7 +817,7 @@ sound_manager::sound_manager(running_machine &machine)
m_attenuation(0),
m_nosound_mode(machine.osd().no_sound()),
m_wavfile(NULL),
- m_update_attoseconds(STREAMS_UPDATE_ATTOTIME.attoseconds),
+ m_update_attoseconds(STREAMS_UPDATE_ATTOTIME.attoseconds()),
m_last_update(attotime::zero)
{
// get filename for WAV file or AVI file if specified
@@ -835,7 +835,7 @@ sound_manager::sound_manager(running_machine &machine)
#endif
// open the output WAV file if specified
- if (wavfile[0] != 0)
+ if (wavfile[0] != 0 && &machine.system() != &GAME_NAME(___empty))
m_wavfile = wav_open(wavfile, machine.sample_rate(), 2);
// register callbacks
@@ -1083,9 +1083,9 @@ void sound_manager::update(void *ptr, int param)
// see if we ticked over to the next second
attotime curtime = machine().time();
bool second_tick = false;
- if (curtime.seconds != m_last_update.seconds)
+ if (curtime.seconds() != m_last_update.seconds())
{
- assert(curtime.seconds == m_last_update.seconds + 1);
+ assert(curtime.seconds() == m_last_update.seconds() + 1);
second_tick = true;
}
diff --git a/src/emu/ui/devopt.c b/src/emu/ui/devopt.c
index 0bf4e5f40c3..75b6c899576 100644
--- a/src/emu/ui/devopt.c
+++ b/src/emu/ui/devopt.c
@@ -110,7 +110,7 @@ void ui_menu_device_config::populate()
strcatprintf(str,"%d " UTF8_MULTIPLY " %d (%s) %f" UTF8_NBSP "Hz\n",
visarea.width(), visarea.height(),
(machine().system().flags & ORIENTATION_SWAP_XY) ? "V" : "H",
- ATTOSECONDS_TO_HZ(screen->frame_period().attoseconds));
+ ATTOSECONDS_TO_HZ(screen->frame_period().attoseconds()));
}
}
}
diff --git a/src/emu/ui/info_pty.c b/src/emu/ui/info_pty.c
new file mode 100644
index 00000000000..1fe865f5668
--- /dev/null
+++ b/src/emu/ui/info_pty.c
@@ -0,0 +1,44 @@
+// license:BSD-3-Clause
+// copyright-holders:F.Ulivi
+/***************************************************************************
+
+ ui/info_pty.c
+
+ Information screen on pseudo terminals
+
+***************************************************************************/
+
+#include "emu.h"
+#include "ui/menu.h"
+#include "ui/info_pty.h"
+
+ui_menu_pty_info::ui_menu_pty_info(running_machine &machine, render_container *container) :
+ ui_menu(machine, container)
+{
+}
+
+ui_menu_pty_info::~ui_menu_pty_info()
+{
+}
+
+void ui_menu_pty_info::populate()
+{
+ item_append("Pseudo terminals", NULL, MENU_FLAG_DISABLE, NULL);
+ item_append("", NULL, MENU_FLAG_DISABLE, NULL);
+
+ pty_interface_iterator iter(machine().root_device());
+ for (device_pty_interface *pty = iter.first(); pty != NULL; pty = iter.next()) {
+ const char *port_name = pty->device().owner()->tag() + 1;
+ if (pty->is_open()) {
+ item_append(port_name , pty->slave_name() , MENU_FLAG_DISABLE , NULL);
+ } else {
+ item_append(port_name , "[failed]" , MENU_FLAG_DISABLE , NULL);
+ }
+ item_append("", NULL, MENU_FLAG_DISABLE, NULL);
+ }
+}
+
+void ui_menu_pty_info::handle()
+{
+ process(0);
+}
diff --git a/src/emu/ui/info_pty.h b/src/emu/ui/info_pty.h
new file mode 100644
index 00000000000..4352c1d48c8
--- /dev/null
+++ b/src/emu/ui/info_pty.h
@@ -0,0 +1,24 @@
+// license:BSD-3-Clause
+// copyright-holders:F.Ulivi
+/***************************************************************************
+
+ ui/info_pty.h
+
+ Information screen on pseudo terminals
+
+***************************************************************************/
+
+#pragma once
+
+#ifndef __UI_INFO_PTY_H__
+#define __UI_INFO_PTY_H__
+
+class ui_menu_pty_info : public ui_menu {
+public:
+ ui_menu_pty_info(running_machine &machine, render_container *container);
+ virtual ~ui_menu_pty_info();
+ virtual void populate();
+ virtual void handle();
+};
+
+#endif // __UI_INFO_PTY_H__
diff --git a/src/emu/ui/mainmenu.c b/src/emu/ui/mainmenu.c
index 51b0ad4970a..196fdb976c2 100644
--- a/src/emu/ui/mainmenu.c
+++ b/src/emu/ui/mainmenu.c
@@ -22,6 +22,7 @@
#include "ui/barcode.h"
#include "ui/cheatopt.h"
#include "ui/info.h"
+#include "ui/info_pty.h"
#include "ui/inputmap.h"
#include "ui/mainmenu.h"
#include "ui/miscmenu.h"
@@ -90,6 +91,10 @@ void ui_menu_main::populate()
item_append("Tape Control", NULL, 0, (void *)TAPE_CONTROL);
}
+ pty_interface_iterator ptyiter(machine().root_device());
+ if (ptyiter.first() != NULL) {
+ item_append("Pseudo terminals", NULL, 0, (void *)PTY_INFO);
+ }
if (machine().ioport().has_bioses())
item_append("Bios Selection", NULL, 0, (void *)BIOS_SELECTION);
@@ -191,6 +196,10 @@ void ui_menu_main::handle()
ui_menu::stack_push(auto_alloc_clear(machine(), ui_menu_tape_control(machine(), container, NULL)));
break;
+ case PTY_INFO:
+ ui_menu::stack_push(auto_alloc_clear(machine(), ui_menu_pty_info(machine(), container)));
+ break;
+
case SLOT_DEVICES:
ui_menu::stack_push(auto_alloc_clear(machine(), ui_menu_slot_devices(machine(), container)));
break;
diff --git a/src/emu/ui/mainmenu.h b/src/emu/ui/mainmenu.h
index b21d5da1c73..b35a5927073 100644
--- a/src/emu/ui/mainmenu.h
+++ b/src/emu/ui/mainmenu.h
@@ -44,7 +44,8 @@ private:
CHEAT,
SELECT_GAME,
BIOS_SELECTION,
- BARCODE_READ
+ BARCODE_READ,
+ PTY_INFO
};
};
diff --git a/src/emu/ui/miscmenu.c b/src/emu/ui/miscmenu.c
index be611f9c6e6..88e74458c5e 100644
--- a/src/emu/ui/miscmenu.c
+++ b/src/emu/ui/miscmenu.c
@@ -205,7 +205,7 @@ void ui_menu_bookkeeping::handle()
/* if the time has rolled over another second, regenerate */
curtime = machine().time();
- if (prevtime.seconds != curtime.seconds)
+ if (prevtime.seconds() != curtime.seconds())
{
reset(UI_MENU_RESET_SELECT_FIRST);
prevtime = curtime;
@@ -236,10 +236,10 @@ void ui_menu_bookkeeping::populate()
int ctrnum;
/* show total time first */
- if (prevtime.seconds >= 60 * 60)
- strcatprintf(tempstring, "Uptime: %d:%02d:%02d\n\n", prevtime.seconds / (60 * 60), (prevtime.seconds / 60) % 60, prevtime.seconds % 60);
+ if (prevtime.seconds() >= 60 * 60)
+ strcatprintf(tempstring, "Uptime: %d:%02d:%02d\n\n", prevtime.seconds() / (60 * 60), (prevtime.seconds() / 60) % 60, prevtime.seconds() % 60);
else
- strcatprintf(tempstring,"Uptime: %d:%02d\n\n", (prevtime.seconds / 60) % 60, prevtime.seconds % 60);
+ strcatprintf(tempstring,"Uptime: %d:%02d\n\n", (prevtime.seconds() / 60) % 60, prevtime.seconds() % 60);
/* show tickets at the top */
if (tickets > 0)
diff --git a/src/emu/ui/selgame.c b/src/emu/ui/selgame.c
index a0740172ff2..aa6bf0e2263 100644
--- a/src/emu/ui/selgame.c
+++ b/src/emu/ui/selgame.c
@@ -225,7 +225,7 @@ void ui_menu_select_game::populate()
int curitem;
for (curitem = matchcount = 0; m_driverlist[curitem] != NULL && matchcount < VISIBLE_GAMES_IN_LIST; curitem++)
- if (!(m_driverlist[curitem]->flags & GAME_NO_STANDALONE))
+ if (!(m_driverlist[curitem]->flags & MACHINE_NO_STANDALONE))
matchcount++;
// if nothing there, add a single multiline item and return
@@ -332,22 +332,22 @@ void ui_menu_select_game::custom_render(void *selectedref, float top, float bott
strprintf(tempbuf[2],"Driver: %-.100s", core_filename_extract_base(tempbuf[3], driver->source_file).c_str());
// next line is overall driver status
- if (driver->flags & GAME_NOT_WORKING)
+ if (driver->flags & MACHINE_NOT_WORKING)
tempbuf[3].assign("Overall: NOT WORKING");
- else if (driver->flags & GAME_UNEMULATED_PROTECTION)
+ else if (driver->flags & MACHINE_UNEMULATED_PROTECTION)
tempbuf[3].assign("Overall: Unemulated Protection");
else
tempbuf[3].assign("Overall: Working");
// next line is graphics, sound status
- if (driver->flags & (GAME_IMPERFECT_GRAPHICS | GAME_WRONG_COLORS | GAME_IMPERFECT_COLORS))
+ if (driver->flags & (MACHINE_IMPERFECT_GRAPHICS | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_COLORS))
gfxstat = "Imperfect";
else
gfxstat = "OK";
- if (driver->flags & GAME_NO_SOUND)
+ if (driver->flags & MACHINE_NO_SOUND)
soundstat = "Unimplemented";
- else if (driver->flags & GAME_IMPERFECT_SOUND)
+ else if (driver->flags & MACHINE_IMPERFECT_SOUND)
soundstat = "Imperfect";
else
soundstat = "OK";
@@ -399,9 +399,9 @@ void ui_menu_select_game::custom_render(void *selectedref, float top, float bott
color = UI_BACKGROUND_COLOR;
if (driver != NULL)
color = UI_GREEN_COLOR;
- if (driver != NULL && (driver->flags & (GAME_IMPERFECT_GRAPHICS | GAME_WRONG_COLORS | GAME_IMPERFECT_COLORS | GAME_NO_SOUND | GAME_IMPERFECT_SOUND)) != 0)
+ if (driver != NULL && (driver->flags & (MACHINE_IMPERFECT_GRAPHICS | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_COLORS | MACHINE_NO_SOUND | MACHINE_IMPERFECT_SOUND)) != 0)
color = UI_YELLOW_COLOR;
- if (driver != NULL && (driver->flags & (GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION)) != 0)
+ if (driver != NULL && (driver->flags & (MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION)) != 0)
color = UI_RED_COLOR;
machine().ui().draw_outlined_box(container, x1, y1, x2, y2, color);
diff --git a/src/emu/ui/sliders.c b/src/emu/ui/sliders.c
index 58c67a77bf4..21037c72827 100644
--- a/src/emu/ui/sliders.c
+++ b/src/emu/ui/sliders.c
@@ -141,9 +141,6 @@ void ui_menu_sliders::populate()
if (curval < curslider->maxval)
flags |= MENU_FLAG_RIGHT_ARROW;
item_append(curslider->description, tempstring.c_str(), flags, (void *)curslider);
-
- if (menuless_mode)
- break;
}
/* add OSD sliders */
diff --git a/src/emu/ui/ui.c b/src/emu/ui/ui.c
index a0458ed7a7d..95b51f24bab 100644
--- a/src/emu/ui/ui.c
+++ b/src/emu/ui/ui.c
@@ -243,7 +243,7 @@ ui_manager::ui_manager(running_machine &machine)
// more initialization
set_handler(handler_messagebox, 0);
m_non_char_keys_down = auto_alloc_array(machine, UINT8, (ARRAY_LENGTH(non_char_keys) + 7) / 8);
- m_mouse_show = machine.system().flags & GAME_CLICKABLE_ARTWORK ? true : false;
+ m_mouse_show = machine.system().flags & MACHINE_CLICKABLE_ARTWORK ? true : false;
// request a callback upon exiting
machine.add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(FUNC(ui_manager::exit), this));
@@ -343,9 +343,9 @@ void ui_manager::display_startup_screens(bool first_time, bool show_disclaimer)
if (show_warnings && warnings_string(messagebox_text).length() > 0)
{
set_handler(handler_messagebox_ok, 0);
- if (machine().system().flags & (GAME_WRONG_COLORS | GAME_IMPERFECT_COLORS | GAME_REQUIRES_ARTWORK | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_KEYBOARD | GAME_NO_SOUND))
+ if (machine().system().flags & (MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_COLORS | MACHINE_REQUIRES_ARTWORK | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_KEYBOARD | MACHINE_NO_SOUND))
messagebox_backcolor = UI_YELLOW_COLOR;
- if (machine().system().flags & (GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_MECHANICAL))
+ if (machine().system().flags & (MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_MECHANICAL))
messagebox_backcolor = UI_RED_COLOR;
}
break;
@@ -1008,17 +1008,17 @@ std::string &ui_manager::disclaimer_string(std::string &str)
std::string &ui_manager::warnings_string(std::string &str)
{
-#define WARNING_FLAGS ( GAME_NOT_WORKING | \
- GAME_UNEMULATED_PROTECTION | \
- GAME_MECHANICAL | \
- GAME_WRONG_COLORS | \
- GAME_IMPERFECT_COLORS | \
- GAME_REQUIRES_ARTWORK | \
- GAME_NO_SOUND | \
- GAME_IMPERFECT_SOUND | \
- GAME_IMPERFECT_GRAPHICS | \
- GAME_IMPERFECT_KEYBOARD | \
- GAME_NO_COCKTAIL)
+#define WARNING_FLAGS ( MACHINE_NOT_WORKING | \
+ MACHINE_UNEMULATED_PROTECTION | \
+ MACHINE_MECHANICAL | \
+ MACHINE_WRONG_COLORS | \
+ MACHINE_IMPERFECT_COLORS | \
+ MACHINE_REQUIRES_ARTWORK | \
+ MACHINE_NO_SOUND | \
+ MACHINE_IMPERFECT_SOUND | \
+ MACHINE_IMPERFECT_GRAPHICS | \
+ MACHINE_IMPERFECT_KEYBOARD | \
+ MACHINE_NO_COCKTAIL)
str.clear();
@@ -1057,41 +1057,41 @@ std::string &ui_manager::warnings_string(std::string &str)
str.append(" have not been correctly dumped.\n");
}
// add one line per warning flag
- if (machine().system().flags & GAME_IMPERFECT_KEYBOARD)
+ if (machine().system().flags & MACHINE_IMPERFECT_KEYBOARD)
str.append("The keyboard emulation may not be 100% accurate.\n");
- if (machine().system().flags & GAME_IMPERFECT_COLORS)
+ if (machine().system().flags & MACHINE_IMPERFECT_COLORS)
str.append("The colors aren't 100% accurate.\n");
- if (machine().system().flags & GAME_WRONG_COLORS)
+ if (machine().system().flags & MACHINE_WRONG_COLORS)
str.append("The colors are completely wrong.\n");
- if (machine().system().flags & GAME_IMPERFECT_GRAPHICS)
+ if (machine().system().flags & MACHINE_IMPERFECT_GRAPHICS)
str.append("The video emulation isn't 100% accurate.\n");
- if (machine().system().flags & GAME_IMPERFECT_SOUND)
+ if (machine().system().flags & MACHINE_IMPERFECT_SOUND)
str.append("The sound emulation isn't 100% accurate.\n");
- if (machine().system().flags & GAME_NO_SOUND) {
+ if (machine().system().flags & MACHINE_NO_SOUND) {
str.append("The ");
str.append(emulator_info::get_gamenoun());
str.append(" lacks sound.\n");
}
- if (machine().system().flags & GAME_NO_COCKTAIL)
+ if (machine().system().flags & MACHINE_NO_COCKTAIL)
str.append("Screen flipping in cocktail mode is not supported.\n");
// check if external artwork is present before displaying this warning?
- if (machine().system().flags & GAME_REQUIRES_ARTWORK) {
+ if (machine().system().flags & MACHINE_REQUIRES_ARTWORK) {
str.append("The ");
str.append(emulator_info::get_gamenoun());
str.append(" requires external artwork files\n");
}
// if there's a NOT WORKING, UNEMULATED PROTECTION or GAME MECHANICAL warning, make it stronger
- if (machine().system().flags & (GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_MECHANICAL))
+ if (machine().system().flags & (MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_MECHANICAL))
{
// add the strings for these warnings
- if (machine().system().flags & GAME_UNEMULATED_PROTECTION) {
+ if (machine().system().flags & MACHINE_UNEMULATED_PROTECTION) {
str.append("The ");
str.append(emulator_info::get_gamenoun());
str.append(" has protection which isn't fully emulated.\n");
}
- if (machine().system().flags & GAME_NOT_WORKING) {
+ if (machine().system().flags & MACHINE_NOT_WORKING) {
str.append("\nTHIS ");
str.append(emulator_info::get_capgamenoun());
str.append(" DOESN'T WORK. The emulation for this ");
@@ -1099,7 +1099,7 @@ std::string &ui_manager::warnings_string(std::string &str)
str.append(" is not yet complete. "
"There is nothing you can do to fix this problem except wait for the developers to improve the emulation.\n");
}
- if (machine().system().flags & GAME_MECHANICAL) {
+ if (machine().system().flags & MACHINE_MECHANICAL) {
str.append("\nCertain elements of this ");
str.append(emulator_info::get_gamenoun());
str.append(" cannot be emulated as it requires actual physical interaction or consists of mechanical devices. "
@@ -1119,7 +1119,7 @@ std::string &ui_manager::warnings_string(std::string &str)
bool foundworking = false;
while (drivlist.next())
if (drivlist.current() == maindrv || drivlist.clone() == maindrv)
- if ((drivlist.driver().flags & (GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_MECHANICAL)) == 0)
+ if ((drivlist.driver().flags & (MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_MECHANICAL)) == 0)
{
// this one works, add a header and display the name of the clone
if (!foundworking) {
@@ -1251,7 +1251,7 @@ std::string &ui_manager::game_info_astring(std::string &str)
strcatprintf(str, "%d " UTF8_MULTIPLY " %d (%s) %f" UTF8_NBSP "Hz\n",
visarea.width(), visarea.height(),
(machine().system().flags & ORIENTATION_SWAP_XY) ? "V" : "H",
- ATTOSECONDS_TO_HZ(screen->frame_period().attoseconds));
+ ATTOSECONDS_TO_HZ(screen->frame_period().attoseconds()));
}
}
}
@@ -2084,8 +2084,8 @@ static INT32 slider_refresh(running_machine &machine, void *arg, std::string *st
screen->configure(width, height, visarea, HZ_TO_ATTOSECONDS(defrefresh + (double)newval * 0.001));
}
if (str != NULL)
- strprintf(*str,"%.3ffps", ATTOSECONDS_TO_HZ(machine.first_screen()->frame_period().attoseconds));
- refresh = ATTOSECONDS_TO_HZ(machine.first_screen()->frame_period().attoseconds);
+ strprintf(*str,"%.3ffps", ATTOSECONDS_TO_HZ(machine.first_screen()->frame_period().attoseconds()));
+ refresh = ATTOSECONDS_TO_HZ(machine.first_screen()->frame_period().attoseconds());
return floor((refresh - defrefresh) * 1000.0 + 0.5);
}
diff --git a/src/emu/validity.c b/src/emu/validity.c
index dc6ee7cf9c6..7dbe67206a0 100644
--- a/src/emu/validity.c
+++ b/src/emu/validity.c
@@ -548,7 +548,7 @@ void validity_checker::validate_driver()
// determine if we are a clone
bool is_clone = (strcmp(m_current_driver->parent, "0") != 0);
int clone_of = m_drivlist.clone(*m_current_driver);
- if (clone_of != -1 && (m_drivlist.driver(clone_of).flags & GAME_IS_BIOS_ROOT))
+ if (clone_of != -1 && (m_drivlist.driver(clone_of).flags & MACHINE_IS_BIOS_ROOT))
is_clone = false;
// if we have at least 100 drivers, validate the clone
@@ -601,8 +601,8 @@ void validity_checker::validate_driver()
// make sure sound-less drivers are flagged
sound_interface_iterator iter(m_current_config->root_device());
- if ((m_current_driver->flags & GAME_IS_BIOS_ROOT) == 0 && iter.first() == NULL && (m_current_driver->flags & GAME_NO_SOUND) == 0 && (m_current_driver->flags & GAME_NO_SOUND_HW) == 0)
- osd_printf_error("Driver is missing GAME_NO_SOUND flag\n");
+ if ((m_current_driver->flags & MACHINE_IS_BIOS_ROOT) == 0 && iter.first() == NULL && (m_current_driver->flags & MACHINE_NO_SOUND) == 0 && (m_current_driver->flags & MACHINE_NO_SOUND_HW) == 0)
+ osd_printf_error("Driver is missing MACHINE_NO_SOUND flag\n");
}
diff --git a/src/emu/video.c b/src/emu/video.c
index 2ce890d44e4..adc2888b2e7 100644
--- a/src/emu/video.c
+++ b/src/emu/video.c
@@ -239,7 +239,7 @@ void video_manager::frame_update(bool debug)
update_frameskip();
// update speed computations
- if (!debug)
+ if (!debug && !skipped_it)
recompute_speed(current_time);
// call the end-of-frame callback
@@ -381,7 +381,7 @@ void video_manager::begin_recording(const char *name, movie_format format)
// build up information about this new movie
avi_movie_info info;
info.video_format = 0;
- info.video_timescale = 1000 * ((machine().first_screen() != NULL) ? ATTOSECONDS_TO_HZ(machine().first_screen()->frame_period().attoseconds) : screen_device::DEFAULT_FRAME_RATE);
+ info.video_timescale = 1000 * ((machine().first_screen() != NULL) ? ATTOSECONDS_TO_HZ(machine().first_screen()->frame_period().attoseconds()) : screen_device::DEFAULT_FRAME_RATE);
info.video_sampletime = 1000;
info.video_numsamples = 0;
info.video_width = m_snap_bitmap.width();
@@ -447,7 +447,7 @@ void video_manager::begin_recording(const char *name, movie_format format)
if (filerr == FILERR_NONE)
{
// start the capture
- int rate = (machine().first_screen() != NULL) ? ATTOSECONDS_TO_HZ(machine().first_screen()->frame_period().attoseconds) : screen_device::DEFAULT_FRAME_RATE;
+ int rate = (machine().first_screen() != NULL) ? ATTOSECONDS_TO_HZ(machine().first_screen()->frame_period().attoseconds()) : screen_device::DEFAULT_FRAME_RATE;
png_error pngerr = mng_capture_start(*m_mng_file, m_snap_bitmap, rate);
if (pngerr != PNGERR_NONE)
{
@@ -540,12 +540,12 @@ void video_manager::exit()
m_snap_bitmap.reset();
// print a final result if we have at least 2 seconds' worth of data
- if (m_overall_emutime.seconds >= 1)
+ if (m_overall_emutime.seconds() >= 1)
{
osd_ticks_t tps = osd_ticks_per_second();
double final_real_time = (double)m_overall_real_seconds + (double)m_overall_real_ticks / (double)tps;
double final_emu_time = m_overall_emutime.as_double();
- osd_printf_info("Average speed: %.2f%% (%d seconds)\n", 100 * final_emu_time / final_real_time, (m_overall_emutime + attotime(0, ATTOSECONDS_PER_SECOND / 2)).seconds);
+ osd_printf_info("Average speed: %.2f%% (%d seconds)\n", 100 * final_emu_time / final_real_time, (m_overall_emutime + attotime(0, ATTOSECONDS_PER_SECOND / 2)).seconds());
}
}
@@ -962,7 +962,7 @@ void video_manager::update_refresh_speed()
screen_device_iterator iter(machine().root_device());
for (screen_device *screen = iter.first(); screen != NULL; screen = iter.next())
{
- attoseconds_t period = screen->frame_period().attoseconds;
+ attoseconds_t period = screen->frame_period().attoseconds();
if (period != 0)
min_frame_period = MIN(min_frame_period, period);
}
@@ -1034,7 +1034,7 @@ void video_manager::recompute_speed(const attotime &emutime)
}
// if we're past the "time-to-execute" requested, signal an exit
- if (m_seconds_to_run != 0 && emutime.seconds >= m_seconds_to_run)
+ if (m_seconds_to_run != 0 && emutime.seconds() >= m_seconds_to_run)
{
#ifdef MAME_DEBUG
if (g_tagmap_counter_enabled)
diff --git a/src/emu/video/rgbsse.h b/src/emu/video/rgbsse.h
index 5f88e0e717c..0b729fabe46 100644
--- a/src/emu/video/rgbsse.h
+++ b/src/emu/video/rgbsse.h
@@ -349,7 +349,7 @@ public:
add(other);
clamp_to_uint8();
}
-
+
inline void scale_add_and_clamp(const rgbaint_t& scale, const rgbaint_t& other)
{
mul(scale);
@@ -362,7 +362,7 @@ public:
{
rgbaint_t color2(other);
color2.mul(scale2);
-
+
mul(scale);
add(color2);
sra_imm(8);
@@ -512,10 +512,10 @@ protected:
struct _statics
{
__m128 dummy_for_alignment;
- INT16 alpha_mask[8];
- INT16 red_mask[8];
- INT16 green_mask[8];
- INT16 blue_mask[8];
+ UINT16 alpha_mask[8];
+ UINT16 red_mask[8];
+ UINT16 green_mask[8];
+ UINT16 blue_mask[8];
INT16 scale_table[256][8];
};
diff --git a/src/lib/formats/atom_dsk.c b/src/lib/formats/atom_dsk.c
new file mode 100644
index 00000000000..6a5294a8fb8
--- /dev/null
+++ b/src/lib/formats/atom_dsk.c
@@ -0,0 +1,31 @@
+#include "atom_dsk.h"
+
+atom_format::atom_format() : wd177x_format(formats)
+{
+}
+
+const char *atom_format::name() const
+{
+ return "atom";
+}
+
+const char *atom_format::description() const
+{
+ return "Acorn Atom disk image";
+}
+
+const char *atom_format::extensions() const
+{
+ return "40t,dsk";
+}
+
+const atom_format::format atom_format::formats[] =
+{
+ { // 100k 40 track single sided single density
+ floppy_image::FF_525, floppy_image::SSSD, floppy_image::FM,
+ 4000, 10, 40, 1, 256, {}, 0, {}, 40, 10, 10
+ },
+ {}
+};
+
+const floppy_format_type FLOPPY_ATOM_FORMAT = &floppy_image_format_creator<atom_format>;
diff --git a/src/lib/formats/atom_dsk.h b/src/lib/formats/atom_dsk.h
new file mode 100644
index 00000000000..45187205f1c
--- /dev/null
+++ b/src/lib/formats/atom_dsk.h
@@ -0,0 +1,22 @@
+#ifndef __ATOM_DSK_H__
+#define __ATOM_DSK_H__
+
+#include "flopimg.h"
+#include "wd177x_dsk.h"
+
+class atom_format : public wd177x_format
+{
+public:
+ atom_format();
+
+ virtual const char *name() const;
+ virtual const char *description() const;
+ virtual const char *extensions() const;
+
+private:
+ static const format formats[];
+};
+
+extern const floppy_format_type FLOPPY_ATOM_FORMAT;
+
+#endif
diff --git a/src/lib/formats/bbc_dsk.c b/src/lib/formats/bbc_dsk.c
index dfa78c0bfd8..53c3652ab51 100644
--- a/src/lib/formats/bbc_dsk.c
+++ b/src/lib/formats/bbc_dsk.c
@@ -1,53 +1,229 @@
// license:GPL-2.0+
-// copyright-holders:Dirk Best
+// copyright-holders:Dirk Best, Nigel Barnes
/***************************************************************************
BBC Micro
- Disk image format
+ Disk image formats
***************************************************************************/
#include "bbc_dsk.h"
+#include "basicdsk.h"
-bbc_format::bbc_format() : wd177x_format(formats)
+LEGACY_FLOPPY_OPTIONS_START(bbc)
+ LEGACY_FLOPPY_OPTION( ssd40, "bbc,img,ssd", "BBC 40t SSD disk image", basicdsk_identify_default, basicdsk_construct_default, NULL,
+ HEADS([1])
+ TRACKS([40])
+ SECTORS([10])
+ SECTOR_LENGTH([256])
+ FIRST_SECTOR_ID([0]))
+ LEGACY_FLOPPY_OPTION( ssd80, "bbc,img,ssd", "BBC 80t SSD disk image", basicdsk_identify_default, basicdsk_construct_default, NULL,
+ HEADS([1])
+ TRACKS([80])
+ SECTORS([10])
+ SECTOR_LENGTH([256])
+ FIRST_SECTOR_ID([0]))
+ LEGACY_FLOPPY_OPTION( dsd40, "dsd", "BBC 40t DSD disk image", basicdsk_identify_default, basicdsk_construct_default, NULL,
+ HEADS([2])
+ TRACKS([40])
+ SECTORS([10])
+ SECTOR_LENGTH([256])
+ INTERLEAVE([0])
+ FIRST_SECTOR_ID([0]))
+ LEGACY_FLOPPY_OPTION( dsd80, "dsd", "BBC 80t DSD disk image", basicdsk_identify_default, basicdsk_construct_default, NULL,
+ HEADS([2])
+ TRACKS([80])
+ SECTORS([10])
+ SECTOR_LENGTH([256])
+ INTERLEAVE([0])
+ FIRST_SECTOR_ID([0]))
+LEGACY_FLOPPY_OPTIONS_END
+
+/********************************************************************/
+
+bbc_ssd_525_format::bbc_ssd_525_format() : wd177x_format(formats)
+{
+}
+
+const char *bbc_ssd_525_format::name() const
{
+ return "ssd";
}
-const char *bbc_format::name() const
+const char *bbc_ssd_525_format::description() const
{
- return "bbc";
+ return "BBC Micro 5.25\" disk image";
}
-const char *bbc_format::description() const
+const char *bbc_ssd_525_format::extensions() const
{
- return "BBC Micro disk image";
+ return "bbc,img,ssd";
}
-const char *bbc_format::extensions() const
+int bbc_ssd_525_format::find_size(io_generic *io, UINT32 form_factor)
{
- return "bbc,img,ssd,dsd";
+ char cat[8];
+ io_generic_read(io, cat, 256, 8);
+ UINT64 sectors = ((cat[6] & 3) << 8) + cat[7]; // sector count from catalogue
+ UINT64 size = io_generic_size(io);
+ for(int i=0; formats[i].form_factor; i++) {
+ const format &f = formats[i];
+ if(form_factor != floppy_image::FF_UNKNOWN && form_factor != f.form_factor)
+ continue;
+
+ if((size <= (UINT64)compute_track_size(f) * f.track_count * f.head_count) && (sectors == f.track_count * f.sector_count))
+ return i;
+ }
+ return -1;
}
-const bbc_format::format bbc_format::formats[] =
+const bbc_ssd_525_format::format bbc_ssd_525_format::formats[] =
{
- { // 100k single sided single density
+ { // 100k 40 track single sided single density
floppy_image::FF_525, floppy_image::SSSD, floppy_image::FM,
- 4000, 10, 40, 1, 256, {}, 0, {}, 16, 11, 19
+ 4000, 10, 40, 1, 256, {}, 0, {}, 40, 10, 10
+ },
+ { // 200k 80 track single sided single density
+ floppy_image::FF_525, floppy_image::SSQD, floppy_image::FM,
+ 4000, 10, 80, 1, 256, {}, 0, {}, 40, 10, 10
},
- { // 200k double sided single density
+ { // 200k 40 track double sided single density
floppy_image::FF_525, floppy_image::DSSD, floppy_image::FM,
- 4000, 10, 40, 2, 256, {}, 0, {}, 16, 11, 19
+ 4000, 10, 40, 2, 256, {}, 0, {}, 40, 10, 10
},
- { // 200k single sided double density
- floppy_image::FF_525, floppy_image::SSQD, floppy_image::FM,
- 4000, 10, 80, 1, 256, {}, 0, {}, 16, 11, 19
+ { // 400k 80 track double sided single density
+ floppy_image::FF_525, floppy_image::DSQD, floppy_image::FM,
+ 4000, 10, 80, 2, 256, {}, 0, {}, 40, 10, 10
},
- { // 400k double sided double density
+ {}
+};
+
+
+bbc_dsd_525_format::bbc_dsd_525_format() : wd177x_format(formats)
+{
+}
+
+const char *bbc_dsd_525_format::name() const
+{
+ return "dsd";
+}
+
+const char *bbc_dsd_525_format::description() const
+{
+ return "BBC Micro 5.25\" disk image";
+}
+
+const char *bbc_dsd_525_format::extensions() const
+{
+ return "dsd";
+}
+
+int bbc_dsd_525_format::find_size(io_generic *io, UINT32 form_factor)
+{
+ char cat[8];
+ io_generic_read(io, cat, 256, 8);
+ UINT64 sectors = ((cat[6] & 3) << 8) + cat[7]; // sector count from catalogue
+ UINT64 size = io_generic_size(io);
+ for(int i=0; formats[i].form_factor; i++) {
+ const format &f = formats[i];
+ if(form_factor != floppy_image::FF_UNKNOWN && form_factor != f.form_factor)
+ continue;
+
+ if((size <= (UINT64)compute_track_size(f) * f.track_count * f.head_count) && (sectors == f.track_count * f.sector_count))
+ return i;
+ }
+ return -1;
+}
+
+const bbc_dsd_525_format::format bbc_dsd_525_format::formats[] =
+{
+ { // 200k 40 track double sided single density
+ floppy_image::FF_525, floppy_image::DSQD, floppy_image::FM,
+ 4000, 10, 40, 2, 256, {}, -1, { 0,1,2,3,4,5,6,7,8,9 }, 40, 10, 10
+ },
+ { // 400k 80 track double sided single density
floppy_image::FF_525, floppy_image::DSQD, floppy_image::FM,
- 4000, 10, 80, 2, 256, {}, 0, {}, 16, 11, 19
+ 4000, 10, 80, 2, 256, {}, -1, { 0,1,2,3,4,5,6,7,8,9 }, 40, 10, 10
},
{}
};
-const floppy_format_type FLOPPY_BBC_FORMAT = &floppy_image_format_creator<bbc_format>;
+
+bbc_adf_525_format::bbc_adf_525_format() : wd177x_format(formats)
+{
+}
+
+const char *bbc_adf_525_format::name() const
+{
+ return "adf";
+}
+
+const char *bbc_adf_525_format::description() const
+{
+ return "BBC Micro 5.25\" ADFS disk image";
+}
+
+const char *bbc_adf_525_format::extensions() const
+{
+ return "adf,ads,adm,adl,img";
+}
+
+const bbc_adf_525_format::format bbc_adf_525_format::formats[] =
+{
+ { // 160K 40 track single sided double density
+ floppy_image::FF_525, floppy_image::SSDD, floppy_image::MFM,
+ 2000, 16, 40, 1, 256, {}, 0, {}, 60, 22, 43
+ },
+ { // 320K 80 track single sided double density
+ floppy_image::FF_525, floppy_image::SSDD, floppy_image::MFM,
+ 2000, 16, 80, 1, 256, {}, 0, {}, 60, 22, 43
+ },
+ { // 640K 80 track double sided double density
+ floppy_image::FF_525, floppy_image::DSDD, floppy_image::MFM,
+ 2000, 16, 80, 2, 256, {}, -1, { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 }, 60, 22, 43
+ },
+ {}
+};
+
+
+bbc_adf_35_format::bbc_adf_35_format() : wd177x_format(formats)
+{
+}
+
+const char *bbc_adf_35_format::name() const
+{
+ return "adf";
+}
+
+const char *bbc_adf_35_format::description() const
+{
+ return "BBC Micro 3.5\" ADFS disk image";
+}
+
+const char *bbc_adf_35_format::extensions() const
+{
+ return "adf,ads,adm,adl,img";
+}
+
+const bbc_adf_35_format::format bbc_adf_35_format::formats[] = {
+ { // 160K 3 1/2 inch 40 track single sided double density
+ floppy_image::FF_35, floppy_image::SSDD, floppy_image::MFM,
+ 2000, 16, 40, 1, 256, {}, 0, {}, 60, 22, 43
+ },
+ { // 320K 3 1/2 inch 80 track single sided double density
+ floppy_image::FF_35, floppy_image::SSQD, floppy_image::MFM,
+ 2000, 16, 80, 1, 256, {}, 0, {}, 60, 22, 43
+ },
+ { // 640K 3 1/2 inch 80 track double sided double density
+ floppy_image::FF_35, floppy_image::DSQD, floppy_image::MFM,
+ 2000, 16, 80, 2, 256, {}, -1, { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 }, 60, 22, 43
+ },
+ {}
+};
+
+
+const floppy_format_type FLOPPY_BBC_SSD_525_FORMAT = &floppy_image_format_creator<bbc_ssd_525_format>;
+const floppy_format_type FLOPPY_BBC_DSD_525_FORMAT = &floppy_image_format_creator<bbc_dsd_525_format>;
+const floppy_format_type FLOPPY_BBC_ADF_525_FORMAT = &floppy_image_format_creator<bbc_adf_525_format>;
+const floppy_format_type FLOPPY_BBC_ADF_35_FORMAT = &floppy_image_format_creator<bbc_adf_35_format>;
diff --git a/src/lib/formats/bbc_dsk.h b/src/lib/formats/bbc_dsk.h
index e2520781a15..d757c8a90ac 100644
--- a/src/lib/formats/bbc_dsk.h
+++ b/src/lib/formats/bbc_dsk.h
@@ -1,10 +1,10 @@
// license:GPL-2.0+
-// copyright-holders:Dirk Best
+// copyright-holders:Dirk Best, Nigel Barnes
/***************************************************************************
BBC Micro
- Disk image format
+ Disk image formats
***************************************************************************/
@@ -13,13 +13,21 @@
#ifndef __BBC_DSK_H__
#define __BBC_DSK_H__
+#include "flopimg.h"
#include "wd177x_dsk.h"
-class bbc_format : public wd177x_format
+/**************************************************************************/
+
+LEGACY_FLOPPY_OPTIONS_EXTERN(bbc);
+
+/**************************************************************************/
+
+class bbc_ssd_525_format : public wd177x_format
{
public:
- bbc_format();
+ bbc_ssd_525_format();
+ virtual int find_size(io_generic *io, UINT32 form_factor);
virtual const char *name() const;
virtual const char *description() const;
virtual const char *extensions() const;
@@ -28,6 +36,50 @@ private:
static const format formats[];
};
-extern const floppy_format_type FLOPPY_BBC_FORMAT;
+class bbc_dsd_525_format : public wd177x_format
+{
+public:
+ bbc_dsd_525_format();
+
+ virtual int find_size(io_generic *io, UINT32 form_factor);
+ virtual const char *name() const;
+ virtual const char *description() const;
+ virtual const char *extensions() const;
+
+private:
+ static const format formats[];
+};
+
+class bbc_adf_525_format : public wd177x_format
+{
+public:
+ bbc_adf_525_format();
+
+ virtual const char *name() const;
+ virtual const char *description() const;
+ virtual const char *extensions() const;
+
+private:
+ static const format formats[];
+};
+
+class bbc_adf_35_format : public wd177x_format
+{
+public:
+ bbc_adf_35_format();
+
+ virtual const char *name() const;
+ virtual const char *description() const;
+ virtual const char *extensions() const;
+
+private:
+ static const format formats[];
+};
+
+
+extern const floppy_format_type FLOPPY_BBC_SSD_525_FORMAT;
+extern const floppy_format_type FLOPPY_BBC_DSD_525_FORMAT;
+extern const floppy_format_type FLOPPY_BBC_ADF_525_FORMAT;
+extern const floppy_format_type FLOPPY_BBC_ADF_35_FORMAT;
#endif // __BBC_DSK_H__
diff --git a/src/lib/formats/flopimg.c b/src/lib/formats/flopimg.c
index e2ee5122b2c..20ff211e147 100644
--- a/src/lib/formats/flopimg.c
+++ b/src/lib/formats/flopimg.c
@@ -1274,7 +1274,7 @@ void floppy_image_format_t::fixup_crc_amiga(std::vector<UINT32> &buffer, const g
if(bit_r(buffer, crc->start + i))
res = res ^ (0x8000 >> ((i >> 1) & 15));
mfm_w(buffer, 16, 0, 1000, crc->write);
- mfm_w(buffer, 16, res, 1000, crc->write+16);
+ mfm_w(buffer, 16, res, 1000, crc->write+32);
}
void floppy_image_format_t::fixup_crc_cbm(std::vector<UINT32> &buffer, const gen_crc_info *crc)
diff --git a/src/lib/formats/mfm_hd.c b/src/lib/formats/mfm_hd.c
new file mode 100644
index 00000000000..ed50e60deb2
--- /dev/null
+++ b/src/lib/formats/mfm_hd.c
@@ -0,0 +1,750 @@
+// license:LGPL-2.1+
+// copyright-holders:Michael Zapf
+/*************************************************************************
+
+ Hard disk emulation: Format implementation
+ ------------------------------------------
+
+ This is the format implementation for MFM hard disks, similar to the
+ modular format concept of floppy drives in MAME/MESS.
+
+ The base class is mfmhd_image_format_t; it contains some methods for
+ encoding and decoding MFM. Although MFM hard disks should also be able to
+ manage FM recording, we do not plan for FM recording here.
+
+ The encode/decode methods rely on a parameter "encoding";
+ see imagedev/mfmhd.c for a discussion. Essentially, it determines whether
+ data are read bitwise or bytewise, and whether clock bits are separated
+ or interleaved.
+
+ The base class is abstract; you must create a subclass to use it. This
+ file delivers one subclass called mfmhd_generic_format.
+
+ In order to use this format, you must pass the creator identifier to the
+ macro MCFG_MFM_HARDDISK_CONN_ADD. See emu/bus/ti99_peb/hfdc.c for an
+ example.
+
+
+ Generic MFM format
+ ------------------
+ The heart of this class are the methods load and save. They are designed
+ to read sector data from a CHD file and reconstruct the track image (load),
+ or to take a track image, isolate the sector data, and store them
+ into the CHD (save).
+
+ Rebuilding the track image means to create sector headers, allocate gaps,
+ add sync areas, and CRC values. Also, the sectors must be arranged
+ according to the "interleave" parameter and the "skew" parameters for
+ heads and cylinders. While the skews are commonly set to 0, the interleave
+ is often used to fine-tune the transfer speed between the drive hardware
+ and the host system.
+
+ Also, the format allows for two header setups.
+ a) PC-AT-compatible header: four bytes long (ident, cylinder, head, sector);
+ the sector size is always 512 bytes.
+ b) Custom headers: five bytes long (..., sector size). The custom headers
+ are used in non-PC systems.
+
+ ECC: While floppy drives make use of a CRC field to check the data integrity,
+ hard disks use an ECC (error correcting code). The ECC length is 4 bytes
+ or longer, depending on the desired correction capability. The ECC length
+ can also be specified for this format.
+
+ However, for this version, we do not support ECC computation, but instead
+ we use CRC. This is indicated by setting the "ECC length" parameter to -1.
+
+ Format autodetect
+ -----------------
+ While formatting a hard disk, format parameters are likely to change, so
+ we have to find out about the new layout and store the metadata into the
+ CHD if they were modified.
+
+ This is done in the save method. This method does not only retrieve the
+ sector contents but also counts the gap bytes and sync bytes so that
+ they can be stored in the CHD.
+
+ - Interleave detection: save counts the number of sectors between sector
+ number n and sector number n+1.
+
+ - Skew detection: Skew is determined by three tracks: (cyl,head)=
+ (0,0), (1,0), and (0,1). For this purpose we use the m_secnumber list.
+
+ - Header length is detemined by the first sector on (0,0). This is done
+ by checking the header against the following two CRC bytes. If they
+ match for 4 bytes, we have an AT-style header, else a custom header.
+
+ - Gap and sync lengths are determined by the first track (0,0). They are
+ actually not expected to change, unless they are undefined before first
+ use, or the controller or its driver changes. We assume that track
+ (0,0) is actually rewritten during reformatting.
+
+ Since write precompensation and reduced write current cannot be seen
+ on the track image directly, those two values have to be set by the
+ hard disk device itseltf.
+
+ Inhibit autodetect
+ ------------------
+ In case we do not want the format to detect the layout but want to ensure
+ an immutable format, the save_param method may be overwritten to return
+ false for all or a particular group of parameters. The generic format
+ offers a save_param method which always returns true.
+
+ The effect of inhibiting the autodetection is that the layout parameters
+ as found on the CHD are used if available; otherwise defaults are used.
+
+ Defaults
+ --------
+ The generic format defines a method get_default which returns safe values
+ for layout parameters. It can be overwritten for specific formats.
+
+ Debugging
+ ---------
+ There is a set of debug flags (starting with TRACE_) that can be set to 1;
+ after recompiling you will get additional output. Since this class is not
+ a descendant of device_t we do not have a tag for output; for a better
+ overview in the logfile the hard disk device passes its tag to the base
+ class.
+
+
+ TODO
+ ----
+ - Add ECC computation
+
+
+ Michael Zapf
+ August 2015
+
+**************************************************************************/
+
+#include "emu.h"
+#include "mfm_hd.h"
+#include "imageutl.h"
+
+#define TRACE_RWTRACK 0
+#define TRACE_LAYOUT 0
+#define TRACE_IMAGE 0
+#define TRACE_DETAIL 0
+#define TRACE_FORMAT 0
+
+/*
+ Accept the new layout parameters and reset the sector number fields
+ used for skew calculation.
+*/
+void mfmhd_image_format_t::set_layout_params(mfmhd_layout_params param)
+{
+ m_param = m_param_old = param;
+ m_secnumber[0] = m_secnumber[1] = m_secnumber[2] = -1;
+}
+
+/*
+ Encode some value with data-type clock bits.
+*/
+void mfmhd_image_format_t::mfm_encode(UINT16* trackimage, int& position, UINT8 byte, int count)
+{
+ mfm_encode_mask(trackimage, position, byte, count, 0x00);
+}
+
+/*
+ Encode an A1 value with mark-type clock bits.
+*/
+void mfmhd_image_format_t::mfm_encode_a1(UINT16* trackimage, int& position)
+{
+ m_current_crc = 0xffff;
+ mfm_encode_mask(trackimage, position, 0xa1, 1, 0x04);
+}
+
+/*
+ Encode a byte value with a given clock bit mask. Used by both mfm_encode
+ and mfm_encode_a1 methods.
+*/
+void mfmhd_image_format_t::mfm_encode_mask(UINT16* trackimage, int& position, UINT8 byte, int count, int mask)
+{
+ UINT16 encclock = 0;
+ UINT16 encdata = 0;
+ UINT8 thisbyte = byte;
+ bool mark = (mask != 0x00);
+
+ m_current_crc = ccitt_crc16_one(m_current_crc, byte);
+
+ for (int i=0; i < 8; i++)
+ {
+ encdata <<= 1;
+ encclock <<= 1;
+
+ if (m_param.encoding == MFM_BITS || m_param.encoding == MFM_BYTE)
+ {
+ // skip one position for later interleaving
+ encdata <<= 1;
+ encclock <<= 1;
+ }
+
+ if (thisbyte & 0x80)
+ {
+ // Encoding 1 => 01
+ encdata |= 1;
+ m_lastbit = true;
+ }
+ else
+ {
+ // Encoding 0 => x0
+ // If the bit in the mask is set, suppress the clock bit
+ // Also, if we use the simplified encoding, don't set the clock bits
+ if (m_lastbit == false && m_param.encoding != SEPARATED_SIMPLE && (mask & 0x80) == 0) encclock |= 1;
+ m_lastbit = false;
+ }
+ mask <<= 1;
+ // For simplified encoding, set all clock bits to indicate a mark
+ if (m_param.encoding == SEPARATED_SIMPLE && mark) encclock |= 1;
+ thisbyte <<= 1;
+ }
+
+ if (m_param.encoding == MFM_BITS || m_param.encoding == MFM_BYTE)
+ encclock <<= 1;
+ else
+ encclock <<= 8;
+
+ trackimage[position++] = (encclock | encdata);
+
+ // When we write the byte multiple times, check whether the next encoding
+ // differs from the previous because of the last bit
+
+ if (m_param.encoding == MFM_BITS || m_param.encoding == MFM_BYTE)
+ {
+ encclock &= 0x7fff;
+ if ((byte & 0x80)==0 && m_lastbit==false) encclock |= 0x8000;
+ }
+
+ for (int j=1; j < count; j++)
+ {
+ trackimage[position++] = (encclock | encdata);
+ m_current_crc = ccitt_crc16_one(m_current_crc, byte);
+ }
+}
+
+/*
+ Decode an MFM cell pattern into a byte value.
+ Clock bits and data bits are assumed to be interleaved (cdcdcdcdcdcdcdcd);
+ the 8 data bits are returned.
+*/
+UINT8 mfmhd_image_format_t::mfm_decode(UINT16 raw)
+{
+ unsigned int value = 0;
+
+ for (int i=0; i < 8; i++)
+ {
+ value <<= 1;
+
+ value |= (raw & 0x4000);
+ raw <<= 2;
+ }
+ return (value >> 14) & 0xff;
+}
+
+/*
+ For debugging. Outputs the byte array in a xxd-like way.
+*/
+void mfmhd_image_format_t::showtrack(UINT16* enctrack, int length)
+{
+ for (int i=0; i < length; i+=16)
+ {
+ logerror("%07x: ", i);
+ for (int j=0; j < 16; j++)
+ {
+ logerror("%04x ", enctrack[i+j]);
+ }
+ logerror(" ");
+ logerror("\n");
+ }
+}
+
+// ======================================================================
+// Generic MFM HD format
+// ======================================================================
+
+const mfmhd_format_type MFMHD_GEN_FORMAT = &mfmhd_image_format_creator<mfmhd_generic_format>;
+
+/*
+ Calculate the ident byte from the cylinder. The specification does not
+ define idents beyond cylinder 1023, but formatting programs seem to
+ continue with 0xfd for cylinders between 1024 and 2047.
+*/
+UINT8 mfmhd_generic_format::cylinder_to_ident(int cylinder)
+{
+ if (cylinder < 256) return 0xfe;
+ if (cylinder < 512) return 0xff;
+ if (cylinder < 768) return 0xfc;
+ return 0xfd;
+}
+
+/*
+ Returns the linear sector number, given the CHS data.
+
+ C,H,S
+ | 0,0,0 | 0,0,1 | 0,0,2 | ...
+ | 0,1,0 | 0,1,1 | 0,1,2 | ...
+ ...
+ | 1,0,0 | ...
+ ...
+*/
+int mfmhd_generic_format::chs_to_lba(int cylinder, int head, int sector)
+{
+ if ((cylinder < m_param.cylinders) && (head < m_param.heads) && (sector < m_param.sectors_per_track))
+ {
+ return (cylinder * m_param.heads + head) * m_param.sectors_per_track + sector;
+ }
+ else return -1;
+}
+
+chd_error mfmhd_generic_format::load(chd_file* chdfile, UINT16* trackimage, int tracksize, int cylinder, int head)
+{
+ chd_error state = CHDERR_NONE;
+ UINT8 sector_content[16384];
+
+ int sectorcount = m_param.sectors_per_track;
+ int size = m_param.sector_size;
+ int position = 0; // will be incremented by each encode call
+ int sec_number = 0;
+ int identfield = 0;
+ int cylfield = 0;
+ int headfield = 0;
+ int sizefield = (size >> 7)-1;
+
+ // If we don't have interleave data in the CHD, take a default
+ if (m_param.interleave==0)
+ {
+ m_param.interleave = get_default(MFMHD_IL);
+ m_param.cylskew = get_default(MFMHD_CSKEW);
+ m_param.headskew = get_default(MFMHD_HSKEW);
+ }
+
+ int sec_il_start = (m_param.cylskew * cylinder + m_param.headskew * head) % sectorcount;
+ int delta = (sectorcount + m_param.interleave-1) / m_param.interleave;
+
+ if (TRACE_RWTRACK) logerror("%s: Load track (c=%d,h=%d) from CHD, interleave=%d, cylskew=%d, headskew=%d\n", tag(), cylinder, head, m_param.interleave, m_param.cylskew, m_param.headskew);
+
+ m_lastbit = false;
+
+ if (m_param.sync==0)
+ {
+ m_param.gap1 = get_default(MFMHD_GAP1);
+ m_param.gap2 = get_default(MFMHD_GAP2);
+ m_param.gap3 = get_default(MFMHD_GAP3);
+ m_param.sync = get_default(MFMHD_SYNC);
+ m_param.headerlen = get_default(MFMHD_HLEN);
+ m_param.ecctype = get_default(MFMHD_ECC);
+ }
+
+ // Gap 1
+ mfm_encode(trackimage, position, 0x4e, m_param.gap1);
+
+ if (TRACE_LAYOUT) logerror("%s: cyl=%d head=%d: sector sequence = ", tag(), cylinder, head);
+
+ sec_number = sec_il_start;
+ for (int sector = 0; sector < sectorcount; sector++)
+ {
+ if (TRACE_LAYOUT) logerror("%02d ", sec_number);
+
+ // Sync gap
+ mfm_encode(trackimage, position, 0x00, m_param.sync);
+
+ // Write IDAM
+ mfm_encode_a1(trackimage, position);
+
+ // Write header
+ identfield = cylinder_to_ident(cylinder);
+ cylfield = cylinder & 0xff;
+ headfield = head & 0x0f;
+ if (m_param.headerlen==5)
+ headfield |= ((cylinder & 0x700)>>4);
+
+ mfm_encode(trackimage, position, identfield);
+ mfm_encode(trackimage, position, cylfield);
+ mfm_encode(trackimage, position, headfield);
+ mfm_encode(trackimage, position, sec_number);
+ if (m_param.headerlen==5)
+ mfm_encode(trackimage, position, sizefield);
+
+ // Write CRC for header.
+ int crc = m_current_crc;
+ mfm_encode(trackimage, position, (crc >> 8) & 0xff);
+ mfm_encode(trackimage, position, crc & 0xff);
+
+ // Gap 2
+ mfm_encode(trackimage, position, 0x4e, m_param.gap2);
+
+ // Sync
+ mfm_encode(trackimage, position, 0x00, m_param.sync);
+
+ // Write DAM
+ mfm_encode_a1(trackimage, position);
+ mfm_encode(trackimage, position, 0xfb);
+
+ // Get sector content from CHD
+ int lbaposition = chs_to_lba(cylinder, head, sec_number);
+ if (lbaposition>=0)
+ {
+ chd_error state = chdfile->read_units(lbaposition, sector_content);
+ if (state != CHDERR_NONE) break;
+ }
+ else
+ {
+ logerror("%s: Invalid CHS data (%d,%d,%d); not loading from CHD\n", tag(), cylinder, head, sector);
+ }
+
+ for (int i=0; i < size; i++)
+ mfm_encode(trackimage, position, sector_content[i]);
+
+ // Write CRC for content.
+ crc = m_current_crc;
+ mfm_encode(trackimage, position, (crc >> 8) & 0xff);
+ mfm_encode(trackimage, position, crc & 0xff);
+
+ // Gap 3
+ mfm_encode(trackimage, position, 0x00, 3);
+ mfm_encode(trackimage, position, 0x4e, m_param.gap3-3);
+
+ // Calculate next sector number
+ sec_number += delta;
+ if (sec_number >= sectorcount)
+ {
+ sec_il_start = (sec_il_start+1) % delta;
+ sec_number = sec_il_start;
+ }
+ }
+ if (TRACE_LAYOUT) logerror("\n");
+
+ // Gap 4
+ if (state == CHDERR_NONE)
+ {
+ // Fill the rest with 0x4e
+ mfm_encode(trackimage, position, 0x4e, tracksize-position);
+ if (TRACE_IMAGE) showtrack(trackimage, tracksize);
+ }
+ return state;
+}
+
+/*
+ State names for analyzing the track image.
+*/
+enum
+{
+ SEARCH_A1=0,
+ FOUND_A1,
+ DAM_FOUND,
+ CHECK_CRC
+};
+
+chd_error mfmhd_generic_format::save(chd_file* chdfile, UINT16* trackimage, int tracksize, int current_cylinder, int current_head)
+{
+ if (TRACE_RWTRACK) logerror("%s: write back (c=%d,h=%d) to CHD\n", tag(), current_cylinder, current_head);
+
+ UINT8 buffer[16384]; // for header or sector content
+
+ int bytepos = 0;
+ int state = SEARCH_A1;
+ int count = 0;
+ int pos = 0;
+ UINT16 crc = 0;
+ UINT8 byte;
+ bool search_header = true;
+
+ int ident = 0;
+ int cylinder = 0;
+ int head = 0;
+ int sector = 0;
+ int size = 0;
+
+ int headerpos = 0;
+
+ int interleave = 0;
+ int interleave_prec = -1;
+ bool check_interleave = true;
+ bool check_skew = true;
+
+ int gap1 = 0;
+ int ecctype = 0;
+
+ // if (current_cylinder==0 && current_head==0) showtrack(trackimage, tracksize);
+
+ // If we want to detect gaps, we only do it on cylinder 0, head 0
+ // This makes it safer to detect the header length
+ // (There is indeed some chance that we falsely assume a header length of 4
+ // because the two bytes behind happen to be a valid CRC value)
+ if (save_param(MFMHD_GAP1) && current_cylinder==0 && current_head==0)
+ {
+ m_param.gap1 = 0;
+ m_param.gap2 = 0;
+ m_param.gap3 = 0;
+ m_param.sync = 0;
+ // 4-byte headers are used for the IBM-AT format
+ // 5-byte headers are used in other formats
+ m_param.headerlen = 4;
+ m_param.ecctype = 0;
+ }
+
+ // AT format implies 512 bytes per sector
+ int sector_length = 512;
+
+ // Only check once
+ bool countgap1 = (m_param.gap1==0);
+ bool countgap2 = false;
+ bool countgap3 = false;
+ bool countsync = false;
+
+ chd_error chdstate = CHDERR_NONE;
+
+ if (TRACE_IMAGE)
+ {
+ for (int i=0; i < tracksize; i++)
+ {
+ if ((i % 16)==0) logerror("\n%04x: ", i);
+ logerror("%02x ", (m_param.encoding==MFM_BITS || m_param.encoding==MFM_BYTE)? mfm_decode(trackimage[i]) : (trackimage[i]&0xff));
+ }
+ logerror("\n");
+ }
+
+ // We have to go through the bytes of the track and save a sector as soon as one shows up
+
+ while (bytepos < tracksize)
+ {
+ // Decode the next 16 bits
+ if (m_param.encoding==MFM_BITS || m_param.encoding==MFM_BYTE)
+ {
+ byte = mfm_decode(trackimage[bytepos]);
+ }
+ else byte = (trackimage[bytepos] & 0xff);
+
+ switch (state)
+ {
+ case SEARCH_A1:
+ // Counting gaps and sync
+ if (countgap2)
+ {
+ if (byte == 0x4e) m_param.gap2++;
+ else if (byte == 0) { countsync = true; countgap2 = false; }
+ }
+
+ if (countsync)
+ {
+ if (byte == 0) m_param.sync++;
+ else countsync = false;
+ }
+
+ if (countgap3)
+ {
+ if (byte != 0x00 || m_param.gap3 < 4) m_param.gap3++;
+ else countgap3 = false;
+ }
+
+ if (((m_param.encoding==MFM_BITS || m_param.encoding==MFM_BYTE) && trackimage[bytepos]==0x4489)
+ || (m_param.encoding==SEPARATED && trackimage[bytepos]==0x0aa1)
+ || (m_param.encoding==SEPARATED_SIMPLE && trackimage[bytepos]==0xffa1))
+ {
+ state = FOUND_A1;
+ count = (search_header? m_param.headerlen : (sector_length+1)) + 2;
+ crc = 0x443b; // init value with a1
+ pos = 0;
+ }
+ bytepos++;
+ break;
+
+ case FOUND_A1:
+ crc = ccitt_crc16_one(crc, byte);
+ // logerror("%s: MFM HD: Byte = %02x, CRC=%04x\n", tag(), byte, crc);
+
+ // Put byte into buffer
+ // but not the data mark and the CRC
+ if (search_header || (count > 2 && count < sector_length+3)) buffer[pos++] = byte;
+
+ // Stop counting gap1
+ if (search_header && countgap1)
+ {
+ gap1 = bytepos-1;
+ countgap1 = false;
+ }
+
+ if (--count == 0)
+ {
+ if (crc==0)
+ {
+ if (search_header)
+ {
+ // Found a header
+ ident = buffer[0];
+ cylinder = buffer[1];
+ // For non-PC-AT formats, highest three bits are in the head field
+ if (m_param.headerlen == 5) cylinder |= ((buffer[2]&0x70)<<4);
+ else
+ {
+ logerror("%s: Unexpected header size: %d, cylinder=%d, position=%04x\n", tag(), m_param.headerlen, cylinder, bytepos);
+ showtrack(trackimage, tracksize);
+ }
+
+ head = buffer[2] & 0x0f;
+ sector = buffer[3];
+ int identexp = cylinder_to_ident(cylinder);
+
+ if (identexp != ident)
+ {
+ logerror("%s: Field error; ident = %02x (expected %02x) for sector chs=(%d,%d,%d)\n", tag(), ident, identexp, cylinder, head, sector);
+ }
+
+ if (cylinder != current_cylinder)
+ {
+ logerror("%s: Sector header of sector %d defines cylinder = %02x (should be %02x)\n", tag(), sector, cylinder, current_cylinder);
+ }
+
+ if (head != current_head)
+ {
+ logerror("%s: Sector header of sector %d defines head = %02x (should be %02x)\n", tag(), sector, head, current_head);
+ }
+
+ // Check skew
+ // We compare the beginning of this track with the track on the next head and the track on the next cylinder
+ if (check_skew && cylinder < 2 && head < 2)
+ {
+ m_secnumber[cylinder*2 + head] = sector;
+ check_skew=false;
+ }
+
+ // Count the sectors for the interleave
+ if (check_interleave)
+ {
+ if (interleave_prec == -1) interleave_prec = sector;
+ else
+ {
+ if (sector == interleave_prec+1) check_interleave = false;
+ interleave++;
+ }
+ }
+
+ if (interleave == 0) interleave = sector - buffer[3];
+
+ // When we have 4-byte headers, the sector length is 512 bytes
+ if (m_param.headerlen == 5)
+ {
+ size = buffer[4];
+ sector_length = 128 << (size&0x07);
+ ecctype = (size&0xf0)>>4;
+ }
+
+ search_header = false;
+ if (TRACE_DETAIL) logerror("%s: Found sector chs=(%d,%d,%d)\n", tag(), cylinder, head, sector);
+ headerpos = pos;
+ // Start the GAP2 counter (if not already determined)
+ if (m_param.gap2==0) countgap2 = true;
+ }
+ else
+ {
+ // Sector contents
+ // Write the sectors to the CHD
+ int lbaposition = chs_to_lba(cylinder, head, sector);
+ if (lbaposition>=0)
+ {
+ if (TRACE_DETAIL) logerror("%s: Writing sector chs=(%d,%d,%d) to CHD\n", tag(), current_cylinder, current_head, sector);
+ chdstate = chdfile->write_units(chs_to_lba(current_cylinder, current_head, sector), buffer);
+
+ if (chdstate != CHDERR_NONE)
+ {
+ logerror("%s: Write error while writing sector chs=(%d,%d,%d)\n", tag(), cylinder, head, sector);
+ }
+ }
+ else
+ {
+ logerror("%s: Invalid CHS data in track image: (%d,%d,%d); not saving to CHD\n", tag(), cylinder, head, sector);
+ }
+ if (m_param.gap3==0) countgap3 = true;
+ search_header = true;
+ }
+ }
+ else
+ {
+ // Let's test for a 5-byte header
+ if (search_header && m_param.headerlen==4 && current_cylinder==0 && current_head==0)
+ {
+ if (TRACE_DETAIL) logerror("%s: CRC error for 4-byte header; trying 5 bytes\n", tag());
+ m_param.headerlen=5;
+ count = 1;
+ bytepos++;
+ break;
+ }
+ else
+ {
+ logerror("%s: CRC error in %s of (%d,%d,%d)\n", tag(), search_header? "header" : "data", cylinder, head, sector);
+ search_header = true;
+ }
+ }
+ // search next A1
+ state = SEARCH_A1;
+
+ if (!search_header && (pos - headerpos) > 30)
+ {
+ logerror("%s: Error; missing DAM; searching next header\n", tag());
+ search_header = true;
+ }
+ }
+ bytepos++;
+ break;
+ }
+ }
+
+ if (check_interleave == false && save_param(MFMHD_IL))
+ {
+ // Successfully determined the interleave
+ m_param.interleave = interleave;
+ if (TRACE_FORMAT)
+ if (current_cylinder==0 && current_head==0) logerror("%s: Determined interleave = %d\n", tag(), m_param.interleave);
+ }
+
+ if (check_skew == false)
+ {
+ if (m_secnumber[0] != -1)
+ {
+ if (m_secnumber[1] != -1)
+ {
+ if (save_param(MFMHD_HSKEW)) m_param.headskew = m_secnumber[1]-m_secnumber[0];
+ if (TRACE_FORMAT) logerror("%s: Determined head skew = %d\n", tag(), m_param.headskew);
+ }
+ if (m_secnumber[2] != -1)
+ {
+ if (save_param(MFMHD_CSKEW)) m_param.cylskew = m_secnumber[2]-m_secnumber[0];
+ if (TRACE_FORMAT) logerror("%s: Determined cylinder skew = %d\n", tag(), m_param.cylskew);
+ }
+ }
+ }
+
+ gap1 -= m_param.sync;
+ ecctype = -1; // lock to CRC until we have a support for ECC
+
+ if (current_cylinder==0 && current_head==0)
+ {
+ // If we want to detect gaps, store the new value into the param object
+ // The other gaps have already been written directly to the param object above,
+ // unless save_param returned false (or we were not on cylinder 0, head 0)
+ if (save_param(MFMHD_GAP1)) m_param.gap1 = gap1;
+ if (save_param(MFMHD_ECC)) m_param.ecctype = ecctype;
+ }
+ return chdstate;
+}
+
+/*
+ Deliver default values.
+*/
+int mfmhd_generic_format::get_default(mfmhd_param_t type)
+{
+ switch (type)
+ {
+ case MFMHD_IL: return 4;
+ case MFMHD_HSKEW:
+ case MFMHD_CSKEW: return 0;
+ case MFMHD_WPCOM: // Write precompensation cylinder (-1 = none)
+ case MFMHD_RWC: return -1; // Reduced write current cylinder (-1 = none)
+ case MFMHD_GAP1: return 16;
+ case MFMHD_GAP2: return 3;
+ case MFMHD_GAP3: return 18;
+ case MFMHD_SYNC: return 13;
+ case MFMHD_HLEN: return 5;
+ case MFMHD_ECC: return -1; // -1: use CRC instead of ECC
+ }
+ return -1;
+}
diff --git a/src/lib/formats/mfm_hd.h b/src/lib/formats/mfm_hd.h
new file mode 100644
index 00000000000..dfa4d3ffba7
--- /dev/null
+++ b/src/lib/formats/mfm_hd.h
@@ -0,0 +1,212 @@
+// license:LGPL-2.1+
+// copyright-holders:Michael Zapf
+/****************************************************************************
+
+ Hard disk support
+ See mfm_hd.c for documentation
+
+ Michael Zapf
+
+ February 2012: Rewritten as class
+
+*****************************************************************************/
+
+#ifndef __MFMHDFMT__
+#define __MFMHDFMT__
+
+#include "emu.h"
+#include "chd.h"
+
+const chd_metadata_tag MFM_HARD_DISK_METADATA_TAG = CHD_MAKE_TAG('G','D','D','I');
+
+extern const char *MFMHD_REC_METADATA_FORMAT;
+extern const char *MFMHD_GAP_METADATA_FORMAT;
+
+/*
+ Determine how data are passed from the hard disk to the controller. We
+ allow for different degrees of hardware emulation.
+*/
+enum mfmhd_enc_t
+{
+ MFM_BITS, // One bit at a time
+ MFM_BYTE, // One data byte with interleaved clock bits
+ SEPARATED, // 8 clock bits (most sig byte), one data byte (least sig byte)
+ SEPARATED_SIMPLE // MSB: 00/FF (standard / mark) clock, LSB: one data byte
+};
+
+class mfmhd_image_format_t;
+
+// Pointer to its alloc function
+typedef mfmhd_image_format_t *(*mfmhd_format_type)();
+
+template<class _FormatClass>
+mfmhd_image_format_t *mfmhd_image_format_creator()
+{
+ return new _FormatClass();
+}
+
+/*
+ Parameters for the track layout
+*/
+class mfmhd_layout_params
+{
+public:
+ // Geometry params. These are fixed for the device. However, sector sizes
+ // could be changed, but we do not support this (yet). These are defined
+ // in the CHD and must match those of the device. They are stored by the GDDD tag.
+ // The encoding is not stored in the CHD but is also supposed to be immutable.
+ int cylinders;
+ int heads;
+ int sectors_per_track;
+ int sector_size;
+ mfmhd_enc_t encoding;
+
+ // Parameters like interleave, precompensation, write current can be changed
+ // on every write operation. They are stored by the GDDI tag (first record).
+ int interleave;
+ int cylskew;
+ int headskew;
+ int write_precomp_cylinder; // if -1, no wpcom on the disks
+ int reduced_wcurr_cylinder; // if -1, no rwc on the disks
+
+ // Parameters for the track layout that are supposed to be the same for
+ // all tracks and that do not change (until the next reformat).
+ // Also, they do not have any influence on the CHD file.
+ // They are stored by the GDDI tag (second record).
+ int gap1;
+ int gap2;
+ int gap3;
+ int sync;
+ int headerlen;
+ int ecctype; // -1 is CRC
+
+ bool sane_rec()
+ {
+ return ((interleave > 0 && interleave < 32) && (cylskew >= 0 && cylskew < 32) && (headskew >= 0 && headskew < 32)
+ && (write_precomp_cylinder >= -1 && write_precomp_cylinder < 100000)
+ && (reduced_wcurr_cylinder >= -1 && reduced_wcurr_cylinder < 100000));
+ }
+
+ void reset_rec()
+ {
+ interleave = cylskew = headskew = 0;
+ write_precomp_cylinder = reduced_wcurr_cylinder = -1;
+ }
+
+ bool sane_gap()
+ {
+ return ((gap1 >= 1 && gap1 < 1000) && (gap2 >= 1 && gap2 < 20) && (gap3 >= 1 && gap3 < 1000)
+ && (sync >= 10 && sync < 20)
+ && (headerlen >= 4 && headerlen<=5) && (ecctype>=-1 && ecctype < 10));
+ }
+
+ void reset_gap()
+ {
+ gap1 = gap2 = gap3 = sync = headerlen = ecctype = 0;
+ }
+
+ bool equals_rec(mfmhd_layout_params* other)
+ {
+ return ((interleave == other->interleave) &&
+ (cylskew == other->cylskew) &&
+ (headskew == other->headskew) &&
+ (write_precomp_cylinder == other->write_precomp_cylinder) &&
+ (reduced_wcurr_cylinder == other->reduced_wcurr_cylinder));
+ }
+
+ bool equals_gap(mfmhd_layout_params* other)
+ {
+ return ((gap1 == other->gap1) &&
+ (gap2 == other->gap2) &&
+ (gap3 == other->gap3) &&
+ (sync == other->sync) &&
+ (headerlen == other->headerlen) &&
+ (ecctype == other->ecctype));
+ }
+};
+
+enum mfmhd_param_t
+{
+ MFMHD_IL,
+ MFMHD_HSKEW,
+ MFMHD_CSKEW,
+ MFMHD_WPCOM,
+ MFMHD_RWC,
+ MFMHD_GAP1,
+ MFMHD_GAP2,
+ MFMHD_GAP3,
+ MFMHD_SYNC,
+ MFMHD_HLEN,
+ MFMHD_ECC
+};
+
+/*
+ Hard disk format
+*/
+class mfmhd_image_format_t
+{
+public:
+ mfmhd_image_format_t() { m_devtag = std::string("mfmhd_image_format_t"); };
+ virtual ~mfmhd_image_format_t() {};
+
+ // Load the image.
+ virtual chd_error load(chd_file* chdfile, UINT16* trackimage, int tracksize, int cylinder, int head) = 0;
+
+ // Save the image.
+ virtual chd_error save(chd_file* chdfile, UINT16* trackimage, int tracksize, int cylinder, int head) = 0;
+
+ // Return the original parameters of the image
+ mfmhd_layout_params* get_initial_params() { return &m_param_old; }
+
+ // Return the recent parameters of the image
+ mfmhd_layout_params* get_current_params() { return &m_param; }
+
+ // Set the track layout parameters (and reset the skew detection values)
+ void set_layout_params(mfmhd_layout_params param);
+
+ // Concrete format shall decide whether we want to save the retrieved parameters or not.
+ virtual bool save_param(mfmhd_param_t type) =0;
+
+ // Accept a tag for log output, since this is not a device instance
+ void set_tag(std::string tag) { m_devtag = tag; }
+
+protected:
+ bool m_lastbit;
+ int m_current_crc;
+ int m_secnumber[4]; // used to determine the skew values
+ std::string m_devtag;
+
+ mfmhd_layout_params m_param, m_param_old;
+
+ void mfm_encode(UINT16* trackimage, int& position, UINT8 byte, int count=1);
+ void mfm_encode_a1(UINT16* trackimage, int& position);
+ void mfm_encode_mask(UINT16* trackimage, int& position, UINT8 byte, int count, int mask);
+ UINT8 mfm_decode(UINT16 raw);
+
+ // Deliver defaults.
+ virtual int get_default(mfmhd_param_t type) =0;
+
+ // Debugging
+ void showtrack(UINT16* enctrack, int length);
+ virtual const char* tag() { return m_devtag.c_str(); }
+};
+
+class mfmhd_generic_format : public mfmhd_image_format_t
+{
+public:
+ mfmhd_generic_format() { m_devtag = std::string("mfmhd_generic_format"); };
+ chd_error load(chd_file* chdfile, UINT16* trackimage, int tracksize, int cylinder, int head);
+ chd_error save(chd_file* chdfile, UINT16* trackimage, int tracksize, int cylinder, int head);
+
+ // Yes, we want to save all parameters
+ virtual bool save_param(mfmhd_param_t type) { return true; }
+ virtual int get_default(mfmhd_param_t type);
+
+protected:
+ virtual UINT8 cylinder_to_ident(int cylinder);
+ virtual int chs_to_lba(int cylinder, int head, int sector);
+};
+
+extern const mfmhd_format_type MFMHD_GEN_FORMAT;
+
+#endif
diff --git a/src/lib/formats/ti99_dsk.c b/src/lib/formats/ti99_dsk.c
index 599cbe4eda3..d83853e0a5d 100644
--- a/src/lib/formats/ti99_dsk.c
+++ b/src/lib/formats/ti99_dsk.c
@@ -79,7 +79,7 @@ bool ti99_floppy_format::check_for_address_marks(UINT8* trackdata, int encoding)
while (i < 5)
{
if (trackdata[40 + 13 + i*340] != 0xfe) break;
- if (trackdata[40 + 57 + i*340] != 0xfb && trackdata[40 + 57 + i*334] != 0xf8) break;
+ if (trackdata[40 + 57 + i*340] != 0xfb && trackdata[40 + 57 + i*340] != 0xf8) break;
i++;
}
}
@@ -410,8 +410,7 @@ void ti99_floppy_format::generate_track_mfm(int track, int head, int cell_size,
// IDAM
for (int j=0; j < 3; j++)
raw_w(buffer, 16, 0x4489); // 3 times A1
- mfm_w(buffer, 8, 0xfe);
- i += 3;
+ i += 2;
}
else
{
@@ -420,8 +419,7 @@ void ti99_floppy_format::generate_track_mfm(int track, int head, int cell_size,
// DAM
for (int j=0; j < 3; j++)
raw_w(buffer, 16, 0x4489); // 3 times A1
- mfm_w(buffer, 8, 0xfb);
- i += 3;
+ i += 2;
}
else
{
diff --git a/src/lib/formats/tiki100_dsk.c b/src/lib/formats/tiki100_dsk.c
index 1a05af7a5af..2258f29c47a 100644
--- a/src/lib/formats/tiki100_dsk.c
+++ b/src/lib/formats/tiki100_dsk.c
@@ -74,6 +74,11 @@ const tiki100_format::format tiki100_format::formats[] = {
2000, 10, 40, 1, 512, {}, -1, { 1,6,2,7,3,8,4,9,5,10 }, 20, 22, 24
},
+ { // 360K 5 1/4 inch double density
+ floppy_image::FF_525, floppy_image::DSDD, floppy_image::MFM,
+ 2000, 9, 40, 2, 512, {}, -1, { 1,6,2,7,3,8,4,9,5,10 }, 20, 22, 24
+ },
+
// track description
// 20x4e 12x00 3xf5 fe 2x00 01 02 f7 22x4e 12x00 3xf5 fb 512xe5 f7
// 24x4e 12x00 3xf5 fe 2x00 06 02 f7 22x4e 12x00 3xf5 fb 512xe5 f7
diff --git a/src/lib/formats/vector06_dsk.c b/src/lib/formats/vector06_dsk.c
index b423f4b7154..6601d84e7c7 100644
--- a/src/lib/formats/vector06_dsk.c
+++ b/src/lib/formats/vector06_dsk.c
@@ -38,6 +38,10 @@ const vector06_format::format vector06_format::formats[] =
floppy_image::FF_525, floppy_image::DSQD, floppy_image::MFM,
2000, 5, 82, 2, 1024, {}, 1, {}, 80, 22, 24
},
+ {
+ floppy_image::FF_525, floppy_image::DSQD, floppy_image::MFM,
+ 2000, 5, 80, 2, 1024, {}, 1, {}, 80, 22, 24
+ },
{}
};
diff --git a/src/emu/netlist/analog/nld_bjt.c b/src/lib/netlist/analog/nld_bjt.c
index 0e793c7d909..5f5a3611b97 100644
--- a/src/emu/netlist/analog/nld_bjt.c
+++ b/src/lib/netlist/analog/nld_bjt.c
@@ -5,9 +5,9 @@
*
*/
-#include <solver/nld_solver.h>
-#include "nld_bjt.h"
-#include "../nl_setup.h"
+#include "solver/nld_solver.h"
+#include "analog/nld_bjt.h"
+#include "nl_setup.h"
NETLIB_NAMESPACE_DEVICES_START()
@@ -55,7 +55,7 @@ NETLIB_NAME(Q)::~NETLIB_NAME(Q)()
NETLIB_START(Q)
{
- register_param("model", m_model, "");
+ register_param("MODEL", m_model, "");
}
NETLIB_RESET(Q)
@@ -118,9 +118,9 @@ NETLIB_UPDATE(QBJT_switch)
NETLIB_UPDATE_PARAM(QBJT_switch)
{
- nl_double IS = m_model.model_value("IS", 1e-15);
- nl_double BF = m_model.model_value("BF", 100);
- nl_double NF = m_model.model_value("NF", 1);
+ nl_double IS = m_model.model_value("IS");
+ nl_double BF = m_model.model_value("BF");
+ nl_double NF = m_model.model_value("NF");
//nl_double VJE = m_model.dValue("VJE", 0.75);
set_qtype((m_model.model_type() == "NPN") ? BJT_NPN : BJT_PNP);
@@ -230,11 +230,11 @@ NETLIB_UPDATE_TERMINALS(QBJT_EB)
NETLIB_UPDATE_PARAM(QBJT_EB)
{
- nl_double IS = m_model.model_value("IS", 1e-15);
- nl_double BF = m_model.model_value("BF", 100);
- nl_double NF = m_model.model_value("NF", 1);
- nl_double BR = m_model.model_value("BR", 1);
- nl_double NR = m_model.model_value("NR", 1);
+ nl_double IS = m_model.model_value("IS");
+ nl_double BF = m_model.model_value("BF");
+ nl_double NF = m_model.model_value("NF");
+ nl_double BR = m_model.model_value("BR");
+ nl_double NR = m_model.model_value("NR");
//nl_double VJE = m_model.dValue("VJE", 0.75);
set_qtype((m_model.model_type() == "NPN") ? BJT_NPN : BJT_PNP);
diff --git a/src/emu/netlist/analog/nld_bjt.h b/src/lib/netlist/analog/nld_bjt.h
index df0a68f5cf8..520321f2db2 100644
--- a/src/emu/netlist/analog/nld_bjt.h
+++ b/src/lib/netlist/analog/nld_bjt.h
@@ -8,27 +8,27 @@
#ifndef NLD_BJT_H_
#define NLD_BJT_H_
-#include "../nl_base.h"
+#include "nl_base.h"
#include "nld_twoterm.h"
-// ----------------------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
// Macros
-// ----------------------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
-#define QBJT_SW(_name, _model) \
- NET_REGISTER_DEV(QBJT_SW, _name) \
- NETDEV_PARAMI(_name, model, _model)
+#define QBJT_SW(_name, _model) \
+ NET_REGISTER_DEV(QBJT_SW, _name) \
+ NETDEV_PARAMI(_name, MODEL, _model)
-#define QBJT_EB(_name, _model) \
- NET_REGISTER_DEV(QBJT_EB, _name) \
- NETDEV_PARAMI(_name, model, _model)
+#define QBJT_EB(_name, _model) \
+ NET_REGISTER_DEV(QBJT_EB, _name) \
+ NETDEV_PARAMI(_name, MODEL, _model)
NETLIB_NAMESPACE_DEVICES_START()
-// ----------------------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
// nld_Q - Base classes
-// ----------------------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
// Have a common start for transistors
@@ -73,9 +73,9 @@ private:
-// ----------------------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
// nld_QBJT_switch
-// ----------------------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
/*
@@ -126,9 +126,9 @@ protected:
private:
};
-// ----------------------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
// nld_QBJT_EB
-// ----------------------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
class NETLIB_NAME(QBJT_EB) : public NETLIB_NAME(QBJT)
diff --git a/src/emu/netlist/analog/nld_fourterm.c b/src/lib/netlist/analog/nld_fourterm.c
index 58d173e6554..d7fd828e1f3 100644
--- a/src/emu/netlist/analog/nld_fourterm.c
+++ b/src/lib/netlist/analog/nld_fourterm.c
@@ -5,9 +5,9 @@
*
*/
-#include <solver/nld_solver.h>
+#include "solver/nld_solver.h"
#include "nld_fourterm.h"
-#include "../nl_setup.h"
+#include "nl_setup.h"
NETLIB_NAMESPACE_DEVICES_START()
@@ -52,7 +52,6 @@ NETLIB_RESET(VCCS)
const nl_double m_mult = m_G.Value() * m_gfac; // 1.0 ==> 1V ==> 1A
const nl_double GI = NL_FCONST(1.0) / m_RI.Value();
- //printf("VCCS %s RI %f\n", name().cstr(), m_RI.Value());
m_IP.set(GI);
m_IN.set(GI);
@@ -127,8 +126,6 @@ NETLIB_UPDATE_TERMINALS(LVCCS)
m_ON.set(-beta, NL_FCONST(0.0), -I);
m_ON1.set(beta, NL_FCONST(0.0));
- //printf("vi %f beta %f I %f\n", vi, beta, I);
-
}
// ----------------------------------------------------------------------------------------
diff --git a/src/emu/netlist/analog/nld_fourterm.h b/src/lib/netlist/analog/nld_fourterm.h
index 7ed6965a393..591df68dd79 100644
--- a/src/emu/netlist/analog/nld_fourterm.h
+++ b/src/lib/netlist/analog/nld_fourterm.h
@@ -9,7 +9,7 @@
#define NLD_FOURTERM_H_
-#include "../nl_base.h"
+#include "nl_base.h"
#include "nld_twoterm.h"
// ----------------------------------------------------------------------------------------
diff --git a/src/emu/netlist/analog/nld_opamps.c b/src/lib/netlist/analog/nld_opamps.c
index b20989f9645..38a32b0d211 100644
--- a/src/emu/netlist/analog/nld_opamps.c
+++ b/src/lib/netlist/analog/nld_opamps.c
@@ -6,7 +6,7 @@
*/
#include "nld_opamps.h"
-#include "../devices/net_lib.h"
+#include "devices/net_lib.h"
NETLIST_START(opamp_lm3900)
@@ -42,20 +42,17 @@ NETLIB_NAMESPACE_DEVICES_START()
/*
* Type = 0: Impedance changer
- * 1; Ideal opamp
- * 2; opamp with first pole
- * 3: opamp with first pole + output limit
- * 4: opamp with input stage, first pole + output limit
+ * 1; Idealized opamp
+ * 2; opamp with first pole
+ * 3: opamp with first pole + output limit
+ * 4: opamp with input stage, first pole + output limit
*/
NETLIB_START(OPAMP)
{
- register_sub("RP1", m_RP);
- register_sub("CP1", m_CP);
- register_sub("G1", m_G1);
- register_sub("EBUF", m_EBUF);
- register_sub("DN", m_DN);
- register_sub("DP", m_DP);
+ register_param("MODEL", m_model, "");
+
+ m_type = m_model.model_value("TYPE");
register_input("VCC", m_VCC);
register_input("GND", m_GND);
@@ -64,12 +61,27 @@ NETLIB_START(OPAMP)
register_output("VH", m_VH);
register_output("VREF", m_VREF);
- register_param("model", m_model, "");
+ register_sub("G1", m_G1);
+ register_sub("RP1", m_RP);
- m_type = m_model.model_value("TYPE");
+ if (m_type == 1)
+ {
+ register_subalias("PLUS", "G1.IP");
+ register_subalias("MINUS", "G1.IN");
+ register_subalias("OUT", "G1.OP");
+
+ connect_late("G1.ON", "VREF");
+ connect_late("RP1.2", "VREF");
+ connect_late("RP1.1", "G1.OP");
- if (m_type == 3)
+ }
+ else if (m_type == 3)
{
+ register_sub("CP1", m_CP);
+ register_sub("EBUF", m_EBUF);
+ register_sub("DN", m_DN);
+ register_sub("DP", m_DP);
+
register_subalias("PLUS", "G1.IP");
register_subalias("MINUS", "G1.IN");
register_subalias("OUT", "EBUF.OP");
@@ -91,7 +103,7 @@ NETLIB_START(OPAMP)
connect_late("EBUF.IP", "RP1.1");
}
else
- netlist().error("Unknown opamp type: %d", m_type);
+ netlist().log().fatal("Unknown opamp type: {1}", m_type);
}
/* .model abc OPAMP(VLH=2.0 VLL=0.2 FPF=5 UGF=10k SLEW=0.6u RI=1000k RO=50 DAB=0.002)
@@ -111,27 +123,39 @@ NETLIB_UPDATE(OPAMP)
NETLIB_RESET(OPAMP)
{
- m_EBUF.do_reset();
m_G1.do_reset();
- m_DP.do_reset();
- m_DN.do_reset();
- m_CP.do_reset();
- m_RP.do_reset();
-
- m_EBUF.m_G.setTo(1.0);
m_G1.m_RI.setTo(m_model.model_value("RI"));
- m_EBUF.m_RO.setTo(m_model.model_value("RO"));
- m_DP.m_model.setTo(".model tt D(IS=1e-15 N=1)");
- m_DN.m_model.setTo(".model tt D(IS=1e-15 N=1)");
- double CP = m_model.model_value("DAB") / m_model.model_value("SLEW");
- double RP = 0.5 / 3.1459 / CP / m_model.model_value("FPF");
- double G = m_model.model_value("UGF") / m_model.model_value("FPF") / RP;
+ if (m_type == 1)
+ {
+ double RO = m_model.model_value("RO");
+ double G = m_model.model_value("UGF") / m_model.model_value("FPF") / RO;
+ m_RP.set_R(RO);
+ m_G1.m_G.setTo(G);
+ }
+ else if (m_type == 3)
+ {
+ m_EBUF.do_reset();
+ m_DP.do_reset();
+ m_DN.do_reset();
+ m_CP.do_reset();
+ m_RP.do_reset();
+
+ m_EBUF.m_G.setTo(1.0);
+ m_EBUF.m_RO.setTo(m_model.model_value("RO"));
+ m_DP.m_model.setTo("D(IS=1e-15 N=1)");
+ m_DN.m_model.setTo("D(IS=1e-15 N=1)");
+
+ double CP = m_model.model_value("DAB") / m_model.model_value("SLEW");
+ double RP = 0.5 / 3.1459 / CP / m_model.model_value("FPF");
+ double G = m_model.model_value("UGF") / m_model.model_value("FPF") / RP;
+
+ m_CP.m_C.setTo(CP);
+ m_RP.set_R(RP);
+ m_G1.m_G.setTo(G);
+
+ }
- //printf("CP=%e RP=%f G=%f\n", CP, RP, G);
- m_CP.m_C.setTo(CP);
- m_RP.set_R(RP);
- m_G1.m_G.setTo(G);
}
@@ -141,17 +165,16 @@ NETLIB_UPDATE_PARAM(OPAMP)
/*
NETLIB_DEVICE_WITH_PARAMS(OPAMPx,
- NETLIB_NAME(R) m_RP;
- NETLIB_NAME(C) m_CP;
- NETLIB_NAME(VCCS) m_G1;
- NETLIB_NAME(VCVS) m_EBUF;
-
- param_model_t m_model;
- analog_input_t m_VH;
- analog_input_t m_VL;
- analog_input_t m_VREF;
+ NETLIB_NAME(R) m_RP;
+ NETLIB_NAME(C) m_CP;
+ NETLIB_NAME(VCCS) m_G1;
+ NETLIB_NAME(VCVS) m_EBUF;
+
+ param_model_t m_model;
+ analog_input_t m_VH;
+ analog_input_t m_VL;
+ analog_input_t m_VREF;
);
*/
NETLIB_NAMESPACE_DEVICES_END()
-
diff --git a/src/emu/netlist/analog/nld_opamps.h b/src/lib/netlist/analog/nld_opamps.h
index f870c58b465..2cee8696bca 100644
--- a/src/emu/netlist/analog/nld_opamps.h
+++ b/src/lib/netlist/analog/nld_opamps.h
@@ -10,8 +10,8 @@
#ifndef NLD_OPAMPS_H_
#define NLD_OPAMPS_H_
-#include "../nl_base.h"
-#include "../nl_setup.h"
+#include "nl_base.h"
+#include "nl_setup.h"
#include "nld_twoterm.h"
#include "nld_fourterm.h"
@@ -21,7 +21,7 @@
#define OPAMP(_name, _model) \
NET_REGISTER_DEV(OPAMP, _name) \
- NETDEV_PARAMI(_name, model, _model)
+ NETDEV_PARAMI(_name, MODEL, _model)
#define LM3900(_name) \
SUBMODEL(opamp_lm3900, _name)
diff --git a/src/emu/netlist/analog/nld_switches.c b/src/lib/netlist/analog/nld_switches.c
index cf5dcd09c4b..6166463c6f8 100644
--- a/src/emu/netlist/analog/nld_switches.c
+++ b/src/lib/netlist/analog/nld_switches.c
@@ -6,7 +6,7 @@
*/
#include "nld_switches.h"
-#include "../nl_setup.h"
+#include "nl_setup.h"
#define R_OFF (1.0 / netlist().gmin())
#define R_ON 0.01
diff --git a/src/emu/netlist/analog/nld_switches.h b/src/lib/netlist/analog/nld_switches.h
index 79dc989c948..6cec34ceb4c 100644
--- a/src/emu/netlist/analog/nld_switches.h
+++ b/src/lib/netlist/analog/nld_switches.h
@@ -10,7 +10,7 @@
#ifndef NLD_SWITCHES_H_
#define NLD_SWITCHES_H_
-#include "../nl_base.h"
+#include "nl_base.h"
#include "nld_twoterm.h"
// ----------------------------------------------------------------------------------------
diff --git a/src/emu/netlist/analog/nld_twoterm.c b/src/lib/netlist/analog/nld_twoterm.c
index 1a99dcaf90a..7c54910612f 100644
--- a/src/emu/netlist/analog/nld_twoterm.c
+++ b/src/lib/netlist/analog/nld_twoterm.c
@@ -169,7 +169,7 @@ NETLIB_UPDATE_PARAM(POT)
m_R2.update_dev();
m_R1.set_R(std::max(m_R.Value() * v, netlist().gmin()));
- m_R2.set_R(std::max(m_R.Value() * (1.0 - v), netlist().gmin()));
+ m_R2.set_R(std::max(m_R.Value() * (NL_FCONST(1.0) - v), netlist().gmin()));
}
@@ -264,7 +264,7 @@ NETLIB_START(D)
{
register_terminal("A", m_P);
register_terminal("K", m_N);
- register_param("model", m_model, "");
+ register_param("MODEL", m_model, "");
m_D.save("m_D", *this);
@@ -273,8 +273,8 @@ NETLIB_START(D)
NETLIB_UPDATE_PARAM(D)
{
- nl_double Is = m_model.model_value("Is", 1e-15);
- nl_double n = m_model.model_value("N", 1);
+ nl_double Is = m_model.model_value("IS");
+ nl_double n = m_model.model_value("N");
m_D.set_param(Is, n, netlist().gmin());
}
@@ -333,7 +333,6 @@ NETLIB_START(CS)
NETLIB_RESET(CS)
{
NETLIB_NAME(twoterm)::reset();
- printf("m_I %f\n", m_I.Value());
this->set(0.0, 0.0, m_I);
}
diff --git a/src/emu/netlist/analog/nld_twoterm.h b/src/lib/netlist/analog/nld_twoterm.h
index c6714d62d45..27da8ba258e 100644
--- a/src/emu/netlist/analog/nld_twoterm.h
+++ b/src/lib/netlist/analog/nld_twoterm.h
@@ -24,23 +24,23 @@
* +-----T-----+
* (l)
*
- * This is a resistance in series to a voltage source and paralleled by a current source.
- * This is suitable to model voltage sources, current sources, resistors, capacitors,
- * inductances and diodes.
+ * This is a resistance in series to a voltage source and paralleled by a
+ * current source. This is suitable to model voltage sources, current sources,
+ * resistors, capacitors, inductances and diodes.
*
*/
#ifndef NLD_TWOTERM_H_
#define NLD_TWOTERM_H_
-#include "../nl_base.h"
+#include "nl_base.h"
-// ----------------------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
// Macros
-// ----------------------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
#define RES(_name, _R) \
- NET_REGISTER_DEV(RES, _name) \
+ NET_REGISTER_DEV(RES, _name) \
NETDEV_PARAMI(_name, R, _R)
#define POT(_name, _R) \
@@ -54,13 +54,13 @@
#define CAP(_name, _C) \
- NET_REGISTER_DEV(CAP, _name) \
+ NET_REGISTER_DEV(CAP, _name) \
NETDEV_PARAMI(_name, C, _C)
/* Generic Diode */
#define DIODE(_name, _model) \
- NET_REGISTER_DEV(DIODE, _name) \
- NETDEV_PARAMI(_name, model, _model)
+ NET_REGISTER_DEV(DIODE, _name) \
+ NETDEV_PARAMI(_name, MODEL, _model)
#define VS(_name, _V) \
NET_REGISTER_DEV(VS, _name) \
@@ -70,9 +70,9 @@
NET_REGISTER_DEV(CS, _name) \
NETDEV_PARAMI(_name, I, _I)
-// ----------------------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
// Generic macros
-// ----------------------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
#ifdef RES_R
@@ -90,15 +90,15 @@
#define IND_N(ind) ((double)(ind) * 1e-9)
#define IND_P(ind) ((double)(ind) * 1e-12)
-// ----------------------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
// Implementation
-// ----------------------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
NETLIB_NAMESPACE_DEVICES_START()
-// ----------------------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
// nld_twoterm
-// ----------------------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
class NETLIB_NAME(twoterm) : public device_t
{
@@ -140,9 +140,9 @@ protected:
private:
};
-// ----------------------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
// nld_R
-// ----------------------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
class NETLIB_NAME(R_base) : public NETLIB_NAME(twoterm)
{
@@ -164,9 +164,9 @@ NETLIB_DEVICE_WITH_PARAMS_DERIVED(R, R_base,
param_double_t m_R;
);
-// ----------------------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
// nld_POT
-// ----------------------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
NETLIB_DEVICE_WITH_PARAMS(POT,
NETLIB_NAME(R_base) m_R1;
@@ -187,9 +187,9 @@ NETLIB_DEVICE_WITH_PARAMS(POT2,
);
-// ----------------------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
// nld_C
-// ----------------------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
class NETLIB_NAME(C) : public NETLIB_NAME(twoterm)
{
@@ -212,9 +212,9 @@ private:
};
-// ----------------------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
// A generic diode model to be used in other devices (Diode, BJT ...)
-// ----------------------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
class generic_diode
{
@@ -257,7 +257,6 @@ public:
m_Id = m_Is * (eVDVt - NL_FCONST(1.0));
m_G = m_Is * m_VtInv * eVDVt + m_gmin;
#endif
- //printf("%p nVd %f m_Vd %f Vcrit %f\n", this, nVd, m_Vd, m_Vcrit);
}
ATTR_COLD void set_param(const nl_double Is, const nl_double n, nl_double gmin);
@@ -285,9 +284,9 @@ private:
nl_double m_Vcrit;
};
-// ----------------------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
// nld_D
-// ----------------------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
class NETLIB_NAME(D) : public NETLIB_NAME(twoterm)
{
@@ -306,11 +305,11 @@ protected:
generic_diode m_D;
};
-// ----------------------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
// nld_VS - Voltage source
//
// netlist voltage source must have inner resistance
-// ----------------------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
class NETLIB_NAME(VS) : public NETLIB_NAME(twoterm)
{
@@ -326,9 +325,9 @@ protected:
param_double_t m_V;
};
-// ----------------------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
// nld_CS - Current source
-// ----------------------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
class NETLIB_NAME(CS) : public NETLIB_NAME(twoterm)
{
diff --git a/src/lib/netlist/build/makefile b/src/lib/netlist/build/makefile
new file mode 100644
index 00000000000..162b21a0ce6
--- /dev/null
+++ b/src/lib/netlist/build/makefile
@@ -0,0 +1,166 @@
+###########################################################################
+#
+# makefile
+#
+# Core makefile for building MAME and derivatives
+#
+# Copyright (c) Nicola Salmoria and the MAME Team.
+# Visit http://mamedev.org for licensing and usage restrictions.
+#
+###########################################################################
+
+OBJ = obj
+SRC = ..
+
+#-fuse-ld=gold -Wpedantic -march=native -march=native
+
+# LTO = -flto=4 -fuse-linker-plugin -flto-partition=balanced -Wodr
+
+CDEFS = -DPSTANDALONE=1 -DPTR64=1
+#-Werror
+CFLAGS = $(LTO) -g -O3 -std=c++98 -march=native -msse4.2 -Wall -Wpedantic -Wsign-compare -Wextra -Wno-long-long -Wno-unused-parameter -Wno-unused-result -Wno-variadic-macros -I..
+LDFLAGS = $(LTO) -g -O3 -std=c++98
+#CFLAGS = $(LTO) -g -O3 -std=c++11 -Wall -Wpedantic -Wsign-compare -Wextra -Isrc
+#LDFLAGS = $(LTO) -g -O3 -std=c++11
+
+CC = @g++-5
+LD = @g++-5
+MD = @mkdir
+RM = @rm
+
+TARGETS = nltool nlwav
+
+NLOBJ = $(OBJ)
+POBJ = $(OBJ)/plib
+
+OBJDIRS = $(OBJ) \
+ $(OBJ)/analog \
+ $(OBJ)/solver \
+ $(OBJ)/devices \
+ $(OBJ)/plib \
+ $(OBJ)/devices \
+ $(OBJ)/macro \
+ $(OBJ)/tools \
+ $(OBJ)/prg \
+
+
+OBJS = $(POBJS) $(NLOBJS)
+
+POBJS := \
+ $(POBJ)/pstring.o \
+ $(POBJ)/palloc.o \
+ $(POBJ)/pparser.o \
+ $(POBJ)/pstate.o \
+ $(POBJ)/pstream.o \
+
+NLOBJS := \
+ $(NLOBJ)/nl_base.o \
+ $(NLOBJ)/nl_parser.o \
+ $(NLOBJ)/nl_setup.o \
+ $(NLOBJ)/nl_factory.o \
+ $(NLOBJ)/analog/nld_bjt.o \
+ $(NLOBJ)/analog/nld_fourterm.o \
+ $(NLOBJ)/analog/nld_switches.o \
+ $(NLOBJ)/analog/nld_twoterm.o \
+ $(NLOBJ)/analog/nld_opamps.o \
+ $(NLOBJ)/devices/nld_4020.o \
+ $(NLOBJ)/devices/nld_4066.o \
+ $(NLOBJ)/devices/nld_7400.o \
+ $(NLOBJ)/devices/nld_7402.o \
+ $(NLOBJ)/devices/nld_7404.o \
+ $(NLOBJ)/devices/nld_7408.o \
+ $(NLOBJ)/devices/nld_7410.o \
+ $(NLOBJ)/devices/nld_7411.o \
+ $(NLOBJ)/devices/nld_7420.o \
+ $(NLOBJ)/devices/nld_7425.o \
+ $(NLOBJ)/devices/nld_7427.o \
+ $(NLOBJ)/devices/nld_7430.o \
+ $(NLOBJ)/devices/nld_7432.o \
+ $(NLOBJ)/devices/nld_7437.o \
+ $(NLOBJ)/devices/nld_7448.o \
+ $(NLOBJ)/devices/nld_7450.o \
+ $(NLOBJ)/devices/nld_7474.o \
+ $(NLOBJ)/devices/nld_7483.o \
+ $(NLOBJ)/devices/nld_7486.o \
+ $(NLOBJ)/devices/nld_7490.o \
+ $(NLOBJ)/devices/nld_7493.o \
+ $(NLOBJ)/devices/nld_74107.o \
+ $(NLOBJ)/devices/nld_74123.o \
+ $(NLOBJ)/devices/nld_74153.o \
+ $(NLOBJ)/devices/nld_74175.o \
+ $(NLOBJ)/devices/nld_74192.o \
+ $(NLOBJ)/devices/nld_74193.o \
+ $(NLOBJ)/devices/nld_74279.o \
+ $(NLOBJ)/devices/nld_74ls629.o \
+ $(NLOBJ)/devices/nld_82S16.o \
+ $(NLOBJ)/devices/nld_9310.o \
+ $(NLOBJ)/devices/nld_9312.o \
+ $(NLOBJ)/devices/nld_9316.o \
+ $(NLOBJ)/devices/nld_mm5837.o \
+ $(NLOBJ)/devices/nld_ne555.o \
+ $(NLOBJ)/devices/nld_r2r_dac.o \
+ $(NLOBJ)/devices/nld_legacy.o \
+ $(NLOBJ)/devices/net_lib.o \
+ $(NLOBJ)/devices/nld_log.o \
+ $(NLOBJ)/devices/nld_system.o \
+ $(NLOBJ)/devices/nld_truthtable.o \
+ $(NLOBJ)/macro/nlm_cd4xxx.o \
+ $(NLOBJ)/macro/nlm_opamp.o \
+ $(NLOBJ)/macro/nlm_other.o \
+ $(NLOBJ)/macro/nlm_ttl74xx.o \
+ $(NLOBJ)/solver/nld_solver.o \
+ $(NLOBJ)/tools/nl_convert.o \
+
+all: maketree $(TARGETS)
+
+#-------------------------------------------------
+# clean
+#-------------------------------------------------
+
+clean:
+ $(RM) -rf $(OBJS) $(TARGETS)
+
+#-------------------------------------------------
+# nltool
+#-------------------------------------------------
+
+nltool: $(OBJ)/prg/nltool.o $(OBJS)
+ @echo Linking $@...
+ $(LD) -o $@ $(LDFLAGS) $^ $(LIBS)
+
+nlwav: $(OBJ)/prg/nlwav.o $(OBJS)
+ @echo Linking $@...
+ $(LD) -o $@ $(LDFLAGS) $^ $(LIBS)
+
+#-------------------------------------------------
+# directories
+#-------------------------------------------------
+
+$(sort $(OBJDIRS)):
+ $(MD) -p $@
+
+maketree: $(sort $(OBJDIRS))
+
+
+#-------------------------------------------------
+# generic rules
+#-------------------------------------------------
+
+$(OBJ)/%.o: $(SRC)/%.c
+ @echo Compiling $<...
+ $(CC) $(CDEFS) $(CFLAGS) -c $< -o $@
+
+$(OBJ)/%.pp: $(SRC)/%.c | $(OSPREBUILD)
+ @echo Compiling $<...
+ $(CC) $(CDEFS) $(CFLAGS) -E $< -o $@
+
+$(OBJ)/%.s: $(SRC)/%.c | $(OSPREBUILD)
+ @echo Compiling $<...
+ $(CC) $(CDEFS) $(CFLAGS) -S $< -o $@
+
+$(OBJ)/%.a:
+ @echo Archiving $@...
+ $(RM) $@
+ $(AR) $(ARFLAGS) $@ $^
+
+
diff --git a/src/emu/netlist/devices/net_lib.c b/src/lib/netlist/devices/net_lib.c
index 02a004453da..3b8edc8ac84 100644
--- a/src/emu/netlist/devices/net_lib.c
+++ b/src/lib/netlist/devices/net_lib.c
@@ -10,40 +10,48 @@
#include "net_lib.h"
#include "nld_system.h"
-#include "../nl_factory.h"
+#include "nl_factory.h"
NETLIST_START(diode_models)
- NET_MODEL(".model 1N914 D(Is=2.52n Rs=.568 N=1.752 Cjo=4p M=.4 tt=20n Iave=200m Vpk=75 mfg=OnSemi type=silicon)")
- NET_MODEL(".model 1N4001 D(Is=14.11n N=1.984 Rs=33.89m Ikf=94.81 Xti=3 Eg=1.11 Cjo=25.89p M=.44 Vj=.3245 Fc=.5 Bv=75 Ibv=10u Tt=5.7u Iave=1 Vpk=50 mfg=GI type=silicon)")
- NET_MODEL(".model 1N4148 D(Is=2.52n Rs=.568 N=1.752 Cjo=4p M=.4 tt=20n Iave=200m Vpk=75 mfg=OnSemi type=silicon)")
- NET_MODEL(".model 1S1588 D(Is=2.52n Rs=.568 N=1.752 Cjo=4p M=.4 tt=20n Iave=200m Vpk=75)")
- NET_MODEL(".model LedRed D(IS=93.2p RS=42M N=3.73 BV=4 IBV=10U CJO=2.97P VJ=.75 M=.333 TT=4.32U Iave=40m Vpk=4 type=LED)")
- NET_MODEL(".model LedGreen D(IS=93.2p RS=42M N=4.61 BV=4 IBV=10U CJO=2.97P VJ=.75 M=.333 TT=4.32U Iave=40m Vpk=4 type=LED)")
- NET_MODEL(".model LedBlue D(IS=93.2p RS=42M N=7.47 BV=5 IBV=10U CJO=2.97P VJ=.75 M=.333 TT=4.32U Iave=40m Vpk=5 type=LED)")
- NET_MODEL(".model LedWhite D(Is=0.27n Rs=5.65 N=6.79 Cjo=42p Iave=30m Vpk=5 type=LED)")
+ NET_MODEL("D _(IS=1e-15 N=1)")
+
+ NET_MODEL("1N914 D(Is=2.52n Rs=.568 N=1.752 Cjo=4p M=.4 tt=20n Iave=200m Vpk=75 mfg=OnSemi type=silicon)")
+ NET_MODEL("1N4001 D(Is=14.11n N=1.984 Rs=33.89m Ikf=94.81 Xti=3 Eg=1.11 Cjo=25.89p M=.44 Vj=.3245 Fc=.5 Bv=75 Ibv=10u Tt=5.7u Iave=1 Vpk=50 mfg=GI type=silicon)")
+ NET_MODEL("1N4148 D(Is=2.52n Rs=.568 N=1.752 Cjo=4p M=.4 tt=20n Iave=200m Vpk=75 mfg=OnSemi type=silicon)")
+ NET_MODEL("1S1588 D(Is=2.52n Rs=.568 N=1.752 Cjo=4p M=.4 tt=20n Iave=200m Vpk=75)")
+ NET_MODEL("LedRed D(IS=93.2p RS=42M N=3.73 BV=4 IBV=10U CJO=2.97P VJ=.75 M=.333 TT=4.32U Iave=40m Vpk=4 type=LED)")
+ NET_MODEL("LedGreen D(IS=93.2p RS=42M N=4.61 BV=4 IBV=10U CJO=2.97P VJ=.75 M=.333 TT=4.32U Iave=40m Vpk=4 type=LED)")
+ NET_MODEL("LedBlue D(IS=93.2p RS=42M N=7.47 BV=5 IBV=10U CJO=2.97P VJ=.75 M=.333 TT=4.32U Iave=40m Vpk=5 type=LED)")
+ NET_MODEL("LedWhite D(Is=0.27n Rs=5.65 N=6.79 Cjo=42p Iave=30m Vpk=5 type=LED)")
NETLIST_END()
NETLIST_START(bjt_models)
- NET_MODEL(".model 2SA1015 PNP(Is=295.1E-18 Xti=3 Eg=1.11 Vaf=100 Bf=110 Xtb=1.5 Br=10.45 Rc=15 Cjc=66.2p Mjc=1.054 Vjc=.75 Fc=.5 Cje=5p Mje=.3333 Vje=.75 Tr=10n Tf=1.661n VCEO=45V ICrating=150M MFG=Toshiba)")
- NET_MODEL(".model 2SC1815 NPN(Is=2.04f Xti=3 Eg=1.11 Vaf=6 Bf=400 Ikf=20m Xtb=1.5 Br=3.377 Rc=1 Cjc=1p Mjc=.3333 Vjc=.75 Fc=.5 Cje=25p Mje=.3333 Vje=.75 Tr=450n Tf=20n Itf=0 Vtf=0 Xtf=0 VCEO=45V ICrating=150M MFG=Toshiba)")
+ NET_MODEL("NPN _(IS=1e-15 BF=100 NF=1 BR=1 NR=1)")
+ NET_MODEL("PNP _(IS=1e-15 BF=100 NF=1 BR=1 NR=1)")
+
+ NET_MODEL("2SA1015 PNP(Is=295.1E-18 Xti=3 Eg=1.11 Vaf=100 Bf=110 Xtb=1.5 Br=10.45 Rc=15 Cjc=66.2p Mjc=1.054 Vjc=.75 Fc=.5 Cje=5p Mje=.3333 Vje=.75 Tr=10n Tf=1.661n VCEO=45V ICrating=150M MFG=Toshiba)")
+ NET_MODEL("2SC1815 NPN(Is=2.04f Xti=3 Eg=1.11 Vaf=6 Bf=400 Ikf=20m Xtb=1.5 Br=3.377 Rc=1 Cjc=1p Mjc=.3333 Vjc=.75 Fc=.5 Cje=25p Mje=.3333 Vje=.75 Tr=450n Tf=20n Itf=0 Vtf=0 Xtf=0 VCEO=45V ICrating=150M MFG=Toshiba)")
- NET_MODEL(".model 2N3643 NPN(IS=14.34E-15 ISE=14.34E-15 ISC=0 XTI=3 BF=255.9 BR=6.092 IKF=0.2847 IKR=0 XTB=1.5 VAF=74.03 VAR=28 VJE=0.65 VJC=0.65 RE=0.1 RC=1 RB=10 CJE=22.01E-12 CJC=7.306E-12 XCJC=0.75 FC=0.5 NF=1 NR=1 NE=1.307 NC=2 MJE=0.377 MJC=0.3416 TF=411.1E-12 TR=46.91E-9 ITF=0.6 VTF=1.7 XTF=3 EG=1.11 KF=0 AF=1 VCEO=30 ICRATING=500m MFG=NSC)")
- NET_MODEL(".model 2N3645 PNP(IS=650.6E-18 ISE=54.81E-15 ISC=0 XTI=3 BF=231.7 BR=3.563 IKF=1.079 IKR=0 XTB=1.5 VAF=115.7 VAR=35 VJE=0.65 VJC=0.65 RE=0.15 RC=0.715 RB=10 CJE=19.82E-12 CJC=14.76E-12 XCJC=0.75 FC=0.5 NF=1 NR=1 NE=1.829 NC=2 MJE=0.3357 MJC=0.5383 TF=603.7E-12 TR=111.3E-9 ITF=0.65 VTF=5 XTF=1.7 EG=1.11 KF=0 AF=1 VCEO=60 ICRATING=500m MFG=NSC)")
+ NET_MODEL("2N3643 NPN(IS=14.34E-15 ISE=14.34E-15 ISC=0 XTI=3 BF=255.9 BR=6.092 IKF=0.2847 IKR=0 XTB=1.5 VAF=74.03 VAR=28 VJE=0.65 VJC=0.65 RE=0.1 RC=1 RB=10 CJE=22.01E-12 CJC=7.306E-12 XCJC=0.75 FC=0.5 NF=1 NR=1 NE=1.307 NC=2 MJE=0.377 MJC=0.3416 TF=411.1E-12 TR=46.91E-9 ITF=0.6 VTF=1.7 XTF=3 EG=1.11 KF=0 AF=1 VCEO=30 ICRATING=500m MFG=NSC)")
+ NET_MODEL("2N3645 PNP(IS=650.6E-18 ISE=54.81E-15 ISC=0 XTI=3 BF=231.7 BR=3.563 IKF=1.079 IKR=0 XTB=1.5 VAF=115.7 VAR=35 VJE=0.65 VJC=0.65 RE=0.15 RC=0.715 RB=10 CJE=19.82E-12 CJC=14.76E-12 XCJC=0.75 FC=0.5 NF=1 NR=1 NE=1.829 NC=2 MJE=0.3357 MJC=0.5383 TF=603.7E-12 TR=111.3E-9 ITF=0.65 VTF=5 XTF=1.7 EG=1.11 KF=0 AF=1 VCEO=60 ICRATING=500m MFG=NSC)")
// 3644 = 3645 Difference between 3644 and 3645 is voltage rating. 3644: VCBO=45, 3645: VCBO=60
- NET_MODEL(".model 2N3644 PNP(IS=650.6E-18 ISE=54.81E-15 ISC=0 XTI=3 BF=231.7 BR=3.563 IKF=1.079 IKR=0 XTB=1.5 VAF=115.7 VAR=35 VJE=0.65 VJC=0.65 RE=0.15 RC=0.715 RB=10 CJE=19.82E-12 CJC=14.76E-12 XCJC=0.75 FC=0.5 NF=1 NR=1 NE=1.829 NC=2 MJE=0.3357 MJC=0.5383 TF=603.7E-12 TR=111.3E-9 ITF=0.65 VTF=5 XTF=1.7 EG=1.11 KF=0 AF=1 VCEO=60 ICRATING=500m MFG=NSC)")
+ NET_MODEL("2N3644 PNP(IS=650.6E-18 ISE=54.81E-15 ISC=0 XTI=3 BF=231.7 BR=3.563 IKF=1.079 IKR=0 XTB=1.5 VAF=115.7 VAR=35 VJE=0.65 VJC=0.65 RE=0.15 RC=0.715 RB=10 CJE=19.82E-12 CJC=14.76E-12 XCJC=0.75 FC=0.5 NF=1 NR=1 NE=1.829 NC=2 MJE=0.3357 MJC=0.5383 TF=603.7E-12 TR=111.3E-9 ITF=0.65 VTF=5 XTF=1.7 EG=1.11 KF=0 AF=1 VCEO=60 ICRATING=500m MFG=NSC)")
// 2N5190 = BC817-25
- NET_MODEL(".model 2N5190 NPN(IS=9.198E-14 NF=1.003 ISE=4.468E-16 NE=1.65 BF=338.8 IKF=0.4913 VAF=107.9 NR=1.002 ISC=5.109E-15 NC=1.071 BR=29.48 IKR=0.193 VAR=25 RB=1 IRB=1000 RBM=1 RE=0.2126 RC=0.143 XTB=0 EG=1.11 XTI=3 CJE=3.825E-11 VJE=0.7004 MJE=0.364 TF=5.229E-10 XTF=219.7 VTF=3.502 ITF=7.257 PTF=0 CJC=1.27E-11 VJC=0.4431 MJC=0.3983 XCJC=0.4555 TR=7E-11 CJS=0 VJS=0.75 MJS=0.333 FC=0.905 Vceo=45 Icrating=500m mfg=Philips)")
- NET_MODEL(".model 2SC945 NPN(IS=3.577E-14 BF=2.382E+02 NF=1.01 VAF=1.206E+02 IKF=3.332E-01 ISE=3.038E-16 NE=1.205 BR=1.289E+01 NR=1.015 VAR=1.533E+01 IKR=2.037E-01 ISC=3.972E-14 NC=1.115 RB=3.680E+01 IRB=1.004E-04 RBM=1 RE=8.338E-01 RC=1.557E+00 CJE=1.877E-11 VJE=7.211E-01 MJE=3.486E-01 TF=4.149E-10 XTF=1.000E+02 VTF=9.956 ITF=5.118E-01 PTF=0 CJC=6.876p VJC=3.645E-01 MJC=3.074E-01 TR=5.145E-08 XTB=1.5 EG=1.11 XTI=3 FC=0.5 Vceo=50 Icrating=100m MFG=NEC)")
+ NET_MODEL("2N5190 NPN(IS=9.198E-14 NF=1.003 ISE=4.468E-16 NE=1.65 BF=338.8 IKF=0.4913 VAF=107.9 NR=1.002 ISC=5.109E-15 NC=1.071 BR=29.48 IKR=0.193 VAR=25 RB=1 IRB=1000 RBM=1 RE=0.2126 RC=0.143 XTB=0 EG=1.11 XTI=3 CJE=3.825E-11 VJE=0.7004 MJE=0.364 TF=5.229E-10 XTF=219.7 VTF=3.502 ITF=7.257 PTF=0 CJC=1.27E-11 VJC=0.4431 MJC=0.3983 XCJC=0.4555 TR=7E-11 CJS=0 VJS=0.75 MJS=0.333 FC=0.905 Vceo=45 Icrating=500m mfg=Philips)")
+ NET_MODEL("2SC945 NPN(IS=3.577E-14 BF=2.382E+02 NF=1.01 VAF=1.206E+02 IKF=3.332E-01 ISE=3.038E-16 NE=1.205 BR=1.289E+01 NR=1.015 VAR=1.533E+01 IKR=2.037E-01 ISC=3.972E-14 NC=1.115 RB=3.680E+01 IRB=1.004E-04 RBM=1 RE=8.338E-01 RC=1.557E+00 CJE=1.877E-11 VJE=7.211E-01 MJE=3.486E-01 TF=4.149E-10 XTF=1.000E+02 VTF=9.956 ITF=5.118E-01 PTF=0 CJC=6.876p VJC=3.645E-01 MJC=3.074E-01 TR=5.145E-08 XTB=1.5 EG=1.11 XTI=3 FC=0.5 Vceo=50 Icrating=100m MFG=NEC)")
- NET_MODEL(".model BC237B NPN(IS=1.8E-14 ISE=5.0E-14 ISC=1.72E-13 XTI=3 BF=400 BR=35.5 IKF=0.14 IKR=0.03 XTB=1.5 VAF=80 VAR=12.5 VJE=0.58 VJC=0.54 RE=0.6 RC=0.25 RB=0.56 CJE=13E-12 CJC=4E-12 XCJC=0.75 FC=0.5 NF=0.9955 NR=1.005 NE=1.46 NC=1.27 MJE=0.33 MJC=0.33 TF=0.64E-9 TR=50.72E-9 EG=1.11 KF=0 AF=1 VCEO=45V ICRATING=100M MFG=ZETEX)")
- NET_MODEL(".model BC556B PNP(IS=3.83E-14 NF=1.008 ISE=1.22E-14 NE=1.528 BF=344.4 IKF=0.08039 VAF=21.11 NR=1.005 ISC=2.85E-13 NC=1.28 BR=14.84 IKR=0.047 VAR=32.02 RB=1 IRB=1.00E-06 RBM=1 RE=0.6202 RC=0.5713 XTB=0 EG=1.11 XTI=3 CJE=1.23E-11 VJE=0.6106 MJE=0.378 TF=5.60E-10 XTF=3.414 VTF=5.23 ITF=0.1483 PTF=0 CJC=1.08E-11 VJC=0.1022 MJC=0.3563 XCJC=0.6288 TR=1.00E-32 CJS=0 VJS=0.75 MJS=0.333 FC=0.8027 Vceo=65 Icrating=100m mfg=Philips)")
- NET_MODEL(".model BC817-25 NPN(IS=9.198E-14 NF=1.003 ISE=4.468E-16 NE=1.65 BF=338.8 IKF=0.4913 VAF=107.9 NR=1.002 ISC=5.109E-15 NC=1.071 BR=29.48 IKR=0.193 VAR=25 RB=1 IRB=1000 RBM=1 RE=0.2126 RC=0.143 XTB=0 EG=1.11 XTI=3 CJE=3.825E-11 VJE=0.7004 MJE=0.364 TF=5.229E-10 XTF=219.7 VTF=3.502 ITF=7.257 PTF=0 CJC=1.27E-11 VJC=0.4431 MJC=0.3983 XCJC=0.4555 TR=7E-11 CJS=0 VJS=0.75 MJS=0.333 FC=0.905 Vceo=45 Icrating=500m mfg=Philips)")
+ NET_MODEL("BC237B NPN(IS=1.8E-14 ISE=5.0E-14 ISC=1.72E-13 XTI=3 BF=400 BR=35.5 IKF=0.14 IKR=0.03 XTB=1.5 VAF=80 VAR=12.5 VJE=0.58 VJC=0.54 RE=0.6 RC=0.25 RB=0.56 CJE=13E-12 CJC=4E-12 XCJC=0.75 FC=0.5 NF=0.9955 NR=1.005 NE=1.46 NC=1.27 MJE=0.33 MJC=0.33 TF=0.64E-9 TR=50.72E-9 EG=1.11 KF=0 AF=1 VCEO=45V ICRATING=100M MFG=ZETEX)")
+ NET_MODEL("BC556B PNP(IS=3.83E-14 NF=1.008 ISE=1.22E-14 NE=1.528 BF=344.4 IKF=0.08039 VAF=21.11 NR=1.005 ISC=2.85E-13 NC=1.28 BR=14.84 IKR=0.047 VAR=32.02 RB=1 IRB=1.00E-06 RBM=1 RE=0.6202 RC=0.5713 XTB=0 EG=1.11 XTI=3 CJE=1.23E-11 VJE=0.6106 MJE=0.378 TF=5.60E-10 XTF=3.414 VTF=5.23 ITF=0.1483 PTF=0 CJC=1.08E-11 VJC=0.1022 MJC=0.3563 XCJC=0.6288 TR=1.00E-32 CJS=0 VJS=0.75 MJS=0.333 FC=0.8027 Vceo=65 Icrating=100m mfg=Philips)")
+ NET_MODEL("BC817-25 NPN(IS=9.198E-14 NF=1.003 ISE=4.468E-16 NE=1.65 BF=338.8 IKF=0.4913 VAF=107.9 NR=1.002 ISC=5.109E-15 NC=1.071 BR=29.48 IKR=0.193 VAR=25 RB=1 IRB=1000 RBM=1 RE=0.2126 RC=0.143 XTB=0 EG=1.11 XTI=3 CJE=3.825E-11 VJE=0.7004 MJE=0.364 TF=5.229E-10 XTF=219.7 VTF=3.502 ITF=7.257 PTF=0 CJC=1.27E-11 VJC=0.4431 MJC=0.3983 XCJC=0.4555 TR=7E-11 CJS=0 VJS=0.75 MJS=0.333 FC=0.905 Vceo=45 Icrating=500m mfg=Philips)")
NETLIST_END()
NETLIST_START(family_models)
- NET_MODEL(".model 74XXOC FAMILY(IVL=0.8 IVH=2.0 OVL=0.1 OVH=4.95 ORL=10.0 ORH=1.0e8)")
- NET_MODEL(".model CD4XXX FAMILY(TYPE=CD4XXX)")
+ NET_MODEL("FAMILY _(TYPE=CUSTOM IVL=0.8 IVH=2.0 OVL=0.1 OVH=4.0 ORL=1.0 ORH=130.0)")
+ NET_MODEL("OPAMP _()")
+
+ NET_MODEL("74XXOC FAMILY(IVL=0.8 IVH=2.0 OVL=0.1 OVH=4.95 ORL=10.0 ORH=1.0e8)")
+ NET_MODEL("CD4XXX FAMILY(TYPE=CD4XXX)")
NETLIST_END()
@@ -59,19 +67,19 @@ void initialize_factory(factory_list_t &factory)
ENTRY(POT, POT, "R")
ENTRY(POT2, POT2, "R")
ENTRY(C, CAP, "C")
- ENTRY(D, DIODE, "model")
+ ENTRY(D, DIODE, "MODEL")
ENTRY(VCVS, VCVS, "-")
ENTRY(VCCS, VCCS, "-")
ENTRY(CCCS, CCCS, "-")
ENTRY(LVCCS, LVCCS, "-")
- ENTRY(VS, VS, "V")
+ ENTRY(VS, VS, "V")
ENTRY(CS, CS, "I")
- ENTRY(OPAMP, OPAMP, "model")
+ ENTRY(OPAMP, OPAMP, "MODEL")
ENTRY(dummy_input, DUMMY_INPUT, "-")
ENTRY(frontier, FRONTIER_DEV, "+I,G,Q") // not intended to be used directly
- ENTRY(function, AFUNC, "N,FUNC") // only for macro devices - NO FEEDBACK loops
- ENTRY(QBJT_EB, QBJT_EB, "model")
- ENTRY(QBJT_switch, QBJT_SW, "model")
+ ENTRY(function, AFUNC, "N,FUNC") // only for macro devices - NO FEEDBACK loops
+ ENTRY(QBJT_EB, QBJT_EB, "MODEL")
+ ENTRY(QBJT_switch, QBJT_SW, "MODEL")
ENTRY(logic_input, TTL_INPUT, "IN")
ENTRY(logic_input, LOGIC_INPUT, "IN,FAMILY")
ENTRY(analog_input, ANALOG_INPUT, "IN")
diff --git a/src/emu/netlist/devices/net_lib.h b/src/lib/netlist/devices/net_lib.h
index 4f10aee0651..eed3bd6120f 100644
--- a/src/emu/netlist/devices/net_lib.h
+++ b/src/lib/netlist/devices/net_lib.h
@@ -11,7 +11,7 @@
#ifndef NET_LIB_H
#define NET_LIB_H
-#include "../nl_base.h"
+#include "nl_base.h"
#include "nld_signal.h"
#include "nld_system.h"
@@ -56,16 +56,17 @@
#include "nld_log.h"
-#include "../macro/nlm_cd4xxx.h"
-#include "../macro/nlm_ttl74xx.h"
-#include "../macro/nlm_opamp.h"
+#include "macro/nlm_cd4xxx.h"
+#include "macro/nlm_ttl74xx.h"
+#include "macro/nlm_opamp.h"
+#include "macro/nlm_other.h"
-#include "../analog/nld_bjt.h"
-#include "../analog/nld_fourterm.h"
-#include "../analog/nld_switches.h"
-#include "../analog/nld_twoterm.h"
-#include "../analog/nld_opamps.h"
-#include "../solver/nld_solver.h"
+#include "analog/nld_bjt.h"
+#include "analog/nld_fourterm.h"
+#include "analog/nld_switches.h"
+#include "analog/nld_twoterm.h"
+#include "analog/nld_opamps.h"
+#include "solver/nld_solver.h"
#include "nld_legacy.h"
diff --git a/src/emu/netlist/devices/nld_4020.c b/src/lib/netlist/devices/nld_4020.c
index efb52d063b4..efb52d063b4 100644
--- a/src/emu/netlist/devices/nld_4020.c
+++ b/src/lib/netlist/devices/nld_4020.c
diff --git a/src/emu/netlist/devices/nld_4020.h b/src/lib/netlist/devices/nld_4020.h
index d4814471fc1..78d7199db1b 100644
--- a/src/emu/netlist/devices/nld_4020.h
+++ b/src/lib/netlist/devices/nld_4020.h
@@ -27,7 +27,7 @@
#ifndef NLD_4020_H_
#define NLD_4020_H_
-#include "../nl_base.h"
+#include "nl_base.h"
#include "nld_cmos.h"
/* FIXME: only used in mario.c */
diff --git a/src/emu/netlist/devices/nld_4066.c b/src/lib/netlist/devices/nld_4066.c
index 535314c0aa4..535314c0aa4 100644
--- a/src/emu/netlist/devices/nld_4066.c
+++ b/src/lib/netlist/devices/nld_4066.c
diff --git a/src/emu/netlist/devices/nld_4066.h b/src/lib/netlist/devices/nld_4066.h
index e9fc1bfec26..abfe321a7c4 100644
--- a/src/emu/netlist/devices/nld_4066.h
+++ b/src/lib/netlist/devices/nld_4066.h
@@ -24,7 +24,7 @@
#ifndef NLD_4066_H_
#define NLD_4066_H_
-#include "../nl_base.h"
+#include "nl_base.h"
#include "nld_cmos.h"
#define CD4066_GATE(_name) \
diff --git a/src/emu/netlist/devices/nld_7400.c b/src/lib/netlist/devices/nld_7400.c
index 188b8ad5529..188b8ad5529 100644
--- a/src/emu/netlist/devices/nld_7400.c
+++ b/src/lib/netlist/devices/nld_7400.c
diff --git a/src/emu/netlist/devices/nld_7400.h b/src/lib/netlist/devices/nld_7400.h
index 97bdda0a912..97bdda0a912 100644
--- a/src/emu/netlist/devices/nld_7400.h
+++ b/src/lib/netlist/devices/nld_7400.h
diff --git a/src/emu/netlist/devices/nld_7402.c b/src/lib/netlist/devices/nld_7402.c
index 0e5695bebc9..0e5695bebc9 100644
--- a/src/emu/netlist/devices/nld_7402.c
+++ b/src/lib/netlist/devices/nld_7402.c
diff --git a/src/emu/netlist/devices/nld_7402.h b/src/lib/netlist/devices/nld_7402.h
index 1d11236488b..1d11236488b 100644
--- a/src/emu/netlist/devices/nld_7402.h
+++ b/src/lib/netlist/devices/nld_7402.h
diff --git a/src/emu/netlist/devices/nld_7404.c b/src/lib/netlist/devices/nld_7404.c
index 5bfd08c7d1e..5bfd08c7d1e 100644
--- a/src/emu/netlist/devices/nld_7404.c
+++ b/src/lib/netlist/devices/nld_7404.c
diff --git a/src/emu/netlist/devices/nld_7404.h b/src/lib/netlist/devices/nld_7404.h
index 60465f74d9c..60465f74d9c 100644
--- a/src/emu/netlist/devices/nld_7404.h
+++ b/src/lib/netlist/devices/nld_7404.h
diff --git a/src/emu/netlist/devices/nld_7408.c b/src/lib/netlist/devices/nld_7408.c
index a0a54d6cf82..a0a54d6cf82 100644
--- a/src/emu/netlist/devices/nld_7408.c
+++ b/src/lib/netlist/devices/nld_7408.c
diff --git a/src/emu/netlist/devices/nld_7408.h b/src/lib/netlist/devices/nld_7408.h
index 9304d5c554d..9304d5c554d 100644
--- a/src/emu/netlist/devices/nld_7408.h
+++ b/src/lib/netlist/devices/nld_7408.h
diff --git a/src/emu/netlist/devices/nld_7410.c b/src/lib/netlist/devices/nld_7410.c
index 9564ecd4e4f..9564ecd4e4f 100644
--- a/src/emu/netlist/devices/nld_7410.c
+++ b/src/lib/netlist/devices/nld_7410.c
diff --git a/src/emu/netlist/devices/nld_7410.h b/src/lib/netlist/devices/nld_7410.h
index d6e97838c7b..d6e97838c7b 100644
--- a/src/emu/netlist/devices/nld_7410.h
+++ b/src/lib/netlist/devices/nld_7410.h
diff --git a/src/emu/netlist/devices/nld_74107.c b/src/lib/netlist/devices/nld_74107.c
index 542c80a5b43..542c80a5b43 100644
--- a/src/emu/netlist/devices/nld_74107.c
+++ b/src/lib/netlist/devices/nld_74107.c
diff --git a/src/emu/netlist/devices/nld_74107.h b/src/lib/netlist/devices/nld_74107.h
index 89f59822f22..b0b38ee66fd 100644
--- a/src/emu/netlist/devices/nld_74107.h
+++ b/src/lib/netlist/devices/nld_74107.h
@@ -59,7 +59,7 @@
#ifndef NLD_74107_H_
#define NLD_74107_H_
-#include "../nl_base.h"
+#include "nl_base.h"
#define TTL_74107A(_name, _CLK, _J, _K, _CLRQ) \
NET_REGISTER_DEV(TTL_74107A, _name) \
diff --git a/src/emu/netlist/devices/nld_7411.c b/src/lib/netlist/devices/nld_7411.c
index 2db034577cb..2db034577cb 100644
--- a/src/emu/netlist/devices/nld_7411.c
+++ b/src/lib/netlist/devices/nld_7411.c
diff --git a/src/emu/netlist/devices/nld_7411.h b/src/lib/netlist/devices/nld_7411.h
index 11d4d45a20f..11d4d45a20f 100644
--- a/src/emu/netlist/devices/nld_7411.h
+++ b/src/lib/netlist/devices/nld_7411.h
diff --git a/src/emu/netlist/devices/nld_74123.c b/src/lib/netlist/devices/nld_74123.c
index 59a9ed16ce4..ccd8eba012e 100644
--- a/src/emu/netlist/devices/nld_74123.c
+++ b/src/lib/netlist/devices/nld_74123.c
@@ -77,7 +77,6 @@ NETLIB_UPDATE(74123)
//res = res | INPLOGIC(m_A) | (INPLOGIC(m_B) ^ 1);
t_AB_to_Q = NLTIME_FROM_NS(300);
t_C_to_Q = NLTIME_FROM_NS(250);
- //printf("m_trig %d res %d\n", m_trig, res);
}
if (res)
diff --git a/src/emu/netlist/devices/nld_74123.h b/src/lib/netlist/devices/nld_74123.h
index 8772103b521..7539c9ce6c3 100644
--- a/src/emu/netlist/devices/nld_74123.h
+++ b/src/lib/netlist/devices/nld_74123.h
@@ -49,9 +49,9 @@
#ifndef NLD_74123_H_
#define NLD_74123_H_
-#include "../nl_base.h"
+#include "nl_base.h"
#include "nld_system.h"
-#include "../analog/nld_twoterm.h"
+#include "analog/nld_twoterm.h"
#define TTL_74123(_name) \
NET_REGISTER_DEV(TTL_74123, _name)
diff --git a/src/emu/netlist/devices/nld_74153.c b/src/lib/netlist/devices/nld_74153.c
index ab52808c4cc..ab52808c4cc 100644
--- a/src/emu/netlist/devices/nld_74153.c
+++ b/src/lib/netlist/devices/nld_74153.c
diff --git a/src/emu/netlist/devices/nld_74153.h b/src/lib/netlist/devices/nld_74153.h
index fe59759b1f7..54364ac5671 100644
--- a/src/emu/netlist/devices/nld_74153.h
+++ b/src/lib/netlist/devices/nld_74153.h
@@ -45,7 +45,7 @@
#ifndef NLD_74153_H_
#define NLD_74153_H_
-#include "../nl_base.h"
+#include "nl_base.h"
#define TTL_74153(_name, _C0, _C1, _C2, _C3, _A, _B, _G) \
NET_REGISTER_DEV(TTL_74153, _name) \
diff --git a/src/emu/netlist/devices/nld_74175.c b/src/lib/netlist/devices/nld_74175.c
index ec9d49a923b..ec9d49a923b 100644
--- a/src/emu/netlist/devices/nld_74175.c
+++ b/src/lib/netlist/devices/nld_74175.c
diff --git a/src/emu/netlist/devices/nld_74175.h b/src/lib/netlist/devices/nld_74175.h
index f74165a5839..f74165a5839 100644
--- a/src/emu/netlist/devices/nld_74175.h
+++ b/src/lib/netlist/devices/nld_74175.h
diff --git a/src/emu/netlist/devices/nld_74192.c b/src/lib/netlist/devices/nld_74192.c
index c07affc8b6a..c07affc8b6a 100644
--- a/src/emu/netlist/devices/nld_74192.c
+++ b/src/lib/netlist/devices/nld_74192.c
diff --git a/src/emu/netlist/devices/nld_74192.h b/src/lib/netlist/devices/nld_74192.h
index d5be6346cb2..a8b26335eb2 100644
--- a/src/emu/netlist/devices/nld_74192.h
+++ b/src/lib/netlist/devices/nld_74192.h
@@ -29,7 +29,7 @@
#ifndef NLD_74192_H_
#define NLD_74192_H_
-#include "../nl_base.h"
+#include "nl_base.h"
#include "nld_9316.h"
#define TTL_74192(_name) \
diff --git a/src/emu/netlist/devices/nld_74193.c b/src/lib/netlist/devices/nld_74193.c
index 7a857dbe5a0..7a857dbe5a0 100644
--- a/src/emu/netlist/devices/nld_74193.c
+++ b/src/lib/netlist/devices/nld_74193.c
diff --git a/src/emu/netlist/devices/nld_74193.h b/src/lib/netlist/devices/nld_74193.h
index d97095b7230..f7cecbc984c 100644
--- a/src/emu/netlist/devices/nld_74193.h
+++ b/src/lib/netlist/devices/nld_74193.h
@@ -26,7 +26,7 @@
#ifndef NLD_74193_H_
#define NLD_74193_H_
-#include "../nl_base.h"
+#include "nl_base.h"
#define TTL_74193(_name) \
NET_REGISTER_DEV(TTL_74193, _name)
diff --git a/src/emu/netlist/devices/nld_7420.c b/src/lib/netlist/devices/nld_7420.c
index 57a25b5d7b7..57a25b5d7b7 100644
--- a/src/emu/netlist/devices/nld_7420.c
+++ b/src/lib/netlist/devices/nld_7420.c
diff --git a/src/emu/netlist/devices/nld_7420.h b/src/lib/netlist/devices/nld_7420.h
index 2ce7020c7e5..2ce7020c7e5 100644
--- a/src/emu/netlist/devices/nld_7420.h
+++ b/src/lib/netlist/devices/nld_7420.h
diff --git a/src/emu/netlist/devices/nld_7425.c b/src/lib/netlist/devices/nld_7425.c
index c432960a02d..c432960a02d 100644
--- a/src/emu/netlist/devices/nld_7425.c
+++ b/src/lib/netlist/devices/nld_7425.c
diff --git a/src/emu/netlist/devices/nld_7425.h b/src/lib/netlist/devices/nld_7425.h
index 816c0cba100..816c0cba100 100644
--- a/src/emu/netlist/devices/nld_7425.h
+++ b/src/lib/netlist/devices/nld_7425.h
diff --git a/src/emu/netlist/devices/nld_7427.c b/src/lib/netlist/devices/nld_7427.c
index fb193f74679..fb193f74679 100644
--- a/src/emu/netlist/devices/nld_7427.c
+++ b/src/lib/netlist/devices/nld_7427.c
diff --git a/src/emu/netlist/devices/nld_7427.h b/src/lib/netlist/devices/nld_7427.h
index 6ba726a17fc..6ba726a17fc 100644
--- a/src/emu/netlist/devices/nld_7427.h
+++ b/src/lib/netlist/devices/nld_7427.h
diff --git a/src/emu/netlist/devices/nld_74279.c b/src/lib/netlist/devices/nld_74279.c
index ca633cfa8be..ca633cfa8be 100644
--- a/src/emu/netlist/devices/nld_74279.c
+++ b/src/lib/netlist/devices/nld_74279.c
diff --git a/src/emu/netlist/devices/nld_74279.h b/src/lib/netlist/devices/nld_74279.h
index aecd8435f6d..aecd8435f6d 100644
--- a/src/emu/netlist/devices/nld_74279.h
+++ b/src/lib/netlist/devices/nld_74279.h
diff --git a/src/emu/netlist/devices/nld_7430.c b/src/lib/netlist/devices/nld_7430.c
index 31ea833cb27..31ea833cb27 100644
--- a/src/emu/netlist/devices/nld_7430.c
+++ b/src/lib/netlist/devices/nld_7430.c
diff --git a/src/emu/netlist/devices/nld_7430.h b/src/lib/netlist/devices/nld_7430.h
index 126aa491429..126aa491429 100644
--- a/src/emu/netlist/devices/nld_7430.h
+++ b/src/lib/netlist/devices/nld_7430.h
diff --git a/src/emu/netlist/devices/nld_7432.c b/src/lib/netlist/devices/nld_7432.c
index d0b358482f8..d0b358482f8 100644
--- a/src/emu/netlist/devices/nld_7432.c
+++ b/src/lib/netlist/devices/nld_7432.c
diff --git a/src/emu/netlist/devices/nld_7432.h b/src/lib/netlist/devices/nld_7432.h
index f3655407143..f3655407143 100644
--- a/src/emu/netlist/devices/nld_7432.h
+++ b/src/lib/netlist/devices/nld_7432.h
diff --git a/src/emu/netlist/devices/nld_7437.c b/src/lib/netlist/devices/nld_7437.c
index 79fcaa5c4c5..79fcaa5c4c5 100644
--- a/src/emu/netlist/devices/nld_7437.c
+++ b/src/lib/netlist/devices/nld_7437.c
diff --git a/src/emu/netlist/devices/nld_7437.h b/src/lib/netlist/devices/nld_7437.h
index 6b2f193b374..6b2f193b374 100644
--- a/src/emu/netlist/devices/nld_7437.h
+++ b/src/lib/netlist/devices/nld_7437.h
diff --git a/src/emu/netlist/devices/nld_7448.c b/src/lib/netlist/devices/nld_7448.c
index 618b61d8c6e..618b61d8c6e 100644
--- a/src/emu/netlist/devices/nld_7448.c
+++ b/src/lib/netlist/devices/nld_7448.c
diff --git a/src/emu/netlist/devices/nld_7448.h b/src/lib/netlist/devices/nld_7448.h
index f5bbdf50704..e633858dad5 100644
--- a/src/emu/netlist/devices/nld_7448.h
+++ b/src/lib/netlist/devices/nld_7448.h
@@ -24,7 +24,7 @@
#ifndef NLD_7448_H_
#define NLD_7448_H_
-#include "../nl_base.h"
+#include "nl_base.h"
#define TTL_7448(_name, _A0, _A1, _A2, _A3, _LTQ, _BIQ, _RBIQ) \
NET_REGISTER_DEV(TTL_7448, _name) \
diff --git a/src/emu/netlist/devices/nld_7450.c b/src/lib/netlist/devices/nld_7450.c
index 30d7916acf0..30d7916acf0 100644
--- a/src/emu/netlist/devices/nld_7450.c
+++ b/src/lib/netlist/devices/nld_7450.c
diff --git a/src/emu/netlist/devices/nld_7450.h b/src/lib/netlist/devices/nld_7450.h
index 43b73636be3..43b73636be3 100644
--- a/src/emu/netlist/devices/nld_7450.h
+++ b/src/lib/netlist/devices/nld_7450.h
diff --git a/src/emu/netlist/devices/nld_7474.c b/src/lib/netlist/devices/nld_7474.c
index 11088c89a79..11088c89a79 100644
--- a/src/emu/netlist/devices/nld_7474.c
+++ b/src/lib/netlist/devices/nld_7474.c
diff --git a/src/emu/netlist/devices/nld_7474.h b/src/lib/netlist/devices/nld_7474.h
index f98de117350..f98de117350 100644
--- a/src/emu/netlist/devices/nld_7474.h
+++ b/src/lib/netlist/devices/nld_7474.h
diff --git a/src/emu/netlist/devices/nld_7483.c b/src/lib/netlist/devices/nld_7483.c
index 97c6b41b29a..97c6b41b29a 100644
--- a/src/emu/netlist/devices/nld_7483.c
+++ b/src/lib/netlist/devices/nld_7483.c
diff --git a/src/emu/netlist/devices/nld_7483.h b/src/lib/netlist/devices/nld_7483.h
index 9bbefc88b1d..b50edf11210 100644
--- a/src/emu/netlist/devices/nld_7483.h
+++ b/src/lib/netlist/devices/nld_7483.h
@@ -27,7 +27,7 @@
#ifndef NLD_7483_H_
#define NLD_7483_H_
-#include "../nl_base.h"
+#include "nl_base.h"
#define TTL_7483(_name, _A1, _A2, _A3, _A4, _B1, _B2, _B3, _B4, _CI) \
NET_REGISTER_DEV(TTL_7483, _name) \
diff --git a/src/emu/netlist/devices/nld_7486.c b/src/lib/netlist/devices/nld_7486.c
index 5957c2c0433..5957c2c0433 100644
--- a/src/emu/netlist/devices/nld_7486.c
+++ b/src/lib/netlist/devices/nld_7486.c
diff --git a/src/emu/netlist/devices/nld_7486.h b/src/lib/netlist/devices/nld_7486.h
index 788b633dfe1..788b633dfe1 100644
--- a/src/emu/netlist/devices/nld_7486.h
+++ b/src/lib/netlist/devices/nld_7486.h
diff --git a/src/emu/netlist/devices/nld_7490.c b/src/lib/netlist/devices/nld_7490.c
index a054247a070..a054247a070 100644
--- a/src/emu/netlist/devices/nld_7490.c
+++ b/src/lib/netlist/devices/nld_7490.c
diff --git a/src/emu/netlist/devices/nld_7490.h b/src/lib/netlist/devices/nld_7490.h
index 72650c3dcbe..f5513dc2390 100644
--- a/src/emu/netlist/devices/nld_7490.h
+++ b/src/lib/netlist/devices/nld_7490.h
@@ -55,7 +55,7 @@
#ifndef NLD_7490_H_
#define NLD_7490_H_
-#include "../nl_base.h"
+#include "nl_base.h"
#define TTL_7490(_name, _A, _B, _R1, _R2, _R91, _R92) \
NET_REGISTER_DEV(TTL_7490, _name) \
diff --git a/src/emu/netlist/devices/nld_7493.c b/src/lib/netlist/devices/nld_7493.c
index 83a7ae1012c..b7979152f09 100644
--- a/src/emu/netlist/devices/nld_7493.c
+++ b/src/lib/netlist/devices/nld_7493.c
@@ -6,7 +6,7 @@
*/
#include "nld_7493.h"
-#include "../nl_setup.h"
+#include "nl_setup.h"
NETLIB_NAMESPACE_DEVICES_START()
diff --git a/src/emu/netlist/devices/nld_7493.h b/src/lib/netlist/devices/nld_7493.h
index a54593c7c1f..39a969d3b02 100644
--- a/src/emu/netlist/devices/nld_7493.h
+++ b/src/lib/netlist/devices/nld_7493.h
@@ -57,7 +57,7 @@
#ifndef NLD_7493_H_
#define NLD_7493_H_
-#include "../nl_base.h"
+#include "nl_base.h"
#define TTL_7493(_name, _CLKA, _CLKB, _R1, _R2) \
NET_REGISTER_DEV(TTL_7493, _name) \
diff --git a/src/emu/netlist/devices/nld_74ls629.c b/src/lib/netlist/devices/nld_74ls629.c
index 5ee1e1679db..a659fef032b 100644
--- a/src/emu/netlist/devices/nld_74ls629.c
+++ b/src/lib/netlist/devices/nld_74ls629.c
@@ -40,7 +40,7 @@
#include "nld_74ls629.h"
-#include "../nl_setup.h"
+#include "nl_setup.h"
NETLIB_NAMESPACE_DEVICES_START()
@@ -150,7 +150,7 @@ NETLIB_UPDATE(SN74LS629)
m_clock.m_inc = netlist_time::from_double(0.5 / (double) freq);
//m_clock.update();
- //NL_VERBOSE_OUT(("%s %f %f %f\n", name().cstr(), v_freq, v_rng, freq));
+ //NL_VERBOSE_OUT(("{1} {2} {3} {4}\n", name(), v_freq, v_rng, freq));
}
if (!m_clock.m_enableq && INPLOGIC(m_ENQ))
@@ -169,7 +169,6 @@ NETLIB_UPDATE(SN74LS629)
NETLIB_UPDATE_PARAM(SN74LS629)
{
- //printf("updating %s to %f\n", name().cstr(), m_R.Value());
update_dev();
}
diff --git a/src/emu/netlist/devices/nld_74ls629.h b/src/lib/netlist/devices/nld_74ls629.h
index 11c74bb8246..433c2c32a11 100644
--- a/src/emu/netlist/devices/nld_74ls629.h
+++ b/src/lib/netlist/devices/nld_74ls629.h
@@ -28,8 +28,8 @@
#ifndef NLD_74LS629_H_
#define NLD_74LS629_H_
-#include "../nl_base.h"
-#include "../analog/nld_twoterm.h"
+#include "nl_base.h"
+#include "analog/nld_twoterm.h"
#define SN74LS629(_name, _cap) \
NET_REGISTER_DEV(SN74LS629, _name) \
diff --git a/src/emu/netlist/devices/nld_82S16.c b/src/lib/netlist/devices/nld_82S16.c
index 07990ffa598..07990ffa598 100644
--- a/src/emu/netlist/devices/nld_82S16.c
+++ b/src/lib/netlist/devices/nld_82S16.c
diff --git a/src/emu/netlist/devices/nld_82S16.h b/src/lib/netlist/devices/nld_82S16.h
index 0c0963498c9..b6d8f6565d6 100644
--- a/src/emu/netlist/devices/nld_82S16.h
+++ b/src/lib/netlist/devices/nld_82S16.h
@@ -24,7 +24,7 @@
#ifndef NLD_82S16_H_
#define NLD_82S16_H_
-#include "../nl_base.h"
+#include "nl_base.h"
#define TTL_82S16(_name) \
NET_REGISTER_DEV(TTL_82S16, _name)
diff --git a/src/emu/netlist/devices/nld_9310.c b/src/lib/netlist/devices/nld_9310.c
index 586f1b47c05..586f1b47c05 100644
--- a/src/emu/netlist/devices/nld_9310.c
+++ b/src/lib/netlist/devices/nld_9310.c
diff --git a/src/emu/netlist/devices/nld_9310.h b/src/lib/netlist/devices/nld_9310.h
index 4ab59ea038e..00c39605ac2 100644
--- a/src/emu/netlist/devices/nld_9310.h
+++ b/src/lib/netlist/devices/nld_9310.h
@@ -45,7 +45,7 @@
#ifndef NLD_9310_H_
#define NLD_9310_H_
-#include "../nl_base.h"
+#include "nl_base.h"
#define TTL_9310(_name, _CLK, _ENP, _ENT, _CLRQ, _LOADQ, _A, _B, _C, _D) \
NET_REGISTER_DEV(TTL_9310, _name) \
diff --git a/src/emu/netlist/devices/nld_9312.c b/src/lib/netlist/devices/nld_9312.c
index 0821861dea4..0821861dea4 100644
--- a/src/emu/netlist/devices/nld_9312.c
+++ b/src/lib/netlist/devices/nld_9312.c
diff --git a/src/emu/netlist/devices/nld_9312.h b/src/lib/netlist/devices/nld_9312.h
index ab5c0a8f8c9..ab5c0a8f8c9 100644
--- a/src/emu/netlist/devices/nld_9312.h
+++ b/src/lib/netlist/devices/nld_9312.h
diff --git a/src/emu/netlist/devices/nld_9316.c b/src/lib/netlist/devices/nld_9316.c
index 220487f1037..220487f1037 100644
--- a/src/emu/netlist/devices/nld_9316.c
+++ b/src/lib/netlist/devices/nld_9316.c
diff --git a/src/emu/netlist/devices/nld_9316.h b/src/lib/netlist/devices/nld_9316.h
index ec6791ed63b..e4d7a901c99 100644
--- a/src/emu/netlist/devices/nld_9316.h
+++ b/src/lib/netlist/devices/nld_9316.h
@@ -49,7 +49,7 @@
#ifndef NLD_9316_H_
#define NLD_9316_H_
-#include "../nl_base.h"
+#include "nl_base.h"
#define TTL_9316(_name, _CLK, _ENP, _ENT, _CLRQ, _LOADQ, _A, _B, _C, _D) \
NET_REGISTER_DEV(TTL_9316, _name) \
diff --git a/src/emu/netlist/devices/nld_cmos.h b/src/lib/netlist/devices/nld_cmos.h
index e3783ade423..6883993a794 100644
--- a/src/emu/netlist/devices/nld_cmos.h
+++ b/src/lib/netlist/devices/nld_cmos.h
@@ -8,8 +8,8 @@
#ifndef NLD_CMOS_H_
#define NLD_CMOS_H_
-#include "../nl_base.h"
-#include "../analog/nld_twoterm.h"
+#include "nl_base.h"
+#include "analog/nld_twoterm.h"
NETLIB_NAMESPACE_DEVICES_START()
diff --git a/src/emu/netlist/devices/nld_legacy.c b/src/lib/netlist/devices/nld_legacy.c
index d6b926545fe..834dda31110 100644
--- a/src/emu/netlist/devices/nld_legacy.c
+++ b/src/lib/netlist/devices/nld_legacy.c
@@ -6,7 +6,7 @@
*/
#include "nld_legacy.h"
-#include "../nl_setup.h"
+#include "nl_setup.h"
NETLIB_NAMESPACE_DEVICES_START()
diff --git a/src/emu/netlist/devices/nld_legacy.h b/src/lib/netlist/devices/nld_legacy.h
index 62cdd8b02ca..8180ae7f774 100644
--- a/src/emu/netlist/devices/nld_legacy.h
+++ b/src/lib/netlist/devices/nld_legacy.h
@@ -13,7 +13,7 @@
#ifndef NLD_LEGACY_H_
#define NLD_LEGACY_H_
-#include "../nl_base.h"
+#include "nl_base.h"
NETLIB_NAMESPACE_DEVICES_START()
diff --git a/src/emu/netlist/devices/nld_log.c b/src/lib/netlist/devices/nld_log.c
index f6061cc3aab..db96664661b 100644
--- a/src/emu/netlist/devices/nld_log.c
+++ b/src/lib/netlist/devices/nld_log.c
@@ -5,8 +5,6 @@
*
*/
-#include <cstdio>
-
#include "nld_log.h"
//#include "sound/wavwrite.h"
@@ -18,8 +16,8 @@ NETLIB_START(log)
{
register_input("I", m_I);
- pstring filename = pstring::sprintf("%s.log", name().cstr());
- m_file = fopen(filename, "w");
+ pstring filename = pfmt("{1}.log")(name());
+ m_strm = palloc(pofilestream(filename));
}
NETLIB_RESET(log)
@@ -28,12 +26,14 @@ NETLIB_RESET(log)
NETLIB_UPDATE(log)
{
- std::fprintf(static_cast<FILE *>(m_file), "%20.9e %e\n", netlist().time().as_double(), (nl_double) INPANALOG(m_I));
+ /* use pstring::sprintf, it is a LOT faster */
+ m_strm->writeline(pfmt("{1} {2}").e(netlist().time().as_double(),".9").e((nl_double) INPANALOG(m_I)));
}
NETLIB_NAME(log)::~NETLIB_NAME(log)()
{
- std::fclose(static_cast<FILE *>(m_file));
+ m_strm->close();
+ pfree(m_strm);
}
NETLIB_START(logD)
@@ -48,11 +48,11 @@ NETLIB_RESET(logD)
NETLIB_UPDATE(logD)
{
- std::fprintf(static_cast<FILE *>(m_file), "%e %e\n", netlist().time().as_double(), (nl_double) (INPANALOG(m_I) - INPANALOG(m_I2)));
+ m_strm->writeline(pfmt("{1} {2}").e(netlist().time().as_double(),".9").e((nl_double) (INPANALOG(m_I) - INPANALOG(m_I2))));
}
// FIXME: Implement wav later, this must be clock triggered device where the input to be written
-// is on a subdevice ...
+// is on a subdevice ..
#if 0
NETLIB_START(wav)
{
diff --git a/src/emu/netlist/devices/nld_log.h b/src/lib/netlist/devices/nld_log.h
index 4b768b66b82..eb3ae97d75e 100644
--- a/src/emu/netlist/devices/nld_log.h
+++ b/src/lib/netlist/devices/nld_log.h
@@ -18,10 +18,11 @@
#ifndef NLD_LOG_H_
#define NLD_LOG_H_
-#include "../nl_base.h"
+#include "nl_base.h"
+#include "plib/pstream.h"
-#define LOG(_name, _I) \
- NET_REGISTER_DEV(ÖPG, _name) \
+#define LOG(_name, _I) \
+ NET_REGISTER_DEV(??PG, _name) \
NET_CONNECT(_name, I, _I)
NETLIB_NAMESPACE_DEVICES_START()
@@ -30,7 +31,7 @@ NETLIB_DEVICE(log,
~NETLIB_NAME(log)();
analog_input_t m_I;
protected:
- void * m_file;
+ pofilestream *m_strm;
);
#define LOGD(_name, _I, _I2) \
diff --git a/src/emu/netlist/devices/nld_mm5837.c b/src/lib/netlist/devices/nld_mm5837.c
index e45c0bf8198..129456c8784 100644
--- a/src/emu/netlist/devices/nld_mm5837.c
+++ b/src/lib/netlist/devices/nld_mm5837.c
@@ -7,7 +7,7 @@
#include <solver/nld_solver.h>
#include "nld_mm5837.h"
-#include "../nl_setup.h"
+#include "nl_setup.h"
#define R_LOW (1000)
#define R_HIGH (1000)
diff --git a/src/emu/netlist/devices/nld_mm5837.h b/src/lib/netlist/devices/nld_mm5837.h
index e5aad3daa81..33b42640e92 100644
--- a/src/emu/netlist/devices/nld_mm5837.h
+++ b/src/lib/netlist/devices/nld_mm5837.h
@@ -19,8 +19,8 @@
#ifndef NLD_MM5837_H_
#define NLD_MM5837_H_
-#include "../nl_base.h"
-#include "../analog/nld_twoterm.h"
+#include "nl_base.h"
+#include "analog/nld_twoterm.h"
#define MM5837_DIP(_name) \
NET_REGISTER_DEV(MM5837_DIP, _name)
diff --git a/src/emu/netlist/devices/nld_ne555.c b/src/lib/netlist/devices/nld_ne555.c
index 6705081eb3a..efa6d25aec8 100644
--- a/src/emu/netlist/devices/nld_ne555.c
+++ b/src/lib/netlist/devices/nld_ne555.c
@@ -7,7 +7,7 @@
#include <solver/nld_solver.h>
#include "nld_ne555.h"
-#include "../nl_setup.h"
+#include "nl_setup.h"
#define R_OFF (1E20)
#define R_ON (25) // Datasheet states a maximum discharge of 200mA, R = 5V / 0.2
diff --git a/src/emu/netlist/devices/nld_ne555.h b/src/lib/netlist/devices/nld_ne555.h
index f02c7763ebd..11228ffd447 100644
--- a/src/emu/netlist/devices/nld_ne555.h
+++ b/src/lib/netlist/devices/nld_ne555.h
@@ -19,8 +19,8 @@
#ifndef NLD_NE555_H_
#define NLD_NE555_H_
-#include "../nl_base.h"
-#include "../analog/nld_twoterm.h"
+#include "nl_base.h"
+#include "analog/nld_twoterm.h"
#define NE555(_name) \
NET_REGISTER_DEV(NE555, _name)
diff --git a/src/emu/netlist/devices/nld_r2r_dac.c b/src/lib/netlist/devices/nld_r2r_dac.c
index c1f05837d4c..8ad59dfc9f8 100644
--- a/src/emu/netlist/devices/nld_r2r_dac.c
+++ b/src/lib/netlist/devices/nld_r2r_dac.c
@@ -32,8 +32,6 @@ NETLIB_UPDATE(r2r_dac)
NETLIB_UPDATE_PARAM(r2r_dac)
{
- //printf("updating %s to %f\n", name().cstr(), m_R.Value());
-
update_dev();
nl_double V = m_VIN.Value() / (nl_double) (1 << m_num.Value()) * (nl_double) m_val.Value();
diff --git a/src/emu/netlist/devices/nld_r2r_dac.h b/src/lib/netlist/devices/nld_r2r_dac.h
index 843c827a538..15b1e7fa364 100644
--- a/src/emu/netlist/devices/nld_r2r_dac.h
+++ b/src/lib/netlist/devices/nld_r2r_dac.h
@@ -46,8 +46,8 @@
#ifndef NLD_R2R_DAC_H_
#define NLD_R2R_DAC_H_
-#include "../nl_base.h"
-#include "../analog/nld_twoterm.h"
+#include "nl_base.h"
+#include "analog/nld_twoterm.h"
#define R2R_DAC(_name, _VIN, _R, _N) \
NET_REGISTER_DEV(R2R_DAC, _name) \
diff --git a/src/emu/netlist/devices/nld_signal.h b/src/lib/netlist/devices/nld_signal.h
index 0cf2bc7c238..fa8e9e6265b 100644
--- a/src/emu/netlist/devices/nld_signal.h
+++ b/src/lib/netlist/devices/nld_signal.h
@@ -8,7 +8,7 @@
#ifndef NLD_SIGNAL_H_
#define NLD_SIGNAL_H_
-#include "../nl_base.h"
+#include "nl_base.h"
// ----------------------------------------------------------------------------------------
// MACROS
diff --git a/src/emu/netlist/devices/nld_system.c b/src/lib/netlist/devices/nld_system.c
index c4ecbaba454..628ec617cb1 100644
--- a/src/emu/netlist/devices/nld_system.c
+++ b/src/lib/netlist/devices/nld_system.c
@@ -134,8 +134,8 @@ NETLIB_UPDATE(extclock)
NETLIB_START(logic_input)
{
/* make sure we get the family first */
- register_param("FAMILY", m_FAMILY, ".model FAMILY(TYPE=TTL)");
- set_logic_family(logic_family_desc_t::from_model(m_FAMILY.Value()));
+ register_param("FAMILY", m_FAMILY, "FAMILY(TYPE=TTL)");
+ set_logic_family(netlist().setup().family_from_model(m_FAMILY.Value()));
register_output("Q", m_Q);
register_param("IN", m_IN, 0);
@@ -299,7 +299,7 @@ NETLIB_START(function)
register_output("Q", m_Q);
for (int i=0; i < m_N; i++)
- register_input(pstring::sprintf("A%d", i), m_I[i]);
+ register_input(pfmt("A{1}")(i), m_I[i]);
pstring_list_t cmds(m_func.Value(), " ");
m_precompiled.clear();
@@ -329,7 +329,7 @@ NETLIB_START(function)
rc.m_cmd = PUSH_CONST;
rc.m_param = cmd.as_double(&err);
if (err)
- netlist().error("nld_function: unknown/misformatted token <%s> in <%s>", cmd.cstr(), m_func.Value().cstr());
+ netlist().log().fatal("nld_function: unknown/misformatted token <{1}> in <{2}>", cmd, m_func.Value());
}
m_precompiled.add(rc);
}
diff --git a/src/emu/netlist/devices/nld_system.h b/src/lib/netlist/devices/nld_system.h
index 76837f99d28..2ea6fbed4d4 100644
--- a/src/emu/netlist/devices/nld_system.h
+++ b/src/lib/netlist/devices/nld_system.h
@@ -9,10 +9,10 @@
#ifndef NLD_SYSTEM_H_
#define NLD_SYSTEM_H_
-#include "../nl_setup.h"
-#include "../nl_base.h"
-#include "../nl_factory.h"
-#include "../analog/nld_twoterm.h"
+#include "nl_setup.h"
+#include "nl_base.h"
+#include "nl_factory.h"
+#include "analog/nld_twoterm.h"
// -----------------------------------------------------------------------------
// Macros
@@ -24,7 +24,7 @@
#define LOGIC_INPUT(_name, _v, _family) \
NET_REGISTER_DEV(LOGIC_INPUT, _name) \
- PARAM(_name.IN, _v) \
+ PARAM(_name.IN, _v) \
PARAM(_name.FAMILY, _family)
#define ANALOG_INPUT(_name, _v) \
@@ -70,9 +70,9 @@
#define PARAMETERS(_name) \
NET_REGISTER_DEV(PARAMETERS, _name)
-#define AFUNC(_name, _N, _F) \
+#define AFUNC(_name, _N, _F) \
NET_REGISTER_DEV(AFUNC, _name) \
- PARAM(_name.N, _N) \
+ PARAM(_name.N, _N) \
PARAM(_name.FUNC, _F)
NETLIB_NAMESPACE_DEVICES_START()
@@ -294,7 +294,7 @@ private:
SUB,
DIV,
PUSH_CONST,
- PUSH_INPUT,
+ PUSH_INPUT
};
struct rpn_inst
@@ -403,7 +403,6 @@ protected:
ATTR_HOT void update()
{
- //printf("%s: %f\n", name().cstr(), m_I.Q_Analog());
if (m_I.Q_Analog() > logic_family().m_high_thresh_V)
OUTLOGIC(m_Q, 1, NLTIME_FROM_NS(1));
else if (m_I.Q_Analog() < logic_family().m_low_thresh_V)
@@ -478,7 +477,7 @@ public:
ATTR_COLD factory_lib_entry_t(setup_t &setup, const pstring &name, const pstring &classname,
const pstring &def_param)
- : base_factory_t(name, classname, def_param), m_setup(setup) { }
+ : base_factory_t(name, classname, def_param), m_setup(setup) { }
class dummy : public device_t
{
diff --git a/src/emu/netlist/devices/nld_truthtable.c b/src/lib/netlist/devices/nld_truthtable.c
index 4ae30d23cbf..1f671b23108 100644
--- a/src/emu/netlist/devices/nld_truthtable.c
+++ b/src/lib/netlist/devices/nld_truthtable.c
@@ -6,7 +6,7 @@
*/
#include "nld_truthtable.h"
-#include "../plib/plists.h"
+#include "plib/plists.h"
NETLIB_NAMESPACE_DEVICES_START()
@@ -135,8 +135,8 @@ void truthtable_desc_t::help(unsigned cur, pstring_list_t list,
{
// cutoff previous inputs and outputs for ignore
if (m_outs[nstate] != ~0U && m_outs[nstate] != val)
- fatalerror_e("Error in truthtable: State %04x already set, %d != %d\n",
- (UINT32) nstate, m_outs[nstate], val);
+ fatalerror_e(pfmt("Error in truthtable: State {1} already set, {2} != {3}\n")
+ .x(nstate,"04")(m_outs[nstate])(val) );
m_outs[nstate] = val;
for (unsigned j=0; j<m_NO; j++)
m_timing[nstate * m_NO + j] = timing_index[j];
@@ -231,7 +231,7 @@ void truthtable_desc_t::setup(const pstring_list_t &truthtable, UINT32 disabled_
for (UINT32 i=0; i<m_size; i++)
{
if (m_outs[i] == ~0U)
- fatalerror_e("truthtable: found element not set %04x\n", i);
+ throw fatalerror_e(pfmt("truthtable: found element not set {1}\n").x(i) );
m_outs[i] |= ((ign[i] & ~disabled_ignore) << m_NO);
}
*m_initialized = true;
@@ -264,8 +264,8 @@ netlist_base_factory_truthtable_t *nl_tt_factory_create(const unsigned ni, const
ENTRY(9);
ENTRY(10);
default:
- pstring msg = pstring::sprintf("unable to create truthtable<%d,%d,%d>", ni, no, has_state);
- nl_assert_always(false, msg.cstr());
+ pstring msg = pfmt("unable to create truthtable<{1},{2},{3}>")(ni)(no)(has_state);
+ nl_assert_always(false, msg);
}
return NULL;
}
diff --git a/src/emu/netlist/devices/nld_truthtable.h b/src/lib/netlist/devices/nld_truthtable.h
index aff146cfb91..b5a90d8125c 100644
--- a/src/emu/netlist/devices/nld_truthtable.h
+++ b/src/lib/netlist/devices/nld_truthtable.h
@@ -10,8 +10,8 @@
#ifndef NLD_TRUTHTABLE_H_
#define NLD_TRUTHTABLE_H_
-#include "../nl_base.h"
-#include "../nl_factory.h"
+#include "nl_base.h"
+#include "nl_factory.h"
#define NETLIB_TRUTHTABLE(_name, _nIN, _nOUT, _state) \
class NETLIB_NAME(_name) : public nld_truthtable_t<_nIN, _nOUT, _state> \
@@ -36,7 +36,7 @@
ttd->m_desc.add(_x);
#define TT_FAMILY(_x) \
- ttd->m_family = netlist::logic_family_desc_t::from_model(setup.get_model_str(_x));
+ ttd->m_family = setup.family_from_model(_x);
#define TRUTHTABLE_END() \
setup.factory().register_device(ttd); \
@@ -157,7 +157,6 @@ public:
const int idx = inout.indexof(tmp);
if (idx>=0)
{
- //printf("connecting %s %d\n", out[i].cstr(), idx);
connect_late(m_Q[i], m_I[idx]);
// disable ignore for this inputs altogether.
// FIXME: This shouldn't be necessary
diff --git a/src/emu/netlist/macro/nlm_cd4xxx.c b/src/lib/netlist/macro/nlm_cd4xxx.c
index 97777b193aa..e8ffede2aa8 100644
--- a/src/emu/netlist/macro/nlm_cd4xxx.c
+++ b/src/lib/netlist/macro/nlm_cd4xxx.c
@@ -38,7 +38,7 @@ NETLIST_START(CD4001_DIP)
s2.A, /* A3 |5 10| Y5 */ s3.Q,
s2.B, /* Y3 |6 9| A4 */ s3.B,
VDD.I, /* GND |7 8| Y4 */ s3.A
- /* +--------------+ */
+ /* +--------------+ */
)
NETLIST_END()
@@ -74,10 +74,10 @@ NETLIST_START(CD4020_DIP)
s1.Q7, /* Q7 |6 11| RESET */ s1.RESET,
s1.Q4, /* Q4 |7 10| IP */ s1.IP,
s1.VSS, /* VSS |8 9| Q1 */ s1.Q1
- /* +--------------+ */
+ /* +--------------+ */
)
/*
- * IP = (Input pulses)
+ * IP = (Input pulses)
*/
NETLIST_END()
@@ -117,12 +117,12 @@ NETLIST_START(CD4066_DIP)
DIPPINS( /* +--------------+ */
A.R.1, /* INOUTA |1 ++ 14| VDD */ A.PS.VDD,
A.R.2, /* OUTINA |2 13| CONTROLA */ A.CTL,
- B.R.1, /* OUTINB |3 12| CONTROLD */ D.CTL,
+ B.R.1, /* OUTINB |3 12| CONTROLD */ D.CTL,
B.R.2, /* INOUTB |4 4066 11| INOUTD */ D.R.1,
B.CTL, /* CONTROLB |5 10| OUTIND */ D.R.2,
C.CTL, /* CONTROLC |6 9| OUTINC */ C.R.1,
A.PS.VSS, /* VSS |7 8| INOUTC */ C.R.2
- /* +--------------+ */
+ /* +--------------+ */
)
NETLIST_END()
@@ -143,12 +143,12 @@ NETLIST_START(CD4016_DIP)
DIPPINS( /* +--------------+ */
A.R.1, /* INOUTA |1 ++ 14| VDD */ A.PS.VDD,
A.R.2, /* OUTINA |2 13| CONTROLA */ A.CTL,
- B.R.1, /* OUTINB |3 12| CONTROLD */ D.CTL,
+ B.R.1, /* OUTINB |3 12| CONTROLD */ D.CTL,
B.R.2, /* INOUTB |4 4016 11| INOUTD */ D.R.1,
B.CTL, /* CONTROLB |5 10| OUTIND */ D.R.2,
C.CTL, /* CONTROLC |6 9| OUTINC */ C.R.1,
A.PS.VSS, /* VSS |7 8| INOUTC */ C.R.2
- /* +--------------+ */
+ /* +--------------+ */
)
NETLIST_END()
diff --git a/src/emu/netlist/macro/nlm_cd4xxx.h b/src/lib/netlist/macro/nlm_cd4xxx.h
index e841fb89afc..94c5d04aef8 100644
--- a/src/emu/netlist/macro/nlm_cd4xxx.h
+++ b/src/lib/netlist/macro/nlm_cd4xxx.h
@@ -1,7 +1,7 @@
#ifndef NLD_CD4XXX_H_
#define NLD_CD4XXX_H_
-#include "../nl_setup.h"
+#include "nl_setup.h"
/*
* Devices:
diff --git a/src/lib/netlist/macro/nlm_opamp.c b/src/lib/netlist/macro/nlm_opamp.c
new file mode 100644
index 00000000000..9d246ebb04f
--- /dev/null
+++ b/src/lib/netlist/macro/nlm_opamp.c
@@ -0,0 +1,83 @@
+
+#include "nlm_opamp.h"
+
+#include "analog/nld_opamps.h"
+#include "devices/nld_system.h"
+
+/*
+ * Generic layout with 4 opamps, VCC on pint 4 and GND on pin 11
+ */
+
+NETLIST_START(opamp_layout_4_4_11)
+ DIPPINS( /* +--------------+ */
+ A.OUT, /* |1 ++ 14| */ D.OUT,
+ A.MINUS, /* |2 13| */ D.MINUS,
+ A.PLUS, /* |3 12| */ D.PLUS,
+ A.VCC, /* |4 11| */ A.GND,
+ B.PLUS, /* |5 10| */ C.PLUS,
+ B.MINUS, /* |6 9| */ C.MINUS,
+ B.OUT, /* |7 8| */ C.OUT
+ /* +--------------+ */
+ )
+ NET_C(A.GND, B.GND, C.GND, D.GND)
+ NET_C(A.VCC, B.VCC, C.VCC, D.VCC)
+NETLIST_END()
+
+/*
+ * Generic layout with 2 opamps, VCC on pint 8 and GND on pin 4
+ */
+
+NETLIST_START(opamp_layout_2_8_4)
+ DIPPINS( /* +--------------+ */
+ A.OUT, /* |1 ++ 8| */ A.VCC,
+ A.MINUS, /* |2 7| */ B.OUT,
+ A.PLUS, /* |3 6| */ B.MINUS,
+ A.GND, /* |4 5| */ B.PLUS
+ /* +--------------+ */
+ )
+ NET_C(A.GND, B.GND)
+ NET_C(A.VCC, B.VCC)
+NETLIST_END()
+
+NETLIST_START(MB3614_DIP)
+ OPAMP(A, "MB3614")
+ OPAMP(B, "MB3614")
+ OPAMP(C, "MB3614")
+ OPAMP(D, "MB3614")
+
+ INCLUDE(opamp_layout_4_4_11)
+
+NETLIST_END()
+
+NETLIST_START(LM324_DIP)
+ OPAMP(A, "LM324")
+ OPAMP(B, "LM324")
+ OPAMP(C, "LM324")
+ OPAMP(D, "LM324")
+
+ INCLUDE(opamp_layout_4_4_11)
+
+NETLIST_END()
+
+NETLIST_START(LM358_DIP)
+ OPAMP(A, "LM358")
+ OPAMP(B, "LM358")
+
+ INCLUDE(opamp_layout_2_8_4)
+
+NETLIST_END()
+
+NETLIST_START(OPAMP_lib)
+ LOCAL_LIB_ENTRY(opamp_layout_4_4_11)
+ LOCAL_LIB_ENTRY(opamp_layout_2_8_4)
+
+ NET_MODEL("LM324 OPAMP(TYPE=3 VLH=2.0 VLL=0.2 FPF=5 UGF=500k SLEW=0.3M RI=1000k RO=50 DAB=0.00075)")
+ NET_MODEL("LM358 OPAMP(TYPE=3 VLH=2.0 VLL=0.2 FPF=5 UGF=500k SLEW=0.3M RI=1000k RO=50 DAB=0.001)")
+ NET_MODEL("MB3614 OPAMP(TYPE=3 VLH=1.4 VLL=0.02 FPF=2 UGF=500k SLEW=0.6M RI=1000k RO=50 DAB=0.0002)")
+
+ LOCAL_LIB_ENTRY(MB3614_DIP)
+ LOCAL_LIB_ENTRY(LM324_DIP)
+ LOCAL_LIB_ENTRY(LM358_DIP)
+
+
+NETLIST_END()
diff --git a/src/emu/netlist/macro/nlm_opamp.h b/src/lib/netlist/macro/nlm_opamp.h
index d31a5f0b876..8612f72e453 100644
--- a/src/emu/netlist/macro/nlm_opamp.h
+++ b/src/lib/netlist/macro/nlm_opamp.h
@@ -1,7 +1,7 @@
#ifndef NLM_OPAMP_H_
#define NLM_OPAMP_H_
-#include "../nl_setup.h"
+#include "nl_setup.h"
#ifndef __PLIB_PREPROCESSOR__
@@ -9,9 +9,15 @@
* Netlist Macros
* ---------------------------------------------------------------------------*/
-#define MB3614_DIP(_name) \
+#define MB3614_DIP(_name) \
NET_REGISTER_DEV(MB3614_DIP, _name)
+#define LM324_DIP(_name) \
+ NET_REGISTER_DEV(LM324_DIP, _name)
+
+#define LM358_DIP(_name) \
+ NET_REGISTER_DEV(LM358_DIP, _name)
+
/* ----------------------------------------------------------------------------
* External declarations
* ---------------------------------------------------------------------------*/
diff --git a/src/lib/netlist/macro/nlm_other.c b/src/lib/netlist/macro/nlm_other.c
new file mode 100644
index 00000000000..e3d53def922
--- /dev/null
+++ b/src/lib/netlist/macro/nlm_other.c
@@ -0,0 +1,55 @@
+
+#include "nlm_other.h"
+
+#include "devices/nld_truthtable.h"
+#include "devices/nld_system.h"
+
+/*
+ * MC14584B: Hex Schmitt Trigger
+ * ON Semiconductor
+ *
+ * +--------------+
+ * A1 |1 ++ 14| VCC
+ * Y1 |2 13| A6
+ * A2 |3 12| Y6
+ * Y2 |4 MC14584B 11| A5
+ * A3 |5 10| Y5
+ * Y3 |6 9| A4
+ * GND |7 8| Y4
+ * +--------------+
+ *
+ */
+
+NETLIST_START(MC14584B_DIP)
+ MC14584B_GATE(s1)
+ MC14584B_GATE(s2)
+ MC14584B_GATE(s3)
+ MC14584B_GATE(s4)
+ MC14584B_GATE(s5)
+ MC14584B_GATE(s6)
+
+ DUMMY_INPUT(GND)
+ DUMMY_INPUT(VCC)
+
+ DIPPINS( /* +--------------+ */
+ s1.A, /* A1 |1 ++ 14| VCC */ VCC.I,
+ s1.Q, /* Y1 |2 13| A6 */ s6.A,
+ s2.A, /* A2 |3 12| Y6 */ s6.Q,
+ s2.Q, /* Y2 |4 7416 11| A5 */ s5.A,
+ s3.A, /* A3 |5 10| Y5 */ s5.Q,
+ s3.Q, /* Y3 |6 9| A4 */ s4.A,
+ GND.I, /* GND |7 8| Y4 */ s4.Q
+ /* +--------------+ */
+ )
+NETLIST_END()
+
+NETLIST_START(otheric_lib)
+ TRUTHTABLE_START(MC14584B_GATE, 1, 1, 0, "")
+ TT_HEAD(" A | Q ")
+ TT_LINE(" 0 | 1 |100")
+ TT_LINE(" 1 | 0 |100")
+ TT_FAMILY("FAMILY(IVL=2.1 IVH=2.7 OVL=0.05 OVH=4.95 ORL=10.0 ORH=10.0)")
+ TRUTHTABLE_END()
+
+ LOCAL_LIB_ENTRY(MC14584B_DIP)
+NETLIST_END()
diff --git a/src/lib/netlist/macro/nlm_other.h b/src/lib/netlist/macro/nlm_other.h
new file mode 100644
index 00000000000..cc104968ed3
--- /dev/null
+++ b/src/lib/netlist/macro/nlm_other.h
@@ -0,0 +1,27 @@
+#ifndef NLM_OTHER_H_
+#define NLM_OTHER_H_
+
+#include "nl_setup.h"
+
+#ifndef __PLIB_PREPROCESSOR__
+
+/* ----------------------------------------------------------------------------
+ * Netlist Macros
+ * ---------------------------------------------------------------------------*/
+
+#define MC14584B_GATE(_name) \
+ NET_REGISTER_DEV(MC14584B_GATE, _name)
+
+#define MC14584B_DIP(_name) \
+ NET_REGISTER_DEV(MC14584B_DIP, _name)
+
+
+/* ----------------------------------------------------------------------------
+ * External declarations
+ * ---------------------------------------------------------------------------*/
+
+NETLIST_EXTERNAL(otheric_lib)
+
+#endif
+
+#endif
diff --git a/src/emu/netlist/macro/nlm_ttl74xx.c b/src/lib/netlist/macro/nlm_ttl74xx.c
index 75e865b1fe1..c9c33aceaeb 100644
--- a/src/emu/netlist/macro/nlm_ttl74xx.c
+++ b/src/lib/netlist/macro/nlm_ttl74xx.c
@@ -6,7 +6,7 @@
/*
* DM7416: Hex Inverting Buffers with
- * High Voltage Open-Collector Outputs
+ * High Voltage Open-Collector Outputs
*
* +--------------+
* A1 |1 ++ 14| VCC
@@ -39,7 +39,7 @@ NETLIST_START(TTL_7416_DIP)
s3.A, /* A3 |5 10| Y5 */ s5.Q,
s3.Q, /* Y3 |6 9| A4 */ s4.A,
GND.I, /* GND |7 8| Y4 */ s4.Q
- /* +--------------+ */
+ /* +--------------+ */
)
NETLIST_END()
diff --git a/src/emu/netlist/macro/nlm_ttl74xx.h b/src/lib/netlist/macro/nlm_ttl74xx.h
index 91f757dbf7d..0fed60235c1 100644
--- a/src/emu/netlist/macro/nlm_ttl74xx.h
+++ b/src/lib/netlist/macro/nlm_ttl74xx.h
@@ -1,7 +1,7 @@
#ifndef NLD_TTL74XX_H_
#define NLD_TTL74XX_H_
-#include "../nl_setup.h"
+#include "nl_setup.h"
#ifndef __PLIB_PREPROCESSOR__
@@ -9,10 +9,10 @@
* Netlist Macros
* ---------------------------------------------------------------------------*/
-#define TTL_7416_GATE(_name) \
+#define TTL_7416_GATE(_name) \
NET_REGISTER_DEV(TTL_7416_GATE, _name)
-#define TTL_7416_DIP(_name) \
+#define TTL_7416_DIP(_name) \
NET_REGISTER_DEV(TTL7416_DIP, _name)
/* ----------------------------------------------------------------------------
diff --git a/src/emu/netlist/nl_base.c b/src/lib/netlist/nl_base.c
index c63ddc61a00..ce818e0d94f 100644
--- a/src/emu/netlist/nl_base.c
+++ b/src/lib/netlist/nl_base.c
@@ -8,7 +8,6 @@
#include <solver/nld_solver.h>
#include <cstring>
#include <algorithm>
-#include <cstdio>
#include "plib/palloc.h"
@@ -20,25 +19,6 @@ const netlist::netlist_time netlist::netlist_time::zero = netlist::netlist_time:
namespace netlist
{
-//============================================================
-// Exceptions
-//============================================================
-
-// emu_fatalerror is a generic fatal exception that provides an error string
-fatalerror_e::fatalerror_e(const char *format, ...)
-{
- va_list ap;
- va_start(ap, format);
- m_text = pstring(format).vprintf(ap);
- fprintf(stderr, "%s\n", m_text.cstr());
- va_end(ap);
-}
-
-fatalerror_e::fatalerror_e(const char *format, va_list ap)
-{
- m_text = pstring(format).vprintf(ap);
-}
-
// ----------------------------------------------------------------------------------------
// logic_family_ttl_t
// ----------------------------------------------------------------------------------------
@@ -87,36 +67,6 @@ public:
logic_family_desc_t *netlist_family_TTL = palloc(logic_family_ttl_t);
logic_family_desc_t *netlist_family_CD4XXX = palloc(logic_family_cd4xxx_t);
-class logic_family_std_proxy_t : public logic_family_desc_t
-{
-public:
- logic_family_std_proxy_t() { }
- virtual devices::nld_base_d_to_a_proxy *create_d_a_proxy(logic_output_t *proxied) const
- {
- return palloc(devices::nld_d_to_a_proxy(proxied));
- }
-};
-
-logic_family_desc_t *logic_family_desc_t::from_model(const pstring &model)
-{
- if (setup_t::model_value_str(model, "TYPE", "") == "TTL")
- return netlist_family_TTL;
- if (setup_t::model_value_str(model, "TYPE", "") == "CD4XXX")
- return netlist_family_CD4XXX;
-
- logic_family_std_proxy_t *ret = palloc(logic_family_std_proxy_t);
-
- ret->m_low_thresh_V = setup_t::model_value(model, "IVL", 0.8);
- ret->m_high_thresh_V = setup_t::model_value(model, "IVH", 2.0);
- ret->m_low_V = setup_t::model_value(model, "OVL", 0.1);
- ret->m_high_V = setup_t::model_value(model, "OVH", 4.0);
- ret->m_R_low = setup_t::model_value(model, "ORL", 1.0);
- ret->m_R_high = setup_t::model_value(model, "ORH", 130.0);
-
- return ret;
-}
-
-
// ----------------------------------------------------------------------------------------
// netlist_queue_t
// ----------------------------------------------------------------------------------------
@@ -134,7 +84,7 @@ queue_t::queue_t(netlist_t &nl)
void queue_t::register_state(pstate_manager_t &manager, const pstring &module)
{
- NL_VERBOSE_OUT(("register_state\n"));
+ netlist().log().debug("register_state\n");
manager.save_item(m_qsize, this, module + "." + "qsize");
manager.save_item(&m_times[0], this, module + "." + "times", m_times.size());
manager.save_item(&(m_names[0].m_buf[0]), this, module + "." + "names", m_names.size() * sizeof(names_t));
@@ -142,16 +92,16 @@ void queue_t::register_state(pstate_manager_t &manager, const pstring &module)
void queue_t::on_pre_save()
{
- NL_VERBOSE_OUT(("on_pre_save\n"));
+ netlist().log().debug("on_pre_save\n");
m_qsize = this->count();
- NL_VERBOSE_OUT(("current time %f qsize %d\n", netlist().time().as_double(), m_qsize));
+ netlist().log().debug("current time {1} qsize {2}\n", netlist().time().as_double(), m_qsize);
for (int i = 0; i < m_qsize; i++ )
{
m_times[i] = this->listptr()[i].exec_time().as_raw();
pstring p = this->listptr()[i].object()->name();
int n = p.len();
n = std::min(63, n);
- std::strncpy(m_names[i].m_buf, p, n);
+ std::strncpy(m_names[i].m_buf, p.cstr(), n);
m_names[i].m_buf[n] = 0;
}
}
@@ -160,12 +110,12 @@ void queue_t::on_pre_save()
void queue_t::on_post_load()
{
this->clear();
- NL_VERBOSE_OUT(("current time %f qsize %d\n", netlist().time().as_double(), m_qsize));
+ netlist().log().debug("current time {1} qsize {2}\n", netlist().time().as_double(), m_qsize);
for (int i = 0; i < m_qsize; i++ )
{
net_t *n = netlist().find_net(m_names[i].m_buf);
- //NL_VERBOSE_OUT(("Got %s ==> %p\n", qtemp[i].m_name, n));
- //NL_VERBOSE_OUT(("schedule time %f (%f)\n", n->time().as_double(), netlist_time::from_raw(m_times[i]).as_double()));
+ //log().debug("Got {1} ==> {2}\n", qtemp[i].m_name, n));
+ //log().debug("schedule time {1} ({2})\n", n->time().as_double(), netlist_time::from_raw(m_times[i]).as_double()));
this->push(queue_t::entry_t(netlist_time::from_raw(m_times[i]), n));
}
}
@@ -194,7 +144,7 @@ ATTR_COLD void object_t::init_object(netlist_t &nl, const pstring &aname)
ATTR_COLD const pstring &object_t::name() const
{
if (m_name == "")
- netlist().error("object not initialized");
+ netlist().log().fatal("object not initialized");
return m_name;
}
@@ -229,7 +179,8 @@ netlist_t::netlist_t()
m_mainclock(NULL),
m_solver(NULL),
m_gnd(NULL),
- m_setup(NULL)
+ m_setup(NULL),
+ m_log(this)
{
}
@@ -266,7 +217,7 @@ ATTR_COLD void netlist_t::start()
{
/* find the main clock and solver ... */
- NL_VERBOSE_OUT(("Searching for mainclock and solver ...\n"));
+ log().debug("Searching for mainclock and solver ...\n");
m_mainclock = get_single_device<devices:: NETLIB_NAME(mainclock)>("mainclock");
m_solver = get_single_device<devices::NETLIB_NAME(solver)>("solver");
@@ -285,7 +236,7 @@ ATTR_COLD void netlist_t::start()
m_use_deactivate = (m_params->m_use_deactivate.Value() ? true : false);
- NL_VERBOSE_OUT(("Initializing devices ...\n"));
+ log().debug("Initializing devices ...\n");
for (std::size_t i = 0; i < m_devices.size(); i++)
{
device_t *dev = m_devices[i];
@@ -299,7 +250,7 @@ ATTR_COLD void netlist_t::stop()
{
/* find the main clock and solver ... */
- NL_VERBOSE_OUT(("Stopping all devices ...\n"));
+ log().debug("Stopping all devices ...\n");
// Step all devices once !
for (std::size_t i = 0; i < m_devices.size(); i++)
@@ -320,7 +271,6 @@ ATTR_COLD net_t *netlist_t::find_net(const pstring &name)
ATTR_COLD void netlist_t::rebuild_lists()
{
- //printf("Rebuild Lists\n");
for (std::size_t i = 0; i < m_nets.size(); i++)
m_nets[i]->rebuild_list();
}
@@ -409,31 +359,6 @@ ATTR_HOT void netlist_t::process_queue(const netlist_time &delta)
}
}
-ATTR_COLD void netlist_t::error(const char *format, ...) const
-{
- va_list ap;
- va_start(ap, format);
- verror(NL_ERROR, format, ap);
- va_end(ap);
-}
-
-ATTR_COLD void netlist_t::warning(const char *format, ...) const
-{
- va_list ap;
- va_start(ap, format);
- verror(NL_WARNING, format, ap);
- va_end(ap);
-}
-
-ATTR_COLD void netlist_t::log(const char *format, ...) const
-{
- va_list ap;
- va_start(ap, format);
- verror(NL_LOG, format, ap);
- va_end(ap);
-}
-
-
// ----------------------------------------------------------------------------------------
// Default netlist elements ...
// ----------------------------------------------------------------------------------------
@@ -522,7 +447,7 @@ device_t::device_t(const family_t afamily)
device_t::~device_t()
{
- //NL_VERBOSE_OUT(("~net_device_t\n");
+ //log().debug("~net_device_t\n");
}
ATTR_COLD setup_t &device_t::setup()
@@ -565,7 +490,7 @@ ATTR_COLD void device_t::register_subalias(const pstring &name, const pstring &a
// FIXME: make this working again
//if (term.isType(terminal_t::INPUT) || term.isType(terminal_t::TERMINAL))
- // m_terminals.add(name);
+ // m_terminals.add(name);
}
ATTR_COLD void device_t::register_terminal(const pstring &name, terminal_t &port)
@@ -612,7 +537,7 @@ ATTR_COLD void device_t::connect_late(const pstring &t1, const pstring &t2)
ATTR_COLD void device_t::connect_direct(core_terminal_t &t1, core_terminal_t &t2)
{
if (!setup().connect(t1, t2))
- netlist().error("Error connecting %s to %s\n", t1.name().cstr(), t2.name().cstr());
+ netlist().log().fatal("Error connecting {1} to {2}\n", t1.name(), t2.name());
}
@@ -719,8 +644,6 @@ ATTR_COLD void net_t::rebuild_list()
m_list_active.add(*m_core_terms[i]);
cnt++;
}
- //if (cnt != m_active)
- //printf("ARgh %s ==> %d != %d\n", name().cstr(), cnt, m_active);
m_active = cnt;
}
@@ -833,22 +756,22 @@ ATTR_COLD void net_t::move_connections(net_t *dest_net)
ATTR_COLD void net_t::merge_net(net_t *othernet)
{
- NL_VERBOSE_OUT(("merging nets ...\n"));
+ netlist().log().debug("merging nets ...\n");
if (othernet == NULL)
return; // Nothing to do
if (othernet == this)
{
- netlist().warning("Connecting %s to itself. This may be right, though\n", this->name().cstr());
+ netlist().log().warning("Connecting {1} to itself. This may be right, though\n", this->name());
return; // Nothing to do
}
if (this->isRailNet() && othernet->isRailNet())
- netlist().error("Trying to merge two rail nets: %s and %s\n", this->name().cstr(), othernet->name().cstr());
+ netlist().log().fatal("Trying to merge two rail nets: {1} and {2}\n", this->name(), othernet->name());
if (othernet->isRailNet())
{
- NL_VERBOSE_OUT(("othernet is railnet\n"));
+ netlist().log().debug("othernet is railnet\n");
othernet->merge_net(this);
}
else
@@ -919,15 +842,12 @@ ATTR_COLD void analog_net_t::process_net(list_t *groups, int &cur_group)
if (num_cons() == 0)
return;
/* add the net */
- //SOLVER_VERBOSE_OUT(("add %d - %s\n", cur_group, name().cstr()));
groups[cur_group].add(this);
for (std::size_t i = 0; i < m_core_terms.size(); i++)
{
core_terminal_t *p = m_core_terms[i];
- //SOLVER_VERBOSE_OUT(("terminal %s\n", p->name().cstr()));
if (p->isType(terminal_t::TERMINAL))
{
- //SOLVER_VERBOSE_OUT(("isterminal\n"));
terminal_t *pt = static_cast<terminal_t *>(p);
analog_net_t *other_net = &pt->m_otherterm->net().as_analog();
if (!other_net->already_processed(groups, cur_group))
@@ -1065,27 +985,26 @@ ATTR_COLD param_t::param_t(const param_type_t atype)
{
}
-ATTR_COLD const pstring param_model_t::model_type() const
+ATTR_COLD const pstring param_model_t::model_type()
{
- pstring tmp = this->Value();
- // .model 1N914 D(Is=2.52n Rs=.568 N=1.752 Cjo=4p M=.4 tt=20n Iave=200m Vpk=75 mfg=OnSemi type=silicon)
- int p = tmp.find("(");
- int p1 = p;
- while (--p >= 0 && tmp[p] != ' ')
- ;
-
- return tmp.substr(p+1, p1-p-1).ucase();
+ if (m_map.size() == 0)
+ netlist().setup().model_parse(this->Value(), m_map);
+ return m_map["COREMODEL"];
}
-ATTR_COLD const pstring param_model_t::model_value_str(const pstring &entity, const pstring defval) const
+ATTR_COLD const pstring param_model_t::model_value_str(const pstring &entity)
{
- return setup_t::model_value_str(this->Value(), entity, defval);
+ if (m_map.size() == 0)
+ netlist().setup().model_parse(this->Value(), m_map);
+ return netlist().setup().model_value_str(m_map, entity);
}
-ATTR_COLD nl_double param_model_t::model_value(const pstring &entity, const nl_double defval) const
+ATTR_COLD nl_double param_model_t::model_value(const pstring &entity)
{
- return setup_t::model_value(this->Value(), entity, defval);
+ if (m_map.size() == 0)
+ netlist().setup().model_parse(this->Value(), m_map);
+ return netlist().setup().model_value(m_map, entity);
}
} // namespace
diff --git a/src/emu/netlist/nl_base.h b/src/lib/netlist/nl_base.h
index bd8ef6b48be..4bc152e253f 100644
--- a/src/emu/netlist/nl_base.h
+++ b/src/lib/netlist/nl_base.h
@@ -159,6 +159,7 @@
#include "nl_time.h"
#include "nl_util.h"
#include "plib/pstate.h"
+#include "plib/pfmtlog.h"
// ----------------------------------------------------------------------------------------
// Type definitions
@@ -241,7 +242,7 @@ typedef UINT8 netlist_sig_t;
, _priv)
#define NETLIB_LOGIC_FAMILY(_fam) \
-virtual logic_family_desc_t *default_logic_family() \
+virtual logic_family_desc_t *default_logic_family() \
{ \
return netlist_family_ ## _fam; \
}
@@ -252,11 +253,11 @@ virtual logic_family_desc_t *default_logic_family() \
//============================================================
#if defined(MAME_DEBUG)
-#define nl_assert(x) do { if (!(x)) throw fatalerror_e("assert: %s:%d: %s", __FILE__, __LINE__, #x); } while (0)
+#define nl_assert(x) do { if (1) if (!(x)) throw fatalerror_e(pfmt("assert: {1}:{2}: {3}")(__FILE__)(__LINE__)(#x) ); } while (0)
#else
-#define nl_assert(x) do { if (0) if (!(x)) throw fatalerror_e("assert: %s:%d: %s", __FILE__, __LINE__, #x); } while (0)
+#define nl_assert(x) do { if (0) if (!(x)) throw fatalerror_e(pfmt("assert: {1}:{2}: {3}")(__FILE__)(__LINE__)(#x) ); } while (0)
#endif
-#define nl_assert_always(x, msg) do { if (!(x)) throw fatalerror_e("Fatal error: %s\nCaused by assert: %s:%d: %s", msg, __FILE__, __LINE__, #x); } while (0)
+#define nl_assert_always(x, msg) do { if (!(x)) throw fatalerror_e(pfmt("Fatal error: {1}\nCaused by assert: {2}:{3}: {4}")(msg)(__FILE__)(__LINE__)(#x)); } while (0)
// -----------------------------------------------------------------------------
@@ -284,16 +285,11 @@ namespace netlist
// Exceptions
//============================================================
- class fatalerror_e : public std::exception
+ class fatalerror_e : public pexception
{
public:
- fatalerror_e(const char *format, ...) ATTR_PRINTF(2,3);
- fatalerror_e(const char *format, va_list ap);
+ fatalerror_e(const pstring &text) : pexception(text) { }
virtual ~fatalerror_e() throw() {}
-
- const pstring &text() { return m_text; }
- private:
- pstring m_text;
};
class logic_output_t;
@@ -306,6 +302,12 @@ namespace netlist
class param_model_t;
// -----------------------------------------------------------------------------
+ // model_map_t
+ // -----------------------------------------------------------------------------
+
+ typedef phashmap_t<pstring, pstring> model_map_t;
+
+ // -----------------------------------------------------------------------------
// netlist_output_family_t
// -----------------------------------------------------------------------------
@@ -324,8 +326,6 @@ namespace netlist
nl_double m_R_high;
bool m_is_static;
-
- static logic_family_desc_t *from_model(const pstring &model);
};
class logic_family_t
@@ -390,8 +390,8 @@ namespace netlist
VCCS, // Voltage controlled current source
LVCCS, // Voltage controlled current source (Current limited)
CCCS, // Current controlled current source
- VS, // Voltage Source
- CS, // Current Source
+ VS, // Voltage Source
+ CS, // Current Source
GND // GND device
};
@@ -445,7 +445,7 @@ namespace netlist
ATTR_COLD void init_object(core_device_t &dev, const pstring &aname);
- core_device_t &device() const { return *m_device; }
+ ATTR_HOT core_device_t &device() const { return *m_device; }
private:
core_device_t * m_device;
};
@@ -946,6 +946,7 @@ namespace netlist
param_t::save_register();
}
+ virtual void changed() { }
C m_param;
private:
};
@@ -968,9 +969,16 @@ namespace netlist
ATTR_COLD param_model_t() : param_template_t<pstring, param_t::MODEL>() { }
/* these should be cached! */
- ATTR_COLD nl_double model_value(const pstring &entity, const nl_double defval = 0.0) const;
- ATTR_COLD const pstring model_value_str(const pstring &entity, const pstring defval = "") const;
- ATTR_COLD const pstring model_type() const;
+ ATTR_COLD nl_double model_value(const pstring &entity);
+ ATTR_COLD const pstring model_value_str(const pstring &entity);
+ ATTR_COLD const pstring model_type();
+ protected:
+ void changed()
+ {
+ m_map.clear();
+ }
+ private:
+ model_map_t m_map;
};
// -----------------------------------------------------------------------------
@@ -1012,7 +1020,6 @@ namespace netlist
ATTR_HOT netlist_sig_t INPLOGIC(const logic_input_t &inp) const
{
- //printf("%s %d\n", inp.name().cstr(), inp.state());
nl_assert(inp.state() != logic_t::STATE_INP_PASSIVE);
return inp.Q();
}
@@ -1145,7 +1152,7 @@ namespace netlist
// -----------------------------------------------------------------------------
- class netlist_t : public object_t, public pstate_manager_t
+ class netlist_t : public object_t, public pstate_manager_t, public plog_dispatch_intf
{
P_PREVENT_COPYING(netlist_t)
public:
@@ -1178,12 +1185,8 @@ namespace netlist
ATTR_COLD net_t *find_net(const pstring &name);
- ATTR_COLD void error(const char *format, ...) const ATTR_PRINTF(2,3);
- ATTR_COLD void warning(const char *format, ...) const ATTR_PRINTF(2,3);
- ATTR_COLD void log(const char *format, ...) const ATTR_PRINTF(2,3);
-
template<class _C>
- plist_t<_C *> get_device_list()
+ ATTR_COLD plist_t<_C *> get_device_list()
{
plist_t<_C *> tmp;
for (std::size_t i = 0; i < m_devices.size(); i++)
@@ -1196,7 +1199,7 @@ namespace netlist
}
template<class _C>
- _C *get_first_device()
+ ATTR_COLD _C *get_first_device()
{
for (std::size_t i = 0; i < m_devices.size(); i++)
{
@@ -1208,7 +1211,7 @@ namespace netlist
}
template<class _C>
- _C *get_single_device(const char *classname)
+ ATTR_COLD _C *get_single_device(const char *classname)
{
_C *ret = NULL;
for (std::size_t i = 0; i < m_devices.size(); i++)
@@ -1217,7 +1220,7 @@ namespace netlist
if (dev != NULL)
{
if (ret != NULL)
- this->error("more than one %s device found", classname);
+ this->log().fatal("more than one {1} device found", classname);
else
ret = dev;
}
@@ -1231,18 +1234,13 @@ namespace netlist
pnamedlist_t<core_device_t *> m_started_devices;
#endif
- protected:
+ ATTR_COLD plog_base<NL_DEBUG> &log() { return m_log; }
+ ATTR_COLD const plog_base<NL_DEBUG> &log() const { return m_log; }
- enum loglevel_e
- {
- NL_ERROR,
- NL_WARNING,
- NL_LOG
- };
+ protected:
- // any derived netlist must override this ...
- virtual void verror(const loglevel_e level,
- const char *format, va_list ap) const = 0;
+ // any derived netlist must override vlog inherited from plog_base
+ // virtual void vlog(const plog_level &l, const pstring &ls) = 0;
/* from netlist_object */
virtual void reset();
@@ -1260,7 +1258,7 @@ namespace netlist
netlist_time m_time;
bool m_use_deactivate;
- queue_t m_queue;
+ queue_t m_queue;
devices::NETLIB_NAME(mainclock) * m_mainclock;
@@ -1270,6 +1268,7 @@ namespace netlist
devices::NETLIB_NAME(netlistparams) *m_params;
setup_t *m_setup;
+ plog_base<NL_DEBUG> m_log;
};
// -----------------------------------------------------------------------------
@@ -1284,6 +1283,7 @@ namespace netlist
if (m_param != param)
{
m_param = param;
+ changed();
device().update_param();
}
}
@@ -1317,7 +1317,6 @@ namespace netlist
{
if (EXPECTED(!is_state(STATE_INP_PASSIVE)))
{
- //printf("inactivate %s\n", name().cstr());
set_state(STATE_INP_PASSIVE);
net().as_logic().dec_active(*this);
}
diff --git a/src/emu/netlist/nl_config.h b/src/lib/netlist/nl_config.h
index 5fceb40d3bf..41d2989bd2f 100644
--- a/src/emu/netlist/nl_config.h
+++ b/src/lib/netlist/nl_config.h
@@ -47,7 +47,7 @@
*/
// This will be autodetected
-//#define NL_PMF_TYPE 3
+// #define NL_PMF_TYPE 2
#define NL_PMF_TYPE_VIRTUAL 0
#define NL_PMF_TYPE_GNUC_PMF 1
@@ -66,18 +66,6 @@
#pragma GCC diagnostic ignored "-Wpmf-conversions"
#endif
-/*
- * This increases performance in circuits with a lot of gates
- * but is not guaranteed to be absolutely timing correct.
- *
- * Performance increase about 10% (breakout) to 20% (pong)
- *
- */
-
-
-// moved to parameter NETLIST.USE_DEACTIVATE
-// #define USE_DEACTIVE_DEVICE (0)
-
#define USE_TRUTHTABLE (1)
// The following adds about 10% performance ...
@@ -106,7 +94,6 @@
//============================================================
#define USE_MATRIX_GS (0)
-#define USE_PIVOT_SEARCH (0)
#define USE_GABS (1)
// savings are eaten up by effort
// FIXME: Convert into solver parameter
@@ -117,15 +104,9 @@
// DEBUGGING
//============================================================
-#define NL_VERBOSE (0)
+#define NL_DEBUG (false)
#define NL_KEEP_STATISTICS (0)
-#if (NL_VERBOSE)
- #define NL_VERBOSE_OUT(x) netlist().log x
-#else
- #define NL_VERBOSE_OUT(x) do { if(0) netlist().log x ; } while (0)
-#endif
-
//============================================================
// General Macros
//============================================================
diff --git a/src/emu/netlist/nl_dice_compat.h b/src/lib/netlist/nl_dice_compat.h
index 70661be23a7..70661be23a7 100644
--- a/src/emu/netlist/nl_dice_compat.h
+++ b/src/lib/netlist/nl_dice_compat.h
diff --git a/src/emu/netlist/nl_factory.c b/src/lib/netlist/nl_factory.c
index 665e1a74f40..5f6762c4d05 100644
--- a/src/emu/netlist/nl_factory.c
+++ b/src/lib/netlist/nl_factory.c
@@ -34,18 +34,19 @@ ATTR_COLD const pstring_list_t base_factory_t::def_params()
}
-factory_list_t::factory_list_t()
+factory_list_t::factory_list_t( setup_t &setup)
+: m_setup(setup)
{
}
factory_list_t::~factory_list_t()
{
- for (std::size_t i=0; i < m_list.size(); i++)
+ for (std::size_t i=0; i < size(); i++)
{
- base_factory_t *p = m_list[i];
+ base_factory_t *p = value_at(i);
pfree(p);
}
- m_list.clear();
+ clear();
}
#if 0
@@ -65,25 +66,26 @@ device_t *factory_list_t::new_device_by_classname(const pstring &classname) cons
}
#endif
-device_t *factory_list_t::new_device_by_name(const pstring &name, setup_t &setup) const
+void factory_list_t::error(const pstring &s)
+{
+ m_setup.log().fatal("{1}", s);
+}
+
+device_t *factory_list_t::new_device_by_name(const pstring &name)
{
- base_factory_t *f = factory_by_name(name, setup);
+ base_factory_t *f = factory_by_name(name);
return f->Create();
}
-base_factory_t * factory_list_t::factory_by_name(const pstring &name, setup_t &setup) const
+base_factory_t * factory_list_t::factory_by_name(const pstring &name)
{
- for (std::size_t i=0; i < m_list.size(); i++)
+ if (contains(name))
+ return (*this)[name];
+ else
{
- base_factory_t *p = m_list[i];
- if (p->name() == name)
- {
- return p;
- }
- p++;
+ m_setup.log().fatal("Class {1} not found!\n", name);
+ return NULL; // appease code analysis
}
- setup.netlist().error("Class %s not found!\n", name.cstr());
- return NULL; // appease code analysis
}
}
diff --git a/src/emu/netlist/nl_factory.h b/src/lib/netlist/nl_factory.h
index c3e8577743a..b758941dd71 100644
--- a/src/emu/netlist/nl_factory.h
+++ b/src/lib/netlist/nl_factory.h
@@ -62,35 +62,34 @@ namespace netlist
}
};
- class factory_list_t
+ class factory_list_t : public phashmap_t<pstring, base_factory_t *>
{
public:
- typedef plist_t<base_factory_t *> list_t;
-
- factory_list_t();
+ factory_list_t(setup_t &m_setup);
~factory_list_t();
template<class _C>
ATTR_COLD void register_device(const pstring &name, const pstring &classname,
const pstring &def_param)
{
- m_list.add(palloc(factory_t< _C >(name, classname, def_param)));
+ if (!add(name, palloc(factory_t< _C >(name, classname, def_param))))
+ error("factory already contains " + name);
}
ATTR_COLD void register_device(base_factory_t *factory)
{
- m_list.add(factory);
+ if (!add(factory->name(), factory))
+ error("factory already contains " + factory->name());
}
//ATTR_COLD device_t *new_device_by_classname(const pstring &classname) const;
- ATTR_COLD device_t *new_device_by_name(const pstring &name, setup_t &setup) const;
- ATTR_COLD base_factory_t * factory_by_name(const pstring &name, setup_t &setup) const;
-
- const list_t &list() { return m_list; }
+ ATTR_COLD device_t *new_device_by_name(const pstring &name);
+ ATTR_COLD base_factory_t * factory_by_name(const pstring &name);
private:
- list_t m_list;
+ void error(const pstring &s);
+ setup_t &m_setup;
};
}
diff --git a/src/emu/netlist/nl_lists.h b/src/lib/netlist/nl_lists.h
index b861d1e84e2..b861d1e84e2 100644
--- a/src/emu/netlist/nl_lists.h
+++ b/src/lib/netlist/nl_lists.h
diff --git a/src/emu/netlist/nl_parser.c b/src/lib/netlist/nl_parser.c
index efdac63c182..312410fafc6 100644
--- a/src/emu/netlist/nl_parser.c
+++ b/src/lib/netlist/nl_parser.c
@@ -9,8 +9,12 @@
#include "nl_factory.h"
#include "devices/nld_truthtable.h"
-//#undef NL_VERBOSE_OUT
-//#define NL_VERBOSE_OUT(x) printf x
+// for now, make buggy GCC/Mingw STFU about I64FMT
+#if (defined(__MINGW32__) && (__GNUC__ >= 5))
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wformat"
+#pragma GCC diagnostic ignored "-Wformat-extra-args"
+#endif
namespace netlist
{
@@ -18,23 +22,17 @@ namespace netlist
// A netlist parser
// ----------------------------------------------------------------------------------------
-ATTR_COLD void parser_t::verror(pstring msg, int line_num, pstring line)
+ATTR_COLD void parser_t::verror(const pstring &msg, int line_num, const pstring &line)
{
- m_setup.netlist().error("line %d: error: %s\n\t\t%s\n", line_num,
- msg.cstr(), line.cstr());
+ m_setup.log().fatal("line {1}: error: {2}\n\t\t{3}\n", line_num,
+ msg, line);
//throw error;
}
-bool parser_t::parse(const char *buf, const pstring nlname)
+bool parser_t::parse(const pstring nlname)
{
- ppreprocessor prepro;
-
- pstring processed = prepro.process(buf);
- m_buf = processed.cstr();
-
- reset(m_buf);
set_identifier_chars("abcdefghijklmnopqrstuvwvxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890_.-");
set_number_chars(".0123456789", "0123456789eE-."); //FIXME: processing of numbers
char ws[5];
@@ -76,7 +74,7 @@ bool parser_t::parse(const char *buf, const pstring nlname)
if (token.is_type(ENDOFFILE))
{
return false;
- //error("EOF while searching for <%s>", nlname.cstr());
+ //error("EOF while searching for <{1}>", nlname);
}
if (token.is(m_tok_NETLIST_END))
@@ -117,7 +115,7 @@ void parser_t::parse_netlist(ATTR_UNUSED const pstring &nlname)
return;
require_token(m_tok_param_left);
- NL_VERBOSE_OUT(("Parser: Device: %s\n", token.str().cstr()));
+ m_setup.log().debug("Parser: Device: {1}\n", token.str());
if (token.is(m_tok_ALIAS))
net_alias();
@@ -189,7 +187,7 @@ void parser_t::net_truthtable_start()
else if (token.is(m_tok_TT_FAMILY))
{
require_token(m_tok_param_left);
- ttd->m_family = netlist::logic_family_desc_t::from_model(m_setup.get_model_str(get_string()));
+ ttd->m_family = m_setup.family_from_model(get_string());
require_token(m_tok_param_right);
}
else
@@ -278,7 +276,7 @@ void parser_t::net_alias()
require_token(m_tok_param_right);
- NL_VERBOSE_OUT(("Parser: Alias: %s %s\n", alias.cstr(), out.cstr()));
+ m_setup.log().debug("Parser: Alias: {1} {2}\n", alias, out);
m_setup.register_alias(alias, out);
}
@@ -291,12 +289,12 @@ void parser_t::net_c()
{
pstring t1 = get_identifier();
m_setup.register_link(first , t1);
- NL_VERBOSE_OUT(("Parser: Connect: %s %s\n", first.cstr(), t1.cstr()));
+ m_setup.log().debug("Parser: Connect: {1} {2}\n", first, t1);
token_t n = get_token();
if (n.is(m_tok_param_right))
break;
if (!n.is(m_tok_comma))
- error("expected a comma, found <%s>", n.str().cstr());
+ error(pfmt("expected a comma, found <{1}>")(n.str()) );
}
}
@@ -316,15 +314,15 @@ void parser_t::dippins()
if (n.is(m_tok_param_right))
break;
if (!n.is(m_tok_comma))
- error("expected a comma, found <%s>", n.str().cstr());
+ error(pfmt("expected a comma, found <{1}>")(n.str()) );
}
if ((pins.size() % 2) == 1)
error("You must pass an equal number of pins to DIPPINS");
unsigned n = pins.size();
for (unsigned i = 0; i < n / 2; i++)
{
- m_setup.register_alias(pstring::sprintf("%d", i+1), pins[i*2]);
- m_setup.register_alias(pstring::sprintf("%d", n-i), pins[i*2 + 1]);
+ m_setup.register_alias(pfmt("{1}")(i+1), pins[i*2]);
+ m_setup.register_alias(pfmt("{1}")(n-i), pins[i*2 + 1]);
}
}
@@ -336,14 +334,14 @@ void parser_t::netdev_param()
token_t tok = get_token();
if (tok.is_type(STRING))
{
- NL_VERBOSE_OUT(("Parser: Param: %s %s\n", param.cstr(), tok.str().cstr()));
+ m_setup.log().debug("Parser: Param: {1} {2}\n", param, tok.str());
m_setup.register_param(param, tok.str());
}
else
{
nl_double val = eval_param(tok);
- NL_VERBOSE_OUT(("Parser: Param: %s %f\n", param.cstr(), val));
- m_setup.register_param(param, val);
+ m_setup.log().debug("Parser: Param: {1} {2}\n", param, val);
+ m_setup.register_param(param, val);
}
require_token(m_tok_param_right);
}
@@ -360,7 +358,7 @@ void parser_t::device(const pstring &dev_type)
}
else
{
- base_factory_t *f = m_setup.factory().factory_by_name(dev_type, m_setup);
+ base_factory_t *f = m_setup.factory().factory_by_name(dev_type);
device_t *dev;
pstring_list_t termlist = f->term_param_list();
pstring_list_t def_params = f->def_params();
@@ -372,14 +370,14 @@ void parser_t::device(const pstring &dev_type)
dev = f->Create();
m_setup.register_dev(dev, devname);
- NL_VERBOSE_OUT(("Parser: IC: %s\n", devname.cstr()));
+ m_setup.log().debug("Parser: IC: {1}\n", devname);
cnt = 0;
while (cnt < def_params.size())
{
pstring paramfq = devname + "." + def_params[cnt];
- NL_VERBOSE_OUT(("Defparam: %s\n", paramfq.cstr()));
+ m_setup.log().debug("Defparam: {1}\n", paramfq);
require_token(m_tok_comma);
token_t tok = get_token();
if (tok.is_type(STRING))
@@ -406,7 +404,7 @@ void parser_t::device(const pstring &dev_type)
tok = get_token();
}
if (cnt != termlist.size())
- m_setup.netlist().error("netlist: input count mismatch for %s - expected %" SIZETFMT " found %" SIZETFMT "\n", devname.cstr(), SIZET_PRINTF(termlist.size()), SIZET_PRINTF(cnt));
+ m_setup.log().fatal("netlist: input count mismatch for {1} - expected {2} found {3}\n", devname, termlist.size(), cnt);
require_token(tok, m_tok_param_right);
}
}
@@ -427,7 +425,6 @@ nl_double parser_t::eval_param(const token_t tok)
nl_double ret;
pstring val;
- //printf("param %s\n", tok.m_token.cstr());
for (i=1; i<6;i++)
if (tok.str().equals(macs[i]))
f = i;
@@ -459,10 +456,14 @@ nl_double parser_t::eval_param(const token_t tok)
ret = val.as_double(&e);
if (e)
- error("Error with parameter ...\n");
+ fatal("Error with parameter ...\n");
if (f>0)
require_token(m_tok_param_right);
return ret * facs[f];
#endif
}
}
+
+#if (defined(__MINGW32__) && (__GNUC__ >= 5))
+#pragma GCC diagnostic pop
+#endif
diff --git a/src/emu/netlist/nl_parser.h b/src/lib/netlist/nl_parser.h
index 89c2ba4e1e1..73c6cf66837 100644
--- a/src/emu/netlist/nl_parser.h
+++ b/src/lib/netlist/nl_parser.h
@@ -18,11 +18,12 @@ namespace netlist
{
P_PREVENT_COPYING(parser_t)
public:
- parser_t(setup_t &setup)
- : ptokenizer(), m_setup(setup), m_buf(NULL) {}
+ parser_t(pistream &strm, setup_t &setup)
+ : ptokenizer(strm), m_setup(setup), m_buf(NULL) {}
- bool parse(const char *buf, const pstring nlname = "");
+ bool parse(const pstring nlname = "");
+ protected:
void parse_netlist(const pstring &nlname);
void net_alias();
void dippins();
@@ -38,11 +39,10 @@ namespace netlist
void net_local_source();
void net_truthtable_start();
- protected:
/* for debugging messages */
netlist_t &netlist() { return m_setup.netlist(); }
- virtual void verror(pstring msg, int line_num, pstring line);
+ virtual void verror(const pstring &msg, int line_num, const pstring &line);
private:
nl_double eval_param(const token_t tok);
diff --git a/src/emu/netlist/nl_setup.c b/src/lib/netlist/nl_setup.c
index de5f377a548..94cb85ced03 100644
--- a/src/emu/netlist/nl_setup.c
+++ b/src/lib/netlist/nl_setup.c
@@ -5,9 +5,10 @@
*
*/
-#include <solver/nld_solver.h>
#include <cstdio>
+#include "solver/nld_solver.h"
+
#include "plib/palloc.h"
#include "nl_base.h"
#include "nl_setup.h"
@@ -30,6 +31,7 @@ static NETLIST_START(base)
LOCAL_SOURCE(TTL74XX_lib)
LOCAL_SOURCE(CD4XXX_lib)
LOCAL_SOURCE(OPAMP_lib)
+ LOCAL_SOURCE(otheric_lib)
INCLUDE(diode_models);
INCLUDE(bjt_models);
@@ -37,6 +39,7 @@ static NETLIST_START(base)
INCLUDE(TTL74XX_lib);
INCLUDE(CD4XXX_lib);
INCLUDE(OPAMP_lib);
+ INCLUDE(otheric_lib);
NETLIST_END()
@@ -52,7 +55,7 @@ setup_t::setup_t(netlist_t *netlist)
, m_proxy_cnt(0)
{
netlist->set_setup(this);
- m_factory = palloc(factory_list_t);
+ m_factory = palloc(factory_list_t(*this));
}
void setup_t::init()
@@ -106,14 +109,14 @@ device_t *setup_t::register_dev(device_t *dev, const pstring &name)
dev->init(netlist(), fqn);
if (!(netlist().m_devices.add(dev, false)==true))
- netlist().error("Error adding %s to device list\n", name.cstr());
+ log().fatal("Error adding {1} to device list\n", name);
return dev;
}
void setup_t::register_lib_entry(const pstring &name)
{
if (m_lib.contains(name))
- netlist().warning("Lib entry collection already contains %s. IGNORED", name.cstr());
+ log().warning("Lib entry collection already contains {1}. IGNORED", name);
else
m_lib.add(name);
}
@@ -129,23 +132,29 @@ device_t *setup_t::register_dev(const pstring &classname, const pstring &name)
}
else
{
- device_t *dev = factory().new_device_by_name(classname, *this);
+ device_t *dev = factory().new_device_by_name(classname);
//device_t *dev = factory().new_device_by_classname(classname);
if (dev == NULL)
- netlist().error("Class %s not found!\n", classname.cstr());
+ log().fatal("Class {1} not found!\n", classname);
return register_dev(dev, name);
}
}
-void setup_t::register_model(const pstring &model)
+void setup_t::register_model(const pstring &model_in)
{
- m_models.add(model);
+ int pos = model_in.find(" ");
+ if (pos < 0)
+ log().fatal("Unable to parse model: {1}", model_in);
+ pstring model = model_in.left(pos).trim().ucase();
+ pstring def = model_in.substr(pos + 1).trim();
+ if (!m_models.add(model, def))
+ log().fatal("Model already exists: {1}", model_in);
}
void setup_t::register_alias_nofqn(const pstring &alias, const pstring &out)
{
if (!m_alias.add(alias, out))
- netlist().error("Error adding alias %s to alias list\n", alias.cstr());
+ log().fatal("Error adding alias {1} to alias list\n", alias);
}
void setup_t::register_alias(const pstring &alias, const pstring &out)
@@ -159,12 +168,12 @@ void setup_t::register_dippins_arr(const pstring &terms)
{
pstring_list_t list(terms,", ");
if (list.size() == 0 || (list.size() % 2) == 1)
- netlist().error("You must pass an equal number of pins to DIPPINS");
+ log().fatal("You must pass an equal number of pins to DIPPINS");
unsigned n = list.size();
for (unsigned i = 0; i < n / 2; i++)
{
- register_alias(pstring::sprintf("%d", i+1), list[i * 2]);
- register_alias(pstring::sprintf("%d", n-i), list[i * 2 + 1]);
+ register_alias(pfmt("{1}")(i+1), list[i * 2]);
+ register_alias(pfmt("{1}")(n-i), list[i * 2 + 1]);
}
}
@@ -190,29 +199,10 @@ pstring setup_t::objtype_as_astr(object_t &in) const
return "QUEUE";
}
// FIXME: noreturn
- netlist().error("Unknown object type %d\n", in.type());
+ log().fatal("Unknown object type {1}\n", (unsigned) in.type());
return "Error";
}
-const pstring setup_t::get_model_str(const pstring val) const
-{
- if (val.startsWith(".model ") || val.find("(") >= 0)
- {
- return val;
- }
- else
- {
- pstring search = (".model " + val + " ").ucase();
- for (std::size_t i=0; i < m_models.size(); i++)
- {
- if (m_models[i].ucase().startsWith(search))
- return m_models[i];
- }
- netlist().error("Model %s not found\n", val.cstr());
- return ""; /* please compiler */
- }
-}
-
void setup_t::register_object(device_t &dev, const pstring &name, object_t &obj)
{
@@ -230,14 +220,14 @@ void setup_t::register_object(device_t &dev, const pstring &name, object_t &obj)
else if (obj.isFamily(terminal_t::ANALOG))
dynamic_cast<analog_output_t &>(term).init_object(dev, dev.name() + "." + name);
else
- netlist().error("Error adding %s %s to terminal list, neither LOGIC nor ANALOG\n", objtype_as_astr(term).cstr(), term.name().cstr());
+ log().fatal("Error adding {1} {2} to terminal list, neither LOGIC nor ANALOG\n", objtype_as_astr(term), term.name());
}
else
term.init_object(dev, dev.name() + "." + name);
- if (!(m_terminals.add(&term, false)==true))
- netlist().error("Error adding %s %s to terminal list\n", objtype_as_astr(term).cstr(), term.name().cstr());
- NL_VERBOSE_OUT(("%s %s\n", objtype_as_astr(term).cstr(), name.cstr()));
+ if (!m_terminals.add(term.name(), &term))
+ log().fatal("Error adding {1} {2} to terminal list\n", objtype_as_astr(term), term.name());
+ log().debug("{1} {2}\n", objtype_as_astr(term), name);
}
break;
case terminal_t::NET:
@@ -245,7 +235,7 @@ void setup_t::register_object(device_t &dev, const pstring &name, object_t &obj)
case terminal_t::PARAM:
{
param_t &param = dynamic_cast<param_t &>(obj);
- //printf("name: %s\n", name.cstr());
+ //printf("name: {1}\n", name);
if (m_params_temp.contains(name))
{
const pstring val = m_params_temp[name];
@@ -253,20 +243,20 @@ void setup_t::register_object(device_t &dev, const pstring &name, object_t &obj)
{
case param_t::DOUBLE:
{
- NL_VERBOSE_OUT(("Found parameter ... %s : %s\n", name.cstr(), val.cstr()));
+ log().debug("Found parameter ... {1} : {1}\n", name, val);
double vald = 0;
- if (std::sscanf(val.cstr(), "%lf", &vald) != 1)
- netlist().error("Invalid number conversion %s : %s\n", name.cstr(), val.cstr());
+ if (sscanf(val.cstr(), "%lf", &vald) != 1)
+ log().fatal("Invalid number conversion {1} : {2}\n", name, val);
dynamic_cast<param_double_t &>(param).initial(vald);
}
break;
case param_t::INTEGER:
case param_t::LOGIC:
{
- NL_VERBOSE_OUT(("Found parameter ... %s : %s\n", name.cstr(), val.cstr()));
+ log().debug("Found parameter ... {1} : {2}\n", name, val);
double vald = 0;
- if (std::sscanf(val.cstr(), "%lf", &vald) != 1)
- netlist().error("Invalid number conversion %s : %s\n", name.cstr(), val.cstr());
+ if (sscanf(val.cstr(), "%lf", &vald) != 1)
+ log().fatal("Invalid number conversion {1} : {2}\n", name, val);
dynamic_cast<param_int_t &>(param).initial((int) vald);
}
break;
@@ -276,24 +266,25 @@ void setup_t::register_object(device_t &dev, const pstring &name, object_t &obj)
}
break;
case param_t::MODEL:
- dynamic_cast<param_model_t &>(param).initial(get_model_str(val));
+ //dynamic_cast<param_model_t &>(param).initial(val);
+ dynamic_cast<param_model_t &>(param).initial(val);
break;
default:
- netlist().error("Parameter is not supported %s : %s\n", name.cstr(), val.cstr());
+ log().fatal("Parameter is not supported {1} : {2}\n", name, val);
}
}
if (!m_params.add(param.name(), &param))
- netlist().error("Error adding parameter %s to parameter list\n", name.cstr());
+ log().fatal("Error adding parameter {1} to parameter list\n", name);
}
break;
case terminal_t::DEVICE:
- netlist().error("Device registration not yet supported - %s\n", name.cstr());
+ log().fatal("Device registration not yet supported - {1}\n", name);
break;
case terminal_t::NETLIST:
- netlist().error("Netlist registration not yet supported - %s\n", name.cstr());
+ log().fatal("Netlist registration not yet supported - {1}\n", name);
break;
case terminal_t::QUEUE:
- netlist().error("QUEUE registration not yet supported - %s\n", name.cstr());
+ log().fatal("QUEUE registration not yet supported - {1}\n", name);
break;
}
}
@@ -302,7 +293,7 @@ void setup_t::register_link_arr(const pstring &terms)
{
pstring_list_t list(terms,", ");
if (list.size() < 2)
- netlist().error("You must pass at least 2 terminals to NET_C");
+ log().fatal("You must pass at least 2 terminals to NET_C");
for (std::size_t i = 1; i < list.size(); i++)
{
register_link(list[0], list[i]);
@@ -313,7 +304,7 @@ void setup_t::register_link_arr(const pstring &terms)
void setup_t::register_link_fqn(const pstring &sin, const pstring &sout)
{
link_t temp = link_t(sin, sout);
- NL_VERBOSE_OUT(("link %s <== %s\n", sin.cstr(), sout.cstr()));
+ log().debug("link {1} <== {2}\n", sin, sout);
m_links.add(temp);
}
@@ -330,20 +321,20 @@ void setup_t::remove_connections(const pstring pin)
{
if ((m_links[i].e1 == pinfn) || (m_links[i].e2 == pinfn))
{
- netlist().log("removing connection: %s <==> %s\n", m_links[i].e1.cstr(), m_links[i].e2.cstr());
+ log().verbose("removing connection: {1} <==> {2}\n", m_links[i].e1, m_links[i].e2);
m_links.remove_at(i);
found = true;
}
}
if (!found)
- netlist().error("remove_connections: found no occurrence of %s\n", pin.cstr());
+ log().fatal("remove_connections: found no occurrence of {1}\n", pin);
}
void setup_t::register_frontier(const pstring attach, const double r_IN, const double r_OUT)
{
static int frontier_cnt = 0;
- pstring frontier_name = pstring::sprintf("frontier_%d", frontier_cnt);
+ pstring frontier_name = pfmt("frontier_{1}")(frontier_cnt);
frontier_cnt++;
device_t *front = register_dev("FRONTIER_DEV", frontier_name);
register_param(frontier_name + ".RIN", r_IN);
@@ -365,7 +356,7 @@ void setup_t::register_frontier(const pstring attach, const double r_IN, const d
}
}
if (!found)
- netlist().error("Frontier setup: found no occurrence of %s\n", attach.cstr());
+ log().fatal("Frontier setup: found no occurrence of {1}\n", attach);
register_link(attach, frontier_name + ".Q");
}
@@ -373,7 +364,7 @@ void setup_t::register_frontier(const pstring attach, const double r_IN, const d
void setup_t::register_param(const pstring &param, const double value)
{
// FIXME: there should be a better way
- register_param(param, pstring::sprintf("%.9e", value));
+ register_param(param, pfmt("{1}").e(value,".9"));
}
void setup_t::register_param(const pstring &param, const pstring &value)
@@ -384,11 +375,11 @@ void setup_t::register_param(const pstring &param, const pstring &value)
if (idx < 0)
{
if (!m_params_temp.add(fqn, value))
- netlist().error("Unexpected error adding parameter %s to parameter list\n", param.cstr());
+ log().fatal("Unexpected error adding parameter {1} to parameter list\n", param);
}
else
{
- netlist().warning("Overwriting %s old <%s> new <%s>\n", fqn.cstr(), m_params_temp.value_at(idx).cstr(), value.cstr());
+ log().warning("Overwriting {1} old <{2}> new <{3}>\n", fqn, m_params_temp.value_at(idx), value);
m_params_temp[fqn] = value;
}
}
@@ -405,55 +396,60 @@ const pstring setup_t::resolve_alias(const pstring &name) const
temp = (p>=0 ? m_alias.value_at(p) : "");
} while (temp != "");
- NL_VERBOSE_OUT(("%s==>%s\n", name.cstr(), ret.cstr()));
+ log().debug("{1}==>{2}\n", name, ret);
return ret;
}
core_terminal_t *setup_t::find_terminal(const pstring &terminal_in, bool required)
{
const pstring &tname = resolve_alias(terminal_in);
- core_terminal_t *ret;
+ int ret;
- ret = m_terminals.find_by_name(tname);
+ ret = m_terminals.index_of(tname);
/* look for default */
- if (ret == NULL)
+ if (ret < 0)
{
/* look for ".Q" std output */
- pstring s = tname + ".Q";
- ret = m_terminals.find_by_name(s);
+ ret = m_terminals.index_of(tname + ".Q");
}
- if (ret == NULL && required)
- netlist().error("terminal %s(%s) not found!\n", terminal_in.cstr(), tname.cstr());
- if (ret != NULL)
- NL_VERBOSE_OUT(("Found input %s\n", tname.cstr()));
- return ret;
+
+ core_terminal_t *term = (ret < 0 ? NULL : m_terminals.value_at(ret));
+
+ if (term == NULL && required)
+ log().fatal("terminal {1}({2}) not found!\n", terminal_in, tname);
+ if (term != NULL)
+ log().debug("Found input {1}\n", tname);
+ return term;
}
core_terminal_t *setup_t::find_terminal(const pstring &terminal_in, object_t::type_t atype, bool required)
{
const pstring &tname = resolve_alias(terminal_in);
- core_terminal_t *ret;
+ int ret;
- ret = m_terminals.find_by_name(tname);
+ ret = m_terminals.index_of(tname);
/* look for default */
- if (ret == NULL && atype == object_t::OUTPUT)
+ if (ret < 0 && atype == object_t::OUTPUT)
{
/* look for ".Q" std output */
- pstring s = tname + ".Q";
- ret = m_terminals.find_by_name(s);
+ ret = m_terminals.index_of(tname + ".Q");
}
- if (ret == NULL && required)
- netlist().error("terminal %s(%s) not found!\n", terminal_in.cstr(), tname.cstr());
- if (ret != NULL && ret->type() != atype)
+ if (ret < 0 && required)
+ log().fatal("terminal {1}({2}) not found!\n", terminal_in, tname);
+
+ core_terminal_t *term = (ret < 0 ? NULL : m_terminals.value_at(ret));
+
+ if (term != NULL && term->type() != atype)
{
if (required)
- netlist().error("object %s(%s) found but wrong type\n", terminal_in.cstr(), tname.cstr());
+ log().fatal("object {1}({2}) found but wrong type\n", terminal_in, tname);
else
- ret = NULL;
+ term = NULL;
}
- if (ret != NULL)
- NL_VERBOSE_OUT(("Found input %s\n", tname.cstr()));
- return ret;
+ if (term != NULL)
+ log().debug("Found input {1}\n", tname);
+
+ return term;
}
param_t *setup_t::find_param(const pstring &param_in, bool required)
@@ -465,9 +461,9 @@ param_t *setup_t::find_param(const pstring &param_in, bool required)
ret = m_params.index_of(outname);
if (ret < 0 && required)
- netlist().error("parameter %s(%s) not found!\n", param_in_fqn.cstr(), outname.cstr());
+ log().fatal("parameter {1}({2}) not found!\n", param_in_fqn, outname);
if (ret != -1)
- NL_VERBOSE_OUT(("Found parameter %s\n", outname.cstr()));
+ log().debug("Found parameter {1}\n", outname);
return (ret == -1 ? NULL : m_params.value_at(ret));
}
@@ -476,7 +472,7 @@ devices::nld_base_proxy *setup_t::get_d_a_proxy(core_terminal_t &out)
{
nl_assert(out.isFamily(terminal_t::LOGIC));
- //printf("proxy for %s\n", out.name().cstr());;
+ //printf("proxy for {1}\n", out.name());;
logic_output_t &out_cast = dynamic_cast<logic_output_t &>(out);
devices::nld_base_proxy *proxy = out_cast.get_proxy();
@@ -484,7 +480,7 @@ devices::nld_base_proxy *setup_t::get_d_a_proxy(core_terminal_t &out)
{
// create a new one ...
devices::nld_base_d_to_a_proxy *new_proxy = out_cast.logic_family()->create_d_a_proxy(&out_cast);
- pstring x = pstring::sprintf("proxy_da_%s_%d", out.name().cstr(), m_proxy_cnt);
+ pstring x = pfmt("proxy_da_{1}_{2}")(out.name())(m_proxy_cnt);
m_proxy_cnt++;
register_dev(new_proxy, x);
@@ -498,7 +494,7 @@ devices::nld_base_proxy *setup_t::get_d_a_proxy(core_terminal_t &out)
core_terminal_t *p = out.net().m_core_terms[i];
p->clear_net(); // de-link from all nets ...
if (!connect(new_proxy->proxy_term(), *p))
- netlist().error("Error connecting %s to %s\n", new_proxy->proxy_term().name().cstr(), (*p).name().cstr());
+ log().fatal("Error connecting {1} to {2}\n", new_proxy->proxy_term().name(), (*p).name());
}
out.net().m_core_terms.clear(); // clear the list
#endif
@@ -516,7 +512,7 @@ void setup_t::connect_input_output(core_terminal_t &in, core_terminal_t &out)
logic_input_t &incast = dynamic_cast<logic_input_t &>(in);
devices::nld_a_to_d_proxy *proxy = palloc(devices::nld_a_to_d_proxy(&incast));
incast.set_proxy(proxy);
- pstring x = pstring::sprintf("proxy_ad_%s_%d", in.name().cstr(), m_proxy_cnt);
+ pstring x = pfmt("proxy_ad_{1}_{2}")(in.name())( m_proxy_cnt);
m_proxy_cnt++;
register_dev(proxy, x);
@@ -552,10 +548,10 @@ void setup_t::connect_terminal_input(terminal_t &term, core_terminal_t &inp)
else if (inp.isFamily(terminal_t::LOGIC))
{
logic_input_t &incast = dynamic_cast<logic_input_t &>(inp);
- NL_VERBOSE_OUT(("connect_terminal_input: connecting proxy\n"));
+ log().debug("connect_terminal_input: connecting proxy\n");
devices::nld_a_to_d_proxy *proxy = palloc(devices::nld_a_to_d_proxy(&incast));
incast.set_proxy(proxy);
- pstring x = pstring::sprintf("proxy_ad_%s_%d", inp.name().cstr(), m_proxy_cnt);
+ pstring x = pfmt("proxy_ad_{1}_{2}")(inp.name())(m_proxy_cnt);
m_proxy_cnt++;
register_dev(proxy, x);
@@ -571,7 +567,7 @@ void setup_t::connect_terminal_input(terminal_t &term, core_terminal_t &inp)
}
else
{
- netlist().error("Netlist: Severe Error");
+ log().fatal("Netlist: Severe Error");
}
}
@@ -579,7 +575,7 @@ void setup_t::connect_terminal_output(terminal_t &in, core_terminal_t &out)
{
if (out.isFamily(terminal_t::ANALOG))
{
- NL_VERBOSE_OUT(("connect_terminal_output: %s %s\n", in.name().cstr(), out.name().cstr()));
+ log().debug("connect_terminal_output: {1} {2}\n", in.name(), out.name());
/* no proxy needed, just merge existing terminal net */
if (in.has_net())
out.net().merge_net(&in.net());
@@ -588,14 +584,14 @@ void setup_t::connect_terminal_output(terminal_t &in, core_terminal_t &out)
}
else if (out.isFamily(terminal_t::LOGIC))
{
- NL_VERBOSE_OUT(("connect_terminal_output: connecting proxy\n"));
+ log().debug("connect_terminal_output: connecting proxy\n");
devices::nld_base_proxy *proxy = get_d_a_proxy(out);
connect_terminals(proxy->proxy_term(), in);
}
else
{
- netlist().error("Netlist: Severe Error");
+ log().fatal("Netlist: Severe Error");
}
}
@@ -606,22 +602,22 @@ void setup_t::connect_terminals(core_terminal_t &t1, core_terminal_t &t2)
if (t1.has_net() && t2.has_net())
{
- NL_VERBOSE_OUT(("T2 and T1 have net\n"));
+ log().debug("T2 and T1 have net\n");
t1.net().merge_net(&t2.net());
}
else if (t2.has_net())
{
- NL_VERBOSE_OUT(("T2 has net\n"));
+ log().debug("T2 has net\n");
t2.net().register_con(t1);
}
else if (t1.has_net())
{
- NL_VERBOSE_OUT(("T1 has net\n"));
+ log().debug("T1 has net\n");
t1.net().register_con(t2);
}
else
{
- NL_VERBOSE_OUT(("adding net ...\n"));
+ log().debug("adding net ...\n");
analog_net_t *anet = palloc(analog_net_t);
t1.set_net(*anet);
//m_netlist.solver()->m_nets.add(anet);
@@ -689,7 +685,7 @@ bool setup_t::connect_input_input(core_terminal_t &t1, core_terminal_t &t2)
bool setup_t::connect(core_terminal_t &t1_in, core_terminal_t &t2_in)
{
- NL_VERBOSE_OUT(("Connecting %s to %s\n", t1_in.name().cstr(), t2_in.name().cstr()));
+ log().debug("Connecting {1} to {2}\n", t1_in.name(), t2_in.name());
core_terminal_t &t1 = resolve_proxy(t1_in);
core_terminal_t &t2 = resolve_proxy(t2_in);
bool ret = true;
@@ -697,13 +693,13 @@ bool setup_t::connect(core_terminal_t &t1_in, core_terminal_t &t2_in)
if (t1.isType(core_terminal_t::OUTPUT) && t2.isType(core_terminal_t::INPUT))
{
if (t2.has_net() && t2.net().isRailNet())
- netlist().error("Input %s already connected\n", t2.name().cstr());
+ log().fatal("Input {1} already connected\n", t2.name());
connect_input_output(t2, t1);
}
else if (t1.isType(core_terminal_t::INPUT) && t2.isType(core_terminal_t::OUTPUT))
{
if (t1.has_net() && t1.net().isRailNet())
- netlist().error("Input %s already connected\n", t1.name().cstr());
+ log().fatal("Input {1} already connected\n", t1.name());
connect_input_output(t1, t2);
}
else if (t1.isType(core_terminal_t::OUTPUT) && t2.isType(core_terminal_t::TERMINAL))
@@ -732,7 +728,7 @@ bool setup_t::connect(core_terminal_t &t1_in, core_terminal_t &t2_in)
}
else
ret = false;
- //netlist().error("Connecting %s to %s not supported!\n", t1.name().cstr(), t2.name().cstr());
+ //netlist().error("Connecting {1} to {2} not supported!\n", t1.name(), t2.name());
return ret;
}
@@ -740,7 +736,7 @@ void setup_t::resolve_inputs()
{
bool has_twoterms = false;
- netlist().log("Resolving inputs ...");
+ log().verbose("Resolving inputs ...");
/* Netlist can directly connect input to input.
* We therefore first park connecting inputs and retry
@@ -758,25 +754,21 @@ void setup_t::resolve_inputs()
core_terminal_t *t2 = find_terminal(t2s);
if (connect(*t1, *t2))
- {
m_links.remove_at(li);
- }
else
- {
li++;
- }
}
tries--;
}
if (tries == 0)
{
for (std::size_t i = 0; i < m_links.size(); i++ )
- netlist().warning("Error connecting %s to %s\n", m_links[i].e1.cstr(), m_links[i].e2.cstr());
+ log().warning("Error connecting {1} to {2}\n", m_links[i].e1, m_links[i].e2);
- netlist().error("Error connecting -- bailing out\n");
+ log().fatal("Error connecting -- bailing out\n");
}
- netlist().log("deleting empty nets ...");
+ log().verbose("deleting empty nets ...");
// delete empty nets ... and save m_list ...
@@ -796,7 +788,7 @@ void setup_t::resolve_inputs()
for (std::size_t i=0; i < todelete.size(); i++)
{
- netlist().log("Deleting net %s ...", todelete[i]->name().cstr());
+ log().verbose("Deleting net {1} ...", todelete[i]->name());
netlist().m_nets.remove(todelete[i]);
if (!todelete[i]->isRailNet())
pfree(todelete[i]);
@@ -804,21 +796,21 @@ void setup_t::resolve_inputs()
pstring errstr("");
- netlist().log("looking for terminals not connected ...");
+ log().verbose("looking for terminals not connected ...");
for (std::size_t i = 0; i < m_terminals.size(); i++)
{
- if (!m_terminals[i]->has_net())
- errstr += pstring::sprintf("Found terminal %s without a net\n",
- m_terminals[i]->name().cstr());
- else if (m_terminals[i]->net().num_cons() == 0)
- netlist().warning("Found terminal %s without connections",
- m_terminals[i]->name().cstr());
+ core_terminal_t *term = m_terminals.value_at(i);
+ if (!term->has_net())
+ errstr += pfmt("Found terminal {1} without a net\n")(term->name());
+ else if (term->net().num_cons() == 0)
+ log().warning("Found terminal {1} without connections",
+ term->name());
}
if (errstr != "")
- netlist().error("%s", errstr.cstr());
+ log().fatal("{1}", errstr);
- netlist().log("looking for two terms connected to rail nets ...\n");
+ log().verbose("looking for two terms connected to rail nets ...\n");
// FIXME: doesn't find internal devices. This needs to be more clever
for (std::size_t i=0; i < netlist().m_devices.size(); i++)
{
@@ -828,21 +820,21 @@ void setup_t::resolve_inputs()
has_twoterms = true;
if (t->m_N.net().isRailNet() && t->m_P.net().isRailNet())
#if 0
- netlist().error("Found device %s connected only to railterminals %s/%s\n",
- t->name().cstr(), t->m_N.net().name().cstr(), t->m_P.net().name().cstr());
+ netlist().fatal("Found device {1} connected only to railterminals {2}/{3}\n",
+ t->name(), t->m_N.net().name(), t->m_P.net().name());
#else
- netlist().warning("Found device %s connected only to railterminals %s/%s\n",
- t->name().cstr(), t->m_N.net().name().cstr(), t->m_P.net().name().cstr());
+ log().warning("Found device {1} connected only to railterminals {2}/{3}\n",
+ t->name(), t->m_N.net().name(), t->m_P.net().name());
#endif
}
}
- netlist().log("initialize solver ...\n");
+ log().verbose("initialize solver ...\n");
if (netlist().solver() == NULL)
{
if (has_twoterms)
- netlist().error("No solver found for this net although analog elements are present\n");
+ log().fatal("No solver found for this net although analog elements are present\n");
}
else
netlist().solver()->post_start();
@@ -855,13 +847,13 @@ void setup_t::start_devices()
if (env != "")
{
- NL_VERBOSE_OUT(("Creating dynamic logs ...\n"));
+ log().debug("Creating dynamic logs ...\n");
pstring_list_t ll(env, ":");
for (unsigned i=0; i < ll.size(); i++)
{
- NL_VERBOSE_OUT(("%d: <%s>\n",i, ll[i].cstr()));
- NL_VERBOSE_OUT(("%d: <%s>\n",i, ll[i].cstr()));
- device_t *nc = factory().new_device_by_name("LOG", *this);
+ log().debug("{1}: <{2}>\n",i, ll[i]);
+ log().debug("{1}: <{2}>\n",i, ll[i]);
+ device_t *nc = factory().new_device_by_name("LOG");
pstring name = "log_" + ll[i];
register_dev(nc, name);
register_link(name + ".I", ll[i]);
@@ -878,7 +870,7 @@ void setup_t::print_stats() const
for (std::size_t i = 0; i < netlist().m_started_devices.size(); i++)
{
core_device_t *entry = netlist().m_started_devices[i];
- printf("Device %20s : %12d %12d %15ld\n", entry->name().cstr(), entry->stat_call_count, entry->stat_update_count, (long int) entry->stat_total_time / (entry->stat_update_count + 1));
+ printf("Device %20s : %12d %12d %15ld\n", entry->name(), entry->stat_call_count, entry->stat_update_count, (long int) entry->stat_total_time / (entry->stat_update_count + 1));
}
printf("Queue Pushes %15d\n", netlist().queue().m_prof_call);
printf("Queue Moves %15d\n", netlist().queue().m_prof_sortmove);
@@ -887,66 +879,131 @@ void setup_t::print_stats() const
}
// ----------------------------------------------------------------------------------------
-// Static
+// Model / family
// ----------------------------------------------------------------------------------------
-const pstring setup_t::model_value_str(const pstring &model_str, const pstring &entity, const pstring defval)
+class logic_family_std_proxy_t : public logic_family_desc_t
{
- pstring tmp = model_str;
- // .model 1N914 D(Is=2.52n Rs=.568 N=1.752 Cjo=4p M=.4 tt=20n Iave=200m Vpk=75 mfg=OnSemi type=silicon)
- int p = tmp.ucase().find(entity.ucase() + "=");
- if (p>=0)
+public:
+ logic_family_std_proxy_t() { }
+ virtual devices::nld_base_d_to_a_proxy *create_d_a_proxy(logic_output_t *proxied) const
{
- int pblank = tmp.find(" ", p);
- if (pblank < 0) pblank = tmp.len() + 1;
- tmp = tmp.substr(p, pblank - p);
- if (tmp.right(1) == ")")
- tmp = tmp.left(tmp.len()-1);
- int pequal = tmp.find("=", 0);
- if (pequal < 0)
- fatalerror_e("parameter %s misformat in model %s temp %s\n", entity.cstr(), model_str.cstr(), tmp.cstr());
- tmp = tmp.substr(pequal+1);
- return tmp;
+ return palloc(devices::nld_d_to_a_proxy(proxied));
}
+};
+
+logic_family_desc_t *setup_t::family_from_model(const pstring &model)
+{
+ model_map_t map;
+ model_parse(model, map);
+
+ if (setup_t::model_value_str(map, "TYPE") == "TTL")
+ return netlist_family_TTL;
+ if (setup_t::model_value_str(map, "TYPE") == "CD4XXX")
+ return netlist_family_CD4XXX;
+
+ logic_family_std_proxy_t *ret = palloc(logic_family_std_proxy_t);
+
+ ret->m_low_thresh_V = setup_t::model_value(map, "IVL");
+ ret->m_high_thresh_V = setup_t::model_value(map, "IVH");
+ ret->m_low_V = setup_t::model_value(map, "OVL");
+ ret->m_high_V = setup_t::model_value(map, "OVH");
+ ret->m_R_low = setup_t::model_value(map, "ORL");
+ ret->m_R_high = setup_t::model_value(map, "ORH");
+
+ return ret;
+}
+
+static pstring model_string(model_map_t &map)
+{
+ pstring ret = map["COREMODEL"] + "(";
+ for (unsigned i=0; i<map.size(); i++)
+ ret = ret + map.key_at(i) + "=" + map.value_at(i) + " ";
+
+ return ret + ")";
+}
+
+
+void setup_t::model_parse(const pstring &model_in, model_map_t &map)
+{
+ pstring model = model_in;
+ int pos = 0;
+ pstring key;
+
+ while (true)
+ {
+ pos = model.find("(");
+ if (pos >= 0) break;
+
+ key = model.ucase();
+ if (!m_models.contains(key))
+ log().fatal("Model {1} not found\n", model);
+ model = m_models[key];
+ }
+ pstring xmodel = model.left(pos);
+
+ if (xmodel.equals("_"))
+ map["COREMODEL"] = key;
else
{
- //netlist().log("Entity %s not found in model %s\n", entity.cstr(), tmp.cstr());
- //printf("Entity %s not found in model %s\n", entity.cstr(), tmp.cstr());
- return defval;
+ if (m_models.contains(xmodel))
+ model_parse(xmodel, map);
+ else
+ log().fatal("Model doesn't exist {1}\n", xmodel);
}
-}
-nl_double setup_t::model_value(const pstring &model_str, const pstring &entity, const nl_double defval)
-{
- pstring tmp = model_value_str(model_str, entity, "NOTFOUND");
+ pstring remainder=model.substr(pos+1).trim();
+ if (!remainder.endsWith(")"))
+ log().fatal("Model error {1}\n", model);
+ remainder = remainder.left(remainder.len() - 1);
- nl_double factor = NL_FCONST(1.0);
- if (tmp != "NOTFOUND")
+ pstring_list_t pairs(remainder," ", true);
+ for (unsigned i=0; i<pairs.size(); i++)
{
- char numfac = *(tmp.right(1).cstr());
- switch (numfac)
- {
- case 'M': factor = 1e6; break;
- case 'k': factor = 1e3; break;
- case 'm': factor = 1e-3; break;
- case 'u': factor = 1e-6; break;
- case 'n': factor = 1e-9; break;
- case 'p': factor = 1e-12; break;
- case 'f': factor = 1e-15; break;
- case 'a': factor = 1e-18; break;
- default:
- if (numfac < '0' || numfac > '9')
- fatalerror_e("Unknown number factor <%c> in: %s", numfac, entity.cstr());
- }
- if (factor != NL_FCONST(1.0))
- tmp = tmp.left(tmp.len() - 1);
- return tmp.as_double() * factor;
+ int pose = pairs[i].find("=");
+ if (pose < 0)
+ log().fatal("Model error on pair {1}\n", model);
+ map[pairs[i].left(pose).ucase()] = pairs[i].substr(pose+1);
}
+}
+
+const pstring setup_t::model_value_str(model_map_t &map, const pstring &entity)
+{
+ pstring ret;
+
+ if (entity != entity.ucase())
+ log().fatal("model parameters should be uppercase:{1} {2}\n", entity, model_string(map));
+ if (!map.contains(entity))
+ log().fatal("Entity {1} not found in model {2}\n", entity, model_string(map));
else
+ ret = map[entity];
+
+ return ret;
+}
+
+nl_double setup_t::model_value(model_map_t &map, const pstring &entity)
+{
+ pstring tmp = model_value_str(map, entity);
+
+ nl_double factor = NL_FCONST(1.0);
+ pstring numfac = tmp.right(1);
+ switch (numfac.code_at(0))
{
- //netlist().log("Entity %s not found in model %s\n", entity.cstr(), tmp.cstr());
- return defval;
+ case 'M': factor = 1e6; break;
+ case 'k': factor = 1e3; break;
+ case 'm': factor = 1e-3; break;
+ case 'u': factor = 1e-6; break;
+ case 'n': factor = 1e-9; break;
+ case 'p': factor = 1e-12; break;
+ case 'f': factor = 1e-15; break;
+ case 'a': factor = 1e-18; break;
+ default:
+ if (numfac < "0" || numfac > "9")
+ fatalerror_e(pfmt("Unknown number factor <{1}> in: {2}")(numfac)(entity));
}
+ if (factor != NL_FCONST(1.0))
+ tmp = tmp.left(tmp.len() - 1);
+ return tmp.as_double() * factor;
}
// ----------------------------------------------------------------------------------------
@@ -957,26 +1014,41 @@ void setup_t::include(const pstring &netlist_name)
{
for (std::size_t i=0; i < m_sources.size(); i++)
{
- if (m_sources[i]->parse(this, netlist_name))
+ if (m_sources[i]->parse(*this, netlist_name))
return;
}
- netlist().error("unable to find %s in source collection", netlist_name.cstr());
+ log().fatal("unable to find {1} in source collection", netlist_name);
}
// ----------------------------------------------------------------------------------------
// base sources
// ----------------------------------------------------------------------------------------
-bool netlist_source_string_t::parse(setup_t *setup, const pstring name)
+bool source_string_t::parse(setup_t &setup, const pstring &name)
+{
+ pimemstream istrm(m_str.cstr(), m_str.len());
+ pomemstream ostrm;
+
+ pimemstream istrm2(ppreprocessor().process(istrm, ostrm));
+ return parser_t(istrm2, setup).parse(name);
+}
+
+bool source_mem_t::parse(setup_t &setup, const pstring &name)
{
- parser_t p(*setup);
- return p.parse(m_str, name);
+ pimemstream istrm(m_str.cstr(), m_str.len());
+ pomemstream ostrm;
+
+ pimemstream istrm2(ppreprocessor().process(istrm, ostrm));
+ return parser_t(istrm2, setup).parse(name);
}
-bool netlist_source_mem_t::parse(setup_t *setup, const pstring name)
+bool source_file_t::parse(setup_t &setup, const pstring &name)
{
- parser_t p(*setup);
- return p.parse(m_str, name);
+ pifilestream istrm(m_filename);
+ pomemstream ostrm;
+
+ pimemstream istrm2(ppreprocessor().process(istrm, ostrm));
+ return parser_t(istrm2, setup).parse(name);
}
}
diff --git a/src/emu/netlist/nl_setup.h b/src/lib/netlist/nl_setup.h
index 129a6fef001..5f056439b3b 100644
--- a/src/emu/netlist/nl_setup.h
+++ b/src/lib/netlist/nl_setup.h
@@ -58,7 +58,7 @@ ATTR_COLD void NETLIST_NAME(_name)(netlist::setup_t &setup) \
setup.register_source(palloc(netlist::source_proc_t(# _name, &NETLIST_NAME(_name))));
#define LOCAL_LIB_ENTRY(_name) \
- LOCAL_SOURCE(_name) \
+ LOCAL_SOURCE(_name) \
setup.register_lib_entry(# _name);
#define INCLUDE(_name) \
@@ -98,7 +98,7 @@ namespace netlist
virtual ~source_t() { }
- virtual bool parse(setup_t *setup, const pstring name) = 0;
+ virtual bool parse(setup_t &setup, const pstring &name) = 0;
private:
};
@@ -127,9 +127,6 @@ namespace netlist
const pstring &name() const { return e1; }
};
- //typedef pnamedlist_t<link_t> tagmap_nstring_t;
- typedef pnamedlist_t<core_terminal_t *> tagmap_terminal_t;
-
setup_t(netlist_t *netlist);
~setup_t();
@@ -146,7 +143,7 @@ namespace netlist
void register_lib_entry(const pstring &name);
- void register_model(const pstring &model);
+ void register_model(const pstring &model_in);
void register_alias(const pstring &alias, const pstring &out);
void register_dippins_arr(const pstring &terms);
@@ -162,8 +159,6 @@ namespace netlist
void register_frontier(const pstring attach, const double r_IN, const double r_OUT);
void remove_connections(const pstring attach);
- const pstring get_model_str(const pstring val) const;
-
void register_object(device_t &dev, const pstring &name, object_t &obj);
bool connect(core_terminal_t &t1, core_terminal_t &t2);
@@ -193,31 +188,47 @@ namespace netlist
bool is_library_item(const pstring &name) const { return m_lib.contains(name); }
- /* not ideal, but needed for save_state */
- tagmap_terminal_t m_terminals;
-
void print_stats() const;
- /* static support functions */
+ /* model / family related */
- static const pstring model_value_str(const pstring &model_str, const pstring &entity, const pstring defval);
- static nl_double model_value(const pstring &model_str, const pstring &entity, const nl_double defval);
+ logic_family_desc_t *family_from_model(const pstring &model);
+ const pstring model_value_str(model_map_t &map, const pstring &entity);
+ nl_double model_value(model_map_t &map, const pstring &entity);
+
+ void model_parse(const pstring &model, model_map_t &map);
+
+ plog_base<NL_DEBUG> &log() { return netlist().log(); }
+ const plog_base<NL_DEBUG> &log() const { return netlist().log(); }
protected:
private:
+ void connect_terminals(core_terminal_t &in, core_terminal_t &out);
+ void connect_input_output(core_terminal_t &in, core_terminal_t &out);
+ void connect_terminal_output(terminal_t &in, core_terminal_t &out);
+ void connect_terminal_input(terminal_t &term, core_terminal_t &inp);
+ bool connect_input_input(core_terminal_t &t1, core_terminal_t &t2);
+
+ // helpers
+ pstring objtype_as_astr(object_t &in) const;
+
+ const pstring resolve_alias(const pstring &name) const;
+ devices::nld_base_proxy *get_d_a_proxy(core_terminal_t &out);
+
netlist_t *m_netlist;
phashmap_t<pstring, pstring> m_alias;
phashmap_t<pstring, param_t *> m_params;
phashmap_t<pstring, pstring> m_params_temp;
+ phashmap_t<pstring, core_terminal_t *> m_terminals;
plist_t<link_t> m_links;
factory_list_t *m_factory;
- plist_t<pstring> m_models;
+ phashmap_t<pstring, pstring> m_models;
int m_proxy_cnt;
@@ -225,34 +236,6 @@ namespace netlist
source_t::list_t m_sources;
plist_t<pstring> m_lib;
-
- void connect_terminals(core_terminal_t &in, core_terminal_t &out);
- void connect_input_output(core_terminal_t &in, core_terminal_t &out);
- void connect_terminal_output(terminal_t &in, core_terminal_t &out);
- void connect_terminal_input(terminal_t &term, core_terminal_t &inp);
- bool connect_input_input(core_terminal_t &t1, core_terminal_t &t2);
-
- // helpers
- pstring objtype_as_astr(object_t &in) const;
-
- const pstring resolve_alias(const pstring &name) const;
- devices::nld_base_proxy *get_d_a_proxy(core_terminal_t &out);
-
-#if 0
- template <class T>
- void remove_start_with(T &hm, pstring &sw)
- {
- for (std::size_t i = hm.size() - 1; i >= 0; i--)
- {
- pstring x = hm[i]->name();
- if (sw.equals(x.substr(0, sw.len())))
- {
- NL_VERBOSE_OUT(("removing %s\n", hm[i]->name().cstr()));
- hm.remove(hm[i]);
- }
- }
- }
-#endif
};
// ----------------------------------------------------------------------------------------
@@ -260,31 +243,46 @@ namespace netlist
// ----------------------------------------------------------------------------------------
- class netlist_source_string_t : public setup_t::source_t
+ class source_string_t : public setup_t::source_t
{
public:
- netlist_source_string_t(pstring source)
+ source_string_t(const pstring &source)
: setup_t::source_t(), m_str(source)
{
}
- bool parse(setup_t *setup, const pstring name);
+ bool parse(setup_t &setup, const pstring &name);
private:
pstring m_str;
};
+ class source_file_t : public setup_t::source_t
+ {
+ public:
+
+ source_file_t(const pstring &filename)
+ : setup_t::source_t(), m_filename(filename)
+ {
+ }
- class netlist_source_mem_t : public setup_t::source_t
+ bool parse(setup_t &setup, const pstring &name);
+
+ private:
+ pstring m_filename;
+ };
+
+ class source_mem_t : public setup_t::source_t
{
public:
- netlist_source_mem_t(const char *mem)
+ source_mem_t(const char *mem)
: setup_t::source_t(), m_str(mem)
{
}
- bool parse(setup_t *setup, const pstring name);
+ bool parse(setup_t &setup, const pstring &name);
+
private:
pstring m_str;
};
@@ -299,11 +297,11 @@ namespace netlist
{
}
- bool parse(setup_t *setup, const pstring name)
+ bool parse(setup_t &setup, const pstring &name)
{
if (name == m_setup_func_name)
{
- m_setup_func(*setup);
+ m_setup_func(setup);
return true;
}
else
diff --git a/src/lib/netlist/nl_time.h b/src/lib/netlist/nl_time.h
new file mode 100644
index 00000000000..ddb3c85d14e
--- /dev/null
+++ b/src/lib/netlist/nl_time.h
@@ -0,0 +1,137 @@
+// license:GPL-2.0+
+// copyright-holders:Couriersud
+/*
+ * nltime.h
+ */
+
+#ifndef NLTIME_H_
+#define NLTIME_H_
+
+#include "nl_config.h"
+#include "plib/pstate.h"
+
+//============================================================
+// MACROS
+//============================================================
+
+#define NLTIME_FROM_NS(_t) netlist_time::from_nsec(_t)
+#define NLTIME_FROM_US(_t) netlist_time::from_usec(_t)
+#define NLTIME_FROM_MS(_t) netlist_time::from_msec(_t)
+#define NLTIME_IMMEDIATE netlist_time::from_nsec(1)
+
+// ----------------------------------------------------------------------------------------
+// net_list_time
+// ----------------------------------------------------------------------------------------
+
+#undef ATTR_HOT
+#define ATTR_HOT
+
+namespace netlist
+{
+ struct netlist_time
+ {
+ public:
+
+#if (PHAS_INT128)
+ typedef UINT128 INTERNALTYPE;
+ static const pstate_data_type_e STATETYPE = DT_INT128;
+#else
+ typedef UINT64 INTERNALTYPE;
+ static const pstate_data_type_e STATETYPE = DT_INT64;
+#endif
+ static const INTERNALTYPE RESOLUTION = NETLIST_INTERNAL_RES;
+
+ ATTR_HOT netlist_time() : m_time(0) {}
+ ATTR_HOT netlist_time(const netlist_time &rhs) : m_time(rhs.m_time) {}
+
+ ATTR_HOT friend const netlist_time operator-(const netlist_time &left, const netlist_time &right);
+ ATTR_HOT friend const netlist_time operator+(const netlist_time &left, const netlist_time &right);
+ ATTR_HOT friend const netlist_time operator*(const netlist_time &left, const UINT64 factor);
+ ATTR_HOT friend UINT64 operator/(const netlist_time &left, const netlist_time &right);
+ ATTR_HOT friend bool operator>(const netlist_time &left, const netlist_time &right);
+ ATTR_HOT friend bool operator<(const netlist_time &left, const netlist_time &right);
+ ATTR_HOT friend bool operator>=(const netlist_time &left, const netlist_time &right);
+ ATTR_HOT friend bool operator<=(const netlist_time &left, const netlist_time &right);
+ ATTR_HOT friend bool operator!=(const netlist_time &left, const netlist_time &right);
+
+ ATTR_HOT const netlist_time &operator=(const netlist_time &right) { m_time = right.m_time; return *this; }
+
+ ATTR_HOT const netlist_time &operator+=(const netlist_time &right) { m_time += right.m_time; return *this; }
+
+ ATTR_HOT INTERNALTYPE as_raw() const { return m_time; }
+ ATTR_HOT double as_double() const { return (double) m_time / (double) RESOLUTION; }
+
+ // for save states ....
+ ATTR_HOT INTERNALTYPE *get_internaltype_ptr() { return &m_time; }
+
+ ATTR_HOT static const netlist_time from_nsec(const INTERNALTYPE ns) { return netlist_time(ns * (RESOLUTION / U64(1000000000))); }
+ ATTR_HOT static const netlist_time from_usec(const INTERNALTYPE us) { return netlist_time(us * (RESOLUTION / U64(1000000))); }
+ ATTR_HOT static const netlist_time from_msec(const INTERNALTYPE ms) { return netlist_time(ms * (RESOLUTION / U64(1000))); }
+ ATTR_HOT static const netlist_time from_hz(const INTERNALTYPE hz) { return netlist_time(RESOLUTION / hz); }
+ ATTR_HOT static const netlist_time from_double(const double t) { return netlist_time((INTERNALTYPE) ( t * (double) RESOLUTION)); }
+ ATTR_HOT static const netlist_time from_raw(const INTERNALTYPE raw) { return netlist_time(raw); }
+
+ static const netlist_time zero;
+
+ protected:
+
+ ATTR_HOT netlist_time(const INTERNALTYPE val) : m_time(val) {}
+
+ private:
+ INTERNALTYPE m_time;
+ };
+
+ ATTR_HOT inline const netlist_time operator-(const netlist_time &left, const netlist_time &right)
+ {
+ return netlist_time(left.m_time - right.m_time);
+ }
+
+ ATTR_HOT inline const netlist_time operator*(const netlist_time &left, const UINT64 factor)
+ {
+ return netlist_time(left.m_time * factor);
+ }
+
+ ATTR_HOT inline UINT64 operator/(const netlist_time &left, const netlist_time &right)
+ {
+ return left.m_time / right.m_time;
+ }
+
+ ATTR_HOT inline const netlist_time operator+(const netlist_time &left, const netlist_time &right)
+ {
+ return netlist_time(left.m_time + right.m_time);
+ }
+
+ ATTR_HOT inline bool operator<(const netlist_time &left, const netlist_time &right)
+ {
+ return (left.m_time < right.m_time);
+ }
+
+ ATTR_HOT inline bool operator>(const netlist_time &left, const netlist_time &right)
+ {
+ return (left.m_time > right.m_time);
+ }
+
+ ATTR_HOT inline bool operator<=(const netlist_time &left, const netlist_time &right)
+ {
+ return (left.m_time <= right.m_time);
+ }
+
+ ATTR_HOT inline bool operator>=(const netlist_time &left, const netlist_time &right)
+ {
+ return (left.m_time >= right.m_time);
+ }
+
+ ATTR_HOT inline bool operator!=(const netlist_time &left, const netlist_time &right)
+ {
+ return (left.m_time != right.m_time);
+ }
+
+}
+
+template<> ATTR_COLD inline void pstate_manager_t::save_item(netlist::netlist_time &nlt, const void *owner, const pstring &stname)
+{
+ save_state_ptr(stname, netlist::netlist_time::STATETYPE, owner, sizeof(netlist::netlist_time::INTERNALTYPE), 1, nlt.get_internaltype_ptr(), false);
+}
+
+
+#endif /* NLTIME_H_ */
diff --git a/src/emu/netlist/nl_util.h b/src/lib/netlist/nl_util.h
index bb5a564dd74..bb5a564dd74 100644
--- a/src/emu/netlist/nl_util.h
+++ b/src/lib/netlist/nl_util.h
diff --git a/src/emu/netlist/plib/palloc.c b/src/lib/netlist/plib/palloc.c
index 2ed54bd0b35..22dbc1d4e93 100644
--- a/src/emu/netlist/plib/palloc.c
+++ b/src/lib/netlist/plib/palloc.c
@@ -5,8 +5,19 @@
*
*/
+#include <cstdio>
+
#include "pconfig.h"
#include "palloc.h"
+//============================================================
+// Exceptions
+//============================================================
+
+pexception::pexception(const pstring &text)
+{
+ m_text = text;
+ fprintf(stderr, "%s\n", m_text.cstr());
+}
#if (PSTANDALONE)
#include <stdlib.h>
@@ -24,13 +35,11 @@ pmemory_pool *ppool = &sppool;
void* operator new(std::size_t size, pmemory_pool *pool) throw (std::bad_alloc)
{
- //printf("here new\n");
return palloc_raw(size);;
}
void operator delete(void *ptr, pmemory_pool *pool)
{
- //printf("here delete\n");
if (ptr != NULL)
pfree_raw(ptr);
}
diff --git a/src/emu/netlist/plib/palloc.h b/src/lib/netlist/plib/palloc.h
index c80265c8105..01193998392 100644
--- a/src/emu/netlist/plib/palloc.h
+++ b/src/lib/netlist/plib/palloc.h
@@ -8,9 +8,26 @@
#ifndef PALLOC_H_
#define PALLOC_H_
-#include <cstdio>
+#include <exception>
#include "pconfig.h"
+#include "pstring.h"
+
+//============================================================
+// exception base
+//============================================================
+
+class pexception : public std::exception
+{
+public:
+ pexception(const pstring &text);
+ virtual ~pexception() throw() {}
+
+ const pstring &text() { return m_text; }
+
+private:
+ pstring m_text;
+};
//============================================================
// Memory allocation
@@ -51,7 +68,6 @@ inline void pfree_t(T *p)
template <typename T>
inline T *palloc_array_t(size_t N)
{
- //printf("here palloc_array %d\n", (unsigned) N);
char *buf = reinterpret_cast<char *>(palloc_raw(N * sizeof(T) + 64*2));
size_t *s = reinterpret_cast<size_t *>(buf);
*s = N;
@@ -69,7 +85,6 @@ inline void pfree_array_t(T *p)
buf -= 64;
size_t *s = reinterpret_cast<size_t *>(buf);
size_t N = *s;
- //printf("here pfree_array %d\n", (unsigned) N);
while (N > 0)
{
p->~T();
@@ -79,7 +94,7 @@ inline void pfree_array_t(T *p)
pfree_raw(s);
}
-#define palloc(T) new(ppool) T
+#define palloc(T) new(ppool) T
#define pfree(_ptr) pfree_t(_ptr)
#if 1
@@ -94,7 +109,7 @@ inline void pfree_array_t(T *p)
#define ATTR_ALIGN
-#define palloc(T) global_alloc(T)
+#define palloc(T) global_alloc(T)
#define pfree(_ptr) global_free(_ptr)
#define palloc_array(T, N) global_alloc_array(T, N)
diff --git a/src/emu/netlist/plib/pconfig.h b/src/lib/netlist/plib/pconfig.h
index b39701c90e9..cfa622c9118 100644
--- a/src/emu/netlist/plib/pconfig.h
+++ b/src/lib/netlist/plib/pconfig.h
@@ -5,6 +5,13 @@
*
*/
+// for now, make buggy GCC/Mingw STFU about I64FMT
+#if (defined(__MINGW32__) && (__GNUC__ >= 5))
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wformat"
+#pragma GCC diagnostic ignored "-Wformat-extra-args"
+#endif
+
#ifndef PCONFIG_H_
#define PCONFIG_H_
@@ -12,6 +19,18 @@
#define PSTANDALONE (0)
#endif
+//#define PHAS_INT128 (0)
+
+#ifndef PHAS_INT128
+#define PHAS_INT128 (0)
+#endif
+
+#if (PHAS_INT128)
+typedef __uint128_t UINT128;
+typedef __int128_t INT128;
+#endif
+
+
#if !(PSTANDALONE)
#include "osdcore.h"
#include "eminline.h"
@@ -33,26 +52,17 @@
//============================================================
// prevent implicit copying
-#define P_PREVENT_COPYING(_name) \
+#define P_PREVENT_COPYING(_name) \
private: \
_name(const _name &); \
_name &operator=(const _name &);
-
//============================================================
// Compiling standalone
//============================================================
#if !(PSTANDALONE)
-#undef ATTR_COLD
-#define ATTR_COLD
-
-static inline std::size_t SIZET_PRINTF(const std::size_t &v)
-{
- return (unsigned) v;
-}
-
/* use MAME */
#if (USE_DELEGATE_TYPE == DELEGATE_TYPE_INTERNAL)
#define PHAS_PMF_INTERNAL 1
@@ -88,10 +98,10 @@ static inline std::size_t SIZET_PRINTF(const std::size_t &v)
/* ATTR_HOT and ATTR_COLD cause performance degration in 5.1 */
//#define ATTR_HOT
//#define ATTR_COLD
-#define ATTR_HOT __attribute__((hot))
+#define ATTR_HOT __attribute__((hot))
#define ATTR_COLD __attribute__((cold))
-#define RESTRICT
+#define RESTRICT __restrict__
#define EXPECTED(x) (x)
#define UNEXPECTED(x) (x)
#define ATTR_PRINTF(x,y) __attribute__((format(printf, x, y)))
@@ -131,33 +141,6 @@ typedef int64_t INT64;
#define S64(val) val
#endif
-/* MINGW has adopted the MSVC formatting for 64-bit ints as of gcc 4.4 */
-#if (defined(__MINGW32__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))) || defined(_MSC_VER)
-#define I64FMT "I64"
-#else
-#define I64FMT "ll"
-#endif
-
-#if defined(_MSC_VER) || defined(__MINGW32__)
-#if (PTR64)
-#define SIZETFMT "I64u"
-#else
-#define SIZETFMT "u"
-#endif
-#else
-//#define SIZETFMT "zu"
-#if (PTR64)
-#define SIZETFMT "lu"
-#else
-#define SIZETFMT "u"
-#endif
-#endif
-
-static inline std::size_t SIZET_PRINTF(const std::size_t &v)
-{
- return (unsigned) v;
-}
-
#endif
/*
@@ -223,3 +206,7 @@ private:
#endif
#endif /* PCONFIG_H_ */
+
+#if (defined(__MINGW32__) && (__GNUC__ >= 5))
+#pragma GCC diagnostic pop
+#endif
diff --git a/src/lib/netlist/plib/pfmtlog.c b/src/lib/netlist/plib/pfmtlog.c
new file mode 100644
index 00000000000..2b08bb2fa98
--- /dev/null
+++ b/src/lib/netlist/plib/pfmtlog.c
@@ -0,0 +1,166 @@
+// license:GPL-2.0+
+// copyright-holders:Couriersud
+/*
+ * nl_string.c
+ *
+ */
+
+#if 0
+#include <cstring>
+//FIXME:: pstring should be locale free
+#include <cctype>
+#include <cstdlib>
+#include <cstdio>
+#endif
+
+#include <algorithm>
+
+#include "pfmtlog.h"
+#include "palloc.h"
+
+pfmt::pfmt(const pstring &fmt)
+: m_str(m_str_buf), m_allocated(0), m_arg(0)
+{
+ unsigned l = fmt.blen() + 1;
+ if (l>sizeof(m_str_buf))
+ {
+ m_allocated = 2 * l;
+ m_str = palloc_array(char, 2 * l);
+ }
+ memcpy(m_str, fmt.cstr(), l);
+}
+
+pfmt::pfmt(const char *fmt)
+: m_str(m_str_buf), m_allocated(0), m_arg(0)
+{
+ unsigned l = strlen(fmt) + 1;
+ if (l>sizeof(m_str_buf))
+ {
+ m_allocated = 2 * l;
+ m_str = palloc_array(char, 2 * l);
+ }
+ memcpy(m_str, fmt, l);
+}
+
+pfmt::~pfmt()
+{
+ if (m_allocated > 0)
+ pfree_array(m_str);
+}
+
+#if 0
+void pformat::format_element(const char *f, const char *l, const char *fmt_spec, ...)
+{
+ va_list ap;
+ va_start(ap, fmt_spec);
+ char fmt[30] = "%";
+ char search[10] = "";
+ char buf[1024];
+ strcat(fmt, f);
+ strcat(fmt, l);
+ strcat(fmt, fmt_spec);
+ int nl = vsprintf(buf, fmt, ap);
+ m_arg++;
+ int sl = sprintf(search, "%%%d", m_arg);
+ char *p = strstr(m_str, search);
+ if (p != NULL)
+ {
+ // Make room
+ memmove(p+nl, p+sl, strlen(p) + 1 - sl);
+ memcpy(p, buf, nl);
+ }
+ va_end(ap);
+}
+#else
+void pfmt::format_element(const char *f, const char *l, const char *fmt_spec, ...)
+{
+ va_list ap;
+ va_start(ap, fmt_spec);
+ char fmt[30] = "%";
+ char search[10] = "";
+ char buf[2048];
+ m_arg++;
+ int sl = sprintf(search, "{%d:", m_arg);
+ char *p = strstr(m_str, search);
+ if (p == NULL)
+ {
+ sl = sprintf(search, "{%d}", m_arg);
+ p = strstr(m_str, search);
+ if (p == NULL)
+ {
+ sl = 2;
+ p = strstr(m_str, "{}");
+ }
+ if (p==NULL)
+ {
+ sl=1;
+ p = strstr(m_str, "{");
+ if (p != NULL)
+ {
+ char *p1 = strstr(p, "}");
+ if (p1 != NULL)
+ {
+ sl = p1 - p + 1;
+ strncat(fmt, p+1, p1 - p - 2);
+ }
+ else
+ strcat(fmt, f);
+ }
+ else
+ strcat(fmt, f);
+ }
+ }
+ else
+ {
+ char *p1 = strstr(p, "}");
+ if (p1 != NULL)
+ {
+ sl = p1 - p + 1;
+ if (m_arg>=10)
+ strncat(fmt, p+4, p1 - p - 4);
+ else
+ strncat(fmt, p+3, p1 - p - 3);
+ }
+ else
+ strcat(fmt, f);
+ }
+ strcat(fmt, l);
+ char *pend = fmt + strlen(fmt) - 1;
+ if (strchr("fge", *fmt_spec) != NULL)
+ {
+ if (strchr("fge", *pend) == NULL)
+ strcat(fmt, fmt_spec);
+ }
+ else if (strchr("duxo", *fmt_spec) != NULL)
+ {
+ if (strchr("duxo", *pend) == NULL)
+ strcat(fmt, fmt_spec);
+ }
+ else
+ strcat(fmt, fmt_spec);
+ int nl = vsprintf(buf, fmt, ap);
+ if (p != NULL)
+ {
+ // check room
+ unsigned new_size = (p - m_str) + nl + strlen(p) + 1 - sl;
+ if (new_size > m_allocated)
+ {
+ unsigned old_alloc = std::max(m_allocated, (unsigned) sizeof(m_str_buf));
+ if (m_allocated < old_alloc)
+ m_allocated = old_alloc;
+ while (new_size > m_allocated)
+ m_allocated *= 2;
+ char *np = palloc_array(char, m_allocated);
+ memcpy(np, m_str, old_alloc);
+ p = np + (p - m_str);
+ if (m_str != m_str_buf)
+ pfree_array(m_str);
+ m_str = np;
+ }
+ // Make room
+ memmove(p+nl, p+sl, strlen(p) + 1 - sl);
+ memcpy(p, buf, nl);
+ }
+ va_end(ap);
+}
+#endif
diff --git a/src/lib/netlist/plib/pfmtlog.h b/src/lib/netlist/plib/pfmtlog.h
new file mode 100644
index 00000000000..058152a91cc
--- /dev/null
+++ b/src/lib/netlist/plib/pfmtlog.h
@@ -0,0 +1,292 @@
+// license:GPL-2.0+
+// copyright-holders:Couriersud
+/*
+ * pfmtlog.h
+ */
+
+#ifndef _PFMT_H_
+#define _PFMT_H_
+
+//#include <cstdarg>
+//#include <cstddef>
+
+#include "pconfig.h"
+#include "pstring.h"
+#include "ptypes.h"
+
+template <typename T>
+struct ptype_treats
+{
+};
+
+template<>
+struct ptype_treats<char>
+{
+ static short cast(char x) { return x; }
+ static const bool is_signed = true;
+ static const char *size_specifier() { return "h"; }
+};
+
+template<>
+struct ptype_treats<short>
+{
+ static short cast(short x) { return x; }
+ static const bool is_signed = true;
+ static const char *size_specifier() { return "h"; }
+};
+
+template<>
+struct ptype_treats<int>
+{
+ static int cast(int x) { return x; }
+ static const bool is_signed = true;
+ static const char *size_specifier() { return ""; }
+};
+
+template<>
+struct ptype_treats<long>
+{
+ static long cast(long x) { return x; }
+ static const bool is_signed = true;
+ static const char *size_specifier() { return "l"; }
+};
+
+template<>
+struct ptype_treats<long long>
+{
+ static long long cast(long long x) { return x; }
+ static const bool is_signed = true;
+ static const char *size_specifier() { return "ll"; }
+};
+
+template<>
+struct ptype_treats<unsigned char>
+{
+ static unsigned short cast(unsigned char x) { return x; }
+ static const bool is_signed = false;
+ static const char *size_specifier() { return "h"; }
+};
+
+template<>
+struct ptype_treats<unsigned short>
+{
+ static unsigned short cast(unsigned short x) { return x; }
+ static const bool is_signed = false;
+ static const char *size_specifier() { return "h"; }
+};
+
+template<>
+struct ptype_treats<unsigned int>
+{
+ static unsigned int cast(unsigned int x) { return x; }
+ static const bool is_signed = false;
+ static const char *size_specifier() { return ""; }
+};
+
+template<>
+struct ptype_treats<unsigned long>
+{
+ static unsigned long cast(unsigned long x) { return x; }
+ static const bool is_signed = false;
+ static const char *size_specifier() { return "l"; }
+};
+
+template<>
+struct ptype_treats<unsigned long long>
+{
+ static unsigned long long cast(unsigned long long x) { return x; }
+ static const bool is_signed = false;
+ static const char *size_specifier() { return "ll"; }
+};
+
+template <typename P>
+class pformat_base
+{
+public:
+
+ virtual ~pformat_base() { }
+
+ ATTR_COLD P &operator ()(const double x, const char *f = "") { format_element(f, "", "f", x); return static_cast<P &>(*this); }
+ ATTR_COLD P & e(const double x, const char *f = "") { format_element(f, "", "e", x); return static_cast<P &>(*this); }
+ ATTR_COLD P & g(const double x, const char *f = "") { format_element(f, "", "g", x); return static_cast<P &>(*this); }
+
+ ATTR_COLD P &operator ()(const char *x, const char *f = "") { format_element(f, "", "s", x); return static_cast<P &>(*this); }
+ ATTR_COLD P &operator ()(char *x, const char *f = "") { format_element(f, "", "s", x); return static_cast<P &>(*this); }
+ ATTR_COLD P &operator ()(const void *x, const char *f = "") { format_element(f, "", "p", x); return static_cast<P &>(*this); }
+ ATTR_COLD P &operator ()(const pstring &x, const char *f = "") { format_element(f, "", "s", x.cstr() ); return static_cast<P &>(*this); }
+
+ template<typename T>
+ ATTR_COLD P &operator ()(const T x, const char *f = "")
+ {
+ if (ptype_treats<T>::is_signed)
+ format_element(f, ptype_treats<T>::size_specifier(), "d", ptype_treats<T>::cast(x));
+ else
+ format_element(f, ptype_treats<T>::size_specifier(), "u", ptype_treats<T>::cast(x));
+ return static_cast<P &>(*this);
+ }
+
+ template<typename T>
+ ATTR_COLD P &x(const T x, const char *f = "")
+ {
+ format_element(f, ptype_treats<T>::size_specifier(), "x", x);
+ return static_cast<P &>(*this);
+ }
+
+ template<typename T>
+ ATTR_COLD P &o(const T x, const char *f = "")
+ {
+ format_element(f, ptype_treats<T>::size_specifier(), "o", x);
+ return static_cast<P &>(*this);
+ }
+
+protected:
+
+ virtual void format_element(const char *f, const char *l, const char *fmt_spec, ...) = 0;
+
+};
+
+class pfmt : public pformat_base<pfmt>
+{
+public:
+ pfmt(const pstring &fmt);
+ pfmt(const char *fmt);
+ virtual ~pfmt();
+
+ operator pstring() const { return m_str; }
+
+ const char *cstr() { return m_str; }
+
+
+protected:
+ void format_element(const char *f, const char *l, const char *fmt_spec, ...);
+
+private:
+
+ char *m_str;
+ char m_str_buf[256];
+ unsigned m_allocated;
+ unsigned m_arg;
+};
+
+P_ENUM(plog_level,
+ DEBUG,
+ INFO,
+ VERBOSE,
+ WARNING,
+ ERROR,
+ FATAL)
+
+class plog_dispatch_intf;
+
+template <bool build_enabled = true>
+class pfmt_writer_t
+{
+public:
+ pfmt_writer_t() : m_enabled(true) { }
+ virtual ~pfmt_writer_t() { }
+
+ ATTR_COLD void operator ()(const char *fmt) const
+ {
+ if (build_enabled && m_enabled) vdowrite(fmt);
+ }
+
+ template<typename T1>
+ ATTR_COLD void operator ()(const char *fmt, const T1 &v1) const
+ {
+ if (build_enabled && m_enabled) vdowrite(pfmt(fmt)(v1));
+ }
+
+ template<typename T1, typename T2>
+ ATTR_COLD void operator ()(const char *fmt, const T1 &v1, const T2 &v2) const
+ {
+ if (build_enabled && m_enabled) vdowrite(pfmt(fmt)(v1)(v2));
+ }
+
+ template<typename T1, typename T2, typename T3>
+ ATTR_COLD void operator ()(const char *fmt, const T1 &v1, const T2 &v2, const T3 &v3) const
+ {
+ if (build_enabled && m_enabled) vdowrite(pfmt(fmt)(v1)(v2)(v3));
+ }
+
+ template<typename T1, typename T2, typename T3, typename T4>
+ ATTR_COLD void operator ()(const char *fmt, const T1 &v1, const T2 &v2, const T3 &v3, const T4 &v4) const
+ {
+ if (build_enabled && m_enabled) vdowrite(pfmt(fmt)(v1)(v2)(v3)(v4));
+ }
+
+ template<typename T1, typename T2, typename T3, typename T4, typename T5>
+ ATTR_COLD void operator ()(const char *fmt, const T1 &v1, const T2 &v2, const T3 &v3, const T4 &v4, const T5 &v5) const
+ {
+ if (build_enabled && m_enabled) vdowrite(pfmt(fmt)(v1)(v2)(v3)(v4)(v5));
+ }
+
+ void set_enabled(const bool v)
+ {
+ m_enabled = v;
+ }
+
+ bool is_enabled() const { return m_enabled; }
+
+protected:
+ virtual void vdowrite(const pstring &ls) const {}
+
+private:
+ bool m_enabled;
+
+};
+
+template <plog_level::e L, bool build_enabled = true>
+class plog_channel : public pfmt_writer_t<build_enabled>
+{
+public:
+ plog_channel(plog_dispatch_intf *b) : pfmt_writer_t<build_enabled>(), m_base(b) { }
+ virtual ~plog_channel() { }
+
+protected:
+ virtual void vdowrite(const pstring &ls) const;
+
+private:
+ plog_dispatch_intf *m_base;
+};
+
+class plog_dispatch_intf
+{
+ template<plog_level::e, bool> friend class plog_channel;
+
+public:
+ virtual ~plog_dispatch_intf() { }
+protected:
+ virtual void vlog(const plog_level &l, const pstring &ls) const = 0;
+};
+
+template<bool debug_enabled>
+class plog_base
+{
+public:
+
+ plog_base(plog_dispatch_intf *proxy)
+ : debug(proxy),
+ info(proxy),
+ verbose(proxy),
+ warning(proxy),
+ error(proxy),
+ fatal(proxy)
+ {}
+ virtual ~plog_base() {};
+
+ plog_channel<plog_level::DEBUG, debug_enabled> debug;
+ plog_channel<plog_level::INFO> info;
+ plog_channel<plog_level::VERBOSE> verbose;
+ plog_channel<plog_level::WARNING> warning;
+ plog_channel<plog_level::ERROR> error;
+ plog_channel<plog_level::FATAL> fatal;
+};
+
+
+template <plog_level::e L, bool build_enabled>
+void plog_channel<L, build_enabled>::vdowrite(const pstring &ls) const
+{
+ m_base->vlog(L, ls);
+}
+
+#endif /* _PSTRING_H_ */
diff --git a/src/emu/netlist/plib/plists.h b/src/lib/netlist/plib/plists.h
index ab8ebf414c7..dd26cfb963b 100644
--- a/src/emu/netlist/plib/plists.h
+++ b/src/lib/netlist/plib/plists.h
@@ -499,8 +499,7 @@ public:
}
p = p->m_next;
}
- //FXIME: throw a standard exception
- //nl_assert_always(false, "element not found");
+ throw pexception("element not found");
}
}
@@ -567,7 +566,7 @@ public:
p = pn + onstr.len();
pn = str.find(onstr, p);
}
- if (p<str.len())
+ if (p < (int) str.len())
{
pstring t = str.substr(p);
if (!ignore_empty || t.len() != 0)
@@ -580,13 +579,13 @@ public:
pstring_list_t temp;
pstring col = "";
- int i = 0;
- while (i<str.len())
+ unsigned i = 0;
+ while (i<str.blen())
{
int p = -1;
for (std::size_t j=0; j < onstrl.size(); j++)
{
- if (std::strncmp(onstrl[j].cstr(), &(str.cstr()[i]), onstrl[j].len())==0)
+ if (std::memcmp(onstrl[j].cstr(), &(str.cstr()[i]), onstrl[j].blen())==0)
{
p = j;
break;
@@ -596,14 +595,16 @@ public:
{
if (col != "")
temp.add(col);
+
col = "";
temp.add(onstrl[p]);
- i += onstrl[p].len();
+ i += onstrl[p].blen();
}
else
{
- col += str.cstr()[i];
- i++;
+ pstring::traits::code_t c = pstring::traits::code(str.cstr() + i);
+ col += c;
+ i+=pstring::traits::codelen(c);
}
}
if (col != "")
@@ -620,26 +621,44 @@ public:
template <class C>
struct phash_functor
{
- unsigned hash(const C &v) const { return (unsigned) v; }
+ phash_functor()
+ {}
+ phash_functor(const C &v)
+ {
+ m_hash = v;
+ }
+ friend unsigned operator%(const phash_functor &lhs, const unsigned &rhs) { return lhs.m_hash % rhs; }
+ bool operator==(const phash_functor &lhs) const { return (m_hash == lhs.m_hash); }
+private:
+ unsigned m_hash;
};
template <>
struct phash_functor<pstring>
{
-#if 1
-#if 1
- unsigned hash(const pstring &v) const
- {
- const char *string = v.cstr();
- unsigned result = *string++;
- for (UINT8 c = *string++; c != 0; c = *string++)
- result = (result*33) ^ c;
- return result;
- }
-#else
+ phash_functor()
+ {}
+ phash_functor(const pstring &v)
+ {
+ /* modified djb2 */
+ const pstring::mem_t *string = v.cstr();
+ unsigned result = 5381;
+ for (pstring::mem_t c = *string; c != 0; c = *string++)
+ result = ((result << 5) + result ) ^ (result >> (32 - 5)) ^ c;
+ //result = (result*33) ^ c;
+ m_hash = result;
+ }
+ friend unsigned operator%(const phash_functor<pstring> &lhs, const unsigned &rhs) { return lhs.m_hash % rhs; }
+ bool operator==(const phash_functor<pstring> &lhs) const { return (m_hash == lhs.m_hash); }
+private:
+ unsigned m_hash;
+};
+
+#if 0
+#if 0
unsigned hash(const pstring &v) const
{
- /* Fowler–Noll–Vo hash - FNV-1 */
+ /* Fowler???Noll???Vo hash - FNV-1 */
const char *string = v.cstr();
unsigned result = 2166136261;
for (UINT8 c = *string++; c != 0; c = *string++)
@@ -647,33 +666,32 @@ struct phash_functor<pstring>
// result = (result ^ c) * 16777619; FNV 1a
return result;
}
-#endif
#else
unsigned hash(const pstring &v) const
{
/* jenkins one at a time algo */
unsigned result = 0;
const char *string = v.cstr();
- while (*string)
- {
- result += *string;
- string++;
- result += (result << 10);
- result ^= (result >> 6);
- }
- result += (result << 3);
- result ^= (result >> 11);
- result += (result << 15);
- return result;
+ while (*string)
+ {
+ result += *string;
+ string++;
+ result += (result << 10);
+ result ^= (result >> 6);
+ }
+ result += (result << 3);
+ result ^= (result >> 11);
+ result += (result << 15);
+ return result;
}
#endif
-};
+#endif
template <class K, class V, class H = phash_functor<K> >
class phashmap_t
{
public:
- phashmap_t() : m_hash(17)
+ phashmap_t() : m_hash(37)
{
for (unsigned i=0; i<m_hash.size(); i++)
m_hash[i] = -1;
@@ -686,17 +704,18 @@ public:
struct element_t
{
element_t() { }
- element_t(K key, unsigned hash, V value)
+ element_t(const K &key, const H &hash, const V &value)
: m_key(key), m_hash(hash), m_value(value), m_next(-1)
{}
K m_key;
- unsigned m_hash;
+ H m_hash;
V m_value;
int m_next;
};
void clear()
{
+#if 0
if (0)
{
unsigned cnt = 0;
@@ -709,6 +728,7 @@ public:
else
printf("phashmap: No elements .. \n");
}
+#endif
m_values.clear();
for (unsigned i=0; i<m_hash.size(); i++)
m_hash[i] = -1;
@@ -736,15 +756,14 @@ public:
* and accept that outside we will not have a prime
*
*/
- if (m_values.size() > m_hash.size())
+ if (m_values.size() * 3 / 2 > m_hash.size())
{
unsigned n = std::sqrt( 2 * m_hash.size());
n = n * n + n + 41;
m_hash.resize(n);
rebuild();
}
- const H h;
- const unsigned hash=h.hash(key);
+ const H hash(key);
const unsigned pos = hash % m_hash.size();
if (m_hash[pos] == -1)
{
@@ -780,27 +799,15 @@ public:
return m_values[p].m_value;
}
- const V& operator[](const K &key) const
- {
- int p = get_idx(key);
- if (p == -1)
- {
- p = m_values.size();
- add(key, V());
- }
- return m_values[p].m_value;
- }
-
V& value_at(const unsigned pos) { return m_values[pos].m_value; }
const V& value_at(const unsigned pos) const { return m_values[pos].m_value; }
- V& key_at(const unsigned pos) const { return m_values[pos].m_key; }
+ V& key_at(const unsigned pos) { return m_values[pos].m_key; }
private:
int get_idx(const K &key) const
{
- H h;
- const unsigned hash=h.hash(key);
+ H hash(key);
const unsigned pos = hash % m_hash.size();
for (int ep = m_hash[pos]; ep != -1; ep = m_values[ep].m_next)
diff --git a/src/emu/netlist/plib/poptions.h b/src/lib/netlist/plib/poptions.h
index b082504930d..b082504930d 100644
--- a/src/emu/netlist/plib/poptions.h
+++ b/src/lib/netlist/plib/poptions.h
diff --git a/src/emu/netlist/plib/pparser.c b/src/lib/netlist/plib/pparser.c
index 954b9048810..aa11c30cfa9 100644
--- a/src/emu/netlist/plib/pparser.c
+++ b/src/lib/netlist/plib/pparser.c
@@ -5,13 +5,16 @@
*
*/
-#include <cstdio>
#include <cstdarg>
#include "pparser.h"
-//#undef NL_VERBOSE_OUT
-//#define NL_VERBOSE_OUT(x) printf x
+// for now, make buggy GCC/Mingw STFU about I64FMT
+#if (defined(__MINGW32__) && (__GNUC__ >= 5))
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wformat"
+#pragma GCC diagnostic ignored "-Wformat-extra-args"
+#endif
// ----------------------------------------------------------------------------------------
// A simple tokenizer
@@ -19,19 +22,13 @@
pstring ptokenizer::currentline_str()
{
- char buf[300];
- int bufp = 0;
- const char *p = m_line_ptr;
- while (*p && *p != 10)
- buf[bufp++] = *p++;
- buf[bufp] = 0;
- return pstring(buf);
+ return m_cur_line;
}
void ptokenizer::skipeol()
{
- char c = getc();
+ pstring::code_t c = getc();
while (c)
{
if (c == 10)
@@ -46,17 +43,19 @@ void ptokenizer::skipeol()
}
-unsigned char ptokenizer::getc()
+pstring::code_t ptokenizer::getc()
{
- if (*m_px == 10)
+ if (m_px >= m_cur_line.len())
{
- m_line++;
- m_line_ptr = m_px + 1;
+ if (m_strm.readline(m_cur_line))
+ {
+ m_cur_line += "\n";
+ m_px = 0;
+ }
+ else
+ return 0;
}
- if (*m_px)
- return *(m_px++);
- else
- return *m_px;
+ return m_cur_line.code_at(m_px++);
}
void ptokenizer::ungetc()
@@ -73,7 +72,7 @@ void ptokenizer::require_token(const token_t tok, const token_id_t &token_num)
{
if (!tok.is(token_num))
{
- error("Error: expected token <%s> got <%s>\n", m_tokens[token_num.id()].cstr(), tok.str().cstr());
+ error(pfmt("Expected token <{1}> got <{2}>")(m_tokens[token_num.id()])(tok.str()) );
}
}
@@ -82,7 +81,7 @@ pstring ptokenizer::get_string()
token_t tok = get_token();
if (!tok.is_type(STRING))
{
- error("Error: expected a string, got <%s>\n", tok.str().cstr());
+ error(pfmt("Expected a string, got <{1}>")(tok.str()) );
}
return tok.str();
}
@@ -92,7 +91,7 @@ pstring ptokenizer::get_identifier()
token_t tok = get_token();
if (!tok.is_type(IDENTIFIER))
{
- error("Error: expected an identifier, got <%s>\n", tok.str().cstr());
+ error(pfmt("Expected an identifier, got <{1}>")(tok.str()) );
}
return tok.str();
}
@@ -102,7 +101,7 @@ pstring ptokenizer::get_identifier_or_number()
token_t tok = get_token();
if (!(tok.is_type(IDENTIFIER) || tok.is_type(NUMBER)))
{
- error("Error: expected an identifier, got <%s>\n", tok.str().cstr());
+ error(pfmt("Expected an identifier, got <{1}>")(tok.str()) );
}
return tok.str();
}
@@ -112,12 +111,12 @@ double ptokenizer::get_number_double()
token_t tok = get_token();
if (!tok.is_type(NUMBER))
{
- error("Error: expected a number, got <%s>\n", tok.str().cstr());
+ error(pfmt("Expected a number, got <{1}>")(tok.str()) );
}
bool err = false;
double ret = tok.str().as_double(&err);
if (err)
- error("Error: expected a number, got <%s>\n", tok.str().cstr());
+ error(pfmt("Expected a number, got <{1}>")(tok.str()) );
return ret;
}
@@ -126,12 +125,12 @@ long ptokenizer::get_number_long()
token_t tok = get_token();
if (!tok.is_type(NUMBER))
{
- error("Error: expected a long int, got <%s>\n", tok.str().cstr());
+ error(pfmt("Expected a long int, got <{1}>")(tok.str()) );
}
bool err = false;
long ret = tok.str().as_long(&err);
if (err)
- error("Error: expected a long int, got <%s>\n", tok.str().cstr());
+ error(pfmt("Expected a long int, got <{1}>")(tok.str()) );
return ret;
}
@@ -158,14 +157,16 @@ ptokenizer::token_t ptokenizer::get_token()
skipeol();
}
else
+ {
return ret;
+ }
}
}
ptokenizer::token_t ptokenizer::get_token_internal()
{
/* skip ws */
- char c = getc();
+ pstring::code_t c = getc();
while (m_whitespace.find(c)>=0)
{
c = getc();
@@ -248,16 +249,9 @@ ptokenizer::token_t ptokenizer::get_token_internal()
}
-ATTR_COLD void ptokenizer::error(const char *format, ...)
+ATTR_COLD void ptokenizer::error(const pstring &errs)
{
- va_list ap;
- va_start(ap, format);
-
- pstring errmsg1 = pstring(format).vprintf(ap);
- va_end(ap);
-
- verror(errmsg1, currentline_no(), currentline_str());
-
+ verror("Error: " + errs, currentline_no(), currentline_str());
//throw error;
}
@@ -266,6 +260,7 @@ ATTR_COLD void ptokenizer::error(const char *format, ...)
// ----------------------------------------------------------------------------------------
ppreprocessor::ppreprocessor()
+: m_ifflag(0), m_level(0), m_lineno(0)
{
m_expr_sep.add("!");
m_expr_sep.add("(");
@@ -278,12 +273,12 @@ ppreprocessor::ppreprocessor()
m_expr_sep.add(" ");
m_expr_sep.add("\t");
- m_defines.add(define_t("__PLIB_PREPROCESSOR__", "1"));
+ m_defines.add("__PLIB_PREPROCESSOR__", define_t("__PLIB_PREPROCESSOR__", "1"));
}
void ppreprocessor::error(const pstring &err)
{
- fprintf(stderr, "PREPRO ERROR: %s\n", err.cstr());
+ throw pexception("PREPRO ERROR: " + err);
}
@@ -360,12 +355,11 @@ double ppreprocessor::expr(const pstring_list_t &sexpr, std::size_t &start, int
ppreprocessor::define_t *ppreprocessor::get_define(const pstring &name)
{
- for (std::size_t i = 0; i<m_defines.size(); i++)
- {
- if (m_defines[i].m_name == name)
- return &m_defines[i];
- }
- return NULL;
+ int idx = m_defines.index_of(name);
+ if (idx >= 0)
+ return &m_defines.value_at(idx);
+ else
+ return NULL;
}
pstring ppreprocessor::replace_macros(const pstring &line)
@@ -380,7 +374,7 @@ pstring ppreprocessor::replace_macros(const pstring &line)
else
ret.cat(elems[i]);
}
- return pstring(ret.cstr());
+ return ret;
}
static pstring catremainder(const pstring_list_t &elems, std::size_t start, pstring sep)
@@ -391,92 +385,98 @@ static pstring catremainder(const pstring_list_t &elems, std::size_t start, pstr
ret.cat(elems[i]);
ret.cat(sep);
}
- return pstring(ret.cstr());
+ return ret;
}
-pstring ppreprocessor::process(const pstring &contents)
+pstring ppreprocessor::process_line(const pstring &line)
{
- pstringbuffer ret = "";
- pstring_list_t lines(contents,"\n", false);
- UINT32 ifflag = 0; // 31 if levels
- int level = 0;
-
- std::size_t i=0;
- while (i<lines.size())
+ pstring lt = line.replace("\t"," ").trim();
+ pstringbuffer ret;
+ m_lineno++;
+ // FIXME ... revise and extend macro handling
+ if (lt.startsWith("#"))
{
- pstring line = lines[i];
- pstring lt = line.replace("\t"," ").trim();
- // FIXME ... revise and extend macro handling
- if (lt.startsWith("#"))
+ pstring_list_t lti(lt, " ", true);
+ if (lti[0].equals("#if"))
{
- pstring_list_t lti(lt, " ", true);
- if (lti[0].equals("#if"))
- {
- level++;
- std::size_t start = 0;
- lt = replace_macros(lt);
- pstring_list_t t = pstring_list_t::splitexpr(lt.substr(3).replace(" ",""), m_expr_sep);
- int val = expr(t, start, 0);
- if (val == 0)
- ifflag |= (1 << level);
- }
- else if (lti[0].equals("#ifdef"))
- {
- level++;
- if (get_define(lti[1]) == NULL)
- ifflag |= (1 << level);
- }
- else if (lti[0].equals("#ifndef"))
- {
- level++;
- if (get_define(lti[1]) != NULL)
- ifflag |= (1 << level);
- }
- else if (lti[0].equals("#else"))
- {
- ifflag ^= (1 << level);
- }
- else if (lti[0].equals("#endif"))
- {
- ifflag &= ~(1 << level);
- level--;
- }
- else if (lti[0].equals("#include"))
- {
- // ignore
- }
- else if (lti[0].equals("#pragma"))
+ m_level++;
+ std::size_t start = 0;
+ lt = replace_macros(lt);
+ pstring_list_t t = pstring_list_t::splitexpr(lt.substr(3).replace(" ",""), m_expr_sep);
+ int val = expr(t, start, 0);
+ if (val == 0)
+ m_ifflag |= (1 << m_level);
+ }
+ else if (lti[0].equals("#ifdef"))
+ {
+ m_level++;
+ if (get_define(lti[1]) == NULL)
+ m_ifflag |= (1 << m_level);
+ }
+ else if (lti[0].equals("#ifndef"))
+ {
+ m_level++;
+ if (get_define(lti[1]) != NULL)
+ m_ifflag |= (1 << m_level);
+ }
+ else if (lti[0].equals("#else"))
+ {
+ m_ifflag ^= (1 << m_level);
+ }
+ else if (lti[0].equals("#endif"))
+ {
+ m_ifflag &= ~(1 << m_level);
+ m_level--;
+ }
+ else if (lti[0].equals("#include"))
+ {
+ // ignore
+ }
+ else if (lti[0].equals("#pragma"))
+ {
+ if (m_ifflag == 0 && lti.size() > 3 && lti[1].equals("NETLIST"))
{
- if (ifflag == 0 && lti.size() > 3 && lti[1].equals("NETLIST"))
- {
- if (lti[2].equals("warning"))
- error("NETLIST: " + catremainder(lti, 3, " "));
- }
+ if (lti[2].equals("warning"))
+ error("NETLIST: " + catremainder(lti, 3, " "));
}
- else if (lti[0].equals("#define"))
+ }
+ else if (lti[0].equals("#define"))
+ {
+ if (m_ifflag == 0)
{
- if (ifflag == 0)
- {
- if (lti.size() != 3)
- error(pstring::sprintf("PREPRO: only simple defines allowed: %s", line.cstr()));
- m_defines.add(define_t(lti[1], lti[2]));
- }
+ if (lti.size() != 3)
+ error("PREPRO: only simple defines allowed: " + line);
+ m_defines.add(lti[1], define_t(lti[1], lti[2]));
}
- else
- error(pstring::sprintf("unknown directive on line %" SIZETFMT ": %s\n", SIZET_PRINTF(i), line.cstr()));
}
else
+ error(pfmt("unknown directive on line {1}: {2}")(m_lineno)(line));
+ }
+ else
+ {
+ lt = replace_macros(lt);
+ if (m_ifflag == 0)
{
- //if (ifflag == 0 && level > 0)
- // fprintf(stderr, "conditional: %s\n", line.cstr());
- lt = replace_macros(lt);
- if (ifflag == 0)
- {
- ret.cat(lt);
- ret.cat("\n");
- }
+ ret.cat(lt);
+ ret.cat("\n");
}
- i++;
}
- return pstring(ret.cstr());
+ return ret;
+}
+
+
+postream & ppreprocessor::process_i(pistream &istrm, postream &ostrm)
+{
+ pstring line;
+ while (istrm.readline(line))
+ {
+ line = process_line(line);
+ ostrm.writeline(line);
+ }
+ return ostrm;
}
+
+
+#if (defined(__MINGW32__) && (__GNUC__ >= 5))
+#pragma GCC diagnostic pop
+#endif
diff --git a/src/emu/netlist/plib/pparser.h b/src/lib/netlist/plib/pparser.h
index 15d81294a09..34dfdbfcff3 100644
--- a/src/emu/netlist/plib/pparser.h
+++ b/src/lib/netlist/plib/pparser.h
@@ -11,6 +11,7 @@
#include "pconfig.h"
#include "pstring.h"
#include "plists.h"
+#include "pstream.h"
class ptokenizer
{
@@ -18,8 +19,8 @@ class ptokenizer
public:
virtual ~ptokenizer() {}
- ptokenizer()
- : m_line(1), m_line_ptr(NULL), m_px(NULL), m_string('"')
+ ptokenizer(pistream &strm)
+ : m_strm(strm), m_lineno(1), m_px(0), m_string('"')
{}
enum token_type
@@ -78,7 +79,7 @@ public:
};
- int currentline_no() { return m_line; }
+ int currentline_no() { return m_lineno; }
pstring currentline_str();
/* tokenizer stuff follows ... */
@@ -111,23 +112,24 @@ public:
}
token_t get_token_internal();
- void error(const char *format, ...) ATTR_PRINTF(2,3);
-
- void reset(const char *p) { m_px = p; m_line = 1; m_line_ptr = p; }
+ void error(const pstring &errs);
protected:
- virtual void verror(pstring msg, int line_num, pstring line) = 0;
+ virtual void verror(const pstring &msg, int line_num, const pstring &line) = 0;
private:
void skipeol();
- unsigned char getc();
+ pstring::code_t getc();
void ungetc();
- bool eof() { return *m_px == 0; }
- int m_line;
- const char * m_line_ptr;
- const char * m_px;
+ bool eof() { return m_strm.eof(); }
+
+ pistream &m_strm;
+
+ int m_lineno;
+ pstring m_cur_line;
+ unsigned m_px;
/* tokenizer stuff follows ... */
@@ -136,7 +138,7 @@ private:
pstring m_number_chars_start;
plist_t<pstring> m_tokens;
pstring m_whitespace;
- char m_string;
+ pstring::code_t m_string;
token_id_t m_tok_comment_start;
token_id_t m_tok_comment_end;
@@ -162,10 +164,16 @@ public:
ppreprocessor();
virtual ~ppreprocessor() {}
- pstring process(const pstring &contents);
+ template<class ISTR, class OSTR>
+ OSTR &process(ISTR &istrm, OSTR &ostrm)
+ {
+ return dynamic_cast<OSTR &>(process_i(istrm, ostrm));
+ }
protected:
+ postream &process_i(pistream &istrm, postream &ostrm);
+
double expr(const pstring_list_t &sexpr, std::size_t &start, int prio);
define_t *get_define(const pstring &name);
@@ -176,8 +184,15 @@ protected:
private:
- plist_t<define_t> m_defines;
+ pstring process_line(const pstring &line);
+
+ phashmap_t<pstring, define_t> m_defines;
pstring_list_t m_expr_sep;
+
+ //pstringbuffer m_ret;
+ UINT32 m_ifflag; // 31 if levels
+ int m_level;
+ int m_lineno;
};
#endif /* PPARSER_H_ */
diff --git a/src/emu/netlist/plib/pstate.c b/src/lib/netlist/plib/pstate.c
index 909bfcb2e58..cf2c863ed11 100644
--- a/src/emu/netlist/plib/pstate.c
+++ b/src/lib/netlist/plib/pstate.c
@@ -25,6 +25,9 @@ ATTR_COLD void pstate_manager_t::save_state_ptr(const pstring &stname, const pst
"NOT_SUPPORTED",
"DT_CUSTOM",
"DT_DOUBLE",
+#if (PHAS_INT128)
+ "DT_INT128",
+#endif
"DT_INT64",
"DT_INT16",
"DT_INT8",
@@ -75,4 +78,3 @@ template<> ATTR_COLD void pstate_manager_t::save_item(pstate_callback_t &state,
m_save.add(p);
state.register_state(*this, stname);
}
-
diff --git a/src/emu/netlist/plib/pstate.h b/src/lib/netlist/plib/pstate.h
index 0350b0fe309..b42d3dac882 100644
--- a/src/emu/netlist/plib/pstate.h
+++ b/src/lib/netlist/plib/pstate.h
@@ -32,6 +32,9 @@ enum pstate_data_type_e {
NOT_SUPPORTED,
DT_CUSTOM,
DT_DOUBLE,
+#if (PHAS_INT128)
+ DT_INT128,
+#endif
DT_INT64,
DT_INT16,
DT_INT8,
@@ -63,6 +66,10 @@ NETLIST_SAVE_TYPE(double, DT_DOUBLE);
NETLIST_SAVE_TYPE(float, DT_FLOAT);
NETLIST_SAVE_TYPE(INT8, DT_INT8);
NETLIST_SAVE_TYPE(UINT8, DT_INT8);
+#if (PHAS_INT128)
+NETLIST_SAVE_TYPE(INT128, DT_INT128);
+NETLIST_SAVE_TYPE(UINT128, DT_INT128);
+#endif
NETLIST_SAVE_TYPE(INT64, DT_INT64);
NETLIST_SAVE_TYPE(UINT64, DT_INT64);
NETLIST_SAVE_TYPE(bool, DT_BOOLEAN);
diff --git a/src/lib/netlist/plib/pstream.c b/src/lib/netlist/plib/pstream.c
new file mode 100644
index 00000000000..ba7c5c7eda2
--- /dev/null
+++ b/src/lib/netlist/plib/pstream.c
@@ -0,0 +1,362 @@
+// license:GPL-2.0+
+// copyright-holders:Couriersud
+/*
+ * pstream.c
+ *
+ */
+
+#include <cstdio>
+#include <cstring>
+#include <cstdlib>
+#include <algorithm>
+
+#include "pstream.h"
+#include "palloc.h"
+
+// -----------------------------------------------------------------------------
+// pistream: input stream
+// -----------------------------------------------------------------------------
+
+bool pistream::readline(pstring &line)
+{
+ UINT8 c = 0;
+ pstringbuffer buf;
+ if (!this->read(c))
+ {
+ line = "";
+ return false;
+ }
+ while (true)
+ {
+ if (c == 10)
+ break;
+ else if (c != 13) /* ignore CR */
+ buf += c;
+ if (!this->read(c))
+ break;
+ }
+ line = buf;
+ return true;
+}
+
+// -----------------------------------------------------------------------------
+// postream: output stream
+// -----------------------------------------------------------------------------
+
+void postream::write(pistream &strm)
+{
+ char buf[1024];
+ unsigned r;
+ while ( !bad() && ((r=strm.read(buf, 1024)) > 0))
+ write(buf, r);
+}
+
+// -----------------------------------------------------------------------------
+// Input file stream
+// -----------------------------------------------------------------------------
+
+pifilestream::pifilestream(const pstring &fname)
+: pistream(0), m_pos(0), m_actually_close(true)
+{
+ init(fopen(fname.cstr(), "rb"));
+}
+
+pifilestream::pifilestream(void *file, const bool do_close)
+: pistream(0), m_pos(0), m_actually_close(do_close)
+{
+ init(file);
+}
+
+void pifilestream::init(void *file)
+{
+ m_file = file;
+ if (m_file == NULL)
+ {
+ set_flag(FLAG_ERROR);
+ set_flag(FLAG_EOF);
+ set_flag(FLAG_CLOSED);
+ }
+ else
+ {
+ if (ftell((FILE *) m_file) >= 0)
+ {
+ if (fseek((FILE *) m_file, 0, SEEK_SET) >= 0)
+ set_flag(FLAG_SEEKABLE);
+ }
+ }
+}
+
+pifilestream::~pifilestream()
+{
+ if (!closed())
+ close();
+}
+
+void pifilestream::close()
+{
+ if (m_actually_close)
+ {
+ fclose((FILE *) m_file);
+ set_flag(FLAG_CLOSED);
+ }
+}
+
+unsigned pifilestream::vread(void *buf, unsigned n)
+{
+ std::size_t r = fread(buf, 1, n, (FILE *) m_file);
+ if (r < n)
+ {
+ if (feof((FILE *) m_file))
+ set_flag(FLAG_EOF);
+ if (ferror((FILE *) m_file))
+ set_flag(FLAG_ERROR);
+ }
+ m_pos += r;
+ return r;
+}
+
+void pifilestream::vseek(pos_type n)
+{
+ check_seekable();
+ if (fseek((FILE *) m_file, SEEK_SET, n) < 0)
+ set_flag(FLAG_ERROR);
+ else
+ m_pos = n;
+ if (feof((FILE *) m_file))
+ set_flag(FLAG_EOF);
+ else
+ clear_flag(FLAG_EOF);
+ if (ferror((FILE *) m_file))
+ set_flag(FLAG_ERROR);
+}
+
+pifilestream::pos_type pifilestream::vtell()
+{
+ long ret = ftell((FILE *) m_file);
+ if (ret < 0)
+ {
+ return m_pos;
+ }
+ else
+ return ret;
+}
+
+// -----------------------------------------------------------------------------
+// pstdin: reads from stdin
+// -----------------------------------------------------------------------------
+
+pstdin::pstdin()
+: pifilestream(stdin, false)
+{
+ /* nothing to do */
+}
+
+// -----------------------------------------------------------------------------
+// Output file stream
+// -----------------------------------------------------------------------------
+
+pofilestream::pofilestream(const pstring &fname)
+: postream(0), m_pos(0), m_actually_close(true)
+{
+ init(fopen(fname.cstr(), "wb"));
+}
+
+pofilestream::pofilestream(void *file, const bool do_close)
+: postream(0), m_pos(0), m_actually_close(do_close)
+{
+ init(file);
+}
+
+void pofilestream::init(void *file)
+{
+ m_file = file;
+ if (m_file == NULL)
+ {
+ set_flag(FLAG_ERROR);
+ set_flag(FLAG_CLOSED);
+ }
+ else
+ {
+ if (ftell((FILE *) m_file) >= 0)
+ {
+ if (fseek((FILE *) m_file, 0, SEEK_SET) >= 0)
+ set_flag(FLAG_SEEKABLE);
+ }
+ }
+}
+
+pofilestream::~pofilestream()
+{
+ if (!closed())
+ close();
+}
+
+void pofilestream::close()
+{
+ if (m_actually_close)
+ {
+ fclose((FILE *) m_file);
+ set_flag(FLAG_CLOSED);
+ }
+}
+
+void pofilestream::vwrite(const void *buf, unsigned n)
+{
+ std::size_t r = fwrite(buf, 1, n, (FILE *) m_file);
+ if (r < n)
+ {
+ if (ferror((FILE *) m_file))
+ set_flag(FLAG_ERROR);
+ }
+ m_pos += r;
+}
+
+void pofilestream::vseek(pos_type n)
+{
+ check_seekable();
+ if (fseek((FILE *) m_file, SEEK_SET, n) < 0)
+ set_flag(FLAG_ERROR);
+ else
+ {
+ m_pos = n;
+ if (ferror((FILE *) m_file))
+ set_flag(FLAG_ERROR);
+ }
+}
+
+pstream::pos_type pofilestream::vtell()
+{
+ long ret = ftell((FILE *) m_file);
+ if (ret < 0)
+ {
+ return m_pos;
+ }
+ else
+ return ret;
+}
+
+// -----------------------------------------------------------------------------
+// pstderr: write to stderr
+// -----------------------------------------------------------------------------
+
+pstderr::pstderr()
+: pofilestream(stderr, false)
+{
+}
+
+// -----------------------------------------------------------------------------
+// pstdout: write to stdout
+// -----------------------------------------------------------------------------
+
+pstdout::pstdout()
+: pofilestream(stdout, false)
+{
+}
+
+// -----------------------------------------------------------------------------
+// Memory stream
+// -----------------------------------------------------------------------------
+
+pimemstream::pimemstream(const void *mem, const pos_type len)
+ : pistream(FLAG_SEEKABLE), m_pos(0), m_len(len), m_mem((char *) mem)
+{
+}
+
+pimemstream::pimemstream(const pomemstream &ostrm)
+: pistream(FLAG_SEEKABLE), m_pos(0), m_len(ostrm.size()), m_mem((char *) ostrm.memory())
+{
+}
+
+pimemstream::~pimemstream()
+{
+}
+
+unsigned pimemstream::vread(void *buf, unsigned n)
+{
+ unsigned ret = (m_pos + n <= m_len) ? n : m_len - m_pos;
+
+ if (ret > 0)
+ {
+ memcpy(buf, m_mem + m_pos, ret);
+ m_pos += ret;
+ }
+
+ if (ret < n)
+ set_flag(FLAG_EOF);
+
+ return ret;
+}
+
+void pimemstream::vseek(pos_type n)
+{
+ m_pos = (n>=m_len) ? m_len : n;
+ clear_flag(FLAG_EOF);
+
+}
+
+pimemstream::pos_type pimemstream::vtell()
+{
+ return m_pos;
+}
+
+// -----------------------------------------------------------------------------
+// Output memory stream
+// -----------------------------------------------------------------------------
+
+pomemstream::pomemstream()
+: postream(FLAG_SEEKABLE), m_pos(0), m_capacity(1024), m_size(0)
+{
+ m_mem = palloc_array(char, m_capacity);
+}
+
+pomemstream::~pomemstream()
+{
+ pfree_array(m_mem);
+}
+
+void pomemstream::vwrite(const void *buf, unsigned n)
+{
+ if (m_pos + n >= m_capacity)
+ {
+ while (m_pos + n >= m_capacity)
+ m_capacity *= 2;
+ char *o = m_mem;
+ m_mem = palloc_array(char, m_capacity);
+ if (m_mem == NULL)
+ {
+ set_flag(FLAG_ERROR);
+ return;
+ }
+ memcpy(m_mem, o, m_pos);
+ pfree_array(o);
+ }
+
+ memcpy(m_mem + m_pos, buf, n);
+ m_pos += n;
+ m_size = std::max(m_pos, m_size);
+}
+
+void pomemstream::vseek(pos_type n)
+{
+ m_pos = n;
+ m_size = std::max(m_pos, m_size);
+ if (m_size >= m_capacity)
+ {
+ while (m_size >= m_capacity)
+ m_capacity *= 2;
+ char *o = m_mem;
+ m_mem = palloc_array(char, m_capacity);
+ if (m_mem == NULL)
+ {
+ set_flag(FLAG_ERROR);
+ return;
+ }
+ memcpy(m_mem, o, m_pos);
+ pfree_array(o);
+ }
+}
+
+pstream::pos_type pomemstream::vtell()
+{
+ return m_pos;
+}
diff --git a/src/lib/netlist/plib/pstream.h b/src/lib/netlist/plib/pstream.h
new file mode 100644
index 00000000000..61f0959cadd
--- /dev/null
+++ b/src/lib/netlist/plib/pstream.h
@@ -0,0 +1,378 @@
+// license:GPL-2.0+
+// copyright-holders:Couriersud
+/*
+ * pstream.h
+ */
+
+#ifndef _PSTREAM_H_
+#define _PSTREAM_H_
+
+#include <cstdarg>
+#include <cstddef>
+#include <stdexcept>
+
+#include "pconfig.h"
+#include "pstring.h"
+#include "palloc.h"
+#include "pfmtlog.h"
+
+// -----------------------------------------------------------------------------
+// pstream: things common to all streams
+// -----------------------------------------------------------------------------
+
+class pstream
+{
+ P_PREVENT_COPYING(pstream)
+public:
+
+ typedef long unsigned pos_type;
+
+ static const pos_type SEEK_EOF = (pos_type) -1;
+
+ pstream(const unsigned flags) : m_flags(flags)
+ {
+ }
+ virtual ~pstream()
+ {
+ }
+
+ bool bad() const { return ((m_flags & FLAG_ERROR) != 0); }
+ bool seekable() const { return ((m_flags & FLAG_SEEKABLE) != 0); }
+
+ void seek(const pos_type n)
+ {
+ check_seekable();
+ return vseek(n);
+ }
+
+ pos_type tell()
+ {
+ return vtell();
+ }
+
+protected:
+ virtual void vseek(const pos_type n) = 0;
+ virtual pos_type vtell() = 0;
+
+ static const unsigned FLAG_EOF = 0x01;
+ static const unsigned FLAG_ERROR = 0x02;
+ static const unsigned FLAG_SEEKABLE = 0x04;
+ static const unsigned FLAG_CLOSED = 0x08; /* convenience flag */
+
+ bool closed() { return ((m_flags & FLAG_CLOSED) != 0); }
+
+ void set_flag(const unsigned flag)
+ {
+ m_flags |= flag;
+ }
+ void clear_flag(const unsigned flag)
+ {
+ m_flags &= ~flag;
+ }
+
+ void check_not_eof() const
+ {
+ if (m_flags & FLAG_EOF)
+ throw pexception("unexpected eof");
+ }
+
+ void check_seekable() const
+ {
+ if (!(m_flags & FLAG_SEEKABLE))
+ throw pexception("stream is not seekable");
+ }
+
+ unsigned flags() const { return m_flags; }
+private:
+
+ unsigned m_flags;
+};
+
+// -----------------------------------------------------------------------------
+// pistream: input stream
+// -----------------------------------------------------------------------------
+
+class pistream : public pstream
+{
+ P_PREVENT_COPYING(pistream)
+public:
+
+ pistream(const unsigned flags) : pstream(flags) {}
+ virtual ~pistream() {}
+
+ bool eof() const { return ((flags() & FLAG_EOF) != 0) || bad(); }
+
+ /* this digests linux & dos/windows text files */
+
+ bool readline(pstring &line);
+
+ bool read(UINT8 &c)
+ {
+ return (read(&c, 1) == 1);
+ }
+
+ unsigned read(void *buf, const unsigned n)
+ {
+ return vread(buf, n);
+ }
+
+protected:
+ /* read up to n bytes from stream */
+ virtual unsigned vread(void *buf, const unsigned n) = 0;
+
+private:
+};
+
+// -----------------------------------------------------------------------------
+// postream: output stream
+// -----------------------------------------------------------------------------
+
+class postream : public pstream
+{
+ P_PREVENT_COPYING(postream)
+public:
+
+ postream(unsigned flags) : pstream(flags) {}
+ virtual ~postream() {}
+
+ /* this digests linux & dos/windows text files */
+
+ void writeline(const pstring &line)
+ {
+ write(line);
+ write(10);
+ }
+
+ void write(const pstring &text)
+ {
+ write(text.cstr(), text.blen());
+ }
+
+ void write(const char c)
+ {
+ write(&c, 1);
+ }
+
+ void write(const void *buf, const unsigned n)
+ {
+ vwrite(buf, n);
+ }
+
+ void write(pistream &strm);
+
+protected:
+ /* write n bytes to stream */
+ virtual void vwrite(const void *buf, const unsigned n) = 0;
+
+private:
+};
+
+// -----------------------------------------------------------------------------
+// pomemstream: output string stream
+// -----------------------------------------------------------------------------
+
+class pomemstream : public postream
+{
+ P_PREVENT_COPYING(pomemstream)
+public:
+
+ pomemstream();
+ virtual ~pomemstream();
+
+ char *memory() const { return m_mem; }
+ unsigned size() const { return m_size; }
+
+protected:
+ /* write n bytes to stream */
+ virtual void vwrite(const void *buf, const unsigned n);
+ virtual void vseek(const pos_type n);
+ virtual pos_type vtell();
+
+private:
+ pos_type m_pos;
+ pos_type m_capacity;
+ pos_type m_size;
+ char *m_mem;
+};
+
+class postringstream : public postream
+{
+ P_PREVENT_COPYING(postringstream )
+
+public:
+
+ postringstream() : postream(0) { }
+ virtual ~postringstream() { }
+
+ const pstringbuffer &str() { return m_buf; }
+
+protected:
+ /* write n bytes to stream */
+ virtual void vwrite(const void *buf, const unsigned n)
+ {
+ m_buf.cat(buf, n);
+ }
+ virtual void vseek(const pos_type n) { }
+ virtual pos_type vtell() { return m_buf.len(); }
+
+private:
+ pstringbuffer m_buf;
+};
+
+// -----------------------------------------------------------------------------
+// pofilestream: file output stream
+// -----------------------------------------------------------------------------
+
+class pofilestream : public postream
+{
+ P_PREVENT_COPYING(pofilestream)
+public:
+
+ pofilestream(const pstring &fname);
+ virtual ~pofilestream();
+
+ void close();
+
+protected:
+ pofilestream(void *file, const bool do_close);
+ /* write n bytes to stream */
+ virtual void vwrite(const void *buf, const unsigned n);
+ virtual void vseek(const pos_type n);
+ virtual pos_type vtell();
+
+private:
+ void *m_file;
+ pos_type m_pos;
+ bool m_actually_close;
+
+ void init(void *file);
+};
+
+// -----------------------------------------------------------------------------
+// pstderr: write to stderr
+// -----------------------------------------------------------------------------
+
+class pstderr : public pofilestream
+{
+ P_PREVENT_COPYING(pstderr)
+public:
+ pstderr();
+};
+
+// -----------------------------------------------------------------------------
+// pstdout: write to stdout
+// -----------------------------------------------------------------------------
+
+class pstdout : public pofilestream
+{
+ P_PREVENT_COPYING(pstdout)
+public:
+ pstdout();
+};
+
+// -----------------------------------------------------------------------------
+// pifilestream: file input stream
+// -----------------------------------------------------------------------------
+
+class pifilestream : public pistream
+{
+ P_PREVENT_COPYING(pifilestream)
+public:
+
+ pifilestream(const pstring &fname);
+ virtual ~pifilestream();
+
+ void close();
+
+protected:
+ pifilestream(void *file, const bool do_close);
+
+ /* read up to n bytes from stream */
+ virtual unsigned vread(void *buf, const unsigned n);
+ virtual void vseek(const pos_type n);
+ virtual pos_type vtell();
+
+private:
+ void *m_file;
+ pos_type m_pos;
+ bool m_actually_close;
+
+ void init(void *file);
+};
+
+// -----------------------------------------------------------------------------
+// pstdin: reads from stdin
+// -----------------------------------------------------------------------------
+
+class pstdin : public pifilestream
+{
+ P_PREVENT_COPYING(pstdin)
+public:
+
+ pstdin();
+};
+
+// -----------------------------------------------------------------------------
+// pimemstream: input memory stream
+// -----------------------------------------------------------------------------
+
+class pimemstream : public pistream
+{
+ P_PREVENT_COPYING(pimemstream)
+public:
+
+ pimemstream(const void *mem, const pos_type len);
+ pimemstream(const pomemstream &ostrm);
+ virtual ~pimemstream();
+
+protected:
+ /* read up to n bytes from stream */
+ virtual unsigned vread(void *buf, const unsigned n);
+ virtual void vseek(const pos_type n);
+ virtual pos_type vtell();
+
+private:
+ pos_type m_pos;
+ pos_type m_len;
+ char *m_mem;
+};
+
+// -----------------------------------------------------------------------------
+// pistringstream: input string stream
+// -----------------------------------------------------------------------------
+
+class pistringstream : public pimemstream
+{
+ P_PREVENT_COPYING(pistringstream)
+public:
+
+ pistringstream(const pstring &str) : pimemstream(str.cstr(), str.len()), m_str(str) { }
+
+private:
+ /* only needed for a reference till destruction */
+ pstring m_str;
+};
+
+// -----------------------------------------------------------------------------
+// pstream_fmt_writer_t: writer on top of ostream
+// -----------------------------------------------------------------------------
+
+class pstream_fmt_writer_t : public pfmt_writer_t<>
+{
+ P_PREVENT_COPYING(pstream_fmt_writer_t)
+public:
+
+ pstream_fmt_writer_t(postream &strm) : m_strm(strm) {}
+ virtual ~pstream_fmt_writer_t() { }
+
+protected:
+ virtual void vdowrite(const pstring &ls) const
+ {
+ m_strm.write(ls);
+ }
+
+private:
+ postream &m_strm;
+};
+
+#endif /* _PSTREAM_H_ */
diff --git a/src/lib/netlist/plib/pstring.c b/src/lib/netlist/plib/pstring.c
new file mode 100644
index 00000000000..8ad86f41f3d
--- /dev/null
+++ b/src/lib/netlist/plib/pstring.c
@@ -0,0 +1,600 @@
+// license:GPL-2.0+
+// copyright-holders:Couriersud
+/*
+ * nl_string.c
+ *
+ */
+
+#include <cstring>
+//FIXME:: pstring should be locale free
+#include <cctype>
+#include <cstdlib>
+#include <cstdio>
+#include <algorithm>
+
+#include "pstring.h"
+#include "palloc.h"
+#include "plists.h"
+
+template<>
+pstr_t pstring_t<putf8_traits>::m_zero = pstr_t(0);
+template<>
+pstr_t pstring_t<pu8_traits>::m_zero = pstr_t(0);
+
+
+/*
+ * Uncomment the following to override defaults
+ */
+
+#define IMMEDIATE_MODE (1)
+//#define DEBUG_MODE (0)
+
+#ifdef MAME_DEBUG
+ #ifndef IMMEDIATE_MODE
+ #define IMMEDIATE_MODE (1)
+ #endif
+ #ifndef DEBUG_MODE
+ #define DEBUG_MODE (0)
+ #endif
+#else
+ #ifndef IMMEDIATE_MODE
+ #define IMMEDIATE_MODE (1)
+ #endif
+ #ifndef DEBUG_MODE
+ #define DEBUG_MODE (0)
+ #endif
+#endif
+
+template<typename F>
+pstring_t<F>::~pstring_t()
+{
+ sfree(m_ptr);
+}
+
+template<typename F>
+void pstring_t<F>::pcat(const mem_t *s)
+{
+ int slen = strlen(s);
+ pstr_t *n = salloc(m_ptr->len() + slen);
+ if (m_ptr->len() > 0)
+ std::memcpy(n->str(), m_ptr->str(), m_ptr->len());
+ if (slen > 0)
+ std::memcpy(n->str() + m_ptr->len(), s, slen);
+ *(n->str() + n->len()) = 0;
+ sfree(m_ptr);
+ m_ptr = n;
+}
+
+template<typename F>
+void pstring_t<F>::pcat(const pstring_t &s)
+{
+ int slen = s.blen();
+ pstr_t *n = salloc(m_ptr->len() + slen);
+ if (m_ptr->len() > 0)
+ std::memcpy(n->str(), m_ptr->str(), m_ptr->len());
+ if (slen > 0)
+ std::memcpy(n->str() + m_ptr->len(), s.cstr(), slen);
+ *(n->str() + n->len()) = 0;
+ sfree(m_ptr);
+ m_ptr = n;
+}
+
+template<typename F>
+int pstring_t<F>::pcmp(const pstring_t &right) const
+{
+ long l = std::min(blen(), right.blen());
+ if (l == 0)
+ {
+ if (blen() == 0 && right.blen() == 0)
+ return 0;
+ else if (right.blen() == 0)
+ return 1;
+ else
+ return -1;
+ }
+ int ret = memcmp(m_ptr->str(), right.cstr(), l);
+ if (ret == 0)
+ ret = this->blen() - right.blen();
+ if (ret < 0)
+ return -1;
+ else if (ret > 0)
+ return 1;
+ else
+ return 0;
+}
+
+
+template<typename F>
+void pstring_t<F>::pcopy(const mem_t *from, int size)
+{
+ pstr_t *n = salloc(size);
+ if (size > 0)
+ std::memcpy(n->str(), from, size);
+ *(n->str() + size) = 0;
+ sfree(m_ptr);
+ m_ptr = n;
+}
+
+template<typename F>
+const pstring_t<F> pstring_t<F>::substr(int start, int count) const
+{
+ pstring_t ret;
+ int alen = (int) len();
+ if (start < 0)
+ start = 0;
+ if (start >= alen)
+ return ret;
+ if (count <0 || start + count > alen)
+ count = alen - start;
+ const char *p = cstr();
+ if (count <= 0)
+ ret.pcopy(p, 0);
+ else
+ {
+ //FIXME: Trait to tell which one
+ //ret.pcopy(cstr() + start, count);
+ // find start
+ for (int i=0; i<start; i++)
+ p += F::codelen(p);
+ const char *e = p;
+ for (int i=0; i<count; i++)
+ e += F::codelen(e);
+ ret.pcopy(p, e-p);
+ }
+ return ret;
+}
+
+template<typename F>
+const pstring_t<F> pstring_t<F>::ucase() const
+{
+ pstring_t ret = *this;
+ ret.pcopy(cstr(), blen());
+ for (unsigned i=0; i<ret.len(); i++)
+ ret.m_ptr->str()[i] = toupper((unsigned) ret.m_ptr->str()[i]);
+ return ret;
+}
+
+template<typename F>
+int pstring_t<F>::find_first_not_of(const pstring_t &no) const
+{
+ char *t = m_ptr->str();
+ unsigned nolen = no.len();
+ unsigned tlen = len();
+ for (unsigned i=0; i < tlen; i++)
+ {
+ char *n = no.m_ptr->str();
+ bool f = true;
+ for (unsigned j=0; j < nolen; j++)
+ {
+ if (F::code(t) == F::code(n))
+ f = false;
+ n += F::codelen(t);
+ }
+ if (f)
+ return i;
+ t += F::codelen(t);
+ }
+ return -1;
+}
+
+template<typename F>
+int pstring_t<F>::find_last_not_of(const pstring_t &no) const
+{
+ char *t = m_ptr->str();
+ unsigned nolen = no.len();
+ unsigned tlen = len();
+ int last_found = -1;
+ for (unsigned i=0; i < tlen; i++)
+ {
+ char *n = no.m_ptr->str();
+ bool f = true;
+ for (unsigned j=0; j < nolen; j++)
+ {
+ if (F::code(t) == F::code(n))
+ f = false;
+ n += F::codelen(t);
+ }
+ if (f)
+ last_found = i;
+ t += F::codelen(t);
+ }
+ return last_found;
+}
+
+template<typename F>
+pstring_t<F> pstring_t<F>::replace(const pstring_t &search, const pstring_t &replace) const
+{
+ // FIXME: use this pstringbuffer ret = "";
+ pstring_t ret = "";
+ const int slen = search.blen();
+ const int tlen = blen();
+
+ if (slen == 0 || tlen < slen )
+ return *this;
+ int i = 0;
+ while (i < tlen - slen + 1)
+ {
+ if (memcmp(cstr()+i,search.cstr(),slen) == 0)
+ {
+ ret += replace;
+ i += slen;
+ }
+ else
+ {
+ /* avoid adding a code, cat a string ... */
+ mem_t buf[2] = { *(cstr() + i), 0 };
+ ret = ret.cat(buf);
+ i++;
+ }
+ }
+ ret = ret.cat(cstr() + i);
+ return ret;
+}
+
+template<typename F>
+const pstring_t<F> pstring_t<F>::ltrim(const pstring_t &ws) const
+{
+ int f = find_first_not_of(ws);
+ if (f>=0)
+ return substr(f);
+ else
+ return "";
+}
+
+template<typename F>
+const pstring_t<F> pstring_t<F>::rtrim(const pstring_t &ws) const
+{
+ int f = find_last_not_of(ws);
+ if (f>=0)
+ return left(f+1);
+ else
+ return "";
+}
+
+template<typename F>
+const pstring_t<F> pstring_t<F>::rpad(const pstring_t &ws, const unsigned cnt) const
+{
+ // FIXME: pstringbuffer ret(*this);
+
+ pstring_t ret(*this);
+ while (ret.len() < cnt)
+ ret += ws;
+ return pstring_t(ret).substr(0, cnt);
+}
+
+
+template<typename F>
+void pstring_t<F>::pcopy(const mem_t *from)
+{
+ pcopy(from, strlen(from));
+}
+
+template<typename F>
+double pstring_t<F>::as_double(bool *error) const
+{
+ double ret;
+ char *e = NULL;
+
+ if (error != NULL)
+ *error = false;
+ ret = strtod(cstr(), &e);
+ if (*e != 0)
+ if (error != NULL)
+ *error = true;
+ return ret;
+}
+
+template<typename F>
+long pstring_t<F>::as_long(bool *error) const
+{
+ long ret;
+ char *e = NULL;
+
+ if (error != NULL)
+ *error = false;
+ if (startsWith("0x"))
+ ret = strtol(substr(2).cstr(), &e, 16);
+ else
+ ret = strtol(cstr(), &e, 10);
+ if (*e != 0)
+ if (error != NULL)
+ *error = true;
+ return ret;
+}
+
+// ----------------------------------------------------------------------------------------
+// static stuff ...
+// ----------------------------------------------------------------------------------------
+
+/*
+ * Cached allocation of string memory
+ *
+ * This improves startup performance by 30%.
+ */
+
+#if 1
+
+static pstack_t<pstr_t *> *stk = NULL;
+
+static inline unsigned countleadbits(unsigned x)
+{
+#ifndef count_leading_zeros
+ unsigned msk;
+ unsigned ret;
+ if (x < 0x100)
+ {
+ msk = 0x80;
+ ret = 24;
+ }
+ else if (x < 0x10000)
+ {
+ msk = 0x8000;
+ ret = 16;
+ }
+ else if (x < 0x1000000)
+ {
+ msk = 0x800000;
+ ret = 8;
+ }
+ else
+ {
+ msk = 0x80000000;
+ ret = 0;
+ }
+ while ((msk & x) == 0 && ret < 31)
+ {
+ msk = msk >> 1;
+ ret++;
+ }
+ return ret;
+#else
+ return count_leading_zeros(x);
+#endif
+}
+
+template<typename F>
+void pstring_t<F>::sfree(pstr_t *s)
+{
+ s->m_ref_count--;
+ if (s->m_ref_count == 0 && s != &m_zero)
+ {
+ if (stk != NULL)
+ {
+ unsigned sn= ((32 - countleadbits(s->len())) + 1) / 2;
+ stk[sn].push(s);
+ }
+ else
+ pfree_array(((char *)s));
+ //_mm_free(((char *)s));
+ }
+}
+
+template<typename F>
+pstr_t *pstring_t<F>::salloc(int n)
+{
+ if (stk == NULL)
+ stk = palloc_array(pstack_t<pstr_t *>, 17);
+ pstr_t *p;
+ unsigned sn= ((32 - countleadbits(n)) + 1) / 2;
+ unsigned size = sizeof(pstr_t) + ((UINT64) 1<<(sn * 2)) + 1;
+ if (stk[sn].empty())
+ p = (pstr_t *) palloc_array(char, size);
+ else
+ {
+ p = stk[sn].pop();
+ }
+
+ // str_t *p = (str_t *) _mm_malloc(size, 8);
+ p->init(n);
+ return p;
+}
+template<typename F>
+void pstring_t<F>::resetmem()
+{
+ if (stk != NULL)
+ {
+ for (unsigned i=0; i<=16; i++)
+ {
+ for (; stk[i].count() > 0; )
+ pfree_array(stk[i].pop());
+ }
+ pfree_array(stk);
+ stk = NULL;
+ }
+}
+
+
+#else
+template<typename F>
+void pstring_t<F>::sfree(pstr_t *s)
+{
+ s->m_ref_count--;
+ if (s->m_ref_count == 0 && s != &m_zero)
+ {
+ pfree_array(((char *)s));
+ //_mm_free(((char *)s));
+ }
+}
+
+template<typename F>
+pstr_t *pstring_t<F>::salloc(int n)
+{
+ int size = sizeof(pstr_t) + n + 1;
+ pstr_t *p = (pstr_t *) palloc_array(char, size);
+ // str_t *p = (str_t *) _mm_malloc(size, 8);
+ p->init(n);
+ return p;
+}
+
+template<typename F>
+void pstring_t<F>::resetmem()
+{
+ // Release the 0 string
+}
+#endif
+
+
+// ----------------------------------------------------------------------------------------
+// pstring ...
+// ----------------------------------------------------------------------------------------
+
+template<typename F>
+int pstring_t<F>::find(const pstring_t &search, unsigned start) const
+{
+ const unsigned tlen = len();
+ const unsigned slen = search.len();
+ const char *s = search.cstr();
+ const unsigned startt = std::min(start, tlen);
+ const char *t = cstr();
+ for (unsigned i=0; i<startt; i++)
+ t += F::codelen(t);
+ for (int i=0; i <= (int) tlen - (int) startt - (int) slen; i++)
+ {
+ if (F::code(t) == F::code(s))
+ if (std::memcmp(t,s,search.blen())==0)
+ return i+startt;
+ t += F::codelen(t);
+ }
+ return -1;
+}
+
+template<typename F>
+int pstring_t<F>::find(const mem_t *search, unsigned start) const
+{
+ const unsigned tlen = len();
+ unsigned slen = 0;
+ unsigned sblen = 0;
+ const mem_t *x = search;
+ while (*x != 0)
+ {
+ slen++;
+ const unsigned sl = F::codelen(x);
+ x += sl;
+ sblen += sl;
+ }
+ const char *s = search;
+ const unsigned startt = std::min(start, tlen);
+ const char *t = cstr();
+ for (unsigned i=0; i<startt; i++)
+ t += F::codelen(t);
+ for (int i=0; i <= (int) tlen - (int) startt - (int) slen; i++)
+ {
+ if (F::code(t) == F::code(s))
+ if (std::memcmp(t,s,sblen)==0)
+ return i+startt;
+ t += F::codelen(t);
+ }
+ return -1;
+}
+
+template<typename F>
+bool pstring_t<F>::startsWith(const pstring_t &arg) const
+{
+ if (arg.blen() > blen())
+ return false;
+ else
+ return (memcmp(arg.cstr(), cstr(), arg.len()) == 0);
+}
+
+template<typename F>
+bool pstring_t<F>::endsWith(const pstring_t &arg) const
+{
+ if (arg.blen() > blen())
+ return false;
+ else
+ return (memcmp(cstr()+this->len()-arg.len(), arg.cstr(), arg.len()) == 0);
+}
+
+
+template<typename F>
+bool pstring_t<F>::startsWith(const mem_t *arg) const
+{
+ unsigned alen = strlen(arg);
+ if (alen > blen())
+ return false;
+ else
+ return (memcmp(arg, cstr(), alen) == 0);
+}
+
+template<typename F>
+int pstring_t<F>::pcmp(const mem_t *right) const
+{
+ return std::strcmp(m_ptr->str(), right);
+}
+
+// ----------------------------------------------------------------------------------------
+// pstringbuffer
+// ----------------------------------------------------------------------------------------
+
+pstringbuffer::~pstringbuffer()
+{
+ if (m_ptr != NULL)
+ pfree_array(m_ptr);
+}
+
+void pstringbuffer::resize(const std::size_t size)
+{
+ if (m_ptr == NULL)
+ {
+ m_size = DEFAULT_SIZE;
+ while (m_size <= size)
+ m_size *= 2;
+ m_ptr = palloc_array(char, m_size);
+ *m_ptr = 0;
+ m_len = 0;
+ }
+ else if (m_size < size)
+ {
+ while (m_size < size)
+ m_size *= 2;
+ char *new_buf = palloc_array(char, m_size);
+ std::memcpy(new_buf, m_ptr, m_len + 1);
+ pfree_array(m_ptr);
+ m_ptr = new_buf;
+ }
+}
+
+void pstringbuffer::pcopy(const char *from)
+{
+ std::size_t nl = strlen(from) + 1;
+ resize(nl);
+ std::memcpy(m_ptr, from, nl);
+}
+
+void pstringbuffer::pcopy(const pstring &from)
+{
+ std::size_t nl = from.blen() + 1;
+ resize(nl);
+ std::memcpy(m_ptr, from.cstr(), nl);
+}
+
+void pstringbuffer::pcat(const char *s)
+{
+ const std::size_t slen = std::strlen(s);
+ const std::size_t nl = m_len + slen + 1;
+ resize(nl);
+ std::memcpy(m_ptr + m_len, s, slen + 1);
+ m_len += slen;
+}
+
+void pstringbuffer::pcat(const void *m, unsigned l)
+{
+ const std::size_t nl = m_len + l + 1;
+ resize(nl);
+ std::memcpy(m_ptr + m_len, m, l);
+ m_len += l;
+ *(m_ptr + m_len) = 0;
+}
+
+void pstringbuffer::pcat(const pstring &s)
+{
+ const std::size_t slen = s.blen();
+ const std::size_t nl = m_len + slen + 1;
+ resize(nl);
+ std::memcpy(m_ptr + m_len, s.cstr(), slen);
+ m_len += slen;
+ m_ptr[m_len] = 0;
+}
+
+template struct pstring_t<pu8_traits>;
+template struct pstring_t<putf8_traits>;
diff --git a/src/lib/netlist/plib/pstring.h b/src/lib/netlist/plib/pstring.h
new file mode 100644
index 00000000000..b101ffc47a5
--- /dev/null
+++ b/src/lib/netlist/plib/pstring.h
@@ -0,0 +1,381 @@
+// license:GPL-2.0+
+// copyright-holders:Couriersud
+/*
+ * pstring.h
+ */
+
+#ifndef _PSTRING_H_
+#define _PSTRING_H_
+
+#include <cstdarg>
+#include <cstddef>
+
+#include "pconfig.h"
+
+// ----------------------------------------------------------------------------------------
+// pstring: immutable strings ...
+//
+// pstrings are just a pointer to a "pascal-style" string representation.
+// It uses reference counts and only uses new memory when a string changes.
+// ----------------------------------------------------------------------------------------
+
+ struct pstr_t
+ {
+ //str_t() : m_ref_count(1), m_len(0) { m_str[0] = 0; }
+ pstr_t(const unsigned alen)
+ {
+ init(alen);
+ }
+ void init(const unsigned alen)
+ {
+ m_ref_count = 1;
+ m_len = alen;
+ m_str[0] = 0;
+ }
+ char *str() { return &m_str[0]; }
+ unsigned len() const { return m_len; }
+ int m_ref_count;
+ private:
+ unsigned m_len;
+ char m_str[1];
+ };
+
+
+template <typename F>
+struct pstring_t
+{
+public:
+ typedef F traits;
+
+ typedef typename traits::mem_t mem_t;
+ typedef typename traits::code_t code_t;
+
+ // simple construction/destruction
+ pstring_t()
+ {
+ init();
+ }
+ ~pstring_t();
+
+ // construction with copy
+ pstring_t(const mem_t *string) {init(); if (string != NULL && *string != 0) pcopy(string); }
+ pstring_t(const pstring_t &string) {init(); pcopy(string); }
+
+ // assignment operators
+ pstring_t &operator=(const mem_t *string) { pcopy(string); return *this; }
+ pstring_t &operator=(const pstring_t &string) { pcopy(string); return *this; }
+
+ // C string conversion helpers
+ const mem_t *cstr() const { return m_ptr->str(); }
+
+ // concatenation operators
+ pstring_t& operator+=(const pstring_t &string) { pcat(string); return *this; }
+ pstring_t& operator+=(const mem_t *string) { pcat(string); return *this; }
+ friend pstring_t operator+(const pstring_t &lhs, const pstring_t &rhs) { return pstring_t(lhs) += rhs; }
+ friend pstring_t operator+(const pstring_t &lhs, const mem_t *rhs) { return pstring_t(lhs) += rhs; }
+ friend pstring_t operator+(const mem_t *lhs, const pstring_t &rhs) { return pstring_t(lhs) += rhs; }
+
+ // comparison operators
+ bool operator==(const mem_t *string) const { return (pcmp(string) == 0); }
+ bool operator==(const pstring_t &string) const { return (pcmp(string) == 0); }
+ bool operator!=(const mem_t *string) const { return (pcmp(string) != 0); }
+ bool operator!=(const pstring_t &string) const { return (pcmp(string) != 0); }
+
+ bool operator<(const mem_t *string) const { return (pcmp(string) < 0); }
+ bool operator<(const pstring_t &string) const { return (pcmp(string) < 0); }
+ bool operator<=(const mem_t *string) const { return (pcmp(string) <= 0); }
+ bool operator<=(const pstring_t &string) const { return (pcmp(string) <= 0); }
+ bool operator>(const mem_t *string) const { return (pcmp(string) > 0); }
+ bool operator>(const pstring_t &string) const { return (pcmp(string) > 0); }
+ bool operator>=(const mem_t *string) const { return (pcmp(string) >= 0); }
+ bool operator>=(const pstring_t &string) const { return (pcmp(string) >= 0); }
+
+ bool equals(const pstring_t &string) const { return (pcmp(string) == 0); }
+
+ int cmp(const pstring_t &string) const { return pcmp(string); }
+ int cmp(const mem_t *string) const { return pcmp(string); }
+
+ bool startsWith(const pstring_t &arg) const;
+ bool startsWith(const mem_t *arg) const;
+
+ bool endsWith(const pstring_t &arg) const;
+ bool endsWith(const mem_t *arg) const { return endsWith(pstring_t(arg)); }
+
+ pstring_t replace(const pstring_t &search, const pstring_t &replace) const;
+
+ const pstring_t cat(const pstring_t &s) const { return *this + s; }
+ const pstring_t cat(const mem_t *s) const { return *this + s; }
+
+ unsigned blen() const { return m_ptr->len(); }
+
+ // conversions
+
+ double as_double(bool *error = NULL) const;
+ long as_long(bool *error = NULL) const;
+
+ /*
+ * everything below MAY not work for utf8.
+ * Example a=s.find(EUROSIGN); b=s.substr(a,1); will deliver invalid utf8
+ */
+
+ unsigned len() const
+ {
+ return F::len(m_ptr);
+ }
+
+ pstring_t& operator+=(const code_t c) { mem_t buf[F::MAXCODELEN+1] = { 0 }; F::encode(c, buf); pcat(buf); return *this; }
+ friend pstring_t operator+(const pstring_t &lhs, const mem_t rhs) { return pstring_t(lhs) += rhs; }
+
+ int find(const pstring_t &search, unsigned start = 0) const;
+ int find(const mem_t *search, unsigned start = 0) const;
+ int find(const code_t search, unsigned start = 0) const { mem_t buf[F::MAXCODELEN+1] = { 0 }; F::encode(search, buf); return find(buf, start); };
+
+ const pstring_t substr(int start, int count = -1) const ;
+
+ const pstring_t left(unsigned count) const { return substr(0, count); }
+ const pstring_t right(unsigned count) const { return substr((int) len() - (int) count, count); }
+
+ int find_first_not_of(const pstring_t &no) const;
+ int find_last_not_of(const pstring_t &no) const;
+
+ // FIXME:
+ code_t code_at(const unsigned pos) const { return F::code(F::nthcode(m_ptr->str(),pos)); }
+
+ const pstring_t ltrim(const pstring_t &ws = " \t\n\r") const;
+ const pstring_t rtrim(const pstring_t &ws = " \t\n\r") const;
+ const pstring_t trim(const pstring_t &ws = " \t\n\r") const { return this->ltrim(ws).rtrim(ws); }
+
+ const pstring_t rpad(const pstring_t &ws, const unsigned cnt) const;
+
+ const pstring_t ucase() const;
+
+ static void resetmem();
+
+protected:
+
+ pstr_t *m_ptr;
+
+private:
+ void init()
+ {
+ m_ptr = &m_zero;
+ m_ptr->m_ref_count++;
+ }
+
+ int pcmp(const pstring_t &right) const;
+
+ int pcmp(const mem_t *right) const;
+
+ void pcopy(const mem_t *from, int size);
+
+ void pcopy(const mem_t *from);
+
+ void pcopy(const pstring_t &from)
+ {
+ sfree(m_ptr);
+ m_ptr = from.m_ptr;
+ m_ptr->m_ref_count++;
+ }
+
+ void pcat(const mem_t *s);
+ void pcat(const pstring_t &s);
+
+ static pstr_t *salloc(int n);
+ static void sfree(pstr_t *s);
+
+ static pstr_t m_zero;
+};
+
+struct pu8_traits
+{
+ static const unsigned MAXCODELEN = 1; /* in memory units */
+ typedef char mem_t;
+ typedef char code_t;
+ static unsigned len(const pstr_t *p) { return p->len(); }
+ static unsigned codelen(const mem_t *p) { return 1; }
+ static unsigned codelen(const code_t c) { return 1; }
+ static code_t code(const mem_t *p) { return *p; }
+ static void encode(const code_t c, mem_t *p) { *p = c; }
+ static const mem_t *nthcode(const mem_t *p, const unsigned n) { return &(p[n]); }
+};
+
+/* No checking, this may deliver invalid codes */
+struct putf8_traits
+{
+ static const unsigned MAXCODELEN = 4; /* in memory units, RFC 3629 */
+ typedef char mem_t;
+ typedef unsigned code_t;
+ static unsigned len(pstr_t *p)
+ {
+ unsigned ret = 0;
+ unsigned char *c = (unsigned char *) p->str();
+ while (*c)
+ {
+ if (!((*c & 0xC0) == 0x80))
+ ret++;
+ c++;
+ }
+ return ret;
+ }
+ static unsigned codelen(const mem_t *p)
+ {
+ unsigned char *p1 = (unsigned char *) p;
+ if ((*p1 & 0x80) == 0x00)
+ return 1;
+ else if ((*p1 & 0xE0) == 0xC0)
+ return 2;
+ else if ((*p1 & 0xF0) == 0xE0)
+ return 3;
+ else if ((*p1 & 0xF8) == 0xF0)
+ return 4;
+ else
+ {
+ return 1; // not correct
+ }
+ }
+ static unsigned codelen(const code_t c)
+ {
+ if (c < 0x0080)
+ return 1;
+ else if (c < 0x800)
+ return 2;
+ else if (c < 0x10000)
+ return 3;
+ else /* U+10000 U+1FFFFF */
+ return 4; /* no checks */
+ }
+ static code_t code(const mem_t *p)
+ {
+ unsigned char *p1 = (unsigned char *)p;
+ if ((*p1 & 0x80) == 0x00)
+ return (code_t) *p1;
+ else if ((*p1 & 0xE0) == 0xC0)
+ return ((p1[0] & 0x3f) << 6) | ((p1[1] & 0x3f));
+ else if ((*p1 & 0xF0) == 0xE0)
+ return ((p1[0] & 0x1f) << 12) | ((p1[1] & 0x3f) << 6) | ((p1[2] & 0x3f) << 0);
+ else if ((*p1 & 0xF8) == 0xF0)
+ return ((p1[0] & 0x0f) << 18) | ((p1[1] & 0x3f) << 12) | ((p1[2] & 0x3f) << 6) | ((p1[3] & 0x3f) << 0);
+ else
+ return *p1; // not correct
+ }
+ static void encode(const code_t c, mem_t *p)
+ {
+ unsigned char *m = (unsigned char*)p;
+ if (c < 0x0080)
+ {
+ m[0] = c;
+ }
+ else if (c < 0x800)
+ {
+ m[0] = 0xC0 | (c >> 6);
+ m[1] = 0x80 | (c & 0x3f);
+ }
+ else if (c < 0x10000)
+ {
+ m[0] = 0xE0 | (c >> 12);
+ m[1] = 0x80 | ((c>>6) & 0x3f);
+ m[2] = 0x80 | (c & 0x3f);
+ }
+ else /* U+10000 U+1FFFFF */
+ {
+ m[0] = 0xF0 | (c >> 18);
+ m[1] = 0x80 | ((c>>12) & 0x3f);
+ m[2] = 0x80 | ((c>>6) & 0x3f);
+ m[3] = 0x80 | (c & 0x3f);
+ }
+ }
+ static const mem_t *nthcode(const mem_t *p, const unsigned n)
+ {
+ const mem_t *p1 = p;
+ int i = n;
+ while (i-- > 0)
+ p1 += codelen(p1);
+ return p1;
+ }
+};
+
+struct pstring : public pstring_t<putf8_traits>
+{
+public:
+
+ typedef pstring_t<putf8_traits> type_t;
+
+ // simple construction/destruction
+ pstring() : type_t() { }
+
+ // construction with copy
+ pstring(const mem_t *string) : type_t(string) { }
+ pstring(const type_t &string) : type_t(string) { }
+
+};
+
+// ----------------------------------------------------------------------------------------
+// pstringbuffer: a string buffer implementation
+//
+// string buffer are optimized to handle concatenations. This implementation is designed
+// to specifically interact with pstrings nicely.
+// ----------------------------------------------------------------------------------------
+
+struct pstringbuffer
+{
+public:
+
+ static const int DEFAULT_SIZE = 2048;
+ // simple construction/destruction
+ pstringbuffer()
+ {
+ init();
+ resize(DEFAULT_SIZE);
+ }
+
+ ~pstringbuffer();
+
+ // construction with copy
+ pstringbuffer(const char *string) {init(); if (string != NULL) pcopy(string); }
+ pstringbuffer(const pstring &string) {init(); pcopy(string); }
+
+ // assignment operators
+ pstringbuffer &operator=(const char *string) { pcopy(string); return *this; }
+ pstringbuffer &operator=(const pstring &string) { pcopy(string); return *this; }
+ pstringbuffer &operator=(const pstringbuffer &string) { pcopy(string); return *this; }
+
+ // C string conversion helpers
+ const char *cstr() const { return m_ptr; }
+
+ operator pstring() const { return pstring(m_ptr); }
+
+ // concatenation operators
+ pstringbuffer& operator+=(const UINT8 c) { UINT8 buf[2] = { c, 0 }; pcat((char *) buf); return *this; }
+ pstringbuffer& operator+=(const pstring &string) { pcat(string); return *this; }
+ pstringbuffer& operator+=(const char *string) { pcat(string); return *this; }
+
+ std::size_t len() const { return m_len; }
+
+ void cat(const pstring &s) { pcat(s); }
+ void cat(const char *s) { pcat(s); }
+ void cat(const void *m, unsigned l) { pcat(m, l); }
+
+private:
+
+ void init()
+ {
+ m_ptr = NULL;
+ m_size = 0;
+ m_len = 0;
+ }
+
+ void resize(const std::size_t size);
+
+ void pcopy(const char *from);
+ void pcopy(const pstring &from);
+ void pcat(const char *s);
+ void pcat(const pstring &s);
+ void pcat(const void *m, unsigned l);
+
+ char *m_ptr;
+ std::size_t m_size;
+ std::size_t m_len;
+
+};
+
+#endif /* _PSTRING_H_ */
diff --git a/src/lib/netlist/plib/ptypes.h b/src/lib/netlist/plib/ptypes.h
new file mode 100644
index 00000000000..5ccfe171ed4
--- /dev/null
+++ b/src/lib/netlist/plib/ptypes.h
@@ -0,0 +1,97 @@
+// license:GPL-2.0+
+// copyright-holders:Couriersud
+/*
+ * ptypes.h
+ *
+ */
+
+#ifndef PTYPES_H_
+#define PTYPES_H_
+
+#include "pconfig.h"
+#include "pstring.h"
+
+//============================================================
+// penum - strongly typed enumeration
+//============================================================
+
+struct penum_base
+{
+protected:
+ static int from_string_int(const char *str, const char *x)
+ {
+ int cnt = 0;
+ const char *cur = str;
+ int lx = strlen(x);
+ while (*str)
+ {
+ if (*str == ',')
+ {
+ int l = str-cur;
+ if (l == lx)
+ if (strncmp(cur, x, lx) == 0)
+ return cnt;
+ }
+ else if (*str == ' ')
+ {
+ cur = str + 1;
+ cnt++;
+ }
+ str++;
+ }
+ int l = str-cur;
+ if (l == lx)
+ if (strncmp(cur, x, lx) == 0)
+ return cnt;
+ return -1;
+ }
+ static pstring nthstr(int n, const char *str)
+ {
+ char buf[64];
+ char *bufp = buf;
+ int cur = 0;
+ while (*str)
+ {
+ if (cur == n)
+ {
+ if (*str == ',')
+ {
+ *bufp = 0;
+ return pstring(buf);
+ }
+ else if (*str != ' ')
+ *bufp++ = *str;
+ }
+ else
+ {
+ if (*str == ',')
+ cur++;
+ }
+ str++;
+ }
+ *bufp = 0;
+ return pstring(buf);
+ }
+};
+
+#define P_ENUM(_name, ...) \
+ struct _name : public penum_base { \
+ enum e { __VA_ARGS__ }; \
+ _name (e v) : m_v(v) { } \
+ bool set_from_string (const pstring &s) { \
+ static const char *strings = # __VA_ARGS__; \
+ int f = from_string_int(strings, s.cstr()); \
+ if (f>=0) { m_v = (e) f; return true; } else { return false; } \
+ } \
+ operator e() const {return m_v;} \
+ int as_int() const {return (int) m_v;} \
+ bool operator==(const _name &rhs) const {return m_v == rhs.m_v;} \
+ bool operator==(const e &rhs) const {return m_v == (int) rhs;} \
+ const pstring name() const { \
+ static const char *strings = # __VA_ARGS__; \
+ return nthstr((int) m_v, strings); \
+ } \
+ private: e m_v; };
+
+
+#endif /* PTYPES_H_ */
diff --git a/src/tools/nltool.c b/src/lib/netlist/prg/nltool.c
index 9d346746fad..3510f70e7f2 100644
--- a/src/tools/nltool.c
+++ b/src/lib/netlist/prg/nltool.c
@@ -11,14 +11,15 @@
#include <cstdio>
#ifdef PSTANDALONE
- #if (PSTANDALONE)
+#if (PSTANDALONE)
#define PSTANDALONE_PROVIDED
- #endif
+#endif
#endif
#include "plib/poptions.h"
#include "plib/pstring.h"
#include "plib/plists.h"
+#include "plib/ptypes.h"
#include "nl_setup.h"
#include "nl_factory.h"
#include "nl_parser.h"
@@ -98,13 +99,15 @@ class tool_options_t : public poptions
public:
tool_options_t() :
poptions(),
- opt_ttr ("t", "time_to_run", 1.0, "time to run the emulation (seconds)", this),
+ opt_ttr ("t", "time_to_run", 1.0, "time to run the emulation (seconds)", this),
opt_name("n", "name", "", "netlist in file to run; default is first one", this),
opt_logs("l", "logs", "", "colon separated list of terminals to log", this),
opt_file("f", "file", "-", "file to process (default is stdin)", this),
opt_type("y", "type", "spice", "spice:eagle", "type of file to be converted: spice,eagle", this),
opt_cmd ("c", "cmd", "run", "run|convert|listdevices", this),
+ opt_inp( "i", "input", "", "input file to process (default is none)", this),
opt_verb("v", "verbose", "be verbose - this produces lots of output", this),
+ opt_quiet("q", "quiet", "be quiet - no warnings", this),
opt_help("h", "help", "display help", this)
{}
@@ -114,12 +117,17 @@ public:
poption_str opt_file;
poption_str_limit opt_type;
poption_str opt_cmd;
+ poption_str opt_inp;
poption_bool opt_verb;
+ poption_bool opt_quiet;
poption_bool opt_help;
};
-//Alternative
-//static poption *optlist[] = { &opt_ttr, &opt_logs, &opt_file, &opt_cmd, &opt_verb, &opt_help, NULL };
+pstdout pout_strm;
+pstderr perr_strm;
+
+pstream_fmt_writer_t pout(pout_strm);
+pstream_fmt_writer_t perr(perr_strm);
NETLIST_START(dummy)
/* Standard stuff */
@@ -133,45 +141,12 @@ NETLIST_END()
CORE IMPLEMENTATION
***************************************************************************/
-pstring filetobuf(pstring fname)
-{
- pstring pbuf = "";
-
- if (fname == "-")
- {
- char lbuf[1024];
- while (!feof(stdin))
- {
- fgets(lbuf, 1024, stdin);
- pbuf += lbuf;
- }
- printf("%d\n",*(pbuf.right(1).cstr()+1));
- return pbuf;
- }
- else
- {
- FILE *f;
- f = fopen(fname, "rb");
- fseek(f, 0, SEEK_END);
- long fsize = ftell(f);
- fseek(f, 0, SEEK_SET);
-
- char *buf = (char *) malloc(fsize + 1);
- fread(buf, fsize, 1, f);
- buf[fsize] = 0;
- fclose(f);
- pbuf = buf;
- free(buf);
- return pbuf;
- }
-}
-
class netlist_tool_t : public netlist::netlist_t
{
public:
netlist_tool_t()
- : netlist::netlist_t(), m_logs(""), m_verbose(false), m_setup(NULL)
+ : netlist::netlist_t(), m_opts(NULL), m_setup(NULL)
{
}
@@ -188,11 +163,11 @@ public:
m_setup->init();
}
- void read_netlist(const char *buffer, pstring name)
+ void read_netlist(const pstring &filename, const pstring &name)
{
// read the netlist ...
- m_setup->register_source(palloc(netlist::netlist_source_mem_t(buffer)));
+ m_setup->register_source(palloc(netlist::source_file_t(filename)));
m_setup->include(name);
log_setup();
@@ -205,9 +180,9 @@ public:
void log_setup()
{
- NL_VERBOSE_OUT(("Creating dynamic logs ...\n"));
- pstring_list_t ll(m_logs, ":");
- for (int i=0; i < ll.size(); i++)
+ log().debug("Creating dynamic logs ...\n");
+ pstring_list_t ll(m_opts ? m_opts->opt_logs() : "" , ":");
+ for (unsigned i=0; i < ll.size(); i++)
{
pstring name = "log_" + ll[i];
/*netlist_device_t *nc = */ m_setup->register_dev("LOG", name);
@@ -215,32 +190,15 @@ public:
}
}
- pstring m_logs;
-
- bool m_verbose;
+ tool_options_t *m_opts;
protected:
- void verror(const loglevel_e level, const char *format, va_list ap) const
+ void vlog(const plog_level &l, const pstring &ls) const
{
- switch (level)
- {
- case NL_LOG:
- if (m_verbose)
- {
- vprintf(format, ap);
- printf("\n");
- }
- break;
- case NL_WARNING:
- vprintf(format, ap);
- printf("\n");
- break;
- case NL_ERROR:
- vprintf(format, ap);
- printf("\n");
- throw;
- }
+ pout("{}: {}\n", l.name().cstr(), ls.cstr());
+ if (l == plog_level::FATAL)
+ throw;
}
private:
@@ -250,14 +208,75 @@ private:
void usage(tool_options_t &opts)
{
- fprintf(stderr,
+ perr("{}",
"Usage:\n"
" nltool -help\n"
" nltool [options]\n"
"\n"
"Where:\n"
);
- fprintf(stderr, "%s\n", opts.help().cstr());
+ perr("{}\n", opts.help().cstr());
+}
+
+struct input_t
+{
+ input_t()
+ : m_param(NULL), m_value(0.0)
+ {
+ }
+ input_t(netlist::netlist_t *netlist, const pstring &line)
+ {
+ char buf[400];
+ double t;
+ int e = sscanf(line.cstr(), "%lf,%[^,],%lf", &t, buf, &m_value);
+ if ( e!= 3)
+ throw netlist::fatalerror_e(pfmt("error {1} scanning line {2}\n")(e)(line));
+ m_time = netlist::netlist_time::from_double(t);
+ m_param = netlist->setup().find_param(buf, true);
+ }
+
+ void setparam()
+ {
+ switch (m_param->param_type())
+ {
+ case netlist::param_t::MODEL:
+ case netlist::param_t::STRING:
+ throw netlist::fatalerror_e(pfmt("param {1} is not numeric\n")(m_param->name()));
+ case netlist::param_t::DOUBLE:
+ static_cast<netlist::param_double_t*>(m_param)->setTo(m_value);
+ break;
+ case netlist::param_t::INTEGER:
+ static_cast<netlist::param_int_t*>(m_param)->setTo((int)m_value);
+ break;
+ case netlist::param_t::LOGIC:
+ static_cast<netlist::param_logic_t*>(m_param)->setTo((int) m_value);
+ break;
+ }
+ }
+
+ netlist::netlist_time m_time;
+ netlist::param_t *m_param;
+ double m_value;
+
+};
+
+plist_t<input_t> *read_input(netlist::netlist_t *netlist, pstring fname)
+{
+ plist_t<input_t> *ret = palloc(plist_t<input_t>());
+ if (fname != "")
+ {
+ pifilestream f(fname);
+ pstring l;
+ while (f.readline(l))
+ {
+ if (l != "")
+ {
+ input_t inp(netlist, l);
+ ret->add(inp);
+ }
+ }
+ }
+ return ret;
}
static void run(tool_options_t &opts)
@@ -265,21 +284,40 @@ static void run(tool_options_t &opts)
netlist_tool_t nt;
osd_ticks_t t = osd_ticks();
+ nt.m_opts = &opts;
nt.init();
- nt.m_logs = opts.opt_logs();
- nt.m_verbose = opts.opt_verb();
- nt.read_netlist(filetobuf(opts.opt_file()), opts.opt_name());
+
+ if (!opts.opt_verb())
+ nt.log().verbose.set_enabled(false);
+ if (opts.opt_quiet())
+ nt.log().warning.set_enabled(false);
+
+ nt.read_netlist(opts.opt_file(), opts.opt_name());
+
+ plist_t<input_t> *inps = read_input(&nt, opts.opt_inp());
+
double ttr = opts.opt_ttr();
- printf("startup time ==> %5.3f\n", (double) (osd_ticks() - t) / (double) osd_ticks_per_second() );
- printf("runnning ...\n");
+ pout("startup time ==> {1:5.3f}\n", (double) (osd_ticks() - t) / (double) osd_ticks_per_second() );
+ pout("runnning ...\n");
t = osd_ticks();
- nt.process_queue(netlist::netlist_time::from_double(ttr));
+ unsigned pos = 0;
+ netlist::netlist_time nlt = netlist::netlist_time::zero;
+
+ while (pos < inps->size() && (*inps)[pos].m_time < netlist::netlist_time::from_double(ttr))
+ {
+ nt.process_queue((*inps)[pos].m_time - nlt);
+ (*inps)[pos].setparam();
+ nlt = (*inps)[pos].m_time;
+ pos++;
+ }
+ nt.process_queue(netlist::netlist_time::from_double(ttr) - nlt);
nt.stop();
+ pfree(inps);
double emutime = (double) (osd_ticks() - t) / (double) osd_ticks_per_second();
- printf("%f seconds emulation took %f real time ==> %5.2f%%\n", ttr, emutime, ttr/emutime*100.0);
+ pout("{1:f} seconds emulation took {2:f} real time ==> {3:5.2f}%\n", ttr, emutime, ttr/emutime*100.0);
}
/*-------------------------------------------------
@@ -290,7 +328,7 @@ static void listdevices()
{
netlist_tool_t nt;
nt.init();
- const netlist::factory_list_t::list_t &list = nt.setup().factory().list();
+ const netlist::factory_list_t &list = nt.setup().factory();
nt.setup().register_source(palloc(netlist::source_proc_t("dummy", &netlist_dummy)));
nt.setup().include("dummy");
@@ -298,19 +336,18 @@ static void listdevices()
nt.setup().start_devices();
nt.setup().resolve_inputs();
- for (int i=0; i < list.size(); i++)
+ for (unsigned i=0; i < list.size(); i++)
{
- pstring out = pstring::sprintf("%-20s %s(<id>", list[i]->classname().cstr(),
- list[i]->name().cstr() );
+ netlist::base_factory_t *f = list.value_at(i);
+ pstring out = pfmt("{1} {2}(<id>")(f->classname(),"-20")(f->name());
pstring terms("");
- netlist::base_factory_t *f = list[i];
netlist::device_t *d = f->Create();
- d->init(nt, pstring::sprintf("dummy%d", i));
+ d->init(nt, pfmt("dummy{1}")(i));
d->start_dev();
// get the list of terminals ...
- for (int j=0; j < d->m_terminals.size(); j++)
+ for (unsigned j=0; j < d->m_terminals.size(); j++)
{
pstring inp = d->m_terminals[j];
if (inp.startsWith(d->name() + "."))
@@ -318,18 +355,18 @@ static void listdevices()
terms += "," + inp;
}
- if (list[i]->param_desc().startsWith("+"))
+ if (f->param_desc().startsWith("+"))
{
- out += "," + list[i]->param_desc().substr(1);
+ out += "," + f->param_desc().substr(1);
terms = "";
}
- else if (list[i]->param_desc() == "-")
+ else if (f->param_desc() == "-")
{
/* no params at all */
}
else
{
- out += "," + list[i]->param_desc();
+ out += "," + f->param_desc();
}
out += ")";
printf("%s\n", out.cstr());
@@ -365,11 +402,11 @@ int main(int argc, char *argv[])
tool_options_t opts;
int ret;
- fprintf(stderr, "%s", "WARNING: This is Work In Progress! - It may fail anytime\n");
- fprintf(stderr, "Update dispatching using method %s\n", pmf_verbose[NL_PMF_TYPE]);
+ perr("{}", "WARNING: This is Work In Progress! - It may fail anytime\n");
+ perr("Update dispatching using method {}\n", pmf_verbose[NL_PMF_TYPE]);
if ((ret = opts.parse(argc, argv)) != argc)
{
- fprintf(stderr, "Error parsing %s\n", argv[ret]);
+ perr("Error parsing {}\n", argv[ret]);
usage(opts);
return 1;
}
@@ -387,23 +424,44 @@ int main(int argc, char *argv[])
run(opts);
else if (cmd == "convert")
{
- pstring contents = filetobuf(opts.opt_file());
- nl_convert_base_t *converter = NULL;
+ pstring contents;
+ postringstream ostrm;
+ if (opts.opt_file() == "-")
+ {
+ pstdin f;
+ ostrm.write(f);
+ }
+ else
+ {
+ pifilestream f(opts.opt_file());
+ ostrm.write(f);
+ }
+ contents = ostrm.str();
+
+ pstring result;
if (opts.opt_type().equals("spice"))
- converter = palloc(nl_convert_spice_t);
+ {
+ nl_convert_spice_t c;
+ c.convert(contents);
+ result = c.result();
+ }
else
- converter = palloc(nl_convert_eagle_t);
- converter->convert(contents);
+ {
+ nl_convert_eagle_t c;
+ c.convert(contents);
+ result = c.result();
+ }
/* present result */
- printf("%s\n", converter->result().cstr());
- pfree(converter);
+ pout_strm.write(result.cstr());
}
else
{
- fprintf(stderr, "Unknown command %s\n", cmd.cstr());
+ perr("Unknown command {}\n", cmd.cstr());
usage(opts);
return 1;
}
+
+ pstring::resetmem();
#if (!PSTANDALONE)
}
dump_unfreed_mem();
diff --git a/src/lib/netlist/prg/nlwav.c b/src/lib/netlist/prg/nlwav.c
new file mode 100644
index 00000000000..681b0e6d79e
--- /dev/null
+++ b/src/lib/netlist/prg/nlwav.c
@@ -0,0 +1,289 @@
+#include <cstdio>
+#include <cstring>
+#include "plib/poptions.h"
+#include "plib/pstring.h"
+#include "plib/plists.h"
+#include "plib/pstream.h"
+#include "nl_setup.h"
+
+class nlwav_options_t : public poptions
+{
+public:
+ nlwav_options_t() :
+ poptions(),
+#if 0
+ opt_ttr ("t", "time_to_run", 1.0, "time to run the emulation (seconds)", this),
+ opt_name("n", "name", "", "netlist in file to run; default is first one", this),
+ opt_logs("l", "logs", "", "colon separated list of terminals to log", this),
+ opt_file("f", "file", "-", "file to process (default is stdin)", this),
+ opt_type("y", "type", "spice", "spice:eagle", "type of file to be converted: spice,eagle", this),
+ opt_cmd ("c", "cmd", "run", "run|convert|listdevices", this),
+ opt_inp( "i", "input", "", "input file to process (default is none)", this),
+#endif
+ opt_inp( "i", "input", "", "input file", this),
+ opt_out( "o", "output", "", "output file", this),
+ opt_amp( "a", "amp", 10000.0, "amplification after mean correction", this),
+ opt_verb("v", "verbose", "be verbose - this produces lots of output", this),
+ opt_quiet("q", "quiet", "be quiet - no warnings", this),
+ opt_help("h", "help", "display help", this)
+ {}
+#if 0
+ poption_double opt_ttr;
+ poption_str opt_name;
+ poption_str opt_logs;
+ poption_str opt_file;
+ poption_str_limit opt_type;
+ poption_str opt_cmd;
+#endif
+ poption_str opt_inp;
+ poption_str opt_out;
+ poption_double opt_amp;
+ poption_bool opt_verb;
+ poption_bool opt_quiet;
+ poption_bool opt_help;
+};
+
+/* http://de.wikipedia.org/wiki/RIFF_WAVE */
+class wav_t
+{
+public:
+ wav_t(postream &strm, unsigned sr) : m_f(strm)
+ {
+// m_f = strm;
+ initialize(sr);
+ m_f.write(&m_fh, sizeof(m_fh));
+ m_f.write(&m_fmt, sizeof(m_fmt));
+ m_f.write(&m_data, sizeof(m_data));
+ }
+ ~wav_t()
+ {
+ close();
+ }
+
+ unsigned channels() { return m_fmt.channels; }
+ unsigned sample_rate() { return m_fmt.sample_rate; }
+
+ void write_sample(int sample)
+ {
+ m_data.len += m_fmt.block_align;
+ short ps = sample; /* 16 bit sample, FIXME: powerpc? */
+ m_f.write(&ps, sizeof(ps));
+ }
+
+ void close()
+ {
+ m_f.seek(0);
+ m_f.write(&m_fh, sizeof(m_fh));
+ m_f.write(&m_fmt, sizeof(m_fmt));
+
+ //data.len = fmt.block_align * n;
+ m_f.write(&m_data, sizeof(m_data));
+ }
+private:
+ struct riff_chunk_t
+ {
+ char group_id[4];
+ unsigned filelen;
+ char rifftype[4];
+ };
+
+ struct riff_format_t
+ {
+ char signature[4];
+ unsigned fmt_length;
+ short format_tag;
+ short channels;
+ unsigned sample_rate;
+ unsigned bytes_per_second;
+ short block_align;
+ short bits_sample;
+ };
+
+ struct riff_data_t
+ {
+ char signature[4];
+ unsigned len;
+ // data follows
+ };
+
+ void initialize(unsigned sr)
+ {
+ std::strncpy(m_fh.group_id, "RIFF", 4);
+ m_fh.filelen = 0; // Fixme
+ std::strncpy(m_fh.rifftype, "WAVE", 4);
+
+ std::strncpy(m_fmt.signature, "fmt ", 4);
+ m_fmt.fmt_length = 16;
+ m_fmt.format_tag = 0x0001; //PCM
+ m_fmt.channels = 1;
+ m_fmt.sample_rate = sr;
+ m_fmt.bits_sample = 16;
+ m_fmt.block_align = m_fmt.channels * ((m_fmt.bits_sample + 7) / 8);
+ m_fmt.bytes_per_second = m_fmt.sample_rate * m_fmt.block_align;
+
+ std::strncpy(m_data.signature, "data", 4);
+ m_data.len = m_fmt.bytes_per_second * 2 * 0;
+
+ }
+
+ riff_chunk_t m_fh;
+ riff_format_t m_fmt;
+ riff_data_t m_data;
+
+ postream &m_f;
+
+};
+
+void convert(nlwav_options_t &opts)
+{
+ pofilestream fo(opts.opt_out());
+ if (fo.bad())
+ {
+ throw netlist::fatalerror_e("Error opening output file: " + opts.opt_out());
+ }
+ wav_t wo(fo, 48000);
+
+ pifilestream fin(opts.opt_inp());
+ if (fin.bad())
+ throw netlist::fatalerror_e("Error opening input file: " + opts.opt_inp());
+
+ double dt = 1.0 / (double) wo.sample_rate();
+ double ct = dt;
+ //double mean = 2.4;
+ double amp = opts.opt_amp();
+ double mean = 0.0;
+ double means = 0.0;
+ double cursam = 0.0;
+ double outsam = 0.0;
+ double lt = 0.0;
+ double maxsam = -1e9;
+ double minsam = 1e9;
+ int n = 0;
+ //short sample = 0;
+ pstring line;
+
+ while(fin.readline(line))
+ {
+#if 1
+ float t = 0.0; float v = 0.0;
+ sscanf(line.cstr(), "%f %f", &t, &v);
+ while (t >= ct)
+ {
+ outsam += (ct - lt) * cursam;
+ outsam = outsam / dt;
+ if (t>0.0)
+ {
+ means += outsam;
+ maxsam = std::max(maxsam, outsam);
+ minsam = std::min(minsam, outsam);
+ n++;
+ //mean = means / (double) n;
+ mean += 5.0 / (double) wo.sample_rate() * (outsam - mean);
+ }
+ outsam = (outsam - mean) * amp;
+ outsam = std::max(-32000.0, outsam);
+ outsam = std::min(32000.0, outsam);
+ wo.write_sample((int) outsam);
+ outsam = 0.0;
+ lt = ct;
+ ct += dt;
+ }
+ outsam += (t-lt)*cursam;
+ lt = t;
+ cursam = v;
+#else
+ float t = 0.0; float v = 0.0;
+ fscanf(FIN, "%f %f", &t, &v);
+ while (ct <= t)
+ {
+ wo.write_sample(sample);
+ n++;
+ ct += dt;
+ }
+ means += v;
+ mean = means / (double) n;
+ v = v - mean;
+ v = v * amp;
+ if (v>32000.0)
+ v = 32000.0;
+ else if (v<-32000.0)
+ v = -32000.0;
+ sample = v;
+ //printf("%f %f\n", t, v);
+#endif
+ }
+ printf("Mean (low freq filter): %f\n", mean);
+ printf("Mean (static): %f\n", means / (double) n);
+ printf("Amp + %f\n", 32000.0 / (maxsam- mean));
+ printf("Amp - %f\n", -32000.0 / (minsam- mean));
+ wo.close();
+ fo.close();
+ fin.close();
+
+}
+
+void usage(nlwav_options_t &opts)
+{
+ fprintf(stderr,
+ "Usage:\n"
+ " nltool -help\n"
+ " nltool [options]\n"
+ "\n"
+ "Where:\n"
+ );
+ fprintf(stderr, "%s\n", opts.help().cstr());
+}
+
+
+int main(int argc, char *argv[])
+{
+#if (!PSTANDALONE)
+ track_memory(true);
+ {
+#endif
+ nlwav_options_t opts;
+ int ret;
+
+ if ((ret = opts.parse(argc, argv)) != argc)
+ {
+ fprintf(stderr, "Error parsing %s\n", argv[ret]);
+ usage(opts);
+ return 1;
+ }
+
+ if (opts.opt_help())
+ {
+ usage(opts);
+ return 1;
+ }
+
+ convert(opts);
+#if (!PSTANDALONE)
+ }
+ dump_unfreed_mem();
+#endif
+
+ return 0;
+}
+
+/*
+Der Daten-Abschnitt enth??lt die Abtastwerte:
+Offset L??nge Inhalt Beschreibung
+36 (0x24) 4 'data' Header-Signatur
+40 (0x28) 4 <length> L??nge des Datenblocks, max. <Dateigr????e>?????????44
+
+0 (0x00) char 4 'RIFF'
+4 (0x04) unsigned 4 <Dateigr????e>?????????8
+8 (0x08) char 4 'WAVE'
+
+Der fmt-Abschnitt (24 Byte) beschreibt das Format der einzelnen Abtastwerte:
+Offset L??nge Inhalt Beschreibung
+12 (0x0C) 4 'fmt ' Header-Signatur (folgendes Leerzeichen beachten)
+16 (0x10) 4 <fmt length> L??nge des restlichen fmt-Headers (16 Bytes)
+20 (0x14) 2 <format tag> Datenformat der Abtastwerte (siehe separate Tabelle weiter unten)
+22 (0x16) 2 <channels> Anzahl der Kan??le: 1 = mono, 2 = stereo; mittlerweile sind auch mehr als 2 Kan??le (z. B. f??r Raumklang) m??glich.[2]
+24 (0x18) 4 <sample rate> Samples pro Sekunde je Kanal (z. B. 44100)
+28 (0x1C) 4 <bytes/second> Abtastrate????????Frame-Gr????e
+32 (0x20) 2 <block align> Frame-Gr????e = <Anzahl der Kan??le>????????((<Bits/Sample (eines Kanals)>???+???7)???/???8) (Division ohne Rest)
+34 (0x22) 2 <bits/sample> Anzahl der Datenbits pro Samplewert je Kanal (z. B. 12)
+*/
diff --git a/src/emu/netlist/solver/mat_cr.h b/src/lib/netlist/solver/mat_cr.h
index 708833f2625..ea72884c1de 100644
--- a/src/emu/netlist/solver/mat_cr.h
+++ b/src/lib/netlist/solver/mat_cr.h
@@ -11,7 +11,7 @@
#define MAT_CR_H_
#include <algorithm>
-#include "../plib/pconfig.h"
+#include "plib/pconfig.h"
template<int _storage_N>
struct mat_cr_t
@@ -21,7 +21,8 @@ struct mat_cr_t
unsigned ja[_storage_N * _storage_N];
unsigned diag[_storage_N]; /* n */
- void mult_vec(const double * RESTRICT A, const double * RESTRICT x, double * RESTRICT res)
+ template<typename T>
+ void mult_vec(const T * RESTRICT A, const T * RESTRICT x, T * RESTRICT res)
{
/*
* res = A * x
@@ -41,7 +42,7 @@ struct mat_cr_t
}
}
- void incomplete_LU_factorization(const double * RESTRICT A, double * RESTRICT LU)
+ void incomplete_LU_factorization(const nl_double * RESTRICT A, nl_double * RESTRICT LU)
{
/*
* incomplete LU Factorization according to http://de.wikipedia.org/wiki/ILU-Zerlegung
@@ -80,7 +81,7 @@ struct mat_cr_t
}
}
- void solveLUx (const double * RESTRICT LU, double * RESTRICT r)
+ void solveLUx (const nl_double * RESTRICT LU, nl_double * RESTRICT r)
{
/*
* Solve a linear equation Ax = r
@@ -92,7 +93,7 @@ struct mat_cr_t
*
* ==> LUx = r
*
- * ==> Ux = Lâ»Â¹r = w
+ * ==> Ux = L?????r = w
*
* ==> r = Lw
*
diff --git a/src/emu/netlist/solver/nld_ms_direct.h b/src/lib/netlist/solver/nld_ms_direct.h
index f64514a1c7c..9116f92d53f 100644
--- a/src/emu/netlist/solver/nld_ms_direct.h
+++ b/src/lib/netlist/solver/nld_ms_direct.h
@@ -10,7 +10,7 @@
#include <algorithm>
-#include "../solver/nld_solver.h"
+#include "solver/nld_solver.h"
NETLIB_NAMESPACE_DEVICES_START()
@@ -45,6 +45,11 @@ protected:
ATTR_HOT void build_LE_RHS(nl_double * RESTRICT rhs);
ATTR_HOT void LE_solve();
ATTR_HOT void LE_back_subst(nl_double * RESTRICT x);
+
+ /* Full LU back substitution, not used currently, in for future use */
+
+ ATTR_HOT void LE_back_subst_full(nl_double * RESTRICT x);
+
ATTR_HOT nl_double delta(const nl_double * RESTRICT V);
ATTR_HOT void store(const nl_double * RESTRICT V);
@@ -54,8 +59,9 @@ protected:
*/
ATTR_HOT nl_double compute_next_timestep();
- ATTR_ALIGN nl_ext_double m_A[_storage_N][((_storage_N + 7) / 8) * 8];
- //ATTR_ALIGN nl_double m_A[_storage_N][((_storage_N + 7) / 8) * 8];
+ template <typename T1, typename T2>
+ inline nl_ext_double &A(const T1 r, const T2 c) { return m_A[r][c]; }
+
ATTR_ALIGN nl_double m_RHS[_storage_N];
ATTR_ALIGN nl_double m_last_RHS[_storage_N]; // right hand side - contains currents
ATTR_ALIGN nl_double m_last_V[_storage_N];
@@ -64,9 +70,9 @@ protected:
terms_t *m_rails_temp;
private:
+ ATTR_ALIGN nl_ext_double m_A[_storage_N][((_storage_N + 7) / 8) * 8];
const unsigned m_dim;
- nl_double m_lp_fact;
};
// ----------------------------------------------------------------------------------------
@@ -136,13 +142,12 @@ ATTR_COLD void matrix_solver_direct_t<m_N, _storage_N>::add_term(int k, terminal
if (ot>=0)
{
m_terms[k]->add(term, ot, true);
- SOLVER_VERBOSE_OUT(("Net %d Term %s %f %f\n", k, terms[i]->name().cstr(), terms[i]->m_gt, terms[i]->m_go));
}
/* Should this be allowed ? */
else // if (ot<0)
{
m_rails_temp[k].add(term, ot, true);
- netlist().error("found term with missing othernet %s\n", term->name().cstr());
+ log().fatal("found term with missing othernet {1}\n", term->name());
}
}
}
@@ -152,7 +157,7 @@ template <unsigned m_N, unsigned _storage_N>
ATTR_COLD void matrix_solver_direct_t<m_N, _storage_N>::vsetup(analog_net_t::list_t &nets)
{
if (m_dim < nets.size())
- netlist().error("Dimension %d less than %" SIZETFMT, m_dim, SIZET_PRINTF(nets.size()));
+ log().fatal("Dimension {1} less than {2}", m_dim, nets.size());
for (unsigned k = 0; k < N(); k++)
{
@@ -259,13 +264,40 @@ ATTR_COLD void matrix_solver_direct_t<m_N, _storage_N>::vsetup(analog_net_t::lis
psort_list(t->m_nz);
}
- if(0)
+ /* create a list of non zero elements below diagonal k
+ * This should reduce cache misses ...
+ */
+
+ bool touched[_storage_N][_storage_N] = { { false } };
+ for (unsigned k = 0; k < N(); k++)
+ {
+ m_terms[k]->m_nzbd.clear();
+ for (unsigned j = 0; j < m_terms[k]->m_nz.size(); j++)
+ touched[k][m_terms[k]->m_nz[j]] = true;
+ }
+
+ for (unsigned k = 0; k < N(); k++)
+ {
+ for (unsigned row = k + 1; row < N(); row++)
+ {
+ if (touched[row][k])
+ {
+ if (!m_terms[k]->m_nzbd.contains(row))
+ m_terms[k]->m_nzbd.add(row);
+ for (unsigned col = k; col < N(); col++)
+ if (touched[k][col])
+ touched[row][col] = true;
+ }
+ }
+ }
+
+ if (0)
for (unsigned k = 0; k < N(); k++)
{
- netlist().log("%3d: ", k);
+ pstring line = pfmt("{1}")(k, "3");
for (unsigned j = 0; j < m_terms[k]->m_nzrd.size(); j++)
- netlist().log(" %3d", m_terms[k]->m_nzrd[j]);
- netlist().log("\n");
+ line += pfmt(" {1}")(m_terms[k]->m_nzrd[j], "3");
+ log().verbose("{1}", line);
}
/*
@@ -277,7 +309,7 @@ ATTR_COLD void matrix_solver_direct_t<m_N, _storage_N>::vsetup(analog_net_t::lis
for (unsigned k = 0; k < N(); k++)
{
- pstring num = pstring::sprintf("%d", k);
+ pstring num = pfmt("{1}")(k);
save(m_terms[k]->go(),"GO" + num, m_terms[k]->count());
save(m_terms[k]->gt(),"GT" + num, m_terms[k]->count());
@@ -294,22 +326,25 @@ ATTR_HOT void matrix_solver_direct_t<m_N, _storage_N>::build_LE_A()
for (unsigned k = 0; k < iN; k++)
{
for (unsigned i=0; i < iN; i++)
- m_A[k][i] = 0.0;
+ A(k,i) = 0.0;
- nl_double akk = 0.0;
const unsigned terms_count = m_terms[k]->count();
const unsigned railstart = m_terms[k]->m_railstart;
const nl_double * RESTRICT gt = m_terms[k]->gt();
- const nl_double * RESTRICT go = m_terms[k]->go();
- const int * RESTRICT net_other = m_terms[k]->net_other();
- for (unsigned i = 0; i < terms_count; i++)
- akk = akk + gt[i];
+ {
+ nl_double akk = 0.0;
+ for (unsigned i = 0; i < terms_count; i++)
+ akk += gt[i];
- m_A[k][k] += akk;
+ A(k,k) = akk;
+ }
+
+ const nl_double * RESTRICT go = m_terms[k]->go();
+ const int * RESTRICT net_other = m_terms[k]->net_other();
for (unsigned i = 0; i < railstart; i++)
- m_A[k][net_other[i]] -= go[i];
+ A(k,net_other[i]) -= go[i];
}
}
@@ -341,54 +376,41 @@ ATTR_HOT void matrix_solver_direct_t<m_N, _storage_N>::build_LE_RHS(nl_double *
template <unsigned m_N, unsigned _storage_N>
ATTR_HOT void matrix_solver_direct_t<m_N, _storage_N>::LE_solve()
{
-#if 0
- for (int i = 0; i < N(); i++)
- {
- for (int k = 0; k < N(); k++)
- printf("%f ", m_A[i][k]);
- printf("| %f = %f \n", x[i], m_RHS[i]);
- }
- printf("\n");
-#endif
-
const unsigned kN = N();
for (unsigned i = 0; i < kN; i++) {
- // FIXME: use a parameter to enable pivoting?
- if (USE_PIVOT_SEARCH)
+ // FIXME: use a parameter to enable pivoting? m_pivot
+ if (m_params.m_pivot)
{
/* Find the row with the largest first value */
unsigned maxrow = i;
for (unsigned j = i + 1; j < kN; j++)
{
//if (std::abs(m_A[j][i]) > std::abs(m_A[maxrow][i]))
- if (m_A[j][i] * m_A[j][i] > m_A[maxrow][i] * m_A[maxrow][i])
+ if (A(j,i) * A(j,i) > A(maxrow,i) * A(maxrow,i))
maxrow = j;
}
if (maxrow != i)
{
/* Swap the maxrow and ith row */
- for (unsigned k = i; k < kN; k++) {
- std::swap(m_A[i][k], m_A[maxrow][k]);
+ for (unsigned k = 0; k < kN; k++) {
+ std::swap(A(i,k), A(maxrow,k));
}
std::swap(m_RHS[i], m_RHS[maxrow]);
}
/* FIXME: Singular matrix? */
- const nl_double f = 1.0 / m_A[i][i];
- const nl_ext_double * RESTRICT s = &m_A[i][i+1];
+ const nl_double f = 1.0 / A(i,i);
/* Eliminate column i from row j */
for (unsigned j = i + 1; j < kN; j++)
{
- nl_ext_double * RESTRICT d = &m_A[j][i+1];
- const nl_double f1 = - m_A[j][i] * f;
+ const nl_double f1 = - A(j,i) * f;
if (f1 != NL_FCONST(0.0))
{
- const unsigned e = kN - i - 1;
- for (unsigned k = 0; k < e; k++)
- d[k] = d[k] + s[k] * f1;
+ for (unsigned k = i+1; k < kN; k++)
+ A(j,k) += A(i,k) * f1;
m_RHS[j] += m_RHS[i] * f1;
}
}
@@ -396,41 +418,23 @@ ATTR_HOT void matrix_solver_direct_t<m_N, _storage_N>::LE_solve()
else
{
/* FIXME: Singular matrix? */
- const nl_double f = 1.0 / m_A[i][i];
- const nl_ext_double * RESTRICT s = &m_A[i][0];
- const unsigned *p = m_terms[i]->m_nzrd.data();
+ const nl_double f = 1.0 / A(i,i);
+ const unsigned * RESTRICT const p = m_terms[i]->m_nzrd.data();
const unsigned e = m_terms[i]->m_nzrd.size();
/* Eliminate column i from row j */
- for (unsigned j = i + 1; j < kN; j++)
+ const unsigned * RESTRICT const pb = m_terms[i]->m_nzbd.data();
+ const unsigned eb = m_terms[i]->m_nzbd.size();
+ for (unsigned jb = 0; jb < eb; jb++)
{
- nl_ext_double * RESTRICT d = &m_A[j][0];
- const nl_double f1 = - d[i] * f;
- if (f1 != NL_FCONST(0.0))
+ const unsigned j = pb[jb];
+ const nl_double f1 = - A(j,i) * f;
+ for (unsigned k = 0; k < e; k++)
{
- #if 0
- /* The code below is 30% faster than the original
- * implementation which is given here for reference.
- *
- * for (unsigned k = i + 1; k < kN; k++)
- * m_A[j][k] = m_A[j][k] + m_A[i][k] * f1;
- */
- double * RESTRICT d = &m_A[j][i+1];
- const double * RESTRICT s = &m_A[i][i+1];
- const int e = kN - i - 1;
-
- for (int k = 0; k < e; k++)
- d[k] = d[k] + s[k] * f1;
- #else
- for (unsigned k = 0; k < e; k++)
- {
- const unsigned pk = p[k];
- d[pk] += s[pk] * f1;
- }
- #endif
- m_RHS[j] += m_RHS[i] * f1;
+ A(j,p[k]) += A(i,p[k]) * f1;
}
+ m_RHS[j] += m_RHS[i] * f1;
}
}
}
@@ -443,44 +447,66 @@ ATTR_HOT void matrix_solver_direct_t<m_N, _storage_N>::LE_back_subst(
const unsigned kN = N();
/* back substitution */
- for (int j = kN - 1; j >= 0; j--)
+ if (m_params.m_pivot)
{
- nl_double tmp = 0;
-
-#if 1
-#if (USE_PIVOT_SEARCH)
- const nl_ext_double * RESTRICT A = &m_A[j][j+1];
- const nl_double * RESTRICT xp = &x[j+1];
- const unsigned e = kN - j - 1;
- for (unsigned k = 0; k < e; k++)
- tmp += A[k] * xp[k];
-#else
- const nl_ext_double * RESTRICT A = &m_A[j][0];
- const unsigned *p = m_terms[j]->m_nzrd.data();
- const unsigned e = m_terms[j]->m_nzrd.size();
-
- for (unsigned k = 0; k < e; k++)
+ for (int j = kN - 1; j >= 0; j--)
{
- const unsigned pk = p[k];
- tmp += A[pk] * x[pk];
+ nl_double tmp = 0;
+ for (unsigned k = j+1; k < kN; k++)
+ tmp += A(j,k) * x[k];
+ x[j] = (m_RHS[j] - tmp) / A(j,j);
}
-#endif
-#else
- for (unsigned k = j + 1; k < kN; k++)
- tmp += m_A[j][k] * x[k];
-#endif
- x[j] = (m_RHS[j] - tmp) / m_A[j][j];
}
-#if 0
- printf("Solution:\n");
- for (unsigned i = 0; i < N(); i++)
+ else
{
- for (unsigned k = 0; k < N(); k++)
- printf("%f ", m_A[i][k]);
- printf("| %f = %f \n", x[i], m_RHS[i]);
+ for (int j = kN - 1; j >= 0; j--)
+ {
+ nl_double tmp = 0;
+
+ const unsigned *p = m_terms[j]->m_nzrd.data();
+ const unsigned e = m_terms[j]->m_nzrd.size();
+
+ for (unsigned k = 0; k < e; k++)
+ {
+ const unsigned pk = p[k];
+ tmp += A(j,pk) * x[pk];
+ }
+ x[j] = (m_RHS[j] - tmp) / A(j,j);
+ }
+ }
+}
+
+template <unsigned m_N, unsigned _storage_N>
+ATTR_HOT void matrix_solver_direct_t<m_N, _storage_N>::LE_back_subst_full(
+ nl_double * RESTRICT x)
+{
+ const unsigned kN = N();
+
+ /* back substitution */
+
+ // int ip;
+ // ii=-1
+
+ //for (int i=0; i < kN; i++)
+ // x[i] = m_RHS[i];
+
+ for (int i=0; i < kN; i++)
+ {
+ //ip=indx[i]; USE_PIVOT_SEARCH
+ //sum=b[ip];
+ //b[ip]=b[i];
+ double sum=m_RHS[i];//x[i];
+ for (int j=0; j < i; j++)
+ sum -= A(i,j) * x[j];
+ x[i]=sum;
+ }
+ for (int i=kN-1; i >= 0; i--)
+ {
+ double sum=x[i];
+ for (int j = i+1; j < kN; j++)
+ sum -= A(i,j)*x[j];
+ x[i] = sum / A(i,i);
}
- printf("\n");
-#endif
}
@@ -527,33 +553,11 @@ ATTR_HOT int matrix_solver_direct_t<m_N, _storage_N>::solve_non_dynamic(ATTR_UNU
if (newton_raphson)
{
-#if 0
- /* limiting just doesn't work. */
- const unsigned iN = this->N();
- double err = 0;
- for (unsigned k = 0; k < iN; k++)
- {
- const double ov = this->m_nets[k]->m_cur_Analog;
- double d = new_V[k] - ov;
- err = std::max(nl_math::abs(d), err);
- }
- double a = 1.05;
- for (unsigned k = 0; k < iN; k++)
- {
- const double ov = this->m_nets[k]->m_cur_Analog;
- double d = new_V[k] - ov;
- const double nv = ov + a * d;
- this->m_nets[k]->m_cur_Analog = nv;
- }
-
- return (err > this->m_params.m_accuracy) ? 2 : 1;
-#else
nl_double err = delta(new_V);
store(new_V);
return (err > this->m_params.m_accuracy) ? 2 : 1;
-#endif
}
else
{
@@ -580,7 +584,6 @@ template <unsigned m_N, unsigned _storage_N>
matrix_solver_direct_t<m_N, _storage_N>::matrix_solver_direct_t(const solver_parameters_t *params, const int size)
: matrix_solver_t(GAUSSIAN_ELIMINATION, params)
, m_dim(size)
-, m_lp_fact(0)
{
m_terms = palloc_array(terms_t *, N());
m_rails_temp = palloc_array(terms_t, N());
@@ -597,7 +600,6 @@ template <unsigned m_N, unsigned _storage_N>
matrix_solver_direct_t<m_N, _storage_N>::matrix_solver_direct_t(const eSolverType type, const solver_parameters_t *params, const int size)
: matrix_solver_t(type, params)
, m_dim(size)
-, m_lp_fact(0)
{
m_terms = palloc_array(terms_t *, N());
m_rails_temp = palloc_array(terms_t, N());
diff --git a/src/emu/netlist/solver/nld_ms_direct1.h b/src/lib/netlist/solver/nld_ms_direct1.h
index d2009846053..9f895a6c3f3 100644
--- a/src/emu/netlist/solver/nld_ms_direct1.h
+++ b/src/lib/netlist/solver/nld_ms_direct1.h
@@ -8,8 +8,8 @@
#ifndef NLD_MS_DIRECT1_H_
#define NLD_MS_DIRECT1_H_
-#include "../solver/nld_ms_direct.h"
-#include "../solver/nld_solver.h"
+#include "solver/nld_ms_direct.h"
+#include "solver/nld_solver.h"
NETLIB_NAMESPACE_DEVICES_START()
@@ -41,9 +41,9 @@ ATTR_HOT inline int matrix_solver_direct1_t::vsolve_non_dynamic(ATTR_UNUSED cons
analog_net_t *net = m_nets[0];
this->build_LE_A();
this->build_LE_RHS(m_RHS);
- //NL_VERBOSE_OUT(("%f %f\n", new_val, m_RHS[0] / m_A[0][0]);
+ //NL_VERBOSE_OUT(("{1} {2}\n", new_val, m_RHS[0] / m_A[0][0]);
- nl_double new_val = m_RHS[0] / m_A[0][0];
+ nl_double new_val = m_RHS[0] / A(0,0);
nl_double e = (new_val - net->m_cur_Analog);
nl_double cerr = nl_math::abs(e);
diff --git a/src/emu/netlist/solver/nld_ms_direct2.h b/src/lib/netlist/solver/nld_ms_direct2.h
index 79f9e55d908..f78c36770e6 100644
--- a/src/emu/netlist/solver/nld_ms_direct2.h
+++ b/src/lib/netlist/solver/nld_ms_direct2.h
@@ -8,8 +8,8 @@
#ifndef NLD_MS_DIRECT2_H_
#define NLD_MS_DIRECT2_H_
-#include "../solver/nld_ms_direct.h"
-#include "../solver/nld_solver.h"
+#include "solver/nld_ms_direct.h"
+#include "solver/nld_solver.h"
NETLIB_NAMESPACE_DEVICES_START()
@@ -41,10 +41,10 @@ ATTR_HOT inline int matrix_solver_direct2_t::vsolve_non_dynamic(ATTR_UNUSED cons
build_LE_A();
build_LE_RHS(m_RHS);
- const nl_double a = m_A[0][0];
- const nl_double b = m_A[0][1];
- const nl_double c = m_A[1][0];
- const nl_double d = m_A[1][1];
+ const nl_double a = A(0,0);
+ const nl_double b = A(0,1);
+ const nl_double c = A(1,0);
+ const nl_double d = A(1,1);
nl_double new_val[2];
new_val[1] = (a * m_RHS[1] - c * m_RHS[0]) / (a * d - b * c);
diff --git a/src/lib/netlist/solver/nld_ms_direct_lu.h b/src/lib/netlist/solver/nld_ms_direct_lu.h
new file mode 100644
index 00000000000..d988942058e
--- /dev/null
+++ b/src/lib/netlist/solver/nld_ms_direct_lu.h
@@ -0,0 +1,651 @@
+// license:GPL-2.0+
+// copyright-holders:Couriersud
+/*
+ * nld_ms_direct.h
+ *
+ */
+
+#ifndef NLD_MS_DIRECT_H_
+#define NLD_MS_DIRECT_H_
+
+#include <algorithm>
+
+#include "solver/nld_solver.h"
+
+//#define A(_r, _c) m_A[_r][_c]
+
+NETLIB_NAMESPACE_DEVICES_START()
+
+//#define nl_ext_double __float128 // slow, very slow
+//#define nl_ext_double long double // slightly slower
+#define nl_ext_double double
+
+template <unsigned m_N, unsigned _storage_N>
+class matrix_solver_direct_t: public matrix_solver_t
+{
+public:
+
+ matrix_solver_direct_t(const solver_parameters_t *params, const int size);
+ matrix_solver_direct_t(const eSolverType type, const solver_parameters_t *params, const int size);
+
+ virtual ~matrix_solver_direct_t();
+
+ virtual void vsetup(analog_net_t::list_t &nets);
+ virtual void reset() { matrix_solver_t::reset(); }
+
+ ATTR_HOT inline unsigned N() const { if (m_N == 0) return m_dim; else return m_N; }
+
+ ATTR_HOT inline int vsolve_non_dynamic(const bool newton_raphson);
+
+protected:
+ virtual void add_term(int net_idx, terminal_t *term);
+
+ ATTR_HOT virtual nl_double vsolve();
+
+ ATTR_HOT int solve_non_dynamic(const bool newton_raphson);
+ ATTR_HOT void build_LE_A();
+ ATTR_HOT void build_LE_RHS(nl_double * RESTRICT rhs);
+
+ template<unsigned k>
+ void LEk()
+ {
+ //const unsigned kN = N();
+
+ const double akki = 1.0 / A(k,k);
+ const unsigned * const p = m_terms[k]->m_nzrd.data();
+ const unsigned e = m_terms[k]->m_nzrd.size();
+
+ for (int i = k+1; i < _storage_N;i++)
+ {
+ const double alpha = A(i,k) * akki;
+ A(i,k) = alpha;
+ if (alpha != 0.0)
+ for (int j = 0; j < e; j++)
+ {
+ const int pk = p[j];
+ A(i,pk) -= A(k,pk) * alpha;
+ }
+ }
+ }
+
+ ATTR_HOT void LE_solve()
+ {
+ const unsigned kN = N();
+ unsigned sk = 1;
+
+ if (1 && kN == _storage_N)
+ {
+ if (kN> 0 ) LEk<0>();
+ if (kN> 1 ) LEk<1>();
+ if (kN> 2 ) LEk<2>();
+ if (kN> 3 ) LEk<3>();
+ if (kN> 4 ) LEk<4>();
+ if (kN> 5 ) LEk<5>();
+ if (kN> 6 ) LEk<6>();
+ if (kN> 7 ) LEk<7>();
+ if (kN> 8 ) LEk<8>();
+ if (kN> 9 ) LEk<9>();
+ if (kN>10 ) LEk<10>();
+ if (kN>11 ) LEk<11>();
+ if (kN>12 ) LEk<12>();
+ if (kN>13 ) LEk<13>();
+ if (kN>14 ) LEk<14>();
+ if (kN>15 ) LEk<15>();
+ if (kN>16 ) LEk<16>();
+ if (kN>17 ) LEk<17>();
+ if (kN>18 ) LEk<18>();
+ if (kN>19 ) LEk<19>();
+ if (kN>20 ) LEk<20>();
+ if (kN>21 ) LEk<21>();
+ if (kN>22 ) LEk<22>();
+ if (kN>23 ) LEk<23>();
+ if (kN>24 ) LEk<24>();
+ if (kN>25 ) LEk<25>();
+ if (kN>26 ) LEk<26>();
+ if (kN>27 ) LEk<27>();
+ if (kN>28 ) LEk<28>();
+ if (kN>29 ) LEk<29>();
+ sk = 30;
+ }
+
+ for (int k = sk; k < kN - 1; k++)
+ {
+ const double akki = 1.0 / A(k,k);
+ const unsigned * const p = m_terms[k]->m_nzrd.data();
+ const unsigned e = m_terms[k]->m_nzrd.size();
+
+ for (int i = k+1; i < kN;i++)
+ {
+ const double alpha = A(i,k) * akki;
+ A(i,k) = alpha;
+ if (alpha != 0.0)
+ for (int j = 0; j < e; j++)
+ {
+ const int pk = p[j];
+ A(i,pk) -= A(k,pk) * alpha;
+ }
+ }
+ }
+ }
+ ATTR_HOT void LE_back_subst(nl_double * RESTRICT x);
+ ATTR_HOT nl_double delta(const nl_double * RESTRICT V);
+ ATTR_HOT void store(const nl_double * RESTRICT V);
+
+ /* bring the whole system to the current time
+ * Don't schedule a new calculation time. The recalculation has to be
+ * triggered by the caller after the netlist element was changed.
+ */
+ ATTR_HOT nl_double compute_next_timestep();
+
+ template <typename T1, typename T2>
+ inline nl_ext_double &A(const T1 r, const T2 c) { return m_A[r][c]; }
+
+ //ATTR_ALIGN nl_double m_A[_storage_N][((_storage_N + 7) / 8) * 8];
+ ATTR_ALIGN nl_double m_RHS[_storage_N];
+ ATTR_ALIGN nl_double m_last_RHS[_storage_N]; // right hand side - contains currents
+ ATTR_ALIGN nl_double m_last_V[_storage_N];
+
+ terms_t **m_terms;
+ terms_t *m_rails_temp;
+
+private:
+ ATTR_ALIGN nl_ext_double m_A[_storage_N][((_storage_N + 7) / 8) * 8];
+
+ const unsigned m_dim;
+ nl_double m_lp_fact;
+};
+
+// ----------------------------------------------------------------------------------------
+// matrix_solver_direct
+// ----------------------------------------------------------------------------------------
+
+template <unsigned m_N, unsigned _storage_N>
+matrix_solver_direct_t<m_N, _storage_N>::~matrix_solver_direct_t()
+{
+ for (unsigned k = 0; k < N(); k++)
+ {
+ pfree(m_terms[k]);
+ }
+ pfree_array(m_terms);
+ pfree_array(m_rails_temp);
+}
+
+template <unsigned m_N, unsigned _storage_N>
+ATTR_HOT nl_double matrix_solver_direct_t<m_N, _storage_N>::compute_next_timestep()
+{
+ nl_double new_solver_timestep = m_params.m_max_timestep;
+
+ if (m_params.m_dynamic)
+ {
+ /*
+ * FIXME: We should extend the logic to use either all nets or
+ * only output nets.
+ */
+ for (unsigned k = 0, iN=N(); k < iN; k++)
+ {
+ analog_net_t *n = m_nets[k];
+
+ const nl_double DD_n = (n->m_cur_Analog - m_last_V[k]);
+ const nl_double hn = current_timestep();
+
+ nl_double DD2 = (DD_n / hn - n->m_DD_n_m_1 / n->m_h_n_m_1) / (hn + n->m_h_n_m_1);
+ nl_double new_net_timestep;
+
+ n->m_h_n_m_1 = hn;
+ n->m_DD_n_m_1 = DD_n;
+ if (nl_math::abs(DD2) > NL_FCONST(1e-30)) // avoid div-by-zero
+ new_net_timestep = nl_math::sqrt(m_params.m_lte / nl_math::abs(NL_FCONST(0.5)*DD2));
+ else
+ new_net_timestep = m_params.m_max_timestep;
+
+ if (new_net_timestep < new_solver_timestep)
+ new_solver_timestep = new_net_timestep;
+ }
+ if (new_solver_timestep < m_params.m_min_timestep)
+ new_solver_timestep = m_params.m_min_timestep;
+ }
+ //if (new_solver_timestep > 10.0 * hn)
+ // new_solver_timestep = 10.0 * hn;
+ return new_solver_timestep;
+}
+
+template <unsigned m_N, unsigned _storage_N>
+ATTR_COLD void matrix_solver_direct_t<m_N, _storage_N>::add_term(int k, terminal_t *term)
+{
+ if (term->m_otherterm->net().isRailNet())
+ {
+ m_rails_temp[k].add(term, -1, false);
+ }
+ else
+ {
+ int ot = get_net_idx(&term->m_otherterm->net());
+ if (ot>=0)
+ {
+ m_terms[k]->add(term, ot, true);
+ }
+ /* Should this be allowed ? */
+ else // if (ot<0)
+ {
+ m_rails_temp[k].add(term, ot, true);
+ netlist().error("found term with missing othernet {1}\n", term->name());
+ }
+ }
+}
+
+
+template <unsigned m_N, unsigned _storage_N>
+ATTR_COLD void matrix_solver_direct_t<m_N, _storage_N>::vsetup(analog_net_t::list_t &nets)
+{
+ if (m_dim < nets.size())
+ netlist().error("Dimension {1} less than {2}", m_dim,nets.size());
+
+ for (unsigned k = 0; k < N(); k++)
+ {
+ m_terms[k]->clear();
+ m_rails_temp[k].clear();
+ }
+
+ matrix_solver_t::setup(nets);
+
+ for (unsigned k = 0; k < N(); k++)
+ {
+ m_terms[k]->m_railstart = m_terms[k]->count();
+ for (unsigned i = 0; i < m_rails_temp[k].count(); i++)
+ this->m_terms[k]->add(m_rails_temp[k].terms()[i], m_rails_temp[k].net_other()[i], false);
+
+ m_rails_temp[k].clear(); // no longer needed
+ m_terms[k]->set_pointers();
+ }
+
+#if 1
+
+ /* Sort in descending order by number of connected matrix voltages.
+ * The idea is, that for Gauss-Seidel algo the first voltage computed
+ * depends on the greatest number of previous voltages thus taking into
+ * account the maximum amout of information.
+ *
+ * This actually improves performance on popeye slightly. Average
+ * GS computations reduce from 2.509 to 2.370
+ *
+ * Smallest to largest : 2.613
+ * Unsorted : 2.509
+ * Largest to smallest : 2.370
+ *
+ * Sorting as a general matrix pre-conditioning is mentioned in
+ * literature but I have found no articles about Gauss Seidel.
+ *
+ * For Gaussian Elimination however increasing order is better suited.
+ * FIXME: Even better would be to sort on elements right of the matrix diagonal.
+ *
+ */
+
+ int sort_order = (type() == GAUSS_SEIDEL ? 1 : -1);
+
+ for (unsigned k = 0; k < N() / 2; k++)
+ for (unsigned i = 0; i < N() - 1; i++)
+ {
+ if ((m_terms[i]->m_railstart - m_terms[i+1]->m_railstart) * sort_order < 0)
+ {
+ std::swap(m_terms[i],m_terms[i+1]);
+ m_nets.swap(i, i+1);
+ }
+ }
+
+ for (unsigned k = 0; k < N(); k++)
+ {
+ int *other = m_terms[k]->net_other();
+ for (unsigned i = 0; i < m_terms[k]->count(); i++)
+ if (other[i] != -1)
+ other[i] = get_net_idx(&m_terms[k]->terms()[i]->m_otherterm->net());
+ }
+
+#endif
+
+ /* create a list of non zero elements right of the diagonal
+ * These list anticipate the population of array elements by
+ * Gaussian elimination.
+ */
+ for (unsigned k = 0; k < N(); k++)
+ {
+ terms_t * t = m_terms[k];
+ /* pretty brutal */
+ int *other = t->net_other();
+
+ t->m_nz.clear();
+
+ if (k==0)
+ t->m_nzrd.clear();
+ else
+ {
+ t->m_nzrd = m_terms[k-1]->m_nzrd;
+ unsigned j=0;
+ while(j < t->m_nzrd.size())
+ {
+ if (t->m_nzrd[j] < k + 1)
+ t->m_nzrd.remove_at(j);
+ else
+ j++;
+ }
+ }
+
+ for (unsigned j = 0; j < N(); j++)
+ {
+ for (unsigned i = 0; i < t->m_railstart; i++)
+ {
+ if (!t->m_nzrd.contains(other[i]) && other[i] >= (int) (k + 1))
+ t->m_nzrd.add(other[i]);
+ if (!t->m_nz.contains(other[i]))
+ t->m_nz.add(other[i]);
+ }
+ }
+ psort_list(t->m_nzrd);
+
+ t->m_nz.add(k); // add diagonal
+ psort_list(t->m_nz);
+ }
+
+ if(0)
+ for (unsigned k = 0; k < N(); k++)
+ {
+ netlist().log("{1:3}: ", k);
+ for (unsigned j = 0; j < m_terms[k]->m_nzrd.size(); j++)
+ netlist().log(" {1:3}", m_terms[k]->m_nzrd[j]);
+ netlist().log("\n");
+ }
+
+ /*
+ * save states
+ */
+ save(NLNAME(m_RHS));
+ save(NLNAME(m_last_RHS));
+ save(NLNAME(m_last_V));
+
+ for (unsigned k = 0; k < N(); k++)
+ {
+ pstring num = pfmt("{1}")(k);
+
+ save(m_terms[k]->go(),"GO" + num, m_terms[k]->count());
+ save(m_terms[k]->gt(),"GT" + num, m_terms[k]->count());
+ save(m_terms[k]->Idr(),"IDR" + num , m_terms[k]->count());
+ }
+
+}
+
+
+template <unsigned m_N, unsigned _storage_N>
+ATTR_HOT void matrix_solver_direct_t<m_N, _storage_N>::build_LE_A()
+{
+ const unsigned iN = N();
+ for (unsigned k = 0; k < iN; k++)
+ {
+ for (unsigned i=0; i < iN; i++)
+ A(k,i) = 0.0;
+
+ nl_double akk = 0.0;
+ const unsigned terms_count = m_terms[k]->count();
+ const unsigned railstart = m_terms[k]->m_railstart;
+ const nl_double * RESTRICT gt = m_terms[k]->gt();
+ const nl_double * RESTRICT go = m_terms[k]->go();
+ const int * RESTRICT net_other = m_terms[k]->net_other();
+
+ for (unsigned i = 0; i < terms_count; i++)
+ akk = akk + gt[i];
+
+ A(k,k) += akk;
+
+ for (unsigned i = 0; i < railstart; i++)
+ A(k, net_other[i]) -= go[i];
+ }
+}
+
+template <unsigned m_N, unsigned _storage_N>
+ATTR_HOT void matrix_solver_direct_t<m_N, _storage_N>::build_LE_RHS(nl_double * RESTRICT rhs)
+{
+ const unsigned iN = N();
+ for (unsigned k = 0; k < iN; k++)
+ {
+ nl_double rhsk_a = 0.0;
+ nl_double rhsk_b = 0.0;
+
+ const int terms_count = m_terms[k]->count();
+ const nl_double * RESTRICT go = m_terms[k]->go();
+ const nl_double * RESTRICT Idr = m_terms[k]->Idr();
+ const nl_double * const * RESTRICT other_cur_analog = m_terms[k]->other_curanalog();
+
+ for (int i = 0; i < terms_count; i++)
+ rhsk_a = rhsk_a + Idr[i];
+
+ for (int i = m_terms[k]->m_railstart; i < terms_count; i++)
+ //rhsk = rhsk + go[i] * terms[i]->m_otherterm->net().as_analog().Q_Analog();
+ rhsk_b = rhsk_b + go[i] * *other_cur_analog[i];
+
+ rhs[k] = rhsk_a + rhsk_b;
+ }
+}
+
+#if 1
+#else
+// Crout algo
+template <unsigned m_N, unsigned _storage_N>
+ATTR_HOT void matrix_solver_direct_t<m_N, _storage_N>::LE_solve()
+{
+ const unsigned kN = N();
+
+ ATTR_UNUSED int imax;
+ ATTR_UNUSED double big,temp;
+
+#if 0
+ double vv[_storage_N];
+
+ for (i=0;i<kN;i++)
+ {
+ big=0.0;
+ for (j=0;j<kN;j++)
+ if ((temp=fabs(m_A[i][j])) > big)
+ big=temp;
+ //if (big == 0.0) nrerror("Singular matrix in routine LUDCMP");
+ vv[i]=1.0/big;
+ }
+#endif
+ for (int j = 0; j < kN; j++)
+ {
+#if 1
+ for (int i=0; i < kN;i++)
+ {
+ double sum = 0.0;
+ const int e = (i<j ? i : j);
+ for (int k=0; k < e; k++)
+ sum += A(i,k) * A(k,j);
+ A(i,j) -= sum;
+ }
+#else
+ for (int i=0; i < j;i++)
+ {
+ double * RESTRICT p = m_A[i];
+ double sum = 0.0;
+ for (int k=0; k < i; k++)
+ sum += p[k] * m_A[k][j];
+ p[j] -= sum;
+ }
+ big=0.0;
+ for (int i = j; i < kN; i++)
+ {
+ double * RESTRICT p = m_A[i];
+ double sum = 0.0;
+ for (int k = 0; k < j; k++)
+ sum += p[k] * m_A[k][j];
+ p[j] -= sum;
+#if 0
+ if ( (dum=vv[i]*fabs(sum)) >= big) {
+ big=dum;
+ imax=i;
+ }
+#endif
+ }
+#endif
+#if 0
+ // USE_PIVOT_SEARCH
+ // omit pivoting for now
+ if (j != imax)
+ {
+ for (k=0;k<kN;k++)
+ {
+ dum=m_A[imax][k];
+ m_A[imax][k]=m_A[j][k];
+ m_A[j][k]=dum;
+ }
+ //*d = -(*d);
+ vv[imax]=vv[j];
+ }
+ indx[j]=imax;
+#endif
+ //if (m_A[j][j] == 0.0)
+ // m_A[j][j] = 1e-20;
+ double dum = 1.0 / A(j,j);
+ for (int i = j+1; i < kN; i++)
+ A(i,j) *= dum;
+ }
+}
+#endif
+
+template <unsigned m_N, unsigned _storage_N>
+ATTR_HOT void matrix_solver_direct_t<m_N, _storage_N>::LE_back_subst(
+ nl_double * RESTRICT x)
+{
+ const unsigned kN = N();
+
+ /* back substitution */
+
+ // int ip;
+ // ii=-1
+
+ //for (int i=0; i < kN; i++)
+ // x[i] = m_RHS[i];
+
+ for (int i=0; i < kN; i++)
+ {
+ //ip=indx[i]; USE_PIVOT_SEARCH
+ //sum=b[ip];
+ //b[ip]=b[i];
+ double sum=m_RHS[i];//x[i];
+ for (int j=0; j < i; j++)
+ sum -= A(i,j) * x[j];
+ x[i]=sum;
+ }
+ for (int i=kN-1; i >= 0; i--)
+ {
+ double sum=x[i];
+ for (int j = i+1; j < kN; j++)
+ sum -= A(i,j)*x[j];
+ x[i] = sum / A(i,i);
+ }
+
+}
+
+template <unsigned m_N, unsigned _storage_N>
+ATTR_HOT nl_double matrix_solver_direct_t<m_N, _storage_N>::delta(
+ const nl_double * RESTRICT V)
+{
+ /* FIXME: Ideally we should also include currents (RHS) here. This would
+ * need a revaluation of the right hand side after voltages have been updated
+ * and thus belong into a different calculation. This applies to all solvers.
+ */
+
+ const unsigned iN = this->N();
+ nl_double cerr = 0;
+ for (unsigned i = 0; i < iN; i++)
+ cerr = std::max(cerr, nl_math::abs(V[i] - this->m_nets[i]->m_cur_Analog));
+ return cerr;
+}
+
+template <unsigned m_N, unsigned _storage_N>
+ATTR_HOT void matrix_solver_direct_t<m_N, _storage_N>::store(
+ const nl_double * RESTRICT V)
+{
+ for (unsigned i = 0, iN=N(); i < iN; i++)
+ {
+ this->m_nets[i]->m_cur_Analog = V[i];
+ }
+}
+
+template <unsigned m_N, unsigned _storage_N>
+ATTR_HOT nl_double matrix_solver_direct_t<m_N, _storage_N>::vsolve()
+{
+ this->solve_base(this);
+ return this->compute_next_timestep();
+}
+
+
+template <unsigned m_N, unsigned _storage_N>
+ATTR_HOT int matrix_solver_direct_t<m_N, _storage_N>::solve_non_dynamic(ATTR_UNUSED const bool newton_raphson)
+{
+ nl_double new_V[_storage_N]; // = { 0.0 };
+
+ this->LE_back_subst(new_V);
+
+ if (newton_raphson)
+ {
+ nl_double err = delta(new_V);
+
+ store(new_V);
+
+ return (err > this->m_params.m_accuracy) ? 2 : 1;
+ }
+ else
+ {
+ store(new_V);
+ return 1;
+ }
+}
+
+template <unsigned m_N, unsigned _storage_N>
+ATTR_HOT inline int matrix_solver_direct_t<m_N, _storage_N>::vsolve_non_dynamic(const bool newton_raphson)
+{
+ this->build_LE_A();
+ this->build_LE_RHS(m_last_RHS);
+
+ for (unsigned i=0, iN=N(); i < iN; i++)
+ m_RHS[i] = m_last_RHS[i];
+
+ this->LE_solve();
+
+ return this->solve_non_dynamic(newton_raphson);
+}
+
+template <unsigned m_N, unsigned _storage_N>
+matrix_solver_direct_t<m_N, _storage_N>::matrix_solver_direct_t(const solver_parameters_t *params, const int size)
+: matrix_solver_t(GAUSSIAN_ELIMINATION, params)
+, m_dim(size)
+, m_lp_fact(0)
+{
+ m_terms = palloc_array(terms_t *, N());
+ m_rails_temp = palloc_array(terms_t, N());
+
+ for (unsigned k = 0; k < N(); k++)
+ {
+ m_terms[k] = palloc(terms_t);
+ m_last_RHS[k] = 0.0;
+ m_last_V[k] = 0.0;
+ }
+}
+
+template <unsigned m_N, unsigned _storage_N>
+matrix_solver_direct_t<m_N, _storage_N>::matrix_solver_direct_t(const eSolverType type, const solver_parameters_t *params, const int size)
+: matrix_solver_t(type, params)
+, m_dim(size)
+, m_lp_fact(0)
+{
+ m_terms = palloc_array(terms_t *, N());
+ m_rails_temp = palloc_array(terms_t, N());
+
+ for (unsigned k = 0; k < N(); k++)
+ {
+ m_terms[k] = palloc(terms_t);
+ m_last_RHS[k] = 0.0;
+ m_last_V[k] = 0.0;
+ }
+}
+
+NETLIB_NAMESPACE_DEVICES_END()
+
+#endif /* NLD_MS_DIRECT_H_ */
diff --git a/src/emu/netlist/solver/nld_ms_gmres.h b/src/lib/netlist/solver/nld_ms_gmres.h
index 102549b9194..5983cb1a968 100644
--- a/src/emu/netlist/solver/nld_ms_gmres.h
+++ b/src/lib/netlist/solver/nld_ms_gmres.h
@@ -14,10 +14,10 @@
#include <algorithm>
-#include "../solver/mat_cr.h"
-#include "../solver/nld_ms_direct.h"
-#include "../solver/nld_solver.h"
-#include "../solver/vector_base.h"
+#include "solver/mat_cr.h"
+#include "solver/nld_ms_direct.h"
+#include "solver/nld_solver.h"
+#include "solver/vector_base.h"
NETLIB_NAMESPACE_DEVICES_START()
@@ -35,10 +35,10 @@ public:
unsigned mr=this->N(); /* FIXME: maximum iterations locked in here */
for (unsigned i = 0; i < mr + 1; i++)
- m_ht[i] = new double[mr];
+ m_ht[i] = new nl_double[mr];
for (unsigned i = 0; i < this->N(); i++)
- m_v[i] = new double[_storage_N];
+ m_v[i] = new nl_double[_storage_N];
}
@@ -60,7 +60,7 @@ protected:
private:
- int solve_ilu_gmres(double * RESTRICT x, double * RESTRICT rhs, const unsigned restart_max, const unsigned mr, double accuracy);
+ int solve_ilu_gmres(nl_double * RESTRICT x, nl_double * RESTRICT rhs, const unsigned restart_max, const unsigned mr, nl_double accuracy);
plist_t<int> m_term_cr[_storage_N];
@@ -69,17 +69,17 @@ private:
mat_cr_t<_storage_N> mat;
- double m_A[_storage_N * _storage_N];
- double m_LU[_storage_N * _storage_N];
+ nl_double m_A[_storage_N * _storage_N];
+ nl_double m_LU[_storage_N * _storage_N];
- double m_c[_storage_N + 1]; /* mr + 1 */
- double m_g[_storage_N + 1]; /* mr + 1 */
- double * RESTRICT m_ht[_storage_N + 1]; /* (mr + 1), mr */
- double m_s[_storage_N]; /* mr + 1 */
- double * RESTRICT m_v[_storage_N + 1]; /*(mr + 1), n */
+ nl_double m_c[_storage_N + 1]; /* mr + 1 */
+ nl_double m_g[_storage_N + 1]; /* mr + 1 */
+ nl_double * RESTRICT m_ht[_storage_N + 1]; /* (mr + 1), mr */
+ nl_double m_s[_storage_N]; /* mr + 1 */
+ nl_double * RESTRICT m_v[_storage_N + 1]; /*(mr + 1), n */
//double m_y[_storage_N]; /* mr + 1 */
- double m_accuracy_mult; // FXIME: Save state
+ nl_double m_accuracy_mult; // FXIME: Save state
};
// ----------------------------------------------------------------------------------------
@@ -190,7 +190,9 @@ ATTR_HOT inline int matrix_solver_GMRES_t<m_N, _storage_N>::vsolve_non_dynamic(c
const nl_double accuracy = this->m_params.m_accuracy;
#if 1
- int mr = std::min((int) iN-1,(int) sqrt(iN));
+ int mr = _storage_N;
+ if (_storage_N > 3 )
+ mr = (int) sqrt(iN);
mr = std::min(mr, this->m_params.m_gs_loops);
int iter = 4;
int gsl = solve_ilu_gmres(new_V, RHS, iter, mr, accuracy);
@@ -214,11 +216,10 @@ ATTR_HOT inline int matrix_solver_GMRES_t<m_N, _storage_N>::vsolve_non_dynamic(c
if (newton_raphson)
{
- double err = 0;
+ nl_double err = 0;
for (unsigned k = 0; k < iN; k++)
err = std::max(nl_math::abs(l_V[k] - new_V[k]), err);
- //printf("here %s\n", this->name().cstr());
for (unsigned k = 0; k < iN; k++)
this->m_nets[k]->m_cur_Analog += 1.0 * (new_V[k] - this->m_nets[k]->m_cur_Analog);
if (err > accuracy)
@@ -234,7 +235,7 @@ ATTR_HOT inline int matrix_solver_GMRES_t<m_N, _storage_N>::vsolve_non_dynamic(c
}
}
-static inline void givens_mult( const double c, const double s, double * RESTRICT g0, double * RESTRICT g1 )
+static inline void givens_mult( const nl_double c, const nl_double s, nl_double * RESTRICT g0, nl_double * RESTRICT g1 )
{
const double tg0 = c * *g0 - s * *g1;
const double tg1 = s * *g0 + c * *g1;
@@ -244,7 +245,7 @@ static inline void givens_mult( const double c, const double s, double * RESTRIC
}
template <unsigned m_N, unsigned _storage_N>
-int matrix_solver_GMRES_t<m_N, _storage_N>::solve_ilu_gmres (double * RESTRICT x, double * RESTRICT rhs, const unsigned restart_max, const unsigned mr, double accuracy)
+int matrix_solver_GMRES_t<m_N, _storage_N>::solve_ilu_gmres (nl_double * RESTRICT x, nl_double * RESTRICT rhs, const unsigned restart_max, const unsigned mr, nl_double accuracy)
{
/*-------------------------------------------------------------------------
* The code below was inspired by code published by John Burkardt under
@@ -289,15 +290,13 @@ int matrix_solver_GMRES_t<m_N, _storage_N>::solve_ilu_gmres (double * RESTRICT x
* differently: The invest doesn't pay off.
* Therefore we use the approach in the else part.
*/
- double t[_storage_N];
- double Ax[_storage_N];
+ nl_double t[_storage_N];
+ nl_double Ax[_storage_N];
vec_set(n, accuracy, t);
mat.mult_vec(m_A, t, Ax);
mat.solveLUx(m_LU, Ax);
- const double rho_to_accuracy = std::sqrt(vecmult2(n, Ax)) / accuracy;
-
- //printf("rho/accuracy = %f\n", rho_to_accuracy);
+ const nl_double rho_to_accuracy = std::sqrt(vecmult2(n, Ax)) / accuracy;
rho_delta = accuracy * rho_to_accuracy;
}
@@ -307,11 +306,11 @@ int matrix_solver_GMRES_t<m_N, _storage_N>::solve_ilu_gmres (double * RESTRICT x
for (unsigned itr = 0; itr < restart_max; itr++)
{
unsigned last_k = mr;
- double mu;
- double rho;
+ nl_double mu;
+ nl_double rho;
- double Ax[_storage_N];
- double residual[_storage_N];
+ nl_double Ax[_storage_N];
+ nl_double residual[_storage_N];
mat.mult_vec(m_A, x, Ax);
@@ -324,13 +323,13 @@ int matrix_solver_GMRES_t<m_N, _storage_N>::solve_ilu_gmres (double * RESTRICT x
rho = std::sqrt(vecmult2(n, residual));
- vec_mult_scalar(n, residual, 1.0 / rho, m_v[0]);
+ vec_mult_scalar(n, residual, NL_FCONST(1.0) / rho, m_v[0]);
- vec_set(mr+1, 0.0, m_g);
+ vec_set(mr+1, NL_FCONST(0.0), m_g);
m_g[0] = rho;
for (unsigned i = 0; i < mr; i++)
- vec_set(mr + 1, 0.0, m_ht[i]);
+ vec_set(mr + 1, NL_FCONST(0.0), m_ht[i]);
for (unsigned k = 0; k < mr; k++)
{
@@ -349,7 +348,7 @@ int matrix_solver_GMRES_t<m_N, _storage_N>::solve_ilu_gmres (double * RESTRICT x
m_ht[k1][k] = std::sqrt(vecmult2(n, m_v[k1]));
if (m_ht[k1][k] != 0.0)
- vec_scale(n, m_v[k1], 1.0 / m_ht[k1][k]);
+ vec_scale(n, m_v[k1], NL_FCONST(1.0) / m_ht[k1][k]);
for (unsigned j = 0; j < k; j++)
givens_mult(m_c[j], m_s[j], &m_ht[j][k], &m_ht[j+1][k]);
@@ -378,7 +377,7 @@ int matrix_solver_GMRES_t<m_N, _storage_N>::solve_ilu_gmres (double * RESTRICT x
/* didn't converge within accuracy */
last_k = mr - 1;
- double m_y[_storage_N + 1];
+ nl_double m_y[_storage_N + 1];
/* Solve the system H * y = g */
/* x += m_v[j] * m_y[j] */
diff --git a/src/emu/netlist/solver/nld_ms_sor.h b/src/lib/netlist/solver/nld_ms_sor.h
index 82c10c5c9d8..41074284152 100644
--- a/src/emu/netlist/solver/nld_ms_sor.h
+++ b/src/lib/netlist/solver/nld_ms_sor.h
@@ -14,8 +14,8 @@
#include <algorithm>
-#include "../solver/nld_ms_direct.h"
-#include "../solver/nld_solver.h"
+#include "solver/nld_ms_direct.h"
+#include "solver/nld_solver.h"
NETLIB_NAMESPACE_DEVICES_START()
@@ -143,7 +143,7 @@ ATTR_HOT inline int matrix_solver_SOR_t<m_N, _storage_N>::vsolve_non_dynamic(con
do {
resched = false;
- double err = 0;
+ nl_double err = 0;
for (unsigned k = 0; k < iN; k++)
{
const int * RESTRICT net_other = this->m_terms[k]->net_other();
diff --git a/src/emu/netlist/solver/nld_ms_sor_mat.h b/src/lib/netlist/solver/nld_ms_sor_mat.h
index d5ce05ef8b1..bbf8706a139 100644
--- a/src/emu/netlist/solver/nld_ms_sor_mat.h
+++ b/src/lib/netlist/solver/nld_ms_sor_mat.h
@@ -14,8 +14,8 @@
#include <algorithm>
-#include "../solver/nld_ms_direct.h"
-#include "../solver/nld_solver.h"
+#include "solver/nld_ms_direct.h"
+#include "solver/nld_solver.h"
NETLIB_NAMESPACE_DEVICES_START()
@@ -35,7 +35,6 @@ public:
virtual ~matrix_solver_SOR_mat_t() {}
- virtual void log_stats();
virtual void vsetup(analog_net_t::list_t &nets);
ATTR_HOT inline int vsolve_non_dynamic(const bool newton_raphson);
@@ -56,26 +55,6 @@ private:
// ----------------------------------------------------------------------------------------
template <unsigned m_N, unsigned _storage_N>
-void matrix_solver_SOR_mat_t<m_N, _storage_N>::log_stats()
-{
- if (this->m_stat_calculations != 0 && this->m_params.m_log_stats)
- {
- this->netlist().log("==============================================");
- this->netlist().log("Solver %s", this->name().cstr());
- this->netlist().log(" ==> %d nets", this->N()); //, (*(*groups[i].first())->m_core_terms.first())->name().cstr());
- this->netlist().log(" has %s elements", this->is_dynamic() ? "dynamic" : "no dynamic");
- this->netlist().log(" has %s elements", this->is_timestep() ? "timestep" : "no timestep");
- this->netlist().log(" %6.3f average newton raphson loops", (double) this->m_stat_newton_raphson / (double) this->m_stat_vsolver_calls);
- this->netlist().log(" %10d invocations (%6d Hz) %10d gs fails (%6.2f%%) %6.3f average",
- this->m_stat_calculations,
- this->m_stat_calculations * 10 / (int) (this->netlist().time().as_double() * 10.0),
- this->m_gs_fail,
- 100.0 * (double) this->m_gs_fail / (double) this->m_stat_calculations,
- (double) this->m_gs_total / (double) this->m_stat_calculations);
- }
-}
-
-template <unsigned m_N, unsigned _storage_N>
void matrix_solver_SOR_mat_t<m_N, _storage_N>::vsetup(analog_net_t::list_t &nets)
{
matrix_solver_direct_t<m_N, _storage_N>::vsetup(nets);
@@ -199,14 +178,13 @@ ATTR_HOT inline int matrix_solver_SOR_mat_t<m_N, _storage_N>::vsolve_non_dynamic
{
nl_double Idrive = 0;
- const nl_ext_double * RESTRICT A = &this->m_A[k][0];
const unsigned *p = this->m_terms[k]->m_nz.data();
const unsigned e = this->m_terms[k]->m_nz.size();
for (unsigned i = 0; i < e; i++)
- Idrive = Idrive + A[p[i]] * new_v[p[i]];
+ Idrive = Idrive + this->A(k,p[i]) * new_v[p[i]];
- const nl_double delta = m_omega * (this->m_RHS[k] - Idrive) / A[k];
+ const nl_double delta = m_omega * (this->m_RHS[k] - Idrive) / this->A(k,k);
cerr = std::max(cerr, nl_math::abs(delta));
new_v[k] += delta;
}
diff --git a/src/emu/netlist/solver/nld_solver.c b/src/lib/netlist/solver/nld_solver.c
index acf9a6fdaae..a3877b7eaa7 100644
--- a/src/emu/netlist/solver/nld_solver.c
+++ b/src/lib/netlist/solver/nld_solver.c
@@ -9,7 +9,14 @@
* the vectorizations fast-math enables pretty expensive
*/
-//#pragma GCC optimize "-ffast-math"
+// for now, make buggy GCC/Mingw STFU about I64FMT
+#if (defined(__MINGW32__) && (__GNUC__ >= 5))
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wformat"
+#pragma GCC diagnostic ignored "-Wformat-extra-args"
+#endif
+
+
#if 0
#pragma GCC optimize "-ffast-math"
//#pragma GCC optimize "-ftree-parallelize-loops=4"
@@ -29,14 +36,18 @@
#include <iostream>
#include <algorithm>
#include "nld_solver.h"
+#if 1
#include "nld_ms_direct.h"
+#else
+#include "nld_ms_direct_lu.h"
+#endif
#include "nld_ms_direct1.h"
#include "nld_ms_direct2.h"
#include "nld_ms_sor.h"
#include "nld_ms_sor_mat.h"
#include "nld_ms_gmres.h"
//#include "nld_twoterm.h"
-#include "../nl_lists.h"
+#include "nl_lists.h"
#if HAS_OPENMP
#include "omp.h"
@@ -102,7 +113,7 @@ ATTR_COLD matrix_solver_t::~matrix_solver_t()
ATTR_COLD void matrix_solver_t::setup(analog_net_t::list_t &nets)
{
- NL_VERBOSE_OUT(("New solver setup\n"));
+ log().debug("New solver setup\n");
m_nets.clear();
@@ -113,7 +124,7 @@ ATTR_COLD void matrix_solver_t::setup(analog_net_t::list_t &nets)
for (std::size_t k = 0; k < nets.size(); k++)
{
- NL_VERBOSE_OUT(("setting up net\n"));
+ log().debug("setting up net\n");
analog_net_t *net = nets[k];
@@ -122,7 +133,7 @@ ATTR_COLD void matrix_solver_t::setup(analog_net_t::list_t &nets)
for (std::size_t i = 0; i < net->m_core_terms.size(); i++)
{
core_terminal_t *p = net->m_core_terms[i];
- NL_VERBOSE_OUT(("%s %s %d\n", p->name().cstr(), net->name().cstr(), (int) net->isRailNet()));
+ log().debug("{1} {2} {3}\n", p->name(), net->name(), (int) net->isRailNet());
switch (p->type())
{
case terminal_t::TERMINAL:
@@ -136,7 +147,7 @@ ATTR_COLD void matrix_solver_t::setup(analog_net_t::list_t &nets)
case device_t::DIODE:
case device_t::LVCCS:
case device_t::BJT_SWITCH:
- NL_VERBOSE_OUT(("found BJT/Diode/LVCCS\n"));
+ log().debug("found BJT/Diode/LVCCS\n");
if (!m_dynamic_devices.contains(&p->device()))
m_dynamic_devices.add(&p->device());
break;
@@ -147,7 +158,7 @@ ATTR_COLD void matrix_solver_t::setup(analog_net_t::list_t &nets)
terminal_t *pterm = dynamic_cast<terminal_t *>(p);
add_term(k, pterm);
}
- NL_VERBOSE_OUT(("Added terminal\n"));
+ log().debug("Added terminal\n");
break;
case terminal_t::INPUT:
{
@@ -162,22 +173,22 @@ ATTR_COLD void matrix_solver_t::setup(analog_net_t::list_t &nets)
if (net_proxy_output == NULL)
{
net_proxy_output = palloc(analog_output_t);
- net_proxy_output->init_object(*this, this->name() + "." + pstring::sprintf("m%" SIZETFMT, SIZET_PRINTF(m_inps.size())));
+ net_proxy_output->init_object(*this, this->name() + "." + pfmt("m{1}")(m_inps.size()));
m_inps.add(net_proxy_output);
net_proxy_output->m_proxied_net = &p->net().as_analog();
}
net_proxy_output->net().register_con(*p);
// FIXME: repeated
net_proxy_output->net().rebuild_list();
- NL_VERBOSE_OUT(("Added input\n"));
+ log().debug("Added input\n");
}
break;
default:
- netlist().error("unhandled element found\n");
+ log().fatal("unhandled element found\n");
break;
}
}
- NL_VERBOSE_OUT(("added net with %" SIZETFMT " populated connections\n", net->m_core_terms.size()));
+ log().debug("added net with {1} populated connections\n", net->m_core_terms.size());
}
}
@@ -188,7 +199,6 @@ ATTR_HOT void matrix_solver_t::update_inputs()
// avoid recursive calls. Inputs are updated outside this call
for (std::size_t i=0; i<m_inps.size(); i++)
m_inps[i]->set_Q(m_inps[i]->m_proxied_net->m_cur_Analog);
-
}
ATTR_HOT void matrix_solver_t::update_dynamic()
@@ -262,7 +272,7 @@ void matrix_solver_t::solve_base(C *p)
// reschedule ....
if (this_resched > 1 && !m_Q_sync.net().is_queued())
{
- netlist().warning("NEWTON_LOOPS exceeded on net %s... reschedule", this->name().cstr());
+ log().warning("NEWTON_LOOPS exceeded on net {1}... reschedule", this->name());
m_Q_sync.net().reschedule_in_queue(m_params.m_nt_sync_delay);
}
}
@@ -294,11 +304,6 @@ ATTR_HOT nl_double matrix_solver_t::solve()
return next_time_step;
}
-
-// ----------------------------------------------------------------------------------------
-// matrix_solver - Direct base
-// ----------------------------------------------------------------------------------------
-
ATTR_COLD int matrix_solver_t::get_net_idx(net_t *net)
{
for (std::size_t k = 0; k < m_nets.size(); k++)
@@ -307,6 +312,25 @@ ATTR_COLD int matrix_solver_t::get_net_idx(net_t *net)
return -1;
}
+void matrix_solver_t::log_stats()
+{
+ if (this->m_stat_calculations != 0 && this->m_params.m_log_stats)
+ {
+ log().verbose("==============================================");
+ log().verbose("Solver {1}", this->name());
+ log().verbose(" ==> {1} nets", this->m_nets.size()); //, (*(*groups[i].first())->m_core_terms.first())->name());
+ log().verbose(" has {1} elements", this->is_dynamic() ? "dynamic" : "no dynamic");
+ log().verbose(" has {1} elements", this->is_timestep() ? "timestep" : "no timestep");
+ log().verbose(" {1:6.3} average newton raphson loops", (double) this->m_stat_newton_raphson / (double) this->m_stat_vsolver_calls);
+ log().verbose(" {1:10} invocations ({2:6} Hz) {3:10} gs fails ({4:6.2} %) {5:6.3} average",
+ this->m_stat_calculations,
+ this->m_stat_calculations * 10 / (int) (this->netlist().time().as_double() * 10.0),
+ this->m_iterative_fail,
+ 100.0 * (double) this->m_iterative_fail / (double) this->m_stat_calculations,
+ (double) this->m_iterative_total / (double) this->m_stat_calculations);
+ }
+}
+
@@ -327,15 +351,21 @@ NETLIB_START(solver)
register_param("FREQ", m_freq, 48000.0);
- register_param("ITERATIVE", m_iterative_solver, "SOR");
+ /* iteration parameters */
+ register_param("SOR_FACTOR", m_sor, 1.059);
+ register_param("ITERATIVE", m_iterative_solver, "SOR");
register_param("ACCURACY", m_accuracy, 1e-7);
- register_param("GS_LOOPS", m_gs_loops, 9); // Gauss-Seidel loops
register_param("GS_THRESHOLD", m_gs_threshold, 6); // below this value, gaussian elimination is used
+ register_param("GS_LOOPS", m_gs_loops, 9); // Gauss-Seidel loops
+
+ /* general parameters */
+ register_param("GMIN", m_gmin, NETLIST_GMIN_DEFAULT);
+ register_param("PIVOT", m_pivot, 0); // use pivoting - on supported solvers
register_param("NR_LOOPS", m_nr_loops, 250); // Newton-Raphson loops
register_param("PARALLEL", m_parallel, 0);
- register_param("SOR_FACTOR", m_sor, 1.059);
- register_param("GMIN", m_gmin, NETLIST_GMIN_DEFAULT);
+
+ /* automatic time step */
register_param("DYNAMIC_TS", m_dynamic, 0);
register_param("LTE", m_lte, 5e-5); // diff/timestep
register_param("MIN_TIMESTEP", m_min_timestep, 1e-6); // nl_double timestep resolution
@@ -448,7 +478,7 @@ matrix_solver_t * NETLIB_NAME(solver)::create_solver(int size, const bool use_sp
}
else
{
- netlist().error("Unknown solver type: %s\n", m_iterative_solver.Value().cstr());
+ netlist().log().fatal("Unknown solver type: {1}\n", m_iterative_solver.Value());
return NULL;
}
}
@@ -466,10 +496,11 @@ ATTR_COLD void NETLIB_NAME(solver)::post_start()
int cur_group = -1;
const bool use_specific = true;
+ m_params.m_pivot = m_pivot.Value();
m_params.m_accuracy = m_accuracy.Value();
m_params.m_gs_loops = m_gs_loops.Value();
m_params.m_nr_loops = m_nr_loops.Value();
- m_params.m_nt_sync_delay = m_sync_delay.Value();
+ m_params.m_nt_sync_delay = netlist_time::from_double(m_sync_delay.Value());
m_params.m_lte = m_lte.Value();
m_params.m_sor = m_sor.Value();
@@ -493,14 +524,14 @@ ATTR_COLD void NETLIB_NAME(solver)::post_start()
else
m_params.m_log_stats = (bool) m_log_stats.Value();
- netlist().log("Scanning net groups ...");
+ netlist().log().verbose("Scanning net groups ...");
// determine net groups
for (std::size_t i=0; i<netlist().m_nets.size(); i++)
{
- SOLVER_VERBOSE_OUT(("processing %s\n", netlist().m_nets[i]->name().cstr()));
+ netlist().log().debug("processing {1}\n", netlist().m_nets[i]->name());
if (!netlist().m_nets[i]->isRailNet())
{
- SOLVER_VERBOSE_OUT((" ==> not a rail net\n"));
+ netlist().log().debug(" ==> not a rail net\n");
analog_net_t *n = &netlist().m_nets[i]->as_analog();
if (!n->already_processed(groups, cur_group))
{
@@ -511,7 +542,7 @@ ATTR_COLD void NETLIB_NAME(solver)::post_start()
}
// setup the solvers
- netlist().log("Found %d net groups in %" SIZETFMT " nets\n", cur_group + 1, SIZET_PRINTF(netlist().m_nets.size()));
+ netlist().log().verbose("Found {1} net groups in {2} nets\n", cur_group + 1, netlist().m_nets.size());
for (int i = 0; i <= cur_group; i++)
{
matrix_solver_t *ms;
@@ -543,13 +574,31 @@ ATTR_COLD void NETLIB_NAME(solver)::post_start()
case 8:
ms = create_solver<8,8>(8, use_specific);
break;
+ case 10:
+ ms = create_solver<10,10>(10, use_specific);
+ break;
+ case 11:
+ ms = create_solver<11,11>(11, use_specific);
+ break;
case 12:
ms = create_solver<12,12>(12, use_specific);
break;
+ case 15:
+ ms = create_solver<15,15>(15, use_specific);
+ break;
+ case 31:
+ ms = create_solver<31,31>(31, use_specific);
+ break;
+ case 49:
+ ms = create_solver<49,49>(49, use_specific);
+ break;
+#if 0
case 87:
ms = create_solver<87,87>(87, use_specific);
break;
+#endif
default:
+ netlist().log().warning("No specific solver found for netlist of size {1}", (unsigned) net_count);
if (net_count <= 16)
{
ms = create_solver<0,16>(net_count, use_specific);
@@ -569,34 +618,38 @@ ATTR_COLD void NETLIB_NAME(solver)::post_start()
}
else
{
- netlist().error("Encountered netgroup with > 128 nets");
+ netlist().log().fatal("Encountered netgroup with > 128 nets");
ms = NULL; /* tease compilers */
}
break;
}
- register_sub(pstring::sprintf("Solver_%" SIZETFMT,SIZET_PRINTF(m_mat_solvers.size())), *ms);
+ register_sub(pfmt("Solver_{1}")(m_mat_solvers.size()), *ms);
ms->vsetup(groups[i]);
m_mat_solvers.add(ms);
- netlist().log("Solver %s", ms->name().cstr());
- netlist().log(" # %d ==> %" SIZETFMT " nets", i, SIZET_PRINTF(groups[i].size())); //, (*(*groups[i].first())->m_core_terms.first())->name().cstr());
- netlist().log(" has %s elements", ms->is_dynamic() ? "dynamic" : "no dynamic");
- netlist().log(" has %s elements", ms->is_timestep() ? "timestep" : "no timestep");
+ netlist().log().verbose("Solver {1}", ms->name());
+ netlist().log().verbose(" # {1} ==> {2} nets", i, groups[i].size());
+ netlist().log().verbose(" has {1} elements", ms->is_dynamic() ? "dynamic" : "no dynamic");
+ netlist().log().verbose(" has {1} elements", ms->is_timestep() ? "timestep" : "no timestep");
for (std::size_t j=0; j<groups[i].size(); j++)
{
- netlist().log("Net %" SIZETFMT ": %s", SIZET_PRINTF(j), groups[i][j]->name().cstr());
+ netlist().log().verbose("Net {1}: {2}", j, groups[i][j]->name());
net_t *n = groups[i][j];
for (std::size_t k = 0; k < n->m_core_terms.size(); k++)
{
const core_terminal_t *p = n->m_core_terms[k];
- netlist().log(" %s", p->name().cstr());
+ netlist().log().verbose(" {1}", p->name());
}
}
}
}
NETLIB_NAMESPACE_DEVICES_END()
+
+#if (defined(__MINGW32__) && (__GNUC__ >= 5))
+#pragma GCC diagnostic pop
+#endif
diff --git a/src/emu/netlist/solver/nld_solver.h b/src/lib/netlist/solver/nld_solver.h
index 682483dfde3..040866c5736 100644
--- a/src/emu/netlist/solver/nld_solver.h
+++ b/src/lib/netlist/solver/nld_solver.h
@@ -8,15 +8,12 @@
#ifndef NLD_SOLVER_H_
#define NLD_SOLVER_H_
-#include "../nl_setup.h"
-#include "../nl_base.h"
+#include "nl_setup.h"
+#include "nl_base.h"
//#define ATTR_ALIGNED(N) __attribute__((aligned(N)))
#define ATTR_ALIGNED(N) ATTR_ALIGN
-#define SOLVER_VERBOSE_OUT(x) do {} while (0)
-//#define SOLVER_VERBOSE_OUT(x) printf x
-
// ----------------------------------------------------------------------------------------
// Macros
// ----------------------------------------------------------------------------------------
@@ -37,6 +34,7 @@ class NETLIB_NAME(solver);
struct solver_parameters_t
{
+ int m_pivot;
nl_double m_accuracy;
nl_double m_lte;
nl_double m_min_timestep;
@@ -83,8 +81,9 @@ class terms_t
unsigned m_railstart;
- plist_t<unsigned> m_nzrd; /* non zero right of the diagonal for elimination */
plist_t<unsigned> m_nz; /* all non zero for multiplication */
+ plist_t<unsigned> m_nzrd; /* non zero right of the diagonal for elimination */
+ plist_t<unsigned> m_nzbd; /* non zero below of the diagonal for elimination */
private:
plist_t<terminal_t *> m_term;
plist_t<int> m_net_other;
@@ -133,26 +132,9 @@ public:
ATTR_COLD int get_net_idx(net_t *net);
inline eSolverType type() const { return m_type; }
+ plog_base<NL_DEBUG> &log() { return netlist().log(); }
- virtual void log_stats()
- {
- if (this->m_stat_calculations != 0 && this->m_params.m_log_stats)
- {
- this->netlist().log("==============================================");
- this->netlist().log("Solver %s", this->name().cstr());
- this->netlist().log(" ==> %d nets", (unsigned) this->m_nets.size()); //, (*(*groups[i].first())->m_core_terms.first())->name().cstr());
- this->netlist().log(" has %s elements", this->is_dynamic() ? "dynamic" : "no dynamic");
- this->netlist().log(" has %s elements", this->is_timestep() ? "timestep" : "no timestep");
- this->netlist().log(" %6.3f average newton raphson loops", (double) this->m_stat_newton_raphson / (double) this->m_stat_vsolver_calls);
- this->netlist().log(" %10d invocations (%6d Hz) %10d gs fails (%6.2f%%) %6.3f average",
- this->m_stat_calculations,
- this->m_stat_calculations * 10 / (int) (this->netlist().time().as_double() * 10.0),
- this->m_iterative_fail,
- 100.0 * (double) this->m_iterative_fail / (double) this->m_stat_calculations,
- (double) this->m_iterative_total / (double) this->m_stat_calculations);
- }
- }
-
+ virtual void log_stats();
protected:
@@ -217,6 +199,7 @@ protected:
logic_input_t m_fb_step;
logic_output_t m_Q_step;
+ param_logic_t m_pivot;
param_double_t m_freq;
param_double_t m_sync_delay;
param_double_t m_accuracy;
diff --git a/src/emu/netlist/solver/vector_base.h b/src/lib/netlist/solver/vector_base.h
index c180b080338..c1449aad595 100644
--- a/src/emu/netlist/solver/vector_base.h
+++ b/src/lib/netlist/solver/vector_base.h
@@ -11,7 +11,7 @@
#define VECTOR_BASE_H_
#include <algorithm>
-#include "../plib/pconfig.h"
+#include "plib/pconfig.h"
#if 0
template <unsigned _storage_N>
@@ -35,33 +35,36 @@ private:
#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
#endif
-inline void vec_set (const std::size_t n, const double &scalar, double * RESTRICT result)
+template<typename T>
+inline void vec_set (const std::size_t n, const T &scalar, T * RESTRICT result)
{
for ( std::size_t i = 0; i < n; i++ )
result[i] = scalar;
}
-inline double vecmult (const std::size_t n, const double * RESTRICT a1, const double * RESTRICT a2 )
-{
- double value = 0.0;
+template<typename T>
+inline T vecmult (const std::size_t n, const T * RESTRICT a1, const T * RESTRICT a2 )
+{
+ T value = 0.0;
for ( std::size_t i = 0; i < n; i++ )
value = value + a1[i] * a2[i];
return value;
}
-
-inline double vecmult2 (const std::size_t n, const double *a1)
+template<typename T>
+inline T vecmult2 (const std::size_t n, const T *a1)
{
- double value = 0.0;
+ T value = 0.0;
for ( std::size_t i = 0; i < n; i++ )
{
- const double temp = a1[i];
+ const T temp = a1[i];
value = value + temp * temp;
}
return value;
}
-inline void vec_mult_scalar (const std::size_t n, const double * RESTRICT v, const double scalar, double * RESTRICT result)
+template<typename T>
+inline void vec_mult_scalar (const std::size_t n, const T * RESTRICT v, const T scalar, T * RESTRICT result)
{
for ( std::size_t i = 0; i < n; i++ )
{
@@ -69,7 +72,8 @@ inline void vec_mult_scalar (const std::size_t n, const double * RESTRICT v, con
}
}
-inline void vec_add_mult_scalar (const std::size_t n, const double * RESTRICT v, const double scalar, double * RESTRICT result)
+template<typename T>
+inline void vec_add_mult_scalar (const std::size_t n, const T * RESTRICT v, const T scalar, T * RESTRICT result)
{
for ( std::size_t i = 0; i < n; i++ )
result[i] += scalar * v[i];
@@ -81,13 +85,15 @@ inline void vec_add_ip(const std::size_t n, const double * RESTRICT v, double *
result[i] += v[i];
}
-inline void vec_sub(const std::size_t n, const double * RESTRICT v1, const double * RESTRICT v2, double * RESTRICT result)
+template<typename T>
+inline void vec_sub(const std::size_t n, const T * RESTRICT v1, const T * RESTRICT v2, T * RESTRICT result)
{
for ( std::size_t i = 0; i < n; i++ )
result[i] = v1[i] - v2[i];
}
-inline void vec_scale (const std::size_t n, double * RESTRICT v, const double scalar)
+template<typename T>
+inline void vec_scale (const std::size_t n, T * RESTRICT v, const T scalar)
{
for ( std::size_t i = 0; i < n; i++ )
v[i] = scalar * v[i];
diff --git a/src/emu/netlist/tools/nl_convert.c b/src/lib/netlist/tools/nl_convert.c
index 23e5c537b12..dae68968445 100644
--- a/src/emu/netlist/tools/nl_convert.c
+++ b/src/lib/netlist/tools/nl_convert.c
@@ -10,6 +10,14 @@
#include <cmath>
#include "nl_convert.h"
+
+// for now, make buggy GCC/Mingw STFU about I64FMT
+#if (defined(__MINGW32__) && (__GNUC__ >= 5))
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wformat"
+#pragma GCC diagnostic ignored "-Wformat-extra-args"
+#endif
+
template<typename Class>
static plist_t<int> bubble(const pnamedlist_t<Class *> &sl)
{
@@ -34,15 +42,6 @@ static plist_t<int> bubble(const pnamedlist_t<Class *> &sl)
convert - convert a spice netlist
-------------------------------------------------*/
-
-void nl_convert_base_t::out(const char *format, ...)
-{
- va_list ap;
- va_start(ap, format);
- m_buf += pstring(format).vprintf(ap);
- va_end(ap);
-}
-
void nl_convert_base_t::add_pin_alias(const pstring &devname, const pstring &name, const pstring &alias)
{
m_pins.add(palloc(pin_alias_t(devname + "." + name, devname + "." + alias)), false);
@@ -90,7 +89,7 @@ void nl_convert_base_t::dump_nl()
{
net_t *net = m_nets.find_by_name(m_ext_alias[i]);
// use the first terminal ...
- out("ALIAS(%s, %s)\n", m_ext_alias[i].cstr(), net->terminals()[0].cstr());
+ out("ALIAS({}, {})\n", m_ext_alias[i].cstr(), net->terminals()[0].cstr());
// if the aliased net only has this one terminal connected ==> don't dump
if (net->terminals().size() == 1)
net->set_no_export();
@@ -101,13 +100,13 @@ void nl_convert_base_t::dump_nl()
std::size_t j = sorted[i];
if (m_devs[j]->has_value())
- out("%s(%s, %s)\n", m_devs[j]->type().cstr(),
+ out("{}({}, {})\n", m_devs[j]->type().cstr(),
m_devs[j]->name().cstr(), get_nl_val(m_devs[j]->value()).cstr());
else if (m_devs[j]->has_model())
- out("%s(%s, \"%s\")\n", m_devs[j]->type().cstr(),
+ out("{}({}, \"{}\")\n", m_devs[j]->type().cstr(),
m_devs[j]->name().cstr(), m_devs[j]->model().cstr());
else
- out("%s(%s)\n", m_devs[j]->type().cstr(),
+ out("{}({})\n", m_devs[j]->type().cstr(),
m_devs[j]->name().cstr());
}
// print nets
@@ -116,11 +115,11 @@ void nl_convert_base_t::dump_nl()
net_t * net = m_nets[i];
if (!net->is_no_export())
{
- //printf("Net %s\n", net->name().cstr());
- out("NET_C(%s", net->terminals()[0].cstr() );
+ //printf("Net {}\n", net->name().cstr());
+ out("NET_C({}", net->terminals()[0].cstr() );
for (std::size_t j=1; j<net->terminals().size(); j++)
{
- out(", %s", net->terminals()[j].cstr() );
+ out(", {}", net->terminals()[j].cstr() );
}
out(")\n");
}
@@ -141,7 +140,7 @@ const pstring nl_convert_base_t::get_nl_val(const double val)
break;
i++;
}
- return pstring::sprintf(m_units[i].m_func.cstr(), val / m_units[i].m_mult);
+ return pfmt(m_units[i].m_func.cstr())(val / m_units[i].m_mult);
}
}
double nl_convert_base_t::get_sp_unit(const pstring &unit)
@@ -166,28 +165,27 @@ double nl_convert_base_t::get_sp_val(const pstring &sin)
pstring unit = sin.substr(p + 1);
double ret = get_sp_unit(unit) * val.as_double();
- //printf("<%s> %s %d ==> %f\n", sin.cstr(), unit.cstr(), p, ret);
return ret;
}
nl_convert_base_t::unit_t nl_convert_base_t::m_units[] = {
{"T", "", 1.0e12 },
{"G", "", 1.0e9 },
- {"MEG", "RES_M(%g)", 1.0e6 },
- {"k", "RES_K(%g)", 1.0e3 }, /* eagle */
- {"K", "RES_K(%g)", 1.0e3 },
- {"", "%g", 1.0e0 },
- {"M", "CAP_M(%g)", 1.0e-3 },
- {"u", "CAP_U(%g)", 1.0e-6 }, /* eagle */
- {"U", "CAP_U(%g)", 1.0e-6 },
- {"μ", "CAP_U(%g)", 1.0e-6 },
- {"N", "CAP_N(%g)", 1.0e-9 },
- {"P", "CAP_P(%g)", 1.0e-12},
- {"F", "%ge-15", 1.0e-15},
-
- {"MIL", "%e", 25.4e-6},
-
- {"-", "%g", 1.0 }
+ {"MEG", "RES_M({1})", 1.0e6 },
+ {"k", "RES_K({1})", 1.0e3 }, /* eagle */
+ {"K", "RES_K({1})", 1.0e3 },
+ {"", "{1}", 1.0e0 },
+ {"M", "CAP_M({1})", 1.0e-3 },
+ {"u", "CAP_U({1})", 1.0e-6 }, /* eagle */
+ {"U", "CAP_U({1})", 1.0e-6 },
+ {"??", "CAP_U({1})", 1.0e-6 },
+ {"N", "CAP_N({1})", 1.0e-9 },
+ {"P", "CAP_P({1})", 1.0e-12},
+ {"F", "{1}e-15", 1.0e-15},
+
+ {"MIL", "{1}", 25.4e-6},
+
+ {"-", "{1}", 1.0 }
};
@@ -227,18 +225,18 @@ void nl_convert_spice_t::process_line(const pstring &line)
{
pstring_list_t tt(line, " ", true);
double val = 0.0;
- switch (tt[0].cstr()[0])
+ switch (tt[0].code_at(0))
{
case ';':
- out("// %s\n", line.substr(1).cstr());
+ out("// {}\n", line.substr(1).cstr());
break;
case '*':
- out("// %s\n", line.substr(1).cstr());
+ out("// {}\n", line.substr(1).cstr());
break;
case '.':
if (tt[0].equals(".SUBCKT"))
{
- out("NETLIST_START(%s)\n", tt[1].cstr());
+ out("NETLIST_START({})\n", tt[1].cstr());
for (std::size_t i=2; i<tt.size(); i++)
add_ext_alias(tt[i]);
}
@@ -248,7 +246,7 @@ void nl_convert_spice_t::process_line(const pstring &line)
out("NETLIST_END()\n");
}
else
- out("// %s\n", line.cstr());
+ out("// {}\n", line.cstr());
break;
case 'Q':
{
@@ -272,9 +270,9 @@ void nl_convert_spice_t::process_line(const pstring &line)
pins = m[1].left(3);
}
add_device("QBJT_EB", tt[0], m[0]);
- add_term(tt[1], tt[0] + "." + pins[0]);
- add_term(tt[2], tt[0] + "." + pins[1]);
- add_term(tt[3], tt[0] + "." + pins[2]);
+ add_term(tt[1], tt[0] + "." + pins.code_at(0));
+ add_term(tt[2], tt[0] + "." + pins.code_at(1));
+ add_term(tt[3], tt[0] + "." + pins.code_at(2));
}
break;
case 'R':
@@ -337,22 +335,22 @@ void nl_convert_spice_t::process_line(const pstring &line)
add_device(tname, xname);
for (std::size_t i=1; i < tt.size() - 1; i++)
{
- pstring term = pstring::sprintf("%s.%" SIZETFMT, xname.cstr(), SIZET_PRINTF(i));
+ pstring term = pfmt("{1}.{2}")(xname)(i);
add_term(tt[i], term);
}
break;
}
default:
- out("// IGNORED %s: %s\n", tt[0].cstr(), line.cstr());
+ out("// IGNORED {}: {}\n", tt[0].cstr(), line.cstr());
}
}
}
-
+//FIXME: should accept a stream as well
void nl_convert_eagle_t::convert(const pstring &contents)
{
- eagle_tokenizer tok(*this);
- tok.reset(contents.cstr());
+ pistringstream istrm(contents);
+ eagle_tokenizer tok(*this, istrm);
out("NETLIST_START(dummy)\n");
add_term("GND", "GND");
@@ -389,7 +387,7 @@ void nl_convert_eagle_t::convert(const pstring &contents)
tok.require_token(tok.m_tok_SEMICOLON);
token = tok.get_token();
}
- switch (name.cstr()[0])
+ switch (name.code_at(0))
{
case 'Q':
{
@@ -431,7 +429,7 @@ void nl_convert_eagle_t::convert(const pstring &contents)
break;
}
default:
- tok.error("// IGNORED %s\n", name.cstr());
+ tok.error("// IGNORED " + name);
}
}
@@ -449,9 +447,13 @@ void nl_convert_eagle_t::convert(const pstring &contents)
}
else
{
- out("Unexpected %s\n", token.str().cstr());
+ out("Unexpected {}\n", token.str().cstr());
return;
}
}
}
+
+#if (defined(__MINGW32__) && (__GNUC__ >= 5))
+#pragma GCC diagnostic pop
+#endif
diff --git a/src/emu/netlist/tools/nl_convert.h b/src/lib/netlist/tools/nl_convert.h
index d2e2d238718..7a410bb2f47 100644
--- a/src/emu/netlist/tools/nl_convert.h
+++ b/src/lib/netlist/tools/nl_convert.h
@@ -22,7 +22,7 @@ class nl_convert_base_t
{
public:
- nl_convert_base_t() {};
+ nl_convert_base_t() : out(m_buf) {};
virtual ~nl_convert_base_t()
{
m_nets.clear_and_free();
@@ -30,12 +30,12 @@ public:
m_pins.clear_and_free();
}
- const pstringbuffer &result() { return m_buf; }
+ const pstringbuffer &result() { return m_buf.str(); }
+
virtual void convert(const pstring &contents) = 0;
protected:
- void out(const char *format, ...) ATTR_PRINTF(2,3);
void add_pin_alias(const pstring &devname, const pstring &name, const pstring &alias);
void add_ext_alias(const pstring &alias);
@@ -53,6 +53,7 @@ protected:
double get_sp_val(const pstring &sin);
+ pstream_fmt_writer_t out;
private:
struct net_t
{
@@ -123,7 +124,7 @@ private:
private:
- pstringbuffer m_buf;
+ postringstream m_buf;
pnamedlist_t<dev_t *> m_devs;
pnamedlist_t<net_t *> m_nets;
@@ -165,8 +166,8 @@ public:
class eagle_tokenizer : public ptokenizer
{
public:
- eagle_tokenizer(nl_convert_eagle_t &convert)
- : ptokenizer(), m_convert(convert)
+ eagle_tokenizer(nl_convert_eagle_t &convert, pistream &strm)
+ : ptokenizer(strm), m_convert(convert)
{
set_identifier_chars("abcdefghijklmnopqrstuvwvxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890_.-");
set_number_chars(".0123456789", "0123456789eE-."); //FIXME: processing of numbers
@@ -196,9 +197,9 @@ public:
protected:
- void verror(pstring msg, int line_num, pstring line)
+ void verror(const pstring &msg, int line_num, const pstring &line)
{
- m_convert.out("%s (line %d): %s\n", msg.cstr(), line_num, line.cstr());
+ m_convert.out("{} (line {}): {}\n", msg.cstr(), line_num, line.cstr());
}
diff --git a/src/lib/util/coreutil.c b/src/lib/util/coreutil.c
index a7c2ccb0f22..90bcab9ab1a 100644
--- a/src/lib/util/coreutil.c
+++ b/src/lib/util/coreutil.c
@@ -9,6 +9,8 @@
***************************************************************************/
#include "coreutil.h"
+#include <assert.h>
+#include <zlib.h>
/***************************************************************************
@@ -81,12 +83,11 @@ int gregorian_is_leap_year(int year)
int gregorian_days_in_month(int month, int year)
{
- if (month == 2)
- return gregorian_is_leap_year(year) ? 29 : 28;
- else if (month == 4 || month == 6 || month == 9 || month == 11)
- return 30;
- else
- return 31;
+ assert(month >= 1 && month <= 12);
+
+ int days[] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
+ days[1] += gregorian_is_leap_year(year) ? 1 : 0;
+ return days[month-1];
}
@@ -115,3 +116,9 @@ void rand_memory(void *memory, size_t length)
bytes[i] = (UINT8) (seed >> 16);
}
}
+
+
+UINT32 core_crc32(UINT32 crc, const UINT8 *buf, UINT32 len)
+{
+ return crc32(crc, buf, len);
+}
diff --git a/src/lib/util/coreutil.h b/src/lib/util/coreutil.h
index 5315d07ffdc..839e72686ea 100644
--- a/src/lib/util/coreutil.h
+++ b/src/lib/util/coreutil.h
@@ -39,5 +39,6 @@ int gregorian_days_in_month(int month, int year);
void rand_memory(void *memory, size_t length);
+UINT32 core_crc32(UINT32 crc, const UINT8 *buf, UINT32 len);
#endif /* __COREUTIL_H__ */
diff --git a/src/lib/util/palette.c b/src/lib/util/palette.c
index f2252a24319..cafdce24ebd 100644
--- a/src/lib/util/palette.c
+++ b/src/lib/util/palette.c
@@ -365,6 +365,66 @@ void palette_t::entry_set_color(UINT32 index, rgb_t rgb)
//-------------------------------------------------
+// entry_set_red_level - set the red level for a
+// given palette index
+//-------------------------------------------------
+
+void palette_t::entry_set_red_level(UINT32 index, UINT8 level)
+{
+ // if out of range, or unchanged, ignore
+ if (index >= m_numcolors || m_entry_color[index].r() == level)
+ return;
+
+ // set the level
+ m_entry_color[index].set_r(level);
+
+ // update across all groups
+ for (int groupnum = 0; groupnum < m_numgroups; groupnum++)
+ update_adjusted_color(groupnum, index);
+}
+
+
+//-------------------------------------------------
+// entry_set_green_level - set the green level for a
+// given palette index
+//-------------------------------------------------
+
+void palette_t::entry_set_green_level(UINT32 index, UINT8 level)
+{
+ // if out of range, or unchanged, ignore
+ if (index >= m_numcolors || m_entry_color[index].g() == level)
+ return;
+
+ // set the level
+ m_entry_color[index].set_g(level);
+
+ // update across all groups
+ for (int groupnum = 0; groupnum < m_numgroups; groupnum++)
+ update_adjusted_color(groupnum, index);
+}
+
+
+//-------------------------------------------------
+// entry_set_blue_level - set the blue level for a
+// given palette index
+//-------------------------------------------------
+
+void palette_t::entry_set_blue_level(UINT32 index, UINT8 level)
+{
+ // if out of range, or unchanged, ignore
+ if (index >= m_numcolors || m_entry_color[index].b() == level)
+ return;
+
+ // set the level
+ m_entry_color[index].set_b(level);
+
+ // update across all groups
+ for (int groupnum = 0; groupnum < m_numgroups; groupnum++)
+ update_adjusted_color(groupnum, index);
+}
+
+
+//-------------------------------------------------
// entry_set_contrast - set the contrast
// adjustment for a single palette index
//-------------------------------------------------
diff --git a/src/lib/util/palette.h b/src/lib/util/palette.h
index 57bdd1f54a4..9c6703119e1 100644
--- a/src/lib/util/palette.h
+++ b/src/lib/util/palette.h
@@ -166,6 +166,9 @@ public:
// entry setters
void entry_set_color(UINT32 index, rgb_t rgb);
+ void entry_set_red_level(UINT32 index, UINT8 level);
+ void entry_set_green_level(UINT32 index, UINT8 level);
+ void entry_set_blue_level(UINT32 index, UINT8 level);
void entry_set_contrast(UINT32 index, float contrast);
// entry list getters
diff --git a/src/mame/arcade.lst b/src/mame/arcade.lst
index b1c33b43c24..8a134ed54ac 100644
--- a/src/mame/arcade.lst
+++ b/src/mame/arcade.lst
@@ -44,6 +44,7 @@ crush4 // Kural TWT
maketrax // (c) 1981 Williams, high score table says KRL (fur Kural)
maketrxb // (c) 1981 [Kural] (Williams license)
korosuke // (c) 1981 Kural Electric
+crushrlf // bootleg
mbrush // 1981 bootleg
paintrlr // 1981 bootleg
crushs // 1981 bootleg
@@ -192,8 +193,8 @@ phoenxp2 // bootleg
atlantisb // bootleg
tenspot // (c) 1982 Thomas Automatics
devilfsg // (c) 1984 Vision / Artic (bootleg?)
-zigzag // (c) 1982 LAX
-zigzag2 // (c) 1982 LAX
+zigzagb // (c) 1982 LAX (bootleg)
+zigzagb2 // (c) 1982 LAX (bootleg)
jumpbug // (c) 1981 Rock-ola
jumpbugb // (c) 1981 Sega
levers // (c) 1983 Rock-ola
@@ -277,7 +278,6 @@ ckongis //
porter // 1982 bootleg (Arcade TV Game List - P.98, Left, 15 from bottom)
tdpgal // 1983 Design Labs / Thomas Automatics
guttangt
-spcwarp // 1983 Century Electronics UK LTD
// Has some similarities with Moon Cresta but Board is very different
rockclim // (c)1981 Taito
@@ -318,6 +318,7 @@ mariner // (c) 1981 Amenip
mars // (c) 1981 Artic
devilfsh // (c) 1982 Artic
newsin7 // (c) 1983 ATW USA, Inc.
+newsin7a // (c) 1982 ATW USA, Inc.
mrkougar // (c) 1984 ATW
mrkougar2 // (c) 1984 ATW
mrkougb // bootleg
@@ -332,12 +333,14 @@ cavelon // (c) 1983 Jetsoft
sfx // (c) 1983 Nichibutsu
skelagon // (c) 1983 Nichibutsu USA
monsterz // (c) 1982 Nihon (Arcade TV Game List - P.102, Left, 20 from top)
-mimonscr // (c) 1982 Universal Video Games (US Copyright Office info - http://cocatalog.loc.gov)
-mimonkey // (c) 1982 bootleg
+mimonkey // (c) 1982 Universal Video Games (US Copyright Office info - http://cocatalog.loc.gov)
mimonsco // (c) 1982 bootleg
+mimonscr // (c) 1982 bootleg
+mimonscra // (c) 1982 bootleg
scobra // GX316 (c) 1981 Konami
scobras // GX316 (c) 1981 Stern
-scobrase // GX316 (c) 1981 Stern
+scobrase // GX316 (c) 1981 Sega
+scobrae // GX316 (c) 1981 Stern
scobrab // GX316 (c) 1981 Karateco (bootleg?)
suprheli // bootleg
stratgyx // GX306 (c) 1981 Konami
@@ -358,7 +361,9 @@ anteateruk // (c) 1983 Free Enterprise Games
rescue // (c) 1982 Stern
rescueb // (c) Videl Games (Rescue bootleg)
aponow // bootleg
+rescuefe // bootleg
minefld // (c) 1983 Stern
+minefldfe // bootleg
losttomb // (c) 1982 Stern
losttombh // (c) 1982 Stern
superbon // bootleg
@@ -592,6 +597,7 @@ club90s // (c) 1990
club90sa // (c) 1990
lovehous // (c) 1990
hanaoji // (c) 1991
+hanaojia // (c) 1991
pstadium // (c) 1990
triplew1 // (c) 1989
triplew2 // (c) 1990
@@ -681,11 +687,14 @@ falcon // bootleg
vautour // bootleg (Jeutel)
falconz // bootleg
vautourz // bootleg
+vautourza // bootleg (Jeutal)
griffon // bootleg (Videotron)
nextfase // bootleg
phoenixs // bootleg (Sonic)
+phoenixass // bootleg (Assa)
avefenix // bootleg (Video Game)
avefenixrf // bootleg (Recreativos Franco)
+avefenixl // bootleg (Laguna)
pleiads // (c) 1981 Tehkan
pleiadsb2 // bootleg
pleiadbl // bootleg
@@ -837,6 +846,7 @@ genpeitd // (c) 1986
rthunder // (c) 1986
rthunder2 // (c) 1986
rthunder1 // (c) 1986
+rthunder0 // (c) 1986
wndrmomo // (c) 1987
// Thunder Ceptor HW
@@ -972,6 +982,7 @@ xday2 // (c) 1995 (Japan)
nebulray // (c) 1994 (World)
nebulrayj // (c) 1994 (Japan)
ptblank // (c) 1994 (GN2 World)
+ptblanka // (c) 1994 (GN2 World) - Alternate labels, NRx-SPR0 (X=1 to 9)
gunbuletj // (c) 1994 (GN1 Japan)
gunbuletw // (c) 1994 (GN3 World)
gslugrsj // (c) 1993 (Japan)
@@ -1076,6 +1087,7 @@ vnight
bldyr3b
rrvac
rrvac2
+rrvac1
wanganmd
dragchrn
netchu02
@@ -1096,9 +1108,11 @@ fghtjam
sukuinuf
zgundmdx
zoidsinf
+cobrata
gundzaft
soulclb3
soulclb3a
+soulclb3b
taiko7
taiko8
qgundam
@@ -1109,6 +1123,7 @@ sbxc
// Namco System 256
sys256
tekken51
+tekken51b
tekken5d
superdbz
kinniku
@@ -1236,6 +1251,7 @@ marioo // (c) 1983 Nintendo of America
marioj // (c) 1983 Nintendo
masao // bootleg
mariobl // bootleg
+mmagic // (c) 1979 Nintendo
dkong3abl //
pestplce // bootleg on donkey kong hw
spclforc // (c) 1985 Senko Industries (Magic Eletronics Inc. license)
@@ -1612,6 +1628,9 @@ huncholy // (c) 1984 Seatongrove (c) CVS
quasar // (c) 1980 Zelco Games Italy
quasara // (c) 1980 Zelco Games Italy
+// Unknown Century Electronics hardware (CVS?)
+spcwarp // 1983 Century Electronics UK LTD
+
// Midway "Astrocade" games
seawolf2 // (c) 1978
spacezap // (c) 1980
@@ -1807,6 +1826,7 @@ rtypej // (c) 1987 (Japan)
rtypejp // (c) 1987 (Japan)
rtypeu // (c) 1987 + Nintendo USA license (US)
rtypeb // bootleg
+rtypem82b // bootleg
bchopper // (c) 1987
mrheli // (c) 1987 (Japan)
nspirit // (c) 1988
@@ -1824,6 +1844,7 @@ dbreedm72 // (c) 1989
rtype2 // (c) 1989
rtype2j // (c) 1989 (Japan)
rtype2jc // (c) 1989 (Japan)
+rtype2m82b // bootleg
majtitle // (c) 1990 (World)
majtitlej // (c) 1990 (Japan)
hharry // (c) 1990 (World)
@@ -1833,10 +1854,13 @@ dkgensanm72 // (c) 1990 (Japan)
poundfor // (c) 1990 (World)
poundforj // (c) 1990 (Japan)
poundforu // (c) 1990 Irem America (US)
-airduel // (c) 1990 (Japan)
+airduelm72 // (c) 1990 (Japan)
+airduel // (c) 1990 (World)
cosmccop // (c) 1991 (World)
gallop // (c) 1991 (Japan)
-kengo // (c) 1991
+ltswords // (c) 1991 (World)
+kengo // (c) 1991 (Japan)
+kengoa // (c) 1991 (Japan)
// not M72, but same sound hardware
sichuan2 // (c) 1989 Tamtex
sichuan2a // (c) 1989 Tamtex
@@ -2490,6 +2514,7 @@ dariusgj // 1994.09 D87 (c) 1994 Taito Corporation (Japan)
dariusgu // 1994.11 D87 (c) 1994 Taito America Corporation (US)
dariusgx // 1994.?? D87 (c) 1994 Taito Corporation
bublbob2 // 1994.?? D90 (c) 1994 Taito Corporation Japan (World)
+bublbob2o // 1994.?? D90 (c) 1994 Taito Corporation Japan (World)
bublbob2p // prototype
bubsymphe // 1994.?? D90 (c) 1994 Taito Corporation Japan (Europe)
bubsymphu // 1994.10 D90 (c) 1994 Taito America Corporation (US)
@@ -2699,6 +2724,7 @@ dogyuun // TP-022 (c) 1992 Toaplan
dogyuuna // TP-022 (c) 1992 Toaplan
dogyuunt // TP-022 (c) 1992 Toaplan
kbash // TP-023 (c) 1993 Toaplan
+kbashk // TP-023 (c) 1993 Toaplan
kbash2 // bootleg
truxton2 // TP-024 (c) 1992 Toaplan
pipibibs // TP-025
@@ -2997,6 +3023,7 @@ gunsmoke // 11/1985 (c) 1985 (World)
gunsmokeb
gunsmokeu // 11/1985 (c) 1985 + Romstar (US)
gunsmokeua // 11/1985 (c) 1985 (US)
+gunsmokeub // 11/1985 (c) 1985 (US)
gunsmokej // 11/1985 (c) 1985 (Japan)
sectionz // 12/1985 (c) 1985
sectionza // 12/1985 (c) 1985
@@ -3029,6 +3056,7 @@ whizz // (c) 1989 Philko (NOT A CAPCOM GAME but runs on modified Sidea
avengers // 2/1987 (c) 1987 (US)
avengers2 // 2/1987 (c) 1987 (US)
buraiken // 2/1987 (c) 1987 (Japan)
+buraikenb // 2/1987 (c) 1987 (Japan)
bionicc // 3/1987 (c) 1987 (Euro)
bionicc1 // 3/1987 (c) 1987 (US)
bionicc2 // 3/1987 (c) 1987 (US)
@@ -3067,7 +3095,8 @@ lastduelb // bootleg
madgear // 2/1989 (c) 1989 (US)
madgearj // 2/1989 (c) 1989 (Japan)
ledstorm // 1988 (c) 1988 (US)
-ledstorm2 // 1988 (c) 1988 (US)
+leds2011 // 1988 (c) 1988 (World)
+leds2011u // 1988 (c) 1988 (US)
// 3/1989 Dokaben (baseball) - see below among "Mitchell" games
// 8/1989 Dokaben 2 (baseball) - see below among "Mitchell" games
// 10/1989 Capcom Baseball - see below among "Mitchell" games
@@ -3112,7 +3141,8 @@ ffighta // 12/1989 (c) 1989 (World)
ffightu // 12/1989 (c) 1989 (USA)
ffightu1 // 12/1989 (c) 1989 (USA)
ffightua // 12/01/1990 (c) 1989 (USA)
-ffightub // 13/06/1990 (c) 1989 (USA)
+ffightub // 24/04/1990 (c) 1989 (USA)
+ffightuc // 12/06/1990 (c) 1989 (USA)
ffightj // 12/1989 (c) 1989 (Japan)
ffightj1 // 12/01/1990 (c) 1989 (Japan)
ffightj2 // 05/03/1990 (c) 1989 (Japan)
@@ -3279,6 +3309,7 @@ megamana // 06/10/1995 (c) 1995 (Asia)
rockmanj // 22/09/1995 (c) 1995 (Japan)
fcrash // bootleg of Final Fight
ffightbl // bootleg
+ffightbla // bootleg
ganbare // 11/04/2000 (c) 2000 (Japan)
@@ -3445,7 +3476,7 @@ xmvsf // 04/10/1996 (c) 1996 (Euro)
xmvsfr1 // 10/09/1996 (c) 1996 (Euro)
xmvsfu // 23/10/1996 (c) 1996 (USA)
xmvsfur1 // 04/10/1996 (c) 1996 (USA)
-xmvsfur2 // 10/09/1996 (c) 1996 (USA)
+xmvsfur2 // 10/09/1996 (c) 1996 (USA)
xmvsfj // 04/10/1996 (c) 1996 (Japan)
xmvsfjr1 // 10/09/1996 (c) 1996 (Japan)
xmvsfjr2 // 09/09/1996 (c) 1996 (Japan)
@@ -3501,6 +3532,7 @@ mvscb // 23/01/1998 (c) 1998 (Brazil)
sfa3 // 04/09/1998 (c) 1998 (USA)
sfa3u // 04/09/1998 (c) 1998 (USA)
sfa3ur1 // 29/06/1998 (c) 1998 (USA)
+sfa3us // 16/06/1998 (c) 1998 (USA)
sfa3h // 04/09/1998 (c) 1998 (Hispanic)
sfa3hr1 // 29/06/1998 (c) 1998 (Hispanic)
sfa3b // 29/06/1998 (c) 1998 (Brazil)
@@ -3831,9 +3863,9 @@ soulclbrwb // 1998.?? Soul Calibur (World, SOC14/VER.B)
soulclbrub // 1998.?? Soul Calibur (US, SOC13/VER.B)
soulclbrjb // 1998.?? Soul Calibur (Japan, SOC11/VER.B)
soulclbrja // 1998.?? Soul Calibur (Japan, SOC11/VER.A2)
- // 1998.07 Techno Drive
+technodr // 1998.07 Techno Drive
mdhorse // 1998.11 Derby Quiz My Dream Horse (Japan, MDH1/VER.A2)
- // 1998.12 Attack Pla Rail
+aplarail // 1998.12 Attack Pla Rail
tenkomor // 1998.?? Tenkomori Shooting (Asia, TKM2/VER.A1)
tenkomorja // 1998.12 Tenkomori Shooting (Japan, TKM1/VER.A1)
pacapp // 1998.12 Paca Paca Passion (Japan, PPP1/VER.A2)
@@ -4509,8 +4541,8 @@ stactics // (c) 1981 Sega
turbo // (c) 1981 Sega
turboa // (c) 1981 Sega
turbob // (c) 1981 Sega
-turboc // (c) 1981 Sega
-turbod // (c) 1981 Sega
+turboc // (c) 1981 Sega
+turbod // (c) 1981 Sega
turbobl // bootleg
subroc3d // (c) 1982 Sega
buckrog // (c) 1982 Sega
@@ -4545,6 +4577,8 @@ enduror // (c) 1985 (FD1089B)
enduror1 // (c) 1985 (FD1089B)
endurob2 // (c) 1985 (Beta bootleg)
endurobl // (c) 1985 (Herb bootleg)
+endurord // bootleg
+enduror1d // bootleg
hangon // (c) 1985 (Rev A)
hangon1 // (c) 1985
hangon2 // (c) 1985
@@ -4587,6 +4621,13 @@ wb31 // (c) 1988 Sega / Westone (FD1094)
wb35 // (c) 1988 Sega / Westone (FD1089A)
passsht16a // (c) 1988 (FD1094)
+// System 16A decrypted bootlegs
+wb31d
+wb35d
+shinobi1d
+tetrisd
+tetris3d
+
// System 16B
aceattac // (c) 1988 (FD1094)
aliensyn // (c) 1987 (Unprotected)
@@ -4644,6 +4685,11 @@ riotcity // (c) 1991 Sega / Westone (Unprotected)
ryukyu // (c) 1990 (FD1094)
sdib // (c) 1987 (FD1089A)
sdibl // (c) 1987 bootleg
+sdibl2 // bootleg
+sdibl3 // bootleg
+sdibl4 // bootleg
+sdibl5 // bootleg
+sdibl6 // bootleg
defense // (c) 1987 (FD1094)
shinobi5 // (c) 1987 (Unprotected)
shinobi4 // (c) 1987 (MC-8123B)
@@ -4675,6 +4721,48 @@ fantzn2xp // (c) 2008 Sega / M2
atomicp // (c) 1990 Philko - korean clone board
snapper // (c) 1990 Philko - korean clone board
+// S16 decrypted bootlegs
+cottonjd
+cottond
+cottonud
+cottonjad
+sonicbomd
+ryukyud
+mvpd
+mvpjd
+exctleagd
+fpointd
+fpoint1d
+bulletd
+eswatd
+eswatud
+eswatjd
+eswatj1d
+passshtd
+passshtad
+passshtjd
+tetris2d
+tetris1d
+wb34d
+wb33d
+wb32d
+dduxd
+dduxjd
+goldnaxeud
+goldnaxe1d
+goldnaxe3d
+goldnaxejd
+hwchampjd
+altbeast5d
+altbeastj3d
+aurail1d
+aurailjd
+bayrouted
+bayroutejd
+wrestwar2d
+wrestwar1d
+shinobi2d
+
// S16 Bootlegs
bayrouteb1 // (c) 1989 (protected) (bootleg)
bayrouteb2 // (c) 1989 (protected) (bootleg)
@@ -4688,6 +4776,7 @@ passht4b // bootleg
passshtb // bootleg
shinoblb // (c) 1987 (but bootleg)
shinobld // (c) 1987 (but bootleg)
+shinoblda //
tetrisbl // (c) 1988 (but bootleg)
beautyb // (c) 1991 AMT
iqpipe // (c) 1991 AMT
@@ -4731,6 +4820,28 @@ desertbrj // 1992.10 Desert Breaker (Japan, FD1094)
pontoon
hamaway // prototype
+ddcrewd
+ddcrewud
+ddcrew2d
+ddcrew1d
+ddcrewjd
+ddcrewj2d
+cltchitrd
+cltchitrjd
+desertbrd
+desertbrjd
+lghostd
+lghostud
+astorm3d
+astormud
+astormjd
+bloxeedd
+mwalkd
+mwalkud
+mwalkjd
+wwallyjd
+wwallyjad
+
// System18 Bootlegs
astormbl // BOOTLEG
astormb2 // BOOTLEG
@@ -4764,6 +4875,12 @@ toutrun3 // 1987 (FD1094)
toutrun2 // 1987 (FD1094)
toutrun1 // 1987 (FD1094)
toutrunj1 // 1987 (FD1094)
+toutrund // bootleg
+toutrunjd // bootleg
+toutrun3d // bootleg
+toutrunj1d // bootleg
+toutrun2d // bootleg
+shangon3d // bootleg
// X Board
aburner // 1987.07 After Burner (Japan)
@@ -4787,11 +4904,30 @@ loffireu // 1990.04 Line of Fire (US, FD1094)
rachero // 1990.?? Racing Hero (World, FD1094)
abcop // 1990.?? A.B.Cop (World, FD1094)
abcopj // 1991.01 A.B.Cop (Japan, FD1094)
-gpriderj // 1990.10 GP Rider (Japan, FD1094)
-gprider // 1990.?? GP Rider (World, FD1094)
-gprideru // 1990.12 GP Rider (US, FD1094)
+gpriderjs // 1990.10 GP Rider (Japan, FD1094)
+gpriderj // as above
+gpriders // 1990.?? GP Rider (World, FD1094)
+gprider // as above
+gpriderus // 1990.12 GP Rider (US, FD1094)
+gprideru // as above
rascot // 1991.?? Royal Ascot (Japan)
+// decrypted X-Board bootlegs
+thndrbldd
+racherod
+smgpd
+smgp6d
+smgp5d
+smgpud
+smgpu1d
+smgpu2d
+smgpjd
+abcopd
+abcopjd
+lastsurvd
+loffired
+loffireud
+loffirejd
// Y-Board
// 1988.05 Galaxy Force (Japan)
@@ -5199,6 +5335,7 @@ tfrceac // (c) 1990 Sega / Technosoft
tfrceacj // (c) 1990 Sega / Technosoft
tfrceacb // bootleg
twinsqua // (c) 1991 Sega
+soniccar // (c) 1991 Sega
ribbit // (c) 1991 Sega
tantr // (c) 1992 Sega
tantrkor // (c) 1992 Sega
@@ -5364,6 +5501,8 @@ alpiltdx // 1999.?? Airline Pilots Deluxe (Rev B)
// 1999.?? Pocket Shooting
sambap // 1999.?? Samba de Amigo (prototype)
spawn // 1999.?? Spawn In the Demon's Hand
+ // 1999.?? Tokio Bus Guide
+ // 1999.?? Tokio Bus Guide (Rev A)
vtennisg // 1999.?? Virtua Tennis / Power Smash (GD-ROM)
18wheelr // 2000.01 18 Wheeler Deluxe (Rev A)
18wheels // 2000.01 18 Wheeler (Standard)
@@ -5376,9 +5515,9 @@ virnbao // 2000.02 Virtua NBA (original)
virnbap // 2000.02 Virtua NBA (prototype)
mvsc2 // 2000.03 Marvel Vs. Capcom 2 New Age of Heroes (Rev A)
smarinef // 2000.03 Sega Marine Fishing
-wldkicks // 2000.03 World Kicks (WK2 Ver. A)
-wldkicksa // 2000.03 World Kicks (WK3 Ver. A)
-wldkicksb // 2000.03 World Kicks PCB (WKC1 Ver. A)
+wldkicksa // 2000.03 World Kicks (Asia, WK2 Ver.A)
+wldkicks // 2000.03 World Kicks (US, WK3 Ver.A)
+wldkicksj // 2000.03 World Kicks PCB (Japan, WKC1 Ver.A)
pstone2 // 2000.04 Power Stone 2
toukon4 // 2000.04 Shin Nihon Prowrestling Toukon Retsuden 4 Arcade Edition (TRF1 Ver. A)
qmegamis // 2000.05 Quiz Ah Megamisama
@@ -5398,10 +5537,10 @@ cspike // 2000.10 Gun Spike / Cannon Spike
sstrkfgt // 2000.10 Sega Strike Fighter (Rev A, set 1)
sstrkfgta // 2000.10 Sega Strike Fighter (Rev A, set 2)
confmiss // 2000.10.11 Confidential Mission // First GD-ROM game?
-ninjaslt1 // 2000.11 Ninja Assault (NJA1 Ver. A)
-ninjaslt2 // 2000.11 Ninja Assault (NJA2 Ver. A)
-ninjaslt // 2000.11 Ninja Assault (NJA3 Ver. A)
-ninjaslt4 // 2000.11 Ninja Assault (NJA4 Ver. A)
+ninjasltj // 2000.11 Ninja Assault (Japan, NJA1 Ver.A)
+ninjaslta // 2000.11 Ninja Assault (Asia, NJA2 Ver.A)
+ninjasltu // 2000.11 Ninja Assault (US, NJA3 Ver.A)
+ninjaslt // 2000.11 Ninja Assault (World, NJA4 Ver.A)
wwfroyal // 2000.11 WWF Royal Rumble
sprtjam // 2000.11.13 Sports Jam
starhrcl // 2000.11.28 Star Horse (satellite)
@@ -5428,8 +5567,8 @@ crakndj2 // 2001.06 Crackin' DJ Part 2
hmgeo // 2001.06 Heavy Metal Geomatrix (Rev B)
wsbbgd // 2001.06 Super Major League / World Series Baseball
starseek // 2001.07 Dokidoki Idol Star Seeker
-gunsur2 // 2001.07 Gun Survivor 2 Biohazard Code: Veronica (BHF1)
-gunsur2e // 2001.07 Gun Survivor 2 Biohazard Code: Veronica (BHF2 Ver. E)
+gunsur2j // 2001.07 Gun Survivor 2 Biohazard Code: Veronica (Japan, BHF1 Ver.E)
+gunsur2 // 2001.07 Gun Survivor 2 Biohazard Code: Veronica (Asia, BHF2 Ver.E)
spkrbtl // 2001.07 Spikers Battle
cvs2gd // 2001.07.05 Capcom Vs. SNK 2 Millionaire Fighting 2001 (Rev A)
wrungp // 2001.08 Wave Runner GP
@@ -5453,8 +5592,8 @@ luptype // 2002.04 Lupin The Third - The Typing (Rev A)
cleoftp // 2002.05 Cleopatra Fortune Plus
ggxx // 2002.05 Guilty Gear XX
chocomk // 2002.06 Musapey's Choco Marker (Rev A)
-mazan // 2002.07 Mazan : Flash of the Blade (MAZ2 Ver. A)
-mazana // 2002.07 Mazan : Flash of the Blade (MAZ3 Ver. A)
+mazana // 2002.07 Mazan: Flash of the Blade (Asia, MAZ2 Ver.A)
+mazan // 2002.07 Mazan: Flash of the Blade (US, MAZ3 Ver.A)
// 2002.09 Yonin Uchi Mahjong MJ
azumanga // 2002.12 Azumanga Daiou Puzzle Bobble
moeru // 2002.12 Moeru Casinyo
@@ -5475,7 +5614,7 @@ psyvar2 // 2003.11 Psyvariar 2 - The Will To Fabricate
puyofev // 2003.11 Puyo Puyo Fever
starhrsp // 2003.12.01 Star Horse Progress (satellite) (Rev A)
// 2003.?? Dragon Treasure
-puyofevp // 2003.?? Puyo Puyo Fever (prototype)
+puyofevp // 2003.?? Puyo Puyo Fever (prototype ver 0.01)
shootpl // 2003.?? Shootout Pool The Medal / Shootout Pool Prize (Rev A)
cfield // 2004.06 Chaos Field
tetkiwam // 2004.06 Tetris Kiwamemichi (Arcade TV Game List - P.88, Right, 11 from bottom)
@@ -5485,19 +5624,19 @@ kick4csh // 2004.?? Kick '4' Cash
shootplm // 2004.?? Shootout Pool The Medal Ver. B / Shootout Pool Prize Ver. B
// 2004.?? The Quiz Show
meltyblo // 2005.03 Melty Blood Act Cadenza
-ss2005 // 2005.03 Super Shanghai 2005
-ss2005a // 2005.04 Super Shanghai 2005 (Rev A)
+ss2005o // 2005.03 Super Shanghai 2005
+ss2005 // 2005.04 Super Shanghai 2005 (Rev A)
senkoo // 2005.04 Senko no Ronde
senko // 2005.08 Senko no Ronde (Rev A)
meltybld // 2005.08 Melty Blood Act Cadenza Ver. A (Rev C)
ggxxsla // 2005.09 Guilty Gear XX Slash (Rev A)
-radirgy // 2005.10 Radirgy
+radirgyo // 2005.10 Radirgy
undefeat // 2005.10 Under Defeat
-radirgya // 2005.12.04 Radirgy (Rev A)
+radirgy // 2005.12.04 Radirgy (Rev A)
// 2005.?? Dragon Treasure 3 (Rev A)
// 2005.?? ExZeus
-mushik2e // 2005.?? Mushiking The King Of Beetles II ENG (Ver. 1.001)
-mushi2ea // 2005.?? Mushiking The King Of Beetles II ENG (Ver. 2.001)
+mushi2eo // 2005.?? Mushiking The King Of Beetles II ENG (Ver. 1.001)
+mushik2e // 2005.?? Mushiking The King Of Beetles II ENG (Ver. 2.001)
// 2005.?? MushiKing The King Of Beetle III
mushi2k5 // 2005.?? MushiKing The King Of Beetle 2K5 1st
kurucham // 2006.03 Kurukuru Chameleon
@@ -5507,9 +5646,9 @@ senkosp // 2006.08 Senkou no Rondo SP
jingystm // 2006.09 Jingi Storm
karous // 2006.11 Karous
ggxxac // 2006.11 Guilty Gear XX Accent Core
-meltyb // 2006.12 Melty Blood Act Cadenza Version B
+meltybo // 2006.12 Melty Blood Act Cadenza Version B
takoron // 2006.12.16 Noukone Puzzle Takoron
-meltyba // 2007.03 Melty Blood Act Cadenza Version B2 (Rev A) // Last GD-ROM game?
+meltyb // 2007.03 Melty Blood Act Cadenza Version B2 (Rev A) // Last GD-ROM game?
ndcfboxa // 2009.04.01 DIMM Firmware Updater for CF-BOX (Rev A)
ngdup23a // DIMM Firmware Updater (Rev A)
ngdup23c // DIMM Firmware Updater (Rev C)
@@ -5524,8 +5663,8 @@ rhytngk // 2007.09 Rhythm Tengoku
ausfache // 2008.02 Akatsuki Denkou Senki Ausf.Achse
illvelo // 2008.06 Illvelo (Illmatic Envelope)
mamonoro // 2008.07 Mamoru-kun wa Norowarete Shimatta!
-mbaa // 2008.09 Melty Blood Actress Again
-mbaaa // 2008.12 Melty Blood Actress Again Version A (Rev A)
+mbaao // 2008.09 Melty Blood Actress Again
+mbaa // 2008.12 Melty Blood Actress Again Version A (Rev A)
radirgyn // 2009.06 Radirgy Noa
starhrpr // 2009.07.27 Star Horse Progress Returns (satellite)
// 2009.?? Project Cerberus (planned to be released in 2009)
@@ -5551,18 +5690,18 @@ loveber3
// NAOMI 2
naomi2 // 2001.?? Naomi 2 BIOS
-vstrik3c // 2001.04 Virtua Striker 3 (cartridge)
-vstrik3cb // 2001.04 Virtua Striker 3 (Rev B) (cartridge)
+vstrik3co // 2001.04 Virtua Striker 3 (cartridge)
+vstrik3c // 2001.04 Virtua Striker 3 (Rev B) (cartridge)
vstrik3 // 2001.04.06 Virtua Striker 3 Ver. 2002
wldrider // 2001.05 Wild Riders
-clubkrte // 2001.06 Club Kart: European Session
-clubkrtd // 2001.06 Club Kart: European Session (Rev D)
+clubkrto // 2001.06 Club Kart: European Session
+clubkrt // 2001.06 Club Kart: European Session (Rev D)
beachspi // 2001.07 Beach Spikers
vf4cart // 2001.08.02 Virtua Fighter 4 (cartridge)
-vf4 // 2001.08.02 Virtua Fighter 4 (GD-ROM)
+vf4o // 2001.08.02 Virtua Fighter 4 (GD-ROM)
vf4b // 2001.08.20 Virtua Fighter 4 (Rev B) (cartridge)
clubkrtc // 2001.?? Club Kart: European Session (Rev C)
-vf4c // 2002.01.31 Virtua Fighter 4 (Rev C) (cartridge)
+vf4 // 2002.01.31 Virtua Fighter 4 (Rev C) (cartridge)
kingrt66 // 2002.02 The King of Route 66 (Rev A)
// 2002.02.14 Initial D Arcade Stage (Japan)
initd // 2002.03 Initial D Arcade Stage (Japan) (Rev B)
@@ -5726,8 +5865,8 @@ mj2c // 2004.12 Sega Network Taisen Mahjong MJ 2 (Rev C)
// 2004.12 Sega Network Taisen Mahjong MJ 2 (Rev D)
ghostsqu // 2004.12.09 Ghost Squad (Rev A)
// 2005.02 Sega Network Taisen Mahjong MJ 2 (Rev E)
-mj2f // 2005.02 Sega Network Taisen Mahjong MJ 2 (Rev F)
-mj2 // 2005.02.02 Sega Network Taisen Mahjong MJ 2 (Rev G)
+mj2 // 2005.02 Sega Network Taisen Mahjong MJ 2 (Rev F)
+mj2g // 2005.02.02 Sega Network Taisen Mahjong MJ 2 (Rev G)
// 2005.03 Sangokushi Taisen
gundamos // 2005.03 Gundam Battle Operating Simulator
// 2005.04 Quest of D Ver.1.20
@@ -5762,7 +5901,7 @@ scg06nt // 2005.12 Sega Golf Club 2006: Next Tours (Rev A)
// 2006.09 Sega Network Taisen Mahjong MJ 3 Evolution (Rev A)
// 2006.10 Quest of D Oukoku no Syugosya Ver.3.00
// 2006.11 Quest of D Oukoku no Syugosya Ver.3.01
-mj3evo // 2007.06 Sega Network Taisen Mahjong MJ 3 Evolution (Rev B)
+mj3evo // 2007.06 Sega Network Taisen Mahjong MJ 3 Evolution (Rev B)
// 2007.11 Quest of D The Battle Kingdom Ver.4.00
// 2008.01 Quest of D The Battle Kingdom Ver.4.00b
// 2008.02 Quest of D The Battle Kingdom Ver.4.00c
@@ -6020,7 +6159,8 @@ secretab // bootleg
midres // (c) 1989 Data East Corporation (World)
midresu // (c) 1989 Data East USA (US)
midresj // (c) 1989 Data East Corporation (Japan)
-midresb // (c) 1989 Data East Corporation (Japan)
+midresb // bootleg
+midresbj // bootleg
bouldash // (c) 1990 Data East Corporation (World)
bouldashj // (c) 1990 Data East Corporation (Japan)
// end of similar hardware
@@ -6130,10 +6270,12 @@ ragtime // MBD (c) 1992 (Japan, v1.5)
ragtimea // MBD (c) 1992 (Japan, v1.3)
dblewing // MBE (c) 1993 Mitchell
fghthist // MBF (c) 1993 Data East Corporation (World) DE-0380-2 PCB
-fghthistu // MBF (c) 1993 Data East Corporation (US) DE-0395-1 PCB
+fghthista // MBF (c) 1993 Data East Corporation (World) DE-0380-2 PCB
+fghthistu // MBF (c) 1993 Data East Corporation (US) DE-0396-0 PCB
fghthistua // MBF (c) 1993 Data East Corporation (US) DE-0395-1 PCB
+fghthistub // MBF (c) 1993 Data East Corporation (US) DE-0395-1 PCB
+fghthistuc // MBF (c) 1993 Data East Corporation (US) DE-0380-2 PCB
fghthistj // MBF (c) 1993 Data East Corporation (Japan) DE-0395-1 PCB
-fghthistub // MBF (c) 1993 Data East Corporation (US) DE-0380-2 PCB
fghthistja // MBF (c) 1993 Data East Corporation (Japan) DE-0380-2 PCB
fghthistjb // MBF (c) 1993 Data East Corporation (Japan) DE-0380-1 PCB
hvysmsh // MBG (c) 1993 Data East Corporation (World)
@@ -6150,8 +6292,9 @@ nslasheru // MBH (c) 1993 Data East Corporation (US)
lockload // MBM (c) 1994 Data East Corporation (World)
lockloadu // MBM (c) 1994 Data East Corporation (US)
gunhard // MBM (c) 1994 Data East Corporation (Japan)
-joemacr // MBN (c) 1994
-joemacra // MBN (c) 1994
+joemacr // MBN (c) 1994 Data East Corporation (World)
+joemacra // MBN (c) 1994 Data East Corporation (World)
+joemacrj // MBN (c) 1994 Data East Corporation (Japan)
// MBO ??
// MBP ??
// MBQ ??
@@ -6267,6 +6410,7 @@ wc90t // (c) 1989 Tecmo
wc90b1 // bootleg
wc90b2 // bootleg
wc90ba // bootleg
+pac90 // bootleg
spbactn // 9002 - (c) 1991 Tecmo
spbactnj // 9002 - (c) 1991 Tecmo
spbactnp // prototype
@@ -6311,6 +6455,7 @@ trackfldc // GX361 (c) 1983 + Centuri license
trackfldnz // (c) 1982 Goldberg Enterprizes Inc.
hyprolym // GX361 (c) 1983
hyprolymb // bootleg
+hyprolymba // bootleg
atlantol // bootleg
wizzquiz // (c) 1985 Konami
wizzquiza // (c) 1985 Zilec-Zenitone
@@ -6470,7 +6615,7 @@ esckids // GX975 (c) 1991 (Asia)
esckidsj // GX975 (c) 1991 (Japan)
vendetta // GX081 (c) 1991 (World)
vendettar // GX081 (c) 1991 (World)
-vendettaz // GX081 (c) 1991 (World)
+vendettaz // GX081 (c) 1991 (World)
vendetta2p // GX081 (c) 1991 (World)
vendetta2peba // GX081 (c) 1991 (World)
vendetta2pu // GX081 (c) 1991 (Asia)
@@ -6478,8 +6623,10 @@ vendetta2pd // GX081 (c) 1991 (Asia)
vendettaj // GX081 (c) 1991 (Japan)
mogura // GX141 (c) 1991
wecleman // GX602 (c) 1986
-wecleman2 // GX602?(c) 1988
+weclemana // GX602?(c) 1988
+weclemanb // GX602 (c) 1986
hotchase // GX763 (c) 1988
+hotchasea
chqflag // GX717 (c) 1988
chqflagj // GX717 (c) 1988 (Japan)
ultraman // GX910 (c) 1991 Banpresto/Bandai
@@ -6709,7 +6856,7 @@ soccerss // 1994.?? GX427 (Europe)
soccerssj // 1994.12 GX427 (Japan)
soccerssja // 1994.12 GX427 (Japan)
soccerssa // 1994.?? GX427 (Asia)
- // 1995.04 GX427 (US)
+soccerssu // 1995.04 GX427 (US)
// GX Type 4
vsnetscr // 1996.?? GX627 (Europe)
@@ -6791,6 +6938,8 @@ popn6 // GQA16 (c) 2001 (Japan)
popn7 // GCB00 (c) 2001 (Japan)
popnanm2 // GEA02 (c) 2001 (Japan)
popn8 // GQB30 (c) 2002 (Japan)
+bm3core // GCA05 (c) 2000 (Japan)
+bm36th // GCA21 (c) 2001 (Japan)
bm37th // GCB07 (c) 2002 (Japan JCA)
bm3final // GCC01 (c) 2003 (Japan JCA)
@@ -7127,6 +7276,7 @@ roadblst1 // 136048 (c) 1986, 1987
roadblstc // 136048 (c) 1986, 1987
roadblstcg // 136048 (c) 1986, 1987
roadblstc1 // 136048 (c) 1986, 1987
+roadblstgu // 136048 (c) 1986, 1987
// Atari System 2 games
// Paperboy
@@ -7827,6 +7977,7 @@ fatfurwa // 006 1999/01/28 Fatal Fury: Wild Ambition / Garou Densetsu: Wi
buriki // 007 1999/05/21 Buriki One
// Neo Print
+neoprint
npcartv1
98best44
nprsp
@@ -7999,6 +8150,7 @@ goaltogo // (c) 1983
// GamePlan games
toratora // (c) 1980 Game Plan
+toratorab // (c) 1980 Game Plan
megatack // (c) 1980 Centuri
killcom // (c) 1980 Centuri
challeng // (c) 1981 Centuri
@@ -8173,6 +8325,7 @@ mkla4 // (c) 1992 Midway
mkyawdim // bootleg
mkyawdim2 // bootleg
mkyawdim3 // bootleg
+mkyawdim4 // bootleg
term2 // (c) 1992 Midway
term2la3 // (c) 1992 Midway
term2la2 // (c) 1992 Midway
@@ -8199,6 +8352,7 @@ nbajamte2 // (c) 1994 Midway
nbajamte3 // (c) 1994 Midway
nbajamten // (c) 1995 Midway
revx // (c) 1994 Midway
+revxp5 // (c) 1994 Midway
mk3 // (c) 1994 Midway
mk3r20 // (c) 1994 Midway
mk3r10 // (c) 1994 Midway
@@ -8259,6 +8413,7 @@ sfrush // (c) 1996 Atari Games
sfrushrk // (c) 1996 Atari Games
calspeed // (c) 1996 Atari Games
calspeeda // (c) 1996 Atari Games
+calspeedb // (c) 1996 Atari Games
vaportrx // (c) 1998 Atari Games
vaportrxp // (c) 1998 Atari Games
carnevil // (c) 1998 Midway Games (v1.0.3)
@@ -8267,6 +8422,7 @@ biofreak // (c) 1997 Midway Games (prototype)
blitz // (c) 1997 Midway Games
blitz11 // (c) 1997 Midway Games
blitz99 // (c) 1998 Midway Games
+blitz99a // (c) 1998 Midway Games
blitz2k // (c) 1999 Midway Games
hyprdriv // (c) 1998 Midway Games
@@ -8279,8 +8435,10 @@ sf2049 // (c) 1999 Atari Games
sf2049se // (c) 1999 Atari Games
sf2049te // (c) 1999 Atari Games
warfa // (c) 1999 Atari Games
+warfaa // (c) 1999 Atari Games
nbashowt // (c) 1998 Midway Games
nbanfl // (c) 1999 Midway Games
+nbagold // (c) 2000 Midway Games
gauntdl // (c) 1999 Midway Games
gauntdl24 // (c) 1999 Midway Games
cartfury // (c) 2000 Midway Games
@@ -8333,6 +8491,8 @@ ccclass
tsclass
// Bromley
srockbwl
+// Smart Industries
+smartoss
// Cinematronics raster games
@@ -8470,7 +8630,8 @@ panicr // Seibu / Taito
panicrg // Seibu / TV-Tuning (Germany)
deadang // (c) 1988 Seibu Kaihatsu
leadang // (c) 1988 Seibu Kaihatsu
-ghunter // (c) 1988 Seibu Kaihatsu + Segasa/Sonic license
+ghunter // (c) 1988 Seibu Kaihatsu
+ghunters // (c) 1988 Seibu Kaihatsu + Segasa/Sonic license
dynduke // (c) 1989 Seibu Kaihatsu
dyndukea // (c) 1989 Seibu Kaihatsu
dyndukej // (c) 1989 Seibu Kaihatsu
@@ -8701,15 +8862,17 @@ jitsupro // (c) 1989 (Japan)
plusalph // (c) 1989
stdragon // (c) 1989
stdragona // (c) 1989
+stdragonb // bootleg
rodland // (c) 1990
rodlandj // (c) 1990 (Japan)
-rittam // Prototype or hack of Rod-Land
+rittam // Prototype or hack of Rod-Land
rodlandjb // bootleg
avspirit // (c) 1991
phantasm // (c) 1991 (Japan)
monkelf // bootleg
edf // (c) 1991
-edfu // (c) 1991
+edfa // (c) 1991
+edfu // (c) 1991 (North America)
edfbl // (c) 1991
64street // (c) 1991
64streetj // (c) 1991 (Japan)
@@ -8783,13 +8946,14 @@ pspikesk // (c) 1991 Video System Co. (Korea)
pspikesu // (c) 1991 Video System Co. (US)
svolly91 // (c) 1991 Video System Co. (Japan)
pspikesb // bootleg
+pspikesba // bootleg
spikes91 // bootleg
spikes91b // bootleg
pspikesc // bootleg
karatblz // (c) 1991 Video System Co.
karatblzu // (c) 1991 Video System Co. (US)
karatblzj // (c) 1991 Video System / Tecmo (Japan)
-karatblzbl // bootleg
+karatblzbl // bootleg
turbofrc // (c) 1991 Video System Co.
aerofgt // (c) 1992 Video System Co.
aerofgtb // (c) 1992 Video System Co.
@@ -8846,7 +9010,7 @@ baryona // (c) 1997 SemiCom
dreamwld // (c) 2000 SemiCom
rolcrush // (c) 1999 Trust
cutefght // (c) 1998 SemiCom
-gaialast // (c) 1999 SemiCom
+gaialast // (c) 1999 SemiCom
// SH2 board
s1945ii // (c) 1997
@@ -8912,6 +9076,7 @@ vastar4 // (c) 1983 Sesame Japan
// Gaelco 2D games
mastboy // (c) 1987 - No Ref on the PCB
mastboyi // (c) 1987 - No Ref on the PCB
+mastboyia // (c) 1987 - No Ref on the PCB
xorworld // (c) 1990 - prototype
bigkarnk // (c) 1991 - Ref 901112-1
// Master Boy 2 // (c) 1991 - Ref ???
@@ -8958,6 +9123,7 @@ surfplnt // (c) 1997 - Ref 971223
surfplnt40 // (c) 1997 - Ref 970514
radikalb // (c) 1998 - Ref ???
radikalba // (c) 1998 - Ref ???
+rollext // (c) 1999 - Ref 991015
// SH-4 hardware
atvtrack // (c) 2002 - Ref 020419
@@ -9012,6 +9178,7 @@ galpani3hk // (c) 1995 Kaneko (Hong Kong)
berlwall // (c) 1991 Kaneko
berlwallt // (c) 1991 Kaneko
berlwallk // (c) 1991 Kaneko (Korea, Inter license)
+packbang // (c) 1994 Kaneko (prototype)
mgcrystl // (c) 1991 Kaneko (World)
mgcrystlo // (c) 1991 Kaneko (World)
mgcrystlj // (c) 1991 Kaneko + distributed by Atlus (Japan)
@@ -9117,6 +9284,7 @@ zingzip // UY (c) 1992 Allumer + Tecmo
zingzipbl // bootleg
atehate // (C) 1993 Athena
jjsquawk // (c) 1993 Athena / Able
+jjsquawko // (c) 1993 Athena / Able
jjsquawkb // bootleg
jjsquawkb2 // bootleg
kamenrid // (c) 1993 Toei / Banpresto
@@ -9270,7 +9438,8 @@ spacecho // bootleg
spacecho2 // bootleg
route16 // (c) 1981 Tehkan/Sun + Centuri license
route16a // (c) 1981 Tehkan/Sun + Centuri license
-route16b // bootleg
+route16c // (c) 1981 Tehkan/Sun + Centuri license
+route16bl // bootleg
routex // bootleg
ttmahjng // Taito
fnkyfish // (c) 1981 Sun Electronics
@@ -9319,6 +9488,7 @@ srangern // (c) 1988 SunA (NOVA License)
srangerw // (c) 1988 SunA (WDK License)
hardhead // (c) 1988 SunA
hardheadb // bootleg
+hardheadb2 // bootleg
pop_hh // bootleg
sparkman // (c) 1989 SunA
sparkmana // (c) 1989 SunA
@@ -9504,6 +9674,7 @@ puzzlet // (c) 2000 Yunizu Corporation (Japan)
spcforce // (c) 1980 Venture Line
spcforc2 // bootleg
meteor // (c) 1981 Venture Line
+meteors // (c) 1981 Amusement World
looping // (c) 1982 Video Games GmbH
loopingv // (c) 1982 Video Games GmbH (Venture Line license)
loopingva // (c) 1982 Video Games GmbH (Venture Line license)
@@ -9533,6 +9704,7 @@ magicbuba // (c) Yun Sung
magicbubb // (c) Yun Sung
shocking // (c) 1997 Yun Sung
shockingk // (c) 1997 Yun Sung
+shockingko // (c) 1997 Yun Sung
bombkick // (c) 1998 Yun Sung
bombkicka // (c) 1998 Yun Sung
nmg5 // (c) 1998 Yun Sung
@@ -9546,6 +9718,7 @@ pclubysa // (c) 2000 Yun Sung
garogun // (c) 2000 Yun Sung
7ordi // (c) 2002 Yun Sung
wondstck // (c) ???? Yun Sung
+wondstcka // (c) ???? Yun Sung
// Zilec games
blueprnt // (c) 1982 Bally Midway (Zilec in ROM 3U, and the programmer names)
@@ -9632,103 +9805,106 @@ mjsenka // (c) 1986 Visco
mjyarou // (c) 1986 Visco / Video System
mjclub // (c) 1986 Xex
daisyari // (c) 1989 Best System
-suzume // ?? (c) 1986 Dyna Electronics
+ippatsu // 01? (c) 1986 Dyna Electronics
hnayayoi // "02" (c) 1987 Dyna Electronics
dondenmj // "03" (c) 1986 Dyna Electronics
-ippatsu // ?? (c) 1986 Dyna Electronics
+suzume // 04? (c) 1986 Dyna Electronics
+makaijan // "05" (c) 1987 Dynax
hnfubuki // "06" (c) 1987 Dynax
mjdiplob // "07" (c) 1987 Dynax
untoucha // "08" (c) 1987 Dynax
tontonb // "09" (c) 1987 Dynax
-makaijan // ?? (c) 1987 Dynax
+mjapinky // "14" (c) 1988 Dynax
hanamai // "16" (c) 1988 Dynax
majs101b // "17" (c) [1988] Dynax
-janyuki // "??" (c) 1988 Dynax
-mjapinky // 1988 Dynax
-mjdejavu // 1989 Dynax
-mjdejav2 // 1989 Dynax
+janyuki // ?? (c) 1988 Dynax
hnkochou // "20" (c) 1989 Dynax
+mjdejavu // "21" (c) 1989 Dynax
+mjdejav2 // "21" (c) 1989 Dynax
mjderngr // "22" (c) 1989 Dynax
hnoridur // "23" (c) 1989 Dynax
drgpunch // "24" (c) 1989 Dynax
-mjfriday // "26" (c) [1989] Dynax
+mjfriday // "26" (c) 1989 Dynax
jantouki // "27" Jantouki 1989 Dynax
-gekisha // "28" 1989 Dynax
-mjifb // "29" 1990 Dynax
-mjifb2 // "29" 1990 Dynax
-mjifb3 // "29" 1990 Dynax
-mjvegas // 1991 Dynax
-mjvegasa // 1991 Dynax
-cafetime // 1992 Dynax
-cafedoll // 1993 Dynax
-janptr96 // 1996 Dynax
-janptrsp // 1997 Dynax
+gekisha // "28" (c) 1989 Dynax
+mjifb // "29" (c) 1990 Dynax
+mjifb2 // "29" (c) 1990 Dynax
+mjifb3 // "29" (c) 1990 Dynax
sprtmtch // "31" (c) 1989 Dynax + Fabtek license
-maya // (c) 1994 Promat
-mayaa // (c) 1994 Promat
-mayab // (c) 1994 Promat
-mayac // (c) 1994 Promat
-inca // (c) 199? ????
-blktouch // (c) Yang Gi Co Ltd.
mcnpshnt // "33" Mahjong Campus Hunting 1990 Dynax
7jigen // "37" 7jigen no Youseitachi 1990 Dynax
mjembase // "38" Mahjong Electromagnetic Base 1989 Dynax
+majxtal7 // "40" (c) 1990 Dynax
neruton // "45" Mahjong Neruton Haikujiradan 1990 Dynax
nerutona // "45" Mahjong Neruton Haikujiradan 1990 Dynax
-mjcomv1 // 1991 Dynax
-shpeng // (c) 1995 WSAC Systems
-tenkai // 1991 Dynax
-tenkai2b // 1991 Dynax
-tenkaibb // 1991 Dynax
-tenkaicb // 1991 Dynax
-tenkaie // 1991 Dynax
-ougonpai // 1991 Dynax
-ougonpaib // bootleg
-htengoku // 1992 Dynax
-cdracula // 1994 Y.S.E.
-mjreach // 1994 Dynax
+hjingi // ?? (c) 1990 Dynax
+hjingia // ?? (c) 1990 Dynax
+tenkai // (c) 1991 Dynax
+tenkai2b // (c) 1991 bootleg
+tenkaibb // (c) 1991 bootleg
+tenkaicb // (c) 1991 bootleg
+tenkaie // (c) 1991 Dynax
+mjvegas // "50" 1991 Dynax
+mjvegasa // "50" 1991 Dynax
mjdialq2 // "52" (c) 1991 Dynax
mjdialq2a // "52" (c) 1991 Dynax
yarunara // "55" Mahjong Yarunara 1991 Dynax
-mjangels // "61" Mahjong Angels 1991 Dynax
+hanayara // "55" (c) 1991 Dynax
+mjcomv1 // "61" (c) 1991 Dynax
+mjangels // "612" Mahjong Angels 1991 Dynax
+ougonpai // "62" (c) 1991 Dynax
+ougonpaib // "62" (c) 1991 bootleg
+cafetime // "63" (c) 1992 Dynax
quiztvqq // "64" Quiz TV Gassyuukoku Q&Q 1992 Dynax
-mmpanic // "70" 1992 Nakanihon/Taito
+htengoku // "65" (c) 1992 Dynax
+mmpanic // "70" (c) 1992 Nakanihon/Taito
+mjmyornt // "71" (c) 1992 Dynax
+mjmyorn2 // "71?" (c) 1993 Dynax
+mjelctrn // ?? Mahjong Electron Base parts 2 & 4
+mjelct3 // ?? Mahjong Electron Base parts 2 & 3
+mjelct3a // ?? Mahjong Electron Base parts 2 & 3
+mjelctrb // ?? (c) 1993 bootleg Mahjong Electron Base parts 2 & 4
quizchq // "73" (c) 1993 Nakanihon
quizchql // "73" (c) 1993 Laxan
funkyfig // "74" (c) 1993 Nakanihon + East Technology
-funkyfiga //
-animaljr // "75" 1993 Nakanihon/Taito (USA)
-animaljrs // "75" 1993 Nakanihon/Taito (Spanish version)
-animaljrj // "75" 1993 Nakanihon/Taito (Japan)
-hginga // 1994 Dynax
-mjmyster // "?7" 1994 Dynax
-mjmywrld // "?7" 1994 Dynax
-mjmyornt // 1994 Dynax
-mjmyuniv // 1994 Dynax
+funkyfiga // "74" (c) 1993 Nakanihon + East Technology
+animaljr // "75" (c) 1993 Nakanihon/Taito (USA)
+animaljrs // "75" (c) 1993 Nakanihon/Taito (Spanish version)
+animaljrj // "75" (c) 1993 Nakanihon/Taito (Japan)
+cafedoll // "76" (c) 1993 Dynax
+mjmyster // "77" (c) 1994 Dynax
+mjmywrld // "77" (c) 1994 Dynax
quiz365 // "78" (c) 1994 Nakanihon
quiz365t // "78" (c) 1994 Nakanihon (Taiwan)
rongrong // "80" (c) 1994 Nakanihon
rongrongj // "80" (c) 1994 Nakanihon
rongrongg // "80" (c) 1994 Nakanihon
-hgokbang // "116" (c) 1995 Dynax
-mjtensin // "100" 1995 Dynax
+hginga // "81" (c) 1994 Dynax
+mjmyuniv // "85" (c) 1994 Dynax
+mjreach // (c) 1994 bootleg
+cdracula // (c) 1994 Y.S.E.
+mjtensin // "100" (c) 1995 Dynax
hparadis // "101" (c) 1994 Nakanihon
nettoqc // "103" (c) 1995 Nakanihon
ultrchmp // "104" (c) 1995 Nakanihon
ultrchmph // "114" (c) 1995 Nakanihon
-majrjhdx // "105" 1996 Dynax
+majrjhdx // "105" (c) 1996 Dynax
hgokou // "108" (c) 1995 Dynax (Alba license)
mjdchuka // "111" (c) 1995 Nakanihon
ddenlovj // "112" (c) 1995 Dynax (Japan)
ddenlovrk // "113" (c) 1995 Dynax (Korea)
ddenlovr // "113" (c) 1996 Dynax (Hong Kong)
+mjschuka // "115" (c) 1995 Dynax
+hgokbang // "116" (c) 1995 Dynax
mjchuuka // "121" (c) 1998 Dynax
ddenlovrb // bootleg
-mjflove // "500" 1996 Dynax
-akamaru // "501" 1996 Dynax
-sryudens // "502" 1996 Dynax / Face
-hanakanz // "507" 1996 Dynax
+mjflove // "500" (c) 1996 Dynax
+akamaru // "501" (c) 1996 Dynax
+sryudens // "502" (c) 1996 Dynax / Face
+janptr96 // "503" (c) 1996 Dynax
+hanakanz // "507" (c) 1996 Dynax
hkagerou // "510" Hana Kagerou 1996 Nakanihon
+janptrsp // "511" (c) 1997 Dynax
realbrkj // "523" Billiard Academy Real Break 1998 (Japan)
dai2kaku // "522" DaiDaiKakumei (Japan)
mjreach1 // "526" Mahjong Reach Ippatsu 1998 Nihon System/Dynax
@@ -9740,23 +9916,23 @@ realbrko // "600" Billiard Academy Real Break 1998 (Europe)
realbrkk // "600" Billiard Academy Real Break 1998 (Korea)
janshinp // "700j" 1996 Dynax / Sigma
dtoyoken // "700d" 1996 Dynax / Sigma
-cafepara // 1999 Techno-Top
-daimyojn // 2002 Dynax / Techno-Top
-momotaro // 2004 Techno-Top
+cafepara // "001" 1999 Techno-Top
+mjgnight // "003" 2000 Techno-Top
+daimyojn // "017" 2002 Dynax / Techno-Top
+momotaro // "027" 2004 Techno-Top
kotbinyo // 1997 Dynax / Shinwhajin
-kotbinsp // 1997 Dynax / Shinwhajin
+kotbinsp // "909" 1997 Dynax / Shinwhajin
pkgnsh // "505" Pachinko Gindama Shoubu 1998 (Japan)
pkgnshdx // "522" Pachinko Gindama Shoubu DX 1998 (Japan)
-hjingi // "???" 1990 Dynax
-hjingia // "???" 1990 Dynax
-hanayara // "???"
-mjelctrn // "???" Mahjong Electron Base parts 2 & 4
-mjelct3 // "???" Mahjong Electron Base parts 2 & 3
-mjelct3a // "???" Mahjong Electron Base parts 2 & 3
-mjelctrb // (c) 1993 Dynax Mahjong Electron Base parts 4
-majxtal7 // "???"
+maya // (c) 1994 Promat
+mayaa // (c) 1994 Promat
+mayab // (c) 1994 Promat
+mayac // (c) 1994 Promat
+inca // (c) 199? ????
+blktouch // (c) Yang Gi Co Ltd.
+shpeng // (c) 1995 WSAC Systems
// Sigma games
nyny // (c) 1980 Sigma Ent. Inc.
@@ -9809,6 +9985,7 @@ igs_ncs // (c) 198? IGS
igs_ncs2 // (c) 2000 IGS
spk115it // (c) 199? IGS
spk116it // (c) 199? IGS
+kungfu // (c) 1992 IGS
jackie // (c) 1993 IGS
pktet346 // (c) 199? IGS
cpokerx // (c) 1993 IGS
@@ -9871,8 +10048,12 @@ tarzana // (c) 1999?
starzan // (c) 2000?
// IGS027A Cpu Games
+slqz3 // (c) 1999
+amazonia // (c) 1999
+fruitpar // (c) 200?
zhongguo // (c) 2000
sdwx // (c) 2002
+amazoni2 // (c) 2002
sddz // (c) 200?
lhzb3 // (c) 200?
lhzb4 // (c) 200?
@@ -9899,6 +10080,7 @@ orlegendc //
orlegendca //
orlegend111c //
orlegend111t //
+orlegend111k //
orlegend105k //
drgw2 // (c) 1997 Dragon World 2
dw2v100x //
@@ -10316,6 +10498,8 @@ ringking2 // (c) 1985 Data East USA
ringking3 // (c) 1985 Data East USA
ringkingw // (c) 1985 Wood Place Inc.
dlair // (c) 1983 Cinematronics
+dlair_1 // (c) 1983 Cinematronics
+dlair_2 // (c) 1983 Cinematronics
dlairf // (c) 1983 Cinematronics
dlaire // (c) 1983 Cinematronics
dlaird // (c) 1983 Cinematronics
@@ -10369,9 +10553,9 @@ taxidriv // [1984 Graphic Techno]
xyonix // [1989 Philko]
gt507uk // (c) 1986 Grayhound Electronics
gtsers8 // (c) 1984 Greyhound Electronics
+gtsers8a // (c) 1984 Greyhound Electronics
gtsers9 // (c) 1984 Greyhound Electronics
gtsers10 // (c) 1984 Greyhound Electronics
-gtsers10a // (c) 1984 Greyhound Electronics
gtsers11 // (c) 1984 Greyhound Electronics
gtsers11a // (c) 1984 Greyhound Electronics
gtsers12 // (c) 1984 Greyhound Electronics
@@ -10596,6 +10780,7 @@ heuksun // (c) 1998 Oksan / F2 System
bestri // (c) F2 System
silvmil // (c) 1995 Para
puzzlove // (c) 1994 Para
+puzzlovek // (c) 1994 Para
funybubl // (c) 1999 In Chang Electronic Co
funybublc // (c) 1999 Comad Industries
dcheese // (c) 1993 HAR
@@ -10661,7 +10846,8 @@ pitbossa // (c) 1983 Merit
pitbossa1 // (c) 1983 Merit
pitbossb // (c) 1983 Merit
pitbossc // (c) 1983 Merit
-casino5 // (c) 1983 Merit
+casino5 // (c) 1984 Merit
+mroundup // (c) 1984 Merit
trvwzh // (c) 1985 Merit
trvwzha // (c) 1985 Merit
trvwzhb // (c) 1985 Merit
@@ -10686,6 +10872,8 @@ riviera // (c) 1987 Merit
rivieraa // (c) 1986 Merit
rivierab // (c) 1986 Merit
americna // (c) 1987 Merit
+americnaa // (c) 1987 Merit
+meritjp // (c) 1987 Merit
dodgecty // (c) 1988 Merit
dodgectya // (c) 1986 Merit
dodgectyb // (c) 1986 Merit
@@ -10982,6 +11170,7 @@ lastfght // (c) 2000 Subsino
xplan // (c) 2006 Subsino
sliver // (c) 1996 Hollow Corp
+slivera //
intrscti // ????
pasha2 // (c) 1998 Dong Sung
trvmadns // (c) 1985 Thunderhead Inc.
@@ -11183,10 +11372,14 @@ pepp0040a // (c) 1987 IGT - International Game Technology
pepp0040b // (c) 1987 IGT - International Game Technology
pepp0041 // (c) 1987 IGT - International Game Technology
pepp0042 // (c) 1987 IGT - International Game Technology
+pepp0042a // (c) 1987 IGT - International Game Technology
pepp0043 // (c) 1987 IGT - International Game Technology
pepp0043a // (c) 1987 IGT - International Game Technology
pepp0043b // (c) 1987 IGT - International Game Technology
pepp0045 // (c) 1987 IGT - International Game Technology
+pepp0045a // (c) 1987 IGT - International Game Technology
+pepp0045b // (c) 1987 IGT - International Game Technology
+pepp0045c // (c) 1987 IGT - International Game Technology
pepp0046 // (c) 1987 IGT - International Game Technology
pepp0046a // (c) 1987 IGT - International Game Technology
pepp0046b // (c) 1987 IGT - International Game Technology
@@ -11196,6 +11389,7 @@ pepp0053 // (c) 1987 IGT - International Game Technology
pepp0055 // (c) 1987 IGT - International Game Technology
pepp0055a // (c) 1987 IGT - International Game Technology
pepp0055b // (c) 1987 IGT - International Game Technology
+pepp0055c // (c) 1987 IGT - International Game Technology
pepp0057 // (c) 1987 IGT - International Game Technology
pepp0057a // (c) 1987 IGT - International Game Technology
pepp0059 // (c) 1987 IGT - International Game Technology
@@ -11279,6 +11473,7 @@ pepp0426 // (c) 1987 IGT - International Game Technology
pepp0428 // (c) 1987 IGT - International Game Technology
pepp0429 // (c) 1987 IGT - International Game Technology
pepp0429a // (c) 1987 IGT - International Game Technology
+pepp0430 // (c) 1987 IGT - International Game Technology
pepp0431 // (c) 1987 IGT - International Game Technology
pepp0434 // (c) 1987 IGT - International Game Technology
pepp0447 // (c) 1987 IGT - International Game Technology
@@ -11289,6 +11484,7 @@ pepp0452 // (c) 1987 IGT - International Game Technology
pepp0454 // (c) 1987 IGT - International Game Technology
pepp0455 // (c) 1987 IGT - International Game Technology
pepp0458 // (c) 1987 IGT - International Game Technology
+pepp0459 // (c) 1987 IGT - International Game Technology
pepp0467 // (c) 1987 IGT - International Game Technology
pepp0488 // (c) 1987 IGT - International Game Technology
pepp0508 // (c) 1987 IGT - International Game Technology
@@ -11300,6 +11496,7 @@ pepp0514b // (c) 1987 IGT - International Game Technology
pepp0515 // (c) 1987 IGT - International Game Technology
pepp0515a // (c) 1987 IGT - International Game Technology
pepp0515b // (c) 1987 IGT - International Game Technology
+pepp0515c // (c) 1987 IGT - International Game Technology
pepp0516 // (c) 1987 IGT - International Game Technology
pepp0516a // (c) 1987 IGT - International Game Technology
pepp0516b // (c) 1987 IGT - International Game Technology
@@ -11310,6 +11507,7 @@ pepp0540 // (c) 1987 IGT - International Game Technology
pepp0542 // (c) 1987 IGT - International Game Technology
pepp0542a // (c) 1987 IGT - International Game Technology
pepp0550 // (c) 1987 IGT - International Game Technology
+pepp0555 // (c) 1987 IGT - International Game Technology
pepp0568 // (c) 1987 IGT - International Game Technology
pepp0585 // (c) 1987 IGT - International Game Technology
pepp0713 // (c) 1987 IGT - International Game Technology
@@ -11349,9 +11547,13 @@ pemg0183 // (c) 1994 IGT - International Game Technology
pemg0252 // (c) 1994 IGT - International Game Technology
pebe0014 // (c) 1994 IGT - International Game Technology
pebe0014a // (c) 1994 IGT - International Game Technology
+peke0004 // (c) 1994 IGT - International Game Technology
peke0017 // (c) 1994 IGT - International Game Technology
+peke1006 // (c) 1994 IGT - International Game Technology
peke1012 // (c) 1994 IGT - International Game Technology
+peke1012a // (c) 1994 IGT - International Game Technology
peke1013 // (c) 1994 IGT - International Game Technology
+peke1013a // (c) 1994 IGT - International Game Technology
peps0014 // (c) 1996 IGT - International Game Technology
peps0021 // (c) 1996 IGT - International Game Technology
peps0022 // (c) 1996 IGT - International Game Technology
@@ -11419,6 +11621,7 @@ pex0242p // (c) 1995 IGT - International Game Technology
pex0265p // (c) 1995 IGT - International Game Technology
pex0291p // (c) 1995 IGT - International Game Technology
pex0417p // (c) 1995 IGT - International Game Technology
+pex0426p // (c) 1995 IGT - International Game Technology
pex0430p // (c) 1995 IGT - International Game Technology
pex0434p // (c) 1995 IGT - International Game Technology
pex0447p // (c) 1995 IGT - International Game Technology
@@ -11482,6 +11685,7 @@ pex2150p // (c) 1995 IGT - International Game Technology
pex2172p // (c) 1995 IGT - International Game Technology
pex2172pa // (c) 1995 IGT - International Game Technology
pex2173p // (c) 1995 IGT - International Game Technology
+pex2179p // (c) 1995 IGT - International Game Technology
pex2180p // (c) 1995 IGT - International Game Technology
pex2241p // (c) 1995 IGT - International Game Technology
pex2244p // (c) 1995 IGT - International Game Technology
@@ -11495,6 +11699,7 @@ pex2275p // (c) 1995 IGT - International Game Technology
pex2276p // (c) 1995 IGT - International Game Technology
pex2283p // (c) 1995 IGT - International Game Technology
pex2284p // (c) 1995 IGT - International Game Technology
+pex2287p // (c) 1995 IGT - International Game Technology
pex2297p // (c) 1995 IGT - International Game Technology
pex2302p // (c) 1995 IGT - International Game Technology
pex2303p // (c) 1995 IGT - International Game Technology
@@ -11538,6 +11743,7 @@ pexm003p // (c) 1997 IGT - International Game Technology
pexm004p // (c) 1997 IGT - International Game Technology
pexm005p // (c) 1997 IGT - International Game Technology
pexm006p // (c) 1997 IGT - International Game Technology
+pexm006pa // (c) 1997 IGT - International Game Technology
pexm007p // (c) 1997 IGT - International Game Technology
pexm008p // (c) 1997 IGT - International Game Technology
pexm009p // (c) 1997 IGT - International Game Technology
@@ -11757,6 +11963,7 @@ showhand // (c) 2000 Astro Corp.
showhanc // (c) 2000 Astro Corp.
skilldrp // (c) 2002 Astro Corp.
speeddrp // (c) 2003 Astro Corp.
+dinodino // (c) 2003? Astro Corp.
astoneag // (c) 2004? Astro Corp.
winbingo // (c) 2005? Astro Corp.
winbingoa // (c) 2005? Astro Corp.
@@ -12225,7 +12432,7 @@ ssjkrpkr // (c) 1982 Southern Systems & Assembly, Ltd.
fastdrwp // Stern?
dphlunka // SMS Manufacturing Corp?
dphlunkb // SMS Manufacturing Corp?
-//pkii_dm // Unknown Poker PKII/DM (misplaced roms)
+pkii_dm // Unknown Poker PKII/DM
// Sanki Denshi Kogyo
pachifev // (c) 1983?
@@ -12831,7 +13038,7 @@ cdibios // Base unit
quizard // (c) TAB Austria 199?
quizard_17 // (c) TAB Austria 1996
quizard_12 // (c) TAB Austria 1996
-quizard_10 // (c) TAB Austria 1996
+quizard_10 // (c) TAB Austria 1996
quizard2 // (c) TAB Austria 1995
quizard2_22 // (c) TAB Austria 199?
quizard3 // (c) TAB Austria 1996
@@ -13026,7 +13233,7 @@ tvpoker // (c) 197? A-1 Supply
sburners // (c) 1975 Allied Leisure
fun4 // (c) 1976 Bailey
fun4a // (c) 1976 Bailey
-destdrby // (c) 1976 Chicago Coin
+dmodrbcc // (c) 1976 Chicago Coin
avenger // (c) 1975 Electra
attckexd // (c) 1977 Exidy
attckexd2 // (c) 1977 Exidy
@@ -13034,12 +13241,13 @@ deathrac // (c) 1976 Exidy
biplane4 // (c) 1976 Fun Games
take5 // (c) 1975 Fun Games
dpatrol // (c) 1977 PSE
-bballrmt // (c) 1974 Ramtek
-cleanswp // (c) 1974 Ramtek
vollyrmt // (c) 1973 Ramtek
+hockyrmt // (c) 1973 Ramtek
+soccrrmt // (c) 1973 Ramtek
wipeormt // (c) 1974 Ramtek
+cleanswp // (c) 1974 Ramtek
+bballrmt // (c) 1974 Ramtek
trivia // (c) 1976 Ramtek
-ramtek3 // (c) 197? Ramtek
monacogp // (c) 1980 Sega
monacogpa // (c) 1980 Sega
gunman // (c) 1977 Taito
@@ -32136,3 +32344,18 @@ amusco // 1987, Amusco.
cocoloco // 198?, Petaco S.A.
alinvade
+
+joystand // 1997 Yuvo
+chexx83 // 1983 ICE
+faceoffh // 1983 SoftLogic / Entertainment Enterprises
+
+// Doyle & Assoc.
+piggypas
+hoopshot
+rndrndqs
+fidlstix
+jackbean
+dumpump
+3lilpigs
+
+wackygtr // Wacky Gator
diff --git a/src/mess/audio/alesis.c b/src/mame/audio/alesis.c
index 7a253db43a2..7a253db43a2 100644
--- a/src/mess/audio/alesis.c
+++ b/src/mame/audio/alesis.c
diff --git a/src/mess/audio/arcadia.c b/src/mame/audio/arcadia.c
index 306932a0b44..306932a0b44 100644
--- a/src/mess/audio/arcadia.c
+++ b/src/mame/audio/arcadia.c
diff --git a/src/mess/audio/arcadia.h b/src/mame/audio/arcadia.h
index fa54ba1c0a1..fa54ba1c0a1 100644
--- a/src/mess/audio/arcadia.h
+++ b/src/mame/audio/arcadia.h
diff --git a/src/mame/audio/atarijsa.c b/src/mame/audio/atarijsa.c
index 69180d61031..b4a8cc67501 100644
--- a/src/mame/audio/atarijsa.c
+++ b/src/mame/audio/atarijsa.c
@@ -629,6 +629,7 @@ atari_jsa_i_device::atari_jsa_i_device(const machine_config &mconfig, const char
: atari_jsa_base_device(mconfig, ATARI_JSA_I, "Atari JSA I Sound Board", tag, owner, clock, "atjsa1", 2),
m_pokey(*this, "pokey"),
m_tms5220(*this, "tms"),
+ m_jsai(*this, "JSAI"),
m_pokey_volume(1.0),
m_tms5220_volume(1.0)
{
@@ -653,7 +654,7 @@ READ8_MEMBER( atari_jsa_i_device::rdio_r )
// 0x01 = coin 1
//
- UINT8 result = ioport("JSAI")->read();
+ UINT8 result = m_jsai->read();
if (!m_test_read_cb())
result ^= 0x80;
if (m_tms5220 != NULL && m_tms5220->readyq_r() == 0)
@@ -841,6 +842,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 clock)
: atari_jsa_oki_base_device(mconfig, ATARI_JSA_II, "Atari JSA II Sound Board", tag, owner, clock, "atjsa2", 1)
+ , m_jsaii(*this, "JSAII")
{
}
@@ -863,7 +865,7 @@ READ8_MEMBER( atari_jsa_ii_device::rdio_r )
// 0x01 = coin 1
//
- UINT8 result = ioport("JSAII")->read();
+ UINT8 result = m_jsaii->read();
if (!m_test_read_cb())
result ^= 0x80;
@@ -904,11 +906,13 @@ 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 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::atari_jsa_iii_device(const machine_config &mconfig, device_type devtype, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, int channels)
: atari_jsa_oki_base_device(mconfig, devtype, name, tag, owner, clock, shortname, channels)
+ , m_jsaiii(*this, "JSAIII")
{
}
@@ -931,7 +935,7 @@ READ8_MEMBER( atari_jsa_iii_device::rdio_r )
// 0x01 = coin R (active high)
//
- UINT8 result = ioport("JSAIII")->read();
+ UINT8 result = m_jsaiii->read();
if (!m_test_read_cb())
result ^= 0x90;
return result;
diff --git a/src/mame/audio/atarijsa.h b/src/mame/audio/atarijsa.h
index e1866d1c75c..3ae12a653dc 100644
--- a/src/mame/audio/atarijsa.h
+++ b/src/mame/audio/atarijsa.h
@@ -200,6 +200,7 @@ protected:
// devices
optional_device<pokey_device> m_pokey;
optional_device<tms5220_device> m_tms5220;
+ required_ioport m_jsai;
// internal state
double m_pokey_volume;
@@ -222,6 +223,8 @@ protected:
// device level overrides
virtual machine_config_constructor device_mconfig_additions() const;
virtual ioport_constructor device_input_ports() const;
+
+ required_ioport m_jsaii;
};
@@ -245,6 +248,8 @@ protected:
// device level overrides
virtual machine_config_constructor device_mconfig_additions() const;
virtual ioport_constructor device_input_ports() const;
+
+ required_ioport m_jsaiii;
};
diff --git a/src/mame/audio/cage.c b/src/mame/audio/cage.c
index 9f3718e5114..7253f46de74 100644
--- a/src/mame/audio/cage.c
+++ b/src/mame/audio/cage.c
@@ -337,7 +337,7 @@ void atari_cage_device::update_serial()
m_serial_period_per_word = bit_clock_period * (8 * (((tms32031_io_regs[SPORT_GLOBAL_CTL] >> 18) & 3) + 1));
/* compute the step value to stretch this to the sample_rate */
- freq = ATTOSECONDS_TO_HZ(m_serial_period_per_word.attoseconds) / DAC_BUFFER_CHANNELS;
+ freq = ATTOSECONDS_TO_HZ(m_serial_period_per_word.attoseconds()) / DAC_BUFFER_CHANNELS;
if (freq > 0 && freq < 100000)
{
dmadac_set_frequency(&m_dmadac[0], DAC_BUFFER_CHANNELS, freq);
@@ -409,7 +409,7 @@ WRITE32_MEMBER( atari_cage_device::tms32031_io_w )
case SPORT_DATA_TX:
#if (DAC_BUFFER_CHANNELS == 4)
- if ((int)ATTOSECONDS_TO_HZ(m_serial_period_per_word.attoseconds) == 22050*4 && (tms32031_io_regs[SPORT_RX_CTL] & 0xff) == 0x62)
+ if ((int)ATTOSECONDS_TO_HZ(m_serial_period_per_word.attoseconds()) == 22050*4 && (tms32031_io_regs[SPORT_RX_CTL] & 0xff) == 0x62)
tms32031_io_regs[SPORT_RX_CTL] ^= 0x800;
#endif
break;
diff --git a/src/mess/audio/channelf.c b/src/mame/audio/channelf.c
index c9e07cbd43c..c9e07cbd43c 100644
--- a/src/mess/audio/channelf.c
+++ b/src/mame/audio/channelf.c
diff --git a/src/mess/audio/channelf.h b/src/mame/audio/channelf.h
index f227eb67c07..f227eb67c07 100644
--- a/src/mess/audio/channelf.h
+++ b/src/mame/audio/channelf.h
diff --git a/src/mess/audio/dai_snd.c b/src/mame/audio/dai_snd.c
index ae0bf3c79c3..ae0bf3c79c3 100644
--- a/src/mess/audio/dai_snd.c
+++ b/src/mame/audio/dai_snd.c
diff --git a/src/mess/audio/dai_snd.h b/src/mame/audio/dai_snd.h
index c1e5ae598e7..c1e5ae598e7 100644
--- a/src/mess/audio/dai_snd.h
+++ b/src/mame/audio/dai_snd.h
diff --git a/src/mess/audio/dave.c b/src/mame/audio/dave.c
index 4adae892e16..4adae892e16 100644
--- a/src/mess/audio/dave.c
+++ b/src/mame/audio/dave.c
diff --git a/src/mess/audio/dave.h b/src/mame/audio/dave.h
index 9bab709bd62..9bab709bd62 100644
--- a/src/mess/audio/dave.h
+++ b/src/mame/audio/dave.h
diff --git a/src/mame/audio/dcs.c b/src/mame/audio/dcs.c
index 591a17647eb..3e41f761ade 100644
--- a/src/mame/audio/dcs.c
+++ b/src/mame/audio/dcs.c
@@ -1955,7 +1955,7 @@ void dcs_audio_device::recompute_sample_rate()
/* now put it down to samples, so we know what the channel frequency has to be */
sample_period = sample_period * (16 * m_channels);
- dmadac_set_frequency(&m_dmadac[0], m_channels, ATTOSECONDS_TO_HZ(sample_period.attoseconds));
+ dmadac_set_frequency(&m_dmadac[0], m_channels, ATTOSECONDS_TO_HZ(sample_period.attoseconds()));
dmadac_enable(&m_dmadac[0], m_channels, 1);
/* fire off a timer which will hit every half-buffer */
diff --git a/src/mess/audio/gamate.c b/src/mame/audio/gamate.c
index 15ed48d22b6..19555dd7c44 100644
--- a/src/mess/audio/gamate.c
+++ b/src/mame/audio/gamate.c
@@ -193,7 +193,7 @@ WRITE8_MEMBER( gamate_sound_device::device_w )
size = reg[chan*2] | ((reg[chan*2+1] & 0xf) << 8);
if (size)
{
- m_channels[chan].size= (int) (machine().sample_rate() * size*ClockDelay / machine().device("maincpu")->unscaled_clock());
+ m_channels[chan].size= (int) (machine().sample_rate() * size*ClockDelay / m_clock);
}
else
{
@@ -205,7 +205,7 @@ WRITE8_MEMBER( gamate_sound_device::device_w )
size=data&0x1f;
if (size==0)
size=1;
- noise.step= machine().device("maincpu")->unscaled_clock() / (1.0*ClockDelay*machine().sample_rate()*size);
+ noise.step= m_clock / (1.0*ClockDelay*machine().sample_rate()*size);
break;
case 7:
m_channels[Right].full_cycle=data&1;
@@ -229,7 +229,7 @@ WRITE8_MEMBER( gamate_sound_device::device_w )
size = reg[0xb] | ((reg[0xc]) << 8);
if (size==0)
size=1;
- envelope.step= machine().device("maincpu")->unscaled_clock() / (1.0*ClockDelay*machine().sample_rate()*size);
+ envelope.step= m_clock / (1.0*ClockDelay*machine().sample_rate()*size);
break;
case 0xd:
envelope.control=data&0xf;
diff --git a/src/mess/audio/gb.c b/src/mame/audio/gb.c
index 71925f030bf..181eb7ad2fb 100644
--- a/src/mess/audio/gb.c
+++ b/src/mame/audio/gb.c
@@ -506,11 +506,11 @@ void gameboy_sound_device::sound_w_internal( int offset, UINT8 data )
if (!m_snd_control.on)
{
sound_w_internal(NR10, 0x80);
- sound_w_internal(NR11, 0x3F);
- sound_w_internal(NR12, 0x00);
- sound_w_internal(NR13, 0xFE);
+ sound_w_internal(NR11, 0xBF);
+ sound_w_internal(NR12, 0xF3);
+ sound_w_internal(NR13, 0xFF);
sound_w_internal(NR14, 0xBF);
-// sound_w_internal(NR20, 0xFF);
+ //sound_w_internal(NR20, 0xFF);
sound_w_internal(NR21, 0x3F);
sound_w_internal(NR22, 0x00);
sound_w_internal(NR23, 0xFF);
@@ -520,13 +520,13 @@ void gameboy_sound_device::sound_w_internal( int offset, UINT8 data )
sound_w_internal(NR32, 0x9F);
sound_w_internal(NR33, 0xFF);
sound_w_internal(NR34, 0xBF);
-// sound_w_internal(NR40, 0xFF);
+ //sound_w_internal(NR40, 0xFF);
sound_w_internal(NR41, 0xFF);
sound_w_internal(NR42, 0x00);
sound_w_internal(NR43, 0x00);
sound_w_internal(NR44, 0xBF);
- sound_w_internal(NR50, 0x00);
- sound_w_internal(NR51, 0x00);
+ sound_w_internal(NR50, 0x77);
+ sound_w_internal(NR51, 0xF3);
m_snd_1.on = 0;
m_snd_2.on = 0;
m_snd_3.on = 0;
diff --git a/src/mess/audio/gb.h b/src/mame/audio/gb.h
index c86cad02b76..c86cad02b76 100644
--- a/src/mess/audio/gb.h
+++ b/src/mame/audio/gb.h
diff --git a/src/mame/audio/hng64.c b/src/mame/audio/hng64.c
index fe8775e702a..11caed9b98b 100644
--- a/src/mame/audio/hng64.c
+++ b/src/mame/audio/hng64.c
@@ -1,5 +1,5 @@
// license:LGPL-2.1+
-// copyright-holders:David Haywood, Angelo Salese, ElSemi, Andrew Gardner, Andrew Zaferakis
+// copyright-holders:David Haywood, Angelo Salese, ElSemi, Andrew Gardner
/* Hyper NeoGeo 64 Audio */
// uses a V53A ( == V33A with extra peripherals eg. DMA, Timers, MMU giving virtual 24-bit address space etc.)
@@ -207,7 +207,7 @@ WRITE16_MEMBER(hng64_state::hng64_sound_port_0008_w)
READ16_MEMBER(hng64_state::hng64_sound_port_0008_r)
{
// read in irq5
- printf("%08x: hng64_sound_port_0008_r mask (%04x)\n", space.device().safe_pc(), mem_mask);
+ //printf("%08x: hng64_sound_port_0008_r mask (%04x)\n", space.device().safe_pc(), mem_mask);
return 0;
}
@@ -276,12 +276,12 @@ WRITE16_MEMBER(hng64_state::sound_comms_w)
case 0xa:
/* correct? */
m_audiocpu->set_input_line(5, CLEAR_LINE);
- if(data)
- printf("IRQ ACK %02x?\n",data);
+ //if(data)
+ // printf("IRQ ACK %02x?\n",data);
return;
}
- printf("SOUND W %02x %04x\n",offset*2,data);
+ //printf("SOUND W %02x %04x\n",offset*2,data);
}
READ16_MEMBER(hng64_state::sound_comms_r)
@@ -293,7 +293,7 @@ READ16_MEMBER(hng64_state::sound_comms_r)
case 0x06:
return main_latch[1];
}
- printf("SOUND R %02x\n",offset*2);
+ //printf("SOUND R %02x\n",offset*2);
return 0;
}
@@ -370,7 +370,7 @@ WRITE_LINE_MEMBER(hng64_state::tcu_tm2_cb)
if(i > 7)
i = 7;
- printf("trigger %02x %d\n",i,state);
+ //printf("trigger %02x %d\n",i,state);
//if(machine().input().code_pressed_once(KEYCODE_C))
{
diff --git a/src/mame/audio/irem.c b/src/mame/audio/irem.c
index 06de09520d7..6a765ce5a69 100644
--- a/src/mame/audio/irem.c
+++ b/src/mame/audio/irem.c
@@ -12,15 +12,31 @@
#include "audio/irem.h"
-const device_type IREM_AUDIO = &device_creator<irem_audio_device>;
-
-irem_audio_device::irem_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
- : device_t(mconfig, IREM_AUDIO, "Irem Audio", tag, owner, clock, "irem_audio", __FILE__),
- device_sound_interface(mconfig, *this),
- m_port1(0),
- m_port2(0)
- //m_ay_45L(*this, "ay_45l"),
- //m_ay_45M(*this, "ay_45m")
+const device_type IREM_M62_AUDIO = &device_creator<m62_audio_device>;
+const device_type IREM_M52_SOUNDC_AUDIO = &device_creator<m52_soundc_audio_device>;
+const device_type IREM_M52_LARGE_AUDIO = &device_creator<m52_large_audio_device>;
+
+irem_audio_device::irem_audio_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source)
+ : device_t(mconfig, type, name, tag, owner, clock, shortname, source),
+ m_port1(0),
+ m_port2(0)
+ //m_ay_45L(*this, "ay_45l"),
+ //m_ay_45M(*this, "ay_45m")
+{
+}
+
+m62_audio_device::m62_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : irem_audio_device(mconfig, IREM_M62_AUDIO, "Irem M62 Audio", tag, owner, clock, "irem_m62_audio", __FILE__)
+{
+}
+
+m52_soundc_audio_device::m52_soundc_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : irem_audio_device(mconfig, IREM_M52_SOUNDC_AUDIO, "Irem M52 SoundC Audio", tag, owner, clock, "irem_m52_soundc_audio", __FILE__)
+{
+}
+
+m52_large_audio_device::m52_large_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : irem_audio_device(mconfig, IREM_M52_LARGE_AUDIO, "Irem M52 Large Audio", tag, owner, clock, "irem_m52_large_audio", __FILE__)
{
}
@@ -40,16 +56,16 @@ void irem_audio_device::device_config_complete()
void irem_audio_device::device_start()
{
- m_adpcm1 = machine().device<msm5205_device>("msm1");
- m_adpcm2 = machine().device<msm5205_device>("msm2");
- m_ay_45L = machine().device<ay8910_device>("ay_45l");
- m_ay_45M = machine().device<ay8910_device>("ay_45m");
+ m_adpcm1 = subdevice<msm5205_device>("msm1");
+ m_adpcm2 = subdevice<msm5205_device>("msm2");
+ m_ay_45L = subdevice<ay8910_device>("ay_45l");
+ m_ay_45M = subdevice<ay8910_device>("ay_45m");
- m_audio_BD = machine().device<netlist_mame_logic_input_t>("snd_nl:ibd");
- m_audio_SD = machine().device<netlist_mame_logic_input_t>("snd_nl:isd");
- m_audio_OH = machine().device<netlist_mame_logic_input_t>("snd_nl:ioh");
- m_audio_CH = machine().device<netlist_mame_logic_input_t>("snd_nl:ich");
- m_audio_SINH = machine().device<netlist_mame_logic_input_t>("snd_nl:sinh");
+ m_audio_BD = subdevice<netlist_mame_logic_input_t>("snd_nl:ibd");
+ m_audio_SD = subdevice<netlist_mame_logic_input_t>("snd_nl:isd");
+ m_audio_OH = subdevice<netlist_mame_logic_input_t>("snd_nl:ioh");
+ m_audio_CH = subdevice<netlist_mame_logic_input_t>("snd_nl:ich");
+ m_audio_SINH = subdevice<netlist_mame_logic_input_t>("snd_nl:sinh");
save_item(NAME(m_port1));
save_item(NAME(m_port2));
@@ -71,7 +87,7 @@ WRITE8_MEMBER( irem_audio_device::cmd_w )
if ((data & 0x80) == 0)
drvstate->soundlatch_byte_w(space, 0, data & 0x7f);
else
- space.machine().device("iremsound")->execute().set_input_line(0, ASSERT_LINE);
+ subdevice("iremsound")->execute().set_input_line(0, ASSERT_LINE);
}
@@ -139,8 +155,8 @@ READ8_MEMBER( irem_audio_device::m6803_port2_r )
* Pin21, 6803 (Port 21) tied with 4.7k to +5V
*
*/
- printf("port2 read\n");
- return 0;
+ //printf("port2 read\n"); // used by 10yard
+ return 0x0;
}
@@ -193,7 +209,7 @@ WRITE8_MEMBER( irem_audio_device::ay8910_45L_porta_w )
WRITE8_MEMBER( irem_audio_device::sound_irq_ack_w )
{
- space.machine().device("iremsound")->execute().set_input_line(0, CLEAR_LINE);
+ subdevice("iremsound")->execute().set_input_line(0, CLEAR_LINE);
}
@@ -228,7 +244,7 @@ WRITE8_MEMBER( irem_audio_device::m62_adpcm_w )
void irem_audio_device::adpcm_int(int st)
{
- machine().device("iremsound")->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
+ subdevice("iremsound")->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
/* the first MSM5205 clocks the second */
if (m_adpcm2 != NULL)
@@ -352,31 +368,31 @@ DISCRETE_SOUND_END
/* complete address map verified from Moon Patrol/10 Yard Fight schematics */
/* large map uses 8k ROMs, small map uses 4k ROMs; this is selected via a jumper */
-static ADDRESS_MAP_START( m52_small_sound_map, AS_PROGRAM, 8, driver_device )
+static ADDRESS_MAP_START( m52_small_sound_map, AS_PROGRAM, 8, irem_audio_device )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
- AM_RANGE(0x0000, 0x0fff) AM_DEVWRITE("irem_audio", irem_audio_device, m52_adpcm_w)
- AM_RANGE(0x1000, 0x1fff) AM_DEVWRITE("irem_audio", irem_audio_device, sound_irq_ack_w)
+ AM_RANGE(0x0000, 0x0fff) AM_WRITE(m52_adpcm_w)
+ AM_RANGE(0x1000, 0x1fff) AM_WRITE(sound_irq_ack_w)
AM_RANGE(0x2000, 0x7fff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( m52_large_sound_map, AS_PROGRAM, 8, driver_device )
- AM_RANGE(0x0000, 0x1fff) AM_DEVWRITE("irem_audio", irem_audio_device, m52_adpcm_w)
- AM_RANGE(0x2000, 0x3fff) AM_DEVWRITE("irem_audio", irem_audio_device, sound_irq_ack_w)
+static ADDRESS_MAP_START( m52_large_sound_map, AS_PROGRAM, 8, irem_audio_device )
+ AM_RANGE(0x0000, 0x1fff) AM_WRITE(m52_adpcm_w)
+ AM_RANGE(0x2000, 0x3fff) AM_WRITE(sound_irq_ack_w)
AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END
/* complete address map verified from Kid Niki schematics */
-static ADDRESS_MAP_START( m62_sound_map, AS_PROGRAM, 8, driver_device )
- AM_RANGE(0x0800, 0x0800) AM_MIRROR(0xf7fc) AM_DEVWRITE("irem_audio", irem_audio_device, sound_irq_ack_w)
- AM_RANGE(0x0801, 0x0802) AM_MIRROR(0xf7fc) AM_DEVWRITE("irem_audio", irem_audio_device, m62_adpcm_w)
+static ADDRESS_MAP_START( m62_sound_map, AS_PROGRAM, 8, irem_audio_device )
+ AM_RANGE(0x0800, 0x0800) AM_MIRROR(0xf7fc) AM_WRITE(sound_irq_ack_w)
+ AM_RANGE(0x0801, 0x0802) AM_MIRROR(0xf7fc) AM_WRITE(m62_adpcm_w)
AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( irem_sound_portmap, AS_IO, 8, driver_device )
- AM_RANGE(M6801_PORT1, M6801_PORT1) AM_DEVREADWRITE("irem_audio", irem_audio_device, m6803_port1_r, m6803_port1_w)
- AM_RANGE(M6801_PORT2, M6801_PORT2) AM_DEVREADWRITE("irem_audio", irem_audio_device, m6803_port2_r, m6803_port2_w)
+static ADDRESS_MAP_START( irem_sound_portmap, AS_IO, 8, irem_audio_device )
+ AM_RANGE(M6801_PORT1, M6801_PORT1) AM_READWRITE(m6803_port1_r, m6803_port1_w)
+ AM_RANGE(M6801_PORT2, M6801_PORT2) AM_READWRITE(m6803_port2_r, m6803_port2_w)
ADDRESS_MAP_END
/*
@@ -399,10 +415,10 @@ NETLIST_START(kidniki_interface)
#if (USE_FRONTIERS)
SOLVER(Solver, 18000)
- PARAM(Solver.ACCURACY, 1e-7)
+ PARAM(Solver.ACCURACY, 1e-8)
PARAM(Solver.NR_LOOPS, 300)
PARAM(Solver.GS_LOOPS, 1)
- PARAM(Solver.GS_THRESHOLD, 99)
+ PARAM(Solver.GS_THRESHOLD, 6)
PARAM(Solver.ITERATIVE, "SOR")
PARAM(Solver.PARALLEL, 1)
PARAM(Solver.SOR_FACTOR, 1.00)
@@ -452,7 +468,7 @@ NETLIST_START(kidniki_interface)
ALIAS(I_SINH0, SINH_DUMMY.2)
#endif
- NET_MODEL(".model AY8910PORT FAMILY(OVL=0.05 OVH=4.95 ORL=100.0 ORH=0.5k)")
+ NET_MODEL("AY8910PORT FAMILY(OVL=0.05 OVH=4.95 ORL=100.0 ORH=0.5k)")
LOGIC_INPUT(I_SD0, 1, "AY8910PORT")
//CLOCK(I_SD0, 5)
@@ -496,13 +512,11 @@ static MACHINE_CONFIG_FRAGMENT( irem_audio_base )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
- MCFG_SOUND_ADD("irem_audio", IREM_AUDIO, 0)
-
MCFG_SOUND_ADD("ay_45m", AY8910, XTAL_3_579545MHz/4) /* verified on pcb */
MCFG_AY8910_OUTPUT_TYPE(AY8910_RESISTOR_OUTPUT)
MCFG_AY8910_RES_LOADS(2000.0, 2000.0, 2000.0)
- MCFG_AY8910_PORT_A_READ_CB(READ8(driver_device, soundlatch_byte_r))
- MCFG_AY8910_PORT_B_WRITE_CB(DEVWRITE8("irem_audio", irem_audio_device, ay8910_45M_portb_w))
+ MCFG_AY8910_PORT_A_READ_CB(DEVREAD8(":", driver_device, soundlatch_byte_r))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(irem_audio_device, ay8910_45M_portb_w))
MCFG_SOUND_ROUTE_EX(0, "snd_nl", 1.0, 0)
MCFG_SOUND_ROUTE_EX(1, "snd_nl", 1.0, 1)
MCFG_SOUND_ROUTE_EX(2, "snd_nl", 1.0, 2)
@@ -510,13 +524,13 @@ static MACHINE_CONFIG_FRAGMENT( irem_audio_base )
MCFG_SOUND_ADD("ay_45l", AY8910, XTAL_3_579545MHz/4) /* verified on pcb */
MCFG_AY8910_OUTPUT_TYPE(AY8910_RESISTOR_OUTPUT)
MCFG_AY8910_RES_LOADS(2000.0, 2000.0, 2000.0)
- MCFG_AY8910_PORT_A_WRITE_CB(DEVWRITE8("irem_audio", irem_audio_device, ay8910_45L_porta_w))
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(irem_audio_device, ay8910_45L_porta_w))
MCFG_SOUND_ROUTE_EX(0, "snd_nl", 1.0, 3)
MCFG_SOUND_ROUTE_EX(1, "snd_nl", 1.0, 4)
MCFG_SOUND_ROUTE_EX(2, "snd_nl", 1.0, 5)
MCFG_SOUND_ADD("msm1", MSM5205, XTAL_384kHz) /* verified on pcb */
- MCFG_MSM5205_VCLK_CB(DEVWRITELINE("irem_audio", irem_audio_device, adpcm_int)) /* interrupt function */
+ 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_SOUND_ROUTE_EX(0, "snd_nl", 1.0, 6)
@@ -567,23 +581,21 @@ MACHINE_CONFIG_FRAGMENT( m52_sound_c_audio )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
- MCFG_SOUND_ADD("irem_audio", IREM_AUDIO, 0)
-
MCFG_SOUND_ADD("ay_45m", AY8910, XTAL_3_579545MHz/4) /* verified on pcb */
MCFG_AY8910_OUTPUT_TYPE(AY8910_SINGLE_OUTPUT | AY8910_DISCRETE_OUTPUT)
MCFG_AY8910_RES_LOADS(470, 0, 0)
- MCFG_AY8910_PORT_A_READ_CB(READ8(driver_device, soundlatch_byte_r))
- MCFG_AY8910_PORT_B_WRITE_CB(DEVWRITE8("irem_audio", irem_audio_device, ay8910_45M_portb_w))
+ MCFG_AY8910_PORT_A_READ_CB(DEVREAD8(":", driver_device, soundlatch_byte_r))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(irem_audio_device, ay8910_45M_portb_w))
MCFG_SOUND_ROUTE_EX(0, "filtermix", 1.0, 0)
MCFG_SOUND_ADD("ay_45l", AY8910, XTAL_3_579545MHz/4) /* verified on pcb */
MCFG_AY8910_OUTPUT_TYPE(AY8910_SINGLE_OUTPUT | AY8910_DISCRETE_OUTPUT)
MCFG_AY8910_RES_LOADS(470, 0, 0)
- MCFG_AY8910_PORT_A_WRITE_CB(DEVWRITE8("irem_audio", irem_audio_device, ay8910_45L_porta_w))
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(irem_audio_device, ay8910_45L_porta_w))
MCFG_SOUND_ROUTE_EX(0, "filtermix", 1.0, 1)
MCFG_SOUND_ADD("msm1", MSM5205, XTAL_384kHz) /* verified on pcb */
- MCFG_MSM5205_VCLK_CB(DEVWRITELINE("irem_audio", irem_audio_device, adpcm_int)) /* interrupt function */
+ 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_SOUND_ROUTE_EX(0, "filtermix", 1.0, 2)
@@ -593,11 +605,38 @@ MACHINE_CONFIG_FRAGMENT( m52_sound_c_audio )
MACHINE_CONFIG_END
-MACHINE_CONFIG_DERIVED( m52_large_audio, irem_audio_base ) /* 10 yard fight */
+MACHINE_CONFIG_FRAGMENT( m52_large_audio) /* 10 yard fight */
/* basic machine hardware */
- MCFG_CPU_MODIFY("iremsound")
+ MCFG_CPU_ADD("iremsound", M6803, XTAL_3_579545MHz) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(m52_large_sound_map)
+ MCFG_CPU_IO_MAP(irem_sound_portmap)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+
+ MCFG_SOUND_ADD("ay_45m", AY8910, XTAL_3_579545MHz/4) /* verified on pcb */
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_SINGLE_OUTPUT | AY8910_DISCRETE_OUTPUT)
+ MCFG_AY8910_RES_LOADS(470, 0, 0)
+ MCFG_AY8910_PORT_A_READ_CB(DEVREAD8(":", driver_device, soundlatch_byte_r))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(irem_audio_device, ay8910_45M_portb_w))
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
+
+ MCFG_SOUND_ADD("ay_45l", AY8910, XTAL_3_579545MHz/4) /* verified on pcb */
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_SINGLE_OUTPUT | AY8910_DISCRETE_OUTPUT)
+ MCFG_AY8910_RES_LOADS(470, 0, 0)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(irem_audio_device, ay8910_45L_porta_w))
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
+
+ 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_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_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
+
MACHINE_CONFIG_END
@@ -608,10 +647,17 @@ MACHINE_CONFIG_DERIVED( m62_audio, irem_audio_base )
MCFG_CPU_PROGRAM_MAP(m62_sound_map)
MACHINE_CONFIG_END
-//-------------------------------------------------
-// sound_stream_update - handle a stream update
-//-------------------------------------------------
+machine_config_constructor m62_audio_device::device_mconfig_additions() const
+{
+ return MACHINE_CONFIG_NAME( m62_audio );
+}
+
+machine_config_constructor m52_soundc_audio_device::device_mconfig_additions() const
+{
+ return MACHINE_CONFIG_NAME( m52_sound_c_audio );
+}
-void irem_audio_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples)
+machine_config_constructor m52_large_audio_device::device_mconfig_additions() const
{
+ return MACHINE_CONFIG_NAME( m52_large_audio );
}
diff --git a/src/mame/audio/irem.h b/src/mame/audio/irem.h
index aa59e4e5c63..4e7fd6161a8 100644
--- a/src/mame/audio/irem.h
+++ b/src/mame/audio/irem.h
@@ -4,11 +4,10 @@
#include "sound/msm5205.h"
#include "machine/netlist.h"
-class irem_audio_device : public device_t,
- public device_sound_interface
+class irem_audio_device : public device_t
{
public:
- irem_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+ irem_audio_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source);
~irem_audio_device() {}
DECLARE_WRITE8_MEMBER( cmd_w );
@@ -31,9 +30,6 @@ protected:
virtual void device_config_complete();
virtual void device_start();
- // sound stream update overrides
- virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples);
-
private:
// internal state
UINT8 m_port1;
@@ -53,8 +49,31 @@ private:
netlist_mame_logic_input_t * m_audio_CH;
};
-MACHINE_CONFIG_EXTERN( m52_sound_c_audio );
-MACHINE_CONFIG_EXTERN( m52_large_audio );
-MACHINE_CONFIG_EXTERN( m62_audio );
+class m62_audio_device : public irem_audio_device
+{
+public:
+ m62_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+ virtual machine_config_constructor device_mconfig_additions() const;
+};
+
+class m52_soundc_audio_device : public irem_audio_device
+{
+public:
+ m52_soundc_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+ virtual machine_config_constructor device_mconfig_additions() const;
+};
+
+class m52_large_audio_device : public irem_audio_device
+{
+public:
+ m52_large_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+ virtual machine_config_constructor device_mconfig_additions() const;
+};
+
+//MACHINE_CONFIG_EXTERN( m52_sound_c_audio );
+//MACHINE_CONFIG_EXTERN( m52_large_audio );
+//MACHINE_CONFIG_EXTERN( m62_audio );
-extern const device_type IREM_AUDIO;
+extern const device_type IREM_M62_AUDIO;
+extern const device_type IREM_M52_SOUNDC_AUDIO;
+extern const device_type IREM_M52_LARGE_AUDIO;
diff --git a/src/mame/audio/leland.c b/src/mame/audio/leland.c
index 1e3ba863bce..d860cf43a2a 100644
--- a/src/mame/audio/leland.c
+++ b/src/mame/audio/leland.c
@@ -128,7 +128,7 @@ WRITE_LINE_MEMBER(leland_80186_sound_device::i80186_tmr1_w)
{
if (m_ext_active && (m_ext_start < m_ext_stop))
{
- m_dac_sample[7] = (m_ext_base[m_ext_start] << 8) - 0x8000;
+ m_dac4->write_signed8(m_ext_base[m_ext_start]);
m_ext_start++;
}
}
@@ -137,7 +137,19 @@ WRITE_LINE_MEMBER(leland_80186_sound_device::i80186_tmr1_w)
static MACHINE_CONFIG_FRAGMENT( leland_80186_sound )
MCFG_SPEAKER_STANDARD_MONO("speaker")
- MCFG_SOUND_ADD("dac", DAC, 0)
+ MCFG_SOUND_ADD("dac1", DAC, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.40)
+ MCFG_SOUND_ADD("dac2", DAC, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.40)
+ MCFG_SOUND_ADD("dac3", DAC, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.40)
+ MCFG_SOUND_ADD("dac4", DAC, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.40)
+ MCFG_SOUND_ADD("dac5", DAC, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.40)
+ MCFG_SOUND_ADD("dac6", DAC, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.40)
+ MCFG_SOUND_ADD("dac7", DAC, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.00)
MCFG_DEVICE_ADD("pit0", PIT8254, 0)
@@ -159,8 +171,22 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_FRAGMENT( redline_80186_sound )
MCFG_SPEAKER_STANDARD_MONO("speaker")
- MCFG_SOUND_ADD("dac", DAC, 0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.00)
+ MCFG_SOUND_ADD("dac1", DAC, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.40)
+ MCFG_SOUND_ADD("dac2", DAC, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.40)
+ MCFG_SOUND_ADD("dac3", DAC, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.40)
+ MCFG_SOUND_ADD("dac4", DAC, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.40)
+ MCFG_SOUND_ADD("dac5", DAC, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.40)
+ MCFG_SOUND_ADD("dac6", DAC, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.40)
+ MCFG_SOUND_ADD("dac7", DAC, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.40)
+ MCFG_SOUND_ADD("dac8", DAC, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.40)
MCFG_DEVICE_ADD("pit0", PIT8254, 0)
MCFG_PIT8253_CLK0(7000000)
@@ -186,7 +212,15 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_FRAGMENT( ataxx_80186_sound )
MCFG_SPEAKER_STANDARD_MONO("speaker")
- MCFG_SOUND_ADD("dac", DAC, 0)
+ MCFG_SOUND_ADD("dac1", DAC, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.40)
+ MCFG_SOUND_ADD("dac2", DAC, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.40)
+ MCFG_SOUND_ADD("dac3", DAC, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.40)
+ MCFG_SOUND_ADD("dac4", DAC, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.40)
+ MCFG_SOUND_ADD("dac7", DAC, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.00)
MCFG_DEVICE_ADD("pit0", PIT8254, 0)
@@ -200,7 +234,15 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_FRAGMENT( wsf_80186_sound )
MCFG_SPEAKER_STANDARD_MONO("speaker")
- MCFG_SOUND_ADD("dac", DAC, 0)
+ MCFG_SOUND_ADD("dac1", DAC, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.40)
+ MCFG_SOUND_ADD("dac2", DAC, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.40)
+ MCFG_SOUND_ADD("dac3", DAC, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.40)
+ MCFG_SOUND_ADD("dac4", DAC, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.40)
+ MCFG_SOUND_ADD("dac7", DAC, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.00)
/* sound hardware */
@@ -255,8 +297,6 @@ void leland_80186_sound_device::device_start()
save_item(NAME(m_ext_start));
save_item(NAME(m_ext_stop));
save_item(NAME(m_ext_active));
- save_item(NAME(m_dac_sample));
- save_item(NAME(m_dac_volume));
// zerofill
m_peripheral = 0;
@@ -269,25 +309,12 @@ void leland_80186_sound_device::device_start()
m_ext_stop = 0;
m_ext_active = 0;
m_ext_base = NULL;
- memset(m_dac_sample, 0, sizeof(m_dac_sample));
- memset(m_dac_volume, 0x80, sizeof(m_dac_volume));
m_audiocpu = downcast<i80186_cpu_device *>(machine().device("audiocpu"));
/* determine which sound hardware is installed */
if (m_type == TYPE_WSF)
m_ext_base = machine().root_device().memregion("dac")->base();
-
- m_dac_timer = timer_alloc();
-}
-
-void leland_80186_sound_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
-{
- INT32 out = 0;
- for (int i = 0; i < 8; i++)
- out += m_dac_sample[i] * m_dac_volume[i];
-
- m_dac->write(out >> 10);
}
void leland_80186_sound_device::device_reset()
@@ -298,17 +325,20 @@ void leland_80186_sound_device::device_reset()
m_ext_start = 0;
m_ext_stop = 0;
m_ext_active = 0;
- memset(m_dac_sample, 0, sizeof(m_dac_sample));
- memset(m_dac_volume, 0x80, sizeof(m_dac_volume));
-
- m_dac_timer->adjust(attotime::from_hz(48000), 0, attotime::from_hz(48000));
}
const device_type LELAND_80186 = &device_creator<leland_80186_sound_device>;
leland_80186_sound_device::leland_80186_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: device_t(mconfig, LELAND_80186, "80186 DAC (Leland)", tag, owner, clock, "leland_80186_sound", __FILE__),
- m_dac(*this, "dac"),
+ 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_pit0(*this, "pit0"),
m_pit1(*this, "pit1"),
m_pit2(*this, "pit2"),
@@ -319,7 +349,14 @@ leland_80186_sound_device::leland_80186_sound_device(const machine_config &mconf
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 clock, const char *shortname, const char *source)
: device_t(mconfig, type, name, tag, owner, clock, shortname, source),
- m_dac(*this, "dac"),
+ 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_pit0(*this, "pit0"),
m_pit1(*this, "pit1"),
m_pit2(*this, "pit2"),
@@ -395,7 +432,7 @@ WRITE8_MEMBER( leland_80186_sound_device::leland_80186_control_w )
if (LOG_COMM)
{
- logerror("%04X:80186 control = %02X", m_audiocpu->device_t::safe_pcbase(), data);
+ logerror("%04X:80186 control = %02X", m_audiocpu->device_t::safe_pc(), data);
if (!(data & 0x80)) logerror(" /RESET");
if (!(data & 0x40)) logerror(" ZNMI");
if (!(data & 0x20)) logerror(" INT0");
@@ -447,7 +484,7 @@ WRITE8_MEMBER( leland_80186_sound_device::leland_80186_command_lo_w )
WRITE8_MEMBER( leland_80186_sound_device::leland_80186_command_hi_w )
{
- if (LOG_COMM) logerror("%04X:Write sound command latch hi = %02X\n", m_audiocpu->device_t::safe_pcbase(), data);
+ if (LOG_COMM) logerror("%04X:Write sound command latch hi = %02X\n", m_audiocpu->device_t::safe_pc(), data);
m_sound_command = (m_sound_command & 0x00ff) | (data << 8);
}
@@ -494,7 +531,8 @@ void leland_80186_sound_device::delayed_response_r(void *ptr, int param)
READ8_MEMBER( leland_80186_sound_device::leland_80186_response_r )
{
- offs_t pc = m_audiocpu->device_t::safe_pcbase();
+ cpu_device *master = machine().device<cpu_device>("master");
+ offs_t pc = master->device_t::safe_pcbase();
if (LOG_COMM) logerror("%04X:Read sound response latch = %02X\n", pc, m_sound_response);
@@ -525,13 +563,65 @@ WRITE16_MEMBER( leland_80186_sound_device::dac_w )
/* handle value changes */
if (ACCESSING_BITS_0_7)
{
- m_dac_sample[which] = (data << 8 & 0xff00) - 0x8000;
+ switch(which)
+ {
+ case 0:
+ m_dac1->write_signed8(data & 0xff);
+ break;
+ case 1:
+ m_dac2->write_signed8(data & 0xff);
+ break;
+ case 2:
+ m_dac3->write_signed8(data & 0xff);
+ break;
+ case 3:
+ m_dac4->write_signed8(data & 0xff);
+ break;
+ case 4:
+ m_dac5->write_signed8(data & 0xff);
+ break;
+ case 5:
+ m_dac6->write_signed8(data & 0xff);
+ break;
+ case 6:
+ m_dac7->write_signed8(data & 0xff);
+ break;
+ case 7:
+ m_dac8->write_signed8(data & 0xff);
+ break;
+ }
m_clock_active &= ~(1<<which);
}
/* handle volume changes */
if (ACCESSING_BITS_8_15)
- m_dac_volume[which] = data >> 8;
+ switch(which)
+ {
+ case 0:
+ m_dac1->set_output_gain(ALL_OUTPUTS, (data >> 8)/255.0f);
+ break;
+ case 1:
+ m_dac2->set_output_gain(ALL_OUTPUTS, (data >> 8)/255.0f);
+ break;
+ case 2:
+ m_dac3->set_output_gain(ALL_OUTPUTS, (data >> 8)/255.0f);
+ break;
+ case 3:
+ m_dac4->set_output_gain(ALL_OUTPUTS, (data >> 8)/255.0f);
+ break;
+ case 4:
+ m_dac5->set_output_gain(ALL_OUTPUTS, (data >> 8)/255.0f);
+ break;
+ case 5:
+ m_dac6->set_output_gain(ALL_OUTPUTS, (data >> 8)/255.0f);
+ break;
+ case 6:
+ m_dac7->set_output_gain(ALL_OUTPUTS, (data >> 8)/255.0f);
+ break;
+ case 7:
+ m_dac8->set_output_gain(ALL_OUTPUTS, (data >> 8)/255.0f);
+ break;
+ }
}
@@ -556,9 +646,9 @@ WRITE16_MEMBER( leland_80186_sound_device::ataxx_dac_control )
case 0x03:
if(ACCESSING_BITS_0_7)
{
- m_dac_volume[0] = ((data & 7) * 0x49) >> 1;
- m_dac_volume[1] = (((data >> 3) & 7) * 0x49) >> 1;
- m_dac_volume[2] = ((data >> 6) & 3) * 0x55;
+ m_dac1->set_output_gain(ALL_OUTPUTS, (((data & 7) * 0x49) >> 1) / 255.0f);
+ m_dac2->set_output_gain(ALL_OUTPUTS, ((((data >> 3) & 7) * 0x49) >> 1) / 255.0f);
+ m_dac3->set_output_gain(ALL_OUTPUTS, (((data >> 6) & 3) * 0x55) / 255.0f);
}
return;
@@ -704,7 +794,7 @@ WRITE16_MEMBER( leland_80186_sound_device::peripheral_w )
}
else if (mem_mask == 0xffff)
{
- m_dac_sample[6] = (data << 6) - 0x8000;
+ m_dac7->write_signed16(data << 6);
m_clock_active &= ~(1<<6);
}
break;
diff --git a/src/mess/audio/lynx.c b/src/mame/audio/lynx.c
index 2e17abde91f..2e17abde91f 100644
--- a/src/mess/audio/lynx.c
+++ b/src/mame/audio/lynx.c
diff --git a/src/mess/audio/lynx.h b/src/mame/audio/lynx.h
index b99d2b04873..b99d2b04873 100644
--- a/src/mess/audio/lynx.h
+++ b/src/mame/audio/lynx.h
diff --git a/src/mess/audio/mac.c b/src/mame/audio/mac.c
index 7a0b7a93a62..7a0b7a93a62 100644
--- a/src/mess/audio/mac.c
+++ b/src/mame/audio/mac.c
diff --git a/src/mess/audio/mea8000.c b/src/mame/audio/mea8000.c
index 6936205b79f..6936205b79f 100644
--- a/src/mess/audio/mea8000.c
+++ b/src/mame/audio/mea8000.c
diff --git a/src/mess/audio/mea8000.h b/src/mame/audio/mea8000.h
index 5d09ee938c9..5d09ee938c9 100644
--- a/src/mess/audio/mea8000.h
+++ b/src/mame/audio/mea8000.h
diff --git a/src/mame/audio/micro3d.c b/src/mame/audio/micro3d.c
index e0ba3722bc9..b2bd2cb09ec 100644
--- a/src/mame/audio/micro3d.c
+++ b/src/mame/audio/micro3d.c
@@ -343,7 +343,7 @@ WRITE8_MEMBER(micro3d_state::micro3d_sound_io_w)
{
case 0x01:
{
- micro3d_sound_device *noise = machine().device<micro3d_sound_device>(data & 4 ? "noise_2" : "noise_1");
+ micro3d_sound_device *noise = (data & 4) ? m_noise_2 : m_noise_1;
noise->noise_sh_w(data);
break;
}
@@ -360,7 +360,7 @@ READ8_MEMBER(micro3d_state::micro3d_sound_io_r)
{
switch (offset)
{
- case 0x01: return (m_sound_port_latch[offset] & 0x7f) | ioport("SOUND_SW")->read();
+ 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;
}
diff --git a/src/mame/audio/nl_kidniki.c b/src/mame/audio/nl_kidniki.c
index 71f6ea1a14a..bdb178f82c4 100644
--- a/src/mame/audio/nl_kidniki.c
+++ b/src/mame/audio/nl_kidniki.c
@@ -15,20 +15,6 @@
#ifndef __PLIB_PREPROCESSOR__
-#define MC14584B_GATE(_name) \
- NET_REGISTER_DEV(MC14584B_GATE, _name)
-
-#define MC14584B_DIP(_name) \
- NET_REGISTER_DEV(MC14584B_DIP, _name)
-
-#define LM324_DIP(_name) \
- NET_REGISTER_DEV(LM324_DIP, _name)
-
-#define LM358_DIP(_name) \
- NET_REGISTER_DEV(LM358_DIP, _name)
-
-NETLIST_EXTERNAL(kidniki_lib)
-
#endif
/* ----------------------------------------------------------------------------
@@ -47,9 +33,6 @@ NETLIST_START(kidniki_schematics)
// IGNORED O_AUDIO0: O_AUDIO0 49 0
// .END
- LOCAL_SOURCE(kidniki_lib)
- INCLUDE(kidniki_lib)
-
/*
* Workaround: The simplified opamp model does not correctly
* model the internals of the inputs.
@@ -119,8 +102,6 @@ NETLIST_START(kidniki_schematics)
LM324_DIP(XU1)
LM358_DIP(XU2)
- //SUBMODEL(LM324_DIP,XU1)
- //SUBMODEL(LM358_DIP,XU2)
MC14584B_DIP(XU3)
@@ -219,9 +200,9 @@ NETLIST_START(kidniki_schematics)
NET_C(XU3.6, R105.1, R106.2)
#if USE_FIXED_STV
//FIXME: We should have a NET_C_REMOVE
- NET_C(/*XU3.7,*/ C69.2, C73.2, C72.2, C77.2, C67.2, C68.2, R65.2, R38.2, XU1.11, R54.2, Q4.E, R63.2, C47.2, R72.2, R67.2, R71.2, R68.2, C48.2, R46.2, C28.1, C32.1, R43.2, XU2.4, C56.1, C52.1,/* R77.2, C58.1, */ R48.2, R93.2, R94.2, R119.2, R104.2, R53.2, R34.2, R81.2, R92.2, R89.2, C33.1, R37.2, R36.1, R91.1, I_V0.Q, RV1.3)
+ NET_C(XU3.7, C69.2, C73.2, C72.2, C77.2, C67.2, C68.2, R65.2, R38.2, XU1.11, R54.2, Q4.E, R63.2, C47.2, R72.2, R67.2, R71.2, R68.2, C48.2, R46.2, C28.1, C32.1, R43.2, XU2.4, C56.1, C52.1,/* R77.2, C58.1, */ R48.2, R93.2, R94.2, R119.2, R104.2, R53.2, R34.2, R81.2, R92.2, R89.2, C33.1, R37.2, R36.1, R91.1, I_V0.Q, RV1.3)
#else
- NET_C(/*XU3.7,*/ C69.2, C73.2, C72.2, C77.2, C67.2, C68.2, R65.2, R38.2, XU1.11, R54.2, Q4.E, R63.2, C47.2, R72.2, R67.2, R71.2, R68.2, C48.2, R46.2, C28.1, C32.1, R43.2, XU2.4, C56.1, C52.1, R77.2, C58.1, R48.2, R93.2, R94.2, R119.2, R104.2, R53.2, R34.2, R81.2, R92.2, R89.2, C33.1, R37.2, R36.1, R91.1, I_V0.Q, RV1.3)
+ NET_C(XU3.7, C69.2, C73.2, C72.2, C77.2, C67.2, C68.2, R65.2, R38.2, XU1.11, R54.2, Q4.E, R63.2, C47.2, R72.2, R67.2, R71.2, R68.2, C48.2, R46.2, C28.1, C32.1, R43.2, XU2.4, C56.1, C52.1, R77.2, C58.1, R48.2, R93.2, R94.2, R119.2, R104.2, R53.2, R34.2, R81.2, R92.2, R89.2, C33.1, R37.2, R36.1, R91.1, I_V0.Q, RV1.3)
#endif
NET_C(XU3.8, R108.1, R107.2)
NET_C(XU3.9, R108.2, C77.1)
@@ -230,9 +211,9 @@ NETLIST_START(kidniki_schematics)
NET_C(XU3.12, R98.1, R97.2)
NET_C(XU3.13, R98.2, C68.1)
#if USE_FIXED_STV
- NET_C(/*XU3.14,*/ XU1.4, R66.1, R70.1, Q6.C, Q5.C, XU2.8, /* R78.1, */ R86.1, R83.1, Q3.C, I_V5.Q)
+ NET_C(XU3.14, XU1.4, R66.1, R70.1, Q6.C, Q5.C, XU2.8, /* R78.1, */ R86.1, R83.1, Q3.C, I_V5.Q)
#else
- NET_C(/*XU3.14,*/ XU1.4, R66.1, R70.1, Q6.C, Q5.C, XU2.8, R78.1, R86.1, R83.1, Q3.C, I_V5.Q)
+ NET_C(XU3.14, XU1.4, R66.1, R70.1, Q6.C, Q5.C, XU2.8, R78.1, R86.1, R83.1, Q3.C, I_V5.Q)
#endif
NET_C(R96.1, R102.1, R106.1, R107.1, R101.1, R97.1, R65.1, C63.2)
NET_C(C63.1, R65_1.2)
@@ -324,161 +305,3 @@ NETLIST_START(kidniki_schematics)
NET_C(R26.2, C29.2, GND)
NETLIST_END()
-
-/* ----------------------------------------------------------------------------
- * Library section body START
- * ---------------------------------------------------------------------------*/
-
-NETLIST_START(opamp)
-
- /* Opamp model from
- *
- * http://www.ecircuitcenter.com/Circuits/opmodel1/opmodel1.htm
- *
- * Bandwidth 1Mhz
- *
- */
-
- /* Terminal definitions for calling netlists */
-
- ALIAS(PLUS, G1.IP) // Positive input
- ALIAS(MINUS, G1.IN) // Negative input
- ALIAS(OUT, EBUF.OP) // Opamp output ...
-
- ALIAS(GND, EBUF.ON) // GND terminal
- ALIAS(VCC, DUMMY.I) // VCC terminal
- DUMMY_INPUT(DUMMY)
-
- /* The opamp model */
-
- VCCS(G1)
- PARAM(G1.RI, RES_K(1000))
-#if 1
- PARAM(G1.G, 100) // typical OP-AMP amplification 100 * 1000 = 100000
- RES(RP1, 1000)
- CAP(CP1, 1.59e-5) // <== change to 1.59e-3 for 10Khz bandwidth
-#else
- PARAM(G1.G, 1) // typical OP-AMP amplification 100 * 1000 = 100000
- RES(RP1, 100000)
- CAP(CP1, 1.59e-7) // <== change to 1.59e-3 for 10Khz bandwidth
-#endif
- VCVS(EBUF)
- PARAM(EBUF.RO, 50)
- PARAM(EBUF.G, 1)
-
-// PARAM(EBUF.RI, 1e20)
-// NET_C(EBUF.ON, GND)
-
- NET_C(G1.ON, GND)
- NET_C(RP1.2, GND)
- NET_C(CP1.2, GND)
- NET_C(EBUF.IN, GND)
-
- NET_C(RP1.1, G1.OP)
- NET_C(CP1.1, RP1.1)
-
- DIODE(DP,"1N914")
- DIODE(DN,"1N914")
-
- NET_C(DP.K, VCC)
-#if 1
- NET_C(DP.A, DN.K, RP1.1)
-#else
- RES(RDP, 1000)
- RES(RDN, 1000)
- NET_C(RDP.1, DP.A)
- NET_C(RDN.1, DN.K)
- NET_C(RDP.2, RDN.2, RP1.1)
-#endif
- NET_C(DN.A, GND)
-
- NET_C(EBUF.IP, RP1.1)
-
-NETLIST_END()
-
-NETLIST_START(LM324_DIP)
- SUBMODEL(opamp, op1)
- SUBMODEL(opamp, op2)
- SUBMODEL(opamp, op3)
- SUBMODEL(opamp, op4)
-
- ALIAS( 1, op1.OUT)
- ALIAS( 2, op1.MINUS)
- ALIAS( 3, op1.PLUS)
-
- ALIAS( 7, op2.OUT)
- ALIAS( 6, op2.MINUS)
- ALIAS( 5, op2.PLUS)
-
- ALIAS( 8, op3.OUT)
- ALIAS( 9, op3.MINUS)
- ALIAS(10, op3.PLUS)
-
- ALIAS(14, op4.OUT)
- ALIAS(13, op4.MINUS)
- ALIAS(12, op4.PLUS)
-
- NET_C(op1.GND, op2.GND, op3.GND, op4.GND)
- NET_C(op1.VCC, op2.VCC, op3.VCC, op4.VCC)
-
- ALIAS(11, op1.GND)
- ALIAS( 4, op1.VCC)
-NETLIST_END()
-
-NETLIST_START(LM358_DIP)
- SUBMODEL(opamp, op1)
- SUBMODEL(opamp, op2)
-
- ALIAS( 1, op1.OUT)
- ALIAS( 2, op1.MINUS)
- ALIAS( 3, op1.PLUS)
-
- ALIAS( 7, op2.OUT)
- ALIAS( 6, op2.MINUS)
- ALIAS( 5, op2.PLUS)
-
-
- NET_C(op1.GND, op2.GND)
- NET_C(op1.VCC, op2.VCC)
-
- ALIAS( 4, op1.GND)
- ALIAS( 8, op1.VCC)
-NETLIST_END()
-
-NETLIST_START(MC14584B_DIP)
- MC14584B_GATE(s1)
- MC14584B_GATE(s2)
- MC14584B_GATE(s3)
- MC14584B_GATE(s4)
- MC14584B_GATE(s5)
- MC14584B_GATE(s6)
-
- ALIAS( 1, s1.A)
- ALIAS( 2, s1.Q)
- ALIAS( 3, s2.A)
- ALIAS( 4, s2.Q)
- ALIAS( 5, s3.A)
- ALIAS( 6, s3.Q)
-
- ALIAS( 8, s4.Q)
- ALIAS( 9, s4.A)
- ALIAS(10, s5.Q)
- ALIAS(11, s5.A)
- ALIAS(12, s6.Q)
- ALIAS(13, s6.A)
-NETLIST_END()
-
-NETLIST_START(kidniki_lib)
- TRUTHTABLE_START(MC14584B_GATE, 1, 1, 0, "")
- TT_HEAD(" A | Q ")
- TT_LINE(" 0 | 1 |100")
- TT_LINE(" 1 | 0 |100")
- TT_FAMILY(".model MC14584B FAMILY(IVL=2.1 IVH=2.7 OVL=0.05 OVH=4.95 ORL=10.0 ORH=10.0)")
- TRUTHTABLE_END()
-
- LOCAL_LIB_ENTRY(LM324_DIP)
- LOCAL_LIB_ENTRY(LM358_DIP)
- LOCAL_LIB_ENTRY(MC14584B_DIP)
-
-NETLIST_END()
-
diff --git a/src/mame/audio/scramble.c b/src/mame/audio/scramble.c
index cd9b499a77d..b91d363bf2b 100644
--- a/src/mame/audio/scramble.c
+++ b/src/mame/audio/scramble.c
@@ -162,15 +162,18 @@ void scramble_state::sh_init()
}
-// Harem
+// Harem (same as scorpion)
-WRITE8_MEMBER( scramble_state::harem_portA_w )
+READ8_MEMBER(scramble_state::harem_digitalker_intr_r)
{
- // Speech?
+ return m_digitalker->digitalker_0_intr_r();
}
-WRITE8_MEMBER( scramble_state::harem_portB_w )
+
+WRITE8_MEMBER(scramble_state::harem_digitalker_control_w)
{
- // Speech?
+ m_digitalker->digitalker_0_cs_w (data & 1 ? ASSERT_LINE : CLEAR_LINE);
+ m_digitalker->digitalker_0_cms_w(data & 2 ? ASSERT_LINE : CLEAR_LINE);
+ m_digitalker->digitalker_0_wr_w (data & 4 ? ASSERT_LINE : CLEAR_LINE);
}
diff --git a/src/mame/audio/seibu.h b/src/mame/audio/seibu.h
index ca3fa2f11c2..dcfe0ecec39 100644
--- a/src/mame/audio/seibu.h
+++ b/src/mame/audio/seibu.h
@@ -195,22 +195,22 @@ extern const device_type SEIBU_ADPCM;
MCFG_CPU_PROGRAM_MAP(seibu3_adpcm_sound_map) \
MCFG_DEVICE_ADD("seibu_sound", SEIBU_SOUND, 0)
-#define SEIBU_SOUND_SYSTEM_ENCRYPTED_LOW() \
- MCFG_DEVICE_MODIFY("seibu_sound") \
- downcast<seibu_sound_device *>(device)->set_encryption(1); \
- MCFG_DEVICE_MODIFY("audiocpu") \
+#define SEIBU_SOUND_SYSTEM_ENCRYPTED_LOW() \
+ MCFG_DEVICE_MODIFY("seibu_sound") \
+ downcast<seibu_sound_device *>(device)->set_encryption(1); \
+ MCFG_DEVICE_MODIFY("audiocpu") \
MCFG_CPU_DECRYPTED_OPCODES_MAP(seibu_sound_decrypted_opcodes_map)
-#define SEIBU_SOUND_SYSTEM_ENCRYPTED_FULL() \
- MCFG_DEVICE_MODIFY("seibu_sound") \
- downcast<seibu_sound_device *>(device)->set_encryption(2); \
- MCFG_DEVICE_MODIFY("audiocpu") \
+#define SEIBU_SOUND_SYSTEM_ENCRYPTED_FULL() \
+ MCFG_DEVICE_MODIFY("seibu_sound") \
+ downcast<seibu_sound_device *>(device)->set_encryption(2); \
+ MCFG_DEVICE_MODIFY("audiocpu") \
MCFG_CPU_DECRYPTED_OPCODES_MAP(seibu_sound_decrypted_opcodes_map)
-#define SEIBU_SOUND_SYSTEM_ENCRYPTED_CUSTOM() \
- MCFG_DEVICE_MODIFY("seibu_sound") \
- downcast<seibu_sound_device *>(device)->set_encryption(3); \
- MCFG_DEVICE_MODIFY("audiocpu") \
+#define SEIBU_SOUND_SYSTEM_ENCRYPTED_CUSTOM() \
+ MCFG_DEVICE_MODIFY("seibu_sound") \
+ downcast<seibu_sound_device *>(device)->set_encryption(3); \
+ MCFG_DEVICE_MODIFY("audiocpu") \
MCFG_CPU_DECRYPTED_OPCODES_MAP(seibu_sound_decrypted_opcodes_map)
#define SEIBU_SOUND_SYSTEM_YM3812_INTERFACE(freq1,freq2) \
diff --git a/src/mess/audio/socrates.c b/src/mame/audio/socrates.c
index c35896e5c25..c35896e5c25 100644
--- a/src/mess/audio/socrates.c
+++ b/src/mame/audio/socrates.c
diff --git a/src/mess/audio/socrates.h b/src/mame/audio/socrates.h
index f1d2b1dd002..f1d2b1dd002 100644
--- a/src/mess/audio/socrates.h
+++ b/src/mame/audio/socrates.h
diff --git a/src/mess/audio/specimx_snd.c b/src/mame/audio/specimx_snd.c
index 2b56c6b25f8..2b56c6b25f8 100644
--- a/src/mess/audio/specimx_snd.c
+++ b/src/mame/audio/specimx_snd.c
diff --git a/src/mess/audio/specimx_snd.h b/src/mame/audio/specimx_snd.h
index 0e07b27dc4b..0e07b27dc4b 100644
--- a/src/mess/audio/specimx_snd.h
+++ b/src/mame/audio/specimx_snd.h
diff --git a/src/mess/audio/svis_snd.c b/src/mame/audio/svis_snd.c
index 86408d26820..86408d26820 100644
--- a/src/mess/audio/svis_snd.c
+++ b/src/mame/audio/svis_snd.c
diff --git a/src/mess/audio/svis_snd.h b/src/mame/audio/svis_snd.h
index 7d21bc4fdfb..7d21bc4fdfb 100644
--- a/src/mess/audio/svis_snd.h
+++ b/src/mame/audio/svis_snd.h
diff --git a/src/mame/audio/targ.c b/src/mame/audio/targ.c
index 3ebfe9b2708..52aec287409 100644
--- a/src/mame/audio/targ.c
+++ b/src/mame/audio/targ.c
@@ -37,6 +37,12 @@ void exidy_state::adjust_sample(UINT8 freq)
{
m_tone_freq = freq;
+ if (!m_samples->playing(3))
+ {
+ m_samples->set_volume(3, 0);
+ m_samples->start_raw(3, sine_wave, 32, 1000, true);
+ }
+
if ((m_tone_freq == 0xff) || (m_tone_freq == 0x00))
m_samples->set_volume(3, 0);
else
@@ -136,8 +142,13 @@ void exidy_state::common_audio_start(int freq)
m_tone_freq = 0;
m_tone_active = 0;
- m_samples->set_volume(3, 0);
- m_samples->start_raw(3, sine_wave, 32, 1000, true);
+ /* start_raw can't be called here: chan.source will be set by
+ samples_device::device_start and then nulled out by samples_device::device_reset
+ at the soft_reset stage of init_machine() and will never be set again.
+ Thus, I've moved it to exidy_state::adjust_sample() were it will be set after
+ machine initialization. */
+ //m_samples->set_volume(3, 0);
+ //m_samples->start_raw(3, sine_wave, 32, 1000, true);
save_item(NAME(m_port_1_last));
save_item(NAME(m_port_2_last));
diff --git a/src/mess/audio/tvc_snd.c b/src/mame/audio/tvc_snd.c
index 29d61b5dc7c..29d61b5dc7c 100644
--- a/src/mess/audio/tvc_snd.c
+++ b/src/mame/audio/tvc_snd.c
diff --git a/src/mess/audio/tvc_snd.h b/src/mame/audio/tvc_snd.h
index b8b955d3c45..b8b955d3c45 100644
--- a/src/mess/audio/tvc_snd.h
+++ b/src/mame/audio/tvc_snd.h
diff --git a/src/mess/audio/upd1771.c b/src/mame/audio/upd1771.c
index 96b3b2bb062..96b3b2bb062 100644
--- a/src/mess/audio/upd1771.c
+++ b/src/mame/audio/upd1771.c
diff --git a/src/mess/audio/upd1771.h b/src/mame/audio/upd1771.h
index e0757757e9c..e0757757e9c 100644
--- a/src/mess/audio/upd1771.h
+++ b/src/mame/audio/upd1771.h
diff --git a/src/mess/audio/vboy.c b/src/mame/audio/vboy.c
index b808ee8a333..b808ee8a333 100644
--- a/src/mess/audio/vboy.c
+++ b/src/mame/audio/vboy.c
diff --git a/src/mess/audio/vboy.h b/src/mame/audio/vboy.h
index 8849ecf292e..8849ecf292e 100644
--- a/src/mess/audio/vboy.h
+++ b/src/mame/audio/vboy.h
diff --git a/src/mess/audio/vc4000snd.c b/src/mame/audio/vc4000snd.c
index 00b33d308ae..00b33d308ae 100644
--- a/src/mess/audio/vc4000snd.c
+++ b/src/mame/audio/vc4000snd.c
diff --git a/src/mess/audio/vc4000snd.h b/src/mame/audio/vc4000snd.h
index 611ad0188d8..611ad0188d8 100644
--- a/src/mess/audio/vc4000snd.h
+++ b/src/mame/audio/vc4000snd.h
diff --git a/src/mess/audio/wswan_snd.c b/src/mame/audio/wswan_snd.c
index 77a21d7cb3b..77a21d7cb3b 100644
--- a/src/mess/audio/wswan_snd.c
+++ b/src/mame/audio/wswan_snd.c
diff --git a/src/mess/audio/wswan_snd.h b/src/mame/audio/wswan_snd.h
index 42ba3ed5160..42ba3ed5160 100644
--- a/src/mess/audio/wswan_snd.h
+++ b/src/mame/audio/wswan_snd.h
diff --git a/src/mame/drivers/1942.c b/src/mame/drivers/1942.c
index c9418fe9ad5..b5856656097 100644
--- a/src/mame/drivers/1942.c
+++ b/src/mame/drivers/1942.c
@@ -61,9 +61,14 @@ correctly.
***************************************************************************/
-#define MAIN_CPU_CLOCK (XTAL_12MHz/3) /* 12MHz is the only OSC on the PCB */
-#define SOUND_CPU_CLOCK (XTAL_12MHz/4) /* 12MHz is the only OSC on the PCB */
-#define AUDIO_CLOCK (XTAL_12MHz/8) /* 12MHz is the only OSC on the PCB */
+/* 12mhz OSC */
+#define MAIN_CPU_CLOCK (XTAL_12MHz/3)
+#define SOUND_CPU_CLOCK (XTAL_12MHz/4)
+#define AUDIO_CLOCK (XTAL_12MHz/8)
+/* 20mhz OSC - both Z80s are 4 MHz */
+#define MAIN_CPU_CLOCK_1942P (XTAL_20MHz/5)
+#define SOUND_CPU_CLOCK_1942P (XTAL_20MHz/5)
+#define AUDIO_CLOCK_1942P (XTAL_20MHz/16)
#include "emu.h"
#include "cpu/z80/z80.h"
@@ -168,6 +173,8 @@ TIMER_DEVICE_CALLBACK_MEMBER(_1942_state::c1942_scanline)
}
+
+
static ADDRESS_MAP_START( c1942_map, AS_PROGRAM, 8, _1942_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
@@ -203,6 +210,12 @@ WRITE8_MEMBER(_1942_state::c1942p_palette_w)
m_palette->set_indirect_color(offset, rgb_t(r<<5,g<<5,b<<6));
}
+WRITE8_MEMBER(_1942_state::c1942p_soundlatch_w)
+{
+ soundlatch_byte_w(space, 0, data);
+ m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
+}
+
static ADDRESS_MAP_START( c1942p_map, AS_PROGRAM, 8, _1942_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
@@ -221,7 +234,7 @@ static ADDRESS_MAP_START( c1942p_map, AS_PROGRAM, 8, _1942_state )
AM_RANGE(0xf000, 0xf3ff) AM_RAM AM_WRITE(c1942p_palette_w) AM_SHARE("protopal")
AM_RANGE(0xf400, 0xf400) AM_WRITE(c1942_bankswitch_w)
- AM_RANGE(0xf500, 0xf500) AM_WRITE(soundlatch_byte_w)
+ AM_RANGE(0xf500, 0xf500) AM_WRITE(c1942p_soundlatch_w)
AM_RANGE(0xf600, 0xf600) AM_WRITE(c1942p_f600_w)
AM_RANGE(0xf700, 0xf700) AM_READ_PORT("DSWA")
@@ -231,6 +244,23 @@ static ADDRESS_MAP_START( c1942p_map, AS_PROGRAM, 8, _1942_state )
AM_RANGE(0xf704, 0xf704) AM_READ_PORT("P2")
ADDRESS_MAP_END
+
+static ADDRESS_MAP_START(c1942p_sound_map, AS_PROGRAM, 8, _1942_state )
+ AM_RANGE(0x0000, 0x3fff) AM_ROM
+ AM_RANGE(0x4000, 0x47ff) AM_RAM
+
+ AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_byte_r)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( c1942p_sound_io, AS_IO, 8, _1942_state )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
+ AM_RANGE(0x0000, 0x0000) AM_WRITENOP
+ AM_RANGE(0x0014, 0x0015) AM_DEVWRITE("ay1", ay8910_device, address_data_w)
+ AM_RANGE(0x0018, 0x0019) AM_DEVWRITE("ay2", ay8910_device, address_data_w)
+ADDRESS_MAP_END
+
+
+
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, _1942_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM
@@ -595,12 +625,13 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_START( 1942p, _1942_state )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", Z80, MAIN_CPU_CLOCK) /* 4 MHz ??? */
+ MCFG_CPU_ADD("maincpu", Z80, MAIN_CPU_CLOCK_1942P) /* 4 MHz - verified on PCB */
MCFG_CPU_PROGRAM_MAP(c1942p_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", _1942_state, c1942_scanline, "screen", 0, 1)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", _1942_state, irq0_line_hold) // note, powerups won't move down the screen with the original '1942' logic.
- MCFG_CPU_ADD("audiocpu", Z80, SOUND_CPU_CLOCK) /* 3 MHz ??? */
- MCFG_CPU_PROGRAM_MAP(sound_map)
+ MCFG_CPU_ADD("audiocpu", Z80, SOUND_CPU_CLOCK_1942P) /* 4 MHz - verified on PCB */
+ MCFG_CPU_PROGRAM_MAP(c1942p_sound_map)
+ MCFG_CPU_IO_MAP(c1942p_sound_io)
MCFG_CPU_PERIODIC_INT_DRIVER(_1942_state, irq0_line_hold, 4*60)
@@ -624,9 +655,9 @@ static MACHINE_CONFIG_START( 1942p, _1942_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
- MCFG_SOUND_ADD("ay1", AY8910, AUDIO_CLOCK) /* 1.5 MHz */
+ MCFG_SOUND_ADD("ay1", AY8910, AUDIO_CLOCK_1942P) /* 1.25 MHz - verified on PCB */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
- MCFG_SOUND_ADD("ay2", AY8910, AUDIO_CLOCK) /* 1.5 MHz */
+ MCFG_SOUND_ADD("ay2", AY8910, AUDIO_CLOCK_1942P) /* 1.25 MHz - verified on PCB */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
@@ -891,8 +922,7 @@ ROM_START( 1942p )
ROM_LOAD( "3.bin", 0x14000, 0x4000, CRC(108fda63) SHA1(6ffdf57a04bcfae9fdb2343f30cff50926188cbf) ) // sldh
ROM_REGION( 0x10000, "audiocpu", 0 )
- ROM_LOAD( "snd.bin", 0x0000, 0x4000, BAD_DUMP CRC(43d6df9f) SHA1(c34579c73faa7e9552a6721ef8050b33ca158588) ) // sldh - looks bad, window was smashed, likely dead.
- ROM_LOAD( "sr-01.c11", 0x0000, 0x4000, CRC(bd87f06b) SHA1(821f85cf157f81117eeaba0c3cf0337eac357e58) ) // works but we can't be 100% sure it was the same.
+ ROM_LOAD( "04.bin", 0x0000, 0x4000, CRC(b4efd1af) SHA1(015b687b1714f892c3b2528bceb2df8ca48b6b8e) )
ROM_REGION( 0x2000, "gfx1", ROMREGION_INVERT )
ROM_LOAD( "8.bin", 0x0000, 0x2000, CRC(6ebca191) SHA1(0dbddadde54a0ab66994c4a8726be05c6ca88a0e) ) /* characters */ // sldh
@@ -920,10 +950,10 @@ DRIVER_INIT_MEMBER(_1942_state,1942)
}
-GAME( 1984, 1942, 0, 1942, 1942, _1942_state, 1942, ROT270, "Capcom", "1942 (Revision B)", GAME_SUPPORTS_SAVE )
-GAME( 1984, 1942a, 1942, 1942, 1942, _1942_state, 1942, ROT270, "Capcom", "1942 (Revision A)", GAME_SUPPORTS_SAVE )
-GAME( 1984, 1942abl, 1942, 1942, 1942, _1942_state, 1942, ROT270, "bootleg", "1942 (Revision A, bootleg)", GAME_SUPPORTS_SAVE ) // data is the same as 1942a set, different rom format
-GAME( 198?, 1942h, 1942, 1942, 1942, _1942_state, 1942, ROT270, "hack (Two Bit Score?)", "42", GAME_SUPPORTS_SAVE )
-GAME( 1984, 1942b, 1942, 1942, 1942, _1942_state, 1942, ROT270, "Capcom", "1942 (First Version)", GAME_SUPPORTS_SAVE )
-GAME( 1985, 1942w, 1942, 1942, 1942, _1942_state, 1942, ROT270, "Capcom (Williams Electronics license)", "1942 (Williams Electronics license)", GAME_SUPPORTS_SAVE ) /* Based on 1942 (Revision B) */
-GAME( 1984, 1942p, 1942, 1942p,1942p,_1942_state, 1942, ROT270, "Capcom", "1942 (prototype)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
+GAME( 1984, 1942, 0, 1942, 1942, _1942_state, 1942, ROT270, "Capcom", "1942 (Revision B)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, 1942a, 1942, 1942, 1942, _1942_state, 1942, ROT270, "Capcom", "1942 (Revision A)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, 1942abl, 1942, 1942, 1942, _1942_state, 1942, ROT270, "bootleg", "1942 (Revision A, bootleg)", MACHINE_SUPPORTS_SAVE ) // data is the same as 1942a set, different rom format
+GAME( 198?, 1942h, 1942, 1942, 1942, _1942_state, 1942, ROT270, "hack (Two Bit Score?)", "42", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, 1942b, 1942, 1942, 1942, _1942_state, 1942, ROT270, "Capcom", "1942 (First Version)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, 1942w, 1942, 1942, 1942, _1942_state, 1942, ROT270, "Capcom (Williams Electronics license)", "1942 (Williams Electronics license)", MACHINE_SUPPORTS_SAVE ) /* Based on 1942 (Revision B) */
+GAME( 1984, 1942p, 1942, 1942p,1942p,_1942_state, 1942, ROT270, "bootleg", "1942 (Tecfri PCB, bootleg?)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/1943.c b/src/mame/drivers/1943.c
index 5fc09aaa9ba..fc092b0c224 100644
--- a/src/mame/drivers/1943.c
+++ b/src/mame/drivers/1943.c
@@ -703,9 +703,9 @@ DRIVER_INIT_MEMBER(_1943_state,1943b)
}
/* Game Drivers */
-GAME( 1987, 1943, 0, 1943, 1943, _1943_state, 1943, ROT270, "Capcom", "1943: The Battle of Midway (Euro)", GAME_SUPPORTS_SAVE )
-GAME( 1987, 1943u, 1943, 1943, 1943, _1943_state, 1943, ROT270, "Capcom", "1943: The Battle of Midway (US, Rev C)", GAME_SUPPORTS_SAVE )
-GAME( 1987, 1943j, 1943, 1943, 1943, _1943_state, 1943, ROT270, "Capcom", "1943: Midway Kaisen (Japan, Rev B)", GAME_SUPPORTS_SAVE )
-GAME( 1987, 1943ja, 1943, 1943, 1943, _1943_state, 1943, ROT270, "Capcom", "1943: Midway Kaisen (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1987, 1943b, 1943, 1943, 1943, _1943_state, 1943b,ROT270, "bootleg", "1943: Battle of Midway (bootleg, hack of Japan set)", GAME_SUPPORTS_SAVE )
-GAME( 1987, 1943kai, 0, 1943, 1943, _1943_state, 1943, ROT270, "Capcom", "1943 Kai: Midway Kaisen (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1987, 1943, 0, 1943, 1943, _1943_state, 1943, ROT270, "Capcom", "1943: The Battle of Midway (Euro)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, 1943u, 1943, 1943, 1943, _1943_state, 1943, ROT270, "Capcom", "1943: The Battle of Midway (US, Rev C)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, 1943j, 1943, 1943, 1943, _1943_state, 1943, ROT270, "Capcom", "1943: Midway Kaisen (Japan, Rev B)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, 1943ja, 1943, 1943, 1943, _1943_state, 1943, ROT270, "Capcom", "1943: Midway Kaisen (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, 1943b, 1943, 1943, 1943, _1943_state, 1943b,ROT270, "bootleg", "1943: Battle of Midway (bootleg, hack of Japan set)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, 1943kai, 0, 1943, 1943, _1943_state, 1943, ROT270, "Capcom", "1943 Kai: Midway Kaisen (Japan)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/1945kiii.c b/src/mame/drivers/1945kiii.c
index 597ef620784..44564dccd8a 100644
--- a/src/mame/drivers/1945kiii.c
+++ b/src/mame/drivers/1945kiii.c
@@ -70,7 +70,6 @@ public:
required_shared_ptr<UINT16> m_spriteram_1;
required_shared_ptr<UINT16> m_spriteram_2;
required_shared_ptr<UINT16> m_bgram;
-// UINT16 * m_paletteram16; // currently this uses generic palette handling
/* video-related */
tilemap_t *m_bg_tilemap;
@@ -162,7 +161,7 @@ static ADDRESS_MAP_START( k3_map, AS_PROGRAM, 16, k3_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM // Main Ram
- AM_RANGE(0x200000, 0x200fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // palette
+ AM_RANGE(0x200000, 0x200fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x240000, 0x240fff) AM_RAM AM_SHARE("spritera1")
AM_RANGE(0x280000, 0x280fff) AM_RAM AM_SHARE("spritera2")
AM_RANGE(0x2c0000, 0x2c0fff) AM_RAM_WRITE(k3_bgram_w) AM_SHARE("bgram")
@@ -311,4 +310,4 @@ ROM_START( 1945kiii )
ROM_LOAD( "m16m-3.u61", 0x00000, 0x200000, CRC(32fc80dd) SHA1(bee32493a250e9f21997114bba26b9535b1b636c) )
ROM_END
-GAME( 2000, 1945kiii, 0, k3, k3, driver_device, 0, ROT270, "Oriental Soft", "1945k III", GAME_SUPPORTS_SAVE )
+GAME( 2000, 1945kiii, 0, k3, k3, driver_device, 0, ROT270, "Oriental Soft", "1945k III", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/20pacgal.c b/src/mame/drivers/20pacgal.c
index 6dfb98d446e..00df8eaecda 100644
--- a/src/mame/drivers/20pacgal.c
+++ b/src/mame/drivers/20pacgal.c
@@ -535,12 +535,12 @@ 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)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
-GAME( 2005, 25pacmano, 25pacman, 20pacgal, 25pacmano,_20pacgal_state, 25pacman, ROT90, "Namco / Cosmodog", "Pac-Man - 25th Anniversary Edition (Rev 2.00)", GAME_IMPERFECT_GRAPHICS | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE)
-GAME( 2000, 20pacgalr3, 20pacgal, 20pacgal, 20pacgal, _20pacgal_state, 20pacgal, ROT90, "Namco / Cosmodog", "Ms. Pac-Man/Galaga - 20th Anniversary Class of 1981 Reunion (V1.03)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE)
-GAME( 2000, 20pacgalr2, 20pacgal, 20pacgal, 20pacgal, _20pacgal_state, 20pacgal, ROT90, "Namco / Cosmodog", "Ms. Pac-Man/Galaga - 20th Anniversary Class of 1981 Reunion (V1.02)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE)
-GAME( 2000, 20pacgalr1, 20pacgal, 20pacgal, 20pacgal, _20pacgal_state, 20pacgal, ROT90, "Namco / Cosmodog", "Ms. Pac-Man/Galaga - 20th Anniversary Class of 1981 Reunion (V1.01)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE)
-GAME( 2000, 20pacgalr0, 20pacgal, 20pacgal, 20pacgal, _20pacgal_state, 20pacgal, ROT90, "Namco / Cosmodog", "Ms. Pac-Man/Galaga - 20th Anniversary Class of 1981 Reunion (V1.00)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE)
+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( 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)
+GAME( 2000, 20pacgalr3, 20pacgal, 20pacgal, 20pacgal, _20pacgal_state, 20pacgal, ROT90, "Namco / Cosmodog", "Ms. Pac-Man/Galaga - 20th Anniversary Class of 1981 Reunion (V1.03)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE)
+GAME( 2000, 20pacgalr2, 20pacgal, 20pacgal, 20pacgal, _20pacgal_state, 20pacgal, ROT90, "Namco / Cosmodog", "Ms. Pac-Man/Galaga - 20th Anniversary Class of 1981 Reunion (V1.02)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE)
+GAME( 2000, 20pacgalr1, 20pacgal, 20pacgal, 20pacgal, _20pacgal_state, 20pacgal, ROT90, "Namco / Cosmodog", "Ms. Pac-Man/Galaga - 20th Anniversary Class of 1981 Reunion (V1.01)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE)
+GAME( 2000, 20pacgalr0, 20pacgal, 20pacgal, 20pacgal, _20pacgal_state, 20pacgal, ROT90, "Namco / Cosmodog", "Ms. Pac-Man/Galaga - 20th Anniversary Class of 1981 Reunion (V1.00)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE)
diff --git a/src/mame/drivers/24cdjuke.c b/src/mame/drivers/24cdjuke.c
index 3dd1d34237d..d0f05a437a4 100644
--- a/src/mame/drivers/24cdjuke.c
+++ b/src/mame/drivers/24cdjuke.c
@@ -313,4 +313,4 @@ ROM_START( 24cdjuke )
ROM_END
-GAME( 1988, 24cdjuke, 0, midcoin24cdjuke, midcoin24cdjuke, driver_device, 0, ROT0, "Midcoin", "Midcoin Juke Box 24CD", GAME_NO_SOUND | GAME_NOT_WORKING ) // what name was it sold under? name is from the PCB text
+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
diff --git a/src/mame/drivers/2mindril.c b/src/mame/drivers/2mindril.c
index c02432f95a5..758fb4518ce 100644
--- a/src/mame/drivers/2mindril.c
+++ b/src/mame/drivers/2mindril.c
@@ -561,4 +561,4 @@ DRIVER_INIT_MEMBER(_2mindril_state,drill)
tile_decode();
}
-GAME( 1993, 2mindril, 0, drill, drill, _2mindril_state, drill, ROT0, "Taito", "Two Minute Drill", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_MECHANICAL)
+GAME( 1993, 2mindril, 0, drill, drill, _2mindril_state, drill, ROT0, "Taito", "Two Minute Drill", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_MECHANICAL)
diff --git a/src/mame/drivers/30test.c b/src/mame/drivers/30test.c
index 5ba29c5f890..f61b28a93cb 100644
--- a/src/mame/drivers/30test.c
+++ b/src/mame/drivers/30test.c
@@ -267,4 +267,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)", GAME_SUPPORTS_SAVE | GAME_CLICKABLE_ARTWORK, layout_30test )
+GAMEL( 1997, 30test, 0, 30test, 30test, driver_device, 0, ROT0, "Namco", "30 Test (Remake)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK, layout_30test )
diff --git a/src/mame/drivers/39in1.c b/src/mame/drivers/39in1.c
index 902018c9932..a82e646440f 100644
--- a/src/mame/drivers/39in1.c
+++ b/src/mame/drivers/39in1.c
@@ -4,7 +4,7 @@
*
* 39in1.c - bootleg MAME-based "39-in-1" arcade PCB
* Skeleton by R. Belmont, thanks to the Guru
- * PXA255 Peripheral hookup by MooglyGuy
+ * PXA255 Peripheral hookup by Ryan Holtz
* Decrypt by Andreas Naive
*
* CPU: Intel Xscale PXA255 series @ 200 MHz, configured little-endian
@@ -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)", GAME_NOT_WORKING|GAME_IMPERFECT_SOUND)
-GAME(2004, 4in1b, 39in1, 39in1, 39in1, _39in1_state, 39in1, ROT270, "bootleg", "4 in 1 MAME bootleg (set 2)", GAME_NOT_WORKING|GAME_IMPERFECT_SOUND)
-GAME(2004, 19in1, 39in1, 39in1, 39in1, _39in1_state, 39in1, ROT270, "bootleg", "19 in 1 MAME bootleg", GAME_NOT_WORKING|GAME_IMPERFECT_SOUND)
-GAME(2004, 39in1, 0, 39in1, 39in1, _39in1_state, 39in1, ROT270, "bootleg", "39 in 1 MAME bootleg", GAME_IMPERFECT_SOUND)
-GAME(2004, 48in1, 39in1, 39in1, 39in1, _39in1_state, 39in1, ROT270, "bootleg", "48 in 1 MAME bootleg (set 1, ver 3.09)", GAME_NOT_WORKING|GAME_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)", GAME_NOT_WORKING|GAME_IMPERFECT_SOUND)
-GAME(2004, 48in1a, 39in1, 39in1, 39in1, _39in1_state, 39in1, ROT270, "bootleg", "48 in 1 MAME bootleg (set 3, ver 3.02)", GAME_NOT_WORKING|GAME_IMPERFECT_SOUND)
-GAME(2004, 60in1, 39in1, 60in1, 39in1, _39in1_state, 39in1, ROT270, "bootleg", "60 in 1 MAME bootleg (ver 3.00)", GAME_NOT_WORKING|GAME_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)
diff --git a/src/mame/drivers/3do.c b/src/mame/drivers/3do.c
index 87813e11020..6aab517506c 100644
--- a/src/mame/drivers/3do.c
+++ b/src/mame/drivers/3do.c
@@ -247,8 +247,8 @@ 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)", GAME_NOT_WORKING | GAME_NO_SOUND )
-CONS( 1991, 3do_pal, 3do, 0, 3do_pal, 3do, driver_device, 0, "The 3DO Company", "3DO (PAL)", GAME_NOT_WORKING | GAME_NO_SOUND )
+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 )
-GAME( 1991, 3dobios, 0, 3do, 3do, driver_device, 0, ROT0, "The 3DO Company", "3DO Bios", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_IS_BIOS_ROOT )
-GAME( 199?, orbatak, 3dobios,3do, 3do, driver_device, 0, ROT0, "<unknown>", "Orbatak (prototype)", GAME_NOT_WORKING | GAME_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, "<unknown>", "Orbatak (prototype)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/3x3puzzl.c b/src/mame/drivers/3x3puzzl.c
index 833d3ead2ca..36a2059ce39 100644
--- a/src/mame/drivers/3x3puzzl.c
+++ b/src/mame/drivers/3x3puzzl.c
@@ -501,6 +501,6 @@ ROM_END
-GAME( 1998, 3x3puzzl, 0, _3x3puzzle, _3x3puzzle, driver_device, 0, ROT0, "Ace Enterprise", "3X3 Puzzle (Enterprise)", GAME_SUPPORTS_SAVE ) // 1998. 5. 28
-GAME( 1998, 3x3puzzla, 3x3puzzl, _3x3puzzle, _3x3puzzle, driver_device, 0, ROT0, "Ace Enterprise", "3X3 Puzzle (Normal)", GAME_SUPPORTS_SAVE ) // 1998. 5. 28
-GAME( 199?, casanova, 0, _3x3puzzle, casanova, driver_device, 0, ROT0, "Promat", "Casanova", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/4004clk.c b/src/mame/drivers/4004clk.c
index fad1af5d1e6..0d750822b7c 100644
--- a/src/mess/drivers/4004clk.c
+++ b/src/mame/drivers/4004clk.c
@@ -19,11 +19,13 @@ public:
nixieclock_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
- m_dac(*this, "dac")
- { }
+ m_dac(*this, "dac"),
+ m_input(*this, "INPUT")
+ { }
required_device<i4004_cpu_device> m_maincpu;
required_device<dac_device> m_dac;
+ required_ioport m_input;
DECLARE_READ8_MEMBER( data_r );
DECLARE_WRITE8_MEMBER( nixie_w );
DECLARE_WRITE8_MEMBER( neon_w );
@@ -39,7 +41,7 @@ public:
READ8_MEMBER(nixieclock_state::data_r)
{
- return ioport("INPUT")->read() & 0x0f;
+ return m_input->read() & 0x0f;
}
UINT8 nixieclock_state::nixie_to_num(UINT16 val)
@@ -153,7 +155,6 @@ static MACHINE_CONFIG_START( 4004clk, nixieclock_state )
MCFG_CPU_DATA_MAP(4004clk_mem)
MCFG_CPU_IO_MAP(4004clk_io)
-
/* video hardware */
MCFG_DEFAULT_LAYOUT(layout_4004clk)
@@ -188,5 +189,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", GAME_SUPPORTS_SAVE)
+/* 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 )
diff --git a/src/mame/drivers/40love.c b/src/mame/drivers/40love.c
index ebd5a8677b5..a002c30a502 100644
--- a/src/mame/drivers/40love.c
+++ b/src/mame/drivers/40love.c
@@ -1264,6 +1264,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", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS )
-GAME( 1984, fieldday, 0, undoukai, undoukai, fortyl_state, undoukai, ROT0, "Taito Corporation", "Field Day", GAME_SUPPORTS_SAVE )
-GAME( 1984, undoukai, fieldday, undoukai, undoukai, fortyl_state, undoukai, ROT0, "Taito Corporation", "The Undoukai (Japan)", GAME_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/4enlinea.c b/src/mame/drivers/4enlinea.c
index 3e3dbd5a9bc..338d8e37c01 100644
--- a/src/mame/drivers/4enlinea.c
+++ b/src/mame/drivers/4enlinea.c
@@ -549,4 +549,4 @@ ROM_END
***********************************/
/* 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", GAME_NOT_WORKING )
+GAME( 1991, 4enlinea, 0, 4enlinea, 4enlinea, driver_device, 0, ROT0, "Compumatic", "Cuatro en Linea", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/4enraya.c b/src/mame/drivers/4enraya.c
index 5b44789b76c..4e5d18abc21 100644
--- a/src/mame/drivers/4enraya.c
+++ b/src/mame/drivers/4enraya.c
@@ -442,8 +442,7 @@ static MACHINE_CONFIG_START( 4enraya, _4enraya_state )
MCFG_GFXDECODE_ADD("gfxdecode", "palette", 4enraya)
- MCFG_PALETTE_ADD("palette", 8)
- MCFG_PALETTE_INIT_OWNER(_4enraya_state, _4enraya)
+ MCFG_PALETTE_ADD_3BIT_RGB("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -531,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)", GAME_SUPPORTS_SAVE )
-GAME( 1990, 4enrayaa, 4enraya, 4enraya, 4enraya, driver_device, 0, ROT0, "IDSA", "4 En Raya (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 199?, unkpacg, 0, unkpacg, unkpacg, _4enraya_state, unkpacg, ROT0, "<unknown>", "unknown Pac-Man gambling game", GAME_SUPPORTS_SAVE )
+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( 199?, unkpacg, 0, unkpacg, unkpacg, _4enraya_state, unkpacg, ROT0, "<unknown>", "unknown Pac-Man gambling game", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/4roses.c b/src/mame/drivers/4roses.c
index fdd2ea15eaa..acfa158233b 100644
--- a/src/mame/drivers/4roses.c
+++ b/src/mame/drivers/4roses.c
@@ -462,6 +462,6 @@ DRIVER_INIT_MEMBER(_4roses_state,4roses)
*************************/
/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS */
-GAME( 1999, 4roses, 0, 4roses, 4roses, _4roses_state, 4roses, ROT0, "<unknown>", "Four Roses (encrypted, set 1)", GAME_IMPERFECT_GRAPHICS | GAME_WRONG_COLORS | GAME_UNEMULATED_PROTECTION | GAME_NO_SOUND | GAME_NOT_WORKING )
-GAME( 1999, 4rosesa, 4roses, 4roses, 4roses, _4roses_state, 4roses, ROT0, "<unknown>", "Four Roses (encrypted, set 2)", GAME_IMPERFECT_GRAPHICS | GAME_WRONG_COLORS | GAME_UNEMULATED_PROTECTION | GAME_NO_SOUND | GAME_NOT_WORKING )
-GAME( 1999, rugby, 0, 4roses, 4roses, _4roses_state, 4roses, ROT0, "C.M.C.", "Rugby? (four roses hardware)", GAME_IMPERFECT_GRAPHICS | GAME_WRONG_COLORS | GAME_UNEMULATED_PROTECTION | GAME_NO_SOUND | GAME_NOT_WORKING )
+GAME( 1999, 4roses, 0, 4roses, 4roses, _4roses_state, 4roses, ROT0, "<unknown>", "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, "<unknown>", "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.c b/src/mame/drivers/5clown.c
index 03bdbc722e3..5d301b6aa7f 100644
--- a/src/mame/drivers/5clown.c
+++ b/src/mame/drivers/5clown.c
@@ -1224,6 +1224,6 @@ DRIVER_INIT_MEMBER(_5clown_state,fclown)
*************************/
/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS... */
-GAME( 1993, 5clown, 0, fclown, fclown, _5clown_state, fclown, ROT0, "IGS", "Five Clown (English, set 1)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1993, 5clowna, 5clown, fclown, fclown, _5clown_state, fclown, ROT0, "IGS", "Five Clown (English, set 2)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1993, 5clownsp, 5clown, fclown, fclown, _5clown_state, fclown, ROT0, "IGS", "Five Clown (Spanish hack)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+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/mess/drivers/68ksbc.c b/src/mame/drivers/68ksbc.c
index ae80462bbb7..2ff1bc85cac 100644
--- a/src/mess/drivers/68ksbc.c
+++ b/src/mame/drivers/68ksbc.c
@@ -95,4 +95,4 @@ 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", GAME_NO_SOUND_HW)
+COMP( 2002, 68ksbc, 0, 0, c68ksbc, c68ksbc, driver_device, 0, "Wichit Sirichote", "68k Single Board Computer", MACHINE_NO_SOUND_HW)
diff --git a/src/mame/drivers/8080bw.c b/src/mame/drivers/8080bw.c
index ec488e6c447..a17fe5f1665 100644
--- a/src/mame/drivers/8080bw.c
+++ b/src/mame/drivers/8080bw.c
@@ -421,6 +421,8 @@ static MACHINE_CONFIG_DERIVED_CLASS( invadpt2, mw8080bw_root, _8080bw_state )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_invadpt2)
+ MCFG_PALETTE_ADD_3BIT_RBG("palette")
+
/* sound hardware */
MCFG_FRAGMENT_ADD(invaders_samples_audio)
MACHINE_CONFIG_END
@@ -623,6 +625,8 @@ static MACHINE_CONFIG_DERIVED_CLASS( cosmo, mw8080bw_root, _8080bw_state )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_cosmo)
+ MCFG_PALETTE_ADD_3BIT_RGB("palette")
+
/* sound hardware */
MCFG_FRAGMENT_ADD(invaders_samples_audio)
MACHINE_CONFIG_END
@@ -784,6 +788,8 @@ MACHINE_CONFIG_START( spacecom, _8080bw_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_spacecom)
+ MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette")
+
/* sound hardware */
MCFG_FRAGMENT_ADD(invaders_audio)
MACHINE_CONFIG_END
@@ -893,6 +899,8 @@ static MACHINE_CONFIG_DERIVED_CLASS( invrvnge, mw8080bw_root, _8080bw_state )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_invadpt2)
+ MCFG_PALETTE_ADD_3BIT_RBG("palette")
+
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1056,6 +1064,8 @@ static MACHINE_CONFIG_DERIVED_CLASS( lrescue, mw8080bw_root, _8080bw_state )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_invadpt2)
+ MCFG_PALETTE_ADD_3BIT_RBG("palette")
+
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1385,6 +1395,8 @@ static MACHINE_CONFIG_DERIVED_CLASS( schaser, mw8080bw_root, _8080bw_state )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_schaser)
+ MCFG_PALETTE_ADD_3BIT_RBG("palette")
+
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1490,6 +1502,8 @@ static MACHINE_CONFIG_DERIVED_CLASS( schasercv, mw8080bw_root, _8080bw_state )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_schasercv)
+ MCFG_PALETTE_ADD_3BIT_RBG("palette")
+
/* sound hardware */
MCFG_FRAGMENT_ADD(invaders_samples_audio)
@@ -1570,6 +1584,9 @@ static MACHINE_CONFIG_DERIVED_CLASS( sflush, mw8080bw_root, _8080bw_state )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_sflush)
+
+ MCFG_PALETTE_ADD("palette", 8)
+ MCFG_PALETTE_INIT_OWNER(_8080bw_state, sflush)
MACHINE_CONFIG_END
@@ -1670,6 +1687,8 @@ static MACHINE_CONFIG_DERIVED_CLASS( lupin3, mw8080bw_root, _8080bw_state )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_indianbt)
+ MCFG_PALETTE_ADD_3BIT_RGB("palette")
+
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1714,6 +1733,8 @@ static MACHINE_CONFIG_DERIVED_CLASS( lupin3a, mw8080bw_root, _8080bw_state )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_lupin3)
+ MCFG_PALETTE_ADD_3BIT_RBG("palette")
+
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1865,6 +1886,8 @@ static MACHINE_CONFIG_DERIVED_CLASS( polaris, mw8080bw_root, _8080bw_state )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_polaris)
+ MCFG_PALETTE_ADD_3BIT_RBG("palette")
+
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1989,6 +2012,8 @@ static MACHINE_CONFIG_DERIVED_CLASS( ballbomb, mw8080bw_root, _8080bw_state )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_ballbomb)
+ MCFG_PALETTE_ADD_3BIT_RBG("palette")
+
/* sound hardware */
MCFG_FRAGMENT_ADD(invaders_samples_audio)
@@ -2230,6 +2255,8 @@ static MACHINE_CONFIG_DERIVED_CLASS( indianbt, mw8080bw_root, _8080bw_state )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_indianbt)
+ MCFG_PALETTE_ADD_3BIT_RGB("palette")
+
/* sound hardware */
MCFG_FRAGMENT_ADD(invaders_samples_audio)
@@ -2253,6 +2280,8 @@ static MACHINE_CONFIG_DERIVED_CLASS( indianbtbr, mw8080bw_root, _8080bw_state )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_indianbt)
+ MCFG_PALETTE_ADD_3BIT_RGB("palette")
+
/* sound hardware */
MCFG_FRAGMENT_ADD(invaders_samples_audio)
MACHINE_CONFIG_END
@@ -2324,6 +2353,8 @@ static MACHINE_CONFIG_DERIVED_CLASS( steelwkr, mw8080bw_root, _8080bw_state )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_invadpt2)
+ MCFG_PALETTE_ADD_3BIT_RBG("palette")
+
/* sound hardware */
MCFG_FRAGMENT_ADD(invaders_samples_audio)
MACHINE_CONFIG_END
@@ -2499,6 +2530,8 @@ MACHINE_CONFIG_START( shuttlei, _8080bw_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 24*8-1)
MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_shuttlei)
+ MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette")
+
/* sound hardware */
MCFG_FRAGMENT_ADD(invaders_samples_audio)
MACHINE_CONFIG_END
@@ -4698,117 +4731,117 @@ ROM_END
/* board # rom parent machine inp 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)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1978, sisv2, invaders, invaders, sitv, driver_device, 0, ROT270, "Taito", "Space Invaders (SV Version rev 2)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1978, sisv3, invaders, invaders, sitv, driver_device, 0, ROT270, "Taito", "Space Invaders (SV Version rev 3)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1978, sisv, invaders, invaders, sitv, driver_device, 0, ROT270, "Taito", "Space Invaders (SV Version rev 4)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAMEL(1978, sitv1, invaders, invaders, sitv, driver_device, 0, ROT270, "Taito", "Space Invaders (TV Version rev 1)", GAME_SUPPORTS_SAVE, layout_invaders )
-GAMEL(1978, sitv, invaders, invaders, sitv, driver_device, 0, ROT270, "Taito", "Space Invaders (TV Version rev 2)", GAME_SUPPORTS_SAVE, layout_invaders )
-GAME( 1979, sicv, invaders, invadpt2, sicv, driver_device, 0, ROT270, "Taito", "Space Invaders (CV Version)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAMEL(1978, invadrmr, invaders, invaders, invadrmr, driver_device, 0, ROT270, "Taito / Model Racing", "Space Invaders (Model Racing)", GAME_SUPPORTS_SAVE, layout_invaders ) // unclassified, licensed or bootleg?
-GAMEL(1978, invaderl, invaders, invaders, sicv, driver_device, 0, ROT270, "Taito / Logitec", "Space Invaders (Logitec)", GAME_SUPPORTS_SAVE, layout_invaders ) // unclassified, licensed or bootleg?
-GAMEL(1978, spcewars, invaders, spcewars, spcewars, driver_device, 0, ROT270, "Taito / Sanritsu", "Space War (Sanritsu)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_invaders ) // unclassified, licensed or bootleg?
-GAMEL(1978, spceking, invaders, invaders, sicv, driver_device, 0, ROT270, "Taito / Leijac Corporation", "Space King", GAME_SUPPORTS_SAVE, layout_invaders ) // unclassified, licensed or bootleg?
-GAMEL(1979, cosmicmo, invaders, cosmicmo, cosmicmo, driver_device, 0, ROT270, "Taito / Universal", "Cosmic Monsters (version II)", GAME_SUPPORTS_SAVE, layout_cosmicm ) // unclassified, licensed or bootleg?
-GAMEL(1979, cosmicm2, invaders, cosmicmo, cosmicmo, driver_device, 0, ROT270, "Taito / Universal", "Cosmic Monsters 2", GAME_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)", GAME_SUPPORTS_SAVE, layout_invaders ) // unclassified, licensed or bootleg?
-GAMEL(1980, ultrainv, invaders, invaders, sicv, driver_device, 0, ROT270, "Taito / Konami", "Ultra Invaders", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_spacecom )
-GAME( 1978, spacerng, invaders, spacerng, sitv, driver_device, 0, ROT90, "bootleg (Leisure Time Electronics)", "Space Ranger (bootleg of Space Invaders)", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND ) // many modifications
-GAMEL(19??, invasion, invaders, invaders, invasion, driver_device, 0, ROT270, "bootleg (Sidam)", "Invasion (Sidam)", GAME_SUPPORTS_SAVE, layout_invaders )
-GAMEL(19??, invasiona, invaders, invaders, invasion, driver_device, 0, ROT270, "bootleg", "Invasion (bootleg set 1, normal graphics)", GAME_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)", GAME_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)", GAME_SUPPORTS_SAVE | GAME_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)", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING, layout_invaders )
-GAMEL(19??, invadersem, invaders, invaders, sitv, driver_device, 0, ROT270, "Electromar", "Space Invaders (Electromar, Spanish)", GAME_SUPPORTS_SAVE, layout_invaders ) // possibly licensed
-GAMEL(1978, superinv, invaders, invaders, superinv, driver_device, 0, ROT270, "bootleg", "Super Invaders (bootleg set 1)", GAME_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)", GAME_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)", GAME_SUPPORTS_SAVE, layout_invaders )
-GAMEL(1980, searthina, invaders, invaders, searthin, driver_device, 0, ROT270, "bootleg (Competitive Video)", "Super Earth Invasion (set 2)", GAME_SUPPORTS_SAVE, layout_invaders )
-GAMEL(1980, searthie, invaders, invaders, searthin, driver_device, 0, ROT270, "bootleg (Electrocoin)", "Super Earth Invasion (set 3)", GAME_SUPPORTS_SAVE, layout_invaders )
-GAMEL(19??, alieninv, invaders, invaders, alieninv, driver_device, 0, ROT270, "bootleg (Margamatics)", "Alien Invasion", GAME_SUPPORTS_SAVE, layout_invaders )
-GAMEL(19??, alieninvp2, invaders, invaders, searthin, driver_device, 0, ROT270, "bootleg", "Alien Invasion Part II", GAME_SUPPORTS_SAVE, layout_invaders )
-GAMEL(1979, jspecter, invaders, invaders, jspecter, driver_device, 0, ROT270, "bootleg (Jatre)", "Jatre Specter (set 1)", GAME_SUPPORTS_SAVE, layout_invaders )
-GAMEL(1979, jspecter2, invaders, invaders, jspecter, driver_device, 0, ROT270, "bootleg (Jatre)", "Jatre Specter (set 2)", GAME_SUPPORTS_SAVE, layout_invaders )
-GAMEL(1978, spacewr3, invaders, spcewars, sicv, driver_device, 0, ROT270, "bootleg", "Space War Part 3", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_invaders ) // unrelated to Sanritsu's version?
-GAMEL(1978, invader4, invaders, invaders, sicv, driver_device, 0, ROT270, "bootleg", "Space Invaders Part Four", GAME_SUPPORTS_SAVE, layout_invaders )
-GAME( 1978, darthvdr, invaders, darthvdr, darthvdr, driver_device, 0, ROT270, "bootleg", "Darth Vader (bootleg of Space Invaders)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
-GAMEL(19??, tst_invd, invaders, invaders, sicv, driver_device, 0, ROT0, "<unknown>", "Space Invaders Test ROM", GAME_SUPPORTS_SAVE, layout_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)", 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?
+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, 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 (bootleg of Space Invaders)", 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, 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, "<unknown>", "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)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
-GAME( 1979, invadpt2br, invadpt2, invadpt2, invadpt2, driver_device, 0, ROT270, "Taito do Brasil", "Space Invaders Part II (Brazil)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
-GAME( 1980, invaddlx, invadpt2, invaders, invadpt2, driver_device, 0, ROT270, "Taito (Midway license)", "Space Invaders Deluxe", GAME_SUPPORTS_SAVE )
-GAME( 1979, moonbase, invadpt2, invadpt2, invadpt2, driver_device, 0, ROT270, "Taito / Nichibutsu", "Moon Base (set 1)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND ) // this has a 'Taito Corp' string hidden away in the rom - how do you get it to display?
-GAME( 1979, moonbasea, invadpt2, invadpt2, invadpt2, driver_device, 0, ROT270, "Taito / Nichibutsu", "Moon Base (set 2)", GAME_SUPPORTS_SAVE | GAME_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", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
-GAME( 1980, intruder, spclaser, invadpt2, spclaser, driver_device, 0, ROT270, "Taito (Game Plan license)", "Intruder", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
-GAME( 1980, laser, spclaser, invadpt2, spclaser, driver_device, 0, ROT270, "bootleg (Leisure Time Electronics Inc.)", "Astro Laser (bootleg of Space Laser)", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
-GAME( 1979, spcewarl, spclaser, invadpt2, spclaser, driver_device, 0, ROT270, "Leijac Corporation", "Space War (Leijac Corporation)", GAME_WRONG_COLORS | GAME_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", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
-GAME( 1979, grescue, lrescue, lrescue, lrescue, driver_device, 0, ROT270, "Taito (Universal license?)", "Galaxy Rescue", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
-GAME( 1980, mlander, lrescue, lrescue, lrescue, driver_device, 0, ROT270, "bootleg (Leisure Time Electronics)", "Moon Lander (bootleg of Lunar Rescue)", GAME_SUPPORTS_SAVE )
-GAME( 1979, lrescuem, lrescue, lrescue, lrescue, driver_device, 0, ROT270, "bootleg (Model Racing)", "Lunar Rescue (Model Racing bootleg, set 1)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
-GAME( 1979, lrescuem2, lrescue, lrescue, lrescue, driver_device, 0, ROT270, "bootleg (Model Racing)", "Lunar Rescue (Model Racing bootleg, set 2)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
-GAME( 1979, desterth, lrescue, lrescue, lrescue, driver_device, 0, ROT270, "bootleg", "Destination Earth (bootleg of Lunar Rescue)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
-GAME( 1979, schaser, 0, schaser, schaser, driver_device, 0, ROT270, "Taito", "Space Chaser (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1979, schasera, schaser, schaser, schaser, driver_device, 0, ROT270, "Taito", "Space Chaser (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1979, schaserb, schaser, schaser, schaser, driver_device, 0, ROT270, "Taito", "Space Chaser (set 3)", GAME_SUPPORTS_SAVE )
-GAME( 1979, schaserc, schaser, schaser, schaser, driver_device, 0, ROT270, "Taito", "Space Chaser (set 4)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_COLORS )
-GAME( 1979, schasercv, schaser, schasercv, schasercv, driver_device, 0, ROT270, "Taito", "Space Chaser (CV version - set 1)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_COLORS )
-GAME( 1979, sflush, 0, sflush, sflush, driver_device, 0, ROT270, "Taito", "Straight Flush", GAME_SUPPORTS_SAVE | GAME_NO_SOUND | GAME_IMPERFECT_COLORS | GAME_NO_COCKTAIL)
-GAME( 1980, lupin3, 0, lupin3, lupin3, driver_device, 0, ROT270, "Taito", "Lupin III (set 1)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
-GAME( 1980, lupin3a, lupin3, lupin3a, lupin3a, driver_device, 0, ROT270, "Taito", "Lupin III (set 2)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
-GAME( 1980, polaris, 0, polaris, polaris, driver_device, 0, ROT270, "Taito", "Polaris (Latest version)", GAME_SUPPORTS_SAVE )
-GAME( 1980, polarisa, polaris, polaris, polaris, driver_device, 0, ROT270, "Taito", "Polaris (First revision)", GAME_SUPPORTS_SAVE )
-GAME( 1980, polariso, polaris, polaris, polaris, driver_device, 0, ROT270, "Taito", "Polaris (Original version)", GAME_SUPPORTS_SAVE )
-GAME( 1981, polarisbr, polaris, polaris, polaris, driver_device, 0, ROT270, "Taito do Brasil", "Polaris (Brazil)", GAME_SUPPORTS_SAVE )
-GAME( 1980, ballbomb, 0, ballbomb, ballbomb, driver_device, 0, ROT270, "Taito", "Balloon Bomber", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) /* missing clouds */
-GAME( 1980, indianbt, 0, indianbt, indianbt, driver_device, 0, ROT270, "Taito", "Indian Battle", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
-GAME( 1983, indianbtbr, indianbt, indianbtbr,indianbtbr,driver_device, 0, ROT270, "Taito do Brasil", "Indian Battle (Brazil)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
-GAME( 1980, steelwkr, 0, steelwkr, steelwkr, driver_device, 0, ROT0 , "Taito", "Steel Worker", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
-GAMEL(1980?,galactic, 0, invaders, galactic, driver_device, 0, ROT270, "Taito do Brasil", "Galactica - Batalha Espacial", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND, layout_galactic )
-GAMEL(1980?,spacmiss, galactic, invaders, galactic, driver_device, 0, ROT270, "bootleg?", "Space Missile - Space Fighting Game", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND, layout_galactic )
+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 (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) // this has a 'Taito Corp' string hidden away in the rom - how do you get it to display?
+GAME( 1979, moonbasea, invadpt2, invadpt2, invadpt2, driver_device, 0, ROT270, "Taito / Nichibutsu", "Moon Base (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 Inc.)", "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( 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 )
+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, sflush, 0, sflush, sflush, driver_device, 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, 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, ballbomb, 0, ballbomb, ballbomb, driver_device, 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, steelwkr, 0, steelwkr, steelwkr, driver_device, 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 )
// Misc. manufacturers
-GAME( 1979, galxwars, 0, invadpt2, galxwars, driver_device, 0, ROT270, "Universal", "Galaxy Wars (Universal set 1)", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
-GAME( 1979, galxwars2, galxwars, invadpt2, galxwars, driver_device, 0, ROT270, "Universal", "Galaxy Wars (Universal set 2)", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
-GAME( 1979, galxwarst, galxwars, invadpt2, galxwars, driver_device, 0, ROT270, "Universal (Taito license?)", "Galaxy Wars (Taito?)" , GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE ) // Copyright not displayed
-GAME( 1979, starw, galxwars, invaders, galxwars, driver_device, 0, ROT270, "bootleg", "Star Wars (bootleg of Galaxy Wars, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1979, starw1, galxwars, starw1, galxwars, driver_device, 0, ROT270, "bootleg (Yamashita)", "Star Wars (bootleg of Galaxy Wars, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1979, cosmo, 0, cosmo, cosmo, driver_device, 0, ROT90, "TDS & MINTS", "Cosmo", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
-GAME( 1980?,invrvnge, 0, invrvnge, invrvnge, driver_device, 0, ROT270, "Zenitone-Microsec Ltd.", "Invader's Revenge (set 1)", GAME_SUPPORTS_SAVE | GAME_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)", GAME_SUPPORTS_SAVE | GAME_NO_SOUND )
-GAME( 1980?,invrvngeb, invrvnge, invrvnge, invrvnge, driver_device, 0, ROT270, "Zenitone-Microsec Ltd.", "Invader's Revenge (set 3)", GAME_SUPPORTS_SAVE | GAME_NO_SOUND )
-GAME( 1980?,invrvngedu, invrvnge, invrvnge, invrvnge, driver_device, 0, ROT270, "Zenitone-Microsec Ltd. (Dutchford license)", "Invader's Revenge (Dutchford, single PCB)", GAME_SUPPORTS_SAVE | GAME_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)", GAME_SUPPORTS_SAVE | GAME_NO_SOUND )
-GAME( 1980, vortex, 0, vortex, vortex, _8080bw_state, vortex, ROT270, "Zilec Electronics", "Vortex", GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND ) /* Encrypted 8080/IO */
-GAME( 1979, rollingc, 0, rollingc, rollingc, driver_device, 0, ROT270, "Nichibutsu", "Rolling Crash / Moon Base", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE )
-GAME( 1979, ozmawars, 0, invaders, ozmawars, driver_device, 0, ROT270, "SNK", "Ozma Wars (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1979, ozmawars2, ozmawars, invaders, ozmawars, driver_device, 0, ROT270, "SNK", "Ozma Wars (set 2)", GAME_SUPPORTS_SAVE ) /* Uses Taito's three board color version of Space Invaders PCB */
-GAME( 1979, spaceph, ozmawars, invaders, spaceph, driver_device, 0, ROT270, "bootleg? (Zilec Games)", "Space Phantoms (bootleg of Ozma Wars)", GAME_SUPPORTS_SAVE )
-GAME( 1979, solfight, ozmawars, invaders, ozmawars, driver_device, 0, ROT270, "bootleg", "Solar Fight (bootleg of Ozma Wars)", GAME_SUPPORTS_SAVE )
-GAME( 1979, yosakdon, 0, yosakdon, yosakdon, driver_device, 0, ROT270, "Wing", "Yosaku To Donbei (set 1)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
-GAME( 1979, yosakdona, yosakdon, yosakdon, yosakdon, driver_device, 0, ROT270, "Wing", "Yosaku To Donbei (set 2)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
-GAMEL(1979, shuttlei, 0, shuttlei, shuttlei, driver_device, 0, ROT270, "Omori Electric Co., Ltd.", "Shuttle Invader", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND, layout_shuttlei )
-GAMEL(1979, skylove, 0, shuttlei, skylove, driver_device, 0, ROT270, "Omori Electric Co., Ltd.", "Sky Love", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND, layout_shuttlei )
-GAME (1978, claybust, 0, claybust, claybust, driver_device, 0, ROT0, "Model Racing", "Claybuster", GAME_SUPPORTS_SAVE | GAME_NO_SOUND ) // no titlescreen, Claybuster according to flyers
-GAMEL(1980, gunchamp, 0, claybust, gunchamp, driver_device, 0, ROT0, "Model Racing", "Gun Champ", GAME_SUPPORTS_SAVE | GAME_NO_SOUND, layout_gunchamp ) // no titlescreen, Gun Champ according to original cab
-GAME( 1980?,astropal, 0, astropal, astropal, driver_device, 0, ROT0, "Sidam?", "Astropal", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
-GAMEL(1979?,attackfc, 0, attackfc, attackfc, _8080bw_state, attackfc, ROT0, "Electronic Games Systems", "Attack Force", GAME_SUPPORTS_SAVE | GAME_NO_SOUND, layout_attackfc )
-
-GAME( 2002, invmulti, 0, invmulti, invmulti, _8080bw_state, invmulti, ROT270, "hack (Braze Technologies)", "Space Invaders Multigame (M8.03D)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2002, invmultim3a,invmulti, invmulti, invmulti, _8080bw_state, invmulti, ROT270, "hack (Braze Technologies)", "Space Invaders Multigame (M8.03A)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2002, invmultim2c,invmulti, invmulti, invmulti, _8080bw_state, invmulti, ROT270, "hack (Braze Technologies)", "Space Invaders Multigame (M8.02C)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2002, invmultim2a,invmulti, invmulti, invmulti, _8080bw_state, invmulti, ROT270, "hack (Braze Technologies)", "Space Invaders Multigame (M8.02A)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2002, invmultim1a,invmulti, invmulti, invmulti, _8080bw_state, invmulti, ROT270, "hack (Braze Technologies)", "Space Invaders Multigame (M8.01A)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2002, invmultit3d,invmulti, invmulti, invmulti, _8080bw_state, invmulti, ROT270, "hack (Braze Technologies)", "Space Invaders Multigame (T8.03D)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2002, invmultis3a,invmulti, invmulti, invmulti, _8080bw_state, invmulti, ROT270, "hack (Braze Technologies)", "Space Invaders Multigame (S0.83A)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2002, invmultis2a,invmulti, invmulti, invmulti, _8080bw_state, invmulti, ROT270, "hack (Braze Technologies)", "Space Invaders Multigame (S0.82A)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2002, invmultis1a,invmulti, invmulti, invmulti, _8080bw_state, invmulti, ROT270, "hack (Braze Technologies)", "Space Invaders Multigame (S0.81A)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2002, invmultip, invmulti, invmulti, invmulti, _8080bw_state, invmulti, ROT270, "hack (Braze Technologies)", "Space Invaders Multigame (prototype)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+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, 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, cosmo, 0, cosmo, cosmo, driver_device, 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, 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, ozmawars, 0, invaders, ozmawars, driver_device, 0, ROT270, "SNK", "Ozma Wars (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1979, ozmawars2, ozmawars, invaders, 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, 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, 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 )
+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, skylove, 0, shuttlei, skylove, driver_device, 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
+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
+GAME( 1980?,astropal, 0, astropal, astropal, driver_device, 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 )
+
+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.c b/src/mame/drivers/88games.c
index 234d3e0cde3..81695376892 100644
--- a/src/mame/drivers/88games.c
+++ b/src/mame/drivers/88games.c
@@ -285,10 +285,7 @@ void _88games_state::machine_start()
save_item(NAME(m_videobank));
save_item(NAME(m_zoomreadroms));
save_item(NAME(m_speech_chip));
- save_item(NAME(m_layer_colorbase));
save_item(NAME(m_k88games_priority));
- save_item(NAME(m_sprite_colorbase));
- save_item(NAME(m_zoom_colorbase));
}
void _88games_state::machine_reset()
@@ -297,11 +294,6 @@ void _88games_state::machine_reset()
m_zoomreadroms = 0;
m_speech_chip = 0;
m_k88games_priority = 0;
- m_layer_colorbase[0] = 64;
- m_layer_colorbase[1] = 0;
- m_layer_colorbase[2] = 16;
- m_sprite_colorbase = 32;
- m_zoom_colorbase = 48;
}
static MACHINE_CONFIG_START( 88games, _88games_state )
@@ -336,6 +328,7 @@ static MACHINE_CONFIG_START( 88games, _88games_state )
MCFG_DEVICE_ADD("k051960", K051960, 0)
MCFG_GFX_PALETTE("palette")
+ MCFG_K051960_SCREEN_TAG("screen")
MCFG_K051960_CB(_88games_state, sprite_callback)
MCFG_DEVICE_ADD("k051316", K051316, 0)
@@ -533,6 +526,6 @@ ROM_END
*
*************************************/
-GAME( 1988, 88games, 0, 88games, 88games, driver_device, 0, ROT0, "Konami", "'88 Games", GAME_SUPPORTS_SAVE )
-GAME( 1988, konami88, 88games, 88games, 88games, driver_device, 0, ROT0, "Konami", "Konami '88", GAME_SUPPORTS_SAVE )
-GAME( 1988, hypsptsp, 88games, 88games, 88games, driver_device, 0, ROT0, "Konami", "Hyper Sports Special (Japan)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/a1supply.c b/src/mame/drivers/a1supply.c
index 142f9e6b54f..456103daf37 100644
--- a/src/mame/drivers/a1supply.c
+++ b/src/mame/drivers/a1supply.c
@@ -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", GAME_IS_SKELETON )
-GAME( 197?, tv21_3, 0, a1supply, 0, driver_device, 0, ROT0, "A-1 Supply", "T.V. 21 III", GAME_IS_SKELETON )
-GAME( 197?, tvpoker, 0, a1supply, 0, driver_device, 0, ROT0, "A-1 Supply", "T.V. Poker", GAME_IS_SKELETON )
+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 )
diff --git a/src/mess/drivers/a2600.c b/src/mame/drivers/a2600.c
index 35c9dacf0c5..cf61e133b62 100644
--- a/src/mess/drivers/a2600.c
+++ b/src/mame/drivers/a2600.c
@@ -37,7 +37,9 @@ public:
m_cart(*this, "cartslot"),
m_tia(*this, "tia_video"),
m_maincpu(*this, "maincpu"),
- m_screen(*this, "screen") { }
+ m_screen(*this, "screen"),
+ m_swb(*this, "SWB")
+ { }
required_shared_ptr<UINT8> m_riot_ram;
UINT16 m_current_screen_height;
@@ -66,6 +68,7 @@ protected:
unsigned long detect_2600controllers();
required_device<m6502_device> m_maincpu;
required_device<screen_device> m_screen;
+ required_ioport m_swb;
};
@@ -124,7 +127,7 @@ WRITE_LINE_MEMBER(a2600_state::irq_callback)
READ8_MEMBER(a2600_state::riot_input_port_8_r)
{
- return ioport("SWB")->read();
+ return m_swb->read();
}
@@ -168,7 +171,7 @@ READ8_MEMBER(a2600_state::a2600_get_databus_contents)
UINT8 last_byte, prev_byte;
address_space& prog_space = m_maincpu->space(AS_PROGRAM);
- last_address = m_maincpu->pc() - 1;
+ last_address = m_maincpu->pc() + 1;
if ( ! ( last_address & 0x1080 ) )
{
return offset;
@@ -545,5 +548,5 @@ 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)" , GAME_SUPPORTS_SAVE )
-CONS( 1978, a2600p, a2600, 0, a2600p, a2600, driver_device, 0, "Atari", "Atari 2600 (PAL)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/a310.c b/src/mame/drivers/a310.c
index 91018398b42..61764ca4cbd 100644
--- a/src/mess/drivers/a310.c
+++ b/src/mame/drivers/a310.c
@@ -448,6 +448,6 @@ ROM_START( a3020 )
ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
-COMP( 1988, a310, 0, 0, a310, a310, a310_state, a310, "Acorn", "Archimedes 310", GAME_NOT_WORKING)
-COMP( 1988, a3010, a310, 0, a310, a310, a310_state, a310, "Acorn", "Archimedes 3010", GAME_NOT_WORKING)
-COMP( 1988, a3020, a310, 0, a310, a310, a310_state, a310, "Acorn", "Archimedes 3020", GAME_NOT_WORKING)
+COMP( 1988, a310, 0, 0, a310, a310, a310_state, a310, "Acorn", "Archimedes 310", MACHINE_NOT_WORKING)
+COMP( 1988, a3010, a310, 0, a310, a310, a310_state, a310, "Acorn", "Archimedes 3010", MACHINE_NOT_WORKING)
+COMP( 1988, a3020, a310, 0, a310, a310, a310_state, a310, "Acorn", "Archimedes 3020", MACHINE_NOT_WORKING)
diff --git a/src/mess/drivers/a5105.c b/src/mame/drivers/a5105.c
index 82229b29329..03be992da60 100644
--- a/src/mess/drivers/a5105.c
+++ b/src/mame/drivers/a5105.c
@@ -621,4 +621,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1989, a5105, 0, 0, a5105, a5105, driver_device, 0, "VEB Robotron", "BIC A5105", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/a51xx.c b/src/mame/drivers/a51xx.c
index 44f89c7223e..2155fce0124 100644
--- a/src/mess/drivers/a51xx.c
+++ b/src/mame/drivers/a51xx.c
@@ -173,5 +173,5 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 1983, a5130, a5120, 0, a5130, a5130, driver_device, 0, "VEB Robotron", "A5130", GAME_NOT_WORKING | GAME_NO_SOUND)
+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)
diff --git a/src/mess/drivers/a6809.c b/src/mame/drivers/a6809.c
index 38a455614ca..38a455614ca 100644
--- a/src/mess/drivers/a6809.c
+++ b/src/mame/drivers/a6809.c
diff --git a/src/mess/drivers/a7150.c b/src/mame/drivers/a7150.c
index 171fc9476dc..47935cf9b79 100644
--- a/src/mess/drivers/a7150.c
+++ b/src/mame/drivers/a7150.c
@@ -80,4 +80,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1986, a7150, 0, 0, a7150, a7150, driver_device, 0, "VEB Robotron", "A7150", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/a7800.c b/src/mame/drivers/a7800.c
index b9b7bcdc65c..0d979502d7d 100644
--- a/src/mess/drivers/a7800.c
+++ b/src/mame/drivers/a7800.c
@@ -287,12 +287,13 @@ static ADDRESS_MAP_START( a7800_mem, AS_PROGRAM, 8, a7800_state )
AM_RANGE(0x0280, 0x029f) AM_MIRROR(0x60) AM_DEVICE("riot", mos6532_t, io_map)
AM_RANGE(0x0480, 0x04ff) AM_MIRROR(0x100) AM_DEVICE("riot", mos6532_t, ram_map)
AM_RANGE(0x1800, 0x1fff) AM_RAM AM_SHARE("6116_1")
- AM_RANGE(0x2000, 0x27ff) AM_RAM AM_SHARE("6116_2") AM_MIRROR(0x0800)
+ AM_RANGE(0x2000, 0x27ff) AM_RAM AM_SHARE("6116_2")
// According to the official Software Guide, the RAM at 0x2000 is
// repeatedly mirrored up to 0x3fff, but this is evidently incorrect
// because the High Score Cartridge maps ROM at 0x3000-0x3fff
- // Hardware tests show that only the mirror at 0x2800-0x2fff actually
- // exists, and only on some hardware (MARIA? motherboard?) revisions
+ // Hardware tests show that only the page at 0x2700 appears at
+ // 0x2800, and only on some hardware (MARIA? motherboard?) revisions,
+ // and even then with inconsistent and unreliable results.
AM_RANGE(0x4000, 0xffff) AM_DEVWRITE("cartslot", a78_cart_slot_device, write_40xx)
AM_RANGE(0x4000, 0xbfff) AM_DEVREAD("cartslot", a78_cart_slot_device, read_40xx)
AM_RANGE(0xc000, 0xffff) AM_READ(bios_or_cart_r) // here also the BIOS can be accessed
diff --git a/src/mess/drivers/abc1600.c b/src/mame/drivers/abc1600.c
index 57580466632..bdaa4823471 100644
--- a/src/mess/drivers/abc1600.c
+++ b/src/mame/drivers/abc1600.c
@@ -964,4 +964,4 @@ ROM_END
//**************************************************************************
// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS
-COMP( 1985, abc1600, 0, 0, abc1600, abc1600, driver_device, 0, "Luxor", "ABC 1600", GAME_NOT_WORKING )
+COMP( 1985, abc1600, 0, 0, abc1600, abc1600, driver_device, 0, "Luxor", "ABC 1600", MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/abc80.c b/src/mame/drivers/abc80.c
index 101f4e8865e..5bfb37c94db 100644
--- a/src/mess/drivers/abc80.c
+++ b/src/mame/drivers/abc80.c
@@ -627,4 +627,4 @@ ROM_END
//**************************************************************************
// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS
-COMP( 1978, abc80, 0, 0, abc80, abc80, driver_device, 0, "Luxor Datorer AB", "ABC 80", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_KEYBOARD )
+COMP( 1978, abc80, 0, 0, abc80, abc80, driver_device, 0, "Luxor Datorer AB", "ABC 80", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_KEYBOARD )
diff --git a/src/mess/drivers/abc80x.c b/src/mame/drivers/abc80x.c
index f98139ad1a6..a328baa87c0 100644
--- a/src/mess/drivers/abc80x.c
+++ b/src/mame/drivers/abc80x.c
@@ -1635,7 +1635,7 @@ DRIVER_INIT_MEMBER(abc806_state,driver_init)
//**************************************************************************
// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS
-COMP( 1981, abc800c, 0, 0, abc800c, abc800, abc800c_state, driver_init, "Luxor Datorer AB", "ABC 800 C/HR", GAME_SUPPORTS_SAVE )
-COMP( 1981, abc800m, abc800c, 0, abc800m, abc800, abc800m_state, driver_init, "Luxor Datorer AB", "ABC 800 M/HR", GAME_SUPPORTS_SAVE )
-COMP( 1983, abc802, 0, 0, abc802, abc802, abc802_state, driver_init, "Luxor Datorer AB", "ABC 802", GAME_SUPPORTS_SAVE )
-COMP( 1983, abc806, 0, 0, abc806, abc806, abc806_state, driver_init, "Luxor Datorer AB", "ABC 806", GAME_SUPPORTS_SAVE )
+COMP( 1981, abc800c, 0, 0, abc800c, abc800, abc800c_state, driver_init, "Luxor Datorer AB", "ABC 800 C/HR", MACHINE_SUPPORTS_SAVE )
+COMP( 1981, abc800m, abc800c, 0, abc800m, abc800, abc800m_state, driver_init, "Luxor Datorer AB", "ABC 800 M/HR", MACHINE_SUPPORTS_SAVE )
+COMP( 1983, abc802, 0, 0, abc802, abc802, abc802_state, driver_init, "Luxor Datorer AB", "ABC 802", MACHINE_SUPPORTS_SAVE )
+COMP( 1983, abc806, 0, 0, abc806, abc806, abc806_state, driver_init, "Luxor Datorer AB", "ABC 806", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/ac1.c b/src/mame/drivers/ac1.c
index 46683958e08..bf67bbfff9e 100644
--- a/src/mess/drivers/ac1.c
+++ b/src/mame/drivers/ac1.c
@@ -53,7 +53,7 @@ ADDRESS_MAP_END
/* Input ports */
static INPUT_PORTS_START( ac1 )
- PORT_START("LINE0")
+ PORT_START("LINE.0")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_0) PORT_CHAR('0')
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!')
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('"')
@@ -63,7 +63,7 @@ static INPUT_PORTS_START( ac1 )
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&')
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'')
- PORT_START("LINE1")
+ PORT_START("LINE.1")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(')
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')')
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_COLON) PORT_CHAR(':') PORT_CHAR('*')
@@ -73,7 +73,7 @@ static INPUT_PORTS_START( ac1 )
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP) PORT_CHAR('>') PORT_CHAR('.')
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('?') PORT_CHAR('/')
- PORT_START("LINE2")
+ PORT_START("LINE.2")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('@') PORT_CHAR('`')
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_A) PORT_CHAR('A') PORT_CHAR('a')
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_B) PORT_CHAR('B') PORT_CHAR('b')
@@ -83,7 +83,7 @@ static INPUT_PORTS_START( ac1 )
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_F) PORT_CHAR('F') PORT_CHAR('f')
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_G) PORT_CHAR('G') PORT_CHAR('g')
- PORT_START("LINE3")
+ PORT_START("LINE.3")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_H) PORT_CHAR('H') PORT_CHAR('h')
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_I) PORT_CHAR('I') PORT_CHAR('i')
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_J) PORT_CHAR('J') PORT_CHAR('j')
@@ -93,7 +93,7 @@ static INPUT_PORTS_START( ac1 )
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_N) PORT_CHAR('N') PORT_CHAR('n')
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_O) PORT_CHAR('O') PORT_CHAR('o')
- PORT_START("LINE4")
+ PORT_START("LINE.4")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_P) PORT_CHAR('P') PORT_CHAR('p')
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_Q) PORT_CHAR('Q') PORT_CHAR('q')
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_R) PORT_CHAR('R') PORT_CHAR('r')
@@ -103,7 +103,7 @@ static INPUT_PORTS_START( ac1 )
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_V) PORT_CHAR('V') PORT_CHAR('v')
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_W) PORT_CHAR('W') PORT_CHAR('w')
- PORT_START("LINE5")
+ PORT_START("LINE.5")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_X) PORT_CHAR('X') PORT_CHAR('x')
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_Y) PORT_CHAR('Y') PORT_CHAR('y')
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_Z) PORT_CHAR('Z') PORT_CHAR('z')
@@ -113,7 +113,7 @@ static INPUT_PORTS_START( ac1 )
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_UNUSED)
- PORT_START("LINE6")
+ PORT_START("LINE.6")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Shift") PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Ctrl") PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(KEYCODE_RCONTROL)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ')
diff --git a/src/mame/drivers/ace.c b/src/mame/drivers/ace.c
index 5bf83282855..e7e93754b03 100644
--- a/src/mame/drivers/ace.c
+++ b/src/mame/drivers/ace.c
@@ -357,4 +357,4 @@ ROM_START( ace )
ROM_END
-GAMEL(1976, ace, 0, ace, ace, driver_device, 0, ROT0, "Allied Leisure", "Ace", GAME_SUPPORTS_SAVE | GAME_NO_SOUND, layout_ace )
+GAMEL(1976, ace, 0, ace, ace, driver_device, 0, ROT0, "Allied Leisure", "Ace", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND, layout_ace )
diff --git a/src/mame/drivers/acefruit.c b/src/mame/drivers/acefruit.c
index 04fed7b246b..b06240105df 100644
--- a/src/mame/drivers/acefruit.c
+++ b/src/mame/drivers/acefruit.c
@@ -768,8 +768,8 @@ ROM_START( acefruit )
ROM_END
-GAMEL( 1981?, sidewndr, 0, acefruit, sidewndr, acefruit_state, sidewndr, ROT270, "ACE", "Sidewinder", GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND, layout_sidewndr )
-GAMEL( 1981?, spellbnd, 0, acefruit, spellbnd, driver_device, 0, ROT270, "ACE", "Spellbound", GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND, layout_sidewndr )
-GAME ( 1982?, starspnr, 0, acefruit, starspnr, driver_device, 0, ROT270, "ACE", "Starspinner (Dutch/Nederlands)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME ( 1982?, acefruit, 0, acefruit, spellbnd, driver_device, 0, ROT270, "ACE", "Silhouette", GAME_NOT_WORKING | GAME_NO_SOUND ) // inputs and video in bonus game need fixing on this one
+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
// not dumped: Magnum?
diff --git a/src/mame/drivers/aces1.c b/src/mame/drivers/aces1.c
index bc421716105..35c6327a500 100644
--- a/src/mame/drivers/aces1.c
+++ b/src/mame/drivers/aces1.c
@@ -839,50 +839,50 @@ DRIVER_INIT_MEMBER(aces1_state,aces1)
{
}
-GAME( 199?, ac1clbmn ,0 ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Club Money (Ace) (ACESYS1) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ac1gogld ,0 ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Go For Gold (Ace) (ACESYS1) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ac1hotpf ,0 ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Hot Profit (Ace) (ACESYS1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ac1pster ,0 ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Pound Sterling (Ace) (ACESYS1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ac1pstrt ,0 ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Pcp", "Pound Stretcher (Pcp) (ACESYS1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ac1primt ,0 ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Primetime (Ace) (ACESYS1) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ac1taklv ,0 ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Take It Or Leave It (Ace) (ACESYS1) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ac1cshtw ,0 ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Cash Towers (Ace) (ACESYS1)",GAME_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)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ac1bbclba ,ac1bbclb ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Big Break Club (Ace) (ACESYS1) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ac1clbsv ,0 ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Club Sovereign (Ace) (ACESYS1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ac1clbxt ,0 ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Club Xtra (Ace) (ACESYS1) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ac1clbxta ,ac1clbxt ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Club Xtra (Ace) (ACESYS1) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ac1piaca ,0 ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Play It Again Casino (Ace) (ACESYS1)",GAME_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)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ac1piacla ,ac1piacl ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Play It Again Club (Ace) (ACESYS1) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ac1piaclb ,ac1piacl ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Play It Again Club (Ace) (ACESYS1) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ac1piaclc ,ac1piacl ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Play It Again Club (Ace) (ACESYS1) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ac1prmcl ,0 ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Premier Club (Ace) (ACESYS1) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ac1prmcla ,ac1prmcl ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Premier Club (Ace) (ACESYS1) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ac1prmclb ,ac1prmcl ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Premier Club (Ace) (ACESYS1) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ac1prmclc ,ac1prmcl ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Premier Club (Ace) (ACESYS1) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ac1rundx ,0 ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Runner Deluxe Club (Ace) (ACESYS1) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ac1rundxa ,ac1rundx ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Runner Deluxe Club (Ace) (ACESYS1) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ac1totb ,0 ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Top Of The Bill (Ace) (ACESYS1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ac1shid ,0 ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Super Hi De Hi (Ace) (ACESYS1) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ac1shida ,ac1shid ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Super Hi De Hi (Ace) (ACESYS1) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME(199?, ac1dbldx ,0 ,aces1 ,aces1 , aces1_state,aces1, ROT0, "Pcp", "Double Deluxe (Pcp) (ACESYS1)", GAME_IS_SKELETON_MECHANICAL )
-GAME(199?, ac1nudbk ,0 ,aces1 ,aces1 , aces1_state,aces1, ROT0, "Pcp", "Nudge Break (Pcp) (ACESYS1) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME(199?, ac1nudbka ,ac1nudbk ,aces1 ,aces1 , aces1_state,aces1, ROT0, "Pcp", "Nudge Break (Pcp) (ACESYS1) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME(199?, ac1nudbkb ,ac1nudbk ,aces1 ,aces1 , aces1_state,aces1, ROT0, "Pcp", "Nudge Break (Pcp) (ACESYS1) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME(199?, ac1nudbkc ,ac1nudbk ,aces1 ,aces1 , aces1_state,aces1, ROT0, "Pcp", "Nudge Break (Pcp) (ACESYS1) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME(199?, ac1nudbkd ,ac1nudbk ,aces1 ,aces1 , aces1_state,aces1, ROT0, "Pcp", "Nudge Break (Pcp) (ACESYS1) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME(199?, ac1sstrk ,0 ,aces1 ,aces1 , aces1_state,aces1, ROT0, "Pcp", "Starstruck (Pcp) (ACESYS1) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME(199?, ac1sstrka ,ac1sstrk ,aces1 ,aces1 , aces1_state,aces1, ROT0, "Pcp", "Starstruck (Pcp) (ACESYS1) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME(199?, ac1sstrkb ,ac1sstrk ,aces1 ,aces1 , aces1_state,aces1, ROT0, "Pcp", "Starstruck (Pcp) (ACESYS1) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME(199?, ac1xpres ,0 ,aces1 ,aces1 , aces1_state,aces1, ROT0, "Pcp", "Xpress (Pcp) (ACESYS1)", GAME_IS_SKELETON_MECHANICAL )
-GAME(199?, ac1roll ,0 ,aces1 ,aces1 , aces1_state,aces1, ROT0, "Pcp", "Roll Up (Pcp) (ACESYS1) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME(199?, ac1rolla ,ac1roll ,aces1 ,aces1 , aces1_state,aces1, ROT0, "Pcp", "Roll Up (Pcp) (ACESYS1) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME(199?, ac1rollb ,ac1roll ,aces1 ,aces1 , aces1_state,aces1, ROT0, "Pcp", "Roll Up (Pcp) (ACESYS1) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME(199?, ac1bluec ,0 ,aces1 ,aces1 , aces1_state,aces1, ROT0, "Pcp", "Blue Chip (Pcp) (ACESYS1) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME(199?, ac1blueca ,ac1bluec ,aces1 ,aces1 , aces1_state,aces1, ROT0, "Pcp", "Blue Chip (Pcp) (ACESYS1) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME(199?, ac1bluecb ,ac1bluec ,aces1 ,aces1 , aces1_state,aces1, ROT0, "Pcp", "Blue Chip (Pcp) (ACESYS1) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME(199?, ac1bluecc ,ac1bluec ,aces1 ,aces1 , aces1_state,aces1, ROT0, "Pcp", "Blue Chip (Pcp) (ACESYS1) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME(199?, ac1bluecd ,ac1bluec ,aces1 ,aces1 , aces1_state,aces1, ROT0, "Pcp", "Blue Chip (Pcp) (ACESYS1) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME(199?, ac1hideh ,0 ,aces1 ,aces1 , aces1_state,aces1, ROT0, "Ace", "Hi De Hi Deluxe (Ace) (ACESYS1) (set 1)",GAME_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)",GAME_IS_SKELETON_MECHANICAL ) // ^^
+GAME( 199?, ac1clbmn ,0 ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Club Money (Ace) (ACESYS1) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ac1gogld ,0 ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Go For Gold (Ace) (ACESYS1) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ac1hotpf ,0 ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Hot Profit (Ace) (ACESYS1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ac1pster ,0 ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Pound Sterling (Ace) (ACESYS1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ac1pstrt ,0 ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Pcp", "Pound Stretcher (Pcp) (ACESYS1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ac1primt ,0 ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Primetime (Ace) (ACESYS1) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ac1taklv ,0 ,aces1 ,aces1 , aces1_state,aces1 ,ROT0 ,"Ace", "Take It Or Leave It (Ace) (ACESYS1) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+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.c b/src/mame/drivers/acesp.c
index aa052919ad1..1a83aa85aa4 100644
--- a/src/mame/drivers/acesp.c
+++ b/src/mame/drivers/acesp.c
@@ -3876,559 +3876,559 @@ DRIVER_INIT_MEMBER(ace_sp_state,ace_sp)
{
}
-GAME( 199?, sp_cbowl ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_cbowla ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_cbowlb ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_cbowlc ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_cbowld ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_cbowle ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_cbowlf ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_cbowlg ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_cbowlh ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 9)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_cbowli ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 10)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_cbowlj ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 11)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_cbowlk ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 12)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_cbowll ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 13)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_cbowlm ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 14)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_cbowln ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 15)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_cbowlo ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 16)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_cbowlp ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 17)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_cbowlq ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 18)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_cbowlr ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 19)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_cbowls ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 20)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_cbowlt ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 21)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_cbowlu ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 22)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, sp_crime ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Crime Watch (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_crimea ,sp_crime ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Crime Watch (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_crimeb ,sp_crime ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Crime Watch (Ace) (sp.ACE) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_crimec ,sp_crime ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Crime Watch (Ace) (sp.ACE) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_crimed ,sp_crime ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Crime Watch (Ace) (sp.ACE) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_crimee ,sp_crime ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Crime Watch (Ace) (sp.ACE) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_crimef ,sp_crime ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Crime Watch (Ace) (sp.ACE) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_crimeg ,sp_crime ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Crime Watch (Ace) (sp.ACE) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_crimeh ,sp_crime ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Crime Watch (Ace) (sp.ACE) (set 9)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_cbowl ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_cbowla ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_cbowlb ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_cbowlc ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_cbowld ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_cbowle ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_cbowlf ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_cbowlg ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_cbowlh ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 9)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_cbowli ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 10)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_cbowlj ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 11)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_cbowlk ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 12)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_cbowll ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 13)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_cbowlm ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 14)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_cbowln ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 15)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_cbowlo ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 16)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_cbowlp ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 17)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_cbowlq ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 18)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_cbowlr ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 19)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_cbowls ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 20)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_cbowlt ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 21)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_cbowlu ,sp_cbowl ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Cash Bowl (Ace) (sp.ACE) (set 22)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, sp_crime ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Crime Watch (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_crimea ,sp_crime ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Crime Watch (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_crimeb ,sp_crime ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Crime Watch (Ace) (sp.ACE) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_crimec ,sp_crime ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Crime Watch (Ace) (sp.ACE) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_crimed ,sp_crime ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Crime Watch (Ace) (sp.ACE) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_crimee ,sp_crime ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Crime Watch (Ace) (sp.ACE) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_crimef ,sp_crime ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Crime Watch (Ace) (sp.ACE) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_crimeg ,sp_crime ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Crime Watch (Ace) (sp.ACE) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_crimeh ,sp_crime ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Crime Watch (Ace) (sp.ACE) (set 9)",MACHINE_IS_SKELETON_MECHANICAL )
// seems to be very closely related to Woolpack, looks like the same basic game with different strings, these have "GO TO EMMERDALE"
-GAME( 1995, sp_emmrd ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Emmerdale (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1995, sp_emmrda ,sp_emmrd ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Emmerdale (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1995, sp_emmrdb ,sp_emmrd ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Emmerdale (Ace) (sp.ACE) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1995, sp_emmrdc ,sp_emmrd ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Emmerdale (Ace) (sp.ACE) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1995, sp_emmrdd ,sp_emmrd ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Emmerdale (Ace) (sp.ACE) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1995, sp_emmrde ,sp_emmrd ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Emmerdale (Ace) (sp.ACE) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1995, sp_emmrdf ,sp_emmrd ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Emmerdale (Ace) (sp.ACE) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1995, sp_emmrdg ,sp_emmrd ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Emmerdale (Ace) (sp.ACE) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1995, sp_emmrdh ,sp_emmrd ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Emmerdale (Ace) (sp.ACE) (set 9)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1995, sp_emmrdi ,sp_emmrd ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Emmerdale (Ace) (sp.ACE) (set 10)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1995, sp_emmrdj ,sp_emmrd ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Emmerdale (Ace) (sp.ACE) (set 11)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1995, sp_emmrdk ,sp_emmrd ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Emmerdale (Ace) (sp.ACE) (set 12)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1995, sp_emmrdn ,sp_emmrd ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Emmerdale (Ace) (sp.ACE) (set 15)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1995, sp_emmrdo ,sp_emmrd ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Emmerdale (Ace) (sp.ACE) (set 16)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 1995, sp_emmrd ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Emmerdale (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1995, sp_emmrda ,sp_emmrd ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Emmerdale (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1995, sp_emmrdb ,sp_emmrd ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Emmerdale (Ace) (sp.ACE) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1995, sp_emmrdc ,sp_emmrd ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Emmerdale (Ace) (sp.ACE) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1995, sp_emmrdd ,sp_emmrd ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Emmerdale (Ace) (sp.ACE) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1995, sp_emmrde ,sp_emmrd ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Emmerdale (Ace) (sp.ACE) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1995, sp_emmrdf ,sp_emmrd ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Emmerdale (Ace) (sp.ACE) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1995, sp_emmrdg ,sp_emmrd ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Emmerdale (Ace) (sp.ACE) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1995, sp_emmrdh ,sp_emmrd ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Emmerdale (Ace) (sp.ACE) (set 9)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1995, sp_emmrdi ,sp_emmrd ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Emmerdale (Ace) (sp.ACE) (set 10)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1995, sp_emmrdj ,sp_emmrd ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Emmerdale (Ace) (sp.ACE) (set 11)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1995, sp_emmrdk ,sp_emmrd ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Emmerdale (Ace) (sp.ACE) (set 12)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1995, sp_emmrdn ,sp_emmrd ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Emmerdale (Ace) (sp.ACE) (set 15)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1995, sp_emmrdo ,sp_emmrd ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Emmerdale (Ace) (sp.ACE) (set 16)",MACHINE_IS_SKELETON_MECHANICAL )
// seems to be very closely related to Emmerdale, looks like the same basic game with different strings, these have "GO T' WOOLPACK"
-GAME( 1995, sp_woolp ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Woolpack (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1995, sp_woolpa ,sp_woolp ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Woolpack (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1995, sp_woolpb ,sp_woolp ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Woolpack (Ace) (sp.ACE) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1995, sp_woolpc ,sp_woolp ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Woolpack (Ace) (sp.ACE) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1995, sp_woolpd ,sp_woolp ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Woolpack (Ace) (sp.ACE) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1995, sp_woolpe ,sp_woolp ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Woolpack (Ace) (sp.ACE) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1995, sp_woolpf ,sp_woolp ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Woolpack (Ace) (sp.ACE) (set 7)",GAME_IS_SKELETON_MECHANICAL ) // incomplete
-GAME( 1995, sp_woolpg ,sp_woolp ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Woolpack (Ace) (sp.ACE) (set 8)",GAME_IS_SKELETON_MECHANICAL ) // incomplete
-GAME( 1995, sp_woolph ,sp_woolp ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Woolpack (Ace) (sp.ACE) (set 9)",GAME_IS_SKELETON_MECHANICAL ) // incomplete
-GAME( 1995, sp_woolpi ,sp_woolp ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Woolpack (Ace) (sp.ACE) (set 10)",GAME_IS_SKELETON_MECHANICAL ) // incomplete
-GAME( 1995, sp_woolpj ,sp_woolp ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Woolpack (Ace) (sp.ACE) (set 11)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1995, sp_woolpk ,sp_woolp ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Woolpack (Ace) (sp.ACE) (set 12)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1995, sp_woolpl ,sp_woolp ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Woolpack (Ace) (sp.ACE) (set 13)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1995, sp_woolpm ,sp_woolp ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Woolpack (Ace) (sp.ACE) (set 14)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1995, sp_woolpn ,sp_woolp ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Woolpack (Ace) (sp.ACE) (set 15)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1995, sp_woolpo ,sp_woolp ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Woolpack (Ace) (sp.ACE) (set 16)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 1995, sp_woolp ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Woolpack (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1995, sp_woolpa ,sp_woolp ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Woolpack (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1995, sp_woolpb ,sp_woolp ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Woolpack (Ace) (sp.ACE) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1995, sp_woolpc ,sp_woolp ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Woolpack (Ace) (sp.ACE) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1995, sp_woolpd ,sp_woolp ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Woolpack (Ace) (sp.ACE) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1995, sp_woolpe ,sp_woolp ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Woolpack (Ace) (sp.ACE) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1995, sp_woolpf ,sp_woolp ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Woolpack (Ace) (sp.ACE) (set 7)",MACHINE_IS_SKELETON_MECHANICAL ) // incomplete
+GAME( 1995, sp_woolpg ,sp_woolp ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Woolpack (Ace) (sp.ACE) (set 8)",MACHINE_IS_SKELETON_MECHANICAL ) // incomplete
+GAME( 1995, sp_woolph ,sp_woolp ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Woolpack (Ace) (sp.ACE) (set 9)",MACHINE_IS_SKELETON_MECHANICAL ) // incomplete
+GAME( 1995, sp_woolpi ,sp_woolp ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Woolpack (Ace) (sp.ACE) (set 10)",MACHINE_IS_SKELETON_MECHANICAL ) // incomplete
+GAME( 1995, sp_woolpj ,sp_woolp ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Woolpack (Ace) (sp.ACE) (set 11)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1995, sp_woolpk ,sp_woolp ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Woolpack (Ace) (sp.ACE) (set 12)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1995, sp_woolpl ,sp_woolp ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Woolpack (Ace) (sp.ACE) (set 13)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1995, sp_woolpm ,sp_woolp ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Woolpack (Ace) (sp.ACE) (set 14)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1995, sp_woolpn ,sp_woolp ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Woolpack (Ace) (sp.ACE) (set 15)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1995, sp_woolpo ,sp_woolp ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Woolpack (Ace) (sp.ACE) (set 16)",MACHINE_IS_SKELETON_MECHANICAL )
// this has 'Emmerdale' padding, but seems to be a unique game, contains "ZIGZAG" strings
-GAME( 199?, sp_zigzg ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Zig Zag (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_zigzga ,sp_zigzg ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Zig Zag (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_zigzgb ,sp_zigzg ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Zig Zag (Ace) (sp.ACE) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_zigzgc ,sp_zigzg ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Zig Zag (Ace) (sp.ACE) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_zigzgd ,sp_zigzg ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Zig Zag (Ace) (sp.ACE) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_zigzge ,sp_zigzg ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Zig Zag (Ace) (sp.ACE) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_zigzgf ,sp_zigzg ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Zig Zag (Ace) (sp.ACE) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_zigzgg ,sp_zigzg ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Zig Zag (Ace) (sp.ACE) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_zigzgh ,sp_zigzg ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Zig Zag (Ace) (sp.ACE) (set 9)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_zigzgi ,sp_zigzg ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Zig Zag (Ace) (sp.ACE) (set 10)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_zigzgj ,sp_zigzg ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Zig Zag (Ace) (sp.ACE) (set 11)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_zigzgk ,sp_zigzg ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Zig Zag (Ace) (sp.ACE) (set 12)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_zigzgl ,sp_zigzg ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Zig Zag (Ace) (sp.ACE) (set 13)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_zigzgm ,sp_zigzg ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Zig Zag (Ace) (sp.ACE) (set 14)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_zigzg ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Zig Zag (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_zigzga ,sp_zigzg ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Zig Zag (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_zigzgb ,sp_zigzg ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Zig Zag (Ace) (sp.ACE) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_zigzgc ,sp_zigzg ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Zig Zag (Ace) (sp.ACE) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_zigzgd ,sp_zigzg ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Zig Zag (Ace) (sp.ACE) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_zigzge ,sp_zigzg ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Zig Zag (Ace) (sp.ACE) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_zigzgf ,sp_zigzg ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Zig Zag (Ace) (sp.ACE) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_zigzgg ,sp_zigzg ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Zig Zag (Ace) (sp.ACE) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_zigzgh ,sp_zigzg ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Zig Zag (Ace) (sp.ACE) (set 9)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_zigzgi ,sp_zigzg ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Zig Zag (Ace) (sp.ACE) (set 10)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_zigzgj ,sp_zigzg ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Zig Zag (Ace) (sp.ACE) (set 11)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_zigzgk ,sp_zigzg ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Zig Zag (Ace) (sp.ACE) (set 12)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_zigzgl ,sp_zigzg ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Zig Zag (Ace) (sp.ACE) (set 13)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_zigzgm ,sp_zigzg ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Zig Zag (Ace) (sp.ACE) (set 14)",MACHINE_IS_SKELETON_MECHANICAL )
// some of these have additional Whitbread copyright, many appear to be 'Golden Mile Showcase', several have a 'Golden Mile Prize' padding instead of the regular
-GAME( 199?, sp_goldm ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_goldma ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_goldmb ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_goldmc ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_goldmd ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_goldme ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_goldmf ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_goldmg ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_goldmh ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 9)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_goldmi ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 10)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_goldmj ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 11)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_goldmk ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 12)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_goldml ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 13)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_goldmm ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 14)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_goldmn ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 15)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_goldmo ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 16)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_goldmp ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 17)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_goldmq ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 18)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_goldmr ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 19)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_goldms ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 20)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_goldmt ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 21)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_goldmu ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 22)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_goldmv ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 23)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_goldmw ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 24)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_goldmx ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 25)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_goldmy ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 26)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_goldmz ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 27)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_goldm0 ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 28)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_goldm1 ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 29)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_goldm2 ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 30)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_goldm3 ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 31)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_goldm ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_goldma ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_goldmb ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_goldmc ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_goldmd ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_goldme ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_goldmf ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_goldmg ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_goldmh ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 9)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_goldmi ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 10)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_goldmj ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 11)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_goldmk ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 12)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_goldml ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 13)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_goldmm ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 14)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_goldmn ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 15)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_goldmo ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 16)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_goldmp ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 17)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_goldmq ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 18)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_goldmr ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 19)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_goldms ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 20)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_goldmt ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 21)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_goldmu ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 22)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_goldmv ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 23)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_goldmw ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 24)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_goldmx ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 25)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_goldmy ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 26)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_goldmz ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 27)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_goldm0 ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 28)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_goldm1 ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 29)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_goldm2 ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 30)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_goldm3 ,sp_goldm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Mile (Ace) (sp.ACE) (set 31)",MACHINE_IS_SKELETON_MECHANICAL )
// one of the types here have blanked out padding, possibly a BWB re-release?
-GAME( 199?, sp_gnat ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand National (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_gnata ,sp_gnat ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand National (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_gnatb ,sp_gnat ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand National (Ace) (sp.ACE) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_gnatc ,sp_gnat ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand National (Ace) (sp.ACE) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_gnatd ,sp_gnat ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand National (Ace) (sp.ACE) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_gnate ,sp_gnat ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand National (Ace) (sp.ACE) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_gnatf ,sp_gnat ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand National (Ace) (sp.ACE) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_gnatg ,sp_gnat ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand National (Ace) (sp.ACE) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_gnath ,sp_gnat ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand National (Ace) (sp.ACE) (set 9)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_gnati ,sp_gnat ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand National (Ace) (sp.ACE) (set 10)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_gnatj ,sp_gnat ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand National (Ace) (sp.ACE) (set 11)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_gnatk ,sp_gnat ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand National (Ace) (sp.ACE) (set 12)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_gnatl ,sp_gnat ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand National (Ace) (sp.ACE) (set 13)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_gnatm ,sp_gnat ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand National (Ace) (sp.ACE) (set 14)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_gnatn ,sp_gnat ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand National (Ace) (sp.ACE) (set 15)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_gnato ,sp_gnat ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand National (Ace) (sp.ACE) (set 16)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_gnat ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand National (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_gnata ,sp_gnat ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand National (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_gnatb ,sp_gnat ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand National (Ace) (sp.ACE) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_gnatc ,sp_gnat ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand National (Ace) (sp.ACE) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_gnatd ,sp_gnat ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand National (Ace) (sp.ACE) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_gnate ,sp_gnat ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand National (Ace) (sp.ACE) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_gnatf ,sp_gnat ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand National (Ace) (sp.ACE) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_gnatg ,sp_gnat ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand National (Ace) (sp.ACE) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_gnath ,sp_gnat ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand National (Ace) (sp.ACE) (set 9)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_gnati ,sp_gnat ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand National (Ace) (sp.ACE) (set 10)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_gnatj ,sp_gnat ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand National (Ace) (sp.ACE) (set 11)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_gnatk ,sp_gnat ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand National (Ace) (sp.ACE) (set 12)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_gnatl ,sp_gnat ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand National (Ace) (sp.ACE) (set 13)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_gnatm ,sp_gnat ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand National (Ace) (sp.ACE) (set 14)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_gnatn ,sp_gnat ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand National (Ace) (sp.ACE) (set 15)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_gnato ,sp_gnat ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand National (Ace) (sp.ACE) (set 16)",MACHINE_IS_SKELETON_MECHANICAL )
// seems to be a variation on Grand National (prize cabinet?)
-GAME( 199?, sp_przna ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Prize National (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_prznaa ,sp_przna ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Prize National (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_prznab ,sp_przna ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Prize National (Ace) (sp.ACE) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_prznac ,sp_przna ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Prize National (Ace) (sp.ACE) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_prznad ,sp_przna ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Prize National (Ace) (sp.ACE) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_prznae ,sp_przna ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Prize National (Ace) (sp.ACE) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_prznaf ,sp_przna ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Prize National (Ace) (sp.ACE) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_prznag ,sp_przna ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Prize National (Ace) (sp.ACE) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, sp_gprix ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand Prix (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_gprixa ,sp_gprix ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand Prix (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_gprixb ,sp_gprix ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand Prix (Ace) (sp.ACE) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_gprixc ,sp_gprix ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand Prix (Ace) (sp.ACE) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_gprixd ,sp_gprix ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand Prix (Ace) (sp.ACE) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_gprixe ,sp_gprix ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand Prix (Ace) (sp.ACE) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_gprixf ,sp_gprix ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand Prix (Ace) (sp.ACE) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_gprixg ,sp_gprix ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand Prix (Ace) (sp.ACE) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_gprixh ,sp_gprix ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand Prix (Ace) (sp.ACE) (set 9)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, sp_hideh ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi De Hi (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_hideha ,sp_hideh ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi De Hi (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_hidehb ,sp_hideh ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi De Hi (Ace) (sp.ACE) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_hidehc ,sp_hideh ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi De Hi (Ace) (sp.ACE) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_hidehd ,sp_hideh ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi De Hi (Ace) (sp.ACE) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_hidehe ,sp_hideh ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi De Hi (Ace) (sp.ACE) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_hidehf ,sp_hideh ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi De Hi (Ace) (sp.ACE) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_hidehg ,sp_hideh ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi De Hi (Ace) (sp.ACE) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_hidehh ,sp_hideh ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi De Hi (Ace) (sp.ACE) (set 9)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_hidehi ,sp_hideh ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi De Hi (Ace) (sp.ACE) (set 10)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_hidehj ,sp_hideh ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi De Hi (Ace) (sp.ACE) (set 11)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_hidehk ,sp_hideh ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi De Hi (Ace) (sp.ACE) (set 12)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_hidehl ,sp_hideh ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi De Hi (Ace) (sp.ACE) (set 13)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_hidehm ,sp_hideh ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi De Hi (Ace) (sp.ACE) (set 14)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_hidehn ,sp_hideh ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi De Hi (Ace) (sp.ACE) (set 15)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_hideho ,sp_hideh ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi De Hi (Ace) (sp.ACE) (set 16)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_hidehp ,sp_hideh ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi De Hi (Ace) (sp.ACE) (set 17)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, sp_hifly ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi Flyer (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_hiflya ,sp_hifly ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi Flyer (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_hiflyb ,sp_hifly ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi Flyer (Ace) (sp.ACE) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_hiflyc ,sp_hifly ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi Flyer (Ace) (sp.ACE) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_hiflyd ,sp_hifly ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi Flyer (Ace) (sp.ACE) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_hiflye ,sp_hifly ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi Flyer (Ace) (sp.ACE) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_hiflyf ,sp_hifly ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi Flyer (Ace) (sp.ACE) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_hiflyg ,sp_hifly ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi Flyer (Ace) (sp.ACE) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_hiflyh ,sp_hifly ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi Flyer (Ace) (sp.ACE) (set 9)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_hiflyi ,sp_hifly ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi Flyer (Ace) (sp.ACE) (set 10)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_hiflyj ,sp_hifly ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi Flyer (Ace) (sp.ACE) (set 11)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_hiflyk ,sp_hifly ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi Flyer (Ace) (sp.ACE) (set 12)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_hiflyl ,sp_hifly ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi Flyer (Ace) (sp.ACE) (set 13)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_hiflym ,sp_hifly ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi Flyer (Ace) (sp.ACE) (set 14)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_hiflyn ,sp_hifly ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi Flyer (Ace) (sp.ACE) (set 15)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_hiflyo ,sp_hifly ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi Flyer (Ace) (sp.ACE) (set 16)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_hiflyp ,sp_hifly ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi Flyer (Ace) (sp.ACE) (set 17)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, sp_juras ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Jurassic Trail (Ace) (sp.ACE)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, sp_openb ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Open The Box (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_openba ,sp_openb ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Open The Box (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_openbb ,sp_openb ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Open The Box (Ace) (sp.ACE) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_openbc ,sp_openb ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Open The Box (Ace) (sp.ACE) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_openbd ,sp_openb ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Open The Box (Ace) (sp.ACE) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_openbe ,sp_openb ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Open The Box (Ace) (sp.ACE) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_openbf ,sp_openb ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Open The Box (Ace) (sp.ACE) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_openbg ,sp_openb ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Open The Box (Ace) (sp.ACE) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_openbh ,sp_openb ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Open The Box (Ace) (sp.ACE) (set 9)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_openbi ,sp_openb ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Open The Box (Ace) (sp.ACE) (set 10)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, sp_payrs ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Payrise (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_payrsa ,sp_payrs ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Payrise (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_payrsb ,sp_payrs ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Payrise (Ace) (sp.ACE) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_payrsc ,sp_payrs ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Payrise (Ace) (sp.ACE) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_payrsd ,sp_payrs ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Payrise (Ace) (sp.ACE) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_payrse ,sp_payrs ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Payrise (Ace) (sp.ACE) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_payrsf ,sp_payrs ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Payrise (Ace) (sp.ACE) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_payrsg ,sp_payrs ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Payrise (Ace) (sp.ACE) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_payrsh ,sp_payrs ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Payrise (Ace) (sp.ACE) (set 9)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, sp_playa ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Play It Again (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_playaa ,sp_playa ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Play It Again (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_playab ,sp_playa ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Play It Again (Ace) (sp.ACE) (set 3)",GAME_IS_SKELETON_MECHANICAL ) // incomplete
-GAME( 199?, sp_playac ,sp_playa ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Play It Again (Ace) (sp.ACE) (set 4)",GAME_IS_SKELETON_MECHANICAL ) // incomplete
-GAME( 199?, sp_playad ,sp_playa ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Play It Again (Ace) (sp.ACE) (set 5)",GAME_IS_SKELETON_MECHANICAL ) // possible bad pairing
-GAME( 199?, sp_playae ,sp_playa ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Play It Again (Ace) (sp.ACE) (set 6)",GAME_IS_SKELETON_MECHANICAL ) // possible bad pairing
-GAME( 199?, sp_playaf ,sp_playa ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Play It Again (Ace) (sp.ACE) (set 7)",GAME_IS_SKELETON_MECHANICAL ) // possible bad pairing
-GAME( 199?, sp_playag ,sp_playa ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Play It Again (Ace) (sp.ACE) (set 8)",GAME_IS_SKELETON_MECHANICAL ) // possible bad pairing
-GAME( 199?, sp_playah ,sp_playa ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Play It Again (Ace) (sp.ACE) (set 9)",GAME_IS_SKELETON_MECHANICAL ) // possible bad pairing
-GAME( 199?, sp_playai ,sp_playa ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Play It Again (Ace) (sp.ACE) (set 10)",GAME_IS_SKELETON_MECHANICAL ) // possible bad pairing
-
-GAME( 199?, sp_spell ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Spellbound (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_spella ,sp_spell ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Spellbound (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_spellb ,sp_spell ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Spellbound (Ace) (sp.ACE) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_spellc ,sp_spell ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Spellbound (Ace) (sp.ACE) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_spelld ,sp_spell ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Spellbound (Ace) (sp.ACE) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_spelle ,sp_spell ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Spellbound (Ace) (sp.ACE) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_spellf ,sp_spell ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Spellbound (Ace) (sp.ACE) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_spellg ,sp_spell ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Spellbound (Ace) (sp.ACE) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_spelli ,sp_spell ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Spellbound (Ace) (sp.ACE) (set 10)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_spellj ,sp_spell ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Spellbound (Ace) (sp.ACE) (set 11)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, sp_swop ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Swop Shop (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_swopa ,sp_swop ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Swop Shop (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_swopb ,sp_swop ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Swop Shop (Ace) (sp.ACE) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_swopc ,sp_swop ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Swop Shop (Ace) (sp.ACE) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_swopd ,sp_swop ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Swop Shop (Ace) (sp.ACE) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_swope ,sp_swop ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Swop Shop (Ace) (sp.ACE) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_swopf ,sp_swop ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Swop Shop (Ace) (sp.ACE) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_swopg ,sp_swop ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Swop Shop (Ace) (sp.ACE) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, sp_timem ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Time Machine (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_timema ,sp_timem ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Time Machine (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_timemb ,sp_timem ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Time Machine (Ace) (sp.ACE) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_timemc ,sp_timem ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Time Machine (Ace) (sp.ACE) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_timemd ,sp_timem ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Time Machine (Ace) (sp.ACE) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_timeme ,sp_timem ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Time Machine (Ace) (sp.ACE) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_timemf ,sp_timem ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Time Machine (Ace) (sp.ACE) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_timemg ,sp_timem ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Time Machine (Ace) (sp.ACE) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_timemh ,sp_timem ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Time Machine (Ace) (sp.ACE) (set 9)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_timemi ,sp_timem ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Time Machine (Ace) (sp.ACE) (set 10)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_timemj ,sp_timem ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Time Machine (Ace) (sp.ACE) (set 11)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_timemk ,sp_timem ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Time Machine (Ace) (sp.ACE) (set 12)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, sp_tz ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_tza ,sp_tz ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_tzb ,sp_tz ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone (Ace) (sp.ACE) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_tzc ,sp_tz ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone (Ace) (sp.ACE) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_tzd ,sp_tz ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone (Ace) (sp.ACE) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_tze ,sp_tz ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone (Ace) (sp.ACE) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_tzf ,sp_tz ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone (Ace) (sp.ACE) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_tzg ,sp_tz ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone (Ace) (sp.ACE) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_tzh ,sp_tz ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone (Ace) (sp.ACE) (set 9)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_tzbwb ,sp_tz ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace / Bwb", "Twilight Zone (Ace/Bwb) (sp.ACE)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, sp_tzfe ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_tzfea ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_tzfeb ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_tzfec ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_tzfed ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_tzfee ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_tzfef ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_tzfeg ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_tzfeh ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 9)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_tzfei ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 10)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_tzfej ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 11)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_tzfek ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 12)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_tzfel ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 13)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_tzfem ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 14)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_tzfen ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 15)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_tzfeo ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 16)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_tzfep ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 17)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_tzfeq ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 18)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_tzfer ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 19)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_tzfes ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 20)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_tzfet ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 21)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_tzfeu ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 22)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, sp_beau ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Beau Peep (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_beaua ,sp_beau ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Beau Peep (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_beaub ,sp_beau ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Beau Peep (Ace) (sp.ACE) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_beauc ,sp_beau ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Beau Peep (Ace) (sp.ACE) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_beaud ,sp_beau ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Beau Peep (Ace) (sp.ACE) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_beaue ,sp_beau ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Beau Peep (Ace) (sp.ACE) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_beauf ,sp_beau ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Beau Peep (Ace) (sp.ACE) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_beaug ,sp_beau ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Beau Peep (Ace) (sp.ACE) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_beauh ,sp_beau ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Beau Peep (Ace) (sp.ACE) (set 9)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, sp_bigbd ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Big Break Deluxe Club (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_bigbda ,sp_bigbd ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Big Break Deluxe Club (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, sp_brkbk ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Break The Bank (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_brkbka ,sp_brkbk ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Break The Bank (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_brkbkb ,sp_brkbk ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Break The Bank (Ace) (sp.ACE) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_brkbkc ,sp_brkbk ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Break The Bank (Ace) (sp.ACE) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_brkbkd ,sp_brkbk ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Break The Bank (Ace) (sp.ACE) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, sp_camel ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Camelot (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_camela ,sp_camel ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Camelot (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_camelb ,sp_camel ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Camelot (Ace) (sp.ACE) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_camelc ,sp_camel ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Camelot (Ace) (sp.ACE) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_cameld ,sp_camel ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Camelot (Ace) (sp.ACE) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_camele ,sp_camel ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Camelot (Ace) (sp.ACE) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_camelf ,sp_camel ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Camelot (Ace) (sp.ACE) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_camelg ,sp_camel ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Camelot (Ace) (sp.ACE) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_camelh ,sp_camel ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Camelot (Ace) (sp.ACE) (set 9)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_cameli ,sp_camel ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Camelot (Ace) (sp.ACE) (set 10)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_camelj ,sp_camel ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Camelot (Ace) (sp.ACE) (set 11)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_camelk ,sp_camel ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Camelot (Ace) (sp.ACE) (set 12)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_camell ,sp_camel ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Camelot (Ace) (sp.ACE) (set 13)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_camelm ,sp_camel ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Camelot (Ace) (sp.ACE) (set 14)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_cameln ,sp_camel ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Camelot (Ace) (sp.ACE) (set 15)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_camelo ,sp_camel ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Camelot (Ace) (sp.ACE) (set 16)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, sp_clbna ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Club National (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_clbnaa ,sp_clbna ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Club National (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, sp_coder ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Code Red (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_codera ,sp_coder ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Code Red (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_coderb ,sp_coder ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Code Red (Ace) (sp.ACE) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_coderc ,sp_coder ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Code Red (Ace) (sp.ACE) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_coderd ,sp_coder ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Code Red (Ace) (sp.ACE) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_codere ,sp_coder ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Code Red (Ace) (sp.ACE) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_coderf ,sp_coder ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Code Red (Ace) (sp.ACE) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_coderg ,sp_coder ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Code Red (Ace) (sp.ACE) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, sp_criss ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Criss Cross Cash (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_crissa ,sp_criss ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Criss Cross Cash (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_crissb ,sp_criss ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Criss Cross Cash (Ace) (sp.ACE) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_crissc ,sp_criss ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Criss Cross Cash (Ace) (sp.ACE) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_crissd ,sp_criss ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Criss Cross Cash (Ace) (sp.ACE) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_crisse ,sp_criss ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Criss Cross Cash (Ace) (sp.ACE) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_crissf ,sp_criss ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Criss Cross Cash (Ace) (sp.ACE) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_crissg ,sp_criss ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Criss Cross Cash (Ace) (sp.ACE) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, sp_daytr ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Daytripper (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_daytra ,sp_daytr ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Daytripper (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_daytrb ,sp_daytr ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Daytripper (Ace) (sp.ACE) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_daytrc ,sp_daytr ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Daytripper (Ace) (sp.ACE) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, sp_donky ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Donkey Derby (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_donkya ,sp_donky ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Donkey Derby (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_donkyb ,sp_donky ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Donkey Derby (Ace) (sp.ACE) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_donkyc ,sp_donky ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Donkey Derby (Ace) (sp.ACE) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_donkyd ,sp_donky ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Donkey Derby (Ace) (sp.ACE) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_donkye ,sp_donky ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Donkey Derby (Ace) (sp.ACE) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_donkyf ,sp_donky ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Donkey Derby (Ace) (sp.ACE) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_donkyg ,sp_donky ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Donkey Derby (Ace) (sp.ACE) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, sp_dyour ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Double Your Money (Ace) (sp.ACE)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, sp_festi ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Festival (Spanish) (Ace) (sp.ACE)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, sp_beau2 ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Further Adventures Of Beau Peep (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_beau2a ,sp_beau2 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Further Adventures Of Beau Peep (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_beau2b ,sp_beau2 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Further Adventures Of Beau Peep (Ace) (sp.ACE) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_beau2c ,sp_beau2 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Further Adventures Of Beau Peep (Ace) (sp.ACE) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_beau2d ,sp_beau2 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Further Adventures Of Beau Peep (Ace) (sp.ACE) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_beau2e ,sp_beau2 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Further Adventures Of Beau Peep (Ace) (sp.ACE) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_beau2f ,sp_beau2 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Further Adventures Of Beau Peep (Ace) (sp.ACE) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, sp_ghost ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Ghost Trapper (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_ghosta ,sp_ghost ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Ghost Trapper (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_ghostb ,sp_ghost ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Ghost Trapper (Ace) (sp.ACE) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_ghostc ,sp_ghost ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Ghost Trapper (Ace) (sp.ACE) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_ghostd ,sp_ghost ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Ghost Trapper (Ace) (sp.ACE) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_ghoste ,sp_ghost ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Ghost Trapper (Ace) (sp.ACE) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_ghostf ,sp_ghost ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Ghost Trapper (Ace) (sp.ACE) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_ghostg ,sp_ghost ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Ghost Trapper (Ace) (sp.ACE) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_ghosth ,sp_ghost ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Ghost Trapper (Ace) (sp.ACE) (set 9)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_ghosti ,sp_ghost ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Ghost Trapper (Ace) (sp.ACE) (set 10)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_ghostj ,sp_ghost ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Ghost Trapper (Ace) (sp.ACE) (set 11)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_ghostk ,sp_ghost ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Ghost Trapper (Ace) (sp.ACE) (set 12)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_ghostl ,sp_ghost ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Ghost Trapper (Ace) (sp.ACE) (set 13)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_ghostm ,sp_ghost ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Ghost Trapper (Ace) (sp.ACE) (set 14)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_ghostn ,sp_ghost ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Ghost Trapper (Ace) (sp.ACE) (set 15)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_ghosto ,sp_ghost ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Ghost Trapper (Ace) (sp.ACE) (set 16)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_ghostp ,sp_ghost ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Ghost Trapper (Ace) (sp.ACE) (set 17)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_ghostq ,sp_ghost ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Ghost Trapper (Ace) (sp.ACE) (set 18)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_ghostr ,sp_ghost ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Ghost Trapper (Ace) (sp.ACE) (set 19)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_ghosts ,sp_ghost ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Ghost Trapper (Ace) (sp.ACE) (set 20)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, sp_globe ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Globe Trotter (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_globea ,sp_globe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Globe Trotter (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_globeb ,sp_globe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Globe Trotter (Ace) (sp.ACE) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_globec ,sp_globe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Globe Trotter (Ace) (sp.ACE) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_globed ,sp_globe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Globe Trotter (Ace) (sp.ACE) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_globee ,sp_globe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Globe Trotter (Ace) (sp.ACE) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_globef ,sp_globe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Globe Trotter (Ace) (sp.ACE) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_globeg ,sp_globe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Globe Trotter (Ace) (sp.ACE) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, sp_gol ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Gol (Spanish) (Ace) (sp.ACE)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, sp_golda ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Arrow Club (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_goldaa ,sp_golda ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Arrow Club (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_przna ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Prize National (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_prznaa ,sp_przna ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Prize National (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_prznab ,sp_przna ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Prize National (Ace) (sp.ACE) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_prznac ,sp_przna ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Prize National (Ace) (sp.ACE) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_prznad ,sp_przna ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Prize National (Ace) (sp.ACE) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_prznae ,sp_przna ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Prize National (Ace) (sp.ACE) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_prznaf ,sp_przna ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Prize National (Ace) (sp.ACE) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_prznag ,sp_przna ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Prize National (Ace) (sp.ACE) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, sp_gprix ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand Prix (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_gprixa ,sp_gprix ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand Prix (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_gprixb ,sp_gprix ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand Prix (Ace) (sp.ACE) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_gprixc ,sp_gprix ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand Prix (Ace) (sp.ACE) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_gprixd ,sp_gprix ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand Prix (Ace) (sp.ACE) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_gprixe ,sp_gprix ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand Prix (Ace) (sp.ACE) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_gprixf ,sp_gprix ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand Prix (Ace) (sp.ACE) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_gprixg ,sp_gprix ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand Prix (Ace) (sp.ACE) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_gprixh ,sp_gprix ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Grand Prix (Ace) (sp.ACE) (set 9)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, sp_hideh ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi De Hi (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_hideha ,sp_hideh ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi De Hi (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_hidehb ,sp_hideh ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi De Hi (Ace) (sp.ACE) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_hidehc ,sp_hideh ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi De Hi (Ace) (sp.ACE) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_hidehd ,sp_hideh ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi De Hi (Ace) (sp.ACE) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_hidehe ,sp_hideh ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi De Hi (Ace) (sp.ACE) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_hidehf ,sp_hideh ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi De Hi (Ace) (sp.ACE) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_hidehg ,sp_hideh ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi De Hi (Ace) (sp.ACE) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_hidehh ,sp_hideh ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi De Hi (Ace) (sp.ACE) (set 9)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_hidehi ,sp_hideh ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi De Hi (Ace) (sp.ACE) (set 10)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_hidehj ,sp_hideh ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi De Hi (Ace) (sp.ACE) (set 11)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_hidehk ,sp_hideh ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi De Hi (Ace) (sp.ACE) (set 12)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_hidehl ,sp_hideh ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi De Hi (Ace) (sp.ACE) (set 13)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_hidehm ,sp_hideh ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi De Hi (Ace) (sp.ACE) (set 14)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_hidehn ,sp_hideh ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi De Hi (Ace) (sp.ACE) (set 15)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_hideho ,sp_hideh ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi De Hi (Ace) (sp.ACE) (set 16)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_hidehp ,sp_hideh ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi De Hi (Ace) (sp.ACE) (set 17)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, sp_hifly ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi Flyer (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_hiflya ,sp_hifly ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi Flyer (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_hiflyb ,sp_hifly ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi Flyer (Ace) (sp.ACE) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_hiflyc ,sp_hifly ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi Flyer (Ace) (sp.ACE) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_hiflyd ,sp_hifly ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi Flyer (Ace) (sp.ACE) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_hiflye ,sp_hifly ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi Flyer (Ace) (sp.ACE) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_hiflyf ,sp_hifly ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi Flyer (Ace) (sp.ACE) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_hiflyg ,sp_hifly ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi Flyer (Ace) (sp.ACE) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_hiflyh ,sp_hifly ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi Flyer (Ace) (sp.ACE) (set 9)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_hiflyi ,sp_hifly ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi Flyer (Ace) (sp.ACE) (set 10)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_hiflyj ,sp_hifly ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi Flyer (Ace) (sp.ACE) (set 11)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_hiflyk ,sp_hifly ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi Flyer (Ace) (sp.ACE) (set 12)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_hiflyl ,sp_hifly ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi Flyer (Ace) (sp.ACE) (set 13)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_hiflym ,sp_hifly ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi Flyer (Ace) (sp.ACE) (set 14)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_hiflyn ,sp_hifly ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi Flyer (Ace) (sp.ACE) (set 15)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_hiflyo ,sp_hifly ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi Flyer (Ace) (sp.ACE) (set 16)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_hiflyp ,sp_hifly ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Hi Flyer (Ace) (sp.ACE) (set 17)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, sp_juras ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Jurassic Trail (Ace) (sp.ACE)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, sp_openb ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Open The Box (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_openba ,sp_openb ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Open The Box (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_openbb ,sp_openb ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Open The Box (Ace) (sp.ACE) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_openbc ,sp_openb ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Open The Box (Ace) (sp.ACE) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_openbd ,sp_openb ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Open The Box (Ace) (sp.ACE) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_openbe ,sp_openb ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Open The Box (Ace) (sp.ACE) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_openbf ,sp_openb ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Open The Box (Ace) (sp.ACE) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_openbg ,sp_openb ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Open The Box (Ace) (sp.ACE) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_openbh ,sp_openb ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Open The Box (Ace) (sp.ACE) (set 9)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_openbi ,sp_openb ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Open The Box (Ace) (sp.ACE) (set 10)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, sp_payrs ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Payrise (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_payrsa ,sp_payrs ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Payrise (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_payrsb ,sp_payrs ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Payrise (Ace) (sp.ACE) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_payrsc ,sp_payrs ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Payrise (Ace) (sp.ACE) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_payrsd ,sp_payrs ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Payrise (Ace) (sp.ACE) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_payrse ,sp_payrs ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Payrise (Ace) (sp.ACE) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_payrsf ,sp_payrs ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Payrise (Ace) (sp.ACE) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_payrsg ,sp_payrs ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Payrise (Ace) (sp.ACE) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_payrsh ,sp_payrs ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Payrise (Ace) (sp.ACE) (set 9)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, sp_playa ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Play It Again (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_playaa ,sp_playa ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Play It Again (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_playab ,sp_playa ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Play It Again (Ace) (sp.ACE) (set 3)",MACHINE_IS_SKELETON_MECHANICAL ) // incomplete
+GAME( 199?, sp_playac ,sp_playa ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Play It Again (Ace) (sp.ACE) (set 4)",MACHINE_IS_SKELETON_MECHANICAL ) // incomplete
+GAME( 199?, sp_playad ,sp_playa ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Play It Again (Ace) (sp.ACE) (set 5)",MACHINE_IS_SKELETON_MECHANICAL ) // possible bad pairing
+GAME( 199?, sp_playae ,sp_playa ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Play It Again (Ace) (sp.ACE) (set 6)",MACHINE_IS_SKELETON_MECHANICAL ) // possible bad pairing
+GAME( 199?, sp_playaf ,sp_playa ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Play It Again (Ace) (sp.ACE) (set 7)",MACHINE_IS_SKELETON_MECHANICAL ) // possible bad pairing
+GAME( 199?, sp_playag ,sp_playa ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Play It Again (Ace) (sp.ACE) (set 8)",MACHINE_IS_SKELETON_MECHANICAL ) // possible bad pairing
+GAME( 199?, sp_playah ,sp_playa ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Play It Again (Ace) (sp.ACE) (set 9)",MACHINE_IS_SKELETON_MECHANICAL ) // possible bad pairing
+GAME( 199?, sp_playai ,sp_playa ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Play It Again (Ace) (sp.ACE) (set 10)",MACHINE_IS_SKELETON_MECHANICAL ) // possible bad pairing
+
+GAME( 199?, sp_spell ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Spellbound (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_spella ,sp_spell ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Spellbound (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_spellb ,sp_spell ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Spellbound (Ace) (sp.ACE) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_spellc ,sp_spell ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Spellbound (Ace) (sp.ACE) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_spelld ,sp_spell ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Spellbound (Ace) (sp.ACE) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_spelle ,sp_spell ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Spellbound (Ace) (sp.ACE) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_spellf ,sp_spell ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Spellbound (Ace) (sp.ACE) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_spellg ,sp_spell ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Spellbound (Ace) (sp.ACE) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_spelli ,sp_spell ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Spellbound (Ace) (sp.ACE) (set 10)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_spellj ,sp_spell ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Spellbound (Ace) (sp.ACE) (set 11)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, sp_swop ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Swop Shop (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_swopa ,sp_swop ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Swop Shop (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_swopb ,sp_swop ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Swop Shop (Ace) (sp.ACE) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_swopc ,sp_swop ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Swop Shop (Ace) (sp.ACE) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_swopd ,sp_swop ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Swop Shop (Ace) (sp.ACE) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_swope ,sp_swop ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Swop Shop (Ace) (sp.ACE) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_swopf ,sp_swop ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Swop Shop (Ace) (sp.ACE) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_swopg ,sp_swop ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Swop Shop (Ace) (sp.ACE) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, sp_timem ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Time Machine (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_timema ,sp_timem ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Time Machine (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_timemb ,sp_timem ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Time Machine (Ace) (sp.ACE) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_timemc ,sp_timem ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Time Machine (Ace) (sp.ACE) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_timemd ,sp_timem ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Time Machine (Ace) (sp.ACE) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_timeme ,sp_timem ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Time Machine (Ace) (sp.ACE) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_timemf ,sp_timem ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Time Machine (Ace) (sp.ACE) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_timemg ,sp_timem ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Time Machine (Ace) (sp.ACE) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_timemh ,sp_timem ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Time Machine (Ace) (sp.ACE) (set 9)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_timemi ,sp_timem ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Time Machine (Ace) (sp.ACE) (set 10)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_timemj ,sp_timem ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Time Machine (Ace) (sp.ACE) (set 11)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_timemk ,sp_timem ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Time Machine (Ace) (sp.ACE) (set 12)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, sp_tz ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_tza ,sp_tz ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_tzb ,sp_tz ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone (Ace) (sp.ACE) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_tzc ,sp_tz ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone (Ace) (sp.ACE) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_tzd ,sp_tz ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone (Ace) (sp.ACE) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_tze ,sp_tz ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone (Ace) (sp.ACE) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_tzf ,sp_tz ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone (Ace) (sp.ACE) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_tzg ,sp_tz ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone (Ace) (sp.ACE) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_tzh ,sp_tz ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone (Ace) (sp.ACE) (set 9)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_tzbwb ,sp_tz ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace / Bwb", "Twilight Zone (Ace/Bwb) (sp.ACE)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, sp_tzfe ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_tzfea ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_tzfeb ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_tzfec ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_tzfed ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_tzfee ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_tzfef ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_tzfeg ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_tzfeh ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 9)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_tzfei ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 10)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_tzfej ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 11)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_tzfek ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 12)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_tzfel ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 13)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_tzfem ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 14)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_tzfen ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 15)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_tzfeo ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 16)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_tzfep ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 17)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_tzfeq ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 18)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_tzfer ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 19)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_tzfes ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 20)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_tzfet ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 21)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_tzfeu ,sp_tzfe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Twilight Zone - Further Encounters (Ace) (sp.ACE) (set 22)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, sp_beau ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Beau Peep (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_beaua ,sp_beau ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Beau Peep (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_beaub ,sp_beau ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Beau Peep (Ace) (sp.ACE) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_beauc ,sp_beau ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Beau Peep (Ace) (sp.ACE) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_beaud ,sp_beau ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Beau Peep (Ace) (sp.ACE) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_beaue ,sp_beau ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Beau Peep (Ace) (sp.ACE) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_beauf ,sp_beau ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Beau Peep (Ace) (sp.ACE) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_beaug ,sp_beau ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Beau Peep (Ace) (sp.ACE) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_beauh ,sp_beau ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Beau Peep (Ace) (sp.ACE) (set 9)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, sp_bigbd ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Big Break Deluxe Club (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_bigbda ,sp_bigbd ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Big Break Deluxe Club (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, sp_brkbk ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Break The Bank (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_brkbka ,sp_brkbk ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Break The Bank (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_brkbkb ,sp_brkbk ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Break The Bank (Ace) (sp.ACE) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_brkbkc ,sp_brkbk ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Break The Bank (Ace) (sp.ACE) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_brkbkd ,sp_brkbk ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Break The Bank (Ace) (sp.ACE) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, sp_camel ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Camelot (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_camela ,sp_camel ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Camelot (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_camelb ,sp_camel ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Camelot (Ace) (sp.ACE) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_camelc ,sp_camel ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Camelot (Ace) (sp.ACE) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_cameld ,sp_camel ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Camelot (Ace) (sp.ACE) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_camele ,sp_camel ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Camelot (Ace) (sp.ACE) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_camelf ,sp_camel ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Camelot (Ace) (sp.ACE) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_camelg ,sp_camel ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Camelot (Ace) (sp.ACE) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_camelh ,sp_camel ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Camelot (Ace) (sp.ACE) (set 9)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_cameli ,sp_camel ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Camelot (Ace) (sp.ACE) (set 10)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_camelj ,sp_camel ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Camelot (Ace) (sp.ACE) (set 11)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_camelk ,sp_camel ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Camelot (Ace) (sp.ACE) (set 12)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_camell ,sp_camel ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Camelot (Ace) (sp.ACE) (set 13)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_camelm ,sp_camel ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Camelot (Ace) (sp.ACE) (set 14)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_cameln ,sp_camel ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Camelot (Ace) (sp.ACE) (set 15)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_camelo ,sp_camel ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Camelot (Ace) (sp.ACE) (set 16)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, sp_clbna ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Club National (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_clbnaa ,sp_clbna ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Club National (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, sp_coder ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Code Red (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_codera ,sp_coder ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Code Red (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_coderb ,sp_coder ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Code Red (Ace) (sp.ACE) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_coderc ,sp_coder ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Code Red (Ace) (sp.ACE) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_coderd ,sp_coder ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Code Red (Ace) (sp.ACE) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_codere ,sp_coder ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Code Red (Ace) (sp.ACE) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_coderf ,sp_coder ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Code Red (Ace) (sp.ACE) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_coderg ,sp_coder ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Code Red (Ace) (sp.ACE) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, sp_criss ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Criss Cross Cash (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_crissa ,sp_criss ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Criss Cross Cash (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_crissb ,sp_criss ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Criss Cross Cash (Ace) (sp.ACE) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_crissc ,sp_criss ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Criss Cross Cash (Ace) (sp.ACE) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_crissd ,sp_criss ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Criss Cross Cash (Ace) (sp.ACE) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_crisse ,sp_criss ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Criss Cross Cash (Ace) (sp.ACE) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_crissf ,sp_criss ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Criss Cross Cash (Ace) (sp.ACE) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_crissg ,sp_criss ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Criss Cross Cash (Ace) (sp.ACE) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, sp_daytr ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Daytripper (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_daytra ,sp_daytr ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Daytripper (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_daytrb ,sp_daytr ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Daytripper (Ace) (sp.ACE) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_daytrc ,sp_daytr ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Daytripper (Ace) (sp.ACE) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, sp_donky ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Donkey Derby (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_donkya ,sp_donky ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Donkey Derby (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_donkyb ,sp_donky ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Donkey Derby (Ace) (sp.ACE) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_donkyc ,sp_donky ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Donkey Derby (Ace) (sp.ACE) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_donkyd ,sp_donky ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Donkey Derby (Ace) (sp.ACE) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_donkye ,sp_donky ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Donkey Derby (Ace) (sp.ACE) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_donkyf ,sp_donky ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Donkey Derby (Ace) (sp.ACE) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_donkyg ,sp_donky ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Donkey Derby (Ace) (sp.ACE) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, sp_dyour ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Double Your Money (Ace) (sp.ACE)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, sp_festi ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Festival (Spanish) (Ace) (sp.ACE)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, sp_beau2 ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Further Adventures Of Beau Peep (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_beau2a ,sp_beau2 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Further Adventures Of Beau Peep (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_beau2b ,sp_beau2 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Further Adventures Of Beau Peep (Ace) (sp.ACE) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_beau2c ,sp_beau2 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Further Adventures Of Beau Peep (Ace) (sp.ACE) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_beau2d ,sp_beau2 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Further Adventures Of Beau Peep (Ace) (sp.ACE) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_beau2e ,sp_beau2 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Further Adventures Of Beau Peep (Ace) (sp.ACE) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_beau2f ,sp_beau2 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Further Adventures Of Beau Peep (Ace) (sp.ACE) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, sp_ghost ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Ghost Trapper (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_ghosta ,sp_ghost ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Ghost Trapper (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_ghostb ,sp_ghost ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Ghost Trapper (Ace) (sp.ACE) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_ghostc ,sp_ghost ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Ghost Trapper (Ace) (sp.ACE) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_ghostd ,sp_ghost ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Ghost Trapper (Ace) (sp.ACE) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_ghoste ,sp_ghost ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Ghost Trapper (Ace) (sp.ACE) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_ghostf ,sp_ghost ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Ghost Trapper (Ace) (sp.ACE) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_ghostg ,sp_ghost ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Ghost Trapper (Ace) (sp.ACE) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_ghosth ,sp_ghost ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Ghost Trapper (Ace) (sp.ACE) (set 9)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_ghosti ,sp_ghost ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Ghost Trapper (Ace) (sp.ACE) (set 10)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_ghostj ,sp_ghost ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Ghost Trapper (Ace) (sp.ACE) (set 11)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_ghostk ,sp_ghost ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Ghost Trapper (Ace) (sp.ACE) (set 12)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_ghostl ,sp_ghost ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Ghost Trapper (Ace) (sp.ACE) (set 13)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_ghostm ,sp_ghost ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Ghost Trapper (Ace) (sp.ACE) (set 14)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_ghostn ,sp_ghost ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Ghost Trapper (Ace) (sp.ACE) (set 15)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_ghosto ,sp_ghost ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Ghost Trapper (Ace) (sp.ACE) (set 16)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_ghostp ,sp_ghost ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Ghost Trapper (Ace) (sp.ACE) (set 17)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_ghostq ,sp_ghost ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Ghost Trapper (Ace) (sp.ACE) (set 18)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_ghostr ,sp_ghost ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Ghost Trapper (Ace) (sp.ACE) (set 19)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_ghosts ,sp_ghost ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Ghost Trapper (Ace) (sp.ACE) (set 20)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, sp_globe ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Globe Trotter (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_globea ,sp_globe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Globe Trotter (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_globeb ,sp_globe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Globe Trotter (Ace) (sp.ACE) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_globec ,sp_globe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Globe Trotter (Ace) (sp.ACE) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_globed ,sp_globe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Globe Trotter (Ace) (sp.ACE) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_globee ,sp_globe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Globe Trotter (Ace) (sp.ACE) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_globef ,sp_globe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Globe Trotter (Ace) (sp.ACE) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_globeg ,sp_globe ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Globe Trotter (Ace) (sp.ACE) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, sp_gol ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Gol (Spanish) (Ace) (sp.ACE)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, sp_golda ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Arrow Club (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_goldaa ,sp_golda ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Arrow Club (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
// These contain lots of 'Golden Streak' strings, as well as 'Have you got the Golden Touch?' strings
-GAME( 199?, sp_golds ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Streak (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_goldsa ,sp_golds ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Streak (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_goldsb ,sp_golds ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Streak (Ace) (sp.ACE) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_goldsc ,sp_golds ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Streak (Ace) (sp.ACE) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_goldsd ,sp_golds ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Streak (Ace) (sp.ACE) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_goldse ,sp_golds ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Streak (Ace) (sp.ACE) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_goldsf ,sp_golds ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Streak (Ace) (sp.ACE) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_goldsg ,sp_golds ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Streak (Ace) (sp.ACE) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_goldsh ,sp_golds ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Streak (Ace) (sp.ACE) (set 9)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_golds ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Streak (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_goldsa ,sp_golds ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Streak (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_goldsb ,sp_golds ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Streak (Ace) (sp.ACE) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_goldsc ,sp_golds ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Streak (Ace) (sp.ACE) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_goldsd ,sp_golds ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Streak (Ace) (sp.ACE) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_goldse ,sp_golds ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Streak (Ace) (sp.ACE) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_goldsf ,sp_golds ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Streak (Ace) (sp.ACE) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_goldsg ,sp_golds ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Streak (Ace) (sp.ACE) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_goldsh ,sp_golds ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Streak (Ace) (sp.ACE) (set 9)",MACHINE_IS_SKELETON_MECHANICAL )
// Very similar to above, but many of the 'Golden Streak' strings have been changed to Golden Touch, header still says Golden Streak tho
-GAME( 199?, sp_goldt ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Streak (Golden Touch) (Ace) (sp.ACE)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, sp_here ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Here We Go (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_herea ,sp_here ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Here We Go (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_hereb ,sp_here ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Here We Go (Ace) (sp.ACE) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_herec ,sp_here ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Here We Go (Ace) (sp.ACE) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_hered ,sp_here ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Here We Go (Ace) (sp.ACE) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_heree ,sp_here ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Here We Go (Ace) (sp.ACE) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_heref ,sp_here ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Here We Go (Ace) (sp.ACE) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_hereg ,sp_here ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Here We Go (Ace) (sp.ACE) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, sp_holid ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Holiday Club (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_holida ,sp_holid ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Holiday Club (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, sp_lotto ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Lotto (Spanish) (Ace) (sp.ACE)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, sp_magmo ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Magic Money (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_magmoa ,sp_magmo ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Magic Money (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_magmob ,sp_magmo ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Magic Money (Ace) (sp.ACE) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_magmoc ,sp_magmo ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Magic Money (Ace) (sp.ACE) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_magmod ,sp_magmo ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Magic Money (Ace) (sp.ACE) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, sp_megmo ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Mega Money (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_megmoa ,sp_megmo ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Mega Money (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_megmob ,sp_megmo ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Mega Money (Ace) (sp.ACE) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_megmoc ,sp_megmo ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Mega Money (Ace) (sp.ACE) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_megmod ,sp_megmo ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Mega Money (Ace) (sp.ACE) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_megmoe ,sp_megmo ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Mega Money (Ace) (sp.ACE) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_megmof ,sp_megmo ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Mega Money (Ace) (sp.ACE) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_megmog ,sp_megmo ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Mega Money (Ace) (sp.ACE) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, sp_monma ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Money Magic (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_monmaa ,sp_monma ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Money Magic (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_monmab ,sp_monma ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Money Magic (Ace) (sp.ACE) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_monmac ,sp_monma ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Money Magic (Ace) (sp.ACE) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_monmad ,sp_monma ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Money Magic (Ace) (sp.ACE) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, sp_monmo ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Money Mountain (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_monmoa ,sp_monmo ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Money Mountain (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_monmob ,sp_monmo ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Money Mountain (Ace) (sp.ACE) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_monmoc ,sp_monmo ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Money Mountain (Ace) (sp.ACE) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_monmod ,sp_monmo ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Money Mountain (Ace) (sp.ACE) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_monmoe ,sp_monmo ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Money Mountain (Ace) (sp.ACE) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_monmof ,sp_monmo ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Money Mountain (Ace) (sp.ACE) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_monmog ,sp_monmo ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Money Mountain (Ace) (sp.ACE) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, sp_nudex ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Nudge Explosion (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_nudexa ,sp_nudex ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Nudge Explosion (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, sp_onbox ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Box (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_onboxa ,sp_onbox ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Box (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_onboxb ,sp_onbox ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Box (Ace) (sp.ACE) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_onboxc ,sp_onbox ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Box (Ace) (sp.ACE) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_onboxd ,sp_onbox ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Box (Ace) (sp.ACE) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_onboxe ,sp_onbox ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Box (Ace) (sp.ACE) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_onboxf ,sp_onbox ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Box (Ace) (sp.ACE) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_onboxg ,sp_onbox ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Box (Ace) (sp.ACE) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_onboxh ,sp_onbox ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Box (Ace) (sp.ACE) (set 9)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_onboxi ,sp_onbox ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Box (Ace) (sp.ACE) (set 10)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_onboxj ,sp_onbox ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Box (Ace) (sp.ACE) (set 11)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_onboxk ,sp_onbox ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Box (Ace) (sp.ACE) (set 12)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_onboxl ,sp_onbox ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Box (Ace) (sp.ACE) (set 13)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_onboxm ,sp_onbox ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Box (Ace) (sp.ACE) (set 14)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_onboxn ,sp_onbox ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Box (Ace) (sp.ACE) (set 15)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, sp_piste ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Piste (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_pistea ,sp_piste ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Piste (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_pisteb ,sp_piste ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Piste (Ace) (sp.ACE) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_pistec ,sp_piste ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Piste (Ace) (sp.ACE) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_pisted ,sp_piste ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Piste (Ace) (sp.ACE) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_pistee ,sp_piste ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Piste (Ace) (sp.ACE) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_pistef ,sp_piste ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Piste (Ace) (sp.ACE) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_pisteg ,sp_piste ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Piste (Ace) (sp.ACE) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_pisteh ,sp_piste ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Piste (Ace) (sp.ACE) (set 9)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_pistei ,sp_piste ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Piste (Ace) (sp.ACE) (set 10)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_pistej ,sp_piste ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Piste (Ace) (sp.ACE) (set 11)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_pistek ,sp_piste ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Piste (Ace) (sp.ACE) (set 12)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_pistel ,sp_piste ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Piste (Ace) (sp.ACE) (set 13)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_pistem ,sp_piste ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Piste (Ace) (sp.ACE) (set 14)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_pisten ,sp_piste ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Piste (Ace) (sp.ACE) (set 15)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_pisteo ,sp_piste ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Piste (Ace) (sp.ACE) (set 16)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_pistep ,sp_piste ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Piste (Ace) (sp.ACE) (set 17)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, sp_pound ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Pound For Pound (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_pounda ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Pound For Pound (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_poundb ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Pound For Pound (Ace) (sp.ACE) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_poundc ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Pound For Pound (Ace) (sp.ACE) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_poundd ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Pound For Pound (Ace) (sp.ACE) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_pounde ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Pound For Pound (Ace) (sp.ACE) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_poundf ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Pound For Pound (Ace) (sp.ACE) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_poundg ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Pound For Pound (Ace) (sp.ACE) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_poundh ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Pound For Pound (Ace) (sp.ACE) (set 9)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_poundi ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Pound For Pound (Ace) (sp.ACE) (set 10)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_poundj ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Pound For Pound (Ace) (sp.ACE) (set 11)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_poundk ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Pound For Pound (Ace) (sp.ACE) (set 12)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_poundl ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Pound For Pound (Ace) (sp.ACE) (set 13)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_poundm ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Pound For Pound (Ace) (sp.ACE) (set 14)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_poundn ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Pound For Pound (Ace) (sp.ACE) (set 15)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_poundo ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Pound For Pound (Ace) (sp.ACE) (set 16)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_poundp ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Pound For Pound (Ace) (sp.ACE) (set 17)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_poundbwb ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace / Bwb", "Pound For Pound (Ace/Bwb) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_poundbwba ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace / Bwb", "Pound For Pound (Ace/Bwb) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_poundbwbb ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace / Bwb", "Pound For Pound (Ace/Bwb) (sp.ACE) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_poundbwbc ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace / Bwb", "Pound For Pound (Ace/Bwb) (sp.ACE) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_poundbwbd ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace / Bwb", "Pound For Pound (Ace/Bwb) (sp.ACE) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_poundbwbe ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace / Bwb", "Pound For Pound (Ace/Bwb) (sp.ACE) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_poundbwbf ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace / Bwb", "Pound For Pound (Ace/Bwb) (sp.ACE) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_poundbwbg ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace / Bwb", "Pound For Pound (Ace/Bwb) (sp.ACE) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, sp_road ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Road To Hell (Ace) (sp.ACE)",GAME_IS_SKELETON_MECHANICAL ) // incomplete program
-
-GAME( 199?, sp_skylm ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "The Sky's The Limit Club (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_skylma ,sp_skylm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "The Sky's The Limit Club (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, sp_tkpik ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Take Your Pick (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_tkpika ,sp_tkpik ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Take Your Pick (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_tkpikb ,sp_tkpik ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Take Your Pick (Ace) (sp.ACE) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_tkpikc ,sp_tkpik ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Take Your Pick (Ace) (sp.ACE) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_tkpikd ,sp_tkpik ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Take Your Pick (Ace) (sp.ACE) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_tkpike ,sp_tkpik ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Take Your Pick (Ace) (sp.ACE) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_tkpikf ,sp_tkpik ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Take Your Pick (Ace) (sp.ACE) (set 7)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_goldt ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Golden Streak (Golden Touch) (Ace) (sp.ACE)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, sp_here ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Here We Go (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_herea ,sp_here ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Here We Go (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_hereb ,sp_here ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Here We Go (Ace) (sp.ACE) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_herec ,sp_here ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Here We Go (Ace) (sp.ACE) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_hered ,sp_here ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Here We Go (Ace) (sp.ACE) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_heree ,sp_here ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Here We Go (Ace) (sp.ACE) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_heref ,sp_here ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Here We Go (Ace) (sp.ACE) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_hereg ,sp_here ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Here We Go (Ace) (sp.ACE) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, sp_holid ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Holiday Club (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_holida ,sp_holid ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Holiday Club (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, sp_lotto ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Lotto (Spanish) (Ace) (sp.ACE)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, sp_magmo ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Magic Money (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_magmoa ,sp_magmo ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Magic Money (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_magmob ,sp_magmo ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Magic Money (Ace) (sp.ACE) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_magmoc ,sp_magmo ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Magic Money (Ace) (sp.ACE) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_magmod ,sp_magmo ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Magic Money (Ace) (sp.ACE) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, sp_megmo ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Mega Money (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_megmoa ,sp_megmo ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Mega Money (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_megmob ,sp_megmo ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Mega Money (Ace) (sp.ACE) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_megmoc ,sp_megmo ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Mega Money (Ace) (sp.ACE) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_megmod ,sp_megmo ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Mega Money (Ace) (sp.ACE) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_megmoe ,sp_megmo ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Mega Money (Ace) (sp.ACE) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_megmof ,sp_megmo ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Mega Money (Ace) (sp.ACE) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_megmog ,sp_megmo ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Mega Money (Ace) (sp.ACE) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, sp_monma ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Money Magic (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_monmaa ,sp_monma ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Money Magic (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_monmab ,sp_monma ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Money Magic (Ace) (sp.ACE) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_monmac ,sp_monma ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Money Magic (Ace) (sp.ACE) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_monmad ,sp_monma ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Money Magic (Ace) (sp.ACE) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, sp_monmo ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Money Mountain (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_monmoa ,sp_monmo ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Money Mountain (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_monmob ,sp_monmo ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Money Mountain (Ace) (sp.ACE) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_monmoc ,sp_monmo ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Money Mountain (Ace) (sp.ACE) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_monmod ,sp_monmo ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Money Mountain (Ace) (sp.ACE) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_monmoe ,sp_monmo ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Money Mountain (Ace) (sp.ACE) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_monmof ,sp_monmo ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Money Mountain (Ace) (sp.ACE) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_monmog ,sp_monmo ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Money Mountain (Ace) (sp.ACE) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, sp_nudex ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Nudge Explosion (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_nudexa ,sp_nudex ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Nudge Explosion (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, sp_onbox ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Box (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_onboxa ,sp_onbox ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Box (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_onboxb ,sp_onbox ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Box (Ace) (sp.ACE) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_onboxc ,sp_onbox ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Box (Ace) (sp.ACE) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_onboxd ,sp_onbox ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Box (Ace) (sp.ACE) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_onboxe ,sp_onbox ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Box (Ace) (sp.ACE) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_onboxf ,sp_onbox ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Box (Ace) (sp.ACE) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_onboxg ,sp_onbox ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Box (Ace) (sp.ACE) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_onboxh ,sp_onbox ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Box (Ace) (sp.ACE) (set 9)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_onboxi ,sp_onbox ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Box (Ace) (sp.ACE) (set 10)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_onboxj ,sp_onbox ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Box (Ace) (sp.ACE) (set 11)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_onboxk ,sp_onbox ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Box (Ace) (sp.ACE) (set 12)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_onboxl ,sp_onbox ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Box (Ace) (sp.ACE) (set 13)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_onboxm ,sp_onbox ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Box (Ace) (sp.ACE) (set 14)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_onboxn ,sp_onbox ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Box (Ace) (sp.ACE) (set 15)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, sp_piste ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Piste (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_pistea ,sp_piste ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Piste (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_pisteb ,sp_piste ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Piste (Ace) (sp.ACE) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_pistec ,sp_piste ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Piste (Ace) (sp.ACE) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_pisted ,sp_piste ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Piste (Ace) (sp.ACE) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_pistee ,sp_piste ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Piste (Ace) (sp.ACE) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_pistef ,sp_piste ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Piste (Ace) (sp.ACE) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_pisteg ,sp_piste ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Piste (Ace) (sp.ACE) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_pisteh ,sp_piste ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Piste (Ace) (sp.ACE) (set 9)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_pistei ,sp_piste ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Piste (Ace) (sp.ACE) (set 10)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_pistej ,sp_piste ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Piste (Ace) (sp.ACE) (set 11)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_pistek ,sp_piste ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Piste (Ace) (sp.ACE) (set 12)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_pistel ,sp_piste ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Piste (Ace) (sp.ACE) (set 13)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_pistem ,sp_piste ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Piste (Ace) (sp.ACE) (set 14)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_pisten ,sp_piste ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Piste (Ace) (sp.ACE) (set 15)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_pisteo ,sp_piste ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Piste (Ace) (sp.ACE) (set 16)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_pistep ,sp_piste ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "On The Piste (Ace) (sp.ACE) (set 17)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, sp_pound ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Pound For Pound (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_pounda ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Pound For Pound (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_poundb ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Pound For Pound (Ace) (sp.ACE) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_poundc ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Pound For Pound (Ace) (sp.ACE) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_poundd ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Pound For Pound (Ace) (sp.ACE) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_pounde ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Pound For Pound (Ace) (sp.ACE) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_poundf ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Pound For Pound (Ace) (sp.ACE) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_poundg ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Pound For Pound (Ace) (sp.ACE) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_poundh ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Pound For Pound (Ace) (sp.ACE) (set 9)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_poundi ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Pound For Pound (Ace) (sp.ACE) (set 10)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_poundj ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Pound For Pound (Ace) (sp.ACE) (set 11)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_poundk ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Pound For Pound (Ace) (sp.ACE) (set 12)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_poundl ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Pound For Pound (Ace) (sp.ACE) (set 13)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_poundm ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Pound For Pound (Ace) (sp.ACE) (set 14)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_poundn ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Pound For Pound (Ace) (sp.ACE) (set 15)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_poundo ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Pound For Pound (Ace) (sp.ACE) (set 16)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_poundp ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Pound For Pound (Ace) (sp.ACE) (set 17)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_poundbwb ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace / Bwb", "Pound For Pound (Ace/Bwb) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_poundbwba ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace / Bwb", "Pound For Pound (Ace/Bwb) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_poundbwbb ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace / Bwb", "Pound For Pound (Ace/Bwb) (sp.ACE) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_poundbwbc ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace / Bwb", "Pound For Pound (Ace/Bwb) (sp.ACE) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_poundbwbd ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace / Bwb", "Pound For Pound (Ace/Bwb) (sp.ACE) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_poundbwbe ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace / Bwb", "Pound For Pound (Ace/Bwb) (sp.ACE) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_poundbwbf ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace / Bwb", "Pound For Pound (Ace/Bwb) (sp.ACE) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_poundbwbg ,sp_pound ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace / Bwb", "Pound For Pound (Ace/Bwb) (sp.ACE) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, sp_road ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Road To Hell (Ace) (sp.ACE)",MACHINE_IS_SKELETON_MECHANICAL ) // incomplete program
+
+GAME( 199?, sp_skylm ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "The Sky's The Limit Club (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_skylma ,sp_skylm ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "The Sky's The Limit Club (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, sp_tkpik ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Take Your Pick (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_tkpika ,sp_tkpik ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Take Your Pick (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_tkpikb ,sp_tkpik ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Take Your Pick (Ace) (sp.ACE) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_tkpikc ,sp_tkpik ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Take Your Pick (Ace) (sp.ACE) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_tkpikd ,sp_tkpik ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Take Your Pick (Ace) (sp.ACE) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_tkpike ,sp_tkpik ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Take Your Pick (Ace) (sp.ACE) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_tkpikf ,sp_tkpik ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Take Your Pick (Ace) (sp.ACE) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
// not sure.. looks like 6303 code to me
-GAME( 199?, sp_carry ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Pcp", "Carry On (Pcp) (sp.ACE?) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_carrya ,sp_carry ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Pcp", "Carry On (Pcp) (sp.ACE?) (set 2)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_carry ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Pcp", "Carry On (Pcp) (sp.ACE?) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_carrya ,sp_carry ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Pcp", "Carry On (Pcp) (sp.ACE?) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
// not sure.. looks like 6303 code to me
-GAME( 199?, sp_front ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Bwb", "Final Frontier (Bwb) (sp.ACE?)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_front ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Bwb", "Final Frontier (Bwb) (sp.ACE?)",MACHINE_IS_SKELETON_MECHANICAL )
// not sure.. looks like 6303 code to me
-GAME(199?, sp_atw ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp, ROT0, "Crystal","Around The World In Eighty Days (Crystal) (sp.ACE?)",GAME_IS_SKELETON_MECHANICAL )
+GAME(199?, sp_atw ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp, ROT0, "Crystal","Around The World In Eighty Days (Crystal) (sp.ACE?)",MACHINE_IS_SKELETON_MECHANICAL )
// not sure.. looks like 6303 code to me
-GAME(199?, sp_five ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_cr, ROT0, "Crystal","Fiver Fever (Crystal) (sp.ACE?) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME(199?, sp_fivea ,sp_five ,ace_sp ,ace_sp , ace_sp_state,ace_cr, ROT0, "Crystal","Fiver Fever (Crystal) (sp.ACE?) (set 2)",GAME_IS_SKELETON_MECHANICAL )
+GAME(199?, sp_five ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_cr, ROT0, "Crystal","Fiver Fever (Crystal) (sp.ACE?) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME(199?, sp_fivea ,sp_five ,ace_sp ,ace_sp , ace_sp_state,ace_cr, ROT0, "Crystal","Fiver Fever (Crystal) (sp.ACE?) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
// not sure.. looks like 6303 code to me
-GAME(199?, sp_crun ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_cr, ROT0, "Crystal","Cash Run (Crystal) (sp.ACE?) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME(199?, sp_cruna ,sp_crun ,ace_sp ,ace_sp , ace_sp_state,ace_cr, ROT0, "Crystal","Cash Run (Crystal) (sp.ACE?) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME(199?, sp_crunb ,sp_crun ,ace_sp ,ace_sp , ace_sp_state,ace_cr, ROT0, "Crystal","Cash Run (Crystal) (sp.ACE?) (set 3)",GAME_IS_SKELETON_MECHANICAL )
+GAME(199?, sp_crun ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_cr, ROT0, "Crystal","Cash Run (Crystal) (sp.ACE?) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME(199?, sp_cruna ,sp_crun ,ace_sp ,ace_sp , ace_sp_state,ace_cr, ROT0, "Crystal","Cash Run (Crystal) (sp.ACE?) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME(199?, sp_crunb ,sp_crun ,ace_sp ,ace_sp , ace_sp_state,ace_cr, ROT0, "Crystal","Cash Run (Crystal) (sp.ACE?) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
// incomplete dump (was mixed with the IMPACT rebuild)
-GAME( 199?, sp_roof ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Thru' The Roof (Ace) (sp.ACE) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_roofa ,sp_roof ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Thru' The Roof (Ace) (sp.ACE) (set 2)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_roof ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Thru' The Roof (Ace) (sp.ACE) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, sp_roofa ,sp_roof ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Thru' The Roof (Ace) (sp.ACE) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, sp_cpal ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Caesars Palace (Ace) (sp.ACE?)",GAME_IS_SKELETON_MECHANICAL ) // was in an IMPACT set, might be a different game but CPU seems correct for here
+GAME( 199?, sp_cpal ,0 ,ace_sp ,ace_sp , ace_sp_state,ace_sp ,ROT0 ,"Ace", "Caesars Palace (Ace) (sp.ACE?)",MACHINE_IS_SKELETON_MECHANICAL ) // was in an IMPACT set, might be a different game but CPU seems correct for here
diff --git a/src/mame/drivers/acommand.c b/src/mame/drivers/acommand.c
index 58a7ad05581..b3aff9cbad6 100644
--- a/src/mame/drivers/acommand.c
+++ b/src/mame/drivers/acommand.c
@@ -674,4 +674,4 @@ ROM_START( acommand )
ROM_LOAD( "jalmr17.bin", 0x080000, 0x080000, CRC(9d428fb7) SHA1(02f72938d73db932bd217620a175a05215f6016a) )
ROM_END
-GAME( 1994, acommand, 0, acommand, acommand, driver_device, 0, ROT0, "Jaleco", "Alien Command" , GAME_NOT_WORKING | GAME_MECHANICAL)
+GAME( 1994, acommand, 0, acommand, acommand, driver_device, 0, ROT0, "Jaleco", "Alien Command" , MACHINE_NOT_WORKING | MACHINE_MECHANICAL)
diff --git a/src/mess/drivers/acrnsys1.c b/src/mame/drivers/acrnsys1.c
index 23d35f2807a..23d35f2807a 100644
--- a/src/mess/drivers/acrnsys1.c
+++ b/src/mame/drivers/acrnsys1.c
diff --git a/src/mame/drivers/actfancr.c b/src/mame/drivers/actfancr.c
index 781303ef6b5..c9acefba01c 100644
--- a/src/mame/drivers/actfancr.c
+++ b/src/mame/drivers/actfancr.c
@@ -566,8 +566,8 @@ ROM_END
/******************************************************************************/
-GAME( 1989, actfancr, 0, actfancr, actfancr, driver_device, 0, ROT0, "Data East Corporation", "Act-Fancer Cybernetick Hyper Weapon (World revision 2)", GAME_SUPPORTS_SAVE )
-GAME( 1989, actfancr1,actfancr, actfancr, actfancr, driver_device, 0, ROT0, "Data East Corporation", "Act-Fancer Cybernetick Hyper Weapon (World revision 1)", GAME_SUPPORTS_SAVE )
-GAME( 1989, actfancrj,actfancr, actfancr, actfancr, driver_device, 0, ROT0, "Data East Corporation", "Act-Fancer Cybernetick Hyper Weapon (Japan revision 1)", GAME_SUPPORTS_SAVE )
-GAME( 1989, triothep, 0, triothep, triothep, driver_device, 0, ROT0, "Data East Corporation", "Trio The Punch - Never Forget Me... (World)", GAME_SUPPORTS_SAVE )
-GAME( 1989, triothepj,triothep, triothep, triothep, driver_device, 0, ROT0, "Data East Corporation", "Trio The Punch - Never Forget Me... (Japan)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/adam.c b/src/mame/drivers/adam.c
index d0d228aebff..75682bad25d 100644
--- a/src/mess/drivers/adam.c
+++ b/src/mame/drivers/adam.c
@@ -1144,4 +1144,4 @@ ROM_END
//**************************************************************************
// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS
-COMP( 1982, adam, 0, coleco, adam, adam, driver_device, 0, "Coleco", "Adam", GAME_SUPPORTS_SAVE )
+COMP( 1982, adam, 0, coleco, adam, adam, driver_device, 0, "Coleco", "Adam", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/adp.c b/src/mame/drivers/adp.c
index 7a06f384054..d8271bdba30 100644
--- a/src/mame/drivers/adp.c
+++ b/src/mame/drivers/adp.c
@@ -719,11 +719,11 @@ ROM_START( fstation )
ROM_END
-GAME( 1990, backgamn, 0, backgamn, skattv, driver_device, 0, ROT0, "ADP", "Backgammon", GAME_NOT_WORKING )
-GAME( 1993, quickjac, 0, quickjac, quickjac, driver_device, 0, ROT0, "ADP", "Quick Jack", GAME_NOT_WORKING )
-GAME( 1994, skattv, 0, skattv, skattv, driver_device, 0, ROT0, "ADP", "Skat TV", GAME_NOT_WORKING )
-GAME( 1995, skattva, skattv, skattva, skattva, driver_device, 0, ROT0, "ADP", "Skat TV (version TS3)", GAME_NOT_WORKING )
-GAME( 1997, fashiong, 0, fashiong, skattv, driver_device, 0, ROT0, "ADP", "Fashion Gambler (set 1)", GAME_NOT_WORKING )
-GAME( 1997, fashiong2, fashiong, fashiong, skattv, driver_device, 0, ROT0, "ADP", "Fashion Gambler (set 2)", GAME_NOT_WORKING )
-GAME( 1999, funlddlx, 0, funland, skattv, driver_device, 0, ROT0, "Stella", "Funny Land de Luxe", GAME_NOT_WORKING )
-GAME( 2000, fstation, 0, fstation, fstation, driver_device, 0, ROT0, "ADP", "Fun Station Spielekoffer 9 Spiele", GAME_NOT_WORKING )
+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 )
diff --git a/src/mess/drivers/advision.c b/src/mame/drivers/advision.c
index 324e04ba842..5dfb5985964 100644
--- a/src/mess/drivers/advision.c
+++ b/src/mame/drivers/advision.c
@@ -110,4 +110,4 @@ 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", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+CONS( 1982, advision, 0, 0, advision, advision, driver_device, 0, "Entex", "Adventure Vision", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/aeroboto.c b/src/mame/drivers/aeroboto.c
index 5f5de0b18b8..39f96ae7375 100644
--- a/src/mame/drivers/aeroboto.c
+++ b/src/mame/drivers/aeroboto.c
@@ -330,5 +330,5 @@ ROM_END
-GAME( 1984, formatz, 0, formatz, formatz, driver_device, 0, ROT0, "Jaleco", "Formation Z", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS )
-GAME( 1984, aeroboto, formatz, formatz, formatz, driver_device, 0, ROT0, "Jaleco (Williams license)", "Aeroboto", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS )
+GAME( 1984, formatz, 0, formatz, formatz, driver_device, 0, ROT0, "Jaleco", "Formation Z", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1984, aeroboto, formatz, formatz, formatz, driver_device, 0, ROT0, "Jaleco (Williams license)", "Aeroboto", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS )
diff --git a/src/mame/drivers/aerofgt.c b/src/mame/drivers/aerofgt.c
index 26913e4af62..29d55d4fb3c 100644
--- a/src/mame/drivers/aerofgt.c
+++ b/src/mame/drivers/aerofgt.c
@@ -1521,8 +1521,8 @@ static MACHINE_CONFIG_START( karatblzbl, aerofgt_state )
MCFG_CPU_ADD("audiocpu",Z80,8000000/2) /* 4 MHz ??? */
MCFG_CPU_PROGRAM_MAP(karatblzbl_sound_map)
-// MCFG_MACHINE_START_OVERRIDE(aerofgt_state,aerofgt)
-// MCFG_MACHINE_RESET_OVERRIDE(aerofgt_state,aerofgt)
+// MCFG_MACHINE_START_OVERRIDE(aerofgt_state,aerofgt)
+// MCFG_MACHINE_RESET_OVERRIDE(aerofgt_state,aerofgt)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -1554,7 +1554,7 @@ static MACHINE_CONFIG_START( karatblzbl, aerofgt_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
- // NEC D7759c + YM????
+ // NEC D7759c + YM????
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( spinlbrk, aerofgt_state )
@@ -2015,6 +2015,40 @@ ROM_START( pspikesb )
ROM_COPY( "user1", 0x060000, 0x0e0000, 0x020000)
ROM_END
+ROM_START( pspikesba )
+ ROM_REGION( 0x40000, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "2.ic63", 0x00000, 0x20000, CRC(dd87d28a) SHA1(09ab75bcd62db1a49af123648812852780ac9d60) ) // sldh
+ ROM_LOAD16_BYTE( "3.ic62", 0x00001, 0x20000, CRC(ec505317) SHA1(1e2b9e52654b08169827dbd877de2e724140e50c) ) // sldh
+
+ ROM_REGION( 0x080000, "gfx1", ROMREGION_INVERT )
+ ROM_LOAD( "4.ic122", 0x00000, 0x20000, CRC(ea1c05a7) SHA1(adfdfeac80df287ffa6f469dc38ea94698817cf4) )
+ ROM_LOAD( "5.ic120", 0x20000, 0x20000, CRC(bfdc60f4) SHA1(2b1893fac2651ac82f5a05b8f891b20c928ced7e) )
+ ROM_LOAD( "6.ic118", 0x40000, 0x20000, CRC(96a5c235) SHA1(dad4ef9069d3130f719a402737909bb48225b73c) )
+ ROM_LOAD( "7.ic116", 0x60000, 0x20000, CRC(a7e00b36) SHA1(2b5e85ec02e8893d7d730aad4d690883b1d236cc) )
+
+ ROM_REGION( 0x100000, "gfx2", ROMREGION_INVERT )
+ ROM_LOAD( "8.ic121", 0x00000, 0x40000, CRC(fc096cfc) SHA1(75af810c97361b6f08767949b90c394a7a03f60b) )
+ ROM_LOAD( "9.ic119", 0x40000, 0x40000, CRC(a45ec985) SHA1(16357f5df7841e11889ac6fced1e2a9288585a29) )
+ ROM_LOAD( "10.ic117", 0x80000, 0x40000, CRC(3976b372) SHA1(72feec5a6fe7995f39d4b431dbbf25435359b04d) )
+ ROM_LOAD( "11.ic115", 0xc0000, 0x40000, CRC(f9249937) SHA1(5993e5ab7295ca2fa5c8f4c05ce23731741f4e97) )
+
+ ROM_REGION( 0x080000, "user1", 0 ) /* Samples */
+ ROM_LOAD( "1.ic21", 0x000000, 0x80000, CRC(1b78ed0b) SHA1(886bfd78709c295839dd51c7f5a13f5c452c0ab3) )
+
+ /* $00000-$20000 stays the same in all sound banks, */
+ /* the second half of the bank is what gets switched */
+ ROM_REGION( 0x100000, "oki", 0 ) /* Samples */
+ ROM_COPY( "user1", 0x000000, 0x000000, 0x020000)
+ ROM_COPY( "user1", 0x000000, 0x020000, 0x020000)
+ ROM_COPY( "user1", 0x000000, 0x040000, 0x020000)
+ ROM_COPY( "user1", 0x020000, 0x060000, 0x020000)
+ ROM_COPY( "user1", 0x000000, 0x080000, 0x020000)
+ ROM_COPY( "user1", 0x040000, 0x0a0000, 0x020000)
+ ROM_COPY( "user1", 0x000000, 0x0c0000, 0x020000)
+ ROM_COPY( "user1", 0x060000, 0x0e0000, 0x020000)
+ROM_END
+
+
/*
1991 Spikes (Italian bootleg)
@@ -2446,7 +2480,7 @@ ROM_START( karatblzbl )
ROM_LOAD16_BYTE( "gfx21.u71", 0x2c0000, 0x020000, CRC(ffd66ea0) SHA1(fc1b2fa27d28a61b381e3d4f15809c740082d07f) )
ROM_LOAD16_BYTE( "gfx26.u76", 0x2c0001, 0x020000, CRC(7ae76103) SHA1(5c42fbe133cbf600d2150295a70a1541b79706b5) )
ROM_LOAD16_BYTE( "gfx25.u67", 0x300000, 0x020000, CRC(1195b559) SHA1(2fd00b3360df5f0a762569ab49c445b68568cf2e) )
- ROM_LOAD16_BYTE( "gfx30.u72", 0x300001, 0x020000, CRC(7593679f) SHA1(3a6199d1dc60d2c05084fe41c639228613831d99) )
+ ROM_LOAD16_BYTE( "gfx30.u72", 0x300001, 0x020000, CRC(7593679f) SHA1(3a6199d1dc60d2c05084fe41c639228613831d99) )
ROM_REGION( 0x100000, "gfx4", 0 )
ROM_LOAD16_BYTE( "5.u62", 0x000000, 0x040000, CRC(1ed12174) SHA1(1e4fc511ad644aaf90505f7930957b4adf9f6c2a) )
@@ -2688,32 +2722,33 @@ ROM_START( wbbc97 )
ROM_END
-GAME( 1990, spinlbrk, 0, spinlbrk, spinlbrk, driver_device, 0, ROT0, "V-System Co.", "Spinal Breakers (World)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1990, spinlbrku,spinlbrk, spinlbrk, spinlbrku, driver_device,0, ROT0, "V-System Co.", "Spinal Breakers (US)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1990, spinlbrkj,spinlbrk, spinlbrk, spinlbrk, driver_device, 0, ROT0, "V-System Co.", "Spinal Breakers (Japan)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
+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( 1991, pspikes, 0, pspikes, pspikes, driver_device, 0, ROT0, "Video System Co.", "Power Spikes (World)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1991, pspikesk, pspikes, pspikes, pspikes, driver_device, 0, ROT0, "Video System Co.", "Power Spikes (Korea)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1991, pspikesu, pspikes, pspikes, pspikes, driver_device, 0, ROT0, "Video System Co.", "Power Spikes (US)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1991, svolly91, pspikes, pspikes, pspikes, driver_device, 0, ROT0, "Video System Co.", "Super Volley '91 (Japan)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1991, pspikesb, pspikes, pspikesb, pspikesb, driver_device, 0, ROT0, "bootleg", "Power Spikes (bootleg)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1991, spikes91, pspikes, spikes91, pspikes, driver_device, 0, ROT0, "bootleg", "1991 Spikes (Italian bootleg, set 1)", GAME_SUPPORTS_SAVE | GAME_NO_SOUND | GAME_NO_COCKTAIL )
-GAME( 1991, spikes91b,pspikes, spikes91, pspikes, driver_device, 0, ROT0, "bootleg", "1991 Spikes (Italian bootleg, set 2)", GAME_SUPPORTS_SAVE | GAME_NO_SOUND | GAME_NO_COCKTAIL )
-GAME( 1991, pspikesc, pspikes, pspikesc, pspikesc, driver_device, 0, ROT0, "bootleg", "Power Spikes (China)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND )
-GAME( 1997, wbbc97, 0, wbbc97, wbbc97, driver_device, 0, ROT0, "Comad", "Beach Festival World Championship 1997", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) // based on power spikes codebase
+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, karatblz, 0, karatblz, karatblz, driver_device, 0, ROT0, "Video System Co.", "Karate Blazers (World)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1991, karatblzu,karatblz, karatblz, karatblz, driver_device, 0, ROT0, "Video System Co.", "Karate Blazers (US)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1991, karatblzj,karatblz, karatblz, karatblz, driver_device, 0, ROT0, "Video System Co.", "Karate Blazers (Japan)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1991, karatblzbl,karatblz,karatblzbl,karatblz,driver_device, 0, ROT0, "bootleg", "Karate Blazers (bootleg)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL | GAME_NO_SOUND )
+GAME( 1991, karatblz, 0, karatblz, karatblz, driver_device, 0, ROT0, "Video System Co.", "Karate Blazers (World)", 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)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_NO_SOUND )
-GAME( 1991, turbofrc, 0, turbofrc, turbofrc, driver_device, 0, ROT270, "Video System Co.", "Turbo Force (old revision)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
+GAME( 1991, turbofrc, 0, turbofrc, turbofrc, driver_device, 0, ROT270, "Video System Co.", "Turbo Force (old revision)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
// there's also an undumped Turbo Force (new revision). Most notable thing in there is the points value of the rocks in level 6 (5.000 versus 500).
// 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)", GAME_SUPPORTS_SAVE | GAME_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)", GAME_SUPPORTS_SAVE | GAME_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)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1992, sonicwi, aerofgt, aerofgtb, aerofgtb, driver_device, 0, ROT270, "Video System Co.", "Sonic Wings (Japan)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1992, aerfboot, aerofgt, aerfboot, aerofgtb, driver_device, 0, ROT270, "bootleg", "Aero Fighters (bootleg set 1)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND )
-GAME( 1992, aerfboo2, aerofgt, aerfboo2, aerofgtb, driver_device, 0, ROT270, "bootleg", "Aero Fighters (bootleg set 2)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND )
+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, driver_device, 0, 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 )
diff --git a/src/mess/drivers/aim65.c b/src/mame/drivers/aim65.c
index 170042842d7..163ea0e2774 100644
--- a/src/mess/drivers/aim65.c
+++ b/src/mame/drivers/aim65.c
@@ -285,4 +285,4 @@ ROM_END
***************************************************************************/
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP(1977, aim65, 0, 0, aim65, aim65, driver_device, 0, "Rockwell", "AIM 65", GAME_NO_SOUND_HW )
+COMP(1977, aim65, 0, 0, aim65, aim65, driver_device, 0, "Rockwell", "AIM 65", MACHINE_NO_SOUND_HW )
diff --git a/src/mess/drivers/aim65_40.c b/src/mame/drivers/aim65_40.c
index 1d4aba0c836..df749db8493 100644
--- a/src/mess/drivers/aim65_40.c
+++ b/src/mame/drivers/aim65_40.c
@@ -142,4 +142,4 @@ ROM_END
***************************************************************************/
/* 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", GAME_NOT_WORKING | GAME_NO_SOUND )
+COMP( 1981, aim65_40, 0, 0, aim65_40, aim65_40, driver_device, 0, "Rockwell", "AIM-65/40", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/airbustr.c b/src/mame/drivers/airbustr.c
index 347688d4194..51d80cbcf71 100644
--- a/src/mame/drivers/airbustr.c
+++ b/src/mame/drivers/airbustr.c
@@ -755,6 +755,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)", GAME_SUPPORTS_SAVE ) // 891220
-GAME( 1990, airbustrj, airbustr, airbustr, airbustrj, airbustr_state,airbustr, ROT0, "Kaneko (Namco license)", "Air Buster: Trouble Specialty Raid Unit (Japan)", GAME_SUPPORTS_SAVE) // 891229
-GAME( 1990, airbustrb, airbustr, airbustrb,airbustrj, driver_device,0, ROT0, "bootleg", "Air Buster: Trouble Specialty Raid Unit (bootleg)", GAME_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, driver_device,0, ROT0, "bootleg", "Air Buster: Trouble Specialty Raid Unit (bootleg)", MACHINE_SUPPORTS_SAVE) // based on Japan set (891229)
diff --git a/src/mame/drivers/ajax.c b/src/mame/drivers/ajax.c
index cb69d46f275..9ac2ffcfcd7 100644
--- a/src/mame/drivers/ajax.c
+++ b/src/mame/drivers/ajax.c
@@ -167,9 +167,8 @@ WRITE8_MEMBER(ajax_state::volume_callback1)
static MACHINE_CONFIG_START( ajax, ajax_state )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", KONAMI, 3000000) /* 12/4 MHz*/
+ MCFG_CPU_ADD("maincpu", KONAMI, XTAL_24MHz/2/4) /* 052001 12/4 MHz*/
MCFG_CPU_PROGRAM_MAP(ajax_main_map)
- MCFG_CPU_VBLANK_INT_DRIVER("screen", ajax_state, ajax_interrupt) /* IRQs triggered by the 051960 */
MCFG_CPU_ADD("sub", M6809, 3000000) /* ? */
MCFG_CPU_PROGRAM_MAP(ajax_sub_map)
@@ -181,10 +180,9 @@ static MACHINE_CONFIG_START( ajax, ajax_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
+ MCFG_SCREEN_RAW_PARAMS(XTAL_24MHz/3, 528, 112, 400, 256, 16, 240)
+// 6MHz dotclock is more realistic, however needs drawing updates. replace when ready
+// MCFG_SCREEN_RAW_PARAMS(XTAL_24MHz/4, 396, hbend, hbstart, 256, 16, 240)
MCFG_SCREEN_UPDATE_DRIVER(ajax_state, screen_update_ajax)
MCFG_SCREEN_PALETTE("palette")
@@ -198,7 +196,9 @@ static MACHINE_CONFIG_START( ajax, ajax_state )
MCFG_DEVICE_ADD("k051960", K051960, 0)
MCFG_GFX_PALETTE("palette")
+ MCFG_K051960_SCREEN_TAG("screen")
MCFG_K051960_CB(ajax_state, sprite_callback)
+ MCFG_K051960_IRQ_HANDLER(INPUTLINE("maincpu", KONAMI_IRQ_LINE))
MCFG_DEVICE_ADD("k051316", K051316, 0)
MCFG_GFX_PALETTE("palette")
@@ -376,6 +376,6 @@ ROM_START( ajaxj )
ROM_END
-GAME( 1987, ajax, 0, ajax, ajax, driver_device, 0, ROT90, "Konami", "Ajax", GAME_SUPPORTS_SAVE )
-GAME( 1987, typhoon, ajax, ajax, ajax, driver_device, 0, ROT90, "Konami", "Typhoon", GAME_SUPPORTS_SAVE )
-GAME( 1987, ajaxj, ajax, ajax, ajax, driver_device, 0, ROT90, "Konami", "Ajax (Japan)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/albazc.c b/src/mame/drivers/albazc.c
index ab211fa7c55..122f6783c52 100644
--- a/src/mame/drivers/albazc.c
+++ b/src/mame/drivers/albazc.c
@@ -309,4 +309,4 @@ ROM_START( hanaroku )
ROM_END
-GAME( 1988, hanaroku, 0, hanaroku, hanaroku, driver_device, 0, ROT0, "Alba", "Hanaroku", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE )
+GAME( 1988, hanaroku, 0, hanaroku, hanaroku, driver_device, 0, ROT0, "Alba", "Hanaroku", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/albazg.c b/src/mame/drivers/albazg.c
index 15a3decd8b1..fa1d54ca83f 100644
--- a/src/mame/drivers/albazg.c
+++ b/src/mame/drivers/albazg.c
@@ -406,4 +406,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]", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+GAME( 1991, yumefuda, 0, yumefuda, yumefuda, driver_device, 0, ROT0, "Alba", "Yumefuda [BET]", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/aleck64.c b/src/mame/drivers/aleck64.c
index 745d761cc32..26499c7b9b2 100644
--- a/src/mame/drivers/aleck64.c
+++ b/src/mame/drivers/aleck64.c
@@ -164,7 +164,7 @@ Notes:
- ALL components are listed for completeness. However, many are power or
logic devices that most people need not be concerned about :-)
- - The Seta/N64 Aleck64 hardware is similar also, but instead of the hich capacity
+ - The Seta/N64 Aleck64 hardware is similar also, but instead of the high capacity
serial MASKROM being on the main board, it's in a cart that plugs into a slot.
*/
@@ -192,6 +192,7 @@ public:
DECLARE_READ16_MEMBER(e90_prot_r);
DECLARE_WRITE16_MEMBER(e90_prot_w);
UINT32 screen_update_e90(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+
private:
UINT32 m_dip_read_offset;
};
@@ -262,7 +263,7 @@ READ32_MEMBER(aleck64_state::aleck_dips_r)
Some of these are big, every game adds a mapping for 4MB at 0xc0000000 physical.
Some add more than one 4MB mapping. As some of the boards are only 4MB RAM,
it seems likely that the programmers expected main RAM to be mirrored at 0xc0000000.
- Some of the games have a further 4MB mapping to a pgysical segment contiguous with
+ Some of the games have a further 4MB mapping to a physical segment contiguous with
the first at 0xc0000000, so if these games are on the E92 8MB boards, this would
add a bit of support to the mirror idea.
@@ -856,6 +857,7 @@ static MACHINE_CONFIG_START( aleck64, aleck64_state )
MCFG_SCREEN_SIZE(640, 525)
MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 239)
MCFG_SCREEN_UPDATE_DRIVER(aleck64_state, screen_update_n64)
+ MCFG_SCREEN_VBLANK_DRIVER(aleck64_state, screen_eof_n64)
MCFG_PALETTE_ADD("palette", 0x1000)
@@ -1063,7 +1065,7 @@ ROM_START( twrshaft )
PIF_BOOTROM
ROM_REGION32_BE( 0x4000000, "user2", 0 )
- ROM_LOAD16_WORD_SWAP( "ua3012--all02.u3", 0x000000, 0x1000000, CRC(904a91a7) SHA1(7dfa3447d2c489c0448c4004dc12d3037c05a0f3) )
+ ROM_LOAD16_WORD_SWAP( "ua3012-all02.u3", 0x000000, 0x1000000, CRC(904a91a7) SHA1(7dfa3447d2c489c0448c4004dc12d3037c05a0f3) )
ROM_REGION32_BE( 0x800000, "user3", 0 )
ROM_LOAD16_WORD_SWAP( "nus-zsij-0.u1", 0x000000, 0x800000, CRC(2389576f) SHA1(dc22b2eab4d7a02cb918827a62e6c120b3a84e6c) )
@@ -1158,16 +1160,16 @@ ROM_END
// BIOS
-GAME( 1998, aleck64, 0, aleck64, aleck64, aleck64_state, aleck64, ROT0, "Nintendo / Seta", "Aleck64 PIF BIOS", GAME_IS_BIOS_ROOT)
+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", GAME_NOT_WORKING ) // 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)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1998, starsldr, aleck64, aleck64, starsldr, aleck64_state, aleck64, ROT0, "Hudson / Seta", "Star Soldier: Vanishing Earth", GAME_IMPERFECT_GRAPHICS )
-GAME( 1998, vivdolls, aleck64, aleck64, aleck64, aleck64_state, aleck64, ROT0, "Visco", "Vivid Dolls", GAME_IMPERFECT_GRAPHICS )
-GAME( 1999, srmvs, aleck64, aleck64, srmvs, aleck64_state, aleck64, ROT0, "Seta", "Super Real Mahjong VS", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 2003, twrshaft, aleck64, aleck64, twrshaft, aleck64_state, aleck64, ROT0, "Aruze", "Tower & Shaft", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 2003, hipai, aleck64, aleck64, hipai, aleck64_state, aleck64, ROT0, "Aruze / Seta", "Hi Pai Paradise", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 2003, doncdoon, aleck64, aleck64, doncdoon, aleck64_state, aleck64, ROT0, "Aruze", "Hanabi de Doon! - Don-chan Puzzle", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 2003, kurufev, aleck64, aleck64, kurufev, aleck64_state, aleck64, ROT0, "Aruze / Takumi", "Kurukuru Fever", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 2000, mayjin3, aleck64, aleck64, aleck64, aleck64_state, aleck64, ROT0, "Seta / Able Corporation", "Mayjinsen 3", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
+GAME( 1998, 11beat, aleck64, aleck64, 11beat, aleck64_state, aleck64, ROT0, "Hudson", "Eleven Beat", MACHINE_NOT_WORKING ) // 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 )
+GAME( 1998, starsldr, aleck64, aleck64, starsldr, aleck64_state, aleck64, ROT0, "Hudson / Seta", "Star Soldier: Vanishing Earth", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1998, vivdolls, aleck64, aleck64, aleck64, 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_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS )
+GAME( 2003, twrshaft, aleck64, aleck64, twrshaft, aleck64_state, aleck64, ROT0, "Aruze", "Tower & Shaft", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS )
+GAME( 2003, hipai, aleck64, aleck64, hipai, aleck64_state, aleck64, ROT0, "Aruze / Seta", "Hi Pai Paradise", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS )
+GAME( 2003, doncdoon, aleck64, aleck64, doncdoon, aleck64_state, aleck64, ROT0, "Aruze", "Hanabi de Doon! - Don-chan Puzzle", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS )
+GAME( 2003, kurufev, aleck64, aleck64, kurufev, aleck64_state, aleck64, ROT0, "Aruze / Takumi", "Kurukuru Fever", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS )
+GAME( 2000, mayjin3, aleck64, aleck64, aleck64, aleck64_state, aleck64, ROT0, "Seta / Able Corporation", "Mayjinsen 3", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS )
diff --git a/src/mame/drivers/aleisttl.c b/src/mame/drivers/aleisttl.c
index 2b8fe06c97f..46582d7b25c 100644
--- a/src/mame/drivers/aleisttl.c
+++ b/src/mame/drivers/aleisttl.c
@@ -7,7 +7,7 @@
Chase (aka Chase1) (1976)
Deluxe Soccer (1973)
Fire Power (1975) EG-1020-2
- Fütsball (1975)
+ F??tsball (1975)
Galaxy Raider (1974)
Hesitation (1974) AL-6500?
Hockey, Soccer, Tennis (1974)
@@ -131,4 +131,4 @@ ROM_START( sburners )
ROM_END
-GAME( 1975, sburners, 0, sburners, 0, driver_device, 0, ROT0, "Allied Leisure", "Street Burners [TTL]", GAME_IS_SKELETON )
+GAME( 1975, sburners, 0, sburners, 0, driver_device, 0, ROT0, "Allied Leisure", "Street Burners [TTL]", MACHINE_IS_SKELETON )
diff --git a/src/mess/drivers/alesis.c b/src/mame/drivers/alesis.c
index 6b72c21ed86..605305b6b64 100644
--- a/src/mess/drivers/alesis.c
+++ b/src/mame/drivers/alesis.c
@@ -27,17 +27,17 @@ READ8_MEMBER( alesis_state::kb_r )
UINT8 data = 0xff;
if (!(m_kb_matrix & 0x01))
- data &= ioport("COL1")->read();
+ data &= m_col1->read();
if (!(m_kb_matrix & 0x02))
- data &= ioport("COL2")->read();
+ data &= m_col2->read();
if (!(m_kb_matrix & 0x04))
- data &= ioport("COL3")->read();
+ data &= m_col3->read();
if (!(m_kb_matrix & 0x08))
- data &= ioport("COL4")->read();
+ data &= m_col4->read();
if (!(m_kb_matrix & 0x10))
- data &= ioport("COL5")->read();
+ data &= m_col5->read();
if (!(m_kb_matrix & 0x20))
- data &= ioport("COL6")->read();
+ data &= m_col6->read();
return data;
}
@@ -479,7 +479,7 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
-SYST( 1987, mmt8, 0, 0, mmt8, mmt8, driver_device, 0, "Alesis", "MMT-8", GAME_NOT_WORKING | GAME_NO_SOUND)
-SYST( 1989, hr16b, hr16, 0, hr16, hr16, alesis_state, hr16, "Alesis", "HR-16B", GAME_NOT_WORKING | GAME_NO_SOUND)
-SYST( 1990, sr16, 0, 0, sr16, sr16, driver_device, 0, "Alesis", "SR-16 (Alesis)", GAME_NOT_WORKING | GAME_NO_SOUND)
+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)
diff --git a/src/mame/drivers/alg.c b/src/mame/drivers/alg.c
index bd674b5fb79..bedde2b9362 100644
--- a/src/mame/drivers/alg.c
+++ b/src/mame/drivers/alg.c
@@ -36,7 +36,13 @@ class alg_state : public amiga_state
public:
alg_state(const machine_config &mconfig, device_type type, const char *tag)
: amiga_state(mconfig, type, tag),
- m_laserdisc(*this, "laserdisc") { }
+ m_laserdisc(*this, "laserdisc"),
+ m_gun1x(*this, "GUN1X"),
+ m_gun1y(*this, "GUN1Y"),
+ m_gun2x(*this, "GUN2X"),
+ m_gun2y(*this, "GUN2Y"),
+ m_triggers(*this, "TRIGGERS")
+ { }
DECLARE_CUSTOM_INPUT_MEMBER(lightgun_pos_r);
DECLARE_CUSTOM_INPUT_MEMBER(lightgun_trigger_r);
@@ -55,9 +61,15 @@ public:
protected:
// amiga_state overrides
virtual void potgo_w(UINT16 data);
+ int get_lightgun_pos(int player, int *x, int *y);
private:
required_device<sony_ldp1450_device> m_laserdisc;
+ required_ioport m_gun1x;
+ required_ioport m_gun1y;
+ optional_ioport m_gun2x;
+ optional_ioport m_gun2y;
+ optional_ioport m_triggers;
UINT16 m_input_select;
};
@@ -72,12 +84,12 @@ private:
*
*************************************/
-static int get_lightgun_pos(screen_device &screen, int player, int *x, int *y)
+int alg_state::get_lightgun_pos(int player, int *x, int *y)
{
- const rectangle &visarea = screen.visible_area();
+ const rectangle &visarea = m_screen->visible_area();
- int xpos = screen.ioport((player == 0) ? "GUN1X" : "GUN2X")->read_safe(0xffffffff);
- int ypos = screen.ioport((player == 0) ? "GUN1Y" : "GUN2Y")->read_safe(0xffffffff);
+ int xpos = (player == 0) ? m_gun1x->read() : (m_gun2x ? m_gun2x->read() : 0xffffffff);
+ int ypos = (player == 0) ? m_gun1y->read() : (m_gun2y ? m_gun2y->read() : 0xffffffff);
if (xpos == -1 || ypos == -1)
return FALSE;
@@ -128,7 +140,7 @@ CUSTOM_INPUT_MEMBER(alg_state::lightgun_pos_r)
int x = 0, y = 0;
/* get the position based on the input select */
- get_lightgun_pos(*m_screen, m_input_select, &x, &y);
+ get_lightgun_pos(m_input_select, &x, &y);
return (y << 8) | (x >> 2);
}
@@ -136,14 +148,14 @@ CUSTOM_INPUT_MEMBER(alg_state::lightgun_pos_r)
CUSTOM_INPUT_MEMBER(alg_state::lightgun_trigger_r)
{
/* read the trigger control based on the input select */
- return (ioport("TRIGGERS")->read() >> m_input_select) & 1;
+ return (m_triggers->read() >> m_input_select) & 1;
}
CUSTOM_INPUT_MEMBER(alg_state::lightgun_holster_r)
{
/* read the holster control based on the input select */
- return (ioport("TRIGGERS")->read() >> (2 + m_input_select)) & 1;
+ return (m_triggers->read() >> (2 + m_input_select)) & 1;
}
@@ -769,48 +781,48 @@ 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", GAME_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", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_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", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1991, wsjr_15, wsjr, alg_r1, alg, alg_state, palr3, ROT0, "American Laser Games", "Who Shot Johnny Rock? v1.5", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_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", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_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", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_IMPERFECT_GRAPHICS )
+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 )
/* 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", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_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", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_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", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_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", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_IMPERFECT_GRAPHICS )
+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_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 */
-GAME( 1992, spacepir, alg_bios, alg_r2, alg_2p, alg_state, palr6, ROT0, "American Laser Games", "Space Pirates v2.2", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1992, spacepir_14, spacepir, alg_r2, alg_2p, alg_state, palr6, ROT0, "American Laser Games", "Space Pirates v1.4", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_IMPERFECT_GRAPHICS )
+GAME( 1992, spacepir, alg_bios, alg_r2, alg_2p, alg_state, palr6, ROT0, "American Laser Games", "Space Pirates v2.2", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1992, spacepir_14, spacepir, alg_r2, alg_2p, alg_state, palr6, ROT0, "American Laser Games", "Space Pirates v1.4", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1992, gallgall, alg_bios, alg_r2, alg_2p, alg_state, palr6, ROT0, "American Laser Games", "Gallagher's Gallery v2.2", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1992, gallgall_21, gallgall, alg_r2, alg_2p, alg_state, palr6, ROT0, "American Laser Games", "Gallagher's Gallery v2.1", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_IMPERFECT_GRAPHICS )
+GAME( 1992, gallgall, alg_bios, alg_r2, alg_2p, alg_state, palr6, ROT0, "American Laser Games", "Gallagher's Gallery v2.2", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1992, gallgall_21, gallgall, alg_r2, alg_2p, alg_state, palr6, ROT0, "American Laser Games", "Gallagher's Gallery v2.1", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS )
/* all good, but no holster */
-GAME( 1993, crimepat, alg_bios, alg_r2, alg_2p, alg_state, palr6, ROT0, "American Laser Games", "Crime Patrol v1.51", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1993, crimepat_14, crimepat, alg_r2, alg_2p, alg_state, palr6, ROT0, "American Laser Games", "Crime Patrol v1.4", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1993, crimepat_12, crimepat, alg_r2, alg_2p, alg_state, palr6, ROT0, "American Laser Games", "Crime Patrol v1.2", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_IMPERFECT_GRAPHICS )
-
-GAME( 1993, crimep2, alg_bios, alg_r2, alg_2p, alg_state, palr6, ROT0, "American Laser Games", "Crime Patrol 2: Drug Wars v1.3", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_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", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1994, lastbh, alg_bios, alg_r2, alg_2p, alg_state, palr6, ROT0, "American Laser Games", "The Last Bounty Hunter v1.01", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1994, lastbh_006, lastbh, alg_r2, alg_2p, alg_state, palr6, ROT0, "American Laser Games", "The Last Bounty Hunter v0.06", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1995, fastdraw, alg_bios, alg_r2, alg_2p, alg_state, palr6, ROT90, "American Laser Games", "Fast Draw Showdown v1.31", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1995, fastdraw_130,fastdraw, alg_r2, alg_2p, alg_state, palr6, ROT90, "American Laser Games", "Fast Draw Showdown v1.30", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_IMPERFECT_GRAPHICS )
+GAME( 1993, crimepat, alg_bios, alg_r2, alg_2p, alg_state, palr6, ROT0, "American Laser Games", "Crime Patrol v1.51", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1993, crimepat_14, crimepat, alg_r2, alg_2p, alg_state, palr6, ROT0, "American Laser Games", "Crime Patrol v1.4", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1993, crimepat_12, crimepat, alg_r2, alg_2p, alg_state, palr6, ROT0, "American Laser Games", "Crime Patrol v1.2", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS )
+
+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( 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", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_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)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_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.c b/src/mame/drivers/alien.c
index c76c0225441..935c06d4403 100644
--- a/src/mame/drivers/alien.c
+++ b/src/mame/drivers/alien.c
@@ -120,4 +120,4 @@ ROM_START( alien )
ROM_END
-GAME( 2005, alien, 0, alien, alien, driver_device, 0, ROT0, "Capcom", "Alien: The Arcade Medal Edition", GAME_NO_SOUND | GAME_NOT_WORKING )
+GAME( 2005, alien, 0, alien, alien, driver_device, 0, ROT0, "Capcom", "Alien: The Arcade Medal Edition", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/aliens.c b/src/mame/drivers/aliens.c
index 5b803dd0ad5..f73935d1b57 100644
--- a/src/mame/drivers/aliens.c
+++ b/src/mame/drivers/aliens.c
@@ -16,11 +16,6 @@ Preliminary driver by:
#include "includes/konamipt.h"
#include "includes/aliens.h"
-INTERRUPT_GEN_MEMBER(aliens_state::aliens_interrupt)
-{
- if (m_k051960->k051960_is_irq_enabled())
- device.execute().set_input_line(KONAMI_IRQ_LINE, HOLD_LINE);
-}
WRITE8_MEMBER(aliens_state::aliens_coin_counter_w)
{
@@ -90,7 +85,7 @@ WRITE8_MEMBER(aliens_state::k052109_051960_w)
static ADDRESS_MAP_START( aliens_map, AS_PROGRAM, 8, aliens_state )
AM_RANGE(0x0000, 0x03ff) AM_DEVICE("bank0000", address_map_bank_device, amap8)
AM_RANGE(0x0400, 0x1fff) AM_RAM
- AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("bank1") /* banked ROM */
+ AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("rombank") /* banked ROM */
AM_RANGE(0x5f80, 0x5f80) AM_READ_PORT("DSW3")
AM_RANGE(0x5f81, 0x5f81) AM_READ_PORT("P1")
AM_RANGE(0x5f82, 0x5f82) AM_READ_PORT("P2")
@@ -179,8 +174,8 @@ WRITE8_MEMBER(aliens_state::volume_callback)
void aliens_state::machine_start()
{
- membank("bank1")->configure_entries(0, 24, memregion("maincpu")->base(), 0x2000);
- membank("bank1")->set_entry(0);
+ m_rombank->configure_entries(0, 24, memregion("maincpu")->base(), 0x2000);
+ m_rombank->set_entry(0);
}
void aliens_state::machine_reset()
@@ -190,15 +185,14 @@ void aliens_state::machine_reset()
WRITE8_MEMBER( aliens_state::banking_callback )
{
- membank("bank1")->set_entry(data & 0x1f);
+ m_rombank->set_entry(data & 0x1f);
}
static MACHINE_CONFIG_START( aliens, aliens_state )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", KONAMI, XTAL_24MHz/8) /* 052001 (verified on pcb) */
+ MCFG_CPU_ADD("maincpu", KONAMI, XTAL_24MHz/2/4) /* 052001 (verified on pcb) */
MCFG_CPU_PROGRAM_MAP(aliens_map)
- MCFG_CPU_VBLANK_INT_DRIVER("screen", aliens_state, aliens_interrupt)
MCFG_KONAMICPU_LINE_CB(WRITE8(aliens_state, banking_callback))
MCFG_CPU_ADD("audiocpu", Z80, XTAL_3_579545MHz) /* verified on pcb */
@@ -213,10 +207,9 @@ static MACHINE_CONFIG_START( aliens, aliens_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(59.17) /* verified on pcb */
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
+ MCFG_SCREEN_RAW_PARAMS(XTAL_24MHz/3, 528, 112, 400, 256, 16, 240) // measured 59.17
+// 6MHz dotclock is more realistic, however needs drawing updates. replace when ready
+// MCFG_SCREEN_RAW_PARAMS(XTAL_24MHz/4, 396, hbend, hbstart, 256, 16, 240)
MCFG_SCREEN_UPDATE_DRIVER(aliens_state, screen_update_aliens)
MCFG_SCREEN_PALETTE("palette")
@@ -230,7 +223,9 @@ static MACHINE_CONFIG_START( aliens, aliens_state )
MCFG_DEVICE_ADD("k051960", K051960, 0)
MCFG_GFX_PALETTE("palette")
+ MCFG_K051960_SCREEN_TAG("screen")
MCFG_K051960_CB(aliens_state, sprite_callback)
+ MCFG_K051960_IRQ_HANDLER(INPUTLINE("maincpu", KONAMI_IRQ_LINE))
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -477,10 +472,10 @@ ROM_END
***************************************************************************/
-GAME( 1990, aliens, 0, aliens, aliens, driver_device, 0, ROT0, "Konami", "Aliens (World set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1990, aliens2, aliens, aliens, aliens, driver_device, 0, ROT0, "Konami", "Aliens (World set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1990, aliens3, aliens, aliens, aliens, driver_device, 0, ROT0, "Konami", "Aliens (World set 3)", GAME_SUPPORTS_SAVE )
-GAME( 1990, aliensu, aliens, aliens, aliens, driver_device, 0, ROT0, "Konami", "Aliens (US)", GAME_SUPPORTS_SAVE )
-GAME( 1990, aliensj, aliens, aliens, aliens, driver_device, 0, ROT0, "Konami", "Aliens (Japan set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1990, aliensj2, aliens, aliens, aliens, driver_device, 0, ROT0, "Konami", "Aliens (Japan set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1990, aliensa, aliens, aliens, aliens, driver_device, 0, ROT0, "Konami", "Aliens (Asia)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/alinvade.c b/src/mame/drivers/alinvade.c
index cb5dcd12892..3ce130711fe 100644
--- a/src/mame/drivers/alinvade.c
+++ b/src/mame/drivers/alinvade.c
@@ -237,4 +237,4 @@ ROM_START( alinvade )
ROM_END
-GAMEL( 198?, alinvade, 0, alinvade, alinvade, driver_device, 0, ROT90, "Forbes?", "Alien Invaders", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_alinvade )
+GAMEL( 198?, alinvade, 0, alinvade, alinvade, driver_device, 0, ROT90, "Forbes?", "Alien Invaders", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_alinvade )
diff --git a/src/mame/drivers/allied.c b/src/mame/drivers/allied.c
index 01c840bb647..03bcf5afdfc 100644
--- a/src/mame/drivers/allied.c
+++ b/src/mame/drivers/allied.c
@@ -708,15 +708,15 @@ ROM_END
#define rom_starshot rom_allied
-GAME(1977, allied, 0, allied, allied, driver_device, 0, ROT0, "Allied Leisure", "Allied System", GAME_IS_BIOS_ROOT)
-GAME(1977, suprpick, allied, allied, allied, driver_device, 0, ROT0, "Allied Leisure", "Super Picker", GAME_MECHANICAL)
-GAME(1977, royclark, allied, allied, allied, driver_device, 0, ROT0, "Fascination Int.", "Roy Clark - The Entertainer", GAME_MECHANICAL)
-GAME(1977, thndbolt, allied, allied, allied, driver_device, 0, ROT0, "Allied Leisure", "Thunderbolt", GAME_MECHANICAL)
-GAME(1978, hoedown, allied, allied, allied, driver_device, 0, ROT0, "Allied Leisure", "Hoe Down", GAME_MECHANICAL)
-GAME(1978, takefive, allied, allied, allied, driver_device, 0, ROT0, "Allied Leisure", "Take Five", GAME_MECHANICAL)
-GAME(1978, heartspd, allied, allied, allied, driver_device, 0, ROT0, "Allied Leisure", "Hearts & Spades", GAME_MECHANICAL)
-GAME(1978, foathens, allied, allied, allied, driver_device, 0, ROT0, "Allied Leisure", "Flame of Athens", GAME_MECHANICAL)
-GAME(1979, disco79, allied, allied, allied, driver_device, 0, ROT0, "Allied Leisure", "Disco '79", GAME_MECHANICAL)
-GAME(1979, erosone, allied, allied, allied, driver_device, 0, ROT0, "Fascination Int.", "Eros One", GAME_MECHANICAL)
-GAME(1979, circa33, allied, allied, allied, driver_device, 0, ROT0, "Fascination Int.", "Circa 1933", GAME_MECHANICAL)
-GAME(1979, starshot, allied, allied, allied, driver_device, 0, ROT0, "Allied Leisure", "Star Shooter", GAME_MECHANICAL)
+GAME(1977, allied, 0, allied, allied, driver_device, 0, ROT0, "Allied Leisure", "Allied System", MACHINE_IS_BIOS_ROOT)
+GAME(1977, suprpick, allied, allied, allied, driver_device, 0, ROT0, "Allied Leisure", "Super Picker", MACHINE_MECHANICAL)
+GAME(1977, royclark, allied, allied, allied, driver_device, 0, ROT0, "Fascination Int.", "Roy Clark - The Entertainer", MACHINE_MECHANICAL)
+GAME(1977, thndbolt, allied, allied, allied, driver_device, 0, ROT0, "Allied Leisure", "Thunderbolt", MACHINE_MECHANICAL)
+GAME(1978, hoedown, allied, allied, allied, driver_device, 0, ROT0, "Allied Leisure", "Hoe Down", MACHINE_MECHANICAL)
+GAME(1978, takefive, allied, allied, allied, driver_device, 0, ROT0, "Allied Leisure", "Take Five", MACHINE_MECHANICAL)
+GAME(1978, heartspd, allied, allied, allied, driver_device, 0, ROT0, "Allied Leisure", "Hearts & Spades", MACHINE_MECHANICAL)
+GAME(1978, foathens, allied, allied, allied, driver_device, 0, ROT0, "Allied Leisure", "Flame of Athens", MACHINE_MECHANICAL)
+GAME(1979, disco79, allied, allied, allied, driver_device, 0, ROT0, "Allied Leisure", "Disco '79", MACHINE_MECHANICAL)
+GAME(1979, erosone, allied, allied, allied, driver_device, 0, ROT0, "Fascination Int.", "Eros One", MACHINE_MECHANICAL)
+GAME(1979, circa33, allied, allied, allied, driver_device, 0, ROT0, "Fascination Int.", "Circa 1933", MACHINE_MECHANICAL)
+GAME(1979, starshot, allied, allied, allied, driver_device, 0, ROT0, "Allied Leisure", "Star Shooter", MACHINE_MECHANICAL)
diff --git a/src/mame/drivers/alpha68k.c b/src/mame/drivers/alpha68k.c
index bcc51a934e8..42ae3dc31ba 100644
--- a/src/mame/drivers/alpha68k.c
+++ b/src/mame/drivers/alpha68k.c
@@ -3457,41 +3457,41 @@ DRIVER_INIT_MEMBER(alpha68k_state,tnextspc)
/******************************************************************************/
-GAME( 1986, sstingry, 0, sstingry, sstingry, alpha68k_state, sstingry, ROT90, "Alpha Denshi Co.", "Super Stingray (Japan)", GAME_SUPPORTS_SAVE | GAME_UNEMULATED_PROTECTION )
+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", GAME_SUPPORTS_SAVE )
-GAME( 1986, kyrosj, kyros, kyros, kyros, alpha68k_state, kyros, ROT90, "Alpha Denshi Co.", "Kyros No Yakata (Japan)", GAME_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)", GAME_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", GAME_SUPPORTS_SAVE )
+GAME( 1988, paddlema, 0, alpha68k_I, paddlema, alpha68k_state, paddlema, ROT90, "SNK", "Paddle Mania", MACHINE_SUPPORTS_SAVE )
-GAME( 1987, timesold, 0, alpha68k_II, timesold, alpha68k_state, timesold, ROT90, "Alpha Denshi Co. (SNK/Romstar license)", "Time Soldiers (US Rev 3)", GAME_SUPPORTS_SAVE )
-GAME( 1987, timesold1, timesold, alpha68k_II, timesold, alpha68k_state, timesold1,ROT90, "Alpha Denshi Co. (SNK/Romstar license)", "Time Soldiers (US Rev 1)", GAME_SUPPORTS_SAVE )
+GAME( 1987, timesold, 0, alpha68k_II, timesold, alpha68k_state, timesold, ROT90, "Alpha Denshi Co. (SNK/Romstar license)", "Time Soldiers (US Rev 3)", MACHINE_SUPPORTS_SAVE )
+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)", GAME_SUPPORTS_SAVE )
-GAME( 1987, btlfieldb, timesold, btlfieldb, btlfieldb, alpha68k_state,btlfieldb,ROT90, "bootleg", "Battle Field (bootleg)", GAME_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( 1988, skysoldr, 0, alpha68k_II, skysoldr, alpha68k_state, skysoldr, ROT90, "Alpha Denshi Co. (SNK of America/Romstar license)", "Sky Soldiers (US)", GAME_SUPPORTS_SAVE )
-GAME( 1988, skysoldrbl,skysoldr, alpha68k_II, skysoldr, alpha68k_state, skysoldr, ROT90, "bootleg", "Sky Soldiers (bootleg)", GAME_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 )
-GAME( 1988, goldmedl, 0, alpha68k_II_gm, goldmedl, alpha68k_state, goldmedl, ROT0, "SNK", "Gold Medalist (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1988, goldmedla, goldmedl, alpha68k_II_gm, goldmedl, alpha68k_state, goldmedla,ROT0, "SNK", "Gold Medalist (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1988, goldmedlb, goldmedl, alpha68k_II_gm, goldmedl, alpha68k_state, goldmedla,ROT0, "bootleg", "Gold Medalist (bootleg)", GAME_NOT_WORKING )
+GAME( 1988, goldmedl, 0, alpha68k_II_gm, goldmedl, alpha68k_state, goldmedl, ROT0, "SNK", "Gold Medalist (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, goldmedla, goldmedl, alpha68k_II_gm, goldmedl, alpha68k_state, goldmedla,ROT0, "SNK", "Gold Medalist (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, goldmedlb, goldmedl, alpha68k_II_gm, goldmedl, alpha68k_state, goldmedla,ROT0, "bootleg", "Gold Medalist (bootleg)", MACHINE_NOT_WORKING )
-GAME( 1989, skyadvnt, 0, alpha68k_V, skyadvnt, alpha68k_state, skyadvnt, ROT90, "Alpha Denshi Co.", "Sky Adventure (World)", GAME_SUPPORTS_SAVE )
-GAME( 1989, skyadvntu, skyadvnt, alpha68k_V, skyadvntu, alpha68k_state,skyadvntu,ROT90, "Alpha Denshi Co. (SNK of America license)", "Sky Adventure (US)", GAME_SUPPORTS_SAVE )
-GAME( 1989, skyadvntj, skyadvnt, alpha68k_V, skyadvnt, alpha68k_state, skyadvnt, ROT90, "Alpha Denshi Co.", "Sky Adventure (Japan)", GAME_SUPPORTS_SAVE )
+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, 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", GAME_SUPPORTS_SAVE )
-GAME( 1989, gangwarsj, gangwars, alpha68k_V, gangwars, alpha68k_state, gangwars, ROT0, "Alpha Denshi Co.", "Gang Wars (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1989, gangwarsu, gangwars, alpha68k_V, gangwarsu, alpha68k_state,gangwarsu,ROT0, "Alpha Denshi Co.", "Gang Wars (US)", GAME_SUPPORTS_SAVE )
-GAME( 1989, gangwarsb, gangwars, alpha68k_V, gangwars, alpha68k_state, gangwars, ROT0, "bootleg", "Gang Wars (bootleg)", GAME_SUPPORTS_SAVE ) // has (undumped) 68705 MCU in place of Alpha MCU, otherwise the same as 'gangwars'
+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, 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)", GAME_SUPPORTS_SAVE | GAME_UNEMULATED_PROTECTION )
-GAME( 1989, sbasebalj, sbasebal, alpha68k_V_sb, sbasebalj,alpha68k_state, sbasebalj,ROT0, "Alpha Denshi Co.", "Super Champion Baseball (Japan)", GAME_SUPPORTS_SAVE | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
+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 )
+GAME( 1989, sbasebalj, sbasebal, alpha68k_V_sb, sbasebalj,alpha68k_state, sbasebalj,ROT0, "Alpha Denshi Co.", "Super Champion Baseball (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING )
-GAME( 1989, tnextspc, 0, tnextspc, tnextspc, alpha68k_state, tnextspc, ROT90, "SNK", "The Next Space (set 1)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1989, tnextspc2, tnextspc, tnextspc, tnextspc, alpha68k_state, tnextspc, ROT90, "SNK", "The Next Space (set 2)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1989, tnextspcj, tnextspc, tnextspc, tnextspc, alpha68k_state, tnextspc, ROT90, "SNK (Pasadena International Corp. license)", "The Next Space (Japan)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
+GAME( 1989, tnextspc, 0, tnextspc, tnextspc, alpha68k_state, tnextspc, ROT90, "SNK", "The Next Space (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
+GAME( 1989, tnextspc2, tnextspc, tnextspc, tnextspc, alpha68k_state, tnextspc, ROT90, "SNK", "The Next Space (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
+GAME( 1989, tnextspcj, tnextspc, tnextspc, tnextspc, alpha68k_state, tnextspc, ROT90, "SNK (Pasadena International Corp. license)", "The Next Space (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
diff --git a/src/mess/drivers/alphasma.c b/src/mame/drivers/alphasma.c
index 5510dc9e45b..d20012238d4 100644
--- a/src/mess/drivers/alphasma.c
+++ b/src/mame/drivers/alphasma.c
@@ -475,5 +475,5 @@ 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" , GAME_NOT_WORKING | GAME_NO_SOUND )
-COMP( 1997, asma2k , 0, 0, asma2k , alphasmart, driver_device, 0, "Intelligent Peripheral Devices", "AlphaSmart 2000", GAME_NOT_WORKING | GAME_NO_SOUND )
+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 )
diff --git a/src/mess/drivers/alphatro.c b/src/mame/drivers/alphatro.c
index 355ad41a8d8..f13841c8dc8 100644
--- a/src/mess/drivers/alphatro.c
+++ b/src/mame/drivers/alphatro.c
@@ -514,4 +514,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", GAME_NOT_WORKING )
+COMP( 1983, alphatro, 0, 0, alphatro, alphatro, driver_device, 0, "Triumph-Adler", "Alphatronic PC", MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/altair.c b/src/mame/drivers/altair.c
index af578f2d56f..e324a807478 100644
--- a/src/mess/drivers/altair.c
+++ b/src/mame/drivers/altair.c
@@ -129,4 +129,4 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 1975, al8800bt, 0, 0, altair, altair, driver_device, 0, "MITS", "Altair 8800bt", GAME_NOT_WORKING | GAME_NO_SOUND_HW)
+COMP( 1975, al8800bt, 0, 0, altair, altair, driver_device, 0, "MITS", "Altair 8800bt", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW)
diff --git a/src/mess/drivers/alto2.c b/src/mame/drivers/alto2.c
index 00d570320c9..c2142b0c304 100644
--- a/src/mess/drivers/alto2.c
+++ b/src/mame/drivers/alto2.c
@@ -300,4 +300,4 @@ DRIVER_INIT_MEMBER( alto2_state, alto2 )
/* Game Drivers */
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
-COMP( 1977, alto2, 0, 0, alto2, alto2, alto2_state, alto2, "Xerox", "Alto-II", GAME_NO_SOUND )
+COMP( 1977, alto2, 0, 0, alto2, alto2, alto2_state, alto2, "Xerox", "Alto-II", MACHINE_NO_SOUND )
diff --git a/src/mess/drivers/altos5.c b/src/mame/drivers/altos5.c
index db9876fc1d0..24136a110d7 100644
--- a/src/mess/drivers/altos5.c
+++ b/src/mame/drivers/altos5.c
@@ -434,7 +434,9 @@ static MACHINE_CONFIG_START( altos5, altos5_state )
MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(altos5_state, fdc_intrq_w))
MCFG_WD_FDC_DRQ_CALLBACK(DEVWRITELINE("z80dma", z80dma_device, rdy_w))
MCFG_FLOPPY_DRIVE_ADD("fdc:0", altos5_floppies, "525qd", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", altos5_floppies, "525qd", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_SOFTWARE_LIST_ADD("flop_list", "altos5")
MACHINE_CONFIG_END
@@ -452,4 +454,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND_HW )
+COMP(1982, altos5, 0, 0, altos5, altos5, altos5_state, altos5, "Altos", "Altos 5-15", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW )
diff --git a/src/mame/drivers/alvg.c b/src/mame/drivers/alvg.c
index 2ebf4a96395..4b851177f04 100644
--- a/src/mame/drivers/alvg.c
+++ b/src/mame/drivers/alvg.c
@@ -274,12 +274,12 @@ ROM_START(usafootb)
ROM_END
-GAME(1991, agsoccer, 0, alvg, alvg, alvg_state, alvg, ROT0, "Alvin G", "A.G. Soccer Ball", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, wrldtour, 0, alvg, alvg, alvg_state, alvg, ROT0, "Alvin G", "Al's Garage Band Goes On A World Tour", GAME_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", GAME_IS_SKELETON_MECHANICAL)
-GAME(1993, usafootb, 0, alvg, alvg, alvg_state, alvg, ROT0, "Alvin G", "U.S.A. Football", GAME_IS_SKELETON_MECHANICAL)
-GAME(1993, mystcast, 0, alvg, alvg, alvg_state, alvg, ROT0, "Alvin G", "Mystery Castle", GAME_IS_SKELETON_MECHANICAL)
-GAME(1993, mystcasta, mystcast, alvg, alvg, alvg_state, alvg, ROT0, "Alvin G", "Mystery Castle (alternate set)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1993, pstlpkr, 0, alvg, alvg, alvg_state, alvg, ROT0, "Alvin G", "Pistol Poker", GAME_IS_SKELETON_MECHANICAL)
-GAME(1993, punchy, 0, alvg, alvg, alvg_state, alvg, ROT0, "Alvin G", "Punchy The Clown", GAME_IS_SKELETON_MECHANICAL)
-GAME(1993, dinoeggs, 0, alvg, alvg, alvg_state, alvg, ROT0, "Alvin G", "Dinosaur Eggs", GAME_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(1993, usafootb, 0, alvg, alvg, alvg_state, alvg, ROT0, "Alvin G", "U.S.A. Football", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1993, mystcast, 0, alvg, alvg, alvg_state, alvg, ROT0, "Alvin G", "Mystery Castle", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1993, mystcasta, mystcast, alvg, alvg, alvg_state, alvg, ROT0, "Alvin G", "Mystery Castle (alternate set)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1993, pstlpkr, 0, alvg, alvg, alvg_state, alvg, ROT0, "Alvin G", "Pistol Poker", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1993, punchy, 0, alvg, alvg, alvg_state, alvg, ROT0, "Alvin G", "Punchy The Clown", 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.c b/src/mame/drivers/amaticmg.c
index 6fda811d370..673491c65c5 100644
--- a/src/mame/drivers/amaticmg.c
+++ b/src/mame/drivers/amaticmg.c
@@ -1082,11 +1082,11 @@ DRIVER_INIT_MEMBER(amaticmg_state,ama8000_3_o)
************************************/
/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT */
-GAMEL( 1996, suprstar, 0, amaticmg, amaticmg, amaticmg_state, ama8000_1_x, ROT90, "Amatic Trading GmbH", "Super Stars", GAME_IMPERFECT_SOUND, layout_suprstar )
-GAME( 2000, am_mg24, 0, amaticmg2, amaticmg, amaticmg_state, ama8000_2_i, ROT0, "Amatic Trading GmbH", "Multi Game I (V.Ger 2.4)", GAME_IMPERFECT_GRAPHICS | GAME_WRONG_COLORS | GAME_UNEMULATED_PROTECTION | GAME_NO_SOUND | GAME_NOT_WORKING )
-GAME( 2000, am_mg3, 0, amaticmg2, amaticmg, amaticmg_state, ama8000_2_i, ROT0, "Amatic Trading GmbH", "Multi Game III (V.Ger 3.5)", GAME_IMPERFECT_GRAPHICS | GAME_WRONG_COLORS | GAME_UNEMULATED_PROTECTION | GAME_NO_SOUND | GAME_NOT_WORKING )
-GAME( 2000, am_mg3a, 0, amaticmg2, amaticmg, amaticmg_state, ama8000_2_v, ROT0, "Amatic Trading GmbH", "Multi Game III (V.Ger 3.64)", GAME_IMPERFECT_GRAPHICS | GAME_WRONG_COLORS | GAME_UNEMULATED_PROTECTION | GAME_NO_SOUND | GAME_NOT_WORKING )
-GAME( 2000, am_mg35i, 0, amaticmg2, amaticmg, amaticmg_state, ama8000_3_o, ROT0, "Amatic Trading GmbH", "Multi Game III (S.Ita 3.5)", GAME_IMPERFECT_GRAPHICS | GAME_WRONG_COLORS | GAME_UNEMULATED_PROTECTION | GAME_NO_SOUND | GAME_NOT_WORKING )
-GAME( 2000, am_mg34i, am_mg35i, amaticmg2, amaticmg, amaticmg_state, ama8000_3_o, ROT0, "Amatic Trading GmbH", "Multi Game III (S.Ita 3.4)", GAME_IMPERFECT_GRAPHICS | GAME_WRONG_COLORS | GAME_UNEMULATED_PROTECTION | GAME_NO_SOUND | GAME_NOT_WORKING )
-GAME( 2000, am_mg33i, am_mg35i, amaticmg2, amaticmg, amaticmg_state, ama8000_3_o, ROT0, "Amatic Trading GmbH", "Multi Game III (S.Ita 3.3)", GAME_IMPERFECT_GRAPHICS | GAME_WRONG_COLORS | GAME_UNEMULATED_PROTECTION | GAME_NO_SOUND | GAME_NOT_WORKING )
-GAME( 2000, am_mg31i, am_mg35i, amaticmg2, amaticmg, amaticmg_state, ama8000_3_o, ROT0, "Amatic Trading GmbH", "Multi Game III (S.Ita 3.1)", GAME_IMPERFECT_GRAPHICS | GAME_WRONG_COLORS | GAME_UNEMULATED_PROTECTION | GAME_NO_SOUND | GAME_NOT_WORKING )
+GAMEL( 1996, suprstar, 0, amaticmg, amaticmg, amaticmg_state, ama8000_1_x, ROT90, "Amatic Trading GmbH", "Super Stars", MACHINE_IMPERFECT_SOUND, layout_suprstar )
+GAME( 2000, am_mg24, 0, amaticmg2, amaticmg, amaticmg_state, ama8000_2_i, ROT0, "Amatic Trading GmbH", "Multi Game I (V.Ger 2.4)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_WRONG_COLORS | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
+GAME( 2000, am_mg3, 0, amaticmg2, amaticmg, amaticmg_state, ama8000_2_i, ROT0, "Amatic Trading GmbH", "Multi Game III (V.Ger 3.5)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_WRONG_COLORS | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
+GAME( 2000, am_mg3a, 0, amaticmg2, amaticmg, amaticmg_state, ama8000_2_v, ROT0, "Amatic Trading GmbH", "Multi Game III (V.Ger 3.64)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_WRONG_COLORS | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
+GAME( 2000, am_mg35i, 0, amaticmg2, amaticmg, amaticmg_state, ama8000_3_o, ROT0, "Amatic Trading GmbH", "Multi Game III (S.Ita 3.5)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_WRONG_COLORS | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
+GAME( 2000, am_mg34i, am_mg35i, amaticmg2, amaticmg, amaticmg_state, ama8000_3_o, ROT0, "Amatic Trading GmbH", "Multi Game III (S.Ita 3.4)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_WRONG_COLORS | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
+GAME( 2000, am_mg33i, am_mg35i, amaticmg2, amaticmg, amaticmg_state, ama8000_3_o, ROT0, "Amatic Trading GmbH", "Multi Game III (S.Ita 3.3)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_WRONG_COLORS | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
+GAME( 2000, am_mg31i, am_mg35i, amaticmg2, amaticmg, amaticmg_state, ama8000_3_o, ROT0, "Amatic Trading GmbH", "Multi Game III (S.Ita 3.1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_WRONG_COLORS | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/ambush.c b/src/mame/drivers/ambush.c
index 0e3e4a8ab33..b4d9479edaa 100644
--- a/src/mame/drivers/ambush.c
+++ b/src/mame/drivers/ambush.c
@@ -333,7 +333,7 @@ ROM_END
*
*************************************/
-GAME( 1983, ambush, 0, ambush, ambusht, driver_device, 0, ROT0, "Tecfri", "Ambush", GAME_SUPPORTS_SAVE )
-GAME( 1983, ambushh, ambush, ambush, ambusht, driver_device, 0, ROT0, "Tecfri", "Ambush (hack?)", GAME_SUPPORTS_SAVE )
-GAME( 1983, ambushj, ambush, ambush, ambush, driver_device, 0, ROT0, "Tecfri (Nippon Amuse license)", "Ambush (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1983, ambushv, ambush, ambush, ambush, driver_device, 0, ROT0, "Tecfri (Volt Electronics license)", "Ambush (Volt Electronics)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/amico2k.c b/src/mame/drivers/amico2k.c
index a903c188232..4a1c9667c51 100644
--- a/src/mess/drivers/amico2k.c
+++ b/src/mame/drivers/amico2k.c
@@ -238,4 +238,4 @@ 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", GAME_NO_SOUND_HW)
+COMP( 1978, amico2k, 0, 0, amico2k, amico2k, driver_device, 0, "A.S.E.L.", "Amico 2000", MACHINE_NO_SOUND_HW)
diff --git a/src/mess/drivers/amiga.c b/src/mame/drivers/amiga.c
index 48403a7fff6..d464a27591e 100644
--- a/src/mess/drivers/amiga.c
+++ b/src/mame/drivers/amiga.c
@@ -2114,31 +2114,31 @@ ROM_END
//**************************************************************************
// OCS Chipset
-COMP( 1985, a1000, 0, 0, a1000, amiga, a1000_state, pal, "Commodore", "Amiga 1000 (PAL)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS )
-COMP( 1985, a1000n, a1000, 0, a1000n, amiga, a1000_state, ntsc, "Commodore", "Amiga 1000 (NTSC)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS )
-COMP( 1987, a2000, 0, 0, a2000, amiga, a2000_state, pal, "Commodore", "Amiga 2000 (PAL)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS )
-COMP( 1987, a2000n, a2000, 0, a2000n, amiga, a2000_state, ntsc, "Commodore", "Amiga 2000 (NTSC)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS )
-COMP( 1987, a500, 0, 0, a500, amiga, a500_state, pal, "Commodore", "Amiga 500 (PAL)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS )
-COMP( 1987, a500n, a500, 0, a500n, amiga, a500_state, ntsc, "Commodore", "Amiga 500 (NTSC)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS )
-COMP( 1990, cdtv, 0, 0, cdtv, amiga, cdtv_state, pal, "Commodore", "CDTV (PAL)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS )
-COMP( 1990, cdtvn, cdtv, 0, cdtvn, amiga, cdtv_state, ntsc, "Commodore", "CDTV (NTSC)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS )
+COMP( 1985, a1000, 0, 0, a1000, amiga, a1000_state, pal, "Commodore", "Amiga 1000 (PAL)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
+COMP( 1985, a1000n, a1000, 0, a1000n, amiga, a1000_state, ntsc, "Commodore", "Amiga 1000 (NTSC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
+COMP( 1987, a2000, 0, 0, a2000, amiga, a2000_state, pal, "Commodore", "Amiga 2000 (PAL)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
+COMP( 1987, a2000n, a2000, 0, a2000n, amiga, a2000_state, ntsc, "Commodore", "Amiga 2000 (NTSC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
+COMP( 1987, a500, 0, 0, a500, amiga, a500_state, pal, "Commodore", "Amiga 500 (PAL)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
+COMP( 1987, a500n, a500, 0, a500n, amiga, a500_state, ntsc, "Commodore", "Amiga 500 (NTSC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
+COMP( 1990, cdtv, 0, 0, cdtv, amiga, cdtv_state, pal, "Commodore", "CDTV (PAL)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
+COMP( 1990, cdtvn, cdtv, 0, cdtvn, amiga, cdtv_state, ntsc, "Commodore", "CDTV (NTSC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
// ECS Chipset
-COMP( 1990, a3000, 0, 0, a3000, amiga, a3000_state, pal, "Commodore", "Amiga 3000 (PAL)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS )
-COMP( 1990, a3000n, a3000, 0, a3000n, amiga, a3000_state, ntsc, "Commodore", "Amiga 3000 (NTSC)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS )
-COMP( 1992, a500p, 0, 0, a500p, amiga, a500p_state, pal, "Commodore", "Amiga 500 Plus (PAL)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS )
-COMP( 1992, a500pn, a500p, 0, a500pn, amiga, a500p_state, ntsc, "Commodore", "Amiga 500 Plus (NTSC)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS )
-COMP( 1992, a600, 0, 0, a600, amiga, a600_state, pal, "Commodore", "Amiga 600 (PAL)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS )
-COMP( 1992, a600n, a600, 0, a600n, amiga, a600_state, ntsc, "Commodore", "Amiga 600 (NTSC)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS )
+COMP( 1990, a3000, 0, 0, a3000, amiga, a3000_state, pal, "Commodore", "Amiga 3000 (PAL)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
+COMP( 1990, a3000n, a3000, 0, a3000n, amiga, a3000_state, ntsc, "Commodore", "Amiga 3000 (NTSC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
+COMP( 1992, a500p, 0, 0, a500p, amiga, a500p_state, pal, "Commodore", "Amiga 500 Plus (PAL)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
+COMP( 1992, a500pn, a500p, 0, a500pn, amiga, a500p_state, ntsc, "Commodore", "Amiga 500 Plus (NTSC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
+COMP( 1992, a600, 0, 0, a600, amiga, a600_state, pal, "Commodore", "Amiga 600 (PAL)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
+COMP( 1992, a600n, a600, 0, a600n, amiga, a600_state, ntsc, "Commodore", "Amiga 600 (NTSC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
// AGA Chipset
-COMP( 1992, a1200, 0, 0, a1200, amiga, a1200_state, pal, "Commodore", "Amiga 1200 (PAL)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS )
-COMP( 1992, a1200n, a1200, 0, a1200n, amiga, a1200_state, ntsc, "Commodore", "Amiga 1200 (NTSC)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS )
-COMP( 1992, a4000, 0, 0, a4000, amiga, a4000_state, pal, "Commodore", "Amiga 4000/040 (PAL)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS )
-COMP( 1992, a4000n, a4000, 0, a4000n, amiga, a4000_state, ntsc, "Commodore", "Amiga 4000/040 (NTSC)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS )
-COMP( 1993, a400030, a4000, 0, a400030, amiga, a4000_state, pal, "Commodore", "Amiga 4000/030 (PAL)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS )
-COMP( 1993, a400030n, a4000, 0, a400030n, amiga, a4000_state, ntsc, "Commodore", "Amiga 4000/030 (NTSC)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS )
-COMP( 1993, cd32, 0, 0, cd32, cd32, cd32_state, pal, "Commodore", "Amiga CD32 (PAL)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS )
-COMP( 1993, cd32n, cd32, 0, cd32n, cd32, cd32_state, ntsc, "Commodore", "Amiga CD32 (NTSC)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS )
-COMP( 1994, a4000t, 0, 0, a4000t, amiga, a4000_state, pal, "Commodore", "Amiga 4000T (PAL)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS )
-COMP( 1994, a4000tn, a4000t, 0, a4000tn, amiga, a4000_state, ntsc, "Commodore", "Amiga 4000T (NTSC)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS )
+COMP( 1992, a1200, 0, 0, a1200, amiga, a1200_state, pal, "Commodore", "Amiga 1200 (PAL)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
+COMP( 1992, a1200n, a1200, 0, a1200n, amiga, a1200_state, ntsc, "Commodore", "Amiga 1200 (NTSC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
+COMP( 1992, a4000, 0, 0, a4000, amiga, a4000_state, pal, "Commodore", "Amiga 4000/040 (PAL)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
+COMP( 1992, a4000n, a4000, 0, a4000n, amiga, a4000_state, ntsc, "Commodore", "Amiga 4000/040 (NTSC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
+COMP( 1993, a400030, a4000, 0, a400030, amiga, a4000_state, pal, "Commodore", "Amiga 4000/030 (PAL)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
+COMP( 1993, a400030n, a4000, 0, a400030n, amiga, a4000_state, ntsc, "Commodore", "Amiga 4000/030 (NTSC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
+COMP( 1993, cd32, 0, 0, cd32, cd32, cd32_state, pal, "Commodore", "Amiga CD32 (PAL)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
+COMP( 1993, cd32n, cd32, 0, cd32n, cd32, cd32_state, ntsc, "Commodore", "Amiga CD32 (NTSC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
+COMP( 1994, a4000t, 0, 0, a4000t, amiga, a4000_state, pal, "Commodore", "Amiga 4000T (PAL)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
+COMP( 1994, a4000tn, a4000t, 0, a4000tn, amiga, a4000_state, ntsc, "Commodore", "Amiga 4000T (NTSC)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
diff --git a/src/mame/drivers/ampoker2.c b/src/mame/drivers/ampoker2.c
index d3e9a15071d..3092d7f0101 100644
--- a/src/mame/drivers/ampoker2.c
+++ b/src/mame/drivers/ampoker2.c
@@ -1440,16 +1440,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", GAME_SUPPORTS_SAVE, layout_ampoker2 )
-GAMEL( 1990, ampkr2b1, ampoker2, ampoker2, ampoker2, driver_device, 0, ROT0, "bootleg", "American Poker II (bootleg, set 1)", GAME_SUPPORTS_SAVE, layout_ampoker2 )
-GAMEL( 1990, ampkr2b2, ampoker2, ampoker2, ampoker2, driver_device, 0, ROT0, "bootleg", "American Poker II (bootleg, set 2)", GAME_SUPPORTS_SAVE, layout_ampoker2 )
-GAMEL( 1994, ampkr2b3, ampoker2, ampoker2, ampoker2, driver_device, 0, ROT0, "bootleg", "American Poker II (bootleg, set 3)", GAME_SUPPORTS_SAVE, layout_ampoker2 )
-GAMEL( 1994, ampkr2b4, ampoker2, ampoker2, ampoker2, driver_device, 0, ROT0, "bootleg", "American Poker II (bootleg, set 4)", GAME_SUPPORTS_SAVE, layout_ampoker2 )
-GAMEL( 1994, ampkr228, ampoker2, ampoker2, ampoker2, driver_device, 0, ROT0, "bootleg?", "American Poker II (iamp2 v28)", GAME_SUPPORTS_SAVE, layout_ampoker2 )
-GAMEL( 1995, ampkr95, ampoker2, ampoker2, ampkr95, driver_device, 0, ROT0, "bootleg", "American Poker 95", GAME_SUPPORTS_SAVE, layout_ampoker2 )
-GAMEL( 1990, pkrdewin, ampoker2, ampoker2, ampoker2, driver_device, 0, ROT0, "bootleg", "Poker De Win", GAME_SUPPORTS_SAVE, layout_ampoker2 )
-GAMEL( 1990, videomat, ampoker2, ampoker2, ampoker2, driver_device, 0, ROT0, "bootleg", "Videomat (Polish bootleg)", GAME_SUPPORTS_SAVE, layout_ampoker2 )
-GAMEL( 1990, rabbitpk, ampoker2, ampoker2, ampoker2, ampoker2_state, rabbitpk, ROT0, "bootleg", "Rabbit Poker (Arizona Poker v1.1?)", GAME_SUPPORTS_SAVE, layout_ampoker2 )
-GAMEL( 1995, sigmapkr, 0, ampoker2, sigmapkr, driver_device, 0, ROT0, "Sigma Inc.", "Sigma Poker", GAME_SUPPORTS_SAVE, layout_sigmapkr )
-GAMEL( 1998, sigma2k, 0, sigma2k, sigma2k, driver_device, 0, ROT0, "Sigma Inc.", "Sigma Poker 2000", GAME_SUPPORTS_SAVE, layout_sigmapkr )
-GAME( 1990, piccolop, ampoker2, ampoker2, piccolop, ampoker2_state, piccolop, ROT0, "Admiral/Novomatic", "Piccolo Poker 100", GAME_SUPPORTS_SAVE )
+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, 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 )
+GAME( 1990, piccolop, ampoker2, ampoker2, piccolop, ampoker2_state, piccolop, ROT0, "Admiral/Novomatic", "Piccolo Poker 100", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/ampro.c b/src/mame/drivers/ampro.c
index 8dccc887192..3cd31d47e29 100644
--- a/src/mess/drivers/ampro.c
+++ b/src/mame/drivers/ampro.c
@@ -181,6 +181,7 @@ static MACHINE_CONFIG_START( ampro, ampro_state )
MCFG_TIMER_DRIVER_ADD_PERIODIC("ctc_tick", ampro_state, ctc_tick, attotime::from_hz(XTAL_16MHz / 8))
MCFG_WD1772_ADD("fdc", XTAL_16MHz / 2)
MCFG_FLOPPY_DRIVE_ADD("fdc:0", ampro_floppies, "525dd", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_SOFTWARE_LIST_ADD("flop_list", "ampro")
MACHINE_CONFIG_END
@@ -198,4 +199,4 @@ ROM_END
/* Driver */
/* 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", GAME_NO_SOUND_HW)
+COMP( 1980, ampro, 0, 0, ampro, ampro, ampro_state, ampro, "Ampro", "Little Z80 Board", MACHINE_NO_SOUND_HW)
diff --git a/src/mame/drivers/amspdwy.c b/src/mame/drivers/amspdwy.c
index 5fa553cf476..9a846b1dc95 100644
--- a/src/mame/drivers/amspdwy.c
+++ b/src/mame/drivers/amspdwy.c
@@ -77,7 +77,7 @@ WRITE8_MEMBER(amspdwy_state::amspdwy_sound_w)
static ADDRESS_MAP_START( amspdwy_map, AS_PROGRAM, 8, amspdwy_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0x8000, 0x801f) AM_WRITE(amspdwy_paletteram_w) AM_SHARE("palette")
+ AM_RANGE(0x8000, 0x801f) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x9000, 0x93ff) AM_MIRROR(0x0400) AM_RAM_WRITE(amspdwy_videoram_w) AM_SHARE("videoram")
AM_RANGE(0x9800, 0x9bff) AM_RAM_WRITE(amspdwy_colorram_w) AM_SHARE("colorram")
AM_RANGE(0x9c00, 0x9fff) AM_RAM // unused?
@@ -272,7 +272,7 @@ static MACHINE_CONFIG_START( amspdwy, amspdwy_state )
MCFG_GFXDECODE_ADD("gfxdecode", "palette", amspdwy)
MCFG_PALETTE_ADD("palette", 32)
- MCFG_PALETTE_FORMAT(BBGGGRRR)
+ MCFG_PALETTE_FORMAT(BBGGGRRR_inverted)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -379,5 +379,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)", GAME_SUPPORTS_SAVE )
-GAME( 1987, amspdwya, amspdwy, amspdwy, amspdwya, driver_device, 0, ROT0, "Enerdyne Technologies Inc.", "American Speedway (set 2)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/amstr_pc.c b/src/mame/drivers/amstr_pc.c
index d825cc30a95..8ba877cd182 100644
--- a/src/mess/drivers/amstr_pc.c
+++ b/src/mame/drivers/amstr_pc.c
@@ -651,9 +651,9 @@ 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", GAME_NOT_WORKING)
-COMP( 1987, ppc640, ibm5150, 0, ppc640, pc200, driver_device, 0, "Amstrad plc", "Amstrad PPC640", GAME_NOT_WORKING)
-COMP( 1988, pc20, ibm5150, 0, pc200, pc200, driver_device, 0, "Amstrad plc", "Amstrad PC20" , GAME_NOT_WORKING)
-COMP( 1988, pc200, ibm5150, 0, pc200, pc200, driver_device, 0, "Sinclair Research Ltd", "PC200 Professional Series", GAME_NOT_WORKING)
-COMP( 1988, pc2086, ibm5150, 0, pc200, pc200, driver_device, 0, "Amstrad plc", "Amstrad PC2086", GAME_NOT_WORKING )
-COMP( 1990, pc3086, ibm5150, 0, pc200, pc200, driver_device, 0, "Amstrad plc", "Amstrad PC3086", GAME_NOT_WORKING )
+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, pc200, pc200, driver_device, 0, "Amstrad plc", "Amstrad PC2086", MACHINE_NOT_WORKING )
+COMP( 1990, pc3086, ibm5150, 0, pc200, pc200, driver_device, 0, "Amstrad plc", "Amstrad PC3086", MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/amstrad.c b/src/mame/drivers/amstrad.c
index e38f820c85b..8e88e135151 100644
--- a/src/mess/drivers/amstrad.c
+++ b/src/mame/drivers/amstrad.c
@@ -106,11 +106,10 @@ Some bugs left :
#include "imagedev/snapquik.h"
#include "imagedev/cassette.h"
#include "formats/tzx_cas.h"
+#include "formats/msx_dsk.h"
#include "machine/ram.h"
-
-
#define MANUFACTURER_NAME 0x07
#define TV_REFRESH_RATE 0x10
@@ -784,9 +783,13 @@ static SLOT_INTERFACE_START( amstrad_floppies )
SLOT_INTERFACE_END
static SLOT_INTERFACE_START( aleste_floppies )
- SLOT_INTERFACE( "525hd", FLOPPY_525_HD )
+ SLOT_INTERFACE( "35dd", FLOPPY_35_DD )
SLOT_INTERFACE_END
+FLOPPY_FORMATS_MEMBER( amstrad_state::aleste_floppy_formats )
+ FLOPPY_MSX_FORMAT
+FLOPPY_FORMATS_END
+
static MACHINE_CONFIG_FRAGMENT( cpcplus_cartslot )
MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "gx4000_cart")
MCFG_GENERIC_EXTENSIONS("bin,cpr")
@@ -843,6 +846,23 @@ SLOT_INTERFACE_START(cpcplus_exp_cards)
SLOT_INTERFACE("hd20", CPC_HD20)
SLOT_INTERFACE_END
+SLOT_INTERFACE_START(aleste_exp_cards)
+ SLOT_INTERFACE("ssa1", CPC_SSA1)
+ SLOT_INTERFACE("dkspeech", CPC_DKSPEECH)
+ SLOT_INTERFACE("rom", CPC_ROM)
+ SLOT_INTERFACE("multiface2", CPC_MFACE2)
+ SLOT_INTERFACE("pds", CPC_PDS)
+ SLOT_INTERFACE("rs232", CPC_RS232)
+ SLOT_INTERFACE("amsrs232", CPC_RS232_AMS)
+ SLOT_INTERFACE("sf2", CPC_SYMBIFACE2)
+ SLOT_INTERFACE("amdrum", CPC_AMDRUM)
+ SLOT_INTERFACE("playcity", CPC_PLAYCITY)
+ SLOT_INTERFACE("smartwatch", CPC_SMARTWATCH)
+ SLOT_INTERFACE("brunword4", CPC_BRUNWORD_MK4)
+ SLOT_INTERFACE("hd20", CPC_HD20)
+ SLOT_INTERFACE("magicsound", AL_MAGICSOUND)
+SLOT_INTERFACE_END
+
SLOT_INTERFACE_START(amstrad_centronics_devices)
SLOT_INTERFACE("pl80", COMX_PL80)
SLOT_INTERFACE("ex800", EPSON_EX800)
@@ -1125,8 +1145,16 @@ static MACHINE_CONFIG_DERIVED( aleste, cpc6128 )
MCFG_DEVICE_REMOVE("upd765")
MCFG_I8272A_ADD("upd765", true)
- MCFG_FLOPPY_DRIVE_ADD("upd765:0", aleste_floppies, "525hd", floppy_image_device::default_floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD("upd765:1", aleste_floppies, "525hd", floppy_image_device::default_floppy_formats)
+ MCFG_DEVICE_REMOVE("exp")
+ MCFG_DEVICE_ADD("exp", CPC_EXPANSION_SLOT, 0)
+ MCFG_DEVICE_SLOT_INTERFACE(aleste_exp_cards, NULL, false)
+ MCFG_CPC_EXPANSION_SLOT_OUT_IRQ_CB(INPUTLINE("maincpu", 0))
+ MCFG_CPC_EXPANSION_SLOT_OUT_NMI_CB(INPUTLINE("maincpu", INPUT_LINE_NMI))
+ MCFG_CPC_EXPANSION_SLOT_OUT_ROMDIS_CB(WRITELINE(amstrad_state, cpc_romdis)) // ROMDIS
+ MCFG_CPC_EXPANSION_SLOT_ROM_SELECT(WRITE8(amstrad_state,rom_select))
+
+ MCFG_FLOPPY_DRIVE_ADD("upd765:0", aleste_floppies, "35dd", amstrad_state::aleste_floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD("upd765:1", aleste_floppies, "35dd", amstrad_state::aleste_floppy_formats)
MCFG_DEVICE_REMOVE("flop_list")
MCFG_SOFTWARE_LIST_ADD("flop_list", "aleste")
@@ -1256,4 +1284,4 @@ COMP( 1990, cpc464p, 0, 0, cpcplus, plus, driver_device,
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", GAME_IMPERFECT_SOUND )
+COMP( 1993, al520ex, cpc464, 0, aleste, aleste, driver_device, 0, "Patisonic", "Aleste 520EX", MACHINE_IMPERFECT_SOUND )
diff --git a/src/mame/drivers/amusco.c b/src/mame/drivers/amusco.c
index aa9b04d5000..1cd32549340 100644
--- a/src/mame/drivers/amusco.c
+++ b/src/mame/drivers/amusco.c
@@ -97,7 +97,6 @@ public:
DECLARE_WRITE16_MEMBER(amusco_videoram_w);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
- DECLARE_PALETTE_INIT(amusco);
DECLARE_READ8_MEMBER(mc6845_r);
DECLARE_WRITE8_MEMBER(mc6845_w);
DECLARE_WRITE16_MEMBER(vram_w);
@@ -113,7 +112,6 @@ public:
INTERRUPT_GEN_MEMBER(amusco_timer_irq);
UINT16 m_mc6845_address;
UINT16 m_video_update_address;
- DECLARE_PALETTE_INIT(amusco_palette_init);
};
@@ -125,18 +123,6 @@ WRITE16_MEMBER(amusco_state::amusco_videoram_w)
{
}
-PALETTE_INIT_MEMBER(amusco_state, amusco_palette_init)
-{
- int i;
-
- for (i = 0; i < 8; i++)
- {
- palette.set_pen_color(i, pal1bit(i >> 2), pal1bit(i >> 0), pal1bit(i >> 1));
- }
-}
-
-
-
TILE_GET_INFO_MEMBER(amusco_state::get_bg_tile_info)
{
/* - bits -
@@ -166,10 +152,6 @@ UINT32 amusco_state::screen_update_amusco(screen_device &screen, bitmap_ind16 &b
return 0;
}
-PALETTE_INIT_MEMBER(amusco_state, amusco)
-{
-}
-
/**************************
* Read / Write Handlers *
@@ -528,8 +510,7 @@ static MACHINE_CONFIG_START( amusco, amusco_state )
MCFG_SCREEN_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", "palette", amusco)
- MCFG_PALETTE_ADD("palette", 8)
- MCFG_PALETTE_INIT_OWNER(amusco_state, amusco_palette_init)
+ MCFG_PALETTE_ADD_3BIT_GBR("palette")
MCFG_MC6845_ADD("crtc", R6545_1, "screen", CRTC_CLOCK) /* guess */
MCFG_MC6845_SHOW_BORDER_AREA(false)
@@ -540,7 +521,6 @@ static MACHINE_CONFIG_START( amusco, amusco_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("sn", SN76489, SND_CLOCK)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
-
MACHINE_CONFIG_END
@@ -573,4 +553,4 @@ ROM_END
*************************/
/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS */
-GAME( 1987, amusco, 0, amusco, amusco, driver_device, 0, ROT0, "Amusco", "American Music Poker (V1.4)", GAME_NOT_WORKING )
+GAME( 1987, amusco, 0, amusco, amusco, driver_device, 0, ROT0, "Amusco", "American Music Poker (V1.4)", MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/amust.c b/src/mame/drivers/amust.c
index fe471686a14..1fee6824934 100644
--- a/src/mess/drivers/amust.c
+++ b/src/mame/drivers/amust.c
@@ -54,7 +54,7 @@ Stuff that doesn't make sense:
------------------------------
1. To access the screen, it waits for IRQ presumably from sync pulse. It sets INT
mode 0 which means a page-zero jump, but doesn't write anything to the zero-page ram.
-That's why I added a RETI at 0008 and set the vector to there. A bit later it writes
+That's why I added a RETI at 0038 and set the vector to there. A bit later it writes
a jump at 0000. Then it sets the interrupting device to the fdc (not sure how yet),
then proceeds to overwrite all of page-zero with the disk contents. This of course
kills the jump it just wrote, and my RETI. So it runs into the weeds at high speed.
@@ -192,11 +192,23 @@ static ADDRESS_MAP_START(amust_io, AS_IO, 8, amust_state)
ADDRESS_MAP_END
static SLOT_INTERFACE_START( amust_floppies )
- SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
+ SLOT_INTERFACE( "drive0", FLOPPY_525_QD )
+ SLOT_INTERFACE( "drive1", FLOPPY_525_QD )
SLOT_INTERFACE_END
/* Input ports */
static INPUT_PORTS_START( amust )
+ PORT_START("P9")
+ // bits 6,7 not used?
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) // code @ FB83
+ PORT_DIPNAME( 0x10, 0x10, "Boot to Monitor" ) // code @ F895
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( On ) )
+ PORT_DIPNAME( 0x0f, 0x01, "Unknown" ) // code @ FC99
+ PORT_DIPSETTING( 0x01, "1" )
+ PORT_DIPSETTING( 0x02, "2" )
+ PORT_DIPSETTING( 0x04, "3" )
+ PORT_DIPSETTING( 0x08, "4" )
INPUT_PORTS_END
READ8_MEMBER( amust_state::port00_r )
@@ -214,7 +226,7 @@ READ8_MEMBER( amust_state::port01_r )
// bodgy
INTERRUPT_GEN_MEMBER( amust_state::irq_vs )
{
- m_maincpu->set_input_line_and_vector(INPUT_LINE_IRQ0, ASSERT_LINE, 0xcf);
+ m_maincpu->set_input_line_and_vector(INPUT_LINE_IRQ0, ASSERT_LINE, 0xff);
}
READ8_MEMBER( amust_state::port04_r )
@@ -267,7 +279,7 @@ d7 -
READ8_MEMBER( amust_state::port09_r )
{
printf("%s\n",machine().describe_context());
- return 0xff;
+ return ioport("P9")->read();
}
READ8_MEMBER( amust_state::port0a_r )
@@ -359,8 +371,8 @@ MACHINE_RESET_MEMBER( amust_state, amust )
membank("bankw0")->set_entry(0); // always write to ram
m_beep->set_frequency(800);
address_space &space = m_maincpu->space(AS_PROGRAM);
- space.write_byte(8, 0xed);
- space.write_byte(9, 0x4d);
+ space.write_byte(0x38, 0xed);
+ space.write_byte(0x39, 0x4d);
m_port04 = 0;
m_port06 = 0;
m_port08 = 0;
@@ -409,8 +421,10 @@ static MACHINE_CONFIG_START( amust, amust_state )
MCFG_DEVICE_ADD("keybd", GENERIC_KEYBOARD, 0)
MCFG_GENERIC_KEYBOARD_CB(WRITE8(amust_state, kbd_put))
MCFG_UPD765A_ADD("fdc", false, true)
- MCFG_FLOPPY_DRIVE_ADD("fdc:0", amust_floppies, "525dd", floppy_image_device::default_floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD("fdc:1", amust_floppies, "525dd", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD("fdc:0", amust_floppies, "drive0", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
+ MCFG_FLOPPY_DRIVE_ADD("fdc:1", amust_floppies, "drive1", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
//MCFG_DEVICE_ADD("uart1", I8251, 0)
//MCFG_I8251_TXD_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_txd))
@@ -461,4 +475,4 @@ 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", GAME_NOT_WORKING )
+COMP( 1983, amust, 0, 0, amust, amust, amust_state, amust, "Amust", "Amust Executive 816", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/angelkds.c b/src/mame/drivers/angelkds.c
index 8bd36d7b37c..db73d337800 100644
--- a/src/mame/drivers/angelkds.c
+++ b/src/mame/drivers/angelkds.c
@@ -754,5 +754,5 @@ DRIVER_INIT_MEMBER(angelkds_state,spcpostn)
}
-GAME( 1988, angelkds, 0, angelkds, angelkds, angelkds_state, angelkds, ROT90, "Sega / Nasco?", "Angel Kids (Japan)" , GAME_SUPPORTS_SAVE) /* Nasco not displayed but 'Exa Planning' is */
-GAME( 1986, spcpostn, 0, spcpostn, spcpostn, angelkds_state, spcpostn, ROT90, "Sega / Nasco", "Space Position (Japan)" , GAME_SUPPORTS_SAVE) /* encrypted */
+GAME( 1988, angelkds, 0, angelkds, angelkds, angelkds_state, angelkds, ROT90, "Sega / Nasco?", "Angel Kids (Japan)" , MACHINE_SUPPORTS_SAVE) /* Nasco not displayed but 'Exa Planning' is */
+GAME( 1986, spcpostn, 0, spcpostn, spcpostn, angelkds_state, spcpostn, ROT90, "Sega / Nasco", "Space Position (Japan)" , MACHINE_SUPPORTS_SAVE) /* encrypted */
diff --git a/src/mess/drivers/apc.c b/src/mame/drivers/apc.c
index 82f41811669..78a08b343da 100644
--- a/src/mess/drivers/apc.c
+++ b/src/mame/drivers/apc.c
@@ -144,7 +144,6 @@ public:
DECLARE_WRITE8_MEMBER(apc_dma_write_byte);
DECLARE_DRIVER_INIT(apc);
- DECLARE_PALETTE_INIT(apc);
int m_dack;
UINT8 m_dma_offset[4];
@@ -908,16 +907,6 @@ static SLOT_INTERFACE_START( apc_floppies )
SLOT_INTERFACE( "8", FLOPPY_8_DSDD )
SLOT_INTERFACE_END
-PALETTE_INIT_MEMBER(apc_state,apc)
-{
- int i;
-
- for(i=0;i<8;i++)
- palette.set_pen_color(i, pal1bit(i >> 1), pal1bit(i >> 2), pal1bit(i >> 0));
- for(i=8;i<palette.entries();i++)
- palette.set_pen_color(i, pal1bit(0), pal1bit(0), pal1bit(0));
-}
-
static MACHINE_CONFIG_START( apc, apc_state )
/* basic machine hardware */
@@ -964,6 +953,8 @@ static MACHINE_CONFIG_START( apc, apc_state )
MCFG_SCREEN_SIZE(640, 494)
MCFG_SCREEN_VISIBLE_AREA(0*8, 640-1, 0*8, 494-1)
+ MCFG_PALETTE_ADD_3BIT_BRG("palette")
+
MCFG_GFXDECODE_ADD("gfxdecode", "palette", apc)
MCFG_DEVICE_ADD("upd7220_chr", UPD7220, 3579545) // unk clock
@@ -974,9 +965,6 @@ static MACHINE_CONFIG_START( apc, apc_state )
MCFG_DEVICE_ADDRESS_MAP(AS_0, upd7220_2_map)
MCFG_UPD7220_DISPLAY_PIXELS_CALLBACK_OWNER(apc_state, hgdc_display_pixels)
- MCFG_PALETTE_ADD("palette", 16)
- MCFG_PALETTE_INIT_OWNER(apc_state,apc)
-
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD( "upd1771c", UPD1771C, MAIN_CLOCK ) //uPD1771C-006
@@ -1009,4 +997,4 @@ DRIVER_INIT_MEMBER(apc_state,apc)
// ...
}
-COMP( 1982, apc, 0, 0, apc, apc, apc_state, apc, "NEC", "APC", GAME_NOT_WORKING | GAME_NO_SOUND )
+COMP( 1982, apc, 0, 0, apc, apc, apc_state, apc, "NEC", "APC", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mess/drivers/apexc.c b/src/mame/drivers/apexc.c
index bc5515274e9..afeeae693bc 100644
--- a/src/mess/drivers/apexc.c
+++ b/src/mame/drivers/apexc.c
@@ -907,5 +907,5 @@ ROM_START(apexc)
ROM_END
// YEAR NAME PARENT COMPAT MACHINE INPUT 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)" , GAME_NOT_WORKING | GAME_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)" , GAME_NO_SOUND_HW)
+//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/mess/drivers/apf.c b/src/mame/drivers/apf.c
index c46b7dd3701..8509777d21b 100644
--- a/src/mess/drivers/apf.c
+++ b/src/mame/drivers/apf.c
@@ -562,7 +562,9 @@ static MACHINE_CONFIG_DERIVED( apfimag, apfm1000 )
MCFG_FD1771_ADD("fdc", 1000000) // guess
MCFG_FLOPPY_DRIVE_ADD("fdc:0", apf_floppies, "525dd", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", apf_floppies, "525dd", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_SOFTWARE_LIST_ADD("cass_list", "apfimag_cass")
MACHINE_CONFIG_END
diff --git a/src/mess/drivers/apogee.c b/src/mame/drivers/apogee.c
index c6e6b5897f4..c6e6b5897f4 100644
--- a/src/mess/drivers/apogee.c
+++ b/src/mame/drivers/apogee.c
diff --git a/src/mess/drivers/apollo.c b/src/mame/drivers/apollo.c
index d6ddecf3fd9..1c41ed2c7d9 100644
--- a/src/mess/drivers/apollo.c
+++ b/src/mame/drivers/apollo.c
@@ -1260,7 +1260,7 @@ ROM_END
#define DN_FLAGS 0
#define DSP_FLAGS 0
-//#define DSP_FLAGS GAME_NO_SOUND
+//#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 )
@@ -1271,6 +1271,6 @@ COMP( 1988, dn3000, dn3500, 0, dn3000_15i, dn3500, apollo_state, dn3000
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", GAME_NOT_WORKING )
-COMP( 1991, dsp5500, dn3500, 0, dsp5500, dsp3500, apollo_state,dsp5500,"Apollo", "Apollo DSP5500", GAME_NOT_WORKING )
-COMP( 1991, dn5500_19i, dn3500, 0, dn5500_19i, dn3500, apollo_state, dn5500, "Apollo", "Apollo DN5500 19\" Monochrome", GAME_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/mess/drivers/apple1.c b/src/mame/drivers/apple1.c
index 3f6afe2be77..7af5cf2d8ae 100644
--- a/src/mess/drivers/apple1.c
+++ b/src/mame/drivers/apple1.c
@@ -328,4 +328,4 @@ ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
-COMP( 1976, apple1, 0, 0, apple1, apple1, apple1_state, apple1, "Apple Computer", "Apple I" , GAME_NO_SOUND )
+COMP( 1976, apple1, 0, 0, apple1, apple1, apple1_state, apple1, "Apple Computer", "Apple I" , MACHINE_NO_SOUND )
diff --git a/src/mess/drivers/apple2.c b/src/mame/drivers/apple2.c
index b6b71ffcdd3..8cf74588ffc 100644
--- a/src/mess/drivers/apple2.c
+++ b/src/mame/drivers/apple2.c
@@ -368,7 +368,7 @@ PALETTE_INIT_MEMBER(napple2_state, apple2)
UINT32 napple2_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
// always update the flash timer here so it's smooth regardless of mode switches
- m_video->m_flash = ((machine().time() * 4).seconds & 1) ? true : false;
+ m_video->m_flash = ((machine().time() * 4).seconds() & 1) ? true : false;
if (m_video->m_graphics)
{
@@ -377,7 +377,14 @@ UINT32 napple2_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap,
if (m_video->m_mix)
{
m_video->hgr_update(screen, bitmap, cliprect, 0, 159);
- m_video->text_update_orig(screen, bitmap, cliprect, 160, 191);
+ if (!strcmp(machine().system().name, "ivelultr"))
+ {
+ m_video->text_update_ultr(screen, bitmap, cliprect, 160, 191);
+ }
+ else
+ {
+ m_video->text_update_orig(screen, bitmap, cliprect, 160, 191);
+ }
}
else
{
@@ -389,7 +396,14 @@ UINT32 napple2_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap,
if (m_video->m_mix)
{
m_video->lores_update(screen, bitmap, cliprect, 0, 159);
- m_video->text_update_orig(screen, bitmap, cliprect, 160, 191);
+ if (!strcmp(machine().system().name, "ivelultr"))
+ {
+ m_video->text_update_ultr(screen, bitmap, cliprect, 160, 191);
+ }
+ else
+ {
+ m_video->text_update_orig(screen, bitmap, cliprect, 160, 191);
+ }
}
else
{
@@ -399,7 +413,14 @@ UINT32 napple2_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap,
}
else
{
- m_video->text_update_orig(screen, bitmap, cliprect, 0, 191);
+ if (!strcmp(machine().system().name, "ivelultr"))
+ {
+ m_video->text_update_ultr(screen, bitmap, cliprect, 0, 191);
+ }
+ else
+ {
+ m_video->text_update_orig(screen, bitmap, cliprect, 0, 191);
+ }
}
return 0;
@@ -722,7 +743,7 @@ UINT8 napple2_state::read_floatingbus()
// machine state switches
//
- Hires = m_video->m_hires ? 1 : 0;
+ Hires = (m_video->m_hires && m_video->m_graphics) ? 1 : 0;
Mixed = m_video->m_mix ? 1 : 0;
Page2 = m_page2 ? 1 : 0;
_80Store = 0;
@@ -1245,10 +1266,7 @@ static MACHINE_CONFIG_START( apple2_common, napple2_state )
MCFG_DEVICE_ADD(A2_VIDEO_TAG, APPLE2_VIDEO, XTAL_14_31818MHz)
MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(280*2, 262)
- MCFG_SCREEN_VISIBLE_AREA(0, (280*2)-1,0,192-1)
+ MCFG_SCREEN_RAW_PARAMS(1021800*14, (65*7)*2, 0, (40*7)*2, 262, 0, 192)
MCFG_SCREEN_UPDATE_DRIVER(napple2_state, screen_update)
MCFG_SCREEN_PALETTE("palette")
@@ -1430,6 +1448,20 @@ ROM_START(uniap2en)
ROM_LOAD ( "unitron.f0" , 0x3000, 0x1000, CRC(8e047c4a) SHA1(78c57c0e00dfce7fdec9437fe2b4c25def447e5d))
ROM_END
+ROM_START(uniap2ti) /* "Teclado Inteligente" means "smart keyboard" in brazilian portuguese */
+ ROM_REGION(0x1000,"gfx1",0)
+ ROM_LOAD ( "unitron.chr", 0x0000, 0x1000, CRC(7fdd1af6) SHA1(2f4f90d90f2f3a8c1fbea304e1072780fb22e698))
+
+ ROM_REGION(0x4000,"maincpu",0)
+ ROM_LOAD ( "unitron_pt.d0", 0x1000, 0x1000, CRC(311beae6) SHA1(f6379aba9ac982850edc314c93a393844a3349ef))
+ ROM_LOAD ( "unitron.e0" , 0x2000, 0x1000, CRC(0d494efd) SHA1(a2fd1223a3ca0cfee24a6afe66ea3c4c144dd98e))
+ ROM_LOAD ( "unitron.f0" , 0x3000, 0x1000, CRC(8e047c4a) SHA1(78c57c0e00dfce7fdec9437fe2b4c25def447e5d))
+
+ ROM_REGION(0x4000,"keyboard",0)
+ ROM_LOAD ( "unitron_apii+_keyboard.ic3", 0x0800, 0x0800, CRC(edc43205) SHA1(220cc21d86f1ab63a301ae7a9c5ff0f3f6cddb70))
+ROM_END
+
+
/*
J-Plus ROM numbers confirmed by:
http://mirrors.apple2.org.za/Apple%20II%20Documentation%20Project/Computers/Apple%20II/Apple%20II%20j-plus/Photos/Apple%20II%20j-plus%20-%20Motherboard.jpg
@@ -1562,20 +1594,21 @@ 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 ][", GAME_SUPPORTS_SAVE )
-COMP( 1979, apple2p, apple2, 0, apple2p, apple2p, driver_device, 0, "Apple Computer", "Apple ][+", GAME_SUPPORTS_SAVE )
-COMP( 1980, apple2jp, apple2, 0, apple2p, apple2p, driver_device, 0, "Apple Computer", "Apple ][ J-Plus", GAME_SUPPORTS_SAVE )
-COMP( 198?, elppa, apple2, 0, apple2p, apple2p, driver_device, 0, "Victor do Brasil", "Elppa II+", GAME_SUPPORTS_SAVE )
-COMP( 1982, maxxi, apple2, 0, apple2p, apple2p, driver_device, 0, "Polymax", "Maxxi", GAME_SUPPORTS_SAVE )
-COMP( 1982, prav82, apple2, 0, apple2p, apple2p, driver_device, 0, "Pravetz", "Pravetz 82", GAME_SUPPORTS_SAVE )
-COMP( 1982, ace100, apple2, 0, apple2, apple2p, driver_device, 0, "Franklin Computer", "Franklin Ace 100", GAME_SUPPORTS_SAVE )
-COMP( 1982, uniap2en, apple2, 0, apple2p, apple2p, driver_device, 0, "Unitron Eletrônica", "Unitron AP II (in English)", GAME_SUPPORTS_SAVE )
-COMP( 1982, uniap2pt, apple2, 0, apple2p, apple2p, driver_device, 0, "Unitron Eletrônica", "Unitron AP II (in Brazilian Portuguese)", GAME_SUPPORTS_SAVE )
-COMP( 1983, agat7, apple2, 0, apple2p, apple2p, driver_device, 0, "Agat", "Agat-7", GAME_NOT_WORKING) // disk controller ROM JSRs to $FCA8 which is a delay on apple II, illegal instruction crash here :(
+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, apple2p, 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, 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( 1983, agat7, apple2, 0, apple2p, apple2p, driver_device, 0, "Agat", "Agat-7", MACHINE_NOT_WORKING) // disk controller ROM JSRs to $FCA8 which is a delay on apple II, illegal instruction crash here :(
// reverse font direction -\/
-COMP( 1984, ivelultr, apple2, 0, apple2p, apple2p, driver_device, 0, "Ivasim", "Ivel Ultra", GAME_SUPPORTS_SAVE )
-COMP( 1984, agat9, apple2, 0, apple2p, apple2p, driver_device, 0, "Agat", "Agat-9", GAME_NOT_WORKING)
-COMP( 1985, prav8m, apple2, 0, apple2p, apple2p, driver_device, 0, "Pravetz", "Pravetz 8M", GAME_SUPPORTS_SAVE )
-COMP( 1985, space84, apple2, 0, space84, apple2p, driver_device, 0, "ComputerTechnik/IBS", "Space 84", GAME_NOT_WORKING )
-COMP( 1985, am64, apple2, 0, space84, apple2p, driver_device, 0, "ASEM", "AM 64", GAME_SUPPORTS_SAVE )
-//COMP( 19??, laba2p, apple2, 0, laba2p, apple2p, driver_device, 0, "<unknown>", "Lab equipment Apple II Plus clone", GAME_SUPPORTS_SAVE )
+COMP( 1984, ivelultr, apple2, 0, apple2p, apple2p, driver_device, 0, "Ivasim", "Ivel Ultra", MACHINE_SUPPORTS_SAVE )
+COMP( 1984, agat9, apple2, 0, apple2p, apple2p, driver_device, 0, "Agat", "Agat-9", MACHINE_NOT_WORKING)
+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, "<unknown>", "Lab equipment Apple II Plus clone", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/apple2e.c b/src/mame/drivers/apple2e.c
index 62b97a5b930..e5eb2193aa8 100644
--- a/src/mess/drivers/apple2e.c
+++ b/src/mame/drivers/apple2e.c
@@ -610,8 +610,11 @@ void apple2e_state::machine_start()
if (m_a2eauxslot)
{
m_auxslotdevice = m_a2eauxslot->get_a2eauxslot_card();
- m_aux_ptr = m_auxslotdevice->get_vram_ptr();
- m_aux_bank_ptr = m_auxslotdevice->get_auxbank_ptr();
+ if (m_auxslotdevice)
+ {
+ m_aux_ptr = m_auxslotdevice->get_vram_ptr();
+ m_aux_bank_ptr = m_auxslotdevice->get_auxbank_ptr();
+ }
}
else // IIc has 128K right on the motherboard
{
@@ -822,7 +825,7 @@ UINT32 apple2e_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap,
}
// always update the flash timer here so it's smooth regardless of mode switches
- m_video->m_flash = ((machine().time() * 4).seconds & 1) ? true : false;
+ m_video->m_flash = ((machine().time() * 4).seconds() & 1) ? true : false;
if (m_video->m_graphics)
{
@@ -2118,7 +2121,7 @@ UINT8 apple2e_state::read_floatingbus()
// machine state switches
//
- Hires = m_video->m_hires ? 1 : 0;
+ Hires = (m_video->m_hires && m_video->m_graphics) ? 1 : 0;
Mixed = m_video->m_mix ? 1 : 0;
Page2 = m_page2 ? 1 : 0;
_80Store = m_80store ? 1 : 0;
@@ -3034,10 +3037,7 @@ static MACHINE_CONFIG_START( apple2e, apple2e_state )
MCFG_DEVICE_ADD(A2_VIDEO_TAG, APPLE2_VIDEO, XTAL_14_31818MHz)
MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(280*2, 262)
- MCFG_SCREEN_VISIBLE_AREA(0, (280*2)-1,0,192-1)
+ MCFG_SCREEN_RAW_PARAMS(1021800*14, (65*7)*2, 0, (40*7)*2, 262, 0, 192)
MCFG_SCREEN_UPDATE_DRIVER(apple2e_state, screen_update)
MCFG_SCREEN_PALETTE("palette")
@@ -3564,19 +3564,19 @@ ROM_START(apple2cp)
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", GAME_SUPPORTS_SAVE )
-COMP( 1983, apple2euk,apple2e, 0, apple2e, apple2euk,driver_device, 0, "Apple Computer", "Apple //e (UK)", GAME_SUPPORTS_SAVE )
-COMP( 1983, mprof3, apple2e, 0, mprof3, apple2e, driver_device, 0, "Multitech", "Microprofessor III", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-COMP( 1985, apple2ee, apple2e, 0, apple2ee, apple2e, driver_device, 0, "Apple Computer", "Apple //e (enhanced)", GAME_SUPPORTS_SAVE )
-COMP( 1985, apple2eeuk,apple2e, 0, apple2ee, apple2euk, driver_device,0, "Apple Computer", "Apple //e (enhanced, UK)", GAME_SUPPORTS_SAVE )
-COMP( 1987, apple2ep, apple2e, 0, apple2ep, apple2ep, driver_device, 0, "Apple Computer", "Apple //e (Platinum)", GAME_SUPPORTS_SAVE )
-COMP( 1984, apple2c, 0, apple2, apple2c, apple2c, driver_device, 0, "Apple Computer", "Apple //c" , GAME_SUPPORTS_SAVE )
-COMP( 1986, tk3000, apple2c, 0, tk3000, apple2e, driver_device, 0, "Microdigital", "TK3000//e" , GAME_SUPPORTS_SAVE )
-COMP( 1989, prav8c, apple2e, 0, apple2e, apple2e, driver_device, 0, "Pravetz", "Pravetz 8C", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-COMP( 1987, laser128, apple2c, 0, laser128, apple2e, driver_device, 0, "Video Technology", "Laser 128 (version 4.2)", GAME_SUPPORTS_SAVE )
-COMP( 1988, las128ex, apple2c, 0, laser128, apple2e, driver_device, 0, "Video Technology", "Laser 128ex (version 4.5)", GAME_SUPPORTS_SAVE )
-COMP( 1988, las128e2, apple2c, 0, laser128ex2, apple2e, driver_device, 0, "Video Technology", "Laser 128ex2 (version 6.1)", GAME_SUPPORTS_SAVE )
-COMP( 1985, apple2c0, apple2c, 0, apple2c_iwm, apple2c, driver_device, 0, "Apple Computer", "Apple //c (UniDisk 3.5)", GAME_SUPPORTS_SAVE )
-COMP( 1986, apple2c3, apple2c, 0, apple2c_mem, apple2c, driver_device, 0, "Apple Computer", "Apple //c (Original Memory Expansion)", GAME_SUPPORTS_SAVE )
-COMP( 1986, apple2c4, apple2c, 0, apple2c_mem, apple2c, driver_device, 0, "Apple Computer", "Apple //c (rev 4)", GAME_SUPPORTS_SAVE )
-COMP( 1988, apple2cp, apple2c, 0, apple2cp, apple2c, driver_device, 0, "Apple Computer", "Apple //c Plus", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
+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, 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( 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( 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 )
diff --git a/src/mess/drivers/apple2gs.c b/src/mame/drivers/apple2gs.c
index 707e8f434ef..54c4674f9df 100644
--- a/src/mess/drivers/apple2gs.c
+++ b/src/mame/drivers/apple2gs.c
@@ -588,10 +588,10 @@ ROM_START(apple2gsr0p2) // 3/10/1986 Cortland prototype, boots as "Apple //'ing
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)", GAME_SUPPORTS_SAVE )
-COMP( 198?, apple2gsr3p, apple2gs, 0, apple2gs, apple2gs, driver_device, 0, "Apple Computer", "Apple IIgs (ROM03 prototype)", GAME_NOT_WORKING )
-COMP( 1989, apple2gsr3lp, apple2gs, 0, apple2gs, apple2gs, driver_device, 0, "Apple Computer", "Apple IIgs (ROM03 late prototype?)", GAME_NOT_WORKING )
-COMP( 1987, apple2gsr1, apple2gs, 0, apple2gsr1, apple2gs, driver_device, 0, "Apple Computer", "Apple IIgs (ROM01)", GAME_SUPPORTS_SAVE )
-COMP( 1986, apple2gsr0, apple2gs, 0, apple2gsr1, apple2gs, driver_device, 0, "Apple Computer", "Apple IIgs (ROM00)", GAME_SUPPORTS_SAVE )
-COMP( 1986, apple2gsr0p,apple2gs, 0, apple2gsr1, apple2gs, driver_device, 0, "Apple Computer", "Apple IIgs (ROM00 prototype 6/19/1986)", GAME_SUPPORTS_SAVE )
-COMP( 1986, apple2gsr0p2,apple2gs,0, apple2gsr1, apple2gs, driver_device, 0, "Apple Computer", "Apple IIgs (ROM00 prototype 3/10/1986)", GAME_SUPPORTS_SAVE )
+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( 1989, apple2gsr3lp, apple2gs, 0, apple2gs, apple2gs, driver_device, 0, "Apple Computer", "Apple IIgs (ROM03 late 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 )
diff --git a/src/mess/drivers/apple3.c b/src/mame/drivers/apple3.c
index 0352e1f1c10..22c27441640 100644
--- a/src/mess/drivers/apple3.c
+++ b/src/mame/drivers/apple3.c
@@ -346,4 +346,4 @@ ROM_START(apple3)
ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
-COMP( 1980, apple3, 0, 0, apple3, apple3, apple3_state, apple3, "Apple Computer", "Apple ///", GAME_SUPPORTS_SAVE )
+COMP( 1980, apple3, 0, 0, apple3, apple3, apple3_state, apple3, "Apple Computer", "Apple ///", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/applix.c b/src/mame/drivers/applix.c
index 752a9b8af2c..2b5097470ee 100644
--- a/src/mess/drivers/applix.c
+++ b/src/mame/drivers/applix.c
@@ -886,7 +886,9 @@ static MACHINE_CONFIG_START( applix, applix_state )
MCFG_WD1772_ADD("fdc", XTAL_16MHz / 2) //connected to Z80H clock pin
MCFG_FLOPPY_DRIVE_ADD("fdc:0", applix_floppies, "35dd", applix_state::floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", applix_floppies, "35dd", applix_state::floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_TIMER_DRIVER_ADD_PERIODIC("applix_c", applix_state, cass_timer, attotime::from_hz(100000))
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/appoooh.c b/src/mame/drivers/appoooh.c
index 103d034f01e..c860ccc7ccc 100644
--- a/src/mame/drivers/appoooh.c
+++ b/src/mame/drivers/appoooh.c
@@ -393,7 +393,7 @@ GFXDECODE_END
void appoooh_state::machine_start()
{
membank("bank1")->configure_entries(0, 2, memregion("maincpu")->base() + 0xa000, 0x6000);
-
+
save_item(NAME(m_adpcm_data));
save_item(NAME(m_adpcm_address));
}
@@ -638,6 +638,6 @@ DRIVER_INIT_MEMBER(appoooh_state,robowresb)
*
*************************************/
-GAME( 1984, appoooh, 0, appoooh, appoooh, driver_device, 0, ROT0, "Sanritsu / Sega", "Appoooh", GAME_SUPPORTS_SAVE )
-GAME( 1986, robowres, 0, robowres, robowres, appoooh_state, robowres, ROT0, "Sanritsu / Sega", "Robo Wres 2001", GAME_SUPPORTS_SAVE )
-GAME( 1986, robowresb, robowres, robowres, robowres, appoooh_state, robowresb,ROT0, "bootleg", "Robo Wres 2001 (bootleg)", GAME_SUPPORTS_SAVE )
+GAME( 1984, appoooh, 0, appoooh, appoooh, driver_device, 0, ROT0, "Sanritsu / Sega", "Appoooh", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, robowres, 0, robowres, robowres, appoooh_state, robowres, 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/mess/drivers/apricot.c b/src/mame/drivers/apricot.c
index 943acc251d2..575c2672c02 100644
--- a/src/mess/drivers/apricot.c
+++ b/src/mame/drivers/apricot.c
@@ -505,5 +505,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", GAME_NOT_WORKING )
-COMP( 1984, apricotxi, apricot, 0, apricotxi, 0, driver_device, 0, "ACT", "Apricot Xi", GAME_NOT_WORKING )
+COMP( 1983, apricot, 0, 0, apricot, 0, driver_device, 0, "ACT", "Apricot PC", MACHINE_NOT_WORKING )
+COMP( 1984, apricotxi, apricot, 0, apricotxi, 0, driver_device, 0, "ACT", "Apricot Xi", MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/apricotf.c b/src/mame/drivers/apricotf.c
index bd9cec58e96..9ea574b7a1d 100644
--- a/src/mess/drivers/apricotf.c
+++ b/src/mame/drivers/apricotf.c
@@ -429,7 +429,7 @@ ROM_END
//**************************************************************************
// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS
-COMP( 1984, f1, 0, 0, act_f1, act, driver_device, 0, "ACT", "Apricot F1", GAME_NOT_WORKING | GAME_NO_SOUND )
-COMP( 1984, f1e, f1, 0, act_f1, act, driver_device, 0, "ACT", "Apricot F1e", GAME_NOT_WORKING | GAME_NO_SOUND )
-COMP( 1984, f2, f1, 0, act_f1, act, driver_device, 0, "ACT", "Apricot F2", GAME_NOT_WORKING | GAME_NO_SOUND )
-COMP( 1985, f10, f1, 0, act_f1, act, driver_device, 0, "ACT", "Apricot F10", GAME_NOT_WORKING | GAME_NO_SOUND )
+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 )
diff --git a/src/mess/drivers/apricotp.c b/src/mame/drivers/apricotp.c
index d9132dfd2bd..be9384b4c04 100644
--- a/src/mess/drivers/apricotp.c
+++ b/src/mame/drivers/apricotp.c
@@ -687,4 +687,4 @@ ROM_END
//**************************************************************************
// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS
-COMP( 1984, fp, 0, 0, fp, fp, driver_device, 0, "ACT", "Apricot Portable / FP", GAME_NOT_WORKING )
+COMP( 1984, fp, 0, 0, fp, fp, driver_device, 0, "ACT", "Apricot Portable / FP", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/aquarium.c b/src/mame/drivers/aquarium.c
index 43e6426d756..6a8b8ec234d 100644
--- a/src/mame/drivers/aquarium.c
+++ b/src/mame/drivers/aquarium.c
@@ -366,4 +366,4 @@ ROM_START( aquarium )
ROM_LOAD( "aquar4", 0x000000, 0x80000, CRC(9a4af531) SHA1(bb201b7a6c9fd5924a0d79090257efffd8d4aba1) )
ROM_END
-GAME( 1996, aquarium, 0, aquarium, aquarium, aquarium_state, aquarium, ROT0, "Excellent System", "Aquarium (Japan)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
+GAME( 1996, aquarium, 0, aquarium, aquarium, aquarium_state, aquarium, ROT0, "Excellent System", "Aquarium (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
diff --git a/src/mess/drivers/aquarius.c b/src/mame/drivers/aquarius.c
index 7fbbe616e1e..84df8234eac 100644
--- a/src/mess/drivers/aquarius.c
+++ b/src/mame/drivers/aquarius.c
@@ -417,4 +417,4 @@ ROM_END
/* 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", GAME_NOT_WORKING )
+//COMP( 1984, aquariu2, aquarius, 0, aquarius, aquarius, driver_device, 0, "Mattel", "Aquarius II", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/arabian.c b/src/mame/drivers/arabian.c
index 6979d7d9d59..ef74167bab0 100644
--- a/src/mame/drivers/arabian.c
+++ b/src/mame/drivers/arabian.c
@@ -418,5 +418,5 @@ ROM_END
*
*************************************/
-GAME( 1983, arabian, 0, arabian, arabian, driver_device, 0, ROT270, "Sun Electronics", "Arabian", GAME_SUPPORTS_SAVE )
-GAME( 1983, arabiana, arabian, arabian, arabiana, driver_device, 0, ROT270, "Sun Electronics (Atari license)", "Arabian (Atari)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/arachnid.c b/src/mame/drivers/arachnid.c
index 0d8867f27da..7dde92ce45d 100644
--- a/src/mame/drivers/arachnid.c
+++ b/src/mame/drivers/arachnid.c
@@ -470,4 +470,4 @@ ROM_END
***************************************************************************/
/* 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", GAME_MECHANICAL | GAME_NOT_WORKING )
+GAME( 1990, arac6000, 0, arachnid, arachnid, driver_device, 0, ROT0, "Arachnid", "Super Six Plus II English Mark Darts", MACHINE_MECHANICAL | MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/arcadecl.c b/src/mame/drivers/arcadecl.c
index fc6e9cb096a..dd261cac975 100644
--- a/src/mame/drivers/arcadecl.c
+++ b/src/mame/drivers/arcadecl.c
@@ -396,5 +396,5 @@ ROM_END
*
*************************************/
-GAME( 1992, arcadecl, 0, arcadecl, arcadecl, driver_device, 0, ROT0, "Atari Games", "Arcade Classics (prototype)", GAME_SUPPORTS_SAVE )
-GAME( 1992, sparkz, 0, sparkz, sparkz, driver_device, 0, ROT0, "Atari Games", "Sparkz (prototype)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/arcadia.c b/src/mame/drivers/arcadia.c
index d7540505e8a..c6eb8bd58d2 100644
--- a/src/mame/drivers/arcadia.c
+++ b/src/mame/drivers/arcadia.c
@@ -1,1004 +1,842 @@
-// license:BSD-3-Clause
-// copyright-holders:Ernesto Corvi, Mariusz Wojcieszek
-/***************************************************************************
-
- Arcadia System - (c) 1988 Arcadia Systems
-
- Driver by Ernesto Corvi and Mariusz Wojcieszek
-
- Games supported:
-
- SportTime Bowling
- Leader Board
- Ninja Mission
- Road Wars
- Sidewinder
- Space Ranger
- SportTime Table Hockey
- Spot
- Magic Johnson's Fast Break
- World Darts
- Xenon
- World Trophy Soccer
- Delta Command (N.Y Warriors)
- Blastaball
- Aaargh
- Pharaohs Match
-
- Other Arcadia games (not dumped):
-
- Pool
- Rockford
-
- Hardware description (from targets.mame.net):
-
- In the late 80s, Arcadia collaborated with Mastertronic to create their own
- ten-interchangeable-game arcade platform called the Arcadia Multi Select system,
- using the same hardware as the beloved Commodore Amiga computer.
+// license:GPL-2.0+
+// copyright-holders:Peter Trauner
+/******************************************************************************
+Consolidation and enhancement of documentation by Manfred Schneider based on previous work from
+ PeT mess@utanet.at and Paul Robson (autismuk@aol.com) minor updates by incog
+
+ Schematics, manuals and anything you can desire for at http://amigan.classicgaming.gamespy.com/
+
+ TODO: implement the RESET key on the front panel
+ find a dump of the character ROM
+ convert the drawing code to tilemap
+
+
+ 1. General
+ SYSTEM
+- Signetics 2650 CPU at 3.58/4 MHz(for NTSC) or at 4,433/5 (for PAL)
+- 1k x 8 of RAM (physically present but only 512 byte available)
+- 2 x 2 axis Analogue Joysticks
+- 2 x 12 button Controllers
+- 3 buttons on system unit and CPU Reset
+ VIDEO
+- 128 x 208 pixel resolution (alternate 128 x 104 mode available)
+- 16 x 26 (can be 16x13) background display (2 colour 8 x 8 pixel characters)
+- 4 x 8 x 8 Sprites (2 colour 8 x 8 pixels)
+- total of 8 user defined characters available
+ SOUND
+- Single channel beeper
+
+
+2. Memory map
+The memory map of the 2001 is below.
+0000 - 0FFF 4k ROM Block 1 (first 4k of a cartridge)
+1000 - 13FF mirror of $1800-$1BFF
+1400 - 17FF mirror of $1800-$1BFF
+1800 - 1BFF UVI2637 Area (detail description in video/arcadia.c)
+ 1800 - 18CF Screen display , upper 13 lines, characters/palette high bits
+ 18D0 - 18EF Free for user programs.
+ 18F0 - 18F7 Sprite coordinates y0x0y1x1y2x2y3x3
+ 18F8 - 1908 registers of UVI
+ 1909 - 197F Unmapped
+ 1980 - 19BF User defined characters (8 possible, 8 bytes per character)
+ 19C0 - 19F7 Unmapped
+ 19F8 - 19FF registers of UVI
+ 1A00 - 1ACF Screen display , lower 13 lines, characters/palette high bits
+ 1AD0 - 1AFF User memory
+ 1B00 - 1BFF mirror of 1900-19FF
+1C00 - 1FFF mirror of 1800-1BFF
+2000 - 2FFF 4k ROM Block 2 (for 8k carts such as Jungler)
+3000 - 3FFF mirror of 1000-1FFF
+4000 - 4FFF mirror of 0000-0FFF
+5000 - 5FFF mirror of 1000-1FFF
+6000 - 6FFF mirror of 0000-0FFF
+7000 - 7FFF mirror of 1000-1FFF
+
+The Palladium VCG memory map is as follows.
+0000 - 0FFF 4k ROM Block 1 (first 4k of a cartridge)
+1000 - 17FF could be ROM or RAM but no Cartridge uses this
+1800 - 1BFF UVI2637 Area (detail description in video/arcadia.c)
+ 1800 - 18CF Screen display , upper 13 lines, characters/palette high bits
+ 18D0 - 18EF Free for user programs.
+ 18F0 - 18F7 Sprite coordinates y0x0y1x1y2x2y3x3
+ 18F8 - 1908 registers of UVI
+ 1909 - 197F Unmapped
+ 1980 - 19BF User defined characters (8 possible, 8 bytes per character)
+ 19C0 - 19F7 Unmapped
+ 19F8 - 19FF registers of UVI
+ 1A00 - 1ACF Screen display , lower 13 lines, characters/palette high bits
+ 1AD0 - 1AFF User memory
+ 1B00 - 1BFF mirror of 1900-19FF
+1C00 - 1FFF could be ROM or RAM but no Cartridge uses this
+2000 - 2FFF 4k ROM Block (for 8k carts such as Jungler)
+3000 - 3FFF could be ROM or RAM but no Cartridge uses this
+4000 - 4FFF 4k ROM Block (first 2K used by Golf)
+5000 - 5FFF 4k ROM Block
+6000 - 6FFF 4k ROM Block
+7000 - 7FFF 4k ROM Block
+
+
+3. ROM Images
+ROM Images are loaded into 0000-0FFF. If the ROM is an 8k ROM the
+second half of the Rom is located at 2000-2FFF. Except for the Golf cart
+which is located from 0x0000-0x0FFF and a 2kbyte block from 0x4000 only on
+Palladium VCG.
+
+
+4. Controls
+All key controls are indicated by a bit going to '1'. Unused bits at
+the memory location are set to zero.
+
+Keypads
+
+1900-1902 (Player 1) 1904-1906 (Player 2)
+The keypads are arranged as follows :-
+
+ 1 2 3
+ 4 5 6
+ 7 8 9
+ Enter 0 Clear
+
+Row 1/4/7 is 1900/4, Row 2/5/8/0 is 1901/5 and Row 3/6/9 is 1902/6
+The topmost key is bit 3, the lowermost key is bit 0.
+
+Location $1908 contains bit 0 Start,bit 1 Option,bit 2 Difficulty.
+These keys are "latched" i.e. a press causes a logic 1 to appear
+on the current frame.
+
+The fire buttons are equivalent to Keypad #2 e.g. they are 1901 and
+1905 bit 3.
+
+Palladium has 4 additional key per keypad which are mapped at
+1903 palladium player 1
+1907 palladium player 2
+
+
+5. Other information
+Interrupts are not supported
+The Read/Write 2650 CPU Port-Commands do not appear to be connected to
+anything in hardware. No cartridge has been found which uses them.
+
+******************************************************************************/
+
+#include "includes/arcadia.h"
+
+static ADDRESS_MAP_START( arcadia_mem, AS_PROGRAM, 8, arcadia_state )
+ AM_RANGE( 0x0000, 0x0fff) AM_DEVREAD("cartslot", arcadia_cart_slot_device, read_rom)
+ AM_RANGE( 0x1800, 0x1aff) AM_READWRITE(video_r, video_w)
+ADDRESS_MAP_END
- (In fact, the Multi Select's main PCB is an A500 motherboard, to which the ROM
- cage is attached through the external expansion port).
+static ADDRESS_MAP_START( arcadia_io, AS_IO, 8, arcadia_state )
+ AM_RANGE( S2650_SENSE_PORT,S2650_SENSE_PORT) AM_READ(vsync_r)
+ADDRESS_MAP_END
- Reportedly the system was also (or was originally) supposed to have been released
- in two five-game Super Select versions--"Arcade Action" and "Sports Simulation"
- -- but no specimens of these have ever been seen.
+/* The Emerson Arcadia 2001 controllers have 2 fire buttons on the side,
+ but actually they are wired to keypad button #2. The following definitions
+ are meant to document this fact. The keypad has the following layout:
- NOTES and TODO:
- - To get into service mode, hold down F2 before pressing a button after
- the 'INITIALIZATION OK' message. Pressing F2 during game brings service
- mode also.
+ 1 2 3
+ 4 5 6
+ 7 8 9
+ Cl 0 En */
-***************************************************************************/
-
-#include "emu.h"
-#include "cpu/m68000/m68000.h"
-#include "includes/amiga.h"
-#include "machine/nvram.h"
-#include "machine/amigafdc.h"
+static INPUT_PORTS_START( arcadia )
+ PORT_START("panel")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START ) PORT_NAME("Start")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Option") PORT_CODE(KEYCODE_O)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_NAME("Select")
+// PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Reset") PORT_CODE(KEYCODE_R) Not implemented
+
+ PORT_START("controller1_col1")
+ PORT_BIT( 0xf0, 0xf0, IPT_UNUSED)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P1 Keypad 1") PORT_CODE(KEYCODE_1_PAD)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P1 Keypad 4") PORT_CODE(KEYCODE_4_PAD)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P1 Keypad 7") PORT_CODE(KEYCODE_7_PAD)
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P1 Keypad Clear") PORT_CODE(KEYCODE_MINUS_PAD)
+
+ PORT_START("controller1_col2")
+ PORT_BIT( 0xf0, 0xf0, IPT_UNUSED)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P1 Keypad 2/Button") PORT_CODE(KEYCODE_2_PAD)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P1 Keypad 5") PORT_CODE(KEYCODE_5_PAD)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P1 Keypad 8") PORT_CODE(KEYCODE_8_PAD)
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P1 Keypad 0") PORT_CODE(KEYCODE_0_PAD)
+
+ PORT_START("controller1_col3")
+ PORT_BIT( 0xf0, 0xf0, IPT_UNUSED)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P1 Keypad 3") PORT_CODE(KEYCODE_3_PAD)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P1 Keypad 6") PORT_CODE(KEYCODE_6_PAD)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P1 Keypad 9") PORT_CODE(KEYCODE_9_PAD)
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P1 Keypad Enter") PORT_CODE(KEYCODE_PLUS_PAD)
+
+ PORT_START("controller1_extra")
+ PORT_BIT( 0xff, 0xf0, IPT_UNUSED) // used in palladium
+
+ PORT_START("controller2_col1")
+ PORT_BIT( 0xf0, 0xf0, IPT_UNUSED)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P2 Keypad 1") PORT_CODE(KEYCODE_Z)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P2 Keypad 4") PORT_CODE(KEYCODE_A)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P2 Keypad 7") PORT_CODE(KEYCODE_Q)
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P2 Keypad Clear") PORT_CODE(KEYCODE_V)
+
+ PORT_START("controller2_col2")
+ PORT_BIT( 0xf0, 0xf0, IPT_UNUSED)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P2 Keypad 2/Button") PORT_CODE(KEYCODE_X)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P2 Keypad 5") PORT_CODE(KEYCODE_S)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P2 Keypad 8") PORT_CODE(KEYCODE_W)
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P2 Keypad 0") PORT_CODE(KEYCODE_F)
+
+ PORT_START("controller2_col3")
+ PORT_BIT( 0xf0, 0xf0, IPT_UNUSED)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P2 Keypad 3") PORT_CODE(KEYCODE_C)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P2 Keypad 6") PORT_CODE(KEYCODE_D)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P2 Keypad 9") PORT_CODE(KEYCODE_E)
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P2 Keypad Enter") PORT_CODE(KEYCODE_R)
+
+ PORT_START("controller2_extra")
+ PORT_BIT( 0xff, 0xf0, IPT_UNUSED) // used in palladium
+
+/* FIXME: the joystick are analog - the actual definition is merely an hack */
+
+#if 0
+ // auto centering too slow, so only using 5 bits, and scaling at videoside
+ PORT_START("controller1_joy_x")
+ PORT_BIT( 0x1fe,0x10,IPT_AD_STICK_X)
+ PORT_SENSITIVITY(1)
+ PORT_KEYDELTA(2000)
+ PORT_MINMAX(0,0x1f)
+ PORT_CODE_DEC(KEYCODE_LEFT)
+ PORT_CODE_INC(KEYCODE_RIGHT)
+ PORT_CODE_DEC(JOYCODE_1_LEFT)
+ PORT_CODE_INC(JOYCODE_1_RIGHT)
+ PORT_PLAYER(1)
+ PORT_RESET
+
+ PORT_START("controller1_joy_y")
+ PORT_BIT( 0x1fe,0x10,IPT_AD_STICK_Y)
+ PORT_SENSITIVITY(1)
+ PORT_KEYDELTA(2000)
+ PORT_MINMAX(0,0x1f)
+ PORT_CODE_DEC(KEYCODE_UP)
+ PORT_CODE_INC(KEYCODE_DOWN)
+ PORT_CODE_DEC(JOYCODE_1_UP)
+ PORT_CODE_INC(JOYCODE_1_DOWN)
+ PORT_PLAYER(1)
+ PORT_RESET
+
+ PORT_START("controller2_joy_x")
+ PORT_BIT( 0x1ff,0x10,IPT_AD_STICK_X)
+ PORT_SENSITIVITY(100)
+ PORT_KEYDELTA(10)
+ PORT_MINMAX(0,0x1f)
+ PORT_CODE_DEC(KEYCODE_DEL)
+ PORT_CODE_INC(KEYCODE_PGDN)
+ PORT_CODE_DEC(JOYCODE_2_LEFT)
+ PORT_CODE_INC(JOYCODE_2_RIGHT)
+ PORT_PLAYER(2)
+ PORT_RESET
+
+ PORT_START("controller2_joy_y")
+ PORT_BIT( 0x1ff,0x10,IPT_AD_STICK_Y)
+ PORT_SENSITIVITY(100)
+ PORT_KEYDELTA(10)
+ PORT_MINMAX(0,0x1f)
+ PORT_CODE_DEC(KEYCODE_HOME)
+ PORT_CODE_INC(KEYCODE_END)
+ PORT_CODE_DEC(JOYCODE_2_UP)
+ PORT_CODE_INC(JOYCODE_2_DOWN)
+ PORT_PLAYER(2)
+ PORT_RESET
+#else
+ PORT_START("joysticks")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) PORT_8WAY
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) PORT_8WAY
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) PORT_8WAY
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(1) PORT_8WAY
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) PORT_8WAY
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) PORT_8WAY
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) PORT_8WAY
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(2) PORT_8WAY
+#endif
+INPUT_PORTS_END
+/* The Palladium Video-Computer-Game controllers have no fire buttons on their side
+ but have a 16 keys unlabeled keypad. The keys are fully independent and layed out
+ according to this weird scheme, which keeps backward compatibility to Arcadia 2001's
+ electrical wiring.
+
+ 2
+ 13 14 15
+ 1 16 3
+ 4 5 6
+ 7 8 9
+ 10 11 12 */
+
+static INPUT_PORTS_START( plldium )
+ PORT_START("panel")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START ) PORT_NAME("Start")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_NAME("Selector A")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Selector B") PORT_CODE(KEYCODE_O)
+// PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Reset") PORT_CODE(KEYCODE_R) Not implemented
+
+ PORT_START("controller1_col1")
+ PORT_BIT( 0xf0, 0xf0, IPT_UNUSED) // some bits must be high
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P1 Keypad 1") PORT_CODE(KEYCODE_1_PAD)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P1 Keypad 4") PORT_CODE(KEYCODE_4_PAD)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P1 Keypad 7") PORT_CODE(KEYCODE_7_PAD)
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P1 Keypad 10") PORT_CODE(KEYCODE_MINUS_PAD)
+
+ PORT_START("controller1_col2")
+ PORT_BIT( 0xf0, 0xf0, IPT_UNUSED)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P1 Keypad 2/Button") PORT_CODE(KEYCODE_2_PAD)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P1 Keypad 5") PORT_CODE(KEYCODE_5_PAD)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P1 Keypad 8") PORT_CODE(KEYCODE_8_PAD)
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P1 Keypad 11") PORT_CODE(KEYCODE_0_PAD)
+
+ PORT_START("controller1_col3")
+ PORT_BIT( 0xf0, 0xf0, IPT_UNUSED)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P1 Keypad 3") PORT_CODE(KEYCODE_3_PAD)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P1 Keypad 6") PORT_CODE(KEYCODE_6_PAD)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P1 Keypad 9") PORT_CODE(KEYCODE_9_PAD)
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P1 Keypad 12") PORT_CODE(KEYCODE_PLUS_PAD)
+
+ PORT_START("controller1_extra")
+ PORT_BIT( 0xf0, 0xf0, IPT_UNUSED)
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P1 Keypad 13") PORT_CODE(KEYCODE_ENTER_PAD)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P1 Keypad 14") PORT_CODE(KEYCODE_SLASH_PAD)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P1 Keypad 15") PORT_CODE(KEYCODE_ASTERISK)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P1 Keypad 16") PORT_CODE(KEYCODE_DEL_PAD)
+
+ PORT_START("controller2_col1")
+ PORT_BIT( 0xf0, 0xf0, IPT_UNUSED)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P2 Keypad 1") PORT_CODE(KEYCODE_Z)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P2 Keypad 4") PORT_CODE(KEYCODE_A)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P2 Keypad 7") PORT_CODE(KEYCODE_Q)
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P2 Keypad 10") PORT_CODE(KEYCODE_V)
+
+ PORT_START("controller2_col2")
+ PORT_BIT( 0xf0, 0xf0, IPT_UNUSED)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P2 Keypad 2/Button") PORT_CODE(KEYCODE_X)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P2 Keypad 5") PORT_CODE(KEYCODE_S)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P2 Keypad 8") PORT_CODE(KEYCODE_W)
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P2 Keypad 11") PORT_CODE(KEYCODE_F)
+
+ PORT_START("controller2_col3")
+ PORT_BIT( 0xf0, 0xf0, IPT_UNUSED)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P2 Keypad 3") PORT_CODE(KEYCODE_C)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P2 Keypad 6") PORT_CODE(KEYCODE_D)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P2 Keypad 9") PORT_CODE(KEYCODE_E)
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P2 Keypad 12") PORT_CODE(KEYCODE_R)
+
+ PORT_START("controller2_extra")
+ PORT_BIT( 0xf0, 0xf0, IPT_UNUSED)
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P2 Keypad 13") PORT_CODE(KEYCODE_B)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P2 Keypad 14") PORT_CODE(KEYCODE_G)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P2 Keypad 15") PORT_CODE(KEYCODE_T)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_NAME("P2 Keypad 16") PORT_CODE(KEYCODE_H)
+
+/* FIXME: the joystick are analog - the actual definition is merely an hack */
+
+#if 0
+ // auto centering too slow, so only using 5 bits, and scaling at videoside
+ PORT_START("controller1_joy_x")
+ PORT_BIT( 0x1fe,0x10,IPT_AD_STICK_X)
+ PORT_SENSITIVITY(1)
+ PORT_KEYDELTA(2000)
+ PORT_MINMAX(0,0x1f)
+ PORT_CODE_DEC(KEYCODE_LEFT)
+ PORT_CODE_INC(KEYCODE_RIGHT)
+ PORT_CODE_DEC(JOYCODE_1_LEFT)
+ PORT_CODE_INC(JOYCODE_1_RIGHT)
+ PORT_PLAYER(1)
+ PORT_RESET
+
+ PORT_START("controller1_joy_y")
+ PORT_BIT( 0x1fe,0x10,IPT_AD_STICK_Y)
+ PORT_SENSITIVITY(1)
+ PORT_KEYDELTA(2000)
+ PORT_MINMAX(0,0x1f)
+ PORT_CODE_DEC(KEYCODE_UP)
+ PORT_CODE_INC(KEYCODE_DOWN)
+ PORT_CODE_DEC(JOYCODE_1_UP)
+ PORT_CODE_INC(JOYCODE_1_DOWN)
+ PORT_PLAYER(1)
+ PORT_RESET
+
+ PORT_START("controller2_joy_x")
+ PORT_BIT( 0x1ff,0x10,IPT_AD_STICK_X)
+ PORT_SENSITIVITY(100)
+ PORT_KEYDELTA(10)
+ PORT_MINMAX(0,0x1f)
+ PORT_CODE_DEC(KEYCODE_DEL)
+ PORT_CODE_INC(KEYCODE_PGDN)
+ PORT_CODE_DEC(JOYCODE_2_LEFT)
+ PORT_CODE_INC(JOYCODE_2_RIGHT)
+ PORT_PLAYER(2)
+ PORT_RESET
+
+ PORT_START("controller2_joy_y")
+ PORT_BIT( 0x1ff,0x10,IPT_AD_STICK_Y)
+ PORT_SENSITIVITY(100)
+ PORT_KEYDELTA(10)
+ PORT_MINMAX(0,0x1f)
+ PORT_CODE_DEC(KEYCODE_HOME)
+ PORT_CODE_INC(KEYCODE_END)
+ PORT_CODE_DEC(JOYCODE_2_UP)
+ PORT_CODE_INC(JOYCODE_2_DOWN)
+ PORT_PLAYER(2)
+ PORT_RESET
+#else
+ PORT_START("joysticks")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) PORT_8WAY
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) PORT_8WAY
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1) PORT_8WAY
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(1) PORT_8WAY
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) PORT_8WAY
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) PORT_8WAY
+ PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) PORT_8WAY
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(2) PORT_8WAY
+#endif
+INPUT_PORTS_END
-// arcadia_state was also defined in mess/includes/arcadia.h
-class arcadia_amiga_state : public amiga_state
+static const gfx_layout arcadia_charlayout =
{
-public:
- arcadia_amiga_state(const machine_config &mconfig, device_type type, const char *tag)
- : amiga_state(mconfig, type, tag) { }
-
- UINT8 m_coin_counter[2];
-
- DECLARE_WRITE16_MEMBER(arcadia_multibios_change_game);
- DECLARE_CUSTOM_INPUT_MEMBER(coin_counter_r);
- DECLARE_INPUT_CHANGED_MEMBER(coin_changed_callback);
- DECLARE_WRITE8_MEMBER(arcadia_cia_0_portb_w);
-
- DECLARE_DRIVER_INIT(arcadia);
- DECLARE_DRIVER_INIT(xeon);
- DECLARE_DRIVER_INIT(sdwr);
- DECLARE_DRIVER_INIT(dart);
- DECLARE_DRIVER_INIT(bowl);
- DECLARE_DRIVER_INIT(sprg);
- DECLARE_DRIVER_INIT(rdwr);
- DECLARE_DRIVER_INIT(ninj);
- DECLARE_DRIVER_INIT(airh);
- DECLARE_DRIVER_INIT(ldrb);
- DECLARE_DRIVER_INIT(socc);
- DECLARE_DRIVER_INIT(blast);
- DECLARE_DRIVER_INIT(pm);
- DECLARE_DRIVER_INIT(dlta);
- DECLARE_DRIVER_INIT(argh);
-
- inline void generic_decode(const char *tag, int bit7, int bit6, int bit5, int bit4, int bit3, int bit2, int bit1, int bit0);
-
-protected:
- virtual void machine_reset();
+ 8, /*width*/
+ 1, /*height*/
+ 256, /* 256 characters */
+ 1, /* 1 bits per pixel */
+ { 0 }, /* no bitplanes; 1 bit per pixel */
+ { 0, 1, 2, 3, 4, 5, 6, 7 }, /* x offsets */
+ { 0 }, /* y offsets */
+ 1*8
};
+static GFXDECODE_START( arcadia )
+ GFXDECODE_ENTRY( "gfx1", 0x0000, arcadia_charlayout, 0, 68 )
+GFXDECODE_END
-
-/*************************************
- *
- * Dynamic installation of ROM board
- *
- *************************************/
-
-WRITE16_MEMBER(arcadia_amiga_state::arcadia_multibios_change_game)
-{
- if (data == 0)
- space.install_read_bank(0x800000, 0x97ffff, "bank2");
- else
- space.nop_read(0x800000, 0x97ffff);
-}
-
-
-
-
-/*************************************
- *
- * CIA-A port B access:
- *
- * PB7 = parallel data 7
- * PB6 = parallel data 6
- * PB5 = parallel data 5
- * PB4 = parallel data 4
- * PB3 = parallel data 3
- * PB2 = parallel data 2
- * PB1 = parallel data 1
- * PB0 = parallel data 0
- *
- *************************************/
-
-WRITE8_MEMBER(arcadia_amiga_state::arcadia_cia_0_portb_w)
+static const rgb_t arcadia_colors[] =
{
- /* writing a 0 in the low bit clears one of the coins */
- if ((data & 1) == 0)
- {
- if (m_coin_counter[0] > 0)
- m_coin_counter[0]--;
- else if (m_coin_counter[1] > 0)
- m_coin_counter[1]--;
- }
-}
-
-
-
-/*************************************
- *
- * Coin counters
- *
- *************************************/
+ rgb_t::white, /* white */
+ rgb_t(0xff, 0xff, 0x00), /* yellow */
+ rgb_t(0x00, 0xff, 0xff), /* cyan */
+ rgb_t(0x00, 0xff, 0x00), /* green */
+ rgb_t(0xff, 0x00, 0xff), /* magenta */
+ rgb_t(0xff, 0x00, 0x00), /* red */
+ rgb_t(0x00, 0x00, 0xff), /* blue */
+ rgb_t::black /* black */
+};
-CUSTOM_INPUT_MEMBER(arcadia_amiga_state::coin_counter_r)
+static const unsigned short arcadia_palette[128+8] = /* bgnd, fgnd */
{
- int coin = (FPTR)param;
-
- /* return coin counter values */
- return m_coin_counter[coin] & 3;
-}
-
+ 0,1,2,3,4,5,6,7,
+
+ 0,0, 0,1, 0,2, 0,3, 0,4, 0,5, 0,6, 0,7,
+ 1,0, 1,1, 1,2, 1,3, 1,4, 1,5, 1,6, 1,7,
+ 2,0, 2,1, 2,2, 2,3, 2,4, 2,5, 2,6, 2,7,
+ 3,0, 3,1, 3,2, 3,3, 3,4, 3,5, 3,6, 3,7,
+ 4,0, 4,1, 4,2, 4,3, 4,4, 4,5, 4,6, 4,7,
+ 5,0, 5,1, 5,2, 5,3, 5,4, 5,5, 5,6, 5,7,
+ 6,0, 6,1, 6,2, 6,3, 6,4, 6,5, 6,6, 6,7,
+ 7,0, 7,1, 7,2, 7,3, 7,4, 7,5, 7,6, 7,7
+};
-INPUT_CHANGED_MEMBER(arcadia_amiga_state::coin_changed_callback)
+PALETTE_INIT_MEMBER(arcadia_state, arcadia)
{
- int coin = (FPTR)param;
+ for (int i = 0; i < 8; i++)
+ palette.set_indirect_color(i, arcadia_colors[i]);
- /* check for a 0 -> 1 transition */
- if (!oldval && newval && m_coin_counter[coin] < 3)
- m_coin_counter[coin] += 1;
+ for (int i = 0; i < 128+8; i++)
+ palette.set_pen_indirect(i, arcadia_palette[i]);
}
-
-void arcadia_amiga_state::machine_reset()
+void arcadia_state::machine_start()
{
- // reset base machine
- amiga_state::machine_reset();
-
- // reset coin counters
- m_coin_counter[0] = m_coin_counter[1] = 0;
+ if (m_cart->exists())
+ {
+ switch (m_cart->get_type())
+ {
+ case ARCADIA_STD:
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x2000, 0xffff, read8_delegate(FUNC(arcadia_cart_slot_device::extra_rom),(arcadia_cart_slot_device*)m_cart));
+ break;
+ case ARCADIA_GOLF:
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000, 0x4fff, read8_delegate(FUNC(arcadia_cart_slot_device::extra_rom),(arcadia_cart_slot_device*)m_cart));
+ break;
+ }
+ }
}
+static SLOT_INTERFACE_START(arcadia_cart)
+ SLOT_INTERFACE_INTERNAL("std", ARCADIA_ROM_STD)
+ SLOT_INTERFACE_INTERNAL("golf", ARCADIA_ROM_GOLF)
+SLOT_INTERFACE_END
-/*************************************
- *
- * Memory map
- *
- *************************************/
-
-static ADDRESS_MAP_START( overlay_512kb_map, AS_PROGRAM, 16, arcadia_amiga_state )
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x000000, 0x07ffff) AM_MIRROR(0x180000) AM_RAM AM_SHARE("chip_ram")
- AM_RANGE(0x200000, 0x27ffff) AM_ROM AM_REGION("kickstart", 0)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( a500_mem, AS_PROGRAM, 16, arcadia_amiga_state )
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x000000, 0x1fffff) AM_DEVICE("overlay", address_map_bank_device, amap16)
- AM_RANGE(0xa00000, 0xbfffff) AM_READWRITE(cia_r, cia_w)
- AM_RANGE(0xc00000, 0xd7ffff) AM_READWRITE(custom_chip_r, custom_chip_w)
- AM_RANGE(0xd80000, 0xddffff) AM_NOP
- AM_RANGE(0xde0000, 0xdeffff) AM_READWRITE(custom_chip_r, custom_chip_w)
- AM_RANGE(0xdf0000, 0xdfffff) AM_READWRITE(custom_chip_r, custom_chip_w)
- AM_RANGE(0xe00000, 0xe7ffff) AM_WRITENOP AM_READ(rom_mirror_r)
- AM_RANGE(0xe80000, 0xefffff) AM_NOP // autoconfig space (installed by devices)
- AM_RANGE(0xf80000, 0xffffff) AM_ROM AM_REGION("kickstart", 0)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( arcadia_map, AS_PROGRAM, 16, arcadia_amiga_state )
- AM_IMPORT_FROM(a500_mem)
- AM_RANGE(0x800000, 0x97ffff) AM_ROMBANK("bank2") AM_REGION("user3", 0)
- AM_RANGE(0x980000, 0x9fbfff) AM_ROM AM_REGION("user2", 0)
- AM_RANGE(0x9fc000, 0x9ffffd) AM_RAM AM_SHARE("nvram")
- AM_RANGE(0x9ffffe, 0x9fffff) AM_WRITE(arcadia_multibios_change_game)
- AM_RANGE(0xf00000, 0xf7ffff) AM_ROM AM_REGION("user2", 0)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( argh_map, AS_PROGRAM, 16, arcadia_amiga_state )
- AM_IMPORT_FROM(a500_mem)
- AM_RANGE(0x800000, 0x97ffff) AM_ROMBANK("bank2") AM_REGION("user3", 0)
-// AM_RANGE(0x980000, 0x9fefff) AM_ROM AM_REGION("user3", 0)
- AM_RANGE(0x9ff000, 0x9fffff) AM_RAM AM_SHARE("nvram")
- AM_RANGE(0xf00000, 0xf7ffff) AM_ROM AM_REGION("user3", 0)
-ADDRESS_MAP_END
-
-/*************************************
- *
- * Input ports
- *
- *************************************/
-
-static INPUT_PORTS_START( arcadia )
- PORT_START("CIA0PORTA")
- PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_SPECIAL )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
-
- PORT_START("CIA0PORTB")
- PORT_DIPNAME( 0x01, 0x01, "DSW1 1" )
- PORT_DIPSETTING( 0x01, "Reset" )
- PORT_DIPSETTING( 0x00, "Set" )
- PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x30, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, arcadia_amiga_state,coin_counter_r, 0)
- PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, arcadia_amiga_state,coin_counter_r, 1)
-
- PORT_START("joy_0_dat")
- PORT_BIT( 0x0303, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, arcadia_amiga_state,amiga_joystick_convert, 0)
- PORT_BIT( 0xfcfc, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("joy_1_dat")
- PORT_BIT( 0x0303, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, arcadia_amiga_state,amiga_joystick_convert, 1)
- PORT_BIT( 0xfcfc, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("potgo")
- PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON2 )
- PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
- PORT_BIT( 0xaaff, IP_ACTIVE_HIGH, IPT_UNUSED )
-
- PORT_START("p1_joy")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
-
- PORT_START("p2_joy")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
-
- PORT_START("COINS")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, arcadia_amiga_state,coin_changed_callback, 0)
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, arcadia_amiga_state,coin_changed_callback, 1)
-INPUT_PORTS_END
-
-
-
-/*************************************
- *
- * Machine driver
- *
- *************************************/
+static MACHINE_CONFIG_START( arcadia, arcadia_state )
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", S2650, 3580000/4) /* 0.895 MHz */
+ MCFG_CPU_PROGRAM_MAP(arcadia_mem)
+ MCFG_CPU_IO_MAP(arcadia_io)
+ MCFG_CPU_PERIODIC_INT_DRIVER(arcadia_state, video_line, 262*60)
+ MCFG_QUANTUM_TIME(attotime::from_hz(60))
-static MACHINE_CONFIG_START( arcadia, arcadia_amiga_state )
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
+ MCFG_SCREEN_SIZE(128+2*XPOS, 262)
+ MCFG_SCREEN_VISIBLE_AREA(0, 2*XPOS+128-1, 0, 262-1)
+ MCFG_SCREEN_UPDATE_DRIVER(arcadia_state, screen_update_arcadia)
+ MCFG_SCREEN_PALETTE("palette")
+
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", arcadia )
+ MCFG_PALETTE_ADD("palette", ARRAY_LENGTH(arcadia_palette))
+ MCFG_PALETTE_INDIRECT_ENTRIES(8)
+ MCFG_PALETTE_INIT_OWNER(arcadia_state, arcadia)
- /* basic machine hardware */
- MCFG_CPU_ADD("maincpu", M68000, amiga_state::CLK_7M_NTSC)
- MCFG_CPU_PROGRAM_MAP(arcadia_map)
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_ARCADIA_SOUND_ADD("custom")
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
- MCFG_DEVICE_ADD("overlay", ADDRESS_MAP_BANK, 0)
- MCFG_DEVICE_PROGRAM_MAP(overlay_512kb_map)
- MCFG_ADDRESS_MAP_BANK_ENDIANNESS(ENDIANNESS_BIG)
- MCFG_ADDRESS_MAP_BANK_DATABUS_WIDTH(16)
- MCFG_ADDRESS_MAP_BANK_ADDRBUS_WIDTH(22)
- MCFG_ADDRESS_MAP_BANK_STRIDE(0x200000)
+ /* cartridge */
+ MCFG_ARCADIA_CARTRIDGE_ADD("cartslot", arcadia_cart, NULL)
- MCFG_NVRAM_ADD_0FILL("nvram")
+ /* Software lists */
+ MCFG_SOFTWARE_LIST_ADD("cart_list","arcadia")
+MACHINE_CONFIG_END
- /* video hardware */
- MCFG_FRAGMENT_ADD(ntsc_video)
- MCFG_PALETTE_ADD("palette", 4096)
- MCFG_PALETTE_INIT_OWNER(arcadia_amiga_state,amiga)
+ROM_START(advsnha)
+ ROM_REGION(0x8000,"maincpu", ROMREGION_ERASEFF)
+ ROM_REGION(0x100,"gfx1", ROMREGION_ERASEFF)
+ROM_END
- MCFG_VIDEO_START_OVERRIDE(arcadia_amiga_state,amiga)
+ROM_START(bndarc)
+ ROM_REGION(0x8000,"maincpu", ROMREGION_ERASEFF)
+ ROM_REGION(0x100,"gfx1", ROMREGION_ERASEFF)
+ROM_END
- /* sound hardware */
- MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
-
- MCFG_SOUND_ADD("amiga", AMIGA, amiga_state::CLK_C1_NTSC)
- MCFG_SOUND_ROUTE(0, "lspeaker", 0.50)
- MCFG_SOUND_ROUTE(1, "rspeaker", 0.50)
- MCFG_SOUND_ROUTE(2, "rspeaker", 0.50)
- MCFG_SOUND_ROUTE(3, "lspeaker", 0.50)
-
- /* cia */
- MCFG_DEVICE_ADD("cia_0", MOS8520, amiga_state::CLK_E_NTSC)
- MCFG_MOS6526_IRQ_CALLBACK(WRITELINE(amiga_state, cia_0_irq))
- MCFG_MOS6526_PA_INPUT_CALLBACK(IOPORT("CIA0PORTA"))
- MCFG_MOS6526_PA_OUTPUT_CALLBACK(WRITE8(amiga_state, cia_0_port_a_write))
- MCFG_MOS6526_PB_INPUT_CALLBACK(IOPORT("CIA0PORTB"))
- MCFG_MOS6526_PB_OUTPUT_CALLBACK(WRITE8(arcadia_amiga_state,arcadia_cia_0_portb_w))
- MCFG_DEVICE_ADD("cia_1", MOS8520, amiga_state::CLK_E_NTSC)
- MCFG_MOS6526_IRQ_CALLBACK(WRITELINE(amiga_state, cia_1_irq))
-
- /* fdc */
- MCFG_DEVICE_ADD("fdc", AMIGA_FDC, amiga_state::CLK_7M_NTSC)
- MCFG_AMIGA_FDC_INDEX_CALLBACK(DEVWRITELINE("cia_1", mos8520_device, flag_w))
-MACHINE_CONFIG_END
+ROM_START(arcadia)
+ ROM_REGION(0x8000,"maincpu", ROMREGION_ERASEFF)
+ ROM_REGION(0x100,"gfx1", ROMREGION_ERASEFF)
+ROM_END
-static MACHINE_CONFIG_DERIVED( argh, arcadia )
+ROM_START(tccosmos)
+ ROM_REGION(0x8000,"maincpu", ROMREGION_ERASEFF)
+ ROM_REGION(0x100,"gfx1", ROMREGION_ERASEFF)
+ROM_END
- /* basic machine hardware */
- MCFG_CPU_MODIFY("maincpu")
- MCFG_CPU_PROGRAM_MAP(argh_map)
-MACHINE_CONFIG_END
+ROM_START(dynavisn)
+ ROM_REGION(0x8000,"maincpu", ROMREGION_ERASEFF)
+ ROM_REGION(0x100,"gfx1", ROMREGION_ERASEFF)
+ROM_END
+ROM_START(ekusera)
+ ROM_REGION(0x8000,"maincpu", ROMREGION_ERASEFF)
+ ROM_REGION(0x100,"gfx1", ROMREGION_ERASEFF)
+ROM_END
-/*************************************
- *
- * BIOS definition
- *
- *************************************/
-
-#define ROM_LOAD16_BYTE_BIOS(bios,name,offset,length,hash) ROMX_LOAD(name, offset, length, hash, ROM_SKIP(1) | ROM_BIOS(bios+1))
-
-#define ARCADIA_BIOS \
- ROM_REGION16_BE(0x80000, "kickstart", 0 ) \
- ROM_LOAD16_WORD("315093-01.u2", 0x000000, 0x040000, CRC(a6ce1636) SHA1(11f9e62cf299f72184835b7b2a70a16333fc0d88)) \
- ROM_COPY("kickstart", 0x000000, 0x040000, 0x040000) \
- \
- ROM_REGION16_BE( 0x80000, "user2", 0 ) \
- ROM_SYSTEM_BIOS(0, "onep300", "OnePlay 3.00") \
- ROM_LOAD16_BYTE_BIOS( 0, "scpa_01-hi_v3.0.u12", 0x000000, 0x10000, CRC(2d8e1a06) SHA1(be187f34624aeda110017c4a09242f7c00ef56a4) ) \
- ROM_LOAD16_BYTE_BIOS( 0, "scpa_01-lo_v3.0.u16", 0x000001, 0x10000, CRC(e4f38fab) SHA1(01c2eb5965070893be6734eb1372576727716476) ) \
- ROM_SYSTEM_BIOS(1, "onep220", "OnePlay 2.20" ) \
- ROM_LOAD16_BYTE_BIOS( 1, "scpa_01-hi_v2.20.u12", 0x000000, 0x10000, CRC(79450b4b) SHA1(a1e508a89fc62e1c4994064f2786f491b1dc8bc6) ) \
- ROM_LOAD16_BYTE_BIOS( 1, "scpa_01-lo_v2.20.u16", 0x000001, 0x10000, CRC(d2825511) SHA1(747a37c6073224472bf261ae376ac9abfbe07554) ) \
- ROM_SYSTEM_BIOS(2, "onep211", "OnePlay 2.11" ) \
- ROM_LOAD16_BYTE_BIOS( 2, "scpa_01-hi_v2.11.u12", 0x000000, 0x10000, CRC(be9dbdc5) SHA1(1554da09f051ec53937d65d4e451de51bc0c69e5) ) \
- ROM_LOAD16_BYTE_BIOS( 2, "scpa_01-lo_v2.11.u16", 0x000001, 0x10000, CRC(95b84504) SHA1(99999fc40909001b37aa1b543918118becc81800) ) \
- ROM_SYSTEM_BIOS(3, "tenp211", "TenPlay 2.11" ) \
- ROM_LOAD16_BYTE_BIOS( 3, "gcp-1-hi", 0x000000, 0x10000, CRC(67d44523) SHA1(f3e3699132cdf741518accb890c04d17374c4049) ) \
- ROM_LOAD16_BYTE_BIOS( 3, "gcp-1-lo", 0x000001, 0x10000, CRC(65d9b9cf) SHA1(5c60a0dd4a0a7d9b938ce6b0446a6ad2ecaf07ec) ) \
- ROM_LOAD16_BYTE_BIOS( 3, "gcp-2-hi", 0x020000, 0x10000, CRC(1d7594ae) SHA1(6173bbfecf18d7d9ee6bc2b6753ca9d42fabd781) ) \
- ROM_LOAD16_BYTE_BIOS( 3, "gcp-2-lo", 0x020001, 0x10000, CRC(e776198d) SHA1(694ca4cc99ed84a95d18201c94a3332f8599654f) ) \
- ROM_LOAD16_BYTE_BIOS( 3, "gcp-3-hi", 0x040000, 0x10000, CRC(3e7364be) SHA1(26e10d0ddc031a891138db36ce4f1732722e6847) ) \
- ROM_LOAD16_BYTE_BIOS( 3, "gcp-3-lo", 0x040001, 0x10000, CRC(87229e0d) SHA1(0b18544801e529f954b9e03226bd2e5475f36351) ) \
- ROM_SYSTEM_BIOS(4, "tenp311", "TenPlay 3.11" ) /* Rom labels are printed as 3.11, but it runs as 3.10 */ \
- ROM_LOAD16_BYTE_BIOS( 4, "gcp_v311_1-hi.u16", 0x000000, 0x10000, CRC(0b486a85) SHA1(b406f1db5abf28d9072b7940989ffd176aeee5cb) ) \
- ROM_LOAD16_BYTE_BIOS( 4, "gcp_v311_1-lo.u11", 0x000001, 0x10000, CRC(80e8e863) SHA1(ab04dfcda7544f4ed9b67771cd8aefe0300c6d4b) ) \
- ROM_LOAD16_BYTE_BIOS( 4, "gcp_v311_2-hi.u17", 0x020000, 0x10000, CRC(d20a4d7f) SHA1(1dc0a79efa946333149f68ddac046fd44b5f2abe) ) \
- ROM_LOAD16_BYTE_BIOS( 4, "gcp_v311_2-lo.u12", 0x020001, 0x10000, CRC(5bf4c74c) SHA1(1f7b17170accdf9e448c1a5d8bc430aa2d1d931b) ) \
- ROM_SYSTEM_BIOS(5, "tenp400", "TenPlay 4.00" ) /* needs printer switch hooked up so it can be turned off */ \
- ROM_LOAD16_BYTE_BIOS( 5, "gcp_v400_1-hi.u16", 0x000000, 0x10000, CRC(69295167) SHA1(855f53abbb9dc15e5518e16c5c2dfe4134d07306) ) \
- ROM_LOAD16_BYTE_BIOS( 5, "gcp_v400_1-lo.u11", 0x000001, 0x10000, CRC(504c2171) SHA1(a93367f520afb86c97c0a191714b72823c95cdd2) ) \
- ROM_LOAD16_BYTE_BIOS( 5, "gcp_v400_2-hi.u17", 0x020000, 0x10000, CRC(13fb4e2d) SHA1(3eef07aecc3a201ae0b20634c7fd0c87c89fd7f1) ) \
- ROM_LOAD16_BYTE_BIOS( 5, "gcp_v400_2-lo.u12", 0x020001, 0x10000, CRC(a5cc4515) SHA1(80070521476e92323a6baa6e55928ca5b751a332) )
-
-ROM_START( ar_bios )
- ARCADIA_BIOS
-
- ROM_REGION16_BE(0x180000, "user3", ROMREGION_ERASEFF)
-ROM_END
-
-
-/*************************************
- *
- * Specific games
- *
- *************************************/
-
-/* AIRH */
-ROM_START( ar_airh )
- ARCADIA_BIOS
-
- ROM_REGION16_BE( 0x180000, "user3", ROMREGION_ERASEFF )
- ROM_LOAD16_BYTE( "airh_1h.bin", 0x00000, 0x10000, CRC(290e8e9e) SHA1(9215e36f02adf4064934aab99accefcb17ea6d3f) )
- ROM_LOAD16_BYTE( "airh_1l.bin", 0x00001, 0x10000, CRC(155452b6) SHA1(aeaa67ea9cc543c9a43094545450159e4784fb5c) )
-ROM_END
-
-ROM_START( ar_airh2 )
- ARCADIA_BIOS
-
- ROM_REGION16_BE( 0x180000, "user3", ROMREGION_ERASEFF )
- ROM_LOAD16_BYTE( "arcadia4.u10", 0x00000, 0x10000, CRC(baf8d886) SHA1(77efbc27c1cf717dfee2686009a957029eb1b113) )
- ROM_LOAD16_BYTE( "arcadia4.u6", 0x00001, 0x10000, CRC(ccff38ee) SHA1(ae89dbc9533358c80423b2dc21f101816730be7c) )
-
- ROM_REGION( 0x104, "misc", ROMREGION_ERASEFF )
- ROM_LOAD( "arcadia.u14.bin", 0x000, 0x104, CRC(1af35582) SHA1(a78aa61a56dea9b5c9df8b734f99adb0383d135b) ) // bad/protected?
-ROM_END
-
-
-/* BOWL V 2.1 */
-ROM_START( ar_bowl )
- ARCADIA_BIOS
-
- ROM_REGION16_BE( 0x180000, "user3", ROMREGION_ERASEFF )
- ROM_LOAD16_BYTE( "bowl_1h.bin", 0x00000, 0x10000, CRC(c0c20422) SHA1(3576df08e7a4cdadaf9dea5da0770efe5f461b07) )
- ROM_LOAD16_BYTE( "bowl_1l.bin", 0x00001, 0x10000, CRC(1c7fe75c) SHA1(b1830b91b53ec24d4b072898acac02552e2eae97) )
- ROM_LOAD16_BYTE( "bowl_2h.bin", 0x20000, 0x10000, CRC(a1e497d8) SHA1(4b4885c6937b7cfb24921e84a80d6d4f56844a73) )
- ROM_LOAD16_BYTE( "bowl_2l.bin", 0x20001, 0x10000, CRC(ce23aa34) SHA1(4b17a8447286aeb775c4edb1968978e281422421) )
- ROM_LOAD16_BYTE( "bowl_3h.bin", 0x40000, 0x10000, CRC(0c55da71) SHA1(db8a1494fca3aa044da27ea1d3acf68be415be23) )
- ROM_LOAD16_BYTE( "bowl_3l.bin", 0x40001, 0x10000, CRC(5ce00809) SHA1(d7f336df28a033b38b5296537826d164aaf5e8c9) )
-ROM_END
-
-
-/* DART V 2.1 */
-ROM_START( ar_dart )
- ARCADIA_BIOS
-
- ROM_REGION16_BE( 0x180000, "user3", ROMREGION_ERASEFF )
- ROM_LOAD16_BYTE( "dart_1h.bin", 0x00000, 0x10000, CRC(4d6a33e2) SHA1(1a227b5b0b4aca40d46af62e44deebca60582363) )
- ROM_LOAD16_BYTE( "dart_1l.bin", 0x00001, 0x10000, CRC(3fa66973) SHA1(66b59870f8ed1bb5b46b2887d99a6a71ff0514ba) )
- ROM_LOAD16_BYTE( "dart_2h.bin", 0x20000, 0x10000, CRC(3a30426a) SHA1(bf9226d2bfd1fb2d70e55e30aa3dde953baf5792) )
- ROM_LOAD16_BYTE( "dart_2l.bin", 0x20001, 0x10000, CRC(479c0b73) SHA1(2ad958f4f2d902635d030cf3f466097da3cc421c) )
- ROM_LOAD16_BYTE( "dart_3h.bin", 0x40000, 0x10000, CRC(dd217562) SHA1(80e21112a87259785e5d172249dfe8058970fd4d) )
- ROM_LOAD16_BYTE( "dart_3l.bin", 0x40001, 0x10000, CRC(12cff829) SHA1(3826e5442bb125dff4f10ef8b0b65a2d5b8d9985) )
- ROM_LOAD16_BYTE( "dart_4h.bin", 0x60000, 0x10000, CRC(98b27f13) SHA1(eb4fe813be4f202badfb947291e75ec0df915c25) )
- ROM_LOAD16_BYTE( "dart_4l.bin", 0x60001, 0x10000, CRC(a059204c) SHA1(01fb21175957fa8e92f918ea560ceecc809ed0b7) )
- ROM_LOAD16_BYTE( "dart_5h.bin", 0x80000, 0x10000, CRC(38f4c236) SHA1(1a5501ed8e94cff584f40c3b984aff7aea9ec956) )
- ROM_LOAD16_BYTE( "dart_5l.bin", 0x80001, 0x10000, CRC(df4103cc) SHA1(c792cc52148afa7bde6458704d9de2550b6eb636) )
- ROM_LOAD16_BYTE( "dart_6h.bin", 0xa0000, 0x10000, CRC(e21cc8be) SHA1(04280eef26f4a97c2280bdec19b1bc586fceffb0) )
- ROM_LOAD16_BYTE( "dart_6l.bin", 0xa0001, 0x10000, CRC(21112d4e) SHA1(95e49aa2f23c6d005a0de3cf96a1c06adeacf2a9) )
-ROM_END
-
-ROM_START( ar_dart2 )
- ARCADIA_BIOS
-
- ROM_REGION16_BE(0x200000, "user3", 0)
- ROM_LOAD16_BYTE( "arcadia3.u10", 0x00000, 0x10000, CRC(7166c736) SHA1(9892725b4d0aac6486950f8153083ba3f6982ad8) )
- ROM_LOAD16_BYTE( "arcadia3.u6", 0x00001, 0x10000, CRC(f226137e) SHA1(61540885ff83420f5adc1087547e0ece33383ffd) )
- ROM_LOAD16_BYTE( "arcadia3.u11", 0x20000, 0x10000, CRC(5d9a7804) SHA1(acd8eb7fd28594e8008eb953f843a72f12782ea2) )
- ROM_LOAD16_BYTE( "arcadia3.u7", 0x20001, 0x10000, CRC(a4876410) SHA1(668d120f688d31d86645fa67e01cd7e6356ca340) )
- ROM_LOAD16_BYTE( "arcadia3.u12", 0x40000, 0x10000, CRC(0cb77441) SHA1(cadd5656d2a97a852bcc231c7df22965f751a80a) )
- ROM_LOAD16_BYTE( "arcadia3.u8", 0x40001, 0x10000, CRC(97caab85) SHA1(9fd1b90d9cce073db81724ddd62f3e4ec610792b) )
- ROM_LOAD16_BYTE( "arcadia3.u13", 0x60000, 0x10000, CRC(9ccf347e) SHA1(9c2b5276543d20006e115459ac5451e2e807b28f) )
- ROM_LOAD16_BYTE( "arcadia3.u9", 0x60001, 0x10000, CRC(39c6675a) SHA1(6b79c2afab5b42b83d673836b94d7baa7a4e3214) )
- ROM_LOAD16_BYTE( "arcadia3.u19", 0x80000, 0x10000, CRC(2495a19e) SHA1(2cfb4c1ebb67b534d7c6df28512c80b52931e244) )
- ROM_LOAD16_BYTE( "arcadia3.u15", 0x80001, 0x10000, BAD_DUMP CRC(6d7006df) SHA1(eb6a0c9df3ec1bf5d0a180e138a591f374555f1c) ) // FIXED BITS (0000x000)
- ROM_LOAD16_BYTE( "arcadia3.u20", 0xa0000, 0x10000, CRC(efb0f2e2) SHA1(7ba1d85ac573db9bbd1ef04d0770c7c1277bc10e) )
- ROM_LOAD16_BYTE( "arcadia3.u16", 0xa0001, 0x10000, CRC(a9c5e939) SHA1(75de7c0fb4654b6738ecd0c170589f3a46012f33) )
-
- ROM_REGION( 0x104, "misc", ROMREGION_ERASEFF )
- ROM_LOAD( "arcadia.u14.bin", 0x000, 0x104, CRC(1af35582) SHA1(a78aa61a56dea9b5c9df8b734f99adb0383d135b) ) // bad/protected?
-ROM_END
-
-
-/*
- Magic Johnson's Fast Break
-
- PIGGYBACK 1.5 MBYTE ROM BOARD REV A
-
- 3h 7h x
- 2h 6h x
- 1h 5h x
- scpa1h 4h 8h
- 3l 7l x
- 2l 6l x
- DS1220Y 1l 5l x
- sec-scpa scpa1l 4l 8l
-
-Labeled Like this:
-
-*FAST - V:28
-<----1-LO
-(C)1989 Arcadia Sys
-
-
-*/
-ROM_START( ar_fast )
- ARCADIA_BIOS
-
- ROM_REGION16_BE( 0x180000, "user3", ROMREGION_ERASEFF )
- ROM_LOAD16_BYTE( "fast-v28_1-hi.u11", 0x000000, 0x10000, CRC(091e4533) SHA1(61a16deecd32b386d62aab95e8d4a61bddcd8af4) )
- ROM_LOAD16_BYTE( "fast-v28_1-lo.u15", 0x000001, 0x10000, CRC(8f7685c1) SHA1(b379c1a47618401cfbfcc7bd2d13ae51f5e73e46) )
- ROM_LOAD16_BYTE( "fast-v28_2-hi.u10", 0x020000, 0x10000, CRC(3a3dd931) SHA1(7be3316e2acf6b14b29ef2e36d8f76999d5d4e94) )
- ROM_LOAD16_BYTE( "fast-v28_2-lo.u14", 0x020001, 0x10000, CRC(4838d7e5) SHA1(d2ae5b8f25df51936937ddf62001347fccdf830a) )
- ROM_LOAD16_BYTE( "fast-v28_3-hi.u9", 0x040000, 0x10000, CRC(db94fa62) SHA1(4fe79a4226161b15ecdda9d85c1ad84cf31b6a30) )
- ROM_LOAD16_BYTE( "fast-v28_3-lo.u13", 0x040001, 0x10000, CRC(a400367d) SHA1(a4362beeb35fa0c9020883eab0a71194f3a90b9a) )
- ROM_LOAD16_BYTE( "fast-v28_4-hi.u20", 0x060000, 0x10000, CRC(c0a021dd) SHA1(c4c40c05050a2831b55683d85ee39b8870e0bf88) )
- ROM_LOAD16_BYTE( "fast-v28_4-lo.u24", 0x060001, 0x10000, CRC(870e60f1) SHA1(0f0566da96dfc898dbbc35dfaba489d1fc9ab435) )
- ROM_LOAD16_BYTE( "fast-v28_5-hi.u19", 0x080000, 0x10000, CRC(6daf4817) SHA1(ca0bf79e77a3e878da1f97ff9a64107e8c112aee) )
- ROM_LOAD16_BYTE( "fast-v28_5-lo.u23", 0x080001, 0x10000, CRC(f489da29) SHA1(5e70183acfd0d849ae9691b312ca98698b1a2252) )
- ROM_LOAD16_BYTE( "fast-v28_6-hi.u18", 0x0a0000, 0x10000, CRC(b23dbcfd) SHA1(67495235016e4bcbf6251e4073d6938a3c5b0eea) )
- ROM_LOAD16_BYTE( "fast-v28_6-lo.u22", 0x0a0001, 0x10000, CRC(4e23e807) SHA1(69c910d70fb85d037257b19a1be9e99c617bf1c4) )
- ROM_LOAD16_BYTE( "fast-v28_7-hi.u17", 0x0c0000, 0x10000, CRC(74d598eb) SHA1(9434169d316fc2802e7790e5b09be086fccab351) )
- ROM_LOAD16_BYTE( "fast-v28_7-lo.u21", 0x0c0001, 0x10000, CRC(b0649050) SHA1(a8efdfc82a63fc16ee2103b4c96b92d6f9e7afc6) )
- ROM_LOAD16_BYTE( "fast-v28_8-hi.u28", 0x0e0000, 0x10000, CRC(3650aaf0) SHA1(cc37aa94360159f45076eafaae8140a661bd52f6) )
- ROM_LOAD16_BYTE( "fast-v28_8-lo.u32", 0x0e0001, 0x10000, CRC(82603f68) SHA1(8affe73e97b966b8e63bff2c7914fb5ead7b60ff) )
-
- ROM_REGION( 0x0200, "plds", 0 )
- ROM_LOAD( "pal16l8-sec-scpa.u8", 0x0000, 0x0104, CRC(3a4df3aa) SHA1(d0e64af4e1602347af60cd97c6b5b1a9d65cb270) ) /* PAL is read protected */
-ROM_END
-
-
-/* Arcadia Magic Johnson's Fast Break V 2.7 on PIGGYBACK 1.5 MBYTE ROM BOARD REV A */
-ROM_START( ar_fasta )
- ARCADIA_BIOS
-
- ROM_REGION16_BE( 0x180000, "user3", ROMREGION_ERASEFF )
- ROM_LOAD16_BYTE( "fast-v27_1-hi.u11", 0x000000, 0x10000, CRC(58ce7e02) SHA1(73fa33858dceb924e86b95130f8d6a0d3ae5cc6f) )
- ROM_LOAD16_BYTE( "fast-v27_1-lo.u15", 0x000001, 0x10000, CRC(6bf75490) SHA1(3df610dd488e0711a190a9ec47adfd047313a597) )
- ROM_LOAD16_BYTE( "fast-v27_2-hi.u10", 0x020000, 0x10000, CRC(3a3dd931) SHA1(7be3316e2acf6b14b29ef2e36d8f76999d5d4e94) ) /* matches v2.8 */
- ROM_LOAD16_BYTE( "fast-v27_2-lo.u14", 0x020001, 0x10000, CRC(4838d7e5) SHA1(d2ae5b8f25df51936937ddf62001347fccdf830a) ) /* matches v2.8 */
- ROM_LOAD16_BYTE( "fast-v27_3-hi.u9", 0x040000, 0x10000, CRC(db94fa62) SHA1(4fe79a4226161b15ecdda9d85c1ad84cf31b6a30) ) /* matches v2.8 */
- ROM_LOAD16_BYTE( "fast-v27_3-lo.u13", 0x040001, 0x10000, CRC(a400367d) SHA1(a4362beeb35fa0c9020883eab0a71194f3a90b9a) ) /* matches v2.8 */
- ROM_LOAD16_BYTE( "fast-v27_4-hi.u20", 0x060000, 0x10000, CRC(c0a021dd) SHA1(c4c40c05050a2831b55683d85ee39b8870e0bf88) ) /* matches v2.8 */
- ROM_LOAD16_BYTE( "fast-v27_4-lo.u24", 0x060001, 0x10000, CRC(870e60f1) SHA1(0f0566da96dfc898dbbc35dfaba489d1fc9ab435) ) /* matches v2.8 */
- ROM_LOAD16_BYTE( "fast-v27_5-hi.u19", 0x080000, 0x10000, CRC(6daf4817) SHA1(ca0bf79e77a3e878da1f97ff9a64107e8c112aee) ) /* matches v2.8 */
- ROM_LOAD16_BYTE( "fast-v27_5-lo.u23", 0x080001, 0x10000, CRC(f489da29) SHA1(5e70183acfd0d849ae9691b312ca98698b1a2252) ) /* matches v2.8 */
- ROM_LOAD16_BYTE( "fast-v27_6-hi.u18", 0x0a0000, 0x10000, CRC(e36424a4) SHA1(e17375de39dccb7bec6aaaa06879a20b532d0199) )
- ROM_LOAD16_BYTE( "fast-v27_6-lo.u22", 0x0a0001, 0x10000, CRC(23441bac) SHA1(25fd776cdafbb88b5f63201d30d42eeafde88733) )
- ROM_LOAD16_BYTE( "fast-v27_7-hi.u17", 0x0c0000, 0x10000, CRC(2ac2f165) SHA1(5d7501de510efc4ca34765d99ed8c2c374309659) )
- ROM_LOAD16_BYTE( "fast-v27_7-lo.u21", 0x0c0001, 0x10000, CRC(41255827) SHA1(494e3da21845c6d62ce3c7ba75e2557fb016b91a) )
- ROM_LOAD16_BYTE( "fast-v27_8-hi.u28", 0x0e0000, 0x10000, CRC(8e838770) SHA1(73ad9e925f725b173ce554e97c28426cb20ec194) )
- ROM_LOAD16_BYTE( "fast-v27_8-lo.u32", 0x0e0001, 0x10000, CRC(2d55af35) SHA1(5a6a3b12c222d16c30bc7f2a7904433614448e10) )
-
- ROM_REGION( 0x0200, "plds", 0 )
- ROM_LOAD( "pal16l8-sec-scpa.u8", 0x0000, 0x0104, CRC(3a4df3aa) SHA1(d0e64af4e1602347af60cd97c6b5b1a9d65cb270) )
-ROM_END
-
-
-/* Arcadia LEADER BOARD V 2.5 on PIGGYBACK 1.5 MBYTE ROM BOARD REV A */
-ROM_START( ar_ldrb )
- ARCADIA_BIOS
-
- ROM_REGION16_BE( 0x180000, "user3", ROMREGION_ERASEFF )
- ROM_LOAD16_BYTE( "leader_board_01-hi_v2.5.u11", 0x00000, 0x10000, CRC(0236511c) SHA1(22b2ee076ed57ba38413c16a52510383d8488e25) )
- ROM_LOAD16_BYTE( "leader_board_01-lo_v2.5.u15", 0x00001, 0x10000, CRC(786d34b9) SHA1(5fd6ef94f65c6fd503d3682154b576d6509a3aa9) )
- ROM_LOAD16_BYTE( "leader_board_02-hi_v2.5.u10", 0x20000, 0x10000, CRC(64e5fbae) SHA1(0dde0d05b05f232aac9ad44398cedd8c7627f146) ) /* matches v2.4 */
- ROM_LOAD16_BYTE( "leader_board_02-lo_v2.5.u14", 0x20001, 0x10000, CRC(bb115e1c) SHA1(768cf51661f630b1c0a4b83b9f6124c78a517d0a) ) /* matches v2.4 */
- ROM_LOAD16_BYTE( "leader_board_03-hi_v2.5.u9", 0x40000, 0x10000, CRC(1d290e28) SHA1(0d589628fe59de9d7e2a57ddeabca991d1c79fdf) ) /* matches v2.4 */
- ROM_LOAD16_BYTE( "leader_board_03-lo_v2.5.u13", 0x40001, 0x10000, CRC(b1352a77) SHA1(ac7337a3778442d444002f730e2880f61f32cf2a) ) /* matches v2.4 */
- ROM_LOAD16_BYTE( "leader_board_04-hi_v2.5.u20", 0x60000, 0x10000, CRC(b621c688) SHA1(f2a50ebfc50725cdef77bb8a4864405dbb203784) ) /* matches v2.4 */
- ROM_LOAD16_BYTE( "leader_board_04-lo_v2.5.u24", 0x60001, 0x10000, CRC(13f9c4b0) SHA1(08a1fab271307191c5caa108c4ae284f92c270e4) ) /* matches v2.4 */
- ROM_LOAD16_BYTE( "leader_board_05-hi_v2.5.u19", 0x80000, 0x10000, CRC(71273172) SHA1(2b6204fdf03268e920b5948c999aa725fc66cac6) ) /* matches v2.4 */
- ROM_LOAD16_BYTE( "leader_board_05-lo_v2.5.u23", 0x80001, 0x10000, CRC(d9028183) SHA1(009b496da31f67b11de54e50254a9897ea68cd92) ) /* matches v2.4 */
- ROM_LOAD16_BYTE( "leader_board_06-hi_v2.5.u18", 0xa0000, 0x10000, CRC(a6ce61a4) SHA1(6cd64b7d589c91aeee06293f473fd1b3c56b19e0) ) /* matches v2.4 */
- ROM_LOAD16_BYTE( "leader_board_06-lo_v2.5.u22", 0xa0001, 0x10000, CRC(13c71422) SHA1(93e6dca2b28e1b5235b922f064be96eed0bedd8c) ) /* matches v2.4 */
- ROM_LOAD16_BYTE( "leader_board_07-hi_v2.5.u17", 0xc0000, 0x10000, CRC(4ebb8d12) SHA1(c328a26139ba0792cab1020b32eb4b8e39d51a22) )
- ROM_LOAD16_BYTE( "leader_board_07-lo_v2.5.u21", 0xc0001, 0x10000, CRC(1afa9a4f) SHA1(3e5ca56e03d693a72424b9ad0717494ea8eb561e) )
- ROM_LOAD16_BYTE( "leader_board_08-hi_v2.5.u28", 0xe0000, 0x10000, CRC(fbdca9af) SHA1(9612eb777a00ba4153f40eaefd162ca5b5efdb54) )
- ROM_LOAD16_BYTE( "leader_board_08-lo_v2.5.u32", 0xe0001, 0x10000, CRC(322f52eb) SHA1(3033eb753fb8b3bf56b152377bf567b06a0c8144) )
-
- ROM_REGION( 0x0200, "plds", 0 )
- ROM_LOAD( "pal16l8-sec-scpa.u8", 0x0000, 0x0104, CRC(3a4df3aa) SHA1(d0e64af4e1602347af60cd97c6b5b1a9d65cb270) )
-ROM_END
-
-
-/* Arcadia LEADER BOARD V 2.4 on PIGGYBACK 1.5 MBYTE ROM BOARD REV A */
-ROM_START( ar_ldrba )
- ARCADIA_BIOS
-
- ROM_REGION16_BE( 0x180000, "user3", ROMREGION_ERASEFF )
- ROM_LOAD16_BYTE( "leader_board_01-hi_v2.4.u11", 0x00000, 0x10000, CRC(fe1287e9) SHA1(34088416d970614b31b25e982ef40fd950080b3e) )
- ROM_LOAD16_BYTE( "leader_board_01-lo_v2.4.u15", 0x00001, 0x10000, CRC(7c7bb9ee) SHA1(5c76445732ab139db82fe21c16f49e2609bb03aa) )
- ROM_LOAD16_BYTE( "leader_board_02-hi_v2.4.u10", 0x20000, 0x10000, CRC(64e5fbae) SHA1(0dde0d05b05f232aac9ad44398cedd8c7627f146) )
- ROM_LOAD16_BYTE( "leader_board_02-lo_v2.4.u14", 0x20001, 0x10000, CRC(bb115e1c) SHA1(768cf51661f630b1c0a4b83b9f6124c78a517d0a) )
- ROM_LOAD16_BYTE( "leader_board_03-hi_v2.4.u9", 0x40000, 0x10000, CRC(1d290e28) SHA1(0d589628fe59de9d7e2a57ddeabca991d1c79fdf) )
- ROM_LOAD16_BYTE( "leader_board_03-lo_v2.4.u13", 0x40001, 0x10000, CRC(b1352a77) SHA1(ac7337a3778442d444002f730e2880f61f32cf2a) )
- ROM_LOAD16_BYTE( "leader_board_04-hi_v2.4.u20", 0x60000, 0x10000, CRC(b621c688) SHA1(f2a50ebfc50725cdef77bb8a4864405dbb203784) )
- ROM_LOAD16_BYTE( "leader_board_04-lo_v2.4.u24", 0x60001, 0x10000, CRC(13f9c4b0) SHA1(08a1fab271307191c5caa108c4ae284f92c270e4) )
- ROM_LOAD16_BYTE( "leader_board_05-hi_v2.4.u19", 0x80000, 0x10000, CRC(71273172) SHA1(2b6204fdf03268e920b5948c999aa725fc66cac6) )
- ROM_LOAD16_BYTE( "leader_board_05-lo_v2.4.u23", 0x80001, 0x10000, CRC(d9028183) SHA1(009b496da31f67b11de54e50254a9897ea68cd92) )
- ROM_LOAD16_BYTE( "leader_board_06-hi_v2.4.u18", 0xa0000, 0x10000, CRC(a6ce61a4) SHA1(6cd64b7d589c91aeee06293f473fd1b3c56b19e0) )
- ROM_LOAD16_BYTE( "leader_board_06-lo_v2.4.u22", 0xa0001, 0x10000, CRC(13c71422) SHA1(93e6dca2b28e1b5235b922f064be96eed0bedd8c) )
- ROM_LOAD16_BYTE( "leader_board_07-hi_v2.4.u17", 0xc0000, 0x10000, CRC(61807fa9) SHA1(9d7097b921cf4026bb2828780e3fb87e0a3a24a0) )
- ROM_LOAD16_BYTE( "leader_board_07-lo_v2.4.u21", 0xc0001, 0x10000, CRC(c62dae9f) SHA1(59b8e1c2469edd57024a4f3ca4222811442fa077) )
- ROM_LOAD16_BYTE( "leader_board_08-hi_v2.4.u28", 0xe0000, 0x10000, CRC(b5911807) SHA1(b2995b308b2618f312005f130048e73c151311ae) )
- ROM_LOAD16_BYTE( "leader_board_08-lo_v2.4.u32", 0xe0001, 0x10000, CRC(1f1ea828) SHA1(4af463bc6d58d64d4f082971c71654a6bb0c26bc) )
-
- ROM_REGION( 0x0200, "plds", 0 )
- ROM_LOAD( "pal16l8-sec-scpa.u8", 0x0000, 0x0104, CRC(3a4df3aa) SHA1(d0e64af4e1602347af60cd97c6b5b1a9d65cb270) )
-ROM_END
-
-/* Arcadia LEADER BOARD v 2.6? on PIGGYBACK 1.5 MBYTE ROM BOARD REV ? */
-ROM_START( ar_ldrbb ) /* Later then v2.5?? as 7H & 7L match v2.5 and are newer then v2.4 */
- ARCADIA_BIOS
-
- ROM_REGION16_BE( 0x180000, "user3", ROMREGION_ERASEFF )
- ROM_LOAD16_BYTE( "ldrb_1h.u11", 0x00000, 0x10000, CRC(97dcde78) SHA1(d324415b853de17646b5266581bea27e571fa08f) )
- ROM_LOAD16_BYTE( "ldrb_1l_gcp_22.u15", 0x00001, 0x10000, CRC(b51d17f7) SHA1(56add2f69c35e5082926bd59be7f98a6a223c549) )
- ROM_LOAD16_BYTE( "ldrb_2h.u10", 0x20000, 0x10000, CRC(64e5fbae) SHA1(0dde0d05b05f232aac9ad44398cedd8c7627f146) ) /* matches v2.4 */
- ROM_LOAD16_BYTE( "ldrb_2l.u14", 0x20001, 0x10000, CRC(bb115e1c) SHA1(768cf51661f630b1c0a4b83b9f6124c78a517d0a) ) /* matches v2.4 */
- ROM_LOAD16_BYTE( "ldrb_3h.u9", 0x40000, 0x10000, CRC(1d290e28) SHA1(0d589628fe59de9d7e2a57ddeabca991d1c79fdf) ) /* matches v2.4 */
- ROM_LOAD16_BYTE( "ldrb_3l.u13", 0x40001, 0x10000, CRC(b1352a77) SHA1(ac7337a3778442d444002f730e2880f61f32cf2a) ) /* matches v2.4 */
- ROM_LOAD16_BYTE( "ldrb_4h.u20", 0x60000, 0x10000, CRC(b621c688) SHA1(f2a50ebfc50725cdef77bb8a4864405dbb203784) ) /* matches v2.4 */
- ROM_LOAD16_BYTE( "ldrb_4l.u24", 0x60001, 0x10000, CRC(13f9c4b0) SHA1(08a1fab271307191c5caa108c4ae284f92c270e4) ) /* matches v2.4 */
- ROM_LOAD16_BYTE( "ldrb_5h.u19", 0x80000, 0x10000, CRC(71273172) SHA1(2b6204fdf03268e920b5948c999aa725fc66cac6) ) /* matches v2.4 */
- ROM_LOAD16_BYTE( "ldrb_5l.u23", 0x80001, 0x10000, CRC(d9028183) SHA1(009b496da31f67b11de54e50254a9897ea68cd92) ) /* matches v2.4 */
- ROM_LOAD16_BYTE( "ldrb_6h.u18", 0xa0000, 0x10000, CRC(a6ce61a4) SHA1(6cd64b7d589c91aeee06293f473fd1b3c56b19e0) ) /* matches v2.4 */
- ROM_LOAD16_BYTE( "ldrb_6l.u22", 0xa0001, 0x10000, CRC(13c71422) SHA1(93e6dca2b28e1b5235b922f064be96eed0bedd8c) ) /* matches v2.4 */
- ROM_LOAD16_BYTE( "ldrb_7h.u17", 0xc0000, 0x10000, CRC(4ebb8d12) SHA1(c328a26139ba0792cab1020b32eb4b8e39d51a22) ) /* matches v2.5 */
- ROM_LOAD16_BYTE( "ldrb_7l.u21", 0xc0001, 0x10000, CRC(1afa9a4f) SHA1(3e5ca56e03d693a72424b9ad0717494ea8eb561e) ) /* matches v2.5 */
- ROM_LOAD16_BYTE( "ldrb_8h.u28", 0xe0000, 0x10000, CRC(701f50ba) SHA1(4ea6be00aa2d32d739fa6ec70ec8bce470b28f90) )
- ROM_LOAD16_BYTE( "ldrb_8l.u32", 0xe0001, 0x10000, CRC(80642c1d) SHA1(fc2101b749db3ebb3499c8870026c05acf46fa4d) )
-
- ROM_REGION( 0x0200, "plds", 0 )
- ROM_LOAD( "pal16l8-sec-scpa.u8", 0x0000, 0x0104, CRC(3a4df3aa) SHA1(d0e64af4e1602347af60cd97c6b5b1a9d65cb270) )
-ROM_END
-
-/* NINJ V 2.5 */
-ROM_START( ar_ninj )
- ARCADIA_BIOS
-
- ROM_REGION16_BE(0x200000, "user3", 0)
- ROM_LOAD16_BYTE( "ninj_1h.bin", 0x00000, 0x10000, CRC(53b07b4d) SHA1(4852005adf60fe63f2da880dd32740d18fd31169) )
- ROM_LOAD16_BYTE( "ninj_1l.bin", 0x00001, 0x10000, CRC(3337a6c1) SHA1(be9719f0cd5872b51f4c6d32fcac2638c0dedaf4) )
- ROM_LOAD16_BYTE( "ninj_2h.bin", 0x20000, 0x10000, CRC(e28a5fa8) SHA1(150e26aea24706b72d2e6612280d5dddc527061b) )
- ROM_LOAD16_BYTE( "ninj_2l.bin", 0x20001, 0x10000, CRC(4f52c008) SHA1(c26bf9a7a21a5b78697a684bada90ff70160f868) )
- ROM_LOAD16_BYTE( "ninj_3h.bin", 0x40000, 0x10000, CRC(c6e4dd36) SHA1(a8dcea97e0eb1da462ad55fd543c637544bfd059) )
- ROM_LOAD16_BYTE( "ninj_3l.bin", 0x40001, 0x10000, CRC(1dca7ea5) SHA1(2950ea2e9267d27e0ebe785a08e2d6627ae5eb17) )
- ROM_LOAD16_BYTE( "ninj_4h.bin", 0x60000, 0x10000, CRC(dc1a21d4) SHA1(76463837e0da8fd61de334e00adb807c7ef92523) )
- ROM_LOAD16_BYTE( "ninj_4l.bin", 0x60001, 0x10000, CRC(64660b15) SHA1(9e9c5f61add1439613400fee0c2376dc4000e6c6) )
- ROM_LOAD16_BYTE( "ninj_5h.bin", 0x80000, 0x10000, CRC(49cda31b) SHA1(e9579b9d47f7e638f933b8ce659bc63c8bdeb0a4) )
- ROM_LOAD16_BYTE( "ninj_5l.bin", 0x80001, 0x10000, CRC(1c5ef815) SHA1(7e88c1545ee15efd928220989f8b29207a8fec7e) )
- ROM_LOAD16_BYTE( "ninj_6h.bin", 0xa0000, 0x10000, CRC(b647f31e) SHA1(18367b96418ab950ba97d656e1466234af3bca80) )
- ROM_LOAD16_BYTE( "ninj_6l.bin", 0xa0001, 0x10000, CRC(9e5407e3) SHA1(85a8383573f3cd120f323e867c7fa2b6badd5aad) )
-ROM_END
-
-ROM_START( ar_ninj2 )
- ARCADIA_BIOS
-
- ROM_REGION16_BE(0x200000, "user3", 0)
- ROM_LOAD16_BYTE( "arcadia5.u10", 0x00000, 0x10000, CRC(217cb8eb) SHA1(7cb1da4d5d5b5af5f42c10848c7535bdeebbcd94) )
- ROM_LOAD16_BYTE( "arcadia5.u6", 0x00001, 0x10000, CRC(009bee8f) SHA1(ff61a0770643400ecddc70e603ca6589424b6831) )
- ROM_LOAD16_BYTE( "arcadia5.u11", 0x20000, 0x10000, CRC(f5c84e48) SHA1(8149a225a406ffb7c9faaa48af4947c2f66f750d) )
- ROM_LOAD16_BYTE( "arcadia5.u7", 0x20001, 0x10000, CRC(62d32d21) SHA1(3b80e0a4543d64f905139224f333a913cde60f30) )
- ROM_LOAD16_BYTE( "arcadia5.u12", 0x40000, 0x10000, CRC(c6e4dd36) SHA1(a8dcea97e0eb1da462ad55fd543c637544bfd059) )
- ROM_LOAD16_BYTE( "arcadia5.u8", 0x40001, 0x10000, CRC(1dca7ea5) SHA1(2950ea2e9267d27e0ebe785a08e2d6627ae5eb17) )
- ROM_LOAD16_BYTE( "arcadia5.u13", 0x60000, 0x10000, CRC(1bca3231) SHA1(57bd0516c30c4b7d8b4ca27580f770732b1a56bd) )
- ROM_LOAD16_BYTE( "arcadia5.u9", 0x60001, 0x10000, CRC(df2f98ae) SHA1(cbad0371109aab9fa6c72a022a496e9b85c5fcd4) )
- ROM_LOAD16_BYTE( "arcadia5.u19", 0x80000, 0x10000, CRC(49cda31b) SHA1(e9579b9d47f7e638f933b8ce659bc63c8bdeb0a4) )
- ROM_LOAD16_BYTE( "arcadia5.u15", 0x80001, 0x10000, CRC(1c5ef815) SHA1(7e88c1545ee15efd928220989f8b29207a8fec7e) )
- ROM_LOAD16_BYTE( "arcadia5.u20", 0xa0000, 0x10000, CRC(7359920b) SHA1(72c7438f9f5ef5d6a23f11fc58d32f8e1ff0ae44) )
- ROM_LOAD16_BYTE( "arcadia5.u16", 0xa0001, 0x10000, CRC(85a639bb) SHA1(22bfadfe6c8fd366e45ec172c070d9811e1ea8a9) )
-
- ROM_REGION( 0x104, "misc", ROMREGION_ERASEFF )
- ROM_LOAD( "arcadia.u14.bin", 0x000, 0x104, CRC(1af35582) SHA1(a78aa61a56dea9b5c9df8b734f99adb0383d135b) ) // bad/protected?
-ROM_END
-
-
-
-/* RDWR V 2.3 */
-ROM_START( ar_rdwr )
- ARCADIA_BIOS
-
- ROM_REGION16_BE(0x200000, "user3", 0)
- ROM_LOAD16_BYTE( "rdwr_1h.bin", 0x00000, 0x10000, CRC(f52cb704) SHA1(cce8c7484ae8c3a3d14b2e79a981780a277c9b1c) )
- ROM_LOAD16_BYTE( "rdwr_1l.bin", 0x00001, 0x10000, CRC(fde0de6d) SHA1(7f62ce854a040775548c5ba3b05e6a4dcb0d7cfb) )
- ROM_LOAD16_BYTE( "rdwr_2h.bin", 0x20000, 0x10000, CRC(8f3c1a2c) SHA1(e473e55457c04ebd597375e9936aeb0473507ed7) )
- ROM_LOAD16_BYTE( "rdwr_2l.bin", 0x20001, 0x10000, CRC(21865e15) SHA1(be4b0e77a17edeb77f6a9d4bec6d49d4a46242ea) )
- ROM_LOAD16_BYTE( "rdwr_3h.bin", 0x40000, 0x10000, CRC(0cb3bc66) SHA1(5e22abcd38fc74f472cc5090b7c2893aaabc37bd) )
- ROM_LOAD16_BYTE( "rdwr_3l.bin", 0x40001, 0x10000, CRC(d863a958) SHA1(d27b8ff2daa51319d5c44700c6dd74e4bc8d99a4) )
- ROM_LOAD16_BYTE( "rdwr_4h.bin", 0x60000, 0x10000, CRC(466fe771) SHA1(1cc65887e097302bd504b8c4da5f7d2b760d7f74) )
- ROM_LOAD16_BYTE( "rdwr_4l.bin", 0x60001, 0x10000, CRC(fff39238) SHA1(05b4a70e1f808254e1fb20a15c460655d14d4216) )
-ROM_END
-
-
-/* SDWR V 2.1 */
-ROM_START( ar_sdwr )
- ARCADIA_BIOS
-
- ROM_REGION16_BE( 0x180000, "user3", ROMREGION_ERASEFF )
- ROM_LOAD16_BYTE( "sdwr_1h.bin", 0x00000, 0x10000, CRC(aef3eea8) SHA1(4bf7619f52395fcbde3c8f7af3fd7da4af03c673) )
- ROM_LOAD16_BYTE( "sdwr_1l.bin", 0x00001, 0x10000, CRC(daed4add) SHA1(a9404a87f1958d7ab829fbb48855d2deb64c5aec) )
- ROM_LOAD16_BYTE( "sdwr_2h.bin", 0x20000, 0x10000, CRC(d67ba564) SHA1(2afba72a77806e3925c9ca1e13c16c442a6cfc3a) )
- ROM_LOAD16_BYTE( "sdwr_2l.bin", 0x20001, 0x10000, CRC(97f58a6d) SHA1(161bc8b3e14e5efca7b988f80cc16345280ca4bd) )
- ROM_LOAD16_BYTE( "sdwr_3h.bin", 0x40000, 0x10000, CRC(b31ad2b2) SHA1(66003bd331f61d1bd2e8f4d595b61503dad4e4b8) )
- ROM_LOAD16_BYTE( "sdwr_3l.bin", 0x40001, 0x10000, CRC(af929620) SHA1(5fde0f199016abf8fd9db821ee492feeba21b604) )
- ROM_LOAD16_BYTE( "sdwr_4h.bin", 0x60000, 0x10000, CRC(7502a271) SHA1(aa318619c0b98873b435b5bbf7feb2d5d51198f9) )
- ROM_LOAD16_BYTE( "sdwr_4l.bin", 0x60001, 0x10000, CRC(942d50b4) SHA1(eb0c9057ffd0d03dc2cde1158ce9f07de8ea6905) )
- ROM_LOAD16_BYTE( "sdwr_5h.bin", 0x80000, 0x10000, CRC(c25ac91d) SHA1(da4d46a2c987e2be2e31c081557b2de1744fa237) )
- ROM_LOAD16_BYTE( "sdwr_5l.bin", 0x80001, 0x10000, CRC(ecd1fbd3) SHA1(0b859d608859ccbff03db655219dfea4e609454d) )
- ROM_LOAD16_BYTE( "sdwr_6h.bin", 0xa0000, 0x10000, CRC(ea3c8ab3) SHA1(95cb5b9dd29c19862a2659867474cbf49192f830) )
- ROM_LOAD16_BYTE( "sdwr_6l.bin", 0xa0001, 0x10000, CRC(2544ccd7) SHA1(953aa00f2610ecd31db6e36964cbe7c2866050b9) )
-ROM_END
-
-ROM_START( ar_sdwr2 )
- ARCADIA_BIOS
-
- ROM_REGION16_BE(0x200000, "user3", 0)
- ROM_LOAD16_BYTE( "arcadia1.u10", 0x00000, 0x10000, CRC(30949f1f) SHA1(270cd449f994eda76afd5532018bad636ac4cf68) )
- ROM_LOAD16_BYTE( "arcadia1.u6", 0x00001, 0x10000, CRC(c760d1c4) SHA1(7d311e8b192e493da9501755e096599e1e8e8d3e) )
- ROM_LOAD16_BYTE( "arcadia1.u11", 0x20000, 0x10000, CRC(d67ba564) SHA1(2afba72a77806e3925c9ca1e13c16c442a6cfc3a) )
- ROM_LOAD16_BYTE( "arcadia1.u7", 0x20001, 0x10000, CRC(97f58a6d) SHA1(161bc8b3e14e5efca7b988f80cc16345280ca4bd) )
- ROM_LOAD16_BYTE( "arcadia1.u12", 0x40000, 0x10000, CRC(b31ad2b2) SHA1(66003bd331f61d1bd2e8f4d595b61503dad4e4b8) )
- ROM_LOAD16_BYTE( "arcadia1.u8", 0x40001, 0x10000, CRC(af929620) SHA1(5fde0f199016abf8fd9db821ee492feeba21b604) )
- ROM_LOAD16_BYTE( "arcadia1.u13", 0x60000, 0x10000, CRC(360b17a6) SHA1(db7e1ce1c545139142804ce68ce5232d153fb0f2) )
- ROM_LOAD16_BYTE( "arcadia1.u9", 0x60001, 0x10000, CRC(d724e563) SHA1(0012bc6354642a761fc223627401542ae48aea6e) )
- ROM_LOAD16_BYTE( "arcadia1.u19", 0x80000, 0x10000, CRC(c25ac91d) SHA1(da4d46a2c987e2be2e31c081557b2de1744fa237) )
- ROM_LOAD16_BYTE( "arcadia1.u15", 0x80001, 0x10000, CRC(ecd1fbd3) SHA1(0b859d608859ccbff03db655219dfea4e609454d) )
- ROM_LOAD16_BYTE( "arcadia1.u20", 0xa0000, 0x10000, CRC(5791440b) SHA1(fc9297343ddc2e6e1e22b7ed9a986777519061db) )
- ROM_LOAD16_BYTE( "arcadia1.u16", 0xa0001, 0x10000, CRC(e63e1679) SHA1(0762bff0018e006905a2e58141fdf05910f06e29) )
-
- ROM_REGION( 0x104, "misc", ROMREGION_ERASEFF )
- ROM_LOAD( "arcadia.u14.bin", 0x000, 0x104, CRC(1af35582) SHA1(a78aa61a56dea9b5c9df8b734f99adb0383d135b) ) // bad/protected?
-ROM_END
-
-
-/* SOCC */
-ROM_START( ar_socc )
- ARCADIA_BIOS
-
- ROM_REGION16_BE( 0x180000, "user3", ROMREGION_ERASEFF )
- ROM_LOAD16_BYTE( "socc30.1hi", 0x00000, 0x10000, CRC(b4df41cf) SHA1(681cecef390f82be420cd9f4d32afddace3da3c8) )
- ROM_LOAD16_BYTE( "socc30.1lo", 0x00001, 0x10000, CRC(28b5e119) SHA1(3fff3252b855e6ca1aceff89ec0c61688c954d88) )
- ROM_LOAD16_BYTE( "socc30.2hi", 0x20000, 0x10000, CRC(b3c14026) SHA1(be4e05cbf5b14a1dc77eff70bb44c8cdae57e59a) )
- ROM_LOAD16_BYTE( "socc30.2lo", 0x20001, 0x10000, CRC(f7f9a734) SHA1(064adbfb919c7422190b5e4146fbc335a2a97091) )
- ROM_LOAD16_BYTE( "socc30.3hi", 0x40000, 0x10000, CRC(2a2bd2a0) SHA1(9a9a0463ecf99941f88a163dcb111bf8c3508d78) )
- ROM_LOAD16_BYTE( "socc30.3lo", 0x40001, 0x10000, CRC(f335bb8b) SHA1(a15ee6b27d6e2aab25f3260edd0803fe1fa05f0e) )
- ROM_LOAD16_BYTE( "socc30.4hi", 0x60000, 0x10000, CRC(4f2f28dc) SHA1(cd419c80e7112163fd182d2cc58148d3674ccd8c) )
- ROM_LOAD16_BYTE( "socc30.4lo", 0x60001, 0x10000, CRC(b326d36c) SHA1(5ac2df36754c97065f74695a9c46e2a558e8e112) )
- ROM_LOAD16_BYTE( "socc30.5hi", 0x80000, 0x10000, CRC(4fcaec4a) SHA1(1286c57a81358a69573df6f6cedf44c564476320) )
- ROM_LOAD16_BYTE( "socc30.5lo", 0x80001, 0x10000, CRC(f131115e) SHA1(a9050878cbc1923bb88d46ecdad8f5bd69d389ea) )
- ROM_LOAD16_BYTE( "socc30.6hi", 0xa0000, 0x10000, CRC(9380644f) SHA1(01da02f9397c7b8fd44a78a533f09264eb4f3d0c) )
- ROM_LOAD16_BYTE( "socc30.6lo", 0xa0001, 0x10000, CRC(b93e13ea) SHA1(0fac9cb54099f0d0ad61eb6f5bd3686c27a045b9) )
-ROM_END
-
-
-/* SPOT */
-ROM_START( ar_spot )
- ARCADIA_BIOS
-
- ROM_REGION16_BE( 0x180000, "user3", ROMREGION_ERASEFF )
- ROM_LOAD16_BYTE( "spotv2.1h", 0x00000, 0x10000, CRC(a8440838) SHA1(8d64ddb603754c85aad47bd079d0a7d80d57b36c) )
- ROM_LOAD16_BYTE( "spotv2.1l", 0x00001, 0x10000, CRC(2abd2835) SHA1(b419da47c6390334ed8af56bc21430e5b43d6d58) )
- ROM_LOAD16_BYTE( "spotv2.2h", 0x20000, 0x10000, CRC(f4c95f77) SHA1(46c70755e3c6d06bec4b1bd164a586292a59249d) )
- ROM_LOAD16_BYTE( "spotv2.2l", 0x20001, 0x10000, CRC(58d7bf54) SHA1(0da63d32d738f8ed3675c6d14b2d12039af5ff21) )
- ROM_LOAD16_BYTE( "spotv2.3h", 0x40000, 0x10000, CRC(c9d2f3b7) SHA1(1b4693bcde14dc5eefe7456d4d613e6cb674c972) )
- ROM_LOAD16_BYTE( "spotv2.3l", 0x40001, 0x10000, CRC(adf94e81) SHA1(5ad56044008236edea0a44393daee06e572b1cc2) )
- ROM_LOAD16_BYTE( "spotv2.4h", 0x60000, 0x10000, CRC(cdea2feb) SHA1(4bb24b8cb5dd1e88d3f468979e2f350568414668) )
- ROM_LOAD16_BYTE( "spotv2.4l", 0x60001, 0x10000, CRC(214c353b) SHA1(819283248eac2a516f9fcdda060284ffe9c39bc8) )
- ROM_LOAD16_BYTE( "spotv2.5h", 0x80000, 0x10000, CRC(809d0f5c) SHA1(d1bae86090db8e5cc066afb76203704e7d217fde) )
- ROM_LOAD16_BYTE( "spotv2.5l", 0x80001, 0x10000, CRC(b86d8153) SHA1(42a564fa608e806d04052e67263afc4a5a417d40) )
- ROM_LOAD16_BYTE( "spotv2.6h", 0xa0000, 0x10000, CRC(8c221a34) SHA1(8f246bbcb79f5e508932d776fbfa648392f7f78d) )
- ROM_LOAD16_BYTE( "spotv2.6l", 0xa0001, 0x10000, CRC(821fa69a) SHA1(f037853be96158b8a6dd5f34e15ddfc16b6410c3) )
- ROM_LOAD16_BYTE( "spotv2.7h", 0xc0000, 0x10000, CRC(054355db) SHA1(6f4a46230b6dfd4727816737c31bce9483d3a3f7) )
- ROM_LOAD16_BYTE( "spotv2.7l", 0xc0001, 0x10000, CRC(30d396d8) SHA1(2a56727554a823f56b37b9e8d324e9f53524eb02) )
- ROM_LOAD16_BYTE( "spotv2.8h", 0xe0000, 0x10000, CRC(94dbb239) SHA1(0c475c8e102cc835d01e3de4604c1323219048f1) )
- ROM_LOAD16_BYTE( "spotv2.8l", 0xe0001, 0x10000, CRC(4d7f8f05) SHA1(04690717cec5912cd12ccb7135614842f5597898) )
-ROM_END
-
-
-/* SPRG */
-ROM_START( ar_sprg )
- ARCADIA_BIOS
-
- ROM_REGION16_BE( 0x180000, "user3", ROMREGION_ERASEFF )
- ROM_LOAD16_BYTE( "sprg_1h.bin", 0x00000, 0x10000, CRC(90b45dc5) SHA1(7cf1fc27e95bf207ed94cc5c20cf0c0ae7799d83) )
- ROM_LOAD16_BYTE( "sprg_1l.bin", 0x00001, 0x10000, CRC(e5ce68e9) SHA1(dfda2e0bffc499a497865bc214450653880eccf2) )
- ROM_LOAD16_BYTE( "sprg_2h.bin", 0x20000, 0x10000, CRC(02ef780f) SHA1(d21d6e8a379a2b38de7f3ec0540f67dd6425cbc9) )
- ROM_LOAD16_BYTE( "sprg_2l.bin", 0x20001, 0x10000, CRC(fa1f5b23) SHA1(4f808d8ee9cd672061995d0bfab65851bf1c01d3) )
- ROM_LOAD16_BYTE( "sprg_3h.bin", 0x40000, 0x10000, CRC(48130e6e) SHA1(479555c4a5c041c04135f01fbdd5c5f78f4422cf) )
- ROM_LOAD16_BYTE( "sprg_3l.bin", 0x40001, 0x10000, CRC(4b968cc6) SHA1(fbf3bcb5803dbe75e5a9bcde39c98c9c30bd1699) )
- ROM_LOAD16_BYTE( "sprg_4h.bin", 0x60000, 0x10000, CRC(23c8f667) SHA1(da75def3a34f6e7d48f2c6cefff608348c09cf70) )
- ROM_LOAD16_BYTE( "sprg_4l.bin", 0x60001, 0x10000, CRC(13ba011f) SHA1(75da2fbbfe2e957992b2a73609737d777fe9a151) )
-ROM_END
-
-
-/* XEON V 2.3 */
-ROM_START( ar_xeon )
- ARCADIA_BIOS
-
- ROM_REGION16_BE( 0x180000, "user3", ROMREGION_ERASEFF )
- ROM_LOAD16_BYTE( "xeon_1h.bin", 0x00000, 0x10000, CRC(ca422811) SHA1(fa6f82e1d91b48d58b61f916d5b04dc1a13774fb) )
- ROM_LOAD16_BYTE( "xeon_1l.bin", 0x00001, 0x10000, CRC(97edf967) SHA1(57fca524e01ba21f7420472f14aaf3fa63a326fa) )
- ROM_LOAD16_BYTE( "xeon_2h.bin", 0x20000, 0x10000, CRC(8078c10e) SHA1(599995374b23da7187556e2f4f285b60d818f885) )
- ROM_LOAD16_BYTE( "xeon_2l.bin", 0x20001, 0x10000, CRC(a8845d8f) SHA1(2d54dc25af68c46bbbdf8f9ed8014ae7d8564e09) )
- ROM_LOAD16_BYTE( "xeon_3h.bin", 0x40000, 0x10000, CRC(9d013152) SHA1(7a3bec56d564efbca9721d308b3eddc76763ec41) )
- ROM_LOAD16_BYTE( "xeon_3l.bin", 0x40001, 0x10000, CRC(331b1449) SHA1(0e282d04b2c7e68051e5ea1671737b11dfb71521) )
- ROM_LOAD16_BYTE( "xeon_4h.bin", 0x60000, 0x10000, CRC(fbf43d5c) SHA1(6d335b7b1d3b75887526cb8ea3518661b5554774) )
- ROM_LOAD16_BYTE( "xeon_4l.bin", 0x60001, 0x10000, CRC(47b60bf5) SHA1(10d8addc090ad3fa2663c40e22f736ac3522b177) )
-ROM_END
-
-
-ROM_START( ar_blast )
- ARCADIA_BIOS
-
- ROM_REGION16_BE( 0x180000, "user3", ROMREGION_ERASEFF )
- ROM_LOAD16_BYTE( "blsb-v2-1_1-hi.bin", 0x00000, 0x10000, CRC(6d2e38e5) SHA1(ef9b9ae7644b10892b09f15a3e916c3f51cbbe06) )
- ROM_LOAD16_BYTE( "blsb-v2-1_1-lo.bin", 0x00001, 0x10000, CRC(28b6db63) SHA1(09c4998f021ae7e25ec4a4009e6c8177fb6649c8) )
- ROM_LOAD16_BYTE( "blsb-v2-1_2-hi.bin", 0x20000, 0x10000, CRC(8b3c629c) SHA1(34872cd6cf5627517f43c7174f2b263bb1cf33ef) )
- ROM_LOAD16_BYTE( "blsb-v2-1_2-lo.bin", 0x20001, 0x10000, CRC(966c733c) SHA1(32d711fdea43d9c61532b71627afa5e518d3fb11) )
- ROM_LOAD16_BYTE( "blsb-v2-1_3-hi.bin", 0x40000, 0x10000, CRC(6013b0d2) SHA1(88b2adb76a60d8160673a3abfe97a4f3f97c1825) )
- ROM_LOAD16_BYTE( "blsb-v2-1_3-lo.bin", 0x40001, 0x10000, CRC(8c5d602d) SHA1(17f7fb2727210286f85d0b356411ee5302f59bef) )
- ROM_LOAD16_BYTE( "blsb-v2-1_4-hi.bin", 0x60000, 0x10000, CRC(cc091362) SHA1(2a3e945a17bd8b7b70b3a7efb00d62a37f0ececa) )
- ROM_LOAD16_BYTE( "blsb-v2-1_4-lo.bin", 0x60001, 0x10000, CRC(16b7618a) SHA1(9857255eb47aff683893d6fe1bdf64a2ea2492a7) )
-ROM_END
-
-ROM_START( ar_pm )
- ARCADIA_BIOS
-
- ROM_REGION16_BE( 0x180000, "user3", ROMREGION_ERASEFF )
- ROM_LOAD16_BYTE( "pm-1hi.bin", 0x00000, 0x10000, CRC(ed65f3db) SHA1(71022cd9f379e9511e472aa1cc60d9629dfb69d5) )
- ROM_LOAD16_BYTE( "pm-1lo.bin", 0x00001, 0x10000, CRC(7189a482) SHA1(d2daba2f3ce7991b0a6f4f5fbda44e1c95554cfc) )
- ROM_LOAD16_BYTE( "pm-2hi.bin", 0x20000, 0x10000, CRC(a33fd701) SHA1(9101c2bedefc7f480adf02542d335fadc28ba7bc) )
- ROM_LOAD16_BYTE( "pm-2lo.bin", 0x20001, 0x10000, CRC(17dee8b9) SHA1(695c53c3317f8b82414101404950fe6b7f93912a) )
-ROM_END
-
-ROM_START( ar_dlta )
- ARCADIA_BIOS
-
- ROM_REGION16_BE( 0x180000, "user3", ROMREGION_ERASEFF )
- ROM_LOAD16_BYTE( "dlta_v3_1-hi.bin", 0x00000, 0x10000, CRC(3d428b49) SHA1(a1b1173a2128115768634b23392f1536ffcb6f51) )
- ROM_LOAD16_BYTE( "dlta_v3_1-lo.bin", 0x00001, 0x10000, CRC(e5d6508b) SHA1(f0d54f2b8c3f0752a77a33267c1c2333fcf6ecae) )
- ROM_LOAD16_BYTE( "dlta_v3_2-hi.bin", 0x20000, 0x10000, CRC(e8a23dfe) SHA1(5d60162da160a6121d11d36a45c92f75ba5002d5) )
- ROM_LOAD16_BYTE( "dlta_v3_2-lo.bin", 0x20001, 0x10000, CRC(84d82a8f) SHA1(851961e41796fc97af8f98214bd87d306db3b3d3) )
- ROM_LOAD16_BYTE( "dlta_v3_3-hi.bin", 0x40000, 0x10000, CRC(75563b80) SHA1(ff35376c1db36b3e635f698190679697f3dc44cc) )
- ROM_LOAD16_BYTE( "dlta_v3_3-lo.bin", 0x40001, 0x10000, CRC(30b911b2) SHA1(68f116d8d041aa482b9b578ba57dbd3fd2afe5b9) )
- ROM_LOAD16_BYTE( "dlta_v3_4-hi.bin", 0x60000, 0x10000, CRC(80cd42a5) SHA1(67a7cba3778de9205ba9c31b533404e3afef8798) )
- ROM_LOAD16_BYTE( "dlta_v3_4-lo.bin", 0x60001, 0x10000, CRC(2fe13d9e) SHA1(3240719383df436ba66111a2b4fe93a3b474d7a8) )
- ROM_LOAD16_BYTE( "dlta_v3_5-hi.bin", 0x80000, 0x10000, CRC(960c9a17) SHA1(66b82b2f96ea473f20c306252c51370e3bd93754) )
- ROM_LOAD16_BYTE( "dlta_v3_5-lo.bin", 0x80001, 0x10000, CRC(79cbc0dd) SHA1(11cd144e0f30feac1ecb8abc006e428eda71c63c) )
- ROM_LOAD16_BYTE( "dlta_v3_6-hi.bin", 0xa0000, 0x10000, CRC(9df96431) SHA1(4d68ee592d4de1fc112a4579785d17443d8a0cfd) )
- ROM_LOAD16_BYTE( "dlta_v3_6-lo.bin", 0xa0001, 0x10000, CRC(5b0d7f30) SHA1(e4ca74de30c325a18204446c3e547ca728402e74) )
- ROM_LOAD16_BYTE( "dlta_v3_7-hi.bin", 0xc0000, 0x10000, CRC(8e966e69) SHA1(f0935710ad031c69b2aa758d3c78331838ac3f3d) )
- ROM_LOAD16_BYTE( "dlta_v3_7-lo.bin", 0xc0001, 0x10000, CRC(42553743) SHA1(4df836b6cff80bde737a52a3ea45eb1bda14fa52) )
- ROM_LOAD16_BYTE( "dlta_v3_8-hi.bin", 0xe0000, 0x10000, CRC(9ef08c31) SHA1(837d8b49e23e4ad493a1a167f477f5aeea48544a) )
- ROM_LOAD16_BYTE( "dlta_v3_8-lo.bin", 0xe0001, 0x10000, CRC(7088bb88) SHA1(c57ea00c87252060a10660555f140ed2ace29b53) )
-ROM_END
-
-
-ROM_START( ar_argh ) // this plugs directly into the a500 motherboard, no arcadia bios, just the a500 kickstart and game ROMs
- ROM_REGION16_BE(0x80000, "kickstart", 0 )
- ROM_LOAD16_WORD("315093-01.u2", 0x00000, 0x40000, CRC(a6ce1636) SHA1(11f9e62cf299f72184835b7b2a70a16333fc0d88))
- ROM_COPY("kickstart", 0x00000, 0x40000, 0x40000 )
-
- ROM_REGION16_BE( 0x180000, "user3", ROMREGION_ERASEFF )
- ROM_LOAD16_BYTE( "argh-1-hi-11-28-87.u12", 0x000000, 0x10000, CRC(3b1f8075) SHA1(61aeff9f6a2dff6efe4276cb0bcbb80b495e26b6) )
- ROM_LOAD16_BYTE( "argh-1-lo-11-28-87.u16", 0x000001, 0x10000, CRC(78b77071) SHA1(5848e30cfd08f9241f8ff9267fdcf2c87c72cdb0) )
- ROM_LOAD16_BYTE( "argh-2-hi-11-28-87.u11", 0x020000, 0x10000, CRC(9604e1e9) SHA1(03c010fc7075db953b47282ce54097c4921e3560) )
- ROM_LOAD16_BYTE( "argh-2-lo-11-28-87.u15", 0x020001, 0x10000, CRC(0c7c8133) SHA1(cd8013fa7c2d1c3a518c3e26e5b10c6c78b2a8ee) )
- ROM_LOAD16_BYTE( "argh-3-hi-11-28-87.u10", 0x040000, 0x10000, CRC(84d60a2c) SHA1(7284db16642bd598390d63408113a0e9622f0b3d) )
- ROM_LOAD16_BYTE( "argh-3-lo-11-28-87.u14", 0x040001, 0x10000, CRC(f43a6107) SHA1(2075739d7cbd8565df7a0333c1a16838df9aa97c) )
- ROM_LOAD16_BYTE( "argh-4-hi-11-28-87.u9", 0x060000, 0x10000, CRC(7d9d514d) SHA1(a77a4db1ab0ae41e75fe334fcb1c16bb7627fa6d) )
- ROM_LOAD16_BYTE( "argh-4-lo-11-28-87.u13", 0x060001, 0x10000, CRC(da797e5c) SHA1(59f000fa43f80d7730e8a5ca3f13571ff150ead2) )
- ROM_LOAD16_BYTE( "argh-5-hi-11-28-87.u20", 0x080000, 0x10000, CRC(75a395c5) SHA1(3064028b78025bc3d9f96884d155f449ef285be9) )
- ROM_LOAD16_BYTE( "argh-5-lo-11-28-87.u24", 0x080001, 0x10000, CRC(b69db0ed) SHA1(b47b46e0a69ba40c8b59864469b9836ff7a9b3fb) )
- ROM_LOAD16_BYTE( "argh-6-hi-11-28-87.u19", 0x0a0000, 0x10000, CRC(f06ee4d5) SHA1(2555c97666ff319089d4e767b99718d21ab43f7d) )
- ROM_LOAD16_BYTE( "argh-6-lo-11-28-87.u23", 0x0a0001, 0x10000, CRC(9d49526a) SHA1(604731ebdeb6961d6faccc44dc7c762275bc7b3e) )
- ROM_LOAD16_BYTE( "argh-7-hi-11-28-87.u18", 0x0c0000, 0x10000, CRC(2fda9f36) SHA1(26431fad4aeaa068fa15de9803e818b93547edd6) )
- ROM_LOAD16_BYTE( "argh-7-lo-11-28-87.u22", 0x0c0001, 0x10000, CRC(ad6f16d4) SHA1(91fb41db567eeccc0088ba3530049921d19f2df2) )
- ROM_LOAD16_BYTE( "argh-8-hi-11-28-87.u17", 0x0e0000, 0x10000, CRC(06be1705) SHA1(dbbd0471a82075775279ef149862379211dead17) )
- ROM_LOAD16_BYTE( "argh-8-lo-11-28-87.u21", 0x0e0001, 0x10000, CRC(48f7bed1) SHA1(9864de95f0ad73ec5982b37d35d3fc9776bb18fa) )
- ROM_LOAD16_BYTE( "argh-9-hi-11-28-87.u28", 0x100000, 0x10000, CRC(f6ef5a54) SHA1(db8df6dd29392154fba65de73a641321baecba3c) )
- ROM_LOAD16_BYTE( "argh-9-lo-11-28-87.u32", 0x100001, 0x10000, CRC(209fc834) SHA1(d190b84eb18ea6d9aee4279b63e7fe6029e173a9) )
- ROM_LOAD16_BYTE( "argh-10-hi-11-28-87.u27", 0x120000, 0x10000, CRC(e75c9ac1) SHA1(5f1678e6946beaeb2e79853a2416d8565a84a815) )
- ROM_LOAD16_BYTE( "argh-10-lo-11-28-87.u31", 0x120001, 0x10000, CRC(dc4da335) SHA1(449c1de89cb6ea6296196051bef5470765872285) )
- ROM_LOAD16_BYTE( "argh-11-hi-11-28-87.u26", 0x140000, 0x10000, CRC(2932054f) SHA1(f03e71170bd24719c26427c3fbf4fdf1363bc64f) )
- ROM_LOAD16_BYTE( "argh-11-lo-11-28-87.u30", 0x140001, 0x10000, CRC(3ebf8c30) SHA1(b2018b55cf2339fcf67b338fa2804afa2e47d577) )
- ROM_LOAD16_BYTE( "argh-12-hi-11-28-87.u25", 0x160000, 0x10000, CRC(0e055d4a) SHA1(8993596018e90107623e04c24e91b02887d6252c) )
- ROM_LOAD16_BYTE( "argh-12-lo-11-28-87.u29", 0x160001, 0x10000, CRC(940168b0) SHA1(7f86226d533a5d5a84fbcaeea5c4ac08e0e7df09) )
-ROM_END
-
-/*************************************
- *
- * Low byte ROM decoding
- *
- *************************************/
-
-void arcadia_amiga_state::generic_decode(const char *tag, int bit7, int bit6, int bit5, int bit4, int bit3, int bit2, int bit1, int bit0)
-{
- UINT16 *rom = (UINT16 *)memregion(tag)->base();
- int i;
+ROM_START(hanihac)
+ ROM_REGION(0x8000,"maincpu", ROMREGION_ERASEFF)
+ ROM_REGION(0x100,"gfx1", ROMREGION_ERASEFF)
+ROM_END
- /* only the low byte of ROMs are encrypted in these games */
- for (i = 0; i < 0x20000/2; i++)
- rom[i] = BITSWAP16(rom[i], 15,14,13,12,11,10,9,8, bit7,bit6,bit5,bit4,bit3,bit2,bit1,bit0);
+ROM_START(hmg2650)
+ ROM_REGION(0x8000,"maincpu", ROMREGION_ERASEFF)
+ ROM_REGION(0x100,"gfx1", ROMREGION_ERASEFF)
+ROM_END
- #if 0
- {
- UINT8 *ROM = memregion(tag)->base();
- // int size = memregion(tag)->bytes();
-
- FILE *fp;
- char filename[256];
- sprintf(filename,"decrypted_%s", machine().system().name);
- fp=fopen(filename, "w+b");
- if (fp)
- {
- for (i = 0; i < 0x20000; i++)
- fwrite(&ROM[i*2], 1, 1, fp);
+ROM_START(intmpt03)
+ ROM_REGION(0x8000,"maincpu", ROMREGION_ERASEFF)
+ ROM_REGION(0x100,"gfx1", ROMREGION_ERASEFF)
+ROM_END
- fclose(fp);
- }
- }
- #endif
-}
+ROM_START(ixl2000)
+ ROM_REGION(0x8000,"maincpu", ROMREGION_ERASEFF)
+ ROM_REGION(0x100,"gfx1", ROMREGION_ERASEFF)
+ROM_END
+ROM_START(intervsn)
+ ROM_REGION(0x8000,"maincpu", ROMREGION_ERASEFF)
+ ROM_REGION(0x100,"gfx1", ROMREGION_ERASEFF)
+ROM_END
+ROM_START(itmcmtp3)
+ ROM_REGION(0x8000,"maincpu", ROMREGION_ERASEFF)
+ ROM_REGION(0x100,"gfx1", ROMREGION_ERASEFF)
+ROM_END
-/*************************************
- *
- * Generic driver init
- *
- *************************************/
+ROM_START(lvision)
+ ROM_REGION(0x8000,"maincpu", ROMREGION_ERASEFF)
+ ROM_REGION(0x100,"gfx1", ROMREGION_ERASEFF)
+ROM_END
-DRIVER_INIT_MEMBER( arcadia_amiga_state, arcadia )
-{
- m_agnus_id = AGNUS_HR_NTSC;
- m_denise_id = DENISE;
+ROM_START(leonardo)
+ ROM_REGION(0x8000,"maincpu", ROMREGION_ERASEFF)
+ ROM_REGION(0x100,"gfx1", ROMREGION_ERASEFF)
+ROM_END
- /* OnePlay bios is encrypted, TenPlay is not */
- UINT16 *biosrom = (UINT16 *)memregion("user2")->base();
+ROM_START(mratlus)
+ ROM_REGION(0x8000,"maincpu", ROMREGION_ERASEFF)
+ ROM_REGION(0x100,"gfx1", ROMREGION_ERASEFF)
+ROM_END
- if (biosrom)
- if (biosrom[0] != 0x4afc)
- generic_decode("user2", 6, 1, 0, 2, 3, 4, 5, 7);
-}
+ROM_START(ormatu)
+ ROM_REGION(0x8000,"maincpu", ROMREGION_ERASEFF)
+ ROM_REGION(0x100,"gfx1", ROMREGION_ERASEFF)
+ROM_END
+ROM_START(plldium)
+ ROM_REGION(0x8000,"maincpu", ROMREGION_ERASEFF)
+ ROM_REGION(0x100,"gfx1", ROMREGION_ERASEFF)
+ROM_END
+ROM_START(polyvcg)
+ ROM_REGION(0x8000,"maincpu", ROMREGION_ERASEFF)
+ ROM_REGION(0x100,"gfx1", ROMREGION_ERASEFF)
+ROM_END
+ROM_START(poppympt)
+ ROM_REGION(0x8000,"maincpu", ROMREGION_ERASEFF)
+ ROM_REGION(0x100,"gfx1", ROMREGION_ERASEFF)
+ROM_END
-/*************************************
- *
- * Per-game decryption
- *
- *************************************/
+ROM_START(prestmpt)
+ ROM_REGION(0x8000,"maincpu", ROMREGION_ERASEFF)
+ ROM_REGION(0x100,"gfx1", ROMREGION_ERASEFF)
+ROM_END
-DRIVER_INIT_MEMBER(arcadia_amiga_state,airh) { DRIVER_INIT_CALL(arcadia); generic_decode("user3", 5, 0, 2, 4, 7, 6, 1, 3); }
-DRIVER_INIT_MEMBER(arcadia_amiga_state,bowl) { DRIVER_INIT_CALL(arcadia); generic_decode("user3", 7, 6, 0, 1, 2, 3, 4, 5); }
-DRIVER_INIT_MEMBER(arcadia_amiga_state,blast){ DRIVER_INIT_CALL(arcadia); generic_decode("user3", 4, 1, 7, 6, 2, 0, 3, 5); }
-DRIVER_INIT_MEMBER(arcadia_amiga_state,dart) { DRIVER_INIT_CALL(arcadia); generic_decode("user3", 4, 0, 7, 6, 3, 1, 2, 5); }
-DRIVER_INIT_MEMBER(arcadia_amiga_state,ldrb) { DRIVER_INIT_CALL(arcadia); generic_decode("user3", 2, 3, 4, 1, 0, 7, 5, 6); }
-DRIVER_INIT_MEMBER(arcadia_amiga_state,ninj) { DRIVER_INIT_CALL(arcadia); generic_decode("user3", 1, 6, 5, 7, 4, 2, 0, 3); }
-DRIVER_INIT_MEMBER(arcadia_amiga_state,rdwr) { DRIVER_INIT_CALL(arcadia); generic_decode("user3", 3, 1, 6, 4, 0, 5, 2, 7); }
-DRIVER_INIT_MEMBER(arcadia_amiga_state,sdwr) { DRIVER_INIT_CALL(arcadia); generic_decode("user3", 6, 3, 4, 5, 2, 1, 0, 7); }
-DRIVER_INIT_MEMBER(arcadia_amiga_state,socc) { DRIVER_INIT_CALL(arcadia); generic_decode("user3", 0, 7, 1, 6, 5, 4, 3, 2); }
-DRIVER_INIT_MEMBER(arcadia_amiga_state,sprg) { DRIVER_INIT_CALL(arcadia); generic_decode("user3", 4, 7, 3, 0, 6, 5, 2, 1); }
-DRIVER_INIT_MEMBER(arcadia_amiga_state,xeon) { DRIVER_INIT_CALL(arcadia); generic_decode("user3", 3, 1, 2, 4, 0, 5, 6, 7); }
-DRIVER_INIT_MEMBER(arcadia_amiga_state,pm) { DRIVER_INIT_CALL(arcadia); generic_decode("user3", 7, 6, 5, 4, 3, 2, 1, 0); } // no scramble
-DRIVER_INIT_MEMBER(arcadia_amiga_state,dlta) { DRIVER_INIT_CALL(arcadia); generic_decode("user3", 4, 1, 7, 6, 2, 0, 3, 5); }
-DRIVER_INIT_MEMBER(arcadia_amiga_state,argh) { DRIVER_INIT_CALL(arcadia); generic_decode("user3", 5, 0, 2, 4, 7, 6, 1, 3); }
+ROM_START(rowtrn2k)
+ ROM_REGION(0x8000,"maincpu", ROMREGION_ERASEFF)
+ ROM_REGION(0x100,"gfx1", ROMREGION_ERASEFF)
+ROM_END
+ROM_START(tvg2000)
+ ROM_REGION(0x8000,"maincpu", ROMREGION_ERASEFF)
+ ROM_REGION(0x100,"gfx1", ROMREGION_ERASEFF)
+ROM_END
-/*************************************
- *
- * Game drivers
- *
- *************************************/
+ROM_START(sheenhvc)
+ ROM_REGION(0x8000,"maincpu", ROMREGION_ERASEFF)
+ ROM_REGION(0x100,"gfx1", ROMREGION_ERASEFF)
+ROM_END
-/* BIOS */
-GAME( 1988, ar_bios, 0, arcadia, arcadia, arcadia_amiga_state, arcadia, ROT0, "Arcadia Systems", "Arcadia System BIOS", GAME_IS_BIOS_ROOT )
+ROM_START(soundic)
+ ROM_REGION(0x8000,"maincpu", ROMREGION_ERASEFF)
+ ROM_REGION(0x100,"gfx1", ROMREGION_ERASEFF)
+ROM_END
-GAME( 1988, ar_blast, ar_bios, arcadia, arcadia, arcadia_amiga_state, blast, ROT0, "Arcadia Systems", "Blastaball (Arcadia, V 2.1)", 0 )
+ROM_START(telefevr)
+ ROM_REGION(0x8000,"maincpu", ROMREGION_ERASEFF)
+ ROM_REGION(0x100,"gfx1", ROMREGION_ERASEFF)
+ROM_END
-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 )
+ROM_START(tempestm)
+ ROM_REGION(0x8000,"maincpu", ROMREGION_ERASEFF)
+ ROM_REGION(0x100,"gfx1", ROMREGION_ERASEFF)
+ROM_END
-GAME( 1988, ar_bowl, ar_bios, arcadia, arcadia, arcadia_amiga_state, bowl, ROT0, "Arcadia Systems", "SportTime Bowling (Arcadia, V 2.1)", 0 )
+ROM_START(tbbympt3)
+ ROM_REGION(0x8000,"maincpu", ROMREGION_ERASEFF)
+ ROM_REGION(0x100,"gfx1", ROMREGION_ERASEFF)
+ROM_END
-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)", GAME_NOT_WORKING ) // bad dump
+ROM_START(trakcvg)
+ ROM_REGION(0x8000,"maincpu", ROMREGION_ERASEFF)
+ ROM_REGION(0x100,"gfx1", ROMREGION_ERASEFF)
+ROM_END
-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 )
+ROM_START(tunixha)
+ ROM_REGION(0x8000,"maincpu", ROMREGION_ERASEFF)
+ ROM_REGION(0x100,"gfx1", ROMREGION_ERASEFF)
+ROM_END
-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 )
+ROM_START(tryomvgc)
+ ROM_REGION(0x8000,"maincpu", ROMREGION_ERASEFF)
+ ROM_REGION(0x100,"gfx1", ROMREGION_ERASEFF)
+ROM_END
-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 )
+ROM_START(orbituvi)
+ ROM_REGION(0x8000,"maincpu", ROMREGION_ERASEFF)
+ ROM_REGION(0x100,"gfx1", ROMREGION_ERASEFF)
+ROM_END
-GAME( 1988, ar_rdwr, ar_bios, arcadia, arcadia, arcadia_amiga_state, rdwr, ROT0, "Arcadia Systems", "RoadWars (Arcadia, V 2.3)", 0 )
+ROM_START(vdmaster)
+ ROM_REGION(0x8000,"maincpu", ROMREGION_ERASEFF)
+ ROM_REGION(0x100,"gfx1", ROMREGION_ERASEFF)
+ROM_END
-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( 1990, ar_spot, ar_bios, arcadia, arcadia, arcadia_amiga_state, arcadia, ROT0, "Arcadia Systems", "Spot (Arcadia, V 2.0)", 0 )
+ Game driver(s)
-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 )
+DRIVER_INIT_MEMBER(arcadia_state,arcadia)
+{
+ int i;
+ UINT8 *gfx=memregion("gfx1")->base();
+ for (i=0; i<256; i++) gfx[i]=i;
+#if 0
+ // this is here to allow developement of some simple testroutines
+ // for a real console
+ {
+ UINT8 *rom=memregion("maincpu")->base();
+ /* this is a simple routine to display all rom characters
+ on the display for a snapshot */
+ static const UINT8 prog[]={ // address 0 of course
+ 0x20, // eorz, 0
+ 0x1b, 0x01, // bctr,a $0004
+ 0x17, // retc a
+ 0x76, 0x20, // ppsu ii
+
+ // fill screen
+ 0x04, 0x00, // lodi,0 0
+ 0x04|1, 0x00, // lodi,1 0
+ 0xcc|1, 0x78, 0x10, //a: stra,0 $1800,r1
+ 0x75,9, //cpsl wc|c
+ 0x84,0x41, // addi,0 0x41
+ 0x75,9, //cpsl wc|c
+ 0x84|1, 0x01, // addi,1 1
+ 0xe4|1, 0x40, // comi,1 40
+ 0x98, 0x80-15, // bcfr,0 a
+
+ 0x04, 0xff, // lodi,0 7
+ 0xcc, 0x18, 0xfc, // stra,0 $19f8
+ 0x04, 0x00, // lodi,0 7
+ 0xcc, 0x18, 0xfd, // stra,0 $18fd
+ 0x04, 0x07, // lodi,0 7
+ 0xcc, 0x19, 0xf9, // stra,0 $19f9
+
+ 0x04, 0x00, // lodi,0 7
+ 0xcc, 0x19, 0xbe, // stra,0 $19bf
+ 0x04, 0x00, // lodi,0 7
+ 0xcc, 0x19, 0xbf, // stra,0 $19bf
+
+ //loop: 0x0021
+ // print keyboards
+ 0x04|1, 0x00, //y:lodi,1 0
+ 0x0c|1, 0x79, 0x00, //x: ldra,0 1900,r1
+ 0x44|0, 0x0f, //andi,0 0f
+ 0x64|0, 0x10, //ori,0 10
+ 0xcc|1, 0x78, 0x01, //stra,0 1840,r1
+ 0x75,9, //cpsl wc|c
+ 0x84|1, 0x01, //addi,1 1
+ 0xe4|1, 0x09, //comi,1 9
+ 0x98, 0x80-18, //bcfr,0 x
+
+ // cycle colors
+ 0x0c|1, 0x19, 0x00, //ldra,1 1900
+ 0x44|1, 0xf, //andi,0 0f
+ 0xe4|1, 1, //comi,1 1
+ 0x98, +10, //bcfr,0 c
+ 0x0c, 0x19, 0xbf,//ldra,0 19f9,0
+ 0x84, 1, //addi,0 1
+ 0xcc, 0x19, 0xbf, //stra,0 19f9,0
+ 0x18|3, 12, // bctr,a
+ 0xe4|1, 2, //c:comi,1 2
+ 0x98, +10, //bcfr,0 d
+ 0x0c, 0x19, 0xbf, //ldra,0 19f9,0
+ 0x84, 8, //addi,0 8
+ 0xcc, 0x19, 0xbf, //stra,0 19f9,0
+ 0x18|3, 12, // bctr,a
+
+ // cycle colors
+ 0xe4|1, 4, //comi,1 4
+ 0x98, +10, //bcfr,0 c
+ 0x0c, 0x19, 0xbe,//ldra,0 19f9,0
+ 0x84, 1, //addi,0 1
+ 0xcc, 0x19, 0xbe, //stra,0 19f9,0
+ 0x18|3, 12, // bctr,a
+ 0xe4|1, 8, //c:comi,1 2
+ 0x98, +8+9, //bcfr,0 d
+ 0x0c, 0x19, 0xbe, //ldra,0 19f9,0
+ 0x84, 8, //addi,0 8
+ 0xcc, 0x19, 0xbe, //stra,0 19f9,0
+
+ 0x0c, 0x19, 0x00, //b: ldra,0 1900
+ 0x44|0, 0xf, //andi,0 0f
+ 0xe4, 0, //comi,0 0
+ 0x98, 0x80-9, //bcfr,0 b
+
+ 0x0c, 0x19, 0xbe, //ldra,0 19bf
+ 0xcc, 0x19, 0xf8, //stra,0 19f8
+ 0x0c, 0x19, 0xbf, //ldra,0 19bf
+ 0xcc, 0x19, 0xf9, //stra,0 19f8
+
+ 0x0c, 0x19, 0xbe, //ldra,0 17ff
+ 0x44|0, 0xf, //andi,0 7
+ 0x64|0, 0x10, //ori,0 10
+ 0xcc, 0x18, 0x0d, //stra,0 180f
+ 0x0c, 0x19, 0xbe, //x: ldra,0 19bf
+ 0x50, 0x50, 0x50, 0x50, //shr,0 4
+ 0x44|0, 0xf, //andi,0 7
+ 0x64|0, 0x10, //ori,0 10
+ 0xcc, 0x18, 0x0c, //stra,0 180e
+
+ 0x0c, 0x19, 0xbf, //ldra,0 17ff
+ 0x44|0, 0xf, //andi,0 7
+ 0x64|0, 0x10, //ori,0 10
+ 0xcc, 0x18, 0x0f, //stra,0 180f
+ 0x0c, 0x19, 0xbf, //x: ldra,0 19bf
+ 0x50, 0x50, 0x50, 0x50, //shr,0 4
+ 0x44|0, 0xf, //andi,0 7
+ 0x64|0, 0x10, //ori,0 10
+ 0xcc, 0x18, 0x0e, //stra,0 180e
+
+ 0x0c, 0x18, 0x00, //ldra,0 1800
+ 0x84, 1, //addi,0 1
+ 0xcc, 0x18, 0x00, //stra,0 1800
+
+// 0x1b, 0x80-20-29-26-9-8-2 // bctr,a y
+ 0x1c|3, 0, 0x32, // bcta,3 loop
+
+ // calling too many subdirectories causes cpu to reset!
+ // bxa causes trap
+ };
+#if 1
+ FILE *f;
+ f=fopen("chartest.bin","wb");
+ fwrite(prog, ARRAY_LENGTH(prog), sizeof(prog[0]), f);
+ fclose(f);
+#endif
+ for (i=0; i<ARRAY_LENGTH(prog); i++) rom[i]=prog[i];
-GAME( 1988, ar_pm, ar_bios, arcadia, arcadia, arcadia_amiga_state, pm, ROT0, "Arcadia Systems", "Pharaohs Match (Arcadia)", 0 )
+ }
+#endif
+}
-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 )
+/* YEAR NAME PARENT COMPAT MACHINE INPUT 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. */
+CONS(198?, tccosmos, arcadia, 0, arcadia, arcadia, arcadia_state, arcadia, "Mobilar?", "Tele-Computer Cosmos", MACHINE_IMPERFECT_SOUND ) /* Spain? I have only found pictures of a German Cosmos ( http://www.pong-picture-page.de/catalog/product_info.php?products_id=2170 ) */
+CONS(1982, dynavisn, intmpt03, 0, arcadia, arcadia, arcadia_state, arcadia, "Yamagiwa", "Dynavision", MACHINE_IMPERFECT_SOUND ) /* Japan */
+CONS(1982, ekusera, intmpt03, 0, arcadia, arcadia, arcadia_state, arcadia, "P.I.C", "Ekusera", MACHINE_IMPERFECT_SOUND ) /* Japan */
+CONS(1982, hanihac, arcadia, 0, arcadia, arcadia, arcadia_state, arcadia, "Hanimex", "Hanimex Home Arcade Centre", MACHINE_IMPERFECT_SOUND ) /* UK */
+CONS(1982, hmg2650, arcadia, 0, arcadia, arcadia, arcadia_state, arcadia, "Hanimex", "HMG-2650", MACHINE_IMPERFECT_SOUND ) /* Germany */
+CONS(198?, intmpt03, 0, arcadia, arcadia, arcadia, arcadia_state, arcadia, "Intelligent Game", "Intelligent Game MPT-03", MACHINE_IMPERFECT_SOUND ) /* U.S.A */
+CONS(198?, ixl2000, arcadia, 0, arcadia, arcadia, arcadia_state, arcadia, "Intercord", "Intercord XL 2000 System", MACHINE_IMPERFECT_SOUND ) /* Germany */
+CONS(198?, intervsn, ormatu, 0, arcadia, arcadia, arcadia_state, arcadia, "Intervision", "Intervision 2001", MACHINE_IMPERFECT_SOUND ) /* Switzerland */
+CONS(198?, itmcmtp3, intmpt03, 0, arcadia, arcadia, arcadia_state, arcadia, "ITMC", "ITMC MPT-03", MACHINE_IMPERFECT_SOUND ) /* France */
+CONS(1982, lvision, arcadia, 0, arcadia, arcadia, arcadia_state, arcadia, "Leisure-Dynamics", "Leisure-Vision", MACHINE_IMPERFECT_SOUND ) /* Canada */
+CONS(1982, leonardo, arcadia, 0, arcadia, arcadia, arcadia_state, arcadia, "GiG Electronics", "Leonardo", MACHINE_IMPERFECT_SOUND ) /* Italy */
+CONS(1983, mratlus, plldium, 0, arcadia, arcadia, arcadia_state, arcadia, "H.G.S.", "Mr. Altus Tele Brain", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* Germany */
+CONS(198?, ormatu, 0, arcadia, arcadia, arcadia, arcadia_state, arcadia, "Ormatu Electronics", "Ormatu 2001", MACHINE_IMPERFECT_SOUND ) /* Netherlands */
+CONS(198?, plldium, 0, arcadia, arcadia, plldium, arcadia_state, arcadia, "Neckermann", "Palladium Video-Computer-Game", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* Germany, 16 keys instead of 12 */
+CONS(1983, polyvcg, plldium, 0, arcadia, arcadia, arcadia_state, arcadia, "Polybrain", "Polybrain Video Computer Game", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* Germany */
+CONS(198?, poppympt, intmpt03, 0, arcadia, arcadia, arcadia_state, arcadia, "Transonic", "Poppy MPT-03 Tele Computer Spiel", MACHINE_IMPERFECT_SOUND ) /* Germany */
+CONS(198?, prestmpt, intmpt03, 0, arcadia, arcadia, arcadia_state, arcadia, "Prestige", "Prestige Video Computer Game MPT-03", MACHINE_IMPERFECT_SOUND ) /* France */
+CONS(198?, rowtrn2k, intmpt03, 0, arcadia, arcadia, arcadia_state, arcadia, "Rowtron", "Rowtron 2000", MACHINE_IMPERFECT_SOUND ) /* UK */
+CONS(1982, tvg2000, arcadia, 0, arcadia, arcadia, arcadia_state, arcadia, "Schmid", "Schmid TVG 2000", MACHINE_IMPERFECT_SOUND ) /* Germany */
+CONS(198?, sheenhvc, ormatu, 0, arcadia, arcadia, arcadia_state, arcadia, "Sheen", "Sheen Home Video Centre 2001", MACHINE_IMPERFECT_SOUND ) /* Australia */
+CONS(198?, soundic, intmpt03, 0, arcadia, arcadia, arcadia_state, arcadia, "Soundic", "Soundic MPT-03", MACHINE_IMPERFECT_SOUND ) /* Finland */
+CONS(198?, telefevr, arcadia, 0, arcadia, arcadia, arcadia_state, arcadia, "Tchibo", "Tele-Fever", MACHINE_IMPERFECT_SOUND ) /* Germany */
+CONS(198?, tempestm, intmpt03, 0, arcadia, arcadia, arcadia_state, arcadia, "Tempest", "Tempest MPT-03", MACHINE_IMPERFECT_SOUND ) /* Australia */
+CONS(198?, tbbympt3, intmpt03, 0, arcadia, arcadia, arcadia_state, arcadia, "Tobby", "Tobby MPT-03", MACHINE_IMPERFECT_SOUND ) /* ? */
+CONS(198?, trakcvg, plldium, 0, arcadia, arcadia, arcadia_state, arcadia, "Trakton", "Trakton Computer Video Game", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* Australia */
+CONS(1982, tunixha, arcadia, 0, arcadia, arcadia, arcadia_state, arcadia, "Monaco Leisure", "Tunix Home Arcade", MACHINE_IMPERFECT_SOUND ) /* New Zealand */
+CONS(198?, tryomvgc, intmpt03, 0, arcadia, arcadia, arcadia_state, arcadia, "Tryom", "Tryom Video Game Center", MACHINE_IMPERFECT_SOUND ) /* U.S.A */
+CONS(198?, orbituvi, 0, arcadia, arcadia, arcadia, arcadia_state, arcadia, "Orbit Electronics", "UVI Compu-Game", MACHINE_IMPERFECT_SOUND ) /* New Zealand */
+CONS(198?, vdmaster, orbituvi, 0, arcadia, arcadia, arcadia_state, arcadia, "Grandstand", "Video Master", MACHINE_IMPERFECT_SOUND ) /* New Zealand */
diff --git a/src/mess/drivers/argo.c b/src/mame/drivers/argo.c
index 4520b96eaa4..34ea530a86f 100644
--- a/src/mess/drivers/argo.c
+++ b/src/mame/drivers/argo.c
@@ -379,4 +379,4 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 1986, argo, 0, 0, argo, argo, argo_state, argo, "<unknown>", "Argo", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1986, argo, 0, 0, argo, argo, argo_state, argo, "<unknown>", "Argo", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/argus.c b/src/mame/drivers/argus.c
index bb4da4494d1..b6c6cf16e95 100644
--- a/src/mame/drivers/argus.c
+++ b/src/mame/drivers/argus.c
@@ -800,7 +800,7 @@ 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", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1986, valtric, 0, valtric, valtric, driver_device, 0, ROT270, "NMK (Jaleco license)", "Valtric", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1987, butasan, 0, butasan, butasan, driver_device, 0, ROT0, "NMK (Jaleco license)", "Butasan - Pig's & Bomber's (Japan, English)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1987, butasanj, butasan,butasan, butasan, driver_device, 0, ROT0, "NMK (Jaleco license)", "Butasan (Japan, Japanese)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/aristmk4.c b/src/mame/drivers/aristmk4.c
index 166e01c0be1..1e7d7b7981b 100644
--- a/src/mame/drivers/aristmk4.c
+++ b/src/mame/drivers/aristmk4.c
@@ -2359,7 +2359,7 @@ ROM_START( gunnrose ) // MK2.5
ROM_END
-GAMEL( 1985, 86lions, 0, 86lions, aristmk4, aristmk4_state, aristmk4, ROT0, "Aristocrat", "86 Lions", GAME_NOT_WORKING, layout_topgear )
+GAMEL( 1985, 86lions, 0, 86lions, aristmk4, aristmk4_state, aristmk4, ROT0, "Aristocrat", "86 Lions", MACHINE_NOT_WORKING, layout_topgear )
GAMEL( 1996, eforest, 0, aristmk4, eforest, aristmk4_state, aristmk4, ROT0, "Aristocrat", "Enchanted Forest (12XF528902, US)", 0, layout_eforest )
GAMEL( 1995, eforesta, eforest, aristmk4, aristmk4, aristmk4_state, aristmk4, ROT0, "Aristocrat", "Enchanted Forest (4VXFC818, NSW)", 0, layout_aristmk4 ) // 10c, $1 = 10 credits
GAMEL( 1996, eforestb, eforest, aristmk4, arimk4nz, aristmk4_state, aristmk4, ROT0, "Aristocrat", "Enchanted Forest (3VXFC5343, New Zealand)", 0, layout_arimk4nz ) // 5c, $2 = 40 credits
@@ -2377,7 +2377,7 @@ GAMEL( 1996, goldenc, 0, aristmk4, goldenc, aristmk4_state, aristmk4, R
GAMEL( 1999, autmoon, 0, aristmk4, arimk4nz, aristmk4_state, aristmk4, ROT0, "Aristocrat", "Autumn Moon (1VXFC5488, New Zealand)", 0, layout_arimk4nz ) // 5c, $2 = 40 credits
GAMEL( 2000, coralr2, 0, aristmk4, arimk4nz, aristmk4_state, aristmk4, ROT0, "Aristocrat", "Coral Riches II (1VXFC5472, New Zealand)", 0, layout_arimk4nz ) // 2c, $2 = 100 credits
GAMEL( 1986, gtroppo, 0, aristmk4, topgear, aristmk4_state, aristmk4, ROT0, "Ainsworth Nominees P.L.", "Gone Troppo (1VXEC542, New Zealand)", 0, layout_topgear ) // possibly 20c, 1 coin = 1 credit
-GAMEL( 1986, clkwise, 0, aristmk4, topgear, aristmk4_state, aristmk4, ROT0, "Ainsworth Nominees P.L.", "Clockwise (1VXEC534, New Zealand)", GAME_NOT_WORKING, layout_topgear ) // 20c, 1 coin = 1 credit
+GAMEL( 1986, clkwise, 0, aristmk4, topgear, aristmk4_state, aristmk4, ROT0, "Ainsworth Nominees P.L.", "Clockwise (1VXEC534, New Zealand)", MACHINE_NOT_WORKING, layout_topgear ) // 20c, 1 coin = 1 credit
GAMEL( 1986, cgold, 0, aristmk4, topgear, aristmk4_state, aristmk4, ROT0, "Ainsworth Nominees P.L.", "Caribbean Gold (3VXEC449, USA)", 0, layout_topgear ) // 25c, 1 coin = 1 credit
GAMEL( 1995, cgold2, 0, aristmk4, cgold2, aristmk4_state, aristmk4, ROT0, "Aristocrat", "Caribbean Gold II (3XF5182H04, USA)", 0, layout_cgold2 )
GAMEL( 1996, fhunter, 0, aristmk4, fhunter, aristmk4_state, aristmk4, ROT0, "Aristocrat", "Fortune Hunter (2XF5196I01, USA)", 0, layout_fhunter )
@@ -2385,4 +2385,4 @@ GAMEL( 1996, fhuntera, fhunter, aristmk4, fhunter, aristmk4_state, aristmk4, R
GAMEL( 1996, arcwins, 0, aristmk4, arcwins, aristmk4_state, aristmk4, ROT0, "Aristocrat", "Arctic Wins (4XF5227H03, USA)", 0, layout_arcwins )
GAMEL( 1997, wildone, 0, aristmk4_poker, wildone, aristmk4_state, aristmk4, ROT0, "Aristocrat", "Wild One (4VXEC5357, New Zealand)", 0, layout_wildone ) // 20c, $2 = 10 credits, video poker
GAMEL( 1986, gldnpkr, 0, aristmk4_poker, gldnpkr, aristmk4_state, aristmk4, ROT0, "Ainsworth Nominees P.L.", "Golden Poker (8VXEC037, New Zealand)", 0, layout_gldnpkr ) // possibly 20c, 1 coin = 1 credit, video poker
-GAMEL( 1993, gunnrose, 0, aristmk4_poker, wildone, aristmk4_state, aristmk4, ROT0, "Aristocrat", "Guns and Roses (C606191SMP, Australia)", GAME_WRONG_COLORS, layout_gunnrose )
+GAMEL( 1993, gunnrose, 0, aristmk4_poker, wildone, aristmk4_state, aristmk4, ROT0, "Aristocrat", "Guns and Roses (C606191SMP, Australia)", MACHINE_WRONG_COLORS, layout_gunnrose )
diff --git a/src/mame/drivers/aristmk5.c b/src/mame/drivers/aristmk5.c
index 6e2a1b7cc89..8c64c6d31ba 100644
--- a/src/mame/drivers/aristmk5.c
+++ b/src/mame/drivers/aristmk5.c
@@ -738,20 +738,20 @@ ROM_START( magicmsk )
ROM_REGION( 0x20000*4, "sram", ROMREGION_ERASE00 )
ROM_END
-GAME( 1995, aristmk5, 0, aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0, "Aristocrat", "MKV Set/Clear Chips (USA)", GAME_NOT_WORKING|GAME_IS_BIOS_ROOT )
+GAME( 1995, aristmk5, 0, aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0, "Aristocrat", "MKV Set/Clear Chips (USA)", MACHINE_NOT_WORKING|MACHINE_IS_BIOS_ROOT )
// Dates listed below are for the combination (reel layout), not release dates
-GAME( 1995, enchfrst, 0, aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Enchanted Forest (0400122V, Local)", GAME_NOT_WORKING|GAME_IMPERFECT_SOUND ) // 570/3, E - 23/06/95
-GAME( 1995, swthrt2v, 0, aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Sweet Hearts II (01J01986, Venezuela)", GAME_NOT_WORKING|GAME_IMPERFECT_SOUND ) // 577/1, C - 07/09/95
-GAME( 1996, dolphntr, 0, aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Dolphin Treasure (0200424V, NSW/ACT)", GAME_NOT_WORKING|GAME_IMPERFECT_SOUND ) // 602/1, B - 06/12/96
-GAME( 1996, dolphtra, dolphntr, aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Dolphin Treasure (0100424V, NSW/ACT)", GAME_NOT_WORKING|GAME_IMPERFECT_SOUND ) // 602/1, B - 06/12/96
-GAME( 1997, goldprmd, aristmk5, aristmk5_usa, aristmk5, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Golden Pyramids (MV4091, USA)", GAME_NOT_WORKING|GAME_IMPERFECT_SOUND ) // MV4091, B - 13/05/97
-GAME( 1997, qotn, 0, aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Queen of the Nile (0200439V, NSW/ACT)", GAME_NOT_WORKING|GAME_IMPERFECT_SOUND ) // 602/4, B - 13/05/97
-GAME( 1997, dmdtouch, 0, aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Diamond Touch (0400433V, Local)", GAME_NOT_WORKING|GAME_IMPERFECT_SOUND ) // 604, E - 30/06/97
-GAME( 1998, adonis, 0, aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Adonis (0200751V, NSW/ACT)", GAME_NOT_WORKING|GAME_IMPERFECT_SOUND ) // 602/9, A - 25/05/98
-GAME( 1998, reelrock, 0, aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Reelin-n-Rockin (0100779V, Local)", GAME_NOT_WORKING|GAME_IMPERFECT_SOUND ) // 628, A - 13/07/98
-GAME( 1998, indiandr, 0, aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Indian Dreaming (0100845V, Local)", GAME_NOT_WORKING|GAME_IMPERFECT_SOUND ) // 628/1, B - 15/12/98
-GAME( 1999, wtiger, 0, aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0, "Aristocrat", "White Tiger Classic (0200954V, NSW/ACT)", GAME_NOT_WORKING|GAME_IMPERFECT_SOUND ) // 638/1, B - 08/07/99
-GAME( 2000, magicmsk, aristmk5, aristmk5_usa, aristmk5, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Magic Mask (MV4115, Export)", GAME_NOT_WORKING|GAME_IMPERFECT_SOUND ) // MV4115, A - 09/05/2000
-GAME( 2000, margmgc, 0, aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Margarita Magic (01J00101, NSW/ACT)", GAME_NOT_WORKING|GAME_IMPERFECT_SOUND ) // JB005, A - 07/07/2000
-GAME( 2001, geishanz, 0, aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Geisha (0101408V, New Zealand)", GAME_NOT_WORKING|GAME_IMPERFECT_SOUND ) // MV4127, A - 05/03/01
+GAME( 1995, enchfrst, 0, aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Enchanted Forest (0400122V, Local)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND ) // 570/3, E - 23/06/95
+GAME( 1995, swthrt2v, 0, aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Sweet Hearts II (01J01986, Venezuela)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND ) // 577/1, C - 07/09/95
+GAME( 1996, dolphntr, 0, aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Dolphin Treasure (0200424V, NSW/ACT)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND ) // 602/1, B - 06/12/96
+GAME( 1996, dolphtra, dolphntr, aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Dolphin Treasure (0100424V, NSW/ACT)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND ) // 602/1, B - 06/12/96
+GAME( 1997, goldprmd, aristmk5, aristmk5_usa, aristmk5, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Golden Pyramids (MV4091, USA)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND ) // MV4091, B - 13/05/97
+GAME( 1997, qotn, 0, aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Queen of the Nile (0200439V, NSW/ACT)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND ) // 602/4, B - 13/05/97
+GAME( 1997, dmdtouch, 0, aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Diamond Touch (0400433V, Local)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND ) // 604, E - 30/06/97
+GAME( 1998, adonis, 0, aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Adonis (0200751V, NSW/ACT)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND ) // 602/9, A - 25/05/98
+GAME( 1998, reelrock, 0, aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Reelin-n-Rockin (0100779V, Local)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND ) // 628, A - 13/07/98
+GAME( 1998, indiandr, 0, aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Indian Dreaming (0100845V, Local)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND ) // 628/1, B - 15/12/98
+GAME( 1999, wtiger, 0, aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0, "Aristocrat", "White Tiger Classic (0200954V, NSW/ACT)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND ) // 638/1, B - 08/07/99
+GAME( 2000, magicmsk, aristmk5, aristmk5_usa, aristmk5, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Magic Mask (MV4115, Export)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND ) // MV4115, A - 09/05/2000
+GAME( 2000, margmgc, 0, aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Margarita Magic (01J00101, NSW/ACT)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND ) // JB005, A - 07/07/2000
+GAME( 2001, geishanz, 0, aristmk5, aristmk5, aristmk5_state, aristmk5, ROT0, "Aristocrat", "Geisha (0101408V, New Zealand)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_SOUND ) // MV4127, A - 05/03/01
diff --git a/src/mame/drivers/aristmk6.c b/src/mame/drivers/aristmk6.c
index 7ec076a6a2c..e06fed3411d 100644
--- a/src/mame/drivers/aristmk6.c
+++ b/src/mame/drivers/aristmk6.c
@@ -250,20 +250,20 @@ ROM_START( thaiprin )
ROM_LOAD32_WORD("30127721.u72", 0x0800002, 0x0100000, BAD_DUMP CRC(613cea6b) SHA1(f04a3ee53074b7cd84879d752df5dbb80437475e) ) // wrong size?!
ROM_END
-GAME( 200?, aristmk6, 0, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Aristocrat MK6 Base (15011025, Malaysia)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_IS_BIOS_ROOT)
-GAME( 200?, mk6nsw11, 0, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Aristocrat MK6 Base (11011901, NSW/ACT)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_IS_BIOS_ROOT)
+GAME( 200?, aristmk6, 0, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Aristocrat MK6 Base (15011025, Malaysia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IS_BIOS_ROOT)
+GAME( 200?, mk6nsw11, 0, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Aristocrat MK6 Base (11011901, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IS_BIOS_ROOT)
// Dates listed below are for the combination (reel layout), not release dates
-GAME( 2004, antcleo, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Antony and Cleopatra (10177211, Malaysia)", GAME_NOT_WORKING | GAME_NO_SOUND ) // 754, B - 12/07/04
-GAME( 2002, 50lions, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "50 Lions (10120511, NSW/ACT)", GAME_NOT_WORKING | GAME_NO_SOUND ) // 717, A - 11/10/02
-GAME( 2003, 50lionsa, 50lions, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "50 Lions (10156111, Malaysia)", GAME_NOT_WORKING | GAME_NO_SOUND ) // 717, D - 20/10/03
-GAME( 2003, choysun, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Choy Sun Doa (20131511, Malaysia)", GAME_NOT_WORKING | GAME_NO_SOUND ) // 688, D - 23/01/03
-GAME( 2003, crystals, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Crystal Springs (10155811, Malaysia)", GAME_NOT_WORKING | GAME_NO_SOUND ) // 740, A - 28/05/03
-GAME( 2003, indianmm, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Indian Dreaming - Maximillion$ (10130711, NSW/ACT)", GAME_NOT_WORKING | GAME_NO_SOUND ) // 628/12, A - 17/01/03
-GAME( 2004, wheregld, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Where's the Gold (20177111, Malaysia)", GAME_NOT_WORKING | GAME_NO_SOUND ) // 756, C - 17/06/04
-GAME( 2002, whalecsh, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Whales of Cash (20155711, Malaysia)", GAME_NOT_WORKING | GAME_NO_SOUND ) // 695, A - 14/06/02
-GAME( 2003, wildways, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Wild Ways (10130111, Malaysia)", GAME_NOT_WORKING | GAME_NO_SOUND ) // 698/1, A - 25/02/03
-GAME( 2003, thaiprin, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Thai Princess (30127721, Malaysia)", GAME_NOT_WORKING | GAME_NO_SOUND ) // 707, E - 21/03/03
+GAME( 2004, antcleo, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Antony and Cleopatra (10177211, Malaysia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 754, B - 12/07/04
+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, 50lionsa, 50lions, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "50 Lions (10156111, Malaysia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 717, D - 20/10/03
+GAME( 2003, choysun, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Choy Sun Doa (20131511, Malaysia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 688, D - 23/01/03
+GAME( 2003, crystals, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Crystal Springs (10155811, Malaysia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 740, A - 28/05/03
+GAME( 2003, indianmm, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Indian Dreaming - Maximillion$ (10130711, NSW/ACT)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 628/12, A - 17/01/03
+GAME( 2004, wheregld, aristmk6, 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( 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, wildways, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Wild Ways (10130111, Malaysia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 698/1, A - 25/02/03
+GAME( 2003, thaiprin, aristmk6, aristmk6, aristmk6, driver_device, 0, ROT0, "Aristocrat", "Thai Princess (30127721, Malaysia)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // 707, E - 21/03/03
/*
List of known MK6 games, excluding Hyperlink variations
diff --git a/src/mame/drivers/arkanoid.c b/src/mame/drivers/arkanoid.c
index 64693872fea..3ed22627d6b 100644
--- a/src/mame/drivers/arkanoid.c
+++ b/src/mame/drivers/arkanoid.c
@@ -1366,38 +1366,38 @@ MACHINE_CONFIG_END
/* ROMs */
/* rom numbering, with guesses:
- A75 01 = Z80 code 1/2 v1.0 Japan
- A75 01-1 = Z80 code 1/2 v1.1 Japan and USA/Romstar
- A75 02 = Z80 code 2/2 v1.0 Japan
- A75 03 = GFX 1/3
- A75 04 = GFX 2/3
- A75 05 = GFX 3/3
- A75 06 = MC68705P5 MCU code, v1.0 Japan and v1.0 USA/Romstar
- A75 07 = PROM red
- A75 08 = PROM green
- A75 09 = PROM blue
- A75 10 = Z80 code 2/2 v1.1 USA/Romstar
- A75 11 = Z80 code 2/2 v1.2 Japan (paired with 01-1 v1.1 Japan)
- (A75 12 through 17 are unknown, could be another two sets of z80 code plus mc68705p5)
- A75 18 = Z80 code v2.0 2/2 USA/Romstar
- A75 19 = Z80 code v2.0 1/2 USA/Romstar
- A75 20 = MC68705P5 MCU code, v2.0 USA/Romstar
- A75 21 = Z80 code v2.0 1/2 Japan
- A75 22 = Z80 code v2.0 2/2 Japan
- A75 23 = MC68705P5 MCU code, v2.0 Japan
- A75 24 = Z80 code v2.1 1/2 Japan
- A75 25 = Z80 code v2.1 2/2 Japan
- A75 26 = MC68705P5 MCU code, v2.1 Japan
- A75 27 = Z80 code 1/2 Tournament
- A75 28 = Z80 code 2/2 Tournament
- A75 29 = GFX 1/3 Tournament
- A75 30 = GFX 2/3 Tournament
- A75 31 = GFX 3/3 Tournament
- A75 32 = MC68705P5 MCU code, Tournament
- A75 33 = PROM red Tournament
- A75 34 = PROM green Tournament
- A75 35 = PROM blue Tournament
- (one of the 21/22/23 or 24/25/26 sets is likely 'world'? or are these really two japan sets?)
+ A75 01 = Z80 code 1/2 v1.0 Japan
+ A75 01-1 = Z80 code 1/2 v1.1 Japan and USA/Romstar
+ A75 02 = Z80 code 2/2 v1.0 Japan
+ A75 03 = GFX 1/3
+ A75 04 = GFX 2/3
+ A75 05 = GFX 3/3
+ A75 06 = MC68705P5 MCU code, v1.0 Japan and v1.0 USA/Romstar
+ A75 07 = PROM red
+ A75 08 = PROM green
+ A75 09 = PROM blue
+ A75 10 = Z80 code 2/2 v1.1 USA/Romstar
+ A75 11 = Z80 code 2/2 v1.2 Japan (paired with 01-1 v1.1 Japan)
+ (A75 12 through 17 are unknown, could be another two sets of z80 code plus mc68705p5)
+ A75 18 = Z80 code v2.0 2/2 USA/Romstar
+ A75 19 = Z80 code v2.0 1/2 USA/Romstar
+ A75 20 = MC68705P5 MCU code, v2.0 USA/Romstar
+ A75 21 = Z80 code v2.0 1/2 Japan
+ A75 22 = Z80 code v2.0 2/2 Japan
+ A75 23 = MC68705P5 MCU code, v2.0 Japan
+ A75 24 = Z80 code v2.1 1/2 Japan
+ A75 25 = Z80 code v2.1 2/2 Japan
+ A75 26 = MC68705P5 MCU code, v2.1 Japan
+ A75 27 = Z80 code 1/2 Tournament
+ A75 28 = Z80 code 2/2 Tournament
+ A75 29 = GFX 1/3 Tournament
+ A75 30 = GFX 2/3 Tournament
+ A75 31 = GFX 3/3 Tournament
+ A75 32 = MC68705P5 MCU code, Tournament
+ A75 33 = PROM red Tournament
+ A75 34 = PROM green Tournament
+ A75 35 = PROM blue Tournament
+ (one of the 21/22/23 or 24/25/26 sets is likely 'world'? or are these really two japan sets?)
*/
ROM_START( arkanoid )
@@ -2049,33 +2049,33 @@ DRIVER_INIT_MEMBER(arkanoid_state,brixian)
/* Game Drivers */
// original sets of Arkanoid
-GAME( 1986, arkanoid, 0, arkanoid, arkanoid, driver_device, 0, ROT90, "Taito Corporation Japan", "Arkanoid (World, oldest rev)", GAME_SUPPORTS_SAVE )
-GAME( 1986, arkanoidu, arkanoid, arkanoid, arkanoid, driver_device, 0, ROT90, "Taito America Corporation (Romstar license)", "Arkanoid (US)", GAME_SUPPORTS_SAVE )
-GAME( 1986, arkanoiduo, arkanoid, arkanoid, arkanoid, driver_device, 0, ROT90, "Taito America Corporation (Romstar license)", "Arkanoid (US, oldest rev)", GAME_SUPPORTS_SAVE )
-GAME( 1986, arkanoidj, arkanoid, arkanoid, arkanoidj, driver_device,0, ROT90, "Taito Corporation", "Arkanoid (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1986, arkanoidja, arkanoid, arkanoid, arkanoidj, driver_device,0, ROT90, "Taito Corporation", "Arkanoid (Japan, older rev)", GAME_SUPPORTS_SAVE )
-GAME( 1986, arkanoidjb, arkanoid, arkanoid, arkanoidj, driver_device,0, ROT90, "Taito Corporation", "Arkanoid (Japan, oldest rev)", GAME_SUPPORTS_SAVE )
+GAME( 1986, arkanoid, 0, arkanoid, arkanoid, driver_device, 0, ROT90, "Taito Corporation Japan", "Arkanoid (World, oldest rev)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, arkanoidu, arkanoid, arkanoid, arkanoid, driver_device, 0, ROT90, "Taito America Corporation (Romstar license)", "Arkanoid (US)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, arkanoiduo, arkanoid, arkanoid, arkanoid, driver_device, 0, ROT90, "Taito America Corporation (Romstar license)", "Arkanoid (US, oldest rev)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, arkanoidj, arkanoid, arkanoid, arkanoidj, driver_device,0, ROT90, "Taito Corporation", "Arkanoid (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, arkanoidja, arkanoid, arkanoid, arkanoidj, driver_device,0, ROT90, "Taito Corporation", "Arkanoid (Japan, older rev)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, arkanoidjb, arkanoid, arkanoid, arkanoidj, driver_device,0, ROT90, "Taito Corporation", "Arkanoid (Japan, oldest rev)", MACHINE_SUPPORTS_SAVE )
// bootlegs of Arkanoid
-GAME( 1986, arkanoidjbl, arkanoid, arkanoid, arkanoidj, driver_device,0, ROT90, "bootleg", "Arkanoid (bootleg with MCU, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1986, arkanoidjbl2,arkanoid, arkanoid, arkanoidj, driver_device,0, ROT90, "bootleg (Beta)", "Arkanoid (bootleg with MCU, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1986, ark1ball, arkanoid, arkanoid, ark1ball, driver_device, 0, ROT90, "bootleg", "Arkanoid (bootleg with MCU, harder)", GAME_SUPPORTS_SAVE )
-GAME( 1986, arkangc, arkanoid, bootleg, arkangc, arkanoid_state, arkangc, ROT90, "bootleg (Game Corporation)", "Arkanoid (Game Corporation bootleg, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1986, arkangc2, arkanoid, bootleg, arkangc2, arkanoid_state, arkangc2, ROT90, "bootleg (Game Corporation)", "Arkanoid (Game Corporation bootleg, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1986, arkblock, arkanoid, bootleg, arkangc, arkanoid_state, arkblock, ROT90, "bootleg (Game Corporation)", "Block (Game Corporation bootleg, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1986, arkbloc2, arkanoid, bootleg, arkangc, arkanoid_state, arkbloc2, ROT90, "bootleg (Game Corporation)", "Block (Game Corporation bootleg, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1986, arkbloc3, arkanoid, bootleg, block2, arkanoid_state, block2, ROT90, "bootleg (Game Corporation)", "Block (Game Corporation bootleg, set 3)", GAME_SUPPORTS_SAVE ) // Both these sets 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)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1986, arkgcbla, arkanoid, bootleg, arkgcbl, arkanoid_state, arkgcbl, ROT90, "bootleg", "Arkanoid (bootleg on Block hardware, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1988, paddle2, arkanoid, bootleg, paddle2, arkanoid_state, paddle2, ROT90, "bootleg", "Paddle 2 (bootleg on Block hardware)", GAME_SUPPORTS_SAVE )
-GAME( 1986, arkatayt, arkanoid, bootleg, arkatayt, driver_device, 0, ROT90, "bootleg (Tayto)", "Arkanoid (Tayto bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1986, arktayt2, arkanoid, bootleg, arktayt2, driver_device, 0, ROT90, "bootleg (Tayto)", "Arkanoid (Tayto bootleg, harder)", GAME_SUPPORTS_SAVE )
+GAME( 1986, arkanoidjbl, arkanoid, arkanoid, arkanoidj, driver_device,0, ROT90, "bootleg", "Arkanoid (bootleg with MCU, set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, arkanoidjbl2,arkanoid, arkanoid, arkanoidj, driver_device,0, ROT90, "bootleg (Beta)", "Arkanoid (bootleg with MCU, set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, ark1ball, arkanoid, arkanoid, 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 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 )
// Other games
-GAME( 1987, arkatour, 0, arkanoid, arkanoid, driver_device, 0, ROT90, "Taito America Corporation (Romstar license)", "Tournament Arkanoid (US)", GAME_SUPPORTS_SAVE )
+GAME( 1987, arkatour, 0, arkanoid, arkanoid, driver_device, 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)", GAME_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", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 199?, hexaa, hexa, hexaa, hexa, arkanoid_state, hexa, ROT0, "D.R. Korea", "Hexa (with 2xZ80, protected)", GAME_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, hexa, 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", GAME_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.c b/src/mame/drivers/armedf.c
index 05bc05f6c58..352de671596 100644
--- a/src/mame/drivers/armedf.c
+++ b/src/mame/drivers/armedf.c
@@ -2182,23 +2182,23 @@ DRIVER_INIT_MEMBER(bigfghtr_state,bigfghtr)
*************************************/
/* YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR, COMPANY, FULLNAME, FLAGS */
-GAME( 1987, legion, 0, legion, legion, armedf_state, legion, ROT270, "Nichibutsu", "Legion - Spinner-87 (World ver 2.03)", GAME_SUPPORTS_SAVE )
-GAME( 1987, legionj, legion, legion, legion, armedf_state, legion, ROT270, "Nichibutsu", "Chouji Meikyuu Legion (Japan ver 1.05)", GAME_SUPPORTS_SAVE )
-GAME( 1987, legionjb, legion, legionjb, legion, armedf_state, legionjb, ROT270, "bootleg", "Chouji Meikyuu Legion (Japan ver 1.05, bootleg)", GAME_SUPPORTS_SAVE) /* blitter protection removed */
+GAME( 1987, legion, 0, legion, legion, armedf_state, legion, ROT270, "Nichibutsu", "Legion - Spinner-87 (World ver 2.03)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, legionj, legion, legion, legion, armedf_state, legion, ROT270, "Nichibutsu", "Chouji Meikyuu Legion (Japan ver 1.05)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, legionjb, legion, legionjb, legion, armedf_state, legionjb, ROT270, "bootleg", "Chouji Meikyuu Legion (Japan ver 1.05, bootleg)", MACHINE_SUPPORTS_SAVE) /* blitter protection removed */
-GAME( 1987, terraf, 0, terraf, terraf, armedf_state, terrafu, ROT0, "Nichibutsu", "Terra Force", GAME_SUPPORTS_SAVE )
-GAME( 1987, terrafu, terraf, terraf, terraf, armedf_state, terrafu, ROT0, "Nichibutsu USA", "Terra Force (US)", GAME_SUPPORTS_SAVE )
-GAME( 1987, terrafj, terraf, terraf, terraf, armedf_state, terrafu, ROT0, "Nichibutsu Japan", "Terra Force (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1987, terrafjb, terraf, terrafjb, terraf, armedf_state, terrafjb, ROT0, "bootleg", "Terra Force (Japan, bootleg with additional Z80)", GAME_SUPPORTS_SAVE )
-GAME( 1987, terrafb, terraf, terraf, terraf, armedf_state, terraf, ROT0, "bootleg", "Terra Force (Japan, bootleg set 2)", GAME_SUPPORTS_SAVE )
+GAME( 1987, terraf, 0, terraf, terraf, armedf_state, terrafu, ROT0, "Nichibutsu", "Terra Force", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, terrafu, terraf, terraf, terraf, armedf_state, terrafu, ROT0, "Nichibutsu USA", "Terra Force (US)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, terrafj, terraf, terraf, terraf, armedf_state, terrafu, ROT0, "Nichibutsu Japan", "Terra Force (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, terrafjb, terraf, terrafjb, terraf, armedf_state, terrafjb, ROT0, "bootleg", "Terra Force (Japan, bootleg with additional Z80)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, terrafb, terraf, terraf, terraf, armedf_state, terraf, ROT0, "bootleg", "Terra Force (Japan, bootleg set 2)", MACHINE_SUPPORTS_SAVE )
-GAME( 1987, kozure, 0, kozure, kozure, armedf_state, kozure, ROT0, "Nichibutsu", "Kozure Ookami (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1987, kozure, 0, kozure, kozure, armedf_state, kozure, ROT0, "Nichibutsu", "Kozure Ookami (Japan)", MACHINE_SUPPORTS_SAVE )
-GAME( 1988, cclimbr2, 0, cclimbr2, cclimbr2, armedf_state, cclimbr2, ROT0, "Nichibutsu", "Crazy Climber 2 (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1988, cclimbr2a,cclimbr2, cclimbr2, cclimbr2, armedf_state, cclimbr2, ROT0, "Nichibutsu", "Crazy Climber 2 (Japan, Harder)", GAME_SUPPORTS_SAVE )
+GAME( 1988, cclimbr2, 0, cclimbr2, cclimbr2, armedf_state, cclimbr2, ROT0, "Nichibutsu", "Crazy Climber 2 (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, cclimbr2a,cclimbr2, cclimbr2, cclimbr2, armedf_state, cclimbr2, ROT0, "Nichibutsu", "Crazy Climber 2 (Japan, Harder)", MACHINE_SUPPORTS_SAVE )
-GAME( 1988, armedf, 0, armedf, armedf, armedf_state, armedf, ROT270, "Nichibutsu", "Armed Formation", GAME_SUPPORTS_SAVE )
-GAME( 1988, armedff, armedf, armedf, armedf, armedf_state, armedf, ROT270, "Nichibutsu (Fillmore license)", "Armed Formation (Fillmore license)", GAME_SUPPORTS_SAVE )
+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, bigfghtr_state, bigfghtr, ROT0, "Nichibutsu", "Sky Robo", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE )
-GAME( 1989, bigfghtr, skyrobo, bigfghtr, bigfghtr, bigfghtr_state, bigfghtr, ROT0, "Nichibutsu", "Tatakae! Big Fighter (Japan)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE )
+GAME( 1989, skyrobo, 0, bigfghtr, bigfghtr, bigfghtr_state, bigfghtr, ROT0, "Nichibutsu", "Sky Robo", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1989, bigfghtr, skyrobo, bigfghtr, bigfghtr, bigfghtr_state, bigfghtr, ROT0, "Nichibutsu", "Tatakae! Big Fighter (Japan)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/arsystems.c b/src/mame/drivers/arsystems.c
new file mode 100644
index 00000000000..c017004843f
--- /dev/null
+++ b/src/mame/drivers/arsystems.c
@@ -0,0 +1,1004 @@
+// license:BSD-3-Clause
+// copyright-holders:Ernesto Corvi, Mariusz Wojcieszek
+/***************************************************************************
+
+ Arcadia System - (c) 1988 Arcadia Systems
+
+ Driver by Ernesto Corvi and Mariusz Wojcieszek
+
+ Games supported:
+
+ SportTime Bowling
+ Leader Board
+ Ninja Mission
+ Road Wars
+ Sidewinder
+ Space Ranger
+ SportTime Table Hockey
+ Spot
+ Magic Johnson's Fast Break
+ World Darts
+ Xenon
+ World Trophy Soccer
+ Delta Command (N.Y Warriors)
+ Blastaball
+ Aaargh
+ Pharaohs Match
+
+ Other Arcadia games (not dumped):
+
+ Pool
+ Rockford
+
+ Hardware description (from targets.mame.net):
+
+ In the late 80s, Arcadia collaborated with Mastertronic to create their own
+ ten-interchangeable-game arcade platform called the Arcadia Multi Select system,
+ using the same hardware as the beloved Commodore Amiga computer.
+
+ (In fact, the Multi Select's main PCB is an A500 motherboard, to which the ROM
+ cage is attached through the external expansion port).
+
+ Reportedly the system was also (or was originally) supposed to have been released
+ in two five-game Super Select versions--"Arcade Action" and "Sports Simulation"
+ -- but no specimens of these have ever been seen.
+
+ NOTES and TODO:
+ - To get into service mode, hold down F2 before pressing a button after
+ the 'INITIALIZATION OK' message. Pressing F2 during game brings service
+ mode also.
+
+***************************************************************************/
+
+#include "emu.h"
+#include "cpu/m68000/m68000.h"
+#include "includes/amiga.h"
+#include "machine/nvram.h"
+#include "machine/amigafdc.h"
+
+
+// arcadia_state was also defined in mess/includes/arcadia.h
+class arcadia_amiga_state : public amiga_state
+{
+public:
+ arcadia_amiga_state(const machine_config &mconfig, device_type type, const char *tag)
+ : amiga_state(mconfig, type, tag) { }
+
+ UINT8 m_coin_counter[2];
+
+ DECLARE_WRITE16_MEMBER(arcadia_multibios_change_game);
+ DECLARE_CUSTOM_INPUT_MEMBER(coin_counter_r);
+ DECLARE_INPUT_CHANGED_MEMBER(coin_changed_callback);
+ DECLARE_WRITE8_MEMBER(arcadia_cia_0_portb_w);
+
+ DECLARE_DRIVER_INIT(arcadia);
+ DECLARE_DRIVER_INIT(xeon);
+ DECLARE_DRIVER_INIT(sdwr);
+ DECLARE_DRIVER_INIT(dart);
+ DECLARE_DRIVER_INIT(bowl);
+ DECLARE_DRIVER_INIT(sprg);
+ DECLARE_DRIVER_INIT(rdwr);
+ DECLARE_DRIVER_INIT(ninj);
+ DECLARE_DRIVER_INIT(airh);
+ DECLARE_DRIVER_INIT(ldrb);
+ DECLARE_DRIVER_INIT(socc);
+ DECLARE_DRIVER_INIT(blast);
+ DECLARE_DRIVER_INIT(pm);
+ DECLARE_DRIVER_INIT(dlta);
+ DECLARE_DRIVER_INIT(argh);
+
+ inline void generic_decode(const char *tag, int bit7, int bit6, int bit5, int bit4, int bit3, int bit2, int bit1, int bit0);
+
+protected:
+ virtual void machine_reset();
+};
+
+
+
+/*************************************
+ *
+ * Dynamic installation of ROM board
+ *
+ *************************************/
+
+WRITE16_MEMBER(arcadia_amiga_state::arcadia_multibios_change_game)
+{
+ if (data == 0)
+ space.install_read_bank(0x800000, 0x97ffff, "bank2");
+ else
+ space.nop_read(0x800000, 0x97ffff);
+}
+
+
+
+
+/*************************************
+ *
+ * CIA-A port B access:
+ *
+ * PB7 = parallel data 7
+ * PB6 = parallel data 6
+ * PB5 = parallel data 5
+ * PB4 = parallel data 4
+ * PB3 = parallel data 3
+ * PB2 = parallel data 2
+ * PB1 = parallel data 1
+ * PB0 = parallel data 0
+ *
+ *************************************/
+
+WRITE8_MEMBER(arcadia_amiga_state::arcadia_cia_0_portb_w)
+{
+ /* writing a 0 in the low bit clears one of the coins */
+ if ((data & 1) == 0)
+ {
+ if (m_coin_counter[0] > 0)
+ m_coin_counter[0]--;
+ else if (m_coin_counter[1] > 0)
+ m_coin_counter[1]--;
+ }
+}
+
+
+
+/*************************************
+ *
+ * Coin counters
+ *
+ *************************************/
+
+CUSTOM_INPUT_MEMBER(arcadia_amiga_state::coin_counter_r)
+{
+ int coin = (FPTR)param;
+
+ /* return coin counter values */
+ return m_coin_counter[coin] & 3;
+}
+
+
+INPUT_CHANGED_MEMBER(arcadia_amiga_state::coin_changed_callback)
+{
+ int coin = (FPTR)param;
+
+ /* check for a 0 -> 1 transition */
+ if (!oldval && newval && m_coin_counter[coin] < 3)
+ m_coin_counter[coin] += 1;
+}
+
+
+void arcadia_amiga_state::machine_reset()
+{
+ // reset base machine
+ amiga_state::machine_reset();
+
+ // reset coin counters
+ m_coin_counter[0] = m_coin_counter[1] = 0;
+}
+
+
+
+/*************************************
+ *
+ * Memory map
+ *
+ *************************************/
+
+static ADDRESS_MAP_START( overlay_512kb_map, AS_PROGRAM, 16, arcadia_amiga_state )
+ ADDRESS_MAP_UNMAP_HIGH
+ AM_RANGE(0x000000, 0x07ffff) AM_MIRROR(0x180000) AM_RAM AM_SHARE("chip_ram")
+ AM_RANGE(0x200000, 0x27ffff) AM_ROM AM_REGION("kickstart", 0)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( a500_mem, AS_PROGRAM, 16, arcadia_amiga_state )
+ ADDRESS_MAP_UNMAP_HIGH
+ AM_RANGE(0x000000, 0x1fffff) AM_DEVICE("overlay", address_map_bank_device, amap16)
+ AM_RANGE(0xa00000, 0xbfffff) AM_READWRITE(cia_r, cia_w)
+ AM_RANGE(0xc00000, 0xd7ffff) AM_READWRITE(custom_chip_r, custom_chip_w)
+ AM_RANGE(0xd80000, 0xddffff) AM_NOP
+ AM_RANGE(0xde0000, 0xdeffff) AM_READWRITE(custom_chip_r, custom_chip_w)
+ AM_RANGE(0xdf0000, 0xdfffff) AM_READWRITE(custom_chip_r, custom_chip_w)
+ AM_RANGE(0xe00000, 0xe7ffff) AM_WRITENOP AM_READ(rom_mirror_r)
+ AM_RANGE(0xe80000, 0xefffff) AM_NOP // autoconfig space (installed by devices)
+ AM_RANGE(0xf80000, 0xffffff) AM_ROM AM_REGION("kickstart", 0)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( arcadia_map, AS_PROGRAM, 16, arcadia_amiga_state )
+ AM_IMPORT_FROM(a500_mem)
+ AM_RANGE(0x800000, 0x97ffff) AM_ROMBANK("bank2") AM_REGION("user3", 0)
+ AM_RANGE(0x980000, 0x9fbfff) AM_ROM AM_REGION("user2", 0)
+ AM_RANGE(0x9fc000, 0x9ffffd) AM_RAM AM_SHARE("nvram")
+ AM_RANGE(0x9ffffe, 0x9fffff) AM_WRITE(arcadia_multibios_change_game)
+ AM_RANGE(0xf00000, 0xf7ffff) AM_ROM AM_REGION("user2", 0)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( argh_map, AS_PROGRAM, 16, arcadia_amiga_state )
+ AM_IMPORT_FROM(a500_mem)
+ AM_RANGE(0x800000, 0x97ffff) AM_ROMBANK("bank2") AM_REGION("user3", 0)
+// AM_RANGE(0x980000, 0x9fefff) AM_ROM AM_REGION("user3", 0)
+ AM_RANGE(0x9ff000, 0x9fffff) AM_RAM AM_SHARE("nvram")
+ AM_RANGE(0xf00000, 0xf7ffff) AM_ROM AM_REGION("user3", 0)
+ADDRESS_MAP_END
+
+/*************************************
+ *
+ * Input ports
+ *
+ *************************************/
+
+static INPUT_PORTS_START( arcadia )
+ PORT_START("CIA0PORTA")
+ PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_SPECIAL )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
+
+ PORT_START("CIA0PORTB")
+ PORT_DIPNAME( 0x01, 0x01, "DSW1 1" )
+ PORT_DIPSETTING( 0x01, "Reset" )
+ PORT_DIPSETTING( 0x00, "Set" )
+ PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x30, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, arcadia_amiga_state,coin_counter_r, 0)
+ PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, arcadia_amiga_state,coin_counter_r, 1)
+
+ PORT_START("joy_0_dat")
+ PORT_BIT( 0x0303, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, arcadia_amiga_state,amiga_joystick_convert, 0)
+ PORT_BIT( 0xfcfc, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("joy_1_dat")
+ PORT_BIT( 0x0303, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, arcadia_amiga_state,amiga_joystick_convert, 1)
+ PORT_BIT( 0xfcfc, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("potgo")
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON2 )
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
+ PORT_BIT( 0xaaff, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("p1_joy")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
+
+ PORT_START("p2_joy")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
+
+ PORT_START("COINS")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, arcadia_amiga_state,coin_changed_callback, 0)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, arcadia_amiga_state,coin_changed_callback, 1)
+INPUT_PORTS_END
+
+
+
+/*************************************
+ *
+ * Machine driver
+ *
+ *************************************/
+
+static MACHINE_CONFIG_START( arcadia, arcadia_amiga_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", M68000, amiga_state::CLK_7M_NTSC)
+ MCFG_CPU_PROGRAM_MAP(arcadia_map)
+
+ MCFG_DEVICE_ADD("overlay", ADDRESS_MAP_BANK, 0)
+ MCFG_DEVICE_PROGRAM_MAP(overlay_512kb_map)
+ MCFG_ADDRESS_MAP_BANK_ENDIANNESS(ENDIANNESS_BIG)
+ MCFG_ADDRESS_MAP_BANK_DATABUS_WIDTH(16)
+ MCFG_ADDRESS_MAP_BANK_ADDRBUS_WIDTH(22)
+ MCFG_ADDRESS_MAP_BANK_STRIDE(0x200000)
+
+ MCFG_NVRAM_ADD_0FILL("nvram")
+
+ /* video hardware */
+ MCFG_FRAGMENT_ADD(ntsc_video)
+
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_INIT_OWNER(arcadia_amiga_state,amiga)
+
+ MCFG_VIDEO_START_OVERRIDE(arcadia_amiga_state,amiga)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
+
+ MCFG_SOUND_ADD("amiga", AMIGA, amiga_state::CLK_C1_NTSC)
+ MCFG_SOUND_ROUTE(0, "lspeaker", 0.50)
+ MCFG_SOUND_ROUTE(1, "rspeaker", 0.50)
+ MCFG_SOUND_ROUTE(2, "rspeaker", 0.50)
+ MCFG_SOUND_ROUTE(3, "lspeaker", 0.50)
+
+ /* cia */
+ MCFG_DEVICE_ADD("cia_0", MOS8520, amiga_state::CLK_E_NTSC)
+ MCFG_MOS6526_IRQ_CALLBACK(WRITELINE(amiga_state, cia_0_irq))
+ MCFG_MOS6526_PA_INPUT_CALLBACK(IOPORT("CIA0PORTA"))
+ MCFG_MOS6526_PA_OUTPUT_CALLBACK(WRITE8(amiga_state, cia_0_port_a_write))
+ MCFG_MOS6526_PB_INPUT_CALLBACK(IOPORT("CIA0PORTB"))
+ MCFG_MOS6526_PB_OUTPUT_CALLBACK(WRITE8(arcadia_amiga_state,arcadia_cia_0_portb_w))
+ MCFG_DEVICE_ADD("cia_1", MOS8520, amiga_state::CLK_E_NTSC)
+ MCFG_MOS6526_IRQ_CALLBACK(WRITELINE(amiga_state, cia_1_irq))
+
+ /* fdc */
+ MCFG_DEVICE_ADD("fdc", AMIGA_FDC, amiga_state::CLK_7M_NTSC)
+ MCFG_AMIGA_FDC_INDEX_CALLBACK(DEVWRITELINE("cia_1", mos8520_device, flag_w))
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( argh, arcadia )
+
+ /* basic machine hardware */
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(argh_map)
+MACHINE_CONFIG_END
+
+
+/*************************************
+ *
+ * BIOS definition
+ *
+ *************************************/
+
+#define ROM_LOAD16_BYTE_BIOS(bios,name,offset,length,hash) ROMX_LOAD(name, offset, length, hash, ROM_SKIP(1) | ROM_BIOS(bios+1))
+
+#define ARCADIA_BIOS \
+ ROM_REGION16_BE(0x80000, "kickstart", 0 ) \
+ ROM_LOAD16_WORD("315093-01.u2", 0x000000, 0x040000, CRC(a6ce1636) SHA1(11f9e62cf299f72184835b7b2a70a16333fc0d88)) \
+ ROM_COPY("kickstart", 0x000000, 0x040000, 0x040000) \
+ \
+ ROM_REGION16_BE( 0x80000, "user2", 0 ) \
+ ROM_SYSTEM_BIOS(0, "onep300", "OnePlay 3.00") \
+ ROM_LOAD16_BYTE_BIOS( 0, "scpa_01-hi_v3.0.u12", 0x000000, 0x10000, CRC(2d8e1a06) SHA1(be187f34624aeda110017c4a09242f7c00ef56a4) ) \
+ ROM_LOAD16_BYTE_BIOS( 0, "scpa_01-lo_v3.0.u16", 0x000001, 0x10000, CRC(e4f38fab) SHA1(01c2eb5965070893be6734eb1372576727716476) ) \
+ ROM_SYSTEM_BIOS(1, "onep220", "OnePlay 2.20" ) \
+ ROM_LOAD16_BYTE_BIOS( 1, "scpa_01-hi_v2.20.u12", 0x000000, 0x10000, CRC(79450b4b) SHA1(a1e508a89fc62e1c4994064f2786f491b1dc8bc6) ) \
+ ROM_LOAD16_BYTE_BIOS( 1, "scpa_01-lo_v2.20.u16", 0x000001, 0x10000, CRC(d2825511) SHA1(747a37c6073224472bf261ae376ac9abfbe07554) ) \
+ ROM_SYSTEM_BIOS(2, "onep211", "OnePlay 2.11" ) \
+ ROM_LOAD16_BYTE_BIOS( 2, "scpa_01-hi_v2.11.u12", 0x000000, 0x10000, CRC(be9dbdc5) SHA1(1554da09f051ec53937d65d4e451de51bc0c69e5) ) \
+ ROM_LOAD16_BYTE_BIOS( 2, "scpa_01-lo_v2.11.u16", 0x000001, 0x10000, CRC(95b84504) SHA1(99999fc40909001b37aa1b543918118becc81800) ) \
+ ROM_SYSTEM_BIOS(3, "tenp211", "TenPlay 2.11" ) \
+ ROM_LOAD16_BYTE_BIOS( 3, "gcp-1-hi", 0x000000, 0x10000, CRC(67d44523) SHA1(f3e3699132cdf741518accb890c04d17374c4049) ) \
+ ROM_LOAD16_BYTE_BIOS( 3, "gcp-1-lo", 0x000001, 0x10000, CRC(65d9b9cf) SHA1(5c60a0dd4a0a7d9b938ce6b0446a6ad2ecaf07ec) ) \
+ ROM_LOAD16_BYTE_BIOS( 3, "gcp-2-hi", 0x020000, 0x10000, CRC(1d7594ae) SHA1(6173bbfecf18d7d9ee6bc2b6753ca9d42fabd781) ) \
+ ROM_LOAD16_BYTE_BIOS( 3, "gcp-2-lo", 0x020001, 0x10000, CRC(e776198d) SHA1(694ca4cc99ed84a95d18201c94a3332f8599654f) ) \
+ ROM_LOAD16_BYTE_BIOS( 3, "gcp-3-hi", 0x040000, 0x10000, CRC(3e7364be) SHA1(26e10d0ddc031a891138db36ce4f1732722e6847) ) \
+ ROM_LOAD16_BYTE_BIOS( 3, "gcp-3-lo", 0x040001, 0x10000, CRC(87229e0d) SHA1(0b18544801e529f954b9e03226bd2e5475f36351) ) \
+ ROM_SYSTEM_BIOS(4, "tenp311", "TenPlay 3.11" ) /* Rom labels are printed as 3.11, but it runs as 3.10 */ \
+ ROM_LOAD16_BYTE_BIOS( 4, "gcp_v311_1-hi.u16", 0x000000, 0x10000, CRC(0b486a85) SHA1(b406f1db5abf28d9072b7940989ffd176aeee5cb) ) \
+ ROM_LOAD16_BYTE_BIOS( 4, "gcp_v311_1-lo.u11", 0x000001, 0x10000, CRC(80e8e863) SHA1(ab04dfcda7544f4ed9b67771cd8aefe0300c6d4b) ) \
+ ROM_LOAD16_BYTE_BIOS( 4, "gcp_v311_2-hi.u17", 0x020000, 0x10000, CRC(d20a4d7f) SHA1(1dc0a79efa946333149f68ddac046fd44b5f2abe) ) \
+ ROM_LOAD16_BYTE_BIOS( 4, "gcp_v311_2-lo.u12", 0x020001, 0x10000, CRC(5bf4c74c) SHA1(1f7b17170accdf9e448c1a5d8bc430aa2d1d931b) ) \
+ ROM_SYSTEM_BIOS(5, "tenp400", "TenPlay 4.00" ) /* needs printer switch hooked up so it can be turned off */ \
+ ROM_LOAD16_BYTE_BIOS( 5, "gcp_v400_1-hi.u16", 0x000000, 0x10000, CRC(69295167) SHA1(855f53abbb9dc15e5518e16c5c2dfe4134d07306) ) \
+ ROM_LOAD16_BYTE_BIOS( 5, "gcp_v400_1-lo.u11", 0x000001, 0x10000, CRC(504c2171) SHA1(a93367f520afb86c97c0a191714b72823c95cdd2) ) \
+ ROM_LOAD16_BYTE_BIOS( 5, "gcp_v400_2-hi.u17", 0x020000, 0x10000, CRC(13fb4e2d) SHA1(3eef07aecc3a201ae0b20634c7fd0c87c89fd7f1) ) \
+ ROM_LOAD16_BYTE_BIOS( 5, "gcp_v400_2-lo.u12", 0x020001, 0x10000, CRC(a5cc4515) SHA1(80070521476e92323a6baa6e55928ca5b751a332) )
+
+ROM_START( ar_bios )
+ ARCADIA_BIOS
+
+ ROM_REGION16_BE(0x180000, "user3", ROMREGION_ERASEFF)
+ROM_END
+
+
+/*************************************
+ *
+ * Specific games
+ *
+ *************************************/
+
+/* AIRH */
+ROM_START( ar_airh )
+ ARCADIA_BIOS
+
+ ROM_REGION16_BE( 0x180000, "user3", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "airh_1h.bin", 0x00000, 0x10000, CRC(290e8e9e) SHA1(9215e36f02adf4064934aab99accefcb17ea6d3f) )
+ ROM_LOAD16_BYTE( "airh_1l.bin", 0x00001, 0x10000, CRC(155452b6) SHA1(aeaa67ea9cc543c9a43094545450159e4784fb5c) )
+ROM_END
+
+ROM_START( ar_airh2 )
+ ARCADIA_BIOS
+
+ ROM_REGION16_BE( 0x180000, "user3", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "arcadia4.u10", 0x00000, 0x10000, CRC(baf8d886) SHA1(77efbc27c1cf717dfee2686009a957029eb1b113) )
+ ROM_LOAD16_BYTE( "arcadia4.u6", 0x00001, 0x10000, CRC(ccff38ee) SHA1(ae89dbc9533358c80423b2dc21f101816730be7c) )
+
+ ROM_REGION( 0x104, "misc", ROMREGION_ERASEFF )
+ ROM_LOAD( "arcadia.u14.bin", 0x000, 0x104, CRC(1af35582) SHA1(a78aa61a56dea9b5c9df8b734f99adb0383d135b) ) // bad/protected?
+ROM_END
+
+
+/* BOWL V 2.1 */
+ROM_START( ar_bowl )
+ ARCADIA_BIOS
+
+ ROM_REGION16_BE( 0x180000, "user3", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "bowl_1h.bin", 0x00000, 0x10000, CRC(c0c20422) SHA1(3576df08e7a4cdadaf9dea5da0770efe5f461b07) )
+ ROM_LOAD16_BYTE( "bowl_1l.bin", 0x00001, 0x10000, CRC(1c7fe75c) SHA1(b1830b91b53ec24d4b072898acac02552e2eae97) )
+ ROM_LOAD16_BYTE( "bowl_2h.bin", 0x20000, 0x10000, CRC(a1e497d8) SHA1(4b4885c6937b7cfb24921e84a80d6d4f56844a73) )
+ ROM_LOAD16_BYTE( "bowl_2l.bin", 0x20001, 0x10000, CRC(ce23aa34) SHA1(4b17a8447286aeb775c4edb1968978e281422421) )
+ ROM_LOAD16_BYTE( "bowl_3h.bin", 0x40000, 0x10000, CRC(0c55da71) SHA1(db8a1494fca3aa044da27ea1d3acf68be415be23) )
+ ROM_LOAD16_BYTE( "bowl_3l.bin", 0x40001, 0x10000, CRC(5ce00809) SHA1(d7f336df28a033b38b5296537826d164aaf5e8c9) )
+ROM_END
+
+
+/* DART V 2.1 */
+ROM_START( ar_dart )
+ ARCADIA_BIOS
+
+ ROM_REGION16_BE( 0x180000, "user3", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "dart_1h.bin", 0x00000, 0x10000, CRC(4d6a33e2) SHA1(1a227b5b0b4aca40d46af62e44deebca60582363) )
+ ROM_LOAD16_BYTE( "dart_1l.bin", 0x00001, 0x10000, CRC(3fa66973) SHA1(66b59870f8ed1bb5b46b2887d99a6a71ff0514ba) )
+ ROM_LOAD16_BYTE( "dart_2h.bin", 0x20000, 0x10000, CRC(3a30426a) SHA1(bf9226d2bfd1fb2d70e55e30aa3dde953baf5792) )
+ ROM_LOAD16_BYTE( "dart_2l.bin", 0x20001, 0x10000, CRC(479c0b73) SHA1(2ad958f4f2d902635d030cf3f466097da3cc421c) )
+ ROM_LOAD16_BYTE( "dart_3h.bin", 0x40000, 0x10000, CRC(dd217562) SHA1(80e21112a87259785e5d172249dfe8058970fd4d) )
+ ROM_LOAD16_BYTE( "dart_3l.bin", 0x40001, 0x10000, CRC(12cff829) SHA1(3826e5442bb125dff4f10ef8b0b65a2d5b8d9985) )
+ ROM_LOAD16_BYTE( "dart_4h.bin", 0x60000, 0x10000, CRC(98b27f13) SHA1(eb4fe813be4f202badfb947291e75ec0df915c25) )
+ ROM_LOAD16_BYTE( "dart_4l.bin", 0x60001, 0x10000, CRC(a059204c) SHA1(01fb21175957fa8e92f918ea560ceecc809ed0b7) )
+ ROM_LOAD16_BYTE( "dart_5h.bin", 0x80000, 0x10000, CRC(38f4c236) SHA1(1a5501ed8e94cff584f40c3b984aff7aea9ec956) )
+ ROM_LOAD16_BYTE( "dart_5l.bin", 0x80001, 0x10000, CRC(df4103cc) SHA1(c792cc52148afa7bde6458704d9de2550b6eb636) )
+ ROM_LOAD16_BYTE( "dart_6h.bin", 0xa0000, 0x10000, CRC(e21cc8be) SHA1(04280eef26f4a97c2280bdec19b1bc586fceffb0) )
+ ROM_LOAD16_BYTE( "dart_6l.bin", 0xa0001, 0x10000, CRC(21112d4e) SHA1(95e49aa2f23c6d005a0de3cf96a1c06adeacf2a9) )
+ROM_END
+
+ROM_START( ar_dart2 )
+ ARCADIA_BIOS
+
+ ROM_REGION16_BE(0x200000, "user3", 0)
+ ROM_LOAD16_BYTE( "arcadia3.u10", 0x00000, 0x10000, CRC(7166c736) SHA1(9892725b4d0aac6486950f8153083ba3f6982ad8) )
+ ROM_LOAD16_BYTE( "arcadia3.u6", 0x00001, 0x10000, CRC(f226137e) SHA1(61540885ff83420f5adc1087547e0ece33383ffd) )
+ ROM_LOAD16_BYTE( "arcadia3.u11", 0x20000, 0x10000, CRC(5d9a7804) SHA1(acd8eb7fd28594e8008eb953f843a72f12782ea2) )
+ ROM_LOAD16_BYTE( "arcadia3.u7", 0x20001, 0x10000, CRC(a4876410) SHA1(668d120f688d31d86645fa67e01cd7e6356ca340) )
+ ROM_LOAD16_BYTE( "arcadia3.u12", 0x40000, 0x10000, CRC(0cb77441) SHA1(cadd5656d2a97a852bcc231c7df22965f751a80a) )
+ ROM_LOAD16_BYTE( "arcadia3.u8", 0x40001, 0x10000, CRC(97caab85) SHA1(9fd1b90d9cce073db81724ddd62f3e4ec610792b) )
+ ROM_LOAD16_BYTE( "arcadia3.u13", 0x60000, 0x10000, CRC(9ccf347e) SHA1(9c2b5276543d20006e115459ac5451e2e807b28f) )
+ ROM_LOAD16_BYTE( "arcadia3.u9", 0x60001, 0x10000, CRC(39c6675a) SHA1(6b79c2afab5b42b83d673836b94d7baa7a4e3214) )
+ ROM_LOAD16_BYTE( "arcadia3.u19", 0x80000, 0x10000, CRC(2495a19e) SHA1(2cfb4c1ebb67b534d7c6df28512c80b52931e244) )
+ ROM_LOAD16_BYTE( "arcadia3.u15", 0x80001, 0x10000, BAD_DUMP CRC(6d7006df) SHA1(eb6a0c9df3ec1bf5d0a180e138a591f374555f1c) ) // FIXED BITS (0000x000)
+ ROM_LOAD16_BYTE( "arcadia3.u20", 0xa0000, 0x10000, CRC(efb0f2e2) SHA1(7ba1d85ac573db9bbd1ef04d0770c7c1277bc10e) )
+ ROM_LOAD16_BYTE( "arcadia3.u16", 0xa0001, 0x10000, CRC(a9c5e939) SHA1(75de7c0fb4654b6738ecd0c170589f3a46012f33) )
+
+ ROM_REGION( 0x104, "misc", ROMREGION_ERASEFF )
+ ROM_LOAD( "arcadia.u14.bin", 0x000, 0x104, CRC(1af35582) SHA1(a78aa61a56dea9b5c9df8b734f99adb0383d135b) ) // bad/protected?
+ROM_END
+
+
+/*
+ Magic Johnson's Fast Break
+
+ PIGGYBACK 1.5 MBYTE ROM BOARD REV A
+
+ 3h 7h x
+ 2h 6h x
+ 1h 5h x
+ scpa1h 4h 8h
+ 3l 7l x
+ 2l 6l x
+ DS1220Y 1l 5l x
+ sec-scpa scpa1l 4l 8l
+
+Labeled Like this:
+
+*FAST - V:28
+<----1-LO
+(C)1989 Arcadia Sys
+
+
+*/
+ROM_START( ar_fast )
+ ARCADIA_BIOS
+
+ ROM_REGION16_BE( 0x180000, "user3", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "fast-v28_1-hi.u11", 0x000000, 0x10000, CRC(091e4533) SHA1(61a16deecd32b386d62aab95e8d4a61bddcd8af4) )
+ ROM_LOAD16_BYTE( "fast-v28_1-lo.u15", 0x000001, 0x10000, CRC(8f7685c1) SHA1(b379c1a47618401cfbfcc7bd2d13ae51f5e73e46) )
+ ROM_LOAD16_BYTE( "fast-v28_2-hi.u10", 0x020000, 0x10000, CRC(3a3dd931) SHA1(7be3316e2acf6b14b29ef2e36d8f76999d5d4e94) )
+ ROM_LOAD16_BYTE( "fast-v28_2-lo.u14", 0x020001, 0x10000, CRC(4838d7e5) SHA1(d2ae5b8f25df51936937ddf62001347fccdf830a) )
+ ROM_LOAD16_BYTE( "fast-v28_3-hi.u9", 0x040000, 0x10000, CRC(db94fa62) SHA1(4fe79a4226161b15ecdda9d85c1ad84cf31b6a30) )
+ ROM_LOAD16_BYTE( "fast-v28_3-lo.u13", 0x040001, 0x10000, CRC(a400367d) SHA1(a4362beeb35fa0c9020883eab0a71194f3a90b9a) )
+ ROM_LOAD16_BYTE( "fast-v28_4-hi.u20", 0x060000, 0x10000, CRC(c0a021dd) SHA1(c4c40c05050a2831b55683d85ee39b8870e0bf88) )
+ ROM_LOAD16_BYTE( "fast-v28_4-lo.u24", 0x060001, 0x10000, CRC(870e60f1) SHA1(0f0566da96dfc898dbbc35dfaba489d1fc9ab435) )
+ ROM_LOAD16_BYTE( "fast-v28_5-hi.u19", 0x080000, 0x10000, CRC(6daf4817) SHA1(ca0bf79e77a3e878da1f97ff9a64107e8c112aee) )
+ ROM_LOAD16_BYTE( "fast-v28_5-lo.u23", 0x080001, 0x10000, CRC(f489da29) SHA1(5e70183acfd0d849ae9691b312ca98698b1a2252) )
+ ROM_LOAD16_BYTE( "fast-v28_6-hi.u18", 0x0a0000, 0x10000, CRC(b23dbcfd) SHA1(67495235016e4bcbf6251e4073d6938a3c5b0eea) )
+ ROM_LOAD16_BYTE( "fast-v28_6-lo.u22", 0x0a0001, 0x10000, CRC(4e23e807) SHA1(69c910d70fb85d037257b19a1be9e99c617bf1c4) )
+ ROM_LOAD16_BYTE( "fast-v28_7-hi.u17", 0x0c0000, 0x10000, CRC(74d598eb) SHA1(9434169d316fc2802e7790e5b09be086fccab351) )
+ ROM_LOAD16_BYTE( "fast-v28_7-lo.u21", 0x0c0001, 0x10000, CRC(b0649050) SHA1(a8efdfc82a63fc16ee2103b4c96b92d6f9e7afc6) )
+ ROM_LOAD16_BYTE( "fast-v28_8-hi.u28", 0x0e0000, 0x10000, CRC(3650aaf0) SHA1(cc37aa94360159f45076eafaae8140a661bd52f6) )
+ ROM_LOAD16_BYTE( "fast-v28_8-lo.u32", 0x0e0001, 0x10000, CRC(82603f68) SHA1(8affe73e97b966b8e63bff2c7914fb5ead7b60ff) )
+
+ ROM_REGION( 0x0200, "plds", 0 )
+ ROM_LOAD( "pal16l8-sec-scpa.u8", 0x0000, 0x0104, CRC(3a4df3aa) SHA1(d0e64af4e1602347af60cd97c6b5b1a9d65cb270) ) /* PAL is read protected */
+ROM_END
+
+
+/* Arcadia Magic Johnson's Fast Break V 2.7 on PIGGYBACK 1.5 MBYTE ROM BOARD REV A */
+ROM_START( ar_fasta )
+ ARCADIA_BIOS
+
+ ROM_REGION16_BE( 0x180000, "user3", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "fast-v27_1-hi.u11", 0x000000, 0x10000, CRC(58ce7e02) SHA1(73fa33858dceb924e86b95130f8d6a0d3ae5cc6f) )
+ ROM_LOAD16_BYTE( "fast-v27_1-lo.u15", 0x000001, 0x10000, CRC(6bf75490) SHA1(3df610dd488e0711a190a9ec47adfd047313a597) )
+ ROM_LOAD16_BYTE( "fast-v27_2-hi.u10", 0x020000, 0x10000, CRC(3a3dd931) SHA1(7be3316e2acf6b14b29ef2e36d8f76999d5d4e94) ) /* matches v2.8 */
+ ROM_LOAD16_BYTE( "fast-v27_2-lo.u14", 0x020001, 0x10000, CRC(4838d7e5) SHA1(d2ae5b8f25df51936937ddf62001347fccdf830a) ) /* matches v2.8 */
+ ROM_LOAD16_BYTE( "fast-v27_3-hi.u9", 0x040000, 0x10000, CRC(db94fa62) SHA1(4fe79a4226161b15ecdda9d85c1ad84cf31b6a30) ) /* matches v2.8 */
+ ROM_LOAD16_BYTE( "fast-v27_3-lo.u13", 0x040001, 0x10000, CRC(a400367d) SHA1(a4362beeb35fa0c9020883eab0a71194f3a90b9a) ) /* matches v2.8 */
+ ROM_LOAD16_BYTE( "fast-v27_4-hi.u20", 0x060000, 0x10000, CRC(c0a021dd) SHA1(c4c40c05050a2831b55683d85ee39b8870e0bf88) ) /* matches v2.8 */
+ ROM_LOAD16_BYTE( "fast-v27_4-lo.u24", 0x060001, 0x10000, CRC(870e60f1) SHA1(0f0566da96dfc898dbbc35dfaba489d1fc9ab435) ) /* matches v2.8 */
+ ROM_LOAD16_BYTE( "fast-v27_5-hi.u19", 0x080000, 0x10000, CRC(6daf4817) SHA1(ca0bf79e77a3e878da1f97ff9a64107e8c112aee) ) /* matches v2.8 */
+ ROM_LOAD16_BYTE( "fast-v27_5-lo.u23", 0x080001, 0x10000, CRC(f489da29) SHA1(5e70183acfd0d849ae9691b312ca98698b1a2252) ) /* matches v2.8 */
+ ROM_LOAD16_BYTE( "fast-v27_6-hi.u18", 0x0a0000, 0x10000, CRC(e36424a4) SHA1(e17375de39dccb7bec6aaaa06879a20b532d0199) )
+ ROM_LOAD16_BYTE( "fast-v27_6-lo.u22", 0x0a0001, 0x10000, CRC(23441bac) SHA1(25fd776cdafbb88b5f63201d30d42eeafde88733) )
+ ROM_LOAD16_BYTE( "fast-v27_7-hi.u17", 0x0c0000, 0x10000, CRC(2ac2f165) SHA1(5d7501de510efc4ca34765d99ed8c2c374309659) )
+ ROM_LOAD16_BYTE( "fast-v27_7-lo.u21", 0x0c0001, 0x10000, CRC(41255827) SHA1(494e3da21845c6d62ce3c7ba75e2557fb016b91a) )
+ ROM_LOAD16_BYTE( "fast-v27_8-hi.u28", 0x0e0000, 0x10000, CRC(8e838770) SHA1(73ad9e925f725b173ce554e97c28426cb20ec194) )
+ ROM_LOAD16_BYTE( "fast-v27_8-lo.u32", 0x0e0001, 0x10000, CRC(2d55af35) SHA1(5a6a3b12c222d16c30bc7f2a7904433614448e10) )
+
+ ROM_REGION( 0x0200, "plds", 0 )
+ ROM_LOAD( "pal16l8-sec-scpa.u8", 0x0000, 0x0104, CRC(3a4df3aa) SHA1(d0e64af4e1602347af60cd97c6b5b1a9d65cb270) )
+ROM_END
+
+
+/* Arcadia LEADER BOARD V 2.5 on PIGGYBACK 1.5 MBYTE ROM BOARD REV A */
+ROM_START( ar_ldrb )
+ ARCADIA_BIOS
+
+ ROM_REGION16_BE( 0x180000, "user3", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "leader_board_01-hi_v2.5.u11", 0x00000, 0x10000, CRC(0236511c) SHA1(22b2ee076ed57ba38413c16a52510383d8488e25) )
+ ROM_LOAD16_BYTE( "leader_board_01-lo_v2.5.u15", 0x00001, 0x10000, CRC(786d34b9) SHA1(5fd6ef94f65c6fd503d3682154b576d6509a3aa9) )
+ ROM_LOAD16_BYTE( "leader_board_02-hi_v2.5.u10", 0x20000, 0x10000, CRC(64e5fbae) SHA1(0dde0d05b05f232aac9ad44398cedd8c7627f146) ) /* matches v2.4 */
+ ROM_LOAD16_BYTE( "leader_board_02-lo_v2.5.u14", 0x20001, 0x10000, CRC(bb115e1c) SHA1(768cf51661f630b1c0a4b83b9f6124c78a517d0a) ) /* matches v2.4 */
+ ROM_LOAD16_BYTE( "leader_board_03-hi_v2.5.u9", 0x40000, 0x10000, CRC(1d290e28) SHA1(0d589628fe59de9d7e2a57ddeabca991d1c79fdf) ) /* matches v2.4 */
+ ROM_LOAD16_BYTE( "leader_board_03-lo_v2.5.u13", 0x40001, 0x10000, CRC(b1352a77) SHA1(ac7337a3778442d444002f730e2880f61f32cf2a) ) /* matches v2.4 */
+ ROM_LOAD16_BYTE( "leader_board_04-hi_v2.5.u20", 0x60000, 0x10000, CRC(b621c688) SHA1(f2a50ebfc50725cdef77bb8a4864405dbb203784) ) /* matches v2.4 */
+ ROM_LOAD16_BYTE( "leader_board_04-lo_v2.5.u24", 0x60001, 0x10000, CRC(13f9c4b0) SHA1(08a1fab271307191c5caa108c4ae284f92c270e4) ) /* matches v2.4 */
+ ROM_LOAD16_BYTE( "leader_board_05-hi_v2.5.u19", 0x80000, 0x10000, CRC(71273172) SHA1(2b6204fdf03268e920b5948c999aa725fc66cac6) ) /* matches v2.4 */
+ ROM_LOAD16_BYTE( "leader_board_05-lo_v2.5.u23", 0x80001, 0x10000, CRC(d9028183) SHA1(009b496da31f67b11de54e50254a9897ea68cd92) ) /* matches v2.4 */
+ ROM_LOAD16_BYTE( "leader_board_06-hi_v2.5.u18", 0xa0000, 0x10000, CRC(a6ce61a4) SHA1(6cd64b7d589c91aeee06293f473fd1b3c56b19e0) ) /* matches v2.4 */
+ ROM_LOAD16_BYTE( "leader_board_06-lo_v2.5.u22", 0xa0001, 0x10000, CRC(13c71422) SHA1(93e6dca2b28e1b5235b922f064be96eed0bedd8c) ) /* matches v2.4 */
+ ROM_LOAD16_BYTE( "leader_board_07-hi_v2.5.u17", 0xc0000, 0x10000, CRC(4ebb8d12) SHA1(c328a26139ba0792cab1020b32eb4b8e39d51a22) )
+ ROM_LOAD16_BYTE( "leader_board_07-lo_v2.5.u21", 0xc0001, 0x10000, CRC(1afa9a4f) SHA1(3e5ca56e03d693a72424b9ad0717494ea8eb561e) )
+ ROM_LOAD16_BYTE( "leader_board_08-hi_v2.5.u28", 0xe0000, 0x10000, CRC(fbdca9af) SHA1(9612eb777a00ba4153f40eaefd162ca5b5efdb54) )
+ ROM_LOAD16_BYTE( "leader_board_08-lo_v2.5.u32", 0xe0001, 0x10000, CRC(322f52eb) SHA1(3033eb753fb8b3bf56b152377bf567b06a0c8144) )
+
+ ROM_REGION( 0x0200, "plds", 0 )
+ ROM_LOAD( "pal16l8-sec-scpa.u8", 0x0000, 0x0104, CRC(3a4df3aa) SHA1(d0e64af4e1602347af60cd97c6b5b1a9d65cb270) )
+ROM_END
+
+
+/* Arcadia LEADER BOARD V 2.4 on PIGGYBACK 1.5 MBYTE ROM BOARD REV A */
+ROM_START( ar_ldrba )
+ ARCADIA_BIOS
+
+ ROM_REGION16_BE( 0x180000, "user3", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "leader_board_01-hi_v2.4.u11", 0x00000, 0x10000, CRC(fe1287e9) SHA1(34088416d970614b31b25e982ef40fd950080b3e) )
+ ROM_LOAD16_BYTE( "leader_board_01-lo_v2.4.u15", 0x00001, 0x10000, CRC(7c7bb9ee) SHA1(5c76445732ab139db82fe21c16f49e2609bb03aa) )
+ ROM_LOAD16_BYTE( "leader_board_02-hi_v2.4.u10", 0x20000, 0x10000, CRC(64e5fbae) SHA1(0dde0d05b05f232aac9ad44398cedd8c7627f146) )
+ ROM_LOAD16_BYTE( "leader_board_02-lo_v2.4.u14", 0x20001, 0x10000, CRC(bb115e1c) SHA1(768cf51661f630b1c0a4b83b9f6124c78a517d0a) )
+ ROM_LOAD16_BYTE( "leader_board_03-hi_v2.4.u9", 0x40000, 0x10000, CRC(1d290e28) SHA1(0d589628fe59de9d7e2a57ddeabca991d1c79fdf) )
+ ROM_LOAD16_BYTE( "leader_board_03-lo_v2.4.u13", 0x40001, 0x10000, CRC(b1352a77) SHA1(ac7337a3778442d444002f730e2880f61f32cf2a) )
+ ROM_LOAD16_BYTE( "leader_board_04-hi_v2.4.u20", 0x60000, 0x10000, CRC(b621c688) SHA1(f2a50ebfc50725cdef77bb8a4864405dbb203784) )
+ ROM_LOAD16_BYTE( "leader_board_04-lo_v2.4.u24", 0x60001, 0x10000, CRC(13f9c4b0) SHA1(08a1fab271307191c5caa108c4ae284f92c270e4) )
+ ROM_LOAD16_BYTE( "leader_board_05-hi_v2.4.u19", 0x80000, 0x10000, CRC(71273172) SHA1(2b6204fdf03268e920b5948c999aa725fc66cac6) )
+ ROM_LOAD16_BYTE( "leader_board_05-lo_v2.4.u23", 0x80001, 0x10000, CRC(d9028183) SHA1(009b496da31f67b11de54e50254a9897ea68cd92) )
+ ROM_LOAD16_BYTE( "leader_board_06-hi_v2.4.u18", 0xa0000, 0x10000, CRC(a6ce61a4) SHA1(6cd64b7d589c91aeee06293f473fd1b3c56b19e0) )
+ ROM_LOAD16_BYTE( "leader_board_06-lo_v2.4.u22", 0xa0001, 0x10000, CRC(13c71422) SHA1(93e6dca2b28e1b5235b922f064be96eed0bedd8c) )
+ ROM_LOAD16_BYTE( "leader_board_07-hi_v2.4.u17", 0xc0000, 0x10000, CRC(61807fa9) SHA1(9d7097b921cf4026bb2828780e3fb87e0a3a24a0) )
+ ROM_LOAD16_BYTE( "leader_board_07-lo_v2.4.u21", 0xc0001, 0x10000, CRC(c62dae9f) SHA1(59b8e1c2469edd57024a4f3ca4222811442fa077) )
+ ROM_LOAD16_BYTE( "leader_board_08-hi_v2.4.u28", 0xe0000, 0x10000, CRC(b5911807) SHA1(b2995b308b2618f312005f130048e73c151311ae) )
+ ROM_LOAD16_BYTE( "leader_board_08-lo_v2.4.u32", 0xe0001, 0x10000, CRC(1f1ea828) SHA1(4af463bc6d58d64d4f082971c71654a6bb0c26bc) )
+
+ ROM_REGION( 0x0200, "plds", 0 )
+ ROM_LOAD( "pal16l8-sec-scpa.u8", 0x0000, 0x0104, CRC(3a4df3aa) SHA1(d0e64af4e1602347af60cd97c6b5b1a9d65cb270) )
+ROM_END
+
+/* Arcadia LEADER BOARD v 2.6? on PIGGYBACK 1.5 MBYTE ROM BOARD REV ? */
+ROM_START( ar_ldrbb ) /* Later then v2.5?? as 7H & 7L match v2.5 and are newer then v2.4 */
+ ARCADIA_BIOS
+
+ ROM_REGION16_BE( 0x180000, "user3", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "ldrb_1h.u11", 0x00000, 0x10000, CRC(97dcde78) SHA1(d324415b853de17646b5266581bea27e571fa08f) )
+ ROM_LOAD16_BYTE( "ldrb_1l_gcp_22.u15", 0x00001, 0x10000, CRC(b51d17f7) SHA1(56add2f69c35e5082926bd59be7f98a6a223c549) )
+ ROM_LOAD16_BYTE( "ldrb_2h.u10", 0x20000, 0x10000, CRC(64e5fbae) SHA1(0dde0d05b05f232aac9ad44398cedd8c7627f146) ) /* matches v2.4 */
+ ROM_LOAD16_BYTE( "ldrb_2l.u14", 0x20001, 0x10000, CRC(bb115e1c) SHA1(768cf51661f630b1c0a4b83b9f6124c78a517d0a) ) /* matches v2.4 */
+ ROM_LOAD16_BYTE( "ldrb_3h.u9", 0x40000, 0x10000, CRC(1d290e28) SHA1(0d589628fe59de9d7e2a57ddeabca991d1c79fdf) ) /* matches v2.4 */
+ ROM_LOAD16_BYTE( "ldrb_3l.u13", 0x40001, 0x10000, CRC(b1352a77) SHA1(ac7337a3778442d444002f730e2880f61f32cf2a) ) /* matches v2.4 */
+ ROM_LOAD16_BYTE( "ldrb_4h.u20", 0x60000, 0x10000, CRC(b621c688) SHA1(f2a50ebfc50725cdef77bb8a4864405dbb203784) ) /* matches v2.4 */
+ ROM_LOAD16_BYTE( "ldrb_4l.u24", 0x60001, 0x10000, CRC(13f9c4b0) SHA1(08a1fab271307191c5caa108c4ae284f92c270e4) ) /* matches v2.4 */
+ ROM_LOAD16_BYTE( "ldrb_5h.u19", 0x80000, 0x10000, CRC(71273172) SHA1(2b6204fdf03268e920b5948c999aa725fc66cac6) ) /* matches v2.4 */
+ ROM_LOAD16_BYTE( "ldrb_5l.u23", 0x80001, 0x10000, CRC(d9028183) SHA1(009b496da31f67b11de54e50254a9897ea68cd92) ) /* matches v2.4 */
+ ROM_LOAD16_BYTE( "ldrb_6h.u18", 0xa0000, 0x10000, CRC(a6ce61a4) SHA1(6cd64b7d589c91aeee06293f473fd1b3c56b19e0) ) /* matches v2.4 */
+ ROM_LOAD16_BYTE( "ldrb_6l.u22", 0xa0001, 0x10000, CRC(13c71422) SHA1(93e6dca2b28e1b5235b922f064be96eed0bedd8c) ) /* matches v2.4 */
+ ROM_LOAD16_BYTE( "ldrb_7h.u17", 0xc0000, 0x10000, CRC(4ebb8d12) SHA1(c328a26139ba0792cab1020b32eb4b8e39d51a22) ) /* matches v2.5 */
+ ROM_LOAD16_BYTE( "ldrb_7l.u21", 0xc0001, 0x10000, CRC(1afa9a4f) SHA1(3e5ca56e03d693a72424b9ad0717494ea8eb561e) ) /* matches v2.5 */
+ ROM_LOAD16_BYTE( "ldrb_8h.u28", 0xe0000, 0x10000, CRC(701f50ba) SHA1(4ea6be00aa2d32d739fa6ec70ec8bce470b28f90) )
+ ROM_LOAD16_BYTE( "ldrb_8l.u32", 0xe0001, 0x10000, CRC(80642c1d) SHA1(fc2101b749db3ebb3499c8870026c05acf46fa4d) )
+
+ ROM_REGION( 0x0200, "plds", 0 )
+ ROM_LOAD( "pal16l8-sec-scpa.u8", 0x0000, 0x0104, CRC(3a4df3aa) SHA1(d0e64af4e1602347af60cd97c6b5b1a9d65cb270) )
+ROM_END
+
+/* NINJ V 2.5 */
+ROM_START( ar_ninj )
+ ARCADIA_BIOS
+
+ ROM_REGION16_BE(0x200000, "user3", 0)
+ ROM_LOAD16_BYTE( "ninj_1h.bin", 0x00000, 0x10000, CRC(53b07b4d) SHA1(4852005adf60fe63f2da880dd32740d18fd31169) )
+ ROM_LOAD16_BYTE( "ninj_1l.bin", 0x00001, 0x10000, CRC(3337a6c1) SHA1(be9719f0cd5872b51f4c6d32fcac2638c0dedaf4) )
+ ROM_LOAD16_BYTE( "ninj_2h.bin", 0x20000, 0x10000, CRC(e28a5fa8) SHA1(150e26aea24706b72d2e6612280d5dddc527061b) )
+ ROM_LOAD16_BYTE( "ninj_2l.bin", 0x20001, 0x10000, CRC(4f52c008) SHA1(c26bf9a7a21a5b78697a684bada90ff70160f868) )
+ ROM_LOAD16_BYTE( "ninj_3h.bin", 0x40000, 0x10000, CRC(c6e4dd36) SHA1(a8dcea97e0eb1da462ad55fd543c637544bfd059) )
+ ROM_LOAD16_BYTE( "ninj_3l.bin", 0x40001, 0x10000, CRC(1dca7ea5) SHA1(2950ea2e9267d27e0ebe785a08e2d6627ae5eb17) )
+ ROM_LOAD16_BYTE( "ninj_4h.bin", 0x60000, 0x10000, CRC(dc1a21d4) SHA1(76463837e0da8fd61de334e00adb807c7ef92523) )
+ ROM_LOAD16_BYTE( "ninj_4l.bin", 0x60001, 0x10000, CRC(64660b15) SHA1(9e9c5f61add1439613400fee0c2376dc4000e6c6) )
+ ROM_LOAD16_BYTE( "ninj_5h.bin", 0x80000, 0x10000, CRC(49cda31b) SHA1(e9579b9d47f7e638f933b8ce659bc63c8bdeb0a4) )
+ ROM_LOAD16_BYTE( "ninj_5l.bin", 0x80001, 0x10000, CRC(1c5ef815) SHA1(7e88c1545ee15efd928220989f8b29207a8fec7e) )
+ ROM_LOAD16_BYTE( "ninj_6h.bin", 0xa0000, 0x10000, CRC(b647f31e) SHA1(18367b96418ab950ba97d656e1466234af3bca80) )
+ ROM_LOAD16_BYTE( "ninj_6l.bin", 0xa0001, 0x10000, CRC(9e5407e3) SHA1(85a8383573f3cd120f323e867c7fa2b6badd5aad) )
+ROM_END
+
+ROM_START( ar_ninj2 )
+ ARCADIA_BIOS
+
+ ROM_REGION16_BE(0x200000, "user3", 0)
+ ROM_LOAD16_BYTE( "arcadia5.u10", 0x00000, 0x10000, CRC(217cb8eb) SHA1(7cb1da4d5d5b5af5f42c10848c7535bdeebbcd94) )
+ ROM_LOAD16_BYTE( "arcadia5.u6", 0x00001, 0x10000, CRC(009bee8f) SHA1(ff61a0770643400ecddc70e603ca6589424b6831) )
+ ROM_LOAD16_BYTE( "arcadia5.u11", 0x20000, 0x10000, CRC(f5c84e48) SHA1(8149a225a406ffb7c9faaa48af4947c2f66f750d) )
+ ROM_LOAD16_BYTE( "arcadia5.u7", 0x20001, 0x10000, CRC(62d32d21) SHA1(3b80e0a4543d64f905139224f333a913cde60f30) )
+ ROM_LOAD16_BYTE( "arcadia5.u12", 0x40000, 0x10000, CRC(c6e4dd36) SHA1(a8dcea97e0eb1da462ad55fd543c637544bfd059) )
+ ROM_LOAD16_BYTE( "arcadia5.u8", 0x40001, 0x10000, CRC(1dca7ea5) SHA1(2950ea2e9267d27e0ebe785a08e2d6627ae5eb17) )
+ ROM_LOAD16_BYTE( "arcadia5.u13", 0x60000, 0x10000, CRC(1bca3231) SHA1(57bd0516c30c4b7d8b4ca27580f770732b1a56bd) )
+ ROM_LOAD16_BYTE( "arcadia5.u9", 0x60001, 0x10000, CRC(df2f98ae) SHA1(cbad0371109aab9fa6c72a022a496e9b85c5fcd4) )
+ ROM_LOAD16_BYTE( "arcadia5.u19", 0x80000, 0x10000, CRC(49cda31b) SHA1(e9579b9d47f7e638f933b8ce659bc63c8bdeb0a4) )
+ ROM_LOAD16_BYTE( "arcadia5.u15", 0x80001, 0x10000, CRC(1c5ef815) SHA1(7e88c1545ee15efd928220989f8b29207a8fec7e) )
+ ROM_LOAD16_BYTE( "arcadia5.u20", 0xa0000, 0x10000, CRC(7359920b) SHA1(72c7438f9f5ef5d6a23f11fc58d32f8e1ff0ae44) )
+ ROM_LOAD16_BYTE( "arcadia5.u16", 0xa0001, 0x10000, CRC(85a639bb) SHA1(22bfadfe6c8fd366e45ec172c070d9811e1ea8a9) )
+
+ ROM_REGION( 0x104, "misc", ROMREGION_ERASEFF )
+ ROM_LOAD( "arcadia.u14.bin", 0x000, 0x104, CRC(1af35582) SHA1(a78aa61a56dea9b5c9df8b734f99adb0383d135b) ) // bad/protected?
+ROM_END
+
+
+
+/* RDWR V 2.3 */
+ROM_START( ar_rdwr )
+ ARCADIA_BIOS
+
+ ROM_REGION16_BE(0x200000, "user3", 0)
+ ROM_LOAD16_BYTE( "rdwr_1h.bin", 0x00000, 0x10000, CRC(f52cb704) SHA1(cce8c7484ae8c3a3d14b2e79a981780a277c9b1c) )
+ ROM_LOAD16_BYTE( "rdwr_1l.bin", 0x00001, 0x10000, CRC(fde0de6d) SHA1(7f62ce854a040775548c5ba3b05e6a4dcb0d7cfb) )
+ ROM_LOAD16_BYTE( "rdwr_2h.bin", 0x20000, 0x10000, CRC(8f3c1a2c) SHA1(e473e55457c04ebd597375e9936aeb0473507ed7) )
+ ROM_LOAD16_BYTE( "rdwr_2l.bin", 0x20001, 0x10000, CRC(21865e15) SHA1(be4b0e77a17edeb77f6a9d4bec6d49d4a46242ea) )
+ ROM_LOAD16_BYTE( "rdwr_3h.bin", 0x40000, 0x10000, CRC(0cb3bc66) SHA1(5e22abcd38fc74f472cc5090b7c2893aaabc37bd) )
+ ROM_LOAD16_BYTE( "rdwr_3l.bin", 0x40001, 0x10000, CRC(d863a958) SHA1(d27b8ff2daa51319d5c44700c6dd74e4bc8d99a4) )
+ ROM_LOAD16_BYTE( "rdwr_4h.bin", 0x60000, 0x10000, CRC(466fe771) SHA1(1cc65887e097302bd504b8c4da5f7d2b760d7f74) )
+ ROM_LOAD16_BYTE( "rdwr_4l.bin", 0x60001, 0x10000, CRC(fff39238) SHA1(05b4a70e1f808254e1fb20a15c460655d14d4216) )
+ROM_END
+
+
+/* SDWR V 2.1 */
+ROM_START( ar_sdwr )
+ ARCADIA_BIOS
+
+ ROM_REGION16_BE( 0x180000, "user3", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "sdwr_1h.bin", 0x00000, 0x10000, CRC(aef3eea8) SHA1(4bf7619f52395fcbde3c8f7af3fd7da4af03c673) )
+ ROM_LOAD16_BYTE( "sdwr_1l.bin", 0x00001, 0x10000, CRC(daed4add) SHA1(a9404a87f1958d7ab829fbb48855d2deb64c5aec) )
+ ROM_LOAD16_BYTE( "sdwr_2h.bin", 0x20000, 0x10000, CRC(d67ba564) SHA1(2afba72a77806e3925c9ca1e13c16c442a6cfc3a) )
+ ROM_LOAD16_BYTE( "sdwr_2l.bin", 0x20001, 0x10000, CRC(97f58a6d) SHA1(161bc8b3e14e5efca7b988f80cc16345280ca4bd) )
+ ROM_LOAD16_BYTE( "sdwr_3h.bin", 0x40000, 0x10000, CRC(b31ad2b2) SHA1(66003bd331f61d1bd2e8f4d595b61503dad4e4b8) )
+ ROM_LOAD16_BYTE( "sdwr_3l.bin", 0x40001, 0x10000, CRC(af929620) SHA1(5fde0f199016abf8fd9db821ee492feeba21b604) )
+ ROM_LOAD16_BYTE( "sdwr_4h.bin", 0x60000, 0x10000, CRC(7502a271) SHA1(aa318619c0b98873b435b5bbf7feb2d5d51198f9) )
+ ROM_LOAD16_BYTE( "sdwr_4l.bin", 0x60001, 0x10000, CRC(942d50b4) SHA1(eb0c9057ffd0d03dc2cde1158ce9f07de8ea6905) )
+ ROM_LOAD16_BYTE( "sdwr_5h.bin", 0x80000, 0x10000, CRC(c25ac91d) SHA1(da4d46a2c987e2be2e31c081557b2de1744fa237) )
+ ROM_LOAD16_BYTE( "sdwr_5l.bin", 0x80001, 0x10000, CRC(ecd1fbd3) SHA1(0b859d608859ccbff03db655219dfea4e609454d) )
+ ROM_LOAD16_BYTE( "sdwr_6h.bin", 0xa0000, 0x10000, CRC(ea3c8ab3) SHA1(95cb5b9dd29c19862a2659867474cbf49192f830) )
+ ROM_LOAD16_BYTE( "sdwr_6l.bin", 0xa0001, 0x10000, CRC(2544ccd7) SHA1(953aa00f2610ecd31db6e36964cbe7c2866050b9) )
+ROM_END
+
+ROM_START( ar_sdwr2 )
+ ARCADIA_BIOS
+
+ ROM_REGION16_BE(0x200000, "user3", 0)
+ ROM_LOAD16_BYTE( "arcadia1.u10", 0x00000, 0x10000, CRC(30949f1f) SHA1(270cd449f994eda76afd5532018bad636ac4cf68) )
+ ROM_LOAD16_BYTE( "arcadia1.u6", 0x00001, 0x10000, CRC(c760d1c4) SHA1(7d311e8b192e493da9501755e096599e1e8e8d3e) )
+ ROM_LOAD16_BYTE( "arcadia1.u11", 0x20000, 0x10000, CRC(d67ba564) SHA1(2afba72a77806e3925c9ca1e13c16c442a6cfc3a) )
+ ROM_LOAD16_BYTE( "arcadia1.u7", 0x20001, 0x10000, CRC(97f58a6d) SHA1(161bc8b3e14e5efca7b988f80cc16345280ca4bd) )
+ ROM_LOAD16_BYTE( "arcadia1.u12", 0x40000, 0x10000, CRC(b31ad2b2) SHA1(66003bd331f61d1bd2e8f4d595b61503dad4e4b8) )
+ ROM_LOAD16_BYTE( "arcadia1.u8", 0x40001, 0x10000, CRC(af929620) SHA1(5fde0f199016abf8fd9db821ee492feeba21b604) )
+ ROM_LOAD16_BYTE( "arcadia1.u13", 0x60000, 0x10000, CRC(360b17a6) SHA1(db7e1ce1c545139142804ce68ce5232d153fb0f2) )
+ ROM_LOAD16_BYTE( "arcadia1.u9", 0x60001, 0x10000, CRC(d724e563) SHA1(0012bc6354642a761fc223627401542ae48aea6e) )
+ ROM_LOAD16_BYTE( "arcadia1.u19", 0x80000, 0x10000, CRC(c25ac91d) SHA1(da4d46a2c987e2be2e31c081557b2de1744fa237) )
+ ROM_LOAD16_BYTE( "arcadia1.u15", 0x80001, 0x10000, CRC(ecd1fbd3) SHA1(0b859d608859ccbff03db655219dfea4e609454d) )
+ ROM_LOAD16_BYTE( "arcadia1.u20", 0xa0000, 0x10000, CRC(5791440b) SHA1(fc9297343ddc2e6e1e22b7ed9a986777519061db) )
+ ROM_LOAD16_BYTE( "arcadia1.u16", 0xa0001, 0x10000, CRC(e63e1679) SHA1(0762bff0018e006905a2e58141fdf05910f06e29) )
+
+ ROM_REGION( 0x104, "misc", ROMREGION_ERASEFF )
+ ROM_LOAD( "arcadia.u14.bin", 0x000, 0x104, CRC(1af35582) SHA1(a78aa61a56dea9b5c9df8b734f99adb0383d135b) ) // bad/protected?
+ROM_END
+
+
+/* SOCC */
+ROM_START( ar_socc )
+ ARCADIA_BIOS
+
+ ROM_REGION16_BE( 0x180000, "user3", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "socc30.1hi", 0x00000, 0x10000, CRC(b4df41cf) SHA1(681cecef390f82be420cd9f4d32afddace3da3c8) )
+ ROM_LOAD16_BYTE( "socc30.1lo", 0x00001, 0x10000, CRC(28b5e119) SHA1(3fff3252b855e6ca1aceff89ec0c61688c954d88) )
+ ROM_LOAD16_BYTE( "socc30.2hi", 0x20000, 0x10000, CRC(b3c14026) SHA1(be4e05cbf5b14a1dc77eff70bb44c8cdae57e59a) )
+ ROM_LOAD16_BYTE( "socc30.2lo", 0x20001, 0x10000, CRC(f7f9a734) SHA1(064adbfb919c7422190b5e4146fbc335a2a97091) )
+ ROM_LOAD16_BYTE( "socc30.3hi", 0x40000, 0x10000, CRC(2a2bd2a0) SHA1(9a9a0463ecf99941f88a163dcb111bf8c3508d78) )
+ ROM_LOAD16_BYTE( "socc30.3lo", 0x40001, 0x10000, CRC(f335bb8b) SHA1(a15ee6b27d6e2aab25f3260edd0803fe1fa05f0e) )
+ ROM_LOAD16_BYTE( "socc30.4hi", 0x60000, 0x10000, CRC(4f2f28dc) SHA1(cd419c80e7112163fd182d2cc58148d3674ccd8c) )
+ ROM_LOAD16_BYTE( "socc30.4lo", 0x60001, 0x10000, CRC(b326d36c) SHA1(5ac2df36754c97065f74695a9c46e2a558e8e112) )
+ ROM_LOAD16_BYTE( "socc30.5hi", 0x80000, 0x10000, CRC(4fcaec4a) SHA1(1286c57a81358a69573df6f6cedf44c564476320) )
+ ROM_LOAD16_BYTE( "socc30.5lo", 0x80001, 0x10000, CRC(f131115e) SHA1(a9050878cbc1923bb88d46ecdad8f5bd69d389ea) )
+ ROM_LOAD16_BYTE( "socc30.6hi", 0xa0000, 0x10000, CRC(9380644f) SHA1(01da02f9397c7b8fd44a78a533f09264eb4f3d0c) )
+ ROM_LOAD16_BYTE( "socc30.6lo", 0xa0001, 0x10000, CRC(b93e13ea) SHA1(0fac9cb54099f0d0ad61eb6f5bd3686c27a045b9) )
+ROM_END
+
+
+/* SPOT */
+ROM_START( ar_spot )
+ ARCADIA_BIOS
+
+ ROM_REGION16_BE( 0x180000, "user3", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "spotv2.1h", 0x00000, 0x10000, CRC(a8440838) SHA1(8d64ddb603754c85aad47bd079d0a7d80d57b36c) )
+ ROM_LOAD16_BYTE( "spotv2.1l", 0x00001, 0x10000, CRC(2abd2835) SHA1(b419da47c6390334ed8af56bc21430e5b43d6d58) )
+ ROM_LOAD16_BYTE( "spotv2.2h", 0x20000, 0x10000, CRC(f4c95f77) SHA1(46c70755e3c6d06bec4b1bd164a586292a59249d) )
+ ROM_LOAD16_BYTE( "spotv2.2l", 0x20001, 0x10000, CRC(58d7bf54) SHA1(0da63d32d738f8ed3675c6d14b2d12039af5ff21) )
+ ROM_LOAD16_BYTE( "spotv2.3h", 0x40000, 0x10000, CRC(c9d2f3b7) SHA1(1b4693bcde14dc5eefe7456d4d613e6cb674c972) )
+ ROM_LOAD16_BYTE( "spotv2.3l", 0x40001, 0x10000, CRC(adf94e81) SHA1(5ad56044008236edea0a44393daee06e572b1cc2) )
+ ROM_LOAD16_BYTE( "spotv2.4h", 0x60000, 0x10000, CRC(cdea2feb) SHA1(4bb24b8cb5dd1e88d3f468979e2f350568414668) )
+ ROM_LOAD16_BYTE( "spotv2.4l", 0x60001, 0x10000, CRC(214c353b) SHA1(819283248eac2a516f9fcdda060284ffe9c39bc8) )
+ ROM_LOAD16_BYTE( "spotv2.5h", 0x80000, 0x10000, CRC(809d0f5c) SHA1(d1bae86090db8e5cc066afb76203704e7d217fde) )
+ ROM_LOAD16_BYTE( "spotv2.5l", 0x80001, 0x10000, CRC(b86d8153) SHA1(42a564fa608e806d04052e67263afc4a5a417d40) )
+ ROM_LOAD16_BYTE( "spotv2.6h", 0xa0000, 0x10000, CRC(8c221a34) SHA1(8f246bbcb79f5e508932d776fbfa648392f7f78d) )
+ ROM_LOAD16_BYTE( "spotv2.6l", 0xa0001, 0x10000, CRC(821fa69a) SHA1(f037853be96158b8a6dd5f34e15ddfc16b6410c3) )
+ ROM_LOAD16_BYTE( "spotv2.7h", 0xc0000, 0x10000, CRC(054355db) SHA1(6f4a46230b6dfd4727816737c31bce9483d3a3f7) )
+ ROM_LOAD16_BYTE( "spotv2.7l", 0xc0001, 0x10000, CRC(30d396d8) SHA1(2a56727554a823f56b37b9e8d324e9f53524eb02) )
+ ROM_LOAD16_BYTE( "spotv2.8h", 0xe0000, 0x10000, CRC(94dbb239) SHA1(0c475c8e102cc835d01e3de4604c1323219048f1) )
+ ROM_LOAD16_BYTE( "spotv2.8l", 0xe0001, 0x10000, CRC(4d7f8f05) SHA1(04690717cec5912cd12ccb7135614842f5597898) )
+ROM_END
+
+
+/* SPRG */
+ROM_START( ar_sprg )
+ ARCADIA_BIOS
+
+ ROM_REGION16_BE( 0x180000, "user3", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "sprg_1h.bin", 0x00000, 0x10000, CRC(90b45dc5) SHA1(7cf1fc27e95bf207ed94cc5c20cf0c0ae7799d83) )
+ ROM_LOAD16_BYTE( "sprg_1l.bin", 0x00001, 0x10000, CRC(e5ce68e9) SHA1(dfda2e0bffc499a497865bc214450653880eccf2) )
+ ROM_LOAD16_BYTE( "sprg_2h.bin", 0x20000, 0x10000, CRC(02ef780f) SHA1(d21d6e8a379a2b38de7f3ec0540f67dd6425cbc9) )
+ ROM_LOAD16_BYTE( "sprg_2l.bin", 0x20001, 0x10000, CRC(fa1f5b23) SHA1(4f808d8ee9cd672061995d0bfab65851bf1c01d3) )
+ ROM_LOAD16_BYTE( "sprg_3h.bin", 0x40000, 0x10000, CRC(48130e6e) SHA1(479555c4a5c041c04135f01fbdd5c5f78f4422cf) )
+ ROM_LOAD16_BYTE( "sprg_3l.bin", 0x40001, 0x10000, CRC(4b968cc6) SHA1(fbf3bcb5803dbe75e5a9bcde39c98c9c30bd1699) )
+ ROM_LOAD16_BYTE( "sprg_4h.bin", 0x60000, 0x10000, CRC(23c8f667) SHA1(da75def3a34f6e7d48f2c6cefff608348c09cf70) )
+ ROM_LOAD16_BYTE( "sprg_4l.bin", 0x60001, 0x10000, CRC(13ba011f) SHA1(75da2fbbfe2e957992b2a73609737d777fe9a151) )
+ROM_END
+
+
+/* XEON V 2.3 */
+ROM_START( ar_xeon )
+ ARCADIA_BIOS
+
+ ROM_REGION16_BE( 0x180000, "user3", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "xeon_1h.bin", 0x00000, 0x10000, CRC(ca422811) SHA1(fa6f82e1d91b48d58b61f916d5b04dc1a13774fb) )
+ ROM_LOAD16_BYTE( "xeon_1l.bin", 0x00001, 0x10000, CRC(97edf967) SHA1(57fca524e01ba21f7420472f14aaf3fa63a326fa) )
+ ROM_LOAD16_BYTE( "xeon_2h.bin", 0x20000, 0x10000, CRC(8078c10e) SHA1(599995374b23da7187556e2f4f285b60d818f885) )
+ ROM_LOAD16_BYTE( "xeon_2l.bin", 0x20001, 0x10000, CRC(a8845d8f) SHA1(2d54dc25af68c46bbbdf8f9ed8014ae7d8564e09) )
+ ROM_LOAD16_BYTE( "xeon_3h.bin", 0x40000, 0x10000, CRC(9d013152) SHA1(7a3bec56d564efbca9721d308b3eddc76763ec41) )
+ ROM_LOAD16_BYTE( "xeon_3l.bin", 0x40001, 0x10000, CRC(331b1449) SHA1(0e282d04b2c7e68051e5ea1671737b11dfb71521) )
+ ROM_LOAD16_BYTE( "xeon_4h.bin", 0x60000, 0x10000, CRC(fbf43d5c) SHA1(6d335b7b1d3b75887526cb8ea3518661b5554774) )
+ ROM_LOAD16_BYTE( "xeon_4l.bin", 0x60001, 0x10000, CRC(47b60bf5) SHA1(10d8addc090ad3fa2663c40e22f736ac3522b177) )
+ROM_END
+
+
+ROM_START( ar_blast )
+ ARCADIA_BIOS
+
+ ROM_REGION16_BE( 0x180000, "user3", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "blsb-v2-1_1-hi.bin", 0x00000, 0x10000, CRC(6d2e38e5) SHA1(ef9b9ae7644b10892b09f15a3e916c3f51cbbe06) )
+ ROM_LOAD16_BYTE( "blsb-v2-1_1-lo.bin", 0x00001, 0x10000, CRC(28b6db63) SHA1(09c4998f021ae7e25ec4a4009e6c8177fb6649c8) )
+ ROM_LOAD16_BYTE( "blsb-v2-1_2-hi.bin", 0x20000, 0x10000, CRC(8b3c629c) SHA1(34872cd6cf5627517f43c7174f2b263bb1cf33ef) )
+ ROM_LOAD16_BYTE( "blsb-v2-1_2-lo.bin", 0x20001, 0x10000, CRC(966c733c) SHA1(32d711fdea43d9c61532b71627afa5e518d3fb11) )
+ ROM_LOAD16_BYTE( "blsb-v2-1_3-hi.bin", 0x40000, 0x10000, CRC(6013b0d2) SHA1(88b2adb76a60d8160673a3abfe97a4f3f97c1825) )
+ ROM_LOAD16_BYTE( "blsb-v2-1_3-lo.bin", 0x40001, 0x10000, CRC(8c5d602d) SHA1(17f7fb2727210286f85d0b356411ee5302f59bef) )
+ ROM_LOAD16_BYTE( "blsb-v2-1_4-hi.bin", 0x60000, 0x10000, CRC(cc091362) SHA1(2a3e945a17bd8b7b70b3a7efb00d62a37f0ececa) )
+ ROM_LOAD16_BYTE( "blsb-v2-1_4-lo.bin", 0x60001, 0x10000, CRC(16b7618a) SHA1(9857255eb47aff683893d6fe1bdf64a2ea2492a7) )
+ROM_END
+
+ROM_START( ar_pm )
+ ARCADIA_BIOS
+
+ ROM_REGION16_BE( 0x180000, "user3", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "pm-1hi.bin", 0x00000, 0x10000, CRC(ed65f3db) SHA1(71022cd9f379e9511e472aa1cc60d9629dfb69d5) )
+ ROM_LOAD16_BYTE( "pm-1lo.bin", 0x00001, 0x10000, CRC(7189a482) SHA1(d2daba2f3ce7991b0a6f4f5fbda44e1c95554cfc) )
+ ROM_LOAD16_BYTE( "pm-2hi.bin", 0x20000, 0x10000, CRC(a33fd701) SHA1(9101c2bedefc7f480adf02542d335fadc28ba7bc) )
+ ROM_LOAD16_BYTE( "pm-2lo.bin", 0x20001, 0x10000, CRC(17dee8b9) SHA1(695c53c3317f8b82414101404950fe6b7f93912a) )
+ROM_END
+
+ROM_START( ar_dlta )
+ ARCADIA_BIOS
+
+ ROM_REGION16_BE( 0x180000, "user3", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "dlta_v3_1-hi.bin", 0x00000, 0x10000, CRC(3d428b49) SHA1(a1b1173a2128115768634b23392f1536ffcb6f51) )
+ ROM_LOAD16_BYTE( "dlta_v3_1-lo.bin", 0x00001, 0x10000, CRC(e5d6508b) SHA1(f0d54f2b8c3f0752a77a33267c1c2333fcf6ecae) )
+ ROM_LOAD16_BYTE( "dlta_v3_2-hi.bin", 0x20000, 0x10000, CRC(e8a23dfe) SHA1(5d60162da160a6121d11d36a45c92f75ba5002d5) )
+ ROM_LOAD16_BYTE( "dlta_v3_2-lo.bin", 0x20001, 0x10000, CRC(84d82a8f) SHA1(851961e41796fc97af8f98214bd87d306db3b3d3) )
+ ROM_LOAD16_BYTE( "dlta_v3_3-hi.bin", 0x40000, 0x10000, CRC(75563b80) SHA1(ff35376c1db36b3e635f698190679697f3dc44cc) )
+ ROM_LOAD16_BYTE( "dlta_v3_3-lo.bin", 0x40001, 0x10000, CRC(30b911b2) SHA1(68f116d8d041aa482b9b578ba57dbd3fd2afe5b9) )
+ ROM_LOAD16_BYTE( "dlta_v3_4-hi.bin", 0x60000, 0x10000, CRC(80cd42a5) SHA1(67a7cba3778de9205ba9c31b533404e3afef8798) )
+ ROM_LOAD16_BYTE( "dlta_v3_4-lo.bin", 0x60001, 0x10000, CRC(2fe13d9e) SHA1(3240719383df436ba66111a2b4fe93a3b474d7a8) )
+ ROM_LOAD16_BYTE( "dlta_v3_5-hi.bin", 0x80000, 0x10000, CRC(960c9a17) SHA1(66b82b2f96ea473f20c306252c51370e3bd93754) )
+ ROM_LOAD16_BYTE( "dlta_v3_5-lo.bin", 0x80001, 0x10000, CRC(79cbc0dd) SHA1(11cd144e0f30feac1ecb8abc006e428eda71c63c) )
+ ROM_LOAD16_BYTE( "dlta_v3_6-hi.bin", 0xa0000, 0x10000, CRC(9df96431) SHA1(4d68ee592d4de1fc112a4579785d17443d8a0cfd) )
+ ROM_LOAD16_BYTE( "dlta_v3_6-lo.bin", 0xa0001, 0x10000, CRC(5b0d7f30) SHA1(e4ca74de30c325a18204446c3e547ca728402e74) )
+ ROM_LOAD16_BYTE( "dlta_v3_7-hi.bin", 0xc0000, 0x10000, CRC(8e966e69) SHA1(f0935710ad031c69b2aa758d3c78331838ac3f3d) )
+ ROM_LOAD16_BYTE( "dlta_v3_7-lo.bin", 0xc0001, 0x10000, CRC(42553743) SHA1(4df836b6cff80bde737a52a3ea45eb1bda14fa52) )
+ ROM_LOAD16_BYTE( "dlta_v3_8-hi.bin", 0xe0000, 0x10000, CRC(9ef08c31) SHA1(837d8b49e23e4ad493a1a167f477f5aeea48544a) )
+ ROM_LOAD16_BYTE( "dlta_v3_8-lo.bin", 0xe0001, 0x10000, CRC(7088bb88) SHA1(c57ea00c87252060a10660555f140ed2ace29b53) )
+ROM_END
+
+
+ROM_START( ar_argh ) // this plugs directly into the a500 motherboard, no arcadia bios, just the a500 kickstart and game ROMs
+ ROM_REGION16_BE(0x80000, "kickstart", 0 )
+ ROM_LOAD16_WORD("315093-01.u2", 0x00000, 0x40000, CRC(a6ce1636) SHA1(11f9e62cf299f72184835b7b2a70a16333fc0d88))
+ ROM_COPY("kickstart", 0x00000, 0x40000, 0x40000 )
+
+ ROM_REGION16_BE( 0x180000, "user3", ROMREGION_ERASEFF )
+ ROM_LOAD16_BYTE( "argh-1-hi-11-28-87.u12", 0x000000, 0x10000, CRC(3b1f8075) SHA1(61aeff9f6a2dff6efe4276cb0bcbb80b495e26b6) )
+ ROM_LOAD16_BYTE( "argh-1-lo-11-28-87.u16", 0x000001, 0x10000, CRC(78b77071) SHA1(5848e30cfd08f9241f8ff9267fdcf2c87c72cdb0) )
+ ROM_LOAD16_BYTE( "argh-2-hi-11-28-87.u11", 0x020000, 0x10000, CRC(9604e1e9) SHA1(03c010fc7075db953b47282ce54097c4921e3560) )
+ ROM_LOAD16_BYTE( "argh-2-lo-11-28-87.u15", 0x020001, 0x10000, CRC(0c7c8133) SHA1(cd8013fa7c2d1c3a518c3e26e5b10c6c78b2a8ee) )
+ ROM_LOAD16_BYTE( "argh-3-hi-11-28-87.u10", 0x040000, 0x10000, CRC(84d60a2c) SHA1(7284db16642bd598390d63408113a0e9622f0b3d) )
+ ROM_LOAD16_BYTE( "argh-3-lo-11-28-87.u14", 0x040001, 0x10000, CRC(f43a6107) SHA1(2075739d7cbd8565df7a0333c1a16838df9aa97c) )
+ ROM_LOAD16_BYTE( "argh-4-hi-11-28-87.u9", 0x060000, 0x10000, CRC(7d9d514d) SHA1(a77a4db1ab0ae41e75fe334fcb1c16bb7627fa6d) )
+ ROM_LOAD16_BYTE( "argh-4-lo-11-28-87.u13", 0x060001, 0x10000, CRC(da797e5c) SHA1(59f000fa43f80d7730e8a5ca3f13571ff150ead2) )
+ ROM_LOAD16_BYTE( "argh-5-hi-11-28-87.u20", 0x080000, 0x10000, CRC(75a395c5) SHA1(3064028b78025bc3d9f96884d155f449ef285be9) )
+ ROM_LOAD16_BYTE( "argh-5-lo-11-28-87.u24", 0x080001, 0x10000, CRC(b69db0ed) SHA1(b47b46e0a69ba40c8b59864469b9836ff7a9b3fb) )
+ ROM_LOAD16_BYTE( "argh-6-hi-11-28-87.u19", 0x0a0000, 0x10000, CRC(f06ee4d5) SHA1(2555c97666ff319089d4e767b99718d21ab43f7d) )
+ ROM_LOAD16_BYTE( "argh-6-lo-11-28-87.u23", 0x0a0001, 0x10000, CRC(9d49526a) SHA1(604731ebdeb6961d6faccc44dc7c762275bc7b3e) )
+ ROM_LOAD16_BYTE( "argh-7-hi-11-28-87.u18", 0x0c0000, 0x10000, CRC(2fda9f36) SHA1(26431fad4aeaa068fa15de9803e818b93547edd6) )
+ ROM_LOAD16_BYTE( "argh-7-lo-11-28-87.u22", 0x0c0001, 0x10000, CRC(ad6f16d4) SHA1(91fb41db567eeccc0088ba3530049921d19f2df2) )
+ ROM_LOAD16_BYTE( "argh-8-hi-11-28-87.u17", 0x0e0000, 0x10000, CRC(06be1705) SHA1(dbbd0471a82075775279ef149862379211dead17) )
+ ROM_LOAD16_BYTE( "argh-8-lo-11-28-87.u21", 0x0e0001, 0x10000, CRC(48f7bed1) SHA1(9864de95f0ad73ec5982b37d35d3fc9776bb18fa) )
+ ROM_LOAD16_BYTE( "argh-9-hi-11-28-87.u28", 0x100000, 0x10000, CRC(f6ef5a54) SHA1(db8df6dd29392154fba65de73a641321baecba3c) )
+ ROM_LOAD16_BYTE( "argh-9-lo-11-28-87.u32", 0x100001, 0x10000, CRC(209fc834) SHA1(d190b84eb18ea6d9aee4279b63e7fe6029e173a9) )
+ ROM_LOAD16_BYTE( "argh-10-hi-11-28-87.u27", 0x120000, 0x10000, CRC(e75c9ac1) SHA1(5f1678e6946beaeb2e79853a2416d8565a84a815) )
+ ROM_LOAD16_BYTE( "argh-10-lo-11-28-87.u31", 0x120001, 0x10000, CRC(dc4da335) SHA1(449c1de89cb6ea6296196051bef5470765872285) )
+ ROM_LOAD16_BYTE( "argh-11-hi-11-28-87.u26", 0x140000, 0x10000, CRC(2932054f) SHA1(f03e71170bd24719c26427c3fbf4fdf1363bc64f) )
+ ROM_LOAD16_BYTE( "argh-11-lo-11-28-87.u30", 0x140001, 0x10000, CRC(3ebf8c30) SHA1(b2018b55cf2339fcf67b338fa2804afa2e47d577) )
+ ROM_LOAD16_BYTE( "argh-12-hi-11-28-87.u25", 0x160000, 0x10000, CRC(0e055d4a) SHA1(8993596018e90107623e04c24e91b02887d6252c) )
+ ROM_LOAD16_BYTE( "argh-12-lo-11-28-87.u29", 0x160001, 0x10000, CRC(940168b0) SHA1(7f86226d533a5d5a84fbcaeea5c4ac08e0e7df09) )
+ROM_END
+
+/*************************************
+ *
+ * Low byte ROM decoding
+ *
+ *************************************/
+
+void arcadia_amiga_state::generic_decode(const char *tag, int bit7, int bit6, int bit5, int bit4, int bit3, int bit2, int bit1, int bit0)
+{
+ UINT16 *rom = (UINT16 *)memregion(tag)->base();
+ int i;
+
+ /* only the low byte of ROMs are encrypted in these games */
+ for (i = 0; i < 0x20000/2; i++)
+ rom[i] = BITSWAP16(rom[i], 15,14,13,12,11,10,9,8, bit7,bit6,bit5,bit4,bit3,bit2,bit1,bit0);
+
+ #if 0
+ {
+ UINT8 *ROM = memregion(tag)->base();
+ // int size = memregion(tag)->bytes();
+
+ FILE *fp;
+ char filename[256];
+ sprintf(filename,"decrypted_%s", machine().system().name);
+ fp=fopen(filename, "w+b");
+ if (fp)
+ {
+ for (i = 0; i < 0x20000; i++)
+ fwrite(&ROM[i*2], 1, 1, fp);
+
+ fclose(fp);
+ }
+ }
+ #endif
+}
+
+
+
+/*************************************
+ *
+ * Generic driver init
+ *
+ *************************************/
+
+DRIVER_INIT_MEMBER( arcadia_amiga_state, arcadia )
+{
+ m_agnus_id = AGNUS_HR_NTSC;
+ m_denise_id = DENISE;
+
+ /* OnePlay bios is encrypted, TenPlay is not */
+ UINT16 *biosrom = (UINT16 *)memregion("user2")->base();
+
+ if (biosrom)
+ if (biosrom[0] != 0x4afc)
+ generic_decode("user2", 6, 1, 0, 2, 3, 4, 5, 7);
+}
+
+
+
+
+/*************************************
+ *
+ * Per-game decryption
+ *
+ *************************************/
+
+DRIVER_INIT_MEMBER(arcadia_amiga_state,airh) { DRIVER_INIT_CALL(arcadia); generic_decode("user3", 5, 0, 2, 4, 7, 6, 1, 3); }
+DRIVER_INIT_MEMBER(arcadia_amiga_state,bowl) { DRIVER_INIT_CALL(arcadia); generic_decode("user3", 7, 6, 0, 1, 2, 3, 4, 5); }
+DRIVER_INIT_MEMBER(arcadia_amiga_state,blast){ DRIVER_INIT_CALL(arcadia); generic_decode("user3", 4, 1, 7, 6, 2, 0, 3, 5); }
+DRIVER_INIT_MEMBER(arcadia_amiga_state,dart) { DRIVER_INIT_CALL(arcadia); generic_decode("user3", 4, 0, 7, 6, 3, 1, 2, 5); }
+DRIVER_INIT_MEMBER(arcadia_amiga_state,ldrb) { DRIVER_INIT_CALL(arcadia); generic_decode("user3", 2, 3, 4, 1, 0, 7, 5, 6); }
+DRIVER_INIT_MEMBER(arcadia_amiga_state,ninj) { DRIVER_INIT_CALL(arcadia); generic_decode("user3", 1, 6, 5, 7, 4, 2, 0, 3); }
+DRIVER_INIT_MEMBER(arcadia_amiga_state,rdwr) { DRIVER_INIT_CALL(arcadia); generic_decode("user3", 3, 1, 6, 4, 0, 5, 2, 7); }
+DRIVER_INIT_MEMBER(arcadia_amiga_state,sdwr) { DRIVER_INIT_CALL(arcadia); generic_decode("user3", 6, 3, 4, 5, 2, 1, 0, 7); }
+DRIVER_INIT_MEMBER(arcadia_amiga_state,socc) { DRIVER_INIT_CALL(arcadia); generic_decode("user3", 0, 7, 1, 6, 5, 4, 3, 2); }
+DRIVER_INIT_MEMBER(arcadia_amiga_state,sprg) { DRIVER_INIT_CALL(arcadia); generic_decode("user3", 4, 7, 3, 0, 6, 5, 2, 1); }
+DRIVER_INIT_MEMBER(arcadia_amiga_state,xeon) { DRIVER_INIT_CALL(arcadia); generic_decode("user3", 3, 1, 2, 4, 0, 5, 6, 7); }
+DRIVER_INIT_MEMBER(arcadia_amiga_state,pm) { DRIVER_INIT_CALL(arcadia); generic_decode("user3", 7, 6, 5, 4, 3, 2, 1, 0); } // no scramble
+DRIVER_INIT_MEMBER(arcadia_amiga_state,dlta) { DRIVER_INIT_CALL(arcadia); generic_decode("user3", 4, 1, 7, 6, 2, 0, 3, 5); }
+DRIVER_INIT_MEMBER(arcadia_amiga_state,argh) { DRIVER_INIT_CALL(arcadia); generic_decode("user3", 5, 0, 2, 4, 7, 6, 1, 3); }
+
+
+/*************************************
+ *
+ * Game drivers
+ *
+ *************************************/
+
+/* 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_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_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( 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_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( 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( 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( 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_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 )
diff --git a/src/mame/drivers/artmagic.c b/src/mame/drivers/artmagic.c
index 628eb869c26..dba800e1a3d 100644
--- a/src/mame/drivers/artmagic.c
+++ b/src/mame/drivers/artmagic.c
@@ -1169,9 +1169,9 @@ DRIVER_INIT_MEMBER(artmagic_state,shtstar)
*
*************************************/
-GAME( 1993, ultennis, 0, artmagic, ultennis, artmagic_state, ultennis, ROT0, "Art & Magic", "Ultimate Tennis", GAME_SUPPORTS_SAVE )
-GAME( 1993, ultennisj,ultennis, artmagic, ultennis, artmagic_state, ultennis, ROT0, "Art & Magic (Banpresto license)", "Ultimate Tennis (v 1.4, Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1994, cheesech, 0, cheesech, cheesech, artmagic_state, cheesech, ROT0, "Art & Magic", "Cheese Chase", GAME_SUPPORTS_SAVE )
-GAME( 1994, stonebal, 0, stonebal, stonebal, artmagic_state, stonebal, ROT0, "Art & Magic", "Stone Ball (4 Players)", GAME_SUPPORTS_SAVE )
-GAME( 1994, stonebal2,stonebal, stonebal, stoneba2, artmagic_state, stonebal, ROT0, "Art & Magic", "Stone Ball (2 Players)", GAME_SUPPORTS_SAVE )
-GAME( 1994, shtstar, 0, shtstar, shtstar, artmagic_state, shtstar, ROT0, "Nova", "Shooting Star", GAME_NOT_WORKING )
+GAME( 1993, ultennis, 0, artmagic, ultennis, artmagic_state, ultennis, ROT0, "Art & Magic", "Ultimate Tennis", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, ultennisj,ultennis, artmagic, ultennis, artmagic_state, ultennis, ROT0, "Art & Magic (Banpresto license)", "Ultimate Tennis (v 1.4, Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, cheesech, 0, cheesech, cheesech, artmagic_state, cheesech, ROT0, "Art & Magic", "Cheese Chase", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, stonebal, 0, stonebal, stonebal, artmagic_state, stonebal, ROT0, "Art & Magic", "Stone Ball (4 Players)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, stonebal2,stonebal, stonebal, stoneba2, artmagic_state, stonebal, ROT0, "Art & Magic", "Stone Ball (2 Players)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, shtstar, 0, shtstar, shtstar, artmagic_state, shtstar, ROT0, "Nova", "Shooting Star", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/ashnojoe.c b/src/mame/drivers/ashnojoe.c
index 5e57c75bc76..18b4496d6fb 100644
--- a/src/mame/drivers/ashnojoe.c
+++ b/src/mame/drivers/ashnojoe.c
@@ -443,5 +443,5 @@ DRIVER_INIT_MEMBER(ashnojoe_state,ashnojoe)
membank("bank4")->set_entry(0);
}
-GAME( 1990, scessjoe, 0, ashnojoe, ashnojoe, ashnojoe_state, ashnojoe, ROT0, "Taito Corporation / Wave", "Success Joe (World)", GAME_SUPPORTS_SAVE )
-GAME( 1990, ashnojoe, scessjoe, ashnojoe, ashnojoe, ashnojoe_state, ashnojoe, ROT0, "Taito Corporation / Wave", "Ashita no Joe (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1990, scessjoe, 0, ashnojoe, ashnojoe, ashnojoe_state, ashnojoe, ROT0, "Taito Corporation / Wave", "Success Joe (World)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, ashnojoe, scessjoe, ashnojoe, ashnojoe, ashnojoe_state, ashnojoe, ROT0, "Taito Corporation / Wave", "Ashita no Joe (Japan)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/asst128.c b/src/mame/drivers/asst128.c
index 4f24b3a4370..0aab5a981d7 100644
--- a/src/mess/drivers/asst128.c
+++ b/src/mame/drivers/asst128.c
@@ -58,8 +58,9 @@ public:
void asst128_state::machine_start()
{
- memory_region* font = memregion(":isa_cga:cga_mc1502:gfx1");
- memcpy(font->base(), memregion("gfx1")->base(), 0x2000);
+ memory_region* font = memregion(":board0:cga_mc1502:gfx1");
+ memcpy(font->base(), memregion("maincpu")->base()+0xffa6e, 0x0400);
+ memcpy(font->base()+0x0400, memregion("maincpu")->base()+0xf4000, 0x0400);
}
WRITE8_MEMBER(asst128_state::asst128_fdc_dor_w)
@@ -107,13 +108,14 @@ static MACHINE_CONFIG_START( asst128, asst128_state )
asst128_mb_device::static_set_cputag(*device, "maincpu");
MCFG_DEVICE_INPUT_DEFAULTS(asst128)
+// MCFG_DEVICE_REMOVE("mb:dma8237")
+
MCFG_DEVICE_REMOVE("mb:cassette")
MCFG_CASSETTE_ADD("mb:cassette")
MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED)
- MCFG_ISA8_SLOT_ADD("mb:isa", "isa_cga", pc_isa8_cards, "cga_mc1502", true)
- MCFG_ISA8_SLOT_ADD("mb:isa", "isa_lpt", pc_isa8_cards, "lpt", true)
- MCFG_ISA8_SLOT_ADD("mb:isa", "isa_com", pc_isa8_cards, "com", true)
+ MCFG_ISA8_SLOT_ADD("mb:isa", "board0", pc_isa8_cards, "cga_mc1502", true)
+ MCFG_ISA8_SLOT_ADD("mb:isa", "board1", pc_isa8_cards, "lpt", true)
MCFG_PC_KBDC_SLOT_ADD("mb:pc_kbdc", "kbd", pc_xt_keyboards, STR_KBD_IBM_PC_XT_83)
@@ -124,26 +126,20 @@ static MACHINE_CONFIG_START( asst128, asst128_state )
MCFG_PC_JOY_ADD("pc_joy")
- /* internal ram */
MCFG_RAM_ADD(RAM_TAG)
MCFG_RAM_DEFAULT_SIZE("640K")
MACHINE_CONFIG_END
ROM_START( asst128 )
ROM_REGION16_LE(0x100000,"maincpu", 0)
- ROM_DEFAULT_BIOS("floppy")
- /* BASIC ROM taken from IBM 5150 and needs dumping */
- ROM_LOAD( "basic-1.10.rom", 0xf6000, 0x8000, CRC(ebacb791) SHA1(07449ebca18f979b9ab748582b736e402f2bf940))
- ROM_LOAD( "asf400-f600.bin", 0xf4000, 0x2000, CRC(e3bf22de) SHA1(d4319edc82c0015ca0adc6c8771e887659717e62))
- ROM_SYSTEM_BIOS(0, "floppy", "3rd party floppy support")
- ROMX_LOAD( "rombios7.bin", 0xfc001, 0x2000, CRC(7d7c8d6a) SHA1(a731a65ee547f1d78cfc91461f38166da014f3dc), ROM_SKIP(1) | ROM_BIOS(1))
- ROMX_LOAD( "rombios8.bin", 0xfc000, 0x2000, CRC(ba304663) SHA1(b2533b8f8240f72b7315f27c7b64f95ac52687ca), ROM_SKIP(1) | ROM_BIOS(1))
- ROM_SYSTEM_BIOS(1, "stock", "cassette-only BIOS?")
- ROMX_LOAD( "mainbios.bin", 0xfe000, 0x2000, CRC(8426cbf5) SHA1(41d14137ffa651977041da22aa8071c0f7854158), ROM_BIOS(2))
+ ROM_LOAD( "extbios.bin", 0xf4000, 0x2000, CRC(e3bf22de) SHA1(d4319edc82c0015ca0adc6c8771e887659717e62))
+ ROM_LOAD( "basic.bin", 0xf6000, 0x8000, CRC(a4ec66f6) SHA1(80e934986022681ccde180e92aa108e716c4f19b))
+ ROM_LOAD( "mainbios.bin", 0xfe000, 0x2000, CRC(8426cbf5) SHA1(41d14137ffa651977041da22aa8071c0f7854158))
+
+ // XXX needs dumping
ROM_REGION(0x2000,"gfx1", ROMREGION_ERASE00)
- ROM_COPY( "maincpu", 0xffa6e, 0x0000, 0x0400 )
- ROM_COPY( "maincpu", 0xfc000, 0x0400, 0x0400 )
+ 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", GAME_NOT_WORKING)
+COMP( 198?, asst128, ibm5150, 0, asst128, 0, driver_device, 0, "Schetmash", "Assistent 128", MACHINE_NOT_WORKING)
diff --git a/src/mame/drivers/asterix.c b/src/mame/drivers/asterix.c
index 0c9ede70076..a0dd353246b 100644
--- a/src/mame/drivers/asterix.c
+++ b/src/mame/drivers/asterix.c
@@ -433,8 +433,8 @@ DRIVER_INIT_MEMBER(asterix_state,asterix)
}
-GAME( 1992, asterix, 0, asterix, asterix, asterix_state, asterix, ROT0, "Konami", "Asterix (ver EAD)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1992, asterixeac, asterix, asterix, asterix, asterix_state, asterix, ROT0, "Konami", "Asterix (ver EAC)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1992, asterixeaa, asterix, asterix, asterix, asterix_state, asterix, ROT0, "Konami", "Asterix (ver EAA)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1992, asterixaad, asterix, asterix, asterix, asterix_state, asterix, ROT0, "Konami", "Asterix (ver AAD)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1992, asterixj, asterix, asterix, asterix, asterix_state, asterix, ROT0, "Konami", "Asterix (ver JAD)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+GAME( 1992, asterix, 0, asterix, asterix, asterix_state, asterix, ROT0, "Konami", "Asterix (ver EAD)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1992, asterixeac, asterix, asterix, asterix, asterix_state, asterix, ROT0, "Konami", "Asterix (ver EAC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1992, asterixeaa, asterix, asterix, asterix, asterix_state, asterix, ROT0, "Konami", "Asterix (ver EAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1992, asterixaad, asterix, asterix, asterix, asterix_state, asterix, ROT0, "Konami", "Asterix (ver AAD)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1992, asterixj, asterix, asterix, asterix, asterix_state, asterix, ROT0, "Konami", "Asterix (ver JAD)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/asteroid.c b/src/mame/drivers/asteroid.c
index a6e14b211eb..b8b8720c2bb 100644
--- a/src/mame/drivers/asteroid.c
+++ b/src/mame/drivers/asteroid.c
@@ -1019,21 +1019,21 @@ DRIVER_INIT_MEMBER(asteroid_state,asterock)
*
*************************************/
-GAME( 1979, asteroid, 0, asteroid, asteroid, driver_device, 0, ROT0, "Atari", "Asteroids (rev 4)", GAME_SUPPORTS_SAVE )
-GAME( 1979, asteroid2, asteroid, asteroid, asteroid, driver_device, 0, ROT0, "Atari", "Asteroids (rev 2)", GAME_SUPPORTS_SAVE )
-GAME( 1979, asteroid1, asteroid, asteroid, asteroid, driver_device, 0, ROT0, "Atari", "Asteroids (rev 1)", GAME_SUPPORTS_SAVE )
-GAME( 1979, asteroidb, asteroid, asteroid, asteroidb, asteroid_state, asteroidb, ROT0, "bootleg", "Asteroids (bootleg on Lunar Lander hardware)", GAME_SUPPORTS_SAVE )
-GAME( 1980, aerolitos, asteroid, asteroid, aerolitos, driver_device, 0, ROT0, "bootleg (Rodmar Elec.)","Aerolitos (Spanish bootleg of Asteroids)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1979, asterockv, asteroid, asterock, asterock, asteroid_state, asterock, ROT0, "bootleg (Videotron)", "Asterock (Videotron bootleg of Asteroids)", GAME_SUPPORTS_SAVE )
-GAME( 1979, meteorts, asteroid, asteroid, asteroid, driver_device, 0, ROT0, "bootleg (VGG)", "Meteorites (bootleg of Asteroids)", GAME_SUPPORTS_SAVE )
-GAME( 1979, meteorho, asteroid, asteroid, asteroid, driver_device, 0, ROT0, "bootleg (Hoei)", "Meteor (bootleg of Asteroids)", GAME_SUPPORTS_SAVE )
-GAME( 1979, hyperspc, asteroid, asteroid, asteroid, driver_device, 0, ROT0, "bootleg (Rumiano)", "Hyperspace (bootleg of Asteroids)", GAME_SUPPORTS_SAVE )
-
-GAMEL(1980, astdelux, 0, astdelux, astdelux, driver_device, 0, ROT0, "Atari", "Asteroids Deluxe (rev 3)", GAME_SUPPORTS_SAVE, layout_astdelux )
-GAMEL(1980, astdelux2, astdelux, astdelux, astdelux, driver_device, 0, ROT0, "Atari", "Asteroids Deluxe (rev 2)", GAME_SUPPORTS_SAVE, layout_astdelux )
-GAMEL(1980, astdelux1, astdelux, astdelux, astdelux, driver_device, 0, ROT0, "Atari", "Asteroids Deluxe (rev 1)", GAME_SUPPORTS_SAVE, layout_astdelux )
-
-GAME( 1979, llander, 0, llander, llander, driver_device, 0, ROT0, "Atari", "Lunar Lander (rev 2)", GAME_SUPPORTS_SAVE )
-GAME( 1979, llander1, llander, llander, llander1, driver_device, 0, ROT0, "Atari", "Lunar Lander (rev 1)", GAME_SUPPORTS_SAVE )
-GAME( 1979, llandert, llander, llander, llandert, driver_device, 0, ROT0, "Atari", "Lunar Lander (screen test)", GAME_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, 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, asteroidb, asteroid, asteroid, asteroidb, asteroid_state, asteroidb, ROT0, "bootleg", "Asteroids (bootleg on Lunar Lander hardware)", MACHINE_SUPPORTS_SAVE )
+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( 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 )
+
+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 )
+
+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)
diff --git a/src/mame/drivers/astinvad.c b/src/mame/drivers/astinvad.c
index 1fccbbf344c..4f4be0977a2 100644
--- a/src/mame/drivers/astinvad.c
+++ b/src/mame/drivers/astinvad.c
@@ -57,6 +57,7 @@ public:
m_maincpu(*this, "maincpu"),
m_ppi8255_0(*this, "ppi8255_0"),
m_ppi8255_1(*this, "ppi8255_1"),
+ m_palette(*this, "palette"),
m_videoram(*this, "videoram"),
m_samples(*this, "samples"),
m_screen(*this, "screen"){ }
@@ -64,6 +65,7 @@ public:
required_device<cpu_device> m_maincpu;
optional_device<i8255_device> m_ppi8255_0;
optional_device<i8255_device> m_ppi8255_1;
+ required_device<palette_device> m_palette;
required_shared_ptr<UINT8> m_videoram;
UINT8 * m_colorram;
@@ -144,17 +146,16 @@ WRITE8_MEMBER(astinvad_state::spaceint_videoram_w)
void astinvad_state::plot_byte( bitmap_rgb32 &bitmap, UINT8 y, UINT8 x, UINT8 data, UINT8 color )
{
- pen_t fore_pen = rgb_t(pal1bit(color >> 0), pal1bit(color >> 2), pal1bit(color >> 1));
UINT8 flip_xor = m_screen_flip & 7;
- bitmap.pix32(y, x + (0 ^ flip_xor)) = (data & 0x01) ? fore_pen : 0;
- bitmap.pix32(y, x + (1 ^ flip_xor)) = (data & 0x02) ? fore_pen : 0;
- bitmap.pix32(y, x + (2 ^ flip_xor)) = (data & 0x04) ? fore_pen : 0;
- bitmap.pix32(y, x + (3 ^ flip_xor)) = (data & 0x08) ? fore_pen : 0;
- bitmap.pix32(y, x + (4 ^ flip_xor)) = (data & 0x10) ? fore_pen : 0;
- bitmap.pix32(y, x + (5 ^ flip_xor)) = (data & 0x20) ? fore_pen : 0;
- bitmap.pix32(y, x + (6 ^ flip_xor)) = (data & 0x40) ? fore_pen : 0;
- bitmap.pix32(y, x + (7 ^ flip_xor)) = (data & 0x80) ? fore_pen : 0;
+ bitmap.pix32(y, x + (0 ^ flip_xor)) = (data & 0x01) ? m_palette->pen_color(color) : rgb_t::black;
+ bitmap.pix32(y, x + (1 ^ flip_xor)) = (data & 0x02) ? m_palette->pen_color(color) : rgb_t::black;
+ bitmap.pix32(y, x + (2 ^ flip_xor)) = (data & 0x04) ? m_palette->pen_color(color) : rgb_t::black;
+ bitmap.pix32(y, x + (3 ^ flip_xor)) = (data & 0x08) ? m_palette->pen_color(color) : rgb_t::black;
+ bitmap.pix32(y, x + (4 ^ flip_xor)) = (data & 0x10) ? m_palette->pen_color(color) : rgb_t::black;
+ bitmap.pix32(y, x + (5 ^ flip_xor)) = (data & 0x20) ? m_palette->pen_color(color) : rgb_t::black;
+ bitmap.pix32(y, x + (6 ^ flip_xor)) = (data & 0x40) ? m_palette->pen_color(color) : rgb_t::black;
+ bitmap.pix32(y, x + (7 ^ flip_xor)) = (data & 0x80) ? m_palette->pen_color(color) : rgb_t::black;
}
@@ -170,7 +171,7 @@ UINT32 astinvad_state::screen_update_astinvad(screen_device &screen, bitmap_rgb3
{
UINT8 color = color_prom[((y & 0xf8) << 2) | (x >> 3)] >> (m_screen_flip ? 0 : 4);
UINT8 data = m_videoram[(((y ^ m_screen_flip) + yoffs) << 5) | ((x ^ m_screen_flip) >> 3)];
- plot_byte(bitmap, y, x, data, m_screen_red ? 1 : color);
+ plot_byte(bitmap, y, x, data, m_screen_red ? 1 : color & 0x07);
}
return 0;
@@ -651,6 +652,8 @@ static MACHINE_CONFIG_START( kamikaze, astinvad_state )
MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK, 320, 0, 256, 256, 32, 256)
MCFG_SCREEN_UPDATE_DRIVER(astinvad_state, screen_update_astinvad)
+ MCFG_PALETTE_ADD_3BIT_RBG("palette")
+
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -695,6 +698,8 @@ static MACHINE_CONFIG_START( spaceint, astinvad_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_UPDATE_DRIVER(astinvad_state, screen_update_spaceint)
+ MCFG_PALETTE_ADD_3BIT_RBG("palette")
+
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -817,9 +822,9 @@ DRIVER_INIT_MEMBER(astinvad_state,spcking2)
*
*************************************/
-GAME( 1979, kamikaze, 0, kamikaze, kamikaze, astinvad_state, kamikaze, ROT270, "Leijac Corporation", "Kamikaze", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, astinvad, kamikaze, kamikaze, astinvad, astinvad_state, kamikaze, ROT270, "Leijac Corporation (Stern Electronics license)", "Astro Invader", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 19??, kosmokil, kamikaze, kamikaze, kamikaze, astinvad_state, kamikaze, ROT270, "bootleg (BEM)", "Kosmo Killer", GAME_IMPERFECT_SOUND | GAME_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", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, spaceint, 0, spaceint, spaceint, driver_device, 0, ROT90, "Shoei", "Space Intruder", GAME_IMPERFECT_SOUND | GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
-GAME( 1980, spaceintj,spaceint, spaceint, spaceintj, driver_device, 0, ROT90, "Shoei", "Space Intruder (Japan)", GAME_IMPERFECT_SOUND | GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
+GAME( 1979, 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( 19??, 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 )
diff --git a/src/mame/drivers/astrafr.c b/src/mame/drivers/astrafr.c
index 62386cea1d8..bbf281e33ba 100644
--- a/src/mame/drivers/astrafr.c
+++ b/src/mame/drivers/astrafr.c
@@ -2137,202 +2137,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)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_srba, as_srb , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Super Ring a Bell (Astra, V100)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_srbb, as_srb , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Super Ring a Bell (Astra, V101)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_srbc, as_srb , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Super Ring a Bell (Astra, V201)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_srbd, as_srb , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Super Ring a Bell (Astra, V202)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_srbe, as_srb , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Super Ring a Bell (Astra, V203)", GAME_IS_SKELETON_MECHANICAL)
+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)
// 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)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_partya, as_party , astrafr_dual_2e, astrafr, driver_device, 0, ROT0, "Astra", "Party Time (Astra, V110)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_partyb, as_party , astrafr_dual_2e, astrafr, driver_device, 0, ROT0, "Astra", "Party Time (Astra, V112)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_partyc, as_party , astrafr_dual_2e, astrafr, driver_device, 0, ROT0, "Astra", "Party Time (Astra, V206)" ,GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_partyd, as_party , astrafr_dual_37, astrafr, driver_device, 0, ROT0, "Astra", "Party Time (Astra, V401)", GAME_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)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_partyf, as_party , astrafr_dual_2e, astrafr, driver_device, 0, ROT0, "Astra", "Party Time (Astra, V906)", GAME_IS_SKELETON_MECHANICAL)
+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_letsp, 0 , astrafr_dual_2e, astrafr, driver_device, 0, ROT0, "Astra", "Let's Party (Astra, V904)", GAME_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_topsl, 0 , astrafr_dual_2e, astrafr, driver_device, 0, ROT0, "Astra", "Top Slot (Astra, V103)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_topsla, as_topsl , astrafr_dual_2e, astrafr, driver_device, 0, ROT0, "Astra", "Top Slot (Astra, V104)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_topslb, as_topsl , astrafr_dual_2e, astrafr, driver_device, 0, ROT0, "Astra", "Top Slot (Astra, V201)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_topslc, as_topsl , astrafr_dual_2e, astrafr, driver_device, 0, ROT0, "Astra", "Top Slot (Astra, V203)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_topsld, as_topsl , astrafr_dual_2e, astrafr, driver_device, 0, ROT0, "Astra", "Top Slot (Astra, V205)", GAME_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)
// Other HW? (has u1/u2 pairing)
-GAME( 200?, as_bigtm, 0 , astra_single , astrafr, astrafr_state, astradec, ROT0, "Astra", "Big Time (Astra, V003)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_acp, 0 , astra_single , astrafr, astrafr_state, astradec, ROT0, "Astra", "unknown Astra 'ACP' (Astra, V403)", GAME_IS_SKELETON_MECHANICAL) // no sound data in here?
-GAME( 200?, as_celeb, 0 , astra_single , astrafr, astrafr_state, astradec, ROT0, "Astra", "Celebration (Astra, V100)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_celeba, as_celeb , astra_single , astrafr, astrafr_state, astradec, ROT0, "Astra", "Celebration (Astra, V101)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_celebb, as_celeb , astra_single , astrafr, astrafr_state, astradec, ROT0, "Astra", "Celebration (Astra, V201)", GAME_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)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_hca, as_hc , astrafr_dual_37 , astrafr, astrafr_state, astradec_dual, ROT0, "Astra", "Hokey Cokey (Astra, V109)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_hcb, as_hc , astrafr_dual_37 , astrafr, astrafr_state, astradec_dual, ROT0, "Astra", "Hokey Cokey (Astra, V110)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_hcc, as_hc , astrafr_dual_37 , astrafr, astrafr_state, astradec_dual, ROT0, "Astra", "Hokey Cokey (Astra, V111)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_hcd, as_hc , astrafr_dual_37 , astrafr, astrafr_state, astradec_dual, ROT0, "Astra", "Hokey Cokey (Astra, V909)", GAME_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)", GAME_IS_SKELETON_MECHANICAL)
-
-
-GAME( 200?, as_big10, 0 , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Big 10 (Astra, V500)", GAME_IS_SKELETON_MECHANICAL) // BB96
-GAME( 200?, as_big10a, as_big10 , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Big 10 (Astra, V503)", GAME_IS_SKELETON_MECHANICAL) // BB96
-GAME( 200?, as_big10b, as_big10 , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Big 10 (Astra, V507)", GAME_IS_SKELETON_MECHANICAL) // BB96
-GAME( 200?, as_big10c, as_big10 , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Big 10 (Astra, V601)", GAME_IS_SKELETON_MECHANICAL) // BB96
-GAME( 200?, as_big10d, as_big10 , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Big 10 (Astra, V605)", GAME_IS_SKELETON_MECHANICAL) // BB96
-GAME( 200?, as_big15, 0 , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Big 15 (Astra, V101)", GAME_IS_SKELETON_MECHANICAL) // DL98
-GAME( 200?, as_bigcs, 0 , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Big Cash (Astra, V101)", GAME_IS_SKELETON_MECHANICAL) // CF97/CF98
-GAME( 200?, as_bigcsa, as_bigcs , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Big Cash (Astra, V103)", GAME_IS_SKELETON_MECHANICAL) // CF97/CF98
-
-GAME( 200?, as_bbr, 0 , astra_single_2e, astrafr, driver_device, 0, ROT0, "Astra", "Bullion Bars (Astra, V101)" , GAME_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)" , GAME_IS_SKELETON_MECHANICAL) // FA00/CU98
-GAME( 200?, as_bbrb, as_bbr , astra_single_2e, astrafr, driver_device, 0, ROT0, "Astra", "Bullion Bars (Astra, V201)" , GAME_IS_SKELETON_MECHANICAL) // FA00/CU98
-GAME( 200?, as_bbrc, as_bbr , astra_single_2e, astrafr, driver_device, 0, ROT0, "Astra", "Bullion Bars (Astra, V003)" , GAME_IS_SKELETON_MECHANICAL) // CU98
-GAME( 200?, as_bbrd, as_bbr , astra_single_2e, astrafr, driver_device, 0, ROT0, "Astra", "Bullion Bars (Astra, V102)" , GAME_IS_SKELETON_MECHANICAL) // CU98
-GAME( 200?, as_bbre, as_bbr , astra_single_37, astrafr, driver_device, 0, ROT0, "Astra", "Bullion Bars (Astra, V105)" , GAME_IS_SKELETON_MECHANICAL) // FG01
-GAME( 200?, as_bbrf, as_bbr , astra_single_37, astrafr, driver_device, 0, ROT0, "Astra", "Bullion Bars (Astra, V004)" , GAME_IS_SKELETON_MECHANICAL) // FN01
-
-GAME( 200?, as_dblcs, 0 , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Double Cash (Astra, V110)" , GAME_IS_SKELETON_MECHANICAL) // BR97
-GAME( 200?, as_dblcsa, as_dblcs , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Double Cash (Astra, V112)" , GAME_IS_SKELETON_MECHANICAL) // BR97
-GAME( 200?, as_dblcsb, as_dblcs , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Double Cash (Astra, V108)" , GAME_IS_SKELETON_MECHANICAL) // BR97
-GAME( 200?, as_dblcsc, as_dblcs , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Double Cash (Astra, V109)" , GAME_IS_SKELETON_MECHANICAL) // CN97
-GAME( 200?, as_dblcsd, as_dblcs , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Double Cash (Astra, V106)" , GAME_IS_SKELETON_MECHANICAL) // CN97
-GAME( 200?, as_dblcse, as_dblcs , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Double Cash (Astra, V102)" , GAME_IS_SKELETON_MECHANICAL) // FB00
-GAME( 200?, as_dblcsf, as_dblcs , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Double Cash (Astra, V100)" , GAME_IS_SKELETON_MECHANICAL) // FB00
-GAME( 200?, as_dblcsg, as_dblcs , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Double Cash (Astra, V100, alt)" , GAME_IS_SKELETON_MECHANICAL) // DN98
-GAME( 200?, as_dblcsh, as_dblcs , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Double Cash (Astra, V004)" , GAME_IS_SKELETON_MECHANICAL) // FO01
-
-GAME( 200?, as_fortn, 0 , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Fortune Teller (Astra, V009)" , GAME_IS_SKELETON_MECHANICAL)
-
-GAME( 200?, as_gof, 0 , astra_single, astrafr, astrafr_state, astradec, ROT0, "Lowen", "Game Of Fortune (Lowen, V208)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_hog, 0 , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Hearts Of Gold (Astra, V002)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_hxr, 0 , astra_single, astrafr, astrafr_state, astradec_sml, ROT0, "Astra", "Hot Cross Run (Astra, V108)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_hr, 0 , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Hot Reel (Astra, V004)" , GAME_IS_SKELETON_MECHANICAL)
-
-GAME( 200?, as_djp, 0 , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Double Jackpot (Astra, V107)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_djpa, 0 , astra_single, astrafr, astrafr_state, astradec_sml, ROT0, "Astra", "Double Jackpot (Astra, V004)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_djpb, 0 , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Double Jackpot (Astra, V109)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_cshcs, 0 , astra_single, astrafr, driver_device, 0, ROT0, "Lowen", "Cash Castle (Lowen, V006)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_colmn, 0 , astra_single, astrafr, astrafr_state, astradec_sml, ROT0, "Astra", "Colour Of Money (Astra, V200)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_colmna, as_colmn , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Colour Of Money (Astra, V107)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_colmnb, as_colmn , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Colour Of Money (Astra, V108)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_colmnc, as_colmn , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Colour Of Money (Astra, V109)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_colmnd, as_colmn , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Colour Of Money (Astra, V908)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_jackb, 0 , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Jackpot Bell (Astra, V104)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_jpx, 0 , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Jackpot X (Astra, V100)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_jpxa, as_jpx , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Jackpot X (Astra, V101)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_jpxb, as_jpx , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Jackpot X (Astra, V002)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_jolly, 0 , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Jolly Roger (Astra, V103)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_jmpj, 0 , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Jumping Jackpots (Astra, V100)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_jmpja, as_jmpj , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Jumping Jackpots (Astra, V102)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_jjive, 0 , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Jungle Jive (Astra, V107)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_jjivea, as_jjive , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Jungle Jive (Astra, V106)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_jjiveb, as_jjive , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Jungle Jive (Astra, V104)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_jjivec, as_jjive , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Jungle Jive (Astra, V102)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_jjived, as_jjive , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Jungle Jive (Astra, V101)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_jjivee, as_jjive , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Jungle Jive (Astra, V101, alt)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_jjivef, as_jjive , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Jungle Jive (Astra, V004)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_jjiveg, as_jjive , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Jungle Jive (Astra, V005)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_kingc, 0 , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "King Cash (Astra, V106)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_kingca, as_kingc , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "King Cash (Astra, V103)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_koc, 0 , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "King Of Clubs (Astra, V200)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_koca, as_koc , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "King Of Clubs (Astra, V101)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_lbt, 0 , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Little Big 10 (Astra, V103)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_lbta, as_lbt , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Little Big 10 (Astra, V102)" , GAME_IS_SKELETON_MECHANICAL)
-
-GAME( 200?, as_ldl, 0 , astra_single_2e, astrafr, astrafr_state, astradec_sml, ROT0, "Astra", "Little Devils (Astra, V700)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_ldla, as_ldl , astra_single, astrafr, astrafr_state, astradec_sml, ROT0, "Astra", "Little Devils (Astra, V600)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_ldlb, as_ldl , astra_single, astrafr, astrafr_state, astradec_sml, ROT0, "Astra", "Little Devils (Astra, V312)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_ldlc, as_ldl , astra_single, astrafr, astrafr_state, astradec_sml, ROT0, "Astra", "Little Devils (Astra, V003)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_ldld, as_ldl , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Little Devils (Astra, V102)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_ldle, as_ldl , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Little Devils (Astra, V103)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_mp, 0 , astra_single_2e, astrafr, astrafr_state, astradec, ROT0, "Lowen", "Mission Possible (Lowen, V118)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_mp2, 0 , astra_single, astrafr, driver_device, 0, ROT0, "Lowen", "Mission Possible 2 (Lowen, V114)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_otr, 0 , astra_single_2e, astrafr, astrafr_state, astradec_sml, ROT0, "Astra", "Over The Rainbow (Astra, V104)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_otra, as_otr , astra_single, astrafr, astrafr_state, astradec_sml, ROT0, "Astra", "Over The Rainbow (Astra, V102)" , GAME_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)" , GAME_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)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_ptfb, as_ptf , astrafr_dual_37, astrafr, astrafr_state, astradec_sml_dual, ROT0, "Astra", "Party Fruits (Astra, V905)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_ptfc, as_ptf , astrafr_dual_37, astrafr, astrafr_state, astradec_sml_dual, ROT0, "Astra", "Party Fruits (Astra)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_pia, 0 , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Pay It Again (Astra, V202)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_piaa, as_pia , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Pay It Again (Astra, V206)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_piab, as_pia , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Pay It Again (Astra, V904)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_pharg, 0 , astra_single_37, astrafr, astrafr_state, astradec, ROT0, "Astra", "Pharaoh's Gold (Astra, V005)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_pharga, as_pharg , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Pharaoh's Gold (Astra, V101)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_phargb, as_pharg , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Pharaoh's Gold (Astra, V102)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_phargc, as_pharg , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Pharaoh's Gold (Astra, V104)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_phargd, as_pharg , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Pharaoh's Gold (Astra, V106)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_pharge, as_pharg , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Pharaoh's Gold (Astra, V107)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_pb, 0 , astra_single_2e, astrafr, driver_device, 0, ROT0, "Astra", "Piggy Banking (Astra, V105)" , GAME_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, 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)
// 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)" , GAME_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)" , GAME_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)" , GAME_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)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_rtrd, as_rtr , astra_single_2e, astrafr, astrafr_state, astradec, ROT0, "Astra", "Ready To Roll (Astra, V100, )" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_rtre, as_rtr , astra_single_2e, astrafr, astrafr_state, astradec, ROT0, "Astra", "Ready To Roll (Astra, V100, alt)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_rtrf, as_rtr , astra_single_2e, astrafr, astrafr_state, astradec, ROT0, "Astra", "Ready To Roll (Astra, V200)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_rtrg, as_rtr , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Ready To Roll (Astra, V200, alt)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_rtrh, as_rtr , astra_single_2e, astrafr, astrafr_state, astradec, ROT0, "Astra", "Ready To Roll (Astra, V202)" , GAME_IS_SKELETON_MECHANICAL)
-
-GAME( 200?, as_rab, 0 , astra_single_2e, astrafr, driver_device, 0, ROT0, "Astra", "Ring A Bell (Astra, V105)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_raba, as_rab , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Ring A Bell (Astra, V106)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_rabb, as_rab , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Ring A Bell (Astra, V107)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_rabc, as_rab , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Ring A Bell (Astra, V104)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_rbg, 0 , astra_single_2e, astrafr, driver_device, 0, ROT0, "Astra", "River Boat Gambler (Astra, V304)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_rbga, as_rab , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "River Boat Gambler (Astra, V303)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_rbgb, as_rab , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "River Boat Gambler (Astra, V104)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_rbgc, as_rab , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "River Boat Gambler (Astra, V102)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_rbgd, as_rab , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "River Boat Gambler (Astra, V101)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_rbge, as_rab , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "River Boat Gambler (Astra, V008)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_rbglo, 0 , astrafr_dual_37, astrafr, astrafr_state, astradec_sml_dual, ROT0, "Lowen", "River Boat Gambler (Lowen, V106)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_rox, 0 , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Roll X (Astra, V006)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_csv, 0 , astra_single_37, astrafr, driver_device, 0, ROT0, "Astra", "Slot Slant (?) (Astra, V202)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_sltcl, 0 , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Slots Classic (?) (Astra)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_stp, 0 , astra_single_2e, astrafr, astrafr_state, astradec, ROT0, "Astra", "Stampede (Astra, V103)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_stpa, as_stp , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Stampede (Astra, V102)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_stpb, as_stp , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Stampede (Astra, V105)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_siu, 0 , astra_single_37, astrafr, astrafr_state, astradec_sml, ROT0, "Astra", "Step It Up (Astra, V202)" , GAME_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)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_sld, 0 , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Super Little Devil (Astra, V700)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_slda, as_sld , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Super Little Devil (Astra, V600)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_sldb, as_sld , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Super Little Devil (Astra, V500)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_sldc, as_sld , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Super Little Devil (Astra, V400)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_sldd, as_sld , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Super Little Devil (Astra, V200)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_slde, as_sld , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Super Little Devil (Astra, V101)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_tem, 0 , astra_single_alt_37, astrafr, astrafr_state, astradec, ROT0, "Astra", "Temptation (Astra, V101)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_tema, as_tem , astra_single_alt_37, astrafr, astrafr_state, astradec, ROT0, "Astra", "Temptation (Astra, V006)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_tbl, 0 , astra_single_2e, astrafr, driver_device, 0, ROT0, "Astra", "Triple Bells (Astra, V104)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_tbla, as_tbl , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Triple Bells (Astra, V105)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_tblb, as_tbl , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Triple Bells (Astra, V106)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_tblc, as_tbl , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Triple Bells (Astra, V103)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_tbld, as_tbl , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Triple Bells (Astra, V304)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_tble, as_tbl , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Triple Bells (Astra, V303)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_tblf, as_tbl , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Triple Bells (Astra, V301)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_td, 0 , astra_single_2e, astrafr, astrafr_state, astradec, ROT0, "Astra", "Twin Dragons (Astra, V103)" , GAME_IS_SKELETON_MECHANICAL)
-
-GAME( 200?, as_twp, 0 , astra_single_2e, astrafr, driver_device, 0, ROT0, "Astra", "Twin Pots (Astra, V106)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_twpa, as_twp , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Twin Pots (Astra, V104)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_vn, 0 , astrafr_dual_alt_37, astrafr, astrafr_state, astradec_dual, ROT0, "Astra", "Vegas Nights (Astra, V205)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_vcv, 0 , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Viva Cash Vegas (Astra, V005)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_vcva, as_vcv , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Viva Cash Vegas (Astra, V107)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_vcvb, as_vcv , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Viva Cash Vegas (Astra, V106)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_vcvc, as_vcv , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Viva Cash Vegas (Astra, V104)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_vcvd, as_vcv , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Viva Cash Vegas (Astra, V102)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_vcve, as_vcv , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Viva Cash Vegas (Astra, V101)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_ww, 0 , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Wicked Willy (Astra, V203)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_wwa, as_ww , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Wicked Willy (Astra, V204)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_wwb, as_ww , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Wicked Willy (Astra, V205)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_wwc, as_ww , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Wicked Willy (Astra, V104)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_wwd, as_ww , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Wicked Willy (Astra, V103)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_wwe, as_ww , astra_single, astrafr, driver_device, 0, ROT0, "Astra", "Wicked Willy (Astra, V102)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 200?, as_ws, 0 , astra_single, astrafr, astrafr_state, astradec, ROT0, "Astra", "Win Streak (Astra, V100)" , GAME_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, 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
diff --git a/src/mame/drivers/astrcorp.c b/src/mame/drivers/astrcorp.c
index 5fc7c200566..caa7bbfe118 100644
--- a/src/mame/drivers/astrcorp.c
+++ b/src/mame/drivers/astrcorp.c
@@ -21,6 +21,7 @@ Year + Game PCB ID CPU Video Chips
02 Skill Drop GA None JX-1689F1028N ASTRO V02 pLSI1016-60LJ
02? Keno 21 ? ASTRO V102? ASTRO V05 ASTRO F02? not dumped
03 Speed Drop None JX-1689HP ASTRO V05 pLSI1016-60LJ
+03? Dino Dino T-3802A ASTRO V102PX-010? ASTRO V05 ASTRO F02 2003-03-12 Encrypted
04? Stone Age L1 ASTRO V102PX-012? ASTRO V05x2 ASTRO F02 2004-09-04 Encrypted
05? Zoo M1.1 ASTRO V102PX-005? ASTRO V06 ASTRO F02 2005-02-18 Encrypted
05? Win Win Bingo M1.2 ASTRO V102PX-006? ASTRO V06 ASTRO F02 2005-09-17 Encrypted
@@ -47,17 +48,25 @@ class astrocorp_state : public driver_device
public:
astrocorp_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
- m_spriteram(*this, "spriteram"),
m_maincpu(*this, "maincpu"),
m_oki(*this, "oki"),
m_gfxdecode(*this, "gfxdecode"),
m_screen(*this, "screen"),
- m_palette(*this, "palette") { }
+ m_palette(*this, "palette"),
+ m_spriteram(*this, "spriteram")
+ { }
- /* memory pointers */
+ // devices
+ required_device<cpu_device> m_maincpu;
+ required_device<okim6295_device> m_oki;
+ required_device<gfxdecode_device> m_gfxdecode;
+ required_device<screen_device> m_screen;
+ required_device<palette_device> m_palette;
+
+ // memory pointers
required_shared_ptr<UINT16> m_spriteram;
- /* video-related */
+ // video-related
bitmap_ind16 m_bitmap;
UINT16 m_screen_enable;
UINT16 m_draw_sprites;
@@ -76,11 +85,6 @@ public:
UINT32 screen_update_astrocorp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TIMER_DEVICE_CALLBACK_MEMBER(skilldrp_scanline);
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
- required_device<cpu_device> m_maincpu;
- required_device<okim6295_device> m_oki;
- required_device<gfxdecode_device> m_gfxdecode;
- required_device<screen_device> m_screen;
- required_device<palette_device> m_palette;
};
/***************************************************************************
@@ -92,8 +96,8 @@ VIDEO_START_MEMBER(astrocorp_state,astrocorp)
m_screen->register_screen_bitmap(m_bitmap);
save_item(NAME(m_bitmap));
- save_item (NAME(m_screen_enable));
- save_item (NAME(m_draw_sprites));
+ save_item(NAME(m_screen_enable));
+ save_item(NAME(m_draw_sprites));
}
/***************************************************************************
@@ -1121,6 +1125,53 @@ ROM_START( astoneag )
ROM_LOAD( "93c46.ic99", 0x0000, 0x0080, CRC(2fd85a9b) SHA1(3240e40debf5af15f08072b76d6910808d3d282f) )
ROM_END
+/***************************************************************************
+
+Dino Dino
+Astro Corp.
+
+PCB Layout
+----------
+
+ASTRO T-3802A PCB with ASTRO F02 2003-03-12
+|--------------------------------------------|
+| |------| TDA2003 |
+|ULN2003 |ASTRO | V62C51864 VOL |
+| |F02 | ROM4 |
+| |------| ROM2 |
+|ULN2003 ROM3 M6295 |
+| |-------| |
+|8 |ASTRO | |
+|L |V102PX | ROM5|
+|I |-010 | |
+|N |-------| |------| |
+|E |ASTRO | |
+|R ROM1 |V05 | |
+| |------| |
+| V62C51864 |
+| 24MHz|
+| 93C46 6116 6116 HM628128 |
+| SW1 6116 6116 HM628128 |
+|--------------------------------------------|
+
+***************************************************************************/
+
+ROM_START( dinodino )
+ ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "dd_rom1.u20", 0x00000, 0x20000, CRC(056613dd) SHA1(e8481177b1dacda222fe4fae2b50841ddb0c87ba) )
+ ROM_LOAD16_BYTE( "dd_rom2.u19", 0x00001, 0x20000, CRC(575519c5) SHA1(249fe33b6ea0bc154125a988315f571a30b9375c) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD( "dd_rom3.u26", 0x000000, 0x200000, CRC(47c95b43) SHA1(43e9a13c38f2f7d13dd4dcb105c65e43b18ccdbf) )
+ ROM_LOAD( "dd_rom4.u24", 0x200000, 0x200000, CRC(2cf4be21) SHA1(831d7d125c4161b42b017a69fc05e30a51172620) )
+
+ ROM_REGION( 0x80000, "oki", 0 )
+ ROM_LOAD( "dd_rom5.u33", 0x00000, 0x80000, CRC(482e456a) SHA1(c7111522383c4e1fd98b0f759153be98dcbe06c1) )
+
+ ROM_REGION16_BE( 0x80, "eeprom", 0 )
+ ROM_LOAD( "93c46.u10", 0x0000, 0x0080, CRC(6769bfb8) SHA1(bf6b905805c2c61a89fbc4c046b23069431e4709) )
+ROM_END
+
DRIVER_INIT_MEMBER(astrocorp_state,showhand)
{
@@ -1302,15 +1353,16 @@ DRIVER_INIT_MEMBER(astrocorp_state,astoneag)
#endif
}
-GAME( 2000, showhand, 0, showhand, showhand, astrocorp_state, showhand, ROT0, "Astro Corp.", "Show Hand (Italy)", GAME_SUPPORTS_SAVE )
-GAME( 2000, showhanc, showhand, showhanc, showhanc, astrocorp_state, showhanc, ROT0, "Astro Corp.", "Wang Pai Dui Jue (China)", GAME_SUPPORTS_SAVE )
-GAME( 2002, skilldrp, 0, skilldrp, skilldrp, driver_device, 0, ROT0, "Astro Corp.", "Skill Drop Georgia (Ver. G1.0S)", GAME_SUPPORTS_SAVE )
-GAME( 2003, speeddrp, 0, speeddrp, skilldrp, driver_device, 0, ROT0, "Astro Corp.", "Speed Drop (Ver. 1.06)", GAME_SUPPORTS_SAVE )
+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 )
// Encrypted games (not working):
-GAME( 2004?, astoneag, 0, skilldrp, skilldrp, astrocorp_state, astoneag, ROT0, "Astro Corp.", "Stone Age (Astro, Ver. ENG.03.A)", GAME_NOT_WORKING )
-GAME( 2005?, winbingo, 0, skilldrp, skilldrp, driver_device, 0, ROT0, "Astro Corp.", "Win Win Bingo (set 1)", GAME_NOT_WORKING )
-GAME( 2005?, winbingoa, winbingo, skilldrp, skilldrp, driver_device, 0, ROT0, "Astro Corp.", "Win Win Bingo (set 2)", GAME_NOT_WORKING )
-GAME( 2005?, hacher, winbingo, skilldrp, skilldrp, driver_device, 0, ROT0, "bootleg (Gametron)", "Hacher (hack of Win Win Bingo)", GAME_NOT_WORKING )
-GAME( 2005?, zoo, 0, showhand, showhand, driver_device, 0, ROT0, "Astro Corp.", "Zoo (Ver. ZO.02.D)", GAME_NOT_WORKING )
-GAME( 2007?, westvent, 0, skilldrp, skilldrp, driver_device, 0, ROT0, "Astro Corp.", "Western Venture (Ver. AA.02.D)", GAME_NOT_WORKING )
+GAME( 2003?, dinodino, 0, skilldrp, skilldrp, driver_device, 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 )
diff --git a/src/mame/drivers/astrocde.c b/src/mame/drivers/astrocde.c
index d6a8fa0a33f..0012d083afd 100644
--- a/src/mame/drivers/astrocde.c
+++ b/src/mame/drivers/astrocde.c
@@ -231,10 +231,11 @@ WRITE8_MEMBER(astrocde_state::seawolf2_sound_2_w)// Port 41
*
*************************************/
+IOPORT_ARRAY_MEMBER(astrocde_state::trackball_inputs) { "TRACKX2", "TRACKY2", "TRACKX1", "TRACKY1" };
+
CUSTOM_INPUT_MEMBER(astrocde_state::ebases_trackball_r)
{
- static const char *const names[] = { "TRACKX2", "TRACKY2", "TRACKX1", "TRACKY1" };
- return ioport(names[m_input_select])->read();
+ return m_trackball[m_input_select]->read();
}
@@ -261,7 +262,7 @@ READ8_MEMBER(astrocde_state::spacezap_io_r)
{
coin_counter_w(machine(), 0, (offset >> 8) & 1);
coin_counter_w(machine(), 1, (offset >> 9) & 1);
- return ioport("P3HANDLE")->read_safe(0xff);
+ return m_p3handle ? m_p3handle->read() : 0xff;
}
@@ -394,51 +395,32 @@ READ8_MEMBER(astrocde_state::profpac_io_2_r)
}
-WRITE8_MEMBER(astrocde_state::profpac_banksw_w)
+WRITE8_MEMBER(astrocde_state::demndrgn_banksw_w)
{
int bank = (data >> 5) & 3;
+ m_bank4000->set_bank(bank);
+ m_bank8000->set_entry(bank);
+}
- /* this is accessed from I/O space but modifies program space, so we normalize here */
- address_space &prog_space = space.device().memory().space(AS_PROGRAM);
-
- /* remember the banking bits for save state support */
- m_profpac_bank = data;
-
- /* set the main banking */
- prog_space.install_read_bank(0x4000, 0xbfff, "bank1");
- membank("bank1")->set_base(memregion("user1")->base() + 0x8000 * bank);
- /* bank 0 reads video RAM in the 4000-7FFF range */
- if (bank == 0)
- prog_space.install_read_handler(0x4000, 0x7fff, read8_delegate(FUNC(astrocde_state::profpac_videoram_r), this));
+WRITE8_MEMBER(astrocde_state::profpac_banksw_w)
+{
+ demndrgn_banksw_w(space, 0, data);
- /* if we have a 640k EPROM board, map that on top of the 4000-7FFF range if specified */
- if ((data & 0x80) && memregion("user2")->base() != NULL)
+ if (data & 0x80)
{
/* Note: There is a jumper which could change the base offset to 0xa8 instead */
- bank = data - 0x80;
+ int bank = data - 0x80;
/* if the bank is in range, map the appropriate bank */
if (bank < 0x28)
- {
- prog_space.install_read_bank(0x4000, 0x7fff, "bank2");
- membank("bank2")->set_base(memregion("user2")->base() + 0x4000 * bank);
- }
+ m_bank4000->set_bank(4 + bank);
else
- prog_space.unmap_read(0x4000, 0x7fff);
+ m_bank4000->set_bank(4 + 0x28);
}
}
-void astrocde_state::profbank_banksw_restore()
-{
- address_space &space = m_maincpu->space(AS_IO);
-
- profpac_banksw_w(space, 0, m_profpac_bank);
-}
-
-
-
/*************************************
*
* Demons & Dragons specific input/output
@@ -456,10 +438,12 @@ READ8_MEMBER(astrocde_state::demndrgn_io_r)
}
+IOPORT_ARRAY_MEMBER(astrocde_state::joystick_inputs) { "MOVEX", "MOVEY" };
+
+
CUSTOM_INPUT_MEMBER(astrocde_state::demndragn_joystick_r)
{
- static const char *const names[] = { "MOVEX", "MOVEY" };
- return ioport(names[m_input_select])->read();
+ return m_joystick[m_input_select]->read();
}
@@ -581,26 +565,35 @@ static ADDRESS_MAP_START( robby_map, AS_PROGRAM, 8, astrocde_state )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( profpac_map, AS_PROGRAM, 8, astrocde_state )
+static ADDRESS_MAP_START( demndrgn_map, AS_PROGRAM, 8, astrocde_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x0000, 0x3fff) AM_WRITE(astrocade_funcgen_w)
- AM_RANGE(0x4000, 0x7fff) AM_READWRITE(profpac_videoram_r, profpac_videoram_w)
- AM_RANGE(0x4000, 0xbfff) AM_ROMBANK("bank1")
+ AM_RANGE(0x4000, 0x7fff) AM_DEVREAD("bank4000", address_map_bank_device, read8) AM_WRITE(profpac_videoram_w)
+ AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank8000")
AM_RANGE(0xc000, 0xdfff) AM_ROM
- AM_RANGE(0xe000, 0xe1ff) AM_READWRITE(protected_ram_r, protected_ram_w) AM_SHARE("protected_ram")
AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xe800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( demndrgn_map, AS_PROGRAM, 8, astrocde_state )
- AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x0000, 0x3fff) AM_WRITE(astrocade_funcgen_w)
- AM_RANGE(0x4000, 0x7fff) AM_READWRITE(profpac_videoram_r, profpac_videoram_w)
- AM_RANGE(0x4000, 0xbfff) AM_ROMBANK("bank1")
- AM_RANGE(0xc000, 0xdfff) AM_ROM
- AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("nvram")
- AM_RANGE(0xe800, 0xffff) AM_RAM
+static ADDRESS_MAP_START( profpac_map, AS_PROGRAM, 8, astrocde_state )
+ AM_RANGE(0xe000, 0xe1ff) AM_READWRITE(protected_ram_r, protected_ram_w) AM_SHARE("protected_ram")
+ AM_IMPORT_FROM(demndrgn_map)
+ADDRESS_MAP_END
+
+
+static ADDRESS_MAP_START( bank4000_map, AS_PROGRAM, 8, astrocde_state )
+ AM_RANGE(0x0000, 0x3fff) AM_READ(profpac_videoram_r)
+ AM_RANGE(0x4000, 0x7fff) AM_ROM AM_REGION("banks", 0x08000)
+ AM_RANGE(0x8000, 0xbfff) AM_ROM AM_REGION("banks", 0x10000)
+ AM_RANGE(0xc000, 0xffff) AM_ROM AM_REGION("banks", 0x18000)
+ADDRESS_MAP_END
+
+
+static ADDRESS_MAP_START( profpac_bank4000_map, AS_PROGRAM, 8, astrocde_state )
+ AM_RANGE(0x10000, 0xaffff) AM_ROM AM_REGION("epromboard", 0)
+ AM_RANGE(0xb0000, 0xb3fff) AM_READNOP
+ AM_IMPORT_FROM(bank4000_map)
ADDRESS_MAP_END
@@ -656,7 +649,7 @@ static ADDRESS_MAP_START( port_map_16col_pattern_nosound, AS_IO, 8, astrocde_sta
AM_RANGE(0x00bf, 0x00bf) AM_MIRROR(0xff00) AM_WRITE(profpac_page_select_w)
AM_RANGE(0x00c3, 0x00c3) AM_MIRROR(0xff00) AM_READ(profpac_intercept_r)
AM_RANGE(0x00c0, 0x00c5) AM_MIRROR(0xff00) AM_WRITE(profpac_screenram_ctrl_w)
- AM_RANGE(0x00f3, 0x00f3) AM_MIRROR(0xff00) AM_WRITE(profpac_banksw_w)
+ AM_RANGE(0x00f3, 0x00f3) AM_MIRROR(0xff00) AM_WRITE(demndrgn_banksw_w)
AM_RANGE(0xa55b, 0xa55b) AM_WRITE(protected_ram_enable_w)
ADDRESS_MAP_END
@@ -1250,6 +1243,13 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( astrocade_16color_base, astrocade_base )
/* basic machine hardware */
+ MCFG_DEVICE_ADD("bank4000", ADDRESS_MAP_BANK, 0)
+ MCFG_DEVICE_PROGRAM_MAP(bank4000_map)
+ MCFG_ADDRESS_MAP_BANK_ENDIANNESS(ENDIANNESS_LITTLE)
+ MCFG_ADDRESS_MAP_BANK_DATABUS_WIDTH(8)
+ MCFG_ADDRESS_MAP_BANK_ADDRBUS_WIDTH(16)
+ MCFG_ADDRESS_MAP_BANK_STRIDE(0x4000)
+
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
@@ -1417,6 +1417,10 @@ static MACHINE_CONFIG_DERIVED( profpac, astrocade_16color_base )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(profpac_map)
MCFG_CPU_IO_MAP(port_map_16col_pattern)
+
+ MCFG_DEVICE_MODIFY("bank4000")
+ MCFG_DEVICE_PROGRAM_MAP(profpac_bank4000_map)
+ MCFG_ADDRESS_MAP_BANK_ADDRBUS_WIDTH(20)
MACHINE_CONFIG_END
@@ -1573,7 +1577,7 @@ ROM_START( profpac )
ROM_LOAD( "pps2", 0x2000, 0x2000, CRC(8a9a6653) SHA1(b730b24088dcfddbe954670ff9212b7383c923f6) )
ROM_LOAD( "pps9", 0xc000, 0x2000, CRC(17a0b418) SHA1(8b7ed84090dbc5181deef6f55ec755c05d4c0d5e) )
- ROM_REGION( 0x20000, "user1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x20000, "banks", ROMREGION_ERASEFF )
ROM_LOAD( "pps3", 0x04000, 0x2000, CRC(15717fd8) SHA1(ffbb156f417d20478117b39de28a15680993b528) )
ROM_LOAD( "pps4", 0x06000, 0x2000, CRC(36540598) SHA1(33c797c690801afded45091d822347e1ecc72b54) )
ROM_LOAD( "pps5", 0x08000, 0x2000, CRC(8dc89a59) SHA1(fb4d3ba40697425d69ee19bfdcf00aea1df5fa80) )
@@ -1581,7 +1585,7 @@ ROM_START( profpac )
ROM_LOAD( "pps7", 0x0c000, 0x2000, CRC(f9c26aba) SHA1(201b930cca9669114ffc97978cade69587e34a0f) )
ROM_LOAD( "pps8", 0x0e000, 0x2000, CRC(4d201e41) SHA1(786b30cd7a7db55bdde05909d7a1a7f122b6e546) )
- ROM_REGION( 0xa0000, "user2", ROMREGION_ERASEFF )
+ ROM_REGION( 0xa0000, "epromboard", ROMREGION_ERASEFF )
ROM_LOAD( "ppq1", 0x00000, 0x4000, CRC(dddc2ccc) SHA1(d81caaa639f63d971a0d3199b9da6359211edf3d) )
ROM_LOAD( "ppq2", 0x04000, 0x4000, CRC(33bbcabe) SHA1(f9455868c70f479ede0e0621f21f69da165d9b7a) )
ROM_LOAD( "ppq3", 0x08000, 0x4000, CRC(3534d895) SHA1(24fb14c6b31b7f27e0737605cfbf963d29dd3fc5) )
@@ -1617,7 +1621,7 @@ ROM_START( demndrgn )
ROM_LOAD( "dd-x2.bin", 0x2000, 0x2000, CRC(0c63b624) SHA1(3eaeb4e0820e9dda7233a13bb146acc44402addd) )
ROM_LOAD( "dd-x9.bin", 0xc000, 0x2000, CRC(3792d632) SHA1(da053df344f39a8f25a2c57fb1a908131c10f248) )
- ROM_REGION( 0x20000, "user1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x20000, "banks", ROMREGION_ERASEFF )
ROM_LOAD( "dd-x5.bin", 0x08000, 0x2000, CRC(e377e831) SHA1(f53e74b3138611f9385845d6bdeab891b5d15931) )
ROM_LOAD( "dd-x6.bin", 0x0a000, 0x2000, CRC(0fcb46ad) SHA1(5611135f9e341bd394d6da7912167b05fff17a93) )
ROM_LOAD( "dd-x7.bin", 0x0c000, 0x2000, CRC(0675e4fa) SHA1(59668e32271ff9bac0b4411cc0c541d2825ee145) )
@@ -1640,7 +1644,7 @@ ROM_START( tenpindx )
ROM_REGION( 0x4000, "sub", 0 )
ROM_LOAD( "tpd_axfd.bin", 0x0000, 0x4000, CRC(0aed11f3) SHA1(09575cceda38178a77c6753074be82825d368334) )
- ROM_REGION( 0x20000, "user1", ROMREGION_ERASEFF )
+ ROM_REGION( 0x20000, "banks", ROMREGION_ERASEFF )
ROM_LOAD( "tpd_x3.bin", 0x04000, 0x2000, CRC(d4645f6d) SHA1(185bcd58f1ba69e26274475c57219de0353267e1) )
ROM_LOAD( "tpd_x4.bin", 0x06000, 0x2000, CRC(acf474ba) SHA1(b324dccac0991660f8ba2a70cbbdb06c9d25c361) )
ROM_LOAD( "tpd_x5.bin", 0x08000, 0x2000, CRC(e206913f) SHA1(bb9476516bca7bf7066df058db36e4fdd52a6ed2) )
@@ -1731,9 +1735,9 @@ DRIVER_INIT_MEMBER(astrocde_state,profpac)
iospace.install_read_handler(0x14, 0x14, 0x0fff, 0xff00, read8_delegate(FUNC(astrocde_state::profpac_io_1_r), this));
iospace.install_read_handler(0x15, 0x15, 0x77ff, 0xff00, read8_delegate(FUNC(astrocde_state::profpac_io_2_r), this));
- /* reset banking */
- profpac_banksw_w(iospace, 0, 0);
- machine().save().register_postload(save_prepost_delegate(FUNC(astrocde_state::profbank_banksw_restore), this));
+ /* configure banking */
+ m_bank8000->configure_entries(0, 4, memregion("banks")->base() + 0x4000, 0x8000);
+ m_bank8000->set_entry(0);
}
@@ -1747,9 +1751,9 @@ DRIVER_INIT_MEMBER(astrocde_state,demndrgn)
iospace.install_read_port(0x1d, 0x1d, 0x0000, 0xff00, "FIREY");
iospace.install_write_handler(0x97, 0x97, 0x0000, 0xff00, write8_delegate(FUNC(astrocde_state::demndrgn_sound_w), this));
- /* reset banking */
- profpac_banksw_w(iospace, 0, 0);
- machine().save().register_postload(save_prepost_delegate(FUNC(astrocde_state::profbank_banksw_restore), this));
+ /* configure banking */
+ m_bank8000->configure_entries(0, 4, memregion("banks")->base() + 0x4000, 0x8000);
+ m_bank8000->set_entry(0);
}
@@ -1768,9 +1772,9 @@ DRIVER_INIT_MEMBER(astrocde_state,tenpindx)
iospace.install_write_handler(0x68, 0x68, 0x0000, 0xff00, write8_delegate(FUNC(astrocde_state::tenpindx_lights_w), this));
iospace.install_write_handler(0x97, 0x97, 0x0000, 0xff00, write8_delegate(FUNC(astrocde_state::tenpindx_sound_w), this));
- /* reset banking */
- profpac_banksw_w(iospace, 0, 0);
- machine().save().register_postload(save_prepost_delegate(FUNC(astrocde_state::profbank_banksw_restore), this));
+ /* configure banking */
+ m_bank8000->configure_entries(0, 4, memregion("banks")->base() + 0x4000, 0x8000);
+ m_bank8000->set_entry(0);
}
@@ -1782,29 +1786,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", GAME_IMPERFECT_SOUND | GAME_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", GAME_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", GAME_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", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, wowg, wow, wow, wowg, astrocde_state, wow, ROT0, "Dave Nutting Associates / Midway", "Wizard of Wor (with German Language ROM)", GAME_IMPERFECT_SOUND | GAME_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", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_gorf )
-GAMEL(1981, gorfpgm1, gorf, gorf, gorf, astrocde_state, gorf, ROT270, "Dave Nutting Associates / Midway", "Gorf (program 1)", GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_SOUND | GAME_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!", GAME_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", GAME_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)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAMEL(1983, tenpindx, 0, tenpindx, tenpindx, astrocde_state, tenpindx, ROT0, "Dave Nutting Associates / Bally Midway", "Ten Pin Deluxe", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE | GAME_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.c b/src/mame/drivers/astrof.c
index d4ea68ce8e0..ddab7938b15 100644
--- a/src/mame/drivers/astrof.c
+++ b/src/mame/drivers/astrof.c
@@ -1325,19 +1325,19 @@ DRIVER_INIT_MEMBER(astrof_state,acombat3)
*
*************************************/
-GAME( 1979, astrof, 0, astrof, astrof, driver_device, 0, ROT90, "Data East", "Astro Fighter (set 1)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1979, astrof2, astrof, astrof, astrof, driver_device, 0, ROT90, "Data East", "Astro Fighter (set 2)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1979, astrof3, astrof, astrof, astrof, driver_device, 0, ROT90, "Data East", "Astro Fighter (set 3)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1979, abattle, astrof, abattle, abattle, astrof_state, abattle, ROT90, "bootleg? (Sidam)", "Astro Battle (set 1)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1979, abattle2, astrof, abattle, abattle, astrof_state, abattle, ROT90, "bootleg? (Sidam)", "Astro Battle (set 2)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1979, afire, astrof, abattle, abattle, astrof_state, afire, ROT90, "bootleg (Rene Pierre)", "Astro Fire", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1979, acombat, astrof, abattle, abattle, astrof_state, afire, ROT90, "bootleg", "Astro Combat (newer, CB)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1979, acombato, astrof, abattle, abattle, astrof_state, afire, ROT90, "bootleg", "Astro Combat (older, PZ)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1979, acombat3, astrof, abattle, abattle, astrof_state, acombat3,ROT90, "bootleg (Proel)", "Astro Combat (unencrypted)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1979, sstarbtl, astrof, abattle, abattle, astrof_state, sstarbtl,ROT90, "bootleg", "Super Star Battle", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-
-GAME( 1979, spfghmk2, 0, spfghmk2, spfghmk2, driver_device,0, ROT90, "Data East", "Space Fighter Mark II (set 1)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1979, spfghmk22,spfghmk2, spfghmk2, spfghmk22,driver_device,0, ROT90, "Data East", "Space Fighter Mark II (set 2)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-
-GAME( 1980, tomahawk, 0, tomahawk, tomahawk, driver_device,0, ROT90, "Data East", "Tomahawk 777 (rev 5)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, tomahawk1,tomahawk, tomahawk, tomahawk1,driver_device,0, ROT90, "Data East", "Tomahawk 777 (rev 1)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+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, 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 )
diff --git a/src/mess/drivers/astrocde.c b/src/mame/drivers/astrohome.c
index 2943c3a9056..a3149dd048c 100644
--- a/src/mess/drivers/astrocde.c
+++ b/src/mame/drivers/astrohome.c
@@ -267,6 +267,6 @@ 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", GAME_SUPPORTS_SAVE )
-CONS( 1977, astrocdl, astrocde, 0, astrocde, astrocde, astrocde_state, astrocde, "Bally Manufacturing", "Bally Home Library Computer", GAME_SUPPORTS_SAVE )
-CONS( 1977, astrocdw, astrocde, 0, astrocde, astrocde, astrocde_state, astrocde, "Bally Manufacturing", "Bally Computer System", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/astropc.c b/src/mame/drivers/astropc.c
index 7deed2b4d96..a58eb2335eb 100644
--- a/src/mame/drivers/astropc.c
+++ b/src/mame/drivers/astropc.c
@@ -162,15 +162,15 @@ DRIVER_INIT_MEMBER(astropc_state,astropc)
{
}
-GAME( 2002, blackbd, 0, astropc, astropc, astropc_state, astropc, ROT0, "Astro", "Black Beard (Russia, set 1)", GAME_IS_SKELETON )
-GAME( 2002, blackbda, blackbd, astropc, astropc, astropc_state, astropc, ROT0, "Astro", "Black Beard (Russia, set 2)", GAME_IS_SKELETON )
-GAME( 2002, blackbdb, blackbd, astropc, astropc, astropc_state, astropc, ROT0, "Astro", "Black Beard (Russia, set 3)", GAME_IS_SKELETON )
+GAME( 2002, blackbd, 0, astropc, astropc, astropc_state, astropc, ROT0, "Astro", "Black Beard (Russia, set 1)", MACHINE_IS_SKELETON )
+GAME( 2002, blackbda, blackbd, astropc, astropc, astropc_state, astropc, ROT0, "Astro", "Black Beard (Russia, set 2)", MACHINE_IS_SKELETON )
+GAME( 2002, blackbdb, blackbd, astropc, astropc, astropc_state, astropc, ROT0, "Astro", "Black Beard (Russia, set 3)", MACHINE_IS_SKELETON )
-GAME( 2002, dslayrr, 0, astropc, astropc, astropc_state, astropc, ROT0, "Astro", "Dragon Slayer (Russia, set 1)", GAME_IS_SKELETON )
-GAME( 2002, dslayrra, dslayrr, astropc, astropc, astropc_state, astropc, ROT0, "Astro", "Dragon Slayer (Russia, set 2)", GAME_IS_SKELETON )
+GAME( 2002, dslayrr, 0, astropc, astropc, astropc_state, astropc, ROT0, "Astro", "Dragon Slayer (Russia, set 1)", MACHINE_IS_SKELETON )
+GAME( 2002, dslayrra, dslayrr, astropc, astropc, astropc_state, astropc, ROT0, "Astro", "Dragon Slayer (Russia, set 2)", MACHINE_IS_SKELETON )
-GAME( 2002, hawaii, 0, astropc, astropc, astropc_state, astropc, ROT0, "Astro", "Hawaii (Russia)", GAME_IS_SKELETON )
+GAME( 2002, hawaii, 0, astropc, astropc, astropc_state, astropc, ROT0, "Astro", "Hawaii (Russia)", MACHINE_IS_SKELETON )
-GAME( 2002, oligam, 0, astropc, astropc, astropc_state, astropc, ROT0, "Astro", "Olympian Games (Russia)", GAME_IS_SKELETON )
+GAME( 2002, oligam, 0, astropc, astropc, astropc_state, astropc, ROT0, "Astro", "Olympian Games (Russia)", MACHINE_IS_SKELETON )
-GAME( 2002, rasce, 0, astropc, astropc, astropc_state, astropc, ROT0, "Astro", "Ra Sceptor (Russia)", GAME_IS_SKELETON )
+GAME( 2002, rasce, 0, astropc, astropc, astropc_state, astropc, ROT0, "Astro", "Ra Sceptor (Russia)", MACHINE_IS_SKELETON )
diff --git a/src/mame/drivers/asuka.c b/src/mame/drivers/asuka.c
index 9bd425858ec..46b93c81042 100644
--- a/src/mame/drivers/asuka.c
+++ b/src/mame/drivers/asuka.c
@@ -1344,56 +1344,56 @@ ROM_END
ROM_START( asuka )
ROM_REGION( 0x100000, "maincpu", 0 ) /* 1024k for 68000 code */
- ROM_LOAD16_BYTE( "b68-13.bin", 0x00000, 0x20000, CRC(855efb3e) SHA1(644e02e207adeaec7839c824688d88ab8d046418) )
- ROM_LOAD16_BYTE( "b68-12.bin", 0x00001, 0x20000, CRC(271eeee9) SHA1(c08e347be4aae929c0ab95ff7618edaa1a7d6da9) )
+ ROM_LOAD16_BYTE( "b68-13.ic23", 0x00000, 0x20000, CRC(855efb3e) SHA1(644e02e207adeaec7839c824688d88ab8d046418) )
+ ROM_LOAD16_BYTE( "b68-12.ic8", 0x00001, 0x20000, CRC(271eeee9) SHA1(c08e347be4aae929c0ab95ff7618edaa1a7d6da9) )
/* 0x040000 - 0x7ffff is intentionally empty */
- ROM_LOAD16_WORD( "b68-03.bin", 0x80000, 0x80000, CRC(d3a59b10) SHA1(35a2ff18b64e73ac5e17484354c0cc58bc2cd7fc) ) /* Fix ROM */
+ ROM_LOAD16_WORD( "b68-03.ic30", 0x80000, 0x80000, CRC(d3a59b10) SHA1(35a2ff18b64e73ac5e17484354c0cc58bc2cd7fc) ) /* Fix ROM */
ROM_REGION( 0x80000, "gfx1", 0 )
- ROM_LOAD( "b68-01.bin", 0x00000, 0x80000, CRC(89f32c94) SHA1(74fbb699e05e2336509cb5ac06ed94335ff870d5) ) /* SCR tiles (8 x 8) */
+ ROM_LOAD( "b68-01.ic3", 0x00000, 0x80000, CRC(89f32c94) SHA1(74fbb699e05e2336509cb5ac06ed94335ff870d5) ) /* SCR tiles (8 x 8) */
ROM_REGION( 0xa0000, "gfx2", 0 )
- ROM_LOAD ( "b68-02.bin", 0x00000, 0x80000, CRC(f5018cd3) SHA1(860ce140ae369556d03d5d78987b87c0d6070df5) ) /* Sprites (16 x 16) */
- ROM_LOAD16_BYTE( "b68-07.bin", 0x80000, 0x10000, CRC(c113acc8) SHA1(613c61a78df73dcb0b9c9018ae829e865baac772) )
- ROM_LOAD16_BYTE( "b68-06.bin", 0x80001, 0x10000, CRC(f517e64d) SHA1(8be491bfe0f7eed58521de9d31da677acf635c23) )
+ ROM_LOAD ( "b68-02.ic6", 0x00000, 0x80000, CRC(f5018cd3) SHA1(860ce140ae369556d03d5d78987b87c0d6070df5) ) /* Sprites (16 x 16) */
+ ROM_LOAD16_BYTE( "b68-07.ic5", 0x80000, 0x10000, CRC(c113acc8) SHA1(613c61a78df73dcb0b9c9018ae829e865baac772) )
+ ROM_LOAD16_BYTE( "b68-06.ic4", 0x80001, 0x10000, CRC(f517e64d) SHA1(8be491bfe0f7eed58521de9d31da677acf635c23) )
ROM_REGION( 0x1c000, "audiocpu", 0 ) /* sound cpu */
- ROM_LOAD( "b68-11.bin", 0x00000, 0x04000, CRC(c378b508) SHA1(1b145fe736b924f298e02532cf9f26cc18b42ca7) )
- ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */
+ ROM_LOAD( "b68-11.ic27", 0x00000, 0x04000, CRC(c378b508) SHA1(1b145fe736b924f298e02532cf9f26cc18b42ca7) )
+ ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */
ROM_REGION( 0x10000, "ymsnd", 0 ) /* ADPCM samples */
- ROM_LOAD( "b68-10.bin", 0x00000, 0x10000, CRC(387aaf40) SHA1(47c583564ef1d49ece15f97221b2e073e8fb0544) )
+ ROM_LOAD( "b68-10.ic24", 0x00000, 0x10000, CRC(387aaf40) SHA1(47c583564ef1d49ece15f97221b2e073e8fb0544) )
ROM_REGION( 0x144, "pals", 0 )
- ROM_LOAD( "b68-04.bin", 0x00000, 0x144, CRC(9be618d1) SHA1(61ee33c3db448a05ff8f455e77fe17d51106baec) )
- ROM_LOAD( "b68-05.bin", 0x00000, 0x104, CRC(d6524ccc) SHA1(f3b56253692aebb63278d47832fc27b8b212b59c) )
+ ROM_LOAD( "b68-04.ic32", 0x00000, 0x144, CRC(9be618d1) SHA1(61ee33c3db448a05ff8f455e77fe17d51106baec) )
+ ROM_LOAD( "b68-05.ic43", 0x00000, 0x104, CRC(d6524ccc) SHA1(f3b56253692aebb63278d47832fc27b8b212b59c) )
ROM_END
-ROM_START( asukaj )
+ROM_START( asukaj ) /* Known to exist but not dumped: revision 1 with B68 08-1 & B68 09-1 program roms */
ROM_REGION( 0x100000, "maincpu", 0 ) /* 1024k for 68000 code */
- ROM_LOAD16_BYTE( "b68-09.bin", 0x00000, 0x20000, CRC(1eaa1bbb) SHA1(01ca6a5f3c47dab49654b84601119714eb329cc5) )
- ROM_LOAD16_BYTE( "b68-08.bin", 0x00001, 0x20000, CRC(8cc96e60) SHA1(dc94f3fd48c0407ec72e8330bc688e9e16d39213) )
+ ROM_LOAD16_BYTE( "b68-09.ic23", 0x00000, 0x20000, CRC(1eaa1bbb) SHA1(01ca6a5f3c47dab49654b84601119714eb329cc5) )
+ ROM_LOAD16_BYTE( "b68-08.ic8", 0x00001, 0x20000, CRC(8cc96e60) SHA1(dc94f3fd48c0407ec72e8330bc688e9e16d39213) )
/* 0x040000 - 0x7ffff is intentionally empty */
- ROM_LOAD16_WORD( "b68-03.bin", 0x80000, 0x80000, CRC(d3a59b10) SHA1(35a2ff18b64e73ac5e17484354c0cc58bc2cd7fc) ) /* Fix ROM */
+ ROM_LOAD16_WORD( "b68-03.ic30", 0x80000, 0x80000, CRC(d3a59b10) SHA1(35a2ff18b64e73ac5e17484354c0cc58bc2cd7fc) ) /* Fix ROM */
ROM_REGION( 0x80000, "gfx1", 0 )
- ROM_LOAD( "b68-01.bin", 0x00000, 0x80000, CRC(89f32c94) SHA1(74fbb699e05e2336509cb5ac06ed94335ff870d5) ) /* SCR tiles (8 x 8) */
+ ROM_LOAD( "b68-01.ic3", 0x00000, 0x80000, CRC(89f32c94) SHA1(74fbb699e05e2336509cb5ac06ed94335ff870d5) ) /* SCR tiles (8 x 8) */
ROM_REGION( 0xa0000, "gfx2", 0 )
- ROM_LOAD ( "b68-02.bin", 0x00000, 0x80000, CRC(f5018cd3) SHA1(860ce140ae369556d03d5d78987b87c0d6070df5) ) /* Sprites (16 x 16) */
- ROM_LOAD16_BYTE( "b68-07.bin", 0x80000, 0x10000, CRC(c113acc8) SHA1(613c61a78df73dcb0b9c9018ae829e865baac772) )
- ROM_LOAD16_BYTE( "b68-06.bin", 0x80001, 0x10000, CRC(f517e64d) SHA1(8be491bfe0f7eed58521de9d31da677acf635c23) )
+ ROM_LOAD ( "b68-02.ic6", 0x00000, 0x80000, CRC(f5018cd3) SHA1(860ce140ae369556d03d5d78987b87c0d6070df5) ) /* Sprites (16 x 16) */
+ ROM_LOAD16_BYTE( "b68-07.ic5", 0x80000, 0x10000, CRC(c113acc8) SHA1(613c61a78df73dcb0b9c9018ae829e865baac772) )
+ ROM_LOAD16_BYTE( "b68-06.ic4", 0x80001, 0x10000, CRC(f517e64d) SHA1(8be491bfe0f7eed58521de9d31da677acf635c23) )
ROM_REGION( 0x1c000, "audiocpu", 0 ) /* sound cpu */
- ROM_LOAD( "b68-11.bin", 0x00000, 0x04000, CRC(c378b508) SHA1(1b145fe736b924f298e02532cf9f26cc18b42ca7) )
- ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */
+ ROM_LOAD( "b68-11.ic27", 0x00000, 0x04000, CRC(c378b508) SHA1(1b145fe736b924f298e02532cf9f26cc18b42ca7) )
+ ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */
ROM_REGION( 0x10000, "ymsnd", 0 ) /* ADPCM samples */
- ROM_LOAD( "b68-10.bin", 0x00000, 0x10000, CRC(387aaf40) SHA1(47c583564ef1d49ece15f97221b2e073e8fb0544) )
+ ROM_LOAD( "b68-10.ic24", 0x00000, 0x10000, CRC(387aaf40) SHA1(47c583564ef1d49ece15f97221b2e073e8fb0544) )
ROM_REGION( 0x144, "pals", 0 )
- ROM_LOAD( "b68-04.bin", 0x00000, 0x144, CRC(9be618d1) SHA1(61ee33c3db448a05ff8f455e77fe17d51106baec) )
- ROM_LOAD( "b68-05.bin", 0x00000, 0x104, CRC(d6524ccc) SHA1(f3b56253692aebb63278d47832fc27b8b212b59c) )
+ ROM_LOAD( "b68-04.ic32", 0x00000, 0x144, CRC(9be618d1) SHA1(61ee33c3db448a05ff8f455e77fe17d51106baec) )
+ ROM_LOAD( "b68-05.ic43", 0x00000, 0x104, CRC(d6524ccc) SHA1(f3b56253692aebb63278d47832fc27b8b212b59c) )
ROM_END
ROM_START( mofflott )
@@ -1665,117 +1665,117 @@ ROM_END
ROM_START( galmedes )
ROM_REGION( 0x100000, "maincpu", 0 ) /* 1024k for 68000 code */
- ROM_LOAD16_BYTE( "gm-prg1.bin", 0x00000, 0x20000, CRC(32a70753) SHA1(3bd094b7ae600dbc87ba74e8b2d6b86a68346f4f) )
- ROM_LOAD16_BYTE( "gm-prg0.bin", 0x00001, 0x20000, CRC(fae546a4) SHA1(484cad5287daa495b347f6b5b065f3b3d02d8f0e) )
+ ROM_LOAD16_BYTE( "gm-prg1.ic23", 0x00000, 0x20000, CRC(32a70753) SHA1(3bd094b7ae600dbc87ba74e8b2d6b86a68346f4f) )
+ ROM_LOAD16_BYTE( "gm-prg0.ic8", 0x00001, 0x20000, CRC(fae546a4) SHA1(484cad5287daa495b347f6b5b065f3b3d02d8f0e) )
/* 0x40000 - 0x7ffff is intentionally empty */
- ROM_LOAD16_WORD( "gm-30.rom", 0x80000, 0x80000, CRC(4da2a407) SHA1(7bd0eb629dd7022a16e328612c786c544267f7bc) ) /* Fix ROM */
+ ROM_LOAD16_WORD( "gm-30.ic30", 0x80000, 0x80000, CRC(4da2a407) SHA1(7bd0eb629dd7022a16e328612c786c544267f7bc) ) /* Fix ROM */
ROM_REGION( 0x80000, "gfx1", 0 )
- ROM_LOAD( "gm-scn.bin", 0x00000, 0x80000, CRC(3bab0581) SHA1(56b79a4ffd9f4880a63450b7d1b79f029de75e20) ) /* SCR tiles (8 x 8) */
+ ROM_LOAD( "gm-scn.ic3", 0x00000, 0x80000, CRC(3bab0581) SHA1(56b79a4ffd9f4880a63450b7d1b79f029de75e20) ) /* SCR tiles (8 x 8) */
ROM_REGION( 0x80000, "gfx2", 0 )
- ROM_LOAD( "gm-obj.bin", 0x00000, 0x80000, CRC(7a4a1315) SHA1(e2010ee4222415fd55ba3102003be4151d29e39b) ) /* Sprites (16 x 16) */
+ ROM_LOAD( "gm-obj.ic6", 0x00000, 0x80000, CRC(7a4a1315) SHA1(e2010ee4222415fd55ba3102003be4151d29e39b) ) /* Sprites (16 x 16) */
ROM_REGION( 0x1c000, "audiocpu", 0 ) /* sound cpu */
- ROM_LOAD( "gm-snd.bin", 0x00000, 0x04000, CRC(d6f56c21) SHA1(ff9743448ac8ce57a2f8c33a26145e7b92cbe3c3) )
- ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */
+ ROM_LOAD( "gm-snd.ic27", 0x00000, 0x04000, CRC(d6f56c21) SHA1(ff9743448ac8ce57a2f8c33a26145e7b92cbe3c3) )
+ ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */
ROM_REGION( 0x144, "pals", 0 )
- ROM_LOAD( "b68-04.bin", 0x00000, 0x144, CRC(9be618d1) SHA1(61ee33c3db448a05ff8f455e77fe17d51106baec) )
- ROM_LOAD( "b68-05.bin", 0x00000, 0x104, CRC(d6524ccc) SHA1(f3b56253692aebb63278d47832fc27b8b212b59c) )
+ ROM_LOAD( "b68-04.ic32", 0x00000, 0x144, CRC(9be618d1) SHA1(61ee33c3db448a05ff8f455e77fe17d51106baec) )
+ ROM_LOAD( "b68-05.ic43", 0x00000, 0x104, CRC(d6524ccc) SHA1(f3b56253692aebb63278d47832fc27b8b212b59c) )
ROM_END
ROM_START( earthjkr )
ROM_REGION( 0x100000, "maincpu", 0 ) /* 1024k for 68000 code */
- ROM_LOAD16_BYTE( "ej_3b.rom", 0x00000, 0x20000, CRC(bdd86fc2) SHA1(96578860ed03718f8a68847b367eac6c81b79ca2) )
- ROM_LOAD16_BYTE( "ej_3a.rom", 0x00001, 0x20000, CRC(9c8050c6) SHA1(076c882f75787e8120de66ff0dcd2cb820513c45) )
+ ROM_LOAD16_BYTE( "ej_3b.ic23", 0x00000, 0x20000, CRC(bdd86fc2) SHA1(96578860ed03718f8a68847b367eac6c81b79ca2) )
+ ROM_LOAD16_BYTE( "ej_3a.ic8", 0x00001, 0x20000, CRC(9c8050c6) SHA1(076c882f75787e8120de66ff0dcd2cb820513c45) )
/* 0x40000 - 0x7ffff is intentionally empty */
- ROM_LOAD16_WORD( "ej_30e.rom", 0x80000, 0x80000, CRC(49d1f77f) SHA1(f6c9b2fc88b77cc9baa5be48da5c3eb72310e471) ) /* Fix ROM */
+ ROM_LOAD16_WORD( "ej_30e.ic30", 0x80000, 0x80000, CRC(49d1f77f) SHA1(f6c9b2fc88b77cc9baa5be48da5c3eb72310e471) ) /* Fix ROM */
ROM_REGION( 0x80000, "gfx1", 0 )
- ROM_LOAD( "ej_chr.rom", 0x00000, 0x80000, CRC(ac675297) SHA1(2a34e1eae3a4be84dbf709053f5e8a781b1073fc) ) /* SCR tiles (8 x 8) */
+ ROM_LOAD( "ej_chr.ic3", 0x00000, 0x80000, CRC(ac675297) SHA1(2a34e1eae3a4be84dbf709053f5e8a781b1073fc) ) /* SCR tiles (8 x 8) */
ROM_REGION( 0xa0000, "gfx2", 0 )
- ROM_LOAD ( "ej_obj.rom", 0x00000, 0x80000, CRC(5f21ac47) SHA1(45c94ffb53ee9b822b0676f6fb151fed4ce6d967) ) /* Sprites (16 x 16) */
- ROM_LOAD16_BYTE( "ej_1.rom", 0x80000, 0x10000, CRC(cb4891db) SHA1(af1112608cdd897ef6028ef617f5ca69d7964861) )
- ROM_LOAD16_BYTE( "ej_0.rom", 0x80001, 0x10000, CRC(b612086f) SHA1(625748fcb698ec57b7b3ce46019cf85de99aaaa1) )
+ ROM_LOAD ( "ej_obj.ic6", 0x00000, 0x80000, CRC(5f21ac47) SHA1(45c94ffb53ee9b822b0676f6fb151fed4ce6d967) ) /* Sprites (16 x 16) */
+ ROM_LOAD16_BYTE( "ej_1.ic5", 0x80000, 0x10000, CRC(cb4891db) SHA1(af1112608cdd897ef6028ef617f5ca69d7964861) )
+ ROM_LOAD16_BYTE( "ej_0.ic4", 0x80001, 0x10000, CRC(b612086f) SHA1(625748fcb698ec57b7b3ce46019cf85de99aaaa1) )
ROM_REGION( 0x1c000, "audiocpu", 0 ) /* sound cpu */
- ROM_LOAD( "ej_2.rom", 0x00000, 0x04000, CRC(42ba2566) SHA1(c437388684b565c7504d6bad6accd73aa000faca) )
- ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */
+ ROM_LOAD( "ej_2.ic27", 0x00000, 0x04000, CRC(42ba2566) SHA1(c437388684b565c7504d6bad6accd73aa000faca) )
+ ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */
ROM_REGION( 0x144, "pals", 0 )
- ROM_LOAD( "b68-04.bin", 0x00000, 0x144, CRC(9be618d1) SHA1(61ee33c3db448a05ff8f455e77fe17d51106baec) )
- ROM_LOAD( "b68-05.bin", 0x00000, 0x104, CRC(d6524ccc) SHA1(f3b56253692aebb63278d47832fc27b8b212b59c) )
+ ROM_LOAD( "b68-04.ic32", 0x00000, 0x144, CRC(9be618d1) SHA1(61ee33c3db448a05ff8f455e77fe17d51106baec) )
+ ROM_LOAD( "b68-05.ic43", 0x00000, 0x104, CRC(d6524ccc) SHA1(f3b56253692aebb63278d47832fc27b8b212b59c) )
ROM_END
ROM_START( earthjkrp ) // was production PCB complete with MASK rom, could just be an early revision, not proto
ROM_REGION( 0x100000, "maincpu", 0 ) /* 1024k for 68000 code */
- ROM_LOAD16_BYTE( "3.bin", 0x00001, 0x20000, CRC(26c33225) SHA1(b039c47d0776c90813ab52c867e95989cab2c567) )
- ROM_LOAD16_BYTE( "4.bin", 0x00000, 0x20000, CRC(e9b1ef0c) SHA1(5e104146d37922a8c7e93696c2c156223653025b) )
+ ROM_LOAD16_BYTE( "3.ic23", 0x00001, 0x20000, CRC(26c33225) SHA1(b039c47d0776c90813ab52c867e95989cab2c567) )
+ ROM_LOAD16_BYTE( "4.ic8", 0x00000, 0x20000, CRC(e9b1ef0c) SHA1(5e104146d37922a8c7e93696c2c156223653025b) )
/* 0x40000 - 0x7ffff is intentionally empty */
- ROM_LOAD16_WORD( "5.bin", 0x80000, 0x80000, CRC(bf760b2d) SHA1(4aff36623e5a31ab86c77461fa93e40e77f08edd) ) /* Fix ROM */
+ ROM_LOAD16_WORD( "5.ic30", 0x80000, 0x80000, CRC(bf760b2d) SHA1(4aff36623e5a31ab86c77461fa93e40e77f08edd) ) /* Fix ROM */
ROM_REGION( 0x80000, "gfx1", 0 )
- ROM_LOAD( "ej_chr.rom", 0x00000, 0x80000, CRC(ac675297) SHA1(2a34e1eae3a4be84dbf709053f5e8a781b1073fc) ) /* SCR tiles (8 x 8) */
+ ROM_LOAD( "ej_chr.ic3", 0x00000, 0x80000, CRC(ac675297) SHA1(2a34e1eae3a4be84dbf709053f5e8a781b1073fc) ) /* SCR tiles (8 x 8) */
ROM_REGION( 0xa0000, "gfx2", 0 )
- ROM_LOAD ( "ej_obj.rom", 0x00000, 0x80000, CRC(5f21ac47) SHA1(45c94ffb53ee9b822b0676f6fb151fed4ce6d967) ) /* Sprites (16 x 16) */
- ROM_LOAD16_BYTE( "ej_1.rom", 0x80000, 0x10000, CRC(cb4891db) SHA1(af1112608cdd897ef6028ef617f5ca69d7964861) )
- ROM_LOAD16_BYTE( "ej_0.rom", 0x80001, 0x10000, CRC(b612086f) SHA1(625748fcb698ec57b7b3ce46019cf85de99aaaa1) )
+ ROM_LOAD ( "ej_obj.ic6", 0x00000, 0x80000, CRC(5f21ac47) SHA1(45c94ffb53ee9b822b0676f6fb151fed4ce6d967) ) /* Sprites (16 x 16) */
+ ROM_LOAD16_BYTE( "ej_1.ic5", 0x80000, 0x10000, CRC(cb4891db) SHA1(af1112608cdd897ef6028ef617f5ca69d7964861) )
+ ROM_LOAD16_BYTE( "ej_0.ic4", 0x80001, 0x10000, CRC(b612086f) SHA1(625748fcb698ec57b7b3ce46019cf85de99aaaa1) )
ROM_REGION( 0x1c000, "audiocpu", 0 ) /* sound cpu */
- ROM_LOAD( "ej_2.rom", 0x00000, 0x04000, CRC(42ba2566) SHA1(c437388684b565c7504d6bad6accd73aa000faca) )
- ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */
+ ROM_LOAD( "ej_2.ic27", 0x00000, 0x04000, CRC(42ba2566) SHA1(c437388684b565c7504d6bad6accd73aa000faca) )
+ ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */
ROM_REGION( 0x144, "pals", 0 )
- ROM_LOAD( "b68-04.bin", 0x00000, 0x144, CRC(9be618d1) SHA1(61ee33c3db448a05ff8f455e77fe17d51106baec) )
- ROM_LOAD( "b68-05.bin", 0x00000, 0x104, CRC(d6524ccc) SHA1(f3b56253692aebb63278d47832fc27b8b212b59c) )
+ ROM_LOAD( "b68-04.ic32", 0x00000, 0x144, CRC(9be618d1) SHA1(61ee33c3db448a05ff8f455e77fe17d51106baec) )
+ ROM_LOAD( "b68-05.ic43", 0x00000, 0x104, CRC(d6524ccc) SHA1(f3b56253692aebb63278d47832fc27b8b212b59c) )
ROM_END
ROM_START( eto )
ROM_REGION( 0x100000, "maincpu", 0 ) /* 1024k for 68000 code */
- ROM_LOAD16_BYTE( "eto-1.23", 0x00000, 0x20000, CRC(44286597) SHA1(ac37e5edbf9d187f60232adc5e9ebed45b3d2fe2) )
- ROM_LOAD16_BYTE( "eto-0.8", 0x00001, 0x20000, CRC(57b79370) SHA1(25f83eada982ef654260fe92016d42a90005a05c) )
+ ROM_LOAD16_BYTE( "eto-1.ic23", 0x00000, 0x20000, CRC(44286597) SHA1(ac37e5edbf9d187f60232adc5e9ebed45b3d2fe2) )
+ ROM_LOAD16_BYTE( "eto-0.ic8", 0x00001, 0x20000, CRC(57b79370) SHA1(25f83eada982ef654260fe92016d42a90005a05c) )
/* 0x40000 - 0x7ffff is intentionally empty */
- ROM_LOAD16_WORD( "eto-2.30", 0x80000, 0x80000, CRC(12f46fb5) SHA1(04db8b6ccd0051668bd2930275efa0265c0cfd2b) ) /* Fix ROM */
+ ROM_LOAD16_WORD( "eto-2.ic30", 0x80000, 0x80000, CRC(12f46fb5) SHA1(04db8b6ccd0051668bd2930275efa0265c0cfd2b) ) /* Fix ROM */
ROM_REGION( 0x80000, "gfx1", 0 )
- ROM_LOAD( "eto-4.3", 0x00000, 0x80000, CRC(a8768939) SHA1(a2cbbd3e10ed48ba32a680b2e40ea03900cf33fa) ) /* Sprites (16 x 16) */
+ ROM_LOAD( "eto-4.ic3", 0x00000, 0x80000, CRC(a8768939) SHA1(a2cbbd3e10ed48ba32a680b2e40ea03900cf33fa) ) /* Sprites (16 x 16) */
ROM_REGION( 0x80000, "gfx2", 0 )
- ROM_LOAD( "eto-3.6", 0x00000, 0x80000, CRC(dd247397) SHA1(53a7bf877fd7e5f3daf295a698f4012447b6f113) ) /* SCR tiles (8 x 8) */
+ ROM_LOAD( "eto-3.ic6", 0x00000, 0x80000, CRC(dd247397) SHA1(53a7bf877fd7e5f3daf295a698f4012447b6f113) ) /* SCR tiles (8 x 8) */
ROM_REGION( 0x1c000, "audiocpu", 0 ) /* sound cpu */
- ROM_LOAD( "eto-5.27", 0x00000, 0x04000, CRC(b3689da0) SHA1(812d2e0a794403df9f0a5035784f14cd070ea080) )
- ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */
+ ROM_LOAD( "eto-5.ic27", 0x00000, 0x04000, CRC(b3689da0) SHA1(812d2e0a794403df9f0a5035784f14cd070ea080) )
+ ROM_CONTINUE( 0x10000, 0x0c000 ) /* banked stuff */
ROM_END
-GAME( 1988, bonzeadv, 0, bonzeadv, bonzeadv, driver_device, 0, ROT0, "Taito Corporation Japan", "Bonze Adventure (World, Newer)", GAME_SUPPORTS_SAVE )
-GAME( 1988, bonzeadvo, bonzeadv, bonzeadv, bonzeadv, driver_device, 0, ROT0, "Taito Corporation Japan", "Bonze Adventure (World, Older)", GAME_SUPPORTS_SAVE )
-GAME( 1988, bonzeadvu, bonzeadv, bonzeadv, jigkmgri, driver_device, 0, ROT0, "Taito America Corporation", "Bonze Adventure (US)", GAME_SUPPORTS_SAVE )
-GAME( 1988, jigkmgri, bonzeadv, bonzeadv, jigkmgri, driver_device, 0, ROT0, "Taito Corporation", "Jigoku Meguri (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1988, bonzeadvp, bonzeadv, bonzeadv, jigkmgri, driver_device, 0, ROT0, "Taito Corporation Japan", "Bonze Adventure (World, prototype)", GAME_SUPPORTS_SAVE )
+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, asuka, 0, asuka, asuka, driver_device, 0, ROT270, "Taito Corporation", "Asuka & Asuka (World)", GAME_SUPPORTS_SAVE )
-GAME( 1988, asukaj, asuka, asuka, asuka, driver_device, 0, ROT270, "Taito Corporation", "Asuka & Asuka (Japan)", GAME_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( 1989, mofflott, 0, mofflott, mofflott, driver_device, 0, ROT270, "Taito Corporation", "Maze of Flott (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1989, mofflott, 0, mofflott, mofflott, driver_device, 0, ROT270, "Taito Corporation", "Maze of Flott (Japan)", MACHINE_SUPPORTS_SAVE )
-GAME( 1989, cadash, 0, cadash, cadash, driver_device, 0, ROT0, "Taito Corporation Japan", "Cadash (World)", GAME_SUPPORTS_SAVE )
-GAME( 1989, cadashj, cadash, cadash, cadashj, driver_device, 0, ROT0, "Taito Corporation", "Cadash (Japan, version 2)", GAME_SUPPORTS_SAVE )
-GAME( 1989, cadashj1, cadash, cadash, cadashj, driver_device, 0, ROT0, "Taito Corporation", "Cadash (Japan, version 1)", GAME_SUPPORTS_SAVE )
-GAME( 1989, cadashjo, cadash, cadash, cadashj, driver_device, 0, ROT0, "Taito Corporation", "Cadash (Japan, oldest version)", GAME_SUPPORTS_SAVE )
-GAME( 1989, cadashu, cadash, cadash, cadashu, driver_device, 0, ROT0, "Taito America Corporation", "Cadash (US, version 2)", GAME_SUPPORTS_SAVE )
-GAME( 1989, cadashi, cadash, cadash, cadash, driver_device, 0, ROT0, "Taito Corporation Japan", "Cadash (Italy)", GAME_SUPPORTS_SAVE )
-GAME( 1989, cadashf, cadash, cadash, cadash, driver_device, 0, ROT0, "Taito Corporation Japan", "Cadash (France)", GAME_SUPPORTS_SAVE )
-GAME( 1989, cadashg, cadash, cadash, cadash, driver_device, 0, ROT0, "Taito Corporation Japan", "Cadash (Germany, version 1)", GAME_SUPPORTS_SAVE )
-GAME( 1989, cadashp, cadash, cadash, cadashj, driver_device, 0, ROT0, "Taito Corporation Japan", "Cadash (World, prototype)", GAME_SUPPORTS_SAVE )
+GAME( 1989, cadash, 0, cadash, cadash, driver_device, 0, ROT0, "Taito Corporation Japan", "Cadash (World)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, cadashj, cadash, cadash, cadashj, driver_device, 0, ROT0, "Taito Corporation", "Cadash (Japan, version 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, cadashj1, cadash, cadash, cadashj, driver_device, 0, ROT0, "Taito Corporation", "Cadash (Japan, version 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, cadashjo, cadash, cadash, cadashj, driver_device, 0, ROT0, "Taito Corporation", "Cadash (Japan, oldest version)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, cadashu, cadash, cadash, cadashu, driver_device, 0, ROT0, "Taito America Corporation", "Cadash (US, version 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, cadashi, cadash, cadash, cadash, driver_device, 0, ROT0, "Taito Corporation Japan", "Cadash (Italy)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, cadashf, cadash, cadash, cadash, driver_device, 0, ROT0, "Taito Corporation Japan", "Cadash (France)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, cadashg, cadash, cadash, cadash, driver_device, 0, ROT0, "Taito Corporation Japan", "Cadash (Germany, version 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, cadashp, cadash, cadash, cadashj, driver_device, 0, ROT0, "Taito Corporation Japan", "Cadash (World, prototype)", MACHINE_SUPPORTS_SAVE )
-GAME( 1992, galmedes, 0, galmedes, galmedes, driver_device, 0, ROT270, "Visco", "Galmedes (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1992, galmedes, 0, galmedes, galmedes, driver_device, 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)", GAME_SUPPORTS_SAVE )
-GAME( 1993, earthjkrp, earthjkr, galmedes, earthjkr, driver_device, 0, ROT270, "Visco", "U.N. Defense Force: Earth Joker (Japan, prototype?)", GAME_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( 1994, eto, 0, eto, eto, driver_device, 0, ROT0, "Visco", "Kokontouzai Eto Monogatari (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1994, eto, 0, eto, eto, driver_device, 0, ROT0, "Visco", "Kokontouzai Eto Monogatari (Japan)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/at.c b/src/mame/drivers/at.c
index a385b3af933..e02423a3b32 100644
--- a/src/mess/drivers/at.c
+++ b/src/mame/drivers/at.c
@@ -58,6 +58,16 @@ static ADDRESS_MAP_START( at586_map, AS_PROGRAM, 32, at586_state )
AM_RANGE(0xfffe0000, 0xffffffff) AM_ROM AM_REGION("isa", 0x20000)
ADDRESS_MAP_END
+static ADDRESS_MAP_START( ficpio_map, AS_PROGRAM, 32, at_state )
+ AM_RANGE(0x00000000, 0x0009ffff) AM_RAMBANK("bank10")
+ AM_RANGE(0x000a0000, 0x000bffff) AM_NOP
+ AM_RANGE(0x000c0000, 0x000c7fff) AM_NOP
+ AM_RANGE(0x000c8000, 0x000cffff) AM_NOP
+ AM_RANGE(0x000d0000, 0x000effff) AM_RAM
+ AM_RANGE(0x000f0000, 0x000fffff) AM_RAM
+ AM_RANGE(0x00800000, 0x00800bff) AM_RAM AM_SHARE("nvram")
+ AM_RANGE(0xfffe0000, 0xffffffff) AM_ROM AM_REGION("isa", 0x20000)
+ADDRESS_MAP_END
READ8_MEMBER( at_state::at_dma8237_2_r )
@@ -196,6 +206,25 @@ 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 ADDRESS_MAP_START( ficpio_io, AS_IO, 32, at_state )
+ ADDRESS_MAP_UNMAP_HIGH
+ AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8("dma8237_1", am9517a_device, read, write, 0xffffffff)
+ AM_RANGE(0x0020, 0x003f) AM_DEVREADWRITE8("pic8259_master", pic8259_device, read, write, 0xffffffff)
+ AM_RANGE(0x0040, 0x005f) AM_DEVREADWRITE8("pit8254", pit8254_device, read, write, 0xffffffff)
+ AM_RANGE(0x0060, 0x0063) AM_READWRITE8(at_keybc_r, at_keybc_w, 0xffff)
+ AM_RANGE(0x0064, 0x0067) AM_DEVREADWRITE8("keybc", at_keyboard_controller_device, status_r, command_w, 0xffff)
+ AM_RANGE(0x0070, 0x007f) AM_DEVREADWRITE8("rtc", mc146818_device, read, write , 0xffffffff)
+ AM_RANGE(0x0080, 0x009f) AM_READWRITE8(at_page8_r, at_page8_w, 0xffffffff)
+ AM_RANGE(0x00a0, 0x00a7) AM_DEVREADWRITE8("pic8259_slave", pic8259_device, read, write, 0xffffffff)
+ AM_RANGE(0x00a8, 0x00af) AM_DEVREADWRITE8("chipset", vt82c496_device, read, write, 0xffffffff)
+ AM_RANGE(0x00c0, 0x00df) AM_READWRITE8(at_dma8237_2_r, at_dma8237_2_w, 0xffffffff)
+ AM_RANGE(0x0170, 0x0177) AM_DEVREADWRITE("ide2", ide_controller_32_device, read_cs0, write_cs0)
+ AM_RANGE(0x01f0, 0x01f7) AM_DEVREADWRITE("ide", ide_controller_32_device, read_cs0, write_cs0)
+ AM_RANGE(0x0370, 0x0377) AM_DEVREADWRITE("ide2", ide_controller_32_device, read_cs1, write_cs1)
+ AM_RANGE(0x03f0, 0x03f7) AM_DEVREADWRITE("ide", ide_controller_32_device, read_cs1, write_cs1)
+ AM_RANGE(0x0cf8, 0x0cff) AM_DEVREADWRITE("pcibus", pci_bus_device, read, write)
+ADDRESS_MAP_END
+
DRIVER_INIT_MEMBER(megapc_state, megapc)
{
UINT8* ROM = memregion("bios")->base();
@@ -214,7 +243,7 @@ DRIVER_INIT_MEMBER(at_state, megapcpla)
{
UINT8* ROM = memregion("maincpu")->base();
- init_at_common();
+ init_at_common(0xa0000);
ROM[0xf3c2a] = 0x45; // hack to fix keyboard. To be removed when the keyboard controller from the MegaPC is dumped
ROM[0xfaf37] = 0x45;
@@ -264,28 +293,6 @@ ADDRESS_MAP_END
static INPUT_PORTS_START( atcga )
- PORT_START("DSW0")
- PORT_DIPNAME( 0xc0, 0x40, "Number of floppy drives")
- PORT_DIPSETTING( 0x00, "1" )
- PORT_DIPSETTING( 0x40, "2" )
- PORT_DIPSETTING( 0x80, "3" )
- PORT_DIPSETTING( 0xc0, "4" )
- PORT_DIPNAME( 0x30, 0x00, "Graphics adapter")
- PORT_DIPSETTING( 0x00, "EGA/VGA" )
- PORT_DIPSETTING( 0x10, "Color 40x25" )
- PORT_DIPSETTING( 0x20, "Color 80x25" )
- PORT_DIPSETTING( 0x30, "Monochrome" )
- PORT_DIPNAME( 0x0c, 0x0c, "RAM banks")
- PORT_DIPSETTING( 0x00, "1 - 16 64 256K" )
- PORT_DIPSETTING( 0x04, "2 - 32 128 512K" )
- PORT_DIPSETTING( 0x08, "3 - 48 192 576K" )
- PORT_DIPSETTING( 0x0c, "4 - 64 256 640K" )
- PORT_DIPNAME( 0x02, 0x00, "80387 installed")
- PORT_DIPSETTING( 0x00, DEF_STR( No ) )
- PORT_DIPSETTING( 0x02, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x01, 0x01, "Floppy installed")
- PORT_DIPSETTING( 0x00, DEF_STR( No ) )
- PORT_DIPSETTING( 0x01, DEF_STR( Yes ) )
INPUT_PORTS_END
static INPUT_PORTS_START( atvga )
@@ -302,29 +309,6 @@ static INPUT_PORTS_START( atvga )
PORT_DIPNAME( 0x01, 0x01, "VGA 4")
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
- PORT_START("DSW0")
- PORT_DIPNAME( 0xc0, 0x40, "Number of floppy drives")
- PORT_DIPSETTING( 0x00, "1" )
- PORT_DIPSETTING( 0x40, "2" )
- PORT_DIPSETTING( 0x80, "3" )
- PORT_DIPSETTING( 0xc0, "4" )
- PORT_DIPNAME( 0x30, 0x00, "Graphics adapter")
- PORT_DIPSETTING( 0x00, "EGA/VGA" )
- PORT_DIPSETTING( 0x10, "Color 40x25" )
- PORT_DIPSETTING( 0x20, "Color 80x25" )
- PORT_DIPSETTING( 0x30, "Monochrome" )
- PORT_DIPNAME( 0x0c, 0x0c, "RAM banks")
- PORT_DIPSETTING( 0x00, "1 - 16 64 256K" )
- PORT_DIPSETTING( 0x04, "2 - 32 128 512K" )
- PORT_DIPSETTING( 0x08, "3 - 48 192 576K" )
- PORT_DIPSETTING( 0x0c, "4 - 64 256 640K" )
- PORT_DIPNAME( 0x02, 0x00, "80387 installed")
- PORT_DIPSETTING( 0x00, DEF_STR( No ) )
- PORT_DIPSETTING( 0x02, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x01, 0x01, "Floppy installed")
- PORT_DIPSETTING( 0x00, DEF_STR( No ) )
- PORT_DIPSETTING( 0x01, DEF_STR( Yes ) )
INPUT_PORTS_END
WRITE_LINE_MEMBER( at_state::at_mc146818_irq )
@@ -722,6 +706,7 @@ static SLOT_INTERFACE_START( pci_devices )
SLOT_INTERFACE_INTERNAL("i82439tx", I82439TX)
SLOT_INTERFACE_INTERNAL("i82371ab", I82371AB)
SLOT_INTERFACE_INTERNAL("i82371sb", I82371SB)
+ SLOT_INTERFACE_INTERNAL("vt82c505", VT82C505)
SLOT_INTERFACE_END
@@ -908,6 +893,47 @@ static MACHINE_CONFIG_START( megapcpla, at_state )
MCFG_SOFTWARE_LIST_ADD("disk_list","megapc")
MACHINE_CONFIG_END
+static MACHINE_CONFIG_START( ficpio2, at_state )
+ MCFG_CPU_ADD("maincpu", I486, 25000000)
+ MCFG_CPU_PROGRAM_MAP(ficpio_map)
+ MCFG_CPU_IO_MAP(ficpio_io)
+ MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("pic8259_master", pic8259_device, inta_cb)
+
+ MCFG_FRAGMENT_ADD(at_motherboard)
+
+ MCFG_DEVICE_REMOVE("rtc")
+ MCFG_DS12885_ADD("rtc")
+ MCFG_MC146818_IRQ_HANDLER(WRITELINE(at_state, at_mc146818_irq))
+ MCFG_MC146818_CENTURY_INDEX(0x32)
+
+ MCFG_RAM_ADD(RAM_TAG)
+ MCFG_RAM_DEFAULT_SIZE("4M")
+ MCFG_RAM_EXTRA_OPTIONS("1M,2M,8M,16M,32M,64M,128M")
+
+ // on board devices
+ MCFG_ISA16_SLOT_ADD("isabus","board1", pc_isa16_cards, "fdcsmc", true)
+ MCFG_ISA16_SLOT_ADD("isabus","board2", pc_isa16_cards, "comat", true)
+ MCFG_ISA16_SLOT_ADD("isabus","board3", pc_isa16_cards, "lpt", true)
+
+ MCFG_IDE_CONTROLLER_32_ADD("ide", ata_devices, "hdd", NULL, true)
+ MCFG_ATA_INTERFACE_IRQ_HANDLER(DEVWRITELINE("pic8259_slave", pic8259_device, ir6_w))
+ MCFG_IDE_CONTROLLER_32_ADD("ide2", ata_devices, "cdrom", NULL, true)
+ MCFG_ATA_INTERFACE_IRQ_HANDLER(DEVWRITELINE("pic8259_slave", pic8259_device, ir7_w))
+
+ MCFG_PCI_BUS_ADD("pcibus", 0)
+ MCFG_PCI_BUS_DEVICE("pcibus:0", pci_devices, "vt82c505", true)
+ MCFG_ISA16_SLOT_ADD("isabus","isa1", pc_isa16_cards, "svga_et4k", false)
+ MCFG_ISA16_SLOT_ADD("isabus","isa2", pc_isa16_cards, NULL, false)
+ MCFG_ISA16_SLOT_ADD("isabus","isa3", pc_isa16_cards, NULL, false)
+ MCFG_ISA16_SLOT_ADD("isabus","isa4", pc_isa16_cards, NULL, false)
+ MCFG_PC_KBDC_SLOT_ADD("pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL)
+
+ MCFG_VT82C496_ADD("chipset")
+ MCFG_VT82C496_CPU("maincpu")
+ MCFG_VT82C496_REGION("isa")
+
+ MCFG_FRAGMENT_ADD( at_softlists )
+MACHINE_CONFIG_END
#if 0
// ibm at
@@ -1400,17 +1426,17 @@ ROM_END
// FIC 486-PIO-2 (4 ISA, 4 PCI)
-// VIA VT82C505 + VT82C496G + VT82C406MV, NS311/312 or NS332 I/O
+// VIA VT82C505 (ISA/VL to PCI bridge) + VT82C496G (system chipset) + VT82C406MV (keyboard controller, RTC, CMOS), NS311/312 or NS332 I/O
ROM_START( ficpio2 )
- ROM_REGION(0x1000000, "maincpu", 0)
- ROM_SYSTEM_BIOS(0, "ficpio2c7", "FIC 486-PIO-2 1.15C701") /* pnp, i/o core: NS 332 */
- ROMX_LOAD("115c701.awd", 0x0e0000, 0x20000, CRC(b0dd7975) SHA1(bfde13b0fbd141bc945d37d92faca9f4f59b716d), ROM_BIOS(1))
- ROM_SYSTEM_BIOS(1, "ficpio2b7", "FIC 486-PIO-2 1.15B701") /* pnp, i/o core: NS 311/312 */
- ROMX_LOAD("115b701.awd", 0x0e0000, 0x20000, CRC(ac24abad) SHA1(01174d84ed32fb1d95cd632d09f773acb8666c83), ROM_BIOS(2))
- ROM_SYSTEM_BIOS(2, "ficpio2c1", "FIC 486-PIO-2 1.15C101") /* non-pnp, i/o core: NS 332 */
- ROMX_LOAD("115c101.awd", 0x0e0000, 0x20000, CRC(5fadde88) SHA1(eff79692c1ecf34b6ea3f02409d14ce1f5c51bf9), ROM_BIOS(3))
- ROM_SYSTEM_BIOS(3, "ficpio2b1", "FIC 486-PIO-2 1.15B101") /* non-pnp, i/o core: NS 311/312 */
- ROMX_LOAD("115b101.awd", 0x0e0000, 0x20000, CRC(ff69617d) SHA1(ecbfc7315dcf6bd3e5b59e3ae9258759f64fe7a0), ROM_BIOS(4))
+ ROM_REGION(0x40000, "isa", 0)
+ ROM_SYSTEM_BIOS(0, "ficpio2c7", "FIC 486-PIO-2 1.15C701") /* pnp, i/o core: NS 332, doesn't boot, requires cache emulation? */
+ ROMX_LOAD("115c701.awd", 0x020000, 0x20000, CRC(b0dd7975) SHA1(bfde13b0fbd141bc945d37d92faca9f4f59b716d), ROM_BIOS(1))
+ ROM_SYSTEM_BIOS(1, "ficpio2b7", "FIC 486-PIO-2 1.15B701") /* pnp, i/o core: NS 311/312, doesn't boot, requires cache emulation? */
+ ROMX_LOAD("115b701.awd", 0x020000, 0x20000, CRC(ac24abad) SHA1(01174d84ed32fb1d95cd632d09f773acb8666c83), ROM_BIOS(2))
+ ROM_SYSTEM_BIOS(2, "ficpio2c1", "FIC 486-PIO-2 1.15C101") /* non-pnp, i/o core: NS 332, working */
+ ROMX_LOAD("115c101.awd", 0x020000, 0x20000, CRC(5fadde88) SHA1(eff79692c1ecf34b6ea3f02409d14ce1f5c51bf9), ROM_BIOS(3))
+ ROM_SYSTEM_BIOS(3, "ficpio2b1", "FIC 486-PIO-2 1.15B101") /* non-pnp, i/o core: NS 311/312, working */
+ ROMX_LOAD("115b101.awd", 0x020000, 0x20000, CRC(ff69617d) SHA1(ecbfc7315dcf6bd3e5b59e3ae9258759f64fe7a0), ROM_BIOS(4))
ROM_END
@@ -1627,56 +1653,56 @@ ROM_END
***************************************************************************/
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
-COMP ( 1984, ibm5170, 0, ibm5150, ibm5170, atcga, at_state, atcga, "International Business Machines", "IBM PC/AT 5170", GAME_NOT_WORKING )
-COMP ( 1985, ibm5170a, ibm5170, 0, ibm5170a, atcga, at_state, atcga, "International Business Machines", "IBM PC/AT 5170 8MHz", GAME_NOT_WORKING )
-COMP ( 1985, ibm5162, ibm5170, 0, ibm5162, atcga, at_state, atcga, "International Business Machines", "IBM PC/XT-286 5162", GAME_NOT_WORKING )
-COMP ( 1990, i8530h31, ibm5170, 0, ps2m30286, atvga, at_state, atvga, "International Business Machines", "IBM PS/2 8530-H31 (Model 30/286)", GAME_NOT_WORKING )
-COMP ( 1988, i8530286, ibm5170, 0, ps2m30286, atvga, at_state, atvga, "International Business Machines", "IBM PS/2 Model 30-286", GAME_NOT_WORKING )
-COMP ( 198?, i8535043, ibm5170, 0, at386, atvga, at_state, atvga, "International Business Machines", "IBM PS/2 8535-043 (Model 35)", GAME_NOT_WORKING )
-COMP ( 198?, i8550021, ibm5170, 0, at386, atvga, at_state, atvga, "International Business Machines", "IBM PS/2 8550-021 (Model 50)", GAME_NOT_WORKING )
-COMP ( 198?, i8550061, ibm5170, 0, at386, atvga, at_state, atvga, "International Business Machines", "IBM PS/2 8550-061 (Model 50Z)", GAME_NOT_WORKING )
-COMP ( 1989, i8555081, ibm5170, 0, at386, atvga, at_state, atvga, "International Business Machines", "IBM PS/2 8550-081 (Model 55SX)", GAME_NOT_WORKING )
-COMP ( 198?, i8580071, ibm5170, 0, at386, atvga, at_state, atvga, "International Business Machines", "IBM PS/2 8580-071 (Model 80)", GAME_NOT_WORKING )
-COMP ( 198?, i8580111, ibm5170, 0, at386, atvga, at_state, atvga, "International Business Machines", "IBM PS/2 8580-111 (Model 80)", GAME_NOT_WORKING )
-COMP ( 1989, ibmps1es, ibm5170, 0, ibmps1, atvga, at_state, atvga, "International Business Machines", "IBM PS/1 (Spanish)", GAME_NOT_WORKING )
-COMP ( 1987, at, ibm5170, 0, ibm5162, atcga, at_state, atcga, "<generic>", "PC/AT (CGA, MF2 Keyboard)", GAME_NOT_WORKING )
-COMP ( 1987, atvga, ibm5170, 0, atvga, atvga, at_state, atvga, "<generic>", "PC/AT (VGA, MF2 Keyboard)" , GAME_NOT_WORKING )
-COMP ( 1988, at386, ibm5170, 0, at386, atvga, at_state, atvga, "<generic>", "PC/AT 386 (VGA, MF2 Keyboard)", GAME_NOT_WORKING )
-COMP ( 1988, ct386sx, ibm5170, 0, ct386sx, atvga, at_state, atvga, "<generic>", "NEAT 386SX (VGA, MF2 Keyboard)", GAME_NOT_WORKING )
-//COMP ( 1988, at386sx, ibm5170, 0, ct386sx, atvga, at_state, atvga, "<generic>", "PC/AT 386SX (VGA, MF2 Keyboard)", GAME_NOT_WORKING )
-COMP ( 1990, at486, ibm5170, 0, at486, atvga, at_state, atvga, "<generic>", "PC/AT 486 (VGA, MF2 Keyboard)", GAME_NOT_WORKING )
-COMP ( 1990, at586, ibm5170, 0, at586, atvga, at586_state, at586, "<generic>", "PC/AT 586 (PIIX4)", GAME_NOT_WORKING )
-COMP ( 1990, at586x3, ibm5170, 0, at586x3, atvga, at586_state, at586, "<generic>", "PC/AT 586 (PIIX3)", GAME_NOT_WORKING )
-COMP ( 1989, neat, ibm5170, 0, neat, atvga, at_state, atvga, "<generic>", "NEAT (VGA, MF2 Keyboard)", GAME_NOT_WORKING )
-COMP ( 1989, ec1842, ibm5150, 0, ec1842, atcga, at_state, atcga, "<unknown>", "EC-1842", GAME_NOT_WORKING )
-COMP ( 1993, ec1849, ibm5170, 0, ec1849, atcga, at_state, atcga, "<unknown>", "EC-1849", GAME_NOT_WORKING )
-COMP ( 1993, megapc, 0, 0, megapc, 0, megapc_state,megapc, "Amstrad plc", "MegaPC", GAME_NOT_WORKING )
-COMP ( 199?, megapcpl, megapc, 0, megapcpl, 0, megapc_state,megapcpl, "Amstrad plc", "MegaPC Plus", GAME_NOT_WORKING )
-COMP ( 199?, megapcpla, megapc, 0, megapcpla, 0, at_state, megapcpla,"Amstrad plc", "MegaPC Plus (WINBUS chipset)", GAME_NOT_WORKING )
-COMP ( 1989, pc2386, ibm5170, 0, at386, atvga, at_state, atvga, "Amstrad plc", "Amstrad PC2386", GAME_NOT_WORKING )
-COMP ( 1991, aprfte, ibm5170, 0, at486, atvga, at_state, atvga, "Apricot", "Apricot FT//ex 486 (J3 Motherboard)", GAME_NOT_WORKING )
-COMP ( 1991, ftsserv, ibm5170, 0, at486, atvga, at_state, atvga, "Apricot", "Apricot FTs (Scorpion)", GAME_NOT_WORKING )
-COMP ( 1992, aprpand, ibm5170, 0, at486, atvga, at_state, atvga, "Apricot", "Apricot FTs (Panther Rev F 1.02.26)", GAME_NOT_WORKING )
-COMP ( 1990, aplanst, ibm5170, 0, at386, atvga, at_state, atvga, "Apricot", "Apricot LANstation (Krypton Motherboard)", GAME_NOT_WORKING )
-COMP ( 1990, aplannb, ibm5170, 0, at386, atvga, at_state, atvga, "Apricot", "Apricot LANstation (Novell Remote Boot)", GAME_NOT_WORKING )
-COMP ( 1992, aplscar, ibm5170, 0, at386, atvga, at_state, atvga, "Apricot", "Apricot LS Pro (Caracal Motherboard)", GAME_NOT_WORKING )
-COMP ( 1992, aplsbon, ibm5170, 0, at486, atvga, at_state, atvga, "Apricot", "Apricot LS Pro (Bonsai Motherboard)", GAME_NOT_WORKING )
-COMP ( 1988, xb42663, ibm5170, 0, at386, atvga, at_state, atvga, "Apricot", "Apricot Qi 300 (Rev D,E & F Motherboard)", GAME_NOT_WORKING )
-COMP ( 1988, qi600, ibm5170, 0, at386, atvga, at_state, atvga, "Apricot", "Apricot Qi 600 (Neptune Motherboard)", GAME_NOT_WORKING )
-COMP ( 1990, qi900, ibm5170, 0, at486, atvga, at_state, atvga, "Apricot", "Apricot Qi 900 (Scorpion Motherboard)", GAME_NOT_WORKING )
-COMP ( 1989, apvxft, ibm5170, 0, at486, atvga, at_state, atvga, "Apricot", "Apricot VX FT server", GAME_NOT_WORKING )
-COMP ( 1991, apxenls3, ibm5170, 0, at486, atvga, at_state, atvga, "Apricot", "Apricot XEN-LS (Venus IV Motherboard)", GAME_NOT_WORKING )
-COMP ( 1993, apxlsam, ibm5170, 0, at486, atvga, at_state, atvga, "Apricot", "Apricot XEN-LS II (Samurai Motherboard)", GAME_NOT_WORKING )
-COMP ( 1987, apxeni, ibm5170, 0, at386, atvga, at_state, atvga, "Apricot", "Apricot XEN-i 386 (Leopard Motherboard)" , GAME_NOT_WORKING )
-COMP ( 1989, xb42639, ibm5170, 0, xb42639, atvga, at_state, atvga, "Apricot", "Apricot XEN-S (Venus I Motherboard 286)" , GAME_NOT_WORKING )
-COMP ( 1990, xb42639a, ibm5170, 0, xb42639, atvga, at_state, atvga, "Apricot", "Apricot XEN-S (Venus II Motherboard 286)" , GAME_NOT_WORKING )
-COMP ( 1989, xb42664, ibm5170, 0, at386, atvga, at_state, atvga, "Apricot", "Apricot XEN-S (Venus I Motherboard 386)" , GAME_NOT_WORKING )
-COMP ( 1990, xb42664a, ibm5170, 0, at386, atvga, at_state, atvga, "Apricot", "Apricot XEN-S (Venus II Motherboard 386)" , GAME_NOT_WORKING )
-COMP ( 1993, apxena1, ibm5170, 0, at486, atvga, at_state, atvga, "Apricot", "Apricot XEN PC (A1 Motherboard)", GAME_NOT_WORKING )
-COMP ( 1993, apxenp2, ibm5170, 0, at486, atvga, at_state, atvga, "Apricot", "Apricot XEN PC (P2 Motherboard)", GAME_NOT_WORKING )
-COMP ( 1990, c386sx16, ibm5170, 0, at386sx, atvga, at_state, atvga, "Commodore Business Machines", "Commodore 386SX-16", GAME_NOT_WORKING )
-COMP ( 1988, cmdpc30, ibm5170, 0, ibm5162, atcga, at_state, atcga, "Commodore Business Machines", "PC 30 III", GAME_NOT_WORKING )
-COMP ( 1995, ficpio2, ibm5170, 0, at486, atvga, at_state, atvga, "FIC", "486-PIO-2", GAME_NOT_WORKING )
-COMP ( 1997, ficvt503, ibm5170, 0, at586, atvga, driver_device, 0, "FIC", "VT-503", GAME_NOT_WORKING )
-COMP ( 1985, k286i, ibm5170, 0, k286i, atcga, at_state, atcga, "Kaypro", "286i", GAME_NOT_WORKING )
-COMP ( 1991, t2000sx, ibm5170, 0, at386sx, atvga, at_state, atvga, "Toshiba", "T2000SX", GAME_NOT_WORKING )
+COMP ( 1984, ibm5170, 0, ibm5150, ibm5170, atcga, at_state, atcga, "International Business Machines", "IBM PC/AT 5170", MACHINE_NOT_WORKING )
+COMP ( 1985, ibm5170a, ibm5170, 0, ibm5170a, atcga, at_state, atcga, "International Business Machines", "IBM PC/AT 5170 8MHz", MACHINE_NOT_WORKING )
+COMP ( 1985, ibm5162, ibm5170, 0, ibm5162, atcga, at_state, atcga, "International Business Machines", "IBM PC/XT-286 5162", MACHINE_NOT_WORKING )
+COMP ( 1990, i8530h31, ibm5170, 0, ps2m30286, atvga, at_state, atvga, "International Business Machines", "IBM PS/2 8530-H31 (Model 30/286)", MACHINE_NOT_WORKING )
+COMP ( 1988, i8530286, ibm5170, 0, ps2m30286, atvga, at_state, atvga, "International Business Machines", "IBM PS/2 Model 30-286", MACHINE_NOT_WORKING )
+COMP ( 198?, i8535043, ibm5170, 0, at386, atvga, at_state, atvga, "International Business Machines", "IBM PS/2 8535-043 (Model 35)", MACHINE_NOT_WORKING )
+COMP ( 198?, i8550021, ibm5170, 0, at386, atvga, at_state, atvga, "International Business Machines", "IBM PS/2 8550-021 (Model 50)", MACHINE_NOT_WORKING )
+COMP ( 198?, i8550061, ibm5170, 0, at386, atvga, at_state, atvga, "International Business Machines", "IBM PS/2 8550-061 (Model 50Z)", MACHINE_NOT_WORKING )
+COMP ( 1989, i8555081, ibm5170, 0, at386, atvga, at_state, atvga, "International Business Machines", "IBM PS/2 8550-081 (Model 55SX)", MACHINE_NOT_WORKING )
+COMP ( 198?, i8580071, ibm5170, 0, at386, atvga, at_state, atvga, "International Business Machines", "IBM PS/2 8580-071 (Model 80)", MACHINE_NOT_WORKING )
+COMP ( 198?, i8580111, ibm5170, 0, at386, atvga, at_state, atvga, "International Business Machines", "IBM PS/2 8580-111 (Model 80)", MACHINE_NOT_WORKING )
+COMP ( 1989, ibmps1es, ibm5170, 0, ibmps1, atvga, at_state, atvga, "International Business Machines", "IBM PS/1 (Spanish)", MACHINE_NOT_WORKING )
+COMP ( 1987, at, ibm5170, 0, ibm5162, atcga, at_state, atcga, "<generic>", "PC/AT (CGA, MF2 Keyboard)", MACHINE_NOT_WORKING )
+COMP ( 1987, atvga, ibm5170, 0, atvga, atvga, at_state, atvga, "<generic>", "PC/AT (VGA, MF2 Keyboard)" , MACHINE_NOT_WORKING )
+COMP ( 1988, at386, ibm5170, 0, at386, atvga, at_state, atvga, "<generic>", "PC/AT 386 (VGA, MF2 Keyboard)", MACHINE_NOT_WORKING )
+COMP ( 1988, ct386sx, ibm5170, 0, ct386sx, atvga, at_state, atvga, "<generic>", "NEAT 386SX (VGA, MF2 Keyboard)", MACHINE_NOT_WORKING )
+//COMP ( 1988, at386sx, ibm5170, 0, ct386sx, atvga, at_state, atvga, "<generic>", "PC/AT 386SX (VGA, MF2 Keyboard)", MACHINE_NOT_WORKING )
+COMP ( 1990, at486, ibm5170, 0, at486, atvga, at_state, atvga, "<generic>", "PC/AT 486 (VGA, MF2 Keyboard)", MACHINE_NOT_WORKING )
+COMP ( 1990, at586, ibm5170, 0, at586, atvga, at586_state, at586, "<generic>", "PC/AT 586 (PIIX4)", MACHINE_NOT_WORKING )
+COMP ( 1990, at586x3, ibm5170, 0, at586x3, atvga, at586_state, at586, "<generic>", "PC/AT 586 (PIIX3)", MACHINE_NOT_WORKING )
+COMP ( 1989, neat, ibm5170, 0, neat, atvga, at_state, atvga, "<generic>", "NEAT (VGA, MF2 Keyboard)", MACHINE_NOT_WORKING )
+COMP ( 1989, ec1842, ibm5150, 0, ec1842, atcga, at_state, atcga, "<unknown>", "EC-1842", MACHINE_NOT_WORKING )
+COMP ( 1993, ec1849, ibm5170, 0, ec1849, atcga, at_state, atcga, "<unknown>", "EC-1849", MACHINE_NOT_WORKING )
+COMP ( 1993, megapc, 0, 0, megapc, 0, megapc_state,megapc, "Amstrad plc", "MegaPC", MACHINE_NOT_WORKING )
+COMP ( 199?, megapcpl, megapc, 0, megapcpl, 0, megapc_state,megapcpl, "Amstrad plc", "MegaPC Plus", MACHINE_NOT_WORKING )
+COMP ( 199?, megapcpla, megapc, 0, megapcpla, 0, at_state, megapcpla,"Amstrad plc", "MegaPC Plus (WINBUS chipset)", MACHINE_NOT_WORKING )
+COMP ( 1989, pc2386, ibm5170, 0, at386, atvga, at_state, atvga, "Amstrad plc", "Amstrad PC2386", MACHINE_NOT_WORKING )
+COMP ( 1991, aprfte, ibm5170, 0, at486, atvga, at_state, atvga, "Apricot", "Apricot FT//ex 486 (J3 Motherboard)", MACHINE_NOT_WORKING )
+COMP ( 1991, ftsserv, ibm5170, 0, at486, atvga, at_state, atvga, "Apricot", "Apricot FTs (Scorpion)", MACHINE_NOT_WORKING )
+COMP ( 1992, aprpand, ibm5170, 0, at486, atvga, at_state, atvga, "Apricot", "Apricot FTs (Panther Rev F 1.02.26)", MACHINE_NOT_WORKING )
+COMP ( 1990, aplanst, ibm5170, 0, at386, atvga, at_state, atvga, "Apricot", "Apricot LANstation (Krypton Motherboard)", MACHINE_NOT_WORKING )
+COMP ( 1990, aplannb, ibm5170, 0, at386, atvga, at_state, atvga, "Apricot", "Apricot LANstation (Novell Remote Boot)", MACHINE_NOT_WORKING )
+COMP ( 1992, aplscar, ibm5170, 0, at386, atvga, at_state, atvga, "Apricot", "Apricot LS Pro (Caracal Motherboard)", MACHINE_NOT_WORKING )
+COMP ( 1992, aplsbon, ibm5170, 0, at486, atvga, at_state, atvga, "Apricot", "Apricot LS Pro (Bonsai Motherboard)", MACHINE_NOT_WORKING )
+COMP ( 1988, xb42663, ibm5170, 0, at386, atvga, at_state, atvga, "Apricot", "Apricot Qi 300 (Rev D,E & F Motherboard)", MACHINE_NOT_WORKING )
+COMP ( 1988, qi600, ibm5170, 0, at386, atvga, at_state, atvga, "Apricot", "Apricot Qi 600 (Neptune Motherboard)", MACHINE_NOT_WORKING )
+COMP ( 1990, qi900, ibm5170, 0, at486, atvga, at_state, atvga, "Apricot", "Apricot Qi 900 (Scorpion Motherboard)", MACHINE_NOT_WORKING )
+COMP ( 1989, apvxft, ibm5170, 0, at486, atvga, at_state, atvga, "Apricot", "Apricot VX FT server", MACHINE_NOT_WORKING )
+COMP ( 1991, apxenls3, ibm5170, 0, at486, atvga, at_state, atvga, "Apricot", "Apricot XEN-LS (Venus IV Motherboard)", MACHINE_NOT_WORKING )
+COMP ( 1993, apxlsam, ibm5170, 0, at486, atvga, at_state, atvga, "Apricot", "Apricot XEN-LS II (Samurai Motherboard)", MACHINE_NOT_WORKING )
+COMP ( 1987, apxeni, ibm5170, 0, at386, atvga, at_state, atvga, "Apricot", "Apricot XEN-i 386 (Leopard Motherboard)" , MACHINE_NOT_WORKING )
+COMP ( 1989, xb42639, ibm5170, 0, xb42639, atvga, at_state, atvga, "Apricot", "Apricot XEN-S (Venus I Motherboard 286)" , MACHINE_NOT_WORKING )
+COMP ( 1990, xb42639a, ibm5170, 0, xb42639, atvga, at_state, atvga, "Apricot", "Apricot XEN-S (Venus II Motherboard 286)" , MACHINE_NOT_WORKING )
+COMP ( 1989, xb42664, ibm5170, 0, at386, atvga, at_state, atvga, "Apricot", "Apricot XEN-S (Venus I Motherboard 386)" , MACHINE_NOT_WORKING )
+COMP ( 1990, xb42664a, ibm5170, 0, at386, atvga, at_state, atvga, "Apricot", "Apricot XEN-S (Venus II Motherboard 386)" , MACHINE_NOT_WORKING )
+COMP ( 1993, apxena1, ibm5170, 0, at486, atvga, at_state, atvga, "Apricot", "Apricot XEN PC (A1 Motherboard)", MACHINE_NOT_WORKING )
+COMP ( 1993, apxenp2, ibm5170, 0, at486, atvga, at_state, atvga, "Apricot", "Apricot XEN PC (P2 Motherboard)", MACHINE_NOT_WORKING )
+COMP ( 1990, c386sx16, ibm5170, 0, at386sx, atvga, at_state, atvga, "Commodore Business Machines", "Commodore 386SX-16", MACHINE_NOT_WORKING )
+COMP ( 1988, cmdpc30, ibm5170, 0, ibm5162, atcga, at_state, atcga, "Commodore Business Machines", "PC 30 III", MACHINE_NOT_WORKING )
+COMP ( 1995, ficpio2, ibm5170, 0, ficpio2, atvga, at_state, atpci, "FIC", "486-PIO-2", MACHINE_NOT_WORKING )
+COMP ( 1997, ficvt503, ibm5170, 0, at586, atvga, driver_device, 0, "FIC", "VT-503", MACHINE_NOT_WORKING )
+COMP ( 1985, k286i, ibm5170, 0, k286i, atcga, at_state, atcga, "Kaypro", "286i", MACHINE_NOT_WORKING )
+COMP ( 1991, t2000sx, ibm5170, 0, at386sx, atvga, at_state, atvga, "Toshiba", "T2000SX", MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/atari400.c b/src/mame/drivers/atari400.c
index 5722e2c6d79..73844078019 100644
--- a/src/mess/drivers/atari400.c
+++ b/src/mame/drivers/atari400.c
@@ -50,7 +50,7 @@
#include "machine/atarifdc.h"
#include "bus/a800/a800_slot.h"
#include "bus/a800/a800_carts.h"
-#include "bus/a8sio/a8sio.h"
+#include "bus/a800/a8sio.h"
/******************************************************************************
@@ -2467,14 +2467,14 @@ COMP ( 1979, a400, 0, 0, a400, a800, driver_device, 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", GAME_NOT_WORKING ) // 64k RAM
-COMP ( 1983, a600xl, a800xl, 0, a600xl, a800xl, driver_device, 0, "Atari", "Atari 600XL", GAME_IMPERFECT_GRAPHICS ) // 16k RAM
-COMP ( 1983, a800xl, 0, 0, a800xl, a800xl, driver_device, 0, "Atari", "Atari 800XL (NTSC)", GAME_IMPERFECT_GRAPHICS ) // 64k RAM
-COMP ( 1983, a800xlp, a800xl, 0, a800xlpal, a800xl, driver_device, 0, "Atari", "Atari 800XL (PAL)", GAME_IMPERFECT_GRAPHICS ) // 64k RAM
-COMP ( 1986, a65xe, a800xl, 0, a800xl, a800xl, driver_device, 0, "Atari", "Atari 65XE", GAME_IMPERFECT_GRAPHICS ) // 64k RAM
-COMP ( 1986, a65xea, a800xl, 0, a800xl, a800xl, driver_device, 0, "Atari", "Atari 65XE (Arabic)", GAME_NOT_WORKING )
-COMP ( 1986, a130xe, a800xl, 0, a130xe, a800xl, driver_device, 0, "Atari", "Atari 130XE", GAME_NOT_WORKING ) // 128k RAM
-COMP ( 1986, a800xe, a800xl, 0, a800xl, a800xl, driver_device, 0, "Atari", "Atari 800XE", GAME_IMPERFECT_GRAPHICS ) // 64k RAM
-COMP ( 1987, xegs, 0, 0, xegs, a800xl, driver_device, 0, "Atari", "Atari XE Game System", GAME_IMPERFECT_GRAPHICS ) // 64k RAM
+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)
diff --git a/src/mame/drivers/atari_s1.c b/src/mame/drivers/atari_s1.c
index 77be78fafa4..7f2b5d10c8d 100644
--- a/src/mame/drivers/atari_s1.c
+++ b/src/mame/drivers/atari_s1.c
@@ -517,8 +517,8 @@ ROM_START(spcrider)
ROM_END
-GAME( 1976, atarians, 0, atarians, atari_s1, driver_device, 0, ROT0, "Atari", "The Atarians", GAME_MECHANICAL | GAME_IMPERFECT_SOUND)
-GAME( 1977, time2000, 0, atari_s1, atari_s1, driver_device, 0, ROT0, "Atari", "Time 2000", GAME_MECHANICAL | GAME_IMPERFECT_SOUND)
-GAME( 1977, aavenger, 0, atari_s1, atari_s1, driver_device, 0, ROT0, "Atari", "Airborne Avenger", GAME_MECHANICAL | GAME_IMPERFECT_SOUND)
-GAME( 1978, midearth, 0, midearth, atari_s1, driver_device, 0, ROT0, "Atari", "Middle Earth", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1978, spcrider, 0, atari_s1, atari_s1, driver_device, 0, ROT0, "Atari", "Space Riders", GAME_MECHANICAL | GAME_IMPERFECT_SOUND)
+GAME( 1976, atarians, 0, atarians, atari_s1, driver_device, 0, ROT0, "Atari", "The Atarians", MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND)
+GAME( 1977, time2000, 0, atari_s1, atari_s1, driver_device, 0, ROT0, "Atari", "Time 2000", MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND)
+GAME( 1977, aavenger, 0, atari_s1, atari_s1, driver_device, 0, ROT0, "Atari", "Airborne Avenger", MACHINE_MECHANICAL | 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_IMPERFECT_SOUND)
diff --git a/src/mame/drivers/atari_s2.c b/src/mame/drivers/atari_s2.c
index f9279395f91..02f965ccd01 100644
--- a/src/mame/drivers/atari_s2.c
+++ b/src/mame/drivers/atari_s2.c
@@ -535,7 +535,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)", GAME_MECHANICAL | GAME_IMPERFECT_SOUND)
-GAME( 1979, hercules, 0, atari_s2, atari_s2, driver_device, 0, ROT0, "Atari", "Hercules", GAME_MECHANICAL | GAME_IMPERFECT_SOUND)
-GAME( 1979, roadrunr, 0, atari_s3, atari_s2, driver_device, 0, ROT0, "Atari", "Road Runner", GAME_MECHANICAL | GAME_IMPERFECT_SOUND)
-GAME( 1982, fourx4, 0, atari_s3, atari_s2, driver_device, 0, ROT0, "Atari", "4x4", GAME_IS_SKELETON_MECHANICAL)
+GAME( 1979, supermap, 0, atari_s2, atari_s2, driver_device, 0, ROT0, "Atari", "Superman (Pinball)", MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND)
+GAME( 1979, hercules, 0, atari_s2, atari_s2, driver_device, 0, ROT0, "Atari", "Hercules", MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND)
+GAME( 1979, roadrunr, 0, atari_s3, atari_s2, driver_device, 0, ROT0, "Atari", "Road Runner", MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND)
+GAME( 1982, fourx4, 0, atari_s3, atari_s2, driver_device, 0, ROT0, "Atari", "4x4", MACHINE_IS_SKELETON_MECHANICAL)
diff --git a/src/mame/drivers/atarifb.c b/src/mame/drivers/atarifb.c
index b4ba38bd94d..8349fdc7f7a 100644
--- a/src/mame/drivers/atarifb.c
+++ b/src/mame/drivers/atarifb.c
@@ -787,10 +787,10 @@ ROM_END
*************************************/
/* YEAR NAME PARENT MACHINE INPUT */
-GAMEL( 1978, atarifb, 0, atarifb, atarifb, driver_device, 0, ROT0, "Atari", "Atari Football (revision 2)", GAME_SUPPORTS_SAVE, layout_atarifb )
-GAMEL( 1978, atarifb1, atarifb, atarifb, atarifb, driver_device, 0, ROT0, "Atari", "Atari Football (revision 1)", GAME_SUPPORTS_SAVE, layout_atarifb )
-GAMEL( 1978, atarifb2, atarifb, atarifb, atarifb, driver_device, 0, ROT0, "Atari", "Atari Football II", GAME_SUPPORTS_SAVE, layout_atarifb )
-GAMEL( 1979, atarifb4, atarifb, atarifb4, atarifb4, driver_device, 0, ROT0, "Atari", "Atari Football (4 players)", GAME_SUPPORTS_SAVE, layout_atarifb4 )
-GAMEL( 1979, abaseb, 0, abaseb, abaseb, driver_device, 0, ROT0, "Atari", "Atari Baseball (set 1)", GAME_SUPPORTS_SAVE, layout_abaseb )
-GAMEL( 1979, abaseb2, abaseb, abaseb, abaseb, driver_device, 0, ROT0, "Atari", "Atari Baseball (set 2)", GAME_SUPPORTS_SAVE, layout_abaseb )
-GAME ( 1980, soccer, 0, soccer, soccer, driver_device, 0, ROT0, "Atari", "Atari Soccer", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/atarig1.c b/src/mame/drivers/atarig1.c
index 5c16f59afed..45bb3e8af4a 100644
--- a/src/mame/drivers/atarig1.c
+++ b/src/mame/drivers/atarig1.c
@@ -1228,15 +1228,15 @@ DRIVER_INIT_MEMBER(atarig1_state,pitfightb) { init_common(0x038000, -1, 1); }
*
*************************************/
-GAME( 1990, hydra, 0, hydra, hydra, atarig1_state, hydra, ROT0, "Atari Games", "Hydra", GAME_SUPPORTS_SAVE )
-GAME( 1990, hydrap, hydra, hydra, hydra, atarig1_state, hydrap, ROT0, "Atari Games", "Hydra (prototype 5/14/90)", GAME_SUPPORTS_SAVE )
-GAME( 1990, hydrap2, hydra, hydra, hydra, atarig1_state, hydrap, ROT0, "Atari Games", "Hydra (prototype 5/25/90)", GAME_SUPPORTS_SAVE )
-
-GAME( 1990, pitfight, 0, pitfight, pitfight, atarig1_state, pitfight9, ROT0, "Atari Games", "Pit Fighter (rev 9)", GAME_SUPPORTS_SAVE )
-GAME( 1990, pitfight7, pitfight, pitfight, pitfight, atarig1_state, pitfight7, ROT0, "Atari Games", "Pit Fighter (rev 7)", GAME_SUPPORTS_SAVE )
-GAME( 1990, pitfight6, pitfight, pitfight, pitfight, atarig1_state, pitfightj, ROT0, "Atari Games", "Pit Fighter (rev 6)", GAME_SUPPORTS_SAVE )
-GAME( 1990, pitfight5, pitfight, pitfight, pitfight, atarig1_state, pitfight7, ROT0, "Atari Games", "Pit Fighter (rev 5)", GAME_SUPPORTS_SAVE )
-GAME( 1990, pitfight4, pitfight, pitfight, pitfight, atarig1_state, pitfight, ROT0, "Atari Games", "Pit Fighter (rev 4)", GAME_SUPPORTS_SAVE )
-GAME( 1990, pitfight3, pitfight, pitfight, pitfight, atarig1_state, pitfight, ROT0, "Atari Games", "Pit Fighter (rev 3)", GAME_SUPPORTS_SAVE )
-GAME( 1990, pitfightj, pitfight, pitfight, pitfightj, atarig1_state,pitfightj, ROT0, "Atari Games", "Pit Fighter (Japan, 2 players)", GAME_SUPPORTS_SAVE )
-GAME( 1990, pitfightb, pitfight, pitfight, pitfight, atarig1_state, pitfightb, ROT0, "bootleg", "Pit Fighter (bootleg)", GAME_SUPPORTS_SAVE )
+GAME( 1990, hydra, 0, hydra, hydra, atarig1_state, hydra, ROT0, "Atari Games", "Hydra", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, hydrap, hydra, hydra, hydra, atarig1_state, hydrap, ROT0, "Atari Games", "Hydra (prototype 5/14/90)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, hydrap2, hydra, hydra, hydra, atarig1_state, hydrap, ROT0, "Atari Games", "Hydra (prototype 5/25/90)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1990, pitfight, 0, pitfight, pitfight, atarig1_state, pitfight9, ROT0, "Atari Games", "Pit Fighter (rev 9)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, pitfight7, pitfight, pitfight, pitfight, atarig1_state, pitfight7, ROT0, "Atari Games", "Pit Fighter (rev 7)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, pitfight6, pitfight, pitfight, pitfight, atarig1_state, pitfightj, ROT0, "Atari Games", "Pit Fighter (rev 6)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, pitfight5, pitfight, pitfight, pitfight, atarig1_state, pitfight7, ROT0, "Atari Games", "Pit Fighter (rev 5)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, pitfight4, pitfight, pitfight, pitfight, atarig1_state, pitfight, ROT0, "Atari Games", "Pit Fighter (rev 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, pitfight3, pitfight, pitfight, pitfight, atarig1_state, pitfight, ROT0, "Atari Games", "Pit Fighter (rev 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, pitfightj, pitfight, pitfight, pitfightj, atarig1_state,pitfightj, ROT0, "Atari Games", "Pit Fighter (Japan, 2 players)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, pitfightb, pitfight, pitfight, pitfight, atarig1_state, pitfightb, ROT0, "bootleg", "Pit Fighter (bootleg)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/atarig42.c b/src/mame/drivers/atarig42.c
index 8b07d836187..b44f1f901dd 100644
--- a/src/mame/drivers/atarig42.c
+++ b/src/mame/drivers/atarig42.c
@@ -849,6 +849,6 @@ DRIVER_INIT_MEMBER(atarig42_state,guardian)
*
*************************************/
-GAME( 1991, roadriot, 0, atarig42_0x200, roadriot, atarig42_state, roadriot, ROT0, "Atari Games", "Road Riot 4WD (set 1, 13 Nov 1991)", GAME_UNEMULATED_PROTECTION )
-GAME( 1991, roadrioto,roadriot, atarig42_0x200, roadriot, atarig42_state, roadriot, ROT0, "Atari Games", "Road Riot 4WD (set 2, 04 Jun 1991)", GAME_UNEMULATED_PROTECTION )
+GAME( 1991, roadriot, 0, atarig42_0x200, roadriot, atarig42_state, roadriot, ROT0, "Atari Games", "Road Riot 4WD (set 1, 13 Nov 1991)", MACHINE_UNEMULATED_PROTECTION )
+GAME( 1991, roadrioto,roadriot, atarig42_0x200, roadriot, atarig42_state, roadriot, ROT0, "Atari Games", "Road Riot 4WD (set 2, 04 Jun 1991)", MACHINE_UNEMULATED_PROTECTION )
GAME( 1992, guardian, 0, atarig42_0x400, guardian, atarig42_state, guardian, ROT0, "Atari Games", "Guardians of the 'Hood", 0 )
diff --git a/src/mame/drivers/atarigt.c b/src/mame/drivers/atarigt.c
index fdece26607a..4fe11fdd654 100644
--- a/src/mame/drivers/atarigt.c
+++ b/src/mame/drivers/atarigt.c
@@ -1331,10 +1331,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)", GAME_UNEMULATED_PROTECTION )
-GAME( 1994, tmek51p, tmek, tmek, tmek, atarigt_state, tmek, ROT0, "Atari Games", "T-MEK (v5.1, prototype)", GAME_UNEMULATED_PROTECTION )
-GAME( 1994, tmek45, tmek, tmek, tmek, atarigt_state, tmek, ROT0, "Atari Games", "T-MEK (v4.5)", GAME_UNEMULATED_PROTECTION )
-GAME( 1994, tmek44, tmek, tmek, tmek, atarigt_state, tmek, ROT0, "Atari Games", "T-MEK (v4.4)", GAME_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)", GAME_UNEMULATED_PROTECTION )
-GAME( 1994, primrage20, primrage, primrage20,primrage, atarigt_state, primrage, ROT0, "Atari Games", "Primal Rage (version 2.0)", GAME_UNEMULATED_PROTECTION )
+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.c b/src/mame/drivers/atarigx2.c
index 0f65788f923..847d4747c4b 100644
--- a/src/mame/drivers/atarigx2.c
+++ b/src/mame/drivers/atarigx2.c
@@ -2273,16 +2273,16 @@ DRIVER_INIT_MEMBER(atarigx2_state,rrreveng)
*
*************************************/
-GAME( 1992, spclords, 0, atarigx2_0x400, spclords, atarigx2_state, spclords, ROT0, "Atari Games", "Space Lords (rev C)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
-GAME( 1992, spclordsb, spclords, atarigx2_0x400, spclords, atarigx2_state, spclords, ROT0, "Atari Games", "Space Lords (rev B)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
-GAME( 1992, spclordsg, spclords, atarigx2_0x400, spclords, atarigx2_state, spclords, ROT0, "Atari Games", "Space Lords (rev A, German)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
-GAME( 1992, spclordsa, spclords, atarigx2_0x400, spclords, atarigx2_state, spclords, ROT0, "Atari Games", "Space Lords (rev A)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
-
-GAME( 1992, motofren, 0, atarigx2_0x200, motofren, atarigx2_state, motofren, ROT0, "Atari Games", "Moto Frenzy", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
-GAME( 1992, motofrenmd, motofren, atarigx2_0x200, motofren, atarigx2_state, motofren, ROT0, "Atari Games", "Moto Frenzy (Mini Deluxe)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
-GAME( 1992, motofrenft, motofren, atarigx2_0x200, motofren, atarigx2_state, motofren, ROT0, "Atari Games", "Moto Frenzy (Field Test Version)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
-GAME( 1992, motofrenmf, motofren, atarigx2_0x200, motofren, atarigx2_state, motofren, ROT0, "Atari Games", "Moto Frenzy (Mini Deluxe Field Test Version)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
-
-GAME( 1993, rrreveng, 0, atarigx2_0x400, rrreveng, atarigx2_state, rrreveng, ROT0, "Atari Games", "Road Riot's Revenge (prototype, Sep 06, 1994)", GAME_UNEMULATED_PROTECTION | GAME_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)", GAME_UNEMULATED_PROTECTION | GAME_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)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
+GAME( 1992, spclords, 0, atarigx2_0x400, spclords, atarigx2_state, spclords, ROT0, "Atari Games", "Space Lords (rev C)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING )
+GAME( 1992, spclordsb, spclords, atarigx2_0x400, spclords, atarigx2_state, spclords, ROT0, "Atari Games", "Space Lords (rev B)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING )
+GAME( 1992, spclordsg, spclords, atarigx2_0x400, spclords, atarigx2_state, spclords, ROT0, "Atari Games", "Space Lords (rev A, German)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING )
+GAME( 1992, spclordsa, spclords, atarigx2_0x400, spclords, atarigx2_state, spclords, ROT0, "Atari Games", "Space Lords (rev A)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING )
+
+GAME( 1992, motofren, 0, atarigx2_0x200, motofren, atarigx2_state, motofren, ROT0, "Atari Games", "Moto Frenzy", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING )
+GAME( 1992, motofrenmd, motofren, atarigx2_0x200, motofren, atarigx2_state, motofren, ROT0, "Atari Games", "Moto Frenzy (Mini Deluxe)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING )
+GAME( 1992, motofrenft, motofren, atarigx2_0x200, motofren, atarigx2_state, motofren, ROT0, "Atari Games", "Moto Frenzy (Field Test Version)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING )
+GAME( 1992, motofrenmf, motofren, atarigx2_0x200, motofren, atarigx2_state, motofren, ROT0, "Atari Games", "Moto Frenzy (Mini Deluxe Field Test Version)", 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/mess/drivers/atarist.c b/src/mame/drivers/atarist.c
index 719433bd0ad..1bc2c0eb8cf 100644
--- a/src/mess/drivers/atarist.c
+++ b/src/mame/drivers/atarist.c
@@ -3182,43 +3182,43 @@ ROM_END
//**************************************************************************
// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS
-COMP( 1985, st, 0, 0, st, st, driver_device, 0, "Atari", "ST (USA)", GAME_NOT_WORKING )
-COMP( 1985, st_uk, st, 0, st, st, driver_device, 0, "Atari", "ST (UK)", GAME_NOT_WORKING )
-COMP( 1985, st_de, st, 0, st, st, driver_device, 0, "Atari", "ST (Germany)", GAME_NOT_WORKING )
-COMP( 1985, st_es, st, 0, st, st, driver_device, 0, "Atari", "ST (Spain)", GAME_NOT_WORKING )
-COMP( 1985, st_fr, st, 0, st, st, driver_device, 0, "Atari", "ST (France)", GAME_NOT_WORKING )
-COMP( 1985, st_nl, st, 0, st, st, driver_device, 0, "Atari", "ST (Netherlands)", GAME_NOT_WORKING )
-COMP( 1985, st_se, st, 0, st, st, driver_device, 0, "Atari", "ST (Sweden)", GAME_NOT_WORKING )
-COMP( 1985, st_sg, st, 0, st, st, driver_device, 0, "Atari", "ST (Switzerland)", GAME_NOT_WORKING )
-COMP( 1987, megast, st, 0, megast, st, driver_device, 0, "Atari", "MEGA ST (USA)", GAME_NOT_WORKING )
-COMP( 1987, megast_uk, st, 0, megast, st, driver_device, 0, "Atari", "MEGA ST (UK)", GAME_NOT_WORKING )
-COMP( 1987, megast_de, st, 0, megast, st, driver_device, 0, "Atari", "MEGA ST (Germany)", GAME_NOT_WORKING )
-COMP( 1987, megast_fr, st, 0, megast, st, driver_device, 0, "Atari", "MEGA ST (France)", GAME_NOT_WORKING )
-COMP( 1987, megast_se, st, 0, megast, st, driver_device, 0, "Atari", "MEGA ST (Sweden)", GAME_NOT_WORKING )
-COMP( 1987, megast_sg, st, 0, megast, st, driver_device, 0, "Atari", "MEGA ST (Switzerland)",GAME_NOT_WORKING )
-COMP( 1989, ste, 0, 0, ste, ste, driver_device, 0, "Atari", "STE (USA)", GAME_NOT_WORKING )
-COMP( 1989, ste_uk, ste, 0, ste, ste, driver_device, 0, "Atari", "STE (UK)", GAME_NOT_WORKING )
-COMP( 1989, ste_de, ste, 0, ste, ste, driver_device, 0, "Atari", "STE (Germany)", GAME_NOT_WORKING )
-COMP( 1989, ste_es, ste, 0, ste, ste, driver_device, 0, "Atari", "STE (Spain)", GAME_NOT_WORKING )
-COMP( 1989, ste_fr, ste, 0, ste, ste, driver_device, 0, "Atari", "STE (France)", GAME_NOT_WORKING )
-COMP( 1989, ste_it, ste, 0, ste, ste, driver_device, 0, "Atari", "STE (Italy)", GAME_NOT_WORKING )
-COMP( 1989, ste_se, ste, 0, ste, ste, driver_device, 0, "Atari", "STE (Sweden)", GAME_NOT_WORKING )
-COMP( 1989, ste_sg, ste, 0, ste, ste, driver_device, 0, "Atari", "STE (Switzerland)", GAME_NOT_WORKING )
-//COMP( 1990, stbook, ste, 0, stbook, stbook, driver_device, 0, "Atari", "STBook", GAME_NOT_WORKING )
-COMP( 1990, tt030, 0, 0, tt030, tt030, driver_device, 0, "Atari", "TT030 (USA)", GAME_NOT_WORKING )
-COMP( 1990, tt030_uk, tt030, 0, tt030, tt030, driver_device, 0, "Atari", "TT030 (UK)", GAME_NOT_WORKING )
-COMP( 1990, tt030_de, tt030, 0, tt030, tt030, driver_device, 0, "Atari", "TT030 (Germany)", GAME_NOT_WORKING )
-COMP( 1990, tt030_fr, tt030, 0, tt030, tt030, driver_device, 0, "Atari", "TT030 (France)", GAME_NOT_WORKING )
-COMP( 1990, tt030_pl, tt030, 0, tt030, tt030, driver_device, 0, "Atari", "TT030 (Poland)", GAME_NOT_WORKING )
-COMP( 1991, megaste, ste, 0, megaste, st, driver_device, 0, "Atari", "MEGA STE (USA)", GAME_NOT_WORKING )
-COMP( 1991, megaste_uk, ste, 0, megaste, st, driver_device, 0, "Atari", "MEGA STE (UK)", GAME_NOT_WORKING )
-COMP( 1991, megaste_de, ste, 0, megaste, st, driver_device, 0, "Atari", "MEGA STE (Germany)", GAME_NOT_WORKING )
-COMP( 1991, megaste_es, ste, 0, megaste, st, driver_device, 0, "Atari", "MEGA STE (Spain)", GAME_NOT_WORKING )
-COMP( 1991, megaste_fr, ste, 0, megaste, st, driver_device, 0, "Atari", "MEGA STE (France)", GAME_NOT_WORKING )
-COMP( 1991, megaste_it, ste, 0, megaste, st, driver_device, 0, "Atari", "MEGA STE (Italy)", GAME_NOT_WORKING )
-COMP( 1991, megaste_se, ste, 0, megaste, st, driver_device, 0, "Atari", "MEGA STE (Sweden)", GAME_NOT_WORKING )
-COMP( 1992, falcon30, 0, 0, falcon, falcon, driver_device, 0, "Atari", "Falcon030", GAME_NOT_WORKING )
-COMP( 1992, falcon40, falcon30, 0, falcon40, falcon, driver_device, 0, "Atari", "Falcon040 (prototype)",GAME_NOT_WORKING )
-//COMP( 1989, stacy, st, 0, stacy, stacy, driver_device, 0, "Atari", "Stacy", GAME_NOT_WORKING )
-//COMP( 1991, stpad, ste, 0, stpad, stpad, driver_device, 0, "Atari", "STPad (prototype)", GAME_NOT_WORKING )
-//COMP( 1992, fx1, 0, 0, falcon, falcon, driver_device, 0, "Atari", "FX-1 (prototype)", GAME_NOT_WORKING )
+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 )
diff --git a/src/mame/drivers/atarisy1.c b/src/mame/drivers/atarisy1.c
index 395c2530ff9..0d674b89268 100644
--- a/src/mame/drivers/atarisy1.c
+++ b/src/mame/drivers/atarisy1.c
@@ -814,7 +814,7 @@ MACHINE_CONFIG_END
#define MOTHERBOARD_ALPHA \
ROM_LOAD_BIOS(0, "136032.104.f5", 0x00000, 0x02000, CRC(7a29dc07) SHA1(72ba464da01bd6d3a91b8d9997d5ac14b6f47aad) ) \
ROM_LOAD_BIOS(1, "136032.104.f5", 0x00000, 0x02000, CRC(7a29dc07) SHA1(72ba464da01bd6d3a91b8d9997d5ac14b6f47aad) ) \
- ROM_LOAD_BIOS(2, "136032.107.b2", 0x00000, 0x02000, CRC(315e4bea) SHA1(a00ea23fbdbf075f8f3f184275be83387e8ac82b) )
+ ROM_LOAD_BIOS(2, "136032.107.b2", 0x00000, 0x02000, CRC(315e4bea) SHA1(a00ea23fbdbf075f8f3f184275be83387e8ac82b) ) /* is this bad? it just seems to be missing upper nibbles and hence some of the planes? */
#define MOTHERBOARD_PROMS \
ROM_LOAD_BIOS(0, "136032.101.e3", 0x00000, 0x00100, CRC(7e84972a) SHA1(84d422b53547271e3a07342704a05ef481db3f99) ) \
@@ -1752,6 +1752,86 @@ ROM_START( roadblstg )
MOTHERBOARD_PROMS
ROM_END
+/*
+Road Blasters (German upright Rev xx)(Atari 1987)
+Dumped from the original Atari
+(System 1 motherboard Rev. C)
+(System 1 daughterboard). "Road Blasters Cartridge 3 PCB Assy: A043972-01 Rev.A"
+*/
+
+// different IC positions and different GFX rom configuration.
+ROM_START( roadblstgu )
+ ROM_REGION( 0x88000, "maincpu", 0 ) /* 8.5*64k for 68000 code & slapstic ROM */
+ // expects bios roms 114/115, does not work properly with others (corrupt insert coin text)
+ ROM_LOAD16_BYTE( "136032-114.j7", 0x00000, 0x04000, CRC(195c54ad) SHA1(d7cda3cd3db4c6f77074ca05e96ae11b62e048b7) )
+ ROM_LOAD16_BYTE( "136032-115.j8", 0x00001, 0x04000, CRC(7275b4dc) SHA1(0896ab37ea832a1335046353612c1b4c86d8d040) )
+
+ ROM_LOAD16_BYTE( "136048-1257.c11", 0x010000, 0x008000, CRC(604a5cc0) SHA1(a057a2e47ac7b7c727e9c1bfce28ba955ce75442) )
+ ROM_LOAD16_BYTE( "136048-1258.a11", 0x010001, 0x008000, CRC(3d10929d) SHA1(aa4d568e5d5b62fb8ea11094bad78bb8f713404e) )
+ ROM_LOAD16_BYTE( "136048-1259.c13", 0x020000, 0x008000, CRC(b9c807ac) SHA1(ca955790c98037045aa49425392581f21d33caa9) )
+ ROM_LOAD16_BYTE( "136048-1260.a13", 0x020001, 0x008000, CRC(eaeb1196) SHA1(82bf14244b342c97adde893f19a050baab30ab1e) )
+
+ ROM_LOAD16_BYTE( "136048-1163.c12", 0x050000, 0x008000, CRC(054273b2) SHA1(4c820c00d3b67825c361edc9615c89c2a9a1c6d3) )//
+ ROM_LOAD16_BYTE( "136048-1164.a12", 0x050001, 0x008000, CRC(49181bec) SHA1(79e042e4f079a9806ef12c5c8dfdc2e6e4f90011) )//
+ ROM_LOAD16_BYTE( "136048-1165.c14", 0x060000, 0x008000, CRC(f63dc29a) SHA1(e54637b9d0b271aa9b58e89a442ac03ec812e1eb) )//
+ ROM_LOAD16_BYTE( "136048-1166.a14", 0x060001, 0x008000, CRC(b1fc5955) SHA1(b860213a9b5ae7547c258812045e71795129598f) )//
+ ROM_LOAD16_BYTE( "136048-1167.c16", 0x070000, 0x008000, CRC(c6d30d6f) SHA1(acb552976b2dcfa585097ea246ca88034549c8ab) )//
+ ROM_LOAD16_BYTE( "136048-1168.a16", 0x070001, 0x008000, CRC(16951020) SHA1(5e5a6ad4ae87723060232c7ecb837f5fc2a9be68) )//
+ ROM_LOAD16_BYTE( "136048-2147.c17", 0x080000, 0x004000, CRC(5c1adf67) SHA1(53838a2f5059797991aa337a7bec32f7e694610a) )//
+ ROM_LOAD16_BYTE( "136048-2148.a17", 0x080001, 0x004000, CRC(d9ac8966) SHA1(7d056c1eb8184b4261c5713b0d5799b2fd8bde2a) )//
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for 6502 code */
+ ROM_LOAD( "136048-1149.e14", 0x4000, 0x4000, CRC(2e54f95e) SHA1(5056ddec3c88384ada1d2ee9b1532b9ba9f34e08) )
+ ROM_LOAD( "136048-1169.e15", 0x8000, 0x4000, CRC(ee318052) SHA1(f66ff39499697b7439dc62567e727fec769c1505) )//
+ ROM_LOAD( "136048-1170.e17", 0xc000, 0x4000, CRC(75dfec33) SHA1(3092348b98419bb23181d21406733d5d21cd3d82) )//
+
+ ROM_REGION( 0x2000, "alpha", 0 )
+ ROM_LOAD( "136032.107.b2", 0x00000, 0x02000, CRC(7a29dc07) SHA1(72ba464da01bd6d3a91b8d9997d5ac14b6f47aad) )
+
+ ROM_REGION( 0x380000, "tiles", ROMREGION_INVERT | ROMREGION_ERASEFF )
+ ROM_LOAD( "136048-1101.b4", 0x000000, 0x008000, CRC(fe342d27) SHA1(72deac16ab9b6b811f49d70d700d6bc3a904f9d5) ) /* bank 1, plane 0 *///
+ ROM_LOAD( "136048-1102.b9", 0x010000, 0x008000, CRC(17c7e780) SHA1(675a2fe5ac55c97d54153eacabf863a525e4b71f) ) /* bank 1, plane 1 *///
+ ROM_LOAD( "136048-1103.f4", 0x020000, 0x008000, CRC(39688e01) SHA1(1b273e26b48a2f69b0895c29c9b3e762c686661d) ) /* bank 1, plane 2 *///
+ ROM_LOAD( "136048-1104.f9", 0x030000, 0x008000, CRC(c8f9bd8e) SHA1(452194efafd5f9562434dafcb14b72f400fc4a49) ) /* bank 1, plane 3 *///
+ ROM_LOAD( "136048-1105.h4", 0x040000, 0x008000, CRC(c69e439e) SHA1(c933637820c04bdbc56990423adfb9067e09fad7) ) /* bank 1, plane 4 *///
+ ROM_LOAD( "136048-1106.h9", 0x050000, 0x008000, CRC(4ee55796) SHA1(045635cd4f80a5f2c378cb4c55996e09c21b5859) ) /* bank 1, plane 5 *///
+
+ ROM_LOAD( "136048-1119.b3", 0x080000, 0x008000, CRC(2533be39) SHA1(4dc5c85fe5388ed62806742c8bb27957b9ffb321) ) /* bank 2/3, plane 0 */
+ ROM_LOAD( "136048-1120.b8", 0x090000, 0x008000, CRC(3de4f4db) SHA1(a3c19ef52f31b924b7eaa7bd864fe942d2e581f9) ) /* bank 2/3, plane 1 */
+ ROM_LOAD( "136048-1121.f3", 0x0a0000, 0x008000, CRC(4a1b6b9f) SHA1(c0c6de17573b314954c02fdd57cf57c9cd59c783) ) /* bank 2/3, plane 2 */
+ ROM_LOAD( "136048-1122.f8", 0x0b0000, 0x008000, CRC(680bdb7d) SHA1(6a66560a8ef983055b250d59022e3d9a2ea25861) ) /* bank 2/3, plane 3 */
+
+ ROM_LOAD( "136048-1123.b2", 0x100000, 0x008000, CRC(a405d8bf) SHA1(c5bb7c54caf04e8f6a6534de7fd1127d9777dded) ) /* bank 2/3, plane 0 */
+ ROM_LOAD( "136048-1124.b7", 0x110000, 0x008000, CRC(b9070c2e) SHA1(4b912cc35d0f4d445a6e619fc52e8c131bbb7899) ) /* bank 2/3, plane 1 */
+ ROM_LOAD( "136048-1125.f2", 0x120000, 0x008000, CRC(5dfac572) SHA1(46eee972944766b7ba3a88937da3b3ac785c5741) ) /* bank 2/3, plane 2 */
+ ROM_LOAD( "136048-1126.f7", 0x130000, 0x008000, CRC(a0416c6d) SHA1(bdaa2d828035206f0662c0c920b654cf4d314ca6) ) /* bank 2/3, plane 3 */
+
+ ROM_LOAD( "136048-1127.b1", 0x180000, 0x008000, CRC(0138b391) SHA1(3d22c93c5ffb1a998f85a27eb9f58061f2ffe19d) ) /* bank 4/5, plane 0 */
+ ROM_LOAD( "136048-1128.b6", 0x190000, 0x008000, CRC(5136fb4b) SHA1(0b2a8d96e573907e11d4fe7288069e9735c1d072) ) /* bank 4/5, plane 1 */
+ ROM_LOAD( "136048-1129.f1", 0x1a0000, 0x008000, CRC(7d75bb12) SHA1(bbaf4c991bb21b32dc1c6fdc23673e27c33f4edf) ) /* bank 4/5, plane 2 */
+ ROM_LOAD( "136048-1130.f6", 0x1b0000, 0x008000, CRC(81bb54d9) SHA1(134a6280183595b5b5989d8cc593b8fbd6a74577) ) /* bank 4/5, plane 3 */
+
+ ROM_LOAD( "136048-1131.d4", 0x200000, 0x008000, CRC(72233889) SHA1(e5596c9f450a00947bd0ab4b7b7b2623d4ce8d89) ) /* bank 4/5, plane 0 */
+ ROM_LOAD( "136048-1132.d9", 0x210000, 0x008000, CRC(6a82b8a7) SHA1(8b9f65617601cb39d37110074e99ab27fd5fa274) ) /* bank 4/5, plane 1 */
+ ROM_LOAD( "136048-1133.d2", 0x220000, 0x008000, CRC(845dd347) SHA1(47ab870a808898c819d48454099b44ccf507c341) ) /* bank 4/5, plane 2 */
+ ROM_LOAD( "136048-1134.d7", 0x230000, 0x008000, CRC(54e4c9e6) SHA1(cfd989b6237c95bac1717025a895eb4b1df28365) ) /* bank 4/5, plane 3 */
+
+ ROM_LOAD( "136048-1115.d3", 0x300000, 0x008000, CRC(a47bc79d) SHA1(367f21c355c0af55629d2c5746cd5cb06272abc0) ) /* bank 7/6, plane 0 *///
+ ROM_CONTINUE( 0x280000, 0x008000 )
+ ROM_LOAD( "136048-1116.d8", 0x310000, 0x008000, CRC(b8a5c215) SHA1(2594f2a865fb73c8a7829e50ff19a6494a35c088) ) /* bank 7/6, plane 0 *///
+ ROM_CONTINUE( 0x290000, 0x008000 )
+ ROM_LOAD( "136048-1117.d1", 0x320000, 0x008000, CRC(2d1c1f64) SHA1(66141b9a7ae8d6dd3f1315d60cf0e99cd802d2e5) ) /* bank 7/6, plane 0 *///
+ ROM_CONTINUE( 0x2a0000, 0x008000 )
+ ROM_LOAD( "136048-1118.d6", 0x330000, 0x008000, CRC(be879b8e) SHA1(dc1d1f7bdb511e922b650fac88307a08ab37ac4c) ) /* bank 7/6, plane 0 *///
+ ROM_CONTINUE( 0x2b0000, 0x008000 )
+
+ ROM_REGION( 0x400, "proms", 0 ) /* graphics mapping PROMs */
+ ROM_LOAD( "136048-1174.a7", 0x000000, 0x000200, CRC(db4a4d53) SHA1(c5468f3585ec9bc23c9ee990b3ae3738b0309823) )//
+ ROM_LOAD( "136048-1173.a5", 0x000200, 0x000200, CRC(c80574af) SHA1(9a3dc83f70e79915ce0db3e6e69b5dcfee3acb6f) )//
+
+ ROM_REGION( 0x201, "motherbrd_proms", 0) /* Motherboard PROM's (Only used by TTL version.) */
+ MOTHERBOARD_PROMS
+ROM_END
ROM_START( roadblst3 )
ROM_REGION( 0x88000, "maincpu", 0 ) /* 8.5*64k for 68000 code & slapstic ROM */
@@ -2160,10 +2240,19 @@ ROM_START( roadblstc )
MOTHERBOARD_PROMS
ROM_END
+/*
+Road Blasters (German Cockpit Rev xx)(Atari 1987)
+Dumped from an original Atari (Dedicated System 1) cocktail board. "Road Blasters Cart. 5 PCB Assy: A044203-01 Rev.A"
+
+Note: The text on the board says "cocktail" but I suppose this is the cockpit version.
+ 136048-1150.d7 is a sound rom.
+*/
ROM_START( roadblstcg )
ROM_REGION( 0x88000, "maincpu", 0 ) /* 8.5*64k for 68000 code & slapstic ROM */
- MOTHERBOARD_BIOS
+ ROM_LOAD16_BYTE( "136032-117-l9", 0x000001, 0x004000, CRC(9af9fe29) SHA1(1d5077662e4111ece9f8a5124394dad8b1abdc13) ) // alt bios roms? (to put in bios structure, or are they specific to this set?)
+ ROM_LOAD16_BYTE( "136032-116.m9", 0x000000, 0x004000, CRC(195c54ad) SHA1(d7cda3cd3db4c6f77074ca05e96ae11b62e048b7) ) //
+
ROM_LOAD16_BYTE( "136048-1235.7p", 0x010000, 0x008000, CRC(58b2998f) SHA1(7e9f4ca2b15cf60c61e0615f214f9fcc518cb194) )
ROM_LOAD16_BYTE( "136048-1236.8p", 0x010001, 0x008000, CRC(02e23a40) SHA1(6525351669e95dab869c7adc7d992d12d9313aee) )
ROM_LOAD16_BYTE( "136048-1237.7r", 0x020000, 0x008000, CRC(5e0a7c5d) SHA1(fb3688fbadc05f96980c67f5446ccb250d20b1a3) )
@@ -2177,13 +2266,13 @@ ROM_START( roadblstcg )
ROM_LOAD16_BYTE( "136048-2147.7k", 0x080000, 0x004000, CRC(5c1adf67) SHA1(53838a2f5059797991aa337a7bec32f7e694610a) )
ROM_LOAD16_BYTE( "136048-2148.8k", 0x080001, 0x004000, CRC(d9ac8966) SHA1(7d056c1eb8184b4261c5713b0d5799b2fd8bde2a) )
+
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for 6502 code */
- ROM_LOAD( "136048-1149.14e", 0x4000, 0x4000, CRC(2e54f95e) SHA1(5056ddec3c88384ada1d2ee9b1532b9ba9f34e08) )
- ROM_LOAD( "136048-1169.1516e", 0x8000, 0x4000, CRC(ee318052) SHA1(f66ff39499697b7439dc62567e727fec769c1505) )
- ROM_LOAD( "136048-1170.17e", 0xc000, 0x4000, CRC(75dfec33) SHA1(3092348b98419bb23181d21406733d5d21cd3d82) )
+ ROM_LOAD( "136048-1149.c8", 0x4000, 0x4000, CRC(2e54f95e) SHA1(5056ddec3c88384ada1d2ee9b1532b9ba9f34e08) ) //
+ ROM_LOAD( "136048-1150.d7", 0x8000, 0x8000, CRC(e89e7fc8) SHA1(d944bc27de2f2f675680c62d999cacf84a08fd4b) )
- ROM_REGION( 0x2000, "alpha", 0 )
- MOTHERBOARD_ALPHA
+ ROM_REGION( 0x4000, "alpha", 0 )
+ ROM_LOAD( "136032-120.p1", 0x00000, 0x04000, CRC(90a1950d) SHA1(fba32c255850312175d1e3c03d677ffb57e09e07) ) //
ROM_REGION( 0x380000, "tiles", ROMREGION_INVERT | ROMREGION_ERASEFF )
ROM_LOAD( "136048-1101.2s", 0x000000, 0x008000, CRC(fe342d27) SHA1(72deac16ab9b6b811f49d70d700d6bc3a904f9d5) ) /* bank 1, plane 0 */
@@ -2221,6 +2310,13 @@ ROM_START( roadblstcg )
ROM_CONTINUE( 0x2b0000, 0x008000 )
ROM_REGION( 0x400, "proms", 0 ) /* graphics mapping PROMs */
+ // these 2 proms were present on this board, an earlier revision to the other games, however they don't give correct
+ // gfx, so we load the regular ones over, might need different GFX rom loading? investigate further.
+ // (the failure to use these roms properly might be the reason we have the IMPERFECT_GRAPHICS flag on this
+ // set in the first place)
+ ROM_LOAD( "135048-1172.d1", 0x000000, 0x000200, CRC(b79d1903) SHA1(8319fab8b39f708457eb1efe47789b26adc61249) )
+ ROM_LOAD( "135048-1171.d2", 0x000200, 0x000200, CRC(29248a95) SHA1(c9467d495676d323121c92c6757e73b2ed3fb3d7) )
+
ROM_LOAD( "136048-1174.12d", 0x000000, 0x000200, CRC(db4a4d53) SHA1(c5468f3585ec9bc23c9ee990b3ae3738b0309823) )
ROM_LOAD( "136048-1173.2d", 0x000200, 0x000200, CRC(c80574af) SHA1(9a3dc83f70e79915ce0db3e6e69b5dcfee3acb6f) )
@@ -2298,6 +2394,9 @@ ROM_END
+
+
+
/*************************************
*
* Driver initialization
@@ -2365,7 +2464,7 @@ DRIVER_INIT_MEMBER(atarisy1_state,roadb110)
*
*************************************/
-GAME( 1984, atarisy1, 0, atarisy1, peterpak, atarisy1_state, peterpak, ROT0, "Atari Games", "Atari System 1 BIOS", GAME_IS_BIOS_ROOT )
+GAME( 1984, atarisy1, 0, atarisy1, peterpak, atarisy1_state, peterpak, ROT0, "Atari Games", "Atari System 1 BIOS", MACHINE_IS_BIOS_ROOT )
GAME( 1984, marble, atarisy1, atarisy1, marble, atarisy1_state, marble, ROT0, "Atari Games", "Marble Madness (set 1)", 0 )
GAME( 1984, marble2, marble, atarisy1, marble, atarisy1_state, marble, ROT0, "Atari Games", "Marble Madness (set 2)", 0 )
@@ -2380,7 +2479,7 @@ GAME( 1985, indytemp2,indytemp, atarisy1, indytemp, atarisy1_state, indytemp, RO
GAME( 1985, indytemp3,indytemp, atarisy1, indytemp, atarisy1_state, indytemp, ROT0, "Atari Games", "Indiana Jones and the Temple of Doom (set 3)", 0 )
GAME( 1985, indytemp4,indytemp, atarisy1, indytemp, atarisy1_state, indytemp, ROT0, "Atari Games", "Indiana Jones and the Temple of Doom (set 4)", 0 )
GAME( 1985, indytempd,indytemp, atarisy1, indytemp, atarisy1_state, indytemp, ROT0, "Atari Games", "Indiana Jones and the Temple of Doom (German)", 0 )
-GAME( 1985, indytempc,indytemp, atarisy1, indytemc, atarisy1_state, indytemp, ROT0, "Atari Games", "Indiana Jones and the Temple of Doom (Cocktail)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1985, indytempc,indytemp, atarisy1, indytemc, atarisy1_state, indytemp, ROT0, "Atari Games", "Indiana Jones and the Temple of Doom (Cocktail)", MACHINE_IMPERFECT_GRAPHICS )
GAME( 1985, roadrunn, atarisy1, atarisy1, roadrunn, atarisy1_state, roadrunn, ROT0, "Atari Games", "Road Runner (rev 2)", 0 )
GAME( 1985, roadrunn2,roadrunn, atarisy1, roadrunn, atarisy1_state, roadrunn, ROT0, "Atari Games", "Road Runner (rev 1+)", 0 )
@@ -2394,5 +2493,6 @@ GAME( 1987, roadblst2, roadblst, atarisy1, roadblst, atarisy1_state, roadb110,
GAME( 1987, roadblstg1, roadblst, atarisy1, roadblst, atarisy1_state, roadb109, ROT0, "Atari Games", "Road Blasters (upright, German, rev 1)", 0 )
GAME( 1987, roadblst1, roadblst, atarisy1, roadblst, atarisy1_state, roadb109, ROT0, "Atari Games", "Road Blasters (upright, rev 1)", 0 )
GAME( 1987, roadblstc, roadblst, atarisy1, roadblst, atarisy1_state, roadb110, ROT0, "Atari Games", "Road Blasters (cockpit, rev 2)", 0 )
-GAME( 1987, roadblstcg, roadblst, atarisy1, roadblst, atarisy1_state, roadb109, ROT0, "Atari Games", "Road Blasters (cockpit, German, rev 1)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1987, roadblstc1, roadblst, atarisy1, roadblst, atarisy1_state, roadb109, ROT0, "Atari Games", "Road Blasters (cockpit, rev 1)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1987, roadblstcg, roadblst, atarisy1, roadblst, atarisy1_state, roadb109, ROT0, "Atari Games", "Road Blasters (cockpit, German, rev 1)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1987, roadblstc1, roadblst, atarisy1, roadblst, atarisy1_state, roadb109, ROT0, "Atari Games", "Road Blasters (cockpit, rev 1)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1987, roadblstgu, roadblst, atarisy1, roadblst, atarisy1_state, roadb109, ROT0, "Atari Games", "Road Blasters (upright, German, rev ?)", 0 )
diff --git a/src/mame/drivers/atarisy2.c b/src/mame/drivers/atarisy2.c
index f989596d660..1486979e4f9 100644
--- a/src/mame/drivers/atarisy2.c
+++ b/src/mame/drivers/atarisy2.c
@@ -277,27 +277,27 @@ WRITE16_MEMBER(atarisy2_state::bankselect_w)
{
/*static const int bankoffset[64] =
{
- 12, 8, 4, 0,
- 13, 9, 5, 1,
- 14, 10, 6, 2,
- 15, 11, 7, 3,
- 28, 24, 20, 16,
- 29, 25, 21, 17,
- 30, 26, 22, 18,
- 31, 27, 23, 19,
- 44, 40, 36, 32,
- 45, 41, 37, 33,
- 46, 42, 38, 34,
- 47, 43, 39, 35,
- 60, 56, 52, 48,
- 61, 57, 53, 49,
- 62, 58, 54, 50,
- 63, 59, 55, 51
+ 12, 8, 4, 0,
+ 13, 9, 5, 1,
+ 14, 10, 6, 2,
+ 15, 11, 7, 3,
+ 28, 24, 20, 16,
+ 29, 25, 21, 17,
+ 30, 26, 22, 18,
+ 31, 27, 23, 19,
+ 44, 40, 36, 32,
+ 45, 41, 37, 33,
+ 46, 42, 38, 34,
+ 47, 43, 39, 35,
+ 60, 56, 52, 48,
+ 61, 57, 53, 49,
+ 62, 58, 54, 50,
+ 63, 59, 55, 51
};*/
int banknumber = ((data >> 10) & 0x3f) ^ 0x03;
banknumber = BITSWAP16(banknumber, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 1, 0, 3, 2);
-
+
if (offset)
m_rombank2->set_entry(banknumber);
else
@@ -751,7 +751,7 @@ WRITE8_MEMBER(atarisy2_state::coincount_w)
/* full memory map derived from schematics */
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, atarisy2_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM
- AM_RANGE(0x1000, 0x11ff) AM_MIRROR(0x0200) AM_RAM_WRITE(paletteram_w) AM_SHARE("paletteram")
+ AM_RANGE(0x1000, 0x11ff) AM_MIRROR(0x0200) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x1400, 0x1403) AM_MIRROR(0x007c) AM_READWRITE(adc_r, bankselect_w)
AM_RANGE(0x1480, 0x1487) AM_MIRROR(0x0078) AM_WRITE(adc_strobe_w)
AM_RANGE(0x1580, 0x1581) AM_MIRROR(0x001e) AM_WRITE(int0_ack_w)
@@ -1203,6 +1203,7 @@ static MACHINE_CONFIG_START( atarisy2, atarisy2_state )
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", "palette", atarisy2)
MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_FORMAT_CLASS(2, atarisy2_state, RRRRGGGGBBBBIIII)
MCFG_TILEMAP_ADD_STANDARD("playfield", "gfxdecode", 2, atarisy2_state, get_playfield_tile_info, 8,8, SCAN_ROWS, 128,64)
MCFG_TILEMAP_ADD_STANDARD_TRANSPEN("alpha", "gfxdecode", 2, atarisy2_state, get_alpha_tile_info, 8,8, SCAN_ROWS, 64,48, 0)
@@ -3208,40 +3209,40 @@ DRIVER_INIT_MEMBER(atarisy2_state,apb)
*
*************************************/
-GAME( 1984, paperboy, 0, atarisy2, paperboy, atarisy2_state, paperboy, ROT0, "Atari Games", "Paperboy (rev 3)", GAME_SUPPORTS_SAVE )
-GAME( 1984, paperboyr2,paperboy, atarisy2, paperboy, atarisy2_state, paperboy, ROT0, "Atari Games", "Paperboy (rev 2)", GAME_SUPPORTS_SAVE )
-GAME( 1984, paperboyr1,paperboy, atarisy2, paperboy, atarisy2_state, paperboy, ROT0, "Atari Games", "Paperboy (rev 1)", GAME_SUPPORTS_SAVE )
-
-GAME( 1986, 720, 0, atarisy2, 720, atarisy2_state, 720, ROT0, "Atari Games", "720 Degrees (rev 4)", GAME_SUPPORTS_SAVE )
-GAME( 1986, 720r3, 720, atarisy2, 720, atarisy2_state, 720, ROT0, "Atari Games", "720 Degrees (rev 3)", GAME_SUPPORTS_SAVE )
-GAME( 1986, 720r2, 720, atarisy2, 720, atarisy2_state, 720, ROT0, "Atari Games", "720 Degrees (rev 2)", GAME_SUPPORTS_SAVE )
-GAME( 1986, 720r1, 720, atarisy2, 720, atarisy2_state, 720, ROT0, "Atari Games", "720 Degrees (rev 1)", GAME_SUPPORTS_SAVE )
-GAME( 1986, 720g, 720, atarisy2, 720, atarisy2_state, 720, ROT0, "Atari Games", "720 Degrees (German, rev 2)", GAME_SUPPORTS_SAVE )
-GAME( 1986, 720gr1, 720, atarisy2, 720, atarisy2_state, 720, ROT0, "Atari Games", "720 Degrees (German, rev 1)", GAME_SUPPORTS_SAVE )
-
-GAME( 1986, ssprint, 0, sprint, ssprint, atarisy2_state, ssprint, ROT0, "Atari Games", "Super Sprint (rev 4)", GAME_SUPPORTS_SAVE )
-GAME( 1986, ssprint3, ssprint, sprint, ssprint, atarisy2_state, ssprint, ROT0, "Atari Games", "Super Sprint (rev 3)", GAME_SUPPORTS_SAVE )
-GAME( 1986, ssprint1, ssprint, sprint, ssprint, atarisy2_state, ssprint, ROT0, "Atari Games", "Super Sprint (rev 1)", GAME_SUPPORTS_SAVE )
-GAME( 1986, ssprintg, ssprint, sprint, ssprint, atarisy2_state, ssprint, ROT0, "Atari Games", "Super Sprint (German, rev 2)", GAME_SUPPORTS_SAVE )
-GAME( 1986, ssprintg1,ssprint, sprint, ssprint, atarisy2_state, ssprint, ROT0, "Atari Games", "Super Sprint (German, rev 1)", GAME_SUPPORTS_SAVE )
-GAME( 1986, ssprintf, ssprint, sprint, ssprint, atarisy2_state, ssprint, ROT0, "Atari Games", "Super Sprint (French)", GAME_SUPPORTS_SAVE )
-GAME( 1986, ssprints, ssprint, sprint, ssprint, atarisy2_state, ssprint, ROT0, "Atari Games", "Super Sprint (Spanish)", GAME_SUPPORTS_SAVE )
-
-GAME( 1986, csprint, 0, sprint, csprint, atarisy2_state, csprint, ROT0, "Atari Games", "Championship Sprint (rev 3)", GAME_SUPPORTS_SAVE )
-GAME( 1986, csprint2, csprint, sprint, csprint, atarisy2_state, csprint, ROT0, "Atari Games", "Championship Sprint (rev 2)", GAME_SUPPORTS_SAVE )
-GAME( 1986, csprint1, csprint, sprint, csprint, atarisy2_state, csprint, ROT0, "Atari Games", "Championship Sprint (rev 1)", GAME_SUPPORTS_SAVE )
-GAME( 1986, csprintg, csprint, sprint, csprint, atarisy2_state, csprint, ROT0, "Atari Games", "Championship Sprint (German, rev 2)", GAME_SUPPORTS_SAVE )
-GAME( 1986, csprintg1,csprint, sprint, csprint, atarisy2_state, csprint, ROT0, "Atari Games", "Championship Sprint (German, rev 1)", GAME_SUPPORTS_SAVE )
-GAME( 1986, csprintf, csprint, sprint, csprint, atarisy2_state, csprint, ROT0, "Atari Games", "Championship Sprint (French)", GAME_SUPPORTS_SAVE )
-GAME( 1986, csprints, csprint, sprint, csprint, atarisy2_state, csprint, ROT0, "Atari Games", "Championship Sprint (Spanish, rev 2)", GAME_SUPPORTS_SAVE )
-GAME( 1986, csprints1,csprint, sprint, csprint, atarisy2_state, csprint, ROT0, "Atari Games", "Championship Sprint (Spanish, rev 1)", GAME_SUPPORTS_SAVE )
-
-GAME( 1987, apb, 0, atarisy2, apb, atarisy2_state, apb, ROT270, "Atari Games", "APB - All Points Bulletin (rev 7)", GAME_SUPPORTS_SAVE )
-GAME( 1987, apb6, apb, atarisy2, apb, atarisy2_state, apb, ROT270, "Atari Games", "APB - All Points Bulletin (rev 6)", GAME_SUPPORTS_SAVE )
-GAME( 1987, apb5, apb, atarisy2, apb, atarisy2_state, apb, ROT270, "Atari Games", "APB - All Points Bulletin (rev 5)", GAME_SUPPORTS_SAVE )
-GAME( 1987, apb4, apb, atarisy2, apb, atarisy2_state, apb, ROT270, "Atari Games", "APB - All Points Bulletin (rev 4)", GAME_SUPPORTS_SAVE )
-GAME( 1987, apb3, apb, atarisy2, apb, atarisy2_state, apb, ROT270, "Atari Games", "APB - All Points Bulletin (rev 3)", GAME_SUPPORTS_SAVE )
-GAME( 1987, apb2, apb, atarisy2, apb, atarisy2_state, apb, ROT270, "Atari Games", "APB - All Points Bulletin (rev 2)", GAME_SUPPORTS_SAVE )
-GAME( 1987, apb1, apb, atarisy2, apb, atarisy2_state, apb, ROT270, "Atari Games", "APB - All Points Bulletin (rev 1)", GAME_SUPPORTS_SAVE )
-GAME( 1987, apbg, apb, atarisy2, apb, atarisy2_state, apb, ROT270, "Atari Games", "APB - All Points Bulletin (German)", GAME_SUPPORTS_SAVE )
-GAME( 1987, apbf, apb, atarisy2, apb, atarisy2_state, apb, ROT270, "Atari Games", "APB - All Points Bulletin (French)", GAME_SUPPORTS_SAVE )
+GAME( 1984, paperboy, 0, atarisy2, paperboy, atarisy2_state, paperboy, ROT0, "Atari Games", "Paperboy (rev 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, paperboyr2,paperboy, atarisy2, paperboy, atarisy2_state, paperboy, ROT0, "Atari Games", "Paperboy (rev 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, paperboyr1,paperboy, atarisy2, paperboy, atarisy2_state, paperboy, ROT0, "Atari Games", "Paperboy (rev 1)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1986, 720, 0, atarisy2, 720, atarisy2_state, 720, ROT0, "Atari Games", "720 Degrees (rev 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, 720r3, 720, atarisy2, 720, atarisy2_state, 720, ROT0, "Atari Games", "720 Degrees (rev 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, 720r2, 720, atarisy2, 720, atarisy2_state, 720, ROT0, "Atari Games", "720 Degrees (rev 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, 720r1, 720, atarisy2, 720, atarisy2_state, 720, ROT0, "Atari Games", "720 Degrees (rev 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, 720g, 720, atarisy2, 720, atarisy2_state, 720, ROT0, "Atari Games", "720 Degrees (German, rev 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, 720gr1, 720, atarisy2, 720, atarisy2_state, 720, ROT0, "Atari Games", "720 Degrees (German, rev 1)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1986, ssprint, 0, sprint, ssprint, atarisy2_state, ssprint, ROT0, "Atari Games", "Super Sprint (rev 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, ssprint3, ssprint, sprint, ssprint, atarisy2_state, ssprint, ROT0, "Atari Games", "Super Sprint (rev 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, ssprint1, ssprint, sprint, ssprint, atarisy2_state, ssprint, ROT0, "Atari Games", "Super Sprint (rev 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, ssprintg, ssprint, sprint, ssprint, atarisy2_state, ssprint, ROT0, "Atari Games", "Super Sprint (German, rev 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, ssprintg1,ssprint, sprint, ssprint, atarisy2_state, ssprint, ROT0, "Atari Games", "Super Sprint (German, rev 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, ssprintf, ssprint, sprint, ssprint, atarisy2_state, ssprint, ROT0, "Atari Games", "Super Sprint (French)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, ssprints, ssprint, sprint, ssprint, atarisy2_state, ssprint, ROT0, "Atari Games", "Super Sprint (Spanish)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1986, csprint, 0, sprint, csprint, atarisy2_state, csprint, ROT0, "Atari Games", "Championship Sprint (rev 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, csprint2, csprint, sprint, csprint, atarisy2_state, csprint, ROT0, "Atari Games", "Championship Sprint (rev 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, csprint1, csprint, sprint, csprint, atarisy2_state, csprint, ROT0, "Atari Games", "Championship Sprint (rev 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, csprintg, csprint, sprint, csprint, atarisy2_state, csprint, ROT0, "Atari Games", "Championship Sprint (German, rev 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, csprintg1,csprint, sprint, csprint, atarisy2_state, csprint, ROT0, "Atari Games", "Championship Sprint (German, rev 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, csprintf, csprint, sprint, csprint, atarisy2_state, csprint, ROT0, "Atari Games", "Championship Sprint (French)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, csprints, csprint, sprint, csprint, atarisy2_state, csprint, ROT0, "Atari Games", "Championship Sprint (Spanish, rev 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, csprints1,csprint, sprint, csprint, atarisy2_state, csprint, ROT0, "Atari Games", "Championship Sprint (Spanish, rev 1)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1987, apb, 0, atarisy2, apb, atarisy2_state, apb, ROT270, "Atari Games", "APB - All Points Bulletin (rev 7)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, apb6, apb, atarisy2, apb, atarisy2_state, apb, ROT270, "Atari Games", "APB - All Points Bulletin (rev 6)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, apb5, apb, atarisy2, apb, atarisy2_state, apb, ROT270, "Atari Games", "APB - All Points Bulletin (rev 5)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, apb4, apb, atarisy2, apb, atarisy2_state, apb, ROT270, "Atari Games", "APB - All Points Bulletin (rev 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, apb3, apb, atarisy2, apb, atarisy2_state, apb, ROT270, "Atari Games", "APB - All Points Bulletin (rev 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, apb2, apb, atarisy2, apb, atarisy2_state, apb, ROT270, "Atari Games", "APB - All Points Bulletin (rev 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, apb1, apb, atarisy2, apb, atarisy2_state, apb, ROT270, "Atari Games", "APB - All Points Bulletin (rev 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, apbg, apb, atarisy2, apb, atarisy2_state, apb, ROT270, "Atari Games", "APB - All Points Bulletin (German)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, apbf, apb, atarisy2, apb, atarisy2_state, apb, ROT270, "Atari Games", "APB - All Points Bulletin (French)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/atarisy4.c b/src/mame/drivers/atarisy4.c
index 7a69f5b80ce..6c38292c851 100644
--- a/src/mame/drivers/atarisy4.c
+++ b/src/mame/drivers/atarisy4.c
@@ -1047,5 +1047,5 @@ MACHINE_RESET_MEMBER(atarisy4_state,airrace)
*
*************************************/
-GAME( 1984, laststar, 0, atarisy4, atarisy4, atarisy4_state, laststar, ROT0, "Atari Games", "The Last Starfighter (prototype)", GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND_HW )
-GAME( 1985, airrace, 0, airrace, atarisy4, atarisy4_state, airrace, ROT0, "Atari Games", "Air Race (prototype)", GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND_HW )
+GAME( 1984, laststar, 0, atarisy4, atarisy4, atarisy4_state, laststar, ROT0, "Atari Games", "The Last Starfighter (prototype)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND_HW )
+GAME( 1985, airrace, 0, airrace, atarisy4, atarisy4_state, airrace, ROT0, "Atari Games", "Air Race (prototype)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND_HW )
diff --git a/src/mame/drivers/atarittl.c b/src/mame/drivers/atarittl.c
index 6ae411bcf5f..b58b2b44a22 100644
--- a/src/mame/drivers/atarittl.c
+++ b/src/mame/drivers/atarittl.c
@@ -23,7 +23,7 @@
TM-015 Cocktail Pong/Coup Franc (1974) ??????? NO
TM-048 Crash 'N Score/Stock Car (1975) A004256 YES 003186(x2), 003187(x2), 004248, 004247
TM-030 Crossfire (1975) ??????? NO?
- TM-003,005,011,020 Gran Trak 10/Trak 10/Formula K/Race Circuit (1974) A000872,A000872 K3RT YES 74186 Racetrack Prom (K5)
+ TM-003,005,011,020 Gran Trak 10/Trak 10/Formula K (1974) A000872,A000872 K3RT YES 74186 Racetrack Prom (K5)
TM-004,021 Gran Trak 20/Trak 20/Twin Racer (1974) A001791(RT20),A001793(A20-K4DRTA) YES 74186 Racetrack prom (K5)
TM-006,035 Goal 4/World Cup/Coupe De Monde (1975) A000823 NO
TM-016 Gotcha/Gotcha Color? (1973) A000816 NO
@@ -31,13 +31,13 @@
TM-055 Indy 4 (1976) A003000,A006268,A006270 YES 003186, 003187, 005502-01, 05503-01
TM-026 Indy 800 (1975) A003000,A003170,A003182 YES 003186-003189 (4)
A003184,A003191,A003198,A003199
- TM-027 Jet Fighter/Jet Fighter Cocktail/Launch Aircraft (1975) A004254,A004255 YES 004250-004252, 004253-01 to 03 (3)
+ TM-027,052 Jet Fighter/Jet Fighter Cocktail/Launch Aircraft (1975) A004254,A004255 YES 004250-004252, 004253-01 to 03 (3)
TM-077 LeMans (1976) A005844,A005845 YES 005837-01, 005838-01, 005839-01
TM-040 Outlaw (1976) A003213 YES 003323 - ROM (8205 @ J4)
TM-007 Pin Pong (1974) A001660 NO
TM-013 Pong/Super Pong (1972) A001433,A000423 NO
TM-014 Pong Doubles/Coupe Davis (1974) A000785 NO
- TM-018 Pursuit (1975) K8P-B 90128 NO
+ TM-019 Pursuit (1975) K8P-B 90128 NO
TM-012,022,034 Quadrapong/Elimination (1974) A000845 NO
TM-009 Qwak!/Quack (1974) A000937,A000953 YES 72074/37-2530N (K9)
TM-001,032 Rebound/Volleyball (1974) A000517,A000846 NO
@@ -52,7 +52,7 @@
- Not Known to be released or produced, but at least announced.
TM-0?? Arcade Driver/Driver First Person (Not Produced/Released) (197?)
- TM-0?? Dodgeball/Dodgem (Not Produced/Released) (1975)
+ TM-018 Dodgeball/Dodgem (Not Produced/Released) (1975)
TM-024 Qwakers (Not Produced/Released) (1974?)
TM-017 World Cup Football (Not Produced/Released) (1974)
@@ -416,35 +416,35 @@ ROM_END
-GAME(1975, antiairc, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Anti-Aircraft [TTL]", GAME_IS_SKELETON)
-GAME(1975, crashnsc, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Crash 'n Score/Stock Car [TTL]", GAME_IS_SKELETON)
-GAME(1976, indy4, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Indy 4 [TTL]", GAME_IS_SKELETON)
-GAME(1975, indy800, 0, atarikee, 0, driver_device, 0, ROT90, "Atari/Kee", "Indy 800 [TTL]", GAME_IS_SKELETON)
-GAME(1975, jetfight, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Jet Fighter/Jet Fighter Cocktail/Launch Aircraft (set 1) [TTL]", GAME_IS_SKELETON)
-GAME(1975, jetfighta, jetfight, atarikee, 0, driver_device, 0, ROT0, "Atari", "Jet Fighter/Jet Fighter Cocktail/Launch Aircraft (set 2) [TTL]", GAME_IS_SKELETON)
-GAME(1976, outlaw, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Outlaw [TTL]", GAME_IS_SKELETON)
-GAME(1975, sharkjaw, 0, atarikee, 0, driver_device, 0, ROT0, "Atari/Horror Games", "Shark JAWS [TTL]",GAME_IS_SKELETON)
-GAME(1975, steeplec, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Steeplechase [TTL]", GAME_IS_SKELETON)
-GAME(1976, stuntcyc, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Stunt Cycle [TTL]", GAME_IS_SKELETON)
-GAME(1974, tank, 0, atarikee, 0, driver_device, 0, ROT0, "Atari/Kee", "Tank/Tank Cocktail/Tank II [TTL]", GAME_IS_SKELETON)
+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", "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, atarikee, 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/Tank II [TTL]", MACHINE_IS_SKELETON)
// MISSING ROM DUMPS
-//GAME(1975, astrotrf, steeplec, atarikee, 0, driver_device, 0, ROT0, "Atari", "Astroturf [TTL]", GAME_IS_SKELETON)
-//GAME(1974, gtrak10, 0, atarikee, 0, driver_device, 0, ROT0, "Atari/Kee", "Gran Trak 10/Trak 10/Formula K/Race Circuit [TTL]", GAME_IS_SKELETON) //?
-//GAME(1974, gtrak20, 0, atarikee, 0, driver_device, 0, ROT0, "Atari/Kee", "Gran Trak 20/Trak 20/Twin Racer [TTL]", GAME_IS_SKELETON) //?
-//GAME(1976, lemans, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "LeMans [TTL]", GAME_IS_SKELETON)
-//GAME(1974, quack, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Qwak!/Quack [TTL]", GAME_IS_SKELETON)
+//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", "LeMans [TTL]", MACHINE_IS_SKELETON)
+//GAME(1974, quack, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Qwak!/Quack [TTL]", MACHINE_IS_SKELETON)
// 100% TTL
-//GAME(1974, coupedem, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Coupe De Monde [TTL]", GAME_IS_SKELETON)
-//GAME(1975, crossfir, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Crossfire [TTL]", GAME_IS_SKELETON)
-//GAME(1975, goal4, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Goal 4/World Cup/Coupe De Monde [TTL]", GAME_IS_SKELETON)
-//GAME(1973, gotchaat, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Gotcha [TTL]", GAME_IS_SKELETON) //?
-//GAME(1973, gotchaatc, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Gotcha Color [TTL]", GAME_IS_SKELETON) //?
-//GAME(1975, highway, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Highway/Hiway [TTL]", GAME_IS_SKELETON)
-//GAME(1974, pinpong, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Pin Pong [TTL]", GAME_IS_SKELETON)
-//GAME(1975, pursuit, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Pursuit [TTL]", GAME_IS_SKELETON)
-//GAME(1973, quadpong, 0, atarikee, 0, driver_device, 0, ROT0, "Atari/Kee", "Quadrapong/Elimination [TTL]", GAME_IS_SKELETON)
-//GAME(1974, rebound, 0, atarikee, 0, driver_device, 0, ROT0, "Atari/Kee", "Rebound/Spike/Volleyball [TTL]", GAME_IS_SKELETON)
-//GAME(1974, spacrace, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Space Race [TTL]", GAME_IS_SKELETON)
-//GAME(1974, touchme, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Touch Me [TTL]", GAME_IS_SKELETON) //?
+//GAME(1974, coupedem, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Coupe De Monde [TTL]", MACHINE_IS_SKELETON)
+//GAME(1975, crossfir, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Crossfire [TTL]", MACHINE_IS_SKELETON)
+//GAME(1975, goal4, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Goal 4/World Cup/Coupe De Monde [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, highway, 0, atarikee, 0, driver_device, 0, ROT0, "Atari", "Highway/Hiway [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(1973, quadpong, 0, atarikee, 0, driver_device, 0, ROT0, "Atari/Kee", "Quadrapong/Elimination [TTL]", MACHINE_IS_SKELETON)
+//GAME(1974, rebound, 0, atarikee, 0, driver_device, 0, ROT0, "Atari/Kee", "Rebound/Spike/Volleyball [TTL]", MACHINE_IS_SKELETON)
+//GAME(1974, 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) //?
diff --git a/src/mame/drivers/atetris.c b/src/mame/drivers/atetris.c
index 08f12e6a93a..76a157c57a7 100644
--- a/src/mame/drivers/atetris.c
+++ b/src/mame/drivers/atetris.c
@@ -557,10 +557,10 @@ DRIVER_INIT_MEMBER(atetris_state,atetris)
*
*************************************/
-GAME( 1988, atetris, 0, atetris, atetris, atetris_state, atetris, ROT0, "Atari Games", "Tetris (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1988, atetrisa, atetris, atetris, atetris, atetris_state, atetris, ROT0, "Atari Games", "Tetris (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1988, atetrisb, atetris, atetris, atetris, atetris_state, atetris, ROT0, "bootleg", "Tetris (bootleg set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1988, atetrisb2,atetris, atetrisb2, atetris, atetris_state, atetris, ROT0, "bootleg", "Tetris (bootleg set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1988, atetrisb3,atetris, atetrisb3, atetris, atetris_state, atetris, ROT0, "bootleg", "Tetris (bootleg set 3)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1989, atetrisc, atetris, atetris, atetrisc, atetris_state, atetris, ROT270, "Atari Games", "Tetris (cocktail set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1989, atetrisc2,atetris, atetris, atetrisc, atetris_state, atetris, ROT270, "Atari Games", "Tetris (cocktail set 2)", GAME_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.c b/src/mame/drivers/atlantis.c
index eb10a109bfb..70312ac53fd 100644
--- a/src/mame/drivers/atlantis.c
+++ b/src/mame/drivers/atlantis.c
@@ -253,6 +253,6 @@ DRIVER_INIT_MEMBER(atlantis_state,mwskins)
*
*************************************/
-GAME( 2000, mwskins, 0, mwskins, mwskins, atlantis_state, mwskins, ROT0, "Midway", "Skins Game (1.06)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 2000, mwskinsa, mwskins, mwskins, mwskins, atlantis_state, mwskins, ROT0, "Midway", "Skins Game (1.06, alt)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 2000, mwskinso, mwskins, mwskins, mwskins, atlantis_state, mwskins, ROT0, "Midway", "Skins Game (1.04)", GAME_NOT_WORKING | GAME_NO_SOUND )
+GAME( 2000, mwskins, 0, mwskins, mwskins, atlantis_state, mwskins, ROT0, "Midway", "Skins Game (1.06)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 2000, mwskinsa, mwskins, mwskins, mwskins, atlantis_state, mwskins, ROT0, "Midway", "Skins Game (1.06, alt)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 2000, mwskinso, mwskins, mwskins, mwskins, atlantis_state, mwskins, ROT0, "Midway", "Skins Game (1.04)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mess/drivers/atm.c b/src/mame/drivers/atm.c
index 7f76fea6e8a..300f503d90e 100644
--- a/src/mess/drivers/atm.c
+++ b/src/mame/drivers/atm.c
@@ -242,7 +242,7 @@ ROM_START( atmtb2 )
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", GAME_NOT_WORKING)
-//COMP( 1991, atmtb1, spec128, 0, atm, spec_plus, driver_device, 0, "MicroART", "ATM-turbo1", GAME_NOT_WORKING)
-COMP( 1993, atmtb2, spec128, 0, atmtb2, spec_plus, driver_device, 0, "MicroART", "ATM-turbo2", GAME_NOT_WORKING)
-//COMP( 1994, turbo2, spec128, 0, atm, spec_plus, driver_device, 0, "MicroART", "TURBO 2+", GAME_NOT_WORKING)
+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)
diff --git a/src/mess/drivers/atom.c b/src/mame/drivers/atom.c
index 88d142d15c4..9403c7c62e5 100644
--- a/src/mess/drivers/atom.c
+++ b/src/mame/drivers/atom.c
@@ -247,7 +247,7 @@ READ8_MEMBER( atomeb_state::dos_r )
static ADDRESS_MAP_START( atom_mem, AS_PROGRAM, 8, atom_state )
AM_RANGE(0x0000, 0x09ff) AM_RAM
- AM_RANGE(0x0a00, 0x0a03) AM_MIRROR(0x1f8) AM_DEVREADWRITE(I8271_TAG, i8271_device, read, write)
+ AM_RANGE(0x0a00, 0x0a03) AM_MIRROR(0x1f8) AM_DEVICE(I8271_TAG, i8271_device, map)
AM_RANGE(0x0a04, 0x0a04) AM_MIRROR(0x1f8) AM_DEVREADWRITE(I8271_TAG, i8271_device, data_r, data_w)
AM_RANGE(0x0a05, 0x7fff) AM_RAM
AM_RANGE(0x8000, 0x97ff) AM_RAM AM_SHARE("video_ram")
@@ -583,30 +583,11 @@ WRITE_LINE_MEMBER( atom_state::atom_8271_interrupt_callback )
m_previous_i8271_int_state = state;
}
-/*-------------------------------------------------
- LEGACY_FLOPPY_OPTIONS( atom )
--------------------------------------------------*/
-
-static LEGACY_FLOPPY_OPTIONS_START( atom )
- LEGACY_FLOPPY_OPTION(atom, "dsk,40t", "Atom disk image", basicdsk_identify_default, basicdsk_construct_default, NULL,
- HEADS([1])
- TRACKS([40])
- SECTORS([10])
- SECTOR_LENGTH([256])
- FIRST_SECTOR_ID([0]))
-LEGACY_FLOPPY_OPTIONS_END
-
-/*-------------------------------------------------
- floppy_interface atom_floppy_interface
--------------------------------------------------*/
-
-static const floppy_interface atom_floppy_interface =
+WRITE_LINE_MEMBER( atom_state::motor_w )
{
- FLOPPY_STANDARD_5_25_SSDD_40,
- LEGACY_FLOPPY_OPTIONS_NAME(atom),
- "floppy_5_25"
-};
-
+ m_fdc->subdevice<floppy_connector>("0")->get_device()->mon_w(!state);
+ m_fdc->subdevice<floppy_connector>("1")->get_device()->mon_w(!state);
+}
TIMER_DEVICE_CALLBACK_MEMBER(atom_state::cassette_output_tick)
{
@@ -687,6 +668,13 @@ int atom_state::load_cart(device_image_interface &image, generic_slot_device *sl
return IMAGE_INIT_PASS;
}
+static SLOT_INTERFACE_START(atom_floppies)
+ SLOT_INTERFACE("525sssd", FLOPPY_525_SSSD)
+SLOT_INTERFACE_END
+
+FLOPPY_FORMATS_MEMBER(atom_state::floppy_formats)
+ FLOPPY_ATOM_FORMAT
+FLOPPY_FORMATS_END
/*-------------------------------------------------
MACHINE_DRIVER( atom )
@@ -722,10 +710,11 @@ static MACHINE_CONFIG_START( atom, atom_state )
MCFG_I8255_IN_PORTC_CB(READ8(atom_state, ppi_pc_r))
MCFG_I8255_OUT_PORTC_CB(WRITE8(atom_state, ppi_pc_w))
- MCFG_DEVICE_ADD(I8271_TAG, I8271, 0)
+ MCFG_DEVICE_ADD(I8271_TAG, I8271 , 0)
MCFG_I8271_IRQ_CALLBACK(WRITELINE(atom_state, atom_8271_interrupt_callback))
- MCFG_I8271_FLOPPIES(FLOPPY_0, FLOPPY_1)
- MCFG_LEGACY_FLOPPY_2_DRIVES_ADD(atom_floppy_interface)
+ MCFG_I8271_HDL_CALLBACK(WRITELINE(atom_state, motor_w))
+ MCFG_FLOPPY_DRIVE_ADD(I8271_TAG ":0", atom_floppies, "525sssd", atom_state::floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD(I8271_TAG ":1", atom_floppies, "525sssd", atom_state::floppy_formats)
MCFG_CENTRONICS_ADD(CENTRONICS_TAG, centronics_devices, "printer")
MCFG_CENTRONICS_ACK_HANDLER(DEVWRITELINE(R6522_TAG, via6522_device, write_ca1))
diff --git a/src/mame/drivers/atronic.c b/src/mame/drivers/atronic.c
index 0e2c6489431..f366fab1187 100644
--- a/src/mame/drivers/atronic.c
+++ b/src/mame/drivers/atronic.c
@@ -814,33 +814,33 @@ ROM_END
-GAME( 1999, atronic, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Atronic SetUp/Clear Chips (Russia, set 1)", GAME_IS_SKELETON)
-GAME( 1999, atronica, atronic, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Atronic SetUp/Clear Chips (Russia, set 2)", GAME_IS_SKELETON)
-
-GAME( 2002, atlantca, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Atlantica (Russia) (Atronic) (set 1)", GAME_IS_SKELETON)
-GAME( 2002, atlantcaa, atlantca, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Atlantica (Russia) (Atronic) (set 2)", GAME_IS_SKELETON)
-GAME( 2002, baboshka, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Baboshka (Russia) (Atronic)", GAME_IS_SKELETON)
-GAME( 2002, cfblue, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Crazy Fruits Blue (Russia) (Atronic) (set 1)", GAME_IS_SKELETON)
-GAME( 2002, cfbluea, cfblue, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Crazy Fruits Blue (Russia) (Atronic) (set 2)", GAME_IS_SKELETON)
-GAME( 2002, cfgreen, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Crazy Fruits Green (Russia) (Atronic)", GAME_IS_SKELETON)
-GAME( 2002, chicken, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Chicken (Russia) (Atronic)", GAME_IS_SKELETON)
-GAME( 2002, aclown, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Clown (Russia) (Atronic)", GAME_IS_SKELETON)
-GAME( 2002, goldglen, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Golden Glenn (Russia) (Atronic)", GAME_IS_SKELETON)
-GAME( 2002, iccash, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "I C Cash (Russia) (Atronic)", GAME_IS_SKELETON)
-GAME( 2002, shpinxii, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Sphinx II (Russia) (Atronic)", GAME_IS_SKELETON)
-GAME( 2002, bearnec, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Bear Necessities (Russia) (Atronic)", GAME_IS_SKELETON)
-GAME( 2002, beachpt, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Beach Patrol (Russia) (Atronic)", GAME_IS_SKELETON)
-GAME( 2002, beetleup, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Beetles Unplugged (Russia) (Atronic)", GAME_IS_SKELETON)
-GAME( 2002, abigchs, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Big Cheese (Russia) (Atronic)", GAME_IS_SKELETON)
-GAME( 2002, bigblue, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Big Blue (Russia) (Atronic)", GAME_IS_SKELETON)
-GAME( 2002, castaway, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Castaway (Russia) (Atronic) (set 1)", GAME_IS_SKELETON)
-GAME( 2002, castawaya, castaway, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Castaway (Russia) (Atronic) (set 2)", GAME_IS_SKELETON)
-GAME( 2002, dncsprt, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Dancing Spirit (Russia) (Atronic)", GAME_IS_SKELETON)
-GAME( 2002, drmmake, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Dream Maker (Russia) (Atronic)", GAME_IS_SKELETON)
-GAME( 2002, goldcity, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Gold City (Russia) (Atronic)", GAME_IS_SKELETON)
-GAME( 2002, jumpjkpt, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Jumping Jackpots (Russia) (Atronic)", GAME_IS_SKELETON)
-GAME( 2002, mushmagi, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Mushroom Magic (Russia) (Atronic)", GAME_IS_SKELETON)
-GAME( 2002, santam, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Santa Maria (Russia) (Atronic)", GAME_IS_SKELETON)
-GAME( 2002, splmastr, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Spell Master (Russia) (Atronic)", GAME_IS_SKELETON)
-GAME( 2002, tajmah, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Tajmahal (Russia) (Atronic)", GAME_IS_SKELETON)
-GAME( 2002, 3wishrd, 0, atronic, atronic, driver_device, 0, ROT0, "Atronic", "Three Wishes Red (Russia) (Atronic)", GAME_IS_SKELETON)
+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)
diff --git a/src/mess/drivers/attache.c b/src/mame/drivers/attache.c
index 6d587ac48e5..223a60d82f1 100644
--- a/src/mess/drivers/attache.c
+++ b/src/mame/drivers/attache.c
@@ -988,27 +988,10 @@ ROM_START( attache )
ROM_FILL(0x0000,0x10000,0x00)
ROM_REGION(0x1000, "boot", 0)
- ROM_LOAD("u252revg.bin", 0x0000, 0x1000, CRC(113136b7) SHA1(845afd9ed2fd2b28c39921d8f2ba99e5295e0330) )
-
- ROM_REGION(0x1000, "video", 0)
- ROM_LOAD("u416vid.bin", 0x0000, 0x1000, CRC(e376ec59) SHA1(7b9e9db575e77ce2f479eb9ae913528e4f0d125d) )
-
- ROM_REGION(0x100, "attr", 0)
- ROM_LOAD("u413.bin", 0x0000, 0x0100, CRC(5b60e622) SHA1(43450c747db1394466eabe5c26a61bf75a4f3b52) )
-
- ROM_REGION(0x200, "iosel", 0)
- ROM_LOAD("u110.bin", 0x0000, 0x0200, CRC(70dd255a) SHA1(36dcce07a2c14eefc069433459c422341bd47efb) )
-
- ROM_REGION(0x100, "floppy", 0)
- ROM_LOAD("u630.bin", 0x0000, 0x0100, CRC(f7a5c821) SHA1(fea07d9ac7e4e5f4f72aa7b2159deaedbd662ead) )
-ROM_END
-
-ROM_START( attachef )
- ROM_REGION(0x10000, "maincpu", 0)
- ROM_FILL(0x0000,0x10000,0x00)
-
- ROM_REGION(0x1000, "boot", 0)
- ROM_LOAD("u252revf.bin", 0x0000, 0x1000, CRC(b49eb3b2) SHA1(5b1b348301b2f76b1f250ba68bb8733fc15d18c2) )
+ ROM_SYSTEM_BIOS(0, "u252revg", "Boot Rev.G")
+ ROMX_LOAD("u252revg.bin", 0x0000, 0x1000, CRC(113136b7) SHA1(845afd9ed2fd2b28c39921d8f2ba99e5295e0330), ROM_BIOS(1))
+ ROM_SYSTEM_BIOS(1, "u252revf", "Boot Rev.F")
+ ROMX_LOAD("u252revf.bin", 0x0000, 0x1000, CRC(b49eb3b2) SHA1(5b1b348301b2f76b1f250ba68bb8733fc15d18c2), ROM_BIOS(2))
ROM_REGION(0x1000, "video", 0)
ROM_LOAD("u416vid.bin", 0x0000, 0x1000, CRC(e376ec59) SHA1(7b9e9db575e77ce2f479eb9ae913528e4f0d125d) )
@@ -1024,5 +1007,4 @@ ROM_START( attachef )
ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT DEVICE INIT COMPANY FULLNAME FLAGS */
-COMP( 1982, attache, 0, 0, attache, attache, driver_device, 0, "Otrona", "Attache (boot rev G)", GAME_IMPERFECT_GRAPHICS|GAME_NOT_WORKING)
-COMP( 1982, attachef,attache,0, attache, attache, driver_device, 0, "Otrona", "Attache (boot rev F)", GAME_IMPERFECT_GRAPHICS|GAME_NOT_WORKING)
+COMP( 1982, attache, 0, 0, attache, attache, driver_device, 0, "Otrona", "Attach\xC3\xA9", MACHINE_IMPERFECT_GRAPHICS|MACHINE_NOT_WORKING)
diff --git a/src/mame/drivers/attckufo.c b/src/mame/drivers/attckufo.c
index 9714df9fb24..3a099bf917f 100644
--- a/src/mame/drivers/attckufo.c
+++ b/src/mame/drivers/attckufo.c
@@ -172,4 +172,4 @@ ROM_START( attckufo )
ROM_LOAD( "8", 0x3c00, 0x0400, CRC(9ce93eb0) SHA1(68753e88db4e920446b9582b5cb713b1beec3b27) )
ROM_END
-GAME( 1980, attckufo, 0, attckufo, attckufo, driver_device, 0, ROT270, "Ryoto Electric Co.", "Attack Ufo", GAME_SUPPORTS_SAVE )
+GAME( 1980, attckufo, 0, attckufo, attckufo, driver_device, 0, ROT270, "Ryoto Electric Co.", "Attack Ufo", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/atvtrack.c b/src/mame/drivers/atvtrack.c
index 4f03012a798..6a9b1da99e8 100644
--- a/src/mame/drivers/atvtrack.c
+++ b/src/mame/drivers/atvtrack.c
@@ -595,8 +595,8 @@ ROM_START( smashdrv )
// ic21 unpopulated
ROM_END
-GAME( 2002, atvtrack, 0, atvtrack, atvtrack, driver_device, 0, ROT0, "Gaelco", "ATV Track (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 2002, atvtracka, atvtrack, atvtrack, atvtrack, driver_device, 0, ROT0, "Gaelco", "ATV Track (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND )
+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 )
// almost identical PCB, FlashROM mapping and master registers addresses different
-GAME( 2000, smashdrv, 0, smashdrv, atvtrack, driver_device, 0, ROT0, "Gaelco", "Smashing Drive", GAME_NOT_WORKING | GAME_NO_SOUND )
+GAME( 2000, smashdrv, 0, smashdrv, atvtrack, driver_device, 0, ROT0, "Gaelco", "Smashing Drive", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/aussiebyte.c b/src/mame/drivers/aussiebyte.c
new file mode 100644
index 00000000000..4980be8204d
--- /dev/null
+++ b/src/mame/drivers/aussiebyte.c
@@ -0,0 +1,574 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+/*************************************************************************************************
+
+ The Aussie Byte II Single-Board Computer, created by SME Systems, Melbourne, Australia.
+ Also known as the Knight 2000 Microcomputer.
+
+ Status:
+ Boots up from floppy.
+ Output to serial terminal and to 6545 are working. Serial keyboard works.
+
+ Developed in conjunction with members of the MSPP. Written in July, 2015.
+
+ ToDo:
+ - CRT8002 attributes controller
+ - Graphics
+ - Hard drive controllers and drives
+ - Test Centronics printer
+ - PIO connections
+ - RTC not working
+
+ Note of MAME restrictions:
+ - Votrax doesn't sound anything like the real thing
+ - WD1001/WD1002 device is not emulated
+ - CRT8002 device is not emulated
+
+**************************************************************************************************/
+
+/***********************************************************
+
+ Includes
+
+************************************************************/
+#include "includes/aussiebyte.h"
+
+
+/***********************************************************
+
+ Address Maps
+
+************************************************************/
+
+static ADDRESS_MAP_START( aussiebyte_map, AS_PROGRAM, 8, aussiebyte_state )
+ AM_RANGE(0x0000, 0x3fff) AM_READ_BANK("bankr0") AM_WRITE_BANK("bankw0")
+ AM_RANGE(0x4000, 0x7fff) AM_RAMBANK("bank1")
+ AM_RANGE(0x8000, 0xbfff) AM_RAMBANK("bank2")
+ AM_RANGE(0xc000, 0xffff) AM_RAM AM_REGION("mram", 0x0000)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( aussiebyte_io, AS_IO, 8, aussiebyte_state )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
+ ADDRESS_MAP_UNMAP_HIGH
+ AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("sio1", z80sio0_device, ba_cd_r, ba_cd_w)
+ 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(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
+ AM_RANGE(0x17, 0x17) AM_WRITE(port17_w) // DMA mux
+ AM_RANGE(0x18, 0x18) AM_WRITE(port18_w) // fdc select
+ AM_RANGE(0x19, 0x19) AM_READ(port19_r) // info port
+ AM_RANGE(0x1a, 0x1a) AM_WRITE(port1a_w) // membank
+ AM_RANGE(0x1b, 0x1b) AM_WRITE(port1b_w) // winchester control
+ AM_RANGE(0x1c, 0x1f) AM_WRITE(port1c_w) // gpebh select
+ AM_RANGE(0x20, 0x23) AM_DEVREADWRITE("pio2", z80pio_device, read, write)
+ AM_RANGE(0x24, 0x27) AM_DEVREADWRITE("sio2", z80sio0_device, ba_cd_r, ba_cd_w)
+ AM_RANGE(0x28, 0x28) AM_READ(port28_r) AM_DEVWRITE("votrax", votrax_sc01_device, write)
+ AM_RANGE(0x2c, 0x2c) AM_DEVWRITE("votrax", votrax_sc01_device, inflection_w)
+ AM_RANGE(0x30, 0x30) AM_WRITE(address_w)
+ AM_RANGE(0x31, 0x31) AM_DEVREAD("crtc", mc6845_device, status_r)
+ AM_RANGE(0x32, 0x32) AM_WRITE(register_w)
+ AM_RANGE(0x33, 0x33) AM_READ(port33_r)
+ AM_RANGE(0x34, 0x34) AM_WRITE(port34_w) // video control
+ AM_RANGE(0x35, 0x35) AM_WRITE(port35_w) // data to vram and aram
+ AM_RANGE(0x36, 0x36) AM_READ(port36_r) // data from vram and aram
+ AM_RANGE(0x37, 0x37) AM_READ(port37_r) // read dispen flag
+ AM_RANGE(0x40, 0x4f) AM_DEVREADWRITE("rtc", msm5832_device, data_r, data_w)
+ADDRESS_MAP_END
+
+/***********************************************************
+
+ Keyboard
+
+************************************************************/
+static INPUT_PORTS_START( aussiebyte )
+INPUT_PORTS_END
+
+/***********************************************************
+
+ I/O Ports
+
+************************************************************/
+WRITE8_MEMBER( aussiebyte_state::port15_w )
+{
+ membank("bankr0")->set_entry(m_port15); // point at ram
+ m_port15 = true;
+}
+
+/* FDD select
+0 Drive Select bit O
+1 Drive Select bit 1
+2 Drive Select bit 2
+3 Drive Select bit 3
+ - These bits connect to a 74LS145 binary to BCD converter.
+ - Drives 0 to 3 are 5.25 inch, 4 to 7 are 8 inch, 9 and 0 are not used.
+ - Currently we only support drive 0.
+4 Side Select to Disk Drives.
+5 Disable 5.25 inch floppy spindle motors.
+6 Unused.
+7 Enable write precompensation on WD2797 controller. */
+WRITE8_MEMBER( aussiebyte_state::port16_w )
+{
+ floppy_image_device *m_floppy = NULL;
+ if ((data & 15) == 0)
+ m_floppy = m_floppy0->get_device();
+ else
+ if ((data & 15) == 1)
+ m_floppy = m_floppy1->get_device();
+
+ m_fdc->set_floppy(m_floppy);
+
+ if (m_floppy)
+ {
+ m_floppy->mon_w(BIT(data, 5));
+ m_floppy->ss_w(BIT(data, 4));
+ }
+}
+
+/* DMA select
+0 - FDC
+1 - SIO Ch A
+2 - SIO Ch B
+3 - Winchester bus
+4 - SIO Ch C
+5 - SIO Ch D
+6 - Ext ready 1
+7 - Ext ready 2 */
+WRITE8_MEMBER( aussiebyte_state::port17_w )
+{
+ m_port17 = data & 7;
+ m_dma->rdy_w(BIT(m_port17_rdy, data));
+}
+
+/* FDC params
+2 EXC: WD2797 clock frequency. H = 5.25"; L = 8"
+3 WIEN: WD2797 Double density select. */
+WRITE8_MEMBER( aussiebyte_state::port18_w )
+{
+ m_fdc->set_unscaled_clock(BIT(data, 2) ? 1e6 : 2e6);
+ m_fdc->dden_w(BIT(data, 3));
+}
+
+READ8_MEMBER( aussiebyte_state::port19_r )
+{
+ return m_port19;
+}
+
+// Memory banking
+WRITE8_MEMBER( aussiebyte_state::port1a_w )
+{
+ data &= 7;
+ switch (data)
+ {
+ case 0:
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ m_port1a = data*3+1;
+ if (m_port15)
+ membank("bankr0")->set_entry(data*3+1);
+ membank("bankw0")->set_entry(data*3+1);
+ membank("bank1")->set_entry(data*3+2);
+ membank("bank2")->set_entry(data*3+3);
+ break;
+ case 5:
+ m_port1a = 1;
+ if (m_port15)
+ membank("bankr0")->set_entry(1);
+ membank("bankw0")->set_entry(1);
+ membank("bank1")->set_entry(2);
+ membank("bank2")->set_entry(13);
+ break;
+ case 6:
+ m_port1a = 14;
+ if (m_port15)
+ membank("bankr0")->set_entry(14);
+ membank("bankw0")->set_entry(14);
+ membank("bank1")->set_entry(15);
+ //membank("bank2")->set_entry(0); // open bus
+ break;
+ case 7:
+ m_port1a = 1;
+ if (m_port15)
+ membank("bankr0")->set_entry(1);
+ membank("bankw0")->set_entry(1);
+ membank("bank1")->set_entry(4);
+ membank("bank2")->set_entry(13);
+ break;
+ }
+}
+
+// Winchester control
+WRITE8_MEMBER( aussiebyte_state::port1b_w )
+{
+}
+
+// GPEHB control
+WRITE8_MEMBER( aussiebyte_state::port1c_w )
+{
+}
+
+WRITE8_MEMBER( aussiebyte_state::port20_w )
+{
+ m_speaker->level_w(BIT(data, 7));
+}
+
+READ8_MEMBER( aussiebyte_state::port28_r )
+{
+ return m_port28;
+}
+
+/***********************************************************
+
+ DMA
+
+************************************************************/
+READ8_MEMBER( aussiebyte_state::memory_read_byte )
+{
+ address_space& prog_space = m_maincpu->space(AS_PROGRAM);
+ return prog_space.read_byte(offset);
+}
+
+WRITE8_MEMBER( aussiebyte_state::memory_write_byte )
+{
+ address_space& prog_space = m_maincpu->space(AS_PROGRAM);
+ prog_space.write_byte(offset, data);
+}
+
+READ8_MEMBER( aussiebyte_state::io_read_byte )
+{
+ address_space& prog_space = m_maincpu->space(AS_IO);
+ return prog_space.read_byte(offset);
+}
+
+WRITE8_MEMBER( aussiebyte_state::io_write_byte )
+{
+ address_space& prog_space = m_maincpu->space(AS_IO);
+ prog_space.write_byte(offset, data);
+}
+
+WRITE_LINE_MEMBER( aussiebyte_state::busreq_w )
+{
+// since our Z80 has no support for BUSACK, we assume it is granted immediately
+ m_maincpu->set_input_line(Z80_INPUT_LINE_BUSRQ, state);
+ m_dma->bai_w(state); // tell dma that bus has been granted
+}
+
+/***********************************************************
+
+ DMA selector
+
+************************************************************/
+WRITE_LINE_MEMBER( aussiebyte_state::sio1_rdya_w )
+{
+ m_port17_rdy = (m_port17_rdy & 0xfd) | (UINT8)(state << 1);
+ if (m_port17 == 1)
+ m_dma->rdy_w(state);
+}
+
+WRITE_LINE_MEMBER( aussiebyte_state::sio1_rdyb_w )
+{
+ m_port17_rdy = (m_port17_rdy & 0xfb) | (UINT8)(state << 2);
+ if (m_port17 == 2)
+ m_dma->rdy_w(state);
+}
+
+WRITE_LINE_MEMBER( aussiebyte_state::sio2_rdya_w )
+{
+ m_port17_rdy = (m_port17_rdy & 0xef) | (UINT8)(state << 4);
+ if (m_port17 == 4)
+ m_dma->rdy_w(state);
+}
+
+WRITE_LINE_MEMBER( aussiebyte_state::sio2_rdyb_w )
+{
+ m_port17_rdy = (m_port17_rdy & 0xdf) | (UINT8)(state << 5);
+ if (m_port17 == 5)
+ m_dma->rdy_w(state);
+}
+
+
+/***********************************************************
+
+ Video
+
+************************************************************/
+
+/* F4 Character Displayer */
+static const gfx_layout crt8002_charlayout =
+{
+ 8, 12, /* 7 x 11 characters */
+ 128, /* 128 characters */
+ 1, /* 1 bits per pixel */
+ { 0 }, /* no bitplanes */
+ /* x offsets */
+ { 0, 1, 2, 3, 4, 5, 6, 7 },
+ /* y offsets */
+ { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 8*8, 9*8, 10*8, 11*8 },
+ 8*16 /* every char takes 16 bytes */
+};
+
+static GFXDECODE_START( crt8002 )
+ GFXDECODE_ENTRY( "chargen", 0x0000, crt8002_charlayout, 0, 1 )
+GFXDECODE_END
+
+/***************************************************************
+
+ Daisy Chain
+
+****************************************************************/
+
+static const z80_daisy_config daisy_chain_intf[] =
+{
+ { "dma" },
+ { "pio2" },
+ { "sio1" },
+ { "sio2" },
+ { "pio1" },
+ { "ctc" },
+ { NULL }
+};
+
+
+/***********************************************************
+
+ CTC
+
+************************************************************/
+
+// baud rate generator. All inputs are 1.2288MHz.
+TIMER_DEVICE_CALLBACK_MEMBER( aussiebyte_state::ctc_tick )
+{
+ m_ctc->trg0(1);
+ m_ctc->trg0(0);
+ m_ctc->trg1(1);
+ m_ctc->trg1(0);
+ m_ctc->trg2(1);
+ m_ctc->trg2(0);
+}
+
+WRITE_LINE_MEMBER( aussiebyte_state::ctc_z0_w )
+{
+ m_sio1->rxca_w(state);
+ m_sio1->txca_w(state);
+}
+
+WRITE_LINE_MEMBER( aussiebyte_state::ctc_z1_w )
+{
+ m_sio1->rxtxcb_w(state);
+ m_sio2->rxca_w(state);
+ m_sio2->txca_w(state);
+}
+
+WRITE_LINE_MEMBER( aussiebyte_state::ctc_z2_w )
+{
+ m_sio2->rxtxcb_w(state);
+ m_ctc->trg3(1);
+ m_ctc->trg3(0);
+}
+
+/***********************************************************
+
+ Centronics ack
+
+************************************************************/
+WRITE_LINE_MEMBER( aussiebyte_state::write_centronics_busy )
+{
+ m_centronics_busy = state;
+}
+
+/***********************************************************
+
+ Speech ack
+
+************************************************************/
+WRITE_LINE_MEMBER( aussiebyte_state::votrax_w )
+{
+ m_port28 = state;
+}
+
+
+/***********************************************************
+
+ Floppy Disk
+
+************************************************************/
+
+WRITE_LINE_MEMBER( aussiebyte_state::fdc_intrq_w )
+{
+ UINT8 data = (m_port19 & 0xbf) | (state ? 0x40 : 0);
+ m_port19 = data;
+}
+
+WRITE_LINE_MEMBER( aussiebyte_state::fdc_drq_w )
+{
+ UINT8 data = (m_port19 & 0x7f) | (state ? 0x80 : 0);
+ m_port19 = data;
+ state ^= 1; // inverter on pin38 of fdc
+ m_port17_rdy = (m_port17_rdy & 0xfe) | (UINT8)state;
+ if (m_port17 == 0)
+ m_dma->rdy_w(state);
+}
+
+static SLOT_INTERFACE_START( aussiebyte_floppies )
+ SLOT_INTERFACE( "drive0", FLOPPY_525_QD )
+ SLOT_INTERFACE( "drive1", FLOPPY_525_QD )
+SLOT_INTERFACE_END
+
+/***********************************************************
+
+ Machine Driver
+
+************************************************************/
+MACHINE_RESET_MEMBER( aussiebyte_state, aussiebyte )
+{
+ m_port15 = false;
+ m_port17 = 0;
+ m_port17_rdy = 0;
+ m_port1a = 1;
+ m_alpha_address = 0;
+ m_graph_address = 0;
+ m_p_chargen = memregion("chargen")->base();
+ m_p_videoram = memregion("vram")->base();
+ m_p_attribram = memregion("aram")->base();
+ membank("bankr0")->set_entry(16); // point at rom
+ membank("bankw0")->set_entry(1); // always write to ram
+ membank("bank1")->set_entry(2);
+ membank("bank2")->set_entry(3);
+ m_maincpu->reset();
+}
+
+static MACHINE_CONFIG_START( aussiebyte, aussiebyte_state )
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", Z80, XTAL_16MHz / 4)
+ MCFG_CPU_PROGRAM_MAP(aussiebyte_map)
+ MCFG_CPU_IO_MAP(aussiebyte_io)
+ MCFG_CPU_CONFIG(daisy_chain_intf)
+
+ MCFG_MACHINE_RESET_OVERRIDE(aussiebyte_state, aussiebyte )
+
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(50)
+ MCFG_SCREEN_SIZE(640, 480)
+ MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
+ MCFG_SCREEN_UPDATE_DEVICE("crtc", sy6545_1_device, screen_update)
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", crt8002)
+ MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette")
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
+ MCFG_DEVICE_ADD("votrax", VOTRAX_SC01, 720000) /* 720kHz? needs verify */
+ MCFG_VOTRAX_SC01_REQUEST_CB(WRITELINE(aussiebyte_state, votrax_w))
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
+
+ /* devices */
+ MCFG_CENTRONICS_ADD("centronics", centronics_devices, "printer")
+ MCFG_CENTRONICS_DATA_INPUT_BUFFER("cent_data_in")
+ MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(aussiebyte_state, write_centronics_busy))
+ MCFG_DEVICE_ADD("cent_data_in", INPUT_BUFFER, 0)
+ MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
+
+ MCFG_DEVICE_ADD("ctc", Z80CTC, XTAL_16MHz / 4)
+ MCFG_Z80CTC_INTR_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
+ MCFG_Z80CTC_ZC0_CB(WRITELINE(aussiebyte_state, ctc_z0_w)) // SIO1 Ch A
+ MCFG_Z80CTC_ZC1_CB(WRITELINE(aussiebyte_state, ctc_z1_w)) // SIO1 Ch B, SIO2 Ch A
+ MCFG_Z80CTC_ZC2_CB(WRITELINE(aussiebyte_state, ctc_z2_w)) // SIO2 Ch B, CTC Ch 3
+
+ MCFG_DEVICE_ADD("dma", Z80DMA, XTAL_16MHz / 4)
+ MCFG_Z80DMA_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
+ MCFG_Z80DMA_OUT_BUSREQ_CB(WRITELINE(aussiebyte_state, busreq_w))
+ // BAO, not used
+ MCFG_Z80DMA_IN_MREQ_CB(READ8(aussiebyte_state, memory_read_byte))
+ MCFG_Z80DMA_OUT_MREQ_CB(WRITE8(aussiebyte_state, memory_write_byte))
+ MCFG_Z80DMA_IN_IORQ_CB(READ8(aussiebyte_state, io_read_byte))
+ MCFG_Z80DMA_OUT_IORQ_CB(WRITE8(aussiebyte_state, io_write_byte))
+
+ MCFG_DEVICE_ADD("pio1", Z80PIO, XTAL_16MHz / 4)
+ MCFG_Z80PIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
+ MCFG_Z80PIO_OUT_PA_CB(DEVWRITE8("cent_data_out", output_latch_device, write))
+ MCFG_Z80PIO_IN_PB_CB(DEVREAD8("cent_data_in", input_buffer_device, read))
+ MCFG_Z80PIO_OUT_ARDY_CB(DEVWRITELINE("centronics", centronics_device, write_strobe)) MCFG_DEVCB_INVERT
+
+ MCFG_DEVICE_ADD("pio2", Z80PIO, XTAL_16MHz / 4)
+ MCFG_Z80PIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
+ MCFG_Z80PIO_OUT_PA_CB(WRITE8(aussiebyte_state, port20_w))
+
+ MCFG_Z80SIO0_ADD("sio1", XTAL_16MHz / 4, 0, 0, 0, 0)
+ MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
+ MCFG_Z80DART_OUT_WRDYA_CB(WRITELINE(aussiebyte_state, sio1_rdya_w))
+ MCFG_Z80DART_OUT_WRDYB_CB(WRITELINE(aussiebyte_state, sio1_rdyb_w))
+
+ MCFG_Z80SIO0_ADD("sio2", XTAL_16MHz / 4, 0, 0, 0, 0)
+ MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
+ MCFG_Z80DART_OUT_WRDYA_CB(WRITELINE(aussiebyte_state, sio2_rdya_w))
+ MCFG_Z80DART_OUT_WRDYB_CB(WRITELINE(aussiebyte_state, sio2_rdyb_w))
+ MCFG_Z80DART_OUT_TXDA_CB(DEVWRITELINE("rs232", rs232_port_device, write_txd))
+ MCFG_Z80DART_OUT_DTRA_CB(DEVWRITELINE("rs232", rs232_port_device, write_dtr))
+ MCFG_Z80DART_OUT_RTSA_CB(DEVWRITELINE("rs232", rs232_port_device, write_rts))
+
+ MCFG_RS232_PORT_ADD("rs232", default_rs232_devices, "keyboard")
+ MCFG_RS232_RXD_HANDLER(DEVWRITELINE("sio2", z80sio0_device, rxa_w))
+
+ MCFG_WD2797_ADD("fdc", XTAL_16MHz / 16)
+ MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(aussiebyte_state, fdc_intrq_w))
+ MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(aussiebyte_state, fdc_drq_w))
+ MCFG_FLOPPY_DRIVE_ADD("fdc:0", aussiebyte_floppies, "drive0", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
+ MCFG_FLOPPY_DRIVE_ADD("fdc:1", aussiebyte_floppies, "drive1", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
+
+ /* devices */
+ MCFG_MC6845_ADD("crtc", SY6545_1, "screen", XTAL_16MHz / 8)
+ MCFG_MC6845_SHOW_BORDER_AREA(false)
+ MCFG_MC6845_CHAR_WIDTH(8)
+ MCFG_MC6845_UPDATE_ROW_CB(aussiebyte_state, crtc_update_row)
+ MCFG_MC6845_ADDR_CHANGED_CB(aussiebyte_state, crtc_update_addr)
+
+ MCFG_MSM5832_ADD("rtc", XTAL_32_768kHz)
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("ctc_tick", aussiebyte_state, ctc_tick, attotime::from_hz(XTAL_4_9152MHz / 4))
+MACHINE_CONFIG_END
+
+
+DRIVER_INIT_MEMBER( aussiebyte_state, aussiebyte )
+{
+ // Main ram is divided into 16k blocks (0-15). The boot rom is block number 16.
+ // For convenience, bank 0 is permanently assigned to C000-FFFF
+ UINT8 *main = memregion("roms")->base();
+ UINT8 *ram = memregion("mram")->base();
+
+ membank("bankr0")->configure_entries(0, 16, &ram[0x0000], 0x4000);
+ membank("bankw0")->configure_entries(0, 16, &ram[0x0000], 0x4000);
+ membank("bank1")->configure_entries(0, 16, &ram[0x0000], 0x4000);
+ membank("bank2")->configure_entries(0, 16, &ram[0x0000], 0x4000);
+ membank("bankr0")->configure_entry(16, &main[0x0000]);
+}
+
+
+/***********************************************************
+
+ Game driver
+
+************************************************************/
+
+
+ROM_START(aussieby)
+ ROM_REGION(0x4000, "roms", 0) // Size of bank 16
+ ROM_LOAD( "knight_boot_0000.u27", 0x0000, 0x1000, CRC(1f200437) SHA1(80d1d208088b325c16a6824e2da605fb2b00c2ce) )
+
+ ROM_REGION(0x800, "chargen", 0)
+ ROM_LOAD( "8002.bin", 0x0000, 0x0800, CRC(fdd6eb13) SHA1(a094d416e66bdab916e72238112a6265a75ca690) )
+
+ ROM_REGION(0x40000, "mram", ROMREGION_ERASE00) // main ram, 256k dynamic
+ ROM_REGION(0x10000, "vram", ROMREGION_ERASEFF) // video ram, 64k dynamic
+ ROM_REGION(0x00800, "aram", ROMREGION_ERASEFF) // attribute ram, 2k static
+ROM_END
+
+/* 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.c b/src/mame/drivers/avalnche.c
index 8b3f2f97019..6fa16e5616e 100644
--- a/src/mame/drivers/avalnche.c
+++ b/src/mame/drivers/avalnche.c
@@ -324,6 +324,6 @@ ROM_END
*
*************************************/
-GAMEL( 1978, avalnche, 0, avalnche, avalnche, driver_device, 0, ROT0, "Atari", "Avalanche", GAME_SUPPORTS_SAVE, layout_avalnche )
-GAMEL( 1978, cascade, avalnche, avalnche, cascade, driver_device, 0, ROT0, "bootleg? (Sidam)", "Cascade", GAME_SUPPORTS_SAVE, layout_avalnche )
-GAME ( 1977, catchp, 0, catch, catch, driver_device, 0, ROT0, "Atari", "Catch (prototype)", GAME_SUPPORTS_SAVE | GAME_NO_SOUND ) // pre-production board, evolved into Avalanche
+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
diff --git a/src/mess/drivers/avigo.c b/src/mame/drivers/avigo.c
index 6f5de43c06b..f9730f56c90 100644
--- a/src/mess/drivers/avigo.c
+++ b/src/mame/drivers/avigo.c
@@ -1010,8 +1010,8 @@ ROM_START(avigo_it)
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", GAME_SUPPORTS_SAVE)
-COMP(1997, avigo_de, avigo, 0, avigo, avigo, driver_device, 0, "Texas Instruments", "TI Avigo 10 PDA (German)", GAME_SUPPORTS_SAVE)
-COMP(1997, avigo_fr, avigo, 0, avigo, avigo, driver_device, 0, "Texas Instruments", "TI Avigo 10 PDA (French)", GAME_SUPPORTS_SAVE)
-COMP(1997, avigo_es, avigo, 0, avigo, avigo, driver_device, 0, "Texas Instruments", "TI Avigo 10 PDA (Spanish)", GAME_SUPPORTS_SAVE)
-COMP(1997, avigo_it, avigo, 0, avigo, avigo, driver_device, 0, "Texas Instruments", "TI Avigo 10 PDA (Italian)", GAME_SUPPORTS_SAVE)
+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)
diff --git a/src/mame/drivers/avt.c b/src/mame/drivers/avt.c
index e4a9ec8fa8d..552245ff1d6 100644
--- a/src/mame/drivers/avt.c
+++ b/src/mame/drivers/avt.c
@@ -962,7 +962,7 @@ ROM_END
*********************************************/
/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS */
-GAME( 1985, avtsym14, 0, avt, symbols, driver_device, 0, ROT0, "Advanced Video Technology", "Symbols (ver 1.4)", GAME_NOT_WORKING )
-GAME( 1985, avtsym25, avtsym14, avt, symbols, driver_device, 0, ROT0, "Advanced Video Technology", "Symbols (ver 2.5)", GAME_NOT_WORKING )
-GAME( 1985, avtbingo, 0, avt, symbols, driver_device, 0, ROT0, "Advanced Video Technology", "Arrow Bingo", GAME_NOT_WORKING )
-GAME( 1989, avtnfl, 0, avt, symbols, driver_device, 0, ROT0, "Advanced Video Technology", "NFL (ver 109)", GAME_NOT_WORKING )
+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, symbols, 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 )
diff --git a/src/mess/drivers/ax20.c b/src/mame/drivers/ax20.c
index 9e8ec2268e0..d5025a92952 100644
--- a/src/mess/drivers/ax20.c
+++ b/src/mame/drivers/ax20.c
@@ -155,4 +155,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1982, ax20, 0, 0, ax20, ax20, driver_device, 0, "Axel", "AX-20", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/aztarac.c b/src/mame/drivers/aztarac.c
index 76f0b68896e..b427530a3de 100644
--- a/src/mame/drivers/aztarac.c
+++ b/src/mame/drivers/aztarac.c
@@ -220,4 +220,4 @@ ROM_END
*
*************************************/
-GAME( 1983, aztarac, 0, aztarac, aztarac, driver_device, 0, ROT0, "Centuri", "Aztarac", GAME_SUPPORTS_SAVE )
+GAME( 1983, aztarac, 0, aztarac, aztarac, driver_device, 0, ROT0, "Centuri", "Aztarac", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/b16.c b/src/mame/drivers/b16.c
index f228e15b80c..64904bff3c6 100644
--- a/src/mess/drivers/b16.c
+++ b/src/mame/drivers/b16.c
@@ -309,4 +309,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1983, b16, 0, 0, b16, b16, driver_device, 0, "Hitachi", "B16", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/b2m.c b/src/mame/drivers/b2m.c
index 724dfb4fadf..99a3b03ccd6 100644
--- a/src/mess/drivers/b2m.c
+++ b/src/mame/drivers/b2m.c
@@ -269,5 +269,5 @@ 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", GAME_SUPPORTS_SAVE)
-COMP( 1989, b2mrom, b2m, 0, b2mrom, b2m, b2m_state, b2m, "BNPO", "Bashkiria-2M ROM-disk", GAME_SUPPORTS_SAVE)
+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/mess/drivers/babbage.c b/src/mame/drivers/babbage.c
index b20bbd574df..e89bd9b3e75 100644
--- a/src/mess/drivers/babbage.c
+++ b/src/mame/drivers/babbage.c
@@ -275,4 +275,4 @@ 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" , GAME_NO_SOUND_HW )
+COMP( 1986, babbage, 0, 0, babbage, babbage, driver_device, 0, "Mr Takafumi Aihara", "Babbage-2nd" , MACHINE_NO_SOUND_HW )
diff --git a/src/mame/drivers/backfire.c b/src/mame/drivers/backfire.c
index b029c8a5c41..fdeddfbbde8 100644
--- a/src/mame/drivers/backfire.c
+++ b/src/mame/drivers/backfire.c
@@ -726,5 +726,5 @@ DRIVER_INIT_MEMBER(backfire_state,backfire)
m_maincpu->space(AS_PROGRAM).install_read_handler(0x0170018, 0x017001b, read32_delegate(FUNC(backfire_state::backfire_speedup_r), this));
}
-GAME( 1995, backfire, 0, backfire, backfire, backfire_state, backfire, ROT0, "Data East Corporation", "Backfire! (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1995, backfirea, backfire, backfire, backfire, backfire_state, backfire, ROT0, "Data East Corporation", "Backfire! (set 2)", GAME_SUPPORTS_SAVE ) // defaults to wheel controls, must change to joystick to play
+GAME( 1995, backfire, 0, backfire, backfire, backfire_state, backfire, ROT0, "Data East Corporation", "Backfire! (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, backfirea, backfire, backfire, backfire, backfire_state, backfire, ROT0, "Data East Corporation", "Backfire! (set 2)", MACHINE_SUPPORTS_SAVE ) // defaults to wheel controls, must change to joystick to play
diff --git a/src/mame/drivers/badlands.c b/src/mame/drivers/badlands.c
index a2064425a86..0159c213cdc 100644
--- a/src/mame/drivers/badlands.c
+++ b/src/mame/drivers/badlands.c
@@ -810,5 +810,5 @@ ROM_END
-GAME( 1989, badlandsb, badlands, badlandsb, badlandsb, driver_device, 0, ROT0, "bootleg (Playmark)", "Bad Lands (bootleg)", GAME_NOT_WORKING )
-GAME( 1989, badlandsb2,badlands, badlandsb, badlandsb, driver_device, 0, ROT0, "bootleg (Playmark)", "Bad Lands (bootleg, alternate)", GAME_NOT_WORKING )
+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 )
diff --git a/src/mame/drivers/bagman.c b/src/mame/drivers/bagman.c
index fec12b9f626..0d2f28aab57 100644
--- a/src/mame/drivers/bagman.c
+++ b/src/mame/drivers/bagman.c
@@ -993,19 +993,19 @@ DRIVER_INIT_MEMBER(bagman_state,bagman)
}
-GAME( 1982, bagman, 0, bagman, bagman, bagman_state, bagman, ROT270, "Valadon Automation", "Bagman", GAME_SUPPORTS_SAVE )
-GAME( 1982, bagnard, bagman, bagman, bagman, bagman_state, bagman, ROT270, "Valadon Automation", "Le Bagnard (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1982, bagnarda, bagman, bagman, bagman, bagman_state, bagman, ROT270, "Valadon Automation", "Le Bagnard (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1982, bagnardi, bagman, bagman, bagman, bagman_state, bagman, ROT90, "Valadon Automation (Itisa license)", "Le Bagnard (Itisa, Spain)", GAME_SUPPORTS_SAVE )
-GAME( 1982, bagmans, bagman, bagman, bagmans, bagman_state, bagman, ROT270, "Valadon Automation (Stern Electronics license)", "Bagman (Stern Electronics, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1982, bagmans2, bagman, bagman, bagman, bagman_state, bagman, ROT270, "Valadon Automation (Stern Electronics license)", "Bagman (Stern Electronics, set 2)", GAME_SUPPORTS_SAVE )
+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( 1984, sbagman, 0, bagman, sbagman, driver_device, 0, ROT270, "Valadon Automation", "Super Bagman", GAME_SUPPORTS_SAVE )
-GAME( 1984, sbagmans, sbagman, bagman, sbagman, driver_device, 0, ROT270, "Valadon Automation (Stern Electronics license)", "Super Bagman (Stern Electronics)", GAME_SUPPORTS_SAVE )
+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( 1983, pickin, 0, pickin, pickin, driver_device, 0, ROT270, "Valadon Automation", "Pickin'", GAME_SUPPORTS_SAVE )
+GAME( 1983, pickin, 0, pickin, pickin, driver_device, 0, ROT270, "Valadon Automation", "Pickin'", MACHINE_SUPPORTS_SAVE )
-GAME( 1983, botanic, 0, botanic, botanici,driver_device, 0, ROT90, "Itisa", "Botanic (English / Spanish)", GAME_SUPPORTS_SAVE )
-GAME( 1984, botanicf, botanic, botanic, botanicf,driver_device, 0, ROT270, "Itisa (Valadon Automation license)", "Botanic (French)", GAME_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( 1984, squaitsa, 0, squaitsa,squaitsa, driver_device,0, ROT0, "Itisa", "Squash (Itisa)", GAME_SUPPORTS_SAVE )
+GAME( 1984, squaitsa, 0, squaitsa,squaitsa, driver_device,0, ROT0, "Itisa", "Squash (Itisa)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/bailey.c b/src/mame/drivers/bailey.c
index 9ba1600648f..54800fbe8ff 100644
--- a/src/mame/drivers/bailey.c
+++ b/src/mame/drivers/bailey.c
@@ -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]", GAME_IS_SKELETON )
-GAME( 1976, fun4a, fun4, bailey, 0, driver_device, 0, ROT0, "Bailey International", "Fun Four (set 2) [TTL]", GAME_IS_SKELETON )
+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 )
diff --git a/src/mame/drivers/balsente.c b/src/mame/drivers/balsente.c
index 879d8b0cc03..64bad2a1f6b 100644
--- a/src/mame/drivers/balsente.c
+++ b/src/mame/drivers/balsente.c
@@ -2236,52 +2236,52 @@ DRIVER_INIT_MEMBER(balsente_state,shrike)
*************************************/
/* Board: Unknown */
-GAME( 1984, sentetst, 0, balsente, sentetst, balsente_state, sentetst, ROT0, "Bally/Sente", "Sente Diagnostic Cartridge", GAME_SUPPORTS_SAVE )
-GAME( 1984, cshift, 0, balsente, cshift, balsente_state, cshift, ROT0, "Bally/Sente", "Chicken Shift", GAME_SUPPORTS_SAVE )
-GAME( 1984, gghost, 0, balsente, gghost, balsente_state, gghost, ROT0, "Bally/Sente", "Goalie Ghost", GAME_SUPPORTS_SAVE )
+GAME( 1984, sentetst, 0, balsente, sentetst, balsente_state, sentetst, ROT0, "Bally/Sente", "Sente Diagnostic Cartridge", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, cshift, 0, balsente, cshift, balsente_state, cshift, ROT0, "Bally/Sente", "Chicken Shift", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, gghost, 0, balsente, gghost, balsente_state, gghost, ROT0, "Bally/Sente", "Goalie Ghost", MACHINE_SUPPORTS_SAVE )
/* Board: 006-8003-01-0D Rev D */
-GAME( 1984, hattrick, 0, balsente, hattrick, balsente_state, hattrick, ROT0, "Bally/Sente", "Hat Trick", GAME_SUPPORTS_SAVE )
-GAME( 1984, trivia12, triviag1, balsente, triviag1, balsente_state, triviag1, ROT0, "Bally/Sente", "Trivial Pursuit (Think Tank - Genus Edition) (12/14/84)", GAME_SUPPORTS_SAVE )
+GAME( 1984, hattrick, 0, balsente, hattrick, balsente_state, hattrick, ROT0, "Bally/Sente", "Hat Trick", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, trivia12, triviag1, balsente, triviag1, balsente_state, triviag1, ROT0, "Bally/Sente", "Trivial Pursuit (Think Tank - Genus Edition) (12/14/84)", MACHINE_SUPPORTS_SAVE )
/* Board: Unknown (From a picture on eBay Snacks'n Jaxson does not match any documented types here.) */
-GAME( 1984, otwalls, 0, balsente, otwalls, balsente_state, otwalls, ROT0, "Bally/Sente", "Off the Wall (Sente)", GAME_SUPPORTS_SAVE )
-GAME( 1984, snakepit, 0, balsente, sentetst, balsente_state, snakepit, ROT0, "Bally/Sente", "Snake Pit", GAME_SUPPORTS_SAVE )
-GAME( 1984, snakepit2,snakepit, balsente, sentetst, balsente_state, snakepit, ROT0, "Sente Technologies Inc.", "Snake Pit (9/14/84)", GAME_SUPPORTS_SAVE ) // 1984, even though titlescreen says 1983
-GAME( 1984, snakjack, 0, balsente, snakjack, balsente_state, snakjack, ROT0, "Bally/Sente", "Snacks'n Jaxson", GAME_SUPPORTS_SAVE )
+GAME( 1984, otwalls, 0, balsente, otwalls, balsente_state, otwalls, ROT0, "Bally/Sente", "Off the Wall (Sente)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, snakepit, 0, balsente, sentetst, balsente_state, snakepit, ROT0, "Bally/Sente", "Snake Pit", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, snakepit2,snakepit, balsente, sentetst, balsente_state, snakepit, ROT0, "Sente Technologies Inc.", "Snake Pit (9/14/84)", MACHINE_SUPPORTS_SAVE ) // 1984, even though titlescreen says 1983
+GAME( 1984, snakjack, 0, balsente, snakjack, balsente_state, snakjack, ROT0, "Bally/Sente", "Snacks'n Jaxson", MACHINE_SUPPORTS_SAVE )
/* Board: 006-8025-01-0B Rev B */
-GAMEL(1984, stocker, 0, balsente, stocker, balsente_state, stocker, ROT0, "Bally/Sente", "Stocker (3/19/85)", GAME_SUPPORTS_SAVE, layout_stocker ) // date from ROM chips
-GAME( 1985, gimeabrk, 0, balsente, gimeabrk, balsente_state, gimeabrk, ROT0, "Bally/Sente", "Gimme A Break (7/7/85)", GAME_SUPPORTS_SAVE )
-GAME( 1985, minigolf, 0, balsente, minigolf, balsente_state, minigolf, ROT0, "Bally/Sente", "Mini Golf (11/25/85)", GAME_SUPPORTS_SAVE )
-GAME( 1985, minigolf2,minigolf, balsente, minigolf2, balsente_state,minigolf2,ROT0, "Bally/Sente", "Mini Golf (10/8/85)", GAME_SUPPORTS_SAVE )
-GAME( 1984, triviabb, 0, balsente, triviag1, balsente_state, triviag2, ROT0, "Bally/Sente", "Trivial Pursuit (Baby Boomer Edition) (3/20/85)", GAME_SUPPORTS_SAVE )
+GAMEL(1984, stocker, 0, balsente, stocker, balsente_state, stocker, ROT0, "Bally/Sente", "Stocker (3/19/85)", MACHINE_SUPPORTS_SAVE, layout_stocker ) // date from ROM chips
+GAME( 1985, gimeabrk, 0, balsente, gimeabrk, balsente_state, gimeabrk, ROT0, "Bally/Sente", "Gimme A Break (7/7/85)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, minigolf, 0, balsente, minigolf, balsente_state, minigolf, ROT0, "Bally/Sente", "Mini Golf (11/25/85)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, minigolf2,minigolf, balsente, minigolf2, balsente_state,minigolf2,ROT0, "Bally/Sente", "Mini Golf (10/8/85)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, triviabb, 0, balsente, triviag1, balsente_state, triviag2, ROT0, "Bally/Sente", "Trivial Pursuit (Baby Boomer Edition) (3/20/85)", MACHINE_SUPPORTS_SAVE )
/* Board: Unknown */
-GAME( 1984, triviag1, 0, balsente, triviag1, balsente_state, triviag1, ROT0, "Bally/Sente", "Trivial Pursuit (Think Tank - Genus Edition) (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1984, triviag2, 0, balsente, triviag1, balsente_state, triviag2, ROT0, "Bally/Sente", "Trivial Pursuit (Genus II Edition)", GAME_SUPPORTS_SAVE )
-GAME( 1984, triviasp, 0, balsente, triviag1, balsente_state, triviag2, ROT0, "Bally/Sente", "Trivial Pursuit (All Star Sports Edition)", GAME_SUPPORTS_SAVE )
-GAME( 1984, triviayp, 0, balsente, triviag1, balsente_state, triviag2, ROT0, "Bally/Sente", "Trivial Pursuit (Young Players Edition)", GAME_SUPPORTS_SAVE )
-GAME( 1987, triviaes, 0, balsente, triviaes, balsente_state, triviaes, ROT0, "Bally/Sente", "Trivial Pursuit (Spanish)", GAME_SUPPORTS_SAVE )
-GAME( 1985, toggle, 0, balsente, toggle, balsente_state, toggle, ROT0, "Bally/Sente", "Toggle (prototype)", GAME_SUPPORTS_SAVE )
-GAME( 1986, nametune, 0, balsente, nametune, balsente_state, nametune, ROT0, "Bally/Sente", "Name That Tune (set 1)", GAME_SUPPORTS_SAVE )
+GAME( 1984, triviag1, 0, balsente, triviag1, balsente_state, triviag1, ROT0, "Bally/Sente", "Trivial Pursuit (Think Tank - Genus Edition) (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, triviag2, 0, balsente, triviag1, balsente_state, triviag2, ROT0, "Bally/Sente", "Trivial Pursuit (Genus II Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, triviasp, 0, balsente, triviag1, balsente_state, triviag2, ROT0, "Bally/Sente", "Trivial Pursuit (All Star Sports Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, triviayp, 0, balsente, triviag1, balsente_state, triviag2, ROT0, "Bally/Sente", "Trivial Pursuit (Young Players Edition)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, triviaes, 0, balsente, triviaes, balsente_state, triviaes, ROT0, "Bally/Sente", "Trivial Pursuit (Spanish)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, toggle, 0, balsente, toggle, balsente_state, toggle, ROT0, "Bally/Sente", "Toggle (prototype)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, nametune, 0, balsente, nametune, balsente_state, nametune, ROT0, "Bally/Sente", "Name That Tune (set 1)", MACHINE_SUPPORTS_SAVE )
/* Board: 006-8030-01-0A Rev A */
-GAME( 1986, nametune2,nametune, balsente, nametune, balsente_state, nametune, ROT0, "Bally/Sente", "Name That Tune (3/23/86)", GAME_SUPPORTS_SAVE )
+GAME( 1986, nametune2,nametune, balsente, nametune, balsente_state, nametune, ROT0, "Bally/Sente", "Name That Tune (3/23/86)", MACHINE_SUPPORTS_SAVE )
/* Board: 006-8027-01-0B Rev B */
-GAME( 1986, nstocker, 0, balsente, nstocker, balsente_state, nstocker, ROT0, "Bally/Sente", "Night Stocker (10/6/86)", GAME_SUPPORTS_SAVE )
-GAME( 1986, nstocker2,nstocker, balsente, nstocker, balsente_state, nstocker, ROT0, "Bally/Sente", "Night Stocker (8/27/86)", GAME_SUPPORTS_SAVE )
-GAME( 1986, sfootbal, 0, balsente, sfootbal, balsente_state, sfootbal, ROT0, "Bally/Sente", "Street Football (11/12/86)", GAME_SUPPORTS_SAVE )
-GAME( 1986, spiker, 0, balsente, spiker, balsente_state, spiker, ROT0, "Bally/Sente", "Spiker", GAME_SUPPORTS_SAVE )
-GAME( 1986, spiker2, spiker, balsente, spiker, balsente_state, spiker, ROT0, "Bally/Sente", "Spiker (5/5/86)", GAME_SUPPORTS_SAVE )
-GAME( 1986, spiker3, spiker, balsente, spiker, balsente_state, spiker, ROT0, "Bally/Sente", "Spiker (6/9/86)", GAME_SUPPORTS_SAVE )
-GAME( 1986, stompin, 0, balsente, stompin, balsente_state, stompin, ROT0, "Bally/Sente", "Stompin' (4/4/86)", GAME_SUPPORTS_SAVE )
+GAME( 1986, nstocker, 0, balsente, nstocker, balsente_state, nstocker, ROT0, "Bally/Sente", "Night Stocker (10/6/86)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, nstocker2,nstocker, balsente, nstocker, balsente_state, nstocker, ROT0, "Bally/Sente", "Night Stocker (8/27/86)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, sfootbal, 0, balsente, sfootbal, balsente_state, sfootbal, ROT0, "Bally/Sente", "Street Football (11/12/86)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, spiker, 0, balsente, spiker, balsente_state, spiker, ROT0, "Bally/Sente", "Spiker", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, spiker2, spiker, balsente, spiker, balsente_state, spiker, ROT0, "Bally/Sente", "Spiker (5/5/86)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, spiker3, spiker, balsente, spiker, balsente_state, spiker, ROT0, "Bally/Sente", "Spiker (6/9/86)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, stompin, 0, balsente, stompin, balsente_state, stompin, ROT0, "Bally/Sente", "Stompin' (4/4/86)", MACHINE_SUPPORTS_SAVE )
/* Board: A084-91889-A000 (Not a cartridge, but dedicated board) */
-GAME( 1987, rescraid, 0, balsente, rescraid, balsente_state, rescraid, ROT0, "Bally Midway", "Rescue Raider (5/11/87) (non-cartridge)", GAME_SUPPORTS_SAVE )
+GAME( 1987, rescraid, 0, balsente, rescraid, balsente_state, rescraid, ROT0, "Bally Midway", "Rescue Raider (5/11/87) (non-cartridge)", MACHINE_SUPPORTS_SAVE )
/* Board: Unknown */
-GAME( 1986, shrike, 0, shrike, shrike, balsente_state, shrike, ROT0, "Bally/Sente", "Shrike Avenger (prototype)", GAME_SUPPORTS_SAVE )
-GAME( 1987, rescraida,rescraid, balsente, rescraid, balsente_state, rescraid, ROT0, "Bally Midway", "Rescue Raider (stand-alone)", GAME_SUPPORTS_SAVE )
-GAME( 198?, grudge, 0, balsente, grudge, balsente_state, grudge, ROT0, "Bally Midway", "Grudge Match (prototype)", GAME_SUPPORTS_SAVE )
+GAME( 1986, shrike, 0, shrike, shrike, balsente_state, shrike, ROT0, "Bally/Sente", "Shrike Avenger (prototype)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, rescraida,rescraid, balsente, rescraid, balsente_state, rescraid, ROT0, "Bally Midway", "Rescue Raider (stand-alone)", MACHINE_SUPPORTS_SAVE )
+GAME( 198?, grudge, 0, balsente, grudge, balsente_state, grudge, ROT0, "Bally Midway", "Grudge Match (prototype)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/banctec.c b/src/mame/drivers/banctec.c
index 809959c1645..4a25e665b67 100644
--- a/src/mess/drivers/banctec.c
+++ b/src/mame/drivers/banctec.c
@@ -130,4 +130,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+CONS( 1989, banctec, 0, 0, banctec, 0, driver_device, 0, "DALE Electronics", "BancTec ESeries Panel", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/bankp.c b/src/mame/drivers/bankp.c
index e5f88da087e..c26ddec4220 100644
--- a/src/mame/drivers/bankp.c
+++ b/src/mame/drivers/bankp.c
@@ -394,5 +394,5 @@ ROM_END
*
*************************************/
-GAME( 1984, bankp, 0, bankp, bankp, driver_device, 0, ROT0, "Sanritsu / Sega", "Bank Panic", GAME_SUPPORTS_SAVE )
-GAME( 1987, combh, 0, bankp, combh, driver_device, 0, ROT270, "Sanritsu / Sega", "Combat Hawk", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/barata.c b/src/mame/drivers/barata.c
index b5bde4e0f93..f41391919e8 100644
--- a/src/mame/drivers/barata.c
+++ b/src/mame/drivers/barata.c
@@ -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)", GAME_IMPERFECT_GRAPHICS )
+GAME( 2002, barata, 0, barata, barata, driver_device, 0, ROT0, "Eletro Matic Equipamentos Eletromec??nicos", "Dona Barata (early prototype)", MACHINE_IMPERFECT_GRAPHICS )
diff --git a/src/mame/drivers/bartop52.c b/src/mame/drivers/bartop52.c
index beca6acecda..62aa569b796 100644
--- a/src/mame/drivers/bartop52.c
+++ b/src/mame/drivers/bartop52.c
@@ -160,4 +160,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)", GAME_NOT_WORKING )
+GAME( 1983, barbball, 0, a5200, bartop52, driver_device, 0, ROT0, "Atari", "Barroom Baseball (prototype)", MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/basic52.c b/src/mame/drivers/basic52.c
index 16af655f2b0..c8369c8b5c5 100644
--- a/src/mess/drivers/basic52.c
+++ b/src/mame/drivers/basic52.c
@@ -154,5 +154,5 @@ 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", GAME_NO_SOUND_HW)
-COMP( 1985, basic31, basic52, 0, basic31, basic52, driver_device, 0, "Intel", "MCS BASIC 31", GAME_NO_SOUND_HW)
+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)
diff --git a/src/mame/drivers/batman.c b/src/mame/drivers/batman.c
index cf43ea1d7cb..00e1c69c5e6 100644
--- a/src/mame/drivers/batman.c
+++ b/src/mame/drivers/batman.c
@@ -306,4 +306,4 @@ ROM_END
*
*************************************/
-GAME( 1991, batman, 0, batman, batman, driver_device, 0, ROT0, "Atari Games", "Batman", GAME_SUPPORTS_SAVE )
+GAME( 1991, batman, 0, batman, batman, driver_device, 0, ROT0, "Atari Games", "Batman", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/battlane.c b/src/mame/drivers/battlane.c
index 622d0e46f04..bacf394c722 100644
--- a/src/mame/drivers/battlane.c
+++ b/src/mame/drivers/battlane.c
@@ -398,6 +398,6 @@ ROM_END
*
*************************************/
-GAME( 1986, battlane, 0, battlane, battlane, driver_device, 0, ROT90, "Technos Japan (Taito license)", "Battle Lane! Vol. 5 (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1986, battlane2, battlane, battlane, battlane, driver_device, 0, ROT90, "Technos Japan (Taito license)", "Battle Lane! Vol. 5 (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1986, battlane3, battlane, battlane, battlane, driver_device, 0, ROT90, "Technos Japan (Taito license)", "Battle Lane! Vol. 5 (set 3)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/battlera.c b/src/mame/drivers/battlera.c
index 00f9bcebbda..3ec503d7771 100644
--- a/src/mame/drivers/battlera.c
+++ b/src/mame/drivers/battlera.c
@@ -301,6 +301,6 @@ ROM_END
/******************************************************************************/
-GAME( 1988, battlera, 0, battlera, battlera, driver_device, 0, ROT0, "Data East Corporation", "Battle Rangers (World)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1988, bldwolf, battlera, battlera, battlera, driver_device, 0, ROT0, "Data East USA", "Bloody Wolf (US)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1988, bldwolfj, battlera, battlera, battlera, driver_device, 0, ROT0, "Data East Corporation", "Narazumono Sentoubutai Bloody Wolf (Japan)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/battlex.c b/src/mame/drivers/battlex.c
index 780a82477eb..49a7d78c2c5 100644
--- a/src/mame/drivers/battlex.c
+++ b/src/mame/drivers/battlex.c
@@ -334,4 +334,4 @@ DRIVER_INIT_MEMBER(battlex_state,battlex)
*
*************************************/
-GAME( 1982, battlex, 0, battlex, battlex, battlex_state, battlex, ROT180, "Omori Electric Co., Ltd.", "Battle Cross", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/battlnts.c b/src/mame/drivers/battlnts.c
index 6b2cb895589..d3596e2d1b5 100644
--- a/src/mame/drivers/battlnts.c
+++ b/src/mame/drivers/battlnts.c
@@ -217,13 +217,10 @@ void battlnts_state::machine_start()
m_rombank->configure_entries(0, 4, &ROM[0x10000], 0x4000);
save_item(NAME(m_spritebank));
- save_item(NAME(m_layer_colorbase));
}
void battlnts_state::machine_reset()
{
- m_layer_colorbase[0] = 0;
- m_layer_colorbase[1] = 0;
m_spritebank = 0;
}
@@ -376,9 +373,9 @@ ROM_END
*
*************************************/
-GAME( 1987, battlnts, 0, battlnts, battlnts, driver_device, 0, ROT90, "Konami", "Battlantis (program code G)", GAME_SUPPORTS_SAVE )
-GAME( 1987, battlntsa, battlnts, battlnts, battlnts, driver_device, 0, ROT90, "Konami", "Battlantis (program code F)", GAME_SUPPORTS_SAVE )
-GAME( 1987, battlntsj, battlnts, battlnts, battlnts, driver_device, 0, ROT90, "Konami", "Battlantis (Japan, program code E)", GAME_SUPPORTS_SAVE )
-GAME( 1987, rackemup, 0, battlnts, rackemup, driver_device, 0, ROT90, "Konami", "Rack 'em Up (program code L)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1987, thehustl, rackemup, battlnts, thehustl, driver_device, 0, ROT90, "Konami", "The Hustler (Japan, program code M)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1987, thehustlj, rackemup, battlnts, thehustl, driver_device, 0, ROT90, "Konami", "The Hustler (Japan, program code J)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/bbc.c b/src/mame/drivers/bbc.c
index 5dfce63e4ef..8438eb87289 100644
--- a/src/mess/drivers/bbc.c
+++ b/src/mame/drivers/bbc.c
@@ -48,7 +48,6 @@
#include "cpu/m6502/m6502.h"
#include "cpu/m6502/m65sc02.h"
#include "machine/6522via.h"
-#include "machine/mc146818.h" /* RTC & CMOS RAM */
#include "bus/centronics/ctronics.h"
#include "bus/econet/econet.h"
#include "sound/tms5220.h" /* Speech */
@@ -58,7 +57,6 @@
/* Devices */
#include "imagedev/flopdrv.h"
#include "formats/bbc_dsk.h"
-#include "formats/basicdsk.h"
#include "imagedev/cassette.h"
#include "formats/uef_cas.h"
#include "formats/csw_cas.h"
@@ -138,120 +136,120 @@ READ8_MEMBER(bbc_state::bbc_fe_r)
}
static ADDRESS_MAP_START( bbca_mem, AS_PROGRAM, 8, bbc_state )
- ADDRESS_MAP_UNMAP_HIGH /* Hardware marked with a # is not present in a Model A */
+ ADDRESS_MAP_UNMAP_HIGH /* Hardware marked with a # is not present in a Model A */
+
+ AM_RANGE(0x0000, 0x3fff) AM_READ_BANK("bank1") AM_WRITE(bbc_memorya1_w) /* 0000-3fff Regular Ram */
+ AM_RANGE(0x4000, 0x7fff) AM_READ_BANK("bank3") AM_WRITE(bbc_memoryb3_w) /* 4000-7fff Repeat of the Regular Ram */
+ AM_RANGE(0x8000, 0xbfff) AM_READ_BANK("bank4") AM_WRITE(bbc_memoryb4_w) /* 8000-bfff Paged ROM */
+ AM_RANGE(0xc000, 0xfbff) AM_READ_BANK("bank7") /* c000-fbff OS ROM */
+ AM_RANGE(0xfc00, 0xfdff) AM_NOP /* fc00-fdff FRED & JIM Pages */
+ /* fe00-feff SHEILA Address Page */
+ AM_RANGE(0xfe00, 0xfe00) AM_MIRROR(0x06) AM_DEVREADWRITE("mc6845", mc6845_device, status_r, address_w) /* fe00-fe07 6845 CRTC Video controller */
+ AM_RANGE(0xfe01, 0xfe01) AM_MIRROR(0x06) AM_DEVREADWRITE("mc6845", mc6845_device, register_r, register_w)
+ AM_RANGE(0xfe08, 0xfe08) AM_MIRROR(0x06) AM_DEVREADWRITE("acia6850", acia6850_device, status_r, control_w) /* fe08-fe0F 6850 ACIA Serial controller */
+ AM_RANGE(0xfe09, 0xfe09) AM_MIRROR(0x06) AM_DEVREADWRITE("acia6850", acia6850_device, data_r, data_w)
+ AM_RANGE(0xfe10, 0xfe17) AM_READWRITE(bbc_fe_r, bbc_SerialULA_w) /* fe10-fe17 Serial ULA Serial system chip */
+ AM_RANGE(0xfe18, 0xfe1f) AM_NOP /* fe18-fe1f INTOFF/STATID # ECONET Interrupt Off / ID No. */
+ AM_RANGE(0xfe20, 0xfe2f) AM_WRITE(bbc_videoULA_w) /* R: fe20-fe2f INTON # ECONET Interrupt On */
+ /* W: fe20-fe2f Video ULA Video system chip */
+ AM_RANGE(0xfe30, 0xfe3f) AM_READWRITE(bbc_fe_r, bbc_page_selecta_w) /* R: fe30-fe3f NC Not Connected */
+ /* W: fe30-fe3f 84LS161 Paged ROM selector */
+ AM_RANGE(0xfe40, 0xfe5f) AM_DEVREADWRITE("via6522_0", via6522_device, read, write) /* fe40-fe5f 6522 VIA SYSTEM VIA */
+ AM_RANGE(0xfe60, 0xfe7f) AM_NOP /* fe60-fe7f 6522 VIA # USER VIA */
+ AM_RANGE(0xfe80, 0xfe9f) AM_NOP /* fe80-fe9f 8271/1770 FDC # Floppy disc controller */
+ AM_RANGE(0xfea0, 0xfebf) AM_READ(bbc_fe_r) /* fea0-febf 68B54 ADLC # ECONET controller */
+ AM_RANGE(0xfec0, 0xfedf) AM_NOP /* fec0-fedf uPD7002 # Analogue to digital converter */
+ AM_RANGE(0xfee0, 0xfeff) AM_READ(bbc_fe_r) /* fee0-feff Tube ULA # Tube system interface */
+ AM_RANGE(0xff00, 0xffff) AM_ROM AM_REGION("os", 0x3f00) /* ff00-ffff OS Rom (continued) */
+ADDRESS_MAP_END
- AM_RANGE(0x0000, 0x3fff) AM_READ_BANK("bank1") AM_WRITE(bbc_memorya1_w) /* 0000-3fff Regular Ram */
- AM_RANGE(0x4000, 0x7fff) AM_READ_BANK("bank3") AM_WRITE(bbc_memoryb3_w) /* 4000-7fff Repeat of the Regular Ram */
- AM_RANGE(0x8000, 0xbfff) AM_READ_BANK("bank4") /* 8000-bfff Paged ROM */
- AM_RANGE(0xc000, 0xfbff) AM_READ_BANK("bank7") /* c000-fbff OS ROM */
- AM_RANGE(0xfc00, 0xfdff) AM_NOP /* fc00-fdff FRED & JIM Pages */
- /* fe00-feff Shiela Address Page */
- AM_RANGE(0xfe00, 0xfe07) AM_READWRITE(bbc_6845_r, bbc_6845_w) /* fe00-fe07 6845 CRTC Video controller */
- AM_RANGE(0xfe08, 0xfe08) AM_MIRROR(0x06) AM_DEVREADWRITE("acia6850", acia6850_device, status_r, control_w)
+
+static ADDRESS_MAP_START( bbc_base, AS_PROGRAM, 8, bbc_state )
+ ADDRESS_MAP_UNMAP_HIGH
+
+ AM_RANGE(0xc000, 0xfbff) AM_READ_BANK("bank7") /* c000-fbff OS ROM */
+ AM_RANGE(0xfc00, 0xfdff) AM_NOP /* fc00-fdff FRED & JIM Pages */
+ /* fe00-feff SHEILA Address Page */
+ AM_RANGE(0xfe00, 0xfe00) AM_MIRROR(0x06) AM_DEVREADWRITE("mc6845", mc6845_device, status_r, address_w) /* fe00-fe07 6845 CRTC Video controller */
+ AM_RANGE(0xfe01, 0xfe01) AM_MIRROR(0x06) AM_DEVREADWRITE("mc6845", mc6845_device, register_r, register_w)
+ AM_RANGE(0xfe08, 0xfe08) AM_MIRROR(0x06) AM_DEVREADWRITE("acia6850", acia6850_device, status_r, control_w) /* fe08-fe0F 6850 ACIA Serial controller */
AM_RANGE(0xfe09, 0xfe09) AM_MIRROR(0x06) AM_DEVREADWRITE("acia6850", acia6850_device, data_r, data_w)
- AM_RANGE(0xfe10, 0xfe17) AM_READWRITE(bbc_fe_r, bbc_SerialULA_w) /* fe10-fe17 Serial ULA Serial system chip */
- AM_RANGE(0xfe18, 0xfe1f) AM_NOP /* fe18-fe1f INTOFF/STATID # ECONET Interrupt Off / ID No. */
- AM_RANGE(0xfe20, 0xfe2f) AM_WRITE(bbc_videoULA_w) /* R: fe20-fe2f INTON # ECONET Interrupt On */
- /* W: fe20-fe2f Video ULA Video system chip */
- AM_RANGE(0xfe30, 0xfe3f) AM_READWRITE(bbc_fe_r, bbc_page_selecta_w) /* R: fe30-fe3f NC Not Connected */
- /* W: fe30-fe3f 84LS161 Paged ROM selector */
- AM_RANGE(0xfe40, 0xfe5f) AM_DEVREADWRITE("via6522_0", via6522_device, read, write) /* fe40-fe5f 6522 VIA SYSTEM VIA */
- AM_RANGE(0xfe60, 0xfe7f) AM_NOP /* fe60-fe7f 6522 VIA # USER VIA */
- AM_RANGE(0xfe80, 0xfe9f) AM_NOP /* fe80-fe9f 8271/1770 FDC # Floppy disc controller */
- AM_RANGE(0xfea0, 0xfebf) AM_READ(bbc_fe_r) /* fea0-febf 68B54 ADLC # ECONET controller */
- AM_RANGE(0xfec0, 0xfedf) AM_NOP /* fec0-fedf uPD7002 # Analogue to digital converter */
- AM_RANGE(0xfee0, 0xfeff) AM_READ(bbc_fe_r) /* fee0-feff Tube ULA # Tube system interface */
- AM_RANGE(0xff00, 0xffff) AM_ROM AM_REGION("os", 0x3f00) /* ff00-ffff OS Rom (continued) */
+ AM_RANGE(0xfe10, 0xfe17) AM_READWRITE(bbc_fe_r, bbc_SerialULA_w) /* fe10-fe17 Serial ULA Serial system chip */
+ AM_RANGE(0xfe18, 0xfe1f) AM_READ_PORT("S11") /* fe18-fe1f INTOFF/STATID ECONET Interrupt Off / ID No. */
+ AM_RANGE(0xfe20, 0xfe2f) AM_WRITE(bbc_videoULA_w) /* R: fe20-fe2f INTON ECONET Interrupt On */
+ /* W: fe20-fe2f Video ULA Video system chip */
+ AM_RANGE(0xfe40, 0xfe5f) AM_DEVREADWRITE("via6522_0", via6522_device, read, write) /* fe40-fe5f 6522 VIA SYSTEM VIA */
+ AM_RANGE(0xfe60, 0xfe7f) AM_DEVREADWRITE("via6522_1", via6522_device, read, write) /* fe60-fe7f 6522 VIA USER VIA */
+ /* fe80-fe9f FDC Floppy disc controller */
+ AM_RANGE(0xfea0, 0xfebf) AM_READ(bbc_fe_r) /* fea0-febf 68B54 ADLC ECONET controller */
+ AM_RANGE(0xfec0, 0xfedf) AM_DEVREADWRITE("upd7002", upd7002_device, read, write) /* fec0-fedf uPD7002 Analogue to digital converter */
+ AM_RANGE(0xfee0, 0xfeff) AM_READ(bbc_fe_r) /* fee0-feff Tube ULA Tube system interface */
+ AM_RANGE(0xff00, 0xffff) AM_ROM AM_REGION("os", 0x3f00) /* ff00-ffff OS ROM (continued) */
ADDRESS_MAP_END
static ADDRESS_MAP_START( bbcb_mem, AS_PROGRAM, 8, bbc_state )
- ADDRESS_MAP_UNMAP_HIGH
+ AM_RANGE(0x0000, 0x3fff) AM_READ_BANK("bank1") AM_WRITE(bbc_memorya1_w) /* 0000-3fff Regular Ram */
+ AM_RANGE(0x4000, 0x7fff) AM_READ_BANK("bank3") AM_WRITE(bbc_memoryb3_w) /* 4000-7fff Regular Ram */
+ AM_RANGE(0x8000, 0xbfff) AM_READ_BANK("bank4") AM_WRITE(bbc_memoryb4_w) /* 8000-bfff Paged ROM */
+ AM_RANGE(0xfe30, 0xfe3f) AM_READWRITE(bbc_fe_r, bbc_page_selectb_w) /* R: fe30-fe3f NC Not Connected */
+ /* W: fe30-fe3f 84LS161 Paged ROM selector */
+ AM_RANGE(0xfe80, 0xfe83) AM_DEVICE("i8271" , i8271_device, map) /* fe80-fe9f 8271 FDC Floppy disc controller */
+ AM_RANGE(0xfe84, 0xfe9f) AM_DEVREADWRITE("i8271", i8271_device, data_r, data_w) /* fe80-fe9f 8271 FDC Floppy disc controller */
+ AM_IMPORT_FROM(bbc_base)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START(bbcb1770_mem, AS_PROGRAM, 8, bbc_state)
AM_RANGE(0x0000, 0x3fff) AM_READ_BANK("bank1") AM_WRITE(bbc_memorya1_w) /* 0000-3fff Regular Ram */
- AM_RANGE(0x4000, 0x7fff) AM_READ_BANK("bank3") AM_WRITE(bbc_memoryb3_w) /* 4000-7fff Repeat of the Regular Ram */
+ AM_RANGE(0x4000, 0x7fff) AM_READ_BANK("bank3") AM_WRITE(bbc_memoryb3_w) /* 4000-7fff Regular Ram */
AM_RANGE(0x8000, 0xbfff) AM_READ_BANK("bank4") AM_WRITE(bbc_memoryb4_w) /* 8000-bfff Paged ROM */
- AM_RANGE(0xc000, 0xfbff) AM_READ_BANK("bank7") /* c000-fbff OS ROM */
- AM_RANGE(0xfc00, 0xfdff) AM_READWRITE(bbc_opus_read, bbc_opus_write) /* fc00-fdff OPUS Disc Controller */
- /* fe00-feff Shiela Address Page */
- AM_RANGE(0xfe00, 0xfe07) AM_READWRITE(bbc_6845_r, bbc_6845_w) /* fe00-fe07 6845 CRTC Video controller */
- AM_RANGE(0xfe08, 0xfe08) AM_MIRROR(0x06) AM_DEVREADWRITE("acia6850", acia6850_device, status_r, control_w)
- AM_RANGE(0xfe09, 0xfe09) AM_MIRROR(0x06) AM_DEVREADWRITE("acia6850", acia6850_device, data_r, data_w)
- AM_RANGE(0xfe10, 0xfe17) AM_READWRITE(bbc_fe_r, bbc_SerialULA_w) /* fe10-fe17 Serial ULA Serial system chip */
- AM_RANGE(0xfe18, 0xfe1f) AM_NOP /* fe18-fe1f INTOFF/STATID ECONET Interrupt Off / ID No. */
- AM_RANGE(0xfe20, 0xfe2f) AM_WRITE(bbc_videoULA_w) /* R: fe20-fe2f INTON ECONET Interrupt On */
- /* W: fe20-fe2f Video ULA Video system chip */
AM_RANGE(0xfe30, 0xfe3f) AM_READWRITE(bbc_fe_r, bbc_page_selectb_w) /* R: fe30-fe3f NC Not Connected */
/* W: fe30-fe3f 84LS161 Paged ROM selector */
- AM_RANGE(0xfe40, 0xfe5f) AM_DEVREADWRITE("via6522_0", via6522_device, read, write) /* fe40-fe5f 6522 VIA SYSTEM VIA */
- AM_RANGE(0xfe60, 0xfe7f) AM_DEVREADWRITE("via6522_1", via6522_device, read, write) /* fe60-fe7f 6522 VIA USER VIA */
- AM_RANGE(0xfe80, 0xfe9f) AM_READWRITE(bbc_disc_r, bbc_disc_w) /* fe80-fe9f 8271 FDC Floppy disc controller */
- AM_RANGE(0xfea0, 0xfebf) AM_READ(bbc_fe_r) /* fea0-febf 68B54 ADLC ECONET controller */
- AM_RANGE(0xfec0, 0xfedf) AM_DEVREADWRITE("upd7002", upd7002_device, read, write) /* fec0-fedf uPD7002 Analogue to digital converter */
- AM_RANGE(0xfee0, 0xfeff) AM_READ(bbc_fe_r) /* fee0-feff Tube ULA Tube system interface */
- AM_RANGE(0xff00, 0xffff) AM_ROM AM_REGION("os", 0x3f00) /* ff00-ffff OS Rom (continued) */
+ 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_IMPORT_FROM(bbc_base)
ADDRESS_MAP_END
static ADDRESS_MAP_START( bbcbp_mem, AS_PROGRAM, 8, bbc_state )
- ADDRESS_MAP_UNMAP_HIGH
-
AM_RANGE(0x0000, 0x2fff) AM_READ_BANK("bank1") AM_WRITE(bbc_memorybp1_w) /* 0000-2fff Regular Ram */
AM_RANGE(0x3000, 0x7fff) AM_READ_BANK("bank2") AM_WRITE(bbc_memorybp2_w) /* 3000-7fff Video/Shadow Ram */
AM_RANGE(0x8000, 0xafff) AM_READ_BANK("bank4") AM_WRITE(bbc_memorybp4_w) /* 8000-afff Paged ROM or 12K of SWRAM */
AM_RANGE(0xb000, 0xbfff) AM_READ_BANK("bank6") /* b000-bfff Rest of paged ROM area */
- AM_RANGE(0xc000, 0xfbff) AM_READ_BANK("bank7") /* c000-fbff OS ROM */
- AM_RANGE(0xfc00, 0xfdff) AM_NOP /* fc00-fdff FRED & JIM Pages */
- /* fe00-feff Shiela Address Page */
- AM_RANGE(0xfe00, 0xfe07) AM_READWRITE(bbc_6845_r, bbc_6845_w) /* fe00-fe07 6845 CRTC Video controller */
- AM_RANGE(0xfe08, 0xfe08) AM_MIRROR(0x06) AM_DEVREADWRITE("acia6850", acia6850_device, status_r, control_w)
- AM_RANGE(0xfe09, 0xfe09) AM_MIRROR(0x06) AM_DEVREADWRITE("acia6850", acia6850_device, data_r, data_w)
- AM_RANGE(0xfe10, 0xfe17) AM_READWRITE(bbc_fe_r, bbc_SerialULA_w) /* fe10-fe17 Serial ULA Serial system chip */
- AM_RANGE(0xfe18, 0xfe1f) AM_NOP /* fe18-fe1f INTOFF/STATID ECONET Interrupt Off / ID No. */
- AM_RANGE(0xfe20, 0xfe2f) AM_WRITE(bbc_videoULA_w) /* R: fe20-fe2f INTON ECONET Interrupt On */
- /* W: fe20-fe2f Video ULA Video system chip */
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(0xfe40, 0xfe5f) AM_DEVREADWRITE("via6522_0", via6522_device, read, write) /* fe40-fe5f 6522 VIA SYSTEM VIA */
- AM_RANGE(0xfe60, 0xfe7f) AM_DEVREADWRITE("via6522_1", via6522_device, read, write) /* fe60-fe7f 6522 VIA USER VIA */
- AM_RANGE(0xfe80, 0xfe9f) AM_READWRITE(bbc_wd1770_read, bbc_wd1770_write) /* fe80-fe9f 1770 FDC Floppy disc controller */
- AM_RANGE(0xfea0, 0xfebf) AM_READ(bbc_fe_r) /* fea0-febf 68B54 ADLC ECONET controller */
- AM_RANGE(0xfec0, 0xfedf) AM_DEVREADWRITE("upd7002", upd7002_device, read, write) /* fec0-fedf uPD7002 Analogue to digital converter */
- AM_RANGE(0xfee0, 0xfeff) AM_READ(bbc_fe_r) /* fee0-feff Tube ULA Tube system interface */
- AM_RANGE(0xff00, 0xffff) AM_ROM AM_REGION("os", 0x3f00) /* ff00-ffff OS Rom (continued) */
+ 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_IMPORT_FROM(bbc_base)
ADDRESS_MAP_END
static ADDRESS_MAP_START( bbcbp128_mem, AS_PROGRAM, 8, bbc_state )
- ADDRESS_MAP_UNMAP_HIGH
-
AM_RANGE(0x0000, 0x2fff) AM_READ_BANK("bank1") AM_WRITE(bbc_memorybp1_w) /* 0000-2fff Regular Ram */
AM_RANGE(0x3000, 0x7fff) AM_READ_BANK("bank2") AM_WRITE(bbc_memorybp2_w) /* 3000-7fff Video/Shadow Ram */
AM_RANGE(0x8000, 0xafff) AM_READ_BANK("bank4") AM_WRITE(bbc_memorybp4_128_w) /* 8000-afff Paged ROM or 12K of SWRAM */
AM_RANGE(0xb000, 0xbfff) AM_READ_BANK("bank6") AM_WRITE(bbc_memorybp6_128_w) /* b000-bfff Rest of paged ROM area */
- AM_RANGE(0xc000, 0xfbff) AM_READ_BANK("bank7") /* c000-fbff OS ROM */
- AM_RANGE(0xfc00, 0xfdff) AM_NOP /* fc00-fdff FRED & JIM Pages */
- /* fe00-feff Shiela Address Page */
- AM_RANGE(0xfe00, 0xfe07) AM_READWRITE(bbc_6845_r, bbc_6845_w) /* fe00-fe07 6845 CRTC Video controller */
- AM_RANGE(0xfe08, 0xfe08) AM_MIRROR(0x06) AM_DEVREADWRITE("acia6850", acia6850_device, status_r, control_w)
- AM_RANGE(0xfe09, 0xfe09) AM_MIRROR(0x06) AM_DEVREADWRITE("acia6850", acia6850_device, data_r, data_w)
- AM_RANGE(0xfe10, 0xfe17) AM_READWRITE(bbc_fe_r, bbc_SerialULA_w) /* fe10-fe17 Serial ULA Serial system chip */
- AM_RANGE(0xfe10, 0xfe17) AM_NOP /* fe10-fe17 Serial ULA Serial system chip */
- AM_RANGE(0xfe18, 0xfe1f) AM_NOP /* fe18-fe1f INTOFF/STATID ECONET Interrupt Off / ID No. */
- AM_RANGE(0xfe20, 0xfe2f) AM_WRITE(bbc_videoULA_w) /* R: fe20-fe2f INTON ECONET Interrupt On */
- /* W: fe20-fe2f Video ULA Video system chip */
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(0xfe40, 0xfe5f) AM_DEVREADWRITE("via6522_0", via6522_device, read, write) /* fe40-fe5f 6522 VIA SYSTEM VIA */
- AM_RANGE(0xfe60, 0xfe7f) AM_DEVREADWRITE("via6522_1", via6522_device, read, write) /* fe60-fe7f 6522 VIA USER VIA */
- AM_RANGE(0xfe80, 0xfe9f) AM_READWRITE(bbc_wd1770_read, bbc_wd1770_write) /* fe80-fe9f 1770 FDC Floppy disc controller */
- AM_RANGE(0xfea0, 0xfebf) AM_READ(bbc_fe_r) /* fea0-febf 68B54 ADLC ECONET controller */
- AM_RANGE(0xfec0, 0xfedf) AM_DEVREADWRITE("upd7002", upd7002_device, read, write) /* fec0-fedf uPD7002 Analogue to digital converter */
- AM_RANGE(0xfee0, 0xfeff) AM_READ(bbc_fe_r) /* fee0-feff Tube ULA Tube system interface */
- AM_RANGE(0xff00, 0xffff) AM_ROM AM_REGION("os", 0x3f00) /* ff00-ffff OS Rom (continued) */
+ 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_IMPORT_FROM(bbc_base)
ADDRESS_MAP_END
+static ADDRESS_MAP_START( reutapm_mem, AS_PROGRAM, 8, bbc_state )
+ AM_RANGE(0x0000, 0x2fff) AM_READ_BANK("bank1") AM_WRITE(bbc_memorybp1_w) /* 0000-2fff Regular Ram */
+ AM_RANGE(0x3000, 0x7fff) AM_READ_BANK("bank2") AM_WRITE(bbc_memorybp2_w) /* 3000-7fff Video/Shadow Ram */
+ AM_RANGE(0x8000, 0xafff) AM_READ_BANK("bank4") AM_WRITE(bbc_memorybp4_w) /* 8000-afff Paged ROM or 12K of SWRAM */
+ AM_RANGE(0xb000, 0xbfff) AM_READ_BANK("bank6") /* b000-bfff Rest of paged ROM area */
+ 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_NOP /* fe80-fe83 1770 FDC Drive control register */
+ AM_RANGE(0xfe84, 0xfe9f) AM_NOP /* fe84-fe9f 1770 FDC Floppy disc controller */
+ AM_IMPORT_FROM(bbc_base)
+ADDRESS_MAP_END
+
/******************************************************************************
&FC00-&FCFF FRED
&FD00-&FDFF JIM
@@ -263,7 +261,7 @@ ADDRESS_MAP_END
&20-&23 Video ULA - Video system chip 4 ( 2 bytes x 2 )
&24-&27 FDC Latch 1770 Control latch 1770 Control latch 4 ( 1 byte x 4 )
-&28-&2F 1770 registers 1770 Disc Controller 1170 Disc Controller 8 ( 4 bytes x 2 )
+&28-&2F 1770 registers 1770 Disc Controller 1770 Disc Controller 8 ( 4 bytes x 2 )
&30-&33 ROMSEL - ROM Select 4 ( 1 byte x 4 )
&34-&37 ACCCON ACCCON select reg. ACCCON select reg 4 ( 1 byte x 4 )
&38-&3F NC - -
@@ -282,9 +280,9 @@ static ADDRESS_MAP_START(bbcm_mem, AS_PROGRAM, 8, bbc_state )
AM_RANGE(0x8000, 0x8fff) AM_READ_BANK("bank4") AM_WRITE(bbc_memorybm4_w) /* 8000-8fff Paged ROM/RAM or 4K of RAM ANDY */
AM_RANGE(0x9000, 0xbfff) AM_READ_BANK("bank5") AM_WRITE(bbc_memorybm5_w) /* 9000-bfff Rest of paged ROM/RAM area */
AM_RANGE(0xc000, 0xdfff) AM_READ_BANK("bank7") AM_WRITE(bbc_memorybm7_w) /* c000-dfff OS ROM or 8K of RAM HAZEL */
- AM_RANGE(0xe000, 0xfbff) AM_ROM AM_REGION("os", 0x2000) /* e000-fbff OS ROM */
- AM_RANGE(0xfc00, 0xfeff) AM_READ_BANK("bank8") AM_WRITE(bbcm_w) /* this is now processed directly because it can be ROM or hardware */
- AM_RANGE(0xff00, 0xffff) AM_ROM AM_REGION("os", 0x3f00) /* ff00-ffff OS ROM (continued) */
+ AM_RANGE(0xe000, 0xfbff) AM_ROM AM_REGION("os", 0x2000) /* e000-fbff OS ROM */
+ AM_RANGE(0xfc00, 0xfeff) AM_READ_BANK("bank8") AM_WRITE(bbcm_w) /* processed directly because it can be ROM or hardware */
+ AM_RANGE(0xff00, 0xffff) AM_ROM AM_REGION("os", 0x3f00) /* ff00-ffff OS ROM (continued) */
ADDRESS_MAP_END
@@ -464,47 +462,105 @@ INPUT_PORTS_END
static INPUT_PORTS_START(bbc_dipswitch)
PORT_MODIFY("COL2")
- PORT_DIPNAME(0x01, 0x01, "DIP 8 (Default File System)")
+ PORT_DIPNAME(0x01, 0x01, "Default File System") PORT_DIPLOCATION("KBD:1")
PORT_DIPSETTING( 0x00, "NFS" )
PORT_DIPSETTING( 0x01, "DFS" )
PORT_MODIFY("COL3")
- PORT_DIPNAME(0x01, 0x01, "DIP 7 (Not Used)")
+ PORT_DIPNAME(0x01, 0x01, "Not Used") PORT_DIPLOCATION("KBD:2")
PORT_DIPSETTING( 0x00, DEF_STR( Off ))
PORT_DIPSETTING( 0x01, DEF_STR( On ))
PORT_MODIFY("COL4")
- PORT_DIPNAME(0x01, 0x01, "DIP 6 (Disc Timings)")
+ PORT_DIPNAME(0x01, 0x01, "Disc Timings") PORT_DIPLOCATION("KBD:3")
PORT_DIPSETTING( 0x00, DEF_STR( Off ))
PORT_DIPSETTING( 0x01, DEF_STR( On ))
PORT_MODIFY("COL5")
- PORT_DIPNAME(0x01, 0x01, "DIP 5 (Disc Timings)")
+ PORT_DIPNAME(0x01, 0x01, "Disc Timings") PORT_DIPLOCATION("KBD:4")
PORT_DIPSETTING( 0x00, DEF_STR( Off ))
PORT_DIPSETTING( 0x01, DEF_STR( On ))
PORT_MODIFY("COL6")
- PORT_DIPNAME(0x01, 0x01, "DIP 4 (Boot)")
+ PORT_DIPNAME(0x01, 0x01, "Boot") PORT_DIPLOCATION("KBD:5")
PORT_DIPSETTING( 0x00, "SHIFT" )
PORT_DIPSETTING( 0x01, "SHIFT-BREAK" )
PORT_MODIFY("COL7")
- PORT_DIPNAME(0x01, 0x01, "DIP 3 (Screen Mode)")
+ PORT_DIPNAME(0x01, 0x01, "Screen Mode") PORT_DIPLOCATION("KBD:6")
PORT_DIPSETTING( 0x00, "+0" )
PORT_DIPSETTING( 0x01, "+4" )
PORT_MODIFY("COL8")
- PORT_DIPNAME(0x01, 0x01, "DIP 2 (Screen Mode)")
+ PORT_DIPNAME(0x01, 0x01, "Screen Mode") PORT_DIPLOCATION("KBD:7")
PORT_DIPSETTING( 0x00, "+0" )
PORT_DIPSETTING( 0x01, "+2" )
PORT_MODIFY("COL9")
- PORT_DIPNAME(0x01, 0x01, "DIP 1 (Screen Mode)")
+ PORT_DIPNAME(0x01, 0x01, "Screen Mode") PORT_DIPLOCATION("KBD:8")
PORT_DIPSETTING( 0x00, "+0" )
PORT_DIPSETTING( 0x01, "+1" )
INPUT_PORTS_END
+static INPUT_PORTS_START(bbc_links)
+ PORT_START("S11")
+ PORT_DIPNAME(0xff, 0xfe, "Econet ID") PORT_DIPLOCATION("S11:1,2,3,4,5,6,7,8")
+ PORT_DIPSETTING( 0x00, "0" ) PORT_DIPSETTING( 0x01, "1" ) PORT_DIPSETTING( 0x02, "2" ) PORT_DIPSETTING( 0x03, "3" ) PORT_DIPSETTING( 0x04, "4" )
+ PORT_DIPSETTING( 0x05, "5" ) PORT_DIPSETTING( 0x06, "6" ) PORT_DIPSETTING( 0x07, "7" ) PORT_DIPSETTING( 0x08, "8" ) PORT_DIPSETTING( 0x09, "9" )
+ PORT_DIPSETTING( 0x0a, "10" ) PORT_DIPSETTING( 0x0b, "11" ) PORT_DIPSETTING( 0x0c, "12" ) PORT_DIPSETTING( 0x0d, "13" ) PORT_DIPSETTING( 0x0e, "14" )
+ PORT_DIPSETTING( 0x0f, "15" ) PORT_DIPSETTING( 0x10, "16" ) PORT_DIPSETTING( 0x11, "17" ) PORT_DIPSETTING( 0x12, "18" ) PORT_DIPSETTING( 0x13, "19" )
+ PORT_DIPSETTING( 0x14, "20" ) PORT_DIPSETTING( 0x15, "21" ) PORT_DIPSETTING( 0x16, "22" ) PORT_DIPSETTING( 0x17, "23" ) PORT_DIPSETTING( 0x18, "24" )
+ PORT_DIPSETTING( 0x19, "25" ) PORT_DIPSETTING( 0x1a, "26" ) PORT_DIPSETTING( 0x1b, "27" ) PORT_DIPSETTING( 0x1c, "28" ) PORT_DIPSETTING( 0x1d, "29" )
+ PORT_DIPSETTING( 0x1e, "30" ) PORT_DIPSETTING( 0x1f, "31" ) PORT_DIPSETTING( 0x20, "32" ) PORT_DIPSETTING( 0x21, "33" ) PORT_DIPSETTING( 0x22, "34" )
+ PORT_DIPSETTING( 0x23, "35" ) PORT_DIPSETTING( 0x24, "36" ) PORT_DIPSETTING( 0x25, "37" ) PORT_DIPSETTING( 0x26, "38" ) PORT_DIPSETTING( 0x27, "39" )
+ PORT_DIPSETTING( 0x28, "40" ) PORT_DIPSETTING( 0x29, "41" ) PORT_DIPSETTING( 0x2a, "42" ) PORT_DIPSETTING( 0x2b, "43" ) PORT_DIPSETTING( 0x2c, "44" )
+ PORT_DIPSETTING( 0x2d, "45" ) PORT_DIPSETTING( 0x2e, "46" ) PORT_DIPSETTING( 0x2f, "47" ) PORT_DIPSETTING( 0x30, "48" ) PORT_DIPSETTING( 0x31, "49" )
+ PORT_DIPSETTING( 0x32, "50" ) PORT_DIPSETTING( 0x33, "51" ) PORT_DIPSETTING( 0x34, "52" ) PORT_DIPSETTING( 0x35, "53" ) PORT_DIPSETTING( 0x36, "54" )
+ PORT_DIPSETTING( 0x37, "15" ) PORT_DIPSETTING( 0x38, "56" ) PORT_DIPSETTING( 0x39, "57" ) PORT_DIPSETTING( 0x3a, "58" ) PORT_DIPSETTING( 0x3b, "59" )
+ PORT_DIPSETTING( 0x3c, "60" ) PORT_DIPSETTING( 0x3d, "61" ) PORT_DIPSETTING( 0x3e, "62" ) PORT_DIPSETTING( 0x3f, "63" ) PORT_DIPSETTING( 0x40, "64" )
+ PORT_DIPSETTING( 0x41, "65" ) PORT_DIPSETTING( 0x42, "66" ) PORT_DIPSETTING( 0x43, "67" ) PORT_DIPSETTING( 0x44, "68" ) PORT_DIPSETTING( 0x45, "69" )
+ PORT_DIPSETTING( 0x46, "70" ) PORT_DIPSETTING( 0x47, "71" ) PORT_DIPSETTING( 0x48, "72" ) PORT_DIPSETTING( 0x49, "73" ) PORT_DIPSETTING( 0x4a, "74" )
+ PORT_DIPSETTING( 0x4b, "75" ) PORT_DIPSETTING( 0x4c, "76" ) PORT_DIPSETTING( 0x4d, "77" ) PORT_DIPSETTING( 0x4e, "78" ) PORT_DIPSETTING( 0x4f, "79" )
+ PORT_DIPSETTING( 0x50, "80" ) PORT_DIPSETTING( 0x51, "81" ) PORT_DIPSETTING( 0x52, "82" ) PORT_DIPSETTING( 0x53, "83" ) PORT_DIPSETTING( 0x54, "84" )
+ PORT_DIPSETTING( 0x55, "85" ) PORT_DIPSETTING( 0x56, "86" ) PORT_DIPSETTING( 0x57, "87" ) PORT_DIPSETTING( 0x58, "88" ) PORT_DIPSETTING( 0x59, "89" )
+ PORT_DIPSETTING( 0x5a, "90" ) PORT_DIPSETTING( 0x5b, "91" ) PORT_DIPSETTING( 0x5c, "92" ) PORT_DIPSETTING( 0x5d, "93" ) PORT_DIPSETTING( 0x5e, "94" )
+ PORT_DIPSETTING( 0x5f, "95" ) PORT_DIPSETTING( 0x60, "96" ) PORT_DIPSETTING( 0x61, "97" ) PORT_DIPSETTING( 0x62, "98" ) PORT_DIPSETTING( 0x63, "99" )
+ PORT_DIPSETTING( 0x64, "100" ) PORT_DIPSETTING( 0x65, "101" ) PORT_DIPSETTING( 0x66, "102" ) PORT_DIPSETTING( 0x67, "103" ) PORT_DIPSETTING( 0x68, "104" )
+ PORT_DIPSETTING( 0x69, "105" ) PORT_DIPSETTING( 0x6a, "106" ) PORT_DIPSETTING( 0x6b, "107" ) PORT_DIPSETTING( 0x6c, "108" ) PORT_DIPSETTING( 0x6d, "109" )
+ PORT_DIPSETTING( 0x6e, "110" ) PORT_DIPSETTING( 0x6f, "111" ) PORT_DIPSETTING( 0x70, "112" ) PORT_DIPSETTING( 0x71, "113" ) PORT_DIPSETTING( 0x72, "114" )
+ PORT_DIPSETTING( 0x73, "115" ) PORT_DIPSETTING( 0x74, "116" ) PORT_DIPSETTING( 0x75, "117" ) PORT_DIPSETTING( 0x76, "118" ) PORT_DIPSETTING( 0x77, "119" )
+ PORT_DIPSETTING( 0x78, "120" ) PORT_DIPSETTING( 0x79, "121" ) PORT_DIPSETTING( 0x7a, "122" ) PORT_DIPSETTING( 0x7b, "123" ) PORT_DIPSETTING( 0x7c, "124" )
+ PORT_DIPSETTING( 0x7d, "125" ) PORT_DIPSETTING( 0x7e, "126" ) PORT_DIPSETTING( 0x7f, "127" ) PORT_DIPSETTING( 0x80, "128" ) PORT_DIPSETTING( 0x81, "129" )
+ PORT_DIPSETTING( 0x82, "130" ) PORT_DIPSETTING( 0x83, "131" ) PORT_DIPSETTING( 0x84, "132" ) PORT_DIPSETTING( 0x85, "133" ) PORT_DIPSETTING( 0x86, "134" )
+ PORT_DIPSETTING( 0x87, "135" ) PORT_DIPSETTING( 0x88, "136" ) PORT_DIPSETTING( 0x89, "137" ) PORT_DIPSETTING( 0x8a, "138" ) PORT_DIPSETTING( 0x8b, "139" )
+ PORT_DIPSETTING( 0x8c, "140" ) PORT_DIPSETTING( 0x8d, "141" ) PORT_DIPSETTING( 0x8e, "142" ) PORT_DIPSETTING( 0x8f, "143" ) PORT_DIPSETTING( 0x90, "144" )
+ PORT_DIPSETTING( 0x91, "145" ) PORT_DIPSETTING( 0x92, "146" ) PORT_DIPSETTING( 0x93, "147" ) PORT_DIPSETTING( 0x94, "148" ) PORT_DIPSETTING( 0x95, "149" )
+ PORT_DIPSETTING( 0x96, "150" ) PORT_DIPSETTING( 0x97, "151" ) PORT_DIPSETTING( 0x98, "152" ) PORT_DIPSETTING( 0x99, "153" ) PORT_DIPSETTING( 0x9a, "154" )
+ PORT_DIPSETTING( 0x9b, "155" ) PORT_DIPSETTING( 0x9c, "156" ) PORT_DIPSETTING( 0x9d, "157" ) PORT_DIPSETTING( 0x9e, "158" ) PORT_DIPSETTING( 0x9f, "159" )
+ PORT_DIPSETTING( 0xa0, "160" ) PORT_DIPSETTING( 0xa1, "161" ) PORT_DIPSETTING( 0xa2, "162" ) PORT_DIPSETTING( 0xa3, "163" ) PORT_DIPSETTING( 0xa4, "164" )
+ PORT_DIPSETTING( 0xa5, "165" ) PORT_DIPSETTING( 0xa6, "166" ) PORT_DIPSETTING( 0xa7, "167" ) PORT_DIPSETTING( 0xa8, "168" ) PORT_DIPSETTING( 0xa9, "169" )
+ PORT_DIPSETTING( 0xaa, "170" ) PORT_DIPSETTING( 0xab, "171" ) PORT_DIPSETTING( 0xac, "172" ) PORT_DIPSETTING( 0xad, "173" ) PORT_DIPSETTING( 0xae, "174" )
+ PORT_DIPSETTING( 0xaf, "175" ) PORT_DIPSETTING( 0xb0, "176" ) PORT_DIPSETTING( 0xb1, "177" ) PORT_DIPSETTING( 0xb2, "178" ) PORT_DIPSETTING( 0xb3, "179" )
+ PORT_DIPSETTING( 0xb4, "180" ) PORT_DIPSETTING( 0xb5, "181" ) PORT_DIPSETTING( 0xb6, "182" ) PORT_DIPSETTING( 0xb7, "183" ) PORT_DIPSETTING( 0xb8, "184" )
+ PORT_DIPSETTING( 0xb9, "185" ) PORT_DIPSETTING( 0xba, "186" ) PORT_DIPSETTING( 0xbb, "187" ) PORT_DIPSETTING( 0xbc, "188" ) PORT_DIPSETTING( 0xbd, "189" )
+ PORT_DIPSETTING( 0xbe, "190" ) PORT_DIPSETTING( 0xbf, "191" ) PORT_DIPSETTING( 0xc0, "192" ) PORT_DIPSETTING( 0xc1, "193" ) PORT_DIPSETTING( 0xc2, "194" )
+ PORT_DIPSETTING( 0xc3, "195" ) PORT_DIPSETTING( 0xc4, "196" ) PORT_DIPSETTING( 0xc5, "197" ) PORT_DIPSETTING( 0xc6, "198" ) PORT_DIPSETTING( 0xc7, "199" )
+ PORT_DIPSETTING( 0xc8, "200" ) PORT_DIPSETTING( 0xc9, "201" ) PORT_DIPSETTING( 0xca, "202" ) PORT_DIPSETTING( 0xcb, "203" ) PORT_DIPSETTING( 0xcc, "204" )
+ PORT_DIPSETTING( 0xcd, "205" ) PORT_DIPSETTING( 0xce, "206" ) PORT_DIPSETTING( 0xcf, "207" ) PORT_DIPSETTING( 0xd0, "208" ) PORT_DIPSETTING( 0xd1, "209" )
+ PORT_DIPSETTING( 0xd2, "210" ) PORT_DIPSETTING( 0xd3, "211" ) PORT_DIPSETTING( 0xd4, "212" ) PORT_DIPSETTING( 0xd5, "213" ) PORT_DIPSETTING( 0xd6, "214" )
+ PORT_DIPSETTING( 0xd7, "215" ) PORT_DIPSETTING( 0xd8, "216" ) PORT_DIPSETTING( 0xd9, "217" ) PORT_DIPSETTING( 0xda, "218" ) PORT_DIPSETTING( 0xdb, "219" )
+ PORT_DIPSETTING( 0xdc, "220" ) PORT_DIPSETTING( 0xdd, "221" ) PORT_DIPSETTING( 0xde, "222" ) PORT_DIPSETTING( 0xdf, "223" ) PORT_DIPSETTING( 0xe0, "224" )
+ PORT_DIPSETTING( 0xe1, "225" ) PORT_DIPSETTING( 0xe2, "226" ) PORT_DIPSETTING( 0xe3, "227" ) PORT_DIPSETTING( 0xe4, "228" ) PORT_DIPSETTING( 0xe5, "229" )
+ PORT_DIPSETTING( 0xe6, "230" ) PORT_DIPSETTING( 0xe7, "231" ) PORT_DIPSETTING( 0xe8, "232" ) PORT_DIPSETTING( 0xe9, "233" ) PORT_DIPSETTING( 0xea, "234" )
+ PORT_DIPSETTING( 0xeb, "235" ) PORT_DIPSETTING( 0xec, "236" ) PORT_DIPSETTING( 0xed, "237" ) PORT_DIPSETTING( 0xee, "238" ) PORT_DIPSETTING( 0xef, "239" )
+ PORT_DIPSETTING( 0xf0, "240" ) PORT_DIPSETTING( 0xf1, "241" ) PORT_DIPSETTING( 0xf2, "242" ) PORT_DIPSETTING( 0xf3, "243" ) PORT_DIPSETTING( 0xf4, "244" )
+ PORT_DIPSETTING( 0xf5, "245" ) PORT_DIPSETTING( 0xf6, "246" ) PORT_DIPSETTING( 0xf7, "247" ) PORT_DIPSETTING( 0xf8, "248" ) PORT_DIPSETTING( 0xf9, "249" )
+ PORT_DIPSETTING( 0xfa, "250" ) PORT_DIPSETTING( 0xfb, "251" ) PORT_DIPSETTING( 0xfc, "252" ) PORT_DIPSETTING( 0xfd, "253" ) PORT_DIPSETTING( 0xfe, "254" )
+ PORT_DIPSETTING( 0xff, "255" )
+INPUT_PORTS_END
+
+
static INPUT_PORTS_START(bbc_joy)
PORT_START("JOY0")
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_MINMAX(0x0,0xff ) PORT_PLAYER(1)
@@ -523,19 +579,9 @@ INPUT_PORTS_END
static INPUT_PORTS_START(bbc_config)
PORT_START("BBCCONFIG")
-// PORT_CONFNAME( 0x01, 0x00, "Speech Upgrade" )
-// PORT_CONFSETTING( 0x00, DEF_STR( On ) )
-// PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
-
- PORT_CONFNAME( 0x07, 0x00, "DFS Select" )
- PORT_CONFSETTING( 0x00, "Acorn DFS 0.90 (read only)" )
- PORT_CONFSETTING( 0x01, "Acorn DNFS 1.20 (read only)" )
- PORT_CONFSETTING( 0x02, "Watford DFS 1.44 (read only)" )
- PORT_CONFSETTING( 0x03, "Acorn DFS E00 (hack / read only)" )
- PORT_CONFSETTING( 0x04, "Acorn DDFS" )
- PORT_CONFSETTING( 0x05, "Watford DDFS (not working)" )
- PORT_CONFSETTING( 0x06, "Opus Challenger 512K (RAM drive only)" )
- PORT_CONFSETTING( 0x07, DEF_STR( None ) )
+ PORT_CONFNAME( 0x01, 0x00, "Speech Upgrade" )
+ PORT_CONFSETTING( 0x00, DEF_STR( On ) )
+ PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFNAME( 0x18, 0x00, "Sideways RAM Type" )
PORT_CONFSETTING( 0x00, DEF_STR( None ) )
@@ -554,6 +600,15 @@ static INPUT_PORTS_START(bbcb)
PORT_INCLUDE(bbc_config)
PORT_INCLUDE(bbc_keyboard)
PORT_INCLUDE(bbc_dipswitch)
+ PORT_INCLUDE(bbc_links)
+ PORT_INCLUDE(bbc_joy)
+INPUT_PORTS_END
+
+static INPUT_PORTS_START(abc)
+ PORT_INCLUDE(bbc_keyboard)
+ PORT_INCLUDE(bbc_keypad)
+ PORT_INCLUDE(bbc_dipswitch)
+ PORT_INCLUDE(bbc_links)
PORT_INCLUDE(bbc_joy)
INPUT_PORTS_END
@@ -572,15 +627,6 @@ INTERRUPT_GEN_MEMBER(bbc_state::bbcb_vsync)
}
-//static const struct TMS5220interface tms5220_interface =
-//{
-// 680000L,
-// 50,
-// bbc_TMSint
-//};
-
-
-
WRITE_LINE_MEMBER(bbc_state::bbcb_acia6850_irq_w)
{
m_acia_irq = state;
@@ -588,33 +634,23 @@ WRITE_LINE_MEMBER(bbc_state::bbcb_acia6850_irq_w)
check_interrupts();
}
-static LEGACY_FLOPPY_OPTIONS_START(bbc)
- LEGACY_FLOPPY_OPTION( ssd80, "bbc,img,ssd", "BBC SSD disk image", basicdsk_identify_default, basicdsk_construct_default, NULL,
- HEADS([1])
- TRACKS([80])
- SECTORS([10])
- SECTOR_LENGTH([256])
- FIRST_SECTOR_ID([0]))
- LEGACY_FLOPPY_OPTION( dsd80, "dsd", "BBC DSD disk image", basicdsk_identify_default, basicdsk_construct_default, NULL,
- HEADS([2])
- TRACKS([80])
- SECTORS([10])
- SECTOR_LENGTH([256])
- FIRST_SECTOR_ID([0]))
-LEGACY_FLOPPY_OPTIONS_END
-
-static const floppy_interface bbc_floppy_interface =
-{
- FLOPPY_STANDARD_5_25_DSDD,
- LEGACY_FLOPPY_OPTIONS_NAME(bbc),
- "floppy_5_25"
-};
-FLOPPY_FORMATS_MEMBER( bbc_state::floppy_formats )
- FLOPPY_BBC_FORMAT
+FLOPPY_FORMATS_MEMBER( bbc_state::floppy_formats_525sd )
+ FLOPPY_BBC_SSD_525_FORMAT,
+ FLOPPY_BBC_DSD_525_FORMAT
FLOPPY_FORMATS_END
-static SLOT_INTERFACE_START( bbc_floppies )
+FLOPPY_FORMATS_MEMBER( bbc_state::floppy_formats_525dd )
+ FLOPPY_BBC_SSD_525_FORMAT,
+ FLOPPY_BBC_DSD_525_FORMAT,
+ FLOPPY_BBC_ADF_525_FORMAT
+FLOPPY_FORMATS_END
+
+FLOPPY_FORMATS_MEMBER( bbc_state::floppy_formats_35dd )
+ FLOPPY_BBC_ADF_35_FORMAT
+FLOPPY_FORMATS_END
+
+static SLOT_INTERFACE_START( bbc_floppies_525 )
SLOT_INTERFACE("sssd", FLOPPY_525_SSSD)
SLOT_INTERFACE("sd", FLOPPY_525_SD)
SLOT_INTERFACE("ssdd", FLOPPY_525_SSDD)
@@ -623,6 +659,10 @@ static SLOT_INTERFACE_START( bbc_floppies )
SLOT_INTERFACE("qd", FLOPPY_525_QD)
SLOT_INTERFACE_END
+static SLOT_INTERFACE_START( bbc_floppies_35 )
+ SLOT_INTERFACE("qd", FLOPPY_35_DD)
+SLOT_INTERFACE_END
+
WRITE_LINE_MEMBER(bbc_state::econet_clk_w)
{
m_adlc->rxc_w(state);
@@ -649,6 +689,13 @@ static MACHINE_CONFIG_FRAGMENT( bbc_eprom_sockets )
MACHINE_CONFIG_END
+/***************************************************************************
+
+ BBC Micro
+
+****************************************************************************/
+
+
static MACHINE_CONFIG_START( bbca, bbc_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M6502, 2000000) /* 2.00 MHz */
@@ -747,8 +794,9 @@ static MACHINE_CONFIG_DERIVED( bbcb, bbca )
MCFG_RAM_DEFAULT_VALUE(0x00)
/* speech hardware */
-// MCFG_SOUND_ADD("tms5220", TMS5220, 640000)
-// MCFG_TMS52XX_SPEECHROM("vsm")
+ MCFG_DEVICE_ADD("vsm", SPEECHROM, 0)
+ MCFG_SOUND_ADD("tms5220", TMS5220, 640000)
+ MCFG_TMS52XX_SPEECHROM("vsm")
/* user via */
MCFG_DEVICE_ADD("via6522_1", VIA6522, 1000000)
@@ -766,22 +814,15 @@ static MACHINE_CONFIG_DERIVED( bbcb, bbca )
/* printer */
MCFG_CENTRONICS_ADD("centronics", centronics_devices, "printer")
MCFG_CENTRONICS_ACK_HANDLER(DEVWRITELINE("via6522_1", via6522_device, write_ca1)) MCFG_DEVCB_INVERT /* ack seems to be inverted? */
-
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
/* fdc */
- MCFG_DEVICE_ADD("i8271", I8271, 0)
+ MCFG_DEVICE_ADD("i8271" , I8271 , 0)
MCFG_I8271_IRQ_CALLBACK(WRITELINE(bbc_state, bbc_i8271_interrupt))
- MCFG_I8271_FLOPPIES(FLOPPY_0, FLOPPY_1)
-
- MCFG_LEGACY_FLOPPY_2_DRIVES_ADD(bbc_floppy_interface)
-
- MCFG_WD1770_ADD("wd177x", XTAL_16MHz / 2)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(bbc_state, bbc_wd177x_intrq_w))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(bbc_state, bbc_wd177x_drq_w))
-
- MCFG_FLOPPY_DRIVE_ADD("wd177x:0", bbc_floppies, "qd", bbc_state::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD("wd177x:1", bbc_floppies, "qd", bbc_state::floppy_formats)
+ MCFG_I8271_HDL_CALLBACK(WRITELINE(bbc_state, motor_w))
+ MCFG_I8271_OPT_CALLBACK(WRITELINE(bbc_state, side_w))
+ MCFG_FLOPPY_DRIVE_ADD("i8271:0", bbc_floppies_525, "qd", bbc_state::floppy_formats_525sd)
+ MCFG_FLOPPY_DRIVE_ADD("i8271:1", bbc_floppies_525, "qd", bbc_state::floppy_formats_525sd)
/* software lists */
MCFG_DEVICE_REMOVE("cass_ls_a")
@@ -790,71 +831,48 @@ static MACHINE_CONFIG_DERIVED( bbcb, bbca )
MACHINE_CONFIG_END
-static MACHINE_CONFIG_DERIVED( bbcb_us, bbca )
+static MACHINE_CONFIG_DERIVED(bbcb1770, bbcb)
/* basic machine hardware */
- MCFG_CPU_MODIFY( "maincpu" )
- MCFG_CPU_PROGRAM_MAP(bbcb_mem)
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(bbcb1770_mem)
- MCFG_MACHINE_START_OVERRIDE(bbc_state, bbcb )
- MCFG_MACHINE_RESET_OVERRIDE(bbc_state, bbcb )
- MCFG_VIDEO_START_OVERRIDE(bbc_state, bbcb )
+ /* fdc */
+ MCFG_DEVICE_REMOVE("i8271")
- /* internal ram */
- MCFG_RAM_MODIFY(RAM_TAG)
- MCFG_RAM_DEFAULT_SIZE("32K")
- MCFG_RAM_DEFAULT_VALUE(0x00)
+ MCFG_WD1770_ADD("wd1770", XTAL_16MHz / 2)
+ MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(bbc_state, bbc_wd177x_intrq_w))
+ MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(bbc_state, bbc_wd177x_drq_w))
+
+ MCFG_FLOPPY_DRIVE_ADD("wd1770:0", bbc_floppies_525, "qd", bbc_state::floppy_formats_525dd)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
+ MCFG_FLOPPY_DRIVE_ADD("wd1770:1", bbc_floppies_525, "qd", bbc_state::floppy_formats_525dd)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
+MACHINE_CONFIG_END
+
+
+static MACHINE_CONFIG_DERIVED( bbcb_de, bbcb )
+ /* software lists */
+ MCFG_DEVICE_REMOVE("cass_ls_b")
+ MCFG_SOFTWARE_LIST_ADD("flop_ls_b_de", "bbcb_de_cass")
+ MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("cass_ls_b", "bbcb_cass")
+MACHINE_CONFIG_END
- /* speech hardware */
-// MCFG_SOUND_ADD("tms5220", TMS5220, 640000)
-// MCFG_TMS52XX_SPEECHROM("vsm")
+static MACHINE_CONFIG_DERIVED( bbcb_us, bbcb )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_SIZE(640, 200)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
MCFG_SCREEN_REFRESH_RATE(60)
- /* system via */
- MCFG_DEVICE_ADD("via6522_1", VIA6522, 1000000)
- MCFG_VIA6522_READPB_HANDLER(READ8(bbc_state, bbcb_via_user_read_portb))
- MCFG_VIA6522_WRITEPA_HANDLER(DEVWRITE8("cent_data_out", output_latch_device, write))
- MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(bbc_state, bbcb_via_user_write_portb))
- MCFG_VIA6522_CA2_HANDLER(DEVWRITELINE("centronics", centronics_device, write_strobe))
- MCFG_VIA6522_IRQ_HANDLER(WRITELINE(bbc_state, bbcb_via_user_irq_w))
-
- /* adc */
- MCFG_DEVICE_ADD("upd7002", UPD7002, 0)
- MCFG_UPD7002_GET_ANALOGUE_CB(bbc_state, BBC_get_analogue_input)
- MCFG_UPD7002_EOC_CB(bbc_state, BBC_uPD7002_EOC)
-
- /* printer */
- MCFG_CENTRONICS_ADD("centronics", centronics_devices, "printer")
- MCFG_CENTRONICS_ACK_HANDLER(DEVWRITELINE("via6522_1", via6522_device, write_ca1)) MCFG_DEVCB_INVERT /* ack seems to be inverted? */
-
- MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
-
- /* fdc */
- MCFG_DEVICE_ADD("i8271", I8271, 0)
- MCFG_I8271_IRQ_CALLBACK(WRITELINE(bbc_state, bbc_i8271_interrupt))
- MCFG_I8271_FLOPPIES(FLOPPY_0, FLOPPY_1)
-
- MCFG_LEGACY_FLOPPY_2_DRIVES_ADD(bbc_floppy_interface)
-
- MCFG_WD1770_ADD("wd177x", XTAL_16MHz / 2)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(bbc_state, bbc_wd177x_intrq_w))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(bbc_state, bbc_wd177x_drq_w))
-
- MCFG_FLOPPY_DRIVE_ADD("wd177x:0", bbc_floppies, "qd", bbc_state::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD("wd177x:1", bbc_floppies, "qd", bbc_state::floppy_formats)
-
/* software lists */
- MCFG_DEVICE_REMOVE("cass_ls_a")
- MCFG_SOFTWARE_LIST_ADD("cass_ls_b", "bbcb_cass")
- MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("cass_ls_a", "bbca_cass")
+ MCFG_DEVICE_REMOVE("cass_ls_b")
+ MCFG_SOFTWARE_LIST_ADD("flop_ls_b_us", "bbcb_us_flop")
+ MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("cass_ls_b", "bbcb_cass")
MACHINE_CONFIG_END
-static MACHINE_CONFIG_DERIVED( bbcbp, bbcb )
+static MACHINE_CONFIG_DERIVED( bbcbp, bbcb1770 )
/* basic machine hardware */
MCFG_CPU_MODIFY( "maincpu" ) /* M6512 */
MCFG_CPU_PROGRAM_MAP(bbcbp_mem)
@@ -867,18 +885,14 @@ static MACHINE_CONFIG_DERIVED( bbcbp, bbcb )
MCFG_RAM_MODIFY(RAM_TAG)
MCFG_RAM_DEFAULT_SIZE("64K")
MCFG_RAM_DEFAULT_VALUE(0x00)
-
- /* fdc */
- MCFG_DEVICE_REMOVE("i8271")
- MCFG_DEVICE_REMOVE(FLOPPY_0)
- MCFG_DEVICE_REMOVE(FLOPPY_1)
MACHINE_CONFIG_END
-static MACHINE_CONFIG_DERIVED( bbcbp128, bbcbp )
+static MACHINE_CONFIG_DERIVED( bbcbp128, bbcb1770 )
/* basic machine hardware */
MCFG_CPU_MODIFY( "maincpu" ) /* M6512 */
MCFG_CPU_PROGRAM_MAP(bbcbp128_mem)
+
MCFG_MACHINE_START_OVERRIDE(bbc_state, bbcbp)
MCFG_MACHINE_RESET_OVERRIDE(bbc_state, bbcbp)
MCFG_VIDEO_START_OVERRIDE(bbc_state, bbcbp)
@@ -890,7 +904,90 @@ static MACHINE_CONFIG_DERIVED( bbcbp128, bbcbp )
MACHINE_CONFIG_END
-/* BBC Master Series */
+/***************************************************************************
+
+ Acorn Business Computers
+
+****************************************************************************/
+
+
+static MACHINE_CONFIG_DERIVED( abc110, bbcbp )
+ /* fdc */
+ MCFG_DEVICE_REMOVE("wd1770:1")
+
+ /* Add Z80 co-processor */
+
+ /* Add ADAPTEC ACB-4000 Winchester Disc Controller */
+
+ /* Add 10MB ST-412 Winchester */
+
+MACHINE_CONFIG_END
+
+
+static MACHINE_CONFIG_DERIVED( abc210, bbcbp )
+ /* fdc */
+ MCFG_DEVICE_REMOVE("wd1770:1")
+
+ /* Add 32016 co-processor */
+
+ /* Add ADAPTEC ACB-4000 Winchester Disc Controller */
+
+ /* Add 10MB ST-412 Winchester ABC210 */
+
+ /* Add 20MB ST-412 Winchester Cambridge */
+
+MACHINE_CONFIG_END
+
+
+static MACHINE_CONFIG_DERIVED( abc310, bbcbp )
+ /* fdc */
+ MCFG_DEVICE_REMOVE("wd1770:1")
+
+ /* Add 80286 co-processor */
+
+ /* Add ADAPTEC ACB-4000 Winchester Disc Controller */
+
+ /* Add 10MB ST-412 Winchester */
+
+MACHINE_CONFIG_END
+
+
+/***************************************************************************
+
+ Reuters APM Board (Application Processor Module)
+
+****************************************************************************/
+
+
+static MACHINE_CONFIG_DERIVED( reutapm, bbcbp )
+ /* basic machine hardware */
+ MCFG_CPU_MODIFY( "maincpu" ) /* M6512 */
+ MCFG_CPU_PROGRAM_MAP(reutapm_mem)
+
+ /* sound hardware */
+ MCFG_DEVICE_REMOVE("mono")
+ MCFG_DEVICE_REMOVE("sn76489")
+ MCFG_DEVICE_REMOVE("vsm")
+ MCFG_DEVICE_REMOVE("tms5220")
+
+ /* cassette */
+ MCFG_DEVICE_REMOVE( "cassette" )
+
+ /* fdc */
+ MCFG_DEVICE_REMOVE("wd1770")
+
+ /* software lists */
+ MCFG_DEVICE_REMOVE("cass_ls_a")
+ MCFG_DEVICE_REMOVE("cass_ls_b")
+MACHINE_CONFIG_END
+
+
+/***************************************************************************
+
+ BBC Master Series
+
+****************************************************************************/
+
static MACHINE_CONFIG_START( bbcm, bbc_state )
/* basic machine hardware */
@@ -943,7 +1040,6 @@ static MACHINE_CONFIG_START( bbcm, bbc_state )
/* printer */
MCFG_CENTRONICS_ADD("centronics", centronics_devices, "printer")
MCFG_CENTRONICS_ACK_HANDLER(DEVWRITELINE("via6522_1", via6522_device, write_ca1)) MCFG_DEVCB_INVERT /* ack seems to be inverted? */
-
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
/* cassette */
@@ -1001,12 +1097,14 @@ static MACHINE_CONFIG_START( bbcm, bbc_state )
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(bbc_state, bbcb_via_user_irq_w))
/* fdc */
- MCFG_WD1770_ADD("wd177x", XTAL_16MHz / 2)
+ MCFG_WD1770_ADD("wd1770", XTAL_16MHz / 2)
MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(bbc_state, bbc_wd177x_intrq_w))
MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(bbc_state, bbc_wd177x_drq_w))
- MCFG_FLOPPY_DRIVE_ADD("wd177x:0", bbc_floppies, "qd", bbc_state::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD("wd177x:1", bbc_floppies, "qd", bbc_state::floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD("wd1770:0", bbc_floppies_525, "qd", bbc_state::floppy_formats_525dd)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
+ MCFG_FLOPPY_DRIVE_ADD("wd1770:1", bbc_floppies_525, "qd", bbc_state::floppy_formats_525dd)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
/* econet */
MCFG_DEVICE_ADD("mc6854", MC6854, 0)
@@ -1037,15 +1135,12 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( bbcmet, bbcm )
-
- /* Remove all devices not present in this model */
-
/* sound hardware */
-// MCFG_DEVICE_REMOVE("mono")
-// MCFG_DEVICE_REMOVE("sn76489")
+ MCFG_DEVICE_REMOVE("mono")
+ MCFG_DEVICE_REMOVE("sn76489")
/* printer */
-// MCFG_DEVICE_REMOVE("centronics")
+ MCFG_DEVICE_REMOVE("centronics")
/* cassette */
MCFG_DEVICE_REMOVE("cassette")
@@ -1056,15 +1151,16 @@ static MACHINE_CONFIG_DERIVED( bbcmet, bbcm )
MCFG_SOFTWARE_LIST_REMOVE("cass_ls_b")
/* acia */
-// MCFG_DEVICE_REMOVE("acia6850")
+ MCFG_DEVICE_REMOVE("acia6850")
MCFG_DEVICE_REMOVE(RS232_TAG)
+ MCFG_DEVICE_REMOVE("acia_clock")
/* devices */
-// MCFG_DEVICE_REMOVE("upd7002")
-// MCFG_DEVICE_REMOVE("via6522_1")
+ MCFG_DEVICE_REMOVE("upd7002")
+ MCFG_DEVICE_REMOVE("via6522_1")
/* fdc */
-// MCFG_DEVICE_REMOVE("wd177x")
+ MCFG_DEVICE_REMOVE("wd1770")
MACHINE_CONFIG_END
@@ -1082,27 +1178,49 @@ static MACHINE_CONFIG_DERIVED( bbcmarm, bbcm )
MACHINE_CONFIG_END
-static MACHINE_CONFIG_DERIVED( bbcmc, bbcm )
+/***************************************************************************
+
+ BBC Master Compact
+
+****************************************************************************/
-// MCFG_DEVICE_REMOVE("rtc")
+
+static MACHINE_CONFIG_DERIVED( bbcmc, bbcm )
+ /* cassette */
+ MCFG_DEVICE_REMOVE("cassette")
/* fdc */
- MCFG_DEVICE_REMOVE("wd177x")
+ MCFG_DEVICE_REMOVE("wd1770")
-// MCFG_WD1772_ADD("wd177x", XTAL_16MHz / 2)
- MCFG_WD1770_ADD("wd177x", XTAL_16MHz / 2)
+ MCFG_WD1772_ADD("wd1772", XTAL_16MHz / 2)
MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(bbc_state, bbc_wd177x_intrq_w))
MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(bbc_state, bbc_wd177x_drq_w))
- MCFG_FLOPPY_DRIVE_ADD("wd177x:0", bbc_floppies, "qd", bbc_state::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD("wd177x:1", bbc_floppies, "qd", bbc_state::floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD("wd1772:0", bbc_floppies_35, "qd", bbc_state::floppy_formats_35dd)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
+ MCFG_FLOPPY_DRIVE_ADD("wd1772:1", bbc_floppies_35, NULL, bbc_state::floppy_formats_35dd)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
+
+ /* eeprom pcd8572 */
+ //MCFG_DEVICE_REMOVE("rtc")
/* software lists */
+ MCFG_SOFTWARE_LIST_REMOVE("cass_ls_m")
+ MCFG_SOFTWARE_LIST_REMOVE("cass_ls_a")
+ MCFG_SOFTWARE_LIST_REMOVE("cass_ls_b")
MCFG_SOFTWARE_LIST_REMOVE("cart_ls_m")
MCFG_SOFTWARE_LIST_ADD("flop_ls_mc", "bbcmc_flop")
MACHINE_CONFIG_END
+static MACHINE_CONFIG_DERIVED(pro128s, bbcmc)
+ /* software lists */
+ MCFG_SOFTWARE_LIST_REMOVE("flop_ls_mc")
+ MCFG_SOFTWARE_LIST_ADD("flop_ls_pro128s", "pro128s_flop")
+ MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("flop_ls_mc", "bbcmc_flop")
+MACHINE_CONFIG_END
+
+
/* the BBC came with 4 rom sockets on the motherboard as shown in the model A driver */
/* you could get a number of rom upgrade boards that took this up to 16 roms as in the */
/* model B driver */
@@ -1111,9 +1229,9 @@ ROM_START(bbca)
ROM_REGION(0x08000,"maincpu",ROMREGION_ERASEFF) /* RAM */
ROM_REGION(0x14000,"option",0) /* ROM */
- /* rom page 0 00000 */
- /* rom page 1 04000 */
- /* rom page 2 08000 */
+ /* rom page 0 00000 SPARE SOCKET */
+ /* rom page 1 04000 SPARE SOCKET */
+ /* rom page 2 08000 SPARE SOCKET */
/* rom page 3 0c000 BASIC */
ROM_DEFAULT_BIOS("os12b2")
ROM_SYSTEM_BIOS( 0, "os12b2", "OS 1.20 / BASIC2" )
@@ -1128,6 +1246,7 @@ ROM_START(bbca)
ROM_SYSTEM_BIOS( 3, "os10b1", "OS 1.00 / BASIC1" )
ROMX_LOAD("os10.rom", 0x10000, 0x4000, CRC(9679b8f8) SHA1(d35f6723132aabe3c4d00fc16fd9ecc6768df753), ROM_BIOS(4)) /* os */
ROMX_LOAD("basic1.rom", 0x0c000, 0x4000, CRC(b3364108) SHA1(890f6e3e7fab3340f75b85e93ff29332bc9ecb2e), ROM_BIOS(4)) /* rom page 3 0c000 */
+ /* OS0.1 does not support rom paging, load BASIC into all pages */
ROM_SYSTEM_BIOS( 4, "os01b2", "OS 0.10 / BASIC2" )
ROMX_LOAD("os01.rom", 0x10000, 0x4000, CRC(45ee0980) SHA1(4b0ece6dc139d5d3f4fabd023716fb6f25149b80), ROM_BIOS(5)) /* os */
ROMX_LOAD("basic2.rom", 0x00000, 0x4000, CRC(79434781) SHA1(4a7393f3a45ea309f744441c16723e2ef447a281), ROM_BIOS(5)) /* rom page 0 00000 */
@@ -1146,7 +1265,6 @@ ROM_START(bbca)
ROM_END
-
/* 0000- 7fff ram */
/* 8000- bfff this area is mapped over with one of the roms from "option" region 0x00000-0x40000 */
/* c000- ffff OS rom and memory mapped hardware at fc00-feff, from "option" region 0x40000-0x44000 */
@@ -1168,9 +1286,9 @@ ROM_START(bbcb)
/* rom page 9 24000 */
/* rom page 10 28000 */
/* rom page 11 2c000 */
- /* rom page 12 30000 */
- /* rom page 13 34000 */
- /* rom page 14 38000 */
+ /* rom page 12 30000 SPARE SOCKET */
+ /* rom page 13 34000 SPARE SOCKET */
+ /* rom page 14 38000 DFS */
/* rom page 15 3c000 BASIC */
ROM_DEFAULT_BIOS("os12b2")
ROM_SYSTEM_BIOS( 0, "os12b2", "OS 1.20 / BASIC2" )
@@ -1186,29 +1304,60 @@ ROM_START(bbcb)
ROMX_LOAD("os10.rom", 0x40000, 0x4000, CRC(9679b8f8) SHA1(d35f6723132aabe3c4d00fc16fd9ecc6768df753), ROM_BIOS(4)) /* os */
ROMX_LOAD("basic1.rom", 0x3c000, 0x4000, CRC(b3364108) SHA1(890f6e3e7fab3340f75b85e93ff29332bc9ecb2e), ROM_BIOS(4)) /* rom page 15 3c000 */
+ ROM_LOAD("dnfs.rom", 0x38000, 0x4000, CRC(8ccd2157) SHA1(7e3c536baeae84d6498a14e8405319e01ee78232))
+
ROM_REGION(0x4000, "os", 0)
ROM_COPY("option", 0x40000, 0, 0x4000)
- ROM_REGION(0x20000,"dfs",0) /* DFS ROMS */
- ROM_LOAD("dfs09.rom", 0x00000, 0x2000, CRC(3ce609cf) SHA1(5cc0f14b8f46855c70eaa653cca4ad079b458732))
- ROM_RELOAD( 0x02000, 0x2000 )
- ROM_LOAD("dnfs.rom", 0x04000, 0x4000, CRC(8ccd2157) SHA1(7e3c536baeae84d6498a14e8405319e01ee78232))
- ROM_LOAD("dfs144.rom", 0x08000, 0x4000, CRC(9fb8d13f) SHA1(387d2468c6e1360f5b531784ce95d5f71a50c2b5))
- ROM_LOAD("zdfs-0.90.rom",0x0C000, 0x2000, CRC(ea579d4d) SHA1(59ad2a8994f4bddad6687891f1a2bc29f2fd32b8))
- ROM_LOAD("ddfs223.rom", 0x10000, 0x4000, CRC(7891f9b7) SHA1(0d7ed0b0b3852cb61970ada1993244f2896896aa))
- ROM_LOAD("ddfs-1.53.rom",0x14000, 0x4000, CRC(e1be4ee4) SHA1(6719dc958f2631e6dc8f045429797b289bfe649a))
- ROM_LOAD("ch103.rom", 0x18000, 0x4000, CRC(98367cf4) SHA1(eca3631aa420691f96b72bfdf2e9c2b613e1bf33))
- /*NONE*/
- ROM_REGION(0x80000, "disks", ROMREGION_ERASEFF) /* Opus Ram Disc Space */
-
- //ROM_REGION(0x2000, "torch", 0)
- //ROM_LOAD("torchz80_094.bin", 0x0000, 0x2000, CRC(49989bd4) SHA1(62b57c858a3baa4ff943c31f77d331c414772a61))
- //ROM_LOAD("torchz80_102.bin", 0x0000, 0x2000, CRC(2eb40a21) SHA1(e6ee738e5f2f8556002b79d18caa8ef21f14e08d))
-
- //ROM_REGION(0x8000, "vsm", 0) /* system speech PHROM */
- //ROM_LOAD("phroma.bin", 0x0000, 0x4000, CRC(98e1bf9e) SHA1(b369809275cb67dfd8a749265e91adb2d2558ae6))
+ ROM_REGION(0x8000, "vsm", 0) /* system speech PHROM */
+ ROM_LOAD("phroma.bin", 0x0000, 0x4000, CRC(98e1bf9e) SHA1(b369809275cb67dfd8a749265e91adb2d2558ae6))
ROM_END
+
+ROM_START(bbcb1770)
+ ROM_REGION(0x08000,"maincpu",ROMREGION_ERASEFF) /* RAM */
+
+ ROM_REGION(0x44000,"option",0) /* ROM */
+ /* rom page 0 00000 */
+ /* rom page 1 04000 */
+ /* rom page 2 08000 */
+ /* rom page 3 0c000 */
+ /* rom page 4 10000 */
+ /* rom page 5 14000 */
+ /* rom page 6 18000 */
+ /* rom page 7 1c000 */
+ /* rom page 8 20000 */
+ /* rom page 9 24000 */
+ /* rom page 10 28000 */
+ /* rom page 11 2c000 */
+ /* rom page 12 30000 SPARE SOCKET */
+ /* rom page 13 34000 SPARE SOCKET */
+ /* rom page 14 38000 DDFS */
+ /* rom page 15 3c000 BASIC */
+ ROM_DEFAULT_BIOS("os12b2")
+ ROM_SYSTEM_BIOS( 0, "os12b2", "OS 1.20 / BASIC2" )
+ ROMX_LOAD("os12.rom", 0x40000, 0x4000, CRC(3c14fc70) SHA1(0d9bcaf6a393c9ce2359ed700ddb53c232c2c45d), ROM_BIOS(1)) /* os */
+ ROMX_LOAD("basic2.rom", 0x3c000, 0x4000, CRC(79434781) SHA1(4a7393f3a45ea309f744441c16723e2ef447a281), ROM_BIOS(1)) /* rom page 15 3c000 */
+ ROM_SYSTEM_BIOS( 1, "os12b1", "OS 1.20 / BASIC1" )
+ ROMX_LOAD("os12.rom", 0x40000, 0x4000, CRC(3c14fc70) SHA1(0d9bcaf6a393c9ce2359ed700ddb53c232c2c45d), ROM_BIOS(2)) /* os */
+ ROMX_LOAD("basic1.rom", 0x3c000, 0x4000, CRC(b3364108) SHA1(890f6e3e7fab3340f75b85e93ff29332bc9ecb2e), ROM_BIOS(2)) /* rom page 15 3c000 */
+ ROM_SYSTEM_BIOS( 2, "os10b2", "OS 1.00 / BASIC2" )
+ ROMX_LOAD("os10.rom", 0x40000, 0x4000, CRC(9679b8f8) SHA1(d35f6723132aabe3c4d00fc16fd9ecc6768df753), ROM_BIOS(3)) /* os */
+ ROMX_LOAD("basic2.rom", 0x3c000, 0x4000, CRC(79434781) SHA1(4a7393f3a45ea309f744441c16723e2ef447a281), ROM_BIOS(3)) /* rom page 15 3c000 */
+ ROM_SYSTEM_BIOS( 3, "os10b1", "OS 1.00 / BASIC1" )
+ ROMX_LOAD("os10.rom", 0x40000, 0x4000, CRC(9679b8f8) SHA1(d35f6723132aabe3c4d00fc16fd9ecc6768df753), ROM_BIOS(4)) /* os */
+ ROMX_LOAD("basic1.rom", 0x3c000, 0x4000, CRC(b3364108) SHA1(890f6e3e7fab3340f75b85e93ff29332bc9ecb2e), ROM_BIOS(4)) /* rom page 15 3c000 */
+
+ ROM_LOAD("ddfs223.rom", 0x38000, 0x4000, CRC(7891f9b7) SHA1(0d7ed0b0b3852cb61970ada1993244f2896896aa))
+
+ ROM_REGION(0x4000, "os", 0)
+ ROM_COPY("option", 0x40000, 0, 0x4000)
+
+ ROM_REGION(0x8000, "vsm", 0) /* system speech PHROM */
+ ROM_LOAD("phroma.bin", 0x0000, 0x4000, CRC(98e1bf9e) SHA1(b369809275cb67dfd8a749265e91adb2d2558ae6))
+ROM_END
+
+
ROM_START(bbcb_de)
ROM_REGION(0x08000,"maincpu",ROMREGION_ERASEFF) /* RAM */
@@ -1225,32 +1374,25 @@ ROM_START(bbcb_de)
/* rom page 9 24000 */
/* rom page 10 28000 */
/* rom page 11 2c000 */
- /* rom page 12 30000 */
- /* rom page 13 34000 */
- /* rom page 14 38000 */
+ /* rom page 12 30000 SPARE SOCKET */
+ /* rom page 13 34000 SPARE SOCKET */
+ /* rom page 14 38000 DFS */
/* rom page 15 3c000 BASIC */
ROM_DEFAULT_BIOS("os12")
ROM_SYSTEM_BIOS( 0, "os12", "OS 1.20 / BASIC2" )
ROMX_LOAD("os_de.rom", 0x40000, 0x4000, CRC(b7262caf) SHA1(aadf90338ee9d1c85dfa73beba50e930c2a38f10), ROM_BIOS(1))
ROMX_LOAD("basic2.rom", 0x3c000, 0x4000, CRC(79434781) SHA1(4a7393f3a45ea309f744441c16723e2ef447a281), ROM_BIOS(1)) /* rom page 15 3c000 */
+ ROM_LOAD("dfs10.rom", 0x38000, 0x4000, CRC(7e367e8c) SHA1(161f585dc45665ea77433c84afd2f95049f7f5a0))
+
ROM_REGION(0x4000, "os", 0)
ROM_COPY("option", 0x40000, 0, 0x4000)
- ROM_REGION(0x20000,"dfs",0) /* DFS ROMS */
- ROM_LOAD("dfs09.rom", 0x00000, 0x2000, CRC(3ce609cf) SHA1(5cc0f14b8f46855c70eaa653cca4ad079b458732))
- ROM_RELOAD( 0x02000, 0x2000 )
-
- ROM_LOAD("dnfs.rom", 0x04000, 0x4000, CRC(8ccd2157) SHA1(7e3c536baeae84d6498a14e8405319e01ee78232))
- ROM_LOAD("dfs144.rom", 0x08000, 0x4000, CRC(9fb8d13f) SHA1(387d2468c6e1360f5b531784ce95d5f71a50c2b5))
- ROM_LOAD("zdfs-0.90.rom",0x0C000, 0x2000, CRC(ea579d4d) SHA1(59ad2a8994f4bddad6687891f1a2bc29f2fd32b8))
- ROM_LOAD("ddfs223.rom", 0x10000, 0x4000, CRC(7891f9b7) SHA1(0d7ed0b0b3852cb61970ada1993244f2896896aa))
- ROM_LOAD("ddfs-1.53.rom",0x14000, 0x4000, CRC(e1be4ee4) SHA1(6719dc958f2631e6dc8f045429797b289bfe649a))
- ROM_LOAD("ch103.rom", 0x18000, 0x4000, CRC(98367cf4) SHA1(eca3631aa420691f96b72bfdf2e9c2b613e1bf33))
- /*NONE*/
- ROM_REGION(0x80000, "disks", ROMREGION_ERASEFF) /* Opus Ram Disc Space */
+ ROM_REGION(0x8000, "vsm", 0) /* system speech PHROM */
+ ROM_LOAD("phroma.bin", 0x0000, 0x4000, CRC(98e1bf9e) SHA1(b369809275cb67dfd8a749265e91adb2d2558ae6))
ROM_END
+
ROM_START(bbcb_us)
ROM_REGION(0x08000,"maincpu",ROMREGION_ERASEFF) /* RAM */
@@ -1267,35 +1409,25 @@ ROM_START(bbcb_us)
/* rom page 9 24000 */
/* rom page 10 28000 */
/* rom page 11 2c000 */
- /* rom page 12 30000 */
- /* rom page 13 34000 */
- /* rom page 14 38000 */
+ /* rom page 12 30000 SPARE SOCKET */
+ /* rom page 13 34000 SPARE SOCKET */
+ /* rom page 14 38000 DFS */
/* rom page 15 3c000 BASIC */
ROM_DEFAULT_BIOS("os10b3")
ROM_SYSTEM_BIOS( 0, "os10b3", "OS A1.0 / BASIC3" )
ROMX_LOAD("os10_us.rom", 0x40000, 0x4000, CRC(c8e946a9) SHA1(83d91d089dca092d2c8b7c3650ff8143c9069b89), ROM_BIOS(1))
ROMX_LOAD("basic3.rom", 0x3c000, 0x4000, CRC(161b9539) SHA1(b39014610a968789afd7695aa04d1277d874405c), ROM_BIOS(1)) /* rom page 15 3c000 */
+ ROM_LOAD("dfs10.rom", 0x38000, 0x4000, CRC(7e367e8c) SHA1(161f585dc45665ea77433c84afd2f95049f7f5a0))
+
ROM_REGION(0x4000, "os", 0)
ROM_COPY("option", 0x40000, 0, 0x4000)
- ROM_REGION(0x20000,"dfs",0) /* DFS ROMS */
- ROM_LOAD("dfs09.rom", 0x00000, 0x2000, CRC(3ce609cf) SHA1(5cc0f14b8f46855c70eaa653cca4ad079b458732))
- ROM_RELOAD( 0x02000, 0x2000 )
-
- ROM_LOAD("dnfs.rom", 0x04000, 0x4000, CRC(8ccd2157) SHA1(7e3c536baeae84d6498a14e8405319e01ee78232))
- ROM_LOAD("dfs144.rom", 0x08000, 0x4000, CRC(9fb8d13f) SHA1(387d2468c6e1360f5b531784ce95d5f71a50c2b5))
- ROM_LOAD("zdfs-0.90.rom",0x0C000, 0x2000, CRC(ea579d4d) SHA1(59ad2a8994f4bddad6687891f1a2bc29f2fd32b8))
- ROM_LOAD("ddfs223.rom", 0x10000, 0x4000, CRC(7891f9b7) SHA1(0d7ed0b0b3852cb61970ada1993244f2896896aa))
- ROM_LOAD("ddfs-1.53.rom",0x14000, 0x4000, CRC(e1be4ee4) SHA1(6719dc958f2631e6dc8f045429797b289bfe649a))
- ROM_LOAD("ch103.rom", 0x18000, 0x4000, CRC(98367cf4) SHA1(eca3631aa420691f96b72bfdf2e9c2b613e1bf33))
- /*NONE*/
- ROM_REGION(0x80000, "disks", ROMREGION_ERASEFF) /* Opus Ram Disc Space */
-
ROM_REGION(0x8000, "vsm", 0) /* system speech PHROM */
ROM_LOAD("phrom_us.bin", 0x0000, 0x4000, CRC(bf4b3b64) SHA1(66876702d1d95eecc034d20f25047f893a27cde5))
ROM_END
+
ROM_START(bbcbp)
ROM_REGION(0x10000,"maincpu",ROMREGION_ERASEFF) /* ROM MEMORY */
@@ -1309,7 +1441,7 @@ ROM_START(bbcbp)
/* rom page 2 08000 32K IN PAGE 3 */
/* rom page 3 0c000 SPARE SOCKET */
/* rom page 4 10000 32K IN PAGE 5 */
- /* rom page 5 14000 SPARE SOCKET */
+ /* rom page 5 14000 ADFS */
/* rom page 6 18000 32K IN PAGE 7 */
/* rom page 7 1c000 DDFS */
/* rom page 8 20000 32K IN PAGE 9 */
@@ -1320,11 +1452,14 @@ ROM_START(bbcbp)
/* rom page 13 34000 */
/* rom page 14 38000 32K IN PAGE 15 */
/* rom page 15 3C000 BASIC */
- /* ddfs 2.23 this is acorns 1770 disc controller Double density disc filing system */
+ ROM_LOAD("adfs130.rom", 0x14000, 0x4000, CRC(d3855588) SHA1(301fd05c475a629c4bec70510d4507256a5b00d8))
ROM_LOAD("ddfs223.rom", 0x1c000, 0x4000, CRC(7891f9b7) SHA1(0d7ed0b0b3852cb61970ada1993244f2896896aa))
ROM_REGION(0x4000, "os", 0)
ROM_COPY("option", 0x40000, 0, 0x4000)
+
+ ROM_REGION(0x8000, "vsm", 0) /* system speech PHROM */
+ ROM_LOAD("phroma.bin", 0x0000, 0x4000, CRC(98e1bf9e) SHA1(b369809275cb67dfd8a749265e91adb2d2558ae6))
ROM_END
@@ -1341,7 +1476,7 @@ ROM_START(bbcbp128)
/* rom page 2 08000 32K IN PAGE 3 */
/* rom page 3 0c000 SPARE SOCKET */
/* rom page 4 10000 32K IN PAGE 5 */
- /* rom page 5 14000 SPARE SOCKET */
+ /* rom page 5 14000 ADFS */
/* rom page 6 18000 32K IN PAGE 7 */
/* rom page 7 1c000 DDFS */
/* rom page 8 20000 32K IN PAGE 9 */
@@ -1352,11 +1487,159 @@ ROM_START(bbcbp128)
/* rom page 13 34000 */
/* rom page 14 38000 32K IN PAGE 15 */
/* rom page 15 3C000 BASIC */
- /* ddfs 2.23 this is acorns 1770 disc controller Double density disc filing system */
+ ROM_LOAD("adfs130.rom", 0x14000, 0x4000, CRC(d3855588) SHA1(301fd05c475a629c4bec70510d4507256a5b00d8))
ROM_LOAD("ddfs223.rom", 0x1c000, 0x4000, CRC(7891f9b7) SHA1(0d7ed0b0b3852cb61970ada1993244f2896896aa))
ROM_REGION(0x4000, "os", 0)
ROM_COPY("option", 0x40000, 0, 0x4000)
+
+ ROM_REGION(0x8000, "vsm", 0) /* system speech PHROM */
+ ROM_LOAD("phroma.bin", 0x0000, 0x4000, CRC(98e1bf9e) SHA1(b369809275cb67dfd8a749265e91adb2d2558ae6))
+ROM_END
+
+
+ROM_START(abc110)
+ ROM_REGION(0x10000,"maincpu",ROMREGION_ERASEFF) /* ROM MEMORY */
+
+ ROM_REGION(0x44000,"option",0) /* ROM */
+ ROM_DEFAULT_BIOS("mos200")
+ ROM_SYSTEM_BIOS( 0, "mos200", "MOS2.00" )
+ ROMX_LOAD("mos200.rom", 0x40000, 0x4000, CRC(5e88f994) SHA1(76235ff15d736f5def338f73ac7497c41b916505), ROM_BIOS(1))
+ ROM_SYSTEM_BIOS( 1, "mos123", "MOS1.23" )
+ ROMX_LOAD("mos123.rom", 0x40000, 0x4000, CRC(90d31d08) SHA1(42a01892cf8bd2ada4db1c8b36aff80c85eb5dcb), ROM_BIOS(2))
+ ROM_SYSTEM_BIOS( 2, "mos120", "MOS1.20" )
+ ROMX_LOAD("mos120.rom", 0x40000, 0x4000, CRC(0a1e83a0) SHA1(21dc3a94eef7c003b194686730fb461779f44925), ROM_BIOS(3))
+ /* rom page 0 00000 */
+ /* rom page 1 04000 */
+ /* rom page 2 08000 32K IN PAGE 3 */
+ /* rom page 3 0c000 SPARE SOCKET */
+ /* rom page 4 10000 32K IN PAGE 5 */
+ /* rom page 5 14000 DDFS */
+ /* rom page 6 18000 32K IN PAGE 7 */
+ /* rom page 7 1c000 ADFS */
+ /* rom page 8 20000 32K IN PAGE 9 */
+ /* rom page 9 24000 SPARE SOCKET */
+ /* rom page 10 28000 32K IN PAGE 11 */
+ /* rom page 11 2c000 SPARE SOCKET */
+ /* rom page 12 30000 */
+ /* rom page 13 34000 */
+ /* rom page 14 38000 32K IN PAGE 15 */
+ /* rom page 15 3C000 BASIC */
+ ROM_LOAD("ddfs223.rom", 0x14000, 0x4000, CRC(7891f9b7) SHA1(0d7ed0b0b3852cb61970ada1993244f2896896aa))
+ ROM_LOAD("adfs130.rom", 0x1c000, 0x4000, CRC(d3855588) SHA1(301fd05c475a629c4bec70510d4507256a5b00d8))
+ ROM_LOAD("basic200.rom", 0x3c000, 0x4000, CRC(79434781) SHA1(4a7393f3a45ea309f744441c16723e2ef447a281))
+
+ ROM_REGION(0x4000, "os", 0)
+ ROM_COPY("option", 0x40000, 0, 0x4000)
+
+ ROM_REGION(0x8000, "vsm", 0) /* system speech PHROM */
+ ROM_LOAD("phroma.bin", 0x0000, 0x4000, CRC(98e1bf9e) SHA1(b369809275cb67dfd8a749265e91adb2d2558ae6))
+ROM_END
+
+
+ROM_START(abc210)
+ ROM_REGION(0x10000,"maincpu",ROMREGION_ERASEFF) /* ROM MEMORY */
+
+ ROM_REGION(0x44000,"option",0) /* ROM */
+ ROM_DEFAULT_BIOS("mos200")
+ ROM_SYSTEM_BIOS( 0, "mos200", "MOS2.00" )
+ ROMX_LOAD("mos200.rom", 0x40000, 0x4000, CRC(5e88f994) SHA1(76235ff15d736f5def338f73ac7497c41b916505), ROM_BIOS(1))
+ ROM_SYSTEM_BIOS( 1, "mos123", "MOS1.23" )
+ ROMX_LOAD("mos123.rom", 0x40000, 0x4000, CRC(90d31d08) SHA1(42a01892cf8bd2ada4db1c8b36aff80c85eb5dcb), ROM_BIOS(2))
+ ROM_SYSTEM_BIOS( 2, "mos120", "MOS1.20" )
+ ROMX_LOAD("mos120.rom", 0x40000, 0x4000, CRC(0a1e83a0) SHA1(21dc3a94eef7c003b194686730fb461779f44925), ROM_BIOS(3))
+ /* rom page 0 00000 */
+ /* rom page 1 04000 */
+ /* rom page 2 08000 32K IN PAGE 3 */
+ /* rom page 3 0c000 SPARE SOCKET */
+ /* rom page 4 10000 32K IN PAGE 5 */
+ /* rom page 5 14000 DDFS */
+ /* rom page 6 18000 32K IN PAGE 7 */
+ /* rom page 7 1c000 ADFS */
+ /* rom page 8 20000 32K IN PAGE 9 */
+ /* rom page 9 24000 SPARE SOCKET */
+ /* rom page 10 28000 32K IN PAGE 11 */
+ /* rom page 11 2c000 SPARE SOCKET */
+ /* rom page 12 30000 */
+ /* rom page 13 34000 */
+ /* rom page 14 38000 32K IN PAGE 15 */
+ /* rom page 15 3C000 BASIC */
+ ROM_LOAD("ddfs223.rom", 0x14000, 0x4000, CRC(7891f9b7) SHA1(0d7ed0b0b3852cb61970ada1993244f2896896aa))
+ ROM_LOAD("adfs130.rom", 0x1c000, 0x4000, CRC(d3855588) SHA1(301fd05c475a629c4bec70510d4507256a5b00d8))
+ ROM_LOAD("basic200.rom", 0x3c000, 0x4000, CRC(79434781) SHA1(4a7393f3a45ea309f744441c16723e2ef447a281))
+
+ ROM_REGION(0x4000, "os", 0)
+ ROM_COPY("option", 0x40000, 0, 0x4000)
+
+ ROM_REGION(0x8000, "vsm", 0) /* system speech PHROM */
+ ROM_LOAD("phroma.bin", 0x0000, 0x4000, CRC(98e1bf9e) SHA1(b369809275cb67dfd8a749265e91adb2d2558ae6))
+ROM_END
+
+
+ROM_START(abc310)
+ ROM_REGION(0x10000,"maincpu",ROMREGION_ERASEFF) /* ROM MEMORY */
+
+ ROM_REGION(0x44000,"option",0) /* ROM */
+ ROM_DEFAULT_BIOS("mos200")
+ ROM_SYSTEM_BIOS( 0, "mos200", "MOS2.00" )
+ ROMX_LOAD("mos200.rom", 0x40000, 0x4000, CRC(5e88f994) SHA1(76235ff15d736f5def338f73ac7497c41b916505), ROM_BIOS(1))
+ ROM_SYSTEM_BIOS( 1, "mos123", "MOS1.23" )
+ ROMX_LOAD("mos123.rom", 0x40000, 0x4000, CRC(90d31d08) SHA1(42a01892cf8bd2ada4db1c8b36aff80c85eb5dcb), ROM_BIOS(2))
+ ROM_SYSTEM_BIOS( 2, "mos120", "MOS1.20" )
+ ROMX_LOAD("mos120.rom", 0x40000, 0x4000, CRC(0a1e83a0) SHA1(21dc3a94eef7c003b194686730fb461779f44925), ROM_BIOS(3))
+ /* rom page 0 00000 */
+ /* rom page 1 04000 */
+ /* rom page 2 08000 32K IN PAGE 3 */
+ /* rom page 3 0c000 SPARE SOCKET */
+ /* rom page 4 10000 32K IN PAGE 5 */
+ /* rom page 5 14000 DDFS */
+ /* rom page 6 18000 32K IN PAGE 7 */
+ /* rom page 7 1c000 ADFS */
+ /* rom page 8 20000 32K IN PAGE 9 */
+ /* rom page 9 24000 SPARE SOCKET */
+ /* rom page 10 28000 32K IN PAGE 11 */
+ /* rom page 11 2c000 SPARE SOCKET */
+ /* rom page 12 30000 */
+ /* rom page 13 34000 */
+ /* rom page 14 38000 32K IN PAGE 15 */
+ /* rom page 15 3C000 BASIC */
+ ROM_LOAD("ddfs223.rom", 0x14000, 0x4000, CRC(7891f9b7) SHA1(0d7ed0b0b3852cb61970ada1993244f2896896aa))
+ ROM_LOAD("adfs130.rom", 0x1c000, 0x4000, CRC(d3855588) SHA1(301fd05c475a629c4bec70510d4507256a5b00d8))
+ ROM_LOAD("basic200.rom", 0x3c000, 0x4000, CRC(79434781) SHA1(4a7393f3a45ea309f744441c16723e2ef447a281))
+
+ ROM_REGION(0x4000, "os", 0)
+ ROM_COPY("option", 0x40000, 0, 0x4000)
+
+ ROM_REGION(0x8000, "vsm", 0) /* system speech PHROM */
+ ROM_LOAD("phroma.bin", 0x0000, 0x4000, CRC(98e1bf9e) SHA1(b369809275cb67dfd8a749265e91adb2d2558ae6))
+ROM_END
+
+
+ROM_START(reutapm)
+ ROM_REGION(0x10000,"maincpu",ROMREGION_ERASEFF) /* ROM MEMORY */
+
+ ROM_REGION(0x44000,"option",0) /* ROM */
+ /* rom page 0 00000 */
+ /* rom page 1 04000 */
+ /* rom page 2 08000 32K IN PAGE 3 */
+ /* rom page 3 0c000 SPARE SOCKET */
+ /* rom page 4 10000 32K IN PAGE 5 */
+ /* rom page 5 14000 SPARE SOCKET */
+ /* rom page 6 18000 32K IN PAGE 7 */
+ /* rom page 7 1c000 SPARE SOCKET */
+ /* rom page 8 20000 32K IN PAGE 9 */
+ /* rom page 9 24000 SPARE SOCKET */
+ /* rom page 10 28000 32K IN PAGE 11 */
+ /* rom page 11 2c000 SPARE SOCKET */
+ /* rom page 12 30000 */
+ /* rom page 13 34000 */
+ /* rom page 14 38000 32K IN PAGE 15 */
+ /* rom page 15 3C000 SPARE SOCKET */
+ ROM_LOAD("reutera100.rom", 0x1c000, 0x4000, CRC(98ebabfb) SHA1(a7887e1e5c206203491e1e06682b9508b0fef49d))
+ ROM_LOAD("reuterb.rom", 0x2c000, 0x4000, CRC(9e02f59b) SHA1(1e63aa3bf4b37bf9ba41e454f95db05c3d15bfbf))
+
+ ROM_REGION(0x4000, "os", 0)
+ ROM_LOAD("mos_r030.rom", 0x0000, 0x4000, CRC(8b652337) SHA1(6a5c7ace255c8ac96c983d5ba67084fbd71ff61e))
ROM_END
@@ -1480,10 +1763,10 @@ ROM_START(bbcmet)
ROM_REGION(0x44000,"option",0) /* ROM */
ROM_DEFAULT_BIOS("mos400")
ROM_SYSTEM_BIOS( 0, "mos400", "Econet MOS 4.00" )
- ROMX_LOAD("mos400.ic24", 0x20000, 0x10000, BAD_DUMP CRC(81729034) SHA1(d4bc2c7f5e66b5298786138f395908e70c772971), ROM_BIOS(1)) /* Merged individual ROM bank dumps */
- ROM_COPY("option", 0x24000, 0x34000, 0xC000) /* Mirror */
- ROM_COPY("option", 0x20000, 0x40000, 0x4000) /* Move loaded roms into place */
- ROM_FILL(0x20000, 0x4000, 0xFFFF)
+ ROMX_LOAD("mos400.ic24", 0x30000, 0x10000, BAD_DUMP CRC(81729034) SHA1(d4bc2c7f5e66b5298786138f395908e70c772971), ROM_BIOS(1)) /* Merged individual ROM bank dumps */
+ ROM_COPY("option", 0x34000, 0x24000, 0xC000) /* Mirror */
+ ROM_COPY("option", 0x30000, 0x40000, 0x4000) /* Move loaded roms into place */
+ ROM_FILL(0x30000, 0x4000, 0xFFFF)
/* 00000 rom 0 Rear Cartridge bottom 16K */
/* 04000 rom 1 Rear Cartridge top 16K */
/* 08000 rom 2 Front Cartridge bottom 16K */
@@ -1659,18 +1942,58 @@ ROM_START(bbcmc_ar)
ROM_END
-/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME */
-COMP ( 1981, bbcb, 0, bbca, bbcb, bbcb, bbc_state, bbc, "Acorn", "BBC Micro Model B", 0)
-COMP ( 1981, bbca, bbcb, 0, bbca, bbca, bbc_state, bbc, "Acorn", "BBC Micro Model A", 0)
-COMP ( 1981, bbcb_us, bbcb, 0, bbcb_us, bbcb, bbc_state, bbc, "Acorn", "Acorn Proton (US)", 0)
-COMP ( 1981, bbcb_de, bbcb, 0, bbcb, bbcb, bbc_state, bbc, "Acorn", "BBC Micro Model B (German)", 0)
-COMP ( 1985, bbcbp, 0, bbcb, bbcbp, bbcb, bbc_state, bbc, "Acorn", "BBC Micro Model B+ 64K", 0)
-COMP ( 1985, bbcbp128, bbcbp, 0, bbcbp128, bbcb, bbc_state, bbc, "Acorn", "BBC Micro Model B+ 128K", 0)
-COMP ( 1986, bbcm, 0, bbcb, bbcm, bbcm, bbc_state, bbcm, "Acorn", "BBC Master 128", 0)
-COMP ( 1986, bbcmt, bbcm, 0, bbcmt, bbcm, bbc_state, bbcm, "Acorn", "BBC Master Turbo", GAME_NOT_WORKING)
-COMP ( 1986, bbcmaiv, bbcm, 0, bbcmaiv, bbcm, bbc_state, bbcm, "Acorn", "BBC Master AIV", GAME_NOT_WORKING)
-COMP ( 1986, bbcmet, bbcm, 0, bbcmet, bbcm, bbc_state, bbcm, "Acorn", "BBC Master ET", 0)
-COMP ( 1986, bbcm512, bbcm, 0, bbcm512, bbcm, bbc_state, bbcm, "Acorn", "BBC Master 512", GAME_NOT_WORKING)
-COMP ( 1986, bbcmarm, bbcm, 0, bbcmarm, bbcm, bbc_state, bbcm, "Acorn", "ARM Evaluation System", GAME_NOT_WORKING)
-COMP ( 1986, bbcmc, 0, bbcm, bbcmc, bbcm, bbc_state, bbcm, "Acorn", "BBC Master Compact", 0)
-COMP ( 1986, bbcmc_ar, bbcmc, 0, bbcmc, bbcm, bbc_state, bbcm, "Acorn", "BBC Master Compact (Arabic)", 0)
+ROM_START(pro128s)
+ ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF) /* ROM MEMORY */
+
+ ROM_REGION(0x44000, "option", 0) /* ROM */
+ ROM_DEFAULT_BIOS("mos510o")
+ ROM_SYSTEM_BIOS(0, "mos510o", "Olivetti MOS 5.10")
+ ROMX_LOAD("mos510o.ic49", 0x30000, 0x10000, CRC(c16858d3) SHA1(ad231ed21a55e493b553703285530d1cacd3de7a), ROM_BIOS(1))
+ ROM_COPY("option", 0x30000, 0x40000, 0x4000) /* Move loaded roms into place */
+ ROM_FILL(0x30000, 0x4000, 0xFFFF)
+ /* 00000 rom 0 EXTERNAL */
+ /* 04000 rom 1 EXTERNAL */
+ /* 08000 rom 2 SPARE SOCKET */
+ /* 0c000 rom 3 SPARE SOCKET */
+ /* 10000 rom 4 SWRAM */
+ /* 14000 rom 5 SWRAM */
+ /* 18000 rom 6 SWRAM */
+ /* 1c000 rom 7 SWRAM */
+ /* 20000 rom 8 SPARE SOCKET */
+ /* 24000 rom 9 UNUSED */
+ /* 28000 rom 10 UNUSED */
+ /* 2c000 rom 11 UNUSED */
+ /* 30000 rom 12 UNUSED */
+ /* 34000 rom 13 ADFS */
+ /* 38000 rom 14 BASIC */
+ /* 3c000 rom 15 Utils */
+
+ ROM_REGION(0x4000, "os", 0)
+ ROM_COPY("option", 0x40000, 0, 0x4000)
+
+ // ROM_REGION(0x80,"eeprom",0) /* pcd8572 */
+ /* Factory defaulted EEPROM, sets default language ROM, etc. */
+ // ROM_LOAD("mos510o.epr", 0x00, 0x80, CRC(d8458039) SHA1(72c056d493e74ceca41f48936012b012b496a226))
+ROM_END
+
+/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
+COMP ( 1981, bbcb, 0, bbca, bbcb, bbcb, bbc_state, bbc, "Acorn", "BBC Micro Model B w/8271 FDC", MACHINE_IMPERFECT_GRAPHICS)
+COMP ( 1981, bbca, bbcb, 0, bbca, bbca, bbc_state, bbc, "Acorn", "BBC Micro Model A", MACHINE_IMPERFECT_GRAPHICS)
+COMP ( 1981, bbcb_de, bbcb, 0, bbcb_de, bbcb, bbc_state, bbc, "Acorn", "BBC Micro Model B (German)", MACHINE_IMPERFECT_GRAPHICS)
+COMP ( 1983, bbcb_us, bbcb, 0, bbcb_us, bbcb, bbc_state, bbc, "Acorn", "BBC Micro Model B (US)", MACHINE_IMPERFECT_GRAPHICS)
+COMP ( 1985, bbcb1770, bbcb, 0, bbcb1770, bbcb, bbc_state, bbc, "Acorn", "BBC Micro Model B w/1770 FDC", MACHINE_IMPERFECT_GRAPHICS)
+COMP ( 1985, bbcbp, 0, bbcb, bbcbp, bbcb, bbc_state, bbc, "Acorn", "BBC Micro Model B+ 64K", MACHINE_IMPERFECT_GRAPHICS)
+COMP ( 1985, bbcbp128, bbcbp, 0, bbcbp128, bbcb, bbc_state, bbc, "Acorn", "BBC Micro Model B+ 128K", MACHINE_IMPERFECT_GRAPHICS)
+COMP ( 1985, abc110, abc210, 0, abc110, abc, bbc_state, bbc, "Acorn", "ABC 110", MACHINE_NOT_WORKING)
+COMP ( 1985, abc210, 0, 0, abc210, abc, bbc_state, bbc, "Acorn", "ABC 210/Cambridge Workstation", MACHINE_NOT_WORKING)
+COMP ( 1985, abc310, abc210, 0, abc310, abc, bbc_state, bbc, "Acorn", "ABC 310", MACHINE_NOT_WORKING)
+COMP ( 1985, reutapm, 0, 0, reutapm, bbcb, bbc_state, bbc, "Acorn", "Reuters APM", MACHINE_NO_SOUND | MACHINE_NOT_WORKING)
+COMP ( 1986, bbcm, 0, bbcb, bbcm, bbcm, bbc_state, bbc, "Acorn", "BBC Master 128", MACHINE_IMPERFECT_GRAPHICS)
+COMP ( 1986, bbcmt, bbcm, 0, bbcmt, bbcm, bbc_state, bbc, "Acorn", "BBC Master Turbo", MACHINE_NOT_WORKING)
+COMP ( 1986, bbcmaiv, bbcm, 0, bbcmaiv, bbcm, bbc_state, bbc, "Acorn", "BBC Master AIV", MACHINE_NOT_WORKING)
+COMP ( 1986, bbcmet, bbcm, 0, bbcmet, bbcm, bbc_state, bbc, "Acorn", "BBC Master ET", MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS)
+COMP ( 1986, bbcm512, bbcm, 0, bbcm512, bbcm, bbc_state, bbc, "Acorn", "BBC Master 512", MACHINE_NOT_WORKING)
+COMP ( 1986, bbcmarm, bbcm, 0, bbcmarm, bbcm, bbc_state, bbc, "Acorn", "ARM Evaluation System", MACHINE_NOT_WORKING)
+COMP ( 1986, bbcmc, 0, bbcm, bbcmc, bbcm, bbc_state, bbc, "Acorn", "BBC Master Compact", MACHINE_IMPERFECT_GRAPHICS)
+COMP ( 1986, bbcmc_ar, bbcmc, 0, bbcmc, bbcm, bbc_state, bbc, "Acorn", "BBC Master Compact (Arabic)", MACHINE_IMPERFECT_GRAPHICS)
+COMP ( 1987, pro128s, bbcmc, 0, pro128s, bbcm, bbc_state, bbc, "Olivetti", "Prodest PC 128S", MACHINE_IMPERFECT_GRAPHICS)
diff --git a/src/mess/drivers/bbcbc.c b/src/mame/drivers/bbcbc.c
index 93c76d83d79..8a11968e0c4 100644
--- a/src/mess/drivers/bbcbc.c
+++ b/src/mame/drivers/bbcbc.c
@@ -161,4 +161,4 @@ ROM_END
***************************************************************************/
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-CONS(1985, bbcbc, 0, 0, bbcbc, bbcbc, driver_device, 0, "BBC", "Bridge Companion", GAME_NO_SOUND_HW )
+CONS(1985, bbcbc, 0, 0, bbcbc, bbcbc, driver_device, 0, "BBC", "Bridge Companion", MACHINE_NO_SOUND_HW )
diff --git a/src/mame/drivers/bbusters.c b/src/mame/drivers/bbusters.c
index 8d615cd422a..f3cde4a2359 100644
--- a/src/mame/drivers/bbusters.c
+++ b/src/mame/drivers/bbusters.c
@@ -1068,11 +1068,11 @@ 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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1989, bbustersu, bbusters, bbusters, bbusters, driver_device, 0, ROT0, "SNK", "Beast Busters (US, Version 3)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1989, bbustersua, bbusters, bbusters, bbusters, driver_device, 0, ROT0, "SNK", "Beast Busters (US, Version 2)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-
-GAME( 1989, mechatt, 0, mechatt, mechatt, driver_device, 0, ROT0, "SNK", "Mechanized Attack (World)", GAME_SUPPORTS_SAVE )
-GAME( 1989, mechattj, mechatt, mechatt, mechattj, driver_device, 0, ROT0, "SNK", "Mechanized Attack (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1989, mechattu, mechatt, mechatt, mechattu, driver_device, 0, ROT0, "SNK", "Mechanized Attack (US)", GAME_SUPPORTS_SAVE )
-GAME( 1989, mechattu1, mechatt, mechatt, mechattu, driver_device, 0, ROT0, "SNK", "Mechanized Attack (US, Version 1, Single Player)", GAME_SUPPORTS_SAVE )
+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, 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 )
diff --git a/src/mame/drivers/bcs3.c b/src/mame/drivers/bcs3.c
new file mode 100644
index 00000000000..8292aedd270
--- /dev/null
+++ b/src/mame/drivers/bcs3.c
@@ -0,0 +1,492 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+/***************************************************************************
+
+ BCS 3
+
+ 2009-05-12 Skeleton driver.
+ 2015-09-25 Improvements
+
+ http://hc-ddr.hucki.net/wiki/doku.php/homecomputer:bcs3
+
+ East German home built computer. No sound facilities.
+ All documents are in German.
+
+ Main CPU is a U880 (Z80 equivalent). Other ICs also have unusual names.
+
+ The CTC sends an interrupt every so often. This uses a lookup table to
+ jump to an address in the range 38xx-39xx. This seems to work much the
+ same as reading video memory in the ZX80. This, I think, is to stop snow
+ appearing on the screen. It also slows everything down noticeably.
+
+ It appears that a read of 1400 activates the Z80's /WAIT pin. This will
+ be released by a VS pulse. (Not emulated)
+
+ Cassette is hooked up according to the documentation, but it doesn't work.
+
+ Known Memory Map:
+ 0000 - 0FFF: Main ROM
+ 1000 - 13FF: Keyboard
+ 1400 - 17FF: /WAIT circuit
+ 1800 - 1BFF: Output one character's scanline to the monitor. ZX-video process.
+ 1C00 - 1FFF: Video RAM
+ 2000 - 3FFF: Mirror of 0000 - 1FFF.
+ 4000 - up : Extra RAM (required for hack versions)
+
+ Hack versions:
+ - They are fitted with Basic 3.x, require more RAM, and use hardware scrolling.
+ - No schematic has been found, so the code is educated guesswork.
+ - The ZX process is still to be worked out. For now, we return 0xF7 to finish.
+ - There is a machine-language monitor fitted to some models. To access:
+ -- Y = USR(0F000H)
+ -- Commands are S (substitute), M (move), T (test), G (go), Q (quit)
+
+ To Do:
+ - Need software
+ - Fix cassette
+ - Hack versions: fix the ZX process
+
+****************************************************************************/
+
+#include "emu.h"
+#include "cpu/z80/z80.h"
+#include "cpu/z80/z80daisy.h"
+#include "machine/z80ctc.h"
+#include "imagedev/cassette.h"
+
+
+class bcs3_state : public driver_device
+{
+public:
+ bcs3_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ , m_ctc(*this, "ctc")
+ , m_p_chargen(*this, "chargen")
+ , m_p_videoram(*this, "videoram")
+ , m_cass(*this, "cassette")
+ , m_io_keyboard(*this, "KEY")
+ { }
+
+ DECLARE_READ8_MEMBER(keyboard_r);
+ DECLARE_READ8_MEMBER(video_r);
+ DECLARE_READ8_MEMBER(zx_r);
+ DECLARE_WRITE_LINE_MEMBER(ctc_z0_w);
+ DECLARE_WRITE_LINE_MEMBER(ctc_z1_w);
+ DECLARE_DRIVER_INIT(bcs3a);
+ DECLARE_DRIVER_INIT(bcs3b);
+ DECLARE_DRIVER_INIT(bcs3c);
+ DECLARE_DRIVER_INIT(bcs3d);
+ UINT32 screen_update_bcs3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_bcs3a(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+
+private:
+ bool m_cass_bit;
+ UINT8 s_curs;
+ UINT8 s_init;
+ UINT8 s_rows;
+ UINT8 s_cols;
+
+ required_device<cpu_device> m_maincpu;
+ required_device<z80ctc_device> m_ctc;
+ required_memory_region m_p_chargen;
+ required_shared_ptr<UINT8> m_p_videoram;
+ required_device<cassette_image_device> m_cass;
+ required_ioport_array<10> m_io_keyboard;
+};
+
+READ8_MEMBER( bcs3_state::keyboard_r )
+{
+ UINT8 i, data = 0;
+
+ if (offset == 0)
+ data = (m_cass->input() > +0.01) ? 0x80 : 0;
+
+ offset ^= 0x3ff;
+
+ for (i = 0; i < 10; i++)
+ if BIT(offset, i)
+ data |= m_io_keyboard[i]->read();
+
+ return data;
+}
+
+// 00-7F = NUL, 0xE0 = end of line.
+READ8_MEMBER( bcs3_state::video_r )
+{
+ UINT8 data = m_p_videoram[offset];
+ return BIT(data, 7) ? data : 0;
+}
+
+// Unsure of how this works.
+// 00-7F = NUL, 0xFF = end of line, 0xF7 = finish.
+READ8_MEMBER( bcs3_state::zx_r )
+{
+ return 0xf7;
+}
+
+static ADDRESS_MAP_START(bcs3_mem, AS_PROGRAM, 8, bcs3_state)
+ ADDRESS_MAP_UNMAP_HIGH
+ AM_RANGE( 0x0000, 0x0fff ) AM_MIRROR(0x2000) AM_ROM AM_REGION("roms", 0)
+ AM_RANGE( 0x1000, 0x13ff ) AM_MIRROR(0x2000) AM_READ(keyboard_r)
+ AM_RANGE( 0x1400, 0x17ff ) AM_MIRROR(0x2000) AM_NOP // /WAIT circuit
+ AM_RANGE( 0x1800, 0x1bff ) AM_MIRROR(0x2000) AM_READ(video_r)
+ AM_RANGE( 0x1c00, 0x1fff ) AM_MIRROR(0x2000) AM_RAM AM_SHARE("videoram")
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START(bcs3a_mem, AS_PROGRAM, 8, bcs3_state)
+ ADDRESS_MAP_UNMAP_HIGH
+ AM_RANGE( 0x0000, 0x0fff ) AM_MIRROR(0x2000) AM_ROM AM_REGION("roms", 0)
+ AM_RANGE( 0x1000, 0x13ff ) AM_MIRROR(0x2000) AM_READ(keyboard_r)
+ AM_RANGE( 0x1400, 0x17ff ) AM_MIRROR(0x2000) AM_NOP // /WAIT circuit
+ AM_RANGE( 0x1800, 0x1bff ) AM_MIRROR(0x2000) AM_READ(zx_r)
+ AM_RANGE( 0x3c00, 0x7fff ) AM_RAM AM_SHARE("videoram")
+ AM_RANGE( 0xf000, 0xf3ff ) AM_ROM AM_REGION("roms", 0x1000)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( bcs3_io, AS_IO, 8, bcs3_state)
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(3)
+ // coded in the rom as F8 to FB
+ AM_RANGE( 0x00, 0x03 ) AM_DEVREADWRITE("ctc", z80ctc_device, read, write)
+ADDRESS_MAP_END
+
+/* Input ports */
+static INPUT_PORTS_START( bcs3 )
+ PORT_START("KEY.0")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("U") PORT_CODE(KEYCODE_U) PORT_CHAR('U')
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("K :") PORT_CODE(KEYCODE_K) PORT_CHAR('K') PORT_CHAR(':')
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("A &") PORT_CODE(KEYCODE_A) PORT_CHAR('A')
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0) PORT_CHAR('0')
+
+ PORT_START("KEY.1")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("V") PORT_CODE(KEYCODE_V) PORT_CHAR('V')
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("L ;") PORT_CODE(KEYCODE_L) PORT_CHAR('L') PORT_CHAR(';')
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("B '") PORT_CODE(KEYCODE_B) PORT_CHAR('B')
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1 !") PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!')
+
+ PORT_START("KEY.2")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("W") PORT_CODE(KEYCODE_W) PORT_CHAR('W')
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("M <") PORT_CODE(KEYCODE_M) PORT_CHAR('M') PORT_CHAR('<')
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("C (") PORT_CODE(KEYCODE_C) PORT_CHAR('C')
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2 \"") PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR(34)
+
+ PORT_START("KEY.3")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("X") PORT_CODE(KEYCODE_X) PORT_CHAR('X')
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("N =") PORT_CODE(KEYCODE_N) PORT_CHAR('N') PORT_CHAR('=')
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("D )") PORT_CODE(KEYCODE_D) PORT_CHAR('D')
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3 #") PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#')
+
+ PORT_START("KEY.4")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Y) PORT_CHAR('Y')
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("O >") PORT_CODE(KEYCODE_O) PORT_CHAR('O') PORT_CHAR('>')
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("E *") PORT_CODE(KEYCODE_E) PORT_CHAR('E') PORT_CHAR('*')
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4 $") PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$')
+
+ PORT_START("KEY.5")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Z) PORT_CHAR('Z')
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("P") PORT_CODE(KEYCODE_P) PORT_CHAR('P')
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F +") PORT_CODE(KEYCODE_F) PORT_CHAR('F') PORT_CHAR('+')
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("5 %") PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%')
+
+ PORT_START("KEY.6")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Space") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(32)
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) PORT_CHAR('Q')
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("G ,") PORT_CODE(KEYCODE_G) PORT_CHAR('G') PORT_CHAR(',')
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("6 &") PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&')
+
+ PORT_START("KEY.7")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Backspace") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8)
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("R") PORT_CODE(KEYCODE_R) PORT_CHAR('R')
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("H -") PORT_CODE(KEYCODE_H) PORT_CHAR('H') PORT_CHAR('-')
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("7 '") PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR(39)
+
+ PORT_START("KEY.8")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Enter") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13)
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("S") PORT_CODE(KEYCODE_S) PORT_CHAR('S')
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("I .") PORT_CODE(KEYCODE_I) PORT_CHAR('I') PORT_CHAR('.')
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("8 (") PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(')
+
+ PORT_START("KEY.9")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Shift") PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1)
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("T") PORT_CODE(KEYCODE_T) PORT_CHAR('T')
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("J /") PORT_CODE(KEYCODE_J) PORT_CHAR('J') PORT_CHAR('/')
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("9 )") PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')')
+INPUT_PORTS_END
+
+// Official version
+UINT32 bcs3_state::screen_update_bcs3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+{
+ UINT8 y,ra,chr,gfx,rat;
+ UINT16 sy=0,ma=0x50,x;
+
+ for (y = 0; y < 12; y++)
+ {
+ for (ra = 0; ra < 10; ra++)
+ {
+ UINT16 *p = &bitmap.pix16(sy++);
+ rat = (ra + 1) & 7;
+
+ for (x = ma; x < ma + 28; x++)
+ {
+ if (ra < 8)
+ {
+ chr = m_p_videoram[x] & 0x7f;
+
+ /* get pattern of pixels for that character scanline */
+ gfx = m_p_chargen->base()[(chr<<3) | rat ] ^ 0xff;
+ }
+ else
+ gfx = 0xff;
+
+ /* Display a scanline of a character (8 pixels) */
+ *p++ = BIT(gfx, 7);
+ *p++ = BIT(gfx, 6);
+ *p++ = BIT(gfx, 5);
+ *p++ = BIT(gfx, 4);
+ *p++ = BIT(gfx, 3);
+ *p++ = BIT(gfx, 2);
+ *p++ = BIT(gfx, 1);
+ *p++ = BIT(gfx, 0);
+ }
+ }
+ ma+=28;
+ }
+ return 0;
+}
+
+/* Hacks: When it starts, it has 4 lines of data. Pressing enter causes it to allocate 100 lines.
+ I'm assuming that it only shows a portion of this, with the cursor always in sight. */
+UINT32 bcs3_state::screen_update_bcs3a(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+{
+ UINT8 y,ra,chr,gfx,rat;
+ UINT16 sy = 0, ma = s_init, x;
+ UINT16 cursor = (m_p_videoram[s_curs] | (m_p_videoram[s_curs+1] << 8)) - 0x3c00 - ma; // get cursor relative position
+ rat = cursor / (s_cols+1);
+ if (rat > (s_rows-1)) ma += (rat-(s_rows-1)) * (s_cols+1);
+
+ for (y = 0; y < s_rows; y++)
+ {
+ for (ra = 0; ra < 10; ra++)
+ {
+ UINT16 *p = &bitmap.pix16(sy++);
+ rat = (ra + 1) & 7;
+
+ for (x = ma; x < ma + s_cols; x++)
+ {
+ if (ra < 8)
+ {
+ chr = m_p_videoram[x] & 0x7f;
+
+ /* get pattern of pixels for that character scanline */
+ gfx = m_p_chargen->base()[(chr<<3) | rat ] ^ 0xff;
+ }
+ else
+ gfx = 0xff;
+
+ /* Display a scanline of a character (8 pixels) */
+ *p++ = BIT(gfx, 7);
+ *p++ = BIT(gfx, 6);
+ *p++ = BIT(gfx, 5);
+ *p++ = BIT(gfx, 4);
+ *p++ = BIT(gfx, 3);
+ *p++ = BIT(gfx, 2);
+ *p++ = BIT(gfx, 1);
+ *p++ = BIT(gfx, 0);
+ }
+ }
+ ma+=(s_cols+1);
+ }
+ return 0;
+}
+
+
+/* F4 Character Displayer */
+static const gfx_layout bcs3_charlayout =
+{
+ 8, 8, /* 8 x 8 characters */
+ 128, /* 128 characters */
+ 1, /* 1 bits per pixel */
+ { 0 }, /* no bitplanes */
+ /* x offsets */
+ { 0, 1, 2, 3, 4, 5, 6, 7 },
+ /* y offsets */
+ { 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 0*8 },
+ 8*8 /* every char takes 8 bytes */
+};
+
+static GFXDECODE_START( bcs3 )
+ GFXDECODE_ENTRY( "chargen", 0x0000, bcs3_charlayout, 0, 1 )
+GFXDECODE_END
+
+WRITE_LINE_MEMBER( bcs3_state::ctc_z0_w )
+{
+ m_ctc->trg1(state);
+ if (state)
+ {
+ m_cass_bit ^= 1;
+ m_cass->output(m_cass_bit ? -1.0 : +1.0);
+ }
+}
+
+WRITE_LINE_MEMBER( bcs3_state::ctc_z1_w )
+{
+ m_ctc->trg2(state);
+}
+
+static const z80_daisy_config daisy_chain_intf[] =
+{
+ { "ctc" },
+ { NULL }
+};
+
+DRIVER_INIT_MEMBER( bcs3_state, bcs3a )
+{
+ s_curs = 0x7a;
+ s_init = 0x80;
+ s_rows = 12;
+ s_cols = 29;
+}
+
+DRIVER_INIT_MEMBER( bcs3_state, bcs3b )
+{
+ s_curs = 0x7a;
+ s_init = 0x80;
+ s_rows = 24;
+ s_cols = 40;
+}
+
+DRIVER_INIT_MEMBER( bcs3_state, bcs3c )
+{
+ s_curs = 0x08;
+ s_init = 0xa0;
+ s_rows = 12;
+ s_cols = 29;
+}
+
+DRIVER_INIT_MEMBER( bcs3_state, bcs3d )
+{
+ s_curs = 0x08;
+ s_init = 0xb4;
+ s_rows = 12;
+ s_cols = 29;
+}
+
+static MACHINE_CONFIG_START( bcs3, bcs3_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", Z80, XTAL_5MHz /2)
+ MCFG_CPU_PROGRAM_MAP(bcs3_mem)
+ MCFG_CPU_IO_MAP(bcs3_io)
+ MCFG_CPU_CONFIG(daisy_chain_intf)
+
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(50)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
+ MCFG_SCREEN_SIZE(28*8, 12*10)
+ MCFG_SCREEN_VISIBLE_AREA(0,28*8-1,0,12*10-1)
+ MCFG_SCREEN_UPDATE_DRIVER(bcs3_state, screen_update_bcs3)
+ MCFG_SCREEN_PALETTE("palette")
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", bcs3)
+ MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette")
+
+ MCFG_DEVICE_ADD("ctc", Z80CTC, XTAL_5MHz / 2)
+ MCFG_Z80CTC_INTR_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
+ MCFG_Z80CTC_ZC0_CB(WRITELINE(bcs3_state, ctc_z0_w))
+ MCFG_Z80CTC_ZC1_CB(WRITELINE(bcs3_state, ctc_z1_w))
+
+ MCFG_CASSETTE_ADD( "cassette" )
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_START( bcs3a, bcs3_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", Z80, XTAL_7MHz /2)
+ MCFG_CPU_PROGRAM_MAP(bcs3a_mem)
+ MCFG_CPU_IO_MAP(bcs3_io)
+ MCFG_CPU_CONFIG(daisy_chain_intf)
+
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(50)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
+ MCFG_SCREEN_SIZE(29*8, 12*10)
+ MCFG_SCREEN_VISIBLE_AREA(0,29*8-1,0,12*10-1)
+ MCFG_SCREEN_UPDATE_DRIVER(bcs3_state, screen_update_bcs3a)
+ MCFG_SCREEN_PALETTE("palette")
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", bcs3)
+ MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette")
+
+ MCFG_DEVICE_ADD("ctc", Z80CTC, XTAL_7MHz / 2)
+ MCFG_Z80CTC_INTR_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
+ MCFG_Z80CTC_ZC0_CB(WRITELINE(bcs3_state, ctc_z0_w))
+ MCFG_Z80CTC_ZC1_CB(WRITELINE(bcs3_state, ctc_z1_w))
+
+ MCFG_CASSETTE_ADD( "cassette" )
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( bcs3b, bcs3a )
+ MCFG_SCREEN_MODIFY("screen")
+ MCFG_SCREEN_SIZE(40*8, 24*10)
+ MCFG_SCREEN_VISIBLE_AREA(0,40*8-1,0,24*10-1)
+MACHINE_CONFIG_END
+
+
+/* ROM definition */
+ROM_START( bcs3 )
+ ROM_REGION( 0x2000, "roms", ROMREGION_ERASEFF )
+ //ROM_LOAD( "se24.bin", 0x0000, 0x0800, CRC(268de5ee) SHA1(78784945956c1b0282a4e82ad55e7c3a77389e50))
+ ROM_LOAD( "se24_000.d6", 0x0000, 0x0400, CRC(157a0d28) SHA1(0a6666c289b95d98128fd282478dff6319031b6e) )
+ ROM_LOAD( "se24_400.d7", 0x0400, 0x0400, CRC(2159de0f) SHA1(09b567e750931019de914f25d5ab1e4910465de6) )
+
+ ROM_REGION( 0x0400, "chargen", 0 )
+ ROM_LOAD( "bcs_zg_24.d21", 0x0000, 0x0400, CRC(eaed9d84) SHA1(7023a6187cd6bd0c6489d76ff662453f14e5b636))
+ROM_END
+
+ROM_START( bcs3a )
+ ROM_REGION( 0x2000, "roms", ROMREGION_ERASEFF )
+ //ROM_LOAD( "se31_29.bin", 0x0000, 0x1000, CRC(e9b55544) SHA1(82bae68c4bcaecf66632f5b43913b50a1acba316))
+ ROM_LOAD( "se31_000.d6", 0x0000, 0x0400, CRC(0765bd83) SHA1(137ceffd50eeaf21caab286d3e01161ba3267ea4) )
+ ROM_LOAD( "se31_400.d7", 0x0400, 0x0400, CRC(1a87a3ed) SHA1(c8121ff198f8cf0c7bc7bc7e258ecfa51d3bb02c) )
+ ROM_LOAD( "se31_800.d8", 0x0800, 0x0400, CRC(05654a8f) SHA1(b42fa6cf5710dab23f062dbeea81e85b4c18e1b0) )
+ ROM_LOAD( "se31_c00.d9", 0x0c00, 0x0400, CRC(858ca28b) SHA1(90f943b0c1d102dd058a859ba139057a0bd278a6) )
+ ROM_LOAD( "se31mceditor.bin", 0x1000, 0x0400, CRC(8eac92ec) SHA1(8950a3ef05d02abf34269bfce002c46d273ce113))
+
+ ROM_REGION( 0x0400, "chargen", 0 )
+ ROM_LOAD( "bcs_zg_31.d21", 0x0000, 0x0400, CRC(a20c93c9) SHA1(b2be1c0d98b7ac05713349b099b392975968be1d))
+ROM_END
+
+ROM_START( bcs3b )
+ ROM_REGION( 0x2000, "roms", ROMREGION_ERASEFF )
+ ROM_LOAD( "se31_40.bin", 0x0000, 0x1000, CRC(4e993152) SHA1(6bb01ff5779627fa2eb2df432fffcfccc1e33231))
+ ROM_LOAD( "se31mceditor.bin", 0x1000, 0x0400, CRC(8eac92ec) SHA1(8950a3ef05d02abf34269bfce002c46d273ce113))
+
+ ROM_REGION( 0x0400, "chargen", 0 )
+ ROM_LOAD( "bcs_zg_31.d21", 0x0000, 0x0400, CRC(a20c93c9) SHA1(b2be1c0d98b7ac05713349b099b392975968be1d))
+ROM_END
+
+ROM_START( bcs3c )
+ ROM_REGION( 0x2000, "roms", ROMREGION_ERASEFF )
+ ROM_LOAD( "bcs32.bin", 0x0000, 0x1000, CRC(1523b846) SHA1(ca5e3213707a604e02d9e7a7ebfc362ef294ddb8) )
+
+ ROM_REGION( 0x0400, "chargen", 0 )
+ ROM_LOAD( "bcs_zg_32.d21", 0x0000, 0x0400, CRC(abe9e820) SHA1(03a8792d08774cd67b98efd3f83a78e897b4e001) )
+ROM_END
+
+ROM_START( bcs3d )
+ ROM_REGION( 0x2000, "roms", ROMREGION_ERASEFF )
+ ROM_LOAD( "sp33_29.bin", 0x0000, 0x1000, CRC(1c851eb2) SHA1(4f8bb5274ea1861a35a840e8f3482bdc693047c4))
+
+ ROM_REGION( 0x0400, "chargen", 0 )
+ ROM_LOAD( "bcs_zg_33.d21", 0x0000, 0x0400, CRC(b27f1c07) SHA1(61c80c585f198370ba5e856839c12b15acdc58ee))
+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 )
+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 )
diff --git a/src/mame/drivers/beaminv.c b/src/mame/drivers/beaminv.c
index 6674f67287e..ebbad402512 100644
--- a/src/mame/drivers/beaminv.c
+++ b/src/mame/drivers/beaminv.c
@@ -387,5 +387,5 @@ ROM_END
*
*************************************/
-GAMEL( 1979, beaminv, 0, beaminv, beaminv, driver_device, 0, ROT270, "Teknon Kogyo", "Beam Invader", GAME_NO_SOUND | GAME_SUPPORTS_SAVE, layout_beaminv )
-GAMEL( 1979, pacominv, beaminv, beaminv, pacominv, driver_device, 0, ROT270, "Pacom Corporation", "Pacom Invader", GAME_NO_SOUND | GAME_SUPPORTS_SAVE, layout_beaminv )
+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 )
diff --git a/src/mess/drivers/bebox.c b/src/mame/drivers/bebox.c
index 62000bd3388..cd3aec4c163 100644
--- a/src/mess/drivers/bebox.c
+++ b/src/mame/drivers/bebox.c
@@ -17,23 +17,15 @@
#include "bus/lpci/cirrus.h"
#include "cpu/powerpc/ppc.h"
#include "sound/3812intf.h"
-#include "machine/ins8250.h"
-#include "machine/pic8259.h"
#include "machine/mc146818.h"
-#include "bus/lpci/pci.h"
-#include "machine/am9517a.h"
#include "machine/pckeybrd.h"
-#include "machine/idectrl.h"
#include "bus/lpci/mpc105.h"
-#include "machine/intelfsh.h"
#include "bus/scsi/scsi.h"
-#include "machine/53c810.h"
/* Devices */
#include "bus/scsi/scsicd.h"
#include "bus/scsi/scsihd.h"
#include "formats/pc_dsk.h"
-#include "machine/ram.h"
#include "machine/8042kbdc.h"
READ8_MEMBER(bebox_state::at_dma8237_1_r) { return m_dma8237_2->read(space, offset / 2); }
@@ -80,15 +72,13 @@ ADDRESS_MAP_END
READ64_MEMBER(bebox_state::bb_slave_64be_r)
{
- pci_bus_device *device = machine().device<pci_bus_device>("pcibus");
-
// 2e94 is the real address, 2e84 is where the PC appears to be under full DRC
if ((space.device().safe_pc() == 0xfff02e94) || (space.device().safe_pc() == 0xfff02e84))
{
return 0x108000ff; // indicate slave CPU
}
- return device->read_64be(space, offset, mem_mask);
+ return m_pcibus->read_64be(space, offset, mem_mask);
}
static ADDRESS_MAP_START( bebox_slave_mem, AS_PROGRAM, 64, bebox_state )
@@ -267,5 +257,5 @@ ROM_START(bebox2)
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", GAME_NOT_WORKING )
-COMP( 1996, bebox2, bebox, 0, bebox2, bebox, bebox_state, bebox, "Be Inc", "BeBox Dual603-133", GAME_NOT_WORKING )
+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/mess/drivers/beehive.c b/src/mame/drivers/beehive.c
index 0a0e1f82948..a751969f919 100644
--- a/src/mess/drivers/beehive.c
+++ b/src/mame/drivers/beehive.c
@@ -319,4 +319,4 @@ 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", GAME_NO_SOUND)
+COMP( 1982, beehive, 0, 0, beehive, beehive, driver_device, 0, "BeeHive", "DM3270", MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/beezer.c b/src/mame/drivers/beezer.c
index 3f9363ff2f9..ab4cbbe31f1 100644
--- a/src/mame/drivers/beezer.c
+++ b/src/mame/drivers/beezer.c
@@ -181,5 +181,5 @@ ROM_START( beezer1 )
ROM_LOAD( "e1.cpu", 0x100, 0x0100, CRC(3c775c5e) SHA1(ac86f45938c0c9d5fec1245bf86718442baf445b) )
ROM_END
-GAME( 1982, beezer, 0, beezer, beezer, beezer_state, beezer, ROT90, "Tong Electronic", "Beezer (set 1)", GAME_IMPERFECT_SOUND )
-GAME( 1982, beezer1, beezer, beezer, beezer, beezer_state, beezer, ROT90, "Tong Electronic", "Beezer (set 2)", GAME_IMPERFECT_SOUND )
+GAME( 1982, beezer, 0, beezer, beezer, beezer_state, beezer, ROT90, "Tong Electronic", "Beezer (set 1)", MACHINE_IMPERFECT_SOUND )
+GAME( 1982, beezer1, beezer, beezer, beezer, beezer_state, beezer, ROT90, "Tong Electronic", "Beezer (set 2)", MACHINE_IMPERFECT_SOUND )
diff --git a/src/mame/drivers/belatra.c b/src/mame/drivers/belatra.c
index 17e2d458295..cb996f09781 100644
--- a/src/mame/drivers/belatra.c
+++ b/src/mame/drivers/belatra.c
@@ -120,12 +120,12 @@ ROM_START( ldrinka )
ROM_END
-GAME( 2004, fairyl2 ,0, belatra, belatra, driver_device, 0, ROT0, "Belatra","Fairy Land 2 (set 1)", GAME_IS_SKELETON )
-GAME( 2004, fairyl2a ,fairyl2, belatra, belatra, driver_device, 0, ROT0, "Belatra","Fairy Land 2 (set 2)", GAME_IS_SKELETON )
-GAME( 2004, fairyl2b ,fairyl2, belatra, belatra, driver_device, 0, ROT0, "Belatra","Fairy Land 2 (set 3)", GAME_IS_SKELETON )
-GAME( 2004, fairyl2bl ,fairyl2, belatra, belatra, driver_device, 0, ROT0, "Belatra","Fairy Land 2 (bootleg)", GAME_IS_SKELETON )
+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, ldrink ,0, belatra, belatra, driver_device, 0, ROT0, "Belatra","Lucky Drink (set 1)", GAME_IS_SKELETON )
-GAME( 2004, ldrinka ,ldrink, belatra, belatra, driver_device, 0, ROT0, "Belatra","Lucky Drink (set 2)", GAME_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, merryjn ,0, belatra, belatra, driver_device, 0, ROT0, "Belatra","Merry Joiner", GAME_IS_SKELETON )
+GAME( 2004, merryjn ,0, belatra, belatra, driver_device, 0, ROT0, "Belatra","Merry Joiner", MACHINE_IS_SKELETON )
diff --git a/src/mame/drivers/berzerk.c b/src/mame/drivers/berzerk.c
index eedbedb5668..6e35c91a8d3 100644
--- a/src/mame/drivers/berzerk.c
+++ b/src/mame/drivers/berzerk.c
@@ -1338,10 +1338,10 @@ DRIVER_INIT_MEMBER(berzerk_state,moonwarp)
*
*************************************/
-GAME( 1980, berzerk, 0, berzerk, berzerk, driver_device, 0, ROT0, "Stern Electronics", "Berzerk (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1980, berzerk1, berzerk, berzerk, berzerk, driver_device, 0, ROT0, "Stern Electronics", "Berzerk (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1980, berzerkf, berzerk, berzerk, berzerkf, driver_device, 0, ROT0, "Stern Electronics", "Berzerk (French Speech)", GAME_SUPPORTS_SAVE )
-GAME( 1980, berzerkg, berzerk, berzerk, berzerkg, driver_device, 0, ROT0, "Stern Electronics", "Berzerk (German Speech)", GAME_SUPPORTS_SAVE )
-GAME( 1980, berzerks, berzerk, berzerk, berzerks, driver_device, 0, ROT0, "Stern Electronics (Sonic License)", "Berzerk (Spanish Speech)", GAME_SUPPORTS_SAVE )
-GAME( 1981, frenzy, 0, frenzy, frenzy, driver_device, 0, ROT0, "Stern Electronics", "Frenzy", GAME_SUPPORTS_SAVE )
-GAME( 1981, moonwarp, 0, frenzy, moonwarp, berzerk_state, moonwarp, ROT0, "Stern Electronics", "Moon War (prototype on Frenzy hardware)", GAME_SUPPORTS_SAVE )
+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( 1981, moonwarp, 0, frenzy, moonwarp, berzerk_state, moonwarp, ROT0, "Stern Electronics", "Moon War (prototype on Frenzy hardware)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/besta.c b/src/mame/drivers/besta.c
index 7191f3d4ee9..32b19329c20 100644
--- a/src/mess/drivers/besta.c
+++ b/src/mame/drivers/besta.c
@@ -10,6 +10,7 @@
#include "emu.h"
#include "cpu/m68000/m68000.h"
+#include "machine/68230pit.h"
#include "machine/terminal.h"
#define VERBOSE_DBG 1 /* general debug messages */
@@ -32,6 +33,8 @@ public:
besta_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
+ m_pit1 (*this, "pit1"),
+ m_pit2 (*this, "pit2"),
m_terminal(*this, TERMINAL_TAG),
m_p_ram(*this, "p_ram")
{
@@ -44,6 +47,8 @@ public:
UINT8 m_mpcc_regs[32];
required_device<cpu_device> m_maincpu;
+ required_device<pit68230_device> m_pit1;
+ required_device<pit68230_device> m_pit2;
virtual void machine_reset();
required_device<generic_terminal_device> m_terminal;
@@ -97,16 +102,17 @@ WRITE8_MEMBER( besta_state::kbd_put )
static ADDRESS_MAP_START(besta_mem, AS_PROGRAM, 32, besta_state)
AM_RANGE(0x00000000, 0x001fffff) AM_RAM AM_SHARE("p_ram") // local bus DRAM, 4MB
// AM_RANGE(0x08010000, 0x08011fff) AM_RAM // unknown -- accessed by cp31dssp
- AM_RANGE(0xff000000, 0xff00ffff) AM_ROM AM_REGION("user1",0) // actual mapping is up to 0xff03ffff
+// AM_RANGE(0xfca03500, 0xfca0350f) AM_READWRITE8(iscsi_reg_r, iscsi_reg_w, 0xffffffff)
+ AM_RANGE(0xff000000, 0xff00ffff) AM_ROM AM_REGION("user1", 0) // actual mapping is up to 0xff03ffff
AM_RANGE(0xff040000, 0xff07ffff) AM_RAM // onboard SRAM
-// 68561 MPCC (console)
// AM_RANGE(0xff800000, 0xff80001f) AM_DEVREADWRITE8("mpcc", mpcc68561_t, reg_r, reg_w, 0xffffffff)
- AM_RANGE(0xff800000, 0xff80001f) AM_READWRITE8(mpcc_reg_r, mpcc_reg_w, 0xffffffff)
-// AM_RANGE(0xff800200, 0xff800xxx) // 68230 PIT2
+ AM_RANGE(0xff800000, 0xff80001f) AM_READWRITE8(mpcc_reg_r, mpcc_reg_w, 0xffffffff) // console
+ AM_RANGE(0xff800200, 0xff800237) AM_DEVREADWRITE8 ("pit2", pit68230_device, read, write, 0xffffffff)
// AM_RANGE(0xff800400, 0xff800xxx) // ??? -- shows up in cp31dssp log
-// AM_RANGE(0xff800800, 0xff800xxx) // BIM
+// AM_RANGE(0xff800800, 0xff800xxx) // 68153 BIM
// AM_RANGE(0xff800a00, 0xff800xxx) // 62421 RTC
-// AM_RANGE(0xff800c00, 0xff800xxx) // 68230 PIT
+ AM_RANGE(0xff800c00, 0xff800c37) AM_DEVREADWRITE8 ("pit1", pit68230_device, read, write, 0xffffffff)
+// AM_RANGE(0xff800e00, 0xff800xxx) // PIT3?
ADDRESS_MAP_END
/* Input ports */
@@ -131,6 +137,10 @@ static MACHINE_CONFIG_START( besta, besta_state )
MCFG_CPU_ADD("maincpu", M68030, 2*16670000)
MCFG_CPU_PROGRAM_MAP(besta_mem)
+ MCFG_DEVICE_ADD ("pit1", PIT68230, 16670000 / 2) // XXX verify clock
+
+ 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))
MACHINE_CONFIG_END
@@ -151,4 +161,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1988, besta88, 0, 0, besta, besta, driver_device, 0, "Sapsan", "Besta-88", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW)
diff --git a/src/mame/drivers/bestleag.c b/src/mame/drivers/bestleag.c
index 30898c3e7ec..e3d2d7511cb 100644
--- a/src/mame/drivers/bestleag.c
+++ b/src/mame/drivers/bestleag.c
@@ -472,5 +472,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)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1993, bestleaw, bigstrik, bestleaw, bestleag, driver_device, 0, ROT0, "bootleg", "Best League (bootleg of Big Striker, World Cup)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/beta.c b/src/mame/drivers/beta.c
index d441b6fc2cd..c545a4622a8 100644
--- a/src/mess/drivers/beta.c
+++ b/src/mame/drivers/beta.c
@@ -375,4 +375,4 @@ 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", GAME_SUPPORTS_SAVE )
+COMP( 1984, beta, 0, 0, beta, beta, driver_device, 0, "Pitronics", "Beta", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/bfcobra.c b/src/mame/drivers/bfcobra.c
index a65b185aebe..e7a37317504 100644
--- a/src/mame/drivers/bfcobra.c
+++ b/src/mame/drivers/bfcobra.c
@@ -1929,11 +1929,11 @@ ROM_START( qosb )
ROM_END
-GAME( 1989, inquiztr, 0 , bfcobra, bfcobra, bfcobra_state, bfcobra, ROT0, "BFM", "Inquizitor", GAME_NOT_WORKING )
-GAME( 1990, escounts, 0 , bfcobra, bfcobra, bfcobra_state, bfcobra, ROT0, "BFM", "Every Second Counts (39-360-053)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1991, trebltop, 0 , bfcobra, bfcobra, bfcobra_state, bfcobra, ROT0, "BFM", "Treble Top (39-360-070)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1991, beeline, 0 , bfcobra, bfcobra, bfcobra_state, bfcobra, ROT0, "BFM", "Beeline (39-360-075)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS )
-GAME( 1991, quizvadr, 0 , bfcobra, bfcobra, bfcobra_state, bfcobra, ROT0, "BFM", "Quizvaders (39-360-078)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1992, qos, 0 , bfcobra, bfcobra, bfcobra_state, bfcobra, ROT0, "BFM", "A Question of Sport (set 1, 39-960-107)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1992, qosa, qos , bfcobra, bfcobra, bfcobra_state, bfcobra, ROT0, "BFM", "A Question of Sport (set 2, 39-960-099)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1992, qosb, qos , bfcobra, bfcobra, bfcobra_state, bfcobra, ROT0, "BFM", "A Question of Sport (set 3, 39-960-089)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1989, inquiztr, 0 , bfcobra, bfcobra, bfcobra_state, bfcobra, ROT0, "BFM", "Inquizitor", MACHINE_NOT_WORKING )
+GAME( 1990, escounts, 0 , bfcobra, bfcobra, bfcobra_state, bfcobra, ROT0, "BFM", "Every Second Counts (39-360-053)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1991, trebltop, 0 , bfcobra, bfcobra, bfcobra_state, bfcobra, ROT0, "BFM", "Treble Top (39-360-070)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1991, beeline, 0 , bfcobra, bfcobra, bfcobra_state, bfcobra, ROT0, "BFM", "Beeline (39-360-075)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1991, quizvadr, 0 , bfcobra, bfcobra, bfcobra_state, bfcobra, ROT0, "BFM", "Quizvaders (39-360-078)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1992, qos, 0 , bfcobra, bfcobra, bfcobra_state, bfcobra, ROT0, "BFM", "A Question of Sport (set 1, 39-960-107)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1992, qosa, qos , bfcobra, bfcobra, bfcobra_state, bfcobra, ROT0, "BFM", "A Question of Sport (set 2, 39-960-099)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1992, qosb, qos , bfcobra, bfcobra, bfcobra_state, bfcobra, ROT0, "BFM", "A Question of Sport (set 3, 39-960-089)", MACHINE_IMPERFECT_GRAPHICS )
diff --git a/src/mame/drivers/bfm_ad5sw.c b/src/mame/drivers/bfm_ad5sw.c
index 4abf560196d..9818afb3a86 100644
--- a/src/mame/drivers/bfm_ad5sw.c
+++ b/src/mame/drivers/bfm_ad5sw.c
@@ -1755,351 +1755,351 @@ ROM_END
// PR3255 CASINO COPS TRIPLE CASINO COPS ARCADE PR3255 COPS & ROBBERS SOUNDS11
-GAME( 200?, ad5crcpt ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers Community Party (Bellfruit) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5crcpta ,ad5crcpt, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers Community Party (Bellfruit) (Adder 5) (set 2)", GAME_IS_SKELETON )
+GAME( 200?, ad5crcpt ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers Community Party (Bellfruit) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5crcpta ,ad5crcpt, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers Community Party (Bellfruit) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
// PROJECT NUMBER PR2334 BULLSEYE_PFP ITSBULLSEYE SOUNDS BULLSEYE_PFP S.SITE
-GAME( 200?, ad5bpfpm ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Bullseye Pounds For Points (Mazooma) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5bpfpma ,ad5bpfpm, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Bullseye Pounds For Points (Mazooma) (Adder 5) (set 2)", GAME_IS_SKELETON )
-GAME( 200?, ad5bpfpmb ,ad5bpfpm, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Bullseye Pounds For Points (Mazooma) (Adder 5) (set 3)", GAME_IS_SKELETON )
+GAME( 200?, ad5bpfpm ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Bullseye Pounds For Points (Mazooma) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5bpfpma ,ad5bpfpm, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Bullseye Pounds For Points (Mazooma) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5bpfpmb ,ad5bpfpm, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Bullseye Pounds For Points (Mazooma) (Adder 5) (set 3)", MACHINE_IS_SKELETON )
// PROJECT NUMBER PR2334 BULLSEYE_PFP BULLSEYEPFP SOUNDS BULLSEYE_PFP S.SITE
-GAME( 200?, ad5bpfpmc ,ad5bpfpm, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Bullseye Pounds For Points (Mazooma) (Adder 5) (set 4)", GAME_IS_SKELETON )
-GAME( 200?, ad5bpfpmd ,ad5bpfpm, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Bullseye Pounds For Points (Mazooma) (Adder 5) (set 5)", GAME_IS_SKELETON )
+GAME( 200?, ad5bpfpmc ,ad5bpfpm, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Bullseye Pounds For Points (Mazooma) (Adder 5) (set 4)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5bpfpmd ,ad5bpfpm, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Bullseye Pounds For Points (Mazooma) (Adder 5) (set 5)", MACHINE_IS_SKELETON )
// PR1601 AWP CRAZY MONEY CRAZY MONEY S.SITE PR1601 CRAZY MONEY SOUNDS11
-GAME( 200?, ad5cmons ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Crazy Money (Bellfruit) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5cmonsa ,ad5cmons, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Crazy Money (Bellfruit) (Adder 5) (set 2)", GAME_IS_SKELETON )
+GAME( 200?, ad5cmons ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Crazy Money (Bellfruit) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5cmonsa ,ad5cmons, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Crazy Money (Bellfruit) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
// PR3314 AWP DEAL OR NO DEAL PLATINUM SCORP5 PR3314 DOND PLATINUM SOUNDS11
-GAME( 200?, ad5dndpl ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal Platinum (Bellfruit) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5dndpla ,ad5dndpl, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal Platinum (Bellfruit) (Adder 5) (set 2)", GAME_IS_SKELETON )
-GAME( 200?, ad5dndplb ,ad5dndpl, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal Platinum (Bellfruit) (Adder 5) (set 3)", GAME_IS_SKELETON )
-GAME( 200?, ad5dndplc ,ad5dndpl, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal Platinum (Bellfruit) (Adder 5) (set 4)", GAME_IS_SKELETON )
+GAME( 200?, ad5dndpl ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal Platinum (Bellfruit) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5dndpla ,ad5dndpl, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal Platinum (Bellfruit) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5dndplb ,ad5dndpl, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal Platinum (Bellfruit) (Adder 5) (set 3)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5dndplc ,ad5dndpl, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal Platinum (Bellfruit) (Adder 5) (set 4)", MACHINE_IS_SKELETON )
// PROJECT NUMBER PR3401 AWP HI ROLLER SCORP5 PR3401 HI ROLLER SOUNDS11 HI ROLLER S.SITE
-GAME( 200?, ad5hir ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Hi Roller (Bellfruit) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5hira ,ad5hir, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Hi Roller (Bellfruit) (Adder 5) (set 2)", GAME_IS_SKELETON )
-GAME( 200?, ad5hirb ,ad5hir, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Hi Roller (Bellfruit) (Adder 5) (set 3)", GAME_IS_SKELETON )
-GAME( 200?, ad5hirc ,ad5hir, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Hi Roller (Bellfruit) (Adder 5) (set 4)", GAME_IS_SKELETON )
+GAME( 200?, ad5hir ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Hi Roller (Bellfruit) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5hira ,ad5hir, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Hi Roller (Bellfruit) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5hirb ,ad5hir, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Hi Roller (Bellfruit) (Adder 5) (set 3)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5hirc ,ad5hir, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Hi Roller (Bellfruit) (Adder 5) (set 4)", MACHINE_IS_SKELETON )
// PROJECT NUMBER PR1755 HI ROLLER PR1755 HI ROLLER SOUNDS12
-GAME( 200?, ad5hircl ,ad5hir, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Hi Roller Club (Bellfruit) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5hircla ,ad5hir, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Hi Roller Club (Bellfruit) (Adder 5) (set 2)", GAME_IS_SKELETON )
-GAME( 200?, ad5hirclb ,ad5hir, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Hi Roller Club (Bellfruit) (Adder 5) (set 3)", GAME_IS_SKELETON )
+GAME( 200?, ad5hircl ,ad5hir, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Hi Roller Club (Bellfruit) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5hircla ,ad5hir, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Hi Roller Club (Bellfruit) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5hirclb ,ad5hir, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Hi Roller Club (Bellfruit) (Adder 5) (set 3)", MACHINE_IS_SKELETON )
// PROJECT NUMBER PR1965 CASINO DOND TRIPLE CASINO DOND ARCADE PR1965 CASINO DOND R SOUNDS11
-GAME( 200?, ad5dnd ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5dnda ,ad5dnd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 2)", GAME_IS_SKELETON )
-GAME( 200?, ad5dndb ,ad5dnd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 3)", GAME_IS_SKELETON )
-GAME( 200?, ad5dndc ,ad5dnd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 4)", GAME_IS_SKELETON )
-GAME( 200?, ad5dndd ,ad5dnd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 5)", GAME_IS_SKELETON )
-GAME( 200?, ad5dnde ,ad5dnd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 6)", GAME_IS_SKELETON )
-GAME( 200?, ad5dndf ,ad5dnd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 7)", GAME_IS_SKELETON )
-GAME( 200?, ad5dndg ,ad5dnd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 8)", GAME_IS_SKELETON )
-GAME( 200?, ad5dndh ,ad5dnd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 9)", GAME_IS_SKELETON )
-GAME( 200?, ad5dndi ,ad5dnd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 10)", GAME_IS_SKELETON )
-GAME( 200?, ad5dndj ,ad5dnd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 11)", GAME_IS_SKELETON )
-GAME( 200?, ad5dndk ,ad5dnd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 12)", GAME_IS_SKELETON )
-GAME( 200?, ad5dndl ,ad5dnd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 13)", GAME_IS_SKELETON )
+GAME( 200?, ad5dnd ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5dnda ,ad5dnd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5dndb ,ad5dnd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 3)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5dndc ,ad5dnd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 4)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5dndd ,ad5dnd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 5)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5dnde ,ad5dnd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 6)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5dndf ,ad5dnd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 7)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5dndg ,ad5dnd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 8)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5dndh ,ad5dnd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 9)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5dndi ,ad5dnd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 10)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5dndj ,ad5dnd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 11)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5dndk ,ad5dnd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 12)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5dndl ,ad5dnd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 13)", MACHINE_IS_SKELETON )
// PROJECT NUMBER PR1945 VIDEO CASINO DOND VID CASINO DOND ARCADE PR1945 CASINO D O N D SOUNDS12
-GAME( 200?, ad5dndm ,ad5dnd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 14)", GAME_IS_SKELETON )
-GAME( 200?, ad5dndn ,ad5dnd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 15)", GAME_IS_SKELETON )
-GAME( 200?, ad5dndo ,ad5dnd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 16)", GAME_IS_SKELETON )
-GAME( 200?, ad5dndp ,ad5dnd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 17)", GAME_IS_SKELETON )
-GAME( 200?, ad5dndq ,ad5dnd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 18)", GAME_IS_SKELETON )
-GAME( 200?, ad5dndr ,ad5dnd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 19)", GAME_IS_SKELETON )
+GAME( 200?, ad5dndm ,ad5dnd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 14)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5dndn ,ad5dnd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 15)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5dndo ,ad5dnd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 16)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5dndp ,ad5dnd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 17)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5dndq ,ad5dnd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 18)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5dndr ,ad5dnd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 19)", MACHINE_IS_SKELETON )
// PROJECT NUMBER PR1945 DEAL OR NO DEAL - BFG*DEAL ( PR1945 CASINO D O N D SOUNDS11 )
-GAME( 200?, ad5dndu ,ad5dnd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 22)", GAME_IS_SKELETON )
-GAME( 200?, ad5dndv ,ad5dnd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 23)", GAME_IS_SKELETON )
+GAME( 200?, ad5dndu ,ad5dnd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 22)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5dndv ,ad5dnd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Adder 5) (set 23)", MACHINE_IS_SKELETON )
// PROJECT NUMBER PR3078 DEAL OR NO DEAL - BFG*BDTS ( PR3078 DOND TWIN SOUNDS11 ) (twin screen)
-GAME( 200?, ad5dndcl ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal Club (Bellfruit) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5dndcla ,ad5dndcl, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal Club (Bellfruit) (Adder 5) (set 2)", GAME_IS_SKELETON )
-GAME( 200?, ad5dndclb ,ad5dndcl, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal Club (Bellfruit) (Adder 5) (set 3)", GAME_IS_SKELETON )
-GAME( 200?, ad5dndclc ,ad5dndcl, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal Club (Bellfruit) (Adder 5) (set 4)", GAME_IS_SKELETON )
-GAME( 200?, ad5dndcld ,ad5dndcl, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal Club (Bellfruit) (Adder 5) (set 5)", GAME_IS_SKELETON )
-GAME( 200?, ad5dndcle ,ad5dndcl, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal Club (Bellfruit) (Adder 5) (set 6)", GAME_IS_SKELETON )
-GAME( 200?, ad5dndclf ,ad5dndcl, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal Club (Bellfruit) (Adder 5) (set 20)", GAME_IS_SKELETON )
-GAME( 200?, ad5dndclg ,ad5dndcl, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal Club (Bellfruit) (Adder 5) (set 21)", GAME_IS_SKELETON )
+GAME( 200?, ad5dndcl ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal Club (Bellfruit) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5dndcla ,ad5dndcl, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal Club (Bellfruit) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5dndclb ,ad5dndcl, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal Club (Bellfruit) (Adder 5) (set 3)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5dndclc ,ad5dndcl, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal Club (Bellfruit) (Adder 5) (set 4)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5dndcld ,ad5dndcl, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal Club (Bellfruit) (Adder 5) (set 5)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5dndcle ,ad5dndcl, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal Club (Bellfruit) (Adder 5) (set 6)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5dndclf ,ad5dndcl, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal Club (Bellfruit) (Adder 5) (set 20)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5dndclg ,ad5dndcl, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal Club (Bellfruit) (Adder 5) (set 21)", MACHINE_IS_SKELETON )
// PR3402 AWP DOND DOUBLE DELUXE S5 PR3402 DOUBLE DELUXE SOUNDS11
-GAME( 200?, ad5dnddd ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5dnddda ,ad5dnddd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Adder 5) (set 2)", GAME_IS_SKELETON )
+GAME( 200?, ad5dnddd ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5dnddda ,ad5dnddd, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
// PR3526 DEAL OR NO DEAL THE PERFECT GAME - BFGNVVPG ( R3526 DOND PERFG CLUB SOUNDS12 ) (twin screen)
-GAME( 200?, ad5dndpg ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5dndpga ,ad5dndpg, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Adder 5) (set 2)", GAME_IS_SKELETON )
-GAME( 200?, ad5dndpgb ,ad5dndpg, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Adder 5) (set 3)", GAME_IS_SKELETON )
-GAME( 200?, ad5dndpgc ,ad5dndpg, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Adder 5) (set 4)", GAME_IS_SKELETON )
+GAME( 200?, ad5dndpg ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5dndpga ,ad5dndpg, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5dndpgb ,ad5dndpg, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Adder 5) (set 3)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5dndpgc ,ad5dndpg, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Adder 5) (set 4)", MACHINE_IS_SKELETON )
// PR3206 AWP COPS N ROBBERS PR3206 COPS N ROBBERS SOUNDS11
-GAME( 200?, ad5copsr ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5copsra ,ad5copsr, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 2)", GAME_IS_SKELETON )
-GAME( 200?, ad5copsrb ,ad5copsr, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 3)", GAME_IS_SKELETON )
-GAME( 200?, ad5copsrd ,ad5copsr, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 4)", GAME_IS_SKELETON )
-GAME( 200?, ad5copsre ,ad5copsr, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 5)", GAME_IS_SKELETON )
-GAME( 200?, ad5copsrf ,ad5copsr, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 6)", GAME_IS_SKELETON )
-GAME( 200?, ad5copsrk ,ad5copsr, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 7)", GAME_IS_SKELETON )
-GAME( 200?, ad5copsrl ,ad5copsr, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 8)", GAME_IS_SKELETON )
-GAME( 200?, ad5copsrm ,ad5copsr, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 9)", GAME_IS_SKELETON )
-GAME( 200?, ad5copsro ,ad5copsr, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 10)", GAME_IS_SKELETON )
-GAME( 200?, ad5copsrp ,ad5copsr, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 11)", GAME_IS_SKELETON )
-GAME( 200?, ad5copsrq ,ad5copsr, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 12)", GAME_IS_SKELETON )
-GAME( 200?, ad5copsrv ,ad5copsr, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 13)", GAME_IS_SKELETON )
-GAME( 200?, ad5copsrw ,ad5copsr, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 14)", GAME_IS_SKELETON )
+GAME( 200?, ad5copsr ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5copsra ,ad5copsr, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5copsrb ,ad5copsr, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 3)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5copsrd ,ad5copsr, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 4)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5copsre ,ad5copsr, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 5)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5copsrf ,ad5copsr, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 6)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5copsrk ,ad5copsr, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 7)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5copsrl ,ad5copsr, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 8)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5copsrm ,ad5copsr, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 9)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5copsro ,ad5copsr, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 10)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5copsrp ,ad5copsr, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 11)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5copsrq ,ad5copsr, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 12)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5copsrv ,ad5copsr, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 13)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5copsrw ,ad5copsr, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers (PR3206) (Bellfruit) (Adder 5) (set 14)", MACHINE_IS_SKELETON )
// PR1965 CASINO COPS TRIPLE CASINO COPS ARCADE PR3255 COPS & ROBBERS SOUNDS11
-GAME( 200?, ad5copsrc ,ad5copsr, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers (PR1965) (Bellfruit) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5copsrg ,ad5copsr, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers (PR1965) (Bellfruit) (Adder 5) (set 2)", GAME_IS_SKELETON )
-GAME( 200?, ad5copsrn ,ad5copsr, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers (PR1965) (Bellfruit) (Adder 5) (set 3)", GAME_IS_SKELETON )
-GAME( 200?, ad5copsrr ,ad5copsr, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers (PR1965) (Bellfruit) (Adder 5) (set 4)", GAME_IS_SKELETON )
-GAME( 200?, ad5copsrx ,ad5copsr, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers (PR1965) (Bellfruit) (Adder 5) (set 5)", GAME_IS_SKELETON )
-GAME( 200?, ad5copsry ,ad5copsr, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers (PR1965) (Bellfruit) (Adder 5) (set 6)", GAME_IS_SKELETON )
+GAME( 200?, ad5copsrc ,ad5copsr, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers (PR1965) (Bellfruit) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5copsrg ,ad5copsr, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers (PR1965) (Bellfruit) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5copsrn ,ad5copsr, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers (PR1965) (Bellfruit) (Adder 5) (set 3)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5copsrr ,ad5copsr, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers (PR1965) (Bellfruit) (Adder 5) (set 4)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5copsrx ,ad5copsr, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers (PR1965) (Bellfruit) (Adder 5) (set 5)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5copsry ,ad5copsr, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Cops 'n' Robbers (PR1965) (Bellfruit) (Adder 5) (set 6)", MACHINE_IS_SKELETON )
// PR2476 COPSNROBB3 COPNROB SOUNDS COPSNROBB3 S.SITE ` MAZNSCBT
-GAME( 200?, ad5crsc ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2476) (Mazooma) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5crsca ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2476) (Mazooma) (Adder 5) (set 2)", GAME_IS_SKELETON )
-GAME( 200?, ad5crscb ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2476) (Mazooma) (Adder 5) (set 3)", GAME_IS_SKELETON )
-GAME( 200?, ad5crscc ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2476) (Mazooma) (Adder 5) (set 4)", GAME_IS_SKELETON )
-GAME( 200?, ad5copsrj ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2476) (Mazooma) (Adder 5) (set 5)", GAME_IS_SKELETON )
-GAME( 200?, ad5copsru ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2476) (Mazooma) (Adder 5) (set 6)", GAME_IS_SKELETON )
-GAME( 200?, ad5copsr0 ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2476) (Mazooma) (Adder 5) (set 7)", GAME_IS_SKELETON )
-GAME( 200?, ad5copsr2 ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2476) (Mazooma) (Adder 5) (set 8)", GAME_IS_SKELETON )
+GAME( 200?, ad5crsc ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2476) (Mazooma) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5crsca ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2476) (Mazooma) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5crscb ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2476) (Mazooma) (Adder 5) (set 3)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5crscc ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2476) (Mazooma) (Adder 5) (set 4)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5copsrj ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2476) (Mazooma) (Adder 5) (set 5)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5copsru ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2476) (Mazooma) (Adder 5) (set 6)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5copsr0 ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2476) (Mazooma) (Adder 5) (set 7)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5copsr2 ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2476) (Mazooma) (Adder 5) (set 8)", MACHINE_IS_SKELETON )
// PR2495 COPSNROB COPNROB SOUNDS COPSNROB S.SITE ` MAZNSCBF
-GAME( 200?, ad5copsrh ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2495) (Mazooma) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5copsri ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2495) (Mazooma) (Adder 5) (set 2)", GAME_IS_SKELETON )
-GAME( 200?, ad5copsrs ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2495) (Mazooma) (Adder 5) (set 3)", GAME_IS_SKELETON )
-GAME( 200?, ad5copsrt ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2495) (Mazooma) (Adder 5) (set 4)", GAME_IS_SKELETON )
-GAME( 200?, ad5copsr4 ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2495) (Mazooma) (Adder 5) (set 5)", GAME_IS_SKELETON )
-GAME( 200?, ad5copsr6 ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2495) (Mazooma) (Adder 5) (set 6)", GAME_IS_SKELETON )
-GAME( 200?, ad5crscd ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2495) (Mazooma) (Adder 5) (set 7)", GAME_IS_SKELETON )
-GAME( 200?, ad5crsce ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2495) (Mazooma) (Adder 5) (set 8)", GAME_IS_SKELETON )
-GAME( 200?, ad5crscf ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2495) (Mazooma) (Adder 5) (set 9)", GAME_IS_SKELETON )
-GAME( 200?, ad5crscg ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2495) (Mazooma) (Adder 5) (set 10)", GAME_IS_SKELETON )
+GAME( 200?, ad5copsrh ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2495) (Mazooma) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5copsri ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2495) (Mazooma) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5copsrs ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2495) (Mazooma) (Adder 5) (set 3)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5copsrt ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2495) (Mazooma) (Adder 5) (set 4)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5copsr4 ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2495) (Mazooma) (Adder 5) (set 5)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5copsr6 ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2495) (Mazooma) (Adder 5) (set 6)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5crscd ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2495) (Mazooma) (Adder 5) (set 7)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5crsce ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2495) (Mazooma) (Adder 5) (set 8)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5crscf ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2495) (Mazooma) (Adder 5) (set 9)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5crscg ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2495) (Mazooma) (Adder 5) (set 10)", MACHINE_IS_SKELETON )
// PR2628 COPSNROB COPNROB SOUNDS COPSNROB S.SITE ` MAZ*CRBF
-GAME( 200?, ad5copsr3 ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2628) (Mazooma) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5copsr5 ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2628) (Mazooma) (Adder 5) (set 2)", GAME_IS_SKELETON )
-GAME( 200?, ad5crsch ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2628) (Mazooma) (Adder 5) (set 3)", GAME_IS_SKELETON )
-GAME( 200?, ad5copsr7 ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2628) (Mazooma) (Adder 5) (set 4)", GAME_IS_SKELETON )
+GAME( 200?, ad5copsr3 ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2628) (Mazooma) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5copsr5 ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2628) (Mazooma) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5crsch ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2628) (Mazooma) (Adder 5) (set 3)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5copsr7 ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2628) (Mazooma) (Adder 5) (set 4)", MACHINE_IS_SKELETON )
// PR2497 COPSNROB COPNROB CD SOUNDS COPSNROB S.SITE ` MAZ*COPV
-GAME( 200?, ad5copsrz ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2497) (Mazooma) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5copsr1 ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2497) (Mazooma) (Adder 5) (set 2)", GAME_IS_SKELETON )
+GAME( 200?, ad5copsrz ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2497) (Mazooma) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5copsr1 ,ad5crsc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Cops 'n' Robbers (PR2497) (Mazooma) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
// PR3217 AWP GOLD MINE PR3217 GOLD MINE SOUNDS11 GOLD MINE S.SITE
-GAME( 200?, ad5gldmn ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Gold Mine (Bellfruit) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5gldmna ,ad5gldmn, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Gold Mine (Bellfruit) (Adder 5) (set 2)", GAME_IS_SKELETON )
-GAME( 200?, ad5gldmnb ,ad5gldmn, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Gold Mine (Bellfruit) (Adder 5) (set 3)", GAME_IS_SKELETON )
-GAME( 200?, ad5gldmnc ,ad5gldmn, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Gold Mine (Bellfruit) (Adder 5) (set 4)", GAME_IS_SKELETON )
-GAME( 200?, ad5gldmnd ,ad5gldmn, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Gold Mine (Bellfruit) (Adder 5) (set 5)", GAME_IS_SKELETON )
-GAME( 200?, ad5gldmne ,ad5gldmn, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Gold Mine (Bellfruit) (Adder 5) (set 6)", GAME_IS_SKELETON )
-GAME( 200?, ad5gldmnf ,ad5gldmn, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Gold Mine (Bellfruit) (Adder 5) (set 7)", GAME_IS_SKELETON )
-GAME( 200?, ad5gldmng ,ad5gldmn, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Gold Mine (Bellfruit) (Adder 5) (set 8)", GAME_IS_SKELETON )
-GAME( 200?, ad5gldmnh ,ad5gldmn, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Gold Mine (Bellfruit) (Adder 5) (set 9)", GAME_IS_SKELETON )
-GAME( 200?, ad5gldmni ,ad5gldmn, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Gold Mine (Bellfruit) (Adder 5) (set 10)", GAME_IS_SKELETON )
-GAME( 200?, ad5gldmnj ,ad5gldmn, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Gold Mine (Bellfruit) (Adder 5) (set 11)", GAME_IS_SKELETON )
-GAME( 200?, ad5gldmnk ,ad5gldmn, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Gold Mine (Bellfruit) (Adder 5) (set 12)", GAME_IS_SKELETON )
+GAME( 200?, ad5gldmn ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Gold Mine (Bellfruit) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5gldmna ,ad5gldmn, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Gold Mine (Bellfruit) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5gldmnb ,ad5gldmn, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Gold Mine (Bellfruit) (Adder 5) (set 3)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5gldmnc ,ad5gldmn, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Gold Mine (Bellfruit) (Adder 5) (set 4)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5gldmnd ,ad5gldmn, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Gold Mine (Bellfruit) (Adder 5) (set 5)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5gldmne ,ad5gldmn, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Gold Mine (Bellfruit) (Adder 5) (set 6)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5gldmnf ,ad5gldmn, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Gold Mine (Bellfruit) (Adder 5) (set 7)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5gldmng ,ad5gldmn, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Gold Mine (Bellfruit) (Adder 5) (set 8)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5gldmnh ,ad5gldmn, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Gold Mine (Bellfruit) (Adder 5) (set 9)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5gldmni ,ad5gldmn, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Gold Mine (Bellfruit) (Adder 5) (set 10)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5gldmnj ,ad5gldmn, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Gold Mine (Bellfruit) (Adder 5) (set 11)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5gldmnk ,ad5gldmn, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Gold Mine (Bellfruit) (Adder 5) (set 12)", MACHINE_IS_SKELETON )
// PR2365 MONOPOLYWOW WOW SOUNDS MONOPOLYWOW S.SITE ` MAZ*BPFP
-GAME( 200?, ad5mowow ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Wheel Of Wealth (PR2365, MAZNBPFP) (Mazooma) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5mowowl ,ad5mowow, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Wheel Of Wealth (PR2365, MAZNBPFP) (Mazooma) (Adder 5) (set 2)", GAME_IS_SKELETON )
-GAME( 200?, ad5mowowe ,ad5mowow, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Wheel Of Wealth (PR2365, MAZPBPFP) (Mazooma) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5mowowm ,ad5mowow, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Wheel Of Wealth (PR2365, MAZPBPFP) (Mazooma) (Adder 5) (set 2)", GAME_IS_SKELETON )
+GAME( 200?, ad5mowow ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Wheel Of Wealth (PR2365, MAZNBPFP) (Mazooma) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5mowowl ,ad5mowow, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Wheel Of Wealth (PR2365, MAZNBPFP) (Mazooma) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5mowowe ,ad5mowow, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Wheel Of Wealth (PR2365, MAZPBPFP) (Mazooma) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5mowowm ,ad5mowow, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Wheel Of Wealth (PR2365, MAZPBPFP) (Mazooma) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
// PR2365 MONOPOLYWOW WOW SOUNDS MONOPOLYWOW S.SITE ` MAZ*MWOW
-GAME( 200?, ad5mowowd ,ad5mowow, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Wheel Of Wealth (PR2365, MAZNMWOW) (Mazooma) (Adder 5)", GAME_IS_SKELETON )
-GAME( 200?, ad5mowowi ,ad5mowow, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Wheel Of Wealth (PR2365, MAZPMWOW) (Mazooma) (Adder 5)", GAME_IS_SKELETON )
+GAME( 200?, ad5mowowd ,ad5mowow, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Wheel Of Wealth (PR2365, MAZNMWOW) (Mazooma) (Adder 5)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5mowowi ,ad5mowow, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Wheel Of Wealth (PR2365, MAZPMWOW) (Mazooma) (Adder 5)", MACHINE_IS_SKELETON )
// PR2365 MONOPOLYWOW WOWT SOUNDS MONOPOLYWOW S.SITE ` MAZ*WOWT
-GAME( 200?, ad5mowowa ,ad5mowow, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Wheel Of Wealth (PR2365, MAZNWOWT) (Mazooma) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5mowowb ,ad5mowow, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Wheel Of Wealth (PR2365, MAZNWOWT) (Mazooma) (Adder 5) (set 2)", GAME_IS_SKELETON )
-GAME( 200?, ad5mowowf ,ad5mowow, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Wheel Of Wealth (PR2365, MAZPWOWT) (Mazooma) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5mowowg ,ad5mowow, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Wheel Of Wealth (PR2365, MAZPWOWT) (Mazooma) (Adder 5) (set 2)", GAME_IS_SKELETON )
+GAME( 200?, ad5mowowa ,ad5mowow, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Wheel Of Wealth (PR2365, MAZNWOWT) (Mazooma) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5mowowb ,ad5mowow, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Wheel Of Wealth (PR2365, MAZNWOWT) (Mazooma) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5mowowf ,ad5mowow, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Wheel Of Wealth (PR2365, MAZPWOWT) (Mazooma) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5mowowg ,ad5mowow, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Wheel Of Wealth (PR2365, MAZPWOWT) (Mazooma) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
// PR2389 MONOPOLYWOW WOWT SOUNDS MONOPOLYWOW S.SITE ` MAZ*WWBU
-GAME( 200?, ad5mowowc ,ad5mowow, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Wheel Of Wealth (PR2389, MAZNWWBU) (Mazooma) (Adder 5)", GAME_IS_SKELETON )
-GAME( 200?, ad5mowowh ,ad5mowow, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Wheel Of Wealth (PR2389, MAZPWWBU) (Mazooma) (Adder 5)", GAME_IS_SKELETON )
+GAME( 200?, ad5mowowc ,ad5mowow, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Wheel Of Wealth (PR2389, MAZNWWBU) (Mazooma) (Adder 5)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5mowowh ,ad5mowow, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Wheel Of Wealth (PR2389, MAZPWWBU) (Mazooma) (Adder 5)", MACHINE_IS_SKELETON )
// PR3075 VIDEO CASINO WOW CASINO DOND WOW ARCADE PR3075 CASINO DOND WOW SOUNDS11 (wrong game?)
-GAME( 200?, ad5mowowj ,ad5mowow, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Wheel Of Wealth (PR3075) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5mowowk ,ad5mowow, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Wheel Of Wealth (PR3075) (Adder 5) (set 2)", GAME_IS_SKELETON )
+GAME( 200?, ad5mowowj ,ad5mowow, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Wheel Of Wealth (PR3075) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5mowowk ,ad5mowow, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Wheel Of Wealth (PR3075) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
// PR2283 PINK PANTHER ` QPS*PINK (PINK PANTHER SOUNDS)
-GAME( 200?, ad5pp ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Pink Panther (PR2283, QPSNPINK) (Mazooma) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5ppa ,ad5pp, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Pink Panther (PR2283, QPSNPINK) (Mazooma) (Adder 5) (set 2)", GAME_IS_SKELETON )
-GAME( 200?, ad5ppf ,ad5pp, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Pink Panther (PR2283, QPSPPINK) (Mazooma) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5ppg ,ad5pp, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Pink Panther (PR2283, QPSPPINK) (Mazooma) (Adder 5) (set 2)", GAME_IS_SKELETON )
+GAME( 200?, ad5pp ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Pink Panther (PR2283, QPSNPINK) (Mazooma) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5ppa ,ad5pp, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Pink Panther (PR2283, QPSNPINK) (Mazooma) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5ppf ,ad5pp, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Pink Panther (PR2283, QPSPPINK) (Mazooma) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5ppg ,ad5pp, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Pink Panther (PR2283, QPSPPINK) (Mazooma) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
// PR2267 PINK PANTHER ` MAZ*PINK (SD_PANTHER SNDS)
-GAME( 200?, ad5ppb ,ad5pp, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Pink Panther (PR2267, MAZNPINK) (Mazooma) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5ppc ,ad5pp, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Pink Panther (PR2267, MAZNPINK) (Mazooma) (Adder 5) (set 2)", GAME_IS_SKELETON )
-GAME( 200?, ad5pph ,ad5pp, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Pink Panther (PR2267, MAZPPINK) (Mazooma) (Adder 5)", GAME_IS_SKELETON )
+GAME( 200?, ad5ppb ,ad5pp, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Pink Panther (PR2267, MAZNPINK) (Mazooma) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5ppc ,ad5pp, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Pink Panther (PR2267, MAZNPINK) (Mazooma) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5pph ,ad5pp, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Pink Panther (PR2267, MAZPPINK) (Mazooma) (Adder 5)", MACHINE_IS_SKELETON )
/* (no main ident string) MAZ.PINKP SOUNDS */
-GAME( 200?, ad5ppd ,ad5pp, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Pink Panther (MAZNPINK) (Mazooma) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5ppe ,ad5pp, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Pink Panther (MAZNPINK) (Mazooma) (Adder 5) (set 2)", GAME_IS_SKELETON )
-GAME( 200?, ad5ppi ,ad5pp, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Pink Panther (MAZPPINK) (Mazooma) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5ppj ,ad5pp, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Pink Panther (MAZPPINK) (Mazooma) (Adder 5) (set 2)", GAME_IS_SKELETON )
+GAME( 200?, ad5ppd ,ad5pp, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Pink Panther (MAZNPINK) (Mazooma) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5ppe ,ad5pp, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Pink Panther (MAZNPINK) (Mazooma) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5ppi ,ad5pp, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Pink Panther (MAZPPINK) (Mazooma) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5ppj ,ad5pp, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Pink Panther (MAZPPINK) (Mazooma) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
// PR1669 RANDOM SPINNER ` BFGNRNDN ( PR1669 RANDOM SPINNER SNDS11 )
-GAME( 200?, ad5rsclb ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Random Spinner Club (PR1669, BFGNRNDN) (Bellfruit) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5rsclbc ,ad5rsclb, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Random Spinner Club (PR1669, BFGNRNDN) (Bellfruit) (Adder 5) (set 2)", GAME_IS_SKELETON )
-GAME( 200?, ad5rsclbd ,ad5rsclb, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Random Spinner Club (PR1669, BFGNRNDN) (Bellfruit) (Adder 5) (set 3)", GAME_IS_SKELETON )
-GAME( 200?, ad5rsclbe ,ad5rsclb, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Random Spinner Club (PR1669, BFGNRNDN) (Bellfruit) (Adder 5) (set 4)", GAME_IS_SKELETON )
-GAME( 200?, ad5rsclbf ,ad5rsclb, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Random Spinner Club (PR1669, BFGPRNDN) (Bellfruit) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5rsclbi ,ad5rsclb, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Random Spinner Club (PR1669, BFGPRNDN) (Bellfruit) (Adder 5) (set 2)", GAME_IS_SKELETON )
-GAME( 200?, ad5rsclbj ,ad5rsclb, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Random Spinner Club (PR1669, BFGPRNDN) (Bellfruit) (Adder 5) (set 3)", GAME_IS_SKELETON )
+GAME( 200?, ad5rsclb ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Random Spinner Club (PR1669, BFGNRNDN) (Bellfruit) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5rsclbc ,ad5rsclb, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Random Spinner Club (PR1669, BFGNRNDN) (Bellfruit) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5rsclbd ,ad5rsclb, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Random Spinner Club (PR1669, BFGNRNDN) (Bellfruit) (Adder 5) (set 3)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5rsclbe ,ad5rsclb, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Random Spinner Club (PR1669, BFGNRNDN) (Bellfruit) (Adder 5) (set 4)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5rsclbf ,ad5rsclb, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Random Spinner Club (PR1669, BFGPRNDN) (Bellfruit) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5rsclbi ,ad5rsclb, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Random Spinner Club (PR1669, BFGPRNDN) (Bellfruit) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5rsclbj ,ad5rsclb, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Random Spinner Club (PR1669, BFGPRNDN) (Bellfruit) (Adder 5) (set 3)", MACHINE_IS_SKELETON )
// PR1826 RANDOM SPINNER ` BFGNRNDN ( PR1826 RANDOM SPINNER SOUNDS12 )
-GAME( 200?, ad5rsclba ,ad5rsclb, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Random Spinner Club (PR1826, BFGNRNDN) (Bellfruit) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5rsclbb ,ad5rsclb, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Random Spinner Club (PR1826, BFGNRNDN) (Bellfruit) (Adder 5) (set 2)", GAME_IS_SKELETON )
-GAME( 200?, ad5rsclbg ,ad5rsclb, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Random Spinner Club (PR1826, BFGPRNDN) (Bellfruit) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5rsclbh ,ad5rsclb, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Random Spinner Club (PR1826, BFGPRNDN) (Bellfruit) (Adder 5) (set 2)", GAME_IS_SKELETON )
+GAME( 200?, ad5rsclba ,ad5rsclb, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Random Spinner Club (PR1826, BFGNRNDN) (Bellfruit) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5rsclbb ,ad5rsclb, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Random Spinner Club (PR1826, BFGNRNDN) (Bellfruit) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5rsclbg ,ad5rsclb, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Random Spinner Club (PR1826, BFGPRNDN) (Bellfruit) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5rsclbh ,ad5rsclb, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Random Spinner Club (PR1826, BFGPRNDN) (Bellfruit) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
// PR2217 RANDOM MONOPOLY ` MAZ*RNDN - S16MONOP SOUNDS
-GAME( 200?, ad5monop ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Random Monopoly (PR2217, MAZNRNDN) (Mazooma) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5monopa ,ad5monop, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Random Monopoly (PR2217, MAZNRNDN) (Mazooma) (Adder 5) (set 2)", GAME_IS_SKELETON )
-GAME( 200?, ad5monopb ,ad5monop, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Random Monopoly (PR2217, MAZNRNDN) (Mazooma) (Adder 5) (set 3)", GAME_IS_SKELETON )
-GAME( 200?, ad5monopc ,ad5monop, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Random Monopoly (PR2217, MAZNRNDN) (Mazooma) (Adder 5) (set 4)", GAME_IS_SKELETON )
-GAME( 200?, ad5monopf ,ad5monop, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Random Monopoly (PR2217, MAZPRNDN) (Mazooma) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5monopg ,ad5monop, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Random Monopoly (PR2217, MAZPRNDN) (Mazooma) (Adder 5) (set 2)", GAME_IS_SKELETON )
-GAME( 200?, ad5monoph ,ad5monop, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Random Monopoly (PR2217, MAZPRNDN) (Mazooma) (Adder 5) (set 3)", GAME_IS_SKELETON )
-GAME( 200?, ad5monopi ,ad5monop, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Random Monopoly (PR2217, MAZPRNDN) (Mazooma) (Adder 5) (set 4)", GAME_IS_SKELETON )
+GAME( 200?, ad5monop ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Random Monopoly (PR2217, MAZNRNDN) (Mazooma) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5monopa ,ad5monop, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Random Monopoly (PR2217, MAZNRNDN) (Mazooma) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5monopb ,ad5monop, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Random Monopoly (PR2217, MAZNRNDN) (Mazooma) (Adder 5) (set 3)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5monopc ,ad5monop, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Random Monopoly (PR2217, MAZNRNDN) (Mazooma) (Adder 5) (set 4)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5monopf ,ad5monop, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Random Monopoly (PR2217, MAZPRNDN) (Mazooma) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5monopg ,ad5monop, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Random Monopoly (PR2217, MAZPRNDN) (Mazooma) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5monoph ,ad5monop, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Random Monopoly (PR2217, MAZPRNDN) (Mazooma) (Adder 5) (set 3)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5monopi ,ad5monop, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Random Monopoly (PR2217, MAZPRNDN) (Mazooma) (Adder 5) (set 4)", MACHINE_IS_SKELETON )
// PR2221 RANDOM MONOPOLY ` MAZ*RNDN - S16MONOP SOUNDS
-GAME( 200?, ad5monopd ,ad5monop, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Random Monopoly (PR2221, MAZNRNDN) (Mazooma) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5monope ,ad5monop, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Random Monopoly (PR2221, MAZNRNDN) (Mazooma) (Adder 5) (set 2)", GAME_IS_SKELETON )
-GAME( 200?, ad5monopj ,ad5monop, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Random Monopoly (PR2221, MAZPRNDN) (Mazooma) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5monopk ,ad5monop, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Random Monopoly (PR2221, MAZPRNDN) (Mazooma) (Adder 5) (set 2)", GAME_IS_SKELETON )
+GAME( 200?, ad5monopd ,ad5monop, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Random Monopoly (PR2221, MAZNRNDN) (Mazooma) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5monope ,ad5monop, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Random Monopoly (PR2221, MAZNRNDN) (Mazooma) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5monopj ,ad5monop, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Random Monopoly (PR2221, MAZPRNDN) (Mazooma) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5monopk ,ad5monop, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Random Monopoly (PR2221, MAZPRNDN) (Mazooma) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
// PR1669 RANDOM SPINNER ` BFGNRNDN ( PR1669 RANDOM SPINNER SNDS11 )
-GAME( 200?, ad5rspin ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Random Spinner (PR1669, BFGNRNDN) (Bellfruit) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5rspinb ,ad5rspin, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Random Spinner (PR1669, BFGPRNDN) (Bellfruit) (Adder 5) (set 2)", GAME_IS_SKELETON )
+GAME( 200?, ad5rspin ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Random Spinner (PR1669, BFGNRNDN) (Bellfruit) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5rspinb ,ad5rspin, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Random Spinner (PR1669, BFGPRNDN) (Bellfruit) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
// PR1872 HOT SPINNER ASTURIAS 2.00 (wrong game?) ( PR1506 RANDOM SPINNER ) (non-english, can't find a sound string)
-GAME( 200?, ad5rspinc ,ad5rspin, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Random Spinner (Bellfruit) (Adder 5) (set 1)", GAME_IS_SKELETON )
+GAME( 200?, ad5rspinc ,ad5rspin, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Random Spinner (Bellfruit) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
// PR1758 BULLSEYE TRIPLE ` BFG*BULS ( PR1758 BULLSEYE TRIPLE SOUNDS11 )
-GAME( 200?, ad5btc ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Bullseye Triple Club (PR1758, BFGPBULS) (Bellfruit) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5btca ,ad5btc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Bullseye Triple Club (PR1758, BFGPBULS) (Bellfruit) (Adder 5) (set 3)", GAME_IS_SKELETON )
-GAME( 200?, ad5btcb ,ad5btc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Bullseye Triple Club (PR1758, BFGNBULS) (Bellfruit) (Adder 5) (set 4)", GAME_IS_SKELETON )
+GAME( 200?, ad5btc ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Bullseye Triple Club (PR1758, BFGPBULS) (Bellfruit) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5btca ,ad5btc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Bullseye Triple Club (PR1758, BFGPBULS) (Bellfruit) (Adder 5) (set 3)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5btcb ,ad5btc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Bullseye Triple Club (PR1758, BFGNBULS) (Bellfruit) (Adder 5) (set 4)", MACHINE_IS_SKELETON )
// PR2226 RANDOM SPINNWIN ` MAZ*RNDN ( S16RSPINNWIN SOUNDS )
-GAME( 200?, ad5rsnw ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Random Spin 'n' Win (PR2226, MAZNRNDN) (Mazooma) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5rsnwa ,ad5rsnw, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Random Spin 'n' Win (PR2226, MAZNRNDN) (Mazooma) (Adder 5) (set 2)", GAME_IS_SKELETON )
-GAME( 200?, ad5rsnwb ,ad5rsnw, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Random Spin 'n' Win (PR2226, MAZPRNDN) (Mazooma) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5rsnwc ,ad5rsnw, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Random Spin 'n' Win (PR2226, MAZPRNDN) (Mazooma) (Adder 5) (set 2)", GAME_IS_SKELETON )
+GAME( 200?, ad5rsnw ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Random Spin 'n' Win (PR2226, MAZNRNDN) (Mazooma) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5rsnwa ,ad5rsnw, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Random Spin 'n' Win (PR2226, MAZNRNDN) (Mazooma) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5rsnwb ,ad5rsnw, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Random Spin 'n' Win (PR2226, MAZPRNDN) (Mazooma) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5rsnwc ,ad5rsnw, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Random Spin 'n' Win (PR2226, MAZPRNDN) (Mazooma) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
// PR3084 VIDEO SUPER SLAM VIDEO SUPER SLAM CLUB PR3084 SUPER SLAM VID SOUNDS11
-GAME( 200?, ad5sslam ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Super Slam (Bellfruit) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5sslama ,ad5sslam, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Super Slam (Bellfruit) (Adder 5) (set 2)", GAME_IS_SKELETON )
-GAME( 200?, ad5sslamb ,ad5sslam, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Super Slam (Bellfruit) (Adder 5) (set 3)", GAME_IS_SKELETON )
-GAME( 200?, ad5sslamc ,ad5sslam, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Super Slam (Bellfruit) (Adder 5) (set 4)", GAME_IS_SKELETON )
-GAME( 200?, ad5sslamd ,ad5sslam, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Super Slam (Bellfruit) (Adder 5) (set 5)", GAME_IS_SKELETON )
-GAME( 200?, ad5sslame ,ad5sslam, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Super Slam (Bellfruit) (Adder 5) (set 6)", GAME_IS_SKELETON )
-GAME( 200?, ad5sslamf ,ad5sslam, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Super Slam (Bellfruit) (Adder 5) (set 7)", GAME_IS_SKELETON )
+GAME( 200?, ad5sslam ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Super Slam (Bellfruit) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5sslama ,ad5sslam, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Super Slam (Bellfruit) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5sslamb ,ad5sslam, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Super Slam (Bellfruit) (Adder 5) (set 3)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5sslamc ,ad5sslam, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Super Slam (Bellfruit) (Adder 5) (set 4)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5sslamd ,ad5sslam, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Super Slam (Bellfruit) (Adder 5) (set 5)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5sslame ,ad5sslam, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Super Slam (Bellfruit) (Adder 5) (set 6)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5sslamf ,ad5sslam, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Super Slam (Bellfruit) (Adder 5) (set 7)", MACHINE_IS_SKELETON )
// PR2419 ROAD TO RICHES MR2R SOUNDS
-GAME( 200?, ad5mr2r ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Road To Riches (Mazooma) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5mr2ra ,ad5mr2r, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Road To Riches (Mazooma) (Adder 5) (set 2)", GAME_IS_SKELETON )
-GAME( 200?, ad5mr2rb ,ad5mr2r, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Road To Riches (Mazooma) (Adder 5) (set 3)", GAME_IS_SKELETON )
-GAME( 200?, ad5mr2rc ,ad5mr2r, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Road To Riches (Mazooma) (Adder 5) (set 4)", GAME_IS_SKELETON )
-GAME( 200?, ad5mr2rd ,ad5mr2r, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Road To Riches (Mazooma) (Adder 5) (set 5)", GAME_IS_SKELETON )
-GAME( 200?, ad5mr2re ,ad5mr2r, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Road To Riches (Mazooma) (Adder 5) (set 6)", GAME_IS_SKELETON )
-GAME( 200?, ad5mr2rf ,ad5mr2r, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Road To Riches (Mazooma) (Adder 5) (set 7)", GAME_IS_SKELETON )
-GAME( 200?, ad5mr2rg ,ad5mr2r, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Road To Riches (Mazooma) (Adder 5) (set 8)", GAME_IS_SKELETON )
-GAME( 200?, ad5mr2rh ,ad5mr2r, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Road To Riches (Mazooma) (Adder 5) (set 9)", GAME_IS_SKELETON )
+GAME( 200?, ad5mr2r ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Road To Riches (Mazooma) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5mr2ra ,ad5mr2r, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Road To Riches (Mazooma) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5mr2rb ,ad5mr2r, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Road To Riches (Mazooma) (Adder 5) (set 3)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5mr2rc ,ad5mr2r, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Road To Riches (Mazooma) (Adder 5) (set 4)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5mr2rd ,ad5mr2r, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Road To Riches (Mazooma) (Adder 5) (set 5)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5mr2re ,ad5mr2r, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Road To Riches (Mazooma) (Adder 5) (set 6)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5mr2rf ,ad5mr2r, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Road To Riches (Mazooma) (Adder 5) (set 7)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5mr2rg ,ad5mr2r, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Road To Riches (Mazooma) (Adder 5) (set 8)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5mr2rh ,ad5mr2r, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Monopoly Road To Riches (Mazooma) (Adder 5) (set 9)", MACHINE_IS_SKELETON )
// PR1756 RANDOM WINNER ` BFG*RWSX ( PR1756 RANDOM WINNER SOUNDS12 )
-GAME( 200?, ad5rwclb ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Random Winner Club (PR1756, BFGNRWSX) (Bellfruit) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5rwclba ,ad5rwclb, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Random Winner Club (PR1756, BFGNRWSX) (Bellfruit) (Adder 5) (set 2)", GAME_IS_SKELETON )
-GAME( 200?, ad5rwclbb ,ad5rwclb, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Random Winner Club (PR1756, BFGPRWSX) (Bellfruit) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5rwclbc ,ad5rwclb, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Random Winner Club (PR1756, BFGPRWSX) (Bellfruit) (Adder 5) (set 2)", GAME_IS_SKELETON )
+GAME( 200?, ad5rwclb ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Random Winner Club (PR1756, BFGNRWSX) (Bellfruit) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5rwclba ,ad5rwclb, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Random Winner Club (PR1756, BFGNRWSX) (Bellfruit) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5rwclbb ,ad5rwclb, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Random Winner Club (PR1756, BFGPRWSX) (Bellfruit) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5rwclbc ,ad5rwclb, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Random Winner Club (PR1756, BFGPRWSX) (Bellfruit) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
// PR1757 RANDOM WINNER ` BFG*RWCL ( PR1756 RANDOM WINNER SOUNDS12 )
-GAME( 200?, ad5rwclbd ,ad5rwclb, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Random Winner Club (PR1757, BFGPRWCL) (Bellfruit) (Adder 5)", GAME_IS_SKELETON )
-GAME( 200?, ad5rwclbe ,ad5rwclb, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Random Winner Club (PR1757, BFGNRWCL) (Bellfruit) (Adder 5)", GAME_IS_SKELETON )
+GAME( 200?, ad5rwclbd ,ad5rwclb, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Random Winner Club (PR1757, BFGPRWCL) (Bellfruit) (Adder 5)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5rwclbe ,ad5rwclb, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Random Winner Club (PR1757, BFGNRWCL) (Bellfruit) (Adder 5)", MACHINE_IS_SKELETON )
// PR2258 GOLDEN WINNER
-GAME( 200?, ad5gldwn ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Golden Winner (Mazooma) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5gldwna ,ad5gldwn, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Golden Winner (Mazooma) (Adder 5) (set 2)", GAME_IS_SKELETON )
+GAME( 200?, ad5gldwn ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Golden Winner (Mazooma) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5gldwna ,ad5gldwn, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Golden Winner (Mazooma) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
// PR1712 RAPID PAY PR1712 RAPID PAY SOUNDS11
-GAME( 200?, ad5rapid ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Rapid Pay (Bellfruit) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5rapida ,ad5rapid, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Rapid Pay (Bellfruit) (Adder 5) (set 2)", GAME_IS_SKELETON )
+GAME( 200?, ad5rapid ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Rapid Pay (Bellfruit) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5rapida ,ad5rapid, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Rapid Pay (Bellfruit) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
// PR2226 JACKPOT MONOPOLY ` MAZ*JACM (JPMONP SOUNDS)
-GAME( 200?, ad5jckmo ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Jackpot Monopoly (PR2226, MAZNJACM) (Mazooma) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5jckmoa ,ad5jckmo, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Jackpot Monopoly (PR2226, MAZNJACM) (Mazooma) (Adder 5) (set 2)", GAME_IS_SKELETON )
-GAME( 200?, ad5jckmoc ,ad5jckmo, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Jackpot Monopoly (PR2226, MAZNJACM) (Mazooma) (Adder 5) (set 3)", GAME_IS_SKELETON )
-GAME( 200?, ad5jckmod ,ad5jckmo, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Jackpot Monopoly (PR2226, MAZPJACM) (Mazooma) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5jckmoe ,ad5jckmo, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Jackpot Monopoly (PR2226, MAZPJACM) (Mazooma) (Adder 5) (set 2)", GAME_IS_SKELETON )
+GAME( 200?, ad5jckmo ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Jackpot Monopoly (PR2226, MAZNJACM) (Mazooma) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5jckmoa ,ad5jckmo, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Jackpot Monopoly (PR2226, MAZNJACM) (Mazooma) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5jckmoc ,ad5jckmo, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Jackpot Monopoly (PR2226, MAZNJACM) (Mazooma) (Adder 5) (set 3)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5jckmod ,ad5jckmo, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Jackpot Monopoly (PR2226, MAZPJACM) (Mazooma) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5jckmoe ,ad5jckmo, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Jackpot Monopoly (PR2226, MAZPJACM) (Mazooma) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
// PR2253 JACKPOT MONOPOLY ` MAZNJACM (JPMONP SOUNDS)
-GAME( 200?, ad5jckmob ,ad5jckmo, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Jackpot Monopoly (PR2253, MAZNJACM) (Mazooma) (Adder 5)", GAME_IS_SKELETON )
+GAME( 200?, ad5jckmob ,ad5jckmo, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Jackpot Monopoly (PR2253, MAZNJACM) (Mazooma) (Adder 5)", MACHINE_IS_SKELETON )
// PR2304 PINKP_BTB PPBTB SOUNDS PINKP_BTB S.SITE ` QPSNPPBB
-GAME( 200?, ad5ppbtb ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Qps","Pink Panther Break The Bank (PR2304, QPSNPPBB) (Qps) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5ppbtba ,ad5ppbtb, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Qps","Pink Panther Break The Bank (PR2304, QPSNPPBB) (Qps) (Adder 5) (set 2)", GAME_IS_SKELETON )
-GAME( 200?, ad5ppbtbb ,ad5ppbtb, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Qps","Pink Panther Break The Bank (PR2304, QPSPPPBB) (Qps) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5ppbtbc ,ad5ppbtb, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Qps","Pink Panther Break The Bank (PR2304, QPSPPPBB) (Qps) (Adder 5) (set 2)", GAME_IS_SKELETON )
+GAME( 200?, ad5ppbtb ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Qps","Pink Panther Break The Bank (PR2304, QPSNPPBB) (Qps) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5ppbtba ,ad5ppbtb, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Qps","Pink Panther Break The Bank (PR2304, QPSNPPBB) (Qps) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5ppbtbb ,ad5ppbtb, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Qps","Pink Panther Break The Bank (PR2304, QPSPPPBB) (Qps) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5ppbtbc ,ad5ppbtb, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Qps","Pink Panther Break The Bank (PR2304, QPSPPPBB) (Qps) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
// PR3507 AWP VIVA LAS VEGAS SCORP5 PR3507 VIVA LAS VEGAS SOUNDS11
-GAME( 200?, ad5vlv ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Viva Las Vegas (Bellfruit) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5vlvb ,ad5vlv, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Viva Las Vegas (Bellfruit) (Adder 5) (set 2)", GAME_IS_SKELETON )
-GAME( 200?, ad5vlvc ,ad5vlv, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Viva Las Vegas (Bellfruit) (Adder 5) (set 3)", GAME_IS_SKELETON )
-GAME( 200?, ad5vlvd ,ad5vlv, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Viva Las Vegas (Bellfruit) (Adder 5) (set 4)", GAME_IS_SKELETON )
-GAME( 200?, ad5vlve ,ad5vlv, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Viva Las Vegas (Bellfruit) (Adder 5) (set 5)", GAME_IS_SKELETON )
-GAME( 200?, ad5vlvf ,ad5vlv, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Viva Las Vegas (Bellfruit) (Adder 5) (set 6)", GAME_IS_SKELETON )
+GAME( 200?, ad5vlv ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Viva Las Vegas (Bellfruit) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5vlvb ,ad5vlv, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Viva Las Vegas (Bellfruit) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5vlvc ,ad5vlv, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Viva Las Vegas (Bellfruit) (Adder 5) (set 3)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5vlvd ,ad5vlv, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Viva Las Vegas (Bellfruit) (Adder 5) (set 4)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5vlve ,ad5vlv, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Viva Las Vegas (Bellfruit) (Adder 5) (set 5)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5vlvf ,ad5vlv, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Viva Las Vegas (Bellfruit) (Adder 5) (set 6)", MACHINE_IS_SKELETON )
// PR2331 RROULETTE REEL ROULETTE SOUNDS RROULETTE S.SITE ` QPS*RLRO
-GAME( 200?, ad5rroul ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Reel Roulette (QPSNRLRO) (Mazooma) (Adder 5)", GAME_IS_SKELETON )
-GAME( 200?, ad5rroula ,ad5rroul, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Reel Roulette (QPSPRLRO) (Mazooma) (Adder 5)", GAME_IS_SKELETON )
+GAME( 200?, ad5rroul ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Reel Roulette (QPSNRLRO) (Mazooma) (Adder 5)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5rroula ,ad5rroul, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Reel Roulette (QPSPRLRO) (Mazooma) (Adder 5)", MACHINE_IS_SKELETON )
// PR2331 RROULETTE REEL ROULETTE SOUNDS RROULETTE S.SITE ` MAZ*RERO
-GAME( 200?, ad5rroulb ,ad5rroul, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Reel Roulette (MAZNRERO) (Mazooma) (Adder 5)", GAME_IS_SKELETON )
-GAME( 200?, ad5rroulc ,ad5rroul, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Reel Roulette (MAZPRERO) (Mazooma) (Adder 5)", GAME_IS_SKELETON )
+GAME( 200?, ad5rroulb ,ad5rroul, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Reel Roulette (MAZNRERO) (Mazooma) (Adder 5)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5rroulc ,ad5rroul, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Reel Roulette (MAZPRERO) (Mazooma) (Adder 5)", MACHINE_IS_SKELETON )
// PR2444 MONTE CARLO OR BUST MONTE SOUNDS
-GAME( 200?, ad5mcob ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Qps","Monte Carlo Or Bust (Qps) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5mcoba ,ad5mcob, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Qps","Monte Carlo Or Bust (Qps) (Adder 5) (set 2)", GAME_IS_SKELETON )
-GAME( 200?, ad5mcobb ,ad5mcob, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Qps","Monte Carlo Or Bust (Qps) (Adder 5) (set 3)", GAME_IS_SKELETON )
-GAME( 200?, ad5mcobc ,ad5mcob, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Qps","Monte Carlo Or Bust (Qps) (Adder 5) (set 4)", GAME_IS_SKELETON )
+GAME( 200?, ad5mcob ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Qps","Monte Carlo Or Bust (Qps) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5mcoba ,ad5mcob, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Qps","Monte Carlo Or Bust (Qps) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5mcobb ,ad5mcob, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Qps","Monte Carlo Or Bust (Qps) (Adder 5) (set 3)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5mcobc ,ad5mcob, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Qps","Monte Carlo Or Bust (Qps) (Adder 5) (set 4)", MACHINE_IS_SKELETON )
// PR1625 POKER KING PR1625 POKER KING SOUNDS11 POKER KING S.SITE
-GAME( 200?, ad5pking ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Poker King (Bellfruit) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5pkinga ,ad5pking, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Poker King (Bellfruit) (Adder 5) (set 2)", GAME_IS_SKELETON )
+GAME( 200?, ad5pking ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Poker King (Bellfruit) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5pkinga ,ad5pking, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Poker King (Bellfruit) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
// PR3073 VIDEO POKER ACE VID POKER ACE ARCADE PR3073 POKER ACE SOUNDS11
-GAME( 200?, ad5vpa ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Video Poker Ace (Bellfruit) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5vpaa ,ad5vpa, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Video Poker Ace (Bellfruit) (Adder 5) (set 2)", GAME_IS_SKELETON )
-GAME( 200?, ad5vpab ,ad5vpa, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Video Poker Ace (Bellfruit) (Adder 5) (set 3)", GAME_IS_SKELETON )
-GAME( 200?, ad5vpac ,ad5vpa, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Video Poker Ace (Bellfruit) (Adder 5) (set 4)", GAME_IS_SKELETON )
+GAME( 200?, ad5vpa ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Video Poker Ace (Bellfruit) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5vpaa ,ad5vpa, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Video Poker Ace (Bellfruit) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5vpab ,ad5vpa, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Video Poker Ace (Bellfruit) (Adder 5) (set 3)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5vpac ,ad5vpa, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Video Poker Ace (Bellfruit) (Adder 5) (set 4)", MACHINE_IS_SKELETON )
// PR1629 TORNADO 5.5 (Revision 8) ` BFG*TORD ( PR1627 TORNADO CLUB SOUNDS11 )
-GAME( 200?, ad5tornc ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Tornado Club (PR1629, 5.5, rv 8, BFGNTORD) (Bellfruit) (Adder 5)", GAME_IS_SKELETON )
-GAME( 200?, ad5torncb ,ad5tornc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Tornado Club (PR1629, 5.5, rv 8, BFGPTORD) (Bellfruit) (Adder 5)", GAME_IS_SKELETON )
+GAME( 200?, ad5tornc ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Tornado Club (PR1629, 5.5, rv 8, BFGNTORD) (Bellfruit) (Adder 5)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5torncb ,ad5tornc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Tornado Club (PR1629, 5.5, rv 8, BFGPTORD) (Bellfruit) (Adder 5)", MACHINE_IS_SKELETON )
// PR1629 TORNADO 5.8 (Revision 7) ` BFGPTORD ( PR1627 TORNADO CLUB SOUNDS11 )
-GAME( 200?, ad5tornca ,ad5tornc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Tornado Club (PR1629, 5.8, rv 7, BFGNTORD) (Bellfruit) (Adder 5)", GAME_IS_SKELETON )
-GAME( 200?, ad5torncc ,ad5tornc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Tornado Club (PR1629, 5.8, rv 7, BFGPTORD) (Bellfruit) (Adder 5)", GAME_IS_SKELETON )
+GAME( 200?, ad5tornca ,ad5tornc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Tornado Club (PR1629, 5.8, rv 7, BFGNTORD) (Bellfruit) (Adder 5)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5torncc ,ad5tornc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Tornado Club (PR1629, 5.8, rv 7, BFGPTORD) (Bellfruit) (Adder 5)", MACHINE_IS_SKELETON )
// PR1627 TORNADO 0.1 (Revision 1) ` BFG*TORN ( PR1627 TORNADO CLUB SOUNDS11 )
-GAME( 200?, ad5tornce ,ad5tornc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Tornado Club (PR1627, 0.1, rv 1, BFGNTORN) (Bellfruit) (Adder 5)", GAME_IS_SKELETON )
-GAME( 200?, ad5torncd ,ad5tornc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Tornado Club (PR1627, 0.1, rv 1, BFGPTORN) (Bellfruit) (Adder 5)", GAME_IS_SKELETON )
+GAME( 200?, ad5tornce ,ad5tornc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Tornado Club (PR1627, 0.1, rv 1, BFGNTORN) (Bellfruit) (Adder 5)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5torncd ,ad5tornc, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Tornado Club (PR1627, 0.1, rv 1, BFGPTORN) (Bellfruit) (Adder 5)", MACHINE_IS_SKELETON )
// PR2268 REEL CASH
-GAME( 200?, ad5rcash ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Reel Cash (Mazooma) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5rcasha ,ad5rcash, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Reel Cash (Mazooma) (Adder 5) (set 2)", GAME_IS_SKELETON )
+GAME( 200?, ad5rcash ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Reel Cash (Mazooma) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5rcasha ,ad5rcash, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Reel Cash (Mazooma) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
// PR2284 RANDOM MONOPOLY WOTW ( S16MONOPWOW SOUNDS )
-GAME( 200?, ad5mww ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Random Monopoly Wonders Of The World (PR2284) (Mazooma) (Adder 5)", GAME_IS_SKELETON )
+GAME( 200?, ad5mww ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Random Monopoly Wonders Of The World (PR2284) (Mazooma) (Adder 5)", MACHINE_IS_SKELETON )
// PR2291 RANDOM MONOPOLY WOTW ( S16MONOPWOW SOUNDS )
-GAME( 200?, ad5mwwa ,ad5mww, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Random Monopoly Wonders Of The World (PR2291) (Mazooma) (Adder 5)", GAME_IS_SKELETON )
+GAME( 200?, ad5mwwa ,ad5mww, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Random Monopoly Wonders Of The World (PR2291) (Mazooma) (Adder 5)", MACHINE_IS_SKELETON )
// PR2242 EYES DOWN ` MAZ*EYDW
-GAME( 200?, ad5eyes ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Eyes Down (PR2242, MAZNEYDW) (Mazooma) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5eyesa ,ad5eyes, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Eyes Down (PR2242, MAZNEYDW) (Mazooma) (Adder 5) (set 2)", GAME_IS_SKELETON )
-GAME( 200?, ad5eyesd ,ad5eyes, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Eyes Down (PR2242, MAZPEYDW) (Mazooma) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5eyese ,ad5eyes, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Eyes Down (PR2242, MAZPEYDW) (Mazooma) (Adder 5) (set 2)", GAME_IS_SKELETON )
+GAME( 200?, ad5eyes ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Eyes Down (PR2242, MAZNEYDW) (Mazooma) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5eyesa ,ad5eyes, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Eyes Down (PR2242, MAZNEYDW) (Mazooma) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5eyesd ,ad5eyes, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Eyes Down (PR2242, MAZPEYDW) (Mazooma) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5eyese ,ad5eyes, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Eyes Down (PR2242, MAZPEYDW) (Mazooma) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
// PR2246 EYES DOWN ` MAZ*EYDW
-GAME( 200?, ad5eyesb ,ad5eyes, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Eyes Down (PR2246, MAZNEYDW) (Mazooma) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5eyesg ,ad5eyes, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Eyes Down (PR2246, MAZNEYDW) (Mazooma) (Adder 5) (set 2)", GAME_IS_SKELETON )
-GAME( 200?, ad5eyesc ,ad5eyes, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Eyes Down (PR2246, MAZPEYDW) (Mazooma) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5eyesf ,ad5eyes, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Eyes Down (PR2246, MAZPEYDW) (Mazooma) (Adder 5) (set 2)", GAME_IS_SKELETON )
+GAME( 200?, ad5eyesb ,ad5eyes, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Eyes Down (PR2246, MAZNEYDW) (Mazooma) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5eyesg ,ad5eyes, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Eyes Down (PR2246, MAZNEYDW) (Mazooma) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5eyesc ,ad5eyes, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Eyes Down (PR2246, MAZPEYDW) (Mazooma) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5eyesf ,ad5eyes, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "Mazooma","Eyes Down (PR2246, MAZPEYDW) (Mazooma) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
// PR3302 AWP RONNIE O SULLIVANS ROCKET MONEY SCORP5 PR3302 RONNIE ROCKET SOUNDS11
-GAME( 200?, ad5rsrm ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Ronnie O'Sullivan's Rocket Money (Bellfruit) (Adder 5) (set 1)", GAME_IS_SKELETON )
-GAME( 200?, ad5rsrma ,ad5rsrm, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Ronnie O'Sullivan's Rocket Money (Bellfruit) (Adder 5) (set 2)", GAME_IS_SKELETON )
-GAME( 200?, ad5rsrr ,ad5rsrm, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Ronnie O'Sullivan's Rocket Money (Bellfruit) (Adder 5) (set 3)", GAME_IS_SKELETON )
-GAME( 200?, ad5rsrra ,ad5rsrm, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Ronnie O'Sullivan's Rocket Money (Bellfruit) (Adder 5) (set 4)", GAME_IS_SKELETON )
+GAME( 200?, ad5rsrm ,0, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Ronnie O'Sullivan's Rocket Money (Bellfruit) (Adder 5) (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5rsrma ,ad5rsrm, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Ronnie O'Sullivan's Rocket Money (Bellfruit) (Adder 5) (set 2)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5rsrr ,ad5rsrm, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Ronnie O'Sullivan's Rocket Money (Bellfruit) (Adder 5) (set 3)", MACHINE_IS_SKELETON )
+GAME( 200?, ad5rsrra ,ad5rsrm, bfm_ad5, bfm_ad5, adder5_state, ad5, ROT0, "BFM","Ronnie O'Sullivan's Rocket Money (Bellfruit) (Adder 5) (set 4)", MACHINE_IS_SKELETON )
diff --git a/src/mame/drivers/bfm_sc1.c b/src/mame/drivers/bfm_sc1.c
index 924f43f1f66..e6c8de85375 100644
--- a/src/mame/drivers/bfm_sc1.c
+++ b/src/mame/drivers/bfm_sc1.c
@@ -2597,10 +2597,10 @@ ROM_END
/////////////////////////////////////////////////////////////////////////////////////
-#define GAME_FLAGS GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_NOT_WORKING|GAME_MECHANICAL
+#define GAME_FLAGS MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL
//Adder 2
-GAME( 1996, m_tppokr , 0 , scorpion1_adder2 , toppoker , bfm_sc1_state, toppoker , 0, "BFM/ELAM", "Top Poker (Dutch, Game Card 95-750-899)", GAME_SUPPORTS_SAVE|GAME_NOT_WORKING )
+GAME( 1996, m_tppokr , 0 , scorpion1_adder2 , toppoker , bfm_sc1_state, toppoker , 0, "BFM/ELAM", "Top Poker (Dutch, Game Card 95-750-899)", MACHINE_SUPPORTS_SAVE|MACHINE_NOT_WORKING )
/********************************************************************************************************************************************************************************************************************
@@ -3108,7 +3108,7 @@ GAME( 1988, sc1lotusa , sc1lotus , scorpion1 , scorpion1 , bfm_sc
GAME( 1988, sc1roul , 0 , scorpion1 , scorpion1 , bfm_sc1_state, rou029 , 0, "BFM/ELAM", "Roulette (Dutch, Game Card 39-360-129?)", GAME_FLAGS )
// PROJECT NUMBER 6045 ARMADA GAME No 39-370-729 - 28-AUG-1992 14:37:00
-GAME( 198?, sc1armad , 0 , scorpion1 , scorpion1 , bfm_sc1_state, lotse , 0, "BFM/ELAM", "Armada (Dutch) (Bellfruit) (Scorpion 1)", GAME_FLAGS )
+GAME( 198?, sc1armad , 0 , scorpion1 , scorpion1 , bfm_sc1_state, lotse , 0, "BFM/ELAM", "Armada (Dutch) (Bellfruit) (Scorpion 1)", GAME_FLAGS )
// PROJECT NUMBER 6043 CALYPSO GAME No 39-370-754 - 08-DEC-1992 13:20:00
GAME( 198?, sc1calyp , 0 , scorpion1 , scorpion1 , bfm_sc1_state, lotse , 0, "BFM/ELAM", "Calypso (Dutch) (Bellfruit) (Scorpion 1)", GAME_FLAGS )
@@ -3147,7 +3147,7 @@ GAME( 198?, sc1copdd , 0 , scorpion1 , scorpion1 , bfm_sc
GAME( 198?, sc1disc , 0 , scorpion1 , scorpion1 , bfm_sc1_state, lotse , 0, "BFM/ELAM", "Discovey (Dutch) (Bellfruit) (Scorpion 1)", GAME_FLAGS )
// PROJECT NUMBER 5956 FLASH GAME No 95-750-771 - 17-JUN-1996 09:30:53
-GAME( 198?, sc1flash , 0 , scorpion1 , scorpion1 , bfm_sc1_state, nocrypt , 0, "BFM/ELAM", "Flash (Dutch) (Bellfruit) (Scorpion 1)", GAME_FLAGS )
+GAME( 198?, sc1flash , 0 , scorpion1 , scorpion1 , bfm_sc1_state, nocrypt , 0, "BFM/ELAM", "Flash (Dutch) (Bellfruit) (Scorpion 1)", GAME_FLAGS )
// PROJECT NUMBER 5391 FRUIT LINES GAME No 39-370-653 - 30-JUL-1992 09:31:10
GAME( 198?, sc1fruit , 0 , scorpion1 , scorpion1 , bfm_sc1_state, lotse , 0, "BFM/ELAM", "Fruit Lines (Dutch) (Bellfruit) (set 1) (Scorpion 1)", GAME_FLAGS )
@@ -3284,19 +3284,19 @@ GAME( 199?, sc1lamb , 0 , scorpion1 , scorpion1 , bfm_sc
// Misc 3rd Party
-GAME( 199?, sc1smoke , 0 , scorpion1 , scorpion1 , bfm_sc1_state, nocrypt , 0, "Mdm", "Smokey Vs The Bandit (Mdm) (set 1) (Scorpion 2/3?)", GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_NO_SOUND )
-GAME( 199?, sc1smokea , sc1smoke , scorpion1 , scorpion1 , bfm_sc1_state, nocrypt , 0, "Mdm", "Smokey Vs The Bandit (Mdm) (set 2) (Scorpion 2/3?)", GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_NO_SOUND )
+GAME( 199?, sc1smoke , 0 , scorpion1 , scorpion1 , bfm_sc1_state, nocrypt , 0, "Mdm", "Smokey Vs The Bandit (Mdm) (set 1) (Scorpion 2/3?)", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_NO_SOUND )
+GAME( 199?, sc1smokea , sc1smoke , scorpion1 , scorpion1 , bfm_sc1_state, nocrypt , 0, "Mdm", "Smokey Vs The Bandit (Mdm) (set 2) (Scorpion 2/3?)", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_NO_SOUND )
-GAME( 199?, sc1ccroc , 0 , scorpion1 , scorpion1 , bfm_sc1_state, nocrypt , 0, "Mdm", "Crazy Crocs (Mdm) (set 1) (Scorpion 2/3?)", GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_NO_SOUND )
-GAME( 199?, sc1ccroca , sc1ccroc , scorpion1 , scorpion1 , bfm_sc1_state, nocrypt , 0, "Mdm", "Crazy Crocs (Mdm) (set 2) (Scorpion 2/3?)", GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_NO_SOUND )
-GAME( 199?, sc1ccrocb , sc1ccroc , scorpion1 , scorpion1 , bfm_sc1_state, nocrypt , 0, "Mdm", "Crazy Crocs (Mdm) (set 3) (Scorpion 2/3?)", GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_NO_SOUND )
-GAME( 199?, sc1ccrocc , sc1ccroc , scorpion1 , scorpion1 , bfm_sc1_state, nocrypt , 0, "Mdm", "Crazy Crocs (Mdm) (set 4) (Scorpion 2/3?)", GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_NO_SOUND )
+GAME( 199?, sc1ccroc , 0 , scorpion1 , scorpion1 , bfm_sc1_state, nocrypt , 0, "Mdm", "Crazy Crocs (Mdm) (set 1) (Scorpion 2/3?)", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_NO_SOUND )
+GAME( 199?, sc1ccroca , sc1ccroc , scorpion1 , scorpion1 , bfm_sc1_state, nocrypt , 0, "Mdm", "Crazy Crocs (Mdm) (set 2) (Scorpion 2/3?)", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_NO_SOUND )
+GAME( 199?, sc1ccrocb , sc1ccroc , scorpion1 , scorpion1 , bfm_sc1_state, nocrypt , 0, "Mdm", "Crazy Crocs (Mdm) (set 3) (Scorpion 2/3?)", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_NO_SOUND )
+GAME( 199?, sc1ccrocc , sc1ccroc , scorpion1 , scorpion1 , bfm_sc1_state, nocrypt , 0, "Mdm", "Crazy Crocs (Mdm) (set 4) (Scorpion 2/3?)", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_NO_SOUND )
-GAME( 199?, sc1crocr , 0 , scorpion1 , scorpion1 , bfm_sc1_state, nocrypt , 0, "Mdm", "Croc And Roll (Mdm) (Scorpion 2/3?)", GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_NO_SOUND )
+GAME( 199?, sc1crocr , 0 , scorpion1 , scorpion1 , bfm_sc1_state, nocrypt , 0, "Mdm", "Croc And Roll (Mdm) (Scorpion 2/3?)", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_NO_SOUND )
-GAME( 199?, sc1btclk , 0 , scorpion1 , scorpion1 , bfm_sc1_state, nocrypt , 0, "Mdm", "Beat The Clock (Mdm) (set 1) (Scorpion 2/3?)", GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_NO_SOUND )
-GAME( 199?, sc1btclka , sc1btclk , scorpion1 , scorpion1 , bfm_sc1_state, nocrypt , 0, "Mdm", "Beat The Clock (Mdm) (set 2) (Scorpion 2/3?)", GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_NO_SOUND )
-GAME( 199?, sc1btclkb , sc1btclk , scorpion1 , scorpion1 , bfm_sc1_state, nocrypt , 0, "Mdm", "Beat The Clock (Mdm) (set 3) (Scorpion 2/3?)", GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_NO_SOUND )
+GAME( 199?, sc1btclk , 0 , scorpion1 , scorpion1 , bfm_sc1_state, nocrypt , 0, "Mdm", "Beat The Clock (Mdm) (set 1) (Scorpion 2/3?)", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_NO_SOUND )
+GAME( 199?, sc1btclka , sc1btclk , scorpion1 , scorpion1 , bfm_sc1_state, nocrypt , 0, "Mdm", "Beat The Clock (Mdm) (set 2) (Scorpion 2/3?)", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_NO_SOUND )
+GAME( 199?, sc1btclkb , sc1btclk , scorpion1 , scorpion1 , bfm_sc1_state, nocrypt , 0, "Mdm", "Beat The Clock (Mdm) (set 3) (Scorpion 2/3?)", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_NO_SOUND )
GAME( 199?, sc1days , 0 , scorpion1 , scorpion1 , bfm_sc1_state, lotse , 0, "Global", "All In A Days Work (Global) (set 1)", GAME_FLAGS)
GAME( 199?, sc1daysa , sc1days , scorpion1 , scorpion1 , bfm_sc1_state, lotse , 0, "Global", "All In A Days Work (Global) (set 2)", GAME_FLAGS)
diff --git a/src/mame/drivers/bfm_sc2.c b/src/mame/drivers/bfm_sc2.c
index b2a3fc48507..e96c5f86687 100644
--- a/src/mame/drivers/bfm_sc2.c
+++ b/src/mame/drivers/bfm_sc2.c
@@ -7474,29 +7474,29 @@ ROM_END
/* Video Based (Adder 2) */
-#define GAME_FLAGS GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_NOT_WORKING|GAME_MECHANICAL
+#define GAME_FLAGS MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL
-GAMEL( 1993, quintoon, 0, scorpion2_vid, quintoon, bfm_sc2_state, quintoon, 0, "BFM", "Quintoon (UK, Game Card 95-750-206)", GAME_SUPPORTS_SAVE|GAME_IMPERFECT_SOUND,layout_quintoon ) //Current samples need verification
-GAMEL( 1993, quintond, quintoon, scorpion2_vid, quintoon, bfm_sc2_state, quintoon, 0, "BFM", "Quintoon (UK, Game Card 95-751-206, Datapak)",GAME_SUPPORTS_SAVE|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING,layout_quintoon ) //Current samples need verification
-GAMEL( 1993, quintono, quintoon, scorpion2_vid, quintoon, bfm_sc2_state, quintoon, 0, "BFM", "Quintoon (UK, Game Card 95-750-203)", GAME_SUPPORTS_SAVE|GAME_IMPERFECT_SOUND,layout_quintoon ) //Current samples need verification
+GAMEL( 1993, quintoon, 0, scorpion2_vid, quintoon, bfm_sc2_state, quintoon, 0, "BFM", "Quintoon (UK, Game Card 95-750-206)", MACHINE_SUPPORTS_SAVE|MACHINE_IMPERFECT_SOUND,layout_quintoon ) //Current samples need verification
+GAMEL( 1993, quintond, quintoon, scorpion2_vid, quintoon, bfm_sc2_state, quintoon, 0, "BFM", "Quintoon (UK, Game Card 95-751-206, Datapak)",MACHINE_SUPPORTS_SAVE|MACHINE_IMPERFECT_SOUND|MACHINE_NOT_WORKING,layout_quintoon ) //Current samples need verification
+GAMEL( 1993, quintono, quintoon, scorpion2_vid, quintoon, bfm_sc2_state, quintoon, 0, "BFM", "Quintoon (UK, Game Card 95-750-203)", MACHINE_SUPPORTS_SAVE|MACHINE_IMPERFECT_SOUND,layout_quintoon ) //Current samples need verification
-GAMEL( 1993, qntoond, 0, scorpion2_vid, qntoond, bfm_sc2_state, adder_dutch,0, "BFM/ELAM", "Quintoon (Dutch, Game Card 95-750-243)", GAME_SUPPORTS_SAVE,layout_quintoon )
-GAMEL( 1993, qntoondo, qntoond, scorpion2_vid, qntoond, bfm_sc2_state, adder_dutch,0, "BFM/ELAM", "Quintoon (Dutch, Game Card 95-750-136)", GAME_SUPPORTS_SAVE,layout_quintoon )
+GAMEL( 1993, qntoond, 0, scorpion2_vid, qntoond, bfm_sc2_state, adder_dutch,0, "BFM/ELAM", "Quintoon (Dutch, Game Card 95-750-243)", MACHINE_SUPPORTS_SAVE,layout_quintoon )
+GAMEL( 1993, qntoondo, qntoond, scorpion2_vid, qntoond, bfm_sc2_state, adder_dutch,0, "BFM/ELAM", "Quintoon (Dutch, Game Card 95-750-136)", MACHINE_SUPPORTS_SAVE,layout_quintoon )
-GAMEL( 1994, pokio, 0, scorpion2_vid, pokio, bfm_sc2_state, adder_dutch,0, "BFM/ELAM", "Pokio (Dutch, Game Card 95-750-278)", GAME_SUPPORTS_SAVE,layout_pokio )
+GAMEL( 1994, pokio, 0, scorpion2_vid, pokio, bfm_sc2_state, adder_dutch,0, "BFM/ELAM", "Pokio (Dutch, Game Card 95-750-278)", MACHINE_SUPPORTS_SAVE,layout_pokio )
-GAMEL( 1995, paradice, 0, scorpion2_vid, paradice, bfm_sc2_state, adder_dutch,0, "BFM/ELAM", "Paradice (Dutch, Game Card 95-750-615)", GAME_SUPPORTS_SAVE,layout_paradice )
+GAMEL( 1995, paradice, 0, scorpion2_vid, paradice, bfm_sc2_state, adder_dutch,0, "BFM/ELAM", "Paradice (Dutch, Game Card 95-750-615)", MACHINE_SUPPORTS_SAVE,layout_paradice )
-GAMEL( 1996, pyramid, 0, scorpion2_vid, pyramid, bfm_sc2_state, pyramid, 0, "BFM/ELAM", "Pyramid (Dutch, Game Card 95-750-898)", GAME_SUPPORTS_SAVE,layout_pyramid )
+GAMEL( 1996, pyramid, 0, scorpion2_vid, pyramid, bfm_sc2_state, pyramid, 0, "BFM/ELAM", "Pyramid (Dutch, Game Card 95-750-898)", MACHINE_SUPPORTS_SAVE,layout_pyramid )
-GAMEL( 1995, slotsnl, 0, scorpion2_vid, slotsnl, bfm_sc2_state, adder_dutch,0, "BFM/ELAM", "Slots (Dutch, Game Card 95-750-368)", GAME_SUPPORTS_SAVE,layout_slots )
+GAMEL( 1995, slotsnl, 0, scorpion2_vid, slotsnl, bfm_sc2_state, adder_dutch,0, "BFM/ELAM", "Slots (Dutch, Game Card 95-750-368)", MACHINE_SUPPORTS_SAVE,layout_slots )
-GAMEL( 1996, sltblgtk, 0, scorpion2_vid, sltblgtk, bfm_sc2_state, sltsbelg, 0, "BFM/ELAM", "Slots (Belgian Token, Game Card 95-750-943)", GAME_SUPPORTS_SAVE,layout_sltblgtk )
+GAMEL( 1996, sltblgtk, 0, scorpion2_vid, sltblgtk, bfm_sc2_state, sltsbelg, 0, "BFM/ELAM", "Slots (Belgian Token, Game Card 95-750-943)", MACHINE_SUPPORTS_SAVE,layout_sltblgtk )
-GAMEL( 1996, sltblgpo, 0, scorpion2_vid, sltblgpo, bfm_sc2_state, sltsbelg, 0, "BFM/ELAM", "Slots (Belgian Cash, Game Card 95-750-938)", GAME_SUPPORTS_SAVE,layout_sltblgpo )
-GAMEL( 1996, sltblgp1, sltblgpo, scorpion2_vid, sltblgpo, bfm_sc2_state, sltsbelg, 0, "BFM/ELAM", "Slots (Belgian Cash, Game Card 95-752-008)", GAME_SUPPORTS_SAVE,layout_sltblgpo )
+GAMEL( 1996, sltblgpo, 0, scorpion2_vid, sltblgpo, bfm_sc2_state, sltsbelg, 0, "BFM/ELAM", "Slots (Belgian Cash, Game Card 95-750-938)", MACHINE_SUPPORTS_SAVE,layout_sltblgpo )
+GAMEL( 1996, sltblgp1, sltblgpo, scorpion2_vid, sltblgpo, bfm_sc2_state, sltsbelg, 0, "BFM/ELAM", "Slots (Belgian Cash, Game Card 95-752-008)", MACHINE_SUPPORTS_SAVE,layout_sltblgpo )
-GAMEL( 1997, gldncrwn, 0, scorpion2_vid, gldncrwn, bfm_sc2_state, gldncrwn, 0, "BFM/ELAM", "Golden Crown (Dutch, Game Card 95-752-011)", GAME_SUPPORTS_SAVE,layout_gldncrwn )
+GAMEL( 1997, gldncrwn, 0, scorpion2_vid, gldncrwn, bfm_sc2_state, gldncrwn, 0, "BFM/ELAM", "Golden Crown (Dutch, Game Card 95-752-011)", MACHINE_SUPPORTS_SAVE,layout_gldncrwn )
/* Non-Video */
@@ -7510,38 +7510,38 @@ GAMEL( 1997, gldncrwn, 0, scorpion2_vid, gldncrwn, bfm_sc2_state, gldnc
********************************************************************************************************************************************************************************************************************/
// PROJECT NUMBER 6305 DR WHO TIMELORD - 28-SEP-1994 11:14:58
-GAMEL( 1994, sc2drwho , 0 , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Dr.Who The Timelord (set 1, UK, Single Site) (Scorpion 2/3)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL,layout_drwho) // GAME No 95-750-288
-GAMEL( 1994, sc2drwhou , sc2drwho , scorpion2 , drwho , bfm_sc2_state, drwhon , 0, "BFM", "Dr.Who The Timelord (set 1, UK, Single Site) (Scorpion 2/3) (not encrypted)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL,layout_drwho) // GAME No 95-750-288 (unencrypted bootleg?)
-GAMEL( 1994, sc2drwhop , sc2drwho , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Dr.Who The Timelord (set 1, UK, Single Site Protocol) (Scorpion 2/3)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL,layout_drwho) // GAME No 95-751-288
+GAMEL( 1994, sc2drwho , 0 , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Dr.Who The Timelord (set 1, UK, Single Site) (Scorpion 2/3)", MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL,layout_drwho) // GAME No 95-750-288
+GAMEL( 1994, sc2drwhou , sc2drwho , scorpion2 , drwho , bfm_sc2_state, drwhon , 0, "BFM", "Dr.Who The Timelord (set 1, UK, Single Site) (Scorpion 2/3) (not encrypted)", MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL,layout_drwho) // GAME No 95-750-288 (unencrypted bootleg?)
+GAMEL( 1994, sc2drwhop , sc2drwho , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Dr.Who The Timelord (set 1, UK, Single Site Protocol) (Scorpion 2/3)", MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL,layout_drwho) // GAME No 95-751-288
// PROJECT NUMBER 6305 DR WHO TIMELORD IRISH ALL CASH - 28-SEP-1994 11:20:17
-GAMEL( 1994, sc2drwho1 , sc2drwho , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Dr.Who The Timelord (set 2, UK, Arcade) (Scorpion 2/3)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL,layout_drwho) // GAME No 95-750-290
-GAMEL( 1994, sc2drwho1p , sc2drwho , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Dr.Who The Timelord (set 2, UK, Arcade, Protocol) (Scorpion 2/3)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL,layout_drwho) // GAME No 95-751-290
+GAMEL( 1994, sc2drwho1 , sc2drwho , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Dr.Who The Timelord (set 2, UK, Arcade) (Scorpion 2/3)", MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL,layout_drwho) // GAME No 95-750-290
+GAMEL( 1994, sc2drwho1p , sc2drwho , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Dr.Who The Timelord (set 2, UK, Arcade, Protocol) (Scorpion 2/3)", MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL,layout_drwho) // GAME No 95-751-290
// PROJECT NUMBER 6305 DR WHO TIMELORD NO JP SPIN - 17-NOV-1994 09:34:50
-GAMEL( 1994, sc2drwho2 , sc2drwho , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Dr.Who The Timelord (set 3, UK, no Jackpot spin) (Scorpion 2/3)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL,layout_drwho) // GAME No 95-750-309
-GAMEL( 1994, sc2drwho2p , sc2drwho , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Dr.Who The Timelord (set 3, UK, no Jackpot spin, Protocol) (Scorpion 2/3)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL,layout_drwho) // GAME No 95-751-309
+GAMEL( 1994, sc2drwho2 , sc2drwho , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Dr.Who The Timelord (set 3, UK, no Jackpot spin) (Scorpion 2/3)", MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL,layout_drwho) // GAME No 95-750-309
+GAMEL( 1994, sc2drwho2p , sc2drwho , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Dr.Who The Timelord (set 3, UK, no Jackpot spin, Protocol) (Scorpion 2/3)", MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL,layout_drwho) // GAME No 95-751-309
// PROJECT NUMBER 6305 DR WHO TIMELORD ARCADE - 24-OCT-1995 16:12:44
-GAMEL( 1994, sc2drwho3 , sc2drwho , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Dr.Who The Timelord (set 4, UK, Arcade) (Scorpion 2/3)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL,layout_drwho) // GAME No 95-750-536
-GAMEL( 1994, sc2drwho3p , sc2drwho , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Dr.Who The Timelord (set 4, UK, Arcade, Protocol) (Scorpion 2/3)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL,layout_drwho) // GAME No 95-751-536
+GAMEL( 1994, sc2drwho3 , sc2drwho , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Dr.Who The Timelord (set 4, UK, Arcade) (Scorpion 2/3)", MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL,layout_drwho) // GAME No 95-750-536
+GAMEL( 1994, sc2drwho3p , sc2drwho , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Dr.Who The Timelord (set 4, UK, Arcade, Protocol) (Scorpion 2/3)", MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL,layout_drwho) // GAME No 95-751-536
// PROJECT NUMBER 6305 DR WHO TIMELORD 4/8 - 24-OCT-1995 16:14:30
-GAMEL( 1994, sc2drwho4 , sc2drwho , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Dr.Who The Timelord (set 5, UK) (Scorpion 2/3)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL,layout_drwho) // GAME No 95-750-535
-GAMEL( 1994, sc2drwho4p , sc2drwho , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Dr.Who The Timelord (set 5, UK, Protocol) (Scorpion 2/3)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL,layout_drwho) // GAME No 95-751-535
+GAMEL( 1994, sc2drwho4 , sc2drwho , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Dr.Who The Timelord (set 5, UK) (Scorpion 2/3)", MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL,layout_drwho) // GAME No 95-750-535
+GAMEL( 1994, sc2drwho4p , sc2drwho , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Dr.Who The Timelord (set 5, UK, Protocol) (Scorpion 2/3)", MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL,layout_drwho) // GAME No 95-751-535
// PROJECT NUMBER 6305 DR WHO TIMELORD IRISH ALL CASH 4/8 - 25-OCT-1995 09:50:12
-GAMEL( 1994, sc2drwho5 , sc2drwho , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Dr.Who The Timelord (set 6, UK, Arcade, 8GBP Jackpot) (Scorpion 2/3)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL,layout_drwho) // GAME No 95-750-531
-GAMEL( 1994, sc2drwho5p , sc2drwho , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Dr.Who The Timelord (set 6, UK, Arcade, 8GBP Jackpot, Protocol) (Scorpion 2/3)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL,layout_drwho) // GAME No 95-751-531
+GAMEL( 1994, sc2drwho5 , sc2drwho , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Dr.Who The Timelord (set 6, UK, Arcade, 8GBP Jackpot) (Scorpion 2/3)", MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL,layout_drwho) // GAME No 95-750-531
+GAMEL( 1994, sc2drwho5p , sc2drwho , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Dr.Who The Timelord (set 6, UK, Arcade, 8GBP Jackpot, Protocol) (Scorpion 2/3)", MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL,layout_drwho) // GAME No 95-751-531
// PROJECT NUMBER 6305 TIMELORD ARCADE 10P PLAY 4/8 - 25-OCT-1995 09:53:06
-GAMEL( 1994, sc2drwho6 , sc2drwho , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Dr.Who The Timelord (set 7, UK, Arcade) (Scorpion 2/3)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL,layout_drwho) // GAME No 95-750-533
-GAMEL( 1994, sc2drwho6p , sc2drwho , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Dr.Who The Timelord (set 7, UK, Arcade, Protocol) (Scorpion 2/3)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL,layout_drwho) // GAME No 95-751-533
+GAMEL( 1994, sc2drwho6 , sc2drwho , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Dr.Who The Timelord (set 7, UK, Arcade) (Scorpion 2/3)", MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL,layout_drwho) // GAME No 95-750-533
+GAMEL( 1994, sc2drwho6p , sc2drwho , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Dr.Who The Timelord (set 7, UK, Arcade, Protocol) (Scorpion 2/3)", MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL,layout_drwho) // GAME No 95-751-533
// PROJECT NUMBER 6305 DR WHO TIMELORD 10 POUNDS - 28-MAR-1996 13:21:58
-GAMEL( 1994, sc2drwho7 , sc2drwho , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Dr.Who The Timelord (set 8, UK, Arcade, 10GBP Jackpot) (Scorpion 2/3)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL,layout_drwho) // GAME No 95-750-661
-GAMEL( 1994, sc2drwho7p , sc2drwho , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Dr.Who The Timelord (set 8, UK, Arcade, 10GBP Jackpot, Protocol) (Scorpion 2/3)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL,layout_drwho) // GAME No 95-751-661
+GAMEL( 1994, sc2drwho7 , sc2drwho , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Dr.Who The Timelord (set 8, UK, Arcade, 10GBP Jackpot) (Scorpion 2/3)", MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL,layout_drwho) // GAME No 95-750-661
+GAMEL( 1994, sc2drwho7p , sc2drwho , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Dr.Who The Timelord (set 8, UK, Arcade, 10GBP Jackpot, Protocol) (Scorpion 2/3)", MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL,layout_drwho) // GAME No 95-751-661
// PROJECT NUMBER 6419 DR WHO TIMELORD DELUXE - 8-MAR-1995 15:37:53
-GAMEL( 1994, sc2drwhodx , sc2drwho , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Dr.Who The Timelord Deluxe (set 1) (Scorpion 2/3)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL,layout_drwho) // GAME No 95-750-370
+GAMEL( 1994, sc2drwhodx , sc2drwho , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Dr.Who The Timelord Deluxe (set 1) (Scorpion 2/3)", MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL,layout_drwho) // GAME No 95-750-370
// PROJECT NUMBER 6419 TIMELORD DELUXE MULTI-SITE ALL CASH - 4-DEC-1995 10:48:34
-GAMEL( 1994, sc2drwhodx1, sc2drwho , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Dr.Who The Timelord Deluxe (set 2) (Scorpion 2/3)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL,layout_drwho) // GAME No 95-750-572
+GAMEL( 1994, sc2drwhodx1, sc2drwho , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM", "Dr.Who The Timelord Deluxe (set 2) (Scorpion 2/3)", MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL,layout_drwho) // GAME No 95-750-572
// PROJECT NUMBER 6999 TIMELORD AT PLAYMAKER 5P/10p 500P - 15-SEP-1997 10:02:47
-GAMEL( 1994, sc2drwhomz , sc2drwho , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM/Mazooma", "Dr.Who The Timelord (Mazooma) (Scorpion 2/3)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL | GAME_NOT_WORKING,layout_drwho) // GAME No TLVMAZ12_N, error 99
+GAMEL( 1994, sc2drwhomz , sc2drwho , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM/Mazooma", "Dr.Who The Timelord (Mazooma) (Scorpion 2/3)", MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL | MACHINE_NOT_WORKING,layout_drwho) // GAME No TLVMAZ12_N, error 99
// PROJECT NUMBER TLP12 TIMELORD AT PLAYMAKER 5P/10p 500P - 15-SEP-1997 10:03:49
-GAMEL( 1994, sc2drwhomzp, sc2drwho , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM/Mazooma", "Dr.Who The Timelord (Mazooma, Protocol) (Scorpion 2/3)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL | GAME_NOT_WORKING,layout_drwho) // GAME No TLVMAZ12_P, error 99
+GAMEL( 1994, sc2drwhomzp, sc2drwho , scorpion2 , drwho , bfm_sc2_state, drwho , 0, "BFM/Mazooma", "Dr.Who The Timelord (Mazooma, Protocol) (Scorpion 2/3)", MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL | MACHINE_NOT_WORKING,layout_drwho) // GAME No TLVMAZ12_P, error 99
/********************************************************************************************************************************************************************************************************************
The Big Breakfast
@@ -7810,11 +7810,11 @@ GAME( 199?, sc2downt3p , sc2downt , scorpion2 , drwho , bfm_sc2_st
********************************************************************************************************************************************************************************************************************/
// PROJECT NUMBER PR6591 CLUB GRAND SLAM - 7-AUG-1996 12:32:05
-GAME( 1996, sc2gslam1 , sc2gslam , scorpion2 , bfmcgslm , bfm_sc2_state, bfmcgslm , 0, "BFM", "Club Grand Slam (UK, set 1) (Scorpion 2/3)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL) // GAME No 95-750-843
-GAME( 1996, sc2gslam1p , sc2gslam , scorpion2 , bfmcgslm , bfm_sc2_state, bfmcgslm , 0, "BFM", "Club Grand Slam (UK, set 1, Protocol) (Scorpion 2/3)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL) // GAME No 95-751-843
+GAME( 1996, sc2gslam1 , sc2gslam , scorpion2 , bfmcgslm , bfm_sc2_state, bfmcgslm , 0, "BFM", "Club Grand Slam (UK, set 1) (Scorpion 2/3)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL) // GAME No 95-750-843
+GAME( 1996, sc2gslam1p , sc2gslam , scorpion2 , bfmcgslm , bfm_sc2_state, bfmcgslm , 0, "BFM", "Club Grand Slam (UK, set 1, Protocol) (Scorpion 2/3)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL) // GAME No 95-751-843
// PROJECT NUMBER PR6591 CLUB GRAND SLAM - 29-OCT-2001 14:48:47
-GAME( 1996, sc2gslam , 0 , scorpion2 , bfmcgslm , bfm_sc2_state, bfmcgslm , 0, "BFM", "Club Grand Slam (UK, set 2) (Scorpion 2/3)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL) // GAME No 95-752-056
-GAME( 1996, sc2gslamp , sc2gslam , scorpion2 , bfmcgslm , bfm_sc2_state, bfmcgslm , 0, "BFM", "Club Grand Slam (UK, set 2, Protocol) (Scorpion 2/3)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL) // GAME No 95-753-056
+GAME( 1996, sc2gslam , 0 , scorpion2 , bfmcgslm , bfm_sc2_state, bfmcgslm , 0, "BFM", "Club Grand Slam (UK, set 2) (Scorpion 2/3)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL) // GAME No 95-752-056
+GAME( 1996, sc2gslamp , sc2gslam , scorpion2 , bfmcgslm , bfm_sc2_state, bfmcgslm , 0, "BFM", "Club Grand Slam (UK, set 2, Protocol) (Scorpion 2/3)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL) // GAME No 95-753-056
/********************************************************************************************************************************************************************************************************************
Make A Million
@@ -8252,7 +8252,7 @@ GAME( 199?, sc2maina , 0 , scorpion2 , drwho , bfm_sc2_st
********************************************************************************************************************************************************************************************************************/
// PROJECT NUMBER 6346 FOCUS - 23-JAN-1995 15:31:32
-GAME( 1995, sc2focus , 0 , scorpion3 , scorpion3 , bfm_sc2_state, focus , 0, "BFM/ELAM", "Focus (Dutch, Game Card 95-750-347) (Scorpion 2/3)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL) // GAME No 95-750-347
+GAME( 1995, sc2focus , 0 , scorpion3 , scorpion3 , bfm_sc2_state, focus , 0, "BFM/ELAM", "Focus (Dutch, Game Card 95-750-347) (Scorpion 2/3)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL) // GAME No 95-750-347
/********************************************************************************************************************************************************************************************************************
Public Enemy No.1 (German)
@@ -8344,19 +8344,19 @@ GAME( 198?, sc2cexplb , sc2cexpl , scorpion2 , drwho , bfm_sc2_st
********************************************************************************************************************************************************************************************************************/
// PROJECT NUMBER 6569 (6224) LUVVLY JUBBLY GALA S+P 95 - 30-JAN-1996 11:12:00
-GAME( 1996, sc2luvv6p , sc2luvv , scorpion2_dm01 , luvjub , bfm_sc2_state, luvjub , 0, "BFM", "Luvvly Jubbly (set 1, UK, Protocol) (Scorpion 2/3)", GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL) // GAME No 95-751-621
+GAME( 1996, sc2luvv6p , sc2luvv , scorpion2_dm01 , luvjub , bfm_sc2_state, luvjub , 0, "BFM", "Luvvly Jubbly (set 1, UK, Protocol) (Scorpion 2/3)", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL) // GAME No 95-751-621
// PROJECT NUMBER 6569 (6224) LUVVLY JUBBLY MULTISITE S+P 95 - 30-JAN-1996 11:14:05
-GAME( 1996, sc2luvv2 , sc2luvv , scorpion2_dm01 , luvjub , bfm_sc2_state, luvjub , 0, "BFM", "Luvvly Jubbly (set 2, UK, Multisite) (Scorpion 2/3)", GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL) // GAME No 95-750-622
-GAME( 1996, sc2luvv2p , sc2luvv , scorpion2_dm01 , luvjub , bfm_sc2_state, luvjub , 0, "BFM", "Luvvly Jubbly (set 2, UK, Multisite, Protocol) (Scorpion 2/3)", GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL) // GAME No 95-751-622
+GAME( 1996, sc2luvv2 , sc2luvv , scorpion2_dm01 , luvjub , bfm_sc2_state, luvjub , 0, "BFM", "Luvvly Jubbly (set 2, UK, Multisite) (Scorpion 2/3)", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL) // GAME No 95-750-622
+GAME( 1996, sc2luvv2p , sc2luvv , scorpion2_dm01 , luvjub , bfm_sc2_state, luvjub , 0, "BFM", "Luvvly Jubbly (set 2, UK, Multisite, Protocol) (Scorpion 2/3)", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL) // GAME No 95-751-622
// PROJECT NUMBER 6569 (6224) LUVVLY JUBBLY MULTISITE #10/25P - 2-JUL-1996 16:32:17
-GAME( 1996, sc2luvv , 0 , scorpion2_dm01 , luvjub , bfm_sc2_state, luvjub , 0, "BFM", "Luvvly Jubbly (set 3, UK, Multisite 10GBP/25p) (Scorpion 2/3)", GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL) // GAME No 95-750-808
-GAME( 1996, sc2luvvp , sc2luvv , scorpion2_dm01 , luvjub , bfm_sc2_state, luvjub , 0, "BFM", "Luvvly Jubbly (set 3, UK, Multisite 10GBP/25p, Protocol) (Scorpion 2/3)", GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL) // GAME No 95-751-808
+GAME( 1996, sc2luvv , 0 , scorpion2_dm01 , luvjub , bfm_sc2_state, luvjub , 0, "BFM", "Luvvly Jubbly (set 3, UK, Multisite 10GBP/25p) (Scorpion 2/3)", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL) // GAME No 95-750-808
+GAME( 1996, sc2luvvp , sc2luvv , scorpion2_dm01 , luvjub , bfm_sc2_state, luvjub , 0, "BFM", "Luvvly Jubbly (set 3, UK, Multisite 10GBP/25p, Protocol) (Scorpion 2/3)", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL) // GAME No 95-751-808
// PROJECT NUMBER 6569 (6224) LUVVLY JUBBLY MULTISITE #4/5P PLAY - 4-JUL-1996 10:56:24
-GAME( 1996, sc2luvv4 , sc2luvv , scorpion2_dm01 , luvjub , bfm_sc2_state, luvjub , 0, "BFM", "Luvvly Jubbly (set 4, UK, Multisite 4GBP/5p) (Scorpion 2/3)", GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL) // GAME No 95-750-810
-GAME( 1996, sc2luvv4p , sc2luvv , scorpion2_dm01 , luvjub , bfm_sc2_state, luvjub , 0, "BFM", "Luvvly Jubbly (set 4, UK, Multisite 4GBP/5p, Protocol) (Scorpion 2/3)", GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL) // GAME No 95-751-810
+GAME( 1996, sc2luvv4 , sc2luvv , scorpion2_dm01 , luvjub , bfm_sc2_state, luvjub , 0, "BFM", "Luvvly Jubbly (set 4, UK, Multisite 4GBP/5p) (Scorpion 2/3)", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL) // GAME No 95-750-810
+GAME( 1996, sc2luvv4p , sc2luvv , scorpion2_dm01 , luvjub , bfm_sc2_state, luvjub , 0, "BFM", "Luvvly Jubbly (set 4, UK, Multisite 4GBP/5p, Protocol) (Scorpion 2/3)", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL) // GAME No 95-751-810
// PROJECT NUMBER 6569 (6224) LUVVLY JUBBLY MULTISITE #10/20P - 12-SEP-1996 14:07:57
-GAME( 1996, sc2luvv1 , sc2luvv , scorpion2_dm01 , luvjub , bfm_sc2_state, luvjub , 0, "BFM", "Luvvly Jubbly (set 3, UK, Multisite 10GBP/20p) (Scorpion 2/3)", GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL) // GAME No 95-750-866
-GAME( 1996, sc2luvv1p , sc2luvv , scorpion2_dm01 , luvjub , bfm_sc2_state, luvjub , 0, "BFM", "Luvvly Jubbly (set 3, UK, Multisite 10GBP/20p, Protocol) (Scorpion 2/3)", GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL) // GAME No 95-751-866
+GAME( 1996, sc2luvv1 , sc2luvv , scorpion2_dm01 , luvjub , bfm_sc2_state, luvjub , 0, "BFM", "Luvvly Jubbly (set 3, UK, Multisite 10GBP/20p) (Scorpion 2/3)", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL) // GAME No 95-750-866
+GAME( 1996, sc2luvv1p , sc2luvv , scorpion2_dm01 , luvjub , bfm_sc2_state, luvjub , 0, "BFM", "Luvvly Jubbly (set 3, UK, Multisite 10GBP/20p, Protocol) (Scorpion 2/3)", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL) // GAME No 95-751-866
/********************************************************************************************************************************************************************************************************************
@@ -8365,20 +8365,20 @@ GAME( 1996, sc2luvv1p , sc2luvv , scorpion2_dm01 , luvjub , bfm_sc2_st
********************************************************************************************************************************************************************************************************************/
// PROJECT NUMBER PR6331 PUBLIC ENEMY NO.1 - 26-JUL-1994 09:24:19
-GAME( 1996, sc2cpe3 , sc2cpe , scorpion2_dm01 , cpeno1 , bfm_sc2_state, cpeno1 , 0, "BFM", "Club Public Enemy No.1 (set 1, UK) (Scorpion 2/3)", GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL) // GAME No 95-750-257
-GAME( 1996, sc2cpe3p , sc2cpe , scorpion2_dm01 , cpeno1 , bfm_sc2_state, cpeno1 , 0, "BFM", "Club Public Enemy No.1 (set 1, UK, Protocol) (Scorpion 2/3)", GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL) // GAME No 95-751-257
+GAME( 1996, sc2cpe3 , sc2cpe , scorpion2_dm01 , cpeno1 , bfm_sc2_state, cpeno1 , 0, "BFM", "Club Public Enemy No.1 (set 1, UK) (Scorpion 2/3)", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL) // GAME No 95-750-257
+GAME( 1996, sc2cpe3p , sc2cpe , scorpion2_dm01 , cpeno1 , bfm_sc2_state, cpeno1 , 0, "BFM", "Club Public Enemy No.1 (set 1, UK, Protocol) (Scorpion 2/3)", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL) // GAME No 95-751-257
// PROJECT NUMBER PR6331 PUBLIC ENEMY NO.1 FIXED 65% - 10-AUG-1994 11:26:30
-GAME( 1996, sc2cpe4 , sc2cpe , scorpion2_dm01 , cpeno1 , bfm_sc2_state, cpeno1 , 0, "BFM", "Club Public Enemy No.1 (set 2, UK) (Scorpion 2/3)", GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL) // GAME No 95-750-273
-GAME( 1996, sc2cpe4p , sc2cpe , scorpion2_dm01 , cpeno1 , bfm_sc2_state, cpeno1 , 0, "BFM", "Club Public Enemy No.1 (set 2, UK, Protocol) (Scorpion 2/3)", GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL) // GAME No 95-751-273
+GAME( 1996, sc2cpe4 , sc2cpe , scorpion2_dm01 , cpeno1 , bfm_sc2_state, cpeno1 , 0, "BFM", "Club Public Enemy No.1 (set 2, UK) (Scorpion 2/3)", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL) // GAME No 95-750-273
+GAME( 1996, sc2cpe4p , sc2cpe , scorpion2_dm01 , cpeno1 , bfm_sc2_state, cpeno1 , 0, "BFM", "Club Public Enemy No.1 (set 2, UK, Protocol) (Scorpion 2/3)", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL) // GAME No 95-751-273
// PROJECT NUMBER PR6574 PUBLIC ENEMY NO.1 S+P 25P/#250 STENA SEALINK - 3-JAN-1996 12:17:33
-GAME( 1996, sc2cpe2 , sc2cpe , scorpion2_dm01 , cpeno1 , bfm_sc2_state, cpeno1 , 0, "BFM", "Club Public Enemy No.1 (set 3, UK) (Scorpion 2/3)", GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL) // GAME No 95-750-597
-GAME( 1996, sc2cpe2p , sc2cpe , scorpion2_dm01 , cpeno1 , bfm_sc2_state, cpeno1 , 0, "BFM", "Club Public Enemy No.1 (set 3, UK, Protocol) (Scorpion 2/3)", GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL) // GAME No 95-751-597
+GAME( 1996, sc2cpe2 , sc2cpe , scorpion2_dm01 , cpeno1 , bfm_sc2_state, cpeno1 , 0, "BFM", "Club Public Enemy No.1 (set 3, UK) (Scorpion 2/3)", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL) // GAME No 95-750-597
+GAME( 1996, sc2cpe2p , sc2cpe , scorpion2_dm01 , cpeno1 , bfm_sc2_state, cpeno1 , 0, "BFM", "Club Public Enemy No.1 (set 3, UK, Protocol) (Scorpion 2/3)", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL) // GAME No 95-751-597
// PROJECT NUMBER PR6574 PUBLIC ENEMY NO.1 S+P 25P/#250 FIXED 65% - 3-JAN-1996 12:19:01
-GAME( 1996, sc2cpe1 , sc2cpe , scorpion2_dm01 , cpeno1 , bfm_sc2_state, cpeno1 , 0, "BFM", "Club Public Enemy No.1 (set 4, UK) (Scorpion 2/3)", GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL) // GAME No 95-750-598
-GAME( 1996, sc2cpe1p , sc2cpe , scorpion2_dm01 , cpeno1 , bfm_sc2_state, cpeno1 , 0, "BFM", "Club Public Enemy No.1 (set 4, UK, Protocol) (Scorpion 2/3)", GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL) // GAME No 95-751-598
+GAME( 1996, sc2cpe1 , sc2cpe , scorpion2_dm01 , cpeno1 , bfm_sc2_state, cpeno1 , 0, "BFM", "Club Public Enemy No.1 (set 4, UK) (Scorpion 2/3)", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL) // GAME No 95-750-598
+GAME( 1996, sc2cpe1p , sc2cpe , scorpion2_dm01 , cpeno1 , bfm_sc2_state, cpeno1 , 0, "BFM", "Club Public Enemy No.1 (set 4, UK, Protocol) (Scorpion 2/3)", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL) // GAME No 95-751-598
// PROJECT NUMBER PR6574 PUBLIC ENEMY NO.1 S+P 25P/#250 - 20-AUG-1996 10:05:21
-GAME( 1996, sc2cpe , 0 , scorpion2_dm01 , cpeno1 , bfm_sc2_state, cpeno1 , 0, "BFM", "Club Public Enemy No.1 (set 5, UK) (Scorpion 2/3)", GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL) // GAME No 95-750-846
-GAME( 1996, sc2cpep , sc2cpe , scorpion2_dm01 , cpeno1 , bfm_sc2_state, cpeno1 , 0, "BFM", "Club Public Enemy No.1 (set 5, UK, Protocol) (Scorpion 2/3)", GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL) // GAME No 95-751-846
+GAME( 1996, sc2cpe , 0 , scorpion2_dm01 , cpeno1 , bfm_sc2_state, cpeno1 , 0, "BFM", "Club Public Enemy No.1 (set 5, UK) (Scorpion 2/3)", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL) // GAME No 95-750-846
+GAME( 1996, sc2cpep , sc2cpe , scorpion2_dm01 , cpeno1 , bfm_sc2_state, cpeno1 , 0, "BFM", "Club Public Enemy No.1 (set 5, UK, Protocol) (Scorpion 2/3)", MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL) // GAME No 95-751-846
/********************************************************************************************************************************************************************************************************************
Cops 'n' Robbers
@@ -8386,19 +8386,19 @@ GAME( 1996, sc2cpep , sc2cpe , scorpion2_dm01 , cpeno1 , bfm_sc2_st
********************************************************************************************************************************************************************************************************************/
// PROJECT NUMBER 6012 COPS & ROBBERS #3/#6 - 29-DEC-1992 21:26:28
-GAME( 199?, sc2cops5 , sc2cops , scorpion2_dm01 , drwho , bfm_sc2_state, ofah , 0, "BFM", "Cops 'n' Robbers (Bellfruit) (set 1) (Scorpion 2/3)", GAME_FLAGS) // GAME No 95-750-044
+GAME( 199?, sc2cops5 , sc2cops , scorpion2_dm01 , drwho , bfm_sc2_state, ofah , 0, "BFM", "Cops 'n' Robbers (Bellfruit) (set 1) (Scorpion 2/3)", GAME_FLAGS) // GAME No 95-750-044
// PROJECT NUMBER 6012 COPS AND ROBBERS S+P 10P - 7-JUL-1993 10:17:18
GAME( 199?, sc2cops2 , sc2cops , scorpion2_dm01 , drwho , bfm_sc2_state, ofah , 0, "BFM", "Cops 'n' Robbers (Bellfruit) (set 2) (Scorpion 2/3)", GAME_FLAGS) // GAME No 95-750-110
// PROJECT NUMBER 6589 (6012) COPS & ROBBERS (SINGLE SITE 5P/10P/20P) - 4-DEC-1995 10:52:08
-GAME( 199?, sc2cops3 , sc2cops , scorpion2_dm01 , drwho , bfm_sc2_state, ofah , 0, "BFM", "Cops 'n' Robbers (Bellfruit) (set 3) (Scorpion 2/3)", GAME_FLAGS) // GAME No 95-750-577
-GAME( 199?, sc2cops3p , sc2cops , scorpion2_dm01 , drwho , bfm_sc2_state, ofah , 0, "BFM", "Cops 'n' Robbers (Bellfruit) (set 3, Protocol) (Scorpion 2/3)", GAME_FLAGS) // GAME No 95-751-577
+GAME( 199?, sc2cops3 , sc2cops , scorpion2_dm01 , drwho , bfm_sc2_state, ofah , 0, "BFM", "Cops 'n' Robbers (Bellfruit) (set 3) (Scorpion 2/3)", GAME_FLAGS) // GAME No 95-750-577
+GAME( 199?, sc2cops3p , sc2cops , scorpion2_dm01 , drwho , bfm_sc2_state, ofah , 0, "BFM", "Cops 'n' Robbers (Bellfruit) (set 3, Protocol) (Scorpion 2/3)", GAME_FLAGS) // GAME No 95-751-577
// PROJECT NUMBER 6589 (6012) COPS & ROBBERS (ARCADE 5P/10P/20P) - 4-DEC-1995 10:53:58
-GAME( 199?, sc2copsp , sc2cops , scorpion2_dm01 , drwho , bfm_sc2_state, ofah , 0, "BFM", "Cops 'n' Robbers (Bellfruit) (set 4, Protocol) (Scorpion 2/3)", GAME_FLAGS) // GAME No 95-751-578
+GAME( 199?, sc2copsp , sc2cops , scorpion2_dm01 , drwho , bfm_sc2_state, ofah , 0, "BFM", "Cops 'n' Robbers (Bellfruit) (set 4, Protocol) (Scorpion 2/3)", GAME_FLAGS) // GAME No 95-751-578
// PROJECT NUMBER 6589 (6012) COPS & ROBBERS (IRISH ALL CASH 5P/10P/20P) - 7-MAR-1996 15:07:40
GAME( 199?, sc2cops4 , sc2cops , scorpion2_dm01 , drwho , bfm_sc2_state, ofah , 0, "BFM", "Cops 'n' Robbers (Bellfruit) (set 5) (Scorpion 2/3)", GAME_FLAGS) // GAME No 95-750-645
// PROJECT NUMBER 6589 (6012) COPS & ROBBERS (#10 ALL CASH 20P/25P) - 15-MAR-1996 11:52:02
GAME( 199?, sc2cops , 0 , scorpion2_dm01 , drwho , bfm_sc2_state, ofah , 0, "BFM", "Cops 'n' Robbers (Bellfruit) (set 6) (Scorpion 2/3)", GAME_FLAGS) // GAME No 95-750-652
-GAME( 199?, sc2cops1p , sc2cops , scorpion2_dm01 , drwho , bfm_sc2_state, ofah , 0, "BFM", "Cops 'n' Robbers (Bellfruit) (set 6, Protocol) (Scorpion 2/3)", GAME_FLAGS) // GAME No 95-751-652
+GAME( 199?, sc2cops1p , sc2cops , scorpion2_dm01 , drwho , bfm_sc2_state, ofah , 0, "BFM", "Cops 'n' Robbers (Bellfruit) (set 6, Protocol) (Scorpion 2/3)", GAME_FLAGS) // GAME No 95-751-652
/********************************************************************************************************************************************************************************************************************
@@ -8409,7 +8409,7 @@ GAME( 199?, sc2cops1p , sc2cops , scorpion2_dm01 , drwho , bfm_sc2_st
// PROJECT NUMBER 6622 BINGO COPS N ROBBERS #8/#10 ALL CASH - 9-JUL-1996 17:08:15
GAME( 199?, sc2copsc , sc2cops , scorpion2_dm01 , drwho , bfm_sc2_state, ofah , 0, "BFM", "Casino Cops 'n' Robbers (Bellfruit) (set 1) (Scorpion 2/3)", GAME_FLAGS) // GAME No 95-750-814
-GAME( 199?, sc2copscp , sc2cops , scorpion2_dm01 , drwho , bfm_sc2_state, ofah , 0, "BFM", "Casino Cops 'n' Robbers (Bellfruit) (set 1, Protocol) (Scorpion 2/3)", GAME_FLAGS) // GAME No 95-751-814
+GAME( 199?, sc2copscp , sc2cops , scorpion2_dm01 , drwho , bfm_sc2_state, ofah , 0, "BFM", "Casino Cops 'n' Robbers (Bellfruit) (set 1, Protocol) (Scorpion 2/3)", GAME_FLAGS) // GAME No 95-751-814
// PROJECT NUMBER 6622 BINGO COPS N ROBBERS SWITCHABLE BINGO/ARCADE - 9-JUL-1996 17:12:33
GAME( 199?, sc2copsc1 , sc2cops , scorpion2_dm01 , drwho , bfm_sc2_state, ofah , 0, "BFM", "Casino Cops 'n' Robbers (Bellfruit) (set 2) (Scorpion 2/3)", GAME_FLAGS) // GAME No 95-750-816
GAME( 199?, sc2copsc1p , sc2cops , scorpion2_dm01 , drwho , bfm_sc2_state, ofah , 0, "BFM", "Casino Cops 'n' Robbers (Bellfruit) (set 2, Protocol) (Scorpion 2/3)", GAME_FLAGS) // GAME No 95-751-816
diff --git a/src/mame/drivers/bfm_sc4.c b/src/mame/drivers/bfm_sc4.c
index d8808a7de89..a610e0097b7 100644
--- a/src/mame/drivers/bfm_sc4.c
+++ b/src/mame/drivers/bfm_sc4.c
@@ -23459,7 +23459,7 @@ ROM_END
/* Scorpion 4 */
-GAMEL( 200?, sc4tst ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Scorpion 4 Test Rig (Bellfruit) (Scorpion ?)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tst ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Scorpion 4 Test Rig (Bellfruit) (Scorpion ?)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4pstat)
{
@@ -23523,32 +23523,32 @@ INPUT_PORTS_END
// can't get past 'read meters'
// PR2516 PAYSTATIONV2.0 PAYSTATIONSND PAYSTATION
-GAMEL( 200?, sc4pstat ,0, sc4_4reel, sc4pstat, sc4_state, sc4pstat, ROT0, "QPS","Paystation (V2.0) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pstatb ,sc4pstat, sc4_4reel, sc4pstat, sc4_state, sc4pstat, ROT0, "QPS","Paystation (V2.0) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pstat ,0, sc4_4reel, sc4pstat, sc4_state, sc4pstat, ROT0, "QPS","Paystation (V2.0) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pstatb ,sc4pstat, sc4_4reel, sc4pstat, sc4_state, sc4pstat, ROT0, "QPS","Paystation (V2.0) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2516 PAYSTATIONV2.1 PAYSTATIONSND PAYSTATION
-GAMEL( 200?, sc4pstata ,sc4pstat, sc4_4reel, sc4pstat, sc4_state, sc4pstat, ROT0, "QPS","Paystation (V2.1) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pstatc ,sc4pstat, sc4_4reel, sc4pstat, sc4_state, sc4pstat, ROT0, "QPS","Paystation (V2.1) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pstata ,sc4pstat, sc4_4reel, sc4pstat, sc4_state, sc4pstat, ROT0, "QPS","Paystation (V2.1) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pstatc ,sc4pstat, sc4_4reel, sc4pstat, sc4_state, sc4pstat, ROT0, "QPS","Paystation (V2.1) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2516 PAYSTATIONV2.2 PAYSTATIONSND PAYSTATION
-GAMEL( 200?, sc4pstatd ,sc4pstat, sc4_4reel, sc4pstat, sc4_state, sc4pstat, ROT0, "QPS","Paystation (V2.2) (Qps) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pstatd ,sc4pstat, sc4_4reel, sc4pstat, sc4_state, sc4pstat, ROT0, "QPS","Paystation (V2.2) (Qps) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2516 PAYSTATIONV2.3 PAYSTATIONSND PAYSTATION
-GAMEL( 200?, sc4pstate ,sc4pstat, sc4_4reel, sc4pstat, sc4_state, sc4pstat, ROT0, "QPS","Paystation (V2.3) (Qps) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pstate ,sc4pstat, sc4_4reel, sc4pstat, sc4_state, sc4pstat, ROT0, "QPS","Paystation (V2.3) (Qps) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// ones below can be 'played' (skip 'read meters' with cancel)
// PR2516 PAYSTATIONV4.0 PAYSTATIONSND PAYSTATION
-GAMEL( 200?, sc4pstath ,sc4pstat, sc4_4reel, sc4pstat, sc4_state, sc4pstat, ROT0, "QPS","Paystation (V4.0) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pstatm ,sc4pstat, sc4_4reel, sc4pstat, sc4_state, sc4pstat, ROT0, "QPS","Paystation (V4.0) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pstath ,sc4pstat, sc4_4reel, sc4pstat, sc4_state, sc4pstat, ROT0, "QPS","Paystation (V4.0) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pstatm ,sc4pstat, sc4_4reel, sc4pstat, sc4_state, sc4pstat, ROT0, "QPS","Paystation (V4.0) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2516 PAYSTATIONV011 PAYSTATIONSND PAYSTATION
-GAMEL( 200?, sc4pstatf ,sc4pstat, sc4_4reel, sc4pstat, sc4_state, sc4pstat_mbus, ROT0, "QPS","Paystation (V011) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pstati ,sc4pstat, sc4_4reel, sc4pstat, sc4_state, sc4pstat_mbus, ROT0, "QPS","Paystation (V011) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pstatf ,sc4pstat, sc4_4reel, sc4pstat, sc4_state, sc4pstat_mbus, ROT0, "QPS","Paystation (V011) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pstati ,sc4pstat, sc4_4reel, sc4pstat, sc4_state, sc4pstat_mbus, ROT0, "QPS","Paystation (V011) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2516 PAYSTATION 012 PAYSTATIONSND PAYSTATION
-GAMEL( 200?, sc4pstatn ,sc4pstat, sc4_4reel, sc4pstat, sc4_state, sc4pstat, ROT0, "QPS","Paystation (V012) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pstatp ,sc4pstat, sc4_4reel, sc4pstat, sc4_state, sc4pstat, ROT0, "QPS","Paystation (V012) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pstatn ,sc4pstat, sc4_4reel, sc4pstat, sc4_state, sc4pstat, ROT0, "QPS","Paystation (V012) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pstatp ,sc4pstat, sc4_4reel, sc4pstat, sc4_state, sc4pstat, ROT0, "QPS","Paystation (V012) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2516 PAYSTATIONV041 PAYSTATIONSND PAYSTATION
-GAMEL( 200?, sc4pstatg ,sc4pstat, sc4_4reel, sc4pstat, sc4_state, sc4pstat_mbus, ROT0, "QPS","Paystation (V041) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pstatj ,sc4pstat, sc4_4reel, sc4pstat, sc4_state, sc4pstat_mbus, ROT0, "QPS","Paystation (V041) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pstatg ,sc4pstat, sc4_4reel, sc4pstat, sc4_state, sc4pstat_mbus, ROT0, "QPS","Paystation (V041) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pstatj ,sc4pstat, sc4_4reel, sc4pstat, sc4_state, sc4pstat_mbus, ROT0, "QPS","Paystation (V041) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2516 PAYSTATION 042 PAYSTATIONSND PAYSTATION
-GAMEL( 200?, sc4pstato ,sc4pstat, sc4_4reel, sc4pstat, sc4_state, sc4pstat, ROT0, "QPS","Paystation (V042) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pstatq ,sc4pstat, sc4_4reel, sc4pstat, sc4_state, sc4pstat, ROT0, "QPS","Paystation (V042) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pstato ,sc4pstat, sc4_4reel, sc4pstat, sc4_state, sc4pstat, ROT0, "QPS","Paystation (V042) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pstatq ,sc4pstat, sc4_4reel, sc4pstat, sc4_state, sc4pstat, ROT0, "QPS","Paystation (V042) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4cvani)
@@ -23603,16 +23603,16 @@ INPUT_PORTS_START( sc4cvani ) // this structure is generated
INPUT_PORTS_END
// PR2052 CASHLVANIA VANIASND CASH'!'VANIA
-GAMEL( 200?, sc4cvani ,0, sc4_200_4rb, sc4cvani, sc4_state, sc4cvani, ROT0, "QPS","Cashvania (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cvania ,sc4cvani, sc4_200_4rb, sc4cvani, sc4_state, sc4cvani, ROT0, "QPS","Cashvania (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cvanib ,sc4cvani, sc4_200_4rb, sc4cvani, sc4_state, sc4cvani, ROT0, "QPS","Cashvania (Qps) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cvanic ,sc4cvani, sc4_200_4rb, sc4cvani, sc4_state, sc4cvani, ROT0, "QPS","Cashvania (Qps) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cvanid ,sc4cvani, sc4_200_4rb, sc4cvani, sc4_state, sc4cvani, ROT0, "QPS","Cashvania (Qps) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cvanie ,sc4cvani, sc4_200_4rb, sc4cvani, sc4_state, sc4cvani, ROT0, "QPS","Cashvania (Qps) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cvanif ,sc4cvani, sc4_200_4rb, sc4cvani, sc4_state, sc4cvani, ROT0, "QPS","Cashvania (Qps) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cvanig ,sc4cvani, sc4_200_4rb, sc4cvani, sc4_state, sc4cvani, ROT0, "QPS","Cashvania (Qps) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cvanih ,sc4cvani, sc4_200_4rb, sc4cvani, sc4_state, sc4cvani, ROT0, "QPS","Cashvania (Qps) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cvanii ,sc4cvani, sc4_200_4rb, sc4cvani, sc4_state, sc4cvani, ROT0, "QPS","Cashvania (Qps) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cvani ,0, sc4_200_4rb, sc4cvani, sc4_state, sc4cvani, ROT0, "QPS","Cashvania (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cvania ,sc4cvani, sc4_200_4rb, sc4cvani, sc4_state, sc4cvani, ROT0, "QPS","Cashvania (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cvanib ,sc4cvani, sc4_200_4rb, sc4cvani, sc4_state, sc4cvani, ROT0, "QPS","Cashvania (Qps) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cvanic ,sc4cvani, sc4_200_4rb, sc4cvani, sc4_state, sc4cvani, ROT0, "QPS","Cashvania (Qps) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cvanid ,sc4cvani, sc4_200_4rb, sc4cvani, sc4_state, sc4cvani, ROT0, "QPS","Cashvania (Qps) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cvanie ,sc4cvani, sc4_200_4rb, sc4cvani, sc4_state, sc4cvani, ROT0, "QPS","Cashvania (Qps) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cvanif ,sc4cvani, sc4_200_4rb, sc4cvani, sc4_state, sc4cvani, ROT0, "QPS","Cashvania (Qps) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cvanig ,sc4cvani, sc4_200_4rb, sc4cvani, sc4_state, sc4cvani, ROT0, "QPS","Cashvania (Qps) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cvanih ,sc4cvani, sc4_200_4rb, sc4cvani, sc4_state, sc4cvani, ROT0, "QPS","Cashvania (Qps) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cvanii ,sc4cvani, sc4_200_4rb, sc4cvani, sc4_state, sc4cvani, ROT0, "QPS","Cashvania (Qps) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4cvclb)
@@ -23676,16 +23676,16 @@ INPUT_PORTS_START( sc4cvclb ) // this structure is generated
INPUT_PORTS_END
// PRXXXX CLUBCASHLVANIA V1.0 CLUBVANIASND CLUB CASH!VANIA
-GAMEL( 200?, sc4cvclb ,0, sc4_200_4rb, sc4cvclb, sc4_state, sc4cvclb, ROT0, "QPS","Cashvania Club (V1.0) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cvclba ,sc4cvclb, sc4_200_4rb, sc4cvclb, sc4_state, sc4cvclb, ROT0, "QPS","Cashvania Club (V1.0) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cvclbc ,sc4cvclb, sc4_200_4rb, sc4cvclb, sc4_state, sc4cvclb, ROT0, "QPS","Cashvania Club (V1.0) (Qps) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cvclbd ,sc4cvclb, sc4_200_4rb, sc4cvclb, sc4_state, sc4cvclb, ROT0, "QPS","Cashvania Club (V1.0) (Qps) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cvclb ,0, sc4_200_4rb, sc4cvclb, sc4_state, sc4cvclb, ROT0, "QPS","Cashvania Club (V1.0) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cvclba ,sc4cvclb, sc4_200_4rb, sc4cvclb, sc4_state, sc4cvclb, ROT0, "QPS","Cashvania Club (V1.0) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cvclbc ,sc4cvclb, sc4_200_4rb, sc4cvclb, sc4_state, sc4cvclb, ROT0, "QPS","Cashvania Club (V1.0) (Qps) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cvclbd ,sc4cvclb, sc4_200_4rb, sc4cvclb, sc4_state, sc4cvclb, ROT0, "QPS","Cashvania Club (V1.0) (Qps) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PRXXXX CLUBCASHLVANIA V2.0 CLUBVANIASND CLUB CASH!VANIA
-GAMEL( 200?, sc4cvclbb ,sc4cvclb, sc4_200_4rb, sc4cvclb, sc4_state, sc4cvclb, ROT0, "QPS","Cashvania Club (V2.0) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cvclbe ,sc4cvclb, sc4_200_4rb, sc4cvclb, sc4_state, sc4cvclb, ROT0, "QPS","Cashvania Club (V2.0) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cvclbb ,sc4cvclb, sc4_200_4rb, sc4cvclb, sc4_state, sc4cvclb, ROT0, "QPS","Cashvania Club (V2.0) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cvclbe ,sc4cvclb, sc4_200_4rb, sc4cvclb, sc4_state, sc4cvclb, ROT0, "QPS","Cashvania Club (V2.0) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PRXXXX CLUBCASHLVANIA 411 CLUBVANIASND CLUB CASH!VANIA
-GAMEL( 200?, sc4cvclbf ,sc4cvclb, sc4_200_4rb, sc4cvclb, sc4_state, sc4cvclb_mbus, ROT0, "QPS","Cashvania Club (V411) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cvclbg ,sc4cvclb, sc4_200_4rb, sc4cvclb, sc4_state, sc4cvclb_mbus, ROT0, "QPS","Cashvania Club (V411) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cvclbf ,sc4cvclb, sc4_200_4rb, sc4cvclb, sc4_state, sc4cvclb_mbus, ROT0, "QPS","Cashvania Club (V411) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cvclbg ,sc4cvclb, sc4_200_4rb, sc4cvclb, sc4_state, sc4cvclb_mbus, ROT0, "QPS","Cashvania Club (V411) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -23756,26 +23756,26 @@ INPUT_PORTS_END
// this was marked (and has the header) GRAND CASINO, and was paired with some (bad dumps) of 'Grand Casino' sound roms, but it actually
// appears to be a version of Grandslam and expects the Grandslam sounds
// PR7194 GRAND CASINO PR6934 SLM2 SOUNDS11 GRAND CASINO
-GAMEL( 200?, sc4gcclb ,0, sc4, sc4gcclbl, sc4_state, sc4gcclb, ROT0, "BFM","Grandslam Casino (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gcclba ,sc4gcclb, sc4, sc4gcclbl, sc4_state, sc4gcclb, ROT0, "BFM","Grandslam Casino (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gcclbb ,sc4gcclb, sc4, sc4gcclbl, sc4_state, sc4gcclb, ROT0, "BFM","Grandslam Casino (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gcclbc ,sc4gcclb, sc4, sc4gcclbl, sc4_state, sc4gcclb, ROT0, "BFM","Grandslam Casino (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gcclbd ,sc4gcclb, sc4, sc4gcclbl, sc4_state, sc4gcclb, ROT0, "BFM","Grandslam Casino (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gcclbe ,sc4gcclb, sc4, sc4gcclbl, sc4_state, sc4gcclb, ROT0, "BFM","Grandslam Casino (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gcclbf ,sc4gcclb, sc4, sc4gcclbl, sc4_state, sc4gcclb, ROT0, "BFM","Grandslam Casino (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gcclbg ,sc4gcclb, sc4, sc4gcclbl, sc4_state, sc4gcclb, ROT0, "BFM","Grandslam Casino (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gcclbh ,sc4gcclb, sc4, sc4gcclbl, sc4_state, sc4gcclb, ROT0, "BFM","Grandslam Casino (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gcclbi ,sc4gcclb, sc4, sc4gcclbl, sc4_state, sc4gcclb, ROT0, "BFM","Grandslam Casino (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gcclbj ,sc4gcclb, sc4, sc4gcclbl, sc4_state, sc4gcclb, ROT0, "BFM","Grandslam Casino (Bellfruit) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gcclbk ,sc4gcclb, sc4, sc4gcclbl, sc4_state, sc4gcclb, ROT0, "BFM","Grandslam Casino (Bellfruit) (Scorpion 4) (set 12)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gcclb ,0, sc4, sc4gcclbl, sc4_state, sc4gcclb, ROT0, "BFM","Grandslam Casino (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gcclba ,sc4gcclb, sc4, sc4gcclbl, sc4_state, sc4gcclb, ROT0, "BFM","Grandslam Casino (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gcclbb ,sc4gcclb, sc4, sc4gcclbl, sc4_state, sc4gcclb, ROT0, "BFM","Grandslam Casino (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gcclbc ,sc4gcclb, sc4, sc4gcclbl, sc4_state, sc4gcclb, ROT0, "BFM","Grandslam Casino (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gcclbd ,sc4gcclb, sc4, sc4gcclbl, sc4_state, sc4gcclb, ROT0, "BFM","Grandslam Casino (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gcclbe ,sc4gcclb, sc4, sc4gcclbl, sc4_state, sc4gcclb, ROT0, "BFM","Grandslam Casino (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gcclbf ,sc4gcclb, sc4, sc4gcclbl, sc4_state, sc4gcclb, ROT0, "BFM","Grandslam Casino (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gcclbg ,sc4gcclb, sc4, sc4gcclbl, sc4_state, sc4gcclb, ROT0, "BFM","Grandslam Casino (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gcclbh ,sc4gcclb, sc4, sc4gcclbl, sc4_state, sc4gcclb, ROT0, "BFM","Grandslam Casino (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gcclbi ,sc4gcclb, sc4, sc4gcclbl, sc4_state, sc4gcclb, ROT0, "BFM","Grandslam Casino (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gcclbj ,sc4gcclb, sc4, sc4gcclbl, sc4_state, sc4gcclb, ROT0, "BFM","Grandslam Casino (Bellfruit) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gcclbk ,sc4gcclb, sc4, sc4gcclbl, sc4_state, sc4gcclb, ROT0, "BFM","Grandslam Casino (Bellfruit) (Scorpion 4) (set 12)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR7194 GRAND CASINO PR6934 SLM2 SOUNDS11 GRAND CASINO GRAND CASINO CLUB
-GAMEL( 200?, sc4gcclbl ,sc4gcclb, sc4, sc4gcclbl, sc4_state, sc4gcclb_mbus, ROT0, "BFM","Grandslam Casino (Bellfruit) (Scorpion 4) (set 13)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gcclbm ,sc4gcclb, sc4, sc4gcclbl, sc4_state, sc4gcclb_mbus, ROT0, "BFM","Grandslam Casino (Bellfruit) (Scorpion 4) (set 14)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gcclbn ,sc4gcclb, sc4, sc4gcclbl, sc4_state, sc4gcclb_mbus, ROT0, "BFM","Grandslam Casino (Bellfruit) (Scorpion 4) (set 15)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gcclbp ,sc4gcclb, sc4, sc4gcclbl, sc4_state, sc4gcclb_mbus, ROT0, "BFM","Grandslam Casino (Bellfruit) (Scorpion 4) (set 16)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gcclbl ,sc4gcclb, sc4, sc4gcclbl, sc4_state, sc4gcclb_mbus, ROT0, "BFM","Grandslam Casino (Bellfruit) (Scorpion 4) (set 13)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gcclbm ,sc4gcclb, sc4, sc4gcclbl, sc4_state, sc4gcclb_mbus, ROT0, "BFM","Grandslam Casino (Bellfruit) (Scorpion 4) (set 14)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gcclbn ,sc4gcclb, sc4, sc4gcclbl, sc4_state, sc4gcclb_mbus, ROT0, "BFM","Grandslam Casino (Bellfruit) (Scorpion 4) (set 15)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gcclbp ,sc4gcclb, sc4, sc4gcclbl, sc4_state, sc4gcclb_mbus, ROT0, "BFM","Grandslam Casino (Bellfruit) (Scorpion 4) (set 16)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR7149 GRAND CASINO GRAND CASINO CLUB PR6934 SLM2 SOUNDS11 GRAND CASINO
-GAMEL( 200?, sc4gcclbo ,sc4gcclb, sc4, sc4gcclbl, sc4_state, sc4gcclb_mbus, ROT0, "BFM","Grandslam Casino (Bellfruit) (Scorpion 4) (set 17)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gcclbq ,sc4gcclb, sc4, sc4gcclbl, sc4_state, sc4gcclb_mbus, ROT0, "BFM","Grandslam Casino (Bellfruit) (Scorpion 4) (set 18)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gcclbo ,sc4gcclb, sc4, sc4gcclbl, sc4_state, sc4gcclb_mbus, ROT0, "BFM","Grandslam Casino (Bellfruit) (Scorpion 4) (set 17)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gcclbq ,sc4gcclb, sc4, sc4gcclbl, sc4_state, sc4gcclb_mbus, ROT0, "BFM","Grandslam Casino (Bellfruit) (Scorpion 4) (set 18)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4botn)
@@ -23829,8 +23829,8 @@ INPUT_PORTS_START( sc4botn ) // this structure is generated
INPUT_PORTS_END
// PR2538 BACK OF THE NET V011 BACKOFTHENETSND BACK OF THE NET
-GAMEL( 200?, sc4botn ,0, sc4_4reel, sc4botn, sc4_state, sc4botn, ROT0, "Qps","Back Of The Net (Qps) (Scorpion 4) (set 1, 011)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4botna ,sc4botn, sc4_4reel, sc4botn, sc4_state, sc4botn, ROT0, "Qps","Back Of The Net (Qps) (Scorpion 4) (set 2, 011)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4botn ,0, sc4_4reel, sc4botn, sc4_state, sc4botn, ROT0, "Qps","Back Of The Net (Qps) (Scorpion 4) (set 1, 011)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4botna ,sc4botn, sc4_4reel, sc4botn, sc4_state, sc4botn, ROT0, "Qps","Back Of The Net (Qps) (Scorpion 4) (set 2, 011)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
//fourth reel is tested strangely
@@ -23893,13 +23893,13 @@ INPUT_PORTS_END
// doesn't play
// PRXXXX CLUB BANKETY BANK VER1.0 CLUBBANKSND CLUB BANKETYBANK
-GAMEL( 200?, sc4bbclb ,0, sc4_200_std, sc4bbclb, sc4_state, sc4bbclb, ROT0, "Qps","Bankety Bank Club (V1.0) (Qps) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bbclb ,0, sc4_200_std, sc4bbclb, sc4_state, sc4bbclb, ROT0, "Qps","Bankety Bank Club (V1.0) (Qps) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PRXXXX CLUB BANKETY BANK VER1.1 CLUBBANKSND CLUB BANKETYBANK
-GAMEL( 200?, sc4bbclba ,sc4bbclb, sc4_200_std, sc4bbclb, sc4_state, sc4bbclb, ROT0, "Qps","Bankety Bank Club (V1.1) (Qps) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bbclba ,sc4bbclb, sc4_200_std, sc4bbclb, sc4_state, sc4bbclb, ROT0, "Qps","Bankety Bank Club (V1.1) (Qps) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// can be played
// PRXXXX CLUB BANKETY BANK 411 CLUBBANKSND CLUB BANKETYBANK
-GAMEL( 200?, sc4bbclbb ,sc4bbclb, sc4_200_std, sc4bbclb, sc4_state, sc4bbclb_mbus, ROT0, "Qps","Bankety Bank Club (V411) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bbclbc ,sc4bbclb, sc4_200_std, sc4bbclb, sc4_state, sc4bbclb_mbus, ROT0, "Qps","Bankety Bank Club (V411) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bbclbb ,sc4bbclb, sc4_200_std, sc4bbclb, sc4_state, sc4bbclb_mbus, ROT0, "Qps","Bankety Bank Club (V411) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bbclbc ,sc4bbclb, sc4_200_std, sc4bbclb, sc4_state, sc4bbclb_mbus, ROT0, "Qps","Bankety Bank Club (V411) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4captn)
@@ -23955,14 +23955,14 @@ INPUT_PORTS_START( sc4captn ) // this structure is generated
INPUT_PORTS_END
// PR2013 CAPTAIN CASH CCASH SOUNDS CAPTAIN CASH
-GAMEL( 200?, sc4captn ,0, sc4_4reel, sc4captn, sc4_state, sc4captn, ROT0, "Qps","Captain Cash (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4captnb ,sc4captn, sc4_4reel, sc4captn, sc4_state, sc4captn, ROT0, "Qps","Captain Cash (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4captnc ,sc4captn, sc4_4reel, sc4captn, sc4_state, sc4captn, ROT0, "Qps","Captain Cash (Qps) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4captn ,0, sc4_4reel, sc4captn, sc4_state, sc4captn, ROT0, "Qps","Captain Cash (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4captnb ,sc4captn, sc4_4reel, sc4captn, sc4_state, sc4captn, ROT0, "Qps","Captain Cash (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4captnc ,sc4captn, sc4_4reel, sc4captn, sc4_state, sc4captn, ROT0, "Qps","Captain Cash (Qps) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR9999 CAPTAIN CASH CCASH SOUNDS CAPTAIN CASH (invalid project number)
-GAMEL( 200?, sc4captna ,sc4captn, sc4_4reel, sc4captn, sc4_state, sc4captn, ROT0, "Qps","Captain Cash (Qps) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4captnd ,sc4captn, sc4_4reel, sc4captn, sc4_state, sc4captn, ROT0, "Qps","Captain Cash (Qps) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4captne ,sc4captn, sc4_4reel, sc4captn, sc4_state, sc4captn, ROT0, "Qps","Captain Cash (Qps) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4captnf ,sc4captn, sc4_4reel, sc4captn, sc4_state, sc4captn, ROT0, "Qps","Captain Cash (Qps) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4captna ,sc4captn, sc4_4reel, sc4captn, sc4_state, sc4captn, ROT0, "Qps","Captain Cash (Qps) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4captnd ,sc4captn, sc4_4reel, sc4captn, sc4_state, sc4captn, ROT0, "Qps","Captain Cash (Qps) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4captne ,sc4captn, sc4_4reel, sc4captn, sc4_state, sc4captn, ROT0, "Qps","Captain Cash (Qps) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4captnf ,sc4captn, sc4_4reel, sc4captn, sc4_state, sc4captn, ROT0, "Qps","Captain Cash (Qps) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4cmous)
@@ -24017,11 +24017,11 @@ INPUT_PORTS_START( sc4cmous ) // this structure is generated
INPUT_PORTS_END
// PR2534 CASH AND MOUSE V041 CASHANDMOUSESND CASH AND MOUSE
-GAMEL( 200?, sc4cmous ,0, sc4_5reel, sc4cmous, sc4_state, sc4cmous, ROT0, "Qps","Cash & Mouse (V041) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cmousb ,sc4cmous, sc4_5reel, sc4cmous, sc4_state, sc4cmous, ROT0, "Qps","Cash & Mouse (V041) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cmous ,0, sc4_5reel, sc4cmous, sc4_state, sc4cmous, ROT0, "Qps","Cash & Mouse (V041) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cmousb ,sc4cmous, sc4_5reel, sc4cmous, sc4_state, sc4cmous, ROT0, "Qps","Cash & Mouse (V041) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2534 CASH AND MOUSE V011 CASHANDMOUSESND CASH AND MOUSE
-GAMEL( 200?, sc4cmousa ,sc4cmous, sc4_5reel, sc4cmous, sc4_state, sc4cmous, ROT0, "Qps","Cash & Mouse (V011) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cmousc ,sc4cmous, sc4_5reel, sc4cmous, sc4_state, sc4cmous, ROT0, "Qps","Cash & Mouse (V011) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cmousa ,sc4cmous, sc4_5reel, sc4cmous, sc4_state, sc4cmous, ROT0, "Qps","Cash & Mouse (V011) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cmousc ,sc4cmous, sc4_5reel, sc4cmous, sc4_state, sc4cmous, ROT0, "Qps","Cash & Mouse (V011) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -24082,31 +24082,31 @@ INPUT_PORTS_START( sc4cad ) // this structure is generated
INPUT_PORTS_END
// PR2528 CASH ADDER V1.0 CASHADDERSND CASH ADDER
-GAMEL( 200?, sc4cad ,0, sc4_5reel, sc4cad, sc4_state, sc4cad, ROT0, "Qps","Cash Adder (V1.0) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cada ,sc4cad, sc4_5reel, sc4cad, sc4_state, sc4cad, ROT0, "Qps","Cash Adder (V1.0) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cadf ,sc4cad, sc4_5reel, sc4cad, sc4_state, sc4cad, ROT0, "Qps","Cash Adder (V1.0) (Qps) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cadg ,sc4cad, sc4_5reel, sc4cad, sc4_state, sc4cad, ROT0, "Qps","Cash Adder (V1.0) (Qps) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cad ,0, sc4_5reel, sc4cad, sc4_state, sc4cad, ROT0, "Qps","Cash Adder (V1.0) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cada ,sc4cad, sc4_5reel, sc4cad, sc4_state, sc4cad, ROT0, "Qps","Cash Adder (V1.0) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cadf ,sc4cad, sc4_5reel, sc4cad, sc4_state, sc4cad, ROT0, "Qps","Cash Adder (V1.0) (Qps) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cadg ,sc4cad, sc4_5reel, sc4cad, sc4_state, sc4cad, ROT0, "Qps","Cash Adder (V1.0) (Qps) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2528 CASH ADDER 011 CASHADDERSND CASH ADDER
-GAMEL( 200?, sc4cadb ,sc4cad, sc4_5reel, sc4cad, sc4_state, sc4cad_mbus, ROT0, "Qps","Cash Adder (V011) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cadh ,sc4cad, sc4_5reel, sc4cad, sc4_state, sc4cad_mbus, ROT0, "Qps","Cash Adder (V011) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cadb ,sc4cad, sc4_5reel, sc4cad, sc4_state, sc4cad_mbus, ROT0, "Qps","Cash Adder (V011) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cadh ,sc4cad, sc4_5reel, sc4cad, sc4_state, sc4cad_mbus, ROT0, "Qps","Cash Adder (V011) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2528 CASH ADDER 041 CASHADDERSND CASH ADDER
-GAMEL( 200?, sc4cadc ,sc4cad, sc4_5reel, sc4cad, sc4_state, sc4cad_mbus, ROT0, "Qps","Cash Adder (V041) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cadi ,sc4cad, sc4_5reel, sc4cad, sc4_state, sc4cad_mbus, ROT0, "Qps","Cash Adder (V041) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cadc ,sc4cad, sc4_5reel, sc4cad, sc4_state, sc4cad_mbus, ROT0, "Qps","Cash Adder (V041) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cadi ,sc4cad, sc4_5reel, sc4cad, sc4_state, sc4cad_mbus, ROT0, "Qps","Cash Adder (V041) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2528 CASH ADDER 012 CASHADDERSND CASH ADDER
-GAMEL( 200?, sc4cadd ,sc4cad, sc4_5reel, sc4cad, sc4_state, sc4cad, ROT0, "Qps","Cash Adder (V012) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cadj ,sc4cad, sc4_5reel, sc4cad, sc4_state, sc4cad, ROT0, "Qps","Cash Adder (V012) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cadd ,sc4cad, sc4_5reel, sc4cad, sc4_state, sc4cad, ROT0, "Qps","Cash Adder (V012) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cadj ,sc4cad, sc4_5reel, sc4cad, sc4_state, sc4cad, ROT0, "Qps","Cash Adder (V012) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2528 CASH ADDER 042 CASHADDERSND CASH ADDER
-GAMEL( 200?, sc4cade ,sc4cad, sc4_5reel, sc4cad, sc4_state, sc4cad, ROT0, "Qps","Cash Adder (V042) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cadk ,sc4cad, sc4_5reel, sc4cad, sc4_state, sc4cad, ROT0, "Qps","Cash Adder (V042) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cade ,sc4cad, sc4_5reel, sc4cad, sc4_state, sc4cad, ROT0, "Qps","Cash Adder (V042) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cadk ,sc4cad, sc4_5reel, sc4cad, sc4_state, sc4cad, ROT0, "Qps","Cash Adder (V042) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2528 CASH ADDER 013 CASHADDERSND CASH ADDER
-GAMEL( 200?, sc4cadl ,sc4cad, sc4_5reel, sc4cad, sc4_state, sc4cad, ROT0, "Qps","Cash Adder (V013) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cadm ,sc4cad, sc4_5reel, sc4cad, sc4_state, sc4cad, ROT0, "Qps","Cash Adder (V013) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cadl ,sc4cad, sc4_5reel, sc4cad, sc4_state, sc4cad, ROT0, "Qps","Cash Adder (V013) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cadm ,sc4cad, sc4_5reel, sc4cad, sc4_state, sc4cad, ROT0, "Qps","Cash Adder (V013) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2528 CASH ADDER 014 CASHADDERSND CASH ADDER
-GAMEL( 200?, sc4cadn ,sc4cad, sc4_5reel, sc4cad, sc4_state, sc4cad, ROT0, "Qps","Cash Adder (V014) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cadp ,sc4cad, sc4_5reel, sc4cad, sc4_state, sc4cad, ROT0, "Qps","Cash Adder (V014) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cadn ,sc4cad, sc4_5reel, sc4cad, sc4_state, sc4cad, ROT0, "Qps","Cash Adder (V014) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cadp ,sc4cad, sc4_5reel, sc4cad, sc4_state, sc4cad, ROT0, "Qps","Cash Adder (V014) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2528 CASH ADDER 043 CASHADDERSND CASH ADDER
-GAMEL( 200?, sc4cado ,sc4cad, sc4_5reel, sc4cad, sc4_state, sc4cad, ROT0, "Qps","Cash Adder (V043) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cadq ,sc4cad, sc4_5reel, sc4cad, sc4_state, sc4cad, ROT0, "Qps","Cash Adder (V043) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cado ,sc4cad, sc4_5reel, sc4cad, sc4_state, sc4cad, ROT0, "Qps","Cash Adder (V043) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cadq ,sc4cad, sc4_5reel, sc4cad, sc4_state, sc4cad, ROT0, "Qps","Cash Adder (V043) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4cadcl)
{
@@ -24162,8 +24162,8 @@ INPUT_PORTS_START( sc4cadcl ) // this structure is generated
INPUT_PORTS_END
// PRXXXX QPS155 CLUB CASH ADDER Version 411 CLUBCASHADDERSND CLUB CASH ADDER
-GAMEL( 200?, sc4cadcl ,0, sc4_5reel, sc4cadcl, sc4_state, sc4cadcl, ROT0, "Qps","Cash Adder Club (411) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cadcla ,sc4cadcl, sc4_5reel, sc4cadcl, sc4_state, sc4cadcl, ROT0, "Qps","Cash Adder Club (411) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cadcl ,0, sc4_5reel, sc4cadcl, sc4_state, sc4cadcl, ROT0, "Qps","Cash Adder Club (411) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cadcla ,sc4cadcl, sc4_5reel, sc4cadcl, sc4_state, sc4cadcl, ROT0, "Qps","Cash Adder Club (411) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4cr)
@@ -24222,15 +24222,15 @@ INPUT_PORTS_END
// PR2061 CASHRAKER RAKERSND CASHRAKER
-GAMEL( 200?, sc4cr ,0, sc4_4reel_alt, sc4cr, sc4_state, sc4cr, ROT0, "Qps","Cash Raker (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cra ,sc4cr, sc4_4reel_alt, sc4cr, sc4_state, sc4cr, ROT0, "Qps","Cash Raker (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crb ,sc4cr, sc4_4reel_alt, sc4cr, sc4_state, sc4cr, ROT0, "Qps","Cash Raker (Qps) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cr ,0, sc4_4reel_alt, sc4cr, sc4_state, sc4cr, ROT0, "Qps","Cash Raker (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cra ,sc4cr, sc4_4reel_alt, sc4cr, sc4_state, sc4cr, ROT0, "Qps","Cash Raker (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crb ,sc4cr, sc4_4reel_alt, sc4cr, sc4_state, sc4cr, ROT0, "Qps","Cash Raker (Qps) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2061 CASHRAKER V2.1 RAKERSND CASHRAKER
-GAMEL( 200?, sc4crc ,sc4cr, sc4_4reel_alt, sc4cr, sc4_state, sc4cr, ROT0, "Qps","Cash Raker (V2.1) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cre ,sc4cr, sc4_4reel_alt, sc4cr, sc4_state, sc4cr, ROT0, "Qps","Cash Raker (V2.1) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crc ,sc4cr, sc4_4reel_alt, sc4cr, sc4_state, sc4cr, ROT0, "Qps","Cash Raker (V2.1) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cre ,sc4cr, sc4_4reel_alt, sc4cr, sc4_state, sc4cr, ROT0, "Qps","Cash Raker (V2.1) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2061 CASHRAKER V2.2 RAKERSND CASHRAKER
-GAMEL( 200?, sc4crd ,sc4cr, sc4_4reel_alt, sc4cr, sc4_state, sc4cr, ROT0, "Qps","Cash Raker (V2.2) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crf ,sc4cr, sc4_4reel_alt, sc4cr, sc4_state, sc4cr, ROT0, "Qps","Cash Raker (V2.2) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crd ,sc4cr, sc4_4reel_alt, sc4cr, sc4_state, sc4cr, ROT0, "Qps","Cash Raker (V2.2) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crf ,sc4cr, sc4_4reel_alt, sc4cr, sc4_state, sc4cr, ROT0, "Qps","Cash Raker (V2.2) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -24293,16 +24293,16 @@ INPUT_PORTS_START( sc4crcl ) // this structure is generated
INPUT_PORTS_END
// PR???? CLUB CASHRAKER V1.0 CLUBRAKERSND CLUB CASHRAKER
-GAMEL( 200?, sc4crcl ,0, sc4_5reel, sc4crcl, sc4_state, sc4crcl, ROT0, "Qps","Cash Raker Club (V1.0) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crclb ,sc4crcl, sc4_5reel, sc4crcl, sc4_state, sc4crcl, ROT0, "Qps","Cash Raker Club (V1.0) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crcl ,0, sc4_5reel, sc4crcl, sc4_state, sc4crcl, ROT0, "Qps","Cash Raker Club (V1.0) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crclb ,sc4crcl, sc4_5reel, sc4crcl, sc4_state, sc4crcl, ROT0, "Qps","Cash Raker Club (V1.0) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR???? CLUB CASHRAKER V1.1 CLUBRAKERSND CLUB CASHRAKER
-GAMEL( 200?, sc4crcla ,sc4crcl, sc4_5reel, sc4crcl, sc4_state, sc4crcl, ROT0, "Qps","Cash Raker Club (V1.1) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crclc ,sc4crcl, sc4_5reel, sc4crcl, sc4_state, sc4crcl, ROT0, "Qps","Cash Raker Club (V1.1) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crcla ,sc4crcl, sc4_5reel, sc4crcl, sc4_state, sc4crcl, ROT0, "Qps","Cash Raker Club (V1.1) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crclc ,sc4crcl, sc4_5reel, sc4crcl, sc4_state, sc4crcl, ROT0, "Qps","Cash Raker Club (V1.1) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR???? CLUB CASHRAKER V1.3 CLUBRAKERSND CLUB CASHRAKER
-GAMEL( 200?, sc4crcld ,sc4crcl, sc4_5reel, sc4crcl, sc4_state, sc4crcl, ROT0, "Qps","Cash Raker Club (V1.3) (Qps) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crcld ,sc4crcl, sc4_5reel, sc4crcl, sc4_state, sc4crcl, ROT0, "Qps","Cash Raker Club (V1.3) (Qps) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR???? CLUB CASHRAKER 411 CLUBRAKERSND CLUB CASHRAKER
-GAMEL( 200?, sc4crcle ,sc4crcl, sc4_5reel, sc4crcl, sc4_state, sc4crcl_mbus, ROT0, "Qps","Cash Raker Club (411) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crclf ,sc4crcl, sc4_5reel, sc4crcl, sc4_state, sc4crcl_mbus, ROT0, "Qps","Cash Raker Club (411) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crcle ,sc4crcl, sc4_5reel, sc4crcl, sc4_state, sc4crcl_mbus, ROT0, "Qps","Cash Raker Club (411) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crclf ,sc4crcl, sc4_5reel, sc4crcl, sc4_state, sc4crcl_mbus, ROT0, "Qps","Cash Raker Club (411) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4cashm)
@@ -24351,12 +24351,12 @@ INPUT_PORTS_START( sc4cashm ) // this structure is generated
INPUT_PORTS_END
// PR2008 CASHANOVA CASH SOUNDS
-GAMEL( 200?, sc4cashm ,0, sc4_4reel, sc4cashm, sc4_state, sc4cashm, ROT0, "Mazooma","Cashanova (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cashma ,sc4cashm, sc4_4reel, sc4cashm, sc4_state, sc4cashm, ROT0, "Mazooma","Cashanova (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cashmb ,sc4cashm, sc4_4reel, sc4cashm, sc4_state, sc4cashm, ROT0, "Mazooma","Cashanova (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cashmc ,sc4cashm, sc4_4reel, sc4cashm, sc4_state, sc4cashm, ROT0, "Mazooma","Cashanova (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cashmd ,sc4cashm, sc4_4reel, sc4cashm, sc4_state, sc4cashm, ROT0, "Mazooma","Cashanova (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cashme ,sc4cashm, sc4_4reel, sc4cashm, sc4_state, sc4cashm, ROT0, "Mazooma","Cashanova (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cashm ,0, sc4_4reel, sc4cashm, sc4_state, sc4cashm, ROT0, "Mazooma","Cashanova (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cashma ,sc4cashm, sc4_4reel, sc4cashm, sc4_state, sc4cashm, ROT0, "Mazooma","Cashanova (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cashmb ,sc4cashm, sc4_4reel, sc4cashm, sc4_state, sc4cashm, ROT0, "Mazooma","Cashanova (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cashmc ,sc4cashm, sc4_4reel, sc4cashm, sc4_state, sc4cashm, ROT0, "Mazooma","Cashanova (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cashmd ,sc4cashm, sc4_4reel, sc4cashm, sc4_state, sc4cashm, ROT0, "Mazooma","Cashanova (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cashme ,sc4cashm, sc4_4reel, sc4cashm, sc4_state, sc4cashm, ROT0, "Mazooma","Cashanova (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -24434,15 +24434,15 @@ INPUT_PORTS_END
// this seems to need all the units connected to function
// PR2360 CASINO KING X BARKX SOUNDS 8 KING X
-GAMEL( 200?, sc4ckx ,0, sc4_3reel_200, sc4, sc4_state, sc4ckxtb, ROT0, "Mazooma","Casino King X (Mazooma) (Scorpion 4) (Top Box, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // Top Box
-GAMEL( 200?, sc4ckxd ,sc4ckx, sc4_3reel_200, sc4, sc4_state, sc4ckxtb, ROT0, "Mazooma","Casino King X (Mazooma) (Scorpion 4) (Top Box, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // Top Box
+GAMEL( 200?, sc4ckx ,0, sc4_3reel_200, sc4, sc4_state, sc4ckxtb, ROT0, "Mazooma","Casino King X (Mazooma) (Scorpion 4) (Top Box, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // Top Box
+GAMEL( 200?, sc4ckxd ,sc4ckx, sc4_3reel_200, sc4, sc4_state, sc4ckxtb, ROT0, "Mazooma","Casino King X (Mazooma) (Scorpion 4) (Top Box, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // Top Box
// PR2360 CASINO KING X KING X MAZ BARKX SOUNDS KING X 3P
-GAMEL( 200?, sc4ckxa ,sc4ckx, sc4_3reel_200, sc4ckxg, sc4_state, sc4ckx3p, ROT0, "Mazooma","Casino King X (Mazooma) (Scorpion 4) (Base, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ckxb ,sc4ckx, sc4_3reel_200, sc4ckxg, sc4_state, sc4ckx3p, ROT0, "Mazooma","Casino King X (Mazooma) (Scorpion 4) (Base, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ckxc ,sc4ckx, sc4_3reel_200, sc4ckxg, sc4_state, sc4ckx3p, ROT0, "Mazooma","Casino King X (Mazooma) (Scorpion 4) (Base, set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ckxe ,sc4ckx, sc4_3reel_200, sc4ckxg, sc4_state, sc4ckx3p, ROT0, "Mazooma","Casino King X (Mazooma) (Scorpion 4) (Base, set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ckxf ,sc4ckx, sc4_3reel_200, sc4ckxg, sc4_state, sc4ckx3p, ROT0, "Mazooma","Casino King X (Mazooma) (Scorpion 4) (Base, set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ckxg ,sc4ckx, sc4_3reel_200, sc4ckxg, sc4_state, sc4ckx3p, ROT0, "Mazooma","Casino King X (Mazooma) (Scorpion 4) (Base, set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ckxa ,sc4ckx, sc4_3reel_200, sc4ckxg, sc4_state, sc4ckx3p, ROT0, "Mazooma","Casino King X (Mazooma) (Scorpion 4) (Base, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ckxb ,sc4ckx, sc4_3reel_200, sc4ckxg, sc4_state, sc4ckx3p, ROT0, "Mazooma","Casino King X (Mazooma) (Scorpion 4) (Base, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ckxc ,sc4ckx, sc4_3reel_200, sc4ckxg, sc4_state, sc4ckx3p, ROT0, "Mazooma","Casino King X (Mazooma) (Scorpion 4) (Base, set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ckxe ,sc4ckx, sc4_3reel_200, sc4ckxg, sc4_state, sc4ckx3p, ROT0, "Mazooma","Casino King X (Mazooma) (Scorpion 4) (Base, set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ckxf ,sc4ckx, sc4_3reel_200, sc4ckxg, sc4_state, sc4ckx3p, ROT0, "Mazooma","Casino King X (Mazooma) (Scorpion 4) (Base, set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ckxg ,sc4ckx, sc4_3reel_200, sc4ckxg, sc4_state, sc4ckx3p, ROT0, "Mazooma","Casino King X (Mazooma) (Scorpion 4) (Base, set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4chick)
@@ -24491,7 +24491,7 @@ INPUT_PORTS_START( sc4chick ) // this structure is generated
INPUT_PORTS_END
// PR7060CASINO CHICKEN DALES TTTWO SOUNDS CHICKEN DALES
-GAMEL( 200?, sc4chick ,0, sc4_3reel, sc4chick, sc4_state, sc4chick, ROT0, "Mazooma","Chickendales (Mazooma) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4chick ,0, sc4_3reel, sc4chick, sc4_state, sc4chick, ROT0, "Mazooma","Chickendales (Mazooma) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4ccogs)
@@ -24546,7 +24546,7 @@ INPUT_PORTS_START( sc4ccogs ) // this structure is generated
INPUT_PORTS_END
// PR2522 CLEVERCOGS V1.0 CLEVERCOGSSND CLEVER COGS
-GAMEL( 200?, sc4ccogs ,0, sc4_4reel, sc4ccogs, sc4_state, sc4ccogs, ROT0, "Qps","Clever Cogs (Qps) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ccogs ,0, sc4_4reel, sc4ccogs, sc4_state, sc4ccogs, ROT0, "Qps","Clever Cogs (Qps) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -24621,29 +24621,29 @@ INPUT_PORTS_START( sc4cclime ) // this structure is generated
INPUT_PORTS_END
// PR1129 CASINO CRAZY CLIMBER PR1129 CRAZY CLIMBER SOUNDS11
-GAMEL( 200?, sc4cclim ,0, sc4_3reel, sc4cclime, sc4_state, sc4cclim, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclima ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclimb ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclimc ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclimd ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclimh ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclimi ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclimm ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclimn ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclimo ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclimp ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclims ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 12)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclim ,0, sc4_3reel, sc4cclime, sc4_state, sc4cclim, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclima ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclimb ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclimc ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclimd ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclimh ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclimi ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclimm ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclimn ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclimo ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclimp ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclims ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 12)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR1129 CASINO CRAZY CLIMBER CRAZY CLIMBER S.SITE PR1129 CRAZY CLIMBER SOUNDS11
-GAMEL( 200?, sc4cclime ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim_mbus, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 13)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclimf ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim_mbus, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 14)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclimg ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim_mbus, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 15)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclimj ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim_mbus, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 16)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclimk ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim_mbus, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 17)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ccliml ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim_mbus, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 18)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclimq ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim_mbus, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 19)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclimr ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim_mbus, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 20)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclimt ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim_mbus, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 21)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclimu ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim_mbus, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 22)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclime ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim_mbus, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 13)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclimf ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim_mbus, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 14)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclimg ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim_mbus, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 15)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclimj ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim_mbus, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 16)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclimk ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim_mbus, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 17)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ccliml ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim_mbus, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 18)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclimq ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim_mbus, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 19)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclimr ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim_mbus, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 20)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclimt ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim_mbus, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 21)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclimu ,sc4cclim, sc4_3reel, sc4cclime, sc4_state, sc4cclim_mbus, ROT0, "BFM","Casino Crazy Climber (Bellfruit) (Scorpion 4) (set 22)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -24710,36 +24710,36 @@ INPUT_PORTS_END
// PR6813 CRAZY FRUITS PR6813 CRAZY FRUITS SOUNDS11
// these 3 have a unique attract style
-GAMEL( 200?, sc4cfqps ,0, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "Qps","Crazy Fruits (PR6813, CRFR) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfqpsb ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "Qps","Crazy Fruits (PR6813, CRFR) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfqpsd ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "Qps","Crazy Fruits (PR6813, CRFR) (Qps) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfqps ,0, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "Qps","Crazy Fruits (PR6813, CRFR) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfqpsb ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "Qps","Crazy Fruits (PR6813, CRFR) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfqpsd ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "Qps","Crazy Fruits (PR6813, CRFR) (Qps) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// the attract style changes below
-GAMEL( 200?, sc4cfqpsa ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "Qps","Crazy Fruits (PR6813, CRFR) (Qps) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfqpsk ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "Qps","Crazy Fruits (PR6813, CCAS) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // why are these 2 CCAS? a mistake? or different version?
-GAMEL( 200?, sc4czfrc ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "Qps","Crazy Fruits (PR6813, CCAS) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4czfrb ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "BFM","Crazy Fruits (PR6813, CRFR) (BFM) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4czfre ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "BFM","Crazy Fruits (PR6813, CRFR) (BFM) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4czfrg ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "BFM","Crazy Fruits (PR6813, CRFR) (BFM) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4czfrh ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "BFM","Crazy Fruits (PR6813, CRFR) (BFM) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4czfrj ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "BFM","Crazy Fruits (PR6813, CRFR) (BFM) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4czfrk ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "BFM","Crazy Fruits (PR6813, CRFR) (BFM) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4czfrf ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "BFM / Whitbread","Crazy Fruits (PR6813, CRFR) (BFM + Whitbread) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4czfri ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "BFM / Whitbread","Crazy Fruits (PR6813, CRFR) (BFM + Whitbread) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfqpsa ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "Qps","Crazy Fruits (PR6813, CRFR) (Qps) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfqpsk ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "Qps","Crazy Fruits (PR6813, CCAS) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // why are these 2 CCAS? a mistake? or different version?
+GAMEL( 200?, sc4czfrc ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "Qps","Crazy Fruits (PR6813, CCAS) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4czfrb ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "BFM","Crazy Fruits (PR6813, CRFR) (BFM) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4czfre ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "BFM","Crazy Fruits (PR6813, CRFR) (BFM) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4czfrg ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "BFM","Crazy Fruits (PR6813, CRFR) (BFM) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4czfrh ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "BFM","Crazy Fruits (PR6813, CRFR) (BFM) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4czfrj ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "BFM","Crazy Fruits (PR6813, CRFR) (BFM) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4czfrk ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "BFM","Crazy Fruits (PR6813, CRFR) (BFM) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4czfrf ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "BFM / Whitbread","Crazy Fruits (PR6813, CRFR) (BFM + Whitbread) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4czfri ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "BFM / Whitbread","Crazy Fruits (PR6813, CRFR) (BFM + Whitbread) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2521 CRAZY FRUITS V1.0 PR6813 CRAZY FRUITS SOUNDS11
-GAMEL( 200?, sc4cfqpsc ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "Qps","Crazy Fruits V1.0 (PR2521, ECRZ) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfqpse ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "Qps","Crazy Fruits V1.0 (PR2521, ECRZ) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfqpsc ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "Qps","Crazy Fruits V1.0 (PR2521, ECRZ) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfqpse ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "Qps","Crazy Fruits V1.0 (PR2521, ECRZ) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// 4 sets below use reels 1,2,3,5 instead of 1,2,3,4 ?!
-GAMEL( 200?, sc4cfqpsf ,sc4cfqps, sc4_4reel_alt, sc4cfqpsf, sc4_state, sc4cfqps_alt, ROT0, "Qps","Crazy Fruits V1.0 (PR2521, ECRZ) (Qps) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfqpsg ,sc4cfqps, sc4_4reel_alt, sc4cfqpsf, sc4_state, sc4cfqps_alt, ROT0, "Qps","Crazy Fruits V1.0 (PR2521, ECRZ) (Qps) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfqpsh ,sc4cfqps, sc4_4reel_alt, sc4cfqpsf, sc4_state, sc4cfqps_alt, ROT0, "Qps","Crazy Fruits V1.0 (PR2521, ECRZ) (Qps) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfqpsi ,sc4cfqps, sc4_4reel_alt, sc4cfqpsf, sc4_state, sc4cfqps_alt, ROT0, "Qps","Crazy Fruits V1.0 (PR2521, ECRZ) (Qps) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfqpsf ,sc4cfqps, sc4_4reel_alt, sc4cfqpsf, sc4_state, sc4cfqps_alt, ROT0, "Qps","Crazy Fruits V1.0 (PR2521, ECRZ) (Qps) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfqpsg ,sc4cfqps, sc4_4reel_alt, sc4cfqpsf, sc4_state, sc4cfqps_alt, ROT0, "Qps","Crazy Fruits V1.0 (PR2521, ECRZ) (Qps) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfqpsh ,sc4cfqps, sc4_4reel_alt, sc4cfqpsf, sc4_state, sc4cfqps_alt, ROT0, "Qps","Crazy Fruits V1.0 (PR2521, ECRZ) (Qps) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfqpsi ,sc4cfqps, sc4_4reel_alt, sc4cfqpsf, sc4_state, sc4cfqps_alt, ROT0, "Qps","Crazy Fruits V1.0 (PR2521, ECRZ) (Qps) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR4613 CRAZY FRUITS SP98 PR6813 CRAZY FRUITS SOUNDS11
-GAMEL( 200?, sc4cfqpsj ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "Qps","Crazy Fruits SP98 (PR4613) (Qps) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfqpsl ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "BFM","Crazy Fruits SP98 (PR4613) (BFM) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfqpsn ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "BFM","Crazy Fruits SP98 (PR4613) (BFM) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfqpsp ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "BFM","Crazy Fruits SP98 (PR4613) (BFM) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfqpsm ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "BFM / Whitbread","Crazy Fruits SP98 (PR4613) (BFM / Whitbread) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfqpso ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "BFM / Whitbread","Crazy Fruits SP98 (PR4613) (BFM / Whitbread) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfqpsj ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "Qps","Crazy Fruits SP98 (PR4613) (Qps) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfqpsl ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "BFM","Crazy Fruits SP98 (PR4613) (BFM) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfqpsn ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "BFM","Crazy Fruits SP98 (PR4613) (BFM) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfqpsp ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "BFM","Crazy Fruits SP98 (PR4613) (BFM) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfqpsm ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "BFM / Whitbread","Crazy Fruits SP98 (PR4613) (BFM / Whitbread) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfqpso ,sc4cfqps, sc4_4reel, sc4cfqpsf, sc4_state, sc4cfqps, ROT0, "BFM / Whitbread","Crazy Fruits SP98 (PR4613) (BFM / Whitbread) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -24814,31 +24814,31 @@ INPUT_PORTS_START( sc4crzkyi ) // this structure is generated
INPUT_PORTS_END
// PR1128 CASINO CRAZY KEYS PR1128 CRAZY KEYS SOUNDS11
-GAMEL( 200?, sc4crzky ,0, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky, ROT0, "BFM","Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzkya ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky, ROT0, "BFM","Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzkyb ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky, ROT0, "BFM","Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzkyc ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky, ROT0, "BFM","Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzkyd ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky, ROT0, "BFM","Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzkye ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky, ROT0, "BFM","Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzkyf ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky, ROT0, "BFM","Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzkyg ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky, ROT0, "BFM","Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // incomplete pairing
-GAMEL( 200?, sc4crzkyh ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky, ROT0, "BFM","Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzkyl ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky, ROT0, "BFM","Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzkym ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky, ROT0, "BFM","Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzkyn ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky, ROT0, "BFM","Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 12)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzkyt ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky, ROT0, "BFM","Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 13)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzkyu ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky, ROT0, "BFM","Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 14)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzky ,0, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky, ROT0, "BFM","Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzkya ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky, ROT0, "BFM","Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzkyb ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky, ROT0, "BFM","Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzkyc ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky, ROT0, "BFM","Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzkyd ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky, ROT0, "BFM","Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzkye ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky, ROT0, "BFM","Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzkyf ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky, ROT0, "BFM","Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzkyg ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky, ROT0, "BFM","Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // incomplete pairing
+GAMEL( 200?, sc4crzkyh ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky, ROT0, "BFM","Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzkyl ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky, ROT0, "BFM","Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzkym ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky, ROT0, "BFM","Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzkyn ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky, ROT0, "BFM","Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 12)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzkyt ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky, ROT0, "BFM","Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 13)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzkyu ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky, ROT0, "BFM","Casino Crazy Keys (Bellfruit) (Scorpion 4) (set 14)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR1128 CASINO CRAZY KEYS CRAZY KEYS ARCADE PR1128 CRAZY KEYS SOUNDS11
-GAMEL( 200?, sc4crzkyi ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky_mbus, ROT0, "BFM","Casino Crazy Keys Arcade (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzkyj ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky_mbus, ROT0, "BFM","Casino Crazy Keys Arcade (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzkyk ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky_mbus, ROT0, "BFM","Casino Crazy Keys Arcade (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzkyo ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky_mbus, ROT0, "BFM","Casino Crazy Keys Arcade (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzkyp ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky_mbus, ROT0, "BFM","Casino Crazy Keys Arcade (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzkyq ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky_mbus, ROT0, "BFM","Casino Crazy Keys Arcade (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzkyr ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky_mbus, ROT0, "BFM","Casino Crazy Keys Arcade (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzkys ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky_mbus, ROT0, "BFM","Casino Crazy Keys Arcade (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzkyv ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky_mbus, ROT0, "BFM","Casino Crazy Keys Arcade (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzkyw ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky_mbus, ROT0, "BFM","Casino Crazy Keys Arcade (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzkyi ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky_mbus, ROT0, "BFM","Casino Crazy Keys Arcade (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzkyj ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky_mbus, ROT0, "BFM","Casino Crazy Keys Arcade (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzkyk ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky_mbus, ROT0, "BFM","Casino Crazy Keys Arcade (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzkyo ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky_mbus, ROT0, "BFM","Casino Crazy Keys Arcade (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzkyp ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky_mbus, ROT0, "BFM","Casino Crazy Keys Arcade (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzkyq ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky_mbus, ROT0, "BFM","Casino Crazy Keys Arcade (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzkyr ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky_mbus, ROT0, "BFM","Casino Crazy Keys Arcade (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzkys ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky_mbus, ROT0, "BFM","Casino Crazy Keys Arcade (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzkyv ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky_mbus, ROT0, "BFM","Casino Crazy Keys Arcade (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzkyw ,sc4crzky, sc4_3reel, sc4crzkyi, sc4_state, sc4crzky_mbus, ROT0, "BFM","Casino Crazy Keys Arcade (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -24893,10 +24893,10 @@ INPUT_PORTS_START( sc4deepi ) // this structure is generated
INPUT_PORTS_END
// PR2099 DEEP IMPACT DIMP SOUNDS DEEP IMPACT
-GAMEL( 200?, sc4deepi ,0, sc4_5reel, sc4deepi, sc4_state, sc4deepi, ROT0, "Mazooma","Deep Impact (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4deepia ,sc4deepi, sc4_5reel, sc4deepi, sc4_state, sc4deepi, ROT0, "Mazooma","Deep Impact (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4deepib ,sc4deepi, sc4_5reel, sc4deepi, sc4_state, sc4deepi, ROT0, "Mazooma","Deep Impact (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4deepid ,sc4deepi, sc4_5reel, sc4deepi, sc4_state, sc4deepi, ROT0, "Mazooma","Deep Impact (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4deepi ,0, sc4_5reel, sc4deepi, sc4_state, sc4deepi, ROT0, "Mazooma","Deep Impact (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4deepia ,sc4deepi, sc4_5reel, sc4deepi, sc4_state, sc4deepi, ROT0, "Mazooma","Deep Impact (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4deepib ,sc4deepi, sc4_5reel, sc4deepi, sc4_state, sc4deepi, ROT0, "Mazooma","Deep Impact (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4deepid ,sc4deepi, sc4_5reel, sc4deepi, sc4_state, sc4deepi, ROT0, "Mazooma","Deep Impact (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -24942,13 +24942,13 @@ INPUT_PORTS_START( sc4dblfr ) // this structure is generated
INPUT_PORTS_END
// PR7060 DOUBLE FRENZY DFRZYSND
-GAMEL( 200?, sc4dblfr ,0, sc4_200_4r, sc4dblfr, sc4_state, sc4dblfr, ROT0, "Qps","Double Frenzy (PR7060) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4dblfra ,sc4dblfr, sc4_200_4r, sc4dblfr, sc4_state, sc4dblfr, ROT0, "Qps","Double Frenzy (PR7060) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4dblfrb ,sc4dblfr, sc4_200_4r, sc4dblfr, sc4_state, sc4dblfr, ROT0, "Qps","Double Frenzy (PR7060) (Qps) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4dblfrc ,sc4dblfr, sc4_200_4r, sc4dblfr, sc4_state, sc4dblfr, ROT0, "Qps","Double Frenzy (PR7060) (Qps) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dblfr ,0, sc4_200_4r, sc4dblfr, sc4_state, sc4dblfr, ROT0, "Qps","Double Frenzy (PR7060) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dblfra ,sc4dblfr, sc4_200_4r, sc4dblfr, sc4_state, sc4dblfr, ROT0, "Qps","Double Frenzy (PR7060) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dblfrb ,sc4dblfr, sc4_200_4r, sc4dblfr, sc4_state, sc4dblfr, ROT0, "Qps","Double Frenzy (PR7060) (Qps) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dblfrc ,sc4dblfr, sc4_200_4r, sc4dblfr, sc4_state, sc4dblfr, ROT0, "Qps","Double Frenzy (PR7060) (Qps) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2276 DOUBLE FRENZY 212 DFRZYSND
-GAMEL( 200?, sc4dblfrd ,sc4dblfr, sc4_200_4r, sc4dblfr, sc4_state, sc4dblfr, ROT0, "Qps","Double Frenzy (PR2276) (212) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4dblfre ,sc4dblfr, sc4_200_4r, sc4dblfr, sc4_state, sc4dblfr, ROT0, "Qps","Double Frenzy (PR2276) (212) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dblfrd ,sc4dblfr, sc4_200_4r, sc4dblfr, sc4_state, sc4dblfr, ROT0, "Qps","Double Frenzy (PR2276) (212) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dblfre ,sc4dblfr, sc4_200_4r, sc4dblfr, sc4_state, sc4dblfr, ROT0, "Qps","Double Frenzy (PR2276) (212) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4darw)
{
@@ -25002,10 +25002,10 @@ INPUT_PORTS_START( sc4darw ) // this structure is generated
INPUT_PORTS_END
// PR2026 DOUGH AND ARROW DOUGHSND DOUGH AND ARROW
-GAMEL( 200?, sc4darw ,0, sc4_4reel_alt, sc4darw, sc4_state, sc4darw, ROT0, "Qps","Dough & Arrow (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4darwa ,sc4darw, sc4_4reel_alt, sc4darw, sc4_state, sc4darw, ROT0, "Qps","Dough & Arrow (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4darwb ,sc4darw, sc4_4reel_alt, sc4darw, sc4_state, sc4darw, ROT0, "Qps","Dough & Arrow (Qps) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4darwc ,sc4darw, sc4_4reel_alt, sc4darw, sc4_state, sc4darw, ROT0, "Qps","Dough & Arrow (Qps) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4darw ,0, sc4_4reel_alt, sc4darw, sc4_state, sc4darw, ROT0, "Qps","Dough & Arrow (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4darwa ,sc4darw, sc4_4reel_alt, sc4darw, sc4_state, sc4darw, ROT0, "Qps","Dough & Arrow (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4darwb ,sc4darw, sc4_4reel_alt, sc4darw, sc4_state, sc4darw, ROT0, "Qps","Dough & Arrow (Qps) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4darwc ,sc4darw, sc4_4reel_alt, sc4darw, sc4_state, sc4darw, ROT0, "Qps","Dough & Arrow (Qps) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4duckq)
@@ -25057,8 +25057,8 @@ INPUT_PORTS_START( sc4duckq ) // this structure is generated
INPUT_PORTS_END
// PR2519 THEDUCKSOFHAZZARD V1.0 DUCKSOFHAZZARDSND DUCKS OF HAZZARD
-GAMEL( 200?, sc4duckq ,0, sc4_4reel_alt, sc4duckq, sc4_state, sc4duckq, ROT0, "Qps","Ducks Of Hazzard (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4duckqa ,sc4duckq, sc4_4reel_alt, sc4duckq, sc4_state, sc4duckq, ROT0, "Qps","Ducks Of Hazzard (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4duckq ,0, sc4_4reel_alt, sc4duckq, sc4_state, sc4duckq, ROT0, "Qps","Ducks Of Hazzard (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4duckqa ,sc4duckq, sc4_4reel_alt, sc4duckq, sc4_state, sc4duckq, ROT0, "Qps","Ducks Of Hazzard (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4eascs)
@@ -25124,18 +25124,18 @@ INPUT_PORTS_START( sc4eascs ) // this structure is generated
INPUT_PORTS_END
// PR1326 CASINO EASY STREAK PR1326 EASY STREAK SOUNDS11 (actually expects PR1326_CAS_EASY_STREAK_SOUNDS11 ? )
-GAMEL( 200?, sc4eascs ,0, sc4_3reel, sc4eascs, sc4_state, sc4eascs, ROT0, "BFM","Casino Easy Streak (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4eascsa ,sc4eascs, sc4_3reel, sc4eascs, sc4_state, sc4eascs, ROT0, "BFM","Casino Easy Streak (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4eascsb ,sc4eascs, sc4_3reel, sc4eascs, sc4_state, sc4eascs, ROT0, "BFM","Casino Easy Streak (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4eascsc ,sc4eascs, sc4_3reel, sc4eascs, sc4_state, sc4eascs, ROT0, "BFM","Casino Easy Streak (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4eascsd ,sc4eascs, sc4_3reel, sc4eascs, sc4_state, sc4eascs, ROT0, "BFM","Casino Easy Streak (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4eascse ,sc4eascs, sc4_3reel, sc4eascs, sc4_state, sc4eascs, ROT0, "BFM","Casino Easy Streak (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4eascsf ,sc4eascs, sc4_3reel, sc4eascs, sc4_state, sc4eascs, ROT0, "BFM","Casino Easy Streak (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4eascsg ,sc4eascs, sc4_3reel, sc4eascs, sc4_state, sc4eascs, ROT0, "BFM","Casino Easy Streak (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4eascsh ,sc4eascs, sc4_3reel, sc4eascs, sc4_state, sc4eascs, ROT0, "BFM","Casino Easy Streak (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4eascsi ,sc4eascs, sc4_3reel, sc4eascs, sc4_state, sc4eascs, ROT0, "BFM","Casino Easy Streak (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4eascsj ,sc4eascs, sc4_3reel, sc4eascs, sc4_state, sc4eascs, ROT0, "BFM","Casino Easy Streak (Bellfruit) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4eascsk ,sc4eascs, sc4_3reel, sc4eascs, sc4_state, sc4eascs, ROT0, "BFM","Casino Easy Streak (Bellfruit) (Scorpion 4) (set 12)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4eascs ,0, sc4_3reel, sc4eascs, sc4_state, sc4eascs, ROT0, "BFM","Casino Easy Streak (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4eascsa ,sc4eascs, sc4_3reel, sc4eascs, sc4_state, sc4eascs, ROT0, "BFM","Casino Easy Streak (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4eascsb ,sc4eascs, sc4_3reel, sc4eascs, sc4_state, sc4eascs, ROT0, "BFM","Casino Easy Streak (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4eascsc ,sc4eascs, sc4_3reel, sc4eascs, sc4_state, sc4eascs, ROT0, "BFM","Casino Easy Streak (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4eascsd ,sc4eascs, sc4_3reel, sc4eascs, sc4_state, sc4eascs, ROT0, "BFM","Casino Easy Streak (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4eascse ,sc4eascs, sc4_3reel, sc4eascs, sc4_state, sc4eascs, ROT0, "BFM","Casino Easy Streak (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4eascsf ,sc4eascs, sc4_3reel, sc4eascs, sc4_state, sc4eascs, ROT0, "BFM","Casino Easy Streak (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4eascsg ,sc4eascs, sc4_3reel, sc4eascs, sc4_state, sc4eascs, ROT0, "BFM","Casino Easy Streak (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4eascsh ,sc4eascs, sc4_3reel, sc4eascs, sc4_state, sc4eascs, ROT0, "BFM","Casino Easy Streak (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4eascsi ,sc4eascs, sc4_3reel, sc4eascs, sc4_state, sc4eascs, ROT0, "BFM","Casino Easy Streak (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4eascsj ,sc4eascs, sc4_3reel, sc4eascs, sc4_state, sc4eascs, ROT0, "BFM","Casino Easy Streak (Bellfruit) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4eascsk ,sc4eascs, sc4_3reel, sc4eascs, sc4_state, sc4eascs, ROT0, "BFM","Casino Easy Streak (Bellfruit) (Scorpion 4) (set 12)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4fastf)
@@ -25195,10 +25195,10 @@ INPUT_PORTS_START( sc4fastf ) // this structure is generated
INPUT_PORTS_END
// PR2071 FAST 'N' FURIOUS FNF SOUNDS FAST 'N' FURIOUS
-GAMEL( 200?, sc4fastf ,0, sc4_200_4rb, sc4fastf, sc4_state, sc4fastf, ROT0, "Mazooma","Fast 'n' Furious (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fastfa ,sc4fastf, sc4_200_4rb, sc4fastf, sc4_state, sc4fastf, ROT0, "Mazooma","Fast 'n' Furious (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fastfb ,sc4fastf, sc4_200_4rb, sc4fastf, sc4_state, sc4fastf, ROT0, "Mazooma","Fast 'n' Furious (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fastfc ,sc4fastf, sc4_200_4rb, sc4fastf, sc4_state, sc4fastf, ROT0, "Mazooma","Fast 'n' Furious (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fastf ,0, sc4_200_4rb, sc4fastf, sc4_state, sc4fastf, ROT0, "Mazooma","Fast 'n' Furious (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fastfa ,sc4fastf, sc4_200_4rb, sc4fastf, sc4_state, sc4fastf, ROT0, "Mazooma","Fast 'n' Furious (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fastfb ,sc4fastf, sc4_200_4rb, sc4fastf, sc4_state, sc4fastf, ROT0, "Mazooma","Fast 'n' Furious (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fastfc ,sc4fastf, sc4_200_4rb, sc4fastf, sc4_state, sc4fastf, ROT0, "Mazooma","Fast 'n' Furious (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4ffru)
@@ -25255,12 +25255,12 @@ INPUT_PORTS_START( sc4ffru ) // this structure is generated
INPUT_PORTS_END
// PR7070 FAST FRUIT FFRUIT SOUNDS FAST FRUIT
-GAMEL( 200?, sc4ffru ,0, sc4_4reel, sc4ffru, sc4_state, sc4ffru, ROT0, "Qps / Mazooma","Fast Fruit (Qps / Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // has 'MAZ' game code in roms
-GAMEL( 200?, sc4ffrub ,sc4ffru, sc4_4reel, sc4ffru, sc4_state, sc4ffru, ROT0, "Qps / Mazooma","Fast Fruit (Qps / Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // has 'MAZ' game code in roms
-GAMEL( 200?, sc4ffrua ,sc4ffru, sc4_4reel, sc4ffru, sc4_state, sc4ffru, ROT0, "Qps","Fast Fruit (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ffruc ,sc4ffru, sc4_4reel, sc4ffru, sc4_state, sc4ffru, ROT0, "Qps","Fast Fruit (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ffrud ,sc4ffru, sc4_4reel, sc4ffru, sc4_state, sc4ffru, ROT0, "Qps","Fast Fruit (Qps) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ffrue ,sc4ffru, sc4_4reel, sc4ffru, sc4_state, sc4ffru, ROT0, "Qps","Fast Fruit (Qps) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ffru ,0, sc4_4reel, sc4ffru, sc4_state, sc4ffru, ROT0, "Qps / Mazooma","Fast Fruit (Qps / Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // has 'MAZ' game code in roms
+GAMEL( 200?, sc4ffrub ,sc4ffru, sc4_4reel, sc4ffru, sc4_state, sc4ffru, ROT0, "Qps / Mazooma","Fast Fruit (Qps / Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // has 'MAZ' game code in roms
+GAMEL( 200?, sc4ffrua ,sc4ffru, sc4_4reel, sc4ffru, sc4_state, sc4ffru, ROT0, "Qps","Fast Fruit (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ffruc ,sc4ffru, sc4_4reel, sc4ffru, sc4_state, sc4ffru, ROT0, "Qps","Fast Fruit (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ffrud ,sc4ffru, sc4_4reel, sc4ffru, sc4_state, sc4ffru, ROT0, "Qps","Fast Fruit (Qps) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ffrue ,sc4ffru, sc4_4reel, sc4ffru, sc4_state, sc4ffru, ROT0, "Qps","Fast Fruit (Qps) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4fire)
@@ -25311,8 +25311,8 @@ INPUT_PORTS_START( sc4fire ) // this structure is generated
INPUT_PORTS_END
// PR2082 FIRE POWER FPOW SOUNDS FIRE POWER
-GAMEL( 200?, sc4fire ,0, sc4_4reel_alt, sc4fire, sc4_state, sc4fire, ROT0, "Mazooma","Firepower (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4firea ,sc4fire, sc4_4reel_alt, sc4fire, sc4_state, sc4fire, ROT0, "Mazooma","Firepower (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fire ,0, sc4_4reel_alt, sc4fire, sc4_state, sc4fire, ROT0, "Mazooma","Firepower (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4firea ,sc4fire, sc4_4reel_alt, sc4fire, sc4_state, sc4fire, ROT0, "Mazooma","Firepower (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4frenz)
@@ -25381,12 +25381,12 @@ INPUT_PORTS_START( sc4frenz ) // this structure is generated
INPUT_PORTS_END
// PR1101 FRUIT FRENZY PR1101 FRUIT FRENZY SOUNDS11
-GAMEL( 200?, sc4frenz ,0, sc4_4reel_alt, sc4frenz, sc4_state, sc4frenz, ROT0, "BFM","Fruit Frenzy (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4frenza ,sc4frenz, sc4_4reel_alt, sc4frenz, sc4_state, sc4frenz, ROT0, "BFM","Fruit Frenzy (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4frenzb ,sc4frenz, sc4_4reel_alt, sc4frenz, sc4_state, sc4frenz, ROT0, "BFM","Fruit Frenzy (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4frenzc ,sc4frenz, sc4_4reel_alt, sc4frenz, sc4_state, sc4frenz, ROT0, "BFM","Fruit Frenzy (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4frenzd ,sc4frenz, sc4_4reel_alt, sc4frenz, sc4_state, sc4frenz, ROT0, "BFM","Fruit Frenzy (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4frenze ,sc4frenz, sc4_4reel_alt, sc4frenz, sc4_state, sc4frenz, ROT0, "BFM","Fruit Frenzy (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4frenz ,0, sc4_4reel_alt, sc4frenz, sc4_state, sc4frenz, ROT0, "BFM","Fruit Frenzy (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4frenza ,sc4frenz, sc4_4reel_alt, sc4frenz, sc4_state, sc4frenz, ROT0, "BFM","Fruit Frenzy (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4frenzb ,sc4frenz, sc4_4reel_alt, sc4frenz, sc4_state, sc4frenz, ROT0, "BFM","Fruit Frenzy (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4frenzc ,sc4frenz, sc4_4reel_alt, sc4frenz, sc4_state, sc4frenz, ROT0, "BFM","Fruit Frenzy (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4frenzd ,sc4frenz, sc4_4reel_alt, sc4frenz, sc4_state, sc4frenz, ROT0, "BFM","Fruit Frenzy (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4frenze ,sc4frenz, sc4_4reel_alt, sc4frenz, sc4_state, sc4frenz, ROT0, "BFM","Fruit Frenzy (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4ftopi)
{
@@ -25439,19 +25439,19 @@ INPUT_PORTS_START( sc4ftopi ) // this structure is generated
INPUT_PORTS_END
// PR2027 FRUITOPIA FRUITOPIASND FRUITOPIA
-GAMEL( 200?, sc4ftopi ,0, sc4_4reel_alt, sc4ftopi, sc4_state, sc4ftopi, ROT0, "Qps","Fruitopia (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ftopia ,sc4ftopi, sc4_4reel_alt, sc4ftopi, sc4_state, sc4ftopi, ROT0, "Qps","Fruitopia (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ftopib ,sc4ftopi, sc4_4reel_alt, sc4ftopi, sc4_state, sc4ftopi, ROT0, "Qps","Fruitopia (Qps) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ftopic ,sc4ftopi, sc4_4reel_alt, sc4ftopi, sc4_state, sc4ftopi, ROT0, "Qps","Fruitopia (Qps) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ftopi ,0, sc4_4reel_alt, sc4ftopi, sc4_state, sc4ftopi, ROT0, "Qps","Fruitopia (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ftopia ,sc4ftopi, sc4_4reel_alt, sc4ftopi, sc4_state, sc4ftopi, ROT0, "Qps","Fruitopia (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ftopib ,sc4ftopi, sc4_4reel_alt, sc4ftopi, sc4_state, sc4ftopi, ROT0, "Qps","Fruitopia (Qps) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ftopic ,sc4ftopi, sc4_4reel_alt, sc4ftopi, sc4_state, sc4ftopi, ROT0, "Qps","Fruitopia (Qps) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2027 FRUITOPIA_17/04/03 V1.1 FRUITOPIASND FRUITOPIA
-GAMEL( 200?, sc4ftopif ,sc4ftopi, sc4_4reel_alt, sc4ftopi, sc4_state, sc4ftopi, ROT0, "Qps","Fruitopia (V1.1) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ftopii ,sc4ftopi, sc4_4reel_alt, sc4ftopi, sc4_state, sc4ftopi, ROT0, "Qps","Fruitopia (V1.1) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ftopif ,sc4ftopi, sc4_4reel_alt, sc4ftopi, sc4_state, sc4ftopi, ROT0, "Qps","Fruitopia (V1.1) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ftopii ,sc4ftopi, sc4_4reel_alt, sc4ftopi, sc4_state, sc4ftopi, ROT0, "Qps","Fruitopia (V1.1) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2027 FRUITOPIA V2.1 FRUITOPIASND FRUITOPIA
-GAMEL( 200?, sc4ftopid ,sc4ftopi, sc4_4reel_alt, sc4ftopi, sc4_state, sc4ftopi, ROT0, "Qps","Fruitopia (V2.1) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ftopig ,sc4ftopi, sc4_4reel_alt, sc4ftopi, sc4_state, sc4ftopi, ROT0, "Qps","Fruitopia (V2.1) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ftopid ,sc4ftopi, sc4_4reel_alt, sc4ftopi, sc4_state, sc4ftopi, ROT0, "Qps","Fruitopia (V2.1) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ftopig ,sc4ftopi, sc4_4reel_alt, sc4ftopi, sc4_state, sc4ftopi, ROT0, "Qps","Fruitopia (V2.1) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2027 FRUITOPIA V2.2 FRUITOPIASND FRUITOPIA
-GAMEL( 200?, sc4ftopie ,sc4ftopi, sc4_4reel_alt, sc4ftopi, sc4_state, sc4ftopi, ROT0, "Qps","Fruitopia (V2.2) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ftopih ,sc4ftopi, sc4_4reel_alt, sc4ftopi, sc4_state, sc4ftopi, ROT0, "Qps","Fruitopia (V2.2) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ftopie ,sc4ftopi, sc4_4reel_alt, sc4ftopi, sc4_state, sc4ftopi, ROT0, "Qps","Fruitopia (V2.2) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ftopih ,sc4ftopi, sc4_4reel_alt, sc4ftopi, sc4_state, sc4ftopi, ROT0, "Qps","Fruitopia (V2.2) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4fullt)
{
@@ -25506,20 +25506,20 @@ INPUT_PORTS_START( sc4fullt ) // this structure is generated
INPUT_PORTS_END
// PR2537 FULL THROTTLE 011 FULLTHROTTLESND FULL THROTTLE
-GAMEL( 200?, sc4fullt ,0, sc4_5reel, sc4fullt, sc4_state, sc4fullt, ROT0, "Qps","Full Throttle (011) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fulltb ,sc4fullt, sc4_5reel, sc4fullt, sc4_state, sc4fullt, ROT0, "Qps","Full Throttle (011) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fullt ,0, sc4_5reel, sc4fullt, sc4_state, sc4fullt, ROT0, "Qps","Full Throttle (011) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fulltb ,sc4fullt, sc4_5reel, sc4fullt, sc4_state, sc4fullt, ROT0, "Qps","Full Throttle (011) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2537 FULL THROTTLE 041 FULLTHROTTLESND FULL THROTTLE
-GAMEL( 200?, sc4fullta ,sc4fullt, sc4_5reel, sc4fullt, sc4_state, sc4fullt, ROT0, "Qps","Full Throttle (041) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fulltc ,sc4fullt, sc4_5reel, sc4fullt, sc4_state, sc4fullt, ROT0, "Qps","Full Throttle (041) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fullta ,sc4fullt, sc4_5reel, sc4fullt, sc4_state, sc4fullt, ROT0, "Qps","Full Throttle (041) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fulltc ,sc4fullt, sc4_5reel, sc4fullt, sc4_state, sc4fullt, ROT0, "Qps","Full Throttle (041) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2537 FULL THROTTLE 012 FULLTHROTTLESND FULL THROTTLE
-GAMEL( 200?, sc4fulltd ,sc4fullt, sc4_5reel, sc4fullt, sc4_state, sc4fullt, ROT0, "Qps","Full Throttle (012) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fulltg ,sc4fullt, sc4_5reel, sc4fullt, sc4_state, sc4fullt, ROT0, "Qps","Full Throttle (012) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fulltd ,sc4fullt, sc4_5reel, sc4fullt, sc4_state, sc4fullt, ROT0, "Qps","Full Throttle (012) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fulltg ,sc4fullt, sc4_5reel, sc4fullt, sc4_state, sc4fullt, ROT0, "Qps","Full Throttle (012) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2537 FULL THROTTLE 042 FULLTHROTTLESND FULL THROTTLE
-GAMEL( 200?, sc4fullte ,sc4fullt, sc4_5reel, sc4fullt, sc4_state, sc4fullt, ROT0, "Qps","Full Throttle (042) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fullth ,sc4fullt, sc4_5reel, sc4fullt, sc4_state, sc4fullt, ROT0, "Qps","Full Throttle (042) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fullte ,sc4fullt, sc4_5reel, sc4fullt, sc4_state, sc4fullt, ROT0, "Qps","Full Throttle (042) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fullth ,sc4fullt, sc4_5reel, sc4fullt, sc4_state, sc4fullt, ROT0, "Qps","Full Throttle (042) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// R2537 FULL THROTTLE 013 FULLTHROTTLESND FULL THROTTLE
-GAMEL( 200?, sc4fulltf ,sc4fullt, sc4_5reel, sc4fullt, sc4_state, sc4fullt, ROT0, "Qps","Full Throttle (013) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fullti ,sc4fullt, sc4_5reel, sc4fullt, sc4_state, sc4fullt, ROT0, "Qps","Full Throttle (013) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fulltf ,sc4fullt, sc4_5reel, sc4fullt, sc4_state, sc4fullt, ROT0, "Qps","Full Throttle (013) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fullti ,sc4fullt, sc4_5reel, sc4fullt, sc4_state, sc4fullt, ROT0, "Qps","Full Throttle (013) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4ziggy)
@@ -25580,14 +25580,14 @@ INPUT_PORTS_START( sc4ziggy ) // this structure is generated
INPUT_PORTS_END
// PR2162 GETTIN' ZIGGY ZIGY SOUNDS GETTIN' ZIGGY
-GAMEL( 200?, sc4ziggy ,0, sc4_200_4ra, sc4ziggy, sc4_state, sc4ziggy, ROT0, "Mazooma","Gettin Ziggy With It (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ziggya ,sc4ziggy, sc4_200_4ra, sc4ziggy, sc4_state, sc4ziggy, ROT0, "Mazooma","Gettin Ziggy With It (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ziggyb ,sc4ziggy, sc4_200_4ra, sc4ziggy, sc4_state, sc4ziggy, ROT0, "Mazooma","Gettin Ziggy With It (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ziggyc ,sc4ziggy, sc4_200_4ra, sc4ziggy, sc4_state, sc4ziggy, ROT0, "Mazooma","Gettin Ziggy With It (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ziggyd ,sc4ziggy, sc4_200_4ra, sc4ziggy, sc4_state, sc4ziggy, ROT0, "Mazooma","Gettin Ziggy With It (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ziggye ,sc4ziggy, sc4_200_4ra, sc4ziggy, sc4_state, sc4ziggy, ROT0, "Mazooma","Gettin Ziggy With It (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ziggyf ,sc4ziggy, sc4_200_4ra, sc4ziggy, sc4_state, sc4ziggy, ROT0, "Mazooma","Gettin Ziggy With It (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ziggyg ,sc4ziggy, sc4_200_4ra, sc4ziggy, sc4_state, sc4ziggy, ROT0, "Mazooma","Gettin Ziggy With It (Mazooma) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ziggy ,0, sc4_200_4ra, sc4ziggy, sc4_state, sc4ziggy, ROT0, "Mazooma","Gettin Ziggy With It (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ziggya ,sc4ziggy, sc4_200_4ra, sc4ziggy, sc4_state, sc4ziggy, ROT0, "Mazooma","Gettin Ziggy With It (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ziggyb ,sc4ziggy, sc4_200_4ra, sc4ziggy, sc4_state, sc4ziggy, ROT0, "Mazooma","Gettin Ziggy With It (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ziggyc ,sc4ziggy, sc4_200_4ra, sc4ziggy, sc4_state, sc4ziggy, ROT0, "Mazooma","Gettin Ziggy With It (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ziggyd ,sc4ziggy, sc4_200_4ra, sc4ziggy, sc4_state, sc4ziggy, ROT0, "Mazooma","Gettin Ziggy With It (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ziggye ,sc4ziggy, sc4_200_4ra, sc4ziggy, sc4_state, sc4ziggy, ROT0, "Mazooma","Gettin Ziggy With It (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ziggyf ,sc4ziggy, sc4_200_4ra, sc4ziggy, sc4_state, sc4ziggy, ROT0, "Mazooma","Gettin Ziggy With It (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ziggyg ,sc4ziggy, sc4_200_4ra, sc4ziggy, sc4_state, sc4ziggy, ROT0, "Mazooma","Gettin Ziggy With It (Mazooma) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4gldcl)
{
@@ -25653,8 +25653,8 @@ INPUT_PORTS_START( sc4gldcl ) // this structure is generated
INPUT_PORTS_END
// PR2292 CLUB GLADIATOR CLUB GLADIATOR CLUB CLUB GLAD SOUNDS CLUB GLADIATOR
-GAMEL( 200?, sc4gldcl ,0, sc4_5reel, sc4gldcl, sc4_state, sc4gldcl, ROT0, "QPS","Gladiator Club (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gldcla ,sc4gldcl, sc4_5reel, sc4gldcl, sc4_state, sc4gldcl, ROT0, "QPS","Gladiator Club (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gldcl ,0, sc4_5reel, sc4gldcl, sc4_state, sc4gldcl, ROT0, "QPS","Gladiator Club (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gldcla ,sc4gldcl, sc4_5reel, sc4gldcl, sc4_state, sc4gldcl, ROT0, "QPS","Gladiator Club (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -25724,16 +25724,16 @@ INPUT_PORTS_START( sc4ghost ) // this structure is generated
INPUT_PORTS_END
// PR7090 GOLDEN GHOST GOLDEN GHOST MAZ GHOST SOUNDS GOLDEN GHOST
-GAMEL( 200?, sc4ghost ,0, sc4_3reel_200, sc4ghost, sc4_state, sc4ghost, ROT0, "Mazooma","Golden Ghost (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ghostb ,sc4ghost, sc4_3reel_200, sc4ghost, sc4_state, sc4ghost, ROT0, "Mazooma","Golden Ghost (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ghostc ,sc4ghost, sc4_3reel_200, sc4ghost, sc4_state, sc4ghost, ROT0, "Mazooma","Golden Ghost (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ghoste ,sc4ghost, sc4_3reel_200, sc4ghost, sc4_state, sc4ghost, ROT0, "Mazooma","Golden Ghost (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ghostf ,sc4ghost, sc4_3reel_200, sc4ghost, sc4_state, sc4ghost, ROT0, "Mazooma","Golden Ghost (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ghostg ,sc4ghost, sc4_3reel_200, sc4ghost, sc4_state, sc4ghost, ROT0, "Mazooma","Golden Ghost (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ghost ,0, sc4_3reel_200, sc4ghost, sc4_state, sc4ghost, ROT0, "Mazooma","Golden Ghost (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ghostb ,sc4ghost, sc4_3reel_200, sc4ghost, sc4_state, sc4ghost, ROT0, "Mazooma","Golden Ghost (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ghostc ,sc4ghost, sc4_3reel_200, sc4ghost, sc4_state, sc4ghost, ROT0, "Mazooma","Golden Ghost (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ghoste ,sc4ghost, sc4_3reel_200, sc4ghost, sc4_state, sc4ghost, ROT0, "Mazooma","Golden Ghost (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ghostf ,sc4ghost, sc4_3reel_200, sc4ghost, sc4_state, sc4ghost, ROT0, "Mazooma","Golden Ghost (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ghostg ,sc4ghost, sc4_3reel_200, sc4ghost, sc4_state, sc4ghost, ROT0, "Mazooma","Golden Ghost (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR7090 GOLD GHOST TRIPLE GHOST SOUNDS 8 GOLDEN GHOST
-GAMEL( 200?, sc4ghosta ,sc4ghost, sc4_3reel, sc4ghost, sc4_state, sc4ghosttb, ROT0, "Mazooma","Golden Ghost (Mazooma) (Scorpion 4) (Top Box, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ghostd ,sc4ghost, sc4_3reel, sc4ghost, sc4_state, sc4ghosttb, ROT0, "Mazooma","Golden Ghost (Mazooma) (Scorpion 4) (Top Box, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ghosth ,sc4ghost, sc4_3reel, sc4ghost, sc4_state, sc4ghosttb, ROT0, "Mazooma","Golden Ghost (Mazooma) (Scorpion 4) (Top Box, set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ghosta ,sc4ghost, sc4_3reel, sc4ghost, sc4_state, sc4ghosttb, ROT0, "Mazooma","Golden Ghost (Mazooma) (Scorpion 4) (Top Box, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ghostd ,sc4ghost, sc4_3reel, sc4ghost, sc4_state, sc4ghosttb, ROT0, "Mazooma","Golden Ghost (Mazooma) (Scorpion 4) (Top Box, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ghosth ,sc4ghost, sc4_3reel, sc4ghost, sc4_state, sc4ghosttb, ROT0, "Mazooma","Golden Ghost (Mazooma) (Scorpion 4) (Top Box, set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -25794,26 +25794,26 @@ INPUT_PORTS_START( sc4ggrid ) // this structure is generated
INPUT_PORTS_END
// PR2518 GOLDEN GRID V1.0 GOLDENGRIDSND GOLDEN GRID
-GAMEL( 200?, sc4ggrid ,0, sc4_4reel, sc4ggrid, sc4_state, sc4ggrid, ROT0, "Qps","Golden Grid (V1.0) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ggrida ,sc4ggrid, sc4_4reel, sc4ggrid, sc4_state, sc4ggrid, ROT0, "Qps","Golden Grid (V1.0) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ggride ,sc4ggrid, sc4_4reel, sc4ggrid, sc4_state, sc4ggrid, ROT0, "Qps","Golden Grid (V1.0) (Qps) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ggridf ,sc4ggrid, sc4_4reel, sc4ggrid, sc4_state, sc4ggrid, ROT0, "Qps","Golden Grid (V1.0) (Qps) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ggrid ,0, sc4_4reel, sc4ggrid, sc4_state, sc4ggrid, ROT0, "Qps","Golden Grid (V1.0) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ggrida ,sc4ggrid, sc4_4reel, sc4ggrid, sc4_state, sc4ggrid, ROT0, "Qps","Golden Grid (V1.0) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ggride ,sc4ggrid, sc4_4reel, sc4ggrid, sc4_state, sc4ggrid, ROT0, "Qps","Golden Grid (V1.0) (Qps) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ggridf ,sc4ggrid, sc4_4reel, sc4ggrid, sc4_state, sc4ggrid, ROT0, "Qps","Golden Grid (V1.0) (Qps) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2518 GOLDEN GRID V1.1 GOLDENGRIDSND GOLDEN GRID
-GAMEL( 200?, sc4ggridb ,sc4ggrid, sc4_4reel, sc4ggrid, sc4_state, sc4ggrid, ROT0, "Qps","Golden Grid (V1.1) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ggridc ,sc4ggrid, sc4_4reel, sc4ggrid, sc4_state, sc4ggrid, ROT0, "Qps","Golden Grid (V1.1) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ggridg ,sc4ggrid, sc4_4reel, sc4ggrid, sc4_state, sc4ggrid, ROT0, "Qps","Golden Grid (V1.1) (Qps) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ggridh ,sc4ggrid, sc4_4reel, sc4ggrid, sc4_state, sc4ggrid, ROT0, "Qps","Golden Grid (V1.1) (Qps) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ggridb ,sc4ggrid, sc4_4reel, sc4ggrid, sc4_state, sc4ggrid, ROT0, "Qps","Golden Grid (V1.1) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ggridc ,sc4ggrid, sc4_4reel, sc4ggrid, sc4_state, sc4ggrid, ROT0, "Qps","Golden Grid (V1.1) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ggridg ,sc4ggrid, sc4_4reel, sc4ggrid, sc4_state, sc4ggrid, ROT0, "Qps","Golden Grid (V1.1) (Qps) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ggridh ,sc4ggrid, sc4_4reel, sc4ggrid, sc4_state, sc4ggrid, ROT0, "Qps","Golden Grid (V1.1) (Qps) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2518 GOLDEN GRID V1.3 GOLDENGRIDSND GOLDEN GRID
-GAMEL( 200?, sc4ggridd ,sc4ggrid, sc4_4reel, sc4ggrid, sc4_state, sc4ggrid, ROT0, "Qps","Golden Grid (V1.3) (Qps) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ggridd ,sc4ggrid, sc4_4reel, sc4ggrid, sc4_state, sc4ggrid, ROT0, "Qps","Golden Grid (V1.3) (Qps) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2518 GOLDEN GRID V011 GOLDENGRIDSND GOLDEN GRID
-GAMEL( 200?, sc4ggridi ,sc4ggrid, sc4_4reel, sc4ggrid, sc4_state, sc4ggrid_mbus, ROT0, "Qps","Golden Grid (V011) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ggridk ,sc4ggrid, sc4_4reel, sc4ggrid, sc4_state, sc4ggrid_mbus, ROT0, "Qps","Golden Grid (V011) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ggridi ,sc4ggrid, sc4_4reel, sc4ggrid, sc4_state, sc4ggrid_mbus, ROT0, "Qps","Golden Grid (V011) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ggridk ,sc4ggrid, sc4_4reel, sc4ggrid, sc4_state, sc4ggrid_mbus, ROT0, "Qps","Golden Grid (V011) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2518 GOLDEN GRID V041 GOLDENGRIDSND GOLDEN GRID
-GAMEL( 200?, sc4ggridj ,sc4ggrid, sc4_4reel, sc4ggrid, sc4_state, sc4ggrid_mbus, ROT0, "Qps","Golden Grid (V041) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ggridl ,sc4ggrid, sc4_4reel, sc4ggrid, sc4_state, sc4ggrid_mbus, ROT0, "Qps","Golden Grid (V041) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ggridj ,sc4ggrid, sc4_4reel, sc4ggrid, sc4_state, sc4ggrid_mbus, ROT0, "Qps","Golden Grid (V041) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ggridl ,sc4ggrid, sc4_4reel, sc4ggrid, sc4_state, sc4ggrid_mbus, ROT0, "Qps","Golden Grid (V041) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2518 GOLDEN GRID V012 GOLDENGRIDSND GOLDEN GRID
-GAMEL( 200?, sc4ggridm ,sc4ggrid, sc4_4reel, sc4ggrid, sc4_state, sc4ggrid_mbus, ROT0, "Qps","Golden Grid (V012) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ggridn ,sc4ggrid, sc4_4reel, sc4ggrid, sc4_state, sc4ggrid_mbus, ROT0, "Qps","Golden Grid (V012) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ggridm ,sc4ggrid, sc4_4reel, sc4ggrid, sc4_state, sc4ggrid_mbus, ROT0, "Qps","Golden Grid (V012) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ggridn ,sc4ggrid, sc4_4reel, sc4ggrid, sc4_state, sc4ggrid_mbus, ROT0, "Qps","Golden Grid (V012) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4ggcl)
@@ -25874,13 +25874,13 @@ INPUT_PORTS_START( sc4ggcl ) // this structure is generated
INPUT_PORTS_END
// PR???? CLUB GOLDEN GRID V1.0 CLUBGOLDENGRIDSND CLUB GOLDEN GRID
-GAMEL( 200?, sc4ggcl ,0, sc4_5reel, sc4ggcl, sc4_state, sc4ggcl, ROT0, "Qps","Golden Grid Club (V1.0) (Qps) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ggcl ,0, sc4_5reel, sc4ggcl, sc4_state, sc4ggcl, ROT0, "Qps","Golden Grid Club (V1.0) (Qps) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR???? CLUB GOLDEN GRID 411 CLUBGOLDENGRIDSND CLUB GOLDEN GRID
-GAMEL( 200?, sc4ggcla ,sc4ggcl, sc4_5reel, sc4ggcl, sc4_state, sc4ggcl_mbus, ROT0, "Qps","Golden Grid Club (V411) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ggclb ,sc4ggcl, sc4_5reel, sc4ggcl, sc4_state, sc4ggcl_mbus, ROT0, "Qps","Golden Grid Club (V411) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ggcla ,sc4ggcl, sc4_5reel, sc4ggcl, sc4_state, sc4ggcl_mbus, ROT0, "Qps","Golden Grid Club (V411) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ggclb ,sc4ggcl, sc4_5reel, sc4ggcl, sc4_state, sc4ggcl_mbus, ROT0, "Qps","Golden Grid Club (V411) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR???? CLUB GOLDEN GRID 412 CLUBGOLDENGRIDSND CLUB GOLDEN GRID
-GAMEL( 200?, sc4ggclc ,sc4ggcl, sc4_5reel, sc4ggcl, sc4_state, sc4ggcl_mbus, ROT0, "Qps","Golden Grid Club (V412) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ggcld ,sc4ggcl, sc4_5reel, sc4ggcl, sc4_state, sc4ggcl_mbus, ROT0, "Qps","Golden Grid Club (V412) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ggclc ,sc4ggcl, sc4_5reel, sc4ggcl, sc4_state, sc4ggcl_mbus, ROT0, "Qps","Golden Grid Club (V412) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ggcld ,sc4ggcl, sc4_5reel, sc4ggcl, sc4_state, sc4ggcl_mbus, ROT0, "Qps","Golden Grid Club (V412) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -26004,15 +26004,15 @@ INPUT_PORTS_END
// the dot matrix calls these 'classic crazy fruits' was it not shown or is Golden Winner a subtitle?
// PR1431 GOLDEN WINNER PR1431 GOLDEN WINNER SND11
-GAMEL( 200?, sc4goldw ,0, sc4_3reel, sc4goldw, sc4_state, sc4goldw, ROT0, "BFM","Golden Winner (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4goldwa ,sc4goldw, sc4_3reel, sc4goldw, sc4_state, sc4goldw, ROT0, "BFM","Golden Winner (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4goldwb ,sc4goldw, sc4_3reel, sc4goldw, sc4_state, sc4goldw, ROT0, "BFM","Golden Winner (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4goldwc ,sc4goldw, sc4_3reel, sc4goldw, sc4_state, sc4goldw, ROT0, "BFM","Golden Winner (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4goldw ,0, sc4_3reel, sc4goldw, sc4_state, sc4goldw, ROT0, "BFM","Golden Winner (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4goldwa ,sc4goldw, sc4_3reel, sc4goldw, sc4_state, sc4goldw, ROT0, "BFM","Golden Winner (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4goldwb ,sc4goldw, sc4_3reel, sc4goldw, sc4_state, sc4goldw, ROT0, "BFM","Golden Winner (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4goldwc ,sc4goldw, sc4_3reel, sc4goldw, sc4_state, sc4goldw, ROT0, "BFM","Golden Winner (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR1437 GOLDEN WINNER PR1436 TRIPLE CASINO SOUNDS11 // these show init comms
-GAMEL( 200?, sc4goldwd ,sc4goldw, sc4, sc4goldwd, sc4_state, sc4, ROT0, "BFM","Golden Winner (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4goldwe ,sc4goldw, sc4, sc4goldwd, sc4_state, sc4, ROT0, "BFM","Golden Winner (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4goldwf ,sc4goldw, sc4, sc4goldwd, sc4_state, sc4, ROT0, "BFM","Golden Winner (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4goldwg ,sc4goldw, sc4, sc4goldwd, sc4_state, sc4, ROT0, "BFM","Golden Winner (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4goldwd ,sc4goldw, sc4, sc4goldwd, sc4_state, sc4, ROT0, "BFM","Golden Winner (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4goldwe ,sc4goldw, sc4, sc4goldwd, sc4_state, sc4, ROT0, "BFM","Golden Winner (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4goldwf ,sc4goldw, sc4, sc4goldwd, sc4_state, sc4, ROT0, "BFM","Golden Winner (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4goldwg ,sc4goldw, sc4, sc4goldwd, sc4_state, sc4, ROT0, "BFM","Golden Winner (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4ggdlx ) // this structure is generated
PORT_INCLUDE( sc4_base )
@@ -26059,16 +26059,16 @@ INPUT_PORTS_END
// GGDX
// these were in the golden game sets
// PR2201 GOLDEN X GOLDEN GAME MAZ GXDX SOUNDS GOLDEN GAME DLX
-GAMEL( 200?, sc4ggdlx ,0, sc4, sc4ggdlx, sc4_state, sc4ggame, ROT0, "Mazooma","Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (GGDX, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ggdlxc ,sc4ggdlx, sc4, sc4ggdlx, sc4_state, sc4ggame, ROT0, "Mazooma","Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (GGDX, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4ggdlx ,0, sc4, sc4ggdlx, sc4_state, sc4ggame, ROT0, "Mazooma","Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (GGDX, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ggdlxc ,sc4ggdlx, sc4, sc4ggdlx, sc4_state, sc4ggame, ROT0, "Mazooma","Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (GGDX, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
// PR2201 GOLDEN X GOLDEN GAME DLX MAZ GXDX SOUNDS GOLDEN X
-GAMEL( 200?, sc4ggdlxa ,sc4ggdlx, sc4, sc4ggdlx, sc4_state, sc4ggame, ROT0, "Mazooma","Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (GGDX, set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ggdlxb ,sc4ggdlx, sc4, sc4ggdlx, sc4_state, sc4ggame, ROT0, "Mazooma","Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (GGDX, set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4ggdlxd ,sc4ggdlx, sc4, sc4ggdlx, sc4_state, sc4ggame, ROT0, "Mazooma","Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (GGDX, set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4ggdlxe ,sc4ggdlx, sc4, sc4ggdlx, sc4_state, sc4ggame, ROT0, "Mazooma","Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (GGDX, set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4ggdlxa ,sc4ggdlx, sc4, sc4ggdlx, sc4_state, sc4ggame, ROT0, "Mazooma","Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (GGDX, set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ggdlxb ,sc4ggdlx, sc4, sc4ggdlx, sc4_state, sc4ggame, ROT0, "Mazooma","Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (GGDX, set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4ggdlxd ,sc4ggdlx, sc4, sc4ggdlx, sc4_state, sc4ggame, ROT0, "Mazooma","Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (GGDX, set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4ggdlxe ,sc4ggdlx, sc4, sc4ggdlx, sc4_state, sc4ggame, ROT0, "Mazooma","Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (GGDX, set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
// PR2201 GOLDEN GAME DELUXE GOLDEN GAME MAZ GXDX SOUNDS GOLDEN GAME DLX
-GAMEL( 200?, sc4ggdlxf ,sc4ggdlx, sc4, sc4ggdlx, sc4_state, sc4ggame, ROT0, "Mazooma","Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (GGDX, set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ggdlxg ,sc4ggdlx, sc4, sc4ggdlx, sc4_state, sc4ggame, ROT0, "Mazooma","Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (GGDX, set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4ggdlxf ,sc4ggdlx, sc4, sc4ggdlx, sc4_state, sc4ggame, ROT0, "Mazooma","Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (GGDX, set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ggdlxg ,sc4ggdlx, sc4, sc4ggdlx, sc4_state, sc4ggame, ROT0, "Mazooma","Golden Game Deluxe (Mazooma) (PR2201) (Scorpion 4) (GGDX, set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
@@ -26139,8 +26139,8 @@ INPUT_PORTS_START( sc4greed ) // this structure is generated
INPUT_PORTS_END
// PR1401 AWP GREEDY GONZALEZ PR1401 GREEDY GONZ SOUNDS11
-GAMEL( 200?, sc4greed ,0, sc4_4reel_alt, sc4greed, sc4_state, sc4greed, ROT0, "BFM","Greedy Gonzalez (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4greeda ,sc4greed, sc4_4reel_alt, sc4greed, sc4_state, sc4greed, ROT0, "BFM","Greedy Gonzalez (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4greed ,0, sc4_4reel_alt, sc4greed, sc4_state, sc4greed, ROT0, "BFM","Greedy Gonzalez (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4greeda ,sc4greed, sc4_4reel_alt, sc4greed, sc4_state, sc4greed, ROT0, "BFM","Greedy Gonzalez (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4hf)
@@ -26205,14 +26205,14 @@ INPUT_PORTS_START( sc4hf ) // this structure is generated
INPUT_PORTS_END
//PR1011 HAPPY FRUITS PR1011 HAPPY FRUITS SOUNDS11
-GAMEL( 200?, sc4hf ,0, sc4_4reel, sc4hf, sc4_state, sc4hf, ROT0, "BFM","Happy Fruits (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hfa ,sc4hf, sc4_4reel, sc4hf, sc4_state, sc4hf, ROT0, "BFM","Happy Fruits (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hfb ,sc4hf, sc4_4reel, sc4hf, sc4_state, sc4hf, ROT0, "BFM","Happy Fruits (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hfc ,sc4hf, sc4_4reel, sc4hf, sc4_state, sc4hf, ROT0, "BFM","Happy Fruits (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hfd ,sc4hf, sc4_4reel, sc4hf, sc4_state, sc4hf, ROT0, "BFM","Happy Fruits (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hfe ,sc4hf, sc4_4reel, sc4hf, sc4_state, sc4hf, ROT0, "BFM","Happy Fruits (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hff ,sc4hf, sc4_4reel, sc4hf, sc4_state, sc4hf, ROT0, "BFM","Happy Fruits (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hfg ,sc4hf, sc4_4reel, sc4hf, sc4_state, sc4hf, ROT0, "BFM","Happy Fruits (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hf ,0, sc4_4reel, sc4hf, sc4_state, sc4hf, ROT0, "BFM","Happy Fruits (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hfa ,sc4hf, sc4_4reel, sc4hf, sc4_state, sc4hf, ROT0, "BFM","Happy Fruits (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hfb ,sc4hf, sc4_4reel, sc4hf, sc4_state, sc4hf, ROT0, "BFM","Happy Fruits (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hfc ,sc4hf, sc4_4reel, sc4hf, sc4_state, sc4hf, ROT0, "BFM","Happy Fruits (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hfd ,sc4hf, sc4_4reel, sc4hf, sc4_state, sc4hf, ROT0, "BFM","Happy Fruits (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hfe ,sc4hf, sc4_4reel, sc4hf, sc4_state, sc4hf, ROT0, "BFM","Happy Fruits (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hff ,sc4hf, sc4_4reel, sc4hf, sc4_state, sc4hf, ROT0, "BFM","Happy Fruits (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hfg ,sc4hf, sc4_4reel, sc4hf, sc4_state, sc4hf, ROT0, "BFM","Happy Fruits (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4himi)
@@ -26263,18 +26263,18 @@ INPUT_PORTS_START( sc4himi ) // this structure is generated
INPUT_PORTS_END
// PR2999 HIGH 'N' MIGHTY MITY SOUNDS HIGH 'N' MIGHTY
-GAMEL( 200?, sc4himi ,0, sc4_4reel_alt, sc4himi, sc4_state, sc4himi, ROT0, "Mazooma","High 'n' Mighty (PR2999) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4himic ,sc4himi, sc4_4reel_alt, sc4himi, sc4_state, sc4himi, ROT0, "Mazooma","High 'n' Mighty (PR2999) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4himif ,sc4himi, sc4_4reel_alt, sc4himi, sc4_state, sc4himi, ROT0, "Mazooma","High 'n' Mighty (PR2999) (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4himig ,sc4himi, sc4_4reel_alt, sc4himi, sc4_state, sc4himi, ROT0, "Mazooma","High 'n' Mighty (PR2999) (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4himih ,sc4himi, sc4_4reel_alt, sc4himi, sc4_state, sc4himi, ROT0, "Mazooma","High 'n' Mighty (PR2999) (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4himii ,sc4himi, sc4_4reel_alt, sc4himi, sc4_state, sc4himi, ROT0, "Mazooma","High 'n' Mighty (PR2999) (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4himi ,0, sc4_4reel_alt, sc4himi, sc4_state, sc4himi, ROT0, "Mazooma","High 'n' Mighty (PR2999) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4himic ,sc4himi, sc4_4reel_alt, sc4himi, sc4_state, sc4himi, ROT0, "Mazooma","High 'n' Mighty (PR2999) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4himif ,sc4himi, sc4_4reel_alt, sc4himi, sc4_state, sc4himi, ROT0, "Mazooma","High 'n' Mighty (PR2999) (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4himig ,sc4himi, sc4_4reel_alt, sc4himi, sc4_state, sc4himi, ROT0, "Mazooma","High 'n' Mighty (PR2999) (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4himih ,sc4himi, sc4_4reel_alt, sc4himi, sc4_state, sc4himi, ROT0, "Mazooma","High 'n' Mighty (PR2999) (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4himii ,sc4himi, sc4_4reel_alt, sc4himi, sc4_state, sc4himi, ROT0, "Mazooma","High 'n' Mighty (PR2999) (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2119 HIGH 'N' MIGHTY MITY SOUNDS HIGH 'N' MIGHTY
-GAMEL( 200?, sc4himia ,sc4himi, sc4_4reel_alt, sc4himi, sc4_state, sc4himi, ROT0, "Mazooma","High 'n' Mighty (PR2119) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4himie ,sc4himi, sc4_4reel_alt, sc4himi, sc4_state, sc4himi, ROT0, "Mazooma","High 'n' Mighty (PR2119) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4himia ,sc4himi, sc4_4reel_alt, sc4himi, sc4_state, sc4himi, ROT0, "Mazooma","High 'n' Mighty (PR2119) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4himie ,sc4himi, sc4_4reel_alt, sc4himi, sc4_state, sc4himi, ROT0, "Mazooma","High 'n' Mighty (PR2119) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2067 HIGH 'N' MIGHTY MITY SOUNDS HIGH 'N' MIGHTY
-GAMEL( 200?, sc4himib ,sc4himi, sc4_4reel_alt, sc4himi, sc4_state, sc4himi, ROT0, "Mazooma","High 'n' Mighty (PR2067) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4himid ,sc4himi, sc4_4reel_alt, sc4himi, sc4_state, sc4himi, ROT0, "Mazooma","High 'n' Mighty (PR2067) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4himib ,sc4himi, sc4_4reel_alt, sc4himi, sc4_state, sc4himi, ROT0, "Mazooma","High 'n' Mighty (PR2067) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4himid ,sc4himi, sc4_4reel_alt, sc4himi, sc4_state, sc4himi, ROT0, "Mazooma","High 'n' Mighty (PR2067) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -26341,14 +26341,14 @@ INPUT_PORTS_START( sc4hi5 ) // this structure is generated
INPUT_PORTS_END
// PR1003 HIGH FIVE PR1003 HIGH FIVE SOUNDS11
-GAMEL( 200?, sc4hi5 ,0, sc4_4reel, sc4hi5, sc4_state, sc4hi5, ROT0, "BFM","High 5 (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hi5b ,sc4hi5, sc4_4reel, sc4hi5, sc4_state, sc4hi5, ROT0, "BFM","High 5 (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hi5d ,sc4hi5, sc4_4reel, sc4hi5, sc4_state, sc4hi5, ROT0, "BFM","High 5 (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hi5f ,sc4hi5, sc4_4reel, sc4hi5, sc4_state, sc4hi5, ROT0, "BFM","High 5 (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hi5a ,sc4hi5, sc4_4reel, sc4hi5, sc4_state, sc4hi5, ROT0, "BFM / Whitbread","High 5 (Bellfruit / Whitbread) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hi5c ,sc4hi5, sc4_4reel, sc4hi5, sc4_state, sc4hi5, ROT0, "BFM / Whitbread","High 5 (Bellfruit / Whitbread) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hi5e ,sc4hi5, sc4_4reel, sc4hi5, sc4_state, sc4hi5, ROT0, "BFM / Whitbread","High 5 (Bellfruit / Whitbread) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hi5g ,sc4hi5, sc4_4reel, sc4hi5, sc4_state, sc4hi5, ROT0, "BFM / Whitbread","High 5 (Bellfruit / Whitbread) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hi5 ,0, sc4_4reel, sc4hi5, sc4_state, sc4hi5, ROT0, "BFM","High 5 (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hi5b ,sc4hi5, sc4_4reel, sc4hi5, sc4_state, sc4hi5, ROT0, "BFM","High 5 (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hi5d ,sc4hi5, sc4_4reel, sc4hi5, sc4_state, sc4hi5, ROT0, "BFM","High 5 (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hi5f ,sc4hi5, sc4_4reel, sc4hi5, sc4_state, sc4hi5, ROT0, "BFM","High 5 (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hi5a ,sc4hi5, sc4_4reel, sc4hi5, sc4_state, sc4hi5, ROT0, "BFM / Whitbread","High 5 (Bellfruit / Whitbread) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hi5c ,sc4hi5, sc4_4reel, sc4hi5, sc4_state, sc4hi5, ROT0, "BFM / Whitbread","High 5 (Bellfruit / Whitbread) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hi5e ,sc4hi5, sc4_4reel, sc4hi5, sc4_state, sc4hi5, ROT0, "BFM / Whitbread","High 5 (Bellfruit / Whitbread) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hi5g ,sc4hi5, sc4_4reel, sc4hi5, sc4_state, sc4hi5, ROT0, "BFM / Whitbread","High 5 (Bellfruit / Whitbread) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4sprng)
@@ -26403,7 +26403,7 @@ INPUT_PORTS_START( sc4sprng ) // this structure is generated
INPUT_PORTS_END
// PR2066 HIGHLY SPRUNG HIGH SOUNDS HIGHLY SPRUNG
-GAMEL( 200?, sc4sprng ,0, sc4_4reel_alt, sc4sprng, sc4_state, sc4sprng, ROT0, "Mazooma","Highly Sprung (Mazooma) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sprng ,0, sc4_4reel_alt, sc4sprng, sc4_state, sc4sprng, ROT0, "Mazooma","Highly Sprung (Mazooma) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4hilo)
@@ -26482,18 +26482,18 @@ INPUT_PORTS_START( sc4hilo ) // this structure is generated
INPUT_PORTS_END
// PR1013 HILOWATHA PR1013 HILOWATHA SOUNDS11
-GAMEL( 200?, sc4hilo ,0, sc4_200_4ra, sc4hilo, sc4_state, sc4hilo, ROT0, "BFM","Hilowatha (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hiloa ,sc4hilo, sc4_200_4ra, sc4hilo, sc4_state, sc4hilo, ROT0, "BFM","Hilowatha (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hilob ,sc4hilo, sc4_200_4ra, sc4hilo, sc4_state, sc4hilo, ROT0, "BFM","Hilowatha (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hiloc ,sc4hilo, sc4_200_4ra, sc4hilo, sc4_state, sc4hilo, ROT0, "BFM","Hilowatha (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hilod ,sc4hilo, sc4_200_4ra, sc4hilo, sc4_state, sc4hilo, ROT0, "BFM","Hilowatha (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hiloe ,sc4hilo, sc4_200_4ra, sc4hilo, sc4_state, sc4hilo, ROT0, "BFM","Hilowatha (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hilof ,sc4hilo, sc4_200_4ra, sc4hilo, sc4_state, sc4hilo, ROT0, "BFM","Hilowatha (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hilog ,sc4hilo, sc4_200_4ra, sc4hilo, sc4_state, sc4hilo, ROT0, "BFM","Hilowatha (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hiloh ,sc4hilo, sc4_200_4ra, sc4hilo, sc4_state, sc4hilo, ROT0, "BFM","Hilowatha (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hiloi ,sc4hilo, sc4_200_4ra, sc4hilo, sc4_state, sc4hilo, ROT0, "BFM","Hilowatha (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hiloj ,sc4hilo, sc4_200_4ra, sc4hilo, sc4_state, sc4hilo, ROT0, "BFM","Hilowatha (Bellfruit) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hilok ,sc4hilo, sc4_200_4ra, sc4hilo, sc4_state, sc4hilo, ROT0, "BFM","Hilowatha (Bellfruit) (Scorpion 4) (set 12)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hilo ,0, sc4_200_4ra, sc4hilo, sc4_state, sc4hilo, ROT0, "BFM","Hilowatha (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hiloa ,sc4hilo, sc4_200_4ra, sc4hilo, sc4_state, sc4hilo, ROT0, "BFM","Hilowatha (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hilob ,sc4hilo, sc4_200_4ra, sc4hilo, sc4_state, sc4hilo, ROT0, "BFM","Hilowatha (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hiloc ,sc4hilo, sc4_200_4ra, sc4hilo, sc4_state, sc4hilo, ROT0, "BFM","Hilowatha (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hilod ,sc4hilo, sc4_200_4ra, sc4hilo, sc4_state, sc4hilo, ROT0, "BFM","Hilowatha (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hiloe ,sc4hilo, sc4_200_4ra, sc4hilo, sc4_state, sc4hilo, ROT0, "BFM","Hilowatha (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hilof ,sc4hilo, sc4_200_4ra, sc4hilo, sc4_state, sc4hilo, ROT0, "BFM","Hilowatha (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hilog ,sc4hilo, sc4_200_4ra, sc4hilo, sc4_state, sc4hilo, ROT0, "BFM","Hilowatha (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hiloh ,sc4hilo, sc4_200_4ra, sc4hilo, sc4_state, sc4hilo, ROT0, "BFM","Hilowatha (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hiloi ,sc4hilo, sc4_200_4ra, sc4hilo, sc4_state, sc4hilo, ROT0, "BFM","Hilowatha (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hiloj ,sc4hilo, sc4_200_4ra, sc4hilo, sc4_state, sc4hilo, ROT0, "BFM","Hilowatha (Bellfruit) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hilok ,sc4hilo, sc4_200_4ra, sc4hilo, sc4_state, sc4hilo, ROT0, "BFM","Hilowatha (Bellfruit) (Scorpion 4) (set 12)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -26574,12 +26574,12 @@ INPUT_PORTS_START( sc4hitsh ) // this structure is generated
INPUT_PORTS_END
// PR1112 HIT SHOT PR1112 HIT SHOT SOUNDS11
-GAMEL( 200?, sc4hitsh ,0, sc4_200_4rb, sc4hitsh, sc4_state, sc4hitsh, ROT0, "BFM","Hit Shot (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hitsha ,sc4hitsh, sc4_200_4rb, sc4hitsh, sc4_state, sc4hitsh, ROT0, "BFM","Hit Shot (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hitshb ,sc4hitsh, sc4_200_4rb, sc4hitsh, sc4_state, sc4hitsh, ROT0, "BFM","Hit Shot (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hitshc ,sc4hitsh, sc4_200_4rb, sc4hitsh, sc4_state, sc4hitsh, ROT0, "BFM","Hit Shot (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hitshd ,sc4hitsh, sc4_200_4rb, sc4hitsh, sc4_state, sc4hitsh, ROT0, "BFM","Hit Shot (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hitshe ,sc4hitsh, sc4_200_4rb, sc4hitsh, sc4_state, sc4hitsh, ROT0, "BFM","Hit Shot (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hitsh ,0, sc4_200_4rb, sc4hitsh, sc4_state, sc4hitsh, ROT0, "BFM","Hit Shot (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hitsha ,sc4hitsh, sc4_200_4rb, sc4hitsh, sc4_state, sc4hitsh, ROT0, "BFM","Hit Shot (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hitshb ,sc4hitsh, sc4_200_4rb, sc4hitsh, sc4_state, sc4hitsh, ROT0, "BFM","Hit Shot (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hitshc ,sc4hitsh, sc4_200_4rb, sc4hitsh, sc4_state, sc4hitsh, ROT0, "BFM","Hit Shot (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hitshd ,sc4hitsh, sc4_200_4rb, sc4hitsh, sc4_state, sc4hitsh, ROT0, "BFM","Hit Shot (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hitshe ,sc4hitsh, sc4_200_4rb, sc4hitsh, sc4_state, sc4hitsh, ROT0, "BFM","Hit Shot (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4h6cl)
{
@@ -26647,10 +26647,10 @@ INPUT_PORTS_START( sc4h6cl ) // this structure is generated
INPUT_PORTS_END
// PR1759 CLUB HOT SIX HOT SIX CLUB PR1759 HOSX SOUNDS11
-GAMEL( 200?, sc4h6cl ,0, sc4, sc4h6cl, sc4_state, sc4h6cl, ROT0, "BFM","Hot Six Club (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4h6cla ,sc4h6cl, sc4, sc4h6cl, sc4_state, sc4h6cl, ROT0, "BFM","Hot Six Club (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4h6clb ,sc4h6cl, sc4, sc4h6cl, sc4_state, sc4h6cl, ROT0, "BFM","Hot Six Club (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4h6clc ,sc4h6cl, sc4, sc4h6cl, sc4_state, sc4h6cl, ROT0, "BFM","Hot Six Club (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4h6cl ,0, sc4, sc4h6cl, sc4_state, sc4h6cl, ROT0, "BFM","Hot Six Club (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4h6cla ,sc4h6cl, sc4, sc4h6cl, sc4_state, sc4h6cl, ROT0, "BFM","Hot Six Club (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4h6clb ,sc4h6cl, sc4, sc4h6cl, sc4_state, sc4h6cl, ROT0, "BFM","Hot Six Club (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4h6clc ,sc4h6cl, sc4, sc4h6cl, sc4_state, sc4h6cl, ROT0, "BFM","Hot Six Club (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -26716,7 +26716,7 @@ INPUT_PORTS_START( sc4ijclb ) // this structure is generated
INPUT_PORTS_END
// PR2403 CLUB ITALIAN JOB CLUB ITALIAN JOB CLUB CLUB ITJB SOUNDS
-GAMEL( 200?, sc4ijclb ,0, sc4, sc4ijclb, sc4_state, sc4ijclb, ROT0, "Mazooma","Italian Job Club (Mazooma) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ijclb ,0, sc4, sc4ijclb, sc4_state, sc4ijclb, ROT0, "Mazooma","Italian Job Club (Mazooma) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4jack)
{
@@ -26771,14 +26771,14 @@ INPUT_PORTS_START( sc4jack ) // this structure is generated
INPUT_PORTS_END
// PR2078 JACK THE KIPPER JKIP SOUNDS JACK THE KIPPER
-GAMEL( 200?, sc4jack ,0, sc4_200_5ra, sc4jack, sc4_state, sc4jack, ROT0, "Mazooma","Jack The Kipper (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jacka ,sc4jack, sc4_200_5ra, sc4jack, sc4_state, sc4jack, ROT0, "Mazooma","Jack The Kipper (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jackb ,sc4jack, sc4_200_5ra, sc4jack, sc4_state, sc4jack, ROT0, "Mazooma","Jack The Kipper (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jackc ,sc4jack, sc4_200_5ra, sc4jack, sc4_state, sc4jack, ROT0, "Mazooma","Jack The Kipper (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jackd ,sc4jack, sc4_200_5ra, sc4jack, sc4_state, sc4jack, ROT0, "Mazooma","Jack The Kipper (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jacke ,sc4jack, sc4_200_5ra, sc4jack, sc4_state, sc4jack, ROT0, "Mazooma","Jack The Kipper (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jackf ,sc4jack, sc4_200_5ra, sc4jack, sc4_state, sc4jack, ROT0, "Mazooma","Jack The Kipper (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jackg ,sc4jack, sc4_200_5ra, sc4jack, sc4_state, sc4jack, ROT0, "Mazooma","Jack The Kipper (Mazooma) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jack ,0, sc4_200_5ra, sc4jack, sc4_state, sc4jack, ROT0, "Mazooma","Jack The Kipper (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jacka ,sc4jack, sc4_200_5ra, sc4jack, sc4_state, sc4jack, ROT0, "Mazooma","Jack The Kipper (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jackb ,sc4jack, sc4_200_5ra, sc4jack, sc4_state, sc4jack, ROT0, "Mazooma","Jack The Kipper (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jackc ,sc4jack, sc4_200_5ra, sc4jack, sc4_state, sc4jack, ROT0, "Mazooma","Jack The Kipper (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jackd ,sc4jack, sc4_200_5ra, sc4jack, sc4_state, sc4jack, ROT0, "Mazooma","Jack The Kipper (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jacke ,sc4jack, sc4_200_5ra, sc4jack, sc4_state, sc4jack, ROT0, "Mazooma","Jack The Kipper (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jackf ,sc4jack, sc4_200_5ra, sc4jack, sc4_state, sc4jack, ROT0, "Mazooma","Jack The Kipper (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jackg ,sc4jack, sc4_200_5ra, sc4jack, sc4_state, sc4jack, ROT0, "Mazooma","Jack The Kipper (Mazooma) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -26850,16 +26850,16 @@ INPUT_PORTS_START( sc4jjunc ) // this structure is generated
INPUT_PORTS_END
// PR1304 JACKPOT JUNCTION PR1304 JACKPOT JUNCTION SOUNDS11
-GAMEL( 2002, sc4jjunc ,0, sc4, sc4jjunc, sc4_state, sc4jjunc, ROT0, "BFM","Jackpot Junction (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2002, sc4jjunca ,sc4jjunc, sc4, sc4jjunc, sc4_state, sc4jjunc, ROT0, "BFM","Jackpot Junction (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2002, sc4jjuncb ,sc4jjunc, sc4, sc4jjunc, sc4_state, sc4jjunc, ROT0, "BFM","Jackpot Junction (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2002, sc4jjuncc ,sc4jjunc, sc4, sc4jjunc, sc4_state, sc4jjunc, ROT0, "BFM","Jackpot Junction (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2002, sc4jjuncd ,sc4jjunc, sc4, sc4jjunc, sc4_state, sc4jjunc, ROT0, "BFM","Jackpot Junction (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2002, sc4jjunce ,sc4jjunc, sc4, sc4jjunc, sc4_state, sc4jjunc, ROT0, "BFM","Jackpot Junction (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2002, sc4jjuncf ,sc4jjunc, sc4, sc4jjunc, sc4_state, sc4jjunc, ROT0, "BFM","Jackpot Junction (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2002, sc4jjuncg ,sc4jjunc, sc4, sc4jjunc, sc4_state, sc4jjunc, ROT0, "BFM","Jackpot Junction (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2002, sc4jjunch ,sc4jjunc, sc4, sc4jjunc, sc4_state, sc4jjunc, ROT0, "BFM","Jackpot Junction (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2002, sc4jjunci ,sc4jjunc, sc4, sc4jjunc, sc4_state, sc4jjunc, ROT0, "BFM","Jackpot Junction (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2002, sc4jjunc ,0, sc4, sc4jjunc, sc4_state, sc4jjunc, ROT0, "BFM","Jackpot Junction (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2002, sc4jjunca ,sc4jjunc, sc4, sc4jjunc, sc4_state, sc4jjunc, ROT0, "BFM","Jackpot Junction (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2002, sc4jjuncb ,sc4jjunc, sc4, sc4jjunc, sc4_state, sc4jjunc, ROT0, "BFM","Jackpot Junction (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2002, sc4jjuncc ,sc4jjunc, sc4, sc4jjunc, sc4_state, sc4jjunc, ROT0, "BFM","Jackpot Junction (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2002, sc4jjuncd ,sc4jjunc, sc4, sc4jjunc, sc4_state, sc4jjunc, ROT0, "BFM","Jackpot Junction (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2002, sc4jjunce ,sc4jjunc, sc4, sc4jjunc, sc4_state, sc4jjunc, ROT0, "BFM","Jackpot Junction (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2002, sc4jjuncf ,sc4jjunc, sc4, sc4jjunc, sc4_state, sc4jjunc, ROT0, "BFM","Jackpot Junction (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2002, sc4jjuncg ,sc4jjunc, sc4, sc4jjunc, sc4_state, sc4jjunc, ROT0, "BFM","Jackpot Junction (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2002, sc4jjunch ,sc4jjunc, sc4, sc4jjunc, sc4_state, sc4jjunc, ROT0, "BFM","Jackpot Junction (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2002, sc4jjunci ,sc4jjunc, sc4, sc4jjunc, sc4_state, sc4jjunc, ROT0, "BFM","Jackpot Junction (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
//should R6 have a reel?
@@ -26936,14 +26936,14 @@ INPUT_PORTS_END
// REEL7 ERR 27 (where does reel 7 connect?!)
// PR1422 CLUB JACKPOT JUNCTION PR1422 JACKPOT JUNCTION SOUNDS11
-GAMEL( 200?, sc4jjucl ,0, sc4_5reel, sc4jjucl, sc4_state, sc4jjucl, ROT0, "BFM","Jackpot Junction Club (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jjuclb ,sc4jjucl, sc4_5reel, sc4jjucl, sc4_state, sc4jjucl, ROT0, "BFM","Jackpot Junction Club (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jjucl ,0, sc4_5reel, sc4jjucl, sc4_state, sc4jjucl, ROT0, "BFM","Jackpot Junction Club (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jjuclb ,sc4jjucl, sc4_5reel, sc4jjucl, sc4_state, sc4jjucl, ROT0, "BFM","Jackpot Junction Club (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR1422 CLUB JACKPOT JUNCTION JACKPOT JUNCTION CLUB PR1422 JACKPOT JUNCTION SOUNDS11
-GAMEL( 200?, sc4jjucld ,sc4jjucl, sc4_5reel, sc4jjucl, sc4_state, sc4jjucl_mbus, ROT0, "BFM","Jackpot Junction Club (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jjucle ,sc4jjucl, sc4_5reel, sc4jjucl, sc4_state, sc4jjucl_mbus, ROT0, "BFM","Jackpot Junction Club (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jjucld ,sc4jjucl, sc4_5reel, sc4jjucl, sc4_state, sc4jjucl_mbus, ROT0, "BFM","Jackpot Junction Club (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jjucle ,sc4jjucl, sc4_5reel, sc4jjucl, sc4_state, sc4jjucl_mbus, ROT0, "BFM","Jackpot Junction Club (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR1422 CLUB JACKPOT JUNCTION FERRY PR1422 JACKPOT JUNCTION SOUNDS11
-GAMEL( 200?, sc4jjucla ,sc4jjucl, sc4_5reel, sc4jjucl, sc4_state, sc4jjucl, ROT0, "BFM","Jackpot Junction Club (Ferry) (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jjuclc ,sc4jjucl, sc4_5reel, sc4jjucl, sc4_state, sc4jjucl, ROT0, "BFM","Jackpot Junction Club (Ferry) (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jjucla ,sc4jjucl, sc4_5reel, sc4jjucl, sc4_state, sc4jjucl, ROT0, "BFM","Jackpot Junction Club (Ferry) (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jjuclc ,sc4jjucl, sc4_5reel, sc4jjucl, sc4_state, sc4jjucl, ROT0, "BFM","Jackpot Junction Club (Ferry) (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4jolly)
@@ -27002,8 +27002,8 @@ INPUT_PORTS_START( sc4jolly ) // this structure is generated
INPUT_PORTS_END
// PR2054 JOLLY JOUSTINGV2.0 JJOLLSND JOLLY JOUSTING
-GAMEL( 200?, sc4jolly ,0, sc4_200_5r, sc4jolly, sc4_state, sc4jolly, ROT0, "Qps","Jolly Jousting (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jollya ,sc4jolly, sc4_200_5r, sc4jolly, sc4_state, sc4jolly, ROT0, "Qps","Jolly Jousting (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jolly ,0, sc4_200_5r, sc4jolly, sc4_state, sc4jolly, ROT0, "Qps","Jolly Jousting (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jollya ,sc4jolly, sc4_200_5r, sc4jolly, sc4_state, sc4jolly, ROT0, "Qps","Jolly Jousting (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -27064,20 +27064,20 @@ INPUT_PORTS_START( sc4juicy ) // this structure is generated
INPUT_PORTS_END
// PR1136 JUICY JACKPOTS 65% FERRY PR1136 JUICY JACKPOTS SOUNDS11
-GAMEL( 200?, sc4juicy ,0, sc4_5reel, sc4juicy, sc4_state, sc4juicy, ROT0, "BFM","Juicy Jackpots Club (PR1136) (65% Ferry) (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4juicyb ,sc4juicy, sc4_5reel, sc4juicy, sc4_state, sc4juicy, ROT0, "BFM","Juicy Jackpots Club (PR1136) (65% Ferry) (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4juicy ,0, sc4_5reel, sc4juicy, sc4_state, sc4juicy, ROT0, "BFM","Juicy Jackpots Club (PR1136) (65% Ferry) (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4juicyb ,sc4juicy, sc4_5reel, sc4juicy, sc4_state, sc4juicy, ROT0, "BFM","Juicy Jackpots Club (PR1136) (65% Ferry) (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR1136 JUICY JACKPOTS PR1136 JUICY JACKPOTS SOUNDS11
-GAMEL( 200?, sc4juicyd ,sc4juicy, sc4_5reel, sc4juicy, sc4_state, sc4juicy, ROT0, "BFM","Juicy Jackpots Club (PR1136) (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4juicye ,sc4juicy, sc4_5reel, sc4juicy, sc4_state, sc4juicy, ROT0, "BFM","Juicy Jackpots Club (PR1136) (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4juicyf ,sc4juicy, sc4_5reel, sc4juicy, sc4_state, sc4juicy, ROT0, "BFM","Juicy Jackpots Club (PR1136) (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4juicyg ,sc4juicy, sc4_5reel, sc4juicy, sc4_state, sc4juicy, ROT0, "BFM","Juicy Jackpots Club (PR1136) (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4juicyd ,sc4juicy, sc4_5reel, sc4juicy, sc4_state, sc4juicy, ROT0, "BFM","Juicy Jackpots Club (PR1136) (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4juicye ,sc4juicy, sc4_5reel, sc4juicy, sc4_state, sc4juicy, ROT0, "BFM","Juicy Jackpots Club (PR1136) (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4juicyf ,sc4juicy, sc4_5reel, sc4juicy, sc4_state, sc4juicy, ROT0, "BFM","Juicy Jackpots Club (PR1136) (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4juicyg ,sc4juicy, sc4_5reel, sc4juicy, sc4_state, sc4juicy, ROT0, "BFM","Juicy Jackpots Club (PR1136) (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR1136 JUICY JACKPOTS JUICY JACKPOTS CLUB PR1136 JUICY JACKPOTS SOUNDS11
-GAMEL( 200?, sc4juicyi ,sc4juicy, sc4_5reel, sc4juicy, sc4_state, sc4juicy_mbus, ROT0, "BFM","Juicy Jackpots Club (PR1136) (Bellfruit) (Scorpion 4) (311 Club, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4juicyj ,sc4juicy, sc4_5reel, sc4juicy, sc4_state, sc4juicy_mbus, ROT0, "BFM","Juicy Jackpots Club (PR1136) (Bellfruit) (Scorpion 4) (311 Club, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4juicyi ,sc4juicy, sc4_5reel, sc4juicy, sc4_state, sc4juicy_mbus, ROT0, "BFM","Juicy Jackpots Club (PR1136) (Bellfruit) (Scorpion 4) (311 Club, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4juicyj ,sc4juicy, sc4_5reel, sc4juicy, sc4_state, sc4juicy_mbus, ROT0, "BFM","Juicy Jackpots Club (PR1136) (Bellfruit) (Scorpion 4) (311 Club, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// this has a different (wrong?) product ID and issues with the VFD even during startup, maybe a buggy release?
// PR1123 JUICY JACKPOTS PR1136 JUICY JACKPOTS SOUNDS11
-GAMEL( 200?, sc4juicya ,sc4juicy, sc4_5reel, sc4juicy, sc4_state, sc4juicy, ROT0, "BFM","Juicy Jackpots Club (PR1123) (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4juicyc ,sc4juicy, sc4_5reel, sc4juicy, sc4_state, sc4juicy, ROT0, "BFM","Juicy Jackpots Club (PR1123) (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4juicya ,sc4juicy, sc4_5reel, sc4juicy, sc4_state, sc4juicy, ROT0, "BFM","Juicy Jackpots Club (PR1123) (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4juicyc ,sc4juicy, sc4_5reel, sc4juicy, sc4_state, sc4juicy, ROT0, "BFM","Juicy Jackpots Club (PR1123) (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4kalei)
@@ -27133,14 +27133,14 @@ INPUT_PORTS_START( sc4kalei ) // this structure is generated
INPUT_PORTS_END
// PR2538 KALEIDOSCOPE 011 KALEIDOSCOPESND KALEIDOSCOPE
-GAMEL( 200?, sc4kalei ,0, sc4_4reel_alt, sc4kalei, sc4_state, sc4kalei, ROT0, "Qps","Kaleidoscope (011) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4kaleib ,sc4kalei, sc4_4reel_alt, sc4kalei, sc4_state, sc4kalei, ROT0, "Qps","Kaleidoscope (011) (Qps) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4kalei ,0, sc4_4reel_alt, sc4kalei, sc4_state, sc4kalei, ROT0, "Qps","Kaleidoscope (011) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4kaleib ,sc4kalei, sc4_4reel_alt, sc4kalei, sc4_state, sc4kalei, ROT0, "Qps","Kaleidoscope (011) (Qps) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2538 KALEIDOSCOPE 041 KALEIDOSCOPESND KALEIDOSCOPE
-GAMEL( 200?, sc4kaleia ,sc4kalei, sc4_4reel_alt, sc4kalei, sc4_state, sc4kalei, ROT0, "Qps","Kaleidoscope (041) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4kaleic ,sc4kalei, sc4_4reel_alt, sc4kalei, sc4_state, sc4kalei, ROT0, "Qps","Kaleidoscope (041) (Qps) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4kaleia ,sc4kalei, sc4_4reel_alt, sc4kalei, sc4_state, sc4kalei, ROT0, "Qps","Kaleidoscope (041) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4kaleic ,sc4kalei, sc4_4reel_alt, sc4kalei, sc4_state, sc4kalei, ROT0, "Qps","Kaleidoscope (041) (Qps) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2538 KALEIDOSCOPE 051 KALEIDOSCOPESND KALEIDOSCOPE
-GAMEL( 200?, sc4kaleid ,sc4kalei, sc4_4reel_alt, sc4kalei, sc4_state, sc4kalei, ROT0, "Qps","Kaleidoscope (051) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4kaleie ,sc4kalei, sc4_4reel_alt, sc4kalei, sc4_state, sc4kalei, ROT0, "Qps","Kaleidoscope (051) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4kaleid ,sc4kalei, sc4_4reel_alt, sc4kalei, sc4_state, sc4kalei, ROT0, "Qps","Kaleidoscope (051) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4kaleie ,sc4kalei, sc4_4reel_alt, sc4kalei, sc4_state, sc4kalei, ROT0, "Qps","Kaleidoscope (051) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4lir)
@@ -27193,16 +27193,16 @@ INPUT_PORTS_START( sc4lir ) // this structure is generated
INPUT_PORTS_END
// PR1001 LET IT ROLL PR1001 LETITROLL SOUNDS11
-GAMEL( 200?, sc4lir ,0, sc4_4reel, sc4lir, sc4_state, sc4lir, ROT0, "BFM","Let It Roll (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lira ,sc4lir, sc4_4reel, sc4lir, sc4_state, sc4lir, ROT0, "BFM","Let It Roll (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lirb ,sc4lir, sc4_4reel, sc4lir, sc4_state, sc4lir, ROT0, "BFM","Let It Roll (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lirc ,sc4lir, sc4_4reel, sc4lir, sc4_state, sc4lir, ROT0, "BFM","Let It Roll (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lird ,sc4lir, sc4_4reel, sc4lir, sc4_state, sc4lir, ROT0, "BFM","Let It Roll (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lire ,sc4lir, sc4_4reel, sc4lir, sc4_state, sc4lir, ROT0, "BFM","Let It Roll (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lirf ,sc4lir, sc4_4reel, sc4lir, sc4_state, sc4lir, ROT0, "BFM","Let It Roll (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lirg ,sc4lir, sc4_4reel, sc4lir, sc4_state, sc4lir, ROT0, "BFM","Let It Roll (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lirh ,sc4lir, sc4_4reel, sc4lir, sc4_state, sc4lir, ROT0, "BFM","Let It Roll (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4liri ,sc4lir, sc4_4reel, sc4lir, sc4_state, sc4lir, ROT0, "BFM","Let It Roll (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lir ,0, sc4_4reel, sc4lir, sc4_state, sc4lir, ROT0, "BFM","Let It Roll (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lira ,sc4lir, sc4_4reel, sc4lir, sc4_state, sc4lir, ROT0, "BFM","Let It Roll (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lirb ,sc4lir, sc4_4reel, sc4lir, sc4_state, sc4lir, ROT0, "BFM","Let It Roll (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lirc ,sc4lir, sc4_4reel, sc4lir, sc4_state, sc4lir, ROT0, "BFM","Let It Roll (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lird ,sc4lir, sc4_4reel, sc4lir, sc4_state, sc4lir, ROT0, "BFM","Let It Roll (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lire ,sc4lir, sc4_4reel, sc4lir, sc4_state, sc4lir, ROT0, "BFM","Let It Roll (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lirf ,sc4lir, sc4_4reel, sc4lir, sc4_state, sc4lir, ROT0, "BFM","Let It Roll (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lirg ,sc4lir, sc4_4reel, sc4lir, sc4_state, sc4lir, ROT0, "BFM","Let It Roll (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lirh ,sc4lir, sc4_4reel, sc4lir, sc4_state, sc4lir, ROT0, "BFM","Let It Roll (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4liri ,sc4lir, sc4_4reel, sc4lir, sc4_state, sc4lir, ROT0, "BFM","Let It Roll (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -27270,7 +27270,7 @@ INPUT_PORTS_START( sc4ldvcl ) // this structure is generated
INPUT_PORTS_END
// PR2421 LITTLEDEVIL CLUB LITTLEDEVIL CLUB CLILDEV SOUNDS CLUB LITTLEDEVIL
-GAMEL( 200?, sc4ldvcl ,0, sc4_5reel, sc4ldvcl, sc4_state, sc4ldvcl, ROT0, "Mazooma","Little Devil Club (Mazooma) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ldvcl ,0, sc4_5reel, sc4ldvcl, sc4_state, sc4ldvcl, ROT0, "Mazooma","Little Devil Club (Mazooma) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4lockb)
{
@@ -27340,14 +27340,14 @@ INPUT_PORTS_START( sc4lockb ) // this structure is generated
INPUT_PORTS_END
// PR1108 LOCKBUSTER PR1108 LOCKBUSTER SOUNDS11
-GAMEL( 200?, sc4lockb ,0, sc4_4reel_alt, sc4lockb, sc4_state, sc4lockb, ROT0, "BFM","Lock Buster (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lockba ,sc4lockb, sc4_4reel_alt, sc4lockb, sc4_state, sc4lockb, ROT0, "BFM","Lock Buster (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lockbb ,sc4lockb, sc4_4reel_alt, sc4lockb, sc4_state, sc4lockb, ROT0, "BFM","Lock Buster (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lockbc ,sc4lockb, sc4_4reel_alt, sc4lockb, sc4_state, sc4lockb, ROT0, "BFM","Lock Buster (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lockbd ,sc4lockb, sc4_4reel_alt, sc4lockb, sc4_state, sc4lockb, ROT0, "BFM","Lock Buster (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lockbe ,sc4lockb, sc4_4reel_alt, sc4lockb, sc4_state, sc4lockb, ROT0, "BFM","Lock Buster (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lockbf ,sc4lockb, sc4_4reel_alt, sc4lockb, sc4_state, sc4lockb, ROT0, "BFM","Lock Buster (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lockbg ,sc4lockb, sc4_4reel_alt, sc4lockb, sc4_state, sc4lockb, ROT0, "BFM","Lock Buster (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lockb ,0, sc4_4reel_alt, sc4lockb, sc4_state, sc4lockb, ROT0, "BFM","Lock Buster (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lockba ,sc4lockb, sc4_4reel_alt, sc4lockb, sc4_state, sc4lockb, ROT0, "BFM","Lock Buster (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lockbb ,sc4lockb, sc4_4reel_alt, sc4lockb, sc4_state, sc4lockb, ROT0, "BFM","Lock Buster (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lockbc ,sc4lockb, sc4_4reel_alt, sc4lockb, sc4_state, sc4lockb, ROT0, "BFM","Lock Buster (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lockbd ,sc4lockb, sc4_4reel_alt, sc4lockb, sc4_state, sc4lockb, ROT0, "BFM","Lock Buster (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lockbe ,sc4lockb, sc4_4reel_alt, sc4lockb, sc4_state, sc4lockb, ROT0, "BFM","Lock Buster (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lockbf ,sc4lockb, sc4_4reel_alt, sc4lockb, sc4_state, sc4lockb, ROT0, "BFM","Lock Buster (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lockbg ,sc4lockb, sc4_4reel_alt, sc4lockb, sc4_state, sc4lockb, ROT0, "BFM","Lock Buster (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -27420,19 +27420,19 @@ INPUT_PORTS_START( sc4lkbcl ) // this structure is generated
INPUT_PORTS_END
// PR1321 CLUB LOCKBUSTER PR1321 CLUB LOCKBUSTER SOUNDS11
-GAMEL( 200?, sc4lkbcl ,0, sc4_5reel, sc4lkbcl, sc4_state, sc4lkbcl, ROT0, "BFM","Lock Buster Club (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lkbclb ,sc4lkbcl, sc4_5reel, sc4lkbcl, sc4_state, sc4lkbcl, ROT0, "BFM","Lock Buster Club (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lkbcle ,sc4lkbcl, sc4_5reel, sc4lkbcl, sc4_state, sc4lkbcl, ROT0, "BFM","Lock Buster Club (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lkbclg ,sc4lkbcl, sc4_5reel, sc4lkbcl, sc4_state, sc4lkbcl, ROT0, "BFM","Lock Buster Club (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lkbcl ,0, sc4_5reel, sc4lkbcl, sc4_state, sc4lkbcl, ROT0, "BFM","Lock Buster Club (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lkbclb ,sc4lkbcl, sc4_5reel, sc4lkbcl, sc4_state, sc4lkbcl, ROT0, "BFM","Lock Buster Club (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lkbcle ,sc4lkbcl, sc4_5reel, sc4lkbcl, sc4_state, sc4lkbcl, ROT0, "BFM","Lock Buster Club (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lkbclg ,sc4lkbcl, sc4_5reel, sc4lkbcl, sc4_state, sc4lkbcl, ROT0, "BFM","Lock Buster Club (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR1321 CLUB LOCKBUSTER CLUB LOCKBUSTER CLUB PR1321 CLUB LOCKBUSTER SOUNDS11
-GAMEL( 200?, sc4lkbclh ,sc4lkbcl, sc4_5reel, sc4lkbcl, sc4_state, sc4lkbcl_mbus, ROT0, "BFM","Lock Buster Club (Bellfruit) (Scorpion 4) (311 Club, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lkbcli ,sc4lkbcl, sc4_5reel, sc4lkbcl, sc4_state, sc4lkbcl_mbus, ROT0, "BFM","Lock Buster Club (Bellfruit) (Scorpion 4) (311 Club, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lkbclh ,sc4lkbcl, sc4_5reel, sc4lkbcl, sc4_state, sc4lkbcl_mbus, ROT0, "BFM","Lock Buster Club (Bellfruit) (Scorpion 4) (311 Club, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lkbcli ,sc4lkbcl, sc4_5reel, sc4lkbcl, sc4_state, sc4lkbcl_mbus, ROT0, "BFM","Lock Buster Club (Bellfruit) (Scorpion 4) (311 Club, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR1321 CLUB LOCKBUSTER EURO PR1321 CLUB LOCKBUSTER SOUNDS11
-GAMEL( 200?, sc4lkbcla ,sc4lkbcl, sc4_5reel, sc4lkbcl, sc4_state, sc4lkbcl, ROT0, "BFM","Lock Buster Club (Euro) (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lkbclc ,sc4lkbcl, sc4_5reel, sc4lkbcl, sc4_state, sc4lkbcl, ROT0, "BFM","Lock Buster Club (Euro) (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lkbcla ,sc4lkbcl, sc4_5reel, sc4lkbcl, sc4_state, sc4lkbcl, ROT0, "BFM","Lock Buster Club (Euro) (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lkbclc ,sc4lkbcl, sc4_5reel, sc4lkbcl, sc4_state, sc4lkbcl, ROT0, "BFM","Lock Buster Club (Euro) (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR1321 CLUB LOCKBUSTER FERRY PR1321 CLUB LOCKBUSTER SOUNDS11
-GAMEL( 200?, sc4lkbcld ,sc4lkbcl, sc4_5reel, sc4lkbcl, sc4_state, sc4lkbcl, ROT0, "BFM","Lock Buster Club (Ferry) (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lkbclf ,sc4lkbcl, sc4_5reel, sc4lkbcl, sc4_state, sc4lkbcl, ROT0, "BFM","Lock Buster Club (Ferry) (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lkbcld ,sc4lkbcl, sc4_5reel, sc4lkbcl, sc4_state, sc4lkbcl, ROT0, "BFM","Lock Buster Club (Ferry) (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lkbclf ,sc4lkbcl, sc4_5reel, sc4lkbcl, sc4_state, sc4lkbcl, ROT0, "BFM","Lock Buster Club (Ferry) (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -27503,17 +27503,17 @@ INPUT_PORTS_START( sc4lotrf ) // this structure is generated
INPUT_PORTS_END
// PR1115 LORD OF THE RINGS PR1115 L O T RINGS SOUNDS11
-GAMEL( 200?, sc4lotrf ,0, sc4_4reel_alt, sc4lotrf, sc4_state, sc4lotrf, ROT0, "BFM","Lord Of The Rings - The Fellowship Of The Ring (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lotrfa ,sc4lotrf, sc4_4reel_alt, sc4lotrf, sc4_state, sc4lotrf, ROT0, "BFM","Lord Of The Rings - The Fellowship Of The Ring (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lotrf ,0, sc4_4reel_alt, sc4lotrf, sc4_state, sc4lotrf, ROT0, "BFM","Lord Of The Rings - The Fellowship Of The Ring (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lotrfa ,sc4lotrf, sc4_4reel_alt, sc4lotrf, sc4_state, sc4lotrf, ROT0, "BFM","Lord Of The Rings - The Fellowship Of The Ring (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR1115 LORD OF THE RINGS ISS 2 PR1115 L O T RINGS SOUNDS11
-GAMEL( 200?, sc4lotrfb ,sc4lotrf, sc4_4reel_alt, sc4lotrf, sc4_state, sc4lotrf, ROT0, "BFM","Lord Of The Rings - The Fellowship Of The Ring (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lotrfc ,sc4lotrf, sc4_4reel_alt, sc4lotrf, sc4_state, sc4lotrf, ROT0, "BFM","Lord Of The Rings - The Fellowship Of The Ring (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lotrfd ,sc4lotrf, sc4_4reel_alt, sc4lotrf, sc4_state, sc4lotrf, ROT0, "BFM","Lord Of The Rings - The Fellowship Of The Ring (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lotrfe ,sc4lotrf, sc4_4reel_alt, sc4lotrf, sc4_state, sc4lotrf, ROT0, "BFM","Lord Of The Rings - The Fellowship Of The Ring (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lotrff ,sc4lotrf, sc4_4reel_alt, sc4lotrf, sc4_state, sc4lotrf, ROT0, "BFM","Lord Of The Rings - The Fellowship Of The Ring (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lotrfg ,sc4lotrf, sc4_4reel_alt, sc4lotrf, sc4_state, sc4lotrf, ROT0, "BFM","Lord Of The Rings - The Fellowship Of The Ring (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lotrt ,sc4lotrf, sc4_4reel_alt, sc4lotrf, sc4_state, sc4lotrf, ROT0, "BFM","Lord Of The Rings - The Fellowship Of The Ring (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // these were marked LOTR Trilogy and paired with different (wrong, now oprhaned, sound roms)
-GAMEL( 200?, sc4lotrta ,sc4lotrf, sc4_4reel_alt, sc4lotrf, sc4_state, sc4lotrf, ROT0, "BFM","Lord Of The Rings - The Fellowship Of The Ring (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lotrfb ,sc4lotrf, sc4_4reel_alt, sc4lotrf, sc4_state, sc4lotrf, ROT0, "BFM","Lord Of The Rings - The Fellowship Of The Ring (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lotrfc ,sc4lotrf, sc4_4reel_alt, sc4lotrf, sc4_state, sc4lotrf, ROT0, "BFM","Lord Of The Rings - The Fellowship Of The Ring (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lotrfd ,sc4lotrf, sc4_4reel_alt, sc4lotrf, sc4_state, sc4lotrf, ROT0, "BFM","Lord Of The Rings - The Fellowship Of The Ring (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lotrfe ,sc4lotrf, sc4_4reel_alt, sc4lotrf, sc4_state, sc4lotrf, ROT0, "BFM","Lord Of The Rings - The Fellowship Of The Ring (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lotrff ,sc4lotrf, sc4_4reel_alt, sc4lotrf, sc4_state, sc4lotrf, ROT0, "BFM","Lord Of The Rings - The Fellowship Of The Ring (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lotrfg ,sc4lotrf, sc4_4reel_alt, sc4lotrf, sc4_state, sc4lotrf, ROT0, "BFM","Lord Of The Rings - The Fellowship Of The Ring (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lotrt ,sc4lotrf, sc4_4reel_alt, sc4lotrf, sc4_state, sc4lotrf, ROT0, "BFM","Lord Of The Rings - The Fellowship Of The Ring (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // these were marked LOTR Trilogy and paired with different (wrong, now oprhaned, sound roms)
+GAMEL( 200?, sc4lotrta ,sc4lotrf, sc4_4reel_alt, sc4lotrf, sc4_state, sc4lotrf, ROT0, "BFM","Lord Of The Rings - The Fellowship Of The Ring (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -27591,21 +27591,21 @@ INPUT_PORTS_END
// PR1315 TWO TOWERS PR1313 TWO TOWERS SOUNDS11
-GAMEL( 200?, sc4lotr2 ,0, sc4_200_5r, sc4lotr2, sc4_state, sc4lotr2, ROT0, "BFM","Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lotr2a ,sc4lotr2, sc4_200_5r, sc4lotr2, sc4_state, sc4lotr2, ROT0, "BFM","Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lotr2b ,sc4lotr2, sc4_200_5r, sc4lotr2, sc4_state, sc4lotr2, ROT0, "BFM","Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lotr2c ,sc4lotr2, sc4_200_5r, sc4lotr2, sc4_state, sc4lotr2, ROT0, "BFM","Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lotr2d ,sc4lotr2, sc4_200_5r, sc4lotr2, sc4_state, sc4lotr2, ROT0, "BFM","Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lotr2e ,sc4lotr2, sc4_200_5r, sc4lotr2, sc4_state, sc4lotr2, ROT0, "BFM","Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lotr2j ,sc4lotr2, sc4_200_5r, sc4lotr2, sc4_state, sc4lotr2, ROT0, "BFM","Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lotr2k ,sc4lotr2, sc4_200_5r, sc4lotr2, sc4_state, sc4lotr2, ROT0, "BFM","Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lotr2l ,sc4lotr2, sc4_200_5r, sc4lotr2, sc4_state, sc4lotr2, ROT0, "BFM","Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lotr2m ,sc4lotr2, sc4_200_5r, sc4lotr2, sc4_state, sc4lotr2, ROT0, "BFM","Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lotr2 ,0, sc4_200_5r, sc4lotr2, sc4_state, sc4lotr2, ROT0, "BFM","Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lotr2a ,sc4lotr2, sc4_200_5r, sc4lotr2, sc4_state, sc4lotr2, ROT0, "BFM","Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lotr2b ,sc4lotr2, sc4_200_5r, sc4lotr2, sc4_state, sc4lotr2, ROT0, "BFM","Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lotr2c ,sc4lotr2, sc4_200_5r, sc4lotr2, sc4_state, sc4lotr2, ROT0, "BFM","Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lotr2d ,sc4lotr2, sc4_200_5r, sc4lotr2, sc4_state, sc4lotr2, ROT0, "BFM","Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lotr2e ,sc4lotr2, sc4_200_5r, sc4lotr2, sc4_state, sc4lotr2, ROT0, "BFM","Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lotr2j ,sc4lotr2, sc4_200_5r, sc4lotr2, sc4_state, sc4lotr2, ROT0, "BFM","Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lotr2k ,sc4lotr2, sc4_200_5r, sc4lotr2, sc4_state, sc4lotr2, ROT0, "BFM","Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lotr2l ,sc4lotr2, sc4_200_5r, sc4lotr2, sc4_state, sc4lotr2, ROT0, "BFM","Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lotr2m ,sc4lotr2, sc4_200_5r, sc4lotr2, sc4_state, sc4lotr2, ROT0, "BFM","Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR1315 TWO TOWERS PR1313 TWO TOWERS SOUNDS11 TWO TOWERS S.SITE
-GAMEL( 200?, sc4lotr2f ,sc4lotr2, sc4_200_5r, sc4lotr2, sc4_state, sc4lotr2_mbus, ROT0, "BFM","Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lotr2g ,sc4lotr2, sc4_200_5r, sc4lotr2, sc4_state, sc4lotr2_mbus, ROT0, "BFM","Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 12)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lotr2h ,sc4lotr2, sc4_200_5r, sc4lotr2, sc4_state, sc4lotr2_mbus, ROT0, "BFM","Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 13)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lotr2i ,sc4lotr2, sc4_200_5r, sc4lotr2, sc4_state, sc4lotr2_mbus, ROT0, "BFM","Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 14)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lotr2f ,sc4lotr2, sc4_200_5r, sc4lotr2, sc4_state, sc4lotr2_mbus, ROT0, "BFM","Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lotr2g ,sc4lotr2, sc4_200_5r, sc4lotr2, sc4_state, sc4lotr2_mbus, ROT0, "BFM","Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 12)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lotr2h ,sc4lotr2, sc4_200_5r, sc4lotr2, sc4_state, sc4lotr2_mbus, ROT0, "BFM","Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 13)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lotr2i ,sc4lotr2, sc4_200_5r, sc4lotr2, sc4_state, sc4lotr2_mbus, ROT0, "BFM","Lord Of The Rings - The Two Towers (Bellfruit) (Scorpion 4) (set 14)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4ltr2c)
@@ -27677,19 +27677,19 @@ INPUT_PORTS_START( sc4ltr2c ) // this structure is generated
INPUT_PORTS_END
// PR1420 CLUB LOTR TWO TOWERS PR1420 CLUB TWOTOWERS SOUNDS11
-GAMEL( 200?, sc4ltr2c ,0, sc4_200_std, sc4ltr2c, sc4_state, sc4ltr2c, ROT0, "BFM","Lord Of The Rings - The Two Towers Club (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ltr2ca ,sc4ltr2c, sc4_200_std, sc4ltr2c, sc4_state, sc4ltr2c, ROT0, "BFM","Lord Of The Rings - The Two Towers Club (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ltr2cb ,sc4ltr2c, sc4_200_std, sc4ltr2c, sc4_state, sc4ltr2c, ROT0, "BFM","Lord Of The Rings - The Two Towers Club (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ltr2cc ,sc4ltr2c, sc4_200_std, sc4ltr2c, sc4_state, sc4ltr2c, ROT0, "BFM","Lord Of The Rings - The Two Towers Club (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ltr2cd ,sc4ltr2c, sc4_200_std, sc4ltr2c, sc4_state, sc4ltr2c, ROT0, "BFM","Lord Of The Rings - The Two Towers Club (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ltr2ce ,sc4ltr2c, sc4_200_std, sc4ltr2c, sc4_state, sc4ltr2c, ROT0, "BFM","Lord Of The Rings - The Two Towers Club (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ltr2cf ,sc4ltr2c, sc4_200_std, sc4ltr2c, sc4_state, sc4ltr2c, ROT0, "BFM","Lord Of The Rings - The Two Towers Club (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ltr2cg ,sc4ltr2c, sc4_200_std, sc4ltr2c, sc4_state, sc4ltr2c, ROT0, "BFM","Lord Of The Rings - The Two Towers Club (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ltr2c ,0, sc4_200_std, sc4ltr2c, sc4_state, sc4ltr2c, ROT0, "BFM","Lord Of The Rings - The Two Towers Club (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ltr2ca ,sc4ltr2c, sc4_200_std, sc4ltr2c, sc4_state, sc4ltr2c, ROT0, "BFM","Lord Of The Rings - The Two Towers Club (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ltr2cb ,sc4ltr2c, sc4_200_std, sc4ltr2c, sc4_state, sc4ltr2c, ROT0, "BFM","Lord Of The Rings - The Two Towers Club (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ltr2cc ,sc4ltr2c, sc4_200_std, sc4ltr2c, sc4_state, sc4ltr2c, ROT0, "BFM","Lord Of The Rings - The Two Towers Club (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ltr2cd ,sc4ltr2c, sc4_200_std, sc4ltr2c, sc4_state, sc4ltr2c, ROT0, "BFM","Lord Of The Rings - The Two Towers Club (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ltr2ce ,sc4ltr2c, sc4_200_std, sc4ltr2c, sc4_state, sc4ltr2c, ROT0, "BFM","Lord Of The Rings - The Two Towers Club (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ltr2cf ,sc4ltr2c, sc4_200_std, sc4ltr2c, sc4_state, sc4ltr2c, ROT0, "BFM","Lord Of The Rings - The Two Towers Club (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ltr2cg ,sc4ltr2c, sc4_200_std, sc4ltr2c, sc4_state, sc4ltr2c, ROT0, "BFM","Lord Of The Rings - The Two Towers Club (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR1420 CLUB LOTR TWO TOWERS PR1420 CLUB TWOTOWERS SOUNDS11 CLUB TWO TOWERS
-GAMEL( 200?, sc4ltr2ch ,sc4ltr2c, sc4_200_std, sc4ltr2c, sc4_state, sc4ltr2c_mbus, ROT0, "BFM","Lord Of The Rings - The Two Towers Club (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ltr2ci ,sc4ltr2c, sc4_200_std, sc4ltr2c, sc4_state, sc4ltr2c_mbus, ROT0, "BFM","Lord Of The Rings - The Two Towers Club (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ltr2cj ,sc4ltr2c, sc4_200_std, sc4ltr2c, sc4_state, sc4ltr2c_mbus, ROT0, "BFM","Lord Of The Rings - The Two Towers Club (Bellfruit) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ltr2ck ,sc4ltr2c, sc4_200_std, sc4ltr2c, sc4_state, sc4ltr2c_mbus, ROT0, "BFM","Lord Of The Rings - The Two Towers Club (Bellfruit) (Scorpion 4) (set 12)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ltr2ch ,sc4ltr2c, sc4_200_std, sc4ltr2c, sc4_state, sc4ltr2c_mbus, ROT0, "BFM","Lord Of The Rings - The Two Towers Club (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ltr2ci ,sc4ltr2c, sc4_200_std, sc4ltr2c, sc4_state, sc4ltr2c_mbus, ROT0, "BFM","Lord Of The Rings - The Two Towers Club (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ltr2cj ,sc4ltr2c, sc4_200_std, sc4ltr2c, sc4_state, sc4ltr2c_mbus, ROT0, "BFM","Lord Of The Rings - The Two Towers Club (Bellfruit) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ltr2ck ,sc4ltr2c, sc4_200_std, sc4ltr2c, sc4_state, sc4ltr2c_mbus, ROT0, "BFM","Lord Of The Rings - The Two Towers Club (Bellfruit) (Scorpion 4) (set 12)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4magic)
{
@@ -27741,10 +27741,10 @@ INPUT_PORTS_START( sc4magic ) // this structure is generated
INPUT_PORTS_END
// PR2520 MAGIC POUND ABOUT V1.0 MAGICPOUNDABOUTSND MAGIC POUNDABOUT
-GAMEL( 200?, sc4magic ,0, sc4_4reel, sc4magic, sc4_state, sc4magic, ROT0, "Qps","Magic Poundabout (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4magica ,sc4magic, sc4_4reel, sc4magic, sc4_state, sc4magic, ROT0, "Qps","Magic Poundabout (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4magicb ,sc4magic, sc4_4reel, sc4magic, sc4_state, sc4magic, ROT0, "Qps","Magic Poundabout (Qps) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4magicc ,sc4magic, sc4_4reel, sc4magic, sc4_state, sc4magic, ROT0, "Qps","Magic Poundabout (Qps) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4magic ,0, sc4_4reel, sc4magic, sc4_state, sc4magic, ROT0, "Qps","Magic Poundabout (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4magica ,sc4magic, sc4_4reel, sc4magic, sc4_state, sc4magic, ROT0, "Qps","Magic Poundabout (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4magicb ,sc4magic, sc4_4reel, sc4magic, sc4_state, sc4magic, ROT0, "Qps","Magic Poundabout (Qps) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4magicc ,sc4magic, sc4_4reel, sc4magic, sc4_state, sc4magic, ROT0, "Qps","Magic Poundabout (Qps) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4maxim)
@@ -27799,14 +27799,14 @@ INPUT_PORTS_START( sc4maxim ) // this structure is generated
INPUT_PORTS_END
// PR2019 MAXIMUS CASH MAX SOUNDS MAXIMUS CASH
-GAMEL( 200?, sc4maxim ,0, sc4_4reel, sc4maxim, sc4_state, sc4maxim, ROT0, "Mazooma","Maximus Cash (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4maxima ,sc4maxim, sc4_4reel, sc4maxim, sc4_state, sc4maxim, ROT0, "Mazooma","Maximus Cash (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4maximb ,sc4maxim, sc4_4reel, sc4maxim, sc4_state, sc4maxim, ROT0, "Mazooma","Maximus Cash (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4maximc ,sc4maxim, sc4_4reel, sc4maxim, sc4_state, sc4maxim, ROT0, "Mazooma","Maximus Cash (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4maximd ,sc4maxim, sc4_4reel, sc4maxim, sc4_state, sc4maxim, ROT0, "Mazooma","Maximus Cash (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4maxime ,sc4maxim, sc4_4reel, sc4maxim, sc4_state, sc4maxim, ROT0, "Mazooma","Maximus Cash (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4maximf ,sc4maxim, sc4_4reel, sc4maxim, sc4_state, sc4maxim, ROT0, "Mazooma","Maximus Cash (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4maximg ,sc4maxim, sc4_4reel, sc4maxim, sc4_state, sc4maxim, ROT0, "Mazooma","Maximus Cash (Mazooma) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4maxim ,0, sc4_4reel, sc4maxim, sc4_state, sc4maxim, ROT0, "Mazooma","Maximus Cash (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4maxima ,sc4maxim, sc4_4reel, sc4maxim, sc4_state, sc4maxim, ROT0, "Mazooma","Maximus Cash (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4maximb ,sc4maxim, sc4_4reel, sc4maxim, sc4_state, sc4maxim, ROT0, "Mazooma","Maximus Cash (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4maximc ,sc4maxim, sc4_4reel, sc4maxim, sc4_state, sc4maxim, ROT0, "Mazooma","Maximus Cash (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4maximd ,sc4maxim, sc4_4reel, sc4maxim, sc4_state, sc4maxim, ROT0, "Mazooma","Maximus Cash (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4maxime ,sc4maxim, sc4_4reel, sc4maxim, sc4_state, sc4maxim, ROT0, "Mazooma","Maximus Cash (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4maximf ,sc4maxim, sc4_4reel, sc4maxim, sc4_state, sc4maxim, ROT0, "Mazooma","Maximus Cash (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4maximg ,sc4maxim, sc4_4reel, sc4maxim, sc4_state, sc4maxim, ROT0, "Mazooma","Maximus Cash (Mazooma) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4monob)
@@ -27859,20 +27859,20 @@ INPUT_PORTS_START( sc4monob ) // this structure is generated
INPUT_PORTS_END
// PR2121 MONOPOLY MPLY SOUNDS MONOPOLY
-GAMEL( 200?, sc4monob ,0, sc4_4reel_alt, sc4monob, sc4_state, sc4monob, ROT0, "BFM","Monopoly (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4monoba ,sc4monob, sc4_4reel_alt, sc4monob, sc4_state, sc4monob, ROT0, "BFM","Monopoly (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4monobb ,sc4monob, sc4_4reel_alt, sc4monob, sc4_state, sc4monob, ROT0, "BFM","Monopoly (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4monobc ,sc4monob, sc4_4reel_alt, sc4monob, sc4_state, sc4monob, ROT0, "BFM","Monopoly (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4monobd ,sc4monob, sc4_4reel_alt, sc4monob, sc4_state, sc4monob, ROT0, "BFM","Monopoly (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4monobe ,sc4monob, sc4_4reel_alt, sc4monob, sc4_state, sc4monob, ROT0, "BFM","Monopoly (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4monobf ,sc4monob, sc4_4reel_alt, sc4monob, sc4_state, sc4monob, ROT0, "BFM","Monopoly (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4monobg ,sc4monob, sc4_4reel_alt, sc4monob, sc4_state, sc4monob, ROT0, "BFM","Monopoly (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4monobh ,sc4monob, sc4_4reel_alt, sc4monob, sc4_state, sc4monob, ROT0, "BFM","Monopoly (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4monobi ,sc4monob, sc4_4reel_alt, sc4monob, sc4_state, sc4monob, ROT0, "BFM","Monopoly (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4monobj ,sc4monob, sc4_4reel_alt, sc4monob, sc4_state, sc4monob, ROT0, "BFM","Monopoly (Bellfruit) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4monobk ,sc4monob, sc4_4reel_alt, sc4monob, sc4_state, sc4monob, ROT0, "BFM","Monopoly (Bellfruit) (Scorpion 4) (set 12)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4monobl ,sc4monob, sc4_4reel_alt, sc4monob, sc4_state, sc4monob, ROT0, "BFM","Monopoly (Bellfruit) (Scorpion 4) (set 13)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4monobm ,sc4monob, sc4_4reel_alt, sc4monob, sc4_state, sc4monob, ROT0, "BFM","Monopoly (Bellfruit) (Scorpion 4) (set 14)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4monob ,0, sc4_4reel_alt, sc4monob, sc4_state, sc4monob, ROT0, "BFM","Monopoly (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4monoba ,sc4monob, sc4_4reel_alt, sc4monob, sc4_state, sc4monob, ROT0, "BFM","Monopoly (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4monobb ,sc4monob, sc4_4reel_alt, sc4monob, sc4_state, sc4monob, ROT0, "BFM","Monopoly (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4monobc ,sc4monob, sc4_4reel_alt, sc4monob, sc4_state, sc4monob, ROT0, "BFM","Monopoly (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4monobd ,sc4monob, sc4_4reel_alt, sc4monob, sc4_state, sc4monob, ROT0, "BFM","Monopoly (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4monobe ,sc4monob, sc4_4reel_alt, sc4monob, sc4_state, sc4monob, ROT0, "BFM","Monopoly (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4monobf ,sc4monob, sc4_4reel_alt, sc4monob, sc4_state, sc4monob, ROT0, "BFM","Monopoly (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4monobg ,sc4monob, sc4_4reel_alt, sc4monob, sc4_state, sc4monob, ROT0, "BFM","Monopoly (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4monobh ,sc4monob, sc4_4reel_alt, sc4monob, sc4_state, sc4monob, ROT0, "BFM","Monopoly (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4monobi ,sc4monob, sc4_4reel_alt, sc4monob, sc4_state, sc4monob, ROT0, "BFM","Monopoly (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4monobj ,sc4monob, sc4_4reel_alt, sc4monob, sc4_state, sc4monob, ROT0, "BFM","Monopoly (Bellfruit) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4monobk ,sc4monob, sc4_4reel_alt, sc4monob, sc4_state, sc4monob, ROT0, "BFM","Monopoly (Bellfruit) (Scorpion 4) (set 12)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4monobl ,sc4monob, sc4_4reel_alt, sc4monob, sc4_state, sc4monob, ROT0, "BFM","Monopoly (Bellfruit) (Scorpion 4) (set 13)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4monobm ,sc4monob, sc4_4reel_alt, sc4monob, sc4_state, sc4monob, ROT0, "BFM","Monopoly (Bellfruit) (Scorpion 4) (set 14)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -27927,17 +27927,17 @@ INPUT_PORTS_END
// So which Top Box roms should thse use? Why do some play without one?
// Waits for Top Box
-GAMEL( 200?, sc4mondxd ,sc4mondx, sc4_3reel_200, sc4mondx, sc4_state, sc4mondx, ROT0, "Mazooma","Monopoly Deluxe (PR2202, MPDX 1.1) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// PR2202 MONOPOLY DELUXE MONOPOLY DELUXE MAZ MONOPOLY TRIPLE
-GAMEL( 200?, sc4mondxg ,sc4mondx, sc4_3reel_200, sc4mondx, sc4_state, sc4mondx, ROT0, "Mazooma","Monopoly Deluxe (PR2202, MPDX 1.1) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4mondxd ,sc4mondx, sc4_3reel_200, sc4mondx, sc4_state, sc4mondx, ROT0, "Mazooma","Monopoly Deluxe (PR2202, MPDX 1.1) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// PR2202 MONOPOLY DELUXE MONOPOLY DELUXE MAZ MONOPOLY TRIPLE
+GAMEL( 200?, sc4mondxg ,sc4mondx, sc4_3reel_200, sc4mondx, sc4_state, sc4mondx, ROT0, "Mazooma","Monopoly Deluxe (PR2202, MPDX 1.1) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
// Plays without Top Box
-GAMEL( 200?, sc4mondxe ,sc4mondx, sc4_3reel_200, sc4mondx, sc4_state, sc4mondx, ROT0, "Mazooma","Monopoly Deluxe (PR2202, MPDX 1.1) (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// PR2202 MONOPOLY MONOPOLY TRIPLE MAZ MONOPOLY DELUXE
-GAMEL( 200?, sc4mondxf ,sc4mondx, sc4_3reel_200, sc4mondx, sc4_state, sc4mondx, ROT0, "Mazooma","Monopoly Deluxe (PR2202, MPDX 1.1) (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4mondxe ,sc4mondx, sc4_3reel_200, sc4mondx, sc4_state, sc4mondx, ROT0, "Mazooma","Monopoly Deluxe (PR2202, MPDX 1.1) (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// PR2202 MONOPOLY MONOPOLY TRIPLE MAZ MONOPOLY DELUXE
+GAMEL( 200?, sc4mondxf ,sc4mondx, sc4_3reel_200, sc4mondx, sc4_state, sc4mondx, ROT0, "Mazooma","Monopoly Deluxe (PR2202, MPDX 1.1) (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
// Waits for Top Box
-GAMEL( 200?, sc4mondx ,0, sc4_3reel_200, sc4mondx, sc4_state, sc4mondx, ROT0, "Mazooma","Monopoly Deluxe (PR2202, MPDX 1.0) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// PR2202 MONOPOLY DELUXE MONOPOLY DELUXE MAZ MPDX SOUNDS MONOPOLY
-GAMEL( 200?, sc4mondxa ,sc4mondx, sc4_3reel_200, sc4mondx, sc4_state, sc4mondx, ROT0, "Mazooma","Monopoly Deluxe (PR2202, MPDX 1.0) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4mondx ,0, sc4_3reel_200, sc4mondx, sc4_state, sc4mondx, ROT0, "Mazooma","Monopoly Deluxe (PR2202, MPDX 1.0) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// PR2202 MONOPOLY DELUXE MONOPOLY DELUXE MAZ MPDX SOUNDS MONOPOLY
+GAMEL( 200?, sc4mondxa ,sc4mondx, sc4_3reel_200, sc4mondx, sc4_state, sc4mondx, ROT0, "Mazooma","Monopoly Deluxe (PR2202, MPDX 1.0) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
// Plays without Top Box
-GAMEL( 200?, sc4mondxb ,sc4mondx, sc4_3reel_200, sc4mondx, sc4_state, sc4mondx, ROT0, "Mazooma","Monopoly Deluxe (PR2202, MPDX 1.0) (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4mondxc ,sc4mondx, sc4_3reel_200, sc4mondx, sc4_state, sc4mondx, ROT0, "Mazooma","Monopoly Deluxe (PR2202, MPDX 1.0) (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4mondxb ,sc4mondx, sc4_3reel_200, sc4mondx, sc4_state, sc4mondx, ROT0, "Mazooma","Monopoly Deluxe (PR2202, MPDX 1.0) (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4mondxc ,sc4mondx, sc4_3reel_200, sc4mondx, sc4_state, sc4mondx, ROT0, "Mazooma","Monopoly Deluxe (PR2202, MPDX 1.0) (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
@@ -27995,16 +27995,16 @@ DRIVER_INIT_MEMBER(sc4_state,sc4mont)
// PR2510 MONTEGO PAY LOWTECHSND MONTEGO PAY
-GAMEL( 200?, sc4mont ,0, sc4, sc4mont, sc4_state, sc4mont, ROT0, "Qps","Montego Pay (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4monta ,sc4mont, sc4, sc4mont, sc4_state, sc4mont, ROT0, "Qps","Montego Pay (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4montb ,sc4mont, sc4, sc4mont, sc4_state, sc4mont, ROT0, "Qps","Montego Pay (Qps) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4montc ,sc4mont, sc4, sc4mont, sc4_state, sc4mont, ROT0, "Qps","Montego Pay (Qps) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4montd ,sc4mont, sc4, sc4mont, sc4_state, sc4mont, ROT0, "Qps","Montego Pay (Qps) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4monte ,sc4mont, sc4, sc4mont, sc4_state, sc4mont, ROT0, "Qps","Montego Pay (Qps) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4montf ,sc4mont, sc4, sc4mont, sc4_state, sc4mont, ROT0, "Qps","Montego Pay (Qps) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4montg ,sc4mont, sc4, sc4mont, sc4_state, sc4mont, ROT0, "Qps","Montego Pay (Qps) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4month ,sc4mont, sc4, sc4mont, sc4_state, sc4mont, ROT0, "Qps","Montego Pay (Qps) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4monti ,sc4mont, sc4, sc4mont, sc4_state, sc4mont, ROT0, "Qps","Montego Pay (Qps) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mont ,0, sc4, sc4mont, sc4_state, sc4mont, ROT0, "Qps","Montego Pay (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4monta ,sc4mont, sc4, sc4mont, sc4_state, sc4mont, ROT0, "Qps","Montego Pay (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4montb ,sc4mont, sc4, sc4mont, sc4_state, sc4mont, ROT0, "Qps","Montego Pay (Qps) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4montc ,sc4mont, sc4, sc4mont, sc4_state, sc4mont, ROT0, "Qps","Montego Pay (Qps) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4montd ,sc4mont, sc4, sc4mont, sc4_state, sc4mont, ROT0, "Qps","Montego Pay (Qps) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4monte ,sc4mont, sc4, sc4mont, sc4_state, sc4mont, ROT0, "Qps","Montego Pay (Qps) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4montf ,sc4mont, sc4, sc4mont, sc4_state, sc4mont, ROT0, "Qps","Montego Pay (Qps) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4montg ,sc4mont, sc4, sc4mont, sc4_state, sc4mont, ROT0, "Qps","Montego Pay (Qps) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4month ,sc4mont, sc4, sc4mont, sc4_state, sc4mont, ROT0, "Qps","Montego Pay (Qps) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4monti ,sc4mont, sc4, sc4mont, sc4_state, sc4mont, ROT0, "Qps","Montego Pay (Qps) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -28064,9 +28064,9 @@ INPUT_PORTS_START( sc4mou ) // this structure is generated
INPUT_PORTS_END
// PR2523 MOVE ON UP V1.0 MOVEONUPSND MOVE ON UP
-GAMEL( 200?, sc4mou ,0, sc4_4reel_alt, sc4mou, sc4_state, sc4mou, ROT0, "Qps","Move On Up (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4moua ,sc4mou, sc4_4reel_alt, sc4mou, sc4_state, sc4mou, ROT0, "Qps","Move On Up (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4moub ,sc4mou, sc4_4reel_alt, sc4mou, sc4_state, sc4mou, ROT0, "Qps","Move On Up (Qps) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mou ,0, sc4_4reel_alt, sc4mou, sc4_state, sc4mou, ROT0, "Qps","Move On Up (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4moua ,sc4mou, sc4_4reel_alt, sc4mou, sc4_state, sc4mou, ROT0, "Qps","Move On Up (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4moub ,sc4mou, sc4_4reel_alt, sc4mou, sc4_state, sc4mou, ROT0, "Qps","Move On Up (Qps) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4nmtj)
@@ -28127,11 +28127,11 @@ INPUT_PORTS_START( sc4nmtj ) // this structure is generated
INPUT_PORTS_END
// PR2171 NEVER MIND JPS NMTJ SOUNDS NEVER MIND JPS
-GAMEL( 200?, sc4nmtj ,0, sc4_200_4ra, sc4nmtj, sc4_state, sc4nmtj, ROT0, "Mazooma","Never Mind The Jackpots (Mazooma) (Scorpion 4) (011)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4nmtja ,sc4nmtj, sc4_200_4ra, sc4nmtj, sc4_state, sc4nmtj, ROT0, "Mazooma","Never Mind The Jackpots (Mazooma) (Scorpion 4) (014, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4nmtjc ,sc4nmtj, sc4_200_4ra, sc4nmtj, sc4_state, sc4nmtj, ROT0, "Mazooma","Never Mind The Jackpots (Mazooma) (Scorpion 4) (014, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4nmtjb ,sc4nmtj, sc4_200_4ra, sc4nmtj, sc4_state, sc4nmtj, ROT0, "Mazooma","Never Mind The Jackpots (Mazooma) (Scorpion 4) (044, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4nmtjd ,sc4nmtj, sc4_200_4ra, sc4nmtj, sc4_state, sc4nmtj, ROT0, "Mazooma","Never Mind The Jackpots (Mazooma) (Scorpion 4) (044, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4nmtj ,0, sc4_200_4ra, sc4nmtj, sc4_state, sc4nmtj, ROT0, "Mazooma","Never Mind The Jackpots (Mazooma) (Scorpion 4) (011)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4nmtja ,sc4nmtj, sc4_200_4ra, sc4nmtj, sc4_state, sc4nmtj, ROT0, "Mazooma","Never Mind The Jackpots (Mazooma) (Scorpion 4) (014, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4nmtjc ,sc4nmtj, sc4_200_4ra, sc4nmtj, sc4_state, sc4nmtj, ROT0, "Mazooma","Never Mind The Jackpots (Mazooma) (Scorpion 4) (014, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4nmtjb ,sc4nmtj, sc4_200_4ra, sc4nmtj, sc4_state, sc4nmtj, ROT0, "Mazooma","Never Mind The Jackpots (Mazooma) (Scorpion 4) (044, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4nmtjd ,sc4nmtj, sc4_200_4ra, sc4nmtj, sc4_state, sc4nmtj, ROT0, "Mazooma","Never Mind The Jackpots (Mazooma) (Scorpion 4) (044, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4oyf)
@@ -28203,8 +28203,8 @@ INPUT_PORTS_START( sc4oyf ) // this structure is generated
INPUT_PORTS_END
// PR1310 AWP OFF YOUR FACE PR1310 OFF YOUR FACE SOUNDS11
-GAMEL( 200?, sc4oyf ,0, sc4_4reel_alt, sc4oyf, sc4_state, sc4oyf, ROT0, "BFM","Off Your Face (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4oyfa ,sc4oyf, sc4_4reel_alt, sc4oyf, sc4_state, sc4oyf, ROT0, "BFM","Off Your Face (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4oyf ,0, sc4_4reel_alt, sc4oyf, sc4_state, sc4oyf, ROT0, "BFM","Off Your Face (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4oyfa ,sc4oyf, sc4_4reel_alt, sc4oyf, sc4_state, sc4oyf, ROT0, "BFM","Off Your Face (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -28276,8 +28276,8 @@ INPUT_PORTS_START( sc4opses ) // this structure is generated
INPUT_PORTS_END
// PR1106 OPEN SESAME PR1106 OPEN SESAME SOUNDS11
-GAMEL( 200?, sc4opses ,0, sc4_200_5r, sc4opses, sc4_state, sc4opses, ROT0, "BFM","Open Sesame (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4opsesa ,sc4opses, sc4_200_5r, sc4opses, sc4_state, sc4opses, ROT0, "BFM","Open Sesame (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4opses ,0, sc4_200_5r, sc4opses, sc4_state, sc4opses, ROT0, "BFM","Open Sesame (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4opsesa ,sc4opses, sc4_200_5r, sc4opses, sc4_state, sc4opses, ROT0, "BFM","Open Sesame (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4paccl)
@@ -28334,10 +28334,10 @@ INPUT_PORTS_START( sc4paccl ) // this structure is generated
INPUT_PORTS_END
// PR2018 PACMAN CLUB CLUB PACMAN SOUNDS PACMAN C L U B
-GAMEL( 200?, sc4paccl ,0, sc4_5reel, sc4paccl, sc4_state, sc4paccl, ROT0, "Mazooma","Pac Man Club (PR2018, CPAC) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4paccla ,sc4paccl, sc4_5reel, sc4paccl, sc4_state, sc4paccl, ROT0, "Mazooma","Pac Man Club (PR2018, CPAC) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pacclb ,sc4paccl, sc4_5reel, sc4paccl, sc4_state, sc4paccl, ROT0, "Mazooma","Pac Man Club (PR2018, CPAC) (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pacclc ,sc4paccl, sc4_5reel, sc4paccl, sc4_state, sc4paccl, ROT0, "Mazooma","Pac Man Club (PR2018, CPAC) (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4paccl ,0, sc4_5reel, sc4paccl, sc4_state, sc4paccl, ROT0, "Mazooma","Pac Man Club (PR2018, CPAC) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4paccla ,sc4paccl, sc4_5reel, sc4paccl, sc4_state, sc4paccl, ROT0, "Mazooma","Pac Man Club (PR2018, CPAC) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pacclb ,sc4paccl, sc4_5reel, sc4paccl, sc4_state, sc4paccl, ROT0, "Mazooma","Pac Man Club (PR2018, CPAC) (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pacclc ,sc4paccl, sc4_5reel, sc4paccl, sc4_state, sc4paccl, ROT0, "Mazooma","Pac Man Club (PR2018, CPAC) (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// REEL 4 ERR 24 (what type should be here??)
@@ -28395,8 +28395,8 @@ INPUT_PORTS_END
// REEL 4 ERR 24
// PR2031 PACMANIA ANIA SOUNDS PACMANIA
-GAMEL( 200?, sc4pmani ,0, sc4_200_4rb, sc4pmani, sc4_state, sc4pmani, ROT0, "Mazooma","Pac Mania (PR2031, ANIA) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pmania ,sc4pmani, sc4_200_4rb, sc4pmani, sc4_state, sc4pmani, ROT0, "Mazooma","Pac Mania (PR2031, ANIA) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pmani ,0, sc4_200_4rb, sc4pmani, sc4_state, sc4pmani, ROT0, "Mazooma","Pac Mania (PR2031, ANIA) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pmania ,sc4pmani, sc4_200_4rb, sc4pmani, sc4_state, sc4pmani, ROT0, "Mazooma","Pac Mania (PR2031, ANIA) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4pgold)
@@ -28467,12 +28467,12 @@ INPUT_PORTS_START( sc4pgold ) // this structure is generated
INPUT_PORTS_END
// PR1012 PHARAOH'S GOLD PR1012 PHARAOHS GOLD SOUNDS11
-GAMEL( 200?, sc4pgold ,0, sc4_200_5r, sc4pgold, sc4_state, sc4pgold, ROT0, "BFM","Pharaoh's Gold (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pgolda ,sc4pgold, sc4_200_5r, sc4pgold, sc4_state, sc4pgold, ROT0, "BFM","Pharaoh's Gold (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pgoldb ,sc4pgold, sc4_200_5r, sc4pgold, sc4_state, sc4pgold, ROT0, "BFM","Pharaoh's Gold (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pgoldc ,sc4pgold, sc4_200_5r, sc4pgold, sc4_state, sc4pgold, ROT0, "BFM","Pharaoh's Gold (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pgoldd ,sc4pgold, sc4_200_5r, sc4pgold, sc4_state, sc4pgold, ROT0, "BFM","Pharaoh's Gold (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pgoldf ,sc4pgold, sc4_200_5r, sc4pgold, sc4_state, sc4pgold, ROT0, "BFM","Pharaoh's Gold (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pgold ,0, sc4_200_5r, sc4pgold, sc4_state, sc4pgold, ROT0, "BFM","Pharaoh's Gold (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pgolda ,sc4pgold, sc4_200_5r, sc4pgold, sc4_state, sc4pgold, ROT0, "BFM","Pharaoh's Gold (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pgoldb ,sc4pgold, sc4_200_5r, sc4pgold, sc4_state, sc4pgold, ROT0, "BFM","Pharaoh's Gold (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pgoldc ,sc4pgold, sc4_200_5r, sc4pgold, sc4_state, sc4pgold, ROT0, "BFM","Pharaoh's Gold (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pgoldd ,sc4pgold, sc4_200_5r, sc4pgold, sc4_state, sc4pgold, ROT0, "BFM","Pharaoh's Gold (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pgoldf ,sc4pgold, sc4_200_5r, sc4pgold, sc4_state, sc4pgold, ROT0, "BFM","Pharaoh's Gold (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -28532,11 +28532,11 @@ INPUT_PORTS_START( sc4ppclb ) // this structure is generated
INPUT_PORTS_END
// PR2236 CLUB PINK PANTHER 411 CLUBPINKPANTHERSND CLUB PINKPANTHER
-GAMEL( 200?, sc4ppclb ,0, sc4, sc4ppclb, sc4_state, sc4ppclb, ROT0, "Qps","Pink Panther Club (411) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // also in a set marked 'Pink Pannther Think Pink'
-GAMEL( 200?, sc4ppclbb ,sc4ppclb, sc4, sc4ppclb, sc4_state, sc4ppclb, ROT0, "Qps","Pink Panther Club (411) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppclb ,0, sc4, sc4ppclb, sc4_state, sc4ppclb, ROT0, "Qps","Pink Panther Club (411) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // also in a set marked 'Pink Pannther Think Pink'
+GAMEL( 200?, sc4ppclbb ,sc4ppclb, sc4, sc4ppclb, sc4_state, sc4ppclb, ROT0, "Qps","Pink Panther Club (411) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2236 CLUB PINK PANTHER 412 CLUBPINKPANTHERSND CLUB PINKPANTHER
-GAMEL( 200?, sc4ppclba ,sc4ppclb, sc4, sc4ppclb, sc4_state, sc4ppclb, ROT0, "Qps","Pink Panther Club (412) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ppclbc ,sc4ppclb, sc4, sc4ppclb, sc4_state, sc4ppclb, ROT0, "Qps","Pink Panther Club (412) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppclba ,sc4ppclb, sc4, sc4ppclb, sc4_state, sc4ppclb, ROT0, "Qps","Pink Panther Club (412) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppclbc ,sc4ppclb, sc4, sc4ppclb, sc4_state, sc4ppclb, ROT0, "Qps","Pink Panther Club (412) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4pipe)
@@ -28592,8 +28592,8 @@ INPUT_PORTS_START( sc4pipe ) // this structure is generated
INPUT_PORTS_END
// PR2110 PIPING HOT PIPE SOUNDS PIPING HOT
-GAMEL( 200?, sc4pipe ,0, sc4_4reel_alt, sc4pipe, sc4_state, sc4pipe, ROT0, "Mazooma","Piping Hot (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pipea ,sc4pipe, sc4_4reel_alt, sc4pipe, sc4_state, sc4pipe, ROT0, "Mazooma","Piping Hot (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pipe ,0, sc4_4reel_alt, sc4pipe, sc4_state, sc4pipe, ROT0, "Mazooma","Piping Hot (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pipea ,sc4pipe, sc4_4reel_alt, sc4pipe, sc4_state, sc4pipe, ROT0, "Mazooma","Piping Hot (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4plumb)
{
@@ -28647,14 +28647,14 @@ INPUT_PORTS_START( sc4plumb ) // this structure is generated
INPUT_PORTS_END
// QPS142 CLUB PLUMB CRAZY 413 CLUBPLUMBCRAZYSND CLUB PLUMB CRAZY
-GAMEL( 200?, sc4plumb ,0, sc4_5reel, sc4plumb, sc4_state, sc4plumb, ROT0, "Qps","Plumb Crazy Club (413) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4plumba ,sc4plumb, sc4_5reel, sc4plumb, sc4_state, sc4plumb, ROT0, "Qps","Plumb Crazy Club (413) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4plumb ,0, sc4_5reel, sc4plumb, sc4_state, sc4plumb, ROT0, "Qps","Plumb Crazy Club (413) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4plumba ,sc4plumb, sc4_5reel, sc4plumb, sc4_state, sc4plumb, ROT0, "Qps","Plumb Crazy Club (413) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// QPS142 CLUB PLUMB CRAZY 411 CLUBPLUMBCRAZYSND CLUB PLUMB CRAZY
-GAMEL( 200?, sc4plumbb ,sc4plumb, sc4_5reel, sc4plumb, sc4_state, sc4plumb, ROT0, "Qps","Plumb Crazy Club (411) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4plumbc ,sc4plumb, sc4_5reel, sc4plumb, sc4_state, sc4plumb, ROT0, "Qps","Plumb Crazy Club (411) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4plumbb ,sc4plumb, sc4_5reel, sc4plumb, sc4_state, sc4plumb, ROT0, "Qps","Plumb Crazy Club (411) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4plumbc ,sc4plumb, sc4_5reel, sc4plumb, sc4_state, sc4plumb, ROT0, "Qps","Plumb Crazy Club (411) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// QPS142 CLUB PLUMB CRAZY 412 CLUBPLUMBCRAZYSND CLUB PLUMB CRAZY
-GAMEL( 200?, sc4plumbd ,sc4plumb, sc4_5reel, sc4plumb, sc4_state, sc4plumb, ROT0, "Qps","Plumb Crazy Club (412) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4plumbe ,sc4plumb, sc4_5reel, sc4plumb, sc4_state, sc4plumb, ROT0, "Qps","Plumb Crazy Club (412) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4plumbd ,sc4plumb, sc4_5reel, sc4plumb, sc4_state, sc4plumb, ROT0, "Qps","Plumb Crazy Club (412) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4plumbe ,sc4plumb, sc4_5reel, sc4plumb, sc4_state, sc4plumb, ROT0, "Qps","Plumb Crazy Club (412) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4polic)
@@ -28704,11 +28704,11 @@ INPUT_PORTS_START( sc4polic ) // this structure is generated
INPUT_PORTS_END
// PR2514 POLICE SQUID V1.0 POLICESQUIDSND POLICE SQUID
-GAMEL( 200?, sc4polic ,0, sc4_5reel, sc4polic, sc4_state, sc4polic, ROT0, "Qps","Police Squid (V1.0) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4policb ,sc4polic, sc4_5reel, sc4polic, sc4_state, sc4polic, ROT0, "Qps","Police Squid (V1.0) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4polic ,0, sc4_5reel, sc4polic, sc4_state, sc4polic, ROT0, "Qps","Police Squid (V1.0) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4policb ,sc4polic, sc4_5reel, sc4polic, sc4_state, sc4polic, ROT0, "Qps","Police Squid (V1.0) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2514 POLICE SQUID V2.0 POLICESQUIDSND POLICE SQUID
-GAMEL( 200?, sc4polica ,sc4polic, sc4_5reel, sc4polic, sc4_state, sc4polic, ROT0, "Qps","Police Squid (V2.0) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4policc ,sc4polic, sc4_5reel, sc4polic, sc4_state, sc4polic, ROT0, "Qps","Police Squid (V2.0) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4polica ,sc4polic, sc4_5reel, sc4polic, sc4_state, sc4polic, ROT0, "Qps","Police Squid (V2.0) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4policc ,sc4polic, sc4_5reel, sc4polic, sc4_state, sc4polic, ROT0, "Qps","Police Squid (V2.0) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -28761,8 +28761,8 @@ INPUT_PORTS_START( sc4potsh ) // this structure is generated
INPUT_PORTS_END
// QPS143 POT SHOT V1.0 POTSHOTSND POT SHOT
-GAMEL( 200?, sc4potsh ,0, sc4_4reel, sc4potsh, sc4_state, sc4potsh, ROT0, "Qps","Pot Shot (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4potsha ,sc4potsh, sc4_4reel, sc4potsh, sc4_state, sc4potsh, ROT0, "Qps","Pot Shot (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4potsh ,0, sc4_4reel, sc4potsh, sc4_state, sc4potsh, ROT0, "Qps","Pot Shot (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4potsha ,sc4potsh, sc4_4reel, sc4potsh, sc4_state, sc4potsh, ROT0, "Qps","Pot Shot (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4pogbl)
@@ -28826,12 +28826,12 @@ INPUT_PORTS_START( sc4pogbl ) // this structure is generated
INPUT_PORTS_END
// PR3083 CLUB POTS OF GOLD POTS OF GOLD CLUB PR3082 C POTS OF GOLD SOUNDS11 POTS OF GOLD
-GAMEL( 200?, sc4pogbl ,0, sc4_5reel, sc4pogbl, sc4_state, sc4pogbl, ROT0, "BFM","Pots Of Gold Club (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pogbla ,sc4pogbl, sc4_5reel, sc4pogbl, sc4_state, sc4pogbl, ROT0, "BFM","Pots Of Gold Club (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pogblb ,sc4pogbl, sc4_5reel, sc4pogbl, sc4_state, sc4pogbl, ROT0, "BFM","Pots Of Gold Club (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pogblc ,sc4pogbl, sc4_5reel, sc4pogbl, sc4_state, sc4pogbl, ROT0, "BFM","Pots Of Gold Club (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pogbld ,sc4pogbl, sc4_5reel, sc4pogbl, sc4_state, sc4pogbl, ROT0, "BFM","Pots Of Gold Club (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pogble ,sc4pogbl, sc4_5reel, sc4pogbl, sc4_state, sc4pogbl, ROT0, "BFM","Pots Of Gold Club (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pogbl ,0, sc4_5reel, sc4pogbl, sc4_state, sc4pogbl, ROT0, "BFM","Pots Of Gold Club (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pogbla ,sc4pogbl, sc4_5reel, sc4pogbl, sc4_state, sc4pogbl, ROT0, "BFM","Pots Of Gold Club (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pogblb ,sc4pogbl, sc4_5reel, sc4pogbl, sc4_state, sc4pogbl, ROT0, "BFM","Pots Of Gold Club (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pogblc ,sc4pogbl, sc4_5reel, sc4pogbl, sc4_state, sc4pogbl, ROT0, "BFM","Pots Of Gold Club (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pogbld ,sc4pogbl, sc4_5reel, sc4pogbl, sc4_state, sc4pogbl, ROT0, "BFM","Pots Of Gold Club (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pogble ,sc4pogbl, sc4_5reel, sc4pogbl, sc4_state, sc4pogbl, ROT0, "BFM","Pots Of Gold Club (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4pwrsg)
{
@@ -28883,10 +28883,10 @@ INPUT_PORTS_START( sc4pwrsg ) // this structure is generated
INPUT_PORTS_END
// PR2053 POWERSURGE SURGESND POWERSURGE
-GAMEL( 200?, sc4pwrsg ,0, sc4_200_5r, sc4pwrsg, sc4_state, sc4pwrsg, ROT0, "Qps","Power Surge (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pwrsga ,sc4pwrsg, sc4_200_5r, sc4pwrsg, sc4_state, sc4pwrsg, ROT0, "Qps","Power Surge (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pwrsgb ,sc4pwrsg, sc4_200_5r, sc4pwrsg, sc4_state, sc4pwrsg, ROT0, "Qps","Power Surge (Qps) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pwrsgc ,sc4pwrsg, sc4_200_5r, sc4pwrsg, sc4_state, sc4pwrsg, ROT0, "Qps","Power Surge (Qps) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pwrsg ,0, sc4_200_5r, sc4pwrsg, sc4_state, sc4pwrsg, ROT0, "Qps","Power Surge (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pwrsga ,sc4pwrsg, sc4_200_5r, sc4pwrsg, sc4_state, sc4pwrsg, ROT0, "Qps","Power Surge (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pwrsgb ,sc4pwrsg, sc4_200_5r, sc4pwrsg, sc4_state, sc4pwrsg, ROT0, "Qps","Power Surge (Qps) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pwrsgc ,sc4pwrsg, sc4_200_5r, sc4pwrsg, sc4_state, sc4pwrsg, ROT0, "Qps","Power Surge (Qps) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4pir)
@@ -28957,14 +28957,14 @@ INPUT_PORTS_START( sc4pir ) // this structure is generated
INPUT_PORTS_END
// PR1303 THE PRIZE IS RIGHT PR1303 T PRIZE I R SOUNDS11
-GAMEL( 200?, sc4pir ,0, sc4_200_5r, sc4pir, sc4_state, sc4pir, ROT0, "BFM","The Prize Is Right (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pira ,sc4pir, sc4_200_5r, sc4pir, sc4_state, sc4pir, ROT0, "BFM","The Prize Is Right (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pirb ,sc4pir, sc4_200_5r, sc4pir, sc4_state, sc4pir, ROT0, "BFM","The Prize Is Right (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pirc ,sc4pir, sc4_200_5r, sc4pir, sc4_state, sc4pir, ROT0, "BFM","The Prize Is Right (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pird ,sc4pir, sc4_200_5r, sc4pir, sc4_state, sc4pir, ROT0, "BFM","The Prize Is Right (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pire ,sc4pir, sc4_200_5r, sc4pir, sc4_state, sc4pir, ROT0, "BFM","The Prize Is Right (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pirf ,sc4pir, sc4_200_5r, sc4pir, sc4_state, sc4pir, ROT0, "BFM","The Prize Is Right (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pirg ,sc4pir, sc4_200_5r, sc4pir, sc4_state, sc4pir, ROT0, "BFM","The Prize Is Right (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pir ,0, sc4_200_5r, sc4pir, sc4_state, sc4pir, ROT0, "BFM","The Prize Is Right (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pira ,sc4pir, sc4_200_5r, sc4pir, sc4_state, sc4pir, ROT0, "BFM","The Prize Is Right (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pirb ,sc4pir, sc4_200_5r, sc4pir, sc4_state, sc4pir, ROT0, "BFM","The Prize Is Right (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pirc ,sc4pir, sc4_200_5r, sc4pir, sc4_state, sc4pir, ROT0, "BFM","The Prize Is Right (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pird ,sc4pir, sc4_200_5r, sc4pir, sc4_state, sc4pir, ROT0, "BFM","The Prize Is Right (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pire ,sc4pir, sc4_200_5r, sc4pir, sc4_state, sc4pir, ROT0, "BFM","The Prize Is Right (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pirf ,sc4pir, sc4_200_5r, sc4pir, sc4_state, sc4pir, ROT0, "BFM","The Prize Is Right (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pirg ,sc4pir, sc4_200_5r, sc4pir, sc4_state, sc4pir, ROT0, "BFM","The Prize Is Right (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4qmodo)
@@ -29011,11 +29011,11 @@ INPUT_PORTS_START( sc4qmodo ) // this structure is generated
INPUT_PORTS_END
// QUAZZI MO' DOUGH..........QUAZZSND....... (no standard header)
-GAMEL( 200?, sc4qmodo , 0, sc4_4reel, sc4qmodo, sc4_state, sc4qmodo, ROT0, "Qps","Quazzi Mo' Dough (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4qmodoa ,sc4qmodo, sc4_4reel, sc4qmodo, sc4_state, sc4qmodo, ROT0, "Qps","Quazzi Mo' Dough (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4qmodob ,sc4qmodo, sc4_4reel, sc4qmodo, sc4_state, sc4qmodo, ROT0, "Qps","Quazzi Mo' Dough (Qps) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4qmodoc ,sc4qmodo, sc4_4reel, sc4qmodo, sc4_state, sc4qmodo, ROT0, "Qps","Quazzi Mo' Dough (Qps) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4qmodod ,sc4qmodo, sc4_4reel, sc4qmodo, sc4_state, sc4qmodo, ROT0, "Qps","Quazzi Mo' Dough (Qps) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4qmodo , 0, sc4_4reel, sc4qmodo, sc4_state, sc4qmodo, ROT0, "Qps","Quazzi Mo' Dough (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4qmodoa ,sc4qmodo, sc4_4reel, sc4qmodo, sc4_state, sc4qmodo, ROT0, "Qps","Quazzi Mo' Dough (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4qmodob ,sc4qmodo, sc4_4reel, sc4qmodo, sc4_state, sc4qmodo, ROT0, "Qps","Quazzi Mo' Dough (Qps) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4qmodoc ,sc4qmodo, sc4_4reel, sc4qmodo, sc4_state, sc4qmodo, ROT0, "Qps","Quazzi Mo' Dough (Qps) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4qmodod ,sc4qmodo, sc4_4reel, sc4qmodo, sc4_state, sc4qmodo, ROT0, "Qps","Quazzi Mo' Dough (Qps) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -29069,10 +29069,10 @@ INPUT_PORTS_START( sc4quidr ) // this structure is generated
// 0x0010 - "hopdmp" // standard input (expected here)
INPUT_PORTS_END
-GAMEL( 200?, sc4quidr ,0, sc4_4reel, sc4quidr, sc4_state, sc4quidr, ROT0, "Qps","Quid Rock (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4quidra ,sc4quidr, sc4_4reel, sc4quidr, sc4_state, sc4quidr, ROT0, "Qps","Quid Rock (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4quidrb ,sc4quidr, sc4_4reel, sc4quidr, sc4_state, sc4quidr, ROT0, "Qps","Quid Rock (Qps) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4quidrc ,sc4quidr, sc4_4reel, sc4quidr, sc4_state, sc4quidr, ROT0, "Qps","Quid Rock (Qps) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4quidr ,0, sc4_4reel, sc4quidr, sc4_state, sc4quidr, ROT0, "Qps","Quid Rock (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4quidra ,sc4quidr, sc4_4reel, sc4quidr, sc4_state, sc4quidr, ROT0, "Qps","Quid Rock (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4quidrb ,sc4quidr, sc4_4reel, sc4quidr, sc4_state, sc4quidr, ROT0, "Qps","Quid Rock (Qps) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4quidrc ,sc4quidr, sc4_4reel, sc4quidr, sc4_state, sc4quidr, ROT0, "Qps","Quid Rock (Qps) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4rdrag)
@@ -29127,11 +29127,11 @@ INPUT_PORTS_START( sc4rdrag ) // this structure is generated
INPUT_PORTS_END
// PR2542 RED DRAGON 011 REDDRAGONSND RED DRAGON
-GAMEL( 200?, sc4rdrag ,0, sc4_5reel, sc4rdrag, sc4_state, sc4rdrag, ROT0, "Qps","Red Dragon (011) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rdraga ,sc4rdrag, sc4_5reel, sc4rdrag, sc4_state, sc4rdrag, ROT0, "Qps","Red Dragon (011) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rdrag ,0, sc4_5reel, sc4rdrag, sc4_state, sc4rdrag, ROT0, "Qps","Red Dragon (011) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rdraga ,sc4rdrag, sc4_5reel, sc4rdrag, sc4_state, sc4rdrag, ROT0, "Qps","Red Dragon (011) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2542 RED DRAGON 021 REDDRAGONSND RED DRAGON
-GAMEL( 200?, sc4rdragc ,sc4rdrag, sc4_5reel, sc4rdrag, sc4_state, sc4rdrag, ROT0, "Qps","Red Dragon (021) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rdragf ,sc4rdrag, sc4_5reel, sc4rdrag, sc4_state, sc4rdrag, ROT0, "Qps","Red Dragon (021) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rdragc ,sc4rdrag, sc4_5reel, sc4rdrag, sc4_state, sc4rdrag, ROT0, "Qps","Red Dragon (021) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rdragf ,sc4rdrag, sc4_5reel, sc4rdrag, sc4_state, sc4rdrag, ROT0, "Qps","Red Dragon (021) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4rdrcl)
@@ -29187,10 +29187,10 @@ INPUT_PORTS_START( sc4rdrcl ) // this structure is generated
INPUT_PORTS_END
// QPS160 CLUB RED DRAGON 411 CLUBREDDRAGONSND CLUB RED DRAGON
-GAMEL( 200?, sc4rdrcl ,0, sc4_5reel, sc4rdrcl, sc4_state, sc4rdrcl, ROT0, "Qps","Red Dragon Club (411) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rdrclb ,sc4rdrcl, sc4_5reel, sc4rdrcl, sc4_state, sc4rdrcl, ROT0, "Qps","Red Dragon Club (411) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rdrcl ,0, sc4_5reel, sc4rdrcl, sc4_state, sc4rdrcl, ROT0, "Qps","Red Dragon Club (411) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rdrclb ,sc4rdrcl, sc4_5reel, sc4rdrcl, sc4_state, sc4rdrcl, ROT0, "Qps","Red Dragon Club (411) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// QPS160 CLUB RED DRAGON 412 CLUBREDDRAGONSND CLUB RED DRAGON
-GAMEL( 200?, sc4rdrcla ,sc4rdrcl, sc4_5reel, sc4rdrcl, sc4_state, sc4rdrcl, ROT0, "Qps","Red Dragon Club (412) (Qps) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rdrcla ,sc4rdrcl, sc4_5reel, sc4rdrcl, sc4_state, sc4rdrcl, ROT0, "Qps","Red Dragon Club (412) (Qps) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4relcz)
@@ -29261,10 +29261,10 @@ INPUT_PORTS_START( sc4relcz ) // this structure is generated
INPUT_PORTS_END
// PR1015 REELY CRAZY PR1015 REELY CRAZY SOUNDS11
-GAMEL( 200?, sc4relcz ,0, sc4_4reel, sc4relcz, sc4_state, sc4relcz, ROT0, "BFM","Reely Crazy (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4relcza ,sc4relcz, sc4_4reel, sc4relcz, sc4_state, sc4relcz, ROT0, "BFM","Reely Crazy (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4relczb ,sc4relcz, sc4_4reel, sc4relcz, sc4_state, sc4relcz, ROT0, "BFM","Reely Crazy (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4relczc ,sc4relcz, sc4_4reel, sc4relcz, sc4_state, sc4relcz, ROT0, "BFM","Reely Crazy (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4relcz ,0, sc4_4reel, sc4relcz, sc4_state, sc4relcz, ROT0, "BFM","Reely Crazy (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4relcza ,sc4relcz, sc4_4reel, sc4relcz, sc4_state, sc4relcz, ROT0, "BFM","Reely Crazy (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4relczb ,sc4relcz, sc4_4reel, sc4relcz, sc4_state, sc4relcz, ROT0, "BFM","Reely Crazy (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4relczc ,sc4relcz, sc4_4reel, sc4relcz, sc4_state, sc4relcz, ROT0, "BFM","Reely Crazy (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4rotc)
@@ -29319,11 +29319,11 @@ INPUT_PORTS_START( sc4rotc ) // this structure is generated
INPUT_PORTS_END
// PR2132 RETURN OF THE COUNT ROTC SOUNDS THE COUNT
-GAMEL( 200?, sc4rotc ,0, sc4_4reel_alt, sc4rotc, sc4_state, sc4rotc, ROT0, "Mazooma","Return Of The Count (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rotca ,sc4rotc, sc4_4reel_alt, sc4rotc, sc4_state, sc4rotc, ROT0, "Mazooma","Return Of The Count (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rotcb ,sc4rotc, sc4_4reel_alt, sc4rotc, sc4_state, sc4rotc, ROT0, "Mazooma","Return Of The Count (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rotcc ,sc4rotc, sc4_4reel_alt, sc4rotc, sc4_state, sc4rotc, ROT0, "Mazooma","Return Of The Count (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rotcd ,sc4rotc, sc4_4reel_alt, sc4rotc, sc4_state, sc4rotc, ROT0, "Mazooma","Return Of The Count (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rotc ,0, sc4_4reel_alt, sc4rotc, sc4_state, sc4rotc, ROT0, "Mazooma","Return Of The Count (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rotca ,sc4rotc, sc4_4reel_alt, sc4rotc, sc4_state, sc4rotc, ROT0, "Mazooma","Return Of The Count (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rotcb ,sc4rotc, sc4_4reel_alt, sc4rotc, sc4_state, sc4rotc, ROT0, "Mazooma","Return Of The Count (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rotcc ,sc4rotc, sc4_4reel_alt, sc4rotc, sc4_state, sc4rotc, ROT0, "Mazooma","Return Of The Count (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rotcd ,sc4rotc, sc4_4reel_alt, sc4rotc, sc4_state, sc4rotc, ROT0, "Mazooma","Return Of The Count (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4rttt)
@@ -29380,12 +29380,12 @@ INPUT_PORTS_START( sc4rttt ) // this structure is generated
INPUT_PORTS_END
// PR2089 RISE TO THE TOP RISE SOUNDS RISE TO THE TOP
-GAMEL( 200?, sc4rttt ,0, sc4_4reel_alt, sc4rttt, sc4_state, sc4rttt, ROT0, "Mazooma","Rise To The Top (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rttta ,sc4rttt, sc4_4reel_alt, sc4rttt, sc4_state, sc4rttt, ROT0, "Mazooma","Rise To The Top (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rtttb ,sc4rttt, sc4_4reel_alt, sc4rttt, sc4_state, sc4rttt_mbus, ROT0, "Mazooma","Rise To The Top (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rtttc ,sc4rttt, sc4_4reel_alt, sc4rttt, sc4_state, sc4rttt_mbus, ROT0, "Mazooma","Rise To The Top (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rtttd ,sc4rttt, sc4_4reel_alt, sc4rttt, sc4_state, sc4rttt_mbus, ROT0, "Mazooma","Rise To The Top (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rttte ,sc4rttt, sc4_4reel_alt, sc4rttt, sc4_state, sc4rttt_mbus, ROT0, "Mazooma","Rise To The Top (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rttt ,0, sc4_4reel_alt, sc4rttt, sc4_state, sc4rttt, ROT0, "Mazooma","Rise To The Top (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rttta ,sc4rttt, sc4_4reel_alt, sc4rttt, sc4_state, sc4rttt, ROT0, "Mazooma","Rise To The Top (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rtttb ,sc4rttt, sc4_4reel_alt, sc4rttt, sc4_state, sc4rttt_mbus, ROT0, "Mazooma","Rise To The Top (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rtttc ,sc4rttt, sc4_4reel_alt, sc4rttt, sc4_state, sc4rttt_mbus, ROT0, "Mazooma","Rise To The Top (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rtttd ,sc4rttt, sc4_4reel_alt, sc4rttt, sc4_state, sc4rttt_mbus, ROT0, "Mazooma","Rise To The Top (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rttte ,sc4rttt, sc4_4reel_alt, sc4rttt, sc4_state, sc4rttt_mbus, ROT0, "Mazooma","Rise To The Top (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4roksc)
{
@@ -29439,11 +29439,11 @@ INPUT_PORTS_START( sc4roksc ) // this structure is generated
INPUT_PORTS_END
// PR2527 ROCKET SCIENCE V1.1 ROCKETSCIENCESND ROCKET SCIENCE
-GAMEL( 200?, sc4roksc ,0, sc4_4reel_alt, sc4roksc, sc4_state, sc4roksc, ROT0, "Qps","Rocket Science (V1.1) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rokscb ,sc4roksc, sc4_4reel_alt, sc4roksc, sc4_state, sc4roksc, ROT0, "Qps","Rocket Science (V1.1) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4roksc ,0, sc4_4reel_alt, sc4roksc, sc4_state, sc4roksc, ROT0, "Qps","Rocket Science (V1.1) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rokscb ,sc4roksc, sc4_4reel_alt, sc4roksc, sc4_state, sc4roksc, ROT0, "Qps","Rocket Science (V1.1) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2527 ROCKET SCIENCE 011 ROCKETSCIENCESND ROCKET SCIENCE
-GAMEL( 200?, sc4roksca ,sc4roksc, sc4_4reel_alt, sc4roksc, sc4_state, sc4roksc, ROT0, "Qps","Rocket Science (011) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rokscc ,sc4roksc, sc4_4reel_alt, sc4roksc, sc4_state, sc4roksc, ROT0, "Qps","Rocket Science (011) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4roksca ,sc4roksc, sc4_4reel_alt, sc4roksc, sc4_state, sc4roksc, ROT0, "Qps","Rocket Science (011) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rokscc ,sc4roksc, sc4_4reel_alt, sc4roksc, sc4_state, sc4roksc, ROT0, "Qps","Rocket Science (011) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4blast)
{
@@ -29498,14 +29498,14 @@ INPUT_PORTS_END
// only starts 2nd time (requires valid ram?)
// PR2539 BLAST OFF011 ROCKETSCIENCESND BLAST OFF
-GAMEL( 200?, sc4blast ,0, sc4_4reel_alt, sc4blast, sc4_state, sc4blast, ROT0, "Qps","Blast Off (011) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4blastb ,sc4blast, sc4_4reel_alt, sc4blast, sc4_state, sc4blast, ROT0, "Qps","Blast Off (011) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4blast ,0, sc4_4reel_alt, sc4blast, sc4_state, sc4blast, ROT0, "Qps","Blast Off (011) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4blastb ,sc4blast, sc4_4reel_alt, sc4blast, sc4_state, sc4blast, ROT0, "Qps","Blast Off (011) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2539 BLAST OFF041 ROCKETSCIENCESND BLAST OFF
-GAMEL( 200?, sc4blasta ,sc4blast, sc4_4reel_alt, sc4blast, sc4_state, sc4blast, ROT0, "Qps","Blast Off (041) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4blastc ,sc4blast, sc4_4reel_alt, sc4blast, sc4_state, sc4blast, ROT0, "Qps","Blast Off (041) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4blasta ,sc4blast, sc4_4reel_alt, sc4blast, sc4_state, sc4blast, ROT0, "Qps","Blast Off (041) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4blastc ,sc4blast, sc4_4reel_alt, sc4blast, sc4_state, sc4blast, ROT0, "Qps","Blast Off (041) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2539 BLAST OFF 042 ROCKETSCIENCESND BLAST OFF
-GAMEL( 200?, sc4blastd ,sc4blast, sc4_4reel_alt, sc4blast, sc4_state, sc4blast, ROT0, "Qps","Blast Off (042) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4blaste ,sc4blast, sc4_4reel_alt, sc4blast, sc4_state, sc4blast, ROT0, "Qps","Blast Off (042) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4blastd ,sc4blast, sc4_4reel_alt, sc4blast, sc4_state, sc4blast, ROT0, "Qps","Blast Off (042) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4blaste ,sc4blast, sc4_4reel_alt, sc4blast, sc4_state, sc4blast, ROT0, "Qps","Blast Off (042) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -29562,17 +29562,17 @@ INPUT_PORTS_END
// PR2060 ROGAN DOSH ROGANSND ROGAN DOSH
-GAMEL( 200?, sc4rogds ,0, sc4_200_4ra, sc4rogds, sc4_state, sc4rogds, ROT0, "Qps","Rogan Dosh (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rogdsa ,sc4rogds, sc4_200_4ra, sc4rogds, sc4_state, sc4rogds, ROT0, "Qps","Rogan Dosh (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rogdsb ,sc4rogds, sc4_200_4ra, sc4rogds, sc4_state, sc4rogds, ROT0, "Qps","Rogan Dosh (Qps) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rogdsc ,sc4rogds, sc4_200_4ra, sc4rogds, sc4_state, sc4rogds, ROT0, "Qps","Rogan Dosh (Qps) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rogds ,0, sc4_200_4ra, sc4rogds, sc4_state, sc4rogds, ROT0, "Qps","Rogan Dosh (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rogdsa ,sc4rogds, sc4_200_4ra, sc4rogds, sc4_state, sc4rogds, ROT0, "Qps","Rogan Dosh (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rogdsb ,sc4rogds, sc4_200_4ra, sc4rogds, sc4_state, sc4rogds, ROT0, "Qps","Rogan Dosh (Qps) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rogdsc ,sc4rogds, sc4_200_4ra, sc4rogds, sc4_state, sc4rogds, ROT0, "Qps","Rogan Dosh (Qps) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2060 ROGAN DOSH V1.6 ROGANSND ROGAN DOSH
-GAMEL( 200?, sc4rogdse ,sc4rogds, sc4_200_4ra, sc4rogds, sc4_state, sc4rogds, ROT0, "Qps","Rogan Dosh (v1.6) (Qps) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rogdse ,sc4rogds, sc4_200_4ra, sc4rogds, sc4_state, sc4rogds, ROT0, "Qps","Rogan Dosh (v1.6) (Qps) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2060 ROGAN DOSH V2.0 ROGANSND ROGAN DOSH
-GAMEL( 200?, sc4rogdsd ,sc4rogds, sc4_200_4ra, sc4rogds, sc4_state, sc4rogds, ROT0, "Qps","Rogan Dosh (v2.0) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rogdsf ,sc4rogds, sc4_200_4ra, sc4rogds, sc4_state, sc4rogds, ROT0, "Qps","Rogan Dosh (v2.0) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rogdsd ,sc4rogds, sc4_200_4ra, sc4rogds, sc4_state, sc4rogds, ROT0, "Qps","Rogan Dosh (v2.0) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rogdsf ,sc4rogds, sc4_200_4ra, sc4rogds, sc4_state, sc4rogds, ROT0, "Qps","Rogan Dosh (v2.0) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2060 ROGAN DOSH V2.1 ROGANSND ROGAN DOSH
-GAMEL( 200?, sc4rogdsg ,sc4rogds, sc4_200_4ra, sc4rogds, sc4_state, sc4rogds, ROT0, "Qps","Rogan Dosh (v2.1) (Qps) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rogdsg ,sc4rogds, sc4_200_4ra, sc4rogds, sc4_state, sc4rogds, ROT0, "Qps","Rogan Dosh (v2.1) (Qps) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -29632,11 +29632,11 @@ INPUT_PORTS_END
// PR2034 ROLLING THUNDER ROL SOUNDS ROLLING THUNDER
-GAMEL( 200?, sc4rt ,0, sc4_200_4ra, sc4rt, sc4_state, sc4rt, ROT0, "Mazooma","Rolling Thunder (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rta ,sc4rt, sc4_200_4ra, sc4rt, sc4_state, sc4rt, ROT0, "Mazooma","Rolling Thunder (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rtb ,sc4rt, sc4_200_4ra, sc4rt, sc4_state, sc4rt, ROT0, "Mazooma","Rolling Thunder (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rtc ,sc4rt, sc4_200_4ra, sc4rt, sc4_state, sc4rt, ROT0, "Mazooma","Rolling Thunder (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rtd ,sc4rt, sc4_200_4ra, sc4rt, sc4_state, sc4rt, ROT0, "Mazooma","Rolling Thunder (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rt ,0, sc4_200_4ra, sc4rt, sc4_state, sc4rt, ROT0, "Mazooma","Rolling Thunder (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rta ,sc4rt, sc4_200_4ra, sc4rt, sc4_state, sc4rt, ROT0, "Mazooma","Rolling Thunder (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rtb ,sc4rt, sc4_200_4ra, sc4rt, sc4_state, sc4rt, ROT0, "Mazooma","Rolling Thunder (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rtc ,sc4rt, sc4_200_4ra, sc4rt, sc4_state, sc4rt, ROT0, "Mazooma","Rolling Thunder (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rtd ,sc4rt, sc4_200_4ra, sc4rt, sc4_state, sc4rt, ROT0, "Mazooma","Rolling Thunder (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -29691,10 +29691,10 @@ INPUT_PORTS_END
// missing sound roms, doesn't play, same game code and sound ident as Rolling Thunder?
// PR2034 BANK ROLL ROL SOUNDS BANK ROLL
-GAMEL( 200?, sc4broll ,0, sc4_200_4ra, sc4broll, sc4_state, sc4, ROT0, "Mazooma","Bank Roll (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4brolla ,sc4broll, sc4_200_4ra, sc4broll, sc4_state, sc4, ROT0, "Mazooma","Bank Roll (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4brollb ,sc4broll, sc4_200_4ra, sc4broll, sc4_state, sc4, ROT0, "Mazooma","Bank Roll (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4brollc ,sc4broll, sc4_200_4ra, sc4broll, sc4_state, sc4, ROT0, "Mazooma","Bank Roll (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4broll ,0, sc4_200_4ra, sc4broll, sc4_state, sc4, ROT0, "Mazooma","Bank Roll (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4brolla ,sc4broll, sc4_200_4ra, sc4broll, sc4_state, sc4, ROT0, "Mazooma","Bank Roll (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4brollb ,sc4broll, sc4_200_4ra, sc4broll, sc4_state, sc4, ROT0, "Mazooma","Bank Roll (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4brollc ,sc4broll, sc4_200_4ra, sc4broll, sc4_state, sc4, ROT0, "Mazooma","Bank Roll (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -29767,10 +29767,10 @@ INPUT_PORTS_START( sc4rbank ) // this structure is generated
INPUT_PORTS_END
// PR1111 ROYAL BANKER PR1111 ROYLEBANKER SOUNDS11
-GAMEL( 200?, sc4rbank ,0, sc4_200_5r, sc4rbank, sc4_state, sc4rbank, ROT0, "BFM","Royle Banker (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rbanka ,sc4rbank, sc4_200_5r, sc4rbank, sc4_state, sc4rbank, ROT0, "BFM","Royle Banker (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rbankb ,sc4rbank, sc4_200_5r, sc4rbank, sc4_state, sc4rbank, ROT0, "BFM","Royle Banker (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rbankc ,sc4rbank, sc4_200_5r, sc4rbank, sc4_state, sc4rbank, ROT0, "BFM","Royle Banker (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rbank ,0, sc4_200_5r, sc4rbank, sc4_state, sc4rbank, ROT0, "BFM","Royle Banker (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rbanka ,sc4rbank, sc4_200_5r, sc4rbank, sc4_state, sc4rbank, ROT0, "BFM","Royle Banker (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rbankb ,sc4rbank, sc4_200_5r, sc4rbank, sc4_state, sc4rbank, ROT0, "BFM","Royle Banker (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rbankc ,sc4rbank, sc4_200_5r, sc4rbank, sc4_state, sc4rbank, ROT0, "BFM","Royle Banker (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4royle)
@@ -29849,21 +29849,21 @@ INPUT_PORTS_START( sc4royle ) // this structure is generated
INPUT_PORTS_END
// PR1102 ROYLEFAMILY PR1102 ROYLEFAMILY SOUNDS11
-GAMEL( 200?, sc4royle ,0, sc4_200_4ra, sc4royle, sc4_state, sc4royle, ROT0, "BFM","Royle Family (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4roylea ,sc4royle, sc4_200_4ra, sc4royle, sc4_state, sc4royle, ROT0, "BFM","Royle Family (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4royleb ,sc4royle, sc4_200_4ra, sc4royle, sc4_state, sc4royle, ROT0, "BFM","Royle Family (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4roylec ,sc4royle, sc4_200_4ra, sc4royle, sc4_state, sc4royle, ROT0, "BFM","Royle Family (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4royled ,sc4royle, sc4_200_4ra, sc4royle, sc4_state, sc4royle, ROT0, "BFM","Royle Family (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4roylee ,sc4royle, sc4_200_4ra, sc4royle, sc4_state, sc4royle, ROT0, "BFM","Royle Family (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4royleh ,sc4royle, sc4_200_4ra, sc4royle, sc4_state, sc4royle, ROT0, "BFM","Royle Family (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4roylei ,sc4royle, sc4_200_4ra, sc4royle, sc4_state, sc4royle, ROT0, "BFM","Royle Family (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4royle ,0, sc4_200_4ra, sc4royle, sc4_state, sc4royle, ROT0, "BFM","Royle Family (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4roylea ,sc4royle, sc4_200_4ra, sc4royle, sc4_state, sc4royle, ROT0, "BFM","Royle Family (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4royleb ,sc4royle, sc4_200_4ra, sc4royle, sc4_state, sc4royle, ROT0, "BFM","Royle Family (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4roylec ,sc4royle, sc4_200_4ra, sc4royle, sc4_state, sc4royle, ROT0, "BFM","Royle Family (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4royled ,sc4royle, sc4_200_4ra, sc4royle, sc4_state, sc4royle, ROT0, "BFM","Royle Family (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4roylee ,sc4royle, sc4_200_4ra, sc4royle, sc4_state, sc4royle, ROT0, "BFM","Royle Family (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4royleh ,sc4royle, sc4_200_4ra, sc4royle, sc4_state, sc4royle, ROT0, "BFM","Royle Family (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4roylei ,sc4royle, sc4_200_4ra, sc4royle, sc4_state, sc4royle, ROT0, "BFM","Royle Family (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR1102 ROYLEFAMILY REV2 PR1102 ROYLEFAMILY SOUNDS11
-GAMEL( 200?, sc4roylef ,sc4royle, sc4_200_4ra, sc4royle, sc4_state, sc4royle, ROT0, "BFM","Royle Family (REV 2) (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4royleg ,sc4royle, sc4_200_4ra, sc4royle, sc4_state, sc4royle, ROT0, "BFM","Royle Family (REV 2) (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4roylej ,sc4royle, sc4_200_4ra, sc4royle, sc4_state, sc4royle, ROT0, "BFM","Royle Family (REV 2) (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4roylek ,sc4royle, sc4_200_4ra, sc4royle, sc4_state, sc4royle, ROT0, "BFM","Royle Family (REV 2) (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4roylel ,sc4royle, sc4_200_4ra, sc4royle, sc4_state, sc4royle, ROT0, "BFM","Royle Family (REV 2) (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4roylem ,sc4royle, sc4_200_4ra, sc4royle, sc4_state, sc4royle, ROT0, "BFM","Royle Family (REV 2) (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4roylef ,sc4royle, sc4_200_4ra, sc4royle, sc4_state, sc4royle, ROT0, "BFM","Royle Family (REV 2) (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4royleg ,sc4royle, sc4_200_4ra, sc4royle, sc4_state, sc4royle, ROT0, "BFM","Royle Family (REV 2) (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4roylej ,sc4royle, sc4_200_4ra, sc4royle, sc4_state, sc4royle, ROT0, "BFM","Royle Family (REV 2) (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4roylek ,sc4royle, sc4_200_4ra, sc4royle, sc4_state, sc4royle, ROT0, "BFM","Royle Family (REV 2) (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4roylel ,sc4royle, sc4_200_4ra, sc4royle, sc4_state, sc4royle, ROT0, "BFM","Royle Family (REV 2) (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4roylem ,sc4royle, sc4_200_4ra, sc4royle, sc4_state, sc4royle, ROT0, "BFM","Royle Family (REV 2) (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4sidsp)
@@ -29917,10 +29917,10 @@ INPUT_PORTS_START( sc4sidsp ) // this structure is generated
INPUT_PORTS_END
// PR2117 SIDE SPLITTER SSPT SOUNDS SIDE SPLITTER
-GAMEL( 200?, sc4sidsp ,0, sc4_4reel_alt, sc4sidsp, sc4_state, sc4sidsp, ROT0, "Mazooma","Side Splitter (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4sidspa ,sc4sidsp, sc4_4reel_alt, sc4sidsp, sc4_state, sc4sidsp, ROT0, "Mazooma","Side Splitter (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4sidspb ,sc4sidsp, sc4_4reel_alt, sc4sidsp, sc4_state, sc4sidsp, ROT0, "Mazooma","Side Splitter (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4sidspc ,sc4sidsp, sc4_4reel_alt, sc4sidsp, sc4_state, sc4sidsp, ROT0, "Mazooma","Side Splitter (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sidsp ,0, sc4_4reel_alt, sc4sidsp, sc4_state, sc4sidsp, ROT0, "Mazooma","Side Splitter (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sidspa ,sc4sidsp, sc4_4reel_alt, sc4sidsp, sc4_state, sc4sidsp, ROT0, "Mazooma","Side Splitter (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sidspb ,sc4sidsp, sc4_4reel_alt, sc4sidsp, sc4_state, sc4sidsp, ROT0, "Mazooma","Side Splitter (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sidspc ,sc4sidsp, sc4_4reel_alt, sc4sidsp, sc4_state, sc4sidsp, ROT0, "Mazooma","Side Splitter (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4srr)
@@ -29991,10 +29991,10 @@ INPUT_PORTS_END
// PR1105 SNAKE RATTLE 'N' ROLL PR1105 SNAKERR SOUNDS11
-GAMEL( 200?, sc4srr ,0, sc4_4reel_alt, sc4srr, sc4_state, sc4srr, ROT0, "BFM","Snake Rattle 'n' Roll (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4srra ,sc4srr, sc4_4reel_alt, sc4srr, sc4_state, sc4srr, ROT0, "BFM","Snake Rattle 'n' Roll (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4srrb ,sc4srr, sc4_4reel_alt, sc4srr, sc4_state, sc4srr, ROT0, "BFM","Snake Rattle 'n' Roll (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4srrc ,sc4srr, sc4_4reel_alt, sc4srr, sc4_state, sc4srr, ROT0, "BFM","Snake Rattle 'n' Roll (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4srr ,0, sc4_4reel_alt, sc4srr, sc4_state, sc4srr, ROT0, "BFM","Snake Rattle 'n' Roll (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4srra ,sc4srr, sc4_4reel_alt, sc4srr, sc4_state, sc4srr, ROT0, "BFM","Snake Rattle 'n' Roll (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4srrb ,sc4srr, sc4_4reel_alt, sc4srr, sc4_state, sc4srr, ROT0, "BFM","Snake Rattle 'n' Roll (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4srrc ,sc4srr, sc4_4reel_alt, sc4srr, sc4_state, sc4srr, ROT0, "BFM","Snake Rattle 'n' Roll (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4slc)
@@ -30066,22 +30066,22 @@ INPUT_PORTS_START( sc4slc ) // this structure is generated
INPUT_PORTS_END
// PR1423 CLUB SNAKES N LADDERS PR1423 CSNK SOUNDS11 SNAKES N LADDERS
-GAMEL( 2003, sc4slc ,0, sc4_5reel, sc4slc, sc4_state, sc4slc, ROT0, "BFM","Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2003, sc4slcb ,sc4slc, sc4_5reel, sc4slc, sc4_state, sc4slc, ROT0, "BFM","Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2003, sc4slcc ,sc4slc, sc4_5reel, sc4slc, sc4_state, sc4slc, ROT0, "BFM","Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2003, sc4slce ,sc4slc, sc4_5reel, sc4slc, sc4_state, sc4slc, ROT0, "BFM","Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2003, sc4slci ,sc4slc, sc4_5reel, sc4slc, sc4_state, sc4slc, ROT0, "BFM","Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2003, sc4slcm ,sc4slc, sc4_5reel, sc4slc, sc4_state, sc4slc, ROT0, "BFM","Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2003, sc4slcn ,sc4slc, sc4_5reel, sc4slc, sc4_state, sc4slc, ROT0, "BFM","Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2003, sc4slc ,0, sc4_5reel, sc4slc, sc4_state, sc4slc, ROT0, "BFM","Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2003, sc4slcb ,sc4slc, sc4_5reel, sc4slc, sc4_state, sc4slc, ROT0, "BFM","Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2003, sc4slcc ,sc4slc, sc4_5reel, sc4slc, sc4_state, sc4slc, ROT0, "BFM","Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2003, sc4slce ,sc4slc, sc4_5reel, sc4slc, sc4_state, sc4slc, ROT0, "BFM","Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2003, sc4slci ,sc4slc, sc4_5reel, sc4slc, sc4_state, sc4slc, ROT0, "BFM","Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2003, sc4slcm ,sc4slc, sc4_5reel, sc4slc, sc4_state, sc4slc, ROT0, "BFM","Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2003, sc4slcn ,sc4slc, sc4_5reel, sc4slc, sc4_state, sc4slc, ROT0, "BFM","Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR1423 CLUB SNAKES N LADDERS SNAKES N LADDERS CLUB PR1423 CSNK SOUNDS11 SNAKES N LADDERS
-GAMEL( 2003, sc4slca ,sc4slc, sc4_5reel, sc4slc, sc4_state, sc4slc_mbus, ROT0, "BFM","Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2003, sc4slcd ,sc4slc, sc4_5reel, sc4slc, sc4_state, sc4slc_mbus, ROT0, "BFM","Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2003, sc4slcf ,sc4slc, sc4_5reel, sc4slc, sc4_state, sc4slc_mbus, ROT0, "BFM","Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2003, sc4slcg ,sc4slc, sc4_5reel, sc4slc, sc4_state, sc4slc_mbus, ROT0, "BFM","Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2003, sc4slcj ,sc4slc, sc4_5reel, sc4slc, sc4_state, sc4slc_mbus, ROT0, "BFM","Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 13)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2003, sc4slck ,sc4slc, sc4_5reel, sc4slc, sc4_state, sc4slc_mbus, ROT0, "BFM","Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 14)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2003, sc4slcl ,sc4slc, sc4_5reel, sc4slc, sc4_state, sc4slc, ROT0, "BFM","Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 15)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2003, sc4slch ,sc4slc, sc4_5reel, sc4slc, sc4_state, sc4slc, ROT0, "BFM","Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 12)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2003, sc4slca ,sc4slc, sc4_5reel, sc4slc, sc4_state, sc4slc_mbus, ROT0, "BFM","Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2003, sc4slcd ,sc4slc, sc4_5reel, sc4slc, sc4_state, sc4slc_mbus, ROT0, "BFM","Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2003, sc4slcf ,sc4slc, sc4_5reel, sc4slc, sc4_state, sc4slc_mbus, ROT0, "BFM","Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2003, sc4slcg ,sc4slc, sc4_5reel, sc4slc, sc4_state, sc4slc_mbus, ROT0, "BFM","Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2003, sc4slcj ,sc4slc, sc4_5reel, sc4slc, sc4_state, sc4slc_mbus, ROT0, "BFM","Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 13)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2003, sc4slck ,sc4slc, sc4_5reel, sc4slc, sc4_state, sc4slc_mbus, ROT0, "BFM","Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 14)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2003, sc4slcl ,sc4slc, sc4_5reel, sc4slc, sc4_state, sc4slc, ROT0, "BFM","Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 15)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2003, sc4slch ,sc4slc, sc4_5reel, sc4slc, sc4_state, sc4slc, ROT0, "BFM","Snakes & Ladders Club (Bellfruit) (Scorpion 4) (set 12)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -30158,10 +30158,10 @@ INPUT_PORTS_START( sc4solgl ) // this structure is generated
INPUT_PORTS_END
// PR1010 SOLID GOLD PR1010 SOLID GOLD SOUNDS11
-GAMEL( 200?, sc4solgl ,0, sc4_200_4ra, sc4solgl, sc4_state, sc4solgl, ROT0, "BFM","Solid Gold (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4solgla ,sc4solgl, sc4_200_4ra, sc4solgl, sc4_state, sc4solgl, ROT0, "BFM","Solid Gold (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4solglb ,sc4solgl, sc4_200_4ra, sc4solgl, sc4_state, sc4solgl, ROT0, "BFM","Solid Gold (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4solglc ,sc4solgl, sc4_200_4ra, sc4solgl, sc4_state, sc4solgl, ROT0, "BFM","Solid Gold (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4solgl ,0, sc4_200_4ra, sc4solgl, sc4_state, sc4solgl, ROT0, "BFM","Solid Gold (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4solgla ,sc4solgl, sc4_200_4ra, sc4solgl, sc4_state, sc4solgl, ROT0, "BFM","Solid Gold (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4solglb ,sc4solgl, sc4_200_4ra, sc4solgl, sc4_state, sc4solgl, ROT0, "BFM","Solid Gold (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4solglc ,sc4solgl, sc4_200_4ra, sc4solgl, sc4_state, sc4solgl, ROT0, "BFM","Solid Gold (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4sace)
@@ -30214,8 +30214,8 @@ INPUT_PORTS_END
// PR2509 SPACE ACE V2.2 SPACESND SPACE ACE
-GAMEL( 200?, sc4sace ,0, sc4_4reel_alt, sc4sace, sc4_state, sc4sace, ROT0, "Qps","Space Ace (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4sacea ,sc4sace, sc4_4reel_alt, sc4sace, sc4_state, sc4sace, ROT0, "Qps","Space Ace (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sace ,0, sc4_4reel_alt, sc4sace, sc4_state, sc4sace, ROT0, "Qps","Space Ace (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sacea ,sc4sace, sc4_4reel_alt, sc4sace, sc4_state, sc4sace, ROT0, "Qps","Space Ace (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -30268,8 +30268,8 @@ INPUT_PORTS_START( sc4sbust ) // this structure is generated
INPUT_PORTS_END
// PR2506 SPACEBUSTER BUSTERSND SPACEBUSTER
-GAMEL( 200?, sc4sbust ,0, sc4_4reel_alt, sc4sbust, sc4_state, sc4sbust, ROT0, "Qps","Space Buster (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4sbusta ,sc4sbust, sc4_4reel_alt, sc4sbust, sc4_state, sc4sbust, ROT0, "Qps","Space Buster (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sbust ,0, sc4_4reel_alt, sc4sbust, sc4_state, sc4sbust, ROT0, "Qps","Space Buster (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sbusta ,sc4sbust, sc4_4reel_alt, sc4sbust, sc4_state, sc4sbust, ROT0, "Qps","Space Buster (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -30327,17 +30327,17 @@ INPUT_PORTS_START( sc4stirc ) // this structure is generated
INPUT_PORTS_END
// PR2005 STIR CRAZY STIR SOUNDS STIR CRAZY
-GAMEL( 200?, sc4stirc ,0, sc4_4reel, sc4stirc, sc4_state, sc4stirc, ROT0, "Mazooma","Stir Crazy (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4stirca ,sc4stirc, sc4_4reel, sc4stirc, sc4_state, sc4stirc, ROT0, "Mazooma","Stir Crazy (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4stircb ,sc4stirc, sc4_4reel, sc4stirc, sc4_state, sc4stirc, ROT0, "Mazooma","Stir Crazy (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4stircc ,sc4stirc, sc4_4reel, sc4stirc, sc4_state, sc4stirc, ROT0, "Mazooma","Stir Crazy (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4stircd ,sc4stirc, sc4_4reel, sc4stirc, sc4_state, sc4stirc, ROT0, "Mazooma","Stir Crazy (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4stirce ,sc4stirc, sc4_4reel, sc4stirc, sc4_state, sc4stirc, ROT0, "Mazooma","Stir Crazy (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4stircf ,sc4stirc, sc4_4reel, sc4stirc, sc4_state, sc4stirc, ROT0, "Mazooma","Stir Crazy (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4stircg ,sc4stirc, sc4_4reel, sc4stirc, sc4_state, sc4stirc, ROT0, "Mazooma","Stir Crazy (Mazooma) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4stirch ,sc4stirc, sc4_4reel, sc4stirc, sc4_state, sc4stirc, ROT0, "Mazooma","Stir Crazy (Mazooma) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4stirci ,sc4stirc, sc4_4reel, sc4stirc, sc4_state, sc4stirc, ROT0, "Mazooma","Stir Crazy (Mazooma) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4stircj ,sc4stirc, sc4_4reel, sc4stirc, sc4_state, sc4stirc, ROT0, "Mazooma","Stir Crazy (Mazooma) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4stirc ,0, sc4_4reel, sc4stirc, sc4_state, sc4stirc, ROT0, "Mazooma","Stir Crazy (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4stirca ,sc4stirc, sc4_4reel, sc4stirc, sc4_state, sc4stirc, ROT0, "Mazooma","Stir Crazy (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4stircb ,sc4stirc, sc4_4reel, sc4stirc, sc4_state, sc4stirc, ROT0, "Mazooma","Stir Crazy (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4stircc ,sc4stirc, sc4_4reel, sc4stirc, sc4_state, sc4stirc, ROT0, "Mazooma","Stir Crazy (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4stircd ,sc4stirc, sc4_4reel, sc4stirc, sc4_state, sc4stirc, ROT0, "Mazooma","Stir Crazy (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4stirce ,sc4stirc, sc4_4reel, sc4stirc, sc4_state, sc4stirc, ROT0, "Mazooma","Stir Crazy (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4stircf ,sc4stirc, sc4_4reel, sc4stirc, sc4_state, sc4stirc, ROT0, "Mazooma","Stir Crazy (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4stircg ,sc4stirc, sc4_4reel, sc4stirc, sc4_state, sc4stirc, ROT0, "Mazooma","Stir Crazy (Mazooma) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4stirch ,sc4stirc, sc4_4reel, sc4stirc, sc4_state, sc4stirc, ROT0, "Mazooma","Stir Crazy (Mazooma) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4stirci ,sc4stirc, sc4_4reel, sc4stirc, sc4_state, sc4stirc, ROT0, "Mazooma","Stir Crazy (Mazooma) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4stircj ,sc4stirc, sc4_4reel, sc4stirc, sc4_state, sc4stirc, ROT0, "Mazooma","Stir Crazy (Mazooma) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -30398,9 +30398,9 @@ INPUT_PORTS_START( sc4sahed ) // this structure is generated
INPUT_PORTS_END
// PRxxxx STREAKS AHEAD V1.0 STREAKSSND STREAKS AHEAD
-GAMEL( 200?, sc4sahed ,0, sc4_200_4rb, sc4sahed, sc4_state, sc4sahed, ROT0, "Qps","Streaks Ahead (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4saheda ,sc4sahed, sc4_200_4rb, sc4sahed, sc4_state, sc4sahed, ROT0, "Qps","Streaks Ahead (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4sahedb ,sc4sahed, sc4_200_4rb, sc4sahed, sc4_state, sc4sahed, ROT0, "Qps","Streaks Ahead (Qps) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sahed ,0, sc4_200_4rb, sc4sahed, sc4_state, sc4sahed, ROT0, "Qps","Streaks Ahead (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4saheda ,sc4sahed, sc4_200_4rb, sc4sahed, sc4_state, sc4sahed, ROT0, "Qps","Streaks Ahead (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sahedb ,sc4sahed, sc4_200_4rb, sc4sahed, sc4_state, sc4sahed, ROT0, "Qps","Streaks Ahead (Qps) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4strx)
@@ -30471,10 +30471,10 @@ INPUT_PORTS_END
// PR1114 STRIKE X PR1114 STRIKX SOUNDS11
-GAMEL( 200?, sc4strx ,0, sc4_4reel_alt, sc4strx, sc4_state, sc4strx, ROT0, "BFM","Strike X (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4strxa ,sc4strx, sc4_4reel_alt, sc4strx, sc4_state, sc4strx, ROT0, "BFM","Strike X (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4strxb ,sc4strx, sc4_4reel_alt, sc4strx, sc4_state, sc4strx, ROT0, "BFM","Strike X (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4strxc ,sc4strx, sc4_4reel_alt, sc4strx, sc4_state, sc4strx, ROT0, "BFM","Strike X (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4strx ,0, sc4_4reel_alt, sc4strx, sc4_state, sc4strx, ROT0, "BFM","Strike X (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4strxa ,sc4strx, sc4_4reel_alt, sc4strx, sc4_state, sc4strx, ROT0, "BFM","Strike X (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4strxb ,sc4strx, sc4_4reel_alt, sc4strx, sc4_state, sc4strx, ROT0, "BFM","Strike X (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4strxc ,sc4strx, sc4_4reel_alt, sc4strx, sc4_state, sc4strx, ROT0, "BFM","Strike X (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -30543,10 +30543,10 @@ INPUT_PORTS_START( sc4suscl ) // this structure is generated
INPUT_PORTS_END
// PR2357 CLUB SUITS U SIR SUITS U SIR CLUB CLUB SUIT SOUNDS
-GAMEL( 200?, sc4suscl ,0, sc4_5reel, sc4suscl, sc4_state, sc4suscl, ROT0, "Qps","Suits U Sir Club (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4susclb ,sc4suscl, sc4_5reel, sc4suscl, sc4_state, sc4suscl, ROT0, "Qps","Suits U Sir Club (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4susclc ,sc4suscl, sc4_5reel, sc4suscl, sc4_state, sc4suscl_mbus, ROT0, "Qps","Suits U Sir Club (Qps) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4suscla ,sc4suscl, sc4_5reel, sc4suscl, sc4_state, sc4suscl_mbus, ROT0, "Qps","Suits U Sir Club (Qps) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4suscl ,0, sc4_5reel, sc4suscl, sc4_state, sc4suscl, ROT0, "Qps","Suits U Sir Club (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4susclb ,sc4suscl, sc4_5reel, sc4suscl, sc4_state, sc4suscl, ROT0, "Qps","Suits U Sir Club (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4susclc ,sc4suscl, sc4_5reel, sc4suscl, sc4_state, sc4suscl_mbus, ROT0, "Qps","Suits U Sir Club (Qps) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4suscla ,sc4suscl, sc4_5reel, sc4suscl, sc4_state, sc4suscl_mbus, ROT0, "Qps","Suits U Sir Club (Qps) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -30610,17 +30610,17 @@ INPUT_PORTS_END
// PR2515 TAE KWON DOUGH TAEKWONSND TAE KWON DOUGH
-GAMEL( 200?, sc4taekw ,0, sc4_200_4rb, sc4taekw, sc4_state, sc4taekw, ROT0, "Qps","Tae Kwon Dough (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4taekwa ,sc4taekw, sc4_200_4rb, sc4taekw, sc4_state, sc4taekw, ROT0, "Qps","Tae Kwon Dough (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4taekwb ,sc4taekw, sc4_200_4rb, sc4taekw, sc4_state, sc4taekw, ROT0, "Qps","Tae Kwon Dough (Qps) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4taekwg ,sc4taekw, sc4_200_4rb, sc4taekw, sc4_state, sc4taekw, ROT0, "Qps","Tae Kwon Dough (Qps) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4taekwh ,sc4taekw, sc4_200_4rb, sc4taekw, sc4_state, sc4taekw, ROT0, "Qps","Tae Kwon Dough (Qps) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4taekwi ,sc4taekw, sc4_200_4rb, sc4taekw, sc4_state, sc4taekw, ROT0, "Qps","Tae Kwon Dough (Qps) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4taekwj ,sc4taekw, sc4_200_4rb, sc4taekw, sc4_state, sc4taekw, ROT0, "Qps","Tae Kwon Dough (Qps) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4taekwc ,sc4taekw, sc4_200_4rb, sc4taekw, sc4_state, sc4taekw_mbus, ROT0, "Qps","Tae Kwon Dough (Qps) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4taekwd ,sc4taekw, sc4_200_4rb, sc4taekw, sc4_state, sc4taekw_mbus, ROT0, "Qps","Tae Kwon Dough (Qps) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4taekwe ,sc4taekw, sc4_200_4rb, sc4taekw, sc4_state, sc4taekw_mbus, ROT0, "Qps","Tae Kwon Dough (Qps) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4taekwf ,sc4taekw, sc4_200_4rb, sc4taekw, sc4_state, sc4taekw_mbus, ROT0, "Qps","Tae Kwon Dough (Qps) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4taekw ,0, sc4_200_4rb, sc4taekw, sc4_state, sc4taekw, ROT0, "Qps","Tae Kwon Dough (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4taekwa ,sc4taekw, sc4_200_4rb, sc4taekw, sc4_state, sc4taekw, ROT0, "Qps","Tae Kwon Dough (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4taekwb ,sc4taekw, sc4_200_4rb, sc4taekw, sc4_state, sc4taekw, ROT0, "Qps","Tae Kwon Dough (Qps) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4taekwg ,sc4taekw, sc4_200_4rb, sc4taekw, sc4_state, sc4taekw, ROT0, "Qps","Tae Kwon Dough (Qps) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4taekwh ,sc4taekw, sc4_200_4rb, sc4taekw, sc4_state, sc4taekw, ROT0, "Qps","Tae Kwon Dough (Qps) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4taekwi ,sc4taekw, sc4_200_4rb, sc4taekw, sc4_state, sc4taekw, ROT0, "Qps","Tae Kwon Dough (Qps) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4taekwj ,sc4taekw, sc4_200_4rb, sc4taekw, sc4_state, sc4taekw, ROT0, "Qps","Tae Kwon Dough (Qps) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4taekwc ,sc4taekw, sc4_200_4rb, sc4taekw, sc4_state, sc4taekw_mbus, ROT0, "Qps","Tae Kwon Dough (Qps) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4taekwd ,sc4taekw, sc4_200_4rb, sc4taekw, sc4_state, sc4taekw_mbus, ROT0, "Qps","Tae Kwon Dough (Qps) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4taekwe ,sc4taekw, sc4_200_4rb, sc4taekw, sc4_state, sc4taekw_mbus, ROT0, "Qps","Tae Kwon Dough (Qps) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4taekwf ,sc4taekw, sc4_200_4rb, sc4taekw, sc4_state, sc4taekw_mbus, ROT0, "Qps","Tae Kwon Dough (Qps) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -30693,8 +30693,8 @@ INPUT_PORTS_START( sc4taknt ) // this structure is generated
INPUT_PORTS_END
// PR1302 AWP TAKE NOTE PR1302 TAKE NOTE SOUNDS11
-GAMEL( 200?, sc4taknt ,0, sc4_4reel_alt, sc4taknt, sc4_state, sc4taknt, ROT0, "BFM","Take Note (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4taknta ,sc4taknt, sc4_4reel_alt, sc4taknt, sc4_state, sc4taknt, ROT0, "BFM","Take Note (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4taknt ,0, sc4_4reel_alt, sc4taknt, sc4_state, sc4taknt, ROT0, "BFM","Take Note (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4taknta ,sc4taknt, sc4_4reel_alt, sc4taknt, sc4_state, sc4taknt, ROT0, "BFM","Take Note (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4takcl)
{
@@ -30763,20 +30763,20 @@ INPUT_PORTS_START( sc4takcl ) // this structure is generated
INPUT_PORTS_END
// PR1323 CLUB TAKE NOTE PR1323 CNOT SOUNDS11
-GAMEL( 200?, sc4takcl ,0, sc4_5reel, sc4takcl, sc4_state, sc4takcl, ROT0, "BFM","Take Note Club (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4takcld ,sc4takcl, sc4_5reel, sc4takcl, sc4_state, sc4takcl, ROT0, "BFM","Take Note Club (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4takcli ,sc4takcl, sc4_5reel, sc4takcl, sc4_state, sc4takcl, ROT0, "BFM","Take Note Club (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4takclj ,sc4takcl, sc4_5reel, sc4takcl, sc4_state, sc4takcl, ROT0, "BFM","Take Note Club (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4takcl ,0, sc4_5reel, sc4takcl, sc4_state, sc4takcl, ROT0, "BFM","Take Note Club (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4takcld ,sc4takcl, sc4_5reel, sc4takcl, sc4_state, sc4takcl, ROT0, "BFM","Take Note Club (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4takcli ,sc4takcl, sc4_5reel, sc4takcl, sc4_state, sc4takcl, ROT0, "BFM","Take Note Club (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4takclj ,sc4takcl, sc4_5reel, sc4takcl, sc4_state, sc4takcl, ROT0, "BFM","Take Note Club (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR1323 CLUB TAKE NOTE CLUB TAKE NOTE CLUB PR1323 CNOT SOUNDS11
-GAMEL( 200?, sc4takclg ,sc4takcl, sc4_5reel, sc4takcl, sc4_state, sc4takcl_mbus, ROT0, "BFM","Take Note Club (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4takclh ,sc4takcl, sc4_5reel, sc4takcl, sc4_state, sc4takcl_mbus, ROT0, "BFM","Take Note Club (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4takclg ,sc4takcl, sc4_5reel, sc4takcl, sc4_state, sc4takcl_mbus, ROT0, "BFM","Take Note Club (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4takclh ,sc4takcl, sc4_5reel, sc4takcl, sc4_state, sc4takcl_mbus, ROT0, "BFM","Take Note Club (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR1323 CLUB TAKE NOTE 500 PR1323 CNOT SOUNDS11
-GAMEL( 200?, sc4takcla ,sc4takcl, sc4_5reel, sc4takcl, sc4_state, sc4takcl, ROT0, "BFM","Take Note Club 500 (Bellfruit) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4takcla ,sc4takcl, sc4_5reel, sc4takcl, sc4_state, sc4takcl, ROT0, "BFM","Take Note Club 500 (Bellfruit) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR1323 CLUB TAKE NOTE FERRY PR1323 CNOT SOUNDS11
-GAMEL( 200?, sc4takclb ,sc4takcl, sc4_5reel, sc4takcl, sc4_state, sc4takcl, ROT0, "BFM","Take Note Club (Ferry) (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4takclc ,sc4takcl, sc4_5reel, sc4takcl, sc4_state, sc4takcl, ROT0, "BFM","Take Note Club (Ferry) (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4takcle ,sc4takcl, sc4_5reel, sc4takcl, sc4_state, sc4takcl, ROT0, "BFM","Take Note Club (Ferry) (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4takclf ,sc4takcl, sc4_5reel, sc4takcl, sc4_state, sc4takcl, ROT0, "BFM","Take Note Club (Ferry) (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4takclb ,sc4takcl, sc4_5reel, sc4takcl, sc4_state, sc4takcl, ROT0, "BFM","Take Note Club (Ferry) (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4takclc ,sc4takcl, sc4_5reel, sc4takcl, sc4_state, sc4takcl, ROT0, "BFM","Take Note Club (Ferry) (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4takcle ,sc4takcl, sc4_5reel, sc4takcl, sc4_state, sc4takcl, ROT0, "BFM","Take Note Club (Ferry) (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4takclf ,sc4takcl, sc4_5reel, sc4takcl, sc4_state, sc4takcl, ROT0, "BFM","Take Note Club (Ferry) (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4tetri)
{
@@ -30825,18 +30825,18 @@ INPUT_PORTS_END
// PR7077 TETRIS TETR SOUNDS
-GAMEL( 200?, sc4tetri ,0, sc4_4reel, sc4tetri, sc4_state, sc4tetri, ROT0, "Mazooma","Tetris (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tetria ,sc4tetri, sc4_4reel, sc4tetri, sc4_state, sc4tetri, ROT0, "Mazooma","Tetris (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tetrib ,sc4tetri, sc4_4reel, sc4tetri, sc4_state, sc4tetri, ROT0, "Mazooma","Tetris (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tetric ,sc4tetri, sc4_4reel, sc4tetri, sc4_state, sc4tetri, ROT0, "Mazooma","Tetris (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tetrid ,sc4tetri, sc4_4reel, sc4tetri, sc4_state, sc4tetri, ROT0, "Mazooma","Tetris (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tetrie ,sc4tetri, sc4_4reel, sc4tetri, sc4_state, sc4tetri, ROT0, "Mazooma","Tetris (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tetrif ,sc4tetri, sc4_4reel, sc4tetri, sc4_state, sc4tetri, ROT0, "Mazooma","Tetris (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tetrig ,sc4tetri, sc4_4reel, sc4tetri, sc4_state, sc4tetri, ROT0, "Mazooma","Tetris (Mazooma) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tetrih ,sc4tetri, sc4_4reel, sc4tetri, sc4_state, sc4tetri, ROT0, "Mazooma","Tetris (Mazooma) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tetrii ,sc4tetri, sc4_4reel, sc4tetri, sc4_state, sc4tetri, ROT0, "Mazooma","Tetris (Mazooma) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tetrij ,sc4tetri, sc4_4reel, sc4tetri, sc4_state, sc4tetri, ROT0, "Mazooma","Tetris (Mazooma) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tetrik ,sc4tetri, sc4_4reel, sc4tetri, sc4_state, sc4tetri, ROT0, "Mazooma","Tetris (Mazooma) (Scorpion 4) (set 12)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tetri ,0, sc4_4reel, sc4tetri, sc4_state, sc4tetri, ROT0, "Mazooma","Tetris (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tetria ,sc4tetri, sc4_4reel, sc4tetri, sc4_state, sc4tetri, ROT0, "Mazooma","Tetris (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tetrib ,sc4tetri, sc4_4reel, sc4tetri, sc4_state, sc4tetri, ROT0, "Mazooma","Tetris (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tetric ,sc4tetri, sc4_4reel, sc4tetri, sc4_state, sc4tetri, ROT0, "Mazooma","Tetris (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tetrid ,sc4tetri, sc4_4reel, sc4tetri, sc4_state, sc4tetri, ROT0, "Mazooma","Tetris (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tetrie ,sc4tetri, sc4_4reel, sc4tetri, sc4_state, sc4tetri, ROT0, "Mazooma","Tetris (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tetrif ,sc4tetri, sc4_4reel, sc4tetri, sc4_state, sc4tetri, ROT0, "Mazooma","Tetris (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tetrig ,sc4tetri, sc4_4reel, sc4tetri, sc4_state, sc4tetri, ROT0, "Mazooma","Tetris (Mazooma) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tetrih ,sc4tetri, sc4_4reel, sc4tetri, sc4_state, sc4tetri, ROT0, "Mazooma","Tetris (Mazooma) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tetrii ,sc4tetri, sc4_4reel, sc4tetri, sc4_state, sc4tetri, ROT0, "Mazooma","Tetris (Mazooma) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tetrij ,sc4tetri, sc4_4reel, sc4tetri, sc4_state, sc4tetri, ROT0, "Mazooma","Tetris (Mazooma) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tetrik ,sc4tetri, sc4_4reel, sc4tetri, sc4_state, sc4tetri, ROT0, "Mazooma","Tetris (Mazooma) (Scorpion 4) (set 12)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4tbana)
@@ -30906,8 +30906,8 @@ INPUT_PORTS_START( sc4tbana ) // this structure is generated
INPUT_PORTS_END
// PR1110 TOP BANANA PR1110 TOP BANANA SOUNDS11
-GAMEL( 200?, sc4tbana ,0, sc4_200_5rb, sc4tbana, sc4_state, sc4tbana, ROT0, "BFM","Top Banana (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tbanaa ,sc4tbana, sc4_200_5rb, sc4tbana, sc4_state, sc4tbana, ROT0, "BFM","Top Banana (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tbana ,0, sc4_200_5rb, sc4tbana, sc4_state, sc4tbana, ROT0, "BFM","Top Banana (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tbanaa ,sc4tbana, sc4_200_5rb, sc4tbana, sc4_state, sc4tbana, ROT0, "BFM","Top Banana (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// REEL 4 ERR 24 (what should be here?)
@@ -30960,14 +30960,14 @@ INPUT_PORTS_END
// REEL 4 ERR 24
// PR7062 TOP GEARS GEARS SOUNDS TOP GEARS
-GAMEL( 200?, sc4tgear ,0, sc4_4reel, sc4tgear, sc4_state, sc4tgear, ROT0, "Mazooma","Top Gears (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tgeara ,sc4tgear, sc4_4reel, sc4tgear, sc4_state, sc4tgear, ROT0, "Mazooma","Top Gears (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tgearb ,sc4tgear, sc4_4reel, sc4tgear, sc4_state, sc4tgear, ROT0, "Mazooma","Top Gears (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tgearc ,sc4tgear, sc4_4reel, sc4tgear, sc4_state, sc4tgear, ROT0, "Mazooma","Top Gears (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tgeard ,sc4tgear, sc4_4reel, sc4tgear, sc4_state, sc4tgear, ROT0, "Mazooma","Top Gears (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tgeare ,sc4tgear, sc4_4reel, sc4tgear, sc4_state, sc4tgear, ROT0, "Mazooma","Top Gears (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tgearf ,sc4tgear, sc4_4reel, sc4tgear, sc4_state, sc4tgear, ROT0, "Mazooma","Top Gears (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tgearg ,sc4tgear, sc4_4reel, sc4tgear, sc4_state, sc4tgear, ROT0, "Mazooma","Top Gears (Mazooma) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tgear ,0, sc4_4reel, sc4tgear, sc4_state, sc4tgear, ROT0, "Mazooma","Top Gears (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tgeara ,sc4tgear, sc4_4reel, sc4tgear, sc4_state, sc4tgear, ROT0, "Mazooma","Top Gears (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tgearb ,sc4tgear, sc4_4reel, sc4tgear, sc4_state, sc4tgear, ROT0, "Mazooma","Top Gears (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tgearc ,sc4tgear, sc4_4reel, sc4tgear, sc4_state, sc4tgear, ROT0, "Mazooma","Top Gears (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tgeard ,sc4tgear, sc4_4reel, sc4tgear, sc4_state, sc4tgear, ROT0, "Mazooma","Top Gears (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tgeare ,sc4tgear, sc4_4reel, sc4tgear, sc4_state, sc4tgear, ROT0, "Mazooma","Top Gears (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tgearf ,sc4tgear, sc4_4reel, sc4tgear, sc4_state, sc4tgear, ROT0, "Mazooma","Top Gears (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tgearg ,sc4tgear, sc4_4reel, sc4tgear, sc4_state, sc4tgear, ROT0, "Mazooma","Top Gears (Mazooma) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -31021,7 +31021,7 @@ INPUT_PORTS_START( sc4tload ) // this structure is generated
INPUT_PORTS_END
// PR2112 TOP LOADER LOAD SOUNDS TOP LOADER
-GAMEL( 200?, sc4tload ,0, sc4_4reel_alt, sc4tload, sc4_state, sc4tload, ROT0, "Mazooma","Top Loader (Mazooma) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tload ,0, sc4_4reel_alt, sc4tload, sc4_state, sc4tload, ROT0, "Mazooma","Top Loader (Mazooma) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -31102,10 +31102,10 @@ INPUT_PORTS_START( sc4ttomb ) // this structure is generated
INPUT_PORTS_END
// PR1305 TREASURE TOMB PR1305 TRES TOMB SOUNDS11 / HIT SHOT
-GAMEL( 200?, sc4ttomb ,0, sc4_200_4rb, sc4ttomb, sc4_state, sc4ttomb, ROT0, "BFM","Treasure Tomb (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ttomba ,sc4ttomb, sc4_200_4rb, sc4ttomb, sc4_state, sc4ttomb, ROT0, "BFM","Treasure Tomb (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ttombb ,sc4ttomb, sc4_200_4rb, sc4ttomb, sc4_state, sc4ttomb, ROT0, "BFM","Treasure Tomb (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ttombc ,sc4ttomb, sc4_200_4rb, sc4ttomb, sc4_state, sc4ttomb, ROT0, "BFM","Treasure Tomb (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ttomb ,0, sc4_200_4rb, sc4ttomb, sc4_state, sc4ttomb, ROT0, "BFM","Treasure Tomb (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ttomba ,sc4ttomb, sc4_200_4rb, sc4ttomb, sc4_state, sc4ttomb, ROT0, "BFM","Treasure Tomb (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ttombb ,sc4ttomb, sc4_200_4rb, sc4ttomb, sc4_state, sc4ttomb, ROT0, "BFM","Treasure Tomb (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ttombc ,sc4ttomb, sc4_200_4rb, sc4ttomb, sc4_state, sc4ttomb, ROT0, "BFM","Treasure Tomb (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -31155,8 +31155,8 @@ INPUT_PORTS_START( sc4tridn ) // this structure is generated
INPUT_PORTS_END
// PR2103 THE TRIDENT TRID SOUNDS THE TRIDENT
-GAMEL( 200?, sc4tridn ,0, sc4_5reel, sc4tridn, sc4_state, sc4tridn, ROT0, "Mazooma","The Trident (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tridna ,sc4tridn, sc4_5reel, sc4tridn, sc4_state, sc4tridn, ROT0, "Mazooma","The Trident (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tridn ,0, sc4_5reel, sc4tridn, sc4_state, sc4tridn, ROT0, "Mazooma","The Trident (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tridna ,sc4tridn, sc4_5reel, sc4tridn, sc4_state, sc4tridn, ROT0, "Mazooma","The Trident (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -31237,17 +31237,17 @@ INPUT_PORTS_START( sc4vrgcl ) // this structure is generated
INPUT_PORTS_END
// PR1037 CLUB VERY RICH GEEZER PR1037 RICH SOUNDS11 VERY RICH GEEZER
-GAMEL( 200?, sc4vrgcl ,0, sc4_200_5rb, sc4vrgcl, sc4_state, sc4vrgcl, ROT0, "BFM","Very Rich Geezer Club (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4vrgcla ,sc4vrgcl, sc4_200_5rb, sc4vrgcl, sc4_state, sc4vrgcl, ROT0, "BFM","Very Rich Geezer Club (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4vrgclb ,sc4vrgcl, sc4_200_5rb, sc4vrgcl, sc4_state, sc4vrgcl, ROT0, "BFM","Very Rich Geezer Club (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4vrgclc ,sc4vrgcl, sc4_200_5rb, sc4vrgcl, sc4_state, sc4vrgcl, ROT0, "BFM","Very Rich Geezer Club (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4vrgcld ,sc4vrgcl, sc4_200_5rb, sc4vrgcl, sc4_state, sc4vrgcl, ROT0, "BFM","Very Rich Geezer Club (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4vrgcle ,sc4vrgcl, sc4_200_5rb, sc4vrgcl, sc4_state, sc4vrgcl, ROT0, "BFM","Very Rich Geezer Club (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4vrgclf ,sc4vrgcl, sc4_200_5rb, sc4vrgcl, sc4_state, sc4vrgcl, ROT0, "BFM","Very Rich Geezer Club (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4vrgclg ,sc4vrgcl, sc4_200_5rb, sc4vrgcl, sc4_state, sc4vrgcl, ROT0, "BFM","Very Rich Geezer Club (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4vrgcl ,0, sc4_200_5rb, sc4vrgcl, sc4_state, sc4vrgcl, ROT0, "BFM","Very Rich Geezer Club (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4vrgcla ,sc4vrgcl, sc4_200_5rb, sc4vrgcl, sc4_state, sc4vrgcl, ROT0, "BFM","Very Rich Geezer Club (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4vrgclb ,sc4vrgcl, sc4_200_5rb, sc4vrgcl, sc4_state, sc4vrgcl, ROT0, "BFM","Very Rich Geezer Club (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4vrgclc ,sc4vrgcl, sc4_200_5rb, sc4vrgcl, sc4_state, sc4vrgcl, ROT0, "BFM","Very Rich Geezer Club (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4vrgcld ,sc4vrgcl, sc4_200_5rb, sc4vrgcl, sc4_state, sc4vrgcl, ROT0, "BFM","Very Rich Geezer Club (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4vrgcle ,sc4vrgcl, sc4_200_5rb, sc4vrgcl, sc4_state, sc4vrgcl, ROT0, "BFM","Very Rich Geezer Club (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4vrgclf ,sc4vrgcl, sc4_200_5rb, sc4vrgcl, sc4_state, sc4vrgcl, ROT0, "BFM","Very Rich Geezer Club (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4vrgclg ,sc4vrgcl, sc4_200_5rb, sc4vrgcl, sc4_state, sc4vrgcl, ROT0, "BFM","Very Rich Geezer Club (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR1037 CLUB VERY RICH GEEZER VERY RICH GEEZER CLUB PR1037 RICH SOUNDS11 VERY RICH GEEZER
-GAMEL( 200?, sc4vrgclh ,sc4vrgcl, sc4_200_5rb, sc4vrgcl, sc4_state, sc4vrgcl_mbus, ROT0, "BFM","Very Rich Geezer Club (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4vrgcli ,sc4vrgcl, sc4_200_5rb, sc4vrgcl, sc4_state, sc4vrgcl_mbus, ROT0, "BFM","Very Rich Geezer Club (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4vrgclh ,sc4vrgcl, sc4_200_5rb, sc4vrgcl, sc4_state, sc4vrgcl_mbus, ROT0, "BFM","Very Rich Geezer Club (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4vrgcli ,sc4vrgcl, sc4_200_5rb, sc4vrgcl, sc4_state, sc4vrgcl_mbus, ROT0, "BFM","Very Rich Geezer Club (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4leg)
@@ -31320,16 +31320,16 @@ INPUT_PORTS_START( sc4leg ) // this structure is generated
INPUT_PORTS_END
// PR7120 WHO WANTS TO BE A LEGIONNAIRE PR7120 LEGIONNAIRE SOUNDS11
-GAMEL( 200?, sc4leg ,0, sc4_200_5rb, sc4leg, sc4_state, sc4leg, ROT0, "BFM","Who Wants To Be A Legionnaire (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lega ,sc4leg, sc4_200_5rb, sc4leg, sc4_state, sc4leg, ROT0, "BFM","Who Wants To Be A Legionnaire (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4legb ,sc4leg, sc4_200_5rb, sc4leg, sc4_state, sc4leg, ROT0, "BFM","Who Wants To Be A Legionnaire (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4legc ,sc4leg, sc4_200_5rb, sc4leg, sc4_state, sc4leg, ROT0, "BFM","Who Wants To Be A Legionnaire (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4legd ,sc4leg, sc4_200_5rb, sc4leg, sc4_state, sc4leg, ROT0, "BFM","Who Wants To Be A Legionnaire (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lege ,sc4leg, sc4_200_5rb, sc4leg, sc4_state, sc4leg, ROT0, "BFM","Who Wants To Be A Legionnaire (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4legf ,sc4leg, sc4_200_5rb, sc4leg, sc4_state, sc4leg, ROT0, "BFM","Who Wants To Be A Legionnaire (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4legg ,sc4leg, sc4_200_5rb, sc4leg, sc4_state, sc4leg, ROT0, "BFM","Who Wants To Be A Legionnaire (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4leg ,0, sc4_200_5rb, sc4leg, sc4_state, sc4leg, ROT0, "BFM","Who Wants To Be A Legionnaire (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lega ,sc4leg, sc4_200_5rb, sc4leg, sc4_state, sc4leg, ROT0, "BFM","Who Wants To Be A Legionnaire (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4legb ,sc4leg, sc4_200_5rb, sc4leg, sc4_state, sc4leg, ROT0, "BFM","Who Wants To Be A Legionnaire (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4legc ,sc4leg, sc4_200_5rb, sc4leg, sc4_state, sc4leg, ROT0, "BFM","Who Wants To Be A Legionnaire (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4legd ,sc4leg, sc4_200_5rb, sc4leg, sc4_state, sc4leg, ROT0, "BFM","Who Wants To Be A Legionnaire (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lege ,sc4leg, sc4_200_5rb, sc4leg, sc4_state, sc4leg, ROT0, "BFM","Who Wants To Be A Legionnaire (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4legf ,sc4leg, sc4_200_5rb, sc4leg, sc4_state, sc4leg, ROT0, "BFM","Who Wants To Be A Legionnaire (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4legg ,sc4leg, sc4_200_5rb, sc4leg, sc4_state, sc4leg, ROT0, "BFM","Who Wants To Be A Legionnaire (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4legh ,sc4leg, sc4_200_5rb, sc4leg, sc4_state, sc4leg, ROT0, "BFM","Who Wants To Be A Legionnaire (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // doesn't do anything?
+GAMEL( 200?, sc4legh ,sc4leg, sc4_200_5rb, sc4leg, sc4_state, sc4leg, ROT0, "BFM","Who Wants To Be A Legionnaire (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // doesn't do anything?
DRIVER_INIT_MEMBER(sc4_state,sc4cleg)
@@ -31405,14 +31405,14 @@ INPUT_PORTS_START( sc4legcb ) // this structure is generated
INPUT_PORTS_END
// PR1038 CLUB WHO WANTS TO BE A LEGIONNAIRE PR1038 CLUB WWTBAL SOUNDS11
-GAMEL( 200?, sc4legcb ,0, sc4_200_std, sc4legcb, sc4_state, sc4cleg, ROT0, "BFM","Who Wants To Be A Legionnaire Club (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4legcba ,sc4legcb, sc4_200_std, sc4legcb, sc4_state, sc4cleg, ROT0, "BFM","Who Wants To Be A Legionnaire Club (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4legcbb ,sc4legcb, sc4_200_std, sc4legcb, sc4_state, sc4cleg, ROT0, "BFM","Who Wants To Be A Legionnaire Club (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4legcbc ,sc4legcb, sc4_200_std, sc4legcb, sc4_state, sc4cleg, ROT0, "BFM","Who Wants To Be A Legionnaire Club (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4legcb ,0, sc4_200_std, sc4legcb, sc4_state, sc4cleg, ROT0, "BFM","Who Wants To Be A Legionnaire Club (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4legcba ,sc4legcb, sc4_200_std, sc4legcb, sc4_state, sc4cleg, ROT0, "BFM","Who Wants To Be A Legionnaire Club (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4legcbb ,sc4legcb, sc4_200_std, sc4legcb, sc4_state, sc4cleg, ROT0, "BFM","Who Wants To Be A Legionnaire Club (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4legcbc ,sc4legcb, sc4_200_std, sc4legcb, sc4_state, sc4cleg, ROT0, "BFM","Who Wants To Be A Legionnaire Club (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// Alarms through startup, doesn't start game
// PR1038 CLUB WHO WANTS TO BE A LEGIONNAIRE WWTB LEGIONNAIRE CLUB PR1038 CLUB WWTBAL SOUNDS11
-GAMEL( 200?, sc4legcbd ,sc4legcb, sc4_200_std, sc4legcb, sc4_state, sc4cleg_mbus, ROT0, "BFM","Who Wants To Be A Legionnaire Club (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4legcbe ,sc4legcb, sc4_200_std, sc4legcb, sc4_state, sc4cleg_mbus, ROT0, "BFM","Who Wants To Be A Legionnaire Club (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4legcbd ,sc4legcb, sc4_200_std, sc4legcb, sc4_state, sc4cleg_mbus, ROT0, "BFM","Who Wants To Be A Legionnaire Club (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4legcbe ,sc4legcb, sc4_200_std, sc4legcb, sc4_state, sc4cleg_mbus, ROT0, "BFM","Who Wants To Be A Legionnaire Club (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4wspin)
@@ -31462,11 +31462,11 @@ INPUT_PORTS_START( sc4wspin ) // this structure is generated
INPUT_PORTS_END
// QPS162 WIN SPINNER Arcade Version 011 WINSPINNERSND WIN SPINNER
-GAMEL( 200?, sc4wspin ,0, sc4_200_4rb, sc4wspin, sc4_state, sc4wspin, ROT0, "Qps","Win Spinner Arcade (011) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wspinc ,sc4wspin, sc4_200_4rb, sc4wspin, sc4_state, sc4wspin, ROT0, "Qps","Win Spinner Arcade (011) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wspin ,0, sc4_200_4rb, sc4wspin, sc4_state, sc4wspin, ROT0, "Qps","Win Spinner Arcade (011) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wspinc ,sc4wspin, sc4_200_4rb, sc4wspin, sc4_state, sc4wspin, ROT0, "Qps","Win Spinner Arcade (011) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// QPS162 WIN SPINNER SP Arcade Version 011 WINSPINNERSND WIN SPINNER
-GAMEL( 200?, sc4wspinb ,sc4wspin, sc4_200_4rb, sc4wspin, sc4_state, sc4wspin, ROT0, "Qps","Win Spinner SP Arcade (011) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wspind ,sc4wspin, sc4_200_4rb, sc4wspin, sc4_state, sc4wspin, ROT0, "Qps","Win Spinner SP Arcade (011) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wspinb ,sc4wspin, sc4_200_4rb, sc4wspin, sc4_state, sc4wspin, ROT0, "Qps","Win Spinner SP Arcade (011) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wspind ,sc4wspin, sc4_200_4rb, sc4wspin, sc4_state, sc4wspin, ROT0, "Qps","Win Spinner SP Arcade (011) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4wwys)
@@ -31542,8 +31542,8 @@ INPUT_PORTS_START( sc4wwys ) // this structure is generated
INPUT_PORTS_END
// PR1301 WIN WHEN YOUR SPINNING PR1301 WIN W Y S SOUNDS11
-GAMEL( 200?, sc4wwys ,0, sc4_200_5ra, sc4wwys, sc4_state, sc4wwys, ROT0, "BFM","Win When Your Spinning (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wwysa ,sc4wwys, sc4_200_5ra, sc4wwys, sc4_state, sc4wwys, ROT0, "BFM","Win When Your Spinning (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wwys ,0, sc4_200_5ra, sc4wwys, sc4_state, sc4wwys, ROT0, "BFM","Win When Your Spinning (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wwysa ,sc4wwys, sc4_200_5ra, sc4wwys, sc4_state, sc4wwys, ROT0, "BFM","Win When Your Spinning (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4winsptb)
@@ -31600,47 +31600,47 @@ INPUT_PORTS_START( sc4winspa ) // this structure is generated
INPUT_PORTS_END
// PR2526 WINNING SPIN TOP BOX WINNINGSPINSND WINNING SPIN
-GAMEL( 200?, sc4winsp ,0, sc4_3reel, sc4, sc4_state, sc4winsptb, ROT0, "Qps","Winning Spin Top Box (PR2526, WSPT) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4winsp ,0, sc4_3reel, sc4, sc4_state, sc4winsptb, ROT0, "Qps","Winning Spin Top Box (PR2526, WSPT) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2526 WINNING SPIN TOP BOX WINNINGSPINSND WINNING SPIN
-GAMEL( 200?, sc4winsp0 ,sc4winsp, sc4_3reel, sc4, sc4_state, sc4winsptb, ROT0, "Qps","Winning Spin Top Box (PR2526, WSPT) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // was in a Win Spinner set, but probably belongs here
+GAMEL( 200?, sc4winsp0 ,sc4winsp, sc4_3reel, sc4, sc4_state, sc4winsptb, ROT0, "Qps","Winning Spin Top Box (PR2526, WSPT) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // was in a Win Spinner set, but probably belongs here
// PR2546 WINNING SPIN Bingo Version011 WINNINGSPINSND WINNING SPIN
-GAMEL( 200?, sc4winspa ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (Bingo V011) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4winsph ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (Bingo V011) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4winspa ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (Bingo V011) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4winsph ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (Bingo V011) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2546 WINNING SPIN Bingo Version 012 WINNINGSPINSND WINNING SPIN
-GAMEL( 200?, sc4winspe ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (Bingo V012) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4winspl ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (Bingo V012) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4winspq ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (Bingo V012) (Qps) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4winspw ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (Bingo V012) (Qps) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4winspe ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (Bingo V012) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4winspl ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (Bingo V012) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4winspq ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (Bingo V012) (Qps) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4winspw ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (Bingo V012) (Qps) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2546 WINNING SPIN Arcade Version011 WINNINGSPINSND WINNING SPIN
-GAMEL( 200?, sc4winspd ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (Arcade V011) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4winspk ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (Arcade V011) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4winspd ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (Arcade V011) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4winspk ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (Arcade V011) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2546 WINNING SPIN Arcade Version 012 WINNINGSPINSND WINNING SPIN
-GAMEL( 200?, sc4winspt ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (Arcade V012) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4winspz ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (Arcade V012) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4winspt ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (Arcade V012) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4winspz ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (Arcade V012) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2546 WINNING SPIN Version 021 WINNINGSPINSND WINNING SPIN
-GAMEL( 200?, sc4winspb ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (V021) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4winspi ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (V021) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4winspb ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (V021) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4winspi ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (V021) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2546 WINNING SPIN Version 022 WINNINGSPINSND WINNING SPIN
-GAMEL( 200?, sc4winspf ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (V022) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4winspm ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (V022) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4winspr ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (V022) (Qps) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4winspx ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (V022) (Qps) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4winspf ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (V022) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4winspm ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (V022) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4winspr ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (V022) (Qps) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4winspx ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (V022) (Qps) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2546 WINNING SPIN Version 031 WINNINGSPINSND WINNING SPIN
-GAMEL( 200?, sc4winspc ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (V031) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4winspj ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (V031) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4winspc ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (V031) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4winspj ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (V031) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2546 WINNING SPIN Version 032 WINNINGSPINSND WINNING SPIN
-GAMEL( 200?, sc4winspg ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (V032) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4winspn ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (V032) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4winsps ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (V032) (Qps) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4winspy ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (V032) (Qps) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4winspg ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (V032) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4winspn ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (V032) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4winsps ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (V032) (Qps) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4winspy ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (V032) (Qps) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2546 WINNING SPIN Arcade Version 061 WINNINGSPINSND WINNING SPIN
// these can be booted
-GAMEL( 200?, sc4winspo ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (Arcade V061) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4winspu ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (Arcade V061) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4winspo ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (Arcade V061) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4winspu ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (Arcade V061) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2546 WINNING SPIN Arcade Version 062 WINNINGSPINSND WINNING SPIN
// these can be booted
-GAMEL( 200?, sc4winspp ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (Arcade V062) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4winspv ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (Arcade V062) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4winspp ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (Arcade V062) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4winspv ,sc4winsp, sc4_200_4r, sc4winspa, sc4_state, sc4winsp, ROT0, "Qps","Winning Spin (Arcade V062) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4wondw)
@@ -31708,8 +31708,8 @@ INPUT_PORTS_START( sc4wondw ) // this structure is generated
INPUT_PORTS_END
// PR1318 WONDER WHEEL PR1314 WONDER WHEEL SOUNDS11
-GAMEL( 200?, sc4wondw ,0, sc4_200_5ra, sc4wondw, sc4_state, sc4wondw, ROT0, "BFM","Wonder Wheel (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wondwa ,sc4wondw, sc4_200_5ra, sc4wondw, sc4_state, sc4wondw, ROT0, "BFM","Wonder Wheel (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wondw ,0, sc4_200_5ra, sc4wondw, sc4_state, sc4wondw, ROT0, "BFM","Wonder Wheel (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wondwa ,sc4wondw, sc4_200_5ra, sc4wondw, sc4_state, sc4wondw, ROT0, "BFM","Wonder Wheel (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4xmark)
{
@@ -31788,8 +31788,8 @@ INPUT_PORTS_START( sc4xmark ) // this structure is generated
INPUT_PORTS_END
// PR1116 X MARKS THE SPOT PR1116 X MARKS THE SPOT SOUNDS11
-GAMEL( 200?, sc4xmark ,0, sc4_200_4rb, sc4xmark, sc4_state, sc4xmark, ROT0, "BFM","X Marks The Spot (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4xmarka ,sc4xmark, sc4_200_4rb, sc4xmark, sc4_state, sc4xmark, ROT0, "BFM","X Marks The Spot (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4xmark ,0, sc4_200_4rb, sc4xmark, sc4_state, sc4xmark, ROT0, "BFM","X Marks The Spot (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4xmarka ,sc4xmark, sc4_200_4rb, sc4xmark, sc4_state, sc4xmark, ROT0, "BFM","X Marks The Spot (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -31853,14 +31853,14 @@ INPUT_PORTS_START( sc4blokq ) // this structure is generated
INPUT_PORTS_END
// PR2025 BLOCK BUSTER BUSTERSND BLOCK BUSTER
-GAMEL( 200?, sc4blokq ,0, sc4_200_4ra, sc4blokq, sc4_state, sc4blokq, ROT0, "Qps","Blockbuster (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4blokqa ,sc4blokq, sc4_200_4ra, sc4blokq, sc4_state, sc4blokq, ROT0, "Qps","Blockbuster (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4blokqb ,sc4blokq, sc4_200_4ra, sc4blokq, sc4_state, sc4blokq, ROT0, "Qps","Blockbuster (Qps) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4blokqc ,sc4blokq, sc4_200_4ra, sc4blokq, sc4_state, sc4blokq, ROT0, "Qps","Blockbuster (Qps) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4blokqd ,sc4blokq, sc4_200_4ra, sc4blokq, sc4_state, sc4blokq, ROT0, "Qps","Blockbuster (Qps) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4blokqe ,sc4blokq, sc4_200_4ra, sc4blokq, sc4_state, sc4blokq, ROT0, "Qps","Blockbuster (Qps) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4blokq ,0, sc4_200_4ra, sc4blokq, sc4_state, sc4blokq, ROT0, "Qps","Blockbuster (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4blokqa ,sc4blokq, sc4_200_4ra, sc4blokq, sc4_state, sc4blokq, ROT0, "Qps","Blockbuster (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4blokqb ,sc4blokq, sc4_200_4ra, sc4blokq, sc4_state, sc4blokq, ROT0, "Qps","Blockbuster (Qps) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4blokqc ,sc4blokq, sc4_200_4ra, sc4blokq, sc4_state, sc4blokq, ROT0, "Qps","Blockbuster (Qps) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4blokqd ,sc4blokq, sc4_200_4ra, sc4blokq, sc4_state, sc4blokq, ROT0, "Qps","Blockbuster (Qps) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4blokqe ,sc4blokq, sc4_200_4ra, sc4blokq, sc4_state, sc4blokq, ROT0, "Qps","Blockbuster (Qps) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2025 BLOCK BUSTER BUSTERSND BLOCK BUSTER (same as sc4blokq ?)
-GAMEL( 200?, sc4bbust ,sc4blokq, sc4_200_4ra, sc4blokq, sc4_state, sc4blokq, ROT0, "Mazooma","Blockbuster (Mazooma) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bbust ,sc4blokq, sc4_200_4ra, sc4blokq, sc4_state, sc4blokq, ROT0, "Mazooma","Blockbuster (Mazooma) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -31920,8 +31920,8 @@ INPUT_PORTS_START( sc4onup ) // this structure is generated
INPUT_PORTS_END
// PR2076 ON THE UP HYPE SOUNDS ON THE UP
-GAMEL( 200?, sc4onup ,0, sc4_200_5r, sc4onup, sc4_state, sc4onup, ROT0, "BFM","On The Up (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4onupa ,sc4onup, sc4_200_5r, sc4onup, sc4_state, sc4onup, ROT0, "BFM","On The Up (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4onup ,0, sc4_200_5r, sc4onup, sc4_state, sc4onup, ROT0, "BFM","On The Up (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4onupa ,sc4onup, sc4_200_5r, sc4onup, sc4_state, sc4onup, ROT0, "BFM","On The Up (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4hyper)
@@ -31979,8 +31979,8 @@ INPUT_PORTS_START( sc4hyper ) // this structure is generated
INPUT_PORTS_END
// PR2053 HYPERACTIVEL HYPE SOUNDS HYPERACTIVE
-GAMEL( 200?, sc4hyper ,0, sc4_5reel, sc4hyper, sc4_state, sc4hyper, ROT0, "Mazooma","Hyperactive (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hypera ,sc4hyper, sc4_5reel, sc4hyper, sc4_state, sc4hyper, ROT0, "Mazooma","Hyperactive (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hyper ,0, sc4_5reel, sc4hyper, sc4_state, sc4hyper, ROT0, "Mazooma","Hyperactive (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hypera ,sc4hyper, sc4_5reel, sc4hyper, sc4_state, sc4hyper, ROT0, "Mazooma","Hyperactive (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4pglcl)
@@ -32035,15 +32035,15 @@ INPUT_PORTS_START( sc4pglcl ) // this structure is generated
INPUT_PORTS_END
// PR1623 PHARAOHS GOLD PHARAOHS GOLD CLUB PR1623 CLASS PHAR GOLD SOUNDS11
-GAMEL( 200?, sc4pglcl ,0, sc4_5reel, sc4pglcl, sc4_state, sc4pglcl, ROT0, "BFM","Pharaoh's Gold Club (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PAY UNIT ERR 17
-GAMEL( 200?, sc4pglcla ,sc4pglcl, sc4_5reel, sc4pglcl, sc4_state, sc4pglcl, ROT0, "BFM","Pharaoh's Gold Club (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pglclb ,sc4pglcl, sc4_5reel, sc4pglcl, sc4_state, sc4pglcl, ROT0, "BFM","Pharaoh's Gold Club (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pglclc ,sc4pglcl, sc4_5reel, sc4pglcl, sc4_state, sc4pglcl, ROT0, "BFM","Pharaoh's Gold Club (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pglcld ,sc4pglcl, sc4_5reel, sc4pglcl, sc4_state, sc4pglcl, ROT0, "BFM","Pharaoh's Gold Club (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pglcle ,sc4pglcl, sc4_5reel, sc4pglcl, sc4_state, sc4pglcl, ROT0, "BFM","Pharaoh's Gold Club (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pglclf ,sc4pglcl, sc4_5reel, sc4pglcl, sc4_state, sc4pglcl, ROT0, "BFM","Pharaoh's Gold Club (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pglclg ,sc4pglcl, sc4_5reel, sc4pglcl, sc4_state, sc4pglcl, ROT0, "BFM","Pharaoh's Gold Club (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pglclh ,sc4pglcl, sc4_5reel, sc4pglcl, sc4_state, sc4pglcl, ROT0, "BFM","Pharaoh's Gold Club (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pglcl ,0, sc4_5reel, sc4pglcl, sc4_state, sc4pglcl, ROT0, "BFM","Pharaoh's Gold Club (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PAY UNIT ERR 17
+GAMEL( 200?, sc4pglcla ,sc4pglcl, sc4_5reel, sc4pglcl, sc4_state, sc4pglcl, ROT0, "BFM","Pharaoh's Gold Club (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pglclb ,sc4pglcl, sc4_5reel, sc4pglcl, sc4_state, sc4pglcl, ROT0, "BFM","Pharaoh's Gold Club (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pglclc ,sc4pglcl, sc4_5reel, sc4pglcl, sc4_state, sc4pglcl, ROT0, "BFM","Pharaoh's Gold Club (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pglcld ,sc4pglcl, sc4_5reel, sc4pglcl, sc4_state, sc4pglcl, ROT0, "BFM","Pharaoh's Gold Club (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pglcle ,sc4pglcl, sc4_5reel, sc4pglcl, sc4_state, sc4pglcl, ROT0, "BFM","Pharaoh's Gold Club (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pglclf ,sc4pglcl, sc4_5reel, sc4pglcl, sc4_state, sc4pglcl, ROT0, "BFM","Pharaoh's Gold Club (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pglclg ,sc4pglcl, sc4_5reel, sc4pglcl, sc4_state, sc4pglcl, ROT0, "BFM","Pharaoh's Gold Club (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pglclh ,sc4pglcl, sc4_5reel, sc4pglcl, sc4_state, sc4pglcl, ROT0, "BFM","Pharaoh's Gold Club (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4po8)
{
@@ -32102,26 +32102,26 @@ INPUT_PORTS_START( sc4po8 ) // this structure is generated
INPUT_PORTS_END
// PR2530 PIECES OF EIGHT V1.0 PIECESOFEIGHTSND PIECES OF EIGHT
-GAMEL( 200?, sc4po8 ,0, sc4_4reel, sc4po8, sc4_state, sc4po8, ROT0, "Qps","Pieces Of Eight (V1.0) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4po8e ,sc4po8, sc4_4reel, sc4po8, sc4_state, sc4po8, ROT0, "Qps","Pieces Of Eight (V1.0) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4po8f ,sc4po8, sc4_4reel, sc4po8, sc4_state, sc4po8, ROT0, "Qps","Pieces Of Eight (V1.0) (Qps) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4po8 ,0, sc4_4reel, sc4po8, sc4_state, sc4po8, ROT0, "Qps","Pieces Of Eight (V1.0) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4po8e ,sc4po8, sc4_4reel, sc4po8, sc4_state, sc4po8, ROT0, "Qps","Pieces Of Eight (V1.0) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4po8f ,sc4po8, sc4_4reel, sc4po8, sc4_state, sc4po8, ROT0, "Qps","Pieces Of Eight (V1.0) (Qps) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2530 PIECES OF EIGHT V1.1 PIECESOFEIGHTSND PIECES OF EIGHT
-GAMEL( 200?, sc4po8a ,sc4po8, sc4_4reel, sc4po8, sc4_state, sc4po8, ROT0, "Qps","Pieces Of Eight (V1.1) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4po8b ,sc4po8, sc4_4reel, sc4po8, sc4_state, sc4po8, ROT0, "Qps","Pieces Of Eight (V1.1) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4po8g ,sc4po8, sc4_4reel, sc4po8, sc4_state, sc4po8, ROT0, "Qps","Pieces Of Eight (V1.1) (Qps) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4po8h ,sc4po8, sc4_4reel, sc4po8, sc4_state, sc4po8, ROT0, "Qps","Pieces Of Eight (V1.1) (Qps) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4po8a ,sc4po8, sc4_4reel, sc4po8, sc4_state, sc4po8, ROT0, "Qps","Pieces Of Eight (V1.1) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4po8b ,sc4po8, sc4_4reel, sc4po8, sc4_state, sc4po8, ROT0, "Qps","Pieces Of Eight (V1.1) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4po8g ,sc4po8, sc4_4reel, sc4po8, sc4_state, sc4po8, ROT0, "Qps","Pieces Of Eight (V1.1) (Qps) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4po8h ,sc4po8, sc4_4reel, sc4po8, sc4_state, sc4po8, ROT0, "Qps","Pieces Of Eight (V1.1) (Qps) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2530 PIECES OF EIGHT 011 PIECESOFEIGHTSND PIECES OF EIGHT
-GAMEL( 200?, sc4po8c ,sc4po8, sc4_4reel, sc4po8, sc4_state, sc4po8_mbus, ROT0, "Qps","Pieces Of Eight (011) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4po8m ,sc4po8, sc4_4reel, sc4po8, sc4_state, sc4po8_mbus, ROT0, "QPS","Pieces Of Eight (011) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4po8c ,sc4po8, sc4_4reel, sc4po8, sc4_state, sc4po8_mbus, ROT0, "Qps","Pieces Of Eight (011) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4po8m ,sc4po8, sc4_4reel, sc4po8, sc4_state, sc4po8_mbus, ROT0, "QPS","Pieces Of Eight (011) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2530 PIECES OF EIGHT 012 PIECESOFEIGHTSND PIECES OF EIGHT
-GAMEL( 200?, sc4po8i ,sc4po8, sc4_4reel, sc4po8, sc4_state, sc4po8, ROT0, "Qps","Pieces Of Eight (012) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4po8k ,sc4po8, sc4_4reel, sc4po8, sc4_state, sc4po8, ROT0, "Qps","Pieces Of Eight (012) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4po8i ,sc4po8, sc4_4reel, sc4po8, sc4_state, sc4po8, ROT0, "Qps","Pieces Of Eight (012) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4po8k ,sc4po8, sc4_4reel, sc4po8, sc4_state, sc4po8, ROT0, "Qps","Pieces Of Eight (012) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2530 PIECES OF EIGHT 041 PIECESOFEIGHTSND PIECES OF EIGHT
-GAMEL( 200?, sc4po8d ,sc4po8, sc4_4reel, sc4po8, sc4_state, sc4po8_mbus, ROT0, "Qps","Pieces Of Eight (041) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4po8n ,sc4po8, sc4_4reel, sc4po8, sc4_state, sc4po8_mbus, ROT0, "QPS","Pieces Of Eight (041) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4po8d ,sc4po8, sc4_4reel, sc4po8, sc4_state, sc4po8_mbus, ROT0, "Qps","Pieces Of Eight (041) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4po8n ,sc4po8, sc4_4reel, sc4po8, sc4_state, sc4po8_mbus, ROT0, "QPS","Pieces Of Eight (041) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2530 PIECES OF EIGHT 042 PIECESOFEIGHTSND PIECES OF EIGHT
-GAMEL( 200?, sc4po8j ,sc4po8, sc4_4reel, sc4po8, sc4_state, sc4po8, ROT0, "Qps","Pieces Of Eight (042) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4po8l ,sc4po8, sc4_4reel, sc4po8, sc4_state, sc4po8, ROT0, "Qps","Pieces Of Eight (042) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4po8j ,sc4po8, sc4_4reel, sc4po8, sc4_state, sc4po8, ROT0, "Qps","Pieces Of Eight (042) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4po8l ,sc4po8, sc4_4reel, sc4po8, sc4_state, sc4po8, ROT0, "Qps","Pieces Of Eight (042) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -32197,16 +32197,16 @@ INPUT_PORTS_START( sc4adjb ) // this structure is generated
INPUT_PORTS_END
// PR3039 AWP ANT N DECS JIGGY BANK S4 PR3009 JIGGY BANK SOUNDS11 JIGGY BANK S.SITE
-GAMEL( 200?, sc4adjb ,0, sc4_5reel_alt, sc4adjb, sc4_state, sc4adjb, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4adjba ,sc4adjb, sc4_5reel_alt, sc4adjb, sc4_state, sc4adjb, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 4) (Set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4adjbb ,sc4adjb, sc4_5reel_alt, sc4adjb, sc4_state, sc4adjb, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 4) (Set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4adjbc ,sc4adjb, sc4_5reel_alt, sc4adjb, sc4_state, sc4adjb, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 4) (Set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4adjbd ,sc4adjb, sc4_5reel_alt, sc4adjb, sc4_state, sc4adjb, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 4) (Set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4adjbe ,sc4adjb, sc4_5reel_alt, sc4adjb, sc4_state, sc4adjb, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 4) (Set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4adjbf ,sc4adjb, sc4_5reel_alt, sc4adjb, sc4_state, sc4adjb, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 4) (Set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4adjbg ,sc4adjb, sc4_5reel_alt, sc4adjb, sc4_state, sc4adjb, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 4) (Set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4adjbh ,sc4adjb, sc4_5reel_alt, sc4adjb, sc4_state, sc4adjb, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 4) (Set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4adjbi ,sc4adjb, sc4_5reel_alt, sc4adjb, sc4_state, sc4adjb, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 4) (Set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4adjb ,0, sc4_5reel_alt, sc4adjb, sc4_state, sc4adjb, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4adjba ,sc4adjb, sc4_5reel_alt, sc4adjb, sc4_state, sc4adjb, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 4) (Set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4adjbb ,sc4adjb, sc4_5reel_alt, sc4adjb, sc4_state, sc4adjb, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 4) (Set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4adjbc ,sc4adjb, sc4_5reel_alt, sc4adjb, sc4_state, sc4adjb, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 4) (Set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4adjbd ,sc4adjb, sc4_5reel_alt, sc4adjb, sc4_state, sc4adjb, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 4) (Set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4adjbe ,sc4adjb, sc4_5reel_alt, sc4adjb, sc4_state, sc4adjb, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 4) (Set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4adjbf ,sc4adjb, sc4_5reel_alt, sc4adjb, sc4_state, sc4adjb, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 4) (Set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4adjbg ,sc4adjb, sc4_5reel_alt, sc4adjb, sc4_state, sc4adjb, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 4) (Set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4adjbh ,sc4adjb, sc4_5reel_alt, sc4adjb, sc4_state, sc4adjb, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 4) (Set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4adjbi ,sc4adjb, sc4_5reel_alt, sc4adjb, sc4_state, sc4adjb, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 4) (Set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4adwta)
@@ -32279,8 +32279,8 @@ INPUT_PORTS_START( sc4adwta ) // this structure is generated
INPUT_PORTS_END
// PR1940 AWP ANT N DECS WTAD S4 PR1940 ADSNT SHOWTIME SOUNDS11 ANTNDECSWTAD S.SITE
-GAMEL( 200?, sc4adwta ,0, sc4_5reel, sc4adwta, sc4_state, sc4adwta, ROT0, "BFM","Ant & Dec's Saturday Night Takeaway Win The Ads (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4adwtaa ,sc4adwta, sc4_5reel, sc4adwta, sc4_state, sc4adwta, ROT0, "BFM","Ant & Dec's Saturday Night Takeaway Win The Ads (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4adwta ,0, sc4_5reel, sc4adwta, sc4_state, sc4adwta, ROT0, "BFM","Ant & Dec's Saturday Night Takeaway Win The Ads (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4adwtaa ,sc4adwta, sc4_5reel, sc4adwta, sc4_state, sc4adwta, ROT0, "BFM","Ant & Dec's Saturday Night Takeaway Win The Ads (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4a40)
@@ -32336,10 +32336,10 @@ INPUT_PORTS_START( sc4a40 ) // this structure is generated
INPUT_PORTS_END
// PR2200 AROUND THE BOARD AROU SOUNDS AROUND THE BOARD
-GAMEL( 200?, sc4a40 ,0, sc4_5reel, sc4a40, sc4_state, sc4a40, ROT0, "Mazooma","Around The Board In 40 Days (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4a40a ,sc4a40, sc4_5reel, sc4a40, sc4_state, sc4a40, ROT0, "Mazooma","Around The Board In 40 Days (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4a40b ,sc4a40, sc4_5reel, sc4a40, sc4_state, sc4a40, ROT0, "Mazooma","Around The Board In 40 Days (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4a40c ,sc4a40, sc4_5reel, sc4a40, sc4_state, sc4a40, ROT0, "Mazooma","Around The Board In 40 Days (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4a40 ,0, sc4_5reel, sc4a40, sc4_state, sc4a40, ROT0, "Mazooma","Around The Board In 40 Days (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4a40a ,sc4a40, sc4_5reel, sc4a40, sc4_state, sc4a40, ROT0, "Mazooma","Around The Board In 40 Days (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4a40b ,sc4a40, sc4_5reel, sc4a40, sc4_state, sc4a40, ROT0, "Mazooma","Around The Board In 40 Days (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4a40c ,sc4a40, sc4_5reel, sc4a40, sc4_state, sc4a40, ROT0, "Mazooma","Around The Board In 40 Days (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4a40cl)
{
@@ -32404,10 +32404,10 @@ INPUT_PORTS_START( sc4a40cl ) // this structure is generated
INPUT_PORTS_END
// PR2154 CLUB AROUND BOAR CLB AROUND BOARD CLUB AROU SOUNDS
-GAMEL( 200?, sc4a40cl ,0, sc4_5reel, sc4a40cl, sc4_state, sc4a40cl, ROT0, "Mazooma","Around The Board In 40 Days Club (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4a40cla ,sc4a40cl, sc4_5reel, sc4a40cl, sc4_state, sc4a40cl, ROT0, "Mazooma","Around The Board In 40 Days Club (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4a40clb ,sc4a40cl, sc4_5reel, sc4a40cl, sc4_state, sc4a40cl, ROT0, "Mazooma","Around The Board In 40 Days Club (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4a40clc ,sc4a40cl, sc4_5reel, sc4a40cl, sc4_state, sc4a40cl, ROT0, "Mazooma","Around The Board In 40 Days Club (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4a40cl ,0, sc4_5reel, sc4a40cl, sc4_state, sc4a40cl, ROT0, "Mazooma","Around The Board In 40 Days Club (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4a40cla ,sc4a40cl, sc4_5reel, sc4a40cl, sc4_state, sc4a40cl, ROT0, "Mazooma","Around The Board In 40 Days Club (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4a40clb ,sc4a40cl, sc4_5reel, sc4a40cl, sc4_state, sc4a40cl, ROT0, "Mazooma","Around The Board In 40 Days Club (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4a40clc ,sc4a40cl, sc4_5reel, sc4a40cl, sc4_state, sc4a40cl, ROT0, "Mazooma","Around The Board In 40 Days Club (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4bantm)
@@ -32483,10 +32483,10 @@ INPUT_PORTS_START( sc4bantm ) // this structure is generated
INPUT_PORTS_END
// PR2301 BANTAM OF THE OPERA BANTAM SOUNDS BANTAMOFTHEOPERA
-GAMEL( 200?, sc4bantm ,0, sc4_200_4ra, sc4bantm, sc4_state, sc4bantm, ROT0, "Mazooma","Bantam Of The Opera (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bantma ,sc4bantm, sc4_200_4ra, sc4bantm, sc4_state, sc4bantm, ROT0, "Mazooma","Bantam Of The Opera (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bantmb ,sc4bantm, sc4_200_4ra, sc4bantm, sc4_state, sc4bantm, ROT0, "Mazooma","Bantam Of The Opera (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bantmc ,sc4bantm, sc4_200_4ra, sc4bantm, sc4_state, sc4bantm, ROT0, "Mazooma","Bantam Of The Opera (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bantm ,0, sc4_200_4ra, sc4bantm, sc4_state, sc4bantm, ROT0, "Mazooma","Bantam Of The Opera (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bantma ,sc4bantm, sc4_200_4ra, sc4bantm, sc4_state, sc4bantm, ROT0, "Mazooma","Bantam Of The Opera (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bantmb ,sc4bantm, sc4_200_4ra, sc4bantm, sc4_state, sc4bantm, ROT0, "Mazooma","Bantam Of The Opera (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bantmc ,sc4bantm, sc4_200_4ra, sc4bantm, sc4_state, sc4bantm, ROT0, "Mazooma","Bantam Of The Opera (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -32608,14 +32608,14 @@ INPUT_PORTS_START( sc4bar7b ) // this structure is generated
INPUT_PORTS_END
// PR1433 BAR7S PR1433 BAR SEVENS SOUNDS11
-GAMEL( 200?, sc4bar7 ,0, sc4_3reel, sc4bar7, sc4_state, sc4bar7, ROT0, "BFM","Bar 7's (PR1433) (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bar7a ,sc4bar7, sc4_3reel, sc4bar7, sc4_state, sc4bar7, ROT0, "BFM","Bar 7's (PR1433) (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bar7 ,0, sc4_3reel, sc4bar7, sc4_state, sc4bar7, ROT0, "BFM","Bar 7's (PR1433) (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bar7a ,sc4bar7, sc4_3reel, sc4bar7, sc4_state, sc4bar7, ROT0, "BFM","Bar 7's (PR1433) (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// INIT COMMS (optional top box for above maybe?)
// PR1438 BAR7S PR1436 TRIPLE CASINO SOUNDS11
-GAMEL( 200?, sc4bar7b ,sc4bar7, sc4_3reel, sc4bar7b, sc4_state, sc4, ROT0, "BFM","Bar 7's (PR1438) (Bellfruit) (Scorpion 4) (Top Box?, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bar7c ,sc4bar7, sc4_3reel, sc4bar7b, sc4_state, sc4, ROT0, "BFM","Bar 7's (PR1438) (Bellfruit) (Scorpion 4) (Top Box?, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bar7d ,sc4bar7, sc4_3reel, sc4bar7b, sc4_state, sc4, ROT0, "BFM","Bar 7's (PR1438) (Bellfruit) (Scorpion 4) (Top Box?, set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bar7e ,sc4bar7, sc4_3reel, sc4bar7b, sc4_state, sc4, ROT0, "BFM","Bar 7's (PR1438) (Bellfruit) (Scorpion 4) (Top Box?, set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bar7b ,sc4bar7, sc4_3reel, sc4bar7b, sc4_state, sc4, ROT0, "BFM","Bar 7's (PR1438) (Bellfruit) (Scorpion 4) (Top Box?, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bar7c ,sc4bar7, sc4_3reel, sc4bar7b, sc4_state, sc4, ROT0, "BFM","Bar 7's (PR1438) (Bellfruit) (Scorpion 4) (Top Box?, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bar7d ,sc4bar7, sc4_3reel, sc4bar7b, sc4_state, sc4, ROT0, "BFM","Bar 7's (PR1438) (Bellfruit) (Scorpion 4) (Top Box?, set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bar7e ,sc4bar7, sc4_3reel, sc4bar7b, sc4_state, sc4, ROT0, "BFM","Bar 7's (PR1438) (Bellfruit) (Scorpion 4) (Top Box?, set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4batl)
@@ -32686,8 +32686,8 @@ INPUT_PORTS_START( sc4batl ) // this structure is generated
INPUT_PORTS_END
// PR1724 AWP BATTLESHIPS AND CRUISERS S4 PR1704 B AND C SOUNDS11 BATTLESHIPSCRUIS S.SITE
-GAMEL( 200?, sc4batl ,0, sc4, sc4batl, sc4_state, sc4batl, ROT0, "BFM","Battleships & Cruisers (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4batla ,sc4batl, sc4, sc4batl, sc4_state, sc4batl, ROT0, "BFM","Battleships & Cruisers (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4batl ,0, sc4, sc4batl, sc4_state, sc4batl, ROT0, "BFM","Battleships & Cruisers (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4batla ,sc4batl, sc4, sc4batl, sc4_state, sc4batl, ROT0, "BFM","Battleships & Cruisers (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -32760,10 +32760,10 @@ INPUT_PORTS_START( sc4bull ) // this structure is generated
INPUT_PORTS_END
// PR1722 AWP BULLSEYE SCORP4 PR1702 BULLSEYE SOUNDS11 BULLSEYE S.SITE
-GAMEL( 200?, sc4bull ,0, sc4_200_4ra, sc4bull, sc4_state, sc4bull, ROT0, "BFM","Bullseye (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bulla ,sc4bull, sc4_200_4ra, sc4bull, sc4_state, sc4bull, ROT0, "BFM","Bullseye (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bullb ,sc4bull, sc4_200_4ra, sc4bull, sc4_state, sc4bull, ROT0, "BFM","Bullseye (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bullc ,sc4bull, sc4_200_4ra, sc4bull, sc4_state, sc4bull, ROT0, "BFM","Bullseye (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bull ,0, sc4_200_4ra, sc4bull, sc4_state, sc4bull, ROT0, "BFM","Bullseye (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bulla ,sc4bull, sc4_200_4ra, sc4bull, sc4_state, sc4bull, ROT0, "BFM","Bullseye (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bullb ,sc4bull, sc4_200_4ra, sc4bull, sc4_state, sc4bull, ROT0, "BFM","Bullseye (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bullc ,sc4bull, sc4_200_4ra, sc4bull, sc4_state, sc4bull, ROT0, "BFM","Bullseye (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4bullcs)
@@ -32834,10 +32834,10 @@ INPUT_PORTS_START( sc4bulcs ) // this structure is generated
INPUT_PORTS_END
// PR1740 AWP BULLSEYE CLASSIC SCORP4 PR1702 BULLSEYE SOUNDS11 BULLSEYE CLASSIC S.SITE
-GAMEL( 200?, sc4bulcs ,0, sc4_200_4ra, sc4bulcs, sc4_state, sc4bullcs, ROT0, "BFM","Bullseye Classic (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bulcsa ,sc4bulcs, sc4_200_4ra, sc4bulcs, sc4_state, sc4bullcs, ROT0, "BFM","Bullseye Classic (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bulcsb ,sc4bulcs, sc4_200_4ra, sc4bulcs, sc4_state, sc4bullcs, ROT0, "BFM","Bullseye Classic (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bulcsc ,sc4bulcs, sc4_200_4ra, sc4bulcs, sc4_state, sc4bullcs, ROT0, "BFM","Bullseye Classic (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bulcs ,0, sc4_200_4ra, sc4bulcs, sc4_state, sc4bullcs, ROT0, "BFM","Bullseye Classic (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bulcsa ,sc4bulcs, sc4_200_4ra, sc4bulcs, sc4_state, sc4bullcs, ROT0, "BFM","Bullseye Classic (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bulcsb ,sc4bulcs, sc4_200_4ra, sc4bulcs, sc4_state, sc4bullcs, ROT0, "BFM","Bullseye Classic (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bulcsc ,sc4bulcs, sc4_200_4ra, sc4bulcs, sc4_state, sc4bullcs, ROT0, "BFM","Bullseye Classic (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4butch)
@@ -32912,14 +32912,14 @@ INPUT_PORTS_START( sc4butch ) // this structure is generated
INPUT_PORTS_END
// PR1930 AWP BUTCH CASHIDY AND THE SUNDANCE QUID S4 PR1910 B C AND THE S Q SOUNDS11 BUTCH N SUNDANCE S.SITE
-GAMEL( 200?, sc4butch ,0, sc4_4reel_alt, sc4butch, sc4_state, sc4butch, ROT0, "BFM","Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4butcha ,sc4butch, sc4_4reel_alt, sc4butch, sc4_state, sc4butch, ROT0, "BFM","Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4butchb ,sc4butch, sc4_4reel_alt, sc4butch, sc4_state, sc4butch, ROT0, "BFM","Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4butchc ,sc4butch, sc4_4reel_alt, sc4butch, sc4_state, sc4butch, ROT0, "BFM","Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4butchd ,sc4butch, sc4_4reel_alt, sc4butch, sc4_state, sc4butch, ROT0, "BFM","Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4butche ,sc4butch, sc4_4reel_alt, sc4butch, sc4_state, sc4butch, ROT0, "BFM","Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4butchf ,sc4butch, sc4_4reel_alt, sc4butch, sc4_state, sc4butch, ROT0, "BFM","Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4butchg ,sc4butch, sc4_4reel_alt, sc4butch, sc4_state, sc4butch, ROT0, "BFM","Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4butch ,0, sc4_4reel_alt, sc4butch, sc4_state, sc4butch, ROT0, "BFM","Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4butcha ,sc4butch, sc4_4reel_alt, sc4butch, sc4_state, sc4butch, ROT0, "BFM","Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4butchb ,sc4butch, sc4_4reel_alt, sc4butch, sc4_state, sc4butch, ROT0, "BFM","Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4butchc ,sc4butch, sc4_4reel_alt, sc4butch, sc4_state, sc4butch, ROT0, "BFM","Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4butchd ,sc4butch, sc4_4reel_alt, sc4butch, sc4_state, sc4butch, ROT0, "BFM","Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4butche ,sc4butch, sc4_4reel_alt, sc4butch, sc4_state, sc4butch, ROT0, "BFM","Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4butchf ,sc4butch, sc4_4reel_alt, sc4butch, sc4_state, sc4butch, ROT0, "BFM","Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4butchg ,sc4butch, sc4_4reel_alt, sc4butch, sc4_state, sc4butch, ROT0, "BFM","Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
//was sc4_200_4ra, but that spins forever, so wrong
@@ -32981,20 +32981,20 @@ INPUT_PORTS_START( sc4cabin ) // this structure is generated
INPUT_PORTS_END
// PR2209 CABIN FEVER CABF SOUNDS CABIN FEVER
-GAMEL( 200?, sc4cabin ,0, sc4, sc4cabin, sc4_state, sc4cabin, ROT0, "Mazooma","Cabin Fever (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cabina ,sc4cabin, sc4, sc4cabin, sc4_state, sc4cabin, ROT0, "Mazooma","Cabin Fever (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cabinb ,sc4cabin, sc4, sc4cabin, sc4_state, sc4cabin, ROT0, "Mazooma","Cabin Fever (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cabinc ,sc4cabin, sc4, sc4cabin, sc4_state, sc4cabin, ROT0, "Mazooma","Cabin Fever (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cabind ,sc4cabin, sc4, sc4cabin, sc4_state, sc4cabin, ROT0, "Mazooma","Cabin Fever (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cabine ,sc4cabin, sc4, sc4cabin, sc4_state, sc4cabin, ROT0, "Mazooma","Cabin Fever (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cabinf ,sc4cabin, sc4, sc4cabin, sc4_state, sc4cabin, ROT0, "Mazooma","Cabin Fever (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cabing ,sc4cabin, sc4, sc4cabin, sc4_state, sc4cabin, ROT0, "Mazooma","Cabin Fever (Mazooma) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cabinh ,sc4cabin, sc4, sc4cabin, sc4_state, sc4cabin, ROT0, "Mazooma","Cabin Fever (Mazooma) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cabini ,sc4cabin, sc4, sc4cabin, sc4_state, sc4cabin, ROT0, "Mazooma","Cabin Fever (Mazooma) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cabinj ,sc4cabin, sc4, sc4cabin, sc4_state, sc4cabin, ROT0, "Mazooma","Cabin Fever (Mazooma) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cabink ,sc4cabin, sc4, sc4cabin, sc4_state, sc4cabin, ROT0, "Mazooma","Cabin Fever (Mazooma) (Scorpion 4) (set 12)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cabinl ,sc4cabin, sc4, sc4cabin, sc4_state, sc4cabin, ROT0, "Mazooma","Cabin Fever (Mazooma) (Scorpion 4) (set 13)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cabinm ,sc4cabin, sc4, sc4cabin, sc4_state, sc4cabin, ROT0, "Mazooma","Cabin Fever (Mazooma) (Scorpion 4) (set 14)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cabin ,0, sc4, sc4cabin, sc4_state, sc4cabin, ROT0, "Mazooma","Cabin Fever (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cabina ,sc4cabin, sc4, sc4cabin, sc4_state, sc4cabin, ROT0, "Mazooma","Cabin Fever (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cabinb ,sc4cabin, sc4, sc4cabin, sc4_state, sc4cabin, ROT0, "Mazooma","Cabin Fever (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cabinc ,sc4cabin, sc4, sc4cabin, sc4_state, sc4cabin, ROT0, "Mazooma","Cabin Fever (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cabind ,sc4cabin, sc4, sc4cabin, sc4_state, sc4cabin, ROT0, "Mazooma","Cabin Fever (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cabine ,sc4cabin, sc4, sc4cabin, sc4_state, sc4cabin, ROT0, "Mazooma","Cabin Fever (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cabinf ,sc4cabin, sc4, sc4cabin, sc4_state, sc4cabin, ROT0, "Mazooma","Cabin Fever (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cabing ,sc4cabin, sc4, sc4cabin, sc4_state, sc4cabin, ROT0, "Mazooma","Cabin Fever (Mazooma) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cabinh ,sc4cabin, sc4, sc4cabin, sc4_state, sc4cabin, ROT0, "Mazooma","Cabin Fever (Mazooma) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cabini ,sc4cabin, sc4, sc4cabin, sc4_state, sc4cabin, ROT0, "Mazooma","Cabin Fever (Mazooma) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cabinj ,sc4cabin, sc4, sc4cabin, sc4_state, sc4cabin, ROT0, "Mazooma","Cabin Fever (Mazooma) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cabink ,sc4cabin, sc4, sc4cabin, sc4_state, sc4cabin, ROT0, "Mazooma","Cabin Fever (Mazooma) (Scorpion 4) (set 12)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cabinl ,sc4cabin, sc4, sc4cabin, sc4_state, sc4cabin, ROT0, "Mazooma","Cabin Fever (Mazooma) (Scorpion 4) (set 13)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cabinm ,sc4cabin, sc4, sc4cabin, sc4_state, sc4cabin, ROT0, "Mazooma","Cabin Fever (Mazooma) (Scorpion 4) (set 14)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4cari)
@@ -33056,12 +33056,12 @@ INPUT_PORTS_START( sc4cari ) // this structure is generated
INPUT_PORTS_END
// PR2326 CARIBBEAN CASH CABC SOUNDS CARIBBEAN CASH
-GAMEL( 200?, sc4cari ,0, sc4_200_4ra, sc4cari, sc4_state, sc4cari, ROT0, "Mazooma","Caribbean Cash (PR2326) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4caria ,sc4cari, sc4_200_4ra, sc4cari, sc4_state, sc4cari, ROT0, "Mazooma","Caribbean Cash (PR2326) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4carib ,sc4cari, sc4_200_4ra, sc4cari, sc4_state, sc4cari, ROT0, "Mazooma","Caribbean Cash (PR2326) (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4caric ,sc4cari, sc4_200_4ra, sc4cari, sc4_state, sc4cari, ROT0, "Mazooma","Caribbean Cash (PR2326) (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4carid ,sc4cari, sc4_200_4ra, sc4cari, sc4_state, sc4cari, ROT0, "Mazooma","Caribbean Cash (PR2326) (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4carie ,sc4cari, sc4_200_4ra, sc4cari, sc4_state, sc4cari, ROT0, "Mazooma","Caribbean Cash (PR2326) (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cari ,0, sc4_200_4ra, sc4cari, sc4_state, sc4cari, ROT0, "Mazooma","Caribbean Cash (PR2326) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4caria ,sc4cari, sc4_200_4ra, sc4cari, sc4_state, sc4cari, ROT0, "Mazooma","Caribbean Cash (PR2326) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4carib ,sc4cari, sc4_200_4ra, sc4cari, sc4_state, sc4cari, ROT0, "Mazooma","Caribbean Cash (PR2326) (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4caric ,sc4cari, sc4_200_4ra, sc4cari, sc4_state, sc4cari, ROT0, "Mazooma","Caribbean Cash (PR2326) (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4carid ,sc4cari, sc4_200_4ra, sc4cari, sc4_state, sc4cari, ROT0, "Mazooma","Caribbean Cash (PR2326) (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4carie ,sc4cari, sc4_200_4ra, sc4cari, sc4_state, sc4cari, ROT0, "Mazooma","Caribbean Cash (PR2326) (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4cariq)
@@ -33119,14 +33119,14 @@ INPUT_PORTS_START( sc4cariq ) // this structure is generated
INPUT_PORTS_END
// these lack identification strings, and it's not the same game as above
-GAMEL( 200?, sc4cariq ,0, sc4_4reel, sc4cariq, sc4_state, sc4cariq, ROT0, "Qps","Caribbean Cash (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cariqa ,sc4cariq, sc4_4reel, sc4cariq, sc4_state, sc4cariq, ROT0, "Qps","Caribbean Cash (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cariqb ,sc4cariq, sc4_4reel, sc4cariq, sc4_state, sc4cariq, ROT0, "Qps","Caribbean Cash (Qps) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cariqc ,sc4cariq, sc4_4reel, sc4cariq, sc4_state, sc4cariq, ROT0, "Qps","Caribbean Cash (Qps) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cariqd ,sc4cariq, sc4_4reel, sc4cariq, sc4_state, sc4cariq, ROT0, "Qps","Caribbean Cash (Qps) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cariqe ,sc4cariq, sc4_4reel, sc4cariq, sc4_state, sc4cariq, ROT0, "Qps","Caribbean Cash (Qps) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cariqf ,sc4cariq, sc4_4reel, sc4cariq, sc4_state, sc4cariq, ROT0, "Qps","Caribbean Cash (Qps) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cariqg ,sc4cariq, sc4_4reel, sc4cariq, sc4_state, sc4cariq, ROT0, "Qps","Caribbean Cash (Qps) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cariq ,0, sc4_4reel, sc4cariq, sc4_state, sc4cariq, ROT0, "Qps","Caribbean Cash (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cariqa ,sc4cariq, sc4_4reel, sc4cariq, sc4_state, sc4cariq, ROT0, "Qps","Caribbean Cash (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cariqb ,sc4cariq, sc4_4reel, sc4cariq, sc4_state, sc4cariq, ROT0, "Qps","Caribbean Cash (Qps) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cariqc ,sc4cariq, sc4_4reel, sc4cariq, sc4_state, sc4cariq, ROT0, "Qps","Caribbean Cash (Qps) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cariqd ,sc4cariq, sc4_4reel, sc4cariq, sc4_state, sc4cariq, ROT0, "Qps","Caribbean Cash (Qps) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cariqe ,sc4cariq, sc4_4reel, sc4cariq, sc4_state, sc4cariq, ROT0, "Qps","Caribbean Cash (Qps) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cariqf ,sc4cariq, sc4_4reel, sc4cariq, sc4_state, sc4cariq, ROT0, "Qps","Caribbean Cash (Qps) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cariqg ,sc4cariq, sc4_4reel, sc4cariq, sc4_state, sc4cariq, ROT0, "Qps","Caribbean Cash (Qps) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4cblas)
@@ -33199,8 +33199,8 @@ INPUT_PORTS_START( sc4cblas ) // this structure is generated
INPUT_PORTS_END
// PR1683 BLAS14
-GAMEL( 200?, sc4cblas ,0, sc4_4reel_alt, sc4cblas, sc4_state, sc4cblas, ROT0, "Voodoo Games","Cash Blast (Voodoo Games) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cblasa ,sc4cblas, sc4_4reel_alt, sc4cblas, sc4_state, sc4cblas, ROT0, "Voodoo Games","Cash Blast (Voodoo Games) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cblas ,0, sc4_4reel_alt, sc4cblas, sc4_state, sc4cblas, ROT0, "Voodoo Games","Cash Blast (Voodoo Games) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cblasa ,sc4cblas, sc4_4reel_alt, sc4cblas, sc4_state, sc4cblas, ROT0, "Voodoo Games","Cash Blast (Voodoo Games) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -33267,12 +33267,12 @@ INPUT_PORTS_START( sc4casxt ) // this structure is generated
INPUT_PORTS_END
// PR2338 XTRAVAGANZA XTRV SOUNDS XTRAVAGANZA
-GAMEL( 200?, sc4casxt ,0, sc4_3reel_200_48, sc4casxt, sc4_state, sc4casxt, ROT0, "Mazooma","Casino Xtravaganza (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4casxta ,sc4casxt, sc4_3reel_200_48, sc4casxt, sc4_state, sc4casxt, ROT0, "Mazooma","Casino Xtravaganza (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4casxtb ,sc4casxt, sc4_3reel_200_48, sc4casxt, sc4_state, sc4casxt, ROT0, "Mazooma","Casino Xtravaganza (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4casxtc ,sc4casxt, sc4_3reel_200_48, sc4casxt, sc4_state, sc4casxt, ROT0, "Mazooma","Casino Xtravaganza (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4casxtd ,sc4casxt, sc4_3reel_200_48, sc4casxt, sc4_state, sc4casxt, ROT0, "Mazooma","Casino Xtravaganza (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4casxte ,sc4casxt, sc4_3reel_200_48, sc4casxt, sc4_state, sc4casxt, ROT0, "Mazooma","Casino Xtravaganza (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4casxt ,0, sc4_3reel_200_48, sc4casxt, sc4_state, sc4casxt, ROT0, "Mazooma","Casino Xtravaganza (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4casxta ,sc4casxt, sc4_3reel_200_48, sc4casxt, sc4_state, sc4casxt, ROT0, "Mazooma","Casino Xtravaganza (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4casxtb ,sc4casxt, sc4_3reel_200_48, sc4casxt, sc4_state, sc4casxt, ROT0, "Mazooma","Casino Xtravaganza (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4casxtc ,sc4casxt, sc4_3reel_200_48, sc4casxt, sc4_state, sc4casxt, ROT0, "Mazooma","Casino Xtravaganza (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4casxtd ,sc4casxt, sc4_3reel_200_48, sc4casxt, sc4_state, sc4casxt, ROT0, "Mazooma","Casino Xtravaganza (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4casxte ,sc4casxt, sc4_3reel_200_48, sc4casxt, sc4_state, sc4casxt, ROT0, "Mazooma","Casino Xtravaganza (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4chavi)
@@ -33338,14 +33338,14 @@ INPUT_PORTS_START( sc4chavi ) // this structure is generated
INPUT_PORTS_END
// PR1731 AWP CHAV IT SCORP4 PR1711 CHAV IT SOUNDS11 CHAV IT S.SITE
-GAMEL( 200?, sc4chavi ,0, sc4, sc4chavi, sc4_state, sc4chavi, ROT0, "BFM","Chav It (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4chavia ,sc4chavi, sc4, sc4chavi, sc4_state, sc4chavi, ROT0, "BFM","Chav It (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4chavib ,sc4chavi, sc4, sc4chavi, sc4_state, sc4chavi, ROT0, "BFM","Chav It (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4chavic ,sc4chavi, sc4, sc4chavi, sc4_state, sc4chavi, ROT0, "BFM","Chav It (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4chavid ,sc4chavi, sc4, sc4chavi, sc4_state, sc4chavi, ROT0, "BFM","Chav It (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4chavie ,sc4chavi, sc4, sc4chavi, sc4_state, sc4chavi, ROT0, "BFM","Chav It (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4chavif ,sc4chavi, sc4, sc4chavi, sc4_state, sc4chavi, ROT0, "BFM","Chav It (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4chavig ,sc4chavi, sc4, sc4chavi, sc4_state, sc4chavi, ROT0, "BFM","Chav It (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4chavi ,0, sc4, sc4chavi, sc4_state, sc4chavi, ROT0, "BFM","Chav It (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4chavia ,sc4chavi, sc4, sc4chavi, sc4_state, sc4chavi, ROT0, "BFM","Chav It (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4chavib ,sc4chavi, sc4, sc4chavi, sc4_state, sc4chavi, ROT0, "BFM","Chav It (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4chavic ,sc4chavi, sc4, sc4chavi, sc4_state, sc4chavi, ROT0, "BFM","Chav It (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4chavid ,sc4chavi, sc4, sc4chavi, sc4_state, sc4chavi, ROT0, "BFM","Chav It (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4chavie ,sc4chavi, sc4, sc4chavi, sc4_state, sc4chavi, ROT0, "BFM","Chav It (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4chavif ,sc4chavi, sc4, sc4chavi, sc4_state, sc4chavi, ROT0, "BFM","Chav It (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4chavig ,sc4chavi, sc4, sc4chavi, sc4_state, sc4chavi, ROT0, "BFM","Chav It (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4chavy)
@@ -33402,14 +33402,14 @@ INPUT_PORTS_START( sc4chavy ) // this structure is generated
INPUT_PORTS_END
// PR2305 CHAVVY CHASE CHVY SOUNDS
-GAMEL( 200?, sc4chavy ,0, sc4_5reel_alt, sc4chavy, sc4_state, sc4chavy, ROT0, "Mazooma","Chavy Chase (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4chavya ,sc4chavy, sc4_5reel_alt, sc4chavy, sc4_state, sc4chavy, ROT0, "Mazooma","Chavy Chase (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4chavyb ,sc4chavy, sc4_5reel_alt, sc4chavy, sc4_state, sc4chavy, ROT0, "Mazooma","Chavy Chase (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4chavyc ,sc4chavy, sc4_5reel_alt, sc4chavy, sc4_state, sc4chavy, ROT0, "Mazooma","Chavy Chase (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4chavyd ,sc4chavy, sc4_5reel_alt, sc4chavy, sc4_state, sc4chavy, ROT0, "Mazooma","Chavy Chase (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4chavye ,sc4chavy, sc4_5reel_alt, sc4chavy, sc4_state, sc4chavy, ROT0, "Mazooma","Chavy Chase (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4chavyf ,sc4chavy, sc4_5reel_alt, sc4chavy, sc4_state, sc4chavy, ROT0, "Mazooma","Chavy Chase (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4chavyg ,sc4chavy, sc4_5reel_alt, sc4chavy, sc4_state, sc4chavy, ROT0, "Mazooma","Chavy Chase (Mazooma) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4chavy ,0, sc4_5reel_alt, sc4chavy, sc4_state, sc4chavy, ROT0, "Mazooma","Chavy Chase (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4chavya ,sc4chavy, sc4_5reel_alt, sc4chavy, sc4_state, sc4chavy, ROT0, "Mazooma","Chavy Chase (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4chavyb ,sc4chavy, sc4_5reel_alt, sc4chavy, sc4_state, sc4chavy, ROT0, "Mazooma","Chavy Chase (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4chavyc ,sc4chavy, sc4_5reel_alt, sc4chavy, sc4_state, sc4chavy, ROT0, "Mazooma","Chavy Chase (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4chavyd ,sc4chavy, sc4_5reel_alt, sc4chavy, sc4_state, sc4chavy, ROT0, "Mazooma","Chavy Chase (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4chavye ,sc4chavy, sc4_5reel_alt, sc4chavy, sc4_state, sc4chavy, ROT0, "Mazooma","Chavy Chase (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4chavyf ,sc4chavy, sc4_5reel_alt, sc4chavy, sc4_state, sc4chavy, ROT0, "Mazooma","Chavy Chase (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4chavyg ,sc4chavy, sc4_5reel_alt, sc4chavy, sc4_state, sc4chavy, ROT0, "Mazooma","Chavy Chase (Mazooma) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4cmani)
@@ -33489,8 +33489,8 @@ INPUT_PORTS_START( sc4cmani ) // this structure is generated
INPUT_PORTS_END
// PR1308 COLOUR MANIA PR1308 COLOUR MAN SOUNDS11
-GAMEL( 200?, sc4cmani ,0, sc4_200_4rb, sc4cmani, sc4_state, sc4cmani, ROT0, "BFM","Colour Mania (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cmania ,sc4cmani, sc4_200_4rb, sc4cmani, sc4_state, sc4cmani, ROT0, "BFM","Colour Mania (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cmani ,0, sc4_200_4rb, sc4cmani, sc4_state, sc4cmani, ROT0, "BFM","Colour Mania (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cmania ,sc4cmani, sc4_200_4rb, sc4cmani, sc4_state, sc4cmani, ROT0, "BFM","Colour Mania (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4ctl)
@@ -33562,12 +33562,12 @@ INPUT_PORTS_END
// PR1109 AWP COP THE LOT PR1109 CTLOT SOUNDS11
-GAMEL( 200?, sc4ctl ,0, sc4_200_5r, sc4ctl, sc4_state, sc4ctl, ROT0, "BFM","Cop The Lot (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ctla ,sc4ctl, sc4_200_5r, sc4ctl, sc4_state, sc4ctl, ROT0, "BFM","Cop The Lot (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ctlb ,sc4ctl, sc4_200_5r, sc4ctl, sc4_state, sc4ctl, ROT0, "BFM","Cop The Lot (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ctlc ,sc4ctl, sc4_200_5r, sc4ctl, sc4_state, sc4ctl, ROT0, "BFM","Cop The Lot (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ctld ,sc4ctl, sc4_200_5r, sc4ctl, sc4_state, sc4ctl, ROT0, "BFM","Cop The Lot (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ctle ,sc4ctl, sc4_200_5r, sc4ctl, sc4_state, sc4ctl, ROT0, "BFM","Cop The Lot (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ctl ,0, sc4_200_5r, sc4ctl, sc4_state, sc4ctl, ROT0, "BFM","Cop The Lot (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ctla ,sc4ctl, sc4_200_5r, sc4ctl, sc4_state, sc4ctl, ROT0, "BFM","Cop The Lot (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ctlb ,sc4ctl, sc4_200_5r, sc4ctl, sc4_state, sc4ctl, ROT0, "BFM","Cop The Lot (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ctlc ,sc4ctl, sc4_200_5r, sc4ctl, sc4_state, sc4ctl, ROT0, "BFM","Cop The Lot (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ctld ,sc4ctl, sc4_200_5r, sc4ctl, sc4_state, sc4ctl, ROT0, "BFM","Cop The Lot (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ctle ,sc4ctl, sc4_200_5r, sc4ctl, sc4_state, sc4ctl, ROT0, "BFM","Cop The Lot (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4crsc ) // this structure is generated
@@ -33634,14 +33634,14 @@ INPUT_PORTS_START( sc4crsc ) // this structure is generated
INPUT_PORTS_END
// PR3035 AWP COPS AND ROBBERS SAFE CRACKER S4 PR3005 SAFE CRACKER SOUNDS11 SAFE CRACKER S.SITE
-GAMEL( 200?, sc4crsc ,0, sc4, sc4crsc, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crsca ,sc4crsc, sc4, sc4crsc, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crscb ,sc4crsc, sc4, sc4crsc, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crscc ,sc4crsc, sc4, sc4crsc, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crscd ,sc4crsc, sc4, sc4crsc, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crsce ,sc4crsc, sc4, sc4crsc, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crscf ,sc4crsc, sc4, sc4crsc, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crscg ,sc4crsc, sc4, sc4crsc, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crsc ,0, sc4, sc4crsc, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crsca ,sc4crsc, sc4, sc4crsc, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crscb ,sc4crsc, sc4, sc4crsc, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crscc ,sc4crsc, sc4, sc4crsc, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crscd ,sc4crsc, sc4, sc4crsc, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crsce ,sc4crsc, sc4, sc4crsc, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crscf ,sc4crsc, sc4, sc4crsc, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crscg ,sc4crsc, sc4, sc4crsc, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4coro)
@@ -33701,14 +33701,14 @@ INPUT_PORTS_START( sc4coro ) // this structure is generated
INPUT_PORTS_END
// PR2252 CORONATION ST CORRY SOUNDS CORONATION ST
-GAMEL( 200?, sc4coro ,0, sc4_4reel_alt, sc4coro, sc4_state, sc4coro, ROT0, "Mazooma","Coronation Street (PR2252) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4coroa ,sc4coro, sc4_4reel_alt, sc4coro, sc4_state, sc4coro, ROT0, "Mazooma","Coronation Street (PR2252) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4corof ,sc4coro, sc4_4reel_alt, sc4coro, sc4_state, sc4coro, ROT0, "Mazooma","Coronation Street (PR2252) (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4corog ,sc4coro, sc4_4reel_alt, sc4coro, sc4_state, sc4coro, ROT0, "Mazooma","Coronation Street (PR2252) (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4coroj ,sc4coro, sc4_4reel_alt, sc4coro, sc4_state, sc4coro, ROT0, "Mazooma","Coronation Street (PR2252) (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4corok ,sc4coro, sc4_4reel_alt, sc4coro, sc4_state, sc4coro, ROT0, "Mazooma","Coronation Street (PR2252) (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4corol ,sc4coro, sc4_4reel_alt, sc4coro, sc4_state, sc4coro, ROT0, "Mazooma","Coronation Street (PR2252) (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4corom ,sc4coro, sc4_4reel_alt, sc4coro, sc4_state, sc4coro, ROT0, "Mazooma","Coronation Street (PR2252) (Mazooma) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4coro ,0, sc4_4reel_alt, sc4coro, sc4_state, sc4coro, ROT0, "Mazooma","Coronation Street (PR2252) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4coroa ,sc4coro, sc4_4reel_alt, sc4coro, sc4_state, sc4coro, ROT0, "Mazooma","Coronation Street (PR2252) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4corof ,sc4coro, sc4_4reel_alt, sc4coro, sc4_state, sc4coro, ROT0, "Mazooma","Coronation Street (PR2252) (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4corog ,sc4coro, sc4_4reel_alt, sc4coro, sc4_state, sc4coro, ROT0, "Mazooma","Coronation Street (PR2252) (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4coroj ,sc4coro, sc4_4reel_alt, sc4coro, sc4_state, sc4coro, ROT0, "Mazooma","Coronation Street (PR2252) (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4corok ,sc4coro, sc4_4reel_alt, sc4coro, sc4_state, sc4coro, ROT0, "Mazooma","Coronation Street (PR2252) (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4corol ,sc4coro, sc4_4reel_alt, sc4coro, sc4_state, sc4coro, ROT0, "Mazooma","Coronation Street (PR2252) (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4corom ,sc4coro, sc4_4reel_alt, sc4coro, sc4_state, sc4coro, ROT0, "Mazooma","Coronation Street (PR2252) (Mazooma) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4corod)
@@ -33826,16 +33826,16 @@ INPUT_PORTS_END
// PR2249 CORONATION ST Arcade Version 012 COROST_TRIPLE SOUNDS CORONATION ST
// PAY UINT ERR 17
-GAMEL( 200?, sc4coroc ,0, sc4, sc4coroc, sc4_state, sc4, ROT0, "Mazooma","Coronation Street Triple (Arcade Version 012) (PR2249) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4coroh ,sc4coroc, sc4, sc4coroc, sc4_state, sc4, ROT0, "Mazooma","Coronation Street Triple (Arcade Version 012) (PR2249) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4coroc ,0, sc4, sc4coroc, sc4_state, sc4, ROT0, "Mazooma","Coronation Street Triple (Arcade Version 012) (PR2249) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4coroh ,sc4coroc, sc4, sc4coroc, sc4_state, sc4, ROT0, "Mazooma","Coronation Street Triple (Arcade Version 012) (PR2249) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// P_2_4_ _O_O_A_I_N_S_ _i_g_ _e_s_o_ _1_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _O_O_T_T_I_L_ _O_N_S_ _ _ _ _ _ _ _C_R_N_T_O_ _S_ _ _ _
-GAMEL( 200?, sc4coron ,sc4coroc, sc4, sc4coroc, sc4_state, sc4, ROT0, "Mazooma","Coronation Street Triple (Bingo Version ?1) (PR2?4?) (Mazooma) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // incomplete pair, was in 'show me the money' set 'Bingo Version' is a guess
+GAMEL( 200?, sc4coron ,sc4coroc, sc4, sc4coroc, sc4_state, sc4, ROT0, "Mazooma","Coronation Street Triple (Bingo Version ?1) (PR2?4?) (Mazooma) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // incomplete pair, was in 'show me the money' set 'Bingo Version' is a guess
// PR2249 CORONATION STREET CORS MAZ COROST_TRIPLE SOUNDS
-GAMEL( 200?, sc4corod ,sc4coroc, sc4_4reel, sc4corod, sc4_state, sc4corod, ROT0, "Mazooma","Coronation Street Triple (PR2249) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4coroi ,sc4coroc, sc4_4reel, sc4corod, sc4_state, sc4corod, ROT0, "Mazooma","Coronation Street Triple (PR2249) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4corod ,sc4coroc, sc4_4reel, sc4corod, sc4_state, sc4corod, ROT0, "Mazooma","Coronation Street Triple (PR2249) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4coroi ,sc4coroc, sc4_4reel, sc4corod, sc4_state, sc4corod, ROT0, "Mazooma","Coronation Street Triple (PR2249) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2526 CORONATION ST TOP BOX COROST_TRIPLE SOUNDS CORONATION ST
-GAMEL( 200?, sc4corotb ,sc4coroc, sc4_4reel_alt, sc4, sc4_state, sc4corotb, ROT0, "Mazooma","Coronation Street Triple Top Box (PR2526, CSTB) (Mazooma) (Scorpion 4) (Top Box, set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4corotba ,sc4coroc, sc4_4reel_alt, sc4, sc4_state, sc4corotb, ROT0, "Mazooma","Coronation Street Triple Top Box (PR2526, CSTB) (Mazooma) (Scorpion 4) (Top Box, set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4corotb ,sc4coroc, sc4_4reel_alt, sc4, sc4_state, sc4corotb, ROT0, "Mazooma","Coronation Street Triple Top Box (PR2526, CSTB) (Mazooma) (Scorpion 4) (Top Box, set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4corotba ,sc4coroc, sc4_4reel_alt, sc4, sc4_state, sc4corotb, ROT0, "Mazooma","Coronation Street Triple Top Box (PR2526, CSTB) (Mazooma) (Scorpion 4) (Top Box, set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4corcl)
{
@@ -33905,8 +33905,8 @@ INPUT_PORTS_START( sc4corcl ) // this structure is generated
INPUT_PORTS_END
// PR2383 CLUBCORONATIONSTREET CLUBCORONATIONST CLUB CCORO SOUNDS CLUB CORO ST
-GAMEL( 200?, sc4corcl ,0, sc4_5reel, sc4corcl, sc4_state, sc4corcl, ROT0, "Mazooma","Coronation Street Club (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4corcla ,sc4corcl, sc4_5reel, sc4corcl, sc4_state, sc4corcl, ROT0, "Mazooma","Coronation Street Club (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4corcl ,0, sc4_5reel, sc4corcl, sc4_state, sc4corcl, ROT0, "Mazooma","Coronation Street Club (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4corcla ,sc4corcl, sc4_5reel, sc4corcl, sc4_state, sc4corcl, ROT0, "Mazooma","Coronation Street Club (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4count)
@@ -33975,8 +33975,8 @@ INPUT_PORTS_START( sc4count ) // this structure is generated
INPUT_PORTS_END
// PR1929 AWP COUNTDOWN S4 PR1909 COUNTDOWN SOUNDS11 COUNTDOWN S.SITE
-GAMEL( 200?, sc4count ,0, sc4_200_5ra, sc4count, sc4_state, sc4count, ROT0, "BFM","Countdown (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4counta ,sc4count, sc4_200_5ra, sc4count, sc4_state, sc4count, ROT0, "BFM","Countdown (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4count ,0, sc4_200_5ra, sc4count, sc4_state, sc4count, ROT0, "BFM","Countdown (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4counta ,sc4count, sc4_200_5ra, sc4count, sc4_state, sc4count, ROT0, "BFM","Countdown (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -34065,22 +34065,22 @@ INPUT_PORTS_START( sc4dnd35 )
INPUT_PORTS_END
// PR1927 AWP DEAL OR NO DEAL S4 PR1907 DEAL OR NO DEAL SOUNDS11
-GAMEL( 200?, sc4dnd ,0, sc4, sc4dnd25, sc4_state, sc4dnd, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL016, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4dnd ) // DONL 016
-GAMEL( 200?, sc4dndb ,sc4dnd, sc4, sc4dnd25, sc4_state, sc4dnd, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL016, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4dnd ) // DONL 016
-GAMEL( 200?, sc4dnde ,sc4dnd, sc4, sc4dnd25, sc4_state, sc4dnd, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL017, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4dnd ) // DONL 017
-GAMEL( 200?, sc4dndh ,sc4dnd, sc4, sc4dnd25, sc4_state, sc4dnd, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL017, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4dnd ) // DONL 017
-GAMEL( 200?, sc4dndf ,sc4dnd, sc4, sc4dnd25, sc4_state, sc4dnd, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL018, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4dnd ) // DONL 018
-GAMEL( 200?, sc4dndi ,sc4dnd, sc4, sc4dnd25, sc4_state, sc4dnd, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL018, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4dnd )// DONL 018
-GAMEL( 200?, sc4dndd ,sc4dnd, sc4, sc4dnd35, sc4_state, sc4dnd, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL402, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4dnd ) // DONL 402
-GAMEL( 200?, sc4dndg ,sc4dnd, sc4, sc4dnd35, sc4_state, sc4dnd, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL402, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4dnd ) // DONL 402
-GAMEL( 200?, sc4dndj ,sc4dnd, sc4, sc4dnd35, sc4_state, sc4dnd, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL406, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4dnd )// DONL 406
-GAMEL( 200?, sc4dndl ,sc4dnd, sc4, sc4dnd35, sc4_state, sc4dnd, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL406, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4dnd )// DONL 406
-GAMEL( 200?, sc4dndc ,sc4dnd, sc4, sc4dnd35, sc4_state, sc4dnd, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL422, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4dnd ) // DONL 422
-GAMEL( 200?, sc4dnda ,sc4dnd, sc4, sc4dnd35, sc4_state, sc4dnd, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL422, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4dnd ) // DONL 422, incomplete pairing
-GAMEL( 200?, sc4dndn ,sc4dnd, sc4, sc4dnd35, sc4_state, sc4dnd, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL424, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4dnd )// DONL 424
-GAMEL( 200?, sc4dndo ,sc4dnd, sc4, sc4dnd35, sc4_state, sc4dnd, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL424, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4dnd )// DONL 424
-GAMEL( 200?, sc4dndk ,sc4dnd, sc4, sc4dnd35, sc4_state, sc4dnd, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL428, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4dnd )// DONL 428
-GAMEL( 200?, sc4dndm ,sc4dnd, sc4, sc4dnd35, sc4_state, sc4dnd, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL428, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4dnd )// DONL 428
+GAMEL( 200?, sc4dnd ,0, sc4, sc4dnd25, sc4_state, sc4dnd, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL016, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4dnd ) // DONL 016
+GAMEL( 200?, sc4dndb ,sc4dnd, sc4, sc4dnd25, sc4_state, sc4dnd, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL016, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4dnd ) // DONL 016
+GAMEL( 200?, sc4dnde ,sc4dnd, sc4, sc4dnd25, sc4_state, sc4dnd, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL017, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4dnd ) // DONL 017
+GAMEL( 200?, sc4dndh ,sc4dnd, sc4, sc4dnd25, sc4_state, sc4dnd, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL017, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4dnd ) // DONL 017
+GAMEL( 200?, sc4dndf ,sc4dnd, sc4, sc4dnd25, sc4_state, sc4dnd, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL018, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4dnd ) // DONL 018
+GAMEL( 200?, sc4dndi ,sc4dnd, sc4, sc4dnd25, sc4_state, sc4dnd, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL018, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4dnd )// DONL 018
+GAMEL( 200?, sc4dndd ,sc4dnd, sc4, sc4dnd35, sc4_state, sc4dnd, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL402, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4dnd ) // DONL 402
+GAMEL( 200?, sc4dndg ,sc4dnd, sc4, sc4dnd35, sc4_state, sc4dnd, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL402, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4dnd ) // DONL 402
+GAMEL( 200?, sc4dndj ,sc4dnd, sc4, sc4dnd35, sc4_state, sc4dnd, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL406, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4dnd )// DONL 406
+GAMEL( 200?, sc4dndl ,sc4dnd, sc4, sc4dnd35, sc4_state, sc4dnd, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL406, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4dnd )// DONL 406
+GAMEL( 200?, sc4dndc ,sc4dnd, sc4, sc4dnd35, sc4_state, sc4dnd, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL422, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4dnd ) // DONL 422
+GAMEL( 200?, sc4dnda ,sc4dnd, sc4, sc4dnd35, sc4_state, sc4dnd, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL422, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4dnd ) // DONL 422, incomplete pairing
+GAMEL( 200?, sc4dndn ,sc4dnd, sc4, sc4dnd35, sc4_state, sc4dnd, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL424, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4dnd )// DONL 424
+GAMEL( 200?, sc4dndo ,sc4dnd, sc4, sc4dnd35, sc4_state, sc4dnd, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL424, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4dnd )// DONL 424
+GAMEL( 200?, sc4dndk ,sc4dnd, sc4, sc4dnd35, sc4_state, sc4dnd, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL428, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4dnd )// DONL 428
+GAMEL( 200?, sc4dndm ,sc4dnd, sc4, sc4dnd35, sc4_state, sc4dnd, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 4) (DONL428, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4dnd )// DONL 428
DRIVER_INIT_MEMBER(sc4_state,sc4dndcs)
@@ -34158,12 +34158,12 @@ INPUT_PORTS_START( sc4dndcs5 )
INPUT_PORTS_END
// PR1967 AWP CLASSIC DEAL OR NO DEAL S4 PR1907 DEAL OR NO DEAL SOUNDS11
-GAMEL( 200?, sc4dndcs ,0, sc4, sc4dndcs5, sc4_state, sc4dndcs, ROT0, "BFM","Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (CLDD211, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CLDD 211
-GAMEL( 200?, sc4dndcsb ,sc4dndcs, sc4, sc4dndcs5, sc4_state, sc4dndcs, ROT0, "BFM","Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (CLDD211, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CLDD 211
-GAMEL( 200?, sc4dndcsa ,sc4dndcs, sc4, sc4dndcs5, sc4_state, sc4dndcs, ROT0, "BFM","Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (CLDD212, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CLDD 212
-GAMEL( 200?, sc4dndcsc ,sc4dndcs, sc4, sc4dndcs5, sc4_state, sc4dndcs, ROT0, "BFM","Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (CLDD212, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CLDD 212
-GAMEL( 200?, sc4dndcsd ,sc4dndcs, sc4, sc4dndcs5, sc4_state, sc4dndcs, ROT0, "BFM","Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (CLDD215, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CLDD 215
-GAMEL( 200?, sc4dndcse ,sc4dndcs, sc4, sc4dndcs5, sc4_state, sc4dndcs, ROT0, "BFM","Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (CLDD215, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CLDD 215
+GAMEL( 200?, sc4dndcs ,0, sc4, sc4dndcs5, sc4_state, sc4dndcs, ROT0, "BFM","Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (CLDD211, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CLDD 211
+GAMEL( 200?, sc4dndcsb ,sc4dndcs, sc4, sc4dndcs5, sc4_state, sc4dndcs, ROT0, "BFM","Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (CLDD211, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CLDD 211
+GAMEL( 200?, sc4dndcsa ,sc4dndcs, sc4, sc4dndcs5, sc4_state, sc4dndcs, ROT0, "BFM","Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (CLDD212, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CLDD 212
+GAMEL( 200?, sc4dndcsc ,sc4dndcs, sc4, sc4dndcs5, sc4_state, sc4dndcs, ROT0, "BFM","Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (CLDD212, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CLDD 212
+GAMEL( 200?, sc4dndcsd ,sc4dndcs, sc4, sc4dndcs5, sc4_state, sc4dndcs, ROT0, "BFM","Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (CLDD215, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CLDD 215
+GAMEL( 200?, sc4dndcse ,sc4dndcs, sc4, sc4dndcs5, sc4_state, sc4dndcs, ROT0, "BFM","Deal Or No Deal Classic (Bellfruit) (Scorpion 4) (CLDD215, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CLDD 215
DRIVER_INIT_MEMBER(sc4_state,sc4dndbb)
@@ -34254,16 +34254,16 @@ INPUT_PORTS_END
// PR3229 AWP DEAL OR NO DEAL BREAK THE BANK SCORP4 PR3209 BREAK THE BANK SOUNDS11
-GAMEL( 200?, sc4dndbb ,0, sc4_5reel_alt, sc4dndbb35, sc4_state, sc4dndbb, ROT0, "BFM","Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE471, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CRBE 471
-GAMEL( 200?, sc4dndbbb ,sc4dndbb, sc4_5reel_alt, sc4dndbb35, sc4_state, sc4dndbb, ROT0, "BFM","Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE471, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CRBE 471
-GAMEL( 200?, sc4dndbba ,sc4dndbb, sc4_5reel_alt, sc4dndbb35, sc4_state, sc4dndbb, ROT0, "BFM","Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE472, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CRBE 472
-GAMEL( 200?, sc4dndbbc ,sc4dndbb, sc4_5reel_alt, sc4dndbb35, sc4_state, sc4dndbb, ROT0, "BFM","Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE472, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CRBE 472
-GAMEL( 200?, sc4dndbbd ,sc4dndbb, sc4_5reel_alt, sc4dndbb35, sc4_state, sc4dndbb, ROT0, "BFM","Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE473, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CRBE 473
-GAMEL( 200?, sc4dndbbg ,sc4dndbb, sc4_5reel_alt, sc4dndbb35, sc4_state, sc4dndbb, ROT0, "BFM","Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE473, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CRBE 473
-GAMEL( 200?, sc4dndbbe ,sc4dndbb, sc4_5reel_alt, sc4dndbb70, sc4_state, sc4dndbb, ROT0, "BFM","Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE571, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CRBE 571
-GAMEL( 200?, sc4dndbbh ,sc4dndbb, sc4_5reel_alt, sc4dndbb70, sc4_state, sc4dndbb, ROT0, "BFM","Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE571, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CRBE 571
-GAMEL( 200?, sc4dndbbf ,sc4dndbb, sc4_5reel_alt, sc4dndbb70, sc4_state, sc4dndbb, ROT0, "BFM","Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE572, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CRBE 572
-GAMEL( 200?, sc4dndbbi ,sc4dndbb, sc4_5reel_alt, sc4dndbb70, sc4_state, sc4dndbb, ROT0, "BFM","Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE572, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// CRBE 572
+GAMEL( 200?, sc4dndbb ,0, sc4_5reel_alt, sc4dndbb35, sc4_state, sc4dndbb, ROT0, "BFM","Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE471, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CRBE 471
+GAMEL( 200?, sc4dndbbb ,sc4dndbb, sc4_5reel_alt, sc4dndbb35, sc4_state, sc4dndbb, ROT0, "BFM","Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE471, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CRBE 471
+GAMEL( 200?, sc4dndbba ,sc4dndbb, sc4_5reel_alt, sc4dndbb35, sc4_state, sc4dndbb, ROT0, "BFM","Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE472, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CRBE 472
+GAMEL( 200?, sc4dndbbc ,sc4dndbb, sc4_5reel_alt, sc4dndbb35, sc4_state, sc4dndbb, ROT0, "BFM","Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE472, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CRBE 472
+GAMEL( 200?, sc4dndbbd ,sc4dndbb, sc4_5reel_alt, sc4dndbb35, sc4_state, sc4dndbb, ROT0, "BFM","Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE473, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CRBE 473
+GAMEL( 200?, sc4dndbbg ,sc4dndbb, sc4_5reel_alt, sc4dndbb35, sc4_state, sc4dndbb, ROT0, "BFM","Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE473, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CRBE 473
+GAMEL( 200?, sc4dndbbe ,sc4dndbb, sc4_5reel_alt, sc4dndbb70, sc4_state, sc4dndbb, ROT0, "BFM","Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE571, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CRBE 571
+GAMEL( 200?, sc4dndbbh ,sc4dndbb, sc4_5reel_alt, sc4dndbb70, sc4_state, sc4dndbb, ROT0, "BFM","Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE571, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CRBE 571
+GAMEL( 200?, sc4dndbbf ,sc4dndbb, sc4_5reel_alt, sc4dndbb70, sc4_state, sc4dndbb, ROT0, "BFM","Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE572, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CRBE 572
+GAMEL( 200?, sc4dndbbi ,sc4dndbb, sc4_5reel_alt, sc4dndbb70, sc4_state, sc4dndbb, ROT0, "BFM","Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 4) (CRBE572, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// CRBE 572
@@ -34347,14 +34347,14 @@ INPUT_PORTS_START( sc4dndcl500 )
INPUT_PORTS_END
// PR1949 CLUB DEAL OR NO DEAL DEAL OR NO DEAL CLUB PR1949 DEAL O N D SOUNDS11
-GAMEL( 200?, sc4dndclc ,sc4dndcl, sc4, sc4dndcl, sc4_state, sc4dndcl, ROT0, "BFM","Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL181, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DNDL 181 CLUB $500 (no key req?)
-GAMEL( 200?, sc4dndclg ,sc4dndcl, sc4, sc4dndcl, sc4_state, sc4dndcl, ROT0, "BFM","Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL181, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DNDL 181 CLUB $500 (no key req?)
-GAMEL( 200?, sc4dndcla ,sc4dndcl, sc4, sc4dndcl500, sc4_state, sc4dndcl, ROT0, "BFM","Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL212, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DNDL 212 CLUB ?500
-GAMEL( 200?, sc4dndcle ,sc4dndcl, sc4, sc4dndcl500, sc4_state, sc4dndcl, ROT0, "BFM","Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL212, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DNDL 212 CLUB ?500
-GAMEL( 200?, sc4dndcl ,0, sc4, sc4dndcl250, sc4_state, sc4dndcl, ROT0, "BFM","Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL313, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DNDL 313 CLUB ?250
-GAMEL( 200?, sc4dndcld ,sc4dndcl, sc4, sc4dndcl250, sc4_state, sc4dndcl, ROT0, "BFM","Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL313, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DNDL 313 CLUB ?250
-GAMEL( 200?, sc4dndclb ,sc4dndcl, sc4, sc4dndcl250, sc4_state, sc4dndcl, ROT0, "BFM","Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL391, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DNDL 391 CLUB ?250
-GAMEL( 200?, sc4dndclf ,sc4dndcl, sc4, sc4dndcl250, sc4_state, sc4dndcl, ROT0, "BFM","Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL391, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DNDL 391 CLUB ?250
+GAMEL( 200?, sc4dndclc ,sc4dndcl, sc4, sc4dndcl, sc4_state, sc4dndcl, ROT0, "BFM","Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL181, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DNDL 181 CLUB $500 (no key req?)
+GAMEL( 200?, sc4dndclg ,sc4dndcl, sc4, sc4dndcl, sc4_state, sc4dndcl, ROT0, "BFM","Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL181, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DNDL 181 CLUB $500 (no key req?)
+GAMEL( 200?, sc4dndcla ,sc4dndcl, sc4, sc4dndcl500, sc4_state, sc4dndcl, ROT0, "BFM","Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL212, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DNDL 212 CLUB ?500
+GAMEL( 200?, sc4dndcle ,sc4dndcl, sc4, sc4dndcl500, sc4_state, sc4dndcl, ROT0, "BFM","Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL212, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DNDL 212 CLUB ?500
+GAMEL( 200?, sc4dndcl ,0, sc4, sc4dndcl250, sc4_state, sc4dndcl, ROT0, "BFM","Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL313, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DNDL 313 CLUB ?250
+GAMEL( 200?, sc4dndcld ,sc4dndcl, sc4, sc4dndcl250, sc4_state, sc4dndcl, ROT0, "BFM","Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL313, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DNDL 313 CLUB ?250
+GAMEL( 200?, sc4dndclb ,sc4dndcl, sc4, sc4dndcl250, sc4_state, sc4dndcl, ROT0, "BFM","Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL391, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DNDL 391 CLUB ?250
+GAMEL( 200?, sc4dndclf ,sc4dndcl, sc4, sc4dndcl250, sc4_state, sc4dndcl, ROT0, "BFM","Deal Or No Deal Club (Bellfruit) (Scorpion 4) (DNDL391, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DNDL 391 CLUB ?250
DRIVER_INIT_MEMBER(sc4_state,sc4dnddd)
@@ -34441,14 +34441,14 @@ INPUT_PORTS_END
// PR3235 AWP DEAL OR NO DEAL DOUBLE S4 PR3215 DOND DOUBLE SOUNDS11 DOUBLE DOND S.SITE
-GAMEL( 200?, sc4dnddd ,0, sc4_5reel_alt, sc4dnddd35, sc4_state, sc4dnddd, ROT0, "BFM","Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO471, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DDNO 471
-GAMEL( 200?, sc4dndddd ,sc4dnddd, sc4_5reel_alt, sc4dnddd35, sc4_state, sc4dnddd, ROT0, "BFM","Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO471, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DDNO 471
-GAMEL( 200?, sc4dnddda ,sc4dnddd, sc4_5reel_alt, sc4dnddd70, sc4_state, sc4dnddd, ROT0, "BFM","Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO571, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DDNO 571
-GAMEL( 200?, sc4dnddde ,sc4dnddd, sc4_5reel_alt, sc4dnddd70, sc4_state, sc4dnddd, ROT0, "BFM","Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO571, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DDNO 571
-GAMEL( 200?, sc4dndddb ,sc4dnddd, sc4_5reel_alt, sc4dnddd70, sc4_state, sc4dnddd, ROT0, "BFM","Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO572, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DDNO 572
-GAMEL( 200?, sc4dndddf ,sc4dnddd, sc4_5reel_alt, sc4dnddd70, sc4_state, sc4dnddd, ROT0, "BFM","Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO572, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DDNO 572
-GAMEL( 200?, sc4dndddc ,sc4dnddd, sc4_5reel_alt, sc4dnddd70, sc4_state, sc4dnddd, ROT0, "BFM","Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO573, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DDNO 573
-GAMEL( 200?, sc4dndddg ,sc4dnddd, sc4_5reel_alt, sc4dnddd70, sc4_state, sc4dnddd, ROT0, "BFM","Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO573, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DDNO 573
+GAMEL( 200?, sc4dnddd ,0, sc4_5reel_alt, sc4dnddd35, sc4_state, sc4dnddd, ROT0, "BFM","Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO471, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DDNO 471
+GAMEL( 200?, sc4dndddd ,sc4dnddd, sc4_5reel_alt, sc4dnddd35, sc4_state, sc4dnddd, ROT0, "BFM","Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO471, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DDNO 471
+GAMEL( 200?, sc4dnddda ,sc4dnddd, sc4_5reel_alt, sc4dnddd70, sc4_state, sc4dnddd, ROT0, "BFM","Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO571, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DDNO 571
+GAMEL( 200?, sc4dnddde ,sc4dnddd, sc4_5reel_alt, sc4dnddd70, sc4_state, sc4dnddd, ROT0, "BFM","Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO571, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DDNO 571
+GAMEL( 200?, sc4dndddb ,sc4dnddd, sc4_5reel_alt, sc4dnddd70, sc4_state, sc4dnddd, ROT0, "BFM","Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO572, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DDNO 572
+GAMEL( 200?, sc4dndddf ,sc4dnddd, sc4_5reel_alt, sc4dnddd70, sc4_state, sc4dnddd, ROT0, "BFM","Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO572, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DDNO 572
+GAMEL( 200?, sc4dndddc ,sc4dnddd, sc4_5reel_alt, sc4dnddd70, sc4_state, sc4dnddd, ROT0, "BFM","Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO573, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DDNO 573
+GAMEL( 200?, sc4dndddg ,sc4dnddd, sc4_5reel_alt, sc4dnddd70, sc4_state, sc4dnddd, ROT0, "BFM","Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 4) (DDNO573, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DDNO 573
@@ -34536,19 +34536,19 @@ INPUT_PORTS_START( sc4dndhf70 )
INPUT_PORTS_END
// PR3038 DEAL OR NO DEAL HALL OF FAME SCORP4 PR3008 HALL OF FAME SOUNDS11 HALL OF FAME S.SITE
-GAMEL( 200?, sc4dndhff ,sc4dndhf, sc4_5reel_alt, sc4dndhf35, sc4_state, sc4dndhf, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA471, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DNHA 471
-GAMEL( 200?, sc4dndhfh ,sc4dndhf, sc4_5reel_alt, sc4dndhf35, sc4_state, sc4dndhf, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA471, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DNHA 471
-GAMEL( 200?, sc4dndhfg ,sc4dndhf, sc4_5reel_alt, sc4dndhf35, sc4_state, sc4dndhf, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA472, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DNHA 472
-GAMEL( 200?, sc4dndhfi ,sc4dndhf, sc4_5reel_alt, sc4dndhf35, sc4_state, sc4dndhf, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA472, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DNHA 472
-GAMEL( 200?, sc4dndhf ,0, sc4_5reel_alt, sc4dndhf35, sc4_state, sc4dndhf, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA473, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DNHA 473
-GAMEL( 200?, sc4dndhfa ,sc4dndhf, sc4_5reel_alt, sc4dndhf35, sc4_state, sc4dndhf, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA473, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DNHA 473
-GAMEL( 200?, sc4dndhfj ,sc4dndhf, sc4_5reel_alt, sc4dndhf35, sc4_state, sc4dndhf, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA476)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DNHA 476
-GAMEL( 200?, sc4dndhfb ,sc4dndhf, sc4_5reel_alt, sc4dndhf35, sc4_state, sc4dndhf, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA477, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DNHA 477
-GAMEL( 200?, sc4dndhfd ,sc4dndhf, sc4_5reel_alt, sc4dndhf35, sc4_state, sc4dndhf, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA477, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DNHA 477
-GAMEL( 200?, sc4dndhfc ,sc4dndhf, sc4_5reel_alt, sc4dndhf70, sc4_state, sc4dndhf, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA571, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DNHA 571
-GAMEL( 200?, sc4dndhfe ,sc4dndhf, sc4_5reel_alt, sc4dndhf70, sc4_state, sc4dndhf, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA571, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DNHA 571
-GAMEL( 200?, sc4dndhfk ,sc4dndhf, sc4_5reel_alt, sc4dndhf70, sc4_state, sc4dndhf, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA572, set 1, bad?)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // error 51 (bad rom?)
-GAMEL( 200?, sc4dndhfl ,sc4dndhf, sc4_5reel_alt, sc4dndhf70, sc4_state, sc4dndhf, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA572, set 2, bad?)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // error 51 (bad rom?)
+GAMEL( 200?, sc4dndhff ,sc4dndhf, sc4_5reel_alt, sc4dndhf35, sc4_state, sc4dndhf, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA471, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DNHA 471
+GAMEL( 200?, sc4dndhfh ,sc4dndhf, sc4_5reel_alt, sc4dndhf35, sc4_state, sc4dndhf, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA471, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DNHA 471
+GAMEL( 200?, sc4dndhfg ,sc4dndhf, sc4_5reel_alt, sc4dndhf35, sc4_state, sc4dndhf, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA472, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DNHA 472
+GAMEL( 200?, sc4dndhfi ,sc4dndhf, sc4_5reel_alt, sc4dndhf35, sc4_state, sc4dndhf, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA472, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DNHA 472
+GAMEL( 200?, sc4dndhf ,0, sc4_5reel_alt, sc4dndhf35, sc4_state, sc4dndhf, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA473, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DNHA 473
+GAMEL( 200?, sc4dndhfa ,sc4dndhf, sc4_5reel_alt, sc4dndhf35, sc4_state, sc4dndhf, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA473, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DNHA 473
+GAMEL( 200?, sc4dndhfj ,sc4dndhf, sc4_5reel_alt, sc4dndhf35, sc4_state, sc4dndhf, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA476)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DNHA 476
+GAMEL( 200?, sc4dndhfb ,sc4dndhf, sc4_5reel_alt, sc4dndhf35, sc4_state, sc4dndhf, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA477, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DNHA 477
+GAMEL( 200?, sc4dndhfd ,sc4dndhf, sc4_5reel_alt, sc4dndhf35, sc4_state, sc4dndhf, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA477, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DNHA 477
+GAMEL( 200?, sc4dndhfc ,sc4dndhf, sc4_5reel_alt, sc4dndhf70, sc4_state, sc4dndhf, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA571, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DNHA 571
+GAMEL( 200?, sc4dndhfe ,sc4dndhf, sc4_5reel_alt, sc4dndhf70, sc4_state, sc4dndhf, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA571, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DNHA 571
+GAMEL( 200?, sc4dndhfk ,sc4dndhf, sc4_5reel_alt, sc4dndhf70, sc4_state, sc4dndhf, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA572, set 1, bad?)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // error 51 (bad rom?)
+GAMEL( 200?, sc4dndhfl ,sc4dndhf, sc4_5reel_alt, sc4dndhf70, sc4_state, sc4dndhf, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 4) (DNHA572, set 2, bad?)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // error 51 (bad rom?)
DRIVER_INIT_MEMBER(sc4_state,sc4dndys)
{
@@ -34645,10 +34645,10 @@ INPUT_PORTS_END
// PR3227 AWP DEAL OR NO DEAL ITS YOUR SHOW SCORP4 PR3207 ITS YOUR SHOW SOUNDS11 ITS YOUR SHOW S.SITE
-GAMEL( 200?, sc4dndys ,0, sc4_200_5rc, sc4dndys70, sc4_state, sc4dndys, ROT0, "BFM","Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 4) (DOBO571, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DOBO 571
-GAMEL( 200?, sc4dndysb ,sc4dndys, sc4_200_5rc, sc4dndys70, sc4_state, sc4dndys, ROT0, "BFM","Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 4) (DOBO571, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DOBO 571
-GAMEL( 200?, sc4dndysa ,sc4dndys, sc4_200_5rc, sc4dndys35, sc4_state, sc4dndys, ROT0, "BFM","Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 4) (DOBO474, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DOBO 474
-GAMEL( 200?, sc4dndysc ,sc4dndys, sc4_200_5rc, sc4dndys35, sc4_state, sc4dndys, ROT0, "BFM","Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 4) (DOBO474, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DOBO 474
+GAMEL( 200?, sc4dndys ,0, sc4_200_5rc, sc4dndys70, sc4_state, sc4dndys, ROT0, "BFM","Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 4) (DOBO571, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DOBO 571
+GAMEL( 200?, sc4dndysb ,sc4dndys, sc4_200_5rc, sc4dndys70, sc4_state, sc4dndys, ROT0, "BFM","Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 4) (DOBO571, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DOBO 571
+GAMEL( 200?, sc4dndysa ,sc4dndys, sc4_200_5rc, sc4dndys35, sc4_state, sc4dndys, ROT0, "BFM","Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 4) (DOBO474, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DOBO 474
+GAMEL( 200?, sc4dndysc ,sc4dndys, sc4_200_5rc, sc4dndys35, sc4_state, sc4dndys, ROT0, "BFM","Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 4) (DOBO474, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DOBO 474
DRIVER_INIT_MEMBER(sc4_state,sc4dndlp)
{
@@ -34737,12 +34737,12 @@ INPUT_PORTS_END
// PR3212 AWP DEAL OR NO DEAL LETS PLAY DEAL OR NO DEAL SCORP4 PR3212 LETS PLAY DOND SOUNDS11 LETS PLAY DOND S.SITE
-GAMEL( 200?, sc4dndlp ,0, sc4_5reel, sc4dndlp70, sc4_state, sc4dndlp, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (LPDN571, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// LPDN 571
-GAMEL( 200?, sc4dndlpc ,sc4dndlp, sc4_5reel, sc4dndlp70, sc4_state, sc4dndlp, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (LPDN571, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// LPDN 571
-GAMEL( 200?, sc4dndlpa ,sc4dndlp, sc4_5reel, sc4dndlp70, sc4_state, sc4dndlp, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (LPDN572, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// LPDN 572
-GAMEL( 200?, sc4dndlpd ,sc4dndlp, sc4_5reel, sc4dndlp70, sc4_state, sc4dndlp, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (LPDN572, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// LPDN 572
-GAMEL( 200?, sc4dndlpb ,sc4dndlp, sc4_5reel, sc4dndlp70, sc4_state, sc4dndlp, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (LPDN573, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// LPDN 573
-GAMEL( 200?, sc4dndlpe ,sc4dndlp, sc4_5reel, sc4dndlp70, sc4_state, sc4dndlp, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (LPDN573, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// LPDN 573
+GAMEL( 200?, sc4dndlp ,0, sc4_5reel, sc4dndlp70, sc4_state, sc4dndlp, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (LPDN571, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// LPDN 571
+GAMEL( 200?, sc4dndlpc ,sc4dndlp, sc4_5reel, sc4dndlp70, sc4_state, sc4dndlp, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (LPDN571, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// LPDN 571
+GAMEL( 200?, sc4dndlpa ,sc4dndlp, sc4_5reel, sc4dndlp70, sc4_state, sc4dndlp, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (LPDN572, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// LPDN 572
+GAMEL( 200?, sc4dndlpd ,sc4dndlp, sc4_5reel, sc4dndlp70, sc4_state, sc4dndlp, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (LPDN572, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// LPDN 572
+GAMEL( 200?, sc4dndlpb ,sc4dndlp, sc4_5reel, sc4dndlp70, sc4_state, sc4dndlp, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (LPDN573, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// LPDN 573
+GAMEL( 200?, sc4dndlpe ,sc4dndlp, sc4_5reel, sc4dndlp70, sc4_state, sc4dndlp, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 4) (LPDN573, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// LPDN 573
DRIVER_INIT_MEMBER(sc4_state,sc4dndra)
{
@@ -34830,12 +34830,12 @@ INPUT_PORTS_START( sc4dndra70 )
INPUT_PORTS_END
// PR3221 AWP DEAL OR NO DEAL RED ALERT SCORP4 PR3201 DOND RED ALERT SOUNDS11 RED ALERT S.SITE
-GAMEL( 200?, sc4dndra ,0, sc4_5reel_alt, sc4dndra35, sc4_state, sc4dndra, ROT0, "BFM","Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (REDT471, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // REDT 471
-GAMEL( 200?, sc4dndraa ,sc4dndra, sc4_5reel_alt, sc4dndra35, sc4_state, sc4dndra, ROT0, "BFM","Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (REDT471, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // REDT 471
-GAMEL( 200?, sc4dndrab ,sc4dndra, sc4_5reel_alt, sc4dndra35, sc4_state, sc4dndra, ROT0, "BFM","Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (REDT474, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // REDT 474
-GAMEL( 200?, sc4dndrad ,sc4dndra, sc4_5reel_alt, sc4dndra35, sc4_state, sc4dndra, ROT0, "BFM","Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (REDT474, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // REDT 474
-GAMEL( 200?, sc4dndrac ,sc4dndra, sc4_5reel_alt, sc4dndra70, sc4_state, sc4dndra, ROT0, "BFM","Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (REDT572, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // REDT 572
-GAMEL( 200?, sc4dndrae ,sc4dndra, sc4_5reel_alt, sc4dndra70, sc4_state, sc4dndra, ROT0, "BFM","Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (REDT572, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // REDT 572
+GAMEL( 200?, sc4dndra ,0, sc4_5reel_alt, sc4dndra35, sc4_state, sc4dndra, ROT0, "BFM","Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (REDT471, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // REDT 471
+GAMEL( 200?, sc4dndraa ,sc4dndra, sc4_5reel_alt, sc4dndra35, sc4_state, sc4dndra, ROT0, "BFM","Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (REDT471, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // REDT 471
+GAMEL( 200?, sc4dndrab ,sc4dndra, sc4_5reel_alt, sc4dndra35, sc4_state, sc4dndra, ROT0, "BFM","Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (REDT474, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // REDT 474
+GAMEL( 200?, sc4dndrad ,sc4dndra, sc4_5reel_alt, sc4dndra35, sc4_state, sc4dndra, ROT0, "BFM","Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (REDT474, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // REDT 474
+GAMEL( 200?, sc4dndrac ,sc4dndra, sc4_5reel_alt, sc4dndra70, sc4_state, sc4dndra, ROT0, "BFM","Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (REDT572, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // REDT 572
+GAMEL( 200?, sc4dndrae ,sc4dndra, sc4_5reel_alt, sc4dndra70, sc4_state, sc4dndra, ROT0, "BFM","Deal Or No Deal Red Alert (Bellfruit) (Scorpion 4) (REDT572, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // REDT 572
DRIVER_INIT_MEMBER(sc4_state,sc4dndbd)
@@ -34926,12 +34926,12 @@ INPUT_PORTS_END
// PR3230 AWP DEAL OR NO DEAL THE BIG DEAL SCORP4 PR3210 THE BIG DEAL SOUNDS11 THE BIG DEAL S.SITE
-GAMEL( 200?, sc4dndbd ,0, sc4_5reel, sc4dndbd35, sc4_state, sc4dndbd, ROT0, "BFM","Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (BGDA471, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // BGDA 471
-GAMEL( 200?, sc4dndbda ,sc4dndbd, sc4_5reel, sc4dndbd35, sc4_state, sc4dndbd, ROT0, "BFM","Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (BGDA471, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // BGDA 471
-GAMEL( 200?, sc4dndbdb ,sc4dndbd, sc4_5reel, sc4dndbd35, sc4_state, sc4dndbd, ROT0, "BFM","Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (BGDA472, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // BGDA 472
-GAMEL( 200?, sc4dndbdd ,sc4dndbd, sc4_5reel, sc4dndbd35, sc4_state, sc4dndbd, ROT0, "BFM","Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (BGDA472, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // BGDA 472
-GAMEL( 200?, sc4dndbdc ,sc4dndbd, sc4_5reel, sc4dndbd70, sc4_state, sc4dndbd, ROT0, "BFM","Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (BGDA571, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // BGDA 571
-GAMEL( 200?, sc4dndbde ,sc4dndbd, sc4_5reel, sc4dndbd70, sc4_state, sc4dndbd, ROT0, "BFM","Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (BGDA571, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // BGDA 571
+GAMEL( 200?, sc4dndbd ,0, sc4_5reel, sc4dndbd35, sc4_state, sc4dndbd, ROT0, "BFM","Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (BGDA471, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // BGDA 471
+GAMEL( 200?, sc4dndbda ,sc4dndbd, sc4_5reel, sc4dndbd35, sc4_state, sc4dndbd, ROT0, "BFM","Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (BGDA471, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // BGDA 471
+GAMEL( 200?, sc4dndbdb ,sc4dndbd, sc4_5reel, sc4dndbd35, sc4_state, sc4dndbd, ROT0, "BFM","Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (BGDA472, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // BGDA 472
+GAMEL( 200?, sc4dndbdd ,sc4dndbd, sc4_5reel, sc4dndbd35, sc4_state, sc4dndbd, ROT0, "BFM","Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (BGDA472, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // BGDA 472
+GAMEL( 200?, sc4dndbdc ,sc4dndbd, sc4_5reel, sc4dndbd70, sc4_state, sc4dndbd, ROT0, "BFM","Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (BGDA571, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // BGDA 571
+GAMEL( 200?, sc4dndbde ,sc4dndbd, sc4_5reel, sc4dndbd70, sc4_state, sc4dndbd, ROT0, "BFM","Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 4) (BGDA571, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // BGDA 571
DRIVER_INIT_MEMBER(sc4_state,sc4dndbr)
@@ -35019,14 +35019,14 @@ INPUT_PORTS_END
// PR3041 AWP DEAL OR NO DEAL THE BIG REDS S4 PR3011 THE BIG REDS SOUNDS11 THE BIG REDS S.SITE
-GAMEL( 200?, sc4dndbr ,0, sc4_5reel_alt, sc4dndbr35, sc4_state, sc4dndbr, ROT0, "BFM","Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD471, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // BIGD 471
-GAMEL( 200?, sc4dndbrb ,sc4dndbr, sc4_5reel_alt, sc4dndbr35, sc4_state, sc4dndbr, ROT0, "BFM","Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD471, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // BIGD 471
-GAMEL( 200?, sc4dndbra ,sc4dndbr, sc4_5reel_alt, sc4dndbr35, sc4_state, sc4dndbr, ROT0, "BFM","Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD472, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // BIGD 472
-GAMEL( 200?, sc4dndbrc ,sc4dndbr, sc4_5reel_alt, sc4dndbr35, sc4_state, sc4dndbr, ROT0, "BFM","Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD472, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // BIGD 472
-GAMEL( 200?, sc4dndbrd ,sc4dndbr, sc4_5reel_alt, sc4dndbr35, sc4_state, sc4dndbr, ROT0, "BFM","Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD475, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // BIGD 475
-GAMEL( 200?, sc4dndbrf ,sc4dndbr, sc4_5reel_alt, sc4dndbr35, sc4_state, sc4dndbr, ROT0, "BFM","Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD475, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // BIGD 475
-GAMEL( 200?, sc4dndbre ,sc4dndbr, sc4_5reel_alt, sc4dndbr70, sc4_state, sc4dndbr, ROT0, "BFM","Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD571, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // BIGD 571
-GAMEL( 200?, sc4dndbrg ,sc4dndbr, sc4_5reel_alt, sc4dndbr70, sc4_state, sc4dndbr, ROT0, "BFM","Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD571, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // BIGD 571
+GAMEL( 200?, sc4dndbr ,0, sc4_5reel_alt, sc4dndbr35, sc4_state, sc4dndbr, ROT0, "BFM","Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD471, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // BIGD 471
+GAMEL( 200?, sc4dndbrb ,sc4dndbr, sc4_5reel_alt, sc4dndbr35, sc4_state, sc4dndbr, ROT0, "BFM","Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD471, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // BIGD 471
+GAMEL( 200?, sc4dndbra ,sc4dndbr, sc4_5reel_alt, sc4dndbr35, sc4_state, sc4dndbr, ROT0, "BFM","Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD472, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // BIGD 472
+GAMEL( 200?, sc4dndbrc ,sc4dndbr, sc4_5reel_alt, sc4dndbr35, sc4_state, sc4dndbr, ROT0, "BFM","Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD472, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // BIGD 472
+GAMEL( 200?, sc4dndbrd ,sc4dndbr, sc4_5reel_alt, sc4dndbr35, sc4_state, sc4dndbr, ROT0, "BFM","Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD475, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // BIGD 475
+GAMEL( 200?, sc4dndbrf ,sc4dndbr, sc4_5reel_alt, sc4dndbr35, sc4_state, sc4dndbr, ROT0, "BFM","Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD475, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // BIGD 475
+GAMEL( 200?, sc4dndbre ,sc4dndbr, sc4_5reel_alt, sc4dndbr70, sc4_state, sc4dndbr, ROT0, "BFM","Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD571, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // BIGD 571
+GAMEL( 200?, sc4dndbrg ,sc4dndbr, sc4_5reel_alt, sc4dndbr70, sc4_state, sc4dndbr, ROT0, "BFM","Deal Or No Deal The Big Reds (Bellfruit) (Scorpion 4) (BIGD571, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // BIGD 571
DRIVER_INIT_MEMBER(sc4_state,sc4dndcc)
@@ -35117,13 +35117,13 @@ INPUT_PORTS_END
// PR3047 AWP DEAL OR NO DEAL THE CRAZY CHAIR SCORP4 PR3017 CRAZY CHAIR SOUNDS11 CRAZY CHAIR S.SITE
-GAMEL( 200?, sc4dndcc ,0, sc4_5reel, sc4dndcc35, sc4_state, sc4dndcc, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR471, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CRZR 471
-GAMEL( 200?, sc4dndccb ,sc4dndcc, sc4_5reel, sc4dndcc35, sc4_state, sc4dndcc, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR471, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CRZR 471, incomplete pairing
-GAMEL( 200?, sc4dndcca ,sc4dndcc, sc4_5reel, sc4dndcc35, sc4_state, sc4dndcc, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR474)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CRZR 474
-GAMEL( 200?, sc4dndccc ,sc4dndcc, sc4_5reel, sc4dndcc35, sc4_state, sc4dndcc, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR475, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CRZR 475
-GAMEL( 200?, sc4dndcce ,sc4dndcc, sc4_5reel, sc4dndcc35, sc4_state, sc4dndcc, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR475, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CRZR 475
-GAMEL( 200?, sc4dndccd ,sc4dndcc, sc4_5reel, sc4dndcc70, sc4_state, sc4dndcc, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR571, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CRZR 571
-GAMEL( 200?, sc4dndccf ,sc4dndcc, sc4_5reel, sc4dndcc70, sc4_state, sc4dndcc, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR571, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CRZR 571
+GAMEL( 200?, sc4dndcc ,0, sc4_5reel, sc4dndcc35, sc4_state, sc4dndcc, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR471, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CRZR 471
+GAMEL( 200?, sc4dndccb ,sc4dndcc, sc4_5reel, sc4dndcc35, sc4_state, sc4dndcc, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR471, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CRZR 471, incomplete pairing
+GAMEL( 200?, sc4dndcca ,sc4dndcc, sc4_5reel, sc4dndcc35, sc4_state, sc4dndcc, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR474)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CRZR 474
+GAMEL( 200?, sc4dndccc ,sc4dndcc, sc4_5reel, sc4dndcc35, sc4_state, sc4dndcc, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR475, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CRZR 475
+GAMEL( 200?, sc4dndcce ,sc4dndcc, sc4_5reel, sc4dndcc35, sc4_state, sc4dndcc, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR475, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CRZR 475
+GAMEL( 200?, sc4dndccd ,sc4dndcc, sc4_5reel, sc4dndcc70, sc4_state, sc4dndcc, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR571, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CRZR 571
+GAMEL( 200?, sc4dndccf ,sc4dndcc, sc4_5reel, sc4dndcc70, sc4_state, sc4dndcc, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 4) (CRZR571, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CRZR 571
DRIVER_INIT_MEMBER(sc4_state,sc4dnddw)
{
@@ -35212,14 +35212,14 @@ INPUT_PORTS_START( sc4dnddw70 )
INPUT_PORTS_END
// PR3043 AWP THE DEAL WHEEL S4 PR3202 THE DEAL WHEEL SOUNDS11 THE DEAL WHEEL S.SITE
-GAMEL( 200?, sc4dnddw ,0, sc4_200_5ra, sc4dnddw35, sc4_state, sc4dnddw, ROT0, "BFM","Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN471, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4dnddw ) // DOFN 471
-GAMEL( 200?, sc4dnddwb ,sc4dnddw, sc4_200_5ra, sc4dnddw35, sc4_state, sc4dnddw, ROT0, "BFM","Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN471, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4dnddw ) // DOFN 471
-GAMEL( 200?, sc4dnddwa ,sc4dnddw, sc4_200_5ra, sc4dnddw35, sc4_state, sc4dnddw, ROT0, "BFM","Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN473, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4dnddw ) // DOFN 473
-GAMEL( 200?, sc4dnddwc ,sc4dnddw, sc4_200_5ra, sc4dnddw35, sc4_state, sc4dnddw, ROT0, "BFM","Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN473, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4dnddw ) // DOFN 473
-GAMEL( 200?, sc4dnddwd ,sc4dnddw, sc4_200_5ra, sc4dnddw35, sc4_state, sc4dnddw, ROT0, "BFM","Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN475, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4dnddw ) // DOFN 475
-GAMEL( 200?, sc4dnddwf ,sc4dnddw, sc4_200_5ra, sc4dnddw35, sc4_state, sc4dnddw, ROT0, "BFM","Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN475, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4dnddw ) // DOFN 475
-GAMEL( 200?, sc4dnddwe ,sc4dnddw, sc4_200_5ra, sc4dnddw70, sc4_state, sc4dnddw, ROT0, "BFM","Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN572, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4dnddw ) // DOFN 572
-GAMEL( 200?, sc4dnddwg ,sc4dnddw, sc4_200_5ra, sc4dnddw70, sc4_state, sc4dnddw, ROT0, "BFM","Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN572, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4dnddw ) // DOFN 572
+GAMEL( 200?, sc4dnddw ,0, sc4_200_5ra, sc4dnddw35, sc4_state, sc4dnddw, ROT0, "BFM","Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN471, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4dnddw ) // DOFN 471
+GAMEL( 200?, sc4dnddwb ,sc4dnddw, sc4_200_5ra, sc4dnddw35, sc4_state, sc4dnddw, ROT0, "BFM","Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN471, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4dnddw ) // DOFN 471
+GAMEL( 200?, sc4dnddwa ,sc4dnddw, sc4_200_5ra, sc4dnddw35, sc4_state, sc4dnddw, ROT0, "BFM","Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN473, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4dnddw ) // DOFN 473
+GAMEL( 200?, sc4dnddwc ,sc4dnddw, sc4_200_5ra, sc4dnddw35, sc4_state, sc4dnddw, ROT0, "BFM","Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN473, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4dnddw ) // DOFN 473
+GAMEL( 200?, sc4dnddwd ,sc4dnddw, sc4_200_5ra, sc4dnddw35, sc4_state, sc4dnddw, ROT0, "BFM","Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN475, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4dnddw ) // DOFN 475
+GAMEL( 200?, sc4dnddwf ,sc4dnddw, sc4_200_5ra, sc4dnddw35, sc4_state, sc4dnddw, ROT0, "BFM","Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN475, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4dnddw ) // DOFN 475
+GAMEL( 200?, sc4dnddwe ,sc4dnddw, sc4_200_5ra, sc4dnddw70, sc4_state, sc4dnddw, ROT0, "BFM","Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN572, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4dnddw ) // DOFN 572
+GAMEL( 200?, sc4dnddwg ,sc4dnddw, sc4_200_5ra, sc4dnddw70, sc4_state, sc4dnddw, ROT0, "BFM","Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 4) (DOFN572, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4dnddw ) // DOFN 572
DRIVER_INIT_MEMBER(sc4_state,sc4dnddf)
{
@@ -35305,12 +35305,12 @@ INPUT_PORTS_START( sc4dnddf70 )
INPUT_PORTS_END
// PR3044 AWP DEAL OR NO DEAL THE DREAM FACTORY SCORP4 PR3014 DREAM FACTORY SOUNDS11 DREAM FACTORY S.SITE
-GAMEL( 200?, sc4dnddf ,0, sc4_200_alt, sc4dnddf35, sc4_state, sc4dnddf, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (TDFC471, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // TDFC 471
-GAMEL( 200?, sc4dnddfa ,sc4dnddf, sc4_200_alt, sc4dnddf35, sc4_state, sc4dnddf, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (TDFC471, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // TDFC 471, incomplete pairing
-GAMEL( 200?, sc4dnddfb ,sc4dnddf, sc4_200_alt, sc4dnddf35, sc4_state, sc4dnddf, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (TDFC475, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // TDFC 475
-GAMEL( 200?, sc4dnddfd ,sc4dnddf, sc4_200_alt, sc4dnddf35, sc4_state, sc4dnddf, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (TDFC475, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // TDFC 475
-GAMEL( 200?, sc4dnddfc ,sc4dnddf, sc4_200_alt, sc4dnddf70, sc4_state, sc4dnddf, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (TDFC571, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // TDFC 571
-GAMEL( 200?, sc4dnddfe ,sc4dnddf, sc4_200_alt, sc4dnddf70, sc4_state, sc4dnddf, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (TDFC571, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // TDFC 571
+GAMEL( 200?, sc4dnddf ,0, sc4_200_alt, sc4dnddf35, sc4_state, sc4dnddf, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (TDFC471, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // TDFC 471
+GAMEL( 200?, sc4dnddfa ,sc4dnddf, sc4_200_alt, sc4dnddf35, sc4_state, sc4dnddf, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (TDFC471, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // TDFC 471, incomplete pairing
+GAMEL( 200?, sc4dnddfb ,sc4dnddf, sc4_200_alt, sc4dnddf35, sc4_state, sc4dnddf, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (TDFC475, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // TDFC 475
+GAMEL( 200?, sc4dnddfd ,sc4dnddf, sc4_200_alt, sc4dnddf35, sc4_state, sc4dnddf, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (TDFC475, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // TDFC 475
+GAMEL( 200?, sc4dnddfc ,sc4dnddf, sc4_200_alt, sc4dnddf70, sc4_state, sc4dnddf, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (TDFC571, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // TDFC 571
+GAMEL( 200?, sc4dnddfe ,sc4dnddf, sc4_200_alt, sc4dnddf70, sc4_state, sc4dnddf, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 4) (TDFC571, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // TDFC 571
DRIVER_INIT_MEMBER(sc4_state,sc4dndpg)
@@ -35401,12 +35401,12 @@ INPUT_PORTS_END
// PR3240 AWP DEAL OR NO DEAL THE PERFECT GAME SCORP4 PR3220 DOND PERFECT SOUNDS11 THE PERFECT GAME S.SITE
-GAMEL( 200?, sc4dndpg ,0, sc4_5reel, sc4dndpg35, sc4_state, sc4dndpg, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (TPBG471, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // TPGB 471
-GAMEL( 200?, sc4dndpgc ,sc4dndpg, sc4_5reel, sc4dndpg35, sc4_state, sc4dndpg, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (TPBG471, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // TPBG 471
-GAMEL( 200?, sc4dndpga ,sc4dndpg, sc4_5reel, sc4dndpg70, sc4_state, sc4dndpg, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (TPBG571, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // TPGB 571
-GAMEL( 200?, sc4dndpgd ,sc4dndpg, sc4_5reel, sc4dndpg70, sc4_state, sc4dndpg, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (TPGB571, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // TPGB 571
-GAMEL( 200?, sc4dndpgb ,sc4dndpg, sc4_5reel, sc4dndpg70, sc4_state, sc4dndpg, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (TPBG572, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // TPGB 572
-GAMEL( 200?, sc4dndpge ,sc4dndpg, sc4_5reel, sc4dndpg70, sc4_state, sc4dndpg, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (TPGB572, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // TPGB 572
+GAMEL( 200?, sc4dndpg ,0, sc4_5reel, sc4dndpg35, sc4_state, sc4dndpg, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (TPBG471, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // TPGB 471
+GAMEL( 200?, sc4dndpgc ,sc4dndpg, sc4_5reel, sc4dndpg35, sc4_state, sc4dndpg, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (TPBG471, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // TPBG 471
+GAMEL( 200?, sc4dndpga ,sc4dndpg, sc4_5reel, sc4dndpg70, sc4_state, sc4dndpg, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (TPBG571, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // TPGB 571
+GAMEL( 200?, sc4dndpgd ,sc4dndpg, sc4_5reel, sc4dndpg70, sc4_state, sc4dndpg, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (TPGB571, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // TPGB 571
+GAMEL( 200?, sc4dndpgb ,sc4dndpg, sc4_5reel, sc4dndpg70, sc4_state, sc4dndpg, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (TPBG572, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // TPGB 572
+GAMEL( 200?, sc4dndpge ,sc4dndpg, sc4_5reel, sc4dndpg70, sc4_state, sc4dndpg, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 4) (TPGB572, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // TPGB 572
DRIVER_INIT_MEMBER(sc4_state,sc4dndtp)
@@ -35483,20 +35483,20 @@ INPUT_PORTS_START( sc4dndtp35 )
INPUT_PORTS_END
// PR3033 AWP DOND THE POWER 5 SCORP4 PR3033 POWER FIVE SOUNDS11 DOND THE POWER 5 S.SITE
-GAMEL( 200?, sc4dndtp ,0, sc4_5reel, sc4dndtp35, sc4_state, sc4dndtp, ROT0, "BFM","Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV411, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4dndtp ) // TPRV 411
-GAMEL( 200?, sc4dndtpe ,sc4dndtp, sc4_5reel, sc4dndtp35, sc4_state, sc4dndtp, ROT0, "BFM","Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV411, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4dndtp ) // TPRV 411
-GAMEL( 200?, sc4dndtpa ,sc4dndtp, sc4_5reel, sc4dndtp35, sc4_state, sc4dndtp, ROT0, "BFM","Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV412, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4dndtp ) // TPRV 412
-GAMEL( 200?, sc4dndtpf ,sc4dndtp, sc4_5reel, sc4dndtp35, sc4_state, sc4dndtp, ROT0, "BFM","Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV412, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4dndtp ) // TPRV 412
-GAMEL( 200?, sc4dndtpb ,sc4dndtp, sc4_5reel, sc4dndtp35, sc4_state, sc4dndtp, ROT0, "BFM","Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV413, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4dndtp ) // TPRV 413
-GAMEL( 200?, sc4dndtpg ,sc4dndtp, sc4_5reel, sc4dndtp35, sc4_state, sc4dndtp, ROT0, "BFM","Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV413, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4dndtp ) // TPRV 413
-GAMEL( 200?, sc4dndtpc ,sc4dndtp, sc4_5reel, sc4dndtp35, sc4_state, sc4dndtp, ROT0, "BFM","Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV414, set 1, bad)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4dndtp ) // TPRV 414 EEPROM error (bad rom?) (botched release?)
-GAMEL( 200?, sc4dndtph ,sc4dndtp, sc4_5reel, sc4dndtp35, sc4_state, sc4dndtp, ROT0, "BFM","Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV414, set 2, bad)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4dndtp ) // TPRV 414 EEPROM error (bad rom?) (botched release?)
-GAMEL( 200?, sc4dndtpd ,sc4dndtp, sc4_5reel, sc4dndtp35, sc4_state, sc4dndtp, ROT0, "BFM","Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV415, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4dndtp ) // TPRV 415
-GAMEL( 200?, sc4dndtpi ,sc4dndtp, sc4_5reel, sc4dndtp35, sc4_state, sc4dndtp, ROT0, "BFM","Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV415, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4dndtp )// TPRV 415
-GAMEL( 200?, sc4dndtpl ,sc4dndtp, sc4_5reel, sc4dndtp35, sc4_state, sc4dndtp, ROT0, "BFM","Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV416, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4dndtp )// TPRV 416
-GAMEL( 200?, sc4dndtpm ,sc4dndtp, sc4_5reel, sc4dndtp35, sc4_state, sc4dndtp, ROT0, "BFM","Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV416, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4dndtp )// TPRV 416
-GAMEL( 200?, sc4dndtpj ,sc4dndtp, sc4_5reel, sc4dndtp35, sc4_state, sc4dndtp, ROT0, "BFM","Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV41A, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4dndtp )// TPRV 41A
-GAMEL( 200?, sc4dndtpk ,sc4dndtp, sc4_5reel, sc4dndtp35, sc4_state, sc4dndtp, ROT0, "BFM","Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV41A, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4dndtp )// TPRV 41A
+GAMEL( 200?, sc4dndtp ,0, sc4_5reel, sc4dndtp35, sc4_state, sc4dndtp, ROT0, "BFM","Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV411, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4dndtp ) // TPRV 411
+GAMEL( 200?, sc4dndtpe ,sc4dndtp, sc4_5reel, sc4dndtp35, sc4_state, sc4dndtp, ROT0, "BFM","Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV411, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4dndtp ) // TPRV 411
+GAMEL( 200?, sc4dndtpa ,sc4dndtp, sc4_5reel, sc4dndtp35, sc4_state, sc4dndtp, ROT0, "BFM","Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV412, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4dndtp ) // TPRV 412
+GAMEL( 200?, sc4dndtpf ,sc4dndtp, sc4_5reel, sc4dndtp35, sc4_state, sc4dndtp, ROT0, "BFM","Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV412, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4dndtp ) // TPRV 412
+GAMEL( 200?, sc4dndtpb ,sc4dndtp, sc4_5reel, sc4dndtp35, sc4_state, sc4dndtp, ROT0, "BFM","Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV413, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4dndtp ) // TPRV 413
+GAMEL( 200?, sc4dndtpg ,sc4dndtp, sc4_5reel, sc4dndtp35, sc4_state, sc4dndtp, ROT0, "BFM","Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV413, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4dndtp ) // TPRV 413
+GAMEL( 200?, sc4dndtpc ,sc4dndtp, sc4_5reel, sc4dndtp35, sc4_state, sc4dndtp, ROT0, "BFM","Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV414, set 1, bad)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4dndtp ) // TPRV 414 EEPROM error (bad rom?) (botched release?)
+GAMEL( 200?, sc4dndtph ,sc4dndtp, sc4_5reel, sc4dndtp35, sc4_state, sc4dndtp, ROT0, "BFM","Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV414, set 2, bad)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4dndtp ) // TPRV 414 EEPROM error (bad rom?) (botched release?)
+GAMEL( 200?, sc4dndtpd ,sc4dndtp, sc4_5reel, sc4dndtp35, sc4_state, sc4dndtp, ROT0, "BFM","Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV415, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4dndtp ) // TPRV 415
+GAMEL( 200?, sc4dndtpi ,sc4dndtp, sc4_5reel, sc4dndtp35, sc4_state, sc4dndtp, ROT0, "BFM","Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV415, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4dndtp )// TPRV 415
+GAMEL( 200?, sc4dndtpl ,sc4dndtp, sc4_5reel, sc4dndtp35, sc4_state, sc4dndtp, ROT0, "BFM","Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV416, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4dndtp )// TPRV 416
+GAMEL( 200?, sc4dndtpm ,sc4dndtp, sc4_5reel, sc4dndtp35, sc4_state, sc4dndtp, ROT0, "BFM","Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV416, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4dndtp )// TPRV 416
+GAMEL( 200?, sc4dndtpj ,sc4dndtp, sc4_5reel, sc4dndtp35, sc4_state, sc4dndtp, ROT0, "BFM","Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV41A, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4dndtp )// TPRV 41A
+GAMEL( 200?, sc4dndtpk ,sc4dndtp, sc4_5reel, sc4dndtp35, sc4_state, sc4dndtp, ROT0, "BFM","Deal Or No Deal The Power 5 (Bellfruit) (Scorpion 4) (TPRV41A, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4dndtp )// TPRV 41A
@@ -35584,12 +35584,12 @@ INPUT_PORTS_END
// PR3006 AWP DEAL OR NO DEAL THE WALK OF WEALTH SCORP4 PR3006 WALK OF WEALTH SOUNDS11 WALK OF WEALTH S.SITE
-GAMEL( 200?, sc4dndww ,0, sc4, sc4dndww35, sc4_state, sc4dndww, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (TWOH411, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // TWOH 411
-GAMEL( 200?, sc4dndwwb ,sc4dndww, sc4, sc4dndww35, sc4_state, sc4dndww, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (TWOH411, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // TWOH 411
-GAMEL( 200?, sc4dndwwa ,sc4dndww, sc4, sc4dndww35, sc4_state, sc4dndww, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (TWOH412, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // TWOH 412
-GAMEL( 200?, sc4dndwwe ,sc4dndww, sc4, sc4dndww35, sc4_state, sc4dndww, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (TWOH412, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // TWOH 412
-GAMEL( 200?, sc4dndwwc ,sc4dndww, sc4, sc4dndww35, sc4_state, sc4dndww, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (TWOH415, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // TWOH 415
-GAMEL( 200?, sc4dndwwd ,sc4dndww, sc4, sc4dndww35, sc4_state, sc4dndww, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (TWOH415, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // TWOH 415
+GAMEL( 200?, sc4dndww ,0, sc4, sc4dndww35, sc4_state, sc4dndww, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (TWOH411, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // TWOH 411
+GAMEL( 200?, sc4dndwwb ,sc4dndww, sc4, sc4dndww35, sc4_state, sc4dndww, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (TWOH411, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // TWOH 411
+GAMEL( 200?, sc4dndwwa ,sc4dndww, sc4, sc4dndww35, sc4_state, sc4dndww, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (TWOH412, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // TWOH 412
+GAMEL( 200?, sc4dndwwe ,sc4dndww, sc4, sc4dndww35, sc4_state, sc4dndww, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (TWOH412, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // TWOH 412
+GAMEL( 200?, sc4dndwwc ,sc4dndww, sc4, sc4dndww35, sc4_state, sc4dndww, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (TWOH415, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // TWOH 415
+GAMEL( 200?, sc4dndwwd ,sc4dndww, sc4, sc4dndww35, sc4_state, sc4dndww, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 4) (TWOH415, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // TWOH 415
DRIVER_INIT_MEMBER(sc4_state,sc4dndcw)
{
@@ -35674,10 +35674,10 @@ INPUT_PORTS_END
// PR3027 AWP CLASSIC DEAL OR NO DEAL THE WALK OF WEALTH SCORP4 PR3006 WALK OF WEALTH SOUNDS11 WALK OF WEALTH S.SITE
-GAMEL( 200?, sc4dndcw ,0, sc4, sc4dndcw5, sc4_state, sc4dndcw, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 4) (CWOH271, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CWOH 271
-GAMEL( 200?, sc4dndcwb ,sc4dndcw, sc4, sc4dndcw5, sc4_state, sc4dndcw, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 4) (CWOH271, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CWOH 271
-GAMEL( 200?, sc4dndcwa ,sc4dndcw, sc4, sc4dndcw5, sc4_state, sc4dndcw, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 4) (CWOH272, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CWOH 272
-GAMEL( 200?, sc4dndcwc ,sc4dndcw, sc4, sc4dndcw5, sc4_state, sc4dndcw, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 4) (CWOH272, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CWOH 272
+GAMEL( 200?, sc4dndcw ,0, sc4, sc4dndcw5, sc4_state, sc4dndcw, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 4) (CWOH271, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CWOH 271
+GAMEL( 200?, sc4dndcwb ,sc4dndcw, sc4, sc4dndcw5, sc4_state, sc4dndcw, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 4) (CWOH271, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CWOH 271
+GAMEL( 200?, sc4dndcwa ,sc4dndcw, sc4, sc4dndcw5, sc4_state, sc4dndcw, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 4) (CWOH272, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CWOH 272
+GAMEL( 200?, sc4dndcwc ,sc4dndcw, sc4, sc4dndcw5, sc4_state, sc4dndcw, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 4) (CWOH272, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // CWOH 272
DRIVER_INIT_MEMBER(sc4_state,sc4dndtr)
@@ -35758,8 +35758,8 @@ INPUT_PORTS_END
// PR3329 DOND THINK RED S4 PR3304 THINK RED SOUNDS11 THINK RED S.SITE
-GAMEL( 200?, sc4dndtr ,0, sc4_5reel_alt, sc4dndtr70, sc4_state, sc4dndtr, ROT0, "BFM","Deal Or No Deal Think Red (Bellfruit) (Scorpion 4) (THRE571, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // THRE 571
-GAMEL( 200?, sc4dndtra ,sc4dndtr, sc4_5reel_alt, sc4dndtr70, sc4_state, sc4dndtr, ROT0, "BFM","Deal Or No Deal Think Red (Bellfruit) (Scorpion 4) (THRE571, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // THRE 571
+GAMEL( 200?, sc4dndtr ,0, sc4_5reel_alt, sc4dndtr70, sc4_state, sc4dndtr, ROT0, "BFM","Deal Or No Deal Think Red (Bellfruit) (Scorpion 4) (THRE571, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // THRE 571
+GAMEL( 200?, sc4dndtra ,sc4dndtr, sc4_5reel_alt, sc4dndtr70, sc4_state, sc4dndtr, ROT0, "BFM","Deal Or No Deal Think Red (Bellfruit) (Scorpion 4) (THRE571, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // THRE 571
DRIVER_INIT_MEMBER(sc4_state,sc4dndwb)
{
@@ -35844,14 +35844,14 @@ INPUT_PORTS_START( sc4dndwb35 )
INPUT_PORTS_END
// PR1982 AWP DEAL OR NO DEAL WHATS IN YOUR BOX SCORP4 PR1962 WHATS IN Y BOX SOUNDS11 WHATS IN YOUR BX S.SITE
-GAMEL( 200?, sc4dndwb ,0, sc4_200_5ra, sc4dndwb35, sc4_state, sc4dndwb, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX412, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // WIYX 412
-GAMEL( 200?, sc4dndwbb ,sc4dndwb, sc4_200_5ra, sc4dndwb35, sc4_state, sc4dndwb, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX412, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // WIYX 412
-GAMEL( 200?, sc4dndwba ,sc4dndwb, sc4_200_5ra, sc4dndwb35, sc4_state, sc4dndwb, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX414, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // WIYX 414
-GAMEL( 200?, sc4dndwbc ,sc4dndwb, sc4_200_5ra, sc4dndwb35, sc4_state, sc4dndwb, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX414, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // WIYX 414
-GAMEL( 200?, sc4dndwbd ,sc4dndwb, sc4_200_5ra, sc4dndwb35, sc4_state, sc4dndwb, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX415, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // WIYX 415
-GAMEL( 200?, sc4dndwbe ,sc4dndwb, sc4_200_5ra, sc4dndwb35, sc4_state, sc4dndwb, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX415, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // WIYX 415
-GAMEL( 200?, sc4dndwbf ,sc4dndwb, sc4_200_5ra, sc4dndwb35, sc4_state, sc4dndwb, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX419, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // WIYX 419
-GAMEL( 200?, sc4dndwbg ,sc4dndwb, sc4_200_5ra, sc4dndwb35, sc4_state, sc4dndwb, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX419, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // WIYX 419
+GAMEL( 200?, sc4dndwb ,0, sc4_200_5ra, sc4dndwb35, sc4_state, sc4dndwb, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX412, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // WIYX 412
+GAMEL( 200?, sc4dndwbb ,sc4dndwb, sc4_200_5ra, sc4dndwb35, sc4_state, sc4dndwb, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX412, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // WIYX 412
+GAMEL( 200?, sc4dndwba ,sc4dndwb, sc4_200_5ra, sc4dndwb35, sc4_state, sc4dndwb, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX414, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // WIYX 414
+GAMEL( 200?, sc4dndwbc ,sc4dndwb, sc4_200_5ra, sc4dndwb35, sc4_state, sc4dndwb, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX414, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // WIYX 414
+GAMEL( 200?, sc4dndwbd ,sc4dndwb, sc4_200_5ra, sc4dndwb35, sc4_state, sc4dndwb, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX415, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // WIYX 415
+GAMEL( 200?, sc4dndwbe ,sc4dndwb, sc4_200_5ra, sc4dndwb35, sc4_state, sc4dndwb, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX415, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // WIYX 415
+GAMEL( 200?, sc4dndwbf ,sc4dndwb, sc4_200_5ra, sc4dndwb35, sc4_state, sc4dndwb, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX419, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // WIYX 419
+GAMEL( 200?, sc4dndwbg ,sc4dndwb, sc4_200_5ra, sc4dndwb35, sc4_state, sc4dndwb, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 4) (WIYX419, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // WIYX 419
DRIVER_INIT_MEMBER(sc4_state,sc4dndbe)
{
@@ -35936,20 +35936,20 @@ INPUT_PORTS_START( sc4dndbe35 )
INPUT_PORTS_END
// PR1935 AWP DEAL OR NO DEAL BEAT THE BANKER S4 PR1915 BEAT THE BANKER SOUNDS11 BEAT THE BANKER S.SITE
-GAMEL( 200?, sc4dndbe ,0, sc4_5reel_alt, sc4dndbe25, sc4_state, sc4dndbe, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK012, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DBTK 012
-GAMEL( 200?, sc4dndbec ,sc4dndbe, sc4_5reel_alt, sc4dndbe25, sc4_state, sc4dndbe, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK012, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DBTK 012
-GAMEL( 200?, sc4dndbeg ,sc4dndbe, sc4_5reel_alt, sc4dndbe25, sc4_state, sc4dndbe, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK013, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DBTK 013
-GAMEL( 200?, sc4dndbek ,sc4dndbe, sc4_5reel_alt, sc4dndbe25, sc4_state, sc4dndbe, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK013, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DBTK 013
-GAMEL( 200?, sc4dndbeh ,sc4dndbe, sc4_5reel_alt, sc4dndbe25, sc4_state, sc4dndbe, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK014, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DBTK 014
-GAMEL( 200?, sc4dndbel ,sc4dndbe, sc4_5reel_alt, sc4dndbe25, sc4_state, sc4dndbe, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK014, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DBTK 014
-GAMEL( 200?, sc4dndbeb ,sc4dndbe, sc4_5reel_alt, sc4dndbe35, sc4_state, sc4dndbe, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK422, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DBTK 422
-GAMEL( 200?, sc4dndbed ,sc4dndbe, sc4_5reel_alt, sc4dndbe35, sc4_state, sc4dndbe, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK422, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DBTK 422
-GAMEL( 200?, sc4dndbee ,sc4dndbe, sc4_5reel_alt, sc4dndbe35, sc4_state, sc4dndbe, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK423, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DBTK 423
-GAMEL( 200?, sc4dndbei ,sc4dndbe, sc4_5reel_alt, sc4dndbe35, sc4_state, sc4dndbe, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK423, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DBTK 423
-GAMEL( 200?, sc4dndbef ,sc4dndbe, sc4_5reel_alt, sc4dndbe35, sc4_state, sc4dndbe, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK425, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DBTK 425
-GAMEL( 200?, sc4dndbej ,sc4dndbe, sc4_5reel_alt, sc4dndbe35, sc4_state, sc4dndbe, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK425, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DBTK 425
-GAMEL( 200?, sc4dndbem ,sc4dndbe, sc4_5reel_alt, sc4dndbe35, sc4_state, sc4dndbe, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK426, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DBTK 426
-GAMEL( 200?, sc4dndben ,sc4dndbe, sc4_5reel_alt, sc4dndbe35, sc4_state, sc4dndbe, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK426, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DBTK 426
+GAMEL( 200?, sc4dndbe ,0, sc4_5reel_alt, sc4dndbe25, sc4_state, sc4dndbe, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK012, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DBTK 012
+GAMEL( 200?, sc4dndbec ,sc4dndbe, sc4_5reel_alt, sc4dndbe25, sc4_state, sc4dndbe, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK012, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DBTK 012
+GAMEL( 200?, sc4dndbeg ,sc4dndbe, sc4_5reel_alt, sc4dndbe25, sc4_state, sc4dndbe, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK013, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DBTK 013
+GAMEL( 200?, sc4dndbek ,sc4dndbe, sc4_5reel_alt, sc4dndbe25, sc4_state, sc4dndbe, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK013, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DBTK 013
+GAMEL( 200?, sc4dndbeh ,sc4dndbe, sc4_5reel_alt, sc4dndbe25, sc4_state, sc4dndbe, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK014, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DBTK 014
+GAMEL( 200?, sc4dndbel ,sc4dndbe, sc4_5reel_alt, sc4dndbe25, sc4_state, sc4dndbe, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK014, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DBTK 014
+GAMEL( 200?, sc4dndbeb ,sc4dndbe, sc4_5reel_alt, sc4dndbe35, sc4_state, sc4dndbe, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK422, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DBTK 422
+GAMEL( 200?, sc4dndbed ,sc4dndbe, sc4_5reel_alt, sc4dndbe35, sc4_state, sc4dndbe, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK422, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DBTK 422
+GAMEL( 200?, sc4dndbee ,sc4dndbe, sc4_5reel_alt, sc4dndbe35, sc4_state, sc4dndbe, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK423, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DBTK 423
+GAMEL( 200?, sc4dndbei ,sc4dndbe, sc4_5reel_alt, sc4dndbe35, sc4_state, sc4dndbe, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK423, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DBTK 423
+GAMEL( 200?, sc4dndbef ,sc4dndbe, sc4_5reel_alt, sc4dndbe35, sc4_state, sc4dndbe, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK425, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DBTK 425
+GAMEL( 200?, sc4dndbej ,sc4dndbe, sc4_5reel_alt, sc4dndbe35, sc4_state, sc4dndbe, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK425, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DBTK 425
+GAMEL( 200?, sc4dndbem ,sc4dndbe, sc4_5reel_alt, sc4dndbe35, sc4_state, sc4dndbe, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK426, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DBTK 426
+GAMEL( 200?, sc4dndben ,sc4dndbe, sc4_5reel_alt, sc4dndbe35, sc4_state, sc4dndbe, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 4) (DBTK426, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // DBTK 426
DRIVER_INIT_MEMBER(sc4_state,sc4dndbc)
@@ -36034,8 +36034,8 @@ INPUT_PORTS_END
// PR3337 AWP DEAL OR NO DEAL BOX CLEVER SCORP4 PR3312 DOND BOXCLEVER SOUNDS11 BOX CLEVER S.SITE
-GAMEL( 200?, sc4dndbc ,0, sc4_5reel, sc4dndbc70, sc4_state, sc4dndbc, ROT0, "BFM","Deal Or No Deal Box Clever (Bellfruit) (Scorpion 4) (BOXR571, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // BOXR 571
-GAMEL( 200?, sc4dndbca ,sc4dndbc, sc4_5reel, sc4dndbc70, sc4_state, sc4dndbc, ROT0, "BFM","Deal Or No Deal Box Clever (Bellfruit) (Scorpion 4) (BOXR571, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // BOXR 571
+GAMEL( 200?, sc4dndbc ,0, sc4_5reel, sc4dndbc70, sc4_state, sc4dndbc, ROT0, "BFM","Deal Or No Deal Box Clever (Bellfruit) (Scorpion 4) (BOXR571, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // BOXR 571
+GAMEL( 200?, sc4dndbca ,sc4dndbc, sc4_5reel, sc4dndbc70, sc4_state, sc4dndbc, ROT0, "BFM","Deal Or No Deal Box Clever (Bellfruit) (Scorpion 4) (BOXR571, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // BOXR 571
DRIVER_INIT_MEMBER(sc4_state,sc4dmine)
@@ -36106,12 +36106,12 @@ INPUT_PORTS_START( sc4dmine ) // this structure is generated
INPUT_PORTS_END
// PR1307 AWP DIAMOND MINE PR1307 DIAM MINE SOUNDS11
-GAMEL( 200?, sc4dmine ,0, sc4_5reel, sc4dmine, sc4_state, sc4dmine, ROT0, "BFM","Diamond Mine (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4dminea ,sc4dmine, sc4_5reel, sc4dmine, sc4_state, sc4dmine, ROT0, "BFM","Diamond Mine (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4dmineb ,sc4dmine, sc4_5reel, sc4dmine, sc4_state, sc4dmine, ROT0, "BFM","Diamond Mine (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4dminec ,sc4dmine, sc4_5reel, sc4dmine, sc4_state, sc4dmine, ROT0, "BFM","Diamond Mine (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4dmined ,sc4dmine, sc4_5reel, sc4dmine, sc4_state, sc4dmine, ROT0, "BFM","Diamond Mine (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4dminee ,sc4dmine, sc4_5reel, sc4dmine, sc4_state, sc4dmine, ROT0, "BFM","Diamond Mine (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dmine ,0, sc4_5reel, sc4dmine, sc4_state, sc4dmine, ROT0, "BFM","Diamond Mine (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dminea ,sc4dmine, sc4_5reel, sc4dmine, sc4_state, sc4dmine, ROT0, "BFM","Diamond Mine (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dmineb ,sc4dmine, sc4_5reel, sc4dmine, sc4_state, sc4dmine, ROT0, "BFM","Diamond Mine (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dminec ,sc4dmine, sc4_5reel, sc4dmine, sc4_state, sc4dmine, ROT0, "BFM","Diamond Mine (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dmined ,sc4dmine, sc4_5reel, sc4dmine, sc4_state, sc4dmine, ROT0, "BFM","Diamond Mine (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dminee ,sc4dmine, sc4_5reel, sc4dmine, sc4_state, sc4dmine, ROT0, "BFM","Diamond Mine (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -36191,23 +36191,23 @@ INPUT_PORTS_END
// saw a crash on exit with this game, why?
// PR1309 AWP DOCTOR DOSH PR1309 DOCTOR DOSH SOUNDS11
-GAMEL( 200?, sc4ddosh ,0, sc4_200_4r, sc4ddosh, sc4_state, sc4ddosh, ROT0, "BFM","Doctor Dosh (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ddosha ,sc4ddosh, sc4_200_4r, sc4ddosh, sc4_state, sc4ddosh, ROT0, "BFM","Doctor Dosh (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ddoshb ,sc4ddosh, sc4_200_4r, sc4ddosh, sc4_state, sc4ddosh, ROT0, "BFM","Doctor Dosh (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ddoshc ,sc4ddosh, sc4_200_4r, sc4ddosh, sc4_state, sc4ddosh, ROT0, "BFM","Doctor Dosh (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ddoshd ,sc4ddosh, sc4_200_4r, sc4ddosh, sc4_state, sc4ddosh, ROT0, "BFM","Doctor Dosh (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ddoshe ,sc4ddosh, sc4_200_4r, sc4ddosh, sc4_state, sc4ddosh, ROT0, "BFM","Doctor Dosh (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ddoshl ,sc4ddosh, sc4_200_4r, sc4ddosh, sc4_state, sc4ddosh, ROT0, "BFM","Doctor Dosh (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ddoshm ,sc4ddosh, sc4_200_4r, sc4ddosh, sc4_state, sc4ddosh, ROT0, "BFM","Doctor Dosh (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ddoshn ,sc4ddosh, sc4_200_4r, sc4ddosh, sc4_state, sc4ddosh, ROT0, "BFM","Doctor Dosh (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ddosho ,sc4ddosh, sc4_200_4r, sc4ddosh, sc4_state, sc4ddosh, ROT0, "BFM","Doctor Dosh (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ddosh ,0, sc4_200_4r, sc4ddosh, sc4_state, sc4ddosh, ROT0, "BFM","Doctor Dosh (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ddosha ,sc4ddosh, sc4_200_4r, sc4ddosh, sc4_state, sc4ddosh, ROT0, "BFM","Doctor Dosh (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ddoshb ,sc4ddosh, sc4_200_4r, sc4ddosh, sc4_state, sc4ddosh, ROT0, "BFM","Doctor Dosh (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ddoshc ,sc4ddosh, sc4_200_4r, sc4ddosh, sc4_state, sc4ddosh, ROT0, "BFM","Doctor Dosh (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ddoshd ,sc4ddosh, sc4_200_4r, sc4ddosh, sc4_state, sc4ddosh, ROT0, "BFM","Doctor Dosh (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ddoshe ,sc4ddosh, sc4_200_4r, sc4ddosh, sc4_state, sc4ddosh, ROT0, "BFM","Doctor Dosh (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ddoshl ,sc4ddosh, sc4_200_4r, sc4ddosh, sc4_state, sc4ddosh, ROT0, "BFM","Doctor Dosh (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ddoshm ,sc4ddosh, sc4_200_4r, sc4ddosh, sc4_state, sc4ddosh, ROT0, "BFM","Doctor Dosh (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ddoshn ,sc4ddosh, sc4_200_4r, sc4ddosh, sc4_state, sc4ddosh, ROT0, "BFM","Doctor Dosh (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ddosho ,sc4ddosh, sc4_200_4r, sc4ddosh, sc4_state, sc4ddosh, ROT0, "BFM","Doctor Dosh (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR1309 AWP DOCTOR DOSH PR1309 DOCTOR DOSH SOUNDS11 DOCTOR DOSH S.SITE
-GAMEL( 200?, sc4ddoshf ,sc4ddosh, sc4_200_4r, sc4ddosh, sc4_state, sc4ddosh_mbus, ROT0, "BFM","Doctor Dosh (Bellfruit) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ddoshg ,sc4ddosh, sc4_200_4r, sc4ddosh, sc4_state, sc4ddosh_mbus, ROT0, "BFM","Doctor Dosh (Bellfruit) (Scorpion 4) (set 12)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ddoshh ,sc4ddosh, sc4_200_4r, sc4ddosh, sc4_state, sc4ddosh_mbus, ROT0, "BFM","Doctor Dosh (Bellfruit) (Scorpion 4) (set 13)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ddoshi ,sc4ddosh, sc4_200_4r, sc4ddosh, sc4_state, sc4ddosh_mbus, ROT0, "BFM","Doctor Dosh (Bellfruit) (Scorpion 4) (set 14)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ddoshj ,sc4ddosh, sc4_200_4r, sc4ddosh, sc4_state, sc4ddosh_mbus, ROT0, "BFM","Doctor Dosh (Bellfruit) (Scorpion 4) (set 15)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ddoshk ,sc4ddosh, sc4_200_4r, sc4ddosh, sc4_state, sc4ddosh_mbus, ROT0, "BFM","Doctor Dosh (Bellfruit) (Scorpion 4) (set 16)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ddoshf ,sc4ddosh, sc4_200_4r, sc4ddosh, sc4_state, sc4ddosh_mbus, ROT0, "BFM","Doctor Dosh (Bellfruit) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ddoshg ,sc4ddosh, sc4_200_4r, sc4ddosh, sc4_state, sc4ddosh_mbus, ROT0, "BFM","Doctor Dosh (Bellfruit) (Scorpion 4) (set 12)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ddoshh ,sc4ddosh, sc4_200_4r, sc4ddosh, sc4_state, sc4ddosh_mbus, ROT0, "BFM","Doctor Dosh (Bellfruit) (Scorpion 4) (set 13)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ddoshi ,sc4ddosh, sc4_200_4r, sc4ddosh, sc4_state, sc4ddosh_mbus, ROT0, "BFM","Doctor Dosh (Bellfruit) (Scorpion 4) (set 14)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ddoshj ,sc4ddosh, sc4_200_4r, sc4ddosh, sc4_state, sc4ddosh_mbus, ROT0, "BFM","Doctor Dosh (Bellfruit) (Scorpion 4) (set 15)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ddoshk ,sc4ddosh, sc4_200_4r, sc4ddosh, sc4_state, sc4ddosh_mbus, ROT0, "BFM","Doctor Dosh (Bellfruit) (Scorpion 4) (set 16)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4dhh ) // this structure is generated
PORT_INCLUDE( sc4_base )
@@ -36277,12 +36277,12 @@ INPUT_PORTS_END
// board positions & steppa feature don't light anything, investigate (might only be a problem in demo mode?)
// PR1736 AWP DOUGH HO HO S4 PR1716 DOUGH HO HO SOUNDS11 DOUGH HO HO S.SITE
-GAMEL( 200?, sc4dhh ,0, sc4, sc4dhh, sc4_state, sc4mbus, ROT0, "BFM","Dough Ho Ho (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4dhha ,sc4dhh, sc4, sc4dhh, sc4_state, sc4mbus, ROT0, "BFM","Dough Ho Ho (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4dhhb ,sc4dhh, sc4, sc4dhh, sc4_state, sc4mbus, ROT0, "BFM","Dough Ho Ho (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4dhhc ,sc4dhh, sc4, sc4dhh, sc4_state, sc4mbus, ROT0, "BFM","Dough Ho Ho (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4dhhd ,sc4dhh, sc4, sc4dhh, sc4_state, sc4mbus, ROT0, "BFM","Dough Ho Ho (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4dhhe ,sc4dhh, sc4, sc4dhh, sc4_state, sc4mbus, ROT0, "BFM","Dough Ho Ho (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dhh ,0, sc4, sc4dhh, sc4_state, sc4mbus, ROT0, "BFM","Dough Ho Ho (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dhha ,sc4dhh, sc4, sc4dhh, sc4_state, sc4mbus, ROT0, "BFM","Dough Ho Ho (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dhhb ,sc4dhh, sc4, sc4dhh, sc4_state, sc4mbus, ROT0, "BFM","Dough Ho Ho (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dhhc ,sc4dhh, sc4, sc4dhh, sc4_state, sc4mbus, ROT0, "BFM","Dough Ho Ho (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dhhd ,sc4dhh, sc4, sc4dhh, sc4_state, sc4mbus, ROT0, "BFM","Dough Ho Ho (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dhhe ,sc4dhh, sc4, sc4dhh, sc4_state, sc4mbus, ROT0, "BFM","Dough Ho Ho (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4dough)
{
@@ -36353,8 +36353,8 @@ INPUT_PORTS_START( sc4dough ) // this structure is generated
INPUT_PORTS_END
// PR1615 AWP DOUGH SELECTA SCORP4 PR1615 DOUGH SELECTA SOUNDS11 DOUGH SELECTA S.SITE
-GAMEL( 200?, sc4dough ,0, sc4_4reel_alt, sc4dough, sc4_state, sc4dough, ROT0, "BFM","Dough Selecta (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4dougha ,sc4dough, sc4_4reel_alt, sc4dough, sc4_state, sc4dough, ROT0, "BFM","Dough Selecta (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dough ,0, sc4_4reel_alt, sc4dough, sc4_state, sc4dough, ROT0, "BFM","Dough Selecta (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dougha ,sc4dough, sc4_4reel_alt, sc4dough, sc4_state, sc4dough, ROT0, "BFM","Dough Selecta (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4emmer)
@@ -36424,10 +36424,10 @@ INPUT_PORTS_START( sc4emmer ) // this structure is generated
INPUT_PORTS_END
// PR2313 EMMERDALE EMMR SOUNDS EMMERDALE
-GAMEL( 200?, sc4emmer ,0, sc4_4reel_alt, sc4emmer, sc4_state, sc4emmer, ROT0, "Mazooma","Emmerdale (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4emmera ,sc4emmer, sc4_4reel_alt, sc4emmer, sc4_state, sc4emmer, ROT0, "Mazooma","Emmerdale (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4emmerb ,sc4emmer, sc4_4reel_alt, sc4emmer, sc4_state, sc4emmer, ROT0, "Mazooma","Emmerdale (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4emmerc ,sc4emmer, sc4_4reel_alt, sc4emmer, sc4_state, sc4emmer, ROT0, "Mazooma","Emmerdale (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4emmer ,0, sc4_4reel_alt, sc4emmer, sc4_state, sc4emmer, ROT0, "Mazooma","Emmerdale (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4emmera ,sc4emmer, sc4_4reel_alt, sc4emmer, sc4_state, sc4emmer, ROT0, "Mazooma","Emmerdale (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4emmerb ,sc4emmer, sc4_4reel_alt, sc4emmer, sc4_state, sc4emmer, ROT0, "Mazooma","Emmerdale (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4emmerc ,sc4emmer, sc4_4reel_alt, sc4emmer, sc4_state, sc4emmer, ROT0, "Mazooma","Emmerdale (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4evol)
{
@@ -36479,14 +36479,14 @@ INPUT_PORTS_START( sc4evol ) // this structure is generated
INPUT_PORTS_END
// PR2135 EVOLUTION EVOL SOUNDS EVOLUTION
-GAMEL( 200?, sc4evol ,0, sc4_4reel_alt, sc4evol, sc4_state, sc4evol, ROT0, "Qps","Evolution (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4evola ,sc4evol, sc4_4reel_alt, sc4evol, sc4_state, sc4evol, ROT0, "Qps","Evolution (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4evolb ,sc4evol, sc4_4reel_alt, sc4evol, sc4_state, sc4evol, ROT0, "Qps","Evolution (Qps) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4evolc ,sc4evol, sc4_4reel_alt, sc4evol, sc4_state, sc4evol, ROT0, "Qps","Evolution (Qps) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4evold ,sc4evol, sc4_4reel_alt, sc4evol, sc4_state, sc4evol, ROT0, "Qps","Evolution (Qps) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4evole ,sc4evol, sc4_4reel_alt, sc4evol, sc4_state, sc4evol, ROT0, "Qps","Evolution (Qps) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4evolf ,sc4evol, sc4_4reel_alt, sc4evol, sc4_state, sc4evol, ROT0, "Qps","Evolution (Qps) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4evolg ,sc4evol, sc4_4reel_alt, sc4evol, sc4_state, sc4evol, ROT0, "Qps","Evolution (Qps) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4evol ,0, sc4_4reel_alt, sc4evol, sc4_state, sc4evol, ROT0, "Qps","Evolution (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4evola ,sc4evol, sc4_4reel_alt, sc4evol, sc4_state, sc4evol, ROT0, "Qps","Evolution (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4evolb ,sc4evol, sc4_4reel_alt, sc4evol, sc4_state, sc4evol, ROT0, "Qps","Evolution (Qps) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4evolc ,sc4evol, sc4_4reel_alt, sc4evol, sc4_state, sc4evol, ROT0, "Qps","Evolution (Qps) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4evold ,sc4evol, sc4_4reel_alt, sc4evol, sc4_state, sc4evol, ROT0, "Qps","Evolution (Qps) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4evole ,sc4evol, sc4_4reel_alt, sc4evol, sc4_state, sc4evol, ROT0, "Qps","Evolution (Qps) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4evolf ,sc4evol, sc4_4reel_alt, sc4evol, sc4_state, sc4evol, ROT0, "Qps","Evolution (Qps) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4evolg ,sc4evol, sc4_4reel_alt, sc4evol, sc4_state, sc4evol, ROT0, "Qps","Evolution (Qps) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4fguy)
{
@@ -36572,12 +36572,12 @@ INPUT_PORTS_START( sc4fguy70 )
INPUT_PORTS_END
// PR3233 AWP FAMILY GUY S4 PR3213 FAMILY GUY SOUNDS11 FAMILY GUY S.SITE
-GAMEL( 200?, sc4fguy ,0, sc4_5reel_alt, sc4fguy35, sc4_state, sc4fguy, ROT0, "BFM","Family Guy (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // FAMY 471
-GAMEL( 200?, sc4fguyb ,sc4fguy, sc4_5reel_alt, sc4fguy35, sc4_state, sc4fguy, ROT0, "BFM","Family Guy (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // FAMY 471
-GAMEL( 200?, sc4fguya ,sc4fguy, sc4_5reel_alt, sc4fguy70, sc4_state, sc4fguy, ROT0, "BFM","Family Guy (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // FAMY 572
-GAMEL( 200?, sc4fguyc ,sc4fguy, sc4_5reel_alt, sc4fguy70, sc4_state, sc4fguy, ROT0, "BFM","Family Guy (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // FAMY 572
-GAMEL( 200?, sc4fguyd ,sc4fguy, sc4_5reel_alt, sc4fguy, sc4_state, sc4fguy, ROT0, "BFM","Family Guy (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fguye ,sc4fguy, sc4_5reel_alt, sc4fguy, sc4_state, sc4fguy, ROT0, "BFM","Family Guy (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fguy ,0, sc4_5reel_alt, sc4fguy35, sc4_state, sc4fguy, ROT0, "BFM","Family Guy (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // FAMY 471
+GAMEL( 200?, sc4fguyb ,sc4fguy, sc4_5reel_alt, sc4fguy35, sc4_state, sc4fguy, ROT0, "BFM","Family Guy (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // FAMY 471
+GAMEL( 200?, sc4fguya ,sc4fguy, sc4_5reel_alt, sc4fguy70, sc4_state, sc4fguy, ROT0, "BFM","Family Guy (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // FAMY 572
+GAMEL( 200?, sc4fguyc ,sc4fguy, sc4_5reel_alt, sc4fguy70, sc4_state, sc4fguy, ROT0, "BFM","Family Guy (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // FAMY 572
+GAMEL( 200?, sc4fguyd ,sc4fguy, sc4_5reel_alt, sc4fguy, sc4_state, sc4fguy, ROT0, "BFM","Family Guy (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fguye ,sc4fguy, sc4_5reel_alt, sc4fguy, sc4_state, sc4fguy, ROT0, "BFM","Family Guy (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4fbspn)
{
@@ -36643,10 +36643,10 @@ INPUT_PORTS_START( sc4fbspn ) // this structure is generated
INPUT_PORTS_END
// PR1721 AWP FAT BOY SPIN SCORP4 PR1701 FAT BOY SPIN SOUNDS11 FAT BOY SPIN S.SITE
-GAMEL( 200?, sc4fbspn ,0, sc4_5reel, sc4fbspn, sc4_state, sc4fbspn, ROT0, "BFM","Fat Boy Spin (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fbspna ,sc4fbspn, sc4_5reel, sc4fbspn, sc4_state, sc4fbspn, ROT0, "BFM","Fat Boy Spin (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fbspnb ,sc4fbspn, sc4_5reel, sc4fbspn, sc4_state, sc4fbspn, ROT0, "BFM","Fat Boy Spin (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fbspnc ,sc4fbspn, sc4_5reel, sc4fbspn, sc4_state, sc4fbspn, ROT0, "BFM","Fat Boy Spin (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fbspn ,0, sc4_5reel, sc4fbspn, sc4_state, sc4fbspn, ROT0, "BFM","Fat Boy Spin (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fbspna ,sc4fbspn, sc4_5reel, sc4fbspn, sc4_state, sc4fbspn, ROT0, "BFM","Fat Boy Spin (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fbspnb ,sc4fbspn, sc4_5reel, sc4fbspn, sc4_state, sc4fbspn, ROT0, "BFM","Fat Boy Spin (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fbspnc ,sc4fbspn, sc4_5reel, sc4fbspn, sc4_state, sc4fbspn, ROT0, "BFM","Fat Boy Spin (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -36716,10 +36716,10 @@ INPUT_PORTS_START( sc4fmj ) // this structure is generated
INPUT_PORTS_END
// PR2328 FULL METAL JACKPOT FULLM SOUNDS F METAL JACKPOT
-GAMEL( 200?, sc4fmj ,0, sc4_4reel_alt, sc4fmj, sc4_state, sc4fmj, ROT0, "QPS / Mazooma","Full Metal Jackpot (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fmja ,sc4fmj, sc4_4reel_alt, sc4fmj, sc4_state, sc4fmj, ROT0, "QPS / Mazooma","Full Metal Jackpot (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fmjb ,sc4fmj, sc4_4reel_alt, sc4fmj, sc4_state, sc4fmj, ROT0, "QPS / Mazooma","Full Metal Jackpot (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fmjc ,sc4fmj, sc4_4reel_alt, sc4fmj, sc4_state, sc4fmj, ROT0, "QPS / Mazooma","Full Metal Jackpot (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fmj ,0, sc4_4reel_alt, sc4fmj, sc4_state, sc4fmj, ROT0, "QPS / Mazooma","Full Metal Jackpot (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fmja ,sc4fmj, sc4_4reel_alt, sc4fmj, sc4_state, sc4fmj, ROT0, "QPS / Mazooma","Full Metal Jackpot (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fmjb ,sc4fmj, sc4_4reel_alt, sc4fmj, sc4_state, sc4fmj, ROT0, "QPS / Mazooma","Full Metal Jackpot (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fmjc ,sc4fmj, sc4_4reel_alt, sc4fmj, sc4_state, sc4fmj, ROT0, "QPS / Mazooma","Full Metal Jackpot (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -36791,14 +36791,14 @@ INPUT_PORTS_START( sc4gd ) // this structure is generated
INPUT_PORTS_END
// PR1016 GOLD DIGGER PR1016 GOLD DIGGER SOUNDS11
-GAMEL( 200?, sc4gd ,0, sc4_200_4r, sc4gd, sc4_state, sc4gd, ROT0, "BFM","Gold Digger (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gda ,sc4gd, sc4_200_4r, sc4gd, sc4_state, sc4gd, ROT0, "BFM","Gold Digger (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gdb ,sc4gd, sc4_200_4r, sc4gd, sc4_state, sc4gd, ROT0, "BFM","Gold Digger (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gdc ,sc4gd, sc4_200_4r, sc4gd, sc4_state, sc4gd, ROT0, "BFM","Gold Digger (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gdd ,sc4gd, sc4_200_4r, sc4gd, sc4_state, sc4gd, ROT0, "BFM","Gold Digger (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gde ,sc4gd, sc4_200_4r, sc4gd, sc4_state, sc4gd, ROT0, "BFM","Gold Digger (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gdf ,sc4gd, sc4_200_4r, sc4gd, sc4_state, sc4gd, ROT0, "BFM","Gold Digger (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gdg ,sc4gd, sc4_200_4r, sc4gd, sc4_state, sc4gd, ROT0, "BFM","Gold Digger (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gd ,0, sc4_200_4r, sc4gd, sc4_state, sc4gd, ROT0, "BFM","Gold Digger (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gda ,sc4gd, sc4_200_4r, sc4gd, sc4_state, sc4gd, ROT0, "BFM","Gold Digger (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gdb ,sc4gd, sc4_200_4r, sc4gd, sc4_state, sc4gd, ROT0, "BFM","Gold Digger (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gdc ,sc4gd, sc4_200_4r, sc4gd, sc4_state, sc4gd, ROT0, "BFM","Gold Digger (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gdd ,sc4gd, sc4_200_4r, sc4gd, sc4_state, sc4gd, ROT0, "BFM","Gold Digger (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gde ,sc4gd, sc4_200_4r, sc4gd, sc4_state, sc4gd, ROT0, "BFM","Gold Digger (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gdf ,sc4gd, sc4_200_4r, sc4gd, sc4_state, sc4gd, ROT0, "BFM","Gold Digger (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gdg ,sc4gd, sc4_200_4r, sc4gd, sc4_state, sc4gd, ROT0, "BFM","Gold Digger (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4gdclb)
{
@@ -36861,18 +36861,18 @@ INPUT_PORTS_START( sc4gdclb ) // this structure is generated
INPUT_PORTS_END
// PR1137 CLUB GOLD DIGGER PR1137 GOLDD CL SOUNDS11
-GAMEL( 200?, sc4gdclb ,0, sc4_200_std, sc4gdclb, sc4_state, sc4gdclb, ROT0, "BFM","Gold Digger Club (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gdclba ,sc4gdclb, sc4_200_std, sc4gdclb, sc4_state, sc4gdclb, ROT0, "BFM","Gold Digger Club (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gdclbb ,sc4gdclb, sc4_200_std, sc4gdclb, sc4_state, sc4gdclb, ROT0, "BFM","Gold Digger Club (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gdclbc ,sc4gdclb, sc4_200_std, sc4gdclb, sc4_state, sc4gdclb, ROT0, "BFM","Gold Digger Club (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gdclbd ,sc4gdclb, sc4_200_std, sc4gdclb, sc4_state, sc4gdclb, ROT0, "BFM","Gold Digger Club (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gdclbe ,sc4gdclb, sc4_200_std, sc4gdclb, sc4_state, sc4gdclb, ROT0, "BFM","Gold Digger Club (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gdclbf ,sc4gdclb, sc4_200_std, sc4gdclb, sc4_state, sc4gdclb, ROT0, "BFM","Gold Digger Club (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gdclbg ,sc4gdclb, sc4_200_std, sc4gdclb, sc4_state, sc4gdclb, ROT0, "BFM","Gold Digger Club (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gdclbh ,sc4gdclb, sc4_200_std, sc4gdclb, sc4_state, sc4gdclb, ROT0, "BFM","Gold Digger Club (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gdclbi ,sc4gdclb, sc4_200_std, sc4gdclb, sc4_state, sc4gdclb, ROT0, "BFM","Gold Digger Club (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gdclbj ,sc4gdclb, sc4_200_std, sc4gdclb, sc4_state, sc4gdclb, ROT0, "BFM","Gold Digger Club (Bellfruit) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gdclbk ,sc4gdclb, sc4_200_std, sc4gdclb, sc4_state, sc4gdclb, ROT0, "BFM","Gold Digger Club (Bellfruit) (Scorpion 4) (set 12)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gdclb ,0, sc4_200_std, sc4gdclb, sc4_state, sc4gdclb, ROT0, "BFM","Gold Digger Club (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gdclba ,sc4gdclb, sc4_200_std, sc4gdclb, sc4_state, sc4gdclb, ROT0, "BFM","Gold Digger Club (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gdclbb ,sc4gdclb, sc4_200_std, sc4gdclb, sc4_state, sc4gdclb, ROT0, "BFM","Gold Digger Club (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gdclbc ,sc4gdclb, sc4_200_std, sc4gdclb, sc4_state, sc4gdclb, ROT0, "BFM","Gold Digger Club (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gdclbd ,sc4gdclb, sc4_200_std, sc4gdclb, sc4_state, sc4gdclb, ROT0, "BFM","Gold Digger Club (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gdclbe ,sc4gdclb, sc4_200_std, sc4gdclb, sc4_state, sc4gdclb, ROT0, "BFM","Gold Digger Club (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gdclbf ,sc4gdclb, sc4_200_std, sc4gdclb, sc4_state, sc4gdclb, ROT0, "BFM","Gold Digger Club (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gdclbg ,sc4gdclb, sc4_200_std, sc4gdclb, sc4_state, sc4gdclb, ROT0, "BFM","Gold Digger Club (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gdclbh ,sc4gdclb, sc4_200_std, sc4gdclb, sc4_state, sc4gdclb, ROT0, "BFM","Gold Digger Club (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gdclbi ,sc4gdclb, sc4_200_std, sc4gdclb, sc4_state, sc4gdclb, ROT0, "BFM","Gold Digger Club (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gdclbj ,sc4gdclb, sc4_200_std, sc4gdclb, sc4_state, sc4gdclb, ROT0, "BFM","Gold Digger Club (Bellfruit) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gdclbk ,sc4gdclb, sc4_200_std, sc4gdclb, sc4_state, sc4gdclb, ROT0, "BFM","Gold Digger Club (Bellfruit) (Scorpion 4) (set 12)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4gball)
@@ -36941,10 +36941,10 @@ INPUT_PORTS_END
// this is a football themed game... completely different to golden balls casino
// PR1604 AWP GOLDEN BALLS PR1604 GOLDEN BALLS SOUNDS12 GOLDEN BALLS S.SITE
-GAMEL( 200?, sc4gball ,0, sc4_4reel_alt, sc4gball, sc4_state, sc4gball, ROT0, "BFM","Golden Balls (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gballa ,sc4gball, sc4_4reel_alt, sc4gball, sc4_state, sc4gball, ROT0, "BFM","Golden Balls (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gballb ,sc4gball, sc4_4reel_alt, sc4gball, sc4_state, sc4gball, ROT0, "BFM","Golden Balls (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gballc ,sc4gball, sc4_4reel_alt, sc4gball, sc4_state, sc4gball, ROT0, "BFM","Golden Balls (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gball ,0, sc4_4reel_alt, sc4gball, sc4_state, sc4gball, ROT0, "BFM","Golden Balls (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gballa ,sc4gball, sc4_4reel_alt, sc4gball, sc4_state, sc4gball, ROT0, "BFM","Golden Balls (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gballb ,sc4gball, sc4_4reel_alt, sc4gball, sc4_state, sc4gball, ROT0, "BFM","Golden Balls (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gballc ,sc4gball, sc4_4reel_alt, sc4gball, sc4_state, sc4gball, ROT0, "BFM","Golden Balls (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4gunp)
@@ -37017,14 +37017,14 @@ INPUT_PORTS_START( sc4gunp ) // this structure is generated
INPUT_PORTS_END
// PR3046 AWP THE GUNPOWDER SLOT S4 PR3016 GUNPOWDER SLOT SOUNDS11 GUNPOWDER SLOT S.SITE
-GAMEL( 200?, sc4gunp ,0, sc4_5reel_alt, sc4gunp, sc4_state, sc4gunp, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gunpa ,sc4gunp, sc4_5reel_alt, sc4gunp, sc4_state, sc4gunp, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gunpb ,sc4gunp, sc4_5reel_alt, sc4gunp, sc4_state, sc4gunp, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gunpc ,sc4gunp, sc4_5reel_alt, sc4gunp, sc4_state, sc4gunp, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gunpd ,sc4gunp, sc4_5reel_alt, sc4gunp, sc4_state, sc4gunp, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gunpe ,sc4gunp, sc4_5reel_alt, sc4gunp, sc4_state, sc4gunp, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gunpf ,sc4gunp, sc4_5reel_alt, sc4gunp, sc4_state, sc4gunp, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gunpg ,sc4gunp, sc4_5reel_alt, sc4gunp, sc4_state, sc4gunp, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gunp ,0, sc4_5reel_alt, sc4gunp, sc4_state, sc4gunp, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gunpa ,sc4gunp, sc4_5reel_alt, sc4gunp, sc4_state, sc4gunp, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gunpb ,sc4gunp, sc4_5reel_alt, sc4gunp, sc4_state, sc4gunp, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gunpc ,sc4gunp, sc4_5reel_alt, sc4gunp, sc4_state, sc4gunp, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gunpd ,sc4gunp, sc4_5reel_alt, sc4gunp, sc4_state, sc4gunp, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gunpe ,sc4gunp, sc4_5reel_alt, sc4gunp, sc4_state, sc4gunp, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gunpf ,sc4gunp, sc4_5reel_alt, sc4gunp, sc4_state, sc4gunp, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gunpg ,sc4gunp, sc4_5reel_alt, sc4gunp, sc4_state, sc4gunp, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4hapnt)
{
@@ -37088,12 +37088,12 @@ INPUT_PORTS_START( sc4hapnt ) // this structure is generated
INPUT_PORTS_END
// PR1306 AWP HAPPY NOTES PR1306 HAPPY NOTES SOUNDS11
-GAMEL( 200?, sc4hapnt ,0, sc4_4reel_alt, sc4hapnt, sc4_state, sc4hapnt, ROT0, "BFM","Happy Notes (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hapnta ,sc4hapnt, sc4_4reel_alt, sc4hapnt, sc4_state, sc4hapnt, ROT0, "BFM","Happy Notes (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hapntb ,sc4hapnt, sc4_4reel_alt, sc4hapnt, sc4_state, sc4hapnt, ROT0, "BFM","Happy Notes (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hapntc ,sc4hapnt, sc4_4reel_alt, sc4hapnt, sc4_state, sc4hapnt, ROT0, "BFM","Happy Notes (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hapntd ,sc4hapnt, sc4_4reel_alt, sc4hapnt, sc4_state, sc4hapnt, ROT0, "BFM","Happy Notes (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hapnte ,sc4hapnt, sc4_4reel_alt, sc4hapnt, sc4_state, sc4hapnt, ROT0, "BFM","Happy Notes (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hapnt ,0, sc4_4reel_alt, sc4hapnt, sc4_state, sc4hapnt, ROT0, "BFM","Happy Notes (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hapnta ,sc4hapnt, sc4_4reel_alt, sc4hapnt, sc4_state, sc4hapnt, ROT0, "BFM","Happy Notes (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hapntb ,sc4hapnt, sc4_4reel_alt, sc4hapnt, sc4_state, sc4hapnt, ROT0, "BFM","Happy Notes (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hapntc ,sc4hapnt, sc4_4reel_alt, sc4hapnt, sc4_state, sc4hapnt, ROT0, "BFM","Happy Notes (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hapntd ,sc4hapnt, sc4_4reel_alt, sc4hapnt, sc4_state, sc4hapnt, ROT0, "BFM","Happy Notes (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hapnte ,sc4hapnt, sc4_4reel_alt, sc4hapnt, sc4_state, sc4hapnt, ROT0, "BFM","Happy Notes (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4hellb ) // this structure is generated
@@ -37156,18 +37156,18 @@ INPUT_PORTS_START( sc4hellb ) // this structure is generated
INPUT_PORTS_END
// PR1419 AWP HELLS BELLS PR1402 HELLS BELLS SOUNDS11
-GAMEL( 200?, sc4hellb ,0, sc4, sc4hellb, sc4_state, sc4, ROT0, "BFM","Hells Bells (PR1419) (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hellbb ,sc4hellb, sc4, sc4hellb, sc4_state, sc4, ROT0, "BFM","Hells Bells (PR1419) (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hellbc ,sc4hellb, sc4, sc4hellb, sc4_state, sc4, ROT0, "BFM","Hells Bells (PR1419) (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hellbd ,sc4hellb, sc4, sc4hellb, sc4_state, sc4, ROT0, "BFM","Hells Bells (PR1419) (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hellbe ,sc4hellb, sc4, sc4hellb, sc4_state, sc4, ROT0, "BFM","Hells Bells (PR1419) (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hellbf ,sc4hellb, sc4, sc4hellb, sc4_state, sc4, ROT0, "BFM","Hells Bells (PR1419) (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hellb ,0, sc4, sc4hellb, sc4_state, sc4, ROT0, "BFM","Hells Bells (PR1419) (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hellbb ,sc4hellb, sc4, sc4hellb, sc4_state, sc4, ROT0, "BFM","Hells Bells (PR1419) (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hellbc ,sc4hellb, sc4, sc4hellb, sc4_state, sc4, ROT0, "BFM","Hells Bells (PR1419) (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hellbd ,sc4hellb, sc4, sc4hellb, sc4_state, sc4, ROT0, "BFM","Hells Bells (PR1419) (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hellbe ,sc4hellb, sc4, sc4hellb, sc4_state, sc4, ROT0, "BFM","Hells Bells (PR1419) (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hellbf ,sc4hellb, sc4, sc4hellb, sc4_state, sc4, ROT0, "BFM","Hells Bells (PR1419) (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PAY UINT ERR 17
// PR1419 AWP HELLS BELLS PR1402 HELLS BELLS SOUNDS11 HELLS BELLS S.SITE
-GAMEL( 200?, sc4hellbg ,sc4hellb, sc4, sc4hellb, sc4_state, sc4mbus, ROT0, "BFM","Hells Bells (PR1419) (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hellbh ,sc4hellb, sc4, sc4hellb, sc4_state, sc4mbus, ROT0, "BFM","Hells Bells (PR1419) (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hellbi ,sc4hellb, sc4, sc4hellb, sc4_state, sc4mbus, ROT0, "BFM","Hells Bells (PR1419) (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hellbj ,sc4hellb, sc4, sc4hellb, sc4_state, sc4mbus, ROT0, "BFM","Hells Bells (PR1419) (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hellbg ,sc4hellb, sc4, sc4hellb, sc4_state, sc4mbus, ROT0, "BFM","Hells Bells (PR1419) (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hellbh ,sc4hellb, sc4, sc4hellb, sc4_state, sc4mbus, ROT0, "BFM","Hells Bells (PR1419) (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hellbi ,sc4hellb, sc4, sc4hellb, sc4_state, sc4mbus, ROT0, "BFM","Hells Bells (PR1419) (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hellbj ,sc4hellb, sc4, sc4hellb, sc4_state, sc4mbus, ROT0, "BFM","Hells Bells (PR1419) (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// seem to be issues with reel 4
DRIVER_INIT_MEMBER(sc4_state,sc4hill)
@@ -37244,8 +37244,8 @@ INPUT_PORTS_START( sc4hill ) // this structure is generated
INPUT_PORTS_END
// PR1643 AWP HILLBILLIONAIRE SCORP4 PR1613 HILLBILLIONAIRE SOUNDS11 HILLBILLIONAIRE S.SITE
-GAMEL( 200?, sc4hill ,0, sc4, sc4hill, sc4_state, sc4hill, ROT0, "BFM","Hill Billionaire (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hilla ,sc4hill, sc4, sc4hill, sc4_state, sc4hill, ROT0, "BFM","Hill Billionaire (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hill ,0, sc4, sc4hill, sc4_state, sc4hill, ROT0, "BFM","Hill Billionaire (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hilla ,sc4hill, sc4, sc4hill, sc4_state, sc4hill, ROT0, "BFM","Hill Billionaire (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -37307,14 +37307,14 @@ INPUT_PORTS_START( sc4hiss ) // this structure is generated
INPUT_PORTS_END
// PR2176 HISSING QUID VIPA SOUNDS HISSING QUID
-GAMEL( 200?, sc4hiss ,0, sc4_200_4r, sc4hiss, sc4_state, sc4hiss, ROT0, "Qps","Hissing Quid (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hissa ,sc4hiss, sc4_200_4r, sc4hiss, sc4_state, sc4hiss, ROT0, "Qps","Hissing Quid (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hissb ,sc4hiss, sc4_200_4r, sc4hiss, sc4_state, sc4hiss, ROT0, "Qps","Hissing Quid (Qps) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hissc ,sc4hiss, sc4_200_4r, sc4hiss, sc4_state, sc4hiss, ROT0, "Qps","Hissing Quid (Qps) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hissd ,sc4hiss, sc4_200_4r, sc4hiss, sc4_state, sc4hiss, ROT0, "Qps","Hissing Quid (Qps) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hisse ,sc4hiss, sc4_200_4r, sc4hiss, sc4_state, sc4hiss, ROT0, "Qps","Hissing Quid (Qps) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hissf ,sc4hiss, sc4_200_4r, sc4hiss, sc4_state, sc4hiss, ROT0, "Qps","Hissing Quid (Qps) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hissg ,sc4hiss, sc4_200_4r, sc4hiss, sc4_state, sc4hiss, ROT0, "Qps","Hissing Quid (Qps) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hiss ,0, sc4_200_4r, sc4hiss, sc4_state, sc4hiss, ROT0, "Qps","Hissing Quid (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hissa ,sc4hiss, sc4_200_4r, sc4hiss, sc4_state, sc4hiss, ROT0, "Qps","Hissing Quid (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hissb ,sc4hiss, sc4_200_4r, sc4hiss, sc4_state, sc4hiss, ROT0, "Qps","Hissing Quid (Qps) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hissc ,sc4hiss, sc4_200_4r, sc4hiss, sc4_state, sc4hiss, ROT0, "Qps","Hissing Quid (Qps) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hissd ,sc4hiss, sc4_200_4r, sc4hiss, sc4_state, sc4hiss, ROT0, "Qps","Hissing Quid (Qps) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hisse ,sc4hiss, sc4_200_4r, sc4hiss, sc4_state, sc4hiss, ROT0, "Qps","Hissing Quid (Qps) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hissf ,sc4hiss, sc4_200_4r, sc4hiss, sc4_state, sc4hiss, ROT0, "Qps","Hissing Quid (Qps) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hissg ,sc4hiss, sc4_200_4r, sc4hiss, sc4_state, sc4hiss, ROT0, "Qps","Hissing Quid (Qps) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -37389,8 +37389,8 @@ INPUT_PORTS_START( sc4hotrd ) // this structure is generated
INPUT_PORTS_END
// PR1733 AWP HOT ROD SCORP4 PR1713 HOT ROD SOUNDS11 HOT ROD S.SITE
-GAMEL( 200?, sc4hotrd ,0, sc4_4reel, sc4hotrd, sc4_state, sc4hotrd, ROT0, "BFM","Hot Rod (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hotrda ,sc4hotrd, sc4_4reel, sc4hotrd, sc4_state, sc4hotrd, ROT0, "BFM","Hot Rod (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hotrd ,0, sc4_4reel, sc4hotrd, sc4_state, sc4hotrd, ROT0, "BFM","Hot Rod (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hotrda ,sc4hotrd, sc4_4reel, sc4hotrd, sc4_state, sc4hotrd, ROT0, "BFM","Hot Rod (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4hotsh)
@@ -37467,8 +37467,8 @@ INPUT_PORTS_START( sc4hotsh ) // this structure is generated
INPUT_PORTS_END
// PR3231 AWP HOT SHOT SCORP4 PR3211 HOT SHOT SOUNDS11 HOT SHOT S.SITE
-GAMEL( 200?, sc4hotsh ,0, sc4, sc4hotsh, sc4_state, sc4hotsh, ROT0, "BFM","Hot Shot (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hotsha ,sc4hotsh, sc4, sc4hotsh, sc4_state, sc4hotsh, ROT0, "BFM","Hot Shot (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hotsh ,0, sc4, sc4hotsh, sc4_state, sc4hotsh, ROT0, "BFM","Hot Shot (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hotsha ,sc4hotsh, sc4, sc4hotsh, sc4_state, sc4hotsh, ROT0, "BFM","Hot Shot (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4hotwd)
@@ -37538,14 +37538,14 @@ INPUT_PORTS_START( sc4hotwd ) // this structure is generated
INPUT_PORTS_END
// PR1311 HOT WAD PR1311 HOT WAD SOUNDS11
-GAMEL( 200?, sc4hotwd ,0, sc4_4reel_alt, sc4hotwd, sc4_state, sc4hotwd, ROT0, "BFM","Hot Wad (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hotwda ,sc4hotwd, sc4_4reel_alt, sc4hotwd, sc4_state, sc4hotwd, ROT0, "BFM","Hot Wad (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hotwd ,0, sc4_4reel_alt, sc4hotwd, sc4_state, sc4hotwd, ROT0, "BFM","Hot Wad (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hotwda ,sc4hotwd, sc4_4reel_alt, sc4hotwd, sc4_state, sc4hotwd, ROT0, "BFM","Hot Wad (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PAY UNIT ERR 17
// PR1311 HOT WAD PR1311 HOT WAD SOUNDS11 2 HOT WAD S.SITE
-GAMEL( 200?, sc4hotwdb ,sc4hotwd, sc4_4reel_alt, sc4hotwd, sc4_state, sc4hotwd, ROT0, "BFM","Hot Wad (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hotwdc ,sc4hotwd, sc4_4reel_alt, sc4hotwd, sc4_state, sc4hotwd, ROT0, "BFM","Hot Wad (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hotwdd ,sc4hotwd, sc4_4reel_alt, sc4hotwd, sc4_state, sc4hotwd, ROT0, "BFM","Hot Wad (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hotwde ,sc4hotwd, sc4_4reel_alt, sc4hotwd, sc4_state, sc4hotwd, ROT0, "BFM","Hot Wad (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hotwdb ,sc4hotwd, sc4_4reel_alt, sc4hotwd, sc4_state, sc4hotwd, ROT0, "BFM","Hot Wad (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hotwdc ,sc4hotwd, sc4_4reel_alt, sc4hotwd, sc4_state, sc4hotwd, ROT0, "BFM","Hot Wad (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hotwdd ,sc4hotwd, sc4_4reel_alt, sc4hotwd, sc4_state, sc4hotwd, ROT0, "BFM","Hot Wad (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hotwde ,sc4hotwd, sc4_4reel_alt, sc4hotwd, sc4_state, sc4hotwd, ROT0, "BFM","Hot Wad (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4celeb)
@@ -37615,11 +37615,11 @@ INPUT_PORTS_START( sc4celeb ) // this structure is generated
INPUT_PORTS_END
// PR1603 AWP IM A CELEBRITY PR1603 IM A CELEB SOUNDS11 IM A CELEBRITY S.SITE
-GAMEL( 200?, sc4celeb ,0, sc4_4reel_alt, sc4celeb, sc4_state, sc4celeb, ROT0, "BFM","I'm A Celebrity (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4celeba ,sc4celeb, sc4_4reel_alt, sc4celeb, sc4_state, sc4celeb, ROT0, "BFM","I'm A Celebrity (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4celebb ,sc4celeb, sc4_4reel_alt, sc4celeb, sc4_state, sc4celeb, ROT0, "BFM","I'm A Celebrity (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4celebc ,sc4celeb, sc4_4reel_alt, sc4celeb, sc4_state, sc4celeb, ROT0, "BFM","I'm A Celebrity (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4celebd ,sc4celeb, sc4_4reel_alt, sc4celeb, sc4_state, sc4celeb, ROT0, "BFM","I'm A Celebrity (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4celeb ,0, sc4_4reel_alt, sc4celeb, sc4_state, sc4celeb, ROT0, "BFM","I'm A Celebrity (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4celeba ,sc4celeb, sc4_4reel_alt, sc4celeb, sc4_state, sc4celeb, ROT0, "BFM","I'm A Celebrity (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4celebb ,sc4celeb, sc4_4reel_alt, sc4celeb, sc4_state, sc4celeb, ROT0, "BFM","I'm A Celebrity (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4celebc ,sc4celeb, sc4_4reel_alt, sc4celeb, sc4_state, sc4celeb, ROT0, "BFM","I'm A Celebrity (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4celebd ,sc4celeb, sc4_4reel_alt, sc4celeb, sc4_state, sc4celeb, ROT0, "BFM","I'm A Celebrity (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4inspn)
@@ -37672,8 +37672,8 @@ INPUT_PORTS_START( sc4inspn ) // this structure is generated
INPUT_PORTS_END
// PR2555 INNER SPIN V013 INNERSPINSND INNER SPIN
-GAMEL( 200?, sc4inspn ,0, sc4_200_5ra, sc4inspn, sc4_state, sc4inspn, ROT0, "Mazooma","Inner Spin (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4inspna ,sc4inspn, sc4_200_5ra, sc4inspn, sc4_state, sc4inspn, ROT0, "Mazooma","Inner Spin (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4inspn ,0, sc4_200_5ra, sc4inspn, sc4_state, sc4inspn, ROT0, "Mazooma","Inner Spin (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4inspna ,sc4inspn, sc4_200_5ra, sc4inspn, sc4_state, sc4inspn, ROT0, "Mazooma","Inner Spin (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -37747,20 +37747,20 @@ INPUT_PORTS_END
// PR2366 AWP THE ITALIAN JOB S4 PR2366 THE ITALIAN JOB SOUNDS11 ITALIAN JOB S.SITE
-GAMEL( 200?, sc4ijob ,0, sc4_5reel_alt, sc4ijob, sc4_state, sc4ijob, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ijoba ,sc4ijob, sc4_5reel_alt, sc4ijob, sc4_state, sc4ijob, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ijobb ,sc4ijob, sc4_5reel_alt, sc4ijob, sc4_state, sc4ijob, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ijobc ,sc4ijob, sc4_5reel_alt, sc4ijob, sc4_state, sc4ijob, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ijobd ,sc4ijob, sc4_5reel_alt, sc4ijob, sc4_state, sc4ijob, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ijobe ,sc4ijob, sc4_5reel_alt, sc4ijob, sc4_state, sc4ijob, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ijobf ,sc4ijob, sc4_5reel_alt, sc4ijob, sc4_state, sc4ijob, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ijobg ,sc4ijob, sc4_5reel_alt, sc4ijob, sc4_state, sc4ijob, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ijobh ,sc4ijob, sc4_5reel_alt, sc4ijob, sc4_state, sc4ijob, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ijobi ,sc4ijob, sc4_5reel_alt, sc4ijob, sc4_state, sc4ijob, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ijobj ,sc4ijob, sc4_5reel_alt, sc4ijob, sc4_state, sc4ijob, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ijobk ,sc4ijob, sc4_5reel_alt, sc4ijob, sc4_state, sc4ijob, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 4) (set 12)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ijobl ,sc4ijob, sc4_5reel_alt, sc4ijob, sc4_state, sc4ijob, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 4) (set 13)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ijobm ,sc4ijob, sc4_5reel_alt, sc4ijob, sc4_state, sc4ijob, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 4) (set 14)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ijob ,0, sc4_5reel_alt, sc4ijob, sc4_state, sc4ijob, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ijoba ,sc4ijob, sc4_5reel_alt, sc4ijob, sc4_state, sc4ijob, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ijobb ,sc4ijob, sc4_5reel_alt, sc4ijob, sc4_state, sc4ijob, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ijobc ,sc4ijob, sc4_5reel_alt, sc4ijob, sc4_state, sc4ijob, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ijobd ,sc4ijob, sc4_5reel_alt, sc4ijob, sc4_state, sc4ijob, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ijobe ,sc4ijob, sc4_5reel_alt, sc4ijob, sc4_state, sc4ijob, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ijobf ,sc4ijob, sc4_5reel_alt, sc4ijob, sc4_state, sc4ijob, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ijobg ,sc4ijob, sc4_5reel_alt, sc4ijob, sc4_state, sc4ijob, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ijobh ,sc4ijob, sc4_5reel_alt, sc4ijob, sc4_state, sc4ijob, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ijobi ,sc4ijob, sc4_5reel_alt, sc4ijob, sc4_state, sc4ijob, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ijobj ,sc4ijob, sc4_5reel_alt, sc4ijob, sc4_state, sc4ijob, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ijobk ,sc4ijob, sc4_5reel_alt, sc4ijob, sc4_state, sc4ijob, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 4) (set 12)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ijobl ,sc4ijob, sc4_5reel_alt, sc4ijob, sc4_state, sc4ijob, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 4) (set 13)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ijobm ,sc4ijob, sc4_5reel_alt, sc4ijob, sc4_state, sc4ijob, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 4) (set 14)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4ldvl)
@@ -37831,10 +37831,10 @@ INPUT_PORTS_START( sc4ldvl ) // this structure is generated
INPUT_PORTS_END
// PR2376 LITTLE DEVIL LDEVIL SOUNDS LITTLE DEVIL
-GAMEL( 200?, sc4ldvl ,0, sc4_4reel_alt, sc4ldvl, sc4_state, sc4ldvl, ROT0, "Mazooma","Little Devil (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ldvla ,sc4ldvl, sc4_4reel_alt, sc4ldvl, sc4_state, sc4ldvl, ROT0, "Mazooma","Little Devil (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ldvlb ,sc4ldvl, sc4_4reel_alt, sc4ldvl, sc4_state, sc4ldvl, ROT0, "Mazooma","Little Devil (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ldvlc ,sc4ldvl, sc4_4reel_alt, sc4ldvl, sc4_state, sc4ldvl, ROT0, "Mazooma","Little Devil (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ldvl ,0, sc4_4reel_alt, sc4ldvl, sc4_state, sc4ldvl, ROT0, "Mazooma","Little Devil (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ldvla ,sc4ldvl, sc4_4reel_alt, sc4ldvl, sc4_state, sc4ldvl, ROT0, "Mazooma","Little Devil (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ldvlb ,sc4ldvl, sc4_4reel_alt, sc4ldvl, sc4_state, sc4ldvl, ROT0, "Mazooma","Little Devil (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ldvlc ,sc4ldvl, sc4_4reel_alt, sc4ldvl, sc4_state, sc4ldvl, ROT0, "Mazooma","Little Devil (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -37903,13 +37903,13 @@ INPUT_PORTS_START( sc4lotrr ) // this structure is generated
INPUT_PORTS_END
// PR1427 AWP RETURN OF THE KING PR1413 RETURN OF THE SOUNDS11 RETURN OF KING S.SITE
-GAMEL( 200?, sc4lotrr ,0, sc4_4reel_alt, sc4lotrr, sc4_state, sc4lotrr, ROT0, "BFM","Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lotrra ,sc4lotrr, sc4_4reel_alt, sc4lotrr, sc4_state, sc4lotrr, ROT0, "BFM","Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lotrrb ,sc4lotrr, sc4_4reel_alt, sc4lotrr, sc4_state, sc4lotrr, ROT0, "BFM","Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lotrrc ,sc4lotrr, sc4_4reel_alt, sc4lotrr, sc4_state, sc4lotrr, ROT0, "BFM","Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lotrr ,0, sc4_4reel_alt, sc4lotrr, sc4_state, sc4lotrr, ROT0, "BFM","Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lotrra ,sc4lotrr, sc4_4reel_alt, sc4lotrr, sc4_state, sc4lotrr, ROT0, "BFM","Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lotrrb ,sc4lotrr, sc4_4reel_alt, sc4lotrr, sc4_state, sc4lotrr, ROT0, "BFM","Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lotrrc ,sc4lotrr, sc4_4reel_alt, sc4lotrr, sc4_state, sc4lotrr, ROT0, "BFM","Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PAY UNIT ERR 17
-GAMEL( 200?, sc4lotrrd ,sc4lotrr, sc4_4reel_alt, sc4lotrr, sc4_state, sc4lotrr, ROT0, "BFM","Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lotrre ,sc4lotrr, sc4_4reel_alt, sc4lotrr, sc4_state, sc4lotrr, ROT0, "BFM","Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lotrrd ,sc4lotrr, sc4_4reel_alt, sc4lotrr, sc4_state, sc4lotrr, ROT0, "BFM","Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lotrre ,sc4lotrr, sc4_4reel_alt, sc4lotrr, sc4_state, sc4lotrr, ROT0, "BFM","Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4manic)
{
@@ -37979,14 +37979,14 @@ INPUT_PORTS_START( sc4manic ) // this structure is generated
INPUT_PORTS_END
// PR3034 AWP MANIC MINER SCORP4 PR3004 MANIC MINER SOUNDS11 MANIC MINER S.SITE
-GAMEL( 200?, sc4manic ,0, sc4_200_5ra, sc4manic, sc4_state, sc4manic, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4manica ,sc4manic, sc4_200_5ra, sc4manic, sc4_state, sc4manic, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4manicb ,sc4manic, sc4_200_5ra, sc4manic, sc4_state, sc4manic, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4manicc ,sc4manic, sc4_200_5ra, sc4manic, sc4_state, sc4manic, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4manicd ,sc4manic, sc4_200_5ra, sc4manic, sc4_state, sc4manic, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4manice ,sc4manic, sc4_200_5ra, sc4manic, sc4_state, sc4manic, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4manicf ,sc4manic, sc4_200_5ra, sc4manic, sc4_state, sc4manic, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4manicg ,sc4manic, sc4_200_5ra, sc4manic, sc4_state, sc4manic, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4manic ,0, sc4_200_5ra, sc4manic, sc4_state, sc4manic, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4manica ,sc4manic, sc4_200_5ra, sc4manic, sc4_state, sc4manic, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4manicb ,sc4manic, sc4_200_5ra, sc4manic, sc4_state, sc4manic, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4manicc ,sc4manic, sc4_200_5ra, sc4manic, sc4_state, sc4manic, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4manicd ,sc4manic, sc4_200_5ra, sc4manic, sc4_state, sc4manic, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4manice ,sc4manic, sc4_200_5ra, sc4manic, sc4_state, sc4manic, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4manicf ,sc4manic, sc4_200_5ra, sc4manic, sc4_state, sc4manic, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4manicg ,sc4manic, sc4_200_5ra, sc4manic, sc4_state, sc4manic, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4mmm)
{
@@ -38057,14 +38057,14 @@ INPUT_PORTS_END
// PR2282 MENTALMONEYMONSTERS MMMO SOUNDS MONEY MONSTERS
-GAMEL( 200?, sc4mmm ,0, sc4_4reel_alt, sc4mmm, sc4_state, sc4mmm, ROT0, "Mazooma","Mental Money Monsters (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mmma ,sc4mmm, sc4_4reel_alt, sc4mmm, sc4_state, sc4mmm, ROT0, "Mazooma","Mental Money Monsters (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mmmb ,sc4mmm, sc4_4reel_alt, sc4mmm, sc4_state, sc4mmm, ROT0, "Mazooma","Mental Money Monsters (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mmmc ,sc4mmm, sc4_4reel_alt, sc4mmm, sc4_state, sc4mmm, ROT0, "Mazooma","Mental Money Monsters (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mmmd ,sc4mmm, sc4_4reel_alt, sc4mmm, sc4_state, sc4mmm, ROT0, "Mazooma","Mental Money Monsters (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mmme ,sc4mmm, sc4_4reel_alt, sc4mmm, sc4_state, sc4mmm, ROT0, "Mazooma","Mental Money Monsters (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mmmf ,sc4mmm, sc4_4reel_alt, sc4mmm, sc4_state, sc4mmm, ROT0, "Mazooma","Mental Money Monsters (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mmmg ,sc4mmm, sc4_4reel_alt, sc4mmm, sc4_state, sc4mmm, ROT0, "Mazooma","Mental Money Monsters (Mazooma) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mmm ,0, sc4_4reel_alt, sc4mmm, sc4_state, sc4mmm, ROT0, "Mazooma","Mental Money Monsters (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mmma ,sc4mmm, sc4_4reel_alt, sc4mmm, sc4_state, sc4mmm, ROT0, "Mazooma","Mental Money Monsters (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mmmb ,sc4mmm, sc4_4reel_alt, sc4mmm, sc4_state, sc4mmm, ROT0, "Mazooma","Mental Money Monsters (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mmmc ,sc4mmm, sc4_4reel_alt, sc4mmm, sc4_state, sc4mmm, ROT0, "Mazooma","Mental Money Monsters (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mmmd ,sc4mmm, sc4_4reel_alt, sc4mmm, sc4_state, sc4mmm, ROT0, "Mazooma","Mental Money Monsters (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mmme ,sc4mmm, sc4_4reel_alt, sc4mmm, sc4_state, sc4mmm, ROT0, "Mazooma","Mental Money Monsters (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mmmf ,sc4mmm, sc4_4reel_alt, sc4mmm, sc4_state, sc4mmm, ROT0, "Mazooma","Mental Money Monsters (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mmmg ,sc4mmm, sc4_4reel_alt, sc4mmm, sc4_state, sc4mmm, ROT0, "Mazooma","Mental Money Monsters (Mazooma) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4mmad)
{
@@ -38127,15 +38127,15 @@ INPUT_PORTS_START( sc4mmad ) // this structure is generated
INPUT_PORTS_END
// PR2533 MONEY MADNESS MONM SOUNDS MONEY MADNESS
-GAMEL( 200?, sc4mmad ,0, sc4_200_5rc, sc4mmad, sc4_state, sc4mmad, ROT0, "Mazooma","Money Madness (PR2533) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mmada ,sc4mmad, sc4_200_5rc, sc4mmad, sc4_state, sc4mmad, ROT0, "Mazooma","Money Madness (PR2533) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mmadb ,sc4mmad, sc4_200_5rc, sc4mmad, sc4_state, sc4mmad, ROT0, "Mazooma","Money Madness (PR2533) (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mmadc ,sc4mmad, sc4_200_5rc, sc4mmad, sc4_state, sc4mmad, ROT0, "Mazooma","Money Madness (PR2533) (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mmad ,0, sc4_200_5rc, sc4mmad, sc4_state, sc4mmad, ROT0, "Mazooma","Money Madness (PR2533) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mmada ,sc4mmad, sc4_200_5rc, sc4mmad, sc4_state, sc4mmad, ROT0, "Mazooma","Money Madness (PR2533) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mmadb ,sc4mmad, sc4_200_5rc, sc4mmad, sc4_state, sc4mmad, ROT0, "Mazooma","Money Madness (PR2533) (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mmadc ,sc4mmad, sc4_200_5rc, sc4mmad, sc4_state, sc4mmad, ROT0, "Mazooma","Money Madness (PR2533) (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR0000 MONEY MADNESS MONM SOUNDS MONEY MADNESS (did Mazooma mess up this release? it has an invalid project code of PR0000, and 3 of the sets are missing their other half)
-GAMEL( 200?, sc4mmadd ,sc4mmad, sc4_200_5rc, sc4mmad, sc4_state, sc4mmad, ROT0, "Mazooma","Money Madness (PR0000) (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mmade ,sc4mmad, sc4_200_5rc, sc4mmad, sc4_state, sc4mmad, ROT0, "Mazooma","Money Madness (PR0000) (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // incomplete pairing
-GAMEL( 200?, sc4mmadf ,sc4mmad, sc4_200_5rc, sc4mmad, sc4_state, sc4mmad, ROT0, "Mazooma","Money Madness (PR0000) (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // incomplete pairing
-GAMEL( 200?, sc4mmadg ,sc4mmad, sc4_200_5rc, sc4mmad, sc4_state, sc4mmad, ROT0, "Mazooma","Money Madness (PR0000) (Mazooma) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // incomplete pairing
+GAMEL( 200?, sc4mmadd ,sc4mmad, sc4_200_5rc, sc4mmad, sc4_state, sc4mmad, ROT0, "Mazooma","Money Madness (PR0000) (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mmade ,sc4mmad, sc4_200_5rc, sc4mmad, sc4_state, sc4mmad, ROT0, "Mazooma","Money Madness (PR0000) (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // incomplete pairing
+GAMEL( 200?, sc4mmadf ,sc4mmad, sc4_200_5rc, sc4mmad, sc4_state, sc4mmad, ROT0, "Mazooma","Money Madness (PR0000) (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // incomplete pairing
+GAMEL( 200?, sc4mmadg ,sc4mmad, sc4_200_5rc, sc4mmad, sc4_state, sc4mmad, ROT0, "Mazooma","Money Madness (PR0000) (Mazooma) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // incomplete pairing
@@ -38209,8 +38209,8 @@ INPUT_PORTS_START( sc4mdm ) // this structure is generated
INPUT_PORTS_END
// PR3333 AWP MONOPOLY DOUBLE MONEY S4 PR3308 MPOLY D MONEY SOUNDS11 DOUBLE MONEY S.SITE
-GAMEL( 200?, sc4mdm ,0, sc4_5reel_alt, sc4mdm, sc4_state, sc4mdm, ROT0, "BFM","Monopoly Double Money (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mdma ,sc4mdm, sc4_5reel_alt, sc4mdm, sc4_state, sc4mdm, ROT0, "BFM","Monopoly Double Money (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mdm ,0, sc4_5reel_alt, sc4mdm, sc4_state, sc4mdm, ROT0, "BFM","Monopoly Double Money (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mdma ,sc4mdm, sc4_5reel_alt, sc4mdm, sc4_state, sc4mdm, ROT0, "BFM","Monopoly Double Money (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4mhn)
{
@@ -38285,8 +38285,8 @@ INPUT_PORTS_START( sc4mhn ) // this structure is generated
INPUT_PORTS_END
// PR2380 MONOPOLY HERE AND NOW MR2R SOUNDS NITH
-GAMEL( 200?, sc4mhn ,0, sc4_200_4r, sc4mhn, sc4_state, sc4mhn, ROT0, "Mazooma","Monopoly Here & Now (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mhna ,sc4mhn, sc4_200_4r, sc4mhn, sc4_state, sc4mhn, ROT0, "Mazooma","Monopoly Here & Now (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mhn ,0, sc4_200_4r, sc4mhn, sc4_state, sc4mhn, ROT0, "Mazooma","Monopoly Here & Now (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mhna ,sc4mhn, sc4_200_4r, sc4mhn, sc4_state, sc4mhn, ROT0, "Mazooma","Monopoly Here & Now (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4mhp)
@@ -38358,22 +38358,22 @@ INPUT_PORTS_START( sc4mhp ) // this structure is generated
INPUT_PORTS_END
// PR2345 AWP MONOPOLY HOT PROPERTY S4 PR2345 HOT PROPERTY SOUNDS11 HOT PROPERTY S.SITE
-GAMEL( 200?, sc4mhp ,0, sc4_5reel_alt, sc4mhp, sc4_state, sc4mhp, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // 471
-GAMEL( 200?, sc4mhpa ,sc4mhp, sc4_5reel_alt, sc4mhp, sc4_state, sc4mhp, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // 472
-GAMEL( 200?, sc4mhpb ,sc4mhp, sc4_5reel_alt, sc4mhp, sc4_state, sc4mhp, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // 271
-GAMEL( 200?, sc4mhpc ,sc4mhp, sc4_5reel_alt, sc4mhp, sc4_state, sc4mhp, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // 471
-GAMEL( 200?, sc4mhpd ,sc4mhp, sc4_5reel_alt, sc4mhp, sc4_state, sc4mhp, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // 472
-GAMEL( 200?, sc4mhpe ,sc4mhp, sc4_5reel_alt, sc4mhp, sc4_state, sc4mhp, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // 271
-GAMEL( 200?, sc4mhpf ,sc4mhp, sc4_5reel_alt, sc4mhp, sc4_state, sc4mhp, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // 475
-GAMEL( 200?, sc4mhpg ,sc4mhp, sc4_5reel_alt, sc4mhp, sc4_state, sc4mhp, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // 571
-GAMEL( 200?, sc4mhph ,sc4mhp, sc4_5reel_alt, sc4mhp, sc4_state, sc4mhp, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // 572
-GAMEL( 200?, sc4mhpi ,sc4mhp, sc4_5reel_alt, sc4mhp, sc4_state, sc4mhp, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // 475
-GAMEL( 200?, sc4mhpj ,sc4mhp, sc4_5reel_alt, sc4mhp, sc4_state, sc4mhp, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // 571
-GAMEL( 200?, sc4mhpk ,sc4mhp, sc4_5reel_alt, sc4mhp, sc4_state, sc4mhp, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 12)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // 572
-GAMEL( 200?, sc4mhpl ,sc4mhp, sc4_5reel_alt, sc4mhp, sc4_state, sc4mhp, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 13)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // 411
-GAMEL( 200?, sc4mhpm ,sc4mhp, sc4_5reel_alt, sc4mhp, sc4_state, sc4mhp, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 14)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // 272
-GAMEL( 200?, sc4mhpn ,sc4mhp, sc4_5reel_alt, sc4mhp, sc4_state, sc4mhp, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 15)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // 272
-GAMEL( 200?, sc4mhpo ,sc4mhp, sc4_5reel_alt, sc4mhp, sc4_state, sc4mhp, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 16)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mhp ,0, sc4_5reel_alt, sc4mhp, sc4_state, sc4mhp, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // 471
+GAMEL( 200?, sc4mhpa ,sc4mhp, sc4_5reel_alt, sc4mhp, sc4_state, sc4mhp, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // 472
+GAMEL( 200?, sc4mhpb ,sc4mhp, sc4_5reel_alt, sc4mhp, sc4_state, sc4mhp, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // 271
+GAMEL( 200?, sc4mhpc ,sc4mhp, sc4_5reel_alt, sc4mhp, sc4_state, sc4mhp, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // 471
+GAMEL( 200?, sc4mhpd ,sc4mhp, sc4_5reel_alt, sc4mhp, sc4_state, sc4mhp, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // 472
+GAMEL( 200?, sc4mhpe ,sc4mhp, sc4_5reel_alt, sc4mhp, sc4_state, sc4mhp, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // 271
+GAMEL( 200?, sc4mhpf ,sc4mhp, sc4_5reel_alt, sc4mhp, sc4_state, sc4mhp, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // 475
+GAMEL( 200?, sc4mhpg ,sc4mhp, sc4_5reel_alt, sc4mhp, sc4_state, sc4mhp, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // 571
+GAMEL( 200?, sc4mhph ,sc4mhp, sc4_5reel_alt, sc4mhp, sc4_state, sc4mhp, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // 572
+GAMEL( 200?, sc4mhpi ,sc4mhp, sc4_5reel_alt, sc4mhp, sc4_state, sc4mhp, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // 475
+GAMEL( 200?, sc4mhpj ,sc4mhp, sc4_5reel_alt, sc4mhp, sc4_state, sc4mhp, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // 571
+GAMEL( 200?, sc4mhpk ,sc4mhp, sc4_5reel_alt, sc4mhp, sc4_state, sc4mhp, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 12)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // 572
+GAMEL( 200?, sc4mhpl ,sc4mhp, sc4_5reel_alt, sc4mhp, sc4_state, sc4mhp, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 13)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // 411
+GAMEL( 200?, sc4mhpm ,sc4mhp, sc4_5reel_alt, sc4mhp, sc4_state, sc4mhp, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 14)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // 272
+GAMEL( 200?, sc4mhpn ,sc4mhp, sc4_5reel_alt, sc4mhp, sc4_state, sc4mhp, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 15)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // 272
+GAMEL( 200?, sc4mhpo ,sc4mhp, sc4_5reel_alt, sc4mhp, sc4_state, sc4mhp, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 4) (set 16)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4mmb)
{
@@ -38440,8 +38440,8 @@ INPUT_PORTS_START( sc4mmb ) // this structure is generated
INPUT_PORTS_END
// PR1931 AWP MONOLOLY MONEY BAGS SCORP4 PR1911 MPOLY MONEYBAGS SOUNDS11 MONEYBAGS S.SITE
-GAMEL( 200?, sc4mmb ,0, sc4_4reel_alt, sc4mmb, sc4_state, sc4mmb, ROT0, "BFM","Monopoly Money Bags (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mmba ,sc4mmb, sc4_4reel_alt, sc4mmb, sc4_state, sc4mmb, ROT0, "BFM","Monopoly Money Bags (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mmb ,0, sc4_4reel_alt, sc4mmb, sc4_state, sc4mmb, ROT0, "BFM","Monopoly Money Bags (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mmba ,sc4mmb, sc4_4reel_alt, sc4mmb, sc4_state, sc4mmb, ROT0, "BFM","Monopoly Money Bags (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4mrh)
{
@@ -38506,12 +38506,12 @@ INPUT_PORTS_START( sc4mrh ) // this structure is generated
INPUT_PORTS_END
// PR2363 RED HOT MONOP MONOPOLY ARCADE MONO SOUNDS MONOPOLY
-GAMEL( 200?, sc4mrh ,0, sc4_3reel_200_48, sc4mrh, sc4_state, sc4mrh, ROT0, "Mazooma","Monopoly Red Hot (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mrha ,sc4mrh, sc4_3reel_200_48, sc4mrh, sc4_state, sc4mrh, ROT0, "Mazooma","Monopoly Red Hot (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mrhb ,sc4mrh, sc4_3reel_200_48, sc4mrh, sc4_state, sc4mrh, ROT0, "Mazooma","Monopoly Red Hot (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mrhc ,sc4mrh, sc4_3reel_200_48, sc4mrh, sc4_state, sc4mrh, ROT0, "Mazooma","Monopoly Red Hot (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mrhd ,sc4mrh, sc4_3reel_200_48, sc4mrh, sc4_state, sc4mrh, ROT0, "Mazooma","Monopoly Red Hot (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mrhe ,sc4mrh, sc4_3reel_200_48, sc4mrh, sc4_state, sc4mrh, ROT0, "Mazooma","Monopoly Red Hot (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mrh ,0, sc4_3reel_200_48, sc4mrh, sc4_state, sc4mrh, ROT0, "Mazooma","Monopoly Red Hot (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mrha ,sc4mrh, sc4_3reel_200_48, sc4mrh, sc4_state, sc4mrh, ROT0, "Mazooma","Monopoly Red Hot (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mrhb ,sc4mrh, sc4_3reel_200_48, sc4mrh, sc4_state, sc4mrh, ROT0, "Mazooma","Monopoly Red Hot (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mrhc ,sc4mrh, sc4_3reel_200_48, sc4mrh, sc4_state, sc4mrh, ROT0, "Mazooma","Monopoly Red Hot (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mrhd ,sc4mrh, sc4_3reel_200_48, sc4mrh, sc4_state, sc4mrh, ROT0, "Mazooma","Monopoly Red Hot (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mrhe ,sc4mrh, sc4_3reel_200_48, sc4mrh, sc4_state, sc4mrh, ROT0, "Mazooma","Monopoly Red Hot (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4mr2r)
@@ -38582,12 +38582,12 @@ INPUT_PORTS_START( sc4mr2r ) // this structure is generated
INPUT_PORTS_END
// PR2329 MONOPOLY ROAD TO RICHES MR2R SOUNDS ROAD TO RICHES
-GAMEL( 200?, sc4mr2r ,0, sc4_4reel_alt, sc4mr2r, sc4_state, sc4mr2r, ROT0, "Mazooma","Monopoly Road To Riches (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mr2ra ,sc4mr2r, sc4_4reel_alt, sc4mr2r, sc4_state, sc4mr2r, ROT0, "Mazooma","Monopoly Road To Riches (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mr2rb ,sc4mr2r, sc4_4reel_alt, sc4mr2r, sc4_state, sc4mr2r, ROT0, "Mazooma","Monopoly Road To Riches (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mr2rc ,sc4mr2r, sc4_4reel_alt, sc4mr2r, sc4_state, sc4mr2r, ROT0, "Mazooma","Monopoly Road To Riches (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mr2rd ,sc4mr2r, sc4_4reel_alt, sc4mr2r, sc4_state, sc4mr2r, ROT0, "Mazooma","Monopoly Road To Riches (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mr2re ,sc4mr2r, sc4_4reel_alt, sc4mr2r, sc4_state, sc4mr2r, ROT0, "Mazooma","Monopoly Road To Riches (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mr2r ,0, sc4_4reel_alt, sc4mr2r, sc4_state, sc4mr2r, ROT0, "Mazooma","Monopoly Road To Riches (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mr2ra ,sc4mr2r, sc4_4reel_alt, sc4mr2r, sc4_state, sc4mr2r, ROT0, "Mazooma","Monopoly Road To Riches (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mr2rb ,sc4mr2r, sc4_4reel_alt, sc4mr2r, sc4_state, sc4mr2r, ROT0, "Mazooma","Monopoly Road To Riches (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mr2rc ,sc4mr2r, sc4_4reel_alt, sc4mr2r, sc4_state, sc4mr2r, ROT0, "Mazooma","Monopoly Road To Riches (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mr2rd ,sc4mr2r, sc4_4reel_alt, sc4mr2r, sc4_state, sc4mr2r, ROT0, "Mazooma","Monopoly Road To Riches (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mr2re ,sc4mr2r, sc4_4reel_alt, sc4mr2r, sc4_state, sc4mr2r, ROT0, "Mazooma","Monopoly Road To Riches (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4nmare)
@@ -38661,10 +38661,10 @@ INPUT_PORTS_START( sc4nmare ) // this structure is generated
INPUT_PORTS_END
// PR3032 AWP NIGHTMARE ON ELM STREET S4 PR3002 ELM STREET SOUNDS11 NIGHTMARE ELM ST S.SITE
-GAMEL( 200?, sc4nmare ,0, sc4_5reel, sc4nmare, sc4_state, sc4nmare, ROT0, "BFM","A Nightmare On Elm Street (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4nmarea ,sc4nmare, sc4_5reel, sc4nmare, sc4_state, sc4nmare, ROT0, "BFM","A Nightmare On Elm Street (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4nmareb ,sc4nmare, sc4_5reel, sc4nmare, sc4_state, sc4nmare, ROT0, "BFM","A Nightmare On Elm Street (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4nmarec ,sc4nmare, sc4_5reel, sc4nmare, sc4_state, sc4nmare, ROT0, "BFM","A Nightmare On Elm Street (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4nmare ,0, sc4_5reel, sc4nmare, sc4_state, sc4nmare, ROT0, "BFM","A Nightmare On Elm Street (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4nmarea ,sc4nmare, sc4_5reel, sc4nmare, sc4_state, sc4nmare, ROT0, "BFM","A Nightmare On Elm Street (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4nmareb ,sc4nmare, sc4_5reel, sc4nmare, sc4_state, sc4nmare, ROT0, "BFM","A Nightmare On Elm Street (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4nmarec ,sc4nmare, sc4_5reel, sc4nmare, sc4_state, sc4nmare, ROT0, "BFM","A Nightmare On Elm Street (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4potp)
@@ -38735,8 +38735,8 @@ INPUT_PORTS_START( sc4potp ) // this structure is generated
INPUT_PORTS_END
// PR1612 PICK OF THE PACK PR1612 PICK OF THE PACK SOUNDS11 PICK OF THE PACK S.SITE
-GAMEL( 200?, sc4potp ,0, sc4_4reel_alt, sc4potp, sc4_state, sc4potp, ROT0, "BFM","Pick Of The Pack (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4potpa ,sc4potp, sc4_4reel_alt, sc4potp, sc4_state, sc4potp, ROT0, "BFM","Pick Of The Pack (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4potp ,0, sc4_4reel_alt, sc4potp, sc4_state, sc4potp, ROT0, "BFM","Pick Of The Pack (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4potpa ,sc4potp, sc4_4reel_alt, sc4potp, sc4_state, sc4potp, ROT0, "BFM","Pick Of The Pack (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4ppcr ) // this structure is generated
@@ -38795,18 +38795,18 @@ INPUT_PORTS_START( sc4ppcr ) // this structure is generated
INPUT_PORTS_END
// PR2279 PINK PANTHER CLOUSEAUS REVENGE REVENGE QPS REVENGE SOUNDS
-GAMEL( 200?, sc4ppcr ,0, sc4, sc4ppcr, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Clouseau's Revenge (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ppcra ,sc4ppcr, sc4, sc4ppcr, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Clouseau's Revenge (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ppcrb ,sc4ppcr, sc4, sc4ppcr, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Clouseau's Revenge (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ppcrd ,sc4ppcr, sc4, sc4ppcr, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Clouseau's Revenge (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ppcre ,sc4ppcr, sc4, sc4ppcr, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Clouseau's Revenge (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ppcrf ,sc4ppcr, sc4, sc4ppcr, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Clouseau's Revenge (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ppcrg ,sc4ppcr, sc4, sc4ppcr, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Clouseau's Revenge (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ppcrh ,sc4ppcr, sc4, sc4ppcr, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Clouseau's Revenge (Mazooma) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ppcri ,sc4ppcr, sc4, sc4ppcr, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Clouseau's Revenge (Mazooma) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ppcrj ,sc4ppcr, sc4, sc4ppcr, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Clouseau's Revenge (Mazooma) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppcr ,0, sc4, sc4ppcr, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Clouseau's Revenge (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppcra ,sc4ppcr, sc4, sc4ppcr, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Clouseau's Revenge (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppcrb ,sc4ppcr, sc4, sc4ppcr, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Clouseau's Revenge (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppcrd ,sc4ppcr, sc4, sc4ppcr, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Clouseau's Revenge (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppcre ,sc4ppcr, sc4, sc4ppcr, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Clouseau's Revenge (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppcrf ,sc4ppcr, sc4, sc4ppcr, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Clouseau's Revenge (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppcrg ,sc4ppcr, sc4, sc4ppcr, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Clouseau's Revenge (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppcrh ,sc4ppcr, sc4, sc4ppcr, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Clouseau's Revenge (Mazooma) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppcri ,sc4ppcr, sc4, sc4ppcr, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Clouseau's Revenge (Mazooma) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppcrj ,sc4ppcr, sc4, sc4ppcr, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Clouseau's Revenge (Mazooma) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2279 CLOUSEAU TOP BOX COROST_TRIPLE SOUNDS REVENGE TIME
-GAMEL( 200?, sc4ppcrtb ,sc4ppcr, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Clouseau's Revenge Top Box (Mazooma) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppcrtb ,sc4ppcr, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Clouseau's Revenge Top Box (Mazooma) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4ppctc)
@@ -38885,14 +38885,14 @@ INPUT_PORTS_START( sc4ppctc ) // this structure is generated
INPUT_PORTS_END
// PR2407 AWP PINK PANTHER CRACK THE CODE SCORP4 PR2407 CRACK THE CODE SOUNDS11 CRACK THE CODE S.SITE
-GAMEL( 200?, sc4ppctc ,0, sc4, sc4ppctc, sc4_state, sc4ppctc, ROT0, "BFM","Pink Panther Crack The Code (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ppctca ,sc4ppctc, sc4, sc4ppctc, sc4_state, sc4ppctc, ROT0, "BFM","Pink Panther Crack The Code (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ppctcb ,sc4ppctc, sc4, sc4ppctc, sc4_state, sc4ppctc, ROT0, "BFM","Pink Panther Crack The Code (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ppctcc ,sc4ppctc, sc4, sc4ppctc, sc4_state, sc4ppctc, ROT0, "BFM","Pink Panther Crack The Code (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ppctcd ,sc4ppctc, sc4, sc4ppctc, sc4_state, sc4ppctc, ROT0, "BFM","Pink Panther Crack The Code (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ppctce ,sc4ppctc, sc4, sc4ppctc, sc4_state, sc4ppctc, ROT0, "BFM","Pink Panther Crack The Code (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ppctcf ,sc4ppctc, sc4, sc4ppctc, sc4_state, sc4ppctc, ROT0, "BFM","Pink Panther Crack The Code (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ppctcg ,sc4ppctc, sc4, sc4ppctc, sc4_state, sc4ppctc, ROT0, "BFM","Pink Panther Crack The Code (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppctc ,0, sc4, sc4ppctc, sc4_state, sc4ppctc, ROT0, "BFM","Pink Panther Crack The Code (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppctca ,sc4ppctc, sc4, sc4ppctc, sc4_state, sc4ppctc, ROT0, "BFM","Pink Panther Crack The Code (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppctcb ,sc4ppctc, sc4, sc4ppctc, sc4_state, sc4ppctc, ROT0, "BFM","Pink Panther Crack The Code (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppctcc ,sc4ppctc, sc4, sc4ppctc, sc4_state, sc4ppctc, ROT0, "BFM","Pink Panther Crack The Code (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppctcd ,sc4ppctc, sc4, sc4ppctc, sc4_state, sc4ppctc, ROT0, "BFM","Pink Panther Crack The Code (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppctce ,sc4ppctc, sc4, sc4ppctc, sc4_state, sc4ppctc, ROT0, "BFM","Pink Panther Crack The Code (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppctcf ,sc4ppctc, sc4, sc4ppctc, sc4_state, sc4ppctc, ROT0, "BFM","Pink Panther Crack The Code (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppctcg ,sc4ppctc, sc4, sc4ppctc, sc4_state, sc4ppctc, ROT0, "BFM","Pink Panther Crack The Code (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4ppdym ) // this structure is generated
@@ -38952,17 +38952,17 @@ INPUT_PORTS_START( sc4ppdym ) // this structure is generated
INPUT_PORTS_END
// PR2330 PINK PANTHER DYM PINK PANTHER DYM QPS DYMT SOUNDS PINK PANTHER DYM -
-GAMEL( 200?, sc4ppdym ,0, sc4, sc4ppdym, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Double Your Money (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ppdymb ,sc4ppdym, sc4, sc4ppdym, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Double Your Money (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ppdymc ,sc4ppdym, sc4, sc4ppdym, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Double Your Money (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ppdymd ,sc4ppdym, sc4, sc4ppdym, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Double Your Money (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ppdymf ,sc4ppdym, sc4, sc4ppdym, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Double Your Money (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ppdymg ,sc4ppdym, sc4, sc4ppdym, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Double Your Money (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ppdymh ,sc4ppdym, sc4, sc4ppdym, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Double Your Money (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ppdymi ,sc4ppdym, sc4, sc4ppdym, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Double Your Money (Mazooma) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppdym ,0, sc4, sc4ppdym, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Double Your Money (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppdymb ,sc4ppdym, sc4, sc4ppdym, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Double Your Money (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppdymc ,sc4ppdym, sc4, sc4ppdym, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Double Your Money (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppdymd ,sc4ppdym, sc4, sc4ppdym, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Double Your Money (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppdymf ,sc4ppdym, sc4, sc4ppdym, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Double Your Money (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppdymg ,sc4ppdym, sc4, sc4ppdym, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Double Your Money (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppdymh ,sc4ppdym, sc4, sc4ppdym, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Double Your Money (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppdymi ,sc4ppdym, sc4, sc4ppdym, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Double Your Money (Mazooma) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2333 PINK PANTHER TOP BOX DYMT SOUNDS ALL YOUR BASE
-GAMEL( 200?, sc4ppdymtb ,sc4ppdym, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Double Your Money Top Box (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ppdymtba ,sc4ppdym, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Double Your Money Top Box (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppdymtb ,sc4ppdym, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Double Your Money Top Box (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppdymtba ,sc4ppdym, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Double Your Money Top Box (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4pony)
{
@@ -39031,12 +39031,12 @@ INPUT_PORTS_START( sc4pony ) // this structure is generated
INPUT_PORTS_END
// PR1408 PONY EXPRESS PR1408 PONY EXPRESS SOUNDS11 PONY EXPRESS S.SITE
-GAMEL( 200?, sc4pony ,0, sc4_200_5r, sc4pony, sc4_state, sc4pony, ROT0, "BFM","Pony Express (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ponya ,sc4pony, sc4_200_5r, sc4pony, sc4_state, sc4pony, ROT0, "BFM","Pony Express (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ponyb ,sc4pony, sc4_200_5r, sc4pony, sc4_state, sc4pony, ROT0, "BFM","Pony Express (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ponyc ,sc4pony, sc4_200_5r, sc4pony, sc4_state, sc4pony, ROT0, "BFM","Pony Express (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ponyd ,sc4pony, sc4_200_5r, sc4pony, sc4_state, sc4pony, ROT0, "BFM","Pony Express (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ponye ,sc4pony, sc4_200_5r, sc4pony, sc4_state, sc4pony, ROT0, "BFM","Pony Express (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // incomplete pairing
+GAMEL( 200?, sc4pony ,0, sc4_200_5r, sc4pony, sc4_state, sc4pony, ROT0, "BFM","Pony Express (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ponya ,sc4pony, sc4_200_5r, sc4pony, sc4_state, sc4pony, ROT0, "BFM","Pony Express (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ponyb ,sc4pony, sc4_200_5r, sc4pony, sc4_state, sc4pony, ROT0, "BFM","Pony Express (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ponyc ,sc4pony, sc4_200_5r, sc4pony, sc4_state, sc4pony, ROT0, "BFM","Pony Express (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ponyd ,sc4pony, sc4_200_5r, sc4pony, sc4_state, sc4pony, ROT0, "BFM","Pony Express (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ponye ,sc4pony, sc4_200_5r, sc4pony, sc4_state, sc4pony, ROT0, "BFM","Pony Express (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // incomplete pairing
DRIVER_INIT_MEMBER(sc4_state,sc4popey)
@@ -39108,12 +39108,12 @@ INPUT_PORTS_START( sc4popey ) // this structure is generated
INPUT_PORTS_END
// PR2417 AWP POPEYE S4 PR2417 POPEYE SOUNDS11 POPEYE S.SITE
-GAMEL( 200?, sc4popey ,0, sc4_5reel_alt, sc4popey, sc4_state, sc4popey, ROT0, "Mazooma","Popeye (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4popeya ,sc4popey, sc4_5reel_alt, sc4popey, sc4_state, sc4popey, ROT0, "Mazooma","Popeye (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4popeyb ,sc4popey, sc4_5reel_alt, sc4popey, sc4_state, sc4popey, ROT0, "Mazooma","Popeye (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4popeyc ,sc4popey, sc4_5reel_alt, sc4popey, sc4_state, sc4popey, ROT0, "Mazooma","Popeye (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4popeyd ,sc4popey, sc4_5reel_alt, sc4popey, sc4_state, sc4popey, ROT0, "Mazooma","Popeye (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4popeye ,sc4popey, sc4_5reel_alt, sc4popey, sc4_state, sc4popey, ROT0, "Mazooma","Popeye (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4popey ,0, sc4_5reel_alt, sc4popey, sc4_state, sc4popey, ROT0, "Mazooma","Popeye (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4popeya ,sc4popey, sc4_5reel_alt, sc4popey, sc4_state, sc4popey, ROT0, "Mazooma","Popeye (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4popeyb ,sc4popey, sc4_5reel_alt, sc4popey, sc4_state, sc4popey, ROT0, "Mazooma","Popeye (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4popeyc ,sc4popey, sc4_5reel_alt, sc4popey, sc4_state, sc4popey, ROT0, "Mazooma","Popeye (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4popeyd ,sc4popey, sc4_5reel_alt, sc4popey, sc4_state, sc4popey, ROT0, "Mazooma","Popeye (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4popeye ,sc4popey, sc4_5reel_alt, sc4popey, sc4_state, sc4popey, ROT0, "Mazooma","Popeye (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4pwrbl)
@@ -39195,8 +39195,8 @@ INPUT_PORTS_END
// sequel to gamball, mechanical?
// PR1614 AWP POWERBALL POWERBALL S.SITE PR1614 POWERBALL SOUNDS11
-GAMEL( 200?, sc4pwrbl ,0, sc4_4reel, sc4pwrbl, sc4_state, sc4pwrbl, ROT0, "BFM","Powerball (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pwrbla ,sc4pwrbl, sc4_4reel, sc4pwrbl, sc4_state, sc4pwrbl, ROT0, "BFM","Powerball (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pwrbl ,0, sc4_4reel, sc4pwrbl, sc4_state, sc4pwrbl, ROT0, "BFM","Powerball (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pwrbla ,sc4pwrbl, sc4_4reel, sc4pwrbl, sc4_state, sc4pwrbl, ROT0, "BFM","Powerball (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4quidv)
{
@@ -39264,10 +39264,10 @@ INPUT_PORTS_START( sc4quidv ) // this structure is generated
INPUT_PORTS_END
// PR2342 QUID VICIOUS QUIDV SOUNDS QUID VICIOUS
-GAMEL( 200?, sc4quidv ,0, sc4_4reel_alt, sc4quidv, sc4_state, sc4quidv, ROT0, "Mazooma","Quid Vicious (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4quidva ,sc4quidv, sc4_4reel_alt, sc4quidv, sc4_state, sc4quidv, ROT0, "Mazooma","Quid Vicious (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4quidvb ,sc4quidv, sc4_4reel_alt, sc4quidv, sc4_state, sc4quidv, ROT0, "Mazooma","Quid Vicious (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4quidvc ,sc4quidv, sc4_4reel_alt, sc4quidv, sc4_state, sc4quidv, ROT0, "Mazooma","Quid Vicious (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4quidv ,0, sc4_4reel_alt, sc4quidv, sc4_state, sc4quidv, ROT0, "Mazooma","Quid Vicious (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4quidva ,sc4quidv, sc4_4reel_alt, sc4quidv, sc4_state, sc4quidv, ROT0, "Mazooma","Quid Vicious (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4quidvb ,sc4quidv, sc4_4reel_alt, sc4quidv, sc4_state, sc4quidv, ROT0, "Mazooma","Quid Vicious (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4quidvc ,sc4quidv, sc4_4reel_alt, sc4quidv, sc4_state, sc4quidv, ROT0, "Mazooma","Quid Vicious (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4rhxcs)
{
@@ -39332,12 +39332,12 @@ INPUT_PORTS_START( sc4rhxcs ) // this structure is generated
INPUT_PORTS_END
// PR2364 CASINO RED HOT X RED HOT X CRHX SOUNDS RED HOT X
-GAMEL( 200?, sc4rhxcs ,0, sc4_3reel_200_48, sc4rhxcs, sc4_state, sc4rhxcs, ROT0, "Mazooma","Red Hot X Casino (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rhxcsa ,sc4rhxcs, sc4_3reel_200_48, sc4rhxcs, sc4_state, sc4rhxcs, ROT0, "Mazooma","Red Hot X Casino (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rhxcsb ,sc4rhxcs, sc4_3reel_200_48, sc4rhxcs, sc4_state, sc4rhxcs, ROT0, "Mazooma","Red Hot X Casino (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rhxcsc ,sc4rhxcs, sc4_3reel_200_48, sc4rhxcs, sc4_state, sc4rhxcs, ROT0, "Mazooma","Red Hot X Casino (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rhxcsd ,sc4rhxcs, sc4_3reel_200_48, sc4rhxcs, sc4_state, sc4rhxcs, ROT0, "Mazooma","Red Hot X Casino (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rhxcse ,sc4rhxcs, sc4_3reel_200_48, sc4rhxcs, sc4_state, sc4rhxcs, ROT0, "Mazooma","Red Hot X Casino (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rhxcs ,0, sc4_3reel_200_48, sc4rhxcs, sc4_state, sc4rhxcs, ROT0, "Mazooma","Red Hot X Casino (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rhxcsa ,sc4rhxcs, sc4_3reel_200_48, sc4rhxcs, sc4_state, sc4rhxcs, ROT0, "Mazooma","Red Hot X Casino (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rhxcsb ,sc4rhxcs, sc4_3reel_200_48, sc4rhxcs, sc4_state, sc4rhxcs, ROT0, "Mazooma","Red Hot X Casino (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rhxcsc ,sc4rhxcs, sc4_3reel_200_48, sc4rhxcs, sc4_state, sc4rhxcs, ROT0, "Mazooma","Red Hot X Casino (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rhxcsd ,sc4rhxcs, sc4_3reel_200_48, sc4rhxcs, sc4_state, sc4rhxcs, ROT0, "Mazooma","Red Hot X Casino (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rhxcse ,sc4rhxcs, sc4_3reel_200_48, sc4rhxcs, sc4_state, sc4rhxcs, ROT0, "Mazooma","Red Hot X Casino (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -39398,10 +39398,10 @@ INPUT_PORTS_END
// PR2557 RED SQUARE REDS SOUNDS RED SQUARE
-GAMEL( 200?, sc4redsq ,0, sc4_4reel, sc4redsq, sc4_state, sc4redsq, ROT0, "Mazooma","Red Square (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4redsqa ,sc4redsq, sc4_4reel, sc4redsq, sc4_state, sc4redsq, ROT0, "Mazooma","Red Square (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4redsqb ,sc4redsq, sc4_4reel, sc4redsq, sc4_state, sc4redsq, ROT0, "Mazooma","Red Square (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4redsqc ,sc4redsq, sc4_4reel, sc4redsq, sc4_state, sc4redsq, ROT0, "Mazooma","Red Square (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4redsq ,0, sc4_4reel, sc4redsq, sc4_state, sc4redsq, ROT0, "Mazooma","Red Square (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4redsqa ,sc4redsq, sc4_4reel, sc4redsq, sc4_state, sc4redsq, ROT0, "Mazooma","Red Square (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4redsqb ,sc4redsq, sc4_4reel, sc4redsq, sc4_state, sc4redsq, ROT0, "Mazooma","Red Square (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4redsqc ,sc4redsq, sc4_4reel, sc4redsq, sc4_state, sc4redsq, ROT0, "Mazooma","Red Square (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -39468,14 +39468,14 @@ INPUT_PORTS_START( sc4rosts ) // this structure is generated
INPUT_PORTS_END
// PR3256 CLUB RONNIE O SULLIVANS TOURNAMENT SCORP4 RONNIE OSULLIVAN CLUB PR3256 RONNIE O SOUNDS11 RONNIE SULLIVAN
-GAMEL( 200?, sc4rosts ,0, sc4_5reel, sc4rosts, sc4_state, sc4rosts, ROT0, "BFM","Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rostsa ,sc4rosts, sc4_5reel, sc4rosts, sc4_state, sc4rosts, ROT0, "BFM","Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rostsb ,sc4rosts, sc4_5reel, sc4rosts, sc4_state, sc4rosts, ROT0, "BFM","Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rostsc ,sc4rosts, sc4_5reel, sc4rosts, sc4_state, sc4rosts, ROT0, "BFM","Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rostsd ,sc4rosts, sc4_5reel, sc4rosts, sc4_state, sc4rosts, ROT0, "BFM","Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rostse ,sc4rosts, sc4_5reel, sc4rosts, sc4_state, sc4rosts, ROT0, "BFM","Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rostsf ,sc4rosts, sc4_5reel, sc4rosts, sc4_state, sc4rosts, ROT0, "BFM","Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rostsg ,sc4rosts, sc4_5reel, sc4rosts, sc4_state, sc4rosts, ROT0, "BFM","Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rosts ,0, sc4_5reel, sc4rosts, sc4_state, sc4rosts, ROT0, "BFM","Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rostsa ,sc4rosts, sc4_5reel, sc4rosts, sc4_state, sc4rosts, ROT0, "BFM","Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rostsb ,sc4rosts, sc4_5reel, sc4rosts, sc4_state, sc4rosts, ROT0, "BFM","Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rostsc ,sc4rosts, sc4_5reel, sc4rosts, sc4_state, sc4rosts, ROT0, "BFM","Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rostsd ,sc4rosts, sc4_5reel, sc4rosts, sc4_state, sc4rosts, ROT0, "BFM","Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rostse ,sc4rosts, sc4_5reel, sc4rosts, sc4_state, sc4rosts, ROT0, "BFM","Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rostsf ,sc4rosts, sc4_5reel, sc4rosts, sc4_state, sc4rosts, ROT0, "BFM","Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rostsg ,sc4rosts, sc4_5reel, sc4rosts, sc4_state, sc4rosts, ROT0, "BFM","Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4rovrt)
@@ -39551,12 +39551,12 @@ INPUT_PORTS_START( sc4rovrt ) // this structure is generated
INPUT_PORTS_END
// PR2311 ROVERS RETURN ROVERS RETURN SOUNDS ROVERS RETURN
-GAMEL( 200?, sc4rovrt ,0, sc4_200_4ra, sc4rovrt, sc4_state, sc4rovrt, ROT0, "Mazooma","Rovers Return (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rovrta ,sc4rovrt, sc4_200_4ra, sc4rovrt, sc4_state, sc4rovrt, ROT0, "Mazooma","Rovers Return (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rovrtb ,sc4rovrt, sc4_200_4ra, sc4rovrt, sc4_state, sc4rovrt, ROT0, "Mazooma","Rovers Return (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rovrtc ,sc4rovrt, sc4_200_4ra, sc4rovrt, sc4_state, sc4rovrt, ROT0, "Mazooma","Rovers Return (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rovrtd ,sc4rovrt, sc4_200_4ra, sc4rovrt, sc4_state, sc4rovrt, ROT0, "Mazooma","Rovers Return (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rovrte ,sc4rovrt, sc4_200_4ra, sc4rovrt, sc4_state, sc4rovrt, ROT0, "Mazooma","Rovers Return (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rovrt ,0, sc4_200_4ra, sc4rovrt, sc4_state, sc4rovrt, ROT0, "Mazooma","Rovers Return (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rovrta ,sc4rovrt, sc4_200_4ra, sc4rovrt, sc4_state, sc4rovrt, ROT0, "Mazooma","Rovers Return (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rovrtb ,sc4rovrt, sc4_200_4ra, sc4rovrt, sc4_state, sc4rovrt, ROT0, "Mazooma","Rovers Return (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rovrtc ,sc4rovrt, sc4_200_4ra, sc4rovrt, sc4_state, sc4rovrt, ROT0, "Mazooma","Rovers Return (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rovrtd ,sc4rovrt, sc4_200_4ra, sc4rovrt, sc4_state, sc4rovrt, ROT0, "Mazooma","Rovers Return (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rovrte ,sc4rovrt, sc4_200_4ra, sc4rovrt, sc4_state, sc4rovrt, ROT0, "Mazooma","Rovers Return (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4showt)
{
@@ -39629,13 +39629,13 @@ INPUT_PORTS_START( sc4showt ) // this structure is generated
INPUT_PORTS_END
// PR3043 AWP SHOW TIME S4 PR3013 SHOWTIME SOUNDS11 SHOW TIME S.SITE
-GAMEL( 200?, sc4showt ,0, sc4_200_5rc, sc4showt, sc4_state, sc4showt, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4showta ,sc4showt, sc4_200_5rc, sc4showt, sc4_state, sc4showt, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4showtb ,sc4showt, sc4_200_5rc, sc4showt, sc4_state, sc4showt, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4showtc ,sc4showt, sc4_200_5rc, sc4showt, sc4_state, sc4showt, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4showtd ,sc4showt, sc4_200_5rc, sc4showt, sc4_state, sc4showt, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4showte ,sc4showt, sc4_200_5rc, sc4showt, sc4_state, sc4showt, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4showtf ,sc4showt, sc4_200_5rc, sc4showt, sc4_state, sc4showt, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4showt ,0, sc4_200_5rc, sc4showt, sc4_state, sc4showt, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4showta ,sc4showt, sc4_200_5rc, sc4showt, sc4_state, sc4showt, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4showtb ,sc4showt, sc4_200_5rc, sc4showt, sc4_state, sc4showt, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4showtc ,sc4showt, sc4_200_5rc, sc4showt, sc4_state, sc4showt, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4showtd ,sc4showt, sc4_200_5rc, sc4showt, sc4_state, sc4showt, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4showte ,sc4showt, sc4_200_5rc, sc4showt, sc4_state, sc4showt, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4showtf ,sc4showt, sc4_200_5rc, sc4showt, sc4_state, sc4showt, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4spice)
@@ -39698,10 +39698,10 @@ INPUT_PORTS_START( sc4spice ) // this structure is generated
INPUT_PORTS_END
// PR1921 AWP SPICE IT UP SCORP4 PR1901 SPICE IT UP SOUNDS11 SPICE IT UP S.SITE
-GAMEL( 200?, sc4spice ,0, sc4_4reel_alt, sc4spice, sc4_state, sc4spice, ROT0, "BFM","Spice It Up (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4spicea ,sc4spice, sc4_4reel_alt, sc4spice, sc4_state, sc4spice, ROT0, "BFM","Spice It Up (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4spiceb ,sc4spice, sc4_4reel_alt, sc4spice, sc4_state, sc4spice, ROT0, "BFM","Spice It Up (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4spicec ,sc4spice, sc4_4reel_alt, sc4spice, sc4_state, sc4spice, ROT0, "BFM","Spice It Up (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4spice ,0, sc4_4reel_alt, sc4spice, sc4_state, sc4spice, ROT0, "BFM","Spice It Up (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4spicea ,sc4spice, sc4_4reel_alt, sc4spice, sc4_state, sc4spice, ROT0, "BFM","Spice It Up (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4spiceb ,sc4spice, sc4_4reel_alt, sc4spice, sc4_state, sc4spice, ROT0, "BFM","Spice It Up (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4spicec ,sc4spice, sc4_4reel_alt, sc4spice, sc4_state, sc4spice, ROT0, "BFM","Spice It Up (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4sus)
{
@@ -39769,14 +39769,14 @@ INPUT_PORTS_START( sc4sus ) // this structure is generated
INPUT_PORTS_END
// PR2255 SUITUSIR SUIT SOUNDS SUITS U SIR
-GAMEL( 200?, sc4sus ,0, sc4_4reel_alt, sc4sus, sc4_state, sc4sus, ROT0, "Qps","Suits U Sir (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4susc ,sc4sus, sc4_4reel_alt, sc4sus, sc4_state, sc4sus, ROT0, "Qps","Suits U Sir (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4susf ,sc4sus, sc4_4reel_alt, sc4sus, sc4_state, sc4sus, ROT0, "Qps","Suits U Sir (Qps) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4susg ,sc4sus, sc4_4reel_alt, sc4sus, sc4_state, sc4sus, ROT0, "Qps","Suits U Sir (Qps) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4sush ,sc4sus, sc4_4reel_alt, sc4sus, sc4_state, sc4sus, ROT0, "Qps","Suits U Sir (Qps) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4susi ,sc4sus, sc4_4reel_alt, sc4sus, sc4_state, sc4sus, ROT0, "Qps","Suits U Sir (Qps) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4susj ,sc4sus, sc4_4reel_alt, sc4sus, sc4_state, sc4sus, ROT0, "Qps","Suits U Sir (Qps) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4susk ,sc4sus, sc4_4reel_alt, sc4sus, sc4_state, sc4sus, ROT0, "Qps","Suits U Sir (Qps) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sus ,0, sc4_4reel_alt, sc4sus, sc4_state, sc4sus, ROT0, "Qps","Suits U Sir (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4susc ,sc4sus, sc4_4reel_alt, sc4sus, sc4_state, sc4sus, ROT0, "Qps","Suits U Sir (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4susf ,sc4sus, sc4_4reel_alt, sc4sus, sc4_state, sc4sus, ROT0, "Qps","Suits U Sir (Qps) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4susg ,sc4sus, sc4_4reel_alt, sc4sus, sc4_state, sc4sus, ROT0, "Qps","Suits U Sir (Qps) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sush ,sc4sus, sc4_4reel_alt, sc4sus, sc4_state, sc4sus, ROT0, "Qps","Suits U Sir (Qps) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4susi ,sc4sus, sc4_4reel_alt, sc4sus, sc4_state, sc4sus, ROT0, "Qps","Suits U Sir (Qps) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4susj ,sc4sus, sc4_4reel_alt, sc4sus, sc4_state, sc4sus, ROT0, "Qps","Suits U Sir (Qps) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4susk ,sc4sus, sc4_4reel_alt, sc4sus, sc4_state, sc4sus, ROT0, "Qps","Suits U Sir (Qps) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4sslam)
@@ -39838,8 +39838,8 @@ INPUT_PORTS_START( sc4sslam ) // this structure is generated
INPUT_PORTS_END
// PR3081 CLUB SUPER SLAM SUPER SLAM CLUB PR3080 SUPER SLAM SOUNDS11
-GAMEL( 200?, sc4sslam ,0, sc4_5reel, sc4sslam, sc4_state, sc4sslam, ROT0, "BFM","Super Slam (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4sslama ,sc4sslam, sc4_5reel, sc4sslam, sc4_state, sc4sslam, ROT0, "BFM","Super Slam (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sslam ,0, sc4_5reel, sc4sslam, sc4_state, sc4sslam, ROT0, "BFM","Super Slam (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sslama ,sc4sslam, sc4_5reel, sc4sslam, sc4_state, sc4sslam, ROT0, "BFM","Super Slam (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// reel setup NOT correct, this will spin forever on some things
@@ -39909,10 +39909,10 @@ INPUT_PORTS_START( sc4swbak ) // this structure is generated
INPUT_PORTS_END
// PR2235 SWITCHBACK SWBK SOUNDS SWITCHBACK
-GAMEL( 200?, sc4swbak ,0, sc4_200_5ra, sc4swbak, sc4_state, sc4swbak, ROT0, "QPS","Switch Back (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4swbaka ,sc4swbak, sc4_200_5ra, sc4swbak, sc4_state, sc4swbak, ROT0, "QPS","Switch Back (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4swbakb ,sc4swbak, sc4_200_5ra, sc4swbak, sc4_state, sc4swbak, ROT0, "QPS","Switch Back (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4swbakc ,sc4swbak, sc4_200_5ra, sc4swbak, sc4_state, sc4swbak, ROT0, "QPS","Switch Back (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4swbak ,0, sc4_200_5ra, sc4swbak, sc4_state, sc4swbak, ROT0, "QPS","Switch Back (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4swbaka ,sc4swbak, sc4_200_5ra, sc4swbak, sc4_state, sc4swbak, ROT0, "QPS","Switch Back (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4swbakb ,sc4swbak, sc4_200_5ra, sc4swbak, sc4_state, sc4swbak, ROT0, "QPS","Switch Back (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4swbakc ,sc4swbak, sc4_200_5ra, sc4swbak, sc4_state, sc4swbak, ROT0, "QPS","Switch Back (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4ttpie)
@@ -39981,15 +39981,15 @@ INPUT_PORTS_START( sc4ttpie ) // this structure is generated
INPUT_PORTS_END
// PR1714 AWP TAKE THE PIECE S4 PR1714 TAKE THE PIECE SOUNDS11 TAKETHEPIECE S.SITE
-GAMEL( 200?, sc4ttpie ,0, sc4_5reel, sc4ttpie, sc4_state, sc4ttpie, ROT0, "BFM","Take The Piece (Bellfruit) (PR1714) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ttpiec ,sc4ttpie, sc4_5reel, sc4ttpie, sc4_state, sc4ttpie, ROT0, "BFM","Take The Piece (Bellfruit) (PR1714) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ttpie ,0, sc4_5reel, sc4ttpie, sc4_state, sc4ttpie, ROT0, "BFM","Take The Piece (Bellfruit) (PR1714) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ttpiec ,sc4ttpie, sc4_5reel, sc4ttpie, sc4_state, sc4ttpie, ROT0, "BFM","Take The Piece (Bellfruit) (PR1714) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR1734 AWP TAKE THE PIECE S4 PR1714 TAKE THE PIECE SOUNDS11 TAKETHEPIECE S.SITE
-GAMEL( 200?, sc4ttpiea ,sc4ttpie, sc4_5reel, sc4ttpie, sc4_state, sc4ttpie, ROT0, "BFM","Take The Piece (Bellfruit) (PR1734) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ttpieb ,sc4ttpie, sc4_5reel, sc4ttpie, sc4_state, sc4ttpie, ROT0, "BFM","Take The Piece (Bellfruit) (PR1734) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ttpied ,sc4ttpie, sc4_5reel, sc4ttpie, sc4_state, sc4ttpie, ROT0, "BFM","Take The Piece (Bellfruit) (PR1734) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ttpiee ,sc4ttpie, sc4_5reel, sc4ttpie, sc4_state, sc4ttpie, ROT0, "BFM","Take The Piece (Bellfruit) (PR1734) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ttpief ,sc4ttpie, sc4_5reel, sc4ttpie, sc4_state, sc4ttpie, ROT0, "BFM","Take The Piece (Bellfruit) (PR1734) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ttpieg ,sc4ttpie, sc4_5reel, sc4ttpie, sc4_state, sc4ttpie, ROT0, "BFM","Take The Piece (Bellfruit) (PR1734) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ttpiea ,sc4ttpie, sc4_5reel, sc4ttpie, sc4_state, sc4ttpie, ROT0, "BFM","Take The Piece (Bellfruit) (PR1734) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ttpieb ,sc4ttpie, sc4_5reel, sc4ttpie, sc4_state, sc4ttpie, ROT0, "BFM","Take The Piece (Bellfruit) (PR1734) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ttpied ,sc4ttpie, sc4_5reel, sc4ttpie, sc4_state, sc4ttpie, ROT0, "BFM","Take The Piece (Bellfruit) (PR1734) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ttpiee ,sc4ttpie, sc4_5reel, sc4ttpie, sc4_state, sc4ttpie, ROT0, "BFM","Take The Piece (Bellfruit) (PR1734) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ttpief ,sc4ttpie, sc4_5reel, sc4ttpie, sc4_state, sc4ttpie, ROT0, "BFM","Take The Piece (Bellfruit) (PR1734) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ttpieg ,sc4ttpie, sc4_5reel, sc4ttpie, sc4_state, sc4ttpie, ROT0, "BFM","Take The Piece (Bellfruit) (PR1734) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4typ)
@@ -40062,10 +40062,10 @@ INPUT_PORTS_START( sc4typ ) // this structure is generated
INPUT_PORTS_END
// PR3031 AWP TAKE YOUR PICK S4 PR3001 TAKE YOUR PICK SOUNDS11 TAKE YOUR PICK S.SITE
-GAMEL( 200?, sc4typ ,0, sc4, sc4typ, sc4_state, sc4typ, ROT0, "BFM","Take Your Pick (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4typa ,sc4typ, sc4, sc4typ, sc4_state, sc4typ, ROT0, "BFM","Take Your Pick (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4typb ,sc4typ, sc4, sc4typ, sc4_state, sc4typ, ROT0, "BFM","Take Your Pick (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4typc ,sc4typ, sc4, sc4typ, sc4_state, sc4typ, ROT0, "BFM","Take Your Pick (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4typ ,0, sc4, sc4typ, sc4_state, sc4typ, ROT0, "BFM","Take Your Pick (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4typa ,sc4typ, sc4, sc4typ, sc4_state, sc4typ, ROT0, "BFM","Take Your Pick (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4typb ,sc4typ, sc4, sc4typ, sc4_state, sc4typ, ROT0, "BFM","Take Your Pick (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4typc ,sc4typ, sc4, sc4typ, sc4_state, sc4typ, ROT0, "BFM","Take Your Pick (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4trail)
{
@@ -40119,10 +40119,10 @@ INPUT_PORTS_START( sc4trail ) // this structure is generated
INPUT_PORTS_END
// PR2170 TRAIL BLAZER TRAB SOUNDS TRAIL BLAZER
-GAMEL( 200?, sc4trail ,0, sc4_4reel_alt, sc4trail, sc4_state, sc4trail, ROT0, "Mazooma","Trailblazer (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4traila ,sc4trail, sc4_4reel_alt, sc4trail, sc4_state, sc4trail, ROT0, "Mazooma","Trailblazer (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4trailb ,sc4trail, sc4_4reel_alt, sc4trail, sc4_state, sc4trail, ROT0, "Mazooma","Trailblazer (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4trailc ,sc4trail, sc4_4reel_alt, sc4trail, sc4_state, sc4trail, ROT0, "Mazooma","Trailblazer (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4trail ,0, sc4_4reel_alt, sc4trail, sc4_state, sc4trail, ROT0, "Mazooma","Trailblazer (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4traila ,sc4trail, sc4_4reel_alt, sc4trail, sc4_state, sc4trail, ROT0, "Mazooma","Trailblazer (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4trailb ,sc4trail, sc4_4reel_alt, sc4trail, sc4_state, sc4trail, ROT0, "Mazooma","Trailblazer (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4trailc ,sc4trail, sc4_4reel_alt, sc4trail, sc4_state, sc4trail, ROT0, "Mazooma","Trailblazer (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -40194,13 +40194,13 @@ INPUT_PORTS_START( sc4bpb ) // this structure is generated
INPUT_PORTS_END
// PR1728 AWP BULLY'S PRIZE BOARD PR1708 B PRIZE BOARD SOUNDS11 BULLYSPRIZEBOARD S.SITE
-GAMEL( 200?, sc4bpb ,0, sc4_5reel, sc4bpb, sc4_state, sc4bpb, ROT0, "BFM","Bully's Prize Board (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bpbc ,sc4bpb, sc4_5reel, sc4bpb, sc4_state, sc4bpb, ROT0, "BFM","Bully's Prize Board (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bpb ,0, sc4_5reel, sc4bpb, sc4_state, sc4bpb, ROT0, "BFM","Bully's Prize Board (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bpbc ,sc4bpb, sc4_5reel, sc4bpb, sc4_state, sc4bpb, ROT0, "BFM","Bully's Prize Board (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR1728 AWP BULLY'S PRIZE BOARD S4 PR1708 B PRIZE BOARD SOUNDS11 BULLYSPRIZEBOARD S.SITE
-GAMEL( 200?, sc4bpba ,sc4bpb, sc4_5reel, sc4bpb, sc4_state, sc4bpb, ROT0, "BFM","Bully's Prize Board (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bpbb ,sc4bpb, sc4_5reel, sc4bpb, sc4_state, sc4bpb, ROT0, "BFM","Bully's Prize Board (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bpbd ,sc4bpb, sc4_5reel, sc4bpb, sc4_state, sc4bpb, ROT0, "BFM","Bully's Prize Board (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bpbe ,sc4bpb, sc4_5reel, sc4bpb, sc4_state, sc4bpb, ROT0, "BFM","Bully's Prize Board (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bpba ,sc4bpb, sc4_5reel, sc4bpb, sc4_state, sc4bpb, ROT0, "BFM","Bully's Prize Board (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bpbb ,sc4bpb, sc4_5reel, sc4bpb, sc4_state, sc4bpb, ROT0, "BFM","Bully's Prize Board (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bpbd ,sc4bpb, sc4_5reel, sc4bpb, sc4_state, sc4bpb, ROT0, "BFM","Bully's Prize Board (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bpbe ,sc4bpb, sc4_5reel, sc4bpb, sc4_state, sc4bpb, ROT0, "BFM","Bully's Prize Board (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4bsp)
@@ -40271,15 +40271,15 @@ INPUT_PORTS_START( sc4bsp ) // this structure is generated
INPUT_PORTS_END
// PR3040 AWP BULLYS STAR PRIZE SCORP4 PR3012 BULLYS STAR P SOUNDS11 BULLYS STARPRIZE S.SITE
-GAMEL( 200?, sc4bsp ,0, sc4_200_5ra, sc4bsp, sc4_state, sc4bsp, ROT0, "BFM","Bully's Star Prize (PR3040) (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bspa ,sc4bsp, sc4_200_5ra, sc4bsp, sc4_state, sc4bsp, ROT0, "BFM","Bully's Star Prize (PR3040) (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bspb ,sc4bsp, sc4_200_5ra, sc4bsp, sc4_state, sc4bsp, ROT0, "BFM","Bully's Star Prize (PR3040) (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bspc ,sc4bsp, sc4_200_5ra, sc4bsp, sc4_state, sc4bsp, ROT0, "BFM","Bully's Star Prize (PR3040) (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bspd ,sc4bsp, sc4_200_5ra, sc4bsp, sc4_state, sc4bsp, ROT0, "BFM","Bully's Star Prize (PR3040) (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bspg ,sc4bsp, sc4_200_5ra, sc4bsp, sc4_state, sc4bsp, ROT0, "BFM","Bully's Star Prize (PR3040) (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bsp ,0, sc4_200_5ra, sc4bsp, sc4_state, sc4bsp, ROT0, "BFM","Bully's Star Prize (PR3040) (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bspa ,sc4bsp, sc4_200_5ra, sc4bsp, sc4_state, sc4bsp, ROT0, "BFM","Bully's Star Prize (PR3040) (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bspb ,sc4bsp, sc4_200_5ra, sc4bsp, sc4_state, sc4bsp, ROT0, "BFM","Bully's Star Prize (PR3040) (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bspc ,sc4bsp, sc4_200_5ra, sc4bsp, sc4_state, sc4bsp, ROT0, "BFM","Bully's Star Prize (PR3040) (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bspd ,sc4bsp, sc4_200_5ra, sc4bsp, sc4_state, sc4bsp, ROT0, "BFM","Bully's Star Prize (PR3040) (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bspg ,sc4bsp, sc4_200_5ra, sc4bsp, sc4_state, sc4bsp, ROT0, "BFM","Bully's Star Prize (PR3040) (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR3042 AWP BULLYS STAR PRIZE SCORP4 PR3012 BULLYS STAR P SOUNDS11 BULLYS STARPRIZE S.SITE
-GAMEL( 200?, sc4bspe ,sc4bsp, sc4_200_5ra, sc4bsp, sc4_state, sc4bsp, ROT0, "BFM","Bully's Star Prize (PR3042) (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bspf ,sc4bsp, sc4_200_5ra, sc4bsp, sc4_state, sc4bsp, ROT0, "BFM","Bully's Star Prize (PR3042) (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bspe ,sc4bsp, sc4_200_5ra, sc4bsp, sc4_state, sc4bsp, ROT0, "BFM","Bully's Star Prize (PR3042) (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bspf ,sc4bsp, sc4_200_5ra, sc4bsp, sc4_state, sc4bsp, ROT0, "BFM","Bully's Star Prize (PR3042) (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4chain)
@@ -40356,10 +40356,10 @@ INPUT_PORTS_START( sc4chain ) // this structure is generated
INPUT_PORTS_END
// PR1316 AWP CHAIN REACTION PR1312 CHAIN REACT SOUNDS11
-GAMEL( 200?, sc4chain ,0, sc4_5reel_alt, sc4chain, sc4_state, sc4chain, ROT0, "BFM","Chain Reaction (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4chaina ,sc4chain, sc4_5reel_alt, sc4chain, sc4_state, sc4chain, ROT0, "BFM","Chain Reaction (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4chainb ,sc4chain, sc4_5reel_alt, sc4chain, sc4_state, sc4chain, ROT0, "BFM","Chain Reaction (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4chainc ,sc4chain, sc4_5reel_alt, sc4chain, sc4_state, sc4chain, ROT0, "BFM","Chain Reaction (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4chain ,0, sc4_5reel_alt, sc4chain, sc4_state, sc4chain, ROT0, "BFM","Chain Reaction (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4chaina ,sc4chain, sc4_5reel_alt, sc4chain, sc4_state, sc4chain, ROT0, "BFM","Chain Reaction (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4chainb ,sc4chain, sc4_5reel_alt, sc4chain, sc4_state, sc4chain, ROT0, "BFM","Chain Reaction (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4chainc ,sc4chain, sc4_5reel_alt, sc4chain, sc4_state, sc4chain, ROT0, "BFM","Chain Reaction (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4clown)
@@ -40435,14 +40435,14 @@ INPUT_PORTS_START( sc4clown ) // this structure is generated
INPUT_PORTS_END
// PR1727 AWP CLOWN AROUND SCORP4 PR1707 CLOWN AROUND SOUNDS11 CLOWN AROUND S.SITE
-GAMEL( 200?, sc4clown ,0, sc4_200_5rc, sc4clown, sc4_state, sc4clown, ROT0, "BFM","Clown Around (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4clowna ,sc4clown, sc4_200_5rc, sc4clown, sc4_state, sc4clown, ROT0, "BFM","Clown Around (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4clownb ,sc4clown, sc4_200_5rc, sc4clown, sc4_state, sc4clown, ROT0, "BFM","Clown Around (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4clownc ,sc4clown, sc4_200_5rc, sc4clown, sc4_state, sc4clown, ROT0, "BFM","Clown Around (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4clownd ,sc4clown, sc4_200_5rc, sc4clown, sc4_state, sc4clown, ROT0, "BFM","Clown Around (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4clowne ,sc4clown, sc4_200_5rc, sc4clown, sc4_state, sc4clown, ROT0, "BFM","Clown Around (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4clownf ,sc4clown, sc4_200_5rc, sc4clown, sc4_state, sc4clown, ROT0, "BFM","Clown Around (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4clowng ,sc4clown, sc4_200_5rc, sc4clown, sc4_state, sc4clown, ROT0, "BFM","Clown Around (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4clown ,0, sc4_200_5rc, sc4clown, sc4_state, sc4clown, ROT0, "BFM","Clown Around (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4clowna ,sc4clown, sc4_200_5rc, sc4clown, sc4_state, sc4clown, ROT0, "BFM","Clown Around (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4clownb ,sc4clown, sc4_200_5rc, sc4clown, sc4_state, sc4clown, ROT0, "BFM","Clown Around (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4clownc ,sc4clown, sc4_200_5rc, sc4clown, sc4_state, sc4clown, ROT0, "BFM","Clown Around (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4clownd ,sc4clown, sc4_200_5rc, sc4clown, sc4_state, sc4clown, ROT0, "BFM","Clown Around (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4clowne ,sc4clown, sc4_200_5rc, sc4clown, sc4_state, sc4clown, ROT0, "BFM","Clown Around (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4clownf ,sc4clown, sc4_200_5rc, sc4clown, sc4_state, sc4clown, ROT0, "BFM","Clown Around (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4clowng ,sc4clown, sc4_200_5rc, sc4clown, sc4_state, sc4clown, ROT0, "BFM","Clown Around (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4mowow ) // this structure is generated
PORT_INCLUDE( sc4_base )
@@ -40492,16 +40492,16 @@ INPUT_PORTS_START( sc4mowow ) // this structure is generated
INPUT_PORTS_END
/* wrong sound roms */
-GAMEL( 200?, sc4mowow ,0, sc4, sc4mowow, sc4_state, sc4, ROT0, "Mazooma","Monopoly Wheel Of Wealth (Mazooma) (PR2118) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR2118 MONOPOLY WOTW WOTW SOUNDS MONOPOLY WOTW 8P
-GAMEL( 200?, sc4mowowa ,sc4mowow, sc4, sc4mowow, sc4_state, sc4, ROT0, "Mazooma","Monopoly Wheel Of Wealth (Mazooma) (PR2118) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4mowowb ,sc4mowow, sc4, sc4mowow, sc4_state, sc4, ROT0, "Mazooma","Monopoly Wheel Of Wealth (Mazooma) (PR2118) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4mowowc ,sc4mowow, sc4, sc4mowow, sc4_state, sc4, ROT0, "Mazooma","Monopoly Wheel Of Wealth (Mazooma) (PR2118) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4mowow ,0, sc4, sc4mowow, sc4_state, sc4, ROT0, "Mazooma","Monopoly Wheel Of Wealth (Mazooma) (PR2118) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR2118 MONOPOLY WOTW WOTW SOUNDS MONOPOLY WOTW 8P
+GAMEL( 200?, sc4mowowa ,sc4mowow, sc4, sc4mowow, sc4_state, sc4, ROT0, "Mazooma","Monopoly Wheel Of Wealth (Mazooma) (PR2118) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4mowowb ,sc4mowow, sc4, sc4mowow, sc4_state, sc4, ROT0, "Mazooma","Monopoly Wheel Of Wealth (Mazooma) (PR2118) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4mowowc ,sc4mowow, sc4, sc4mowow, sc4_state, sc4, ROT0, "Mazooma","Monopoly Wheel Of Wealth (Mazooma) (PR2118) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4mwwtb ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Wheel Of Wealth (Mazooma) (PR2389, Top Box) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR2389 WHEEL OF WEALTH WOWT SOUNDS WHEEL OF WEAL
-GAMEL( 200?, sc4mwwtba ,sc4mwwtb, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Wheel Of Wealth (Mazooma) (PR2389, Top Box) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4mwwtbb ,sc4mwwtb, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Wheel Of Wealth (Mazooma) (PR2389, Top Box) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4mwwtbc ,sc4mwwtb, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Wheel Of Wealth (Mazooma) (PR2389, Top Box) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4mwwtbd ,sc4mwwtb, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Wheel Of Wealth (Mazooma) (PR2389, Top Box) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4mwwtb ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Wheel Of Wealth (Mazooma) (PR2389, Top Box) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR2389 WHEEL OF WEALTH WOWT SOUNDS WHEEL OF WEAL
+GAMEL( 200?, sc4mwwtba ,sc4mwwtb, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Wheel Of Wealth (Mazooma) (PR2389, Top Box) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4mwwtbb ,sc4mwwtb, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Wheel Of Wealth (Mazooma) (PR2389, Top Box) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4mwwtbc ,sc4mwwtb, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Wheel Of Wealth (Mazooma) (PR2389, Top Box) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4mwwtbd ,sc4mwwtb, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Wheel Of Wealth (Mazooma) (PR2389, Top Box) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
DRIVER_INIT_MEMBER(sc4_state,sc4bwow)
@@ -40571,8 +40571,8 @@ INPUT_PORTS_START( sc4bwow ) // this structure is generated
// 0x0010 - "hopdmp" // standard input (expected here)
INPUT_PORTS_END
-GAMEL( 200?, sc4bwow ,0, sc4_200_5ra, sc4bwow, sc4_state, sc4bwow, ROT0, "BFM","Wheel Of Wealth (Bellfruit) (PR1726) (Scorpion 4) (WHEL013, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR1726 AWP WHEEL OF WEALTH PR1706 WHEEL OF WEALTH SOUNDS11 WHEEL OF WEALTH S.SITE
-GAMEL( 200?, sc4bwowa ,sc4bwow, sc4_200_5ra, sc4bwow, sc4_state, sc4bwow, ROT0, "BFM","Wheel Of Wealth (Bellfruit) (PR1726) (Scorpion 4) (WHEL013, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4bwow ,0, sc4_200_5ra, sc4bwow, sc4_state, sc4bwow, ROT0, "BFM","Wheel Of Wealth (Bellfruit) (PR1726) (Scorpion 4) (WHEL013, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR1726 AWP WHEEL OF WEALTH PR1706 WHEEL OF WEALTH SOUNDS11 WHEEL OF WEALTH S.SITE
+GAMEL( 200?, sc4bwowa ,sc4bwow, sc4_200_5ra, sc4bwow, sc4_state, sc4bwow, ROT0, "BFM","Wheel Of Wealth (Bellfruit) (PR1726) (Scorpion 4) (WHEL013, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
DRIVER_INIT_MEMBER(sc4_state,sc4nunsm)
@@ -40634,16 +40634,16 @@ INPUT_PORTS_START( sc4nunsm ) // this structure is generated
INPUT_PORTS_END
// PR2166 NUN N ROSES NANR SOUNDS NUNS N ROSES
-GAMEL( 200?, sc4nunsm ,0, sc4_200_4ra, sc4nunsm, sc4_state, sc4nunsm, ROT0, "Mazooma","Nuns 'n' Roses (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4nunsmb ,sc4nunsm, sc4_200_4ra, sc4nunsm, sc4_state, sc4nunsm, ROT0, "Mazooma","Nuns 'n' Roses (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4nunsmc ,sc4nunsm, sc4_200_4ra, sc4nunsm, sc4_state, sc4nunsm, ROT0, "Mazooma","Nuns 'n' Roses (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4nunsmd ,sc4nunsm, sc4_200_4ra, sc4nunsm, sc4_state, sc4nunsm, ROT0, "Mazooma","Nuns 'n' Roses (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4nunsme ,sc4nunsm, sc4_200_4ra, sc4nunsm, sc4_state, sc4nunsm, ROT0, "Mazooma","Nuns 'n' Roses (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4nunsmf ,sc4nunsm, sc4_200_4ra, sc4nunsm, sc4_state, sc4nunsm, ROT0, "Mazooma","Nuns 'n' Roses (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4nunsmg ,sc4nunsm, sc4_200_4ra, sc4nunsm, sc4_state, sc4nunsm, ROT0, "Mazooma","Nuns 'n' Roses (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4nunsmh ,sc4nunsm, sc4_200_4ra, sc4nunsm, sc4_state, sc4nunsm, ROT0, "Mazooma","Nuns 'n' Roses (Mazooma) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4nunsmi ,sc4nunsm, sc4_200_4ra, sc4nunsm, sc4_state, sc4nunsm, ROT0, "Mazooma","Nuns 'n' Roses (Mazooma) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4nunsmj ,sc4nunsm, sc4_200_4ra, sc4nunsm, sc4_state, sc4nunsm, ROT0, "Mazooma","Nuns 'n' Roses (Mazooma) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4nunsm ,0, sc4_200_4ra, sc4nunsm, sc4_state, sc4nunsm, ROT0, "Mazooma","Nuns 'n' Roses (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4nunsmb ,sc4nunsm, sc4_200_4ra, sc4nunsm, sc4_state, sc4nunsm, ROT0, "Mazooma","Nuns 'n' Roses (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4nunsmc ,sc4nunsm, sc4_200_4ra, sc4nunsm, sc4_state, sc4nunsm, ROT0, "Mazooma","Nuns 'n' Roses (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4nunsmd ,sc4nunsm, sc4_200_4ra, sc4nunsm, sc4_state, sc4nunsm, ROT0, "Mazooma","Nuns 'n' Roses (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4nunsme ,sc4nunsm, sc4_200_4ra, sc4nunsm, sc4_state, sc4nunsm, ROT0, "Mazooma","Nuns 'n' Roses (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4nunsmf ,sc4nunsm, sc4_200_4ra, sc4nunsm, sc4_state, sc4nunsm, ROT0, "Mazooma","Nuns 'n' Roses (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4nunsmg ,sc4nunsm, sc4_200_4ra, sc4nunsm, sc4_state, sc4nunsm, ROT0, "Mazooma","Nuns 'n' Roses (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4nunsmh ,sc4nunsm, sc4_200_4ra, sc4nunsm, sc4_state, sc4nunsm, ROT0, "Mazooma","Nuns 'n' Roses (Mazooma) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4nunsmi ,sc4nunsm, sc4_200_4ra, sc4nunsm, sc4_state, sc4nunsm, ROT0, "Mazooma","Nuns 'n' Roses (Mazooma) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4nunsmj ,sc4nunsm, sc4_200_4ra, sc4nunsm, sc4_state, sc4nunsm, ROT0, "Mazooma","Nuns 'n' Roses (Mazooma) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4acesh)
@@ -40695,10 +40695,10 @@ INPUT_PORTS_START( sc4acesh ) // this structure is generated
INPUT_PORTS_END
// PR2070 ACES HIGH ACEHI SOUNDS ACES HIGH
-GAMEL( 200?, sc4acesh ,0, sc4_200_5rc, sc4acesh, sc4_state, sc4acesh, ROT0, "Mazooma","Aces High (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4acesha ,sc4acesh, sc4_200_5rc, sc4acesh, sc4_state, sc4acesh, ROT0, "Mazooma","Aces High (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4aceshb ,sc4acesh, sc4_200_5rc, sc4acesh, sc4_state, sc4acesh, ROT0, "Mazooma","Aces High (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4aceshc ,sc4acesh, sc4_200_5rc, sc4acesh, sc4_state, sc4acesh, ROT0, "Mazooma","Aces High (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4acesh ,0, sc4_200_5rc, sc4acesh, sc4_state, sc4acesh, ROT0, "Mazooma","Aces High (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4acesha ,sc4acesh, sc4_200_5rc, sc4acesh, sc4_state, sc4acesh, ROT0, "Mazooma","Aces High (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4aceshb ,sc4acesh, sc4_200_5rc, sc4acesh, sc4_state, sc4acesh, ROT0, "Mazooma","Aces High (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4aceshc ,sc4acesh, sc4_200_5rc, sc4acesh, sc4_state, sc4acesh, ROT0, "Mazooma","Aces High (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4bed)
@@ -40757,12 +40757,12 @@ INPUT_PORTS_START( sc4bed ) // this structure is generated
INPUT_PORTS_END
// PR2094 BEDAZZLED BEDZ SOUNDS BEDAZZLED
-GAMEL( 200?, sc4bed ,0, sc4_4reel_alt, sc4bed, sc4_state, sc4bed, ROT0, "Mazooma","Bedazzled (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4beda ,sc4bed, sc4_4reel_alt, sc4bed, sc4_state, sc4bed, ROT0, "Mazooma","Bedazzled (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bedb ,sc4bed, sc4_4reel_alt, sc4bed, sc4_state, sc4bed, ROT0, "Mazooma","Bedazzled (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bedc ,sc4bed, sc4_4reel_alt, sc4bed, sc4_state, sc4bed, ROT0, "Mazooma","Bedazzled (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bedd ,sc4bed, sc4_4reel_alt, sc4bed, sc4_state, sc4bed, ROT0, "Mazooma","Bedazzled (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bede ,sc4bed, sc4_4reel_alt, sc4bed, sc4_state, sc4bed, ROT0, "Mazooma","Bedazzled (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bed ,0, sc4_4reel_alt, sc4bed, sc4_state, sc4bed, ROT0, "Mazooma","Bedazzled (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4beda ,sc4bed, sc4_4reel_alt, sc4bed, sc4_state, sc4bed, ROT0, "Mazooma","Bedazzled (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bedb ,sc4bed, sc4_4reel_alt, sc4bed, sc4_state, sc4bed, ROT0, "Mazooma","Bedazzled (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bedc ,sc4bed, sc4_4reel_alt, sc4bed, sc4_state, sc4bed, ROT0, "Mazooma","Bedazzled (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bedd ,sc4bed, sc4_4reel_alt, sc4bed, sc4_state, sc4bed, ROT0, "Mazooma","Bedazzled (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bede ,sc4bed, sc4_4reel_alt, sc4bed, sc4_state, sc4bed, ROT0, "Mazooma","Bedazzled (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4bedcl)
@@ -40829,12 +40829,12 @@ INPUT_PORTS_START( sc4bedcl ) // this structure is generated
INPUT_PORTS_END
// PR2102 CLUB BEDAZZLED CBED SOUNDS CLUB BEDAZZLED
-GAMEL( 200?, sc4bedcl ,0, sc4_5reel, sc4bedcl, sc4_state, sc4bedcl, ROT0, "Mazooma","Bedazzled Club (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bedcl ,0, sc4_5reel, sc4bedcl, sc4_state, sc4bedcl, ROT0, "Mazooma","Bedazzled Club (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2102 CLUB BEDAZZLED CLUB BEDAZZLED CLUB CBED SOUNDS CLUB BEDAZZLED
-GAMEL( 200?, sc4bedcla ,sc4bedcl, sc4_5reel, sc4bedcl, sc4_state, sc4bedcl, ROT0, "Mazooma","Bedazzled Club (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bedclb ,sc4bedcl, sc4_5reel, sc4bedcl, sc4_state, sc4bedcl, ROT0, "Mazooma","Bedazzled Club (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bedclc ,sc4bedcl, sc4_5reel, sc4bedcl, sc4_state, sc4bedcl, ROT0, "Mazooma","Bedazzled Club (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bedcld ,sc4bedcl, sc4_5reel, sc4bedcl, sc4_state, sc4bedcl, ROT0, "Mazooma","Bedazzled Club (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bedcla ,sc4bedcl, sc4_5reel, sc4bedcl, sc4_state, sc4bedcl, ROT0, "Mazooma","Bedazzled Club (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bedclb ,sc4bedcl, sc4_5reel, sc4bedcl, sc4_state, sc4bedcl, ROT0, "Mazooma","Bedazzled Club (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bedclc ,sc4bedcl, sc4_5reel, sc4bedcl, sc4_state, sc4bedcl, ROT0, "Mazooma","Bedazzled Club (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bedcld ,sc4bedcl, sc4_5reel, sc4bedcl, sc4_state, sc4bedcl, ROT0, "Mazooma","Bedazzled Club (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4bblas)
{
@@ -40891,13 +40891,13 @@ INPUT_PORTS_START( sc4bblas ) // this structure is generated
INPUT_PORTS_END
// PR2083 BIG BLASTER BBST SOUNDS BIG BLASTER
-GAMEL( 200?, sc4bblas ,0, sc4_4reel_alt, sc4bblas, sc4_state, sc4bblas, ROT0, "Mazooma","Big Blaster (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bblasa ,sc4bblas, sc4_4reel_alt, sc4bblas, sc4_state, sc4bblas, ROT0, "Mazooma","Big Blaster (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bblasb ,sc4bblas, sc4_4reel_alt, sc4bblas, sc4_state, sc4bblas, ROT0, "Mazooma","Big Blaster (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bblasc ,sc4bblas, sc4_4reel_alt, sc4bblas, sc4_state, sc4bblas_mbus, ROT0, "Mazooma","Big Blaster (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bblasd ,sc4bblas, sc4_4reel_alt, sc4bblas, sc4_state, sc4bblas_mbus, ROT0, "Mazooma","Big Blaster (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bblase ,sc4bblas, sc4_4reel_alt, sc4bblas, sc4_state, sc4bblas_mbus, ROT0, "Mazooma","Big Blaster (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bblasf ,sc4bblas, sc4_4reel_alt, sc4bblas, sc4_state, sc4bblas_mbus, ROT0, "Mazooma","Big Blaster (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bblas ,0, sc4_4reel_alt, sc4bblas, sc4_state, sc4bblas, ROT0, "Mazooma","Big Blaster (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bblasa ,sc4bblas, sc4_4reel_alt, sc4bblas, sc4_state, sc4bblas, ROT0, "Mazooma","Big Blaster (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bblasb ,sc4bblas, sc4_4reel_alt, sc4bblas, sc4_state, sc4bblas, ROT0, "Mazooma","Big Blaster (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bblasc ,sc4bblas, sc4_4reel_alt, sc4bblas, sc4_state, sc4bblas_mbus, ROT0, "Mazooma","Big Blaster (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bblasd ,sc4bblas, sc4_4reel_alt, sc4bblas, sc4_state, sc4bblas_mbus, ROT0, "Mazooma","Big Blaster (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bblase ,sc4bblas, sc4_4reel_alt, sc4bblas, sc4_state, sc4bblas_mbus, ROT0, "Mazooma","Big Blaster (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bblasf ,sc4bblas, sc4_4reel_alt, sc4bblas, sc4_state, sc4bblas_mbus, ROT0, "Mazooma","Big Blaster (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4bankb)
{
@@ -40950,11 +40950,11 @@ INPUT_PORTS_START( sc4bankb ) // this structure is generated
INPUT_PORTS_END
// PR???? BANKETYBANK V1.0 BANKETYBANKSND BANKETY BANK
-GAMEL( 200?, sc4bankb ,0, sc4_200_5r, sc4bankb, sc4_state, sc4bankb, ROT0, "Qps","Bankety Bank (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bankba ,sc4bankb, sc4_200_5r, sc4bankb, sc4_state, sc4bankb, ROT0, "Qps","Bankety Bank (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bankb ,0, sc4_200_5r, sc4bankb, sc4_state, sc4bankb, ROT0, "Qps","Bankety Bank (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bankba ,sc4bankb, sc4_200_5r, sc4bankb, sc4_state, sc4bankb, ROT0, "Qps","Bankety Bank (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR???? BANKETYBANK 011 BANKETYBANKSND BANKETY BANK
-GAMEL( 200?, sc4bb ,sc4bankb, sc4_200_5r, sc4bankb, sc4_state, sc4bankb, ROT0, "Qps","Bankety Bank (Qps) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bba ,sc4bankb, sc4_200_5r, sc4bankb, sc4_state, sc4bankb, ROT0, "Qps","Bankety Bank (Qps) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bb ,sc4bankb, sc4_200_5r, sc4bankb, sc4_state, sc4bankb, ROT0, "Qps","Bankety Bank (Qps) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bba ,sc4bankb, sc4_200_5r, sc4bankb, sc4_state, sc4bankb, ROT0, "Qps","Bankety Bank (Qps) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4bobcl)
{
@@ -41024,8 +41024,8 @@ INPUT_PORTS_START( sc4bobcl ) // this structure is generated
INPUT_PORTS_END
// PR2298 CLUB BOBBY DAZZLER CLUB BOB DAZZLER CLUB CLUBBOBD SOUNDS
-GAMEL( 200?, sc4bobcl ,0, sc4_5reel, sc4bobcl, sc4_state, sc4bobcl, ROT0, "Mazooma","Bobby Dazzler Club (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bobcla ,sc4bobcl, sc4_5reel, sc4bobcl, sc4_state, sc4bobcl, ROT0, "Mazooma","Bobby Dazzler Club (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bobcl ,0, sc4_5reel, sc4bobcl, sc4_state, sc4bobcl, ROT0, "Mazooma","Bobby Dazzler Club (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bobcla ,sc4bobcl, sc4_5reel, sc4bobcl, sc4_state, sc4bobcl, ROT0, "Mazooma","Bobby Dazzler Club (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4brksp)
{
@@ -41080,8 +41080,8 @@ INPUT_PORTS_START( sc4brksp ) // this structure is generated
INPUT_PORTS_END
// PR2033 BREAK THE SPELL SPELL SOUNDS BREAK THE SPELL
-GAMEL( 200?, sc4brksp ,0, sc4_5reel, sc4brksp, sc4_state, sc4brksp, ROT0, "Mazooma","Break The Spell (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4brkspa ,sc4brksp, sc4_5reel, sc4brksp, sc4_state, sc4brksp, ROT0, "Mazooma","Break The Spell (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4brksp ,0, sc4_5reel, sc4brksp, sc4_state, sc4brksp, ROT0, "Mazooma","Break The Spell (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4brkspa ,sc4brksp, sc4_5reel, sc4brksp, sc4_state, sc4brksp, ROT0, "Mazooma","Break The Spell (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4bulcl)
{
@@ -41147,16 +41147,16 @@ INPUT_PORTS_START( sc4bulcl ) // this structure is generated
INPUT_PORTS_END
// PR1753 CLUB BULLSEYE BULLSEYE CLUB PR1751 BULLSEYE SOUNDS11 BULLSYE
-GAMEL( 200?, sc4bulcl ,0, sc4_5reel, sc4bulcl, sc4_state, sc4bulcl, ROT0, "BFM","Bullseye Club (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bulcla ,sc4bulcl, sc4_5reel, sc4bulcl, sc4_state, sc4bulcl, ROT0, "BFM","Bullseye Club (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bulclb ,sc4bulcl, sc4_5reel, sc4bulcl, sc4_state, sc4bulcl, ROT0, "BFM","Bullseye Club (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bulclc ,sc4bulcl, sc4_5reel, sc4bulcl, sc4_state, sc4bulcl, ROT0, "BFM","Bullseye Club (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bulcld ,sc4bulcl, sc4_5reel, sc4bulcl, sc4_state, sc4bulcl, ROT0, "BFM","Bullseye Club (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bulcle ,sc4bulcl, sc4_5reel, sc4bulcl, sc4_state, sc4bulcl, ROT0, "BFM","Bullseye Club (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bulclf ,sc4bulcl, sc4_5reel, sc4bulcl, sc4_state, sc4bulcl, ROT0, "BFM","Bullseye Club (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bulclg ,sc4bulcl, sc4_5reel, sc4bulcl, sc4_state, sc4bulcl, ROT0, "BFM","Bullseye Club (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bulclh ,sc4bulcl, sc4_5reel, sc4bulcl, sc4_state, sc4bulcl, ROT0, "BFM","Bullseye Club (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bulcli ,sc4bulcl, sc4_5reel, sc4bulcl, sc4_state, sc4bulcl, ROT0, "BFM","Bullseye Club (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bulcl ,0, sc4_5reel, sc4bulcl, sc4_state, sc4bulcl, ROT0, "BFM","Bullseye Club (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bulcla ,sc4bulcl, sc4_5reel, sc4bulcl, sc4_state, sc4bulcl, ROT0, "BFM","Bullseye Club (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bulclb ,sc4bulcl, sc4_5reel, sc4bulcl, sc4_state, sc4bulcl, ROT0, "BFM","Bullseye Club (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bulclc ,sc4bulcl, sc4_5reel, sc4bulcl, sc4_state, sc4bulcl, ROT0, "BFM","Bullseye Club (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bulcld ,sc4bulcl, sc4_5reel, sc4bulcl, sc4_state, sc4bulcl, ROT0, "BFM","Bullseye Club (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bulcle ,sc4bulcl, sc4_5reel, sc4bulcl, sc4_state, sc4bulcl, ROT0, "BFM","Bullseye Club (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bulclf ,sc4bulcl, sc4_5reel, sc4bulcl, sc4_state, sc4bulcl, ROT0, "BFM","Bullseye Club (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bulclg ,sc4bulcl, sc4_5reel, sc4bulcl, sc4_state, sc4bulcl, ROT0, "BFM","Bullseye Club (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bulclh ,sc4bulcl, sc4_5reel, sc4bulcl, sc4_state, sc4bulcl, ROT0, "BFM","Bullseye Club (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bulcli ,sc4bulcl, sc4_5reel, sc4bulcl, sc4_state, sc4bulcl, ROT0, "BFM","Bullseye Club (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4carry)
{
@@ -41222,8 +41222,8 @@ INPUT_PORTS_START( sc4carry ) // this structure is generated
INPUT_PORTS_END
// PR1113 CARRY ON WINNING PR1113 CARRY ON WINNING SOUNDS11
-GAMEL( 200?, sc4carry ,0, sc4_4reel_alt, sc4carry, sc4_state, sc4carry, ROT0, "BFM","Carry On Winning (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4carrya ,sc4carry, sc4_4reel_alt, sc4carry, sc4_state, sc4carry, ROT0, "BFM","Carry On Winning (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4carry ,0, sc4_4reel_alt, sc4carry, sc4_state, sc4carry, ROT0, "BFM","Carry On Winning (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4carrya ,sc4carry, sc4_4reel_alt, sc4carry, sc4_state, sc4carry, ROT0, "BFM","Carry On Winning (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4cbaz ) // this structure is generated
PORT_INCLUDE( sc4_base )
@@ -41285,20 +41285,20 @@ INPUT_PORTS_START( sc4cbaz ) // this structure is generated
INPUT_PORTS_END
// PR1349 CLUB CASH BAZAAR PR1349 CLUB CASH BAZAAR SOUNDS11
-GAMEL( 200?, sc4cbaz ,0, sc4, sc4cbaz, sc4_state, sc4, ROT0, "BFM","Cash Bazaar Club (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cbaza ,sc4cbaz, sc4, sc4cbaz, sc4_state, sc4, ROT0, "BFM","Cash Bazaar Club (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cbazb ,sc4cbaz, sc4, sc4cbaz, sc4_state, sc4, ROT0, "BFM","Cash Bazaar Club (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cbazc ,sc4cbaz, sc4, sc4cbaz, sc4_state, sc4, ROT0, "BFM","Cash Bazaar Club (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cbazd ,sc4cbaz, sc4, sc4cbaz, sc4_state, sc4, ROT0, "BFM","Cash Bazaar Club (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cbaze ,sc4cbaz, sc4, sc4cbaz, sc4_state, sc4, ROT0, "BFM","Cash Bazaar Club (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cbazf ,sc4cbaz, sc4, sc4cbaz, sc4_state, sc4, ROT0, "BFM","Cash Bazaar Club (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cbazg ,sc4cbaz, sc4, sc4cbaz, sc4_state, sc4, ROT0, "BFM","Cash Bazaar Club (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cbazh ,sc4cbaz, sc4, sc4cbaz, sc4_state, sc4, ROT0, "BFM","Cash Bazaar Club (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cbazi ,sc4cbaz, sc4, sc4cbaz, sc4_state, sc4, ROT0, "BFM","Cash Bazaar Club (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cbaz ,0, sc4, sc4cbaz, sc4_state, sc4, ROT0, "BFM","Cash Bazaar Club (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cbaza ,sc4cbaz, sc4, sc4cbaz, sc4_state, sc4, ROT0, "BFM","Cash Bazaar Club (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cbazb ,sc4cbaz, sc4, sc4cbaz, sc4_state, sc4, ROT0, "BFM","Cash Bazaar Club (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cbazc ,sc4cbaz, sc4, sc4cbaz, sc4_state, sc4, ROT0, "BFM","Cash Bazaar Club (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cbazd ,sc4cbaz, sc4, sc4cbaz, sc4_state, sc4, ROT0, "BFM","Cash Bazaar Club (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cbaze ,sc4cbaz, sc4, sc4cbaz, sc4_state, sc4, ROT0, "BFM","Cash Bazaar Club (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cbazf ,sc4cbaz, sc4, sc4cbaz, sc4_state, sc4, ROT0, "BFM","Cash Bazaar Club (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cbazg ,sc4cbaz, sc4, sc4cbaz, sc4_state, sc4, ROT0, "BFM","Cash Bazaar Club (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cbazh ,sc4cbaz, sc4, sc4cbaz, sc4_state, sc4, ROT0, "BFM","Cash Bazaar Club (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cbazi ,sc4cbaz, sc4, sc4cbaz, sc4_state, sc4, ROT0, "BFM","Cash Bazaar Club (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// These alarm through startup and don't boot, are they missing something like a DMD?
// PR1349 CLUB CASH BAZAAR CLUB CASH BAZAAR CLUB PR1349 CLUB CASH BAZAAR SOUNDS11
-GAMEL( 200?, sc4cbazj ,sc4cbaz, sc4, sc4cbaz, sc4_state, sc4mbus, ROT0, "BFM","Cash Bazaar Club (Bellfruit) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cbazk ,sc4cbaz, sc4, sc4cbaz, sc4_state, sc4mbus, ROT0, "BFM","Cash Bazaar Club (Bellfruit) (Scorpion 4) (set 12)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cbazj ,sc4cbaz, sc4, sc4cbaz, sc4_state, sc4mbus, ROT0, "BFM","Cash Bazaar Club (Bellfruit) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cbazk ,sc4cbaz, sc4, sc4cbaz, sc4_state, sc4mbus, ROT0, "BFM","Cash Bazaar Club (Bellfruit) (Scorpion 4) (set 12)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -41349,14 +41349,14 @@ INPUT_PORTS_START( sc4clash ) // this structure is generated
INPUT_PORTS_END
// PR2118 CASH ON THE LASH COTL SOUNDS CASH ON THE LASH
-GAMEL( 200?, sc4clash ,0, sc4, sc4clash, sc4_state, sc4mbus, ROT0, "Mazooma","Cash On The Lash (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4clasha ,sc4clash, sc4, sc4clash, sc4_state, sc4mbus, ROT0, "Mazooma","Cash On The Lash (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4clashb ,sc4clash, sc4, sc4clash, sc4_state, sc4mbus, ROT0, "Mazooma","Cash On The Lash (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4clashc ,sc4clash, sc4, sc4clash, sc4_state, sc4mbus, ROT0, "Mazooma","Cash On The Lash (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4clashd ,sc4clash, sc4, sc4clash, sc4_state, sc4, ROT0, "Mazooma","Cash On The Lash (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4clashe ,sc4clash, sc4, sc4clash, sc4_state, sc4, ROT0, "Mazooma","Cash On The Lash (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4clashf ,sc4clash, sc4, sc4clash, sc4_state, sc4, ROT0, "Mazooma","Cash On The Lash (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4clashg ,sc4clash, sc4, sc4clash, sc4_state, sc4, ROT0, "Mazooma","Cash On The Lash (Mazooma) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4clash ,0, sc4, sc4clash, sc4_state, sc4mbus, ROT0, "Mazooma","Cash On The Lash (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4clasha ,sc4clash, sc4, sc4clash, sc4_state, sc4mbus, ROT0, "Mazooma","Cash On The Lash (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4clashb ,sc4clash, sc4, sc4clash, sc4_state, sc4mbus, ROT0, "Mazooma","Cash On The Lash (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4clashc ,sc4clash, sc4, sc4clash, sc4_state, sc4mbus, ROT0, "Mazooma","Cash On The Lash (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4clashd ,sc4clash, sc4, sc4clash, sc4_state, sc4, ROT0, "Mazooma","Cash On The Lash (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4clashe ,sc4clash, sc4, sc4clash, sc4_state, sc4, ROT0, "Mazooma","Cash On The Lash (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4clashf ,sc4clash, sc4, sc4clash, sc4_state, sc4, ROT0, "Mazooma","Cash On The Lash (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4clashg ,sc4clash, sc4, sc4clash, sc4_state, sc4, ROT0, "Mazooma","Cash On The Lash (Mazooma) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4cckey ) // this structure is generated
@@ -41416,22 +41416,22 @@ INPUT_PORTS_START( sc4cckey ) // this structure is generated
INPUT_PORTS_END
// PR1426 CASINO CRAZY FRUITS GOLD PR1426 CRAZY F GOLD SOUNDS11 CRAZY FRUIT GOLD S.SITE (set was marked as Casino Crazy Keys)
-GAMEL( 200?, sc4cckey ,0, sc4, sc4cckey, sc4_state, sc4, ROT0, "BFM","Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cckeya ,sc4cckey, sc4, sc4cckey, sc4_state, sc4, ROT0, "BFM","Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cckeyb ,sc4cckey, sc4, sc4cckey, sc4_state, sc4, ROT0, "BFM","Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cckeyc ,sc4cckey, sc4, sc4cckey, sc4_state, sc4, ROT0, "BFM","Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cckeyd ,sc4cckey, sc4, sc4cckey, sc4_state, sc4, ROT0, "BFM","Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cckeye ,sc4cckey, sc4, sc4cckey, sc4_state, sc4, ROT0, "BFM","Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cckeyf ,sc4cckey, sc4, sc4cckey, sc4_state, sc4, ROT0, "BFM","Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cckeyg ,sc4cckey, sc4, sc4cckey, sc4_state, sc4, ROT0, "BFM","Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cckeyh ,sc4cckey, sc4, sc4cckey, sc4_state, sc4, ROT0, "BFM","Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cckeyj ,sc4cckey, sc4, sc4cckey, sc4_state, sc4, ROT0, "BFM","Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cckeyi ,sc4cckey, sc4, sc4cckey, sc4_state, sc4mbus, ROT0, "BFM","Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cckeyk ,sc4cckey, sc4, sc4cckey, sc4_state, sc4mbus, ROT0, "BFM","Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 12)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cckeyl ,sc4cckey, sc4, sc4cckey, sc4_state, sc4mbus, ROT0, "BFM","Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 13)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cckeym ,sc4cckey, sc4, sc4cckey, sc4_state, sc4mbus, ROT0, "BFM","Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 14)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cckeyn ,sc4cckey, sc4, sc4cckey, sc4_state, sc4mbus, ROT0, "BFM","Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 15)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cckeyo ,sc4cckey, sc4, sc4cckey, sc4_state, sc4mbus, ROT0, "BFM","Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 16)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cckey ,0, sc4, sc4cckey, sc4_state, sc4, ROT0, "BFM","Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cckeya ,sc4cckey, sc4, sc4cckey, sc4_state, sc4, ROT0, "BFM","Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cckeyb ,sc4cckey, sc4, sc4cckey, sc4_state, sc4, ROT0, "BFM","Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cckeyc ,sc4cckey, sc4, sc4cckey, sc4_state, sc4, ROT0, "BFM","Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cckeyd ,sc4cckey, sc4, sc4cckey, sc4_state, sc4, ROT0, "BFM","Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cckeye ,sc4cckey, sc4, sc4cckey, sc4_state, sc4, ROT0, "BFM","Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cckeyf ,sc4cckey, sc4, sc4cckey, sc4_state, sc4, ROT0, "BFM","Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cckeyg ,sc4cckey, sc4, sc4cckey, sc4_state, sc4, ROT0, "BFM","Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cckeyh ,sc4cckey, sc4, sc4cckey, sc4_state, sc4, ROT0, "BFM","Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cckeyj ,sc4cckey, sc4, sc4cckey, sc4_state, sc4, ROT0, "BFM","Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cckeyi ,sc4cckey, sc4, sc4cckey, sc4_state, sc4mbus, ROT0, "BFM","Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cckeyk ,sc4cckey, sc4, sc4cckey, sc4_state, sc4mbus, ROT0, "BFM","Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 12)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cckeyl ,sc4cckey, sc4, sc4cckey, sc4_state, sc4mbus, ROT0, "BFM","Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 13)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cckeym ,sc4cckey, sc4, sc4cckey, sc4_state, sc4mbus, ROT0, "BFM","Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 14)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cckeyn ,sc4cckey, sc4, sc4cckey, sc4_state, sc4mbus, ROT0, "BFM","Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 15)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cckeyo ,sc4cckey, sc4, sc4cckey, sc4_state, sc4mbus, ROT0, "BFM","Casino Crazy Fruits Gold (Bellfruit) (Scorpion 4) (set 16)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4clclo)
{
@@ -41497,7 +41497,7 @@ INPUT_PORTS_START( sc4clclo ) // this structure is generated
INPUT_PORTS_END
// PR2383 CLUBCLOUSEAU CLUBCLOUSEAU CLUB CCLOU SOUNDS CLUB CLOSEAU
-GAMEL( 200?, sc4clclo ,0, sc4_5reel, sc4clclo, sc4_state, sc4clclo, ROT0, "QPS","Club Clouseau (QPS) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4clclo ,0, sc4_5reel, sc4clclo, sc4_state, sc4clclo, ROT0, "QPS","Club Clouseau (QPS) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4cjcl)
@@ -41567,13 +41567,13 @@ INPUT_PORTS_START( sc4cjcl ) // this structure is generated
INPUT_PORTS_END
// PR1621 CLUB COOL JEWELS PR1621 COOL SOUNDS11 CLUB COOL JEWELS CLUB
-GAMEL( 200?, sc4cjcl ,0, sc4_5reel, sc4cjcl, sc4_state, sc4cjcl, ROT0, "BFM","Cool Jewels Club (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cjcla ,sc4cjcl, sc4_5reel, sc4cjcl, sc4_state, sc4cjcl, ROT0, "BFM","Cool Jewels Club (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cjclb ,sc4cjcl, sc4_5reel, sc4cjcl, sc4_state, sc4cjcl, ROT0, "BFM","Cool Jewels Club (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cjclc ,sc4cjcl, sc4_5reel, sc4cjcl, sc4_state, sc4cjcl, ROT0, "BFM","Cool Jewels Club (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cjcld ,sc4cjcl, sc4_5reel, sc4cjcl, sc4_state, sc4cjcl, ROT0, "BFM","Cool Jewels Club (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cjcle ,sc4cjcl, sc4_5reel, sc4cjcl, sc4_state, sc4cjcl, ROT0, "BFM","Cool Jewels Club (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cjclf ,sc4cjcl, sc4_5reel, sc4cjcl, sc4_state, sc4cjcl, ROT0, "BFM","Cool Jewels Club (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cjcl ,0, sc4_5reel, sc4cjcl, sc4_state, sc4cjcl, ROT0, "BFM","Cool Jewels Club (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cjcla ,sc4cjcl, sc4_5reel, sc4cjcl, sc4_state, sc4cjcl, ROT0, "BFM","Cool Jewels Club (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cjclb ,sc4cjcl, sc4_5reel, sc4cjcl, sc4_state, sc4cjcl, ROT0, "BFM","Cool Jewels Club (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cjclc ,sc4cjcl, sc4_5reel, sc4cjcl, sc4_state, sc4cjcl, ROT0, "BFM","Cool Jewels Club (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cjcld ,sc4cjcl, sc4_5reel, sc4cjcl, sc4_state, sc4cjcl, ROT0, "BFM","Cool Jewels Club (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cjcle ,sc4cjcl, sc4_5reel, sc4cjcl, sc4_state, sc4cjcl, ROT0, "BFM","Cool Jewels Club (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cjclf ,sc4cjcl, sc4_5reel, sc4cjcl, sc4_state, sc4cjcl, ROT0, "BFM","Cool Jewels Club (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4crcp ) // this structure is generated
@@ -41634,16 +41634,16 @@ INPUT_PORTS_START( sc4crcp ) // this structure is generated
INPUT_PORTS_END
// PR3241 CLUB COPS AND ROBBERS PLATINUM SCORP4 COPS & ROBRS PLT CLUB PR3241 C N R PLATINUM SOUNDS11 COPS AND ROBBERS
-GAMEL( 200?, sc4crcp ,0, sc4, sc4crcp, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Club Platinum (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crcpa ,sc4crcp, sc4, sc4crcp, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Club Platinum (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crcpc ,sc4crcp, sc4, sc4crcp, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Club Platinum (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crcpd ,sc4crcp, sc4, sc4crcp, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Club Platinum (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crcpe ,sc4crcp, sc4, sc4crcp, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Club Platinum (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crcpf ,sc4crcp, sc4, sc4crcp, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Club Platinum (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crcpg ,sc4crcp, sc4, sc4crcp, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Club Platinum (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crcph ,sc4crcp, sc4, sc4crcp, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Club Platinum (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crcpi ,sc4crcp, sc4, sc4crcp, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Club Platinum (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crcpj ,sc4crcp, sc4, sc4crcp, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Club Platinum (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crcp ,0, sc4, sc4crcp, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Club Platinum (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crcpa ,sc4crcp, sc4, sc4crcp, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Club Platinum (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crcpc ,sc4crcp, sc4, sc4crcp, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Club Platinum (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crcpd ,sc4crcp, sc4, sc4crcp, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Club Platinum (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crcpe ,sc4crcp, sc4, sc4crcp, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Club Platinum (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crcpf ,sc4crcp, sc4, sc4crcp, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Club Platinum (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crcpg ,sc4crcp, sc4, sc4crcp, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Club Platinum (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crcph ,sc4crcp, sc4, sc4crcp, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Club Platinum (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crcpi ,sc4crcp, sc4, sc4crcp, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Club Platinum (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crcpj ,sc4crcp, sc4, sc4crcp, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Club Platinum (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4crgc ) // this structure is generated
PORT_INCLUDE( sc4_base )
@@ -41703,32 +41703,32 @@ INPUT_PORTS_START( sc4crgc ) // this structure is generated
INPUT_PORTS_END
// PR1348 CLUB COPS AND ROBBERS GOLD PR1348 CCRG SOUNDS11 COPS AND ROBBERS
-GAMEL( 2003, sc4crgc ,0, sc4, sc4crgc, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2003, sc4crgca ,sc4crgc, sc4, sc4crgc, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2003, sc4crgcb ,sc4crgc, sc4, sc4crgc, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2003, sc4crgcc ,sc4crgc, sc4, sc4crgc, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2003, sc4crgcd ,sc4crgc, sc4, sc4crgc, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2003, sc4crgce ,sc4crgc, sc4, sc4crgc, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2003, sc4crgcf ,sc4crgc, sc4, sc4crgc, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2003, sc4crgcg ,sc4crgc, sc4, sc4crgc, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2003, sc4crgch ,sc4crgc, sc4, sc4crgc, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2003, sc4crgci ,sc4crgc, sc4, sc4crgc, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2003, sc4crgcj ,sc4crgc, sc4, sc4crgc, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2003, sc4crgck ,sc4crgc, sc4, sc4crgc, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 12)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2003, sc4crgcl ,sc4crgc, sc4, sc4crgc, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 13)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2003, sc4crgcm ,sc4crgc, sc4, sc4crgc, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 14)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2003, sc4crgco ,sc4crgc, sc4, sc4crgc, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 15)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2003, sc4crgcq ,sc4crgc, sc4, sc4crgc, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 16)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2003, sc4crgct ,sc4crgc, sc4, sc4crgc, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 17)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2003, sc4crgcw ,sc4crgc, sc4, sc4crgc, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 18)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2003, sc4crgc ,0, sc4, sc4crgc, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2003, sc4crgca ,sc4crgc, sc4, sc4crgc, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2003, sc4crgcb ,sc4crgc, sc4, sc4crgc, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2003, sc4crgcc ,sc4crgc, sc4, sc4crgc, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2003, sc4crgcd ,sc4crgc, sc4, sc4crgc, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2003, sc4crgce ,sc4crgc, sc4, sc4crgc, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2003, sc4crgcf ,sc4crgc, sc4, sc4crgc, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2003, sc4crgcg ,sc4crgc, sc4, sc4crgc, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2003, sc4crgch ,sc4crgc, sc4, sc4crgc, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2003, sc4crgci ,sc4crgc, sc4, sc4crgc, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2003, sc4crgcj ,sc4crgc, sc4, sc4crgc, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2003, sc4crgck ,sc4crgc, sc4, sc4crgc, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 12)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2003, sc4crgcl ,sc4crgc, sc4, sc4crgc, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 13)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2003, sc4crgcm ,sc4crgc, sc4, sc4crgc, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 14)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2003, sc4crgco ,sc4crgc, sc4, sc4crgc, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 15)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2003, sc4crgcq ,sc4crgc, sc4, sc4crgc, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 16)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2003, sc4crgct ,sc4crgc, sc4, sc4crgc, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 17)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2003, sc4crgcw ,sc4crgc, sc4, sc4crgc, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 18)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR1348 CLUB COPS AND ROBBERS GOLD COPS & ROBRS GLD CLUB PR1348 CCRG SOUNDS11 COPS AND ROBBERS
-GAMEL( 2003, sc4crgcr ,sc4crgc, sc4, sc4crgc, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 21)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2003, sc4crgcu ,sc4crgc, sc4, sc4crgc, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 22)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2003, sc4crgcn ,sc4crgc, sc4, sc4crgc, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 19)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2003, sc4crgcp ,sc4crgc, sc4, sc4crgc, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 20)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2003, sc4crgcr ,sc4crgc, sc4, sc4crgc, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 21)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2003, sc4crgcu ,sc4crgc, sc4, sc4crgc, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 22)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2003, sc4crgcn ,sc4crgc, sc4, sc4crgc, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 19)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2003, sc4crgcp ,sc4crgc, sc4, sc4crgc, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 20)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR1348 !500 CLUB COPS AND ROBBERS GOLD COPS & ROBRS GLD CLUB PR1348 CCRG SOUNDS11 COPS AND ROBBERS
-GAMEL( 2003, sc4crgcs ,sc4crgc, sc4, sc4crgc, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 23)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 2003, sc4crgcv ,sc4crgc, sc4, sc4crgc, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 24)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2003, sc4crgcs ,sc4crgc, sc4, sc4crgc, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 23)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 2003, sc4crgcv ,sc4crgc, sc4, sc4crgc, sc4_state, sc4mbus, ROT0, "BFM","Cops 'n' Robbers Gold Club (Bellfruit) (Scorpion 4) (set 24)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -41795,12 +41795,12 @@ INPUT_PORTS_START( sc4cfcla ) // this structure is generated
INPUT_PORTS_END
// PR1396 CLASSIC CRAZY FRUITS PR1396 CLSIC CRAZY FRUITS SND11
-GAMEL( 200?, sc4cfcla ,0, sc4_3reel, sc4cfcla, sc4_state, sc4cfcla, ROT0, "BFM","Crazy Fruits Classic (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfclab ,sc4cfcla, sc4_3reel, sc4cfcla, sc4_state, sc4cfcla, ROT0, "BFM","Crazy Fruits Classic (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfclac ,sc4cfcla, sc4_3reel, sc4cfcla, sc4_state, sc4cfcla, ROT0, "BFM","Crazy Fruits Classic (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfclad ,sc4cfcla, sc4_3reel, sc4cfcla, sc4_state, sc4cfcla, ROT0, "BFM","Crazy Fruits Classic (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfclae ,sc4cfcla, sc4_3reel, sc4cfcla, sc4_state, sc4cfcla, ROT0, "BFM","Crazy Fruits Classic (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfclaf ,sc4cfcla, sc4_3reel, sc4cfcla, sc4_state, sc4cfcla, ROT0, "BFM","Crazy Fruits Classic (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcla ,0, sc4_3reel, sc4cfcla, sc4_state, sc4cfcla, ROT0, "BFM","Crazy Fruits Classic (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfclab ,sc4cfcla, sc4_3reel, sc4cfcla, sc4_state, sc4cfcla, ROT0, "BFM","Crazy Fruits Classic (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfclac ,sc4cfcla, sc4_3reel, sc4cfcla, sc4_state, sc4cfcla, ROT0, "BFM","Crazy Fruits Classic (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfclad ,sc4cfcla, sc4_3reel, sc4cfcla, sc4_state, sc4cfcla, ROT0, "BFM","Crazy Fruits Classic (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfclae ,sc4cfcla, sc4_3reel, sc4cfcla, sc4_state, sc4cfcla, ROT0, "BFM","Crazy Fruits Classic (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfclaf ,sc4cfcla, sc4_3reel, sc4cfcla, sc4_state, sc4cfcla, ROT0, "BFM","Crazy Fruits Classic (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4cfdu)
@@ -41865,10 +41865,10 @@ INPUT_PORTS_START( sc4cfdu ) // this structure is generated
INPUT_PORTS_END
// PR1107 CRAZY FRUITS DOWNUNDER PR1107 DOWN UNDER SOUNDS11
-GAMEL( 200?, sc4cfdu ,0, sc4_4reel_alt, sc4cfdu, sc4_state, sc4cfdu, ROT0, "BFM","Crazy Fruits Down Under (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfdua ,sc4cfdu, sc4_4reel_alt, sc4cfdu, sc4_state, sc4cfdu, ROT0, "BFM","Crazy Fruits Down Under (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfdub ,sc4cfdu, sc4_4reel_alt, sc4cfdu, sc4_state, sc4cfdu, ROT0, "BFM","Crazy Fruits Down Under (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfduc ,sc4cfdu, sc4_4reel_alt, sc4cfdu, sc4_state, sc4cfdu, ROT0, "BFM","Crazy Fruits Down Under (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfdu ,0, sc4_4reel_alt, sc4cfdu, sc4_state, sc4cfdu, ROT0, "BFM","Crazy Fruits Down Under (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfdua ,sc4cfdu, sc4_4reel_alt, sc4cfdu, sc4_state, sc4cfdu, ROT0, "BFM","Crazy Fruits Down Under (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfdub ,sc4cfdu, sc4_4reel_alt, sc4cfdu, sc4_state, sc4cfdu, ROT0, "BFM","Crazy Fruits Down Under (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfduc ,sc4cfdu, sc4_4reel_alt, sc4cfdu, sc4_state, sc4cfdu, ROT0, "BFM","Crazy Fruits Down Under (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4cfgcl)
@@ -41938,10 +41938,10 @@ INPUT_PORTS_START( sc4cfgcl ) // this structure is generated
INPUT_PORTS_END
// PR1620 CLUB CRAZY FRUITS GOLD PR1620 CRAZY SOUNDS11 CRAZY FRUITS CLUB
-GAMEL( 200?, sc4cfgcl ,0, sc4_5reel, sc4cfgcl, sc4_state, sc4cfgcl, ROT0, "BFM","Crazy Fruits Gold Club (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfgcla ,sc4cfgcl, sc4_5reel, sc4cfgcl, sc4_state, sc4cfgcl, ROT0, "BFM","Crazy Fruits Gold Club (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfgclb ,sc4cfgcl, sc4_5reel, sc4cfgcl, sc4_state, sc4cfgcl, ROT0, "BFM","Crazy Fruits Gold Club (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfgclc ,sc4cfgcl, sc4_5reel, sc4cfgcl, sc4_state, sc4cfgcl, ROT0, "BFM","Crazy Fruits Gold Club (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfgcl ,0, sc4_5reel, sc4cfgcl, sc4_state, sc4cfgcl, ROT0, "BFM","Crazy Fruits Gold Club (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfgcla ,sc4cfgcl, sc4_5reel, sc4cfgcl, sc4_state, sc4cfgcl, ROT0, "BFM","Crazy Fruits Gold Club (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfgclb ,sc4cfgcl, sc4_5reel, sc4cfgcl, sc4_state, sc4cfgcl, ROT0, "BFM","Crazy Fruits Gold Club (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfgclc ,sc4cfgcl, sc4_5reel, sc4cfgcl, sc4_state, sc4cfgcl, ROT0, "BFM","Crazy Fruits Gold Club (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4derby)
@@ -42012,12 +42012,12 @@ INPUT_PORTS_START( sc4derby ) // this structure is generated
INPUT_PORTS_END
// PR1006 DEMOLITION DERBY PR1006 DEMDERBY SOUNDS11
-GAMEL( 200?, sc4derby ,0, sc4_200_5r, sc4derby, sc4_state, sc4derby, ROT0, "BFM","Demolition Derby (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4derbya ,sc4derby, sc4_200_5r, sc4derby, sc4_state, sc4derby, ROT0, "BFM","Demolition Derby (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4derbyb ,sc4derby, sc4_200_5r, sc4derby, sc4_state, sc4derby, ROT0, "BFM","Demolition Derby (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4derbyc ,sc4derby, sc4_200_5r, sc4derby, sc4_state, sc4derby, ROT0, "BFM","Demolition Derby (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4derbyd ,sc4derby, sc4_200_5r, sc4derby, sc4_state, sc4derby, ROT0, "BFM","Demolition Derby (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4derbye ,sc4derby, sc4_200_5r, sc4derby, sc4_state, sc4derby, ROT0, "BFM","Demolition Derby (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4derby ,0, sc4_200_5r, sc4derby, sc4_state, sc4derby, ROT0, "BFM","Demolition Derby (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4derbya ,sc4derby, sc4_200_5r, sc4derby, sc4_state, sc4derby, ROT0, "BFM","Demolition Derby (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4derbyb ,sc4derby, sc4_200_5r, sc4derby, sc4_state, sc4derby, ROT0, "BFM","Demolition Derby (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4derbyc ,sc4derby, sc4_200_5r, sc4derby, sc4_state, sc4derby, ROT0, "BFM","Demolition Derby (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4derbyd ,sc4derby, sc4_200_5r, sc4derby, sc4_state, sc4derby, ROT0, "BFM","Demolition Derby (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4derbye ,sc4derby, sc4_200_5r, sc4derby, sc4_state, sc4derby, ROT0, "BFM","Demolition Derby (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4dbldm ) // this structure is generated
PORT_INCLUDE( sc4_base )
@@ -42069,7 +42069,7 @@ INPUT_PORTS_START( sc4dbldm ) // this structure is generated
INPUT_PORTS_END
// PR2558 DOUBLE DIAMOND 011 DOUBLEDIAMONDSND DOUBLE DIAMOND
-GAMEL( 200?, sc4dbldm ,0, sc4, sc4dbldm, sc4_state, sc4, ROT0, "Qps","Double Diamond (Qps) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dbldm ,0, sc4, sc4dbldm, sc4_state, sc4, ROT0, "Qps","Double Diamond (Qps) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4dyna ) // this structure is generated
PORT_INCLUDE( sc4_base )
@@ -42116,8 +42116,8 @@ INPUT_PORTS_START( sc4dyna ) // this structure is generated
INPUT_PORTS_END
// PR1104 DYNAMITE PR1104 DYNAMITE SOUNDS11
-GAMEL( 200?, sc4dyna ,0, sc4, sc4dyna, sc4_state, sc4, ROT0, "BFM","Dynamite (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4dynaa ,sc4dyna, sc4, sc4dyna, sc4_state, sc4, ROT0, "BFM","Dynamite (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dyna ,0, sc4, sc4dyna, sc4_state, sc4, ROT0, "BFM","Dynamite (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dynaa ,sc4dyna, sc4, sc4dyna, sc4_state, sc4, ROT0, "BFM","Dynamite (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4easy ) // this structure is generated
PORT_INCLUDE( sc4_base )
@@ -42182,13 +42182,13 @@ INPUT_PORTS_START( sc4easy ) // this structure is generated
INPUT_PORTS_END
// PR1017 EASY STREAK PR1017 EASY STREAK SOUNDS11 EASY STREAK
-GAMEL( 200?, sc4easy ,0, sc4, sc4easy, sc4_state, sc4, ROT0, "BFM","Easy Streak (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4easya ,sc4easy, sc4, sc4easy, sc4_state, sc4, ROT0, "BFM","Easy Streak (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4easyb ,sc4easy, sc4, sc4easy, sc4_state, sc4, ROT0, "BFM","Easy Streak (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4easyc ,sc4easy, sc4, sc4easy, sc4_state, sc4, ROT0, "BFM","Easy Streak (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4easyd ,sc4easy, sc4, sc4easy, sc4_state, sc4, ROT0, "BFM","Easy Streak (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4easye ,sc4easy, sc4, sc4easy, sc4_state, sc4, ROT0, "BFM","Easy Streak (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4easyf ,sc4easy, sc4, sc4easy, sc4_state, sc4, ROT0, "BFM","Easy Streak (Bellfruit) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4easy ,0, sc4, sc4easy, sc4_state, sc4, ROT0, "BFM","Easy Streak (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4easya ,sc4easy, sc4, sc4easy, sc4_state, sc4, ROT0, "BFM","Easy Streak (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4easyb ,sc4easy, sc4, sc4easy, sc4_state, sc4, ROT0, "BFM","Easy Streak (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4easyc ,sc4easy, sc4, sc4easy, sc4_state, sc4, ROT0, "BFM","Easy Streak (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4easyd ,sc4easy, sc4, sc4easy, sc4_state, sc4, ROT0, "BFM","Easy Streak (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4easye ,sc4easy, sc4, sc4easy, sc4_state, sc4, ROT0, "BFM","Easy Streak (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4easyf ,sc4easy, sc4, sc4easy, sc4_state, sc4, ROT0, "BFM","Easy Streak (Bellfruit) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4clbmn ) // this structure is generated
PORT_INCLUDE( sc4_base )
@@ -42250,10 +42250,10 @@ INPUT_PORTS_START( sc4clbmn ) // this structure is generated
INPUT_PORTS_END
//PROJECT NUMBER PR1955 CLUB MONEYBAGS MONEY BAGS CLUB PR1955 C M MONEYBAGS SOUNDS11 DEAL OR NO DEAL 5-10-20 10-20-30 20-30-50 30-50-100
-GAMEL( 200?, sc4clbmn ,0, sc4, sc4clbmn, sc4_state, sc4mbus, ROT0, "BFM","Club Moneybags (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4clbmna ,sc4clbmn, sc4, sc4clbmn, sc4_state, sc4mbus, ROT0, "BFM","Club Moneybags (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4clbmnb ,sc4clbmn, sc4, sc4clbmn, sc4_state, sc4mbus, ROT0, "BFM","Club Moneybags (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4clbmnc ,sc4clbmn, sc4, sc4clbmn, sc4_state, sc4mbus, ROT0, "BFM","Club Moneybags (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4clbmn ,0, sc4, sc4clbmn, sc4_state, sc4mbus, ROT0, "BFM","Club Moneybags (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4clbmna ,sc4clbmn, sc4, sc4clbmn, sc4_state, sc4mbus, ROT0, "BFM","Club Moneybags (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4clbmnb ,sc4clbmn, sc4, sc4clbmn, sc4_state, sc4mbus, ROT0, "BFM","Club Moneybags (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4clbmnc ,sc4clbmn, sc4, sc4clbmn, sc4_state, sc4mbus, ROT0, "BFM","Club Moneybags (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4boomb)
@@ -42325,8 +42325,8 @@ INPUT_PORTS_START( sc4boomb ) // this structure is generated
INPUT_PORTS_END
//PROJECT NUMBER PR3332 AWP MONOPOLY BOOM OR BUST S4 PR3307 MPOLY BOOM OR B SOUNDS11 BOOM OR BUST S.SITE
-GAMEL( 200?, sc4boomb ,0, sc4_5reel_alt, sc4boomb, sc4_state, sc4boomb, ROT0, "BFM","Monopoly Boom Or Bust (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4boomba ,sc4boomb, sc4_5reel_alt, sc4boomb, sc4_state, sc4boomb, ROT0, "BFM","Monopoly Boom Or Bust (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4boomb ,0, sc4_5reel_alt, sc4boomb, sc4_state, sc4boomb, ROT0, "BFM","Monopoly Boom Or Bust (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4boomba ,sc4boomb, sc4_5reel_alt, sc4boomb, sc4_state, sc4boomb, ROT0, "BFM","Monopoly Boom Or Bust (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4fever)
@@ -42399,16 +42399,16 @@ INPUT_PORTS_END
// we have FEVER SOUNDS12 but it accepts those?
// PR1007 FEVER PR1007 FEVER SOUNDS11
-GAMEL( 200?, sc4fever ,0, sc4_200_alta, sc4fever, sc4_state, sc4fever, ROT0, "BFM","Fever (PR1007) (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fevera ,sc4fever, sc4_200_alta, sc4fever, sc4_state, sc4fever, ROT0, "BFM","Fever (PR1007) (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4feverb ,sc4fever, sc4_200_alta, sc4fever, sc4_state, sc4fever, ROT0, "BFM","Fever (PR1007) (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4feverc ,sc4fever, sc4_200_alta, sc4fever, sc4_state, sc4fever, ROT0, "BFM","Fever (PR1007) (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4feverd ,sc4fever, sc4_200_alta, sc4fever, sc4_state, sc4fever, ROT0, "BFM","Fever (PR1007) (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fevere ,sc4fever, sc4_200_alta, sc4fever, sc4_state, sc4fever, ROT0, "BFM","Fever (PR1007) (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4feverf ,sc4fever, sc4_200_alta, sc4fever, sc4_state, sc4fever, ROT0, "BFM","Fever (PR1007) (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4feverg ,sc4fever, sc4_200_alta, sc4fever, sc4_state, sc4fever, ROT0, "BFM","Fever (PR1007) (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4feverh ,sc4fever, sc4_200_alta, sc4fever, sc4_state, sc4fever, ROT0, "BFM","Fever (PR1007) (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4feverk ,sc4fever, sc4_200_alta, sc4fever, sc4_state, sc4fever, ROT0, "BFM","Fever (PR1007) (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fever ,0, sc4_200_alta, sc4fever, sc4_state, sc4fever, ROT0, "BFM","Fever (PR1007) (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fevera ,sc4fever, sc4_200_alta, sc4fever, sc4_state, sc4fever, ROT0, "BFM","Fever (PR1007) (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4feverb ,sc4fever, sc4_200_alta, sc4fever, sc4_state, sc4fever, ROT0, "BFM","Fever (PR1007) (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4feverc ,sc4fever, sc4_200_alta, sc4fever, sc4_state, sc4fever, ROT0, "BFM","Fever (PR1007) (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4feverd ,sc4fever, sc4_200_alta, sc4fever, sc4_state, sc4fever, ROT0, "BFM","Fever (PR1007) (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fevere ,sc4fever, sc4_200_alta, sc4fever, sc4_state, sc4fever, ROT0, "BFM","Fever (PR1007) (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4feverf ,sc4fever, sc4_200_alta, sc4fever, sc4_state, sc4fever, ROT0, "BFM","Fever (PR1007) (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4feverg ,sc4fever, sc4_200_alta, sc4fever, sc4_state, sc4fever, ROT0, "BFM","Fever (PR1007) (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4feverh ,sc4fever, sc4_200_alta, sc4fever, sc4_state, sc4fever, ROT0, "BFM","Fever (PR1007) (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4feverk ,sc4fever, sc4_200_alta, sc4fever, sc4_state, sc4fever, ROT0, "BFM","Fever (PR1007) (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -42474,8 +42474,8 @@ INPUT_PORTS_START( sc4aztec ) // this structure is generated
// 0x0010 - "boekho" // standard input (expected here)
INPUT_PORTS_END
-GAMEL( 200?, sc4aztec ,0, sc4, sc4aztec, sc4_state, sc4aztec, ROT0, "BFG / Eurocoin","Aztec Casino (Dutch) (Bellfruit) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// PR1225 AZTEC CASINO
-GAMEL( 200?, sc4azteca ,sc4aztec, sc4, sc4, sc4_state, sc4aztec, ROT0, "BFG / Eurocoin","Aztec (Dutch) (Bellfruit) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR1215 AZTEC EURO
+GAMEL( 200?, sc4aztec ,0, sc4, sc4aztec, sc4_state, sc4aztec, ROT0, "BFG / Eurocoin","Aztec Casino (Dutch) (Bellfruit) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// PR1225 AZTEC CASINO
+GAMEL( 200?, sc4azteca ,sc4aztec, sc4, sc4, sc4_state, sc4aztec, ROT0, "BFG / Eurocoin","Aztec (Dutch) (Bellfruit) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR1215 AZTEC EURO
DRIVER_INIT_MEMBER(sc4_state,sc4helrd)
@@ -42538,8 +42538,8 @@ INPUT_PORTS_START( sc4helrd ) // this structure is generated
INPUT_PORTS_END
// PR1254 HELLRAISER ART12 95004326 HELLRAISER PR1254
-GAMEL( 200?, sc4helrd ,0, sc4_4reel, sc4helrd, sc4_state, sc4helrd, ROT0, "BFM","Hellraiser (Dutch) (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4helrs ,sc4helrd, sc4_4reel, sc4helrd, sc4_state, sc4helrd, ROT0, "BFM","Hellraiser (Dutch) (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4helrd ,0, sc4_4reel, sc4helrd, sc4_state, sc4helrd, ROT0, "BFM","Hellraiser (Dutch) (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4helrs ,sc4helrd, sc4_4reel, sc4helrd, sc4_state, sc4helrd, ROT0, "BFM","Hellraiser (Dutch) (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4heatw)
@@ -42601,7 +42601,7 @@ INPUT_PORTS_START( sc4heatw ) // this structure is generated
INPUT_PORTS_END
// PR1216 HEATWAVE ART 12 95004287 HEATWAVE PR1156
-GAMEL( 200?, sc4heatw ,0, sc4, sc4heatw, sc4_state, sc4heatw, ROT0, "BFM","Heatwave (Dutch) (Bellfruit) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4heatw ,0, sc4, sc4heatw, sc4_state, sc4heatw, ROT0, "BFM","Heatwave (Dutch) (Bellfruit) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -42666,7 +42666,7 @@ INPUT_PORTS_START( sc4colos ) // this structure is generated
INPUT_PORTS_END
// PR1208 COLOSSUS 95004235 COLOSSUS PR7155 COLOSSUS
-GAMEL( 200?, sc4colos ,0, sc4, sc4colos, sc4_state, sc4colos, ROT0, "BFM","Colossus (Dutch) (Bellfruit) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4colos ,0, sc4, sc4colos, sc4_state, sc4colos, ROT0, "BFM","Colossus (Dutch) (Bellfruit) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4fevdt)
{
@@ -42727,9 +42727,9 @@ INPUT_PORTS_START( sc4fevdt ) // this structure is generated
INPUT_PORTS_END
// PR1202 FEVER 95004239 FEVER PR7157
-GAMEL( 200?, sc4fevdt ,0, sc4, sc4fevdt, sc4_state, sc4fevdt, ROT0, "BFM","Fever (PR1202) (Dutch) (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fevdta ,sc4fevdt, sc4, sc4fevdt, sc4_state, sc4fevdt, ROT0, "BFM","Fever (PR1202) (Dutch) (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fevdtb ,sc4fevdt, sc4, sc4fevdt, sc4_state, sc4fevdt, ROT0, "BFM","Fever (PR1202) (Dutch) (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fevdt ,0, sc4, sc4fevdt, sc4_state, sc4fevdt, ROT0, "BFM","Fever (PR1202) (Dutch) (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fevdta ,sc4fevdt, sc4, sc4fevdt, sc4_state, sc4fevdt, ROT0, "BFM","Fever (PR1202) (Dutch) (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fevdtb ,sc4fevdt, sc4, sc4fevdt, sc4_state, sc4fevdt, ROT0, "BFM","Fever (PR1202) (Dutch) (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4fevnx)
@@ -42792,8 +42792,8 @@ INPUT_PORTS_START( sc4fevnx ) // this structure is generated
INPUT_PORTS_END
// PR1216 FEVER ART12 95004318 FEVER T N PR1251
-GAMEL( 200?, sc4fevnx ,0, sc4, sc4fevnx, sc4_state, sc4fevnx, ROT0, "BFM","Fever The Next (Dutch) (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fevnxa ,sc4fevnx, sc4, sc4fevnx, sc4_state, sc4fevnx, ROT0, "BFM","Fever The Next (Dutch) (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fevnx ,0, sc4, sc4fevnx, sc4_state, sc4fevnx, ROT0, "BFM","Fever The Next (Dutch) (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fevnxa ,sc4fevnx, sc4, sc4fevnx, sc4_state, sc4fevnx, ROT0, "BFM","Fever The Next (Dutch) (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4game)
{
@@ -42903,8 +42903,8 @@ INPUT_PORTS_START( sc4game ) // this structure is generated
// 0x0010 - "boekho" // standard input (expected here)
INPUT_PORTS_END
-GAMEL( 200?, sc4gamcs ,0, sc4_3reel, sc4gamcs, sc4_state, sc4game, ROT0, "BFM","The Game Casino (Dutch) (Bellfruit) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR1224 THE GAME CASINO 95004285 THEGAME PR1153
-GAMEL( 200?, sc4game ,sc4gamcs, sc4_3reel, sc4game, sc4_state, sc4game, ROT0, "BFM","The Game (Dutch) (Bellfruit) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR1213 THE GAME 95004285 THEGAME PR1153
+GAMEL( 200?, sc4gamcs ,0, sc4_3reel, sc4gamcs, sc4_state, sc4game, ROT0, "BFM","The Game Casino (Dutch) (Bellfruit) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR1224 THE GAME CASINO 95004285 THEGAME PR1153
+GAMEL( 200?, sc4game ,sc4gamcs, sc4_3reel, sc4game, sc4_state, sc4game, ROT0, "BFM","The Game (Dutch) (Bellfruit) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR1213 THE GAME 95004285 THEGAME PR1153
DRIVER_INIT_MEMBER(sc4_state,sc4goud)
{
@@ -42975,7 +42975,7 @@ INPUT_PORTS_END
// PR1211 GOUDKOORTS 95004288 GOUDKOORTS PR1151
-GAMEL( 200?, sc4goud ,0, sc4_200_5r, sc4goud, sc4_state, sc4goud, ROT0, "BFM","Goudkoorts (Dutch) (Bellfruit) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4goud ,0, sc4_200_5r, sc4goud, sc4_state, sc4goud, ROT0, "BFM","Goudkoorts (Dutch) (Bellfruit) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4lasv)
{
@@ -43027,8 +43027,8 @@ INPUT_PORTS_START( sc4lasv ) // this structure is generated
INPUT_PORTS_END
// PR1209 LAS VEGAS 95004261 LASVEGAS PR7159
-GAMEL( 200?, sc4lasv ,0, sc4, sc4lasv, sc4_state, sc4lasv, ROT0, "BFM","Las Vegas (Dutch) (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lasva ,sc4lasv, sc4, sc4lasv, sc4_state, sc4lasv, ROT0, "BFM","Las Vegas (Dutch) (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lasv ,0, sc4, sc4lasv, sc4_state, sc4lasv, ROT0, "BFM","Las Vegas (Dutch) (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lasva ,sc4lasv, sc4, sc4lasv, sc4_state, sc4lasv, ROT0, "BFM","Las Vegas (Dutch) (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4miljo)
{
@@ -43142,8 +43142,8 @@ INPUT_PORTS_START( sc4milja ) // this structure is generated
// 0x0010 - "boekho" // standard input (expected here)
INPUT_PORTS_END
-GAMEL( 200?, sc4miljo ,0, sc4, sc4miljo, sc4_state, sc4miljo, ROT0, "BFM","Miljonairs (Dutch) (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR1217 MILJONAIRSART12 95004305 MILJONAIRE PR1157
-GAMEL( 200?, sc4milja ,sc4miljo, sc4, sc4milja, sc4_state, sc4miljo, ROT0, "BFM","Miljonairs Arcade (Dutch) (Bellfruit) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR1223 MILJONAIRS 95004305 MILJONAIRE PR1157
+GAMEL( 200?, sc4miljo ,0, sc4, sc4miljo, sc4_state, sc4miljo, ROT0, "BFM","Miljonairs (Dutch) (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR1217 MILJONAIRSART12 95004305 MILJONAIRE PR1157
+GAMEL( 200?, sc4milja ,sc4miljo, sc4, sc4milja, sc4_state, sc4miljo, ROT0, "BFM","Miljonairs Arcade (Dutch) (Bellfruit) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR1223 MILJONAIRS 95004305 MILJONAIRE PR1157
DRIVER_INIT_MEMBER(sc4_state,sc4paytm)
{
@@ -43205,7 +43205,7 @@ INPUT_PORTS_START( sc4paytm ) // this structure is generated
INPUT_PORTS_END
// PR1205 PAY TIME 95004224 PAYTIME PR7156 PAY TIME
-GAMEL( 200?, sc4paytm ,0, sc4, sc4paytm, sc4_state, sc4paytm, ROT0, "BFM","Pay Time (Dutch) (Bellfruit) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4paytm ,0, sc4, sc4paytm, sc4_state, sc4paytm, ROT0, "BFM","Pay Time (Dutch) (Bellfruit) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4pglcs)
@@ -43263,9 +43263,9 @@ INPUT_PORTS_START( sc4pglcs ) // this structure is generated
INPUT_PORTS_END
// PR1261 PHARAOH'S GOLD 95004316 CAS PHAR GOLD PR1261
-GAMEL( 200?, sc4pglcs ,0, sc4_3reel, sc4pglcs, sc4_state, sc4pglcs, ROT0, "BFM","Pharaoh's Gold Casino (Dutch) (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pglcsa ,sc4pglcs, sc4_3reel, sc4pglcs, sc4_state, sc4pglcs, ROT0, "BFM","Pharaoh's Gold Casino (Dutch) (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pglcsb ,sc4pglcs, sc4_3reel, sc4pglcs, sc4_state, sc4pglcs, ROT0, "BFM","Pharaoh's Gold Casino (Dutch) (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pglcs ,0, sc4_3reel, sc4pglcs, sc4_state, sc4pglcs, ROT0, "BFM","Pharaoh's Gold Casino (Dutch) (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pglcsa ,sc4pglcs, sc4_3reel, sc4pglcs, sc4_state, sc4pglcs, ROT0, "BFM","Pharaoh's Gold Casino (Dutch) (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pglcsb ,sc4pglcs, sc4_3reel, sc4pglcs, sc4_state, sc4pglcs, ROT0, "BFM","Pharaoh's Gold Casino (Dutch) (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4redad)
@@ -43328,8 +43328,8 @@ INPUT_PORTS_START( sc4redad ) // this structure is generated
INPUT_PORTS_END
// PR1206 RED ALERT 95004266 REDALERT PR1051
-GAMEL( 200?, sc4redad ,0, sc4, sc4redad, sc4_state, sc4redad, ROT0, "BFM","Red Alert (Dutch) (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4redada ,sc4redad, sc4, sc4redad, sc4_state, sc4redad, ROT0, "BFM","Red Alert (Dutch) (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4redad ,0, sc4, sc4redad, sc4_state, sc4redad, ROT0, "BFM","Red Alert (Dutch) (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4redada ,sc4redad, sc4, sc4redad, sc4_state, sc4redad, ROT0, "BFM","Red Alert (Dutch) (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4rvlnx)
@@ -43390,7 +43390,7 @@ INPUT_PORTS_START( sc4rvlnx ) // this structure is generated
INPUT_PORTS_END
// PR1252 REVOLUTION NEXT 95004320 REVOLUTIONTN PR1252
-GAMEL( 200?, sc4rvlnx ,0, sc4_200_5r, sc4rvlnx, sc4_state, sc4rvlnx, ROT0, "BFM","Revolution The Next (Dutch) (Bellfruit) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rvlnx ,0, sc4_200_5r, sc4rvlnx, sc4_state, sc4rvlnx, ROT0, "BFM","Revolution The Next (Dutch) (Bellfruit) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4rvl)
{
@@ -43453,7 +43453,7 @@ INPUT_PORTS_START( sc4rvl ) // this structure is generated
INPUT_PORTS_END
// PR1203 REVOLUTION 95004259 REVOLUTION PR7158
-GAMEL( 200?, sc4rvl ,0, sc4_200_5r, sc4rvl, sc4_state, sc4rvl, ROT0, "BFM","Revolution (Dutch) (Bellfruit) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rvl ,0, sc4_200_5r, sc4rvl, sc4_state, sc4rvl, ROT0, "BFM","Revolution (Dutch) (Bellfruit) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4rio)
{
@@ -43515,7 +43515,7 @@ INPUT_PORTS_START( sc4rio ) // this structure is generated
INPUT_PORTS_END
// PR1222 RIO GRANDE 95004309 RIO GRANDE SOUNDS11
-GAMEL( 200?, sc4rio ,0, sc4, sc4rio, sc4_state, sc4rio, ROT0, "BFM","Rio Grande (Dutch) (Bellfruit) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rio ,0, sc4, sc4rio, sc4_state, sc4rio, ROT0, "BFM","Rio Grande (Dutch) (Bellfruit) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4strbr)
@@ -43633,12 +43633,12 @@ INPUT_PORTS_START( sc4strbra ) // this structure is generated
INPUT_PORTS_END
// PR1219 STARS 'N BARS 95004290 STARSNBARS PR1159
-GAMEL( 200?, sc4strbr ,0, sc4, sc4strbr, sc4_state, sc4strbr, ROT0, "BFM","Stars 'n' Bars (PR1219) (Dutch) (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4strbrb ,sc4strbr, sc4, sc4strbr, sc4_state, sc4strbr, ROT0, "BFM","Stars 'n' Bars (PR1219) (Dutch) (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4strbr ,0, sc4, sc4strbr, sc4_state, sc4strbr, ROT0, "BFM","Stars 'n' Bars (PR1219) (Dutch) (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4strbrb ,sc4strbr, sc4, sc4strbr, sc4_state, sc4strbr, ROT0, "BFM","Stars 'n' Bars (PR1219) (Dutch) (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR1263 SNBA ART13 STARS 'N' BARS ARCADE - ART13 95004290 STARSNBARS PR1159
-GAMEL( 200?, sc4strbra ,sc4strbr, sc4, sc4strbra, sc4_state, sc4strbr, ROT0, "BFM","Stars 'n' Bars Arcade (PR1263) (Dutch) (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4strbrc ,sc4strbr, sc4, sc4strbra, sc4_state, sc4strbr, ROT0, "BFM","Stars 'n' Bars Arcade (PR1263) (Dutch) (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4strbrd ,sc4strbr, sc4, sc4strbra, sc4_state, sc4strbr, ROT0, "BFM","Stars 'n' Bars Arcade (PR1263) (Dutch) (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4strbra ,sc4strbr, sc4, sc4strbra, sc4_state, sc4strbr, ROT0, "BFM","Stars 'n' Bars Arcade (PR1263) (Dutch) (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4strbrc ,sc4strbr, sc4, sc4strbra, sc4_state, sc4strbr, ROT0, "BFM","Stars 'n' Bars Arcade (PR1263) (Dutch) (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4strbrd ,sc4strbr, sc4, sc4strbra, sc4_state, sc4strbr, ROT0, "BFM","Stars 'n' Bars Arcade (PR1263) (Dutch) (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4twilt)
@@ -43702,7 +43702,7 @@ INPUT_PORTS_START( sc4twilt ) // this structure is generated
INPUT_PORTS_END
// PR1214 TWILIGHT 95004299 TWILIGHT PR1154
-GAMEL( 200?, sc4twilt ,0, sc4_4reel, sc4twilt, sc4_state, sc4twilt, ROT0, "BFM","Twilight (Dutch) (Bellfruit) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4twilt ,0, sc4_4reel, sc4twilt, sc4_state, sc4twilt, ROT0, "BFM","Twilight (Dutch) (Bellfruit) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4monsp)
@@ -43765,7 +43765,7 @@ INPUT_PORTS_START( sc4monsp ) // this structure is generated
INPUT_PORTS_END
// PR1218 MONEY SPINNER ART12 95004291 MONEYSPINNER PR1158
-GAMEL( 200?, sc4monsp ,0, sc4_200_5r, sc4monsp, sc4_state, sc4monsp, ROT0, "BFM","Money Spinner (Dutch) (Bellfruit) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4monsp ,0, sc4_200_5r, sc4monsp, sc4_state, sc4monsp, ROT0, "BFM","Money Spinner (Dutch) (Bellfruit) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -43831,7 +43831,7 @@ INPUT_PORTS_END
// PR1227 4PLAY ART13 95004313 4PLAY PR1227
-GAMEL( 200?, sc4ivply ,0, sc4_4reel, sc4ivply, sc4_state, sc4ivply, ROT0, "BFM","4 Play (Dutch) (Bellfruit) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ivply ,0, sc4_4reel, sc4ivply, sc4_state, sc4ivply, ROT0, "BFM","4 Play (Dutch) (Bellfruit) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4ccc)
@@ -43896,7 +43896,7 @@ INPUT_PORTS_START( sc4ccc ) // this structure is generated
INPUT_PORTS_END
// PR1221 CRISSCROSSCRAZY ART13 95004282 CRISSCROSS PR1161
-GAMEL( 200?, sc4ccc ,0, sc4_4reel, sc4ccc, sc4_state, sc4ccc, ROT0, "BFM","Criss Cross Crazy (Dutch) (Bellfruit) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ccc ,0, sc4_4reel, sc4ccc, sc4_state, sc4ccc, ROT0, "BFM","Criss Cross Crazy (Dutch) (Bellfruit) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4valqp)
@@ -43958,7 +43958,7 @@ INPUT_PORTS_START( sc4valqp ) // this structure is generated
INPUT_PORTS_END
// PR2040E VALHALLA...PR2040 SOUNDS V1.... (non-standard header)
-GAMEL( 200?, sc4valqp ,0, sc4_3reel, sc4valqp, sc4_state, sc4valqp, ROT0, "Qps / Eurocoin","Valhalla (Dutch) (Qps) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4valqp ,0, sc4_3reel, sc4valqp, sc4_state, sc4valqp, ROT0, "Qps / Eurocoin","Valhalla (Dutch) (Qps) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4winxp)
@@ -44021,7 +44021,7 @@ INPUT_PORTS_START( sc4winxp ) // this structure is generated
INPUT_PORTS_END
// PR1207 WIN XPLOSION 95004265 WINXPLOSION PR1053
-GAMEL( 200?, sc4winxp ,0, sc4_4reel, sc4winxp, sc4_state, sc4winxp, ROT0, "BFM","Win X-plosion (Dutch) (Bellfruit) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4winxp ,0, sc4_4reel, sc4winxp, sc4_state, sc4winxp, ROT0, "BFM","Win X-plosion (Dutch) (Bellfruit) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4xcash)
@@ -44079,7 +44079,7 @@ INPUT_PORTS_START( sc4xcash ) // this structure is generated
INPUT_PORTS_END
// PR1264 XTRA CASH ART13 XTRA CASH CASINO (LOTECH) - ART13 95004321 XTRACASH PR1264
-GAMEL( 200?, sc4xcash ,0, sc4_3reel, sc4xcash, sc4_state, sc4xcash, ROT0, "BFM","Xtra Cash Casino (Dutch) (Bellfruit) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4xcash ,0, sc4_3reel, sc4xcash, sc4_state, sc4xcash, ROT0, "BFM","Xtra Cash Casino (Dutch) (Bellfruit) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4helld)
{
@@ -44141,7 +44141,7 @@ INPUT_PORTS_START( sc4helld ) // this structure is generated
INPUT_PORTS_END
// PR1201 HELLS BELLS 95004211 HELLS BELLS PR6945 HELLS BELLS (non english?)
-GAMEL( 200?, sc4helld ,0, sc4_3reel, sc4helld, sc4_state, sc4helld, ROT0, "BFM / Eurocoin","Hells Bells (PR1201) (Dutch) (Bellfruit) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4helld ,0, sc4_3reel, sc4helld, sc4_state, sc4helld, ROT0, "BFM / Eurocoin","Hells Bells (PR1201) (Dutch) (Bellfruit) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4cashn)
{
@@ -44202,7 +44202,7 @@ INPUT_PORTS_END
// PR2038E Dutch12 Cashanova (not a standard string)
-GAMEL( 200?, sc4cashn ,0, sc4_3reel, sc4cashn, sc4_state, sc4cashn, ROT0, "Mazooma / Eurocoin","Cashanova (Dutch) (Mazooma / Eurocoin) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cashn ,0, sc4_3reel, sc4cashn, sc4_state, sc4cashn, ROT0, "Mazooma / Eurocoin","Cashanova (Dutch) (Mazooma / Eurocoin) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4czfra)
@@ -44266,7 +44266,7 @@ INPUT_PORTS_START( sc4czfra ) // this structure is generated
INPUT_PORTS_END
// PR1212 CRAZY FRUITS PR1152 CRAZY FRUITS SOUNDS11
-GAMEL( 200?, sc4czfra ,0, sc4_5reel, sc4czfra, sc4_state, sc4czfra, ROT0, "BFM","Crazy Fruits (Dutch) (PR1212, CRAZ) (Bellfruit) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4czfra ,0, sc4_5reel, sc4czfra, sc4_state, sc4czfra, ROT0, "BFM","Crazy Fruits (Dutch) (PR1212, CRAZ) (Bellfruit) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -44339,8 +44339,8 @@ INPUT_PORTS_END
// PAY UNIT ERR 17
// PR1611 AWP ANT AND DECS PR1611 ANT AND DECS SOUNDS11 ANT AND DECS S.SITE
-GAMEL( 200?, sc4adsnt ,0, sc4, sc4adsnt, sc4_state, sc4, ROT0, "BFM","Ant & Dec's Saturday Night Takeaway (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4adsnta ,sc4adsnt, sc4, sc4adsnt, sc4_state, sc4, ROT0, "BFM","Ant & Dec's Saturday Night Takeaway (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4adsnt ,0, sc4, sc4adsnt, sc4_state, sc4, ROT0, "BFM","Ant & Dec's Saturday Night Takeaway (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4adsnta ,sc4adsnt, sc4, sc4adsnt, sc4_state, sc4, ROT0, "BFM","Ant & Dec's Saturday Night Takeaway (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4slad ) // this structure is generated
PORT_INCLUDE( sc4_base )
@@ -44400,15 +44400,15 @@ INPUT_PORTS_END
// PAY UNIT ERR 17
// PR1411 AWP SNAKES AND LADDERS PR1411 SNAKES A L SOUNDS11 SNAKES & LADDERS S.SITE
-GAMEL( 200?, sc4slad ,0, sc4, sc4slad, sc4_state, sc4, ROT0, "BFM","Snakes & Ladders (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4slada ,sc4slad, sc4, sc4slad, sc4_state, sc4, ROT0, "BFM","Snakes & Ladders (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4sladb ,sc4slad, sc4, sc4slad, sc4_state, sc4, ROT0, "BFM","Snakes & Ladders (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4sladc ,sc4slad, sc4, sc4slad, sc4_state, sc4, ROT0, "BFM","Snakes & Ladders (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4sladd ,sc4slad, sc4, sc4slad, sc4_state, sc4, ROT0, "BFM","Snakes & Ladders (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4slade ,sc4slad, sc4, sc4slad, sc4_state, sc4, ROT0, "BFM","Snakes & Ladders (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4sladf ,sc4slad, sc4, sc4slad, sc4_state, sc4, ROT0, "BFM","Snakes & Ladders (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4sladg ,sc4slad, sc4, sc4slad, sc4_state, sc4, ROT0, "BFM","Snakes & Ladders (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4sladh ,sc4slad, sc4, sc4slad, sc4_state, sc4, ROT0, "BFM","Snakes & Ladders (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4slad ,0, sc4, sc4slad, sc4_state, sc4, ROT0, "BFM","Snakes & Ladders (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4slada ,sc4slad, sc4, sc4slad, sc4_state, sc4, ROT0, "BFM","Snakes & Ladders (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sladb ,sc4slad, sc4, sc4slad, sc4_state, sc4, ROT0, "BFM","Snakes & Ladders (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sladc ,sc4slad, sc4, sc4slad, sc4_state, sc4, ROT0, "BFM","Snakes & Ladders (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sladd ,sc4slad, sc4, sc4slad, sc4_state, sc4, ROT0, "BFM","Snakes & Ladders (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4slade ,sc4slad, sc4, sc4slad, sc4_state, sc4, ROT0, "BFM","Snakes & Ladders (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sladf ,sc4slad, sc4, sc4slad, sc4_state, sc4, ROT0, "BFM","Snakes & Ladders (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sladg ,sc4slad, sc4, sc4slad, sc4_state, sc4, ROT0, "BFM","Snakes & Ladders (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sladh ,sc4slad, sc4, sc4slad, sc4_state, sc4, ROT0, "BFM","Snakes & Ladders (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4magci ) // this structure is generated
PORT_INCLUDE( sc4_base )
@@ -44453,37 +44453,37 @@ INPUT_PORTS_END
// PAY UNIT ERR 17
// PR2535 MAGIC CIRCLE STANDARD 011 MAGICSND
-GAMEL( 200?, sc4magci ,0, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (011) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4magcik ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (011) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4magci ,0, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (011) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4magcik ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (011) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2535 MAGIC CIRCLE STANDARD 021 MAGICSND
-GAMEL( 200?, sc4magcia ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (021) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4magcil ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (021) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4magcia ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (021) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4magcil ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (021) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2535 MAGIC CIRCLE STANDARD 031 MAGICSND
-GAMEL( 200?, sc4magcib ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (031) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4magcim ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (031) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4magcib ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (031) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4magcim ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (031) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2535 MAGIC CIRCLE STANDARD 012 MAGICSND
-GAMEL( 200?, sc4magcic ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (012) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4magcin ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (012) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4magcid ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (012) (Qps) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4magcio ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (012) (Qps) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4magcic ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (012) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4magcin ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (012) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4magcid ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (012) (Qps) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4magcio ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (012) (Qps) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
//P R2535 MAGIC CIRCLE STANDARD 022 MAGICSND
-GAMEL( 200?, sc4magcie ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (022) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4magcip ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (022) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4magcie ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (022) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4magcip ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (022) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2535 MAGIC CIRCLE STANDARD 032 MAGICSND
-GAMEL( 200?, sc4magcif ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (032) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4magciq ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (032) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4magcif ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (032) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4magciq ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (032) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2535 MAGIC CIRCLE STANDARD 013 MAGICSND
-GAMEL( 200?, sc4magcig ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (013) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4magcir ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (013) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4magcig ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (013) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4magcir ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (013) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2535 MAGIC CIRCLE STANDARD 014 MAGICSND
-GAMEL( 200?, sc4magcih ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (014) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4magcis ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (014) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4magcih ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (014) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4magcis ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (014) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2535 MAGIC CIRCLE STANDARD 024 MAGICSND
-GAMEL( 200?, sc4magcii ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (024) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4magcit ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (024) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4magcii ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (024) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4magcit ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (024) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2535 MAGIC CIRCLE STANDARD 034 MAGICSND
-GAMEL( 200?, sc4magcij ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (034) (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4magciu ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (034) (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4magcij ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (034) (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4magciu ,sc4magci, sc4, sc4magci, sc4_state, sc4, ROT0, "Qps","Magic Circle (034) (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4dcrls ) // this structure is generated
PORT_INCLUDE( sc4_base )
@@ -44528,23 +44528,23 @@ INPUT_PORTS_END
// PAY UNIT ERR 17
// PR2544 DOUBLE CRAZY REELS 021 DCRZYSND
-GAMEL( 200?, sc4dcrls ,0, sc4, sc4dcrls, sc4_state, sc4, ROT0, "Mazooma","Double Crazy Reels (021) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4dcrlsf ,sc4dcrls, sc4, sc4dcrls, sc4_state, sc4, ROT0, "Mazooma","Double Crazy Reels (021) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dcrls ,0, sc4, sc4dcrls, sc4_state, sc4, ROT0, "Mazooma","Double Crazy Reels (021) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dcrlsf ,sc4dcrls, sc4, sc4dcrls, sc4_state, sc4, ROT0, "Mazooma","Double Crazy Reels (021) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2544 DOUBLE CRAZY REELS 031 DCRZYSND
-GAMEL( 200?, sc4dcrlsa ,sc4dcrls, sc4, sc4dcrls, sc4_state, sc4, ROT0, "Mazooma","Double Crazy Reels (031) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4dcrlsg ,sc4dcrls, sc4, sc4dcrls, sc4_state, sc4, ROT0, "Mazooma","Double Crazy Reels (031) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dcrlsa ,sc4dcrls, sc4, sc4dcrls, sc4_state, sc4, ROT0, "Mazooma","Double Crazy Reels (031) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dcrlsg ,sc4dcrls, sc4, sc4dcrls, sc4_state, sc4, ROT0, "Mazooma","Double Crazy Reels (031) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2544 DOUBLE CRAZY REELS 022 DCRZYSND
-GAMEL( 200?, sc4dcrlsb ,sc4dcrls, sc4, sc4dcrls, sc4_state, sc4, ROT0, "Mazooma","Double Crazy Reels (022) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4dcrlsh ,sc4dcrls, sc4, sc4dcrls, sc4_state, sc4, ROT0, "Mazooma","Double Crazy Reels (022) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dcrlsb ,sc4dcrls, sc4, sc4dcrls, sc4_state, sc4, ROT0, "Mazooma","Double Crazy Reels (022) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dcrlsh ,sc4dcrls, sc4, sc4dcrls, sc4_state, sc4, ROT0, "Mazooma","Double Crazy Reels (022) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2544 DOUBLE CRAZY REELS 032 DCRZYSND
-GAMEL( 200?, sc4dcrlsc ,sc4dcrls, sc4, sc4dcrls, sc4_state, sc4, ROT0, "Mazooma","Double Crazy Reels (032) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4dcrlsi ,sc4dcrls, sc4, sc4dcrls, sc4_state, sc4, ROT0, "Mazooma","Double Crazy Reels (032) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dcrlsc ,sc4dcrls, sc4, sc4dcrls, sc4_state, sc4, ROT0, "Mazooma","Double Crazy Reels (032) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dcrlsi ,sc4dcrls, sc4, sc4dcrls, sc4_state, sc4, ROT0, "Mazooma","Double Crazy Reels (032) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2544 DOUBLE CRAZY REELS 023 DCRZYSND
-GAMEL( 200?, sc4dcrlsd ,sc4dcrls, sc4, sc4dcrls, sc4_state, sc4, ROT0, "Mazooma","Double Crazy Reels (023) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4dcrlsj ,sc4dcrls, sc4, sc4dcrls, sc4_state, sc4, ROT0, "Mazooma","Double Crazy Reels (023) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dcrlsd ,sc4dcrls, sc4, sc4dcrls, sc4_state, sc4, ROT0, "Mazooma","Double Crazy Reels (023) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dcrlsj ,sc4dcrls, sc4, sc4dcrls, sc4_state, sc4, ROT0, "Mazooma","Double Crazy Reels (023) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2544 DOUBLE CRAZY REELS 033 DCRZYSND
-GAMEL( 200?, sc4dcrlse ,sc4dcrls, sc4, sc4dcrls, sc4_state, sc4, ROT0, "Mazooma","Double Crazy Reels (033) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4dcrlsk ,sc4dcrls, sc4, sc4dcrls, sc4_state, sc4, ROT0, "Mazooma","Double Crazy Reels (033) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dcrlse ,sc4dcrls, sc4, sc4dcrls, sc4_state, sc4, ROT0, "Mazooma","Double Crazy Reels (033) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dcrlsk ,sc4dcrls, sc4, sc4dcrls, sc4_state, sc4, ROT0, "Mazooma","Double Crazy Reels (033) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4gshot ) // this structure is generated
PORT_INCLUDE( sc4_base )
@@ -44589,11 +44589,11 @@ INPUT_PORTS_END
// PAY UNIT ERR 17
// PR2564 GOLDEN SHOT Standard Version GOLDENSHOTLOTECHSND
-GAMEL( 200?, sc4gshot ,0, sc4, sc4gshot, sc4_state, sc4, ROT0, "Qps","Golden Shot (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gshotb ,sc4gshot, sc4, sc4gshot, sc4_state, sc4, ROT0, "Qps","Golden Shot (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gshot ,0, sc4, sc4gshot, sc4_state, sc4, ROT0, "Qps","Golden Shot (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gshotb ,sc4gshot, sc4, sc4gshot, sc4_state, sc4, ROT0, "Qps","Golden Shot (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2564 GOLDEN SHOT Arcade Version GOLDENSHOTLOTECHSND
-GAMEL( 200?, sc4gshota ,sc4gshot, sc4, sc4gshot, sc4_state, sc4, ROT0, "Qps","Golden Shot Arcade (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gshotc ,sc4gshot, sc4, sc4gshot, sc4_state, sc4, ROT0, "Qps","Golden Shot Arcade (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gshota ,sc4gshot, sc4, sc4gshot, sc4_state, sc4, ROT0, "Qps","Golden Shot Arcade (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gshotc ,sc4gshot, sc4, sc4gshot, sc4_state, sc4, ROT0, "Qps","Golden Shot Arcade (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4cj ) // this structure is generated
PORT_INCLUDE( sc4_base )
@@ -44660,11 +44660,11 @@ INPUT_PORTS_END
// PAY UNIT ERR 17
// PR1416 COOL JEWELS PR1416 COOL JEWELS SOUNDS11 COOL JEWELS S.SITE
-GAMEL( 200?, sc4cj ,0, sc4, sc4cj, sc4_state, sc4, ROT0, "BFM","Cool Jewels (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cja ,sc4cj, sc4, sc4cj, sc4_state, sc4, ROT0, "BFM","Cool Jewels (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cjb ,sc4cj, sc4, sc4cj, sc4_state, sc4, ROT0, "BFM","Cool Jewels (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cjc ,sc4cj, sc4, sc4cj, sc4_state, sc4, ROT0, "BFM","Cool Jewels (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cjd ,sc4cj, sc4, sc4cj, sc4_state, sc4, ROT0, "BFM","Cool Jewels (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // incomplete pairing
+GAMEL( 200?, sc4cj ,0, sc4, sc4cj, sc4_state, sc4, ROT0, "BFM","Cool Jewels (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cja ,sc4cj, sc4, sc4cj, sc4_state, sc4, ROT0, "BFM","Cool Jewels (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cjb ,sc4cj, sc4, sc4cj, sc4_state, sc4, ROT0, "BFM","Cool Jewels (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cjc ,sc4cj, sc4, sc4cj, sc4_state, sc4, ROT0, "BFM","Cool Jewels (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cjd ,sc4cj, sc4, sc4cj, sc4_state, sc4, ROT0, "BFM","Cool Jewels (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // incomplete pairing
INPUT_PORTS_START( sc4crnjw ) // this structure is generated
PORT_INCLUDE( sc4_base )
@@ -44733,8 +44733,8 @@ INPUT_PORTS_END
// PAY UNIT ERROR 17
// PR1638 AWP CROWN JEWELS PR1608 CROWN JEWELS SOUNDS11 CROWN JEWELS S.SITE
-GAMEL( 200?, sc4crnjw ,0, sc4, sc4crnjw, sc4_state, sc4, ROT0, "BFM","Crown Jewels (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crnjwa ,sc4crnjw, sc4, sc4crnjw, sc4_state, sc4, ROT0, "BFM","Crown Jewels (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crnjw ,0, sc4, sc4crnjw, sc4_state, sc4, ROT0, "BFM","Crown Jewels (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crnjwa ,sc4crnjw, sc4, sc4crnjw, sc4_state, sc4, ROT0, "BFM","Crown Jewels (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4jjok ) // this structure is generated
PORT_INCLUDE( sc4_base )
@@ -44805,8 +44805,8 @@ INPUT_PORTS_END
// PAY UNIT ERR 17
// PR1609 JACKPOT JOKERS PR1609 JACKPOT JOKERS SOUNDS11 JACKPOT JOKERS S.SITE
-GAMEL( 200?, sc4jjok ,0, sc4, sc4jjok, sc4_state, sc4, ROT0, "BFM","Jackpot Jokers (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jjoka ,sc4jjok, sc4, sc4jjok, sc4_state, sc4, ROT0, "BFM","Jackpot Jokers (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jjok ,0, sc4, sc4jjok, sc4_state, sc4, ROT0, "BFM","Jackpot Jokers (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jjoka ,sc4jjok, sc4, sc4jjok, sc4_state, sc4, ROT0, "BFM","Jackpot Jokers (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4copsr ) // this structure is generated
@@ -44867,16 +44867,16 @@ INPUT_PORTS_END
// PAY UNIT ERR 17
// PR1412 AWP COPS AND ROBBERS PR1412 COPS AND ROBBERS SOUNDS11 COPS AND ROBBERS S.SITE
-GAMEL( 200?, sc4copsr ,0, sc4, sc4copsr, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4copsra ,sc4copsr, sc4, sc4copsr, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4copsrb ,sc4copsr, sc4, sc4copsr, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4copsrc ,sc4copsr, sc4, sc4copsr, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4copsrd ,sc4copsr, sc4, sc4copsr, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4copsre ,sc4copsr, sc4, sc4copsr, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4copsrf ,sc4copsr, sc4, sc4copsr, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4copsrg ,sc4copsr, sc4, sc4copsr, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4copsrh ,sc4copsr, sc4, sc4copsr, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4copsri ,sc4copsr, sc4, sc4copsr, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4copsr ,0, sc4, sc4copsr, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4copsra ,sc4copsr, sc4, sc4copsr, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4copsrb ,sc4copsr, sc4, sc4copsr, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4copsrc ,sc4copsr, sc4, sc4copsr, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4copsrd ,sc4copsr, sc4, sc4copsr, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4copsre ,sc4copsr, sc4, sc4copsr, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4copsrf ,sc4copsr, sc4, sc4copsr, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4copsrg ,sc4copsr, sc4, sc4copsr, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4copsrh ,sc4copsr, sc4, sc4copsr, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4copsri ,sc4copsr, sc4, sc4copsr, sc4_state, sc4, ROT0, "BFM","Cops 'n' Robbers (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4druby ) // this structure is generated
PORT_INCLUDE( sc4_base )
@@ -44936,11 +44936,11 @@ INPUT_PORTS_END
// gives an 'init comms' countdown
// PR1439 DIAMONDS & RUBIES PR1436 TRIPLE CASINO SOUNDS11
-GAMEL( 200?, sc4druby ,0, sc4, sc4druby, sc4_state, sc4, ROT0, "BFM","Diamonds & Rubies (Bellfruit) (Scorpion 4) (Top Box?, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4drubya ,sc4druby, sc4, sc4druby, sc4_state, sc4, ROT0, "BFM","Diamonds & Rubies (Bellfruit) (Scorpion 4) (Top Box?, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4drubyb ,sc4druby, sc4, sc4druby, sc4_state, sc4, ROT0, "BFM","Diamonds & Rubies (Bellfruit) (Scorpion 4) (Top Box?, set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // incomplete pairing
-GAMEL( 200?, sc4drubyc ,sc4druby, sc4, sc4druby, sc4_state, sc4, ROT0, "BFM","Diamonds & Rubies (Bellfruit) (Scorpion 4) (Top Box?, set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4drubyd ,sc4druby, sc4, sc4druby, sc4_state, sc4, ROT0, "BFM","Diamonds & Rubies (Bellfruit) (Scorpion 4) (Top Box?, set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4druby ,0, sc4, sc4druby, sc4_state, sc4, ROT0, "BFM","Diamonds & Rubies (Bellfruit) (Scorpion 4) (Top Box?, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4drubya ,sc4druby, sc4, sc4druby, sc4_state, sc4, ROT0, "BFM","Diamonds & Rubies (Bellfruit) (Scorpion 4) (Top Box?, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4drubyb ,sc4druby, sc4, sc4druby, sc4_state, sc4, ROT0, "BFM","Diamonds & Rubies (Bellfruit) (Scorpion 4) (Top Box?, set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // incomplete pairing
+GAMEL( 200?, sc4drubyc ,sc4druby, sc4, sc4druby, sc4_state, sc4, ROT0, "BFM","Diamonds & Rubies (Bellfruit) (Scorpion 4) (Top Box?, set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4drubyd ,sc4druby, sc4, sc4druby, sc4_state, sc4, ROT0, "BFM","Diamonds & Rubies (Bellfruit) (Scorpion 4) (Top Box?, set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
/****************************************************************************************************************************************************************************************************************/
@@ -45013,12 +45013,12 @@ INPUT_PORTS_END
// missing sound roms
// PR2540 ABRACADABRA ABRA SOUNDS ABRACADABRA
-GAMEL( 200?, sc4abra ,0, sc4_200_4r, sc4abra, sc4_state, sc4abra, ROT0, "Qps","Abracadabra (Qps) (Scorpion 4) (set 1, 041)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4abraa ,sc4abra, sc4_200_4r, sc4abra, sc4_state, sc4abra, ROT0, "Qps","Abracadabra (Qps) (Scorpion 4) (set 2, 041)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4abrab ,sc4abra, sc4_200_4r, sc4abra, sc4_state, sc4abra, ROT0, "Qps","Abracadabra (Qps) (Scorpion 4) (set 3, 044)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4abrac ,sc4abra, sc4_200_4r, sc4abra, sc4_state, sc4abra, ROT0, "Qps","Abracadabra (Qps) (Scorpion 4) (set 4, 044)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4abrad ,sc4abra, sc4_200_4r, sc4abra, sc4_state, sc4abra, ROT0, "Qps","Abracadabra (Qps) (Scorpion 4) (set 5, 014)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4abrae ,sc4abra, sc4_200_4r, sc4abra, sc4_state, sc4abra, ROT0, "Qps","Abracadabra (Qps) (Scorpion 4) (set 6, 014)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4abra ,0, sc4_200_4r, sc4abra, sc4_state, sc4abra, ROT0, "Qps","Abracadabra (Qps) (Scorpion 4) (set 1, 041)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4abraa ,sc4abra, sc4_200_4r, sc4abra, sc4_state, sc4abra, ROT0, "Qps","Abracadabra (Qps) (Scorpion 4) (set 2, 041)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4abrab ,sc4abra, sc4_200_4r, sc4abra, sc4_state, sc4abra, ROT0, "Qps","Abracadabra (Qps) (Scorpion 4) (set 3, 044)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4abrac ,sc4abra, sc4_200_4r, sc4abra, sc4_state, sc4abra, ROT0, "Qps","Abracadabra (Qps) (Scorpion 4) (set 4, 044)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4abrad ,sc4abra, sc4_200_4r, sc4abra, sc4_state, sc4abra, ROT0, "Qps","Abracadabra (Qps) (Scorpion 4) (set 5, 014)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4abrae ,sc4abra, sc4_200_4r, sc4abra, sc4_state, sc4abra, ROT0, "Qps","Abracadabra (Qps) (Scorpion 4) (set 6, 014)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4alad ) // this structure is generated
@@ -45063,8 +45063,8 @@ INPUT_PORTS_END
// bad / missing sound roms
// PR7068 ALADDIN'S CAVE CAVE SOUNDS
-GAMEL( 200?, sc4alad ,0, sc4, sc4alad, sc4_state, sc4, ROT0, "Mazooma","Aladdin's Cave (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4alada ,sc4alad, sc4, sc4alad, sc4_state, sc4, ROT0, "Mazooma","Aladdin's Cave (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4alad ,0, sc4, sc4alad, sc4_state, sc4, ROT0, "Mazooma","Aladdin's Cave (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4alada ,sc4alad, sc4, sc4alad, sc4_state, sc4, ROT0, "Mazooma","Aladdin's Cave (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -45121,8 +45121,8 @@ INPUT_PORTS_END
// missing sound roms, doesn't play
// PR2501 BIG DEAL BIGDEALSND BIG DEAL
-GAMEL( 200?, sc4bigdl ,0, sc4_200_5r, sc4bigdl, sc4_state, sc4bigdl, ROT0, "Qps","Big Deal (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bigdla ,sc4bigdl, sc4_200_5r, sc4bigdl, sc4_state, sc4bigdl, ROT0, "Qps","Big Deal (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bigdl ,0, sc4_200_5r, sc4bigdl, sc4_state, sc4bigdl, ROT0, "Qps","Big Deal (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bigdla ,sc4bigdl, sc4_200_5r, sc4bigdl, sc4_state, sc4bigdl, ROT0, "Qps","Big Deal (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -45188,11 +45188,11 @@ INPUT_PORTS_END
// no sound roms
// PR7038 CASH CONNEXION MTOM SOUNDS
-GAMEL( 200?, sc4cconx ,0, sc4_4reel, sc4, sc4_state, sc4cconx, ROT0, "Mazooma","Cash Connexion (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cconxa ,sc4cconx, sc4_4reel, sc4, sc4_state, sc4cconx, ROT0, "Mazooma","Cash Connexion (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cconxb ,sc4cconx, sc4_4reel, sc4, sc4_state, sc4cconx, ROT0, "Mazooma","Cash Connexion (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cconxc ,sc4cconx, sc4_4reel, sc4, sc4_state, sc4cconx, ROT0, "Mazooma","Cash Connexion (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cconxd ,sc4cconx, sc4_200_4r, sc4cconxd, sc4_state, sc4cconxd, ROT0, "Mazooma","Cash Connexion (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // this one won't init without a 200 step reel
+GAMEL( 200?, sc4cconx ,0, sc4_4reel, sc4, sc4_state, sc4cconx, ROT0, "Mazooma","Cash Connexion (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cconxa ,sc4cconx, sc4_4reel, sc4, sc4_state, sc4cconx, ROT0, "Mazooma","Cash Connexion (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cconxb ,sc4cconx, sc4_4reel, sc4, sc4_state, sc4cconx, ROT0, "Mazooma","Cash Connexion (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cconxc ,sc4cconx, sc4_4reel, sc4, sc4_state, sc4cconx, ROT0, "Mazooma","Cash Connexion (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cconxd ,sc4cconx, sc4_200_4r, sc4cconxd, sc4_state, sc4cconxd, ROT0, "Mazooma","Cash Connexion (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // this one won't init without a 200 step reel
DRIVER_INIT_MEMBER(sc4_state,sc4ccrus)
{
@@ -45252,9 +45252,9 @@ INPUT_PORTS_END
// no sound roms (probably doesn't want cashanova, but check)
// PR2006 CASH CRUSADERS CASH SOUNDS CASH CRUSADERS
-GAMEL( 200?, sc4ccrus ,0, sc4_4reel, sc4ccrus, sc4_state, sc4ccrus, ROT0, "Mazooma","Cash Crusaders (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ccrusa ,sc4ccrus, sc4_4reel, sc4ccrus, sc4_state, sc4ccrus, ROT0, "Mazooma","Cash Crusaders (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ccrusb ,sc4ccrus, sc4_4reel, sc4ccrus, sc4_state, sc4ccrus, ROT0, "Mazooma","Cash Crusaders (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ccrus ,0, sc4_4reel, sc4ccrus, sc4_state, sc4ccrus, ROT0, "Mazooma","Cash Crusaders (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ccrusa ,sc4ccrus, sc4_4reel, sc4ccrus, sc4_state, sc4ccrus, ROT0, "Mazooma","Cash Crusaders (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ccrusb ,sc4ccrus, sc4_4reel, sc4ccrus, sc4_state, sc4ccrus, ROT0, "Mazooma","Cash Crusaders (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -45315,16 +45315,16 @@ INPUT_PORTS_START( sc4jjc ) // this structure is generated
INPUT_PORTS_END
// PR2152 JUMPIN JACK CASH JACK SOUNDS JUMPIN JACK CASH
-GAMEL( 200?, sc4jjc ,0, sc4_200_4ra, sc4jjc, sc4_state, sc4jjc, ROT0, "Mazooma","Jumping Jack Cash (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jjca ,sc4jjc, sc4_200_4ra, sc4jjc, sc4_state, sc4jjc, ROT0, "Mazooma","Jumping Jack Cash (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jjcb ,sc4jjc, sc4_200_4ra, sc4jjc, sc4_state, sc4jjc, ROT0, "Mazooma","Jumping Jack Cash (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jjcc ,sc4jjc, sc4_200_4ra, sc4jjc, sc4_state, sc4jjc, ROT0, "Mazooma","Jumping Jack Cash (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jjcd ,sc4jjc, sc4_200_4ra, sc4jjc, sc4_state, sc4jjc, ROT0, "Mazooma","Jumping Jack Cash (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jjce ,sc4jjc, sc4_200_4ra, sc4jjc, sc4_state, sc4jjc, ROT0, "Mazooma","Jumping Jack Cash (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jjcf ,sc4jjc, sc4_200_4ra, sc4jjc, sc4_state, sc4jjc, ROT0, "Mazooma","Jumping Jack Cash (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jjcg ,sc4jjc, sc4_200_4ra, sc4jjc, sc4_state, sc4jjc, ROT0, "Mazooma","Jumping Jack Cash (Mazooma) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jjch ,sc4jjc, sc4_200_4ra, sc4jjc, sc4_state, sc4jjc, ROT0, "Mazooma","Jumping Jack Cash (Mazooma) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jjci ,sc4jjc, sc4_200_4ra, sc4jjc, sc4_state, sc4jjc, ROT0, "Mazooma","Jumping Jack Cash (Mazooma) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jjc ,0, sc4_200_4ra, sc4jjc, sc4_state, sc4jjc, ROT0, "Mazooma","Jumping Jack Cash (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jjca ,sc4jjc, sc4_200_4ra, sc4jjc, sc4_state, sc4jjc, ROT0, "Mazooma","Jumping Jack Cash (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jjcb ,sc4jjc, sc4_200_4ra, sc4jjc, sc4_state, sc4jjc, ROT0, "Mazooma","Jumping Jack Cash (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jjcc ,sc4jjc, sc4_200_4ra, sc4jjc, sc4_state, sc4jjc, ROT0, "Mazooma","Jumping Jack Cash (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jjcd ,sc4jjc, sc4_200_4ra, sc4jjc, sc4_state, sc4jjc, ROT0, "Mazooma","Jumping Jack Cash (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jjce ,sc4jjc, sc4_200_4ra, sc4jjc, sc4_state, sc4jjc, ROT0, "Mazooma","Jumping Jack Cash (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jjcf ,sc4jjc, sc4_200_4ra, sc4jjc, sc4_state, sc4jjc, ROT0, "Mazooma","Jumping Jack Cash (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jjcg ,sc4jjc, sc4_200_4ra, sc4jjc, sc4_state, sc4jjc, ROT0, "Mazooma","Jumping Jack Cash (Mazooma) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jjch ,sc4jjc, sc4_200_4ra, sc4jjc, sc4_state, sc4jjc, ROT0, "Mazooma","Jumping Jack Cash (Mazooma) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jjci ,sc4jjc, sc4_200_4ra, sc4jjc, sc4_state, sc4jjc, ROT0, "Mazooma","Jumping Jack Cash (Mazooma) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4kkong ) // this structure is generated
@@ -45375,17 +45375,17 @@ INPUT_PORTS_START( sc4kkong ) // this structure is generated
INPUT_PORTS_END
// PR2161 KING KONG CASH 000 KKCSH SOUNDS KING KONG CASH
-GAMEL( 200?, sc4kkong ,0, sc4, sc4kkong, sc4_state, sc4, ROT0, "Mazooma","King Kong Cash (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4kkonga ,sc4kkong, sc4, sc4kkong, sc4_state, sc4, ROT0, "Mazooma","King Kong Cash (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4kkongb ,sc4kkong, sc4, sc4kkong, sc4_state, sc4, ROT0, "Mazooma","King Kong Cash (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4kkongc ,sc4kkong, sc4, sc4kkong, sc4_state, sc4, ROT0, "Mazooma","King Kong Cash (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4kkongd ,sc4kkong, sc4, sc4kkong, sc4_state, sc4, ROT0, "Mazooma","King Kong Cash (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4kkonge ,sc4kkong, sc4, sc4kkong, sc4_state, sc4, ROT0, "Mazooma","King Kong Cash (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4kkongf ,sc4kkong, sc4, sc4kkong, sc4_state, sc4, ROT0, "Mazooma","King Kong Cash (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4kkongg ,sc4kkong, sc4, sc4kkong, sc4_state, sc4, ROT0, "Mazooma","King Kong Cash (Mazooma) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4kkongh ,sc4kkong, sc4, sc4kkong, sc4_state, sc4, ROT0, "Mazooma","King Kong Cash (Mazooma) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4kkongi ,sc4kkong, sc4, sc4kkong, sc4_state, sc4, ROT0, "Mazooma","King Kong Cash (Mazooma) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4kkongj ,sc4kkong, sc4, sc4kkong, sc4_state, sc4, ROT0, "Mazooma","King Kong Cash (Mazooma) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4kkong ,0, sc4, sc4kkong, sc4_state, sc4, ROT0, "Mazooma","King Kong Cash (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4kkonga ,sc4kkong, sc4, sc4kkong, sc4_state, sc4, ROT0, "Mazooma","King Kong Cash (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4kkongb ,sc4kkong, sc4, sc4kkong, sc4_state, sc4, ROT0, "Mazooma","King Kong Cash (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4kkongc ,sc4kkong, sc4, sc4kkong, sc4_state, sc4, ROT0, "Mazooma","King Kong Cash (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4kkongd ,sc4kkong, sc4, sc4kkong, sc4_state, sc4, ROT0, "Mazooma","King Kong Cash (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4kkonge ,sc4kkong, sc4, sc4kkong, sc4_state, sc4, ROT0, "Mazooma","King Kong Cash (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4kkongf ,sc4kkong, sc4, sc4kkong, sc4_state, sc4, ROT0, "Mazooma","King Kong Cash (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4kkongg ,sc4kkong, sc4, sc4kkong, sc4_state, sc4, ROT0, "Mazooma","King Kong Cash (Mazooma) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4kkongh ,sc4kkong, sc4, sc4kkong, sc4_state, sc4, ROT0, "Mazooma","King Kong Cash (Mazooma) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4kkongi ,sc4kkong, sc4, sc4kkong, sc4_state, sc4, ROT0, "Mazooma","King Kong Cash (Mazooma) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4kkongj ,sc4kkong, sc4, sc4kkong, sc4_state, sc4, ROT0, "Mazooma","King Kong Cash (Mazooma) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4knok)
@@ -45442,8 +45442,8 @@ INPUT_PORTS_END
// PR7061 KNOCKOUT KOUT SOUNDS
-GAMEL( 200?, sc4knok ,0, sc4_4reel, sc4knok, sc4_state, sc4knok, ROT0, "Mazooma","Knockout (PR7061, KOUT) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4knoka ,sc4knok, sc4_4reel, sc4knok, sc4_state, sc4knok, ROT0, "Mazooma","Knockout (PR7061, KOUT) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4knok ,0, sc4_4reel, sc4knok, sc4_state, sc4knok, ROT0, "Mazooma","Knockout (PR7061, KOUT) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4knoka ,sc4knok, sc4_4reel, sc4knok, sc4_state, sc4knok, ROT0, "Mazooma","Knockout (PR7061, KOUT) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4knokb ) // this structure is generated
@@ -45491,8 +45491,8 @@ INPUT_PORTS_END
// This is a different game
// PR2057 KNOCK OUT PKOT SOUNDS KNOCK OUT
-GAMEL( 200?, sc4knokb ,0, sc4_200_5r, sc4knokb, sc4_state, sc4knokb, ROT0, "Mazooma","Knock Out (PR2057, PKOT) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4knokc ,sc4knokb, sc4_200_5r, sc4knokb, sc4_state, sc4knokb, ROT0, "Mazooma","Knock Out (PR2057, PKOT) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4knokb ,0, sc4_200_5r, sc4knokb, sc4_state, sc4knokb, ROT0, "Mazooma","Knock Out (PR2057, PKOT) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4knokc ,sc4knokb, sc4_200_5r, sc4knokb, sc4_state, sc4knokb, ROT0, "Mazooma","Knock Out (PR2057, PKOT) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4maxcc)
@@ -45565,10 +45565,10 @@ INPUT_PORTS_START( sc4maxcc ) // this structure is generated
INPUT_PORTS_END
// PR2130 CLUB MAXIMUS CASH MAXIMUS CASH CLUB CMAX SOUNDS MAXIMUS CASH
-GAMEL( 200?, sc4maxcc ,0, sc4_200_5r, sc4maxcc, sc4_state, sc4maxcc, ROT0, "Mazooma","Maximus Cash Club (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4maxcca ,sc4maxcc, sc4_200_5r, sc4maxcc, sc4_state, sc4maxcc, ROT0, "Mazooma","Maximus Cash Club (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4maxccb ,sc4maxcc, sc4_200_5r, sc4maxcc, sc4_state, sc4maxcc, ROT0, "Mazooma","Maximus Cash Club (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4maxccc ,sc4maxcc, sc4_200_5r, sc4maxcc, sc4_state, sc4maxcc, ROT0, "Mazooma","Maximus Cash Club (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4maxcc ,0, sc4_200_5r, sc4maxcc, sc4_state, sc4maxcc, ROT0, "Mazooma","Maximus Cash Club (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4maxcca ,sc4maxcc, sc4_200_5r, sc4maxcc, sc4_state, sc4maxcc, ROT0, "Mazooma","Maximus Cash Club (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4maxccb ,sc4maxcc, sc4_200_5r, sc4maxcc, sc4_state, sc4maxcc, ROT0, "Mazooma","Maximus Cash Club (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4maxccc ,sc4maxcc, sc4_200_5r, sc4maxcc, sc4_state, sc4maxcc, ROT0, "Mazooma","Maximus Cash Club (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4wadzl)
@@ -45625,8 +45625,8 @@ INPUT_PORTS_START( sc4wadzl ) // this structure is generated
INPUT_PORTS_END
// PR2052 WADZILLA WADZ SOUNDS WADZILLA
-GAMEL( 200?, sc4wadzl ,0, sc4_200_5r, sc4wadzl, sc4_state, sc4wadzl, ROT0, "Mazooma","Wadzilla (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wadzla ,sc4wadzl, sc4_200_5r, sc4wadzl, sc4_state, sc4wadzl, ROT0, "Mazooma","Wadzilla (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wadzl ,0, sc4_200_5r, sc4wadzl, sc4_state, sc4wadzl, ROT0, "Mazooma","Wadzilla (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wadzla ,sc4wadzl, sc4_200_5r, sc4wadzl, sc4_state, sc4wadzl, ROT0, "Mazooma","Wadzilla (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4s16 ) // this structure is generated
@@ -45676,8 +45676,8 @@ INPUT_PORTS_END
// RNG ERR 99
// PR21xx SECTION 16 SECT SOUNDS SECTION 16
-GAMEL( 200?, sc4s16 ,0, sc4, sc4s16, sc4_state, sc4, ROT0, "Mazooma","Section 16 (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4s16a ,sc4s16, sc4, sc4s16, sc4_state, sc4, ROT0, "Mazooma","Section 16 (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4s16 ,0, sc4, sc4s16, sc4_state, sc4, ROT0, "Mazooma","Section 16 (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4s16a ,sc4s16, sc4, sc4s16, sc4_state, sc4, ROT0, "Mazooma","Section 16 (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4bob ) // this structure is generated
@@ -45732,16 +45732,16 @@ INPUT_PORTS_START( sc4bob ) // this structure is generated
INPUT_PORTS_END
// PR2170 BOBBY DAZZLER BOBD SOUNDS BOBBY DAZZLER
-GAMEL( 200?, sc4bob ,0, sc4, sc4bob, sc4_state, sc4, ROT0, "Mazooma","Bobby Dazzler (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4boba ,sc4bob, sc4, sc4bob, sc4_state, sc4, ROT0, "Mazooma","Bobby Dazzler (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bobb ,sc4bob, sc4, sc4bob, sc4_state, sc4, ROT0, "Mazooma","Bobby Dazzler (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bobc ,sc4bob, sc4, sc4bob, sc4_state, sc4, ROT0, "Mazooma","Bobby Dazzler (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bobd ,sc4bob, sc4, sc4bob, sc4_state, sc4, ROT0, "Mazooma","Bobby Dazzler (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bobe ,sc4bob, sc4, sc4bob, sc4_state, sc4, ROT0, "Mazooma","Bobby Dazzler (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bobf ,sc4bob, sc4, sc4bob, sc4_state, sc4, ROT0, "Mazooma","Bobby Dazzler (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bobg ,sc4bob, sc4, sc4bob, sc4_state, sc4, ROT0, "Mazooma","Bobby Dazzler (Mazooma) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bobh ,sc4bob, sc4, sc4bob, sc4_state, sc4, ROT0, "Mazooma","Bobby Dazzler (Mazooma) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bobi ,sc4bob, sc4, sc4bob, sc4_state, sc4, ROT0, "Mazooma","Bobby Dazzler (Mazooma) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bob ,0, sc4, sc4bob, sc4_state, sc4, ROT0, "Mazooma","Bobby Dazzler (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4boba ,sc4bob, sc4, sc4bob, sc4_state, sc4, ROT0, "Mazooma","Bobby Dazzler (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bobb ,sc4bob, sc4, sc4bob, sc4_state, sc4, ROT0, "Mazooma","Bobby Dazzler (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bobc ,sc4bob, sc4, sc4bob, sc4_state, sc4, ROT0, "Mazooma","Bobby Dazzler (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bobd ,sc4bob, sc4, sc4bob, sc4_state, sc4, ROT0, "Mazooma","Bobby Dazzler (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bobe ,sc4bob, sc4, sc4bob, sc4_state, sc4, ROT0, "Mazooma","Bobby Dazzler (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bobf ,sc4bob, sc4, sc4bob, sc4_state, sc4, ROT0, "Mazooma","Bobby Dazzler (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bobg ,sc4bob, sc4, sc4bob, sc4_state, sc4, ROT0, "Mazooma","Bobby Dazzler (Mazooma) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bobh ,sc4bob, sc4, sc4bob, sc4_state, sc4, ROT0, "Mazooma","Bobby Dazzler (Mazooma) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bobi ,sc4bob, sc4, sc4bob, sc4_state, sc4, ROT0, "Mazooma","Bobby Dazzler (Mazooma) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4clue ) // this structure is generated
PORT_INCLUDE( sc4_base )
@@ -45807,14 +45807,14 @@ INPUT_PORTS_START( sc4clue ) // this structure is generated
INPUT_PORTS_END
// PR2230 CLUEDO CLUE SOUNDS CLUEDO
-GAMEL( 200?, sc4clue ,0, sc4, sc4clue, sc4_state, sc4, ROT0, "Mazooma","Cluedo (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cluea ,sc4clue, sc4, sc4clue, sc4_state, sc4, ROT0, "Mazooma","Cluedo (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4clueb ,sc4clue, sc4, sc4clue, sc4_state, sc4, ROT0, "Mazooma","Cluedo (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cluec ,sc4clue, sc4, sc4clue, sc4_state, sc4, ROT0, "Mazooma","Cluedo (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4clued ,sc4clue, sc4, sc4clue, sc4_state, sc4, ROT0, "Mazooma","Cluedo (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cluee ,sc4clue, sc4, sc4clue, sc4_state, sc4, ROT0, "Mazooma","Cluedo (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cluef ,sc4clue, sc4, sc4clue, sc4_state, sc4, ROT0, "Mazooma","Cluedo (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4clueg ,sc4clue, sc4, sc4clue, sc4_state, sc4, ROT0, "Mazooma","Cluedo (Mazooma) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4clue ,0, sc4, sc4clue, sc4_state, sc4, ROT0, "Mazooma","Cluedo (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cluea ,sc4clue, sc4, sc4clue, sc4_state, sc4, ROT0, "Mazooma","Cluedo (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4clueb ,sc4clue, sc4, sc4clue, sc4_state, sc4, ROT0, "Mazooma","Cluedo (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cluec ,sc4clue, sc4, sc4clue, sc4_state, sc4, ROT0, "Mazooma","Cluedo (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4clued ,sc4clue, sc4, sc4clue, sc4_state, sc4, ROT0, "Mazooma","Cluedo (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cluee ,sc4clue, sc4, sc4clue, sc4_state, sc4, ROT0, "Mazooma","Cluedo (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cluef ,sc4clue, sc4, sc4clue, sc4_state, sc4, ROT0, "Mazooma","Cluedo (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4clueg ,sc4clue, sc4, sc4clue, sc4_state, sc4, ROT0, "Mazooma","Cluedo (Mazooma) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4ducks ) // this structure is generated
PORT_INCLUDE( sc4_base )
@@ -45862,10 +45862,10 @@ INPUT_PORTS_START( sc4ducks ) // this structure is generated
INPUT_PORTS_END
// PR2118 DUCKS OF HAZZARD DUCKSOFHAZZARDSND DUCKS OF HAZZARD
-GAMEL( 200?, sc4ducks ,0, sc4, sc4ducks, sc4_state, sc4, ROT0, "Mazooma","Ducks Of Hazzard (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ducksa ,sc4ducks, sc4, sc4ducks, sc4_state, sc4, ROT0, "Mazooma","Ducks Of Hazzard (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ducksb ,sc4ducks, sc4, sc4ducks, sc4_state, sc4, ROT0, "Mazooma","Ducks Of Hazzard (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ducksc ,sc4ducks, sc4, sc4ducks, sc4_state, sc4, ROT0, "Mazooma","Ducks Of Hazzard (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ducks ,0, sc4, sc4ducks, sc4_state, sc4, ROT0, "Mazooma","Ducks Of Hazzard (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ducksa ,sc4ducks, sc4, sc4ducks, sc4_state, sc4, ROT0, "Mazooma","Ducks Of Hazzard (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ducksb ,sc4ducks, sc4, sc4ducks, sc4_state, sc4, ROT0, "Mazooma","Ducks Of Hazzard (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ducksc ,sc4ducks, sc4, sc4ducks, sc4_state, sc4, ROT0, "Mazooma","Ducks Of Hazzard (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4glad)
{
@@ -45937,14 +45937,14 @@ INPUT_PORTS_START( sc4glad ) // this structure is generated
INPUT_PORTS_END
// PR2255 GLADIATOR GLAD SOUNDS GLADIATOR
-GAMEL( 200?, sc4glad ,0, sc4_200_4rb, sc4glad, sc4_state, sc4glad, ROT0, "QPS / Mazooma","Gladiator (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4glada ,sc4glad, sc4_200_4rb, sc4glad, sc4_state, sc4glad, ROT0, "QPS / Mazooma","Gladiator (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gladb ,sc4glad, sc4_200_4rb, sc4glad, sc4_state, sc4glad, ROT0, "QPS / Mazooma","Gladiator (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gladc ,sc4glad, sc4_200_4rb, sc4glad, sc4_state, sc4glad, ROT0, "QPS / Mazooma","Gladiator (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gladd ,sc4glad, sc4_200_4rb, sc4glad, sc4_state, sc4glad, ROT0, "QPS / Mazooma","Gladiator (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4glade ,sc4glad, sc4_200_4rb, sc4glad, sc4_state, sc4glad, ROT0, "QPS / Mazooma","Gladiator (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gladf ,sc4glad, sc4_200_4rb, sc4glad, sc4_state, sc4glad, ROT0, "QPS / Mazooma","Gladiator (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gladg ,sc4glad, sc4_200_4rb, sc4glad, sc4_state, sc4glad, ROT0, "QPS / Mazooma","Gladiator (Mazooma) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4glad ,0, sc4_200_4rb, sc4glad, sc4_state, sc4glad, ROT0, "QPS / Mazooma","Gladiator (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4glada ,sc4glad, sc4_200_4rb, sc4glad, sc4_state, sc4glad, ROT0, "QPS / Mazooma","Gladiator (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gladb ,sc4glad, sc4_200_4rb, sc4glad, sc4_state, sc4glad, ROT0, "QPS / Mazooma","Gladiator (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gladc ,sc4glad, sc4_200_4rb, sc4glad, sc4_state, sc4glad, ROT0, "QPS / Mazooma","Gladiator (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gladd ,sc4glad, sc4_200_4rb, sc4glad, sc4_state, sc4glad, ROT0, "QPS / Mazooma","Gladiator (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4glade ,sc4glad, sc4_200_4rb, sc4glad, sc4_state, sc4glad, ROT0, "QPS / Mazooma","Gladiator (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gladf ,sc4glad, sc4_200_4rb, sc4glad, sc4_state, sc4glad, ROT0, "QPS / Mazooma","Gladiator (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gladg ,sc4glad, sc4_200_4rb, sc4glad, sc4_state, sc4glad, ROT0, "QPS / Mazooma","Gladiator (Mazooma) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4hotdg ) // this structure is generated
@@ -46006,10 +46006,10 @@ INPUT_PORTS_START( sc4hotdg ) // this structure is generated
INPUT_PORTS_END
// PR1936 AWP HOT DOG SCORP4 PR1916 HOT DOG SOUNDS11 HOT DOG S.SITE
-GAMEL( 200?, sc4hotdg ,0, sc4, sc4hotdg, sc4_state, sc4mbus, ROT0, "BFM","Hot Dog (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hotdga ,sc4hotdg, sc4, sc4hotdg, sc4_state, sc4mbus, ROT0, "BFM","Hot Dog (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // incomplete pairing
-GAMEL( 200?, sc4hotdgb ,sc4hotdg, sc4, sc4hotdg, sc4_state, sc4mbus, ROT0, "BFM","Hot Dog (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hotdgc ,sc4hotdg, sc4, sc4hotdg, sc4_state, sc4mbus, ROT0, "BFM","Hot Dog (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hotdg ,0, sc4, sc4hotdg, sc4_state, sc4mbus, ROT0, "BFM","Hot Dog (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hotdga ,sc4hotdg, sc4, sc4hotdg, sc4_state, sc4mbus, ROT0, "BFM","Hot Dog (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // incomplete pairing
+GAMEL( 200?, sc4hotdgb ,sc4hotdg, sc4, sc4hotdg, sc4_state, sc4mbus, ROT0, "BFM","Hot Dog (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hotdgc ,sc4hotdg, sc4, sc4hotdg, sc4_state, sc4mbus, ROT0, "BFM","Hot Dog (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4pp)
{
@@ -46085,11 +46085,11 @@ INPUT_PORTS_END
// doesn't like any of the sound roms we have
// PR2562 PINK PANTHER PINK SOUNDS PINK PANTHER
-GAMEL( 200?, sc4pp ,0, sc4_200_4ra, sc4pp, sc4_state, sc4pp, ROT0, "Mazooma","Pink Panther (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ppa ,sc4pp, sc4_200_4ra, sc4pp, sc4_state, sc4pp, ROT0, "Mazooma","Pink Panther (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ppb ,sc4pp, sc4_200_4ra, sc4pp, sc4_state, sc4pp, ROT0, "Mazooma","Pink Panther (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ppc ,sc4pp, sc4_200_4ra, sc4pp, sc4_state, sc4pp, ROT0, "Mazooma","Pink Panther (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ppd ,sc4pp, sc4_200_4ra, sc4pp, sc4_state, sc4pp, ROT0, "Mazooma","Pink Panther (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pp ,0, sc4_200_4ra, sc4pp, sc4_state, sc4pp, ROT0, "Mazooma","Pink Panther (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppa ,sc4pp, sc4_200_4ra, sc4pp, sc4_state, sc4pp, ROT0, "Mazooma","Pink Panther (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppb ,sc4pp, sc4_200_4ra, sc4pp, sc4_state, sc4pp, ROT0, "Mazooma","Pink Panther (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppc ,sc4pp, sc4_200_4ra, sc4pp, sc4_state, sc4pp, ROT0, "Mazooma","Pink Panther (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppd ,sc4pp, sc4_200_4ra, sc4pp, sc4_state, sc4pp, ROT0, "Mazooma","Pink Panther (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4ppsag ) // this structure is generated
@@ -46145,16 +46145,16 @@ INPUT_PORTS_START( sc4ppsag ) // this structure is generated
INPUT_PORTS_END
// PR2303 STRIKES AGAIN PPSA SOUNDS STRIKES AGAIN
-GAMEL( 200?, sc4ppsag ,0, sc4, sc4ppsag, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Strikes Again (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ppsaga ,sc4ppsag, sc4, sc4ppsag, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Strikes Again (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ppsagb ,sc4ppsag, sc4, sc4ppsag, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Strikes Again (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ppsagc ,sc4ppsag, sc4, sc4ppsag, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Strikes Again (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ppsagd ,sc4ppsag, sc4, sc4ppsag, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Strikes Again (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ppsage ,sc4ppsag, sc4, sc4ppsag, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Strikes Again (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ppsagf ,sc4ppsag, sc4, sc4ppsag, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Strikes Again (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ppsagg ,sc4ppsag, sc4, sc4ppsag, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Strikes Again (Mazooma) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ppsagh ,sc4ppsag, sc4, sc4ppsag, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Strikes Again (Mazooma) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ppsagi ,sc4ppsag, sc4, sc4ppsag, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Strikes Again (Mazooma) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppsag ,0, sc4, sc4ppsag, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Strikes Again (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppsaga ,sc4ppsag, sc4, sc4ppsag, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Strikes Again (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppsagb ,sc4ppsag, sc4, sc4ppsag, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Strikes Again (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppsagc ,sc4ppsag, sc4, sc4ppsag, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Strikes Again (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppsagd ,sc4ppsag, sc4, sc4ppsag, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Strikes Again (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppsage ,sc4ppsag, sc4, sc4ppsag, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Strikes Again (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppsagf ,sc4ppsag, sc4, sc4ppsag, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Strikes Again (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppsagg ,sc4ppsag, sc4, sc4ppsag, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Strikes Again (Mazooma) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppsagh ,sc4ppsag, sc4, sc4ppsag, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Strikes Again (Mazooma) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ppsagi ,sc4ppsag, sc4, sc4ppsag, sc4_state, sc4, ROT0, "Mazooma","Pink Panther Strikes Again (Mazooma) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4pog ) // this structure is generated
PORT_INCLUDE( sc4_base )
@@ -46222,16 +46222,16 @@ INPUT_PORTS_START( sc4pog ) // this structure is generated
INPUT_PORTS_END
// PR1938 AWP POTS OF GOLD SCORP4 PR1918 POTS OF GOLD SOUNDS11 POTS OF GOLD S.SITE
-GAMEL( 200?, sc4pog ,0, sc4, sc4pog, sc4_state, sc4mbus, ROT0, "BFM","Pots Of Gold (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4poga ,sc4pog, sc4, sc4pog, sc4_state, sc4mbus, ROT0, "BFM","Pots Of Gold (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pogb ,sc4pog, sc4, sc4pog, sc4_state, sc4mbus, ROT0, "BFM","Pots Of Gold (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pogc ,sc4pog, sc4, sc4pog, sc4_state, sc4mbus, ROT0, "BFM","Pots Of Gold (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pogd ,sc4pog, sc4, sc4pog, sc4_state, sc4mbus, ROT0, "BFM","Pots Of Gold (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4poge ,sc4pog, sc4, sc4pog, sc4_state, sc4mbus, ROT0, "BFM","Pots Of Gold (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pogf ,sc4pog, sc4, sc4pog, sc4_state, sc4mbus, ROT0, "BFM","Pots Of Gold (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pogg ,sc4pog, sc4, sc4pog, sc4_state, sc4mbus, ROT0, "BFM","Pots Of Gold (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pogh ,sc4pog, sc4, sc4pog, sc4_state, sc4mbus, ROT0, "BFM","Pots Of Gold (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pogi ,sc4pog, sc4, sc4pog, sc4_state, sc4mbus, ROT0, "BFM","Pots Of Gold (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pog ,0, sc4, sc4pog, sc4_state, sc4mbus, ROT0, "BFM","Pots Of Gold (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4poga ,sc4pog, sc4, sc4pog, sc4_state, sc4mbus, ROT0, "BFM","Pots Of Gold (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pogb ,sc4pog, sc4, sc4pog, sc4_state, sc4mbus, ROT0, "BFM","Pots Of Gold (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pogc ,sc4pog, sc4, sc4pog, sc4_state, sc4mbus, ROT0, "BFM","Pots Of Gold (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pogd ,sc4pog, sc4, sc4pog, sc4_state, sc4mbus, ROT0, "BFM","Pots Of Gold (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4poge ,sc4pog, sc4, sc4pog, sc4_state, sc4mbus, ROT0, "BFM","Pots Of Gold (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pogf ,sc4pog, sc4, sc4pog, sc4_state, sc4mbus, ROT0, "BFM","Pots Of Gold (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pogg ,sc4pog, sc4, sc4pog, sc4_state, sc4mbus, ROT0, "BFM","Pots Of Gold (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pogh ,sc4pog, sc4, sc4pog, sc4_state, sc4mbus, ROT0, "BFM","Pots Of Gold (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pogi ,sc4pog, sc4, sc4pog, sc4_state, sc4mbus, ROT0, "BFM","Pots Of Gold (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4pwrpl ) // this structure is generated
PORT_INCLUDE( sc4_base )
@@ -46281,10 +46281,10 @@ INPUT_PORTS_START( sc4pwrpl ) // this structure is generated
INPUT_PORTS_END
// PR2272 POWER PLAY PPLY SOUNDS
-GAMEL( 200?, sc4pwrpl ,0, sc4, sc4pwrpl, sc4_state, sc4, ROT0, "Mazooma","Power Play (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pwrpla ,sc4pwrpl, sc4, sc4pwrpl, sc4_state, sc4, ROT0, "Mazooma","Power Play (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pwrplb ,sc4pwrpl, sc4, sc4pwrpl, sc4_state, sc4, ROT0, "Mazooma","Power Play (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pwrplc ,sc4pwrpl, sc4, sc4pwrpl, sc4_state, sc4, ROT0, "Mazooma","Power Play (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pwrpl ,0, sc4, sc4pwrpl, sc4_state, sc4, ROT0, "Mazooma","Power Play (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pwrpla ,sc4pwrpl, sc4, sc4pwrpl, sc4_state, sc4, ROT0, "Mazooma","Power Play (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pwrplb ,sc4pwrpl, sc4, sc4pwrpl, sc4_state, sc4, ROT0, "Mazooma","Power Play (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pwrplc ,sc4pwrpl, sc4, sc4pwrpl, sc4_state, sc4, ROT0, "Mazooma","Power Play (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4swywm)
@@ -46341,14 +46341,14 @@ INPUT_PORTS_END
// PR2232 SPIN WHEN YOU'RE WINNING SPIN SOUNDS
-GAMEL( 200?, sc4swywm ,0, sc4_200_5ra, sc4swywm, sc4_state, sc4swywm, ROT0, "Mazooma","Spin When Your Winning (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4swywma ,sc4swywm, sc4_200_5ra, sc4swywm, sc4_state, sc4swywm, ROT0, "Mazooma","Spin When Your Winning (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4swywmb ,sc4swywm, sc4_200_5ra, sc4swywm, sc4_state, sc4swywm, ROT0, "Mazooma","Spin When Your Winning (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4swywmc ,sc4swywm, sc4_200_5ra, sc4swywm, sc4_state, sc4swywm, ROT0, "Mazooma","Spin When Your Winning (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4swywmd ,sc4swywm, sc4_200_5ra, sc4swywm, sc4_state, sc4swywm, ROT0, "Mazooma","Spin When Your Winning (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4swywme ,sc4swywm, sc4_200_5ra, sc4swywm, sc4_state, sc4swywm, ROT0, "Mazooma","Spin When Your Winning (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4swywmf ,sc4swywm, sc4_200_5ra, sc4swywm, sc4_state, sc4swywm, ROT0, "Mazooma","Spin When Your Winning (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4swywmg ,sc4swywm, sc4_200_5ra, sc4swywm, sc4_state, sc4swywm, ROT0, "Mazooma","Spin When Your Winning (Mazooma) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4swywm ,0, sc4_200_5ra, sc4swywm, sc4_state, sc4swywm, ROT0, "Mazooma","Spin When Your Winning (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4swywma ,sc4swywm, sc4_200_5ra, sc4swywm, sc4_state, sc4swywm, ROT0, "Mazooma","Spin When Your Winning (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4swywmb ,sc4swywm, sc4_200_5ra, sc4swywm, sc4_state, sc4swywm, ROT0, "Mazooma","Spin When Your Winning (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4swywmc ,sc4swywm, sc4_200_5ra, sc4swywm, sc4_state, sc4swywm, ROT0, "Mazooma","Spin When Your Winning (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4swywmd ,sc4swywm, sc4_200_5ra, sc4swywm, sc4_state, sc4swywm, ROT0, "Mazooma","Spin When Your Winning (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4swywme ,sc4swywm, sc4_200_5ra, sc4swywm, sc4_state, sc4swywm, ROT0, "Mazooma","Spin When Your Winning (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4swywmf ,sc4swywm, sc4_200_5ra, sc4swywm, sc4_state, sc4swywm, ROT0, "Mazooma","Spin When Your Winning (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4swywmg ,sc4swywm, sc4_200_5ra, sc4swywm, sc4_state, sc4swywm, ROT0, "Mazooma","Spin When Your Winning (Mazooma) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4sumit)
{
@@ -46423,10 +46423,10 @@ INPUT_PORTS_START( sc4sumit ) // this structure is generated
INPUT_PORTS_END
// PR2176 SUMMIT UP SUMMIT SOUNDS SUMMIT UP (was in the Suits U Sir set)
-GAMEL( 200?, sc4sumit ,0, sc4_200_4ra, sc4sumit, sc4_state, sc4sumit, ROT0, "Mazooma","Summit Up (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4sumita ,sc4sus, sc4_200_4ra, sc4sumit, sc4_state, sc4sumit, ROT0, "Mazooma","Summit Up (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4sumitb ,sc4sus, sc4_200_4ra, sc4sumit, sc4_state, sc4sumit, ROT0, "Mazooma","Summit Up (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4sumitc ,sc4sus, sc4_200_4ra, sc4sumit, sc4_state, sc4sumit, ROT0, "Mazooma","Summit Up (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sumit ,0, sc4_200_4ra, sc4sumit, sc4_state, sc4sumit, ROT0, "Mazooma","Summit Up (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sumita ,sc4sus, sc4_200_4ra, sc4sumit, sc4_state, sc4sumit, ROT0, "Mazooma","Summit Up (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sumitb ,sc4sus, sc4_200_4ra, sc4sumit, sc4_state, sc4sumit, ROT0, "Mazooma","Summit Up (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sumitc ,sc4sus, sc4_200_4ra, sc4sumit, sc4_state, sc4sumit, ROT0, "Mazooma","Summit Up (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4tpsht ) // this structure is generated
PORT_INCLUDE( sc4_base )
@@ -46475,14 +46475,14 @@ INPUT_PORTS_START( sc4tpsht ) // this structure is generated
INPUT_PORTS_END
// PR2211 TOP OF THE SHOTS TOTS SOUNDS TOP OF THE SHOTS
-GAMEL( 200?, sc4tpsht ,0, sc4, sc4tpsht, sc4_state, sc4, ROT0, "Mazooma","Top Of The Shots (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tpshta ,sc4tpsht, sc4, sc4tpsht, sc4_state, sc4, ROT0, "Mazooma","Top Of The Shots (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tpshtb ,sc4tpsht, sc4, sc4tpsht, sc4_state, sc4, ROT0, "Mazooma","Top Of The Shots (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tpshtc ,sc4tpsht, sc4, sc4tpsht, sc4_state, sc4, ROT0, "Mazooma","Top Of The Shots (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tpshtd ,sc4tpsht, sc4, sc4tpsht, sc4_state, sc4, ROT0, "Mazooma","Top Of The Shots (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tpshte ,sc4tpsht, sc4, sc4tpsht, sc4_state, sc4, ROT0, "Mazooma","Top Of The Shots (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tpshtf ,sc4tpsht, sc4, sc4tpsht, sc4_state, sc4, ROT0, "Mazooma","Top Of The Shots (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tpshtg ,sc4tpsht, sc4, sc4tpsht, sc4_state, sc4, ROT0, "Mazooma","Top Of The Shots (Mazooma) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tpsht ,0, sc4, sc4tpsht, sc4_state, sc4, ROT0, "Mazooma","Top Of The Shots (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tpshta ,sc4tpsht, sc4, sc4tpsht, sc4_state, sc4, ROT0, "Mazooma","Top Of The Shots (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tpshtb ,sc4tpsht, sc4, sc4tpsht, sc4_state, sc4, ROT0, "Mazooma","Top Of The Shots (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tpshtc ,sc4tpsht, sc4, sc4tpsht, sc4_state, sc4, ROT0, "Mazooma","Top Of The Shots (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tpshtd ,sc4tpsht, sc4, sc4tpsht, sc4_state, sc4, ROT0, "Mazooma","Top Of The Shots (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tpshte ,sc4tpsht, sc4, sc4tpsht, sc4_state, sc4, ROT0, "Mazooma","Top Of The Shots (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tpshtf ,sc4tpsht, sc4, sc4tpsht, sc4_state, sc4, ROT0, "Mazooma","Top Of The Shots (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tpshtg ,sc4tpsht, sc4, sc4tpsht, sc4_state, sc4, ROT0, "Mazooma","Top Of The Shots (Mazooma) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4adren ) // this structure is generated
@@ -46531,10 +46531,10 @@ INPUT_PORTS_END
// does not want the 'COTL SOUNDS' from Cash On The Lash
// PR2118 ADRENALIN COTL SOUNDS ADRENALIN
-GAMEL( 200?, sc4adren ,0, sc4, sc4adren, sc4_state, sc4, ROT0, "Mazooma","Adrenalin (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4adrena ,sc4adren, sc4, sc4adren, sc4_state, sc4, ROT0, "Mazooma","Adrenalin (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4adrenb ,sc4adren, sc4, sc4adren, sc4_state, sc4, ROT0, "Mazooma","Adrenalin (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4adrenc ,sc4adren, sc4, sc4adren, sc4_state, sc4, ROT0, "Mazooma","Adrenalin (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4adren ,0, sc4, sc4adren, sc4_state, sc4, ROT0, "Mazooma","Adrenalin (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4adrena ,sc4adren, sc4, sc4adren, sc4_state, sc4, ROT0, "Mazooma","Adrenalin (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4adrenb ,sc4adren, sc4, sc4adren, sc4_state, sc4, ROT0, "Mazooma","Adrenalin (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4adrenc ,sc4adren, sc4, sc4adren, sc4_state, sc4, ROT0, "Mazooma","Adrenalin (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4bingb ) // this structure is generated
@@ -46589,8 +46589,8 @@ INPUT_PORTS_END
// check if Side Splitter sound is correct
// RNG ERROR 99
// PR21xx BINGO BELLE SSPT SOUNDS BINGO BELLE
-GAMEL( 200?, sc4bingb ,0, sc4, sc4bingb, sc4_state, sc4, ROT0, "Mazooma","Bingo Belle (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bingba ,sc4bingb, sc4, sc4bingb, sc4_state, sc4, ROT0, "Mazooma","Bingo Belle (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bingb ,0, sc4, sc4bingb, sc4_state, sc4, ROT0, "Mazooma","Bingo Belle (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bingba ,sc4bingb, sc4, sc4bingb, sc4_state, sc4, ROT0, "Mazooma","Bingo Belle (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4cerup ) // this structure is generated
PORT_INCLUDE( sc4_base )
@@ -46641,7 +46641,7 @@ INPUT_PORTS_END
// PR2020 CASH ERUPTION ERUP SOUNDS CASH ERUPTION
-GAMEL( 200?, sc4cerup ,0, sc4, sc4cerup, sc4_state, sc4, ROT0, "Mazooma","Cash Eruption (Mazooma) (Scorpion 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cerup ,0, sc4, sc4cerup, sc4_state, sc4, ROT0, "Mazooma","Cash Eruption (Mazooma) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4cexpl ) // this structure is generated
PORT_INCLUDE( sc4_base )
@@ -46693,22 +46693,22 @@ INPUT_PORTS_START( sc4cexpl ) // this structure is generated
INPUT_PORTS_END
// PR2076 CASH EXPLOSION CEXP SOUNDS CASH EXPLSION
-GAMEL( 200?, sc4cexpl ,0, sc4, sc4cexpl, sc4_state, sc4, ROT0, "Mazooma","Cash Explosion (PR2076) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cexpla ,sc4cexpl, sc4, sc4cexpl, sc4_state, sc4, ROT0, "Mazooma","Cash Explosion (PR2076) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cexplb ,sc4cexpl, sc4, sc4cexpl, sc4_state, sc4, ROT0, "Mazooma","Cash Explosion (PR2076) (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cexplc ,sc4cexpl, sc4, sc4cexpl, sc4_state, sc4, ROT0, "Mazooma","Cash Explosion (PR2076) (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cexplf ,sc4cexpl, sc4, sc4cexpl, sc4_state, sc4, ROT0, "Mazooma","Cash Explosion (PR2076) (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cexplg ,sc4cexpl, sc4, sc4cexpl, sc4_state, sc4, ROT0, "Mazooma","Cash Explosion (PR2076) (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cexpl ,0, sc4, sc4cexpl, sc4_state, sc4, ROT0, "Mazooma","Cash Explosion (PR2076) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cexpla ,sc4cexpl, sc4, sc4cexpl, sc4_state, sc4, ROT0, "Mazooma","Cash Explosion (PR2076) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cexplb ,sc4cexpl, sc4, sc4cexpl, sc4_state, sc4, ROT0, "Mazooma","Cash Explosion (PR2076) (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cexplc ,sc4cexpl, sc4, sc4cexpl, sc4_state, sc4, ROT0, "Mazooma","Cash Explosion (PR2076) (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cexplf ,sc4cexpl, sc4, sc4cexpl, sc4_state, sc4, ROT0, "Mazooma","Cash Explosion (PR2076) (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cexplg ,sc4cexpl, sc4, sc4cexpl, sc4_state, sc4, ROT0, "Mazooma","Cash Explosion (PR2076) (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2120 CASH EXPLOSION CEXP SOUNDS CASH EXPLSION
-GAMEL( 200?, sc4cexpld ,sc4cexpl, sc4, sc4cexpl, sc4_state, sc4, ROT0, "Mazooma","Cash Explosion (PR2120) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cexple ,sc4cexpl, sc4, sc4cexpl, sc4_state, sc4, ROT0, "Mazooma","Cash Explosion (PR2120) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cexpld ,sc4cexpl, sc4, sc4cexpl, sc4_state, sc4, ROT0, "Mazooma","Cash Explosion (PR2120) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cexple ,sc4cexpl, sc4, sc4cexpl, sc4_state, sc4, ROT0, "Mazooma","Cash Explosion (PR2120) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2062 CASINO ROYALE CROY SOUNDS CASINO ROYALE
-GAMEL( 200?, sc4casry ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Casino Royale (PR2062) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4casryc ,sc4casry, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Casino Royale (PR2062) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4casry ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Casino Royale (PR2062) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4casryc ,sc4casry, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Casino Royale (PR2062) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2075 CASINO ROYALE DUCRV46 CROY CROY SOUNDS CASINO ROYALE (Jumping Bean copyright?)
-GAMEL( 200?, sc4casryd ,sc4casry, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Casino Royale (PR2075) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4casrye ,sc4casry, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Casino Royale (PR2075) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4casryd ,sc4casry, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Casino Royale (PR2075) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4casrye ,sc4casry, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Casino Royale (PR2075) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// I guess this isn't a fruit machine
INPUT_PORTS_START( sc4casrya ) // this structure is generated
@@ -46753,8 +46753,8 @@ INPUT_PORTS_START( sc4casrya ) // this structure is generated
INPUT_PORTS_END
// PR2073, CZECH CASINO ROYALE.......................CROY SOUNDS... (not standard header)
-GAMEL( 200?, sc4casrya ,sc4casry, sc4, sc4casrya, sc4_state, sc4, ROT0, "Mazooma","Casino Royale (PR2073) (Czech) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4casryb ,sc4casry, sc4, sc4casrya, sc4_state, sc4, ROT0, "Mazooma","Casino Royale (PR2073) (Czech) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4casrya ,sc4casry, sc4, sc4casrya, sc4_state, sc4, ROT0, "Mazooma","Casino Royale (PR2073) (Czech) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4casryb ,sc4casry, sc4, sc4casrya, sc4_state, sc4, ROT0, "Mazooma","Casino Royale (PR2073) (Czech) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4clucl ) // this structure is generated
PORT_INCLUDE( sc4_base )
@@ -46814,8 +46814,8 @@ INPUT_PORTS_START( sc4clucl ) // this structure is generated
INPUT_PORTS_END
// PR2237 CLUB CLUEDO CLUB CLUEDO CLUB CCLU SOUNDS CLUB CLUEDO
-GAMEL( 200?, sc4clucl ,0, sc4, sc4clucl, sc4_state, sc4, ROT0, "Mazooma","Cluedo Club (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4clucla ,sc4clucl, sc4, sc4clucl, sc4_state, sc4, ROT0, "Mazooma","Cluedo Club (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4clucl ,0, sc4, sc4clucl, sc4_state, sc4, ROT0, "Mazooma","Cluedo Club (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4clucla ,sc4clucl, sc4, sc4clucl, sc4_state, sc4, ROT0, "Mazooma","Cluedo Club (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4cyc ) // this structure is generated
PORT_INCLUDE( sc4_base )
@@ -46881,11 +46881,11 @@ INPUT_PORTS_END
// half size sound rom, or missing a rom
// PR2058 COUNT YER CASH PR2058 COUNT YER CASH SOUNDS11
-GAMEL( 200?, sc4cyc ,0, sc4, sc4cyc, sc4_state, sc4, ROT0, "Mazooma","Count Yer Cash (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cyca ,sc4cyc, sc4, sc4cyc, sc4_state, sc4, ROT0, "Mazooma","Count Yer Cash (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cycb ,sc4cyc, sc4, sc4cyc, sc4_state, sc4, ROT0, "Mazooma","Count Yer Cash (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cycc ,sc4cyc, sc4, sc4cyc, sc4_state, sc4, ROT0, "Mazooma","Count Yer Cash (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cycd ,sc4cyc, sc4, sc4cyc, sc4_state, sc4, ROT0, "Mazooma","Count Yer Cash (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cyc ,0, sc4, sc4cyc, sc4_state, sc4, ROT0, "Mazooma","Count Yer Cash (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cyca ,sc4cyc, sc4, sc4cyc, sc4_state, sc4, ROT0, "Mazooma","Count Yer Cash (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cycb ,sc4cyc, sc4, sc4cyc, sc4_state, sc4, ROT0, "Mazooma","Count Yer Cash (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cycc ,sc4cyc, sc4, sc4cyc, sc4_state, sc4, ROT0, "Mazooma","Count Yer Cash (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cycd ,sc4cyc, sc4, sc4cyc, sc4_state, sc4, ROT0, "Mazooma","Count Yer Cash (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4cyccl ) // this structure is generated
PORT_INCLUDE( sc4_base )
@@ -46951,10 +46951,10 @@ INPUT_PORTS_END
// half size sound rom, or missing a rom
// PR2092 CLUB COUNT YER CASH COUNT YER CASH CLUB CLCC SOUNDS
-GAMEL( 200?, sc4cyccl ,0, sc4, sc4cyccl, sc4_state, sc4, ROT0, "Mazooma","Count Yer Cash Club (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cyccla ,sc4cyccl, sc4, sc4cyccl, sc4_state, sc4, ROT0, "Mazooma","Count Yer Cash Club (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cycclb ,sc4cyccl, sc4, sc4cyccl, sc4_state, sc4, ROT0, "Mazooma","Count Yer Cash Club (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cycclc ,sc4cyccl, sc4, sc4cyccl, sc4_state, sc4, ROT0, "Mazooma","Count Yer Cash Club (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cyccl ,0, sc4, sc4cyccl, sc4_state, sc4, ROT0, "Mazooma","Count Yer Cash Club (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cyccla ,sc4cyccl, sc4, sc4cyccl, sc4_state, sc4, ROT0, "Mazooma","Count Yer Cash Club (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cycclb ,sc4cyccl, sc4, sc4cyccl, sc4_state, sc4, ROT0, "Mazooma","Count Yer Cash Club (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cycclc ,sc4cyccl, sc4, sc4cyccl, sc4_state, sc4, ROT0, "Mazooma","Count Yer Cash Club (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4supst ) // this structure is generated
PORT_INCLUDE( sc4_base )
@@ -46998,8 +46998,8 @@ INPUT_PORTS_START( sc4supst ) // this structure is generated
INPUT_PORTS_END
// PR2206 STREAKX STRX SOUNDS SUPER STREAX
-GAMEL( 200?, sc4supst ,0, sc4, sc4supst, sc4_state, sc4, ROT0, "Mazooma","Super Streax (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4supsta ,sc4supst, sc4, sc4supst, sc4_state, sc4, ROT0, "Mazooma","Super Streax (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4supst ,0, sc4, sc4supst, sc4_state, sc4, ROT0, "Mazooma","Super Streax (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4supsta ,sc4supst, sc4, sc4supst, sc4_state, sc4, ROT0, "Mazooma","Super Streax (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4sf ) // this structure is generated
PORT_INCLUDE( sc4_base )
@@ -47049,11 +47049,11 @@ INPUT_PORTS_START( sc4sf ) // this structure is generated
INPUT_PORTS_END
// NUMBER PR2024 STREET FIGHTER STRF SOUNDS STREET FIGHTER
-GAMEL( 200?, sc4sf ,0, sc4, sc4sf, sc4_state, sc4, ROT0, "Mazooma","Street Fighter (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4sfa ,sc4sf, sc4, sc4sf, sc4_state, sc4, ROT0, "Mazooma","Street Fighter (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4sfb ,sc4sf, sc4, sc4sf, sc4_state, sc4, ROT0, "Mazooma","Street Fighter (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4sfc ,sc4sf, sc4, sc4sf, sc4_state, sc4, ROT0, "Mazooma","Street Fighter (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4sfd ,sc4sf, sc4, sc4sf, sc4_state, sc4, ROT0, "Mazooma","Street Fighter (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sf ,0, sc4, sc4sf, sc4_state, sc4, ROT0, "Mazooma","Street Fighter (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sfa ,sc4sf, sc4, sc4sf, sc4_state, sc4, ROT0, "Mazooma","Street Fighter (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sfb ,sc4sf, sc4, sc4sf, sc4_state, sc4, ROT0, "Mazooma","Street Fighter (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sfc ,sc4sf, sc4, sc4sf, sc4_state, sc4, ROT0, "Mazooma","Street Fighter (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sfd ,sc4sf, sc4, sc4sf, sc4_state, sc4, ROT0, "Mazooma","Street Fighter (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4hyde ) // this structure is generated
PORT_INCLUDE( sc4_base )
@@ -47106,10 +47106,10 @@ INPUT_PORTS_START( sc4hyde ) // this structure is generated
INPUT_PORTS_END
// PR2036 HYDE & STREAK HYDE SOUNDS HYDE & STREAK
-GAMEL( 200?, sc4hyde ,0, sc4, sc4hyde, sc4_state, sc4, ROT0, "Mazooma","Hyde & Streak (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hydea ,sc4hyde, sc4, sc4hyde, sc4_state, sc4, ROT0, "Mazooma","Hyde & Streak (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hydeb ,sc4hyde, sc4, sc4hyde, sc4_state, sc4, ROT0, "Mazooma","Hyde & Streak (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hydec ,sc4hyde, sc4, sc4hyde, sc4_state, sc4, ROT0, "Mazooma","Hyde & Streak (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hyde ,0, sc4, sc4hyde, sc4_state, sc4, ROT0, "Mazooma","Hyde & Streak (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hydea ,sc4hyde, sc4, sc4hyde, sc4_state, sc4, ROT0, "Mazooma","Hyde & Streak (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hydeb ,sc4hyde, sc4, sc4hyde, sc4_state, sc4, ROT0, "Mazooma","Hyde & Streak (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hydec ,sc4hyde, sc4, sc4hyde, sc4_state, sc4, ROT0, "Mazooma","Hyde & Streak (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4rtclb ) // this structure is generated
PORT_INCLUDE( sc4_base )
@@ -47176,19 +47176,19 @@ INPUT_PORTS_START( sc4rtclb ) // this structure is generated
INPUT_PORTS_END
// PR2051 CLUB ROLLING THUNDER CLRT SOUNDS ROLLING THUNDER
-GAMEL( 200?, sc4rtclb ,0, sc4, sc4rtclb, sc4_state, sc4, ROT0, "Mazooma","Rolling Thunder Club (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rtclba ,sc4rtclb, sc4, sc4rtclb, sc4_state, sc4, ROT0, "Mazooma","Rolling Thunder Club (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rtclb ,0, sc4, sc4rtclb, sc4_state, sc4, ROT0, "Mazooma","Rolling Thunder Club (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rtclba ,sc4rtclb, sc4, sc4rtclb, sc4_state, sc4, ROT0, "Mazooma","Rolling Thunder Club (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// doesn't like the sound roms we have (WILDJACK SOUNDS)
// PR0000 WILD JACKPOTS WJPT SOUNDS WILD JACKPOTS
-GAMEL( 200?, sc4wldjk ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Jackpots (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wldjka ,sc4wldjk, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Jackpots (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wldjkb ,sc4wldjk, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Jackpots (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wldjkc ,sc4wldjk, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Jackpots (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wldjkd ,sc4wldjk, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Jackpots (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wldjke ,sc4wldjk, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Jackpots (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wldjkf ,sc4wldjk, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Jackpots (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wldjkg ,sc4wldjk, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Jackpots (Mazooma) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wldjk ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Jackpots (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wldjka ,sc4wldjk, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Jackpots (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wldjkb ,sc4wldjk, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Jackpots (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wldjkc ,sc4wldjk, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Jackpots (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wldjkd ,sc4wldjk, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Jackpots (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wldjke ,sc4wldjk, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Jackpots (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wldjkf ,sc4wldjk, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Jackpots (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wldjkg ,sc4wldjk, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Jackpots (Mazooma) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// only sc4jive has this structure intact
INPUT_PORTS_START( sc4jive ) // this structure is generated
@@ -47239,12 +47239,12 @@ INPUT_PORTS_START( sc4jive ) // this structure is generated
INPUT_PORTS_END
// PR2096 JIVE MONEY JIVE SOUNDS JIVE MONEY
-GAMEL( 200?, sc4jive ,0, sc4, sc4jive, sc4_state, sc4, ROT0, "Mazooma","Jive Money (PR2096) (Mazooma) (Scorpion 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jive ,0, sc4, sc4jive, sc4_state, sc4, ROT0, "Mazooma","Jive Money (PR2096) (Mazooma) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2160 JIVE MONEY JMON SOUNDS JIVE MONEY
-GAMEL( 200?, sc4jivea ,sc4jive, sc4, sc4jive, sc4_state, sc4, ROT0, "Mazooma","Jive Money (PR2160) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jiveb ,sc4jive, sc4, sc4jive, sc4_state, sc4, ROT0, "Mazooma","Jive Money (PR2160) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jivec ,sc4jive, sc4, sc4jive, sc4_state, sc4, ROT0, "Mazooma","Jive Money (PR2160) (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jived ,sc4jive, sc4, sc4jive, sc4_state, sc4, ROT0, "Mazooma","Jive Money (PR2160) (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jivea ,sc4jive, sc4, sc4jive, sc4_state, sc4, ROT0, "Mazooma","Jive Money (PR2160) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jiveb ,sc4jive, sc4, sc4jive, sc4_state, sc4, ROT0, "Mazooma","Jive Money (PR2160) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jivec ,sc4jive, sc4, sc4jive, sc4_state, sc4, ROT0, "Mazooma","Jive Money (PR2160) (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jived ,sc4jive, sc4, sc4jive, sc4_state, sc4, ROT0, "Mazooma","Jive Money (PR2160) (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4mclb ) // this structure is generated
PORT_INCLUDE( sc4_base )
@@ -47305,12 +47305,12 @@ INPUT_PORTS_END
// no sound roms
// PR2164 CLUB MONOPOLY CLB MONOPOLY WOW CLUB CWOW SOUNDS CLUB MONOPOLOY
-GAMEL( 200?, sc4mclb ,0, sc4, sc4mclb, sc4_state, sc4, ROT0, "Mazooma","Monopoly Club (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mclba ,sc4mclb, sc4, sc4mclb, sc4_state, sc4, ROT0, "Mazooma","Monopoly Club (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mclbb ,sc4mclb, sc4, sc4mclb, sc4_state, sc4, ROT0, "Mazooma","Monopoly Club (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mclbc ,sc4mclb, sc4, sc4mclb, sc4_state, sc4, ROT0, "Mazooma","Monopoly Club (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mclbd ,sc4mclb, sc4, sc4mclb, sc4_state, sc4, ROT0, "Mazooma","Monopoly Club (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mclbe ,sc4mclb, sc4, sc4mclb, sc4_state, sc4, ROT0, "Mazooma","Monopoly Club (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mclb ,0, sc4, sc4mclb, sc4_state, sc4, ROT0, "Mazooma","Monopoly Club (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mclba ,sc4mclb, sc4, sc4mclb, sc4_state, sc4, ROT0, "Mazooma","Monopoly Club (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mclbb ,sc4mclb, sc4, sc4mclb, sc4_state, sc4, ROT0, "Mazooma","Monopoly Club (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mclbc ,sc4mclb, sc4, sc4mclb, sc4_state, sc4, ROT0, "Mazooma","Monopoly Club (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mclbd ,sc4mclb, sc4, sc4mclb, sc4_state, sc4, ROT0, "Mazooma","Monopoly Club (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mclbe ,sc4mclb, sc4, sc4mclb, sc4_state, sc4, ROT0, "Mazooma","Monopoly Club (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4monot ) // this structure is generated
@@ -47353,10 +47353,10 @@ INPUT_PORTS_START( sc4monot ) // this structure is generated
// 0x0010 - "deflt" // standard input (expected here)
INPUT_PORTS_END
-GAMEL( 200?, sc4monot ,0, sc4, sc4monot, sc4_state, sc4, ROT0, "Mazooma","Monopoly TTT (PR2133) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR2133MONOPOLY TTT MONOPOLY TTT MAZ MONL SOUNDS MONOPOLY
-GAMEL( 200?, sc4monota ,sc4monot, sc4, sc4monot, sc4_state, sc4, ROT0, "Mazooma","Monopoly TTT (PR2133) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4monotb ,sc4monot, sc4, sc4monot, sc4_state, sc4, ROT0, "Mazooma","Monopoly TTT (PR2133) (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4monotc ,sc4monot, sc4, sc4monot, sc4_state, sc4, ROT0, "Mazooma","Monopoly TTT (PR2133) (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR2133MONOPOLY TTT MONOPOLY TTT ARCADE MONL SOUNDS MONOPOLY
+GAMEL( 200?, sc4monot ,0, sc4, sc4monot, sc4_state, sc4, ROT0, "Mazooma","Monopoly TTT (PR2133) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR2133MONOPOLY TTT MONOPOLY TTT MAZ MONL SOUNDS MONOPOLY
+GAMEL( 200?, sc4monota ,sc4monot, sc4, sc4monot, sc4_state, sc4, ROT0, "Mazooma","Monopoly TTT (PR2133) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4monotb ,sc4monot, sc4, sc4monot, sc4_state, sc4, ROT0, "Mazooma","Monopoly TTT (PR2133) (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4monotc ,sc4monot, sc4, sc4monot, sc4_state, sc4, ROT0, "Mazooma","Monopoly TTT (PR2133) (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR2133MONOPOLY TTT MONOPOLY TTT ARCADE MONL SOUNDS MONOPOLY
INPUT_PORTS_START( sc4r2r ) // this structure is generated
PORT_INCLUDE( sc4_base )
@@ -47410,10 +47410,10 @@ INPUT_PORTS_START( sc4r2r ) // this structure is generated
INPUT_PORTS_END
// PR2037 REEL TO REEL RTOR SOUNDS REEL 2 REEL
-GAMEL( 200?, sc4r2r ,0, sc4, sc4r2r, sc4_state, sc4, ROT0, "Mazooma","Reel To Reel (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4r2ra ,sc4r2r, sc4, sc4r2r, sc4_state, sc4, ROT0, "Mazooma","Reel To Reel (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4r2rb ,sc4r2r, sc4, sc4r2r, sc4_state, sc4, ROT0, "Mazooma","Reel To Reel (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4r2rc ,sc4r2r, sc4, sc4r2r, sc4_state, sc4, ROT0, "Mazooma","Reel To Reel (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4r2r ,0, sc4, sc4r2r, sc4_state, sc4, ROT0, "Mazooma","Reel To Reel (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4r2ra ,sc4r2r, sc4, sc4r2r, sc4_state, sc4, ROT0, "Mazooma","Reel To Reel (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4r2rb ,sc4r2r, sc4, sc4r2r, sc4_state, sc4, ROT0, "Mazooma","Reel To Reel (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4r2rc ,sc4r2r, sc4, sc4r2r, sc4_state, sc4, ROT0, "Mazooma","Reel To Reel (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4revo ) // this structure is generated
PORT_INCLUDE( sc4_base )
@@ -47466,12 +47466,12 @@ INPUT_PORTS_START( sc4revo ) // this structure is generated
INPUT_PORTS_END
// PR2020 REVOLVER REV SOUNDS REVOLVER
-GAMEL( 200?, sc4revo ,0, sc4, sc4revo, sc4_state, sc4, ROT0, "Mazooma","Revolver (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4revoa ,sc4revo, sc4, sc4revo, sc4_state, sc4, ROT0, "Mazooma","Revolver (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4revob ,sc4revo, sc4, sc4revo, sc4_state, sc4, ROT0, "Mazooma","Revolver (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4revoc ,sc4revo, sc4, sc4revo, sc4_state, sc4, ROT0, "Mazooma","Revolver (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4revod ,sc4revo, sc4, sc4revo, sc4_state, sc4, ROT0, "Mazooma","Revolver (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4revoe ,sc4revo, sc4, sc4revo, sc4_state, sc4, ROT0, "Mazooma","Revolver (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4revo ,0, sc4, sc4revo, sc4_state, sc4, ROT0, "Mazooma","Revolver (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4revoa ,sc4revo, sc4, sc4revo, sc4_state, sc4, ROT0, "Mazooma","Revolver (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4revob ,sc4revo, sc4, sc4revo, sc4_state, sc4, ROT0, "Mazooma","Revolver (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4revoc ,sc4revo, sc4, sc4revo, sc4_state, sc4, ROT0, "Mazooma","Revolver (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4revod ,sc4revo, sc4, sc4revo, sc4_state, sc4, ROT0, "Mazooma","Revolver (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4revoe ,sc4revo, sc4, sc4revo, sc4_state, sc4, ROT0, "Mazooma","Revolver (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4slih ) // this structure is generated
PORT_INCLUDE( sc4_base )
@@ -47521,12 +47521,12 @@ INPUT_PORTS_END
// half size sound roms
// PR2145 SOME LIKE IT HOT SLIH SOUNDS SOME LIKE IT HOT
-GAMEL( 200?, sc4slih ,0, sc4, sc4slih, sc4_state, sc4, ROT0, "Mazooma","Some Like It Hot (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4sliha ,sc4slih, sc4, sc4slih, sc4_state, sc4, ROT0, "Mazooma","Some Like It Hot (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4slihb ,sc4slih, sc4, sc4slih, sc4_state, sc4, ROT0, "Mazooma","Some Like It Hot (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4slihc ,sc4slih, sc4, sc4slih, sc4_state, sc4, ROT0, "Mazooma","Some Like It Hot (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4slihd ,sc4slih, sc4, sc4slih, sc4_state, sc4, ROT0, "Mazooma","Some Like It Hot (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4slihe ,sc4slih, sc4, sc4slih, sc4_state, sc4, ROT0, "Mazooma","Some Like It Hot (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4slih ,0, sc4, sc4slih, sc4_state, sc4, ROT0, "Mazooma","Some Like It Hot (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sliha ,sc4slih, sc4, sc4slih, sc4_state, sc4, ROT0, "Mazooma","Some Like It Hot (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4slihb ,sc4slih, sc4, sc4slih, sc4_state, sc4, ROT0, "Mazooma","Some Like It Hot (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4slihc ,sc4slih, sc4, sc4slih, sc4_state, sc4, ROT0, "Mazooma","Some Like It Hot (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4slihd ,sc4slih, sc4, sc4slih, sc4_state, sc4, ROT0, "Mazooma","Some Like It Hot (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4slihe ,sc4slih, sc4, sc4slih, sc4_state, sc4, ROT0, "Mazooma","Some Like It Hot (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
INPUT_PORTS_START( sc4gcb ) // this structure is generated
PORT_INCLUDE( sc4_base )
@@ -47581,17 +47581,17 @@ INPUT_PORTS_END
// no sound roms
// PR2125 GRAND BLASTER CASH GRAN SOUNDS GRAND BLASTER
-GAMEL( 200?, sc4gcb ,0, sc4, sc4gcb, sc4_state, sc4, ROT0, "Mazooma","Grand Blaster Cash (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gcba ,sc4gcb, sc4, sc4gcb, sc4_state, sc4, ROT0, "Mazooma","Grand Blaster Cash (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gcbb ,sc4gcb, sc4, sc4gcb, sc4_state, sc4, ROT0, "Mazooma","Grand Blaster Cash (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gcbc ,sc4gcb, sc4, sc4gcb, sc4_state, sc4, ROT0, "Mazooma","Grand Blaster Cash (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gcbd ,sc4gcb, sc4, sc4gcb, sc4_state, sc4, ROT0, "Mazooma","Grand Blaster Cash (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gcbe ,sc4gcb, sc4, sc4gcb, sc4_state, sc4, ROT0, "Mazooma","Grand Blaster Cash (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gcbf ,sc4gcb, sc4, sc4gcb, sc4_state, sc4, ROT0, "Mazooma","Grand Blaster Cash (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gcbg ,sc4gcb, sc4, sc4gcb, sc4_state, sc4, ROT0, "Mazooma","Grand Blaster Cash (Mazooma) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gcbh ,sc4gcb, sc4, sc4gcb, sc4_state, sc4, ROT0, "Mazooma","Grand Blaster Cash (Mazooma) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gcbi ,sc4gcb, sc4, sc4gcb, sc4_state, sc4, ROT0, "Mazooma","Grand Blaster Cash (Mazooma) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gcbj ,sc4gcb, sc4, sc4gcb, sc4_state, sc4, ROT0, "Mazooma","Grand Blaster Cash (Mazooma) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gcb ,0, sc4, sc4gcb, sc4_state, sc4, ROT0, "Mazooma","Grand Blaster Cash (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gcba ,sc4gcb, sc4, sc4gcb, sc4_state, sc4, ROT0, "Mazooma","Grand Blaster Cash (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gcbb ,sc4gcb, sc4, sc4gcb, sc4_state, sc4, ROT0, "Mazooma","Grand Blaster Cash (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gcbc ,sc4gcb, sc4, sc4gcb, sc4_state, sc4, ROT0, "Mazooma","Grand Blaster Cash (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gcbd ,sc4gcb, sc4, sc4gcb, sc4_state, sc4, ROT0, "Mazooma","Grand Blaster Cash (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gcbe ,sc4gcb, sc4, sc4gcb, sc4_state, sc4, ROT0, "Mazooma","Grand Blaster Cash (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gcbf ,sc4gcb, sc4, sc4gcb, sc4_state, sc4, ROT0, "Mazooma","Grand Blaster Cash (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gcbg ,sc4gcb, sc4, sc4gcb, sc4_state, sc4, ROT0, "Mazooma","Grand Blaster Cash (Mazooma) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gcbh ,sc4gcb, sc4, sc4gcb, sc4_state, sc4, ROT0, "Mazooma","Grand Blaster Cash (Mazooma) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gcbi ,sc4gcb, sc4, sc4gcb, sc4_state, sc4, ROT0, "Mazooma","Grand Blaster Cash (Mazooma) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gcbj ,sc4gcb, sc4, sc4gcb, sc4_state, sc4, ROT0, "Mazooma","Grand Blaster Cash (Mazooma) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
/****************************************************************************************************************************************************************************************************************/
@@ -47614,12 +47614,12 @@ DRIVER_INIT_MEMBER(sc4_state,sc4spark)
// PR6912 SOUTH PARK PR6912 SOUTH PARK SOUNDS11 SOUTH PARK
-GAMEL( 200?, sc4spark ,0, sc4_4reel, sc4, sc4_state, sc4spark, ROT0, "BFM","South Park (BFM) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4sparka ,sc4spark, sc4_4reel, sc4, sc4_state, sc4spark, ROT0, "BFM","South Park (BFM) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4sparkb ,sc4spark, sc4_4reel, sc4, sc4_state, sc4spark, ROT0, "BFM","South Park (BFM) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4sparkc ,sc4spark, sc4_4reel, sc4, sc4_state, sc4spark, ROT0, "BFM","South Park (BFM) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4sparkd ,sc4spark, sc4_4reel, sc4, sc4_state, sc4spark, ROT0, "BFM","South Park (BFM) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4sparke ,sc4spark, sc4_4reel, sc4, sc4_state, sc4spark, ROT0, "BFM","South Park (BFM) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4spark ,0, sc4_4reel, sc4, sc4_state, sc4spark, ROT0, "BFM","South Park (BFM) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sparka ,sc4spark, sc4_4reel, sc4, sc4_state, sc4spark, ROT0, "BFM","South Park (BFM) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sparkb ,sc4spark, sc4_4reel, sc4, sc4_state, sc4spark, ROT0, "BFM","South Park (BFM) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sparkc ,sc4spark, sc4_4reel, sc4, sc4_state, sc4spark, ROT0, "BFM","South Park (BFM) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sparkd ,sc4spark, sc4_4reel, sc4, sc4_state, sc4spark, ROT0, "BFM","South Park (BFM) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sparke ,sc4spark, sc4_4reel, sc4, sc4_state, sc4spark, ROT0, "BFM","South Park (BFM) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -47630,10 +47630,10 @@ DRIVER_INIT_MEMBER(sc4_state,sc4brkfs)
// PR6910 BIG BREAKFAST PR6910 BRKF SOUNDS11 BIG BREAKFAST
-GAMEL( 200?, sc4brkfs ,0, sc4_4reel, sc4, sc4_state, sc4brkfs, ROT0, "BFM","The Big Breakfast (BFM) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4brkfsa ,sc4brkfs, sc4_4reel, sc4, sc4_state, sc4brkfs, ROT0, "BFM","The Big Breakfast (BFM) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4brkfsb ,sc4brkfs, sc4_4reel, sc4, sc4_state, sc4brkfs, ROT0, "BFM","The Big Breakfast (BFM) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4brkfsc ,sc4brkfs, sc4_4reel, sc4, sc4_state, sc4brkfs, ROT0, "BFM","The Big Breakfast (BFM) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4brkfs ,0, sc4_4reel, sc4, sc4_state, sc4brkfs, ROT0, "BFM","The Big Breakfast (BFM) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4brkfsa ,sc4brkfs, sc4_4reel, sc4, sc4_state, sc4brkfs, ROT0, "BFM","The Big Breakfast (BFM) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4brkfsb ,sc4brkfs, sc4_4reel, sc4, sc4_state, sc4brkfs, ROT0, "BFM","The Big Breakfast (BFM) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4brkfsc ,sc4brkfs, sc4_4reel, sc4, sc4_state, sc4brkfs, ROT0, "BFM","The Big Breakfast (BFM) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -47643,13 +47643,13 @@ DRIVER_INIT_MEMBER(sc4_state,sc4gslam)
}
// PR6934 GRAND SLAM PR6934 SLM2 SOUNDS11 GRAND SLAM
-GAMEL( 200?, sc4gslam ,0, sc4, sc4, sc4_state, sc4gslam, ROT0, "BFM","Grandslam Club (BFM) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gslama ,sc4gslam, sc4, sc4, sc4_state, sc4gslam, ROT0, "BFM","Grandslam Club (BFM) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gslamb ,sc4gslam, sc4, sc4, sc4_state, sc4gslam, ROT0, "BFM","Grandslam Club (BFM) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gslamc ,sc4gslam, sc4, sc4, sc4_state, sc4gslam, ROT0, "BFM","Grandslam Club (BFM) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gslamd ,sc4gslam, sc4, sc4, sc4_state, sc4gslam, ROT0, "BFM","Grandslam Club (BFM) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gslame ,sc4gslam, sc4, sc4, sc4_state, sc4gslam, ROT0, "BFM","Grandslam Club (BFM) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gslamf ,sc4gslam, sc4, sc4, sc4_state, sc4gslam, ROT0, "BFM","Grandslam Club (BFM) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gslam ,0, sc4, sc4, sc4_state, sc4gslam, ROT0, "BFM","Grandslam Club (BFM) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gslama ,sc4gslam, sc4, sc4, sc4_state, sc4gslam, ROT0, "BFM","Grandslam Club (BFM) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gslamb ,sc4gslam, sc4, sc4, sc4_state, sc4gslam, ROT0, "BFM","Grandslam Club (BFM) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gslamc ,sc4gslam, sc4, sc4, sc4_state, sc4gslam, ROT0, "BFM","Grandslam Club (BFM) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gslamd ,sc4gslam, sc4, sc4, sc4_state, sc4gslam, ROT0, "BFM","Grandslam Club (BFM) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gslame ,sc4gslam, sc4, sc4, sc4_state, sc4gslam, ROT0, "BFM","Grandslam Club (BFM) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gslamf ,sc4gslam, sc4, sc4, sc4_state, sc4gslam, ROT0, "BFM","Grandslam Club (BFM) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -47661,10 +47661,10 @@ DRIVER_INIT_MEMBER(sc4_state,sc4canca)
}
// PR7017CASINO CAN CAN CASH PR7017,Casino CAN CAN CASH, LINE SOUNDS CAN CAN CASH
-GAMEL( 200?, sc4canca ,0, sc4_4reel, sc4, sc4_state, sc4canca, ROT0, "Mazooma","Can Can Cash Casino (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cancaa ,sc4canca, sc4_4reel, sc4, sc4_state, sc4canca, ROT0, "Mazooma","Can Can Cash Casino (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cancab ,sc4canca, sc4_4reel, sc4, sc4_state, sc4canca, ROT0, "Mazooma","Can Can Cash Casino (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cancac ,sc4canca, sc4_4reel, sc4, sc4_state, sc4canca, ROT0, "Mazooma","Can Can Cash Casino (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4canca ,0, sc4_4reel, sc4, sc4_state, sc4canca, ROT0, "Mazooma","Can Can Cash Casino (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cancaa ,sc4canca, sc4_4reel, sc4, sc4_state, sc4canca, ROT0, "Mazooma","Can Can Cash Casino (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cancab ,sc4canca, sc4_4reel, sc4, sc4_state, sc4canca, ROT0, "Mazooma","Can Can Cash Casino (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cancac ,sc4canca, sc4_4reel, sc4, sc4_state, sc4canca, ROT0, "Mazooma","Can Can Cash Casino (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -47674,17 +47674,17 @@ DRIVER_INIT_MEMBER(sc4_state,sc4hotpr)
}
// PR6911 HOT PROPERTY PR6911 HOT PROPERTY SOUNDS11 HOT PROPERTY
-GAMEL( 200?, sc4hotpr ,0, sc4_4reel, sc4, sc4_state, sc4hotpr, ROT0, "BFM", "Hot Property (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hotprb ,sc4hotpr, sc4_4reel, sc4, sc4_state, sc4hotpr, ROT0, "BFM", "Hot Property (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hotprd ,sc4hotpr, sc4_4reel, sc4, sc4_state, sc4hotpr, ROT0, "BFM", "Hot Property (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hotpre ,sc4hotpr, sc4_4reel, sc4, sc4_state, sc4hotpr, ROT0, "BFM", "Hot Property (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hotpra ,sc4hotpr, sc4_4reel, sc4, sc4_state, sc4hotpr, ROT0, "BFM / Whitbread", "Hot Property (Bellfruit) (Scorpion 4) (Whitbread, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hotprc ,sc4hotpr, sc4_4reel, sc4, sc4_state, sc4hotpr, ROT0, "BFM / Whitbread", "Hot Property (Bellfruit) (Scorpion 4) (Whitbread, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hotpr ,0, sc4_4reel, sc4, sc4_state, sc4hotpr, ROT0, "BFM", "Hot Property (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hotprb ,sc4hotpr, sc4_4reel, sc4, sc4_state, sc4hotpr, ROT0, "BFM", "Hot Property (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hotprd ,sc4hotpr, sc4_4reel, sc4, sc4_state, sc4hotpr, ROT0, "BFM", "Hot Property (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hotpre ,sc4hotpr, sc4_4reel, sc4, sc4_state, sc4hotpr, ROT0, "BFM", "Hot Property (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hotpra ,sc4hotpr, sc4_4reel, sc4, sc4_state, sc4hotpr, ROT0, "BFM / Whitbread", "Hot Property (Bellfruit) (Scorpion 4) (Whitbread, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hotprc ,sc4hotpr, sc4_4reel, sc4, sc4_state, sc4hotpr, ROT0, "BFM / Whitbread", "Hot Property (Bellfruit) (Scorpion 4) (Whitbread, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// is this some kind of reworked / licensed version of Hot Property?
// PR6911 HOT PROPERTY PR6911 HOT PROPERTY SOUNDS11 $$ CASH 'N' BURN
-GAMEL( 200?, sc4cburn ,sc4hotpr, sc4_4reel, sc4, sc4_state, sc4hotpr, ROT0, "Qps","Cash 'n' Burn (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cburn ,sc4hotpr, sc4_4reel, sc4, sc4_state, sc4hotpr, ROT0, "Qps","Cash 'n' Burn (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR6911 HOT PROPERTY V4.0 PR6911 HOT PROPERTY SOUNDS11 $ CASH 'N' BURN
-GAMEL( 200?, sc4cburna ,sc4hotpr, sc4_4reel, sc4, sc4_state, sc4hotpr, ROT0, "Qps","Cash 'n' Burn (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cburna ,sc4hotpr, sc4_4reel, sc4, sc4_state, sc4hotpr, ROT0, "Qps","Cash 'n' Burn (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -47696,17 +47696,17 @@ DRIVER_INIT_MEMBER(sc4_state,sc4cnfr)
// PR6815 CASH N FRUIT PR6815 CASH N FRUIT SOUNDS11
-GAMEL( 200?, sc4cnfr ,0, sc4_4reel, sc4, sc4_state, sc4cnfr, ROT0, "BFM","Cash 'n' Fruit (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cnfra ,sc4cnfr, sc4_4reel, sc4, sc4_state, sc4cnfr, ROT0, "BFM","Cash 'n' Fruit (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cnfrb ,sc4cnfr, sc4_4reel, sc4, sc4_state, sc4cnfr, ROT0, "BFM","Cash 'n' Fruit (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cnfre ,sc4cnfr, sc4_4reel, sc4, sc4_state, sc4cnfr, ROT0, "BFM","Cash 'n' Fruit (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cnfrf ,sc4cnfr, sc4_4reel, sc4, sc4_state, sc4cnfr, ROT0, "BFM","Cash 'n' Fruit (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cnfrg ,sc4cnfr, sc4_4reel, sc4, sc4_state, sc4cnfr, ROT0, "BFM","Cash 'n' Fruit (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cnfr ,0, sc4_4reel, sc4, sc4_state, sc4cnfr, ROT0, "BFM","Cash 'n' Fruit (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cnfra ,sc4cnfr, sc4_4reel, sc4, sc4_state, sc4cnfr, ROT0, "BFM","Cash 'n' Fruit (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cnfrb ,sc4cnfr, sc4_4reel, sc4, sc4_state, sc4cnfr, ROT0, "BFM","Cash 'n' Fruit (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cnfre ,sc4cnfr, sc4_4reel, sc4, sc4_state, sc4cnfr, ROT0, "BFM","Cash 'n' Fruit (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cnfrf ,sc4cnfr, sc4_4reel, sc4, sc4_state, sc4cnfr, ROT0, "BFM","Cash 'n' Fruit (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cnfrg ,sc4cnfr, sc4_4reel, sc4, sc4_state, sc4cnfr, ROT0, "BFM","Cash 'n' Fruit (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR4615 CASH N FRUIT S+P98 PR6815 CASH N FRUIT SOUNDS11
-GAMEL( 200?, sc4cnfrc ,sc4cnfr, sc4_4reel, sc4, sc4_state, sc4cnfr, ROT0, "BFM","Cash 'n' Fruit S+P98 (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cnfrd ,sc4cnfr, sc4_4reel, sc4, sc4_state, sc4cnfr, ROT0, "BFM","Cash 'n' Fruit S+P98 (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cnfrh ,sc4cnfr, sc4_4reel, sc4, sc4_state, sc4cnfr, ROT0, "BFM","Cash 'n' Fruit S+P98 (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cnfri ,sc4cnfr, sc4_4reel, sc4, sc4_state, sc4cnfr, ROT0, "BFM","Cash 'n' Fruit S+P98 (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cnfrc ,sc4cnfr, sc4_4reel, sc4, sc4_state, sc4cnfr, ROT0, "BFM","Cash 'n' Fruit S+P98 (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cnfrd ,sc4cnfr, sc4_4reel, sc4, sc4_state, sc4cnfr, ROT0, "BFM","Cash 'n' Fruit S+P98 (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cnfrh ,sc4cnfr, sc4_4reel, sc4, sc4_state, sc4cnfr, ROT0, "BFM","Cash 'n' Fruit S+P98 (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cnfri ,sc4cnfr, sc4_4reel, sc4, sc4_state, sc4cnfr, ROT0, "BFM","Cash 'n' Fruit S+P98 (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -47716,10 +47716,10 @@ DRIVER_INIT_MEMBER(sc4_state,sc4cla7)
}
// PR2111 CLASSIC 7'S CLASS SOUNDS CLASSIC 7'S
-GAMEL( 200?, sc4cla7 ,0, sc4_200_altb, sc4, sc4_state, sc4cla7, ROT0, "Mazooma","Classic 7s (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cla7a ,sc4cla7, sc4_200_altb, sc4, sc4_state, sc4cla7, ROT0, "Mazooma","Classic 7s (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cla7b ,sc4cla7, sc4_200_altb, sc4, sc4_state, sc4cla7, ROT0, "Mazooma","Classic 7s (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cla7c ,sc4cla7, sc4_200_altb, sc4, sc4_state, sc4cla7, ROT0, "Mazooma","Classic 7s (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cla7 ,0, sc4_200_altb, sc4, sc4_state, sc4cla7, ROT0, "Mazooma","Classic 7s (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cla7a ,sc4cla7, sc4_200_altb, sc4, sc4_state, sc4cla7, ROT0, "Mazooma","Classic 7s (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cla7b ,sc4cla7, sc4_200_altb, sc4, sc4_state, sc4cla7, ROT0, "Mazooma","Classic 7s (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cla7c ,sc4cla7, sc4_200_altb, sc4, sc4_state, sc4cla7, ROT0, "Mazooma","Classic 7s (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4cclas)
@@ -47733,40 +47733,40 @@ DRIVER_INIT_MEMBER(sc4_state,sc4cclas_mbus)
}
// PR7148 CLUB CLASS PR7148 CLUB CLASS SOUNDS11 CLUB CLASS
-GAMEL( 200?, sc4cclas ,0, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclasa ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclasb ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclasc ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclasd ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclasf ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclasi ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclasj ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclask ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclasl ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclasm ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclasn ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 12)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclaso ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 13)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclasq ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 14)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclasr ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 15)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclass ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 16)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclast ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 17)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclasu ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 18)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclasv ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 19)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclasw ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 20)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclas ,0, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclasa ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclasb ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclasc ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclasd ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclasf ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclasi ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclasj ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclask ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclasl ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclasm ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclasn ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 12)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclaso ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 13)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclasq ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 14)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclasr ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 15)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclass ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 16)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclast ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 17)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclasu ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 18)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclasv ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 19)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclasw ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 20)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR7148 CLUB CLASS CLUB CLASS CLUB PR7148 CLUB CLASS SOUNDS11 CLUB CLASS
-GAMEL( 200?, sc4cclasx ,sc4cclas, sc4, sc4, sc4_state, sc4cclas_mbus, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 21)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclasy ,sc4cclas, sc4, sc4, sc4_state, sc4cclas_mbus, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 22)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclasz ,sc4cclas, sc4, sc4, sc4_state, sc4cclas_mbus, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 23)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclas0 ,sc4cclas, sc4, sc4, sc4_state, sc4cclas_mbus, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 24)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclas1 ,sc4cclas, sc4, sc4, sc4_state, sc4cclas_mbus, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 25)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclas2 ,sc4cclas, sc4, sc4, sc4_state, sc4cclas_mbus, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 26)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclas3 ,sc4cclas, sc4, sc4, sc4_state, sc4cclas_mbus, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 27)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclas4 ,sc4cclas, sc4, sc4, sc4_state, sc4cclas_mbus, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 28)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclasx ,sc4cclas, sc4, sc4, sc4_state, sc4cclas_mbus, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 21)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclasy ,sc4cclas, sc4, sc4, sc4_state, sc4cclas_mbus, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 22)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclasz ,sc4cclas, sc4, sc4, sc4_state, sc4cclas_mbus, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 23)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclas0 ,sc4cclas, sc4, sc4, sc4_state, sc4cclas_mbus, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 24)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclas1 ,sc4cclas, sc4, sc4, sc4_state, sc4cclas_mbus, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 25)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclas2 ,sc4cclas, sc4, sc4, sc4_state, sc4cclas_mbus, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 26)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclas3 ,sc4cclas, sc4, sc4, sc4_state, sc4cclas_mbus, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 27)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclas4 ,sc4cclas, sc4, sc4, sc4_state, sc4cclas_mbus, ROT0, "BFM","Club Class (Bellfruit) (Scorpion 4) (set 28)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR7148 CLUB CLASS 65% FERRY PR7148 CLUB CLASS SOUNDS11 CLUB CLASS
-GAMEL( 200?, sc4cclase ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (65% Ferry) (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclasg ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (65% Ferry) (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclash ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (65% Ferry) (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cclasp ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (65% Ferry) (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclase ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (65% Ferry) (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclasg ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (65% Ferry) (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclash ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (65% Ferry) (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cclasp ,sc4cclas, sc4, sc4, sc4_state, sc4cclas, ROT0, "BFM","Club Class (65% Ferry) (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4crcc)
@@ -47776,12 +47776,12 @@ DRIVER_INIT_MEMBER(sc4_state,sc4crcc)
// PR6837 CLASSIC CLUB COPS AND ROBBERS PR6837 COPS SOUNDS11 COPS AND ROBBERS
-GAMEL( 200?, sc4crcc ,0, sc4dmd, sc4, sc4_state, sc4crcc, ROT0, "BFM","Cops 'n' Robbers Club Classic (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4_dmd )
-GAMEL( 200?, sc4crcca ,sc4crcc, sc4dmd, sc4, sc4_state, sc4crcc, ROT0, "BFM","Cops 'n' Robbers Club Classic (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4_dmd )
+GAMEL( 200?, sc4crcc ,0, sc4dmd, sc4, sc4_state, sc4crcc, ROT0, "BFM","Cops 'n' Robbers Club Classic (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4_dmd )
+GAMEL( 200?, sc4crcca ,sc4crcc, sc4dmd, sc4, sc4_state, sc4crcc, ROT0, "BFM","Cops 'n' Robbers Club Classic (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4_dmd )
// PR6837 CLASSIC CLUB COPS AND ROBBERS 65% PR6837 COPS SOUNDS11
// the roms are a weird size, and the code is invalid, bad dumps? can they be fixed?
-GAMEL( 200?, sc4crccb ,sc4crcc, sc4dmd, sc4, sc4_state, sc4crcc, ROT0, "BFM","Cops 'n' Robbers Club Classic (65%) (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4_dmd )
-GAMEL( 200?, sc4crccc ,sc4crcc, sc4dmd, sc4, sc4_state, sc4crcc, ROT0, "BFM","Cops 'n' Robbers Club Classic (65%) (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4_dmd )
+GAMEL( 200?, sc4crccb ,sc4crcc, sc4dmd, sc4, sc4_state, sc4crcc, ROT0, "BFM","Cops 'n' Robbers Club Classic (65%) (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4_dmd )
+GAMEL( 200?, sc4crccc ,sc4crcc, sc4dmd, sc4, sc4_state, sc4crcc, ROT0, "BFM","Cops 'n' Robbers Club Classic (65%) (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4_dmd )
@@ -47793,9 +47793,9 @@ DRIVER_INIT_MEMBER(sc4_state,sc4czfr)
// the unusual sound rom numbering suggests a non-English market version, although the startup messages are in English
// PR6982 CRAZY FRUITS 1.02 95004150 CRAZY FRUITS PR6982 CRAZY FRUITS
-GAMEL( 200?, sc4czfr ,0, sc4_4reel, sc4, sc4_state, sc4czfr, ROT0, "BFM","Crazy Fruits (Germany?) (PR6982, GCRF, 1.02) (Bellfruit) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // German set?
+GAMEL( 200?, sc4czfr ,0, sc4_4reel, sc4, sc4_state, sc4czfr, ROT0, "BFM","Crazy Fruits (Germany?) (PR6982, GCRF, 1.02) (Bellfruit) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // German set?
// P_6_8_ _R_Z_ _R_I_S_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _5_0_1_0_C_A_Y_F_U_T_ _R_9_2_ _
-GAMEL( 200?, sc4czfrd ,sc4czfr, sc4_4reel, sc4, sc4_state, sc4czfr, ROT0, "BFM","Crazy Fruits (Germany?) (PR6982, GCRF) (Bellfruit) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // incomplete pairing (in 'up for it' set)
+GAMEL( 200?, sc4czfrd ,sc4czfr, sc4_4reel, sc4, sc4_state, sc4czfr, ROT0, "BFM","Crazy Fruits (Germany?) (PR6982, GCRF) (Bellfruit) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // incomplete pairing (in 'up for it' set)
DRIVER_INIT_MEMBER(sc4_state,sc4cfcas)
@@ -47809,58 +47809,58 @@ DRIVER_INIT_MEMBER(sc4_state,sc4cfcas_mbus)
}
// PR6923 CASINO CRAZY FRUITS PR6923 CRAZY FRUITS SOUNDS11
-GAMEL( 200?, sc4cfcas ,0, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcasa ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcasb ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcase ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcasf ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcask ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcasm ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcasp ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcasq ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcass ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcast ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcasu ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 12)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcasv ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 13)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcasw ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 14)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcasx ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 15)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcasy ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 16)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcasz ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 17)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcas0 ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 18)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcas1 ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 19)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcas2 ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 20)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcas6 ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 21)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcas7 ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 22)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcas8 ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 23)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcasaa ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 24)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcasaf ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 25)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcasag ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 26)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcasah ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 27)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcasai ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 28)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcasaj ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 29)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcasak ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 30)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcasal ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 31)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcasam ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 32)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcas ,0, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcasa ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcasb ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcase ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcasf ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcask ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcasm ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcasp ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcasq ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcass ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcast ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcasu ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 12)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcasv ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 13)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcasw ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 14)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcasx ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 15)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcasy ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 16)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcasz ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 17)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcas0 ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 18)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcas1 ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 19)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcas2 ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 20)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcas6 ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 21)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcas7 ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 22)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcas8 ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 23)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcasaa ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 24)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcasaf ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 25)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcasag ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 26)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcasah ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 27)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcasai ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 28)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcasaj ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 29)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcasak ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 30)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcasal ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 31)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcasam ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas, ROT0, "BFM","Casino Crazy Fruits (Bellfruit) (Scorpion 4) (set 32)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// OK
-GAMEL( 200?, sc4cfcasr ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas_mbus, ROT0, "BFM","Casino Crazy Fruits (ZYPF) (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcasl ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas_mbus, ROT0, "BFM","Casino Crazy Fruits (ZYPF) (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcasi ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas_mbus, ROT0, "BFM","Casino Crazy Fruits (ZYFR) (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcasj ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas_mbus, ROT0, "BFM","Casino Crazy Fruits (ZYFR) (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcasn ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas_mbus, ROT0, "BFM","Casino Crazy Fruits (ZYFR) (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcaso ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas_mbus, ROT0, "BFM","Casino Crazy Fruits (ZYFR) (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcasr ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas_mbus, ROT0, "BFM","Casino Crazy Fruits (ZYPF) (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcasl ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas_mbus, ROT0, "BFM","Casino Crazy Fruits (ZYPF) (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcasi ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas_mbus, ROT0, "BFM","Casino Crazy Fruits (ZYFR) (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcasj ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas_mbus, ROT0, "BFM","Casino Crazy Fruits (ZYFR) (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcasn ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas_mbus, ROT0, "BFM","Casino Crazy Fruits (ZYFR) (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcaso ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas_mbus, ROT0, "BFM","Casino Crazy Fruits (ZYFR) (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PAY UNIT ERR 17
-GAMEL( 200?, sc4cfcasc ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas_mbus, ROT0, "BFM","Casino Crazy Fruits (ZYFR) (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcasd ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas_mbus, ROT0, "BFM","Casino Crazy Fruits (ZYFR) (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcasg ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas_mbus, ROT0, "BFM","Casino Crazy Fruits (ZYFR) (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcash ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas_mbus, ROT0, "BFM","Casino Crazy Fruits (ZYFR) (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcas3 ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas_mbus, ROT0, "BFM","Casino Crazy Fruits (ZYFR) (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcas9 ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas_mbus, ROT0, "BFM","Casino Crazy Fruits (ZYFR) (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcasab ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas_mbus, ROT0, "BFM","Casino Crazy Fruits (ZYFR) (Bellfruit) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcasac ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas_mbus, ROT0, "BFM","Casino Crazy Fruits (ZYFR) (Bellfruit) (Scorpion 4) (set 12)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcas4 ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas_mbus, ROT0, "BFM","Casino Crazy Fruits (CCFR) (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcas5 ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas_mbus, ROT0, "BFM","Casino Crazy Fruits (CCFR) (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcasad ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas_mbus, ROT0, "BFM","Casino Crazy Fruits (CCFR) (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfcasae ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas_mbus, ROT0, "BFM","Casino Crazy Fruits (CCFR) (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcasc ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas_mbus, ROT0, "BFM","Casino Crazy Fruits (ZYFR) (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcasd ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas_mbus, ROT0, "BFM","Casino Crazy Fruits (ZYFR) (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcasg ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas_mbus, ROT0, "BFM","Casino Crazy Fruits (ZYFR) (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcash ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas_mbus, ROT0, "BFM","Casino Crazy Fruits (ZYFR) (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcas3 ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas_mbus, ROT0, "BFM","Casino Crazy Fruits (ZYFR) (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcas9 ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas_mbus, ROT0, "BFM","Casino Crazy Fruits (ZYFR) (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcasab ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas_mbus, ROT0, "BFM","Casino Crazy Fruits (ZYFR) (Bellfruit) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcasac ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas_mbus, ROT0, "BFM","Casino Crazy Fruits (ZYFR) (Bellfruit) (Scorpion 4) (set 12)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcas4 ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas_mbus, ROT0, "BFM","Casino Crazy Fruits (CCFR) (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcas5 ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas_mbus, ROT0, "BFM","Casino Crazy Fruits (CCFR) (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcasad ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas_mbus, ROT0, "BFM","Casino Crazy Fruits (CCFR) (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfcasae ,sc4cfcas, sc4_3reel, sc4, sc4_state, sc4cfcas_mbus, ROT0, "BFM","Casino Crazy Fruits (CCFR) (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -47870,52 +47870,52 @@ DRIVER_INIT_MEMBER(sc4_state,sc4cfclb)
}
// PR6931 CLUB CRAZY FRUITS PR6931 CRZY SOUNDS11
-GAMEL( 200?, sc4cfclb ,0, sc4_5reel, sc4, sc4_state, sc4cfclb, ROT0, "BFM","Crazy Fruits Club (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfclba ,sc4cfclb, sc4_5reel, sc4, sc4_state, sc4cfclb, ROT0, "BFM","Crazy Fruits Club (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cfclbb ,sc4cfclb, sc4_5reel, sc4, sc4_state, sc4cfclb, ROT0, "BFM","Crazy Fruits Club (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfclb ,0, sc4_5reel, sc4, sc4_state, sc4cfclb, ROT0, "BFM","Crazy Fruits Club (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfclba ,sc4cfclb, sc4_5reel, sc4, sc4_state, sc4cfclb, ROT0, "BFM","Crazy Fruits Club (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cfclbb ,sc4cfclb, sc4_5reel, sc4, sc4_state, sc4cfclb, ROT0, "BFM","Crazy Fruits Club (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR7141 CRAZY GANG PR7141 CRAZY GANG SOUNDS11 CRAZY GANG
-GAMEL( 200?, sc4crzgn ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 1, Top Box)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // Top Box
-GAMEL( 200?, sc4crzgnb ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 2, Top Box)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // Top Box
-GAMEL( 200?, sc4crzgng ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 3, Top Box)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // Top Box
-GAMEL( 200?, sc4crzgnj ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 4, Top Box)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // Top Box
+GAMEL( 200?, sc4crzgn ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 1, Top Box)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // Top Box
+GAMEL( 200?, sc4crzgnb ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 2, Top Box)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // Top Box
+GAMEL( 200?, sc4crzgng ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 3, Top Box)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // Top Box
+GAMEL( 200?, sc4crzgnj ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 4, Top Box)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // Top Box
// none of these do anything with the reels, probably waiting for the Top Box?
-GAMEL( 200?, sc4crzgna ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzgnc ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzgnd ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzgne ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzgnf ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzgnh ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzgni ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzgnk ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzgnl ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzgnm ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzgnn ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzgno ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 12)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzgnp ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 13)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzgnq ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 14)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzgnx ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 15)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // incomplete pairing
-GAMEL( 200?, sc4crzgny ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 16)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzgnz ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 17)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzgn0 ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 18)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzgn1 ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 19)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzgn2 ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 20)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzgna ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzgnc ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzgnd ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzgne ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzgnf ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzgnh ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzgni ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzgnk ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzgnl ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzgnm ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzgnn ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzgno ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 12)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzgnp ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 13)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzgnq ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 14)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzgnx ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 15)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // incomplete pairing
+GAMEL( 200?, sc4crzgny ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 16)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzgnz ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 17)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzgn0 ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 18)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzgn1 ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 19)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzgn2 ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang (Bellfruit) (Scorpion 4) (set 20)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// NUMBER PR7141 CRAZY GANG PR7141 CRAZY GANG SOUNDS11 CRAZY GANG ARCADE
-GAMEL( 200?, sc4crzgnr ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang Arcade (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzgns ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang Arcade (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzgnt ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang Arcade (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzgnu ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang Arcade (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzgnv ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang Arcade (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzgnw ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang Arcade (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzgn3 ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang Arcade (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzgn4 ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang Arcade (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzgn5 ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang Arcade (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzgn6 ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang Arcade (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzgn7 ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang Arcade (Bellfruit) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzgn8 ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang Arcade (Bellfruit) (Scorpion 4) (set 12)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzgnr ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang Arcade (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzgns ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang Arcade (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzgnt ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang Arcade (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzgnu ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang Arcade (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzgnv ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang Arcade (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzgnw ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang Arcade (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzgn3 ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang Arcade (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzgn4 ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang Arcade (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzgn5 ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang Arcade (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzgn6 ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang Arcade (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzgn7 ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang Arcade (Bellfruit) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzgn8 ,sc4crzgn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Gang Arcade (Bellfruit) (Scorpion 4) (set 12)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -47927,12 +47927,12 @@ DRIVER_INIT_MEMBER(sc4_state,sc4cccsh)
// SWP, different buttons to most games, no reels
// PR7023 CRISS CROSS CASH CCC SOUNDS
-GAMEL( 200?, sc4cccsh ,0, sc4_no_reels, sc4, sc4_state, sc4cccsh, ROT0, "Mazooma","Criss Cross Cash (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cccsha ,sc4cccsh, sc4_no_reels, sc4, sc4_state, sc4cccsh, ROT0, "Mazooma","Criss Cross Cash (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cccshb ,sc4cccsh, sc4_no_reels, sc4, sc4_state, sc4cccsh, ROT0, "Mazooma","Criss Cross Cash (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cccshc ,sc4cccsh, sc4_no_reels, sc4, sc4_state, sc4cccsh, ROT0, "Mazooma","Criss Cross Cash (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cccshd ,sc4cccsh, sc4_no_reels, sc4, sc4_state, sc4cccsh, ROT0, "Mazooma","Criss Cross Cash (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cccshe ,sc4cccsh, sc4_no_reels, sc4, sc4_state, sc4cccsh, ROT0, "Mazooma","Criss Cross Cash (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cccsh ,0, sc4_no_reels, sc4, sc4_state, sc4cccsh, ROT0, "Mazooma","Criss Cross Cash (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cccsha ,sc4cccsh, sc4_no_reels, sc4, sc4_state, sc4cccsh, ROT0, "Mazooma","Criss Cross Cash (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cccshb ,sc4cccsh, sc4_no_reels, sc4, sc4_state, sc4cccsh, ROT0, "Mazooma","Criss Cross Cash (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cccshc ,sc4cccsh, sc4_no_reels, sc4, sc4_state, sc4cccsh, ROT0, "Mazooma","Criss Cross Cash (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cccshd ,sc4cccsh, sc4_no_reels, sc4, sc4_state, sc4cccsh, ROT0, "Mazooma","Criss Cross Cash (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cccshe ,sc4cccsh, sc4_no_reels, sc4, sc4_state, sc4cccsh, ROT0, "Mazooma","Criss Cross Cash (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4daylt)
@@ -47943,21 +47943,21 @@ DRIVER_INIT_MEMBER(sc4_state,sc4daylt)
// PR6801 DAYLIGHT ROBBERY PR6801 DAYLIGHT SOUNDS
-GAMEL( 200?, sc4daylt ,0, sc4_4reel_200, sc4, sc4_state, sc4daylt, ROT0, "BFM","Daylight Robbery (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4daylta ,sc4daylt, sc4_4reel_200, sc4, sc4_state, sc4daylt, ROT0, "BFM","Daylight Robbery (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4dayltb ,sc4daylt, sc4_4reel_200, sc4, sc4_state, sc4daylt, ROT0, "BFM","Daylight Robbery (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4dayltc ,sc4daylt, sc4_4reel_200, sc4, sc4_state, sc4daylt, ROT0, "BFM","Daylight Robbery (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4dayltg ,sc4daylt, sc4_4reel_200, sc4, sc4_state, sc4daylt, ROT0, "BFM","Daylight Robbery (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4daylth ,sc4daylt, sc4_4reel_200, sc4, sc4_state, sc4daylt, ROT0, "BFM","Daylight Robbery (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4daylti ,sc4daylt, sc4_4reel_200, sc4, sc4_state, sc4daylt, ROT0, "BFM","Daylight Robbery (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4dayltj ,sc4daylt, sc4_4reel_200, sc4, sc4_state, sc4daylt, ROT0, "BFM","Daylight Robbery (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4daylt ,0, sc4_4reel_200, sc4, sc4_state, sc4daylt, ROT0, "BFM","Daylight Robbery (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4daylta ,sc4daylt, sc4_4reel_200, sc4, sc4_state, sc4daylt, ROT0, "BFM","Daylight Robbery (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dayltb ,sc4daylt, sc4_4reel_200, sc4, sc4_state, sc4daylt, ROT0, "BFM","Daylight Robbery (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dayltc ,sc4daylt, sc4_4reel_200, sc4, sc4_state, sc4daylt, ROT0, "BFM","Daylight Robbery (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dayltg ,sc4daylt, sc4_4reel_200, sc4, sc4_state, sc4daylt, ROT0, "BFM","Daylight Robbery (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4daylth ,sc4daylt, sc4_4reel_200, sc4, sc4_state, sc4daylt, ROT0, "BFM","Daylight Robbery (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4daylti ,sc4daylt, sc4_4reel_200, sc4, sc4_state, sc4daylt, ROT0, "BFM","Daylight Robbery (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dayltj ,sc4daylt, sc4_4reel_200, sc4, sc4_state, sc4daylt, ROT0, "BFM","Daylight Robbery (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR4601 DAYLIGHT ROBBERY SP98 PR6801 DAYLIGHT SOUNDS
-GAMEL( 200?, sc4dayltd ,sc4daylt, sc4_4reel_200, sc4, sc4_state, sc4daylt, ROT0, "BFM","Daylight Robbery SP98 (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4daylte ,sc4daylt, sc4_4reel_200, sc4, sc4_state, sc4daylt, ROT0, "BFM","Daylight Robbery SP98 (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4dayltf ,sc4daylt, sc4_4reel_200, sc4, sc4_state, sc4daylt, ROT0, "BFM","Daylight Robbery SP98 (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4dayltk ,sc4daylt, sc4_4reel_200, sc4, sc4_state, sc4daylt, ROT0, "BFM","Daylight Robbery SP98 (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4dayltl ,sc4daylt, sc4_4reel_200, sc4, sc4_state, sc4daylt, ROT0, "BFM","Daylight Robbery SP98 (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4dayltm ,sc4daylt, sc4_4reel_200, sc4, sc4_state, sc4daylt, ROT0, "BFM","Daylight Robbery SP98 (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dayltd ,sc4daylt, sc4_4reel_200, sc4, sc4_state, sc4daylt, ROT0, "BFM","Daylight Robbery SP98 (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4daylte ,sc4daylt, sc4_4reel_200, sc4, sc4_state, sc4daylt, ROT0, "BFM","Daylight Robbery SP98 (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dayltf ,sc4daylt, sc4_4reel_200, sc4, sc4_state, sc4daylt, ROT0, "BFM","Daylight Robbery SP98 (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dayltk ,sc4daylt, sc4_4reel_200, sc4, sc4_state, sc4daylt, ROT0, "BFM","Daylight Robbery SP98 (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dayltl ,sc4daylt, sc4_4reel_200, sc4, sc4_state, sc4daylt, ROT0, "BFM","Daylight Robbery SP98 (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4dayltm ,sc4daylt, sc4_4reel_200, sc4, sc4_state, sc4daylt, ROT0, "BFM","Daylight Robbery SP98 (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -47968,11 +47968,11 @@ DRIVER_INIT_MEMBER(sc4_state,sc4disco)
}
// PR7048 DISCO INFERNO DISCO SOUNDS DISCO INFERNO
-GAMEL( 200?, sc4disco ,0, sc4_200_4r, sc4, sc4_state, sc4disco, ROT0, "Mazooma","Disco Inferno (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4discob ,sc4disco, sc4_200_4r, sc4, sc4_state, sc4disco, ROT0, "Mazooma","Disco Inferno (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4discoa ,sc4disco, sc4_200_4r, sc4, sc4_state, sc4disco, ROT0, "Mazooma","Disco Inferno (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4discoc ,sc4disco, sc4_200_4r, sc4, sc4_state, sc4disco, ROT0, "Mazooma","Disco Inferno (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4discod ,sc4disco, sc4_200_4r, sc4, sc4_state, sc4disco, ROT0, "Mazooma","Disco Inferno (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4disco ,0, sc4_200_4r, sc4, sc4_state, sc4disco, ROT0, "Mazooma","Disco Inferno (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4discob ,sc4disco, sc4_200_4r, sc4, sc4_state, sc4disco, ROT0, "Mazooma","Disco Inferno (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4discoa ,sc4disco, sc4_200_4r, sc4, sc4_state, sc4disco, ROT0, "Mazooma","Disco Inferno (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4discoc ,sc4disco, sc4_200_4r, sc4, sc4_state, sc4disco, ROT0, "Mazooma","Disco Inferno (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4discod ,sc4disco, sc4_200_4r, sc4, sc4_state, sc4disco, ROT0, "Mazooma","Disco Inferno (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -47983,9 +47983,9 @@ DRIVER_INIT_MEMBER(sc4_state,sc4sstep)
// SUPER STEP..........................................................................................SUPERSTEPSND. (non-standard header)
-GAMEL( 200?, sc4sstep ,0, sc4, sc4, sc4_state, sc4sstep, ROT0, "Qps","Super Step (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // Dough & Arrow clone? Super Step in header
-GAMEL( 200?, sc4sstepa ,sc4sstep, sc4, sc4, sc4_state, sc4sstep, ROT0, "Qps","Super Step (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // Dough & Arrow clone? Super Step in header
-GAMEL( 200?, sc4sstepb ,sc4sstep, sc4, sc4, sc4_state, sc4sstep, ROT0, "Qps / 21 Casino","Super Step (Qps / 21 Casino) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // This one contains 21-Casino and Super Step strings
+GAMEL( 200?, sc4sstep ,0, sc4, sc4, sc4_state, sc4sstep, ROT0, "Qps","Super Step (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // Dough & Arrow clone? Super Step in header
+GAMEL( 200?, sc4sstepa ,sc4sstep, sc4, sc4, sc4_state, sc4sstep, ROT0, "Qps","Super Step (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // Dough & Arrow clone? Super Step in header
+GAMEL( 200?, sc4sstepb ,sc4sstep, sc4, sc4, sc4_state, sc4sstep, ROT0, "Qps / 21 Casino","Super Step (Qps / 21 Casino) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // This one contains 21-Casino and Super Step strings
@@ -47995,19 +47995,19 @@ DRIVER_INIT_MEMBER(sc4_state,sc4fpitc)
}
// PR7119 FEVER_PITCH PR7119 FEVER PITCH SOUNDS11
-GAMEL( 200?, sc4fpitc ,0, sc4_4reel, sc4, sc4_state, sc4fpitc, ROT0, "BFM","Fever Pitch (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fpitca ,sc4fpitc, sc4_4reel, sc4, sc4_state, sc4fpitc, ROT0, "BFM","Fever Pitch (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fpitcb ,sc4fpitc, sc4_4reel, sc4, sc4_state, sc4fpitc, ROT0, "BFM","Fever Pitch (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fpitcd ,sc4fpitc, sc4_4reel, sc4, sc4_state, sc4fpitc, ROT0, "BFM","Fever Pitch (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fpitce ,sc4fpitc, sc4_4reel, sc4, sc4_state, sc4fpitc, ROT0, "BFM","Fever Pitch (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fpitcf ,sc4fpitc, sc4_4reel, sc4, sc4_state, sc4fpitc, ROT0, "BFM","Fever Pitch (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fpitch ,sc4fpitc, sc4_4reel, sc4, sc4_state, sc4fpitc, ROT0, "BFM","Fever Pitch (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fpitci ,sc4fpitc, sc4_4reel, sc4, sc4_state, sc4fpitc, ROT0, "BFM","Fever Pitch (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fpitcj ,sc4fpitc, sc4_4reel, sc4, sc4_state, sc4fpitc, ROT0, "BFM","Fever Pitch (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fpitck ,sc4fpitc, sc4_4reel, sc4, sc4_state, sc4fpitc, ROT0, "BFM","Fever Pitch (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fpitc ,0, sc4_4reel, sc4, sc4_state, sc4fpitc, ROT0, "BFM","Fever Pitch (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fpitca ,sc4fpitc, sc4_4reel, sc4, sc4_state, sc4fpitc, ROT0, "BFM","Fever Pitch (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fpitcb ,sc4fpitc, sc4_4reel, sc4, sc4_state, sc4fpitc, ROT0, "BFM","Fever Pitch (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fpitcd ,sc4fpitc, sc4_4reel, sc4, sc4_state, sc4fpitc, ROT0, "BFM","Fever Pitch (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fpitce ,sc4fpitc, sc4_4reel, sc4, sc4_state, sc4fpitc, ROT0, "BFM","Fever Pitch (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fpitcf ,sc4fpitc, sc4_4reel, sc4, sc4_state, sc4fpitc, ROT0, "BFM","Fever Pitch (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fpitch ,sc4fpitc, sc4_4reel, sc4, sc4_state, sc4fpitc, ROT0, "BFM","Fever Pitch (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fpitci ,sc4fpitc, sc4_4reel, sc4, sc4_state, sc4fpitc, ROT0, "BFM","Fever Pitch (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fpitcj ,sc4fpitc, sc4_4reel, sc4, sc4_state, sc4fpitc, ROT0, "BFM","Fever Pitch (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fpitck ,sc4fpitc, sc4_4reel, sc4, sc4_state, sc4fpitc, ROT0, "BFM","Fever Pitch (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// these 2 fail to show anything
-GAMEL( 200?, sc4fpitcc ,sc4fpitc, sc4_4reel, sc4, sc4_state, sc4fpitc, ROT0, "BFM","Fever Pitch (Bellfruit) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fpitcg ,sc4fpitc, sc4_4reel, sc4, sc4_state, sc4fpitc, ROT0, "BFM","Fever Pitch (Bellfruit) (Scorpion 4) (set 12)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fpitcc ,sc4fpitc, sc4_4reel, sc4, sc4_state, sc4fpitc, ROT0, "BFM","Fever Pitch (Bellfruit) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fpitcg ,sc4fpitc, sc4_4reel, sc4, sc4_state, sc4fpitc, ROT0, "BFM","Fever Pitch (Bellfruit) (Scorpion 4) (set 12)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -48018,10 +48018,10 @@ DRIVER_INIT_MEMBER(sc4_state,sc4fcc)
}
// PR6835 FIRE CRACKER PR6835 FIRE SOUNDS11
-GAMEL( 200?, sc4fcc ,0, sc4dmd, sc4, sc4_state, sc4fcc, ROT0, "BFM","Firecracker Club (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4_dmd )
-GAMEL( 200?, sc4fcca ,sc4fcc, sc4dmd, sc4, sc4_state, sc4fcc, ROT0, "BFM","Firecracker Club (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4_dmd )
-GAMEL( 200?, sc4fccb ,sc4fcc, sc4dmd, sc4, sc4_state, sc4fcc, ROT0, "BFM","Firecracker Club (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4_dmd )
-GAMEL( 200?, sc4fccc ,sc4fcc, sc4dmd, sc4, sc4_state, sc4fcc, ROT0, "BFM","Firecracker Club (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4_dmd )
+GAMEL( 200?, sc4fcc ,0, sc4dmd, sc4, sc4_state, sc4fcc, ROT0, "BFM","Firecracker Club (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4_dmd )
+GAMEL( 200?, sc4fcca ,sc4fcc, sc4dmd, sc4, sc4_state, sc4fcc, ROT0, "BFM","Firecracker Club (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4_dmd )
+GAMEL( 200?, sc4fccb ,sc4fcc, sc4dmd, sc4, sc4_state, sc4fcc, ROT0, "BFM","Firecracker Club (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4_dmd )
+GAMEL( 200?, sc4fccc ,sc4fcc, sc4dmd, sc4, sc4_state, sc4fcc, ROT0, "BFM","Firecracker Club (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4_dmd )
@@ -48033,13 +48033,13 @@ DRIVER_INIT_MEMBER(sc4_state,sc4fwp)
// PR2016 WAYSPAYS PR2016,5WAYSPAYS, FWAY SOUNDS 5 WAYS PAYS
-GAMEL( 200?, sc4fwp ,0, sc4_4reel, sc4, sc4_state, sc4fwp, ROT0, "Mazooma","Five Ways Pays (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fwpa ,sc4fwp, sc4_4reel, sc4, sc4_state, sc4fwp, ROT0, "Mazooma","Five Ways Pays (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fwpb ,sc4fwp, sc4_4reel, sc4, sc4_state, sc4fwp, ROT0, "Mazooma","Five Ways Pays (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fwpc ,sc4fwp, sc4_4reel, sc4, sc4_state, sc4fwp, ROT0, "Mazooma","Five Ways Pays (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fwpcs ,sc4fwp, sc4_4reel, sc4, sc4_state, sc4fwp, ROT0, "Mazooma","Five Ways Pays (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // marked as 'casino'
-GAMEL( 200?, sc4fwpcsa ,sc4fwp, sc4_4reel, sc4, sc4_state, sc4fwp, ROT0, "Mazooma","Five Ways Pays (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fwpcsb ,sc4fwp, sc4_4reel, sc4, sc4_state, sc4fwp, ROT0, "Mazooma","Five Ways Pays (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fwp ,0, sc4_4reel, sc4, sc4_state, sc4fwp, ROT0, "Mazooma","Five Ways Pays (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fwpa ,sc4fwp, sc4_4reel, sc4, sc4_state, sc4fwp, ROT0, "Mazooma","Five Ways Pays (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fwpb ,sc4fwp, sc4_4reel, sc4, sc4_state, sc4fwp, ROT0, "Mazooma","Five Ways Pays (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fwpc ,sc4fwp, sc4_4reel, sc4, sc4_state, sc4fwp, ROT0, "Mazooma","Five Ways Pays (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fwpcs ,sc4fwp, sc4_4reel, sc4, sc4_state, sc4fwp, ROT0, "Mazooma","Five Ways Pays (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // marked as 'casino'
+GAMEL( 200?, sc4fwpcsa ,sc4fwp, sc4_4reel, sc4, sc4_state, sc4fwp, ROT0, "Mazooma","Five Ways Pays (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fwpcsb ,sc4fwp, sc4_4reel, sc4, sc4_state, sc4fwp, ROT0, "Mazooma","Five Ways Pays (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -48051,17 +48051,17 @@ DRIVER_INIT_MEMBER(sc4_state,sc4fd7th)
// PR6804 FRANKIE DETTORI PR6804 FRANKIE SOUNDS
-GAMEL( 200?, sc4fd7th ,0, sc4_4reel, sc4, sc4_state, sc4fd7th, ROT0, "BFM","Frankie Dettori's 7th Heaven (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fd7tha ,sc4fd7th, sc4_4reel, sc4, sc4_state, sc4fd7th, ROT0, "BFM","Frankie Dettori's 7th Heaven (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fd7thb ,sc4fd7th, sc4_4reel, sc4, sc4_state, sc4fd7th, ROT0, "BFM","Frankie Dettori's 7th Heaven (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fd7the ,sc4fd7th, sc4_4reel, sc4, sc4_state, sc4fd7th, ROT0, "BFM","Frankie Dettori's 7th Heaven (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fd7thf ,sc4fd7th, sc4_4reel, sc4, sc4_state, sc4fd7th, ROT0, "BFM","Frankie Dettori's 7th Heaven (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fd7thg ,sc4fd7th, sc4_4reel, sc4, sc4_state, sc4fd7th, ROT0, "BFM","Frankie Dettori's 7th Heaven (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fd7th ,0, sc4_4reel, sc4, sc4_state, sc4fd7th, ROT0, "BFM","Frankie Dettori's 7th Heaven (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fd7tha ,sc4fd7th, sc4_4reel, sc4, sc4_state, sc4fd7th, ROT0, "BFM","Frankie Dettori's 7th Heaven (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fd7thb ,sc4fd7th, sc4_4reel, sc4, sc4_state, sc4fd7th, ROT0, "BFM","Frankie Dettori's 7th Heaven (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fd7the ,sc4fd7th, sc4_4reel, sc4, sc4_state, sc4fd7th, ROT0, "BFM","Frankie Dettori's 7th Heaven (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fd7thf ,sc4fd7th, sc4_4reel, sc4, sc4_state, sc4fd7th, ROT0, "BFM","Frankie Dettori's 7th Heaven (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fd7thg ,sc4fd7th, sc4_4reel, sc4, sc4_state, sc4fd7th, ROT0, "BFM","Frankie Dettori's 7th Heaven (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR6804 FRANKIE DETTORI SP98 PR6804 FRANKIE SOUNDS
-GAMEL( 200?, sc4fd7thc ,sc4fd7th, sc4_4reel, sc4, sc4_state, sc4fd7th, ROT0, "BFM","Frankie Dettori's 7th Heaven SP98 (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fd7thd ,sc4fd7th, sc4_4reel, sc4, sc4_state, sc4fd7th, ROT0, "BFM","Frankie Dettori's 7th Heaven SP98 (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fd7thh ,sc4fd7th, sc4_4reel, sc4, sc4_state, sc4fd7th, ROT0, "BFM","Frankie Dettori's 7th Heaven SP98 (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fd7thi ,sc4fd7th, sc4_4reel, sc4, sc4_state, sc4fd7th, ROT0, "BFM","Frankie Dettori's 7th Heaven SP98 (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fd7thc ,sc4fd7th, sc4_4reel, sc4, sc4_state, sc4fd7th, ROT0, "BFM","Frankie Dettori's 7th Heaven SP98 (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fd7thd ,sc4fd7th, sc4_4reel, sc4, sc4_state, sc4fd7th, ROT0, "BFM","Frankie Dettori's 7th Heaven SP98 (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fd7thh ,sc4fd7th, sc4_4reel, sc4, sc4_state, sc4fd7th, ROT0, "BFM","Frankie Dettori's 7th Heaven SP98 (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fd7thi ,sc4fd7th, sc4_4reel, sc4, sc4_state, sc4fd7th, ROT0, "BFM","Frankie Dettori's 7th Heaven SP98 (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4frsu)
@@ -48070,14 +48070,14 @@ DRIVER_INIT_MEMBER(sc4_state,sc4frsu)
}
// PR6928 CASINO FRUIT N SUITS PR6928 FRUIT N SUITS SOUNDS11
-GAMEL( 200?, sc4frsu ,0, sc4, sc4, sc4_state, sc4frsu, ROT0, "BFM","Casino Fruits 'n' Suits (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4frsua ,sc4frsu, sc4, sc4, sc4_state, sc4frsu, ROT0, "BFM","Casino Fruits 'n' Suits (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4frsub ,sc4frsu, sc4, sc4, sc4_state, sc4frsu, ROT0, "BFM","Casino Fruits 'n' Suits (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4frsuc ,sc4frsu, sc4, sc4, sc4_state, sc4frsu, ROT0, "BFM","Casino Fruits 'n' Suits (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4frsud ,sc4frsu, sc4, sc4, sc4_state, sc4frsu, ROT0, "BFM","Casino Fruits 'n' Suits (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4frsue ,sc4frsu, sc4, sc4, sc4_state, sc4frsu, ROT0, "BFM","Casino Fruits 'n' Suits (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4frsuf ,sc4frsu, sc4, sc4, sc4_state, sc4frsu, ROT0, "BFM","Casino Fruits 'n' Suits (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4frsug ,sc4frsu, sc4, sc4, sc4_state, sc4frsu, ROT0, "BFM","Casino Fruits 'n' Suits (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4frsu ,0, sc4, sc4, sc4_state, sc4frsu, ROT0, "BFM","Casino Fruits 'n' Suits (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4frsua ,sc4frsu, sc4, sc4, sc4_state, sc4frsu, ROT0, "BFM","Casino Fruits 'n' Suits (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4frsub ,sc4frsu, sc4, sc4, sc4_state, sc4frsu, ROT0, "BFM","Casino Fruits 'n' Suits (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4frsuc ,sc4frsu, sc4, sc4, sc4_state, sc4frsu, ROT0, "BFM","Casino Fruits 'n' Suits (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4frsud ,sc4frsu, sc4, sc4, sc4_state, sc4frsu, ROT0, "BFM","Casino Fruits 'n' Suits (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4frsue ,sc4frsu, sc4, sc4, sc4_state, sc4frsu, ROT0, "BFM","Casino Fruits 'n' Suits (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4frsuf ,sc4frsu, sc4, sc4, sc4_state, sc4frsu, ROT0, "BFM","Casino Fruits 'n' Suits (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4frsug ,sc4frsu, sc4, sc4, sc4_state, sc4frsu, ROT0, "BFM","Casino Fruits 'n' Suits (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -48089,12 +48089,12 @@ DRIVER_INIT_MEMBER(sc4_state,sc4goldo)
// PR7024 GOLDEN OLDIE OLDIE SOUNDS
-GAMEL( 200?, sc4goldo ,0, sc4_4reel, sc4, sc4_state, sc4goldo, ROT0, "Mazooma","Casino Golden Oldie (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4goldoa ,sc4goldo, sc4_4reel, sc4, sc4_state, sc4goldo, ROT0, "Mazooma","Casino Golden Oldie (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4goldob ,sc4goldo, sc4_4reel, sc4, sc4_state, sc4goldo, ROT0, "Mazooma","Casino Golden Oldie (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4goldoc ,sc4goldo, sc4_4reel, sc4, sc4_state, sc4goldo, ROT0, "Mazooma","Casino Golden Oldie (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gocas ,sc4goldo, sc4_4reel, sc4, sc4_state, sc4goldo, ROT0, "Mazooma","Casino Golden Oldie (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gocasa ,sc4goldo, sc4_4reel, sc4, sc4_state, sc4goldo, ROT0, "Mazooma","Casino Golden Oldie (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4goldo ,0, sc4_4reel, sc4, sc4_state, sc4goldo, ROT0, "Mazooma","Casino Golden Oldie (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4goldoa ,sc4goldo, sc4_4reel, sc4, sc4_state, sc4goldo, ROT0, "Mazooma","Casino Golden Oldie (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4goldob ,sc4goldo, sc4_4reel, sc4, sc4_state, sc4goldo, ROT0, "Mazooma","Casino Golden Oldie (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4goldoc ,sc4goldo, sc4_4reel, sc4, sc4_state, sc4goldo, ROT0, "Mazooma","Casino Golden Oldie (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gocas ,sc4goldo, sc4_4reel, sc4, sc4_state, sc4goldo, ROT0, "Mazooma","Casino Golden Oldie (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gocasa ,sc4goldo, sc4_4reel, sc4, sc4_state, sc4goldo, ROT0, "Mazooma","Casino Golden Oldie (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -48124,31 +48124,31 @@ DRIVER_INIT_MEMBER(sc4_state,sc4gx)
// Listed as Bonus Bar X, what's the correct title?
// PR7036GOLDEN X GOLDEN X ARCADE BARX SOUNDS GOLDEN X
-GAMEL( 200?, sc4bonbx ,0, sc4_3reel_200, sc4bonbx4, sc4_state, sc4bonbxm, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bonbxc ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4bonbxm, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bonbxd ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4bonbxm, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bonbxe ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4bonbxm, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bonbxf ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4bonbxm, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bonbx ,0, sc4_3reel_200, sc4bonbx4, sc4_state, sc4bonbxm, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bonbxc ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4bonbxm, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bonbxd ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4bonbxm, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bonbxe ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4bonbxm, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bonbxf ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4bonbxm, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR7036GOLDEN X BARX SOUNDS GOLDEN X
-GAMEL( 200?, sc4bonbxa ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4bonbx, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bonbxb ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4bonbx, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bonbxg ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4bonbx, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bonbxh ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4bonbx, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bonbxi ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4bonbx, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bonbxj ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4bonbx, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bonbxk ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4bonbx, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (set 12)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bonbxl ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4bonbx, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (set 13)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bonbxa ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4bonbx, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bonbxb ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4bonbx, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bonbxg ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4bonbx, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bonbxh ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4bonbx, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bonbxi ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4bonbx, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bonbxj ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4bonbx, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bonbxk ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4bonbx, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (set 12)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bonbxl ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4bonbx, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (set 13)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR7036 GOLDEN X BARX SOUNDS (these were listed as Golden X Casino but seem to be Bar X / Bonus Bar X)
-GAMEL( 200?, sc4gx ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4gx, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (BARX, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gxcasa ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4gx, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (BARX, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gxcasb ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4gx, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (BARX, set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gxcasc ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4gx, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (BARX, set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gxcasd ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4gx, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (BARX, set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gx ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4gx, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (BARX, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gxcasa ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4gx, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (BARX, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gxcasb ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4gx, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (BARX, set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gxcasc ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4gx, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (BARX, set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gxcasd ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4gx, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (BARX, set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR7036GOLDEN X BARX SOUNDS GOLDEN
-GAMEL( 200?, sc4gxcase ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4gx, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (BARX, set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gxcasf ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4gx, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (BARX, set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gxa ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4gx, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (BARX, set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // wasn't marked as Casino
-GAMEL( 200?, sc4gxb ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4gx, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (BARX, set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // wasn't marked as Casino
+GAMEL( 200?, sc4gxcase ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4gx, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (BARX, set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gxcasf ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4gx, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (BARX, set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gxa ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4gx, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (BARX, set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // wasn't marked as Casino
+GAMEL( 200?, sc4gxb ,sc4bonbx, sc4_3reel_200, sc4, sc4_state, sc4gx, ROT0, "Mazooma","Bar X (Mazooma) (Scorpion 4) (BARX, set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // wasn't marked as Casino
@@ -48162,14 +48162,14 @@ DRIVER_INIT_MEMBER(sc4_state,sc4gggtb)
// TBOX
// PR2056 GOLD X TRIPLE BARX SOUNDS GOLD X TRIPLE
-GAMEL( 200?, sc4ggtb ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, TBOX) (Scorpion 4) (Top Box, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR2056 GOLD X TRIPLE BARX SOUNDS GOLD X TRIPLE
-GAMEL( 200?, sc4ggtba ,sc4ggtb, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, TBOX) (Scorpion 4) (Top Box, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4ggtbb ,sc4ggtb, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, TBOX) (Scorpion 4) (Top Box, set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4ggtb ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, TBOX) (Scorpion 4) (Top Box, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR2056 GOLD X TRIPLE BARX SOUNDS GOLD X TRIPLE
+GAMEL( 200?, sc4ggtba ,sc4ggtb, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, TBOX) (Scorpion 4) (Top Box, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4ggtbb ,sc4ggtb, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, TBOX) (Scorpion 4) (Top Box, set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
// PR2056 GOLD X TRIPLE BARX SOUNDS J GOLD X TRIPLE (this was in a set just called 'top box')
-GAMEL( 200?, sc4tbox ,sc4ggtb, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, TBOX) (Scorpion 4) (Top Box, set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tbox ,sc4ggtb, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, TBOX) (Scorpion 4) (Top Box, set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2056 GOLD X TRIPLE BARX SOUNDS GOLD X TRIPLE (these were in a Monopoly set, did it use the same top box code?, could be for Monopoly Deluxe?)
-GAMEL( 200?, sc4monog ,sc4ggtb, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, TBOX) (Scorpion 4) (Top Box, set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// PR2056 GOLD X TRIPLE BARX SOUNDS GOLD X TRIPLE
-GAMEL( 200?, sc4monoga ,sc4ggtb, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, TBOX) (Scorpion 4) (Top Box, set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// PR2056 GOLD X TRIPLE BARX SOUNDS GOLD X TRIPLE
+GAMEL( 200?, sc4monog ,sc4ggtb, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, TBOX) (Scorpion 4) (Top Box, set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// PR2056 GOLD X TRIPLE BARX SOUNDS GOLD X TRIPLE
+GAMEL( 200?, sc4monoga ,sc4ggtb, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, TBOX) (Scorpion 4) (Top Box, set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// PR2056 GOLD X TRIPLE BARX SOUNDS GOLD X TRIPLE
@@ -48192,79 +48192,79 @@ DRIVER_INIT_MEMBER(sc4_state,sc4gx3)
// GLDX
// 25GBP sets
// PR2056 GOLDEN X GOLDEN GAME ARCADE BARX SOUNDS GOLDEN X
-GAMEL( 200?, sc4ggame ,0, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 25GBP, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ggamei ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 25GBP, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4ggamep ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 25GBP, set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4ggameq ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 25GBP, set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4ggamer ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 25GBP, set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4ggame ,0, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 25GBP, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ggamei ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 25GBP, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4ggamep ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 25GBP, set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4ggameq ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 25GBP, set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4ggamer ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 25GBP, set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
// 35GBP sets
-GAMEL( 200?, sc4ggame7 ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4ggame8 ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4ggame9 ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4ggameaa ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4ggameab ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4ggameac ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4ggamead ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4ggameae ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4ggame7 ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4ggame8 ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4ggame9 ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4ggameaa ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4ggameab ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4ggameac ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4ggamead ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4ggameae ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (GLDX, 35GBP, set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
// pay unit error
-GAMEL( 200?, sc4ggamel ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4ggamem ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4ggamew ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4ggamex ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4ggamey ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4ggamez ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4ggame1 ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4ggame2 ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4ggamel ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4ggamem ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4ggamew ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4ggamex ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4ggamey ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4ggamez ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4ggame1 ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4ggame2 ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggamem, ROT0, "Mazooma","Golden X (Mazooma) (PR2056, newer?) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
// 25GBP, no 41 check
// PR2056 GOLDEN X BARX SOUNDS GOLDEN X
-GAMEL( 200?, sc4ggamea ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggame, ROT0, "Mazooma","Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ggameb ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggame, ROT0, "Mazooma","Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4ggamec ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggame, ROT0, "Mazooma","Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4ggamed ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggame, ROT0, "Mazooma","Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4ggames ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggame, ROT0, "Mazooma","Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4ggamet ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggame, ROT0, "Mazooma","Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4ggameu ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggame, ROT0, "Mazooma","Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4ggamea ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggame, ROT0, "Mazooma","Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ggameb ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggame, ROT0, "Mazooma","Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4ggamec ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggame, ROT0, "Mazooma","Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4ggamed ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggame, ROT0, "Mazooma","Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4ggames ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggame, ROT0, "Mazooma","Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4ggamet ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggame, ROT0, "Mazooma","Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4ggameu ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggame, ROT0, "Mazooma","Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 25GBP, set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
// 30GBP, no 41 check
-GAMEL( 200?, sc4ggamef ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggame, ROT0, "Mazooma","Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4ggameg ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggame, ROT0, "Mazooma","Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4ggamej ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggame, ROT0, "Mazooma","Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4ggamek ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggame, ROT0, "Mazooma","Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4ggamev ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggame, ROT0, "Mazooma","Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4ggame3 ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggame, ROT0, "Mazooma","Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4ggame4 ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggame, ROT0, "Mazooma","Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4ggame5 ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggame, ROT0, "Mazooma","Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4ggame6 ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggame, ROT0, "Mazooma","Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4ggamef ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggame, ROT0, "Mazooma","Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4ggameg ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggame, ROT0, "Mazooma","Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4ggamej ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggame, ROT0, "Mazooma","Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4ggamek ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggame, ROT0, "Mazooma","Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4ggamev ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggame, ROT0, "Mazooma","Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4ggame3 ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggame, ROT0, "Mazooma","Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4ggame4 ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggame, ROT0, "Mazooma","Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4ggame5 ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggame, ROT0, "Mazooma","Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4ggame6 ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggame, ROT0, "Mazooma","Golden X (Mazooma) (PR2056) (Scorpion 4) (GLDX, 30GBP, set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
// pay unit error
-GAMEL( 200?, sc4ggamen ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggame, ROT0, "Mazooma","Golden X (Mazooma) (PR2056) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4ggame0 ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggame, ROT0, "Mazooma","Golden X (Mazooma) (PR2056) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4ggamen ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggame, ROT0, "Mazooma","Golden X (Mazooma) (PR2056) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4ggame0 ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggame, ROT0, "Mazooma","Golden X (Mazooma) (PR2056) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
// PR2056 GOLDEN X BARX SOUNDS GOLDEN X (are these really Gold Diggers?)
-GAMEL( 200?, sc4gdmz ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggame, ROT0, "Mazooma","Golden X (Mazooma) (PR2056) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // GLDX
-GAMEL( 200?, sc4gdmza ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggame, ROT0, "Mazooma","Golden X (Mazooma) (PR2056) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // GLDX
+GAMEL( 200?, sc4gdmz ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggame, ROT0, "Mazooma","Golden X (Mazooma) (PR2056) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // GLDX
+GAMEL( 200?, sc4gdmza ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4ggame, ROT0, "Mazooma","Golden X (Mazooma) (PR2056) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // GLDX
// boot as GLDX, not happy with this sound rom..
// PR2056 GOLDEN X BARX SOUNDS GOLDEN X
-GAMEL( 200?, sc4gx3 ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4gx3, ROT0, "Mazooma","Golden X (Mazooma) (Scorpion 4) (GLDX, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gx3a ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4gx3, ROT0, "Mazooma","Golden X (Mazooma) (Scorpion 4) (GLDX, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gx3b ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4gx3, ROT0, "Mazooma","Golden X (Mazooma) (Scorpion 4) (GLDX, set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gx3c ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4gx3, ROT0, "Mazooma","Golden X (Mazooma) (Scorpion 4) (GLDX, set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gx3d ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4gx3, ROT0, "Mazooma","Golden X (Mazooma) (Scorpion 4) (GLDX, set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gx3e ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4gx3, ROT0, "Mazooma","Golden X (Mazooma) (Scorpion 4) (GLDX, set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gx3f ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4gx3, ROT0, "Mazooma","Golden X (Mazooma) (Scorpion 4) (GLDX, set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gx3g ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4gx3, ROT0, "Mazooma","Golden X (Mazooma) (Scorpion 4) (GLDX, set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gx3 ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4gx3, ROT0, "Mazooma","Golden X (Mazooma) (Scorpion 4) (GLDX, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gx3a ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4gx3, ROT0, "Mazooma","Golden X (Mazooma) (Scorpion 4) (GLDX, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gx3b ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4gx3, ROT0, "Mazooma","Golden X (Mazooma) (Scorpion 4) (GLDX, set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gx3c ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4gx3, ROT0, "Mazooma","Golden X (Mazooma) (Scorpion 4) (GLDX, set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gx3d ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4gx3, ROT0, "Mazooma","Golden X (Mazooma) (Scorpion 4) (GLDX, set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gx3e ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4gx3, ROT0, "Mazooma","Golden X (Mazooma) (Scorpion 4) (GLDX, set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gx3f ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4gx3, ROT0, "Mazooma","Golden X (Mazooma) (Scorpion 4) (GLDX, set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gx3g ,sc4ggame, sc4_3reel_200, sc4, sc4_state, sc4gx3, ROT0, "Mazooma","Golden X (Mazooma) (Scorpion 4) (GLDX, set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// GLDX
// PR2056 GOLDEN X BARX SOUNDS GOLDEN X (was Golden Game Casino)
-GAMEL( 200?, sc4ggcas ,sc4ggame, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Golden X (Mazooma) (Scorpion 4) (GLDX, set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ggcasa ,sc4ggame, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Golden X (Mazooma) (Scorpion 4) (GLDX, set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ggcasb ,sc4ggame, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Golden X (Mazooma) (Scorpion 4) (GLDX, set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ggcasc ,sc4ggame, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Golden X (Mazooma) (Scorpion 4) (GLDX, set 12)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ggcas ,sc4ggame, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Golden X (Mazooma) (Scorpion 4) (GLDX, set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ggcasa ,sc4ggame, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Golden X (Mazooma) (Scorpion 4) (GLDX, set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ggcasb ,sc4ggame, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Golden X (Mazooma) (Scorpion 4) (GLDX, set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ggcasc ,sc4ggame, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Golden X (Mazooma) (Scorpion 4) (GLDX, set 12)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// GLDC
// PR2056 GOLDEN X BARX SOUNDS GOLDEN X
-GAMEL( 200?, sc4gnc ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Golden Game Club (Mazooma) (Scorpion 4) (GLDC, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gnca ,sc4gnc, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Golden Game Club (Mazooma) (Scorpion 4) (GLDC, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gncb ,sc4gnc, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Golden Game Club (Mazooma) (Scorpion 4) (GLDC, set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gncc ,sc4gnc, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Golden Game Club (Mazooma) (Scorpion 4) (GLDC, set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gncd ,sc4gnc, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Golden Game Club (Mazooma) (Scorpion 4) (GLDC, set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gnce ,sc4gnc, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Golden Game Club (Mazooma) (Scorpion 4) (GLDC, set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gnc ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Golden Game Club (Mazooma) (Scorpion 4) (GLDC, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gnca ,sc4gnc, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Golden Game Club (Mazooma) (Scorpion 4) (GLDC, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gncb ,sc4gnc, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Golden Game Club (Mazooma) (Scorpion 4) (GLDC, set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gncc ,sc4gnc, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Golden Game Club (Mazooma) (Scorpion 4) (GLDC, set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gncd ,sc4gnc, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Golden Game Club (Mazooma) (Scorpion 4) (GLDC, set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gnce ,sc4gnc, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Golden Game Club (Mazooma) (Scorpion 4) (GLDC, set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4ggg)
@@ -48274,29 +48274,29 @@ DRIVER_INIT_MEMBER(sc4_state,sc4ggg)
// do these sets have the wrong project name / ID strings? they boot at GGGB (Grand Golden Game) but their product ID in the header suggests standard Golden Game, looks like they forgot to update it at first, the topbox has the same issue
// PR2056 GOLDEN X GOLDEN GAME ARCADE BARX SOUNDS GOLDEN X
-GAMEL( 200?, sc4ggg ,0, sc4_3reel_200, sc4, sc4_state, sc4ggg, ROT0, "Mazooma","Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gggb ,sc4ggg, sc4_3reel_200, sc4, sc4_state, sc4ggg, ROT0, "Mazooma","Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4gggc ,sc4ggg, sc4_3reel_200, sc4, sc4_state, sc4ggg, ROT0, "Mazooma","Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4gggd ,sc4ggg, sc4_3reel_200, sc4, sc4_state, sc4ggg, ROT0, "Mazooma","Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4ggge ,sc4ggg, sc4_3reel_200, sc4, sc4_state, sc4ggg, ROT0, "Mazooma","Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4gggf ,sc4ggg, sc4_3reel_200, sc4, sc4_state, sc4ggg, ROT0, "Mazooma","Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4gggk ,sc4ggg, sc4_3reel_200, sc4, sc4_state, sc4ggg, ROT0, "Mazooma","Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4gggl ,sc4ggg, sc4_3reel_200, sc4, sc4_state, sc4ggg, ROT0, "Mazooma","Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4gggm ,sc4ggg, sc4_3reel_200, sc4, sc4_state, sc4ggg, ROT0, "Mazooma","Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4gggn ,sc4ggg, sc4_3reel_200, sc4, sc4_state, sc4ggg, ROT0, "Mazooma","Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4gggo ,sc4ggg, sc4_3reel_200, sc4, sc4_state, sc4ggg, ROT0, "Mazooma","Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4gggp ,sc4ggg, sc4_3reel_200, sc4, sc4_state, sc4ggg, ROT0, "Mazooma","Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 12)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4gggg ,sc4ggg, sc4_3reel_200, sc4, sc4_state, sc4ggg, ROT0, "Mazooma","Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 13)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ggg ,0, sc4_3reel_200, sc4, sc4_state, sc4ggg, ROT0, "Mazooma","Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gggb ,sc4ggg, sc4_3reel_200, sc4, sc4_state, sc4ggg, ROT0, "Mazooma","Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4gggc ,sc4ggg, sc4_3reel_200, sc4, sc4_state, sc4ggg, ROT0, "Mazooma","Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4gggd ,sc4ggg, sc4_3reel_200, sc4, sc4_state, sc4ggg, ROT0, "Mazooma","Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4ggge ,sc4ggg, sc4_3reel_200, sc4, sc4_state, sc4ggg, ROT0, "Mazooma","Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4gggf ,sc4ggg, sc4_3reel_200, sc4, sc4_state, sc4ggg, ROT0, "Mazooma","Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4gggk ,sc4ggg, sc4_3reel_200, sc4, sc4_state, sc4ggg, ROT0, "Mazooma","Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4gggl ,sc4ggg, sc4_3reel_200, sc4, sc4_state, sc4ggg, ROT0, "Mazooma","Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4gggm ,sc4ggg, sc4_3reel_200, sc4, sc4_state, sc4ggg, ROT0, "Mazooma","Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4gggn ,sc4ggg, sc4_3reel_200, sc4, sc4_state, sc4ggg, ROT0, "Mazooma","Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4gggo ,sc4ggg, sc4_3reel_200, sc4, sc4_state, sc4ggg, ROT0, "Mazooma","Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4gggp ,sc4ggg, sc4_3reel_200, sc4, sc4_state, sc4ggg, ROT0, "Mazooma","Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 12)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4gggg ,sc4ggg, sc4_3reel_200, sc4, sc4_state, sc4ggg, ROT0, "Mazooma","Grand Golden Game (Mazooma) (PR2056) (Scorpion 4) (GGGB, 35GBP, set 13)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2353 GRAND GOLDEN GAME GRAND GOLDEN GAME MAZ BARX SOUNDS GOLDEN GAME
-GAMEL( 200?, sc4gggh ,sc4ggg, sc4_3reel_200, sc4, sc4_state, sc4ggg, ROT0, "Mazooma","Grand Golden Game (Mazooma) (PR2353) (Scorpion 4) (GGGB, 35GBP, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4gggi ,sc4ggg, sc4_3reel_200, sc4, sc4_state, sc4ggg, ROT0, "Mazooma","Grand Golden Game (Mazooma) (PR2353) (Scorpion 4) (GGGB, 35GBP, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4gggq ,sc4ggg, sc4_3reel_200, sc4, sc4_state, sc4ggg, ROT0, "Mazooma","Grand Golden Game (Mazooma) (PR2353) (Scorpion 4) (GGGB, 35GBP, set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4gggr ,sc4ggg, sc4_3reel_200, sc4, sc4_state, sc4ggg, ROT0, "Mazooma","Grand Golden Game (Mazooma) (PR2353) (Scorpion 4) (GGGB, 35GBP, set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4gggs ,sc4ggg, sc4_3reel_200, sc4, sc4_state, sc4ggg, ROT0, "Mazooma","Grand Golden Game (Mazooma) (PR2353) (Scorpion 4) (GGGB, 35GBP, set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4gggh ,sc4ggg, sc4_3reel_200, sc4, sc4_state, sc4ggg, ROT0, "Mazooma","Grand Golden Game (Mazooma) (PR2353) (Scorpion 4) (GGGB, 35GBP, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4gggi ,sc4ggg, sc4_3reel_200, sc4, sc4_state, sc4ggg, ROT0, "Mazooma","Grand Golden Game (Mazooma) (PR2353) (Scorpion 4) (GGGB, 35GBP, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4gggq ,sc4ggg, sc4_3reel_200, sc4, sc4_state, sc4ggg, ROT0, "Mazooma","Grand Golden Game (Mazooma) (PR2353) (Scorpion 4) (GGGB, 35GBP, set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4gggr ,sc4ggg, sc4_3reel_200, sc4, sc4_state, sc4ggg, ROT0, "Mazooma","Grand Golden Game (Mazooma) (PR2353) (Scorpion 4) (GGGB, 35GBP, set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4gggs ,sc4ggg, sc4_3reel_200, sc4, sc4_state, sc4ggg, ROT0, "Mazooma","Grand Golden Game (Mazooma) (PR2353) (Scorpion 4) (GGGB, 35GBP, set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
// PR2056 GOLD X TRIPLE BARX SOUNDS 0 GOLD X TRIPLE (these were in a Grand Golden Game set)
-GAMEL( 200?, sc4gggtb ,sc4ggg, sc4_3reel_200, sc4, sc4_state, sc4gggtb, ROT0, "Mazooma","Grand Golden Game (Mazooma) (PR2056, GGGT) (Scorpion 4) (Top Box, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR2056 GOLD X TRIPLE BARX SOUNDS GOLD X TRIPLE
-GAMEL( 200?, sc4gggtba ,sc4ggg, sc4_3reel_200, sc4, sc4_state, sc4gggtb, ROT0, "Mazooma","Grand Golden Game (Mazooma) (PR2056, GGGT) (Scorpion 4) (Top Box, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4gggtb ,sc4ggg, sc4_3reel_200, sc4, sc4_state, sc4gggtb, ROT0, "Mazooma","Grand Golden Game (Mazooma) (PR2056, GGGT) (Scorpion 4) (Top Box, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR2056 GOLD X TRIPLE BARX SOUNDS GOLD X TRIPLE
+GAMEL( 200?, sc4gggtba ,sc4ggg, sc4_3reel_200, sc4, sc4_state, sc4gggtb, ROT0, "Mazooma","Grand Golden Game (Mazooma) (PR2056, GGGT) (Scorpion 4) (Top Box, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
@@ -48308,10 +48308,10 @@ DRIVER_INIT_MEMBER(sc4_state,sc4gag)
// the (PR7019, GRAN) sets requires 3:2 and 3:3 ON to boot, (PR7019, GRAB) I'm not sure
// PR7019 GRAB A GRANNY GRANNY SOUNDS
-GAMEL( 200?, sc4gag ,0, sc4_4reel, sc4, sc4_state, sc4gag, ROT0, "Mazooma","Grab A Granny (PR7019, GRAB) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gagb ,sc4gag, sc4_4reel, sc4, sc4_state, sc4gag, ROT0, "Mazooma","Grab A Granny (PR7019, GRAB) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gaga ,sc4gag, sc4_4reel, sc4, sc4_state, sc4gag, ROT0, "Mazooma","Grab A Granny (PR7019, GRAN) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gagc ,sc4gag, sc4_4reel, sc4, sc4_state, sc4gag, ROT0, "Mazooma","Grab A Granny (PR7019, GRAN) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gag ,0, sc4_4reel, sc4, sc4_state, sc4gag, ROT0, "Mazooma","Grab A Granny (PR7019, GRAB) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gagb ,sc4gag, sc4_4reel, sc4, sc4_state, sc4gag, ROT0, "Mazooma","Grab A Granny (PR7019, GRAB) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gaga ,sc4gag, sc4_4reel, sc4, sc4_state, sc4gag, ROT0, "Mazooma","Grab A Granny (PR7019, GRAN) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gagc ,sc4gag, sc4_4reel, sc4, sc4_state, sc4gag, ROT0, "Mazooma","Grab A Granny (PR7019, GRAN) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -48324,8 +48324,8 @@ DRIVER_INIT_MEMBER(sc4_state,sc4hfcl)
// PR1021 CLUB HAPPY FRUITS PR1021 HAPPY SOUNDS11 HAPPY FRUITS
-GAMEL( 200?, sc4hfcl ,0, sc4_5reel, sc4, sc4_state, sc4hfcl, ROT0, "BFM","Happy Fruits Club (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hfcla ,sc4hfcl, sc4_5reel, sc4, sc4_state, sc4hfcl, ROT0, "BFM","Happy Fruits Club (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hfcl ,0, sc4_5reel, sc4, sc4_state, sc4hfcl, ROT0, "BFM","Happy Fruits Club (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hfcla ,sc4hfcl, sc4_5reel, sc4, sc4_state, sc4hfcl, ROT0, "BFM","Happy Fruits Club (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -48335,10 +48335,10 @@ DRIVER_INIT_MEMBER(sc4_state,sc4holyw)
}
// PR7115 HOLLYWOOD PR7115 HOLLYWOOD SOUNDS11
-GAMEL( 200?, sc4holyw ,0, sc4_4reel, sc4, sc4_state, sc4holyw, ROT0, "BFM","Hollywood (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4holywb ,sc4holyw, sc4_4reel, sc4, sc4_state, sc4holyw, ROT0, "BFM","Hollywood (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4holywa ,sc4holyw, sc4_4reel, sc4, sc4_state, sc4holyw, ROT0, "BFM / Whitbread","Hollywood (Bellfruit / Whitbread) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4holywc ,sc4holyw, sc4_4reel, sc4, sc4_state, sc4holyw, ROT0, "BFM / Whitbread","Hollywood (Bellfruit / Whitbread) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4holyw ,0, sc4_4reel, sc4, sc4_state, sc4holyw, ROT0, "BFM","Hollywood (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4holywb ,sc4holyw, sc4_4reel, sc4, sc4_state, sc4holyw, ROT0, "BFM","Hollywood (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4holywa ,sc4holyw, sc4_4reel, sc4, sc4_state, sc4holyw, ROT0, "BFM / Whitbread","Hollywood (Bellfruit / Whitbread) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4holywc ,sc4holyw, sc4_4reel, sc4, sc4_state, sc4holyw, ROT0, "BFM / Whitbread","Hollywood (Bellfruit / Whitbread) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -48349,21 +48349,21 @@ DRIVER_INIT_MEMBER(sc4_state,sc4jjf)
// PR6807 JUMPING JACK FLASH PR6807 JUMP SOUNDS11
-GAMEL( 200?, sc4jjf ,0, sc4_4reel, sc4, sc4_state, sc4jjf, ROT0, "BFM","Jumping Jack Flash (PR6807) (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jjfa ,sc4jjf, sc4_4reel, sc4, sc4_state, sc4jjf, ROT0, "BFM","Jumping Jack Flash (PR6807) (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jjfb ,sc4jjf, sc4_4reel, sc4, sc4_state, sc4jjf, ROT0, "BFM","Jumping Jack Flash (PR6807) (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jjfg ,sc4jjf, sc4_4reel, sc4, sc4_state, sc4jjf, ROT0, "BFM","Jumping Jack Flash (PR6807) (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jjfh ,sc4jjf, sc4_4reel, sc4, sc4_state, sc4jjf, ROT0, "BFM","Jumping Jack Flash (PR6807) (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jjfi ,sc4jjf, sc4_4reel, sc4, sc4_state, sc4jjf, ROT0, "BFM","Jumping Jack Flash (PR6807) (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jjf ,0, sc4_4reel, sc4, sc4_state, sc4jjf, ROT0, "BFM","Jumping Jack Flash (PR6807) (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jjfa ,sc4jjf, sc4_4reel, sc4, sc4_state, sc4jjf, ROT0, "BFM","Jumping Jack Flash (PR6807) (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jjfb ,sc4jjf, sc4_4reel, sc4, sc4_state, sc4jjf, ROT0, "BFM","Jumping Jack Flash (PR6807) (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jjfg ,sc4jjf, sc4_4reel, sc4, sc4_state, sc4jjf, ROT0, "BFM","Jumping Jack Flash (PR6807) (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jjfh ,sc4jjf, sc4_4reel, sc4, sc4_state, sc4jjf, ROT0, "BFM","Jumping Jack Flash (PR6807) (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jjfi ,sc4jjf, sc4_4reel, sc4, sc4_state, sc4jjf, ROT0, "BFM","Jumping Jack Flash (PR6807) (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR4607 JUMPING JACK FLASH SP98 PR6807 JUMP SOUNDS11
-GAMEL( 200?, sc4jjfc ,sc4jjf, sc4_4reel, sc4, sc4_state, sc4jjf, ROT0, "BFM","Jumping Jack Flash SP98 (PR4607) (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jjfd ,sc4jjf, sc4_4reel, sc4, sc4_state, sc4jjf, ROT0, "BFM","Jumping Jack Flash SP98 (PR4607) (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jjfe ,sc4jjf, sc4_4reel, sc4, sc4_state, sc4jjf, ROT0, "BFM","Jumping Jack Flash SP98 (PR4607) (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jjff ,sc4jjf, sc4_4reel, sc4, sc4_state, sc4jjf, ROT0, "BFM","Jumping Jack Flash SP98 (PR4607) (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jjfj ,sc4jjf, sc4_4reel, sc4, sc4_state, sc4jjf, ROT0, "BFM","Jumping Jack Flash SP98 (PR4607) (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jjfk ,sc4jjf, sc4_4reel, sc4, sc4_state, sc4jjf, ROT0, "BFM","Jumping Jack Flash SP98 (PR4607) (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jjfl ,sc4jjf, sc4_4reel, sc4, sc4_state, sc4jjf, ROT0, "BFM","Jumping Jack Flash SP98 (PR4607) (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jjfm ,sc4jjf, sc4_4reel, sc4, sc4_state, sc4jjf, ROT0, "BFM","Jumping Jack Flash SP98 (PR4607) (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jjfc ,sc4jjf, sc4_4reel, sc4, sc4_state, sc4jjf, ROT0, "BFM","Jumping Jack Flash SP98 (PR4607) (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jjfd ,sc4jjf, sc4_4reel, sc4, sc4_state, sc4jjf, ROT0, "BFM","Jumping Jack Flash SP98 (PR4607) (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jjfe ,sc4jjf, sc4_4reel, sc4, sc4_state, sc4jjf, ROT0, "BFM","Jumping Jack Flash SP98 (PR4607) (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jjff ,sc4jjf, sc4_4reel, sc4, sc4_state, sc4jjf, ROT0, "BFM","Jumping Jack Flash SP98 (PR4607) (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jjfj ,sc4jjf, sc4_4reel, sc4, sc4_state, sc4jjf, ROT0, "BFM","Jumping Jack Flash SP98 (PR4607) (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jjfk ,sc4jjf, sc4_4reel, sc4, sc4_state, sc4jjf, ROT0, "BFM","Jumping Jack Flash SP98 (PR4607) (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jjfl ,sc4jjf, sc4_4reel, sc4, sc4_state, sc4jjf, ROT0, "BFM","Jumping Jack Flash SP98 (PR4607) (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jjfm ,sc4jjf, sc4_4reel, sc4, sc4_state, sc4jjf, ROT0, "BFM","Jumping Jack Flash SP98 (PR4607) (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -48378,27 +48378,27 @@ DRIVER_INIT_MEMBER(sc4_state,sc4lined_mbus)
}
// PR7067CASINO LINE DANCER LINE SOUNDS LINE DANCER
-GAMEL( 200?, sc4lined ,0, sc4_3reel, sc4, sc4_state, sc4lined, ROT0, "Mazooma","Line Dancer (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lineda ,sc4lined, sc4_3reel, sc4, sc4_state, sc4lined, ROT0, "Mazooma","Line Dancer (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lined ,0, sc4_3reel, sc4, sc4_state, sc4lined, ROT0, "Mazooma","Line Dancer (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lineda ,sc4lined, sc4_3reel, sc4, sc4_state, sc4lined, ROT0, "Mazooma","Line Dancer (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PAY UNIT ERR 17 alarm during startup
-GAMEL( 200?, sc4linedb ,sc4lined, sc4_3reel, sc4, sc4_state, sc4lined, ROT0, "Mazooma","Line Dancer (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4linedc ,sc4lined, sc4_3reel, sc4, sc4_state, sc4lined, ROT0, "Mazooma","Line Dancer (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4linedb ,sc4lined, sc4_3reel, sc4, sc4_state, sc4lined, ROT0, "Mazooma","Line Dancer (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4linedc ,sc4lined, sc4_3reel, sc4, sc4_state, sc4lined, ROT0, "Mazooma","Line Dancer (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR7067CASINO LINE DANCER LINE DANCER ARCADE LINE SOUNDS LINE DANCER
// PAY UNIT ERR 17 alarm during startup
-GAMEL( 200?, sc4linedd ,sc4lined, sc4_3reel, sc4, sc4_state, sc4lined_mbus, ROT0, "Mazooma","Line Dancer Arcade (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4linede ,sc4lined, sc4_3reel, sc4, sc4_state, sc4lined_mbus, ROT0, "Mazooma","Line Dancer Arcade (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4linedd ,sc4lined, sc4_3reel, sc4, sc4_state, sc4lined_mbus, ROT0, "Mazooma","Line Dancer Arcade (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4linede ,sc4lined, sc4_3reel, sc4, sc4_state, sc4lined_mbus, ROT0, "Mazooma","Line Dancer Arcade (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// ok
-GAMEL( 200?, sc4linedf ,sc4lined, sc4_3reel, sc4, sc4_state, sc4lined, ROT0, "Mazooma","Line Dancer Arcade (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4linedg ,sc4lined, sc4_3reel, sc4, sc4_state, sc4lined, ROT0, "Mazooma","Line Dancer Arcade (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4linedh ,sc4lined, sc4_3reel, sc4, sc4_state, sc4lined, ROT0, "Mazooma","Line Dancer Arcade (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4linedi ,sc4lined, sc4_3reel, sc4, sc4_state, sc4lined, ROT0, "Mazooma","Line Dancer Arcade (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4linedf ,sc4lined, sc4_3reel, sc4, sc4_state, sc4lined, ROT0, "Mazooma","Line Dancer Arcade (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4linedg ,sc4lined, sc4_3reel, sc4, sc4_state, sc4lined, ROT0, "Mazooma","Line Dancer Arcade (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4linedh ,sc4lined, sc4_3reel, sc4, sc4_state, sc4lined, ROT0, "Mazooma","Line Dancer Arcade (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4linedi ,sc4lined, sc4_3reel, sc4, sc4_state, sc4lined, ROT0, "Mazooma","Line Dancer Arcade (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR7067CASINO LINE DANCER LINE SOUNDS LINE DANCER (same as above?)
-GAMEL( 200?, sc4ldcas ,sc4lined, sc4_3reel, sc4, sc4_state, sc4lined, ROT0, "Mazooma","Line Dancer Casino (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ldcasa ,sc4lined, sc4_3reel, sc4, sc4_state, sc4lined, ROT0, "Mazooma","Line Dancer Casino (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ldcasb ,sc4lined, sc4_3reel, sc4, sc4_state, sc4lined, ROT0, "Mazooma","Line Dancer Casino (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ldcasc ,sc4lined, sc4_3reel, sc4, sc4_state, sc4lined, ROT0, "Mazooma","Line Dancer Casino (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ldcasd ,sc4lined, sc4_3reel, sc4, sc4_state, sc4lined, ROT0, "Mazooma","Line Dancer Casino (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ldcase ,sc4lined, sc4_3reel, sc4, sc4_state, sc4lined, ROT0, "Mazooma","Line Dancer Casino (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ldcas ,sc4lined, sc4_3reel, sc4, sc4_state, sc4lined, ROT0, "Mazooma","Line Dancer Casino (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ldcasa ,sc4lined, sc4_3reel, sc4, sc4_state, sc4lined, ROT0, "Mazooma","Line Dancer Casino (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ldcasb ,sc4lined, sc4_3reel, sc4, sc4_state, sc4lined, ROT0, "Mazooma","Line Dancer Casino (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ldcasc ,sc4lined, sc4_3reel, sc4, sc4_state, sc4lined, ROT0, "Mazooma","Line Dancer Casino (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ldcasd ,sc4lined, sc4_3reel, sc4, sc4_state, sc4lined, ROT0, "Mazooma","Line Dancer Casino (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ldcase ,sc4lined, sc4_3reel, sc4, sc4_state, sc4lined, ROT0, "Mazooma","Line Dancer Casino (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -48415,13 +48415,13 @@ DRIVER_INIT_MEMBER(sc4_state,sc4luck7)
// PR2085 LUCKY SEVENS LUCKY SOUNDS
-GAMEL( 200?, sc4luck7 ,0, sc4_3reel, sc4, sc4_state, sc4luck7tb, ROT0, "Mazooma","Lucky 7s (Mazooma) (Scorpion 4) (Top Box)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4luck7 ,0, sc4_3reel, sc4, sc4_state, sc4luck7tb, ROT0, "Mazooma","Lucky 7s (Mazooma) (Scorpion 4) (Top Box)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PAY UNIT ERR 17
-GAMEL( 200?, sc4luck7a ,sc4luck7, sc4_3reel_200, sc4, sc4_state, sc4luck7, ROT0, "Mazooma","Lucky 7s (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4luck7b ,sc4luck7, sc4_3reel_200, sc4, sc4_state, sc4luck7, ROT0, "Mazooma","Lucky 7s (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4luck7c ,sc4luck7, sc4_3reel_200, sc4, sc4_state, sc4luck7, ROT0, "Mazooma","Lucky 7s (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4luck7a ,sc4luck7, sc4_3reel_200, sc4, sc4_state, sc4luck7, ROT0, "Mazooma","Lucky 7s (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4luck7b ,sc4luck7, sc4_3reel_200, sc4, sc4_state, sc4luck7, ROT0, "Mazooma","Lucky 7s (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4luck7c ,sc4luck7, sc4_3reel_200, sc4, sc4_state, sc4luck7, ROT0, "Mazooma","Lucky 7s (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2085 LUCKY SEVENS LUCKY SEVENS ARCADE LUCKY SOUNDS LUCKY SEVENS
-GAMEL( 200?, sc4luck7d ,sc4luck7, sc4_3reel_200, sc4, sc4_state, sc4luck7, ROT0, "Mazooma","Lucky 7s (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4luck7d ,sc4luck7, sc4_3reel_200, sc4, sc4_state, sc4luck7, ROT0, "Mazooma","Lucky 7s (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -48436,40 +48436,40 @@ DRIVER_INIT_MEMBER(sc4_state,sc4luckb_mbus)
}
// PR1033 CASINO LUCKY BALLS PR1033 LUCKY BALLS SOUNDS11
-GAMEL( 200?, sc4luckb ,0, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4luckba ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4luckbb ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4luckbc ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4luckbd ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4luckbe ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4luckbf ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4luckbg ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4luckbh ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4luckbi ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4luckbj ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4luckbk ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 12)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4luckbl ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 13)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4luckbm ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 14)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4luckbn ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 15)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4luckbo ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 16)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4luckbp ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 17)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4luckbt ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 18)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4luckbu ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 19)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4luckbv ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 20)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4luckbw ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 21)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4luckbx ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 22)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4luckb1 ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 23)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4luckb2 ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 24)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4luckb3 ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 25)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4luckb4 ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 26)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4luckb ,0, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4luckba ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4luckbb ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4luckbc ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4luckbd ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4luckbe ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4luckbf ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4luckbg ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4luckbh ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4luckbi ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4luckbj ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4luckbk ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 12)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4luckbl ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 13)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4luckbm ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 14)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4luckbn ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 15)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4luckbo ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 16)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4luckbp ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 17)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4luckbt ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 18)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4luckbu ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 19)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4luckbv ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 20)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4luckbw ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 21)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4luckbx ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 22)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4luckb1 ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 23)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4luckb2 ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 24)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4luckb3 ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 25)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4luckb4 ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb, ROT0, "BFM","Lucky Balls Casino (Bellfruit) (Scorpion 4) (set 26)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR1033 CASINO LUCKY BALLS PR1033 LUCKY BALLS SOUNDS11 LUCKY BALLS ARCADE
-GAMEL( 200?, sc4luckbq ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb_mbus, ROT0, "BFM","Lucky Balls Casino Arcade (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4luckbr ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb_mbus, ROT0, "BFM","Lucky Balls Casino Arcade (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4luckbs ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb_mbus, ROT0, "BFM","Lucky Balls Casino Arcade (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4luckby ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb_mbus, ROT0, "BFM","Lucky Balls Casino Arcade (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4luckbz ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb_mbus, ROT0, "BFM","Lucky Balls Casino Arcade (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // incomplete pairing
-GAMEL( 200?, sc4luckb0 ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb_mbus, ROT0, "BFM","Lucky Balls Casino Arcade (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4luckbq ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb_mbus, ROT0, "BFM","Lucky Balls Casino Arcade (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4luckbr ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb_mbus, ROT0, "BFM","Lucky Balls Casino Arcade (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4luckbs ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb_mbus, ROT0, "BFM","Lucky Balls Casino Arcade (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4luckby ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb_mbus, ROT0, "BFM","Lucky Balls Casino Arcade (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4luckbz ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb_mbus, ROT0, "BFM","Lucky Balls Casino Arcade (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // incomplete pairing
+GAMEL( 200?, sc4luckb0 ,sc4luckb, sc4_200_4r, sc4, sc4_state, sc4luckb_mbus, ROT0, "BFM","Lucky Balls Casino Arcade (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -48485,21 +48485,21 @@ DRIVER_INIT_MEMBER(sc4_state,sc4mgrm)
}
// PR1132 CASINO MONEY GO ROUND PR1132 MONEY GO ROUND SOUNDS11
-GAMEL( 200?, sc4mgr ,0, sc4_200_4r, sc4, sc4_state, sc4mgr, ROT0, "BFM","Money Go Round Casino (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mgra ,sc4mgr, sc4_200_4r, sc4, sc4_state, sc4mgr, ROT0, "BFM","Money Go Round Casino (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mgrh ,sc4mgr, sc4_200_4r, sc4, sc4_state, sc4mgr, ROT0, "BFM","Money Go Round Casino (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mgri ,sc4mgr, sc4_200_4r, sc4, sc4_state, sc4mgr, ROT0, "BFM","Money Go Round Casino (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mgr ,0, sc4_200_4r, sc4, sc4_state, sc4mgr, ROT0, "BFM","Money Go Round Casino (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mgra ,sc4mgr, sc4_200_4r, sc4, sc4_state, sc4mgr, ROT0, "BFM","Money Go Round Casino (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mgrh ,sc4mgr, sc4_200_4r, sc4, sc4_state, sc4mgr, ROT0, "BFM","Money Go Round Casino (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mgri ,sc4mgr, sc4_200_4r, sc4, sc4_state, sc4mgr, ROT0, "BFM","Money Go Round Casino (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR1132 CASINO MONEY GO ROUND PR1132 MONEY GO ROUND SOUNDS11 MONEY GO ROUND S.SITE
-GAMEL( 200?, sc4mgrb ,sc4mgr, sc4_200_4r, sc4, sc4_state, sc4mgrm, ROT0, "BFM","Money Go Round Casino (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mgrc ,sc4mgr, sc4_200_4r, sc4, sc4_state, sc4mgrm, ROT0, "BFM","Money Go Round Casino (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mgrd ,sc4mgr, sc4_200_4r, sc4, sc4_state, sc4mgrm, ROT0, "BFM","Money Go Round Casino (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mgre ,sc4mgr, sc4_200_4r, sc4, sc4_state, sc4mgrm, ROT0, "BFM","Money Go Round Casino (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mgrf ,sc4mgr, sc4_200_4r, sc4, sc4_state, sc4mgrm, ROT0, "BFM","Money Go Round Casino (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mgrg ,sc4mgr, sc4_200_4r, sc4, sc4_state, sc4mgrm, ROT0, "BFM","Money Go Round Casino (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mgrj ,sc4mgr, sc4_200_4r, sc4, sc4_state, sc4mgrm, ROT0, "BFM","Money Go Round Casino (Bellfruit) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mgrk ,sc4mgr, sc4_200_4r, sc4, sc4_state, sc4mgrm, ROT0, "BFM","Money Go Round Casino (Bellfruit) (Scorpion 4) (set 12)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mgrl ,sc4mgr, sc4_200_4r, sc4, sc4_state, sc4mgrm, ROT0, "BFM","Money Go Round Casino (Bellfruit) (Scorpion 4) (set 13)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mgrm ,sc4mgr, sc4_200_4r, sc4, sc4_state, sc4mgrm, ROT0, "BFM","Money Go Round Casino (Bellfruit) (Scorpion 4) (set 14)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mgrb ,sc4mgr, sc4_200_4r, sc4, sc4_state, sc4mgrm, ROT0, "BFM","Money Go Round Casino (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mgrc ,sc4mgr, sc4_200_4r, sc4, sc4_state, sc4mgrm, ROT0, "BFM","Money Go Round Casino (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mgrd ,sc4mgr, sc4_200_4r, sc4, sc4_state, sc4mgrm, ROT0, "BFM","Money Go Round Casino (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mgre ,sc4mgr, sc4_200_4r, sc4, sc4_state, sc4mgrm, ROT0, "BFM","Money Go Round Casino (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mgrf ,sc4mgr, sc4_200_4r, sc4, sc4_state, sc4mgrm, ROT0, "BFM","Money Go Round Casino (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mgrg ,sc4mgr, sc4_200_4r, sc4, sc4_state, sc4mgrm, ROT0, "BFM","Money Go Round Casino (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mgrj ,sc4mgr, sc4_200_4r, sc4, sc4_state, sc4mgrm, ROT0, "BFM","Money Go Round Casino (Bellfruit) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mgrk ,sc4mgr, sc4_200_4r, sc4, sc4_state, sc4mgrm, ROT0, "BFM","Money Go Round Casino (Bellfruit) (Scorpion 4) (set 12)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mgrl ,sc4mgr, sc4_200_4r, sc4, sc4_state, sc4mgrm, ROT0, "BFM","Money Go Round Casino (Bellfruit) (Scorpion 4) (set 13)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mgrm ,sc4mgr, sc4_200_4r, sc4, sc4_state, sc4mgrm, ROT0, "BFM","Money Go Round Casino (Bellfruit) (Scorpion 4) (set 14)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -48515,21 +48515,21 @@ DRIVER_INIT_MEMBER(sc4_state,sc4mspid_mbus)
}
// PR1325 CASINO MONEY SPIDER PR1325 MONEYSPIDER SOUNDS11
-GAMEL( 200?, sc4mspid ,0, sc4_200_4r, sc4, sc4_state, sc4mspid, ROT0, "BFM","Casino Money Spider (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mspida ,sc4mspid, sc4_200_4r, sc4, sc4_state, sc4mspid, ROT0, "BFM","Casino Money Spider (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mspidb ,sc4mspid, sc4_200_4r, sc4, sc4_state, sc4mspid, ROT0, "BFM","Casino Money Spider (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mspidc ,sc4mspid, sc4_200_4r, sc4, sc4_state, sc4mspid, ROT0, "BFM","Casino Money Spider (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mspidd ,sc4mspid, sc4_200_4r, sc4, sc4_state, sc4mspid, ROT0, "BFM","Casino Money Spider (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mspide ,sc4mspid, sc4_200_4r, sc4, sc4_state, sc4mspid, ROT0, "BFM","Casino Money Spider (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mspidf ,sc4mspid, sc4_200_4r, sc4, sc4_state, sc4mspid, ROT0, "BFM","Casino Money Spider (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mspidg ,sc4mspid, sc4_200_4r, sc4, sc4_state, sc4mspid, ROT0, "BFM","Casino Money Spider (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mspidj ,sc4mspid, sc4_200_4r, sc4, sc4_state, sc4mspid, ROT0, "BFM","Casino Money Spider (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mspidk ,sc4mspid, sc4_200_4r, sc4, sc4_state, sc4mspid, ROT0, "BFM","Casino Money Spider (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mspidl ,sc4mspid, sc4_200_4r, sc4, sc4_state, sc4mspid, ROT0, "BFM","Casino Money Spider (Bellfruit) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mspidm ,sc4mspid, sc4_200_4r, sc4, sc4_state, sc4mspid, ROT0, "BFM","Casino Money Spider (Bellfruit) (Scorpion 4) (set 12)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mspid ,0, sc4_200_4r, sc4, sc4_state, sc4mspid, ROT0, "BFM","Casino Money Spider (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mspida ,sc4mspid, sc4_200_4r, sc4, sc4_state, sc4mspid, ROT0, "BFM","Casino Money Spider (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mspidb ,sc4mspid, sc4_200_4r, sc4, sc4_state, sc4mspid, ROT0, "BFM","Casino Money Spider (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mspidc ,sc4mspid, sc4_200_4r, sc4, sc4_state, sc4mspid, ROT0, "BFM","Casino Money Spider (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mspidd ,sc4mspid, sc4_200_4r, sc4, sc4_state, sc4mspid, ROT0, "BFM","Casino Money Spider (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mspide ,sc4mspid, sc4_200_4r, sc4, sc4_state, sc4mspid, ROT0, "BFM","Casino Money Spider (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mspidf ,sc4mspid, sc4_200_4r, sc4, sc4_state, sc4mspid, ROT0, "BFM","Casino Money Spider (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mspidg ,sc4mspid, sc4_200_4r, sc4, sc4_state, sc4mspid, ROT0, "BFM","Casino Money Spider (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mspidj ,sc4mspid, sc4_200_4r, sc4, sc4_state, sc4mspid, ROT0, "BFM","Casino Money Spider (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mspidk ,sc4mspid, sc4_200_4r, sc4, sc4_state, sc4mspid, ROT0, "BFM","Casino Money Spider (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mspidl ,sc4mspid, sc4_200_4r, sc4, sc4_state, sc4mspid, ROT0, "BFM","Casino Money Spider (Bellfruit) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mspidm ,sc4mspid, sc4_200_4r, sc4, sc4_state, sc4mspid, ROT0, "BFM","Casino Money Spider (Bellfruit) (Scorpion 4) (set 12)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR1325 CASINO MONEY SPIDER MONEY SPIDER ARCADE PR1325 MONEYSPIDER SOUNDS11
-GAMEL( 200?, sc4mspidh ,sc4mspid, sc4_200_4r, sc4, sc4_state, sc4mspid_mbus, ROT0, "BFM","Casino Money Spider (Bellfruit) (Scorpion 4) (set 13)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mspidi ,sc4mspid, sc4_200_4r, sc4, sc4_state, sc4mspid_mbus, ROT0, "BFM","Casino Money Spider (Bellfruit) (Scorpion 4) (set 14)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mspidh ,sc4mspid, sc4_200_4r, sc4, sc4_state, sc4mspid_mbus, ROT0, "BFM","Casino Money Spider (Bellfruit) (Scorpion 4) (set 13)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mspidi ,sc4mspid, sc4_200_4r, sc4, sc4_state, sc4mspid_mbus, ROT0, "BFM","Casino Money Spider (Bellfruit) (Scorpion 4) (set 14)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -48539,14 +48539,14 @@ DRIVER_INIT_MEMBER(sc4_state,sc4msclb)
}
// PR1040 MONEY SPINNER PR1040 MON S CLUB SOUNDS11
-GAMEL( 200?, sc4msclb ,0, sc4_200_4r, sc4, sc4_state, sc4msclb, ROT0, "BFM","Money Spinner Club (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4msclba ,sc4msclb, sc4_200_4r, sc4, sc4_state, sc4msclb, ROT0, "BFM","Money Spinner Club (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4msclbb ,sc4msclb, sc4_200_4r, sc4, sc4_state, sc4msclb, ROT0, "BFM","Money Spinner Club (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4msclbc ,sc4msclb, sc4_200_4r, sc4, sc4_state, sc4msclb, ROT0, "BFM","Money Spinner Club (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4msclbd ,sc4msclb, sc4_200_4r, sc4, sc4_state, sc4msclb, ROT0, "BFM","Money Spinner Club (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4msclbe ,sc4msclb, sc4_200_4r, sc4, sc4_state, sc4msclb, ROT0, "BFM","Money Spinner Club (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4msclbf ,sc4msclb, sc4_200_4r, sc4, sc4_state, sc4msclb, ROT0, "BFM","Money Spinner Club (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4msclbg ,sc4msclb, sc4_200_4r, sc4, sc4_state, sc4msclb, ROT0, "BFM","Money Spinner Club (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4msclb ,0, sc4_200_4r, sc4, sc4_state, sc4msclb, ROT0, "BFM","Money Spinner Club (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4msclba ,sc4msclb, sc4_200_4r, sc4, sc4_state, sc4msclb, ROT0, "BFM","Money Spinner Club (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4msclbb ,sc4msclb, sc4_200_4r, sc4, sc4_state, sc4msclb, ROT0, "BFM","Money Spinner Club (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4msclbc ,sc4msclb, sc4_200_4r, sc4, sc4_state, sc4msclb, ROT0, "BFM","Money Spinner Club (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4msclbd ,sc4msclb, sc4_200_4r, sc4, sc4_state, sc4msclb, ROT0, "BFM","Money Spinner Club (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4msclbe ,sc4msclb, sc4_200_4r, sc4, sc4_state, sc4msclb, ROT0, "BFM","Money Spinner Club (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4msclbf ,sc4msclb, sc4_200_4r, sc4, sc4_state, sc4msclb, ROT0, "BFM","Money Spinner Club (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4msclbg ,sc4msclb, sc4_200_4r, sc4, sc4_state, sc4msclb, ROT0, "BFM","Money Spinner Club (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -48557,18 +48557,18 @@ DRIVER_INIT_MEMBER(sc4_state,sc4mtb)
}
// PR6803 MONEY TO BURN PR6803 BURN SOUNDS11
-GAMEL( 200?, sc4mtb ,0, sc4_4reel, sc4, sc4_state, sc4mtb, ROT0, "BFM","Money To Burn (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mtba ,sc4mtb, sc4_4reel, sc4, sc4_state, sc4mtb, ROT0, "BFM","Money To Burn (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mtbb ,sc4mtb, sc4_4reel, sc4, sc4_state, sc4mtb, ROT0, "BFM","Money To Burn (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mtbe ,sc4mtb, sc4_4reel, sc4, sc4_state, sc4mtb, ROT0, "BFM","Money To Burn (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mtbf ,sc4mtb, sc4_4reel, sc4, sc4_state, sc4mtb, ROT0, "BFM","Money To Burn (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mtbg ,sc4mtb, sc4_4reel, sc4, sc4_state, sc4mtb, ROT0, "BFM","Money To Burn (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mtbj ,sc4mtb, sc4_4reel, sc4, sc4_state, sc4mtb, ROT0, "BFM","Money To Burn (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mtb ,0, sc4_4reel, sc4, sc4_state, sc4mtb, ROT0, "BFM","Money To Burn (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mtba ,sc4mtb, sc4_4reel, sc4, sc4_state, sc4mtb, ROT0, "BFM","Money To Burn (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mtbb ,sc4mtb, sc4_4reel, sc4, sc4_state, sc4mtb, ROT0, "BFM","Money To Burn (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mtbe ,sc4mtb, sc4_4reel, sc4, sc4_state, sc4mtb, ROT0, "BFM","Money To Burn (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mtbf ,sc4mtb, sc4_4reel, sc4, sc4_state, sc4mtb, ROT0, "BFM","Money To Burn (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mtbg ,sc4mtb, sc4_4reel, sc4, sc4_state, sc4mtb, ROT0, "BFM","Money To Burn (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mtbj ,sc4mtb, sc4_4reel, sc4, sc4_state, sc4mtb, ROT0, "BFM","Money To Burn (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR4603 MONEY TO BURN SP98 PR6803 BURN SOUNDS11
-GAMEL( 200?, sc4mtbc ,sc4mtb, sc4_4reel, sc4, sc4_state, sc4mtb, ROT0, "BFM","Money To Burn SP98 (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mtbd ,sc4mtb, sc4_4reel, sc4, sc4_state, sc4mtb, ROT0, "BFM","Money To Burn SP98 (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mtbh ,sc4mtb, sc4_4reel, sc4, sc4_state, sc4mtb, ROT0, "BFM","Money To Burn SP98 (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mtbi ,sc4mtb, sc4_4reel, sc4, sc4_state, sc4mtb, ROT0, "BFM","Money To Burn SP98 (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mtbc ,sc4mtb, sc4_4reel, sc4, sc4_state, sc4mtb, ROT0, "BFM","Money To Burn SP98 (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mtbd ,sc4mtb, sc4_4reel, sc4, sc4_state, sc4mtb, ROT0, "BFM","Money To Burn SP98 (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mtbh ,sc4mtb, sc4_4reel, sc4, sc4_state, sc4mtb, ROT0, "BFM","Money To Burn SP98 (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mtbi ,sc4mtb, sc4_4reel, sc4, sc4_state, sc4mtb, ROT0, "BFM","Money To Burn SP98 (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4mtbcl)
@@ -48578,22 +48578,22 @@ DRIVER_INIT_MEMBER(sc4_state,sc4mtbcl)
// PR6932 CLUB MONEY TO BURN PR6932 BURN SOUNDS11
-GAMEL( 200?, sc4mtbcl ,0, sc4_5reel, sc4, sc4_state, sc4mtbcl, ROT0, "BFM","Money To Burn Club (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mtbcla ,sc4mtbcl, sc4_5reel, sc4, sc4_state, sc4mtbcl, ROT0, "BFM","Money To Burn Club (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mtbclb ,sc4mtbcl, sc4_5reel, sc4, sc4_state, sc4mtbcl, ROT0, "BFM","Money To Burn Club (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mtbclc ,sc4mtbcl, sc4_5reel, sc4, sc4_state, sc4mtbcl, ROT0, "BFM","Money To Burn Club (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mtbcld ,sc4mtbcl, sc4_5reel, sc4, sc4_state, sc4mtbcl, ROT0, "BFM","Money To Burn Club (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mtbcle ,sc4mtbcl, sc4_5reel, sc4, sc4_state, sc4mtbcl, ROT0, "BFM","Money To Burn Club (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mtbclf ,sc4mtbcl, sc4_5reel, sc4, sc4_state, sc4mtbcl, ROT0, "BFM","Money To Burn Club (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mtbclg ,sc4mtbcl, sc4_5reel, sc4, sc4_state, sc4mtbcl, ROT0, "BFM","Money To Burn Club (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mtbclh ,sc4mtbcl, sc4_5reel, sc4, sc4_state, sc4mtbcl, ROT0, "BFM","Money To Burn Club (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mtbcli ,sc4mtbcl, sc4_5reel, sc4, sc4_state, sc4mtbcl, ROT0, "BFM","Money To Burn Club (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mtbclj ,sc4mtbcl, sc4_5reel, sc4, sc4_state, sc4mtbcl, ROT0, "BFM","Money To Burn Club (Bellfruit) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mtbclk ,sc4mtbcl, sc4_5reel, sc4, sc4_state, sc4mtbcl, ROT0, "BFM","Money To Burn Club (Bellfruit) (Scorpion 4) (set 12)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mtbcll ,sc4mtbcl, sc4_5reel, sc4, sc4_state, sc4mtbcl, ROT0, "BFM","Money To Burn Club (Bellfruit) (Scorpion 4) (set 13)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mtbclm ,sc4mtbcl, sc4_5reel, sc4, sc4_state, sc4mtbcl, ROT0, "BFM","Money To Burn Club (Bellfruit) (Scorpion 4) (set 14)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mtbcln ,sc4mtbcl, sc4_5reel, sc4, sc4_state, sc4mtbcl, ROT0, "BFM","Money To Burn Club (Bellfruit) (Scorpion 4) (set 15)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mtbclo ,sc4mtbcl, sc4_5reel, sc4, sc4_state, sc4mtbcl, ROT0, "BFM","Money To Burn Club (Bellfruit) (Scorpion 4) (set 16)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mtbcl ,0, sc4_5reel, sc4, sc4_state, sc4mtbcl, ROT0, "BFM","Money To Burn Club (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mtbcla ,sc4mtbcl, sc4_5reel, sc4, sc4_state, sc4mtbcl, ROT0, "BFM","Money To Burn Club (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mtbclb ,sc4mtbcl, sc4_5reel, sc4, sc4_state, sc4mtbcl, ROT0, "BFM","Money To Burn Club (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mtbclc ,sc4mtbcl, sc4_5reel, sc4, sc4_state, sc4mtbcl, ROT0, "BFM","Money To Burn Club (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mtbcld ,sc4mtbcl, sc4_5reel, sc4, sc4_state, sc4mtbcl, ROT0, "BFM","Money To Burn Club (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mtbcle ,sc4mtbcl, sc4_5reel, sc4, sc4_state, sc4mtbcl, ROT0, "BFM","Money To Burn Club (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mtbclf ,sc4mtbcl, sc4_5reel, sc4, sc4_state, sc4mtbcl, ROT0, "BFM","Money To Burn Club (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mtbclg ,sc4mtbcl, sc4_5reel, sc4, sc4_state, sc4mtbcl, ROT0, "BFM","Money To Burn Club (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mtbclh ,sc4mtbcl, sc4_5reel, sc4, sc4_state, sc4mtbcl, ROT0, "BFM","Money To Burn Club (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mtbcli ,sc4mtbcl, sc4_5reel, sc4, sc4_state, sc4mtbcl, ROT0, "BFM","Money To Burn Club (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mtbclj ,sc4mtbcl, sc4_5reel, sc4, sc4_state, sc4mtbcl, ROT0, "BFM","Money To Burn Club (Bellfruit) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mtbclk ,sc4mtbcl, sc4_5reel, sc4, sc4_state, sc4mtbcl, ROT0, "BFM","Money To Burn Club (Bellfruit) (Scorpion 4) (set 12)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mtbcll ,sc4mtbcl, sc4_5reel, sc4, sc4_state, sc4mtbcl, ROT0, "BFM","Money To Burn Club (Bellfruit) (Scorpion 4) (set 13)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mtbclm ,sc4mtbcl, sc4_5reel, sc4, sc4_state, sc4mtbcl, ROT0, "BFM","Money To Burn Club (Bellfruit) (Scorpion 4) (set 14)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mtbcln ,sc4mtbcl, sc4_5reel, sc4, sc4_state, sc4mtbcl, ROT0, "BFM","Money To Burn Club (Bellfruit) (Scorpion 4) (set 15)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mtbclo ,sc4mtbcl, sc4_5reel, sc4, sc4_state, sc4mtbcl, ROT0, "BFM","Money To Burn Club (Bellfruit) (Scorpion 4) (set 16)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -48604,8 +48604,8 @@ DRIVER_INIT_MEMBER(sc4_state,sc4mono5)
DRIVER_INIT_CALL(sc4);
}
-GAMEL( 200?, sc4mono5 ,0, sc4_3reel_200, sc4, sc4_state, sc4mono5, ROT0, "Mazooma","Monopoly 5 (PR7089, MONF) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR7089 MONO 5 MONO SOUNDS MONOPOLY
-GAMEL( 200?, sc4mono5a ,sc4mono5, sc4_3reel_200, sc4, sc4_state, sc4mono5, ROT0, "Mazooma","Monopoly 5 (PR7089, MONF) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR7089 MONO 5 MONO SOUNDS MONOPOLY
+GAMEL( 200?, sc4mono5 ,0, sc4_3reel_200, sc4, sc4_state, sc4mono5, ROT0, "Mazooma","Monopoly 5 (PR7089, MONF) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR7089 MONO 5 MONO SOUNDS MONOPOLY
+GAMEL( 200?, sc4mono5a ,sc4mono5, sc4_3reel_200, sc4, sc4_state, sc4mono5, ROT0, "Mazooma","Monopoly 5 (PR7089, MONF) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR7089 MONO 5 MONO SOUNDS MONOPOLY
@@ -48621,26 +48621,26 @@ DRIVER_INIT_MEMBER(sc4_state,sc4monoa_mbus)
DRIVER_INIT_CALL(sc4mbus);
}
-GAMEL( 200?, sc4monoa ,0, sc4_3reel_200, sc4, sc4_state, sc4monoa_mbus, ROT0, "Mazooma","Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR2122 MONOPOLY MONOPOLY TRIPLE ARCADE MONO SOUNDS MONOPOLY
-GAMEL( 200?, sc4monoaa ,sc4monoa, sc4_3reel_200, sc4, sc4_state, sc4monoa_mbus, ROT0, "Mazooma","Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4monoad ,sc4monoa, sc4_3reel_200, sc4, sc4_state, sc4monoa_mbus, ROT0, "Mazooma","Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4monoae ,sc4monoa, sc4_3reel_200, sc4, sc4_state, sc4monoa_mbus, ROT0, "Mazooma","Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4monoaf ,sc4monoa, sc4_3reel_200, sc4, sc4_state, sc4monoa_mbus, ROT0, "Mazooma","Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4monoag ,sc4monoa, sc4_3reel_200, sc4, sc4_state, sc4monoa_mbus, ROT0, "Mazooma","Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4monoa ,0, sc4_3reel_200, sc4, sc4_state, sc4monoa_mbus, ROT0, "Mazooma","Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR2122 MONOPOLY MONOPOLY TRIPLE ARCADE MONO SOUNDS MONOPOLY
+GAMEL( 200?, sc4monoaa ,sc4monoa, sc4_3reel_200, sc4, sc4_state, sc4monoa_mbus, ROT0, "Mazooma","Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4monoad ,sc4monoa, sc4_3reel_200, sc4, sc4_state, sc4monoa_mbus, ROT0, "Mazooma","Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4monoae ,sc4monoa, sc4_3reel_200, sc4, sc4_state, sc4monoa_mbus, ROT0, "Mazooma","Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4monoaf ,sc4monoa, sc4_3reel_200, sc4, sc4_state, sc4monoa_mbus, ROT0, "Mazooma","Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4monoag ,sc4monoa, sc4_3reel_200, sc4, sc4_state, sc4monoa_mbus, ROT0, "Mazooma","Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
// PAY UNIT ERR 17
-GAMEL( 200?, sc4monoab ,sc4monoa, sc4_3reel_200, sc4, sc4_state, sc4monoa, ROT0, "Mazooma","Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4monoac ,sc4monoa, sc4_3reel_200, sc4, sc4_state, sc4monoa, ROT0, "Mazooma","Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4monoah ,sc4monoa, sc4_3reel_200, sc4, sc4_state, sc4monoa, ROT0, "Mazooma","Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4monoai ,sc4monoa, sc4_3reel_200, sc4, sc4_state, sc4monoa, ROT0, "Mazooma","Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4monoaj ,sc4monoa, sc4_3reel_200, sc4, sc4_state, sc4monoa, ROT0, "Mazooma","Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4monoak ,sc4monoa, sc4_3reel_200, sc4, sc4_state, sc4monoa, ROT0, "Mazooma","Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 12)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4monoab ,sc4monoa, sc4_3reel_200, sc4, sc4_state, sc4monoa, ROT0, "Mazooma","Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4monoac ,sc4monoa, sc4_3reel_200, sc4, sc4_state, sc4monoa, ROT0, "Mazooma","Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4monoah ,sc4monoa, sc4_3reel_200, sc4, sc4_state, sc4monoa, ROT0, "Mazooma","Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4monoai ,sc4monoa, sc4_3reel_200, sc4, sc4_state, sc4monoa, ROT0, "Mazooma","Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4monoaj ,sc4monoa, sc4_3reel_200, sc4, sc4_state, sc4monoa, ROT0, "Mazooma","Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4monoak ,sc4monoa, sc4_3reel_200, sc4, sc4_state, sc4monoa, ROT0, "Mazooma","Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 12)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4monoal ,sc4monoa, sc4_3reel_200, sc4, sc4_state, sc4monoa, ROT0, "Mazooma","Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 13)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// PR2122 MONOPOLY MONOPOLY TRIPLE ARCADE MONOPOLY TRIPLE
-GAMEL( 200?, sc4monoam ,sc4monoa, sc4_3reel_200, sc4, sc4_state, sc4monoa, ROT0, "Mazooma","Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 14)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4monoan ,sc4monoa, sc4_3reel_200, sc4, sc4_state, sc4monoa, ROT0, "Mazooma","Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 15)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// PR2122 MONOPOLY MONO SOUNDS MONOPOLY
-GAMEL( 200?, sc4monoao ,sc4monoa, sc4_3reel_200, sc4, sc4_state, sc4monoa, ROT0, "Mazooma","Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 16)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4monoap ,sc4monoa, sc4_3reel_200, sc4, sc4_state, sc4monoa, ROT0, "Mazooma","Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 17)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4monoaq ,sc4monoa, sc4_3reel_200, sc4, sc4_state, sc4monoa, ROT0, "Mazooma","Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 18)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4monoal ,sc4monoa, sc4_3reel_200, sc4, sc4_state, sc4monoa, ROT0, "Mazooma","Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 13)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// PR2122 MONOPOLY MONOPOLY TRIPLE ARCADE MONOPOLY TRIPLE
+GAMEL( 200?, sc4monoam ,sc4monoa, sc4_3reel_200, sc4, sc4_state, sc4monoa, ROT0, "Mazooma","Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 14)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4monoan ,sc4monoa, sc4_3reel_200, sc4, sc4_state, sc4monoa, ROT0, "Mazooma","Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 15)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// PR2122 MONOPOLY MONO SOUNDS MONOPOLY
+GAMEL( 200?, sc4monoao ,sc4monoa, sc4_3reel_200, sc4, sc4_state, sc4monoa, ROT0, "Mazooma","Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 16)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4monoap ,sc4monoa, sc4_3reel_200, sc4, sc4_state, sc4monoa, ROT0, "Mazooma","Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 17)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4monoaq ,sc4monoa, sc4_3reel_200, sc4, sc4_state, sc4monoa, ROT0, "Mazooma","Monopoly Triple (PR2122, MOTR) (Mazooma) (Scorpion 4) (set 18)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
DRIVER_INIT_MEMBER(sc4_state,sc4monop)
@@ -48648,34 +48648,34 @@ DRIVER_INIT_MEMBER(sc4_state,sc4monop)
DRIVER_INIT_CALL(sc4);
}
-GAMEL( 200?, sc4monop ,sc4monoa, sc4_3reel, sc4, sc4_state, sc4monop, ROT0, "Mazooma","Monopoly Triple (PR2056, TBOX) (Mazooma) (Scorpion 4) (Top Box, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR2056 MONOP TRIPLE MONO SOUNDS MONOP TRIPLE
-GAMEL( 200?, sc4monopa ,sc4monoa, sc4_3reel, sc4, sc4_state, sc4monop, ROT0, "Mazooma","Monopoly Triple (PR2056, TBOX) (Mazooma) (Scorpion 4) (Top Box, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR2056 MONOP TRIPLE MONO SOUNDS MONOP TRIPLE
+GAMEL( 200?, sc4monop ,sc4monoa, sc4_3reel, sc4, sc4_state, sc4monop, ROT0, "Mazooma","Monopoly Triple (PR2056, TBOX) (Mazooma) (Scorpion 4) (Top Box, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR2056 MONOP TRIPLE MONO SOUNDS MONOP TRIPLE
+GAMEL( 200?, sc4monopa ,sc4monoa, sc4_3reel, sc4, sc4_state, sc4monop, ROT0, "Mazooma","Monopoly Triple (PR2056, TBOX) (Mazooma) (Scorpion 4) (Top Box, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR2056 MONOP TRIPLE MONO SOUNDS MONOP TRIPLE
// I think this is different to the above, this is GM** (Grand Monopoly?)
-GAMEL( 200?, sc4mcas ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR2354 MONOPOLY CASINO MONOPOLY TRIPLE MAZ MONO SOUNDS MONOPOLY
-GAMEL( 200?, sc4mcasm ,sc4mcas, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4mcasn ,sc4mcas, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4mcaso ,sc4mcas, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4mcasp ,sc4mcas, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4mcasq ,sc4mcas, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4mcasr ,sc4mcas, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4mcass ,sc4mcas, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4mcast ,sc4mcas, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4mcasv ,sc4mcas, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4mcasw ,sc4mcas, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4mcasx ,sc4mcas, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 12)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4mcasy ,sc4mcas, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 13)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4mcasz ,sc4mcas, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 14)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4mcas0 ,sc4mcas, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 15)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4mcas1 ,sc4mcas, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 16)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4mcas2 ,sc4mcas, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 17)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
-GAMEL( 200?, sc4mcas3 ,sc4mcas, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 18)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4mcas ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR2354 MONOPOLY CASINO MONOPOLY TRIPLE MAZ MONO SOUNDS MONOPOLY
+GAMEL( 200?, sc4mcasm ,sc4mcas, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4mcasn ,sc4mcas, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4mcaso ,sc4mcas, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4mcasp ,sc4mcas, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4mcasq ,sc4mcas, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4mcasr ,sc4mcas, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4mcass ,sc4mcas, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4mcast ,sc4mcas, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4mcasv ,sc4mcas, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4mcasw ,sc4mcas, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4mcasx ,sc4mcas, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 12)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4mcasy ,sc4mcas, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 13)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4mcasz ,sc4mcas, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 14)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4mcas0 ,sc4mcas, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 15)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4mcas1 ,sc4mcas, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 16)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4mcas2 ,sc4mcas, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 17)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
+GAMEL( 200?, sc4mcas3 ,sc4mcas, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2354) (Mazooma) (Scorpion 4) (GMBU, set 18)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )// ^^
// these have a different internal code compared to the PR2056 sets above which strongly indicates they're for the 'GMBU' sets above
-GAMEL( 200?, sc4mcask ,sc4mcas, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2056) (Mazooma) (Scorpion 4) (GMTB, Top Box, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR2056 MONOP TRIPLE MONO SOUNDS MONOP TRIPLE
-GAMEL( 200?, sc4mcasu ,sc4mcas, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2056) (Mazooma) (Scorpion 4) (GMTB, Top Box, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4mcas4 ,sc4mcas, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2056) (Mazooma) (Scorpion 4) (GMTB, Top Box, set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4mcask ,sc4mcas, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2056) (Mazooma) (Scorpion 4) (GMTB, Top Box, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR2056 MONOP TRIPLE MONO SOUNDS MONOP TRIPLE
+GAMEL( 200?, sc4mcasu ,sc4mcas, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2056) (Mazooma) (Scorpion 4) (GMTB, Top Box, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4mcas4 ,sc4mcas, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly Casino (PR2056) (Mazooma) (Scorpion 4) (GMTB, Top Box, set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
@@ -48687,9 +48687,9 @@ DRIVER_INIT_MEMBER(sc4_state,sc4pacqp)
// PR7072 PAC MAN PACP SOUNDS PAC-MAN
-GAMEL( 200?, sc4pacqp ,0, sc4_4reel, sc4, sc4_state, sc4pacqp, ROT0, "QPS","Pac Man (PR7072, QPAC) (QPS) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pacqpa ,sc4pacqp, sc4_4reel, sc4, sc4_state, sc4pacqp, ROT0, "QPS","Pac Man (PR7072, QPAC) (QPS) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pacqpb ,sc4pacqp, sc4_4reel, sc4, sc4_state, sc4pacqp, ROT0, "QPS","Pac Man (PR7072, QPAC) (QPS) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pacqp ,0, sc4_4reel, sc4, sc4_state, sc4pacqp, ROT0, "QPS","Pac Man (PR7072, QPAC) (QPS) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pacqpa ,sc4pacqp, sc4_4reel, sc4, sc4_state, sc4pacqp, ROT0, "QPS","Pac Man (PR7072, QPAC) (QPS) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pacqpb ,sc4pacqp, sc4_4reel, sc4, sc4_state, sc4pacqp, ROT0, "QPS","Pac Man (PR7072, QPAC) (QPS) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -48699,9 +48699,9 @@ DRIVER_INIT_MEMBER(sc4_state,sc4pacmn)
}
// PR7026 PACMAN PACMAN SOUNDS
-GAMEL( 200?, sc4pacmn ,0, sc4_4reel, sc4, sc4_state, sc4pacmn, ROT0, "Mazooma","Pac Man (PR7026, PMAN) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // this set doesn't start, CPU ends up dead? - needs valid jackpot / stake keys
-GAMEL( 200?, sc4pacmna ,sc4pacmn, sc4_4reel, sc4, sc4_state, sc4pacmn, ROT0, "Mazooma","Pac Man (PR7026, PMAN) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pacmnb ,sc4pacmn, sc4_4reel, sc4, sc4_state, sc4pacmn, ROT0, "Mazooma","Pac Man (PR7026, PMAN) (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pacmn ,0, sc4_4reel, sc4, sc4_state, sc4pacmn, ROT0, "Mazooma","Pac Man (PR7026, PMAN) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // this set doesn't start, CPU ends up dead? - needs valid jackpot / stake keys
+GAMEL( 200?, sc4pacmna ,sc4pacmn, sc4_4reel, sc4, sc4_state, sc4pacmn, ROT0, "Mazooma","Pac Man (PR7026, PMAN) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pacmnb ,sc4pacmn, sc4_4reel, sc4, sc4_state, sc4pacmn, ROT0, "Mazooma","Pac Man (PR7026, PMAN) (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -48717,19 +48717,19 @@ DRIVER_INIT_MEMBER(sc4_state,sc4paccs_mbus)
}
// PR7049CASINO PACMAN PACMAN SOUNDS
-GAMEL( 200?, sc4paccs ,0, sc4_4reel, sc4, sc4_state, sc4paccs, ROT0, "Mazooma","Pac Man Casino (PR7049, PACL) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4paccsa ,sc4paccs, sc4_4reel, sc4, sc4_state, sc4paccs, ROT0, "Mazooma","Pac Man Casino (PR7049, PACL) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4paccsb ,sc4paccs, sc4_4reel, sc4, sc4_state, sc4paccs, ROT0, "Mazooma","Pac Man Casino (PR7049, PACL) (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4paccsc ,sc4paccs, sc4_4reel, sc4, sc4_state, sc4paccs, ROT0, "Mazooma","Pac Man Casino (PR7049, PACL) (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4paccsd ,sc4paccs, sc4_4reel, sc4, sc4_state, sc4paccs, ROT0, "Mazooma","Pac Man Casino (PR7049, PACL) (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4paccse ,sc4paccs, sc4_4reel, sc4, sc4_state, sc4paccs, ROT0, "Mazooma","Pac Man Casino (PR7049, PACL) (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4paccsf ,sc4paccs, sc4_4reel, sc4, sc4_state, sc4paccs, ROT0, "Mazooma","Pac Man Casino (PR7049, PACL) (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4paccsg ,sc4paccs, sc4_4reel, sc4, sc4_state, sc4paccs, ROT0, "Mazooma","Pac Man Casino (PR7049, PACL) (Mazooma) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4paccsj ,sc4paccs, sc4_4reel, sc4, sc4_state, sc4paccs, ROT0, "Mazooma","Pac Man Casino (PR7049, PACL) (Mazooma) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4paccsk ,sc4paccs, sc4_4reel, sc4, sc4_state, sc4paccs, ROT0, "Mazooma","Pac Man Casino (PR7049, PACL) (Mazooma) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4paccsl ,sc4paccs, sc4_4reel, sc4, sc4_state, sc4paccs, ROT0, "Mazooma","Pac Man Casino (PR7049, PACL) (Mazooma) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4paccsh ,sc4paccs, sc4_4reel, sc4, sc4_state, sc4paccs_mbus, ROT0, "Mazooma","Pac Man Casino (PR7049, PACL) (Mazooma) (Scorpion 4) (set 12)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4paccsi ,sc4paccs, sc4_4reel, sc4, sc4_state, sc4paccs_mbus, ROT0, "Mazooma","Pac Man Casino (PR7049, PACL) (Mazooma) (Scorpion 4) (set 13)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4paccs ,0, sc4_4reel, sc4, sc4_state, sc4paccs, ROT0, "Mazooma","Pac Man Casino (PR7049, PACL) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4paccsa ,sc4paccs, sc4_4reel, sc4, sc4_state, sc4paccs, ROT0, "Mazooma","Pac Man Casino (PR7049, PACL) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4paccsb ,sc4paccs, sc4_4reel, sc4, sc4_state, sc4paccs, ROT0, "Mazooma","Pac Man Casino (PR7049, PACL) (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4paccsc ,sc4paccs, sc4_4reel, sc4, sc4_state, sc4paccs, ROT0, "Mazooma","Pac Man Casino (PR7049, PACL) (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4paccsd ,sc4paccs, sc4_4reel, sc4, sc4_state, sc4paccs, ROT0, "Mazooma","Pac Man Casino (PR7049, PACL) (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4paccse ,sc4paccs, sc4_4reel, sc4, sc4_state, sc4paccs, ROT0, "Mazooma","Pac Man Casino (PR7049, PACL) (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4paccsf ,sc4paccs, sc4_4reel, sc4, sc4_state, sc4paccs, ROT0, "Mazooma","Pac Man Casino (PR7049, PACL) (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4paccsg ,sc4paccs, sc4_4reel, sc4, sc4_state, sc4paccs, ROT0, "Mazooma","Pac Man Casino (PR7049, PACL) (Mazooma) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4paccsj ,sc4paccs, sc4_4reel, sc4, sc4_state, sc4paccs, ROT0, "Mazooma","Pac Man Casino (PR7049, PACL) (Mazooma) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4paccsk ,sc4paccs, sc4_4reel, sc4, sc4_state, sc4paccs, ROT0, "Mazooma","Pac Man Casino (PR7049, PACL) (Mazooma) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4paccsl ,sc4paccs, sc4_4reel, sc4, sc4_state, sc4paccs, ROT0, "Mazooma","Pac Man Casino (PR7049, PACL) (Mazooma) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4paccsh ,sc4paccs, sc4_4reel, sc4, sc4_state, sc4paccs_mbus, ROT0, "Mazooma","Pac Man Casino (PR7049, PACL) (Mazooma) (Scorpion 4) (set 12)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4paccsi ,sc4paccs, sc4_4reel, sc4, sc4_state, sc4paccs_mbus, ROT0, "Mazooma","Pac Man Casino (PR7049, PACL) (Mazooma) (Scorpion 4) (set 13)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -48740,15 +48740,15 @@ DRIVER_INIT_MEMBER(sc4_state,sc4pacpl)
}
// PR7058 PACMAN PACP SOUNDS PACMAN PLUS
-GAMEL( 200?, sc4pacpl ,0, sc4_5reel, sc4, sc4_state, sc4pacpl, ROT0, "Mazooma","Pac Man Plus (PR7058, PACP) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pacpla ,sc4pacpl, sc4_5reel, sc4, sc4_state, sc4pacpl, ROT0, "Mazooma","Pac Man Plus (PR7058, PACP) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pacplb ,sc4pacpl, sc4_5reel, sc4, sc4_state, sc4pacpl, ROT0, "Mazooma","Pac Man Plus (PR7058, PACP) (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pacplc ,sc4pacpl, sc4_5reel, sc4, sc4_state, sc4pacpl, ROT0, "Mazooma","Pac Man Plus (PR7058, PACP) (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pacpld ,sc4pacpl, sc4_5reel, sc4, sc4_state, sc4pacpl, ROT0, "Mazooma","Pac Man Plus (PR7058, PACP) (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pacple ,sc4pacpl, sc4_5reel, sc4, sc4_state, sc4pacpl, ROT0, "Mazooma","Pac Man Plus (PR7058, PACP) (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pacplf ,sc4pacpl, sc4_5reel, sc4, sc4_state, sc4pacpl, ROT0, "Mazooma","Pac Man Plus (PR7058, PACP) (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pacplg ,sc4pacpl, sc4_5reel, sc4, sc4_state, sc4pacpl, ROT0, "Mazooma","Pac Man Plus (PR7058, PACP) (Mazooma) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pacplh ,sc4pacpl, sc4_5reel, sc4, sc4_state, sc4pacpl, ROT0, "Mazooma","Pac Man Plus (PR7058, PACP) (Mazooma) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pacpl ,0, sc4_5reel, sc4, sc4_state, sc4pacpl, ROT0, "Mazooma","Pac Man Plus (PR7058, PACP) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pacpla ,sc4pacpl, sc4_5reel, sc4, sc4_state, sc4pacpl, ROT0, "Mazooma","Pac Man Plus (PR7058, PACP) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pacplb ,sc4pacpl, sc4_5reel, sc4, sc4_state, sc4pacpl, ROT0, "Mazooma","Pac Man Plus (PR7058, PACP) (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pacplc ,sc4pacpl, sc4_5reel, sc4, sc4_state, sc4pacpl, ROT0, "Mazooma","Pac Man Plus (PR7058, PACP) (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pacpld ,sc4pacpl, sc4_5reel, sc4, sc4_state, sc4pacpl, ROT0, "Mazooma","Pac Man Plus (PR7058, PACP) (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pacple ,sc4pacpl, sc4_5reel, sc4, sc4_state, sc4pacpl, ROT0, "Mazooma","Pac Man Plus (PR7058, PACP) (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pacplf ,sc4pacpl, sc4_5reel, sc4, sc4_state, sc4pacpl, ROT0, "Mazooma","Pac Man Plus (PR7058, PACP) (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pacplg ,sc4pacpl, sc4_5reel, sc4, sc4_state, sc4pacpl, ROT0, "Mazooma","Pac Man Plus (PR7058, PACP) (Mazooma) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pacplh ,sc4pacpl, sc4_5reel, sc4, sc4_state, sc4pacpl, ROT0, "Mazooma","Pac Man Plus (PR7058, PACP) (Mazooma) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -48759,7 +48759,7 @@ DRIVER_INIT_MEMBER(sc4_state,sc4party)
}
// PR7151 PARTY TIME 1.02 95008113 G PARTYTIME SOUNDS11
-GAMEL( 200?, sc4party ,0, sc4_4reel, sc4, sc4_state, sc4party, ROT0, "Nova","Party Time (German) (PR7151, GPTM) (Nova) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4party ,0, sc4_4reel, sc4, sc4_state, sc4party, ROT0, "Nova","Party Time (German) (PR7151, GPTM) (Nova) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -48772,11 +48772,11 @@ DRIVER_INIT_MEMBER(sc4_state,sc4polem)
// these are sensitive to the inputs, eg for sc4polemd 3:2 and 3:3 MUST be on or the CPU will crash again even if you reset after the initial MEMORY RESET
// I don't know how to boot the other sets, they also show different codes for each set (buggy startup code?)
// PR7009 POLE POSITION POLE POSITION SOUNDS
-GAMEL( 200?, sc4polem ,0, sc4_4reel, sc4, sc4_state, sc4polem, ROT0, "Mazooma","Pole Position (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4polema ,sc4polem, sc4_4reel, sc4, sc4_state, sc4polem, ROT0, "Mazooma","Pole Position (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4polemb ,sc4polem, sc4_4reel, sc4, sc4_state, sc4polem, ROT0, "Mazooma","Pole Position (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4polemc ,sc4polem, sc4_4reel, sc4, sc4_state, sc4polem, ROT0, "Mazooma","Pole Position (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4polemd ,sc4polem, sc4_4reel, sc4, sc4_state, sc4polem, ROT0, "Mazooma","Pole Position (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4polem ,0, sc4_4reel, sc4, sc4_state, sc4polem, ROT0, "Mazooma","Pole Position (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4polema ,sc4polem, sc4_4reel, sc4, sc4_state, sc4polem, ROT0, "Mazooma","Pole Position (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4polemb ,sc4polem, sc4_4reel, sc4, sc4_state, sc4polem, ROT0, "Mazooma","Pole Position (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4polemc ,sc4polem, sc4_4reel, sc4, sc4_state, sc4polem, ROT0, "Mazooma","Pole Position (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4polemd ,sc4polem, sc4_4reel, sc4, sc4_state, sc4polem, ROT0, "Mazooma","Pole Position (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -48790,11 +48790,11 @@ DRIVER_INIT_MEMBER(sc4_state,sc4pen1)
// PR6914 PUBLIC ENEMY PR6914 PUBLIC ENEMY SOUNDS11 PUBLIC ENEMY
-GAMEL( 200?, sc4pen1 ,0, sc4_4reel, sc4, sc4_state, sc4pen1, ROT0, "BFM","Public Enemy No1 (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pen1a ,sc4pen1, sc4_4reel, sc4, sc4_state, sc4pen1, ROT0, "BFM","Public Enemy No1 (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pen1b ,sc4pen1, sc4_4reel, sc4, sc4_state, sc4pen1, ROT0, "BFM","Public Enemy No1 (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pen1c ,sc4pen1, sc4_4reel, sc4, sc4_state, sc4pen1, ROT0, "BFM","Public Enemy No1 (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pen1d ,sc4pen1, sc4_4reel, sc4, sc4_state, sc4pen1, ROT0, "BFM","Public Enemy No1 (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pen1 ,0, sc4_4reel, sc4, sc4_state, sc4pen1, ROT0, "BFM","Public Enemy No1 (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pen1a ,sc4pen1, sc4_4reel, sc4, sc4_state, sc4pen1, ROT0, "BFM","Public Enemy No1 (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pen1b ,sc4pen1, sc4_4reel, sc4, sc4_state, sc4pen1, ROT0, "BFM","Public Enemy No1 (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pen1c ,sc4pen1, sc4_4reel, sc4, sc4_state, sc4pen1, ROT0, "BFM","Public Enemy No1 (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pen1d ,sc4pen1, sc4_4reel, sc4, sc4_state, sc4pen1, ROT0, "BFM","Public Enemy No1 (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4rich)
@@ -48803,19 +48803,19 @@ DRIVER_INIT_MEMBER(sc4_state,sc4rich)
}
// PR7118 RICH GEEZER PR7118 RICH GEEZER SOUNDS11
-GAMEL( 200?, sc4rich ,0, sc4_200_5r, sc4, sc4_state, sc4rich, ROT0, "BFM","Rich Geezer (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4richa ,sc4rich, sc4_200_5r, sc4, sc4_state, sc4rich, ROT0, "BFM","Rich Geezer (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4richb ,sc4rich, sc4_200_5r, sc4, sc4_state, sc4rich, ROT0, "BFM","Rich Geezer (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4richc ,sc4rich, sc4_200_5r, sc4, sc4_state, sc4rich, ROT0, "BFM","Rich Geezer (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4richd ,sc4rich, sc4_200_5r, sc4, sc4_state, sc4rich, ROT0, "BFM","Rich Geezer (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4riche ,sc4rich, sc4_200_5r, sc4, sc4_state, sc4rich, ROT0, "BFM","Rich Geezer (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4richf ,sc4rich, sc4_200_5r, sc4, sc4_state, sc4rich, ROT0, "BFM","Rich Geezer (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4richg ,sc4rich, sc4_200_5r, sc4, sc4_state, sc4rich, ROT0, "BFM","Rich Geezer (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4richh ,sc4rich, sc4_200_5r, sc4, sc4_state, sc4rich, ROT0, "BFM","Rich Geezer (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4richi ,sc4rich, sc4_200_5r, sc4, sc4_state, sc4rich, ROT0, "BFM","Rich Geezer (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4richj ,sc4rich, sc4_200_5r, sc4, sc4_state, sc4rich, ROT0, "BFM","Rich Geezer (Bellfruit) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4richk ,sc4rich, sc4_200_5r, sc4, sc4_state, sc4rich, ROT0, "BFM","Rich Geezer (Bellfruit) (Scorpion 4) (set 12)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4richl ,sc4rich, sc4_200_5r, sc4, sc4_state, sc4rich, ROT0, "BFM","Rich Geezer (Bellfruit) (Scorpion 4) (set 13)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rich ,0, sc4_200_5r, sc4, sc4_state, sc4rich, ROT0, "BFM","Rich Geezer (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4richa ,sc4rich, sc4_200_5r, sc4, sc4_state, sc4rich, ROT0, "BFM","Rich Geezer (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4richb ,sc4rich, sc4_200_5r, sc4, sc4_state, sc4rich, ROT0, "BFM","Rich Geezer (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4richc ,sc4rich, sc4_200_5r, sc4, sc4_state, sc4rich, ROT0, "BFM","Rich Geezer (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4richd ,sc4rich, sc4_200_5r, sc4, sc4_state, sc4rich, ROT0, "BFM","Rich Geezer (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4riche ,sc4rich, sc4_200_5r, sc4, sc4_state, sc4rich, ROT0, "BFM","Rich Geezer (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4richf ,sc4rich, sc4_200_5r, sc4, sc4_state, sc4rich, ROT0, "BFM","Rich Geezer (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4richg ,sc4rich, sc4_200_5r, sc4, sc4_state, sc4rich, ROT0, "BFM","Rich Geezer (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4richh ,sc4rich, sc4_200_5r, sc4, sc4_state, sc4rich, ROT0, "BFM","Rich Geezer (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4richi ,sc4rich, sc4_200_5r, sc4, sc4_state, sc4rich, ROT0, "BFM","Rich Geezer (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4richj ,sc4rich, sc4_200_5r, sc4, sc4_state, sc4rich, ROT0, "BFM","Rich Geezer (Bellfruit) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4richk ,sc4rich, sc4_200_5r, sc4, sc4_state, sc4rich, ROT0, "BFM","Rich Geezer (Bellfruit) (Scorpion 4) (set 12)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4richl ,sc4rich, sc4_200_5r, sc4, sc4_state, sc4rich, ROT0, "BFM","Rich Geezer (Bellfruit) (Scorpion 4) (set 13)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -48830,29 +48830,29 @@ DRIVER_INIT_MEMBER(sc4_state,sc4srrmz_mbus)
}
// PR7141 SHAKE RATTLE ROLL LINE SOUNDS * SHAKE RATT ROLL
-GAMEL( 200?, sc4srrmz ,0, sc4_3reel, sc4, sc4_state, sc4srrmz, ROT0, "Mazooma","Shake Rattle Roll (Mazooma) (Scorpion 4) (Top Box)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4srrmz ,0, sc4_3reel, sc4, sc4_state, sc4srrmz, ROT0, "Mazooma","Shake Rattle Roll (Mazooma) (Scorpion 4) (Top Box)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR7079CASINO SHAKE RATTLE AND ROL PR7079,Casino SHAKE RATTLE AND ROLL, LINE SOUNDS ROCK AND ROLL
-GAMEL( 200?, sc4srrmza ,sc4srrmz, sc4_3reel, sc4, sc4_state, sc4srrmz, ROT0, "Mazooma","Shake Rattle Roll Casino (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4srrmzb ,sc4srrmz, sc4_3reel, sc4, sc4_state, sc4srrmz, ROT0, "Mazooma","Shake Rattle Roll Casino (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4srrmzc ,sc4srrmz, sc4_3reel, sc4, sc4_state, sc4srrmz, ROT0, "Mazooma","Shake Rattle Roll Casino (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4srrmze ,sc4srrmz, sc4_3reel, sc4, sc4_state, sc4srrmz, ROT0, "Mazooma","Shake Rattle Roll Casino (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4srrmza ,sc4srrmz, sc4_3reel, sc4, sc4_state, sc4srrmz, ROT0, "Mazooma","Shake Rattle Roll Casino (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4srrmzb ,sc4srrmz, sc4_3reel, sc4, sc4_state, sc4srrmz, ROT0, "Mazooma","Shake Rattle Roll Casino (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4srrmzc ,sc4srrmz, sc4_3reel, sc4, sc4_state, sc4srrmz, ROT0, "Mazooma","Shake Rattle Roll Casino (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4srrmze ,sc4srrmz, sc4_3reel, sc4, sc4_state, sc4srrmz, ROT0, "Mazooma","Shake Rattle Roll Casino (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR7079CASINO SHAKE RATTLE AND ROL PR7079,Casino SHAKE RATTLE AND ROLL, LINE SOUNDS ROCK AND ROLL (the same as some of the above.. )
-GAMEL( 200?, sc4srrca ,sc4srrmz, sc4_3reel, sc4, sc4_state, sc4srrmz, ROT0, "Mazooma","Shake Rattle Roll Casino (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4srrcaa ,sc4srrmz, sc4_3reel, sc4, sc4_state, sc4srrmz, ROT0, "Mazooma","Shake Rattle Roll Casino (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4srrcab ,sc4srrmz, sc4_3reel, sc4, sc4_state, sc4srrmz, ROT0, "Mazooma","Shake Rattle Roll Casino (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4srrcac ,sc4srrmz, sc4_3reel, sc4, sc4_state, sc4srrmz, ROT0, "Mazooma","Shake Rattle Roll Casino (Mazooma) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4srrcad ,sc4srrmz, sc4_3reel, sc4, sc4_state, sc4srrmz, ROT0, "Mazooma","Shake Rattle Roll Casino (Mazooma) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4srrcae ,sc4srrmz, sc4_3reel, sc4, sc4_state, sc4srrmz, ROT0, "Mazooma","Shake Rattle Roll Casino (Mazooma) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4srrca ,sc4srrmz, sc4_3reel, sc4, sc4_state, sc4srrmz, ROT0, "Mazooma","Shake Rattle Roll Casino (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4srrcaa ,sc4srrmz, sc4_3reel, sc4, sc4_state, sc4srrmz, ROT0, "Mazooma","Shake Rattle Roll Casino (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4srrcab ,sc4srrmz, sc4_3reel, sc4, sc4_state, sc4srrmz, ROT0, "Mazooma","Shake Rattle Roll Casino (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4srrcac ,sc4srrmz, sc4_3reel, sc4, sc4_state, sc4srrmz, ROT0, "Mazooma","Shake Rattle Roll Casino (Mazooma) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4srrcad ,sc4srrmz, sc4_3reel, sc4, sc4_state, sc4srrmz, ROT0, "Mazooma","Shake Rattle Roll Casino (Mazooma) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4srrcae ,sc4srrmz, sc4_3reel, sc4, sc4_state, sc4srrmz, ROT0, "Mazooma","Shake Rattle Roll Casino (Mazooma) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR7079CASINO SHAKE RATTLE AND ROL SHAK RATTLE ROLL ARCADE PR7079,Casino SHAKE RATTLE AND ROLL, LINE SOUNDS
-GAMEL( 200?, sc4srrmzd ,sc4srrmz, sc4_3reel, sc4, sc4_state, sc4srrmz_mbus, ROT0, "Mazooma","Shake Rattle Roll Arcade (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4srrmzf ,sc4srrmz, sc4_3reel, sc4, sc4_state, sc4srrmz_mbus, ROT0, "Mazooma","Shake Rattle Roll Arcade (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4srrmzg ,sc4srrmz, sc4_3reel, sc4, sc4_state, sc4srrmz_mbus, ROT0, "Mazooma","Shake Rattle Roll Arcade (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4srrmzh ,sc4srrmz, sc4_3reel, sc4, sc4_state, sc4srrmz_mbus, ROT0, "Mazooma","Shake Rattle Roll Arcade (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4srrmzi ,sc4srrmz, sc4_3reel, sc4, sc4_state, sc4srrmz_mbus, ROT0, "Mazooma","Shake Rattle Roll Arcade (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4srrmzj ,sc4srrmz, sc4_3reel, sc4, sc4_state, sc4srrmz_mbus, ROT0, "Mazooma","Shake Rattle Roll Arcade (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4srrmzk ,sc4srrmz, sc4_3reel, sc4, sc4_state, sc4srrmz_mbus, ROT0, "Mazooma","Shake Rattle Roll Arcade (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4srrmzl ,sc4srrmz, sc4_3reel, sc4, sc4_state, sc4srrmz_mbus, ROT0, "Mazooma","Shake Rattle Roll Arcade (Mazooma) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4srrmzm ,sc4srrmz, sc4_3reel, sc4, sc4_state, sc4srrmz_mbus, ROT0, "Mazooma","Shake Rattle Roll Arcade (Mazooma) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4srrmzd ,sc4srrmz, sc4_3reel, sc4, sc4_state, sc4srrmz_mbus, ROT0, "Mazooma","Shake Rattle Roll Arcade (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4srrmzf ,sc4srrmz, sc4_3reel, sc4, sc4_state, sc4srrmz_mbus, ROT0, "Mazooma","Shake Rattle Roll Arcade (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4srrmzg ,sc4srrmz, sc4_3reel, sc4, sc4_state, sc4srrmz_mbus, ROT0, "Mazooma","Shake Rattle Roll Arcade (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4srrmzh ,sc4srrmz, sc4_3reel, sc4, sc4_state, sc4srrmz_mbus, ROT0, "Mazooma","Shake Rattle Roll Arcade (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4srrmzi ,sc4srrmz, sc4_3reel, sc4, sc4_state, sc4srrmz_mbus, ROT0, "Mazooma","Shake Rattle Roll Arcade (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4srrmzj ,sc4srrmz, sc4_3reel, sc4, sc4_state, sc4srrmz_mbus, ROT0, "Mazooma","Shake Rattle Roll Arcade (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4srrmzk ,sc4srrmz, sc4_3reel, sc4, sc4_state, sc4srrmz_mbus, ROT0, "Mazooma","Shake Rattle Roll Arcade (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4srrmzl ,sc4srrmz, sc4_3reel, sc4, sc4_state, sc4srrmz_mbus, ROT0, "Mazooma","Shake Rattle Roll Arcade (Mazooma) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4srrmzm ,sc4srrmz, sc4_3reel, sc4, sc4_state, sc4srrmz_mbus, ROT0, "Mazooma","Shake Rattle Roll Arcade (Mazooma) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4sirpz)
@@ -48862,10 +48862,10 @@ DRIVER_INIT_MEMBER(sc4_state,sc4sirpz)
// PR2004CASINO SIR PRIZE LINE SOUNDS SIR PRIZE 8 +
-GAMEL( 200?, sc4sirpz ,0, sc4_3reel, sc4, sc4_state, sc4sirpz, ROT0, "Mazooma","Sir Prize (PR2004, SIRV) (Mazooma) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // 7:0 and 7:1 must be turned ON to boot this
+GAMEL( 200?, sc4sirpz ,0, sc4_3reel, sc4, sc4_state, sc4sirpz, ROT0, "Mazooma","Sir Prize (PR2004, SIRV) (Mazooma) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // 7:0 and 7:1 must be turned ON to boot this
// PR7079CASINO SIR PRIZE PR7079,Casino SIR PRIZE, LINE SOUNDS SIR PRIZE
-GAMEL( 200?, sc4sirpza ,sc4sirpz, sc4_3reel, sc4, sc4_state, sc4sirpz, ROT0, "Mazooma","Sir Prize (PR7079, SIRP) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4sirpzb ,sc4sirpz, sc4_3reel, sc4, sc4_state, sc4sirpz, ROT0, "Mazooma","Sir Prize (PR7079, SIRP) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sirpza ,sc4sirpz, sc4_3reel, sc4, sc4_state, sc4sirpz, ROT0, "Mazooma","Sir Prize (PR7079, SIRP) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sirpzb ,sc4sirpz, sc4_3reel, sc4, sc4_state, sc4sirpz, ROT0, "Mazooma","Sir Prize (PR7079, SIRP) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -48876,7 +48876,7 @@ DRIVER_INIT_MEMBER(sc4_state,sc4smk7)
// PR6924 SMOKIN SEVENS PR6924 SMOKIN SEVENS SOUNDS11
-GAMEL( 200?, sc4smk7 ,0, sc4_3reel, sc4, sc4_state, sc4smk7, ROT0, "BFM","Smoking 7's (Bellfruit) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4smk7 ,0, sc4_3reel, sc4, sc4_state, sc4smk7, ROT0, "BFM","Smoking 7's (Bellfruit) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -48888,18 +48888,18 @@ DRIVER_INIT_MEMBER(sc4_state,sc4starp)
// PR6805 STARPRIZE PR6805 STARPRIZE SOUNDS
-GAMEL( 200?, sc4starp ,0, sc4_4reel, sc4, sc4_state, sc4starp, ROT0, "BFM","Starprize (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4starpa ,sc4starp, sc4_4reel, sc4, sc4_state, sc4starp, ROT0, "BFM","Starprize (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4starpb ,sc4starp, sc4_4reel, sc4, sc4_state, sc4starp, ROT0, "BFM","Starprize (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4starpc ,sc4starp, sc4_4reel, sc4, sc4_state, sc4starp, ROT0, "BFM","Starprize (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4starpd ,sc4starp, sc4_4reel, sc4, sc4_state, sc4starp, ROT0, "BFM","Starprize (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4starpe ,sc4starp, sc4_4reel, sc4, sc4_state, sc4starp, ROT0, "BFM","Starprize (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4starpf ,sc4starp, sc4_4reel, sc4, sc4_state, sc4starp, ROT0, "BFM","Starprize (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4starpg ,sc4starp, sc4_4reel, sc4, sc4_state, sc4starp, ROT0, "BFM","Starprize (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4starph ,sc4starp, sc4_4reel, sc4, sc4_state, sc4starp, ROT0, "BFM","Starprize (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4starpi ,sc4starp, sc4_4reel, sc4, sc4_state, sc4starp, ROT0, "BFM","Starprize (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4starpj ,sc4starp, sc4_4reel, sc4, sc4_state, sc4starp, ROT0, "BFM","Starprize (Bellfruit) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4starpk ,sc4starp, sc4_4reel, sc4, sc4_state, sc4starp, ROT0, "BFM","Starprize (Bellfruit) (Scorpion 4) (set 12)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4starp ,0, sc4_4reel, sc4, sc4_state, sc4starp, ROT0, "BFM","Starprize (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4starpa ,sc4starp, sc4_4reel, sc4, sc4_state, sc4starp, ROT0, "BFM","Starprize (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4starpb ,sc4starp, sc4_4reel, sc4, sc4_state, sc4starp, ROT0, "BFM","Starprize (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4starpc ,sc4starp, sc4_4reel, sc4, sc4_state, sc4starp, ROT0, "BFM","Starprize (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4starpd ,sc4starp, sc4_4reel, sc4, sc4_state, sc4starp, ROT0, "BFM","Starprize (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4starpe ,sc4starp, sc4_4reel, sc4, sc4_state, sc4starp, ROT0, "BFM","Starprize (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4starpf ,sc4starp, sc4_4reel, sc4, sc4_state, sc4starp, ROT0, "BFM","Starprize (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4starpg ,sc4starp, sc4_4reel, sc4, sc4_state, sc4starp, ROT0, "BFM","Starprize (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4starph ,sc4starp, sc4_4reel, sc4, sc4_state, sc4starp, ROT0, "BFM","Starprize (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4starpi ,sc4starp, sc4_4reel, sc4, sc4_state, sc4starp, ROT0, "BFM","Starprize (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4starpj ,sc4starp, sc4_4reel, sc4, sc4_state, sc4starp, ROT0, "BFM","Starprize (Bellfruit) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4starpk ,sc4starp, sc4_4reel, sc4, sc4_state, sc4starp, ROT0, "BFM","Starprize (Bellfruit) (Scorpion 4) (set 12)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -48910,18 +48910,18 @@ DRIVER_INIT_MEMBER(sc4_state,sc4strk)
}
// PR2167CASINO THE STREAK PR7017,CASINO STREAK, STRK SOUNDS THE STREAK
-GAMEL( 200?, sc4strk ,0, sc4_3reel, sc4, sc4_state, sc4strk, ROT0, "Mazooma","The Streak (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4strka ,sc4strk, sc4_3reel, sc4, sc4_state, sc4strk, ROT0, "Mazooma","The Streak (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4strkb ,sc4strk, sc4_3reel, sc4, sc4_state, sc4strk, ROT0, "Mazooma","The Streak (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4strkc ,sc4strk, sc4_3reel, sc4, sc4_state, sc4strk, ROT0, "Mazooma","The Streak (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4strkd ,sc4strk, sc4_3reel, sc4, sc4_state, sc4strk, ROT0, "Mazooma","The Streak (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4strke ,sc4strk, sc4_3reel, sc4, sc4_state, sc4strk, ROT0, "Mazooma","The Streak (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4strkf ,sc4strk, sc4_3reel, sc4, sc4_state, sc4strk, ROT0, "Mazooma","The Streak (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4strkg ,sc4strk, sc4_3reel, sc4, sc4_state, sc4strk, ROT0, "Mazooma","The Streak (Mazooma) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4strkh ,sc4strk, sc4_3reel, sc4, sc4_state, sc4strk, ROT0, "Mazooma","The Streak (Mazooma) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4strki ,sc4strk, sc4_3reel, sc4, sc4_state, sc4strk, ROT0, "Mazooma","The Streak (Mazooma) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4strkj ,sc4strk, sc4_3reel, sc4, sc4_state, sc4strk, ROT0, "Mazooma","The Streak (Mazooma) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4strkk ,sc4strk, sc4_3reel, sc4, sc4_state, sc4strk, ROT0, "Mazooma","The Streak (Mazooma) (Scorpion 4) (set 12)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4strk ,0, sc4_3reel, sc4, sc4_state, sc4strk, ROT0, "Mazooma","The Streak (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4strka ,sc4strk, sc4_3reel, sc4, sc4_state, sc4strk, ROT0, "Mazooma","The Streak (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4strkb ,sc4strk, sc4_3reel, sc4, sc4_state, sc4strk, ROT0, "Mazooma","The Streak (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4strkc ,sc4strk, sc4_3reel, sc4, sc4_state, sc4strk, ROT0, "Mazooma","The Streak (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4strkd ,sc4strk, sc4_3reel, sc4, sc4_state, sc4strk, ROT0, "Mazooma","The Streak (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4strke ,sc4strk, sc4_3reel, sc4, sc4_state, sc4strk, ROT0, "Mazooma","The Streak (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4strkf ,sc4strk, sc4_3reel, sc4, sc4_state, sc4strk, ROT0, "Mazooma","The Streak (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4strkg ,sc4strk, sc4_3reel, sc4, sc4_state, sc4strk, ROT0, "Mazooma","The Streak (Mazooma) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4strkh ,sc4strk, sc4_3reel, sc4, sc4_state, sc4strk, ROT0, "Mazooma","The Streak (Mazooma) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4strki ,sc4strk, sc4_3reel, sc4, sc4_state, sc4strk, ROT0, "Mazooma","The Streak (Mazooma) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4strkj ,sc4strk, sc4_3reel, sc4, sc4_state, sc4strk, ROT0, "Mazooma","The Streak (Mazooma) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4strkk ,sc4strk, sc4_3reel, sc4, sc4_state, sc4strk, ROT0, "Mazooma","The Streak (Mazooma) (Scorpion 4) (set 12)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -48936,33 +48936,33 @@ DRIVER_INIT_MEMBER(sc4_state,sc4trist)
}
// PR2188 TRIPLE STREAK STR3 SOUNDS " THE STREAK
-GAMEL( 200?, sc4trist ,0, sc4_3reel, sc4, sc4_state, sc4tristtb, ROT0, "Mazooma","Triple Streak (PR2188) (Mazooma) (Scorpion 4) (Top Box, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4trista ,sc4trist, sc4_3reel, sc4, sc4_state, sc4tristtb, ROT0, "Mazooma","Triple Streak (PR2188) (Mazooma) (Scorpion 4) (Top Box, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4trist ,0, sc4_3reel, sc4, sc4_state, sc4tristtb, ROT0, "Mazooma","Triple Streak (PR2188) (Mazooma) (Scorpion 4) (Top Box, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4trista ,sc4trist, sc4_3reel, sc4, sc4_state, sc4tristtb, ROT0, "Mazooma","Triple Streak (PR2188) (Mazooma) (Scorpion 4) (Top Box, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2167CASINO THE STREAK PR7017,CASINO STREAK, STR3 SOUNDS THE STREAK
-GAMEL( 200?, sc4tristb ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tristc ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tristd ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4triste ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tristf ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tristg ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tristh ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tristi ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tristj ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tristk ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tristl ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tristm ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 12)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tristn ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 13)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tristo ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 14)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tristp ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 15)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tristq ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 16)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tristr ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 17)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4trists ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 18)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tristt ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 19)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tristu ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 20)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tristv ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 21)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tristw ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 22)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tristx ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 23)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tristy ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 24)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tristb ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tristc ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tristd ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4triste ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tristf ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tristg ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tristh ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tristi ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tristj ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tristk ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tristl ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tristm ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 12)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tristn ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 13)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tristo ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 14)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tristp ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 15)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tristq ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 16)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tristr ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 17)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4trists ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 18)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tristt ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 19)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tristu ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 20)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tristv ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 21)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tristw ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 22)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tristx ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 23)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tristy ,sc4trist, sc4_3reel, sc4, sc4_state, sc4trist, ROT0, "Mazooma","Triple Streak (PR2167) (Mazooma) (Scorpion 4) (set 24)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4s6c)
@@ -48971,15 +48971,15 @@ DRIVER_INIT_MEMBER(sc4_state,sc4s6c)
}
// PR6834 SUPER 6 FIXED 65% PR6834 SSIX SOUNDS11
-GAMEL( 200?, sc4s6c ,0, sc4, sc4, sc4_state, sc4s6c, ROT0, "BFM","Super 6 Club (65% Fixed) (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4s6cb ,sc4s6c, sc4, sc4, sc4_state, sc4s6c, ROT0, "BFM","Super 6 Club (65% Fixed) (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4s6c ,0, sc4, sc4, sc4_state, sc4s6c, ROT0, "BFM","Super 6 Club (65% Fixed) (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4s6cb ,sc4s6c, sc4, sc4, sc4_state, sc4s6c, ROT0, "BFM","Super 6 Club (65% Fixed) (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR6834 SUPER 6 PR6834 SSIX SOUNDS11
-GAMEL( 200?, sc4s6ca ,sc4s6c, sc4, sc4, sc4_state, sc4s6c, ROT0, "BFM","Super 6 Club (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4s6cc ,sc4s6c, sc4, sc4, sc4_state, sc4s6c, ROT0, "BFM","Super 6 Club (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4s6cd ,sc4s6c, sc4, sc4, sc4_state, sc4s6c, ROT0, "BFM","Super 6 Club (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4s6ce ,sc4s6c, sc4, sc4, sc4_state, sc4s6c, ROT0, "BFM","Super 6 Club (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4s6ca ,sc4s6c, sc4, sc4, sc4_state, sc4s6c, ROT0, "BFM","Super 6 Club (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4s6cc ,sc4s6c, sc4, sc4, sc4_state, sc4s6c, ROT0, "BFM","Super 6 Club (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4s6cd ,sc4s6c, sc4, sc4, sc4_state, sc4s6c, ROT0, "BFM","Super 6 Club (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4s6ce ,sc4s6c, sc4, sc4, sc4_state, sc4s6c, ROT0, "BFM","Super 6 Club (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4s6cf ,sc4s6c, sc4, sc4, sc4_state, sc4s6c, ROT0, "BFM","Super 6 Club (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4s6cf ,sc4s6c, sc4, sc4, sc4_state, sc4s6c, ROT0, "BFM","Super 6 Club (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -48996,23 +48996,23 @@ DRIVER_INIT_MEMBER(sc4_state,sc4tic2_mbus)
// PR7060CASINO TICTACTWO TTTWO SOUNDS TIC TAC TWO
-GAMEL( 200?, sc4tic2 ,0, sc4_3reel, sc4, sc4_state, sc4tic2, ROT0, "Mazooma","Tic Tac Two Casino (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tic2a ,sc4tic2, sc4_3reel, sc4, sc4_state, sc4tic2, ROT0, "Mazooma","Tic Tac Two Casino (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tic2b ,sc4tic2, sc4_3reel, sc4, sc4_state, sc4tic2, ROT0, "Mazooma","Tic Tac Two Casino (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tic2c ,sc4tic2, sc4_3reel, sc4, sc4_state, sc4tic2, ROT0, "Mazooma","Tic Tac Two Casino (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tic2d ,sc4tic2, sc4_3reel, sc4, sc4_state, sc4tic2, ROT0, "Mazooma","Tic Tac Two Casino (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tic2e ,sc4tic2, sc4_3reel, sc4, sc4_state, sc4tic2, ROT0, "Mazooma","Tic Tac Two Casino (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tic2f ,sc4tic2, sc4_3reel, sc4, sc4_state, sc4tic2, ROT0, "Mazooma","Tic Tac Two Casino (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tic2g ,sc4tic2, sc4_3reel, sc4, sc4_state, sc4tic2, ROT0, "Mazooma","Tic Tac Two Casino (Mazooma) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tic2n ,sc4tic2, sc4_3reel, sc4, sc4_state, sc4tic2, ROT0, "Mazooma","Tic Tac Two Casino (Mazooma) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tic2o ,sc4tic2, sc4_3reel, sc4, sc4_state, sc4tic2, ROT0, "Mazooma","Tic Tac Two Casino (Mazooma) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tic2 ,0, sc4_3reel, sc4, sc4_state, sc4tic2, ROT0, "Mazooma","Tic Tac Two Casino (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tic2a ,sc4tic2, sc4_3reel, sc4, sc4_state, sc4tic2, ROT0, "Mazooma","Tic Tac Two Casino (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tic2b ,sc4tic2, sc4_3reel, sc4, sc4_state, sc4tic2, ROT0, "Mazooma","Tic Tac Two Casino (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tic2c ,sc4tic2, sc4_3reel, sc4, sc4_state, sc4tic2, ROT0, "Mazooma","Tic Tac Two Casino (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tic2d ,sc4tic2, sc4_3reel, sc4, sc4_state, sc4tic2, ROT0, "Mazooma","Tic Tac Two Casino (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tic2e ,sc4tic2, sc4_3reel, sc4, sc4_state, sc4tic2, ROT0, "Mazooma","Tic Tac Two Casino (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tic2f ,sc4tic2, sc4_3reel, sc4, sc4_state, sc4tic2, ROT0, "Mazooma","Tic Tac Two Casino (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tic2g ,sc4tic2, sc4_3reel, sc4, sc4_state, sc4tic2, ROT0, "Mazooma","Tic Tac Two Casino (Mazooma) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tic2n ,sc4tic2, sc4_3reel, sc4, sc4_state, sc4tic2, ROT0, "Mazooma","Tic Tac Two Casino (Mazooma) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tic2o ,sc4tic2, sc4_3reel, sc4, sc4_state, sc4tic2, ROT0, "Mazooma","Tic Tac Two Casino (Mazooma) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR7060CASINO TICTACTWO TIC TAC TWO ARCADE TTTWO SOUNDS TIC TAC TWO
-GAMEL( 200?, sc4tic2i ,sc4tic2, sc4_3reel, sc4, sc4_state, sc4tic2_mbus, ROT0, "Mazooma","Tic Tac Two Casino Arcade (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tic2j ,sc4tic2, sc4_3reel, sc4, sc4_state, sc4tic2_mbus, ROT0, "Mazooma","Tic Tac Two Casino Arcade (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tic2k ,sc4tic2, sc4_3reel, sc4, sc4_state, sc4tic2_mbus, ROT0, "Mazooma","Tic Tac Two Casino Arcade (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tic2h ,sc4tic2, sc4_3reel, sc4, sc4_state, sc4tic2, ROT0, "Mazooma","Tic Tac Two Casino Arcade (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tic2l ,sc4tic2, sc4_3reel, sc4, sc4_state, sc4tic2, ROT0, "Mazooma","Tic Tac Two Casino Arcade (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tic2m ,sc4tic2, sc4_3reel, sc4, sc4_state, sc4tic2, ROT0, "Mazooma","Tic Tac Two Casino Arcade (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tic2i ,sc4tic2, sc4_3reel, sc4, sc4_state, sc4tic2_mbus, ROT0, "Mazooma","Tic Tac Two Casino Arcade (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tic2j ,sc4tic2, sc4_3reel, sc4, sc4_state, sc4tic2_mbus, ROT0, "Mazooma","Tic Tac Two Casino Arcade (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tic2k ,sc4tic2, sc4_3reel, sc4, sc4_state, sc4tic2_mbus, ROT0, "Mazooma","Tic Tac Two Casino Arcade (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tic2h ,sc4tic2, sc4_3reel, sc4, sc4_state, sc4tic2, ROT0, "Mazooma","Tic Tac Two Casino Arcade (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tic2l ,sc4tic2, sc4_3reel, sc4, sc4_state, sc4tic2, ROT0, "Mazooma","Tic Tac Two Casino Arcade (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tic2m ,sc4tic2, sc4_3reel, sc4, sc4_state, sc4tic2, ROT0, "Mazooma","Tic Tac Two Casino Arcade (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -49022,13 +49022,13 @@ DRIVER_INIT_MEMBER(sc4_state,sc4ticlb)
}
// PR6832 TREASURE ISLAND FIXED 65% PR6832 TRES SOUNDS11
-GAMEL( 200?, sc4ticlb ,0, sc4dmd, sc4, sc4_state, sc4ticlb, ROT0, "BFM","Treasure Island Club (Fixed 65%) (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4_dmd )
-GAMEL( 200?, sc4ticlbb ,sc4ticlb, sc4dmd, sc4, sc4_state, sc4ticlb, ROT0, "BFM","Treasure Island Club (Fixed 65%) (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4_dmd )
+GAMEL( 200?, sc4ticlb ,0, sc4dmd, sc4, sc4_state, sc4ticlb, ROT0, "BFM","Treasure Island Club (Fixed 65%) (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4_dmd )
+GAMEL( 200?, sc4ticlbb ,sc4ticlb, sc4dmd, sc4, sc4_state, sc4ticlb, ROT0, "BFM","Treasure Island Club (Fixed 65%) (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4_dmd )
// PR6832 TREASURE ISLAND PR6832 TRES SOUNDS11
-GAMEL( 200?, sc4ticlba ,sc4ticlb, sc4dmd, sc4, sc4_state, sc4ticlb, ROT0, "BFM","Treasure Island Club (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4_dmd )
-GAMEL( 200?, sc4ticlbc ,sc4ticlb, sc4dmd, sc4, sc4_state, sc4ticlb, ROT0, "BFM","Treasure Island Club (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4_dmd )
+GAMEL( 200?, sc4ticlba ,sc4ticlb, sc4dmd, sc4, sc4_state, sc4ticlb, ROT0, "BFM","Treasure Island Club (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4_dmd )
+GAMEL( 200?, sc4ticlbc ,sc4ticlb, sc4dmd, sc4, sc4_state, sc4ticlb, ROT0, "BFM","Treasure Island Club (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4_dmd )
-GAMEL( 200?, sc4ticlbd ,sc4ticlb, sc4dmd, sc4, sc4_state, sc4ticlb, ROT0, "BFM","Treasure Island Club (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4_dmd )
+GAMEL( 200?, sc4ticlbd ,sc4ticlb, sc4dmd, sc4, sc4_state, sc4ticlb, ROT0, "BFM","Treasure Island Club (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4_dmd )
@@ -49050,31 +49050,31 @@ DRIVER_INIT_MEMBER(sc4_state,sc4tri7_mbus)
// PR1328 TRIPLE 7'S PR1328 TRIPLE 7S SOUNDS11 TRIPLE 7'S ABOVE
-GAMEL( 200?, sc4tri7 ,0, sc4_3reel, sc4, sc4_state, sc4tri7tb, ROT0, "BFM","Triple 7's (Bellfruit) (Scorpion 4) (Top Box, set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ABUV
-GAMEL( 200?, sc4tri7a ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7tb, ROT0, "BFM","Triple 7's (Bellfruit) (Scorpion 4) (Top Box, set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tri7m ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7tb, ROT0, "BFM","Triple 7's (Bellfruit) (Scorpion 4) (Top Box, set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tri7n ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7tb, ROT0, "BFM","Triple 7's (Bellfruit) (Scorpion 4) (Top Box, set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tri7v ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7tb, ROT0, "BFM","Triple 7's (Bellfruit) (Scorpion 4) (Top Box, set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tri7w ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7tb, ROT0, "BFM","Triple 7's (Bellfruit) (Scorpion 4) (Top Box, set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tri7f ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7, ROT0, "BFM","Triple 7's (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // SEVN
-GAMEL( 200?, sc4tri7g ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7, ROT0, "BFM","Triple 7's (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tri7h ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7, ROT0, "BFM","Triple 7's (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tri7i ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7, ROT0, "BFM","Triple 7's (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tri7j ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7, ROT0, "BFM","Triple 7's (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tri7k ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7, ROT0, "BFM","Triple 7's (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tri7l ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7, ROT0, "BFM","Triple 7's (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tri7o ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7, ROT0, "BFM","Triple 7's (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tri7p ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7, ROT0, "BFM","Triple 7's (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tri7q ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7, ROT0, "BFM","Triple 7's (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tri7r ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7, ROT0, "BFM","Triple 7's (Bellfruit) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tri7s ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7, ROT0, "BFM","Triple 7's (Bellfruit) (Scorpion 4) (set 12)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tri7t ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7, ROT0, "BFM","Triple 7's (Bellfruit) (Scorpion 4) (set 13)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tri7u ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7, ROT0, "BFM","Triple 7's (Bellfruit) (Scorpion 4) (set 14)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tri7 ,0, sc4_3reel, sc4, sc4_state, sc4tri7tb, ROT0, "BFM","Triple 7's (Bellfruit) (Scorpion 4) (Top Box, set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ABUV
+GAMEL( 200?, sc4tri7a ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7tb, ROT0, "BFM","Triple 7's (Bellfruit) (Scorpion 4) (Top Box, set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tri7m ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7tb, ROT0, "BFM","Triple 7's (Bellfruit) (Scorpion 4) (Top Box, set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tri7n ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7tb, ROT0, "BFM","Triple 7's (Bellfruit) (Scorpion 4) (Top Box, set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tri7v ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7tb, ROT0, "BFM","Triple 7's (Bellfruit) (Scorpion 4) (Top Box, set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tri7w ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7tb, ROT0, "BFM","Triple 7's (Bellfruit) (Scorpion 4) (Top Box, set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tri7f ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7, ROT0, "BFM","Triple 7's (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // SEVN
+GAMEL( 200?, sc4tri7g ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7, ROT0, "BFM","Triple 7's (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tri7h ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7, ROT0, "BFM","Triple 7's (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tri7i ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7, ROT0, "BFM","Triple 7's (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tri7j ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7, ROT0, "BFM","Triple 7's (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tri7k ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7, ROT0, "BFM","Triple 7's (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tri7l ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7, ROT0, "BFM","Triple 7's (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tri7o ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7, ROT0, "BFM","Triple 7's (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tri7p ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7, ROT0, "BFM","Triple 7's (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tri7q ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7, ROT0, "BFM","Triple 7's (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tri7r ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7, ROT0, "BFM","Triple 7's (Bellfruit) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tri7s ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7, ROT0, "BFM","Triple 7's (Bellfruit) (Scorpion 4) (set 12)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tri7t ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7, ROT0, "BFM","Triple 7's (Bellfruit) (Scorpion 4) (set 13)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tri7u ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7, ROT0, "BFM","Triple 7's (Bellfruit) (Scorpion 4) (set 14)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR1328 TRIPLE 7'S PR1328 TRIPLE 7S SOUNDS11 SEVENS ABOVE ARCADE TRIPLE 7'S ABOVE
-GAMEL( 200?, sc4tri7b ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7_mbus, ROT0, "BFM","Triple 7's Arcade (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tri7c ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7_mbus, ROT0, "BFM","Triple 7's Arcade (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tri7d ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7_mbus, ROT0, "BFM","Triple 7's Arcade (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tri7e ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7_mbus, ROT0, "BFM","Triple 7's Arcade (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tri7b ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7_mbus, ROT0, "BFM","Triple 7's Arcade (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tri7c ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7_mbus, ROT0, "BFM","Triple 7's Arcade (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tri7d ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7_mbus, ROT0, "BFM","Triple 7's Arcade (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tri7e ,sc4tri7, sc4_3reel, sc4, sc4_state, sc4tri7_mbus, ROT0, "BFM","Triple 7's Arcade (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4tub)
@@ -49084,10 +49084,10 @@ DRIVER_INIT_MEMBER(sc4_state,sc4tub)
// PR1103 TUBULAR BELLS PR1103 TUBULAR BELLS SOUNDS11
-GAMEL( 200?, sc4tub ,0, sc4_200_4ra, sc4, sc4_state, sc4tub, ROT0, "BFM","Tubular Bells (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tuba ,sc4tub, sc4_200_4ra, sc4, sc4_state, sc4tub, ROT0, "BFM","Tubular Bells (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tubb ,sc4tub, sc4_200_4ra, sc4, sc4_state, sc4tub, ROT0, "BFM","Tubular Bells (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tubc ,sc4tub, sc4_200_4ra, sc4, sc4_state, sc4tub, ROT0, "BFM","Tubular Bells (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tub ,0, sc4_200_4ra, sc4, sc4_state, sc4tub, ROT0, "BFM","Tubular Bells (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tuba ,sc4tub, sc4_200_4ra, sc4, sc4_state, sc4tub, ROT0, "BFM","Tubular Bells (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tubb ,sc4tub, sc4_200_4ra, sc4, sc4_state, sc4tub, ROT0, "BFM","Tubular Bells (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tubc ,sc4tub, sc4_200_4ra, sc4, sc4_state, sc4tub, ROT0, "BFM","Tubular Bells (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -49098,9 +49098,9 @@ DRIVER_INIT_MEMBER(sc4_state,sc4vmclb)
// / PR7132 CLUB VIVA MEXICO PR7132 VIVA SOUNDS11 VIVA MEXICO
-GAMEL( 200?, sc4vmclb ,0, sc4_5reel, sc4, sc4_state, sc4vmclb, ROT0, "BFM","Viva Mexico Club (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4vmclba ,sc4vmclb, sc4_5reel, sc4, sc4_state, sc4vmclb, ROT0, "BFM","Viva Mexico Club (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4vmclbb ,sc4vmclb, sc4_5reel, sc4, sc4_state, sc4vmclb, ROT0, "BFM","Viva Mexico Club (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4vmclb ,0, sc4_5reel, sc4, sc4_state, sc4vmclb, ROT0, "BFM","Viva Mexico Club (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4vmclba ,sc4vmclb, sc4_5reel, sc4, sc4_state, sc4vmclb, ROT0, "BFM","Viva Mexico Club (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4vmclbb ,sc4vmclb, sc4_5reel, sc4, sc4_state, sc4vmclb, ROT0, "BFM","Viva Mexico Club (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -49111,13 +49111,13 @@ DRIVER_INIT_MEMBER(sc4_state,sc4waw)
// Reel 4 is strange ERR24
// PR7065 WET 'N' WILD WILD SOUNDS WET 'N' WILD
-GAMEL( 200?, sc4waw ,0, sc4_4reel, sc4, sc4_state, sc4waw, ROT0, "Mazooma","Wet & Wild (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wawa ,sc4waw, sc4_4reel, sc4, sc4_state, sc4waw, ROT0, "Mazooma","Wet & Wild (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wawb ,sc4waw, sc4_4reel, sc4, sc4_state, sc4waw, ROT0, "Mazooma","Wet & Wild (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wawc ,sc4waw, sc4_4reel, sc4, sc4_state, sc4waw, ROT0, "Mazooma","Wet & Wild (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wawd ,sc4waw, sc4_4reel, sc4, sc4_state, sc4waw, ROT0, "Mazooma","Wet & Wild (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wawe ,sc4waw, sc4_4reel, sc4, sc4_state, sc4waw, ROT0, "Mazooma","Wet & Wild (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wawf ,sc4waw, sc4_4reel, sc4, sc4_state, sc4waw, ROT0, "Mazooma","Wet & Wild (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4waw ,0, sc4_4reel, sc4, sc4_state, sc4waw, ROT0, "Mazooma","Wet & Wild (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wawa ,sc4waw, sc4_4reel, sc4, sc4_state, sc4waw, ROT0, "Mazooma","Wet & Wild (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wawb ,sc4waw, sc4_4reel, sc4, sc4_state, sc4waw, ROT0, "Mazooma","Wet & Wild (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wawc ,sc4waw, sc4_4reel, sc4, sc4_state, sc4waw, ROT0, "Mazooma","Wet & Wild (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wawd ,sc4waw, sc4_4reel, sc4, sc4_state, sc4waw, ROT0, "Mazooma","Wet & Wild (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wawe ,sc4waw, sc4_4reel, sc4, sc4_state, sc4waw, ROT0, "Mazooma","Wet & Wild (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wawf ,sc4waw, sc4_4reel, sc4, sc4_state, sc4waw, ROT0, "Mazooma","Wet & Wild (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4clbtm)
@@ -49127,12 +49127,12 @@ DRIVER_INIT_MEMBER(sc4_state,sc4clbtm)
// PR7131 CLUB TEMPTATION PR7131 TEMPTATION SOUNDS11
-GAMEL( 200?, sc4clbtm ,0, sc4dmd, sc4, sc4_state, sc4clbtm, ROT0, "BFM","Club Temptation (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4_dmd )
-GAMEL( 200?, sc4clbtma ,sc4clbtm, sc4dmd, sc4, sc4_state, sc4clbtm, ROT0, "BFM","Club Temptation (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4_dmd )
-GAMEL( 200?, sc4clbtmb ,sc4clbtm, sc4dmd, sc4, sc4_state, sc4clbtm, ROT0, "BFM","Club Temptation (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4_dmd )
-GAMEL( 200?, sc4clbtmc ,sc4clbtm, sc4dmd, sc4, sc4_state, sc4clbtm, ROT0, "BFM","Club Temptation (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4_dmd )
-GAMEL( 200?, sc4clbtmd ,sc4clbtm, sc4dmd, sc4, sc4_state, sc4clbtm, ROT0, "BFM","Club Temptation (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4_dmd )
-GAMEL( 200?, sc4clbtme ,sc4clbtm, sc4dmd, sc4, sc4_state, sc4clbtm, ROT0, "BFM","Club Temptation (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_sc4_dmd )
+GAMEL( 200?, sc4clbtm ,0, sc4dmd, sc4, sc4_state, sc4clbtm, ROT0, "BFM","Club Temptation (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4_dmd )
+GAMEL( 200?, sc4clbtma ,sc4clbtm, sc4dmd, sc4, sc4_state, sc4clbtm, ROT0, "BFM","Club Temptation (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4_dmd )
+GAMEL( 200?, sc4clbtmb ,sc4clbtm, sc4dmd, sc4, sc4_state, sc4clbtm, ROT0, "BFM","Club Temptation (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4_dmd )
+GAMEL( 200?, sc4clbtmc ,sc4clbtm, sc4dmd, sc4, sc4_state, sc4clbtm, ROT0, "BFM","Club Temptation (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4_dmd )
+GAMEL( 200?, sc4clbtmd ,sc4clbtm, sc4dmd, sc4, sc4_state, sc4clbtm, ROT0, "BFM","Club Temptation (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4_dmd )
+GAMEL( 200?, sc4clbtme ,sc4clbtm, sc4dmd, sc4, sc4_state, sc4clbtm, ROT0, "BFM","Club Temptation (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_sc4_dmd )
@@ -49145,10 +49145,10 @@ DRIVER_INIT_MEMBER(sc4_state,sc4gbcas)
// this one is a variation of lucky balls
// PR1034 CASINO GOLDEN BALLS PR1034 GOLDEN BALLS SOUNDS11
-GAMEL( 200?, sc4gbcas ,0, sc4_200_4r, sc4, sc4_state, sc4gbcas, ROT0, "BFM","Casino Golden Balls (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gbcasa ,sc4gbcas, sc4_200_4r, sc4, sc4_state, sc4gbcas, ROT0, "BFM","Casino Golden Balls (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gbcasb ,sc4gbcas, sc4_200_4r, sc4, sc4_state, sc4gbcas, ROT0, "BFM","Casino Golden Balls (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4gbcasc ,sc4gbcas, sc4_200_4r, sc4, sc4_state, sc4gbcas, ROT0, "BFM","Casino Golden Balls (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gbcas ,0, sc4_200_4r, sc4, sc4_state, sc4gbcas, ROT0, "BFM","Casino Golden Balls (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gbcasa ,sc4gbcas, sc4_200_4r, sc4, sc4_state, sc4gbcas, ROT0, "BFM","Casino Golden Balls (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gbcasb ,sc4gbcas, sc4_200_4r, sc4, sc4_state, sc4gbcas, ROT0, "BFM","Casino Golden Balls (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4gbcasc ,sc4gbcas, sc4_200_4r, sc4, sc4_state, sc4gbcas, ROT0, "BFM","Casino Golden Balls (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4hntcsm)
@@ -49163,27 +49163,27 @@ DRIVER_INIT_MEMBER(sc4_state,sc4hntcs)
}
// PR1327 CASINO HAPPY NOTES HAPPY NOTES S.SITE PR1327 CAS_HAPPY_NOTES SOUNDS11
-GAMEL( 200?, sc4hntcs ,0, sc4_4reel, sc4, sc4_state, sc4hntcsm, ROT0, "BFM","Happy Notes Casino (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hntcsa ,sc4hntcs, sc4_4reel, sc4, sc4_state, sc4hntcsm, ROT0, "BFM","Happy Notes Casino (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hntcsb ,sc4hntcs, sc4_4reel, sc4, sc4_state, sc4hntcsm, ROT0, "BFM","Happy Notes Casino (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hntcsc ,sc4hntcs, sc4_4reel, sc4, sc4_state, sc4hntcsm, ROT0, "BFM","Happy Notes Casino (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hntcs ,0, sc4_4reel, sc4, sc4_state, sc4hntcsm, ROT0, "BFM","Happy Notes Casino (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hntcsa ,sc4hntcs, sc4_4reel, sc4, sc4_state, sc4hntcsm, ROT0, "BFM","Happy Notes Casino (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hntcsb ,sc4hntcs, sc4_4reel, sc4, sc4_state, sc4hntcsm, ROT0, "BFM","Happy Notes Casino (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hntcsc ,sc4hntcs, sc4_4reel, sc4, sc4_state, sc4hntcsm, ROT0, "BFM","Happy Notes Casino (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR1327 CASINO HAPPY NOTES PR1327 CAS_HAPPY_NOTES SOUNDS11
-GAMEL( 200?, sc4hntcsd ,sc4hntcs, sc4_4reel, sc4, sc4_state, sc4hntcs, ROT0, "BFM","Happy Notes Casino (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hntcse ,sc4hntcs, sc4_4reel, sc4, sc4_state, sc4hntcs, ROT0, "BFM","Happy Notes Casino (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hntcsf ,sc4hntcs, sc4_4reel, sc4, sc4_state, sc4hntcs, ROT0, "BFM","Happy Notes Casino (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hntcsg ,sc4hntcs, sc4_4reel, sc4, sc4_state, sc4hntcs, ROT0, "BFM","Happy Notes Casino (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hntcsh ,sc4hntcs, sc4_4reel, sc4, sc4_state, sc4hntcs, ROT0, "BFM","Happy Notes Casino (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hntcsi ,sc4hntcs, sc4_4reel, sc4, sc4_state, sc4hntcs, ROT0, "BFM","Happy Notes Casino (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hntcsj ,sc4hntcs, sc4_4reel, sc4, sc4_state, sc4hntcs, ROT0, "BFM","Happy Notes Casino (Bellfruit) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hntcsk ,sc4hntcs, sc4_4reel, sc4, sc4_state, sc4hntcs, ROT0, "BFM","Happy Notes Casino (Bellfruit) (Scorpion 4) (set 12)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hntcsl ,sc4hntcs, sc4_4reel, sc4, sc4_state, sc4hntcs, ROT0, "BFM","Happy Notes Casino (Bellfruit) (Scorpion 4) (set 13)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hntcsm ,sc4hntcs, sc4_4reel, sc4, sc4_state, sc4hntcs, ROT0, "BFM","Happy Notes Casino (Bellfruit) (Scorpion 4) (set 14)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hntcsn ,sc4hntcs, sc4_4reel, sc4, sc4_state, sc4hntcs, ROT0, "BFM","Happy Notes Casino (Bellfruit) (Scorpion 4) (set 15)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hntcso ,sc4hntcs, sc4_4reel, sc4, sc4_state, sc4hntcs, ROT0, "BFM","Happy Notes Casino (Bellfruit) (Scorpion 4) (set 16)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hntcsp ,sc4hntcs, sc4_4reel, sc4, sc4_state, sc4hntcs, ROT0, "BFM","Happy Notes Casino (Bellfruit) (Scorpion 4) (set 17)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hntcsq ,sc4hntcs, sc4_4reel, sc4, sc4_state, sc4hntcs, ROT0, "BFM","Happy Notes Casino (Bellfruit) (Scorpion 4) (set 18)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hntcsr ,sc4hntcs, sc4_4reel, sc4, sc4_state, sc4hntcs, ROT0, "BFM","Happy Notes Casino (Bellfruit) (Scorpion 4) (set 19)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hntcss ,sc4hntcs, sc4_4reel, sc4, sc4_state, sc4hntcs, ROT0, "BFM","Happy Notes Casino (Bellfruit) (Scorpion 4) (set 20)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hntcsd ,sc4hntcs, sc4_4reel, sc4, sc4_state, sc4hntcs, ROT0, "BFM","Happy Notes Casino (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hntcse ,sc4hntcs, sc4_4reel, sc4, sc4_state, sc4hntcs, ROT0, "BFM","Happy Notes Casino (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hntcsf ,sc4hntcs, sc4_4reel, sc4, sc4_state, sc4hntcs, ROT0, "BFM","Happy Notes Casino (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hntcsg ,sc4hntcs, sc4_4reel, sc4, sc4_state, sc4hntcs, ROT0, "BFM","Happy Notes Casino (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hntcsh ,sc4hntcs, sc4_4reel, sc4, sc4_state, sc4hntcs, ROT0, "BFM","Happy Notes Casino (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hntcsi ,sc4hntcs, sc4_4reel, sc4, sc4_state, sc4hntcs, ROT0, "BFM","Happy Notes Casino (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hntcsj ,sc4hntcs, sc4_4reel, sc4, sc4_state, sc4hntcs, ROT0, "BFM","Happy Notes Casino (Bellfruit) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hntcsk ,sc4hntcs, sc4_4reel, sc4, sc4_state, sc4hntcs, ROT0, "BFM","Happy Notes Casino (Bellfruit) (Scorpion 4) (set 12)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hntcsl ,sc4hntcs, sc4_4reel, sc4, sc4_state, sc4hntcs, ROT0, "BFM","Happy Notes Casino (Bellfruit) (Scorpion 4) (set 13)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hntcsm ,sc4hntcs, sc4_4reel, sc4, sc4_state, sc4hntcs, ROT0, "BFM","Happy Notes Casino (Bellfruit) (Scorpion 4) (set 14)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hntcsn ,sc4hntcs, sc4_4reel, sc4, sc4_state, sc4hntcs, ROT0, "BFM","Happy Notes Casino (Bellfruit) (Scorpion 4) (set 15)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hntcso ,sc4hntcs, sc4_4reel, sc4, sc4_state, sc4hntcs, ROT0, "BFM","Happy Notes Casino (Bellfruit) (Scorpion 4) (set 16)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hntcsp ,sc4hntcs, sc4_4reel, sc4, sc4_state, sc4hntcs, ROT0, "BFM","Happy Notes Casino (Bellfruit) (Scorpion 4) (set 17)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hntcsq ,sc4hntcs, sc4_4reel, sc4, sc4_state, sc4hntcs, ROT0, "BFM","Happy Notes Casino (Bellfruit) (Scorpion 4) (set 18)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hntcsr ,sc4hntcs, sc4_4reel, sc4, sc4_state, sc4hntcs, ROT0, "BFM","Happy Notes Casino (Bellfruit) (Scorpion 4) (set 19)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hntcss ,sc4hntcs, sc4_4reel, sc4, sc4_state, sc4hntcs, ROT0, "BFM","Happy Notes Casino (Bellfruit) (Scorpion 4) (set 20)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4rhx)
@@ -49197,38 +49197,38 @@ DRIVER_INIT_MEMBER(sc4_state,sc4rhx_mbus)
}
// PR2077 RED HOT X REDX SOUNDS RED HOT X
-GAMEL( 200?, sc4rhx ,0, sc4_200_altb, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rhxa ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rhxd ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rhxe ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rhxj ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rhxk ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // incomplete pairing
-GAMEL( 200?, sc4rhxl ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rhxm ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rhx ,0, sc4_200_altb, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rhxa ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rhxd ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rhxe ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rhxj ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rhxk ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // incomplete pairing
+GAMEL( 200?, sc4rhxl ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rhxm ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2077 RED HOT X RED HOT X ARCADE REDX SOUNDS RED HOT X
-GAMEL( 200?, sc4rhxb ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx_mbus, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rhxc ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx_mbus, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rhxh ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx_mbus, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 13)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rhxi ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx_mbus, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 14)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rhxf ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rhxg ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 12)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rhxn ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 15)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rhxo ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 16)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rhxp ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 17)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rhxq ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 18)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rhxr ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 19)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rhxs ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 20)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rhxt ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 21)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rhxu ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 22)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rhxv ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 23)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rhxw ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 24)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rhxb ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx_mbus, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rhxc ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx_mbus, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rhxh ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx_mbus, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 13)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rhxi ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx_mbus, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 14)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rhxf ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rhxg ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 12)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rhxn ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 15)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rhxo ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 16)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rhxp ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 17)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rhxq ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 18)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rhxr ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 19)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rhxs ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 20)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rhxt ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 21)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rhxu ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 22)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rhxv ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 23)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rhxw ,sc4rhx, sc4_200_altb, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 4) (set 24)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2056 RED HOT X CLUB REDX SOUNDS RED HOT X CLUB
-GAMEL( 200?, sc4rhxcl ,0, sc4, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X Club (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rhxcla ,sc4rhxcl, sc4, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X Club (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rhxclb ,sc4rhxcl, sc4, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X Club (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rhxclc ,sc4rhxcl, sc4, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X Club (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rhxcl ,0, sc4, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X Club (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rhxcla ,sc4rhxcl, sc4, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X Club (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rhxclb ,sc4rhxcl, sc4, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X Club (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rhxclc ,sc4rhxcl, sc4, sc4, sc4_state, sc4rhx, ROT0, "Mazooma","Red Hot X Club (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -49239,10 +49239,10 @@ DRIVER_INIT_MEMBER(sc4_state,sc4vivam)
// PR6907 VIVA MEXICO PR6907 VIVA MEXICO SOUNDS11
-GAMEL( 200?, sc4vivam ,0, sc4_4reel, sc4, sc4_state, sc4vivam, ROT0, "BFM","Viva Mexico (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4vivama ,sc4vivam, sc4_4reel, sc4, sc4_state, sc4vivam, ROT0, "BFM","Viva Mexico (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4vivamb ,sc4vivam, sc4_4reel, sc4, sc4_state, sc4vivam, ROT0, "BFM","Viva Mexico (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4vivamc ,sc4vivam, sc4_4reel, sc4, sc4_state, sc4vivam, ROT0, "BFM","Viva Mexico (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4vivam ,0, sc4_4reel, sc4, sc4_state, sc4vivam, ROT0, "BFM","Viva Mexico (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4vivama ,sc4vivam, sc4_4reel, sc4, sc4_state, sc4vivam, ROT0, "BFM","Viva Mexico (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4vivamb ,sc4vivam, sc4_4reel, sc4, sc4_state, sc4vivam, ROT0, "BFM","Viva Mexico (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4vivamc ,sc4vivam, sc4_4reel, sc4, sc4_state, sc4vivam, ROT0, "BFM","Viva Mexico (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4vivcs)
@@ -49254,40 +49254,40 @@ DRIVER_INIT_MEMBER(sc4_state,sc4vivcs)
// PR6927 CASINO VIVA MEXICO PR6927 VIVAMEXICO SOUNDS11
// these do nothing..
-GAMEL( 200?, sc4vivcs ,0, sc4_3reel, sc4, sc4_state, sc4vivcs, ROT0, "BFM","Casino Viva Mexico (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4vivcsa ,sc4vivcs, sc4_3reel, sc4, sc4_state, sc4vivcs, ROT0, "BFM","Casino Viva Mexico (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4vivcs ,0, sc4_3reel, sc4, sc4_state, sc4vivcs, ROT0, "BFM","Casino Viva Mexico (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4vivcsa ,sc4vivcs, sc4_3reel, sc4, sc4_state, sc4vivcs, ROT0, "BFM","Casino Viva Mexico (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR6927 CASINO VIVA MEXICO PR6927 VIVAMEXICO SOUNDS21
// these boot
-GAMEL( 200?, sc4vivcsb ,sc4vivcs, sc4_3reel, sc4, sc4_state, sc4vivcs, ROT0, "BFM","Casino Viva Mexico (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4vivcsc ,sc4vivcs, sc4_3reel, sc4, sc4_state, sc4vivcs, ROT0, "BFM","Casino Viva Mexico (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4vivcsd ,sc4vivcs, sc4_3reel, sc4, sc4_state, sc4vivcs, ROT0, "BFM","Casino Viva Mexico (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4vivcse ,sc4vivcs, sc4_3reel, sc4, sc4_state, sc4vivcs, ROT0, "BFM","Casino Viva Mexico (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4vivcsf ,sc4vivcs, sc4_3reel, sc4, sc4_state, sc4vivcs, ROT0, "BFM","Casino Viva Mexico (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4vivcsg ,sc4vivcs, sc4_3reel, sc4, sc4_state, sc4vivcs, ROT0, "BFM","Casino Viva Mexico (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4vivcsb ,sc4vivcs, sc4_3reel, sc4, sc4_state, sc4vivcs, ROT0, "BFM","Casino Viva Mexico (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4vivcsc ,sc4vivcs, sc4_3reel, sc4, sc4_state, sc4vivcs, ROT0, "BFM","Casino Viva Mexico (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4vivcsd ,sc4vivcs, sc4_3reel, sc4, sc4_state, sc4vivcs, ROT0, "BFM","Casino Viva Mexico (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4vivcse ,sc4vivcs, sc4_3reel, sc4, sc4_state, sc4vivcs, ROT0, "BFM","Casino Viva Mexico (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4vivcsf ,sc4vivcs, sc4_3reel, sc4, sc4_state, sc4vivcs, ROT0, "BFM","Casino Viva Mexico (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4vivcsg ,sc4vivcs, sc4_3reel, sc4, sc4_state, sc4vivcs, ROT0, "BFM","Casino Viva Mexico (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR7054 POWER BALL POWERBALL SOUNDS
-GAMEL( 200?, sc4pwrbq ,0, sc4, sc4, sc4_state, sc4, ROT0, "Qps","Power Ball (Qps) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pwrbqa ,sc4pwrbq, sc4, sc4, sc4_state, sc4, ROT0, "Qps","Power Ball (Qps) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pwrbq ,0, sc4, sc4, sc4_state, sc4, ROT0, "Qps","Power Ball (Qps) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pwrbqa ,sc4pwrbq, sc4, sc4, sc4_state, sc4, ROT0, "Qps","Power Ball (Qps) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// fails to boot, like many of the Pole Position sets, probably needs some specific dips setting due to buggy code?
// PR7008 CHUBBY DOES VEGAS VEGAS SOUNDS11
-GAMEL( 200?, sc4chub ,0, sc4_4reel, sc4, sc4_state, sc4, ROT0, "Mazooma","Chubby Does Vegas (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4chuba ,sc4chub, sc4_4reel, sc4, sc4_state, sc4, ROT0, "Mazooma","Chubby Does Vegas (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4chubb ,sc4chub, sc4_4reel, sc4, sc4_state, sc4, ROT0, "Mazooma","Chubby Does Vegas (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4chub ,0, sc4_4reel, sc4, sc4_state, sc4, ROT0, "Mazooma","Chubby Does Vegas (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4chuba ,sc4chub, sc4_4reel, sc4, sc4_state, sc4, ROT0, "Mazooma","Chubby Does Vegas (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4chubb ,sc4chub, sc4_4reel, sc4, sc4_state, sc4, ROT0, "Mazooma","Chubby Does Vegas (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// no sound roms, doesn't init properly (doesn't even attempt reel test)
// PR7011 BLUE RINSE BRINSE SOUNDS
-GAMEL( 200?, sc4blue ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Blue Rinse (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bluea ,sc4blue, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Blue Rinse (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4blueb ,sc4blue, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Blue Rinse (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bluec ,sc4blue, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Blue Rinse (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4blued ,sc4blue, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Blue Rinse (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bluee ,sc4blue, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Blue Rinse (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4blue ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Blue Rinse (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bluea ,sc4blue, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Blue Rinse (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4blueb ,sc4blue, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Blue Rinse (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bluec ,sc4blue, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Blue Rinse (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4blued ,sc4blue, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Blue Rinse (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bluee ,sc4blue, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Blue Rinse (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
DRIVER_INIT_MEMBER(sc4_state,sc4bugs)
@@ -49298,15 +49298,15 @@ DRIVER_INIT_MEMBER(sc4_state,sc4bugs)
// no sound roms
// PR7109 BUGS MONEY PR7109 BUGS MONEY SOUNDS11 BUGS MONEY
-GAMEL( 200?, sc4bugs ,0, sc4, sc4, sc4_state, sc4bugs, ROT0, "BFM","Bugs Money (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bugsa ,sc4bugs, sc4, sc4, sc4_state, sc4bugs, ROT0, "BFM","Bugs Money (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bugsb ,sc4bugs, sc4, sc4, sc4_state, sc4bugs, ROT0, "BFM","Bugs Money (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4bugsc ,sc4bugs, sc4, sc4, sc4_state, sc4bugs, ROT0, "BFM","Bugs Money (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bugs ,0, sc4, sc4, sc4_state, sc4bugs, ROT0, "BFM","Bugs Money (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bugsa ,sc4bugs, sc4, sc4, sc4_state, sc4bugs, ROT0, "BFM","Bugs Money (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bugsb ,sc4bugs, sc4, sc4, sc4_state, sc4bugs, ROT0, "BFM","Bugs Money (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4bugsc ,sc4bugs, sc4, sc4, sc4_state, sc4bugs, ROT0, "BFM","Bugs Money (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR7029 MONEY TO MONEY MTOM SOUNDS
-GAMEL( 200?, sc4m2m ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Money To Money (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4m2ma ,sc4m2m, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Money To Money (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4m2m ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Money To Money (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4m2ma ,sc4m2m, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Money To Money (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -49317,10 +49317,10 @@ DRIVER_INIT_MEMBER(sc4_state,sc4chand)
// no sound roms
// PR7108 CASH IN HAND PR7108 CASH IN HAND SOUNDS11 CASH IN HAND
-GAMEL( 200?, sc4chand ,0, sc4_4reel, sc4, sc4_state, sc4chand, ROT0, "BFM","Cash In Hand (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4chanda ,sc4chand, sc4_4reel, sc4, sc4_state, sc4chand, ROT0, "BFM","Cash In Hand (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4chandb ,sc4chand, sc4_4reel, sc4, sc4_state, sc4chand, ROT0, "BFM","Cash In Hand (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4chandc ,sc4chand, sc4_4reel, sc4, sc4_state, sc4chand, ROT0, "BFM","Cash In Hand (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4chand ,0, sc4_4reel, sc4, sc4_state, sc4chand, ROT0, "BFM","Cash In Hand (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4chanda ,sc4chand, sc4_4reel, sc4, sc4_state, sc4chand, ROT0, "BFM","Cash In Hand (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4chandb ,sc4chand, sc4_4reel, sc4, sc4_state, sc4chand, ROT0, "BFM","Cash In Hand (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4chandc ,sc4chand, sc4_4reel, sc4, sc4_state, sc4chand, ROT0, "BFM","Cash In Hand (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -49332,349 +49332,349 @@ DRIVER_INIT_MEMBER(sc4_state,sc4cinv)
// no sound roms
// PR6809 CASHINVADERS PR6809 CASHINVADERS SOUNDS
-GAMEL( 200?, sc4cinv ,0, sc4_4reel, sc4, sc4_state, sc4cinv, ROT0, "BFM","Cash Invaders (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cinva ,sc4cinv, sc4_4reel, sc4, sc4_state, sc4cinv, ROT0, "BFM","Cash Invaders (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cinvb ,sc4cinv, sc4_4reel, sc4, sc4_state, sc4cinv, ROT0, "BFM","Cash Invaders (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cinvc ,sc4cinv, sc4_4reel, sc4, sc4_state, sc4cinv, ROT0, "BFM","Cash Invaders (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cinvd ,sc4cinv, sc4_4reel, sc4, sc4_state, sc4cinv, ROT0, "BFM","Cash Invaders (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cinve ,sc4cinv, sc4_4reel, sc4, sc4_state, sc4cinv, ROT0, "BFM","Cash Invaders (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cinvf ,sc4cinv, sc4_4reel, sc4, sc4_state, sc4cinv, ROT0, "BFM","Cash Invaders (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cinvg ,sc4cinv, sc4_4reel, sc4, sc4_state, sc4cinv, ROT0, "BFM","Cash Invaders (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cinvh ,sc4cinv, sc4_4reel, sc4, sc4_state, sc4cinv, ROT0, "BFM","Cash Invaders (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4cinvi ,sc4cinv, sc4_4reel, sc4, sc4_state, sc4cinv, ROT0, "BFM","Cash Invaders (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cinv ,0, sc4_4reel, sc4, sc4_state, sc4cinv, ROT0, "BFM","Cash Invaders (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cinva ,sc4cinv, sc4_4reel, sc4, sc4_state, sc4cinv, ROT0, "BFM","Cash Invaders (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cinvb ,sc4cinv, sc4_4reel, sc4, sc4_state, sc4cinv, ROT0, "BFM","Cash Invaders (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cinvc ,sc4cinv, sc4_4reel, sc4, sc4_state, sc4cinv, ROT0, "BFM","Cash Invaders (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cinvd ,sc4cinv, sc4_4reel, sc4, sc4_state, sc4cinv, ROT0, "BFM","Cash Invaders (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cinve ,sc4cinv, sc4_4reel, sc4, sc4_state, sc4cinv, ROT0, "BFM","Cash Invaders (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cinvf ,sc4cinv, sc4_4reel, sc4, sc4_state, sc4cinv, ROT0, "BFM","Cash Invaders (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cinvg ,sc4cinv, sc4_4reel, sc4, sc4_state, sc4cinv, ROT0, "BFM","Cash Invaders (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cinvh ,sc4cinv, sc4_4reel, sc4, sc4_state, sc4cinv, ROT0, "BFM","Cash Invaders (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cinvi ,sc4cinv, sc4_4reel, sc4, sc4_state, sc4cinv, ROT0, "BFM","Cash Invaders (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR7103 JUNGLE BUCKS PR7103 JUNGLEBUCKS SOUNDS11 JUNGLE BUCKS
-GAMEL( 200?, sc4jbuck ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Jungle Bucks (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jbucka ,sc4jbuck, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Jungle Bucks (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jbuckb ,sc4jbuck, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Jungle Bucks (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jbuckc ,sc4jbuck, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Jungle Bucks (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jbuckd ,sc4jbuck, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Jungle Bucks (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jbuck ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Jungle Bucks (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jbucka ,sc4jbuck, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Jungle Bucks (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jbuckb ,sc4jbuck, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Jungle Bucks (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jbuckc ,sc4jbuck, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Jungle Bucks (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jbuckd ,sc4jbuck, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Jungle Bucks (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR6904 MONEY BAGS PR6904 MONEY BAGS SOUNDS11
-GAMEL( 200?, sc4mbags ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Money Bags (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mbagsa ,sc4mbags, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Money Bags (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mbagsb ,sc4mbags, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Money Bags (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4mbagsc ,sc4mbags, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Money Bags (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mbags ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Money Bags (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mbagsa ,sc4mbags, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Money Bags (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mbagsb ,sc4mbags, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Money Bags (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4mbagsc ,sc4mbags, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Money Bags (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// sound roms are bad, missing first 0x10000 bytes with header
// PR6938 TUTTI FRUTTI PR6938 FRUT SOUNDS11 TUTTI FRUTTI
-GAMEL( 200?, sc4tfclb ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Tutti Frutti Club (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tfclba ,sc4tfclb, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Tutti Frutti Club (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tfclb ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Tutti Frutti Club (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tfclba ,sc4tfclb, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Tutti Frutti Club (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// doesn't like the sound rom we have even if the ID is right
// PR7022 UP FOR GRABS GRAB SOUNDS
-GAMEL( 200?, sc4ufg ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Up For Grabs (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ufga ,sc4ufg, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Up For Grabs (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ufg ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Up For Grabs (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ufga ,sc4ufg, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Up For Grabs (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR6819 UP FOT IT PR6819 UP FOR IT SOUNDS11
-GAMEL( 200?, sc4ufi ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Up For It (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ufia ,sc4ufi, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Up For It (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ufib ,sc4ufi, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Up For It (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ufic ,sc4ufi, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Up For It (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ufid ,sc4ufi, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Up For It (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ufie ,sc4ufi, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Up For It (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // incomplete pairing
+GAMEL( 200?, sc4ufi ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Up For It (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ufia ,sc4ufi, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Up For It (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ufib ,sc4ufi, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Up For It (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ufic ,sc4ufi, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Up For It (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ufid ,sc4ufi, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Up For It (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ufie ,sc4ufi, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Up For It (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // incomplete pairing
// PR6812 WHO DARES WINS PR6812 WHO DARES WINS SOUNDS
-GAMEL( 200?, sc4wdw ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Who Dares Wins (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wdwa ,sc4wdw, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Who Dares Wins (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wdwb ,sc4wdw, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Who Dares Wins (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wdwc ,sc4wdw, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Who Dares Wins (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wdwd ,sc4wdw, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Who Dares Wins (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wdwe ,sc4wdw, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Who Dares Wins (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wdwf ,sc4wdw, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Who Dares Wins (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wdwg ,sc4wdw, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Who Dares Wins (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wdwh ,sc4wdw, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Who Dares Wins (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wdwi ,sc4wdw, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Who Dares Wins (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wdwj ,sc4wdw, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Who Dares Wins (Bellfruit) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wdw ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Who Dares Wins (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wdwa ,sc4wdw, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Who Dares Wins (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wdwb ,sc4wdw, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Who Dares Wins (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wdwc ,sc4wdw, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Who Dares Wins (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wdwd ,sc4wdw, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Who Dares Wins (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wdwe ,sc4wdw, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Who Dares Wins (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wdwf ,sc4wdw, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Who Dares Wins (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wdwg ,sc4wdw, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Who Dares Wins (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wdwh ,sc4wdw, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Who Dares Wins (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wdwi ,sc4wdw, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Who Dares Wins (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wdwj ,sc4wdw, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Who Dares Wins (Bellfruit) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR7144 WILD BUNCH PR7144 CRAZY FRUITS SOUNDS11
-GAMEL( 200?, sc4wldbn ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Wild Bunch (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wldbna ,sc4wldbn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Wild Bunch (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wldbnb ,sc4wldbn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Wild Bunch (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wldbnc ,sc4wldbn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Wild Bunch (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wldbnd ,sc4wldbn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Wild Bunch (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wldbne ,sc4wldbn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Wild Bunch (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wldbnf ,sc4wldbn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Wild Bunch (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wldbni ,sc4wldbn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Wild Bunch (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wldbnj ,sc4wldbn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Wild Bunch (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wldbnk ,sc4wldbn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Wild Bunch (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wldbnn ,sc4wldbn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Wild Bunch (Bellfruit) (Scorpion 4) (set 11)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wldbno ,sc4wldbn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Wild Bunch (Bellfruit) (Scorpion 4) (set 12)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wldbnp ,sc4wldbn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Wild Bunch (Bellfruit) (Scorpion 4) (set 13)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wldbnq ,sc4wldbn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Wild Bunch (Bellfruit) (Scorpion 4) (set 14)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wldbn ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Wild Bunch (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wldbna ,sc4wldbn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Wild Bunch (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wldbnb ,sc4wldbn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Wild Bunch (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wldbnc ,sc4wldbn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Wild Bunch (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wldbnd ,sc4wldbn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Wild Bunch (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wldbne ,sc4wldbn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Wild Bunch (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wldbnf ,sc4wldbn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Wild Bunch (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wldbni ,sc4wldbn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Wild Bunch (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wldbnj ,sc4wldbn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Wild Bunch (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wldbnk ,sc4wldbn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Wild Bunch (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wldbnn ,sc4wldbn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Wild Bunch (Bellfruit) (Scorpion 4) (set 11)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wldbno ,sc4wldbn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Wild Bunch (Bellfruit) (Scorpion 4) (set 12)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wldbnp ,sc4wldbn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Wild Bunch (Bellfruit) (Scorpion 4) (set 13)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wldbnq ,sc4wldbn, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Wild Bunch (Bellfruit) (Scorpion 4) (set 14)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR7144 WILD BUNCH PR7144 WILD BUNCH SOUNDS11 CAS WILD BUNCH S.SITE
-GAMEL( 200?, sc4wldbng ,sc4wldbn, sc4, sc4, sc4_state, sc4mbus, ROT0, "BFM","Wild Bunch Casino (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wldbnh ,sc4wldbn, sc4, sc4, sc4_state, sc4mbus, ROT0, "BFM","Wild Bunch Casino (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wldbnl ,sc4wldbn, sc4, sc4, sc4_state, sc4mbus, ROT0, "BFM","Wild Bunch Casino (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wldbnm ,sc4wldbn, sc4, sc4, sc4_state, sc4mbus, ROT0, "BFM","Wild Bunch Casino (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wldbng ,sc4wldbn, sc4, sc4, sc4_state, sc4mbus, ROT0, "BFM","Wild Bunch Casino (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wldbnh ,sc4wldbn, sc4, sc4, sc4_state, sc4mbus, ROT0, "BFM","Wild Bunch Casino (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wldbnl ,sc4wldbn, sc4, sc4, sc4_state, sc4mbus, ROT0, "BFM","Wild Bunch Casino (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wldbnm ,sc4wldbn, sc4, sc4, sc4_state, sc4mbus, ROT0, "BFM","Wild Bunch Casino (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR7110 WILD THING PR7110 WILD THING SOUNDS11
-GAMEL( 200?, sc4wthng ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Wild Thing (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wthnga ,sc4wthng, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Wild Thing (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wthngb ,sc4wthng, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Wild Thing (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wthngc ,sc4wthng, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Wild Thing (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wthng ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Wild Thing (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wthnga ,sc4wthng, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Wild Thing (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wthngb ,sc4wthng, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Wild Thing (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wthngc ,sc4wthng, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Wild Thing (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// does NOT want 'WILD SOUNDS' from 'PR7065 WET 'N' WILD'
// PR7060CASINO WILDTHING WILD THING ARCADE WILD SOUNDS WILD THING
-GAMEL( 200?, sc4wthnm ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Thing Casino Arcade (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wthnma ,sc4wthnm, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Thing Casino Arcade (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wthnmb ,sc4wthnm, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Thing Casino Arcade (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wthnmc ,sc4wthnm, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Thing Casino Arcade (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wthnmd ,sc4wthnm, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Thing Casino Arcade (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wthnme ,sc4wthnm, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Thing Casino Arcade (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wthnmf ,sc4wthnm, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Thing Casino Arcade (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wthnm ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Thing Casino Arcade (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wthnma ,sc4wthnm, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Thing Casino Arcade (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wthnmb ,sc4wthnm, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Thing Casino Arcade (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wthnmc ,sc4wthnm, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Thing Casino Arcade (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wthnmd ,sc4wthnm, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Thing Casino Arcade (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wthnme ,sc4wthnm, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Thing Casino Arcade (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wthnmf ,sc4wthnm, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Thing Casino Arcade (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR7060CASINO WILDTHING WILD SOUNDS WILD THING
-GAMEL( 200?, sc4wtc ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Thing Casino (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wtca ,sc4wtc, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Thing Casino (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wtcb ,sc4wtc, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Thing Casino (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wtcc ,sc4wtc, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Thing Casino (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wtcd ,sc4wtc, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Thing Casino (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wtce ,sc4wtc, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Thing Casino (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wtcf ,sc4wtc, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Thing Casino (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wtc ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Thing Casino (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wtca ,sc4wtc, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Thing Casino (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wtcb ,sc4wtc, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Thing Casino (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wtcc ,sc4wtc, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Thing Casino (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wtcd ,sc4wtc, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Thing Casino (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wtce ,sc4wtc, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Thing Casino (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wtcf ,sc4wtc, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Wild Thing Casino (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// half size sound rom, or missing a rom
// PR7017 THREE LIONS LION SOUNDS
-GAMEL( 200?, sc4lions ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Three Lions (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lionsa ,sc4lions, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Three Lions (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lionsb ,sc4lions, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Three Lions (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lionsc ,sc4lions, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Three Lions (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lionsd ,sc4lions, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Three Lions (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lionse ,sc4lions, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Three Lions (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4lionsf ,sc4lions, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Three Lions (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lions ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Three Lions (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lionsa ,sc4lions, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Three Lions (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lionsb ,sc4lions, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Three Lions (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lionsc ,sc4lions, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Three Lions (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lionsd ,sc4lions, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Three Lions (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lionse ,sc4lions, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Three Lions (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4lionsf ,sc4lions, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Three Lions (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// wrong sound roms
// PROJECT NUMBER PR7113 TEMPTATION PR7113 TEMPTATION SOUNDS11
-GAMEL( 200?, sc4tempt ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Temptation (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tempta ,sc4tempt, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Temptation (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4temptb ,sc4tempt, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Temptation (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4temptc ,sc4tempt, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Temptation (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4temptd ,sc4tempt, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Temptation (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4tempte ,sc4tempt, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Temptation (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4temptf ,sc4tempt, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Temptation (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4temptg ,sc4tempt, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Temptation (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tempt ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Temptation (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tempta ,sc4tempt, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Temptation (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4temptb ,sc4tempt, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Temptation (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4temptc ,sc4tempt, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Temptation (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4temptd ,sc4tempt, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Temptation (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4tempte ,sc4tempt, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Temptation (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4temptf ,sc4tempt, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Temptation (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4temptg ,sc4tempt, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Temptation (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// half size sound rom, or missing a rom
// PR7016 TAKE THE PISTE PISTE SOUNDS
-GAMEL( 200?, sc4ttp ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Take The Piste (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ttpa ,sc4ttp, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Take The Piste (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ttpb ,sc4ttp, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Take The Piste (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ttpc ,sc4ttp, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Take The Piste (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ttpd ,sc4ttp, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Take The Piste (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ttpe ,sc4ttp, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Take The Piste (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ttpf ,sc4ttp, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Take The Piste (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ttp ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Take The Piste (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ttpa ,sc4ttp, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Take The Piste (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ttpb ,sc4ttp, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Take The Piste (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ttpc ,sc4ttp, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Take The Piste (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ttpd ,sc4ttp, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Take The Piste (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ttpe ,sc4ttp, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Take The Piste (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ttpf ,sc4ttp, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Take The Piste (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR6806 MOTORWAY MAYHEM PR6806 MAYH SOUNDS11
-GAMEL( 200?, sc4motor ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Motorway Mania (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4motora ,sc4motor, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Motorway Mania (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4motorb ,sc4motor, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Motorway Mania (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4motorc ,sc4motor, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Motorway Mania (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4motord ,sc4motor, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Motorway Mania (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4motore ,sc4motor, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Motorway Mania (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4motorf ,sc4motor, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Motorway Mania (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4motorg ,sc4motor, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Motorway Mania (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4motorh ,sc4motor, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Motorway Mania (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4motor ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Motorway Mania (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4motora ,sc4motor, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Motorway Mania (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4motorb ,sc4motor, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Motorway Mania (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4motorc ,sc4motor, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Motorway Mania (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4motord ,sc4motor, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Motorway Mania (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4motore ,sc4motor, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Motorway Mania (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4motorf ,sc4motor, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Motorway Mania (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4motorg ,sc4motor, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Motorway Mania (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4motorh ,sc4motor, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Motorway Mania (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// sound roms are bad dumps
// PR6915 stag night PR6915 STAG NIGHT SOUNDS11
-GAMEL( 200?, sc4stag ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Stag Night (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4staga ,sc4stag, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Stag Night (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4stag ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Stag Night (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4staga ,sc4stag, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Stag Night (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR7016 HICKORY DICKORY DOSH HICKORY SOUNDS
-GAMEL( 200?, sc4hdd ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Hickory Dickory Dosh (PR7016) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hddc ,sc4hdd, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Hickory Dickory Dosh (PR7016) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hddd ,sc4hdd, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Hickory Dickory Dosh (PR7016) (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hdd ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Hickory Dickory Dosh (PR7016) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hddc ,sc4hdd, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Hickory Dickory Dosh (PR7016) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hddd ,sc4hdd, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Hickory Dickory Dosh (PR7016) (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR7045 HICKORY DICKORY DOSH HICKORY SOUNDS
-GAMEL( 200?, sc4hdda ,sc4hdd, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Hickory Dickory Dosh (PR7045) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hddb ,sc4hdd, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Hickory Dickory Dosh (PR7045) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hdde ,sc4hdd, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Hickory Dickory Dosh (PR7045) (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4hddf ,sc4hdd, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Hickory Dickory Dosh (PR7045) (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hdda ,sc4hdd, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Hickory Dickory Dosh (PR7045) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hddb ,sc4hdd, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Hickory Dickory Dosh (PR7045) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hdde ,sc4hdd, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Hickory Dickory Dosh (PR7045) (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4hddf ,sc4hdd, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Hickory Dickory Dosh (PR7045) (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// // does NOT want 'WILD SOUNDS' from 'PR7065 WET 'N' WILD'
// PR2043 NUDGE IT WILD SOUNDS NUDGE IT
-GAMEL( 200?, sc4nudit ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Nudge It (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4nudit ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Nudge It (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2043 NUDGE IT NGIT SOUNDS NUDGE IT
-GAMEL( 200?, sc4nudita ,sc4nudit, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Nudge It (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4nuditb ,sc4nudit, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Nudge It (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4nudita ,sc4nudit, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Nudge It (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4nuditb ,sc4nudit, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Nudge It (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR6908 OUTLAW PR6908 OUTLAW SOUNDS11
-GAMEL( 200?, sc4outlw ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Outlaw (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4outlwa ,sc4outlw, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Outlaw (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4outlwb ,sc4outlw, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Outlaw (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4outlwc ,sc4outlw, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Outlaw (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4outlw ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Outlaw (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4outlwa ,sc4outlw, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Outlaw (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4outlwb ,sc4outlw, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Outlaw (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4outlwc ,sc4outlw, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Outlaw (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR7002 ROLLOVER JACKPOT PR7002 ROLLOVER SOUNDS
-GAMEL( 200?, sc4rollo ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Rollover Jackpot (PR7002) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rolloa ,sc4rollo, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Rollover Jackpot (PR7002) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rolloc ,sc4rollo, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Rollover Jackpot (PR7002) (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rollod ,sc4rollo, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Rollover Jackpot (PR7002) (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rollo ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Rollover Jackpot (PR7002) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rolloa ,sc4rollo, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Rollover Jackpot (PR7002) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rolloc ,sc4rollo, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Rollover Jackpot (PR7002) (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rollod ,sc4rollo, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Rollover Jackpot (PR7002) (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR7032 ROLLOVER JACKPOT PR7002 ROLLOVER SOUNDS
-GAMEL( 200?, sc4rollob ,sc4rollo, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Rollover Jackpot (PR7032) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rolloe ,sc4rollo, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Rollover Jackpot (PR7032) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rollof ,sc4rollo, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Rollover Jackpot (PR7032) (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rollob ,sc4rollo, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Rollover Jackpot (PR7032) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rolloe ,sc4rollo, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Rollover Jackpot (PR7032) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rollof ,sc4rollo, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Rollover Jackpot (PR7032) (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2086 ROUTE66 RT66 SOUNDS ROUTE 66
-GAMEL( 200?, sc4r66 ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Route 66 (Mazooma) (Scorpion 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4r66 ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Route 66 (Mazooma) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR1031 CASINO ROLL ME OVER PR1031 ROLL ME OVER SOUNDS11
-GAMEL( 200?, sc4rmo ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Roll Me Over Casino (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4rmoa ,sc4rmo, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Roll Me Over Casino (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rmo ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Roll Me Over Casino (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4rmoa ,sc4rmo, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Roll Me Over Casino (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// missing sound roms
// PR7021 JIGGERY POKERY PR7021 SOUNDS
-GAMEL( 200?, sc4jiggr ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Jiggery Pokery (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jiggra ,sc4jiggr, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Jiggery Pokery (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jiggrb ,sc4jiggr, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Jiggery Pokery (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4jiggrc ,sc4jiggr, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Jiggery Pokery (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jiggr ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Jiggery Pokery (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jiggra ,sc4jiggr, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Jiggery Pokery (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jiggrb ,sc4jiggr, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Jiggery Pokery (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jiggrc ,sc4jiggr, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Jiggery Pokery (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// WRONG SOUNDS, PAY UNIT ERR 17
-GAMEL( 200?, sc4cmon ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Casino Monopoly (PR2133) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR2133 CASINO MONOPOLY MONOPOLY ARCADE MONL SOUNDS MONOPOLY
-GAMEL( 200?, sc4cmona ,sc4cmon, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Casino Monopoly (PR2133) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4cmonb ,sc4cmon, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Casino Monopoly (PR2133) (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4cmonc ,sc4cmon, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Casino Monopoly (PR2133) (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4cmond ,sc4cmon, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Casino Monopoly (PR2133) (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4cmone ,sc4cmon, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Casino Monopoly (PR2133) (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4cmonf ,sc4cmon, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Casino Monopoly (PR2133) (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4cmong ,sc4cmon, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Casino Monopoly (PR2133) (Mazooma) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4cmonh ,sc4cmon, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Casino Monopoly (PR2133) (Mazooma) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4cmoni ,sc4cmon, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Casino Monopoly (PR2133) (Mazooma) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4cmon ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Casino Monopoly (PR2133) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR2133 CASINO MONOPOLY MONOPOLY ARCADE MONL SOUNDS MONOPOLY
+GAMEL( 200?, sc4cmona ,sc4cmon, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Casino Monopoly (PR2133) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4cmonb ,sc4cmon, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Casino Monopoly (PR2133) (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4cmonc ,sc4cmon, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Casino Monopoly (PR2133) (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4cmond ,sc4cmon, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Casino Monopoly (PR2133) (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4cmone ,sc4cmon, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Casino Monopoly (PR2133) (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4cmonf ,sc4cmon, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Casino Monopoly (PR2133) (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4cmong ,sc4cmon, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Casino Monopoly (PR2133) (Mazooma) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4cmonh ,sc4cmon, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Casino Monopoly (PR2133) (Mazooma) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4cmoni ,sc4cmon, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Casino Monopoly (PR2133) (Mazooma) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
// PR6810 POWER CRAZY PR6810 POWER SOUNDS11
-GAMEL( 200?, sc4pwcrz ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Power Crazy (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pwcrza ,sc4pwcrz, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Power Crazy (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pwcrzb ,sc4pwcrz, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Power Crazy (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pwcrze ,sc4pwcrz, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Power Crazy (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pwcrzf ,sc4pwcrz, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Power Crazy (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // incomplete pairing
-GAMEL( 200?, sc4pwcrzg ,sc4pwcrz, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Power Crazy (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pwcrz ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Power Crazy (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pwcrza ,sc4pwcrz, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Power Crazy (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pwcrzb ,sc4pwcrz, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Power Crazy (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pwcrze ,sc4pwcrz, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Power Crazy (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pwcrzf ,sc4pwcrz, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Power Crazy (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // incomplete pairing
+GAMEL( 200?, sc4pwcrzg ,sc4pwcrz, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Power Crazy (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR4610 POWER CRAZY SP98 PR6810 POWER SOUNDS11
-GAMEL( 200?, sc4pwcrzc ,sc4pwcrz, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Power Crazy SP98 (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pwcrzd ,sc4pwcrz, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Power Crazy SP98 (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pwcrzh ,sc4pwcrz, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Power Crazy SP98 (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4pwcrzi ,sc4pwcrz, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Power Crazy SP98 (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pwcrzc ,sc4pwcrz, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Power Crazy SP98 (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pwcrzd ,sc4pwcrz, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Power Crazy SP98 (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pwcrzh ,sc4pwcrz, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Power Crazy SP98 (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4pwcrzi ,sc4pwcrz, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Power Crazy SP98 (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// some of the italian / german sets have input structures, but not fruit machine ones
// PR1191 QUARTERBACK QBCK SOUNDS QUARTERBACK
-GAMEL( 200?, sc4quart ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Quaterback (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4quarta ,sc4quart, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Quaterback (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4quart ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Quaterback (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4quarta ,sc4quart, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Quaterback (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// QUARTERBACK .PR2072.ITALIAN QUARTERBACK.. (non-standard header)
-GAMEL( 200?, sc4quartb ,sc4quart, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Quaterback (PR2072) (Italian) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4quarte ,sc4quart, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Quaterback (PR2072) (Italian) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4quarti ,sc4quart, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Quaterback (PR2072) (Italian) (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4quartk ,sc4quart, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Quaterback (PR2072) (Italian) (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4quartb ,sc4quart, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Quaterback (PR2072) (Italian) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4quarte ,sc4quart, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Quaterback (PR2072) (Italian) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4quarti ,sc4quart, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Quaterback (PR2072) (Italian) (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4quartk ,sc4quart, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Quaterback (PR2072) (Italian) (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// QUARTERBACK .PR2064.GERMAN QUARTERBACK.. (non-standard header)
-GAMEL( 200?, sc4quartc ,sc4quart, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Quaterback (PR2064) (German) (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4quartd ,sc4quart, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Quaterback (PR2064) (German) (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4quartf ,sc4quart, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Quaterback (PR2064) (German) (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4quartg ,sc4quart, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Quaterback (PR2064) (German) (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4quarth ,sc4quart, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Quaterback (PR2064) (German) (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4quartj ,sc4quart, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Quaterback (PR2064) (German) (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4quartl ,sc4quart, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Quaterback (PR2064) (German) (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4quartm ,sc4quart, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Quaterback (PR2064) (German) (Mazooma) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4quartc ,sc4quart, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Quaterback (PR2064) (German) (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4quartd ,sc4quart, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Quaterback (PR2064) (German) (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4quartf ,sc4quart, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Quaterback (PR2064) (German) (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4quartg ,sc4quart, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Quaterback (PR2064) (German) (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4quarth ,sc4quart, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Quaterback (PR2064) (German) (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4quartj ,sc4quart, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Quaterback (PR2064) (German) (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4quartl ,sc4quart, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Quaterback (PR2064) (German) (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4quartm ,sc4quart, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Quaterback (PR2064) (German) (Mazooma) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR6902 RED HOT IBIZA PR6902 IBIZ SOUNDS11
-GAMEL( 200?, sc4ibiza ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Red Hot Ibiza (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ibizaa ,sc4ibiza, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Red Hot Ibiza (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ibizab ,sc4ibiza, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Red Hot Ibiza (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ibizac ,sc4ibiza, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Red Hot Ibiza (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ibizad ,sc4ibiza, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Red Hot Ibiza (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ibizae ,sc4ibiza, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Red Hot Ibiza (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ibizaf ,sc4ibiza, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Red Hot Ibiza (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ibizag ,sc4ibiza, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Red Hot Ibiza (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ibizah ,sc4ibiza, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Red Hot Ibiza (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ibizai ,sc4ibiza, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Red Hot Ibiza (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ibiza ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Red Hot Ibiza (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ibizaa ,sc4ibiza, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Red Hot Ibiza (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ibizab ,sc4ibiza, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Red Hot Ibiza (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ibizac ,sc4ibiza, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Red Hot Ibiza (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ibizad ,sc4ibiza, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Red Hot Ibiza (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ibizae ,sc4ibiza, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Red Hot Ibiza (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ibizaf ,sc4ibiza, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Red Hot Ibiza (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ibizag ,sc4ibiza, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Red Hot Ibiza (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ibizah ,sc4ibiza, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Red Hot Ibiza (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ibizai ,sc4ibiza, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Red Hot Ibiza (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// half size sound roms
// PR6905 SKY'S THE LIMIT PR6905 SKY'S THE LIMIT SOUNDS11
-GAMEL( 200?, sc4stl ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","The Sky's The Limit (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4stla ,sc4stl, sc4, sc4, sc4_state, sc4, ROT0, "BFM","The Sky's The Limit (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4stlb ,sc4stl, sc4, sc4, sc4_state, sc4, ROT0, "BFM","The Sky's The Limit (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4stlc ,sc4stl, sc4, sc4, sc4_state, sc4, ROT0, "BFM","The Sky's The Limit (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4stld ,sc4stl, sc4, sc4, sc4_state, sc4, ROT0, "BFM","The Sky's The Limit (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4stle ,sc4stl, sc4, sc4, sc4_state, sc4, ROT0, "BFM","The Sky's The Limit (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4stlf ,sc4stl, sc4, sc4, sc4_state, sc4, ROT0, "BFM","The Sky's The Limit (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4stlg ,sc4stl, sc4, sc4, sc4_state, sc4, ROT0, "BFM","The Sky's The Limit (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4stl ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","The Sky's The Limit (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4stla ,sc4stl, sc4, sc4, sc4_state, sc4, ROT0, "BFM","The Sky's The Limit (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4stlb ,sc4stl, sc4, sc4, sc4_state, sc4, ROT0, "BFM","The Sky's The Limit (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4stlc ,sc4stl, sc4, sc4, sc4_state, sc4, ROT0, "BFM","The Sky's The Limit (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4stld ,sc4stl, sc4, sc4, sc4_state, sc4, ROT0, "BFM","The Sky's The Limit (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4stle ,sc4stl, sc4, sc4, sc4_state, sc4, ROT0, "BFM","The Sky's The Limit (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4stlf ,sc4stl, sc4, sc4, sc4_state, sc4, ROT0, "BFM","The Sky's The Limit (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4stlg ,sc4stl, sc4, sc4, sc4_state, sc4, ROT0, "BFM","The Sky's The Limit (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR7055 SPLASH N GRAB GRAB SOUNDS
-GAMEL( 200?, sc4splgb ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Splash & Grab (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4splgba ,sc4splgb, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Splash & Grab (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4splgb ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Splash & Grab (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4splgba ,sc4splgb, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Splash & Grab (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2044 CASINO SPREAD YOUR BET SBET SOUNDS SPREAD YOUR BET
-GAMEL( 200?, sc4spred ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Spread Your Bet (Mazooma) (Scorpion 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4spred ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Spread Your Bet (Mazooma) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR6921 DIAMONDS AND RUBIES PR6921 DARB SOUNDS11
-GAMEL( 200?, sc4sdr ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Super Diamonds & Rubies (PR6921) (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4sdrb ,sc4sdr, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Super Diamonds & Rubies (PR6921) (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sdr ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Super Diamonds & Rubies (PR6921) (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sdrb ,sc4sdr, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Super Diamonds & Rubies (PR6921) (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR6921 DIAMONDS AND RUBIES SP98 PR6921 DARB SOUNDS11
-GAMEL( 200?, sc4sdra ,sc4sdr, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Super Diamonds & Rubies SP98 (PR6921) (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4sdrc ,sc4sdr, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Super Diamonds & Rubies SP98 (PR6921) (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sdra ,sc4sdr, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Super Diamonds & Rubies SP98 (PR6921) (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4sdrc ,sc4sdr, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Super Diamonds & Rubies SP98 (PR6921) (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// bad sound roms
// PR6906 CRAZY CASINO SP98 PR6906 CRCS SOUNDS11
-GAMEL( 200?, sc4crzcs ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Casino SP98 (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzcsa ,sc4crzcs, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Casino SP98 (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzcsb ,sc4crzcs, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Casino SP98 (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzcsc ,sc4crzcs, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Casino SP98 (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzcs ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Casino SP98 (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzcsa ,sc4crzcs, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Casino SP98 (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzcsb ,sc4crzcs, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Casino SP98 (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzcsc ,sc4crzcs, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Crazy Casino SP98 (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR7001 IT'S A CRAZY WORLD CRAZY WORLD SOUNDS
-GAMEL( 200?, sc4crzwl ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Crazy World (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzwla ,sc4crzwl, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Crazy World (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzwlb ,sc4crzwl, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Crazy World (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzwlc ,sc4crzwl, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Crazy World (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzwld ,sc4crzwl, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Crazy World (Mazooma) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzwle ,sc4crzwl, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Crazy World (Mazooma) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzwlf ,sc4crzwl, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Crazy World (Mazooma) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4crzwlg ,sc4crzwl, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Crazy World (Mazooma) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzwl ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Crazy World (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzwla ,sc4crzwl, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Crazy World (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzwlb ,sc4crzwl, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Crazy World (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzwlc ,sc4crzwl, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Crazy World (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzwld ,sc4crzwl, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Crazy World (Mazooma) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzwle ,sc4crzwl, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Crazy World (Mazooma) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzwlf ,sc4crzwl, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Crazy World (Mazooma) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4crzwlg ,sc4crzwl, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Crazy World (Mazooma) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// no sound roms
// PR6814 FOOTBALL CRAZY PR6814 FOOTBALL CRAZY SOUNDS
-GAMEL( 200?, sc4fbcrz ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Football Crazy (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fbcrza ,sc4fbcrz, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Football Crazy (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fbcrzb ,sc4fbcrz, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Football Crazy (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fbcrzc ,sc4fbcrz, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Football Crazy (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fbcrzd ,sc4fbcrz, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Football Crazy (Bellfruit) (Scorpion 4) (set 5)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fbcrze ,sc4fbcrz, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Football Crazy (Bellfruit) (Scorpion 4) (set 6)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fbcrzf ,sc4fbcrz, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Football Crazy (Bellfruit) (Scorpion 4) (set 7)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fbcrzg ,sc4fbcrz, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Football Crazy (Bellfruit) (Scorpion 4) (set 8)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fbcrzh ,sc4fbcrz, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Football Crazy (Bellfruit) (Scorpion 4) (set 9)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4fbcrzi ,sc4fbcrz, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Football Crazy (Bellfruit) (Scorpion 4) (set 10)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fbcrz ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Football Crazy (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fbcrza ,sc4fbcrz, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Football Crazy (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fbcrzb ,sc4fbcrz, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Football Crazy (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fbcrzc ,sc4fbcrz, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Football Crazy (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fbcrzd ,sc4fbcrz, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Football Crazy (Bellfruit) (Scorpion 4) (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fbcrze ,sc4fbcrz, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Football Crazy (Bellfruit) (Scorpion 4) (set 6)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fbcrzf ,sc4fbcrz, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Football Crazy (Bellfruit) (Scorpion 4) (set 7)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fbcrzg ,sc4fbcrz, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Football Crazy (Bellfruit) (Scorpion 4) (set 8)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fbcrzh ,sc4fbcrz, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Football Crazy (Bellfruit) (Scorpion 4) (set 9)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4fbcrzi ,sc4fbcrz, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Football Crazy (Bellfruit) (Scorpion 4) (set 10)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// no sound roms
// PR6916 FROOTY BOOTY PR6916 FROOTY BOOTY SOUNDS11 FROOTY BOOTY
-GAMEL( 200?, sc4frboo ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Frooty Booty (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4frbooa ,sc4frboo, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Frooty Booty (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4frboob ,sc4frboo, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Frooty Booty (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4frbooc ,sc4frboo, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Frooty Booty (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4frboo ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Frooty Booty (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4frbooa ,sc4frboo, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Frooty Booty (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4frboob ,sc4frboo, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Frooty Booty (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4frbooc ,sc4frboo, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Frooty Booty (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// no sound roms
// not a fruit machine? coin pusher?
-GAMEL( 200?, sc4gfev ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Gold Fever (Mazooma) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR20XX GOLD FEVER PUSHER GOLDFEVER SOUNDS GOLD FEVER
-GAMEL( 200?, sc4gfeva ,sc4gfev, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Gold Fever (Mazooma) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR2142 GOLD FEVER PUSHER USA GOLDFEVER SOUNDS GOLD FEVER
-GAMEL( 200?, sc4gfevb ,sc4gfev, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Gold Fever (Mazooma) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, sc4db ,sc4gfev, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Gold Fever (Mazooma) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR2142 GOLD FEVER PUSHER USA GOLDFEVER SOUNDS GOLD FEVER
+GAMEL( 200?, sc4gfev ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Gold Fever (Mazooma) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR20XX GOLD FEVER PUSHER GOLDFEVER SOUNDS GOLD FEVER
+GAMEL( 200?, sc4gfeva ,sc4gfev, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Gold Fever (Mazooma) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR2142 GOLD FEVER PUSHER USA GOLDFEVER SOUNDS GOLD FEVER
+GAMEL( 200?, sc4gfevb ,sc4gfev, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Gold Fever (Mazooma) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, sc4db ,sc4gfev, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Gold Fever (Mazooma) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // PR2142 GOLD FEVER PUSHER USA GOLDFEVER SOUNDS GOLD FEVER
/**********************************************************************************************************************************/
/* Games below are German versions, and seem to be build on very different code even when titles match other games */
@@ -49689,7 +49689,7 @@ DRIVER_INIT_MEMBER(sc4_state,sc4polen)
}
// PR7012 GERMAN POLE POSITION PR7012 SOUNDS
-GAMEL( 200?, sc4polen ,0, sc4_4reel, sc4, sc4_state, sc4polen, ROT0, "Nova","Pole Position (German) (PR7012, GPOS) (Nova) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4polen ,0, sc4_4reel, sc4, sc4_state, sc4polen, ROT0, "Nova","Pole Position (German) (PR7012, GPOS) (Nova) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -49700,7 +49700,7 @@ DRIVER_INIT_MEMBER(sc4_state,sc4valnv)
// PR7025 GERMAN VALHALLA 7025 VER1 SOUNDS
-GAMEL( 200?, sc4valnv ,0, sc4, sc4, sc4_state, sc4valnv, ROT0, "Nova","Valhalla (German) (PR7025, GVAL) (Nova) (Scorpion 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4valnv ,0, sc4, sc4, sc4_state, sc4valnv, ROT0, "Nova","Valhalla (German) (PR7025, GVAL) (Nova) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -49710,45 +49710,45 @@ DRIVER_INIT_MEMBER(sc4_state,sc4wernr)
}
// PR7027 GERMAN WERNER PR7027 SOUNDS V1
-GAMEL( 200?, sc4wernr ,0, sc4_4reel, sc4, sc4_state, sc4wernr, ROT0, "Nova","Werner (German) (PR7027, GWER) (Nova) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4wrnlt ,sc4wernr, sc4_4reel, sc4, sc4_state, sc4wernr, ROT0, "Nova","Werner (German) (PR7027, GWER) (Nova) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wernr ,0, sc4_4reel, sc4, sc4_state, sc4wernr, ROT0, "Nova","Werner (German) (PR7027, GWER) (Nova) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wrnlt ,sc4wernr, sc4_4reel, sc4, sc4_state, sc4wernr, ROT0, "Nova","Werner (German) (PR7027, GWER) (Nova) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// no sound roms
// PR2023.GERMAN BRIX...........PR2023,German BRIX,......PR2023 SOUNDS V1 (non-standard header)
-GAMEL( 200?, sc4brix ,0, sc4_4reel_alt, sc4, sc4_state, sc4brix, ROT0, "Nova","Brix (German) (Nova) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4brixa ,sc4brix, sc4_4reel_alt, sc4, sc4_state, sc4brix, ROT0, "Nova","Brix (German) (Nova) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4brixb ,sc4brix, sc4_4reel_alt, sc4, sc4_state, sc4brix, ROT0, "Nova","Brix (German) (Nova) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4brix ,0, sc4_4reel_alt, sc4, sc4_state, sc4brix, ROT0, "Nova","Brix (German) (Nova) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4brixa ,sc4brix, sc4_4reel_alt, sc4, sc4_state, sc4brix, ROT0, "Nova","Brix (German) (Nova) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4brixb ,sc4brix, sc4_4reel_alt, sc4, sc4_state, sc4brix, ROT0, "Nova","Brix (German) (Nova) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// both of these are incomplete
// P_O_E_T_N_M_E_ _R_0_1_B_A_K_G_L_ _._0_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _9_0_8_6_ _L_C_ _O_D_G_S_U_D_1_
-GAMEL( 200?, sc4bgold ,0, sc4, sc4, sc4_state, sc4, ROT0, "Nova","Black Gold (Nova) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // incomplete pairing
-GAMEL( 200?, sc4bgolda ,sc4bgold, sc4, sc4, sc4_state, sc4, ROT0, "Nova","Black Gold (Nova) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // incomplete pairing
+GAMEL( 200?, sc4bgold ,0, sc4, sc4, sc4_state, sc4, ROT0, "Nova","Black Gold (Nova) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // incomplete pairing
+GAMEL( 200?, sc4bgolda ,sc4bgold, sc4, sc4, sc4_state, sc4, ROT0, "Nova","Black Gold (Nova) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // incomplete pairing
// no identifiaction string
-GAMEL( 200?, sc4wag ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma/Nova","WIN-10-Gain (German) (Nova) (Scorpion 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4wag ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma/Nova","WIN-10-Gain (German) (Nova) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR6984 VIVA MEXICO 1.30 95008095 VIVA MEXICO PR6984
-GAMEL( 200?, sc4vmnv ,0, sc4, sc4, sc4_state, sc4, ROT0, "Nova","Viva Mexico (Nova) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4vmnv ,0, sc4, sc4, sc4_state, sc4, ROT0, "Nova","Viva Mexico (Nova) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR6984 VIVA MEXICO 1.00 95008095 VIVA MEXICO PR6984
-GAMEL( 200?, sc4vmnva ,sc4vmnv, sc4, sc4, sc4_state, sc4, ROT0, "Nova","Viva Mexico (Nova) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4vmnva ,sc4vmnv, sc4, sc4, sc4_state, sc4, ROT0, "Nova","Viva Mexico (Nova) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2055.GERMAN MONOPOLY... (non-standard header)
-GAMEL( 200?, sc4monod ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly (Mazooma) [German] (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4monoda ,sc4monod, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly (Mazooma) [German] (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4monodb ,sc4monod, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly (Mazooma) [German] (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4monod ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly (Mazooma) [German] (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4monoda ,sc4monod, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly (Mazooma) [German] (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4monodb ,sc4monod, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma","Monopoly (Mazooma) [German] (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// doesn't like the sound rom (not sure why, they look OK and have correct header)
// PR7044 GERMAN JIGGERY POKERY PR7044SND
-GAMEL( 200?, sc4jiggn ,0, sc4, sc4, sc4_state, sc4, ROT0, "Nova","Jiggery Pockery (German) (Nova) (Scorpion 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4jiggn ,0, sc4, sc4, sc4_state, sc4, ROT0, "Nova","Jiggery Pockery (German) (Nova) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR7076 GERMAN SINBAD2001 PR7076,German SINBAD2001, PR7076 SOUNDS V1
-GAMEL( 200?, sc4s2k ,0, sc4, sc4, sc4_state, sc4, ROT0, "Nova","Sinbad 2000 (German) (Nova) (Scorpion 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4s2k ,0, sc4, sc4, sc4_state, sc4, ROT0, "Nova","Sinbad 2000 (German) (Nova) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR2022 GERMAN CASHANOVA (not a standard string)
-GAMEL( 200?, sc4cashg ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma / Nova","Cashanova (German) (Mazooma / Nova) (Scorpion 4)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4cashg ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma / Nova","Cashanova (German) (Mazooma / Nova) (Scorpion 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
@@ -49766,19 +49766,19 @@ GAMEL( 200?, sc4cashg ,0, sc4, sc4, sc4_state, sc4, ROT0, "Mazooma /
/****************************************************************************************************************************************************************************************************************/
-GAMEL( 200?, ad4skill ,0, sc4_adder4, sc4, sc4_state, sc4, ROT0, "BFM","Skill Dice (BFM) (Scorpion 4 + Adder 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, ad4film ,0, sc4_adder4, sc4, sc4_state, sc4, ROT0, "BFM","Film Premiere (Video?) (Bellfruit) (Adder 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // the 68k vectors differ from usual, but it contains the expected strings for an Adder 4 title. No main program roms tho? :/
-GAMEL( 200?, ad4filma ,ad4film, sc4_adder4, sc4, sc4_state, sc4, ROT0, "BFM","Film Premiere (Video?) (Bellfruit) (Adder 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
-GAMEL( 200?, ad4ctl ,0, sc4_adder4, sc4, sc4_state, sc4, ROT0, "BFM","Cop The Lot Club (Video) (Bellfruit) (Adder 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, ad4ctla ,ad4ctl, sc4_adder4, sc4, sc4_state, sc4, ROT0, "BFM","Cop The Lot Club (Video) (Bellfruit) (Adder 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, ad4skill ,0, sc4_adder4, sc4, sc4_state, sc4, ROT0, "BFM","Skill Dice (BFM) (Scorpion 4 + Adder 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, ad4film ,0, sc4_adder4, sc4, sc4_state, sc4, ROT0, "BFM","Film Premiere (Video?) (Bellfruit) (Adder 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // the 68k vectors differ from usual, but it contains the expected strings for an Adder 4 title. No main program roms tho? :/
+GAMEL( 200?, ad4filma ,ad4film, sc4_adder4, sc4, sc4_state, sc4, ROT0, "BFM","Film Premiere (Video?) (Bellfruit) (Adder 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 ) // ^^
+GAMEL( 200?, ad4ctl ,0, sc4_adder4, sc4, sc4_state, sc4, ROT0, "BFM","Cop The Lot Club (Video) (Bellfruit) (Adder 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, ad4ctla ,ad4ctl, sc4_adder4, sc4, sc4_state, sc4, ROT0, "BFM","Cop The Lot Club (Video) (Bellfruit) (Adder 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR1036 CLUB COP THE LOT PR1036 CLOT SOUNDS11 COP THE LOT
// shows nothing on the VFD, but boots (to very little)
-GAMEL( 200?, sc4ctlcl ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Cop The Lot Club (Bellfruit) (Scorpion 4) (set 1)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ctlcla ,sc4ctlcl, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Cop The Lot Club (Bellfruit) (Scorpion 4) (set 2)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ctlcl ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Cop The Lot Club (Bellfruit) (Scorpion 4) (set 1)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ctlcla ,sc4ctlcl, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Cop The Lot Club (Bellfruit) (Scorpion 4) (set 2)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// PR1036 CLUB COP THE LOT COP THE LOT CLUB PR1036 CLOT SOUNDS11 COP THE LOT
// shows nothing, but alarms, do these go with the ad4 video roms?
-GAMEL( 200?, sc4ctlclb ,sc4ctlcl, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Cop The Lot Club (Bellfruit) (Scorpion 4) (set 3)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
-GAMEL( 200?, sc4ctlclc ,sc4ctlcl, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Cop The Lot Club (Bellfruit) (Scorpion 4) (set 4)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ctlclb ,sc4ctlcl, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Cop The Lot Club (Bellfruit) (Scorpion 4) (set 3)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4ctlclc ,sc4ctlcl, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Cop The Lot Club (Bellfruit) (Scorpion 4) (set 4)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
// not sure this is SC4, it crashes MAME and the addresses it accesses look strange
-GAMEL( 200?, sc4milro ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Millionaires Row (Scorpion 4?)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK, layout_bfm_sc4 )
+GAMEL( 200?, sc4milro ,0, sc4, sc4, sc4_state, sc4, ROT0, "BFM","Millionaires Row (Scorpion 4?)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK, layout_bfm_sc4 )
diff --git a/src/mame/drivers/bfm_sc5sw.c b/src/mame/drivers/bfm_sc5sw.c
index 0b456ecf25b..04fc77c13fc 100644
--- a/src/mame/drivers/bfm_sc5sw.c
+++ b/src/mame/drivers/bfm_sc5sw.c
@@ -13150,2303 +13150,2303 @@ DRIVER_INIT_MEMBER(bfm_sc5_state,sc5)
}
// PR2437 28 PLAYS LATER TEDL SOUNDS NITH
-GAME( 200?, sc5plays ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","28 Plays Later (Qps) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5playsa ,sc5plays, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","28 Plays Later (Qps) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5plays ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","28 Plays Later (Qps) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5playsa ,sc5plays, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","28 Plays Later (Qps) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3214 AWP ANT N DECS SNT GRAB THE ADS S5 PR3214 SNT GRAB THE ADS SOUNDS11 GRAB THE ADS S.SITE
-GAME( 200?, sc5adga ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Grab The Ads (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5adgaa ,sc5adga, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Grab The Ads (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5adgab ,sc5adga, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Grab The Ads (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5adgac ,sc5adga, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Grab The Ads (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5adgad ,sc5adga, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Grab The Ads (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5adgae ,sc5adga, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Grab The Ads (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5adga ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Grab The Ads (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5adgaa ,sc5adga, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Grab The Ads (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5adgab ,sc5adga, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Grab The Ads (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5adgac ,sc5adga, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Grab The Ads (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5adgad ,sc5adga, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Grab The Ads (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5adgae ,sc5adga, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Grab The Ads (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3214 AWP ANT N DECS GRAB THE CASH S5 PR3214 GRAB THE CASH SOUNDS11 GRAB THE CASH S.SITE
-GAME( 200?, sc5adgtc ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Grab The Cash (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5adgtca ,sc5adgtc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Grab The Cash (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5adgtc ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Grab The Cash (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5adgtca ,sc5adgtc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Grab The Cash (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// Z053 BANKJOB PR000053 BANKJOB 1 BANKJOB AWP (this numbering looks more like QPS)
-GAME( 200?, sc5bjob ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bank Job (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bjoba ,sc5bjob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bank Job (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bjobb ,sc5bjob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bank Job (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bjobc ,sc5bjob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bank Job (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bjobd ,sc5bjob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bank Job (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bjobe ,sc5bjob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bank Job (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bjobf ,sc5bjob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bank Job (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bjobg ,sc5bjob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bank Job (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bjobh ,sc5bjob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bank Job (Bellfruit) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bjobi ,sc5bjob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bank Job (Bellfruit) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bjob ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bank Job (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bjoba ,sc5bjob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bank Job (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bjobb ,sc5bjob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bank Job (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bjobc ,sc5bjob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bank Job (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bjobd ,sc5bjob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bank Job (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bjobe ,sc5bjob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bank Job (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bjobf ,sc5bjob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bank Job (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bjobg ,sc5bjob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bank Job (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bjobh ,sc5bjob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bank Job (Bellfruit) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bjobi ,sc5bjob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bank Job (Bellfruit) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2077KING X KING X MAZ BARKX SOUNDS KING X
-GAME( 200?, sc5bkngx ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Bar King X (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bkngxa ,sc5bkngx, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Bar King X (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bkngx ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Bar King X (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bkngxa ,sc5bkngx, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Bar King X (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3216 AWP BUCKANEERS SCORP5 PR3216 BUCKANEERS SOUNDS11 BUCKANEERS S.SITE
-GAME( 200?, sc5bucc ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Buccaneers (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bucca ,sc5bucc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Buccaneers (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5buccb ,sc5bucc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Buccaneers (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5buccc ,sc5bucc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Buccaneers (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5buccd ,sc5bucc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Buccaneers (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bucce ,sc5bucc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Buccaneers (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bucc ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Buccaneers (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bucca ,sc5bucc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Buccaneers (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5buccb ,sc5bucc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Buccaneers (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5buccc ,sc5bucc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Buccaneers (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5buccd ,sc5bucc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Buccaneers (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bucce ,sc5bucc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Buccaneers (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3205 AWP BULLSEYE POUNDS FOR POINTS S5 PR3205 BULLYS PNDSFPTS SOUNDS11 POUNDS FOR POINT S.SITE
-GAME( 200?, sc5bpfpb ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bullseye Pounds For Points (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bpfpba ,sc5bpfpb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bullseye Pounds For Points (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bpfpb ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bullseye Pounds For Points (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bpfpba ,sc5bpfpb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bullseye Pounds For Points (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1914 AWP THREE IN A BED BULLSEYE SCORP5 PR1914 THREE I A BED B SOUNDS11 3IAB BULLSEYE S.SITE
-GAME( 200?, sc5btiab ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bullseye Three In A Bed (Bellfruit) (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5btiab ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bullseye Three In A Bed (Bellfruit) (Scorpion 5)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1744 BULLSEYE TRIPLE BULLSEYE TRIPLE ARCADE PR1743 CASINO BULLSEYE SOUNDS11
-GAME( 200?, sc5btrip ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bullseye Triple (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5btripa ,sc5btrip, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bullseye Triple (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5btrip ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bullseye Triple (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5btripa ,sc5btrip, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bullseye Triple (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1743 CASINO BULLSEYE CASINO BULLSEYE ARCADE PR1743 CASINO BULLSEYE SOUNDS11
-GAME( 200?, sc5btripb ,sc5btrip, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bullseye Triple (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5btripc ,sc5btrip, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bullseye Triple (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5btripb ,sc5btrip, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bullseye Triple (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5btripc ,sc5btrip, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bullseye Triple (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2197 BUNNY MONEY BUNNY MONEY BUNN SOUNDS BUNNY MONEY
-GAME( 200?, sc5bunny ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Bunny Money (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bunnya ,sc5bunny, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Bunny Money (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bunny ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Bunny Money (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bunnya ,sc5bunny, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Bunny Money (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// Z054 CANNON PR000054 CANNON 1 CANNON AWP (looks more like a QPS header)
-GAME( 200?, sc5cbrun ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cannonball Run (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cbruna ,sc5cbrun, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cannonball Run (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cbrun ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cannonball Run (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cbruna ,sc5cbrun, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cannonball Run (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1681 181104 CASH FACTOR PR1681 CASH FACTOR 1 CASH FACTOR AWP
-GAME( 200?, sc5cfact ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cash Factor (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfacta ,sc5cfact, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cash Factor (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfact ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cash Factor (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfacta ,sc5cfact, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cash Factor (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3204 AWP CASH OF THE TITANS S5 PR3204 CASH TITANS SOUNDS11 CASH OF TITANS S.SITE
-GAME( 200?, sc5ctit ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cash Of The Titans (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ctita ,sc5ctit, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cash Of The Titans (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ctit ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cash Of The Titans (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ctita ,sc5ctit, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cash Of The Titans (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2343 CASH RAIDER RAID SOUNDS NITH
-GAME( 200?, sc5craid ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cash Raider (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5craida ,sc5craid, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cash Raider (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5craid ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cash Raider (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5craida ,sc5craid, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cash Raider (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1610 AWP CASH VEGAS PR1610 CASH VEGAS SOUNDS11 CASH VEGAS S.SITE
-GAME( 200?, sc5cvega ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cash Vegas (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cvegaa ,sc5cvega, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cash Vegas (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cvega ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cash Vegas (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cvegaa ,sc5cvega, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cash Vegas (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2210 CHOP 'N' CHANGE CHOP SOUNDS CHOP 'N' CHANGE
-GAME( 200?, sc5chopc ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Chop 'n' Change (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5chopca ,sc5chopc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Chop 'n' Change (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5chopc ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Chop 'n' Change (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5chopca ,sc5chopc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Chop 'n' Change (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2422 BINGO BAR7 S5 PR1433 BAR SEVENS SOUNDS11 BAR7 S.SITE
-GAME( 200?, sc5cbar7 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Classic Bar 7 (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cbar7a ,sc5cbar7, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Classic Bar 7 (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cbar7 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Classic Bar 7 (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cbar7a ,sc5cbar7, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Classic Bar 7 (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2495 CLUEDO CLUEDO SOUNDS CLUEDO
-GAME( 200?, sc5clu70 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Cluedo 70 (Qps) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5clu70a ,sc5clu70, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Cluedo 70 (Qps) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5clu70 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Cluedo 70 (Qps) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5clu70a ,sc5clu70, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Cluedo 70 (Qps) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2339 CLUEDO CASINO CLUEDO CASINO MAZ CCLU SOUNDS GET A CLUE
-GAME( 200?, sc5clcas ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cluedo Casino (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5clcasa ,sc5clcas, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cluedo Casino (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5clcas ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cluedo Casino (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5clcasa ,sc5clcas, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cluedo Casino (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3320 AWP CLUEDO NOTORIOUS S5 PR3320 CLUEDO SOUNDS11 CLUEDO NOTORIOUS S.SITE
-GAME( 200?, sc5clnot ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cluedo Notorious (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5clnota ,sc5clnot, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cluedo Notorious (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5clnotb ,sc5clnot, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cluedo Notorious (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5clnotc ,sc5clnot, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cluedo Notorious (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5clnotd ,sc5clnot, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cluedo Notorious (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5clnote ,sc5clnot, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cluedo Notorious (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5clnotf ,sc5clnot, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cluedo Notorious (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5clnotg ,sc5clnot, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cluedo Notorious (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5clnot ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cluedo Notorious (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5clnota ,sc5clnot, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cluedo Notorious (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5clnotb ,sc5clnot, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cluedo Notorious (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5clnotc ,sc5clnot, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cluedo Notorious (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5clnotd ,sc5clnot, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cluedo Notorious (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5clnote ,sc5clnot, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cluedo Notorious (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5clnotf ,sc5clnot, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cluedo Notorious (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5clnotg ,sc5clnot, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cluedo Notorious (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2332 CLUEDO THE USUAL SUSPECTS CTUS SOUNDS CLUEDO CTUL
-GAME( 200?, sc5clus ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cluedo The Usual Suspects (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5clusa ,sc5clus, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cluedo The Usual Suspects (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5clusb ,sc5clus, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cluedo The Usual Suspects (Mazooma) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5clusc ,sc5clus, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cluedo The Usual Suspects (Mazooma) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5clusd ,sc5clus, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cluedo The Usual Suspects (Mazooma) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cluse ,sc5clus, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cluedo The Usual Suspects (Mazooma) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5clusf ,sc5clus, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cluedo The Usual Suspects (Mazooma) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5clusg ,sc5clus, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cluedo The Usual Suspects (Mazooma) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5clush ,sc5clus, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cluedo The Usual Suspects (Mazooma) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5clusi ,sc5clus, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cluedo The Usual Suspects (Mazooma) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5clusj ,sc5clus, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cluedo The Usual Suspects (Mazooma) (Scorpion 5) (set 11)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5clusk ,sc5clus, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cluedo The Usual Suspects (Mazooma) (Scorpion 5) (set 12)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5clus ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cluedo The Usual Suspects (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5clusa ,sc5clus, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cluedo The Usual Suspects (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5clusb ,sc5clus, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cluedo The Usual Suspects (Mazooma) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5clusc ,sc5clus, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cluedo The Usual Suspects (Mazooma) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5clusd ,sc5clus, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cluedo The Usual Suspects (Mazooma) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cluse ,sc5clus, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cluedo The Usual Suspects (Mazooma) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5clusf ,sc5clus, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cluedo The Usual Suspects (Mazooma) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5clusg ,sc5clus, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cluedo The Usual Suspects (Mazooma) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5clush ,sc5clus, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cluedo The Usual Suspects (Mazooma) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5clusi ,sc5clus, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cluedo The Usual Suspects (Mazooma) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5clusj ,sc5clus, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cluedo The Usual Suspects (Mazooma) (Scorpion 5) (set 11)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5clusk ,sc5clus, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cluedo The Usual Suspects (Mazooma) (Scorpion 5) (set 12)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3317 AWP THE COLOUR OF MONEY S5 PR3317 COLOUR OF MONEY SOUNDS11 COLOUR OF MONEY S.SITE
-GAME( 200?, sc5colmo ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Colour Of Money (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5colmoa ,sc5colmo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Colour Of Money (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5colmob ,sc5colmo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Colour Of Money (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5colmoc ,sc5colmo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Colour Of Money (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5colmo ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Colour Of Money (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5colmoa ,sc5colmo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Colour Of Money (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5colmob ,sc5colmo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Colour Of Money (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5colmoc ,sc5colmo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Colour Of Money (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3502 AWP THE COLOUR OF MONEY NEW S5 PR3502 C OF M TEN SOUNDS11 COLOUR OF MONEY2 S.SITE
-GAME( 200?, sc5newcm ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Colour Of Money New (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5newcma ,sc5newcm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Colour Of Money New (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5newcmb ,sc5newcm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Colour Of Money New (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5newcmc ,sc5newcm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Colour Of Money New (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5newcmd ,sc5newcm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Colour Of Money New (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5newcme ,sc5newcm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Colour Of Money New (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5newcm ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Colour Of Money New (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5newcma ,sc5newcm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Colour Of Money New (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5newcmb ,sc5newcm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Colour Of Money New (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5newcmc ,sc5newcm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Colour Of Money New (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5newcmd ,sc5newcm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Colour Of Money New (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5newcme ,sc5newcm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Colour Of Money New (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3506 AWP COPS AND ROBBERS ON THE RUN S5 PR3506 C & R ON T RUN SOUNDS11 ON THE RUN S.SITE
-GAME( 200?, sc5crotr ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers On The Run (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5crotra ,sc5crotr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers On The Run (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5crotr ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers On The Run (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5crotra ,sc5crotr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers On The Run (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3427 CLUB COPS N ROBBERS SMASH N GRAB SCORP5 PR3421 CNR_SNG SOUNDS11 SMASH N GRAB CLUB
-GAME( 200?, sc5crsgc ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Smash 'n' Grab Club (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5crsgca ,sc5crsgc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Smash 'n' Grab Club (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5crsgc ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Smash 'n' Grab Club (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5crsgca ,sc5crsgc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Smash 'n' Grab Club (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3421 CLUB COPS N ROBBERS SMASH N GRAB SCORP5 PR3421 CNR_SNG SOUNDS11 SMASH N GRAB CLUB
-GAME( 200?, sc5crsgcb ,sc5crsgc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Smash 'n' Grab Club (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5crsgcc ,sc5crsgc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Smash 'n' Grab Club (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5crsgcb ,sc5crsgc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Smash 'n' Grab Club (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5crsgcc ,sc5crsgc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Smash 'n' Grab Club (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3421 CLUB COPS N ROBBERS SMASH N GRAB SCORP5 PR3421 CNR_SNG SOUNDS11 SMASH N GRAB CLUB (same ident as some of the sc5crsgc sets..)
-GAME( 200?, sc5crsgr ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Smash 'n' Grab (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5crsgra ,sc5crsgr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Smash 'n' Grab (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5crsgrb ,sc5crsgr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Smash 'n' Grab (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5crsgrc ,sc5crsgr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Smash 'n' Grab (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5crsgrd ,sc5crsgr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Smash 'n' Grab (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5crsgre ,sc5crsgr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Smash 'n' Grab (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5crsgrf ,sc5crsgr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Smash 'n' Grab (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5crsgrg ,sc5crsgr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Smash 'n' Grab (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5crsgr ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Smash 'n' Grab (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5crsgra ,sc5crsgr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Smash 'n' Grab (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5crsgrb ,sc5crsgr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Smash 'n' Grab (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5crsgrc ,sc5crsgr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Smash 'n' Grab (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5crsgrd ,sc5crsgr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Smash 'n' Grab (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5crsgre ,sc5crsgr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Smash 'n' Grab (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5crsgrf ,sc5crsgr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Smash 'n' Grab (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5crsgrg ,sc5crsgr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Smash 'n' Grab (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3521 AWP CORONATION STREET SCORP5 PR3521 CORRONATION ST SOUNDS11 CORONATION ST S.SITE
-GAME( 200?, sc5corst ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Coronation Street (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5corsta ,sc5corst, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Coronation Street (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5corstb ,sc5corst, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Coronation Street (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5corstc ,sc5corst, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Coronation Street (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5corst ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Coronation Street (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5corsta ,sc5corst, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Coronation Street (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5corstb ,sc5corst, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Coronation Street (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5corstc ,sc5corst, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Coronation Street (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3417 AWP CRAZYFRUIT AND NUTCASE SCORP5 PR3417 CF NUTCASE SOUNDS11 CF& NUTCASE S.SITE
-GAME( 200?, sc5cfnc ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruit & Nutcase (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfnca ,sc5cfnc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruit & Nutcase (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfnc ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruit & Nutcase (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfnca ,sc5cfnc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruit & Nutcase (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3436 CRAZY FRUITS COMMUNITY PARTY CRAZY FRUITS CP ARCADE PR3436 CF COMMUNITY P SOUNDS11
-GAME( 200?, sc5cfcp ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfcpa ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfcpb ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfcpc ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfcpd ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfcpe ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfcpf ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfcpg ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfcph ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfcpi ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfcpj ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 11)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfcpk ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 12)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfcpl ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 13)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfcpm ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 14)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfcpn ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 15)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfcpo ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 16)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfcpp ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 17)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfcpq ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 18)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfcpr ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 19)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfcps ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 20)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfcpt ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 21)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfcpu ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 22)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfcpv ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 23)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfcpw ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 24)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfcp ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfcpa ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfcpb ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfcpc ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfcpd ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfcpe ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfcpf ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfcpg ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfcph ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfcpi ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfcpj ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 11)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfcpk ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 12)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfcpl ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 13)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfcpm ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 14)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfcpn ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 15)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfcpo ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 16)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfcpp ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 17)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfcpq ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 18)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfcpr ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 19)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfcps ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 20)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfcpt ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 21)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfcpu ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 22)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfcpv ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 23)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfcpw ,sc5cfcp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Community Party (Bellfruit) (Scorpion 5) (set 24)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1359 CASINO CRAZY FRUITS PARTY PR1359 CRAZY F PARTY SOUNDS11
-GAME( 200?, sc5cfpt ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfpta ,sc5cfpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfptb ,sc5cfpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfptc ,sc5cfpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfptd ,sc5cfpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfpte ,sc5cfpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfptf ,sc5cfpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfptg ,sc5cfpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfpth ,sc5cfpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfpti ,sc5cfpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfpt ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfpta ,sc5cfpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfptb ,sc5cfpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfptc ,sc5cfpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfptd ,sc5cfpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfpte ,sc5cfpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfptf ,sc5cfpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfptg ,sc5cfpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfpth ,sc5cfpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfpti ,sc5cfpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1359 CASINO CRAZY FRUITS PARTY PR1359 TB CRAZY F P SOUNDS11
-GAME( 200?, sc5cfptj ,sc5cfpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 11)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfptk ,sc5cfpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 12)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfptl ,sc5cfpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 13)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfptm ,sc5cfpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 14)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfptj ,sc5cfpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 11)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfptk ,sc5cfpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 12)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfptl ,sc5cfpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 13)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfptm ,sc5cfpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 14)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1430 CASINO CRAZY FRUITS SIT DOWN PR1430 CRAZY F SIT D SOUNDS11
-GAME( 200?, sc5cfptn ,sc5cfpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 15)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfpto ,sc5cfpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 16)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfptp ,sc5cfpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 17)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfptq ,sc5cfpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 18)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfptr ,sc5cfpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 19)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cfpts ,sc5cfpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 20)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfptn ,sc5cfpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 15)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfpto ,sc5cfpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 16)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfptp ,sc5cfpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 17)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfptq ,sc5cfpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 18)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfptr ,sc5cfpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 19)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cfpts ,sc5cfpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Fruits Casino Party Time (Bellfruit) (Scorpion 5) (set 20)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3418 AWP CRAZY KNIGHTS SCORP5 PR3418 CRAZY KNIGHTS SOUNDS11 CRAZY KNIGHTS S.SITE
-GAME( 200?, sc5cknig ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Knights (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ckniga ,sc5cknig, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Knights (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cknigb ,sc5cknig, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Knights (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cknigc ,sc5cknig, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Knights (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cknig ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Knights (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ckniga ,sc5cknig, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Knights (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cknigb ,sc5cknig, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Knights (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cknigc ,sc5cknig, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Knights (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1741 CRAZY PAYS SCORP5 PR1741 CRAZY PAYS SOUNDS11 CRAZY PAYS S.SITE
-GAME( 200?, sc5cpays ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Pays (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cpaysa ,sc5cpays, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Pays (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cpays ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Pays (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cpaysa ,sc5cpays, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crazy Pays (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3409 AWP DEAL OR NO DEAL BANKERS BONUS S5 PR3409 BANKERS BONUS SOUNDS11 BANKERS BONUS S.SITE
-GAME( 200?, sc5dndbo ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndboa ,sc5dndbo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbob ,sc5dndbo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndboc ,sc5dndbo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbod ,sc5dndbo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndboe ,sc5dndbo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbof ,sc5dndbo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbog ,sc5dndbo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndboh ,sc5dndbo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndboi ,sc5dndbo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndboj ,sc5dndbo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 11)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbok ,sc5dndbo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 12)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbol ,sc5dndbo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 13)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbom ,sc5dndbo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 14)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbo ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndboa ,sc5dndbo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbob ,sc5dndbo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndboc ,sc5dndbo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbod ,sc5dndbo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndboe ,sc5dndbo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbof ,sc5dndbo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbog ,sc5dndbo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndboh ,sc5dndbo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndboi ,sc5dndbo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndboj ,sc5dndbo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 11)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbok ,sc5dndbo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 12)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbol ,sc5dndbo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 13)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbom ,sc5dndbo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Banker's Bonus (Bellfruit) (Scorpion 5) (set 14)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3068 CLUB BEAT THE BANKER BEAT THE BANKER CLUB PR3068 BEAT THE BANKER SOUNDS11
-GAME( 200?, sc5dndbl ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbla ,sc5dndbl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndblb ,sc5dndbl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndblc ,sc5dndbl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbld ,sc5dndbl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndble ,sc5dndbl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndblf ,sc5dndbl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndblg ,sc5dndbl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndblh ,sc5dndbl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbli ,sc5dndbl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndblj ,sc5dndbl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 11)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndblk ,sc5dndbl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 12)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbll ,sc5dndbl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 13)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndblm ,sc5dndbl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 14)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbln ,sc5dndbl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 15)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndblo ,sc5dndbl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 16)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndblp ,sc5dndbl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 17)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndblq ,sc5dndbl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 18)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndblr ,sc5dndbl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 19)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbls ,sc5dndbl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 20)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbl ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbla ,sc5dndbl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndblb ,sc5dndbl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndblc ,sc5dndbl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbld ,sc5dndbl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndble ,sc5dndbl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndblf ,sc5dndbl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndblg ,sc5dndbl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndblh ,sc5dndbl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbli ,sc5dndbl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndblj ,sc5dndbl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 11)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndblk ,sc5dndbl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 12)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbll ,sc5dndbl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 13)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndblm ,sc5dndbl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 14)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbln ,sc5dndbl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 15)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndblo ,sc5dndbl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 16)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndblp ,sc5dndbl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 17)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndblq ,sc5dndbl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 18)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndblr ,sc5dndbl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 19)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbls ,sc5dndbl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Club (Bellfruit) (Scorpion 5) (set 20)", MACHINE_IS_SKELETON_MECHANICAL )
// these contain no 'PROJECT NUMBER' ident string.
-GAME( 200?, sc5dndbq ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Deal Or No Deal Beat The Banker (Qps) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbqa ,sc5dndbq, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Deal Or No Deal Beat The Banker (Qps) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbqb ,sc5dndbq, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Deal Or No Deal Beat The Banker (Qps) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbqc ,sc5dndbq, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Deal Or No Deal Beat The Banker (Qps) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbqd ,sc5dndbq, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Deal Or No Deal Beat The Banker (Qps) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbqe ,sc5dndbq, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Deal Or No Deal Beat The Banker (Qps) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbq ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Deal Or No Deal Beat The Banker (Qps) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbqa ,sc5dndbq, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Deal Or No Deal Beat The Banker (Qps) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbqb ,sc5dndbq, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Deal Or No Deal Beat The Banker (Qps) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbqc ,sc5dndbq, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Deal Or No Deal Beat The Banker (Qps) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbqd ,sc5dndbq, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Deal Or No Deal Beat The Banker (Qps) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbqe ,sc5dndbq, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Deal Or No Deal Beat The Banker (Qps) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3503 AWP DEAL OR NO DEAL COPS AND ROBBERS S5 PR3503 DOND CNR SOUNDS11 DOND COPS S.SITE
-GAME( 200?, sc5dndcr ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndcra ,sc5dndcr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndcrb ,sc5dndcr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndcrc ,sc5dndcr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndcrd ,sc5dndcr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndcre ,sc5dndcr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndcr ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndcra ,sc5dndcr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndcrb ,sc5dndcr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndcrc ,sc5dndcr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndcrd ,sc5dndcr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndcre ,sc5dndcr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3545 AWP DESERT ISLAND DEAL S5 PR3545 DOND D I D SOUNDS11 DESERT ISLAND DL S.SITE
-GAME( 200?, sc5dndde ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Desert Island Deal (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddea ,sc5dndde, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Desert Island Deal (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddeb ,sc5dndde, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Desert Island Deal (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddec ,sc5dndde, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Desert Island Deal (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndded ,sc5dndde, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Desert Island Deal (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddee ,sc5dndde, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Desert Island Deal (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddef ,sc5dndde, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Desert Island Deal (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddeg ,sc5dndde, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Desert Island Deal (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndde ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Desert Island Deal (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddea ,sc5dndde, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Desert Island Deal (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddeb ,sc5dndde, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Desert Island Deal (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddec ,sc5dndde, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Desert Island Deal (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndded ,sc5dndde, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Desert Island Deal (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddee ,sc5dndde, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Desert Island Deal (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddef ,sc5dndde, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Desert Island Deal (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddeg ,sc5dndde, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Desert Island Deal (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3420 AWP DIAMOND DOND S5 PR3420 DIAMOND DOND SOUNDS11 DIAMOND DOND S.SITE
-GAME( 200?, sc5dnddi ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Diamond (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddia ,sc5dnddi, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Diamond (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddib ,sc5dnddi, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Diamond (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddic ,sc5dnddi, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Diamond (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddi ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Diamond (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddia ,sc5dnddi, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Diamond (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddib ,sc5dnddi, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Diamond (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddic ,sc5dnddi, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Diamond (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3313 AWP DEAL OR NO DEAL DOUBLE TAKE S5 PR3313 DOUBLE TAKE SOUNDS11 DOUBLE TAKE S.SITE
-GAME( 200?, sc5dnddt ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Double Take (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddta ,sc5dnddt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Double Take (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddtb ,sc5dnddt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Double Take (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddtc ,sc5dnddt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Double Take (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddtd ,sc5dnddt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Double Take (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddte ,sc5dnddt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Double Take (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddtf ,sc5dnddt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Double Take (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddt ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Double Take (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddta ,sc5dnddt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Double Take (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddtb ,sc5dnddt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Double Take (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddtc ,sc5dnddt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Double Take (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddtd ,sc5dnddt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Double Take (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddte ,sc5dnddt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Double Take (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddtf ,sc5dnddt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Double Take (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3316 AWP DOND DREAM OFFER S5 PR3316 DREAM OFFER SOUNDS11 DREAM OFFER S.SITE
-GAME( 200?, sc5dnddo ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Dream Offer (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddoa ,sc5dnddo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Dream Offer (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddob ,sc5dnddo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Dream Offer (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddoc ,sc5dnddo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Dream Offer (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddo ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Dream Offer (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddoa ,sc5dnddo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Dream Offer (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddob ,sc5dnddo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Dream Offer (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddoc ,sc5dnddo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Dream Offer (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3432 AWP DEAL OR NO DEAL FEELING LUCKY SCORP5 PR3309 FEELING LUCKY SOUNDS11 FEELING LUCKY S.SITE
-GAME( 200?, sc5dndfl ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Feeling Lucky (PR3432) (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndfla ,sc5dndfl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Feeling Lucky (PR3432) (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndfl ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Feeling Lucky (PR3432) (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndfla ,sc5dndfl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Feeling Lucky (PR3432) (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3309 AWP DEAL OR NO DEAL FEELING LUCKY SCORP5 PR3309 FEELING LUCKY SOUNDS11 FEELING LUCKY S.SITE
-GAME( 200?, sc5dndflb ,sc5dndfl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Feeling Lucky (PR3309) (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndflc ,sc5dndfl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Feeling Lucky (PR3309) (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndfld ,sc5dndfl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Feeling Lucky (PR3309) (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndfle ,sc5dndfl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Feeling Lucky (PR3309) (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndflb ,sc5dndfl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Feeling Lucky (PR3309) (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndflc ,sc5dndfl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Feeling Lucky (PR3309) (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndfld ,sc5dndfl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Feeling Lucky (PR3309) (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndfle ,sc5dndfl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Feeling Lucky (PR3309) (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3501 AWP DEAL OR NO DEAL GAME ON SCORP5 PR3501 DOND GAME ON SOUNDS11 DOND GAME ON S.SITE
-GAME( 200?, sc5dndgo ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Game On (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndgoa ,sc5dndgo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Game On (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndgo ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Game On (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndgoa ,sc5dndgo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Game On (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3310 AWP DEAL OR NO DEAL GOLD S5 PR3310 DOND GOLD SOUNDS11 DOND GOLD S.SITE
-GAME( 200?, sc5dndgl ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Gold (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndgla ,sc5dndgl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Gold (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndglb ,sc5dndgl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Gold (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndglc ,sc5dndgl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Gold (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndgld ,sc5dndgl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Gold (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndgle ,sc5dndgl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Gold (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndglf ,sc5dndgl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Gold (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndglg ,sc5dndgl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Gold (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndglh ,sc5dndgl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Gold (Bellfruit) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndgli ,sc5dndgl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Gold (Bellfruit) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndglj ,sc5dndgl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Gold (Bellfruit) (Scorpion 5) (set 11)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndglk ,sc5dndgl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Gold (Bellfruit) (Scorpion 5) (set 12)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndgl ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Gold (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndgla ,sc5dndgl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Gold (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndglb ,sc5dndgl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Gold (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndglc ,sc5dndgl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Gold (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndgld ,sc5dndgl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Gold (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndgle ,sc5dndgl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Gold (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndglf ,sc5dndgl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Gold (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndglg ,sc5dndgl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Gold (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndglh ,sc5dndgl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Gold (Bellfruit) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndgli ,sc5dndgl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Gold (Bellfruit) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndglj ,sc5dndgl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Gold (Bellfruit) (Scorpion 5) (set 11)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndglk ,sc5dndgl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Gold (Bellfruit) (Scorpion 5) (set 12)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3415 AWP DEAL OR NO DEAL LIVE THE DREAM S5 PR3415 LIVE THE DREAM SOUNDS11 LIVE THE DREAM S.SITE
-GAME( 200?, sc5dndld ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Live The Dream (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndlda ,sc5dndld, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Live The Dream (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndldb ,sc5dndld, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Live The Dream (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndldc ,sc5dndld, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Live The Dream (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndld ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Live The Dream (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndlda ,sc5dndld, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Live The Dream (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndldb ,sc5dndld, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Live The Dream (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndldc ,sc5dndld, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Live The Dream (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3407 AWP DEAL OR NO DEAL MAKE OR BREAK S5 PR3407 MAKE OR BREAK SOUNDS11 MAKE OR BREAK S.SITE
-GAME( 200?, sc5dndmb ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Make Or Break (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndmba ,sc5dndmb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Make Or Break (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndmbb ,sc5dndmb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Make Or Break (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndmbc ,sc5dndmb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Make Or Break (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndmbd ,sc5dndmb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Make Or Break (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndmbe ,sc5dndmb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Make Or Break (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndmbf ,sc5dndmb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Make Or Break (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndmbg ,sc5dndmb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Make Or Break (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndmbh ,sc5dndmb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Make Or Break (Bellfruit) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndmbi ,sc5dndmb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Make Or Break (Bellfruit) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndmbj ,sc5dndmb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Make Or Break (Bellfruit) (Scorpion 5) (set 11)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndmbk ,sc5dndmb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Make Or Break (Bellfruit) (Scorpion 5) (set 12)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndmb ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Make Or Break (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndmba ,sc5dndmb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Make Or Break (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndmbb ,sc5dndmb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Make Or Break (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndmbc ,sc5dndmb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Make Or Break (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndmbd ,sc5dndmb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Make Or Break (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndmbe ,sc5dndmb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Make Or Break (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndmbf ,sc5dndmb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Make Or Break (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndmbg ,sc5dndmb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Make Or Break (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndmbh ,sc5dndmb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Make Or Break (Bellfruit) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndmbi ,sc5dndmb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Make Or Break (Bellfruit) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndmbj ,sc5dndmb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Make Or Break (Bellfruit) (Scorpion 5) (set 11)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndmbk ,sc5dndmb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Make Or Break (Bellfruit) (Scorpion 5) (set 12)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3411 AWP MEGA DEAL OR NO DEAL S5 PR3411 MEGA DOND SOUNDS11 MEGA DOND S.SITE
-GAME( 200?, sc5dndmd ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Mega Deal Or No Deal (PR3411) (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndmda ,sc5dndmd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Mega Deal Or No Deal (PR3411) (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndmdd ,sc5dndmd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Mega Deal Or No Deal (PR3411) (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndmde ,sc5dndmd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Mega Deal Or No Deal (PR3411) (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndmdf ,sc5dndmd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Mega Deal Or No Deal (PR3411) (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndmdi ,sc5dndmd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Mega Deal Or No Deal (PR3411) (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndmdj ,sc5dndmd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Mega Deal Or No Deal (PR3411) (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndmdk ,sc5dndmd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Mega Deal Or No Deal (PR3411) (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndmd ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Mega Deal Or No Deal (PR3411) (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndmda ,sc5dndmd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Mega Deal Or No Deal (PR3411) (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndmdd ,sc5dndmd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Mega Deal Or No Deal (PR3411) (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndmde ,sc5dndmd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Mega Deal Or No Deal (PR3411) (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndmdf ,sc5dndmd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Mega Deal Or No Deal (PR3411) (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndmdi ,sc5dndmd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Mega Deal Or No Deal (PR3411) (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndmdj ,sc5dndmd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Mega Deal Or No Deal (PR3411) (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndmdk ,sc5dndmd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Mega Deal Or No Deal (PR3411) (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3496 AWP MEGA DEAL OR NO DEAL S5 PR3411 MEGA DOND SOUNDS11 MEGA DOND S.SITE
-GAME( 200?, sc5dndmdb ,sc5dndmd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Mega Deal Or No Deal (PR3496) (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndmdc ,sc5dndmd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Mega Deal Or No Deal (PR3496) (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndmdg ,sc5dndmd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Mega Deal Or No Deal (PR3496) (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndmdh ,sc5dndmd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Mega Deal Or No Deal (PR3496) (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndmdb ,sc5dndmd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Mega Deal Or No Deal (PR3496) (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndmdc ,sc5dndmd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Mega Deal Or No Deal (PR3496) (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndmdg ,sc5dndmd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Mega Deal Or No Deal (PR3496) (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndmdh ,sc5dndmd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Mega Deal Or No Deal (PR3496) (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3404 AWP DEAL OR NO DEAL PLAY IT AGAIN SCORP5 PR3404 PLAY IT AGAIN SOUNDS11 PLAY IT AGAIN S.SITE
-GAME( 200?, sc5dndpa ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Play It Again (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndpaa ,sc5dndpa, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Play It Again (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndpab ,sc5dndpa, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Play It Again (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndpac ,sc5dndpa, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Play It Again (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndpa ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Play It Again (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndpaa ,sc5dndpa, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Play It Again (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndpab ,sc5dndpa, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Play It Again (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndpac ,sc5dndpa, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Play It Again (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3505 AWP DEAL OR NO DEAL PLAY THE GAME S5 PR3505 PLAY THE GAME SOUNDS11 PLAY THE GAME S.SITE
-GAME( 200?, sc5ddptg ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Play The Game (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ddptga ,sc5ddptg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Play The Game (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ddptgb ,sc5ddptg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Play The Game (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ddptgc ,sc5ddptg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Play The Game (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ddptg ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Play The Game (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ddptga ,sc5ddptg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Play The Game (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ddptgb ,sc5ddptg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Play The Game (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ddptgc ,sc5ddptg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Play The Game (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3303 AWP DEAL OR NO DEAL THE PLAYERS CHOICE SCORP5 PR3303 PLAYERS CHOICE SOUNDS11 PLAYERS CHOICE S.SITE
-GAME( 200?, sc5ddply ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Player's Choice (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ddplya ,sc5ddply, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Player's Choice (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ddply ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Player's Choice (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ddplya ,sc5ddply, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Player's Choice (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3419 AWP DOND ROAD TO RICHES SCORP5 PR3419 ROAD TO RICHES SOUNDS11 ROAD TO RICHES S.SITE
-GAME( 200?, sc5dndrr ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Road To Riches (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndrra ,sc5dndrr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Road To Riches (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndrrb ,sc5dndrr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Road To Riches (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndrrc ,sc5dndrr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Road To Riches (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndrrd ,sc5dndrr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Road To Riches (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndrre ,sc5dndrr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Road To Riches (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndrr ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Road To Riches (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndrra ,sc5dndrr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Road To Riches (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndrrb ,sc5dndrr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Road To Riches (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndrrc ,sc5dndrr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Road To Riches (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndrrd ,sc5dndrr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Road To Riches (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndrre ,sc5dndrr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Road To Riches (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3239 AWP SIMPLY DEAL OR NO DEAL SCORP5 PR3219 SIMPLY DOND SOUNDS11 SIMPLY DOND S.SITE
-GAME( 200?, sc5dndsi ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Simply Deal Or No Deal (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndsia ,sc5dndsi, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Simply Deal Or No Deal (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndsib ,sc5dndsi, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Simply Deal Or No Deal (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndsic ,sc5dndsi, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Simply Deal Or No Deal (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndsid ,sc5dndsi, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Simply Deal Or No Deal (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndsi ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Simply Deal Or No Deal (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndsia ,sc5dndsi, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Simply Deal Or No Deal (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndsib ,sc5dndsi, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Simply Deal Or No Deal (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndsic ,sc5dndsi, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Simply Deal Or No Deal (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndsid ,sc5dndsi, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Simply Deal Or No Deal (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3405 AWP DEAL OR NO DEAL THE BANKER RINGS TWICE S5 PR3405 DOND BANKER SOUNDS11 DOND THE BANKER S.SITE
-GAME( 200?, sc5dndrt ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Banker Rings Twice (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndrta ,sc5dndrt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Banker Rings Twice (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndrtb ,sc5dndrt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Banker Rings Twice (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndrtc ,sc5dndrt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Banker Rings Twice (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndrtd ,sc5dndrt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Banker Rings Twice (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndrte ,sc5dndrt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Banker Rings Twice (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndrt ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Banker Rings Twice (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndrta ,sc5dndrt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Banker Rings Twice (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndrtb ,sc5dndrt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Banker Rings Twice (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndrtc ,sc5dndrt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Banker Rings Twice (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndrtd ,sc5dndrt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Banker Rings Twice (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndrte ,sc5dndrt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Banker Rings Twice (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3412 AWP DEAL OR NO DEAL THE PERFECT DEAL SCORP5 PR3412 PERFECT DEAL SOUNDS11 THE PERFECT DEAL S.SITE
-GAME( 200?, sc5dndpd ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Deal (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndpda ,sc5dndpd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Deal (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndpdb ,sc5dndpd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Deal (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndpdc ,sc5dndpd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Deal (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndpdd ,sc5dndpd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Deal (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndpde ,sc5dndpd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Deal (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndpd ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Deal (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndpda ,sc5dndpd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Deal (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndpdb ,sc5dndpd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Deal (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndpdc ,sc5dndpd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Deal (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndpdd ,sc5dndpd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Deal (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndpde ,sc5dndpd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Deal (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3303 AWP DEAL OR NO DEAL THE PLAYERS CHOICE SCORP5 PR3303 PLAYERS CHOICE SOUNDS11 PLAYERS CHOICE S.SITE
-GAME( 200?, sc5dndpc ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Players Choice (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndpca ,sc5dndpc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Players Choice (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndpc ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Players Choice (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndpca ,sc5dndpc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Players Choice (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3416 AWP DEAL OR NO DEAL THINK BIG SCORP5 PR3416 DOND THINK BIG SOUNDS11 DOND THINK BIG S.SITE
-GAME( 200?, sc5dndtb ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Think Big (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndtba ,sc5dndtb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Think Big (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndtb ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Think Big (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndtba ,sc5dndtb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Think Big (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2323 DEVIL OF A DEAL DOAD SOUNDS DEVIL OF A DEAL S.SITE
-GAME( 200?, sc5devil ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Devil Of A Deal (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5devila ,sc5devil, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Devil Of A Deal (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5devilb ,sc5devil, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Devil Of A Deal (Mazooma) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5devilc ,sc5devil, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Devil Of A Deal (Mazooma) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5devil ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Devil Of A Deal (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5devila ,sc5devil, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Devil Of A Deal (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5devilb ,sc5devil, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Devil Of A Deal (Mazooma) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5devilc ,sc5devil, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Devil Of A Deal (Mazooma) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3007 AWP DRAC PACK SCORP5 PR3007 DRACPACK SOUNDS11 DRAC PACK S.SITE
-GAME( 200?, sc5dracp ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Drac Pack (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dracpa ,sc5dracp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Drac Pack (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dracp ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Drac Pack (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dracpa ,sc5dracp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Drac Pack (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3306 AWP FAMILY GUY BOOZE HOUND SCORP5 PR3306 BOOZE HOUND SOUNDS11 BOOZE HOUND S.SITE
-GAME( 200?, sc5fgbh ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy Booze Hound (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5fgbha ,sc5fgbh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy Booze Hound (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5fgbhb ,sc5fgbh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy Booze Hound (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5fgbhc ,sc5fgbh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy Booze Hound (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5fgbh ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy Booze Hound (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5fgbha ,sc5fgbh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy Booze Hound (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5fgbhb ,sc5fgbh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy Booze Hound (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5fgbhc ,sc5fgbh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy Booze Hound (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3301 AWP FAMILY GUY GRIFFIN PLUMBING S5 PR3301 GRIFFIN PLUMB SOUNDS11 GRIFFIN PLUMBING S.SITE
-GAME( 200?, sc5fggp ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy Griffin Plumbing (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5fggpa ,sc5fggp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy Griffin Plumbing (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5fggpb ,sc5fggp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy Griffin Plumbing (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5fggpc ,sc5fggp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy Griffin Plumbing (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5fggpd ,sc5fggp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy Griffin Plumbing (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5fggpe ,sc5fggp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy Griffin Plumbing (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5fggpf ,sc5fggp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy Griffin Plumbing (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5fggpg ,sc5fggp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy Griffin Plumbing (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5fggp ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy Griffin Plumbing (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5fggpa ,sc5fggp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy Griffin Plumbing (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5fggpb ,sc5fggp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy Griffin Plumbing (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5fggpc ,sc5fggp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy Griffin Plumbing (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5fggpd ,sc5fggp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy Griffin Plumbing (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5fggpe ,sc5fggp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy Griffin Plumbing (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5fggpf ,sc5fggp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy Griffin Plumbing (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5fggpg ,sc5fggp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy Griffin Plumbing (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
// PR IT FAST CASH FASTCASHSOUND FAST CASH
-GAME( 200?, sc5fast ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Fast Cash (Qps) (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5fast ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Fast Cash (Qps) (Scorpion 5)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3061 CLUB FIGHT NIGHT FIGHT NIGHT CLUB PR3061 CLUB FIGHT NIGHT SOUNDS11 CLUB FIGHT NIGHT
-GAME( 200?, sc5fnclb ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Fight Night Club (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5fnclba ,sc5fnclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Fight Night Club (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5fnclbb ,sc5fnclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Fight Night Club (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5fnclbc ,sc5fnclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Fight Night Club (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5fnclbd ,sc5fnclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Fight Night Club (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5fnclbe ,sc5fnclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Fight Night Club (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5fnclb ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Fight Night Club (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5fnclba ,sc5fnclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Fight Night Club (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5fnclbb ,sc5fnclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Fight Night Club (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5fnclbc ,sc5fnclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Fight Night Club (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5fnclbd ,sc5fnclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Fight Night Club (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5fnclbe ,sc5fnclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Fight Night Club (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1939 FIRE N DICE PR1919 FIRE N DICE SOUNDS11 FIRE N DICE S.SITE
-GAME( 200?, sc5fdice ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Fire 'n' Dice (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5fdicea ,sc5fdice, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Fire 'n' Dice (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5fdice ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Fire 'n' Dice (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5fdicea ,sc5fdice, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Fire 'n' Dice (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1602 AWP FIRESTARTER SCORP5 PR1602 FIRESTARTER SOUNDS11 FIRESTARTER S.SITE
-GAME( 200?, sc5fires ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Firestarter (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5firesa ,sc5fires, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Firestarter (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5firesb ,sc5fires, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Firestarter (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5firesc ,sc5fires, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Firestarter (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5fires ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Firestarter (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5firesa ,sc5fires, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Firestarter (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5firesb ,sc5fires, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Firestarter (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5firesc ,sc5fires, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Firestarter (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2418 FLASH THE CASH FLASHCASH SOUNDS FLASHTHECASH
-GAME( 200?, sc5ftcas ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Flash The Cash (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ftcasa ,sc5ftcas, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Flash The Cash (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ftcas ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Flash The Cash (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ftcasa ,sc5ftcas, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Flash The Cash (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2319 FRUIT LOOP FLOOP SOUNDS FRUIT LOOP
-GAME( 200?, sc5floop ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Fruit Loops (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5floopa ,sc5floop, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Fruit Loops (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5floop ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Fruit Loops (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5floopa ,sc5floop, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Fruit Loops (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1404 GET RICH QUICK PR1404 GET RICH QUICK SOUNDS11
-GAME( 200?, sc5grq ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Get Rich Quick (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5grqa ,sc5grq, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Get Rich Quick (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5grqb ,sc5grq, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Get Rich Quick (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5grqc ,sc5grq, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Get Rich Quick (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5grq ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Get Rich Quick (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5grqa ,sc5grq, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Get Rich Quick (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5grqb ,sc5grq, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Get Rich Quick (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5grqc ,sc5grq, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Get Rich Quick (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1403 GOLD FEVER PR1403 GOLD FEVER SOUNDS11
-GAME( 200?, sc5gldfv ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Fever (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gldfva ,sc5gldfv, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Fever (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gldfvb ,sc5gldfv, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Fever (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gldfvc ,sc5gldfv, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Fever (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gldfvd ,sc5gldfv, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Fever (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gldfve ,sc5gldfv, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Fever (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gldfvf ,sc5gldfv, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Fever (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gldfvg ,sc5gldfv, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Fever (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gldfv ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Fever (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gldfva ,sc5gldfv, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Fever (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gldfvb ,sc5gldfv, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Fever (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gldfvc ,sc5gldfv, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Fever (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gldfvd ,sc5gldfv, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Fever (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gldfve ,sc5gldfv, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Fever (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gldfvf ,sc5gldfv, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Fever (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gldfvg ,sc5gldfv, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Fever (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3410 AWP GOLDEN GOALS SCORP5 PR3410 GOLDEN GOALS SOUNDS11 GOLDEN GOALS S.SITE
-GAME( 200?, sc5gldgo ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Golden Goals (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gldgoa ,sc5gldgo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Golden Goals (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gldgo ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Golden Goals (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gldgoa ,sc5gldgo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Golden Goals (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2203 GOLDEN SPINNER GSPINSND (top box?)
-GAME( 200?, sc5gldsp ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Spinner (PR2203) (Mazooma) (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gldsp ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Spinner (PR2203) (Mazooma) (Scorpion 5)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2546 GOLDEN SPINNER Bingo Version 011 GSPINSND GOLDEN SPINNER
-GAME( 200?, sc5gldspa ,sc5gldsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Spinner Bingo (011) (PR2546) (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gldspb ,sc5gldsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Spinner Bingo (011) (PR2546) (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gldspc ,sc5gldsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Spinner Bingo (011) (PR2546) (Mazooma) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gldspe ,sc5gldsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Spinner Bingo (011) (PR2546) (Mazooma) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gldspg ,sc5gldsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Spinner Bingo (011) (PR2546) (Mazooma) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gldspi ,sc5gldsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Spinner Bingo (011) (PR2546) (Mazooma) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gldspj ,sc5gldsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Spinner Bingo (011) (PR2546) (Mazooma) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gldspk ,sc5gldsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Spinner Bingo (011) (PR2546) (Mazooma) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gldspl ,sc5gldsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Spinner Bingo (011) (PR2546) (Mazooma) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gldspm ,sc5gldsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Spinner Bingo (011) (PR2546) (Mazooma) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gldspo ,sc5gldsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Spinner Bingo (011) (PR2546) (Mazooma) (Scorpion 5) (set 11)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gldspa ,sc5gldsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Spinner Bingo (011) (PR2546) (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gldspb ,sc5gldsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Spinner Bingo (011) (PR2546) (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gldspc ,sc5gldsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Spinner Bingo (011) (PR2546) (Mazooma) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gldspe ,sc5gldsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Spinner Bingo (011) (PR2546) (Mazooma) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gldspg ,sc5gldsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Spinner Bingo (011) (PR2546) (Mazooma) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gldspi ,sc5gldsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Spinner Bingo (011) (PR2546) (Mazooma) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gldspj ,sc5gldsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Spinner Bingo (011) (PR2546) (Mazooma) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gldspk ,sc5gldsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Spinner Bingo (011) (PR2546) (Mazooma) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gldspl ,sc5gldsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Spinner Bingo (011) (PR2546) (Mazooma) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gldspm ,sc5gldsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Spinner Bingo (011) (PR2546) (Mazooma) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gldspo ,sc5gldsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Spinner Bingo (011) (PR2546) (Mazooma) (Scorpion 5) (set 11)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2546 GOLDEN SPINNER Arcade Version 061 GSPINSND GOLDEN SPINNER
-GAME( 200?, sc5gldspd ,sc5gldsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Spinner Arcade (061) (PR2546) (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gldspf ,sc5gldsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Spinner Arcade (061) (PR2546) (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gldsph ,sc5gldsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Spinner Arcade (061) (PR2546) (Mazooma) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gldspn ,sc5gldsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Spinner Arcade (061) (PR2546) (Mazooma) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gldspp ,sc5gldsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Spinner Arcade (061) (PR2546) (Mazooma) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gldspd ,sc5gldsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Spinner Arcade (061) (PR2546) (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gldspf ,sc5gldsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Spinner Arcade (061) (PR2546) (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gldsph ,sc5gldsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Spinner Arcade (061) (PR2546) (Mazooma) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gldspn ,sc5gldsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Spinner Arcade (061) (PR2546) (Mazooma) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gldspp ,sc5gldsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Spinner Arcade (061) (PR2546) (Mazooma) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
// Z052 GRANDMASTER PR000052 GRANDMASTER 1 GRANDMASTER AWP (looks like a QPS header)
-GAME( 200?, sc5gmclb ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Grand Master Cash (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gmclba ,sc5gmclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Grand Master Cash (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gmclbb ,sc5gmclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Grand Master Cash (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gmclbc ,sc5gmclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Grand Master Cash (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gmclb ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Grand Master Cash (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gmclba ,sc5gmclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Grand Master Cash (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gmclbb ,sc5gmclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Grand Master Cash (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gmclbc ,sc5gmclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Grand Master Cash (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2318 HI ROLLER HIROLL SOUNDS HIGH ROLLER
-GAME( 200?, sc5hirol ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","High Roller (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hirola ,sc5hirol, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","High Roller (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hirolb ,sc5hirol, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","High Roller (Mazooma) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hirolc ,sc5hirol, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","High Roller (Mazooma) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hirold ,sc5hirol, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","High Roller (Mazooma) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hirole ,sc5hirol, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","High Roller (Mazooma) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hirol ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","High Roller (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hirola ,sc5hirol, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","High Roller (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hirolb ,sc5hirol, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","High Roller (Mazooma) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hirolc ,sc5hirol, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","High Roller (Mazooma) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hirold ,sc5hirol, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","High Roller (Mazooma) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hirole ,sc5hirol, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","High Roller (Mazooma) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1405 THE HULK PR1405 THE HULK SOUNDS11
-GAME( 200?, sc5hulk ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Hulk (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hulka ,sc5hulk, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Hulk (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hulkb ,sc5hulk, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Hulk (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hulkc ,sc5hulk, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Hulk (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hulkd ,sc5hulk, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Hulk (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hulke ,sc5hulk, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Hulk (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hulkf ,sc5hulk, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Hulk (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hulkg ,sc5hulk, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Hulk (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hulkh ,sc5hulk, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Hulk (Bellfruit) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hulki ,sc5hulk, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Hulk (Bellfruit) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hulk ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Hulk (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hulka ,sc5hulk, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Hulk (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hulkb ,sc5hulk, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Hulk (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hulkc ,sc5hulk, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Hulk (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hulkd ,sc5hulk, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Hulk (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hulke ,sc5hulk, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Hulk (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hulkf ,sc5hulk, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Hulk (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hulkg ,sc5hulk, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Hulk (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hulkh ,sc5hulk, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Hulk (Bellfruit) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hulki ,sc5hulk, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Hulk (Bellfruit) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2316 IT'S A BULLSEYE ITSBULLSEYE SOUNDS IT'S A BULLSEYE
-GAME( 200?, sc5iab ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","It's A Bullseye (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5iaba ,sc5iab, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","It's A Bullseye (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5iab ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","It's A Bullseye (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5iaba ,sc5iab, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","It's A Bullseye (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2450 ITALIAN JOB BTDO ITLY SOUNDS NITH
-GAME( 200?, sc5ijbdo ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Italian Job - Blow The Doors Off (Qps) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ijbdoa ,sc5ijbdo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Italian Job - Blow The Doors Off (Qps) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ijbdob ,sc5ijbdo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Italian Job - Blow The Doors Off (Qps) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ijbdoc ,sc5ijbdo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Italian Job - Blow The Doors Off (Qps) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ijbdo ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Italian Job - Blow The Doors Off (Qps) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ijbdoa ,sc5ijbdo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Italian Job - Blow The Doors Off (Qps) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ijbdob ,sc5ijbdo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Italian Job - Blow The Doors Off (Qps) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ijbdoc ,sc5ijbdo, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Italian Job - Blow The Doors Off (Qps) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2077KING X KING X MAZ BARKX SOUNDS KING X 3
-GAME( 200?, sc5kingx ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","King X (PR2077) (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5kingxa ,sc5kingx, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","King X (PR2077) (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5kingx ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","King X (PR2077) (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5kingxa ,sc5kingx, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","King X (PR2077) (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2336KING X KING X MAZ BARKX SOUNDS KING X 3P
-GAME( 200?, sc5kingxc ,sc5kingx, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","King X 3P (PR2336) (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5kingxe ,sc5kingx, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","King X 3P (PR2336) (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5kingxc ,sc5kingx, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","King X 3P (PR2336) (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5kingxe ,sc5kingx, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","King X 3P (PR2336) (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2279 KING X TRIPLE BARKX SOUNDS + +
-GAME( 200?, sc5kingxb ,sc5kingx, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","King X Triple (PR2279) (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5kingxd ,sc5kingx, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","King X Triple (PR2279) (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5kingxb ,sc5kingx, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","King X Triple (PR2279) (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5kingxd ,sc5kingx, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","King X Triple (PR2279) (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2344 TOSSTHEMONKEY TOSTM SOUNDS TOSS THE MONKEY
-GAME( 200?, sc5monky ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monkey Business / Toss The Monkey (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5monkya ,sc5monky, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monkey Business / Toss The Monkey (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5monky ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monkey Business / Toss The Monkey (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5monkya ,sc5monky, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monkey Business / Toss The Monkey (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3431 AWP MONOPOLY BOOM OR BUST CLASSIC S5 PR3307 MPOLY BOOM OR B SOUNDS11 BOOM OR BUST S.SITE
-GAME( 200?, sc5mobob ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Boom Or Bust Classic (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5moboba ,sc5mobob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Boom Or Bust Classic (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mobobd ,sc5mobob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Boom Or Bust Classic (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mobobe ,sc5mobob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Boom Or Bust Classic (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mobob ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Boom Or Bust Classic (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5moboba ,sc5mobob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Boom Or Bust Classic (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mobobd ,sc5mobob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Boom Or Bust Classic (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mobobe ,sc5mobob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Boom Or Bust Classic (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3307 AWP MONOPOLY BOOM OR BUST S5 PR3307 MPOLY BOOM OR B SOUNDS11 BOOM OR BUST S.SITE
-GAME( 200?, sc5mobobb ,sc5mobob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Boom Or Bust (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mobobc ,sc5mobob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Boom Or Bust (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mobobf ,sc5mobob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Boom Or Bust (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mobobg ,sc5mobob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Boom Or Bust (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mobobh ,sc5mobob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Boom Or Bust (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mobobi ,sc5mobob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Boom Or Bust (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mobobb ,sc5mobob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Boom Or Bust (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mobobc ,sc5mobob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Boom Or Bust (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mobobf ,sc5mobob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Boom Or Bust (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mobobg ,sc5mobob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Boom Or Bust (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mobobh ,sc5mobob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Boom Or Bust (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mobobi ,sc5mobob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Boom Or Bust (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3504 AWP MONOPOLY AUCTION SCORP5 PR3504 MPOLY AUCTION SOUNDS11 MONO AUCTION S.SITE
-GAME( 200?, sc5mogta ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Go To Auction (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mogtaa ,sc5mogta, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Go To Auction (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mogtab ,sc5mogta, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Go To Auction (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mogtac ,sc5mogta, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Go To Auction (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mogtad ,sc5mogta, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Go To Auction (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mogtae ,sc5mogta, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Go To Auction (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mogta ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Go To Auction (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mogtaa ,sc5mogta, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Go To Auction (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mogtab ,sc5mogta, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Go To Auction (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mogtac ,sc5mogta, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Go To Auction (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mogtad ,sc5mogta, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Go To Auction (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mogtae ,sc5mogta, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Go To Auction (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3311 AWP MONOPOLY MILLIONAIRE SCORP5 PR3311 MPOLY MILL SOUNDS11 MILLIONAIRE S.SITE
-GAME( 200?, sc5momil ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Millionaire (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5momila ,sc5momil, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Millionaire (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5momilb ,sc5momil, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Millionaire (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5momilc ,sc5momil, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Millionaire (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5momild ,sc5momil, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Millionaire (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5momile ,sc5momil, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Millionaire (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5momil ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Millionaire (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5momila ,sc5momil, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Millionaire (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5momilb ,sc5momil, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Millionaire (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5momilc ,sc5momil, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Millionaire (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5momild ,sc5momil, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Millionaire (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5momile ,sc5momil, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Millionaire (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1945 CLUB MONEYBAGS MONEY BAGS CLUB PR1955 C M MONEYBAGS SOUNDS11 DEAL OR NO DEAL
-GAME( 200?, sc5mombc ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Money Bags Club (PR1945) (BFM) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mombca ,sc5mombc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Money Bags Club (PR1945) (BFM) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mombcb ,sc5mombc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Money Bags Club (PR1945) (BFM) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mombcc ,sc5mombc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Money Bags Club (PR1945) (BFM) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mombc ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Money Bags Club (PR1945) (BFM) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mombca ,sc5mombc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Money Bags Club (PR1945) (BFM) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mombcb ,sc5mombc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Money Bags Club (PR1945) (BFM) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mombcc ,sc5mombc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Money Bags Club (PR1945) (BFM) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2496 MONOPOLY MONEY SPINNER MONY SOUNDS NITH
-GAME( 200?, sc5moms ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Monopoly Money Spinner (PR2496) (Qps) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5momsa ,sc5moms, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Monopoly Money Spinner (PR2496) (Qps) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5momsc ,sc5moms, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Monopoly Money Spinner (PR2496) (Qps) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5momsd ,sc5moms, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Monopoly Money Spinner (PR2496) (Qps) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5moms ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Monopoly Money Spinner (PR2496) (Qps) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5momsa ,sc5moms, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Monopoly Money Spinner (PR2496) (Qps) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5momsc ,sc5moms, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Monopoly Money Spinner (PR2496) (Qps) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5momsd ,sc5moms, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Monopoly Money Spinner (PR2496) (Qps) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2395 MONEY SPINNER MONY SOUNDS NITH (== sc5monsp code?)
-GAME( 200?, sc5momsb ,sc5moms, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Money Spinner (PR2395) (Qps) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5momse ,sc5moms, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Money Spinner (PR2395) (Qps) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5momsb ,sc5moms, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Money Spinner (PR2395) (Qps) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5momse ,sc5moms, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Money Spinner (PR2395) (Qps) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3408 AWP MONOPOLY PROPERTY LADDER S5 PR3408 MPOLY PROP LAD SOUNDS11 PROPERTY LADDER S.SITE
-GAME( 200?, sc5mopl ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Property Ladder (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mopla ,sc5mopl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Property Ladder (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5moplb ,sc5mopl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Property Ladder (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5moplc ,sc5mopl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Property Ladder (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mopld ,sc5mopl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Property Ladder (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mople ,sc5mopl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Property Ladder (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5moplf ,sc5mopl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Property Ladder (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5moplg ,sc5mopl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Property Ladder (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mopl ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Property Ladder (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mopla ,sc5mopl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Property Ladder (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5moplb ,sc5mopl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Property Ladder (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5moplc ,sc5mopl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Property Ladder (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mopld ,sc5mopl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Property Ladder (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mople ,sc5mopl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Property Ladder (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5moplf ,sc5mopl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Property Ladder (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5moplg ,sc5mopl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Property Ladder (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2457 ROADTORICHES CLUBROADTORICHES CLUB CRTR SOUNDS CLUB ROAD TO RICHES
-GAME( 200?, sc5mor2r ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Monopoly Road To Riches (Qps) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mor2ra ,sc5mor2r, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Monopoly Road To Riches (Qps) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mor2r ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Monopoly Road To Riches (Qps) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mor2ra ,sc5mor2r, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Monopoly Road To Riches (Qps) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2449 PR2449,MONOPOLY WA MONOPOLY WA MAZ
-GAME( 200?, sc5monwa ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Monopoly Win Again (Qps) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5monwaa ,sc5monwa, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Monopoly Win Again (Qps) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5monwa ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Monopoly Win Again (Qps) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5monwaa ,sc5monwa, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Monopoly Win Again (Qps) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2485 CLUB MONTE CARLO OR BUST CLUB MONTE CARLO CLUB CLUB MONTE SOUNDS CLUB MONTE CARLO
-GAME( 200?, sc5cmcob ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Monte Carlo Or Bust Club (Qps) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cmcoba ,sc5cmcob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Monte Carlo Or Bust Club (Qps) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cmcobb ,sc5cmcob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Monte Carlo Or Bust Club (Qps) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cmcobc ,sc5cmcob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Monte Carlo Or Bust Club (Qps) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cmcob ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Monte Carlo Or Bust Club (Qps) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cmcoba ,sc5cmcob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Monte Carlo Or Bust Club (Qps) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cmcobb ,sc5cmcob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Monte Carlo Or Bust Club (Qps) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cmcobc ,sc5cmcob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Monte Carlo Or Bust Club (Qps) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2166 NUN N ROSES NANR SOUNDS NUNS N ROSES
-GAME( 200?, sc5nunsb ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Nuns 'n' Roses (Bellfruit) (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5nunsb ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Nuns 'n' Roses (Bellfruit) (Scorpion 5)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3315 AWP OVER THE RAINBOW SCORP5 PR3315 OV THE RAINBOW SOUNDS11 OVER THE RAINBOW S.SITE
-GAME( 200?, sc5rainb ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Over The Rainbow (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5rainba ,sc5rainb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Over The Rainbow (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5rainbb ,sc5rainb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Over The Rainbow (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5rainbc ,sc5rainb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Over The Rainbow (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5rainbd ,sc5rainb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Over The Rainbow (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5rainbe ,sc5rainb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Over The Rainbow (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5rainb ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Over The Rainbow (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5rainba ,sc5rainb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Over The Rainbow (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5rainbb ,sc5rainb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Over The Rainbow (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5rainbc ,sc5rainb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Over The Rainbow (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5rainbd ,sc5rainb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Over The Rainbow (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5rainbe ,sc5rainb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Over The Rainbow (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3015 AWP PARROTS OF THE CARIBBEAN SCORP5 PR3015 P CARIBBEAN SOUNDS11 PARROT CARIBBEAN S.SITE
-GAME( 200?, sc5parot ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Parrots Of The Caribbean (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5parota ,sc5parot, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Parrots Of The Caribbean (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5parotb ,sc5parot, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Parrots Of The Caribbean (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5parotc ,sc5parot, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Parrots Of The Caribbean (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5parotd ,sc5parot, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Parrots Of The Caribbean (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5parote ,sc5parot, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Parrots Of The Caribbean (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5parotf ,sc5parot, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Parrots Of The Caribbean (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5parotg ,sc5parot, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Parrots Of The Caribbean (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5parot ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Parrots Of The Caribbean (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5parota ,sc5parot, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Parrots Of The Caribbean (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5parotb ,sc5parot, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Parrots Of The Caribbean (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5parotc ,sc5parot, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Parrots Of The Caribbean (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5parotd ,sc5parot, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Parrots Of The Caribbean (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5parote ,sc5parot, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Parrots Of The Caribbean (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5parotf ,sc5parot, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Parrots Of The Caribbean (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5parotg ,sc5parot, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Parrots Of The Caribbean (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2411 PILEONTHEPOUNDS PILE SOUNDS PILE
-GAME( 200?, sc5pilep ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Pile On The Pounds (Qps) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5pilepa ,sc5pilep, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Pile On The Pounds (Qps) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5pilepb ,sc5pilep, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Pile On The Pounds (Qps) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5pilepc ,sc5pilep, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Pile On The Pounds (Qps) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5pilep ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Pile On The Pounds (Qps) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5pilepa ,sc5pilep, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Pile On The Pounds (Qps) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5pilepb ,sc5pilep, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Pile On The Pounds (Qps) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5pilepc ,sc5pilep, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Pile On The Pounds (Qps) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2306 POTS OF LUCK POTSOFLUCKSOUNDS POTS OF LUCK
-GAME( 200?, sc5potsm ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Pots Of Luck (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5potsma ,sc5potsm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Pots Of Luck (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5potsm ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Pots Of Luck (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5potsma ,sc5potsm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Pots Of Luck (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3528 CLUB PUBLIC ENEMY S5 PR3528 PUBLIC ENEMY SOUNDS11 PUBLIC ENEMY S.SITE
-GAME( 200?, sc5cpen1 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Public Enemy No1 Club (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cpen1a ,sc5cpen1, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Public Enemy No1 Club (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cpen1b ,sc5cpen1, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Public Enemy No1 Club (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cpen1c ,sc5cpen1, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Public Enemy No1 Club (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cpen1 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Public Enemy No1 Club (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cpen1a ,sc5cpen1, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Public Enemy No1 Club (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cpen1b ,sc5cpen1, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Public Enemy No1 Club (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cpen1c ,sc5cpen1, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Public Enemy No1 Club (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1406 QUALITY STREAK PR1406 QUALITY STREAK SOUNDS11
-GAME( 200?, sc5qual ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Quality Streak (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5quala ,sc5qual, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Quality Streak (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5qualb ,sc5qual, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Quality Streak (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5qualc ,sc5qual, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Quality Streak (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5quald ,sc5qual, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Quality Streak (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5quale ,sc5qual, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Quality Streak (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5qualf ,sc5qual, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Quality Streak (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5qualg ,sc5qual, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Quality Streak (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5qualh ,sc5qual, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Quality Streak (Bellfruit) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5quali ,sc5qual, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Quality Streak (Bellfruit) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5qualj ,sc5qual, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Quality Streak (Bellfruit) (Scorpion 5) (set 11)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5qualk ,sc5qual, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Quality Streak (Bellfruit) (Scorpion 5) (set 12)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5quall ,sc5qual, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Quality Streak (Bellfruit) (Scorpion 5) (set 13)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5qualm ,sc5qual, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Quality Streak (Bellfruit) (Scorpion 5) (set 14)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5qual ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Quality Streak (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5quala ,sc5qual, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Quality Streak (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5qualb ,sc5qual, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Quality Streak (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5qualc ,sc5qual, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Quality Streak (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5quald ,sc5qual, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Quality Streak (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5quale ,sc5qual, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Quality Streak (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5qualf ,sc5qual, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Quality Streak (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5qualg ,sc5qual, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Quality Streak (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5qualh ,sc5qual, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Quality Streak (Bellfruit) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5quali ,sc5qual, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Quality Streak (Bellfruit) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5qualj ,sc5qual, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Quality Streak (Bellfruit) (Scorpion 5) (set 11)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5qualk ,sc5qual, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Quality Streak (Bellfruit) (Scorpion 5) (set 12)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5quall ,sc5qual, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Quality Streak (Bellfruit) (Scorpion 5) (set 13)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5qualm ,sc5qual, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Quality Streak (Bellfruit) (Scorpion 5) (set 14)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2169 REEL SPIN SHADY TRSS SOUNDS REEL SPIN SHADY
-GAME( 200?, sc5rssh ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Reel Spin Shady (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5rssha ,sc5rssh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Reel Spin Shady (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5rssh ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Reel Spin Shady (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5rssha ,sc5rssh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Reel Spin Shady (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3208 AWP ROAD HOG S5 PR3208 ROAD HOG SOUNDS11 ROAD HOG S.SITE
-GAME( 200?, sc5hog ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Road Hog (PR3208) (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hoga ,sc5hog, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Road Hog (PR3208) (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hog ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Road Hog (PR3208) (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hoga ,sc5hog, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Road Hog (PR3208) (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3248 ROAD HOG SCORP5 ROAD HOG CLUB PR3248 ROAD HOG SOUNDS11 ROAD HOG
-GAME( 200?, sc5rhclb ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Road Hog Club (PR3248) (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5rhclba ,sc5rhclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Road Hog Club (PR3248) (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5rhclbb ,sc5rhclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Road Hog Club (PR3248) (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5rhclbc ,sc5rhclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Road Hog Club (PR3248) (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5rhclbd ,sc5rhclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Road Hog Club (PR3248) (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5rhclbe ,sc5rhclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Road Hog Club (PR3248) (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5rhclb ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Road Hog Club (PR3248) (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5rhclba ,sc5rhclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Road Hog Club (PR3248) (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5rhclbb ,sc5rhclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Road Hog Club (PR3248) (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5rhclbc ,sc5rhclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Road Hog Club (PR3248) (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5rhclbd ,sc5rhclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Road Hog Club (PR3248) (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5rhclbe ,sc5rhclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Road Hog Club (PR3248) (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3249 ROAD HOG SCORP5 ROAD HOG FERRY CLUB PR3248 ROAD HOG SOUNDS11
-GAME( 200?, sc5rhclbf ,sc5rhclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Road Hog Club (PR3248) (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5rhclbg ,sc5rhclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Road Hog Club (PR3248) (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5rhclbf ,sc5rhclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Road Hog Club (PR3248) (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5rhclbg ,sc5rhclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Road Hog Club (PR3248) (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1774 181104 SHARP SHOOTER PR1774 SHARP SHOOTER 1 SHARP SHOOTER AWP
-GAME( 200?, sc5sharp ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Voodoo","Sharp Shooter (Voodoo) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5sharpa ,sc5sharp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Voodoo","Sharp Shooter (Voodoo) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5sharp ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Voodoo","Sharp Shooter (Voodoo) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5sharpa ,sc5sharp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Voodoo","Sharp Shooter (Voodoo) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// Z056 SHOOTSTARS PR000056 SHOOTSTARS 1 SHOOTSTARS AWP (Qps header?)
-GAME( 200?, sc5sfts ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Shoot For The Stars (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5sftsa ,sc5sfts, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Shoot For The Stars (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5sftsb ,sc5sfts, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Shoot For The Stars (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5sftsc ,sc5sfts, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Shoot For The Stars (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5sfts ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Shoot For The Stars (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5sftsa ,sc5sfts, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Shoot For The Stars (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5sftsb ,sc5sfts, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Shoot For The Stars (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5sftsc ,sc5sfts, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Shoot For The Stars (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2466 SNAKE RATTLE AND ROLL SNAKERR SOUNDS SNAKE R AND ROLL
-GAME( 200?, sc5srrqp ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Snake Rattle & Roll (Qps) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5srrqpa ,sc5srrqp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Snake Rattle & Roll (Qps) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5srrqp ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Snake Rattle & Roll (Qps) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5srrqpa ,sc5srrqp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Snake Rattle & Roll (Qps) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3223 AWP SPINIT TO WINIT S5 PR3203 SPIN IT TO W IT SOUNDS11 SPINIT TO WINIT S.SITE
-GAME( 200?, sc5sitwi ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Spin It To Win It (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5sitwia ,sc5sitwi, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Spin It To Win It (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5sitwi ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Spin It To Win It (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5sitwia ,sc5sitwi, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Spin It To Win It (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2205 SPINNING AROUND SPIN SOUNDS SPINNING AROUND
-GAME( 200?, sc5spnrn ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Spinning Around (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5spnrna ,sc5spnrn, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Spinning Around (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5spnrn ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Spinning Around (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5spnrna ,sc5spnrn, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Spinning Around (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR0003 RACE02
-GAME( 200?, sc5srace ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Streak Racer (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5sracea ,sc5srace, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Streak Racer (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5srace ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Streak Racer (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5sracea ,sc5srace, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Streak Racer (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2355 SUPER SLEUTH SSLEUTH SOUNDS SUPER SLEUTH
-GAME( 200?, sc5sleut ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Super Sleuth (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5sleuta ,sc5sleut, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Super Sleuth (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5sleut ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Super Sleuth (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5sleuta ,sc5sleut, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Super Sleuth (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1630 TRICK SHOT MULTI PLAYER TRICK SHOT MULTI ARCADE PR1630 TRICKSHOTMULT SOUNDS11
-GAME( 200?, sc5tsmp ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Trick Shot Multi Player (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5tsmpa ,sc5tsmp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Trick Shot Multi Player (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5tsmp ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Trick Shot Multi Player (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5tsmpa ,sc5tsmp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Trick Shot Multi Player (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1606 UP POMPAY PR1636 UP POMPAY SOUNDS11 UP POMPAY S.SITE
-GAME( 200?, sc5pompa ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Up Pompay (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5pompaa ,sc5pompa, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Up Pompay (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5pompab ,sc5pompa, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Up Pompay (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL ) // incomplete pairing
+GAME( 200?, sc5pompa ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Up Pompay (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5pompaa ,sc5pompa, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Up Pompay (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5pompab ,sc5pompa, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Up Pompay (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) // incomplete pairing
// PR2402 VAMPIREPAYER VAMP SOUNDS VAMP
-GAME( 200?, sc5vamp ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Vampire Payer (Qps) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5vampa ,sc5vamp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Vampire Payer (Qps) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5vamp ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Vampire Payer (Qps) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5vampa ,sc5vamp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Vampire Payer (Qps) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2176 VIPER ACTIVE VIPA SOUNDS VIPER ACTIVE
-GAME( 200?, sc5viper ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Viper Active (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5vipera ,sc5viper, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Viper Active (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5viper ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Viper Active (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5vipera ,sc5viper, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Viper Active (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2358 VIZ VIZ SOUNDS VIZ
-GAME( 200?, sc5viz ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Viz (Qps) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5viza ,sc5viz, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Viz (Qps) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5vizb ,sc5viz, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Viz (Qps) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5vizc ,sc5viz, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Viz (Qps) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5viz ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Viz (Qps) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5viza ,sc5viz, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Viz (Qps) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5vizb ,sc5viz, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Viz (Qps) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5vizc ,sc5viz, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Viz (Qps) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3305 AWP WACKY RACES SCORP5 PR3330 WACKY RACES SOUNDS11 WACKY RACES S.SITE
-GAME( 200?, sc5wacky ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Wacky Racers (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5wackya ,sc5wacky, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Wacky Racers (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5wackyb ,sc5wacky, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Wacky Racers (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5wackyc ,sc5wacky, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Wacky Racers (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5wacky ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Wacky Racers (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5wackya ,sc5wacky, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Wacky Racers (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5wackyb ,sc5wacky, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Wacky Racers (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5wackyc ,sc5wacky, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Wacky Racers (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2213 WAR OF THE WORLDS WADS SOUNDS
-GAME( 200?, sc5wotw ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","War Of The Wads (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5wotwa ,sc5wotw, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","War Of The Wads (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5wotw ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","War Of The Wads (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5wotwa ,sc5wotw, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","War Of The Wads (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2196 WILD REELS WILD REELS MAZ WIDR SOUNDS WILD REELS
-GAME( 200?, sc5wild ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Wild Reels (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5wilda ,sc5wild, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Wild Reels (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5wild ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Wild Reels (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5wilda ,sc5wild, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Wild Reels (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2552 WIN CAN ALLEY WINCANALLEYSND WIN CAN ALLEY
-GAME( 200?, sc5wca ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Win Can Alley (Qps) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5wcaa ,sc5wca, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Win Can Alley (Qps) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5wcad ,sc5wca, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Win Can Alley (Qps) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5wcaf ,sc5wca, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Win Can Alley (Qps) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5wcah ,sc5wca, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Win Can Alley (Qps) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5wcai ,sc5wca, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Win Can Alley (Qps) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5wcal ,sc5wca, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Win Can Alley (Qps) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5wcan ,sc5wca, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Win Can Alley (Qps) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5wca ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Win Can Alley (Qps) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5wcaa ,sc5wca, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Win Can Alley (Qps) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5wcad ,sc5wca, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Win Can Alley (Qps) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5wcaf ,sc5wca, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Win Can Alley (Qps) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5wcah ,sc5wca, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Win Can Alley (Qps) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5wcai ,sc5wca, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Win Can Alley (Qps) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5wcal ,sc5wca, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Win Can Alley (Qps) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5wcan ,sc5wca, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Win Can Alley (Qps) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2552 WIN CAN ALLEY 5 pound 10p Version WINCANALLEYSND WIN CAN ALLEY
-GAME( 200?, sc5wcab ,sc5wca, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Win Can Alley (5 pound 10p version) (Qps) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5wcae ,sc5wca, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Win Can Alley (5 pound 10p version) (Qps) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5wcaj ,sc5wca, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Win Can Alley (5 pound 10p version) (Qps) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5wcam ,sc5wca, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Win Can Alley (5 pound 10p version) (Qps) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5wcab ,sc5wca, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Win Can Alley (5 pound 10p version) (Qps) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5wcae ,sc5wca, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Win Can Alley (5 pound 10p version) (Qps) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5wcaj ,sc5wca, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Win Can Alley (5 pound 10p version) (Qps) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5wcam ,sc5wca, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Win Can Alley (5 pound 10p version) (Qps) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2552 WIN CAN ALLEY 5 pound 10p Arcade Version WINCANALLEYSND
-GAME( 200?, sc5wcac ,sc5wca, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Win Can Alley (5 pound 10p Arcade version) (Qps) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5wcag ,sc5wca, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Win Can Alley (5 pound 10p Arcade version) (Qps) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5wcak ,sc5wca, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Win Can Alley (5 pound 10p Arcade version) (Qps) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5wcao ,sc5wca, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Win Can Alley (5 pound 10p Arcade version) (Qps) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5wcac ,sc5wca, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Win Can Alley (5 pound 10p Arcade version) (Qps) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5wcag ,sc5wca, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Win Can Alley (5 pound 10p Arcade version) (Qps) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5wcak ,sc5wca, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Win Can Alley (5 pound 10p Arcade version) (Qps) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5wcao ,sc5wca, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Win Can Alley (5 pound 10p Arcade version) (Qps) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3218 AWP WOK N ROLL S5 PR3218 WOK N ROLL SOUNDS11 WOK N ROLL S.SITE
-GAME( 200?, sc5wok ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Wok n' Roll (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5woka ,sc5wok, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Wok n' Roll (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5wok ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Wok n' Roll (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5woka ,sc5wok, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Wok n' Roll (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2556 RED HOT REELS RHRL SOUNDS RED HOT REELS
-GAME( 200?, sc5rhr ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Red Hot Reels (Qps) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5rhra ,sc5rhr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Red Hot Reels (Qps) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5rhrb ,sc5rhr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Red Hot Reels (Qps) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5rhrc ,sc5rhr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Red Hot Reels (Qps) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5rhrd ,sc5rhr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Red Hot Reels (Qps) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5rhre ,sc5rhr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Red Hot Reels (Qps) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5rhr ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Red Hot Reels (Qps) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5rhra ,sc5rhr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Red Hot Reels (Qps) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5rhrb ,sc5rhr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Red Hot Reels (Qps) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5rhrc ,sc5rhr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Red Hot Reels (Qps) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5rhrd ,sc5rhr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Red Hot Reels (Qps) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5rhre ,sc5rhr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Red Hot Reels (Qps) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2458 CLUB SNAKE RATTLE AND ROLL CLUB SRAR CLUB CLUB SRAR SND CLUB SNAKE RATTLE AND ROLL
-GAME( 200?, sc5srrcl ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Snake Rattle 'n' Roll Club (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5srrcla ,sc5srrcl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Snake Rattle 'n' Roll Club (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5srrclb ,sc5srrcl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Snake Rattle 'n' Roll Club (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5srrclc ,sc5srrcl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Snake Rattle 'n' Roll Club (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5srrcl ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Snake Rattle 'n' Roll Club (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5srrcla ,sc5srrcl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Snake Rattle 'n' Roll Club (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5srrclb ,sc5srrcl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Snake Rattle 'n' Roll Club (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5srrclc ,sc5srrcl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Snake Rattle 'n' Roll Club (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3422 CLUB THE PRIZE IS RIGHT S5 PR3422 PRIZE IS RIGHT SOUNDS11 THE PRIZE IS RIGHT S.SITE
-GAME( 200?, sc5pircl ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Prize Is Right Club (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5pircla ,sc5pircl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Prize Is Right Club (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5pirclb ,sc5pircl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Prize Is Right Club (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5pirclc ,sc5pircl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Prize Is Right Club (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5pircld ,sc5pircl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Prize Is Right Club (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5pircle ,sc5pircl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Prize Is Right Club (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5pirclf ,sc5pircl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Prize Is Right Club (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5pirclg ,sc5pircl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Prize Is Right Club (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5pircl ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Prize Is Right Club (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5pircla ,sc5pircl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Prize Is Right Club (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5pirclb ,sc5pircl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Prize Is Right Club (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5pirclc ,sc5pircl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Prize Is Right Club (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5pircld ,sc5pircl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Prize Is Right Club (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5pircle ,sc5pircl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Prize Is Right Club (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5pirclf ,sc5pircl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Prize Is Right Club (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5pirclg ,sc5pircl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","The Prize Is Right Club (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2457 ROADTORICHES CLUBROADTORICHES CLUB CRTR SOUNDS CLUB ROAD TO RICHES
-GAME( 200?, sc5mrrcl ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Road To Riches Club (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mrrcla ,sc5mrrcl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Road To Riches Club (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mrrclb ,sc5mrrcl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Road To Riches Club (Mazooma) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mrrclc ,sc5mrrcl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Road To Riches Club (Mazooma) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mrrcl ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Road To Riches Club (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mrrcla ,sc5mrrcl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Road To Riches Club (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mrrclb ,sc5mrrcl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Road To Riches Club (Mazooma) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mrrclc ,sc5mrrcl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Road To Riches Club (Mazooma) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// BFGP1234..............G95427832.RAZY_.PR3436 CF COMMUNITY P SOUNDS11. (non-standard header, seems to indicate that these are actually Crazy Fruits Community Parts?)
-GAME( 200?, sc5crcpt ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Community Party (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5crcpta ,sc5crcpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Community Party (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5crcptb ,sc5crcpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Community Party (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5crcpt ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Community Party (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5crcpta ,sc5crcpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Community Party (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5crcptb ,sc5crcpt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Community Party (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3009 AWP ANT N DECS JIGGY BANK S5 PR3009 JIGGY BANK SOUNDS11 JIGGY BANK S.SITE
-GAME( 200?, sc5adjb ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5adjba ,sc5adjb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5adjbb ,sc5adjb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5adjbc ,sc5adjb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5adjbd ,sc5adjb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5adjbe ,sc5adjb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5adjbf ,sc5adjb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5adjbg ,sc5adjb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5adjbh ,sc5adjb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5adjbi ,sc5adjb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5adjbj ,sc5adjb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 11)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5adjbk ,sc5adjb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 12)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5adjbl ,sc5adjb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 13)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5adjbm ,sc5adjb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 14)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5adjbn ,sc5adjb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 15)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5adjbo ,sc5adjb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 16)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5adjbp ,sc5adjb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 17)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5adjbq ,sc5adjb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 18)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5adjbr ,sc5adjb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 19)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5adjbs ,sc5adjb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 20)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5adjbt ,sc5adjb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 21)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5adjb ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5adjba ,sc5adjb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5adjbb ,sc5adjb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5adjbc ,sc5adjb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5adjbd ,sc5adjb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5adjbe ,sc5adjb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5adjbf ,sc5adjb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5adjbg ,sc5adjb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5adjbh ,sc5adjb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5adjbi ,sc5adjb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5adjbj ,sc5adjb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 11)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5adjbk ,sc5adjb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 12)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5adjbl ,sc5adjb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 13)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5adjbm ,sc5adjb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 14)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5adjbn ,sc5adjb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 15)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5adjbo ,sc5adjb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 16)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5adjbp ,sc5adjb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 17)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5adjbq ,sc5adjb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 18)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5adjbr ,sc5adjb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 19)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5adjbs ,sc5adjb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 20)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5adjbt ,sc5adjb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Jiggy Bank (Bellfruit) (Scorpion 5) (set 21)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1920 AWP ANT N DECS WTAD S5 PR1940 ADSNT SHOWTIME SOUNDS11 ANTNDECSWTAD S.SITE
-GAME( 200?, sc5adwta ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Saturday Night Takeaway Win The Ads (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5adwtaa ,sc5adwta, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Saturday Night Takeaway Win The Ads (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5adwta ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Saturday Night Takeaway Win The Ads (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5adwtaa ,sc5adwta, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Saturday Night Takeaway Win The Ads (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2200 AROUND THE BOARD AROU SOUNDS AROUND THE BOARD
-GAME( 200?, sc5a40 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Around The Board In 40 Days (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5a40a ,sc5a40, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Around The Board In 40 Days (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5a40 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Around The Board In 40 Days (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5a40a ,sc5a40, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Around The Board In 40 Days (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2301 BANTAM OF THE OPERA BANTAM SOUNDS BANTAMOFTHEOPERA
-GAME( 200?, sc5bantm ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Bantam Of The Opera (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bantma ,sc5bantm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Bantam Of The Opera (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bantm ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Bantam Of The Opera (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bantma ,sc5bantm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Bantam Of The Opera (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1447 BAR7S PR1492 CAS BAR SEVENS SOUNDS11 BAR 7S M.SITE
-GAME( 200?, sc5bar7 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bar 7's (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bar7a ,sc5bar7, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bar 7's (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bar7 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bar 7's (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bar7a ,sc5bar7, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bar 7's (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3064 BINGO BAR7 S5 PR1433 BAR SEVENS SOUNDS11 BAR7 S.SITE
-GAME( 200?, sc5bar7b ,sc5bar7, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bar 7's Bingo (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bar7c ,sc5bar7, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bar 7's Bingo (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bar7d ,sc5bar7, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bar 7's Bingo (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bar7e ,sc5bar7, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bar 7's Bingo (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bar7f ,sc5bar7, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bar 7's Bingo (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bar7g ,sc5bar7, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bar 7's Bingo (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bar7b ,sc5bar7, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bar 7's Bingo (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bar7c ,sc5bar7, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bar 7's Bingo (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bar7d ,sc5bar7, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bar 7's Bingo (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bar7e ,sc5bar7, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bar 7's Bingo (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bar7f ,sc5bar7, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bar 7's Bingo (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bar7g ,sc5bar7, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bar 7's Bingo (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1704 AWP BATTLESHIPS AND CRUISERS PR1704 B AND C SOUNDS11 BATTLESHIPSCRUIS S.SITE
-GAME( 200?, sc5batl ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Battleships & Cruisers (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5batla ,sc5batl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Battleships & Cruisers (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5batl ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Battleships & Cruisers (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5batla ,sc5batl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Battleships & Cruisers (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2170 BOBBY DAZZLER BOBD SOUNDS BOBBY DAZZLER
-GAME( 200?, sc5bob ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Bobby Dazzler (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5boba ,sc5bob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Bobby Dazzler (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bobb ,sc5bob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Bobby Dazzler (Mazooma) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bobc ,sc5bob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Bobby Dazzler (Mazooma) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bob ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Bobby Dazzler (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5boba ,sc5bob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Bobby Dazzler (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bobb ,sc5bob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Bobby Dazzler (Mazooma) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bobc ,sc5bob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Bobby Dazzler (Mazooma) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1702 AWP BULLSEYE SCORP5 PR1702 BULLSEYE SOUNDS11 BULLSEYE S.SITE
-GAME( 200?, sc5bull ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bullseye (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bulla ,sc5bull, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bullseye (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bullb ,sc5bull, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bullseye (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bullc ,sc5bull, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bullseye (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bull ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bullseye (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bulla ,sc5bull, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bullseye (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bullb ,sc5bull, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bullseye (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bullc ,sc5bull, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bullseye (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1719 AWP SUPER BULLSEYE SCORP5 PR1702 BULLSEYE SOUNDS11 SUPER BULLSEYE S.SITE
-GAME( 200?, sc5sbull ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Super Bullseye (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5sbulla ,sc5sbull, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Super Bullseye (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5sbull ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Super Bullseye (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5sbulla ,sc5sbull, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Super Bullseye (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3318 AWP BULLSEYE 5 REELS S5 PR3318 BULLSEYE SOUNDS11 BULLSEYE S.SITE
-GAME( 200?, sc5bull5 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bullseye 5 Reels (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bull5a ,sc5bull5, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bullseye 5 Reels (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bull5b ,sc5bull5, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bullseye 5 Reels (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bull5c ,sc5bull5, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bullseye 5 Reels (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bull5 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bullseye 5 Reels (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bull5a ,sc5bull5, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bullseye 5 Reels (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bull5b ,sc5bull5, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bullseye 5 Reels (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bull5c ,sc5bull5, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bullseye 5 Reels (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1910 AWP BUTCH CASHIDY AND THE SUNDANCE QUID S5 PR1910 B C AND THE S Q SOUNDS11 BUTCH N SUNDANCE S.SITE
-GAME( 200?, sc5butch ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5butcha ,sc5butch, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5butchb ,sc5butch, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5butchc ,sc5butch, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5butchd ,sc5butch, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5butche ,sc5butch, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5butch ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5butcha ,sc5butch, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5butchb ,sc5butch, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5butchc ,sc5butch, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5butchd ,sc5butch, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5butche ,sc5butch, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Butch Cashidy & The Sundance Quid (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2209 CABIN FEVER CABF SOUNDS CABIN FEVER
-GAME( 200?, sc5cabin ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cabin Fever (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cabina ,sc5cabin, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cabin Fever (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cabinb ,sc5cabin, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cabin Fever (Mazooma) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cabinc ,sc5cabin, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cabin Fever (Mazooma) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cabin ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cabin Fever (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cabina ,sc5cabin, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cabin Fever (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cabinb ,sc5cabin, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cabin Fever (Mazooma) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cabinc ,sc5cabin, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cabin Fever (Mazooma) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2326 CARIBBEAN CASH CABC SOUNDS CARIBBEAN CASH
-GAME( 200?, sc5cari ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Caribbean Cash (Qps) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5caria ,sc5cari, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Caribbean Cash (Qps) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5carib ,sc5cari, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Caribbean Cash (Qps) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5caric ,sc5cari, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Caribbean Cash (Qps) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5carid ,sc5cari, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Caribbean Cash (Qps) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5carie ,sc5cari, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Caribbean Cash (Qps) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5carif ,sc5cari, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Caribbean Cash (Qps) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5carig ,sc5cari, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Caribbean Cash (Qps) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cari ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Caribbean Cash (Qps) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5caria ,sc5cari, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Caribbean Cash (Qps) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5carib ,sc5cari, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Caribbean Cash (Qps) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5caric ,sc5cari, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Caribbean Cash (Qps) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5carid ,sc5cari, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Caribbean Cash (Qps) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5carie ,sc5cari, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Caribbean Cash (Qps) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5carif ,sc5cari, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Caribbean Cash (Qps) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5carig ,sc5cari, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Caribbean Cash (Qps) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1683 BLAS14
-GAME( 200?, sc5cblas ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cash Blast (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cblasa ,sc5cblas, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cash Blast (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cblas ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cash Blast (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cblasa ,sc5cblas, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cash Blast (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2338 XTRAVAGANZA XTRV SOUNDS XTRAVAGANZA
-GAME( 200?, sc5casxt ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Casino Xtravaganza (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5casxta ,sc5casxt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Casino Xtravaganza (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5casxt ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Casino Xtravaganza (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5casxta ,sc5casxt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Casino Xtravaganza (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1711 AWP CHAV IT SCORP5 PR1711 CHAV IT SOUNDS11 CHAV IT S.SITE
-GAME( 200?, sc5chavi ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Chav It (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5chavia ,sc5chavi, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Chav It (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5chavib ,sc5chavi, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Chav It (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5chavic ,sc5chavi, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Chav It (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5chavid ,sc5chavi, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Chav It (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5chavie ,sc5chavi, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Chav It (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5chavi ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Chav It (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5chavia ,sc5chavi, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Chav It (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5chavib ,sc5chavi, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Chav It (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5chavic ,sc5chavi, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Chav It (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5chavid ,sc5chavi, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Chav It (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5chavie ,sc5chavi, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Chav It (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2305 CHAVVY CHASE CHVY SOUNDS
-GAME( 200?, sc5chavy ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Chavy Chase (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5chavya ,sc5chavy, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Chavy Chase (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5chavyb ,sc5chavy, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Chavy Chase (Mazooma) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5chavyc ,sc5chavy, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Chavy Chase (Mazooma) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5chavy ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Chavy Chase (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5chavya ,sc5chavy, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Chavy Chase (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5chavyb ,sc5chavy, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Chavy Chase (Mazooma) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5chavyc ,sc5chavy, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Chavy Chase (Mazooma) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2230 CLUEDO CLUE SOUNDS CLUEDO
-GAME( 200?, sc5clue ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cluedo (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cluea ,sc5clue, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cluedo (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5clueb ,sc5clue, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cluedo (Mazooma) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cluec ,sc5clue, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cluedo (Mazooma) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5clue ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cluedo (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cluea ,sc5clue, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cluedo (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5clueb ,sc5clue, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cluedo (Mazooma) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cluec ,sc5clue, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Cluedo (Mazooma) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1308 COLOUR MANIA PR1308 COLOUR MAN SOUNDS11
-GAME( 200?, sc5cmani ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Colour Mania (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cmania ,sc5cmani, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Colour Mania (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cmanib ,sc5cmani, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Colour Mania (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cmanic ,sc5cmani, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Colour Mania (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cmani ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Colour Mania (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cmania ,sc5cmani, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Colour Mania (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cmanib ,sc5cmani, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Colour Mania (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cmanic ,sc5cmani, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Colour Mania (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1416 COOL JEWELS PR1416 COOL JEWELS SOUNDS11 COOL JEWELS S.SITE
-GAME( 200?, sc5cj ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cool Jewels (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cja ,sc5cj, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cool Jewels (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cjb ,sc5cj, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cool Jewels (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cjc ,sc5cj, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cool Jewels (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cjd ,sc5cj, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cool Jewels (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cje ,sc5cj, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cool Jewels (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cj ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cool Jewels (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cja ,sc5cj, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cool Jewels (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cjb ,sc5cj, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cool Jewels (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cjc ,sc5cj, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cool Jewels (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cjd ,sc5cj, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cool Jewels (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cje ,sc5cj, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cool Jewels (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1109 AWP COP THE LOT PR1109 CTLOT SOUNDS11
-GAME( 200?, sc5ctl ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cop The Lot (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ctla ,sc5ctl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cop The Lot (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ctlb ,sc5ctl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cop The Lot (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ctlc ,sc5ctl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cop The Lot (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ctl ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cop The Lot (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ctla ,sc5ctl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cop The Lot (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ctlb ,sc5ctl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cop The Lot (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ctlc ,sc5ctl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cop The Lot (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3005 AWP COPS AND ROBBERS SAFE CRACKER S5 PR3005 SAFE CRACKER SOUNDS11 SAFE CRACKER S.SITE
-GAME( 200?, sc5crsc ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5crsca ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5crscb ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5crscc ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5crscd ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5crsce ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5crscf ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5crscg ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5crsch ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5crsci ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5crscj ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 11)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5crsck ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 12)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5crscl ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 13)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5crscm ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 14)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5crscn ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 15)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5crsco ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 16)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5crscp ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 17)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5crscq ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 18)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5crscr ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 19)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5crscs ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 20)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5crsct ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 21)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5crscu ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 22)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5crsc ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5crsca ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5crscb ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5crscc ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5crscd ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5crsce ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5crscf ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5crscg ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5crsch ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5crsci ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5crscj ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 11)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5crsck ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 12)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5crscl ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 13)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5crscm ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 14)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5crscn ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 15)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5crsco ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 16)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5crscp ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 17)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5crscq ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 18)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5crscr ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 19)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5crscs ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 20)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5crsct ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 21)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5crscu ,sc5crsc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Safe Cracker (Bellfruit) (Scorpion 5) (set 22)", MACHINE_IS_SKELETON_MECHANICAL )
// PROJECT NUMBER PR2252 CORONATION ST CORRY SOUNDS CORONATION ST
-GAME( 200?, sc5coro ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street (PR2252) (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5corom ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street (PR2252) (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5coroy ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street (PR2252) (Mazooma) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5coro0 ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street (PR2252) (Mazooma) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5coro ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street (PR2252) (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5corom ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street (PR2252) (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5coroy ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street (PR2252) (Mazooma) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5coro0 ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street (PR2252) (Mazooma) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2552 CORONATION ST COROST_SINGLE CORONATION ST
-GAME( 200?, sc5coroe ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Single (PR2252) (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5corof ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Single (PR2252) (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5corog ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Single (PR2252) (Mazooma) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5coroh ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Single (PR2252) (Mazooma) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5coroq ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Single (PR2252) (Mazooma) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5coror ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Single (PR2252) (Mazooma) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5coros ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Single (PR2252) (Mazooma) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5corot ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Single (PR2252) (Mazooma) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5coroe ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Single (PR2252) (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5corof ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Single (PR2252) (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5corog ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Single (PR2252) (Mazooma) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5coroh ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Single (PR2252) (Mazooma) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5coroq ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Single (PR2252) (Mazooma) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5coror ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Single (PR2252) (Mazooma) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5coros ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Single (PR2252) (Mazooma) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5corot ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Single (PR2252) (Mazooma) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2249 CORONATION ST TRIPLE COROST SOUNDS (top box maybe?)
-GAME( 200?, sc5coroa ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Triple (PR2249) (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5coroa ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Triple (PR2249) (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2249 CORONATION STREET CORS MAZ COROST_TRIPLE SOUNDS
-GAME( 200?, sc5corok ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Triple (PR2249) (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5corol ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Triple (PR2249) (Mazooma) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5corow ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Triple (PR2249) (Mazooma) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5corox ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Triple (PR2249) (Mazooma) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5corok ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Triple (PR2249) (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5corol ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Triple (PR2249) (Mazooma) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5corow ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Triple (PR2249) (Mazooma) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5corox ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Triple (PR2249) (Mazooma) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2249 CORONATION STREET Arcade Version 061 COROST_TRIPLE SOUNDS CORONATION ST
-GAME( 200?, sc5corob ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Triple Arcade (V061) (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5coron ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Triple Arcade (V061) (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5corob ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Triple Arcade (V061) (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5coron ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Triple Arcade (V061) (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2249 CORONATION STREET Arcade Version 063 COROST_TRIPLE SOUNDS CORONATION ST
-GAME( 200?, sc5coroj ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Triple Arcade (V063) (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5corov ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Triple Arcade (V063) (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5coroj ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Triple Arcade (V063) (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5corov ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Triple Arcade (V063) (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2249 CORONATION STREET Bingo Version 012 COROST_TRIPLE SOUNDS CORONATION ST
-GAME( 200?, sc5coroc ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Triple Bingo (V012) (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5corod ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Triple Bingo (V012) (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5coroi ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Triple Bingo (V012) (Mazooma) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5coroo ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Triple Bingo (V012) (Mazooma) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5corop ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Triple Bingo (V012) (Mazooma) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5corou ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Triple Bingo (V012) (Mazooma) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5coroc ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Triple Bingo (V012) (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5corod ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Triple Bingo (V012) (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5coroi ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Triple Bingo (V012) (Mazooma) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5coroo ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Triple Bingo (V012) (Mazooma) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5corop ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Triple Bingo (V012) (Mazooma) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5corou ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Triple Bingo (V012) (Mazooma) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2249 CORONATION STREET Bingo Version 013 COROST_TRIPLE SOUNDS CORONATION ST
-GAME( 200?, sc5coroz ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Triple Bingo (V013) (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5coro1 ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Triple Bingo (V013) (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5coroz ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Triple Bingo (V013) (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5coro1 ,sc5coro, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Coronation Street Triple Bingo (V013) (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1909 AWP COUNTDOWN S5 PR1909 COUNTDOWN SOUNDS11 COUNTDOWN S.SITE
-GAME( 200?, sc5count ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Countdown (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5counta ,sc5count, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Countdown (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5count ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Countdown (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5counta ,sc5count, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Countdown (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2387. T FRUIT CRAZY T FRUIT CRAZY QPS GOLD X TRIPLE (but contains Crazy Keys strings as well?)
-GAME( 200?, sc5czfr ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "QPS","Fruit Crazy Triple / Crazy Keys (QPS) (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5czfr ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "QPS","Fruit Crazy Triple / Crazy Keys (QPS) (Scorpion 5)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2388 FRUIT CRAZY SINGLE FRUIT CRAZY CRZ SOUNDS PR2388 FRUIT CRAZY FRUIT CRAZY MAZ (not a standard header)
-GAME( 200?, sc5frcrz ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Fruit Crazy (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5frcrza ,sc5czfr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Fruit Crazy (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5frcrz ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Fruit Crazy (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5frcrza ,sc5czfr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Fruit Crazy (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1608 AWP CROWN JEWELS PR1608 CROWN JEWELS SOUNDS11 CROWN JEWELS S.SITE
-GAME( 2004, sc5crnjw ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crown Jewels (PR1608) (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 2004, sc5crnjwa ,sc5crnjw, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crown Jewels (PR1608) (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 2004, sc5crnjwb ,sc5crnjw, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crown Jewels (PR1608) (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 2004, sc5crnjw ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crown Jewels (PR1608) (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2004, sc5crnjwa ,sc5crnjw, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crown Jewels (PR1608) (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2004, sc5crnjwb ,sc5crnjw, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Crown Jewels (PR1608) (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
// Z055 CJEWELS PR000055 CJEWELS 1 CJEWELS AWP
-GAME( 200?, sc5cjqps ,sc5crnjw, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "QPS","Crown Jewels (Z055) (QPS) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cjqpsa ,sc5crnjw, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "QPS","Crown Jewels (Z055) (QPS) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cjqpsb ,sc5crnjw, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "QPS","Crown Jewels (Z055) (QPS) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5cjqpsc ,sc5crnjw, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "QPS","Crown Jewels (Z055) (QPS) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cjqps ,sc5crnjw, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "QPS","Crown Jewels (Z055) (QPS) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cjqpsa ,sc5crnjw, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "QPS","Crown Jewels (Z055) (QPS) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cjqpsb ,sc5crnjw, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "QPS","Crown Jewels (Z055) (QPS) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5cjqpsc ,sc5crnjw, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "QPS","Crown Jewels (Z055) (QPS) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1907 AWP DEAL OR NO DEAL S5 PR1907 DEAL OR NO DEAL SOUNDS11 DEALORNODEAL S.SITE
-GAME( 200?, sc5dnd ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnda ,sc5dnd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndb ,sc5dnd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndc ,sc5dnd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndd ,sc5dnd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnde ,sc5dnd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndf ,sc5dnd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndg ,sc5dnd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndh ,sc5dnd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndi ,sc5dnd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndj ,sc5dnd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 11)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndk ,sc5dnd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 12)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndl ,sc5dnd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 13)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndm ,sc5dnd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 14)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndn ,sc5dnd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 15)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndo ,sc5dnd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 16)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndp ,sc5dnd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 17)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndq ,sc5dnd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 18)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndr ,sc5dnd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 19)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnds ,sc5dnd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 20)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndt ,sc5dnd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 21)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnd ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnda ,sc5dnd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndb ,sc5dnd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndc ,sc5dnd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndd ,sc5dnd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnde ,sc5dnd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndf ,sc5dnd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndg ,sc5dnd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndh ,sc5dnd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndi ,sc5dnd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndj ,sc5dnd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 11)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndk ,sc5dnd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 12)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndl ,sc5dnd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 13)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndm ,sc5dnd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 14)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndn ,sc5dnd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 15)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndo ,sc5dnd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 16)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndp ,sc5dnd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 17)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndq ,sc5dnd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 18)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndr ,sc5dnd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 19)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnds ,sc5dnd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 20)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndt ,sc5dnd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal (Bellfruit) (Scorpion 5) (set 21)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1954 CASINO DOND REELS CASINO DOND ARCADE PR1954 CASINO DOND R SOUNDS11
-GAME( 200?, sc5dndcs ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndcsa ,sc5dndcs, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndcsb ,sc5dndcs, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndcsc ,sc5dndcs, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndcsd ,sc5dndcs, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndcse ,sc5dndcs, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndcsf ,sc5dndcs, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndcsg ,sc5dndcs, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndcsh ,sc5dndcs, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndcsi ,sc5dndcs, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndcsj ,sc5dndcs, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 11)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndcsk ,sc5dndcs, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 12)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndcsl ,sc5dndcs, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 13)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndcsm ,sc5dndcs, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 14)", GAME_IS_SKELETON_MECHANICAL )
-
-
-GAME( 200?, sc5dndc2 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL ) // PR1964 CASINO DOND MULTI DOND MULTIPLAYER ARCADE
-GAME( 200?, sc5dndc2a ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL ) // ^^
-GAME( 200?, sc5dndc2b ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL ) // ^^
-
-GAME( 200?, sc5dndc2c ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL ) // PR1964 CASINO DOND TOP DOND TOPBOX ARCADE PR1964 CASINO DOND R SOUNDS11
-GAME( 200?, sc5dndc2d ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL ) // ^^
-
-GAME( 200?, sc5dndc2e ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL ) // PR1964 CASINO DOND TOP S5 DOND TOPBOX ARCADE
-GAME( 200?, sc5dndc2f ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL ) // ^^
-GAME( 200?, sc5dndc2g ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL ) // ^^
-GAME( 200?, sc5dndc2h ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL ) // ^^
-GAME( 200?, sc5dndc2i ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )// ^^
-GAME( 200?, sc5dndc2j ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 11)", GAME_IS_SKELETON_MECHANICAL )// ^^
-GAME( 200?, sc5dndc2k ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 12)", GAME_IS_SKELETON_MECHANICAL )// ^^
-GAME( 200?, sc5dndc2l ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 13)", GAME_IS_SKELETON_MECHANICAL )// ^^
-GAME( 200?, sc5dndc2m ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 14)", GAME_IS_SKELETON_MECHANICAL )// PR1964 CASINO DOND TOP S5 DOND TOPBOX ARCADE PR1964 CASINO DOND R SOUNDS11
-GAME( 200?, sc5dndc2n ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 15)", GAME_IS_SKELETON_MECHANICAL )// ^^
-GAME( 200?, sc5dndc2o ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 16)", GAME_IS_SKELETON_MECHANICAL )// PR1964 CASINO DOND TOP S5 DOND TOPBOX ARCADE PR1964 CASINO DOND SOUNDS12
-GAME( 200?, sc5dndc2p ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 17)", GAME_IS_SKELETON_MECHANICAL )// ^^
-
-GAME( 200?, sc5dndc2q ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 18)", GAME_IS_SKELETON_MECHANICAL )// PR1964 CASINO DOND MULTI DOND MULTIPLAYER ARCADE PR1964 CASINO DOND R SOUNDS11
-GAME( 200?, sc5dndc2r ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 19)", GAME_IS_SKELETON_MECHANICAL )// ^^
-GAME( 200?, sc5dndc2s ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 20)", GAME_IS_SKELETON_MECHANICAL )// ^^
-GAME( 200?, sc5dndc2t ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 21)", GAME_IS_SKELETON_MECHANICAL )// ^^
-GAME( 200?, sc5dndc2u ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 22)", GAME_IS_SKELETON_MECHANICAL )// PR1964 CASINO DOND MULTI DOND MULTIPLAYER ARCADE PR1964 CASINO DOND SOUNDS12
-GAME( 200?, sc5dndc2v ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 23)", GAME_IS_SKELETON_MECHANICAL )// ^^
-GAME( 200?, sc5dndc2w ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 24)", GAME_IS_SKELETON_MECHANICAL )// PR1964 CASINO DOND MULTI DOND MULTIPLAYER ARCADE
-
-GAME( 200?, sc5dndc3 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1965) (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL ) // PR1965 CASINO DOND TOPBOX CASINO DOND ARCADE PR1965 CASINO DOND R SOUNDS11
-GAME( 200?, sc5dndc3a ,sc5dndc3, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1965) (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL ) // ^^
-GAME( 200?, sc5dndc3b ,sc5dndc3, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1965) (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL ) // ^^
-GAME( 200?, sc5dndc3c ,sc5dndc3, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1965) (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL ) // ^^
+GAME( 200?, sc5dndcs ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndcsa ,sc5dndcs, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndcsb ,sc5dndcs, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndcsc ,sc5dndcs, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndcsd ,sc5dndcs, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndcse ,sc5dndcs, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndcsf ,sc5dndcs, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndcsg ,sc5dndcs, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndcsh ,sc5dndcs, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndcsi ,sc5dndcs, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndcsj ,sc5dndcs, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 11)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndcsk ,sc5dndcs, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 12)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndcsl ,sc5dndcs, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 13)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndcsm ,sc5dndcs, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1954) (Bellfruit) (Scorpion 5) (set 14)", MACHINE_IS_SKELETON_MECHANICAL )
+
+
+GAME( 200?, sc5dndc2 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) // PR1964 CASINO DOND MULTI DOND MULTIPLAYER ARCADE
+GAME( 200?, sc5dndc2a ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) // ^^
+GAME( 200?, sc5dndc2b ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) // ^^
+
+GAME( 200?, sc5dndc2c ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL ) // PR1964 CASINO DOND TOP DOND TOPBOX ARCADE PR1964 CASINO DOND R SOUNDS11
+GAME( 200?, sc5dndc2d ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL ) // ^^
+
+GAME( 200?, sc5dndc2e ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL ) // PR1964 CASINO DOND TOP S5 DOND TOPBOX ARCADE
+GAME( 200?, sc5dndc2f ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL ) // ^^
+GAME( 200?, sc5dndc2g ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL ) // ^^
+GAME( 200?, sc5dndc2h ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL ) // ^^
+GAME( 200?, sc5dndc2i ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )// ^^
+GAME( 200?, sc5dndc2j ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 11)", MACHINE_IS_SKELETON_MECHANICAL )// ^^
+GAME( 200?, sc5dndc2k ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 12)", MACHINE_IS_SKELETON_MECHANICAL )// ^^
+GAME( 200?, sc5dndc2l ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 13)", MACHINE_IS_SKELETON_MECHANICAL )// ^^
+GAME( 200?, sc5dndc2m ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 14)", MACHINE_IS_SKELETON_MECHANICAL )// PR1964 CASINO DOND TOP S5 DOND TOPBOX ARCADE PR1964 CASINO DOND R SOUNDS11
+GAME( 200?, sc5dndc2n ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 15)", MACHINE_IS_SKELETON_MECHANICAL )// ^^
+GAME( 200?, sc5dndc2o ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 16)", MACHINE_IS_SKELETON_MECHANICAL )// PR1964 CASINO DOND TOP S5 DOND TOPBOX ARCADE PR1964 CASINO DOND SOUNDS12
+GAME( 200?, sc5dndc2p ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 17)", MACHINE_IS_SKELETON_MECHANICAL )// ^^
+
+GAME( 200?, sc5dndc2q ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 18)", MACHINE_IS_SKELETON_MECHANICAL )// PR1964 CASINO DOND MULTI DOND MULTIPLAYER ARCADE PR1964 CASINO DOND R SOUNDS11
+GAME( 200?, sc5dndc2r ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 19)", MACHINE_IS_SKELETON_MECHANICAL )// ^^
+GAME( 200?, sc5dndc2s ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 20)", MACHINE_IS_SKELETON_MECHANICAL )// ^^
+GAME( 200?, sc5dndc2t ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 21)", MACHINE_IS_SKELETON_MECHANICAL )// ^^
+GAME( 200?, sc5dndc2u ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 22)", MACHINE_IS_SKELETON_MECHANICAL )// PR1964 CASINO DOND MULTI DOND MULTIPLAYER ARCADE PR1964 CASINO DOND SOUNDS12
+GAME( 200?, sc5dndc2v ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 23)", MACHINE_IS_SKELETON_MECHANICAL )// ^^
+GAME( 200?, sc5dndc2w ,sc5dndc2, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1964) (Bellfruit) (Scorpion 5) (set 24)", MACHINE_IS_SKELETON_MECHANICAL )// PR1964 CASINO DOND MULTI DOND MULTIPLAYER ARCADE
+
+GAME( 200?, sc5dndc3 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1965) (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) // PR1965 CASINO DOND TOPBOX CASINO DOND ARCADE PR1965 CASINO DOND R SOUNDS11
+GAME( 200?, sc5dndc3a ,sc5dndc3, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1965) (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) // ^^
+GAME( 200?, sc5dndc3b ,sc5dndc3, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1965) (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) // ^^
+GAME( 200?, sc5dndc3c ,sc5dndc3, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Casino (PR1965) (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL ) // ^^
// PR3209 AWP DEAL OR NO DEAL BREAK THE BANK SCORP5 PR3209 BREAK THE BANK SOUNDS11 BREAK THE BANK S.SITE
-GAME( 200?, sc5dndbb ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbba ,sc5dndbb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbbb ,sc5dndbb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbbc ,sc5dndbb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbbd ,sc5dndbb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbbe ,sc5dndbb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbbf ,sc5dndbb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbbg ,sc5dndbb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbb ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbba ,sc5dndbb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbbb ,sc5dndbb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbbc ,sc5dndbb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbbd ,sc5dndbb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbbe ,sc5dndbb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbbf ,sc5dndbb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbbg ,sc5dndbb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Break The Bank (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
// PR???? CLUB DEAL OR NO DEAL DEAL OR NO DEAL CLUB PR3068 BEAT THE BANKER SOUNDS11 DEAL OR NO DEAL
-GAME( 200?, sc5dndcl ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Club (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndcla ,sc5dndcl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Club (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndcl ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Club (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndcla ,sc5dndcl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Club (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR???? CLUB DEAL OR NO DEAL BEAT THE BANKER CLUB PR3068 BEAT THE BANKER SOUNDS11 (there were in the Walk of Wealth sets)
-GAME( 200?, sc5dndcb ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Club Beat The Banker (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndcba ,sc5dndcb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Club Beat The Banker (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndcb ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Club Beat The Banker (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndcba ,sc5dndcb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Club Beat The Banker (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3215 AWP DEAL OR NO DEAL DOUBLE S5 PR3215 DOND DOUBLE SOUNDS11 DOUBLE DOND S.SITE
-GAME( 200?, sc5dnddd ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddda ,sc5dnddd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndddb ,sc5dnddd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndddc ,sc5dnddd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndddd ,sc5dnddd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddde ,sc5dnddd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndddf ,sc5dnddd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndddg ,sc5dnddd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndddh ,sc5dnddd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndddi ,sc5dnddd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddd ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddda ,sc5dnddd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndddb ,sc5dnddd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndddc ,sc5dnddd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndddd ,sc5dnddd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddde ,sc5dnddd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndddf ,sc5dnddd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndddg ,sc5dnddd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndddh ,sc5dnddd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndddi ,sc5dnddd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Double Deal Or No Deal (Bellfruit) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3008 DEAL OR NO DEAL HALL OF FAME SCORP5 PR3008 HALL OF FAME SOUNDS11 HALL OF FAME S.SITE
-GAME( 200?, sc5dndhf ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndhfa ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndhfb ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndhfc ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndhfd ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndhfe ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndhff ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndhfg ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndhfh ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndhfi ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndhfj ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 11)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndhfk ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 12)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndhfl ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 13)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndhfm ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 14)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndhfn ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 15)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndhfo ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 16)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndhfp ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 17)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndhfq ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 18)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndhfr ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 19)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndhfs ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 20)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndhft ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 21)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndhfu ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 22)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndhf ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndhfa ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndhfb ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndhfc ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndhfd ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndhfe ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndhff ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndhfg ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndhfh ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndhfi ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndhfj ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 11)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndhfk ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 12)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndhfl ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 13)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndhfm ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 14)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndhfn ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 15)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndhfo ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 16)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndhfp ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 17)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndhfq ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 18)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndhfr ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 19)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndhfs ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 20)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndhft ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 21)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndhfu ,sc5dndhf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Hall Of Fame (Bellfruit) (Scorpion 5) (set 22)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3207 AWP DEAL OR NO DEAL ITS YOUR SHOW SCORP5 PR3207 ITS YOUR SHOW SOUNDS11 ITS YOUR SHOW S.SITE
-GAME( 200?, sc5dndys ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndysa ,sc5dndys, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndysb ,sc5dndys, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndysc ,sc5dndys, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndysd ,sc5dndys, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndyse ,sc5dndys, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndysf ,sc5dndys, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndysg ,sc5dndys, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndysh ,sc5dndys, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndys ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndysa ,sc5dndys, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndysb ,sc5dndys, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndysc ,sc5dndys, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndysd ,sc5dndys, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndyse ,sc5dndys, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndysf ,sc5dndys, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndysg ,sc5dndys, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndysh ,sc5dndys, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal It's Your Show (Bellfruit) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3232 AWP DEAL OR NO DEAL LETS PLAY DEAL OR NO DEAL SCORP5 PR3212 LETS PLAY DOND SOUNDS11 LETS PLAY DOND S.SITE
-GAME( 200?, sc5dndlp ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndlpa ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndlpb ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndlpc ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndlpd ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndlpe ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndlpf ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndlpg ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndlph ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndlpi ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndlpj ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 11)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndlpk ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 12)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndlpl ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 13)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndlpm ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 14)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndlpn ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 15)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndlpo ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 16)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndlpp ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 17)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndlpq ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 18)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndlpr ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 19)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndlps ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 20)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndlpt ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 21)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndlpu ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 22)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndlp ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndlpa ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndlpb ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndlpc ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndlpd ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndlpe ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndlpf ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndlpg ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndlph ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndlpi ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndlpj ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 11)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndlpk ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 12)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndlpl ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 13)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndlpm ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 14)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndlpn ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 15)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndlpo ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 16)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndlpp ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 17)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndlpq ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 18)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndlpr ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 19)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndlps ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 20)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndlpt ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 21)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndlpu ,sc5dndlp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Let's Play Deal Or No Deal (Bellfruit) (Scorpion 5) (set 22)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3201 AWP DEAL OR NO DEAL RED ALERT SCORP5 PR3201 DOND RED ALERT SOUNDS11 RED ALERT S.SITE
-GAME( 200?, sc5dndra ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Red Alert (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndraa ,sc5dndra, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Red Alert (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndrab ,sc5dndra, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Red Alert (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndrac ,sc5dndra, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Red Alert (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndrad ,sc5dndra, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Red Alert (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndrae ,sc5dndra, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Red Alert (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndraf ,sc5dndra, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Red Alert (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndrag ,sc5dndra, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Red Alert (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndrah ,sc5dndra, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Red Alert (Bellfruit) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndrai ,sc5dndra, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Red Alert (Bellfruit) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndraj ,sc5dndra, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Red Alert (Bellfruit) (Scorpion 5) (set 11)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndrak ,sc5dndra, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Red Alert (Bellfruit) (Scorpion 5) (set 12)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndra ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Red Alert (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndraa ,sc5dndra, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Red Alert (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndrab ,sc5dndra, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Red Alert (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndrac ,sc5dndra, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Red Alert (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndrad ,sc5dndra, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Red Alert (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndrae ,sc5dndra, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Red Alert (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndraf ,sc5dndra, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Red Alert (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndrag ,sc5dndra, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Red Alert (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndrah ,sc5dndra, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Red Alert (Bellfruit) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndrai ,sc5dndra, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Red Alert (Bellfruit) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndraj ,sc5dndra, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Red Alert (Bellfruit) (Scorpion 5) (set 11)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndrak ,sc5dndra, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Red Alert (Bellfruit) (Scorpion 5) (set 12)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3210 AWP DEAL OR NO DEAL THE BIG DEAL SCORP5 PR3210 THE BIG DEAL SOUNDS11 THE BIG DEAL S.SITE
-GAME( 200?, sc5dndbd ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbda ,sc5dndbd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbdb ,sc5dndbd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbdc ,sc5dndbd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbdd ,sc5dndbd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbde ,sc5dndbd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbdf ,sc5dndbd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbdg ,sc5dndbd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbdh ,sc5dndbd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbdi ,sc5dndbd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbd ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbda ,sc5dndbd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbdb ,sc5dndbd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbdc ,sc5dndbd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbdd ,sc5dndbd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbde ,sc5dndbd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbdf ,sc5dndbd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbdg ,sc5dndbd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbdh ,sc5dndbd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbdi ,sc5dndbd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Deal (Bellfruit) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3011 AWP DEAL OR NO DEAL THE BIG REDS S5 PR3011 THE BIG REDS SOUNDS11 THE BIG REDS S.SITE
-GAME( 200?, sc5dndbr ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbra ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbrd ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbrf ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbrg ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbrj ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbrl ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbrm ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbrn ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbro ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbrp ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 11)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbrq ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 12)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbrr ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 13)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbrs ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 14)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbrt ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 15)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbru ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 16)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbrv ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 17)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbrw ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 18)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbr ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbra ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbrd ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbrf ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbrg ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbrj ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbrl ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbrm ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbrn ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbro ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbrp ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 11)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbrq ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 12)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbrr ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 13)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbrs ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 14)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbrt ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 15)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbru ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 16)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbrv ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 17)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbrw ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3011) (Bellfruit) (Scorpion 5) (set 18)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3018 AWP DEAL OR NO DEAL THE BIG REDS S5 PR3011 THE BIG REDS SOUNDS11 THE BIG REDS S.SITE
-GAME( 200?, sc5dndbrb ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3018) (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbrc ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3018) (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbre ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3018) (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbrh ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3018) (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbri ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3018) (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbrk ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3018) (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbrb ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3018) (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbrc ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3018) (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbre ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3018) (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbrh ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3018) (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbri ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3018) (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbrk ,sc5dndbr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Big Reds (PR3018) (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3017 AWP DEAL OR NO DEAL THE CRAZY CHAIR SCORP5 PR3017 CRAZY CHAIR SOUNDS11 CRAZY CHAIR S.SITE
-GAME( 200?, sc5dndcc ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndcca ,sc5dndcc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndccb ,sc5dndcc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndccc ,sc5dndcc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndccd ,sc5dndcc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndcce ,sc5dndcc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndccf ,sc5dndcc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndccg ,sc5dndcc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndcch ,sc5dndcc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndcci ,sc5dndcc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndccj ,sc5dndcc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 11)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndcck ,sc5dndcc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 12)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndccl ,sc5dndcc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 13)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndccm ,sc5dndcc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 14)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndccn ,sc5dndcc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 15)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndcco ,sc5dndcc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 16)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndccp ,sc5dndcc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 17)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndccq ,sc5dndcc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 18)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndccr ,sc5dndcc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 19)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndcc ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndcca ,sc5dndcc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndccb ,sc5dndcc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndccc ,sc5dndcc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndccd ,sc5dndcc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndcce ,sc5dndcc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndccf ,sc5dndcc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndccg ,sc5dndcc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndcch ,sc5dndcc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndcci ,sc5dndcc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndccj ,sc5dndcc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 11)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndcck ,sc5dndcc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 12)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndccl ,sc5dndcc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 13)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndccm ,sc5dndcc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 14)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndccn ,sc5dndcc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 15)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndcco ,sc5dndcc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 16)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndccp ,sc5dndcc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 17)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndccq ,sc5dndcc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 18)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndccr ,sc5dndcc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair (Bellfruit) (Scorpion 5) (set 19)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3250 DOND THE CRAZY CHAIR CRAZY CHAIR ARCADE PR3250 THE CRAZY CHAIR SOUNDS11
-GAME( 200?, sc5dndca ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair Arcade (PR3250) (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndcaa ,sc5dndca, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair Arcade (PR3250) (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndcab ,sc5dndca, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair Arcade (PR3250) (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndcac ,sc5dndca, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair Arcade (PR3250) (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndca ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair Arcade (PR3250) (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndcaa ,sc5dndca, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair Arcade (PR3250) (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndcab ,sc5dndca, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair Arcade (PR3250) (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndcac ,sc5dndca, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair Arcade (PR3250) (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3362 DOND THE CRAZY CHAIR CRAZY CHAIR ARCADE PR3362 THE CRAZY CHAIR SOUNDS11
-GAME( 200?, sc5dndcad ,sc5dndcc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair Arcade (PR3362) (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndcae ,sc5dndcc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair Arcade (PR3362) (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndcad ,sc5dndcc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair Arcade (PR3362) (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndcae ,sc5dndcc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Crazy Chair Arcade (PR3362) (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3013 AWP THE DEAL WHEEL S5 PR3202 THE DEAL WHEEL SOUNDS11 THE DEAL WHEEL S.SITE
-GAME( 200?, sc5dnddw ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddwa ,sc5dnddw, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddwb ,sc5dnddw, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddwc ,sc5dnddw, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddwd ,sc5dnddw, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddwe ,sc5dnddw, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddwf ,sc5dnddw, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddwg ,sc5dnddw, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddwh ,sc5dnddw, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddwi ,sc5dnddw, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddwj ,sc5dnddw, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 5) (set 11)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddw ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddwa ,sc5dnddw, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddwb ,sc5dnddw, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddwc ,sc5dnddw, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddwd ,sc5dnddw, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddwe ,sc5dnddw, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddwf ,sc5dnddw, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddwg ,sc5dnddw, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddwh ,sc5dnddw, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddwi ,sc5dnddw, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddwj ,sc5dnddw, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Deal Wheel (Bellfruit) (Scorpion 5) (set 11)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3014 AWP DEAL OR NO DEAL THE DREAM FACTORY SCORP5 PR3014 DREAM FACTORY SOUNDS11 DREAM FACTORY S.SITE
-GAME( 200?, sc5dnddf ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddfa ,sc5dnddf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddfb ,sc5dnddf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddfc ,sc5dnddf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddfd ,sc5dnddf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddfe ,sc5dnddf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddff ,sc5dnddf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddfg ,sc5dnddf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddfh ,sc5dnddf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddfi ,sc5dnddf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddfj ,sc5dnddf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 11)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddfk ,sc5dnddf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 12)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddfl ,sc5dnddf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 13)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddfm ,sc5dnddf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 14)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dnddfn ,sc5dnddf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 15)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddf ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddfa ,sc5dnddf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddfb ,sc5dnddf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddfc ,sc5dnddf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddfd ,sc5dnddf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddfe ,sc5dnddf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddff ,sc5dnddf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddfg ,sc5dnddf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddfh ,sc5dnddf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddfi ,sc5dnddf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddfj ,sc5dnddf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 11)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddfk ,sc5dnddf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 12)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddfl ,sc5dnddf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 13)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddfm ,sc5dnddf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 14)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dnddfn ,sc5dnddf, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Dream Factory (Bellfruit) (Scorpion 5) (set 15)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3220 AWP DEAL OR NO DEAL THE PERFECT GAME SCORP5 PR3220 DOND PERFECT SOUNDS11 THE PERFECT GAME S.SITE
-GAME( 200?, sc5dndpg ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndpga ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndpgb ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndpgc ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndpgd ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndpge ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndpgf ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndpgg ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndpgh ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndpgi ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndpgj ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 11)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndpgk ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 12)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndpgl ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 13)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndpgm ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 14)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndpgn ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 15)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndpgo ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 16)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndpgp ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 17)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndpgq ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 18)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndpgr ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 19)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndpgs ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 20)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndpgt ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 21)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndpgu ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 22)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndpgv ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 23)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndpgw ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 24)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndpg ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndpga ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndpgb ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndpgc ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndpgd ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndpge ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndpgf ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndpgg ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndpgh ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndpgi ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndpgj ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 11)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndpgk ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 12)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndpgl ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 13)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndpgm ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 14)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndpgn ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 15)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndpgo ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 16)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndpgp ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 17)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndpgq ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 18)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndpgr ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 19)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndpgs ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 20)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndpgt ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 21)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndpgu ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 22)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndpgv ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 23)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndpgw ,sc5dndpg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game (Bellfruit) (Scorpion 5) (set 24)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3403 AWP CLASSIC DEAL OR NO DEAL THE PERFECT GAME SCORP5 PR3220 DOND PERFECT SOUNDS11 THE PERFECT GAME S.SITE
-GAME( 200?, sc5dndpl ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game Classic (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndpla ,sc5dndpl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game Classic (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndplb ,sc5dndpl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game Classic (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndplc ,sc5dndpl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game Classic (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndpl ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game Classic (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndpla ,sc5dndpl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game Classic (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndplb ,sc5dndpl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game Classic (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndplc ,sc5dndpl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Perfect Game Classic (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3003 AWP DOND THE POWER 5 SCORP5 PR3033 POWER FIVE SOUNDS11 DOND THE POWER 5 S.SITE
-GAME( 200?, sc5dndtp ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndtpa ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndtpb ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndtpc ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndtpd ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndtpe ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndtpf ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndtpg ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndtph ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndtpi ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndtpj ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 11)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndtpk ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 12)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndtpl ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 13)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndtpm ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 14)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndtpn ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 15)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndtpo ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 16)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndtpp ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 17)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndtpq ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 18)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndtpr ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 19)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndtps ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 20)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndtpt ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 21)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndtpu ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 22)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndtpv ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 23)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndtp ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndtpa ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndtpb ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndtpc ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndtpd ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndtpe ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndtpf ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndtpg ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndtph ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndtpi ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndtpj ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 11)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndtpk ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 12)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndtpl ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 13)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndtpm ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 14)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndtpn ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 15)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndtpo ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 16)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndtpp ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 17)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndtpq ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 18)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndtpr ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 19)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndtps ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 20)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndtpt ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 21)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndtpu ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 22)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndtpv ,sc5dndtp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Power (Bellfruit) (Scorpion 5) (set 23)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3036 AWP DEAL OR NO DEAL THE WALK OF WEALTH SCORP5 PR3006 WALK OF WEALTH SOUNDS11 WALK OF WEALTH S.SITE
-GAME( 200?, sc5dndww ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwwa ,sc5dndww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwwb ,sc5dndww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwwc ,sc5dndww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwwd ,sc5dndww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwwe ,sc5dndww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwwf ,sc5dndww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwwg ,sc5dndww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwwh ,sc5dndww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwwi ,sc5dndww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwwj ,sc5dndww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 11)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwwk ,sc5dndww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 12)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwwl ,sc5dndww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 13)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwwm ,sc5dndww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 14)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwwn ,sc5dndww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 15)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwwo ,sc5dndww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 16)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwwp ,sc5dndww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 17)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwwq ,sc5dndww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 18)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwwr ,sc5dndww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 19)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwws ,sc5dndww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 20)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndww ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwwa ,sc5dndww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwwb ,sc5dndww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwwc ,sc5dndww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwwd ,sc5dndww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwwe ,sc5dndww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwwf ,sc5dndww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwwg ,sc5dndww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwwh ,sc5dndww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwwi ,sc5dndww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwwj ,sc5dndww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 11)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwwk ,sc5dndww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 12)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwwl ,sc5dndww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 13)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwwm ,sc5dndww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 14)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwwn ,sc5dndww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 15)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwwo ,sc5dndww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 16)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwwp ,sc5dndww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 17)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwwq ,sc5dndww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 18)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwwr ,sc5dndww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 19)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwws ,sc5dndww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth (Bellfruit) (Scorpion 5) (set 20)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3026 AWP CLASSIC DEAL OR NO DEAL THE WALK OF WEALTH SCORP5 PR3006 WALK OF WEALTH SOUNDS11 WALK OF WEALTH S.SITE
-GAME( 200?, sc5dndwc ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwca ,sc5dndwc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwcb ,sc5dndwc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwcc ,sc5dndwc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwcd ,sc5dndwc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwce ,sc5dndwc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwcf ,sc5dndwc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwcg ,sc5dndwc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwc ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwca ,sc5dndwc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwcb ,sc5dndwc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwcc ,sc5dndwc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwcd ,sc5dndwc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwce ,sc5dndwc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwcf ,sc5dndwc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwcg ,sc5dndwc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal The Walk Of Wealth Classic (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3304 DOND THINK RED S5 PR3304 THINK RED SOUNDS11 THINK RED S.SITE
-GAME( 200?, sc5dndtr ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Think Red (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndtra ,sc5dndtr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Think Red (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndtrb ,sc5dndtr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Think Red (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndtrc ,sc5dndtr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Think Red (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndtrd ,sc5dndtr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Think Red (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndtre ,sc5dndtr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Think Red (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndtrf ,sc5dndtr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Think Red (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndtrg ,sc5dndtr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Think Red (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndtrh ,sc5dndtr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Think Red (Bellfruit) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndtri ,sc5dndtr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Think Red (Bellfruit) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndtrj ,sc5dndtr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Think Red (Bellfruit) (Scorpion 5) (set 11)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndtrk ,sc5dndtr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Think Red (Bellfruit) (Scorpion 5) (set 12)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndtr ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Think Red (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndtra ,sc5dndtr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Think Red (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndtrb ,sc5dndtr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Think Red (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndtrc ,sc5dndtr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Think Red (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndtrd ,sc5dndtr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Think Red (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndtre ,sc5dndtr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Think Red (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndtrf ,sc5dndtr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Think Red (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndtrg ,sc5dndtr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Think Red (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndtrh ,sc5dndtr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Think Red (Bellfruit) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndtri ,sc5dndtr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Think Red (Bellfruit) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndtrj ,sc5dndtr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Think Red (Bellfruit) (Scorpion 5) (set 11)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndtrk ,sc5dndtr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Think Red (Bellfruit) (Scorpion 5) (set 12)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1962 AWP DEAL OR NO DEAL WHATS IN YOUR BOX SCORP5 PR1962 WHATS IN Y BOX SOUNDS11 WHATS IN YOUR BX S.SITE
-GAME( 200?, sc5dndwb ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwba ,sc5dndwb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwbb ,sc5dndwb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwbc ,sc5dndwb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwbd ,sc5dndwb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwbe ,sc5dndwb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwbf ,sc5dndwb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwbg ,sc5dndwb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwbh ,sc5dndwb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwbi ,sc5dndwb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwbj ,sc5dndwb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 11)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwbk ,sc5dndwb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 12)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwbl ,sc5dndwb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 13)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwbm ,sc5dndwb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 14)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwbn ,sc5dndwb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 15)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwbo ,sc5dndwb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 16)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwbp ,sc5dndwb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 17)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwbq ,sc5dndwb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 18)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwbr ,sc5dndwb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 19)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwbs ,sc5dndwb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 20)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwb ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwba ,sc5dndwb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwbb ,sc5dndwb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwbc ,sc5dndwb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwbd ,sc5dndwb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwbe ,sc5dndwb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwbf ,sc5dndwb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwbg ,sc5dndwb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwbh ,sc5dndwb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwbi ,sc5dndwb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwbj ,sc5dndwb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 11)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwbk ,sc5dndwb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 12)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwbl ,sc5dndwb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 13)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwbm ,sc5dndwb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 14)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwbn ,sc5dndwb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 15)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwbo ,sc5dndwb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 16)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwbp ,sc5dndwb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 17)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwbq ,sc5dndwb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 18)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwbr ,sc5dndwb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 19)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwbs ,sc5dndwb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box (Bellfruit) (Scorpion 5) (set 20)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3071 CASINO DOND WIYB REELS CASINO DOND ARCADE PR3071 W IN YOUR BOX SOUNDS11
-GAME( 200?, sc5dndwi ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box Casino (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwia ,sc5dndwi, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box Casino (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwib ,sc5dndwi, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box Casino (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwic ,sc5dndwi, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box Casino (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwid ,sc5dndwi, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box Casino (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwie ,sc5dndwi, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box Casino (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwif ,sc5dndwi, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box Casino (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndwig ,sc5dndwi, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box Casino (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwi ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box Casino (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwia ,sc5dndwi, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box Casino (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwib ,sc5dndwi, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box Casino (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwic ,sc5dndwi, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box Casino (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwid ,sc5dndwi, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box Casino (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwie ,sc5dndwi, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box Casino (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwif ,sc5dndwi, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box Casino (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndwig ,sc5dndwi, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal What's In Your Box Casino (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1307 AWP DIAMOND MINE PR1307 DIAM MINE SOUNDS11
-GAME( 2002, sc5dmine ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Diamond Mine (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, sc5dminea ,sc5dmine, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Diamond Mine (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, sc5dmineb ,sc5dmine, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Diamond Mine (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, sc5dminec ,sc5dmine, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Diamond Mine (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, sc5dmined ,sc5dmine, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Diamond Mine (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, sc5dminee ,sc5dmine, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Diamond Mine (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, sc5dminef ,sc5dmine, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Diamond Mine (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, sc5dmineg ,sc5dmine, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Diamond Mine (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, sc5dmineh ,sc5dmine, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Diamond Mine (Bellfruit) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, sc5dminei ,sc5dmine, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Diamond Mine (Bellfruit) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 2002, sc5dmine ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Diamond Mine (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, sc5dminea ,sc5dmine, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Diamond Mine (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, sc5dmineb ,sc5dmine, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Diamond Mine (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, sc5dminec ,sc5dmine, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Diamond Mine (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, sc5dmined ,sc5dmine, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Diamond Mine (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, sc5dminee ,sc5dmine, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Diamond Mine (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, sc5dminef ,sc5dmine, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Diamond Mine (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, sc5dmineg ,sc5dmine, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Diamond Mine (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, sc5dmineh ,sc5dmine, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Diamond Mine (Bellfruit) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, sc5dminei ,sc5dmine, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Diamond Mine (Bellfruit) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1307 AWP DIAMOND MINE PR1307 DIAM MINE SOUNDS11 DIAMOND MINE S.SITE
-GAME( 2002, sc5dminej ,sc5dmine, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Diamond Mine (Bellfruit) (Scorpion 5) (set 11)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, sc5dminek ,sc5dmine, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Diamond Mine (Bellfruit) (Scorpion 5) (set 12)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, sc5dminel ,sc5dmine, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Diamond Mine (Bellfruit) (Scorpion 5) (set 13)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 2002, sc5dminej ,sc5dmine, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Diamond Mine (Bellfruit) (Scorpion 5) (set 11)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, sc5dminek ,sc5dmine, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Diamond Mine (Bellfruit) (Scorpion 5) (set 12)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, sc5dminel ,sc5dmine, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Diamond Mine (Bellfruit) (Scorpion 5) (set 13)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1394 AWP DOCTOR DOSH SCORP5 PR1309 DOCTOR DOSH SOUNDS11
-GAME( 200?, sc5ddosh ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Doctor Dosh (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ddosha ,sc5ddosh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Doctor Dosh (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ddosh ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Doctor Dosh (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ddosha ,sc5ddosh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Doctor Dosh (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1716 AWP DOUGH HO HO S5 PR1716 DOUGH HO HO SOUNDS11 DOUGH HO HO S.SITE
-GAME( 200?, sc5dhh ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Dough Ho Ho (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dhha ,sc5dhh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Dough Ho Ho (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dhhb ,sc5dhh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Dough Ho Ho (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dhhc ,sc5dhh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Dough Ho Ho (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dhhd ,sc5dhh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Dough Ho Ho (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dhhe ,sc5dhh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Dough Ho Ho (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dhhf ,sc5dhh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Dough Ho Ho (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dhhg ,sc5dhh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Dough Ho Ho (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL ) // incomplete pairing
+GAME( 200?, sc5dhh ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Dough Ho Ho (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dhha ,sc5dhh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Dough Ho Ho (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dhhb ,sc5dhh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Dough Ho Ho (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dhhc ,sc5dhh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Dough Ho Ho (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dhhd ,sc5dhh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Dough Ho Ho (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dhhe ,sc5dhh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Dough Ho Ho (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dhhf ,sc5dhh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Dough Ho Ho (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dhhg ,sc5dhh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Dough Ho Ho (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL ) // incomplete pairing
// PR1615 AWP DOUGH SELECTA SCORP5 PR1615 DOUGH SELECTA SOUNDS11 DOUGH SELECTA S.SITE
-GAME( 200?, sc5dough ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Dough Selecta (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dougha ,sc5dough, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Dough Selecta (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dough ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Dough Selecta (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dougha ,sc5dough, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Dough Selecta (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2118 DUCKS OF HAZZARD DUCKSOFHAZZARDSND DUCKS OF HAZZARD
-GAME( 200?, sc5ducks ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Ducks Of Hazzard (Mazooma) (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ducks ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Ducks Of Hazzard (Mazooma) (Scorpion 5)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2313 EMMERDALE EMMR SOUNDS EMMERDALE
-GAME( 200?, sc5emmer ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Emmerdale (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5emmera ,sc5emmer, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Emmerdale (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5emmer ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Emmerdale (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5emmera ,sc5emmer, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Emmerdale (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3213 AWP FAMILY GUY S5 PR3213 FAMILY GUY SOUNDS11 FAMILY GUY S.SITE
-GAME( 200?, sc5fguy ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5fguya ,sc5fguy, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5fguyb ,sc5fguy, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5fguyc ,sc5fguy, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5fguyd ,sc5fguy, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5fguye ,sc5fguy, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5fguyf ,sc5fguy, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5fguyg ,sc5fguy, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5fguy ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5fguya ,sc5fguy, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5fguyb ,sc5fguy, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5fguyc ,sc5fguy, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5fguyd ,sc5fguy, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5fguye ,sc5fguy, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5fguyf ,sc5fguy, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5fguyg ,sc5fguy, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1701 AWP FAT BOY SPIN SCORP5 PR1701 FAT BOY SPIN SOUNDS11 FAT BOY SPIN S.SITE
-GAME( 200?, sc5fbspn ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Fat Boy Spin (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5fbspna ,sc5fbspn, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Fat Boy Spin (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5fbspn ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Fat Boy Spin (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5fbspna ,sc5fbspn, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Fat Boy Spin (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2328 FULL METAL JACKPOT FULLM SOUNDS F METAL JACKPOT
-GAME( 200?, sc5fmj ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Full Metal Jackpot (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5fmja ,sc5fmj, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Full Metal Jackpot (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5fmj ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Full Metal Jackpot (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5fmja ,sc5fmj, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Full Metal Jackpot (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2255 GLADIATOR GLAD SOUNDS GLADIATOR
-GAME( 200?, sc5glad ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Gladiator (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5glada ,sc5glad, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Gladiator (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gladb ,sc5glad, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Gladiator (Mazooma) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gladc ,sc5glad, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Gladiator (Mazooma) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5glad ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Gladiator (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5glada ,sc5glad, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Gladiator (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gladb ,sc5glad, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Gladiator (Mazooma) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gladc ,sc5glad, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Gladiator (Mazooma) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3509 AWP GOLD DIGGER SCORP5 PR3509 GOLD DIGGER SOUNDS11 GOLD DIGGER S.SITE
-GAME( 200?, sc5gd ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Digger (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gda ,sc5gd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Digger (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gd ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Digger (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gda ,sc5gd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Digger (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2325 GOLD DIGGERS GOLD SOUNDS GOLD DIGGERS
-GAME( 200?, sc5gdmz ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Gold Diggers (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gdmza ,sc5gdmz, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Gold Diggers (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gdmz ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Gold Diggers (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gdmza ,sc5gdmz, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Gold Diggers (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1137 CLUB GOLD DIGGER CLUB GOLD DIGGER CLUB PR1137 GOLDD CL SOUNDS11
-GAME( 200?, sc5gdclb ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Digger Club (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gdclba ,sc5gdclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Digger Club (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gdclbb ,sc5gdclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Digger Club (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gdclbc ,sc5gdclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Digger Club (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gdclbd ,sc5gdclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Digger Club (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gdclbe ,sc5gdclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Digger Club (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gdclbf ,sc5gdclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Digger Club (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gdclbg ,sc5gdclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Digger Club (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gdclb ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Digger Club (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gdclba ,sc5gdclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Digger Club (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gdclbb ,sc5gdclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Digger Club (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gdclbc ,sc5gdclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Digger Club (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gdclbd ,sc5gdclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Digger Club (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gdclbe ,sc5gdclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Digger Club (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gdclbf ,sc5gdclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Digger Club (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gdclbg ,sc5gdclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Digger Club (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3429 CLUB GOLD DIGGER CLUB GOLD DIGGER CLUB PR1137 GOLDD CL SOUNDS11
-GAME( 200?, sc5gdclbj ,sc5gdclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Digger Club (PR3429) (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gdclbk ,sc5gdclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Digger Club (PR3429) (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gdclbj ,sc5gdclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Digger Club (PR3429) (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gdclbk ,sc5gdclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Digger Club (PR3429) (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3509 AWP GOLD DIGGER SCORP5 PR3509 GOLD DIGGER SOUNDS11 GOLD DIGGER S.SITE
-GAME( 200?, sc5gdclbh ,sc5gdclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Digger (PR3509) (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gdclbi ,sc5gdclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Digger (PR3509) (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gdclbh ,sc5gdclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Digger (PR3509) (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gdclbi ,sc5gdclb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gold Digger (PR3509) (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1604 AWP GOLDEN BALLS PR1604 GOLDEN BALLS SOUNDS12 GOLDEN BALLS S.SITE (same as the sc5 version)
-GAME( 200?, sc5gball ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Golden Balls (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gballa ,sc5gball, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Golden Balls (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gballb ,sc5gball, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Golden Balls (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gballc ,sc5gball, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Golden Balls (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gball ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Golden Balls (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gballa ,sc5gball, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Golden Balls (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gballb ,sc5gball, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Golden Balls (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gballc ,sc5gball, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Golden Balls (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2208 GOLDEN GAME PLASMA GOLDEN GAME MAZ BARX SOUNDS
-GAME( 200?, sc5ggame ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Game (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ggamea ,sc5ggame, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Game (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ggameb ,sc5ggame, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Game (Mazooma) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ggamec ,sc5ggame, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Game (Mazooma) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ggamed ,sc5ggame, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Game (Mazooma) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ggame ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Game (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ggamea ,sc5ggame, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Game (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ggameb ,sc5ggame, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Game (Mazooma) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ggamec ,sc5ggame, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Game (Mazooma) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ggamed ,sc5ggame, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Golden Game (Mazooma) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ggg ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Grand Golden Game (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL ) // PR2371 GRAND GOLDEN GAME GRAND GOLDEN GAM MAZ ( GOLD X TRIPLE
-GAME( 200?, sc5ggga ,sc5ggg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Grand Golden Game (Mazooma) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL ) // ^^
-GAME( 200?, sc5gggb ,sc5ggg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Grand Golden Game (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL ) // PR2353 GRAND GOLDEN GAME GRAND GOLDEN GAM MAZ BARX SOUNDS GOLDEN GAME
-GAME( 200?, sc5gggc ,sc5ggg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Grand Golden Game (Mazooma) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL ) // ^^
+GAME( 200?, sc5ggg ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Grand Golden Game (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) // PR2371 GRAND GOLDEN GAME GRAND GOLDEN GAM MAZ ( GOLD X TRIPLE
+GAME( 200?, sc5ggga ,sc5ggg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Grand Golden Game (Mazooma) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) // ^^
+GAME( 200?, sc5gggb ,sc5ggg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Grand Golden Game (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) // PR2353 GRAND GOLDEN GAME GRAND GOLDEN GAM MAZ BARX SOUNDS GOLDEN GAME
+GAME( 200?, sc5gggc ,sc5ggg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Grand Golden Game (Mazooma) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL ) // ^^
// PR3016 AWP THE GUNPOWDER SLOT S5 PR3016 GUNPOWDER SLOT SOUNDS11 GUNPOWDER SLOT S.SITE
-GAME( 200?, sc5gunp ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gunpa ,sc5gunp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gunpb ,sc5gunp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gunpc ,sc5gunp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gunpd ,sc5gunp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gunpe ,sc5gunp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gunpf ,sc5gunp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gunpg ,sc5gunp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gunph ,sc5gunp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gunpi ,sc5gunp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gunpj ,sc5gunp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 5) (set 11)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gunpk ,sc5gunp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 5) (set 12)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5gunpl ,sc5gunp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 5) (set 13)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gunp ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gunpa ,sc5gunp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gunpb ,sc5gunp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gunpc ,sc5gunp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gunpd ,sc5gunp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gunpe ,sc5gunp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gunpf ,sc5gunp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gunpg ,sc5gunp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gunph ,sc5gunp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gunpi ,sc5gunp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gunpj ,sc5gunp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 5) (set 11)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gunpk ,sc5gunp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 5) (set 12)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5gunpl ,sc5gunp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Gunpowder Slot (Bellfruit) (Scorpion 5) (set 13)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1388 AWP HAPPY NOTES SCORP5 PR1306 HAPPY NOTES SOUNDS11
-GAME( 200?, sc5hapnt ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Happy Notes (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hapnta ,sc5hapnt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Happy Notes (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hapntb ,sc5hapnt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Happy Notes (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hapntc ,sc5hapnt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Happy Notes (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hapntd ,sc5hapnt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Happy Notes (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hapnte ,sc5hapnt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Happy Notes (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hapntf ,sc5hapnt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Happy Notes (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hapntg ,sc5hapnt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Happy Notes (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hapnt ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Happy Notes (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hapnta ,sc5hapnt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Happy Notes (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hapntb ,sc5hapnt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Happy Notes (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hapntc ,sc5hapnt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Happy Notes (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hapntd ,sc5hapnt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Happy Notes (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hapnte ,sc5hapnt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Happy Notes (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hapntf ,sc5hapnt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Happy Notes (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hapntg ,sc5hapnt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Happy Notes (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1402 AWP HELLS BELLS PR1402 HELLS BELLS SOUNDS11
-GAME( 200?, sc5hellb ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hells Bells (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hellba ,sc5hellb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hells Bells (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hellb ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hells Bells (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hellba ,sc5hellb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hells Bells (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1613 AWP HILLBILLIONAIRE SCORP5 PR1613 HILLBILLIONAIRE SOUNDS11 HILLBILLIONAIRE S.SITE
-GAME( 200?, sc5hill ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hill Billionaire (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hilla ,sc5hill, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hill Billionaire (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hillb ,sc5hill, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hill Billionaire (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hill ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hill Billionaire (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hilla ,sc5hill, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hill Billionaire (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hillb ,sc5hill, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hill Billionaire (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2176 HISSING QUID VIPA SOUNDS HISSING QUID
-GAME( 200?, sc5hiss ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Hissing Quid (Qps) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hissa ,sc5hiss, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Hissing Quid (Qps) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hissb ,sc5hiss, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Hissing Quid (Qps) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hissc ,sc5hiss, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Hissing Quid (Qps) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hiss ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Hissing Quid (Qps) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hissa ,sc5hiss, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Hissing Quid (Qps) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hissb ,sc5hiss, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Hissing Quid (Qps) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hissc ,sc5hiss, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Hissing Quid (Qps) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1936 AWP HOT DOG SCORP5 PR1916 HOT DOG SOUNDS11 HOT DOG S.SITE
-GAME( 200?, sc5hotdg ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Dog (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hotdga ,sc5hotdg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Dog (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hotdgb ,sc5hotdg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Dog (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hotdgc ,sc5hotdg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Dog (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hotdgd ,sc5hotdg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Dog (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hotdge ,sc5hotdg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Dog (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hotdg ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Dog (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hotdga ,sc5hotdg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Dog (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hotdgb ,sc5hotdg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Dog (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hotdgc ,sc5hotdg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Dog (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hotdgd ,sc5hotdg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Dog (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hotdge ,sc5hotdg, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Dog (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1733 AWP HOT ROD SCORP5 PR1713 HOT ROD SOUNDS11 HOT ROD S.SITE
-GAME( 200?, sc5hotrd ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Rod (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hotrda ,sc5hotrd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Rod (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hotrd ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Rod (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hotrda ,sc5hotrd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Rod (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3211 AWP HOT SHOT SCORP5 PR3211 HOT SHOT SOUNDS11 HOT SHOT S.SITE
-GAME( 200?, sc5hotsh ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Shot (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hotsha ,sc5hotsh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Shot (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hotshb ,sc5hotsh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Shot (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hotshc ,sc5hotsh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Shot (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hotshd ,sc5hotsh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Shot (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hotshe ,sc5hotsh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Shot (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hotshf ,sc5hotsh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Shot (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hotshg ,sc5hotsh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Shot (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hotshh ,sc5hotsh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Shot (Bellfruit) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hotshi ,sc5hotsh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Shot (Bellfruit) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hotshj ,sc5hotsh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Shot (Bellfruit) (Scorpion 5) (set 11)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hotshk ,sc5hotsh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Shot (Bellfruit) (Scorpion 5) (set 12)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hotshl ,sc5hotsh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Shot (Bellfruit) (Scorpion 5) (set 13)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hotshm ,sc5hotsh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Shot (Bellfruit) (Scorpion 5) (set 14)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hotshn ,sc5hotsh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Shot (Bellfruit) (Scorpion 5) (set 15)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hotsho ,sc5hotsh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Shot (Bellfruit) (Scorpion 5) (set 16)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hotshp ,sc5hotsh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Shot (Bellfruit) (Scorpion 5) (set 17)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hotshq ,sc5hotsh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Shot (Bellfruit) (Scorpion 5) (set 18)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hotsh ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Shot (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hotsha ,sc5hotsh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Shot (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hotshb ,sc5hotsh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Shot (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hotshc ,sc5hotsh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Shot (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hotshd ,sc5hotsh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Shot (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hotshe ,sc5hotsh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Shot (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hotshf ,sc5hotsh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Shot (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hotshg ,sc5hotsh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Shot (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hotshh ,sc5hotsh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Shot (Bellfruit) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hotshi ,sc5hotsh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Shot (Bellfruit) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hotshj ,sc5hotsh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Shot (Bellfruit) (Scorpion 5) (set 11)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hotshk ,sc5hotsh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Shot (Bellfruit) (Scorpion 5) (set 12)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hotshl ,sc5hotsh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Shot (Bellfruit) (Scorpion 5) (set 13)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hotshm ,sc5hotsh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Shot (Bellfruit) (Scorpion 5) (set 14)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hotshn ,sc5hotsh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Shot (Bellfruit) (Scorpion 5) (set 15)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hotsho ,sc5hotsh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Shot (Bellfruit) (Scorpion 5) (set 16)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hotshp ,sc5hotsh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Shot (Bellfruit) (Scorpion 5) (set 17)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hotshq ,sc5hotsh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Shot (Bellfruit) (Scorpion 5) (set 18)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1311 HOT WAD PR1311 HOT WAD SOUNDS11
-GAME( 200?, sc5hotwd ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Wad (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hotwda ,sc5hotwd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Wad (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hotwdb ,sc5hotwd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Wad (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hotwdc ,sc5hotwd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Wad (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hotwdd ,sc5hotwd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Wad (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hotwde ,sc5hotwd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Wad (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hotwdf ,sc5hotwd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Wad (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5hotwdg ,sc5hotwd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Wad (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hotwd ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Wad (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hotwda ,sc5hotwd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Wad (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hotwdb ,sc5hotwd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Wad (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hotwdc ,sc5hotwd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Wad (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hotwdd ,sc5hotwd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Wad (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hotwde ,sc5hotwd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Wad (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hotwdf ,sc5hotwd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Wad (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5hotwdg ,sc5hotwd, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hot Wad (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1603 AWP IM A CELEBRITY PR1603 IM A CELEB SOUNDS11 IM A CELEBRITY S.SITE
-GAME( 200?, sc5celeb ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","I'm A Celebrity (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5celeba ,sc5celeb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","I'm A Celebrity (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5celebb ,sc5celeb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","I'm A Celebrity (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5celebc ,sc5celeb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","I'm A Celebrity (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5celebd ,sc5celeb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","I'm A Celebrity (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5celeb ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","I'm A Celebrity (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5celeba ,sc5celeb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","I'm A Celebrity (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5celebb ,sc5celeb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","I'm A Celebrity (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5celebc ,sc5celeb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","I'm A Celebrity (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5celebd ,sc5celeb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","I'm A Celebrity (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2555 INNER SPIN V013 INNERSPINSND INNER SPIN
-GAME( 200?, sc5inspn ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Inner Spin (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5inspna ,sc5inspn, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Inner Spin (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5inspn ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Inner Spin (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5inspna ,sc5inspn, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Inner Spin (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2366 AWP THE ITALIAN JOB S5 PR2366 THE ITALIAN JOB SOUNDS11 ITALIAN JOB S.SITE
-GAME( 200?, sc5ijob ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ijoba ,sc5ijob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ijobb ,sc5ijob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ijobc ,sc5ijob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ijobd ,sc5ijob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ijobe ,sc5ijob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ijobf ,sc5ijob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ijobg ,sc5ijob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ijobh ,sc5ijob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ijobi ,sc5ijob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ijob ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ijoba ,sc5ijob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ijobb ,sc5ijob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ijobc ,sc5ijob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ijobd ,sc5ijob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ijobe ,sc5ijob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ijobf ,sc5ijob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ijobg ,sc5ijob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ijobh ,sc5ijob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ijobi ,sc5ijob, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Italian Job (Mazooma) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1609 JACKPOT JOKERS PR1609 JACKPOT JOKERS SOUNDS11 JACKPOT JOKERS S.SITE
-GAME( 200?, sc5jjok ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Jackpot Jokers (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5jjoka ,sc5jjok, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Jackpot Jokers (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5jjok ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Jackpot Jokers (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5jjoka ,sc5jjok, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Jackpot Jokers (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2376 LITTLE DEVIL LDEVIL SOUNDS LITTLE DEVIL
-GAME( 200?, sc5ldvl ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Little Devil (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ldvla ,sc5ldvl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Little Devil (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ldvlb ,sc5ldvl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Little Devil (Mazooma) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ldvlc ,sc5ldvl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Little Devil (Mazooma) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ldvld ,sc5ldvl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Little Devil (Mazooma) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ldvle ,sc5ldvl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Little Devil (Mazooma) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ldvl ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Little Devil (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ldvla ,sc5ldvl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Little Devil (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ldvlb ,sc5ldvl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Little Devil (Mazooma) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ldvlc ,sc5ldvl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Little Devil (Mazooma) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ldvld ,sc5ldvl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Little Devil (Mazooma) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ldvle ,sc5ldvl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Little Devil (Mazooma) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1413 AWP RETURN OF THE KING PR1413 RETURN OF THE SOUNDS11 RETURN OF KING S.SITE
-GAME( 200?, sc5lotrr ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5lotrra ,sc5lotrr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5lotrrb ,sc5lotrr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5lotrrc ,sc5lotrr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5lotrrd ,sc5lotrr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5lotrre ,sc5lotrr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5lotrrf ,sc5lotrr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5lotrrg ,sc5lotrr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5lotrrh ,sc5lotrr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5lotrri ,sc5lotrr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5lotrr ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5lotrra ,sc5lotrr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5lotrrb ,sc5lotrr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5lotrrc ,sc5lotrr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5lotrrd ,sc5lotrr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5lotrre ,sc5lotrr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5lotrrf ,sc5lotrr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5lotrrg ,sc5lotrr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5lotrrh ,sc5lotrr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5lotrri ,sc5lotrr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Lord Of The Rings - Return Of The King (Bellfruit) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3004 AWP MANIC MINER SCORP5 PR3004 MANIC MINER SOUNDS11 MANIC MINER S.SITE
-GAME( 200?, sc5manic ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5manica ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5manicb ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5manicc ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5manicd ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5manice ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5manicf ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5manicg ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5manich ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5manici ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5manicj ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 11)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5manick ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 12)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5manicl ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 13)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5manicm ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 14)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5manicn ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 15)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5manico ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 16)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5manicp ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 17)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5manicq ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 18)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5manicr ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 19)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5manics ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 20)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5manict ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 21)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5manicu ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 22)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5manicv ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 23)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5manicw ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 24)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5manicx ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 25)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5manicy ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 26)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5manic ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5manica ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5manicb ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5manicc ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5manicd ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5manice ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5manicf ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5manicg ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5manich ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5manici ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5manicj ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 11)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5manick ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 12)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5manicl ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 13)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5manicm ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 14)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5manicn ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 15)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5manico ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 16)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5manicp ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 17)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5manicq ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 18)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5manicr ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 19)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5manics ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 20)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5manict ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 21)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5manicu ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 22)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5manicv ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 23)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5manicw ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 24)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5manicx ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 25)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5manicy ,sc5manic, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Manic Miner (Bellfruit) (Scorpion 5) (set 26)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2282 MENTALMONEYMONSTERS MMMO SOUNDS MONEY MONSTERS
-GAME( 200?, sc5mmm ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Mental Money Monsters (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mmma ,sc5mmm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Mental Money Monsters (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mmmb ,sc5mmm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Mental Money Monsters (Mazooma) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mmmc ,sc5mmm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Mental Money Monsters (Mazooma) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mmm ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Mental Money Monsters (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mmma ,sc5mmm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Mental Money Monsters (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mmmb ,sc5mmm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Mental Money Monsters (Mazooma) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mmmc ,sc5mmm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Mental Money Monsters (Mazooma) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR0000 MONEY MADNESS MONM SOUNDS MONEY MADNESS
-GAME( 200?, sc5mmad ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Money Madness (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mmada ,sc5mmad, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Money Madness (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mmadb ,sc5mmad, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Money Madness (Mazooma) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mmadc ,sc5mmad, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Money Madness (Mazooma) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mmad ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Money Madness (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mmada ,sc5mmad, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Money Madness (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mmadb ,sc5mmad, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Money Madness (Mazooma) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mmadc ,sc5mmad, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Money Madness (Mazooma) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2395 MONEY SPINNER MONY SOUNDS NITH
-GAME( 200?, sc5monsp ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Money Spinner (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5monspa ,sc5monsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Money Spinner (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5monsp ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Money Spinner (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5monspa ,sc5monsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Money Spinner (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PROJECT NUMBER PR0_0_ MONOPOLY P_S_E_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _U_A_S_U_D_ _ _ _ _ _ _ _ _ _ _ _ _ _T_I_K_P_N_ _ _ _
-GAME( 200?, sc5monop ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly (Mazooma) (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL ) // incomplete pairing
+GAME( 200?, sc5monop ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly (Mazooma) (Scorpion 5)", MACHINE_IS_SKELETON_MECHANICAL ) // incomplete pairing
-GAME( 200?, sc5mcas ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Casino (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL ) // PR2372 CASINO MONOPOLY MONO SOUNDS CASINO MONOPOLY
-GAME( 200?, sc5mcasa ,sc5mcas, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Casino (Mazooma) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL ) // ^^
-GAME( 200?, sc5mcasb ,sc5mcas, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Casino (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL ) // PR2372 CASINO MONOPOLY CASINO MONOPOLY MAZ MONO SOUNDS CASINO MONOPOLY
-GAME( 200?, sc5mcasc ,sc5mcas, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Casino (Mazooma) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL ) // ^^
+GAME( 200?, sc5mcas ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Casino (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) // PR2372 CASINO MONOPOLY MONO SOUNDS CASINO MONOPOLY
+GAME( 200?, sc5mcasa ,sc5mcas, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Casino (Mazooma) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL ) // ^^
+GAME( 200?, sc5mcasb ,sc5mcas, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Casino (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL ) // PR2372 CASINO MONOPOLY CASINO MONOPOLY MAZ MONO SOUNDS CASINO MONOPOLY
+GAME( 200?, sc5mcasc ,sc5mcas, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Casino (Mazooma) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL ) // ^^
// PR3308 AWP MONOPOLY DOUBLE MONEY S5 PR3308 MPOLY D MONEY SOUNDS11 DOUBLE MONEY S.SITE
-GAME( 200?, sc5mdm ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Double Money (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mdma ,sc5mdm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Double Money (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mdmb ,sc5mdm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Double Money (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mdmc ,sc5mdm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Double Money (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mdm ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Double Money (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mdma ,sc5mdm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Double Money (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mdmb ,sc5mdm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Double Money (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mdmc ,sc5mdm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Double Money (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2380 MONOPOLY HERE AND NOW MR2R SOUNDS NITH
-GAME( 200?, sc5mhn ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Here & Now (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mhna ,sc5mhn, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Here & Now (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mhnb ,sc5mhn, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Here & Now (Mazooma) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mhnc ,sc5mhn, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Here & Now (Mazooma) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mhnd ,sc5mhn, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Here & Now (Mazooma) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mhne ,sc5mhn, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Here & Now (Mazooma) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mhn ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Here & Now (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mhna ,sc5mhn, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Here & Now (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mhnb ,sc5mhn, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Here & Now (Mazooma) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mhnc ,sc5mhn, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Here & Now (Mazooma) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mhnd ,sc5mhn, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Here & Now (Mazooma) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mhne ,sc5mhn, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Here & Now (Mazooma) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2345 AWP MONOPOLY HOT PROPERTY S5 PR2345 HOT PROPERTY SOUNDS11 HOT PROPERTY S.SITE
-GAME( 200?, sc5mhp ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mhpa ,sc5mhp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mhpb ,sc5mhp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mhpc ,sc5mhp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mhpd ,sc5mhp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mhpe ,sc5mhp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mhpf ,sc5mhp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mhpg ,sc5mhp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mhph ,sc5mhp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mhpi ,sc5mhp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mhpj ,sc5mhp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 5) (set 11)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mhpk ,sc5mhp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 5) (set 12)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mhpl ,sc5mhp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 5) (set 13)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mhp ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mhpa ,sc5mhp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mhpb ,sc5mhp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mhpc ,sc5mhp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mhpd ,sc5mhp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mhpe ,sc5mhp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mhpf ,sc5mhp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mhpg ,sc5mhp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mhph ,sc5mhp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mhpi ,sc5mhp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mhpj ,sc5mhp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 5) (set 11)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mhpk ,sc5mhp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 5) (set 12)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mhpl ,sc5mhp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Hot Property (Bellfruit) (Scorpion 5) (set 13)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3413 AWP MONOPOLY MONEYBAGS S5 PR3413 MONEYBAGS SOUNDS11 MONEYBAGS S.SITE
-GAME( 200?, sc5mmb ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Money Bags (PR3413) (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mmba ,sc5mmb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Money Bags (PR3413) (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mmbb ,sc5mmb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Money Bags (PR3413) (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mmbc ,sc5mmb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Money Bags (PR3413) (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mmb ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Money Bags (PR3413) (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mmba ,sc5mmb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Money Bags (PR3413) (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mmbb ,sc5mmb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Money Bags (PR3413) (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mmbc ,sc5mmb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Money Bags (PR3413) (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1911 AWP MONOLOLY MONEY BAGS SCORP5 PR1911 MPOLY MONEYBAGS SOUNDS11 MONEYBAGS S.SITE
-GAME( 200?, sc5mmbd ,sc5mmb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Money Bags (PR1911) (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mmbe ,sc5mmb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Money Bags (PR1911) (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mmbd ,sc5mmb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Money Bags (PR1911) (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mmbe ,sc5mmb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Money Bags (PR1911) (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2363 RED HOT MONOP RED HOT MONOPOLY MAZ MONO SOUNDS MONOPOLY
-GAME( 200?, sc5mrh ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Red Hot (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mrha ,sc5mrh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Red Hot (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mrh ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Red Hot (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mrha ,sc5mrh, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Red Hot (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2329 MONOPOLY ROAD TO RICHES MR2R SOUNDS ROAD TO RICHES
-GAME( 200?, sc5mr2r ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Road To Riches (PR2329) (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mr2ra ,sc5mr2r, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Road To Riches (PR2329) (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mr2r ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Road To Riches (PR2329) (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mr2ra ,sc5mr2r, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Road To Riches (PR2329) (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2457 ROADTORICHES CLUBROADTORICHES CLUB CRTR SOUNDS CLUB ROAD TO RICHES
-GAME( 200?, sc5mr2rb ,sc5mr2r, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Road To Riches Club (PR2457) (Mazooma) (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mr2rb ,sc5mr2r, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Road To Riches Club (PR2457) (Mazooma) (Scorpion 5)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2190 MONOPOLY WOW MONOPOLY WOW MAZ TWOW SOUNDS
-GAME( 200?, sc5mww ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Wonders Of The World (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mwwa ,sc5mww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Wonders Of The World (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mwwb ,sc5mww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Wonders Of The World (Mazooma) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mwwc ,sc5mww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Wonders Of The World (Mazooma) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mww ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Wonders Of The World (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mwwa ,sc5mww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Wonders Of The World (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mwwb ,sc5mww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Wonders Of The World (Mazooma) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mwwc ,sc5mww, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Wonders Of The World (Mazooma) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3002 AWP NIGHTMARE ON ELM STREET S5 PR3002 ELM STREET SOUNDS11 NIGHTMARE ELM ST S.SITE
-GAME( 200?, sc5nmare ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","A Nightmare On Elm Street (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5nmarea ,sc5nmare, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","A Nightmare On Elm Street (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5nmareb ,sc5nmare, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","A Nightmare On Elm Street (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5nmarec ,sc5nmare, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","A Nightmare On Elm Street (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5nmare ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","A Nightmare On Elm Street (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5nmarea ,sc5nmare, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","A Nightmare On Elm Street (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5nmareb ,sc5nmare, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","A Nightmare On Elm Street (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5nmarec ,sc5nmare, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","A Nightmare On Elm Street (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1612 PICK OF THE PACK PR1612 PICK OF THE PACK SOUNDS11 PICK OF THE PACK S.SITE
-GAME( 2005, sc5potp ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pick Of The Pack (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 2005, sc5potpa ,sc5potp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pick Of The Pack (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 2005, sc5potp ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pick Of The Pack (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2005, sc5potpa ,sc5potp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pick Of The Pack (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2562 PINK PANTHER PINK SOUNDS PINK PANTHER
-GAME( 200?, sc5pp ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Pink Panther (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ppa ,sc5pp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Pink Panther (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ppb ,sc5pp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Pink Panther (Mazooma) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ppc ,sc5pp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Pink Panther (Mazooma) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ppd ,sc5pp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Pink Panther (Mazooma) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ppe ,sc5pp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Pink Panther (Mazooma) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ppf ,sc5pp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Pink Panther (Mazooma) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ppg ,sc5pp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Pink Panther (Mazooma) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5pp ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Pink Panther (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ppa ,sc5pp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Pink Panther (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ppb ,sc5pp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Pink Panther (Mazooma) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ppc ,sc5pp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Pink Panther (Mazooma) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ppd ,sc5pp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Pink Panther (Mazooma) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ppe ,sc5pp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Pink Panther (Mazooma) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ppf ,sc5pp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Pink Panther (Mazooma) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ppg ,sc5pp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Pink Panther (Mazooma) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2279 PINK PANTHER CLOUSEAUS REVENGE REVENGE QPS REVENGE SOUNDS
-GAME( 200?, sc5ppcr ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma / QPS","Pink Panther Clouseau's Revenge (Mazooma / QPS) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ppcrb ,sc5ppcr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma / QPS","Pink Panther Clouseau's Revenge (Mazooma / QPS) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ppcrc ,sc5ppcr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma / QPS","Pink Panther Clouseau's Revenge (Mazooma / QPS) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ppcrd ,sc5ppcr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma / QPS","Pink Panther Clouseau's Revenge (Mazooma / QPS) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ppcr ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma / QPS","Pink Panther Clouseau's Revenge (Mazooma / QPS) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ppcrb ,sc5ppcr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma / QPS","Pink Panther Clouseau's Revenge (Mazooma / QPS) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ppcrc ,sc5ppcr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma / QPS","Pink Panther Clouseau's Revenge (Mazooma / QPS) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ppcrd ,sc5ppcr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma / QPS","Pink Panther Clouseau's Revenge (Mazooma / QPS) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2279 CLOUSEAUS REVENGE REVENGE SOUNDS
-GAME( 200?, sc5ppcra ,sc5ppcr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Pink Panther Clouseau's Revenge (Mazooma) (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ppcra ,sc5ppcr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Pink Panther Clouseau's Revenge (Mazooma) (Scorpion 5)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2407 AWP PINK PANTHER CRACK THE CODE SCORP5 PR2407 CRACK THE CODE SOUNDS11 CRACK THE CODE S.SITE
-GAME( 200?, sc5ppctc ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pink Panther Crack The Code (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ppctca ,sc5ppctc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pink Panther Crack The Code (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ppctcb ,sc5ppctc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pink Panther Crack The Code (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ppctcc ,sc5ppctc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pink Panther Crack The Code (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ppctcd ,sc5ppctc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pink Panther Crack The Code (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ppctce ,sc5ppctc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pink Panther Crack The Code (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ppctcf ,sc5ppctc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pink Panther Crack The Code (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ppctcg ,sc5ppctc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pink Panther Crack The Code (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ppctch ,sc5ppctc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pink Panther Crack The Code (Bellfruit) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ppctci ,sc5ppctc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pink Panther Crack The Code (Bellfruit) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ppctc ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pink Panther Crack The Code (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ppctca ,sc5ppctc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pink Panther Crack The Code (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ppctcb ,sc5ppctc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pink Panther Crack The Code (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ppctcc ,sc5ppctc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pink Panther Crack The Code (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ppctcd ,sc5ppctc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pink Panther Crack The Code (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ppctce ,sc5ppctc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pink Panther Crack The Code (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ppctcf ,sc5ppctc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pink Panther Crack The Code (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ppctcg ,sc5ppctc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pink Panther Crack The Code (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ppctch ,sc5ppctc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pink Panther Crack The Code (Bellfruit) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ppctci ,sc5ppctc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pink Panther Crack The Code (Bellfruit) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2330 PINK PANTHER DYM PINK PANTHER DYM QPS DYMN SOUNDS PINK PANTHER DYM
-GAME( 200?, sc5ppdym ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma / QPS","Pink Panther Double Your Money (Mazooma / QPS) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ppdyma ,sc5ppdym, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma / QPS","Pink Panther Double Your Money (Mazooma / QPS) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ppdym ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma / QPS","Pink Panther Double Your Money (Mazooma / QPS) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ppdyma ,sc5ppdym, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma / QPS","Pink Panther Double Your Money (Mazooma / QPS) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2303 STRIKES AGAIN PPSA SOUNDS STRIKES AGAIN
-GAME( 200?, sc5ppsag ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Pink Panther Strikes Again (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ppsaga ,sc5ppsag, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Pink Panther Strikes Again (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ppsagb ,sc5ppsag, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Pink Panther Strikes Again (Mazooma) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ppsagc ,sc5ppsag, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Pink Panther Strikes Again (Mazooma) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ppsagd ,sc5ppsag, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Pink Panther Strikes Again (Mazooma) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ppsage ,sc5ppsag, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Pink Panther Strikes Again (Mazooma) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ppsag ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Pink Panther Strikes Again (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ppsaga ,sc5ppsag, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Pink Panther Strikes Again (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ppsagb ,sc5ppsag, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Pink Panther Strikes Again (Mazooma) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ppsagc ,sc5ppsag, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Pink Panther Strikes Again (Mazooma) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ppsagd ,sc5ppsag, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Pink Panther Strikes Again (Mazooma) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ppsage ,sc5ppsag, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Pink Panther Strikes Again (Mazooma) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1408 PONY EXPRESS PR1408 PONY EXPRESS SOUNDS11 PONY EXPRESS S.SITE
-GAME( 200?, sc5pony ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pony Express (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ponya ,sc5pony, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pony Express (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ponyb ,sc5pony, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pony Express (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ponyc ,sc5pony, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pony Express (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ponyd ,sc5pony, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pony Express (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ponye ,sc5pony, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pony Express (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5pony ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pony Express (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ponya ,sc5pony, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pony Express (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ponyb ,sc5pony, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pony Express (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ponyc ,sc5pony, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pony Express (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ponyd ,sc5pony, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pony Express (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ponye ,sc5pony, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pony Express (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2417 AWP POPEYE S5 PR2417 POPEYE SOUNDS11 POPEYE S.SITE
-GAME( 200?, sc5popey ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Popeye (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5popeya ,sc5popey, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Popeye (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5popeyb ,sc5popey, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Popeye (Mazooma) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5popeyc ,sc5popey, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Popeye (Mazooma) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5popeyd ,sc5popey, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Popeye (Mazooma) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5popeye ,sc5popey, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Popeye (Mazooma) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5popeyf ,sc5popey, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Popeye (Mazooma) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5popeyg ,sc5popey, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Popeye (Mazooma) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5popey ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Popeye (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5popeya ,sc5popey, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Popeye (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5popeyb ,sc5popey, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Popeye (Mazooma) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5popeyc ,sc5popey, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Popeye (Mazooma) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5popeyd ,sc5popey, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Popeye (Mazooma) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5popeye ,sc5popey, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Popeye (Mazooma) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5popeyf ,sc5popey, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Popeye (Mazooma) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5popeyg ,sc5popey, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Popeye (Mazooma) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1918 AWP POTS OF GOLD SCORP5 PR1918 POTS OF GOLD SOUNDS11 POTS OF GOLD S.SITE
-GAME( 200?, sc5pog ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pots Of Gold (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5poga ,sc5pog, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pots Of Gold (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5pogb ,sc5pog, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pots Of Gold (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5pogc ,sc5pog, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pots Of Gold (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5pogd ,sc5pog, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pots Of Gold (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5poge ,sc5pog, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pots Of Gold (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5pogf ,sc5pog, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pots Of Gold (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5pogg ,sc5pog, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pots Of Gold (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5pog ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pots Of Gold (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5poga ,sc5pog, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pots Of Gold (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5pogb ,sc5pog, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pots Of Gold (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5pogc ,sc5pog, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pots Of Gold (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5pogd ,sc5pog, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pots Of Gold (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5poge ,sc5pog, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pots Of Gold (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5pogf ,sc5pog, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pots Of Gold (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5pogg ,sc5pog, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Pots Of Gold (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
// Z050 POTOFGLD PR000050 POTOFGLD 1 POTOFGLD AWP
-GAME( 200?, sc5potog ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "QPS","Pot Of Gold (QPS) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5potoga ,sc5potog, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "QPS","Pot Of Gold (QPS) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5potogb ,sc5potog, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "QPS","Pot Of Gold (QPS) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5potogc ,sc5potog, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "QPS","Pot Of Gold (QPS) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5potogd ,sc5potog, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "QPS","Pot Of Gold (QPS) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5potoge ,sc5potog, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "QPS","Pot Of Gold (QPS) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5potogf ,sc5potog, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "QPS","Pot Of Gold (QPS) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5potogg ,sc5potog, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "QPS","Pot Of Gold (QPS) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5potogh ,sc5potog, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "QPS","Pot Of Gold (QPS) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5potogi ,sc5potog, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "QPS","Pot Of Gold (QPS) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5potog ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "QPS","Pot Of Gold (QPS) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5potoga ,sc5potog, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "QPS","Pot Of Gold (QPS) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5potogb ,sc5potog, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "QPS","Pot Of Gold (QPS) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5potogc ,sc5potog, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "QPS","Pot Of Gold (QPS) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5potogd ,sc5potog, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "QPS","Pot Of Gold (QPS) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5potoge ,sc5potog, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "QPS","Pot Of Gold (QPS) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5potogf ,sc5potog, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "QPS","Pot Of Gold (QPS) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5potogg ,sc5potog, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "QPS","Pot Of Gold (QPS) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5potogh ,sc5potog, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "QPS","Pot Of Gold (QPS) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5potogi ,sc5potog, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "QPS","Pot Of Gold (QPS) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2272 POWER PLAY PPLY SOUNDS
-GAME( 200?, sc5pwrpl ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Power Play (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5pwrpla ,sc5pwrpl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Power Play (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5pwrpl ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Power Play (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5pwrpla ,sc5pwrpl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Power Play (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1614 AWP POWERBALL POWERBALL S.SITE PR1614 POWERBALL SOUNDS11
-GAME( 200?, sc5pwrbl ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Powerball (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5pwrbla ,sc5pwrbl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Powerball (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5pwrbl ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Powerball (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5pwrbla ,sc5pwrbl, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Powerball (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2342 QUID VICIOUS QUIDV SOUNDS QUID VICIOUS
-GAME( 200?, sc5quidv ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Quid Vicious (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5quidva ,sc5quidv, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Quid Vicious (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5quidvb ,sc5quidv, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Quid Vicious (Mazooma) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5quidvc ,sc5quidv, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Quid Vicious (Mazooma) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5quidvd ,sc5quidv, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Quid Vicious (Mazooma) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5quidve ,sc5quidv, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Quid Vicious (Mazooma) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5quidvf ,sc5quidv, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Quid Vicious (Mazooma) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5quidvg ,sc5quidv, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Quid Vicious (Mazooma) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5quidv ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Quid Vicious (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5quidva ,sc5quidv, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Quid Vicious (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5quidvb ,sc5quidv, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Quid Vicious (Mazooma) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5quidvc ,sc5quidv, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Quid Vicious (Mazooma) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5quidvd ,sc5quidv, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Quid Vicious (Mazooma) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5quidve ,sc5quidv, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Quid Vicious (Mazooma) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5quidvf ,sc5quidv, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Quid Vicious (Mazooma) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5quidvg ,sc5quidv, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Quid Vicious (Mazooma) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2077 RED HOT X SDRDX SOUNDS
-GAME( 200?, sc5rhx ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5rhx ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2077 RED HOT X SDRDX SOUNDS
-GAME( 200?, sc5rhxa ,sc5rhx, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5rhxb ,sc5rhx, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5rhxc ,sc5rhx, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5rhxd ,sc5rhx, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5rhxe ,sc5rhx, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5rhxf ,sc5rhx, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5rhxa ,sc5rhx, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5rhxb ,sc5rhx, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5rhxc ,sc5rhx, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5rhxd ,sc5rhx, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5rhxe ,sc5rhx, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5rhxf ,sc5rhx, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Red Hot X (Mazooma) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2364 CASINO RED HOT X RED HOT X CRHX SOUNDS RED HOT X
-GAME( 200?, sc5rhxcs ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Red Hot X Casino (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5rhxcsa ,sc5rhxcs, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Red Hot X Casino (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5rhxcs ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Red Hot X Casino (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5rhxcsa ,sc5rhxcs, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Red Hot X Casino (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2557 RED SQUARE REDS SOUNDS RED SQUARE
-GAME( 200?, sc5redsq ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Red Square (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5redsqa ,sc5redsq, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Red Square (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5redsq ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Red Square (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5redsqa ,sc5redsq, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Red Square (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3257 CLUB RONNIE O SULLIVANS TOURNAMENT SCORP5 RONNIE OSULLIVAN CLUB PR3256 RONNIE O SOUNDS11 RONNIE SULLIVAN
-GAME( 200?, sc5rosts ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5rostsa ,sc5rosts, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5rostsb ,sc5rosts, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5rostsc ,sc5rosts, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5rostsd ,sc5rosts, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5rostse ,sc5rosts, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5rosts ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5rostsa ,sc5rosts, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5rostsb ,sc5rosts, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5rostsc ,sc5rosts, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5rostsd ,sc5rosts, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5rostse ,sc5rosts, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ronnie O'Sullivan's Tournament Snooker (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2311 ROVERS RETURN ROVERS RETURN SOUNDS ROVERS RETURN
-GAME( 200?, sc5rovrt ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Rovers Return (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5rovrta ,sc5rovrt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Rovers Return (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5rovrtb ,sc5rovrt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Rovers Return (Mazooma) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5rovrtc ,sc5rovrt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Rovers Return (Mazooma) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5rovrt ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Rovers Return (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5rovrta ,sc5rovrt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Rovers Return (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5rovrtb ,sc5rovrt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Rovers Return (Mazooma) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5rovrtc ,sc5rovrt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Rovers Return (Mazooma) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2280 SHOW ME THE MONEY SMTM SOUNDS
-GAME( 200?, sc5smtm ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Show Me The Money (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5smtma ,sc5smtm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Show Me The Money (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5smtm ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Show Me The Money (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5smtma ,sc5smtm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Show Me The Money (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3013 AWP SHOW TIME S5 PR3013 SHOWTIME SOUNDS11 SHOW TIME S.SITE
-GAME( 200?, sc5showt ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5showta ,sc5showt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5showtb ,sc5showt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5showtc ,sc5showt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5showtd ,sc5showt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5showte ,sc5showt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5showtf ,sc5showt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5showtg ,sc5showt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5showth ,sc5showt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5showti ,sc5showt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5showtj ,sc5showt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 5) (set 11)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5showtk ,sc5showt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 5) (set 12)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5showtl ,sc5showt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 5) (set 13)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5showtm ,sc5showt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 5) (set 14)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5showtn ,sc5showt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 5) (set 15)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5showto ,sc5showt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 5) (set 16)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5showtp ,sc5showt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 5) (set 17)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5showtq ,sc5showt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 5) (set 18)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5showtr ,sc5showt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 5) (set 19)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5showts ,sc5showt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 5) (set 20)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5showt ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5showta ,sc5showt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5showtb ,sc5showt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5showtc ,sc5showt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5showtd ,sc5showt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5showte ,sc5showt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5showtf ,sc5showt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5showtg ,sc5showt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5showth ,sc5showt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5showti ,sc5showt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5showtj ,sc5showt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 5) (set 11)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5showtk ,sc5showt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 5) (set 12)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5showtl ,sc5showt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 5) (set 13)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5showtm ,sc5showt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 5) (set 14)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5showtn ,sc5showt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 5) (set 15)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5showto ,sc5showt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 5) (set 16)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5showtp ,sc5showt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 5) (set 17)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5showtq ,sc5showt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 5) (set 18)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5showtr ,sc5showt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 5) (set 19)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5showts ,sc5showt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Showtime (Bellfruit) (Scorpion 5) (set 20)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1411 AWP SNAKES AND LADDERS PR1411 SNAKES A L SOUNDS11
-GAME( 200?, sc5slad ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Snakes & Ladders (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5slada ,sc5slad, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Snakes & Ladders (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5sladb ,sc5slad, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Snakes & Ladders (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5sladc ,sc5slad, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Snakes & Ladders (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5sladd ,sc5slad, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Snakes & Ladders (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5slade ,sc5slad, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Snakes & Ladders (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5sladf ,sc5slad, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Snakes & Ladders (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5sladg ,sc5slad, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Snakes & Ladders (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5slad ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Snakes & Ladders (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5slada ,sc5slad, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Snakes & Ladders (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5sladb ,sc5slad, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Snakes & Ladders (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5sladc ,sc5slad, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Snakes & Ladders (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5sladd ,sc5slad, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Snakes & Ladders (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5slade ,sc5slad, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Snakes & Ladders (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5sladf ,sc5slad, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Snakes & Ladders (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5sladg ,sc5slad, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Snakes & Ladders (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1901 AWP SPICE IT UP SCORP5 PR1901 SPICE IT UP SOUNDS11 SPICE IT UP S.SITE
-GAME( 200?, sc5spice ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Spice It Up (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5spiceb ,sc5spice, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Spice It Up (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5spice ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Spice It Up (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5spiceb ,sc5spice, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Spice It Up (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1921 AWP SPICE IT UP SCORP4 PR1901 SPICE IT UP SOUNDS11 SPICE IT UP S.SITE (this header is incorrect, these are SCORP 5 sets, they use opcodes not present in the sc5 cpu and have the 'SC5' at the start of the ROM)
-GAME( 200?, sc5spicea ,sc5spice, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Spice It Up (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5spicec ,sc5spice, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Spice It Up (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5spiced ,sc5spice, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Spice It Up (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5spicee ,sc5spice, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Spice It Up (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5spicea ,sc5spice, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Spice It Up (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5spicec ,sc5spice, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Spice It Up (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5spiced ,sc5spice, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Spice It Up (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5spicee ,sc5spice, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Spice It Up (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2232 SPIN WHEN YOU'RE WINNING SPIN SOUNDS
-GAME( 200?, sc5swywm ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Spin When Your Winning (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5swywma ,sc5swywm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Spin When Your Winning (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5swywmb ,sc5swywm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Spin When Your Winning (Mazooma) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5swywmc ,sc5swywm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Spin When Your Winning (Mazooma) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5swywm ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Spin When Your Winning (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5swywma ,sc5swywm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Spin When Your Winning (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5swywmb ,sc5swywm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Spin When Your Winning (Mazooma) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5swywmc ,sc5swywm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Spin When Your Winning (Mazooma) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2176 SUMMIT UP SUMMIT SOUNDS SUMMIT UP H
-GAME( 200?, sc5sumit ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Summit Up (Qps) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5sumita ,sc5sumit, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Summit Up (Qps) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5sumit ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Summit Up (Qps) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5sumita ,sc5sumit, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Summit Up (Qps) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2255 SUITUSIR SUIT SOUNDS SUITS U SIR
-GAME( 200?, sc5sus ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Suits U Sir (Qps) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5susa ,sc5sus, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Suits U Sir (Qps) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5susb ,sc5sus, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Suits U Sir (Qps) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5susc ,sc5sus, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Suits U Sir (Qps) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5sus ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Suits U Sir (Qps) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5susa ,sc5sus, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Suits U Sir (Qps) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5susb ,sc5sus, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Suits U Sir (Qps) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5susc ,sc5sus, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Qps","Suits U Sir (Qps) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2235 SWITCHBACK SWBK SOUNDS SWITCHBACK
-GAME( 200?, sc5swbak ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Switch Back (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5swbaka ,sc5swbak, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Switch Back (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5swbak ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Switch Back (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5swbaka ,sc5swbak, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Switch Back (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1714 AWP TAKE THE PIECE S5 PR1714 TAKE THE PIECE SOUNDS11 TAKETHEPIECE S.SITE
-GAME( 200?, sc5ttpie ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Take The Piece (Bellfruit) (PR1714) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ttpiea ,sc5ttpie, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Take The Piece (Bellfruit) (PR1714) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ttpieb ,sc5ttpie, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Take The Piece (Bellfruit) (PR1714) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ttpiec ,sc5ttpie, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Take The Piece (Bellfruit) (PR1714) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ttpied ,sc5ttpie, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Take The Piece (Bellfruit) (PR1714) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ttpiee ,sc5ttpie, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Take The Piece (Bellfruit) (PR1714) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ttpief ,sc5ttpie, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Take The Piece (Bellfruit) (PR1714) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ttpieg ,sc5ttpie, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Take The Piece (Bellfruit) (PR1714) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ttpieh ,sc5ttpie, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Take The Piece (Bellfruit) (PR1714) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ttpiei ,sc5ttpie, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Take The Piece (Bellfruit) (PR1714) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ttpie ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Take The Piece (Bellfruit) (PR1714) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ttpiea ,sc5ttpie, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Take The Piece (Bellfruit) (PR1714) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ttpieb ,sc5ttpie, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Take The Piece (Bellfruit) (PR1714) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ttpiec ,sc5ttpie, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Take The Piece (Bellfruit) (PR1714) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ttpied ,sc5ttpie, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Take The Piece (Bellfruit) (PR1714) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ttpiee ,sc5ttpie, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Take The Piece (Bellfruit) (PR1714) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ttpief ,sc5ttpie, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Take The Piece (Bellfruit) (PR1714) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ttpieg ,sc5ttpie, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Take The Piece (Bellfruit) (PR1714) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ttpieh ,sc5ttpie, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Take The Piece (Bellfruit) (PR1714) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ttpiei ,sc5ttpie, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Take The Piece (Bellfruit) (PR1714) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3001 AWP TAKE YOUR PICK S5 PR3001 TAKE YOUR PICK SOUNDS11 TAKE YOUR PICK S.SITE
-GAME( 200?, sc5typ ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Take Your Pick (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5typa ,sc5typ, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Take Your Pick (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5typb ,sc5typ, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Take Your Pick (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5typc ,sc5typ, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Take Your Pick (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5typ ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Take Your Pick (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5typa ,sc5typ, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Take Your Pick (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5typb ,sc5typ, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Take Your Pick (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5typc ,sc5typ, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Take Your Pick (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2140 MONOPOLY X SDMON SOUNDS (are these really a game called Top Box, or are they Top Box roms for Monopoly?)
-GAME( 200?, sc5tbox ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Box (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5tboxa, sc5tbox, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Box (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5tboxb, sc5tbox, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Box (Mazooma) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5tboxc, sc5tbox, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Box (Mazooma) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5tboxd, sc5tbox, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Box (Mazooma) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5tboxe, sc5tbox, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Box (Mazooma) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5tboxf, sc5tbox, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Box (Mazooma) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5tboxg, sc5tbox, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Box (Mazooma) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5tboxh, sc5tbox, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Box (Mazooma) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5tboxi, sc5tbox, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Box (Mazooma) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5tboxj, sc5tbox, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Box (Mazooma) (Scorpion 5) (set 11)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5tboxk, sc5tbox, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Box (Mazooma) (Scorpion 5) (set 12)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5tboxl, sc5tbox, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Box (Mazooma) (Scorpion 5) (set 13)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5tboxm, sc5tbox, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Box (Mazooma) (Scorpion 5) (set 14)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5tboxn, sc5tbox, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Box (Mazooma) (Scorpion 5) (set 15)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5tboxo, sc5tbox, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Box (Mazooma) (Scorpion 5) (set 16)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5tboxp, sc5tbox, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Box (Mazooma) (Scorpion 5) (set 17)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5tboxq, sc5tbox, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Box (Mazooma) (Scorpion 5) (set 18)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5tbox ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Box (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5tboxa, sc5tbox, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Box (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5tboxb, sc5tbox, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Box (Mazooma) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5tboxc, sc5tbox, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Box (Mazooma) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5tboxd, sc5tbox, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Box (Mazooma) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5tboxe, sc5tbox, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Box (Mazooma) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5tboxf, sc5tbox, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Box (Mazooma) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5tboxg, sc5tbox, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Box (Mazooma) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5tboxh, sc5tbox, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Box (Mazooma) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5tboxi, sc5tbox, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Box (Mazooma) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5tboxj, sc5tbox, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Box (Mazooma) (Scorpion 5) (set 11)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5tboxk, sc5tbox, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Box (Mazooma) (Scorpion 5) (set 12)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5tboxl, sc5tbox, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Box (Mazooma) (Scorpion 5) (set 13)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5tboxm, sc5tbox, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Box (Mazooma) (Scorpion 5) (set 14)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5tboxn, sc5tbox, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Box (Mazooma) (Scorpion 5) (set 15)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5tboxo, sc5tbox, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Box (Mazooma) (Scorpion 5) (set 16)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5tboxp, sc5tbox, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Box (Mazooma) (Scorpion 5) (set 17)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5tboxq, sc5tbox, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Box (Mazooma) (Scorpion 5) (set 18)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2211 TOP OF THE SHOTS TOTS SOUNDS TOP OF THE SHOTS
-GAME( 200?, sc5tpsht ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Of The Shots (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5tpshta ,sc5tpsht, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Of The Shots (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5tpshtb ,sc5tpsht, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Of The Shots (Mazooma) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5tpshtc ,sc5tpsht, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Of The Shots (Mazooma) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5tpshtd ,sc5tpsht, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Of The Shots (Mazooma) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5tpsht ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Of The Shots (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5tpshta ,sc5tpsht, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Of The Shots (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5tpshtb ,sc5tpsht, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Of The Shots (Mazooma) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5tpshtc ,sc5tpsht, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Of The Shots (Mazooma) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5tpshtd ,sc5tpsht, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Top Of The Shots (Mazooma) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2175 TRAIL BLAZER TRAB SOUNDS TRAIL BLAZER
-GAME( 200?, sc5trail ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Trailblazer (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5traila ,sc5trail, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Trailblazer (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5trail ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Trailblazer (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5traila ,sc5trail, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Trailblazer (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3010 AWP VIVA MEXICO SCORP5 PR3010 VIVA MEXICO SOUNDS11 VIVA MEXICO S.SITE
-GAME( 200?, sc5vivam ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Viva Mexico (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5vivama ,sc5vivam, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Viva Mexico (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5vivam ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Viva Mexico (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5vivama ,sc5vivam, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Viva Mexico (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2341 WILD JACKPOTS WILDJACK SOUNDS WILD JACKPOTS
-GAME( 200?, sc5wldjk ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Wild Jackpots (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5wldjka ,sc5wldjk, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Wild Jackpots (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5wldjk ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Wild Jackpots (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5wldjka ,sc5wldjk, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Wild Jackpots (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1611 AWP ANT AND DECS PR1611 ANT AND DECS SOUNDS11 ANT AND DECS S.SITE
-GAME( 200?, sc5adsnt ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Saturday Night Takeaway (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5adsnta ,sc5adsnt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Saturday Night Takeaway (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5adsnt ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Saturday Night Takeaway (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5adsnta ,sc5adsnt, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Ant & Dec's Saturday Night Takeaway (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1708 AWP BULLY'S PRIZE BOARD PR1708 B PRIZE BOARD SOUNDS11 BULLYSPRIZEBOARD S.SITE
-GAME( 200?, sc5bpb ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Prize Board (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bpbb ,sc5bpb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Prize Board (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bpbd ,sc5bpb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Prize Board (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bpbe ,sc5bpb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Prize Board (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bpb ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Prize Board (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bpbb ,sc5bpb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Prize Board (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bpbd ,sc5bpb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Prize Board (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bpbe ,sc5bpb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Prize Board (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1708 AWP BULLY'S PRIZE BOARD S5 PR1708 B PRIZE BOARD SOUNDS11 BULLYSPRIZEBOARD S.SITE
-GAME( 200?, sc5bpba ,sc5bpb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Prize Board (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bpbc ,sc5bpb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Prize Board (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bpbf ,sc5bpb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Prize Board (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bpbg ,sc5bpb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Prize Board (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bpba ,sc5bpb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Prize Board (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bpbc ,sc5bpb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Prize Board (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bpbf ,sc5bpb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Prize Board (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bpbg ,sc5bpb, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Prize Board (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3010 AWP BULLYS STAR PRIZE SCORP5 PR3012 BULLYS STAR P SOUNDS11 BULLYS STARPRIZE S.SITE
-GAME( 200?, sc5bsp ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bspa ,sc5bsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bspb ,sc5bsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bspc ,sc5bsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bspd ,sc5bsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bspe ,sc5bsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bspf ,sc5bsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bspg ,sc5bsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bsph ,sc5bsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bspi ,sc5bsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bspl ,sc5bsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 13)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bspm ,sc5bsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 14)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bspn ,sc5bsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 15)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bspo ,sc5bsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 16)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bspp ,sc5bsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 17)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bspq ,sc5bsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 18)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bsp ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bspa ,sc5bsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bspb ,sc5bsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bspc ,sc5bsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bspd ,sc5bsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bspe ,sc5bsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bspf ,sc5bsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bspg ,sc5bsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bsph ,sc5bsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bspi ,sc5bsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bspl ,sc5bsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 13)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bspm ,sc5bsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 14)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bspn ,sc5bsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 15)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bspo ,sc5bsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 16)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bspp ,sc5bsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 17)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bspq ,sc5bsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Star Prize (PR3010) (Bellfruit) (Scorpion 5) (set 18)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3012 AWP BULLYS STAR PRIZE SCORP5 PR3012 BULLYS STAR P SOUNDS11 BULLYS STARPRIZE S.SITE
-GAME( 200?, sc5bspj ,sc5bsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Star Prize (PR3012) (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5bspk ,sc5bsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Star Prize (PR3012) (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bspj ,sc5bsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Star Prize (PR3012) (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5bspk ,sc5bsp, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bully's Star Prize (PR3012) (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1312 AWP CHAIN REACTION PR1312 CHAIN REACT SOUNDS11
-GAME( 200?, sc5chain ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Chain Reaction (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5chaina ,sc5chain, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Chain Reaction (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5chainb ,sc5chain, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Chain Reaction (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5chainc ,sc5chain, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Chain Reaction (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5chaind ,sc5chain, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Chain Reaction (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5chaine ,sc5chain, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Chain Reaction (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5chain ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Chain Reaction (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5chaina ,sc5chain, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Chain Reaction (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5chainb ,sc5chain, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Chain Reaction (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5chainc ,sc5chain, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Chain Reaction (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5chaind ,sc5chain, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Chain Reaction (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5chaine ,sc5chain, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Chain Reaction (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1707 AWP CLOWN AROUND SCORP5 PR1707 CLOWN AROUND SOUNDS11 CLOWN AROUND S.SITE
-GAME( 200?, sc5clown ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Clown Around (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5clowna ,sc5clown, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Clown Around (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5clownb ,sc5clown, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Clown Around (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5clownc ,sc5clown, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Clown Around (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5clownd ,sc5clown, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Clown Around (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5clowne ,sc5clown, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Clown Around (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5clown ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Clown Around (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5clowna ,sc5clown, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Clown Around (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5clownb ,sc5clown, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Clown Around (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5clownc ,sc5clown, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Clown Around (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5clownd ,sc5clown, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Clown Around (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5clowne ,sc5clown, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Clown Around (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1412 AWP COPS AND ROBBERS PR1412 COPS AND ROBBERS SOUNDS11 COPS AND ROBBERS S.SITE
-GAME( 200?, sc5copsr ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5copsra ,sc5copsr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5copsrb ,sc5copsr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5copsrc ,sc5copsr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5copsrd ,sc5copsr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5copsre ,sc5copsr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5copsrf ,sc5copsr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5copsrg ,sc5copsr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5copsrh ,sc5copsr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5copsri ,sc5copsr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5copsr ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5copsra ,sc5copsr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5copsrb ,sc5copsr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5copsrc ,sc5copsr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5copsrd ,sc5copsr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5copsre ,sc5copsr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5copsrf ,sc5copsr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5copsrg ,sc5copsr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5copsrh ,sc5copsr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5copsri ,sc5copsr, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers (Bellfruit) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1915 AWP DEAL OR NO DEAL BEAT THE BANKER S5 PR1915 BEAT THE BANKER SOUNDS11 BEAT THE BANKER S.SITE
-GAME( 200?, sc5dndbe ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbea ,sc5dndbe, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbeb ,sc5dndbe, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbec ,sc5dndbe, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbed ,sc5dndbe, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbee ,sc5dndbe, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbef ,sc5dndbe, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbeg ,sc5dndbe, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbeh ,sc5dndbe, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbei ,sc5dndbe, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbej ,sc5dndbe, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 11)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbek ,sc5dndbe, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 12)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbel ,sc5dndbe, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 13)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbem ,sc5dndbe, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 14)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndben ,sc5dndbe, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 15)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbe ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbea ,sc5dndbe, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbeb ,sc5dndbe, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbec ,sc5dndbe, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbed ,sc5dndbe, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbee ,sc5dndbe, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbef ,sc5dndbe, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbeg ,sc5dndbe, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbeh ,sc5dndbe, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbei ,sc5dndbe, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbej ,sc5dndbe, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 11)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbek ,sc5dndbe, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 12)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbel ,sc5dndbe, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 13)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbem ,sc5dndbe, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 14)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndben ,sc5dndbe, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker (Bellfruit) (Scorpion 5) (set 15)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3063 CASINO DOND CAN YOU BEAT THE BANKER CASINO DOND ARCADE PR3063 BEAT THE BANKER SOUNDS11
-GAME( 200?, sc5ddbbc ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Casino (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ddbbca ,sc5ddbbc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Casino (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ddbbcb ,sc5ddbbc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Casino (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ddbbcc ,sc5ddbbc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Casino (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ddbbcd ,sc5ddbbc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Casino (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ddbbce ,sc5ddbbc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Casino (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ddbbcf ,sc5ddbbc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Casino (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5ddbbcg ,sc5ddbbc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Casino (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ddbbc ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Casino (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ddbbca ,sc5ddbbc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Casino (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ddbbcb ,sc5ddbbc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Casino (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ddbbcc ,sc5ddbbc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Casino (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ddbbcd ,sc5ddbbc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Casino (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ddbbce ,sc5ddbbc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Casino (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ddbbcf ,sc5ddbbc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Casino (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5ddbbcg ,sc5ddbbc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Beat The Banker Casino (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
// PR3312 AWP DEAL OR NO DEAL BOX CLEVER SCORP5 PR3312 DOND BOXCLEVER SOUNDS11 BOX CLEVER S.SITE
-GAME( 200?, sc5dndbc ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Box Clever (Bellfruit) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbca ,sc5dndbc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Box Clever (Bellfruit) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbcb ,sc5dndbc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Box Clever (Bellfruit) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbcc ,sc5dndbc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Box Clever (Bellfruit) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbcd ,sc5dndbc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Box Clever (Bellfruit) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbce ,sc5dndbc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Box Clever (Bellfruit) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbcf ,sc5dndbc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Box Clever (Bellfruit) (Scorpion 5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbcg ,sc5dndbc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Box Clever (Bellfruit) (Scorpion 5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbch ,sc5dndbc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Box Clever (Bellfruit) (Scorpion 5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbci ,sc5dndbc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Box Clever (Bellfruit) (Scorpion 5) (set 10)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbcj ,sc5dndbc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Box Clever (Bellfruit) (Scorpion 5) (set 11)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5dndbck ,sc5dndbc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Box Clever (Bellfruit) (Scorpion 5) (set 12)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbc ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Box Clever (Bellfruit) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbca ,sc5dndbc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Box Clever (Bellfruit) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbcb ,sc5dndbc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Box Clever (Bellfruit) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbcc ,sc5dndbc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Box Clever (Bellfruit) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbcd ,sc5dndbc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Box Clever (Bellfruit) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbce ,sc5dndbc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Box Clever (Bellfruit) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbcf ,sc5dndbc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Box Clever (Bellfruit) (Scorpion 5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbcg ,sc5dndbc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Box Clever (Bellfruit) (Scorpion 5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbch ,sc5dndbc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Box Clever (Bellfruit) (Scorpion 5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbci ,sc5dndbc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Box Clever (Bellfruit) (Scorpion 5) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbcj ,sc5dndbc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Box Clever (Bellfruit) (Scorpion 5) (set 11)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5dndbck ,sc5dndbc, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal Or No Deal Box Clever (Bellfruit) (Scorpion 5) (set 12)", MACHINE_IS_SKELETON_MECHANICAL )
// PR1706 AWP WHEEL OF WEALTH PR1706 WHEEL OF WEALTH SOUNDS11 WHEEL OF WEALTH S.SITE
-GAME( 200?, sc5mowow ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Wheel Of Wealth (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5mowowb ,sc5mowow, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Wheel Of Wealth (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mowow ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Wheel Of Wealth (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5mowowb ,sc5mowow, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Monopoly Wheel Of Wealth (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
// PR2166 NUN N ROSES NANR SOUNDS NUNS N ROSES
-GAME( 200?, sc5nunsm ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Nuns 'n' Roses (Mazooma) (Scorpion 5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5nunsma ,sc5nunsm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Nuns 'n' Roses (Mazooma) (Scorpion 5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5nunsmb ,sc5nunsm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Nuns 'n' Roses (Mazooma) (Scorpion 5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5nunsmc ,sc5nunsm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Nuns 'n' Roses (Mazooma) (Scorpion 5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5nunsmd ,sc5nunsm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Nuns 'n' Roses (Mazooma) (Scorpion 5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5nunsme ,sc5nunsm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Nuns 'n' Roses (Mazooma) (Scorpion 5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 200?, sc5_3512 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Gold (Bellfruit) (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5_3437 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Red Hot Silly Peppers Community Party (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5_3438 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Juicy Gems Community Party (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5_3508 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Club DOND Red Mist (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5_3514 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal or no Deal Rapid Round (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5_3517 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal or no Deal East and West Wing (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5_3524 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cluedo Prime Suspect (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5_3515 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","777 Heaven (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5_3511 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal or no Deal Spank the Banker (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5_3513 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal or no Deal Right Deal Right Time (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5_3516 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cash Ahoy (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5_3530 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Club Cash Ahoy (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5_3552 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Snakes and Ladders (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5_3551 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal or no Deal Seal the Deal (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5_3525 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Happy Hour (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5_3553 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal or no Deal Go All the Way (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5_3555 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy The Drunken Clam (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5_3519 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal or no Deal Eliminator (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5_3510 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal or no Deal Red Hot (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5_3557 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal or no Deal Live (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5_3451 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal or no Deal Gold (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5_3450 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal or no Deal Let's Play (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5_3435 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Street Party (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5_3520 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Street Wise (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5_3434 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Takeover (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5_3518 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal or no Deal Bank On It (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5_3414 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bullseye Hot Arrows (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5nunsm ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Nuns 'n' Roses (Mazooma) (Scorpion 5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5nunsma ,sc5nunsm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Nuns 'n' Roses (Mazooma) (Scorpion 5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5nunsmb ,sc5nunsm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Nuns 'n' Roses (Mazooma) (Scorpion 5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5nunsmc ,sc5nunsm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Nuns 'n' Roses (Mazooma) (Scorpion 5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5nunsmd ,sc5nunsm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Nuns 'n' Roses (Mazooma) (Scorpion 5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5nunsme ,sc5nunsm, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "Mazooma","Nuns 'n' Roses (Mazooma) (Scorpion 5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 200?, sc5_3512 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Gold (Bellfruit) (Scorpion 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5_3437 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Red Hot Silly Peppers Community Party (Scorpion 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5_3438 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Juicy Gems Community Party (Scorpion 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5_3508 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Club DOND Red Mist (Scorpion 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5_3514 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal or no Deal Rapid Round (Scorpion 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5_3517 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal or no Deal East and West Wing (Scorpion 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5_3524 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cluedo Prime Suspect (Scorpion 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5_3515 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","777 Heaven (Scorpion 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5_3511 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal or no Deal Spank the Banker (Scorpion 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5_3513 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal or no Deal Right Deal Right Time (Scorpion 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5_3516 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cash Ahoy (Scorpion 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5_3530 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Club Cash Ahoy (Scorpion 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5_3552 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Snakes and Ladders (Scorpion 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5_3551 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal or no Deal Seal the Deal (Scorpion 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5_3525 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Happy Hour (Scorpion 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5_3553 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal or no Deal Go All the Way (Scorpion 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5_3555 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Family Guy The Drunken Clam (Scorpion 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5_3519 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal or no Deal Eliminator (Scorpion 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5_3510 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal or no Deal Red Hot (Scorpion 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5_3557 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal or no Deal Live (Scorpion 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5_3451 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal or no Deal Gold (Scorpion 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5_3450 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal or no Deal Let's Play (Scorpion 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5_3435 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Street Party (Scorpion 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5_3520 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Cops 'n' Robbers Street Wise (Scorpion 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5_3434 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Monopoly Takeover (Scorpion 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5_3518 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Deal or no Deal Bank On It (Scorpion 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5_3414 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Bullseye Hot Arrows (Scorpion 5)", MACHINE_IS_SKELETON_MECHANICAL )
// 3rd party
-GAME( 200?, sc5_z057 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Quidsia (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5_z058 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Wok 'n' Roll (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5_z059 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Aladdin (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, sc5_z060 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hard Dk (Scorpion 5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5_z057 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Quidsia (Scorpion 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5_z058 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Wok 'n' Roll (Scorpion 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5_z059 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Aladdin (Scorpion 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, sc5_z060 ,0, bfm_sc5, bfm_sc5, bfm_sc5_state, sc5, ROT0, "BFM","Hard Dk (Scorpion 5)", MACHINE_IS_SKELETON_MECHANICAL )
diff --git a/src/mame/drivers/bfm_swp.c b/src/mame/drivers/bfm_swp.c
index 266b8ee6631..f388f6d1bb9 100644
--- a/src/mame/drivers/bfm_swp.c
+++ b/src/mame/drivers/bfm_swp.c
@@ -299,7 +299,7 @@ ROM_END
-GAME( 199?, c3_rtime , 0 , bfm_swp, bfm_swp, driver_device, 0, ROT0, "BFM", "Radio Times (Bellfruit) (Cobra 3)", GAME_IS_SKELETON )
-GAME( 199?, c3_telly , 0 , bfm_swp, bfm_swp, driver_device, 0, ROT0, "BFM", "Telly Addicts (Bellfruit) (Cobra 3)", GAME_IS_SKELETON )
-GAME( 199?, c3_totp , 0 , bfm_swp, bfm_swp, driver_device, 0, ROT0, "BFM", "Top of the Pops (Bellfruit) (Cobra 3?)", GAME_IS_SKELETON )
-GAME( 199?, c3_ppays , 0 , bfm_swp, bfm_swp, driver_device, 0, ROT0, "BFM", "The Phrase That Pays (Bellfruit) (Cobra 3?)", GAME_IS_SKELETON )
+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 )
diff --git a/src/mame/drivers/bfmsys83.c b/src/mame/drivers/bfmsys83.c
index 293a9ad2b31..1fbed4b72c5 100644
--- a/src/mame/drivers/bfmsys83.c
+++ b/src/mame/drivers/bfmsys83.c
@@ -62,5 +62,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)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 198?, b83cops , 0 , bfmsys83 , bfmsys83 , driver_device, 0 , 0, "BFM", "Cops & Robbers (Bellfruit) (System 83)", GAME_IS_SKELETON_MECHANICAL)
+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)
diff --git a/src/mame/drivers/bfmsys85.c b/src/mame/drivers/bfmsys85.c
index bc7fa0b44b7..a7277d535b7 100644
--- a/src/mame/drivers/bfmsys85.c
+++ b/src/mame/drivers/bfmsys85.c
@@ -751,98 +751,98 @@ DRIVER_INIT_MEMBER(bfmsys85_state,nodecode)
}
// PROJECT NUMBER 5539 2P CASH EXPLOSION GAME No 39-350-190 - 29-MAR-1989 11:45:25
-GAME( 1989, b85cexpl , 0 , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "Cash Explosion (System 85)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK )
+GAME( 1989, b85cexpl , 0 , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "Cash Explosion (System 85)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK )
// PROJECT NUMBER 5150 THE ROYAL 10P PLAY GAME No 39-350-128 - 21-JAN-1988 12:42:53
-GAME( 1988, b85royal , 0 , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "The Royal (System 85)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK ) // 'The Royal' ?? hack of the Ritz or Big Deal Club?
+GAME( 1988, b85royal , 0 , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "The Royal (System 85)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK ) // 'The Royal' ?? hack of the Ritz or Big Deal Club?
// PROJECT NUMBER 4957 BIGDEAL 5P PLAY GAME No 39-350-055 - 9-MAR-1987 11:12:05
-GAME( 1987, b85bdclb , 0 , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "Big Deal Club (System 85, set 1)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK )
+GAME( 1987, b85bdclb , 0 , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "Big Deal Club (System 85, set 1)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK )
// PROJECT NUMBER 5035 BIGDEAL 5P PLAY GAME No 39-350-045 - 25-FEB-1987 14:19:41
-GAME( 1987, b85bdclba , b85bdclb , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "Big Deal Club (System 85, set 2)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK )
+GAME( 1987, b85bdclba , b85bdclb , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "Big Deal Club (System 85, set 2)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK )
// PROJECT NUMBER 5034 BIGDEAL 20P PLAY GAME No 39-350-047 - 25-FEB-1987 12:44:21
-GAME( 1987, b85bdclbb , b85bdclb , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "Big Deal Club (System 85, set 3)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK )
+GAME( 1987, b85bdclbb , b85bdclb , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "Big Deal Club (System 85, set 3)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK )
// PROJECT NUMBER 5145 CASH BLITZ GAME No 39-351-091 - 13-AUG-1987 11:25:29
-GAME( 1987, b85cblit , 0 , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "Cash Blitz (System 85, set 1)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK )
+GAME( 1987, b85cblit , 0 , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "Cash Blitz (System 85, set 1)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK )
// PROJECT NUMBER 5145 CASH BLITZ GAME No 39-350-091 - 13-AUG-1987 11:08:54
-GAME( 1987, b85cblita , b85cblit , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "Cash Blitz (System 85, set 2)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK )
+GAME( 1987, b85cblita , b85cblit , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "Cash Blitz (System 85, set 2)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK )
// PROJECT NUMBER 5145 CASH BLITZ GAME No 39-350-102 - 3-NOV-1987 16:24:39
-GAME( 1987, b85cblitb , b85cblit , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "Cash Blitz (System 85, set 3)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK )
+GAME( 1987, b85cblitb , b85cblit , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "Cash Blitz (System 85, set 3)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK )
// PROJECT NUMBER 5495 CLUB PREMIER 5P,10P AND 20P PLAY GAME No 39-350-187 - 28-FEB-1989 15:26:47
-GAME( 1989, b85clbpm , 0 , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "Club Premier (System 85)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK )
+GAME( 1989, b85clbpm , 0 , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "Club Premier (System 85)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK )
// PROJECT NUMBER 5116 HI LO SILVER DX GAME No 39-350-049 - 27-FEB-1987 10:49:08
-GAME( 1987, b85hilo , 0 , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "Hi Lo Silver (System 85, set 1)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK )
+GAME( 1987, b85hilo , 0 , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "Hi Lo Silver (System 85, set 1)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK )
// PROJECT NUMBER 5407 HI LO SILVER 2P GAME No 39-350-142 - 12-OCT-1988 09:39:26
-GAME( 1988, b85hiloa , b85hilo , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "Hi Lo Silver (System 85, set 2)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK )
+GAME( 1988, b85hiloa , b85hilo , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "Hi Lo Silver (System 85, set 2)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK )
// PROJECT NUMBER 5104 THE RITZ 10P PLAY GAME No 39-350-084 - 28-AUG-1987 08:44:30
-GAME( 1987, b85ritzd , b85ritz , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "The Ritz (System 85, set 5)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK )
+GAME( 1987, b85ritzd , b85ritz , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "The Ritz (System 85, set 5)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK )
// PROJECT NUMBER 5184 THE RITZ 5P PLAY GAME No 39-350-137 - 25-FEB-1988 11:07:18
-GAME( 1988, b85ritz , 0 , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "The Ritz (System 85, set 1)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK ) // alt version of Big Deal Club?
+GAME( 1988, b85ritz , 0 , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "The Ritz (System 85, set 1)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK ) // alt version of Big Deal Club?
// PROJECT NUMBER 5183 THE RITZ 20P PLAY GAME No 39-350-136 - 25-FEB-1988 11:25:52
-GAME( 1988, b85ritzb , b85ritz , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "The Ritz (System 85, set 3)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK )
+GAME( 1988, b85ritzb , b85ritz , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "The Ritz (System 85, set 3)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK )
// PROJECT NUMBER 5183 THE RITZ 20P PLAY GAME No 39-350-138 - 16-MAR-1988 10:46:30
-GAME( 1988, b85ritza , b85ritz , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "The Ritz (System 85, set 2)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK )
+GAME( 1988, b85ritza , b85ritz , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "The Ritz (System 85, set 2)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK )
// PROJECT NUMBER 5104 THE RITZ 10P PLAY GAME No 39-350-139 - 16-MAR-1988 11:04:27
-GAME( 1988, b85ritzc , b85ritz , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "The Ritz (System 85, set 4)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK )
+GAME( 1988, b85ritzc , b85ritz , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "The Ritz (System 85, set 4)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK )
// PROJECT NUMBER 5137 V2 10P PLAY GAME No 39-350-115 - 9-DEC-1987 12:39:16
-GAME( 1987, b85jpclb , 0 , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "Jackpot Club (System 85, set 1)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK )
+GAME( 1987, b85jpclb , 0 , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "Jackpot Club (System 85, set 1)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK )
// PROJECT NUMBER 5357 V2 20P PLAY GAME No 39-350-112 - 7-DEC-1987 14:32:31
-GAME( 1987, b85jpclba , b85jpclb , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "Jackpot Club (System 85, set 2)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK )
+GAME( 1987, b85jpclba , b85jpclb , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "Jackpot Club (System 85, set 2)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK )
// PROJECT NUMBER 5137 V2 10P PLAY GAME No 39-350-141 - 16-MAR-1988 11:46:48
-GAME( 1988, b85jpclbb , b85jpclb , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "Jackpot Club (System 85, set 3)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK )
+GAME( 1988, b85jpclbb , b85jpclb , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "Jackpot Club (System 85, set 3)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK )
// PROJECT NUMBER 5357 V2 20P PLAY GAME No 39-350-140 - 16-MAR-1988 11:21:43
-GAME( 1988, b85jpclbc , b85jpclb , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "Jackpot Club (System 85, set 4)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK )
+GAME( 1988, b85jpclbc , b85jpclb , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "Jackpot Club (System 85, set 4)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK )
// PROJECT NUMBER 5368 SUPER NUDGE GAMBLER #4.00 GAME No 39-340-230 - 27-JAN-1988 14:20:43
-GAME( 1988, b85sngam , 0 , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "Super Nudge Gambler (System 85)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK )
+GAME( 1988, b85sngam , 0 , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "Super Nudge Gambler (System 85)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK )
// PROJECT NUMBER 4766 10P KING OF CLUBS GAME No 39-340-026 - 25-NOV-1985 08:49:11
-GAME( 199?, b85koc , 0 , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "King of Clubs (Bellfruit) (System 85, set 1)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_NOT_WORKING|GAME_MECHANICAL) // this has valid strings in it BEFORE the bfm decode, but decodes to valid code, does it use some funky mapping, or did they just fill unused space with valid looking data?
+GAME( 199?, b85koc , 0 , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "King of Clubs (Bellfruit) (System 85, set 1)", MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) // this has valid strings in it BEFORE the bfm decode, but decodes to valid code, does it use some funky mapping, or did they just fill unused space with valid looking data?
// PROJECT NUMBER 4766 10P KING OF CLUBS GAME No 39340002 - 16-AUG-1985 15:53:13
-GAME( 199?, b85koca , b85koc , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "King of Clubs (Bellfruit) (System 85, set 2)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_NOT_WORKING|GAME_MECHANICAL) // this has valid strings in it BEFORE the bfm decode, but decodes to valid code, does it use some funky mapping, or did they just fill unused space with valid looking data?
+GAME( 199?, b85koca , b85koc , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "King of Clubs (Bellfruit) (System 85, set 2)", MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL) // this has valid strings in it BEFORE the bfm decode, but decodes to valid code, does it use some funky mapping, or did they just fill unused space with valid looking data?
// PROJECT NUMBER 5425 BAR SEVEN ARCADE GAME No 39-341-236 - 11-APR-1988 11:30:33
-GAME( 199?, b85cb7p , 0 , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "Bar Sevens (Bellfruit) (Protocol) (System 85)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK) // seems to work better here than in sc1
+GAME( 199?, b85cb7p , 0 , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "Bar Sevens (Bellfruit) (Protocol) (System 85)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK) // seems to work better here than in sc1
// PROJECT NUMBER 5596 DISCOVERY 85 - 06-APR-1990 08:57:39
-GAME( 199?, b85disc , 0 , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM/ELAM", "Discovey (Dutch) (Bellfruit) (System 85)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_NOT_WORKING|GAME_MECHANICAL ) // GAME No 39-350-251
+GAME( 199?, b85disc , 0 , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM/ELAM", "Discovey (Dutch) (Bellfruit) (System 85)", MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL ) // GAME No 39-350-251
// PROJECT NUMBER 5452 DUTCH SUPER CARDS GAME No 39-340-271 - 04-JAN-1989 14:39:00
-GAME( 1989, b85scard , 0 , bfmsys85, bfmsys85, bfmsys85_state, nodecode, 0, "BFM/ELAM", "Supercards (Dutch, Game Card 39-340-271?) (System 85)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK )
+GAME( 1989, b85scard , 0 , bfmsys85, bfmsys85, bfmsys85_state, nodecode, 0, "BFM/ELAM", "Supercards (Dutch, Game Card 39-340-271?) (System 85)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK )
// PROJECT NUMBER 4840 DUTCH JOKERS WILD PO GAME No 39-340-345 - 31-JUL-1992 20:01:55
-GAME( 1992, b85jkwld , 0 , bfmsys85, bfmsys85, bfmsys85_state, nodecode, 0, "BFM/ELAM", "Jokers Wild (Dutch) (System 85)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK )
+GAME( 1992, b85jkwld , 0 , bfmsys85, bfmsys85, bfmsys85_state, nodecode, 0, "BFM/ELAM", "Jokers Wild (Dutch) (System 85)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK )
// PROJECT NUMBER 4823 LUCKY CARDS 200 PO GAME No 39-332-217 - 2-DEC-1986 15:57:19
-GAME( 1986, b85lucky , 0 , bfmsys85, bfmsys85, bfmsys85_state, nodecode, 0, "BFM/ELAM", "Lucky Cards (Dutch) (System 85)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK )
+GAME( 1986, b85lucky , 0 , bfmsys85, bfmsys85, bfmsys85_state, nodecode, 0, "BFM/ELAM", "Lucky Cards (Dutch) (System 85)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK )
// PROJECT NUMBER 4902 DUTCH LUCKY DICE PO GAME No 39-340-346 - 03-AUG-1992 16:30:00
-GAME( 1992, b85luckd , 0 , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM/ELAM", "Lucky Dice (Dutch) (System 85)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK )
+GAME( 1992, b85luckd , 0 , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM/ELAM", "Lucky Dice (Dutch) (System 85)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK )
// PROJECT NUMBER 4758 DUTCH C+R 200 PO GAME No 39-332-215 - 2-DEC-1986 15:50:43
-GAME( 199?, b85cops , 0 , bfmsys85, bfmsys85, bfmsys85_state, nodecode, 0, "BFM/ELAM", "Cops 'n' Robbers (Dutch) (Bellfruit) (System 85)", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_NOT_WORKING|GAME_MECHANICAL)
+GAME( 199?, b85cops , 0 , bfmsys85, bfmsys85, bfmsys85_state, nodecode, 0, "BFM/ELAM", "Cops 'n' Robbers (Dutch) (Bellfruit) (System 85)", MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL)
// this might be system 85 or sc1, the rom config is 0x2000 + 0x8000, and it writes to the AY address we map on S85 for the alarm
// however it still gives the same error message in both, has offset alpha text in s85 and appears to attempt to communicate with something we don't map, maybe it's some video based board / game with bits missing?
// PROJECT NUMBER 5464 V3 10P/20P PLAY GAME No 39-350-173 - 24-JAN-1989 10:48:53
-GAME( 1989, b85dbldl , 0 , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "Double Dealer (System 85, set 1)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK )
+GAME( 1989, b85dbldl , 0 , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "Double Dealer (System 85, set 1)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK )
// PROJECT NUMBER 5464 V3 10P/20P PLAY GAME No 39-350-181 - 02-FEB-1989 15:19:20
-GAME( 1985, b85dbldla , b85dbldl , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "Double Dealer (System 85, set 2)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK )
+GAME( 1985, b85dbldla , b85dbldl , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "Double Dealer (System 85, set 2)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK )
// PROJECT NUMBER 5464 V3 10P/20P PLAY GAME No 39-350-166 - 17-OCT-1988 14:56:38
-GAME( 199?, b85dbldlb , b85dbldl , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "Double Dealer (System 85, set 3)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK ) // found in a sc4 potp set ...
+GAME( 199?, b85dbldlb , b85dbldl , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "Double Dealer (System 85, set 3)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK ) // found in a sc4 potp set ...
// appears to be the same as above with a different title
// PROJECT NUMBER 5165 V1 10P PLAY GAME No 39-350-179 - 02-FEB-1989 14:42:57
-GAME( 199?, b85potp , 0 , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "Pick Of The Pack (System 85)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK ) // found in a sc4 potp set ...
+GAME( 199?, b85potp , 0 , bfmsys85, bfmsys85, bfmsys85_state, decode , 0, "BFM", "Pick Of The Pack (System 85)", MACHINE_NOT_WORKING|MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK ) // found in a sc4 potp set ...
diff --git a/src/mame/drivers/bgt.c b/src/mame/drivers/bgt.c
index 599617df52e..740c4a48621 100644
--- a/src/mame/drivers/bgt.c
+++ b/src/mame/drivers/bgt.c
@@ -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)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, bg_barmy, 0, bgt, bgt, driver_device, 0, ROT0, "BGT", "Barmy Army (BGT)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, bg_max, 0, bgt, bgt, driver_device, 0, ROT0, "BGT", "Max A Million (BGT) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, bg_maxa, bg_max, bgt, bgt, driver_device, 0, ROT0, "BGT", "Max A Million (BGT) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+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 )
diff --git a/src/mame/drivers/big10.c b/src/mame/drivers/big10.c
index ee763a08b45..be3858993f1 100644
--- a/src/mame/drivers/big10.c
+++ b/src/mame/drivers/big10.c
@@ -69,18 +69,24 @@ class big10_state : public driver_device
{
public:
big10_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_v9938(*this, "v9938") ,
- m_maincpu(*this, "maincpu") { }
+ : driver_device(mconfig, type, tag)
+ , m_v9938(*this, "v9938")
+ , m_maincpu(*this, "maincpu")
+ , m_in1(*this, "IN1")
+ , m_in2(*this, "IN2")
+ , m_in3(*this, "IN3")
+ { }
required_device<v9938_device> m_v9938;
UINT8 m_mux_data;
DECLARE_READ8_MEMBER(mux_r);
DECLARE_WRITE8_MEMBER(mux_w);
virtual void machine_reset();
- TIMER_DEVICE_CALLBACK_MEMBER(big10_interrupt);
DECLARE_WRITE_LINE_MEMBER(big10_vdp_interrupt);
required_device<cpu_device> m_maincpu;
+ required_ioport m_in1;
+ required_ioport m_in2;
+ required_ioport m_in3;
};
@@ -96,10 +102,6 @@ WRITE_LINE_MEMBER(big10_state::big10_vdp_interrupt)
m_maincpu->set_input_line(0, (state ? ASSERT_LINE : CLEAR_LINE));
}
-TIMER_DEVICE_CALLBACK_MEMBER(big10_state::big10_interrupt)
-{
- m_v9938->interrupt();
-}
/*************************************
@@ -125,9 +127,9 @@ READ8_MEMBER(big10_state::mux_r)
{
switch(m_mux_data)
{
- case 1: return ioport("IN1")->read();
- case 2: return ioport("IN2")->read();
- case 4: return ioport("IN3")->read();
+ case 1: return m_in1->read();
+ case 2: return m_in2->read();
+ case 4: return m_in3->read();
}
return m_mux_data;
@@ -238,22 +240,13 @@ static MACHINE_CONFIG_START( big10, big10_state )
MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/6) /* guess */
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_CPU_IO_MAP(main_io)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", big10_state, big10_interrupt, "screen", 0, 1)
-
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
- MCFG_V9938_ADD("v9938", "screen", VDP_MEM)
+ MCFG_V9938_ADD("v9938", "screen", VDP_MEM, MASTER_CLOCK)
MCFG_V99X8_INTERRUPT_CALLBACK(WRITELINE(big10_state, big10_vdp_interrupt))
-
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_UPDATE_DEVICE("v9938", v9938_device, screen_update)
- MCFG_SCREEN_SIZE(512 + 32, (212 + 28) * 2)
- MCFG_SCREEN_VISIBLE_AREA(0, 512 + 32 - 1, 0, (212 + 28) * 2 - 1)
- MCFG_SCREEN_PALETTE("v9938:palette")
+ MCFG_V99X8_SCREEN_ADD_NTSC("screen", "v9938", MASTER_CLOCK)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mess/drivers/bigbord2.c b/src/mame/drivers/bigbord2.c
index c12e0b7832c..7f8612a2806 100644
--- a/src/mess/drivers/bigbord2.c
+++ b/src/mame/drivers/bigbord2.c
@@ -618,4 +618,4 @@ 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", GAME_NOT_WORKING )
+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.c b/src/mame/drivers/bigevglf.c
index 97e37fec29a..c0d18524ba2 100644
--- a/src/mame/drivers/bigevglf.c
+++ b/src/mame/drivers/bigevglf.c
@@ -606,5 +606,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)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1986, bigevglfj, bigevglf, bigevglf, bigevglfj, bigevglf_state,bigevglf, ROT270, "Taito Corporation", "Big Event Golf (Japan)", GAME_NO_COCKTAIL | GAME_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.c b/src/mame/drivers/bigstrkb.c
index 8a5a1300935..864a0194a0b 100644
--- a/src/mame/drivers/bigstrkb.c
+++ b/src/mame/drivers/bigstrkb.c
@@ -294,5 +294,5 @@ ROM_END
/* GAME drivers */
-GAME( 1992, bigstrkb, bigstrik, bigstrkb, bigstrkb, driver_device, 0, ROT0, "bootleg", "Big Striker (bootleg)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1992, bigstrkba,bigstrik, bigstrkb, bigstrkb, driver_device, 0, ROT0, "bootleg", "Big Striker (bootleg w/Italian teams)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/binbug.c b/src/mame/drivers/binbug.c
index bc8ff56202c..14c079e6156 100644
--- a/src/mess/drivers/binbug.c
+++ b/src/mame/drivers/binbug.c
@@ -587,4 +587,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND_HW )
+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 )
diff --git a/src/mame/drivers/bingo.c b/src/mame/drivers/bingo.c
index e1348f9a4a8..163dd49f357 100644
--- a/src/mame/drivers/bingo.c
+++ b/src/mame/drivers/bingo.c
@@ -299,27 +299,27 @@ ROM_START(tripjok)
ROM_END
-GAME(1980, cntinntl, 0, bingo, bingo, bingo_state, bingo, ROT0, "Bally", "Continental (Bingo)", GAME_IS_SKELETON_MECHANICAL)
-GAME(19??, goldgame, 0, splin, splin, splin_state, splin, ROT0, "Splin", "Golden Game (Bingo)", GAME_IS_SKELETON_MECHANICAL)
-GAME(19??, goldgkitb, goldgame, splin, splin, splin_state, splin, ROT0, "Splin", "Golden Game Kit Bingo Stake 6/10 (Bingo)", GAME_IS_SKELETON_MECHANICAL)
-GAME(19??, goldgstake, goldgame, splin, splin, splin_state, splin, ROT0, "Splin", "Golden Game Bingo Stake 6/10 (Bingo)", GAME_IS_SKELETON_MECHANICAL)
-GAME(19??, goldgnew, goldgame, splin, splin, splin_state, splin, ROT0, "Splin", "Golden Game Bingo New (Bingo)", GAME_IS_SKELETON_MECHANICAL)
-GAME(19??, goldgkit1, goldgame, splin, splin, splin_state, splin, ROT0, "Splin", "Golden Game Kit 1 Generation (Bingo)", GAME_IS_SKELETON_MECHANICAL)
-GAME(19??, michigan, 0, splin, splin, splin_state, splin, ROT0, "Splin", "Michigan (Bingo)", GAME_IS_SKELETON_MECHANICAL)
-GAME(19??, michkit1, michigan, splin, splin, splin_state, splin, ROT0, "Splin", "Michigan Bingo Kit 1 Generation (Bingo)", GAME_IS_SKELETON_MECHANICAL)
-GAME(19??, michkitb, michigan, splin, splin, splin_state, splin, ROT0, "Splin", "Michigan Kit Bingo Stake 6/10 (Bingo)", GAME_IS_SKELETON_MECHANICAL)
-GAME(19??, michstake, michigan, splin, splin, splin_state, splin, ROT0, "Splin", "Michigan Bingo Stake 6/10 (Bingo)", GAME_IS_SKELETON_MECHANICAL)
-GAME(19??, michnew, michigan, splin, splin, splin_state, splin, ROT0, "Splin", "Michigan Bingo New (Bingo)", GAME_IS_SKELETON_MECHANICAL)
-GAME(19??, montana, 0, splin, splin, splin_state, splin, ROT0, "Splin", "Montana Bingo Stake 6/10 (Bingo)", GAME_IS_SKELETON_MECHANICAL)
-GAME(19??, topgame, 0, splin, splin, splin_state, splin, ROT0, "Splin", "Top Game Laser L10 (Bingo)", GAME_IS_SKELETON_MECHANICAL)
-GAME(19??, topgamet, topgame, splin, splin, splin_state, splin, ROT0, "Splin", "Top Game Turbo (Bingo)", GAME_IS_SKELETON_MECHANICAL)
-GAME(19??, penalty, 0, seeben, seeben, seeben_state, seeben, ROT0, "Seeben (Belgium)", "Penalty (Bingo)", GAME_IS_SKELETON_MECHANICAL)
-GAME(19??, brooklyn, 0, seeben, seeben, seeben_state, seeben, ROT0, "Seeben (Belgium)", "Brooklyn (set 1) (Bingo)", GAME_IS_SKELETON_MECHANICAL)
-GAME(19??, brooklyna, brooklyn, seeben, seeben, seeben_state, seeben, ROT0, "Seeben (Belgium)", "Brooklyn (set 2) (Bingo)", GAME_IS_SKELETON_MECHANICAL)
-GAME(19??, newdixie, 0, seeben, seeben, seeben_state, seeben, ROT0, "Seeben (Belgium)", "New Dixieland (Bingo)", GAME_IS_SKELETON_MECHANICAL)
-GAME(19??, superdix, 0, seeben, seeben, seeben_state, seeben, ROT0, "Seeben (Belgium)", "Super Dixieland (Bingo)", GAME_IS_SKELETON_MECHANICAL)
-GAME(19??, cntine31, 0, seeben, seeben, seeben_state, seeben, ROT0, "Seeben (Belgium)", "Continental 3 in 1 (Bingo)", GAME_IS_SKELETON_MECHANICAL)
-GAME(19??, domino2, 0, seeben, seeben, seeben_state, seeben, ROT0, "Seeben (Belgium)", "Domino II (Bingo)", GAME_IS_SKELETON_MECHANICAL)
-GAME(19??, tripjok, 0, seeben, seeben, seeben_state, seeben, ROT0, "Seeben (Belgium)", "Triple Joker (Bingo)", GAME_IS_SKELETON_MECHANICAL)
-GAME(19??, ggate, 0, seeben, seeben, seeben_state, seeben, ROT0, "Seeben (Belgium)", "Golden Gate (set 1) (Bingo)", GAME_IS_SKELETON_MECHANICAL)
-GAME(19??, ggatea, ggate, seeben, seeben, seeben_state, seeben, ROT0, "Seeben (Belgium)", "Golden Gate (set 2) (Bingo)", GAME_IS_SKELETON_MECHANICAL)
+GAME(1980, cntinntl, 0, bingo, bingo, bingo_state, bingo, ROT0, "Bally", "Continental (Bingo)", 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.c b/src/mame/drivers/bingoc.c
index c2bafc927cd..f35704dccce 100644
--- a/src/mame/drivers/bingoc.c
+++ b/src/mame/drivers/bingoc.c
@@ -200,4 +200,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)", GAME_NOT_WORKING )
+GAME( 1989, bingoc, 0, bingoc, bingoc, driver_device, 0, ROT0, "Sega", "Bingo Circus (Rev. A 891001)", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/bingoman.c b/src/mame/drivers/bingoman.c
index 2749b24a4ce..8bcad7f5891 100644
--- a/src/mame/drivers/bingoman.c
+++ b/src/mame/drivers/bingoman.c
@@ -463,5 +463,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)", GAME_IS_SKELETON )
-GAME( 1993, bingomana, bingoman, bingoman, bingoman, driver_device, 0, ROT0, "HP Automaten", "Bingo Mania (A03)", GAME_IS_SKELETON )
+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 )
diff --git a/src/mame/drivers/bingor.c b/src/mame/drivers/bingor.c
index 2c2fd036ddd..18b41402728 100644
--- a/src/mame/drivers/bingor.c
+++ b/src/mame/drivers/bingor.c
@@ -726,8 +726,8 @@ ROM_END
-GAME( 2002, bingor1, 0, bingor, bingor, driver_device, 0, ROT0, "<unknown>", "Bingo Roll / Bell Star? (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 2002, bingor2, 0, bingor, bingor, driver_device, 0, ROT0, "<unknown>", "Bingo Roll / Bell Star? (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 2002, bingor3, 0, bingor, bingor, driver_device, 0, ROT0, "<unknown>", "Bingo Roll / Bell Star? (set 3)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 2002, bingor4, 0, bingor, bingor, driver_device, 0, ROT0, "<unknown>", "Bingo Roll / Bell Star? (set 4)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 2002, bingor5, 0, bingor, bingor, driver_device, 0, ROT0, "<unknown>", "Bingo Roll / Bell Star V3? (set 5)", GAME_NOT_WORKING | GAME_NO_SOUND )
+GAME( 2002, bingor1, 0, bingor, bingor, driver_device, 0, ROT0, "<unknown>", "Bingo Roll / Bell Star? (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 2002, bingor2, 0, bingor, bingor, driver_device, 0, ROT0, "<unknown>", "Bingo Roll / Bell Star? (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 2002, bingor3, 0, bingor, bingor, driver_device, 0, ROT0, "<unknown>", "Bingo Roll / Bell Star? (set 3)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 2002, bingor4, 0, bingor, bingor, driver_device, 0, ROT0, "<unknown>", "Bingo Roll / Bell Star? (set 4)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 2002, bingor5, 0, bingor, bingor, driver_device, 0, ROT0, "<unknown>", "Bingo Roll / Bell Star V3? (set 5)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/bionicc.c b/src/mame/drivers/bionicc.c
index a6a36ea55b0..7b50e17bbe7 100644
--- a/src/mame/drivers/bionicc.c
+++ b/src/mame/drivers/bionicc.c
@@ -148,7 +148,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, bionicc_state )
AM_RANGE(0xfec000, 0xfecfff) AM_RAM_WRITE(bionicc_txvideoram_w) AM_SHARE("txvideoram")
AM_RANGE(0xff0000, 0xff3fff) AM_RAM_WRITE(bionicc_fgvideoram_w) AM_SHARE("fgvideoram")
AM_RANGE(0xff4000, 0xff7fff) AM_RAM_WRITE(bionicc_bgvideoram_w) AM_SHARE("bgvideoram")
- AM_RANGE(0xff8000, 0xff87ff) AM_RAM_WRITE(bionicc_paletteram_w) AM_SHARE("paletteram")
+ AM_RANGE(0xff8000, 0xff87ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xffc000, 0xfffff7) AM_RAM /* working RAM */
AM_RANGE(0xfffff8, 0xfffff9) AM_READWRITE(hacked_soundcommand_r, hacked_soundcommand_w) /* hack */
AM_RANGE(0xfffffa, 0xffffff) AM_READWRITE(hacked_controls_r, hacked_controls_w) /* hack */
@@ -372,6 +372,7 @@ static MACHINE_CONFIG_START( bionicc, bionicc_state )
MCFG_DEVICE_ADD("spritegen", TIGEROAD_SPRITE, 0)
MCFG_PALETTE_ADD("palette", 1024)
+ MCFG_PALETTE_FORMAT_CLASS(2, bionicc_state, RRRRGGGGBBBBIIII)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
@@ -615,10 +616,10 @@ ROM_END
*
*************************************/
-GAME( 1987, bionicc, 0, bionicc, bionicc, driver_device, 0, ROT0, "Capcom", "Bionic Commando (Euro)", GAME_SUPPORTS_SAVE )
-GAME( 1987, bionicc1, bionicc, bionicc, bionicc, driver_device, 0, ROT0, "Capcom", "Bionic Commando (US set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1987, bionicc2, bionicc, bionicc, bionicc, driver_device, 0, ROT0, "Capcom", "Bionic Commando (US set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1987, topsecrt, bionicc, bionicc, bionicc, driver_device, 0, ROT0, "Capcom", "Top Secret (Japan, old revision)", GAME_SUPPORTS_SAVE )
-GAME( 1987, bioniccbl,bionicc, bionicc, bionicc, driver_device, 0, ROT0, "bootleg", "Bionic Commandos (bootleg)", GAME_SUPPORTS_SAVE )
+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)", 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.c b/src/mame/drivers/bishi.c
index 26f8b374349..207b3e65070 100644
--- a/src/mame/drivers/bishi.c
+++ b/src/mame/drivers/bishi.c
@@ -481,6 +481,6 @@ ROM_START( sbishik )
ROM_END
-GAME( 1996, bishi, 0, bishi, bishi, driver_device, 0, ROT0, "Konami", "Bishi Bashi Championship Mini Game Senshuken (ver JAA, 3 Players)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1998, sbishi, 0, bishi, bishi2p, driver_device, 0, ROT0, "Konami", "Super Bishi Bashi Championship (ver JAA, 2 Players)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1998, sbishik, sbishi, bishi, bishi, driver_device, 0, ROT0, "Konami", "Super Bishi Bashi Championship (ver KAA, 3 Players)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+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 KAA, 3 Players)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/bitgraph.c b/src/mame/drivers/bitgraph.c
index 9a9866f5d70..8209fe9f20c 100644
--- a/src/mess/drivers/bitgraph.c
+++ b/src/mame/drivers/bitgraph.c
@@ -618,5 +618,5 @@ 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", GAME_IMPERFECT_KEYBOARD)
-COMP( 1982, bitgrphb, 0, 0, bitgrphb, bitgraph, driver_device, 0, "BBN", "BitGraph rev B", GAME_NOT_WORKING|GAME_IMPERFECT_KEYBOARD)
+COMP( 1981, bitgrpha, 0, 0, bitgrpha, bitgraph, driver_device, 0, "BBN", "BitGraph rev A", MACHINE_IMPERFECT_KEYBOARD)
+COMP( 1982, bitgrphb, 0, 0, bitgrphb, bitgraph, driver_device, 0, "BBN", "BitGraph rev B", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_KEYBOARD)
diff --git a/src/mess/drivers/bk.c b/src/mame/drivers/bk.c
index 10ab64a1273..555dddae766 100644
--- a/src/mess/drivers/bk.c
+++ b/src/mame/drivers/bk.c
@@ -231,5 +231,5 @@ ROM_END
/* 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", GAME_NOT_WORKING)
-COMP( 1986, bk0011m, bk0010, 0, bk0010fd, bk0010, driver_device, 0, "Elektronika", "BK 0011M", GAME_NOT_WORKING)
+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)
diff --git a/src/mame/drivers/bking.c b/src/mame/drivers/bking.c
index afd9040a65a..9b1dcc9a100 100644
--- a/src/mame/drivers/bking.c
+++ b/src/mame/drivers/bking.c
@@ -798,6 +798,6 @@ ROM_START( bking3 )
ROM_END
-GAME( 1982, bking, 0, bking, bking, driver_device, 0, ROT270, "Taito Corporation", "Birdie King", GAME_SUPPORTS_SAVE )
-GAME( 1983, bking2, 0, bking, bking2, driver_device, 0, ROT90, "Taito Corporation", "Birdie King 2", GAME_SUPPORTS_SAVE )
-GAME( 1984, bking3, 0, bking3, bking2, driver_device, 0, ROT90, "Taito Corporation", "Birdie King 3", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/blackt96.c b/src/mame/drivers/blackt96.c
index b7e2799536f..8821ed33918 100644
--- a/src/mame/drivers/blackt96.c
+++ b/src/mame/drivers/blackt96.c
@@ -664,4 +664,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", GAME_NOT_WORKING | GAME_NO_SOUND )
+GAME( 1996, blackt96, 0, blackt96, blackt96, driver_device, 0, ROT0, "D.G.R.M.", "Black Touch '96", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/bladestl.c b/src/mame/drivers/bladestl.c
index a87431ac30c..14f8fc0a641 100644
--- a/src/mame/drivers/bladestl.c
+++ b/src/mame/drivers/bladestl.c
@@ -282,7 +282,6 @@ void bladestl_state::machine_start()
m_rombank->configure_entries(0, 4, memregion("maincpu")->base(), 0x2000);
save_item(NAME(m_spritebank));
- save_item(NAME(m_layer_colorbase));
save_item(NAME(m_last_track));
}
@@ -290,8 +289,6 @@ void bladestl_state::machine_reset()
{
int i;
- m_layer_colorbase[0] = 0;
- m_layer_colorbase[1] = 1;
m_spritebank = 0;
for (i = 0; i < 4 ; i++)
@@ -439,6 +436,6 @@ ROM_END
*
*************************************/
-GAME( 1987, bladestl, 0, bladestl, bladestl, driver_device, 0, ROT90, "Konami", "Blades of Steel (version T)", GAME_SUPPORTS_SAVE )
-GAME( 1987, bladestll, bladestl, bladestl, bladestle, driver_device,0, ROT90, "Konami", "Blades of Steel (version L)", GAME_SUPPORTS_SAVE )
-GAME( 1987, bladestle, bladestl, bladestl, bladestle, driver_device,0, ROT90, "Konami", "Blades of Steel (version E)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/blitz.c b/src/mame/drivers/blitz.c
index 985e3e288fd..bba164a5343 100644
--- a/src/mame/drivers/blitz.c
+++ b/src/mame/drivers/blitz.c
@@ -831,5 +831,5 @@ ROM_END
*********************************************/
/* 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)", GAME_NO_SOUND | GAME_NOT_WORKING )
-GAME( 1990, megadpkrb, megadpkr, megadpkr, megadpkr, driver_device, 0, ROT0, "Blitz System Inc.", "Mega Double Poker (conversion kit, set 2)", GAME_NO_SOUND | GAME_NOT_WORKING )
+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 )
diff --git a/src/mame/drivers/blitz68k.c b/src/mame/drivers/blitz68k.c
index d412f077867..e236de0c4ad 100644
--- a/src/mame/drivers/blitz68k.c
+++ b/src/mame/drivers/blitz68k.c
@@ -2897,16 +2897,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)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_NO_SOUND | GAME_WRONG_COLORS )
-GAME( 1990, megadblj, 0, maxidbl, maxidbl, blitz68k_state, megadblj, ROT0, "Blitz Systems Inc.", "Mega Double Poker Jackpot (Ver. 1.26)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_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)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_NO_SOUND | GAME_WRONG_COLORS ) // NOVEMBER 1994
-GAME( 1993, steaser, 0, steaser, steaser, driver_device, 0, ROT0, "<unknown>", "Strip Teaser (Italy, Ver. 1.22)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_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)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_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)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_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)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_NO_SOUND ) // MARCH 10TH, 1994
-GAME( 1995, dualgame, 0, dualgame, dualgame, blitz68k_state, dualgame, ROT0, "Labtronix Technologies", "Dual Games (prototype)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_NO_SOUND ) // SEPTEMBER 5TH, 1995
-GAME( 1995, hermit, 0, hermit, hermit, blitz68k_state, hermit, ROT0, "Dugamex", "The Hermit (Ver. 1.14)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_NO_SOUND ) // APRIL 1995
-GAME( 1997, deucesw2, 0, deucesw2, deucesw2, blitz68k_state, deucesw2, ROT0, "<unknown>", "Deuces Wild 2 - American Heritage (Ver. 2.02F)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_NO_SOUND ) // APRIL 10TH, 1997
-GAME( 1998, cj3play, 0, cjffruit, cjffruit, blitz68k_state, cj3play, ROT0, "Cadillac Jack", "Triple Play (Ver. 1.10)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_NO_SOUND ) // FEBRUARY 24TH, 1999
-GAME( 1998, cjffruit, 0, cjffruit, cjffruit, blitz68k_state, cjffruit, ROT0, "Cadillac Jack", "Funny Fruit (Ver. 1.13)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_NO_SOUND ) // APRIL 21ST, 1999
-GAME( 199?, ilpag, 0, ilpag, ilpag, driver_device, 0, ROT0, "<unknown>", "Il Pagliaccio (Italy, Ver. 2.7C)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_NO_SOUND )
+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, "<unknown>", "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( 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( 1997, deucesw2, 0, deucesw2, deucesw2, blitz68k_state, deucesw2, ROT0, "<unknown>", "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, "<unknown>", "Il Pagliaccio (Italy, Ver. 2.7C)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/blktiger.c b/src/mame/drivers/blktiger.c
index d37921e69c1..f79c4adac3c 100644
--- a/src/mame/drivers/blktiger.c
+++ b/src/mame/drivers/blktiger.c
@@ -614,11 +614,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", GAME_SUPPORTS_SAVE )
-GAME( 1987, blktigera, blktiger, blktiger, blktiger, driver_device, 0, ROT0, "Capcom", "Black Tiger (older)", GAME_SUPPORTS_SAVE )
-GAME( 1987, blktigerb1, blktiger, blktigerbl, blktiger, driver_device, 0, ROT0, "bootleg", "Black Tiger (bootleg set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1987, blktigerb2, blktiger, blktigerbl, blktiger, driver_device, 0, ROT0, "bootleg", "Black Tiger (bootleg set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1987, blkdrgon, blktiger, blktiger, blktiger, driver_device, 0, ROT0, "Capcom", "Black Dragon (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1987, blkdrgonb, blktiger, blktigerbl, blktiger, driver_device, 0, ROT0, "bootleg", "Black Dragon (bootleg)", GAME_SUPPORTS_SAVE )
+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 )
// 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?)", GAME_SUPPORTS_SAVE )
+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.c b/src/mame/drivers/blmbycar.c
index 2256c9a940a..9c04c73df6f 100644
--- a/src/mame/drivers/blmbycar.c
+++ b/src/mame/drivers/blmbycar.c
@@ -529,6 +529,6 @@ DRIVER_INIT_MEMBER(blmbycar_state,blmbycar)
***************************************************************************/
-GAME( 1994, blmbycar, 0, blmbycar, blmbycar, blmbycar_state, blmbycar, ROT0, "ABM & Gecas", "Blomby Car", GAME_SUPPORTS_SAVE )
-GAME( 1994, blmbycaru, blmbycar, blmbycar, blmbycar, driver_device, 0, ROT0, "ABM & Gecas", "Blomby Car (not encrypted)", GAME_SUPPORTS_SAVE )
-GAME( 1996, watrball, 0, watrball, watrball, driver_device, 0, ROT0, "ABM", "Water Balls", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/blockade.c b/src/mame/drivers/blockade.c
index 9faab7d4b42..406444ec463 100644
--- a/src/mame/drivers/blockade.c
+++ b/src/mame/drivers/blockade.c
@@ -575,9 +575,9 @@ ROM_END
*
*************************************/
-GAMEL(1976, blockade, 0, blockade, blockade, driver_device, 0, ROT0, "Gremlin", "Blockade", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_blockade )
-GAMEL(1976, comotion, 0, blockade, comotion, driver_device, 0, ROT0, "Gremlin", "Comotion", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_blockade )
-GAME( 1978, blasto, 0, blasto, blasto, driver_device, 0, ROT0, "Gremlin", "Blasto", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // b/w, no overlay
-GAMEL(1977, hustle, 0, blasto, hustle, driver_device, 0, ROT0, "Gremlin", "Hustle", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_blockade )
-GAME( 1977, mineswpr, 0, blasto, mineswpr, driver_device, 0, ROT0, "Amutech", "Minesweeper", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1977, mineswpr4, mineswpr, blasto, mineswpr4, driver_device,0, ROT0, "Amutech", "Minesweeper (4-Player)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+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, blasto, blasto, driver_device, 0, ROT0, "Gremlin", "Blasto", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // b/w, no overlay
+GAMEL(1977, hustle, 0, blasto, hustle, driver_device, 0, ROT0, "Gremlin", "Hustle", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_blockade )
+GAME( 1977, mineswpr, 0, blasto, mineswpr, driver_device, 0, ROT0, "Amutech", "Minesweeper", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1977, mineswpr4, mineswpr, blasto, mineswpr4, driver_device,0, ROT0, "Amutech", "Minesweeper (4-Player)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/blockhl.c b/src/mame/drivers/blockhl.c
index e71bb529072..b4397b09d9f 100644
--- a/src/mame/drivers/blockhl.c
+++ b/src/mame/drivers/blockhl.c
@@ -4,61 +4,137 @@
Block Hole (GX973) (c) 1989 Konami
- driver by Nicola Salmoria
+ Original driver by Nicola Salmoria
Notes:
- Quarth works, but Block Hole crashes when it reaches the title screen. An
- interrupt happens, and after rti the ROM bank is not the same as before so
- it jumps to garbage code.
- If you want to see this happen, place a breakpoint at 0x8612, and trace
- after that.
- The code is almost identical in the two versions, it looks like Quarth is
- working just because luckily the interrupt doesn't happen at that point.
- It seems that the interrupt handler trashes the selected ROM bank and forces
- it to 0. To prevent crashes, I only generate interrupts when the ROM bank is
- already 0. There might be another interrupt enable register, but I haven't
- found it.
+ - To advance to the next screen in service mode, press P1 and P2 start
+ simultaneously
+
+ Todo:
+ - How is the sound irq cleared (currently using HOLD_LINE)?
+ - Do bit 2 and 7 of the bankswitch port have any meaning?
+ - Verify raw screen parameters
*******************************************************************************/
#include "emu.h"
+#include "cpu/m6809/konami.h"
#include "cpu/z80/z80.h"
-#include "cpu/m6809/konami.h" /* for the callback and the firq irq definition */
+#include "machine/bankdev.h"
+#include "video/k052109.h"
+#include "video/k051960.h"
#include "sound/2151intf.h"
#include "includes/konamipt.h"
-#include "includes/blockhl.h"
-INTERRUPT_GEN_MEMBER(blockhl_state::blockhl_interrupt)
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+class blockhl_state : public driver_device
{
- if (m_k052109->is_irq_enabled() && m_rombank == 0) /* kludge to prevent crashes */
- device.execute().set_input_line(KONAMI_IRQ_LINE, HOLD_LINE);
-}
+public:
+ blockhl_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
+ m_bank5800(*this, "bank5800"),
+ m_audiocpu(*this, "audiocpu"),
+ m_k052109(*this, "k052109"),
+ m_k051960(*this, "k051960"),
+ m_rombank(*this, "rombank") { }
+
+ K052109_CB_MEMBER(tile_callback);
+ K051960_CB_MEMBER(sprite_callback);
+ UINT32 screen_update_blockhl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ DECLARE_READ8_MEMBER(k052109_051960_r);
+ DECLARE_WRITE8_MEMBER(k052109_051960_w);
+
+ DECLARE_WRITE8_MEMBER(sound_irq_w);
+
+ DECLARE_WRITE8_MEMBER(banking_callback);
+
+protected:
+ virtual void machine_start();
+
+private:
+ required_device<cpu_device> m_maincpu;
+ required_device<address_map_bank_device> m_bank5800;
+ required_device<cpu_device> m_audiocpu;
+ required_device<k052109_device> m_k052109;
+ required_device<k051960_device> m_k051960;
+ required_memory_bank m_rombank;
+};
+
+
+//**************************************************************************
+// ADDRESS MAPS
+//**************************************************************************
+
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, blockhl_state )
+ AM_RANGE(0x1f84, 0x1f84) AM_WRITE(soundlatch_byte_w)
+ AM_RANGE(0x1f88, 0x1f88) AM_WRITE(sound_irq_w)
+ AM_RANGE(0x1f8c, 0x1f8c) AM_WRITE(watchdog_reset_w)
+ AM_RANGE(0x1f94, 0x1f94) AM_READ_PORT("DSW3")
+ AM_RANGE(0x1f95, 0x1f95) AM_READ_PORT("P1")
+ AM_RANGE(0x1f96, 0x1f96) AM_READ_PORT("P2")
+ AM_RANGE(0x1f97, 0x1f97) AM_READ_PORT("DSW1")
+ AM_RANGE(0x1f98, 0x1f98) AM_READ_PORT("DSW2")
+ AM_RANGE(0x0000, 0x3fff) AM_READWRITE(k052109_051960_r, k052109_051960_w)
+ AM_RANGE(0x4000, 0x57ff) AM_RAM
+ AM_RANGE(0x5800, 0x5fff) AM_DEVICE("bank5800", address_map_bank_device, amap8)
+ AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("rombank")
+ AM_RANGE(0x8000, 0xffff) AM_ROM AM_REGION("maincpu", 0x8000)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( bank5800_map, AS_PROGRAM, 8, blockhl_state )
+ AM_RANGE(0x0000, 0x07ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
+ AM_RANGE(0x0800, 0x0fff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, blockhl_state )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0x87ff) AM_RAM
+ AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_byte_r)
+ AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write)
+ AM_RANGE(0xe00c, 0xe00d) AM_WRITENOP // leftover from missing 007232?
+ADDRESS_MAP_END
+
-READ8_MEMBER(blockhl_state::bankedram_r)
+//**************************************************************************
+// VIDEO EMULATION
+//**************************************************************************
+
+K052109_CB_MEMBER( blockhl_state::tile_callback )
{
- if (m_palette_selected)
- return m_paletteram[offset];
- else
- return m_ram[offset];
+ static const int layer_colorbase[] = { 0 / 16, 256 / 16, 512 / 16 };
+
+ *code |= ((*color & 0x0f) << 8);
+ *color = layer_colorbase[layer] + ((*color & 0xe0) >> 5);
}
-WRITE8_MEMBER(blockhl_state::bankedram_w)
+K051960_CB_MEMBER( blockhl_state::sprite_callback )
{
- if (m_palette_selected)
- m_palette->write(space, offset, data);
- else
- m_ram[offset] = data;
+ enum { sprite_colorbase = 768 / 16 };
+
+ *priority = (*color & 0x10) ? GFX_PMASK_1 : 0;
+ *color = sprite_colorbase + (*color & 0x0f);
}
-WRITE8_MEMBER(blockhl_state::blockhl_sh_irqtrigger_w)
+UINT32 blockhl_state::screen_update_blockhl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
-}
+ screen.priority().fill(0, cliprect);
+ m_k052109->tilemap_update();
+ m_k052109->tilemap_draw(screen, bitmap, cliprect, 2, TILEMAP_DRAW_OPAQUE, 0); // tile 2
+ m_k052109->tilemap_draw(screen, bitmap, cliprect, 1, 0, 1); // tile 1
+ m_k051960->k051960_sprites_draw(bitmap, cliprect, screen.priority(), -1, -1);
+ m_k052109->tilemap_draw(screen, bitmap, cliprect, 0, 0, 0); // tile 0
-/* special handlers to combine 052109 & 051960 */
-READ8_MEMBER(blockhl_state::k052109_051960_r)
+ return 0;
+}
+
+// special handlers to combine 052109 & 051960
+READ8_MEMBER( blockhl_state::k052109_051960_r )
{
if (m_k052109->get_rmrd_line() == CLEAR_LINE)
{
@@ -73,7 +149,7 @@ READ8_MEMBER(blockhl_state::k052109_051960_r)
return m_k052109->read(space, offset);
}
-WRITE8_MEMBER(blockhl_state::k052109_051960_w)
+WRITE8_MEMBER( blockhl_state::k052109_051960_w )
{
if (offset >= 0x3800 && offset < 0x3808)
m_k051960->k051937_w(space, offset - 0x3800, data);
@@ -84,56 +160,84 @@ WRITE8_MEMBER(blockhl_state::k052109_051960_w)
}
-static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, blockhl_state )
- AM_RANGE(0x1f84, 0x1f84) AM_WRITE(soundlatch_byte_w)
- AM_RANGE(0x1f88, 0x1f88) AM_WRITE(blockhl_sh_irqtrigger_w)
- AM_RANGE(0x1f8c, 0x1f8c) AM_WRITE(watchdog_reset_w)
- AM_RANGE(0x1f94, 0x1f94) AM_READ_PORT("DSW3")
- AM_RANGE(0x1f95, 0x1f95) AM_READ_PORT("P1")
- AM_RANGE(0x1f96, 0x1f96) AM_READ_PORT("P2")
- AM_RANGE(0x1f97, 0x1f97) AM_READ_PORT("DSW1")
- AM_RANGE(0x1f98, 0x1f98) AM_READ_PORT("DSW2")
- AM_RANGE(0x0000, 0x3fff) AM_READWRITE(k052109_051960_r, k052109_051960_w)
- AM_RANGE(0x4000, 0x57ff) AM_RAM
- AM_RANGE(0x5800, 0x5fff) AM_READWRITE(bankedram_r, bankedram_w) AM_SHARE("ram")
- AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("bank1")
- AM_RANGE(0x8000, 0xffff) AM_ROM
-ADDRESS_MAP_END
+//**************************************************************************
+// AUDIO EMULATION
+//**************************************************************************
-static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, blockhl_state )
- AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0x8000, 0x87ff) AM_RAM
- AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_byte_r)
- AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write)
- AM_RANGE(0xe00c, 0xe00d) AM_WRITENOP /* leftover from missing 007232? */
-ADDRESS_MAP_END
+WRITE8_MEMBER( blockhl_state::sound_irq_w )
+{
+ m_audiocpu->set_input_line(INPUT_LINE_IRQ0, HOLD_LINE);
+}
+
+
+//**************************************************************************
+// MACHINE EMULATION
+//**************************************************************************
+
+void blockhl_state::machine_start()
+{
+ // the first 0x8000 are banked, the remaining 0x8000 are directly accessible
+ m_rombank->configure_entries(0, 4, memregion("maincpu")->base(), 0x2000);
+}
+
+WRITE8_MEMBER( blockhl_state::banking_callback )
+{
+ // bits 0-1 = ROM bank
+ m_rombank->set_entry(data & 0x03);
+ // bit 2, unknown (always 0)
-/***************************************************************************
+ // bits 3/4 = coin counters
+ coin_counter_w(machine(), 0, data & 0x08);
+ coin_counter_w(machine(), 1, data & 0x10);
+
+ // bit 5 = select palette RAM or work RAM at 5800-5fff
+ m_bank5800->set_bank(BIT(data, 5));
+
+ // bit 6 = enable char ROM reading through the video RAM
+ m_k052109->set_rmrd_line(BIT(data, 6) ? ASSERT_LINE : CLEAR_LINE);
+
+ // bit 7, unknown (always 1)
+}
- Input Ports
-***************************************************************************/
+//**************************************************************************
+// INPUTS
+//**************************************************************************
static INPUT_PORTS_START( blockhl )
PORT_START("P1")
- KONAMI8_B123_START(1)
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) PORT_4WAY PORT_PLAYER(1)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_4WAY PORT_PLAYER(1)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) PORT_4WAY PORT_PLAYER(1)
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNUSED) // joy down, can be tested in service mode
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(1)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED) // button 2, can be tested in service mode
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) // button 3, can be tested in service mode
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_START1)
PORT_START("P2")
- KONAMI8_B123_START(2)
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) PORT_4WAY PORT_PLAYER(2)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_4WAY PORT_PLAYER(2)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) PORT_4WAY PORT_PLAYER(2)
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNUSED) // joy down, can be tested in service mode
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(2)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED) // button 2, can be tested in service mode
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED) // button 3, can be tested in service mode
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_START2)
PORT_START("DSW1")
- KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "No Coin B", SW1)
- /* "No Coin B" = coins produce sound, but no effect on coin counter */
+ KONAMI_COINAGE_LOC(DEF_STR( Free_Play ), "Void", SW1)
+ // "Void" = coins produce sound, but no effect on coin counter
PORT_START("DSW2")
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW2:1")
PORT_DIPSETTING( 0x01, "1" )
PORT_DIPSETTING( 0x00, "2" )
- PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW2:2" ) /* Listed as "Unused" */
- PORT_DIPUNUSED_DIPLOC( 0x04, 0x04, "SW2:3" ) /* Listed as "Unused" */
- PORT_DIPUNUSED_DIPLOC( 0x08, 0x08, "SW2:4" ) /* Listed as "Unused" */
- PORT_DIPUNUSED_DIPLOC( 0x10, 0x10, "SW2:5" ) /* Listed as "Unused" */
+ PORT_DIPUNUSED_DIPLOC( 0x02, IP_ACTIVE_LOW, "SW2:2" )
+ PORT_DIPUNUSED_DIPLOC( 0x04, IP_ACTIVE_LOW, "SW2:3" )
+ PORT_DIPUNUSED_DIPLOC( 0x08, IP_ACTIVE_LOW, "SW2:4" )
+ PORT_DIPUNUSED_DIPLOC( 0x10, IP_ACTIVE_LOW, "SW2:5" )
PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:6,7")
PORT_DIPSETTING( 0x60, DEF_STR( Easy ) )
PORT_DIPSETTING( 0x40, DEF_STR( Normal ) )
@@ -144,86 +248,44 @@ static INPUT_PORTS_START( blockhl )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_START("DSW3")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_COIN1)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_COIN2)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_SERVICE1)
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_UNKNOWN)
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW3:1")
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPUNUSED_DIPLOC( 0x20, 0x20, "SW3:2" ) /* Listed as "Unused" */
- PORT_SERVICE_DIPLOC(0x40, IP_ACTIVE_LOW, "SW3:3" )
- PORT_DIPUNUSED_DIPLOC( 0x80, 0x80, "SW3:4" ) /* Listed as "Unused" */
+ PORT_DIPUNUSED_DIPLOC( 0x20, IP_ACTIVE_LOW, "SW3:2" )
+ PORT_SERVICE_DIPLOC( 0x40, IP_ACTIVE_LOW, "SW3:3" )
+ PORT_DIPUNUSED_DIPLOC( 0x80, IP_ACTIVE_LOW, "SW3:4" )
INPUT_PORTS_END
-/***************************************************************************
-
- Machine Driver
-
-***************************************************************************/
-
-void blockhl_state::machine_start()
-{
- UINT8 *ROM = memregion("maincpu")->base();
-
- membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x2000);
-
- m_paletteram.resize(m_palette->entries() * 2);
- m_palette->basemem().set(m_paletteram, ENDIANNESS_BIG, 2);
-
- save_item(NAME(m_paletteram));
- save_item(NAME(m_palette_selected));
- save_item(NAME(m_rombank));
-}
-
-void blockhl_state::machine_reset()
-{
- m_palette_selected = 0;
- m_rombank = 0;
-}
-
-WRITE8_MEMBER( blockhl_state::banking_callback )
-{
- /* bits 0-1 = ROM bank */
- m_rombank = data & 0x03;
- membank("bank1")->set_entry(m_rombank);
-
- /* bits 3/4 = coin counters */
- coin_counter_w(machine(), 0, data & 0x08);
- coin_counter_w(machine(), 1, data & 0x10);
-
- /* bit 5 = select palette RAM or work RAM at 5800-5fff */
- m_palette_selected = ~data & 0x20;
-
- /* bit 6 = enable char ROM reading through the video RAM */
- m_k052109->set_rmrd_line((data & 0x40) ? ASSERT_LINE : CLEAR_LINE);
-
- /* bit 7 used but unknown */
-
- /* other bits unknown */
-
- if ((data & 0x84) != 0x80)
- logerror("%04x: setlines %02x\n", machine().device("maincpu")->safe_pc(), data);
-}
+//**************************************************************************
+// MACHINE DEFINTIONS
+//**************************************************************************
static MACHINE_CONFIG_START( blockhl, blockhl_state )
-
- /* basic machine hardware */
- MCFG_CPU_ADD("maincpu", KONAMI,3000000) /* Konami custom 052526 */
+ // basic machine hardware
+ MCFG_CPU_ADD("maincpu", KONAMI, XTAL_24MHz/8) // Konami 052526
MCFG_CPU_PROGRAM_MAP(main_map)
- MCFG_CPU_VBLANK_INT_DRIVER("screen", blockhl_state, blockhl_interrupt)
MCFG_KONAMICPU_LINE_CB(WRITE8(blockhl_state, banking_callback))
- MCFG_CPU_ADD("audiocpu", Z80, 3579545)
+ MCFG_DEVICE_ADD("bank5800", ADDRESS_MAP_BANK, 0)
+ MCFG_DEVICE_PROGRAM_MAP(bank5800_map)
+ MCFG_ADDRESS_MAP_BANK_ENDIANNESS(ENDIANNESS_BIG)
+ MCFG_ADDRESS_MAP_BANK_DATABUS_WIDTH(8)
+ MCFG_ADDRESS_MAP_BANK_ADDRBUS_WIDTH(12)
+ MCFG_ADDRESS_MAP_BANK_STRIDE(0x0800)
+
+ MCFG_CPU_ADD("audiocpu", Z80, XTAL_3_579545MHz)
MCFG_CPU_PROGRAM_MAP(audio_map)
- /* video hardware */
+ // video hardware
MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
+ MCFG_SCREEN_RAW_PARAMS(XTAL_24MHz/3, 528, 112, 400, 256, 16, 240)
+// 6MHz dotclock is more realistic, however needs drawing updates. replace when ready
+// MCFG_SCREEN_RAW_PARAMS(XTAL_24MHz/4, 396, hbend, hbstart, 256, 16, 240)
MCFG_SCREEN_UPDATE_DRIVER(blockhl_state, screen_update_blockhl)
MCFG_SCREEN_PALETTE("palette")
@@ -233,81 +295,79 @@ static MACHINE_CONFIG_START( blockhl, blockhl_state )
MCFG_DEVICE_ADD("k052109", K052109, 0)
MCFG_GFX_PALETTE("palette")
+ MCFG_K052109_SCREEN_TAG("screen")
MCFG_K052109_CB(blockhl_state, tile_callback)
+ MCFG_K052109_IRQ_HANDLER(INPUTLINE("maincpu", KONAMI_IRQ_LINE))
MCFG_DEVICE_ADD("k051960", K051960, 0)
MCFG_GFX_PALETTE("palette")
+ MCFG_K051960_SCREEN_TAG("screen")
MCFG_K051960_CB(blockhl_state, sprite_callback)
- /* sound hardware */
+ // sound hardware
MCFG_SPEAKER_STANDARD_MONO("mono")
- MCFG_YM2151_ADD("ymsnd", 3579545)
+ MCFG_YM2151_ADD("ymsnd", XTAL_3_579545MHz)
MCFG_SOUND_ROUTE(0, "mono", 0.60)
MCFG_SOUND_ROUTE(1, "mono", 0.60)
MACHINE_CONFIG_END
-/***************************************************************************
-
- Game ROMs
-
-***************************************************************************/
+//**************************************************************************
+// ROM DEFINITIONS
+//**************************************************************************
ROM_START( blockhl )
- ROM_REGION( 0x18000, "maincpu", 0 ) /* code + banked roms + space for banked RAM */
- ROM_LOAD( "973l02.e21", 0x10000, 0x08000, CRC(e14f849a) SHA1(d44cf178cc98998b72ed32c6e20b6ebdf1f97579) )
- ROM_CONTINUE( 0x08000, 0x08000 )
+ ROM_REGION( 0x10000, "maincpu", 0 ) // code + banked roms
+ ROM_LOAD( "973l02.e21", 0x00000, 0x10000, CRC(e14f849a) SHA1(d44cf178cc98998b72ed32c6e20b6ebdf1f97579) )
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the sound CPU */
- ROM_LOAD( "973d01.g6", 0x0000, 0x8000, CRC(eeee9d92) SHA1(6c6c324b1f6f4fba0aa12e0d1fc5dbab133ef669) )
+ ROM_REGION( 0x08000, "audiocpu", 0 ) // 32k for the sound CPU
+ ROM_LOAD( "973d01.g6", 0x00000, 0x08000, CRC(eeee9d92) SHA1(6c6c324b1f6f4fba0aa12e0d1fc5dbab133ef669) )
- ROM_REGION( 0x20000, "k052109", 0 ) /* tiles */
+ ROM_REGION( 0x20000, "k052109", 0 ) // tiles
ROM_LOAD32_BYTE( "973f07.k15", 0x00000, 0x08000, CRC(1a8cd9b4) SHA1(7cb7944d24ac51fa6b610542d9dec68697cacf0f) )
ROM_LOAD32_BYTE( "973f08.k18", 0x00001, 0x08000, CRC(952b51a6) SHA1(017575738d444b688b137cad5611638d53be84f2) )
ROM_LOAD32_BYTE( "973f09.k20", 0x00002, 0x08000, CRC(77841594) SHA1(e1bfdc5bb598d865868d578ef7faba8078becd7a) )
ROM_LOAD32_BYTE( "973f10.k23", 0x00003, 0x08000, CRC(09039fab) SHA1(a9dea17aacf4484d21ef3b16470263447b51b6b5) )
- ROM_REGION( 0x20000, "k051960", 0 ) /* sprites */
+ ROM_REGION( 0x20000, "k051960", 0 ) // sprites
ROM_LOAD32_BYTE( "973f06.k12", 0x00000, 0x08000, CRC(51acfdb6) SHA1(94d243f341b490684f5297d95d4835bd522ece35) )
ROM_LOAD32_BYTE( "973f05.k9", 0x00001, 0x08000, CRC(4cfea298) SHA1(4772b5b99f5fd8174d8884bd84173512e1edabf4) )
ROM_LOAD32_BYTE( "973f04.k7", 0x00002, 0x08000, CRC(69ca41bd) SHA1(9b0b1c888efd2f2d5525f14778e18fb4a7353eb6) )
ROM_LOAD32_BYTE( "973f03.k4", 0x00003, 0x08000, CRC(21e98472) SHA1(8c697d369a1f57be0825c33b4e9107ce1b02a130) )
- ROM_REGION( 0x0100, "proms", 0 ) /* PROMs */
- ROM_LOAD( "973a11.h10", 0x0000, 0x0100, CRC(46d28fe9) SHA1(9d0811a928c8907785ef483bfbee5445506b3ec8) ) /* priority encoder (not used) */
+ ROM_REGION( 0x0100, "priority", 0 ) // priority encoder (not used)
+ ROM_LOAD( "973a11.h10", 0x0000, 0x0100, CRC(46d28fe9) SHA1(9d0811a928c8907785ef483bfbee5445506b3ec8) )
ROM_END
ROM_START( quarth )
- ROM_REGION( 0x18000, "maincpu", 0 ) /* code + banked roms + space for banked RAM */
- ROM_LOAD( "973j02.e21", 0x10000, 0x08000, CRC(27a90118) SHA1(51309385b93db29b9277d14252166c4ea1746303) )
- ROM_CONTINUE( 0x08000, 0x08000 )
+ ROM_REGION( 0x10000, "maincpu", 0 ) // code + banked roms
+ ROM_LOAD( "973j02.e21", 0x00000, 0x10000, CRC(27a90118) SHA1(51309385b93db29b9277d14252166c4ea1746303) )
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the sound CPU */
- ROM_LOAD( "973d01.g6", 0x0000, 0x8000, CRC(eeee9d92) SHA1(6c6c324b1f6f4fba0aa12e0d1fc5dbab133ef669) )
+ ROM_REGION( 0x08000, "audiocpu", 0 ) // 32k for the sound CPU
+ ROM_LOAD( "973d01.g6", 0x00000, 0x08000, CRC(eeee9d92) SHA1(6c6c324b1f6f4fba0aa12e0d1fc5dbab133ef669) )
- ROM_REGION( 0x20000, "k052109", 0 ) /* tiles */
+ ROM_REGION( 0x20000, "k052109", 0 ) // tiles
ROM_LOAD32_BYTE( "973e07.k15", 0x00000, 0x08000, CRC(0bd6b0f8) SHA1(6c59cf637354fe2df424eaa89feb9c1bc1f66a92) )
ROM_LOAD32_BYTE( "973e08.k18", 0x00001, 0x08000, CRC(104d0d5f) SHA1(595698911513113d01e5b565f5b073d1bd033d3f) )
ROM_LOAD32_BYTE( "973e09.k20", 0x00002, 0x08000, CRC(bd3a6f24) SHA1(eb45db3a6a52bb2b25df8c2dace877e59b4130a6) )
ROM_LOAD32_BYTE( "973e10.k23", 0x00003, 0x08000, CRC(cf5e4b86) SHA1(43348753894c1763b26dbfc70245dac92048db8f) )
- ROM_REGION( 0x20000, "k051960", 0 ) /* sprites */
+ ROM_REGION( 0x20000, "k051960", 0 ) // sprites
ROM_LOAD32_BYTE( "973e06.k12", 0x00000, 0x08000, CRC(0d58af85) SHA1(2efd661d614fb305a14cfe1aa4fb17714f215d4f) )
ROM_LOAD32_BYTE( "973e05.k9", 0x00001, 0x08000, CRC(15d822cb) SHA1(70ecad5e0a461df0da6e6eb23f43a7b643297f0d) )
ROM_LOAD32_BYTE( "973e04.k7", 0x00002, 0x08000, CRC(d70f4a2c) SHA1(25f835a17bacf2b8debb2eb8a3cff90cab3f402a) )
ROM_LOAD32_BYTE( "973e03.k4", 0x00003, 0x08000, CRC(2c5a4b4b) SHA1(e2991dd78b9cd96cf93ebd6de0d4e060d346ab9c) )
- ROM_REGION( 0x0100, "proms", 0 ) /* PROMs */
- ROM_LOAD( "973a11.h10", 0x0000, 0x0100, CRC(46d28fe9) SHA1(9d0811a928c8907785ef483bfbee5445506b3ec8) ) /* priority encoder (not used) */
+ ROM_REGION( 0x0100, "priority", 0 ) // priority encoder (not used)
+ ROM_LOAD( "973a11.h10", 0x0000, 0x0100, CRC(46d28fe9) SHA1(9d0811a928c8907785ef483bfbee5445506b3ec8) )
ROM_END
-/***************************************************************************
-
- Game driver(s)
-
-***************************************************************************/
+//**************************************************************************
+// GAME DRIVERS
+//**************************************************************************
-GAME( 1989, blockhl, 0, blockhl, blockhl, driver_device, 0, ROT0, "Konami", "Block Hole", GAME_SUPPORTS_SAVE )
-GAME( 1989, quarth, blockhl, blockhl, blockhl, driver_device, 0, ROT0, "Konami", "Quarth (Japan)", GAME_SUPPORTS_SAVE )
+// 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 )
diff --git a/src/mame/drivers/blockout.c b/src/mame/drivers/blockout.c
index 49621483c88..2aef99913e0 100644
--- a/src/mame/drivers/blockout.c
+++ b/src/mame/drivers/blockout.c
@@ -422,8 +422,8 @@ ROM_END
*
*************************************/
-GAME( 1989, blockout, 0, blockout, blockout, driver_device, 0, ROT0, "Technos Japan / California Dreams", "Block Out (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1989, blockout2,blockout, blockout, blockout, driver_device, 0, ROT0, "Technos Japan / California Dreams", "Block Out (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1989, blockoutj,blockout, blockout, blockoutj, driver_device,0, ROT0, "Technos Japan / California Dreams", "Block Out (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1991, agress, 0, agress, agress, driver_device, 0, ROT0, "Palco", "Agress - Missile Daisenryaku (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 2003, agressb, agress, agress, agress, driver_device, 0, ROT0, "bootleg", "Agress - Missile Daisenryaku (English bootleg)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/bloodbro.c b/src/mame/drivers/bloodbro.c
index ea6be5ffc9a..61fa573f078 100644
--- a/src/mame/drivers/bloodbro.c
+++ b/src/mame/drivers/bloodbro.c
@@ -36,7 +36,7 @@ view DIP descriptions. The manual states:
Game does not appear to have cocktail mode. The screen hardware
is undoubtedly capable of flipscreen and layer priority flipping
-however.(which is why we have GAME_NO_COCKTAIL despite the games
+however.(which is why we have MACHINE_NO_COCKTAIL despite the games
being upright)
Dumpers Notes
@@ -665,8 +665,8 @@ ROM_END
/* Game Drivers */
-GAME( 1990, bloodbro, 0, bloodbro, bloodbro, driver_device, 0, ROT0, "TAD Corporation", "Blood Bros. (set 1)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1990, bloodbroa,bloodbro, bloodbro, bloodbro, driver_device, 0, ROT0, "TAD Corporation", "Blood Bros. (set 2)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1990, bloodbrob,bloodbro, bloodbro, bloodbro, driver_device, 0, ROT0, "TAD Corporation", "Blood Bros. (set 3)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1990, weststry, bloodbro, weststry, weststry, driver_device, 0, ROT0, "bootleg (Datsu)", "West Story (bootleg of Blood Bros.)", GAME_NO_COCKTAIL | GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1990, skysmash, 0, skysmash, skysmash, driver_device, 0, ROT270, "Nihon System", "Sky Smasher", GAME_SUPPORTS_SAVE )
+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, weststry, bloodbro, weststry, weststry, driver_device, 0, ROT0, "bootleg (Datsu)", "West Story (bootleg of Blood Bros.)", MACHINE_NO_COCKTAIL | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1990, skysmash, 0, skysmash, skysmash, driver_device, 0, ROT270, "Nihon System", "Sky Smasher", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/blueprnt.c b/src/mame/drivers/blueprnt.c
index 7ac61ca1948..03d71b8fcd2 100644
--- a/src/mame/drivers/blueprnt.c
+++ b/src/mame/drivers/blueprnt.c
@@ -488,7 +488,7 @@ ROM_END
*
*************************************/
-GAME( 1982, blueprnt, 0, blueprnt, blueprnt, driver_device, 0, ROT270, "Zilec Electronics / Bally Midway", "Blue Print (Midway)", GAME_SUPPORTS_SAVE )
-GAME( 1982, blueprntj, blueprnt, blueprnt, blueprnt, driver_device, 0, ROT270, "Zilec Electronics / Jaleco", "Blue Print (Jaleco)", GAME_SUPPORTS_SAVE )
-GAME( 1983, saturnzi, 0, blueprnt, saturn, driver_device, 0, ROT270, "Zilec Electronics / Jaleco", "Saturn", GAME_SUPPORTS_SAVE )
-GAME( 1983, grasspin, 0, grasspin, grasspin, driver_device, 0, ROT270, "Zilec Electronics / Jaleco", "Grasspin", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS ) // a few issues with dip reading + video hw, but nothing major
+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
diff --git a/src/mame/drivers/bmcbowl.c b/src/mame/drivers/bmcbowl.c
index 5bb20a2f2a0..1ef5c0a9da4 100644
--- a/src/mame/drivers/bmcbowl.c
+++ b/src/mame/drivers/bmcbowl.c
@@ -514,4 +514,4 @@ DRIVER_INIT_MEMBER(bmcbowl_state,bmcbowl)
save_item(NAME(m_bmc_input));
}
-GAME( 1994, bmcbowl, 0, bmcbowl, bmcbowl, bmcbowl_state, bmcbowl, ROT0, "BMC", "Konkyuu no Hoshi", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE)
+GAME( 1994, bmcbowl, 0, bmcbowl, bmcbowl, bmcbowl_state, bmcbowl, ROT0, "BMC", "Konkyuu no Hoshi", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE)
diff --git a/src/mame/drivers/bmcpokr.c b/src/mame/drivers/bmcpokr.c
index 386e52bafc5..ae65392d227 100644
--- a/src/mame/drivers/bmcpokr.c
+++ b/src/mame/drivers/bmcpokr.c
@@ -622,7 +622,7 @@ static INPUT_PORTS_START( mjmaglmp )
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_COIN2 ) // NOTE
PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_GAMBLE_KEYOUT ) // KEY DOWN
PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Pay Out") PORT_CODE(KEYCODE_O) // PAY
- PORT_BIT( 0x0200, IP_ACTIVE_HIGH,IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, bmcpokr_state,hopper_r, NULL) // HOPPER
+ PORT_BIT( 0x0200, IP_ACTIVE_HIGH,IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, bmcpokr_state,hopper_r, NULL) // HOPPER
PORT_SERVICE_NO_TOGGLE( 0x0400, IP_ACTIVE_LOW ) // ACCOUNT
PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Reset") // RESET
PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) // (unused)
@@ -948,5 +948,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", GAME_SUPPORTS_SAVE )
-GAME( 2000, mjmaglmp, 0, mjmaglmp, mjmaglmp, driver_device, 0, ROT0, "BMC", "Mahjong Magic Lamp (v. JAA02)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/bmjr.c b/src/mame/drivers/bmjr.c
index 07cb4be9282..4ad812b6295 100644
--- a/src/mess/drivers/bmjr.c
+++ b/src/mame/drivers/bmjr.c
@@ -53,7 +53,6 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- DECLARE_PALETTE_INIT(bmjr);
UINT32 screen_update_bmjr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -324,15 +323,6 @@ static GFXDECODE_START( bmjr )
GFXDECODE_ENTRY( "chargen", 0x0000, bmjr_charlayout, 0, 4 )
GFXDECODE_END
-PALETTE_INIT_MEMBER(bmjr_state, bmjr)
-{
- int i;
-
- for(i=0;i<8;i++)
- palette.set_pen_color(i, pal1bit(i >> 1),pal1bit(i >> 2),pal1bit(i >> 0));
-}
-
-
void bmjr_state::machine_start()
{
m_beep->set_frequency(1200); //guesswork
@@ -361,8 +351,7 @@ static MACHINE_CONFIG_START( bmjr, bmjr_state )
MCFG_SCREEN_UPDATE_DRIVER(bmjr_state, screen_update_bmjr)
MCFG_SCREEN_PALETTE("palette")
- MCFG_PALETTE_ADD("palette", 8)
- MCFG_PALETTE_INIT_OWNER(bmjr_state, bmjr)
+ MCFG_PALETTE_ADD_3BIT_BRG("palette")
MCFG_GFXDECODE_ADD("gfxdecode", "palette", bmjr)
/* Audio */
@@ -393,4 +382,4 @@ 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", GAME_NOT_WORKING)
+COMP( 1982, bmjr, 0, 0, bmjr, bmjr, bmjr_state, bmjr, "Hitachi", "Basic Master Jr", MACHINE_NOT_WORKING)
diff --git a/src/mess/drivers/bml3.c b/src/mame/drivers/bml3.c
index c60f8425149..9b8b5eff66b 100644
--- a/src/mess/drivers/bml3.c
+++ b/src/mame/drivers/bml3.c
@@ -125,7 +125,7 @@ public:
TIMER_DEVICE_CALLBACK_MEMBER(keyboard_callback);
DECLARE_READ8_MEMBER(bml3_ym2203_r);
DECLARE_WRITE8_MEMBER(bml3_ym2203_w);
- DECLARE_PALETTE_INIT(bml3);
+
private:
UINT8 m_psg_latch;
UINT8 m_attr_latch;
@@ -760,14 +760,6 @@ INTERRUPT_GEN_MEMBER(bml3_state::bml3_timer_firq)
}
}
-PALETTE_INIT_MEMBER(bml3_state, bml3)
-{
- int i;
-
- for(i=0;i<8;i++)
- palette.set_pen_color(i, pal1bit(i >> 1),pal1bit(i >> 2),pal1bit(i >> 0));
-}
-
void bml3_state::machine_start()
{
m_extram = auto_alloc_array(machine(),UINT8,0x10000);
@@ -982,8 +974,7 @@ static MACHINE_CONFIG_START( bml3_common, bml3_state )
MCFG_SCREEN_SIZE(640, 400)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1)
MCFG_SCREEN_UPDATE_DEVICE("crtc", mc6845_device, screen_update)
- MCFG_PALETTE_ADD("palette", 8)
- MCFG_PALETTE_INIT_OWNER(bml3_state, bml3)
+ MCFG_PALETTE_ADD_3BIT_BRG("palette")
/* Devices */
// CRTC clock should be synchronous with the CPU clock.
@@ -1118,6 +1109,6 @@ 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", GAME_NOT_WORKING)
-COMP( 1982, bml3mk2,bml3, 0, bml3mk2, bml3, driver_device, 0, "Hitachi", "MB-6891 Basic Master Level 3 Mark 2", GAME_NOT_WORKING)
-COMP( 1983, bml3mk5,bml3, 0, bml3mk5, bml3, driver_device, 0, "Hitachi", "MB-6892 Basic Master Level 3 Mark 5", GAME_NOT_WORKING)
+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)
diff --git a/src/mame/drivers/bnstars.c b/src/mame/drivers/bnstars.c
index 42b4dacf4ab..8bb33dcb387 100644
--- a/src/mame/drivers/bnstars.c
+++ b/src/mame/drivers/bnstars.c
@@ -929,4 +929,4 @@ DRIVER_INIT_MEMBER(bnstars_state,bnstars)
configure_banks();
}
-GAME( 1997, bnstars1, 0, bnstars, bnstars, bnstars_state, bnstars, ROT0, "Jaleco", "Vs. Janshi Brandnew Stars", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
+GAME( 1997, bnstars1, 0, bnstars, bnstars, bnstars_state, bnstars, ROT0, "Jaleco", "Vs. Janshi Brandnew Stars", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
diff --git a/src/mame/drivers/bntyhunt.c b/src/mame/drivers/bntyhunt.c
index 3860ef27189..cdd012c81a8 100644
--- a/src/mame/drivers/bntyhunt.c
+++ b/src/mame/drivers/bntyhunt.c
@@ -75,4 +75,4 @@ ROM_START(bntyhunt)
ROM_END
-GAME( 200?, bntyhunt, 0, bntyhunt, bntyhunt, driver_device, 0, ROT0, "GCTech Co., LTD", "Bounty Hunter (GCTech Co., LTD)", GAME_NOT_WORKING|GAME_NO_SOUND )
+GAME( 200?, bntyhunt, 0, bntyhunt, bntyhunt, driver_device, 0, ROT0, "GCTech Co., LTD", "Bounty Hunter (GCTech Co., LTD)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND )
diff --git a/src/mess/drivers/bob85.c b/src/mame/drivers/bob85.c
index efa57ed3d4c..ce09e503fc3 100644
--- a/src/mess/drivers/bob85.c
+++ b/src/mame/drivers/bob85.c
@@ -223,4 +223,4 @@ 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", GAME_NO_SOUND_HW)
+COMP( 1984, bob85, 0, 0, bob85, bob85, driver_device, 0, "Josef Kratochvil", "BOB-85", MACHINE_NO_SOUND_HW)
diff --git a/src/mame/drivers/bogeyman.c b/src/mame/drivers/bogeyman.c
index 9aa989dad8a..bddda1d5862 100644
--- a/src/mame/drivers/bogeyman.c
+++ b/src/mame/drivers/bogeyman.c
@@ -52,7 +52,7 @@ static ADDRESS_MAP_START( bogeyman_map, AS_PROGRAM, 8, bogeyman_state )
AM_RANGE(0x2000, 0x20ff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram")
AM_RANGE(0x2100, 0x21ff) AM_RAM_WRITE(colorram_w) AM_SHARE("colorram")
AM_RANGE(0x2800, 0x2bff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x3000, 0x300f) AM_RAM_WRITE(paletteram_w) AM_SHARE("palette")
+ AM_RANGE(0x3000, 0x300f) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x3800, 0x3800) AM_READ_PORT("P1") AM_WRITE(ay8910_control_w)
AM_RANGE(0x3801, 0x3801) AM_READ_PORT("P2") AM_WRITE(ay8910_latch_w)
AM_RANGE(0x3802, 0x3802) AM_READ_PORT("DSW1")
@@ -232,7 +232,6 @@ static MACHINE_CONFIG_START( bogeyman, bogeyman_state )
MCFG_CPU_PROGRAM_MAP(bogeyman_map)
MCFG_CPU_PERIODIC_INT_DRIVER(bogeyman_state, irq0_line_hold, 16*60) // Controls sound
-
// video hardware
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
@@ -245,7 +244,7 @@ static MACHINE_CONFIG_START( bogeyman, bogeyman_state )
MCFG_GFXDECODE_ADD("gfxdecode", "palette", bogeyman)
MCFG_PALETTE_ADD("palette", 16+256)
- MCFG_PALETTE_FORMAT(BBGGGRRR)
+ MCFG_PALETTE_FORMAT(BBGGGRRR_inverted)
MCFG_PALETTE_INIT_OWNER(bogeyman_state, bogeyman)
// sound hardware
@@ -292,4 +291,4 @@ ROM_END
/* Game Driver */
-GAME( 1985, bogeyman, 0, bogeyman, bogeyman, driver_device, 0, ROT0, "Technos Japan", "Bogey Manor", GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE )
+GAME( 1985, bogeyman, 0, bogeyman, bogeyman, driver_device, 0, ROT0, "Technos Japan", "Bogey Manor", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/bombjack.c b/src/mame/drivers/bombjack.c
index e6a45cb715a..e58bc46a8ef 100644
--- a/src/mame/drivers/bombjack.c
+++ b/src/mame/drivers/bombjack.c
@@ -504,6 +504,6 @@ ROM_END
*
*************************************/
-GAME( 1984, bombjack, 0, bombjack, bombjack, driver_device, 0, ROT90, "Tehkan", "Bomb Jack (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1984, bombjack2, bombjack, bombjack, bombjack, driver_device, 0, ROT90, "Tehkan", "Bomb Jack (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1984, bombjackt, bombjack, bombjack, bombjack, driver_device, 0, ROT90, "Tehkan (Tecfri licence)", "Bomb Jack (Tecfri, Spain)", GAME_SUPPORTS_SAVE ) // official licence
+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
diff --git a/src/mame/drivers/boogwing.c b/src/mame/drivers/boogwing.c
index 4a0ecabbf5b..098397785c3 100644
--- a/src/mame/drivers/boogwing.c
+++ b/src/mame/drivers/boogwing.c
@@ -643,8 +643,8 @@ DRIVER_INIT_MEMBER(boogwing_state,boogwing)
memcpy(dst, src, 0x100000);
}
-GAME( 1992, boogwing, 0, boogwing, boogwing, boogwing_state, boogwing, ROT0, "Data East Corporation", "Boogie Wings (Euro v1.5, 92.12.07)", GAME_SUPPORTS_SAVE )
-GAME( 1992, boogwingu,boogwing, boogwing, boogwing, boogwing_state, boogwing, ROT0, "Data East Corporation", "Boogie Wings (USA v1.7, 92.12.14)", GAME_SUPPORTS_SAVE )
-GAME( 1992, boogwinga,boogwing, boogwing, boogwing, boogwing_state, boogwing, ROT0, "Data East Corporation", "Boogie Wings (Asia v1.5, 92.12.07)", GAME_SUPPORTS_SAVE )
-GAME( 1992, ragtime, boogwing, boogwing, boogwing, boogwing_state, boogwing, ROT0, "Data East Corporation", "The Great Ragtime Show (Japan v1.5, 92.12.07)", GAME_SUPPORTS_SAVE )
-GAME( 1992, ragtimea, boogwing, boogwing, boogwing, boogwing_state, boogwing, ROT0, "Data East Corporation", "The Great Ragtime Show (Japan v1.3, 92.11.26)", GAME_SUPPORTS_SAVE )
+GAME( 1992, boogwing, 0, boogwing, boogwing, boogwing_state, boogwing, ROT0, "Data East Corporation", "Boogie Wings (Euro v1.5, 92.12.07)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, boogwingu,boogwing, boogwing, boogwing, boogwing_state, boogwing, ROT0, "Data East Corporation", "Boogie Wings (USA v1.7, 92.12.14)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, boogwinga,boogwing, boogwing, boogwing, boogwing_state, boogwing, ROT0, "Data East Corporation", "Boogie Wings (Asia v1.5, 92.12.07)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, ragtime, boogwing, boogwing, boogwing, boogwing_state, boogwing, ROT0, "Data East Corporation", "The Great Ragtime Show (Japan v1.5, 92.12.07)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, ragtimea, boogwing, boogwing, boogwing, boogwing_state, boogwing, ROT0, "Data East Corporation", "The Great Ragtime Show (Japan v1.3, 92.11.26)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/bottom9.c b/src/mame/drivers/bottom9.c
index 6bf81e02a95..d5e1fa3479c 100644
--- a/src/mame/drivers/bottom9.c
+++ b/src/mame/drivers/bottom9.c
@@ -323,6 +323,7 @@ static MACHINE_CONFIG_START( bottom9, bottom9_state )
MCFG_DEVICE_ADD("k051960", K051960, 0)
MCFG_GFX_PALETTE("palette")
+ MCFG_K051960_SCREEN_TAG("screen")
MCFG_K051960_CB(bottom9_state, sprite_callback)
MCFG_DEVICE_ADD("k051316", K051316, 0)
@@ -523,6 +524,6 @@ ROM_END
-GAME( 1989, bottom9, 0, bottom9, bottom9, driver_device, 0, ROT0, "Konami", "Bottom of the Ninth (version T)", GAME_SUPPORTS_SAVE )
-GAME( 1989, bottom9n, bottom9, bottom9, bottom9, driver_device, 0, ROT0, "Konami", "Bottom of the Ninth (version N)", GAME_SUPPORTS_SAVE )
-GAME( 1989, mstadium, bottom9, bottom9, mstadium, driver_device, 0, ROT0, "Konami", "Main Stadium (Japan)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/bowltry.c b/src/mame/drivers/bowltry.c
index b464dd410d6..73e4b83a055 100644
--- a/src/mame/drivers/bowltry.c
+++ b/src/mame/drivers/bowltry.c
@@ -125,4 +125,4 @@ ROM_START( bowltry )
ROM_END
-GAME( 200?, bowltry, 0, bowltry, bowltry, driver_device, 0, ROT0, "Atlus", "Bowling Try",GAME_IS_SKELETON )
+GAME( 200?, bowltry, 0, bowltry, bowltry, driver_device, 0, ROT0, "Atlus", "Bowling Try",MACHINE_IS_SKELETON )
diff --git a/src/mame/drivers/boxer.c b/src/mame/drivers/boxer.c
index 8ed6612aa13..c5415e1b3f8 100644
--- a/src/mame/drivers/boxer.c
+++ b/src/mame/drivers/boxer.c
@@ -538,4 +538,4 @@ ROM_END
*
*************************************/
-GAME( 1978, boxer, 0, boxer, boxer, driver_device, 0, 0, "Atari", "Boxer (prototype)", GAME_NO_SOUND )
+GAME( 1978, boxer, 0, boxer, boxer, driver_device, 0, 0, "Atari", "Boxer (prototype)", MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/br8641.c b/src/mame/drivers/br8641.c
new file mode 100644
index 00000000000..671aeab491d
--- /dev/null
+++ b/src/mame/drivers/br8641.c
@@ -0,0 +1,200 @@
+// license:BSD-3-Clause
+// copyright-holders:Miodrag Milanovic, Robbbert
+/***************************************************************************
+
+ Brandt 8641
+
+ Currency Counter
+
+ 2012-12-24 Skeleton driver. [Micko]
+ 2015-09-27 Added devices & inputs based entirely on guesswork [Robbbert]
+
+ There seems to be 15 buttons (according to images, I just have board)
+ also there are 8 dips currently set at 00011100 (1 is on)
+
+ Looks like a LCD display? I think ports 8 & 9 write to it. Also looks
+ like the display should say 8641 when machine is turned on.
+
+ToDo:
+- Need manuals, schematics, etc.
+- Artwork
+- Everything
+
+****************************************************************************/
+
+#include "emu.h"
+#include "cpu/z80/z80.h"
+#include "cpu/z80/z80daisy.h"
+#include "machine/z80ctc.h"
+#include "machine/z80pio.h"
+#include "sound/beep.h"
+
+class brandt8641_state : public driver_device
+{
+public:
+ brandt8641_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ , m_pio1(*this, "pio1")
+ , m_pio2(*this, "pio2")
+ , m_pio3(*this, "pio3")
+ , m_ctc(*this, "ctc")
+ , m_io_keyboard(*this, "KEY")
+ , m_beep(*this, "beeper")
+ { }
+
+ DECLARE_READ8_MEMBER(port08_r);
+ DECLARE_WRITE8_MEMBER(port08_w);
+ DECLARE_WRITE8_MEMBER(port09_w);
+ DECLARE_MACHINE_RESET(br8641);
+
+private:
+ UINT8 m_port08;
+ UINT8 m_port09;
+ required_device<cpu_device> m_maincpu;
+ required_device<z80pio_device> m_pio1;
+ required_device<z80pio_device> m_pio2;
+ required_device<z80pio_device> m_pio3;
+ required_device<z80ctc_device> m_ctc;
+ required_ioport_array<8> m_io_keyboard;
+ required_device<beep_device> m_beep;
+};
+
+static ADDRESS_MAP_START(brandt8641_mem, AS_PROGRAM, 8, brandt8641_state)
+ ADDRESS_MAP_UNMAP_HIGH
+ AM_RANGE(0x0000, 0x7fff) AM_ROM // 27256 at U12
+ AM_RANGE(0x8000, 0x9fff) AM_RAM // 8KB static ram 6264 at U12
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START(brandt8641_io, AS_IO, 8, brandt8641_state)
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
+ AM_RANGE(0x04, 0x07) AM_DEVREADWRITE("pio1", z80pio_device, read, write)
+ AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE("pio2", z80pio_device, read, write)
+ AM_RANGE(0x0c, 0x0f) AM_DEVREADWRITE("pio3", z80pio_device, read, write)
+ AM_RANGE(0x10, 0x13) AM_DEVREADWRITE("ctc", z80ctc_device, read, write)
+ AM_RANGE(0x1E, 0x1F) AM_WRITENOP // unknown device
+ADDRESS_MAP_END
+
+/* Input ports */
+// No idea what each key does
+static INPUT_PORTS_START( brandt8641 )
+ PORT_START("KEY.0")
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_A)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_B)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_C)
+
+ PORT_START("KEY.1")
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_D)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_E)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F)
+
+ PORT_START("KEY.2")
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_G)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_H)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_I)
+
+ PORT_START("KEY.3")
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_J)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_K)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_L)
+
+ PORT_START("KEY.4")
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_M)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_N)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_O)
+
+ PORT_START("KEY.5")
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_P)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Q)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_R)
+
+ PORT_START("KEY.6")
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_S)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_T)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_U)
+
+ PORT_START("KEY.7")
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_V)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_W)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_X)
+INPUT_PORTS_END
+
+READ8_MEMBER( brandt8641_state::port08_r )
+{
+ UINT8 i, data = 7;
+
+ for (i = 0; i < 8; i++)
+ if BIT(m_port09, i)
+ data &= m_io_keyboard[i]->read();
+
+ return data | m_port08;
+}
+
+WRITE8_MEMBER( brandt8641_state::port08_w )
+{
+ m_port08 = data & 0xf8;
+ m_beep->set_state(BIT(data, 4));
+}
+
+WRITE8_MEMBER( brandt8641_state::port09_w )
+{
+ m_port09 = data ^ 0xff;
+}
+
+MACHINE_RESET_MEMBER( brandt8641_state, br8641 )
+{
+ m_beep->set_frequency(2000);
+}
+
+static const z80_daisy_config daisy_chain_intf[] =
+{
+ { "pio1" },
+ { "pio2" },
+ { "pio3" },
+ { "ctc" },
+ { NULL }
+};
+
+
+
+static MACHINE_CONFIG_START( brandt8641, brandt8641_state )
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", Z80, XTAL_4MHz) // U4 ,4MHz crystal on board
+ MCFG_CPU_PROGRAM_MAP(brandt8641_mem)
+ MCFG_CPU_IO_MAP(brandt8641_io)
+ MCFG_CPU_CONFIG(daisy_chain_intf)
+
+ MCFG_MACHINE_RESET_OVERRIDE(brandt8641_state, br8641)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_SOUND_ADD("beeper", BEEP, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
+
+ // Z80APIO U9
+ // Z80APIO U14
+ // Z80PIO U7 - unknown which is which
+ MCFG_DEVICE_ADD("pio1", Z80PIO, XTAL_4MHz)
+ MCFG_Z80PIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
+
+ MCFG_DEVICE_ADD("pio2", Z80PIO, XTAL_4MHz)
+ MCFG_Z80PIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
+ MCFG_Z80PIO_IN_PA_CB(READ8(brandt8641_state, port08_r))
+ MCFG_Z80PIO_OUT_PA_CB(WRITE8(brandt8641_state, port08_w))
+ MCFG_Z80PIO_OUT_PB_CB(WRITE8(brandt8641_state, port09_w))
+
+ MCFG_DEVICE_ADD("pio3", Z80PIO, XTAL_4MHz)
+ MCFG_Z80PIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
+
+ MCFG_DEVICE_ADD("ctc", Z80CTC, XTAL_4MHz) // Z80CTC U8
+MACHINE_CONFIG_END
+
+/* ROM definition */
+ROM_START( br8641 )
+ ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF )
+ ROM_LOAD( "v0911he.u11", 0x0000, 0x8000, CRC(59a16951) SHA1(893dba60ec8bfa391fb2d2a30db5d42d601f5eb9))
+ROM_END
+
+/* Driver */
+COMP( 1986, br8641, 0, 0, brandt8641, brandt8641, driver_device, 0, "Brandt", "Brandt 8641", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/brkthru.c b/src/mame/drivers/brkthru.c
index 1bb13c59bec..00f62d7a53b 100644
--- a/src/mame/drivers/brkthru.c
+++ b/src/mame/drivers/brkthru.c
@@ -647,7 +647,7 @@ DRIVER_INIT_MEMBER(brkthru_state,brkthru)
*
*************************************/
-GAME( 1986, brkthru, 0, brkthru, brkthru, brkthru_state, brkthru, ROT0, "Data East USA", "Break Thru (US)", GAME_SUPPORTS_SAVE )
-GAME( 1986, brkthruj, brkthru, brkthru, brkthruj, brkthru_state, brkthru, ROT0, "Data East Corporation", "Kyohkoh-Toppa (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1986, forcebrk, brkthru, brkthru, brkthruj, brkthru_state, brkthru, ROT0, "bootleg", "Force Break (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1986, darwin, 0, darwin, darwin, brkthru_state, brkthru, ROT270, "Data East Corporation", "Darwin 4078 (Japan)", GAME_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 )
diff --git a/src/mame/drivers/bsktball.c b/src/mame/drivers/bsktball.c
index 49e4c869735..90052c677af 100644
--- a/src/mame/drivers/bsktball.c
+++ b/src/mame/drivers/bsktball.c
@@ -300,4 +300,4 @@ ROM_END
*
*************************************/
-GAME( 1979, bsktball, 0, bsktball, bsktball, driver_device, 0, ROT0, "Atari", "Basketball", GAME_SUPPORTS_SAVE )
+GAME( 1979, bsktball, 0, bsktball, bsktball, driver_device, 0, ROT0, "Atari", "Basketball", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/btime.c b/src/mame/drivers/btime.c
index f5fa2a2f679..b1524a4fce1 100644
--- a/src/mame/drivers/btime.c
+++ b/src/mame/drivers/btime.c
@@ -192,7 +192,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(btime_state::audio_nmi_gen)
static ADDRESS_MAP_START( btime_map, AS_PROGRAM, 8, btime_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("rambase")
- AM_RANGE(0x0c00, 0x0c0f) AM_RAM_WRITE(btime_paletteram_w) AM_SHARE("palette")
+ AM_RANGE(0x0c00, 0x0c0f) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x1000, 0x13ff) AM_RAM AM_SHARE("videoram")
AM_RANGE(0x1400, 0x17ff) AM_RAM AM_SHARE("colorram")
AM_RANGE(0x1800, 0x1bff) AM_READWRITE(btime_mirrorvideoram_r, btime_mirrorvideoram_w)
@@ -227,7 +227,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( tisland_map, AS_PROGRAM, 8, btime_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("rambase")
- AM_RANGE(0x0c00, 0x0c0f) AM_RAM_WRITE(btime_paletteram_w) AM_SHARE("palette")
+ AM_RANGE(0x0c00, 0x0c0f) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x1000, 0x13ff) AM_RAM AM_SHARE("videoram")
AM_RANGE(0x1400, 0x17ff) AM_RAM AM_SHARE("colorram")
AM_RANGE(0x1800, 0x1bff) AM_READWRITE(btime_mirrorvideoram_r, btime_mirrorvideoram_w)
@@ -304,7 +304,7 @@ static ADDRESS_MAP_START( bnj_map, AS_PROGRAM, 8, btime_state )
AM_RANGE(0x5200, 0x53ff) AM_RAM
AM_RANGE(0x5400, 0x5400) AM_WRITE(bnj_scroll1_w)
AM_RANGE(0x5800, 0x5800) AM_WRITE(bnj_scroll2_w)
- AM_RANGE(0x5c00, 0x5c0f) AM_RAM_WRITE(btime_paletteram_w) AM_SHARE("palette")
+ AM_RANGE(0x5c00, 0x5c0f) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xa000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -1310,7 +1310,7 @@ static MACHINE_CONFIG_START( btime, btime_state )
MCFG_PALETTE_ADD("palette", 16)
MCFG_PALETTE_INIT_OWNER(btime_state,btime)
- MCFG_PALETTE_FORMAT(BBGGGRRR)
+ MCFG_PALETTE_FORMAT(BBGGGRRR_inverted)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2059,22 +2059,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)", GAME_SUPPORTS_SAVE )
-GAME( 1982, btime2, btime, btime, btime, btime_state, btime, ROT270, "Data East Corporation", "Burger Time (Data East set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1982, btime3, btime, btime, btime, btime_state, btime, ROT270, "Data East USA Inc.", "Burger Time (Data East USA)", GAME_SUPPORTS_SAVE )
-GAME( 1982, btimem, btime, btime, btime, btime_state, btime, ROT270, "Data East (Bally Midway license)", "Burger Time (Midway)", GAME_SUPPORTS_SAVE )
-GAME( 1982, cookrace, btime, cookrace, cookrace, btime_state, cookrace, ROT270, "bootleg", "Cook Race", GAME_SUPPORTS_SAVE )
-GAME( 1981, tisland, 0, tisland, btime, btime_state, tisland, ROT270, "Data East Corporation", "Treasure Island", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1981, lnc, 0, lnc, lnc, btime_state, lnc, ROT270, "Data East Corporation", "Lock'n'Chase", GAME_SUPPORTS_SAVE )
-GAME( 1982, protennb, 0, disco, disco, btime_state, protennb, ROT270, "bootleg", "Tennis (bootleg of Pro Tennis)", GAME_SUPPORTS_SAVE )
-GAME( 1982, wtennis, 0, wtennis, wtennis, btime_state, wtennis, ROT270, "bootleg", "World Tennis", GAME_SUPPORTS_SAVE )
-GAME( 1982, mmonkey, 0, mmonkey, mmonkey, btime_state, lnc, ROT270, "Technos Japan / Roller Tron", "Minky Monkey", GAME_SUPPORTS_SAVE )
-GAME( 1982, brubber, 0, bnj, bnj, btime_state, bnj, ROT270, "Data East", "Burnin' Rubber", GAME_SUPPORTS_SAVE )
-GAME( 1982, bnj, brubber, bnj, bnj, btime_state, bnj, ROT270, "Data East USA", "Bump 'n' Jump", GAME_SUPPORTS_SAVE )
-GAME( 1982, bnjm, brubber, bnj, bnj, btime_state, bnj, ROT270, "Data East USA (Bally Midway license)", "Bump 'n' Jump (Midway)", GAME_SUPPORTS_SAVE )
-GAME( 1982, caractn, brubber, bnj, bnj, btime_state, bnj, ROT270, "bootleg", "Car Action (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1982, caractn2, brubber, bnj, caractn2, btime_state, bnj, ROT270, "bootleg", "Car Action (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1982, zoar, 0, zoar, zoar, btime_state, zoar, ROT270, "Data East USA", "Zoar", GAME_SUPPORTS_SAVE )
-GAME( 1982, disco, 0, disco, disco, btime_state, disco, ROT270, "Data East", "Disco No.1", GAME_SUPPORTS_SAVE )
-GAME( 1982, discof, disco, disco, disco, btime_state, disco, ROT270, "Data East", "Disco No.1 (Rev.F)", GAME_SUPPORTS_SAVE )
-GAME( 1983, sdtennis, 0, sdtennis, sdtennis, btime_state, sdtennis, ROT270, "Data East Corporation", "Super Doubles Tennis", GAME_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.c b/src/mame/drivers/btoads.c
index 9a8ac17909f..880cd3ba532 100644
--- a/src/mame/drivers/btoads.c
+++ b/src/mame/drivers/btoads.c
@@ -367,4 +367,4 @@ ROM_END
*
*************************************/
-GAME( 1994, btoads, 0, btoads, btoads, driver_device, 0, ROT0, "Rare / Electronic Arts", "Battletoads", GAME_SUPPORTS_SAVE )
+GAME( 1994, btoads, 0, btoads, btoads, driver_device, 0, ROT0, "Rare / Electronic Arts", "Battletoads", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/bublbobl.c b/src/mame/drivers/bublbobl.c
index 065ca46b23f..28c720a8ddc 100644
--- a/src/mame/drivers/bublbobl.c
+++ b/src/mame/drivers/bublbobl.c
@@ -1584,20 +1584,20 @@ DRIVER_INIT_MEMBER(bublbobl_state,dland)
*
*************************************/
-GAME( 1986, tokio, 0, tokio, tokio, bublbobl_state, tokio, ROT90, "Taito Corporation", "Tokio / Scramble Formation (newer)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE )
-GAME( 1986, tokioo, tokio, tokio, tokio, bublbobl_state, tokio, ROT90, "Taito Corporation", "Tokio / Scramble Formation (older)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE )
-GAME( 1986, tokiou, tokio, tokio, tokio, bublbobl_state, tokio, ROT90, "Taito America Corporation (Romstar license)", "Tokio / Scramble Formation (US)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE )
-GAME( 1986, tokiob, tokio, tokio, tokio, bublbobl_state, tokiob, ROT90, "bootleg", "Tokio / Scramble Formation (bootleg)", GAME_SUPPORTS_SAVE )
-
-GAME( 1986, bublbobl, 0, bublbobl, bublbobl, bublbobl_state, bublbobl, ROT0, "Taito Corporation", "Bubble Bobble (Japan, Ver 0.1)", GAME_SUPPORTS_SAVE )
-GAME( 1986, bublbobl1, bublbobl, bublbobl, bublbobl, bublbobl_state, bublbobl, ROT0, "Taito Corporation", "Bubble Bobble (Japan, Ver 0.0)", GAME_SUPPORTS_SAVE )
-GAME( 1986, bublboblr, bublbobl, bublbobl, bublbobl, bublbobl_state, bublbobl, ROT0, "Taito America Corporation (Romstar license)", "Bubble Bobble (US, Ver 5.1)", GAME_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)", GAME_SUPPORTS_SAVE )
-
-GAME( 1986, boblbobl, bublbobl, boblbobl, boblbobl, bublbobl_state, bublbobl, ROT0, "bootleg", "Bobble Bobble (bootleg of Bubble Bobble)", GAME_SUPPORTS_SAVE )
-GAME( 1986, sboblbobl, bublbobl, boblbobl, sboblbobl, bublbobl_state, bublbobl, ROT0, "bootleg (Datsu)", "Super Bobble Bobble (bootleg, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1986, sboblbobla, bublbobl, boblbobl, boblbobl, bublbobl_state, bublbobl, ROT0, "bootleg", "Super Bobble Bobble (bootleg, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1986, sboblboblb, bublbobl, boblbobl, sboblboblb, bublbobl_state, bublbobl, ROT0, "bootleg", "Super Bobble Bobble (bootleg, set 3)", GAME_SUPPORTS_SAVE )
-GAME( 1986, bub68705, bublbobl, bub68705, bublbobl, bublbobl_state, bublbobl, ROT0, "bootleg", "Bubble Bobble (bootleg with 68705)", GAME_SUPPORTS_SAVE )
-
-GAME( 1987, dland, bublbobl, boblbobl, dland, bublbobl_state, dland, ROT0, "bootleg", "Dream Land / Super Dream Land (bootleg of Bubble Bobble)", GAME_SUPPORTS_SAVE )
+GAME( 1986, tokio, 0, tokio, tokio, bublbobl_state, tokio, ROT90, "Taito Corporation", "Tokio / Scramble Formation (newer)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1986, tokioo, tokio, tokio, tokio, bublbobl_state, tokio, ROT90, "Taito Corporation", "Tokio / Scramble Formation (older)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1986, tokiou, tokio, tokio, tokio, bublbobl_state, tokio, ROT90, "Taito America Corporation (Romstar license)", "Tokio / Scramble Formation (US)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1986, tokiob, tokio, tokio, tokio, bublbobl_state, tokiob, 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, 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, bub68705, bublbobl, bub68705, bublbobl, bublbobl_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 )
diff --git a/src/mame/drivers/buggychl.c b/src/mame/drivers/buggychl.c
index 4732e60410b..81e2232da8a 100644
--- a/src/mame/drivers/buggychl.c
+++ b/src/mame/drivers/buggychl.c
@@ -484,5 +484,5 @@ ROM_START( buggychlt )
ROM_END
-GAMEL( 1984, buggychl, 0, buggychl, buggychl, driver_device, 0, ROT270, "Taito Corporation", "Buggy Challenge", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE, layout_buggychl )
-GAMEL( 1984, buggychlt,buggychl, buggychl, buggychl, driver_device, 0, ROT270, "Taito Corporation (Tecfri license)", "Buggy Challenge (Tecfri)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS| GAME_SUPPORTS_SAVE, layout_buggychl )
+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 )
diff --git a/src/mess/drivers/bullet.c b/src/mame/drivers/bullet.c
index 9b073983797..8cfdd256dc4 100644
--- a/src/mess/drivers/bullet.c
+++ b/src/mame/drivers/bullet.c
@@ -1293,5 +1293,5 @@ ROM_END
// YEAR NAME PARENT COMPAT MACHINE INPUT 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", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
-COMP( 1984, wmbulletf, wmbullet, 0, bulletf, bulletf, driver_device, 0, "Wave Mate", "Bullet (Revision F)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
+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 )
diff --git a/src/mess/drivers/busicom.c b/src/mame/drivers/busicom.c
index c0fb6ac2276..adcb77be331 100644
--- a/src/mess/drivers/busicom.c
+++ b/src/mame/drivers/busicom.c
@@ -246,4 +246,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1974, busicom, 0, 0, busicom, busicom, driver_device, 0, "Business Computer Corporation", "Busicom 141-PF", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/buster.c b/src/mame/drivers/buster.c
index 6910480856b..9c489904229 100644
--- a/src/mame/drivers/buster.c
+++ b/src/mame/drivers/buster.c
@@ -27,7 +27,6 @@ public:
required_shared_ptr<UINT8> m_vram;
DECLARE_READ8_MEMBER(test_r);
virtual void video_start();
- DECLARE_PALETTE_INIT(buster);
UINT32 screen_update_buster(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<gfxdecode_device> m_gfxdecode;
@@ -314,14 +313,6 @@ static GFXDECODE_START( buster )
GFXDECODE_ENTRY( "gfx1", 0, tiles8x8_layout, 0, 1 )
GFXDECODE_END
-PALETTE_INIT_MEMBER(buster_state, buster)
-{
- int i;
-
- /* RGB format */
- for(i=0;i<8;i++)
- palette.set_pen_color(i, rgb_t(pal1bit(i >> 0),pal1bit(i >> 1),pal1bit(i >> 2)));
-}
static MACHINE_CONFIG_START( buster, buster_state )
/* basic machine hardware */
@@ -343,8 +334,8 @@ static MACHINE_CONFIG_START( buster, buster_state )
MCFG_MC6845_CHAR_WIDTH(8)
MCFG_GFXDECODE_ADD("gfxdecode", "palette", buster)
- MCFG_PALETTE_ADD("palette", 8)
- MCFG_PALETTE_INIT_OWNER(buster_state, buster)
+
+ MCFG_PALETTE_ADD_3BIT_RGB("palette")
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -367,4 +358,4 @@ ROM_START( buster )
ROM_END
-GAME( 1982, buster, 0, buster, buster, driver_device, 0, ROT0, "Marian Electronics Ltd.", "Buster", GAME_NOT_WORKING|GAME_NO_SOUND )
+GAME( 1982, buster, 0, buster, buster, driver_device, 0, ROT0, "Marian Electronics Ltd.", "Buster", MACHINE_NOT_WORKING|MACHINE_NO_SOUND )
diff --git a/src/mess/drivers/bw12.c b/src/mame/drivers/bw12.c
index 5ee86657c32..6d880bcd38e 100644
--- a/src/mess/drivers/bw12.c
+++ b/src/mame/drivers/bw12.c
@@ -666,5 +666,5 @@ 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", GAME_SUPPORTS_SAVE )
-COMP( 1984, bw14, bw12, 0, bw14, bw12, driver_device, 0, "Bondwell Holding", "Bondwell 14", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/bw2.c b/src/mame/drivers/bw2.c
index dc7765e4e6c..546abec3575 100644
--- a/src/mess/drivers/bw2.c
+++ b/src/mame/drivers/bw2.c
@@ -675,4 +675,4 @@ ROM_END
//**************************************************************************
// 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", GAME_NO_SOUND_HW )
+COMP( 1985, bw2, 0, 0, bw2, bw2, driver_device, 0, "Bondwell Holding", "Bondwell Model 2", MACHINE_NO_SOUND_HW )
diff --git a/src/mame/drivers/bwidow.c b/src/mame/drivers/bwidow.c
index 78d41b8793d..ae1b2056abe 100644
--- a/src/mame/drivers/bwidow.c
+++ b/src/mame/drivers/bwidow.c
@@ -1059,13 +1059,13 @@ ROM_END
*
*************************************/
-GAME( 1980, spacduel, 0, spacduel, spacduel, driver_device, 0, ROT0, "Atari", "Space Duel (version 2)", GAME_SUPPORTS_SAVE )
-GAME( 1980, spacduel1,spacduel, spacduel, spacduel, driver_device, 0, ROT0, "Atari", "Space Duel (version 1)", GAME_SUPPORTS_SAVE )
-GAME( 1980, spacduel0,spacduel, spacduel, spacduel, driver_device, 0, ROT0, "Atari", "Space Duel (prototype)", GAME_SUPPORTS_SAVE )
-GAME( 1982, bwidow, 0, bwidow, bwidow, driver_device, 0, ROT0, "Atari", "Black Widow", GAME_SUPPORTS_SAVE )
-GAME( 1982, bwidowp, bwidow, bwidowp, bwidow, driver_device, 0, ROT0, "Atari", "Black Widow (prototype)", GAME_NOT_WORKING )
-GAME( 1982, gravitar, 0, gravitar, gravitar, driver_device, 0, ROT0, "Atari", "Gravitar (version 3)", GAME_SUPPORTS_SAVE )
-GAME( 1982, gravitar2,gravitar, gravitar, gravitar, driver_device, 0, ROT0, "Atari", "Gravitar (version 2)", GAME_SUPPORTS_SAVE )
-GAME( 1982, gravitar1,gravitar, gravitar, gravitar, driver_device, 0, ROT0, "Atari", "Gravitar (version 1)", GAME_SUPPORTS_SAVE )
-GAME( 1982, lunarbat, gravitar, gravitar, gravitar, driver_device, 0, ROT0, "Atari", "Lunar Battle (prototype, later)", GAME_SUPPORTS_SAVE )
-GAME( 1982, lunarba1, gravitar, lunarbat, lunarbat, driver_device, 0, ROT0, "Atari", "Lunar Battle (prototype, earlier)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/bwing.c b/src/mame/drivers/bwing.c
index 311b287e3eb..25eb0134238 100644
--- a/src/mame/drivers/bwing.c
+++ b/src/mame/drivers/bwing.c
@@ -561,9 +561,9 @@ DRIVER_INIT_MEMBER(bwing_state,bwing)
//****************************************************************************
// Game Entries
-GAME( 1984, bwings, 0, bwing, bwing, bwing_state, bwing, ROT90, "Data East Corporation", "B-Wings (Japan new Ver.)", GAME_SUPPORTS_SAVE )
-GAME( 1984, bwingso, bwings, bwing, bwing, bwing_state, bwing, ROT90, "Data East Corporation", "B-Wings (Japan old Ver.)", GAME_SUPPORTS_SAVE )
-GAME( 1984, bwingsa, bwings, bwing, bwing, bwing_state, bwing, ROT90, "Data East Corporation", "B-Wings (Alt Ver.?)", GAME_SUPPORTS_SAVE )
+GAME( 1984, bwings, 0, bwing, bwing, bwing_state, bwing, ROT90, "Data East Corporation", "B-Wings (Japan new Ver.)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, bwingso, bwings, bwing, bwing, bwing_state, bwing, ROT90, "Data East Corporation", "B-Wings (Japan old Ver.)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, bwingsa, bwings, bwing, bwing, bwing_state, bwing, ROT90, "Data East Corporation", "B-Wings (Alt Ver.?)", MACHINE_SUPPORTS_SAVE )
-GAME( 1984, zaviga, 0, bwing, bwing, bwing_state, bwing, ROT90, "Data East Corporation", "Zaviga", GAME_SUPPORTS_SAVE )
-GAME( 1984, zavigaj, zaviga, bwing, bwing, bwing_state, bwing, ROT90, "Data East Corporation", "Zaviga (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1984, zaviga, 0, bwing, bwing, bwing_state, bwing, ROT90, "Data East Corporation", "Zaviga", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, zavigaj, zaviga, bwing, bwing, bwing_state, bwing, ROT90, "Data East Corporation", "Zaviga (Japan)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/by17.c b/src/mame/drivers/by17.c
index 215ff26226f..3a837969bf4 100644
--- a/src/mame/drivers/by17.c
+++ b/src/mame/drivers/by17.c
@@ -642,13 +642,13 @@ ROM_END
/---------------------------------------------------------------*/
-GAME( 1976, bowarrow, 0, by17, by17, driver_device, 0, ROT0, "Bally", "Bow & Arrow (Prototype)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1977, freedom, 0, by17, by17, driver_device, 0, ROT0, "Bally", "Freedom", GAME_MECHANICAL)
-GAME( 1977, nightrdr, 0, by17, by17, driver_device, 0, ROT0, "Bally", "Night Rider (rev. 21)", GAME_MECHANICAL)
-GAME( 1977, nightr20, nightrdr, by17, by17, driver_device, 0, ROT0, "Bally", "Night Rider (rev. 20)", GAME_MECHANICAL)
-GAME( 1978, blackjck, 0, by17, by17, driver_device, 0, ROT0, "Bally", "Black Jack (Pinball)", GAME_MECHANICAL)
-GAME( 1977, evelknie, 0, by17, by17, driver_device, 0, ROT0, "Bally", "Evel Knievel", GAME_MECHANICAL)
-GAME( 1978, matahari, 0, by17, by17, driver_device, 0, ROT0, "Bally", "Mata Hari", GAME_MECHANICAL)
-GAME( 1977, eightbll, 0, by17, by17, driver_device, 0, ROT0, "Bally", "Eight Ball", GAME_MECHANICAL)
-GAME( 1978, pwerplay, 0, by17, by17, driver_device, 0, ROT0, "Bally", "Power Play (Pinball)", GAME_MECHANICAL)
-GAME( 1978, stk_sprs, 0, by17, by17, driver_device, 0, ROT0, "Bally", "Strikes and Spares", GAME_MECHANICAL)
+GAME( 1976, bowarrow, 0, by17, by17, driver_device, 0, ROT0, "Bally", "Bow & Arrow (Prototype)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1977, freedom, 0, by17, by17, driver_device, 0, ROT0, "Bally", "Freedom", MACHINE_MECHANICAL)
+GAME( 1977, nightrdr, 0, by17, by17, driver_device, 0, ROT0, "Bally", "Night Rider (rev. 21)", MACHINE_MECHANICAL)
+GAME( 1977, nightr20, nightrdr, by17, by17, driver_device, 0, ROT0, "Bally", "Night Rider (rev. 20)", MACHINE_MECHANICAL)
+GAME( 1978, blackjck, 0, by17, by17, driver_device, 0, ROT0, "Bally", "Black Jack (Pinball)", MACHINE_MECHANICAL)
+GAME( 1977, evelknie, 0, by17, by17, driver_device, 0, ROT0, "Bally", "Evel Knievel", MACHINE_MECHANICAL)
+GAME( 1978, matahari, 0, by17, by17, driver_device, 0, ROT0, "Bally", "Mata Hari", MACHINE_MECHANICAL)
+GAME( 1977, eightbll, 0, by17, by17, driver_device, 0, ROT0, "Bally", "Eight Ball", MACHINE_MECHANICAL)
+GAME( 1978, pwerplay, 0, by17, by17, driver_device, 0, ROT0, "Bally", "Power Play (Pinball)", MACHINE_MECHANICAL)
+GAME( 1978, stk_sprs, 0, by17, by17, driver_device, 0, ROT0, "Bally", "Strikes and Spares", MACHINE_MECHANICAL)
diff --git a/src/mame/drivers/by35.c b/src/mame/drivers/by35.c
index 4a8b18a67c6..5d46049225b 100644
--- a/src/mame/drivers/by35.c
+++ b/src/mame/drivers/by35.c
@@ -1845,82 +1845,82 @@ ROM_START(suprbowl)
ROM_END
// AS-2888 sound
-GAME( 1979, sst, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Supersonic", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1978, playboy, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Playboy", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1978, lostwrlp, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Lost World", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1978, smman, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Six Million Dollar Man", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1978, voltan, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Voltan Escapes Cosmic Doom", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1979, startrep, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Star Trek (Pinball)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1979, kiss, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Kiss", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1979, hglbtrtr, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Harlem Globetrotters On Tour", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1979, dollyptn, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Dolly Parton", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1979, paragon, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Paragon", GAME_IS_SKELETON_MECHANICAL)
+GAME( 1979, sst, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Supersonic", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1978, playboy, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Playboy", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1978, lostwrlp, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Lost World", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1978, smman, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Six Million Dollar Man", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1978, voltan, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Voltan Escapes Cosmic Doom", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1979, startrep, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Star Trek (Pinball)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1979, kiss, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Kiss", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1979, hglbtrtr, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Harlem Globetrotters On Tour", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1979, dollyptn, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Dolly Parton", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1979, paragon, 0, by35, 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", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1980, slbmania, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Silverball Mania", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1979, futurspa, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Future Spa", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1980, spaceinv, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Space Invaders", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1980, rollston, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Rolling Stones", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1980, mystic, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Mystic", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1980, xenon, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Xenon", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1980, xenonf, xenon, by35, by35, by35_state, by35_6, ROT0, "Bally", "Xenon (French)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1980, viking, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Viking", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1980, hotdoggn, 0, by35, by35, by35_state, by35_6, ROT0, "Bally", "Hotdoggin'", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1980, skatebll, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Skateball", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1980, frontier, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Frontier", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1982, speakesy, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Speakeasy", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1982, speakesy4p, speakesy, by35, by35, by35_state, by35_7, ROT0, "Bally", "Speakeasy 4 Player", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1983, bmx, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "BMX", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1983, granslam, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Grand Slam", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1983, granslam4, granslam, by35, by35, by35_state, by35_7, ROT0, "Bally", "Grand Slam (4 Players)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1983, goldball, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Gold Ball (set 1)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1983, goldballn, goldball, by35, by35, by35_state, by35_7, ROT0, "Bally / Oliver", "Gold Ball (set 2)", GAME_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 / Oliver", "Gold Ball (set 2)", MACHINE_IS_SKELETON_MECHANICAL)
// Squawk & Talk sound
-GAME( 1981, flashgdn, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Flash Gordon", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1981, flashgdnf, flashgdn, by35, by35, by35_state, by35_7, ROT0, "Bally", "Flash Gordon (French)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1981, flashgdnv, flashgdn, by35, by35, by35_state, by35_7, ROT0, "Bally", "Flash Gordon (Vocalizer sound)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1981, fball_ii, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Fireball II", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1981, eballdlx, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Eight Ball Deluxe (rev. 15)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1981, eballd14, eballdlx, by35, by35, by35_state, by35_7, ROT0, "Bally", "Eight Ball Deluxe (rev. 14)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1981, embryon, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Embryon", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1981, fathom, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Fathom", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1981, centaur, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Centaur", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1981, medusa, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Medusa", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1982, vector, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Vector", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1981, elektra, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Elektra", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1982, spectrm, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Spectrum", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1982, spectrm4, spectrm, by35, by35, by35_state, by35_7, ROT0, "Bally", "Spectrum (ver 4)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1982, rapidfip, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Rapid Fire", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1982, m_mpac, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Mr. and Mrs. PacMan", GAME_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)
// Cheap Squeak sound
-GAME( 1984, kosteel, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Kings of Steel", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1983, xsandos, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "X's & O's", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1984, spyhuntr, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Spy Hunter (Pinball)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1984, fbclass, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Fireball Classic", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1984, blakpyra, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Black Pyramid", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1985, cybrnaut, 0, by35, by35, by35_state, by35_7, ROT0, "Bally", "Cybernaut", GAME_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)
// Other manufacturers
-GAME( 1984, suprbowl, xsandos, by35, by35, by35_state, by35_7, ROT0, "Bell Games", "Super Bowl", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1984, tigerrag, kosteel, by35, by35, by35_state, by35_7, ROT0, "Bell Games", "Tiger Rag", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1985, cosflash, flashgdn, by35, by35, by35_state, by35_7, ROT0, "Bell Games", "Cosmic Flash", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1985, newwave, blakpyra, by35, by35, by35_state, by35_7, ROT0, "Bell Games", "New Wave", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1985, saturn2, spyhuntr, by35, by35, by35_state, by35_7, ROT0, "Bell Games", "Saturn 2", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1985, worlddef, 0, by35, by35, by35_state, by35_7, ROT0, "Bell Games", "World Defender", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1986, spacehaw, cybrnaut, by35, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "Space Hawks", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1986, darkshad, 0, by35, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "Dark Shadow", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1986, skflight, 0, by35, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "Skill Flight", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1987, cobrap, 0, by35, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "Cobra", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1987, futrquen, 0, by35, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "Future Queen", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1987, f1gpp, 0, by35, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "F1 Grand Prix", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1988, toppin, 0, by35, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "Top Pin", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1988, uboat65, 0, by35, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "U-boat 65", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1986, bullseye, 0, by35, by35, by35_state, by35_7, ROT0, "Grand Products", "301/Bullseye", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1988, bbbowlin, 0, by35, by35, by35_state, by35_7, ROT0, "United", "Big Ball Bowling (Bowler)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1988, monrobwl, 0, by35, by35, by35_state, by35_7, ROT0, "Monroe Bowling Co.", "Stars & Strikes (Bowler)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1984, mdntmrdr, 0, by35, by35, by35_state, by35_6, ROT0, "Bally Midway", "Midnight Marauders (Gun game)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1988, blbeauty, 0, by35, by35, by35_state, by35_7, ROT0, "Stern", "Black Beauty (Shuffle)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1984, myststar, 0, by35, by35, by35_state, by35_6, ROT0, "Zaccaria", "Mystic Star", GAME_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, by35, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "Dark Shadow", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1986, skflight, 0, by35, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "Skill Flight", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1987, cobrap, 0, by35, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "Cobra", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1987, futrquen, 0, by35, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "Future Queen", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1987, f1gpp, 0, by35, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "F1 Grand Prix", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1988, toppin, 0, by35, by35, by35_state, by35_7, ROT0, "Nuova Bell Games", "Top Pin", MACHINE_IS_SKELETON_MECHANICAL)
+GAME( 1988, uboat65, 0, by35, 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, 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.c b/src/mame/drivers/by6803.c
index 64e0f68ec1b..d4f470373a2 100644
--- a/src/mame/drivers/by6803.c
+++ b/src/mame/drivers/by6803.c
@@ -705,26 +705,26 @@ ROM_START(trucksp2)
ROM_END
-GAME( 1985, eballchp, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Eight Ball Champ", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1985, beatclck, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Beat the Clock", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1986, motrdome, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally","MotorDome", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1986, ladyluck, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Lady Luck", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1986, strngsci, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Strange Science", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1986, strngscg, strngsci, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Strange Science (German)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1986, specforc, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Special Force", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1986, blackblt, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Black Belt", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1986, blackblt2, blackblt, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Black Belt (Squawk and Talk)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1987, cityslck, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally","City Slicker", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1987, hardbody, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Hardbody", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1987, hardbodyg, hardbody, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Hardbody (German)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1987, prtyanim, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Party Animal", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1987, prtyanimg, prtyanim, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Party Animal (German)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1987, hvymetap, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Heavy Metal Meltdown", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1987, esclwrld, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Escape from the Lost World", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1987, esclwrldg, esclwrld, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Escape from the Lost World (German)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1987, dungdrag, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Dungeons & Dragons", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1988, black100, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Blackwater 100", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1988, black100s, black100, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Blackwater 100 (Single Ball Play)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1988, trucksp3, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Truck Stop (P-3)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1988, trucksp2, trucksp3, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Truck Stop (P-2)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1989, atlantip, 0, by6803, by6803, by6803_state, by6803, ROT0, "Bally","Atlantis", GAME_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, 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.c b/src/mame/drivers/by68701.c
index e85fe86a0e0..8cba96ec7bb 100644
--- a/src/mame/drivers/by68701.c
+++ b/src/mame/drivers/by68701.c
@@ -130,9 +130,9 @@ ROM_START(eballdlxp4)
ROM_END
-GAME(1981, flashgdnp1, flashgdn, by68701, by68701, by68701_state, by68701, ROT0, "Bally", "Flash Gordon (prototype rev. 1)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1981, flashgdnp2, flashgdn, by68701, by68701, by68701_state, by68701, ROT0, "Bally", "Flash Gordon (prototype rev. 2)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1981, eballdlxp1, eballdlx, by68701, by68701, by68701_state, by68701, ROT0, "Bally", "Eight Ball Deluxe (prototype rev. 1)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1981, eballdlxp2, eballdlx, by68701, by68701, by68701_state, by68701, ROT0, "Bally", "Eight Ball Deluxe (prototype rev. 2)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1981, eballdlxp3, eballdlx, by68701, by68701, by68701_state, by68701, ROT0, "Bally", "Eight Ball Deluxe (prototype rev. 3)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1981, eballdlxp4, eballdlx, by68701, by68701, by68701_state, by68701, ROT0, "Bally", "Eight Ball Deluxe (prototype rev. 4)", GAME_IS_SKELETON_MECHANICAL)
+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)
diff --git a/src/mame/drivers/byvid.c b/src/mame/drivers/byvid.c
index a90ab3ceea4..966a7dad1ed 100644
--- a/src/mame/drivers/byvid.c
+++ b/src/mame/drivers/byvid.c
@@ -873,6 +873,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)", GAME_MECHANICAL | GAME_NO_SOUND )
-GAME( 1982, babypac2, babypac, babypac, babypac, driver_device, 0, ROT90, "Dave Nutting Associates / Bally", "Baby Pac-Man (set 2)", GAME_MECHANICAL | GAME_NO_SOUND )
-GAME( 1984, granny, 0, granny, granny, driver_device, 0, ROT0, "Bally", "Granny and the Gators", GAME_MECHANICAL | GAME_NO_SOUND )
+GAME( 1982, babypac, 0, babypac, babypac, driver_device, 0, ROT90, "Dave Nutting Associates / Bally", "Baby Pac-Man (set 1)", MACHINE_MECHANICAL | 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_NO_SOUND )
+GAME( 1984, granny, 0, granny, granny, driver_device, 0, ROT0, "Bally", "Granny and the Gators", MACHINE_MECHANICAL | MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/bzone.c b/src/mame/drivers/bzone.c
index c9a09506ef4..03601f5cb6e 100644
--- a/src/mame/drivers/bzone.c
+++ b/src/mame/drivers/bzone.c
@@ -875,9 +875,9 @@ DRIVER_INIT_MEMBER(bzone_state,bradley)
*
*************************************/
-GAMEL(1980, bzone, 0, bzone, bzone, driver_device, 0, ROT0, "Atari", "Battle Zone (rev 2)", GAME_SUPPORTS_SAVE, layout_bzone )
-GAMEL(1980, bzonea, bzone, bzone, bzone, driver_device, 0, ROT0, "Atari", "Battle Zone (rev 1)", GAME_SUPPORTS_SAVE, layout_bzone )
-GAMEL(1980, bzonec, bzone, bzone, bzone, driver_device, 0, ROT0, "Atari", "Battle Zone (cocktail)", GAME_SUPPORTS_SAVE|GAME_NO_COCKTAIL, layout_bzone )
-GAME( 1980, bradley, 0, bzone, bradley, bzone_state, bradley, ROT0, "Atari", "Bradley Trainer", GAME_SUPPORTS_SAVE )
-GAMEL(1980, redbaron, 0, redbaron, redbaron, driver_device, 0, ROT0, "Atari", "Red Baron (Revised Hardware)", GAME_SUPPORTS_SAVE, layout_redbaron )
-GAMEL(1980, redbarona, redbaron, redbaron, redbaron, driver_device, 0, ROT0, "Atari", "Red Baron", GAME_SUPPORTS_SAVE, layout_redbaron )
+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 )
diff --git a/src/mess/drivers/c10.c b/src/mame/drivers/c10.c
index fcb6cc1b58d..e1b0bc221a4 100644
--- a/src/mess/drivers/c10.c
+++ b/src/mame/drivers/c10.c
@@ -188,4 +188,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1982, c10, 0, 0, c10, c10, c10_state, c10, "Cromemco", "C-10", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/c128.c b/src/mame/drivers/c128.c
index 11430a2b1cb..abe3f7bde8b 100644
--- a/src/mess/drivers/c128.c
+++ b/src/mame/drivers/c128.c
@@ -963,11 +963,11 @@ READ8_MEMBER( c128_state::cia1_pa_r )
bit description
- PA0 COL0, JOY B0
- PA1 COL1, JOY B1
- PA2 COL2, JOY B2
- PA3 COL3, JOY B3
- PA4 COL4, BTNB
+ PA0 COL0, JOYB0
+ PA1 COL1, JOYB1
+ PA2 COL2, JOYB2
+ PA3 COL3, JOYB3
+ PA4 COL4, FBTNB
PA5 COL5
PA6 COL6
PA7 COL7
@@ -1005,20 +1005,40 @@ READ8_MEMBER( c128_state::cia1_pa_r )
return data;
}
+WRITE8_MEMBER( c128_state::cia1_pa_w )
+{
+ /*
+
+ bit description
+
+ PA0 COL0, JOYB0
+ PA1 COL1, JOYB1
+ PA2 COL2, JOYB2
+ PA3 COL3, JOYB3
+ PA4 COL4, FBTNB
+ PA5 COL5
+ PA6 COL6
+ PA7 COL7
+
+ */
+
+ m_joy2->joy_w(data & 0x1f);
+}
+
READ8_MEMBER( c128_state::cia1_pb_r )
{
/*
bit description
- PB0 JOY A0
- PB1 JOY A1
- PB2 JOY A2
- PB3 JOY A3
- PB4 BTNA/_LP
- PB5
- PB6
- PB7
+ PB0 ROW0, JOYA0
+ PB1 ROW1, JOYA1
+ PB2 ROW2, JOYA2
+ PB3 ROW3, JOYA3
+ PB4 ROW4, FBTNA, _LP
+ PB5 ROW5
+ PB6 ROW6
+ PB7 ROW7
*/
@@ -1055,17 +1075,19 @@ WRITE8_MEMBER( c128_state::cia1_pb_w )
bit description
- PB0 ROW0
- PB1 ROW1
- PB2 ROW2
- PB3 ROW3
- PB4 ROW4
+ PB0 ROW0, JOYA0
+ PB1 ROW1, JOYA1
+ PB2 ROW2, JOYA2
+ PB3 ROW3, JOYA3
+ PB4 ROW4, FBTNA, _LP
PB5 ROW5
PB6 ROW6
PB7 ROW7
*/
+ m_joy1->joy_w(data & 0x1f);
+
m_vic->lp_w(BIT(data, 4));
}
@@ -1487,6 +1509,7 @@ static MACHINE_CONFIG_START( ntsc, c128_state )
MCFG_MOS6526_CNT_CALLBACK(WRITELINE(c128_state, cia1_cnt_w))
MCFG_MOS6526_SP_CALLBACK(WRITELINE(c128_state, cia1_sp_w))
MCFG_MOS6526_PA_INPUT_CALLBACK(READ8(c128_state, cia1_pa_r))
+ MCFG_MOS6526_PA_OUTPUT_CALLBACK(WRITE8(c128_state, cia1_pa_w))
MCFG_MOS6526_PB_INPUT_CALLBACK(READ8(c128_state, cia1_pb_r))
MCFG_MOS6526_PB_OUTPUT_CALLBACK(WRITE8(c128_state, cia1_pb_w))
MCFG_DEVICE_ADD(MOS6526_2_TAG, MOS6526, XTAL_14_31818MHz*2/3.5/8)
@@ -1659,6 +1682,7 @@ static MACHINE_CONFIG_START( pal, c128_state )
MCFG_MOS6526_CNT_CALLBACK(WRITELINE(c128_state, cia1_cnt_w))
MCFG_MOS6526_SP_CALLBACK(WRITELINE(c128_state, cia1_sp_w))
MCFG_MOS6526_PA_INPUT_CALLBACK(READ8(c128_state, cia1_pa_r))
+ MCFG_MOS6526_PA_OUTPUT_CALLBACK(WRITE8(c128_state, cia1_pa_w))
MCFG_MOS6526_PB_INPUT_CALLBACK(READ8(c128_state, cia1_pb_r))
MCFG_MOS6526_PB_OUTPUT_CALLBACK(WRITE8(c128_state, cia1_pb_w))
MCFG_DEVICE_ADD(MOS6526_2_TAG, MOS6526, XTAL_17_734472MHz*2/4.5/8)
@@ -1933,21 +1957,21 @@ ROM_END
//**************************************************************************
// 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)", GAME_SUPPORTS_SAVE )
-COMP( 1985, c128p, 0, 0, c128pal, c128, driver_device, 0, "Commodore Business Machines", "Commodore 128 (PAL)", GAME_SUPPORTS_SAVE )
-COMP( 1985, c128_de, c128, 0, c128pal, c128_de, driver_device, 0, "Commodore Business Machines", "Commodore 128 (Germany)", GAME_SUPPORTS_SAVE )
-//COMP( 1985, c128_fr, c128, 0, c128pal, c128_fr, driver_device, 0, "Commodore Business Machines", "Commodore 128 (France)", GAME_SUPPORTS_SAVE )
-//COMP( 1985, c128_no, c128, 0, c128pal, c128_it, driver_device, 0, "Commodore Business Machines", "Commodore 128 (Norway)", GAME_SUPPORTS_SAVE )
-COMP( 1985, c128_se, c128, 0, c128pal, c128_se, driver_device, 0, "Commodore Business Machines", "Commodore 128 (Sweden/Finland)", GAME_SUPPORTS_SAVE )
-COMP( 1986, c128d, c128, 0, c128, c128, driver_device, 0, "Commodore Business Machines", "Commodore 128D (NTSC, prototype)", GAME_SUPPORTS_SAVE )
-COMP( 1986, c128dp, c128, 0, c128pal, c128, driver_device, 0, "Commodore Business Machines", "Commodore 128D (PAL)", GAME_SUPPORTS_SAVE )
-
-COMP( 1986, c128cr, c128, 0, c128, c128, driver_device, 0, "Commodore Business Machines", "Commodore 128CR (NTSC, prototype)", GAME_SUPPORTS_SAVE )
-
-COMP( 1987, c128dcr, c128, 0, c128dcr, c128, driver_device, 0, "Commodore Business Machines", "Commodore 128DCR (NTSC)", GAME_SUPPORTS_SAVE )
-COMP( 1987, c128dcrp, c128, 0, c128dcrp, c128, driver_device, 0, "Commodore Business Machines", "Commodore 128DCR (PAL)", GAME_SUPPORTS_SAVE )
-COMP( 1987, c128dcr_de, c128, 0, c128dcrp, c128_de, driver_device, 0, "Commodore Business Machines", "Commodore 128DCR (Germany)", GAME_SUPPORTS_SAVE )
-//COMP( 1986, c128dcr_it, c128, 0, c128dcrp, c128_it, driver_device, 0,"Commodore Business Machines", "Commodore 128DCR (Italy)", GAME_SUPPORTS_SAVE )
-COMP( 1987, c128dcr_se, c128, 0, c128dcrp, c128_se, driver_device, 0, "Commodore Business Machines", "Commodore 128DCR (Sweden/Finland)", GAME_SUPPORTS_SAVE )
-
-COMP( 1986, c128d81, c128, 0, c128d81, c128, driver_device, 0, "Commodore Business Machines", "Commodore 128D/81 (NTSC, prototype)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/c64.c b/src/mame/drivers/c64.c
index ba92d4805fd..56aaf5966da 100644
--- a/src/mess/drivers/c64.c
+++ b/src/mame/drivers/c64.c
@@ -625,20 +625,40 @@ READ8_MEMBER( c64_state::cia1_pa_r )
return data;
}
+WRITE8_MEMBER( c64_state::cia1_pa_w )
+{
+ /*
+
+ bit description
+
+ PA0 COL0, JOY B0
+ PA1 COL1, JOY B1
+ PA2 COL2, JOY B2
+ PA3 COL3, JOY B3
+ PA4 COL4, BTNB
+ PA5 COL5
+ PA6 COL6
+ PA7 COL7
+
+ */
+
+ m_joy2->joy_w(data & 0x1f);
+}
+
READ8_MEMBER( c64_state::cia1_pb_r )
{
/*
bit description
- PB0 JOY A0
- PB1 JOY A1
- PB2 JOY A2
- PB3 JOY A3
- PB4 BTNA/_LP
- PB5
- PB6
- PB7
+ PB0 ROW0, JOY A0
+ PB1 ROW1, JOY A1
+ PB2 ROW2, JOY A2
+ PB3 ROW3, JOY A3
+ PB4 ROW4, BTNA, _LP
+ PB5 ROW5
+ PB6 ROW6
+ PB7 ROW7
*/
@@ -671,17 +691,19 @@ WRITE8_MEMBER( c64_state::cia1_pb_w )
bit description
- PB0 ROW0
- PB1 ROW1
- PB2 ROW2
- PB3 ROW3
- PB4 ROW4
+ PB0 ROW0, JOY A0
+ PB1 ROW1, JOY A1
+ PB2 ROW2, JOY A2
+ PB3 ROW3, JOY A3
+ PB4 ROW4, BTNA, _LP
PB5 ROW5
PB6 ROW6
PB7 ROW7
*/
+ m_joy1->joy_w(data & 0x1f);
+
m_vic->lp_w(BIT(data, 4));
}
@@ -1289,6 +1311,7 @@ static MACHINE_CONFIG_START( pal, c64_state )
MCFG_MOS6526_CNT_CALLBACK(DEVWRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_4))
MCFG_MOS6526_SP_CALLBACK(DEVWRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_5))
MCFG_MOS6526_PA_INPUT_CALLBACK(READ8(c64_state, cia1_pa_r))
+ MCFG_MOS6526_PA_OUTPUT_CALLBACK(WRITE8(c64_state, cia1_pa_w))
MCFG_MOS6526_PB_INPUT_CALLBACK(READ8(c64_state, cia1_pb_r))
MCFG_MOS6526_PB_OUTPUT_CALLBACK(WRITE8(c64_state, cia1_pb_w))
MCFG_DEVICE_ADD(MOS6526_2_TAG, MOS6526, XTAL_17_734472MHz/18)
@@ -1423,6 +1446,7 @@ static MACHINE_CONFIG_START( pal_gs, c64gs_state )
MCFG_MOS6526_CNT_CALLBACK(DEVWRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_4))
MCFG_MOS6526_SP_CALLBACK(DEVWRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_5))
MCFG_MOS6526_PA_INPUT_CALLBACK(READ8(c64gs_state, cia1_pa_r))
+ MCFG_MOS6526_PA_OUTPUT_CALLBACK(WRITE8(c64_state, cia1_pa_w))
MCFG_MOS6526_PB_INPUT_CALLBACK(READ8(c64gs_state, cia1_pb_r))
MCFG_MOS6526_PB_OUTPUT_CALLBACK(WRITE8(c64_state, cia1_pb_w))
MCFG_DEVICE_ADD(MOS6526_2_TAG, MOS6526, XTAL_17_734472MHz/18)
@@ -1804,20 +1828,20 @@ ROM_END
//**************************************************************************
// 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)", GAME_SUPPORTS_SAVE )
-COMP( 1982, c64_jp, c64, 0, ntsc, c64, driver_device, 0, "Commodore Business Machines", "Commodore 64 (Japan)", GAME_SUPPORTS_SAVE )
-COMP( 1982, c64p, c64, 0, pal, c64, driver_device, 0, "Commodore Business Machines", "Commodore 64 (PAL)", GAME_SUPPORTS_SAVE )
-COMP( 1982, c64_se, c64, 0, pal, c64sw, driver_device, 0, "Commodore Business Machines", "Commodore 64 / VIC-64S (Sweden/Finland)", GAME_SUPPORTS_SAVE )
-COMP( 1983, pet64, c64, 0, pet64, c64, driver_device, 0, "Commodore Business Machines", "PET 64 / CBM 4064 (NTSC)", GAME_SUPPORTS_SAVE | GAME_WRONG_COLORS )
-COMP( 1983, edu64, c64, 0, pet64, c64, driver_device, 0, "Commodore Business Machines", "Educator 64 (NTSC)", GAME_SUPPORTS_SAVE | GAME_WRONG_COLORS )
-COMP( 1984, sx64, c64, 0, ntsc_sx, c64, driver_device, 0, "Commodore Business Machines", "SX-64 / Executive 64 (NTSC)", GAME_SUPPORTS_SAVE )
-COMP( 1984, sx64p, c64, 0, pal_sx, c64, driver_device, 0, "Commodore Business Machines", "SX-64 / Executive 64 (PAL)", GAME_SUPPORTS_SAVE )
-COMP( 1984, vip64, c64, 0, pal_sx, c64sw, driver_device, 0, "Commodore Business Machines", "VIP-64 (Sweden/Finland)", GAME_SUPPORTS_SAVE )
-COMP( 1984, dx64, c64, 0, ntsc_dx, c64, driver_device, 0, "Commodore Business Machines", "DX-64 (NTSC)", GAME_SUPPORTS_SAVE )
-COMP( 1984, tesa6240,c64, 0, pal_sx, c64, driver_device, 0, "Tesa Etikett", "Etikettendrucker 6240", GAME_SUPPORTS_SAVE )
-COMP( 1986, c64c, c64, 0, ntsc_c, c64, driver_device, 0, "Commodore Business Machines", "Commodore 64C (NTSC)", GAME_SUPPORTS_SAVE )
-COMP( 1986, c64cp, c64, 0, pal_c, c64, driver_device, 0, "Commodore Business Machines", "Commodore 64C (PAL)", GAME_SUPPORTS_SAVE )
-COMP( 1988, c64c_es, c64, 0, pal_c, c64sw, driver_device, 0, "Commodore Business Machines", "Commodore 64C (Spain)", GAME_SUPPORTS_SAVE )
-COMP( 1986, c64c_se, c64, 0, pal_c, c64sw, driver_device, 0, "Commodore Business Machines", "Commodore 64C (Sweden/Finland)", GAME_SUPPORTS_SAVE )
-COMP( 1986, c64g, c64, 0, pal_c, c64, driver_device, 0, "Commodore Business Machines", "Commodore 64G (PAL)", GAME_SUPPORTS_SAVE )
-CONS( 1990, c64gs, c64, 0, pal_gs, c64gs, driver_device, 0, "Commodore Business Machines", "Commodore 64 Games System (PAL)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/c64dtv.c b/src/mame/drivers/c64dtv.c
index af886122d8f..4b707dfa585 100644
--- a/src/mess/drivers/c64dtv.c
+++ b/src/mame/drivers/c64dtv.c
@@ -65,4 +65,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)", GAME_NOT_WORKING | GAME_NO_SOUND )
+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 )
diff --git a/src/mess/drivers/c65.c b/src/mame/drivers/c65.c
index 1774311a3b7..f2160b9e2cd 100644
--- a/src/mess/drivers/c65.c
+++ b/src/mame/drivers/c65.c
@@ -665,5 +665,5 @@ DRIVER_INIT_MEMBER(c65_state,c65pal)
// m_pal = 1;
}
-COMP( 1991, c65, 0, 0, c65, c65, c65_state, c65, "Commodore Business Machines", "Commodore 65 Development System (Prototype, NTSC)", GAME_NOT_WORKING )
-COMP( 1991, c64dx, c65, 0, c65, c65, c65_state, c65pal, "Commodore Business Machines", "Commodore 64DX Development System (Prototype, PAL, German)", GAME_NOT_WORKING )
+COMP( 1991, c65, 0, 0, c65, c65, c65_state, c65, "Commodore Business Machines", "Commodore 65 Development System (Prototype, NTSC)", MACHINE_NOT_WORKING )
+COMP( 1991, c64dx, c65, 0, c65, c65, c65_state, c65pal, "Commodore Business Machines", "Commodore 64DX Development System (Prototype, PAL, German)", MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/c65_old.c b/src/mame/drivers/c65_old.c
index f2cba2012d0..97d934ff1db 100644
--- a/src/mess/drivers/c65_old.c
+++ b/src/mame/drivers/c65_old.c
@@ -644,5 +644,5 @@ ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 1991, c65, 0, 0, c65, c65, c65_state, c65, "Commodore Business Machines", "Commodore 65 Development System (Prototype, NTSC)", GAME_NOT_WORKING )
-COMP( 1991, c64dx, c65, 0, c65pal, c65ger, c65_state, c65pal, "Commodore Business Machines", "Commodore 64DX Development System (Prototype, PAL, German)", GAME_NOT_WORKING )
+COMP( 1991, c65, 0, 0, c65, c65, c65_state, c65, "Commodore Business Machines", "Commodore 65 Development System (Prototype, NTSC)", MACHINE_NOT_WORKING )
+COMP( 1991, c64dx, c65, 0, c65pal, c65ger, c65_state, c65pal, "Commodore Business Machines", "Commodore 64DX Development System (Prototype, PAL, German)", MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/c80.c b/src/mame/drivers/c80.c
index c6c0722611c..4af7ab0c6db 100644
--- a/src/mess/drivers/c80.c
+++ b/src/mame/drivers/c80.c
@@ -290,4 +290,4 @@ 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", GAME_SUPPORTS_SAVE )
+COMP( 1986, c80, 0, 0, c80, c80, driver_device, 0, "Joachim Czepa", "C-80", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/c900.c b/src/mame/drivers/c900.c
index 355e0642e67..18e5238c3eb 100644
--- a/src/mess/drivers/c900.c
+++ b/src/mame/drivers/c900.c
@@ -132,4 +132,4 @@ ROM_START( c900 )
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", GAME_IS_SKELETON )
+COMP( 1985, c900, 0, 0, c900, c900, driver_device, 0, "Commodore", "Commodore 900", MACHINE_IS_SKELETON )
diff --git a/src/mame/drivers/cabal.c b/src/mame/drivers/cabal.c
index 026b621144b..304d42390db 100644
--- a/src/mame/drivers/cabal.c
+++ b/src/mame/drivers/cabal.c
@@ -855,10 +855,10 @@ DRIVER_INIT_MEMBER(cabal_state,cabalbl2)
}
-GAME( 1988, cabal, 0, cabal, cabalj, cabal_state, cabal, ROT0, "TAD Corporation", "Cabal (World, Joystick version)", GAME_SUPPORTS_SAVE )
-GAME( 1989, cabala, cabal, cabal, cabalj, cabal_state, cabal, ROT0, "TAD Corporation (Alpha Trading license)", "Cabal (Alpha Trading)", GAME_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)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1988, cabalbl2,cabal, cabalbl2,cabalj, cabal_state, cabalbl2,ROT0, "bootleg", "Cabal (bootleg of Joystick version, set 2)", GAME_SUPPORTS_SAVE )
+GAME( 1988, cabal, 0, cabal, cabalj, cabal_state, cabal, ROT0, "TAD Corporation", "Cabal (World, Joystick version)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, cabala, cabal, cabal, cabalj, cabal_state, cabal, ROT0, "TAD Corporation (Alpha Trading license)", "Cabal (Alpha Trading)", 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, cabalbl2,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 version)", GAME_SUPPORTS_SAVE )
-GAME( 1988, cabalus2,cabal, cabal, cabalt, cabal_state, cabal, ROT0, "TAD Corporation (Fabtek license)", "Cabal (US set 2, Trackball version)", GAME_SUPPORTS_SAVE )
+GAME( 1988, cabalus, cabal, cabal, cabalt, cabal_state, cabal, ROT0, "TAD Corporation (Fabtek license)", "Cabal (US set 1, Trackball version)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, cabalus2,cabal, cabal, cabalt, cabal_state, cabal, ROT0, "TAD Corporation (Fabtek license)", "Cabal (US set 2, Trackball version)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/cabaret.c b/src/mame/drivers/cabaret.c
index 8c7d776fcf6..a3508d447d2 100644
--- a/src/mame/drivers/cabaret.c
+++ b/src/mame/drivers/cabaret.c
@@ -408,4 +408,4 @@ ROM_START( cabaret )
ROM_LOAD( "cg-7.u98", 0x0000, 0x8000, CRC(b93ae6f8) SHA1(accb87045c278d5d79fff65bb763aa6e8025a945) ) /* background maps, read by the CPU */
ROM_END
-GAME( 1992, cabaret, 0, cabaret, cabaret, cabaret_state, cabaret, ROT0, "AMT Co. Ltd.", "Cabaret", GAME_NOT_WORKING )
+GAME( 1992, cabaret, 0, cabaret, cabaret, cabaret_state, cabaret, ROT0, "AMT Co. Ltd.", "Cabaret", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/calchase.c b/src/mame/drivers/calchase.c
index 0f4a3887c9c..f7ac71d950c 100644
--- a/src/mame/drivers/calchase.c
+++ b/src/mame/drivers/calchase.c
@@ -784,6 +784,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", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1999, calchase, 0, calchase, calchase, calchase_state, calchase, ROT0, "The Game Room", "California Chase", GAME_NOT_WORKING|GAME_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.c b/src/mame/drivers/calomega.c
index e08257f7456..553d8b0d2e6 100644
--- a/src/mame/drivers/calomega.c
+++ b/src/mame/drivers/calomega.c
@@ -3682,50 +3682,50 @@ DRIVER_INIT_MEMBER(calomega_state,comg080)
*************************************************/
/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS */
-GAME( 1981, comg074, 0, sys903, comg074, calomega_state, sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 7.4 (Gaming Poker, W.Export)", GAME_SUPPORTS_SAVE )
-GAME( 1981, comg076, 0, sys903, comg076, calomega_state, sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 7.6 (Arcade Poker)", GAME_SUPPORTS_SAVE )
-GAME( 1981, comg079, 0, sys903, comg076, calomega_state, sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 7.9 (Arcade Poker)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) /* bad dump */
-GAME( 1981, comg080, 0, sys903, arcadebj, calomega_state, comg080, ROT0, "Cal Omega Inc.", "Cal Omega - Game 8.0 (Arcade Black Jack)", GAME_SUPPORTS_SAVE ) /* bad dump */
-GAME( 1981, comg094, 0, sys903, stand903, calomega_state, sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 9.4 (Keno)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1982, comg107, 0, sys903, stand903, calomega_state, sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 10.7c (Big Game)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1982, comg123, 0, sys903, stand903, calomega_state, sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 12.3 (Ticket Poker)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) /* bad dump */
-GAME( 1982, comg125, 0, sys903, stand903, calomega_state, sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 12.5 (Bingo)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1982, comg127, 0, sys903, stand903, calomega_state, sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 12.7 (Keno)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1982, comg128, 0, sys903, comg128, calomega_state, sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 12.8 (Arcade Game)", GAME_SUPPORTS_SAVE )
-GAME( 1982, comg134, 0, sys903, stand903, calomega_state, sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 13.4 (Nudge Bingo)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1982, comg145, 0, sys903, stand903, calomega_state, sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 14.5 (Pixels)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1983, comg157, 0, sys903, stand903, calomega_state, sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 15.7 (Double-Draw Poker)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1983, comg159, 0, sys905, stand905, calomega_state, sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 15.9 (Wild Double-Up)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1983, comg164, 0, sys903, stand903, calomega_state, sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 16.4 (Keno)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) /* incomplete dump */
-GAME( 1983, comg168, 0, sys903, stand903, calomega_state, sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 16.8 (Keno)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1983, comg172, 0, sys905, stand905, calomega_state, sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 17.2 (Double Double Poker)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1984, comg175, 0, sys903, gdrwpkrd, calomega_state, sys903, ROT0, "Cal Omega / Casino Electronics Inc.", "Cal Omega - Game 17.51 (Gaming Draw Poker)", GAME_SUPPORTS_SAVE )
-GAME( 1982, comg176, 0, sys903, stand903, calomega_state, sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 17.6 (Nudge Bingo)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1982, comg181, 0, sys903, stand903, calomega_state, sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 18.1 (Nudge Bingo)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1983, comg183, 0, sys905, stand905, calomega_state, sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 18.3 (Pixels)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1983, comg185, 0, sys905, stand905, calomega_state, sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 18.5 (Pixels)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1983, comg186, 0, sys905, stand905, calomega_state, sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 18.6 (Pixels)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1983, comg187, 0, sys905, stand905, calomega_state, sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 18.7 (Amusement Poker)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) /* bad dump */
-GAME( 1984, comg204, 0, sys905, stand905, calomega_state, sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 20.4 (Super Blackjack)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1984, comg208, 0, sys905, stand905, calomega_state, sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 20.8 (Winner's Choice)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1984, comg227, 0, sys905, stand905, calomega_state, sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 22.7 (Amusement Poker, d/d)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1984, comg230, 0, sys905, stand905, calomega_state, sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 23.0 (FC Bingo (4-card))", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) /* bad dump */
-GAME( 1984, comg236, 0, sys905, stand905, calomega_state, sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 23.6 (Hotline)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1985, comg239, 0, sys903, gdrwpkrd, calomega_state, sys903, ROT0, "Cal Omega / Casino Electronics Inc.", "Cal Omega - Game 23.9 (Gaming Draw Poker)", GAME_SUPPORTS_SAVE )
-GAME( 1985, comg240, 0, sys903, gdrwpkrh, calomega_state, sys903, ROT0, "Cal Omega / Casino Electronics Inc.", "Cal Omega - Game 24.0 (Gaming Draw Poker, hold)", GAME_SUPPORTS_SAVE )
-GAME( 1985, comg246, 0, sys905, stand905, calomega_state, sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 24.6 (Hotline)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1985, comg272a, 0, sys903, stand903, calomega_state, sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 27.2 (Keno, amusement)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1985, comg272b, 0, sys903, stand903, calomega_state, sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 27.2 (Keno, gaming)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 198?, comg5108, 0, sys906, stand906, driver_device, 0, ROT0, "Cal Omega / Casino Electronics Inc.", "Cal Omega - Game 51.08 (CEI Video Poker, Jacks or Better)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
+GAME( 1981, comg074, 0, sys903, comg074, calomega_state, sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 7.4 (Gaming Poker, W.Export)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, comg076, 0, sys903, comg076, calomega_state, sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 7.6 (Arcade Poker)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, comg079, 0, sys903, comg076, calomega_state, sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 7.9 (Arcade Poker)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* bad dump */
+GAME( 1981, comg080, 0, sys903, arcadebj, calomega_state, comg080, ROT0, "Cal Omega Inc.", "Cal Omega - Game 8.0 (Arcade Black Jack)", MACHINE_SUPPORTS_SAVE ) /* bad dump */
+GAME( 1981, comg094, 0, sys903, stand903, calomega_state, sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 9.4 (Keno)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1982, comg107, 0, sys903, stand903, calomega_state, sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 10.7c (Big Game)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1982, comg123, 0, sys903, stand903, calomega_state, sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 12.3 (Ticket Poker)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* bad dump */
+GAME( 1982, comg125, 0, sys903, stand903, calomega_state, sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 12.5 (Bingo)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1982, comg127, 0, sys903, stand903, calomega_state, sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 12.7 (Keno)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1982, comg128, 0, sys903, comg128, calomega_state, sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 12.8 (Arcade Game)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, comg134, 0, sys903, stand903, calomega_state, sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 13.4 (Nudge Bingo)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1982, comg145, 0, sys903, stand903, calomega_state, sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 14.5 (Pixels)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1983, comg157, 0, sys903, stand903, calomega_state, sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 15.7 (Double-Draw Poker)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1983, comg159, 0, sys905, stand905, calomega_state, sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 15.9 (Wild Double-Up)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1983, comg164, 0, sys903, stand903, calomega_state, sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 16.4 (Keno)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* incomplete dump */
+GAME( 1983, comg168, 0, sys903, stand903, calomega_state, sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 16.8 (Keno)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1983, comg172, 0, sys905, stand905, calomega_state, sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 17.2 (Double Double Poker)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1984, comg175, 0, sys903, gdrwpkrd, calomega_state, sys903, ROT0, "Cal Omega / Casino Electronics Inc.", "Cal Omega - Game 17.51 (Gaming Draw Poker)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, comg176, 0, sys903, stand903, calomega_state, sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 17.6 (Nudge Bingo)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1982, comg181, 0, sys903, stand903, calomega_state, sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 18.1 (Nudge Bingo)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1983, comg183, 0, sys905, stand905, calomega_state, sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 18.3 (Pixels)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1983, comg185, 0, sys905, stand905, calomega_state, sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 18.5 (Pixels)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1983, comg186, 0, sys905, stand905, calomega_state, sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 18.6 (Pixels)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1983, comg187, 0, sys905, stand905, calomega_state, sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 18.7 (Amusement Poker)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* bad dump */
+GAME( 1984, comg204, 0, sys905, stand905, calomega_state, sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 20.4 (Super Blackjack)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1984, comg208, 0, sys905, stand905, calomega_state, sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 20.8 (Winner's Choice)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1984, comg227, 0, sys905, stand905, calomega_state, sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 22.7 (Amusement Poker, d/d)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1984, comg230, 0, sys905, stand905, calomega_state, sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 23.0 (FC Bingo (4-card))", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* bad dump */
+GAME( 1984, comg236, 0, sys905, stand905, calomega_state, sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 23.6 (Hotline)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1985, comg239, 0, sys903, gdrwpkrd, calomega_state, sys903, ROT0, "Cal Omega / Casino Electronics Inc.", "Cal Omega - Game 23.9 (Gaming Draw Poker)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, comg240, 0, sys903, gdrwpkrh, calomega_state, sys903, ROT0, "Cal Omega / Casino Electronics Inc.", "Cal Omega - Game 24.0 (Gaming Draw Poker, hold)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, comg246, 0, sys905, stand905, calomega_state, sys905, ROT0, "Cal Omega Inc.", "Cal Omega - Game 24.6 (Hotline)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1985, comg272a, 0, sys903, stand903, calomega_state, sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 27.2 (Keno, amusement)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1985, comg272b, 0, sys903, stand903, calomega_state, sys903, ROT0, "Cal Omega Inc.", "Cal Omega - Game 27.2 (Keno, gaming)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 198?, comg5108, 0, sys906, stand906, driver_device, 0, ROT0, "Cal Omega / Casino Electronics Inc.", "Cal Omega - Game 51.08 (CEI Video Poker, Jacks or Better)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
/************ Diagnostic PROMs ************/
-GAME( 198?, comg903d, 0, sys903, stand903, calomega_state, sys903, ROT0, "Cal Omega Inc.", "Cal Omega - System 903 Diag.PROM", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 198?, comg905d, 0, sys905, stand905, calomega_state, sys905, ROT0, "Cal Omega Inc.", "Cal Omega - System 905 Diag.PROM", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
+GAME( 198?, comg903d, 0, sys903, stand903, calomega_state, sys903, ROT0, "Cal Omega Inc.", "Cal Omega - System 903 Diag.PROM", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 198?, comg905d, 0, sys905, stand905, calomega_state, sys905, ROT0, "Cal Omega Inc.", "Cal Omega - System 905 Diag.PROM", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
/****** Unofficial / 3rd part games *******/
-GAME( 1982, elgrande, 0, s903mod, elgrande, calomega_state, s903mod, ROT0, "Enter-Tech, Ltd. / Tuni Electro Service", "El Grande - 5 Card Draw (New)", GAME_SUPPORTS_SAVE )
-GAME( 1983, jjpoker, 0, s903mod, jjpoker, calomega_state, s903mod, ROT0, "Enter-Tech, Ltd.", "Jackpot Joker Poker (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1983, jjpokerb, jjpoker, s903mod, jjpoker, calomega_state, s903mod, ROT0, "Enter-Tech, Ltd.", "Jackpot Joker Poker (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1988, ssipkr24, 0, s903mod, ssipkr, calomega_state, s903mod, ROT0, "SSI", "SSI Poker (v2.4)", GAME_SUPPORTS_SAVE )
-GAME( 1988, ssipkr30, ssipkr24, s903mod, ssipkr, calomega_state, s903mod, ROT0, "SSI", "SSI Poker (v3.0)", GAME_SUPPORTS_SAVE )
-GAME( 1990, ssipkr40, ssipkr24, s903mod, ssipkr, calomega_state, s903mod, ROT0, "SSI", "SSI Poker (v4.0)", GAME_SUPPORTS_SAVE )
+GAME( 1982, elgrande, 0, s903mod, elgrande, calomega_state, s903mod, ROT0, "Enter-Tech, Ltd. / Tuni Electro Service", "El Grande - 5 Card Draw (New)", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, jjpoker, 0, s903mod, jjpoker, calomega_state, s903mod, ROT0, "Enter-Tech, Ltd.", "Jackpot Joker Poker (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, jjpokerb, jjpoker, s903mod, jjpoker, calomega_state, s903mod, ROT0, "Enter-Tech, Ltd.", "Jackpot Joker Poker (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, ssipkr24, 0, s903mod, ssipkr, calomega_state, s903mod, ROT0, "SSI", "SSI Poker (v2.4)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, ssipkr30, ssipkr24, s903mod, ssipkr, calomega_state, s903mod, ROT0, "SSI", "SSI Poker (v3.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, ssipkr40, ssipkr24, s903mod, ssipkr, calomega_state, s903mod, ROT0, "SSI", "SSI Poker (v4.0)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/calorie.c b/src/mame/drivers/calorie.c
index a5921c03dd8..50049962e05 100644
--- a/src/mame/drivers/calorie.c
+++ b/src/mame/drivers/calorie.c
@@ -100,7 +100,6 @@ public:
/* memory pointers */
required_shared_ptr<UINT8> m_fg_ram;
required_shared_ptr<UINT8> m_sprites;
-// UINT8 * m_paletteram; // currently this uses generic palette handling
/* video-related */
tilemap_t *m_bg_tilemap;
@@ -580,5 +579,5 @@ DRIVER_INIT_MEMBER(calorie_state,calorieb)
*************************************/
/* Note: the bootleg is identical to the original once decrypted */
-GAME( 1986, calorie, 0, calorie, calorie, calorie_state, calorie, ROT0, "Sega", "Calorie Kun vs Moguranian", GAME_SUPPORTS_SAVE )
-GAME( 1986, calorieb, calorie, calorie, calorie, calorie_state, calorieb, ROT0, "bootleg", "Calorie Kun vs Moguranian (bootleg)", GAME_SUPPORTS_SAVE )
+GAME( 1986, calorie, 0, calorie, calorie, calorie_state, calorie, 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.c b/src/mame/drivers/camplynx.c
new file mode 100644
index 00000000000..30101b2ab3c
--- /dev/null
+++ b/src/mame/drivers/camplynx.c
@@ -0,0 +1,936 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+/***************************************************************************
+
+ Camputers Lynx
+
+ 05/2009 Skeleton driver.
+
+ The Lynx was an 8-bit British home computer that was first released
+ in early 1983 as a 48 kB model.
+ The designer of the Lynx was John Shireff and several models were
+ available with 48 kB, 96 kB (from Sep 1983) or 128 kB RAM (from Dec
+ 1983). It was possible reach 192 kB with RAM expansions on-board.
+
+ The machine was based around a Z80A CPU clocked at 4 MHz, and featured
+ a Motorola 6845 as video controller. It was possible to run CP/M with
+ the optional 5.25" floppy disk-drive on the 96 kB and 128 kB models.
+ Approximately 30,000 Lynx units were sold world-wide.
+
+ Camputers ceased trading in June 1984. Anston Technology took over in
+ November the same year and a re-launch was planned but never happened.
+
+ In June 1986, Anston sold everything - hardware, design rights and
+ thousands of cassettes - to the National Lynx User Group. The group
+ planned to produce a Super-Lynx but was too busy supplying spares and
+ technical information to owners of existing models, and the project never
+ came into being.
+
+ Hardware info:
+ - CPU: Zilog Z80A 4 MHz
+ - CO-PROCESSOR: Motorola 6845 (CRT controller)
+ - RAM: 48 kb, 96 kb or 128 kb depending on models (max. 192 kb)
+ - ROM: 16 kb (48K version), 24 KB (96K and 128K versions)
+ - TEXT MODES: 40 x 24, 80 x 24
+ - GRAPHIC MODES: 256 x 248, 512 x 480
+ - SOUND: one voice beeper
+
+ Lynx 128 Memory Map
+
+ | 0000 2000 4000 6000 8000 a000 c000 e000
+ | 1fff 3fff 5fff 7fff 9fff bfff dfff ffff
+ -------------------------------------------------------------------------
+ | | | |
+ Bank 0 | BASIC ROM | Not Available | Ext | Ext
+ | | | ROM1 | ROM2
+ -------------------------------------------------------------------------
+ | |
+ Bank 1 | STORE | Workspace RAM
+ | |
+ -------------------------------------------------------------------------
+ | | | |
+ Bank 2 | RED | BLUE | GREEN | Alt
+ | | | | Green
+ -------------------------------------------------------------------------
+ |
+ Bank 3 | Available for Video Expansion
+ |
+ -------------------------------------------------------------------------
+ |
+ Bank 4 | Available for User RAM Expansion
+ |
+
+
+
+ 48k and 96k are basically the same machine. 128k is different.
+
+ This computer is weird, because it allows reads and writes from multiple banks
+ at the same time. We can write to multiple banks, but we must limit ourselves
+ to reading from the lowest bank selected.
+
+ Notes:
+ - The screen doesn't scroll. This is normal.
+ - Variable names are case-sensitive.
+ - Break key is the Escape key.
+ - Typing a line number doesn't delete the line, you are in a calculator mode
+ (for example, typing 67-5 will print 62)
+ - DEL line-number deletes the line.
+ - To edit a line, press Ctrl-E, it asks for line number, type it in,
+ then arrows to move left-right, backspace to delete, press keys to insert them
+ - If you entered a line and got a syntax error, press Ctrl-Q to edit it.
+ - Cassette tapes made on 128k are a different speed to 48k tapes. To load a 128k
+ tape on a 48k system, enter TAPE 3 before loading. (2,3,4,5 all seem to work).
+ - When loading, there's no wildcard; you must specify the name.
+ - INT should be activated by the MC6845 CURS pin (inverted), or by holding down
+ the BREAK key. However, the rom leaves interrupts disabled, so none of this works.
+
+ To Do:
+ - Need disk-based software (only ones found are LDF format)
+ - finish memory banking
+ - disk (only partially done)
+ - printer
+ - joysticks
+ - UART type COM8017
+ Bugs:
+ - YNXVADERS: Top row of invaders is missing and can't be killed, but they
+ continue to fire at you. This makes the game unwinnable.
+ Game bugs (reproducible in Jynx):
+ - 3D Monster Craze: When attacked, garbage on screen
+ - 3D Monster Craze: When you find the key, the game freezes
+ - LogiChess: unable to enter an acceptable move
+ - Power Blaster: Bad Tape
+
+****************************************************************************/
+
+#include "emu.h"
+#include "cpu/z80/z80.h"
+#include "video/mc6845.h"
+#include "sound/dac.h"
+#include "imagedev/cassette.h"
+#include "sound/wave.h"
+#include "formats/camplynx_cas.h"
+#include "machine/wd_fdc.h"
+
+class camplynx_state : public driver_device
+{
+public:
+ camplynx_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_palette(*this, "palette")
+ , m_maincpu(*this, "maincpu")
+ , m_cass(*this, "cassette")
+ //, m_printer(*this, "centronics")
+ , m_crtc(*this, "crtc")
+ , m_dac(*this, "dac")
+ , m_fdc(*this, "fdc")
+ , m_floppy0(*this, "fdc:0")
+ , m_floppy1(*this, "fdc:1")
+ { }
+
+ // 48k
+ DECLARE_WRITE8_MEMBER(bank1_w);
+ DECLARE_WRITE8_MEMBER(bank5_w);
+ DECLARE_WRITE8_MEMBER(bank6_w);
+ DECLARE_WRITE8_MEMBER(bank7_w);
+ DECLARE_WRITE8_MEMBER(bank8_w);
+ DECLARE_WRITE8_MEMBER(port58_w); // drive select etc
+ DECLARE_WRITE8_MEMBER(port7f_w); // banking 48k
+ DECLARE_READ8_MEMBER(port80_r); // cassin for 48k
+ DECLARE_WRITE8_MEMBER(port80_w); // control port 48k
+ DECLARE_READ8_MEMBER(port82_r); // cassin for 128k
+ DECLARE_WRITE8_MEMBER(port82_w); // banking 128k
+ DECLARE_WRITE8_MEMBER(port84_w); // dac port 48k
+ DECLARE_MACHINE_RESET(lynx48k);
+ DECLARE_MACHINE_RESET(lynx128k);
+ DECLARE_DRIVER_INIT(lynx48k);
+ DECLARE_DRIVER_INIT(lynx128k);
+ MC6845_UPDATE_ROW(lynx48k_update_row);
+ MC6845_UPDATE_ROW(lynx128k_update_row);
+ required_device<palette_device> m_palette;
+private:
+ UINT8 m_port58;
+ UINT8 m_port80;
+ UINT8 m_bankdata;
+ UINT8 m_wbyte;
+ UINT8 *m_p_ram;
+ bool m_is_128k;
+ required_device<z80_device> m_maincpu;
+ required_device<cassette_image_device> m_cass;
+ //required_device<> m_printer;
+ required_device<mc6845_device> m_crtc;
+ required_device<dac_device> m_dac;
+ optional_device<fd1793_t> m_fdc;
+ optional_device<floppy_connector> m_floppy0;
+ optional_device<floppy_connector> m_floppy1;
+};
+
+WRITE8_MEMBER( camplynx_state::port7f_w )
+{
+/*
+d0 = write to bank 1
+d1 = write to bank 2
+d2 = write to bank 3
+d3 = write to bank 4
+d4 = read from bank 0 - roms
+d5 = read from bank 1 - user ram
+d6 = read from banks 2 and 3 - videoram
+d7 = read from bank 4 */
+
+ m_bankdata = data;
+ data ^= 0x31; // make all lines active high
+//printf("%s:%X\n", machine().describe_context(), data);
+ // do writes
+ m_wbyte = (data & 0x0f) | ((m_port80 & 0x0c) << 3);
+ // do reads
+ UINT8 rbyte = (data & 0x70) | (m_port80 & 0x0c);
+ switch (rbyte)
+ {
+ case 0x00:
+ case 0x04:
+ case 0x08:
+ case 0x0c:
+ case 0x10:
+ case 0x14:
+ case 0x18:
+ case 0x1c:
+ membank("bankr1")->set_entry(0);
+ membank("bankr2")->set_entry(1);
+ membank("bankr3")->set_entry(2);
+ membank("bankr4")->set_entry(3);
+ membank("bankr5")->set_entry(0);
+ membank("bankr6")->set_entry(1);
+ membank("bankr7")->set_entry(2);
+ membank("bankr8")->set_entry(3);
+ break;
+ case 0x20:
+ case 0x24:
+ case 0x28:
+ case 0x2c:
+ membank("bankr1")->set_entry(8);
+ membank("bankr2")->set_entry(9);
+ membank("bankr3")->set_entry(10);
+ membank("bankr4")->set_entry(11);
+ membank("bankr5")->set_entry(12);
+ membank("bankr6")->set_entry(13);
+ membank("bankr7")->set_entry(14);
+ membank("bankr8")->set_entry(15);
+ break;
+ case 0x30:
+ case 0x34:
+ case 0x38:
+ case 0x3c:
+ membank("bankr1")->set_entry(0);
+ membank("bankr2")->set_entry(1);
+ membank("bankr3")->set_entry(2);
+ membank("bankr4")->set_entry(11);
+ membank("bankr5")->set_entry(12);
+ membank("bankr6")->set_entry(13);
+ membank("bankr7")->set_entry(14);
+ membank("bankr8")->set_entry(BIT(m_port58, 4) ? 15 : 7);
+ break;
+ case 0x44:
+ case 0x64:
+ membank("bankr1")->set_entry(24);
+ membank("bankr2")->set_entry(25);
+ membank("bankr3")->set_entry(26);
+ membank("bankr4")->set_entry(27);
+ membank("bankr5")->set_entry(28);
+ membank("bankr6")->set_entry(28);
+ membank("bankr7")->set_entry(30);
+ membank("bankr8")->set_entry(30);
+ break;
+ case 0x40:
+ case 0x60:
+ case 0x48:
+ case 0x68:
+ case 0x4c:
+ case 0x6c:
+ membank("bankr1")->set_entry(16);
+ membank("bankr2")->set_entry(17);
+ membank("bankr3")->set_entry(18);
+ membank("bankr4")->set_entry(19);
+ membank("bankr5")->set_entry(20);
+ membank("bankr6")->set_entry(20);
+ membank("bankr7")->set_entry(22);
+ membank("bankr8")->set_entry(22);
+ break;
+ case 0x54:
+ case 0x74:
+ membank("bankr1")->set_entry(0);
+ membank("bankr2")->set_entry(1);
+ membank("bankr3")->set_entry(2);
+ membank("bankr4")->set_entry(27);
+ membank("bankr5")->set_entry(28);
+ membank("bankr6")->set_entry(28);
+ membank("bankr7")->set_entry(30);
+ membank("bankr8")->set_entry(30);
+ break;
+ case 0x50:
+ case 0x70:
+ case 0x58:
+ case 0x78:
+ case 0x5c:
+ case 0x7c:
+ membank("bankr1")->set_entry(0);
+ membank("bankr2")->set_entry(1);
+ membank("bankr3")->set_entry(2);
+ membank("bankr4")->set_entry(19);
+ membank("bankr5")->set_entry(20);
+ membank("bankr6")->set_entry(20);
+ membank("bankr7")->set_entry(22);
+ membank("bankr8")->set_entry(22);
+ break;
+ default:
+ printf("Banking code %X not handled\n", m_bankdata);
+ }
+}
+
+WRITE8_MEMBER( camplynx_state::port82_w )
+{
+/* Almost the same as the 48k, except the bit order is reversed.
+d7 = write to bank 1
+d6 = write to bank 2
+d5 = colsel - allow r/w to bank 3??
+d4 = write to bank 4
+d3 = read from bank 0 - roms
+d2 = read from bank 1 - user ram
+d1 = read from bank 2 - videoram
+d0 = read from bank 4 */
+ m_bankdata = data;
+ data ^= 0x8c; // make all lines active high
+ // do writes
+ m_wbyte = BITSWAP8(data, 0, 0, 0, 0, 4, 5, 6, 7) & 0x0f; // rearrange to 1,2,3,4
+ // do reads
+ UINT8 rbyte = BITSWAP8(data, 0, 0, 0, 0, 0, 1, 2, 3) & 0x0f; // rearrange to 0,1,2,4
+ if BIT(rbyte, 1)
+ rbyte &= 0x07; // remove 4 if 1 selected (AND gate in IC82)
+//printf("%s:%X:%X:%X\n", machine().describe_context(), data, rbyte, m_wbyte);
+ switch (rbyte)
+ {
+ case 0x00:
+ case 0x01:
+ membank("bankr1")->set_entry(0);
+ membank("bankr2")->set_entry(1);
+ membank("bankr3")->set_entry(2);
+ membank("bankr4")->set_entry(3);
+ membank("bankr5")->set_entry(4);
+ membank("bankr6")->set_entry(5);
+ membank("bankr7")->set_entry(6);
+ membank("bankr8")->set_entry(7);
+ break;
+ case 0x02:
+ case 0x06:
+ case 0x0a:
+ case 0x0e:
+ membank("bankr1")->set_entry(8);
+ membank("bankr2")->set_entry(9);
+ membank("bankr3")->set_entry(10);
+ membank("bankr4")->set_entry(11);
+ membank("bankr5")->set_entry(12);
+ membank("bankr6")->set_entry(13);
+ membank("bankr7")->set_entry(14);
+ membank("bankr8")->set_entry(15);
+ break;
+ case 0x03:
+ case 0x07:
+ case 0x0b:
+ case 0x0f:
+ membank("bankr1")->set_entry(0);
+ membank("bankr2")->set_entry(1);
+ membank("bankr3")->set_entry(2);
+ membank("bankr4")->set_entry(11);
+ membank("bankr5")->set_entry(12);
+ membank("bankr6")->set_entry(13);
+ membank("bankr7")->set_entry(14);
+ membank("bankr8")->set_entry(BIT(m_port58, 4) ? 15 : 7);
+ break;
+ case 0x04:
+ case 0x0c:
+ membank("bankr1")->set_entry(16);
+ membank("bankr2")->set_entry(17);
+ membank("bankr3")->set_entry(18);
+ membank("bankr4")->set_entry(19);
+ membank("bankr5")->set_entry(20);
+ membank("bankr6")->set_entry(21);
+ membank("bankr7")->set_entry(22);
+ membank("bankr8")->set_entry(23);
+ break;
+ case 0x05:
+ case 0x0d:
+ membank("bankr1")->set_entry(0);
+ membank("bankr2")->set_entry(1);
+ membank("bankr3")->set_entry(2);
+ membank("bankr4")->set_entry(19);
+ membank("bankr5")->set_entry(20);
+ membank("bankr6")->set_entry(21);
+ membank("bankr7")->set_entry(22);
+ membank("bankr8")->set_entry(23);
+ break;
+ case 0x08:
+ membank("bankr1")->set_entry(32);
+ membank("bankr2")->set_entry(33);
+ membank("bankr3")->set_entry(34);
+ membank("bankr4")->set_entry(35);
+ membank("bankr5")->set_entry(36);
+ membank("bankr6")->set_entry(37);
+ membank("bankr7")->set_entry(38);
+ membank("bankr8")->set_entry(39);
+ break;
+ case 0x09:
+ membank("bankr1")->set_entry(0);
+ membank("bankr2")->set_entry(1);
+ membank("bankr3")->set_entry(2);
+ membank("bankr4")->set_entry(35);
+ membank("bankr5")->set_entry(36);
+ membank("bankr6")->set_entry(37);
+ membank("bankr7")->set_entry(38);
+ membank("bankr8")->set_entry(39);
+ break;
+ default:
+ printf("Banking code %X not handled\n", m_bankdata);
+ }
+}
+
+static ADDRESS_MAP_START( lynx48k_mem, AS_PROGRAM, 8, camplynx_state )
+ ADDRESS_MAP_UNMAP_HIGH
+ AM_RANGE(0x0000,0x1fff) AM_READ_BANK("bankr1")
+ AM_RANGE(0x2000,0x3fff) AM_READ_BANK("bankr2")
+ AM_RANGE(0x4000,0x5fff) AM_READ_BANK("bankr3")
+ AM_RANGE(0x6000,0x7fff) AM_READ_BANK("bankr4")
+ AM_RANGE(0x8000,0x9fff) AM_READ_BANK("bankr5") AM_WRITE(bank5_w)
+ AM_RANGE(0xa000,0xbfff) AM_READ_BANK("bankr6") AM_WRITE(bank6_w)
+ AM_RANGE(0xc000,0xdfff) AM_READ_BANK("bankr7") AM_WRITE(bank7_w)
+ AM_RANGE(0xe000,0xffff) AM_READ_BANK("bankr8") AM_WRITE(bank8_w)
+ AM_RANGE(0x0000,0x7fff) AM_WRITE(bank1_w)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( lynx128k_mem, AS_PROGRAM, 8, camplynx_state )
+ ADDRESS_MAP_UNMAP_HIGH
+ AM_RANGE(0x0000,0x1fff) AM_READ_BANK("bankr1")
+ AM_RANGE(0x2000,0x3fff) AM_READ_BANK("bankr2")
+ AM_RANGE(0x4000,0x5fff) AM_READ_BANK("bankr3")
+ AM_RANGE(0x6000,0x7fff) AM_READ_BANK("bankr4")
+ AM_RANGE(0x8000,0x9fff) AM_READ_BANK("bankr5")
+ AM_RANGE(0xa000,0xbfff) AM_READ_BANK("bankr6")
+ AM_RANGE(0xc000,0xdfff) AM_READ_BANK("bankr7")
+ AM_RANGE(0xe000,0xffff) AM_READ_BANK("bankr8")
+ AM_RANGE(0x0000,0xffff) AM_WRITE(bank1_w)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( lynx48k_io, AS_IO, 8, camplynx_state )
+ ADDRESS_MAP_UNMAP_HIGH
+ AM_RANGE(0x007f,0x007f) AM_MIRROR(0xff80) AM_WRITE(port7f_w)
+ AM_RANGE(0x0080,0x0080) AM_MIRROR(0xff00) AM_WRITE(port80_w)
+ AM_RANGE(0x0080,0x0080) AM_MIRROR(0xf000) AM_READ(port80_r)
+ AM_RANGE(0x0180,0x0180) AM_MIRROR(0xf000) AM_READ_PORT("LINE1")
+ AM_RANGE(0x0280,0x0280) AM_MIRROR(0xf000) AM_READ_PORT("LINE2")
+ AM_RANGE(0x0380,0x0380) AM_MIRROR(0xf000) AM_READ_PORT("LINE3")
+ AM_RANGE(0x0480,0x0480) AM_MIRROR(0xf000) AM_READ_PORT("LINE4")
+ AM_RANGE(0x0580,0x0580) AM_MIRROR(0xf000) AM_READ_PORT("LINE5")
+ AM_RANGE(0x0680,0x0680) AM_MIRROR(0xf000) AM_READ_PORT("LINE6")
+ AM_RANGE(0x0780,0x0780) AM_MIRROR(0xf000) AM_READ_PORT("LINE7")
+ AM_RANGE(0x0880,0x0880) AM_MIRROR(0xf000) AM_READ_PORT("LINE8")
+ AM_RANGE(0x0980,0x0980) AM_MIRROR(0xf000) AM_READ_PORT("LINE9")
+ AM_RANGE(0x0084,0x0084) AM_MIRROR(0xff00) AM_WRITE(port84_w)
+ AM_RANGE(0x0086,0x0086) AM_MIRROR(0xff00) AM_DEVREADWRITE("crtc", mc6845_device, status_r, address_w)
+ AM_RANGE(0x0087,0x0087) AM_MIRROR(0xff00) AM_DEVREADWRITE("crtc", mc6845_device, register_r, register_w)
+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(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(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)
+// AM_RANGE(0x007d,0x007d) AM_MIRROR(0xff80) AM_WRITE(lynx128k_printer_init_w) // this is rw
+// AM_RANGE(0x007e,0x007e) AM_MIRROR(0xff80) AM_WRITE(lynx128k_printer_w)
+ AM_RANGE(0x0080,0x0080) AM_MIRROR(0xff00) AM_WRITE(port80_w)
+ AM_RANGE(0x0080,0x0080) AM_MIRROR(0xf000) AM_READ_PORT("LINE0")
+ AM_RANGE(0x0180,0x0180) AM_MIRROR(0xf000) AM_READ_PORT("LINE1")
+ AM_RANGE(0x0280,0x0280) AM_MIRROR(0xf000) AM_READ_PORT("LINE2")
+ AM_RANGE(0x0380,0x0380) AM_MIRROR(0xf000) AM_READ_PORT("LINE3")
+ AM_RANGE(0x0480,0x0480) AM_MIRROR(0xf000) AM_READ_PORT("LINE4")
+ AM_RANGE(0x0580,0x0580) AM_MIRROR(0xf000) AM_READ_PORT("LINE5")
+ AM_RANGE(0x0680,0x0680) AM_MIRROR(0xf000) AM_READ_PORT("LINE6")
+ AM_RANGE(0x0780,0x0780) AM_MIRROR(0xf000) AM_READ_PORT("LINE7")
+ AM_RANGE(0x0880,0x0880) AM_MIRROR(0xf000) AM_READ_PORT("LINE8")
+ AM_RANGE(0x0980,0x0980) AM_MIRROR(0xf000) AM_READ_PORT("LINE9")
+ AM_RANGE(0x0082,0x0082) AM_MIRROR(0xff00) AM_READWRITE(port82_r,port82_w) // read=serial buffer
+ AM_RANGE(0x0084,0x0084) AM_MIRROR(0xff00) AM_WRITE(port84_w)
+ AM_RANGE(0x0086,0x0086) AM_MIRROR(0xff00) AM_DEVREADWRITE("crtc", mc6845_device, status_r, address_w)
+ AM_RANGE(0x0087,0x0087) AM_MIRROR(0xff00) AM_DEVREADWRITE("crtc", mc6845_device, register_r, register_w)
+ADDRESS_MAP_END
+
+/* Input ports */
+static INPUT_PORTS_START( lynx48k )
+ PORT_START("LINE0")
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Shift") PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1)
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Esc") PORT_CODE(KEYCODE_ESC) PORT_CHAR(27)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Down") PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN))
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Up") PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP))
+ PORT_BIT(0x0e, IP_ACTIVE_LOW, IPT_UNUSED)
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1 !") PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!')
+ PORT_START("LINE1")
+ PORT_BIT(0xc0, IP_ACTIVE_LOW, IPT_UNUSED)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C CONT") PORT_CODE(KEYCODE_C) PORT_CHAR('C') PORT_CHAR('c')
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D DEL") PORT_CODE(KEYCODE_D) PORT_CHAR('D') PORT_CHAR('d')
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("X WEND") PORT_CODE(KEYCODE_X) PORT_CHAR('X') PORT_CHAR('x')
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E DATA") PORT_CODE(KEYCODE_E) PORT_CHAR('E') PORT_CHAR('e')
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4 $") PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$')
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3 #") PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#')
+ PORT_START("LINE2")
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNUSED)
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Control") PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(KEYCODE_RCONTROL) PORT_CHAR(UCHAR_SHIFT_2)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A AUTO") PORT_CODE(KEYCODE_A) PORT_CHAR('A') PORT_CHAR('a')
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("S STOP") PORT_CODE(KEYCODE_S) PORT_CHAR('S') PORT_CHAR('s')
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Z RESTORE") PORT_CODE(KEYCODE_Z) PORT_CHAR('Z') PORT_CHAR('z')
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("W WHILE") PORT_CODE(KEYCODE_W) PORT_CHAR('W') PORT_CHAR('w')
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Q REM") PORT_CODE(KEYCODE_Q) PORT_CHAR('Q') PORT_CHAR('q')
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2 \"") PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR(34)
+ PORT_START("LINE3")
+ PORT_BIT(0xc0, IP_ACTIVE_LOW, IPT_UNUSED)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F DEFPROC") PORT_CODE(KEYCODE_F) PORT_CHAR('F') PORT_CHAR('f')
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G GOTO") PORT_CODE(KEYCODE_G) PORT_CHAR('G') PORT_CHAR('g')
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("V VERIFY") PORT_CODE(KEYCODE_V) PORT_CHAR('V') PORT_CHAR('v')
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("T TRACE") PORT_CODE(KEYCODE_T) PORT_CHAR('T') PORT_CHAR('t')
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("R REPEAT") PORT_CODE(KEYCODE_R) PORT_CHAR('R') PORT_CHAR('r')
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5 %") PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%')
+ PORT_START("LINE4")
+ PORT_BIT(0xc0, IP_ACTIVE_LOW, IPT_UNUSED)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B BEEP") PORT_CODE(KEYCODE_B) PORT_CHAR('B') PORT_CHAR('b')
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("N NEXT") PORT_CODE(KEYCODE_N) PORT_CHAR('N') PORT_CHAR('n')
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Space") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(32)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("H GOSUB") PORT_CODE(KEYCODE_H) PORT_CHAR('H') PORT_CHAR('h')
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Y RUN") PORT_CODE(KEYCODE_Y) PORT_CHAR('Y') PORT_CHAR('y')
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6 &") PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&')
+ PORT_START("LINE5")
+ PORT_BIT(0xd0, IP_ACTIVE_LOW, IPT_UNUSED)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("J LABEL") PORT_CODE(KEYCODE_J) PORT_CHAR('J') PORT_CHAR('j')
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("M RETURN") PORT_CODE(KEYCODE_M) PORT_CHAR('M') PORT_CHAR('m')
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("U UNTIL") PORT_CODE(KEYCODE_U) PORT_CHAR('U') PORT_CHAR('u')
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8 (") PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(')
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7 \'") PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR(39)
+ PORT_START("LINE6")
+ PORT_BIT(0xd0, IP_ACTIVE_LOW, IPT_UNUSED)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("K MON") PORT_CODE(KEYCODE_K) PORT_CHAR('K') PORT_CHAR('k')
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(", <") PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<')
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("O ENDPROC") PORT_CODE(KEYCODE_O) PORT_CHAR('O') PORT_CHAR('o')
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("I INPUT") PORT_CODE(KEYCODE_I) PORT_CHAR('I') PORT_CHAR('i')
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9 )") PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')')
+ PORT_START("LINE7")
+ PORT_BIT(0xd0, IP_ACTIVE_LOW, IPT_UNUSED)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("; +") PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR('+')
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(". >") PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>')
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("L LIST") PORT_CODE(KEYCODE_L) PORT_CHAR('L') PORT_CHAR('l')
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("P PROC") PORT_CODE(KEYCODE_P) PORT_CHAR('P') PORT_CHAR('p')
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0 _") PORT_CODE(KEYCODE_0) PORT_CHAR('0')
+ PORT_START("LINE8")
+ PORT_BIT(0xd0, IP_ACTIVE_LOW, IPT_UNUSED)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(": *") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(':') PORT_CHAR('*')
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("/ ?") PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?')
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("[") PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('[') PORT_CHAR(0x5e)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("@ \\") PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('@') PORT_CHAR('\\')
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("- =") PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('=')
+ PORT_START("LINE9")
+ PORT_BIT(0xc0, IP_ACTIVE_LOW, IPT_UNUSED)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Right") PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT))
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("End") PORT_CODE(KEYCODE_END) PORT_CHAR(UCHAR_MAMEKEY(END))
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Return") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Left") PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT))
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("]") PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(']') PORT_CHAR(0x7f)
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Delete") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8)
+INPUT_PORTS_END
+
+WRITE8_MEMBER( camplynx_state::bank1_w )
+{
+ if BIT(m_wbyte, 0)
+ m_p_ram[offset+0x10000] = data;
+ if ((m_wbyte & 0x22) == 0x02)
+ m_p_ram[offset+0x20000] = data;
+ if ((m_wbyte & 0x44) == 0x04)
+ m_p_ram[offset+0x30000] = data;
+ if (m_is_128k && BIT(m_wbyte, 3))
+ m_p_ram[offset+0x40000] = data;
+}
+
+WRITE8_MEMBER( camplynx_state::bank5_w )
+{
+ if BIT(m_wbyte, 0)
+ m_p_ram[offset+0x18000] = data;
+ if ((m_wbyte & 0x22) == 0x02)
+ m_p_ram[offset+0x28000] = data;
+ if ((m_wbyte & 0x44) == 0x04)
+ m_p_ram[offset+0x38000] = data;
+}
+
+WRITE8_MEMBER( camplynx_state::bank6_w )
+{
+ if BIT(m_wbyte, 0)
+ m_p_ram[offset+0x1a000] = data;
+ if ((m_wbyte & 0x22) == 0x02)
+ m_p_ram[offset+0x28000] = data;
+ if ((m_wbyte & 0x44) == 0x04)
+ m_p_ram[offset+0x38000] = data;
+}
+
+WRITE8_MEMBER( camplynx_state::bank7_w )
+{
+ if BIT(m_wbyte, 0)
+ m_p_ram[offset+0x1c000] = data;
+ if ((m_wbyte & 0x22) == 0x02)
+ m_p_ram[offset+0x2c000] = data;
+ if ((m_wbyte & 0x44) == 0x04)
+ m_p_ram[offset+0x3c000] = data;
+}
+
+WRITE8_MEMBER( camplynx_state::bank8_w )
+{
+ if BIT(m_wbyte, 0)
+ m_p_ram[offset+0x1e000] = data;
+ if ((m_wbyte & 0x22) == 0x02)
+ m_p_ram[offset+0x2c000] = data;
+ if ((m_wbyte & 0x44) == 0x04)
+ m_p_ram[offset+0x3c000] = data;
+}
+
+READ8_MEMBER( camplynx_state::port80_r )
+{
+ UINT8 data = ioport("LINE0")->read();
+ // when reading tape, bit 0 becomes cass-in signal
+ if BIT(m_port80, 1)
+ {
+ data &= 0xfe;
+ data |= (m_cass->input() > +0.02) ? 0 : 1;
+ }
+ return data;
+}
+
+/* 128k:
+d7 = serial data out
+d6 = interline control
+d5 = cpu access
+d4 = alt green or normal green (afaik this only affects the display not the banking)
+d3 = cass motor on
+d2 = cass enable
+d1 = serial h/s out
+d0 = speaker */
+WRITE8_MEMBER( camplynx_state::port80_w )
+{
+ m_port80 = data;
+ m_cass->change_state( BIT(data, (m_is_128k) ? 3 : 1) ? CASSETTE_MOTOR_ENABLED : CASSETTE_MOTOR_DISABLED, CASSETTE_MASK_MOTOR);
+ if (!m_is_128k)
+ port7f_w(space, 0, m_bankdata);
+}
+
+/* DAC port (6-bit). If writing cassette, output goes to tape as a sine wave, otherwise it goes to speaker.
+ There is code below to write as a sine wave or a square wave, both work and can be loaded successfully.
+ However the PALE emulator cannot load either of them, although it loads its own output.
+ MESS can load PALE's wav files though.
+ Currently square wave output is selected. */
+
+WRITE8_MEMBER( camplynx_state::port84_w )
+{
+ if BIT(m_port80, (m_is_128k) ? 3 : 1) // for 128k, bit 2 might be ok too
+ {
+ // Sine wave output
+ //float t = (float)(unsigned)data - 32.0f;
+ //m_cass->output(t/31);
+
+ // Square wave output
+ m_cass->output(BIT(data, 5) ? -1.0 : +1.0);
+ }
+ else // speaker output
+ m_dac->write_unsigned8(space, 0, data);
+}
+
+/*
+d7 = clock
+d2 = cass-in
+d1 = serial data in
+d0 = serial h/s in */
+READ8_MEMBER( camplynx_state::port82_r )
+{
+ UINT8 data = 0xfb; // guess
+ data |= (m_cass->input() > +0.02) ? 4 : 0;
+ return data;
+}
+
+MACHINE_RESET_MEMBER(camplynx_state, lynx48k)
+{
+ address_space &mem = m_maincpu->space(AS_PROGRAM);
+ m_port58 = 0;
+ m_port80 = 0;
+ port7f_w( mem, 0, 0 );
+ m_maincpu->reset();
+}
+
+MACHINE_RESET_MEMBER(camplynx_state, lynx128k)
+{
+ address_space &mem = m_maincpu->space(AS_PROGRAM);
+ m_port58 = 0;
+ m_port80 = 0;
+ port82_w( mem, 0, 0 );
+ m_maincpu->reset();
+}
+
+MC6845_UPDATE_ROW( camplynx_state::lynx48k_update_row )
+{
+ UINT8 r,g,b,x;
+ UINT32 green_bank, *p = &bitmap.pix32(y);
+ UINT16 mem = ((ma << 2) + (ra << 5)) & 0x1fff;
+
+ // determine green bank
+ if BIT(m_port80, 4)
+ green_bank = 0x38000+mem; // alt green
+ else
+ green_bank = 0x3c000+mem; // normal green
+
+ for (x = 0; x < x_count; x++)
+ {
+ r = m_p_ram[0x2c000+mem+x];
+ b = m_p_ram[0x28000+mem+x];
+ g = m_p_ram[green_bank+x];
+
+ *p++ = m_palette->pen_color((BIT(b, 7) << 2) | (BIT(g, 7) << 1) | (BIT(r, 7)));
+ *p++ = m_palette->pen_color((BIT(b, 6) << 2) | (BIT(g, 6) << 1) | (BIT(r, 6)));
+ *p++ = m_palette->pen_color((BIT(b, 5) << 2) | (BIT(g, 5) << 1) | (BIT(r, 5)));
+ *p++ = m_palette->pen_color((BIT(b, 4) << 2) | (BIT(g, 4) << 1) | (BIT(r, 4)));
+ *p++ = m_palette->pen_color((BIT(b, 3) << 2) | (BIT(g, 3) << 1) | (BIT(r, 3)));
+ *p++ = m_palette->pen_color((BIT(b, 2) << 2) | (BIT(g, 2) << 1) | (BIT(r, 2)));
+ *p++ = m_palette->pen_color((BIT(b, 1) << 2) | (BIT(g, 1) << 1) | (BIT(r, 1)));
+ *p++ = m_palette->pen_color((BIT(b, 0) << 2) | (BIT(g, 0) << 1) | (BIT(r, 0)));
+ }
+}
+
+MC6845_UPDATE_ROW( camplynx_state::lynx128k_update_row )
+{
+ UINT8 r,g,b,x;
+ UINT32 green_bank, *p = &bitmap.pix32(y);
+ UINT16 mem = ((ma << 2) + (ra << 6)) & 0x3fff;
+ // determine green bank
+ if BIT(m_port80, 4)
+ green_bank = 0x2c000+mem; // alt green
+ else
+ green_bank = 0x28000+mem; // normal green
+
+ for (x = 0; x < x_count; x++)
+ {
+ r = m_p_ram[0x20000+mem+x];
+ b = m_p_ram[0x24000+mem+x];
+ g = m_p_ram[green_bank+x];
+
+ *p++ = m_palette->pen_color((BIT(b, 7) << 2) | (BIT(g, 7) << 1) | (BIT(r, 7)));
+ *p++ = m_palette->pen_color((BIT(b, 6) << 2) | (BIT(g, 6) << 1) | (BIT(r, 6)));
+ *p++ = m_palette->pen_color((BIT(b, 5) << 2) | (BIT(g, 5) << 1) | (BIT(r, 5)));
+ *p++ = m_palette->pen_color((BIT(b, 4) << 2) | (BIT(g, 4) << 1) | (BIT(r, 4)));
+ *p++ = m_palette->pen_color((BIT(b, 3) << 2) | (BIT(g, 3) << 1) | (BIT(r, 3)));
+ *p++ = m_palette->pen_color((BIT(b, 2) << 2) | (BIT(g, 2) << 1) | (BIT(r, 2)));
+ *p++ = m_palette->pen_color((BIT(b, 1) << 2) | (BIT(g, 1) << 1) | (BIT(r, 1)));
+ *p++ = m_palette->pen_color((BIT(b, 0) << 2) | (BIT(g, 0) << 1) | (BIT(r, 0)));
+ }
+}
+
+WRITE8_MEMBER( camplynx_state::port58_w )
+{
+/*
+d0,d1 = drive select
+d2 = side
+d3 = motor
+d4 = eprom
+d5 = not used
+d6 = no precomp
+d7 = 125ns or 250ns */
+
+ if (BIT(m_port58, 4) ^ BIT(data, 4))
+ {
+ m_port58 = data;
+ if (m_is_128k)
+ port82_w(space, 0, m_bankdata);
+ else
+ port7f_w(space, 0, m_bankdata);
+ }
+ m_fdc->dden_w(BIT(data, 7));
+
+ floppy_image_device *floppy = NULL;
+ if ((data & 3) == 0) floppy = m_floppy0->get_device();
+ else
+ if ((data & 3) == 1) floppy = m_floppy1->get_device();
+
+ m_fdc->set_floppy(floppy);
+
+ if (floppy)
+ floppy->ss_w(BIT(data, 2));
+
+ m_floppy0->get_device()->mon_w(BIT(data, 3));
+ m_floppy1->get_device()->mon_w(BIT(data, 3));
+}
+
+
+static SLOT_INTERFACE_START( camplynx_floppies )
+ SLOT_INTERFACE( "drive0", FLOPPY_525_QD )
+ SLOT_INTERFACE( "drive1", FLOPPY_525_QD )
+SLOT_INTERFACE_END
+
+static MACHINE_CONFIG_FRAGMENT( lynx_common )
+ MCFG_PALETTE_ADD_3BIT_RGB("palette")
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_SOUND_ADD("dac", DAC, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.5)
+ MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.02)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_FRAGMENT( lynx_disk )
+ MCFG_FD1793_ADD("fdc", XTAL_24MHz / 3) // no idea what crystal, no schematic of fdc found
+ MCFG_FLOPPY_DRIVE_ADD("fdc:0", camplynx_floppies, "drive0", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
+ MCFG_FLOPPY_DRIVE_ADD("fdc:1", camplynx_floppies, "drive1", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_START( lynx48k, camplynx_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", Z80, XTAL_24MHz / 6)
+ MCFG_CPU_PROGRAM_MAP(lynx48k_mem)
+ MCFG_CPU_IO_MAP(lynx48k_io)
+
+ MCFG_MACHINE_RESET_OVERRIDE(camplynx_state, lynx48k)
+
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(50)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
+ MCFG_SCREEN_SIZE(512, 480)
+ MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 479)
+ MCFG_SCREEN_UPDATE_DEVICE("crtc", mc6845_device, screen_update)
+
+ MCFG_FRAGMENT_ADD(lynx_common)
+
+ MCFG_CASSETTE_ADD("cassette")
+ MCFG_CASSETTE_FORMATS(lynx48k_cassette_formats)
+ MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_PLAY | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_DISABLED)
+ //MCFG_CASSETTE_INTERFACE("camplynx_cass")
+
+ /* devices */
+ MCFG_MC6845_ADD("crtc", MC6845, "screen", XTAL_12MHz / 8 )
+ MCFG_MC6845_SHOW_BORDER_AREA(false)
+ MCFG_MC6845_CHAR_WIDTH(8)
+ MCFG_MC6845_UPDATE_ROW_CB(camplynx_state, lynx48k_update_row)
+ MCFG_MC6845_OUT_CUR_CB(DEVWRITELINE("maincpu", z80_device, irq_line))
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( lynx96k, lynx48k )
+ /* basic machine hardware */
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_IO_MAP(lynx96k_io)
+
+ MCFG_FRAGMENT_ADD(lynx_disk)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_START( lynx128k, camplynx_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", Z80, XTAL_24MHz / 4)
+ MCFG_CPU_PROGRAM_MAP(lynx128k_mem)
+ MCFG_CPU_IO_MAP(lynx128k_io)
+
+ MCFG_MACHINE_RESET_OVERRIDE(camplynx_state, lynx128k)
+
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(50)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
+ MCFG_SCREEN_SIZE(512, 480)
+ MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 479)
+ MCFG_SCREEN_UPDATE_DEVICE("crtc", mc6845_device, screen_update)
+
+ MCFG_FRAGMENT_ADD(lynx_common)
+
+ MCFG_CASSETTE_ADD("cassette")
+ MCFG_CASSETTE_FORMATS(lynx128k_cassette_formats)
+ MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_PLAY | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_DISABLED)
+ //MCFG_CASSETTE_INTERFACE("camplynx_cass")
+
+ /* devices */
+ MCFG_MC6845_ADD("crtc", MC6845, "screen", XTAL_12MHz / 8 )
+ MCFG_MC6845_SHOW_BORDER_AREA(false)
+ MCFG_MC6845_CHAR_WIDTH(8)
+ MCFG_MC6845_UPDATE_ROW_CB(camplynx_state, lynx128k_update_row)
+ MCFG_MC6845_OUT_CUR_CB(DEVWRITELINE("maincpu", z80_device, irq_line))
+
+ MCFG_FRAGMENT_ADD(lynx_disk)
+MACHINE_CONFIG_END
+
+DRIVER_INIT_MEMBER(camplynx_state, lynx48k)
+{
+ m_is_128k = false;
+ m_p_ram = memregion("maincpu")->base();
+ membank("bankr1")->configure_entries(0, 32, &m_p_ram[0], 0x2000);
+ membank("bankr2")->configure_entries(0, 32, &m_p_ram[0], 0x2000);
+ membank("bankr3")->configure_entries(0, 32, &m_p_ram[0], 0x2000);
+ membank("bankr4")->configure_entries(0, 32, &m_p_ram[0], 0x2000);
+ membank("bankr5")->configure_entries(0, 32, &m_p_ram[0], 0x2000);
+ membank("bankr6")->configure_entries(0, 32, &m_p_ram[0], 0x2000);
+ membank("bankr7")->configure_entries(0, 32, &m_p_ram[0], 0x2000);
+ membank("bankr8")->configure_entries(0, 32, &m_p_ram[0], 0x2000);
+}
+
+DRIVER_INIT_MEMBER(camplynx_state, lynx128k)
+{
+ m_is_128k = true;
+ m_p_ram = memregion("maincpu")->base();
+ membank("bankr1")->configure_entries(0, 40, &m_p_ram[0], 0x2000);
+ membank("bankr2")->configure_entries(0, 40, &m_p_ram[0], 0x2000);
+ membank("bankr3")->configure_entries(0, 40, &m_p_ram[0], 0x2000);
+ membank("bankr4")->configure_entries(0, 40, &m_p_ram[0], 0x2000);
+ membank("bankr5")->configure_entries(0, 40, &m_p_ram[0], 0x2000);
+ membank("bankr6")->configure_entries(0, 40, &m_p_ram[0], 0x2000);
+ membank("bankr7")->configure_entries(0, 40, &m_p_ram[0], 0x2000);
+ membank("bankr8")->configure_entries(0, 40, &m_p_ram[0], 0x2000);
+}
+
+
+/* ROM definition */
+ROM_START( lynx48k )
+ ROM_REGION( 0x40000, "maincpu", ROMREGION_ERASEFF )
+ ROM_SYSTEM_BIOS(0, "1", "Set1")
+ ROMX_LOAD( "lynx48-1.rom", 0x0000, 0x2000, CRC(56feec44) SHA1(7ded5184561168e159a30fa8e9d3fde5e52aa91a), ROM_BIOS(1) )
+ ROMX_LOAD( "lynx48-2.rom", 0x2000, 0x2000, CRC(d894562e) SHA1(c08a78ecb4eb05baa4c52488fce3648cd2688744), ROM_BIOS(1) )
+ ROM_SYSTEM_BIOS(1, "2", "Set2")
+ ROMX_LOAD( "lynx4811.rom", 0x0000, 0x2000, CRC(a933e577) SHA1(c7b30a28d99b38dbe63a1314c78e3e614287143b), ROM_BIOS(2) )
+ ROMX_LOAD( "lynx4812.rom", 0x2000, 0x2000, CRC(3d3fdd0e) SHA1(259d124f05367a96f891790f9418cc9c7798e2f8), ROM_BIOS(2) )
+ROM_END
+
+ROM_START( lynx96k )
+ ROM_REGION( 0x40000, "maincpu", ROMREGION_ERASEFF )
+ ROM_LOAD( "lynx9646.rom", 0x0000, 0x2000, CRC(f86c5514) SHA1(77a4af7557382003d697d08f364839e2dc28f063) )
+ ROM_LOAD( "lynx9645.rom", 0x2000, 0x2000, CRC(f596b9a3) SHA1(3fca46bd68422d34c6cd801dd904507e52bd8846) )
+ ROM_LOAD( "lynx9644.rom", 0x4000, 0x1000, CRC(4b96b0de) SHA1(c372a8d26399b9b45e615b674d61ccda76491b8b) )
+ ROM_LOAD( "dosrom.rom", 0xe000, 0x2000, CRC(011e106a) SHA1(e77f0ca99790551a7122945f3194516b2390fb69) )
+ROM_END
+
+ROM_START( lynx128k )
+ ROM_REGION( 0x50000, "maincpu", ROMREGION_ERASEFF )
+ ROM_LOAD( "lynx128-1.rom", 0x0000, 0x2000, CRC(65d292ce) SHA1(36567c2fbd9cf72f758e8cb80c21cb4d82040752) )
+ ROM_LOAD( "lynx128-2.rom", 0x2000, 0x2000, CRC(23288773) SHA1(e12a7ebea3fae5eb375c03e848dbb81070d9d189) )
+ ROM_LOAD( "lynx128-3.rom", 0x4000, 0x2000, CRC(9827b9e9) SHA1(1092367b2af51c72ce9be367179240d692aeb131) )
+ ROM_LOAD( "dosrom.rom", 0xe000, 0x2000, CRC(011e106a) SHA1(e77f0ca99790551a7122945f3194516b2390fb69) )
+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", MACHINE_NOT_WORKING)
+COMP( 1983, lynx128k, lynx48k, 0, lynx128k, lynx48k, camplynx_state, lynx128k, "Camputers", "Lynx 128k", MACHINE_NOT_WORKING)
diff --git a/src/mame/drivers/canon_s80.c b/src/mame/drivers/canon_s80.c
new file mode 100644
index 00000000000..2ee2325ce0e
--- /dev/null
+++ b/src/mame/drivers/canon_s80.c
@@ -0,0 +1,54 @@
+// license:GPL2+
+// copyright-holders:FelipeSanches
+/*
+ * canon_s80.c
+ *
+ * CANON S-80 electronic typewriter
+ *
+ * skeleton driver by:
+ * Felipe Correa da Silva Sanches <juca@members.fsf.org>
+ *
+ * known issues:
+ * - memory-map is uncertain
+ * - maincpu clock is guessed
+ * - still need to hookup the Hitachi HD44780 LCD Controller
+ * - still lacks description of the keyboard inputs
+ * - as well as a "paper" device to plot the output of the dot matrix print head
+ */
+
+#include "emu.h"
+#include "cpu/m6800/m6800.h"
+//#include "video/hd44780.h"
+
+class canons80_state : public driver_device
+{
+public:
+ canons80_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ { }
+
+ DECLARE_DRIVER_INIT(canons80);
+};
+
+
+static ADDRESS_MAP_START(canons80_map, AS_PROGRAM, 8, canons80_state )
+ AM_RANGE(0x0000, 0x7fff) AM_RAM
+ AM_RANGE(0x8000, 0xffff) AM_ROM
+ADDRESS_MAP_END
+
+static MACHINE_CONFIG_START( canons80, canons80_state )
+ /* 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 */
+ ROM_LOAD( "canon_8735kx_nh4-0029_064.ic6", 0x8000, 0x8000, CRC(b6cd2ff7) SHA1(e47a136300c826e480fac1be7fc090523078a2a6) )
+ROM_END
+
+/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
+COMP( 1988, canons80, 0, 0, canons80, 0, canons80_state, canons80, "Canon", "Canon S-80 electronic typewriter", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/canyon.c b/src/mame/drivers/canyon.c
index cfb8f89198f..1e08018a616 100644
--- a/src/mame/drivers/canyon.c
+++ b/src/mame/drivers/canyon.c
@@ -318,5 +318,5 @@ ROM_END
*
*************************************/
-GAME( 1977, canyon, 0, canyon, canyon, driver_device, 0, ROT0, "Atari", "Canyon Bomber", GAME_SUPPORTS_SAVE )
-GAME( 1977, canyonp, canyon, canyon, canyon, driver_device, 0, ROT0, "Atari", "Canyon Bomber (prototype)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/capbowl.c b/src/mame/drivers/capbowl.c
index 37b837e1768..f3d1deae057 100644
--- a/src/mame/drivers/capbowl.c
+++ b/src/mame/drivers/capbowl.c
@@ -437,13 +437,13 @@ ROM_END
ROM_START( bowlrama )
ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "u6", 0x08000, 0x08000, CRC(7103ad55) SHA1(92dccc5e6df3e18fc8cdcb67ef14d50ce5eb8b2c) )
+ ROM_LOAD( "bowl-o-rama_rev_1.0_u6.u6", 0x08000, 0x08000, CRC(7103ad55) SHA1(92dccc5e6df3e18fc8cdcb67ef14d50ce5eb8b2c) )
ROM_REGION( 0x10000, "audiocpu", 0 )
- ROM_LOAD( "u30", 0x8000, 0x8000, CRC(f3168834) SHA1(40b7fbe9c15cc4442f4394b71c0666185afe4c8d) )
+ ROM_LOAD( "bowl-o-rama_rev_1.0_u30.u30", 0x08000, 0x08000, CRC(f3168834) SHA1(40b7fbe9c15cc4442f4394b71c0666185afe4c8d) )
ROM_REGION( 0x40000, "gfx1", 0 )
- ROM_LOAD( "ux7", 0x00000, 0x40000, CRC(8727432a) SHA1(a81d366c5f8df0bdb97e795bba7752e6526ddba0) )
+ ROM_LOAD( "bowl-o-rama_rev_1.0_ux7.ux7", 0x00000, 0x40000, CRC(8727432a) SHA1(a81d366c5f8df0bdb97e795bba7752e6526ddba0) ) /* located on daughter card add-on */
ROM_END
@@ -469,9 +469,9 @@ DRIVER_INIT_MEMBER(capbowl_state,capbowl)
*
*************************************/
-GAME( 1988, capbowl, 0, capbowl, capbowl, capbowl_state, capbowl, ROT270, "Incredible Technologies / Capcom", "Capcom Bowling (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1988, capbowl2, capbowl, capbowl, capbowl, capbowl_state, capbowl, ROT270, "Incredible Technologies / Capcom", "Capcom Bowling (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1988, capbowl3, capbowl, capbowl, capbowl, capbowl_state, capbowl, ROT270, "Incredible Technologies / Capcom", "Capcom Bowling (set 3)", GAME_SUPPORTS_SAVE )
-GAME( 1988, capbowl4, capbowl, capbowl, capbowl, capbowl_state, capbowl, ROT270, "Incredible Technologies / Capcom", "Capcom Bowling (set 4)", GAME_SUPPORTS_SAVE )
-GAME( 1989, clbowl, capbowl, capbowl, capbowl, capbowl_state, capbowl, ROT270, "Incredible Technologies / Capcom", "Coors Light Bowling", GAME_SUPPORTS_SAVE )
-GAME( 1991, bowlrama, 0, bowlrama, capbowl, driver_device, 0, ROT270, "P&P Marketing", "Bowl-O-Rama", GAME_SUPPORTS_SAVE )
+GAME( 1988, capbowl, 0, capbowl, capbowl, capbowl_state, capbowl, ROT270, "Incredible Technologies / Capcom", "Capcom Bowling (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, capbowl2, capbowl, capbowl, capbowl, capbowl_state, capbowl, ROT270, "Incredible Technologies / Capcom", "Capcom Bowling (set 2)", MACHINE_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/capcom.c b/src/mame/drivers/capcom.c
index 3980c58816a..4970e673f94 100644
--- a/src/mame/drivers/capcom.c
+++ b/src/mame/drivers/capcom.c
@@ -298,17 +298,17 @@ ROM_START(ghv101)
ROM_LOAD("u34_v10.bin", 0x400000, 0x80000, CRC(cd5ea236) SHA1(dded158bc2f8443d2e69834cde87e81661ca7c53))
ROM_END
-GAME(1996, abv106, 0, capcom, capcom, capcom_state, capcom, ROT0, "Capcom", "Airborne", GAME_IS_SKELETON_MECHANICAL)
-GAME(1996, abv106r, abv106, capcom, capcom, capcom_state, capcom, ROT0, "Capcom", "Airborne (Redemption)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1996, bbb109, 0, capcom, capcom, capcom_state, capcom, ROT0, "Capcom", "Big Bang Bar (Beta 1.9 US)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1996, bbb108, bbb109, capcom, capcom, capcom_state, capcom, ROT0, "Capcom", "Big Bang Bar (Beta 1.8 US)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1996, bsv103, 0, capcom, capcom, capcom_state, capcom, ROT0, "Capcom", "Breakshot", GAME_IS_SKELETON_MECHANICAL)
-GAME(1996, bsv100r, bsv103, capcom, capcom, capcom_state, capcom, ROT0, "Capcom", "Breakshot (Redemption 1.0)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1996, bsv102r, bsv103, capcom, capcom, capcom_state, capcom, ROT0, "Capcom", "Breakshot (Redemption 1.2)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1996, bsb105, bsv103, capcom, capcom, capcom_state, capcom, ROT0, "Capcom", "Breakshot (Beta)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1996, ffv104, 0, capcom, capcom, capcom_state, capcom, ROT0, "Capcom", "Flipper Football (v1.04)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1996, ffv101, ffv104, capcom, capcom, capcom_state, capcom, ROT0, "Capcom", "Flipper Football (v1.01)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1996, kpv106, 0, capcom, capcom, capcom_state, capcom, ROT0, "Capcom", "Kingpin (Pinball)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1995, pmv112, 0, capcom, capcom, capcom_state, capcom, ROT0, "Capcom", "Pinball Magic", GAME_IS_SKELETON_MECHANICAL)
-GAME(1995, pmv112r, pmv112, capcom, capcom, capcom_state, capcom, ROT0, "Capcom", "Pinball Magic (Redemption)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1995, ghv101, 0, capcom, capcom, capcom_state, capcom, ROT0, "Romstar", "Goofy Hoops", GAME_IS_SKELETON_MECHANICAL)
+GAME(1996, abv106, 0, capcom, capcom, capcom_state, capcom, ROT0, "Capcom", "Airborne", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1996, abv106r, abv106, capcom, capcom, capcom_state, capcom, ROT0, "Capcom", "Airborne (Redemption)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1996, bbb109, 0, capcom, capcom, capcom_state, capcom, ROT0, "Capcom", "Big Bang Bar (Beta 1.9 US)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1996, bbb108, bbb109, capcom, capcom, capcom_state, capcom, ROT0, "Capcom", "Big Bang Bar (Beta 1.8 US)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1996, bsv103, 0, capcom, capcom, capcom_state, capcom, ROT0, "Capcom", "Breakshot", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1996, bsv100r, bsv103, capcom, capcom, capcom_state, capcom, ROT0, "Capcom", "Breakshot (Redemption 1.0)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1996, bsv102r, bsv103, capcom, capcom, capcom_state, capcom, ROT0, "Capcom", "Breakshot (Redemption 1.2)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1996, bsb105, bsv103, capcom, capcom, capcom_state, capcom, ROT0, "Capcom", "Breakshot (Beta)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1996, ffv104, 0, capcom, capcom, capcom_state, capcom, ROT0, "Capcom", "Flipper Football (v1.04)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1996, ffv101, ffv104, capcom, capcom, capcom_state, capcom, ROT0, "Capcom", "Flipper Football (v1.01)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1996, kpv106, 0, capcom, capcom, capcom_state, capcom, ROT0, "Capcom", "Kingpin (Pinball)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1995, pmv112, 0, capcom, capcom, capcom_state, capcom, ROT0, "Capcom", "Pinball Magic", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1995, pmv112r, pmv112, capcom, capcom, capcom_state, capcom, ROT0, "Capcom", "Pinball Magic (Redemption)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1995, ghv101, 0, capcom, capcom, capcom_state, capcom, ROT0, "Romstar", "Goofy Hoops", MACHINE_IS_SKELETON_MECHANICAL)
diff --git a/src/mame/drivers/capr1.c b/src/mame/drivers/capr1.c
index dcef968f74b..4203174914c 100644
--- a/src/mame/drivers/capr1.c
+++ b/src/mame/drivers/capr1.c
@@ -162,4 +162,4 @@ ROM_START( cspin2 )
ROM_END
-GAME (1996, cspin2, 0, cspin2, cspin2, driver_device, 0, ROT0, "Taito", "Capriccio Spin 2", GAME_IS_SKELETON_MECHANICAL )
+GAME (1996, cspin2, 0, cspin2, cspin2, driver_device, 0, ROT0, "Taito", "Capriccio Spin 2", MACHINE_IS_SKELETON_MECHANICAL )
diff --git a/src/mame/drivers/caprcyc.c b/src/mame/drivers/caprcyc.c
index 91eedfd14f3..9ac04280b94 100644
--- a/src/mame/drivers/caprcyc.c
+++ b/src/mame/drivers/caprcyc.c
@@ -92,4 +92,4 @@ ROM_START( caprcyc )
ROM_END
-GAME (1999, caprcyc, 0, caprcyc, caprcyc, driver_device, 0, ROT0, "Taito", "Capriccio Cyclone", GAME_IS_SKELETON_MECHANICAL )
+GAME (1999, caprcyc, 0, caprcyc, caprcyc, driver_device, 0, ROT0, "Taito", "Capriccio Cyclone", MACHINE_IS_SKELETON_MECHANICAL )
diff --git a/src/mame/drivers/cardline.c b/src/mame/drivers/cardline.c
index e823189e2cf..8f2dd4c5bad 100644
--- a/src/mame/drivers/cardline.c
+++ b/src/mame/drivers/cardline.c
@@ -373,4 +373,4 @@ ROM_START( cardline )
ROM_END
-GAME( 199?, cardline, 0, cardline, cardline, driver_device, 0, ROT0, "Veltmeijer", "Card Line" , GAME_SUPPORTS_SAVE)
+GAME( 199?, cardline, 0, cardline, cardline, driver_device, 0, ROT0, "Veltmeijer", "Card Line" , MACHINE_SUPPORTS_SAVE)
diff --git a/src/mame/drivers/carjmbre.c b/src/mame/drivers/carjmbre.c
index 4fe6ed5d0e6..3c387d19531 100644
--- a/src/mame/drivers/carjmbre.c
+++ b/src/mame/drivers/carjmbre.c
@@ -273,4 +273,4 @@ ROM_END
*
*************************************/
-GAME( 1983, carjmbre, 0, carjmbre, carjmbre, driver_device, 0, ROT90, "Omori Electric Co., Ltd.", "Car Jamboree", GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE )
+GAME( 1983, carjmbre, 0, carjmbre, carjmbre, driver_device, 0, ROT90, "Omori Electric Co., Ltd.", "Car Jamboree", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/carpolo.c b/src/mame/drivers/carpolo.c
index d49ee8ba039..bb0b2addd9b 100644
--- a/src/mame/drivers/carpolo.c
+++ b/src/mame/drivers/carpolo.c
@@ -354,4 +354,4 @@ DRIVER_INIT_MEMBER(carpolo_state,carpolo)
ROM[i] ^= 0x0f;
}
-GAME( 1977, carpolo, 0, carpolo, carpolo, carpolo_state, carpolo, ROT0, "Exidy", "Car Polo", GAME_SUPPORTS_SAVE | GAME_NO_SOUND )
+GAME( 1977, carpolo, 0, carpolo, carpolo, carpolo_state, carpolo, ROT0, "Exidy", "Car Polo", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND )
diff --git a/src/mess/drivers/casloopy.c b/src/mame/drivers/casloopy.c
index d2a957c5a96..ec768a54c01 100644
--- a/src/mess/drivers/casloopy.c
+++ b/src/mame/drivers/casloopy.c
@@ -420,7 +420,7 @@ static ADDRESS_MAP_START( casloopy_map, AS_PROGRAM, 32, casloopy_state )
AM_RANGE(0x04051000, 0x040511ff) AM_READWRITE16(pal_r, pal_w, 0xffffffff)
AM_RANGE(0x04058000, 0x04058007) AM_READWRITE16(vregs_r, vregs_w, 0xffffffff)
AM_RANGE(0x0405b000, 0x0405b00f) AM_RAM AM_SHARE("vregs") // RGB555 brightness control plus scrolling
-// AM_RANGE(0x05ffff00, 0x05ffffff) AM_READWRITE16(sh7021_r, sh7021_w, 0xffffffff)
+// AM_RANGE(0x05ffff00, 0x05ffffff) AM_READWRITE16(sh7021_r, sh7021_w, 0xffffffff)
// AM_RANGE(0x05ffff00, 0x05ffffff) - SH7021 internal i/o
AM_RANGE(0x06000000, 0x061fffff) AM_READ(cart_r)
AM_RANGE(0x07000000, 0x070003ff) AM_RAM AM_SHARE("oram")// on-chip RAM, actually at 0xf000000 (1 kb)
@@ -563,4 +563,4 @@ DRIVER_INIT_MEMBER(casloopy_state,casloopy)
m_bios_rom[i] = 0x000b0009; // RTS + NOP
}
-CONS( 1995, casloopy, 0, 0, casloopy, casloopy, casloopy_state, casloopy, "Casio", "Loopy", GAME_NOT_WORKING | GAME_NO_SOUND )
+CONS( 1995, casloopy, 0, 0, casloopy, casloopy, casloopy_state, casloopy, "Casio", "Loopy", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/castle.c b/src/mame/drivers/castle.c
index da694472bb9..056273db2b1 100644
--- a/src/mame/drivers/castle.c
+++ b/src/mame/drivers/castle.c
@@ -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)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 1987, castrev, 0, castle_V1rvE, castrev, driver_device, 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)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 198?, castfpt, 0, castle_V2rvA, castrev, driver_device, 0, ROT0, "Castle","Fortune Pot (Castle) (MACH2000 V2rvA)",MACHINE_IS_SKELETON_MECHANICAL )
diff --git a/src/mame/drivers/caswin.c b/src/mame/drivers/caswin.c
index c7dc395bcaa..c91064afbe1 100644
--- a/src/mame/drivers/caswin.c
+++ b/src/mame/drivers/caswin.c
@@ -414,7 +414,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)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1984, rcasino1, rcasino, vvillage, vvillage, driver_device, 0, ROT270, "Dyna Electronics", "Royal Casino (D-2608208A1-1, Larger Board)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1984, rcasinoo, rcasino, vvillage, vvillage, driver_device, 0, ROT270, "Dyna Electronics", "Royal Casino (D-2608208A1-1, Smaller Board)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1985, caswin, rcasino, vvillage, vvillage, driver_device, 0, ROT270, "Aristocrat", "Casino Winner", GAME_IMPERFECT_GRAPHICS )
+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 )
diff --git a/src/mess/drivers/cat.c b/src/mame/drivers/cat.c
index 32eb8700ea4..161441bb667 100644
--- a/src/mess/drivers/cat.c
+++ b/src/mame/drivers/cat.c
@@ -1839,5 +1839,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", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 1987, cat, swyft, 0, cat, cat, driver_device, 0, "Canon", "Cat", GAME_NOT_WORKING)
+COMP( 1985, swyft,0, 0, swyft, swyft, driver_device, 0, "Information Applicance Inc", "Swyft", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
+COMP( 1987, cat, swyft, 0, cat, cat, driver_device, 0, "Canon", "Cat", MACHINE_NOT_WORKING)
diff --git a/src/mame/drivers/cave.c b/src/mame/drivers/cave.c
index 27c8759662e..00cacc0285c 100644
--- a/src/mame/drivers/cave.c
+++ b/src/mame/drivers/cave.c
@@ -4995,74 +4995,74 @@ 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)", GAME_SUPPORTS_SAVE )
-GAME( 1994, pwrinst2j, pwrinst2, pwrinst2, metmqstr, cave_state, pwrinst2j,ROT0, "Atlus", "Gouketsuji Ichizoku 2 (Japan, Ver. 94/04/08)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1994, mazingerj, mazinger, mazinger, cave, cave_state, mazinger, ROT90, "Banpresto / Dynamic Pl. Toei Animation", "Mazinger Z (Japan)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1995, donpachij, donpachi, donpachi, cave, cave_state, donpachi, ROT270, "Cave (Atlus license)", "DonPachi (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1995, donpachikr, donpachi, donpachi, cave, cave_state, donpachi, ROT270, "Cave (Atlus license)", "DonPachi (Korea)", GAME_SUPPORTS_SAVE )
-GAME( 1995, donpachihk, donpachi, donpachi, cave, cave_state, donpachi, ROT270, "Cave (Atlus license)", "DonPachi (Hong Kong)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1995, nmaster, metmqstr, metmqstr, metmqstr, cave_state, metmqstr, ROT0, "Banpresto / Pandorabox", "Oni - The Ninja Master (Japan)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1995, plegendsj, plegends, pwrinst2, metmqstr, cave_state, pwrinst2j,ROT0, "Atlus", "Gouketsuji Gaiden - Saikyou Densetsu (Japan, Ver. 95/06/20)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1995, sailormnu, sailormn, sailormn, cave, cave_state, sailormn, ROT0, "Gazelle (Banpresto license)", "Pretty Soldier Sailor Moon (Ver. 95/03/22B, USA)", GAME_SUPPORTS_SAVE )
-GAME( 1995, sailormnj, sailormn, sailormn, cave, cave_state, sailormn, ROT0, "Gazelle (Banpresto license)", "Pretty Soldier Sailor Moon (Ver. 95/03/22B, Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1995, sailormnk, sailormn, sailormn, cave, cave_state, sailormn, ROT0, "Gazelle (Banpresto license)", "Pretty Soldier Sailor Moon (Ver. 95/03/22B, Korea)", GAME_SUPPORTS_SAVE )
-GAME( 1995, sailormnt, sailormn, sailormn, cave, cave_state, sailormn, ROT0, "Gazelle (Banpresto license)", "Pretty Soldier Sailor Moon (Ver. 95/03/22B, Taiwan)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1995, sailormno, sailormn, sailormn, cave, cave_state, sailormn, ROT0, "Gazelle (Banpresto license)", "Pretty Soldier Sailor Moon (Ver. 95/03/22, Europe)", GAME_SUPPORTS_SAVE )
-GAME( 1995, sailormnou, sailormn, sailormn, cave, cave_state, sailormn, ROT0, "Gazelle (Banpresto license)", "Pretty Soldier Sailor Moon (Ver. 95/03/22, USA)", GAME_SUPPORTS_SAVE )
-GAME( 1995, sailormnoj, sailormn, sailormn, cave, cave_state, sailormn, ROT0, "Gazelle (Banpresto license)", "Pretty Soldier Sailor Moon (Ver. 95/03/22, Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1995, sailormnok, sailormn, sailormn, cave, cave_state, sailormn, ROT0, "Gazelle (Banpresto license)", "Pretty Soldier Sailor Moon (Ver. 95/03/22, Korea)", GAME_SUPPORTS_SAVE )
-GAME( 1995, sailormnot, sailormn, sailormn, cave, cave_state, sailormn, ROT0, "Gazelle (Banpresto license)", "Pretty Soldier Sailor Moon (Ver. 95/03/22, Taiwan)", GAME_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)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1996, agalletu, agallet, sailormn, cave, cave_state, agallet, ROT270, "Gazelle (Banpresto license)", "Air Gallet (USA)", GAME_SUPPORTS_SAVE )
-GAME( 1996, agalletj, agallet, sailormn, cave, cave_state, agallet, ROT270, "Gazelle (Banpresto license)", "Akuu Gallet (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1996, agalletk, agallet, sailormn, cave, cave_state, agallet, ROT270, "Gazelle (Banpresto license)", "Air Gallet (Korea)", GAME_SUPPORTS_SAVE )
-GAME( 1996, agallett, agallet, sailormn, cave, cave_state, agallet, ROT270, "Gazelle (Banpresto license)", "Air Gallet (Taiwan)", GAME_SUPPORTS_SAVE )
-GAME( 1996, agalleth, agallet, sailormn, cave, cave_state, agallet, ROT270, "Gazelle (Banpresto license)", "Air Gallet (Hong Kong)", GAME_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 )
-GAME( 1996, hotdogst, 0, hotdogst, cave, cave_state, hotdogst, ROT90, "Marble", "Hotdog Storm (International)", GAME_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", GAME_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)", GAME_SUPPORTS_SAVE | GAME_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, ddonpach, 0, ddonpach, cave, cave_state, ddonpach, ROT270, "Cave (Atlus license)", "DoDonPachi (International, Master Ver. 97/02/05)", GAME_SUPPORTS_SAVE )
-GAME( 1997, ddonpachj, ddonpach, ddonpach, cave, cave_state, ddonpach, ROT270, "Cave (Atlus license)", "DoDonPachi (Japan, Master Ver. 97/02/05)", GAME_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( 1998, dfeveron, feversos, dfeveron, cave, cave_state, dfeveron, ROT270, "Cave (Nihon System license)", "Dangun Feveron (Japan, Ver. 98/09/17)", GAME_SUPPORTS_SAVE )
-GAME( 1998, feversos, 0, dfeveron, cave, cave_state, feversos, ROT270, "Cave (Nihon System license)", "Fever SOS (International, Ver. 98/09/25)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1998, espradej, esprade, esprade, cave, cave_state, esprade, ROT270, "Cave (Atlus license)", "ESP Ra.De. (Japan, Ver. 98/04/21)", GAME_SUPPORTS_SAVE )
-GAME( 1998, espradejo, esprade, esprade, cave, cave_state, esprade, ROT270, "Cave (Atlus license)", "ESP Ra.De. (Japan, Ver. 98/04/14)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1998, uopokoj, uopoko, uopoko, cave, cave_state, uopoko, ROT0, "Cave (Jaleco license)", "Puzzle Uo Poko (Japan)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1999, guwanges, guwange, guwange, guwange, cave_state, guwange, ROT270, "Cave (Atlus license)", "Guwange (Japan, Special Ver. 00/07/07)", GAME_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", GAME_SUPPORTS_SAVE | GAME_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)", GAME_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)", GAME_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", GAME_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", GAME_SUPPORTS_SAVE | GAME_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.c b/src/mame/drivers/cavepc.c
index 9ec8de09c2e..fc6702d0877 100644
--- a/src/mame/drivers/cavepc.c
+++ b/src/mame/drivers/cavepc.c
@@ -174,4 +174,4 @@ ROM_END
/*****************************************************************************/
-GAME(2009, deathsm2, 0, cavepc, cavepc, cavepc_state, cavepc, ROT0, "Cave", "Deathsmiles II: Makai no Merry Christmas (2009/10/14 MASTER VER 4.00)", GAME_IS_SKELETON )
+GAME(2009, deathsm2, 0, cavepc, cavepc, cavepc_state, cavepc, ROT0, "Cave", "Deathsmiles II: Makai no Merry Christmas (2009/10/14 MASTER VER 4.00)", MACHINE_IS_SKELETON )
diff --git a/src/mame/drivers/cb2001.c b/src/mame/drivers/cb2001.c
index 9377fd875b0..021a925234c 100644
--- a/src/mame/drivers/cb2001.c
+++ b/src/mame/drivers/cb2001.c
@@ -867,5 +867,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", GAME_NOT_WORKING|GAME_NO_SOUND )
-GAME( 2001, scherrym, 0, cb2001, cb2001, driver_device, 0, ROT0, "Dyna", "Super Cherry Master", GAME_NOT_WORKING|GAME_NO_SOUND ) // 2001 version? (we have bootlegs running on z80 hw of a 1996 version)
+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)
diff --git a/src/mame/drivers/cball.c b/src/mame/drivers/cball.c
index ba770318305..e36a32361c7 100644
--- a/src/mame/drivers/cball.c
+++ b/src/mame/drivers/cball.c
@@ -303,4 +303,4 @@ ROM_START( cball )
ROM_END
-GAME( 1976, cball, 0, cball, cball, driver_device, 0, ROT0, "Atari", "Cannonball (Atari, prototype)", GAME_NO_SOUND | GAME_WRONG_COLORS | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/cbasebal.c b/src/mame/drivers/cbasebal.c
index 098fe4c35c2..7ae08b20537 100644
--- a/src/mame/drivers/cbasebal.c
+++ b/src/mame/drivers/cbasebal.c
@@ -351,4 +351,4 @@ DRIVER_INIT_MEMBER(cbasebal_state,cbasebal)
*
*************************************/
-GAME( 1989, cbasebal, 0, cbasebal, cbasebal, cbasebal_state, cbasebal, ROT0, "Capcom", "Capcom Baseball (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1989, cbasebal, 0, cbasebal, cbasebal, cbasebal_state, cbasebal, ROT0, "Capcom", "Capcom Baseball (Japan)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/cbm2.c b/src/mame/drivers/cbm2.c
index 050ed8fa97c..9ff23fc32da 100644
--- a/src/mess/drivers/cbm2.c
+++ b/src/mame/drivers/cbm2.c
@@ -2749,19 +2749,19 @@ ROM_END
//**************************************************************************
// 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)", GAME_SUPPORTS_SAVE )
-COMP( 1983, p500p, p500, 0, p500_pal, cbm2, driver_device, 0, "Commodore Business Machines", "P500 (PAL)", GAME_SUPPORTS_SAVE )
-COMP( 1983, b500, 0, 0, b128, cbm2, driver_device, 0, "Commodore Business Machines", "B500", GAME_SUPPORTS_SAVE )
-COMP( 1983, b128, b500, 0, b128, cbm2, driver_device, 0, "Commodore Business Machines", "B128", GAME_SUPPORTS_SAVE )
-COMP( 1983, b256, b500, 0, b256, cbm2, driver_device, 0, "Commodore Business Machines", "B256", GAME_SUPPORTS_SAVE )
-COMP( 1983, cbm610, b500, 0, cbm610, cbm2, driver_device, 0, "Commodore Business Machines", "CBM 610", GAME_SUPPORTS_SAVE )
-COMP( 1983, cbm620, b500, 0, cbm620, cbm2, driver_device, 0, "Commodore Business Machines", "CBM 620", GAME_SUPPORTS_SAVE )
-COMP( 1983, cbm620_hu, b500, 0, cbm620, cbm2_hu, driver_device, 0, "Commodore Business Machines", "CBM 620 (Hungary)", GAME_SUPPORTS_SAVE )
-COMP( 1983, b128hp, 0, 0, b128hp, cbm2, driver_device, 0, "Commodore Business Machines", "B128-80HP", GAME_SUPPORTS_SAVE )
-COMP( 1983, b256hp, b128hp, 0, b256hp, cbm2, driver_device, 0, "Commodore Business Machines", "B256-80HP", GAME_SUPPORTS_SAVE )
-COMP( 1983, bx256hp, b128hp, 0, bx256hp, cbm2, driver_device, 0, "Commodore Business Machines", "BX256-80HP", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // 8088 co-processor is missing
-COMP( 1983, cbm710, b128hp, 0, cbm710, cbm2, driver_device, 0, "Commodore Business Machines", "CBM 710", GAME_SUPPORTS_SAVE )
-COMP( 1983, cbm720, b128hp, 0, cbm720, cbm2, driver_device, 0, "Commodore Business Machines", "CBM 720", GAME_SUPPORTS_SAVE )
-COMP( 1983, cbm720_de, b128hp, 0, cbm720, cbm2_de, driver_device, 0, "Commodore Business Machines", "CBM 720 (Germany)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-COMP( 1983, cbm720_se, b128hp, 0, cbm720, cbm2_se, driver_device, 0, "Commodore Business Machines", "CBM 720 (Sweden/Finland)", GAME_SUPPORTS_SAVE )
-COMP( 1983, cbm730, b128hp, 0, cbm730, cbm2, driver_device, 0, "Commodore Business Machines", "CBM 730", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // 8088 co-processor is missing
+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
diff --git a/src/mame/drivers/cbuster.c b/src/mame/drivers/cbuster.c
index e47fd0e9643..b68b1ce2c94 100644
--- a/src/mame/drivers/cbuster.c
+++ b/src/mame/drivers/cbuster.c
@@ -617,8 +617,8 @@ DRIVER_INIT_MEMBER(cbuster_state,twocrude)
/******************************************************************************/
-GAME( 1990, cbuster, 0, twocrude, twocrude, cbuster_state, twocrude, ROT0, "Data East Corporation", "Crude Buster (World FX version)", GAME_SUPPORTS_SAVE )
-GAME( 1990, cbusterw, cbuster, twocrude, twocrude, cbuster_state, twocrude, ROT0, "Data East Corporation", "Crude Buster (World FU version)", GAME_SUPPORTS_SAVE )
-GAME( 1990, cbusterj, cbuster, twocrude, twocrude, cbuster_state, twocrude, ROT0, "Data East Corporation", "Crude Buster (Japan FR revision 1)", GAME_SUPPORTS_SAVE )
-GAME( 1990, twocrude, cbuster, twocrude, twocrude, cbuster_state, twocrude, ROT0, "Data East USA", "Two Crude (US FT revision 1)", GAME_SUPPORTS_SAVE )
-GAME( 1990, twocrudea,cbuster, twocrude, twocrude, cbuster_state, twocrude, ROT0, "Data East USA", "Two Crude (US FT version)", GAME_SUPPORTS_SAVE )
+GAME( 1990, cbuster, 0, twocrude, twocrude, cbuster_state, twocrude, ROT0, "Data East Corporation", "Crude Buster (World FX version)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, cbusterw, cbuster, twocrude, twocrude, cbuster_state, twocrude, ROT0, "Data East Corporation", "Crude Buster (World FU version)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, cbusterj, cbuster, twocrude, twocrude, cbuster_state, twocrude, ROT0, "Data East Corporation", "Crude Buster (Japan FR revision 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, twocrude, cbuster, twocrude, twocrude, cbuster_state, twocrude, ROT0, "Data East USA", "Two Crude (US FT revision 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, twocrudea,cbuster, twocrude, twocrude, cbuster_state, twocrude, ROT0, "Data East USA", "Two Crude (US FT version)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/cc40.c b/src/mame/drivers/cc40.c
index b5cfcf4cad1..ba5e937d423 100644
--- a/src/mess/drivers/cc40.c
+++ b/src/mame/drivers/cc40.c
@@ -638,4 +638,4 @@ ROM_START( cc40 )
ROM_END
-COMP( 1983, cc40, 0, 0, cc40, cc40, driver_device, 0, "Texas Instruments", "Compact Computer 40", GAME_SUPPORTS_SAVE )
+COMP( 1983, cc40, 0, 0, cc40, cc40, driver_device, 0, "Texas Instruments", "Compact Computer 40", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/ccastles.c b/src/mame/drivers/ccastles.c
index 679302610eb..7e6ee7c0f27 100644
--- a/src/mame/drivers/ccastles.c
+++ b/src/mame/drivers/ccastles.c
@@ -660,11 +660,11 @@ ROM_END
*
*************************************/
-GAME( 1983, ccastles, 0, ccastles, ccastles, driver_device, 0, ROT0, "Atari", "Crystal Castles (version 4)", GAME_SUPPORTS_SAVE )
-GAME( 1983, ccastlesg, ccastles, ccastles, ccastles, driver_device, 0, ROT0, "Atari", "Crystal Castles (version 3, German)", GAME_SUPPORTS_SAVE )
-GAME( 1983, ccastlesp, ccastles, ccastles, ccastles, driver_device, 0, ROT0, "Atari", "Crystal Castles (version 3, Spanish)", GAME_SUPPORTS_SAVE )
-GAME( 1983, ccastlesf, ccastles, ccastles, ccastles, driver_device, 0, ROT0, "Atari", "Crystal Castles (version 3, French)", GAME_SUPPORTS_SAVE )
-GAME( 1983, ccastles3, ccastles, ccastles, ccastles, driver_device, 0, ROT0, "Atari", "Crystal Castles (version 3)", GAME_SUPPORTS_SAVE )
-GAME( 1983, ccastles2, ccastles, ccastles, ccastles, driver_device, 0, ROT0, "Atari", "Crystal Castles (version 2)", GAME_SUPPORTS_SAVE )
-GAME( 1983, ccastles1, ccastles, ccastles, ccastles, driver_device, 0, ROT0, "Atari", "Crystal Castles (version 1)", GAME_SUPPORTS_SAVE )
-GAME( 1983, ccastlesj, ccastles, ccastles, ccastlesj, driver_device,0, ROT0, "Atari", "Crystal Castles (joystick version)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/cchance.c b/src/mame/drivers/cchance.c
index cf684b234d2..0fd606a3051 100644
--- a/src/mame/drivers/cchance.c
+++ b/src/mame/drivers/cchance.c
@@ -164,6 +164,12 @@ static INPUT_PORTS_START( cchance )
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ // These ports are required in tnzs_state
+ PORT_START("IN1")
+ PORT_START("IN2")
+ PORT_START("DSWA")
+ PORT_START("DSWB")
INPUT_PORTS_END
static const gfx_layout cchance_layout =
@@ -250,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, "<unknown>", "Cherry Chance", GAME_NOT_WORKING | GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
+GAME( 1987?, cchance, 0, cchance, cchance, driver_device, 0, ROT0, "<unknown>", "Cherry Chance", MACHINE_NOT_WORKING | MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/cchasm.c b/src/mame/drivers/cchasm.c
index 1bac5ec616f..4f75476305f 100644
--- a/src/mame/drivers/cchasm.c
+++ b/src/mame/drivers/cchasm.c
@@ -254,5 +254,5 @@ ROM_END
*
*************************************/
-GAME( 1983, cchasm, 0, cchasm, cchasm, driver_device, 0, ROT270, "Cinematronics / GCE", "Cosmic Chasm (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1983, cchasm1, cchasm, cchasm, cchasm, driver_device, 0, ROT270, "Cinematronics / GCE", "Cosmic Chasm (set 2)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/cclimber.c b/src/mame/drivers/cclimber.c
index 6cfd1382651..eb404444a43 100644
--- a/src/mame/drivers/cclimber.c
+++ b/src/mame/drivers/cclimber.c
@@ -375,6 +375,10 @@ static ADDRESS_MAP_START( yamato_map, AS_PROGRAM, 8, cclimber_state )
AM_RANGE(0xba00, 0xba00) AM_READ_PORT("START") /* maybe a mirror of b800 */
ADDRESS_MAP_END
+static ADDRESS_MAP_START( yamato_decrypted_opcodes_map, AS_DECRYPTED_OPCODES, 8, cclimber_state )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM AM_SHARE("decrypted_opcodes")
+ADDRESS_MAP_END
+
static ADDRESS_MAP_START( toprollr_map, AS_PROGRAM, 8, cclimber_state )
AM_RANGE(0x0000, 0x5fff) AM_ROMBANK("bank1")
AM_RANGE(0x6000, 0x6bff) AM_RAM AM_SHARE("ram")
@@ -1056,7 +1060,7 @@ static MACHINE_CONFIG_DERIVED( yamato, root )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(yamato_map)
MCFG_CPU_IO_MAP(yamato_portmap)
- MCFG_CPU_DECRYPTED_OPCODES_MAP(decrypted_opcodes_map)
+ MCFG_CPU_DECRYPTED_OPCODES_MAP(yamato_decrypted_opcodes_map)
MCFG_CPU_ADD("audiocpu", Z80, 3072000) /* 3.072 MHz ? */
MCFG_CPU_PROGRAM_MAP(yamato_audio_map)
@@ -2415,7 +2419,7 @@ DRIVER_INIT_MEMBER(cclimber_state,yamato)
{ 0x20,0xa0,0x28,0xa8 }, { 0x00,0x08,0x20,0x28 } /* ...1...1...1...1 */
};
- sega_decode(memregion("maincpu")->base(), m_decrypted_opcodes, 0x6000, convtable);
+ sega_decode(memregion("maincpu")->base(), m_decrypted_opcodes, 0x8000, convtable);
save_item(NAME(m_yamato_p0));
save_item(NAME(m_yamato_p1));
@@ -2473,56 +2477,56 @@ DRIVER_INIT_MEMBER(cclimber_state,dking)
}
-GAME( 1980, cclimber, 0, cclimberx, cclimber, cclimber_state, cclimber, ROT0, "Nichibutsu", "Crazy Climber (US)", GAME_SUPPORTS_SAVE )
-GAME( 1980, cclimberj, cclimber, cclimberx, cclimberj, cclimber_state,cclimberj,ROT0, "Nichibutsu", "Crazy Climber (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1980, ccboot, cclimber, cclimberx, cclimber, cclimber_state, cclimberj,ROT0, "bootleg", "Crazy Climber (bootleg set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1980, ccboot2, cclimber, cclimberx, cclimber, cclimber_state, cclimberj,ROT0, "bootleg", "Crazy Climber (bootleg set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1980, ccbootmr, cclimber, cclimberx, cclimber, cclimber_state, cclimberj,ROT0, "bootleg (Model Racing)", "Crazy Climber (Model Racing bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1980, cclimbroper, cclimber, cclimber, cclimber, driver_device, 0, ROT0, "bootleg (Operamatic)", "Crazy Climber (Spanish, Operamatic bootleg)", GAME_SUPPORTS_SAVE )
+GAME( 1980, cclimber, 0, cclimberx, cclimber, cclimber_state, cclimber, ROT0, "Nichibutsu", "Crazy Climber (US)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, cclimberj, cclimber, cclimberx, cclimberj, cclimber_state,cclimberj,ROT0, "Nichibutsu", "Crazy Climber (Japan)", MACHINE_SUPPORTS_SAVE )
+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 )
/* 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", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1981, monkeyd, ckong, cclimber, ckong, driver_device, 0, ROT270, "bootleg", "Monkey Donkey", GAME_SUPPORTS_SAVE )
-GAME( 1981, dking, ckong, cclimber, ckong, cclimber_state, dking, ROT270, "bootleg", "Donkey King", GAME_SUPPORTS_SAVE ) // supposedly, possibly by Hafasonic?
-GAME( 1981, ckongdks, ckong, cclimber, ckong, cclimber_state, dking, ROT270, "bootleg", "Donkey Kong (Spanish Crazy Kong bootleg)", GAME_SUPPORTS_SAVE )
+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 )
/* 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)", GAME_SUPPORTS_SAVE )
-GAME( 1981, bigkong, ckong, cclimber, ckong, driver_device, 0, ROT270, "bootleg", "Big Kong", GAME_SUPPORTS_SAVE )
+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 )
/* 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)", GAME_SUPPORTS_SAVE )
-GAME( 1981, ckongpt2a, ckongpt2, cclimber, ckong, driver_device, 0, ROT270, "Falcon", "Crazy Kong Part II (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1981, ckongpt2j, ckongpt2, cclimber, ckong, driver_device, 0, ROT270, "Falcon", "Crazy Kong Part II (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1981, ckongpt2jeu, ckongpt2, cclimber, ckong, driver_device, 0, ROT270, "bootleg (Jeutel)", "Crazy Kong Part II (Jeutel bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1981, ckongpt2b, ckongpt2, cclimber, ckongb, cclimber_state, ckongb, ROT270, "bootleg", "Crazy Kong Part II (alternative levels)", GAME_SUPPORTS_SAVE )
+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, ckongpt2b, ckongpt2, cclimber, ckongb, cclimber_state, ckongb, ROT270, "bootleg", "Crazy Kong Part II (alternative levels)", MACHINE_SUPPORTS_SAVE )
// see bagman.c for parent
-GAME( 1981, bagmanf, bagman, cclimber, ckong, driver_device, 0, ROT270, "bootleg", "Bagman (bootleg on Crazy Kong hardware)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
+GAME( 1981, bagmanf, bagman, cclimber, ckong, driver_device, 0, ROT270, "bootleg", "Bagman (bootleg on Crazy Kong hardware)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
-GAME( 1981, rpatrol, 0, cclimber, rpatrol, driver_device, 0, ROT0, "Orca", "River Patrol (Orca)", GAME_SUPPORTS_SAVE )
-GAME( 1981, rpatrolb, rpatrol, cclimber, rpatrol, driver_device, 0, ROT0, "bootleg", "River Patrol (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1981, silvland, rpatrol, cclimber, rpatrol, driver_device, 0, ROT0, "Falcon", "Silver Land", GAME_SUPPORTS_SAVE )
+GAME( 1981, rpatrol, 0, cclimber, rpatrol, driver_device, 0, ROT0, "Orca", "River Patrol (Orca)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, rpatrolb, rpatrol, cclimber, rpatrol, driver_device, 0, ROT0, "bootleg", "River Patrol (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, silvland, rpatrol, cclimber, rpatrol, driver_device, 0, ROT0, "Falcon", "Silver Land", MACHINE_SUPPORTS_SAVE )
// see pacman.c for parent
-GAME( 1985, cannonb, cannonbp, cannonb, cannonb, cclimber_state, cannonb, ROT90, "bootleg (Soft)", "Cannon Ball (bootleg on Crazy Kong hardware) (set 1, buggy)" , GAME_IMPERFECT_GRAPHICS | GAME_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)", GAME_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)", GAME_SUPPORTS_SAVE ) // the bonus game is patched out, thus avoiding the protection issue
+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)", GAME_SUPPORTS_SAVE )
-GAME( 1982, swimmera, swimmer, swimmer, swimmer, driver_device, 0, ROT0, "Tehkan", "Swimmer (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1982, swimmerb, swimmer, swimmer, swimmerb, driver_device, 0, ROT0, "Tehkan", "Swimmer (set 3)", GAME_SUPPORTS_SAVE )
+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( 1983, guzzler, 0, guzzler, guzzler, driver_device, 0, ROT90, "Tehkan", "Guzzler", GAME_SUPPORTS_SAVE )
-GAME( 1983, guzzlers, guzzler, guzzler, guzzler, driver_device, 0, ROT90, "Tehkan", "Guzzler (Swimmer Conversion)", GAME_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, yamato, 0, yamato, yamato, cclimber_state, yamato, ROT90, "Sega", "Yamato (US)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1983, yamato2, yamato, yamato, yamato, cclimber_state, yamato, ROT90, "Sega", "Yamato (World?)", GAME_IMPERFECT_GRAPHICS | GAME_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", GAME_IMPERFECT_COLORS | GAME_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/mess/drivers/ccs2810.c b/src/mame/drivers/ccs2810.c
index 1121a6f2991..5a38e72d9d6 100644
--- a/src/mess/drivers/ccs2810.c
+++ b/src/mame/drivers/ccs2810.c
@@ -356,6 +356,7 @@ static MACHINE_CONFIG_START( ccs2422, ccs_state )
/* Devices */
MCFG_MB8877_ADD("fdc", XTAL_16MHz / 8) // UB1793 or MB8877
MCFG_FLOPPY_DRIVE_ADD("fdc:0", ccs_floppies, "8sssd", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
MACHINE_CONFIG_END
/* ROM definition */
@@ -377,5 +378,5 @@ 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", GAME_NO_SOUND_HW)
-COMP( 1980, ccs2422, ccs2810, 0, ccs2422, ccs2810, ccs_state, ccs2422, "California Computer Systems", "CCS Model 2422B FDC card", GAME_NOT_WORKING | GAME_NO_SOUND_HW)
+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/mess/drivers/ccs300.c b/src/mame/drivers/ccs300.c
index 10f11e975b5..a0842350bd2 100644
--- a/src/mess/drivers/ccs300.c
+++ b/src/mame/drivers/ccs300.c
@@ -139,4 +139,4 @@ ROM_END
/* Driver */
/* 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", GAME_IS_SKELETON )
+COMP( 19??, ccs300, ccs2810, 0, ccs300, ccs300, ccs300_state, ccs300, "California Computer Systems", "CCS Model 300", MACHINE_IS_SKELETON )
diff --git a/src/mess/drivers/cd2650.c b/src/mame/drivers/cd2650.c
index 2e2b8e0d895..2e2b8e0d895 100644
--- a/src/mess/drivers/cd2650.c
+++ b/src/mame/drivers/cd2650.c
diff --git a/src/mess/drivers/cdc721.c b/src/mame/drivers/cdc721.c
index e6f50cdaa47..0f89b5f2944 100644
--- a/src/mess/drivers/cdc721.c
+++ b/src/mame/drivers/cdc721.c
@@ -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", GAME_NOT_WORKING | GAME_NO_SOUND_HW )
+COMP( 1981, cdc721, 0, 0, cdc721, cdc721, driver_device, 0, "Control Data Corporation", "CDC721 Terminal", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW )
diff --git a/src/mame/drivers/cdi.c b/src/mame/drivers/cdi.c
index 6b928c15cdc..4ad4a26ea1f 100644
--- a/src/mame/drivers/cdi.c
+++ b/src/mame/drivers/cdi.c
@@ -6,7 +6,7 @@
Philips CD-I-based games
------------------------
- Preliminary MAME driver by Harmony
+ Preliminary MAME driver by Ryan Holtz
Help provided by CD-i Fan
@@ -632,23 +632,23 @@ ROM_END
*************************/
// BIOS / System
-CONS( 1991, cdimono1, 0, 0, cdimono1, cdi, driver_device, 0, "Philips", "CD-i (Mono-I) (PAL)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+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 )
// 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, cdi_base, quizard, driver_device, 0, ROT0, "Philips", "CD-i Bios", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_IS_BIOS_ROOT )
+GAME( 1995, cdibios, 0, cdi_base, quizard, driver_device, 0, ROT0, "Philips", "CD-i Bios", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IS_BIOS_ROOT )
-GAME( 1995, quizard, cdibios, quizard18, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard (v1.8)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION )
-GAME( 1995, quizard_17, quizard, quizard17, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard (v1.7)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION )
-GAME( 1995, quizard_12, quizard, quizard12, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard (v1.2)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION )
-GAME( 1995, quizard_10, quizard, quizard12, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard (v1.0)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION )
+GAME( 1995, quizard, cdibios, quizard18, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard (v1.8)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION )
+GAME( 1995, quizard_17, quizard, quizard17, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard (v1.7)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION )
+GAME( 1995, quizard_12, quizard, quizard12, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard (v1.2)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION )
+GAME( 1995, quizard_10, quizard, quizard12, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard (v1.0)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION )
-GAME( 1995, quizard2, cdibios, quizard23, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard 2 (v2.3)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION )
-GAME( 1995, quizard2_22, quizard2, quizard22, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard 2 (v2.2)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION )
+GAME( 1995, quizard2, cdibios, quizard23, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard 2 (v2.3)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION )
+GAME( 1995, quizard2_22, quizard2, quizard22, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard 2 (v2.2)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION )
-GAME( 1995, quizard3, cdibios, quizard3, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard 3 (v3.4)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION )
-GAME( 1996, quizard3_32, quizard3, quizard32, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard 3 (v3.2)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION )
+GAME( 1995, quizard3, cdibios, quizard3, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard 3 (v3.4)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION )
+GAME( 1996, quizard3_32, quizard3, quizard32, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard 3 (v3.2)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION )
-GAME( 1998, quizard4, cdibios, quizard4r42, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard 4 Rainbow (v4.2)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION ) // doesn't boot
-GAME( 1998, quizard4_41, quizard4, quizard4r41, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard 4 Rainbow (v4.1)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION )
-GAME( 1997, quizard4_40, quizard4, quizard4r40, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard 4 Rainbow (v4.0)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION )
+GAME( 1998, quizard4, cdibios, quizard4r42, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard 4 Rainbow (v4.2)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION ) // doesn't boot
+GAME( 1998, quizard4_41, quizard4, quizard4r41, 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, quizard4r40, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard 4 Rainbow (v4.0)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION )
diff --git a/src/mame/drivers/centiped.c b/src/mame/drivers/centiped.c
index b778720c6ac..e69467346a9 100644
--- a/src/mame/drivers/centiped.c
+++ b/src/mame/drivers/centiped.c
@@ -2187,23 +2187,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)", GAME_SUPPORTS_SAVE ) /* 1 Player Only with Timer Options */
-GAME( 1980, centiped3, centiped, centiped, centiped, driver_device, 0, ROT270, "Atari", "Centipede (revision 3)", GAME_SUPPORTS_SAVE )
-GAME( 1980, centiped2, centiped, centiped, centiped, driver_device, 0, ROT270, "Atari", "Centipede (revision 2)", GAME_SUPPORTS_SAVE )
-GAME( 1980, centiped1, centiped, centiped, centiped, driver_device, 0, ROT270, "Atari", "Centipede (revision 1)", GAME_SUPPORTS_SAVE )
-GAME( 1980, centipdb, centiped, centipdb, centiped, driver_device, 0, ROT270, "bootleg", "Centipede (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1989, centipdd, centiped, centiped, centiped, driver_device, 0, ROT270, "hack (Two-Bit Score)", "Centipede Dux (hack)", GAME_SUPPORTS_SAVE )
-GAME( 1980, caterplr, centiped, caterplr, caterplr, driver_device, 0, ROT270, "bootleg (Olympia)", "Caterpillar (bootleg of Centipede)", GAME_SUPPORTS_SAVE )
-GAME( 1980, millpac, centiped, centipdb, centiped, driver_device, 0, ROT270, "bootleg? (Valadon Automation)", "Millpac (bootleg of Centipede)", GAME_SUPPORTS_SAVE )
-GAME( 1980, magworm, centiped, magworm, magworm, driver_device, 0, ROT270, "bootleg (Sidam)", "Magic Worm (bootleg of Centipede, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1980, magworma, centiped, magworm, magworm, driver_device, 0, ROT270, "bootleg", "Magic Worm (bootleg of Centipede, set 2)", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
-GAME( 1982, milliped, 0, milliped, milliped, driver_device, 0, ROT270, "Atari", "Millipede", GAME_SUPPORTS_SAVE )
-GAME( 1989, millipdd, milliped, milliped, milliped, driver_device, 0, ROT270, "hack (Two-Bit Score)", "Millipede Dux (hack)", GAME_SUPPORTS_SAVE )
-GAME( 2002, multiped, 0, multiped, multiped, centiped_state, multiped, ROT270, "hack (Braze Technologies)", "Multipede (Centipede/Millipede multigame kit)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
+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( 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", GAME_SUPPORTS_SAVE )
+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 )
// other manufacturers
-GAME( 1985, bullsdrt, 0, bullsdrt, bullsdrt, centiped_state, bullsdrt, ROT270, "Shinkai Inc. (Magic Electronics Inc. license)", "Bulls Eye Darts", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
+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.c b/src/mame/drivers/cesclass.c
index 6619aa9752c..e1e9f7d3e79 100644
--- a/src/mame/drivers/cesclass.c
+++ b/src/mame/drivers/cesclass.c
@@ -298,6 +298,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)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND )
-GAME(1997, ccclass, 0, cesclassic, cesclassic, driver_device, 0, ROT0, "Creative Electronics And Software", "Country Club Classic (v1.10 03-apr-1997)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND )
-GAME(1997, tsclass, 0, cesclassic, cesclassic, driver_device, 0, ROT0, "Creative Electronics And Software", "Trap Shoot Classic (v1.0 21-mar-1997)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND )
+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 )
diff --git a/src/mess/drivers/cfx9850.c b/src/mame/drivers/cfx9850.c
index 7bf4d7b0edb..30ec1e78b4b 100644
--- a/src/mess/drivers/cfx9850.c
+++ b/src/mame/drivers/cfx9850.c
@@ -290,4 +290,4 @@ ROM_START( cfx9850 )
ROM_END
-COMP( 1996, cfx9850, 0, 0, cfx9850, cfx9850, driver_device, 0, "Casio", "CFX-9850G", GAME_NO_SOUND | GAME_NOT_WORKING )
+COMP( 1996, cfx9850, 0, 0, cfx9850, cfx9850, driver_device, 0, "Casio", "CFX-9850G", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/cgc7900.c b/src/mame/drivers/cgc7900.c
index ed30f5ac999..55123f9be74 100644
--- a/src/mess/drivers/cgc7900.c
+++ b/src/mame/drivers/cgc7900.c
@@ -445,4 +445,4 @@ ROM_END
***************************************************************************/
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 1980, cgc7900, 0, 0, cgc7900, cgc7900, driver_device, 0, "Chromatics", "CGC 7900", GAME_NOT_WORKING)
+COMP( 1980, cgc7900, 0, 0, cgc7900, cgc7900, driver_device, 0, "Chromatics", "CGC 7900", MACHINE_NOT_WORKING)
diff --git a/src/mess/drivers/cgenie.c b/src/mame/drivers/cgenie.c
index 3a5776814da..3a5776814da 100644
--- a/src/mess/drivers/cgenie.c
+++ b/src/mame/drivers/cgenie.c
diff --git a/src/mame/drivers/chaknpop.c b/src/mame/drivers/chaknpop.c
index 742b1df5516..f416ccc5fcd 100644
--- a/src/mame/drivers/chaknpop.c
+++ b/src/mame/drivers/chaknpop.c
@@ -418,4 +418,4 @@ 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", GAME_SUPPORTS_SAVE )
+GAME( 1983, chaknpop, 0, chaknpop, chaknpop, driver_device, 0, ROT0, "Taito Corporation", "Chack'n Pop", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/cham24.c b/src/mame/drivers/cham24.c
index 4638c07dc9f..189c54b6d31 100644
--- a/src/mame/drivers/cham24.c
+++ b/src/mame/drivers/cham24.c
@@ -378,4 +378,4 @@ ROM_START( cham24 )
ROM_LOAD( "24-3.u3", 0x0000, 0x10000, CRC(e97955fa) SHA1(6d686c5d0967c9c2f40dbd8e6a0c0907606f2c7d) ) // unknown rom
ROM_END
-GAME( 2002, cham24, 0, cham24, cham24, cham24_state, cham24, ROT0, "bootleg", "Chameleon 24", GAME_NOT_WORKING )
+GAME( 2002, cham24, 0, cham24, cham24, cham24_state, cham24, ROT0, "bootleg", "Chameleon 24", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/champbas.c b/src/mame/drivers/champbas.c
index 4329340173a..8aaad810c17 100644
--- a/src/mame/drivers/champbas.c
+++ b/src/mame/drivers/champbas.c
@@ -1255,19 +1255,19 @@ DRIVER_INIT_MEMBER(champbas_state,exctsccr)
*
*************************************/
-GAME( 1982, talbot, 0, talbot, talbot, driver_device, 0, ROT270, "Alpha Denshi Co. (Volt Electronics license)", "Talbot", GAME_SUPPORTS_SAVE )
-
-GAME( 1983, champbas, 0, champbas, champbas, champbas_state, champbas, ROT0, "Alpha Denshi Co. (Sega license)", "Champion Base Ball", GAME_SUPPORTS_SAVE )
-GAME( 1983, champbasj, champbas, champmcu, champbas, champbas_state, champbas, ROT0, "Alpha Denshi Co.", "Champion Base Ball (Japan set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1983, champbasja, champbas, champbas, champbas, champbas_state, champbas, ROT0, "Alpha Denshi Co.", "Champion Base Ball (Japan set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1983, champbb2, 0, champmcu, champbas, champbas_state, champbas, ROT0, "Alpha Denshi Co. (Sega license)", "Champion Base Ball Part-2: Pair Play (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1983, champbb2a, champbb2, champmcu, champbas, champbas_state, champbas, ROT0, "Alpha Denshi Co.", "Champion Baseball II (set 2)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // no dump
-GAME( 1983, champbb2j, champbb2, champmcu, champbas, champbas_state, champbas, ROT0, "Alpha Denshi Co.", "Champion Baseball II (Japan)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-
-GAME( 1983, exctsccr, 0, exctsccr, exctsccr, champbas_state, exctsccr, ROT270, "Alpha Denshi Co.", "Exciting Soccer", GAME_SUPPORTS_SAVE )
-GAME( 1983, exctsccru, exctsccr, exctsccr, exctsccr, champbas_state, exctsccr, ROT270, "Alpha Denshi Co.", "Exciting Soccer (US)", GAME_SUPPORTS_SAVE )
-GAME( 1983, exctsccra, exctsccr, exctsccr, exctsccr, champbas_state, exctsccr, ROT270, "Alpha Denshi Co.", "Exciting Soccer (alternate music)", GAME_SUPPORTS_SAVE )
-GAME( 1983, exctsccrj, exctsccr, exctsccr, exctsccr, champbas_state, exctsccr, ROT270, "Alpha Denshi Co.", "Exciting Soccer (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1983, exctsccrjo, exctsccr, exctsccr, exctsccr, champbas_state, exctsccr, ROT270, "Alpha Denshi Co.", "Exciting Soccer (Japan, older)", GAME_SUPPORTS_SAVE )
-GAME( 1983, exctsccrb, exctsccr, exctsccrb,exctsccr, champbas_state, exctsccr, ROT270, "bootleg", "Exciting Soccer (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1984, exctscc2, 0, exctsccr, exctsccr, champbas_state, exctsccr, ROT270, "Alpha Denshi Co.", "Exciting Soccer II", GAME_SUPPORTS_SAVE )
+GAME( 1982, talbot, 0, talbot, talbot, driver_device, 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 )
+GAME( 1983, champbasj, champbas, champmcu, champbas, champbas_state, champbas, ROT0, "Alpha Denshi Co.", "Champion Base Ball (Japan set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, champbasja, champbas, champbas, champbas, champbas_state, champbas, ROT0, "Alpha Denshi Co.", "Champion Base Ball (Japan set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, champbb2, 0, champmcu, champbas, champbas_state, champbas, ROT0, "Alpha Denshi Co. (Sega license)", "Champion Base Ball Part-2: Pair Play (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, champbb2a, champbb2, champmcu, champbas, champbas_state, champbas, ROT0, "Alpha Denshi Co.", "Champion Baseball II (set 2)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // no dump
+GAME( 1983, champbb2j, champbb2, champmcu, champbas, champbas_state, champbas, ROT0, "Alpha Denshi Co.", "Champion Baseball II (Japan)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+
+GAME( 1983, exctsccr, 0, exctsccr, exctsccr, champbas_state, exctsccr, ROT270, "Alpha Denshi Co.", "Exciting Soccer", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, exctsccru, exctsccr, exctsccr, exctsccr, champbas_state, exctsccr, ROT270, "Alpha Denshi Co.", "Exciting Soccer (US)", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, exctsccra, exctsccr, exctsccr, exctsccr, champbas_state, exctsccr, ROT270, "Alpha Denshi Co.", "Exciting Soccer (alternate music)", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, exctsccrj, exctsccr, exctsccr, exctsccr, champbas_state, exctsccr, ROT270, "Alpha Denshi Co.", "Exciting Soccer (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, exctsccrjo, exctsccr, exctsccr, exctsccr, champbas_state, exctsccr, ROT270, "Alpha Denshi Co.", "Exciting Soccer (Japan, older)", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, exctsccrb, exctsccr, exctsccrb,exctsccr, champbas_state, exctsccr, ROT270, "bootleg", "Exciting Soccer (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, exctscc2, 0, exctsccr, exctsccr, champbas_state, exctsccr, ROT270, "Alpha Denshi Co.", "Exciting Soccer II", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/champbwl.c b/src/mame/drivers/champbwl.c
index 6fb8799de32..709cd463600 100644
--- a/src/mame/drivers/champbwl.c
+++ b/src/mame/drivers/champbwl.c
@@ -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)", GAME_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", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/chanbara.c b/src/mame/drivers/chanbara.c
index 0c81b40e41b..238936a82a0 100644
--- a/src/mame/drivers/chanbara.c
+++ b/src/mame/drivers/chanbara.c
@@ -150,6 +150,7 @@ TILE_GET_INFO_MEMBER(chanbara_state::get_bg_tile_info)
{
int code = m_videoram[tile_index] + ((m_colorram[tile_index] & 1) << 8);
int color = (m_colorram[tile_index] >> 1) & 0x1f;
+ //int flipy = (m_colorram[tile_index]) & 0x01; // not on this layer (although bit is used)
SET_TILE_INFO_MEMBER(0, code, color, 0);
}
@@ -158,8 +159,9 @@ TILE_GET_INFO_MEMBER(chanbara_state::get_bg2_tile_info)
{
int code = m_videoram2[tile_index];
int color = (m_colorram2[tile_index] >> 1) & 0x1f;
+ int flipy = (m_colorram2[tile_index]) & 0x01;
- SET_TILE_INFO_MEMBER(2, code, color, 0);
+ SET_TILE_INFO_MEMBER(2, code, color, TILE_FLIPXY(flipy));
}
void chanbara_state::video_start()
@@ -343,7 +345,7 @@ static const gfx_layout spritelayout =
static GFXDECODE_START( chanbara )
GFXDECODE_ENTRY( "gfx1", 0x00000, tilelayout, 0x40, 32 )
- GFXDECODE_ENTRY( "gfx2", 0x00000, spritelayout, 0x80, 16 )
+ GFXDECODE_ENTRY( "sprites", 0x00000, spritelayout, 0x80, 16 )
GFXDECODE_ENTRY( "gfx3", 0x00000, tile16layout, 0, 32 )
GFXDECODE_END
@@ -437,18 +439,18 @@ ROM_START( chanbara )
ROM_REGION( 0x08000, "gfx4", 0 )
ROM_LOAD( "cp14.13h", 0x00000, 0x2000, CRC(d31db368) SHA1(b62834137bfe4ac2013d2d16b0ead10bf2a2df83) )
- ROM_REGION( 0x24000, "gfx2", 0 )
- ROM_LOAD( "cp03.12c", 0x08000, 0x4000, CRC(dea247fb) SHA1(d54fa30813613ef6c3b5f86b563e9ab618a9f627))
- ROM_LOAD( "cp04.10c", 0x04000, 0x4000, CRC(f7dce87b) SHA1(129ae41d70d96720e020ec1bc1d3f2d9e87ebf47) )
+ ROM_REGION( 0x30000, "sprites", ROMREGION_ERASE00 )
ROM_LOAD( "cp05.9c", 0x00000, 0x4000, CRC(df2dc3cb) SHA1(3505042c91566bb09fcd2102fecbe2034551b8eb) )
+ ROM_LOAD( "cp04.10c", 0x04000, 0x4000, CRC(f7dce87b) SHA1(129ae41d70d96720e020ec1bc1d3f2d9e87ebf47) )
+ ROM_LOAD( "cp03.12c", 0x08000, 0x4000, CRC(dea247fb) SHA1(d54fa30813613ef6c3b5f86b563e9ab618a9f627))
- ROM_LOAD( "cp06.7c", 0x14000, 0x4000, CRC(2f337c08) SHA1(657ee6776780fa0a979a278ff27a49b459232cad) )
- ROM_LOAD( "cp07.6c", 0x10000, 0x4000, CRC(0e3727f2) SHA1(d177651bc20a56f5651ae5ce6f3d3ff7ad0e2053) )
- ROM_LOAD( "cp08.5c", 0x0c000, 0x4000, CRC(4cf35192) SHA1(1891dcc412caf72ba5a2ea56c1cab35cb3ae6123) )
+ ROM_LOAD( "cp08.5c", 0x10000, 0x4000, CRC(4cf35192) SHA1(1891dcc412caf72ba5a2ea56c1cab35cb3ae6123) )
+ ROM_LOAD( "cp07.6c", 0x14000, 0x4000, CRC(0e3727f2) SHA1(d177651bc20a56f5651ae5ce6f3d3ff7ad0e2053) )
+ ROM_LOAD( "cp06.7c", 0x18000, 0x4000, CRC(2f337c08) SHA1(657ee6776780fa0a979a278ff27a49b459232cad) )
- ROM_LOAD( "cp09.4c", 0x20000, 0x4000, CRC(3f58b647) SHA1(4eb212667aedd7c397a4911ac7f1b542c5c0a70d) )
- ROM_LOAD( "cp10.2c", 0x1c000, 0x4000, CRC(bfa324c0) SHA1(c7ff09bb5f1dd2d3707970fae1fd60b6004250c0) )
- ROM_LOAD( "cp11.1c", 0x18000, 0x4000, CRC(33e6160a) SHA1(b0171b554825072eebe935d12a6085d158b87bdc) )
+ ROM_LOAD( "cp11.1c", 0x20000, 0x4000, CRC(33e6160a) SHA1(b0171b554825072eebe935d12a6085d158b87bdc) )
+ ROM_LOAD( "cp10.2c", 0x24000, 0x4000, CRC(bfa324c0) SHA1(c7ff09bb5f1dd2d3707970fae1fd60b6004250c0) )
+ ROM_LOAD( "cp09.4c", 0x28000, 0x4000, CRC(3f58b647) SHA1(4eb212667aedd7c397a4911ac7f1b542c5c0a70d) )
ROM_REGION( 0x0300, "proms", 0 )
ROM_LOAD( "cp17.4k", 0x0000, 0x0100, CRC(cf03706e) SHA1(2dd2b29067f418ec590c56a38cc64d09d8dc8e09) ) /* red */
@@ -475,4 +477,4 @@ DRIVER_INIT_MEMBER(chanbara_state,chanbara)
membank("bank1")->configure_entries(0, 2, &bg[0x0000], 0x4000);
}
-GAME( 1985, chanbara, 0, chanbara, chanbara, chanbara_state, chanbara, ROT270, "Data East", "Chanbara", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
+GAME( 1985, chanbara, 0, chanbara, chanbara, chanbara_state, chanbara, ROT270, "Data East", "Chanbara", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
diff --git a/src/mame/drivers/changela.c b/src/mame/drivers/changela.c
index 206390febf0..4c9cb8909ca 100644
--- a/src/mame/drivers/changela.c
+++ b/src/mame/drivers/changela.c
@@ -543,4 +543,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", GAME_SUPPORTS_SAVE, layout_changela )
+GAMEL( 1983, changela, 0, changela, changela, driver_device, 0, ROT180, "Taito Corporation", "Change Lanes", MACHINE_SUPPORTS_SAVE, layout_changela )
diff --git a/src/mess/drivers/channelf.c b/src/mame/drivers/channelf.c
index 65cff8a5a96..65cff8a5a96 100644
--- a/src/mess/drivers/channelf.c
+++ b/src/mame/drivers/channelf.c
diff --git a/src/mess/drivers/chaos.c b/src/mame/drivers/chaos.c
index 6d8676f9982..7c0c72ae3ac 100644
--- a/src/mess/drivers/chaos.c
+++ b/src/mame/drivers/chaos.c
@@ -161,4 +161,4 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 1983, chaos, 0, 0, chaos, chaos, driver_device, 0, "<unknown>", "Chaos 2", GAME_NO_SOUND_HW )
+COMP( 1983, chaos, 0, 0, chaos, chaos, driver_device, 0, "<unknown>", "Chaos 2", MACHINE_NO_SOUND_HW )
diff --git a/src/mame/drivers/cheekyms.c b/src/mame/drivers/cheekyms.c
index 6b155075488..8935f8d20d3 100644
--- a/src/mame/drivers/cheekyms.c
+++ b/src/mame/drivers/cheekyms.c
@@ -180,4 +180,4 @@ ROM_END
-GAME( 1980, cheekyms, 0, cheekyms, cheekyms, driver_device, 0, ROT270, "Universal", "Cheeky Mouse", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1980, cheekyms, 0, cheekyms, cheekyms, driver_device, 0, ROT270, "Universal", "Cheeky Mouse", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/chessmst.c b/src/mame/drivers/chessmst.c
index 4e0e3a00574..765fd3078bb 100644
--- a/src/mess/drivers/chessmst.c
+++ b/src/mame/drivers/chessmst.c
@@ -283,4 +283,4 @@ 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", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK )
+COMP( 1984, chessmst, 0, 0, chessmst, chessmst, driver_device, 0, "VEB Mikroelektronik Erfurt", "Chess-Master", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK )
diff --git a/src/mess/drivers/chesstrv.c b/src/mame/drivers/chesstrv.c
index 2e2ce32ff84..bd79872d15a 100644
--- a/src/mess/drivers/chesstrv.c
+++ b/src/mame/drivers/chesstrv.c
@@ -252,5 +252,5 @@ ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
-CONS( 1980, chesstrv, 0, 0, chesstrv, chesstrv, driver_device, 0, "Acetronic", "Chess Traveller", GAME_NOT_WORKING | GAME_NO_SOUND_HW | GAME_SUPPORTS_SAVE )
-CONS( 1979, borisdpl, 0, 0, borisdpl, borisdpl, driver_device, 0, "Applied Concepts", "Boris Diplomat", GAME_NOT_WORKING | GAME_NO_SOUND_HW | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/chexx.c b/src/mame/drivers/chexx.c
new file mode 100644
index 00000000000..1c2f93d8d26
--- /dev/null
+++ b/src/mame/drivers/chexx.c
@@ -0,0 +1,420 @@
+// license:BSD-3-Clause
+// copyright-holders:Luca Elia
+/***************************************************************************
+
+Electro-mechanical bubble hockey games:
+
+- Chexx (1983 version) by ICE
+ http://www.pinrepair.com/arcade/chexx.htm
+
+- Face-Off, an illegal? copy of Chexx
+ http://valker.us/gameroom/SegaFaceOff.htm
+ https://casetext.com/case/innovative-concepts-in-ent-v-entertainment-enter
+
+(Some sources indicate these may have been copied from a earlier Sega game called Face-Off)
+
+***************************************************************************/
+
+#include "emu.h"
+#include "cpu/m6502/m6502.h"
+#include "sound/ay8910.h"
+#include "sound/digitalk.h"
+#include "machine/6522via.h"
+#include "chexx.lh"
+
+#define MAIN_CLOCK XTAL_4MHz
+
+class chexx_state : public driver_device
+{
+public:
+ chexx_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
+ m_via(*this, "via6522"),
+ m_digitalker(*this, "digitalker"),
+ m_aysnd(*this, "aysnd")
+ {
+ }
+
+ // devices
+ required_device<cpu_device> m_maincpu;
+ required_device<via6522_device> m_via;
+ required_device<digitalker_device> m_digitalker;
+ optional_device<ay8910_device> m_aysnd; // only faceoffh
+
+ // vars
+ UINT8 m_port_a, m_port_b;
+ UINT8 m_bank;
+ UINT32 m_shift;
+ UINT8 m_lamp;
+ UINT8 m_ay_cmd, m_ay_data;
+
+ // callbacks
+ TIMER_DEVICE_CALLBACK_MEMBER(update);
+
+ // handlers
+ DECLARE_READ8_MEMBER(via_a_in);
+ DECLARE_READ8_MEMBER(via_b_in);
+
+ DECLARE_WRITE8_MEMBER(via_a_out);
+ DECLARE_WRITE8_MEMBER(via_b_out);
+
+ DECLARE_WRITE_LINE_MEMBER(via_ca2_out);
+ DECLARE_WRITE_LINE_MEMBER(via_cb1_out);
+ DECLARE_WRITE_LINE_MEMBER(via_cb2_out);
+ DECLARE_WRITE_LINE_MEMBER(via_irq_out);
+
+ DECLARE_READ8_MEMBER(input_r);
+
+ DECLARE_WRITE8_MEMBER(ay_w);
+ DECLARE_WRITE8_MEMBER(lamp_w);
+
+ // digitalker
+ void digitalker_set_bank(UINT8 bank);
+
+ // driver_device overrides
+ virtual void machine_start();
+ virtual void machine_reset();
+};
+
+
+// VIA
+
+READ8_MEMBER(chexx_state::via_a_in)
+{
+ UINT8 ret = 0;
+ logerror("%s: VIA read A: %02X\n", machine().describe_context(), ret);
+ return ret;
+}
+READ8_MEMBER(chexx_state::via_b_in)
+{
+ UINT8 ret = 0;
+ logerror("%s: VIA read B: %02X\n", machine().describe_context(), ret);
+ return ret;
+}
+
+WRITE8_MEMBER(chexx_state::via_a_out)
+{
+ m_port_a = data; // multiplexer
+
+ m_digitalker->digitalker_data_w(space, 0, data, 0);
+
+// logerror("%s: VIA write A = %02X\n", machine().describe_context(), data);
+}
+WRITE8_MEMBER(chexx_state::via_b_out)
+{
+ m_port_b = data;
+
+ digitalker_set_bank(data & 3);
+ m_digitalker->set_output_gain(0, BIT(data,2) ? 1.0f : 0.0f); // bit 2 controls the Digitalker output
+ coin_counter_w(machine(), 0, BIT(~data,3));
+ // bit 4 is EJECT
+ // bit 7 is related to speaker out
+
+// logerror("%s: VIA write B = %02X\n", machine().describe_context(), data);
+}
+
+WRITE_LINE_MEMBER(chexx_state::via_ca2_out)
+{
+ m_digitalker->digitalker_0_cms_w(CLEAR_LINE);
+ m_digitalker->digitalker_0_cs_w(CLEAR_LINE);
+ m_digitalker->digitalker_0_wr_w(state ? ASSERT_LINE : CLEAR_LINE);
+
+// logerror("%s: VIA write CA2 = %02X\n", machine().describe_context(), state);
+}
+WRITE_LINE_MEMBER(chexx_state::via_cb1_out)
+{
+// logerror("%s: VIA write CB1 = %02X\n", machine().describe_context(), state);
+}
+WRITE_LINE_MEMBER(chexx_state::via_cb2_out)
+{
+ m_shift = ((m_shift << 1) & 0xffffff) | state;
+
+ // 7segs (score)
+ static const UINT8 patterns[16] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7c, 0x07, 0x7f, 0x67, 0, 0, 0, 0, 0, 0 }; // 4511
+
+ output_set_digit_value(0, patterns[(m_shift >> (16+4)) & 0xf]);
+ output_set_digit_value(1, patterns[(m_shift >> (16+0)) & 0xf]);
+
+ output_set_digit_value(2, patterns[(m_shift >> (8+4)) & 0xf]);
+ output_set_digit_value(3, patterns[(m_shift >> (8+0)) & 0xf]);
+
+ // Leds (period being played)
+ output_set_led_value(0, BIT(m_shift,2));
+ output_set_led_value(1, BIT(m_shift,1));
+ output_set_led_value(2, BIT(m_shift,0));
+
+// logerror("%s: VIA write CB2 = %02X\n", machine().describe_context(), state);
+}
+WRITE_LINE_MEMBER(chexx_state::via_irq_out)
+{
+ m_maincpu->set_input_line(INPUT_LINE_IRQ0, state ? ASSERT_LINE : CLEAR_LINE);
+// logerror("%s: VIA write IRQ = %02X\n", machine().describe_context(), state);
+}
+
+READ8_MEMBER(chexx_state::input_r)
+{
+ UINT8 ret = ioport("DSW")->read(); // bits 0-3
+ UINT8 inp = ioport("INPUT")->read(); // bit 7 (multiplexed)
+
+ for (int i = 0; i < 8; ++i)
+ if ( ((~m_port_a) & (1 << i)) && ((~inp) & (1 << i)) )
+ ret &= 0x7f;
+
+ return ret;
+}
+
+// Chexx Memory Map
+
+static ADDRESS_MAP_START( chexx83_map, AS_PROGRAM, 8, chexx_state )
+ AM_RANGE(0x0000, 0x007f) AM_RAM AM_MIRROR(0x100) // 6810 - 128 x 8 static RAM
+ AM_RANGE(0x4000, 0x400f) AM_DEVREADWRITE("via6522", via6522_device, read, write)
+ AM_RANGE(0x8000, 0x8000) AM_READ(input_r)
+ AM_RANGE(0xf800, 0xffff) AM_ROM AM_REGION("maincpu", 0)
+ADDRESS_MAP_END
+
+// Face-Off Memory Map
+
+WRITE8_MEMBER(chexx_state::lamp_w)
+{
+ m_lamp = data;
+ output_set_lamp_value(0, BIT(m_lamp,0));
+ output_set_lamp_value(1, BIT(m_lamp,1));
+}
+
+WRITE8_MEMBER(chexx_state::ay_w)
+{
+ if (offset)
+ {
+ m_ay_data = data;
+ return;
+ }
+
+ if (m_ay_cmd == 0x00 && data == 0x03)
+ {
+ m_aysnd->address_w(space, offset, m_ay_data, mem_mask);
+// logerror("%s: AY addr = %02X\n", machine().describe_context(), m_ay_data);
+ }
+ else if (m_ay_cmd == 0x00 && data == 0x02)
+ {
+ m_aysnd->data_w(space, offset, m_ay_data, mem_mask);
+// logerror("%s: AY data = %02X\n", machine().describe_context(), m_ay_data);
+ }
+ m_ay_cmd = data;
+}
+
+static ADDRESS_MAP_START( faceoffh_map, AS_PROGRAM, 8, chexx_state )
+ AM_RANGE(0x0000, 0x007f) AM_RAM AM_MIRROR(0x100) // M58725P - 2KB
+ AM_RANGE(0x4000, 0x400f) AM_DEVREADWRITE("via6522", via6522_device, read, write)
+ AM_RANGE(0x8000, 0x8000) AM_READ(input_r)
+ AM_RANGE(0xa000, 0xa001) AM_WRITE(ay_w)
+ AM_RANGE(0xc000, 0xc000) AM_WRITE(lamp_w)
+ AM_RANGE(0xf000, 0xffff) AM_ROM AM_REGION("maincpu", 0)
+ADDRESS_MAP_END
+
+// Inputs
+
+static INPUT_PORTS_START( chexx83 )
+ PORT_START("COIN")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(1) // play anthem
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(1) // play anthem
+
+ PORT_START("INPUT")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("P1 Goal Sensor")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 ) PORT_NAME("P2 Goal Sensor")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START3 ) PORT_NAME("Puck Near Goal Sensors") // play "ohh" sample
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Boo Button") // stop anthem, play "boo" sample, eject puck
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P2 Boo Button") // stop anthem, play "boo" sample, eject puck
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Puck Eject Ready Sensor")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("DSW")
+ PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:1,2")
+ PORT_DIPSETTING( 0x03, DEF_STR( 4C_1C ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
+ PORT_DIPNAME( 0x0c, 0x00, "Game Duration (mins)" ) PORT_DIPLOCATION("SW1:3,4")
+ PORT_DIPSETTING( 0x00, "2" ) // 40
+ PORT_DIPSETTING( 0x04, "3" ) // 60
+ PORT_DIPSETTING( 0x08, "4" ) // 80
+ PORT_DIPSETTING( 0x0c, "5" ) // 100
+ PORT_BIT( 0x70, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) // multiplexed inputs
+INPUT_PORTS_END
+
+// Machine
+
+void chexx_state::machine_start()
+{
+}
+
+void chexx_state::digitalker_set_bank(UINT8 bank)
+{
+ if (m_bank != bank)
+ {
+ UINT8 *src = memregion("samples")->base();
+ UINT8 *dst = memregion("digitalker")->base();
+
+ memcpy(dst, src + bank * 0x4000, 0x4000);
+
+ m_bank = bank;
+ }
+}
+
+void chexx_state::machine_reset()
+{
+ m_bank = -1;
+ digitalker_set_bank(0);
+}
+
+TIMER_DEVICE_CALLBACK_MEMBER(chexx_state::update)
+{
+ // NMI on coin-in
+ UINT8 coin = (~ioport("COIN")->read()) & 0x03;
+ m_maincpu->set_input_line(INPUT_LINE_NMI, coin ? ASSERT_LINE : CLEAR_LINE);
+
+ // VIA CA1 connected to Digitalker INTR line
+ m_via->write_ca1(m_digitalker->digitalker_0_intr_r());
+
+#if 0
+ // Play the digitalker samples (it's not hooked up correctly yet)
+ static UINT8 sample = 0, bank = 0;
+
+ if (machine().input().code_pressed_once(KEYCODE_Q))
+ --bank;
+ if (machine().input().code_pressed_once(KEYCODE_W))
+ ++bank;
+ bank %= 3;
+ digitalker_set_bank(bank);
+
+ if (machine().input().code_pressed_once(KEYCODE_A))
+ --sample;
+ if (machine().input().code_pressed_once(KEYCODE_S))
+ ++sample;
+
+ if (machine().input().code_pressed_once(KEYCODE_Z))
+ {
+ m_digitalker->digitalker_0_cms_w(CLEAR_LINE);
+ m_digitalker->digitalker_0_cs_w(CLEAR_LINE);
+
+ address_space &space = m_maincpu->space(AS_PROGRAM);
+ m_digitalker->digitalker_data_w(space, 0, sample, 0);
+
+ m_digitalker->digitalker_0_wr_w(ASSERT_LINE);
+ m_digitalker->digitalker_0_wr_w(CLEAR_LINE);
+ m_digitalker->digitalker_0_wr_w(ASSERT_LINE);
+ }
+#endif
+}
+
+static MACHINE_CONFIG_START( chexx83, chexx_state )
+
+ // basic machine hardware
+ MCFG_CPU_ADD("maincpu", M6502, MAIN_CLOCK/2)
+ MCFG_CPU_PROGRAM_MAP(chexx83_map)
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("update", chexx_state, update, attotime::from_hz(60))
+
+ // via
+ MCFG_DEVICE_ADD("via6522", VIA6522, MAIN_CLOCK/4)
+
+ MCFG_VIA6522_READPA_HANDLER(READ8(chexx_state, via_a_in))
+ MCFG_VIA6522_READPB_HANDLER(READ8(chexx_state, via_b_in))
+
+ MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(chexx_state, via_a_out))
+ MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(chexx_state, via_b_out))
+
+ MCFG_VIA6522_CA2_HANDLER(WRITELINE(chexx_state, via_ca2_out))
+ MCFG_VIA6522_CB1_HANDLER(WRITELINE(chexx_state, via_cb1_out))
+ MCFG_VIA6522_CB2_HANDLER(WRITELINE(chexx_state, via_cb2_out))
+ MCFG_VIA6522_IRQ_HANDLER(WRITELINE(chexx_state, via_irq_out))
+
+ // Layout
+ MCFG_DEFAULT_LAYOUT(layout_chexx)
+
+ // sound hardware
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_DIGITALKER_ADD("digitalker", MAIN_CLOCK)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.16)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( faceoffh, chexx83 )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(faceoffh_map)
+
+ MCFG_SOUND_ADD("aysnd", AY8910, MAIN_CLOCK/2)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
+MACHINE_CONFIG_END
+
+// ROMs
+
+/***************************************************************************
+
+Chexx Hockey (1983 version 1.1)
+
+The "long and skinny" Moog CPU board used a 6502 for the processor,
+a 6522 for the PIA, a 6810 static RAM, eight 52164 64k bit sound ROM chips,
+a 40 pin 54104 sound chip, and a single 2716 CPU EPROM
+
+***************************************************************************/
+
+ROM_START( chexx83 )
+ ROM_REGION( 0x0800, "maincpu", 0 )
+ ROM_LOAD( "chexx83.u4", 0x0000, 0x0800, CRC(a34abac1) SHA1(75a31670eb6d1b62ba984f0bac7c6e6067f6ae87) )
+
+ ROM_REGION( 0x4000, "digitalker", ROMREGION_ERASE00 )
+ // bank switched (from samples region)
+
+ ROM_REGION( 0x10000, "samples", ROMREGION_ERASE00 )
+ ROM_LOAD( "chexx83.u12", 0x0000, 0x2000, NO_DUMP )
+ ROM_LOAD( "chexx83.u13", 0x2000, 0x2000, NO_DUMP )
+ ROM_LOAD( "chexx83.u14", 0x4000, 0x2000, NO_DUMP )
+ ROM_LOAD( "chexx83.u15", 0x6000, 0x2000, NO_DUMP )
+ ROM_LOAD( "chexx83.u16", 0x8000, 0x2000, NO_DUMP )
+ ROM_LOAD( "chexx83.u17", 0xa000, 0x2000, NO_DUMP )
+ ROM_LOAD( "chexx83.u18", 0xc000, 0x2000, NO_DUMP )
+ ROM_LOAD( "chexx83.u19", 0xe000, 0x2000, NO_DUMP )
+ROM_END
+
+/***************************************************************************
+
+Face-Off PCB?
+
+Entertainment Enterprises Ltd. 1983 (sticker)
+Serial No. 025402 (sticker)
+MADE IN JAPAN (etched)
+
+CPU: R6502P
+RAM: M58725P (2KB)
+I/O: R6522P (VIA)
+Samples: Digitalker (MM54104)
+Music: AY-3-8910
+Misc: XTAL 4MHz, DSW4, 42-pin connector
+
+***************************************************************************/
+
+ROM_START( faceoffh )
+ ROM_REGION( 0x1000, "maincpu", 0 )
+ // "Copyright (c) 1983 SoftLogic JAPAN"
+ ROM_LOAD( "1.5d", 0x0000, 0x1000, CRC(6ab050be) SHA1(ebecae855e22e9c3c46bdee51f84fd5352bf191a) )
+
+ ROM_REGION( 0x4000, "digitalker", ROMREGION_ERASE00 )
+ // bank switched (from samples region)
+
+ ROM_REGION( 0x10000, "samples", 0 )
+ ROM_LOAD( "9.2a", 0x0000, 0x2000, CRC(059b3725) SHA1(5837bee1ef34ce19a3101b851ca55029776e4b3e) ) // digitalker header
+ ROM_LOAD( "8.2b", 0x2000, 0x2000, CRC(679da4e1) SHA1(01a5b9dd132c1b0de97c153d7de226f5bf357338) )
+
+ ROM_LOAD( "7.2c", 0x4000, 0x2000, CRC(f8461b33) SHA1(717a8842e0ce9ba94dd59504a324bede4844e389) ) // digitalker header
+ ROM_LOAD( "6.2d", 0x6000, 0x2000, CRC(156c91e0) SHA1(6017d4b5609b214a6e66dcd76493a7d1442c04d4) )
+
+ ROM_LOAD( "5.3a", 0x8000, 0x2000, CRC(19904604) SHA1(633c211a9a822cdf597a6f3c221ae9c8d6482e82) ) // digitalker header
+ ROM_LOAD( "4.3b", 0xa000, 0x2000, CRC(c3386d51) SHA1(7882e88db55ba914be81075e4b2d76e246c34d3b) )
+
+ ROM_FILL( 0xc000, 0x2000, 0xff ) // unpopulated
+ 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 )
diff --git a/src/mame/drivers/chicago.c b/src/mame/drivers/chicago.c
index 9c99e15ea7f..a15b07fdb0c 100644
--- a/src/mame/drivers/chicago.c
+++ b/src/mame/drivers/chicago.c
@@ -6,15 +6,15 @@
Game Name Model #
-----------------------------------------
- Demolition Derby (1976) #466
- Super Flipper (1975) #458
- Olympic TV Football (1973) #429-A
- Olympic TV Hockey (1973) #429
- TV Goalee (1973) #414
TV Ping Pong (1973) #424
- TV Pin Game (1975) #451
TV Tennis (1973) #427
-
+ Olympic TV Hockey (1973) #429
+ Olympic TV Football (1973) #429-A
+ TV Goalee (1974) #434
+ TV Pingame (1975) #451
+ Super Flipper (1975) #458
+ Demolition Derby (1976) #466
+
***************************************************************************/
@@ -115,7 +115,7 @@ MACHINE_CONFIG_END
***************************************************************************/
-ROM_START( destdrby )
+ROM_START( dmodrbcc )
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
ROM_REGION( 0x0400, "roms", ROMREGION_ERASE00 )
@@ -138,4 +138,4 @@ ROM_START( destdrby )
ROM_END
-GAME( 1976, destdrby, 0, chicago, 0, driver_device, 0, ROT0, "Chicago Coin", "Destruction Derby [TTL]", GAME_IS_SKELETON )
+GAME( 1976, dmodrbcc, 0, chicago, 0, driver_device, 0, ROT0, "Chicago Coin", "Demolition Derby [TTL]", MACHINE_IS_SKELETON )
diff --git a/src/mame/drivers/chihiro.c b/src/mame/drivers/chihiro.c
index cc9fe4c26b6..3fd14bec79e 100644
--- a/src/mame/drivers/chihiro.c
+++ b/src/mame/drivers/chihiro.c
@@ -15,7 +15,7 @@ Games on this system include....
|*| 2003 | Virtua Cop 3 (Rev A) | Sega | GDROM | GDX-0003A | 317-0354-COM |
| | 2003 | OutRun 2 | Sega | GDROM | GDX-0004 | 317-0372-COM |
|*| 2003 | OutRun 2 (Rev A) | Sega | GDROM | GDX-0004A | 317-0372-COM |
-| | 2003 | OutRun 2 prototype (Rev P ) | Sega | GDROM | GDX-0004P | |
+| | 2003 | OutRun 2 prototype (Rev P) | Sega | GDROM | GDX-0004P | |
| | 2004 | Sega Golf Club Network Pro Tour | Sega | GDROM | GDX-0005 | |
| | 2004 | Sega Network Taisen Mahjong MJ 2 | Sega | GDROM | GDX-0006 | |
| | 2004 | Sega Network Taisen Mahjong MJ 2 (Rev A) | Sega | GDROM | GDX-0006A | |
@@ -40,7 +40,7 @@ Games on this system include....
|*| 2004 | OutRun 2 Special Tours (Rev A) | Sega | GDROM | GDX-0014A | 317-0xxx-COM |
|*| 2005 | Wangan Midnight Maximum Tune 2 (Japan) | Namco | GDROM | GDX-0015 | 317-5106-JPN |
| | 2005 | Wangan Midnight Maximum Tune 2 (Export) | Namco | GDROM | GDX-0016 | 317-5106-COM |
-|*| 2005 | Wangan Midnight Maximum Tune 2 (Export) | Namco | GDROM | GDX-0016A | 317-5106-COM |
+|*| 2005 | Wangan Midnight Maximum Tune 2 (Export) (Rev A) | Namco | GDROM | GDX-0016A | 317-5106-COM |
| | 2005 | Sega Network Taisen Mahjong MJ 3 | Sega | GDROM | GDX-0017 | 317-0414-JPN |
| | 2005 | Sega Network Taisen Mahjong MJ 3 (Rev A) | Sega | GDROM | GDX-0017A | 317-0414-JPN |
| | 2005 | Sega Network Taisen Mahjong MJ 3 (Rev B) | Sega | GDROM | GDX-0017B | 317-0414-JPN |
@@ -376,339 +376,50 @@ Thanks to Alex, Mr Mudkips, and Philip Burke for this info.
#include "debug/debugcmd.h"
#include "debug/debugcpu.h"
#include "includes/chihiro.h"
+#include "includes/xbox.h"
+
+// for now, make buggy GCC/Mingw STFU about I64FMT
+#if (defined(__MINGW32__) && (__GNUC__ >= 5))
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wformat"
+#pragma GCC diagnostic ignored "-Wformat-extra-args"
+#endif
#define LOG_PCI
-//#define LOG_OHCI
//#define LOG_BASEBOARD
-//#define USB_ENABLED
-
-struct OHCIEndpointDescriptor {
- int mps; // MaximumPacketSize
- int f; // Format
- int k; // sKip
- int s; // Speed
- int d; // Direction
- int en; // EndpointNumber
- int fa; // FunctionAddress
- UINT32 tailp; // TDQueueTailPointer
- UINT32 headp; // TDQueueHeadPointer
- UINT32 nexted; // NextED
- int c; // toggleCarry
- int h; // Halted
- UINT32 word0;
-};
-
-struct OHCITransferDescriptor {
- int cc; // ConditionCode
- int ec; // ErrorCount
- int t; // DataToggle
- int di; // DelayInterrupt
- int dp; // Direction/PID
- int r; // bufferRounding
- UINT32 cbp; // CurrentBufferPointer
- UINT32 nexttd; // NextTD
- UINT32 be; // BufferEnd
- UINT32 word0;
-};
-
-struct OHCIIsochronousTransferDescriptor {
- int cc; // ConditionCode
- int fc; // FrameCount
- int di; // DelayInterrupt
- int sf; // StartingFrame
- UINT32 bp0; // BufferPage0
- UINT32 nexttd; // NextTD
- UINT32 be; // BufferEnd
- UINT32 offset[8]; // Offset/PacketStatusWord
-};
-
-enum OHCIRegisters {
- HcRevision=0,
- HcControl,
- HcCommandStatus,
- HcInterruptStatus,
- HcInterruptEnable,
- HcInterruptDisable,
- HcHCCA,
- HcPeriodCurrentED,
- HcControlHeadED,
- HcControlCurrentED,
- HcBulkHeadED,
- HcBulkCurrentED,
- HcDoneHead,
- HcFmInterval,
- HcFmRemaining,
- HcFmNumber,
- HcPeriodicStart,
- HcLSThreshold,
- HcRhDescriptorA,
- HcRhDescriptorB,
- HcRhStatus,
- HcRhPortStatus1
-};
-
-enum OHCIHostControllerFunctionalState {
- UsbReset=0,
- UsbResume,
- UsbOperational,
- UsbSuspend
-};
-
-enum OHCIInterrupt {
- SchedulingOverrun=1,
- WritebackDoneHead=2,
- StartofFrame=4,
- ResumeDetected=8,
- UnrecoverableError=16,
- FrameNumberOverflow=32,
- RootHubStatusChange=64,
- OwnershipChange=0x40000000,
- MasterInterruptEnable=0x80000000
-};
-
-enum OHCICompletionCode {
- NoError=0,
- CRC,
- BitStuffing,
- DataToggleMismatch,
- Stall,
- DeviceNotResponding,
- PIDCheckFailure,
- UnexpectedPID,
- DataOverrun,
- DataUnderrun,
- BufferOverrun=12,
- BufferUnderrun,
- NotAccessed=14
-};
-
-struct USBSetupPacket {
- UINT8 bmRequestType;
- UINT8 bRequest;
- UINT16 wValue;
- UINT16 wIndex;
- UINT16 wLength;
-};
-
-struct USBStandardDeviceDscriptor {
- UINT8 bLength;
- UINT8 bDescriptorType;
- UINT16 bcdUSB;
- UINT8 bDeviceClass;
- UINT8 bDeviceSubClass;
- UINT8 bDeviceProtocol;
- UINT8 bMaxPacketSize0;
- UINT16 idVendor;
- UINT16 idProduct;
- UINT16 bcdDevice;
- UINT8 iManufacturer;
- UINT8 iProduct;
- UINT8 iSerialNumber;
- UINT8 bNumConfigurations;
-};
-
-struct USBStandardConfigurationDescriptor {
- UINT8 bLength;
- UINT8 bDescriptorType;
- UINT16 wTotalLength;
- UINT8 bNumInterfaces;
- UINT8 bConfigurationValue;
- UINT8 iConfiguration;
- UINT8 bmAttributes;
- UINT8 MaxPower;
-};
-
-struct USBStandardInterfaceDescriptor {
- UINT8 bLength;
- UINT8 bDescriptorType;
- UINT8 bInterfaceNumber;
- UINT8 bAlternateSetting;
- UINT8 bNumEndpoints;
- UINT8 bInterfaceClass;
- UINT8 bInterfaceSubClass;
- UINT8 bInterfaceProtocol;
- UINT8 iInterface;
-};
-
-struct USBStandardEndpointDescriptor {
- UINT8 bLength;
- UINT8 bDescriptorType;
- UINT8 bEndpointAddress;
- UINT8 bmAttributes;
- UINT16 wMaxPacketSize;
- UINT8 bInterval;
-};
-
-enum USBPid {
- SetupPid=0,
- OutPid,
- InPid
-};
-
-enum USBRequestCode {
- GET_STATUS=0,
- CLEAR_FEATURE=1,
- SET_FEATURE=3,
- SET_ADDRESS=5,
- GET_DESCRIPTOR=6,
- SET_DESCRIPTOR=7,
- GET_CONFIGURATION=8,
- SET_CONFIGURATION=9,
- GET_INTERFACE=10,
- SET_INTERFACE=11,
- SYNCH_FRAME=12
-};
-
-enum USBDescriptorType {
- DEVICE=1,
- CONFIGURATION=2,
- STRING=3,
- INTERFACE=4,
- ENDPOINT=5
-};
-class ohci_function_device {
-public:
- ohci_function_device();
- void execute_reset();
- int execute_transfer(int address, int endpoint, int pid, UINT8 *buffer, int size);
-private:
- int address;
- int controldir;
- int remain;
- UINT8 *position;
-};
-
-class chihiro_state : public driver_device
+class chihiro_state : public xbox_base_state
{
public:
chihiro_state(const machine_config &mconfig, device_type type, const char *tag) :
- driver_device(mconfig, type, tag),
- nvidia_nv2a(NULL),
- debug_irq_active(false),
- debug_irq_number(0),
- dimm_board_memory(NULL),
- dimm_board_memory_size(0),
+ xbox_base_state(mconfig, type, tag),
usbhack_index(-1),
usbhack_counter(0),
- m_maincpu(*this, "maincpu") { }
-
- DECLARE_READ32_MEMBER(geforce_r);
- DECLARE_WRITE32_MEMBER(geforce_w);
- DECLARE_READ32_MEMBER(usbctrl_r);
- DECLARE_WRITE32_MEMBER(usbctrl_w);
- DECLARE_READ32_MEMBER(smbus_r);
- DECLARE_WRITE32_MEMBER(smbus_w);
+ dimm_board_memory(NULL),
+ dimm_board_memory_size(0) { }
+
DECLARE_READ32_MEMBER(mediaboard_r);
DECLARE_WRITE32_MEMBER(mediaboard_w);
- DECLARE_READ32_MEMBER(audio_apu_r);
- DECLARE_WRITE32_MEMBER(audio_apu_w);
- DECLARE_READ32_MEMBER(audio_ac93_r);
- DECLARE_WRITE32_MEMBER(audio_ac93_w);
- DECLARE_READ32_MEMBER(dummy_r);
- DECLARE_WRITE32_MEMBER(dummy_w);
-
- void smbus_register_device(int address, int(*handler)(chihiro_state &chs, int command, int rw, int data));
- int smbus_pic16lc(int command, int rw, int data);
- int smbus_cx25871(int command, int rw, int data);
- int smbus_eeprom(int command, int rw, int data);
- void usb_ohci_plug(int port, ohci_function_device *function);
- void usb_ohci_interrupts();
- void usb_ohci_read_endpoint_descriptor(UINT32 address);
- void usb_ohci_writeback_endpoint_descriptor(UINT32 address);
- void usb_ohci_read_transfer_descriptor(UINT32 address);
- void usb_ohci_writeback_transfer_descriptor(UINT32 address);
- void usb_ohci_read_isochronous_transfer_descriptor(UINT32 address);
+
+ virtual void machine_start();
void baseboard_ide_event(int type, UINT8 *read, UINT8 *write);
UINT8 *baseboard_ide_dimmboard(UINT32 lba);
void dword_write_le(UINT8 *addr, UINT32 d);
void word_write_le(UINT8 *addr, UINT16 d);
- void debug_generate_irq(int irq, bool active);
-
- void vblank_callback(screen_device &screen, bool state);
- UINT32 screen_update_callback(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
-
- virtual void machine_start();
- DECLARE_WRITE_LINE_MEMBER(chihiro_pic8259_1_set_int_line);
- DECLARE_READ8_MEMBER(get_slave_ack);
- DECLARE_WRITE_LINE_MEMBER(chihiro_pit8254_out0_changed);
- DECLARE_WRITE_LINE_MEMBER(chihiro_pit8254_out2_changed);
- IRQ_CALLBACK_MEMBER(irq_callback);
- TIMER_CALLBACK_MEMBER(audio_apu_timer);
- TIMER_CALLBACK_MEMBER(usb_ohci_timer);
+ virtual void hack_eeprom();
+ virtual void hack_usb();
struct chihiro_devices {
- pic8259_device *pic8259_1;
- pic8259_device *pic8259_2;
bus_master_ide_controller_device *ide;
naomi_gdrom_board *dimmboard;
} chihiro_devs;
- struct smbus_state {
- int status;
- int control;
- int address;
- int data;
- int command;
- int rw;
- int(*devices[128])(chihiro_state &chs, int command, int rw, int data);
- UINT32 words[256 / 4];
- } smbusst;
- struct apu_state {
- UINT32 memory[0x60000 / 4];
- UINT32 gpdsp_sgaddress; // global processor scatter-gather
- UINT32 gpdsp_sgblocks;
- UINT32 gpdsp_address;
- UINT32 epdsp_sgaddress; // encoder processor scatter-gather
- UINT32 epdsp_sgblocks;
- UINT32 unknown_sgaddress;
- UINT32 unknown_sgblocks;
- int voice_number;
- UINT32 voices_heap_blockaddr[1024];
- UINT64 voices_active[4]; //one bit for each voice: 1 playing 0 not
- UINT32 voicedata_address;
- int voices_frequency[256]; // sample rate
- int voices_position[256]; // position in samples * 1000
- int voices_position_start[256]; // position in samples * 1000
- int voices_position_end[256]; // position in samples * 1000
- int voices_position_increment[256]; // position increment every 1ms * 1000
- emu_timer *timer;
- address_space *space;
- } apust;
- struct ac97_state {
- UINT32 mixer_regs[0x80 / 4];
- UINT32 controller_regs[0x38 / 4];
- } ac97st;
- struct ohci_state {
- UINT32 hc_regs[255];
- struct {
- ohci_function_device *function;
- int delay;
- } ports[4 + 1];
- emu_timer *timer;
- int state;
- UINT32 framenumber;
- UINT32 nextinterupted;
- UINT32 nextbulked;
- int interruptbulkratio;
- int writebackdonehadcounter;
- address_space *space;
- UINT8 buffer[1024];
- OHCIEndpointDescriptor endpoint_descriptor;
- OHCITransferDescriptor transfer_descriptor;
- OHCIIsochronousTransferDescriptor isochronous_transfer_descriptor;
- } ohcist;
- UINT8 pic16lc_buffer[0xff];
- nv2a_renderer *nvidia_nv2a;
- bool debug_irq_active;
- int debug_irq_number;
- UINT8 *dimm_board_memory;
- UINT32 dimm_board_memory_size;
int usbhack_index;
int usbhack_counter;
- required_device<cpu_device> m_maincpu;
+ UINT8 *dimm_board_memory;
+ UINT32 dimm_board_memory_size;
};
-/* jamtable instructions for Chihiro (different from console)
+/* jamtable instructions for Chihiro (different from Xbox console)
St. Instr. Comment
0x01 POKEPCI PCICONF[OP2] := OP1
0x02 OUTB PORT[OP2] := OP1
@@ -835,343 +546,10 @@ static void jamtable_disasm_command(running_machine &machine, int ref, int param
jamtable_disasm(machine, space, (UINT32)addr, (UINT32)size);
}
-static void dump_string_command(running_machine &machine, int ref, int params, const char **param)
-{
- chihiro_state *state = machine.driver_data<chihiro_state>();
- address_space &space = state->m_maincpu->space();
- UINT64 addr;
- offs_t address;
- UINT32 length, maximumlength;
- offs_t buffer;
-
- if (params < 1)
- return;
- if (!debug_command_parameter_number(machine, param[0], &addr))
- return;
- address = (offs_t)addr;
- if (!debug_cpu_translate(space, TRANSLATE_READ_DEBUG, &address))
- {
- debug_console_printf(machine, "Address is unmapped.\n");
- return;
- }
- length = space.read_word_unaligned(address);
- maximumlength = space.read_word_unaligned(address + 2);
- buffer = space.read_dword_unaligned(address + 4);
- debug_console_printf(machine, "Length %d word\n", length);
- debug_console_printf(machine, "MaximumLength %d word\n", maximumlength);
- debug_console_printf(machine, "Buffer %08X byte* ", buffer);
- if (!debug_cpu_translate(space, TRANSLATE_READ_DEBUG, &buffer))
- {
- debug_console_printf(machine, "\nBuffer is unmapped.\n");
- return;
- }
- if (length > 256)
- length = 256;
- for (int a = 0; a < length; a++)
- {
- UINT8 c = space.read_byte(buffer + a);
- debug_console_printf(machine, "%c", c);
- }
- debug_console_printf(machine, "\n");
-}
-
-static void dump_process_command(running_machine &machine, int ref, int params, const char **param)
-{
- chihiro_state *state = machine.driver_data<chihiro_state>();
- address_space &space = state->m_maincpu->space();
- UINT64 addr;
- offs_t address;
-
- if (params < 1)
- return;
- if (!debug_command_parameter_number(machine, param[0], &addr))
- return;
- address = (offs_t)addr;
- if (!debug_cpu_translate(space, TRANSLATE_READ_DEBUG, &address))
- {
- debug_console_printf(machine, "Address is unmapped.\n");
- return;
- }
- debug_console_printf(machine, "ReadyListHead {%08X,%08X} _LIST_ENTRY\n", space.read_dword_unaligned(address), space.read_dword_unaligned(address + 4));
- debug_console_printf(machine, "ThreadListHead {%08X,%08X} _LIST_ENTRY\n", space.read_dword_unaligned(address + 8), space.read_dword_unaligned(address + 12));
- debug_console_printf(machine, "StackCount %d dword\n", space.read_dword_unaligned(address + 16));
- debug_console_printf(machine, "ThreadQuantum %d dword\n", space.read_dword_unaligned(address + 20));
- debug_console_printf(machine, "BasePriority %d byte\n", space.read_byte(address + 24));
- debug_console_printf(machine, "DisableBoost %d byte\n", space.read_byte(address + 25));
- debug_console_printf(machine, "DisableQuantum %d byte\n", space.read_byte(address + 26));
- debug_console_printf(machine, "_padding %d byte\n", space.read_byte(address + 27));
-}
-
-static void dump_list_command(running_machine &machine, int ref, int params, const char **param)
-{
- chihiro_state *state = machine.driver_data<chihiro_state>();
- address_space &space = state->m_maincpu->space();
- UINT64 addr, offs, start, old;
- offs_t address, offset;
-
- if (params < 1)
- return;
- if (!debug_command_parameter_number(machine, param[0], &addr))
- return;
- offs = 0;
- offset = 0;
- if (params >= 2)
- {
- if (!debug_command_parameter_number(machine, param[1], &offs))
- return;
- offset = (offs_t)offs;
- }
- start = addr;
- address = (offs_t)addr;
- if (!debug_cpu_translate(space, TRANSLATE_READ_DEBUG, &address))
- {
- debug_console_printf(machine, "Address is unmapped.\n");
- return;
- }
- if (params >= 2)
- debug_console_printf(machine, "Entry Object\n");
- else
- debug_console_printf(machine, "Entry\n");
- for (int num = 0; num < 32; num++)
- {
- if (params >= 2)
- debug_console_printf(machine, "%08X %08X\n", (UINT32)addr, (offs_t)addr - offset);
- else
- debug_console_printf(machine, "%08X\n", (UINT32)addr);
- old = addr;
- addr = space.read_dword_unaligned(address);
- if (addr == start)
- break;
- if (addr == old)
- break;
- address = (offs_t)addr;
- if (!debug_cpu_translate(space, TRANSLATE_READ_DEBUG, &address))
- break;
- }
-}
-
-static void dump_dpc_command(running_machine &machine, int ref, int params, const char **param)
-{
- chihiro_state *state = machine.driver_data<chihiro_state>();
- address_space &space = state->m_maincpu->space();
- UINT64 addr;
- offs_t address;
-
- if (params < 1)
- return;
- if (!debug_command_parameter_number(machine, param[0], &addr))
- return;
- address = (offs_t)addr;
- if (!debug_cpu_translate(space, TRANSLATE_READ_DEBUG, &address))
- {
- debug_console_printf(machine, "Address is unmapped.\n");
- return;
- }
- debug_console_printf(machine, "Type %d word\n", space.read_word_unaligned(address));
- debug_console_printf(machine, "Inserted %d byte\n", space.read_byte(address + 2));
- debug_console_printf(machine, "Padding %d byte\n", space.read_byte(address + 3));
- debug_console_printf(machine, "DpcListEntry {%08X,%08X} _LIST_ENTRY\n", space.read_dword_unaligned(address + 4), space.read_dword_unaligned(address + 8));
- debug_console_printf(machine, "DeferredRoutine %08X dword\n", space.read_dword_unaligned(address + 12));
- debug_console_printf(machine, "DeferredContext %08X dword\n", space.read_dword_unaligned(address + 16));
- debug_console_printf(machine, "SystemArgument1 %08X dword\n", space.read_dword_unaligned(address + 20));
- debug_console_printf(machine, "SystemArgument2 %08X dword\n", space.read_dword_unaligned(address + 24));
-}
-
-static void dump_timer_command(running_machine &machine, int ref, int params, const char **param)
-{
- chihiro_state *state = machine.driver_data<chihiro_state>();
- address_space &space = state->m_maincpu->space();
- UINT64 addr;
- offs_t address;
-
- if (params < 1)
- return;
- if (!debug_command_parameter_number(machine, param[0], &addr))
- return;
- address = (offs_t)addr;
- if (!debug_cpu_translate(space, TRANSLATE_READ_DEBUG, &address))
- {
- debug_console_printf(machine, "Address is unmapped.\n");
- return;
- }
- debug_console_printf(machine, "Header.Type %d byte\n", space.read_byte(address));
- debug_console_printf(machine, "Header.Absolute %d byte\n", space.read_byte(address + 1));
- debug_console_printf(machine, "Header.Size %d byte\n", space.read_byte(address + 2));
- debug_console_printf(machine, "Header.Inserted %d byte\n", space.read_byte(address + 3));
- debug_console_printf(machine, "Header.SignalState %08X dword\n", space.read_dword_unaligned(address + 4));
- debug_console_printf(machine, "Header.WaitListEntry {%08X,%08X} _LIST_ENTRY\n", space.read_dword_unaligned(address + 8), space.read_dword_unaligned(address + 12));
- debug_console_printf(machine, "DueTime %" I64FMT "x qword\n", (INT64)space.read_qword_unaligned(address + 16));
- debug_console_printf(machine, "TimerListEntry {%08X,%08X} _LIST_ENTRY\n", space.read_dword_unaligned(address + 24), space.read_dword_unaligned(address + 28));
- debug_console_printf(machine, "Dpc %08X dword\n", space.read_dword_unaligned(address + 32));
- debug_console_printf(machine, "Period %d dword\n", space.read_dword_unaligned(address + 36));
-}
-
-static void curthread_command(running_machine &machine, int ref, int params, const char **param)
-{
- chihiro_state *state = machine.driver_data<chihiro_state>();
- address_space &space = state->m_maincpu->space();
- UINT64 fsbase;
- UINT32 kthrd, topstack, tlsdata;
- offs_t address;
-
- fsbase = state->m_maincpu->state_int(44);
- address = (offs_t)fsbase + 0x28;
- if (!debug_cpu_translate(space, TRANSLATE_READ_DEBUG, &address))
- {
- debug_console_printf(machine, "Address is unmapped.\n");
- return;
- }
- kthrd = space.read_dword_unaligned(address);
- debug_console_printf(machine, "Current thread is %08X\n", kthrd);
- address = (offs_t)kthrd + 0x1c;
- if (!debug_cpu_translate(space, TRANSLATE_READ_DEBUG, &address))
- return;
- topstack = space.read_dword_unaligned(address);
- debug_console_printf(machine, "Current thread stack top is %08X\n", topstack);
- address = (offs_t)kthrd + 0x28;
- if (!debug_cpu_translate(space, TRANSLATE_READ_DEBUG, &address))
- return;
- tlsdata = space.read_dword_unaligned(address);
- if (tlsdata == 0)
- address = (offs_t)topstack - 0x210 - 8;
- else
- address = (offs_t)tlsdata - 8;
- if (!debug_cpu_translate(space, TRANSLATE_READ_DEBUG, &address))
- return;
- debug_console_printf(machine, "Current thread function is %08X\n", space.read_dword_unaligned(address));
-}
-
-static void generate_irq_command(running_machine &machine, int ref, int params, const char **param)
-{
- UINT64 irq;
- chihiro_state *chst = machine.driver_data<chihiro_state>();
-
- if (params < 1)
- return;
- if (!debug_command_parameter_number(machine, param[0], &irq))
- return;
- if (irq > 15)
- return;
- if (irq == 2)
- return;
- chst->debug_generate_irq((int)irq, true);
-}
-
-static void nv2a_combiners_command(running_machine &machine, int ref, int params, const char **param)
-{
- int en;
-
- chihiro_state *chst = machine.driver_data<chihiro_state>();
- en = chst->nvidia_nv2a->toggle_register_combiners_usage();
- if (en != 0)
- debug_console_printf(machine, "Register combiners enabled\n");
- else
- debug_console_printf(machine, "Register combiners disabled\n");
-}
-
-static void waitvblank_command(running_machine &machine, int ref, int params, const char **param)
-{
- int en;
-
- chihiro_state *chst = machine.driver_data<chihiro_state>();
- en = chst->nvidia_nv2a->toggle_wait_vblank_support();
- if (en != 0)
- debug_console_printf(machine, "Vblank method enabled\n");
- else
- debug_console_printf(machine, "Vblank method disabled\n");
-}
-
-static void grab_texture_command(running_machine &machine, int ref, int params, const char **param)
-{
- UINT64 type;
- chihiro_state *chst = machine.driver_data<chihiro_state>();
-
- if (params < 2)
- return;
- if (!debug_command_parameter_number(machine, param[0], &type))
- return;
- if ((param[1][0] == 0) || (strlen(param[1]) > 127))
- return;
- chst->nvidia_nv2a->debug_grab_texture((int)type, param[1]);
-}
-
-static void grab_vprog_command(running_machine &machine, int ref, int params, const char **param)
-{
- chihiro_state *chst = machine.driver_data<chihiro_state>();
- UINT32 instruction[4];
- FILE *fil;
-
- if (params < 1)
- return;
- if ((param[0][0] == 0) || (strlen(param[0]) > 127))
- return;
- if ((fil = fopen(param[0], "wb")) == NULL)
- return;
- for (int n = 0; n < 136; n++) {
- chst->nvidia_nv2a->debug_grab_vertex_program_slot(n, instruction);
- fwrite(instruction, sizeof(UINT32), 4, fil);
- }
- fclose(fil);
-}
-
-static void vprogdis_command(running_machine &machine, int ref, int params, const char **param)
-{
- UINT64 address, length, type;
- UINT32 instruction[4];
- offs_t addr;
- vertex_program_disassembler vd;
- char line[64];
- chihiro_state *chst = machine.driver_data<chihiro_state>();
- address_space &space = chst->m_maincpu->space();
-
- if (params < 2)
- return;
- if (!debug_command_parameter_number(machine, param[0], &address))
- return;
- if (!debug_command_parameter_number(machine, param[1], &length))
- return;
- type = 0;
- if (params > 2)
- if (!debug_command_parameter_number(machine, param[2], &type))
- return;
- while (length > 0) {
- if (type == 1) {
- addr = (offs_t)address;
- if (!debug_cpu_translate(space, TRANSLATE_READ_DEBUG, &addr))
- return;
- instruction[0] = space.read_dword_unaligned(address);
- instruction[1] = space.read_dword_unaligned(address + 4);
- instruction[2] = space.read_dword_unaligned(address + 8);
- instruction[3] = space.read_dword_unaligned(address + 12);
- }
- else
- chst->nvidia_nv2a->debug_grab_vertex_program_slot((int)address, instruction);
- while (vd.disassemble(instruction, line) != 0)
- debug_console_printf(machine, "%s\n", line);
- if (type == 1)
- address = address + 4 * 4;
- else
- address++;
- length--;
- }
-}
-
static void help_command(running_machine &machine, int ref, int params, const char **param)
{
debug_console_printf(machine, "Available Chihiro commands:\n");
debug_console_printf(machine, " chihiro jamdis,<start>,<size> -- Disassemble <size> bytes of JamTable instructions starting at <start>\n");
- debug_console_printf(machine, " chihiro dump_string,<address> -- Dump _STRING object at <address>\n");
- debug_console_printf(machine, " chihiro dump_process,<address> -- Dump _PROCESS object at <address>\n");
- debug_console_printf(machine, " chihiro dump_list,<address>[,<offset>] -- Dump _LIST_ENTRY chain starting at <address>\n");
- debug_console_printf(machine, " chihiro dump_dpc,<address> -- Dump _KDPC object at <address>\n");
- debug_console_printf(machine, " chihiro dump_timer,<address> -- Dump _KTIMER object at <address>\n");
- debug_console_printf(machine, " chihiro curthread -- Print information about current thread\n");
- debug_console_printf(machine, " chihiro irq,<number> -- Generate interrupt with irq number 0-15\n");
- debug_console_printf(machine, " chihiro nv2a_combiners -- Toggle use of register combiners\n");
- debug_console_printf(machine, " chihiro waitvblank -- Toggle support for wait vblank method\n");
- debug_console_printf(machine, " chihiro grab_texture,<type>,<filename> -- Save to <filename> the next used texture of type <type>\n");
- debug_console_printf(machine, " chihiro grab_vprog,<filename> -- save current vertex program instruction slots to <filename>\n");
- debug_console_printf(machine, " chihiro vprogdis,<address>,<length>[,<type>] -- disassemble <lenght> vertex program instructions at <address> of <type>\n");
debug_console_printf(machine, " chihiro help -- this list\n");
}
@@ -1181,168 +559,19 @@ static void chihiro_debug_commands(running_machine &machine, int ref, int params
return;
if (strcmp("jamdis", param[0]) == 0)
jamtable_disasm_command(machine, ref, params - 1, param + 1);
- else if (strcmp("dump_string", param[0]) == 0)
- dump_string_command(machine, ref, params - 1, param + 1);
- else if (strcmp("dump_process", param[0]) == 0)
- dump_process_command(machine, ref, params - 1, param + 1);
- else if (strcmp("dump_list", param[0]) == 0)
- dump_list_command(machine, ref, params - 1, param + 1);
- else if (strcmp("dump_dpc", param[0]) == 0)
- dump_dpc_command(machine, ref, params - 1, param + 1);
- else if (strcmp("dump_timer", param[0]) == 0)
- dump_timer_command(machine, ref, params - 1, param + 1);
- else if (strcmp("curthread", param[0]) == 0)
- curthread_command(machine, ref, params - 1, param + 1);
- else if (strcmp("irq", param[0]) == 0)
- generate_irq_command(machine, ref, params - 1, param + 1);
- else if (strcmp("nv2a_combiners", param[0]) == 0)
- nv2a_combiners_command(machine, ref, params - 1, param + 1);
- else if (strcmp("waitvblank", param[0]) == 0)
- waitvblank_command(machine, ref, params - 1, param + 1);
- else if (strcmp("grab_texture", param[0]) == 0)
- grab_texture_command(machine, ref, params - 1, param + 1);
- else if (strcmp("grab_vprog", param[0]) == 0)
- grab_vprog_command(machine, ref, params - 1, param + 1);
- else if (strcmp("vprogdis", param[0]) == 0)
- vprogdis_command(machine, ref, params - 1, param + 1);
else
help_command(machine, ref, params - 1, param + 1);
}
-void chihiro_state::debug_generate_irq(int irq, bool active)
+void chihiro_state::hack_eeprom()
{
- int state;
-
- if (active)
- {
- debug_irq_active = true;
- debug_irq_number = irq;
- state = 1;
- }
- else
- {
- debug_irq_active = false;
- state = 0;
- }
- switch (irq)
- {
- case 0:
- chihiro_devs.pic8259_1->ir0_w(state);
- break;
- case 1:
- chihiro_devs.pic8259_1->ir1_w(state);
- break;
- case 3:
- chihiro_devs.pic8259_1->ir3_w(state);
- break;
- case 4:
- chihiro_devs.pic8259_1->ir4_w(state);
- break;
- case 5:
- chihiro_devs.pic8259_1->ir5_w(state);
- break;
- case 6:
- chihiro_devs.pic8259_1->ir6_w(state);
- break;
- case 7:
- chihiro_devs.pic8259_1->ir7_w(state);
- break;
- case 8:
- chihiro_devs.pic8259_2->ir0_w(state);
- break;
- case 9:
- chihiro_devs.pic8259_2->ir1_w(state);
- break;
- case 10:
- chihiro_devs.pic8259_2->ir2_w(state);
- break;
- case 11:
- chihiro_devs.pic8259_2->ir3_w(state);
- break;
- case 12:
- chihiro_devs.pic8259_2->ir4_w(state);
- break;
- case 13:
- chihiro_devs.pic8259_2->ir5_w(state);
- break;
- case 14:
- chihiro_devs.pic8259_2->ir6_w(state);
- break;
- case 15:
- chihiro_devs.pic8259_2->ir7_w(state);
- break;
- }
+ // 8003b744,3b744=0x90 0x90
+ m_maincpu->space(0).write_byte(0x3b744, 0x90);
+ m_maincpu->space(0).write_byte(0x3b745, 0x90);
+ m_maincpu->space(0).write_byte(0x3b766, 0xc9);
+ m_maincpu->space(0).write_byte(0x3b767, 0xc3);
}
-void chihiro_state::vblank_callback(screen_device &screen, bool state)
-{
- if (nvidia_nv2a->vblank_callback(screen, state))
- chihiro_devs.pic8259_1->ir3_w(1); // IRQ 3
- else
- chihiro_devs.pic8259_1->ir3_w(0); // IRQ 3
-}
-
-UINT32 chihiro_state::screen_update_callback(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
-{
- return nvidia_nv2a->screen_update_callback(screen, bitmap, cliprect);
-}
-
-READ32_MEMBER(chihiro_state::geforce_r)
-{
- return nvidia_nv2a->geforce_r(space, offset, mem_mask);
-}
-
-WRITE32_MEMBER(chihiro_state::geforce_w)
-{
- nvidia_nv2a->geforce_w(space, offset, data, mem_mask);
-}
-
-static UINT32 geforce_pci_r(device_t *busdevice, device_t *device, int function, int reg, UINT32 mem_mask)
-{
-#ifdef LOG_PCI
- // logerror(" bus:1 device:NV_2A function:%d register:%d mask:%08X\n",function,reg,mem_mask);
-#endif
- return 0;
-}
-
-static void geforce_pci_w(device_t *busdevice, device_t *device, int function, int reg, UINT32 data, UINT32 mem_mask)
-{
-#ifdef LOG_PCI
- // logerror(" bus:1 device:NV_2A function:%d register:%d data:%08X mask:%08X\n",function,reg,data,mem_mask);
-#endif
-}
-
-/*
- * ohci usb controller (placeholder for now)
- */
-
-#ifdef LOG_OHCI
-static const char *const usbregnames[] = {
- "HcRevision",
- "HcControl",
- "HcCommandStatus",
- "HcInterruptStatus",
- "HcInterruptEnable",
- "HcInterruptDisable",
- "HcHCCA",
- "HcPeriodCurrentED",
- "HcControlHeadED",
- "HcControlCurrentED",
- "HcBulkHeadED",
- "HcBulkCurrentED",
- "HcDoneHead",
- "HcFmInterval",
- "HcFmRemaining",
- "HcFmNumber",
- "HcPeriodicStart",
- "HcLSThreshold",
- "HcRhDescriptorA",
- "HcRhDescriptorB",
- "HcRhStatus",
- "HcRhPortStatus[1]"
-};
-#endif
-
static const struct {
const char *game_name;
struct {
@@ -1352,720 +581,24 @@ static const struct {
} hacks[2] = { { "chihiro", { { 0x6a79f, 0x01 }, { 0x6a7a0, 0x00 }, { 0x6b575, 0x00 }, { 0x6b576, 0x00 }, { 0x6b5af, 0x75 }, { 0x6b78a, 0x75 }, { 0x6b7ca, 0x00 }, { 0x6b7b8, 0x00 }, { 0x8f5b2, 0x75 }, { 0x79a9e, 0x74 }, { 0x79b80, 0x74 }, { 0x79b97, 0x74 }, { 0, 0 } } },
{ "outr2", { { 0x12e4cf, 0x01 }, { 0x12e4d0, 0x00 }, { 0x4793e, 0x01 }, { 0x4793f, 0x00 }, { 0x47aa3, 0x01 }, { 0x47aa4, 0x00 }, { 0x14f2b6, 0x84 }, { 0x14f2d1, 0x75 }, { 0x8732f, 0x7d }, { 0x87384, 0x7d }, { 0x87388, 0xeb }, { 0, 0 } } } };
-READ32_MEMBER(chihiro_state::usbctrl_r)
-{
- UINT32 ret;
-
-#ifdef LOG_OHCI
- if (offset >= 0x54 / 4)
- logerror("usb controller 0 register HcRhPortStatus[%d] read\n", (offset - 0x54 / 4) + 1);
- else
- logerror("usb controller 0 register %s read\n", usbregnames[offset]);
-#endif
- ret=ohcist.hc_regs[offset];
- if (offset == 0) { /* hacks needed until usb (and jvs) is implemented */
-#ifdef USB_ENABLED
-#else
- int p;
-
- if (usbhack_counter == 0)
- p = 0;
- else if (usbhack_counter == 1) // after game loaded
- p = usbhack_index;
- else
- p = -1;
- if (p >= 0) {
- for (int a = 0; a < 16; a++) {
- if (hacks[p].modify[a].address == 0)
- break;
- m_maincpu->space(0).write_byte(hacks[p].modify[a].address, hacks[p].modify[a].write_byte);
- }
- }
- usbhack_counter++;
-#endif
- }
- return ret;
-}
-
-WRITE32_MEMBER(chihiro_state::usbctrl_w)
+void chihiro_state::hack_usb()
{
-#ifdef USB_ENABLED
- UINT32 old = ohcist.hc_regs[offset];
-#endif
+ int p;
-#ifdef LOG_OHCI
- if (offset >= 0x54 / 4)
- logerror("usb controller 0 register HcRhPortStatus[%d] write %08X\n", (offset - 0x54 / 4) + 1, data);
+ if (usbhack_counter == 0)
+ p = 0;
+ else if (usbhack_counter == 1) // after game loaded
+ p = usbhack_index;
else
- logerror("usb controller 0 register %s write %08X\n", usbregnames[offset], data);
-#endif
-#ifdef USB_ENABLED
- if (offset == HcRhStatus) {
- if (data & 0x80000000)
- ohcist.hc_regs[HcRhStatus] &= ~0x8000;
- if (data & 0x00020000)
- ohcist.hc_regs[HcRhStatus] &= ~0x0002;
- if (data & 0x00010000)
- ohcist.hc_regs[HcRhStatus] &= ~0x0001;
- return;
- }
- if (offset == HcControl) {
- int hcfs;
-
- hcfs = (data >> 6) & 3;
- if (hcfs == UsbOperational) {
- ohcist.timer->enable();
- ohcist.timer->adjust(attotime::from_msec(1), 0, attotime::from_msec(1));
- ohcist.writebackdonehadcounter = 7;
- }
- else
- ohcist.timer->enable(false);
- ohcist.state = hcfs;
- ohcist.interruptbulkratio = (data & 3) + 1;
- }
- if (offset == HcCommandStatus) {
- if (data & 1)
- ohcist.hc_regs[HcControl] |= 3 << 6;
- ohcist.hc_regs[HcCommandStatus] |= data;
- return;
- }
- if (offset == HcInterruptStatus) {
- ohcist.hc_regs[HcInterruptStatus] &= ~data;
- usb_ohci_interrupts();
- return;
- }
- if (offset == HcInterruptEnable) {
- ohcist.hc_regs[HcInterruptEnable] |= data;
- usb_ohci_interrupts();
- return;
- }
- if (offset == HcInterruptDisable) {
- ohcist.hc_regs[HcInterruptEnable] &= ~data;
- usb_ohci_interrupts();
- return;
- }
- if (offset >= HcRhPortStatus1) {
- int port = offset - HcRhPortStatus1 + 1; // port 0 not used
- // bit 0 ClearPortEnable: 1 clears PortEnableStatus
- // bit 1 SetPortEnable: 1 sets PortEnableStatus
- // bit 2 SetPortSuspend: 1 sets PortSuspendStatus
- // bit 3 ClearSuspendStatus: 1 clears PortSuspendStatus
- // bit 4 SetPortReset: 1 sets PortResetStatus
- if (data & 0x10) {
- ohcist.hc_regs[offset] |= 0x10;
- ohcist.ports[port].function->execute_reset();
- // after 10ms set PortResetStatusChange and clear PortResetStatus and set PortEnableStatus
- ohcist.ports[port].delay = 10;
- }
- // bit 8 SetPortPower: 1 sets PortPowerStatus
- // bit 9 ClearPortPower: 1 clears PortPowerStatus
- // bit 16 1 clears ConnectStatusChange
- // bit 17 1 clears PortEnableStatusChange
- // bit 18 1 clears PortSuspendStatusChange
- // bit 19 1 clears PortOverCurrentIndicatorChange
- // bit 20 1 clears PortResetStatusChange
- if (ohcist.hc_regs[offset] != old)
- ohcist.hc_regs[HcInterruptStatus] |= RootHubStatusChange;
- usb_ohci_interrupts();
- return;
- }
-#endif
- ohcist.hc_regs[offset] = data;
-}
-
-TIMER_CALLBACK_MEMBER(chihiro_state::usb_ohci_timer)
-{
- UINT32 hcca;
- int changed = 0;
- int list = 1;
- bool cont = false;
- int pid, remain, mps;
-
- hcca = ohcist.hc_regs[HcHCCA];
- if (ohcist.state == UsbOperational) {
- // increment frame number
- ohcist.framenumber = (ohcist.framenumber + 1) & 0xffff;
- ohcist.space->write_dword(hcca + 0x80, ohcist.framenumber);
- ohcist.hc_regs[HcFmNumber] = ohcist.framenumber;
- }
- // port reset delay
- for (int p = 1; p <= 4; p++) {
- if (ohcist.ports[p].delay > 0) {
- ohcist.ports[p].delay--;
- if (ohcist.ports[p].delay == 0) {
- ohcist.hc_regs[HcRhPortStatus1 + p - 1] = (ohcist.hc_regs[HcRhPortStatus1 + p - 1] & ~(1 << 4)) | (1 << 20) | (1 << 1); // bit 1 PortEnableStatus
- changed = 1;
- }
- }
- }
- if (ohcist.state == UsbOperational) {
- while (list >= 0)
- {
- // select list, do transfer
- if (list == 0) {
- if (ohcist.hc_regs[HcControl] & (1 << 2)) {
- // periodic
- if (ohcist.hc_regs[HcControl] & (1 << 3)) {
- // isochronous
- }
- }
- list = -1;
- }
- if (list == 1) {
- // control
- if (ohcist.hc_regs[HcControl] & (1 << 4)) {
- cont = true;
- while (cont == true) {
- // if current endpoint descriptor is not 0 use it, otherwise ...
- if (ohcist.hc_regs[HcControlCurrentED] == 0) {
- // ... check the filled bit ...
- if (ohcist.hc_regs[HcCommandStatus] & (1 << 1)) {
- // ... if 1 start processing from the head of the list
- ohcist.hc_regs[HcControlCurrentED] = ohcist.hc_regs[HcControlHeadED];
- ohcist.hc_regs[HcCommandStatus] &= ~(1 << 1);
- // but if the list is empty, go to the next list
- if (ohcist.hc_regs[HcControlCurrentED] == 0)
- cont = false;
- }
- else
- cont = false;
- }
- if (cont == true) {
- // service endpoint descriptor
- usb_ohci_read_endpoint_descriptor(ohcist.hc_regs[HcControlCurrentED]);
- // only if it is not halted and not to be skipped
- if (!(ohcist.endpoint_descriptor.h | ohcist.endpoint_descriptor.k)) {
- // compare the Endpoint Descriptor’s TailPointer and NextTransferDescriptor fields.
- if (ohcist.endpoint_descriptor.headp != ohcist.endpoint_descriptor.tailp) {
- UINT32 a, b;
- // service transfer descriptor
- usb_ohci_read_transfer_descriptor(ohcist.endpoint_descriptor.headp);
- // get pid
- if (ohcist.endpoint_descriptor.d == 1)
- pid=OutPid; // out
- else if (ohcist.endpoint_descriptor.d == 2)
- pid=InPid; // in
- else {
- pid = ohcist.transfer_descriptor.dp; // 0 setup 1 out 2 in
- }
- // determine how much data to transfer
- // setup pid must be 8 bytes
- a = ohcist.transfer_descriptor.be & 0xfff;
- b = ohcist.transfer_descriptor.cbp & 0xfff;
- if ((ohcist.transfer_descriptor.be ^ ohcist.transfer_descriptor.cbp) & 0xfffff000)
- a |= 0x1000;
- remain = a - b + 1;
- if (pid == InPid) {
- mps = ohcist.endpoint_descriptor.mps;
- if (remain < mps)
- mps = remain;
- }
- else {
- mps = ohcist.endpoint_descriptor.mps;
- }
- if (ohcist.transfer_descriptor.cbp == 0)
- mps = 0;
- b = ohcist.transfer_descriptor.cbp;
- // if sending ...
- if (pid != InPid) {
- // ... get mps bytes
- for (int c = 0; c < mps; c++) {
- ohcist.buffer[c] = ohcist.space->read_byte(b);
- b++;
- if ((b & 0xfff) == 0)
- b = ohcist.transfer_descriptor.be & 0xfffff000;
- }
- }
- // should check for time available
- // execute transaction
- mps=ohcist.ports[1].function->execute_transfer(ohcist.endpoint_descriptor.fa, ohcist.endpoint_descriptor.en, pid, ohcist.buffer, mps);
- // if receiving ...
- if (pid == InPid) {
- // ... store mps bytes
- for (int c = 0; c < mps; c++) {
- ohcist.space->write_byte(b,ohcist.buffer[c]);
- b++;
- if ((b & 0xfff) == 0)
- b = ohcist.transfer_descriptor.be & 0xfffff000;
- }
- }
- // status writeback (CompletionCode field, DataToggleControl field, CurrentBufferPointer field, ErrorCount field)
- ohcist.transfer_descriptor.cc = NoError;
- ohcist.transfer_descriptor.t = (ohcist.transfer_descriptor.t ^ 1) | 2;
- ohcist.transfer_descriptor.cbp = b;
- ohcist.transfer_descriptor.ec = 0;
- if ((remain == mps) || (mps == 0)) {
- // retire transfer descriptor
- a = ohcist.endpoint_descriptor.headp;
- ohcist.endpoint_descriptor.headp = ohcist.transfer_descriptor.nexttd;
- ohcist.transfer_descriptor.nexttd = ohcist.hc_regs[HcDoneHead];
- ohcist.hc_regs[HcDoneHead] = a;
- ohcist.endpoint_descriptor.c = ohcist.transfer_descriptor.t & 1;
- if (ohcist.transfer_descriptor.di != 7) {
- if (ohcist.transfer_descriptor.di < ohcist.writebackdonehadcounter)
- ohcist.writebackdonehadcounter = ohcist.transfer_descriptor.di;
- }
- usb_ohci_writeback_transfer_descriptor(a);
- usb_ohci_writeback_endpoint_descriptor(ohcist.hc_regs[HcControlCurrentED]);
- } else {
- usb_ohci_writeback_transfer_descriptor(ohcist.endpoint_descriptor.headp);
- }
- } else
- ohcist.hc_regs[HcControlCurrentED] = ohcist.endpoint_descriptor.nexted;
- } else
- ohcist.hc_regs[HcControlCurrentED] = ohcist.endpoint_descriptor.nexted;
- // one bulk every n control transfers
- ohcist.interruptbulkratio--;
- if (ohcist.interruptbulkratio <= 0) {
- ohcist.interruptbulkratio = (ohcist.hc_regs[HcControl] & 3) + 1;
- cont = false;
- }
- }
- }
- }
- list = 2;
- }
- if (list == 2) {
- // bulk
- if (ohcist.hc_regs[HcControl] & (1 << 5)) {
- ohcist.hc_regs[HcCommandStatus] &= ~(1 << 2);
- if (ohcist.hc_regs[HcControlCurrentED] == 0)
- list = 0;
- else if (ohcist.hc_regs[HcControl] & (1 << 4))
- list = 1;
- else
- list = 0;
- }
- }
+ p = -1;
+ if (p >= 0) {
+ for (int a = 0; a < 16; a++) {
+ if (hacks[p].modify[a].address == 0)
+ break;
+ m_maincpu->space(0).write_byte(hacks[p].modify[a].address, hacks[p].modify[a].write_byte);
}
- if (ohcist.framenumber == 0)
- ohcist.hc_regs[HcInterruptStatus] |= FrameNumberOverflow;
- ohcist.hc_regs[HcInterruptStatus] |= StartofFrame;
- if ((ohcist.writebackdonehadcounter != 0) && (ohcist.writebackdonehadcounter != 7))
- ohcist.writebackdonehadcounter--;
- if ((ohcist.writebackdonehadcounter == 0) && ((ohcist.hc_regs[HcInterruptStatus] & WritebackDoneHead) == 0)) {
- UINT32 b = 0;
-
- if ((ohcist.hc_regs[HcInterruptStatus] & ohcist.hc_regs[HcInterruptEnable]) != WritebackDoneHead)
- b = 1;
- ohcist.hc_regs[HcInterruptStatus] |= WritebackDoneHead;
- ohcist.space->write_dword(hcca + 0x84, ohcist.hc_regs[HcDoneHead] | b);
- ohcist.hc_regs[HcDoneHead] = 0;
- ohcist.writebackdonehadcounter = 7;
- }
- }
- if (changed != 0) {
- ohcist.hc_regs[HcInterruptStatus] |= RootHubStatusChange;
- }
- usb_ohci_interrupts();
-}
-
-void chihiro_state::usb_ohci_plug(int port, ohci_function_device *function)
-{
- if ((port > 0) && (port <= 4)) {
- ohcist.ports[port].function = function;
- ohcist.hc_regs[HcRhPortStatus1+port-1] = 1;
}
-}
-
-static USBStandardDeviceDscriptor devdesc = {18,1,0x201,0xff,0x34,0x56,64,0x100,0x101,0x301,0,0,0,1};
-
-ohci_function_device::ohci_function_device()
-{
- address = 0;
- controldir = 0;
- remain = 0;
- position = NULL;
-}
-
-void ohci_function_device::execute_reset()
-{
- address = 0;
-}
-
-int ohci_function_device::execute_transfer(int address, int endpoint, int pid, UINT8 *buffer, int size)
-{
- if (endpoint == 0) {
- if (pid == SetupPid) {
- struct USBSetupPacket *p=(struct USBSetupPacket *)buffer;
- // define direction
- controldir = p->bmRequestType & 128;
- // case !=0, in data stage and out status stage
- // case ==0, out data stage and in status stage
- position = NULL;
- remain = p->wLength;
- if ((p->bmRequestType & 0x60) == 0) {
- switch (p->bRequest) {
- case GET_DESCRIPTOR:
- if ((p->wValue >> 8) == 1) { // device descriptor
- //p->wValue & 255;
- position = (UINT8 *)&devdesc;
- remain = sizeof(devdesc);
- }
- break;
- case SET_ADDRESS:
- //p->wValue;
- break;
- default:
- break;
- }
- }
- }
- else if (pid == InPid) {
- // case !=0, give data
- // case ==0, nothing
- if (size > remain)
- size = remain;
- if (controldir != 0) {
- if (position != NULL)
- memcpy(buffer, position, size);
- position = position + size;
- remain = remain - size;
- }
- }
- else if (pid == OutPid) {
- // case !=0, nothing
- // case ==0, give data
- if (size > remain)
- size = remain;
- if (controldir == 0) {
- if (position != NULL)
- memcpy(position, buffer, size);
- position = position + size;
- remain = remain - size;
- }
- }
- }
- return size;
-}
-
-void chihiro_state::usb_ohci_interrupts()
-{
- if (((ohcist.hc_regs[HcInterruptStatus] & ohcist.hc_regs[HcInterruptEnable]) != 0) && ((ohcist.hc_regs[HcInterruptEnable] & MasterInterruptEnable) != 0))
- chihiro_devs.pic8259_1->ir1_w(1);
- else
- chihiro_devs.pic8259_1->ir1_w(0);
-}
-
-void chihiro_state::usb_ohci_read_endpoint_descriptor(UINT32 address)
-{
- UINT32 w;
-
- w = ohcist.space->read_dword(address);
- ohcist.endpoint_descriptor.word0 = w;
- ohcist.endpoint_descriptor.fa = w & 0x7f;
- ohcist.endpoint_descriptor.en = (w >> 7) & 15;
- ohcist.endpoint_descriptor.d = (w >> 11) & 3;
- ohcist.endpoint_descriptor.s = (w >> 13) & 1;
- ohcist.endpoint_descriptor.k = (w >> 14) & 1;
- ohcist.endpoint_descriptor.f = (w >> 15) & 1;
- ohcist.endpoint_descriptor.mps = (w >> 16) & 0x7ff;
- ohcist.endpoint_descriptor.tailp = ohcist.space->read_dword(address + 4);
- w = ohcist.space->read_dword(address + 8);
- ohcist.endpoint_descriptor.headp = w & 0xfffffffc;
- ohcist.endpoint_descriptor.h = w & 1;
- ohcist.endpoint_descriptor.c = (w >> 1) & 1;
- ohcist.endpoint_descriptor.nexted = ohcist.space->read_dword(address + 12);
-}
-
-void chihiro_state::usb_ohci_writeback_endpoint_descriptor(UINT32 address)
-{
- UINT32 w;
-
- w = ohcist.endpoint_descriptor.word0 & 0xf8000000;
- w = w | (ohcist.endpoint_descriptor.mps << 16) | (ohcist.endpoint_descriptor.f << 15) | (ohcist.endpoint_descriptor.k << 14) | (ohcist.endpoint_descriptor.s << 13) | (ohcist.endpoint_descriptor.d << 11) | (ohcist.endpoint_descriptor.en << 7) | ohcist.endpoint_descriptor.fa;
- ohcist.space->write_dword(address, w);
- w = ohcist.endpoint_descriptor.headp | (ohcist.endpoint_descriptor.c << 1) | ohcist.endpoint_descriptor.h;
- ohcist.space->write_dword(address + 8, w);
-}
-
-void chihiro_state::usb_ohci_read_transfer_descriptor(UINT32 address)
-{
- UINT32 w;
-
- w = ohcist.space->read_dword(address);
- ohcist.transfer_descriptor.word0 = w;
- ohcist.transfer_descriptor.cc = (w >> 28) & 15;
- ohcist.transfer_descriptor.ec= (w >> 26) & 3;
- ohcist.transfer_descriptor.t= (w >> 24) & 3;
- ohcist.transfer_descriptor.di= (w >> 21) & 7;
- ohcist.transfer_descriptor.dp= (w >> 19) & 3;
- ohcist.transfer_descriptor.r = (w >> 18) & 1;
- ohcist.transfer_descriptor.cbp = ohcist.space->read_dword(address + 4);
- ohcist.transfer_descriptor.nexttd = ohcist.space->read_dword(address + 8);
- ohcist.transfer_descriptor.be = ohcist.space->read_dword(address + 12);
-}
-
-void chihiro_state::usb_ohci_writeback_transfer_descriptor(UINT32 address)
-{
- UINT32 w;
-
- w = ohcist.transfer_descriptor.word0 & 0x0003ffff;
- w = w | (ohcist.transfer_descriptor.cc << 28) | (ohcist.transfer_descriptor.ec << 26) | (ohcist.transfer_descriptor.t << 24) | (ohcist.transfer_descriptor.di << 21) | (ohcist.transfer_descriptor.dp << 19) | (ohcist.transfer_descriptor.r << 18);
- ohcist.space->write_dword(address, w);
- ohcist.space->write_dword(address + 4, ohcist.transfer_descriptor.cbp);
- ohcist.space->write_dword(address + 8, ohcist.transfer_descriptor.nexttd);
-}
-
-void chihiro_state::usb_ohci_read_isochronous_transfer_descriptor(UINT32 address)
-{
- UINT32 w;
-
- w = ohcist.space->read_dword(address);
- ohcist.isochronous_transfer_descriptor.cc = (w >> 28) & 15;
- ohcist.isochronous_transfer_descriptor.fc = (w >> 24) & 7;
- ohcist.isochronous_transfer_descriptor.di = (w >> 21) & 7;
- ohcist.isochronous_transfer_descriptor.sf = w & 0xffff;
- ohcist.isochronous_transfer_descriptor.bp0 = ohcist.space->read_dword(address + 4) & 0xfffff000;
- ohcist.isochronous_transfer_descriptor.nexttd = ohcist.space->read_dword(address + 8);
- ohcist.isochronous_transfer_descriptor.be = ohcist.space->read_dword(address + 12);
- w = ohcist.space->read_dword(address + 16);
- ohcist.isochronous_transfer_descriptor.offset[0] = w & 0xffff;
- ohcist.isochronous_transfer_descriptor.offset[1] = (w >> 16) & 0xffff;
- w = ohcist.space->read_dword(address + 20);
- ohcist.isochronous_transfer_descriptor.offset[2] = w & 0xffff;
- ohcist.isochronous_transfer_descriptor.offset[3] = (w >> 16) & 0xffff;
- w = ohcist.space->read_dword(address + 24);
- ohcist.isochronous_transfer_descriptor.offset[4] = w & 0xffff;
- ohcist.isochronous_transfer_descriptor.offset[5] = (w >> 16) & 0xffff;
- w = ohcist.space->read_dword(address + 28);
- ohcist.isochronous_transfer_descriptor.offset[6] = w & 0xffff;
- ohcist.isochronous_transfer_descriptor.offset[7] = (w >> 16) & 0xffff;
-}
-
-/*
- * Audio
- */
-
-READ32_MEMBER(chihiro_state::audio_apu_r)
-{
- logerror("Audio_APU: read from %08X mask %08X\n", 0xfe800000 + offset * 4, mem_mask);
- if (offset == 0x20010 / 4) // some kind of internal counter or state value
- return 0x20 + 4 + 8 + 0x48 + 0x80;
- return apust.memory[offset];
-}
-
-WRITE32_MEMBER(chihiro_state::audio_apu_w)
-{
- //UINT32 old;
- UINT32 v;
-
- logerror("Audio_APU: write at %08X mask %08X value %08X\n", 0xfe800000 + offset * 4, mem_mask, data);
- //old = apust.memory[offset];
- apust.memory[offset] = data;
- if (offset == 0x02040 / 4) // address of memory area with scatter-gather info (gpdsp scratch dma)
- apust.gpdsp_sgaddress = data;
- if (offset == 0x020d4 / 4) { // block count (gpdsp)
- apust.gpdsp_sgblocks = data;
- apust.gpdsp_address = apust.space->read_dword(apust.gpdsp_sgaddress); // memory address of first block
- apust.timer->enable();
- apust.timer->adjust(attotime::from_msec(1), 0, attotime::from_msec(1));
- }
- if (offset == 0x02048 / 4) // (epdsp scratch dma)
- apust.epdsp_sgaddress = data;
- if (offset == 0x020dc / 4) // (epdsp)
- apust.epdsp_sgblocks = data;
- if (offset == 0x0204c / 4) // address of memory area with information about blocks
- apust.unknown_sgaddress = data;
- if (offset == 0x020e0 / 4) // block count - 1
- apust.unknown_sgblocks = data;
- if (offset == 0x0202c / 4) { // address of memory area with 0x80 bytes for each voice
- apust.voicedata_address = data;
- return;
- }
- if (offset == 0x04024 / 4) // offset in memory area indicated by 0x204c (analog output ?)
- return;
- if (offset == 0x04034 / 4) // size
- return;
- if (offset == 0x04028 / 4) // offset in memory area indicated by 0x204c (digital output ?)
- return;
- if (offset == 0x04038 / 4) // size
- return;
- if (offset == 0x20804 / 4) { // block number for scatter-gather heap that stores sampled audio to be played
- if (data >= 1024) {
- logerror("Audio_APU: sg block number too high, increase size of voices_heap_blockaddr\n");
- apust.memory[offset] = 1023;
- }
- return;
- }
- if (offset == 0x20808 / 4) { // block address for scatter-gather heap that stores sampled audio to be played
- apust.voices_heap_blockaddr[apust.memory[0x20804 / 4]] = data;
- return;
- }
- if (offset == 0x202f8 / 4) { // voice number for parameters ?
- apust.voice_number = data;
- return;
- }
- if (offset == 0x202fc / 4) // 1 when accessing voice parameters 0 otherwise
- return;
- if (offset == 0x20304 / 4) { // format
- /*
- bits 28-31 sample format:
- 0 8-bit pcm
- 5 16-bit pcm
- 10 adpcm ?
- 14 24-bit pcm
- 15 32-bit pcm
- bits 16-20 number of channels - 1:
- 0 mono
- 1 stereo
- */
- return;
- }
- if (offset == 0x2037c / 4) { // value related to sample rate
- INT16 v = (INT16)(data >> 16); // upper 16 bits as a signed 16 bit value
- float vv = ((float)v) / 4096.0f; // divide by 4096
- float vvv = powf(2, vv); // two to the vv
- int f = vvv*48000.0f; // sample rate
- apust.voices_frequency[apust.voice_number] = f;
- return;
- }
- if (offset == 0x203a0 / 4) // start offset of data in scatter-gather heap
- return;
- if (offset == 0x203a4 / 4) { // first sample to play
- apust.voices_position_start[apust.voice_number] = data * 1000;
- return;
- }
- if (offset == 0x203dc / 4) { // last sample to play
- apust.voices_position_end[apust.voice_number] = data * 1000;
- return;
- }
- if (offset == 0x2010c / 4) // voice processor 0 idle 1 not idle ?
- return;
- if (offset == 0x20124 / 4) { // voice number to activate ?
- v = apust.voice_number;
- apust.voices_active[v >> 6] |= ((UINT64)1 << (v & 63));
- apust.voices_position[v] = apust.voices_position_start[apust.voice_number];
- apust.voices_position_increment[apust.voice_number] = apust.voices_frequency[apust.voice_number];
- return;
- }
- if (offset == 0x20128 / 4) { // voice number to deactivate ?
- v = apust.voice_number;
- apust.voices_active[v >> 6] &= ~(1 << (v & 63));
- return;
- }
- if (offset == 0x20140 / 4) // voice number to ?
- return;
- if ((offset >= 0x20200 / 4) && (offset < 0x20280 / 4)) // headroom for each of the 32 mixbins
- return;
- if (offset == 0x20280 / 4) // hrtf headroom ?
- return;
-}
-
-READ32_MEMBER(chihiro_state::audio_ac93_r)
-{
- UINT32 ret = 0;
-
- logerror("Audio_AC3: read from %08X mask %08X\n", 0xfec00000 + offset * 4, mem_mask);
- if (offset < 0x80 / 4)
- {
- ret = ac97st.mixer_regs[offset];
- }
- if ((offset >= 0x100 / 4) && (offset <= 0x138 / 4))
- {
- offset = offset - 0x100 / 4;
- if (offset == 0x18 / 4)
- {
- ac97st.controller_regs[offset] &= ~0x02000000; // REGRST: register reset
- }
- if (offset == 0x30 / 4)
- {
- ac97st.controller_regs[offset] |= 0x100; // PCRDY: primary codec ready
- }
- if (offset == 0x34 / 4)
- {
- ac97st.controller_regs[offset] &= ~1; // CAS: codec access semaphore
- }
- ret = ac97st.controller_regs[offset];
- }
- return ret;
-}
-
-WRITE32_MEMBER(chihiro_state::audio_ac93_w)
-{
- logerror("Audio_AC3: write at %08X mask %08X value %08X\n", 0xfec00000 + offset * 4, mem_mask, data);
- if (offset < 0x80 / 4)
- {
- COMBINE_DATA(ac97st.mixer_regs + offset);
- }
- if ((offset >= 0x100 / 4) && (offset <= 0x138 / 4))
- {
- offset = offset - 0x100 / 4;
- COMBINE_DATA(ac97st.controller_regs + offset);
- }
-}
-
-TIMER_CALLBACK_MEMBER(chihiro_state::audio_apu_timer)
-{
- int cmd;
- int bb, b, v;
- UINT64 bv;
- UINT32 phys;
-
- cmd = apust.space->read_dword(apust.gpdsp_address + 0x800 + 0x10);
- if (cmd == 3)
- apust.space->write_dword(apust.gpdsp_address + 0x800 + 0x10, 0);
- /*else
- logerror("Audio_APU: unexpected value at address %d\n",apust.gpdsp_address+0x800+0x10);*/
- for (b = 0; b < 4; b++) {
- bv = 1;
- for (bb = 0; bb < 64; bb++) {
- if (apust.voices_active[b] & bv) {
- v = bb + (b << 6);
- apust.voices_position[v] += apust.voices_position_increment[v];
- while (apust.voices_position[v] >= apust.voices_position_end[v])
- apust.voices_position[v] = apust.voices_position_start[v] + apust.voices_position[v] - apust.voices_position_end[v] - 1000;
- phys = apust.voicedata_address + 0x80 * v;
- apust.space->write_dword(phys + 0x58, apust.voices_position[v] / 1000);
- }
- bv = bv << 1;
- }
- }
-}
-
-static UINT32 hubintiasbridg_pci_r(device_t *busdevice, device_t *device, int function, int reg, UINT32 mem_mask)
-{
-#ifdef LOG_PCI
- // logerror(" bus:0 function:%d register:%d mask:%08X\n",function,reg,mem_mask);
-#endif
- if ((function == 0) && (reg == 8))
- return 0xb4; // 0:1:0 revision id must be at least 0xb4, otherwise usb will require a hub
- return 0;
-}
-
-static void hubintiasbridg_pci_w(device_t *busdevice, device_t *device, int function, int reg, UINT32 data, UINT32 mem_mask)
-{
-#ifdef LOG_PCI
- if (reg >= 16) logerror(" bus:0 function:%d register:%d data:%08X mask:%08X\n", function, reg, data, mem_mask);
-#endif
-}
-
-/*
- * dummy for non connected devices
- */
-
-static UINT32 dummy_pci_r(device_t *busdevice, device_t *device, int function, int reg, UINT32 mem_mask)
-{
-#ifdef LOG_PCI
- // logerror(" bus:0 function:%d register:%d mask:%08X\n",function,reg,mem_mask);
-#endif
- return 0;
-}
-
-static void dummy_pci_w(device_t *busdevice, device_t *device, int function, int reg, UINT32 data, UINT32 mem_mask)
-{
-#ifdef LOG_PCI
- if (reg >= 16) logerror(" bus:0 function:%d register:%d data:%08X mask:%08X\n", function, reg, data, mem_mask);
-#endif
-}
-
-READ32_MEMBER(chihiro_state::dummy_r)
-{
- return 0;
-}
-
-WRITE32_MEMBER(chihiro_state::dummy_w)
-{
+ usbhack_counter++;
}
// ======================> ide_baseboard_device
@@ -2263,7 +796,7 @@ void chihiro_state::baseboard_ide_event(int type, UINT8 *read_buffer, UINT8 *wri
// clear
write_buffer[0] = write_buffer[1] = write_buffer[2] = write_buffer[3] = 0;
// irq 10 active
- chihiro_devs.pic8259_2->ir2_w(1);
+ xbox_base_devs.pic8259_2->ir2_w(1);
}
UINT8 *chihiro_state::baseboard_ide_dimmboard(UINT32 lba)
@@ -2274,192 +807,6 @@ UINT8 *chihiro_state::baseboard_ide_dimmboard(UINT32 lba)
return NULL;
}
-/*
- * PIC & PIT
- */
-
-WRITE_LINE_MEMBER(chihiro_state::chihiro_pic8259_1_set_int_line)
-{
- m_maincpu->set_input_line(0, state ? HOLD_LINE : CLEAR_LINE);
-}
-
-READ8_MEMBER(chihiro_state::get_slave_ack)
-{
- if (offset == 2) { // IRQ = 2
- return chihiro_devs.pic8259_2->acknowledge();
- }
- return 0x00;
-}
-
-IRQ_CALLBACK_MEMBER(chihiro_state::irq_callback)
-{
- int r = 0;
- r = chihiro_devs.pic8259_2->acknowledge();
- if (r == 0)
- {
- r = chihiro_devs.pic8259_1->acknowledge();
- }
- if (debug_irq_active)
- debug_generate_irq(debug_irq_number, false);
- return r;
-}
-
-WRITE_LINE_MEMBER(chihiro_state::chihiro_pit8254_out0_changed)
-{
- if (chihiro_devs.pic8259_1)
- {
- chihiro_devs.pic8259_1->ir0_w(state);
- }
-}
-
-WRITE_LINE_MEMBER(chihiro_state::chihiro_pit8254_out2_changed)
-{
- //chihiro_speaker_set_input( state ? 1 : 0 );
-}
-
-/*
- * SMbus devices
- */
-
-int smbus_callback_pic16lc(chihiro_state &chs, int command, int rw, int data)
-{
- return chs.smbus_pic16lc(command, rw, data);
-}
-
-int chihiro_state::smbus_pic16lc(int command, int rw, int data)
-{
- if (rw == 1) { // read
- if (command == 0) {
- if (pic16lc_buffer[0] == 'D')
- pic16lc_buffer[0] = 'X';
- else if (pic16lc_buffer[0] == 'X')
- pic16lc_buffer[0] = 'B';
- else if (pic16lc_buffer[0] == 'B')
- pic16lc_buffer[0] = 'D';
- }
- logerror("pic16lc: %d %d %d\n", command, rw, pic16lc_buffer[command]);
- return pic16lc_buffer[command];
- }
- else
- if (command == 0)
- pic16lc_buffer[0] = 'B';
- else
- pic16lc_buffer[command] = (UINT8)data;
- logerror("pic16lc: %d %d %d\n", command, rw, data);
- return 0;
-}
-
-int smbus_callback_cx25871(chihiro_state &chs, int command, int rw, int data)
-{
- return chs.smbus_cx25871(command, rw, data);
-}
-
-int chihiro_state::smbus_cx25871(int command, int rw, int data)
-{
- logerror("cx25871: %d %d %d\n", command, rw, data);
- return 0;
-}
-
-// let's try to fake the missing eeprom
-static int dummyeeprom[256]={0x94,0x18,0x10,0x59,0x83,0x58,0x15,0xDA,0xDF,0xCC,0x1D,0x78,0x20,0x8A,0x61,0xB8,0x08,0xB4,0xD6,0xA8,
- 0x9E,0x77,0x9C,0xEB,0xEA,0xF8,0x93,0x6E,0x3E,0xD6,0x9C,0x49,0x6B,0xB5,0x6E,0xAB,0x6D,0xBC,0xB8,0x80,0x68,0x9D,0xAA,0xCD,0x0B,0x83,
- 0x17,0xEC,0x2E,0xCE,0x35,0xA8,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x61,0x62,0x63,0xAA,0xBB,0xCC,0xDD,0xEE,0xFF,0x00,0x00,
- 0x4F,0x6E,0x6C,0x69,0x6E,0x65,0x6B,0x65,0x79,0x69,0x6E,0x76,0x61,0x6C,0x69,0x64,0x00,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,
- 0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
-
-int smbus_callback_eeprom(chihiro_state &chs, int command, int rw, int data)
-{
- return chs.smbus_eeprom(command, rw, data);
-}
-
-int chihiro_state::smbus_eeprom(int command, int rw, int data)
-{
- if (command >= 112)
- return 0;
- if (rw == 1) { // if reading
- // 8003b744,3b744=0x90 0x90
- // hack to avoid hanging if eeprom contents are not correct
- // this would need dumping the serial eeprom on the xbox board
- if (command == 0) {
- m_maincpu->space(0).write_byte(0x3b744, 0x90);
- m_maincpu->space(0).write_byte(0x3b745, 0x90);
- m_maincpu->space(0).write_byte(0x3b766, 0xc9);
- m_maincpu->space(0).write_byte(0x3b767, 0xc3);
- }
- data = dummyeeprom[command] + dummyeeprom[command + 1] * 256;
- logerror("eeprom: %d %d %d\n", command, rw, data);
- return data;
- }
- logerror("eeprom: %d %d %d\n", command, rw, data);
- dummyeeprom[command] = data;
- return 0;
-}
-
-/*
- * SMbus controller
- */
-
-void chihiro_state::smbus_register_device(int address, int(*handler)(chihiro_state &chs, int command, int rw, int data))
-{
- if (address < 128)
- smbusst.devices[address] = handler;
-}
-
-READ32_MEMBER(chihiro_state::smbus_r)
-{
- if ((offset == 0) && (mem_mask == 0xff)) // 0 smbus status
- smbusst.words[offset] = (smbusst.words[offset] & ~mem_mask) | ((smbusst.status << 0) & mem_mask);
- if ((offset == 1) && ((mem_mask == 0x00ff0000) || (mem_mask == 0xffff0000))) // 6 smbus data
- smbusst.words[offset] = (smbusst.words[offset] & ~mem_mask) | ((smbusst.data << 16) & mem_mask);
- return smbusst.words[offset];
-}
-
-WRITE32_MEMBER(chihiro_state::smbus_w)
-{
- COMBINE_DATA(smbusst.words);
- if ((offset == 0) && (mem_mask == 0xff)) // 0 smbus status
- {
- if (!((smbusst.status ^ data) & 0x10)) // clearing interrupt
- chihiro_devs.pic8259_2->ir3_w(0); // IRQ 11
- smbusst.status &= ~data;
- }
- if ((offset == 0) && (mem_mask == 0xff0000)) // 2 smbus control
- {
- data = data >> 16;
- smbusst.control = data;
- int cycletype = smbusst.control & 7;
- if (smbusst.control & 8) { // start
- if ((cycletype & 6) == 2)
- {
- if (smbusst.devices[smbusst.address])
- if (smbusst.rw == 0)
- smbusst.devices[smbusst.address](*this, smbusst.command, smbusst.rw, smbusst.data);
- else
- smbusst.data = smbusst.devices[smbusst.address](*this, smbusst.command, smbusst.rw, smbusst.data);
- else
- logerror("SMBUS: access to missing device at address %d\n", smbusst.address);
- smbusst.status |= 0x10;
- if (smbusst.control & 0x10)
- {
- chihiro_devs.pic8259_2->ir3_w(1); // IRQ 11
- }
- }
- }
- }
- if ((offset == 1) && (mem_mask == 0xff)) // 4 smbus address
- {
- smbusst.address = data >> 1;
- smbusst.rw = data & 1;
- }
- if ((offset == 1) && ((mem_mask == 0x00ff0000) || (mem_mask == 0xffff0000))) // 6 smbus data
- {
- data = data >> 16;
- smbusst.data = data;
- }
- if ((offset == 2) && (mem_mask == 0xff)) // 8 smbus command
- smbusst.command = data;
-}
-
READ32_MEMBER(chihiro_state::mediaboard_r)
{
UINT32 r;
@@ -2486,29 +833,16 @@ WRITE32_MEMBER(chihiro_state::mediaboard_w)
logerror("I/O port write %04x mask %08X value %08X\n", offset * 4 + 0x4000, mem_mask, data);
// irq 10
if ((offset == 0x38) && ACCESSING_BITS_8_15)
- chihiro_devs.pic8259_2->ir2_w(0);
+ xbox_base_devs.pic8259_2->ir2_w(0);
}
-static ADDRESS_MAP_START(xbox_map, AS_PROGRAM, 32, chihiro_state)
- AM_RANGE(0x00000000, 0x07ffffff) AM_RAM // 128 megabytes
- AM_RANGE(0xf0000000, 0xf0ffffff) AM_RAM
- AM_RANGE(0xfd000000, 0xfdffffff) AM_RAM AM_READWRITE(geforce_r, geforce_w)
- AM_RANGE(0xfed00000, 0xfed003ff) AM_READWRITE(usbctrl_r, usbctrl_w)
- AM_RANGE(0xfe800000, 0xfe85ffff) AM_READWRITE(audio_apu_r, audio_apu_w)
- AM_RANGE(0xfec00000, 0xfec001ff) AM_READWRITE(audio_ac93_r, audio_ac93_w)
- AM_RANGE(0xff000000, 0xffffffff) AM_ROM AM_REGION("bios", 0) AM_MIRROR(0x00f80000)
+static ADDRESS_MAP_START(chihiro_map, AS_PROGRAM, 32, chihiro_state)
+ AM_IMPORT_FROM(xbox_base_map)
ADDRESS_MAP_END
-static ADDRESS_MAP_START(xbox_map_io, AS_IO, 32, chihiro_state)
- AM_RANGE(0x0020, 0x0023) AM_DEVREADWRITE8("pic8259_1", pic8259_device, read, write, 0xffffffff)
- AM_RANGE(0x0040, 0x0043) AM_DEVREADWRITE8("pit8254", pit8254_device, read, write, 0xffffffff)
- AM_RANGE(0x00a0, 0x00a3) AM_DEVREADWRITE8("pic8259_2", pic8259_device, read, write, 0xffffffff)
- AM_RANGE(0x01f0, 0x01f7) AM_DEVREADWRITE("ide", bus_master_ide_controller_device, read_cs0, write_cs0)
- AM_RANGE(0x0cf8, 0x0cff) AM_DEVREADWRITE("pcibus", pci_bus_legacy_device, read, write)
+static ADDRESS_MAP_START(chihiro_map_io, AS_IO, 32, chihiro_state)
+ AM_IMPORT_FROM(xbox_base_map_io)
AM_RANGE(0x4000, 0x40ff) AM_READWRITE(mediaboard_r, mediaboard_w)
- AM_RANGE(0x8000, 0x80ff) AM_READWRITE(dummy_r, dummy_w)
- AM_RANGE(0xc000, 0xc0ff) AM_READWRITE(smbus_r, smbus_w)
- AM_RANGE(0xff60, 0xff67) AM_DEVREADWRITE("ide", bus_master_ide_controller_device, bmdma_r, bmdma_w)
ADDRESS_MAP_END
static INPUT_PORTS_START(chihiro)
@@ -2516,45 +850,14 @@ INPUT_PORTS_END
void chihiro_state::machine_start()
{
- nvidia_nv2a = auto_alloc(machine(), nv2a_renderer(machine()));
- memset(pic16lc_buffer, 0, sizeof(pic16lc_buffer));
- pic16lc_buffer[0] = 'B';
- pic16lc_buffer[4] = 0; // A/V connector, 2=vga
- smbus_register_device(0x10, smbus_callback_pic16lc);
- smbus_register_device(0x45, smbus_callback_cx25871);
- smbus_register_device(0x54, smbus_callback_eeprom);
- chihiro_devs.pic8259_1 = machine().device<pic8259_device>("pic8259_1");
- chihiro_devs.pic8259_2 = machine().device<pic8259_device>("pic8259_2");
+ xbox_base_state::machine_start();
chihiro_devs.ide = machine().device<bus_master_ide_controller_device>("ide");
chihiro_devs.dimmboard = machine().device<naomi_gdrom_board>("rom_board");
if (chihiro_devs.dimmboard != NULL) {
dimm_board_memory = chihiro_devs.dimmboard->memory(dimm_board_memory_size);
}
- memset(apust.memory, 0, sizeof(apust.memory));
- memset(apust.voices_heap_blockaddr, 0, sizeof(apust.voices_heap_blockaddr));
- memset(apust.voices_active, 0, sizeof(apust.voices_active));
- memset(apust.voices_position, 0, sizeof(apust.voices_position));
- memset(apust.voices_position_start, 0, sizeof(apust.voices_position_start));
- memset(apust.voices_position_end, 0, sizeof(apust.voices_position_end));
- memset(apust.voices_position_increment, 0, sizeof(apust.voices_position_increment));
- apust.space = &m_maincpu->space();
- apust.timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(chihiro_state::audio_apu_timer), this), (void *)"APU Timer");
- apust.timer->enable(false);
if (machine().debug_flags & DEBUG_FLAG_ENABLED)
debug_console_register_command(machine(), "chihiro", CMDFLAG_NONE, 0, 1, 4, chihiro_debug_commands);
- memset(&ohcist, 0, sizeof(ohcist));
-#ifdef USB_ENABLED
- ohcist.hc_regs[HcRevision] = 0x10;
- ohcist.hc_regs[HcFmInterval] = 0x2edf;
- ohcist.hc_regs[HcLSThreshold] = 0x628;
- ohcist.hc_regs[HcRhDescriptorA] = 4;
- ohcist.interruptbulkratio = 1;
- ohcist.writebackdonehadcounter = 7;
- ohcist.space = &m_maincpu->space();
- ohcist.timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(chihiro_state::usb_ohci_timer), this), (void *)"USB OHCI Timer");
- ohcist.timer->enable(false);
- usb_ohci_plug(1, new ohci_function_device()); // test connect
-#endif
usbhack_index = -1;
for (int a = 1; a < 2; a++)
if (strcmp(machine().basename(), hacks[a].game_name) == 0) {
@@ -2563,72 +866,23 @@ void chihiro_state::machine_start()
}
usbhack_counter = 0;
// savestates
- save_item(NAME(debug_irq_active));
- save_item(NAME(debug_irq_number));
- save_item(NAME(smbusst.status));
- save_item(NAME(smbusst.control));
- save_item(NAME(smbusst.address));
- save_item(NAME(smbusst.data));
- save_item(NAME(smbusst.command));
- save_item(NAME(smbusst.rw));
- save_item(NAME(smbusst.words));
- save_item(NAME(pic16lc_buffer));
save_item(NAME(usbhack_counter));
- nvidia_nv2a->start(&m_maincpu->space());
- nvidia_nv2a->savestate_items();
}
static SLOT_INTERFACE_START(ide_baseboard)
SLOT_INTERFACE("bb", IDE_BASEBOARD)
SLOT_INTERFACE_END
-static MACHINE_CONFIG_START(chihiro_base, chihiro_state)
-
- /* basic machine hardware */
- MCFG_CPU_ADD("maincpu", PENTIUM3, 733333333) /* Wrong! family 6 model 8 stepping 10 */
- MCFG_CPU_PROGRAM_MAP(xbox_map)
- MCFG_CPU_IO_MAP(xbox_map_io)
- MCFG_CPU_IRQ_ACKNOWLEDGE_DRIVER(chihiro_state, irq_callback)
-
- MCFG_QUANTUM_TIME(attotime::from_hz(6000))
-
- MCFG_PCI_BUS_LEGACY_ADD("pcibus", 0)
- MCFG_PCI_BUS_LEGACY_DEVICE(0, "PCI Bridge Device - Host Bridge", dummy_pci_r, dummy_pci_w)
- MCFG_PCI_BUS_LEGACY_DEVICE(1, "HUB Interface - ISA Bridge", hubintiasbridg_pci_r, hubintiasbridg_pci_w)
- MCFG_PCI_BUS_LEGACY_DEVICE(2, "OHCI USB Controller 1", dummy_pci_r, dummy_pci_w)
- MCFG_PCI_BUS_LEGACY_DEVICE(3, "OHCI USB Controller 2", dummy_pci_r, dummy_pci_w)
- MCFG_PCI_BUS_LEGACY_DEVICE(4, "MCP Networking Adapter", dummy_pci_r, dummy_pci_w)
- MCFG_PCI_BUS_LEGACY_DEVICE(5, "MCP APU", dummy_pci_r, dummy_pci_w)
- MCFG_PCI_BUS_LEGACY_DEVICE(6, "AC`97 Audio Codec Interface", dummy_pci_r, dummy_pci_w)
- MCFG_PCI_BUS_LEGACY_DEVICE(9, "IDE Controller", dummy_pci_r, dummy_pci_w)
- MCFG_PCI_BUS_LEGACY_DEVICE(30, "AGP Host to PCI Bridge", dummy_pci_r, dummy_pci_w)
- MCFG_PCI_BUS_LEGACY_ADD("agpbus", 1)
- MCFG_PCI_BUS_LEGACY_SIBLING("pcibus")
- MCFG_PCI_BUS_LEGACY_DEVICE(0, "NV2A GeForce 3MX Integrated GPU/Northbridge", geforce_pci_r, geforce_pci_w)
- MCFG_PIC8259_ADD("pic8259_1", WRITELINE(chihiro_state, chihiro_pic8259_1_set_int_line), VCC, READ8(chihiro_state, get_slave_ack))
- MCFG_PIC8259_ADD("pic8259_2", DEVWRITELINE("pic8259_1", pic8259_device, ir2_w), GND, NULL)
-
- MCFG_DEVICE_ADD("pit8254", PIT8254, 0)
- MCFG_PIT8253_CLK0(1125000) /* heartbeat IRQ */
- MCFG_PIT8253_OUT0_HANDLER(WRITELINE(chihiro_state, chihiro_pit8254_out0_changed))
- MCFG_PIT8253_CLK1(1125000) /* (unused) dram refresh */
- MCFG_PIT8253_CLK2(1125000) /* (unused) pio port c pin 4, and speaker polling enough */
- MCFG_PIT8253_OUT2_HANDLER(WRITELINE(chihiro_state, chihiro_pit8254_out2_changed))
-
- MCFG_BUS_MASTER_IDE_CONTROLLER_ADD("ide", ide_baseboard, NULL, "bb", true)
- MCFG_ATA_INTERFACE_IRQ_HANDLER(DEVWRITELINE("pic8259_2", pic8259_device, ir6_w))
- MCFG_BUS_MASTER_IDE_CONTROLLER_SPACE("maincpu", AS_PROGRAM)
-
- /* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_SIZE(640, 480)
- MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479)
- MCFG_SCREEN_UPDATE_DRIVER(chihiro_state, screen_update_callback)
- MCFG_SCREEN_VBLANK_DRIVER(chihiro_state, vblank_callback)
-
- MCFG_PALETTE_ADD("palette", 65536)
+static MACHINE_CONFIG_DERIVED_CLASS(chihiro_base, xbox_base, chihiro_state)
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(chihiro_map)
+ MCFG_CPU_IO_MAP(chihiro_map_io)
+
+ //MCFG_BUS_MASTER_IDE_CONTROLLER_ADD("ide", ide_baseboard, NULL, "bb", true)
+ MCFG_DEVICE_MODIFY("ide:0")
+ MCFG_DEVICE_SLOT_INTERFACE(ide_baseboard, NULL, true)
+ MCFG_DEVICE_MODIFY("ide:1")
+ MCFG_DEVICE_SLOT_INTERFACE(ide_baseboard, "bb", true)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED(chihirogd, chihiro_base)
@@ -2642,7 +896,7 @@ MACHINE_CONFIG_END
ROMX_LOAD(name, offset, length, hash, ROM_BIOS(bios+1)) /* Note '+1' */
#define CHIHIRO_BIOS \
- ROM_REGION( 0x1000000, "bios", 0) \
+ ROM_REGION( 0x100000, "bios", 0) \
ROM_SYSTEM_BIOS( 0, "bios0", "Chihiro Bios" ) \
ROM_LOAD_BIOS( 0, "chihiro_xbox_bios.bin", 0x000000, 0x80000, CRC(66232714) SHA1(b700b0041af8f84835e45d1d1250247bf7077188) ) \
ROM_REGION( 0x404080, "others", 0) \
@@ -2770,7 +1024,7 @@ ROM_START( mj2c )
ROM_LOAD( "317-0374-jpn.pic", 0x000000, 0x004000, CRC(004f77a1) SHA1(bc5c6950293f3bff60bf7913d20a2046aa19ea69) )
ROM_END
-ROM_START( mj2f )
+ROM_START( mj2 )
CHIHIRO_BIOS
DISK_REGION( "gdrom" )
@@ -2796,11 +1050,12 @@ track01.bin 150 599 1058400
track02.raw 750 2101 3179904
track03.bin 45150 549299 1185760800
*/
-ROM_START( mj2 )
+ROM_START( mj2g )
CHIHIRO_BIOS
DISK_REGION( "gdrom" )
- DISK_IMAGE_READONLY( "gdx-0006g", 0, SHA1(e306837d5c093fdf1e9ff02239a8563535b1c181) )
+ // this is not CHDv4, but a really bad dump, only ~1/3 of disk content is dumped
+ DISK_IMAGE_READONLY( "gdx-0006g", 0, BAD_DUMP SHA1(e306837d5c093fdf1e9ff02239a8563535b1c181) )
ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF)
ROM_LOAD( "317-0374-jpn.pic", 0x000000, 0x004000, CRC(004f77a1) SHA1(bc5c6950293f3bff60bf7913d20a2046aa19ea69) )
@@ -2973,58 +1228,62 @@ ROM_END
/* Main board */
-/*Chihiro*/ GAME( 2002, chihiro, 0, chihiro_base, chihiro, driver_device, 0, ROT0, "Sega", "Chihiro Bios", GAME_NO_SOUND|GAME_NOT_WORKING|GAME_IS_BIOS_ROOT )
+/*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 )
/* 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)", GAME_NO_SOUND|GAME_NOT_WORKING )
-// 0002 GAME( 2003, crtaxhro, crtaxihr, chihirogd, chihiro, driver_device, 0, ROT0, "Sega / Hitmaker", "Crazy Taxi High Roller (GDX-0002)", GAME_NO_SOUND|GAME_NOT_WORKING )
-// 0002A GAME( 2003, crtaxhra, crtaxihr, chihirogd, chihiro, driver_device, 0, ROT0, "Sega / Hitmaker", "Crazy Taxi High Roller (Rev A) (GDX-0002A)", GAME_NO_SOUND|GAME_NOT_WORKING )
-/* 0002B */ GAME( 2003, crtaxihr, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Sega / Hitmaker", "Crazy Taxi High Roller (Rev B) (GDX-0002B)", GAME_NO_SOUND|GAME_NOT_WORKING )
-// 0003 GAME( 2003, vcop3o, vcop3, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Virtua Cop 3 (GDX-0003)", GAME_NO_SOUND|GAME_NOT_WORKING )
-/* 0003A */ GAME( 2003, vcop3, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Virtua Cop 3 (Rev A) (GDX-0003A)", GAME_NO_SOUND|GAME_NOT_WORKING )
-// 0004 GAME( 2003, outr2o, outr2, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "OutRun 2 (GDX-0004)", GAME_NO_SOUND|GAME_NOT_WORKING|GAME_SUPPORTS_SAVE )
-/* 0004A */ GAME( 2003, outr2, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "OutRun 2 (Rev A) (GDX-0004A)", GAME_NO_SOUND|GAME_NOT_WORKING|GAME_SUPPORTS_SAVE )
-// 0005 GAME( 2004, sgolcnpt, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Golf Club Network Pro Tour (GDX-0005)", GAME_NO_SOUND|GAME_NOT_WORKING|GAME_SUPPORTS_SAVE )
-// 0006 GAME( 2004, mj2o, mj2, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 2 (GDX-0006)", GAME_NO_SOUND|GAME_NOT_WORKING )
-// 0006A GAME( 2004, mj2a, mj2, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 2 (Rev A) (GDX-0006A)", GAME_NO_SOUND|GAME_NOT_WORKING )
-// 0006B GAME( 2004, mj2b, mj2, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 2 (Rev B) (GDX-0006B)", GAME_NO_SOUND|GAME_NOT_WORKING )
-/* 0006C */ GAME( 2004, mj2c, mj2, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 2 (Rev C) (GDX-0006C)", GAME_NO_SOUND|GAME_NOT_WORKING )
-// 0006D GAME( 2004, mj2d, mj2, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 2 (Rev D) (GDX-0006D)", GAME_NO_SOUND|GAME_NOT_WORKING )
-// 0006E GAME( 2004, mj2e, mj2, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 2 (Rev E) (GDX-0006E)", GAME_NO_SOUND|GAME_NOT_WORKING )
-/* 0006F */ GAME( 2004, mj2f, mj2, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 2 (Rev F) (GDX-0006F)", GAME_NO_SOUND|GAME_NOT_WORKING )
-/* 0006G */ GAME( 2004, mj2, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 2 (Rev G) (GDX-0006G)", GAME_NO_SOUND|GAME_NOT_WORKING )
-/* 0007 */ GAME( 2004, ollie, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Sega / Amusement Vision", "Ollie King (GDX-0007)", GAME_NO_SOUND|GAME_NOT_WORKING )
-// 0008 GAME( 2004, wangmdjo, wangmidj, chihirogd, chihiro, driver_device, 0, ROT0, "Namco", "Wangan Midnight Maximum Tune (Japan) (GDX-0008)", GAME_NO_SOUND|GAME_NOT_WORKING )
-// 0008A GAME( 2004, wangmdja, wangmidj, chihirogd, chihiro, driver_device, 0, ROT0, "Namco", "Wangan Midnight Maximum Tune (Japan) (Rev A) (GDX-0008A)", GAME_NO_SOUND|GAME_NOT_WORKING )
-// 0008B GAME( 2004, wangmidj, wangmidj, chihirogd, chihiro, driver_device, 0, ROT0, "Namco", "Wangan Midnight Maximum Tune (Japan) (Rev B) (GDX-0008B)", GAME_NO_SOUND|GAME_NOT_WORKING )
-// 0009 GAME( 2004, wangmido, wangmid, chihirogd, chihiro, driver_device, 0, ROT0, "Namco", "Wangan Midnight Maximum Tune (Export) (GDX-0009)", GAME_NO_SOUND|GAME_NOT_WORKING )
-// 0009A GAME( 2004, wangmida, wangmid, chihirogd, chihiro, driver_device, 0, ROT0, "Namco", "Wangan Midnight Maximum Tune (Export) (Rev A) (GDX-0009A)", GAME_NO_SOUND|GAME_NOT_WORKING )
-/* 0009B */ GAME( 2004, wangmid, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Namco", "Wangan Midnight Maximum Tune (Export) (Rev B) (GDX-0009B)", GAME_NO_SOUND|GAME_NOT_WORKING )
+/* 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, vcop3, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Virtua Cop 3 (Rev A) (GDX-0003A)", 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, mj2, chihiro, 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, mj2g, mj2, 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, wangmdjo, wangmidj, chihirogd, chihiro, driver_device, 0, ROT0, "Namco", "Wangan Midnight Maximum Tune (Japan) (GDX-0008)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING )
+// 0008A GAME( 2004, wangmdja, wangmidj, 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, wangmidj, 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 )
// 0010
-// 0011 GAME( 2004, outr2sp, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "OutRun 2 SP (Japan) (GDX-0011)", GAME_NO_SOUND|GAME_NOT_WORKING|GAME_SUPPORTS_SAVE )
-/* 0012 */ GAME( 2004, ghostsqo, ghostsqu, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Ghost Squad (GDX-0012)", GAME_NO_SOUND|GAME_NOT_WORKING )
-/* 0012A */ GAME( 2004, ghostsqu, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Ghost Squad (Rev A) (GDX-0012A)", GAME_NO_SOUND|GAME_NOT_WORKING )
-/* 0013 */ GAME( 2005, gundamos, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Banpresto", "Gundam Battle Operating Simulator (GDX-0013)", GAME_NO_SOUND|GAME_NOT_WORKING )
-// 0014 GAME( 2004, outr2sto, outr2st, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "OutRun 2 Special Tours (GDX-0014)", GAME_NO_SOUND|GAME_NOT_WORKING )
-/* 0014A */ GAME( 2004, outr2st, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "OutRun 2 Special Tours (Rev A) (GDX-0014A)", GAME_NO_SOUND|GAME_NOT_WORKING )
-/* 0015 */ GAME( 2005, wangmid2, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Namco", "Wangan Midnight Maximum Tune 2 (Japan) (GDX-0015)", GAME_NO_SOUND|GAME_NOT_WORKING )
-// 0016 GAME( 2005, wanmd2bo, wangmd2b, chihirogd, chihiro, driver_device, 0, ROT0, "Namco", "Wangan Midnight Maximum Tune 2 (Export) (GDX-0016)", GAME_NO_SOUND|GAME_NOT_WORKING )
-/* 0016A */ GAME( 2005, wangmd2b, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Namco", "Wangan Midnight Maximum Tune 2 (Export) (Rev A) (GDX-0016A)", GAME_NO_SOUND|GAME_NOT_WORKING )
-// 0017 GAME( 2005, mj3o, mj3, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 3 (GDX-0017)", GAME_NO_SOUND|GAME_NOT_WORKING )
-// 0017A GAME( 2005, mj3a, mj3, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 3 (Rev A) (GDX-0017A)", GAME_NO_SOUND|GAME_NOT_WORKING )
-// 0017B GAME( 2005, mj3b, mj3, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 3 (Rev B) (GDX-0017B)", GAME_NO_SOUND|GAME_NOT_WORKING )
-// 0017C GAME( 2005, mj3c, mj3, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 3 (Rev C) (GDX-0017C)", GAME_NO_SOUND|GAME_NOT_WORKING )
-/* 0017D */ GAME( 2005, mj3d, mj3, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 3 (Rev D) (GDX-0017D)", GAME_NO_SOUND|GAME_NOT_WORKING )
-// 0017E GAME( 2005, mj3e, mj3, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 3 (Rev E) (GDX-0017E)", GAME_NO_SOUND|GAME_NOT_WORKING )
-/* 0017F */ GAME( 2005, mj3, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 3 (Rev F) (GDX-0017F)", GAME_NO_SOUND|GAME_NOT_WORKING )
-// 0018 GAME( 2005, scg06nto, scg06nt, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Club Golf 2006 Next Tours (GDX-0018)", GAME_NO_SOUND|GAME_NOT_WORKING )
-/* 0018A */ GAME( 2005, scg06nt, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Club Golf 2006 Next Tours (Rev A) (GDX-0018A)", GAME_NO_SOUND|GAME_NOT_WORKING )
+// 0011 GAME( 2004, outr2sp, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "OutRun 2 SP (Japan) (GDX-0011)", 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, wangmid2, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Namco", "Wangan Midnight Maximum Tune 2 (Japan) (GDX-0015)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING )
+// 0016 GAME( 2005, wanmd2bo, wangmd2b, chihirogd, chihiro, driver_device, 0, ROT0, "Namco", "Wangan Midnight Maximum Tune 2 (Export) (GDX-0016)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING )
+/* 0016A */ GAME( 2005, wangmd2b, 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 )
// 0019
// 0020
-// 0021 GAME( 2006, mj3evoo, mj3evo, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Sega Network Taisen Mahjong MJ 3 Evolution (GDX-0021)", GAME_NO_SOUND|GAME_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)", GAME_NO_SOUND|GAME_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)", GAME_NO_SOUND|GAME_NOT_WORKING )
+// 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 )
// 0022
// 0023
-// 0024 GAME( 2009, ccfboxo, ccfboxa, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Chihiro Firmware Update For Compact Flash Box (GDX-0024)", GAME_NO_SOUND|GAME_NOT_WORKING )
-/* 0024A */ GAME( 2009, ccfboxa, chihiro, chihirogd, chihiro, driver_device, 0, ROT0, "Sega", "Chihiro Firmware Update For Compact Flash Box (Rev A) (GDX-0024A)", GAME_NO_SOUND|GAME_NOT_WORKING )
+// 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 (Rev A) (GDX-0024A)", MACHINE_NO_SOUND|MACHINE_NOT_WORKING )
+
+#if (defined(__MINGW32__) && (__GNUC__ >= 5))
+#pragma GCC diagnostic pop
+#endif
diff --git a/src/mame/drivers/chinagat.c b/src/mame/drivers/chinagat.c
index 4b67c197b5b..946d5020f38 100644
--- a/src/mame/drivers/chinagat.c
+++ b/src/mame/drivers/chinagat.c
@@ -913,7 +913,7 @@ 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)", GAME_SUPPORTS_SAVE )
-GAME( 1988, saiyugou, chinagat, chinagat, chinagat, chinagat_state, chinagat, ROT0, "Technos Japan", "Sai Yu Gou Ma Roku (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1988, saiyugoub1, chinagat, saiyugoub1, chinagat, chinagat_state, chinagat, ROT0, "bootleg", "Sai Yu Gou Ma Roku (Japan bootleg 1)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1988, saiyugoub2, chinagat, saiyugoub2, chinagat, chinagat_state, chinagat, ROT0, "bootleg", "Sai Yu Gou Ma Roku (Japan bootleg 2)", GAME_SUPPORTS_SAVE )
+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.c b/src/mame/drivers/chinsan.c
index fca2227d2be..1a047ae2ddf 100644
--- a/src/mame/drivers/chinsan.c
+++ b/src/mame/drivers/chinsan.c
@@ -688,4 +688,4 @@ DRIVER_INIT_MEMBER(chinsan_state,chinsan)
*
*************************************/
-GAME( 1987, chinsan, 0, chinsan, chinsan, chinsan_state, chinsan, ROT0, "Sanritsu", "Ganbare Chinsan Ooshoubu (MC-8123A, 317-5012)", GAME_SUPPORTS_SAVE )
+GAME( 1987, chinsan, 0, chinsan, chinsan, chinsan_state, chinsan, ROT0, "Sanritsu", "Ganbare Chinsan Ooshoubu (MC-8123A, 317-5012)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/chqflag.c b/src/mame/drivers/chqflag.c
index b8f2f6ea57e..20dd8ac7958 100644
--- a/src/mame/drivers/chqflag.c
+++ b/src/mame/drivers/chqflag.c
@@ -23,16 +23,6 @@
#include "chqflag.lh"
-TIMER_DEVICE_CALLBACK_MEMBER(chqflag_state::chqflag_scanline)
-{
- int scanline = param;
-
- if(scanline == 240 && m_k051960->k051960_is_irq_enabled()) // vblank irq
- m_maincpu->set_input_line(KONAMI_IRQ_LINE, HOLD_LINE);
- else if(((scanline % 32) == 0) && (m_k051960->k051960_is_nmi_enabled())) // timer irq
- m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
-}
-
/* these trampolines are less confusing than nested address_map_bank_devices */
READ8_MEMBER(chqflag_state::k051316_1_ramrom_r)
{
@@ -297,9 +287,8 @@ void chqflag_state::machine_reset()
static MACHINE_CONFIG_START( chqflag, chqflag_state )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", KONAMI,XTAL_24MHz/8) /* 052001 (verified on pcb) */
+ MCFG_CPU_ADD("maincpu", KONAMI, XTAL_24MHz/2/4) /* 052001 (verified on pcb) */
MCFG_CPU_PROGRAM_MAP(chqflag_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", chqflag_state, chqflag_scanline, "screen", 0, 1)
MCFG_CPU_ADD("audiocpu", Z80, XTAL_3_579545MHz) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(chqflag_sound_map)
@@ -314,12 +303,10 @@ static MACHINE_CONFIG_START( chqflag, chqflag_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
/* video hardware */
- //TODO: Vsync 59.17hz Hsync 15.13 / 15.19khz
MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(12*8, (64-14)*8-1, 2*8, 30*8-1 )
+ MCFG_SCREEN_RAW_PARAMS(XTAL_24MHz/3, 528, 96, 400, 256, 16, 240) // measured Vsync 59.17hz Hsync 15.13 / 15.19khz
+// 6MHz dotclock is more realistic, however needs drawing updates. replace when ready
+// MCFG_SCREEN_RAW_PARAMS(XTAL_24MHz/4, 396, hbend, hbstart, 256, 16, 240)
MCFG_SCREEN_UPDATE_DRIVER(chqflag_state, screen_update_chqflag)
MCFG_SCREEN_PALETTE("palette")
@@ -329,7 +316,10 @@ static MACHINE_CONFIG_START( chqflag, chqflag_state )
MCFG_DEVICE_ADD("k051960", K051960, 0)
MCFG_GFX_PALETTE("palette")
+ MCFG_K051960_SCREEN_TAG("screen")
MCFG_K051960_CB(chqflag_state, sprite_callback)
+ MCFG_K051960_IRQ_HANDLER(INPUTLINE("maincpu", KONAMI_IRQ_LINE))
+ MCFG_K051960_NMI_HANDLER(INPUTLINE("maincpu", INPUT_LINE_NMI))
MCFG_DEVICE_ADD("k051316_1", K051316, 0)
MCFG_GFX_PALETTE("palette")
@@ -424,5 +414,5 @@ 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", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_chqflag )
-GAMEL( 1988, chqflagj, chqflag, chqflag, chqflagj, driver_device, 0, ROT90, "Konami", "Chequered Flag (Japan)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_chqflag )
+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 )
diff --git a/src/mame/drivers/chsuper.c b/src/mame/drivers/chsuper.c
index 70f99cb2d77..eee11ea20a9 100644
--- a/src/mame/drivers/chsuper.c
+++ b/src/mame/drivers/chsuper.c
@@ -473,6 +473,6 @@ DRIVER_INIT_MEMBER(chsuper_state,chmpnum)
*************************/
/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT */
-GAMEL( 1999, chsuper3, 0, chsuper, chsuper, chsuper_state, chsuper3, ROT0, "<unknown>", "Champion Super 3 (V0.35)", GAME_IMPERFECT_SOUND, layout_chsuper ) //24/02/99
-GAMEL( 1999, chsuper2, chsuper3, chsuper, chsuper, chsuper_state, chsuper2, ROT0, "<unknown>", "Champion Super 2 (V0.13)", GAME_IMPERFECT_SOUND, layout_chsuper ) //26/01/99
-GAME( 1999, chmpnum, chsuper3, chsuper, chsuper, chsuper_state, chmpnum, ROT0, "<unknown>", "Champion Number (V0.74)", GAME_IMPERFECT_SOUND ) //10/11/99
+GAMEL( 1999, chsuper3, 0, chsuper, chsuper, chsuper_state, chsuper3, ROT0, "<unknown>", "Champion Super 3 (V0.35)", MACHINE_IMPERFECT_SOUND, layout_chsuper ) //24/02/99
+GAMEL( 1999, chsuper2, chsuper3, chsuper, chsuper, chsuper_state, chsuper2, ROT0, "<unknown>", "Champion Super 2 (V0.13)", MACHINE_IMPERFECT_SOUND, layout_chsuper ) //26/01/99
+GAME( 1999, chmpnum, chsuper3, chsuper, chsuper, chsuper_state, chmpnum, ROT0, "<unknown>", "Champion Number (V0.74)", MACHINE_IMPERFECT_SOUND ) //10/11/99
diff --git a/src/mame/drivers/cidelsa.c b/src/mame/drivers/cidelsa.c
index 24f6dfd6f12..7417b063e17 100644
--- a/src/mame/drivers/cidelsa.c
+++ b/src/mame/drivers/cidelsa.c
@@ -531,7 +531,7 @@ ROM_END
/* Game Drivers */
-GAME( 1980, destryer, 0, destryer, destryer, driver_device, 0, ROT90, "Cidelsa", "Destroyer (Cidelsa) (set 1)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, destryera,destryer, destryera,destryer, driver_device, 0, ROT90, "Cidelsa", "Destroyer (Cidelsa) (set 2)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1981, altair, 0, altair, altair, driver_device, 0, ROT90, "Cidelsa", "Altair", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1981, draco, 0, draco, draco, driver_device, 0, ROT90, "Cidelsa", "Draco", GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/cinemat.c b/src/mame/drivers/cinemat.c
index 55619da0798..5729cfefa4d 100644
--- a/src/mame/drivers/cinemat.c
+++ b/src/mame/drivers/cinemat.c
@@ -266,7 +266,7 @@ READ8_MEMBER(cinemat_state::qb3_frame_r)
{
attotime next_update = m_screen->time_until_update();
attotime frame_period = m_screen->frame_period();
- int percent = next_update.attoseconds / (frame_period.attoseconds / 100);
+ int percent = next_update.attoseconds() / (frame_period.attoseconds() / 100);
/* note this is just an approximation... */
return (percent >= 10);
@@ -1464,27 +1464,27 @@ DRIVER_INIT_MEMBER(cinemat_state,qb3)
*
*************************************/
-GAME( 1977, spacewar, 0, spacewar, spacewar, driver_device, 0, ORIENTATION_FLIP_Y, "Cinematronics", "Space Wars", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1978, spaceshp, spacewar,spacewar, spaceshp, driver_device, 0, ORIENTATION_FLIP_Y, "Cinematronics (Sega license)", "Space Ship", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAMEL(1979, barrier, 0, barrier, barrier, driver_device, 0, ORIENTATION_FLIP_X ^ ROT270, "Cinematronics (Vectorbeam license)", "Barrier", GAME_IMPERFECT_SOUND | GAME_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", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1979, starhawk, 0, starhawk, starhawk, driver_device, 0, ORIENTATION_FLIP_Y, "Cinematronics", "Star Hawk", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAMEL(1979, sundance, 0, sundance, sundance, cinemat_state, sundance, ORIENTATION_FLIP_X ^ ROT270, "Cinematronics", "Sundance", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_sundance )
-GAMEL(1979, tailg, 0, tailg, tailg, cinemat_state, tailg, ORIENTATION_FLIP_Y, "Cinematronics", "Tailgunner", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_tailg )
-GAME( 1979, warrior, 0, warrior, warrior, driver_device, 0, ORIENTATION_FLIP_Y, "Vectorbeam", "Warrior", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAMEL(1980, armora, 0, armora, armora, driver_device, 0, ORIENTATION_FLIP_Y, "Cinematronics", "Armor Attack", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_armora )
-GAMEL(1980, armorap, armora, armora, armora, driver_device, 0, ORIENTATION_FLIP_Y, "Cinematronics", "Armor Attack (prototype)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_armora )
-GAMEL(1980, armorar, armora, armora, armora, driver_device, 0, ORIENTATION_FLIP_Y, "Cinematronics (Rock-Ola license)", "Armor Attack (Rock-Ola)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_armora )
-GAME( 1980, ripoff, 0, ripoff, ripoff, driver_device, 0, ORIENTATION_FLIP_Y, "Cinematronics", "Rip Off", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAMEL(1980, starcas, 0, starcas, starcas, driver_device, 0, ORIENTATION_FLIP_Y, "Cinematronics", "Star Castle (version 3)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_starcas )
-GAMEL(1980, starcas1, starcas, starcas, starcas, driver_device, 0, ORIENTATION_FLIP_Y, "Cinematronics", "Star Castle (older)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_starcas )
-GAMEL(1980, starcasp, starcas, starcas, starcas, driver_device, 0, ORIENTATION_FLIP_Y, "Cinematronics", "Star Castle (prototype)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_starcas )
-GAMEL(1980, starcase, starcas, starcas, starcas, driver_device, 0, ORIENTATION_FLIP_Y, "Cinematronics (Mottoeis license)", "Star Castle (Mottoeis)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_starcas )
-GAMEL(1980, stellcas, starcas, starcas, starcas, driver_device, 0, ORIENTATION_FLIP_Y, "bootleg (Elettronolo)", "Stellar Castle (Elettronolo)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_starcas )
-GAMEL(1981, spaceftr, starcas, starcas, starcas, driver_device, 0, ORIENTATION_FLIP_Y, "Cinematronics (Zaccaria license)", "Space Fortress (Zaccaria)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_starcas )
-GAMEL(1981, solarq, 0, solarq, solarq, driver_device, 0, ORIENTATION_FLIP_Y ^ ORIENTATION_FLIP_X, "Cinematronics", "Solar Quest", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_solarq )
-GAME( 1981, boxingb, 0, boxingb, boxingb, cinemat_state, boxingb, ORIENTATION_FLIP_Y, "Cinematronics", "Boxing Bugs", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAMEL(1981, wotw, 0, wotw, wotw, driver_device, 0, ORIENTATION_FLIP_Y, "Cinematronics", "War of the Worlds", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_wotw )
-GAME( 1981, wotwc, wotw, wotwc, wotw, driver_device, 0, ORIENTATION_FLIP_Y, "Cinematronics", "War of the Worlds (color)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAMEL(1982, demon, 0, demon, demon, driver_device, 0, ORIENTATION_FLIP_Y, "Rock-Ola", "Demon", GAME_SUPPORTS_SAVE, layout_demon )
-GAME( 1982, qb3, 0, qb3, qb3, cinemat_state, qb3, ORIENTATION_FLIP_Y, "Rock-Ola", "QB-3 (prototype)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+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( 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 )
+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( 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 )
+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.c b/src/mame/drivers/circus.c
index 2535e43bd22..eb51605922b 100644
--- a/src/mame/drivers/circus.c
+++ b/src/mame/drivers/circus.c
@@ -578,9 +578,9 @@ DRIVER_INIT_MEMBER(circus_state,ripcord)
}
-GAMEL(1977, circus, 0, circus, circus, circus_state, circus, ROT0, "Exidy / Taito", "Circus / Acrobat TV", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND, layout_circus )
-GAMEL(1977, springbd, circus, circus, circus, circus_state, circus, ROT0, "bootleg (Sub-Electro)", "Springboard (bootleg of Circus)", GAME_SUPPORTS_SAVE | GAME_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", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
-GAMEL(1979, crash, 0, crash, crash, circus_state, crash, ROT0, "Exidy", "Crash", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND, layout_crash )
-GAMEL(1979, smash, crash, crash, crash, circus_state, crash, ROT0, "bootleg", "Smash (Crash bootleg)", GAME_SUPPORTS_SAVE | GAME_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", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
+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 )
diff --git a/src/mame/drivers/circusc.c b/src/mame/drivers/circusc.c
index 1bd909c2d09..64a19ac1392 100644
--- a/src/mame/drivers/circusc.c
+++ b/src/mame/drivers/circusc.c
@@ -570,9 +570,9 @@ DRIVER_INIT_MEMBER(circusc_state,circusc)
}
-GAME( 1984, circusc, 0, circusc, circusc, circusc_state, circusc, ROT90, "Konami", "Circus Charlie (level select, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1984, circusc2, circusc, circusc, circusc, circusc_state, circusc, ROT90, "Konami", "Circus Charlie (level select, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1984, circusc3, circusc, circusc, circusc, circusc_state, circusc, ROT90, "Konami", "Circus Charlie (level select, set 3)", GAME_SUPPORTS_SAVE )
-GAME( 1984, circusc4, circusc, circusc, circusc, circusc_state, circusc, ROT90, "Konami", "Circus Charlie (no level select)", GAME_SUPPORTS_SAVE )
-GAME( 1984, circuscc, circusc, circusc, circusc, circusc_state, circusc, ROT90, "Konami (Centuri license)", "Circus Charlie (Centuri)", GAME_SUPPORTS_SAVE )
-GAME( 1984, circusce, circusc, circusc, circusc, circusc_state, circusc, ROT90, "Konami (Centuri license)", "Circus Charlie (Centuri, earlier)", GAME_SUPPORTS_SAVE )
+GAME( 1984, circusc, 0, circusc, circusc, circusc_state, circusc, ROT90, "Konami", "Circus Charlie (level select, set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, circusc2, circusc, circusc, circusc, circusc_state, circusc, ROT90, "Konami", "Circus Charlie (level select, set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, circusc3, circusc, circusc, circusc, circusc_state, circusc, ROT90, "Konami", "Circus Charlie (level select, set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, circusc4, circusc, circusc, circusc, circusc_state, circusc, ROT90, "Konami", "Circus Charlie (no level select)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, circuscc, circusc, circusc, circusc, circusc_state, circusc, ROT90, "Konami (Centuri license)", "Circus Charlie (Centuri)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, circusce, circusc, circusc, circusc, circusc_state, circusc, ROT90, "Konami (Centuri license)", "Circus Charlie (Centuri, earlier)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/cischeat.c b/src/mame/drivers/cischeat.c
index 0e653678905..436acc4eb92 100644
--- a/src/mame/drivers/cischeat.c
+++ b/src/mame/drivers/cischeat.c
@@ -2928,11 +2928,11 @@ ROM_END
***************************************************************************/
-GAMEL( 1989, bigrun, 0, bigrun, bigrun, cischeat_state, bigrun, ROT0, "Jaleco", "Big Run (11th Rallye version)", GAME_IMPERFECT_GRAPHICS, layout_cischeat ) // there's a 13th Rallye version (1991) (only on the SNES?)
-GAMEL( 1990, cischeat, 0, cischeat, cischeat, cischeat_state, cischeat, ROT0, "Jaleco", "Cisco Heat", GAME_IMPERFECT_GRAPHICS, layout_cischeat )
-GAMEL( 1991, f1gpstar, 0, f1gpstar, f1gpstar, cischeat_state, f1gpstar, ROT0, "Jaleco", "Grand Prix Star", GAME_IMPERFECT_GRAPHICS, layout_f1gpstar )
-GAME ( 1992, armchmp2, 0, armchmp2, armchmp2, driver_device, 0, ROT270, "Jaleco", "Arm Champs II v2.6", GAME_IMPERFECT_GRAPHICS )
-GAME ( 1992, armchmp2o,armchmp2, armchmp2, armchmp2, driver_device, 0, ROT270, "Jaleco", "Arm Champs II v1.7", GAME_IMPERFECT_GRAPHICS )
-GAME ( 1992, wildplt, 0, f1gpstr2, wildplt, cischeat_state, wildplt, ROT0, "Jaleco", "Wild Pilot", GAME_IMPERFECT_GRAPHICS )
-GAMEL( 1993, f1gpstr2, 0, f1gpstr2, f1gpstar, cischeat_state, f1gpstar, ROT0, "Jaleco", "F-1 Grand Prix Star II", GAME_IMPERFECT_GRAPHICS, layout_f1gpstar )
-GAME ( 1994, scudhamm, 0, scudhamm, scudhamm, driver_device, 0, ROT270, "Jaleco", "Scud Hammer", GAME_IMPERFECT_GRAPHICS )
+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?)
+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", 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, f1gpstr2, wildplt, cischeat_state, wildplt, ROT0, "Jaleco", "Wild Pilot", MACHINE_IMPERFECT_GRAPHICS )
+GAMEL( 1993, f1gpstr2, 0, f1gpstr2, f1gpstar, cischeat_state, f1gpstar, ROT0, "Jaleco", "F-1 Grand Prix Star II", MACHINE_IMPERFECT_GRAPHICS, layout_f1gpstar )
+GAME ( 1994, scudhamm, 0, scudhamm, scudhamm, driver_device, 0, ROT270, "Jaleco", "Scud Hammer", MACHINE_IMPERFECT_GRAPHICS )
diff --git a/src/mame/drivers/citycon.c b/src/mame/drivers/citycon.c
index 3d5bd56ce30..cd908b3acb5 100644
--- a/src/mame/drivers/citycon.c
+++ b/src/mame/drivers/citycon.c
@@ -340,6 +340,6 @@ DRIVER_INIT_MEMBER(citycon_state,citycon)
-GAME( 1985, citycon, 0, citycon, citycon, citycon_state, citycon, ROT0, "Jaleco", "City Connection (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1985, citycona, citycon, citycon, citycon, citycon_state, citycon, ROT0, "Jaleco", "City Connection (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1985, cruisin, citycon, citycon, citycon, citycon_state, citycon, ROT0, "Jaleco (Kitkorp license)", "Cruisin", GAME_SUPPORTS_SAVE )
+GAME( 1985, citycon, 0, citycon, citycon, citycon_state, citycon, ROT0, "Jaleco", "City Connection (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, citycona, citycon, citycon, citycon, citycon_state, citycon, ROT0, "Jaleco", "City Connection (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, cruisin, citycon, citycon, citycon, citycon_state, citycon, ROT0, "Jaleco (Kitkorp license)", "Cruisin", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/clayshoo.c b/src/mame/drivers/clayshoo.c
index f6daecd0be8..eabd5895fa2 100644
--- a/src/mame/drivers/clayshoo.c
+++ b/src/mame/drivers/clayshoo.c
@@ -357,4 +357,4 @@ ROM_END
*
*************************************/
-GAME( 1979, clayshoo, 0, clayshoo, clayshoo, driver_device, 0, ROT0, "Allied Leisure", "Clay Shoot", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1979, clayshoo, 0, clayshoo, clayshoo, driver_device, 0, ROT0, "Allied Leisure", "Clay Shoot", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/clcd.c b/src/mame/drivers/clcd.c
index ed56c2e82ea..ed56c2e82ea 100644
--- a/src/mess/drivers/clcd.c
+++ b/src/mame/drivers/clcd.c
diff --git a/src/mame/drivers/cliffhgr.c b/src/mame/drivers/cliffhgr.c
index 5f9ab10b9f8..ec68fca6e27 100644
--- a/src/mame/drivers/cliffhgr.c
+++ b/src/mame/drivers/cliffhgr.c
@@ -799,4 +799,4 @@ 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", GAME_NOT_WORKING)
+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.c b/src/mame/drivers/cloak.c
index 3ab39a3d77f..0190b1860e9 100644
--- a/src/mame/drivers/cloak.c
+++ b/src/mame/drivers/cloak.c
@@ -599,11 +599,11 @@ ROM_END
*
*************************************/
-GAME( 1983, cloak, 0, cloak, cloak, driver_device, 0, ROT0, "Atari", "Cloak & Dagger (rev 5)", GAME_SUPPORTS_SAVE )
-GAME( 1983, cloaksp, cloak, cloak, cloak, driver_device, 0, ROT0, "Atari", "Cloak & Dagger (Spanish)", GAME_SUPPORTS_SAVE )
-GAME( 1983, cloakfr, cloak, cloak, cloak, driver_device, 0, ROT0, "Atari", "Cloak & Dagger (French)", GAME_SUPPORTS_SAVE )
-GAME( 1983, cloakgr, cloak, cloak, cloak, driver_device, 0, ROT0, "Atari", "Cloak & Dagger (German)", GAME_SUPPORTS_SAVE )
-GAME( 1983, agentx4, cloak, cloak, cloak, driver_device, 0, ROT0, "Atari", "Agent X (prototype, rev 4)", GAME_SUPPORTS_SAVE )
-GAME( 1983, agentx3, cloak, cloak, cloak, driver_device, 0, ROT0, "Atari", "Agent X (prototype, rev 3)", GAME_SUPPORTS_SAVE )
-GAME( 1983, agentx2, cloak, cloak, cloak, driver_device, 0, ROT0, "Atari", "Agent X (prototype, rev 2)", GAME_SUPPORTS_SAVE )
-GAME( 1983, agentx1, cloak, cloak, cloak, driver_device, 0, ROT0, "Atari", "Agent X (prototype, rev 1)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/cloud9.c b/src/mame/drivers/cloud9.c
index 9525cc681fa..745e5c402c5 100644
--- a/src/mame/drivers/cloud9.c
+++ b/src/mame/drivers/cloud9.c
@@ -494,5 +494,5 @@ ROM_END
*
*************************************/
-GAME( 1983, cloud9, 0, cloud9, cloud9, driver_device, 0, ROT0, "Atari", "Cloud 9 (prototype)", GAME_SUPPORTS_SAVE )
-GAME( 1983, firebeas, 0, cloud9, firebeas, driver_device, 0, ROT0, "Atari", "Firebeast (prototype)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/clshroad.c b/src/mame/drivers/clshroad.c
index 43c754500bd..64a22eb97d3 100644
--- a/src/mame/drivers/clshroad.c
+++ b/src/mame/drivers/clshroad.c
@@ -481,7 +481,7 @@ die once, it would be nice to avoid the hack however
ROM[0x05C8] = 0x23;
}
-GAME( 1984, firebatl, 0, firebatl, firebatl, clshroad_state, firebatl, ROT90, "Taito", "Fire Battle", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1986, clshroad, 0, clshroad, clshroad, driver_device, 0, ROT0, "Wood Place Inc.", "Clash-Road", GAME_SUPPORTS_SAVE )
-GAME( 1986, clshroads,clshroad, clshroad, clshroad, driver_device, 0, ROT0, "Wood Place Inc. (Status Game Corp. license)", "Clash-Road (Status license)", GAME_SUPPORTS_SAVE )
-GAME( 1986, clshroadd,clshroad, clshroad, clshroad, driver_device, 0, ROT0, "Wood Place Inc. (Data East license)", "Clash-Road (Data East license)", GAME_SUPPORTS_SAVE )
+GAME( 1984, firebatl, 0, firebatl, firebatl, clshroad_state, firebatl, ROT90, "Taito", "Fire Battle", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/cm1800.c b/src/mame/drivers/cm1800.c
index e7522a83de1..a02bd552daa 100644
--- a/src/mess/drivers/cm1800.c
+++ b/src/mame/drivers/cm1800.c
@@ -118,4 +118,4 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 1981, cm1800, 0, 0, cm1800, cm1800, driver_device, 0, "<unknown>", "CM-1800", GAME_NO_SOUND_HW)
+COMP( 1981, cm1800, 0, 0, cm1800, cm1800, driver_device, 0, "<unknown>", "CM-1800", MACHINE_NO_SOUND_HW)
diff --git a/src/mame/drivers/cmmb.c b/src/mame/drivers/cmmb.c
index 07dcf40e5ea..089cd521148 100644
--- a/src/mame/drivers/cmmb.c
+++ b/src/mame/drivers/cmmb.c
@@ -70,7 +70,6 @@ public:
DECLARE_READ8_MEMBER(cmmb_charram_r);
DECLARE_WRITE8_MEMBER(cmmb_charram_w);
- DECLARE_WRITE8_MEMBER(cmmb_paletteram_w);
DECLARE_READ8_MEMBER(cmmb_input_r);
DECLARE_WRITE8_MEMBER(cmmb_output_w);
DECLARE_READ8_MEMBER(kludge_r);
@@ -128,13 +127,6 @@ WRITE8_MEMBER(cmmb_state::cmmb_charram_w)
m_gfxdecode->gfx(1)->mark_dirty(offset >> 5);
}
-
-WRITE8_MEMBER(cmmb_state::cmmb_paletteram_w)
-{
- /* RGB output is inverted */
- m_palette->write(space, offset, UINT8(~data), mem_mask);
-}
-
READ8_MEMBER(cmmb_state::cmmb_input_r)
{
//printf("%02x R\n",offset);
@@ -193,7 +185,7 @@ static ADDRESS_MAP_START( cmmb_map, AS_PROGRAM, 8, cmmb_state )
AM_RANGE(0x0000, 0x01ff) AM_RAM /* zero page address */
// AM_RANGE(0x13c0, 0x13ff) AM_RAM //spriteram
AM_RANGE(0x1000, 0x13ff) AM_RAM AM_SHARE("videoram")
- AM_RANGE(0x2480, 0x249f) AM_RAM_WRITE(cmmb_paletteram_w) AM_SHARE("palette")
+ AM_RANGE(0x2480, 0x249f) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x4000, 0x400f) AM_READWRITE(cmmb_input_r,cmmb_output_w) //i/o
AM_RANGE(0x4900, 0x4900) AM_READ(kludge_r)
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
@@ -340,7 +332,7 @@ static MACHINE_CONFIG_START( cmmb, cmmb_state )
MCFG_GFXDECODE_ADD("gfxdecode", "palette", cmmb)
MCFG_PALETTE_ADD("palette", 512)
- MCFG_PALETTE_FORMAT(RRRGGGBB)
+ MCFG_PALETTE_FORMAT(RRRGGGBB_inverted)
/* sound hardware */
// MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -363,4 +355,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)", GAME_NO_SOUND|GAME_NOT_WORKING )
+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 )
diff --git a/src/mame/drivers/cninja.c b/src/mame/drivers/cninja.c
index afd86b8da74..5e0e6c64183 100644
--- a/src/mame/drivers/cninja.c
+++ b/src/mame/drivers/cninja.c
@@ -1396,6 +1396,14 @@ ROM_START( cninja ) /* World ver 4 */
ROM_REGION( 1024, "proms", 0 )
ROM_LOAD( "mb7122h.7v", 0x00000, 0x400, CRC(a1267336) SHA1(d11ea9d78526ac3c0dc6e57a2da5914273ad1e3f) ) /* Priority Unused */
+
+ ROM_REGION( 0x0e00, "plds", 0 )
+ ROM_LOAD( "tj-00.9j", 0x0000, 0x0117, CRC(46defe8f) SHA1(50db2c265a0ab592938f780f212ef86070b2daa2) ) /* GAL16V8 */
+ ROM_LOAD( "tj-01.9h", 0x0200, 0x0117, CRC(7a86902d) SHA1(7e116dbabe615ddae1588001b31a0a6e6e4dc46d) ) /* GAL16V8 */
+ ROM_LOAD( "tj-02.9h", 0x0400, 0x0117, CRC(b476d59c) SHA1(c17b7884180b5041d1524e9fd479cddac787a3cb) ) /* GAL16V8 */
+ ROM_LOAD( "tj-03.9e", 0x0600, 0x0117, CRC(cfb6e4aa) SHA1(fc70d1d43d8836ae7984c432b3f9e35c2256b18e) ) /* GAL16V8 */
+ ROM_LOAD( "tj-04.5n", 0x0800, 0x0117, CRC(bca07086) SHA1(cf713185d7430e17077a95a58a42d28336432c95) ) /* GAL16V8 */
+ ROM_LOAD( "tj-05.1r", 0x0a00, 0x0117, CRC(0dfc091b) SHA1(ab7ff0c8ada10633d27d5305f1f41f738647412a) ) /* GAL16V8 */
ROM_END
ROM_START( cninja1 ) /* World ver 1 */
@@ -1437,6 +1445,14 @@ ROM_START( cninja1 ) /* World ver 1 */
ROM_REGION( 1024, "proms", 0 )
ROM_LOAD( "mb7122h.7v", 0x00000, 0x400, CRC(a1267336) SHA1(d11ea9d78526ac3c0dc6e57a2da5914273ad1e3f) ) /* Priority Unused */
+
+ ROM_REGION( 0x0e00, "plds", 0 )
+ ROM_LOAD( "tj-00.9j", 0x0000, 0x0117, CRC(46defe8f) SHA1(50db2c265a0ab592938f780f212ef86070b2daa2) ) /* GAL16V8 */
+ ROM_LOAD( "tj-01.9h", 0x0200, 0x0117, CRC(7a86902d) SHA1(7e116dbabe615ddae1588001b31a0a6e6e4dc46d) ) /* GAL16V8 */
+ ROM_LOAD( "tj-02.9h", 0x0400, 0x0117, CRC(b476d59c) SHA1(c17b7884180b5041d1524e9fd479cddac787a3cb) ) /* GAL16V8 */
+ ROM_LOAD( "tj-03.9e", 0x0600, 0x0117, CRC(cfb6e4aa) SHA1(fc70d1d43d8836ae7984c432b3f9e35c2256b18e) ) /* GAL16V8 */
+ ROM_LOAD( "tj-04.5n", 0x0800, 0x0117, CRC(bca07086) SHA1(cf713185d7430e17077a95a58a42d28336432c95) ) /* GAL16V8 */
+ ROM_LOAD( "tj-05.1r", 0x0a00, 0x0117, CRC(0dfc091b) SHA1(ab7ff0c8ada10633d27d5305f1f41f738647412a) ) /* GAL16V8 */
ROM_END
ROM_START( cninjau ) /* US ver 4 */
@@ -1478,6 +1494,14 @@ ROM_START( cninjau ) /* US ver 4 */
ROM_REGION( 1024, "proms", 0 )
ROM_LOAD( "mb7122h.7v", 0x00000, 0x400, CRC(a1267336) SHA1(d11ea9d78526ac3c0dc6e57a2da5914273ad1e3f) ) /* Priority Unused */
+
+ ROM_REGION( 0x0e00, "plds", 0 )
+ ROM_LOAD( "tj-00.9j", 0x0000, 0x0117, CRC(46defe8f) SHA1(50db2c265a0ab592938f780f212ef86070b2daa2) ) /* GAL16V8 */
+ ROM_LOAD( "tj-01.9h", 0x0200, 0x0117, CRC(7a86902d) SHA1(7e116dbabe615ddae1588001b31a0a6e6e4dc46d) ) /* GAL16V8 */
+ ROM_LOAD( "tj-02.9h", 0x0400, 0x0117, CRC(b476d59c) SHA1(c17b7884180b5041d1524e9fd479cddac787a3cb) ) /* GAL16V8 */
+ ROM_LOAD( "tj-03.9e", 0x0600, 0x0117, CRC(cfb6e4aa) SHA1(fc70d1d43d8836ae7984c432b3f9e35c2256b18e) ) /* GAL16V8 */
+ ROM_LOAD( "tj-04.5n", 0x0800, 0x0117, CRC(bca07086) SHA1(cf713185d7430e17077a95a58a42d28336432c95) ) /* GAL16V8 */
+ ROM_LOAD( "tj-05.1r", 0x0a00, 0x0117, CRC(0dfc091b) SHA1(ab7ff0c8ada10633d27d5305f1f41f738647412a) ) /* GAL16V8 */
ROM_END
ROM_START( joemac ) /* Japan ver 1 */
@@ -1519,6 +1543,14 @@ ROM_START( joemac ) /* Japan ver 1 */
ROM_REGION( 1024, "proms", 0 )
ROM_LOAD( "mb7122h.7v", 0x00000, 0x400, CRC(a1267336) SHA1(d11ea9d78526ac3c0dc6e57a2da5914273ad1e3f) ) /* Priority Unused */
+
+ ROM_REGION( 0x0e00, "plds", 0 )
+ ROM_LOAD( "tj-00.9j", 0x0000, 0x0117, CRC(46defe8f) SHA1(50db2c265a0ab592938f780f212ef86070b2daa2) ) /* GAL16V8 */
+ ROM_LOAD( "tj-01.9h", 0x0200, 0x0117, CRC(7a86902d) SHA1(7e116dbabe615ddae1588001b31a0a6e6e4dc46d) ) /* GAL16V8 */
+ ROM_LOAD( "tj-02.9h", 0x0400, 0x0117, CRC(b476d59c) SHA1(c17b7884180b5041d1524e9fd479cddac787a3cb) ) /* GAL16V8 */
+ ROM_LOAD( "tj-03.9e", 0x0600, 0x0117, CRC(cfb6e4aa) SHA1(fc70d1d43d8836ae7984c432b3f9e35c2256b18e) ) /* GAL16V8 */
+ ROM_LOAD( "tj-04.5n", 0x0800, 0x0117, CRC(bca07086) SHA1(cf713185d7430e17077a95a58a42d28336432c95) ) /* GAL16V8 */
+ ROM_LOAD( "tj-05.1r", 0x0a00, 0x0117, CRC(0dfc091b) SHA1(ab7ff0c8ada10633d27d5305f1f41f738647412a) ) /* GAL16V8 */
ROM_END
ROM_START( stoneage )
@@ -2280,26 +2312,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)", GAME_SUPPORTS_SAVE )
-GAME( 1990, edrandy2, edrandy, edrandy, edrandc, driver_device, 0, ROT0, "Data East Corporation", "The Cliffhanger - Edward Randy (World ver 2)", GAME_SUPPORTS_SAVE )
-GAME( 1990, edrandy1, edrandy, edrandy, edrandc, driver_device, 0, ROT0, "Data East Corporation", "The Cliffhanger - Edward Randy (World ver 1)", GAME_SUPPORTS_SAVE )
-GAME( 1990, edrandyj, edrandy, edrandy, edrandc, driver_device, 0, ROT0, "Data East Corporation", "The Cliffhanger - Edward Randy (Japan ver 3)", GAME_SUPPORTS_SAVE )
-
-GAME( 1991, cninja, 0, cninja, cninja, cninja_state, cninja, ROT0, "Data East Corporation", "Caveman Ninja (World ver 4)", GAME_SUPPORTS_SAVE )
-GAME( 1991, cninja1, cninja, cninja, cninja, cninja_state, cninja, ROT0, "Data East Corporation", "Caveman Ninja (World ver 1)", GAME_SUPPORTS_SAVE )
-GAME( 1991, cninjau, cninja, cninja, cninjau, cninja_state, cninja, ROT0, "Data East Corporation", "Caveman Ninja (US ver 4)", GAME_SUPPORTS_SAVE )
-GAME( 1991, joemac, cninja, cninja, cninja, cninja_state, cninja, ROT0, "Data East Corporation", "Tatakae Genshizin Joe & Mac (Japan ver 1)", GAME_SUPPORTS_SAVE )
-GAME( 1991, stoneage, cninja, stoneage, cninja, cninja_state, stoneage, ROT0, "bootleg", "Stoneage (bootleg of Caveman Ninja)", GAME_SUPPORTS_SAVE )
-GAME( 1991, cninjabl, cninja, cninjabl, cninja, driver_device, 0, ROT0, "bootleg", "Caveman Ninja (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1991, cninjabl2,cninja, cninjabl, cninja, driver_device, 0, ROT0, "bootleg", "Caveman Ninja (bootleg, alt)", GAME_NOT_WORKING )
-
-GAME( 1991, robocop2, 0, robocop2, robocop2, driver_device, 0, ROT0, "Data East Corporation", "Robocop 2 (Euro/Asia v0.10)", GAME_SUPPORTS_SAVE )
-GAME( 1991, robocop2u,robocop2,robocop2, robocop2, driver_device, 0, ROT0, "Data East Corporation", "Robocop 2 (US v0.10)", GAME_SUPPORTS_SAVE )
-GAME( 1991, robocop2ua,robocop2,robocop2,robocop2, driver_device, 0, ROT0, "Data East Corporation", "Robocop 2 (US v0.05)", GAME_SUPPORTS_SAVE )
-GAME( 1991, robocop2j,robocop2,robocop2, robocop2, driver_device, 0, ROT0, "Data East Corporation", "Robocop 2 (Japan v0.11)", GAME_SUPPORTS_SAVE )
-
-GAME( 1992, mutantf, 0, mutantf, mutantf, cninja_state, mutantf, ROT0, "Data East Corporation", "Mutant Fighter (World ver EM-5)", GAME_SUPPORTS_SAVE )
-GAME( 1992, mutantf4, mutantf, mutantf, mutantf, cninja_state, mutantf, ROT0, "Data East Corporation", "Mutant Fighter (World ver EM-4)", GAME_SUPPORTS_SAVE )
-GAME( 1992, mutantf3, mutantf, mutantf, mutantf, cninja_state, mutantf, ROT0, "Data East Corporation", "Mutant Fighter (World ver EM-3)", GAME_SUPPORTS_SAVE )
-GAME( 1992, mutantf2, mutantf, mutantf, mutantf, cninja_state, mutantf, ROT0, "Data East Corporation", "Mutant Fighter (World ver EM-2)", GAME_SUPPORTS_SAVE )
-GAME( 1992, deathbrd, mutantf, mutantf, mutantf, cninja_state, mutantf, ROT0, "Data East Corporation", "Death Brade (Japan ver JM-3)", GAME_SUPPORTS_SAVE )
+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, cninjabl, cninja, driver_device, 0, ROT0, "bootleg", "Caveman Ninja (bootleg, alt)", MACHINE_NOT_WORKING )
+
+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 )
diff --git a/src/mame/drivers/cntsteer.c b/src/mame/drivers/cntsteer.c
index 14e5d7b5ac7..3766eb129a2 100644
--- a/src/mame/drivers/cntsteer.c
+++ b/src/mame/drivers/cntsteer.c
@@ -10,17 +10,22 @@
Improvements by Pierpaolo Prazzoli, David Haywood, Angelo Salese
todo:
- finish
+ both games
- correct roz rotation;
- - make cntsteer work, comms looks awkward and probably different than Zero Target;
- flip screen support;
- according to a side-by-side test, sound should be "darker" by some octaves,
likely that a sound filter is needed;
+ cntsteer specific:
+ - In Back Rotate Test, rotation is tested with the following arrangement (upper bits of rotation parameter):
+ 04 -> 05 -> 02 -> 03 -> 00 -> 01 -> 06 -> 07 -> 04 and backwards
+ Anything with bit 0 set is tested from 0xff to 0, with bit 0 clear that's 0 -> 0xff, fun.
+ - Understand how irq communication works between CPUs. Buffer $415-6 seems involved in the protocol.
+ We currently have slave CPU irq hooked up to vblank, might or might not be correct.
+ - invert order between maincpu and subcpu, subcpu is clearly the master CPU here.
+ - understand why background mirroring causes wrong gfxs on title screen (wrong tilemap paging, missing video bit or it's actually a RMW thing);
cleanup
- split into driver/video;
- note: To boot cntsteer, set a CPU #1 breakpoint on c225 and then 'do pc=c230'.
- Protection maybe?
***************************************************************************************/
@@ -68,6 +73,7 @@ public:
/* misc */
int m_nmimask; // zerotrgt only
+ bool m_sub_nmimask; // counter steer only
/* devices */
required_device<cpu_device> m_maincpu;
@@ -81,6 +87,7 @@ public:
DECLARE_WRITE8_MEMBER(cntsteer_foreground_vram_w);
DECLARE_WRITE8_MEMBER(cntsteer_foreground_attr_w);
DECLARE_WRITE8_MEMBER(cntsteer_background_w);
+ DECLARE_READ8_MEMBER(cntsteer_background_mirror_r);
DECLARE_WRITE8_MEMBER(gekitsui_sub_irq_ack);
DECLARE_WRITE8_MEMBER(cntsteer_sound_w);
DECLARE_WRITE8_MEMBER(zerotrgt_ctrl_w);
@@ -102,6 +109,7 @@ public:
DECLARE_PALETTE_INIT(zerotrgt);
UINT32 screen_update_cntsteer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update_zerotrgt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ INTERRUPT_GEN_MEMBER(subcpu_vblank_irq);
INTERRUPT_GEN_MEMBER(sound_interrupt);
void zerotrgt_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect );
void cntsteer_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect );
@@ -438,10 +446,14 @@ WRITE8_MEMBER(cntsteer_state::cntsteer_vregs_w)
case 1: m_scrollx = data; break;
case 2: m_bg_bank = (data & 0x01) << 8;
m_bg_color_bank = (data & 6) >> 1;
+ // TODO: of course this just inibits bus request for master.
+ // TODO: after further investigation, this isn't right, it disables once that player insert a coin.
+
m_bg_tilemap->mark_all_dirty();
break;
case 3: m_rotation_sign = (data & 7);
- m_disable_roz = (~data & 0x08);
+ m_disable_roz = 0; //(~data & 0x08);
+ m_maincpu->set_input_line(INPUT_LINE_RESET, data & 8 ? CLEAR_LINE : ASSERT_LINE);
m_scrolly_hi = (data & 0x30) << 4;
m_scrollx_hi = (data & 0xc0) << 2;
break;
@@ -467,6 +479,12 @@ WRITE8_MEMBER(cntsteer_state::cntsteer_background_w)
m_bg_tilemap->mark_tile_dirty(offset);
}
+/* checks area 0x2000-0x2fff with this address config. */
+READ8_MEMBER(cntsteer_state::cntsteer_background_mirror_r)
+{
+ return m_videoram2[BITSWAP16(offset,15,14,13,12,5,4,3,2,1,0,11,10,9,8,7,6)];
+}
+
/*************************************
*
* CPU comms
@@ -497,20 +515,24 @@ WRITE8_MEMBER(cntsteer_state::zerotrgt_ctrl_w)
WRITE8_MEMBER(cntsteer_state::cntsteer_sub_irq_w)
{
- m_subcpu->set_input_line(M6809_IRQ_LINE, ASSERT_LINE);
+ //m_subcpu->set_input_line(M6809_IRQ_LINE, ASSERT_LINE);
// printf("%02x IRQ\n", data);
}
WRITE8_MEMBER(cntsteer_state::cntsteer_sub_nmi_w)
{
// if (data)
-// m_subcpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
+ machine().scheduler().synchronize(); // force resync
+
+ //m_subcpu->set_input_line(M6809_IRQ_LINE, ASSERT_LINE);
+ m_maincpu->set_input_line(M6809_IRQ_LINE, CLEAR_LINE);
// popmessage("%02x", data);
}
WRITE8_MEMBER(cntsteer_state::cntsteer_main_irq_w)
{
- m_maincpu->set_input_line(M6809_IRQ_LINE, HOLD_LINE);
+ machine().scheduler().synchronize(); // force resync
+ m_maincpu->set_input_line(M6809_IRQ_LINE, ASSERT_LINE);
}
/* Convert weird input handling with MAME standards.*/
@@ -585,7 +607,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( cntsteer_cpu2_map, AS_PROGRAM, 8, cntsteer_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(cntsteer_background_w) AM_SHARE("videoram2")
- AM_RANGE(0x2000, 0x2fff) AM_RAM_WRITE(cntsteer_background_w) AM_SHARE("videoram2")
+ AM_RANGE(0x2000, 0x2fff) AM_READWRITE(cntsteer_background_mirror_r,cntsteer_background_w)
AM_RANGE(0x3000, 0x3000) AM_READ_PORT("DSW0")
AM_RANGE(0x3001, 0x3001) AM_READ(cntsteer_adx_r)
AM_RANGE(0x3002, 0x3002) AM_READ_PORT("P1")
@@ -605,6 +627,17 @@ WRITE8_MEMBER(cntsteer_state::nmimask_w)
m_nmimask = data & 0x80;
}
+INTERRUPT_GEN_MEMBER(cntsteer_state::subcpu_vblank_irq)
+{
+ // TODO: hack for bus request: DP is enabled with 0xff only during POST, and disabled once that critical operations are performed.
+ // That's my best guess so far about how Slave is supposed to stop execution on Master CPU, the lack of any realistic write
+ // between these operations brings us to this.
+ // Game currently returns error on MIX CPU RAM because halt-ing BACK CPU doesn't happen when it should of course ...
+// UINT8 dp_r = (UINT8)device.state().state_int(M6809_DP);
+// m_maincpu->set_input_line(INPUT_LINE_HALT, dp_r ? ASSERT_LINE : CLEAR_LINE);
+ m_subcpu->set_input_line(M6809_IRQ_LINE, ASSERT_LINE);
+}
+
INTERRUPT_GEN_MEMBER(cntsteer_state::sound_interrupt)
{
if (!m_nmimask)
@@ -847,7 +880,7 @@ MACHINE_START_MEMBER(cntsteer_state,zerotrgt)
}
-MACHINE_RESET_MEMBER(cntsteer_state,cntsteer)
+MACHINE_RESET_MEMBER(cntsteer_state,zerotrgt)
{
m_flipscreen = 0;
m_bg_bank = 0;
@@ -860,13 +893,14 @@ MACHINE_RESET_MEMBER(cntsteer_state,cntsteer)
m_bg_color_bank = 0;
m_disable_roz = 0;
+ m_nmimask = 0;
}
-MACHINE_RESET_MEMBER(cntsteer_state,zerotrgt)
+MACHINE_RESET_MEMBER(cntsteer_state,cntsteer)
{
- m_nmimask = 0;
- MACHINE_RESET_CALL_MEMBER(cntsteer);
+ m_maincpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ MACHINE_RESET_CALL_MEMBER(zerotrgt);
}
static MACHINE_CONFIG_START( cntsteer, cntsteer_state )
@@ -879,7 +913,7 @@ static MACHINE_CONFIG_START( cntsteer, cntsteer_state )
MCFG_CPU_ADD("subcpu", M6809, 2000000) /* ? */
MCFG_CPU_PROGRAM_MAP(cntsteer_cpu2_map)
// MCFG_DEVICE_DISABLE()
- MCFG_CPU_VBLANK_INT_DRIVER("screen", cntsteer_state, nmi_line_pulse) /* ? */
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", cntsteer_state, subcpu_vblank_irq) /* ? */
MCFG_CPU_ADD("audiocpu", M6502, 1500000) /* ? */
MCFG_CPU_PROGRAM_MAP(sound_map)
@@ -897,7 +931,8 @@ static MACHINE_CONFIG_START( cntsteer, cntsteer_state )
MCFG_SCREEN_UPDATE_DRIVER(cntsteer_state, screen_update_cntsteer)
MCFG_SCREEN_PALETTE("palette")
- MCFG_QUANTUM_TIME(attotime::from_hz(6000))
+ MCFG_QUANTUM_PERFECT_CPU("maincpu")
+ MCFG_QUANTUM_PERFECT_CPU("subcpu")
MCFG_GFXDECODE_ADD("gfxdecode", "palette", cntsteer)
MCFG_PALETTE_ADD("palette", 256)
@@ -1179,7 +1214,7 @@ DRIVER_INIT_MEMBER(cntsteer_state,zerotrgt)
/***************************************************************************/
-GAME( 1985, zerotrgt, 0, zerotrgt, zerotrgt, cntsteer_state, zerotrgt, ROT0, "Data East Corporation", "Zero Target (World, CW)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NO_COCKTAIL|GAME_NOT_WORKING|GAME_SUPPORTS_SAVE )
-GAME( 1985, zerotrgta, zerotrgt, zerotrgt, zerotrgta, cntsteer_state, zerotrgt, ROT0, "Data East Corporation", "Zero Target (World, CT)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NO_COCKTAIL|GAME_NOT_WORKING|GAME_SUPPORTS_SAVE )
-GAME( 1985, gekitsui, zerotrgt, zerotrgt, zerotrgta, cntsteer_state, zerotrgt, ROT0, "Data East Corporation", "Gekitsui Oh (Japan)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NO_COCKTAIL|GAME_NOT_WORKING|GAME_SUPPORTS_SAVE )
-GAME( 1985, cntsteer, 0, cntsteer, cntsteer, cntsteer_state, zerotrgt, ROT270, "Data East Corporation", "Counter Steer (Japan)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_WRONG_COLORS|GAME_NO_COCKTAIL|GAME_NOT_WORKING|GAME_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 )
diff --git a/src/mame/drivers/cobra.c b/src/mame/drivers/cobra.c
index 7850cc721fa..047e8e7fb03 100644
--- a/src/mame/drivers/cobra.c
+++ b/src/mame/drivers/cobra.c
@@ -615,7 +615,11 @@ public:
m_ata(*this, "ata"),
m_screen(*this, "screen"),
m_palette(*this, "palette"),
- m_generic_paletteram_32(*this, "paletteram")
+ m_generic_paletteram_32(*this, "paletteram"),
+ m_main_ram(*this, "main_ram"),
+ m_sub_ram(*this, "sub_ram"),
+ m_gfx_ram0(*this, "gfx_main_ram_0"),
+ m_gfx_ram1(*this, "gfx_main_ram_1")
{
}
@@ -628,6 +632,10 @@ public:
required_device<screen_device> m_screen;
required_device<palette_device> m_palette;
required_shared_ptr<UINT32> m_generic_paletteram_32;
+ required_shared_ptr<UINT64> m_main_ram;
+ required_shared_ptr<UINT32> m_sub_ram;
+ required_shared_ptr<UINT64> m_gfx_ram0;
+ required_shared_ptr<UINT64> m_gfx_ram1;
DECLARE_READ64_MEMBER(main_comram_r);
DECLARE_WRITE64_MEMBER(main_comram_w);
@@ -1569,6 +1577,25 @@ WRITE64_MEMBER(cobra_state::main_fifo_w)
}
#endif
+ if (m_main_debug_state == 0x6b)
+ {
+ // install HD patches for bujutsu
+ if (strcmp(space.machine().system().name, "bujutsu") == 0)
+ {
+ UINT32 *main_ram = (UINT32*)(UINT64*)m_main_ram;
+ UINT32 *sub_ram = (UINT32*)m_sub_ram;
+ UINT32 *gfx_ram = (UINT32*)(UINT64*)m_gfx_ram0;
+
+ main_ram[(0x0005ac^4) / 4] = 0x60000000; // skip IRQ fail
+ main_ram[(0x001ec4^4) / 4] = 0x60000000; // waiting for IRQ?
+ main_ram[(0x001f00^4) / 4] = 0x60000000; // waiting for IRQ?
+
+ sub_ram[0x568 / 4] = 0x60000000; // skip IRQ fail
+
+ gfx_ram[(0x38632c^4) / 4] = 0x38600000; // skip check_one_scene()
+ }
+ }
+
m_main_debug_state = 0;
m_main_debug_state_wc = 0;
}
@@ -1616,7 +1643,7 @@ WRITE32_MEMBER(cobra_state::main_cpu_dc_store)
}
static ADDRESS_MAP_START( cobra_main_map, AS_PROGRAM, 64, cobra_state )
- AM_RANGE(0x00000000, 0x003fffff) AM_RAM
+ AM_RANGE(0x00000000, 0x003fffff) AM_RAM AM_SHARE("main_ram")
AM_RANGE(0x07c00000, 0x07ffffff) AM_RAM
AM_RANGE(0x80000cf8, 0x80000cff) AM_READWRITE(main_mpc106_r, main_mpc106_w)
AM_RANGE(0xc0000000, 0xc03fffff) AM_RAM AM_SHARE("gfx_main_ram_0") // GFX board main ram, bank 0
@@ -1956,7 +1983,7 @@ WRITE8_MEMBER(cobra_state::sub_jvs_w)
}
static ADDRESS_MAP_START( cobra_sub_map, AS_PROGRAM, 32, cobra_state )
- AM_RANGE(0x00000000, 0x003fffff) AM_MIRROR(0x80000000) AM_RAM // Main RAM
+ AM_RANGE(0x00000000, 0x003fffff) AM_MIRROR(0x80000000) AM_RAM AM_SHARE("sub_ram") // Main RAM
AM_RANGE(0x70000000, 0x7003ffff) AM_MIRROR(0x80000000) AM_READWRITE(sub_comram_r, sub_comram_w) // Double buffered shared RAM between Main and Sub
// AM_RANGE(0x78000000, 0x780000ff) AM_MIRROR(0x80000000) AM_NOP // SCSI controller (unused)
AM_RANGE(0x78040000, 0x7804ffff) AM_MIRROR(0x80000000) AM_DEVREADWRITE16("rfsnd", rf5c400_device, rf5c400_r, rf5c400_w, 0xffffffff)
@@ -3500,5 +3527,5 @@ ROM_END
/*************************************************************************/
-GAME( 1997, bujutsu, 0, cobra, cobra, cobra_state, bujutsu, ROT0, "Konami", "Fighting Bujutsu", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 1997, racjamdx, 0, cobra, cobra, cobra_state, racjamdx, ROT0, "Konami", "Racing Jam DX", GAME_NOT_WORKING | GAME_NO_SOUND )
+GAME( 1997, bujutsu, 0, cobra, cobra, cobra_state, bujutsu, ROT0, "Konami", "Fighting Bujutsu", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 1997, racjamdx, 0, cobra, cobra, cobra_state, racjamdx, ROT0, "Konami", "Racing Jam DX", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mess/drivers/coco12.c b/src/mame/drivers/coco12.c
index 7ed66f1b9f2..7ed66f1b9f2 100644
--- a/src/mess/drivers/coco12.c
+++ b/src/mame/drivers/coco12.c
diff --git a/src/mess/drivers/coco3.c b/src/mame/drivers/coco3.c
index 463c5e5cffb..8023151718f 100644
--- a/src/mess/drivers/coco3.c
+++ b/src/mame/drivers/coco3.c
@@ -371,5 +371,5 @@ ROM_END
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)", GAME_UNOFFICIAL)
-COMP( 19??, coco3dw1, coco, 0, coco3dw1, coco3, driver_device, 0, "Tandy Radio Shack", "Color Computer 3 (NTSC; HDB-DOS)", GAME_UNOFFICIAL)
+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)
diff --git a/src/mame/drivers/cocoloco.c b/src/mame/drivers/cocoloco.c
index 47f2e040050..a4b72dc2808 100644
--- a/src/mame/drivers/cocoloco.c
+++ b/src/mame/drivers/cocoloco.c
@@ -530,4 +530,4 @@ ROM_END
***********************************/
/* 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", GAME_SUPPORTS_SAVE )
+GAME( 198?, cocoloco, 0, cocoloco, cocoloco, driver_device, 0, ROT90, "Petaco S.A.", "Coco Loco", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/codata.c b/src/mame/drivers/codata.c
index 8e5c8bebdc3..91c7459f450 100644
--- a/src/mess/drivers/codata.c
+++ b/src/mame/drivers/codata.c
@@ -110,4 +110,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1982, codata, 0, 0, codata, codata, driver_device, 0, "Contel Codata Corporation", "Codata", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/coinmstr.c b/src/mame/drivers/coinmstr.c
index 61896941cd2..e2d0d6bc591 100644
--- a/src/mame/drivers/coinmstr.c
+++ b/src/mame/drivers/coinmstr.c
@@ -1763,9 +1763,9 @@ DRIVER_INIT_MEMBER(coinmstr_state,coinmstr)
*************************/
/* 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)", GAME_UNEMULATED_PROTECTION )
-GAME( 1987, trailblz, 0, trailblz, trailblz, coinmstr_state, coinmstr, ROT0, "Coinmaster", "Trail Blazer", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING ) // or Trail Blazer 2 ?
-GAME( 1989, supnudg2, 0, supnudg2, supnudg2, coinmstr_state, coinmstr, ROT0, "Coinmaster", "Super Nudger II - P173 (Version 5.21)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
-GAME( 1990, pokeroul, 0, pokeroul, pokeroul, driver_device, 0, ROT0, "Coinmaster", "Poker Roulette (Version 8.22)", GAME_NOT_WORKING )
-GAME( 1985, jpcoin, 0, jpcoin , jpcoin, driver_device, 0, ROT0, "Coinmaster", "Joker Poker (Coinmaster set 1)", GAME_NOT_WORKING ) // io stuff is different at least
+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)", MACHINE_NOT_WORKING ) // io stuff is different at least
GAME( 1990, jpcoin2, 0, jpcoin2, jpcoin2, driver_device, 0, ROT0, "Coinmaster", "Joker Poker (Coinmaster, Amusement Only)", 0 )
diff --git a/src/mame/drivers/coinmvga.c b/src/mame/drivers/coinmvga.c
index 0c6c64b0548..615a6aa7793 100644
--- a/src/mame/drivers/coinmvga.c
+++ b/src/mame/drivers/coinmvga.c
@@ -883,8 +883,8 @@ DRIVER_INIT_MEMBER(coinmvga_state,cmrltv75)
*************************/
/* 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)", GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND | GAME_NOT_WORKING )
-GAME( 2000, coloramas, colorama, coinmvga, coinmvga, coinmvga_state, colorama, ROT0, "Coinmaster-Gaming, Ltd.", "Colorama (P521 V13, Spanish)", GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND | GAME_NOT_WORKING )
-GAME( 2001, cmrltv75, 0, coinmvga, coinmvga, coinmvga_state, cmrltv75, ROT90, "Coinmaster-Gaming, Ltd.", "Coinmaster Roulette P497 V75 (Y2K, Spanish)", GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND | GAME_NOT_WORKING )
-GAME( 2000, cmkenosp, 0, coinmvga, coinmvga, driver_device, 0, ROT90, "Coinmaster-Gaming, Ltd.", "Coinmaster Keno (Y2K, Spanish, 2000-12-14)", GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND | GAME_NOT_WORKING )
-GAME( 2000, cmkenospa, cmkenosp, coinmvga, coinmvga, driver_device, 0, ROT90, "Coinmaster-Gaming, Ltd.", "Coinmaster Keno (Y2K, Spanish, 2000-12-02)", GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND | GAME_NOT_WORKING )
+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 )
diff --git a/src/mess/drivers/coleco.c b/src/mame/drivers/coleco.c
index 435b20060c3..5f6c020e33c 100644
--- a/src/mess/drivers/coleco.c
+++ b/src/mame/drivers/coleco.c
@@ -70,12 +70,12 @@
READ8_MEMBER( coleco_state::paddle_1_r )
{
- return m_joy_d7_state[0] | coleco_paddle_read(machine(), 0, m_joy_mode, m_joy_analog_state[0]);
+ return m_joy_d7_state[0] | coleco_paddle_read(0, m_joy_mode, m_joy_analog_state[0]);
}
READ8_MEMBER( coleco_state::paddle_2_r )
{
- return m_joy_d7_state[1] | coleco_paddle_read(machine(), 1, m_joy_mode, m_joy_analog_state[1]);
+ return m_joy_d7_state[1] | coleco_paddle_read(1, m_joy_mode, m_joy_analog_state[1]);
}
WRITE8_MEMBER( coleco_state::paddle_off_w )
@@ -206,7 +206,7 @@ TIMER_CALLBACK_MEMBER(coleco_state::paddle_pulse_callback)
TIMER_DEVICE_CALLBACK_MEMBER(coleco_state::paddle_update_callback)
{
// arbitrary timer for reading analog controls
- coleco_scan_paddles(machine(), &m_joy_analog_reload[0], &m_joy_analog_reload[1]);
+ coleco_scan_paddles(&m_joy_analog_reload[0], &m_joy_analog_reload[1]);
for (int port = 0; port < 2; port++)
{
@@ -229,6 +229,97 @@ READ8_MEMBER( coleco_state::cart_r )
return m_cart->bd_r(space, offset & 0x7fff, 0, 0, 0, 0, 0);
}
+UINT8 coleco_state::coleco_scan_paddles(UINT8 *joy_status0, UINT8 *joy_status1)
+{
+ UINT8 ctrl_sel = (m_ctrlsel != NULL) ? m_ctrlsel->read() : 0;
+
+ /* which controller shall we read? */
+ if ((ctrl_sel & 0x07) == 0x02) // Super Action Controller P1
+ *joy_status0 = (m_sac_slide1 != NULL) ? m_sac_slide1->read() : 0;
+ else if ((ctrl_sel & 0x07) == 0x03) // Driving Controller P1
+ *joy_status0 = (m_driv_wheel1 != NULL) ? m_driv_wheel1->read() : 0;
+
+ if ((ctrl_sel & 0x70) == 0x20) // Super Action Controller P2
+ *joy_status1 = (m_sac_slide2 != NULL) ? m_sac_slide2->read() : 0;
+ else if ((ctrl_sel & 0x70) == 0x30) // Driving Controller P2
+ *joy_status1 = (m_driv_wheel2 != NULL) ? m_driv_wheel2->read() : 0;
+
+ /* In principle, even if not supported by any game, I guess we could have two Super
+ Action Controllers plugged into the Roller controller ports. Since I found no info
+ about the behavior of sliders in such a configuration, we overwrite SAC sliders with
+ the Roller trackball inputs and actually use the latter ones, when both are selected. */
+ if (ctrl_sel & 0x80) // Roller controller
+ {
+ *joy_status0 = (m_roller_x != NULL) ? m_roller_x->read() : 0;
+ *joy_status1 = (m_roller_y != NULL) ? m_roller_y->read() : 0;
+ }
+
+ return *joy_status0 | *joy_status1;
+}
+
+
+UINT8 coleco_state::coleco_paddle_read(int port, int joy_mode, UINT8 joy_status)
+{
+ UINT8 ctrl_sel = (m_ctrlsel != NULL ) ? m_ctrlsel->read() : 0;
+ UINT8 ctrl_extra = ctrl_sel & 0x80;
+ ctrl_sel = ctrl_sel >> (port*4) & 7;
+
+ /* Keypad and fire 1 (SAC Yellow Button) */
+ if (joy_mode == 0)
+ {
+ /* No key pressed by default */
+ UINT8 data = 0x0f;
+ UINT16 ipt = 0xffff;
+
+ if (ctrl_sel == 0) // ColecoVision Controller
+ ipt = port ? m_std_keypad2->read() : m_std_keypad1->read();
+ else if (ctrl_sel == 2) // Super Action Controller
+ ipt = port ? m_sac_keypad2->read() : m_sac_keypad1->read();
+
+ /* Numeric pad buttons are not independent on a real ColecoVision, if you push more
+ than one, a real ColecoVision think that it is a third button, so we are going to emulate
+ the right behaviour */
+ /* Super Action Controller additional buttons are read in the same way */
+ if (!(ipt & 0x0001)) data &= 0x0a; /* 0 */
+ if (!(ipt & 0x0002)) data &= 0x0d; /* 1 */
+ if (!(ipt & 0x0004)) data &= 0x07; /* 2 */
+ if (!(ipt & 0x0008)) data &= 0x0c; /* 3 */
+ if (!(ipt & 0x0010)) data &= 0x02; /* 4 */
+ if (!(ipt & 0x0020)) data &= 0x03; /* 5 */
+ if (!(ipt & 0x0040)) data &= 0x0e; /* 6 */
+ if (!(ipt & 0x0080)) data &= 0x05; /* 7 */
+ if (!(ipt & 0x0100)) data &= 0x01; /* 8 */
+ if (!(ipt & 0x0200)) data &= 0x0b; /* 9 */
+ if (!(ipt & 0x0400)) data &= 0x06; /* # */
+ if (!(ipt & 0x0800)) data &= 0x09; /* * */
+ if (!(ipt & 0x1000)) data &= 0x04; /* Blue Action Button */
+ if (!(ipt & 0x2000)) data &= 0x08; /* Purple Action Button */
+
+ return ((ipt & 0x4000) >> 8) | 0x30 | data;
+ }
+ /* Joystick and fire 2 (SAC Red Button) */
+ else
+ {
+ UINT8 data = 0x7f;
+
+ if (ctrl_sel == 0) // ColecoVision Controller
+ data = port ? m_std_joy2->read() : m_std_joy1->read();
+ else if (ctrl_sel == 2) // Super Action Controller
+ data = port ? m_sac_joy2->read() : m_sac_joy1->read();
+ else if (ctrl_sel == 3) // Driving Controller
+ data = port ? m_driv_pedal2->read() : m_driv_pedal1->read();
+
+ /* If any extra analog contoller enabled */
+ if (ctrl_extra || ctrl_sel == 2 || ctrl_sel == 3)
+ {
+ if (joy_status & 0x80) data ^= 0x30;
+ else if (joy_status) data ^= 0x10;
+ }
+
+ return data & 0x7f;
+ }
+}
+
void coleco_state::machine_start()
{
memset(m_ram, 0xff, m_ram.bytes()); // initialize RAM
@@ -354,7 +445,7 @@ ROM_END
Unreleased Brazilian Colecovision clone by Microdigital.
It was never released and the only known prototypes were uncovered by an ex-employee of Microdigital
- called Cláudio Cassens who donated it to collectors (Eduardo Luccas) in June 2015.
+ called Cl??udio Cassens who donated it to collectors (Eduardo Luccas) in June 2015.
-- Felipe Sanches
*/
ROM_START (onyx)
diff --git a/src/mame/drivers/combatsc.c b/src/mame/drivers/combatsc.c
index 6d6ba09d4cb..75c753a685b 100644
--- a/src/mame/drivers/combatsc.c
+++ b/src/mame/drivers/combatsc.c
@@ -995,4 +995,4 @@ GAME( 1987, combatsct, combatsc, combatsc, combatsct, driver_device, 0,
GAME( 1987, combatscj, combatsc, combatsc, combatsct, driver_device, 0, ROT0, "Konami", "Combat School (Japan trackball)", 0 )
GAME( 1987, bootcamp, combatsc, combatsc, combatsct, driver_device, 0, ROT0, "Konami", "Boot Camp (set 1)", 0 )
GAME( 1987, bootcampa, combatsc, combatsc, combatsct, driver_device, 0, ROT0, "Konami", "Boot Camp (set 2)", 0 )
-GAME( 1988, combatscb, combatsc, combatscb, combatscb, driver_device, 0, ROT0, "bootleg", "Combat School (bootleg)", GAME_IMPERFECT_COLORS | GAME_IMPERFECT_SOUND )
+GAME( 1988, combatscb, combatsc, combatscb, combatscb, driver_device, 0, ROT0, "bootleg", "Combat School (bootleg)", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND )
diff --git a/src/mame/drivers/comebaby.c b/src/mame/drivers/comebaby.c
index 64dd498e542..a1008f4c904 100644
--- a/src/mame/drivers/comebaby.c
+++ b/src/mame/drivers/comebaby.c
@@ -248,4 +248,4 @@ ROM_START(comebaby)
ROM_END
-GAME( 2000, comebaby, 0, comebaby, comebaby, driver_device, 0, ROT0, "ExPotato", "Come On Baby", GAME_NOT_WORKING|GAME_NO_SOUND )
+GAME( 2000, comebaby, 0, comebaby, comebaby, driver_device, 0, ROT0, "ExPotato", "Come On Baby", MACHINE_NOT_WORKING|MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/commando.c b/src/mame/drivers/commando.c
index 012e6ac0171..8d3d40d06bc 100644
--- a/src/mame/drivers/commando.c
+++ b/src/mame/drivers/commando.c
@@ -648,11 +648,11 @@ DRIVER_INIT_MEMBER(commando_state,spaceinv)
/* Game Drivers */
-GAME( 1985, commando, 0, commando, commando, commando_state, commando, ROT270, "Capcom", "Commando (World)", GAME_SUPPORTS_SAVE )
-GAME( 1985, commandou, commando, commando, commandou, commando_state,commando, ROT270, "Capcom (Data East USA license)", "Commando (US set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1985, commandou2, commando, commando, commando, commando_state, commando, ROT270, "Capcom (Data East USA license)", "Commando (US set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1985, commandoj, commando, commando, commando, commando_state, commando, ROT270, "Capcom", "Senjou no Ookami", GAME_SUPPORTS_SAVE )
-GAME( 1985, commandob, commando, commando, commando, commando_state, spaceinv, ROT270, "bootleg", "Commando (bootleg set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1985, commandob2,commando, commando, commando, commando_state, commando, ROT270, "bootleg", "Commando (bootleg set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1985, sinvasn, commando, commando, commando, commando_state, commando, ROT270, "Capcom", "Space Invasion (Europe)", GAME_SUPPORTS_SAVE )
-GAME( 1985, sinvasnb, commando, commando, commando, commando_state, spaceinv, ROT270, "bootleg", "Space Invasion (bootleg)", GAME_SUPPORTS_SAVE )
+GAME( 1985, commando, 0, commando, commando, commando_state, commando, ROT270, "Capcom", "Commando (World)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, commandou, commando, commando, commandou, commando_state,commando, ROT270, "Capcom (Data East USA license)", "Commando (US set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, commandou2, commando, commando, commando, commando_state, commando, ROT270, "Capcom (Data East USA license)", "Commando (US set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, commandoj, commando, commando, commando, commando_state, commando, ROT270, "Capcom", "Senjou no Ookami", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, commandob, commando, commando, commando, commando_state, spaceinv, ROT270, "bootleg", "Commando (bootleg set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, commandob2,commando, commando, commando, commando_state, commando, ROT270, "bootleg", "Commando (bootleg set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, sinvasn, commando, commando, commando, commando_state, commando, ROT270, "Capcom", "Space Invasion (Europe)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, sinvasnb, commando, commando, commando, commando_state, spaceinv, ROT270, "bootleg", "Space Invasion (bootleg)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/compgolf.c b/src/mame/drivers/compgolf.c
index 66cfadacbbe..344c83641ef 100644
--- a/src/mame/drivers/compgolf.c
+++ b/src/mame/drivers/compgolf.c
@@ -352,5 +352,5 @@ DRIVER_INIT_MEMBER(compgolf_state,compgolf)
*
*************************************/
-GAME( 1986, compgolf, 0, compgolf, compgolf, compgolf_state, compgolf, ROT0, "Data East", "Competition Golf Final Round (revision 3)", GAME_SUPPORTS_SAVE )
-GAME( 1985, compgolfo,compgolf, compgolf, compgolf, compgolf_state, compgolf, ROT0, "Data East", "Competition Golf Final Round (Japan, old version)", GAME_SUPPORTS_SAVE )
+GAME( 1986, compgolf, 0, compgolf, compgolf, compgolf_state, compgolf, ROT0, "Data East", "Competition Golf Final Round (revision 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, compgolfo,compgolf, compgolf, compgolf, compgolf_state, compgolf, ROT0, "Data East", "Competition Golf Final Round (Japan, old version)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/compis.c b/src/mame/drivers/compis.c
index f2a067eb4c0..f2f2921436c 100644
--- a/src/mess/drivers/compis.c
+++ b/src/mame/drivers/compis.c
@@ -788,5 +788,5 @@ ROM_END
//**************************************************************************
// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS
-COMP(1985, compis, 0, 0, compis, compis, driver_device, 0, "Telenova", "Compis" , GAME_NOT_WORKING )
-COMP(1986, compis2, compis, 0, compis2, compis, driver_device, 0, "Telenova", "Compis II" , GAME_NOT_WORKING )
+COMP(1985, compis, 0, 0, compis, compis, driver_device, 0, "Telenova", "Compis" , MACHINE_NOT_WORKING )
+COMP(1986, compis2, compis, 0, compis2, compis, driver_device, 0, "Telenova", "Compis II" , MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/compucolor.c b/src/mame/drivers/compucolor.c
index 1485860c1e4..2286c43f10f 100644
--- a/src/mess/drivers/compucolor.c
+++ b/src/mame/drivers/compucolor.c
@@ -40,6 +40,7 @@ public:
m_maincpu(*this, I8080_TAG),
m_mioc(*this, TMS5501_TAG),
m_vtac(*this, CRT5027_TAG),
+ m_palette(*this, "palette"),
m_rs232(*this, RS232_TAG),
m_floppy0(*this, "cd0"),
m_floppy1(*this, "cd1"),
@@ -67,6 +68,7 @@ public:
required_device<cpu_device> m_maincpu;
required_device<tms5501_device> m_mioc;
required_device<crt5027_device> m_vtac;
+ required_device<palette_device> m_palette;
required_device<rs232_port_device> m_rs232;
required_device<compucolor_floppy_port_device> m_floppy0;
required_device<compucolor_floppy_port_device> m_floppy1;
@@ -92,7 +94,6 @@ public:
virtual void machine_start();
virtual void machine_reset();
- DECLARE_PALETTE_INIT(compucolor2);
UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
@@ -102,8 +103,6 @@ public:
IRQ_CALLBACK_MEMBER( int_ack );
- rgb_t m_palette[8];
-
UINT8 m_xo;
};
@@ -305,8 +304,8 @@ UINT32 compucolor2_state::screen_update(screen_device &screen, bitmap_rgb32 &bit
UINT8 data = m_char_rom->base()[char_offs];
- rgb_t fg = m_palette[attr & 0x07];
- rgb_t bg = m_palette[(attr >> 3) & 0x07];
+ rgb_t fg = m_palette->pen_color(attr & 0x07);
+ rgb_t bg = m_palette->pen_color((attr >> 3) & 0x07);
for (int x = 0; x < 6; x++)
{
@@ -434,14 +433,6 @@ void compucolor2_state::machine_reset()
m_rs232->write_dtr(1);
}
-PALETTE_INIT_MEMBER(compucolor2_state, compucolor2)
-{
- for (int i = 0; i < 8; i++)
- {
- m_palette[i] = rgb_t(BIT(i, 0) * 0xff, BIT(i, 1) * 0xff, BIT(i, 2) * 0xff);
- }
-}
-
static MACHINE_CONFIG_START( compucolor2, compucolor2_state )
// basic machine hardware
MCFG_CPU_ADD(I8080_TAG, I8080, XTAL_17_9712MHz/9)
@@ -449,9 +440,6 @@ static MACHINE_CONFIG_START( compucolor2, compucolor2_state )
MCFG_CPU_IO_MAP(compucolor2_io)
MCFG_CPU_IRQ_ACKNOWLEDGE_DRIVER(compucolor2_state,int_ack)
- MCFG_PALETTE_ADD("palette", 8)
- MCFG_PALETTE_INIT_OWNER(compucolor2_state, compucolor2)
-
// video hardware
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -460,6 +448,8 @@ static MACHINE_CONFIG_START( compucolor2, compucolor2_state )
MCFG_SCREEN_SIZE(64*6, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0, 64*6-1, 0, 32*8-1)
+ MCFG_PALETTE_ADD_3BIT_RGB("palette")
+
MCFG_DEVICE_ADD(CRT5027_TAG, CRT5027, XTAL_17_9712MHz/2)
MCFG_TMS9927_CHAR_WIDTH(6)
MCFG_TMS9927_VSYN_CALLBACK(DEVWRITELINE(TMS5501_TAG, tms5501_device, sens_w))
@@ -513,4 +503,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", GAME_NOT_WORKING | GAME_NO_SOUND_HW )
+COMP( 1977, compclr2, 0, 0, compucolor2, compucolor2, driver_device, 0, "Intelligent Systems Corporation", "Compucolor II", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW )
diff --git a/src/mess/drivers/comquest.c b/src/mame/drivers/comquest.c
index 0c1e159cd8a..5329f09e1d4 100644
--- a/src/mess/drivers/comquest.c
+++ b/src/mame/drivers/comquest.c
@@ -307,4 +307,4 @@ 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)", GAME_NOT_WORKING | GAME_NO_SOUND)
+CONS( 1995, comquest, 0, 0, comquest, comquest, driver_device, 0, "Data Concepts", "ComQuest Plus (German)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/comx35.c b/src/mame/drivers/comx35.c
index 5452582616a..04bc334ce40 100644
--- a/src/mess/drivers/comx35.c
+++ b/src/mame/drivers/comx35.c
@@ -719,5 +719,5 @@ ROM_END
//**************************************************************************
// 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)", GAME_IMPERFECT_SOUND )
-COMP( 1983, comx35n, comx35p,0, ntsc, comx35, driver_device, 0, "Comx World Operations Ltd", "COMX 35 (NTSC)", GAME_IMPERFECT_SOUND )
+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 )
diff --git a/src/mess/drivers/concept.c b/src/mame/drivers/concept.c
index 947d4bfcfa7..947d4bfcfa7 100644
--- a/src/mess/drivers/concept.c
+++ b/src/mame/drivers/concept.c
diff --git a/src/mame/drivers/contra.c b/src/mame/drivers/contra.c
index d2d046949e6..e10f10ca5e6 100644
--- a/src/mame/drivers/contra.c
+++ b/src/mame/drivers/contra.c
@@ -563,13 +563,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)", GAME_SUPPORTS_SAVE )
-GAME( 1987, contra1, contra, contra, contra, driver_device, 0, ROT90, "Konami", "Contra (US / Asia, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1987, contrae, contra, contra, contra, driver_device, 0, ROT90, "Konami", "Contra (US / Asia, set 3)", GAME_SUPPORTS_SAVE )
-GAME( 1987, contraj, contra, contra, contra, driver_device, 0, ROT90, "Konami", "Contra (Japan, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1987, contraj1, contra, contra, contra, driver_device, 0, ROT90, "Konami", "Contra (Japan, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1987, gryzor, contra, contra, gryzor, driver_device, 0, ROT90, "Konami", "Gryzor (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1987, gryzor1, contra, contra, gryzor, driver_device, 0, ROT90, "Konami", "Gryzor (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1987, contrab, contra, contra, contra, driver_device, 0, ROT90, "bootleg", "Contra (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1987, contrabj, contra, contra, contra, driver_device, 0, ROT90, "bootleg", "Contra (Japan bootleg, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1987, contrabj1, contra, contra, contra, driver_device, 0, ROT90, "bootleg", "Contra (Japan bootleg, set 2)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/coolpool.c b/src/mame/drivers/coolpool.c
index a121b0c1a92..c54ec39c031 100644
--- a/src/mame/drivers/coolpool.c
+++ b/src/mame/drivers/coolpool.c
@@ -1185,9 +1185,9 @@ DRIVER_INIT_MEMBER(coolpool_state,9ballsht)
*
*************************************/
-GAME( 1989, amerdart, 0, amerdart, amerdart, coolpool_state, amerdart, ROT0, "Ameri", "AmeriDarts (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1989, amerdart2, amerdart, amerdart, amerdart, coolpool_state, amerdart, ROT0, "Ameri", "AmeriDarts (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1989, amerdart3, amerdart, amerdart, amerdart, coolpool_state, amerdart, ROT0, "Ameri", "AmeriDarts (set 3)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/coolridr.c b/src/mame/drivers/coolridr.c
index b420c04066a..7e9d216dc67 100644
--- a/src/mame/drivers/coolridr.c
+++ b/src/mame/drivers/coolridr.c
@@ -7,6 +7,8 @@
Driver by David Haywood, Angelo Salese and Tomasz Slanina
special thanks to Guru for references and HW advices
+ Games on this system include Cool Riders and Aqua Stage.
+
This system is interesting in that it makes use of an RLE compression scheme, which
is not something common for Sega hardware, there is a patent for it ( 6,141,122 )
http://www.google.com/patents/US6141122
@@ -18,11 +20,6 @@
- i8237 purpose is unknown (missing ROM for comms?).
- verify zooming etc. our current algorithm is a bit ugly for text
- Also known to exist on this hardware is Aqua Stage (Coin pusher):
- 833-12000 AQUA STAGE
- Program roms EPR-18279 through EPR-18282
- 12 MASK roms (MPR numbers unknown)
- SUB CPU program rom EPR-18278
=======================================================================================================
Cool Riders
@@ -280,6 +277,9 @@ to the same bank as defined through A20.
*/
+// http://www.nicozon.net/watch/sm7834644 (first part is Aqua Stage video?)
+// http://www.system16.com/hardware.php?id=841 has a picture of Aqua Stage showing the wide aspect
+
#include "emu.h"
#include "cpu/sh2/sh2.h"
@@ -287,6 +287,7 @@ to the same bank as defined through A20.
#include "sound/scsp.h"
#include "machine/nvram.h"
#include "rendlay.h"
+#include "aquastge.lh"
#define CLIPMAXX_FULL (496-1)
#define CLIPMAXY_FULL (384-1)
@@ -345,7 +346,7 @@ public:
// store the blit params here
UINT32 m_spriteblit[12];
UINT32 m_vregs_address;
-
+
UINT32 m_clipvals[2][3];
UINT8 m_clipblitterMode[2]; // hack
@@ -2732,7 +2733,7 @@ void coolridr_state::sysh1_dma_transfer( address_space &space, UINT16 dma_index
do{
cmd = (m_framebuffer_vram[(0+dma_index)/4] & 0xfc000000) >> 24;
-
+
switch(cmd)
{
case 0x00: /* end of list marker */
@@ -3026,7 +3027,7 @@ static ADDRESS_MAP_START( coolridr_submap, AS_PROGRAM, 32, coolridr_state )
AM_RANGE(0x05000000, 0x05000fff) AM_RAM
AM_RANGE(0x05200000, 0x052001ff) AM_RAM
AM_RANGE(0x05300000, 0x0530ffff) AM_RAM AM_SHARE("share3") /*Communication area RAM*/
-// AM_RANGE(0x05fffe00, 0x05ffffff) AM_READWRITE16(sh7032_r,sh7032_w,0xffffffff) // SH-7032H internal i/o
+// AM_RANGE(0x05fffe00, 0x05ffffff) AM_READWRITE16(sh7032_r,sh7032_w,0xffffffff) // SH-7032H internal i/o
AM_RANGE(0x06000000, 0x060001ff) AM_RAM AM_SHARE("nvram") // backup RAM
AM_RANGE(0x06100000, 0x06100003) AM_READ_PORT("IN0") AM_WRITE8(lamps_w,0x000000ff)
AM_RANGE(0x06100004, 0x06100007) AM_READ_PORT("IN1")
@@ -3123,32 +3124,31 @@ GFXDECODE_END
PORT_DIPNAME( 0x00800000, 0x00800000, DEF_STR( Unknown ) ) \
PORT_DIPSETTING( 0x00800000, DEF_STR( Off ) ) \
PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) \
- PORT_BIT( 0xff00ff00, IP_ACTIVE_LOW, IPT_UNUSED ) \
-
+ PORT_BIT( 0xff00ff00, IP_ACTIVE_LOW, IPT_UNUSED )
static INPUT_PORTS_START( aquastge )
DUMMY_INPUT_PORT("IN0")
PORT_START("IN1")
- PORT_DIPNAME( 0x00000001, 0x00000001, "IN1" )
- PORT_DIPSETTING( 0x00000001, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
- PORT_DIPNAME( 0x00000002, 0x00000002, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00000002, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
- PORT_DIPNAME( 0x00000004, 0x00000004, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00000004, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
- PORT_DIPNAME( 0x00000008, 0x00000008, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00000008, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
- PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
- PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
- PORT_DIPNAME( 0x00000040, 0x00000040, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00000040, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
- PORT_DIPNAME( 0x00000080, 0x00000080, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x00000080, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x00000001, 0x00000001, "IN1" )
+ PORT_DIPSETTING( 0x00000001, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x00000002, 0x00000002, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x00000002, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x00000004, 0x00000004, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x00000004, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x00000008, 0x00000008, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x00000008, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
+ PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
+ PORT_BIT( 0x00000020, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
+ PORT_DIPNAME( 0x00000040, 0x00000040, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x00000040, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x00000080, 0x00000080, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x00000080, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
PORT_BIT( 0x00010000, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_NAME("P1 Coin")
PORT_BIT( 0x00020000, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_NAME("P2 Coin")
PORT_SERVICE_NO_TOGGLE( 0x00040000, IP_ACTIVE_LOW )
@@ -3157,8 +3157,8 @@ static INPUT_PORTS_START( aquastge )
PORT_BIT( 0x00200000, IP_ACTIVE_LOW, IPT_START2 ) PORT_NAME("P2 Start")
PORT_BIT( 0x00400000, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("P2 Service Switch")
PORT_BIT( 0x00800000, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_BIT( 0xff00ff00, IP_ACTIVE_LOW, IPT_UNUSED )
-
+ PORT_BIT( 0xff00ff00, IP_ACTIVE_LOW, IPT_UNUSED )
+
DUMMY_INPUT_PORT("IN2")
DUMMY_INPUT_PORT("IN3")
@@ -3818,6 +3818,10 @@ ROM_START( coolridr )
ROM_FILL( 0x000000, 0x80000, 0 )
ROM_END
+/*
+Aqua Stage (Coin pusher)
+PCB: 833-12000 AQUA STAGE
+*/
ROM_START( aquastge )
ROM_REGION( 0x200000, "maincpu", 0 ) /* SH2 code */
@@ -3906,7 +3910,7 @@ READ32_MEMBER(coolridr_state::aquastge_hack_r)
return 0;
else
{
-// printf("pc %08x\n", pc);
+// printf("pc %08x\n", pc);
}
return m_sysh1_workram_h[0xc3fd8/4];
@@ -3933,7 +3937,7 @@ DRIVER_INIT_MEMBER(coolridr_state, aquastge)
{
m_maincpu->space(AS_PROGRAM).install_read_handler(0x60c3fd8, 0x60c3fdb, read32_delegate(FUNC(coolridr_state::aquastge_hack_r), this));
-
+
m_maincpu->sh2drc_set_options(SH2DRC_FASTEST_OPTIONS);
@@ -3942,6 +3946,5 @@ DRIVER_INIT_MEMBER(coolridr_state, aquastge)
m_colbase = 0;
}
-GAME( 1995, coolridr, 0, coolridr, coolridr, coolridr_state, coolridr, ROT0, "Sega", "Cool Riders",GAME_IMPERFECT_SOUND) // region is set in test mode, this set is for Japan, USA and Export (all regions)
-GAME( 1995, aquastge, 0, aquastge, aquastge, coolridr_state, aquastge, ROT0, "Sega", "Aqua Stage",GAME_NOT_WORKING)
-
+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.c b/src/mame/drivers/cop01.c
index 715d063dbd2..36ccca372bc 100644
--- a/src/mame/drivers/cop01.c
+++ b/src/mame/drivers/cop01.c
@@ -660,6 +660,6 @@ DRIVER_INIT_MEMBER(cop01_state,mightguy)
*
*************************************/
-GAME( 1985, cop01, 0, cop01, cop01, driver_device, 0, ROT0, "Nichibutsu", "Cop 01 (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1985, cop01a, cop01, cop01, cop01, driver_device, 0, ROT0, "Nichibutsu", "Cop 01 (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1986, mightguy, 0, mightguy, mightguy, cop01_state, mightguy, ROT270, "Nichibutsu", "Mighty Guy", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/cops.c b/src/mame/drivers/cops.c
index 3894c06afad..eb156f80377 100644
--- a/src/mame/drivers/cops.c
+++ b/src/mame/drivers/cops.c
@@ -925,6 +925,6 @@ ROM_START( revlatns )
ROM_END
-GAMEL( 1994, cops, 0, cops, cops, cops_state, cops, ROT0, "Atari Games", "Cops (USA)", GAME_NOT_WORKING | GAME_NO_SOUND, layout_cops )
-GAMEL( 1994, copsuk, cops,cops, cops, cops_state, cops, ROT0, "Nova Productions / Deith Leisure","Cops (UK)", GAME_NOT_WORKING | GAME_NO_SOUND, layout_cops )
-GAMEL( 1994, revlatns, 0, cops, revlatns, cops_state, cops, ROT0, "Nova Productions", "Revelations", GAME_NOT_WORKING | GAME_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, cops, revlatns, cops_state, cops, ROT0, "Nova Productions", "Revelations", MACHINE_NOT_WORKING | MACHINE_NO_SOUND, layout_cops )
diff --git a/src/mame/drivers/copsnrob.c b/src/mame/drivers/copsnrob.c
index 6e0192697f8..d31c1d7d5b9 100644
--- a/src/mame/drivers/copsnrob.c
+++ b/src/mame/drivers/copsnrob.c
@@ -317,4 +317,4 @@ ROM_END
*
*************************************/
-GAMEL( 1976, copsnrob, 0, copsnrob, copsnrob, driver_device, 0, ROT0, "Atari", "Cops'n Robbers", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_copsnrob )
+GAMEL( 1976, copsnrob, 0, copsnrob, copsnrob, driver_device, 0, ROT0, "Atari", "Cops'n Robbers", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_copsnrob )
diff --git a/src/mame/drivers/corona.c b/src/mame/drivers/corona.c
index 8dbedabc4a6..7cb605319d1 100644
--- a/src/mame/drivers/corona.c
+++ b/src/mame/drivers/corona.c
@@ -1677,11 +1677,11 @@ ROM_END
******************************************/
/* 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)", GAME_IMPERFECT_SOUND )
+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 )
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)", GAME_IMPERFECT_COLORS, 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, "<unknown>", "Lucky Roulette Plus (6-players, Spanish)", 0, layout_luckyrlt )
diff --git a/src/mess/drivers/cortex.c b/src/mame/drivers/cortex.c
index e1f29636182..e208d5c1899 100644
--- a/src/mess/drivers/cortex.c
+++ b/src/mame/drivers/cortex.c
@@ -104,4 +104,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1982, cortex, 0, 0, cortex, cortex, driver_device, 0, "Powertran Cybernetics", "Cortex", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/cosmic.c b/src/mame/drivers/cosmic.c
index 6370e33fe02..5468258b1a6 100644
--- a/src/mame/drivers/cosmic.c
+++ b/src/mame/drivers/cosmic.c
@@ -1571,19 +1571,19 @@ DRIVER_INIT_MEMBER(cosmic_state,panic)
}
-GAME( 1979, cosmicg, 0, cosmicg, cosmicg, cosmic_state, cosmicg, ROT270, "Universal", "Cosmic Guerilla", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL /*| GAME_SUPPORTS_SAVE */)
-GAME( 1979, cosmicgi, cosmicg, cosmicg, cosmicg, cosmic_state, cosmicg, ROT270, "bootleg (Inder)", "Cosmic Guerilla (Spanish bootleg)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL /*| GAME_SUPPORTS_SAVE */)
-GAME( 1979, cosmica, 0, cosmica, cosmica, cosmic_state, cosmica, ROT270, "Universal", "Cosmic Alien (version II)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1979, cosmica1, cosmica, cosmica, cosmica, cosmic_state, cosmica, ROT270, "Universal", "Cosmic Alien (first version)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1979, cosmica2, cosmica, cosmica, cosmica, cosmic_state, cosmica, ROT270, "Universal", "Cosmic Alien (early version II?)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, nomnlnd, 0, nomnlnd, nomnlnd, cosmic_state, nomnlnd, ROT270, "Universal", "No Man's Land", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, nomnlndg, nomnlnd, nomnlnd, nomnlndg, cosmic_state, nomnlnd, ROT270, "Universal (Gottlieb license)", "No Man's Land (Gottlieb)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, magspot, 0, magspot, magspot, driver_device, 0, ROT270, "Universal", "Magical Spot", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, magspot2, 0, magspot, magspot, driver_device, 0, ROT270, "Universal", "Magical Spot II", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, panic, 0, panic, panic, cosmic_state, panic, ROT270, "Universal", "Space Panic (version E)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, panic2, panic, panic, panic, cosmic_state, panic, ROT270, "Universal", "Space Panic (set 2)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, panic3, panic, panic, panic, cosmic_state, panic, ROT270, "Universal", "Space Panic (set 3)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, panich, panic, panic, panic, cosmic_state, panic, ROT270, "Universal", "Space Panic (harder)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, panicger, panic, panic, panic, cosmic_state, panic, ROT270, "Universal (ADP Automaten license)", "Space Panic (German)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, devzone, 0, devzone, devzone, cosmic_state, devzone, ROT270, "Universal", "Devil Zone", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, devzone2, devzone, devzone, devzone2, cosmic_state, devzone, ROT270, "Universal", "Devil Zone (easier)", GAME_IMPERFECT_SOUND | GAME_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, devzone2, devzone, devzone, devzone2, cosmic_state, devzone, ROT270, "Universal", "Devil Zone (easier)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/cosmicos.c b/src/mame/drivers/cosmicos.c
index 5147b4b7243..8ec2903c821 100644
--- a/src/mess/drivers/cosmicos.c
+++ b/src/mame/drivers/cosmicos.c
@@ -560,4 +560,4 @@ 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", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS )
+COMP( 1979, cosmicos, 0, 0, cosmicos, cosmicos, driver_device, 0, "Radio Bulletin", "Cosmicos", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS )
diff --git a/src/mess/drivers/cp1.c b/src/mame/drivers/cp1.c
index 8450868cd1b..298e913ee3f 100644
--- a/src/mess/drivers/cp1.c
+++ b/src/mame/drivers/cp1.c
@@ -331,4 +331,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1980, cp1, 0, 0, cp1, cp1, driver_device, 0, "Kosmos", "CP1 / Computer Praxis", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/cps1.c b/src/mame/drivers/cps1.c
index bdb22c80e1b..999919c7bc0 100644
--- a/src/mame/drivers/cps1.c
+++ b/src/mame/drivers/cps1.c
@@ -3053,7 +3053,7 @@ static INPUT_PORTS_START( sfzch )
PORT_DIPSETTING( 0xff, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_START("IN1") /* Player 1 */
+ PORT_START("IN1") /* Player 1 & 2 */
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_PLAYER(1) PORT_8WAY
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) PORT_PLAYER(1) PORT_8WAY
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN) PORT_PLAYER(1) PORT_8WAY
@@ -3062,16 +3062,17 @@ static INPUT_PORTS_START( sfzch )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_PLAYER(1)
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3) PORT_PLAYER(1)
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4) PORT_PLAYER(1)
-
- PORT_START("IN2") /* Player 2 */
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_PLAYER(2) PORT_8WAY
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) PORT_PLAYER(2) PORT_8WAY
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN) PORT_PLAYER(2) PORT_8WAY
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) PORT_PLAYER(2) PORT_8WAY
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(2)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_PLAYER(2)
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3) PORT_PLAYER(2)
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4) PORT_PLAYER(2)
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_PLAYER(2) PORT_8WAY
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) PORT_PLAYER(2) PORT_8WAY
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN) PORT_PLAYER(2) PORT_8WAY
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) PORT_PLAYER(2) PORT_8WAY
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(2)
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_PLAYER(2)
+ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3) PORT_PLAYER(2)
+ PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON4) PORT_PLAYER(2)
+
+ PORT_START("IN2") /* Read by wofch */
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_START("IN3") /* Player 4 - not used */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
@@ -4689,11 +4690,11 @@ ROM_END
/* B-Board 89624B-3 */
ROM_START( ffightua )
ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
- ROM_LOAD16_BYTE( "ffu_36.11f", 0x00000, 0x20000, CRC(e2a48af9) SHA1(11e06f95bdf575af396dded2b84d858f6c7388f1) ) // in "30" socket
- ROM_LOAD16_BYTE( "ffu_42.11h", 0x00001, 0x20000, CRC(f4bb480e) SHA1(32114df1d2f4f98a4a2280a330c7b6af8ab4d862) ) // in "35" socket
- ROM_LOAD16_BYTE( "ffu_37.12f", 0x40000, 0x20000, CRC(c371c667) SHA1(633977c91a8ff09b7fe83128eced7c4dee9aee1d) ) // in "31" socket
- ROM_LOAD16_BYTE( "ffu_43.12h", 0x40001, 0x20000, CRC(2f5771f9) SHA1(fb532402bc00b5619a23dfa7e4525f1717020303) ) // in "36" socket /* different CRC from ffightu, ffightu1, pcb verified */
- ROM_LOAD16_WORD_SWAP( "ff-32m.8h", 0x80000, 0x80000, CRC(c747696e) SHA1(d3362dadded31ccb7eaf71ef282d698d18edd722) )
+ ROM_LOAD16_BYTE( "ffu_36.11f", 0x00000, 0x20000, CRC(e2a48af9) SHA1(11e06f95bdf575af396dded2b84d858f6c7388f1) ) // in "30" socket
+ ROM_LOAD16_BYTE( "ffu_42.11h", 0x00001, 0x20000, CRC(f4bb480e) SHA1(32114df1d2f4f98a4a2280a330c7b6af8ab4d862) ) // in "35" socket
+ ROM_LOAD16_BYTE( "ffu_37.12f", 0x40000, 0x20000, CRC(c371c667) SHA1(633977c91a8ff09b7fe83128eced7c4dee9aee1d) ) // in "31" socket
+ ROM_LOAD16_BYTE( "ffu_43.12h", 0x40001, 0x20000, CRC(2f5771f9) SHA1(fb532402bc00b5619a23dfa7e4525f1717020303) ) // in "36" socket /* different CRC from ffightu, ffightu1, pcb verified */
+ ROM_LOAD16_WORD_SWAP( "ff-32m.8h", 0x80000, 0x80000, CRC(c747696e) SHA1(d3362dadded31ccb7eaf71ef282d698d18edd722) )
ROM_REGION( 0x200000, "gfx", 0 )
ROMX_LOAD( "ff-5m.7a", 0x000000, 0x80000, CRC(9c284108) SHA1(7868f5801347340867720255f8380548ad1a65a7) , ROM_GROUPWORD | ROM_SKIP(6) )
@@ -4724,6 +4725,41 @@ ROM_END
/* B-Board 89624B-3 */
ROM_START( ffightub )
ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "ffu_30_3.11f", 0x00000, 0x20000, CRC(e619eb30) SHA1(41c2589a1b2cab2d0ded527a89f8e0e39e61efe1))
+ ROM_LOAD16_BYTE( "ffu_35_3.11h", 0x00001, 0x20000, CRC(bca85263) SHA1(249bc81426ee93cf2efa5594d6813d5dd896cea3) )
+ ROM_LOAD16_BYTE( "ffu_31_3.12f", 0x40000, 0x20000, CRC(59abd207) SHA1(9bc1f4d5dabd02cebce84f56f848694591c0629d) )
+ ROM_LOAD16_BYTE( "ffu_36_3.12h", 0x40001, 0x20000, CRC(df46ece8) SHA1(aa3081918d499f56664d6bb7b7ede2055d00375d) )
+ ROM_LOAD16_WORD_SWAP( "ff-32m.8h", 0x80000, 0x80000, CRC(c747696e) SHA1(d3362dadded31ccb7eaf71ef282d698d18edd722) )
+
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "ff-5m.7a", 0x000000, 0x80000, CRC(9c284108) SHA1(7868f5801347340867720255f8380548ad1a65a7) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ff-7m.9a", 0x000002, 0x80000, CRC(a7584dfb) SHA1(f7b00a3ca8cb85264ab293089f9f540a8292b49c) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ff-1m.3a", 0x000004, 0x80000, CRC(0b605e44) SHA1(5ce16af72858a57aefbf6efed820c2c51935882a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "ff-3m.5a", 0x000006, 0x80000, CRC(52291cd2) SHA1(df5f3d3aa96a7a33ff22f2a31382942c4c4f1111) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( 0x18000, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "ff_09.12b", 0x00000, 0x08000, CRC(b8367eb5) SHA1(ec3db29fdd6200e9a8f4f8073a7e34aef731354f) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "ff_18.11c", 0x00000, 0x20000, CRC(375c66e7) SHA1(36189e23209ce4ae5d9cbabd1574540d0591e7b3) )
+ ROM_LOAD( "ff_19.12c", 0x20000, 0x20000, CRC(1ef137f9) SHA1(974b5e72aa28b87ebfa7438efbdfeda769dedf5e) )
+
+ ROM_REGION( 0x0200, "aboardplds", 0 )
+ ROM_LOAD( "buf1", 0x0000, 0x0117, CRC(eb122de7) SHA1(b26b5bfe258e3e184f069719f9fd008d6b8f6b9b) )
+ ROM_LOAD( "ioa1", 0x0000, 0x0117, CRC(59c7ee3b) SHA1(fbb887c5b4f5cb8df77cec710eaac2985bc482a6) )
+ ROM_LOAD( "prg1", 0x0000, 0x0117, CRC(f1129744) SHA1(a5300f301c1a08a7da768f0773fa0fe3f683b237) )
+ ROM_LOAD( "rom1", 0x0000, 0x0117, CRC(41dc73b9) SHA1(7d4c9f1693c821fbf84e32dd6ef62ddf14967845) )
+ ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) )
+
+ ROM_REGION( 0x0200, "bboardplds", 0 )
+ ROM_LOAD( "s224b.1a", 0x0000, 0x0117, CRC(cdc4413e) SHA1(c74c60f8f4eb125ffb6414aefba270676d9b8a2d) )
+ ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
+ROM_END
+
+/* B-Board 89624B-3 */
+ROM_START( ffightuc )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
ROM_LOAD16_BYTE( "ffu_30.11f", 0x00000, 0x20000, CRC(ed988977) SHA1(c718e989206bd2b68832c8fcb5667397d500ebac) )
ROM_LOAD16_BYTE( "ffu_35.11h", 0x00001, 0x20000, CRC(07bf1c21) SHA1(f21a939fd92607c7f54816dedbcb3c5818cf4183) )
ROM_LOAD16_BYTE( "ffu_31.12f", 0x40000, 0x20000, CRC(dba5a476) SHA1(2f0176dd050f9630b914f1c1ca5d96215bcf567f) )
@@ -9543,7 +9579,7 @@ ROM_START( varthu )
ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) )
ROM_REGION( 0x0200, "bboardplds", 0 )
- ROM_LOAD( "va63b.1a", 0x0000, 0x0117, BAD_DUMP CRC(38540e86) SHA1(86e0aba363108f80a8eff84b99d11528ad6db099) ) /* Handcrafted but works on actual US PCB. Redump needed */
+ ROM_LOAD( "va63b.1a", 0x0000, 0x0117, CRC(132ab7c5) SHA1(54b78b02cdd9430c90e2289d42585ee71cf71cdc) )
ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
ROM_END
@@ -9629,7 +9665,7 @@ ROM_START( varthjr )
ROM_LOAD( "sou1", 0x0000, 0x0117, CRC(84f4b2fe) SHA1(dcc9e86cc36316fe42eace02d6df75d08bc8bb6d) )
ROM_REGION( 0x0200, "bboardplds", 0 )
- ROM_LOAD( "va63b.1a", 0x0000, 0x0117, BAD_DUMP CRC(38540e86) SHA1(86e0aba363108f80a8eff84b99d11528ad6db099) ) /* Handcrafted but works on actual US PCB. Redump needed */
+ ROM_LOAD( "va63b.1a", 0x0000, 0x0117, CRC(132ab7c5) SHA1(54b78b02cdd9430c90e2289d42585ee71cf71cdc) )
ROM_LOAD( "iob1.12d", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
ROM_LOAD( "bprg1.11d", 0x0000, 0x0117, CRC(31793da7) SHA1(400fa7ac517421c978c1ee7773c30b9ed0c5d3f3) )
@@ -11712,195 +11748,196 @@ WRITE16_MEMBER( cps_state::sf2m3_layer_w )
/*************************************************** Game Macros *****************************************************/
-GAME( 1988, forgottn, 0, cps1_10MHz, forgottn, cps_state, forgottn, ROT0, "Capcom", "Forgotten Worlds (World)", GAME_SUPPORTS_SAVE ) // (c) Capcom U.S.A. but World "warning"
-GAME( 1988, forgottnu, forgottn, cps1_10MHz, forgottn, cps_state, forgottn, ROT0, "Capcom", "Forgotten Worlds (USA, B-Board 88621B-2, Rev. C)", GAME_SUPPORTS_SAVE )
-GAME( 1988, forgottnu1, forgottn, cps1_10MHz, forgottn, cps_state, forgottn, ROT0, "Capcom", "Forgotten Worlds (USA, B-Board 88618B-2, Rev. C)", GAME_SUPPORTS_SAVE )
-GAME( 1988, forgottnua, forgottn, cps1_10MHz, forgottn, cps_state, forgottn, ROT0, "Capcom", "Forgotten Worlds (USA, B-Board 88618B-2, Rev. A)", GAME_SUPPORTS_SAVE )
-GAME( 1988, forgottnuaa, forgottn, cps1_10MHz, forgottn, cps_state, forgottn, ROT0, "Capcom", "Forgotten Worlds (USA, B-Board 88618B-2, Rev. AA)", GAME_SUPPORTS_SAVE )
-GAME( 1988, lostwrld, forgottn, cps1_10MHz, forgottn, cps_state, forgottn, ROT0, "Capcom", "Lost Worlds (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1988, lostwrldo, forgottn, cps1_10MHz, forgottn, cps_state, forgottn, ROT0, "Capcom", "Lost Worlds (Japan Old Ver.)", GAME_SUPPORTS_SAVE )
-GAME( 1988, ghouls, 0, cps1_10MHz, ghouls, cps_state, cps1, ROT0, "Capcom", "Ghouls'n Ghosts (World)", GAME_SUPPORTS_SAVE ) // "EXPORT" // Wed.26.10.1988 in the ROMs
-GAME( 1988, ghoulsu, ghouls, cps1_10MHz, ghoulsu, cps_state, cps1, ROT0, "Capcom", "Ghouls'n Ghosts (USA)", GAME_SUPPORTS_SAVE ) // "EXPORT" // Wed.26.10.1988 in the ROMs
-GAME( 1988, daimakai, ghouls, cps1_10MHz, daimakai, cps_state, cps1, ROT0, "Capcom", "Daimakaimura (Japan)", GAME_SUPPORTS_SAVE ) // Wed.26.10.1988 in the ROMs
-GAME( 1988, daimakair, ghouls, cps1_12MHz, daimakai, cps_state, cps1, ROT0, "Capcom", "Daimakaimura (Japan Resale Ver.)", GAME_SUPPORTS_SAVE ) // Wed.26.10.1988 in the ROMs // 12MHz verified
-GAME( 1989, strider, 0, cps1_10MHz, strider, cps_state, cps1, ROT0, "Capcom", "Strider (USA, B-Board 89624B-2)", GAME_SUPPORTS_SAVE )
-GAME( 1989, striderua, strider, cps1_10MHz, stridrua, cps_state, cps1, ROT0, "Capcom", "Strider (USA, B-Board 89624B-3)", GAME_SUPPORTS_SAVE )
-GAME( 1989, striderj, strider, cps1_10MHz, strider, cps_state, cps1, ROT0, "Capcom", "Strider Hiryu (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1989, striderjr, strider, cps1_12MHz, strider, cps_state, cps1, ROT0, "Capcom", "Strider Hiryu (Japan Resale Ver.)", GAME_SUPPORTS_SAVE ) // 12MHz verified
-GAME( 1989, dynwar, 0, cps1_10MHz, dynwar, cps_state, cps1, ROT0, "Capcom", "Dynasty Wars (USA, B-Board 89624B-?)", GAME_SUPPORTS_SAVE ) // (c) Capcom U.S.A.
-GAME( 1989, dynwara, dynwar, cps1_10MHz, dynwar, cps_state, cps1, ROT0, "Capcom", "Dynasty Wars (USA, B-Board 88622B-3)", GAME_SUPPORTS_SAVE ) // (c) Capcom U.S.A.
-GAME( 1989, dynwarj, dynwar, cps1_10MHz, dynwar, cps_state, cps1, ROT0, "Capcom", "Tenchi wo Kurau (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1989, dynwarjr, dynwar, cps1_12MHz, dynwar, cps_state, cps1, ROT0, "Capcom", "Tenchi wo Kurau (Japan Resale Ver.)", GAME_SUPPORTS_SAVE ) // 12MHz verified
-GAME( 1989, willow, 0, cps1_10MHz, willow, cps_state, cps1, ROT0, "Capcom", "Willow (World)", GAME_SUPPORTS_SAVE ) // No "Warning" (c) Capcom U.S.A., genuine export ROM labels
-GAME( 1989, willowu, willow, cps1_10MHz, willow, cps_state, cps1, ROT0, "Capcom", "Willow (USA)", GAME_SUPPORTS_SAVE )
-GAME( 1989, willowuo, willow, cps1_10MHz, willow, cps_state, cps1, ROT0, "Capcom", "Willow (USA Old Ver.)", GAME_SUPPORTS_SAVE ) // Japan "warning" but (c) Capcom U.S.A.
-GAME( 1989, willowj, willow, cps1_10MHz, willow, cps_state, cps1, ROT0, "Capcom", "Willow (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1989, unsquad, 0, cps1_10MHz, unsquad, cps_state, cps1, ROT0, "Capcom / Daipro", "U.N. Squadron (USA)", GAME_SUPPORTS_SAVE )
-GAME( 1989, area88, unsquad, cps1_10MHz, unsquad, cps_state, cps1, ROT0, "Capcom / Daipro", "Area 88 (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1989, area88r, unsquad, cps1_12MHz, unsquad, cps_state, cps1, ROT0, "Capcom / Daipro", "Area 88 (Japan Resale Ver.)", GAME_SUPPORTS_SAVE ) // 12MHz verified
-GAME( 1989, ffight, 0, cps1_10MHz, ffight, cps_state, cps1, ROT0, "Capcom", "Final Fight (World, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1989, ffighta, ffight, cps1_10MHz, ffight, cps_state, cps1, ROT0, "Capcom", "Final Fight (World, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1989, ffightu, ffight, cps1_10MHz, ffight, cps_state, cps1, ROT0, "Capcom", "Final Fight (USA, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1989, ffightu1, ffight, cps1_10MHz, ffight, cps_state, cps1, ROT0, "Capcom", "Final Fight (USA, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1989, ffightua, ffight, cps1_10MHz, ffight, cps_state, cps1, ROT0, "Capcom", "Final Fight (USA 900112)", GAME_SUPPORTS_SAVE )
-GAME( 1989, ffightub, ffight, cps1_10MHz, ffight, cps_state, cps1, ROT0, "Capcom", "Final Fight (USA 900613)", GAME_SUPPORTS_SAVE )
-GAME( 1989, ffightj, ffight, cps1_10MHz, ffight, cps_state, cps1, ROT0, "Capcom", "Final Fight (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1989, ffightj1, ffight, cps1_10MHz, ffight, cps_state, cps1, ROT0, "Capcom", "Final Fight (Japan 900112)", GAME_SUPPORTS_SAVE )
-GAME( 1989, ffightj2, ffight, cps1_10MHz, ffight, cps_state, cps1, ROT0, "Capcom", "Final Fight (Japan 900305)", GAME_SUPPORTS_SAVE )
-GAME( 1989, ffightj3, ffight, cps1_10MHz, ffight, cps_state, cps1, ROT0, "Capcom", "Final Fight (Japan 900613)", GAME_SUPPORTS_SAVE )
-GAME( 1989, ffightjh, ffight, cps1_10MHz, ffight, cps_state, cps1, ROT0, "bootleg", "Street Smart / Final Fight (Japan, hack)", GAME_SUPPORTS_SAVE )
-GAME( 1990, 1941, 0, cps1_10MHz, 1941, cps_state, cps1, ROT270, "Capcom", "1941: Counter Attack (World 900227)", GAME_SUPPORTS_SAVE ) // "ETC"
-GAME( 1990, 1941r1, 1941, cps1_10MHz, 1941, cps_state, cps1, ROT270, "Capcom", "1941: Counter Attack (World)", GAME_SUPPORTS_SAVE )
-GAME( 1990, 1941u, 1941, cps1_10MHz, 1941, cps_state, cps1, ROT270, "Capcom", "1941: Counter Attack (USA 900227)", GAME_SUPPORTS_SAVE )
-GAME( 1990, 1941j, 1941, cps1_10MHz, 1941, cps_state, cps1, ROT270, "Capcom", "1941: Counter Attack (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1990, mercs, 0, cps1_10MHz, mercs, cps_state, cps1, ROT270, "Capcom", "Mercs (World 900302)", GAME_SUPPORTS_SAVE ) // "ETC"
-GAME( 1990, mercsu, mercs, cps1_10MHz, mercs, cps_state, cps1, ROT270, "Capcom", "Mercs (USA 900608)", GAME_SUPPORTS_SAVE )
-GAME( 1990, mercsur1, mercs, cps1_10MHz, mercs, cps_state, cps1, ROT270, "Capcom", "Mercs (USA 900302)", GAME_SUPPORTS_SAVE )
-GAME( 1990, mercsj, mercs, cps1_10MHz, mercs, cps_state, cps1, ROT270, "Capcom", "Senjou no Ookami II (Japan 900302)", GAME_SUPPORTS_SAVE )
-GAME( 1990, mtwins, 0, cps1_10MHz, mtwins, cps_state, cps1, ROT0, "Capcom", "Mega Twins (World 900619)", GAME_SUPPORTS_SAVE ) // "ETC" - (c) Capcom U.S.A. but World "warning"
-GAME( 1990, chikij, mtwins, cps1_10MHz, mtwins, cps_state, cps1, ROT0, "Capcom", "Chiki Chiki Boys (Japan 900619)", GAME_SUPPORTS_SAVE )
-GAME( 1990, msword, 0, cps1_10MHz, msword, cps_state, cps1, ROT0, "Capcom", "Magic Sword: Heroic Fantasy (World 900725)", GAME_SUPPORTS_SAVE ) // 25.07.1990 "OTHER COUNTRY"
-GAME( 1990, mswordr1, msword, cps1_10MHz, msword, cps_state, cps1, ROT0, "Capcom", "Magic Sword: Heroic Fantasy (World 900623)", GAME_SUPPORTS_SAVE ) // 23.06.1990 "OTHER COUNTRY"
-GAME( 1990, mswordu, msword, cps1_10MHz, msword, cps_state, cps1, ROT0, "Capcom", "Magic Sword: Heroic Fantasy (USA 900725)", GAME_SUPPORTS_SAVE ) // 25.07.1990 "U.S.A."
-GAME( 1990, mswordj, msword, cps1_10MHz, msword, cps_state, cps1, ROT0, "Capcom", "Magic Sword: Heroic Fantasy (Japan 900623)", GAME_SUPPORTS_SAVE ) // 23.06.1990 "JAPAN"
-GAME( 1990, cawing, 0, cps1_10MHz, cawing, cps_state, cps1, ROT0, "Capcom", "Carrier Air Wing (World 901012)", GAME_SUPPORTS_SAVE ) // "ETC"
-GAME( 1990, cawingr1, cawing, cps1_10MHz, cawing, cps_state, cps1, ROT0, "Capcom", "Carrier Air Wing (World 901009)", GAME_SUPPORTS_SAVE ) // "ETC"
-GAME( 1990, cawingu, cawing, cps1_10MHz, cawing, cps_state, cps1, ROT0, "Capcom", "Carrier Air Wing (USA 901012)", GAME_SUPPORTS_SAVE )
-GAME( 1990, cawingj, cawing, cps1_10MHz, cawing, cps_state, cps1, ROT0, "Capcom", "U.S. Navy (Japan 901012)", GAME_SUPPORTS_SAVE )
-GAME( 1990, nemo, 0, cps1_10MHz, nemo, cps_state, cps1, ROT0, "Capcom", "Nemo (World 901130)", GAME_SUPPORTS_SAVE ) // "ETC"
-GAME( 1990, nemor1, nemo, cps1_10MHz, nemo, cps_state, cps1, ROT0, "Capcom", "Nemo (World 901109)", GAME_SUPPORTS_SAVE ) // "ETC"
-GAME( 1990, nemoj, nemo, cps1_10MHz, nemo, cps_state, cps1, ROT0, "Capcom", "Nemo (Japan 901120)", GAME_SUPPORTS_SAVE )
-GAME( 1991, sf2, 0, cps1_10MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (World 910522)", GAME_SUPPORTS_SAVE ) // "ETC"
-GAME( 1991, sf2eb, sf2, cps1_10MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (World 910214)", GAME_SUPPORTS_SAVE ) // "ETC"
-GAME( 1991, sf2ed, sf2, cps1_10MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (World 910318)", GAME_SUPPORTS_SAVE ) // "ETC"
-GAME( 1991, sf2ee, sf2, cps1_10MHz, sf2, cps_state, sf2ee, ROT0, "Capcom", "Street Fighter II: The World Warrior (World 910228)", GAME_SUPPORTS_SAVE ) // "ETC"
-GAME( 1991, sf2ua, sf2, cps1_10MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (USA 910206)", GAME_SUPPORTS_SAVE )
-GAME( 1991, sf2ub, sf2, cps1_10MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (USA 910214)", GAME_SUPPORTS_SAVE )
-GAME( 1991, sf2uc, sf2, cps1_10MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (USA 910306)", GAME_SUPPORTS_SAVE )
-GAME( 1991, sf2ud, sf2, cps1_10MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (USA 910318)", GAME_SUPPORTS_SAVE )
-GAME( 1991, sf2ue, sf2, cps1_10MHz, sf2, cps_state, sf2ee, ROT0, "Capcom", "Street Fighter II: The World Warrior (USA 910228)", GAME_SUPPORTS_SAVE )
-GAME( 1991, sf2uf, sf2, cps1_10MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (USA 910411)", GAME_SUPPORTS_SAVE )
-GAME( 1991, sf2ug, sf2, cps1_10MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (USA 910522, Rev. G)", GAME_SUPPORTS_SAVE )
-GAME( 1991, sf2ui, sf2, cps1_10MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (USA 910522, Rev. I)", GAME_SUPPORTS_SAVE )
-GAME( 1991, sf2uk, sf2, cps1_10MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (USA 911101)", GAME_SUPPORTS_SAVE )
-GAME( 1991, sf2j, sf2, cps1_10MHz, sf2j, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (Japan 911210)", GAME_SUPPORTS_SAVE )
-GAME( 1991, sf2ja, sf2, cps1_10MHz, sf2j, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (Japan 910214)", GAME_SUPPORTS_SAVE )
-GAME( 1991, sf2jc, sf2, cps1_10MHz, sf2j, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (Japan 910306)", GAME_SUPPORTS_SAVE )
-GAME( 1991, sf2jf, sf2, cps1_10MHz, sf2j, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (Japan 910411)", GAME_SUPPORTS_SAVE )
-GAME( 1991, sf2jh, sf2, cps1_10MHz, sf2j, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (Japan 910522)", GAME_SUPPORTS_SAVE )
-GAME( 1991, sf2jl, sf2, cps1_10MHz, sf2j, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (Japan 920312)", GAME_SUPPORTS_SAVE )
-GAME( 1992, sf2ebbl, sf2, cps1_10MHz, sf2hack, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II: The World Warrior (TAB Austria, bootleg, set 1)", GAME_SUPPORTS_SAVE ) // 910214 - based on World version
-GAME( 1992, sf2ebbl2, sf2, cps1_10MHz, sf2hack, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II: The World Warrior (TAB Austria, bootleg, set 3)", GAME_SUPPORTS_SAVE ) // 910214 - based on World version
-GAME( 1992, sf2ebbl3, sf2, cps1_10MHz, sf2hack, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II: The World Warrior (TAB Austria, bootleg, set 4)", GAME_SUPPORTS_SAVE ) // 910214 - based on World version
-GAME( 1992, sf2stt, sf2, cps1_10MHz, sf2hack, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II: The World Warrior (TAB Austria, bootleg, set 2)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // 910214 - based on World version
-GAME( 1992, sf2rk, sf2, cps1_10MHz, sf2hack, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II: The World Warrior (RK, bootleg)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // 920211 (pcb)
-GAME( 1991, sf2qp1, sf2, cps1_10MHz, sf2, cps_state, cps1, ROT0, "bootleg", "Street Fighter II: The World Warrior (Quicken Pt-I, bootleg)", GAME_SUPPORTS_SAVE ) // 910214 - based on World version
-GAME( 1991, sf2thndr, sf2, cps1_10MHz, sf2, cps_state, sf2thndr, ROT0, "bootleg", "Street Fighter II: The World Warrior (Thunder Edition, bootleg)", GAME_SUPPORTS_SAVE ) // 910214 - based on World version
-GAME( 1991, 3wonders, 0, cps1_10MHz, 3wonders, cps_state, cps1, ROT0, "Capcom", "Three Wonders (World 910520)", GAME_SUPPORTS_SAVE ) // "ETC"
-GAME( 1991, 3wondersr1, 3wonders, cps1_10MHz, 3wonders, cps_state, cps1, ROT0, "Capcom", "Three Wonders (World 910513)", GAME_SUPPORTS_SAVE ) // "ETC"
-GAME( 1991, 3wondersu, 3wonders, cps1_10MHz, 3wonders, cps_state, cps1, ROT0, "Capcom", "Three Wonders (USA 910520)", GAME_SUPPORTS_SAVE )
-GAME( 1991, wonder3, 3wonders, cps1_10MHz, 3wonders, cps_state, cps1, ROT0, "Capcom", "Wonder 3 (Japan 910520)", GAME_SUPPORTS_SAVE )
-GAME( 1991, 3wondersb, 3wonders, cps1_10MHz, 3wonders, cps_state, cps1, ROT0, "bootleg", "Three Wonders (bootleg)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // 910520 - based on World version
-GAME( 1991, 3wondersh, 3wonders, cps1_10MHz, 3wonders, cps_state, cps1, ROT0, "bootleg", "Three Wonders (hack)", GAME_SUPPORTS_SAVE ) // 910520 - based on World version
-GAME( 1991, kod, 0, cps1_10MHz, kod, cps_state, cps1, ROT0, "Capcom", "The King of Dragons (World 910805)", GAME_SUPPORTS_SAVE ) // "ETC"
-GAME( 1991, kodr1, kod, cps1_10MHz, kodr1, cps_state, cps1, ROT0, "Capcom", "The King of Dragons (World 910711)", GAME_SUPPORTS_SAVE ) // "ETC"
-GAME( 1991, kodu, kod, cps1_10MHz, kod, cps_state, cps1, ROT0, "Capcom", "The King of Dragons (USA 910910)", GAME_SUPPORTS_SAVE )
-GAME( 1991, kodj, kod, cps1_10MHz, kod, cps_state, cps1, ROT0, "Capcom", "The King of Dragons (Japan 910805, B-Board 90629B-3)", GAME_SUPPORTS_SAVE )
-GAME( 1991, kodja, kod, cps1_10MHz, kod, cps_state, cps1, ROT0, "Capcom", "The King of Dragons (Japan 910805, B-Board 89625B-1)", GAME_SUPPORTS_SAVE )
-GAME( 1991, captcomm, 0, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "Capcom", "Captain Commando (World 911202)", GAME_SUPPORTS_SAVE ) // "OTHER COUNTRY"
-GAME( 1991, captcommr1, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "Capcom", "Captain Commando (World 911014)", GAME_SUPPORTS_SAVE ) // "OTHER COUNTRY"
-GAME( 1991, captcommu, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "Capcom", "Captain Commando (USA 910928)", GAME_SUPPORTS_SAVE )
-GAME( 1991, captcommj, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "Capcom", "Captain Commando (Japan 911202)", GAME_SUPPORTS_SAVE )
-GAME( 1991, captcommjr1, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "Capcom", "Captain Commando (Japan 910928)", GAME_SUPPORTS_SAVE )
-GAME( 1991, captcommb, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "bootleg", "Captain Commando (bootleg)", GAME_SUPPORTS_SAVE ) // 911014 - based on World version
-GAME( 1991, knights, 0, cps1_10MHz, knights, cps_state, cps1, ROT0, "Capcom", "Knights of the Round (World 911127)", GAME_SUPPORTS_SAVE ) // "ETC"
-GAME( 1991, knightsu, knights, cps1_10MHz, knights, cps_state, cps1, ROT0, "Capcom", "Knights of the Round (USA 911127)", GAME_SUPPORTS_SAVE )
-GAME( 1991, knightsj, knights, cps1_10MHz, knights, cps_state, cps1, ROT0, "Capcom", "Knights of the Round (Japan 911127, B-Board 91634B-2)", GAME_SUPPORTS_SAVE )
-GAME( 1991, knightsja, knights, cps1_10MHz, knights, cps_state, cps1, ROT0, "Capcom", "Knights of the Round (Japan 911127, B-Board 89625B-1)", GAME_SUPPORTS_SAVE )
-GAME( 1992, sf2ce, 0, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II': Champion Edition (World 920513)", GAME_SUPPORTS_SAVE ) // "ETC"
-GAME( 1992, sf2ceea, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II': Champion Edition (World 920313)", GAME_SUPPORTS_SAVE ) // "ETC"
-GAME( 1992, sf2ceua, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II': Champion Edition (USA 920313)", GAME_SUPPORTS_SAVE )
-GAME( 1992, sf2ceub, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II': Champion Edition (USA 920513)", GAME_SUPPORTS_SAVE )
-GAME( 1992, sf2ceuc, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II': Champion Edition (USA 920803)", GAME_SUPPORTS_SAVE )
-GAME( 1992, sf2ceja, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II': Champion Edition (Japan 920322)", GAME_SUPPORTS_SAVE )
-GAME( 1992, sf2cejb, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II': Champion Edition (Japan 920513)", GAME_SUPPORTS_SAVE )
-GAME( 1992, sf2cejc, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II': Champion Edition (Japan 920803)", GAME_SUPPORTS_SAVE )
-GAME( 1992, sf2bhh, sf2ce, cps1_12MHz, sf2, cps_state, sf2rb, ROT0, "bootleg", "Street Fighter II': Champion Edition (Hung Hsi, bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1992, sf2rb, sf2ce, cps1_12MHz, sf2, cps_state, sf2rb, ROT0, "bootleg", "Street Fighter II': Champion Edition (Rainbow, bootleg, set 1)", GAME_SUPPORTS_SAVE ) // 920322 - based on World version
-GAME( 1992, sf2rb2, sf2ce, cps1_12MHz, sf2, cps_state, sf2rb2, ROT0, "bootleg", "Street Fighter II': Champion Edition (Rainbow, bootleg, set 2)", GAME_SUPPORTS_SAVE ) // 920322 - based on World version
-GAME( 1992, sf2rb3, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "bootleg", "Street Fighter II': Champion Edition (Rainbow, bootleg, set 3)", GAME_SUPPORTS_SAVE ) // 920322 - based on World version
-GAME( 1992, sf2red, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "bootleg", "Street Fighter II': Champion Edition (Red Wave, bootleg)", GAME_SUPPORTS_SAVE ) // 920313 - based on World version
-GAME( 1992, sf2v004, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "bootleg", "Street Fighter II': Champion Edition (V004, bootleg)", GAME_SUPPORTS_SAVE ) // 102092 !!! - based on (heavily modified) World version
-GAME( 1992, sf2acc, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "bootleg", "Street Fighter II': Champion Edition (Accelerator!, bootleg, set 1)", GAME_SUPPORTS_SAVE ) // 920313 - based on World version
-GAME( 1992, sf2acca, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "bootleg", "Street Fighter II': Champion Edition (Accelerator!, bootleg, set 2)", GAME_SUPPORTS_SAVE ) // 920313 - based on World version
-GAME( 1992, sf2accp2, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "bootleg", "Street Fighter II': Champion Edition (Accelerator Pt.II, bootleg)", GAME_SUPPORTS_SAVE ) // 920313 - based on World version
-GAME( 1992, sf2amf, sf2ce, cps1_12MHz, sf2amf, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II': Champion Edition (Alpha Magic-F, bootleg)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // 920313 - based on World version
-GAME( 1992, sf2amf2, sf2ce, cps1_12MHz, sf2hack, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II': Champion Edition (L735 Test Rom, bootleg)", GAME_SUPPORTS_SAVE ) // 920313 - based on World version
-GAME( 1992, sf2dkot2, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "bootleg", "Street Fighter II': Champion Edition (Double K.O. Turbo II, bootleg)", GAME_SUPPORTS_SAVE ) // 902140 !!! - based on USA version
-GAME( 1992, sf2ceblp, sf2ce, cps1_10MHz, sf2, cps_state, sf2ceblp, ROT0, "bootleg", "Street Fighter II': Champion Edition (protected bootleg on non-dash board)", GAME_SUPPORTS_SAVE ) // 920313 - based on USA version
-GAME( 1992, sf2m2, sf2ce, cps1_12MHz, sf2m2, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II': Champion Edition (M2, bootleg)", GAME_SUPPORTS_SAVE ) // 920313 - based on World version
-GAME( 1992, sf2m3, sf2ce, sf2m3, sf2, cps_state, cps1, ROT0, "bootleg", "Street Fighter II': Champion Edition (M3, bootleg)", GAME_SUPPORTS_SAVE ) // 920313 - based on USA version
-GAME( 1992, sf2m4, sf2ce, cps1_12MHz, sf2m4, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II': Champion Edition (M4, bootleg)", GAME_SUPPORTS_SAVE ) // 920322 - based on Japan version
-GAME( 1992, sf2m5, sf2ce, cps1_12MHz, sf2hack, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II': Champion Edition (M5, bootleg)", GAME_SUPPORTS_SAVE ) // 920313 - based on World version
-GAME( 1992, sf2m6, sf2ce, cps1_12MHz, sf2hack, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II': Champion Edition (M6, bootleg)", GAME_SUPPORTS_SAVE ) // 811102 !!! - based on World version
-GAME( 1992, sf2m7, sf2ce, cps1_12MHz, sf2hack, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II': Champion Edition (M7, bootleg)", GAME_SUPPORTS_SAVE ) // 920313 - based on World version
-GAME( 1992, sf2m8, sf2ce, sf2m3, sf2, cps_state, sf2m8, ROT0, "bootleg", "Street Fighter II': Champion Edition (M8, bootleg)", GAME_SUPPORTS_SAVE ) // 920313 - based on USA version
-GAME( 1992, sf2yyc, sf2ce, cps1_12MHz, sf2hack, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II': Champion Edition (YYC, bootleg)", GAME_SUPPORTS_SAVE ) // 920313 - based on World version
-GAME( 1992, sf2koryu, sf2ce, cps1_12MHz, sf2hack, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II': Champion Edition (Xiang Long, Chinese bootleg)", GAME_SUPPORTS_SAVE ) // 811102 !!! - based on World version
-GAME( 1992, sf2dongb, sf2ce, cps1_12MHz, sf2, cps_state, sf2dongb, ROT0, "bootleg", "Street Fighter II': Champion Edition (Dongfang Bubai protection, bootleg)", GAME_SUPPORTS_SAVE ) // 920313 - based on World version
-GAME( 1992, cworld2j, 0, cps1_12MHz, cworld2j, cps_state, cps1, ROT0, "Capcom", "Adventure Quiz Capcom World 2 (Japan 920611)", GAME_SUPPORTS_SAVE )
-GAME( 1992, cworld2ja, cworld2j, cps1_12MHz, cworld2j, cps_state, cps1, ROT0, "Capcom", "Adventure Quiz Capcom World 2 (Japan 920611, B-Board 90629B-3, no battery)", GAME_SUPPORTS_SAVE )
-GAME( 1992, cworld2jb, cworld2j, cps1_12MHz, cworld2j, cps_state, cps1, ROT0, "Capcom", "Adventure Quiz Capcom World 2 (Japan 920611, B-Board 91634B-2)", GAME_SUPPORTS_SAVE )
-GAME( 1992, varth, 0, cps1_12MHz, varth, cps_state, cps1, ROT270, "Capcom", "Varth: Operation Thunderstorm (World 920714)", GAME_SUPPORTS_SAVE ) // "ETC" // 12MHz verified
-GAME( 1992, varthr1, varth, cps1_12MHz, varth, cps_state, cps1, ROT270, "Capcom", "Varth: Operation Thunderstorm (World 920612)", GAME_SUPPORTS_SAVE ) // "ETC"
-GAME( 1992, varthu, varth, cps1_12MHz, varth, cps_state, cps1, ROT270, "Capcom (Romstar license)", "Varth: Operation Thunderstorm (USA 920612)", GAME_SUPPORTS_SAVE )
-GAME( 1992, varthj, varth, cps1_12MHz, varth, cps_state, cps1, ROT270, "Capcom", "Varth: Operation Thunderstorm (Japan 920714)", GAME_SUPPORTS_SAVE )
-GAME( 1992, varthjr, varth, cps1_12MHz, varth, cps_state, cps1, ROT270, "Capcom", "Varth: Operation Thunderstorm (Japan Resale Ver. 920714)", GAME_SUPPORTS_SAVE )
-GAME( 1992, qad, 0, cps1_12MHz, qad, cps_state, cps1, ROT0, "Capcom", "Quiz & Dragons: Capcom Quiz Game (USA 920701)", GAME_SUPPORTS_SAVE ) // 12MHz verified
-GAME( 1994, qadjr, qad, cps1_12MHz, qadjr, cps_state, cps1, ROT0, "Capcom", "Quiz & Dragons: Capcom Quiz Game (Japan Resale Ver. 940921)", GAME_SUPPORTS_SAVE )
-GAME( 1992, wof, 0, qsound, wof, cps_state, wof, ROT0, "Capcom", "Warriors of Fate (World 921031)", GAME_SUPPORTS_SAVE ) // "ETC"
-GAME( 1992, wofr1, wof, qsound, wof, cps_state, wof, ROT0, "Capcom", "Warriors of Fate (World 921002)", GAME_SUPPORTS_SAVE ) // "ETC"
-GAME( 1992, wofu, wof, qsound, wof, cps_state, wof, ROT0, "Capcom", "Warriors of Fate (USA 921031)", GAME_SUPPORTS_SAVE ) // World "warning"
-GAME( 1992, wofa, wof, qsound, wof, cps_state, wof, ROT0, "Capcom", "Sangokushi II (Asia 921005)", GAME_SUPPORTS_SAVE ) // World "warning"
-GAME( 1992, wofj, wof, qsound, wof, cps_state, wof, ROT0, "Capcom", "Tenchi wo Kurau II: Sekiheki no Tatakai (Japan 921031)", GAME_SUPPORTS_SAVE )
-GAME( 1999, wofhfh, wof, wofhfh, wofhfh, cps_state, cps1, ROT0, "bootleg", "Huo Feng Huang (Chinese bootleg of Sangokushi II)", GAME_SUPPORTS_SAVE ) // 921005 - based on Asia version
-GAME( 1992, sf2hf, 0, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II': Hyper Fighting (World 921209)", GAME_SUPPORTS_SAVE ) // "ETC"
-GAME( 1992, sf2hfu, sf2hf, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II': Hyper Fighting (USA 921209)", GAME_SUPPORTS_SAVE )
-GAME( 1992, sf2hfj, sf2hf, cps1_12MHz, sf2j, cps_state, cps1, ROT0, "Capcom", "Street Fighter II' Turbo: Hyper Fighting (Japan 921209)", GAME_SUPPORTS_SAVE )
-GAME( 1993, dino, 0, qsound, dino, cps_state, dino, ROT0, "Capcom", "Cadillacs and Dinosaurs (World 930201)", GAME_SUPPORTS_SAVE ) // "ETC"
-GAME( 1993, dinou, dino, qsound, dino, cps_state, dino, ROT0, "Capcom", "Cadillacs and Dinosaurs (USA 930201)", GAME_SUPPORTS_SAVE )
-GAME( 1993, dinoj, dino, qsound, dino, cps_state, dino, ROT0, "Capcom", "Cadillacs: Kyouryuu Shin Seiki (Japan 930201)", GAME_SUPPORTS_SAVE )
-GAME( 1993, dinohunt, dino, wofhfh, dinoh, cps_state, dinohunt, ROT0, "bootleg", "Dinosaur Hunter (Chinese bootleg of Cadillacs and Dinosaurs)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // 930223 - based on Asia TW version, the original is still undumped
-GAME( 1993, punisher, 0, qsound, punisher, cps_state, punisher, ROT0, "Capcom", "The Punisher (World 930422)", GAME_SUPPORTS_SAVE ) // "ETC"
-GAME( 1993, punisheru, punisher, qsound, punisher, cps_state, punisher, ROT0, "Capcom", "The Punisher (USA 930422)", GAME_SUPPORTS_SAVE )
-GAME( 1993, punisherh, punisher, qsound, punisher, cps_state, punisher, ROT0, "Capcom", "The Punisher (Hispanic 930422)", GAME_SUPPORTS_SAVE )
-GAME( 1993, punisherj, punisher, qsound, punisher, cps_state, punisher, ROT0, "Capcom", "The Punisher (Japan 930422)", GAME_SUPPORTS_SAVE )
-GAME( 1993, punisherbz, punisher, wofhfh, punisherbz, cps_state, cps1, ROT0, "bootleg", "Biaofeng Zhanjing (Chinese bootleg of The Punisher)", GAME_SUPPORTS_SAVE ) // (c) 2002, they ripped the sound from Final Fight!
-GAME( 1993, slammast, 0, qsound, slammast, cps_state, slammast, ROT0, "Capcom", "Saturday Night Slam Masters (World 930713)", GAME_SUPPORTS_SAVE ) // "ETC"
-GAME( 1993, slammastu, slammast, qsound, slammast, cps_state, slammast, ROT0, "Capcom", "Saturday Night Slam Masters (USA 930713)", GAME_SUPPORTS_SAVE )
-GAME( 1993, mbomberj, slammast, qsound, slammast, cps_state, slammast, ROT0, "Capcom", "Muscle Bomber: The Body Explosion (Japan 930713)", GAME_SUPPORTS_SAVE )
-GAME( 1993, mbombrd, 0, qsound, slammast, cps_state, slammast, ROT0, "Capcom", "Muscle Bomber Duo: Ultimate Team Battle (World 931206)", GAME_SUPPORTS_SAVE ) // "ETC"
-GAME( 1993, mbombrdj, mbombrd, qsound, slammast, cps_state, slammast, ROT0, "Capcom", "Muscle Bomber Duo: Heat Up Warriors (Japan 931206)", GAME_SUPPORTS_SAVE )
-GAME( 1994, pnickj, 0, cps1_12MHz, pnickj, cps_state, cps1, ROT0, "Compile (Capcom license)", "Pnickies (Japan 940608)", GAME_SUPPORTS_SAVE )
-GAME( 1995, qtono2j, 0, cps1_12MHz, qtono2j, cps_state, cps1, ROT0, "Capcom", "Quiz Tonosama no Yabou 2: Zenkoku-ban (Japan 950123)", GAME_SUPPORTS_SAVE )
-GAME( 1995, megaman, 0, cps1_12MHz, megaman, cps_state, cps1, ROT0, "Capcom", "Mega Man: The Power Battle (CPS1, USA 951006)", GAME_SUPPORTS_SAVE )
-GAME( 1995, megamana, megaman, cps1_12MHz, megaman, cps_state, cps1, ROT0, "Capcom", "Mega Man: The Power Battle (CPS1, Asia 951006)", GAME_SUPPORTS_SAVE )
-GAME( 1995, rockmanj, megaman, cps1_12MHz, rockmanj, cps_state, cps1, ROT0, "Capcom", "Rockman: The Power Battle (CPS1, Japan 950922)", GAME_SUPPORTS_SAVE )
-GAME( 2000, ganbare, 0, ganbare, ganbare, cps_state, ganbare, ROT0, "Capcom", "Ganbare! Marine Kun (Japan 2K0411)", GAME_SUPPORTS_SAVE )
+GAME( 1988, forgottn, 0, cps1_10MHz, forgottn, cps_state, forgottn, ROT0, "Capcom", "Forgotten Worlds (World)", MACHINE_SUPPORTS_SAVE ) // (c) Capcom U.S.A. but World "warning"
+GAME( 1988, forgottnu, forgottn, cps1_10MHz, forgottn, cps_state, forgottn, ROT0, "Capcom", "Forgotten Worlds (USA, B-Board 88621B-2, Rev. C)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, forgottnu1, forgottn, cps1_10MHz, forgottn, cps_state, forgottn, ROT0, "Capcom", "Forgotten Worlds (USA, B-Board 88618B-2, Rev. C)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, forgottnua, forgottn, cps1_10MHz, forgottn, cps_state, forgottn, ROT0, "Capcom", "Forgotten Worlds (USA, B-Board 88618B-2, Rev. A)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, forgottnuaa, forgottn, cps1_10MHz, forgottn, cps_state, forgottn, ROT0, "Capcom", "Forgotten Worlds (USA, B-Board 88618B-2, Rev. AA)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, lostwrld, forgottn, cps1_10MHz, forgottn, cps_state, forgottn, ROT0, "Capcom", "Lost Worlds (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, lostwrldo, forgottn, cps1_10MHz, forgottn, cps_state, forgottn, ROT0, "Capcom", "Lost Worlds (Japan Old Ver.)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, ghouls, 0, cps1_10MHz, ghouls, cps_state, cps1, ROT0, "Capcom", "Ghouls'n Ghosts (World)", MACHINE_SUPPORTS_SAVE ) // "EXPORT" // Wed.26.10.1988 in the ROMs
+GAME( 1988, ghoulsu, ghouls, cps1_10MHz, ghoulsu, cps_state, cps1, ROT0, "Capcom", "Ghouls'n Ghosts (USA)", MACHINE_SUPPORTS_SAVE ) // "EXPORT" // Wed.26.10.1988 in the ROMs
+GAME( 1988, daimakai, ghouls, cps1_10MHz, daimakai, cps_state, cps1, ROT0, "Capcom", "Daimakaimura (Japan)", MACHINE_SUPPORTS_SAVE ) // Wed.26.10.1988 in the ROMs
+GAME( 1988, daimakair, ghouls, cps1_12MHz, daimakai, cps_state, cps1, ROT0, "Capcom", "Daimakaimura (Japan Resale Ver.)", MACHINE_SUPPORTS_SAVE ) // Wed.26.10.1988 in the ROMs // 12MHz verified
+GAME( 1989, strider, 0, cps1_10MHz, strider, cps_state, cps1, ROT0, "Capcom", "Strider (USA, B-Board 89624B-2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, striderua, strider, cps1_10MHz, stridrua, cps_state, cps1, ROT0, "Capcom", "Strider (USA, B-Board 89624B-3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, striderj, strider, cps1_10MHz, strider, cps_state, cps1, ROT0, "Capcom", "Strider Hiryu (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, striderjr, strider, cps1_12MHz, strider, cps_state, cps1, ROT0, "Capcom", "Strider Hiryu (Japan Resale Ver.)", MACHINE_SUPPORTS_SAVE ) // 12MHz verified
+GAME( 1989, dynwar, 0, cps1_10MHz, dynwar, cps_state, cps1, ROT0, "Capcom", "Dynasty Wars (USA, B-Board 89624B-?)", MACHINE_SUPPORTS_SAVE ) // (c) Capcom U.S.A.
+GAME( 1989, dynwara, dynwar, cps1_10MHz, dynwar, cps_state, cps1, ROT0, "Capcom", "Dynasty Wars (USA, B-Board 88622B-3)", MACHINE_SUPPORTS_SAVE ) // (c) Capcom U.S.A.
+GAME( 1989, dynwarj, dynwar, cps1_10MHz, dynwar, cps_state, cps1, ROT0, "Capcom", "Tenchi wo Kurau (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, dynwarjr, dynwar, cps1_12MHz, dynwar, cps_state, cps1, ROT0, "Capcom", "Tenchi wo Kurau (Japan Resale Ver.)", MACHINE_SUPPORTS_SAVE ) // 12MHz verified
+GAME( 1989, willow, 0, cps1_10MHz, willow, cps_state, cps1, ROT0, "Capcom", "Willow (World)", MACHINE_SUPPORTS_SAVE ) // No "Warning" (c) Capcom U.S.A., genuine export ROM labels
+GAME( 1989, willowu, willow, cps1_10MHz, willow, cps_state, cps1, ROT0, "Capcom", "Willow (USA)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, willowuo, willow, cps1_10MHz, willow, cps_state, cps1, ROT0, "Capcom", "Willow (USA Old Ver.)", MACHINE_SUPPORTS_SAVE ) // Japan "warning" but (c) Capcom U.S.A.
+GAME( 1989, willowj, willow, cps1_10MHz, willow, cps_state, cps1, ROT0, "Capcom", "Willow (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, unsquad, 0, cps1_10MHz, unsquad, cps_state, cps1, ROT0, "Capcom / Daipro", "U.N. Squadron (USA)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, area88, unsquad, cps1_10MHz, unsquad, cps_state, cps1, ROT0, "Capcom / Daipro", "Area 88 (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, area88r, unsquad, cps1_12MHz, unsquad, cps_state, cps1, ROT0, "Capcom / Daipro", "Area 88 (Japan Resale Ver.)", MACHINE_SUPPORTS_SAVE ) // 12MHz verified
+GAME( 1989, ffight, 0, cps1_10MHz, ffight, cps_state, cps1, ROT0, "Capcom", "Final Fight (World, set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, ffighta, ffight, cps1_10MHz, ffight, cps_state, cps1, ROT0, "Capcom", "Final Fight (World, set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, ffightu, ffight, cps1_10MHz, ffight, cps_state, cps1, ROT0, "Capcom", "Final Fight (USA, set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, ffightu1, ffight, cps1_10MHz, ffight, cps_state, cps1, ROT0, "Capcom", "Final Fight (USA, set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, ffightua, ffight, cps1_10MHz, ffight, cps_state, cps1, ROT0, "Capcom", "Final Fight (USA 900112)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, ffightub, ffight, cps1_10MHz, ffight, cps_state, cps1, ROT0, "Capcom", "Final Fight (USA 900424)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, ffightuc, ffight, cps1_10MHz, ffight, cps_state, cps1, ROT0, "Capcom", "Final Fight (USA 900613)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, ffightj, ffight, cps1_10MHz, ffight, cps_state, cps1, ROT0, "Capcom", "Final Fight (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, ffightj1, ffight, cps1_10MHz, ffight, cps_state, cps1, ROT0, "Capcom", "Final Fight (Japan 900112)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, ffightj2, ffight, cps1_10MHz, ffight, cps_state, cps1, ROT0, "Capcom", "Final Fight (Japan 900305)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, ffightj3, ffight, cps1_10MHz, ffight, cps_state, cps1, ROT0, "Capcom", "Final Fight (Japan 900613)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, ffightjh, ffight, cps1_10MHz, ffight, cps_state, cps1, ROT0, "bootleg", "Street Smart / Final Fight (Japan, hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, 1941, 0, cps1_10MHz, 1941, cps_state, cps1, ROT270, "Capcom", "1941: Counter Attack (World 900227)", MACHINE_SUPPORTS_SAVE ) // "ETC"
+GAME( 1990, 1941r1, 1941, cps1_10MHz, 1941, cps_state, cps1, ROT270, "Capcom", "1941: Counter Attack (World)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, 1941u, 1941, cps1_10MHz, 1941, cps_state, cps1, ROT270, "Capcom", "1941: Counter Attack (USA 900227)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, 1941j, 1941, cps1_10MHz, 1941, cps_state, cps1, ROT270, "Capcom", "1941: Counter Attack (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, mercs, 0, cps1_10MHz, mercs, cps_state, cps1, ROT270, "Capcom", "Mercs (World 900302)", MACHINE_SUPPORTS_SAVE ) // "ETC"
+GAME( 1990, mercsu, mercs, cps1_10MHz, mercs, cps_state, cps1, ROT270, "Capcom", "Mercs (USA 900608)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, mercsur1, mercs, cps1_10MHz, mercs, cps_state, cps1, ROT270, "Capcom", "Mercs (USA 900302)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, mercsj, mercs, cps1_10MHz, mercs, cps_state, cps1, ROT270, "Capcom", "Senjou no Ookami II (Japan 900302)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, mtwins, 0, cps1_10MHz, mtwins, cps_state, cps1, ROT0, "Capcom", "Mega Twins (World 900619)", MACHINE_SUPPORTS_SAVE ) // "ETC" - (c) Capcom U.S.A. but World "warning"
+GAME( 1990, chikij, mtwins, cps1_10MHz, mtwins, cps_state, cps1, ROT0, "Capcom", "Chiki Chiki Boys (Japan 900619)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, msword, 0, cps1_10MHz, msword, cps_state, cps1, ROT0, "Capcom", "Magic Sword: Heroic Fantasy (World 900725)", MACHINE_SUPPORTS_SAVE ) // 25.07.1990 "OTHER COUNTRY"
+GAME( 1990, mswordr1, msword, cps1_10MHz, msword, cps_state, cps1, ROT0, "Capcom", "Magic Sword: Heroic Fantasy (World 900623)", MACHINE_SUPPORTS_SAVE ) // 23.06.1990 "OTHER COUNTRY"
+GAME( 1990, mswordu, msword, cps1_10MHz, msword, cps_state, cps1, ROT0, "Capcom", "Magic Sword: Heroic Fantasy (USA 900725)", MACHINE_SUPPORTS_SAVE ) // 25.07.1990 "U.S.A."
+GAME( 1990, mswordj, msword, cps1_10MHz, msword, cps_state, cps1, ROT0, "Capcom", "Magic Sword: Heroic Fantasy (Japan 900623)", MACHINE_SUPPORTS_SAVE ) // 23.06.1990 "JAPAN"
+GAME( 1990, cawing, 0, cps1_10MHz, cawing, cps_state, cps1, ROT0, "Capcom", "Carrier Air Wing (World 901012)", MACHINE_SUPPORTS_SAVE ) // "ETC"
+GAME( 1990, cawingr1, cawing, cps1_10MHz, cawing, cps_state, cps1, ROT0, "Capcom", "Carrier Air Wing (World 901009)", MACHINE_SUPPORTS_SAVE ) // "ETC"
+GAME( 1990, cawingu, cawing, cps1_10MHz, cawing, cps_state, cps1, ROT0, "Capcom", "Carrier Air Wing (USA 901012)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, cawingj, cawing, cps1_10MHz, cawing, cps_state, cps1, ROT0, "Capcom", "U.S. Navy (Japan 901012)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, nemo, 0, cps1_10MHz, nemo, cps_state, cps1, ROT0, "Capcom", "Nemo (World 901130)", MACHINE_SUPPORTS_SAVE ) // "ETC"
+GAME( 1990, nemor1, nemo, cps1_10MHz, nemo, cps_state, cps1, ROT0, "Capcom", "Nemo (World 901109)", MACHINE_SUPPORTS_SAVE ) // "ETC"
+GAME( 1990, nemoj, nemo, cps1_10MHz, nemo, cps_state, cps1, ROT0, "Capcom", "Nemo (Japan 901120)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, sf2, 0, cps1_10MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (World 910522)", MACHINE_SUPPORTS_SAVE ) // "ETC"
+GAME( 1991, sf2eb, sf2, cps1_10MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (World 910214)", MACHINE_SUPPORTS_SAVE ) // "ETC"
+GAME( 1991, sf2ed, sf2, cps1_10MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (World 910318)", MACHINE_SUPPORTS_SAVE ) // "ETC"
+GAME( 1991, sf2ee, sf2, cps1_10MHz, sf2, cps_state, sf2ee, ROT0, "Capcom", "Street Fighter II: The World Warrior (World 910228)", MACHINE_SUPPORTS_SAVE ) // "ETC"
+GAME( 1991, sf2ua, sf2, cps1_10MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (USA 910206)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, sf2ub, sf2, cps1_10MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (USA 910214)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, sf2uc, sf2, cps1_10MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (USA 910306)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, sf2ud, sf2, cps1_10MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (USA 910318)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, sf2ue, sf2, cps1_10MHz, sf2, cps_state, sf2ee, ROT0, "Capcom", "Street Fighter II: The World Warrior (USA 910228)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, sf2uf, sf2, cps1_10MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (USA 910411)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, sf2ug, sf2, cps1_10MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (USA 910522, Rev. G)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, sf2ui, sf2, cps1_10MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (USA 910522, Rev. I)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, sf2uk, sf2, cps1_10MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (USA 911101)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, sf2j, sf2, cps1_10MHz, sf2j, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (Japan 911210)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, sf2ja, sf2, cps1_10MHz, sf2j, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (Japan 910214)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, sf2jc, sf2, cps1_10MHz, sf2j, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (Japan 910306)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, sf2jf, sf2, cps1_10MHz, sf2j, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (Japan 910411)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, sf2jh, sf2, cps1_10MHz, sf2j, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (Japan 910522)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, sf2jl, sf2, cps1_10MHz, sf2j, cps_state, cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (Japan 920312)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sf2ebbl, sf2, cps1_10MHz, sf2hack, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II: The World Warrior (TAB Austria, bootleg, set 1)", MACHINE_SUPPORTS_SAVE ) // 910214 - based on World version
+GAME( 1992, sf2ebbl2, sf2, cps1_10MHz, sf2hack, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II: The World Warrior (TAB Austria, bootleg, set 3)", MACHINE_SUPPORTS_SAVE ) // 910214 - based on World version
+GAME( 1992, sf2ebbl3, sf2, cps1_10MHz, sf2hack, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II: The World Warrior (TAB Austria, bootleg, set 4)", MACHINE_SUPPORTS_SAVE ) // 910214 - based on World version
+GAME( 1992, sf2stt, sf2, cps1_10MHz, sf2hack, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II: The World Warrior (TAB Austria, bootleg, set 2)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // 910214 - based on World version
+GAME( 1992, sf2rk, sf2, cps1_10MHz, sf2hack, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II: The World Warrior (RK, bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // 920211 (pcb)
+GAME( 1991, sf2qp1, sf2, cps1_10MHz, sf2, cps_state, cps1, ROT0, "bootleg", "Street Fighter II: The World Warrior (Quicken Pt-I, bootleg)", MACHINE_SUPPORTS_SAVE ) // 910214 - based on World version
+GAME( 1991, sf2thndr, sf2, cps1_10MHz, sf2, cps_state, sf2thndr, ROT0, "bootleg", "Street Fighter II: The World Warrior (Thunder Edition, bootleg)", MACHINE_SUPPORTS_SAVE ) // 910214 - based on World version
+GAME( 1991, 3wonders, 0, cps1_10MHz, 3wonders, cps_state, cps1, ROT0, "Capcom", "Three Wonders (World 910520)", MACHINE_SUPPORTS_SAVE ) // "ETC"
+GAME( 1991, 3wondersr1, 3wonders, cps1_10MHz, 3wonders, cps_state, cps1, ROT0, "Capcom", "Three Wonders (World 910513)", MACHINE_SUPPORTS_SAVE ) // "ETC"
+GAME( 1991, 3wondersu, 3wonders, cps1_10MHz, 3wonders, cps_state, cps1, ROT0, "Capcom", "Three Wonders (USA 910520)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, wonder3, 3wonders, cps1_10MHz, 3wonders, cps_state, cps1, ROT0, "Capcom", "Wonder 3 (Japan 910520)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, 3wondersb, 3wonders, cps1_10MHz, 3wonders, cps_state, cps1, ROT0, "bootleg", "Three Wonders (bootleg)", MACHINE_SUPPORTS_SAVE ) // 910520 - based on World version
+GAME( 1991, 3wondersh, 3wonders, cps1_10MHz, 3wonders, cps_state, cps1, ROT0, "bootleg", "Three Wonders (hack)", MACHINE_SUPPORTS_SAVE ) // 910520 - based on World version
+GAME( 1991, kod, 0, cps1_10MHz, kod, cps_state, cps1, ROT0, "Capcom", "The King of Dragons (World 910805)", MACHINE_SUPPORTS_SAVE ) // "ETC"
+GAME( 1991, kodr1, kod, cps1_10MHz, kodr1, cps_state, cps1, ROT0, "Capcom", "The King of Dragons (World 910711)", MACHINE_SUPPORTS_SAVE ) // "ETC"
+GAME( 1991, kodu, kod, cps1_10MHz, kod, cps_state, cps1, ROT0, "Capcom", "The King of Dragons (USA 910910)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, kodj, kod, cps1_10MHz, kod, cps_state, cps1, ROT0, "Capcom", "The King of Dragons (Japan 910805, B-Board 90629B-3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, kodja, kod, cps1_10MHz, kod, cps_state, cps1, ROT0, "Capcom", "The King of Dragons (Japan 910805, B-Board 89625B-1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, captcomm, 0, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "Capcom", "Captain Commando (World 911202)", MACHINE_SUPPORTS_SAVE ) // "OTHER COUNTRY"
+GAME( 1991, captcommr1, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "Capcom", "Captain Commando (World 911014)", MACHINE_SUPPORTS_SAVE ) // "OTHER COUNTRY"
+GAME( 1991, captcommu, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "Capcom", "Captain Commando (USA 910928)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, captcommj, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "Capcom", "Captain Commando (Japan 911202)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, captcommjr1, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "Capcom", "Captain Commando (Japan 910928)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, captcommb, captcomm, cps1_10MHz, captcomm, cps_state, cps1, ROT0, "bootleg", "Captain Commando (bootleg)", MACHINE_SUPPORTS_SAVE ) // 911014 - based on World version
+GAME( 1991, knights, 0, cps1_10MHz, knights, cps_state, cps1, ROT0, "Capcom", "Knights of the Round (World 911127)", MACHINE_SUPPORTS_SAVE ) // "ETC"
+GAME( 1991, knightsu, knights, cps1_10MHz, knights, cps_state, cps1, ROT0, "Capcom", "Knights of the Round (USA 911127)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, knightsj, knights, cps1_10MHz, knights, cps_state, cps1, ROT0, "Capcom", "Knights of the Round (Japan 911127, B-Board 91634B-2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, knightsja, knights, cps1_10MHz, knights, cps_state, cps1, ROT0, "Capcom", "Knights of the Round (Japan 911127, B-Board 89625B-1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sf2ce, 0, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II': Champion Edition (World 920513)", MACHINE_SUPPORTS_SAVE ) // "ETC"
+GAME( 1992, sf2ceea, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II': Champion Edition (World 920313)", MACHINE_SUPPORTS_SAVE ) // "ETC"
+GAME( 1992, sf2ceua, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II': Champion Edition (USA 920313)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sf2ceub, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II': Champion Edition (USA 920513)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sf2ceuc, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II': Champion Edition (USA 920803)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sf2ceja, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II': Champion Edition (Japan 920322)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sf2cejb, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II': Champion Edition (Japan 920513)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sf2cejc, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II': Champion Edition (Japan 920803)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sf2bhh, sf2ce, cps1_12MHz, sf2, cps_state, sf2rb, ROT0, "bootleg", "Street Fighter II': Champion Edition (Hung Hsi, bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sf2rb, sf2ce, cps1_12MHz, sf2, cps_state, sf2rb, ROT0, "bootleg", "Street Fighter II': Champion Edition (Rainbow, bootleg, set 1)", MACHINE_SUPPORTS_SAVE ) // 920322 - based on World version
+GAME( 1992, sf2rb2, sf2ce, cps1_12MHz, sf2, cps_state, sf2rb2, ROT0, "bootleg", "Street Fighter II': Champion Edition (Rainbow, bootleg, set 2)", MACHINE_SUPPORTS_SAVE ) // 920322 - based on World version
+GAME( 1992, sf2rb3, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "bootleg", "Street Fighter II': Champion Edition (Rainbow, bootleg, set 3)", MACHINE_SUPPORTS_SAVE ) // 920322 - based on World version
+GAME( 1992, sf2red, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "bootleg", "Street Fighter II': Champion Edition (Red Wave, bootleg)", MACHINE_SUPPORTS_SAVE ) // 920313 - based on World version
+GAME( 1992, sf2v004, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "bootleg", "Street Fighter II': Champion Edition (V004, bootleg)", MACHINE_SUPPORTS_SAVE ) // 102092 !!! - based on (heavily modified) World version
+GAME( 1992, sf2acc, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "bootleg", "Street Fighter II': Champion Edition (Accelerator!, bootleg, set 1)", MACHINE_SUPPORTS_SAVE ) // 920313 - based on World version
+GAME( 1992, sf2acca, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "bootleg", "Street Fighter II': Champion Edition (Accelerator!, bootleg, set 2)", MACHINE_SUPPORTS_SAVE ) // 920313 - based on World version
+GAME( 1992, sf2accp2, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "bootleg", "Street Fighter II': Champion Edition (Accelerator Pt.II, bootleg)", MACHINE_SUPPORTS_SAVE ) // 920313 - based on World version
+GAME( 1992, sf2amf, sf2ce, cps1_12MHz, sf2amf, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II': Champion Edition (Alpha Magic-F, bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // 920313 - based on World version
+GAME( 1992, sf2amf2, sf2ce, cps1_12MHz, sf2hack, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II': Champion Edition (L735 Test Rom, bootleg)", MACHINE_SUPPORTS_SAVE ) // 920313 - based on World version
+GAME( 1992, sf2dkot2, sf2ce, cps1_12MHz, sf2, cps_state, cps1, ROT0, "bootleg", "Street Fighter II': Champion Edition (Double K.O. Turbo II, bootleg)", MACHINE_SUPPORTS_SAVE ) // 902140 !!! - based on USA version
+GAME( 1992, sf2ceblp, sf2ce, cps1_10MHz, sf2, cps_state, sf2ceblp, ROT0, "bootleg", "Street Fighter II': Champion Edition (protected bootleg on non-dash board)", MACHINE_SUPPORTS_SAVE ) // 920313 - based on USA version
+GAME( 1992, sf2m2, sf2ce, cps1_12MHz, sf2m2, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II': Champion Edition (M2, bootleg)", MACHINE_SUPPORTS_SAVE ) // 920313 - based on World version
+GAME( 1992, sf2m3, sf2ce, sf2m3, sf2, cps_state, cps1, ROT0, "bootleg", "Street Fighter II': Champion Edition (M3, bootleg)", MACHINE_SUPPORTS_SAVE ) // 920313 - based on USA version
+GAME( 1992, sf2m4, sf2ce, cps1_12MHz, sf2m4, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II': Champion Edition (M4, bootleg)", MACHINE_SUPPORTS_SAVE ) // 920322 - based on Japan version
+GAME( 1992, sf2m5, sf2ce, cps1_12MHz, sf2hack, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II': Champion Edition (M5, bootleg)", MACHINE_SUPPORTS_SAVE ) // 920313 - based on World version
+GAME( 1992, sf2m6, sf2ce, cps1_12MHz, sf2hack, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II': Champion Edition (M6, bootleg)", MACHINE_SUPPORTS_SAVE ) // 811102 !!! - based on World version
+GAME( 1992, sf2m7, sf2ce, cps1_12MHz, sf2hack, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II': Champion Edition (M7, bootleg)", MACHINE_SUPPORTS_SAVE ) // 920313 - based on World version
+GAME( 1992, sf2m8, sf2ce, sf2m3, sf2, cps_state, sf2m8, ROT0, "bootleg", "Street Fighter II': Champion Edition (M8, bootleg)", MACHINE_SUPPORTS_SAVE ) // 920313 - based on USA version
+GAME( 1992, sf2yyc, sf2ce, cps1_12MHz, sf2hack, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II': Champion Edition (YYC, bootleg)", MACHINE_SUPPORTS_SAVE ) // 920313 - based on World version
+GAME( 1992, sf2koryu, sf2ce, cps1_12MHz, sf2hack, cps_state, sf2hack, ROT0, "bootleg", "Street Fighter II': Champion Edition (Xiang Long, Chinese bootleg)", MACHINE_SUPPORTS_SAVE ) // 811102 !!! - based on World version
+GAME( 1992, sf2dongb, sf2ce, cps1_12MHz, sf2, cps_state, sf2dongb, ROT0, "bootleg", "Street Fighter II': Champion Edition (Dongfang Bubai protection, bootleg)", MACHINE_SUPPORTS_SAVE ) // 920313 - based on World version
+GAME( 1992, cworld2j, 0, cps1_12MHz, cworld2j, cps_state, cps1, ROT0, "Capcom", "Adventure Quiz Capcom World 2 (Japan 920611)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, cworld2ja, cworld2j, cps1_12MHz, cworld2j, cps_state, cps1, ROT0, "Capcom", "Adventure Quiz Capcom World 2 (Japan 920611, B-Board 90629B-3, no battery)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, cworld2jb, cworld2j, cps1_12MHz, cworld2j, cps_state, cps1, ROT0, "Capcom", "Adventure Quiz Capcom World 2 (Japan 920611, B-Board 91634B-2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, varth, 0, cps1_12MHz, varth, cps_state, cps1, ROT270, "Capcom", "Varth: Operation Thunderstorm (World 920714)", MACHINE_SUPPORTS_SAVE ) // "ETC" // 12MHz verified
+GAME( 1992, varthr1, varth, cps1_12MHz, varth, cps_state, cps1, ROT270, "Capcom", "Varth: Operation Thunderstorm (World 920612)", MACHINE_SUPPORTS_SAVE ) // "ETC"
+GAME( 1992, varthu, varth, cps1_12MHz, varth, cps_state, cps1, ROT270, "Capcom (Romstar license)", "Varth: Operation Thunderstorm (USA 920612)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, varthj, varth, cps1_12MHz, varth, cps_state, cps1, ROT270, "Capcom", "Varth: Operation Thunderstorm (Japan 920714)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, varthjr, varth, cps1_12MHz, varth, cps_state, cps1, ROT270, "Capcom", "Varth: Operation Thunderstorm (Japan Resale Ver. 920714)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, qad, 0, cps1_12MHz, qad, cps_state, cps1, ROT0, "Capcom", "Quiz & Dragons: Capcom Quiz Game (USA 920701)", MACHINE_SUPPORTS_SAVE ) // 12MHz verified
+GAME( 1994, qadjr, qad, cps1_12MHz, qadjr, cps_state, cps1, ROT0, "Capcom", "Quiz & Dragons: Capcom Quiz Game (Japan Resale Ver. 940921)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wof, 0, qsound, wof, cps_state, wof, ROT0, "Capcom", "Warriors of Fate (World 921031)", MACHINE_SUPPORTS_SAVE ) // "ETC"
+GAME( 1992, wofr1, wof, qsound, wof, cps_state, wof, ROT0, "Capcom", "Warriors of Fate (World 921002)", MACHINE_SUPPORTS_SAVE ) // "ETC"
+GAME( 1992, wofu, wof, qsound, wof, cps_state, wof, ROT0, "Capcom", "Warriors of Fate (USA 921031)", MACHINE_SUPPORTS_SAVE ) // World "warning"
+GAME( 1992, wofa, wof, qsound, wof, cps_state, wof, ROT0, "Capcom", "Sangokushi II (Asia 921005)", MACHINE_SUPPORTS_SAVE ) // World "warning"
+GAME( 1992, wofj, wof, qsound, wof, cps_state, wof, ROT0, "Capcom", "Tenchi wo Kurau II: Sekiheki no Tatakai (Japan 921031)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, wofhfh, wof, wofhfh, wofhfh, cps_state, cps1, ROT0, "bootleg", "Huo Feng Huang (Chinese bootleg of Sangokushi II)", MACHINE_SUPPORTS_SAVE ) // 921005 - based on Asia version
+GAME( 1992, sf2hf, 0, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II': Hyper Fighting (World 921209)", MACHINE_SUPPORTS_SAVE ) // "ETC"
+GAME( 1992, sf2hfu, sf2hf, cps1_12MHz, sf2, cps_state, cps1, ROT0, "Capcom", "Street Fighter II': Hyper Fighting (USA 921209)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, sf2hfj, sf2hf, cps1_12MHz, sf2j, cps_state, cps1, ROT0, "Capcom", "Street Fighter II' Turbo: Hyper Fighting (Japan 921209)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dino, 0, qsound, dino, cps_state, dino, ROT0, "Capcom", "Cadillacs and Dinosaurs (World 930201)", MACHINE_SUPPORTS_SAVE ) // "ETC"
+GAME( 1993, dinou, dino, qsound, dino, cps_state, dino, ROT0, "Capcom", "Cadillacs and Dinosaurs (USA 930201)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinoj, dino, qsound, dino, cps_state, dino, ROT0, "Capcom", "Cadillacs: Kyouryuu Shin Seiki (Japan 930201)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dinohunt, dino, wofhfh, dinoh, cps_state, dinohunt, ROT0, "bootleg", "Dinosaur Hunter (Chinese bootleg of Cadillacs and Dinosaurs)", MACHINE_SUPPORTS_SAVE ) // 930223 - based on Asia TW version, the original is still undumped
+GAME( 1993, punisher, 0, qsound, punisher, cps_state, punisher, ROT0, "Capcom", "The Punisher (World 930422)", MACHINE_SUPPORTS_SAVE ) // "ETC"
+GAME( 1993, punisheru, punisher, qsound, punisher, cps_state, punisher, ROT0, "Capcom", "The Punisher (USA 930422)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, punisherh, punisher, qsound, punisher, cps_state, punisher, ROT0, "Capcom", "The Punisher (Hispanic 930422)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, punisherj, punisher, qsound, punisher, cps_state, punisher, ROT0, "Capcom", "The Punisher (Japan 930422)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, punisherbz, punisher, wofhfh, punisherbz, cps_state, cps1, ROT0, "bootleg", "Biaofeng Zhanjing (Chinese bootleg of The Punisher)", MACHINE_SUPPORTS_SAVE ) // (c) 2002, they ripped the sound from Final Fight!
+GAME( 1993, slammast, 0, qsound, slammast, cps_state, slammast, ROT0, "Capcom", "Saturday Night Slam Masters (World 930713)", MACHINE_SUPPORTS_SAVE ) // "ETC"
+GAME( 1993, slammastu, slammast, qsound, slammast, cps_state, slammast, ROT0, "Capcom", "Saturday Night Slam Masters (USA 930713)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, mbomberj, slammast, qsound, slammast, cps_state, slammast, ROT0, "Capcom", "Muscle Bomber: The Body Explosion (Japan 930713)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, mbombrd, 0, qsound, slammast, cps_state, slammast, ROT0, "Capcom", "Muscle Bomber Duo: Ultimate Team Battle (World 931206)", MACHINE_SUPPORTS_SAVE ) // "ETC"
+GAME( 1993, mbombrdj, mbombrd, qsound, slammast, cps_state, slammast, ROT0, "Capcom", "Muscle Bomber Duo: Heat Up Warriors (Japan 931206)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, pnickj, 0, cps1_12MHz, pnickj, cps_state, cps1, ROT0, "Compile (Capcom license)", "Pnickies (Japan 940608)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, qtono2j, 0, cps1_12MHz, qtono2j, cps_state, cps1, ROT0, "Capcom", "Quiz Tonosama no Yabou 2: Zenkoku-ban (Japan 950123)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, megaman, 0, cps1_12MHz, megaman, cps_state, cps1, ROT0, "Capcom", "Mega Man: The Power Battle (CPS1, USA 951006)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, megamana, megaman, cps1_12MHz, megaman, cps_state, cps1, ROT0, "Capcom", "Mega Man: The Power Battle (CPS1, Asia 951006)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, rockmanj, megaman, cps1_12MHz, rockmanj, cps_state, cps1, ROT0, "Capcom", "Rockman: The Power Battle (CPS1, Japan 950922)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, ganbare, 0, ganbare, ganbare, cps_state, ganbare, ROT0, "Capcom", "Ganbare! Marine Kun (Japan 2K0411)", MACHINE_SUPPORTS_SAVE )
/* Games released on CPS-1 hardware by Mitchell */
-GAME( 1995, pang3, 0, pang3, pang3, cps_state, pang3, ROT0, "Mitchell", "Pang! 3 (Euro 950601)", GAME_SUPPORTS_SAVE )
-GAME( 1995, pang3r1, pang3, pang3, pang3, cps_state, pang3, ROT0, "Mitchell", "Pang! 3 (Euro 950511)", GAME_SUPPORTS_SAVE )
-GAME( 1995, pang3j, pang3, pang3, pang3, cps_state, pang3, ROT0, "Mitchell", "Pang! 3: Kaitou Tachi no Karei na Gogo (Japan 950511)", GAME_SUPPORTS_SAVE )
-GAME( 1995, pang3b, pang3, pang3, pang3b, cps_state, pang3b, ROT0, "bootleg", "Pang! 3 (bootleg)", GAME_SUPPORTS_SAVE ) // 950511 - based on Euro version
+GAME( 1995, pang3, 0, pang3, pang3, cps_state, pang3, ROT0, "Mitchell", "Pang! 3 (Euro 950601)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, pang3r1, pang3, pang3, pang3, cps_state, pang3, ROT0, "Mitchell", "Pang! 3 (Euro 950511)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, pang3j, pang3, pang3, pang3, cps_state, pang3, ROT0, "Mitchell", "Pang! 3: Kaitou Tachi no Karei na Gogo (Japan 950511)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, pang3b, pang3, pang3, pang3b, cps_state, pang3b, ROT0, "bootleg", "Pang! 3 (bootleg)", MACHINE_SUPPORTS_SAVE ) // 950511 - based on Euro version
/* Home 'CPS Changer' Unit - For MESS */
-CONS( 1994, wofch, 0, 0, qsound, wofch, cps_state, wof, "Capcom", "Tenchi wo Kurau II: Sekiheki no Tatakai (CPS Changer, Japan 921031)", 0 )
-CONS( 1995, sfzch, 0, 0, cps1_12MHz, sfzch, cps_state, cps1, "Capcom", "Street Fighter Zero (CPS Changer, Japan 951020)", 0 )
+CONS( 1994, wofch, 0, 0, qsound, wofch, cps_state, wof, "Capcom", "Tenchi wo Kurau II: Sekiheki no Tatakai (CPS Changer, Japan 921031)", MACHINE_SUPPORTS_SAVE )
+CONS( 1995, sfzch, 0, 0, cps1_12MHz, sfzch, cps_state, cps1, "Capcom", "Street Fighter Zero (CPS Changer, Japan 951020)", MACHINE_SUPPORTS_SAVE )
// are these 2 legit sets, or did somebody region hack it?
-CONS( 1995, sfach, sfzch, 0, cps1_12MHz, sfzch, cps_state, cps1, "Capcom", "Street Fighter Alpha: Warriors' Dreams (CPS Changer, Publicity USA 950727)", 0 )
-CONS( 1995, sfzbch, sfzch, 0, cps1_12MHz, sfzch, cps_state, cps1, "Capcom", "Street Fighter Zero (CPS Changer, Brazil 950727)", 0 )
+CONS( 1995, sfach, sfzch, 0, cps1_12MHz, sfzch, cps_state, cps1, "Capcom", "Street Fighter Alpha: Warriors' Dreams (CPS Changer, Publicity USA 950727)", MACHINE_SUPPORTS_SAVE )
+CONS( 1995, sfzbch, sfzch, 0, cps1_12MHz, sfzch, cps_state, cps1, "Capcom", "Street Fighter Zero (CPS Changer, Brazil 950727)", MACHINE_SUPPORTS_SAVE )
// Ken Sei Mogura: Street Fighter II - see kenseim.c
diff --git a/src/mame/drivers/cps2.c b/src/mame/drivers/cps2.c
index 4693b1f97ef..47999a2d659 100644
--- a/src/mame/drivers/cps2.c
+++ b/src/mame/drivers/cps2.c
@@ -1494,7 +1494,7 @@ ROM_START( 19xxa )
ROM_LOAD16_WORD_SWAP( "19x.11m", 0x000000, 0x200000, CRC(d38beef3) SHA1(134e961b926a97cca5e45d3558efb98f6f278e08) )
ROM_LOAD16_WORD_SWAP( "19x.12m", 0x200000, 0x200000, CRC(d47c96e2) SHA1(3c1b5563f8e7ee1c450b3592fcb319e928caec3c) )
- _19XX_ASIA_KEY
+ _19XX_ASIA_KEY
ROM_END
ROM_START( 19xxar1 )
@@ -2677,7 +2677,7 @@ ROM_START( ddtodh )
ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
ROM_LOAD16_WORD_SWAP( "dad.11m", 0x000000, 0x200000, CRC(0c499b67) SHA1(a8ebd8a1cd6dece8344b7cb0439d85843fb97616) )
ROM_LOAD16_WORD_SWAP( "dad.12m", 0x200000, 0x200000, CRC(2f0b5a4e) SHA1(8d1ebbb811aa469b0f0d29d719d2b9af28fb63a2) )
-
+
DDTOD_HISPANIC_KEY
ROM_END
@@ -6288,7 +6288,7 @@ ROM_START( sfa2 )
ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
ROM_LOAD16_WORD_SWAP( "sz2.11m", 0x000000, 0x200000, CRC(aa47a601) SHA1(a4d1ee89c84a3b9db06469bb66e85293b5aa9ac9) )
ROM_LOAD16_WORD_SWAP( "sz2.12m", 0x200000, 0x200000, CRC(2237bc53) SHA1(96d5693047e4cf1ed10a8ee1905cea267a278e92) )
-
+
SFA2_WORLD_KEY
ROM_END
@@ -6761,6 +6761,7 @@ ROM_START( sfa3u )
SFA3_USA_KEY
ROM_END
+
ROM_START( sfa3ur1 )
ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
ROM_LOAD16_WORD_SWAP( "sz3u.03", 0x000000, 0x80000, CRC(b5984a19) SHA1(e225dd1d3a5d1b94adcfc5f720775e9ba321996e) )
@@ -6794,6 +6795,39 @@ ROM_START( sfa3ur1 )
SFA3_USA_KEY
ROM_END
+ROM_START( sfa3us )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "sz3-usam_03.6a", 0x000000, 0x80000, CRC(14319e29) SHA1(6de0c08f887d334d720d4c8ba7d5745f5282adfb) )
+ ROM_LOAD16_WORD_SWAP( "sz3-usam_04.7a", 0x080000, 0x80000, CRC(65fbc272) SHA1(d320a3c0dae03ea7c32cd521b99afb0e2d62dfaf) )
+ ROM_LOAD16_WORD_SWAP( "sz3-usam_05.8a", 0x100000, 0x80000, CRC(e93c47d1) SHA1(18c388e55b852ad46b784e0cf3fd4c72e8bb6850) )
+ ROM_LOAD16_WORD_SWAP( "sz3-usam_06.9a", 0x180000, 0x80000, CRC(1bf09de3) SHA1(8bd7f5ae7dbaccc65af835f166134f1bb44e6aae) )
+ ROM_LOAD16_WORD_SWAP( "sz3-usam_07.6d", 0x200000, 0x80000, CRC(f6296d96) SHA1(ff9376544968c6783fd98b9a714f0c25174f027a) )
+ ROM_LOAD16_WORD_SWAP( "sz3-usam_08.7d", 0x280000, 0x80000, CRC(1f4008ff) SHA1(f3fe9d6560bf97e7a3a15c1c43f74ac9ef3d5fbb) )
+ ROM_LOAD16_WORD_SWAP( "sz3-usam_09.8d", 0x300000, 0x80000, CRC(822fc451) SHA1(49ec9e3f33d6023b59b350a79fe2299f6ac90251) )
+ ROM_LOAD16_WORD_SWAP( "sz3-usam_10.9d", 0x380000, 0x80000, CRC(92713468) SHA1(9855bb1dd54190e29c5935be4a6529ac0936a628))
+
+ ROM_REGION( 0x2000000, "gfx", 0 )
+ ROMX_LOAD( "sz3.13m", 0x0000000, 0x400000, CRC(0f7a60d9) SHA1(c69e0ee22537312909dacc86d2e4be319d54e426) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz3.15m", 0x0000002, 0x400000, CRC(8e933741) SHA1(f4ac4bfe830dc7df9fe4f680e4e0c053e7cbd8fe) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz3.17m", 0x0000004, 0x400000, CRC(d6e98147) SHA1(37f331fbb1284db446faecade6f484f58c0e1b2a) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz3.19m", 0x0000006, 0x400000, CRC(f31a728a) SHA1(f14136564648f006c1b74afda78349f260524b5f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz3.14m", 0x1000000, 0x400000, CRC(5ff98297) SHA1(9e0ce43380b776c7a03872bafd4856f6fa60bda7) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz3.16m", 0x1000002, 0x400000, CRC(52b5bdee) SHA1(7918204dc457f7a146d8fb8cf7242dfed3109fd8) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz3.18m", 0x1000004, 0x400000, CRC(40631ed5) SHA1(c18c56822b90a71ca5fbdf3440eb2671011f3d8f) , ROM_GROUPWORD | ROM_SKIP(6) )
+ ROMX_LOAD( "sz3.20m", 0x1000006, 0x400000, CRC(763409b4) SHA1(af60a5116c1ca9050366a35ea29128921867f3cc) , ROM_GROUPWORD | ROM_SKIP(6) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "sz3-usam_01.1a", 0x00000, 0x08000, CRC(c180947d) SHA1(829c8cf45029676acde369b890ac1b941981f750) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "sz3-usam_02.2a", 0x28000, 0x20000, CRC(9ebc280f) SHA1(33fa0934c046eaae3c841d5be0bbdf7b190ef5e7) )
+
+ ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "sz3.11m", 0x000000, 0x400000, CRC(1c89eed1) SHA1(649a0b0a3eb72e2e69e9fb1ac51a58b70daa39f3) )
+ ROM_LOAD16_WORD_SWAP( "sz3.12m", 0x400000, 0x400000, CRC(f392b13a) SHA1(fa04ce0370144a49bd1d5acd873eef87b0dc9d15) )
+
+ SFA3_USA_KEY
+ROM_END
+
ROM_START( sfz3j )
ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
ROM_LOAD16_WORD_SWAP( "sz3j.03c", 0x000000, 0x80000, CRC(cadf4a51) SHA1(a0511512f55c0befa4a905ceff8c6f5775cf40ba) )
@@ -8488,7 +8522,7 @@ ROM_START( xmcotaj1 )
ROM_REGION( 0x400000, "qsound", 0 ) /* QSound samples */
ROM_LOAD16_WORD_SWAP( "xmn.11m", 0x000000, 0x200000, CRC(c848a6bc) SHA1(ac8ac564d3c43225822f8bc330eba9f35b24b0a4) )
ROM_LOAD16_WORD_SWAP( "xmn.12m", 0x200000, 0x200000, CRC(729c188f) SHA1(3279774ad8aebbcf0fc779cdfcbe21044dd192ad) )
-
+
XMCOTA_JAPAN_KEY
ROM_END
@@ -9228,267 +9262,268 @@ DRIVER_INIT_MEMBER(cps_state,gigaman2)
*
*************************************/
-GAME( 1993, ssf2, 0, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Super Street Fighter II: The New Challengers (World 931005)", GAME_SUPPORTS_SAVE )
-GAME( 1993, ssf2r1, ssf2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Super Street Fighter II: The New Challengers (World 930911)", GAME_SUPPORTS_SAVE )
-GAME( 1993, ssf2u, ssf2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Super Street Fighter II: The New Challengers (USA 930911)", GAME_SUPPORTS_SAVE )
-GAME( 1993, ssf2a, ssf2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Super Street Fighter II: The New Challengers (Asia 931005)", GAME_SUPPORTS_SAVE )
-GAME( 1993, ssf2ar1, ssf2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Super Street Fighter II: The New Challengers (Asia 930914)", GAME_SUPPORTS_SAVE )
-GAME( 1993, ssf2j, ssf2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Super Street Fighter II: The New Challengers (Japan 931005)", GAME_SUPPORTS_SAVE )
-GAME( 1993, ssf2jr1, ssf2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Super Street Fighter II: The New Challengers (Japan 930911)", GAME_SUPPORTS_SAVE )
-GAME( 1993, ssf2jr2, ssf2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Super Street Fighter II: The New Challengers (Japan 930910)", GAME_SUPPORTS_SAVE )
-GAME( 1993, ssf2h, ssf2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Super Street Fighter II: The New Challengers (Hispanic 930911)", GAME_SUPPORTS_SAVE )
-GAME( 1993, ssf2tb, ssf2, cps2, cps2_2p6b, cps_state, ssf2tb, ROT0, "Capcom", "Super Street Fighter II: The Tournament Battle (World 931119)", GAME_SUPPORTS_SAVE ) // works, but not in tournament mode
-GAME( 1993, ssf2tbr1, ssf2, cps2, cps2_2p6b, cps_state, ssf2tb, ROT0, "Capcom", "Super Street Fighter II: The Tournament Battle (World 930911)", GAME_SUPPORTS_SAVE ) // works, but not in tournament mode
-GAME( 1993, ssf2tbj, ssf2, cps2, cps2_2p6b, cps_state, ssf2tb, ROT0, "Capcom", "Super Street Fighter II: The Tournament Battle (Japan 930911)", GAME_SUPPORTS_SAVE ) // works, but not in tournament mode
-GAME( 1993, ssf2tbh, ssf2, cps2, cps2_2p6b, cps_state, ssf2tb, ROT0, "Capcom", "Super Street Fighter II: The Tournament Battle (Hispanic 931005)", GAME_SUPPORTS_SAVE ) // works, but not in tournament mode
-GAME( 1993, ecofghtr, 0, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Eco Fighters (World 931203)", GAME_SUPPORTS_SAVE )
-GAME( 1993, ecofghtru, ecofghtr, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Eco Fighters (USA 940215)", GAME_SUPPORTS_SAVE )
-GAME( 1993, ecofghtru1, ecofghtr, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Eco Fighters (USA 931203)", GAME_SUPPORTS_SAVE )
-GAME( 1993, uecology, ecofghtr, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Ultimate Ecology (Japan 931203)", GAME_SUPPORTS_SAVE )
-GAME( 1993, ecofghtra, ecofghtr, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Eco Fighters (Asia 931203)", GAME_SUPPORTS_SAVE )
-GAME( 1993, ecofghtrh, ecofghtr, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Eco Fighters (Hispanic 931203)", GAME_SUPPORTS_SAVE )
-GAME( 1993, ddtod, 0, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (Euro 940412)", GAME_SUPPORTS_SAVE )
-GAME( 1993, ddtodr1, ddtod, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (Euro 940113)", GAME_SUPPORTS_SAVE )
-GAME( 1993, ddtodu, ddtod, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (USA 940125)", GAME_SUPPORTS_SAVE )
-GAME( 1993, ddtodur1, ddtod, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (USA 940113)", GAME_SUPPORTS_SAVE )
-GAME( 1993, ddtodj, ddtod, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (Japan 940412)", GAME_SUPPORTS_SAVE )
-GAME( 1993, ddtodjr1, ddtod, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (Japan 940125)", GAME_SUPPORTS_SAVE )
-GAME( 1993, ddtodjr2, ddtod, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (Japan 940113)", GAME_SUPPORTS_SAVE )
-GAME( 1993, ddtoda, ddtod, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (Asia 940412)", GAME_SUPPORTS_SAVE )
-GAME( 1993, ddtodar1, ddtod, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (Asia 940113)", GAME_SUPPORTS_SAVE )
-GAME( 1993, ddtodh, ddtod, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (Hispanic 940412)", GAME_SUPPORTS_SAVE )
-GAME( 1993, ddtodhr1, ddtod, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (Hispanic 940125)", GAME_SUPPORTS_SAVE )
-GAME( 1993, ddtodhr2, ddtod, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (Hispanic 940113)", GAME_SUPPORTS_SAVE )
-GAME( 1994, ssf2t, 0, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Super Street Fighter II Turbo (World 940223)", GAME_SUPPORTS_SAVE )
-GAME( 1994, ssf2ta, ssf2t, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Super Street Fighter II Turbo (Asia 940223)", GAME_SUPPORTS_SAVE )
-GAME( 1994, ssf2tu, ssf2t, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Super Street Fighter II Turbo (USA 940323)", GAME_SUPPORTS_SAVE )
-GAME( 1994, ssf2tur1, ssf2t, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Super Street Fighter II Turbo (USA 940223)", GAME_SUPPORTS_SAVE )
-GAME( 1994, ssf2xj, ssf2t, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Super Street Fighter II X: Grand Master Challenge (Japan 940223)", GAME_SUPPORTS_SAVE )
-GAME( 1994, ssf2xjr, ssf2t, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Super Street Fighter II X: Grand Master Challenge (Japan 940223 rent version)", GAME_SUPPORTS_SAVE )
-GAME( 1994, avsp, 0, cps2, cps2_3p3b, cps_state, cps2, ROT0, "Capcom", "Alien vs. Predator (Euro 940520)", GAME_SUPPORTS_SAVE )
-GAME( 1994, avspu, avsp, cps2, cps2_3p3b, cps_state, cps2, ROT0, "Capcom", "Alien vs. Predator (USA 940520)", GAME_SUPPORTS_SAVE )
-GAME( 1994, avspj, avsp, cps2, cps2_3p3b, cps_state, cps2, ROT0, "Capcom", "Alien vs. Predator (Japan 940520)", GAME_SUPPORTS_SAVE )
-GAME( 1994, avspa, avsp, cps2, cps2_3p3b, cps_state, cps2, ROT0, "Capcom", "Alien vs. Predator (Asia 940520)", GAME_SUPPORTS_SAVE )
-GAME( 1994, avsph, avsp, cps2, cps2_3p3b, cps_state, cps2, ROT0, "Capcom", "Alien vs. Predator (Hispanic 940520)", GAME_SUPPORTS_SAVE )
-GAME( 1994, dstlk, 0, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Darkstalkers: The Night Warriors (Euro 940705)", GAME_SUPPORTS_SAVE )
-GAME( 1994, dstlku, dstlk, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Darkstalkers: The Night Warriors (USA 940818)", GAME_SUPPORTS_SAVE )
-GAME( 1994, dstlkur1, dstlk, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Darkstalkers: The Night Warriors (USA 940705)", GAME_SUPPORTS_SAVE )
-GAME( 1994, dstlka, dstlk, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Darkstalkers: The Night Warriors (Asia 940705)", GAME_SUPPORTS_SAVE )
-GAME( 1994, dstlkh, dstlk, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Darkstalkers: The Night Warriors (Hispanic 940818)", GAME_SUPPORTS_SAVE )
-GAME( 1994, vampj, dstlk, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Vampire: The Night Warriors (Japan 940705)", GAME_SUPPORTS_SAVE ) // partial update set? Only rom 04 is "B" revision
-GAME( 1994, vampja, dstlk, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Vampire: The Night Warriors (Japan 940705 alt)", GAME_SUPPORTS_SAVE )
-GAME( 1994, vampjr1, dstlk, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Vampire: The Night Warriors (Japan 940630)", GAME_SUPPORTS_SAVE )
-GAME( 1994, ringdest, 0, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Ring of Destruction: Slammasters II (Euro 940902)", GAME_SUPPORTS_SAVE )
-GAME( 1994, ringdesta, ringdest, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Ring of Destruction: Slammasters II (Asia 940831)", GAME_SUPPORTS_SAVE )
-GAME( 1994, smbomb, ringdest, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Super Muscle Bomber: The International Blowout (Japan 940831)", GAME_SUPPORTS_SAVE )
-GAME( 1994, smbombr1, ringdest, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Super Muscle Bomber: The International Blowout (Japan 940808)", GAME_SUPPORTS_SAVE )
-GAME( 1994, armwar, 0, cps2, cps2_3p3b, cps_state, cps2, ROT0, "Capcom", "Armored Warriors (Euro 941024)", GAME_SUPPORTS_SAVE )
-GAME( 1994, armwarr1, armwar, cps2, cps2_3p3b, cps_state, cps2, ROT0, "Capcom", "Armored Warriors (Euro 941011)", GAME_SUPPORTS_SAVE )
-GAME( 1994, armwaru, armwar, cps2, cps2_3p3b, cps_state, cps2, ROT0, "Capcom", "Armored Warriors (USA 941024)", GAME_SUPPORTS_SAVE )
-GAME( 1994, armwaru1, armwar, cps2, cps2_3p3b, cps_state, cps2, ROT0, "Capcom", "Armored Warriors (USA 940920)", GAME_SUPPORTS_SAVE )
-GAME( 1994, pgear, armwar, cps2, cps2_3p3b, cps_state, cps2, ROT0, "Capcom", "Powered Gear: Strategic Variant Armor Equipment (Japan 941024)", GAME_SUPPORTS_SAVE )
-GAME( 1994, pgearr1, armwar, cps2, cps2_3p3b, cps_state, cps2, ROT0, "Capcom", "Powered Gear: Strategic Variant Armor Equipment (Japan 940916)", GAME_SUPPORTS_SAVE )
-GAME( 1994, armwara, armwar, cps2, cps2_3p3b, cps_state, cps2, ROT0, "Capcom", "Armored Warriors (Asia 941024)", GAME_SUPPORTS_SAVE )
-GAME( 1994, armwarar1, armwar, cps2, cps2_3p3b, cps_state, cps2, ROT0, "Capcom", "Armored Warriors (Asia 940920)", GAME_SUPPORTS_SAVE )
-GAME( 1994, xmcota, 0, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Euro 950331)", GAME_SUPPORTS_SAVE )
-GAME( 1994, xmcotar1, xmcota, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Euro 950105)", GAME_SUPPORTS_SAVE )
-GAME( 1994, xmcotau, xmcota, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men: Children of the Atom (USA 950105)", GAME_SUPPORTS_SAVE )
-GAME( 1994, xmcotah, xmcota, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Hispanic 950331)", GAME_SUPPORTS_SAVE )
-GAME( 1994, xmcotahr1, xmcota, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Hispanic 950105)", GAME_SUPPORTS_SAVE )
-GAME( 1994, xmcotaj, xmcota, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Japan 950105)", GAME_SUPPORTS_SAVE )
-GAME( 1994, xmcotaj1, xmcota, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Japan 941222)", GAME_SUPPORTS_SAVE )
-GAME( 1994, xmcotaj2, xmcota, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Japan 941219)", GAME_SUPPORTS_SAVE )
-GAME( 1994, xmcotaj3, xmcota, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Japan 941217)", GAME_SUPPORTS_SAVE )
-GAME( 1994, xmcotajr, xmcota, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Japan 941208 rent version)", GAME_SUPPORTS_SAVE )
-GAME( 1994, xmcotaa, xmcota, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Asia 950105)", GAME_SUPPORTS_SAVE )
-GAME( 1994, xmcotaar1, xmcota, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Asia 941217)", GAME_SUPPORTS_SAVE )
-GAME( 1995, nwarr, 0, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Night Warriors: Darkstalkers' Revenge (Euro 950316)", GAME_SUPPORTS_SAVE )
-GAME( 1995, nwarru, nwarr, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Night Warriors: Darkstalkers' Revenge (USA 950406)", GAME_SUPPORTS_SAVE )
-GAME( 1995, nwarrh, nwarr, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Night Warriors: Darkstalkers' Revenge (Hispanic 950403)", GAME_SUPPORTS_SAVE )
-GAME( 1995, nwarrb, nwarr, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Night Warriors: Darkstalkers' Revenge (Brazil 950403)", GAME_SUPPORTS_SAVE )
-GAME( 1995, nwarra, nwarr, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Night Warriors: Darkstalkers' Revenge (Asia 950302)", GAME_SUPPORTS_SAVE )
-GAME( 1995, vhuntj, nwarr, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Vampire Hunter: Darkstalkers' Revenge (Japan 950316)", GAME_SUPPORTS_SAVE )
-GAME( 1995, vhuntjr1s, nwarr, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Vampire Hunter: Darkstalkers' Revenge (Japan 950307 stop version)", GAME_SUPPORTS_SAVE )
-GAME( 1995, vhuntjr1, nwarr, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Vampire Hunter: Darkstalkers' Revenge (Japan 950307)", GAME_SUPPORTS_SAVE )
-GAME( 1995, vhuntjr2, nwarr, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Vampire Hunter: Darkstalkers' Revenge (Japan 950302)", GAME_SUPPORTS_SAVE )
-GAME( 1995, cybots, 0, cps2, cybots, cps_state, cps2, ROT0, "Capcom", "Cyberbots: Fullmetal Madness (Euro 950424)", GAME_SUPPORTS_SAVE )
-GAME( 1995, cybotsu, cybots, cps2, cybots, cps_state, cps2, ROT0, "Capcom", "Cyberbots: Fullmetal Madness (USA 950424)", GAME_SUPPORTS_SAVE )
-GAME( 1995, cybotsj, cybots, cps2, cybots, cps_state, cps2, ROT0, "Capcom", "Cyberbots: Fullmetal Madness (Japan 950420)", GAME_SUPPORTS_SAVE )
-GAME( 1995, sfa, 0, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Alpha: Warriors' Dreams (Euro 950727)", GAME_SUPPORTS_SAVE )
-GAME( 1995, sfar1, sfa, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Alpha: Warriors' Dreams (Euro 950718)", GAME_SUPPORTS_SAVE )
-GAME( 1995, sfar2, sfa, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Alpha: Warriors' Dreams (Euro 950627)", GAME_SUPPORTS_SAVE )
-GAME( 1995, sfar3, sfa, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Alpha: Warriors' Dreams (Euro 950605)", GAME_SUPPORTS_SAVE )
-GAME( 1995, sfau, sfa, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Alpha: Warriors' Dreams (USA 950627)", GAME_SUPPORTS_SAVE )
-GAME( 1995, sfza, sfa, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero (Asia 950627)", GAME_SUPPORTS_SAVE )
-GAME( 1995, sfzar1, sfa, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero (Asia 950605)", GAME_SUPPORTS_SAVE )
-GAME( 1995, sfzj, sfa, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero (Japan 950727)", GAME_SUPPORTS_SAVE )
-GAME( 1995, sfzjr1, sfa, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero (Japan 950627)", GAME_SUPPORTS_SAVE )
-GAME( 1995, sfzjr2, sfa, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero (Japan 950605)", GAME_SUPPORTS_SAVE )
-GAME( 1995, sfzh, sfa, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero (Hispanic 950718)", GAME_SUPPORTS_SAVE )
-GAME( 1995, sfzhr1, sfa, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero (Hispanic 950627)", GAME_SUPPORTS_SAVE )
-GAME( 1995, sfzb, sfa, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero (Brazil 951109)", GAME_SUPPORTS_SAVE )
-GAME( 1995, sfzbr1, sfa, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero (Brazil 950727)", GAME_SUPPORTS_SAVE )
-GAME( 1995, mmancp2u, megaman, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Mega Man: The Power Battle (CPS2, USA 951006, SAMPLE Version)", GAME_SUPPORTS_SAVE )
-GAME( 1995, mmancp2ur1, megaman, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Mega Man: The Power Battle (CPS2, USA 950926, SAMPLE Version)", GAME_SUPPORTS_SAVE )
-GAME( 1995, rmancp2j, megaman, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Rockman: The Power Battle (CPS2, Japan 950922)", GAME_SUPPORTS_SAVE )
-GAME( 1995, msh, 0, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Super Heroes (Euro 951024)", GAME_SUPPORTS_SAVE )
-GAME( 1995, mshu, msh, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Super Heroes (USA 951024)", GAME_SUPPORTS_SAVE )
-GAME( 1995, mshj, msh, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Super Heroes (Japan 951117)", GAME_SUPPORTS_SAVE )
-GAME( 1995, mshjr1, msh, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Super Heroes (Japan 951024)", GAME_SUPPORTS_SAVE )
-GAME( 1995, msha, msh, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Super Heroes (Asia 951024)", GAME_SUPPORTS_SAVE )
-GAME( 1995, mshh, msh, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Super Heroes (Hispanic 951117)", GAME_SUPPORTS_SAVE )
-GAME( 1995, mshb, msh, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Super Heroes (Brazil 951117)", GAME_SUPPORTS_SAVE )
-GAME( 1996, 19xx, 0, cps2, cps2_2p2b, cps_state, cps2, ROT270, "Capcom", "19XX: The War Against Destiny (USA 951207)", GAME_SUPPORTS_SAVE )
-GAME( 1996, 19xxa, 19xx, cps2, cps2_2p2b, cps_state, cps2, ROT270, "Capcom", "19XX: The War Against Destiny (Asia 960104)", GAME_SUPPORTS_SAVE )
-GAME( 1996, 19xxar1, 19xx, cps2, cps2_2p2b, cps_state, cps2, ROT270, "Capcom", "19XX: The War Against Destiny (Asia 951207)", GAME_SUPPORTS_SAVE )
-GAME( 1996, 19xxj, 19xx, cps2, cps2_2p2b, cps_state, cps2, ROT270, "Capcom", "19XX: The War Against Destiny (Japan 960104, yellow case)", GAME_SUPPORTS_SAVE )
-GAME( 1996, 19xxjr1, 19xx, cps2, cps2_2p2b, cps_state, cps2, ROT270, "Capcom", "19XX: The War Against Destiny (Japan 951225)", GAME_SUPPORTS_SAVE )
-GAME( 1996, 19xxjr2, 19xx, cps2, cps2_2p2b, cps_state, cps2, ROT270, "Capcom", "19XX: The War Against Destiny (Japan 951207)", GAME_SUPPORTS_SAVE )
-GAME( 1996, 19xxh, 19xx, cps2, cps2_2p2b, cps_state, cps2, ROT270, "Capcom", "19XX: The War Against Destiny (Hispanic 951218)", GAME_SUPPORTS_SAVE )
-GAME( 1996, 19xxb, 19xx, cps2, cps2_2p2b, cps_state, cps2, ROT270, "Capcom", "19XX: The War Against Destiny (Brazil 951218)", GAME_SUPPORTS_SAVE )
-GAME( 1996, ddsom, 0, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Euro 960619)", GAME_SUPPORTS_SAVE )
-GAME( 1996, ddsomr1, ddsom, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Euro 960223)", GAME_SUPPORTS_SAVE )
-GAME( 1996, ddsomr2, ddsom, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Euro 960209)", GAME_SUPPORTS_SAVE )
-GAME( 1996, ddsomr3, ddsom, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Euro 960208)", GAME_SUPPORTS_SAVE )
-GAME( 1996, ddsomu, ddsom, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (USA 960619)", GAME_SUPPORTS_SAVE )
-GAME( 1996, ddsomur1, ddsom, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (USA 960209)", GAME_SUPPORTS_SAVE )
-GAME( 1996, ddsomj, ddsom, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Japan 960619)", GAME_SUPPORTS_SAVE )
-GAME( 1996, ddsomjr1, ddsom, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Japan 960206)", GAME_SUPPORTS_SAVE )
-GAME( 1996, ddsoma, ddsom, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Asia 960619)", GAME_SUPPORTS_SAVE )
-GAME( 1996, ddsomar1, ddsom, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Asia 960208)", GAME_SUPPORTS_SAVE )
-GAME( 1996, ddsomh, ddsom, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Hispanic 960223)", GAME_SUPPORTS_SAVE )
-GAME( 1996, ddsomb, ddsom, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Brazil 960223)", GAME_SUPPORTS_SAVE )
-GAME( 1996, sfa2, 0, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Alpha 2 (Euro 960229)", GAME_SUPPORTS_SAVE )
-GAME( 1996, sfa2u, sfa2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Alpha 2 (USA 960430)", GAME_SUPPORTS_SAVE )
-GAME( 1996, sfa2ur1, sfa2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Alpha 2 (USA 960306)", GAME_SUPPORTS_SAVE )
-GAME( 1996, sfz2j, sfa2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero 2 (Japan 960430)", GAME_SUPPORTS_SAVE )
-GAME( 1996, sfz2jr1, sfa2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero 2 (Japan 960227)", GAME_SUPPORTS_SAVE )
-GAME( 1996, sfz2a, sfa2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero 2 (Asia 960227)", GAME_SUPPORTS_SAVE )
-GAME( 1996, sfz2b, sfa2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero 2 (Brazil 960531)", GAME_SUPPORTS_SAVE )
-GAME( 1996, sfz2br1, sfa2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero 2 (Brazil 960304)", GAME_SUPPORTS_SAVE )
-GAME( 1996, sfz2h, sfa2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero 2 (Hispanic 960304)", GAME_SUPPORTS_SAVE )
-GAME( 1996, sfz2n, sfa2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero 2 (Oceania 960229)", GAME_SUPPORTS_SAVE )
-GAME( 1996, sfz2al, 0, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero 2 Alpha (Asia 960826)", GAME_SUPPORTS_SAVE )
-GAME( 1996, sfz2alj, sfz2al, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero 2 Alpha (Japan 960805)", GAME_SUPPORTS_SAVE )
-GAME( 1996, sfz2alh, sfz2al, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero 2 Alpha (Hispanic 960813)", GAME_SUPPORTS_SAVE )
-GAME( 1996, sfz2alb, sfz2al, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero 2 Alpha (Brazil 960813)", GAME_SUPPORTS_SAVE )
-GAME( 1996, spf2t, 0, cps2, cps2_2p2b, cps_state, cps2, ROT0, "Capcom", "Super Puzzle Fighter II Turbo (Euro 960529)", GAME_SUPPORTS_SAVE )
-GAME( 1996, spf2tu, spf2t, cps2, cps2_2p2b, cps_state, cps2, ROT0, "Capcom", "Super Puzzle Fighter II Turbo (USA 960620)", GAME_SUPPORTS_SAVE )
-GAME( 1996, spf2xj, spf2t, cps2, cps2_2p2b, cps_state, cps2, ROT0, "Capcom", "Super Puzzle Fighter II X (Japan 960531)", GAME_SUPPORTS_SAVE )
-GAME( 1996, spf2ta, spf2t, cps2, cps2_2p2b, cps_state, cps2, ROT0, "Capcom", "Super Puzzle Fighter II Turbo (Asia 960529)", GAME_SUPPORTS_SAVE )
-GAME( 1996, spf2th, spf2t, cps2, cps2_2p2b, cps_state, cps2, ROT0, "Capcom", "Super Puzzle Fighter II Turbo (Hispanic 960531)", GAME_SUPPORTS_SAVE )
-GAME( 1996, megaman2, 0, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Mega Man 2: The Power Fighters (USA 960708)", GAME_SUPPORTS_SAVE )
-GAME( 1996, megaman2a, megaman2, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Mega Man 2: The Power Fighters (Asia 960708)", GAME_SUPPORTS_SAVE )
-GAME( 1996, rockman2j, megaman2, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Rockman 2: The Power Fighters (Japan 960708)", GAME_SUPPORTS_SAVE )
-GAME( 1996, megaman2h, megaman2, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Mega Man 2: The Power Fighters (Hispanic 960712)", GAME_SUPPORTS_SAVE )
-GAME( 1996, qndream, 0, cps2, qndream, cps_state, cps2, ROT0, "Capcom", "Quiz Nanairo Dreams: Nijiirochou no Kiseki (Japan 960826)", GAME_SUPPORTS_SAVE )
-GAME( 1996, xmvsf, 0, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Euro 961004)", GAME_SUPPORTS_SAVE )
-GAME( 1996, xmvsfr1, xmvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Euro 960910)", GAME_SUPPORTS_SAVE )
-GAME( 1996, xmvsfu, xmvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (USA 961023)", GAME_SUPPORTS_SAVE )
-GAME( 1996, xmvsfur1, xmvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (USA 961004)", GAME_SUPPORTS_SAVE )
-GAME( 1996, xmvsfur2, xmvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (USA 960910)", GAME_SUPPORTS_SAVE )
-GAME( 1996, xmvsfj, xmvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Japan 961004)", GAME_SUPPORTS_SAVE )
-GAME( 1996, xmvsfjr1, xmvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Japan 960910)", GAME_SUPPORTS_SAVE )
-GAME( 1996, xmvsfjr2, xmvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Japan 960909)", GAME_SUPPORTS_SAVE )
-GAME( 1996, xmvsfa, xmvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Asia 961023)", GAME_SUPPORTS_SAVE )
-GAME( 1996, xmvsfar1, xmvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Asia 961004)", GAME_SUPPORTS_SAVE )
-GAME( 1996, xmvsfar2, xmvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Asia 960919)", GAME_SUPPORTS_SAVE )
-GAME( 1996, xmvsfar3, xmvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Asia 960910)", GAME_SUPPORTS_SAVE )
-GAME( 1996, xmvsfh, xmvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Hispanic 961004)", GAME_SUPPORTS_SAVE )
-GAME( 1996, xmvsfb, xmvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Brazil 961023)", GAME_SUPPORTS_SAVE )
-GAME( 1997, batcir, 0, cps2, cps2_4p2b, cps_state, cps2, ROT0, "Capcom", "Battle Circuit (Euro 970319)", GAME_SUPPORTS_SAVE )
-GAME( 1997, batcira, batcir, cps2, cps2_4p2b, cps_state, cps2, ROT0, "Capcom", "Battle Circuit (Asia 970319)", GAME_SUPPORTS_SAVE )
-GAME( 1997, batcirj, batcir, cps2, cps2_4p2b, cps_state, cps2, ROT0, "Capcom", "Battle Circuit (Japan 970319)", GAME_SUPPORTS_SAVE )
-GAME( 1997, vsav, 0, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Vampire Savior: The Lord of Vampire (Euro 970519)", GAME_SUPPORTS_SAVE )
-GAME( 1997, vsavu, vsav, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Vampire Savior: The Lord of Vampire (USA 970519)", GAME_SUPPORTS_SAVE )
-GAME( 1997, vsavj, vsav, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Vampire Savior: The Lord of Vampire (Japan 970519)", GAME_SUPPORTS_SAVE )
-GAME( 1997, vsava, vsav, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Vampire Savior: The Lord of Vampire (Asia 970519)", GAME_SUPPORTS_SAVE )
-GAME( 1997, vsavh, vsav, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Vampire Savior: The Lord of Vampire (Hispanic 970519)", GAME_SUPPORTS_SAVE )
-GAME( 1997, mshvsf, 0, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (Euro 970625)", GAME_SUPPORTS_SAVE )
-GAME( 1997, mshvsfu, mshvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (USA 970827)", GAME_SUPPORTS_SAVE )
-GAME( 1997, mshvsfu1, mshvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (USA 970625)", GAME_SUPPORTS_SAVE )
-GAME( 1997, mshvsfj, mshvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (Japan 970707)", GAME_SUPPORTS_SAVE )
-GAME( 1997, mshvsfj1, mshvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (Japan 970702)", GAME_SUPPORTS_SAVE )
-GAME( 1997, mshvsfj2, mshvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (Japan 970625)", GAME_SUPPORTS_SAVE )
-GAME( 1997, mshvsfh, mshvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (Hispanic 970625)", GAME_SUPPORTS_SAVE )
-GAME( 1997, mshvsfa, mshvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (Asia 970625)", GAME_SUPPORTS_SAVE )
-GAME( 1997, mshvsfa1, mshvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (Asia 970620)", GAME_SUPPORTS_SAVE )
-GAME( 1997, mshvsfb, mshvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (Brazil 970827)", GAME_SUPPORTS_SAVE )
-GAME( 1997, mshvsfb1, mshvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (Brazil 970625)", GAME_SUPPORTS_SAVE )
-GAME( 1997, csclub, 0, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Capcom Sports Club (Euro 971017)", GAME_SUPPORTS_SAVE )
-GAME( 1997, csclub1, csclub, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Capcom Sports Club (Euro 970722)", GAME_SUPPORTS_SAVE )
-GAME( 1997, cscluba, csclub, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Capcom Sports Club (Asia 970722)", GAME_SUPPORTS_SAVE )
-GAME( 1997, csclubj, csclub, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Capcom Sports Club (Japan 970722)", GAME_SUPPORTS_SAVE )
-GAME( 1997, csclubjy, csclub, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Capcom Sports Club (Japan 970722, yellow case)", GAME_SUPPORTS_SAVE )
-GAME( 1997, csclubh, csclub, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Capcom Sports Club (Hispanic 970722)", GAME_SUPPORTS_SAVE )
-GAME( 1997, sgemf, 0, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Super Gem Fighter Mini Mix (USA 970904)", GAME_SUPPORTS_SAVE )
-GAME( 1997, pfghtj, sgemf, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Pocket Fighter (Japan 970904)", GAME_SUPPORTS_SAVE )
-GAME( 1997, sgemfa, sgemf, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Super Gem Fighter: Mini Mix (Asia 970904)", GAME_SUPPORTS_SAVE )
-GAME( 1997, sgemfh, sgemf, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Super Gem Fighter: Mini Mix (Hispanic 970904)", GAME_SUPPORTS_SAVE )
-GAME( 1997, vhunt2, 0, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Vampire Hunter 2: Darkstalkers Revenge (Japan 970929)", GAME_SUPPORTS_SAVE )
-GAME( 1997, vhunt2r1, vhunt2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Vampire Hunter 2: Darkstalkers Revenge (Japan 970913)", GAME_SUPPORTS_SAVE )
-GAME( 1997, vsav2, 0, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Vampire Savior 2: The Lord of Vampire (Japan 970913)", GAME_SUPPORTS_SAVE )
-GAME( 1998, mvsc, 0, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (Euro 980123)", GAME_SUPPORTS_SAVE )
-GAME( 1998, mvscr1, mvsc, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (Euro 980112)", GAME_SUPPORTS_SAVE )
-GAME( 1998, mvscu, mvsc, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (USA 980123)", GAME_SUPPORTS_SAVE )
-GAME( 1998, mvscur1, mvsc, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (USA 971222)", GAME_SUPPORTS_SAVE )
-GAME( 1998, mvscj, mvsc, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (Japan 980123)", GAME_SUPPORTS_SAVE )
-GAME( 1998, mvscjr1, mvsc, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (Japan 980112)", GAME_SUPPORTS_SAVE )
-GAME( 1998, mvscjsing, mvsc, cps2, cps2_2p6b, cps_state, singbrd, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (Japan 980123) (Single PCB)", GAME_SUPPORTS_SAVE )
-GAME( 1998, mvsca, mvsc, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (Asia 980123)", GAME_SUPPORTS_SAVE )
-GAME( 1998, mvscar1, mvsc, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (Asia 980112)", GAME_SUPPORTS_SAVE )
-GAME( 1998, mvsch, mvsc, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (Hispanic 980123)", GAME_SUPPORTS_SAVE )
-GAME( 1998, mvscb, mvsc, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (Brazil 980123)", GAME_SUPPORTS_SAVE )
-GAME( 1998, sfa3, 0, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Alpha 3 (Euro 980904)", GAME_SUPPORTS_SAVE )
-GAME( 1998, sfa3u, sfa3, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Alpha 3 (USA 980904)", GAME_SUPPORTS_SAVE )
-GAME( 1998, sfa3ur1, sfa3, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Alpha 3 (USA 980629)", GAME_SUPPORTS_SAVE )
-GAME( 1998, sfa3h, sfa3, cps2, cps2_2p6bt, cps_state,cps2, ROT0, "Capcom", "Street Fighter Alpha 3 (Hispanic 980904)", GAME_SUPPORTS_SAVE )
-GAME( 1998, sfa3hr1, sfa3, cps2, cps2_2p6bt, cps_state,cps2, ROT0, "Capcom", "Street Fighter Alpha 3 (Hispanic 980629)", GAME_SUPPORTS_SAVE )
-GAME( 1998, sfa3b, sfa3, cps2, cps2_2p6bt, cps_state,cps2, ROT0, "Capcom", "Street Fighter Alpha 3 (Brazil 980629)", GAME_SUPPORTS_SAVE )
-GAME( 1998, sfz3j, sfa3, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero 3 (Japan 980904)", GAME_SUPPORTS_SAVE )
-GAME( 1998, sfz3jr1, sfa3, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero 3 (Japan 980727)", GAME_SUPPORTS_SAVE )
-GAME( 1998, sfz3jr2, sfa3, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero 3 (Japan 980629)", GAME_SUPPORTS_SAVE )
-GAME( 1998, sfz3a, sfa3, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero 3 (Asia 980904)", GAME_SUPPORTS_SAVE )
-GAME( 1998, sfz3ar1, sfa3, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero 3 (Asia 980701)", GAME_SUPPORTS_SAVE )
-GAME( 1999, jyangoku, 0, cps2, cps2_1p2b, cps_state, cps2, ROT0, "Capcom", "Jyangokushi: Haoh no Saihai (Japan 990527)", GAME_SUPPORTS_SAVE )
-GAME( 2004, hsf2, 0, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Hyper Street Fighter II: The Anniversary Edition (USA 040202)", GAME_SUPPORTS_SAVE )
-GAME( 2004, hsf2a, hsf2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Hyper Street Fighter II: The Anniversary Edition (Asia 040202)", GAME_SUPPORTS_SAVE )
-GAME( 2004, hsf2j, hsf2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Hyper Street Fighter II: The Anniversary Edition (Japan 031222)", GAME_SUPPORTS_SAVE )
+GAME( 1993, ssf2, 0, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Super Street Fighter II: The New Challengers (World 931005)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, ssf2r1, ssf2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Super Street Fighter II: The New Challengers (World 930911)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, ssf2u, ssf2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Super Street Fighter II: The New Challengers (USA 930911)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, ssf2a, ssf2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Super Street Fighter II: The New Challengers (Asia 931005)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, ssf2ar1, ssf2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Super Street Fighter II: The New Challengers (Asia 930914)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, ssf2j, ssf2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Super Street Fighter II: The New Challengers (Japan 931005)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, ssf2jr1, ssf2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Super Street Fighter II: The New Challengers (Japan 930911)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, ssf2jr2, ssf2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Super Street Fighter II: The New Challengers (Japan 930910)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, ssf2h, ssf2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Super Street Fighter II: The New Challengers (Hispanic 930911)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, ssf2tb, ssf2, cps2, cps2_2p6b, cps_state, ssf2tb, ROT0, "Capcom", "Super Street Fighter II: The Tournament Battle (World 931119)", MACHINE_SUPPORTS_SAVE ) // works, but not in tournament mode
+GAME( 1993, ssf2tbr1, ssf2, cps2, cps2_2p6b, cps_state, ssf2tb, ROT0, "Capcom", "Super Street Fighter II: The Tournament Battle (World 930911)", MACHINE_SUPPORTS_SAVE ) // works, but not in tournament mode
+GAME( 1993, ssf2tbj, ssf2, cps2, cps2_2p6b, cps_state, ssf2tb, ROT0, "Capcom", "Super Street Fighter II: The Tournament Battle (Japan 930911)", MACHINE_SUPPORTS_SAVE ) // works, but not in tournament mode
+GAME( 1993, ssf2tbh, ssf2, cps2, cps2_2p6b, cps_state, ssf2tb, ROT0, "Capcom", "Super Street Fighter II: The Tournament Battle (Hispanic 931005)", MACHINE_SUPPORTS_SAVE ) // works, but not in tournament mode
+GAME( 1993, ecofghtr, 0, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Eco Fighters (World 931203)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, ecofghtru, ecofghtr, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Eco Fighters (USA 940215)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, ecofghtru1, ecofghtr, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Eco Fighters (USA 931203)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, uecology, ecofghtr, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Ultimate Ecology (Japan 931203)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, ecofghtra, ecofghtr, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Eco Fighters (Asia 931203)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, ecofghtrh, ecofghtr, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Eco Fighters (Hispanic 931203)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, ddtod, 0, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (Euro 940412)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, ddtodr1, ddtod, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (Euro 940113)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, ddtodu, ddtod, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (USA 940125)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, ddtodur1, ddtod, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (USA 940113)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, ddtodj, ddtod, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (Japan 940412)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, ddtodjr1, ddtod, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (Japan 940125)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, ddtodjr2, ddtod, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (Japan 940113)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, ddtoda, ddtod, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (Asia 940412)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, ddtodar1, ddtod, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (Asia 940113)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, ddtodh, ddtod, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (Hispanic 940412)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, ddtodhr1, ddtod, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (Hispanic 940125)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, ddtodhr2, ddtod, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Tower of Doom (Hispanic 940113)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, ssf2t, 0, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Super Street Fighter II Turbo (World 940223)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, ssf2ta, ssf2t, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Super Street Fighter II Turbo (Asia 940223)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, ssf2tu, ssf2t, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Super Street Fighter II Turbo (USA 940323)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, ssf2tur1, ssf2t, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Super Street Fighter II Turbo (USA 940223)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, ssf2xj, ssf2t, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Super Street Fighter II X: Grand Master Challenge (Japan 940223)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, ssf2xjr, ssf2t, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Super Street Fighter II X: Grand Master Challenge (Japan 940223 rent version)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, avsp, 0, cps2, cps2_3p3b, cps_state, cps2, ROT0, "Capcom", "Alien vs. Predator (Euro 940520)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, avspu, avsp, cps2, cps2_3p3b, cps_state, cps2, ROT0, "Capcom", "Alien vs. Predator (USA 940520)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, avspj, avsp, cps2, cps2_3p3b, cps_state, cps2, ROT0, "Capcom", "Alien vs. Predator (Japan 940520)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, avspa, avsp, cps2, cps2_3p3b, cps_state, cps2, ROT0, "Capcom", "Alien vs. Predator (Asia 940520)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, avsph, avsp, cps2, cps2_3p3b, cps_state, cps2, ROT0, "Capcom", "Alien vs. Predator (Hispanic 940520)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, dstlk, 0, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Darkstalkers: The Night Warriors (Euro 940705)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, dstlku, dstlk, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Darkstalkers: The Night Warriors (USA 940818)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, dstlkur1, dstlk, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Darkstalkers: The Night Warriors (USA 940705)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, dstlka, dstlk, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Darkstalkers: The Night Warriors (Asia 940705)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, dstlkh, dstlk, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Darkstalkers: The Night Warriors (Hispanic 940818)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, vampj, dstlk, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Vampire: The Night Warriors (Japan 940705)", MACHINE_SUPPORTS_SAVE ) // partial update set? Only rom 04 is "B" revision
+GAME( 1994, vampja, dstlk, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Vampire: The Night Warriors (Japan 940705 alt)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, vampjr1, dstlk, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Vampire: The Night Warriors (Japan 940630)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, ringdest, 0, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Ring of Destruction: Slammasters II (Euro 940902)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, ringdesta, ringdest, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Ring of Destruction: Slammasters II (Asia 940831)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, smbomb, ringdest, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Super Muscle Bomber: The International Blowout (Japan 940831)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, smbombr1, ringdest, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Super Muscle Bomber: The International Blowout (Japan 940808)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, armwar, 0, cps2, cps2_3p3b, cps_state, cps2, ROT0, "Capcom", "Armored Warriors (Euro 941024)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, armwarr1, armwar, cps2, cps2_3p3b, cps_state, cps2, ROT0, "Capcom", "Armored Warriors (Euro 941011)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, armwaru, armwar, cps2, cps2_3p3b, cps_state, cps2, ROT0, "Capcom", "Armored Warriors (USA 941024)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, armwaru1, armwar, cps2, cps2_3p3b, cps_state, cps2, ROT0, "Capcom", "Armored Warriors (USA 940920)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, pgear, armwar, cps2, cps2_3p3b, cps_state, cps2, ROT0, "Capcom", "Powered Gear: Strategic Variant Armor Equipment (Japan 941024)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, pgearr1, armwar, cps2, cps2_3p3b, cps_state, cps2, ROT0, "Capcom", "Powered Gear: Strategic Variant Armor Equipment (Japan 940916)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, armwara, armwar, cps2, cps2_3p3b, cps_state, cps2, ROT0, "Capcom", "Armored Warriors (Asia 941024)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, armwarar1, armwar, cps2, cps2_3p3b, cps_state, cps2, ROT0, "Capcom", "Armored Warriors (Asia 940920)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, xmcota, 0, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Euro 950331)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, xmcotar1, xmcota, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Euro 950105)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, xmcotau, xmcota, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men: Children of the Atom (USA 950105)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, xmcotah, xmcota, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Hispanic 950331)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, xmcotahr1, xmcota, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Hispanic 950105)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, xmcotaj, xmcota, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Japan 950105)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, xmcotaj1, xmcota, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Japan 941222)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, xmcotaj2, xmcota, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Japan 941219)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, xmcotaj3, xmcota, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Japan 941217)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, xmcotajr, xmcota, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Japan 941208 rent version)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, xmcotaa, xmcota, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Asia 950105)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, xmcotaar1, xmcota, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men: Children of the Atom (Asia 941217)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, nwarr, 0, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Night Warriors: Darkstalkers' Revenge (Euro 950316)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, nwarru, nwarr, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Night Warriors: Darkstalkers' Revenge (USA 950406)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, nwarrh, nwarr, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Night Warriors: Darkstalkers' Revenge (Hispanic 950403)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, nwarrb, nwarr, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Night Warriors: Darkstalkers' Revenge (Brazil 950403)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, nwarra, nwarr, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Night Warriors: Darkstalkers' Revenge (Asia 950302)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, vhuntj, nwarr, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Vampire Hunter: Darkstalkers' Revenge (Japan 950316)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, vhuntjr1s, nwarr, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Vampire Hunter: Darkstalkers' Revenge (Japan 950307 stop version)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, vhuntjr1, nwarr, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Vampire Hunter: Darkstalkers' Revenge (Japan 950307)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, vhuntjr2, nwarr, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Vampire Hunter: Darkstalkers' Revenge (Japan 950302)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, cybots, 0, cps2, cybots, cps_state, cps2, ROT0, "Capcom", "Cyberbots: Fullmetal Madness (Euro 950424)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, cybotsu, cybots, cps2, cybots, cps_state, cps2, ROT0, "Capcom", "Cyberbots: Fullmetal Madness (USA 950424)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, cybotsj, cybots, cps2, cybots, cps_state, cps2, ROT0, "Capcom", "Cyberbots: Fullmetal Madness (Japan 950420)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, sfa, 0, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Alpha: Warriors' Dreams (Euro 950727)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, sfar1, sfa, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Alpha: Warriors' Dreams (Euro 950718)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, sfar2, sfa, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Alpha: Warriors' Dreams (Euro 950627)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, sfar3, sfa, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Alpha: Warriors' Dreams (Euro 950605)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, sfau, sfa, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Alpha: Warriors' Dreams (USA 950627)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, sfza, sfa, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero (Asia 950627)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, sfzar1, sfa, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero (Asia 950605)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, sfzj, sfa, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero (Japan 950727)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, sfzjr1, sfa, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero (Japan 950627)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, sfzjr2, sfa, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero (Japan 950605)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, sfzh, sfa, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero (Hispanic 950718)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, sfzhr1, sfa, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero (Hispanic 950627)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, sfzb, sfa, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero (Brazil 951109)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, sfzbr1, sfa, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero (Brazil 950727)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, mmancp2u, megaman, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Mega Man: The Power Battle (CPS2, USA 951006, SAMPLE Version)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, mmancp2ur1, megaman, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Mega Man: The Power Battle (CPS2, USA 950926, SAMPLE Version)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, rmancp2j, megaman, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Rockman: The Power Battle (CPS2, Japan 950922)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, msh, 0, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Super Heroes (Euro 951024)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, mshu, msh, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Super Heroes (USA 951024)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, mshj, msh, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Super Heroes (Japan 951117)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, mshjr1, msh, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Super Heroes (Japan 951024)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, msha, msh, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Super Heroes (Asia 951024)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, mshh, msh, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Super Heroes (Hispanic 951117)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, mshb, msh, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Super Heroes (Brazil 951117)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, 19xx, 0, cps2, cps2_2p2b, cps_state, cps2, ROT270, "Capcom", "19XX: The War Against Destiny (USA 951207)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, 19xxa, 19xx, cps2, cps2_2p2b, cps_state, cps2, ROT270, "Capcom", "19XX: The War Against Destiny (Asia 960104)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, 19xxar1, 19xx, cps2, cps2_2p2b, cps_state, cps2, ROT270, "Capcom", "19XX: The War Against Destiny (Asia 951207)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, 19xxj, 19xx, cps2, cps2_2p2b, cps_state, cps2, ROT270, "Capcom", "19XX: The War Against Destiny (Japan 960104, yellow case)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, 19xxjr1, 19xx, cps2, cps2_2p2b, cps_state, cps2, ROT270, "Capcom", "19XX: The War Against Destiny (Japan 951225)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, 19xxjr2, 19xx, cps2, cps2_2p2b, cps_state, cps2, ROT270, "Capcom", "19XX: The War Against Destiny (Japan 951207)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, 19xxh, 19xx, cps2, cps2_2p2b, cps_state, cps2, ROT270, "Capcom", "19XX: The War Against Destiny (Hispanic 951218)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, 19xxb, 19xx, cps2, cps2_2p2b, cps_state, cps2, ROT270, "Capcom", "19XX: The War Against Destiny (Brazil 951218)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, ddsom, 0, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Euro 960619)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, ddsomr1, ddsom, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Euro 960223)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, ddsomr2, ddsom, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Euro 960209)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, ddsomr3, ddsom, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Euro 960208)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, ddsomu, ddsom, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (USA 960619)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, ddsomur1, ddsom, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (USA 960209)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, ddsomj, ddsom, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Japan 960619)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, ddsomjr1, ddsom, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Japan 960206)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, ddsoma, ddsom, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Asia 960619)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, ddsomar1, ddsom, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Asia 960208)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, ddsomh, ddsom, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Hispanic 960223)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, ddsomb, ddsom, cps2, cps2_4p4b, cps_state, cps2, ROT0, "Capcom", "Dungeons & Dragons: Shadow over Mystara (Brazil 960223)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, sfa2, 0, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Alpha 2 (Euro 960229)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, sfa2u, sfa2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Alpha 2 (USA 960430)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, sfa2ur1, sfa2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Alpha 2 (USA 960306)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, sfz2j, sfa2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero 2 (Japan 960430)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, sfz2jr1, sfa2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero 2 (Japan 960227)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, sfz2a, sfa2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero 2 (Asia 960227)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, sfz2b, sfa2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero 2 (Brazil 960531)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, sfz2br1, sfa2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero 2 (Brazil 960304)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, sfz2h, sfa2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero 2 (Hispanic 960304)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, sfz2n, sfa2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero 2 (Oceania 960229)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, sfz2al, 0, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero 2 Alpha (Asia 960826)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, sfz2alj, sfz2al, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero 2 Alpha (Japan 960805)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, sfz2alh, sfz2al, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero 2 Alpha (Hispanic 960813)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, sfz2alb, sfz2al, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero 2 Alpha (Brazil 960813)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, spf2t, 0, cps2, cps2_2p2b, cps_state, cps2, ROT0, "Capcom", "Super Puzzle Fighter II Turbo (Euro 960529)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, spf2tu, spf2t, cps2, cps2_2p2b, cps_state, cps2, ROT0, "Capcom", "Super Puzzle Fighter II Turbo (USA 960620)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, spf2xj, spf2t, cps2, cps2_2p2b, cps_state, cps2, ROT0, "Capcom", "Super Puzzle Fighter II X (Japan 960531)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, spf2ta, spf2t, cps2, cps2_2p2b, cps_state, cps2, ROT0, "Capcom", "Super Puzzle Fighter II Turbo (Asia 960529)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, spf2th, spf2t, cps2, cps2_2p2b, cps_state, cps2, ROT0, "Capcom", "Super Puzzle Fighter II Turbo (Hispanic 960531)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, megaman2, 0, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Mega Man 2: The Power Fighters (USA 960708)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, megaman2a, megaman2, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Mega Man 2: The Power Fighters (Asia 960708)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, rockman2j, megaman2, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Rockman 2: The Power Fighters (Japan 960708)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, megaman2h, megaman2, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Mega Man 2: The Power Fighters (Hispanic 960712)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, qndream, 0, cps2, qndream, cps_state, cps2, ROT0, "Capcom", "Quiz Nanairo Dreams: Nijiirochou no Kiseki (Japan 960826)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, xmvsf, 0, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Euro 961004)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, xmvsfr1, xmvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Euro 960910)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, xmvsfu, xmvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (USA 961023)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, xmvsfur1, xmvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (USA 961004)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, xmvsfur2, xmvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (USA 960910)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, xmvsfj, xmvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Japan 961004)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, xmvsfjr1, xmvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Japan 960910)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, xmvsfjr2, xmvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Japan 960909)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, xmvsfa, xmvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Asia 961023)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, xmvsfar1, xmvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Asia 961004)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, xmvsfar2, xmvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Asia 960919)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, xmvsfar3, xmvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Asia 960910)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, xmvsfh, xmvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Hispanic 961004)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, xmvsfb, xmvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "X-Men Vs. Street Fighter (Brazil 961023)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, batcir, 0, cps2, cps2_4p2b, cps_state, cps2, ROT0, "Capcom", "Battle Circuit (Euro 970319)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, batcira, batcir, cps2, cps2_4p2b, cps_state, cps2, ROT0, "Capcom", "Battle Circuit (Asia 970319)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, batcirj, batcir, cps2, cps2_4p2b, cps_state, cps2, ROT0, "Capcom", "Battle Circuit (Japan 970319)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, vsav, 0, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Vampire Savior: The Lord of Vampire (Euro 970519)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, vsavu, vsav, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Vampire Savior: The Lord of Vampire (USA 970519)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, vsavj, vsav, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Vampire Savior: The Lord of Vampire (Japan 970519)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, vsava, vsav, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Vampire Savior: The Lord of Vampire (Asia 970519)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, vsavh, vsav, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Vampire Savior: The Lord of Vampire (Hispanic 970519)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, mshvsf, 0, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (Euro 970625)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, mshvsfu, mshvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (USA 970827)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, mshvsfu1, mshvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (USA 970625)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, mshvsfj, mshvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (Japan 970707)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, mshvsfj1, mshvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (Japan 970702)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, mshvsfj2, mshvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (Japan 970625)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, mshvsfh, mshvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (Hispanic 970625)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, mshvsfa, mshvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (Asia 970625)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, mshvsfa1, mshvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (Asia 970620)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, mshvsfb, mshvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (Brazil 970827)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, mshvsfb1, mshvsf, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (Brazil 970625)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, csclub, 0, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Capcom Sports Club (Euro 971017)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, csclub1, csclub, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Capcom Sports Club (Euro 970722)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, cscluba, csclub, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Capcom Sports Club (Asia 970722)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, csclubj, csclub, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Capcom Sports Club (Japan 970722)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, csclubjy, csclub, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Capcom Sports Club (Japan 970722, yellow case)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, csclubh, csclub, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Capcom Sports Club (Hispanic 970722)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, sgemf, 0, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Super Gem Fighter Mini Mix (USA 970904)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, pfghtj, sgemf, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Pocket Fighter (Japan 970904)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, sgemfa, sgemf, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Super Gem Fighter: Mini Mix (Asia 970904)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, sgemfh, sgemf, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Capcom", "Super Gem Fighter: Mini Mix (Hispanic 970904)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, vhunt2, 0, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Vampire Hunter 2: Darkstalkers Revenge (Japan 970929)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, vhunt2r1, vhunt2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Vampire Hunter 2: Darkstalkers Revenge (Japan 970913)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, vsav2, 0, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Vampire Savior 2: The Lord of Vampire (Japan 970913)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, mvsc, 0, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (Euro 980123)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, mvscr1, mvsc, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (Euro 980112)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, mvscu, mvsc, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (USA 980123)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, mvscur1, mvsc, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (USA 971222)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, mvscj, mvsc, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (Japan 980123)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, mvscjr1, mvsc, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (Japan 980112)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, mvscjsing, mvsc, cps2, cps2_2p6b, cps_state, singbrd, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (Japan 980123) (Single PCB)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, mvsca, mvsc, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (Asia 980123)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, mvscar1, mvsc, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (Asia 980112)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, mvsch, mvsc, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (Hispanic 980123)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, mvscb, mvsc, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Marvel Vs. Capcom: Clash of Super Heroes (Brazil 980123)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, sfa3, 0, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Alpha 3 (Euro 980904)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, sfa3u, sfa3, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Alpha 3 (USA 980904)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, sfa3ur1, sfa3, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Alpha 3 (USA 980629)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, sfa3us, sfa3, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Alpha 3 (USA 980616, SAMPLE Version)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, sfa3h, sfa3, cps2, cps2_2p6bt, cps_state,cps2, ROT0, "Capcom", "Street Fighter Alpha 3 (Hispanic 980904)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, sfa3hr1, sfa3, cps2, cps2_2p6bt, cps_state,cps2, ROT0, "Capcom", "Street Fighter Alpha 3 (Hispanic 980629)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, sfa3b, sfa3, cps2, cps2_2p6bt, cps_state,cps2, ROT0, "Capcom", "Street Fighter Alpha 3 (Brazil 980629)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, sfz3j, sfa3, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero 3 (Japan 980904)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, sfz3jr1, sfa3, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero 3 (Japan 980727)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, sfz3jr2, sfa3, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero 3 (Japan 980629)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, sfz3a, sfa3, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero 3 (Asia 980904)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, sfz3ar1, sfa3, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Street Fighter Zero 3 (Asia 980701)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, jyangoku, 0, cps2, cps2_1p2b, cps_state, cps2, ROT0, "Capcom", "Jyangokushi: Haoh no Saihai (Japan 990527)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, hsf2, 0, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Hyper Street Fighter II: The Anniversary Edition (USA 040202)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, hsf2a, hsf2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Hyper Street Fighter II: The Anniversary Edition (Asia 040202)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, hsf2j, hsf2, cps2, cps2_2p6b, cps_state, cps2, ROT0, "Capcom", "Hyper Street Fighter II: The Anniversary Edition (Japan 031222)", MACHINE_SUPPORTS_SAVE )
/* Games released on CPS-2 hardware by Takumi */
-GAME( 1999, gigawing, 0, cps2, cps2_2p2b, cps_state, cps2, ROT0, "Takumi (Capcom license)", "Giga Wing (USA 990222)", GAME_SUPPORTS_SAVE )
-GAME( 1999, gigawingj, gigawing, cps2, cps2_2p2b, cps_state, cps2, ROT0, "Takumi (Capcom license)", "Giga Wing (Japan 990223)", GAME_SUPPORTS_SAVE )
-GAME( 1999, gigawinga, gigawing, cps2, cps2_2p2b, cps_state, cps2, ROT0, "Takumi (Capcom license)", "Giga Wing (Asia 990222)", GAME_SUPPORTS_SAVE )
-GAME( 1999, gigawingh, gigawing, cps2, cps2_2p2b, cps_state, cps2, ROT0, "Takumi (Capcom license)", "Giga Wing (Hispanic 990222)", GAME_SUPPORTS_SAVE )
-GAME( 1999, gigawingb, gigawing, cps2, cps2_2p2b, cps_state, cps2, ROT0, "Takumi (Capcom license)", "Giga Wing (Brazil 990222)", GAME_SUPPORTS_SAVE )
-GAME( 2000, mmatrix, 0, cps2, cps2_2p1b, cps_state, cps2, ROT0, "Takumi (Capcom license)", "Mars Matrix: Hyper Solid Shooting (USA 000412)", GAME_SUPPORTS_SAVE )
-GAME( 2000, mmatrixj, mmatrix, cps2, cps2_2p1b, cps_state, cps2, ROT0, "Takumi (Capcom license)", "Mars Matrix: Hyper Solid Shooting (Japan 000412)", GAME_SUPPORTS_SAVE )
+GAME( 1999, gigawing, 0, cps2, cps2_2p2b, cps_state, cps2, ROT0, "Takumi (Capcom license)", "Giga Wing (USA 990222)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, gigawingj, gigawing, cps2, cps2_2p2b, cps_state, cps2, ROT0, "Takumi (Capcom license)", "Giga Wing (Japan 990223)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, gigawinga, gigawing, cps2, cps2_2p2b, cps_state, cps2, ROT0, "Takumi (Capcom license)", "Giga Wing (Asia 990222)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, gigawingh, gigawing, cps2, cps2_2p2b, cps_state, cps2, ROT0, "Takumi (Capcom license)", "Giga Wing (Hispanic 990222)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, gigawingb, gigawing, cps2, cps2_2p2b, cps_state, cps2, ROT0, "Takumi (Capcom license)", "Giga Wing (Brazil 990222)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mmatrix, 0, cps2, cps2_2p1b, cps_state, cps2, ROT0, "Takumi (Capcom license)", "Mars Matrix: Hyper Solid Shooting (USA 000412)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mmatrixj, mmatrix, cps2, cps2_2p1b, cps_state, cps2, ROT0, "Takumi (Capcom license)", "Mars Matrix: Hyper Solid Shooting (Japan 000412)", MACHINE_SUPPORTS_SAVE )
/* Games released on CPS-2 hardware by Mitchell */
-GAME( 2000, mpang, 0, cps2, cps2_2p1b, cps_state, cps2, ROT0, "Mitchell (Capcom license)", "Mighty! Pang (Euro 001010)", GAME_SUPPORTS_SAVE )
-GAME( 2000, mpangr1, mpang, cps2, cps2_2p1b, cps_state, cps2, ROT0, "Mitchell (Capcom license)", "Mighty! Pang (Euro 000925)", GAME_SUPPORTS_SAVE )
-GAME( 2000, mpangu, mpang, cps2, cps2_2p1b, cps_state, cps2, ROT0, "Mitchell (Capcom license)", "Mighty! Pang (USA 001010)", GAME_SUPPORTS_SAVE )
-GAME( 2000, mpangj, mpang, cps2, cps2_2p1b, cps_state, cps2, ROT0, "Mitchell (Capcom license)", "Mighty! Pang (Japan 001011)", GAME_SUPPORTS_SAVE )
-GAME( 2001, pzloop2, 0, cps2, pzloop2, cps_state, pzloop2, ROT0, "Mitchell (Capcom license)", "Puzz Loop 2 (Euro 010302)", GAME_SUPPORTS_SAVE )
-GAME( 2001, pzloop2j, pzloop2, cps2, pzloop2, cps_state, pzloop2, ROT0, "Mitchell (Capcom license)", "Puzz Loop 2 (Japan 010226)", GAME_SUPPORTS_SAVE )
-GAME( 2001, pzloop2jr1, pzloop2, cps2, pzloop2, cps_state, pzloop2, ROT0, "Mitchell (Capcom license)", "Puzz Loop 2 (Japan 010205)", GAME_SUPPORTS_SAVE )
-GAME( 2001, choko, 0, cps2, choko, cps_state, cps2, ROT0, "Mitchell (Capcom license)", "Janpai Puzzle Choukou (Japan 010820)", GAME_SUPPORTS_SAVE )
+GAME( 2000, mpang, 0, cps2, cps2_2p1b, cps_state, cps2, ROT0, "Mitchell (Capcom license)", "Mighty! Pang (Euro 001010)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mpangr1, mpang, cps2, cps2_2p1b, cps_state, cps2, ROT0, "Mitchell (Capcom license)", "Mighty! Pang (Euro 000925)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mpangu, mpang, cps2, cps2_2p1b, cps_state, cps2, ROT0, "Mitchell (Capcom license)", "Mighty! Pang (USA 001010)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mpangj, mpang, cps2, cps2_2p1b, cps_state, cps2, ROT0, "Mitchell (Capcom license)", "Mighty! Pang (Japan 001011)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pzloop2, 0, cps2, pzloop2, cps_state, pzloop2, ROT0, "Mitchell (Capcom license)", "Puzz Loop 2 (Euro 010302)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pzloop2j, pzloop2, cps2, pzloop2, cps_state, pzloop2, ROT0, "Mitchell (Capcom license)", "Puzz Loop 2 (Japan 010226)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, pzloop2jr1, pzloop2, cps2, pzloop2, cps_state, pzloop2, ROT0, "Mitchell (Capcom license)", "Puzz Loop 2 (Japan 010205)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, choko, 0, cps2, choko, cps_state, cps2, ROT0, "Mitchell (Capcom license)", "Janpai Puzzle Choukou (Japan 010820)", MACHINE_SUPPORTS_SAVE )
/* Games released on CPS-2 hardware by Eighting/Raizing */
-GAME( 2000, dimahoo, 0, cps2, cps2_2p3b, cps_state, cps2, ROT270, "Eighting / Raizing (Capcom license)", "Dimahoo (Euro 000121)", GAME_SUPPORTS_SAVE )
-GAME( 2000, dimahoou, dimahoo, cps2, cps2_2p3b, cps_state, cps2, ROT270, "Eighting / Raizing (Capcom license)", "Dimahoo (USA 000121)", GAME_SUPPORTS_SAVE )
-GAME( 2000, gmahou, dimahoo, cps2, cps2_2p3b, cps_state, cps2, ROT270, "Eighting / Raizing (Capcom license)", "Great Mahou Daisakusen (Japan 000121)", GAME_SUPPORTS_SAVE )
-GAME( 2000, 1944, 0, cps2, cps2_2p2b, cps_state, cps2, ROT0, "Eighting / Raizing (Capcom license)", "1944: The Loop Master (USA 000620)", GAME_SUPPORTS_SAVE )
-GAME( 2000, 1944j, 1944, cps2, cps2_2p2b, cps_state, cps2, ROT0, "Eighting / Raizing (Capcom license)", "1944: The Loop Master (Japan 000620)", GAME_SUPPORTS_SAVE )
+GAME( 2000, dimahoo, 0, cps2, cps2_2p3b, cps_state, cps2, ROT270, "Eighting / Raizing (Capcom license)", "Dimahoo (Euro 000121)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, dimahoou, dimahoo, cps2, cps2_2p3b, cps_state, cps2, ROT270, "Eighting / Raizing (Capcom license)", "Dimahoo (USA 000121)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, gmahou, dimahoo, cps2, cps2_2p3b, cps_state, cps2, ROT270, "Eighting / Raizing (Capcom license)", "Great Mahou Daisakusen (Japan 000121)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, 1944, 0, cps2, cps2_2p2b, cps_state, cps2, ROT0, "Eighting / Raizing (Capcom license)", "1944: The Loop Master (USA 000620)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, 1944j, 1944, cps2, cps2_2p2b, cps_state, cps2, ROT0, "Eighting / Raizing (Capcom license)", "1944: The Loop Master (Japan 000620)", MACHINE_SUPPORTS_SAVE )
/* Games released on CPS-2 hardware by Cave */
-GAME( 2001, progear, 0, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Cave (Capcom license)", "Progear (USA 010117)", GAME_SUPPORTS_SAVE )
-GAME( 2001, progearj, progear, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Cave (Capcom license)", "Progear no Arashi (Japan 010117)", GAME_SUPPORTS_SAVE )
-GAME( 2001, progeara, progear, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Cave (Capcom license)", "Progear (Asia 010117)", GAME_SUPPORTS_SAVE )
+GAME( 2001, progear, 0, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Cave (Capcom license)", "Progear (USA 010117)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, progearj, progear, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Cave (Capcom license)", "Progear no Arashi (Japan 010117)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, progeara, progear, cps2, cps2_2p3b, cps_state, cps2, ROT0, "Cave (Capcom license)", "Progear (Asia 010117)", MACHINE_SUPPORTS_SAVE )
/*
------------------------
@@ -10931,48 +10966,48 @@ ROM_START( sfz2jd )
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)", GAME_SUPPORTS_SAVE )
-GAME( 1993, ecofghtrd,ecofghtr, dead_cps2, cps2_2p3b, cps_state, cps2, ROT0, "bootleg", "Eco Fighters (World 931203 Phoenix Edition) (bootleg)", GAME_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)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1994, armwar1d, armwar, dead_cps2, cps2_3p3b, cps_state, cps2, ROT0, "bootleg", "Armored Warriors (Euro 941011 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1994, avspd, avsp, dead_cps2, cps2_3p3b, cps_state, cps2, ROT0, "bootleg", "Alien vs. Predator (Euro 940520 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1994, dstlku1d, dstlk, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "bootleg", "Darkstalkers: The Night Warriors (USA 940705 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1994, ringdstd, ringdest, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "bootleg", "Ring of Destruction: Slammasters II (Euro 940902 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1994, ssf2tad, ssf2t, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "bootleg", "Super Street Fighter II Turbo (Asia 940223 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1994, ssf2xjd, ssf2t, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "bootleg", "Super Street Fighter II X: Grand Master Challenge (Japan 940223 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1994, xmcotar1d,xmcota, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "bootleg", "X-Men: Children of the Atom (Euro 950105 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1995, mshud, msh, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "bootleg", "Marvel Super Heroes (US 951024 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1995, cybotsud, cybots, dead_cps2, cybots, cps_state, cps2, ROT0, "bootleg", "Cyberbots: Fullmetal Madness (USA 950424 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1995, cybotsjd, cybots, dead_cps2, cybots, cps_state, cps2, ROT0, "bootleg", "Cyberbots: Fullmetal Madness (Japan 950424) (decrypted bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1995, nwarrud, nwarr, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "bootleg", "Night Warriors: Darkstalkers' Revenge (USA 950406 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1995, sfad, sfa, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "bootleg", "Street Fighter Alpha: Warriors' Dreams (Euro 950727 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1996, 19xxd, 19xx, dead_cps2, cps2_2p2b, cps_state, cps2, ROT270, "bootleg", "19XX: The War Against Destiny (USA 951207 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1996, ddsomud, ddsom, dead_cps2, cps2_4p4b, cps_state, cps2, ROT0, "bootleg", "Dungeons & Dragons: Shadow over Mystara (USA 960619 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1996, gigaman2, megaman2, gigaman2, cps2_2p3b, cps_state, gigaman2,ROT0, "bootleg", "Giga Man 2: The Power Fighters (bootleg of Mega Man 2: The Power Fighters)", GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND | GAME_SUPPORTS_SAVE ) // different layer offsets and sound system
-GAME( 1996, megamn2d, megaman2, dead_cps2, cps2_2p3b, cps_state, cps2, ROT0, "bootleg", "Mega Man 2: The Power Fighters (USA 960708 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1996, sfz2ad, sfa2, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "bootleg", "Street Fighter Zero 2 (Asia 960227 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1996, sfz2jd, sfa2, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "bootleg", "Street Fighter Zero 2 (Japan 960227 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1996, spf2td, spf2t, dead_cps2, cps2_2p2b, cps_state, cps2, ROT0, "bootleg", "Super Puzzle Fighter II Turbo (USA 960620 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1996, spf2xjd, spf2t, dead_cps2, cps2_2p2b, cps_state, cps2, ROT0, "bootleg", "Super Puzzle Fighter II X (Japan 960531 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1996, sfz2ald, sfz2al, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "bootleg", "Street Fighter Zero 2 Alpha (Asia 960826 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1996, xmvsfu1d, xmvsf, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "bootleg", "X-Men Vs. Street Fighter (USA 961004 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1997, batcird, batcir, dead_cps2, cps2_4p2b, cps_state, cps2, ROT0, "bootleg", "Battle Circuit (Euro 970319 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1997, csclub1d, csclub, dead_cps2, cps2_2p3b, cps_state, cps2, ROT0, "bootleg", "Capcom Sports Club (Euro 970722 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1997, mshvsfu1d,mshvsf, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "bootleg", "Marvel Super Heroes Vs. Street Fighter (USA 970625 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1997, sgemfd, sgemf, dead_cps2, cps2_2p3b, cps_state, cps2, ROT0, "bootleg", "Super Gem Fighter Mini Mix (USA 970904 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1997, vsavd, vsav, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "bootleg", "Vampire Savior: The Lord of Vampire (Euro 970519 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1997, vhunt2d, vhunt2, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "bootleg", "Vampire Hunter 2: Darkstalkers Revenge (Japan 970913 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1997, vsav2d, vsav2, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "bootleg", "Vampire Savior 2: The Lord of Vampire (Japan 970913 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1998, mvscud, mvsc, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "bootleg", "Marvel Vs. Capcom: Clash of Super Heroes (USA 980123 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1998, sfa3ud, sfa3, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "bootleg", "Street Fighter Alpha 3 (USA 980904 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1998, sfz3jr2d, sfa3, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "bootleg", "Street Fighter Zero 3 (Japan 980629 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1999, gigawingd, gigawing,dead_cps2, cps2_2p2b, cps_state, cps2, ROT0, "bootleg", "Giga Wing (USA 990222 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1999, gigawingjd,gigawing,dead_cps2, cps2_2p2b, cps_state, cps2, ROT0, "bootleg", "Giga Wing (Japan 990223 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 2000, 1944d, 1944, dead_cps2, cps2_2p2b, cps_state, cps2, ROT0, "bootleg", "1944: The Loop Master (USA 000620 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 2000, dimahoud, dimahoo, dead_cps2, cps2_2p3b, cps_state, cps2, ROT270, "bootleg", "Dimahoo (USA 000121 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 2000, mmatrixd, mmatrix, dead_cps2, cps2_2p1b, cps_state, cps2, ROT0, "bootleg", "Mars Matrix: Hyper Solid Shooting (USA 000412 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 2001, progearud, progear, dead_cps2, cps2_2p3b, cps_state, cps2, ROT0, "bootleg", "Progear (USA 010117 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 2001, progearjd, progear, dead_cps2, cps2_2p3b, cps_state, cps2, ROT0, "bootleg", "Progear no Arashi (Japan 010117 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 2001, progearjbl,progear, dead_cps2, cps2_2p3b, cps_state, cps2, ROT0, "bootleg", "Progear no Arashi (Japan 010117) (decrypted bootleg)", GAME_SUPPORTS_SAVE ) // not an actual phoenix set, but works as one
-GAME( 2004, hsf2d, hsf2, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "bootleg", "Hyper Street Fighter II: The Anniversary Edition (Asia 040202 Phoenix Edition) (bootleg)", GAME_SUPPORTS_SAVE )
+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, cps2_2p3b, cps_state, cps2, 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 )
+GAME( 1994, avspd, avsp, dead_cps2, cps2_3p3b, cps_state, cps2, ROT0, "bootleg", "Alien vs. Predator (Euro 940520 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, dstlku1d, dstlk, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "bootleg", "Darkstalkers: The Night Warriors (USA 940705 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, ringdstd, ringdest, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "bootleg", "Ring of Destruction: Slammasters II (Euro 940902 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, ssf2tad, ssf2t, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "bootleg", "Super Street Fighter II Turbo (Asia 940223 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, ssf2xjd, ssf2t, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "bootleg", "Super Street Fighter II X: Grand Master Challenge (Japan 940223 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, xmcotar1d,xmcota, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "bootleg", "X-Men: Children of the Atom (Euro 950105 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, mshud, msh, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "bootleg", "Marvel Super Heroes (US 951024 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, cybotsud, cybots, dead_cps2, cybots, cps_state, cps2, ROT0, "bootleg", "Cyberbots: Fullmetal Madness (USA 950424 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, cybotsjd, cybots, dead_cps2, cybots, cps_state, cps2, ROT0, "bootleg", "Cyberbots: Fullmetal Madness (Japan 950424) (decrypted bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, nwarrud, nwarr, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "bootleg", "Night Warriors: Darkstalkers' Revenge (USA 950406 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, sfad, sfa, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "bootleg", "Street Fighter Alpha: Warriors' Dreams (Euro 950727 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, 19xxd, 19xx, dead_cps2, cps2_2p2b, cps_state, cps2, ROT270, "bootleg", "19XX: The War Against Destiny (USA 951207 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, ddsomud, ddsom, dead_cps2, cps2_4p4b, cps_state, cps2, ROT0, "bootleg", "Dungeons & Dragons: Shadow over Mystara (USA 960619 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, gigaman2, megaman2, gigaman2, cps2_2p3b, cps_state, gigaman2,ROT0, "bootleg", "Giga Man 2: The Power Fighters (bootleg of Mega Man 2: The Power Fighters)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) // different layer offsets and sound system
+GAME( 1996, megamn2d, megaman2, dead_cps2, cps2_2p3b, cps_state, cps2, ROT0, "bootleg", "Mega Man 2: The Power Fighters (USA 960708 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, sfz2ad, sfa2, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "bootleg", "Street Fighter Zero 2 (Asia 960227 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, sfz2jd, sfa2, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "bootleg", "Street Fighter Zero 2 (Japan 960227 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, spf2td, spf2t, dead_cps2, cps2_2p2b, cps_state, cps2, ROT0, "bootleg", "Super Puzzle Fighter II Turbo (USA 960620 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, spf2xjd, spf2t, dead_cps2, cps2_2p2b, cps_state, cps2, ROT0, "bootleg", "Super Puzzle Fighter II X (Japan 960531 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, sfz2ald, sfz2al, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "bootleg", "Street Fighter Zero 2 Alpha (Asia 960826 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, xmvsfu1d, xmvsf, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "bootleg", "X-Men Vs. Street Fighter (USA 961004 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, batcird, batcir, dead_cps2, cps2_4p2b, cps_state, cps2, ROT0, "bootleg", "Battle Circuit (Euro 970319 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, csclub1d, csclub, dead_cps2, cps2_2p3b, cps_state, cps2, ROT0, "bootleg", "Capcom Sports Club (Euro 970722 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, mshvsfu1d,mshvsf, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "bootleg", "Marvel Super Heroes Vs. Street Fighter (USA 970625 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, sgemfd, sgemf, dead_cps2, cps2_2p3b, cps_state, cps2, ROT0, "bootleg", "Super Gem Fighter Mini Mix (USA 970904 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, vsavd, vsav, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "bootleg", "Vampire Savior: The Lord of Vampire (Euro 970519 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, vhunt2d, vhunt2, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "bootleg", "Vampire Hunter 2: Darkstalkers Revenge (Japan 970913 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, vsav2d, vsav2, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "bootleg", "Vampire Savior 2: The Lord of Vampire (Japan 970913 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, mvscud, mvsc, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "bootleg", "Marvel Vs. Capcom: Clash of Super Heroes (USA 980123 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, sfa3ud, sfa3, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "bootleg", "Street Fighter Alpha 3 (USA 980904 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, sfz3jr2d, sfa3, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "bootleg", "Street Fighter Zero 3 (Japan 980629 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, gigawingd, gigawing,dead_cps2, cps2_2p2b, cps_state, cps2, ROT0, "bootleg", "Giga Wing (USA 990222 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, gigawingjd,gigawing,dead_cps2, cps2_2p2b, cps_state, cps2, ROT0, "bootleg", "Giga Wing (Japan 990223 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, 1944d, 1944, dead_cps2, cps2_2p2b, cps_state, cps2, ROT0, "bootleg", "1944: The Loop Master (USA 000620 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, dimahoud, dimahoo, dead_cps2, cps2_2p3b, cps_state, cps2, ROT270, "bootleg", "Dimahoo (USA 000121 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, mmatrixd, mmatrix, dead_cps2, cps2_2p1b, cps_state, cps2, ROT0, "bootleg", "Mars Matrix: Hyper Solid Shooting (USA 000412 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, progearud, progear, dead_cps2, cps2_2p3b, cps_state, cps2, ROT0, "bootleg", "Progear (USA 010117 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, progearjd, progear, dead_cps2, cps2_2p3b, cps_state, cps2, ROT0, "bootleg", "Progear no Arashi (Japan 010117 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, progearjbl,progear, dead_cps2, cps2_2p3b, cps_state, cps2, ROT0, "bootleg", "Progear no Arashi (Japan 010117) (decrypted bootleg)", MACHINE_SUPPORTS_SAVE ) // not an actual phoenix set, but works as one
+GAME( 2004, hsf2d, hsf2, dead_cps2, cps2_2p6b, cps_state, cps2, ROT0, "bootleg", "Hyper Street Fighter II: The Anniversary Edition (Asia 040202 Phoenix Edition) (bootleg)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/cps3.c b/src/mame/drivers/cps3.c
index d9b3c214524..0ceb465acb9 100644
--- a/src/mame/drivers/cps3.c
+++ b/src/mame/drivers/cps3.c
@@ -1011,7 +1011,7 @@ void cps3_state::cps3_draw_tilemapsprite_line(int tmnum, int drawline, bitmap_rg
UINT32 cps3_state::screen_update_cps3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
int y,x, count;
- attoseconds_t period = screen.frame_period().attoseconds;
+ attoseconds_t period = screen.frame_period().attoseconds();
rectangle visarea = screen.visible_area();
int bg_drawn[4] = { 0, 0, 0, 0 };
@@ -3838,12 +3838,12 @@ ROM_END
/* Red Earth / Warzard */
// 961121
-GAME( 1996, redearth, 0, redearth, cps3_re, cps3_state, redearth, ROT0, "Capcom", "Red Earth (Euro 961121)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, warzard, redearth, redearth, cps3_re, cps3_state, redearth, ROT0, "Capcom", "Warzard (Japan 961121)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1996, redearth, 0, redearth, cps3_re, cps3_state, redearth, ROT0, "Capcom", "Red Earth (Euro 961121)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1996, warzard, redearth, redearth, cps3_re, cps3_state, redearth, ROT0, "Capcom", "Warzard (Japan 961121)", MACHINE_IMPERFECT_GRAPHICS )
// 961023
-GAME( 1996, redearthr1,redearth, redearth, cps3_re, cps3_state, redearth, ROT0, "Capcom", "Red Earth (Euro 961023)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, warzardr1, redearth, redearth, cps3_re, cps3_state, redearth, ROT0, "Capcom", "Warzard (Japan 961023)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1996, redearthr1,redearth, redearth, cps3_re, cps3_state, redearth, ROT0, "Capcom", "Red Earth (Euro 961023)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1996, warzardr1, redearth, redearth, cps3_re, cps3_state, redearth, ROT0, "Capcom", "Warzard (Japan 961023)", MACHINE_IMPERFECT_GRAPHICS )
/* Street Fighter III: New Generation */
@@ -3854,13 +3854,13 @@ GAME( 1996, warzardr1, redearth, redearth, cps3_re, cps3_state, redearth, ROT0
// not dumped
// 970204
-GAME( 1997, sfiii, 0, sfiii, cps3, cps3_state, sfiii, ROT0, "Capcom", "Street Fighter III: New Generation (Euro 970204)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, sfiiiu, sfiii, sfiii, cps3, cps3_state, sfiii, ROT0, "Capcom", "Street Fighter III: New Generation (USA 970204)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, sfiiia, sfiii, sfiii, cps3, cps3_state, sfiii, ROT0, "Capcom", "Street Fighter III: New Generation (Asia 970204)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, sfiiij, sfiii, sfiii, cps3, cps3_state, sfiii, ROT0, "Capcom", "Street Fighter III: New Generation (Japan 970204)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, sfiiih, sfiii, sfiii, cps3, cps3_state, sfiii, ROT0, "Capcom", "Street Fighter III: New Generation (Hispanic 970204)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, sfiiin, sfiii, sfiii, cps3, cps3_state, sfiii, ROT0, "Capcom", "Street Fighter III: New Generation (Asia 970204, NO CD, bios set 1)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, sfiiina, sfiii, sfiii, cps3, cps3_state, sfiii, ROT0, "Capcom", "Street Fighter III: New Generation (Asia 970204, NO CD, bios set 2)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1997, sfiii, 0, sfiii, cps3, cps3_state, sfiii, ROT0, "Capcom", "Street Fighter III: New Generation (Euro 970204)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1997, sfiiiu, sfiii, sfiii, cps3, cps3_state, sfiii, ROT0, "Capcom", "Street Fighter III: New Generation (USA 970204)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1997, sfiiia, sfiii, sfiii, cps3, cps3_state, sfiii, ROT0, "Capcom", "Street Fighter III: New Generation (Asia 970204)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1997, sfiiij, sfiii, sfiii, cps3, cps3_state, sfiii, ROT0, "Capcom", "Street Fighter III: New Generation (Japan 970204)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1997, sfiiih, sfiii, sfiii, cps3, cps3_state, sfiii, ROT0, "Capcom", "Street Fighter III: New Generation (Hispanic 970204)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1997, sfiiin, sfiii, sfiii, cps3, cps3_state, sfiii, ROT0, "Capcom", "Street Fighter III: New Generation (Asia 970204, NO CD, bios set 1)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1997, sfiiina, sfiii, sfiii, cps3, cps3_state, sfiii, ROT0, "Capcom", "Street Fighter III: New Generation (Asia 970204, NO CD, bios set 2)", MACHINE_IMPERFECT_GRAPHICS )
/* Street Fighter III 2nd Impact: Giant Attack */
@@ -3868,58 +3868,58 @@ GAME( 1997, sfiiina, sfiii, sfiii, cps3, cps3_state, sfiii, ROT0
// not dumped
// 970930
-GAMEL(1997, sfiii2, 0, sfiii2, cps3, cps3_state, sfiii2, ROT0, "Capcom", "Street Fighter III 2nd Impact: Giant Attack (USA 970930)", GAME_IMPERFECT_GRAPHICS, layout_sfiii2 ) // layout is for widescreen support
-GAMEL(1997, sfiii2j, sfiii2, sfiii2, cps3, cps3_state, sfiii2, ROT0, "Capcom", "Street Fighter III 2nd Impact: Giant Attack (Japan 970930)", GAME_IMPERFECT_GRAPHICS, layout_sfiii2 )
-GAMEL(1997, sfiii2n, sfiii2, sfiii2, cps3, cps3_state, sfiii2, ROT0, "Capcom", "Street Fighter III 2nd Impact: Giant Attack (Asia 970930, NO CD)", GAME_IMPERFECT_GRAPHICS, layout_sfiii2 )
+GAMEL(1997, sfiii2, 0, sfiii2, cps3, cps3_state, sfiii2, ROT0, "Capcom", "Street Fighter III 2nd Impact: Giant Attack (USA 970930)", MACHINE_IMPERFECT_GRAPHICS, layout_sfiii2 ) // layout is for widescreen support
+GAMEL(1997, sfiii2j, sfiii2, sfiii2, cps3, cps3_state, sfiii2, ROT0, "Capcom", "Street Fighter III 2nd Impact: Giant Attack (Japan 970930)", MACHINE_IMPERFECT_GRAPHICS, layout_sfiii2 )
+GAMEL(1997, sfiii2n, sfiii2, sfiii2, cps3, cps3_state, sfiii2, ROT0, "Capcom", "Street Fighter III 2nd Impact: Giant Attack (Asia 970930, NO CD)", MACHINE_IMPERFECT_GRAPHICS, layout_sfiii2 )
/* JoJo's Venture / JoJo no Kimyou na Bouken */
// 990128
-GAME( 1998, jojo, 0, jojo, cps3_jojo, cps3_state, jojo, ROT0, "Capcom", "JoJo's Venture (USA 990128)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1998, jojoj, jojo, jojo, cps3_jojo, cps3_state, jojo, ROT0, "Capcom", "JoJo no Kimyou na Bouken (Japan 990128)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1998, jojon, jojo, jojo, cps3_jojo, cps3_state, jojo, ROT0, "Capcom", "JoJo's Venture (Asia 990128, NO CD)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1998, jojo, 0, jojo, cps3_jojo, cps3_state, jojo, ROT0, "Capcom", "JoJo's Venture (USA 990128)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1998, jojoj, jojo, jojo, cps3_jojo, cps3_state, jojo, ROT0, "Capcom", "JoJo no Kimyou na Bouken (Japan 990128)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1998, jojon, jojo, jojo, cps3_jojo, cps3_state, jojo, ROT0, "Capcom", "JoJo's Venture (Asia 990128, NO CD)", MACHINE_IMPERFECT_GRAPHICS )
// 990108
-GAME( 1998, jojor1, jojo, jojo, cps3_jojo, cps3_state, jojo, ROT0, "Capcom", "JoJo's Venture (USA 990108)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1998, jojojr1, jojo, jojo, cps3_jojo, cps3_state, jojo, ROT0, "Capcom", "JoJo no Kimyou na Bouken (Japan 990108)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1998, jojonr1, jojo, jojo, cps3_jojo, cps3_state, jojo, ROT0, "Capcom", "JoJo's Venture (Asia 990108, NO CD)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1998, jojor1, jojo, jojo, cps3_jojo, cps3_state, jojo, ROT0, "Capcom", "JoJo's Venture (USA 990108)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1998, jojojr1, jojo, jojo, cps3_jojo, cps3_state, jojo, ROT0, "Capcom", "JoJo no Kimyou na Bouken (Japan 990108)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1998, jojonr1, jojo, jojo, cps3_jojo, cps3_state, jojo, ROT0, "Capcom", "JoJo's Venture (Asia 990108, NO CD)", MACHINE_IMPERFECT_GRAPHICS )
// 981202
-GAME( 1998, jojor2, jojo, jojo, cps3_jojo, cps3_state, jojo, ROT0, "Capcom", "JoJo's Venture (USA 981202)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1998, jojojr2, jojo, jojo, cps3_jojo, cps3_state, jojo, ROT0, "Capcom", "JoJo no Kimyou na Bouken (Japan 981202)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1998, jojonr2, jojo, jojo, cps3_jojo, cps3_state, jojo, ROT0, "Capcom", "JoJo's Venture (Asia 981202, NO CD)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1998, jojor2, jojo, jojo, cps3_jojo, cps3_state, jojo, ROT0, "Capcom", "JoJo's Venture (USA 981202)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1998, jojojr2, jojo, jojo, cps3_jojo, cps3_state, jojo, ROT0, "Capcom", "JoJo no Kimyou na Bouken (Japan 981202)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1998, jojonr2, jojo, jojo, cps3_jojo, cps3_state, jojo, ROT0, "Capcom", "JoJo's Venture (Asia 981202, NO CD)", MACHINE_IMPERFECT_GRAPHICS )
/* Street Fighter III 3rd Strike: Fight for the Future */
// 990608
-GAME( 1999, sfiii3, 0, sfiii3, cps3, cps3_state, sfiii3, ROT0, "Capcom", "Street Fighter III 3rd Strike: Fight for the Future (Euro 990608)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1999, sfiii3u, sfiii3, sfiii3, cps3, cps3_state, sfiii3, ROT0, "Capcom", "Street Fighter III 3rd Strike: Fight for the Future (USA 990608)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1999, sfiii3n, sfiii3, sfiii3, cps3, cps3_state, sfiii3, ROT0, "Capcom", "Street Fighter III 3rd Strike: Fight for the Future (Japan 990608, NO CD)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1999, sfiii3, 0, sfiii3, cps3, cps3_state, sfiii3, ROT0, "Capcom", "Street Fighter III 3rd Strike: Fight for the Future (Euro 990608)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1999, sfiii3u, sfiii3, sfiii3, cps3, cps3_state, sfiii3, ROT0, "Capcom", "Street Fighter III 3rd Strike: Fight for the Future (USA 990608)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1999, sfiii3n, sfiii3, sfiii3, cps3, cps3_state, sfiii3, ROT0, "Capcom", "Street Fighter III 3rd Strike: Fight for the Future (Japan 990608, NO CD)", MACHINE_IMPERFECT_GRAPHICS )
// 990512
-GAME( 1999, sfiii3r1, sfiii3, sfiii3, cps3, cps3_state, sfiii3, ROT0, "Capcom", "Street Fighter III 3rd Strike: Fight for the Future (Euro 990512)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1999, sfiii3ur1, sfiii3, sfiii3, cps3, cps3_state, sfiii3, ROT0, "Capcom", "Street Fighter III 3rd Strike: Fight for the Future (USA 990512)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1999, sfiii3nr1, sfiii3, sfiii3, cps3, cps3_state, sfiii3, ROT0, "Capcom", "Street Fighter III 3rd Strike: Fight for the Future (Japan 990512, NO CD)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1999, sfiii3r1, sfiii3, sfiii3, cps3, cps3_state, sfiii3, ROT0, "Capcom", "Street Fighter III 3rd Strike: Fight for the Future (Euro 990512)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1999, sfiii3ur1, sfiii3, sfiii3, cps3, cps3_state, sfiii3, ROT0, "Capcom", "Street Fighter III 3rd Strike: Fight for the Future (USA 990512)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1999, sfiii3nr1, sfiii3, sfiii3, cps3, cps3_state, sfiii3, ROT0, "Capcom", "Street Fighter III 3rd Strike: Fight for the Future (Japan 990512, NO CD)", MACHINE_IMPERFECT_GRAPHICS )
/* JoJo's Bizarre Adventure / JoJo no Kimyou na Bouken: Mirai e no Isan */
// 990927
-GAME( 1999, jojoba, 0, jojoba, cps3_jojo, cps3_state, jojoba, ROT0, "Capcom", "JoJo no Kimyou na Bouken: Mirai e no Isan (Japan 990927)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1999, jojoban, jojoba, jojoba, cps3_jojo, cps3_state, jojoba, ROT0, "Capcom", "JoJo no Kimyou na Bouken: Mirai e no Isan (Japan 990927, NO CD)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1999, jojobane, jojoba, jojoba, cps3_jojo, cps3_state, jojoba, ROT0, "Capcom", "JoJo's Bizarre Adventure (Euro 990927, NO CD)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1999, jojoba, 0, jojoba, cps3_jojo, cps3_state, jojoba, ROT0, "Capcom", "JoJo no Kimyou na Bouken: Mirai e no Isan (Japan 990927)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1999, jojoban, jojoba, jojoba, cps3_jojo, cps3_state, jojoba, ROT0, "Capcom", "JoJo no Kimyou na Bouken: Mirai e no Isan (Japan 990927, NO CD)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1999, jojobane, jojoba, jojoba, cps3_jojo, cps3_state, jojoba, ROT0, "Capcom", "JoJo's Bizarre Adventure (Euro 990927, NO CD)", MACHINE_IMPERFECT_GRAPHICS )
// 990913
-GAME( 1999, jojobar1, jojoba, jojoba, cps3_jojo, cps3_state, jojoba, ROT0, "Capcom", "JoJo no Kimyou na Bouken: Mirai e no Isan (Japan 990913)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1999, jojobanr1, jojoba, jojoba, cps3_jojo, cps3_state, jojoba, ROT0, "Capcom", "JoJo no Kimyou na Bouken: Mirai e no Isan (Japan 990913, NO CD)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1999, jojobaner1,jojoba, jojoba, cps3_jojo, cps3_state, jojoba, ROT0, "Capcom", "JoJo's Bizarre Adventure (Euro 990913, NO CD)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1999, jojobar1, jojoba, jojoba, cps3_jojo, cps3_state, jojoba, ROT0, "Capcom", "JoJo no Kimyou na Bouken: Mirai e no Isan (Japan 990913)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1999, jojobanr1, jojoba, jojoba, cps3_jojo, cps3_state, jojoba, ROT0, "Capcom", "JoJo no Kimyou na Bouken: Mirai e no Isan (Japan 990913, NO CD)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1999, jojobaner1,jojoba, jojoba, cps3_jojo, cps3_state, jojoba, ROT0, "Capcom", "JoJo's Bizarre Adventure (Euro 990913, NO CD)", MACHINE_IMPERFECT_GRAPHICS )
// bootlegs, hold START1 during bootup to change games
-GAME( 1999, cps3boot, 0, sfiii3, cps3_jojo, cps3_state, cps3boot, ROT0, "bootleg", "CPS3 Multi-game bootleg for HD6417095 type SH2", GAME_IMPERFECT_GRAPHICS )
-GAME( 1999, cps3boota, cps3boot, sfiii3, cps3_jojo, cps3_state, sfiii2, ROT0, "bootleg", "CPS3 Multi-game bootleg for dead security cart", GAME_IMPERFECT_GRAPHICS )
+GAME( 1999, cps3boot, 0, sfiii3, cps3_jojo, cps3_state, cps3boot, ROT0, "bootleg", "CPS3 Multi-game bootleg for HD6417095 type SH2", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1999, cps3boota, cps3boot, sfiii3, cps3_jojo, cps3_state, sfiii2, ROT0, "bootleg", "CPS3 Multi-game bootleg for dead security cart", 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, cps3booto, cps3boot, sfiii3, cps3_jojo, cps3_state, cps3boot, ROT0, "bootleg", "CPS3 Multi-game bootleg for HD6417095 type SH2 (older) (New Generation, 3rd Strike, JoJo's Venture, JoJo's Bizarre Adventure and Red Earth only)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1999, cps3booto, cps3boot, sfiii3, cps3_jojo, cps3_state, cps3boot, ROT0, "bootleg", "CPS3 Multi-game bootleg for HD6417095 type SH2 (older) (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, cps3bootoa, cps3boot, sfiii3, cps3_jojo, cps3_state, sfiii2, ROT0, "bootleg", "CPS3 Multi-game bootleg for dead security cart (older) (New Generation, 2nd Impact and 3rd Strike only)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1999, cps3bootoa, cps3boot, sfiii3, cps3_jojo, cps3_state, sfiii2, ROT0, "bootleg", "CPS3 Multi-game bootleg for dead security cart (older) (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)", GAME_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)", GAME_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/mess/drivers/craft.c b/src/mame/drivers/craft.c
index 65234c728d7..c741caca2e2 100644
--- a/src/mess/drivers/craft.c
+++ b/src/mame/drivers/craft.c
@@ -1,10 +1,12 @@
// license:BSD-3-Clause
// copyright-holders:Ryan Holtz
-/*\
-* * Linus Akesson's "Craft"
-* *
-* * Driver by MooglyGuy
-\*/
+/**********************************************************************
+
+ "Craft" demo platform by Linus Akesson
+
+ driver by Ryan Holtz
+
+ **********************************************************************/
#include "emu.h"
#include "cpu/avr8/avr8.h"
@@ -266,4 +268,4 @@ ROM_START( craft )
ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
-CONS(2008, craft, 0, 0, craft, craft, craft_state, craft, "Linus Akesson", "Craft", GAME_NOT_WORKING)
+CONS(2008, craft, 0, 0, craft, craft, craft_state, craft, "Linus Akesson", "Craft", MACHINE_NOT_WORKING)
diff --git a/src/mame/drivers/crbaloon.c b/src/mame/drivers/crbaloon.c
index 618dd94e89b..1e52406c0e7 100644
--- a/src/mame/drivers/crbaloon.c
+++ b/src/mame/drivers/crbaloon.c
@@ -434,5 +434,5 @@ ROM_END
*
*************************************/
-GAME( 1980, crbaloon, 0, crbaloon, crbaloon, driver_device, 0, ROT90, "Taito Corporation", "Crazy Balloon (set 1)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, crbaloon2,crbaloon, crbaloon, crbaloon, driver_device, 0, ROT90, "Taito Corporation", "Crazy Balloon (set 2)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/crgolf.c b/src/mame/drivers/crgolf.c
index c5b71fe49f8..060bc6da67e 100644
--- a/src/mame/drivers/crgolf.c
+++ b/src/mame/drivers/crgolf.c
@@ -598,9 +598,9 @@ DRIVER_INIT_MEMBER(crgolf_state,crgolfhi)
*
*************************************/
-GAME( 1984, crgolf, 0, crgolf, crgolf, driver_device, 0, ROT0, "Nasco Japan", "Crowns Golf (834-5419-04)", GAME_SUPPORTS_SAVE )
-GAME( 1984, crgolfa, crgolf, crgolf, crgolf, driver_device, 0, ROT0, "Nasco Japan", "Crowns Golf (834-5419-03)", GAME_SUPPORTS_SAVE )
-GAME( 1984, crgolfb, crgolf, crgolf, crgolf, driver_device, 0, ROT0, "Nasco Japan", "Crowns Golf (set 3)", GAME_SUPPORTS_SAVE )
-GAME( 1984, crgolfc, crgolf, crgolf, crgolf, driver_device, 0, ROT0, "Nasco Japan", "Champion Golf", GAME_SUPPORTS_SAVE )
-GAME( 1984, crgolfbt, crgolf, crgolf, crgolf, driver_device, 0, ROT0, "bootleg", "Champion Golf (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1985, crgolfhi, 0, crgolfhi, crgolf, crgolf_state, crgolfhi, ROT0, "Nasco Japan", "Crowns Golf in Hawaii" , GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/crimfght.c b/src/mame/drivers/crimfght.c
index c9530fa4354..febda7d58ff 100644
--- a/src/mame/drivers/crimfght.c
+++ b/src/mame/drivers/crimfght.c
@@ -16,16 +16,10 @@
#include "emu.h"
#include "cpu/z80/z80.h"
#include "cpu/m6809/konami.h" /* for the callback and the firq irq definition */
-
#include "sound/2151intf.h"
#include "includes/konamipt.h"
#include "includes/crimfght.h"
-INTERRUPT_GEN_MEMBER(crimfght_state::crimfght_interrupt)
-{
- if (m_k051960->k051960_is_irq_enabled())
- device.execute().set_input_line(KONAMI_IRQ_LINE, HOLD_LINE);
-}
WRITE8_MEMBER(crimfght_state::crimfght_coin_w)
{
@@ -33,23 +27,6 @@ WRITE8_MEMBER(crimfght_state::crimfght_coin_w)
coin_counter_w(machine(), 1, data & 2);
}
-WRITE8_MEMBER(crimfght_state::crimfght_sh_irqtrigger_w)
-{
- soundlatch_byte_w(space, offset, data);
- m_audiocpu->set_input_line(0, HOLD_LINE);
-}
-
-WRITE8_MEMBER(crimfght_state::crimfght_snd_bankswitch_w)
-{
- /* b1: bank for channel A */
- /* b0: bank for channel B */
-
- int bank_A = BIT(data, 1);
- int bank_B = BIT(data, 0);
-
- m_k007232->set_bank(bank_A, bank_B );
-}
-
READ8_MEMBER(crimfght_state::k052109_051960_r)
{
if (m_k052109->get_rmrd_line() == CLEAR_LINE)
@@ -75,11 +52,35 @@ WRITE8_MEMBER(crimfght_state::k052109_051960_w)
m_k051960->k051960_w(space, offset - 0x3c00, data);
}
-/********************************************/
+WRITE8_MEMBER(crimfght_state::sound_w)
+{
+ // writing the latch asserts the irq line
+ soundlatch_write(0, data);
+ m_audiocpu->set_input_line(INPUT_LINE_IRQ0, ASSERT_LINE);
+}
+
+IRQ_CALLBACK_MEMBER( crimfght_state::audiocpu_irq_ack )
+{
+ // irq ack cycle clears irq via flip-flop u86
+ m_audiocpu->set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE);
+ return 0xff;
+}
+
+WRITE8_MEMBER(crimfght_state::ym2151_ct_w)
+{
+ // ne output from the 007232 is connected to a ls399 which
+ // has inputs connected to the ct1 and ct2 outputs from
+ // the ym2151 used to select the bank
+
+ int bank_a = BIT(data, 1);
+ int bank_b = BIT(data, 0);
+
+ m_k007232->set_bank(bank_a, bank_b);
+}
static ADDRESS_MAP_START( crimfght_map, AS_PROGRAM, 8, crimfght_state )
- AM_RANGE(0x0000, 0x03ff) AM_RAMBANK("bank1") /* banked RAM */
- AM_RANGE(0x0400, 0x1fff) AM_RAM /* RAM */
+ AM_RANGE(0x0000, 0x03ff) AM_DEVICE("bank0000", address_map_bank_device, amap8)
+ AM_RANGE(0x0400, 0x1fff) AM_RAM
AM_RANGE(0x3f80, 0x3f80) AM_READ_PORT("SYSTEM")
AM_RANGE(0x3f81, 0x3f81) AM_READ_PORT("P1")
AM_RANGE(0x3f82, 0x3f82) AM_READ_PORT("P2")
@@ -88,19 +89,25 @@ static ADDRESS_MAP_START( crimfght_map, AS_PROGRAM, 8, crimfght_state )
AM_RANGE(0x3f85, 0x3f85) AM_READ_PORT("P3")
AM_RANGE(0x3f86, 0x3f86) AM_READ_PORT("P4")
AM_RANGE(0x3f87, 0x3f87) AM_READ_PORT("DSW1")
- AM_RANGE(0x3f88, 0x3f88) AM_READ(watchdog_reset_r) AM_WRITE(crimfght_coin_w) /* watchdog reset */
- AM_RANGE(0x3f8c, 0x3f8c) AM_WRITE(crimfght_sh_irqtrigger_w) /* cause interrupt on audio CPU? */
+ AM_RANGE(0x3f88, 0x3f88) AM_MIRROR(0x03) AM_READ(watchdog_reset_r) AM_WRITE(crimfght_coin_w) // 051550
+ AM_RANGE(0x3f8c, 0x3f8c) AM_MIRROR(0x03) AM_WRITE(sound_w)
AM_RANGE(0x2000, 0x5fff) AM_READWRITE(k052109_051960_r, k052109_051960_w) /* video RAM + sprite RAM */
- AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("bank2") /* banked ROM */
- AM_RANGE(0x8000, 0xffff) AM_ROM /* ROM */
+ AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("rombank") /* banked ROM */
+ AM_RANGE(0x8000, 0xffff) AM_ROM AM_REGION("maincpu", 0x18000)
ADDRESS_MAP_END
+static ADDRESS_MAP_START( bank0000_map, AS_PROGRAM, 8, crimfght_state )
+ AM_RANGE(0x0000, 0x03ff) AM_RAM
+ AM_RANGE(0x0400, 0x07ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
+ADDRESS_MAP_END
+
+// full memory map derived from schematics
static ADDRESS_MAP_START( crimfght_sound_map, AS_PROGRAM, 8, crimfght_state )
- AM_RANGE(0x0000, 0x7fff) AM_ROM /* ROM 821l01.h4 */
- AM_RANGE(0x8000, 0x87ff) AM_RAM /* RAM */
- AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write) /* YM2151 */
- AM_RANGE(0xc000, 0xc000) AM_READ(soundlatch_byte_r) /* soundlatch_byte_r */
- AM_RANGE(0xe000, 0xe00d) AM_DEVREADWRITE("k007232", k007232_device, read, write) /* 007232 registers */
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0x87ff) AM_MIRROR(0x1800) AM_RAM
+ AM_RANGE(0xa000, 0xa001) AM_MIRROR(0x1ffe) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write)
+ AM_RANGE(0xc000, 0xc000) AM_MIRROR(0x1fff) AM_READ(soundlatch_byte_r)
+ AM_RANGE(0xe000, 0xe00f) AM_MIRROR(0x1ff0) AM_DEVREADWRITE("k007232", k007232_device, read, write)
ADDRESS_MAP_END
/***************************************************************************
@@ -111,48 +118,64 @@ ADDRESS_MAP_END
static INPUT_PORTS_START( crimfght )
PORT_START("DSW1")
- PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:1,2,3,4")
- PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ) )
- PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ) )
- PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) )
- PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ) )
- PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ) )
- PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ) )
- PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ) )
- PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ) )
- PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) )
- PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) )
- PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) )
- PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ) )
- PORT_DIPSETTING( 0x00, "1 Coin/99 Credits" )
- PORT_DIPUNUSED_DIPLOC( 0xf0, 0xf0, "SW1:5,6,7,8" ) /* Manual says these are unused */
+ PORT_DIPNAME(0x0f, 0x0f, DEF_STR( Coin_A )) PORT_DIPLOCATION("SW1:1,2,3,4")
+ PORT_DIPSETTING( 0x02, DEF_STR( 4C_1C ))
+ PORT_DIPSETTING( 0x05, DEF_STR( 3C_1C ))
+ PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ))
+ PORT_DIPSETTING( 0x04, DEF_STR( 3C_2C ))
+ PORT_DIPSETTING( 0x01, DEF_STR( 4C_3C ))
+ PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ))
+ PORT_DIPSETTING( 0x03, DEF_STR( 3C_4C ))
+ PORT_DIPSETTING( 0x07, DEF_STR( 2C_3C ))
+ PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ))
+ PORT_DIPSETTING( 0x06, DEF_STR( 2C_5C ))
+ PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ))
+ PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ))
+ PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ))
+ PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ))
+ PORT_DIPSETTING( 0x09, DEF_STR( 1C_7C ))
+ PORT_DIPSETTING( 0x00, "Void")
+ PORT_DIPNAME(0xf0, 0x00, "Coin B (unused)") PORT_DIPLOCATION("SW1:5,6,7,8")
+ PORT_DIPSETTING( 0x20, DEF_STR( 4C_1C ))
+ PORT_DIPSETTING( 0x50, DEF_STR( 3C_1C ))
+ PORT_DIPSETTING( 0x80, DEF_STR( 2C_1C ))
+ PORT_DIPSETTING( 0x40, DEF_STR( 3C_2C ))
+ PORT_DIPSETTING( 0x10, DEF_STR( 4C_3C ))
+ PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ))
+ PORT_DIPSETTING( 0x30, DEF_STR( 3C_4C ))
+ PORT_DIPSETTING( 0x70, DEF_STR( 2C_3C ))
+ PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ))
+ PORT_DIPSETTING( 0x60, DEF_STR( 2C_5C ))
+ PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ))
+ PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ))
+ PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ))
+ PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ))
+ PORT_DIPSETTING( 0x90, DEF_STR( 1C_7C ))
+ PORT_DIPSETTING( 0x00, "Void")
PORT_START("DSW2")
- PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW2:1" ) /* Manual says these are unused */
- PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW2:2" ) /* Manual says these are unused */
- PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SW2:3" ) /* Manual says these are unused */
- PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW2:4" ) /* Manual says these are unused */
- PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW2:5" ) /* Manual says these are unused */
- PORT_DIPNAME( 0x60, 0x40, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:6,7")
- PORT_DIPSETTING( 0x60, DEF_STR( Easy ) )
- PORT_DIPSETTING( 0x40, DEF_STR( Normal ) )
- PORT_DIPSETTING( 0x20, DEF_STR( Difficult ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Very_Difficult ) )
- PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:8")
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC(0x01, 0x01, "SW2:1")
+ PORT_DIPUNUSED_DIPLOC(0x02, 0x02, "SW2:2")
+ PORT_DIPUNUSED_DIPLOC(0x04, 0x04, "SW2:3")
+ PORT_DIPUNUSED_DIPLOC(0x08, 0x08, "SW2:4")
+ PORT_DIPUNUSED_DIPLOC(0x10, 0x10, "SW2:5")
+ PORT_DIPNAME(0x60, 0x40, DEF_STR( Difficulty )) PORT_DIPLOCATION("SW2:6,7")
+ PORT_DIPSETTING( 0x60, DEF_STR( Easy ))
+ PORT_DIPSETTING( 0x40, DEF_STR( Normal ))
+ PORT_DIPSETTING( 0x20, DEF_STR( Difficult ))
+ PORT_DIPSETTING( 0x00, DEF_STR( Very_Difficult ))
+ PORT_DIPNAME(0x80, 0x00, DEF_STR( Demo_Sounds )) PORT_DIPLOCATION("SW2:8")
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x00, DEF_STR( On ))
PORT_START("DSW3")
- PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW3:1")
- PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW3:2" ) /* Manual says these are unused */
- PORT_SERVICE_DIPLOC( 0x04, IP_ACTIVE_HIGH, "SW3:3" )
- PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW3:4" ) /* Manual says these are unused */
- PORT_BIT( 0xf0, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_DIPNAME(0x01, 0x01, DEF_STR( Flip_Screen )) PORT_DIPLOCATION("SW3:1")
+ PORT_DIPSETTING( 0x01, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x00, DEF_STR( On ))
+ PORT_DIPUNUSED_DIPLOC(0x02, IP_ACTIVE_LOW, "SW3:2")
+ PORT_SERVICE_DIPLOC( 0x04, IP_ACTIVE_LOW, "SW3:3")
+ PORT_DIPUNUSED_DIPLOC(0x08, IP_ACTIVE_LOW, "SW3:4")
+ PORT_BIT(0xf0, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM_MEMBER(DEVICE_SELF, crimfght_state, system_r, 0)
PORT_START("P1")
KONAMI8_B12_UNK(1)
@@ -167,14 +190,14 @@ static INPUT_PORTS_START( crimfght )
KONAMI8_B12_UNK(4)
PORT_START("SYSTEM")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN4 )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE2 )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE3 )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE4 )
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_COIN1)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_COIN2)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_COIN3)
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_COIN4)
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_SERVICE1)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_SERVICE2)
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_SERVICE3)
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_SERVICE4)
INPUT_PORTS_END
static INPUT_PORTS_START( crimfghtj )
@@ -226,28 +249,35 @@ WRITE8_MEMBER(crimfght_state::volume_callback)
void crimfght_state::machine_start()
{
- UINT8 *ROM = memregion("maincpu")->base();
-
- membank("bank2")->configure_entries(0, 12, &ROM[0x10000], 0x2000);
- membank("bank2")->set_entry(0);
+ m_rombank->configure_entries(0, 16, memregion("maincpu")->base(), 0x2000);
+ m_rombank->set_entry(0);
}
WRITE8_MEMBER( crimfght_state::banking_callback )
{
+ m_rombank->set_entry(data & 0x0f);
+
/* bit 5 = select work RAM or palette */
- if (data & 0x20)
- {
- m_maincpu->space(AS_PROGRAM).install_read_bank(0x0000, 0x03ff, "bank3");
- m_maincpu->space(AS_PROGRAM).install_write_handler(0x0000, 0x03ff, write8_delegate(FUNC(palette_device::write), m_palette.target()));
- membank("bank3")->set_base(&m_paletteram[0]);
- }
- else
- m_maincpu->space(AS_PROGRAM).install_readwrite_bank(0x0000, 0x03ff, "bank1"); /* RAM */
+ m_woco = BIT(data, 5);
+ m_bank0000->set_bank(m_woco);
/* bit 6 = enable char ROM reading through the video RAM */
- m_k052109->set_rmrd_line((data & 0x40) ? ASSERT_LINE : CLEAR_LINE);
+ m_rmrd = BIT(data, 6);
+ m_k052109->set_rmrd_line(m_rmrd ? ASSERT_LINE : CLEAR_LINE);
+
+ m_init = BIT(data, 7);
+}
- membank("bank2")->set_entry(data & 0x0f);
+CUSTOM_INPUT_MEMBER( crimfght_state::system_r )
+{
+ UINT8 data = 0;
+
+ data |= 1 << 4; // VCC
+ data |= m_woco << 5;
+ data |= m_rmrd << 6;
+ data |= m_init << 7;
+
+ return data >> 4;
}
static MACHINE_CONFIG_START( crimfght, crimfght_state )
@@ -255,18 +285,24 @@ static MACHINE_CONFIG_START( crimfght, crimfght_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", KONAMI, XTAL_24MHz/8) /* 052001 (verified on pcb) */
MCFG_CPU_PROGRAM_MAP(crimfght_map)
- MCFG_CPU_VBLANK_INT_DRIVER("screen", crimfght_state, crimfght_interrupt)
MCFG_KONAMICPU_LINE_CB(WRITE8(crimfght_state, banking_callback))
MCFG_CPU_ADD("audiocpu", Z80, XTAL_3_579545MHz) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(crimfght_sound_map)
+ MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE(DEVICE_SELF, crimfght_state, audiocpu_irq_ack)
+
+ MCFG_DEVICE_ADD("bank0000", ADDRESS_MAP_BANK, 0)
+ MCFG_DEVICE_PROGRAM_MAP(bank0000_map)
+ MCFG_ADDRESS_MAP_BANK_ENDIANNESS(ENDIANNESS_BIG)
+ MCFG_ADDRESS_MAP_BANK_DATABUS_WIDTH(8)
+ MCFG_ADDRESS_MAP_BANK_ADDRBUS_WIDTH(11)
+ MCFG_ADDRESS_MAP_BANK_STRIDE(0x400)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(59.17) /* verified on pcb */
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(12*8-2, (64-12)*8-3, 2*8, 30*8-1 )
+ MCFG_SCREEN_RAW_PARAMS(XTAL_24MHz/3, 528, 96, 416, 256, 16, 240) // measured 59.17
+// 6MHz dotclock is more realistic, however needs drawing updates. replace when ready
+// MCFG_SCREEN_RAW_PARAMS(XTAL_24MHz/4, 396, hbend, hbstart, 256, 16, 240)
MCFG_SCREEN_UPDATE_DRIVER(crimfght_state, screen_update_crimfght)
MCFG_SCREEN_PALETTE("palette")
@@ -280,13 +316,15 @@ static MACHINE_CONFIG_START( crimfght, crimfght_state )
MCFG_DEVICE_ADD("k051960", K051960, 0)
MCFG_GFX_PALETTE("palette")
+ MCFG_K051960_SCREEN_TAG("screen")
MCFG_K051960_CB(crimfght_state, sprite_callback)
+ MCFG_K051960_IRQ_HANDLER(INPUTLINE("maincpu", KONAMI_IRQ_LINE))
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_YM2151_ADD("ymsnd", XTAL_3_579545MHz) /* verified on pcb */
- MCFG_YM2151_PORT_WRITE_HANDLER(WRITE8(crimfght_state,crimfght_snd_bankswitch_w))
+ MCFG_YM2151_PORT_WRITE_HANDLER(WRITE8(crimfght_state, ym2151_ct_w))
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
@@ -305,9 +343,8 @@ MACHINE_CONFIG_END
***************************************************************************/
ROM_START( crimfght )
- ROM_REGION( 0x28000, "maincpu", 0 ) /* code + banked roms */
- ROM_LOAD( "821l02.f24", 0x10000, 0x18000, CRC(588e7da6) SHA1(285febb3bcca31f82b34af3695a59eafae01cd30) )
- ROM_CONTINUE( 0x08000, 0x08000 )
+ ROM_REGION( 0x20000, "maincpu", 0 ) /* code + banked roms */
+ ROM_LOAD( "821l02.f24", 0x00000, 0x20000, CRC(588e7da6) SHA1(285febb3bcca31f82b34af3695a59eafae01cd30) )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the sound CPU */
ROM_LOAD( "821l01.h4", 0x0000, 0x8000, CRC(0faca89e) SHA1(21c9c6d736b398a29e8709e1187c5bf3cacdc99d) )
@@ -328,9 +365,8 @@ ROM_START( crimfght )
ROM_END
ROM_START( crimfghtj )
- ROM_REGION( 0x28000, "maincpu", 0 ) /* code + banked roms */
- ROM_LOAD( "821p02.f24", 0x10000, 0x18000, CRC(f33fa2e1) SHA1(00fc9e8250fa51386f3af2fca0f137bec9e1c220) )
- ROM_CONTINUE( 0x08000, 0x08000 )
+ ROM_REGION( 0x20000, "maincpu", 0 ) /* code + banked roms */
+ ROM_LOAD( "821p02.f24", 0x00000, 0x20000, CRC(f33fa2e1) SHA1(00fc9e8250fa51386f3af2fca0f137bec9e1c220) )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the sound CPU */
ROM_LOAD( "821l01.h4", 0x0000, 0x8000, CRC(0faca89e) SHA1(21c9c6d736b398a29e8709e1187c5bf3cacdc99d) )
@@ -351,9 +387,8 @@ ROM_START( crimfghtj )
ROM_END
ROM_START( crimfght2 )
-ROM_REGION( 0x28000, "maincpu", 0 ) /* code + banked roms */
- ROM_LOAD( "821r02.f24", 0x10000, 0x18000, CRC(4ecdd923) SHA1(78e5260c4bb9b18d7818fb6300d7e1d3a577fb63) )
- ROM_CONTINUE( 0x08000, 0x08000 )
+ ROM_REGION( 0x20000, "maincpu", 0 ) /* code + banked roms */
+ ROM_LOAD( "821r02.f24", 0x00000, 0x20000, CRC(4ecdd923) SHA1(78e5260c4bb9b18d7818fb6300d7e1d3a577fb63) )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the sound CPU */
ROM_LOAD( "821l01.h4", 0x0000, 0x8000, CRC(0faca89e) SHA1(21c9c6d736b398a29e8709e1187c5bf3cacdc99d) )
@@ -379,6 +414,6 @@ ROM_END
***************************************************************************/
-GAME( 1989, crimfght, 0, crimfght, crimfght, driver_device, 0, ROT0, "Konami", "Crime Fighters (US 4 players)", GAME_SUPPORTS_SAVE )
-GAME( 1989, crimfght2, crimfght, crimfght, crimfghtj, driver_device,0, ROT0, "Konami", "Crime Fighters (World 2 Players)", GAME_SUPPORTS_SAVE )
-GAME( 1989, crimfghtj, crimfght, crimfght, crimfghtj, driver_device,0, ROT0, "Konami", "Crime Fighters (Japan 2 Players)", GAME_SUPPORTS_SAVE )
+GAME( 1989, crimfght, 0, crimfght, crimfght, driver_device, 0, ROT0, "Konami", "Crime Fighters (US 4 players)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, crimfght2, crimfght, crimfght, crimfghtj, driver_device,0, ROT0, "Konami", "Crime Fighters (World 2 Players)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, crimfghtj, crimfght, crimfght, crimfghtj, driver_device,0, ROT0, "Konami", "Crime Fighters (Japan 2 Players)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/crospang.c b/src/mame/drivers/crospang.c
index b275e1602b7..1cdd1ff9f83 100644
--- a/src/mame/drivers/crospang.c
+++ b/src/mame/drivers/crospang.c
@@ -570,6 +570,6 @@ DRIVER_INIT_MEMBER(crospang_state,crospang)
tumblepb_gfx1_rearrange();
}
-GAME( 1998, crospang, 0, crospang, crospang, crospang_state, crospang, ROT0, "F2 System", "Cross Pang", GAME_SUPPORTS_SAVE )
-GAME( 199?, heuksun, 0, crospang, heuksun, crospang_state, crospang, ROT0, "Oksan / F2 System", "Heuk Sun Baek Sa (Korea)", GAME_SUPPORTS_SAVE )
-GAME( 1998, bestri, 0, bestri, bestri, crospang_state, crospang, ROT0, "F2 System", "Bestri (Korea)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+GAME( 1998, crospang, 0, crospang, crospang, crospang_state, crospang, ROT0, "F2 System", "Cross Pang", MACHINE_SUPPORTS_SAVE )
+GAME( 199?, heuksun, 0, crospang, heuksun, crospang_state, crospang, ROT0, "Oksan / F2 System", "Heuk Sun Baek Sa (Korea)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, bestri, 0, bestri, bestri, crospang_state, crospang, ROT0, "F2 System", "Bestri (Korea)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/crshrace.c b/src/mame/drivers/crshrace.c
index 8521321c258..7cc33cf93a2 100644
--- a/src/mame/drivers/crshrace.c
+++ b/src/mame/drivers/crshrace.c
@@ -572,5 +572,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)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1993, crshrace2, crshrace, crshrace, crshrace2, crshrace_state, crshrace2, ROT270, "Video System Co.", "Lethal Crash Race (set 2)", GAME_NO_COCKTAIL | GAME_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/mess/drivers/crvision.c b/src/mame/drivers/crvision.c
index 08250767a2e..e6b26b8d287 100644
--- a/src/mess/drivers/crvision.c
+++ b/src/mame/drivers/crvision.c
@@ -898,6 +898,6 @@ CONS( 1982, wizzard, crvision, 0, pal, crvision, driver_device,
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", GAME_NOT_WORKING )
-//COMP( 1983, vz2001, lasr2001, 0, lasr2001, lasr2001, driver_device, 0, "Dick Smith Electronics", "VZ 2001 (Oceania)", GAME_NOT_WORKING )
+//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 )
diff --git a/src/mame/drivers/crystal.c b/src/mame/drivers/crystal.c
index dee142b553c..2549ba3b0f4 100644
--- a/src/mame/drivers/crystal.c
+++ b/src/mame/drivers/crystal.c
@@ -1133,9 +1133,9 @@ DRIVER_INIT_MEMBER(crystal_state, donghaer)
}
-GAME( 2001, crysbios, 0, crystal, crystal, driver_device, 0, ROT0, "BrezzaSoft", "Crystal System BIOS", GAME_IS_BIOS_ROOT )
+GAME( 2001, crysbios, 0, crystal, crystal, driver_device, 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, topbladv, 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)", GAME_NOT_WORKING ) // still has some instability issues
-GAME( 2001, donghaer, 0, crystal, crystal, crystal_state, donghaer, ROT0, "Danbi", "Donggul Donggul Haerong", GAME_NOT_WORKING )
+GAME( 2001, officeye, 0, crystal, officeye,crystal_state, officeye, ROT0, "Danbi", "Office Yeo In Cheon Ha (version 1.2)", MACHINE_NOT_WORKING ) // still has some instability issues
+GAME( 2001, donghaer, 0, crystal, crystal, crystal_state, donghaer, ROT0, "Danbi", "Donggul Donggul Haerong", MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/csc.c b/src/mame/drivers/csc.c
index d00a4a4930a..dcf62474038 100644
--- a/src/mess/drivers/csc.c
+++ b/src/mame/drivers/csc.c
@@ -343,4 +343,4 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 198?, csc, 0, 0, csc, csc, driver_device, 0, "Fidelity Electronics", "Champion Chess Challenger (model CSC)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_SUPPORTS_SAVE | GAME_CLICKABLE_ARTWORK)
+COMP( 198?, csc, 0, 0, csc, csc, driver_device, 0, "Fidelity Electronics", "Champion Chess Challenger (model CSC)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK)
diff --git a/src/mame/drivers/cshooter.c b/src/mame/drivers/cshooter.c
index aeacb6e31be..a720416ea75 100644
--- a/src/mame/drivers/cshooter.c
+++ b/src/mame/drivers/cshooter.c
@@ -635,6 +635,6 @@ DRIVER_INIT_MEMBER(cshooter_state,cshootere)
-GAME( 1987, cshootere, cshooter, airraid, airraid, cshooter_state, cshootere, ROT270, "Seibu Kaihatsu (J.K.H. license)", "Cross Shooter (encrypted)", GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
-GAME( 1987, airraid, cshooter, airraid, airraid, cshooter_state, cshootere, ROT270, "Seibu Kaihatsu", "Air Raid (encrypted)", GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
+GAME( 1987, cshootere, cshooter, airraid, airraid, cshooter_state, cshootere, ROT270, "Seibu Kaihatsu (J.K.H. license)", "Cross Shooter (encrypted)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING )
+GAME( 1987, airraid, cshooter, airraid, airraid, cshooter_state, cshootere, ROT270, "Seibu Kaihatsu", "Air Raid (encrypted)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING )
// There's also an undumped International Games version
diff --git a/src/mame/drivers/csplayh5.c b/src/mame/drivers/csplayh5.c
index 3a4bd6a0c47..0d016cea4d0 100644
--- a/src/mame/drivers/csplayh5.c
+++ b/src/mame/drivers/csplayh5.c
@@ -43,7 +43,11 @@ public:
m_tmp68301(*this, "tmp68301"),
m_v9958(*this, "v9958"),
m_dac1(*this, "dac1"),
- m_dac2(*this, "dac2")
+ m_dac2(*this, "dac2"),
+ m_key(*this, "KEY"),
+ m_region_maincpu(*this, "maincpu"),
+ m_region_audiocpu(*this, "audiocpu"),
+ m_bank1(*this, "bank1")
{ }
required_device<cpu_device> m_maincpu;
@@ -51,6 +55,10 @@ public:
required_device<v9958_device> m_v9958;
required_device<dac_device> m_dac1;
required_device<dac_device> m_dac2;
+ required_ioport_array<5> m_key;
+ required_memory_region m_region_maincpu;
+ required_memory_region m_region_audiocpu;
+ required_memory_bank m_bank1;
UINT16 m_mux_data;
@@ -80,20 +88,15 @@ public:
virtual void machine_reset();
TIMER_DEVICE_CALLBACK_MEMBER(csplayh5_irq);
DECLARE_WRITE_LINE_MEMBER(csplayh5_vdp0_interrupt);
+
+ void general_init(int patchaddress, int patchvalue);
+ void soundbank_w(int data);
};
#define USE_H8 0
-// from MSX2 driver, may be not accurate for this HW
-#define MSX2_XBORDER_PIXELS 16
-#define MSX2_YBORDER_PIXELS 28
-#define MSX2_TOTAL_XRES_PIXELS 256 * 2 + (MSX2_XBORDER_PIXELS * 2)
-#define MSX2_TOTAL_YRES_PIXELS 212 * 2 + (MSX2_YBORDER_PIXELS * 2)
-#define MSX2_VISIBLE_XBORDER_PIXELS 8 * 2
-#define MSX2_VISIBLE_YBORDER_PIXELS 14 * 2
-
WRITE_LINE_MEMBER(csplayh5_state::csplayh5_vdp0_interrupt)
{
/* this is not used as the v9938 interrupt callbacks are broken
@@ -104,11 +107,11 @@ READ16_MEMBER(csplayh5_state::csplayh5_mux_r)
{
switch(m_mux_data)
{
- case 0x01: return ioport("KEY0")->read();
- case 0x02: return ioport("KEY1")->read();
- case 0x04: return ioport("KEY2")->read();
- case 0x08: return ioport("KEY3")->read();
- case 0x10: return ioport("KEY4")->read();
+ case 0x01: return m_key[0]->read();
+ case 0x02: return m_key[1]->read();
+ case 0x04: return m_key[2]->read();
+ case 0x08: return m_key[3]->read();
+ case 0x10: return m_key[4]->read();
}
return 0xffff;
@@ -177,11 +180,9 @@ sound HW is identical to Niyanpai
#define DAC_WRITE write_unsigned8
#endif
-static void csplayh5_soundbank_w(running_machine &machine, int data)
+void csplayh5_state::soundbank_w(int data)
{
- UINT8 *SNDROM = machine.root_device().memregion("audiocpu")->base();
-
- machine.root_device().membank("bank1")->set_base(&SNDROM[0x08000 + (0x8000 * (data & 0x03))]);
+ m_bank1->set_base(m_region_audiocpu->base() + 0x08000 + (0x8000 * (data & 0x03)));
}
READ8_MEMBER(csplayh5_state::csplayh5_sound_r)
@@ -202,7 +203,7 @@ READ8_MEMBER(csplayh5_state::soundcpu_portd_r)
WRITE8_MEMBER(csplayh5_state::soundcpu_porta_w)
{
- csplayh5_soundbank_w(machine(), data & 0x03);
+ soundbank_w(data & 0x03);
}
WRITE8_MEMBER(csplayh5_state::soundcpu_dac2_w)
@@ -238,7 +239,7 @@ ADDRESS_MAP_END
static INPUT_PORTS_START( csplayh5 )
- PORT_START("KEY0")
+ PORT_START("KEY.0")
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_START1 )
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_KAN ) PORT_PLAYER(1)
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_M ) PORT_PLAYER(1)
@@ -256,7 +257,7 @@ static INPUT_PORTS_START( csplayh5 )
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_START("KEY1")
+ PORT_START("KEY.1")
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_MAHJONG_BET ) PORT_PLAYER(1)
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_REACH ) PORT_PLAYER(1)
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_N ) PORT_PLAYER(1)
@@ -274,7 +275,7 @@ static INPUT_PORTS_START( csplayh5 )
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_START("KEY2")
+ PORT_START("KEY.2")
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_RON ) PORT_PLAYER(1)
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_CHI ) PORT_PLAYER(1)
@@ -292,7 +293,7 @@ static INPUT_PORTS_START( csplayh5 )
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_START("KEY3")
+ PORT_START("KEY.3")
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_PON ) PORT_PLAYER(1)
@@ -310,7 +311,7 @@ static INPUT_PORTS_START( csplayh5 )
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_START("KEY4")
+ PORT_START("KEY.4")
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_MAHJONG_SMALL ) PORT_PLAYER(1)
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_MAHJONG_BIG ) PORT_PLAYER(1)
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_MAHJONG_FLIP_FLOP ) PORT_PLAYER(1)
@@ -440,11 +441,6 @@ TIMER_DEVICE_CALLBACK_MEMBER(csplayh5_state::csplayh5_irq)
if(scanline == 212*2)
m_tmp68301->external_interrupt_0();
-
- if((scanline % 2) == 0)
- {
- m_v9958->interrupt();
- }
}
static const z80_daisy_config daisy_chain_sound[] =
@@ -458,7 +454,7 @@ static MACHINE_CONFIG_START( csplayh5, csplayh5_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu",M68000,16000000) /* TMP68301-16 */
MCFG_CPU_PROGRAM_MAP(csplayh5_map)
- MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("tmp68301",tmp68301_device,irq_callback)
+ MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("tmp68301", tmp68301_device, irq_callback)
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", csplayh5_state, csplayh5_irq, "screen", 0, 1)
@@ -484,17 +480,9 @@ static MACHINE_CONFIG_START( csplayh5, csplayh5_state )
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
- MCFG_V9958_ADD("v9958", "screen", 0x20000)
+ MCFG_V9958_ADD("v9958", "screen", 0x20000, XTAL_21_4772MHz) // typical 9958 clock, not verified
MCFG_V99X8_INTERRUPT_CALLBACK(WRITELINE(csplayh5_state, csplayh5_vdp0_interrupt))
-
- MCFG_SCREEN_ADD("screen",RASTER)
- MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
- MCFG_SCREEN_SIZE(MSX2_TOTAL_XRES_PIXELS, 262*2)
- MCFG_SCREEN_VISIBLE_AREA(MSX2_XBORDER_PIXELS - MSX2_VISIBLE_XBORDER_PIXELS, MSX2_TOTAL_XRES_PIXELS - MSX2_XBORDER_PIXELS + MSX2_VISIBLE_XBORDER_PIXELS - 1, MSX2_YBORDER_PIXELS - MSX2_VISIBLE_YBORDER_PIXELS, MSX2_TOTAL_YRES_PIXELS - MSX2_YBORDER_PIXELS + MSX2_VISIBLE_YBORDER_PIXELS - 1)
- MCFG_SCREEN_UPDATE_DEVICE("v9958", v9958_device, screen_update)
- MCFG_SCREEN_PALETTE("v9958:palette")
+ MCFG_V99X8_SCREEN_ADD_NTSC("screen", "v9958", XTAL_21_4772MHz)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -515,13 +503,13 @@ MACHINE_CONFIG_END
***************************************************************************/
-void general_init(running_machine &machine, int patchaddress, int patchvalue)
+void csplayh5_state::general_init(int patchaddress, int patchvalue)
{
- UINT16 *MAINROM = (UINT16 *)machine.root_device().memregion("maincpu")->base();
- UINT8 *SNDROM = machine.root_device().memregion("audiocpu")->base();
+ UINT16 *MAINROM = (UINT16 *)m_region_maincpu->base();
+ UINT8 *SNDROM = m_region_audiocpu->base();
// initialize sound rom bank
- csplayh5_soundbank_w(machine, 0);
+ soundbank_w(0);
/* patch DVD comms check */
MAINROM[patchaddress] = patchvalue;
@@ -531,16 +519,16 @@ void general_init(running_machine &machine, int patchaddress, int patchvalue)
}
-DRIVER_INIT_MEMBER(csplayh5_state,csplayh1) { general_init(machine(), 0x6880/2,0x6020); }
+DRIVER_INIT_MEMBER(csplayh5_state,csplayh1) { general_init(0x6880/2, 0x6020); }
-DRIVER_INIT_MEMBER(csplayh5_state,junai) { general_init(machine(), 0x679c/2,0x6018); }
-DRIVER_INIT_MEMBER(csplayh5_state,mjmania) { general_init(machine(), 0x6b96/2,0x6018); }
-DRIVER_INIT_MEMBER(csplayh5_state,junai2) { general_init(machine(), 0x6588/2,0x6018); }
-DRIVER_INIT_MEMBER(csplayh5_state,csplayh5) { general_init(machine(), 0x4cb4/2,0x6018); }
-DRIVER_INIT_MEMBER(csplayh5_state,bikiniko) { general_init(machine(), 0x585c/2,0x6018); }
-DRIVER_INIT_MEMBER(csplayh5_state,thenanpa) { general_init(machine(), 0x69ec/2,0x6018); }
-DRIVER_INIT_MEMBER(csplayh5_state,csplayh7) { general_init(machine(), 0x7a20/2,0x6018); }
-DRIVER_INIT_MEMBER(csplayh5_state,fuudol) { general_init(machine(), 0x9166/2,0x6018); }
+DRIVER_INIT_MEMBER(csplayh5_state,junai) { general_init(0x679c/2, 0x6018); }
+DRIVER_INIT_MEMBER(csplayh5_state,mjmania) { general_init(0x6b96/2, 0x6018); }
+DRIVER_INIT_MEMBER(csplayh5_state,junai2) { general_init(0x6588/2, 0x6018); }
+DRIVER_INIT_MEMBER(csplayh5_state,csplayh5) { general_init(0x4cb4/2, 0x6018); }
+DRIVER_INIT_MEMBER(csplayh5_state,bikiniko) { general_init(0x585c/2, 0x6018); }
+DRIVER_INIT_MEMBER(csplayh5_state,thenanpa) { general_init(0x69ec/2, 0x6018); }
+DRIVER_INIT_MEMBER(csplayh5_state,csplayh7) { general_init(0x7a20/2, 0x6018); }
+DRIVER_INIT_MEMBER(csplayh5_state,fuudol) { general_init(0x9166/2, 0x6018); }
/* TODO: correct rom labels*/
ROM_START( csplayh1 )
@@ -738,29 +726,29 @@ ROM_START( fuudol )
ROM_END
// 1995
-GAME( 1995, csplayh1, 0, csplayh5, csplayh5, csplayh5_state, csplayh1, ROT0, "Sphinx/AV Japan/Astro System Japan", "Super CD Dai8dan Mahjong Hanafuda Cosplay Tengoku (Japan)", GAME_NOT_WORKING )
+GAME( 1995, csplayh1, 0, csplayh5, csplayh5, csplayh5_state, csplayh1, ROT0, "Sphinx/AV Japan/Astro System Japan", "Super CD Dai8dan Mahjong Hanafuda Cosplay Tengoku (Japan)", MACHINE_NOT_WORKING )
// 1998
// 01 : Mahjong Gal-pri - World Gal-con Grandprix : Nichibutsu/Just&Just
// 02 : Sengoku Mahjong Kurenai Otome-tai : Nichibutsu/Just&Just
-/* 03 */ GAME( 1998, junai, 0, csplayh5, csplayh5, csplayh5_state, junai, ROT0, "Nichibutsu/eic", "Junai - Manatsu no First Kiss (Japan)", GAME_NOT_WORKING )
-/* 04 */ GAME( 1998, csplayh5, 0, csplayh5, csplayh5, csplayh5_state, csplayh5, ROT0, "Nichibutsu", "Mahjong Hanafuda Cosplay Tengoku 5 (Japan)", GAME_NOT_WORKING )
-/* 05 */ GAME( 1998, junai2, 0, csplayh5, csplayh5, csplayh5_state, junai2, ROT0, "Nichibutsu/eic", "Junai 2 - White Love Story (Japan)", GAME_NOT_WORKING )
+/* 03 */ GAME( 1998, junai, 0, csplayh5, csplayh5, csplayh5_state, junai, ROT0, "Nichibutsu/eic", "Junai - Manatsu no First Kiss (Japan)", MACHINE_NOT_WORKING )
+/* 04 */ GAME( 1998, csplayh5, 0, csplayh5, csplayh5, csplayh5_state, csplayh5, ROT0, "Nichibutsu", "Mahjong Hanafuda Cosplay Tengoku 5 (Japan)", MACHINE_NOT_WORKING )
+/* 05 */ GAME( 1998, junai2, 0, csplayh5, csplayh5, csplayh5_state, junai2, ROT0, "Nichibutsu/eic", "Junai 2 - White Love Story (Japan)", MACHINE_NOT_WORKING )
// 06 : Mahjong Mogitate : Nichibutsu/Just&Just/NVS/Astro System/AV Japan
// 1999
-/* 07 */ GAME( 1999, mjmania, 0, csplayh5, csplayh5, csplayh5_state, mjmania, ROT0, "Sphinx/Just&Just", "Mahjong Mania - Kairakukan e Youkoso (Japan)", GAME_NOT_WORKING )
-/* 08 */ //GAME( 1995, renaimj, 0, csplayh5, csplayh5, csplayh5_state, renaimj, ROT0, "Nichibutsu/eic", "Renai Mahjong Idol Gakuen (Japan)", GAME_NOT_WORKING )
-/* 09 */ GAME( 1999, bikiniko, 0, csplayh5, csplayh5, csplayh5_state, bikiniko, ROT0, "Nichibutsu/eic", "BiKiNikko - Okinawa de Ippai Shichaimashita (Japan)", GAME_NOT_WORKING )
+/* 07 */ GAME( 1999, mjmania, 0, csplayh5, csplayh5, csplayh5_state, mjmania, ROT0, "Sphinx/Just&Just", "Mahjong Mania - Kairakukan e Youkoso (Japan)", MACHINE_NOT_WORKING )
+/* 08 */ //GAME( 1995, renaimj, 0, csplayh5, csplayh5, csplayh5_state, renaimj, ROT0, "Nichibutsu/eic", "Renai Mahjong Idol Gakuen (Japan)", MACHINE_NOT_WORKING )
+/* 09 */ GAME( 1999, bikiniko, 0, csplayh5, csplayh5, csplayh5_state, bikiniko, ROT0, "Nichibutsu/eic", "BiKiNikko - Okinawa de Ippai Shichaimashita (Japan)", MACHINE_NOT_WORKING )
// 10 : Mahjong Hanafuda Cosplay Tengoku 6 - Junai hen : Nichibutsu/eic
-/* 11 */ GAME( 1999, thenanpa, 0, csplayh5, csplayh5, csplayh5_state, thenanpa, ROT0, "Nichibutsu/Love Factory/eic", "The Nanpa (Japan)", GAME_NOT_WORKING )
-/* 12 */ //GAME( 1999, pokoachu, 0, csplayh5, csplayh5, driver_device, 0, ROT0, "Nichibutsu/eic", "PokoaPoka Onsen de CHU - Bijin 3 Shimai ni Kiotsukete! (Japan)", GAME_NOT_WORKING )
-/* 13 */ GAME( 1999, csplayh7, 0, csplayh5, csplayh5, csplayh5_state, csplayh7, ROT0, "Nichibutsu/eic", "Cosplay Tengoku 7 - Super Kogal Grandprix (Japan)", GAME_NOT_WORKING )
+/* 11 */ GAME( 1999, thenanpa, 0, csplayh5, csplayh5, csplayh5_state, thenanpa, ROT0, "Nichibutsu/Love Factory/eic", "The Nanpa (Japan)", MACHINE_NOT_WORKING )
+/* 12 */ //GAME( 1999, pokoachu, 0, csplayh5, csplayh5, driver_device, 0, ROT0, "Nichibutsu/eic", "PokoaPoka Onsen de CHU - Bijin 3 Shimai ni Kiotsukete! (Japan)", MACHINE_NOT_WORKING )
+/* 13 */ GAME( 1999, csplayh7, 0, csplayh5, csplayh5, csplayh5_state, csplayh7, ROT0, "Nichibutsu/eic", "Cosplay Tengoku 7 - Super Kogal Grandprix (Japan)", MACHINE_NOT_WORKING )
// 14 : Ai-mode - Pet Shiiku : Nichibutsu/eic
// 2000
-/* 15 */ GAME( 2000, fuudol, 0, csplayh5, csplayh5, csplayh5_state, fuudol, ROT0, "Nichibutsu/eic", "Fuudol (Japan)", GAME_NOT_WORKING )
+/* 15 */ GAME( 2000, fuudol, 0, csplayh5, csplayh5, csplayh5_state, fuudol, ROT0, "Nichibutsu/eic", "Fuudol (Japan)", MACHINE_NOT_WORKING )
// 16 : Nurete Mitaino... - Net Idol Hen : Nichibutsu/Love Factory
// 17 : Tsuugakuro no Yuuwaku : Nichibutsu/Love Factory/Just&Just
// 18 : Torarechattano - AV Kantoku Hen : Nichibutsu/Love Factory/M Friend
diff --git a/src/mame/drivers/cswat.c b/src/mame/drivers/cswat.c
index 4ddd63f3931..45a329fcb6e 100644
--- a/src/mame/drivers/cswat.c
+++ b/src/mame/drivers/cswat.c
@@ -302,4 +302,4 @@ ROM_START( cswat )
ROM_END
-GAME( 1984, cswat, 0, cswat, cswat, driver_device, 0, ROT0, "Namco", "Cosmoswat", GAME_SUPPORTS_SAVE | GAME_MECHANICAL | GAME_NOT_WORKING | GAME_NO_SOUND | GAME_WRONG_COLORS | GAME_IMPERFECT_GRAPHICS )
+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 )
diff --git a/src/mess/drivers/ct486.c b/src/mame/drivers/ct486.c
index 91cc9d85c3f..91cc9d85c3f 100644
--- a/src/mess/drivers/ct486.c
+++ b/src/mame/drivers/ct486.c
diff --git a/src/mame/drivers/cubo.c b/src/mame/drivers/cubo.c
index 9115942861f..3ada5d72561 100644
--- a/src/mame/drivers/cubo.c
+++ b/src/mame/drivers/cubo.c
@@ -1359,12 +1359,12 @@ INPUT_PORTS_END
-GAME( 1993, cubo, 0, cubo, cubo, cubo_state, cubo, ROT0, "Commodore", "Cubo BIOS", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_IS_BIOS_ROOT )
-GAME( 1995, cndypuzl, cubo, cubo, cndypuzl, cubo_state, cndypuzl, ROT0, "CD Express", "Candy Puzzle (v1.0)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1995, haremchl, cubo, cubo, haremchl, cubo_state, haremchl, ROT0, "CD Express", "Harem Challenge", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1995, lsrquiz, cubo, cubo, lsrquiz, cubo_state, lsrquiz, ROT0, "CD Express", "Laser Quiz Italy", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) /* no player 2 inputs (ingame) */
-GAME( 1995, lsrquiz2, cubo, cubo, lsrquiz2, cubo_state, lsrquiz2, ROT0, "CD Express", "Laser Quiz 2 Italy (v1.0)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1995, lasstixx, cubo, cubo, lasstixx, cubo_state, lasstixx, ROT0, "CD Express", "Laser Strixx 2", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1995, mgnumber, cubo, cubo, mgnumber, cubo_state, mgnumber, ROT0, "CD Express", "Magic Number", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, mgprem11, cubo, cubo, mgprem11, cubo_state, mgprem11, ROT0, "CD Express", "Magic Premium (v1.1)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1999, odeontw2, cubo, cubo, odeontw2, cubo_state, cubo, ROT0, "CD Express", "Odeon Twister 2 (v202.19)", GAME_NOT_WORKING )
+GAME( 1993, cubo, 0, cubo, cubo, cubo_state, cubo, ROT0, "Commodore", "Cubo BIOS", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_IS_BIOS_ROOT )
+GAME( 1995, cndypuzl, cubo, cubo, cndypuzl, cubo_state, cndypuzl, ROT0, "CD Express", "Candy Puzzle (v1.0)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1995, haremchl, cubo, cubo, haremchl, cubo_state, haremchl, ROT0, "CD Express", "Harem Challenge", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1995, lsrquiz, cubo, cubo, lsrquiz, cubo_state, lsrquiz, ROT0, "CD Express", "Laser Quiz Italy", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* no player 2 inputs (ingame) */
+GAME( 1995, lsrquiz2, cubo, cubo, lsrquiz2, cubo_state, lsrquiz2, ROT0, "CD Express", "Laser Quiz 2 Italy (v1.0)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1995, lasstixx, cubo, cubo, lasstixx, cubo_state, lasstixx, ROT0, "CD Express", "Laser Strixx 2", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1995, mgnumber, cubo, cubo, mgnumber, cubo_state, mgnumber, ROT0, "CD Express", "Magic Number", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, mgprem11, cubo, cubo, mgprem11, cubo_state, mgprem11, ROT0, "CD Express", "Magic Premium (v1.1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1999, odeontw2, cubo, cubo, odeontw2, cubo_state, cubo, ROT0, "CD Express", "Odeon Twister 2 (v202.19)", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/cultures.c b/src/mame/drivers/cultures.c
index a555d365147..1a5c653f2e4 100644
--- a/src/mame/drivers/cultures.c
+++ b/src/mame/drivers/cultures.c
@@ -494,4 +494,4 @@ ROM_START( cultures )
ROM_END
-GAME( 1994, cultures, 0, cultures, cultures, driver_device, 0, ROT0, "Face", "Jibun wo Migaku Culture School Mahjong Hen", GAME_SUPPORTS_SAVE )
+GAME( 1994, cultures, 0, cultures, cultures, driver_device, 0, ROT0, "Face", "Jibun wo Migaku Culture School Mahjong Hen", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/cupidon.c b/src/mame/drivers/cupidon.c
index 02a20d0e84f..cf85470c75c 100644
--- a/src/mame/drivers/cupidon.c
+++ b/src/mame/drivers/cupidon.c
@@ -171,13 +171,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)", GAME_IS_SKELETON ) // 12 Oct 2005
-GAME( 2004, tsarevnaa ,tsarevna, cupidon, cupidon, cupidon_state, cupidon, ROT0, "Kupidon","Tsarevna (v1.31)", GAME_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)", GAME_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)", GAME_IS_SKELETON ) // 02 Mar 2005
-GAME( 2004, funnyfma ,funnyfm, cupidon, cupidon, cupidon_state, cupidon, ROT0, "Kupidon","Funny Farm (v1.26)", GAME_IS_SKELETON ) // 08 Aug 2005
-GAME( 2004, funnyfmb ,funnyfm, cupidon, cupidon, cupidon_state, cupidon, ROT0, "Kupidon","Funny Farm (v1.30)", GAME_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)", GAME_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.c b/src/mame/drivers/cv1k.c
index de470304432..24635f551a4 100644
--- a/src/mame/drivers/cv1k.c
+++ b/src/mame/drivers/cv1k.c
@@ -931,11 +931,11 @@ GAME( 2007, deathsml, 0, cv1k, cv1k, cv1k_state, deathsml, ROT0, "
GAME( 2008, dsmbl, 0, cv1k_d, cv1k, cv1k_state, dpddfk, ROT0, "Cave (AMI license)", "Deathsmiles MegaBlack Label (2008/10/06 MEGABLACK LABEL VER)", 0 )
// CA019 Do-Don-Pachi Dai-Fukkatsu
-GAME( 2008, ddpdfk, 0, cv1k_d, cv1k, cv1k_state, dpddfk, ROT270, "Cave (AMI license)", "DoDonPachi Dai-Fukkatsu Ver 1.5 (2008/06/23 MASTER VER 1.5)", 0 )
-GAME( 2008, ddpdfk10, ddpdfk, cv1k_d, cv1k, cv1k_state, dpddfk, ROT270, "Cave (AMI license)", "DoDonPachi Dai-Fukkatsu Ver 1.0 (2008/05/16 MASTER VER)", 0 )
+GAME( 2008, ddpdfk, 0, cv1k_d, cv1k, cv1k_state, dpddfk, ROT270, "Cave (AMI license)", "DoDonPachi Dai-Fukkatsu Ver 1.5 (2008/06/23 MASTER VER 1.5)", 0 )
+GAME( 2008, ddpdfk10, ddpdfk, cv1k_d, cv1k, cv1k_state, dpddfk, ROT270, "Cave (AMI license)", "DoDonPachi Dai-Fukkatsu Ver 1.0 (2008/05/16 MASTER VER)", 0 )
// CA019B Do-Don-Pachi Dai-Fukkatsu Black Label
GAME( 2010, dfkbl, 0, cv1k_d, cv1k, cv1k_state, dpddfk, ROT270, "Cave (AMI license)", "DoDonPachi Dai-Fukkatsu Black Label (2010/1/18 BLACK LABEL)", 0 )
// CMDL01 Medal Mahjong Moukari Bancho
-GAME( 2007, mmmbanc, 0, cv1k, cv1k, cv1k_state, pinkswts, ROT0, "Cave (AMI license)", "Medal Mahjong Moukari Bancho (2007/06/05 MASTER VER.)", GAME_NOT_WORKING )
+GAME( 2007, mmmbanc, 0, cv1k, cv1k, cv1k_state, pinkswts, ROT0, "Cave (AMI license)", "Medal Mahjong Moukari Bancho (2007/06/05 MASTER VER.)", MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/cvicny.c b/src/mame/drivers/cvicny.c
index 9c97c06449e..416309d78d0 100644
--- a/src/mess/drivers/cvicny.c
+++ b/src/mame/drivers/cvicny.c
@@ -146,4 +146,4 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 1984, cvicny, 0, 0, cvicny, cvicny, driver_device, 0, "<unknown>", "Practice-z80", GAME_NO_SOUND_HW)
+COMP( 1984, cvicny, 0, 0, cvicny, cvicny, driver_device, 0, "<unknown>", "Practice-z80", MACHINE_NO_SOUND_HW)
diff --git a/src/mame/drivers/cvs.c b/src/mame/drivers/cvs.c
index 1db8597c5a9..7c9ed5a81d3 100644
--- a/src/mame/drivers/cvs.c
+++ b/src/mame/drivers/cvs.c
@@ -460,7 +460,6 @@ static ADDRESS_MAP_START( cvs_main_cpu_map, AS_PROGRAM, 8, cvs_state )
AM_RANGE(0x6000, 0x73ff) AM_ROM
ADDRESS_MAP_END
-
static ADDRESS_MAP_START( cvs_main_cpu_io_map, AS_IO, 8, cvs_state )
AM_RANGE(0x00, 0xff) AM_READ(cvs_input_r) AM_WRITE(cvs_scroll_w)
AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READWRITE(cvs_collision_clear, cvs_video_fx_w)
@@ -468,8 +467,6 @@ static ADDRESS_MAP_START( cvs_main_cpu_io_map, AS_IO, 8, cvs_state )
AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("SENSE")
ADDRESS_MAP_END
-
-
/*************************************
*
* DAC driving CPU memory/IO handlers
@@ -1046,7 +1043,6 @@ static MACHINE_CONFIG_START( cvs, cvs_state )
MACHINE_CONFIG_END
-
/*************************************
*
* ROM definitions
@@ -1534,6 +1530,8 @@ ROM_START( raidersr3 )
ROM_END
+
+
/*************************************
*
* Game specific initalization
@@ -1646,25 +1644,25 @@ DRIVER_INIT_MEMBER(cvs_state,raiders)
*
*************************************/
-GAME( 1981, cosmos, 0, cvs, cosmos, driver_device, 0, ROT90, "Century Electronics", "Cosmos", GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1981, darkwar, 0, cvs, darkwar, driver_device, 0, ROT90, "Century Electronics", "Dark Warrior", GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1981, spacefrt, 0, cvs, spacefrt, driver_device, 0, ROT90, "Century Electronics", "Space Fortress (CVS)", GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1982, 8ball, 0, cvs, 8ball, driver_device, 0, ROT90, "Century Electronics", "Video Eight Ball", GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1982, 8ball1, 8ball, cvs, 8ball, driver_device, 0, ROT90, "Century Electronics", "Video Eight Ball (Rev.1)", GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1982, logger, 0, cvs, logger, driver_device, 0, ROT90, "Century Electronics", "Logger", GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1982, dazzler, 0, cvs, dazzler, driver_device, 0, ROT90, "Century Electronics", "Dazzler", GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1982, wallst, 0, cvs, wallst, driver_device, 0, ROT90, "Century Electronics", "Wall Street", GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1982, radarzon, 0, cvs, radarzon, driver_device, 0, ROT90, "Century Electronics", "Radar Zone", GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1982, radarzon1, radarzon, cvs, radarzon, driver_device, 0, ROT90, "Century Electronics", "Radar Zone (Rev.1)", GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1982, radarzont, radarzon, cvs, radarzon, driver_device, 0, ROT90, "Century Electronics (Tuni Electro Service Inc)", "Radar Zone (Tuni)", GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1982, outline, radarzon, cvs, radarzon, driver_device, 0, ROT90, "Century Electronics", "Outline", GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1982, goldbug, 0, cvs, goldbug, driver_device, 0, ROT90, "Century Electronics", "Gold Bug", GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1982, diggerc, 0, cvs, diggerc, driver_device, 0, ROT90, "Century Electronics", "Digger (CVS)", GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1983, heartatk, 0, cvs, heartatk, driver_device, 0, ROT90, "Century Electronics", "Heart Attack", GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1983, hunchbak, 0, cvs, hunchbak, driver_device, 0, ROT90, "Century Electronics", "Hunchback (set 1)", GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1983, hunchbaka, hunchbak, cvs, hunchbak, cvs_state, hunchbaka,ROT90, "Century Electronics", "Hunchback (set 2)", GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1983, superbik, 0, cvs, superbik, cvs_state, superbik, ROT90, "Century Electronics", "Superbike", GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1983, raiders, 0, cvs, raiders, cvs_state, raiders, ROT90, "Century Electronics", "Raiders", GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1983, raidersr3, raiders, cvs, raiders, cvs_state, raiders, ROT90, "Century Electronics", "Raiders (Rev.3)", GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1984, hero, 0, cvs, hero, cvs_state, hero, ROT90, "Century Electronics / Seatongrove Ltd", "Hero", GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND | GAME_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", GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/cxhumax.c b/src/mame/drivers/cxhumax.c
index 7f58262a4b7..4fc5ab65151 100644
--- a/src/mess/drivers/cxhumax.c
+++ b/src/mame/drivers/cxhumax.c
@@ -1082,4 +1082,4 @@ ROM_START( hxhdci2k )
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", GAME_NOT_WORKING | GAME_NO_SOUND)
+SYST( 2008, hxhdci2k, 0, 0, cxhumax, cxhumax, driver_device, 0, "HUMAX", "HUMAX HDCI-2000", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/cybertnk.c b/src/mame/drivers/cybertnk.c
index d3085d6592c..73048c098ac 100644
--- a/src/mame/drivers/cybertnk.c
+++ b/src/mame/drivers/cybertnk.c
@@ -980,4 +980,4 @@ DRIVER_INIT_MEMBER(cybertnk_state,cybertnk)
}
-GAME( 1988, cybertnk, 0, cybertnk, cybertnk, cybertnk_state, cybertnk, ROT0, "Coreland", "Cyber Tank (v1.4)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1988, cybertnk, 0, cybertnk, cybertnk, cybertnk_state, cybertnk, ROT0, "Coreland", "Cyber Tank (v1.4)", MACHINE_IMPERFECT_GRAPHICS )
diff --git a/src/mess/drivers/cybiko.c b/src/mame/drivers/cybiko.c
index c7352403f5b..a3a4bd2864e 100644
--- a/src/mess/drivers/cybiko.c
+++ b/src/mame/drivers/cybiko.c
@@ -164,7 +164,7 @@ ADDRESS_MAP_END
static INPUT_PORTS_START( cybiko )
- PORT_START("A1")
+ PORT_START("A.0")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F7) PORT_CHAR(UCHAR_MAMEKEY(F7))
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Esc") PORT_CODE(KEYCODE_ESC) PORT_CHAR(UCHAR_MAMEKEY(ESC))
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Del") PORT_CODE(KEYCODE_DEL) PORT_CHAR(UCHAR_MAMEKEY(DEL))
@@ -174,7 +174,7 @@ static INPUT_PORTS_START( cybiko )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CHAR('`')
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Shift") PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1)
- PORT_START("A2")
+ PORT_START("A.1")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F6) PORT_CHAR(UCHAR_MAMEKEY(F6))
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Up") PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP))
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("As") PORT_CODE(KEYCODE_INSERT) PORT_CHAR(UCHAR_MAMEKEY(INSERT))
@@ -184,7 +184,7 @@ static INPUT_PORTS_START( cybiko )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Z) PORT_CHAR('Z')
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Fn") PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_SHIFT_2)
- PORT_START("A3")
+ PORT_START("A.2")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F5) PORT_CHAR(UCHAR_MAMEKEY(F5))
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F3) PORT_CHAR(UCHAR_MAMEKEY(F3))
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ')
@@ -194,7 +194,7 @@ static INPUT_PORTS_START( cybiko )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_X) PORT_CHAR('X')
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Help") PORT_CODE(KEYCODE_END) PORT_CHAR(UCHAR_MAMEKEY(END))
- PORT_START("A4")
+ PORT_START("A.3")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F4) PORT_CHAR(UCHAR_MAMEKEY(F4))
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!')
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_TAB) PORT_CHAR('\t')
@@ -204,7 +204,7 @@ static INPUT_PORTS_START( cybiko )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_C) PORT_CHAR('C')
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('[') PORT_CHAR('{')
- PORT_START("A5")
+ PORT_START("A.4")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Right") PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT))
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Down") PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN))
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Select") PORT_CODE(KEYCODE_HOME) PORT_CHAR(UCHAR_MAMEKEY(HOME))
@@ -214,7 +214,7 @@ static INPUT_PORTS_START( cybiko )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_V) PORT_CHAR('V')
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(']') PORT_CHAR('}')
- PORT_START("A6")
+ PORT_START("A.5")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F2) PORT_CHAR(UCHAR_MAMEKEY(F2))
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR(':')
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ENTER) PORT_CHAR( 13 )
@@ -224,7 +224,7 @@ static INPUT_PORTS_START( cybiko )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_B) PORT_CHAR('B')
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('\\') PORT_CHAR('|')
- PORT_START("A7")
+ PORT_START("A.6")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F1) PORT_CHAR(UCHAR_MAMEKEY(F1))
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?')
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("BkSp") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8)
@@ -233,7 +233,7 @@ static INPUT_PORTS_START( cybiko )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_J) PORT_CHAR('J')
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_N) PORT_CHAR('N')
- PORT_START("A8")
+ PORT_START("A.7")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('_')
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CHAR('.') PORT_CHAR('>')
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR(')')
@@ -242,7 +242,7 @@ static INPUT_PORTS_START( cybiko )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_K) PORT_CHAR('K')
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_M) PORT_CHAR('M')
- PORT_START("A9")
+ PORT_START("A.8")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR('\'') PORT_CHAR('"')
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=') PORT_CHAR('+')
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR('(')
@@ -254,7 +254,7 @@ static INPUT_PORTS_START( cybiko )
INPUT_PORTS_END
static INPUT_PORTS_START( cybikoxt )
- PORT_START("A1")
+ PORT_START("A.0")
PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F7) PORT_CHAR(UCHAR_MAMEKEY(F7))
PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_M) PORT_CHAR('M')
PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_K) PORT_CHAR('K')
@@ -262,7 +262,7 @@ static INPUT_PORTS_START( cybikoxt )
PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_O) PORT_CHAR('O')
PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_L) PORT_CHAR('L')
- PORT_START("A2")
+ PORT_START("A.1")
PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F6) PORT_CHAR(UCHAR_MAMEKEY(F6))
PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_G) PORT_CHAR('G')
PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_B) PORT_CHAR('B')
@@ -272,7 +272,7 @@ static INPUT_PORTS_START( cybikoxt )
PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_U) PORT_CHAR('U')
PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_J) PORT_CHAR('J')
- PORT_START("A3")
+ PORT_START("A.2")
PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F5) PORT_CHAR(UCHAR_MAMEKEY(F5))
PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_D) PORT_CHAR('D')
PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_C) PORT_CHAR('C')
@@ -281,7 +281,7 @@ static INPUT_PORTS_START( cybikoxt )
PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_R) PORT_CHAR('R')
PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_T) PORT_CHAR('T')
- PORT_START("A4")
+ PORT_START("A.3")
PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F4) PORT_CHAR(UCHAR_MAMEKEY(F4))
PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Q) PORT_CHAR('Q')
PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A) PORT_CHAR('A')
@@ -291,38 +291,38 @@ static INPUT_PORTS_START( cybikoxt )
PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_W) PORT_CHAR('W')
PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_E) PORT_CHAR('E')
- PORT_START("A5")
+ PORT_START("A.4")
PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F3) PORT_CHAR(UCHAR_MAMEKEY(F3))
PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ENTER) PORT_CHAR( 13 )
PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Select") PORT_CODE(KEYCODE_HOME) PORT_CHAR(UCHAR_MAMEKEY(HOME))
PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ')
- PORT_START("A6")
+ PORT_START("A.5")
PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F2) PORT_CHAR(UCHAR_MAMEKEY(F2))
PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_TAB) PORT_CHAR('\t')
PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Del") PORT_CODE(KEYCODE_DEL) PORT_CHAR(UCHAR_MAMEKEY(DEL))
PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("As") PORT_CODE(KEYCODE_INSERT) PORT_CHAR(UCHAR_MAMEKEY(INSERT))
PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Esc") PORT_CODE(KEYCODE_ESC) PORT_CHAR(UCHAR_MAMEKEY(ESC))
- PORT_START("A7")
+ PORT_START("A.6")
PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F1) PORT_CHAR(UCHAR_MAMEKEY(F1))
PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Up") PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP))
PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Right") PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT))
PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Down") PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN))
PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Left") PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT))
- PORT_START("A8")
+ PORT_START("A.7")
PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Fn") PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_SHIFT_2)
- PORT_START("A9")
+ PORT_START("A.8")
PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Shift") PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1)
- PORT_START("A10")
+ PORT_START("A.13")
PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Help") PORT_CODE(KEYCODE_END) PORT_CHAR(UCHAR_MAMEKEY(END))
PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CHAR('.') PORT_CHAR('>')
PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_P) PORT_CHAR('P')
- PORT_START("A15")
+ PORT_START("A.14")
PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("On/Off") PORT_CODE(KEYCODE_F8) PORT_CHAR(UCHAR_MAMEKEY(F8))
INPUT_PORTS_END
@@ -456,6 +456,6 @@ ROM_END
//////////////
/* 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)", GAME_IMPERFECT_SOUND )
-COMP( 2000, cybikov2, cybikov1, 0, cybikov2, cybiko, cybiko_state, cybiko , "Cybiko Inc", "Cybiko Classic (V2)", GAME_IMPERFECT_SOUND )
-COMP( 2001, cybikoxt, cybikov1, 0, cybikoxt, cybikoxt, cybiko_state, cybikoxt, "Cybiko Inc", "Cybiko Xtreme", GAME_IMPERFECT_SOUND )
+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.c b/src/mame/drivers/cyclemb.c
index bfa02562f6c..367f1c20565 100644
--- a/src/mame/drivers/cyclemb.c
+++ b/src/mame/drivers/cyclemb.c
@@ -1042,5 +1042,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)", GAME_NO_COCKTAIL | GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1985, skydest, 0, skydest, skydest, cyclemb_state, skydest, ROT0, "Taito Corporation", "Sky Destroyer (Japan)", GAME_NO_COCKTAIL | GAME_NO_SOUND | GAME_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/mess/drivers/czk80.c b/src/mame/drivers/czk80.c
index 90ce9688cb1..913d07d693f 100644
--- a/src/mess/drivers/czk80.c
+++ b/src/mame/drivers/czk80.c
@@ -227,4 +227,4 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
-COMP( 198?, czk80, 0, 0, czk80, czk80, czk80_state, czk80, "<unknown>", "CZK-80", GAME_NOT_WORKING | GAME_NO_SOUND_HW)
+COMP( 198?, czk80, 0, 0, czk80, czk80, czk80_state, czk80, "<unknown>", "CZK-80", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW)
diff --git a/src/mess/drivers/d6800.c b/src/mame/drivers/d6800.c
index 29f9a074051..29f9a074051 100644
--- a/src/mess/drivers/d6800.c
+++ b/src/mame/drivers/d6800.c
diff --git a/src/mess/drivers/d6809.c b/src/mame/drivers/d6809.c
index cda62e72c97..a806be0d820 100644
--- a/src/mess/drivers/d6809.c
+++ b/src/mame/drivers/d6809.c
@@ -164,4 +164,4 @@ 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", GAME_IS_SKELETON | GAME_NOT_WORKING | GAME_NO_SOUND_HW)
+COMP( 1983, d6809, 0, 0, d6809, d6809, driver_device, 0, "Dunfield", "6809 Portable", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW)
diff --git a/src/mame/drivers/d9final.c b/src/mame/drivers/d9final.c
index edec4c5b579..0a9f194374f 100644
--- a/src/mame/drivers/d9final.c
+++ b/src/mame/drivers/d9final.c
@@ -326,4 +326,4 @@ ROM_END
-GAME( 1992, d9final, 0, d9final, d9final, driver_device, 0, ROT0, "Excellent System", "Dream 9 Final (v2.24)", GAME_SUPPORTS_SAVE )
+GAME( 1992, d9final, 0, d9final, d9final, driver_device, 0, ROT0, "Excellent System", "Dream 9 Final (v2.24)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/dacholer.c b/src/mame/drivers/dacholer.c
index ec9fcc83a51..665d96b67d4 100644
--- a/src/mame/drivers/dacholer.c
+++ b/src/mame/drivers/dacholer.c
@@ -841,6 +841,6 @@ ROM_START( itaten )
ROM_END
-GAME( 1983, dacholer, 0, dacholer, dacholer, driver_device, 0, ROT0, "Nichibutsu", "Dacholer", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
-GAME( 1983, kickboy, 0, dacholer, kickboy, driver_device, 0, ROT0, "Nichibutsu", "Kick Boy", GAME_SUPPORTS_SAVE )
-GAME( 1984, itaten, 0, itaten, itaten, driver_device, 0, ROT0, "Nichibutsu / Alice", "Itazura Tenshi (Japan)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/dai.c b/src/mame/drivers/dai.c
index 8f2a4b408c2..8f2a4b408c2 100644
--- a/src/mess/drivers/dai.c
+++ b/src/mame/drivers/dai.c
diff --git a/src/mame/drivers/dai3wksi.c b/src/mame/drivers/dai3wksi.c
index 1dd3a67a96d..9ef942150e4 100644
--- a/src/mame/drivers/dai3wksi.c
+++ b/src/mame/drivers/dai3wksi.c
@@ -58,6 +58,7 @@ public:
m_ic79(*this, "ic79"),
m_ic80(*this, "ic80"),
m_ic81(*this, "ic81"),
+ m_palette(*this, "palette"),
m_dai3wksi_videoram(*this, "videoram"),
m_in2(*this, "IN2") { }
@@ -69,6 +70,7 @@ public:
optional_device<sn76477_device> m_ic79;
optional_device<sn76477_device> m_ic80;
optional_device<sn76477_device> m_ic81;
+ required_device<palette_device> m_palette;
/* video */
required_shared_ptr<UINT8> m_dai3wksi_videoram;
@@ -140,29 +142,10 @@ static const UINT8 vr_prom2[64*8*2]={
3, 3,3,2,2,6,6,6,6, 6,6,6,6,6,6,6,6, 3,3,3,3,3,3,3,3, 7,7,7,7,7,7,7,7, 3,3,3,3,3,3,3,3, 2,2,2,2,2,2,2,2, 6,6,6,6,6,6,6,6, 4,4,4,4,4,4,4,
};
-
-static void dai3wksi_get_pens(pen_t *pens)
-{
- offs_t i;
-
- for (i = 0; i <= 7; i++)
- {
- pens[i] = rgb_t(pal1bit(i >> 1), pal1bit(i >> 2), pal1bit(i >> 0));
- }
-}
-
-
UINT32 dai3wksi_state::screen_update_dai3wksi(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- offs_t offs;
- pen_t pens[8];
-
- dai3wksi_get_pens(pens);
-
- for (offs = 0; offs < m_dai3wksi_videoram.bytes(); offs++)
+ for (offs_t offs = 0; offs < m_dai3wksi_videoram.bytes(); offs++)
{
- offs_t i;
-
UINT8 x = offs << 2;
UINT8 y = offs >> 6;
UINT8 data = m_dai3wksi_videoram[offs];
@@ -181,9 +164,9 @@ UINT32 dai3wksi_state::screen_update_dai3wksi(screen_device &screen, bitmap_rgb3
color = vr_prom1[value];
}
- for (i = 0; i <= 3; i++)
+ for (int i = 0; i <= 3; i++)
{
- pen_t pen = (data & (1 << i)) ? pens[color] : pens[0];
+ rgb_t pen = (data & (1 << i)) ? m_palette->pen_color(color) : rgb_t::black;
if (m_dai3wksi_flipscreen)
bitmap.pix32(255-y, 255-x) = pen;
@@ -428,6 +411,8 @@ static MACHINE_CONFIG_START( dai3wksi, dai3wksi_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_UPDATE_DRIVER(dai3wksi_state, screen_update_dai3wksi)
+ MCFG_PALETTE_ADD_3BIT_BRG("palette")
+
MCFG_SPEAKER_STANDARD_MONO("mono")
#if (USE_SAMPLES)
@@ -562,4 +547,4 @@ ROM_END
*
*************************************/
-GAME( 1979, dai3wksi, 0, dai3wksi, dai3wksi, driver_device, 0, ROT270, "Sun Electronics", "Dai San Wakusei Meteor (Japan)", GAME_WRONG_COLORS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/darius.c b/src/mame/drivers/darius.c
index 8b5980f3337..abe9cbf84fd 100644
--- a/src/mame/drivers/darius.c
+++ b/src/mame/drivers/darius.c
@@ -1169,8 +1169,8 @@ ROM_START( dariuse )
ROM_END
-GAME( 1986, darius, 0, darius, darius, driver_device, 0, ROT0, "Taito Corporation Japan", "Darius (World, rev 2)", GAME_SUPPORTS_SAVE )
-GAME( 1986, dariusu, darius, darius, dariusu, driver_device, 0, ROT0, "Taito America Corporation", "Darius (US, rev 2)", GAME_SUPPORTS_SAVE )
-GAME( 1986, dariusj, darius, darius, dariusj, driver_device, 0, ROT0, "Taito Corporation", "Darius (Japan, rev 1)", GAME_SUPPORTS_SAVE )
-GAME( 1986, dariuso, darius, darius, dariusj, driver_device, 0, ROT0, "Taito Corporation", "Darius (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1986, dariuse, darius, darius, dariusu, driver_device, 0, ROT0, "Taito Corporation", "Darius Extra Version (Japan)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/darkmist.c b/src/mame/drivers/darkmist.c
index 35419344046..50e75ff14b0 100644
--- a/src/mame/drivers/darkmist.c
+++ b/src/mame/drivers/darkmist.c
@@ -475,4 +475,4 @@ DRIVER_INIT_MEMBER(darkmist_state,darkmist)
}
}
-GAME( 1986, darkmist, 0, darkmist, darkmist, darkmist_state, darkmist, ROT270, "Taito Corporation", "The Lost Castle In Darkmist", GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+GAME( 1986, darkmist, 0, darkmist, darkmist, darkmist_state, darkmist, ROT270, "Taito Corporation", "The Lost Castle In Darkmist", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/darkseal.c b/src/mame/drivers/darkseal.c
index ba14b7a932a..c652fee62a2 100644
--- a/src/mame/drivers/darkseal.c
+++ b/src/mame/drivers/darkseal.c
@@ -471,8 +471,8 @@ DRIVER_INIT_MEMBER(darkseal_state,darkseal)
/******************************************************************************/
-GAME( 1990, darkseal, 0, darkseal, darkseal, darkseal_state, darkseal, ROT0, "Data East Corporation", "Dark Seal (World revision 3)", GAME_SUPPORTS_SAVE )
-GAME( 1990, darkseal1, darkseal, darkseal, darkseal, darkseal_state, darkseal, ROT0, "Data East Corporation", "Dark Seal (World revision 1)", GAME_SUPPORTS_SAVE )
-GAME( 1990, darksealj, darkseal, darkseal, darkseal, darkseal_state, darkseal, ROT0, "Data East Corporation", "Dark Seal (Japan revision 4)", GAME_SUPPORTS_SAVE )
-GAME( 1990, gatedoom, darkseal, darkseal, darkseal, darkseal_state, darkseal, ROT0, "Data East Corporation", "Gate of Doom (US revision 4)", GAME_SUPPORTS_SAVE )
-GAME( 1990, gatedoom1, darkseal, darkseal, darkseal, darkseal_state, darkseal, ROT0, "Data East Corporation", "Gate of Doom (US revision 1)", GAME_SUPPORTS_SAVE )
+GAME( 1990, darkseal, 0, darkseal, darkseal, darkseal_state, darkseal, ROT0, "Data East Corporation", "Dark Seal (World revision 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, darkseal1, darkseal, darkseal, darkseal, darkseal_state, darkseal, ROT0, "Data East Corporation", "Dark Seal (World revision 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, darksealj, darkseal, darkseal, darkseal, darkseal_state, darkseal, ROT0, "Data East Corporation", "Dark Seal (Japan revision 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, gatedoom, darkseal, darkseal, darkseal, darkseal_state, darkseal, ROT0, "Data East Corporation", "Gate of Doom (US revision 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, gatedoom1, darkseal, darkseal, darkseal, darkseal_state, darkseal, ROT0, "Data East Corporation", "Gate of Doom (US revision 1)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/daruma.c b/src/mame/drivers/daruma.c
new file mode 100644
index 00000000000..33f3226230c
--- /dev/null
+++ b/src/mame/drivers/daruma.c
@@ -0,0 +1,169 @@
+// license:GPL-2.0+
+// copyright-holders: Felipe Sanches
+/***************************************************************************
+
+ Sigtron Daruma DS348 dot-matrix printer
+ https://www.hardstand.com.br/daruma/ds348
+
+ Driver by Felipe Correa da Silva Sanches <juca@members.fsf.org>
+
+ Model: Print Plus - DS348
+ Manufacturer: Sigtron Daruma
+ Firmware version 1.1
+ Release Date: May 8th/1998
+ PCB: SIGTRON DS348 REV.B
+
+***************************************************************************/
+
+#include "emu.h"
+#include "cpu/mcs51/mcs51.h"
+#include "sound/speaker.h"
+//TODO: #include "ds348.lh"
+
+class daruma_state : public driver_device
+{
+public:
+ daruma_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
+ m_speaker(*this, "speaker") { }
+
+ DECLARE_WRITE8_MEMBER(port_w);
+ DECLARE_READ8_MEMBER(port_r);
+
+ DECLARE_READ8_MEMBER(dev0_r);
+ DECLARE_WRITE8_MEMBER(dev1_w);
+ DECLARE_WRITE8_MEMBER(dev2_w);
+ DECLARE_READ8_MEMBER(dev4_r);
+ required_device<cpu_device> m_maincpu;
+ required_device<speaker_sound_device> m_speaker;
+ char port0, port1, port2, port3;
+};
+
+WRITE8_MEMBER(daruma_state::port_w)
+{
+// printf("port_w: write %02X to PORT (offset=%02X)\n", data, offset);
+ switch(offset)
+ {
+ case MCS51_PORT_P0: port0=data;
+ case MCS51_PORT_P1: port1=data;
+ case MCS51_PORT_P2: port2=data;
+ case MCS51_PORT_P3: port3=data;
+ }
+}
+
+READ8_MEMBER(daruma_state::port_r)
+{
+ switch(offset)
+ {
+ case MCS51_PORT_P0: printf("port_r: read %02X from PORT0\n", port0); return port0;
+ case MCS51_PORT_P1: printf("port_r: read %02X from PORT1\n", port1); return port1;
+ case MCS51_PORT_P2: printf("port_r: read %02X from PORT2\n", port2); return port2;
+ case MCS51_PORT_P3: printf("port_r: read %02X from PORT3\n", port3); return port3;
+ }
+ return 0;
+}
+
+READ8_MEMBER(daruma_state::dev0_r)
+{
+ return 0xFF;
+}
+
+READ8_MEMBER(daruma_state::dev4_r)
+{
+ return ioport("switches")->read();
+}
+
+WRITE8_MEMBER(daruma_state::dev1_w)
+{
+ //while attempting to identify which bit is used for
+ //controlling the buzzer, here's what I heard from each of
+ //the signals on this address:
+
+ //0x80 serial comm.? (noise)
+ //0x20 LED? (3 clicks)
+ //0x10 LED? (1 click)
+ //0x08 serial comm.? click & noise
+ //0x04 LED? (2 clicks)
+ //0x02 motor control or printer heads? (I hear a series of rhythmic pulses)
+ //0x01 LED? (2 clicks)
+ m_speaker->level_w(data & 0x02);
+}
+
+WRITE8_MEMBER(daruma_state::dev2_w)
+{
+ //while attempting to identify which bit is used for
+ //controlling the buzzer, here's what I heard from each of
+ //the signals on this address:
+
+ //0x80: LED? (3 clicks)
+ //0x40: unused?
+ //0x20: unused?
+ //0x10: low freq brief beep followed by a click
+ //0x08: low freq brief noise followed by a click
+ //0x04: low freq brief beep followed by a click
+ //0x02: low freq brief beep followed by a click
+ //0x01: low freq brief noise
+ //m_speaker->level_w(data & 0x01);
+}
+
+static ADDRESS_MAP_START( mem_prg, AS_PROGRAM, 8, daruma_state )
+ AM_RANGE(0x0000, 0xffff) AM_ROM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( mem_io, AS_IO, 8, daruma_state )
+ AM_RANGE(0x0000, 0x0000) AM_READ(dev0_r)
+ AM_RANGE(0x1000, 0x1000) AM_WRITE(dev1_w)
+// AM_RANGE(0x2000, 0x2000) AM_WRITE(dev2_w)
+// AM_RANGE(0x3000, 0x3000) AM_WRITE(dev3_w)
+ AM_RANGE(0x4000, 0x4000) AM_READ(dev4_r)
+ AM_RANGE(0x8000, 0xffff) AM_RAM /* 32K CMOS SRAM (HYUNDAY hy62256a) */
+ AM_RANGE(MCS51_PORT_P0, MCS51_PORT_P3) AM_READWRITE(port_r, port_w)
+ADDRESS_MAP_END
+
+//TODO: These buttons and switches are all guesses. We'll need to further investigate this.
+static INPUT_PORTS_START( daruma )
+ PORT_START("buttons")
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Paper A") PORT_CODE(KEYCODE_A)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Paper B") PORT_CODE(KEYCODE_B)
+
+ PORT_START("switches")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN)
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_UNKNOWN)
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN)
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN)
+ PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN)
+ PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN)
+ PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN)
+ PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Limit Switch") PORT_CODE(KEYCODE_S)
+
+INPUT_PORTS_END
+
+static MACHINE_CONFIG_START( daruma, daruma_state )
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", I80C32,11059200) //verified on pcb
+ MCFG_CPU_PROGRAM_MAP(mem_prg)
+ MCFG_CPU_IO_MAP(mem_io)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
+ MCFG_SOUND_ROUTE(0, "mono", 1.00)
+
+/* TODO:
+ MCFG_DEFAULT_LAYOUT(layout_daruma)
+
+ Motors: MTA011
+ http://pdf.datasheetcatalog.com/datasheet/Shindengen/mXstzvq.pdf
+
+ The motor controller suposedly is used to cut the paper strip out after finishing printing something.
+*/
+MACHINE_CONFIG_END
+
+ROM_START( ds348 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ 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)
diff --git a/src/mame/drivers/dassault.c b/src/mame/drivers/dassault.c
index d66b5b8d785..c43b820c4e5 100644
--- a/src/mame/drivers/dassault.c
+++ b/src/mame/drivers/dassault.c
@@ -1004,9 +1004,9 @@ DRIVER_INIT_MEMBER(dassault_state,thndzone)
/**********************************************************************************/
-GAME( 1991, thndzone, 0, dassault, thndzone, dassault_state, thndzone, ROT0, "Data East Corporation", "Thunder Zone (World, Rev 1)", GAME_SUPPORTS_SAVE )
-GAME( 1991, thndzonea, thndzone, dassault, thndzone, dassault_state, thndzone, ROT0, "Data East Corporation", "Thunder Zone (World)", GAME_SUPPORTS_SAVE )
-GAME( 1991, thndzone4, thndzone, dassault, thndzone4, dassault_state, thndzone, ROT0, "Data East Corporation", "Thunder Zone (World 4 Players)", GAME_SUPPORTS_SAVE )
-GAME( 1991, thndzonej, thndzone, dassault, thndzone, dassault_state, thndzone, ROT0, "Data East Corporation", "Thunder Zone (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1991, dassault, thndzone, dassault, dassault, dassault_state, dassault, ROT0, "Data East Corporation", "Desert Assault (US)", GAME_SUPPORTS_SAVE )
-GAME( 1991, dassault4, thndzone, dassault, dassault4, dassault_state, dassault, ROT0, "Data East Corporation", "Desert Assault (US 4 Players)", GAME_SUPPORTS_SAVE )
+GAME( 1991, thndzone, 0, dassault, thndzone, dassault_state, thndzone, ROT0, "Data East Corporation", "Thunder Zone (World, Rev 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, thndzonea, thndzone, dassault, thndzone, dassault_state, thndzone, ROT0, "Data East Corporation", "Thunder Zone (World)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, thndzone4, thndzone, dassault, thndzone4, dassault_state, thndzone, ROT0, "Data East Corporation", "Thunder Zone (World 4 Players)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, thndzonej, thndzone, dassault, thndzone, dassault_state, thndzone, ROT0, "Data East Corporation", "Thunder Zone (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, dassault, thndzone, dassault, dassault, dassault_state, dassault, ROT0, "Data East Corporation", "Desert Assault (US)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, dassault4, thndzone, dassault, dassault4, dassault_state, dassault, ROT0, "Data East Corporation", "Desert Assault (US 4 Players)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/dblcrown.c b/src/mame/drivers/dblcrown.c
index 292b9d2e57e..8951180865a 100644
--- a/src/mame/drivers/dblcrown.c
+++ b/src/mame/drivers/dblcrown.c
@@ -664,4 +664,4 @@ 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)", GAME_IMPERFECT_GRAPHICS, layout_dblcrown ) // 1997 DYNA copyright in tile GFX
+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
diff --git a/src/mame/drivers/dblewing.c b/src/mame/drivers/dblewing.c
index 9663f217f9d..fc55faa6f2d 100644
--- a/src/mame/drivers/dblewing.c
+++ b/src/mame/drivers/dblewing.c
@@ -461,4 +461,4 @@ DRIVER_INIT_MEMBER(dblewing_state,dblewing)
}
-GAME( 1993, dblewing, 0, dblewing, dblewing, dblewing_state, dblewing, ROT90, "Mitchell", "Double Wings", GAME_SUPPORTS_SAVE )
+GAME( 1993, dblewing, 0, dblewing, dblewing, dblewing_state, dblewing, ROT90, "Mitchell", "Double Wings", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/dbz.c b/src/mame/drivers/dbz.c
index 9a03a0a42d9..d2e05b7181d 100644
--- a/src/mame/drivers/dbz.c
+++ b/src/mame/drivers/dbz.c
@@ -584,6 +584,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)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) // crashes MAME in tile/PSAC2 ROM test
-GAME( 1993, dbza, dbz, dbz, dbza, dbz_state, dbza, ROT0, "Banpresto", "Dragonball Z (rev A)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1994, dbz2, 0, dbz, dbz2, dbz_state, dbz2, ROT0, "Banpresto", "Dragonball Z 2 - Super Battle", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) // crashes MAME in tile/PSAC2 ROM test
+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/mess/drivers/dccons.c b/src/mame/drivers/dccons.c
index 1e488b68c93..fbb92009889 100644
--- a/src/mess/drivers/dccons.c
+++ b/src/mame/drivers/dccons.c
@@ -753,8 +753,8 @@ ROM_START( dcprt )
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)", GAME_NOT_WORKING )
-CONS( 1998, dcjp, 0, 0, dc, dc, dc_cons_state, dcjp, "Sega", "Dreamcast (Japan, NTSC)", GAME_NOT_WORKING )
-CONS( 1999, dceu, dcjp, 0, dc, dc, dc_cons_state, dcus, "Sega", "Dreamcast (Europe, PAL)", GAME_NOT_WORKING )
-CONS( 1998, dcdev, dcjp, 0, dc, dc, dc_cons_state, dc, "Sega", "HKT-0120 Sega Dreamcast Development Box", GAME_NOT_WORKING )
-CONS( 1998, dcprt, dcjp, 0, dc, dc, dc_cons_state, dcjp, "Sega", "Katana Set 5 Prototype", GAME_NOT_WORKING )
+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, dcjp, 0, dc, dc, dc_cons_state, dc, "Sega", "HKT-0120 Sega Dreamcast Development Box", MACHINE_NOT_WORKING )
+CONS( 1998, dcprt, dcjp, 0, dc, dc, dc_cons_state, dcjp, "Sega", "Katana Set 5 Prototype", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/dcheese.c b/src/mame/drivers/dcheese.c
index 99895c02c85..7f72a4d176c 100644
--- a/src/mame/drivers/dcheese.c
+++ b/src/mame/drivers/dcheese.c
@@ -788,12 +788,12 @@ ROM_END
*
*************************************/
-GAME( 1993, dcheese, 0, dcheese, dcheese, driver_device, 0, ROT90, "HAR", "Double Cheese", GAME_SUPPORTS_SAVE )
-GAME( 1993, lottof2, 0, dcheese, lottof2, driver_device, 0, ROT0, "HAR", "Lotto Fun 2", GAME_SUPPORTS_SAVE )
-GAME( 1993, cecmatch, 0, fredmem, fredmem, driver_device, 0, ROT0, "Coastal Amusements", "ChuckECheese's Match Game", GAME_SUPPORTS_SAVE )
-GAME( 1994, fredmem, 0, fredmem, fredmem, driver_device, 0, ROT0, "Coastal Amusements", "Fred Flintstones' Memory Match (World?, Ticket version, 3/17/95)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1994, fredmemuk, fredmem, fredmem, fredmem, driver_device, 0, ROT0, "Coastal Amusements", "Fred Flintstones' Memory Match (UK, 3/17/95)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1994, fredmemc, fredmem, fredmem, fredmem, driver_device, 0, ROT0, "Coastal Amusements", "Fred Flintstones' Memory Match (Mandarin Chinese, 3/17/95)", GAME_SUPPORTS_SAVE )
-GAME( 1994, fredmesp, fredmem, fredmem, fredmem, driver_device, 0, ROT0, "Coastal Amusements", "Fred Flintstones' Memory Match (Spanish, 3/17/95)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/dcon.c b/src/mame/drivers/dcon.c
index 47078d8eb24..c0b9061f1ca 100644
--- a/src/mame/drivers/dcon.c
+++ b/src/mame/drivers/dcon.c
@@ -405,5 +405,5 @@ DRIVER_INIT_MEMBER(dcon_state,sdgndmps)
}
-GAME( 1991, sdgndmps, 0, sdgndmps, sdgndmps, dcon_state, sdgndmps, ROT0, "Banpresto / Bandai", "SD Gundam Psycho Salamander no Kyoui", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1992, dcon, 0, dcon, dcon, driver_device, 0, ROT0, "Success", "D-Con", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/dct11em.c b/src/mame/drivers/dct11em.c
index 5e19700f7f3..50cfe44458e 100644
--- a/src/mess/drivers/dct11em.c
+++ b/src/mame/drivers/dct11em.c
@@ -80,4 +80,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1983, dct11em, 0, 0, dct11em, dct11em, driver_device, 0, "Digital Equipment Corporation", "DCT11-EM", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/dday.c b/src/mame/drivers/dday.c
index 25678d27bbb..a9fbe5cd085 100644
--- a/src/mame/drivers/dday.c
+++ b/src/mame/drivers/dday.c
@@ -359,5 +359,5 @@ ROM_START( ddayc )
ROM_END
-GAME( 1982, dday, 0, dday, dday, driver_device, 0, ROT0, "Olympia", "D-Day", GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE )
-GAME( 1982, ddayc, dday, dday, ddayc, driver_device, 0, ROT0, "Olympia (Centuri license)", "D-Day (Centuri)", GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE )
+GAME( 1982, dday, 0, dday, dday, driver_device, 0, ROT0, "Olympia", "D-Day", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE )
+GAME( 1982, ddayc, dday, dday, ddayc, driver_device, 0, ROT0, "Olympia (Centuri license)", "D-Day (Centuri)", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/ddayjlc.c b/src/mame/drivers/ddayjlc.c
index 839e346c9b6..6538b233be7 100644
--- a/src/mame/drivers/ddayjlc.c
+++ b/src/mame/drivers/ddayjlc.c
@@ -683,5 +683,5 @@ DRIVER_INIT_MEMBER(ddayjlc_state,ddayjlc)
membank("bank1")->set_entry(0);
}
-GAME( 1984, ddayjlc, 0, ddayjlc, ddayjlc, ddayjlc_state, ddayjlc, ROT90, "Jaleco", "D-Day (Jaleco set 1)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1984, ddayjlca, ddayjlc, ddayjlc, ddayjlc, ddayjlc_state, ddayjlc, ROT90, "Jaleco", "D-Day (Jaleco set 2)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1984, ddayjlc, 0, ddayjlc, ddayjlc, ddayjlc_state, ddayjlc, ROT90, "Jaleco", "D-Day (Jaleco set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1984, ddayjlca, ddayjlc, ddayjlc, ddayjlc, ddayjlc_state, ddayjlc, ROT90, "Jaleco", "D-Day (Jaleco set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/ddealer.c b/src/mame/drivers/ddealer.c
index e67f6df7bd8..a553c25df63 100644
--- a/src/mame/drivers/ddealer.c
+++ b/src/mame/drivers/ddealer.c
@@ -143,7 +143,6 @@ public:
required_shared_ptr<UINT16> m_back_vram;
required_shared_ptr<UINT16> m_work_ram;
required_shared_ptr<UINT16> m_mcu_shared_ram;
-// UINT16 * m_paletteram16; // currently this uses generic palette handling
/* video-related */
tilemap_t *m_back_tilemap;
@@ -480,7 +479,7 @@ static ADDRESS_MAP_START( ddealer, AS_PROGRAM, 16, ddealer_state )
AM_RANGE(0x080008, 0x080009) AM_READ_PORT("DSW1")
AM_RANGE(0x08000a, 0x08000b) AM_READ_PORT("UNK")
AM_RANGE(0x084000, 0x084003) AM_DEVWRITE8("ymsnd", ym2203_device, write, 0x00ff) // ym ?
- AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // palette ram
+ AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x08c000, 0x08cfff) AM_RAM_WRITE(ddealer_vregs_w) AM_SHARE("vregs") // palette ram
/* this might actually be 1 tilemap with some funky rowscroll / columnscroll enabled, I'm not sure */
@@ -697,4 +696,4 @@ ROM_START( ddealer )
ROM_LOAD( "6.ic86", 0x100, 0x100, NO_DUMP )
ROM_END
-GAME( 1991, ddealer, 0, ddealer, ddealer, ddealer_state, ddealer, ROT0, "NMK", "Double Dealer", GAME_SUPPORTS_SAVE )
+GAME( 1991, ddealer, 0, ddealer, ddealer, ddealer_state, ddealer, ROT0, "NMK", "Double Dealer", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/ddenlovr.c b/src/mame/drivers/ddenlovr.c
index a88f84d81a0..f0cf098b7bc 100644
--- a/src/mame/drivers/ddenlovr.c
+++ b/src/mame/drivers/ddenlovr.c
@@ -11,42 +11,46 @@ CPU: Z80 or 68000
Sound: (AY-3-8910) + YM2413 + MSM6295
Other: Real Time Clock (Oki MSM6242B or 72421B)
---------------------------------------------------------------------------------------------------------------------
-Year + Game Board CPU Sound Custom Other
---------------------------------------------------------------------------------------------------------------------
-92 Monkey Mole Panic 2xZ80 AY8910 YM2413 M6295 NL-001 1108(x2) 1427(x2) 8251
-93 Animalandia Jr. 2xZ80 AY8910 YM2413 M6295 NL-001 NL-003(x2) NL-004(x2) 8251
-93 Quiz Channel Question N7311208L1-2 Z80 YM2413 M6295 NL-002 1108F0405 1427F0071
-93 First Funky Fighter N7403208L-2 2xZ80 YM2149 YM2413 M6295 NL-001 NL-002 NL-005
-94 Mj Mysterious World D7107058L1-1 Z80 YM2149 YM2413 M6295 NL-002 1108F0405 1427F0071 4L02?
-94 Mj Mysterious Universe D7107058L1-1 Z80 YM2149 YM2413 M6295 NL-002 1108F0405 1427F0071
-94 Mj Mysterious Orient D7107058L1-1 Z80 YM2149 YM2413 M6295 NL-002 1108F0405 1427F0071
-94 Quiz 365 68000 AY8910 YM2413 M6295
-94 Rong Rong (J) N8010178L1 Z80 YM2413 M6295 NL-002 1108F0405 1427F0071 4L02F2637
-94 Hf Hana Ginga D8102048L1 Z80 YM2149 YM2413 M6295 NL-002 1108F0405 1427F0071 4L02?
-94 Super Hana Paradise N8010178L1+N73RSUB Z80 YM2413 M6295 NL-002 1108F0406 1427F0071 4L02F2637
-95 Mj Dai Chuuka Ken D11107218L1 Z80 AY8910 YM2413 M6295 70C160F009
-95 Hf Hana Gokou N83061581L1 Z80 AY8910 YM2413 M6295 NL-002 1108? 1427? 4L02?
-95 Hf Hana Gokou Bangaihen N10805078L1 Z80 AY8910 YM2413 M6295 NL-002 1108? 1427? 4L02?
-95 Nettoh Quiz Champion 68000 AY8910 YM2413 M6295
-95 Ultra Champion (K) N11309208L1+N114SUB 68000 AY8910 YM2413 M6295 NL-005
-95 Don Den Lover (J) D1120901L8 68000 YMZ284 YM2413 M6295 NL-005
-96 Don Den Lover (HK) D11309208L1 68000 YMZ284 YM2413 M6295 NL-005
-96 Panel&Variety Akamaru 68000 YMZ284 YM2413 M6295 NL-005
-96 Mj Fantasic Love NS5000101+? Z80 YMZ284 YM2413 M6295 NL-005
-96 Hana Kanzashi Z80 YM2413 M6295 70C160F011?
-96 Mj Seiryu Densetsu NM5020403 Z80 YMZ284 YM2413 M6295 70C160F011?
-96 Mj Janshin Plus NM7001004 Z80 YMZ284 YM2413 M6295 TZ-2053P
-96 Mj Dai Touyouken NM7001004 Z80 YMZ284 YM2413 M6295 TZ-2053P
-96 Return Of Sel Jan II NM504-2 Z80 YM2149 YM2413 M6295 TZ-2053P?
-97 Hana Kagerou KC80 YM2413 M6295 70C160F011
-97 Kkot Bi Nyo 9090123-2 KC80 YM2413 M6295 70C160F011 A1010
-97 Kkot Bi Nyo Special 9090123-3 KC80 YM2413 M6295 ?
-98 Mj Chuukanejyo D11107218L1 Z80 AY8910 YM2413 M6295 70C160F009
-98 Mj Reach Ippatsu KC80 YM2413 M6295 70C160F011
-99 Mj Jong-Tei NM532-9902 Z80 YM2413 M6295 4L10FXXXX?
-02 Mj Daimyojin TSM015-0111 Z80 YM2413 M6295 70C160F011
-04 Mj Momotarou TSM015-0111? Z80 YM2413 M6295 70C160F011?
+----------------------------------------------------------------------------------------------------------------------
+Year + Game Board CPU Sound Custom Other
+----------------------------------------------------------------------------------------------------------------------
+92 Hf Hana Tengoku D6502208L1+D6107068L1 Z80 YM2149 YM2413
+92 Monkey Mole Panic 2xZ80 AY8910 YM2413 M6295 NL-001 1108(x2) 1427(x2) 8251
+92 Mj Mysterious Orient D7107058L1-1 Z80 YM2149 YM2413 M6295 NL-002 1108F0405 1427F0071
+93 Mj Mysterious Orient 2 D7107058L1-1 Z80 YM2149 YM2413 M6295 NL-002 1108F0405 1427F0071
+93 Quiz Channel Question N7311208L1-2 Z80 YM2413 M6295 NL-002 1108F0405 1427F0071
+93 First Funky Fighter N7403208L-2 2xZ80 YM2149 YM2413 M6295 NL-001 NL-002 NL-005
+93 Animalandia Jr. 2xZ80 AY8910 YM2413 M6295 NL-001 NL-003(x2) NL-004(x2) 8251
+94 Mj Mysterious World D7107058L1-1 Z80 YM2149 YM2413 M6295 NL-002 1108F0405 1427F0071 4L02?
+94 Mj Mysterious Universe D7107058L1-1 Z80 YM2149 YM2413 M6295 NL-002 1108F0405 1427F0071
+94 Quiz 365 68000 AY8910 YM2413 M6295
+94 Rong Rong (J) N8010178L1 Z80 YM2413 M6295 NL-002 1108F0405 1427F0071 4L02F2637
+94 Hf Hana Ginga D8102048L1 Z80 YM2149 YM2413 M6295 NL-002 1108F0405 1427F0071 4L02?
+94 Super Hana Paradise N8010178L1+N73RSUB Z80 YM2413 M6295 NL-002 1108F0406 1427F0071 4L02F2637
+95 Mj Dai Chuuka Ken D11107218L1 Z80 AY8910 YM2413 M6295 70C160F009
+95 Mj Super Dai Chuuka Ken D11510198L1 Z80 AY8910 YM2413 M6295
+95 Hf Hana Gokou N83061581L1 Z80 AY8910 YM2413 M6295 NL-002 1108? 1427? 4L02?
+95 Hf Hana Gokou Bangaihen N10805078L1 Z80 AY8910 YM2413 M6295 NL-002 1108? 1427? 4L02?
+95 Nettoh Quiz Champion 68000 AY8910 YM2413 M6295
+95 Ultra Champion (K) N11309208L1+N114SUB 68000 AY8910 YM2413 M6295 NL-005
+95 Don Den Lover (J) D1120901L8 68000 YMZ284 YM2413 M6295 NL-005
+96 Don Den Lover (HK) D11309208L1 68000 YMZ284 YM2413 M6295 NL-005
+96 Panel&Variety Akamaru 68000 YMZ284 YM2413 M6295 NL-005
+96 Mj Fantasic Love NS5000101+? Z80 YMZ284 YM2413 M6295 NL-005
+96 Hana Kanzashi Z80 YM2413 M6295 70C160F011?
+96 Mj Seiryu Densetsu NM5020403 Z80 YMZ284 YM2413 M6295 70C160F011?
+96 Mj Janshin Plus NM7001004 Z80 YMZ284 YM2413 M6295 TZ-2053P
+96 Mj Dai Touyouken NM7001004 Z80 YMZ284 YM2413 M6295 TZ-2053P
+96 Return Of Sel Jan II NM504-2 Z80 YM2149 YM2413 M6295 TZ-2053P?
+97 Hana Kagerou KC80 YM2413 M6295 70C160F011
+97 Kkot Bi Nyo 9090123-2 KC80 YM2413 M6295 70C160F011 A1010
+97 Kkot Bi Nyo Special 9090123-3 KC80 YM2413 M6295 ?
+98 Mj Chuukanejyo D11107218L1 Z80 AY8910 YM2413 M6295 70C160F009
+98 Mj Reach Ippatsu KC80 YM2413 M6295 70C160F011
+99 Mj Jong-Tei NM532-9902 Z80 YM2413 M6295 4L10FXXXX?
+00 Mj Gorgeous Night TSM003-0002 Z80 YM2413 M6295 4L10FXXXX?
+02 Mj Daimyojin TSM015-0111 Z80 YM2413 M6295 70C160F011
+04 Mj Momotarou TSM015-0111? Z80 YM2413 M6295 70C160F011?
--------------------------------------------------------------------------------------------------------------------
TODO:
@@ -340,6 +344,8 @@ public:
DECLARE_READ8_MEMBER(hanakanz_rand_r);
DECLARE_WRITE8_MEMBER(mjreach1_protection_w);
DECLARE_READ8_MEMBER(mjreach1_protection_r);
+ DECLARE_WRITE8_MEMBER(mjschuka_protection_w);
+ DECLARE_READ8_MEMBER(mjschuka_protection_r);
DECLARE_READ8_MEMBER(mjchuuka_keyb_r);
DECLARE_WRITE8_MEMBER(mjchuuka_blitter_w);
DECLARE_READ8_MEMBER(mjchuuka_gfxrom_0_r);
@@ -384,6 +390,9 @@ public:
DECLARE_WRITE8_MEMBER(mjflove_coincounter_w);
DECLARE_WRITE8_MEMBER(jongtei_dsw_keyb_w);
DECLARE_READ8_MEMBER(jongtei_busy_r);
+ DECLARE_READ8_MEMBER(mjgnight_protection_r);
+ DECLARE_WRITE8_MEMBER(mjgnight_protection_w);
+ DECLARE_WRITE8_MEMBER(mjgnight_coincounter_w);
DECLARE_READ8_MEMBER(sryudens_keyb_r);
DECLARE_WRITE8_MEMBER(sryudens_coincounter_w);
DECLARE_WRITE8_MEMBER(sryudens_rambank_w);
@@ -3038,6 +3047,66 @@ ADDRESS_MAP_END
/***************************************************************************
+ Mahjong Super Dai Chuuka Ken
+***************************************************************************/
+
+// 255F: 13 34 7A 96 A8
+// 2564: 13 34 7A 96 13
+
+WRITE8_MEMBER(ddenlovr_state::mjschuka_protection_w)
+{
+ m_prot_val = data;
+}
+
+READ8_MEMBER(ddenlovr_state::mjschuka_protection_r)
+{
+ switch (m_prot_val)
+ {
+ case 0xa8: return 0x13;
+ }
+ return m_prot_val;
+}
+
+static ADDRESS_MAP_START( mjschuka_portmap, AS_IO, 8, ddenlovr_state )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
+ AM_RANGE(0x00, 0x0f) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
+ AM_RANGE(0x1c, 0x1c) AM_READNOP AM_WRITE(sryudens_rambank_w) // ? ack on RTC int
+ AM_RANGE(0x1e, 0x1e) AM_WRITE(mjflove_rombank_w)
+
+ AM_RANGE(0x20, 0x23) AM_WRITE(ddenlovr_palette_base_w)
+ AM_RANGE(0x24, 0x27) AM_WRITE(ddenlovr_palette_mask_w)
+ AM_RANGE(0x28, 0x2b) AM_WRITE(ddenlovr_transparency_pen_w)
+ AM_RANGE(0x2c, 0x2f) AM_WRITE(ddenlovr_transparency_mask_w)
+ AM_RANGE(0x34, 0x34) AM_WRITE(ddenlovr_bgcolor_w)
+ AM_RANGE(0x35, 0x35) AM_WRITE(ddenlovr_priority_w)
+ AM_RANGE(0x36, 0x36) AM_WRITE(ddenlovr_layer_enable_w)
+ AM_RANGE(0x38, 0x38) AM_READNOP // ? ack or watchdog
+
+ AM_RANGE(0x40, 0x41) AM_WRITE(mjmyster_blitter_w)
+ AM_RANGE(0x43, 0x43) AM_READ(rongrong_gfxrom_r)
+ AM_RANGE(0x50, 0x50) AM_WRITE(mjflove_okibank_w)
+
+ AM_RANGE(0x54, 0x54) AM_READWRITE(mjschuka_protection_r, mjschuka_protection_w)
+ // 58 writes ? (0/1)
+ AM_RANGE(0x5c, 0x5c) AM_READ(hanakanz_rand_r)
+
+ AM_RANGE(0x60, 0x60) AM_WRITE(sryudens_coincounter_w)
+ AM_RANGE(0x61, 0x61) AM_WRITE(hanakanz_keyb_w)
+ AM_RANGE(0x62, 0x62) AM_READ_PORT("SYSTEM")
+ AM_RANGE(0x63, 0x64) AM_READ(sryudens_keyb_r)
+
+ AM_RANGE(0x68, 0x68) AM_READ_PORT("DSW1")
+ AM_RANGE(0x69, 0x69) AM_READ_PORT("DSW2")
+ AM_RANGE(0x6a, 0x6a) AM_READ_PORT("DSW3")
+ AM_RANGE(0x6b, 0x6b) AM_READ_PORT("DSW4")
+ AM_RANGE(0x6c, 0x6c) AM_READ_PORT("DSW5") // DSW 1-4 high bits
+ AM_RANGE(0x70, 0x71) AM_DEVWRITE("aysnd", ay8910_device, address_data_w)
+ AM_RANGE(0x74, 0x74) AM_DEVREADWRITE("oki", okim6295_device, read, write)
+ AM_RANGE(0x78, 0x79) AM_DEVWRITE("ym2413", ym2413_device, write)
+ADDRESS_MAP_END
+
+
+/***************************************************************************
Mahjong The Mysterious World
***************************************************************************/
@@ -3847,6 +3916,63 @@ ADDRESS_MAP_END
/***************************************************************************
+ Mahjong Gorgeous Night
+***************************************************************************/
+
+WRITE8_MEMBER(ddenlovr_state::mjgnight_coincounter_w)
+{
+ m_prot_val = data;
+
+ set_led_status(machine(), 0, data & 0x01); // led? 1 in-game, 0 in service mode / while booting
+
+ coin_counter_w(machine(), 0, data & 0x04); // coin-out
+ coin_counter_w(machine(), 1, data & 0x08); // coin-in
+
+ if (data & 0xf2)
+ logerror("%04x: warning, coin counter = %02x\n", space.device().safe_pc(), data);
+
+#ifdef MAME_DEBUG
+// popmessage("COIN = %02x", data);
+#endif
+}
+
+WRITE8_MEMBER(ddenlovr_state::mjgnight_protection_w)
+{
+ m_prot_val = data;
+}
+
+READ8_MEMBER(ddenlovr_state::mjgnight_protection_r)
+{
+ switch (m_prot_val)
+ {
+ case 0x12: return 0x12;
+ case 0xc0: return 0x01;
+ }
+ return m_prot_val;
+}
+
+static ADDRESS_MAP_START( mjgnight_portmap, AS_IO, 8, ddenlovr_state )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
+ AM_RANGE(0x2c, 0x2c) AM_READWRITE(jongtei_busy_r, jongtei_okibank_w)
+ AM_RANGE(0x2e, 0x2e) AM_WRITE(hanakanz_blitter_reg_w)
+ AM_RANGE(0x30, 0x30) AM_WRITE(hanakanz_rombank_w)
+ AM_RANGE(0x31, 0x31) AM_WRITE(jongtei_dsw_keyb_w)
+ AM_RANGE(0x32, 0x32) AM_READ(hanakanz_dsw_r)
+ AM_RANGE(0x40, 0x40) AM_READ_PORT("SYSTEM")
+ AM_RANGE(0x41, 0x42) AM_READ(hanakanz_keyb_r)
+ AM_RANGE(0x46, 0x46) AM_WRITE(mjgnight_coincounter_w)
+ AM_RANGE(0x46, 0x46) AM_READ(hanakanz_rand_r)
+ AM_RANGE(0x47, 0x47) AM_READWRITE(mjgnight_protection_r, mjgnight_protection_w)
+ AM_RANGE(0x60, 0x60) AM_WRITE(hanakanz_blitter_data_w)
+ AM_RANGE(0x61, 0x61) AM_WRITE(hanakanz_palette_w)
+ AM_RANGE(0x63, 0x64) AM_READ(hanakanz_gfxrom_r)
+ AM_RANGE(0x80, 0x81) AM_DEVWRITE("ym2413", ym2413_device, write)
+ AM_RANGE(0xa0, 0xa0) AM_DEVREADWRITE("oki", okim6295_device, read, write)
+ AM_RANGE(0xc0, 0xcf) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
+ADDRESS_MAP_END
+
+
+/***************************************************************************
Mahjong Seiryu Densetsu
***************************************************************************/
@@ -4721,7 +4847,7 @@ INPUT_PORTS_EXTERN( HANAFUDA_KEYS_BET );
static INPUT_PORTS_START( htengoku )
PORT_START("COINS")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE4 ) // medal out
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) // pay
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F1)
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 ) // analyzer
@@ -4792,10 +4918,10 @@ static INPUT_PORTS_START( htengoku )
PORT_DIPNAME( 0x04, 0x04, "Credits Per Note" )
PORT_DIPSETTING( 0x00, "5" )
PORT_DIPSETTING( 0x04, "10" )
- PORT_DIPNAME( 0x08, 0x08, "Max Bet" )
+ PORT_DIPNAME( 0x08, 0x08, "Max Rate" )
PORT_DIPSETTING( 0x08, "5" )
PORT_DIPSETTING( 0x00, "10" )
- PORT_DIPNAME( 0x30, 0x30, "Min Rate To Start" )
+ PORT_DIPNAME( 0x30, 0x30, "Min Rate To Play" )
PORT_DIPSETTING( 0x30, "1" )
PORT_DIPSETTING( 0x20, "2" )
PORT_DIPSETTING( 0x10, "3" )
@@ -5331,7 +5457,7 @@ INPUT_PORTS_END
static INPUT_PORTS_START( hanakanz )
PORT_START("SYSTEM")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE3 ) // medal out
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) // pay
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN)
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F1) // Test
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) // analyzer
@@ -5553,7 +5679,7 @@ INPUT_PORTS_END
static INPUT_PORTS_START( hkagerou )
PORT_START("SYSTEM")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE3 ) // medal out
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) // pay
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN)
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F1) // Test
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) // analyzer
@@ -5995,7 +6121,7 @@ INPUT_PORTS_END
static INPUT_PORTS_START( mjreach1 )
PORT_START("SYSTEM")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE3 ) // medal out
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) // pay
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN)
PORT_SERVICE(0x04, IP_ACTIVE_LOW)
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) // analyzer
@@ -6107,7 +6233,7 @@ static INPUT_PORTS_START( mjreach1 )
PORT_DIPSETTING( 0x00, "1 2 3 5 8 15 30 50" )
PORT_DIPSETTING( 0x20, "2 3 6 8 12 15 30 50" )
PORT_DIPSETTING( 0x10, "1 2 3 5 10 25 50 100" )
- PORT_DIPNAME( 0xc0, 0xc0, "Max Bet" )
+ PORT_DIPNAME( 0xc0, 0xc0, "Max Rate" )
PORT_DIPSETTING( 0xc0, "1" )
PORT_DIPSETTING( 0x80, "5" )
PORT_DIPSETTING( 0x40, "10" )
@@ -6228,7 +6354,7 @@ INPUT_PORTS_END
static INPUT_PORTS_START( jongtei )
PORT_START("SYSTEM")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE3 ) // medal out
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) // pay
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN)
PORT_SERVICE(0x04, IP_ACTIVE_LOW)
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) // analyzer
@@ -6340,7 +6466,7 @@ static INPUT_PORTS_START( jongtei )
PORT_DIPSETTING( 0x00, "1 2 3 5 8 15 30 50" )
PORT_DIPSETTING( 0x20, "2 3 6 8 12 15 30 50" )
PORT_DIPSETTING( 0x10, "1 2 3 5 10 25 50 100" )
- PORT_DIPNAME( 0xc0, 0xc0, "Max Bet" )
+ PORT_DIPNAME( 0xc0, 0xc0, "Max Rate" )
PORT_DIPSETTING( 0xc0, "1" )
PORT_DIPSETTING( 0x80, "5" )
PORT_DIPSETTING( 0x40, "10" )
@@ -6354,9 +6480,9 @@ static INPUT_PORTS_START( jongtei )
PORT_DIPSETTING( 0x00, "1 Coin/10 Credits" )
PORT_DIPNAME( 0x0c, 0x0c, "Min Rate To Play" )
PORT_DIPSETTING( 0x0c, "1" )
-// PORT_DIPSETTING( 0x08, "2" ) // ? these don't let you start a game
-// PORT_DIPSETTING( 0x04, "3" )
-// PORT_DIPSETTING( 0x00, "5" )
+ PORT_DIPSETTING( 0x08, "2" )
+ PORT_DIPSETTING( 0x04, "3" )
+ PORT_DIPSETTING( 0x00, "5" )
PORT_DIPNAME( 0x30, 0x30, "Payout" )
PORT_DIPSETTING( 0x30, "300" )
PORT_DIPSETTING( 0x20, "500" )
@@ -6457,11 +6583,67 @@ static INPUT_PORTS_START( jongtei )
INPUT_PORTS_END
+static INPUT_PORTS_START( mjgnight )
+
+ PORT_INCLUDE(jongtei)
+
+ PORT_MODIFY("DSW2")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( 1C_5C ) )
+ PORT_DIPSETTING( 0x00, "1 Coin/10 Credits" )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x38, 0x38, "Min Rate To Play" )
+ PORT_DIPSETTING( 0x38, "1" )
+ PORT_DIPSETTING( 0x30, "2" )
+ PORT_DIPSETTING( 0x28, "3" )
+ PORT_DIPSETTING( 0x20, "4" )
+ PORT_DIPSETTING( 0x18, "5" )
+ PORT_DIPSETTING( 0x10, "6" )
+ PORT_DIPSETTING( 0x08, "7" )
+ PORT_DIPSETTING( 0x00, "8" )
+ PORT_DIPNAME( 0xc0, 0xc0, "Payout" )
+ PORT_DIPSETTING( 0xc0, "300" )
+ PORT_DIPSETTING( 0x80, "500" )
+ PORT_DIPSETTING( 0x40, "700" )
+ PORT_DIPSETTING( 0x00, "1000" )
+
+ PORT_MODIFY("DSW4")
+ PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x02, 0x00, "In Game Music" )
+ PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+INPUT_PORTS_END
+
static INPUT_PORTS_START( mjchuuka )
PORT_START("SYSTEM")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE3 ) // medal out
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) // pay
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN)
PORT_SERVICE(0x04, IP_ACTIVE_LOW)
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) // analyzer
@@ -6573,7 +6755,7 @@ static INPUT_PORTS_START( mjchuuka )
PORT_DIPSETTING( 0x30, "1 2 4 8 12 16 24 32" )
PORT_DIPSETTING( 0x00, "1 2 3 5 8 15 30 50" )
PORT_DIPSETTING( 0x10, "1 2 3 5 10 25 50 100" )
- PORT_DIPNAME( 0xc0, 0xc0, "Max Bet" )
+ PORT_DIPNAME( 0xc0, 0xc0, "Max Rate" )
PORT_DIPSETTING( 0xc0, "1" )
PORT_DIPSETTING( 0x80, "5" )
PORT_DIPSETTING( 0x40, "10" )
@@ -6587,9 +6769,9 @@ static INPUT_PORTS_START( mjchuuka )
PORT_DIPSETTING( 0x00, "1 Coin/10 Credits" )
PORT_DIPNAME( 0x0c, 0x0c, "Min Rate To Play" )
PORT_DIPSETTING( 0x0c, "1" )
-// PORT_DIPSETTING( 0x08, "2" ) // ? these don't let you start a game
-// PORT_DIPSETTING( 0x04, "3" )
-// PORT_DIPSETTING( 0x00, "5" )
+ PORT_DIPSETTING( 0x08, "2" )
+ PORT_DIPSETTING( 0x04, "3" )
+ PORT_DIPSETTING( 0x00, "5" )
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x10, "10" )
PORT_DIPSETTING( 0x00, "255" )
@@ -6691,6 +6873,240 @@ static INPUT_PORTS_START( mjchuuka )
INPUT_PORTS_END
+static INPUT_PORTS_START( mjschuka )
+
+ PORT_START("SYSTEM")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) // pay
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN)
+ PORT_SERVICE(0x04, IP_ACTIVE_LOW)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) // analyzer
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE2 ) // data clear
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) // note
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1)
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN)
+
+ PORT_START("KEY0")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_A ) PORT_PLAYER(2) // A
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_E ) PORT_PLAYER(2) // E
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_I ) PORT_PLAYER(2) // I
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_M ) PORT_PLAYER(2) // M
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_KAN ) PORT_PLAYER(2) // Kan
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) // Start 2
+
+ PORT_START("KEY1")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_B ) PORT_PLAYER(2) // B
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_F ) PORT_PLAYER(2) // F
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_J ) PORT_PLAYER(2) // J
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_N ) PORT_PLAYER(2) // N
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_REACH ) PORT_PLAYER(2) // Reach
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_BET ) PORT_PLAYER(2) // BET
+
+ PORT_START("KEY2")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_C ) PORT_PLAYER(2) // C
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_G ) PORT_PLAYER(2) // G
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_K ) PORT_PLAYER(2) // K
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_CHI ) PORT_PLAYER(2) // Chi
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_RON ) PORT_PLAYER(2) // Ron
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) // nothing
+
+ PORT_START("KEY3")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_D ) PORT_PLAYER(2) // D
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_H ) PORT_PLAYER(2) // H
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_L ) PORT_PLAYER(2) // L
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_PON ) PORT_PLAYER(2) // Pon
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) // nothing
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) // nothing
+
+ PORT_START("KEY4")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_LAST_CHANCE ) PORT_PLAYER(2) // "l"
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_SCORE ) PORT_PLAYER(2) // "t"
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_DOUBLE_UP ) PORT_PLAYER(2) // "w"
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_FLIP_FLOP ) PORT_PLAYER(2) // Flip Flop
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_BIG ) PORT_PLAYER(2) // "b"
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_SMALL ) PORT_PLAYER(2) // "s"
+
+ PORT_START("KEY5")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_A ) // A
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_E ) // E
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_I ) // I
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_M ) // M
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_KAN ) // Kan
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) // Start 1
+
+ PORT_START("KEY6")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_B ) // B
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_F ) // F
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_J ) // J
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_N ) // N
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_REACH ) // Reach
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_BET ) // BET
+
+ PORT_START("KEY7")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_C ) // C
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_G ) // G
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_K ) // K
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_CHI ) // Chi
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_RON ) // Ron
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) // nothing
+
+ PORT_START("KEY8")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_D ) // D
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_H ) // H
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_L ) // L
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_PON ) // Pon
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) // nothing
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) // nothing
+
+ PORT_START("KEY9")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_LAST_CHANCE ) // "l"
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_SCORE ) // "t"
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_DOUBLE_UP ) // "w"
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_FLIP_FLOP ) // Flip Flop
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_BIG ) // "b"
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_SMALL ) // "s"
+
+ PORT_START("DSW1")
+ PORT_DIPNAME( 0x0f, 0x07, "Pay Out Rate (%)" )
+ PORT_DIPSETTING( 0x00, "50" )
+ PORT_DIPSETTING( 0x01, "53" )
+ PORT_DIPSETTING( 0x02, "56" )
+ PORT_DIPSETTING( 0x03, "59" )
+ PORT_DIPSETTING( 0x04, "62" )
+ PORT_DIPSETTING( 0x05, "65" )
+ PORT_DIPSETTING( 0x06, "68" )
+ PORT_DIPSETTING( 0x07, "71" )
+ PORT_DIPSETTING( 0x08, "75" )
+ PORT_DIPSETTING( 0x09, "78" )
+ PORT_DIPSETTING( 0x0a, "81" )
+ PORT_DIPSETTING( 0x0b, "84" )
+ PORT_DIPSETTING( 0x0c, "87" )
+ PORT_DIPSETTING( 0x0d, "90" )
+ PORT_DIPSETTING( 0x0e, "93" )
+ PORT_DIPSETTING( 0x0f, "96" )
+ PORT_DIPNAME( 0x30, 0x30, "Odds Rate" )
+ PORT_DIPSETTING( 0x20, "1 2 3 4 6 8 10 15" )
+ PORT_DIPSETTING( 0x30, "1 2 4 8 12 16 24 32" )
+ PORT_DIPSETTING( 0x00, "1 2 3 5 8 15 30 50" )
+ PORT_DIPSETTING( 0x10, "1 2 3 5 10 25 50 100" )
+ PORT_DIPNAME( 0xc0, 0xc0, "Max Rate" )
+ PORT_DIPSETTING( 0xc0, "1" )
+ PORT_DIPSETTING( 0x80, "5" )
+ PORT_DIPSETTING( 0x40, "10" )
+ PORT_DIPSETTING( 0x00, "20" )
+
+ PORT_START("DSW2")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( 1C_5C ) )
+ PORT_DIPSETTING( 0x00, "1 Coin/10 Credits" )
+ PORT_DIPNAME( 0x0c, 0x0c, "Min Rate To Play" )
+ PORT_DIPSETTING( 0x0c, "1" )
+ PORT_DIPSETTING( 0x08, "2" )
+ PORT_DIPSETTING( 0x04, "3" )
+ PORT_DIPSETTING( 0x00, "5" )
+ PORT_DIPNAME( 0x30, 0x30, "Payout" )
+ PORT_DIPSETTING( 0x30, "300" )
+ PORT_DIPSETTING( 0x20, "500" )
+ PORT_DIPSETTING( 0x10, "700" )
+ PORT_DIPSETTING( 0x00, "1000" )
+ PORT_DIPNAME( 0x40, 0x40, "W-BET" )
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x80, "Last Chance" )
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ PORT_START("DSW3")
+ PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x02, 0x00, "In Game Music" )
+ PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x00, "Girls" )
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, "Girls Speech" )
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ PORT_START("DSW4")
+ PORT_DIPNAME( 0x07, 0x07, "YAKUMAN Bonus" )
+ PORT_DIPSETTING( 0x07, "Cut" )
+ PORT_DIPSETTING( 0x06, "1 T" )
+ PORT_DIPSETTING( 0x05, "300" )
+ PORT_DIPSETTING( 0x04, "500" )
+ PORT_DIPSETTING( 0x03, "700" )
+ PORT_DIPSETTING( 0x02, "1000" )
+ PORT_DIPSETTING( 0x01, "1000?" )
+ PORT_DIPSETTING( 0x00, "1000?" )
+ PORT_DIPNAME( 0x08, 0x08, "YAKUMAN Times?" )
+ PORT_DIPSETTING( 0x00, "1" )
+ PORT_DIPSETTING( 0x08, "2" )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x00, "140" )
+ PORT_DIPSETTING( 0x10, "160" )
+ PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x40, "DonDen Key" )
+ PORT_DIPSETTING( 0x40, "Start" )
+ PORT_DIPSETTING( 0x00, "Flip Flop" )
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ PORT_START("DSW5")
+ PORT_DIPNAME( 0x01, 0x01, "Credits Per Note" )
+ PORT_DIPSETTING( 0x01, "5" )
+ PORT_DIPSETTING( 0x00, "10" )
+ PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x0c, 0x0c, "Computer Strength?" )
+ PORT_DIPSETTING( 0x0c, "Weak" )
+ PORT_DIPSETTING( 0x08, DEF_STR( Normal ))
+ PORT_DIPSETTING( 0x04, "Strong" )
+ PORT_DIPSETTING( 0x00, "Very Strong" )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ PORT_START("BET")
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+ PORT_START("HOPPER")
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+
+INPUT_PORTS_END
+
+
static INPUT_PORTS_START( funkyfig )
PORT_START("IN0") /* Keys (port 83 with port 80 = 20) */
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )
@@ -6794,7 +7210,7 @@ INPUT_PORTS_END
static INPUT_PORTS_START( mjmyster )
PORT_START("SYSTEM")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE3 ) // medal out
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) // pay
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN)
PORT_SERVICE_NO_TOGGLE(0x04, IP_ACTIVE_LOW)
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) // analyzer
@@ -6866,7 +7282,7 @@ static INPUT_PORTS_START( mjmyster )
PORT_DIPSETTING( 0x30, "1 2 4 8 12 16 24 32" )
PORT_DIPSETTING( 0x00, "1 2 3 5 8 15 30 50" )
PORT_DIPSETTING( 0x10, "1 2 3 5 10 25 50 100" )
- PORT_DIPNAME( 0xc0, 0xc0, "Max Bet" )
+ PORT_DIPNAME( 0xc0, 0xc0, "Max Rate" )
PORT_DIPSETTING( 0xc0, "1" )
PORT_DIPSETTING( 0x80, "5" )
PORT_DIPSETTING( 0x40, "10" )
@@ -6880,9 +7296,9 @@ static INPUT_PORTS_START( mjmyster )
PORT_DIPSETTING( 0x00, "1 Coin/10 Credits" )
PORT_DIPNAME( 0x0c, 0x0c, "Min Rate To Play" )
PORT_DIPSETTING( 0x0c, "1" )
-// PORT_DIPSETTING( 0x08, "2" ) // ? these don't let you start a game
-// PORT_DIPSETTING( 0x04, "3" )
-// PORT_DIPSETTING( 0x00, "5" )
+ PORT_DIPSETTING( 0x08, "2" )
+ PORT_DIPSETTING( 0x04, "3" )
+ PORT_DIPSETTING( 0x00, "5" )
PORT_DIPNAME( 0x70, 0x70, "YAKUMAN Bonus" )
PORT_DIPSETTING( 0x70, "Cut" )
PORT_DIPSETTING( 0x60, "1 T" )
@@ -6974,7 +7390,7 @@ INPUT_PORTS_END
static INPUT_PORTS_START( hginga )
PORT_START("SYSTEM")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE3 ) // medal out
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) // pay
// PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F1) // Test
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) // analyzer
@@ -7194,7 +7610,7 @@ INPUT_PORTS_END
static INPUT_PORTS_START( hgokou )
PORT_START("SYSTEM")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE3 ) // medal out
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) // pay
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN)
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F1) PORT_TOGGLE
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) // analyzer
@@ -7408,7 +7824,7 @@ INPUT_PORTS_END
static INPUT_PORTS_START( mjmyornt )
PORT_START("SYSTEM")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE3 ) // medal out
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) // pay
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN)
PORT_SERVICE_NO_TOGGLE(0x04, IP_ACTIVE_LOW)
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) // analyzer
@@ -7480,7 +7896,7 @@ static INPUT_PORTS_START( mjmyornt )
PORT_DIPSETTING( 0x30, "1 2 4 8 12 16 24 32" )
PORT_DIPSETTING( 0x00, "1 2 3 5 8 15 30 50" )
PORT_DIPSETTING( 0x10, "1 2 3 5 10 25 50 100" )
- PORT_DIPNAME( 0xc0, 0xc0, "Max Bet" )
+ PORT_DIPNAME( 0xc0, 0xc0, "Max Rate" )
PORT_DIPSETTING( 0xc0, "1" )
PORT_DIPSETTING( 0x80, "5" )
PORT_DIPSETTING( 0x40, "10" )
@@ -7488,15 +7904,21 @@ static INPUT_PORTS_START( mjmyornt )
PORT_START("DSW2")
PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) )
- PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x01, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x00, "1 Coin/10 Credits" )
+ PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW5",0x01,EQUALS,0x01)
+ PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW5",0x01,EQUALS,0x01)
+ PORT_DIPSETTING( 0x01, DEF_STR( 1C_5C ) ) PORT_CONDITION("DSW5",0x01,EQUALS,0x01)
+ PORT_DIPSETTING( 0x00, "1 Coin/10 Credits" ) PORT_CONDITION("DSW5",0x01,EQUALS,0x01)
+
+ PORT_DIPSETTING( 0x01, DEF_STR( 2C_2C ) ) PORT_CONDITION("DSW5",0x01,EQUALS,0x00)
+ PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW5",0x01,EQUALS,0x00)
+ PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) PORT_CONDITION("DSW5",0x01,EQUALS,0x00)
+ PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW5",0x01,EQUALS,0x00)
+
PORT_DIPNAME( 0x0c, 0x0c, "Min Rate To Play" )
PORT_DIPSETTING( 0x0c, "1" )
-// PORT_DIPSETTING( 0x08, "2" ) // ? these don't let you start a game
-// PORT_DIPSETTING( 0x04, "3" )
-// PORT_DIPSETTING( 0x00, "5" )
+ PORT_DIPSETTING( 0x08, "2" )
+ PORT_DIPSETTING( 0x04, "3" )
+ PORT_DIPSETTING( 0x00, "5" )
PORT_DIPNAME( 0x70, 0x70, "YAKUMAN Bonus" )
PORT_DIPSETTING( 0x70, "Cut" )
PORT_DIPSETTING( 0x60, "1 T" )
@@ -7511,11 +7933,11 @@ static INPUT_PORTS_START( mjmyornt )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_START("DSW3")
- PORT_DIPNAME( 0x03, 0x03, "YAKUMAN Times" )
-// PORT_DIPSETTING( 0x00, "1" )
- PORT_DIPSETTING( 0x03, "1" )
- PORT_DIPSETTING( 0x02, "2" )
- PORT_DIPSETTING( 0x01, "3?" )
+ PORT_DIPNAME( 0x03, 0x03, "Bonus Game" )
+ PORT_DIPSETTING( 0x00, "Slot? (duplicate)" )
+ PORT_DIPSETTING( 0x03, "Slot?" )
+ PORT_DIPSETTING( 0x02, "Slot + Girls?" )
+ PORT_DIPSETTING( 0x01, "Girl Choice" ) // 4 choices in gal mode check (instead of 3)
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
@@ -7553,7 +7975,7 @@ static INPUT_PORTS_START( mjmyornt )
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
+ PORT_DIPNAME( 0x40, 0x40, "Set Clock" )
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
@@ -7561,195 +7983,15 @@ static INPUT_PORTS_START( mjmyornt )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_START("DSW5")
- PORT_DIPNAME( 0x03, 0x03, "Computer Strength?" )
- PORT_DIPSETTING( 0x03, "Weak" )
- PORT_DIPSETTING( 0x02, DEF_STR( Normal ))
- PORT_DIPSETTING( 0x01, "Strong" )
- PORT_DIPSETTING( 0x00, "Very Strong" )
- PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x08, "DonDen Key" )
- PORT_DIPSETTING( 0x08, "Start" )
- PORT_DIPSETTING( 0x00, "Flip Flop" )
- PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x40, "Credits Per Note" )
- PORT_DIPSETTING( 0x40, "5" )
- PORT_DIPSETTING( 0x00, "10" )
- PORT_DIPNAME( 0x80, 0x00, DEF_STR( Flip_Screen ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x80, DEF_STR( On ) )
-INPUT_PORTS_END
-
-#ifdef UNUSED_DEFINITION
-static INPUT_PORTS_START( mjmyuniv )
- PORT_START("SYSTEM")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE3 ) // medal out
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN)
- PORT_SERVICE_NO_TOGGLE(0x04, IP_ACTIVE_LOW)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) // analyzer
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE2 ) // data clear
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN2 ) // note
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1)
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN)
-
- PORT_START("KEY0")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_A ) // A
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_E ) // E
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_I ) // I
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_M ) // M
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_KAN ) // Kan
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) // Start 1
-
- PORT_START("KEY1")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_B ) // B
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_F ) // F
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_J ) // J
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_N ) // N
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_REACH ) // Reach
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_BET ) // BET
-
- PORT_START("KEY2")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_C ) // C
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_G ) // G
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_K ) // K
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_CHI ) // Chi
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_RON ) // Ron
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) // nothing
-
- PORT_START("KEY3")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_D ) // D
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_H ) // H
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_L ) // L
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_PON ) // Pon
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) // nothing
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN ) // nothing
-
- PORT_START("KEY4")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_LAST_CHANCE ) // "l"
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_SCORE ) // "t"
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_DOUBLE_UP ) // "w"
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_FLIP_FLOP ) // Flip Flop
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_BIG ) // "b"
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_SMALL ) // "s"
-
- PORT_START("DSW1")
- PORT_DIPNAME( 0x0f, 0x07, "Pay Out Rate (%)" )
- PORT_DIPSETTING( 0x00, "50" )
- PORT_DIPSETTING( 0x01, "53" )
- PORT_DIPSETTING( 0x02, "56" )
- PORT_DIPSETTING( 0x03, "59" )
- PORT_DIPSETTING( 0x04, "62" )
- PORT_DIPSETTING( 0x05, "65" )
- PORT_DIPSETTING( 0x06, "68" )
- PORT_DIPSETTING( 0x07, "71" )
- PORT_DIPSETTING( 0x08, "75" )
- PORT_DIPSETTING( 0x09, "78" )
- PORT_DIPSETTING( 0x0a, "81" )
- PORT_DIPSETTING( 0x0b, "84" )
- PORT_DIPSETTING( 0x0c, "87" )
- PORT_DIPSETTING( 0x0d, "90" )
- PORT_DIPSETTING( 0x0e, "93" )
- PORT_DIPSETTING( 0x0f, "96" )
- PORT_DIPNAME( 0x30, 0x30, "Odds Rate" )
- PORT_DIPSETTING( 0x20, "2 3 6 8 12 15 30 50" )
- PORT_DIPSETTING( 0x30, "1 2 4 8 12 16 24 32" )
- PORT_DIPSETTING( 0x00, "1 2 3 5 8 15 30 50" )
- PORT_DIPSETTING( 0x10, "1 2 3 5 10 25 50 100" )
- PORT_DIPNAME( 0xc0, 0xc0, "Max Bet" )
- PORT_DIPSETTING( 0xc0, "1" )
- PORT_DIPSETTING( 0x80, "5" )
- PORT_DIPSETTING( 0x40, "10" )
- PORT_DIPSETTING( 0x00, "20" )
-
- PORT_START("DSW2")
- PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) )
- PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) )
- PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
- PORT_DIPSETTING( 0x01, DEF_STR( 1C_5C ) )
- PORT_DIPSETTING( 0x00, "1 Coin/10 Credits" )
- PORT_DIPNAME( 0x0c, 0x0c, "Min Rate To Play" )
- PORT_DIPSETTING( 0x0c, "1" )
-// PORT_DIPSETTING( 0x08, "2" ) // ? these don't let you start a game
-// PORT_DIPSETTING( 0x04, "3" )
-// PORT_DIPSETTING( 0x00, "5" )
- PORT_DIPNAME( 0x70, 0x70, "YAKUMAN Bonus" )
- PORT_DIPSETTING( 0x70, "Cut" )
- PORT_DIPSETTING( 0x60, "1 T" )
- PORT_DIPSETTING( 0x50, "300" )
- PORT_DIPSETTING( 0x40, "500" )
- PORT_DIPSETTING( 0x30, "700" )
- PORT_DIPSETTING( 0x20, "1000" )
- PORT_DIPSETTING( 0x10, "1000?" )
- PORT_DIPSETTING( 0x00, "1000?" )
- PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
- PORT_START("DSW3")
- PORT_DIPNAME( 0x03, 0x03, "YAKUMAN Times" )
-// PORT_DIPSETTING( 0x00, "1" )
- PORT_DIPSETTING( 0x03, "1" )
- PORT_DIPSETTING( 0x02, "2" )
- PORT_DIPSETTING( 0x01, "3?" )
- PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x18, 0x18, "Payout" )
- PORT_DIPSETTING( 0x18, "300" )
- PORT_DIPSETTING( 0x10, "500" )
- PORT_DIPSETTING( 0x08, "700" )
- PORT_DIPSETTING( 0x00, "1000" )
- PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
- PORT_START("DSW4")
- PORT_DIPNAME( 0x01, 0x00, DEF_STR( Demo_Sounds ) )
+ PORT_DIPNAME( 0x01, 0x01, "Alternate Coinage" )
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x00, "In Game Music" )
+ PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
- PORT_START("DSW5")
- PORT_DIPNAME( 0x03, 0x03, "Computer Strength?" )
- PORT_DIPSETTING( 0x03, "Weak" )
- PORT_DIPSETTING( 0x02, DEF_STR( Normal ))
- PORT_DIPSETTING( 0x01, "Strong" )
- PORT_DIPSETTING( 0x00, "Very Strong" )
- PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
- PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x08, "DonDen Key" )
PORT_DIPSETTING( 0x08, "Start" )
PORT_DIPSETTING( 0x00, "Flip Flop" )
@@ -7766,7 +8008,22 @@ static INPUT_PORTS_START( mjmyuniv )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
INPUT_PORTS_END
-#endif
+
+static INPUT_PORTS_START( mjmyorn2 )
+ PORT_INCLUDE(mjmyornt)
+
+ PORT_MODIFY("DSW2")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW5",0x01,EQUALS,0x01)
+ PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW5",0x01,EQUALS,0x01)
+ PORT_DIPSETTING( 0x01, DEF_STR( 1C_5C ) ) PORT_CONDITION("DSW5",0x01,EQUALS,0x01)
+ PORT_DIPSETTING( 0x00, "1 Coin/10 Credits" ) PORT_CONDITION("DSW5",0x01,EQUALS,0x01)
+
+ PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW5",0x01,EQUALS,0x00) // different alternate coinage
+ PORT_DIPSETTING( 0x01, DEF_STR( 2C_2C ) ) PORT_CONDITION("DSW5",0x01,EQUALS,0x00)
+ PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW5",0x01,EQUALS,0x00)
+ PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) PORT_CONDITION("DSW5",0x01,EQUALS,0x00)
+INPUT_PORTS_END
static INPUT_PORTS_START( akamaru )
PORT_START("P1")
@@ -8169,7 +8426,7 @@ INPUT_PORTS_END
static INPUT_PORTS_START( sryudens )
PORT_START("SYSTEM")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE3 ) // medal out
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) // pay
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) // analyzer
@@ -8281,7 +8538,7 @@ static INPUT_PORTS_START( sryudens )
PORT_DIPSETTING( 0x00, "1 2 3 5 8 15 30 50" )
PORT_DIPSETTING( 0x20, "2 3 6 8 12 15 30 50" )
PORT_DIPSETTING( 0x10, "1 2 3 5 10 25 50 100" )
- PORT_DIPNAME( 0xc0, 0xc0, "Max Bet" )
+ PORT_DIPNAME( 0xc0, 0xc0, "Max Rate" )
PORT_DIPSETTING( 0xc0, "1" )
PORT_DIPSETTING( 0x80, "5" )
PORT_DIPSETTING( 0x40, "10" )
@@ -8295,9 +8552,9 @@ static INPUT_PORTS_START( sryudens )
PORT_DIPSETTING( 0x00, "1 Coin/10 Credits" )
PORT_DIPNAME( 0x0c, 0x0c, "Min Rate To Play" )
PORT_DIPSETTING( 0x0c, "1" )
-// PORT_DIPSETTING( 0x08, "2" ) // ? these don't let you start a game
-// PORT_DIPSETTING( 0x04, "3" )
-// PORT_DIPSETTING( 0x00, "5" )
+ PORT_DIPSETTING( 0x08, "2" )
+ PORT_DIPSETTING( 0x04, "3" )
+ PORT_DIPSETTING( 0x00, "5" )
PORT_DIPNAME( 0x30, 0x30, "Payout" )
PORT_DIPSETTING( 0x30, "300" )
PORT_DIPSETTING( 0x20, "500" )
@@ -8402,7 +8659,7 @@ INPUT_PORTS_END
static INPUT_PORTS_START( seljan2 )
PORT_START("SYSTEM")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE3 ) // medal out
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) // pay
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_SERVICE( 0x04, IP_ACTIVE_LOW )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) // analyzer
@@ -8514,7 +8771,7 @@ static INPUT_PORTS_START( seljan2 )
PORT_DIPSETTING( 0x00, "1 2 3 5 8 15 30 50" )
PORT_DIPSETTING( 0x20, "2 3 6 8 12 15 30 50" )
PORT_DIPSETTING( 0x10, "1 2 3 5 10 25 50 100" )
- PORT_DIPNAME( 0xc0, 0x40, "Max Bet" )
+ PORT_DIPNAME( 0xc0, 0x40, "Max Rate" )
PORT_DIPSETTING( 0xc0, "1" )
PORT_DIPSETTING( 0x80, "5" )
PORT_DIPSETTING( 0x40, "10" )
@@ -8635,7 +8892,7 @@ INPUT_PORTS_END
static INPUT_PORTS_START( janshinp )
PORT_START("SYSTEM")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE3 ) // medal out
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) // pay
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_SERVICE(0x04, IP_ACTIVE_LOW)
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) // analyzer
@@ -8747,7 +9004,7 @@ static INPUT_PORTS_START( janshinp )
PORT_DIPSETTING( 0x00, "1 2 3 5 8 15 30 50" )
PORT_DIPSETTING( 0x20, "2 3 6 8 12 15 30 50" )
PORT_DIPSETTING( 0x10, "1 2 3 5 10 25 50 100" )
- PORT_DIPNAME( 0xc0, 0x40, "Max Bet" )
+ PORT_DIPNAME( 0xc0, 0x40, "Max Rate" )
PORT_DIPSETTING( 0xc0, "1" )
PORT_DIPSETTING( 0x80, "5" )
PORT_DIPSETTING( 0x40, "10" )
@@ -8867,7 +9124,7 @@ INPUT_PORTS_END
static INPUT_PORTS_START( dtoyoken )
PORT_START("SYSTEM")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE3 ) // medal out
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) // pay
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_SERVICE(0x04, IP_ACTIVE_LOW)
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) // analyzer
@@ -8979,7 +9236,7 @@ static INPUT_PORTS_START( dtoyoken )
PORT_DIPSETTING( 0x00, "1 2 3 5 8 15 30 50" )
PORT_DIPSETTING( 0x20, "2 3 6 8 12 15 30 50" )
PORT_DIPSETTING( 0x10, "1 2 3 5 10 25 50 100" )
- PORT_DIPNAME( 0xc0, 0x40, "Max Bet" )
+ PORT_DIPNAME( 0xc0, 0x40, "Max Rate" )
PORT_DIPSETTING( 0xc0, "1" )
PORT_DIPSETTING( 0x80, "5" )
PORT_DIPSETTING( 0x40, "10" )
@@ -9100,7 +9357,7 @@ INPUT_PORTS_END
static INPUT_PORTS_START( daimyojn )
PORT_START("SYSTEM")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE3 ) // medal out
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_CODE(KEYCODE_4) // pay
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME(DEF_STR( Test )) PORT_CODE(KEYCODE_F1) PORT_TOGGLE
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) // analyzer
@@ -9213,7 +9470,7 @@ static INPUT_PORTS_START( daimyojn )
// PORT_DIPSETTING( 0x10, "1 2 3 5 10 25 50 100" )
// PORT_DIPSETTING( 0x20, "2 3 6 8 12 15 30 50" )
// PORT_DIPSETTING( 0x30, "2 3 6 8 12 15 30 50" )
- PORT_DIPNAME( 0xc0, 0xc0, "Max Bet" )
+ PORT_DIPNAME( 0xc0, 0xc0, "Max Rate" )
PORT_DIPSETTING( 0xc0, "1" )
PORT_DIPSETTING( 0x80, "5" )
PORT_DIPSETTING( 0x40, "10" )
@@ -9911,6 +10168,53 @@ MACHINE_CONFIG_END
/***************************************************************************
+ Mahjong Super Dai Chuuka Ken
+***************************************************************************/
+
+static MACHINE_CONFIG_START( mjschuka, ddenlovr_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu",Z80,XTAL_16MHz/2)
+ MCFG_CPU_PROGRAM_MAP(mjmyster_map)
+ MCFG_CPU_IO_MAP(mjschuka_portmap)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", ddenlovr_state, hginga_irq)
+
+ MCFG_MACHINE_START_OVERRIDE(ddenlovr_state,hanakanz)
+ MCFG_MACHINE_RESET_OVERRIDE(ddenlovr_state,ddenlovr)
+
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
+ MCFG_SCREEN_SIZE(336, 256+22)
+ MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 5, 256-11-1)
+ MCFG_SCREEN_UPDATE_DRIVER(ddenlovr_state, screen_update_ddenlovr)
+ MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
+ MCFG_SCREEN_PALETTE("palette")
+
+ MCFG_PALETTE_ADD("palette", 0x200)
+
+ MCFG_VIDEO_START_OVERRIDE(ddenlovr_state,mjflove) // blitter commands in the roms are shuffled around
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+
+ MCFG_SOUND_ADD("ym2413", YM2413, XTAL_28_63636MHz / 8)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
+
+ 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_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
+
+ /* devices */
+ MCFG_DEVICE_ADD("rtc", MSM6242, XTAL_32_768kHz)
+ MCFG_MSM6242_OUT_INT_HANDLER(WRITELINE(ddenlovr_state, hginga_rtc_irq))
+MACHINE_CONFIG_END
+
+
+/***************************************************************************
Mahjong The Mysterious World
***************************************************************************/
@@ -10095,6 +10399,9 @@ static MACHINE_CONFIG_DERIVED( mjmyornt, quizchq )
MCFG_CPU_IO_MAP(mjmyster_portmap)
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", ddenlovr_state, mjmyster_irq, "screen", 0, 1)
+ MCFG_SCREEN_MODIFY("screen")
+ MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 4, 256-16+4-1)
+
MCFG_MACHINE_START_OVERRIDE(ddenlovr_state,mjmyster)
MCFG_DEVICE_MODIFY("rtc")
@@ -10163,7 +10470,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_START( jongtei, ddenlovr_state )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu",Z80, XTAL_20MHz / 2) // ?
+ MCFG_CPU_ADD("maincpu",Z80, XTAL_20MHz / 2) // TMPZ84C015
MCFG_CPU_PROGRAM_MAP(hanakanz_map)
MCFG_CPU_IO_MAP(jongtei_portmap)
MCFG_CPU_VBLANK_INT_DRIVER("screen", ddenlovr_state, hanakanz_irq)
@@ -10199,6 +10506,15 @@ static MACHINE_CONFIG_START( jongtei, ddenlovr_state )
MCFG_MSM6242_OUT_INT_HANDLER(WRITELINE(ddenlovr_state, hanakanz_rtc_irq))
MACHINE_CONFIG_END
+static MACHINE_CONFIG_DERIVED( mjgnight, jongtei )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_IO_MAP(mjgnight_portmap)
+
+ MCFG_SCREEN_MODIFY("screen")
+ MCFG_SCREEN_SIZE(336, 256)
+ MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 5-4, 256-11-1-4)
+MACHINE_CONFIG_END
+
/***************************************************************************
Mahjong Seiryu Densetsu
***************************************************************************/
@@ -11496,6 +11812,67 @@ ROM_END
/***************************************************************************
+Mahjong Super Dai Chuuka Ken (Dynax, 1995)
+
+PCB Layout
+----------
+
+Dynax Inc. Nagoya Japan D11510198L1
+sticker: D11509208L1
+|----------------------------------------|
+| MB3714A TA7535(x2) M6295 1151 3V_BATT|
+| VOL YMZ284-D YM2413 1152 |
+| DSW5 16MHz PAL |
+| CPU 62256 |
+| ULN2003 1153 62421RTC|
+| PLCC44/68 |
+| |
+| 28.63636MHz M514262 |
+| M514262 |
+| QFP208 M514262 |
+| CXK5863 M514262 |
+| PAL |
+|DSW1 DSW2 1154 |
+|DSW3 DSW4 1155 |
+|----------------------------------------|
+Notes:
+ PLCC44 and QFP208 unknown (surface scratched), location has alternative pads for PLCC68
+ CPU - surface scratched. clock input 16MHz, looks like TMPZ8400
+ M6295 - clock 1.0227MHz (28.63636/28). Pin 7 HIGH
+ YMZ284 - clock 3.579545MHz (28.63636/8)
+ YM2413 - clock 3.579545MHz (28.63636/8)
+ DSW1-4 - 10-position DIP switches
+ DSW5 - 4-position DIP switch
+ TA7535 - = LM358
+ VSync - 60.8529Hz
+ HSync - 15.2790kHz
+ EPROM 1152 is M27C1001, others are MX27C4000
+
+***************************************************************************/
+
+ROM_START( mjschuka )
+ ROM_REGION( 0x90000+16*0x1000, "maincpu", 0 ) /* Z80 Code */
+ ROM_LOAD( "1153.5c", 0x00000, 0x80000, CRC(67cf10db) SHA1(a813f44578eb2d67b4346ffd9c15e44e7fa91ca7) )
+ ROM_RELOAD( 0x10000, 0x80000 )
+
+ ROM_REGION( 0x100000, "blitter", 0 ) /* blitter data */
+ ROM_LOAD( "1154.11b", 0x00000, 0x80000, CRC(b8d04189) SHA1(1acac851c21e1055843e1398087d7afd8b9201b8) )
+ ROM_LOAD( "1155.12b", 0x80000, 0x80000, CRC(4208edcf) SHA1(444472107dac548956d2749cd892214efb6ff2f6) )
+
+ ROM_REGION( 0x200000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "1151.1c", 0x000000, 0x80000, CRC(c92065a9) SHA1(65c38c3a31d3f4b8240a16fdcdf376acdf5c17d2) )
+ ROM_RELOAD( 0x100000, 0x20000 )
+ ROM_LOAD( "1152.2c", 0x080000, 0x20000, CRC(f9244532) SHA1(b502d8d3569c4b4d655af3baf05a3c79831a84ff) )
+ ROM_RELOAD( 0x180000, 0x20000 )
+ ROM_RELOAD( 0x0a0000, 0x20000 )
+ ROM_RELOAD( 0x1a0000, 0x20000 )
+ ROM_RELOAD( 0x0c0000, 0x20000 )
+ ROM_RELOAD( 0x1c0000, 0x20000 )
+ROM_END
+
+
+/***************************************************************************
+
The First Funky Fighter
Nakanihon, 1994
@@ -11756,7 +12133,7 @@ ROM_END
/***************************************************************************
Mahjong The Mysterious Orient
-Dynax, 1994
+Dynax, 1992
PCB Layout
----------
@@ -11814,6 +12191,32 @@ ROM_START( mjmyornt )
ROM_LOAD( "7101.1e", 0x00000, 0x20000, CRC(09b7a9b2) SHA1(64d9ccbb726bb6c5b362afc92bca2e3db87fd454) )
ROM_END
+/***************************************************************************
+
+Mahjong The Mysterious Orient Part 2
+Dynax, 1993
+
+Same PCB as Mysterious Orient / Mysterious Universe (D7107058L1-1).
+ROM labels are blank, so their file names are just the location.
+
+***************************************************************************/
+
+ROM_START( mjmyorn2 )
+ ROM_REGION( 0x90000 + 0x1000*8, "maincpu", 0 ) /* Z80 Code + space for banked RAM */
+ ROM_LOAD( "3d", 0x00000, 0x40000, CRC(7ef07c1e) SHA1(3fabd429c71224ddfaa4552e54f1d763e7e40c18) )
+ ROM_RELOAD( 0x10000, 0x40000 )
+
+ ROM_REGION( 0x1c0000, "blitter", 0 ) /* blitter data */
+ ROM_LOAD( "12b", 0x000000, 0x80000, CRC(1debae36) SHA1(670fa1203b9f127f9ce3150a4a0cae730cbc426f) )
+ ROM_LOAD( "11b", 0x080000, 0x80000, CRC(fe9953f7) SHA1(db7bef218f830f7a0e7d68ee6ff363f9b5c2966c) )
+ ROM_LOAD( "10b", 0x100000, 0x80000, CRC(6d0fd29a) SHA1(9b31668acf1790d9aecd1f8e8c0cb52a7a625d2d) )
+ ROM_LOAD( "9b", 0x180000, 0x40000, CRC(36228e6a) SHA1(f6153d6fc1c53d1ffa54820b2803967c50a148dd) )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "1e", 0x00000, 0x20000, CRC(09b7a9b2) SHA1(64d9ccbb726bb6c5b362afc92bca2e3db87fd454) )
+ ROM_RELOAD( 0x20000, 0x20000 )
+ROM_END
+
/***************************************************************************
@@ -12306,6 +12709,31 @@ ROM_END
/***************************************************************************
+Mahjong Gorgeous Night
+
+PCB is identical to Mahjong Jong-Tei, but with number:
+TSM003-0002 Techno-Top, Limited
+
+***************************************************************************/
+
+ROM_START( mjgnight )
+ ROM_REGION( 0x90000+16*0x1000, "maincpu", 0 ) /* Z80 Code */
+ ROM_LOAD( "00302.5b", 0x00000, 0x80000, CRC(7169611a) SHA1(90744799b57001a4f6d0767db639362f24d3797c) )
+ ROM_RELOAD( 0x10000, 0x80000 )
+
+ ROM_REGION( 0x800000, "blitter", 0 ) /* blitter data */
+ ROM_LOAD( "00303.7b", 0x000000, 0x200000, CRC(5b2f28a5) SHA1(12fff6d5736e58e32b0efd6d136952bc4c03e661) )
+ ROM_LOAD( "00304.8b", 0x200000, 0x200000, CRC(82624fb6) SHA1(bea307a59b2dd8e6655c8fb02f1eaa6aa072cbdc) )
+ ROM_LOAD( "00305.10b", 0x400000, 0x200000, CRC(4a5a6ac5) SHA1(ef89f56d9033eb2c633d5ee2ddd13f6325c61051) )
+ ROM_LOAD( "00306.12b", 0x600000, 0x200000, CRC(143c4d24) SHA1(9a9544b98162240fbc0adb867eff8630b3cd1800) )
+
+ ROM_REGION( 0x200000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "00301.2a", 0x000000, 0x100000, CRC(f5a0953a) SHA1(be8847b581d7cf8d6e2c1361312e12e1513a9621) )
+ ROM_RELOAD( 0x100000, 0x100000 )
+ROM_END
+
+/***************************************************************************
+
Mahjong Seiryu Densetsu
Dynax 1996
@@ -12595,47 +13023,50 @@ ROM_START( htengoku )
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)", GAME_NO_COCKTAIL )
-GAME( 1993, funkyfig, 0, funkyfig, funkyfig, driver_device, 0, ROT0, "Nakanihon / East Technology (Taito license)", "The First Funky Fighter (set 1)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS ) // scrolling, priority?
-GAME( 1993, funkyfiga, funkyfig, funkyfig, funkyfig, driver_device, 0, ROT0, "Nakanihon / East Technology (Taito license)", "The First Funky Fighter (set 2)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
-GAME( 1993, quizchq, 0, quizchq, quizchq, driver_device, 0, ROT0, "Nakanihon", "Quiz Channel Question (Ver 1.00) (Japan)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
-GAME( 1993, quizchql, quizchq, quizchq, quizchq, driver_device, 0, ROT0, "Nakanihon (Laxan license)", "Quiz Channel Question (Ver 1.23) (Taiwan?)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
-GAME( 1993, animaljr, 0, mmpanic, animaljr, driver_device, 0, ROT0, "Nakanihon / East Technology (Taito license)", "Exciting Animal Land Jr. (USA)", GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND )
-GAME( 1993, animaljrs, animaljr, mmpanic, animaljr, driver_device, 0, ROT0, "Nakanihon / East Technology (Taito license)", "Animalandia Jr. (Spanish)", GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND )
-GAME( 1993, animaljrj, animaljr, mmpanic, animaljr, driver_device, 0, ROT0, "Nakanihon / East Technology (Taito license)", "Waiwai Animal Land Jr. (Japan)", GAME_NO_COCKTAIL )
-GAME( 1994, hginga, 0, hginga, hginga, driver_device, 0, ROT0, "Dynax", "Hanafuda Hana Ginga", GAME_NO_COCKTAIL )
-GAME( 1994, mjmyster, 0, mjmyster, mjmyster, driver_device, 0, ROT0, "Dynax", "Mahjong The Mysterious World (set 1)", GAME_NO_COCKTAIL )
-GAME( 1994, mjmywrld, mjmyster, mjmywrld, mjmyster, driver_device, 0, ROT0, "Dynax", "Mahjong The Mysterious World (set 2)", GAME_NO_COCKTAIL )
-GAME( 1994, mjmyornt, 0, mjmyornt, mjmyornt, driver_device, 0, ROT0, "Dynax", "Mahjong The Mysterious Orient", GAME_NO_COCKTAIL )
-GAME( 1994, mjmyuniv, 0, mjmyuniv, mjmyster, driver_device, 0, ROT0, "Dynax", "Mahjong The Mysterious Universe", GAME_NO_COCKTAIL )
-GAME( 1994, quiz365, 0, quiz365, quiz365, driver_device, 0, ROT0, "Nakanihon", "Quiz 365 (Japan)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS | GAME_UNEMULATED_PROTECTION )
-GAME( 1994, quiz365t, quiz365, quiz365, quiz365, driver_device, 0, ROT0, "Nakanihon / Taito", "Quiz 365 (Hong Kong & Taiwan)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS | GAME_UNEMULATED_PROTECTION )
-GAME( 1994, rongrong, 0, rongrong, rongrong, ddenlovr_state, rongrong, ROT0, "Nakanihon (Activision license)", "Puzzle Game Rong Rong (Europe)", GAME_NO_COCKTAIL | GAME_IMPERFECT_COLORS )
-GAME( 1994, rongrongj, rongrong, rongrong, rongrong, ddenlovr_state, rongrong, ROT0, "Nakanihon (Activision license)", "Puzzle Game Rong Rong (Japan)", GAME_NO_COCKTAIL | GAME_IMPERFECT_COLORS )
-GAME( 1994, rongrongg, rongrong, rongrong, rongrong, ddenlovr_state, rongrong, ROT0, "Nakanihon (Activision license)", "Puzzle Game Rong Rong (Germany)", GAME_NO_COCKTAIL | GAME_IMPERFECT_COLORS )
-GAME( 1994, hparadis, 0, hparadis, hparadis, driver_device, 0, ROT0, "Dynax", "Super Hana Paradise (Japan)", GAME_NO_COCKTAIL )
-GAME( 1995, hgokou, 0, hgokou, hgokou, driver_device, 0, ROT0, "Dynax (Alba license)", "Hanafuda Hana Gokou (Japan)", GAME_NO_COCKTAIL )
-GAME( 1995, hgokbang, hgokou, hgokbang, hgokou, driver_device, 0, ROT0, "Dynax", "Hanafuda Hana Gokou Bangaihen (Japan)", GAME_NO_COCKTAIL )
-GAME( 1995, mjdchuka, 0, mjchuuka, mjchuuka, driver_device, 0, ROT0, "Dynax", "Mahjong The Dai Chuuka Ken (China, v. D111)", GAME_NO_COCKTAIL )
-GAME( 1995, nettoqc, 0, nettoqc, nettoqc, driver_device, 0, ROT0, "Nakanihon", "Nettoh Quiz Champion (Japan)", GAME_NO_COCKTAIL | GAME_IMPERFECT_COLORS )
-GAME( 1995, ultrchmp, nettoqc, ultrchmp, ultrchmp, driver_device, 0, ROT0, "Nakanihon", "Se Gye Hweng Dan Ultra Champion (Korea)", GAME_NO_COCKTAIL | GAME_IMPERFECT_COLORS )
-GAME( 1995, ultrchmph, nettoqc, ultrchmp, ultrchmp, driver_device, 0, ROT0, "Nakanihon", "Cheng Ba Shi Jie - Chao Shi Kong Guan Jun (Taiwan)", GAME_NO_COCKTAIL | GAME_IMPERFECT_COLORS )
-GAME( 1995, ddenlovj, 0, ddenlovj, ddenlovj, driver_device, 0, ROT0, "Dynax", "Don Den Lover Vol. 1 - Shiro Kuro Tsukeyo! (Japan)", GAME_NO_COCKTAIL )
-GAME( 1995, ddenlovrk, ddenlovj, ddenlovrk, ddenlovr, driver_device, 0, ROT0, "Dynax", "Don Den Lover Vol. 1 - Heukbaeg-euro Jeonghaja (Korea)", GAME_NO_COCKTAIL )
-GAME( 1995, ddenlovrb, ddenlovj, ddenlovr, ddenlovr, driver_device, 0, ROT0, "bootleg", "Don Den Lover Vol. 1 - Heukbaeg-euro Jeonghaja (Korea, bootleg)", GAME_NO_COCKTAIL )
-GAME( 1996, ddenlovr, ddenlovj, ddenlovr, ddenlovr, driver_device, 0, ROT0, "Dynax", "Don Den Lover Vol. 1 (Hong Kong)", GAME_NO_COCKTAIL )
-GAME( 1996, hanakanz, 0, hanakanz, hanakanz, driver_device, 0, ROT0, "Dynax", "Hana Kanzashi (Japan)", GAME_NO_COCKTAIL )
-GAME( 1997, kotbinyo, hanakanz, kotbinyo, kotbinyo, driver_device, 0, ROT0, "Dynax / Shinwhajin", "Kkot Bi Nyo (Korea)", GAME_NO_COCKTAIL )
-GAME( 1997, kotbinsp, 0, kotbinsp, kotbinsp, driver_device, 0, ROT0, "Dynax / Shinwhajin", "Kkot Bi Nyo Special (Korea)", GAME_NO_COCKTAIL )
-GAME( 1996, akamaru, 0, akamaru, akamaru, driver_device, 0, ROT0, "Dynax (Nakanihon license)", "Panel & Variety Akamaru Q Jousyou Dont-R", GAME_NO_COCKTAIL )
-GAME( 1996, janshinp, 0, janshinp, janshinp, driver_device, 0, ROT0, "Dynax / Sigma", "Mahjong Janshin Plus (Japan)", GAME_NO_COCKTAIL )
-GAME( 1996, dtoyoken, 0, dtoyoken, dtoyoken, driver_device, 0, ROT0, "Dynax / Sigma", "Mahjong Dai Touyouken (Japan)", GAME_NO_COCKTAIL )
-GAME( 1996, sryudens, 0, sryudens, sryudens, driver_device, 0, ROT0, "Dynax / Face", "Mahjong Seiryu Densetsu (Japan, NM502)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, seljan2, 0, seljan2, seljan2, driver_device, 0, ROT0, "Dynax / Face", "Return Of Sel Jan II (Japan, NM557)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, mjflove, 0, mjflove, mjflove, driver_device, 0, ROT0, "Nakanihon", "Mahjong Fantasic Love (Japan)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, hkagerou, 0, hkagerou, hkagerou, driver_device, 0, ROT0, "Nakanihon / Dynax", "Hana Kagerou [BET] (Japan)", GAME_NO_COCKTAIL )
-GAME( 1998, mjchuuka, 0, mjchuuka, mjchuuka, driver_device, 0, ROT0, "Dynax", "Mahjong Chuukanejyo (China)", GAME_NO_COCKTAIL )
-GAME( 1998, mjreach1, 0, mjreach1, mjreach1, driver_device, 0, ROT0, "Nihon System", "Mahjong Reach Ippatsu (Japan)", GAME_NO_COCKTAIL )
-GAME( 1999, jongtei, 0, jongtei, jongtei, driver_device, 0, ROT0, "Dynax", "Mahjong Jong-Tei (Japan, ver. NM532-01)", GAME_NO_COCKTAIL )
-GAME( 2002, daimyojn, 0, daimyojn, daimyojn, driver_device, 0, ROT0, "Dynax / Techno-Top / Techno-Planning", "Mahjong Daimyojin (Japan, T017-PB-00)", GAME_NO_COCKTAIL )
-GAME( 2004, momotaro, 0, daimyojn, daimyojn, ddenlovr_state, momotaro, ROT0, "Techno-Top", "Mahjong Momotarou (Japan)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
+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 )
diff --git a/src/mame/drivers/ddragon.c b/src/mame/drivers/ddragon.c
index fb01a116fe5..514c20611b9 100644
--- a/src/mame/drivers/ddragon.c
+++ b/src/mame/drivers/ddragon.c
@@ -2130,31 +2130,31 @@ DRIVER_INIT_MEMBER(ddragon_state,ddragon6809)
*
*************************************/
-GAME( 1987, ddragon, 0, ddragon, ddragon, ddragon_state, ddragon, ROT0, "Technos Japan", "Double Dragon (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1987, ddragonw, ddragon, ddragon, ddragon, ddragon_state, ddragon, ROT0, "Technos Japan (Taito license)", "Double Dragon (World set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1987, ddragonw1, ddragon, ddragon, ddragon, ddragon_state, ddragon, ROT0, "Technos Japan (Taito license)", "Double Dragon (World set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1987, ddragonu, ddragon, ddragon, ddragon, ddragon_state, ddragon, ROT0, "Technos Japan (Taito America license)", "Double Dragon (US set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1987, ddragonua, ddragon, ddragon, ddragon, ddragon_state, ddragon, ROT0, "Technos Japan (Taito America license)", "Double Dragon (US set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1987, ddragonub, ddragon, ddragon, ddragon, ddragon_state, ddragon, ROT0, "Technos Japan (Taito America license)", "Double Dragon (US set 3)", GAME_SUPPORTS_SAVE )
-GAME( 1987, ddragonb2, ddragon, ddragon, ddragon, ddragon_state, ddragon, ROT0, "bootleg", "Double Dragon (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1987, ddragonb, ddragon, ddragonb, ddragon, ddragon_state, ddragon, ROT0, "bootleg", "Double Dragon (bootleg with HD6309)", GAME_SUPPORTS_SAVE ) // according to dump notes
-GAME( 1987, ddragonba, ddragon, ddragonba, ddragon, ddragon_state, ddragon, ROT0, "bootleg", "Double Dragon (bootleg with M6803)", GAME_SUPPORTS_SAVE )
-GAME( 1987, ddragon6809, ddragon, ddragon6809, ddragon, ddragon_state, ddragon6809, ROT0, "bootleg", "Double Dragon (bootleg with 3xM6809, set 1)", GAME_NOT_WORKING )
-GAME( 1987, ddragon6809a,ddragon, ddragon6809, ddragon, ddragon_state, ddragon6809, ROT0, "bootleg", "Double Dragon (bootleg with 3xM6809, set 2)", GAME_NOT_WORKING )
-
-GAME( 1988, ddragon2, 0, ddragon2, ddragon2, ddragon_state, ddragon2, ROT0, "Technos Japan", "Double Dragon II - The Revenge (World)", GAME_SUPPORTS_SAVE )
-GAME( 1988, ddragon2u, ddragon2, ddragon2, ddragon2, ddragon_state, ddragon2, ROT0, "Technos Japan", "Double Dragon II - The Revenge (US)", GAME_SUPPORTS_SAVE )
-GAME( 1988, ddragon2j, ddragon2, ddragon2, ddragon2, ddragon_state, ddragon2, ROT0, "Technos Japan", "Double Dragon II - The Revenge (Japan)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // bad dump
+GAME( 1987, ddragon, 0, ddragon, ddragon, ddragon_state, ddragon, ROT0, "Technos Japan", "Double Dragon (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, ddragonw, ddragon, ddragon, ddragon, ddragon_state, ddragon, ROT0, "Technos Japan (Taito license)", "Double Dragon (World set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, ddragonw1, ddragon, ddragon, ddragon, ddragon_state, ddragon, ROT0, "Technos Japan (Taito license)", "Double Dragon (World set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, ddragonu, ddragon, ddragon, ddragon, ddragon_state, ddragon, ROT0, "Technos Japan (Taito America license)", "Double Dragon (US set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, ddragonua, ddragon, ddragon, ddragon, ddragon_state, ddragon, ROT0, "Technos Japan (Taito America license)", "Double Dragon (US set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, ddragonub, ddragon, ddragon, ddragon, ddragon_state, ddragon, ROT0, "Technos Japan (Taito America license)", "Double Dragon (US set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, ddragonb2, ddragon, ddragon, ddragon, ddragon_state, ddragon, ROT0, "bootleg", "Double Dragon (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, ddragonb, ddragon, ddragonb, ddragon, ddragon_state, ddragon, ROT0, "bootleg", "Double Dragon (bootleg with HD6309)", MACHINE_SUPPORTS_SAVE ) // according to dump notes
+GAME( 1987, ddragonba, ddragon, ddragonba, ddragon, ddragon_state, ddragon, ROT0, "bootleg", "Double Dragon (bootleg with M6803)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, ddragon6809, ddragon, ddragon6809, ddragon, ddragon_state, ddragon6809, ROT0, "bootleg", "Double Dragon (bootleg with 3xM6809, set 1)", MACHINE_NOT_WORKING )
+GAME( 1987, ddragon6809a,ddragon, ddragon6809, ddragon, ddragon_state, ddragon6809, ROT0, "bootleg", "Double Dragon (bootleg with 3xM6809, set 2)", MACHINE_NOT_WORKING )
+
+GAME( 1988, ddragon2, 0, ddragon2, ddragon2, ddragon_state, ddragon2, ROT0, "Technos Japan", "Double Dragon II - The Revenge (World)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, ddragon2u, ddragon2, ddragon2, ddragon2, ddragon_state, ddragon2, ROT0, "Technos Japan", "Double Dragon II - The Revenge (US)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, ddragon2j, ddragon2, ddragon2, ddragon2, ddragon_state, ddragon2, ROT0, "Technos Japan", "Double Dragon II - The Revenge (Japan)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // bad dump
/* these were conversions of double dragon */
-GAME( 1991, tstrike, 0, darktowr, tstrike, ddragon_state, darktowr, ROT0, "East Coast Coin Company", "Thunder Strike (set 1)", GAME_SUPPORTS_SAVE ) // same manufacturer as The Game Room?
-GAME( 1991, tstrikea, tstrike, darktowr, tstrike, ddragon_state, darktowr, ROT0, "The Game Room", "Thunder Strike (set 2, older)", GAME_SUPPORTS_SAVE )
-GAME( 1992, ddungeon, 0, darktowr, ddungeon, ddragon_state, darktowr, ROT0, "The Game Room", "Dangerous Dungeons (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1992, ddungeone,ddungeon, darktowr, ddungeon, ddragon_state, darktowr, ROT0, "East Coast Coin Company", "Dangerous Dungeons (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1992, darktowr, 0, darktowr, darktowr, ddragon_state, darktowr, ROT0, "The Game Room", "Dark Tower", GAME_SUPPORTS_SAVE )
+GAME( 1991, tstrike, 0, darktowr, tstrike, ddragon_state, darktowr, ROT0, "East Coast Coin Company", "Thunder Strike (set 1)", MACHINE_SUPPORTS_SAVE ) // same manufacturer as The Game Room?
+GAME( 1991, tstrikea, tstrike, darktowr, tstrike, ddragon_state, darktowr, ROT0, "The Game Room", "Thunder Strike (set 2, older)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, ddungeon, 0, darktowr, ddungeon, ddragon_state, darktowr, ROT0, "The Game Room", "Dangerous Dungeons (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, ddungeone,ddungeon, darktowr, ddungeon, ddragon_state, darktowr, ROT0, "East Coast Coin Company", "Dangerous Dungeons (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, darktowr, 0, darktowr, darktowr, ddragon_state, darktowr, ROT0, "The Game Room", "Dark Tower", MACHINE_SUPPORTS_SAVE )
/* these run on their own board, but are basically the same game. Toffy even has 'dangerous dungeons' text in it */
-GAME( 1993, toffy, 0, toffy, toffy, ddragon_state, toffy, ROT0, "Midas", "Toffy", GAME_SUPPORTS_SAVE )
+GAME( 1993, toffy, 0, toffy, toffy, ddragon_state, toffy, ROT0, "Midas", "Toffy", MACHINE_SUPPORTS_SAVE )
-GAME( 1994, stoffy, 0, toffy, toffy, ddragon_state, toffy, ROT0, "Midas", "Super Toffy", GAME_SUPPORTS_SAVE )
-GAME( 1994, stoffyu, stoffy, toffy, toffy, ddragon_state, toffy, ROT0, "Midas (Unico license)", "Super Toffy (Unico license)", GAME_SUPPORTS_SAVE )
+GAME( 1994, stoffy, 0, toffy, toffy, ddragon_state, toffy, ROT0, "Midas", "Super Toffy", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, stoffyu, stoffy, toffy, toffy, ddragon_state, toffy, ROT0, "Midas (Unico license)", "Super Toffy (Unico license)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/ddragon3.c b/src/mame/drivers/ddragon3.c
index 1766350d8df..6a29b3b9e62 100644
--- a/src/mame/drivers/ddragon3.c
+++ b/src/mame/drivers/ddragon3.c
@@ -1476,20 +1476,20 @@ ROM_END
*
*************************************/
-GAME( 1990, ddragon3, 0, ddragon3, ddragon3, driver_device, 0, ROT0, "Technos Japan", "Double Dragon 3 - The Rosetta Stone (US)", GAME_SUPPORTS_SAVE )
-GAME( 1990, ddragon3j,ddragon3, ddragon3, ddragon3, driver_device, 0, ROT0, "Technos Japan", "Double Dragon 3 - The Rosetta Stone (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1990, ddragon3p,ddragon3, ddragon3, ddragon3, driver_device, 0, ROT0, "Technos Japan", "Double Dragon 3 - The Rosetta Stone (prototype)", GAME_SUPPORTS_SAVE )
-GAME( 1990, ddragon3b,ddragon3, ddragon3b,ddragon3b, driver_device,0, ROT0, "bootleg", "Double Dragon 3 - The Rosetta Stone (bootleg)", GAME_SUPPORTS_SAVE )
-
-GAME( 1990, ctribe, 0, ctribe, ctribe, driver_device, 0, ROT0, "Technos Japan", "The Combatribes (US)", GAME_SUPPORTS_SAVE )
-GAME( 1990, ctribe1, ctribe, ctribe, ctribe, driver_device, 0, ROT0, "Technos Japan", "The Combatribes (US set 1?)", GAME_SUPPORTS_SAVE )
-GAME( 1990, ctribeo, ctribe, ctribe, ctribe, driver_device, 0, ROT0, "Technos Japan", "The Combatribes (US, older)", GAME_SUPPORTS_SAVE )
-GAME( 1990, ctribej, ctribe, ctribe, ctribe, driver_device, 0, ROT0, "Technos Japan", "The Combatribes (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1990, ctribeb, ctribe, ctribe, ctribeb, driver_device, 0, ROT0, "bootleg", "The Combatribes (bootleg set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1990, ctribeb2, ctribe, ctribe, ctribeb, driver_device, 0, ROT0, "bootleg", "The Combatribes (bootleg set 2)", GAME_SUPPORTS_SAVE )
-
-GAME( 1991, wwfwfest, 0, wwfwfest, wwfwfest, driver_device, 0, ROT0, "Technos Japan", "WWF WrestleFest (US set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1991, wwfwfesta, wwfwfest, wwfwfest, wwfwfest, driver_device, 0, ROT0, "Technos Japan (Tecmo license)", "WWF WrestleFest (US Tecmo)", GAME_SUPPORTS_SAVE )
-GAME( 1991, wwfwfestb, wwfwfest, wwfwfstb, wwfwfest, driver_device, 0, ROT0, "bootleg", "WWF WrestleFest (US bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1991, wwfwfestj, wwfwfest, wwfwfest, wwfwfesta, driver_device, 0, ROT0, "Technos Japan (Tecmo license)", "WWF WrestleFest (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1991, wwfwfestk, wwfwfest, wwfwfest, wwfwfesta, driver_device, 0, ROT0, "Technos Japan (Tecmo license)", "WWF WrestleFest (Korea)", GAME_SUPPORTS_SAVE )
+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", "WWF WrestleFest (US set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, wwfwfesta, wwfwfest, wwfwfest, wwfwfest, driver_device, 0, ROT0, "Technos Japan (Tecmo license)", "WWF WrestleFest (US Tecmo)", 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 )
diff --git a/src/mame/drivers/ddribble.c b/src/mame/drivers/ddribble.c
index b64100ce8b2..40e2df29ee6 100644
--- a/src/mame/drivers/ddribble.c
+++ b/src/mame/drivers/ddribble.c
@@ -370,5 +370,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", GAME_SUPPORTS_SAVE )
-GAME( 1986, ddribblep, ddribble, ddribble, ddribble, driver_device, 0, ROT0, "Konami", "Double Dribble (prototype?)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/ddz.c b/src/mame/drivers/ddz.c
index b1d98427e5f..a4b4f54875d 100644
--- a/src/mame/drivers/ddz.c
+++ b/src/mame/drivers/ddz.c
@@ -98,4 +98,4 @@ ROM_START( ddz )
ROM_END
-GAME( 200?, ddz, 0, ddz, ddz, driver_device, 0, ROT0, "IGS?", "Dou Di Zhu", GAME_IS_SKELETON )
+GAME( 200?, ddz, 0, ddz, ddz, driver_device, 0, ROT0, "IGS?", "Dou Di Zhu", MACHINE_IS_SKELETON )
diff --git a/src/mame/drivers/de_2.c b/src/mame/drivers/de_2.c
index a68622e6eba..6f4ce3fb2ec 100644
--- a/src/mame/drivers/de_2.c
+++ b/src/mame/drivers/de_2.c
@@ -848,20 +848,20 @@ ROM_START(torp_e21)
ROM_END
-GAME(1990, bttf_a27, 0, de_type3, de_2, de_2_state, de_2, ROT0, "Data East", "Back To the Future (2.7)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1990, bttf_a20, bttf_a27, de_type3, de_2, de_2_state, de_2, ROT0, "Data East", "Back To the Future (2.0)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1990, bttf_a21, bttf_a27, de_type3, de_2, de_2_state, de_2, ROT0, "Data East", "Back To The Future (2.1)", GAME_IS_SKELETON_MECHANICAL)
-GAME(199?, bttf_g27, bttf_a27, de_type3, de_2, de_2_state, de_2, ROT0, "Data East", "Back To the Future (2.7 Germany)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1987, lwar_a83, 0, de_type1, de_2, de_2_state, de_2, ROT0, "Data East", "Laser War (8.3)", GAME_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)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1989, mnfb_c27, 0, de_type2_alpha3, de_2, de_2_state, de_2, ROT0, "Data East", "Monday Night Football (2.7, 50cts)", GAME_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)", GAME_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)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1989, robo_a34, 0, de_type3, de_2, de_2_state, de_2, ROT0, "Data East", "Robocop (3.4)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1988, ssvc_a26, 0, de_type2, de_2, de_2_state, de_2, ROT0, "Data East", "Secret Service (2.6)", GAME_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)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1990, simp_a27, 0, de_type3, de_2, de_2_state, de_2, ROT0, "Data East", "The Simpsons (2.7)", GAME_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)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1988, tmac_a24, 0, de_type2, de_2, de_2_state, de_2, ROT0, "Data East", "Time Machine (2.4)", GAME_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)", GAME_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)", GAME_IS_SKELETON_MECHANICAL)
+GAME(1990, bttf_a27, 0, 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_a27, 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_a27, 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_a27, de_type3, de_2, de_2_state, de_2, ROT0, "Data East", "Back To the Future (2.7 Germany)", 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_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_c27, 0, 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(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(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(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, torp_e21, 0, de_type2, de_2, de_2_state, de_2, ROT0, "Data East", "Torpedo Alley (2.1, Europe)", MACHINE_IS_SKELETON_MECHANICAL)
diff --git a/src/mame/drivers/de_3.c b/src/mame/drivers/de_3.c
index d46ed3ff341..91eb29c7604 100644
--- a/src/mame/drivers/de_3.c
+++ b/src/mame/drivers/de_3.c
@@ -1098,49 +1098,49 @@ ROM_START(wwfr_103)
ROM_END
-GAME(1993, rab_320, 0, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Adventures of Rocky and Bullwinkle and Friends (3.20)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1993, rab_130, rab_320, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Adventures of Rocky and Bullwinkle and Friends (1.30)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1993, rab_103, rab_320, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Adventures of Rocky and Bullwinkle and Friends (1.03 Spain)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, aar_101, 0, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Aaron Spelling (1.01)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1991, btmn_103, 0, de_3_dmd1, de_3, de_3_state, de_3, ROT0, "Data East", "Batman (1.03)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1991, btmn_101, btmn_103, de_3_dmd1, de_3, de_3_state, de_3, ROT0, "Data East", "Batman (1.01)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1991, btmn_g13, btmn_103, de_3_dmd1, de_3, de_3_state, de_3, ROT0, "Data East", "Batman (1.03 Germany)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1991, btmn_106, btmn_103, de_3_dmd1, de_3, de_3_state, de_3, ROT0, "Data East", "Batman (1.06)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1991, ckpt_a17, 0, de_3_dmd1, de_3, de_3_state, de_3, ROT0, "Data East", "Checkpoint (1.7)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1994, gnr_300, 0, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Guns N Roses (3.00)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, hook_408, 0, de_3_dmd1, de_3, de_3_state, de_3, ROT0, "Data East", "Hook (4.08)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, hook_401, hook_408, de_3_dmd1, de_3, de_3_state, de_3, ROT0, "Data East", "Hook (4.01)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, hook_404, hook_408, de_3_dmd1, de_3, de_3_state, de_3, ROT0, "Data East", "Hook (4.04)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1993, jupk_513, 0, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Jurassic Park (5.13)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1993, jupk_501, jupk_513, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Jurassic Park (5.01)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1993, jupk_g51, jupk_513, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Jurassic Park (5.01 Germany)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1993, lah_112, 0, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Last Action Hero (1.12)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1993, lah_l104, lah_112, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Last Action Hero (1.04 Spain)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1993, lah_l108, lah_112, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Last Action Hero (1.08 Spain)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1993, lah_110, lah_112, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Last Action Hero (1.10)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, lw3_208, 0, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Lethal Weapon 3 (2.08)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, lw3_207, lw3_208, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Lethal Weapon 3 (2.07 Canada)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, lw3_205, lw3_208, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Lethal Weapon 3 (2.05)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, lw3_200, lw3_208, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Lethal Weapon 3 (2.00)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, trek_201, 0, de_3_dmd1, de_3, de_3_state, de_3, ROT0, "Data East", "Star Trek 25th Anniversary (2.01)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, trek_200, trek_201, de_3_dmd1, de_3, de_3_state, de_3, ROT0, "Data East", "Star Trek 25th Anniversary (2.00)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, trek_120, trek_201, de_3_dmd1, de_3, de_3_state, de_3, ROT0, "Data East", "Star Trek 25th Anniversary (1.20)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, trek_110, trek_201, de_3_dmd1, de_3, de_3_state, de_3, ROT0, "Data East", "Star Trek 25th Anniversary (1.10)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, trek_11a, trek_201, de_3_dmd1, de_3, de_3_state, de_3, ROT0, "Data East", "Star Trek 25th Anniversary (1.10 Alpha Display)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, stwr_104, 0, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Star Wars (1.04)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, stwr_103, stwr_104, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Star Wars (1.03)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, stwr_g11, stwr_104, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Star Wars (1.01 Germany)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, stwr_a14, stwr_104, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Star Wars (Display Rev.1.04)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, stwr_102, stwr_104, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Star Wars (1.02)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, stwr_e12, stwr_104, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Star Wars (1.02 England)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1993, tftc_303, 0, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Tales From the Crypt (3.03)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1993, tftc_302, tftc_303, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Tales From the Crypt (3.02 Dutch)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1993, tftc_300, tftc_303, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Tales From the Crypt (3.00)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1993, tftc_200, tftc_303, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Tales From the Crypt (2.00)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1993, tftc_104, tftc_303, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Tales From the Crypt (1.04 Spain)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1991, tmnt_104, 0, de_3_dmd1, de_3, de_3_state, de_3, ROT0, "Data East", "Teenage Mutant Ninja Turtles (1.04)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1991, tmnt_103, tmnt_104, de_3_dmd1, de_3, de_3_state, de_3, ROT0, "Data East", "Teenage Mutant Ninja Turtles (1.03)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1994, tomy_400, 0, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "The Who's Tommy Pinball Wizard (4.00)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1994, tomy_h30, tomy_400, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "The Who's Tommy Pinball Wizard (3.00, The Netherlands)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1994, wwfr_106, 0, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "WWF Royal Rumble (1.06)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1994, wwfr_103, wwfr_106, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "WWF Royal Rumble (1.03)", GAME_IS_SKELETON_MECHANICAL)
+GAME(1993, rab_320, 0, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Adventures of Rocky and Bullwinkle and Friends (3.20)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1993, rab_130, rab_320, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Adventures of Rocky and Bullwinkle and Friends (1.30)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1993, rab_103, rab_320, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Adventures of Rocky and Bullwinkle and Friends (1.03 Spain)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1992, aar_101, 0, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Aaron Spelling (1.01)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1991, btmn_103, 0, de_3_dmd1, de_3, de_3_state, de_3, ROT0, "Data East", "Batman (1.03)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1991, btmn_101, btmn_103, de_3_dmd1, de_3, de_3_state, de_3, ROT0, "Data East", "Batman (1.01)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1991, btmn_g13, btmn_103, de_3_dmd1, de_3, de_3_state, de_3, ROT0, "Data East", "Batman (1.03 Germany)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1991, btmn_106, btmn_103, de_3_dmd1, de_3, de_3_state, de_3, ROT0, "Data East", "Batman (1.06)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1991, ckpt_a17, 0, de_3_dmd1, de_3, de_3_state, de_3, ROT0, "Data East", "Checkpoint (1.7)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1994, gnr_300, 0, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Guns N Roses (3.00)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1992, hook_408, 0, de_3_dmd1, de_3, de_3_state, de_3, ROT0, "Data East", "Hook (4.08)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1992, hook_401, hook_408, de_3_dmd1, de_3, de_3_state, de_3, ROT0, "Data East", "Hook (4.01)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1992, hook_404, hook_408, de_3_dmd1, de_3, de_3_state, de_3, ROT0, "Data East", "Hook (4.04)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1993, jupk_513, 0, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Jurassic Park (5.13)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1993, jupk_501, jupk_513, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Jurassic Park (5.01)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1993, jupk_g51, jupk_513, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Jurassic Park (5.01 Germany)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1993, lah_112, 0, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Last Action Hero (1.12)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1993, lah_l104, lah_112, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Last Action Hero (1.04 Spain)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1993, lah_l108, lah_112, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Last Action Hero (1.08 Spain)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1993, lah_110, lah_112, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Last Action Hero (1.10)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1992, lw3_208, 0, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Lethal Weapon 3 (2.08)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1992, lw3_207, lw3_208, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Lethal Weapon 3 (2.07 Canada)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1992, lw3_205, lw3_208, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Lethal Weapon 3 (2.05)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1992, lw3_200, lw3_208, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Lethal Weapon 3 (2.00)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1992, trek_201, 0, de_3_dmd1, de_3, de_3_state, de_3, ROT0, "Data East", "Star Trek 25th Anniversary (2.01)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1992, trek_200, trek_201, de_3_dmd1, de_3, de_3_state, de_3, ROT0, "Data East", "Star Trek 25th Anniversary (2.00)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1992, trek_120, trek_201, de_3_dmd1, de_3, de_3_state, de_3, ROT0, "Data East", "Star Trek 25th Anniversary (1.20)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1992, trek_110, trek_201, de_3_dmd1, de_3, de_3_state, de_3, ROT0, "Data East", "Star Trek 25th Anniversary (1.10)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1992, trek_11a, trek_201, de_3_dmd1, de_3, de_3_state, de_3, ROT0, "Data East", "Star Trek 25th Anniversary (1.10 Alpha Display)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1992, stwr_104, 0, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Star Wars (1.04)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1992, stwr_103, stwr_104, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Star Wars (1.03)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1992, stwr_g11, stwr_104, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Star Wars (1.01 Germany)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1992, stwr_a14, stwr_104, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Star Wars (Display Rev.1.04)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1992, stwr_102, stwr_104, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Star Wars (1.02)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1992, stwr_e12, stwr_104, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Star Wars (1.02 England)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1993, tftc_303, 0, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Tales From the Crypt (3.03)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1993, tftc_302, tftc_303, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Tales From the Crypt (3.02 Dutch)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1993, tftc_300, tftc_303, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Tales From the Crypt (3.00)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1993, tftc_200, tftc_303, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Tales From the Crypt (2.00)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1993, tftc_104, tftc_303, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "Tales From the Crypt (1.04 Spain)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1991, tmnt_104, 0, de_3_dmd1, de_3, de_3_state, de_3, ROT0, "Data East", "Teenage Mutant Ninja Turtles (1.04)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1991, tmnt_103, tmnt_104, de_3_dmd1, de_3, de_3_state, de_3, ROT0, "Data East", "Teenage Mutant Ninja Turtles (1.03)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1994, tomy_400, 0, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "The Who's Tommy Pinball Wizard (4.00)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1994, tomy_h30, tomy_400, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "The Who's Tommy Pinball Wizard (3.00, The Netherlands)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1994, wwfr_106, 0, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "WWF Royal Rumble (1.06)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1994, wwfr_103, wwfr_106, de_3_dmd2, de_3, de_3_state, de_3, ROT0, "Data East", "WWF Royal Rumble (1.03)", MACHINE_IS_SKELETON_MECHANICAL)
diff --git a/src/mame/drivers/de_3b.c b/src/mame/drivers/de_3b.c
index 7b416567ab8..6292ee01f99 100644
--- a/src/mame/drivers/de_3b.c
+++ b/src/mame/drivers/de_3b.c
@@ -625,29 +625,29 @@ ROM_START(detest)
ROM_END
-GAME(1995, batmanf, 0, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (4.0)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1995, batmanf3, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (3.0)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1995, bmf_uk, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (English)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1995, bmf_cn, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (Canadian)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1995, bmf_no, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (Norwegian)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1995, bmf_sv, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (Swedish)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1995, bmf_at, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (Austrian)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1995, bmf_ch, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (Swiss)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1995, bmf_de, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (German)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1995, bmf_be, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (Belgian)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1995, bmf_fr, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (French)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1995, bmf_nl, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (Dutch)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1995, bmf_it, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (Italian)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1995, bmf_sp, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (Spanish)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1995, bmf_jp, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (Japanese)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1995, bmf_time, batmanf, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Batman Forever (Timed Play)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1995, baywatch, 0, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Baywatch", GAME_IS_SKELETON_MECHANICAL)
-GAME(1995, bay_e400, baywatch, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Baywatch (England)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1994, frankst, 0, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Mary Shelley's Frankenstein", GAME_IS_SKELETON_MECHANICAL)
-GAME(1995, frankstg, frankst, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Mary Shelley's Frankenstein (Germany)",GAME_IS_SKELETON_MECHANICAL)
-GAME(1994, mav_402, 0, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Maverick (Display Rev. 4.02)", GAME_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)", GAME_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)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1994, mav_100, mav_402, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Maverick (1.00)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1998, detest, 0, detest, de_3b, de_3b_state, de_3b, ROT0, "Data East", "Data East Test Chip", GAME_IS_SKELETON_MECHANICAL)
-GAME(1996, ctcheese, 0, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Cut The Cheese (Redemption)", GAME_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, 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_e400, baywatch, de_3b, de_3b, de_3b_state, de_3b, ROT0, "Sega", "Baywatch (England)", 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.c b/src/mame/drivers/deadang.c
index f7e6b872502..b73bc01e7ed 100644
--- a/src/mame/drivers/deadang.c
+++ b/src/mame/drivers/deadang.c
@@ -20,11 +20,11 @@ Seibu, 1988
Clocks
------
-Top board
+Top board - SEI-8712A
Two crystals on top board 12MHz and 16MHz
V30(x2) - both 8MHz [16/2]
-Bottom board
+Bottom board - SEI-8712B
One crystal on bottom board 14.31818MHz
Z80 - 3.579545MHz [14.31818/4]
OKI M5205(x2) - 375kHz [12/32]
@@ -33,6 +33,8 @@ Seibu SEI0100 YM3931 - 3.579545MHz [14.31818/4]
VSync 60Hz
HSync 15.37kHz
+Gang Hunter as an additional daughter card attached to the top board call SEI-8712 GUN
+
2008-08
Dip locations and factory settings verified with US manual
@@ -277,8 +279,8 @@ ROM_START( deadang )
ROM_LOAD16_BYTE("3.21f", 0x0e0001, 0x10000, CRC(e784b1fa) SHA1(3f41d31e0b36b9a2fab5e9998bb4146dfa0a97eb) )
ROM_REGION( 0x100000, "sub", 0 ) /* v30 sub cpu */
- ROM_LOAD16_BYTE("5.6bh", 0x0e0000, 0x10000, CRC(9c69eb35) SHA1(d5a9714f279b71c419b4bae0f142c4cb1cc8d30e) )
- ROM_LOAD16_BYTE("6.9b", 0x0e0001, 0x10000, CRC(34a44ce5) SHA1(621c69d8778d4c96ac3be06b033a5931a6a23da2) )
+ ROM_LOAD16_BYTE("5.6b", 0x0e0000, 0x10000, CRC(9c69eb35) SHA1(d5a9714f279b71c419b4bae0f142c4cb1cc8d30e) )
+ ROM_LOAD16_BYTE("6.9b", 0x0e0001, 0x10000, CRC(34a44ce5) SHA1(621c69d8778d4c96ac3be06b033a5931a6a23da2) )
ROM_REGION( 0x20000, "audiocpu", 0 ) /* sound Z80 */
ROM_LOAD( "13.b1", 0x000000, 0x02000, CRC(13b956fb) SHA1(f7c21ad5e988ac59073659a427b1fa66ff49b0c1) ) /* Encrypted */
@@ -365,6 +367,53 @@ ROM_END
ROM_START( ghunter )
ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */
+ ROM_LOAD16_BYTE("2.19h", 0x0c0000, 0x10000, CRC(5a511500) SHA1(69185a9efee0c3ee4d65643651eb9c613bc5f759) )
+ ROM_LOAD16_BYTE("4.22h", 0x0c0001, 0x10000, CRC(df5704f4) SHA1(a40848f1222253921982320155e6f7a01d2bb17f) ) // sldh
+ ROM_LOAD16_BYTE("1.19f", 0x0e0000, 0x10000, CRC(30deb018) SHA1(099ab1f227d7e28f3e56a61d015813905a2dbc29) )
+ ROM_LOAD16_BYTE("3.22f", 0x0e0001, 0x10000, CRC(95f587c5) SHA1(b1431dd56200a5f849314b34daed5d3570633a77) ) // sldh
+
+ ROM_REGION( 0x100000, "sub", 0 ) /* v30 sub cpu */
+ ROM_LOAD16_BYTE("5.6b", 0x0e0000, 0x10000, CRC(c40bb5e5) SHA1(2a618f7db6fe6cd8d1a0e7eed91a831b721fec62) ) // sldh
+ ROM_LOAD16_BYTE("6.10b", 0x0e0001, 0x10000, CRC(373f86a7) SHA1(6f7d219a3bc34d74fdadd812319a5387d217dffb) ) // sldh
+
+ ROM_REGION( 0x20000, "audiocpu", 0 ) /* sound Z80 */
+ ROM_LOAD( "13.b1", 0x000000, 0x02000, CRC(13b956fb) SHA1(f7c21ad5e988ac59073659a427b1fa66ff49b0c1) ) /* Encrypted */
+ ROM_LOAD( "14.c1", 0x010000, 0x10000, CRC(98837d57) SHA1(291769a11478291a65c959d119d19960b100d135) ) /* Banked */
+
+ ROM_REGION( 0x08000, "gfx1", 0 ) /* Chars */
+ ROM_LOAD( "7.22k", 0x000000, 0x4000, CRC(490701e7) SHA1(2f5cbc0407d7fe41b9e7683c7531656fda7bf9f7) )
+ ROM_LOAD( "8.22l", 0x004000, 0x4000, CRC(18024c5e) SHA1(b02bcaa1ba6e7c188f3d2a6b20b52b2dcb8215e0) )
+
+ ROM_REGION( 0x80000, "gfx2", 0 ) /* Sprites */
+ ROM_LOAD( "l12", 0x000000, 0x80000, CRC(c94d5cd2) SHA1(25ded13faaed90886c9fe40f85969dab2f511e31) )
+
+ ROM_REGION( 0x100000, "gfx3", 0 ) /* pf1 layer */
+ ROM_LOAD( "16n", 0x000000, 0x80000, CRC(fd70e1a5) SHA1(c3d1233f4dfe08f686ec99a556889f9ed6a21da3) ) // bank 0 (0x1000 tiles)
+ ROM_LOAD( "16r", 0x080000, 0x80000, CRC(92f5e382) SHA1(2097b9e9bf3cd37c8613847e7aed677b5aeab7f9) ) // bank 1 (0x1000 tiles)
+
+ ROM_REGION( 0x40000, "gfx4", 0 ) // pf2 layer
+ ROM_LOAD( "11m", 0x000000, 0x40000, CRC(a366659a) SHA1(e2fcd82b0b2d4e3adcdf50c710984907d26acd04) ) // fixed (0x800 tiles)
+
+ ROM_REGION( 0x40000, "gfx5", 0 ) // pf3 layer
+ ROM_LOAD( "11k", 0x000000, 0x40000, CRC(9cf5bcc7) SHA1(cf96592e601fc373b1bf322d9b576668799130a5) ) // fixed (0x800 tiles)
+
+ ROM_REGION16_BE( 0x10000, "gfx6", 0 ) /* background map data */
+ ROM_LOAD16_BYTE( "10.6l", 0x00000, 0x8000, CRC(ca99176b) SHA1(283e3769a1ff579c78a008b65cb8267e5770ba1f) )
+ ROM_LOAD16_BYTE( "9.6m", 0x00001, 0x8000, CRC(51d868ca) SHA1(3e9a4e6bc4bc68773c4ba18c5f4110e6c595d0c9) )
+
+ ROM_REGION16_BE( 0x10000, "gfx7", 0 ) /* background map data */
+ ROM_LOAD16_BYTE( "12.6j", 0x00000, 0x8000, CRC(2674d23f) SHA1(0533d80a23d917e20a703aeb833dcaccfa3a1967) )
+ ROM_LOAD16_BYTE( "11.6k", 0x00001, 0x8000, CRC(3dd4d81d) SHA1(94f0a13a8d3812f6879819ca186abf3a8665f7cb) )
+
+ ROM_REGION( 0x10000, "adpcm1", 0 )
+ ROM_LOAD( "15.b11", 0x000000, 0x10000, CRC(fabd74f2) SHA1(ac70e952a8b38287613b384cdc7ca00a7f155a13) )
+
+ ROM_REGION( 0x10000, "adpcm2", 0 )
+ ROM_LOAD( "16.11a", 0x000000, 0x10000, CRC(a8d46fc9) SHA1(3ba51bdec4057413396a152b35015f9d95253e3f) )
+ROM_END
+
+ROM_START( ghunters )
+ ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */
ROM_LOAD16_BYTE("ggh-2.h18", 0x0c0000, 0x10000, CRC(7ccc6fee) SHA1(bccc283d82f080157f0521457b04fdd1d63caafe) )
ROM_LOAD16_BYTE("ggh-4.h22", 0x0c0001, 0x10000, CRC(d1f23ad7) SHA1(2668729af797ccab52ac2bf519d43ab2fa9e54ce) )
ROM_LOAD16_BYTE("ggh-1.f18", 0x0e0000, 0x10000, CRC(0d6ff111) SHA1(209d26170446b43d1d463737b447e30aaca614a7) )
@@ -429,6 +478,7 @@ DRIVER_INIT_MEMBER(deadang_state,ghunter)
/* Game Drivers */
-GAME( 1988, deadang, 0, deadang, deadang, deadang_state, deadang, ROT0, "Seibu Kaihatsu", "Dead Angle", GAME_SUPPORTS_SAVE )
-GAME( 1988, leadang, deadang, deadang, deadang, deadang_state, deadang, ROT0, "Seibu Kaihatsu", "Lead Angle (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1988, ghunter, deadang, deadang, ghunter, deadang_state, ghunter, ROT0, "Seibu Kaihatsu (Segasa/Sonic license)", "Gang Hunter (Spain)", GAME_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.c b/src/mame/drivers/dec0.c
index f5342dfe926..8a2dffc6b62 100644
--- a/src/mame/drivers/dec0.c
+++ b/src/mame/drivers/dec0.c
@@ -2941,6 +2941,53 @@ ROM_START( midresb )
ROM_END
+ROM_START( midresbj )
+ ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "14", 0x00000, 0x10000, CRC(6b3bc886) SHA1(998ef6ae89565148bcb8909f21acbec378ed5f4f) )
+ ROM_LOAD16_BYTE( "11", 0x00001, 0x10000, CRC(9b6faab3) SHA1(b60e41972f52df910bfa09accd5fde7d858b55bf) )
+ ROM_LOAD16_BYTE( "13", 0x20000, 0x10000, CRC(d1bb2cd6) SHA1(6d4afd8dd8c4c3e90de199358da27108286637e2) )
+ ROM_LOAD16_BYTE( "10", 0x20001, 0x10000, CRC(42ccdd0d) SHA1(ef17cc984a8d57e9c52877f4e9b78e9976f99033) )
+ ROM_LOAD16_BYTE( "12", 0x40000, 0x10000, CRC(258b10b2) SHA1(f0849801ab2c72bc6e929b230d0c6d41823f18ae) )
+ ROM_LOAD16_BYTE( "9", 0x40001, 0x10000, CRC(dd6985d5) SHA1(bd58a1da2c5152464d7660f5b931d6257cb87c4e) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) /* 6502 sound */
+ ROM_LOAD( "15", 0x0000, 0x10000, CRC(99d47166) SHA1(a9a1adfe47be8dd3e4d6f8c783447e09be1747b2) )
+
+ ROM_REGION( 0x10000, "cpu2", ROMREGION_ERASE00 ) /* 68705 MCU */
+ //ROM_LOAD( "68705r3.bin", 0x00000, 0x1000, CRC(ad5b1c13) SHA1(3616dc5969323a54e3e171d169f76250ae4e711a) ) // unpopulated socket
+
+ ROM_REGION( 0x20000, "gfx1", 0 ) /* chars */
+ ROM_LOAD( "23", 0x08000, 0x08000, CRC(d75aba06) SHA1(cb3b969db3dd8e0c5c3729482f7461cde3a961f3) )
+ ROM_CONTINUE( 0x00000, 0x08000 ) /* the two halves are swapped */
+ ROM_LOAD( "24", 0x18000, 0x08000, CRC(8f5bbb79) SHA1(cb10f68787606111ba5e9967bf0b0cd21269a902) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x80000, "gfx2", 0 ) /* tiles */
+ ROM_LOAD( "19", 0x00000, 0x20000, CRC(fd9ba1bd) SHA1(a105a4335eeed19662c89ab0f90485f1029cf03f) )
+ ROM_LOAD( "18", 0x20000, 0x20000, CRC(a936c03c) SHA1(293e69874ce9b2dfb1d605c9f988fa736b12bbcf) )
+ ROM_LOAD( "20", 0x40000, 0x20000, CRC(4d8e3cf1) SHA1(db804a608f6ba9ce4cedfec2581bcbb00de3f2ba) )
+ ROM_LOAD( "17", 0x60000, 0x20000, CRC(b7241ab9) SHA1(3e83f9285ff4c476f1287bf73b514eace482dccc) )
+
+ ROM_REGION( 0x40000, "gfx3", 0 ) /* tiles */
+ ROM_LOAD( "22", 0x10000, 0x10000, CRC(35a54bb4) SHA1(1869eb77a060e9df42b761b02e7fa5ecb7c414d1) )
+ ROM_CONTINUE(0x00000,0x10000)
+ ROM_LOAD( "21", 0x30000, 0x10000, CRC(4b9227b3) SHA1(7059f2d07fffa0468a45a42b87bf561da5e9c5a4) )
+ ROM_CONTINUE(0x20000,0x10000)
+
+ ROM_REGION( 0x80000, "gfx4", 0 ) /* sprites */
+ ROM_LOAD( "4", 0x00000, 0x10000, CRC(3f499acb) SHA1(1a22cfeed0497ddc2d571114d9f246b3ae18ede9) )
+ ROM_LOAD( "8", 0x10000, 0x10000, CRC(5e7a6800) SHA1(8dd5c9005b6804a30627644053f14e4477fe0074) )
+ ROM_LOAD( "2", 0x20000, 0x10000, CRC(897ba6e4) SHA1(70fd9cba3922751cb317770d6effdc2fb94c1324) )
+ ROM_LOAD( "6", 0x30000, 0x10000, CRC(9fefb810) SHA1(863a81540261e78de5c612dea807ba29b12054d4) )
+ ROM_LOAD( "3", 0x40000, 0x10000, CRC(ebafe720) SHA1(b9f76d2f1b59f1d028e6156b831c5c8ada033641) )
+ ROM_LOAD( "7", 0x50000, 0x10000, CRC(bb8cf641) SHA1(a22e47a15d38d4f33e5a2c90f3a90a16a4231d2c) ) // slight changes, check (equivalent to 3.bin in above)
+ ROM_LOAD( "1", 0x60000, 0x10000, CRC(fd0bd8d3) SHA1(d6b19869ddc2a8ed4f38ba9d613b71853f2d13c0) )
+ ROM_LOAD( "5", 0x70000, 0x10000, CRC(fc46d5ed) SHA1(20ddf3f67f0dfb222ad8d3fd464b892ec9c9e4f5) )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
+ ROM_LOAD( "16", 0x00000, 0x10000, CRC(ccf24b52) SHA1(39b2663c548b30684197284cb8e7a6ca803330c9))
+ROM_END
+
ROM_START( bouldash )
ROM_REGION( 0x60000, "maincpu", 0 ) /* 68000 code */
ROM_LOAD16_BYTE( "fw-15-2.17l", 0x00000, 0x10000, CRC(ca19a967) SHA1(b9dc2b1323f19b6239e550ed020943bf13de8db0) )
@@ -3052,40 +3099,41 @@ DRIVER_INIT_MEMBER(dec0_state,ffantasybl)
/******************************************************************************/
// YEAR, NAME, PARENT, MACHINE, INPUT, STATE/DEVICE, INIT, MONITOR,COMPANY, FULLNAME, FLAGS
-GAME( 1987, hbarrel, 0, hbarrel, hbarrel, dec0_state, hbarrel, ROT270, "Data East USA", "Heavy Barrel (US)", GAME_SUPPORTS_SAVE )
-GAME( 1987, hbarrelw, hbarrel, hbarrel, hbarrel, dec0_state, hbarrel, ROT270, "Data East Corporation", "Heavy Barrel (World)", GAME_SUPPORTS_SAVE )
-GAME( 1988, baddudes, 0, baddudes, baddudes, dec0_state, baddudes, ROT0, "Data East USA", "Bad Dudes vs. Dragonninja (US)", GAME_SUPPORTS_SAVE )
-GAME( 1988, drgninja, baddudes, baddudes, drgninja, dec0_state, baddudes, ROT0, "Data East Corporation", "Dragonninja (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1988, birdtry, 0, birdtry, birdtry, dec0_state, birdtry, ROT270, "Data East Corporation", "Birdie Try (Japan)", GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE )
-GAME( 1988, robocop, 0, robocop, robocop, dec0_state, robocop, ROT0, "Data East Corporation", "Robocop (World revision 4)", GAME_SUPPORTS_SAVE )
-GAME( 1988, robocopw, robocop, robocop, robocop, dec0_state, robocop, ROT0, "Data East Corporation", "Robocop (World revision 3)", GAME_SUPPORTS_SAVE )
-GAME( 1988, robocopj, robocop, robocop, robocop, dec0_state, robocop, ROT0, "Data East Corporation", "Robocop (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1988, robocopu, robocop, robocop, robocop, dec0_state, robocop, ROT0, "Data East USA", "Robocop (US revision 1)", GAME_SUPPORTS_SAVE )
-GAME( 1988, robocopu0, robocop, robocop, robocop, dec0_state, robocop, ROT0, "Data East USA", "Robocop (US revision 0)", GAME_SUPPORTS_SAVE )
-GAME( 1989, hippodrm, 0, hippodrm, hippodrm, dec0_state, hippodrm, ROT0, "Data East USA", "Hippodrome (US)", GAME_SUPPORTS_SAVE )
-GAME( 1989, ffantasy, hippodrm, hippodrm, ffantasy, dec0_state, hippodrm, ROT0, "Data East Corporation", "Fighting Fantasy (Japan revision 2)", GAME_SUPPORTS_SAVE )
-GAME( 1989, ffantasya, hippodrm, hippodrm, ffantasy, dec0_state, hippodrm, ROT0, "Data East Corporation", "Fighting Fantasy (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1989, secretag, 0, slyspy, slyspy, dec0_state, slyspy, ROT0, "Data East Corporation", "Secret Agent (World revision 3)", GAME_SUPPORTS_SAVE )
-GAME( 1989, secretagj, secretag, slyspy, slyspy, dec0_state, slyspy, ROT0, "Data East Corporation", "Secret Agent (Japan revision 2)", GAME_SUPPORTS_SAVE )
-GAME( 1989, slyspy, secretag, slyspy, slyspy, dec0_state, slyspy, ROT0, "Data East USA", "Sly Spy (US revision 3)", GAME_SUPPORTS_SAVE )
-GAME( 1989, slyspy2, secretag, slyspy, slyspy, dec0_state, slyspy, ROT0, "Data East USA", "Sly Spy (US revision 2)", GAME_SUPPORTS_SAVE )
-GAME( 1989, midres, 0, midres, midres, driver_device, 0, ROT0, "Data East Corporation", "Midnight Resistance (World)", GAME_SUPPORTS_SAVE )
-GAME( 1989, midresu, midres, midres, midresu, driver_device, 0, ROT0, "Data East USA", "Midnight Resistance (US)", GAME_SUPPORTS_SAVE )
-GAME( 1989, midresj, midres, midres, midresu, driver_device, 0, ROT0, "Data East Corporation", "Midnight Resistance (Japan)", GAME_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)", GAME_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)", GAME_SUPPORTS_SAVE )
+GAME( 1987, hbarrel, 0, hbarrel, hbarrel, dec0_state, hbarrel, ROT270, "Data East USA", "Heavy Barrel (US)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, hbarrelw, hbarrel, hbarrel, hbarrel, dec0_state, hbarrel, ROT270, "Data East Corporation", "Heavy Barrel (World)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, baddudes, 0, baddudes, baddudes, dec0_state, baddudes, ROT0, "Data East USA", "Bad Dudes vs. Dragonninja (US)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, drgninja, baddudes, baddudes, drgninja, dec0_state, baddudes, ROT0, "Data East Corporation", "Dragonninja (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, birdtry, 0, birdtry, birdtry, dec0_state, birdtry, ROT270, "Data East Corporation", "Birdie Try (Japan)", MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1988, robocop, 0, robocop, robocop, dec0_state, robocop, ROT0, "Data East Corporation", "Robocop (World revision 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, robocopw, robocop, robocop, robocop, dec0_state, robocop, ROT0, "Data East Corporation", "Robocop (World revision 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, robocopj, robocop, robocop, robocop, dec0_state, robocop, ROT0, "Data East Corporation", "Robocop (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, robocopu, robocop, robocop, robocop, dec0_state, robocop, ROT0, "Data East USA", "Robocop (US revision 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, robocopu0, robocop, robocop, robocop, dec0_state, robocop, ROT0, "Data East USA", "Robocop (US revision 0)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, hippodrm, 0, hippodrm, hippodrm, dec0_state, hippodrm, ROT0, "Data East USA", "Hippodrome (US)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, ffantasy, hippodrm, hippodrm, ffantasy, dec0_state, hippodrm, ROT0, "Data East Corporation", "Fighting Fantasy (Japan revision 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, ffantasya, hippodrm, hippodrm, ffantasy, dec0_state, hippodrm, ROT0, "Data East Corporation", "Fighting Fantasy (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, secretag, 0, slyspy, slyspy, dec0_state, slyspy, ROT0, "Data East Corporation", "Secret Agent (World revision 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, secretagj, secretag, slyspy, slyspy, dec0_state, slyspy, ROT0, "Data East Corporation", "Secret Agent (Japan revision 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, slyspy, 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( 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 )
// bootlegs
// more or less just an unprotected versions of the game, everything intact
-GAME( 1988, robocopb, robocop, robocopb, robocop, dec0_state, robocop, ROT0, "bootleg", "Robocop (World bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1988, drgninjab, baddudes, baddudes, drgninja, dec0_state, baddudes, ROT0, "bootleg", "Dragonninja (bootleg)", GAME_SUPPORTS_SAVE )
+GAME( 1988, robocopb, robocop, robocopb, robocop, dec0_state, robocop, ROT0, "bootleg", "Robocop (World bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, drgninjab, baddudes, baddudes, drgninja, dec0_state, baddudes, ROT0, "bootleg", "Dragonninja (bootleg)", MACHINE_SUPPORTS_SAVE )
// this is a common bootleg board
-GAME( 1989, midresb, midres, midresb, midresb, dec0_state, midresb, ROT0, "bootleg", "Midnight Resistance (bootleg with 68705)", GAME_SUPPORTS_SAVE ) // need to hook up 68705?
-GAME( 1989, ffantasybl, hippodrm, ffantasybl, ffantasybl, dec0_state, ffantasybl, ROT0, "bootleg", "Fighting Fantasy (bootleg with 68705)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) // 68705 not dumped, might be the same as midresb
+GAME( 1989, midresb, midres, midresb, midresb, dec0_state, midresb, ROT0, "bootleg", "Midnight Resistance (bootleg with 68705)", MACHINE_SUPPORTS_SAVE ) // need to hook up 68705? (probably unused)
+GAME( 1989, midresbj, midres, midresb, midresb, dec0_state, midresb, ROT0, "bootleg", "Midnight Resistance (Joystick bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, ffantasybl, hippodrm, ffantasybl, ffantasybl, dec0_state, ffantasybl, ROT0, "bootleg", "Fighting Fantasy (bootleg with 68705)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // 68705 not dumped, might be the same as midresb
/* A Bad Dudes bootleg with 68705 like the midres and ffantasy ones exists, but is not dumped */
// 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)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // sound rom / music from section z with mods for ADPCM?
-GAME( 1989, secretab, secretag, secretab, slyspy, dec0_state, slyspy, ROT0, "bootleg", "Secret Agent (bootleg)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
+GAME( 1988, automat, robocop, automat, robocop, dec0_state, robocop, ROT0, "bootleg", "Automat (bootleg of Robocop)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // sound rom / music from section z with mods for ADPCM?
+GAME( 1989, secretab, secretag, secretab, slyspy, dec0_state, slyspy, ROT0, "bootleg", "Secret Agent (bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/dec8.c b/src/mame/drivers/dec8.c
index b99796e39d4..8d681e5676b 100644
--- a/src/mame/drivers/dec8.c
+++ b/src/mame/drivers/dec8.c
@@ -3610,26 +3610,26 @@ DRIVER_INIT_MEMBER(dec8_state,cobracom)
/******************************************************************************/
-GAME( 1986, lastmisn, 0, lastmisn, lastmisn, dec8_state, lastmisn, ROT270, "Data East USA", "Last Mission (US revision 6)", GAME_SUPPORTS_SAVE )
-GAME( 1986, lastmisno,lastmisn, lastmisn, lastmisn, dec8_state, lastmisn, ROT270, "Data East USA", "Last Mission (US revision 5)", GAME_SUPPORTS_SAVE )
-GAME( 1986, lastmisnj,lastmisn, lastmisn, lastmisnj, dec8_state, lastmisn, ROT270, "Data East Corporation", "Last Mission (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1986, shackled, 0, shackled, shackled, dec8_state, shackled, ROT0, "Data East USA", "Shackled (US)", GAME_SUPPORTS_SAVE )
-GAME( 1986, breywood, shackled, shackled, breywood, dec8_state, shackled, ROT0, "Data East Corporation", "Breywood (Japan revision 2)", GAME_SUPPORTS_SAVE )
-GAME( 1987, gondo, 0, gondo, gondo, dec8_state, gondo, ROT270, "Data East USA", "Gondomania (US)", GAME_SUPPORTS_SAVE )
-GAME( 1987, makyosen, gondo, gondo, gondo, dec8_state, gondo, ROT270, "Data East Corporation", "Makyou Senshi (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1987, garyoret, 0, garyoret, garyoret, dec8_state, garyoret, ROT0, "Data East Corporation", "Garyo Retsuden (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1987, ghostb, 0, ghostb, ghostb, dec8_state, ghostb, ROT0, "Data East USA", "The Real Ghostbusters (US 2 Players, revision 2)", GAME_SUPPORTS_SAVE )
-GAME( 1987, ghostb2a, ghostb, ghostb, ghostb2a, dec8_state, ghostb, ROT0, "Data East USA", "The Real Ghostbusters (US 2 Players)", GAME_SUPPORTS_SAVE )
-GAME( 1987, ghostb3, ghostb, ghostb, ghostb3, dec8_state, ghostb, ROT0, "Data East USA", "The Real Ghostbusters (US 3 Players)", GAME_SUPPORTS_SAVE )
-GAME( 1987, meikyuh, ghostb, meikyuh, meikyuh, dec8_state, meikyuh, ROT0, "Data East Corporation", "Meikyuu Hunter G (Japan, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1987, meikyuha, ghostb, meikyuh, meikyuh, dec8_state, meikyuh, ROT0, "Data East Corporation", "Meikyuu Hunter G (Japan, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1987, csilver, 0, csilver, csilver, dec8_state, csilver, ROT0, "Data East Corporation", "Captain Silver (World)", GAME_SUPPORTS_SAVE )
-GAME( 1987, csilverj, csilver, csilver, csilverj, dec8_state, csilver, ROT0, "Data East Corporation", "Captain Silver (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1987, oscar, 0, oscar, oscar, dec8_state, oscar, ROT0, "Data East Corporation", "Psycho-Nics Oscar (World revision 0)", GAME_SUPPORTS_SAVE )
-GAME( 1988, oscaru, oscar, oscar, oscarj, dec8_state, oscar, ROT0, "Data East USA", "Psycho-Nics Oscar (US)", GAME_SUPPORTS_SAVE )
-GAME( 1987, oscarj1, oscar, oscar, oscarj, dec8_state, oscar, ROT0, "Data East Corporation", "Psycho-Nics Oscar (Japan revision 1)", GAME_SUPPORTS_SAVE )
-GAME( 1987, oscarj2, oscar, oscar, oscarj, dec8_state, oscar, ROT0, "Data East Corporation", "Psycho-Nics Oscar (Japan revision 2)", GAME_SUPPORTS_SAVE )
-GAME( 1987, srdarwin, 0, srdarwin, srdarwin, dec8_state, srdarwin, ROT270, "Data East Corporation", "Super Real Darwin (World)", GAME_SUPPORTS_SAVE )
-GAME( 1987, srdarwinj,srdarwin, srdarwin, srdarwinj, dec8_state, srdarwin, ROT270, "Data East Corporation", "Super Real Darwin (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1988, cobracom, 0, cobracom, cobracom, dec8_state, cobracom, ROT0, "Data East Corporation", "Cobra-Command (World revision 5)", GAME_SUPPORTS_SAVE )
-GAME( 1988, cobracomj,cobracom, cobracom, cobracom, dec8_state, cobracom, ROT0, "Data East Corporation", "Cobra-Command (Japan)", GAME_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, 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)", 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 )
diff --git a/src/mame/drivers/deco156.c b/src/mame/drivers/deco156.c
index d21b7fddf39..4d812602708 100644
--- a/src/mame/drivers/deco156.c
+++ b/src/mame/drivers/deco156.c
@@ -475,8 +475,7 @@ DE-0385-2 DEC-22VO
|----------------------------------------------|
Notes:
- - CPU is unknown. It's chip DE156. The clock input is 7.000MHz on pin 90
- It's thought to be a custom-made encrypted ARM7-based CPU.
+ - CPU DE156 is a custom encrypted ARM7-based chip. The clock input is 7.000MHz on pin 90
The package is a Quad Flat Pack and has 100 pins.
- OKI M6295(1) clock: 1.000MHz (28 / 28), sample rate = 1000000 / 132
- OKI M6295(2) clock: 2.000MHz (28 / 14), sample rate = 2000000 / 132
@@ -603,8 +602,7 @@ DE-0430-2
|----------------------------------------------|
Notes:
- - CPU is unknown. It's chip DE156. The clock input is 7.000MHz on pin 90
- It's thought to be a custom-made encrypted ARM7-based CPU.
+ - CPU DE156 is a custom encrypted ARM7-based chip. The clock input is 7.000MHz on pin 90
The package is a Quad Flat Pack and has 100 pins.
- YMZ280B-F clock: 14.000MHz (28 / 2)
SANYO LC7881 clock: 2.3333MHz (28 / 12)
@@ -675,7 +673,7 @@ DRIVER_INIT_MEMBER(deco156_state,wcvol95)
/**********************************************************************************/
-GAME( 1993, hvysmsh, 0, hvysmsh, hvysmsh, deco156_state, hvysmsh, ROT0, "Data East Corporation", "Heavy Smash (Europe version -2)", GAME_SUPPORTS_SAVE )
-GAME( 1993, hvysmsha, hvysmsh, hvysmsh, hvysmsh, deco156_state, hvysmsh, ROT0, "Data East Corporation", "Heavy Smash (Asia version -4)", GAME_SUPPORTS_SAVE )
-GAME( 1993, hvysmshj, hvysmsh, hvysmsh, hvysmsh, deco156_state, hvysmsh, ROT0, "Data East Corporation", "Heavy Smash (Japan version -2)", GAME_SUPPORTS_SAVE )
-GAME( 1995, wcvol95, 0, wcvol95, wcvol95, deco156_state, wcvol95, ROT0, "Data East Corporation", "World Cup Volley '95 (Japan v1.0)", GAME_SUPPORTS_SAVE )
+GAME( 1993, hvysmsh, 0, hvysmsh, hvysmsh, deco156_state, hvysmsh, ROT0, "Data East Corporation", "Heavy Smash (Europe version -2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, hvysmsha, hvysmsh, hvysmsh, hvysmsh, deco156_state, hvysmsh, ROT0, "Data East Corporation", "Heavy Smash (Asia version -4)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, hvysmshj, hvysmsh, hvysmsh, hvysmsh, deco156_state, hvysmsh, ROT0, "Data East Corporation", "Heavy Smash (Japan version -2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, wcvol95, 0, wcvol95, wcvol95, deco156_state, wcvol95, ROT0, "Data East Corporation", "World Cup Volley '95 (Japan v1.0)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/deco32.c b/src/mame/drivers/deco32.c
index 90cbed76764..26de6549454 100644
--- a/src/mame/drivers/deco32.c
+++ b/src/mame/drivers/deco32.c
@@ -223,6 +223,137 @@ Notes:
PROM.9J Fujitsu MB7124 compatible with 82S147 Labelled 'LN-00'
+Night Slashers
+Data East, 1993
+
+DE-0395-1 DEC-22VO
+|-----------------------------------------------------|
+| TA8205AH 6164 |-----| 2M-16M* MBH-07|
+| 02- HuC6280A | 52 | MBH-09 MBH-06|
+| YM2151 | | 2M-16M* MBH-05|
+| YM3012 32.220MHz |-----| MBH-08 MBH-04|
+| JP1 MBH-11 93C45 |-----| MBH-03|
+|CN2 MBH-10 | 52 | MBH-02|
+| M6295(1) | | |
+| M6295(2) |-----| |
+| |-----| |-----| |
+|J | 104 | |-----| |-----| | 52 | |
+|A | | | 153 | | 113 | | | |
+|M |-----| | | | | |-----| |
+|M |-----| |-----| 28MHz |
+|A |-----| |
+| | 99 | VM-02 |
+| | | LN-00 |-----| 6164 MBH-01 |
+| |-----| | 74 | 6164 |
+| | | MBH-00 |
+| |-----| |-----| |-----| |
+| | 113 | | 200 | |-----| 6164 |
+| | | | | | 141 | 6164 |
+| |-----| |-----| | | VE-01A |
+|TEST_SW |-----| VE-00 |-----| |
+| | 156 | |
+| CN4 LH52250 LH52250 01- | | |
+| CN3 LH52250 LH52250 00- |-----| |
+|-----------------------------------------------------|
+
+NOTE: Program EPROMs did NOT have regional letter codes, just 00, 01 & 02
+
+Same PCB as shown below for Fighter's History, but populated with more
+chips as needed. It is worth noting that Night Slashers uses the encryption
+features of the 156 chip where as Fighter's History does not.
+
+*****************************************************************************************************
+
+Fighter's History
+Data East, 1993
+
+PCB Layout
+----------
+
+DE-0395-1 DEC-22VO
+|-----------------------------------------------------|
+| TA8205AH 6164 MBF-05 2M-8M*|
+| LE02 HuC6280A MBF-04 8M*|
+| YM2151 52* MBF-03 4M-16M*|
+| YM3012 32.220MHz MBF-02 16M*|
+| JP1 MBF-07 93C45 4M-16M*|
+|CN2 MBF-06 16M*|
+| M6295(1) 52* |
+| M6295(2) |
+| |-----| |-----| |
+|J | 75 | 113/153* | 52 | |
+|A | | |-----| | | |
+|M |-----| | 113 | |-----| |
+|M | | 28MHz |
+|A |-----| |
+| PAL* |
+| 99* KT-00 |-----| 6164 MBF-01 |
+| | 74 | 6164 |
+| | | MBF-00 |
+| |-----| |-----| |-----| |
+| | 113 | | 200 | |-----| 6164 |
+| | | | | | 56 | 6164 |
+| |-----| |-----| | | VE-01A |
+|TEST_SW |-----| VE-00 |-----| |
+| | 156 | |
+| CN4 LH52250 LH52250 LE01 | | |
+| CN3* LH52250 LH52250 LE00 |-----| |
+|-----------------------------------------------------|
+
+
+Very similar to the DE-0396-0 described below with the notable exceptions:
+ The sound area reworked to use the HuC6280A instead of a standard Z80
+ Uses the larger 113 instead of the 153 chips, however both PCBs have
+ solder pads in the same locations for either chip.
+ Uses the 56 instead of the 141
+
+
+DE-0396-0 DEC-22VO
+|-----------------------------------------------------|
+| TA8205AH Z80 MBF-05 2M-8M*|
+| 6164 YM2151 MBF-04 8M*|
+| LJ02 52* MBF-03 4M-16M*|
+| YM3012 32.220MHz MBF-02 16M*|
+| JP1 MBF-07 93C45 4M-16M*|
+|CN2 MBF-06 16M*|
+| M6295(1) 52* |
+| M6295(2) |
+| |-----| |-----| |
+|J | 75 | 113/153* | 52 | |
+|A | | |-----| | | |
+|M |-----| | 153 | |-----| |
+|M | | 28MHz |
+|A |-----| |
+| PAL* |
+| 99* KT-00 |-----| 6164 MBF-01 |
+| | 74 | 6164 |
+| | | MBF-00 |
+| |-----| |-----| |-----| |
+| | 153 | | 200 | |-----| 6164 |
+| | | | | | 141 | 6164 |
+| |-----| |-----| | | VE-01A |
+|TEST_SW |-----| VE-00 |-----| |
+| | 156 | |
+| CN4 LH52250 LH52250 LJ01-3 | | |
+| CN3* LH52250 LH52250 LJ00-3 |-----| |
+|-----------------------------------------------------|
+
+This PCB is very close to the DE-397-0 listed above
+
+ Custom ICs-
+ DE # Package Type Additional #'s (for reference of scratched-off chips on other PCB's)
+ ------------------------------------------------------------------------------------------------------
+ 156 (CPU) 100 Pin PQFP 9321EV 301811 (Doesn't use encryption functions of the 156)
+ 141 160 Pin PQFP 24220F008
+ 74 160 Pin PQFP 24220F009
+ 52 128 Pin PQFP 9313EV 211771 VC5259-0001
+ 153 (x2) 144 Pin PQFP L7A0888 9312
+ 75 100 Pin PQFP L7A0680 9143
+ 200 100 Pin PQFP JAPAN 9315PP002 (chip is darker black)
+
+NOTE: There are several unpopulated locations (denoted by *) for additional rom chips
+ or more custom ICs.
+
***************************************************************************/
#include "emu.h"
@@ -355,8 +486,10 @@ WRITE32_MEMBER(deco32_state::fghthist_eeprom_w)
}
}
+
/**********************************************************************************/
+
READ32_MEMBER(dragngun_state::service_r)
{
// logerror("%08x:Read service\n",space.device().safe_pc());
@@ -372,7 +505,6 @@ READ32_MEMBER(dragngun_state::lockload_gun_mirror_r)
return ioport("IN3")->read() | ioport("LIGHT0_X")->read() | (ioport("LIGHT0_X")->read()<<16) | (ioport("LIGHT0_X")->read()<<24); //((machine().rand()%0xff)<<16);
}
-
READ32_MEMBER(dragngun_state::lightgun_r)
{
/* Ports 0-3 are read, but seem unused */
@@ -409,8 +541,8 @@ WRITE32_MEMBER(dragngun_state::eeprom_w)
logerror("%s:Write control 1 %08x %08x\n",machine().describe_context(),offset,data);
}
-/**********************************************************************************/
+/**********************************************************************************/
WRITE32_MEMBER(deco32_state::tattass_control_w)
@@ -543,14 +675,15 @@ WRITE32_MEMBER(deco32_state::tattass_control_w)
//logerror("%08x: %08x data\n",data,mem_mask);
}
+
/**********************************************************************************/
+
UINT16 deco32_state::port_b_nslasher(int unused)
{
return (m_eeprom->do_read());
}
-
void deco32_state::nslasher_sound_cb( address_space &space, UINT16 data, UINT16 mem_mask )
{
/* bit 1 of nslasher_sound_irq specifies IRQ command writes */
@@ -572,9 +705,6 @@ void deco32_state::tattass_sound_cb( address_space &space, UINT16 data, UINT16 m
m_decobsmt->bsmt_comms_w(space, 0, soundcommand);
}
-
-
-
WRITE32_MEMBER(deco32_state::nslasher_eeprom_w)
{
if (ACCESSING_BITS_0_7)
@@ -588,10 +718,9 @@ WRITE32_MEMBER(deco32_state::nslasher_eeprom_w)
}
-
-
/**********************************************************************************/
+
READ32_MEMBER(deco32_state::spriteram_r)
{
return m_spriteram16[offset] ^ 0xffff0000;
@@ -767,7 +896,6 @@ static ADDRESS_MAP_START( fghthsta_memmap, AS_PROGRAM, 32, deco32_state )
AM_RANGE(0x1e0000, 0x1e001f) AM_DEVREADWRITE("tilegen2", deco16ic_device, pf_control_dword_r, pf_control_dword_w)
AM_RANGE(0x200000, 0x207fff) AM_READWRITE(fghthist_protection_region_0_146_r, fghthist_protection_region_0_146_w) AM_SHARE("prot32ram") // only maps on 16-bits
-
ADDRESS_MAP_END
@@ -1014,7 +1142,6 @@ static ADDRESS_MAP_START( nslasher_map, AS_PROGRAM, 32, deco32_state )
AM_RANGE(0x200000, 0x207fff) AM_READWRITE16(nslasher_protection_region_0_104_r, nslasher_protection_region_0_104_w, 0xffff0000)
AM_RANGE(0x200000, 0x207fff) AM_READ16(nslasher_debug_r, 0x0000ffff) // seems to be debug switches / code activated by this?
-
ADDRESS_MAP_END
/******************************************************************************/
@@ -1949,6 +2076,31 @@ static MACHINE_CONFIG_START( fghthsta, deco32_state ) /* DE-0395-1 PCB */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.35)
MACHINE_CONFIG_END
+static MACHINE_CONFIG_DERIVED( fghthistz, fghthsta )
+ MCFG_DEVICE_REMOVE("audiocpu")
+
+ MCFG_CPU_ADD("audiocpu", Z80, 32220000/9)
+ MCFG_CPU_PROGRAM_MAP(nslasher_sound)
+ MCFG_CPU_IO_MAP(nslasher_io_sound)
+
+ MCFG_SOUND_MODIFY("ymsnd")
+ //MCFG_YM2151_IRQ_HANDLER(WRITELINE(deco32_state,sound_irq_nslasher))
+ MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu",0))
+
+ MCFG_YM2151_PORT_WRITE_HANDLER(WRITE8(deco32_state,sound_bankswitch_w))
+ MCFG_SOUND_ROUTE(0, "lspeaker", 0.40)
+ MCFG_SOUND_ROUTE(1, "rspeaker", 0.40)
+ /*
+ MCFG_DEVICE_REMOVE("ioprot")
+ MCFG_DECO146_ADD("ioprot")
+ MCFG_DECO146_SET_PORTA_CALLBACK( deco32_state, port_a_fghthist )
+ MCFG_DECO146_SET_PORTB_CALLBACK( deco32_state, port_b_fghthist )
+ MCFG_DECO146_SET_PORTC_CALLBACK( deco32_state, port_c_fghthist )
+ MCFG_DECO146_SET_INTERFACE_SCRAMBLE_INTERLEAVE
+ MCFG_DECO146_SET_USE_MAGIC_ADDRESS_XOR
+ MCFG_DECO146_SET_SOUNDLATCH_CALLBACK(deco32_state, nslasher_sound_cb)
+ */
+MACHINE_CONFIG_END
DECO16IC_BANK_CB_MEMBER(dragngun_state::bank_1_callback)
{
@@ -2324,7 +2476,6 @@ static MACHINE_CONFIG_START( nslasher, deco32_state )
MCFG_DECO146_SET_SOUNDLATCH_CALLBACK(deco32_state, nslasher_sound_cb)
MCFG_DECO146_SET_INTERFACE_SCRAMBLE_INTERLEAVE
-
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -2356,12 +2507,12 @@ static MACHINE_CONFIG_DERIVED( nslasheru, nslasher )
MCFG_DECO146_SET_PORTB_CALLBACK( deco32_state, port_b_nslasher )
MCFG_DECO146_SET_SOUNDLATCH_CALLBACK(deco32_state, deco32_sound_cb)
MCFG_DECO146_SET_INTERFACE_SCRAMBLE_INTERLEAVE
-
MACHINE_CONFIG_END
+
/**********************************************************************************/
-ROM_START( captaven )
+ROM_START( captaven ) /* DE-0351-x PCB (x=3 or 4) */
ROM_REGION(0x100000, "maincpu", 0 ) /* ARM 32 bit code */
ROM_LOAD32_BYTE( "hn_00-4.1e", 0x000000, 0x20000, CRC(147fb094) SHA1(6bd759c42f4b7f9e1c3f2d3ece0b3ec72de1a982) )
ROM_LOAD32_BYTE( "hn_01-4.1h", 0x000001, 0x20000, CRC(11ecdb95) SHA1(832b56f05ae7e15e67fbdd321da8c1cc5e7629a0) )
@@ -2411,9 +2562,14 @@ ROM_START( captaven )
ROM_REGION(0x80000, "oki1", 0 )
ROM_LOAD( "man-11.16k", 0x000000, 0x80000, CRC(0dc60a4c) SHA1(4d0daa6a0272852a37f341a0cdc48baee0ad9dd8) )
+
+ ROM_REGION( 0x0600, "plds", 0 )
+ ROM_LOAD( "ts-00.4h", 0x0000, 0x0117, CRC(ebc2908e) SHA1(dca14a55abd1d88ee09092d4122614e55c3e7f53) )
+ ROM_LOAD( "ts-01.5h", 0x0200, 0x0117, CRC(c776a980) SHA1(cd4bdcfb755f561fefa4c88fab5d6d2397332aa7) )
+ ROM_LOAD( "ts-02.12l", 0x0400, 0x01bf, CRC(6f26528c) SHA1(2cf869b2a789a9b0646162a61c147bcbb13c9141) )
ROM_END
-ROM_START( captavena )
+ROM_START( captavena ) /* DE-0351-x PCB (x=3 or 4) */
ROM_REGION(0x100000, "maincpu", 0 ) /* ARM 32 bit code */
ROM_LOAD32_BYTE( "hn_00.e1", 0x000000, 0x20000, CRC(12dd0c71) SHA1(77bd0e5f1b105ec70de5e76cb9c8138f02a496be) )
ROM_LOAD32_BYTE( "hn_01.h1", 0x000001, 0x20000, CRC(ac5ea492) SHA1(e08fa2b3e3a40cba6dcdf07049d67056d59ed72a) )
@@ -2463,9 +2619,14 @@ ROM_START( captavena )
ROM_REGION(0x80000, "oki1", 0 )
ROM_LOAD( "man-11.16k", 0x000000, 0x80000, CRC(0dc60a4c) SHA1(4d0daa6a0272852a37f341a0cdc48baee0ad9dd8) )
+
+ ROM_REGION( 0x0600, "plds", 0 )
+ ROM_LOAD( "ts-00.4h", 0x0000, 0x0117, CRC(ebc2908e) SHA1(dca14a55abd1d88ee09092d4122614e55c3e7f53) )
+ ROM_LOAD( "ts-01.5h", 0x0200, 0x0117, CRC(c776a980) SHA1(cd4bdcfb755f561fefa4c88fab5d6d2397332aa7) )
+ ROM_LOAD( "ts-02.12l", 0x0400, 0x01bf, CRC(6f26528c) SHA1(2cf869b2a789a9b0646162a61c147bcbb13c9141) )
ROM_END
-ROM_START( captavene )
+ROM_START( captavene ) /* DE-0351-x PCB (x=3 or 4) */
ROM_REGION(0x100000, "maincpu", 0 ) /* ARM 32 bit code */
ROM_LOAD32_BYTE( "hg_00-4.1e", 0x000000, 0x20000, CRC(7008d43c) SHA1(a39143e13075ebc58ecc576391f04d2649675dfb) )
ROM_LOAD32_BYTE( "hg_01-4.1h", 0x000001, 0x20000, CRC(53dc1042) SHA1(4547ad20e5bc3b9cedae53f73f1628fa3493aafa) )
@@ -2517,13 +2678,13 @@ ROM_START( captavene )
ROM_LOAD( "man-11.16k", 0x000000, 0x80000, CRC(0dc60a4c) SHA1(4d0daa6a0272852a37f341a0cdc48baee0ad9dd8) )
ROM_REGION( 0x0800, "plds", 0 )
- ROM_LOAD( "pal16l8a.12l", 0x0000, 0x0104, NO_DUMP ) /* PAL is read protected */
- ROM_LOAD( "pal16l8a.4h", 0x0200, 0x0104, NO_DUMP ) /* PAL is read protected */
- ROM_LOAD( "pal16l8a.5h", 0x0400, 0x0104, NO_DUMP ) /* PAL is read protected */
+ ROM_LOAD( "ts-00.4h", 0x0000, 0x0117, CRC(ebc2908e) SHA1(dca14a55abd1d88ee09092d4122614e55c3e7f53) )
+ ROM_LOAD( "ts-01.5h", 0x0200, 0x0117, CRC(c776a980) SHA1(cd4bdcfb755f561fefa4c88fab5d6d2397332aa7) )
+ ROM_LOAD( "ts-02.12l", 0x0400, 0x01bf, CRC(6f26528c) SHA1(2cf869b2a789a9b0646162a61c147bcbb13c9141) )
ROM_LOAD( "pal16r8b.14c", 0x0600, 0x0104, NO_DUMP ) /* PAL is read protected */
ROM_END
-ROM_START( captavenu )
+ROM_START( captavenu ) /* DE-0351-x PCB (x=3 or 4) */
ROM_REGION(0x100000, "maincpu", 0 ) /* ARM 32 bit code */
ROM_LOAD32_BYTE( "hh_00-19.1e", 0x000000, 0x20000, CRC(08b870e0) SHA1(44c837e3c5dfc9764d89b0ebb3e9b7a40fe4d76f) )
ROM_LOAD32_BYTE( "hh_01-19.1h", 0x000001, 0x20000, CRC(0dc0feca) SHA1(cb1c97aac59dabcf6c37bc1562cf2f62bca951f1) )
@@ -2573,9 +2734,14 @@ ROM_START( captavenu )
ROM_REGION(0x80000, "oki1", 0 )
ROM_LOAD( "man-11.16k", 0x000000, 0x80000, CRC(0dc60a4c) SHA1(4d0daa6a0272852a37f341a0cdc48baee0ad9dd8) )
+
+ ROM_REGION( 0x0600, "plds", 0 )
+ ROM_LOAD( "ts-00.4h", 0x0000, 0x0117, CRC(ebc2908e) SHA1(dca14a55abd1d88ee09092d4122614e55c3e7f53) )
+ ROM_LOAD( "ts-01.5h", 0x0200, 0x0117, CRC(c776a980) SHA1(cd4bdcfb755f561fefa4c88fab5d6d2397332aa7) )
+ ROM_LOAD( "ts-02.12l", 0x0400, 0x01bf, CRC(6f26528c) SHA1(2cf869b2a789a9b0646162a61c147bcbb13c9141) )
ROM_END
-ROM_START( captavenuu )
+ROM_START( captavenuu ) /* DE-0351-x PCB (x=3 or 4) */
ROM_REGION(0x100000, "maincpu", 0 ) /* ARM 32 bit code */
ROM_LOAD32_BYTE( "hh-00.1e", 0x000000, 0x20000, CRC(c34da654) SHA1(a1988a6a45991db6dee10b484049f6703b4671c9) )
ROM_LOAD32_BYTE( "hh-01.1h", 0x000001, 0x20000, CRC(55abe63f) SHA1(98772eff3ebb5a4f243c7a77d398eb142d1505cb) )
@@ -2625,9 +2791,14 @@ ROM_START( captavenuu )
ROM_REGION(0x80000, "oki1", 0 )
ROM_LOAD( "man-11.16k", 0x000000, 0x80000, CRC(0dc60a4c) SHA1(4d0daa6a0272852a37f341a0cdc48baee0ad9dd8) )
+
+ ROM_REGION( 0x0600, "plds", 0 )
+ ROM_LOAD( "ts-00.4h", 0x0000, 0x0117, CRC(ebc2908e) SHA1(dca14a55abd1d88ee09092d4122614e55c3e7f53) )
+ ROM_LOAD( "ts-01.5h", 0x0200, 0x0117, CRC(c776a980) SHA1(cd4bdcfb755f561fefa4c88fab5d6d2397332aa7) )
+ ROM_LOAD( "ts-02.12l", 0x0400, 0x01bf, CRC(6f26528c) SHA1(2cf869b2a789a9b0646162a61c147bcbb13c9141) )
ROM_END
-ROM_START( captavenua )
+ROM_START( captavenua ) /* DE-0351-x PCB (x=3 or 4) */
ROM_REGION(0x100000, "maincpu", 0 ) /* ARM 32 bit code */
ROM_LOAD32_BYTE( "hh_00-4.2e", 0x000000, 0x20000, CRC(0e1acc05) SHA1(7eb6206efad233f9f4ee51102f9fe6b58f0719ea) )
ROM_LOAD32_BYTE( "hh_01-4.2h", 0x000001, 0x20000, CRC(4ff0351d) SHA1(15fc2662ff0d32986c4d4d074b985ad853da34e1) )
@@ -2677,9 +2848,14 @@ ROM_START( captavenua )
ROM_REGION(0x80000, "oki1", 0 )
ROM_LOAD( "man-11.16k", 0x000000, 0x80000, CRC(0dc60a4c) SHA1(4d0daa6a0272852a37f341a0cdc48baee0ad9dd8) )
+
+ ROM_REGION( 0x0600, "plds", 0 )
+ ROM_LOAD( "ts-00.4h", 0x0000, 0x0117, CRC(ebc2908e) SHA1(dca14a55abd1d88ee09092d4122614e55c3e7f53) )
+ ROM_LOAD( "ts-01.5h", 0x0200, 0x0117, CRC(c776a980) SHA1(cd4bdcfb755f561fefa4c88fab5d6d2397332aa7) )
+ ROM_LOAD( "ts-02.12l", 0x0400, 0x01bf, CRC(6f26528c) SHA1(2cf869b2a789a9b0646162a61c147bcbb13c9141) )
ROM_END
-ROM_START( captavenj )
+ROM_START( captavenj ) /* DE-0351-x PCB (x=3 or 4) */
ROM_REGION(0x100000, "maincpu", 0 ) /* ARM 32 bit code */
ROM_LOAD32_BYTE( "hj_00-2.1e", 0x000000, 0x20000, CRC(10b1faaf) SHA1(9d76885200a846b4751c8d44ff591e2aff7c4148) )
ROM_LOAD32_BYTE( "hj_01-2.1h", 0x000001, 0x20000, CRC(62c59f27) SHA1(20bbb7f3ff63a8c795686c1d56d51e90305daa77) )
@@ -2729,6 +2905,11 @@ ROM_START( captavenj )
ROM_REGION(0x80000, "oki1", 0 )
ROM_LOAD( "man-11.16k", 0x000000, 0x80000, CRC(0dc60a4c) SHA1(4d0daa6a0272852a37f341a0cdc48baee0ad9dd8) )
+
+ ROM_REGION( 0x0600, "plds", 0 )
+ ROM_LOAD( "ts-00.4h", 0x0000, 0x0117, CRC(ebc2908e) SHA1(dca14a55abd1d88ee09092d4122614e55c3e7f53) )
+ ROM_LOAD( "ts-01.5h", 0x0200, 0x0117, CRC(c776a980) SHA1(cd4bdcfb755f561fefa4c88fab5d6d2397332aa7) )
+ ROM_LOAD( "ts-02.12l", 0x0400, 0x01bf, CRC(6f26528c) SHA1(2cf869b2a789a9b0646162a61c147bcbb13c9141) )
ROM_END
ROM_START( dragngun )
@@ -2883,8 +3064,8 @@ ROM_END
ROM_START( fghthist ) /* DE-0380-2 PCB */
ROM_REGION(0x100000, "maincpu", 0 ) /* ARM 32 bit code */
- ROM_LOAD32_WORD( "kx00-unknown.bin", 0x000000, 0x80000, CRC(fe5eaba1) SHA1(c8a3784af487a1bbd2150abf4b1c8f3ad33da8a4) ) /* Version 43-07, Overseas */
- ROM_LOAD32_WORD( "kx01-unknown.bin", 0x000002, 0x80000, CRC(3fb8d738) SHA1(2fca7a3ea483f01c97fb28a0adfa6d7980d8236c) )
+ ROM_LOAD32_WORD( "kx00-3.1f", 0x000000, 0x80000, CRC(fe5eaba1) SHA1(c8a3784af487a1bbd2150abf4b1c8f3ad33da8a4) ) /* Version 43-07, Overseas */
+ ROM_LOAD32_WORD( "kx01-3.2f", 0x000002, 0x80000, CRC(3fb8d738) SHA1(2fca7a3ea483f01c97fb28a0adfa6d7980d8236c) )
ROM_REGION(0x10000, "audiocpu", 0 ) /* Sound CPU */
ROM_LOAD( "kx02.18k", 0x00000, 0x10000, CRC(5fd2309c) SHA1(2fb7af54d5cd9bf7dd6fb4f6b82aa52b03294f1f) )
@@ -2911,11 +3092,81 @@ ROM_START( fghthist ) /* DE-0380-2 PCB */
ROM_LOAD( "kt-00.8j", 0, 512, CRC(7294354b) SHA1(14fe42ad5d26d022c0fe9a46a4a9017af2296f40) ) /* MB7124H type prom */
ROM_REGION( 0x0400, "plds", 0 )
- ROM_LOAD( "ve-00.3d", 0x0000, 0x0104, NO_DUMP ) /* PAL16L8 is read protected */
- ROM_LOAD( "ve-01.4d", 0x0200, 0x0104, NO_DUMP ) /* PAL16L8 is read protected */
+ ROM_LOAD( "ve-00.3d", 0x0000, 0x0117, CRC(384d316c) SHA1(61b50c695d4210c199cf6f7bbe50c8a5ecd1d21c) )
+ ROM_LOAD( "ve-01.4d", 0x0200, 0x0117, CRC(4ba7e6a9) SHA1(b65d696a3519e792df226f9f148c759cdb0e1e43) )
+ROM_END
+
+ROM_START( fghthista ) /* DE-0380-2 PCB */
+ ROM_REGION(0x100000, "maincpu", 0 ) /* ARM 32 bit code */
+ ROM_LOAD32_WORD( "kx00-2.1f", 0x000000, 0x80000, CRC(a7c36bbd) SHA1(590937818343da53a6bccbd3ea1d7102abd4f27e) ) /* Version 43-05, Overseas */
+ ROM_LOAD32_WORD( "kx01-2.2f", 0x000002, 0x80000, CRC(bdc60bb1) SHA1(e621c5cf357f49aa62deef4da1e2227021f552ce) )
+
+ ROM_REGION(0x10000, "audiocpu", 0 ) /* Sound CPU */
+ ROM_LOAD( "kx02.18k", 0x00000, 0x10000, CRC(5fd2309c) SHA1(2fb7af54d5cd9bf7dd6fb4f6b82aa52b03294f1f) )
+
+ ROM_REGION( 0x100000, "gfx1", 0 )
+ ROM_LOAD( "mbf00-8.8a", 0x000000, 0x100000, CRC(d3e9b580) SHA1(fc4676e0ecc6c32441ff66fa1f990cc3158237db) ) /* Encrypted tiles */
+
+ ROM_REGION( 0x100000, "gfx2", 0 )
+ ROM_LOAD( "mbf01-8.9a", 0x000000, 0x100000, CRC(0c6ed2eb) SHA1(8e37ef4b1f0b6d3370a08758bfd602cb5f221282) ) /* Encrypted tiles */
+
+ ROM_REGION( 0x800000, "gfx3", 0 ) /* Sprites */
+ ROM_LOAD16_BYTE( "mbf02-16.16d", 0x000001, 0x200000, CRC(c19c5953) SHA1(e6ed26f932c6c86bbd1fc4c000aa2f510c268009) )
+ ROM_LOAD16_BYTE( "mbf04-16.18d", 0x000000, 0x200000, CRC(f6a23fd7) SHA1(74e5559f17cd591aa25d2ed6c34ac9ed89e2e9ba) )
+ ROM_LOAD16_BYTE( "mbf03-16.17d", 0x400001, 0x200000, CRC(37d25c75) SHA1(8219d31091b4317190618edd8acc49f97cba6a1e) )
+ ROM_LOAD16_BYTE( "mbf05-16.19d", 0x400000, 0x200000, CRC(137be66d) SHA1(3fde345183ce04a7a65b4cedfd050d771df7d026) )
+
+ ROM_REGION(0x80000, "oki1", 0 )
+ ROM_LOAD( "mbf06.15k", 0x000000, 0x80000, CRC(fb513903) SHA1(7727a49ff7977f159ed36d097020edef3b5b36ba) )
+
+ ROM_REGION(0x80000, "oki2", 0 )
+ ROM_LOAD( "mbf07.16k", 0x000000, 0x80000, CRC(51d4adc7) SHA1(22106ed7a05db94adc5a783ce34529e29d24d41a) )
+
+ ROM_REGION(512, "proms", 0 )
+ ROM_LOAD( "kt-00.8j", 0, 512, CRC(7294354b) SHA1(14fe42ad5d26d022c0fe9a46a4a9017af2296f40) ) /* MB7124H type prom */
+
+ ROM_REGION( 0x0400, "plds", 0 )
+ ROM_LOAD( "ve-00.3d", 0x0000, 0x0117, CRC(384d316c) SHA1(61b50c695d4210c199cf6f7bbe50c8a5ecd1d21c) )
+ ROM_LOAD( "ve-01.4d", 0x0200, 0x0117, CRC(4ba7e6a9) SHA1(b65d696a3519e792df226f9f148c759cdb0e1e43) )
+ /* PAL16L8BCN at 8J is unpopulated */
+ROM_END
+
+ROM_START( fghthistu ) /* DE-0396-0 PCB */
+ ROM_REGION(0x100000, "maincpu", 0 ) /* ARM 32 bit code */
+ ROM_LOAD32_WORD( "lj00-3.1f", 0x000000, 0x80000, CRC(17543d60) SHA1(ff206e8552587b41d075b3c99f9ad733f1c2b5e0) ) /* Version 42-09, US */
+ ROM_LOAD32_WORD( "lj01-3.2f", 0x000002, 0x80000, CRC(e255d48f) SHA1(30444832cfed7eeb6082010eb219362adbafb826) )
+
+ ROM_REGION(0x10000, "audiocpu", 0 ) /* Sound CPU */
+ ROM_LOAD( "lj02-.17k", 0x00000, 0x10000, CRC(146a1063) SHA1(d16734c2443bf38add54040b9dd2628ba523638d) )
+
+ ROM_REGION( 0x100000, "gfx1", 0 )
+ ROM_LOAD( "mbf00-8.8a", 0x000000, 0x100000, CRC(d3e9b580) SHA1(fc4676e0ecc6c32441ff66fa1f990cc3158237db) ) /* Encrypted tiles */
+
+ ROM_REGION( 0x100000, "gfx2", 0 )
+ ROM_LOAD( "mbf01-8.9a", 0x000000, 0x100000, CRC(0c6ed2eb) SHA1(8e37ef4b1f0b6d3370a08758bfd602cb5f221282) ) /* Encrypted tiles */
+
+ ROM_REGION( 0x800000, "gfx3", 0 ) /* Sprites */
+ ROM_LOAD16_BYTE( "mbf02-16.16d", 0x000001, 0x200000, CRC(c19c5953) SHA1(e6ed26f932c6c86bbd1fc4c000aa2f510c268009) )
+ ROM_LOAD16_BYTE( "mbf04-16.18d", 0x000000, 0x200000, CRC(f6a23fd7) SHA1(74e5559f17cd591aa25d2ed6c34ac9ed89e2e9ba) )
+ ROM_LOAD16_BYTE( "mbf03-16.17d", 0x400001, 0x200000, CRC(37d25c75) SHA1(8219d31091b4317190618edd8acc49f97cba6a1e) )
+ ROM_LOAD16_BYTE( "mbf05-16.19d", 0x400000, 0x200000, CRC(137be66d) SHA1(3fde345183ce04a7a65b4cedfd050d771df7d026) )
+
+ ROM_REGION(0x80000, "oki1", 0 )
+ ROM_LOAD( "mbf06.15k", 0x000000, 0x80000, CRC(fb513903) SHA1(7727a49ff7977f159ed36d097020edef3b5b36ba) )
+
+ ROM_REGION(0x80000, "oki2", 0 )
+ ROM_LOAD( "mbf07.16k", 0x000000, 0x80000, CRC(51d4adc7) SHA1(22106ed7a05db94adc5a783ce34529e29d24d41a) )
+
+ ROM_REGION(512, "proms", 0 )
+ ROM_LOAD( "kt-00.8j", 0, 512, CRC(7294354b) SHA1(14fe42ad5d26d022c0fe9a46a4a9017af2296f40) ) /* MB7124H type prom */
+
+ ROM_REGION( 0x0400, "plds", 0 )
+ ROM_LOAD( "ve-00.3d", 0x0000, 0x0117, CRC(384d316c) SHA1(61b50c695d4210c199cf6f7bbe50c8a5ecd1d21c) )
+ ROM_LOAD( "ve-01.4d", 0x0200, 0x0117, CRC(4ba7e6a9) SHA1(b65d696a3519e792df226f9f148c759cdb0e1e43) )
+ /* PAL16L8BCN at 8J is unpopulated */
ROM_END
-ROM_START( fghthistu ) /* DE-0395-1 PCB */
+ROM_START( fghthistua ) /* DE-0395-1 PCB */
ROM_REGION(0x100000, "maincpu", 0 ) /* ARM 32 bit code */
ROM_LOAD32_WORD( "le00-1.1f", 0x000000, 0x80000, CRC(fccacafb) SHA1(b7236a90a09dbd5870a16aa4e4eac5ab5c098418) ) /* Version 42-06, US */
ROM_LOAD32_WORD( "le01-1.2f", 0x000002, 0x80000, CRC(06a3c326) SHA1(3d8842fb69def93fc544e89fd0e56ada416157dc) )
@@ -2945,11 +3196,12 @@ ROM_START( fghthistu ) /* DE-0395-1 PCB */
ROM_LOAD( "kt-00.8j", 0, 512, CRC(7294354b) SHA1(14fe42ad5d26d022c0fe9a46a4a9017af2296f40) ) /* MB7124H type prom */
ROM_REGION( 0x0400, "plds", 0 )
- ROM_LOAD( "ve-00.3d", 0x0000, 0x0104, NO_DUMP ) /* PAL16L8 is read protected */
- ROM_LOAD( "ve-01a.4d", 0x0200, 0x0104, NO_DUMP ) /* PAL16L8 is read protected */
+ ROM_LOAD( "ve-00.3d", 0x0000, 0x0117, CRC(384d316c) SHA1(61b50c695d4210c199cf6f7bbe50c8a5ecd1d21c) )
+ ROM_LOAD( "ve-01a.4d", 0x0200, 0x0117, CRC(109613c8) SHA1(5991e010c1bc2a827c8ee2c85a9b40e00a3167b3) )
+ /* PAL16L8BCN at 8J is unpopulated */
ROM_END
-ROM_START( fghthistua ) /* DE-0395-1 PCB */
+ROM_START( fghthistub ) /* DE-0395-1 PCB */
ROM_REGION(0x100000, "maincpu", 0 ) /* ARM 32 bit code */
ROM_LOAD32_WORD( "le00.1f", 0x000000, 0x80000, CRC(a5c410eb) SHA1(e2b0cb2351782e1155ecc4029010beb7326fd874) ) /* Version 42-05, US */
ROM_LOAD32_WORD( "le01.2f", 0x000002, 0x80000, CRC(7e148aa2) SHA1(b21e16604c4d29611f91d629deb9f041eaf41e9b) )
@@ -2979,11 +3231,12 @@ ROM_START( fghthistua ) /* DE-0395-1 PCB */
ROM_LOAD( "kt-00.8j", 0, 512, CRC(7294354b) SHA1(14fe42ad5d26d022c0fe9a46a4a9017af2296f40) ) /* MB7124H type prom */
ROM_REGION( 0x0400, "plds", 0 )
- ROM_LOAD( "ve-00.3d", 0x0000, 0x0104, NO_DUMP ) /* PAL16L8 is read protected */
- ROM_LOAD( "ve-01a.4d", 0x0200, 0x0104, NO_DUMP ) /* PAL16L8 is read protected */
+ ROM_LOAD( "ve-00.3d", 0x0000, 0x0117, CRC(384d316c) SHA1(61b50c695d4210c199cf6f7bbe50c8a5ecd1d21c) )
+ ROM_LOAD( "ve-01a.4d", 0x0200, 0x0117, CRC(109613c8) SHA1(5991e010c1bc2a827c8ee2c85a9b40e00a3167b3) )
+ /* PAL16L8BCN at 8J is unpopulated */
ROM_END
-ROM_START( fghthistub ) /* DE-0380-2 PCB */
+ROM_START( fghthistuc ) /* DE-0380-2 PCB */
ROM_REGION(0x100000, "maincpu", 0 ) /* ARM 32 bit code */
ROM_LOAD32_WORD( "kz00-1.1f", 0x000000, 0x80000, CRC(3a3dd15c) SHA1(689b51adf73402b12191a75061b8e709468c91bc) ) /* Version 42-03, US */
ROM_LOAD32_WORD( "kz01-1.2f", 0x000002, 0x80000, CRC(86796cd6) SHA1(c397c07d7a1d03ba96ccb2fe7a0ad25b8331e945) )
@@ -3013,8 +3266,9 @@ ROM_START( fghthistub ) /* DE-0380-2 PCB */
ROM_LOAD( "kt-00.8j", 0, 512, CRC(7294354b) SHA1(14fe42ad5d26d022c0fe9a46a4a9017af2296f40) ) /* MB7124H type prom */
ROM_REGION( 0x0400, "plds", 0 )
- ROM_LOAD( "ve-00.3d", 0x0000, 0x0104, NO_DUMP ) /* PAL16L8 is read protected */
- ROM_LOAD( "ve-01.4d", 0x0200, 0x0104, NO_DUMP ) /* PAL16L8 is read protected */
+ ROM_LOAD( "ve-00.3d", 0x0000, 0x0117, CRC(384d316c) SHA1(61b50c695d4210c199cf6f7bbe50c8a5ecd1d21c) )
+ ROM_LOAD( "ve-01.4d", 0x0200, 0x0117, CRC(4ba7e6a9) SHA1(b65d696a3519e792df226f9f148c759cdb0e1e43) )
+ /* PAL16L8BCN at 8J is unpopulated */
ROM_END
ROM_START( fghthistj ) /* DE-0395-1 PCB */
@@ -3047,8 +3301,9 @@ ROM_START( fghthistj ) /* DE-0395-1 PCB */
ROM_LOAD( "kt-00.8j", 0, 512, CRC(7294354b) SHA1(14fe42ad5d26d022c0fe9a46a4a9017af2296f40) ) /* MB7124H type prom */
ROM_REGION( 0x0400, "plds", 0 )
- ROM_LOAD( "ve-00.3d", 0x0000, 0x0104, NO_DUMP ) /* PAL16L8 is read protected */
- ROM_LOAD( "ve-01a.4d", 0x0200, 0x0104, NO_DUMP ) /* PAL16L8 is read protected */
+ ROM_LOAD( "ve-00.3d", 0x0000, 0x0117, CRC(384d316c) SHA1(61b50c695d4210c199cf6f7bbe50c8a5ecd1d21c) )
+ ROM_LOAD( "ve-01a.4d", 0x0200, 0x0117, CRC(109613c8) SHA1(5991e010c1bc2a827c8ee2c85a9b40e00a3167b3) )
+ /* PAL16L8BCN at 8J is unpopulated */
ROM_END
ROM_START( fghthistja ) /* DE-0380-2 PCB */
@@ -3081,8 +3336,9 @@ ROM_START( fghthistja ) /* DE-0380-2 PCB */
ROM_LOAD( "kt-00.8j", 0, 512, CRC(7294354b) SHA1(14fe42ad5d26d022c0fe9a46a4a9017af2296f40) ) /* MB7124H type prom */
ROM_REGION( 0x0400, "plds", 0 )
- ROM_LOAD( "ve-00.3d", 0x0000, 0x0104, NO_DUMP ) /* PAL16L8 is read protected */
- ROM_LOAD( "ve-01.4d", 0x0200, 0x0104, NO_DUMP ) /* PAL16L8 is read protected */
+ ROM_LOAD( "ve-00.3d", 0x0000, 0x0117, CRC(384d316c) SHA1(61b50c695d4210c199cf6f7bbe50c8a5ecd1d21c) )
+ ROM_LOAD( "ve-01.4d", 0x0200, 0x0117, CRC(4ba7e6a9) SHA1(b65d696a3519e792df226f9f148c759cdb0e1e43) )
+ /* PAL16L8BCN at 8J is unpopulated */
ROM_END
ROM_START( fghthistjb ) /* DE-0380-1 PCB */
@@ -3115,8 +3371,9 @@ ROM_START( fghthistjb ) /* DE-0380-1 PCB */
ROM_LOAD( "kt-00.8j", 0, 512, CRC(7294354b) SHA1(14fe42ad5d26d022c0fe9a46a4a9017af2296f40) ) /* MB7124H type prom */
ROM_REGION( 0x0400, "plds", 0 )
- ROM_LOAD( "ve-00.3d", 0x0000, 0x0104, NO_DUMP ) /* PAL16L8 is read protected */
- ROM_LOAD( "ve-01.4d", 0x0200, 0x0104, NO_DUMP ) /* PAL16L8 is read protected */
+ ROM_LOAD( "ve-00.3d", 0x0000, 0x0117, CRC(384d316c) SHA1(61b50c695d4210c199cf6f7bbe50c8a5ecd1d21c) )
+ ROM_LOAD( "ve-01.4d", 0x0200, 0x0117, CRC(4ba7e6a9) SHA1(b65d696a3519e792df226f9f148c759cdb0e1e43) )
+ /* PAL16L8BCN at 8J is unpopulated */
ROM_END
ROM_START( lockload ) /* Board No. DE-0420-1 + Bottom board DE-0421-0 slightly different hardware, a unique PCB and not a Dragongun conversion */
@@ -3494,7 +3751,7 @@ ROM_START( tattassa )
ROM_LOAD( "eeprom-tattass.bin", 0x0000, 0x0400, CRC(7140f40c) SHA1(4fb7897933046b6adaf00b4626d5fd23d0e8a666) )
ROM_END
-ROM_START( nslasher )
+ROM_START( nslasher ) /* DE-0397-0 PCB */
ROM_REGION(0x100000, "maincpu", 0 ) /* Encrypted ARM 32 bit code */
ROM_LOAD32_WORD( "mainprg.1f", 0x000000, 0x80000, CRC(507acbae) SHA1(329a2bb244f2f3adb8d75cab5aa2dcb129d70712) )
ROM_LOAD32_WORD( "mainprg.2f", 0x000002, 0x80000, CRC(931fc7ee) SHA1(54eb12abfa3f332ce9b43a45ec424aaee88641a6) )
@@ -3502,7 +3759,6 @@ ROM_START( nslasher )
ROM_REGION(0x10000, "audiocpu", 0 ) /* Sound CPU */
ROM_LOAD( "sndprg.17l", 0x00000, 0x10000, CRC(18939e92) SHA1(50b37a78d9d2259d4b140dd17393c4e5ca92bca5) )
-
ROM_REGION( 0x200000, "gfx1", 0 )
ROM_LOAD( "mbh-00.8c", 0x000000, 0x200000, CRC(a877f8a3) SHA1(79253525f360a73161894f31e211e4d6b38d307a) ) /* Encrypted tiles */
@@ -3529,9 +3785,14 @@ ROM_START( nslasher )
ROM_REGION(0x200, "prom", 0 )
ROM_LOAD( "ln-00.j7", 0x000000, 0x200, CRC(5e83eaf3) SHA1(95f5eb8e56dff6c2dce7c39a6dd458bfc38fe1cf) )
+
+ ROM_REGION( 0x0600, "plds", 0 )
+ ROM_LOAD( "vm-00.3d", 0x0000, 0x0117, NO_DUMP ) /* 16L8ACN is read protected */
+ ROM_LOAD( "vm-01.4d", 0x0200, 0x0117, NO_DUMP ) /* 16L8ACN is read protected */
+ ROM_LOAD( "vm-02.8j", 0x0400, 0x0117, CRC(53692426) SHA1(b8f8cf6b1f6b637fcd1fcd62474e637f5d4a6901) )
ROM_END
-ROM_START( nslasherj )
+ROM_START( nslasherj ) /* DE-0397-0 PCB */
ROM_REGION(0x100000, "maincpu", 0 ) /* Encrypted ARM 32 bit code */
ROM_LOAD32_WORD( "lx-00.1f", 0x000000, 0x80000, CRC(6ed5fb88) SHA1(84350da7939a479968a523c84e254e3ee54b8da2) )
ROM_LOAD32_WORD( "lx-01.2f", 0x000002, 0x80000, CRC(a6df2152) SHA1(6fe7e0b2e71c5f807951dcc81a6a3cff55247961) )
@@ -3565,9 +3826,14 @@ ROM_START( nslasherj )
ROM_REGION(0x200, "prom", 0 )
ROM_LOAD( "ln-00.j7", 0x000000, 0x200, CRC(5e83eaf3) SHA1(95f5eb8e56dff6c2dce7c39a6dd458bfc38fe1cf) )
+
+ ROM_REGION( 0x0600, "plds", 0 )
+ ROM_LOAD( "vm-00.3d", 0x0000, 0x0117, NO_DUMP ) /* 16L8ACN is read protected */
+ ROM_LOAD( "vm-01.4d", 0x0200, 0x0117, NO_DUMP ) /* 16L8ACN is read protected */
+ ROM_LOAD( "vm-02.8j", 0x0400, 0x0117, CRC(53692426) SHA1(b8f8cf6b1f6b637fcd1fcd62474e637f5d4a6901) )
ROM_END
-ROM_START( nslashers )
+ROM_START( nslashers ) /* DE-0397-0 PCB */
ROM_REGION(0x100000, "maincpu", 0 ) /* Encrypted ARM 32 bit code */
ROM_LOAD32_WORD( "ly-00.1f", 0x000000, 0x80000, CRC(fa0646f9) SHA1(7f9633bda230a0ced59171cdc5ab40a6d56c3d34) )
ROM_LOAD32_WORD( "ly-01.2f", 0x000002, 0x80000, CRC(ae508149) SHA1(3592949e5fb2770adb9c9daa4e38c4e75f3e2554) )
@@ -3601,9 +3867,14 @@ ROM_START( nslashers )
ROM_REGION(0x200, "prom", 0 )
ROM_LOAD( "ln-00.j7", 0x000000, 0x200, CRC(5e83eaf3) SHA1(95f5eb8e56dff6c2dce7c39a6dd458bfc38fe1cf) )
+
+ ROM_REGION( 0x0600, "plds", 0 )
+ ROM_LOAD( "vm-00.3d", 0x0000, 0x0117, NO_DUMP ) /* 16L8ACN is read protected */
+ ROM_LOAD( "vm-01.4d", 0x0200, 0x0117, NO_DUMP ) /* 16L8ACN is read protected */
+ ROM_LOAD( "vm-02.8j", 0x0400, 0x0117, CRC(53692426) SHA1(b8f8cf6b1f6b637fcd1fcd62474e637f5d4a6901) )
ROM_END
-ROM_START( nslasheru )
+ROM_START( nslasheru ) /* DE-0395-1 PCB */
ROM_REGION(0x100000, "maincpu", 0 ) /* Encrypted ARM 32 bit code */
ROM_LOAD32_WORD( "00.f1", 0x000000, 0x80000, CRC(944f3329) SHA1(7e7909e203b9752de3d3d798c6f84ac6ae824a07) )
ROM_LOAD32_WORD( "01.f2", 0x000002, 0x80000, CRC(ac12d18a) SHA1(7cd4e843bf575c70c5c39a8afa78b803106f59b0) )
@@ -3637,13 +3908,18 @@ ROM_START( nslasheru )
ROM_REGION(0x200, "prom", 0 )
ROM_LOAD( "ln-00.j7", 0x000000, 0x200, CRC(5e83eaf3) SHA1(95f5eb8e56dff6c2dce7c39a6dd458bfc38fe1cf) )
+
+ ROM_REGION( 0x0600, "plds", 0 )
+ ROM_LOAD( "ve-00.3d", 0x0000, 0x0117, CRC(384d316c) SHA1(61b50c695d4210c199cf6f7bbe50c8a5ecd1d21c) )
+ ROM_LOAD( "ve-01a.4d", 0x0200, 0x0117, CRC(109613c8) SHA1(5991e010c1bc2a827c8ee2c85a9b40e00a3167b3) )
+ ROM_LOAD( "vm-02.8j", 0x0400, 0x0117, CRC(53692426) SHA1(b8f8cf6b1f6b637fcd1fcd62474e637f5d4a6901) )
ROM_END
DRIVER_INIT_MEMBER(deco32_state,captaven)
{
deco56_decrypt_gfx(machine(), "gfx1");
deco56_decrypt_gfx(machine(), "gfx2");
-
+
save_item(NAME(m_raster_enable));
save_item(NAME(m_nslasher_sound_irq));
save_item(NAME(m_irq_source));
@@ -3707,7 +3983,6 @@ DRIVER_INIT_MEMBER(dragngun_state,dragngunj)
ROM[0x1a1b4/4]=0xe1a00000; // bl $ee000: NOP test switch lock
}
-
DRIVER_INIT_MEMBER(deco32_state,fghthist)
{
deco56_decrypt_gfx(machine(), "gfx1");
@@ -3725,7 +4000,7 @@ DRIVER_INIT_MEMBER(dragngun_state,lockload)
memcpy(RAM+0x300000,RAM+0x100000,0x100000);
memset(RAM+0x100000,0,0x100000);
-
+
save_item(NAME(m_raster_enable));
save_item(NAME(m_nslasher_sound_irq));
save_item(NAME(m_irq_source));
@@ -3752,7 +4027,7 @@ DRIVER_INIT_MEMBER(deco32_state,tattass)
deco56_decrypt_gfx(machine(), "gfx1"); /* 141 */
deco56_decrypt_gfx(machine(), "gfx2"); /* 141 */
-
+
save_item(NAME(m_tattass_eprom_bit));
save_item(NAME(m_lastClock));
save_item(NAME(m_buffer));
@@ -3783,7 +4058,7 @@ DRIVER_INIT_MEMBER(deco32_state,nslasher)
deco156_decrypt(machine());
soundlatch_setclearedvalue(0xff);
-
+
save_item(NAME(m_nslasher_sound_irq));
/* The board for Night Slashers is very close to the Fighter's History and
@@ -3792,35 +4067,43 @@ DRIVER_INIT_MEMBER(deco32_state,nslasher)
/**********************************************************************************/
-GAME( 1991, captaven, 0, captaven, captaven, deco32_state, captaven, ROT0, "Data East Corporation", "Captain America and The Avengers (Asia Rev 1.4)", GAME_SUPPORTS_SAVE )
-GAME( 1991, captavena, captaven, captaven, captaven, deco32_state, captaven, ROT0, "Data East Corporation", "Captain America and The Avengers (Asia Rev 1.0)", GAME_SUPPORTS_SAVE )
-GAME( 1991, captavene, captaven, captaven, captaven, deco32_state, captaven, ROT0, "Data East Corporation", "Captain America and The Avengers (UK Rev 1.4)", GAME_SUPPORTS_SAVE )
-GAME( 1991, captavenu, captaven, captaven, captaven, deco32_state, captaven, ROT0, "Data East Corporation", "Captain America and The Avengers (US Rev 1.9)", GAME_SUPPORTS_SAVE )
-GAME( 1991, captavenuu, captaven, captaven, captaven, deco32_state, captaven, ROT0, "Data East Corporation", "Captain America and The Avengers (US Rev 1.6)", GAME_SUPPORTS_SAVE )
-GAME( 1991, captavenua, captaven, captaven, captaven, deco32_state, captaven, ROT0, "Data East Corporation", "Captain America and The Avengers (US Rev 1.4)", GAME_SUPPORTS_SAVE )
-GAME( 1991, captavenj, captaven, captaven, captaven, deco32_state, captaven, ROT0, "Data East Corporation", "Captain America and The Avengers (Japan Rev 0.2)", GAME_SUPPORTS_SAVE )
-
-GAME( 1993, fghthist, 0, fghthist, fghthist, deco32_state, fghthist, ROT0, "Data East Corporation", "Fighter's History (World ver 43-07, DE-0380-2 PCB)", GAME_SUPPORTS_SAVE )
-GAME( 1993, fghthistu, fghthist, fghthsta, fghthist, deco32_state, fghthist, ROT0, "Data East Corporation", "Fighter's History (US ver 42-06, DE-0395-1 PCB)", GAME_SUPPORTS_SAVE )
-GAME( 1993, fghthistua, fghthist, fghthsta, fghthist, deco32_state, fghthist, ROT0, "Data East Corporation", "Fighter's History (US ver 42-05, DE-0395-1 PCB)", GAME_SUPPORTS_SAVE )
-GAME( 1993, fghthistub, fghthist, fghthist, fghthist, deco32_state, fghthist, ROT0, "Data East Corporation", "Fighter's History (US ver 42-03, DE-0380-2 PCB)", GAME_SUPPORTS_SAVE )
-GAME( 1993, fghthistj, fghthist, fghthsta, fghthist, deco32_state, fghthist, ROT0, "Data East Corporation", "Fighter's History (Japan ver 41-07, DE-0395-1 PCB)", GAME_SUPPORTS_SAVE )
-GAME( 1993, fghthistja, fghthist, fghthist, fghthist, deco32_state, fghthist, ROT0, "Data East Corporation", "Fighter's History (Japan ver 41-05, DE-0380-2 PCB)", GAME_SUPPORTS_SAVE )
-GAME( 1993, fghthistjb, fghthist, fghthist, fghthist, deco32_state, fghthist, ROT0, "Data East Corporation", "Fighter's History (Japan ver 41-04, DE-0380-1 PCB)", GAME_SUPPORTS_SAVE )
-
-GAME( 1994, nslasher, 0, nslasher, nslasher, deco32_state, nslasher, ROT0, "Data East Corporation", "Night Slashers (Korea Rev 1.3)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1994, nslasherj, nslasher, nslasher, nslasher, deco32_state, nslasher, ROT0, "Data East Corporation", "Night Slashers (Japan Rev 1.2)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1994, nslashers, nslasher, nslasher, nslasher, deco32_state, nslasher, ROT0, "Data East Corporation", "Night Slashers (Over Sea Rev 1.2)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1994, nslasheru, nslasher, nslasheru,nslasher, deco32_state, nslasher, ROT0, "Data East Corporation", "Night Slashers (US Rev 1.2, HuC6280 Sound CPU)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-
-GAME( 1994, tattass, 0, tattass, tattass, deco32_state, tattass, ROT0, "Data East Pinball", "Tattoo Assassins (US prototype)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1994, tattassa, tattass, tattass, tattass, deco32_state, tattass, ROT0, "Data East Pinball", "Tattoo Assassins (Asia prototype)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+GAME( 1991, captaven, 0, captaven, captaven, deco32_state, captaven, ROT0, "Data East Corporation", "Captain America and The Avengers (Asia Rev 1.4)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, captavena, captaven, captaven, captaven, deco32_state, captaven, ROT0, "Data East Corporation", "Captain America and The Avengers (Asia Rev 1.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, captavene, captaven, captaven, captaven, deco32_state, captaven, ROT0, "Data East Corporation", "Captain America and The Avengers (UK Rev 1.4)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, captavenu, captaven, captaven, captaven, deco32_state, captaven, ROT0, "Data East Corporation", "Captain America and The Avengers (US Rev 1.9)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, captavenuu, captaven, captaven, captaven, deco32_state, captaven, ROT0, "Data East Corporation", "Captain America and The Avengers (US Rev 1.6)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, captavenua, captaven, captaven, captaven, deco32_state, captaven, ROT0, "Data East Corporation", "Captain America and The Avengers (US Rev 1.4)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, captavenj, captaven, captaven, captaven, deco32_state, captaven, ROT0, "Data East Corporation", "Captain America and The Avengers (Japan Rev 0.2)", MACHINE_SUPPORTS_SAVE )
+
+// DE-0396-0 PCB sets (Z80 for sound)
+GAME( 1993, fghthistu, fghthist, fghthistz,fghthist, deco32_state, fghthist, ROT0, "Data East Corporation", "Fighter's History (US ver 42-09, DE-0396-0 PCB)", MACHINE_SUPPORTS_SAVE )
+// DE-0395-1 PCB sets (HuC6280 for sound)
+GAME( 1993, fghthistua, fghthist, fghthsta, fghthist, deco32_state, fghthist, ROT0, "Data East Corporation", "Fighter's History (US ver 42-06, DE-0395-1 PCB)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, fghthistub, fghthist, fghthsta, fghthist, deco32_state, fghthist, ROT0, "Data East Corporation", "Fighter's History (US ver 42-05, DE-0395-1 PCB)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, fghthistj, fghthist, fghthsta, fghthist, deco32_state, fghthist, ROT0, "Data East Corporation", "Fighter's History (Japan ver 41-07, DE-0395-1 PCB)", MACHINE_SUPPORTS_SAVE )
+// DE-0380-2 PCB sets (HuC6280 for sound)
+GAME( 1993, fghthist, 0, fghthist, fghthist, deco32_state, fghthist, ROT0, "Data East Corporation", "Fighter's History (World ver 43-07, DE-0380-2 PCB)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, fghthista, fghthist, fghthist, fghthist, deco32_state, fghthist, ROT0, "Data East Corporation", "Fighter's History (World ver 43-05, DE-0380-2 PCB)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, fghthistuc, fghthist, fghthist, fghthist, deco32_state, fghthist, ROT0, "Data East Corporation", "Fighter's History (US ver 42-03, DE-0380-2 PCB)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, fghthistja, fghthist, fghthist, fghthist, deco32_state, fghthist, ROT0, "Data East Corporation", "Fighter's History (Japan ver 41-05, DE-0380-2 PCB)", MACHINE_SUPPORTS_SAVE )
+// DE-0380-1 PCB sets (HuC6280 for sound)
+GAME( 1993, fghthistjb, fghthist, fghthist, fghthist, deco32_state, fghthist, ROT0, "Data East Corporation", "Fighter's History (Japan ver 41-04, DE-0380-1 PCB)", MACHINE_SUPPORTS_SAVE )
+
+// DE-0397-0 PCB sets (Z80 for sound)
+GAME( 1994, nslasher, 0, nslasher, nslasher, deco32_state, nslasher, ROT0, "Data East Corporation", "Night Slashers (Korea Rev 1.3, DE-0397-0 PCB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1994, nslasherj, nslasher, nslasher, nslasher, deco32_state, nslasher, ROT0, "Data East Corporation", "Night Slashers (Japan Rev 1.2, DE-0397-0 PCB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1994, nslashers, nslasher, nslasher, nslasher, deco32_state, nslasher, ROT0, "Data East Corporation", "Night Slashers (Over Sea Rev 1.2, DE-0397-0 PCB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+// DE-0395-1 PCB sets (HuC6280 for sound)
+GAME( 1994, nslasheru, nslasher, nslasheru,nslasher, deco32_state, nslasher, ROT0, "Data East Corporation", "Night Slashers (US Rev 1.2, DE-0395-1 PCB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+
+GAME( 1994, tattass, 0, tattass, tattass, deco32_state, tattass, ROT0, "Data East Pinball", "Tattoo Assassins (US prototype)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1994, tattassa, tattass, tattass, tattass, deco32_state, tattass, ROT0, "Data East Pinball", "Tattoo Assassins (Asia prototype)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
// Dragon Gun / Lock 'n' Loaded have very different sprite hardware
-GAME( 1993, dragngun, 0, dragngun, dragngun, dragngun_state, dragngun, ROT0, "Data East Corporation", "Dragon Gun (US)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1993, dragngunj, dragngun, dragngun, dragngun, dragngun_state, dragngunj, ROT0, "Data East Corporation", "Dragon Gun (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+GAME( 1993, dragngun, 0, dragngun, dragngun, dragngun_state, dragngun, ROT0, "Data East Corporation", "Dragon Gun (US)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1993, dragngunj, dragngun, dragngun, dragngun, dragngun_state, dragngunj, ROT0, "Data East Corporation", "Dragon Gun (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
-GAME( 1994, lockload, 0, lockload, lockload, dragngun_state, lockload, ROT0, "Data East Corporation", "Locked 'n Loaded (World)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1994, gunhard, lockload, lockload, lockload, dragngun_state, lockload, ROT0, "Data East Corporation", "Gun Hard (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1994, lockloadu, lockload, lockloadu,lockload, dragngun_state, lockload, ROT0, "Data East Corporation", "Locked 'n Loaded (US, Dragon Gun conversion)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // HuC6280 Sound CPU
+GAME( 1994, lockload, 0, lockload, lockload, dragngun_state, lockload, ROT0, "Data East Corporation", "Locked 'n Loaded (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1994, gunhard, lockload, lockload, lockload, dragngun_state, lockload, ROT0, "Data East Corporation", "Gun Hard (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1994, lockloadu, lockload, lockloadu,lockload, dragngun_state, lockload, ROT0, "Data East Corporation", "Locked 'n Loaded (US, Dragon Gun conversion)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // HuC6280 Sound CPU
diff --git a/src/mame/drivers/deco_ld.c b/src/mame/drivers/deco_ld.c
index a99da6b883f..0d3ea44d043 100644
--- a/src/mame/drivers/deco_ld.c
+++ b/src/mame/drivers/deco_ld.c
@@ -658,9 +658,9 @@ ROM_END
-GAME( 1983, begas, 0, rblaster, begas, driver_device, 0, ROT0, "Data East", "Bega's Battle (Revision 3)", GAME_NOT_WORKING )
-GAME( 1983, begas1, begas, rblaster, begas, driver_device, 0, ROT0, "Data East", "Bega's Battle (Revision 1)", GAME_NOT_WORKING )
-GAME( 1984, cobra, 0, rblaster, cobra, driver_device, 0, ROT0, "Data East", "Cobra Command (Data East LD, set 1)", GAME_NOT_WORKING )
-GAME( 1984, cobraa, cobra, rblaster, cobra, driver_device, 0, ROT0, "Data East", "Cobra Command (Data East LD, set 2)", GAME_NOT_WORKING ) // might be a prototype
+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
// Thunder Storm (Cobra Command Japanese version)
-GAME( 1985, rblaster, 0, rblaster, rblaster, driver_device, 0, ROT0, "Data East", "Road Blaster (Data East LD)", GAME_NOT_WORKING )
+GAME( 1985, rblaster, 0, rblaster, rblaster, driver_device, 0, ROT0, "Data East", "Road Blaster (Data East LD)", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/deco_mlc.c b/src/mame/drivers/deco_mlc.c
index 36639f6443d..d8b10793324 100644
--- a/src/mame/drivers/deco_mlc.c
+++ b/src/mame/drivers/deco_mlc.c
@@ -868,8 +868,8 @@ DRIVER_INIT_MEMBER(deco_mlc_state,mlc)
GAME( 1995, avengrgs, 0, avengrgs, mlc, deco_mlc_state, avengrgs, ROT0, "Data East Corporation", "Avengers In Galactic Storm (US)", 0 )
GAME( 1995, avengrgsj,avengrgs, avengrgs, mlc, deco_mlc_state, avengrgs, ROT0, "Data East Corporation", "Avengers In Galactic Storm (Japan)", 0 )
-GAME( 1996, stadhr96, 0, mlc_6bpp, mlc, deco_mlc_state, mlc, ROT0, "Data East Corporation", "Stadium Hero '96 (World, EAJ)", GAME_IMPERFECT_GRAPHICS ) // Rom labels are EAJ ^^
-GAME( 1996, stadhr96j,stadhr96, mlc_6bpp, mlc, deco_mlc_state, mlc, ROT0, "Data East Corporation", "Stadium Hero '96 (Japan, EAD)", GAME_IMPERFECT_GRAPHICS ) // Rom labels are EAD (this isn't a Konami region code!)
+GAME( 1996, stadhr96, 0, mlc_6bpp, mlc, deco_mlc_state, mlc, ROT0, "Data East Corporation", "Stadium Hero '96 (World, EAJ)", MACHINE_IMPERFECT_GRAPHICS ) // Rom labels are EAJ ^^
+GAME( 1996, stadhr96j,stadhr96, mlc_6bpp, mlc, deco_mlc_state, mlc, ROT0, "Data East Corporation", "Stadium Hero '96 (Japan, EAD)", MACHINE_IMPERFECT_GRAPHICS ) // Rom labels are EAD (this isn't a Konami region code!)
GAME( 1996, skullfng, 0, mlc_6bpp, mlc, deco_mlc_state, mlc, ROT270, "Data East Corporation", "Skull Fang (World)", 0 ) /* Version 1.13, Europe, Master 96.02.19 */
GAME( 1996, skullfngj,skullfng, mlc_6bpp, mlc, deco_mlc_state, mlc, ROT270, "Data East Corporation", "Skull Fang (Japan)", 0 ) /* Version 1.09, Japan, Master 96.02.08 */
GAME( 1996, hoops96, 0, mlc_5bpp, mlc, deco_mlc_state, mlc, ROT0, "Data East Corporation", "Hoops '96 (Europe/Asia 2.0)", 0 )
diff --git a/src/mame/drivers/decocass.c b/src/mame/drivers/decocass.c
index 53f11ce466c..0ebd94feab6 100644
--- a/src/mame/drivers/decocass.c
+++ b/src/mame/drivers/decocass.c
@@ -1646,11 +1646,11 @@ DRIVER_INIT_MEMBER(decocass_state,cdsteljn)
m_maincpu->space(AS_PROGRAM).install_read_handler(0xe600, 0xe6ff, read8_delegate(FUNC(decocass_state::cdsteljn_input_r), this));
}
-/* -- */ GAME( 1981, decocass, 0, decocass, decocass, decocass_state, decocass, ROT270, "Data East Corporation", "DECO Cassette System", GAME_IS_BIOS_ROOT )
+/* -- */ GAME( 1981, decocass, 0, decocass, decocass, decocass_state, decocass, ROT270, "Data East Corporation", "DECO Cassette System", MACHINE_IS_BIOS_ROOT )
/* -- */ GAME( 1981, ctsttape, decocass, ctsttape, decocass, decocass_state, decocass, ROT270, "Data East Corporation", "Test Tape (DECO Cassette)", 0 )
/* 01 */ GAME( 1980, chwy, decocass, chwy, decocass, decocass_state, decocass, ROT270, "Data East Corporation", "Highway Chase (DECO Cassette)", 0 )
/* 02 */ // 1980.12 Sengoku Ninjatai
-/* 03 */ GAME( 1981, cmanhat, decocass, cmanhat, decocass, decocass_state, decocass, ROT270, "Data East Corporation", "Manhattan (DECO Cassette)", GAME_IMPERFECT_GRAPHICS )
+/* 03 */ GAME( 1981, cmanhat, decocass, cmanhat, decocass, decocass_state, decocass, ROT270, "Data East Corporation", "Manhattan (DECO Cassette)", MACHINE_IMPERFECT_GRAPHICS )
/* 04 */ GAME( 1981, cterrani, decocass, cterrani, cterrani, decocass_state, decocass, ROT270, "Data East Corporation", "Terranean (DECO Cassette)", 0 )
/* 05 */ // 1981.?? Missile Sprinter
/* 06 */ // 1980.12 Nebula
@@ -1666,9 +1666,9 @@ DRIVER_INIT_MEMBER(decocass_state,cdsteljn)
/* 15 */ GAME( 1981, cluckypo, decocass, cluckypo, decocass, decocass_state, decocass, ROT270, "Data East Corporation", "Lucky Poker (DECO Cassette)", 0 )
/* 16 */ GAME( 1981, ctisland, decocass, ctisland, decocass, decocass_state, decocrom, ROT270, "Data East Corporation", "Treasure Island (DECO Cassette, set 1)", 0 )
/* */ GAME( 1981, ctisland2, ctisland, ctisland, decocass, decocass_state, decocrom, ROT270, "Data East Corporation", "Treasure Island (DECO Cassette, set 2)", 0 )
-/* */ GAME( 1981, ctisland3, ctisland, ctisland, decocass, decocass_state, decocrom, ROT270, "Data East Corporation", "Treasure Island (DECO Cassette, set 3)", GAME_NOT_WORKING ) /* Different Bitswap? */
+/* */ GAME( 1981, ctisland3, ctisland, ctisland, decocass, decocass_state, decocrom, ROT270, "Data East Corporation", "Treasure Island (DECO Cassette, set 3)", MACHINE_NOT_WORKING ) /* Different Bitswap? */
/* 17 */ // 1981.10 Bobbitto
-/* 18 */ GAME( 1982, cexplore, decocass, cexplore, cexplore, decocass_state, decocass, ROT270, "Data East Corporation", "Explorer (DECO Cassette)", GAME_NOT_WORKING )
+/* 18 */ GAME( 1982, cexplore, decocass, cexplore, cexplore, decocass_state, decocass, ROT270, "Data East Corporation", "Explorer (DECO Cassette)", MACHINE_NOT_WORKING )
/* 19 */ GAME( 1982, cdiscon1, decocass, cdiscon1, decocass, decocass_state, decocass, ROT270, "Data East Corporation", "Disco No.1 (DECO Cassette)", 0 )
/* */ GAME( 1982, csweetht, cdiscon1, cdiscon1, decocass, decocass_state, decocass, ROT270, "Data East Corporation", "Sweet Heart (DECO Cassette)", 0 )
/* 20 */ GAME( 1982, ctornado, decocass, ctornado, ctornado, decocass_state, decocass, ROT270, "Data East Corporation", "Tornado (DECO Cassette)", 0 )
@@ -1693,7 +1693,7 @@ DRIVER_INIT_MEMBER(decocass_state,cdsteljn)
/* */ GAME( 1983, cnightst2, cnightst, cnightst, cnightst, decocass_state, decocass, ROT270, "Data East Corporation", "Night Star (DECO Cassette, set 2)", 0 )
/* 33 */ GAME( 1983, cpsoccer, decocass, cpsoccer, cpsoccer, decocass_state, decocass, ROT270, "Data East Corporation", "Pro Soccer (DECO Cassette)", 0 )
/* */ GAME( 1983, cpsoccerj, cpsoccer, cpsoccer, cpsoccer, decocass_state, decocass, ROT270, "Data East Corporation", "Pro Soccer (DECO Cassette, Japan)", 0 )
-/* 34 */ GAME( 1983, csdtenis, decocass, csdtenis, csdtenis, decocass_state, decocass, ROT270, "Data East Corporation", "Super Doubles Tennis (DECO Cassette, Japan)", GAME_WRONG_COLORS )
+/* 34 */ GAME( 1983, csdtenis, decocass, csdtenis, csdtenis, decocass_state, decocass, ROT270, "Data East Corporation", "Super Doubles Tennis (DECO Cassette, Japan)", MACHINE_WRONG_COLORS )
/* 35 */ GAME( 1985, cflyball, decocass, cflyball, decocass, decocass_state, decocass, ROT270, "Data East Corporation", "Flying Ball (DECO Cassette)", 0 )
/* 36 */ // 1984.04 Genesis/Boomer Rang'r
/* 37 */ GAME( 1983, czeroize, decocass, czeroize, decocass, decocass_state, decocass, ROT270, "Data East Corporation", "Zeroize (DECO Cassette)", 0 )
diff --git a/src/mess/drivers/dectalk.c b/src/mame/drivers/dectalk.c
index 1935e4133e4..506895e05ed 100644
--- a/src/mess/drivers/dectalk.c
+++ b/src/mame/drivers/dectalk.c
@@ -1007,4 +1007,4 @@ ROM_END
******************************************************************************/
/* 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", GAME_NOT_WORKING )
+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.c b/src/mame/drivers/decwritr.c
new file mode 100644
index 00000000000..36aa3978c0a
--- /dev/null
+++ b/src/mame/drivers/decwritr.c
@@ -0,0 +1,384 @@
+// license:BSD-3-Clause
+// copyright-holders:Jonathan Gevaryahu
+/*************************************************************************
+
+ decwritr.c
+ Digital Equipment Corporation
+ DECwriter III (LA120) Teletype/Teleprinter, 1978
+
+**************************************************************************/
+
+#include "emu.h"
+#include "render.h"
+#include "cpu/i8085/i8085.h"
+#include "machine/i8251.h"
+#include "sound/beep.h"
+
+#define KBD_VERBOSE 1
+#define LED_VERBOSE 1
+
+//**************************************************************************
+// DRIVER STATE
+//**************************************************************************
+
+class decwriter_state : public driver_device
+{
+public:
+ // constructor
+ decwriter_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
+ m_speaker(*this, "beeper"),
+ m_uart(*this, "i8251")
+ {
+ }
+ required_device<cpu_device> m_maincpu;
+ required_device<beep_device> m_speaker;
+ required_device<i8251_device> m_uart;
+ //required_device<generic_terminal_device> m_terminal;
+ UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
+ {
+ bitmap.fill(rgb_t::black);
+ return 0;
+ }
+ DECLARE_READ8_MEMBER(la120_KBD_r);
+ DECLARE_WRITE8_MEMBER(la120_LED_w);
+ DECLARE_READ8_MEMBER(la120_NVR_r);
+ DECLARE_WRITE8_MEMBER(la120_NVR_w);
+ DECLARE_READ8_MEMBER(la120_DC305_r);
+ DECLARE_WRITE8_MEMBER(la120_DC305_w);
+private:
+ virtual void machine_start();
+ //virtual void machine_reset();
+ ioport_port* m_col_array[16];
+ UINT8 m_led_array;
+ UINT8 m_led_7seg_counter;
+ UINT8 m_led_7seg[4];
+};
+
+READ8_MEMBER( decwriter_state::la120_KBD_r )
+{
+ /* for reading the keyboard array, addr bits 5-11 are ignored.
+ * a15 a14 a13 a12 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0
+ * 0 0 1 1 x x x x x x x * * * * *
+ * | | \---\---\--- column select
+ * | \--------------- kbd_banksel0
+ * \------------------- kbd_banksel1
+ * if both banks are selected, the resulting row read is a binary OR of both (LA120-TM1, page 4-5)
+ *
+ * d7 d6 d5 d4 d3 d2 d1 d0
+ * \--\--\--\--\--\--\--\-- read from rows
+ */
+ UINT8 code = 0;
+ if (offset&0x8) code |= m_col_array[offset&0x7]->read();
+ if (offset&0x10) code |= m_col_array[(offset&0x7)+8]->read();
+#ifdef KBD_VERBOSE
+ logerror("Keyboard column %X read, returning %02X\n", offset&0xF, code);
+#endif
+ return code;
+}
+
+WRITE8_MEMBER( decwriter_state::la120_LED_w )
+{
+ /* for writing the keyboard array, addr bits 5-11 are ignored.
+ * a15 a14 a13 a12 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0
+ * 0 0 1 1 x x x x x x x 0 * * * 0 turn OFF LED # <a3:a1> and clear 7seg counter
+ * 0 0 1 1 x x x x x x x 0 * * * 1 turn ON LED # <a3:a1> and clear 7seg counter
+ * 0 0 1 1 x x x x x x x 1 * * * * display a digit <a3:a0> in the digit pointed to by 7seg counter and increment counter
+ * data bus is UNUSED.
+ */
+ if (!(offset&0x10)) // we're updating an led state
+ {
+#ifdef LED_VERBOSE
+ logerror("Updated LED status array: LED #%d is now %d\n", ((offset&0xe)>>1), (offset&1));
+#endif
+ m_led_array &= ((1<<((offset&0xe)>>1))^0xFF); // mask out the old bit
+ m_led_array |= ((offset&1)<<((offset&0xe)>>1)); // OR in the new bit
+ m_led_7seg_counter = 0;
+ }
+ else // we're updating the 7segment display
+ {
+ m_led_7seg_counter++;
+ m_led_7seg_counter &= 0xF;
+#ifdef LED_VERBOSE
+ logerror("Updated 7seg display: displaying a digit of %d in position %d\n", (offset&0xF)^0xF, m_led_7seg_counter-1);
+#endif
+ if ((m_led_7seg_counter >= 1) && (m_led_7seg_counter <= 4))
+ {
+ m_led_7seg[m_led_7seg_counter-1] = (offset&0xF)^0xF;
+ }
+ }
+ popmessage("LEDs: %c %c %c %c : %s %s %s %s %s %s %s %s\n",
+ m_led_7seg[3]+0x30, m_led_7seg[2]+0x30, m_led_7seg[1]+0x30, m_led_7seg[0]+0x30,
+ (m_led_array&0x80)?"ON LINE":"-------",
+ (m_led_array&0x40)?"LOCAL":"-----",
+ (m_led_array&0x20)?"ALT CHR SET":"-----------",
+ (m_led_array&0x10)?"<LED4>":"-----",
+ (m_led_array&0x8)?"CTS":"---",
+ (m_led_array&0x4)?"DSR":"---",
+ (m_led_array&0x2)?"SET-UP":"------",
+ (m_led_array&0x1)?"PAPER OUT":"---------" );
+}
+
+READ8_MEMBER( decwriter_state::la120_NVR_r )
+{
+ return 0xFF;
+}
+
+WRITE8_MEMBER( decwriter_state::la120_NVR_w )
+{
+}
+READ8_MEMBER( decwriter_state::la120_DC305_r )
+{
+ return 0xFF;
+}
+WRITE8_MEMBER( decwriter_state::la120_DC305_w )
+{
+}
+
+static ADDRESS_MAP_START(la120_mem, AS_PROGRAM, 8, decwriter_state)
+ ADDRESS_MAP_UNMAP_HIGH
+ AM_RANGE( 0x0000, 0x2fff ) AM_ROM
+ AM_RANGE( 0x3000, 0x3fff ) AM_READWRITE(la120_KBD_r, la120_LED_w) // keyboard read, write to status and 7seg LEDS
+ AM_RANGE( 0x4000, 0x43ff ) AM_MIRROR(0x0c00) AM_RAM // 1k 'low ram'
+ AM_RANGE( 0x5000, 0x53ff ) AM_MIRROR(0x0c00) AM_RAM // 1k 'high ram'
+ AM_RANGE( 0x6000, 0x6fff ) AM_MIRROR(0x08fe) AM_READWRITE(la120_NVR_r, la120_NVR_w) // ER1400 EAROM
+ AM_RANGE( 0x7000, 0x7003 ) AM_MIRROR(0x0ffc) AM_READWRITE(la120_DC305_r, la120_DC305_w) // DC305 printer controller ASIC stuff; since this can generate interrupts this needs to be split to its own device.
+ // 8000-ffff is reserved for expansion (i.e. unused, open bus)
+ADDRESS_MAP_END
+
+/*
+ * 8080 IO address map (x = ignored; * = selects address within this range)
+ * (a15 to a8 are latched the same value as a7-a0 on the 8080 and 8085)
+ a7 a6 a5 a4 a3 a2 a1 a0
+ 0 x x x x x 0 0 RW 8251 Data
+ 0 x x x x x 0 1 RW 8251 Status/Control
+ 0 x x x x x 1 x RW Flags Read/Write
+ 1 x x x x x x x RW Expansion (Open bus)
+ */
+static ADDRESS_MAP_START(la120_io, AS_IO, 8, decwriter_state)
+ ADDRESS_MAP_UNMAP_HIGH
+ AM_RANGE(0x00, 0x00) AM_MIRROR(0x7C) AM_DEVREADWRITE("i8251", i8251_device, data_r, data_w) // 8251 Data
+ AM_RANGE(0x01, 0x01) AM_MIRROR(0x7C) AM_DEVREADWRITE("i8251", i8251_device, status_r, control_w) // 8251 Status/Control
+ //AM_RANGE(0x02, 0x02) AM_MIRROR(0x7D) // other io ports
+ // 0x80-0xff are reserved for expansion (i.e. unused, open bus)
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
+ADDRESS_MAP_END
+
+/* Input ports */
+static INPUT_PORTS_START( la120 )
+ PORT_START("COL0")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Num .") PORT_CODE(KEYCODE_DEL_PAD)
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("PF4") PORT_CODE(KEYCODE_F4)
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Local LF") PORT_CODE(KEYCODE_F12)
+ PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Break") PORT_CODE(KEYCODE_F6)
+ PORT_BIT(0x60, IP_ACTIVE_HIGH, IPT_UNUSED)
+ PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Space") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ')
+ PORT_START("COL1")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("PF3") PORT_CODE(KEYCODE_F3)
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Local FF") PORT_CODE(KEYCODE_F11)
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("\\ |") PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('\\') PORT_CHAR('|')
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Delete") PORT_CODE(KEYCODE_DEL) PORT_CHAR(127)
+ PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Backspace") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8)
+ PORT_BIT(0x60, IP_ACTIVE_HIGH, IPT_UNUSED)
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNUSED) // this is actually the cover open interlock sensor
+ PORT_START("COL2")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("PF2") PORT_CODE(KEYCODE_F2)
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("HERE IS") PORT_CODE(KEYCODE_F10)
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("(alternate) Opt LF") PORT_CODE(KEYCODE_RALT)
+ PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("` ~") PORT_CODE(KEYCODE_TILDE) PORT_CHAR('`') PORT_CHAR('~')
+ PORT_BIT(0x60, IP_ACTIVE_HIGH, IPT_UNUSED)
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNUSED) // this is actually the paper out interlock sensor
+ PORT_START("COL3")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("PF1") PORT_CODE(KEYCODE_F1)
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("LF") PORT_CODE(KEYCODE_LALT) PORT_CHAR(10)
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("LINE LOCAL") PORT_CODE(KEYCODE_F9)
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("] }") PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(']') PORT_CHAR('}')
+ PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("= +") PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=') PORT_CHAR('+')
+ PORT_BIT(0x60, IP_ACTIVE_HIGH, IPT_UNUSED)
+ PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Shift") PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1)
+ PORT_START("COL4")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Num -") PORT_CODE(KEYCODE_MINUS_PAD)
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Num ,") PORT_CODE(KEYCODE_PLUS_PAD)
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("' \"") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR('\'') PORT_CHAR('"')
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("[ {") PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('[') PORT_CHAR('{')
+ PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("- _") PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('_')
+ PORT_BIT(0x60, IP_ACTIVE_HIGH, IPT_UNUSED)
+ PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_TOGGLE PORT_NAME("Caps lock") PORT_CODE(KEYCODE_CAPSLOCK) // TODO: does the physical switch toggle?
+ PORT_START("COL5")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Num 0") PORT_CODE(KEYCODE_0_PAD)
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("/ ?") PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?')
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("; :") PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR(':')
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("P") PORT_CODE(KEYCODE_P) PORT_CHAR('p') PORT_CHAR('P')
+ PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("0 )") PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR(')')
+ PORT_BIT(0x60, IP_ACTIVE_HIGH, IPT_UNUSED)
+ PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Ctrl") PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(KEYCODE_RCONTROL) PORT_CHAR(UCHAR_SHIFT_2)
+ PORT_START("COL6")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Num 9") PORT_CODE(KEYCODE_9_PAD)
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(". >") PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>')
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("L") PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L')
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("O") PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O')
+ PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("9 (") PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR('(')
+ PORT_BIT(0x60, IP_ACTIVE_HIGH, IPT_UNUSED)
+ PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Return") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13)
+ PORT_START("COL7")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Num 8") PORT_CODE(KEYCODE_8_PAD)
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(", <") PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<')
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("K") PORT_CODE(KEYCODE_K) PORT_CHAR('k') PORT_CHAR('K')
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("I") PORT_CODE(KEYCODE_I) PORT_CHAR('i') PORT_CHAR('I')
+ PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("8 *") PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('*')
+ PORT_BIT(0x60, IP_ACTIVE_HIGH, IPT_UNUSED)
+ PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Set Up") PORT_CODE(KEYCODE_F5)
+ PORT_START("COL8")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Num 7") PORT_CODE(KEYCODE_7_PAD)
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("M") PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M')
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J) PORT_CHAR('j') PORT_CHAR('J')
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("U") PORT_CODE(KEYCODE_U) PORT_CHAR('u') PORT_CHAR('U')
+ PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("7 &") PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('&')
+ PORT_BIT(0xe0, IP_ACTIVE_HIGH, IPT_UNUSED)
+ PORT_START("COL9")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Num 6") PORT_CODE(KEYCODE_6_PAD)
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("N") PORT_CODE(KEYCODE_N) PORT_CHAR('n') PORT_CHAR('N')
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_H) PORT_CHAR('h') PORT_CHAR('H')
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y')
+ PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("6 ^") PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('^')
+ PORT_BIT(0xe0, IP_ACTIVE_HIGH, IPT_UNUSED)
+ PORT_START("COLA")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Num 5") PORT_CODE(KEYCODE_5_PAD)
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B) PORT_CHAR('b') PORT_CHAR('B')
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("G") PORT_CODE(KEYCODE_G) PORT_CHAR('g') PORT_CHAR('G')
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("T") PORT_CODE(KEYCODE_T) PORT_CHAR('t') PORT_CHAR('T')
+ PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("5 %") PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%')
+ PORT_BIT(0xe0, IP_ACTIVE_HIGH, IPT_UNUSED)
+ PORT_START("COLB")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Num 4") PORT_CODE(KEYCODE_4_PAD)
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("V") PORT_CODE(KEYCODE_V) PORT_CHAR('v') PORT_CHAR('V')
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("F") PORT_CODE(KEYCODE_F) PORT_CHAR('f') PORT_CHAR('F')
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("R") PORT_CODE(KEYCODE_R) PORT_CHAR('r') PORT_CHAR('R')
+ PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("4 $") PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$')
+ PORT_BIT(0xe0, IP_ACTIVE_HIGH, IPT_UNUSED)
+ PORT_START("COLC")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Num 3") PORT_CODE(KEYCODE_3_PAD)
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C) PORT_CHAR('c') PORT_CHAR('C')
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D) PORT_CHAR('d') PORT_CHAR('D')
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E) PORT_CHAR('e') PORT_CHAR('E')
+ PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3 #") PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#')
+ PORT_BIT(0xe0, IP_ACTIVE_HIGH, IPT_UNUSED)
+ PORT_START("COLD")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Num 2") PORT_CODE(KEYCODE_2_PAD)
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("X") PORT_CODE(KEYCODE_X) PORT_CHAR('x') PORT_CHAR('X')
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("S") PORT_CODE(KEYCODE_S) PORT_CHAR('s') PORT_CHAR('S')
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("W") PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W')
+ PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2 @") PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('@')
+ PORT_BIT(0xe0, IP_ACTIVE_HIGH, IPT_UNUSED)
+ PORT_START("COLE")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Num 1") PORT_CODE(KEYCODE_1_PAD)
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Z) PORT_CHAR('z') PORT_CHAR('Z')
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A')
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) PORT_CHAR('q') PORT_CHAR('Q')
+ PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1 !") PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!')
+ PORT_BIT(0xe0, IP_ACTIVE_HIGH, IPT_UNUSED)
+ PORT_START("COLF")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Num Enter") PORT_CODE(KEYCODE_ENTER_PAD)
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_UNUSED) // this is actually the RO flag
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("View") PORT_CODE(KEYCODE_LWIN)
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Tab") PORT_CODE(KEYCODE_TAB) PORT_CHAR(9)
+ PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Esc") PORT_CODE(KEYCODE_ESC) PORT_CHAR(27)
+ PORT_BIT(0xe0, IP_ACTIVE_HIGH, IPT_UNUSED)
+INPUT_PORTS_END
+
+void decwriter_state::machine_start()
+{
+ m_speaker->set_frequency(786); // TODO: LA120 speaker is controlled by asic; VT100 has: 7.945us per serial clock = ~125865.324hz, / 160 clocks per char = ~ 786 hz
+#if 0
+ output_set_value("online_led",1);
+ output_set_value("local_led", 0);
+ output_set_value("noscroll_led",1);
+ output_set_value("basic_led", 1);
+ output_set_value("hardcopy_led", 1);
+ output_set_value("l1_led", 1);
+ output_set_value("l2_led", 1);
+#endif
+ char kbdcol[8];
+ // look up all 16 tags 'the slow way' but only once on reset
+ for (int i = 0; i < 16; i++)
+ {
+ sprintf(kbdcol,"COL%X", i);
+ m_col_array[i] = ioport(kbdcol);
+ }
+ m_led_array = 0;
+ m_led_7seg_counter = 0;
+ m_led_7seg[0] = m_led_7seg[1] = m_led_7seg[2] = m_led_7seg[3] = 0xF;
+}
+
+/*
+void decwriter_state::machine_reset()
+{
+}
+*/
+
+//**************************************************************************
+// MACHINE DRIVERS
+//**************************************************************************
+
+static MACHINE_CONFIG_START( la120, decwriter_state )
+
+ 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)
+ MCFG_CPU_IO_MAP(la120_io)
+
+ /* video hardware */
+ //TODO: no actual screen! has 8 leds above the keyboard (similar to vt100/vk100) and has 4 7segment leds for showing an error code.
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_UPDATE_DRIVER(decwriter_state, screen_update)
+ MCFG_SCREEN_SIZE(640,480)
+ MCFG_SCREEN_VISIBLE_AREA(0,639, 0,479)
+ MCFG_SCREEN_REFRESH_RATE(30)
+
+ //MCFG_DEFAULT_LAYOUT( layout_la120 )
+
+ /* audio hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_SOUND_ADD("beeper", BEEP, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
+
+ /* i8251 */
+ MCFG_DEVICE_ADD("i8251", I8251, 0)
+ /*
+ MCFG_I8251_TXD_HANDLER(DEVWRITELINE(RS232_TAG, rs232_port_device, write_txd))
+ MCFG_I8251_DTR_HANDLER(DEVWRITELINE(RS232_TAG, rs232_port_device, write_dtr))
+ MCFG_I8251_RTS_HANDLER(DEVWRITELINE(RS232_TAG, rs232_port_device, write_rts))
+
+ MCFG_RS232_PORT_ADD(RS232_TAG, default_rs232_devices, NULL)
+ MCFG_RS232_RXD_HANDLER(DEVWRITELINE("i8251", i8251_device, write_rxd))
+ MCFG_RS232_DSR_HANDLER(DEVWRITELINE("i8251", i8251_device, write_dsr))
+
+ MCFG_DEVICE_ADD(COM5016T_TAG, COM8116, XTAL_5_0688MHz)
+ MCFG_COM8116_FR_HANDLER(DEVWRITELINE("i8251", i8251_device, write_rxc))
+ MCFG_COM8116_FT_HANDLER(DEVWRITELINE("i8251", i8251_device, write_txc))
+ */
+MACHINE_CONFIG_END
+
+
+
+//**************************************************************************
+// ROM DEFINITIONS
+//**************************************************************************
+
+ROM_START( la120 )
+ ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF )
+ // later romset, with 23-003e2.e6, 23-004e2.e8, 23-005e2.e12, 23-006e2.e17 replaced by one rom, 23-038e4.e6 which may be a concatenation of the old roms, unclear.
+ ROM_LOAD( "23-038e4-00.e6", 0x0000, 0x2000, CRC(cad4eb09) SHA1(d5db117da363d36817476F906251ea4ee1cb14b8))
+ ROM_LOAD( "23-007e2-00.e4", 0x2000, 0x0800, CRC(41eaebf1) SHA1(c7d05417b24b853280d1636776d399a0aea34720)) // used by both earlier and later romset
+ // there is an optional 3 roms, european and APL (and BOTH) rom which goes from 2000-2fff in e4, all undumped.
+ // there is another romset used on the Bell Teleprinter 1000 (Model LAS12) which I believe is 23-004e4.e6 and 23-086e2.e4
+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 )
diff --git a/src/mame/drivers/deniam.c b/src/mame/drivers/deniam.c
index 0a7956d6b1b..d39a9227077 100644
--- a/src/mame/drivers/deniam.c
+++ b/src/mame/drivers/deniam.c
@@ -415,7 +415,7 @@ ROM_END
-GAME( 1996, logicpro, 0, deniam16b, logicpr2, deniam_state, logicpro, ROT0, "Deniam", "Logic Pro (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1996, croquis, logicpro, deniam16b, logicpr2, deniam_state, logicpro, ROT0, "Deniam", "Croquis (Germany)", GAME_SUPPORTS_SAVE )
-GAME( 1996, karianx, 0, deniam16b, karianx, deniam_state, karianx, ROT0, "Deniam", "Karian Cross (Rev. 1.0)", GAME_SUPPORTS_SAVE )
-GAME( 1997, logicpr2, 0, deniam16c, logicpr2, deniam_state, logicpro, ROT0, "Deniam", "Logic Pro 2 (Japan)", GAME_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.c b/src/mame/drivers/deshoros.c
index ffd773a199e..59fd301d032 100644
--- a/src/mame/drivers/deshoros.c
+++ b/src/mame/drivers/deshoros.c
@@ -313,4 +313,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)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
+GAME( 1983, destiny, 0, destiny, destiny, driver_device, 0, ROT0, "Data East Corporation", "Destiny - The Fortuneteller (USA)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/destroyr.c b/src/mame/drivers/destroyr.c
index 4461a9ca70b..9501892bbc1 100644
--- a/src/mame/drivers/destroyr.c
+++ b/src/mame/drivers/destroyr.c
@@ -29,13 +29,19 @@ public:
destroyr_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
- m_alpha_num_ram(*this, "alpha_nuram"),
- m_major_obj_ram(*this, "major_obj_ram"),
- m_minor_obj_ram(*this, "minor_obj_ram"),
m_maincpu(*this, "maincpu"),
m_gfxdecode(*this, "gfxdecode"),
m_screen(*this, "screen"),
- m_palette(*this, "palette") { }
+ m_palette(*this, "palette"),
+ m_alpha_num_ram(*this, "alpha_nuram"),
+ m_major_obj_ram(*this, "major_obj_ram"),
+ m_minor_obj_ram(*this, "minor_obj_ram") { }
+
+ /* devices */
+ required_device<cpu_device> m_maincpu;
+ required_device<gfxdecode_device> m_gfxdecode;
+ required_device<screen_device> m_screen;
+ required_device<palette_device> m_palette;
/* memory pointers */
required_shared_ptr<UINT8> m_alpha_num_ram;
@@ -52,32 +58,31 @@ public:
int m_attract;
int m_motor_speed;
int m_noise;
+ emu_timer *m_dial_timer;
+ emu_timer *m_frame_timer;
- /* devices */
- required_device<cpu_device> m_maincpu;
- required_device<gfxdecode_device> m_gfxdecode;
- required_device<screen_device> m_screen;
- required_device<palette_device> m_palette;
+ DECLARE_WRITE8_MEMBER(misc_w);
+ DECLARE_WRITE8_MEMBER(cursor_load_w);
+ DECLARE_WRITE8_MEMBER(interrupt_ack_w);
+ DECLARE_WRITE8_MEMBER(output_w);
+ DECLARE_READ8_MEMBER(input_r);
+ DECLARE_READ8_MEMBER(scanline_r);
- DECLARE_WRITE8_MEMBER(destroyr_misc_w);
- DECLARE_WRITE8_MEMBER(destroyr_cursor_load_w);
- DECLARE_WRITE8_MEMBER(destroyr_interrupt_ack_w);
- DECLARE_WRITE8_MEMBER(destroyr_output_w);
- DECLARE_READ8_MEMBER(destroyr_input_r);
- DECLARE_READ8_MEMBER(destroyr_scanline_r);
virtual void machine_start();
virtual void machine_reset();
DECLARE_PALETTE_INIT(destroyr);
- UINT32 screen_update_destroyr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- TIMER_CALLBACK_MEMBER(destroyr_dial_callback);
- TIMER_CALLBACK_MEMBER(destroyr_frame_callback);
+
+ UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+
+ TIMER_CALLBACK_MEMBER(dial_callback);
+ TIMER_CALLBACK_MEMBER(frame_callback);
protected:
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
};
-UINT32 destroyr_state::screen_update_destroyr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+UINT32 destroyr_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
int i, j;
@@ -149,10 +154,10 @@ void destroyr_state::device_timer(emu_timer &timer, device_timer_id id, int para
switch (id)
{
case TIMER_DESTROYR_DIAL:
- destroyr_dial_callback(ptr, param);
+ dial_callback(ptr, param);
break;
case TIMER_DESTROYR_FRAME:
- destroyr_frame_callback(ptr, param);
+ frame_callback(ptr, param);
break;
default:
assert_always(FALSE, "Unknown id in destroyr_state::device_timer");
@@ -160,7 +165,7 @@ void destroyr_state::device_timer(emu_timer &timer, device_timer_id id, int para
}
-TIMER_CALLBACK_MEMBER(destroyr_state::destroyr_dial_callback)
+TIMER_CALLBACK_MEMBER(destroyr_state::dial_callback)
{
int dial = param;
@@ -180,14 +185,14 @@ TIMER_CALLBACK_MEMBER(destroyr_state::destroyr_dial_callback)
}
-TIMER_CALLBACK_MEMBER(destroyr_state::destroyr_frame_callback)
+TIMER_CALLBACK_MEMBER(destroyr_state::frame_callback)
{
m_potsense[0] = 0;
m_potsense[1] = 0;
/* PCB supports two dials, but cab has only got one */
- timer_set(m_screen->time_until_pos(ioport("PADDLE")->read()), TIMER_DESTROYR_DIAL);
- timer_set(m_screen->time_until_pos(0), TIMER_DESTROYR_FRAME);
+ m_dial_timer->adjust(m_screen->time_until_pos(ioport("PADDLE")->read()));
+ m_frame_timer->adjust(m_screen->time_until_pos(0));
}
@@ -207,7 +212,7 @@ void destroyr_state::machine_reset()
}
-WRITE8_MEMBER(destroyr_state::destroyr_misc_w)
+WRITE8_MEMBER(destroyr_state::misc_w)
{
/* bits 0 to 2 connect to the sound circuits */
m_attract = data & 0x01;
@@ -222,22 +227,22 @@ WRITE8_MEMBER(destroyr_state::destroyr_misc_w)
}
-WRITE8_MEMBER(destroyr_state::destroyr_cursor_load_w)
+WRITE8_MEMBER(destroyr_state::cursor_load_w)
{
m_cursor = data;
watchdog_reset_w(space, offset, data);
}
-WRITE8_MEMBER(destroyr_state::destroyr_interrupt_ack_w)
+WRITE8_MEMBER(destroyr_state::interrupt_ack_w)
{
m_maincpu->set_input_line(0, CLEAR_LINE);
}
-WRITE8_MEMBER(destroyr_state::destroyr_output_w)
+WRITE8_MEMBER(destroyr_state::output_w)
{
- if (offset & 8) destroyr_misc_w(space, 8, data);
+ if (offset & 8) misc_w(space, 8, data);
else switch (offset & 7)
{
@@ -269,7 +274,7 @@ WRITE8_MEMBER(destroyr_state::destroyr_output_w)
}
-READ8_MEMBER(destroyr_state::destroyr_input_r)
+READ8_MEMBER(destroyr_state::input_r)
{
if (offset & 1)
{
@@ -290,7 +295,7 @@ READ8_MEMBER(destroyr_state::destroyr_input_r)
}
-READ8_MEMBER(destroyr_state::destroyr_scanline_r)
+READ8_MEMBER(destroyr_state::scanline_r)
{
return m_screen->vpos();
}
@@ -299,14 +304,14 @@ READ8_MEMBER(destroyr_state::destroyr_scanline_r)
static ADDRESS_MAP_START( destroyr_map, AS_PROGRAM, 8, destroyr_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x00ff) AM_MIRROR(0xf00) AM_RAM
- AM_RANGE(0x1000, 0x1fff) AM_READWRITE(destroyr_input_r, destroyr_output_w)
+ AM_RANGE(0x1000, 0x1fff) AM_READWRITE(input_r, output_w)
AM_RANGE(0x2000, 0x2fff) AM_READ_PORT("IN2")
AM_RANGE(0x3000, 0x30ff) AM_MIRROR(0xf00) AM_WRITEONLY AM_SHARE("alpha_nuram")
AM_RANGE(0x4000, 0x401f) AM_MIRROR(0xfe0) AM_WRITEONLY AM_SHARE("major_obj_ram")
- AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xff8) AM_WRITE(destroyr_cursor_load_w)
- AM_RANGE(0x5001, 0x5001) AM_MIRROR(0xff8) AM_WRITE(destroyr_interrupt_ack_w)
+ AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xff8) AM_WRITE(cursor_load_w)
+ AM_RANGE(0x5001, 0x5001) AM_MIRROR(0xff8) AM_WRITE(interrupt_ack_w)
AM_RANGE(0x5002, 0x5007) AM_MIRROR(0xff8) AM_WRITEONLY AM_SHARE("minor_obj_ram")
- AM_RANGE(0x6000, 0x6fff) AM_READ(destroyr_scanline_r)
+ AM_RANGE(0x6000, 0x6fff) AM_READ(scanline_r)
AM_RANGE(0x7000, 0x7fff) AM_ROM
ADDRESS_MAP_END
@@ -469,6 +474,9 @@ PALETTE_INIT_MEMBER(destroyr_state, destroyr)
void destroyr_state::machine_start()
{
+ m_dial_timer = timer_alloc(TIMER_DESTROYR_DIAL);
+ m_frame_timer = timer_alloc(TIMER_DESTROYR_FRAME);
+
save_item(NAME(m_cursor));
save_item(NAME(m_wavemod));
save_item(NAME(m_attract));
@@ -491,7 +499,7 @@ static MACHINE_CONFIG_START( destroyr, destroyr_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(256, 262)
MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239)
- MCFG_SCREEN_UPDATE_DRIVER(destroyr_state, screen_update_destroyr)
+ MCFG_SCREEN_UPDATE_DRIVER(destroyr_state, screen_update)
MCFG_SCREEN_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", "palette", destroyr)
@@ -552,5 +560,5 @@ ROM_START( destroyr1 )
ROM_END
-GAMEL( 1977, destroyr, 0, destroyr, destroyr, driver_device, 0, ORIENTATION_FLIP_X, "Atari", "Destroyer (version O2)", GAME_NO_SOUND, layout_destroyr )
-GAMEL( 1977, destroyr1, destroyr, destroyr, destroyr, driver_device, 0, ORIENTATION_FLIP_X, "Atari", "Destroyer (version O1)", GAME_NO_SOUND, layout_destroyr )
+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 )
diff --git a/src/mame/drivers/dfruit.c b/src/mame/drivers/dfruit.c
index dec2bedc67b..59e24a8d4f0 100644
--- a/src/mame/drivers/dfruit.c
+++ b/src/mame/drivers/dfruit.c
@@ -416,4 +416,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)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1993, dfruit, 0, dfruit, dfruit, driver_device, 0, ROT0, "Nippon Data Kiki / Star Fish", "Fruit Dream (Japan)", MACHINE_IMPERFECT_GRAPHICS )
diff --git a/src/mess/drivers/dgn_beta.c b/src/mame/drivers/dgn_beta.c
index 3566313dade..a06be61dd1e 100644
--- a/src/mess/drivers/dgn_beta.c
+++ b/src/mame/drivers/dgn_beta.c
@@ -410,4 +410,4 @@ ROM_START(dgnbeta)
ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 1984, dgnbeta, 0, 0, dgnbeta, dgnbeta, driver_device, 0, "Dragon Data Ltd", "Dragon Beta Prototype", GAME_NO_SOUND )
+COMP( 1984, dgnbeta, 0, 0, dgnbeta, dgnbeta, driver_device, 0, "Dragon Data Ltd", "Dragon Beta Prototype", MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/dgpix.c b/src/mame/drivers/dgpix.c
index bec94396975..306e9b19399 100644
--- a/src/mame/drivers/dgpix.c
+++ b/src/mame/drivers/dgpix.c
@@ -686,9 +686,9 @@ DRIVER_INIT_MEMBER(dgpix_state,fmaniac3)
m_flash_roms = 2;
}
-GAME( 1999, elfin, 0, dgpix, dgpix, dgpix_state, elfin, ROT0, "dgPIX Entertainment Inc.", "Elfin", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1999, jumpjump, 0, dgpix, dgpix, dgpix_state, jumpjump, ROT0, "dgPIX Entertainment Inc.", "Jump Jump", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1999, xfiles, 0, dgpix, dgpix, dgpix_state, xfiles, ROT0, "dgPIX Entertainment Inc.", "The X-Files", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1999, xfilesk, xfiles, dgpix, dgpix, dgpix_state, xfilesk, ROT0, "dgPIX Entertainment Inc.", "The X-Files (Censored, Korea)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1999, kdynastg, 0, dgpix, dgpix, dgpix_state, kdynastg, ROT0, "EZ Graphics", "King of Dynast Gear (version 1.8)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2002, fmaniac3, 0, dgpix, dgpix, dgpix_state, fmaniac3, ROT0, "Saero Entertainment", "Fishing Maniac 3", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1999, elfin, 0, dgpix, dgpix, dgpix_state, elfin, ROT0, "dgPIX Entertainment Inc.", "Elfin", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, jumpjump, 0, dgpix, dgpix, dgpix_state, jumpjump, ROT0, "dgPIX Entertainment Inc.", "Jump Jump", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, xfiles, 0, dgpix, dgpix, dgpix_state, xfiles, ROT0, "dgPIX Entertainment Inc.", "The X-Files", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, xfilesk, xfiles, dgpix, dgpix, dgpix_state, xfilesk, ROT0, "dgPIX Entertainment Inc.", "The X-Files (Censored, Korea)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kdynastg, 0, dgpix, dgpix, dgpix_state, kdynastg, ROT0, "EZ Graphics", "King of Dynast Gear (version 1.8)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2002, fmaniac3, 0, dgpix, dgpix, dgpix_state, fmaniac3, ROT0, "Saero Entertainment", "Fishing Maniac 3", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/dietgo.c b/src/mame/drivers/dietgo.c
index c26414b78a8..e2c8df4e31b 100644
--- a/src/mame/drivers/dietgo.c
+++ b/src/mame/drivers/dietgo.c
@@ -373,7 +373,7 @@ DRIVER_INIT_MEMBER(dietgo_state,dietgo)
deco102_decrypt_cpu((UINT16 *)memregion("maincpu")->base(), m_decrypted_opcodes, 0x80000, 0xe9ba, 0x01, 0x19);
}
-GAME( 1992, dietgo, 0, dietgo, dietgo, dietgo_state, dietgo, ROT0, "Data East Corporation", "Diet Go Go (Euro v1.1 1992.09.26)", GAME_SUPPORTS_SAVE )
-GAME( 1992, dietgoe, dietgo, dietgo, dietgo, dietgo_state, dietgo, ROT0, "Data East Corporation", "Diet Go Go (Euro v1.1 1992.08.04)" , GAME_SUPPORTS_SAVE )
-GAME( 1992, dietgou, dietgo, dietgo, dietgo, dietgo_state, dietgo, ROT0, "Data East Corporation", "Diet Go Go (USA v1.1 1992.09.26)", GAME_SUPPORTS_SAVE )
-GAME( 1992, dietgoj, dietgo, dietgo, dietgo, dietgo_state, dietgo, ROT0, "Data East Corporation", "Diet Go Go (Japan v1.1 1992.09.26)", GAME_SUPPORTS_SAVE )
+GAME( 1992, dietgo, 0, dietgo, dietgo, dietgo_state, dietgo, ROT0, "Data East Corporation", "Diet Go Go (Euro v1.1 1992.09.26)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, dietgoe, dietgo, dietgo, dietgo, dietgo_state, dietgo, ROT0, "Data East Corporation", "Diet Go Go (Euro v1.1 1992.08.04)" , MACHINE_SUPPORTS_SAVE )
+GAME( 1992, dietgou, dietgo, dietgo, dietgo, dietgo_state, dietgo, ROT0, "Data East Corporation", "Diet Go Go (USA v1.1 1992.09.26)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, dietgoj, dietgo, dietgo, dietgo, dietgo_state, dietgo, ROT0, "Data East Corporation", "Diet Go Go (Japan v1.1 1992.09.26)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/digel804.c b/src/mame/drivers/digel804.c
index c1024112dc5..f8e9ecf13a2 100644
--- a/src/mess/drivers/digel804.c
+++ b/src/mame/drivers/digel804.c
@@ -722,5 +722,5 @@ ROM_END
******************************************************************************/
/* 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", GAME_NOT_WORKING )
-COMP( 1982, ep804, digel804, 0, ep804, digel804, digel804_state, digel804, "Wavetek/Digelec, Inc", "EP804 EPROM Programmer", GAME_NOT_WORKING )
+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/mess/drivers/dim68k.c b/src/mame/drivers/dim68k.c
index eb7c5a68ccc..7dce08a1a89 100644
--- a/src/mess/drivers/dim68k.c
+++ b/src/mame/drivers/dim68k.c
@@ -395,4 +395,4 @@ 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", GAME_NOT_WORKING)
+COMP( 1984, dim68k, 0, 0, dim68k, dim68k, driver_device, 0, "Micro Craft", "Dimension 68000", MACHINE_NOT_WORKING)
diff --git a/src/mame/drivers/discoboy.c b/src/mame/drivers/discoboy.c
index f9a04d09be6..67fa7edcc41 100644
--- a/src/mame/drivers/discoboy.c
+++ b/src/mame/drivers/discoboy.c
@@ -604,5 +604,5 @@ DRIVER_INIT_MEMBER(discoboy_state,discoboy)
}
-GAME( 1993, discoboy, 0, discoboy, discoboy, discoboy_state, discoboy, ROT270, "Soft Art Co.", "Disco Boy", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1993, discoboyp, discoboy, discoboy, discoboy, discoboy_state, discoboy, ROT270, "Soft Art Co.", "Disco Boy (Promat license?)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1993, discoboy, 0, discoboy, discoboy, discoboy_state, discoboy, ROT270, "Soft Art Co.", "Disco Boy", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1993, discoboyp, discoboy, discoboy, discoboy, discoboy_state, discoboy, ROT270, "Soft Art Co.", "Disco Boy (Promat license?)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/diverboy.c b/src/mame/drivers/diverboy.c
index c4272cf8321..c9d698cd6da 100644
--- a/src/mame/drivers/diverboy.c
+++ b/src/mame/drivers/diverboy.c
@@ -70,7 +70,6 @@ public:
/* memory pointers */
required_shared_ptr<UINT16> m_spriteram;
-// UINT16 * m_paletteram; // currently this uses generic palette handling
/* devices */
required_device<cpu_device> m_audiocpu;
@@ -333,4 +332,4 @@ ROM_END
-GAME( 1992, diverboy, 0, diverboy, diverboy, driver_device, 0, ORIENTATION_FLIP_X, "Gamart (Electronic Devices Italy license)", "Diver Boy", GAME_SUPPORTS_SAVE )
+GAME( 1992, diverboy, 0, diverboy, diverboy, driver_device, 0, ORIENTATION_FLIP_X, "Gamart (Electronic Devices Italy license)", "Diver Boy", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/djboy.c b/src/mame/drivers/djboy.c
index 3d03f1727af..0b0fdfb7045 100644
--- a/src/mame/drivers/djboy.c
+++ b/src/mame/drivers/djboy.c
@@ -716,6 +716,6 @@ DRIVER_INIT_MEMBER(djboy_state,djboyj)
}
/* YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MNTR, COMPANY, FULLNAME, FLAGS */
-GAME( 1989, djboy, 0, djboy, djboy, djboy_state, djboy, ROT0, "Kaneko (American Sammy license)", "DJ Boy (set 1)", GAME_SUPPORTS_SAVE) // Sammy & Williams logos in FG ROM
-GAME( 1989, djboya, djboy, djboy, djboy, djboy_state, djboy, ROT0, "Kaneko (American Sammy license)", "DJ Boy (set 2)", GAME_SUPPORTS_SAVE) // Sammy & Williams logos in FG ROM
-GAME( 1989, djboyj, djboy, djboy, djboy, djboy_state, djboyj, ROT0, "Kaneko (Sega license)", "DJ Boy (Japan)", GAME_SUPPORTS_SAVE ) // Sega logo in FG ROM
+GAME( 1989, djboy, 0, djboy, djboy, djboy_state, djboy, ROT0, "Kaneko (American Sammy license)", "DJ Boy (set 1)", MACHINE_SUPPORTS_SAVE) // Sammy & Williams logos in FG ROM
+GAME( 1989, djboya, djboy, djboy, djboy, djboy_state, djboy, ROT0, "Kaneko (American Sammy license)", "DJ Boy (set 2)", MACHINE_SUPPORTS_SAVE) // Sammy & Williams logos in FG ROM
+GAME( 1989, djboyj, djboy, djboy, djboy, djboy_state, djboyj, ROT0, "Kaneko (Sega license)", "DJ Boy (Japan)", MACHINE_SUPPORTS_SAVE ) // Sega logo in FG ROM
diff --git a/src/mame/drivers/djmain.c b/src/mame/drivers/djmain.c
index 2bbdf3750a2..600fa4a4011 100644
--- a/src/mame/drivers/djmain.c
+++ b/src/mame/drivers/djmain.c
@@ -86,23 +86,6 @@ hard drive 3.5 adapter long 3.5 IDE cable 3.5 adapter PCB
*
*************************************/
-WRITE32_MEMBER(djmain_state::paletteram32_w)
-{
- int r,g,b;
-
- COMBINE_DATA(&m_generic_paletteram_32[offset]);
- data = m_generic_paletteram_32[offset];
-
- r = (data >> 0) & 0xff;
- g = (data >> 8) & 0xff;
- b = (data >> 16) & 0xff;
-
- m_palette->set_pen_color(offset, rgb_t(r, g, b));
-}
-
-
-//---------
-
void djmain_state::sndram_set_bank()
{
m_sndram = memregion("shared")->base() + 0x80000 * m_sndram_bank;
@@ -396,8 +379,7 @@ WRITE_LINE_MEMBER( djmain_state::ide_interrupt )
static ADDRESS_MAP_START( maincpu_djmain, AS_PROGRAM, 32, djmain_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // PRG ROM
AM_RANGE(0x400000, 0x40ffff) AM_RAM // WORK RAM
- AM_RANGE(0x480000, 0x48443f) AM_RAM_WRITE(paletteram32_w) // COLOR RAM
- AM_SHARE("paletteram")
+ AM_RANGE(0x480000, 0x48443f) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // COLOR RAM
AM_RANGE(0x500000, 0x57ffff) AM_READWRITE(sndram_r, sndram_w) // SOUND RAM
AM_RANGE(0x580000, 0x58003f) AM_DEVREADWRITE("k056832", k056832_device, long_r, long_w) // VIDEO REG (tilemap)
AM_RANGE(0x590000, 0x590007) AM_WRITE(unknown590000_w) // ??
@@ -1416,6 +1398,7 @@ static MACHINE_CONFIG_START( djmainj, djmain_state )
MCFG_SCREEN_UPDATE_DRIVER(djmain_state, screen_update_djmain)
MCFG_PALETTE_ADD("palette", 0x4440/4)
+ MCFG_PALETTE_FORMAT(XBGR)
MCFG_GFXDECODE_ADD("gfxdecode", "palette", djmain)
MCFG_DEVICE_ADD("k056832", K056832, 0)
diff --git a/src/mame/drivers/dkong.c b/src/mame/drivers/dkong.c
index e2a336bc119..655acbbc3c4 100644
--- a/src/mame/drivers/dkong.c
+++ b/src/mame/drivers/dkong.c
@@ -79,7 +79,7 @@ Done:
- moved address remapping proms to "user1" (hunchbkd & co)
- Service now adds credit
- Hooked up coin_counters
- - remove GAME_NOT_WORKING GAME_WRONG_COLORS from hunchbkd
+ - remove MACHINE_NOT_WORKING MACHINE_WRONG_COLORS from hunchbkd
- fixed shootgal0121u4red
- dkongjr: mapped more interface lines between sound board and cpu board
- tagged all inputs, all reads use tag names
@@ -3282,48 +3282,48 @@ DRIVER_INIT_MEMBER(dkong_state,dkingjr)
*
*************************************/
-GAME( 1980, radarscp, 0, radarscp, radarscp, driver_device, 0, ROT90, "Nintendo", "Radar Scope", GAME_SUPPORTS_SAVE )
-GAME( 1980, radarscp1, radarscp, radarscp1, radarscp, driver_device, 0, ROT90, "Nintendo", "Radar Scope (TRS01)", GAME_SUPPORTS_SAVE )
+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)", GAME_SUPPORTS_SAVE )
-GAME( 1981, dkonghrd, dkong, dkong2b, dkong, driver_device, 0, ROT90, "Nintendo of America", "Donkey Kong (hard kit)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1981, dkongj, dkong, dkong2b, dkong, driver_device, 0, ROT90, "Nintendo", "Donkey Kong (Japan set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1981, dkongjo, dkong, dkong2b, dkong, driver_device, 0, ROT90, "Nintendo", "Donkey Kong (Japan set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1981, dkongjo1, dkong, dkong2b, dkong, driver_device, 0, ROT90, "Nintendo", "Donkey Kong (Japan set 3)", GAME_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)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 2006, dkongx11, dkong, braze, dkongx, dkong_state, dkongx, ROT90, "hack (Braze Technologies)", "Donkey Kong II: Jumpman Returns (hack, V1.1)", GAME_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( 1982, dkongjr, 0, dkongjr, dkongjr, driver_device, 0, ROT90, "Nintendo of America", "Donkey Kong Junior (US set F-2)", GAME_SUPPORTS_SAVE )
-GAME( 1982, dkongjrj, dkongjr, dkongjr, dkongjr, driver_device, 0, ROT90, "Nintendo", "Donkey Kong Jr. (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1982, dkongjnrj, dkongjr, dkongjr, dkongjr, driver_device, 0, ROT90, "Nintendo", "Donkey Kong Junior (Japan?)", GAME_SUPPORTS_SAVE )
-GAME( 1982, dkongjrb, dkongjr, dkongjr, dkongjr, driver_device, 0, ROT90, "bootleg", "Donkey Kong Jr. (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1982, dkongjre, dkongjr, dkongjr, dkongjr, driver_device, 0, ROT90, "Nintendo of America", "Donkey Kong Junior (E kit)", GAME_SUPPORTS_SAVE )
-GAME( 1982, dkongjrpb, dkongjr, dkongjr, dkongjr, driver_device, 0, ROT90, "bootleg", "Donkey Kong Junior (P kit, bootleg)", GAME_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.)", GAME_SUPPORTS_SAVE )
-GAME( 1982, dkingjr, dkongjr, dkongjr, dkongjr, dkong_state, dkingjr, ROT90, "bootleg", "Donkey King Jr. (bootleg of Donkey Kong Jr.)", GAME_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( 1983, dkong3, 0, dkong3, dkong3, driver_device, 0, ROT90, "Nintendo of America", "Donkey Kong 3 (US)", GAME_SUPPORTS_SAVE )
-GAME( 1983, dkong3j, dkong3, dkong3, dkong3, driver_device, 0, ROT90, "Nintendo", "Donkey Kong 3 (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1984, dkong3b, dkong3, dkong3b, dkong3b, driver_device, 0, ROT90, "bootleg", "Donkey Kong 3 (bootleg on Donkey Kong Jr. hardware)", GAME_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", GAME_WRONG_COLORS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1983, pestplce, mario, pestplce, pestplce, driver_device, 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)", GAME_SUPPORTS_SAVE )
-GAME( 1983, hunchbkd, hunchbak, s2650, hunchbkd, driver_device, 0, ROT90, "Century Electronics", "Hunchback (DK conversion)", GAME_SUPPORTS_SAVE )
-GAME( 1984, sbdk, superbik, s2650, sbdk, driver_device, 0, ROT90, "Century Electronics", "Super Bike (DK conversion)", GAME_SUPPORTS_SAVE )
-GAME( 1984, herodk, hero, s2650, herodk, dkong_state, herodk, ROT90, "Seatongrove Ltd (Crown license)", "Hero in the Castle of Doom (DK conversion)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1984, 8ballact, 0, s2650, 8ballact, driver_device, 0, ROT90, "Seatongrove Ltd (Magic Electronics USA license)", "Eight Ball Action (DK conversion)", GAME_SUPPORTS_SAVE )
-GAME( 1984, 8ballact2, 8ballact, s2650, 8ballact, driver_device, 0, ROT90, "Seatongrove Ltd (Magic Electronics USA license)", "Eight Ball Action (DKJr conversion)", GAME_SUPPORTS_SAVE )
-GAME( 1984, shootgal, 0, s2650, shootgal, driver_device, 0, ROT180, "Seatongrove Ltd (Zaccaria license)", "Shooting Gallery", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1985, spclforc, 0, spclforc, spclforc, driver_device, 0, ROT90, "Senko Industries (Magic Electronics Inc. license)", "Special Forces", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1985, spcfrcii, 0, spclforc, spclforc, driver_device, 0, ROT90, "Senko Industries (Magic Electronics Inc. license)", "Special Forces II", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
+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 )
/* EPOS */
-GAME( 1984, drakton, 0, drakton, drakton, dkong_state, drakton, ROT90, "Epos Corporation", "Drakton (DK conversion)", GAME_SUPPORTS_SAVE )
-GAME( 1984, drktnjr, drakton, drktnjr, drakton, dkong_state, drakton, ROT90, "Epos Corporation", "Drakton (DKJr conversion)", GAME_SUPPORTS_SAVE )
-GAME( 1985, strtheat, 0, strtheat, strtheat, dkong_state, strtheat, ROT90, "Epos Corporation", "Street Heat", GAME_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.c b/src/mame/drivers/dlair.c
index 8abbd89d224..52b99625f6f 100644
--- a/src/mame/drivers/dlair.c
+++ b/src/mame/drivers/dlair.c
@@ -973,21 +973,21 @@ DRIVER_INIT_MEMBER(dlair_state,variable)
*
*************************************/
-GAMEL( 1983, dlair, 0, dlair_ldv1000, dlaire, dlair_state, variable, ROT0, "Cinematronics", "Dragon's Lair (US Rev. F2)", GAME_NOT_WORKING, layout_dlair )
-GAMEL( 1983, dlairf, dlair, dlair_ldv1000, dlaire, dlair_state, variable, ROT0, "Cinematronics", "Dragon's Lair (US Rev. F)", GAME_NOT_WORKING, layout_dlair )
-GAMEL( 1983, dlaire, dlair, dlair_ldv1000, dlaire, dlair_state, variable, ROT0, "Cinematronics", "Dragon's Lair (US Rev. E)", GAME_NOT_WORKING, layout_dlair )
-GAMEL( 1983, dlaird, dlair, dlair_ldv1000, dlair, dlair_state, fixed, ROT0, "Cinematronics", "Dragon's Lair (US Rev. D, Pioneer LD-V1000)", GAME_NOT_WORKING, layout_dlair )
-GAMEL( 1983, dlairc, dlair, dlair_pr7820, dlair, dlair_state, fixed, ROT0, "Cinematronics", "Dragon's Lair (US Rev. C, Pioneer PR-7820)", GAME_NOT_WORKING, layout_dlair )
-GAMEL( 1983, dlairb, dlair, dlair_pr7820, dlair, dlair_state, fixed, ROT0, "Cinematronics", "Dragon's Lair (US Rev. B, Pioneer PR-7820)", GAME_NOT_WORKING, layout_dlair )
-GAMEL( 1983, dlaira, dlair, dlair_pr7820, dlair, dlair_state, fixed, ROT0, "Cinematronics", "Dragon's Lair (US Rev. A, Pioneer PR-7820)", GAME_NOT_WORKING, layout_dlair )
-GAMEL( 1983, dlair_2, dlair, dlair_pr7820, dlair, dlair_state, fixed, ROT0, "Cinematronics", "Dragon's Lair (US Beta 2?, Pioneer PR-7820)", GAME_NOT_WORKING, layout_dlair )
-GAMEL( 1983, dlair_1, dlair, dlair_pr7820, dlair, dlair_state, fixed, ROT0, "Cinematronics", "Dragon's Lair (US Beta 1, Pioneer PR-7820)", GAME_NOT_WORKING, layout_dlair )
-
-GAMEL( 1983, dleuro, dlair, dleuro, dleuro, dlair_state, fixed, ROT0, "Cinematronics (Atari license)", "Dragon's Lair (European)", GAME_NOT_WORKING, layout_dlair )
-GAMEL( 1983, dleuroalt,dlair, dleuro, dleuro, dlair_state, fixed, ROT0, "Cinematronics (Atari license)", "Dragon's Lair (European, alternate)", GAME_NOT_WORKING, layout_dlair )
-GAMEL( 1983, dlital, dlair, dleuro, dleuro, dlair_state, fixed, ROT0, "Cinematronics (Sidam license?)","Dragon's Lair (Italian)", GAME_NOT_WORKING, layout_dlair )
-
-GAMEL( 1983, spaceace, 0, dlair_ldv1000, dlaire, dlair_state, variable, ROT0, "Cinematronics", "Space Ace (US Rev. A3)", GAME_NOT_WORKING, layout_dlair )
-GAMEL( 1983, spaceacea2, spaceace, dlair_ldv1000, dlaire, dlair_state, variable, ROT0, "Cinematronics", "Space Ace (US Rev. A2)", GAME_NOT_WORKING, layout_dlair )
-GAMEL( 1983, spaceacea, spaceace, dlair_ldv1000, dlaire, dlair_state, variable, ROT0, "Cinematronics", "Space Ace (US Rev. A)", GAME_NOT_WORKING, layout_dlair )
-GAMEL( 1983, spaceaceeuro, spaceace, dleuro, dleuro, dlair_state, fixed, ROT0, "Cinematronics (Atari license)", "Space Ace (European)", GAME_NOT_WORKING, layout_dlair )
+GAMEL( 1983, dlair, 0, dlair_ldv1000, dlaire, dlair_state, variable, ROT0, "Cinematronics", "Dragon's Lair (US Rev. F2)", MACHINE_NOT_WORKING, layout_dlair )
+GAMEL( 1983, dlairf, dlair, dlair_ldv1000, dlaire, dlair_state, variable, ROT0, "Cinematronics", "Dragon's Lair (US Rev. F)", MACHINE_NOT_WORKING, layout_dlair )
+GAMEL( 1983, dlaire, dlair, dlair_ldv1000, dlaire, dlair_state, variable, ROT0, "Cinematronics", "Dragon's Lair (US Rev. E)", MACHINE_NOT_WORKING, layout_dlair )
+GAMEL( 1983, dlaird, dlair, dlair_ldv1000, dlair, dlair_state, fixed, ROT0, "Cinematronics", "Dragon's Lair (US Rev. D, Pioneer LD-V1000)", MACHINE_NOT_WORKING, layout_dlair )
+GAMEL( 1983, dlairc, dlair, dlair_pr7820, dlair, dlair_state, fixed, ROT0, "Cinematronics", "Dragon's Lair (US Rev. C, Pioneer PR-7820)", MACHINE_NOT_WORKING, layout_dlair )
+GAMEL( 1983, dlairb, dlair, dlair_pr7820, dlair, dlair_state, fixed, ROT0, "Cinematronics", "Dragon's Lair (US Rev. B, Pioneer PR-7820)", MACHINE_NOT_WORKING, layout_dlair )
+GAMEL( 1983, dlaira, dlair, dlair_pr7820, dlair, dlair_state, fixed, ROT0, "Cinematronics", "Dragon's Lair (US Rev. A, Pioneer PR-7820)", MACHINE_NOT_WORKING, layout_dlair )
+GAMEL( 1983, dlair_2, dlair, dlair_pr7820, dlair, dlair_state, fixed, ROT0, "Cinematronics", "Dragon's Lair (US Beta 2?, Pioneer PR-7820)", MACHINE_NOT_WORKING, layout_dlair )
+GAMEL( 1983, dlair_1, dlair, dlair_pr7820, dlair, dlair_state, fixed, ROT0, "Cinematronics", "Dragon's Lair (US Beta 1, Pioneer PR-7820)", MACHINE_NOT_WORKING, layout_dlair )
+
+GAMEL( 1983, dleuro, dlair, dleuro, dleuro, dlair_state, fixed, ROT0, "Cinematronics (Atari license)", "Dragon's Lair (European)", MACHINE_NOT_WORKING, layout_dlair )
+GAMEL( 1983, dleuroalt,dlair, dleuro, dleuro, dlair_state, fixed, ROT0, "Cinematronics (Atari license)", "Dragon's Lair (European, alternate)", MACHINE_NOT_WORKING, layout_dlair )
+GAMEL( 1983, dlital, dlair, dleuro, dleuro, dlair_state, fixed, ROT0, "Cinematronics (Sidam license?)","Dragon's Lair (Italian)", MACHINE_NOT_WORKING, layout_dlair )
+
+GAMEL( 1983, spaceace, 0, dlair_ldv1000, dlaire, dlair_state, variable, ROT0, "Cinematronics", "Space Ace (US Rev. A3)", MACHINE_NOT_WORKING, layout_dlair )
+GAMEL( 1983, spaceacea2, spaceace, dlair_ldv1000, dlaire, dlair_state, variable, ROT0, "Cinematronics", "Space Ace (US Rev. A2)", MACHINE_NOT_WORKING, layout_dlair )
+GAMEL( 1983, spaceacea, spaceace, dlair_ldv1000, dlaire, dlair_state, variable, ROT0, "Cinematronics", "Space Ace (US Rev. A)", MACHINE_NOT_WORKING, layout_dlair )
+GAMEL( 1983, spaceaceeuro, spaceace, dleuro, dleuro, dlair_state, fixed, ROT0, "Cinematronics (Atari license)", "Space Ace (European)", MACHINE_NOT_WORKING, layout_dlair )
diff --git a/src/mame/drivers/dlair2.c b/src/mame/drivers/dlair2.c
index bbc23733bfb..7d59cbfbbd8 100644
--- a/src/mame/drivers/dlair2.c
+++ b/src/mame/drivers/dlair2.c
@@ -328,18 +328,18 @@ ROM_START( spacea91_13e )
ROM_END
-GAME( 1991, dlair2, 0, dlair2, dlair2, driver_device, 0, ROT0, "Leland", "Dragon's Lair 2: Time Warp (US v3.19)", GAME_IS_SKELETON )
-GAME( 1991, dlair2_319e, dlair2, dlair2, dlair2, driver_device, 0, ROT0, "Leland", "Dragon's Lair 2: Time Warp (Euro v3.19)", GAME_IS_SKELETON )
-GAME( 1991, dlair2_319s, dlair2, dlair2, dlair2, driver_device, 0, ROT0, "Leland", "Dragon's Lair 2: Time Warp (Spanish v3.19)", GAME_IS_SKELETON )
-GAME( 1991, dlair2_318, dlair2, dlair2, dlair2, driver_device, 0, ROT0, "Leland", "Dragon's Lair 2: Time Warp (US v3.18)", GAME_IS_SKELETON )
-GAME( 1991, dlair2_317e, dlair2, dlair2, dlair2, driver_device, 0, ROT0, "Leland", "Dragon's Lair 2: Time Warp (Euro v3.17)", GAME_IS_SKELETON )
-GAME( 1991, dlair2_316e, dlair2, dlair2, dlair2, driver_device, 0, ROT0, "Leland", "Dragon's Lair 2: Time Warp (Euro v3.16)", GAME_IS_SKELETON )
-GAME( 1991, dlair2_315, dlair2, dlair2, dlair2, driver_device, 0, ROT0, "Leland", "Dragon's Lair 2: Time Warp (US v3.15)", GAME_IS_SKELETON )
-GAME( 1991, dlair2_315s, dlair2, dlair2, dlair2, driver_device, 0, ROT0, "Leland", "Dragon's Lair 2: Time Warp (Spanish v3.15)", GAME_IS_SKELETON )
-GAME( 1991, dlair2_314, dlair2, dlair2, dlair2, driver_device, 0, ROT0, "Leland", "Dragon's Lair 2: Time Warp (US v3.14)", GAME_IS_SKELETON )
-GAME( 1991, dlair2_312, dlair2, dlair2, dlair2, driver_device, 0, ROT0, "Leland", "Dragon's Lair 2: Time Warp (Euro v3.12)", GAME_IS_SKELETON )
-GAME( 1991, dlair2_300, dlair2, dlair2, dlair2, driver_device, 0, ROT0, "Leland", "Dragon's Lair 2: Time Warp (US v3.00)", GAME_IS_SKELETON )
-GAME( 1991, dlair2_211, dlair2, dlair2, dlair2, driver_device, 0, ROT0, "Leland", "Dragon's Lair 2: Time Warp (US v2.11)", GAME_IS_SKELETON )
-GAME( 1991, dlair2_200, dlair2, dlair2, dlair2, driver_device, 0, ROT0, "Leland", "Dragon's Lair 2: Time Warp (US v2.00, AMOA prototype)", GAME_IS_SKELETON )
-GAME( 1991, spacea91, 0, dlair2, dlair2, driver_device, 0, ROT0, "Leland", "Space Ace (DL2 Conversion) (US v1.3)", GAME_IS_SKELETON )
-GAME( 1991, spacea91_13e, spacea91, dlair2, dlair2, driver_device, 0, ROT0, "Leland", "Space Ace (DL2 Conversion) (Euro v1.3)", GAME_IS_SKELETON )
+GAME( 1991, dlair2, 0, dlair2, dlair2, driver_device, 0, ROT0, "Leland", "Dragon's Lair 2: Time Warp (US v3.19)", MACHINE_IS_SKELETON )
+GAME( 1991, dlair2_319e, dlair2, dlair2, dlair2, driver_device, 0, ROT0, "Leland", "Dragon's Lair 2: Time Warp (Euro v3.19)", MACHINE_IS_SKELETON )
+GAME( 1991, dlair2_319s, dlair2, dlair2, dlair2, driver_device, 0, ROT0, "Leland", "Dragon's Lair 2: Time Warp (Spanish v3.19)", MACHINE_IS_SKELETON )
+GAME( 1991, dlair2_318, dlair2, dlair2, dlair2, driver_device, 0, ROT0, "Leland", "Dragon's Lair 2: Time Warp (US v3.18)", MACHINE_IS_SKELETON )
+GAME( 1991, dlair2_317e, dlair2, dlair2, dlair2, driver_device, 0, ROT0, "Leland", "Dragon's Lair 2: Time Warp (Euro v3.17)", MACHINE_IS_SKELETON )
+GAME( 1991, dlair2_316e, dlair2, dlair2, dlair2, driver_device, 0, ROT0, "Leland", "Dragon's Lair 2: Time Warp (Euro v3.16)", MACHINE_IS_SKELETON )
+GAME( 1991, dlair2_315, dlair2, dlair2, dlair2, driver_device, 0, ROT0, "Leland", "Dragon's Lair 2: Time Warp (US v3.15)", MACHINE_IS_SKELETON )
+GAME( 1991, dlair2_315s, dlair2, dlair2, dlair2, driver_device, 0, ROT0, "Leland", "Dragon's Lair 2: Time Warp (Spanish v3.15)", MACHINE_IS_SKELETON )
+GAME( 1991, dlair2_314, dlair2, dlair2, dlair2, driver_device, 0, ROT0, "Leland", "Dragon's Lair 2: Time Warp (US v3.14)", MACHINE_IS_SKELETON )
+GAME( 1991, dlair2_312, dlair2, dlair2, dlair2, driver_device, 0, ROT0, "Leland", "Dragon's Lair 2: Time Warp (Euro v3.12)", MACHINE_IS_SKELETON )
+GAME( 1991, dlair2_300, dlair2, dlair2, dlair2, driver_device, 0, ROT0, "Leland", "Dragon's Lair 2: Time Warp (US v3.00)", MACHINE_IS_SKELETON )
+GAME( 1991, dlair2_211, dlair2, dlair2, dlair2, driver_device, 0, ROT0, "Leland", "Dragon's Lair 2: Time Warp (US v2.11)", MACHINE_IS_SKELETON )
+GAME( 1991, dlair2_200, dlair2, dlair2, dlair2, driver_device, 0, ROT0, "Leland", "Dragon's Lair 2: Time Warp (US v2.00, AMOA prototype)", MACHINE_IS_SKELETON )
+GAME( 1991, spacea91, 0, dlair2, dlair2, driver_device, 0, ROT0, "Leland", "Space Ace (DL2 Conversion) (US v1.3)", MACHINE_IS_SKELETON )
+GAME( 1991, spacea91_13e, spacea91, dlair2, dlair2, driver_device, 0, ROT0, "Leland", "Space Ace (DL2 Conversion) (Euro v1.3)", MACHINE_IS_SKELETON )
diff --git a/src/mess/drivers/dm7000.c b/src/mame/drivers/dm7000.c
index bdef38b5a2c..cb808fb98fa 100644
--- a/src/mess/drivers/dm7000.c
+++ b/src/mame/drivers/dm7000.c
@@ -347,6 +347,6 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
-SYST( 2004, dm5620, dm7000, 0, dm7000, dm7000, driver_device, 0, "Dream Multimedia", "Dreambox 5620", GAME_NOT_WORKING | GAME_NO_SOUND)
-SYST( 2006, dm500, dm7000, 0, dm7000, dm7000, driver_device, 0, "Dream Multimedia", "Dreambox 500", GAME_NOT_WORKING | GAME_NO_SOUND)
+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)
diff --git a/src/mame/drivers/dmndrby.c b/src/mame/drivers/dmndrby.c
index 988e014330b..6d94b431da1 100644
--- a/src/mame/drivers/dmndrby.c
+++ b/src/mame/drivers/dmndrby.c
@@ -650,5 +650,5 @@ 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)",GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_COLORS|GAME_NOT_WORKING ) // hack?
-GAME( 1986, dmndrbya, dmndrby, dderby, dderbya, driver_device, 0, ROT0, "Electrocoin", "Diamond Derby (Original)",GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_COLORS|GAME_NOT_WORKING )
+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 )
diff --git a/src/mess/drivers/dms5000.c b/src/mame/drivers/dms5000.c
index 458ebdcd583..cb10bffa23d 100644
--- a/src/mess/drivers/dms5000.c
+++ b/src/mame/drivers/dms5000.c
@@ -83,4 +83,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1982, dms5000, 0, 0, dms5000, dms5000, driver_device, 0, "Digital Microsystems", "DMS-5000", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/dms86.c b/src/mame/drivers/dms86.c
index 930181437f5..c1927ec631f 100644
--- a/src/mess/drivers/dms86.c
+++ b/src/mame/drivers/dms86.c
@@ -128,4 +128,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1982, dms86, 0, 0, dms86, dms86, driver_device, 0, "Digital Microsystems", "DMS-86", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/dmv.c b/src/mame/drivers/dmv.c
index 5a2b0294f4a..6db67eb8e9e 100644
--- a/src/mess/drivers/dmv.c
+++ b/src/mame/drivers/dmv.c
@@ -847,4 +847,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1984, dmv, 0, 0, dmv, dmv, driver_device, 0, "NCR", "Decision Mate V", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/docastle.c b/src/mame/drivers/docastle.c
index d2f5b452c6f..71ac8c5bf45 100644
--- a/src/mame/drivers/docastle.c
+++ b/src/mame/drivers/docastle.c
@@ -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)", GAME_SUPPORTS_SAVE )
-GAME( 1983, docastle2, docastle, docastle, docastle, driver_device, 0, ROT270, "Universal", "Mr. Do's Castle (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1983, docastleo, docastle, docastle, docastle, driver_device, 0, ROT270, "Universal", "Mr. Do's Castle (older)", GAME_SUPPORTS_SAVE )
-GAME( 1983, douni, docastle, docastle, docastle, driver_device, 0, ROT270, "Universal", "Mr. Do vs. Unicorns", GAME_SUPPORTS_SAVE )
-GAME( 1984, dorunrun, 0, dorunrun, dorunrun, driver_device, 0, ROT0, "Universal", "Do! Run Run (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1984, dorunrun2, dorunrun, dorunrun, dorunrun, driver_device, 0, ROT0, "Universal", "Do! Run Run (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1984, dorunrunc, dorunrun, docastle, dorunrun, driver_device, 0, ROT0, "Universal", "Do! Run Run (Do's Castle hardware, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1984, dorunrunca,dorunrun, docastle, dorunrun, driver_device, 0, ROT0, "Universal", "Do! Run Run (Do's Castle hardware, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1987, spiero, dorunrun, dorunrun, dorunrun, driver_device, 0, ROT0, "Universal", "Super Pierrot (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1984, dowild, 0, dorunrun, dowild, driver_device, 0, ROT0, "Universal", "Mr. Do's Wild Ride", GAME_SUPPORTS_SAVE )
-GAME( 1984, jjack, 0, dorunrun, jjack, driver_device, 0, ROT270, "Universal", "Jumping Jack", GAME_SUPPORTS_SAVE )
-GAME( 1984, kickridr, 0, dorunrun, kickridr, driver_device, 0, ROT0, "Universal", "Kick Rider", GAME_SUPPORTS_SAVE )
-GAME( 1985, idsoccer, 0, idsoccer, idsoccer, driver_device, 0, ROT0, "Universal", "Indoor Soccer (set 1)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1985, idsoccera, idsoccer, idsoccer, idsoccer, driver_device, 0, ROT0, "Universal", "Indoor Soccer (set 2)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND )
-GAME( 1987, asoccer, idsoccer, idsoccer, idsoccer, driver_device, 0, ROT0, "Universal", "American Soccer", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND )
+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 )
diff --git a/src/mame/drivers/dogfgt.c b/src/mame/drivers/dogfgt.c
index d12bc508420..2b829e47369 100644
--- a/src/mame/drivers/dogfgt.c
+++ b/src/mame/drivers/dogfgt.c
@@ -377,6 +377,6 @@ ROM_END
-GAME( 1984, dogfgt, 0, dogfgt, dogfgt, driver_device, 0, ROT0, "Technos Japan", "Acrobatic Dog-Fight", GAME_SUPPORTS_SAVE )
-GAME( 1985, dogfgtu, dogfgt, dogfgt, dogfgt, driver_device, 0, ROT0, "Technos Japan (Data East USA, Inc. license)", "Acrobatic Dog-Fight (USA)", GAME_SUPPORTS_SAVE )
-GAME( 1984, dogfgtj, dogfgt, dogfgt, dogfgt, driver_device, 0, ROT0, "Technos Japan", "Dog-Fight (Japan)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/dolphunk.c b/src/mame/drivers/dolphunk.c
index 8ee69d20042..8ee69d20042 100644
--- a/src/mess/drivers/dolphunk.c
+++ b/src/mame/drivers/dolphunk.c
diff --git a/src/mame/drivers/dominob.c b/src/mame/drivers/dominob.c
index 5809591a168..ff0f05a0730 100644
--- a/src/mame/drivers/dominob.c
+++ b/src/mame/drivers/dominob.c
@@ -82,7 +82,6 @@ public:
required_shared_ptr<UINT8> m_videoram;
required_shared_ptr<UINT8> m_spriteram;
required_shared_ptr<UINT8> m_bgram;
-// UINT8 * m_paletteram; // currently this uses generic palette handling
/* input-related */
//UINT8 m_paddle_select;
@@ -360,5 +359,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", GAME_SUPPORTS_SAVE )
-GAME( 1996, dominobv2,dominob, dominob, dominob, driver_device, 0, ROT0, "Wonwoo Systems", "Domino Block ver.2", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/dooyong.c b/src/mame/drivers/dooyong.c
index 60363b4321b..59954ee0d0d 100644
--- a/src/mame/drivers/dooyong.c
+++ b/src/mame/drivers/dooyong.c
@@ -2072,34 +2072,34 @@ 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)", GAME_SUPPORTS_SAVE )
-GAME( 1990, lastdaya, lastday, lastday, lastday, driver_device, 0, ROT270, "Dooyong", "The Last Day (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1990, ddaydoo, lastday, lastday, lastday, driver_device, 0, ROT270, "Dooyong", "Chulgyeok D-Day (Korea)", GAME_SUPPORTS_SAVE )
+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( 1991, gulfstrm, 0, gulfstrm, gulfstrm, driver_device, 0, ROT270, "Dooyong", "Gulf Storm (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1991, gulfstrma,gulfstrm, gulfstrm, gulfstrm, driver_device, 0, ROT270, "Dooyong", "Gulf Storm (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1991, gulfstrmb,gulfstrm, gulfstrm, gulfstrm, driver_device, 0, ROT270, "Dooyong", "Gulf Storm (set 3)", GAME_SUPPORTS_SAVE )
-GAME( 1991, gulfstrmm,gulfstrm, gulfstrm, gulfstrm, driver_device, 0, ROT270, "Dooyong (Media Shoji license)", "Gulf Storm (Media Shoji)", GAME_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, pollux, 0, pollux, pollux, driver_device, 0, ROT270, "Dooyong", "Pollux (set 1)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1991, polluxa, pollux, pollux, pollux, driver_device, 0, ROT270, "Dooyong", "Pollux (set 2)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1991, polluxa2, pollux, pollux, pollux, driver_device, 0, ROT270, "Dooyong", "Pollux (set 3)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) /* Original Dooyong Board distributed by TCH */
-GAME( 1991, polluxn, pollux, pollux, pollux, driver_device, 0, ROT270, "Dooyong (NTC license)", "Pollux (Japan, NTC license)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+GAME( 1991, pollux, 0, pollux, pollux, driver_device, 0, ROT270, "Dooyong", "Pollux (set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1991, polluxa, pollux, pollux, pollux, driver_device, 0, ROT270, "Dooyong", "Pollux (set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1991, polluxa2, pollux, pollux, pollux, driver_device, 0, ROT270, "Dooyong", "Pollux (set 3)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) /* Original Dooyong Board distributed by TCH */
+GAME( 1991, polluxn, pollux, pollux, pollux, driver_device, 0, ROT270, "Dooyong (NTC license)", "Pollux (Japan, NTC license)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
-GAME( 1992, flytiger, 0, flytiger, flytiger, driver_device, 0, ROT270, "Dooyong", "Flying Tiger (set 1)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1992, flytigera,flytiger, flytiger, flytiger, driver_device, 0, ROT270, "Dooyong", "Flying Tiger (set 2)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+GAME( 1992, flytiger, 0, flytiger, flytiger, driver_device, 0, ROT270, "Dooyong", "Flying Tiger (set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1992, flytigera,flytiger, flytiger, flytiger, driver_device, 0, ROT270, "Dooyong", "Flying Tiger (set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
-GAME( 1993, bluehawk, 0, bluehawk, bluehawk, driver_device, 0, ROT270, "Dooyong", "Blue Hawk", GAME_SUPPORTS_SAVE )
-GAME( 1993, bluehawkn,bluehawk, bluehawk, bluehawk, driver_device, 0, ROT270, "Dooyong (NTC license)", "Blue Hawk (NTC)", GAME_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, sadari, 0, primella, sadari, driver_device, 0, ROT0, "Dooyong (NTC license)", "Sadari", GAME_SUPPORTS_SAVE )
+GAME( 1993, sadari, 0, primella, sadari, driver_device, 0, ROT0, "Dooyong (NTC license)", "Sadari", MACHINE_SUPPORTS_SAVE )
-GAME( 1994, gundl94, 0, primella, primella, driver_device, 0, ROT0, "Dooyong", "Gun Dealer '94", GAME_SUPPORTS_SAVE )
-GAME( 1994, primella, gundl94, primella, primella, driver_device, 0, ROT0, "Dooyong (NTC license)", "Primella", GAME_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, superx, 0, superx, superx, driver_device, 0, ROT270, "Dooyong (NTC license)", "Super-X (NTC)", GAME_SUPPORTS_SAVE )
-GAME( 1994, superxm, superx, superx, superx, driver_device, 0, ROT270, "Dooyong (Mitchell license)", "Super-X (Mitchell)", GAME_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( 1995, rshark, 0, rshark, rshark, driver_device, 0, ROT270, "Dooyong", "R-Shark", GAME_SUPPORTS_SAVE )
+GAME( 1995, rshark, 0, rshark, rshark, driver_device, 0, ROT270, "Dooyong", "R-Shark", MACHINE_SUPPORTS_SAVE )
-GAME( 1996, popbingo, 0, popbingo, popbingo, driver_device, 0, ROT0, "Dooyong", "Pop Bingo", GAME_SUPPORTS_SAVE )
+GAME( 1996, popbingo, 0, popbingo, popbingo, driver_device, 0, ROT0, "Dooyong", "Pop Bingo", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/dorachan.c b/src/mame/drivers/dorachan.c
index 64c9bf5eba2..c6a0430f295 100644
--- a/src/mame/drivers/dorachan.c
+++ b/src/mame/drivers/dorachan.c
@@ -14,9 +14,6 @@ Todo:
#include "cpu/z80/z80.h"
-#define NUM_PENS (8)
-
-
class dorachan_state : public driver_device
{
public:
@@ -24,7 +21,9 @@ public:
: driver_device(mconfig, type, tag),
m_videoram(*this, "videoram"),
m_maincpu(*this, "maincpu"),
- m_screen(*this, "screen") { }
+ m_screen(*this, "screen"),
+ m_palette(*this, "palette"),
+ m_colors(*this, "colors") { }
/* memory pointers */
required_shared_ptr<UINT8> m_videoram;
@@ -41,6 +40,8 @@ public:
UINT32 screen_update_dorachan(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<screen_device> m_screen;
+ required_device<palette_device> m_palette;
+ required_region_ptr<UINT8> m_colors;
};
@@ -76,49 +77,29 @@ CUSTOM_INPUT_MEMBER(dorachan_state::dorachan_protection_r)
*
*************************************/
-static void get_pens(pen_t *pens)
-{
- offs_t i;
-
- for (i = 0; i < NUM_PENS; i++)
- {
- pens[i] = rgb_t(pal1bit(i >> 2), pal1bit(i >> 1), pal1bit(i >> 0));
- }
-}
-
-
UINT32 dorachan_state::screen_update_dorachan(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- pen_t pens[NUM_PENS];
- offs_t offs;
- const UINT8 *color_map_base;
-
- get_pens(pens);
-
- color_map_base = memregion("proms")->base();
-
- for (offs = 0; offs < m_videoram.bytes(); offs++)
+ for (offs_t offs = 0; offs < m_videoram.bytes(); offs++)
{
- int i;
UINT8 fore_color;
UINT8 x = offs >> 8 << 3;
UINT8 y = offs & 0xff;
- /* the need for +1 is extremely unusual, but definetely correct */
+ /* the need for +1 is extremely unusual, but definitely correct */
offs_t color_address = ((((offs << 2) & 0x03e0) | (offs >> 8)) + 1) & 0x03ff;
UINT8 data = m_videoram[offs];
if (m_flip_screen)
- fore_color = (color_map_base[color_address] >> 3) & 0x07;
+ fore_color = (m_colors[color_address] >> 3) & 0x07;
else
- fore_color = (color_map_base[color_address] >> 0) & 0x07;
+ fore_color = (m_colors[color_address] >> 0) & 0x07;
- for (i = 0; i < 8; i++)
+ for (int i = 0; i < 8; i++)
{
UINT8 color = (data & 0x01) ? fore_color : 0;
- bitmap.pix32(y, x) = pens[color];
+ bitmap.pix32(y, x) = m_palette->pen_color(color);
data = data >> 1;
x = x + 1;
@@ -238,14 +219,12 @@ void dorachan_state::machine_reset()
}
static MACHINE_CONFIG_START( dorachan, dorachan_state )
-
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", Z80, 2000000)
MCFG_CPU_PROGRAM_MAP(dorachan_map)
MCFG_CPU_IO_MAP(dorachan_io_map)
MCFG_CPU_PERIODIC_INT_DRIVER(dorachan_state, irq0_line_hold, 2*60)
-
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_SIZE(32*8, 32*8)
@@ -253,6 +232,7 @@ static MACHINE_CONFIG_START( dorachan, dorachan_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_UPDATE_DRIVER(dorachan_state, screen_update_dorachan)
+ MCFG_PALETTE_ADD_3BIT_BGR("palette")
MACHINE_CONFIG_END
@@ -279,7 +259,7 @@ ROM_START( dorachan )
ROM_LOAD( "d12.rom", 0x7000, 0x0400, CRC(275e5dc1) SHA1(ac07db4b428daa49a52c679de95ddedbea0076b9) )
ROM_LOAD( "d13.rom", 0x7400, 0x0400, CRC(24ccfcf9) SHA1(85e5052ee657f518b0509eb64e494bc3a74e651e) )
- ROM_REGION( 0x0400, "proms", 0 ) /* color map */
+ ROM_REGION( 0x0400, "colors", 0 )
ROM_LOAD( "d14.rom", 0x0000, 0x0400, CRC(c0d3ee84) SHA1(f2207c685ce8d5144a373c28f11d2cebf9518b65) )
ROM_END
@@ -291,4 +271,4 @@ ROM_END
*
*************************************/
-GAME( 1980, dorachan, 0, dorachan, dorachan, driver_device, 0, ROT270, "Craul Denshi", "Dorachan", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1980, dorachan, 0, dorachan, dorachan, driver_device, 0, ROT270, "Craul Denshi", "Dorachan", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/dotrikun.c b/src/mame/drivers/dotrikun.c
index ce2356d49da..7d1cc5b8f07 100644
--- a/src/mame/drivers/dotrikun.c
+++ b/src/mame/drivers/dotrikun.c
@@ -189,5 +189,5 @@ ROM_START( dotrikun2 )
ROM_END
-GAME( 1990, dotrikun, 0, dotrikun, dotrikun, driver_device, 0, ROT0, "Sega", "Dottori Kun (new version)", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW | GAME_IMPERFECT_GRAPHICS )
-GAME( 1990, dotrikun2,dotrikun, dotrikun, dotrikun, driver_device, 0, ROT0, "Sega", "Dottori Kun (old version)", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW | GAME_IMPERFECT_GRAPHICS )
+GAME( 1990, dotrikun, 0, dotrikun, dotrikun, driver_device, 0, ROT0, "Sega", "Dottori Kun (new version)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1990, dotrikun2,dotrikun, dotrikun, dotrikun, driver_device, 0, ROT0, "Sega", "Dottori Kun (old version)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW | MACHINE_IMPERFECT_GRAPHICS )
diff --git a/src/mess/drivers/dps1.c b/src/mame/drivers/dps1.c
index da93d6cfc39..bb3a5b21746 100644
--- a/src/mess/drivers/dps1.c
+++ b/src/mame/drivers/dps1.c
@@ -38,4 +38,4 @@ ROM_START( dps1 )
ROM_LOAD( "boot 1280", 0x000, 0x400, CRC(9c2e98fa) SHA1(78e6c9d00aa6e8f6c4d3c65984cfdf4e99434c66) ) // actually on the FDC-2 board
ROM_END
-COMP( 1979, dps1, 0, 0, dps1, dps1, driver_device, 0, "Ithaca InterSystems", "DPS-1", GAME_NOT_WORKING | GAME_NO_SOUND_HW )
+COMP( 1979, dps1, 0, 0, dps1, dps1, driver_device, 0, "Ithaca InterSystems", "DPS-1", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW )
diff --git a/src/mess/drivers/dragon.c b/src/mame/drivers/dragon.c
index 61375867d28..61375867d28 100644
--- a/src/mess/drivers/dragon.c
+++ b/src/mame/drivers/dragon.c
diff --git a/src/mame/drivers/dragrace.c b/src/mame/drivers/dragrace.c
index 2978c417832..fc5d0f6e5a7 100644
--- a/src/mame/drivers/dragrace.c
+++ b/src/mame/drivers/dragrace.c
@@ -378,4 +378,4 @@ ROM_START( dragrace )
ROM_END
-GAMEL(1977, dragrace, 0, dragrace, dragrace, driver_device, 0, 0, "Atari (Kee Games)", "Drag Race", GAME_SUPPORTS_SAVE, layout_dragrace )
+GAMEL(1977, dragrace, 0, dragrace, dragrace, driver_device, 0, 0, "Atari (Kee Games)", "Drag Race", MACHINE_SUPPORTS_SAVE, layout_dragrace )
diff --git a/src/mame/drivers/dreambal.c b/src/mame/drivers/dreambal.c
index 1a57133c4ef..2f860fc31f6 100644
--- a/src/mame/drivers/dreambal.c
+++ b/src/mame/drivers/dreambal.c
@@ -369,4 +369,4 @@ DRIVER_INIT_MEMBER(dreambal_state,dreambal)
}
// Ver 2.4 JPN 93.12.02
-GAME( 1993, dreambal, 0, dreambal, dreambal, dreambal_state, dreambal, ROT0, "NDK / Data East", "Dream Ball (Japan V2.4)", GAME_SUPPORTS_SAVE ) // copyright shows NDK, board is Data East, code seems Data East-like too
+GAME( 1993, dreambal, 0, dreambal, dreambal, dreambal_state, dreambal, ROT0, "NDK / Data East", "Dream Ball (Japan V2.4)", MACHINE_SUPPORTS_SAVE ) // copyright shows NDK, board is Data East, code seems Data East-like too
diff --git a/src/mame/drivers/dreamwld.c b/src/mame/drivers/dreamwld.c
index e1c1dff8fd3..06545535412 100644
--- a/src/mame/drivers/dreamwld.c
+++ b/src/mame/drivers/dreamwld.c
@@ -353,8 +353,8 @@ UINT32 dreamwld_state::screen_update_dreamwld(screen_device &screen, bitmap_ind1
int x0 = 0, x1 = 0;
UINT16* linebase;
-
-
+
+
/* layer 0 */
linebase = &m_lineram16[0x000];
@@ -367,7 +367,7 @@ UINT32 dreamwld_state::screen_update_dreamwld(screen_device &screen, bitmap_ind1
else
/* per-line rowscroll */
x0 = linebase[(i+32)&0xff];
- }
+ }
tmptilemap0->set_scrollx(
(i + layer0_scrolly) & 0x3ff,
@@ -408,14 +408,14 @@ UINT32 dreamwld_state::screen_update_dreamwld(screen_device &screen, bitmap_ind1
READ32_MEMBER(dreamwld_state::dreamwld_protdata_r)
{
- //static int count = 0;
+ //static int count = 0;
UINT8 *protdata = memregion("user1")->base();
size_t protsize = memregion("user1")->bytes();
UINT8 dat = protdata[(m_protindex++) % protsize];
- //printf("protection read %04x %02x\n", count, dat);
- //count++;
+ //printf("protection read %04x %02x\n", count, dat);
+ //count++;
// real hw returns 00 after end of data, I haven't checked if it's possible to overflow the read counter
// and read out the internal rom.
@@ -1247,9 +1247,9 @@ 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)", GAME_SUPPORTS_SAVE )
-GAME( 1997, baryona, baryon, baryon, baryon, driver_device, 0, ROT270, "SemiCom / Tirano", "Baryon - Future Assault (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1998, cutefght, 0, dreamwld, cutefght, driver_device, 0, ROT0, "SemiCom", "Cute Fighter", GAME_SUPPORTS_SAVE )
-GAME( 1999, rolcrush, 0, baryon, rolcrush, driver_device, 0, ROT0, "Trust / SemiCom", "Rolling Crush (version 1.07.E - 1999/02/11)", GAME_SUPPORTS_SAVE )
-GAME( 1999, gaialast, 0, baryon, gaialast, driver_device, 0, ROT0, "SemiCom / XESS", "Gaia - The Last Choice of Earth", GAME_SUPPORTS_SAVE )
-GAME( 2000, dreamwld, 0, dreamwld, dreamwld, driver_device, 0, ROT0, "SemiCom", "Dream World", GAME_SUPPORTS_SAVE )
+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, "Trust / SemiCom", "Rolling Crush (version 1.07.E - 1999/02/11)", 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 )
diff --git a/src/mame/drivers/drgnmst.c b/src/mame/drivers/drgnmst.c
index 27c6e53a790..357477e03c4 100644
--- a/src/mame/drivers/drgnmst.c
+++ b/src/mame/drivers/drgnmst.c
@@ -546,4 +546,4 @@ DRIVER_INIT_MEMBER(drgnmst_state,drgnmst)
}
-GAME( 1994, drgnmst, 0, drgnmst, drgnmst, drgnmst_state, drgnmst, ROT0, "Unico", "Dragon Master", GAME_SUPPORTS_SAVE )
+GAME( 1994, drgnmst, 0, drgnmst, drgnmst, drgnmst_state, drgnmst, ROT0, "Unico", "Dragon Master", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/dribling.c b/src/mame/drivers/dribling.c
index edfff9b43dd..9b900666ad3 100644
--- a/src/mame/drivers/dribling.c
+++ b/src/mame/drivers/dribling.c
@@ -369,6 +369,6 @@ ROM_END
*
*************************************/
-GAME( 1983, dribling, 0, dribling, dribling, driver_device, 0, ROT0, "Model Racing", "Dribbling", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1983, driblingo, dribling, dribling, dribling, driver_device, 0, ROT0, "Model Racing (Olympia license)", "Dribbling (Olympia)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1983, driblingbr, dribling, dribling, dribling, driver_device, 0, ROT0, "bootleg (Videomac)", "Dribbling (bootleg, Brazil)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/drmicro.c b/src/mame/drivers/drmicro.c
index 361c283df98..7181682c3ec 100644
--- a/src/mame/drivers/drmicro.c
+++ b/src/mame/drivers/drmicro.c
@@ -319,4 +319,4 @@ ROM_END
*
*************************************/
-GAME( 1983, drmicro, 0, drmicro, drmicro, driver_device, 0, ROT270, "Sanritsu", "Dr. Micro", GAME_SUPPORTS_SAVE )
+GAME( 1983, drmicro, 0, drmicro, drmicro, driver_device, 0, ROT270, "Sanritsu", "Dr. Micro", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/drtomy.c b/src/mame/drivers/drtomy.c
index 9dc220898c6..1f86b1df772 100644
--- a/src/mame/drivers/drtomy.c
+++ b/src/mame/drivers/drtomy.c
@@ -30,7 +30,6 @@ public:
required_shared_ptr<UINT16> m_videoram_fg;
required_shared_ptr<UINT16> m_videoram_bg;
required_shared_ptr<UINT16> m_spriteram;
-// UINT16 * m_paletteram16; // currently this uses generic palette handling
/* video-related */
tilemap_t *m_tilemap_bg;
@@ -175,7 +174,7 @@ static ADDRESS_MAP_START( drtomy_map, AS_PROGRAM, 16, drtomy_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM /* ROM */
AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(drtomy_vram_fg_w) AM_SHARE("videorafg") /* Video RAM FG */
AM_RANGE(0x101000, 0x101fff) AM_RAM_WRITE(drtomy_vram_bg_w) AM_SHARE("videorabg") /* Video RAM BG */
- AM_RANGE(0x200000, 0x2007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* Palette */
+ AM_RANGE(0x200000, 0x2007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x440000, 0x440fff) AM_RAM AM_SHARE("spriteram") /* Sprite RAM */
AM_RANGE(0x700000, 0x700001) AM_READ_PORT("DSW1")
AM_RANGE(0x700002, 0x700003) AM_READ_PORT("DSW2")
@@ -354,4 +353,4 @@ ROM_START( drtomy )
ROM_END
-GAME( 1993, drtomy, 0, drtomy, drtomy, driver_device, 0, ROT0, "Playmark", "Dr. Tomy", GAME_SUPPORTS_SAVE )
+GAME( 1993, drtomy, 0, drtomy, drtomy, driver_device, 0, ROT0, "Playmark", "Dr. Tomy", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/drw80pkr.c b/src/mame/drivers/drw80pkr.c
index dd4fc381947..703e51ec6b4 100644
--- a/src/mame/drivers/drw80pkr.c
+++ b/src/mame/drivers/drw80pkr.c
@@ -533,5 +533,5 @@ ROM_END
*************************/
/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS */
-GAME( 1982, drw80pkr, 0, drw80pkr, drw80pkr, drw80pkr_state, drw80pkr, ROT0, "IGT - International Game Technology", "Draw 80 Poker", GAME_NOT_WORKING )
-GAME( 1983, drw80pk2, 0, drw80pkr, drw80pkr, drw80pkr_state, drw80pkr, ROT0, "IGT - International Game Technology", "Draw 80 Poker - Minn", GAME_NOT_WORKING )
+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/mess/drivers/dsb46.c b/src/mame/drivers/dsb46.c
index 15dda5f28ee..a0066e94d80 100644
--- a/src/mess/drivers/dsb46.c
+++ b/src/mame/drivers/dsb46.c
@@ -119,4 +119,4 @@ ROM_START( dsb46 )
ROM_LOAD( "ades.bin", 0x0000, 0x4000, CRC(d374abf0) SHA1(331f51a2bb81375aeffbe63c1ebc1d7cd779b9c3) )
ROM_END
-COMP( 198?, dsb46, 0, 0, dsb46, dsb46, dsb46_state, dsb46, "Davidge", "DSB-4/6", GAME_NOT_WORKING | GAME_NO_SOUND_HW )
+COMP( 198?, dsb46, 0, 0, dsb46, dsb46, dsb46_state, dsb46, "Davidge", "DSB-4/6", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW )
diff --git a/src/mess/drivers/dual68.c b/src/mame/drivers/dual68.c
index 2f96ce95618..d778d0c4f6a 100644
--- a/src/mess/drivers/dual68.c
+++ b/src/mame/drivers/dual68.c
@@ -112,4 +112,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1981, dual68, 0, 0, dual68, dual68, driver_device, 0, "Dual Systems Corporation", "Dual Systems 68000", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/dunhuang.c b/src/mame/drivers/dunhuang.c
index 8be6981049e..0ff0abfee70 100644
--- a/src/mame/drivers/dunhuang.c
+++ b/src/mame/drivers/dunhuang.c
@@ -871,4 +871,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", GAME_SUPPORTS_SAVE )
+GAME( 1995, dunhuang, 0, dunhuang, dunhuang, driver_device, 0, ROT0, "Spirit", "Mahjong Dunhuang", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/dvk_kcgd.c b/src/mame/drivers/dvk_kcgd.c
new file mode 100644
index 00000000000..2903a402680
--- /dev/null
+++ b/src/mame/drivers/dvk_kcgd.c
@@ -0,0 +1,384 @@
+/***************************************************************************
+
+ KCGD (Kontroller Cvetnogo Graficheskogo Displeya = Colour Graphics
+ Display Controller), a replacement for KSM (dvk_ksm.c) in later
+ models of DVK desktops.
+
+ MPI (Q-Bus clone) board. Interfaces with MS7004 (DEC LK201 workalike)
+ keyboard, mouse, and monochrome or color CRT.
+
+ To do:
+ - K1801VM2 CPU core (interrupts and EVNT pin, full EIS set, other insns)
+ - Everything else :-)
+
+****************************************************************************/
+
+#include "emu.h"
+
+#include "bus/rs232/rs232.h"
+#include "cpu/t11/t11.h"
+#include "machine/clock.h"
+#include "machine/ms7004.h"
+
+#define KCGD_TOTAL_HORZ 1000 // XXX verify
+#define KCGD_DISP_HORZ 800
+#define KCGD_HORZ_START 200 // XXX verify
+
+#define KCGD_TOTAL_VERT 600 // XXX verify
+#define KCGD_DISP_VERT 480
+#define KCGD_VERT_START 100 // XXX verify
+
+#define KCGD_STATUS_PAGE 0
+#define KCGD_STATUS_INTERLACE 1
+#define KCGD_STATUS_TIMER_INT 5
+#define KCGD_STATUS_MODE_INT 6
+#define KCGD_STATUS_MODE_LAST 7
+#define KCGD_STATUS_TIMER_VAL 15
+
+#define KCGD_PAGE_0 015574
+#define KCGD_PAGE_1 005574
+
+#define VERBOSE_DBG 1 /* general debug messages */
+
+#define DBG_LOG(N,M,A) \
+ do { \
+ if(VERBOSE_DBG>=N) \
+ { \
+ if( M ) \
+ logerror("%11.6f at %s: %-24s",machine().time().as_double(),machine().describe_context(),(char*)M ); \
+ logerror A; \
+ } \
+ } while (0)
+
+
+class kcgd_state : public driver_device
+{
+public:
+ kcgd_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
+// m_ms7004(*this, "ms7004"),
+ m_palette(*this, "palette"),
+ m_screen(*this, "screen")
+ { }
+
+ virtual void machine_reset();
+ virtual void video_start();
+ UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ TIMER_DEVICE_CALLBACK_MEMBER(scanline_callback);
+ DECLARE_PALETTE_INIT(kcgd);
+
+ enum
+ {
+ TIMER_ID_VSYNC_ON,
+ TIMER_ID_VSYNC_OFF,
+ TIMER_ID_500HZ
+ };
+ virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
+
+ DECLARE_WRITE_LINE_MEMBER(write_keyboard_clock);
+ DECLARE_WRITE_LINE_MEMBER(write_line_clock);
+
+ DECLARE_READ16_MEMBER(vram_addr_r);
+ DECLARE_READ16_MEMBER(vram_data_r);
+ DECLARE_READ16_MEMBER(vram_mmap_r);
+ DECLARE_WRITE16_MEMBER(vram_addr_w);
+ DECLARE_WRITE16_MEMBER(vram_data_w);
+ DECLARE_WRITE16_MEMBER(vram_mmap_w);
+ DECLARE_READ16_MEMBER(status_r);
+ DECLARE_WRITE16_MEMBER(status_w);
+ DECLARE_READ8_MEMBER(palette_index_r);
+ DECLARE_READ8_MEMBER(palette_data_r);
+ DECLARE_WRITE8_MEMBER(palette_index_w);
+ DECLARE_WRITE8_MEMBER(palette_data_w);
+
+ emu_timer *m_vsync_on_timer;
+ emu_timer *m_vsync_off_timer;
+ emu_timer *m_500hz_timer;
+
+private:
+ void draw_scanline(UINT16 *p, UINT16 offset);
+ rectangle m_tmpclip;
+ bitmap_ind16 m_tmpbmp;
+
+ struct {
+ UINT16 status; // 167770
+ UINT8 control; // 167772
+ int palette_index, vram_addr;
+ UINT8 palette[16];
+ } m_video;
+ UINT32 *m_videoram;
+
+protected:
+ required_device<cpu_device> m_maincpu;
+// required_device<ms7004_device> m_ms7004;
+ required_device<palette_device> m_palette;
+ required_device<screen_device> m_screen;
+};
+
+static ADDRESS_MAP_START( kcgd_mem, AS_PROGRAM, 16, kcgd_state )
+ ADDRESS_MAP_UNMAP_HIGH
+ AM_RANGE (0000000, 0077777) AM_READWRITE(vram_mmap_r, vram_mmap_w)
+ AM_RANGE (0100000, 0157777) AM_ROM
+ AM_RANGE (0160000, 0160001) AM_MIRROR(03774) AM_READWRITE(vram_addr_r, vram_addr_w)
+ AM_RANGE (0160002, 0160003) AM_MIRROR(03774) AM_READWRITE(vram_data_r, vram_data_w)
+ AM_RANGE (0167770, 0167771) AM_READWRITE(status_r, status_w)
+ AM_RANGE (0167772, 0167773) AM_READWRITE8(palette_index_r, palette_index_w, 0x00ff) // reads always return 0
+ AM_RANGE (0167772, 0167773) AM_READWRITE8(palette_data_r, palette_data_w, 0xff00)
+// AM_RANGE (0176560, 0176567) AM_RAM // USART2 -- host
+// AM_RANGE (0177560, 0177567) AM_RAM // USART3 -- keyboard
+ADDRESS_MAP_END
+
+void kcgd_state::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
+{
+ switch (id)
+ {
+/*
+ case TIMER_ID_VSYNC_ON:
+ m_maincpu->set_input_line(INPUT_LINE_EVNT, ASSERT_LINE);
+ break;
+
+ case TIMER_ID_VSYNC_OFF:
+ m_maincpu->set_input_line(INPUT_LINE_EVNT, CLEAR_LINE);
+ break;
+*/
+ case TIMER_ID_500HZ:
+ m_video.status ^= (1 << KCGD_STATUS_TIMER_VAL);
+ break;
+ }
+}
+
+void kcgd_state::machine_reset()
+{
+ memset(&m_video, 0, sizeof(m_video));
+}
+
+void kcgd_state::video_start()
+{
+// screen_device *screen = machine().device<screen_device>("screen");
+
+ // 64 kwords, word size is 17 bits
+ m_videoram = auto_alloc_array(machine(), UINT32, 65536);
+
+ m_tmpclip = rectangle(0, KCGD_DISP_HORZ-1, 0, KCGD_DISP_VERT-1);
+ m_tmpbmp.allocate(KCGD_DISP_HORZ, KCGD_DISP_VERT);
+/*
+ m_vsync_on_timer = timer_alloc(TIMER_ID_VSYNC_ON);
+ m_vsync_on_timer->adjust(screen->time_until_pos(0, 0), 0, screen->frame_period());
+
+ m_vsync_off_timer = timer_alloc(TIMER_ID_VSYNC_OFF);
+ m_vsync_off_timer->adjust(screen->time_until_pos(16, 0), 0, screen->frame_period());
+*/
+ m_500hz_timer = timer_alloc(TIMER_ID_500HZ);
+ m_500hz_timer->adjust(attotime::from_hz(500), 0, attotime::from_hz(500));
+}
+
+PALETTE_INIT_MEMBER(kcgd_state, kcgd)
+{
+ for (int i = 0; i < 16; i++)
+ {
+ palette.set_pen_color(i, i?i:255, i?i:255, i?i:255);
+ }
+}
+
+/*
+ VRAM is 128K and is word-addressable, so address fits into 16 bits.
+ Low 32K of VRAM are not used to store pixel data -- XXX.
+*/
+WRITE16_MEMBER(kcgd_state::vram_addr_w)
+{
+ DBG_LOG(3,"VRAM WA", ("%06o\n", data));
+ m_video.vram_addr = data;
+}
+
+READ16_MEMBER(kcgd_state::vram_addr_r)
+{
+ DBG_LOG(3,"VRAM RA", ("\n"));
+ return m_video.vram_addr;
+}
+
+WRITE16_MEMBER(kcgd_state::vram_data_w)
+{
+ DBG_LOG(1,"VRAM W2", ("%06o <- %04XH\n", m_video.vram_addr, data));
+ m_videoram[m_video.vram_addr] = data | (BIT(m_video.control, 7) << 16);
+}
+
+READ16_MEMBER(kcgd_state::vram_data_r)
+{
+ DBG_LOG(2,"VRAM R2", ("%06o\n", m_video.vram_addr));
+ m_video.status = (m_video.status & 0xff7f) | (BIT(m_videoram[m_video.vram_addr], 16) << 7);
+ return (UINT16) (m_videoram[m_video.vram_addr] & 0xffff);
+}
+
+WRITE16_MEMBER(kcgd_state::vram_mmap_w)
+{
+ DBG_LOG(3,"VRAM W1", ("%06o <- %04XH\n", offset, data));
+ m_videoram[offset] = data | (BIT(m_video.control, 7) << 16);
+}
+
+READ16_MEMBER(kcgd_state::vram_mmap_r)
+{
+ DBG_LOG(3,"VRAM R1", ("%06o\n", offset));
+ return (UINT16) (m_videoram[offset] & 0xffff);
+}
+
+WRITE16_MEMBER(kcgd_state::status_w)
+{
+ DBG_LOG(1,"Status W", ("data %04XH (useful %02XH)\n", data, data & 0x63));
+ // bits 7 and 15 are read-only
+ m_video.status = (m_video.status & 0x8080) | (data & 0x7f7f);
+}
+
+READ16_MEMBER(kcgd_state::status_r)
+{
+ UINT16 data = m_video.status ^ (BIT(m_video.control, 6) << 7);
+ DBG_LOG(1,"Status R", ("data %04X index %d\n", data, m_video.palette_index));
+ return data;
+}
+
+WRITE8_MEMBER(kcgd_state::palette_index_w)
+{
+ m_video.control = data;
+ m_video.palette_index = ((data >> 2) & 15);
+ DBG_LOG(1,"Palette index, Control W", ("data %02XH index %d\n", data, m_video.palette_index));
+}
+
+WRITE8_MEMBER(kcgd_state::palette_data_w)
+{
+ DBG_LOG(1,"Palette data W", ("data %02XH index %d\n", data, m_video.palette_index));
+ m_video.palette[m_video.palette_index] = data;
+ m_palette->set_pen_color(m_video.palette_index,
+ 85*(data & 3), 85*((data >> 2) & 3), 85*((data >> 4) & 3));
+}
+
+READ8_MEMBER(kcgd_state::palette_index_r)
+{
+ return 0;
+}
+
+READ8_MEMBER(kcgd_state::palette_data_r)
+{
+ DBG_LOG(1,"Palette data R", ("index %d\n", m_video.palette_index));
+ return m_video.palette[m_video.palette_index];
+}
+
+/*
+ Raster sizes are:
+ - 800(400)x480 in hires(lores) 60 Hz interlaced mode
+ - 800(400)x240 in hires(lores) 30 Hz progressive mode
+
+ Video memory is 17 bits wide (bit 16 indicates hi/lo res mode for each word,
+ host writes it separately (via bit 7 in 167772).
+*/
+
+void kcgd_state::draw_scanline(UINT16 *p, UINT16 offset)
+{
+ int i;
+
+ for ( i = 0; i < 100; i++ )
+ {
+ UINT32 data = m_videoram[ offset++ ];
+ if (BIT(data, 16)) {
+ *p = ( data >> 12) & 0x0F; p++;
+ *p = ( data >> 12) & 0x0F; p++;
+ *p = ( data >> 8 ) & 0x0F; p++;
+ *p = ( data >> 8 ) & 0x0F; p++;
+ *p = ( data >> 4 ) & 0x0F; p++;
+ *p = ( data >> 4 ) & 0x0F; p++;
+ *p = data & 0x0F; p++;
+ *p = data & 0x0F; p++;
+ } else {
+ *p = 5*(( data >> 14) & 0x03); p++;
+ *p = 5*(( data >> 12) & 0x03); p++;
+ *p = 5*(( data >> 10) & 0x03); p++;
+ *p = 5*(( data >> 8 ) & 0x03); p++;
+ *p = 5*(( data >> 6 ) & 0x03); p++;
+ *p = 5*(( data >> 4 ) & 0x03); p++;
+ *p = 5*(( data >> 2 ) & 0x03); p++;
+ *p = 5*( data & 0x03); p++;
+ }
+ }
+}
+
+TIMER_DEVICE_CALLBACK_MEMBER(kcgd_state::scanline_callback)
+{
+ UINT16 y = m_screen->vpos(), offset;
+
+ if (y < KCGD_VERT_START) return;
+ y -= KCGD_VERT_START;
+ if (y >= KCGD_DISP_VERT) return;
+
+ offset = BIT(m_video.status, KCGD_STATUS_PAGE) ? (KCGD_PAGE_1 >> 1) : (KCGD_PAGE_0 >> 1);
+
+ DBG_LOG(2,"scanline_cb", ("frame %" I64FMT "d y %.3d page %d offset %04X *offset %04X\n",
+ m_screen->frame_number(), BIT(m_video.status, KCGD_STATUS_PAGE),
+ y, offset + y, m_videoram[offset + y]));
+
+ draw_scanline(&m_tmpbmp.pix16(y), m_videoram[offset + (KCGD_DISP_VERT-1) - y]);
+}
+
+UINT32 kcgd_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+{
+ copybitmap(bitmap, m_tmpbmp, 0, 0, KCGD_HORZ_START, KCGD_VERT_START, cliprect);
+ return 0;
+}
+
+/* F4 Character Displayer */
+static const gfx_layout kcgd_charlayout =
+{
+ 8, 10, /* 8x10 pixels */
+ 256, /* 256 characters */
+ 1, /* 1 bits per pixel */
+ { 0 }, /* no bitplanes */
+ /* x offsets */
+ { 0, 1, 2, 3, 4, 5, 6, 7 },
+ /* y offsets */
+ { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 8*8, 9*8 },
+ 8*10 /* every char takes 10 bytes */
+};
+
+static GFXDECODE_START( kcgd )
+ GFXDECODE_ENTRY("maincpu", 0112236, kcgd_charlayout, 0, 1)
+GFXDECODE_END
+
+static MACHINE_CONFIG_START( kcgd, kcgd_state )
+ MCFG_CPU_ADD("maincpu", K1801VM2, XTAL_30_8MHz/4)
+ MCFG_CPU_PROGRAM_MAP(kcgd_mem)
+ MCFG_T11_INITIAL_MODE(0100000)
+
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("scantimer", kcgd_state, scanline_callback, attotime::from_hz(50*28*11)) // XXX verify
+ MCFG_TIMER_START_DELAY(attotime::from_hz(XTAL_30_8MHz/KCGD_HORZ_START))
+
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_UPDATE_DRIVER(kcgd_state, screen_update)
+ MCFG_SCREEN_RAW_PARAMS(XTAL_30_8MHz, KCGD_TOTAL_HORZ, KCGD_HORZ_START,
+ KCGD_HORZ_START+KCGD_DISP_HORZ, KCGD_TOTAL_VERT, KCGD_VERT_START,
+ KCGD_VERT_START+KCGD_DISP_VERT);
+
+ MCFG_SCREEN_PALETTE("palette")
+ MCFG_PALETTE_ADD("palette", 16)
+ MCFG_PALETTE_INIT_OWNER(kcgd_state, kcgd)
+
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", kcgd)
+#if 0
+ MCFG_DEVICE_ADD("ms7004", MS7004, 0)
+ MCFG_MS7004_TX_HANDLER(DEVWRITELINE("i8251kbd", i8251_device, write_rxd))
+
+ MCFG_DEVICE_ADD("keyboard_clock", CLOCK, 4800*16)
+ MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(kcgd_state, write_keyboard_clock))
+#endif
+MACHINE_CONFIG_END
+
+ROM_START( dvk_kcgd )
+ ROM_REGION16_BE(0x100000,"maincpu", ROMREGION_ERASE00)
+ ROM_DEFAULT_BIOS("181")
+ ROM_SYSTEM_BIOS(0, "181", "mask 181")
+ ROMX_LOAD("kr1801re2-181.bin", 0100000, 020000, CRC(acac124f) SHA1(412c3eb71bece6f791fc5a9d707cf4692fd0b45b), ROM_BIOS(1))
+ ROM_SYSTEM_BIOS(1, "182", "mask 182")
+ ROMX_LOAD("kr1801re2-182.bin", 0100000, 020000, CRC(3ca2921a) SHA1(389b30c40ed7e41dae71d58c7bff630359a48153), ROM_BIOS(2))
+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 )
diff --git a/src/mess/drivers/dvk_ksm.c b/src/mame/drivers/dvk_ksm.c
index 118fdef57e7..b85d52f4cfd 100644
--- a/src/mess/drivers/dvk_ksm.c
+++ b/src/mame/drivers/dvk_ksm.c
@@ -34,11 +34,12 @@
switching between them via SI/SO. N2 charset has uppercase Cyrillic
chars in place of lowercase Latin ones.
- F1 toggles Hold Screen mode.
+ ESC toggles Cyrillic/Latin mode (depends in the host's terminal driver)
+ F1 toggles Hold Screen mode (also depends in the host's terminal driver)
F9 resets terminal (clears memory).
F20 toggles on/off-line mode.
- Terminfo description would be something like
+ Terminfo description:
ksm|DVK KSM,
am, bw, dch1=\EP, ich1=\EQ,
@@ -46,9 +47,8 @@ ksm|DVK KSM,
use=vt52,
To do:
- - make Caps Lock work
- verify if pixel stretching is done by hw
- - verify details of hw revisions
+ - verify details of hw revisions (memory map, DIP presence...)
- baud rate selection (missing feature in bitbanger)
****************************************************************************/
@@ -140,7 +140,7 @@ protected:
static ADDRESS_MAP_START( ksm_mem, AS_PROGRAM, 8, ksm_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE (0x0000, 0x0fff) AM_ROM
- AM_RANGE (0x2000, 0x21ff) AM_RAM
+ AM_RANGE (0x2000, 0x20ff) AM_RAM AM_MIRROR(0x0700)
AM_RANGE (0xc000, 0xffff) AM_RAM AM_SHARE("videoram")
ADDRESS_MAP_END
@@ -408,11 +408,11 @@ ROM_START( dvk_ksm01 )
ROM_LOAD( "ksm_05_rom1_d33.bin", 0x0800, 0x0800, CRC(5b29bcd2) SHA1(1f4f82c2f88f1e8615ec02076559dc606497e654))
ROM_REGION(0x0800, "chargen", ROMREGION_ERASE00)
- ROM_LOAD("ksm_03_cg_d31.bin", 0x0000, 0x0800, CRC(98853aa7) SHA1(c7871a96f135db05c3c8d718fbdf1728e22e72b7))
+ ROM_LOAD("ksm_03_cg_d31.bin", 0x0000, 0x0800, CRC(6a8477e2) SHA1(c7871a96f135db05c3c8d718fbdf1728e22e72b7))
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)
-COMP( 198?, dvk_ksm01,0 , 0, ksm, ksm, driver_device, 0, "USSR", "DVK KSM-01", 0)
+COMP( 198?, dvk_ksm01,dvk_ksm,0, ksm, ksm, driver_device, 0, "USSR", "DVK KSM-01", 0)
diff --git a/src/mame/drivers/dwarfd.c b/src/mame/drivers/dwarfd.c
index 51939381949..0d9a11f3770 100644
--- a/src/mame/drivers/dwarfd.c
+++ b/src/mame/drivers/dwarfd.c
@@ -1045,9 +1045,9 @@ DRIVER_INIT_MEMBER(dwarfd_state,qc)
}
/* YEAR NAME PARENT MACHINE INPUT INIT ORENTATION, COMPANY FULLNAME FLAGS */
-GAME( 1981, dwarfd, 0, dwarfd, dwarfd, dwarfd_state, dwarfd, 0, "Electro-Sport", "Draw Poker III / Dwarfs Den (Dwarf Gfx)", GAME_IMPERFECT_GRAPHICS | GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
-GAME( 1981, dwarfda, dwarfd, dwarfd, dwarfd, dwarfd_state, dwarfd, 0, "Electro-Sport", "Draw Poker III / Dwarfs Den (Card Gfx)", GAME_IMPERFECT_GRAPHICS | GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
-GAME( 1983, quarterh, 0, dwarfd, quarterh, dwarfd_state, dwarfd, 0, "Electro-Sport", "Quarter Horse (set 1, Pioneer PR-8210)", GAME_IMPERFECT_GRAPHICS | GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
-GAME( 1983, quarterha, quarterh, dwarfd, quarterh, dwarfd_state, dwarfd, 0, "Electro-Sport", "Quarter Horse (set 2, Pioneer PR-8210)", GAME_IMPERFECT_GRAPHICS | GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
-GAME( 1983, quarterhb, quarterh, dwarfd, quarterh, dwarfd_state, dwarfd, 0, "Electro-Sport", "Quarter Horse (set 3, Pioneer LD-V2000)", GAME_IMPERFECT_GRAPHICS | GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
-GAME( 1995, qc, 0, qc, quarterh, dwarfd_state, qc, 0, "ArJay Exports/Prestige Games", "Quarter Horse Classic", GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
+GAME( 1981, dwarfd, 0, dwarfd, dwarfd, dwarfd_state, dwarfd, 0, "Electro-Sport", "Draw Poker III / Dwarfs Den (Dwarf Gfx)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_WRONG_COLORS | 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_WRONG_COLORS | 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 )
diff --git a/src/mame/drivers/dynadice.c b/src/mame/drivers/dynadice.c
index c90d1961906..f1cb6167279 100644
--- a/src/mame/drivers/dynadice.c
+++ b/src/mame/drivers/dynadice.c
@@ -52,7 +52,6 @@ public:
/* memory pointers */
required_shared_ptr<UINT8> m_videoram;
// UINT8 * m_nvram; // currently this uses generic nvram handling
-// UINT8 * m_paletteram; // currently this uses generic palette handling
/* video-related */
tilemap_t *m_bg_tilemap;
@@ -68,7 +67,6 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- DECLARE_PALETTE_INIT(dynadice);
UINT32 screen_update_dynadice(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<gfxdecode_device> m_gfxdecode;
@@ -227,13 +225,6 @@ UINT32 dynadice_state::screen_update_dynadice(screen_device &screen, bitmap_ind1
return 0;
}
-PALETTE_INIT_MEMBER(dynadice_state, dynadice)
-{
- int i;
- for(i = 0; i < 8; i++)
- palette.set_pen_color(i, pal1bit(i >> 1), pal1bit(i >> 2), pal1bit(i >> 0));
-}
-
void dynadice_state::machine_start()
{
save_item(NAME(m_ay_data));
@@ -268,8 +259,7 @@ static MACHINE_CONFIG_START( dynadice, dynadice_state )
MCFG_SCREEN_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", "palette", dynadice)
- MCFG_PALETTE_ADD("palette", 8)
- MCFG_PALETTE_INIT_OWNER(dynadice_state, dynadice)
+ MCFG_PALETTE_ADD_3BIT_BRG("palette")
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -312,4 +302,4 @@ DRIVER_INIT_MEMBER(dynadice_state,dynadice)
gfx2[(i << 3) + j] = (gfx1[i] & (0x80 >> j)) ? (usr1[i] & 7) : (usr1[i] >> 4);
}
-GAME( 19??, dynadice, 0, dynadice, dynadice, dynadice_state, dynadice, ROT90, "<unknown>", "Dynamic Dice", GAME_SUPPORTS_SAVE )
+GAME( 19??, dynadice, 0, dynadice, dynadice, dynadice_state, dynadice, ROT90, "<unknown>", "Dynamic Dice", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/dynax.c b/src/mame/drivers/dynax.c
index 4d31b8125ea..bdd48788764 100644
--- a/src/mame/drivers/dynax.c
+++ b/src/mame/drivers/dynax.c
@@ -4441,7 +4441,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_START( hnoridur, dynax_state )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu",Z80,22000000 / 4) /* 5.5MHz */
+ MCFG_CPU_ADD("maincpu",Z80,XTAL_22MHz / 4) /* 5.5MHz */
MCFG_CPU_PROGRAM_MAP(hnoridur_mem_map)
MCFG_CPU_IO_MAP(hnoridur_io_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", dynax_state, sprtmtch_vblank_interrupt) /* IM 0 needs an opcode on the data bus */
@@ -4467,14 +4467,14 @@ static MACHINE_CONFIG_START( hnoridur, dynax_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
- MCFG_SOUND_ADD("aysnd", AY8910, 22000000 / 16)
+ MCFG_SOUND_ADD("aysnd", AY8910, XTAL_22MHz / 16)
MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW0"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20)
- MCFG_SOUND_ADD("ym2413", YM2413, 3579545)
+ MCFG_SOUND_ADD("ym2413", YM2413, XTAL_3_579545MHz)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
- MCFG_SOUND_ADD("msm", MSM5205, 384000)
+ 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_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
@@ -4811,7 +4811,7 @@ static MACHINE_CONFIG_DERIVED( mjelctrn, hnoridur )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( mjembase, hnoridur )
- MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_MODIFY("maincpu") // TMPZ84015
MCFG_CPU_PROGRAM_MAP(nanajign_mem_map)
MCFG_CPU_IO_MAP(mjembase_io_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", dynax_state, mjelctrn_vblank_interrupt) /* IM 2 needs a vector on the data bus */
@@ -5456,7 +5456,7 @@ DRIVER_INIT_MEMBER(dynax_state,blktouch)
}
}
-
+
DRIVER_INIT_MEMBER(dynax_state, maya_common)
{
@@ -6267,12 +6267,42 @@ ROM_END
/***************************************************************************
-Mahjong Electromagnetic Base
-DYNAX D3803248L1
+Mahjong Electromagnetic Base (Dynax, 1989)
-AY-3-8912?, MSM5205?
-HD46505SP?, Dynax blitter? (rest of the chips are scratched)
-4 x DSW8, 28-way connector
+PCB Layout
+----------
+
+D3803248L1
+sticker: M6100524A
+ |--------------------------------------|
+ | TMS4461 17G032 3804 |
+|-| TMS4461 3805 |
+| TMS4461 TMS4461 3801 3806 |
+| TMS4461 TMS4461 3802 3807 |
+| 3803 3808 |
+| PAL 3809 |
+| 6845SP 381A |
+| 2018 PAL |
+| DSW4 384KHz 2018 DSW1 0.1UF|
+| LM358 M5205 |
+| LM358 YM2413 CPU TC5563|
+| MB3712 AY-3-8912 |
+|-|VOL DSW3 DSW2 |
+ |VOL 3.579545MHz 22MHz 3815 |
+ |--------------------------------------|
+Notes:
+ CPU - surface scratched, clock input 11MHz [22/2], looks like TMPZ84015
+ AY-3-8912 - clock 1.375MHz [22/16]
+ YM2413 - clock 3.579545MHz
+ M5205 - clock 384kHz
+ 6845SP - clock 2.75MHz [22/8], VSync pin - 60.1188Hz, HSync pin - 15.8112kHz
+ TMS4461 - 1Mx4-bit DRAM
+ 2018 - 2kx8-bit SRAM
+ TC5563 - 8kx8-bit SRAM
+ 17G032 - custom Dynax GFX chip
+ DSW1-4 - 8-position DIP switches
+ 0.1UF - 5.5v 0.1UF supercap
+ MB3712 - Fujitsu MB3712 AMP
***************************************************************************/
@@ -7372,50 +7402,50 @@ ROM_END
***************************************************************************/
-GAME( 1988, janyuki, 0, janyuki, janyuki, driver_device, 0, ROT0, "Dynax", "Jong Yu Ki (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1989, hnkochou, 0, hanamai, hnkochou, driver_device, 0, ROT180, "Dynax", "Hana Kochou (Japan, Bet)", GAME_SUPPORTS_SAVE )
-GAME( 1988, hanamai, hnkochou, hanamai, hanamai, driver_device, 0, ROT180, "Dynax", "Hana no Mai (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1990, hjingi, 0, hjingi, hjingi, driver_device, 0, ROT180, "Dynax", "Hana Jingi (Japan, Bet)", GAME_SUPPORTS_SAVE ) // 1990 05/01 11:58:24
-GAME( 1990, hjingia, hjingi, hjingi, hjingi, driver_device, 0, ROT180, "Dynax", "Hana Jingi (Japan, Bet, alt.)", GAME_SUPPORTS_SAVE ) // 1990 05/01 11:58:24
-GAME( 1989, hnoridur, hjingi, hnoridur, hnoridur, driver_device, 0, ROT180, "Dynax", "Hana Oriduru (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1989, drgpunch, 0, sprtmtch, drgpunch, driver_device, 0, ROT0, "Dynax", "Dragon Punch (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1989, sprtmtch, drgpunch, sprtmtch, sprtmtch, driver_device, 0, ROT0, "Dynax (Fabtek license)", "Sports Match", GAME_SUPPORTS_SAVE )
+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 )
/* 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)", GAME_SUPPORTS_SAVE ) // this set has backgrounds blacked out in attract
-GAME( 1994, mayaa, maya, sprtmtch, drgpunch, dynax_state, maya, ROT0, "Promat", "Maya (set 2)", GAME_SUPPORTS_SAVE ) // this set has backgrounds blacked out in attract
-GAME( 1994, mayab, maya, sprtmtch, drgpunch, dynax_state, maya, ROT0, "Promat", "Maya (set 3)", GAME_SUPPORTS_SAVE )
-GAME( 1994, mayac, maya, sprtmtch, drgpunch, dynax_state, mayac, ROT0, "Promat", "Maya (set 4, clean)", GAME_SUPPORTS_SAVE )
-GAME( 199?, inca, 0, sprtmtch, drgpunch, dynax_state, maya, ROT0, "<unknown>", "Inca", GAME_SUPPORTS_SAVE )
-GAME( 199?, blktouch, 0, sprtmtch, drgpunch, dynax_state, blktouch, ROT0, "Yang Gi Co Ltd.", "Black Touch (Korea)", GAME_SUPPORTS_SAVE )
-
-GAME( 1989, mjfriday, 0, mjfriday, mjfriday, driver_device, 0, ROT180, "Dynax", "Mahjong Friday (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1989, gekisha, 0, gekisha, gekisha, driver_device, 0, ROT180, "Dynax", "Mahjong Gekisha", GAME_SUPPORTS_SAVE )
-GAME( 1990, mcnpshnt, 0, mcnpshnt, mcnpshnt, driver_device, 0, ROT0, "Dynax", "Mahjong Campus Hunting (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1990, 7jigen, 0, nanajign, nanajign, driver_device, 0, ROT180, "Dynax", "7jigen no Youseitachi - Mahjong 7 Dimensions (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1990, jantouki, 0, jantouki, jantouki, driver_device, 0, ROT0, "Dynax", "Jong Tou Ki (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1991, mjdialq2, 0, mjdialq2, mjdialq2, driver_device, 0, ROT180, "Dynax", "Mahjong Dial Q2 (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1991, mjdialq2a,mjdialq2, mjdialq2, mjdialq2, driver_device, 0, ROT180, "Dynax", "Mahjong Dial Q2 (Japan, alt.)", GAME_SUPPORTS_SAVE )
-GAME( 1991, yarunara, 0, yarunara, yarunara, driver_device, 0, ROT180, "Dynax", "Mahjong Yarunara (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1991, mjangels, 0, yarunara, yarunara, driver_device, 0, ROT180, "Dynax", "Mahjong Angels - Comic Theater Vol.2 (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1992, quiztvqq, 0, quiztvqq, quiztvqq, driver_device, 0, ROT180, "Dynax", "Quiz TV Gassyuukoku Q&Q (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1993, mjelctrn, 0, mjelctrn, mjelctrn, dynax_state, mjelct3, ROT180, "Dynax", "Mahjong Electron Base (parts 2 & 4, Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1989, mjembase, mjelctrn, mjembase, mjembase, dynax_state, mjelct3, ROT180, "Dynax", "Mahjong Electromagnetic Base", GAME_SUPPORTS_SAVE )
-GAME( 1990, mjelct3, mjelctrn, mjelctrn, mjelct3, dynax_state, mjelct3, ROT180, "Dynax", "Mahjong Electron Base (parts 2 & 3, Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1990, mjelct3a, mjelctrn, mjelctrn, mjelct3, dynax_state, mjelct3a, ROT180, "Dynax", "Mahjong Electron Base (parts 2 & 3, alt., Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1993, mjelctrb, mjelctrn, mjelctrn, mjelct3, dynax_state, mjelct3, ROT180, "bootleg", "Mahjong Electron Base (parts 2 & 4, Japan, bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1990, majxtal7, 0, majxtal7, majxtal7, dynax_state, mjelct3, ROT180, "Dynax", "Mahjong X-Tal 7 - Crystal Mahjong / Mahjong Diamond 7 (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1990, neruton, 0, neruton, neruton, dynax_state, mjelct3, ROT180, "Dynax / Yukiyoshi Tokoro", "Mahjong Neruton Haikujiradan (Japan, Rev. B?)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1990, nerutona, neruton, neruton, neruton, dynax_state, mjelct3, ROT180, "Dynax / Yukiyoshi Tokoro", "Mahjong Neruton Haikujiradan (Japan, Rev. A?)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1991, hanayara, 0, yarunara, hanayara, driver_device, 0, ROT180, "Dynax", "Hana wo Yaraneba! (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1991, mjcomv1, 0, yarunara, yarunara, driver_device, 0, ROT180, "Dynax", "Mahjong Comic Gekijou Vol.1 (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1991, tenkai, 0, tenkai, tenkai, driver_device, 0, ROT0, "Dynax", "Mahjong Tenkaigen", GAME_SUPPORTS_SAVE )
-GAME( 1991, tenkai2b, tenkai, tenkai, tenkai, driver_device, 0, ROT0, "bootleg", "Mahjong Tenkaigen Part 2 (bootleg)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1991, tenkaibb, tenkai, tenkai, tenkai, driver_device, 0, ROT0, "bootleg", "Mahjong Tenkaigen (bootleg b)", GAME_SUPPORTS_SAVE )
-GAME( 1991, tenkaicb, tenkai, tenkai, tenkai, driver_device, 0, ROT0, "bootleg", "Mahjong Tenkaigen (bootleg c)", GAME_SUPPORTS_SAVE )
-GAME( 1991, tenkaie, tenkai, tenkai, tenkai, driver_device, 0, ROT0, "Dynax", "Mahjong Tenkaigen (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1991, ougonpai, 0, tenkai, tenkai, driver_device, 0, ROT0, "Dynax", "Mahjong Ougon No Pai", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1991, ougonpaib,ougonpai, tenkai, tenkai, driver_device, 0, ROT0, "bootleg", "Mahjong Ougon No Pai (bootleg)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1994, mjreach, 0, tenkai, mjreach, dynax_state, mjreach, ROT0, "bootleg / Dynax", "Mahjong Reach (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1994, cdracula, 0, cdracula, cdracula, driver_device, 0, ROT0, "Yun Sung (Escape license)","Castle Of Dracula", GAME_SUPPORTS_SAVE ) // not a dynax board
-GAME( 1995, shpeng, 0, sprtmtch, drgpunch, driver_device, 0, ROT0, "WSAC Systems?", "Sea Hunter Penguin", GAME_NO_COCKTAIL | GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE ) // not a dynax board. proms?
-GAME( 1996, majrjhdx, 0, majrjhdx, tenkai, driver_device, 0, ROT0, "Dynax", "Mahjong Raijinhai DX", GAME_NOT_WORKING | GAME_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, "<unknown>", "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( 1996, majrjhdx, 0, majrjhdx, tenkai, driver_device, 0, ROT0, "Dynax", "Mahjong Raijinhai DX", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/dynduke.c b/src/mame/drivers/dynduke.c
index 200175fa2a7..803e2c501fa 100644
--- a/src/mame/drivers/dynduke.c
+++ b/src/mame/drivers/dynduke.c
@@ -92,7 +92,7 @@ static ADDRESS_MAP_START( slave_map, AS_PROGRAM, 16, dynduke_state )
AM_RANGE(0x00000, 0x05fff) AM_RAM
AM_RANGE(0x06000, 0x067ff) AM_RAM_WRITE(background_w) AM_SHARE("back_data")
AM_RANGE(0x06800, 0x06fff) AM_RAM_WRITE(foreground_w) AM_SHARE("fore_data")
- AM_RANGE(0x07000, 0x07fff) AM_RAM_WRITE(paletteram_w) AM_SHARE("paletteram")
+ AM_RANGE(0x07000, 0x07fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x08000, 0x08fff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x0a000, 0x0a001) AM_WRITE(gfxbank_w)
AM_RANGE(0x0c000, 0x0c001) AM_WRITENOP
@@ -300,8 +300,9 @@ static MACHINE_CONFIG_START( dynduke, dynduke_state )
MCFG_SCREEN_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", "palette", dynduke)
- MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
// sound hardware
SEIBU_SOUND_SYSTEM_YM3812_INTERFACE(14318180/4,1320000)
@@ -612,9 +613,9 @@ DRIVER_INIT_MEMBER(dynduke_state,dynduke)
/* Game Drivers */
-GAME( 1989, dynduke, 0, dynduke, dynduke, dynduke_state, dynduke, ROT0, "Seibu Kaihatsu", "Dynamite Duke (Europe set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1989, dyndukea, dynduke, dynduke, dynduke, dynduke_state, dynduke, ROT0, "Seibu Kaihatsu", "Dynamite Duke (Europe set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1989, dyndukej, dynduke, dynduke, dynduke, dynduke_state, dynduke, ROT0, "Seibu Kaihatsu", "Dynamite Duke (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1989, dyndukeu, dynduke, dynduke, dynduke, dynduke_state, dynduke, ROT0, "Seibu Kaihatsu (Fabtek license)", "Dynamite Duke (US)", GAME_SUPPORTS_SAVE )
-GAME( 1989, dbldynj, dynduke, dbldyn, dynduke, dynduke_state, dynduke, ROT0, "Seibu Kaihatsu", "The Double Dynamites (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1989, dbldynu, dynduke, dynduke, dynduke, dynduke_state, dynduke, ROT0, "Seibu Kaihatsu (Fabtek license)", "The Double Dynamites (US)", GAME_SUPPORTS_SAVE )
+GAME( 1989, dynduke, 0, dynduke, dynduke, dynduke_state, dynduke, ROT0, "Seibu Kaihatsu", "Dynamite Duke (Europe set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, dyndukea, dynduke, dynduke, dynduke, dynduke_state, dynduke, ROT0, "Seibu Kaihatsu", "Dynamite Duke (Europe set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, dyndukej, dynduke, dynduke, dynduke, dynduke_state, dynduke, ROT0, "Seibu Kaihatsu", "Dynamite Duke (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, dyndukeu, dynduke, dynduke, dynduke, dynduke_state, dynduke, ROT0, "Seibu Kaihatsu (Fabtek license)", "Dynamite Duke (US)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, dbldynj, dynduke, dbldyn, dynduke, dynduke_state, dynduke, ROT0, "Seibu Kaihatsu", "The Double Dynamites (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, dbldynu, dynduke, dynduke, dynduke, dynduke_state, dynduke, ROT0, "Seibu Kaihatsu (Fabtek license)", "The Double Dynamites (US)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/eacc.c b/src/mame/drivers/eacc.c
index 08b061939ab..1dbb2228a82 100644
--- a/src/mess/drivers/eacc.c
+++ b/src/mame/drivers/eacc.c
@@ -277,4 +277,4 @@ ROM_END
******************************************************************************/
/* 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", GAME_NO_SOUND_HW)
+COMP( 1982, eacc, 0, 0, eacc, eacc, driver_device, 0, "Electronics Australia", "EA Car Computer", MACHINE_NO_SOUND_HW)
diff --git a/src/mess/drivers/ec184x.c b/src/mame/drivers/ec184x.c
index bc190e9debc..28a1eee5d0f 100644
--- a/src/mess/drivers/ec184x.c
+++ b/src/mame/drivers/ec184x.c
@@ -6,12 +6,6 @@
Driver file for EC-184x series
- TODO (ec1840)
- - memory bank size is smaller (128K)
-
- TODO (ec1841)
- - hard disk is connected but requires changes to isa_hdc.c
-
***************************************************************************/
@@ -24,6 +18,8 @@
#include "cpu/i86/i86.h"
#include "machine/ram.h"
+#define EC1841_MEMBOARD_SIZE 512*1024
+
#define VERBOSE_DBG 1 /* general debug messages */
#define DBG_LOG(N,M,A) \
@@ -48,12 +44,11 @@ public:
required_device<cpu_device> m_maincpu;
DECLARE_MACHINE_RESET(ec184x);
- DECLARE_DRIVER_INIT(ec184x);
+ DECLARE_DRIVER_INIT(ec1841);
struct {
UINT8 enable[4];
int boards;
- int board_size;
} m_memory;
DECLARE_READ8_MEMBER(memboard_r);
@@ -109,13 +104,13 @@ WRITE8_MEMBER(ec184x_state::memboard_w)
if (BIT(current, 2) && !BIT(data, 2)) {
// disable read access
- program.unmap_read(0, m_memory.board_size-1);
+ program.unmap_read(0, EC1841_MEMBOARD_SIZE-1);
DBG_LOG(1,"ec1841_memboard_w",("unmap_read(%d)\n", offset));
}
if (BIT(current, 3) && !BIT(data, 3)) {
// disable write access
- program.unmap_write(0, 0x7ffff);
+ program.unmap_write(0, EC1841_MEMBOARD_SIZE-1);
DBG_LOG(1,"ec1841_memboard_w",("unmap_write(%d)\n", offset));
}
@@ -123,8 +118,8 @@ WRITE8_MEMBER(ec184x_state::memboard_w)
for(int i=0; i<4; i++)
m_memory.enable[i] &= 0xfb;
// enable read access
- membank("bank10")->set_base(m_ram->pointer() + offset*0x80000);
- program.install_read_bank(0, m_memory.board_size-1, "bank10");
+ membank("bank10")->set_base(m_ram->pointer() + offset*EC1841_MEMBOARD_SIZE);
+ program.install_read_bank(0, EC1841_MEMBOARD_SIZE-1, "bank10");
DBG_LOG(1,"ec1841_memboard_w",("map_read(%d)\n", offset));
}
@@ -132,26 +127,32 @@ WRITE8_MEMBER(ec184x_state::memboard_w)
for(int i=0; i<4; i++)
m_memory.enable[i] &= 0xf7;
// enable write access
- membank("bank20")->set_base(m_ram->pointer() + offset*0x80000);
- program.install_write_bank(0, m_memory.board_size-1, "bank20");
+ membank("bank20")->set_base(m_ram->pointer() + offset*EC1841_MEMBOARD_SIZE);
+ program.install_write_bank(0, EC1841_MEMBOARD_SIZE-1, "bank20");
DBG_LOG(1,"ec1841_memboard_w",("map_write(%d)\n", offset));
}
m_memory.enable[offset] = data;
}
-DRIVER_INIT_MEMBER( ec184x_state, ec184x )
+DRIVER_INIT_MEMBER( ec184x_state, ec1841 )
{
address_space &program = m_maincpu->space(AS_PROGRAM);
ram_device *m_ram = machine().device<ram_device>(RAM_TAG);
- m_memory.board_size = 512 * 1024; // XXX
- m_memory.boards = m_ram->size()/m_memory.board_size - 1;
+ m_memory.boards = m_ram->size()/EC1841_MEMBOARD_SIZE - 1;
if (m_memory.boards > 3)
m_memory.boards = 3;
- program.install_read_bank(0, m_memory.board_size-1, "bank10");
- program.install_write_bank(0, m_memory.board_size-1, "bank20");
+ // 640K configuration is special -- 512K board mapped at 0 + 128K board mapped at 512K
+ // XXX verify this was actually the case
+ if (m_ram->size() == 640*1024) {
+ program.install_read_bank(0, m_ram->size()-1, "bank10");
+ program.install_write_bank(0, m_ram->size()-1, "bank20");
+ } else {
+ program.install_read_bank(0, EC1841_MEMBOARD_SIZE-1, "bank10");
+ program.install_write_bank(0, EC1841_MEMBOARD_SIZE-1, "bank20");
+ }
membank( "bank10" )->set_base( m_ram->pointer() );
membank( "bank20" )->set_base( m_ram->pointer() );
}
@@ -271,8 +272,8 @@ static MACHINE_CONFIG_START( ec1841, ec184x_state )
MCFG_PC_KBDC_SLOT_ADD("mb:pc_kbdc", "kbd", pc_xt_keyboards, STR_KBD_EC_1841)
MCFG_RAM_ADD(RAM_TAG)
- MCFG_RAM_DEFAULT_SIZE("512K")
- MCFG_RAM_EXTRA_OPTIONS("1024K,1576K,2048K") // 640K variant not emulated
+ MCFG_RAM_DEFAULT_SIZE("640K")
+ MCFG_RAM_EXTRA_OPTIONS("512K,1024K,1576K,2048K")
MACHINE_CONFIG_END
// XXX verify everything
@@ -374,14 +375,8 @@ ROM_START( ec1847 )
ROM_LOAD( "317_d28_2732.bin", 0x00000, 0x1000, CRC(8939599b) SHA1(53d02460cf93596882a96758ef4bac5fa1ce55b2)) // monochrome font
ROM_END
-/***************************************************************************
-
- Game driver(s)
-
-***************************************************************************/
-
/* YEAR ROM NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
-COMP ( 1987, ec1840, ibm5150, 0, ec1840, ec1841, ec184x_state, ec184x, "<unknown>", "EC-1840", GAME_NOT_WORKING)
-COMP ( 1987, ec1841, ibm5150, 0, ec1841, ec1841, ec184x_state, ec184x, "<unknown>", "EC-1841", 0)
-COMP ( 1989, ec1845, ibm5150, 0, ec1841, ec1841, ec184x_state, ec184x, "<unknown>", "EC-1845", GAME_NOT_WORKING)
-COMP ( 1990, ec1847, ibm5150, 0, ec1847, ec1841, driver_device, 0, "<unknown>", "EC-1847", GAME_NOT_WORKING)
+COMP ( 1987, ec1840, ibm5150, 0, ec1840, ec1841, driver_device, 0, "<unknown>", "EC-1840", MACHINE_NOT_WORKING)
+COMP ( 1987, ec1841, ibm5150, 0, ec1841, ec1841, ec184x_state, ec1841, "<unknown>", "EC-1841", 0)
+COMP ( 1989, ec1845, ibm5150, 0, ec1841, ec1841, ec184x_state, ec1841, "<unknown>", "EC-1845", MACHINE_NOT_WORKING)
+COMP ( 1990, ec1847, ibm5150, 0, ec1847, ec1841, driver_device, 0, "<unknown>", "EC-1847", MACHINE_NOT_WORKING)
diff --git a/src/mess/drivers/ec65.c b/src/mame/drivers/ec65.c
index 3e0a468e1a3..4f0fc30580e 100644
--- a/src/mess/drivers/ec65.c
+++ b/src/mame/drivers/ec65.c
@@ -246,5 +246,5 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 1985, ec65k, ec65, 0, ec65k, ec65, driver_device, 0, "Elektor Electronics", "EC-65K", GAME_NOT_WORKING | GAME_NO_SOUND)
+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)
diff --git a/src/mame/drivers/ecoinf1.c b/src/mame/drivers/ecoinf1.c
index 6de5fd27015..a4ba2c64e56 100644
--- a/src/mame/drivers/ecoinf1.c
+++ b/src/mame/drivers/ecoinf1.c
@@ -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)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 19??, ec_barxoa, ec_barxo , ecoinf1_older, ecoinf1, ecoinf1_state, ecoinf1, ROT0, "Electrocoin", "Bar X (older PCB) (Electrocoin) (set 2)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 19??, ec_barxob, ec_barxo , ecoinf1_older, ecoinf1, ecoinf1_state, ecoinf1, ROT0, "Electrocoin", "Bar X (older PCB) (Electrocoin) (set 3)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 19??, ec_barxoc, ec_barxo , ecoinf1_older, ecoinf1, ecoinf1_state, ecoinf1, ROT0, "Electrocoin", "Bar X (older PCB) (Electrocoin) (set 4)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 19??, ec_barxod, ec_barxo , ecoinf1_older, ecoinf1, ecoinf1_state, ecoinf1, ROT0, "Electrocoin", "Bar X (older PCB) (Electrocoin) (set 5)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 19??, ec_barxoe, ec_barxo , ecoinf1_older, ecoinf1, ecoinf1_state, ecoinf1, ROT0, "Electrocoin", "Bar X (older PCB) (Electrocoin) (set 6)" , GAME_IS_SKELETON_MECHANICAL)
-GAME( 19??, ec_bar5, ec_barxo , ecoinf1_older, ecoinf1, ecoinf1_state, ecoinf1, ROT0, "Electrocoin", "Bar 5 (older PCB) (Electrocoin)" , GAME_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)" , GAME_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)" , GAME_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.c b/src/mame/drivers/ecoinf2.c
index e5020d27760..73d90e6cf61 100644
--- a/src/mame/drivers/ecoinf2.c
+++ b/src/mame/drivers/ecoinf2.c
@@ -794,13 +794,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) (?)" , GAME_NO_SOUND|GAME_REQUIRES_ARTWORK|GAME_NOT_WORKING|GAME_MECHANICAL)
-GAME( 19??, ec_oxocl, 0 , ecoinf2_oxo, ecoinf2, ecoinf2_state, ecoinf2, ROT0, "Electrocoin", "Oxo Club (Electrocoin) (?)" , GAME_NO_SOUND|GAME_REQUIRES_ARTWORK|GAME_NOT_WORKING|GAME_MECHANICAL)
-GAME( 19??, ec_oxogb, 0 , ecoinf2_oxo, ecoinf2, ecoinf2_state, ecoinf2, ROT0, "Electrocoin", "Oxo Golden Bars (Electrocoin) (?)" , GAME_NO_SOUND|GAME_REQUIRES_ARTWORK|GAME_NOT_WORKING|GAME_MECHANICAL)
-GAME( 19??, ec_oxorl, 0 , ecoinf2_oxo, ecoinf2, ecoinf2_state, ecoinf2, ROT0, "Electrocoin", "Oxo Reels (Electrocoin) (?)" , GAME_NO_SOUND|GAME_REQUIRES_ARTWORK|GAME_NOT_WORKING|GAME_MECHANICAL)
-GAME( 19??, ec_oxorv, 0 , ecoinf2_oxo, ecoinf2, ecoinf2_state, ecoinf2, ROT0, "Electrocoin", "Oxo Revolution (Electrocoin) (?)" , GAME_NO_SOUND|GAME_REQUIRES_ARTWORK|GAME_NOT_WORKING|GAME_MECHANICAL)
-GAME( 19??, ec_suprl, 0 , ecoinf2_oxo, ecoinf2, ecoinf2_state, ecoinf2, ROT0, "Electrocoin", "Super Reels (Electrocoin) (?)" , GAME_NO_SOUND|GAME_REQUIRES_ARTWORK|GAME_NOT_WORKING|GAME_MECHANICAL)
-GAME( 19??, ec_rcc, 0 , ecoinf2_oxo, ecoinf2, ecoinf2_state, ecoinf2, ROT0, "Electrocoin", "Royal Casino Club (Electrocoin) (?)" , GAME_NO_SOUND|GAME_REQUIRES_ARTWORK|GAME_NOT_WORKING|GAME_MECHANICAL)
-
-GAME( 19??, ec_sumnd, 0 , ecoinf2_oxo, ecoinf2, ecoinf2_state, ecoinf2, ROT0, "Concept Games Ltd", "Super Multi Nudger (Concept / Electrocoin Oxo) (?)" , GAME_NO_SOUND|GAME_REQUIRES_ARTWORK|GAME_NOT_WORKING|GAME_MECHANICAL)
-GAME( 19??, ec_sumnc, 0 , ecoinf2_oxo, ecoinf2, ecoinf2_state, ecoinf2, ROT0, "Concept Games Ltd", "Casino Super Multi Nudger (Concept / Electrocoin Oxo) (?)" , GAME_NO_SOUND|GAME_REQUIRES_ARTWORK|GAME_NOT_WORKING|GAME_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.c b/src/mame/drivers/ecoinf3.c
index f324c8825dd..2bf9fce48d3 100644
--- a/src/mame/drivers/ecoinf3.c
+++ b/src/mame/drivers/ecoinf3.c
@@ -849,15 +849,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)" , GAME_NO_SOUND|GAME_REQUIRES_ARTWORK|GAME_NOT_WORKING|GAME_MECHANICAL)
-GAME( 19??, ec_pyrama, ec_pyram , ecoinf3_pyramid, ecoinf3, ecoinf3_state, ecoinf3, ROT0, "Electrocoin", "Pyramid (v6) (Electrocoin)" , GAME_NO_SOUND|GAME_REQUIRES_ARTWORK|GAME_NOT_WORKING|GAME_MECHANICAL)
-GAME( 19??, ec_sphin, 0 , ecoinf3_pyramid, ecoinf3, ecoinf3_state, ecoinf3_swap, ROT0, "Electrocoin", "Sphinx (v2) (Electrocoin) (set 1)" , GAME_NO_SOUND|GAME_REQUIRES_ARTWORK|GAME_NOT_WORKING|GAME_MECHANICAL)
-GAME( 19??, ec_sphina, ec_sphin , ecoinf3_pyramid, ecoinf3, ecoinf3_state, ecoinf3, ROT0, "Electrocoin", "Sphinx (v2) (Electrocoin) (set 2)" , GAME_NO_SOUND|GAME_REQUIRES_ARTWORK|GAME_NOT_WORKING|GAME_MECHANICAL)
-GAME( 19??, ec_sphinb, ec_sphin , ecoinf3_pyramid, ecoinf3, ecoinf3_state, ecoinf3, ROT0, "Electrocoin", "Sphinx (v1) (Electrocoin)" , GAME_NO_SOUND|GAME_REQUIRES_ARTWORK|GAME_NOT_WORKING|GAME_MECHANICAL)
-GAME( 19??, ec_penni, 0 , ecoinf3_pyramid, ecoinf3, ecoinf3_state, ecoinf3, ROT0, "Electrocoin", "Pennies From Heaven (v1) (Electrocoin)" , GAME_NO_SOUND|GAME_REQUIRES_ARTWORK|GAME_NOT_WORKING|GAME_MECHANICAL)
-GAME( 19??, ec_pennia, ec_penni , ecoinf3_pyramid, ecoinf3, ecoinf3_state, ecoinf3, ROT0, "Electrocoin", "Pennies From Heaven (v6) (Electrocoin)" , GAME_NO_SOUND|GAME_REQUIRES_ARTWORK|GAME_NOT_WORKING|GAME_MECHANICAL)
-GAME( 19??, ec_stair, 0 , ecoinf3_pyramid, ecoinf3, ecoinf3_state, ecoinf3, ROT0, "Electrocoin", "Stairway To Heaven (v11) (Electrocoin)" , GAME_NO_SOUND|GAME_REQUIRES_ARTWORK|GAME_NOT_WORKING|GAME_MECHANICAL)
-GAME( 19??, ec_staira, ec_stair , ecoinf3_pyramid, ecoinf3, ecoinf3_state, ecoinf3, ROT0, "Electrocoin", "Stairway To Heaven (v1) (Electrocoin)" , GAME_NO_SOUND|GAME_REQUIRES_ARTWORK|GAME_NOT_WORKING|GAME_MECHANICAL)
-GAME( 19??, ec_laby, 0 , ecoinf3_pyramid, ecoinf3, ecoinf3_state, ecoinf3, ROT0, "Electrocoin", "Labyrinth (v8) (Electrocoin)" , GAME_NO_SOUND|GAME_REQUIRES_ARTWORK|GAME_NOT_WORKING|GAME_MECHANICAL)
-GAME( 19??, ec_labya, ec_laby , ecoinf3_pyramid, ecoinf3, ecoinf3_state, ecoinf3, ROT0, "Electrocoin", "Labyrinth (v10) (Electrocoin)" , GAME_NO_SOUND|GAME_REQUIRES_ARTWORK|GAME_NOT_WORKING|GAME_MECHANICAL)
-GAME( 19??, ec_secrt, 0 , ecoinf3_pyramid, ecoinf3, ecoinf3_state, ecoinf3, ROT0, "Electrocoin", "Secret Castle (v1) (Electrocoin)" , GAME_NO_SOUND|GAME_REQUIRES_ARTWORK|GAME_NOT_WORKING|GAME_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.c b/src/mame/drivers/ecoinfr.c
index 2801206c24d..570e4817185 100644
--- a/src/mame/drivers/ecoinfr.c
+++ b/src/mame/drivers/ecoinfr.c
@@ -48,7 +48,7 @@
#define UPD8251_TAG "upd8251"
-#define GAME_FLAGS GAME_NO_SOUND|GAME_REQUIRES_ARTWORK|GAME_NOT_WORKING|GAME_MECHANICAL
+#define GAME_FLAGS MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING|MACHINE_MECHANICAL
class ecoinfr_state : public driver_device
{
diff --git a/src/mame/drivers/egghunt.c b/src/mame/drivers/egghunt.c
index b4b47eb3dfe..881430c5593 100644
--- a/src/mame/drivers/egghunt.c
+++ b/src/mame/drivers/egghunt.c
@@ -468,4 +468,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", GAME_SUPPORTS_SAVE )
+GAME( 1995, egghunt, 0, egghunt, egghunt, driver_device, 0, ROT0, "Invi Image", "Egg Hunt", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/einstein.c b/src/mame/drivers/einstein.c
index 3be299ab83c..c0c6190c76c 100644
--- a/src/mess/drivers/einstein.c
+++ b/src/mame/drivers/einstein.c
@@ -830,4 +830,4 @@ ROM_END
/* 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", GAME_NOT_WORKING )
+COMP( 1984, einst256, 0, 0, einstein, einstein, driver_device, 0, "Tatung", "Einstein 256", MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/elecbowl.c b/src/mame/drivers/elecbowl.c
index 3d65d7b3d74..934bdd1f719 100644
--- a/src/mess/drivers/elecbowl.c
+++ b/src/mame/drivers/elecbowl.c
@@ -14,8 +14,8 @@
* edge connector to sensors(switches trigger when ball rolls over)
and other inputs
- lamp translation table: SN74259.u5(mux 1) goes to MESS output lamp5x,
- SN74259.u6(mux 2) goes to MESS output lamp6x. u1-u3 are SN75492 ICs,
+ lamp translation table: SN74259.u5(mux 1) goes to MAME output lamp5x,
+ SN74259.u6(mux 2) goes to MAME output lamp6x. u1-u3 are SN75492 ICs,
where other: u1 A2 is N/C, u3 A1 is from O2 and goes to digits seg C.
u5 Q0 -> u1 A4 -> L2 (pin #2) u6 Q0 -> u3 A4 -> L1 (pin #1)
@@ -219,4 +219,4 @@ ROM_START( elecbowl )
ROM_END
-CONS( 1978, elecbowl, 0, 0, elecbowl, elecbowl, driver_device, 0, "Marx", "Electronic Bowling (Marx)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND | GAME_MECHANICAL | GAME_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 )
diff --git a/src/mame/drivers/electra.c b/src/mame/drivers/electra.c
index 4ef8ee27d09..aebc4cc838b 100644
--- a/src/mame/drivers/electra.c
+++ b/src/mame/drivers/electra.c
@@ -127,4 +127,4 @@ ROM_START( avenger )
ROM_END
-GAME( 1975, avenger, 0, electra, 0, driver_device, 0, ROT0, "Electra", "Avenger [TTL]", GAME_IS_SKELETON )
+GAME( 1975, avenger, 0, electra, 0, driver_device, 0, ROT0, "Electra", "Avenger [TTL]", MACHINE_IS_SKELETON )
diff --git a/src/mess/drivers/electron.c b/src/mame/drivers/electron.c
index fbf8e10fe7d..9dbc5468a6f 100644
--- a/src/mess/drivers/electron.c
+++ b/src/mame/drivers/electron.c
@@ -1,12 +1,54 @@
// license:BSD-3-Clause
// copyright-holders:Wilbert Pol
/******************************************************************************
- Acorn Electron driver
-
- MESS Driver By:
-
- Wilbert Pol
-
+ Acorn Electron driver
+ By Wilbert Pol
+
+Hardware Overview
+-----------------
+The Acorn Electron is a budget version of the BBC Micro home computer
+Basic specs are:
+6502 CPU @ 2MHz or 1MHz
+32k RAM and 32k ROM
+Text modes: 20x32, 40x25, 40x32, 80x25, 80x32
+Graphics modes: 160x256 (4 or 16 colors), 320x256 (2 or 4 colors), 640x256 (2 colors), 320x200 (2 colors), 640x200 (2 colors)
+Colors: 8 colors (either solid or flashing)
+Sound: 1 channel, 7 octaves; built-in speaker
+Internal ports for cassette storage, RGB/CVBS monitors and TV output
+Various expansions can be added via the rear expansion port
+
+PCB Layout
+---------- |-------------------|
+ |--------| EXPANSION PORT |
+|-----|---------------------| |---||---------|
+|MOD | SPKR 16MHz LS169 18VAC|| []18VAC INPUT
+| |17.7345MHz ROM 18VAC|| POWER |
+|-----| 74S04 |----| || SUPPLY |
+| KBD_CONN 6502 |ULA | || |
+|CVBS |----| || +5VDC |
+|RGB LS00 LS86 || -5VDC |
+| PWR|| |
+|CASS LM324 LS00 LS86 S74 LS74 4164 4164 4164 4164 || |
+|------------------------------------------------------------||---------|
+Notes: (all IC's shown. Only 16 ICs are used)
+ 6502 - 6502 CPU, clock input 2.000MHz [16/8]
+ ULA - Custom logic chip 12CO21, also containing most of the BBC Micro circuitry
+ Early PCB revisions used a PLCC68 chip in a socket. Later revisions used a
+ PGA68 chip soldered directly into the motherboard
+ 4164 - 4164 64k x4-bit DRAM (4 chips for 32kbytes total)
+ ROM - Hitachi HN613256 32k x8-bit MASK ROM containing OS & BASIC
+ LM324 - Texas Instruments LM324 Operational Amplifier
+ MOD - UHF TV modulator UM1233-E36
+ CVBS - Composite color video output socket
+ RGB - RGB monitor video output socket
+ CASS - Cassette port
+ PWR - 3-pin power input from internal power supply
+ KBD_CONN - 22-pin keyboard connector
+ SPKR - 2-pin internal speaker connector
+
+******************************************************************************
+Emulation notes:
+
I don't have a real system to verify the behaviour of the emulation. The things
that can be done through BASIC programs seem to behave properly (most of the time :).
@@ -23,7 +65,6 @@ Missing:
- Support for floppy disks
- Other peripherals
- Keyboard is missing the 'Break' key
-
******************************************************************************/
#include "emu.h"
@@ -205,4 +246,4 @@ ROM_START(electron)
ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
-COMP ( 1983, electron, 0, 0, electron, electron, driver_device, 0, "Acorn", "Acorn Electron", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
+COMP ( 1983, electron, 0, 0, electron, electron, driver_device, 0, "Acorn", "Acorn Electron", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
diff --git a/src/mess/drivers/elekscmp.c b/src/mame/drivers/elekscmp.c
index 01ffefe6212..7783184917c 100644
--- a/src/mess/drivers/elekscmp.c
+++ b/src/mame/drivers/elekscmp.c
@@ -162,4 +162,4 @@ 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", GAME_NO_SOUND_HW)
+COMP( 1977, elekscmp, 0, 0, elekscmp, elekscmp, driver_device, 0, "Elektor Electronics", "Elektor SC/MP", MACHINE_NO_SOUND_HW)
diff --git a/src/mess/drivers/elf.c b/src/mame/drivers/elf.c
index 04a98568f2b..5fdfc47035b 100644
--- a/src/mess/drivers/elf.c
+++ b/src/mame/drivers/elf.c
@@ -285,4 +285,4 @@ 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", GAME_SUPPORTS_SAVE | GAME_NO_SOUND)
+COMP( 1978, elf2, 0, 0, elf2, elf2, driver_device, 0, "Netronics", "Elf II", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/elwro800.c b/src/mame/drivers/elwro800.c
index fa377badef9..fa377badef9 100644
--- a/src/mess/drivers/elwro800.c
+++ b/src/mame/drivers/elwro800.c
diff --git a/src/mame/drivers/embargo.c b/src/mame/drivers/embargo.c
index d5f919e4012..7cc743f64b1 100644
--- a/src/mame/drivers/embargo.c
+++ b/src/mame/drivers/embargo.c
@@ -298,4 +298,4 @@ ROM_END
*
*************************************/
-GAME( 1977, embargo, 0, embargo, embargo, driver_device, 0, ROT0, "Cinematronics", "Embargo", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1977, embargo, 0, embargo, embargo, driver_device, 0, ROT0, "Cinematronics", "Embargo", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/enigma2.c b/src/mame/drivers/enigma2.c
index 78e1d9c854e..06db62038d8 100644
--- a/src/mame/drivers/enigma2.c
+++ b/src/mame/drivers/enigma2.c
@@ -55,9 +55,6 @@ TODO:
#define INT_TRIGGER_COUNT_2 (0x18f)
-#define NUM_PENS (8)
-
-
class enigma2_state : public driver_device
{
public:
@@ -66,7 +63,10 @@ public:
m_videoram(*this, "videoram"),
m_maincpu(*this, "maincpu"),
m_audiocpu(*this, "audiocpu"),
- m_screen(*this, "screen"){ }
+ m_screen(*this, "screen"),
+ m_palette(*this, "palette"),
+ m_colors(*this, "colors"),
+ m_stars(*this, "stars"){ }
/* memory pointers */
required_shared_ptr<UINT8> m_videoram;
@@ -85,6 +85,10 @@ public:
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_audiocpu;
required_device<screen_device> m_screen;
+ optional_device<palette_device> m_palette;
+ optional_region_ptr<UINT8> m_colors;
+ optional_region_ptr<UINT8> m_stars;
+
DECLARE_READ8_MEMBER(dip_switch_r);
DECLARE_WRITE8_MEMBER(sound_data_w);
DECLARE_WRITE8_MEMBER(enigma2_flip_screen_w);
@@ -103,7 +107,6 @@ public:
inline int vysnc_chain_counter_to_vpos( UINT16 counter );
void create_interrupt_timers( );
void start_interrupt_timers( );
- void get_pens(pen_t *pens);
};
@@ -202,26 +205,9 @@ void enigma2_state::machine_reset()
*
*************************************/
-void enigma2_state::get_pens(pen_t *pens)
-{
- offs_t i;
-
- for (i = 0; i < NUM_PENS; i++)
- {
- /* this color gun arrengement is supported by the flyer screenshot */
- pens[i] = rgb_t(pal1bit(i >> 2), pal1bit(i >> 1), pal1bit(i >> 0));
- }
-}
-
-
UINT32 enigma2_state::screen_update_enigma2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- pen_t pens[NUM_PENS];
-
const rectangle &visarea = screen.visible_area();
- UINT8 *prom = memregion("proms")->base();
- UINT8 *color_map_base = m_flip_screen ? &prom[0x0400] : &prom[0x0000];
- UINT8 *star_map_base = (m_blink_count & 0x08) ? &prom[0x0c00] : &prom[0x0800];
UINT8 x = 0;
UINT16 bitmap_y = visarea.min_y;
@@ -230,8 +216,6 @@ UINT32 enigma2_state::screen_update_enigma2(screen_device &screen, bitmap_rgb32
UINT8 fore_color = 0;
UINT8 star_color = 0;
- get_pens(pens);
-
while (1)
{
UINT8 bit;
@@ -241,22 +225,29 @@ UINT32 enigma2_state::screen_update_enigma2(screen_device &screen, bitmap_rgb32
if ((x & 0x07) == 0x00)
{
offs_t color_map_address = (y >> 3 << 5) | (x >> 3);
+
/* the schematics shows it like this, but it doesn't work as this would
produce no stars, due to the contents of the PROM -- maybe there is
a star disabled bit somewhere that's connected here instead of flip_screen() */
/* star_map_address = (y >> 4 << 6) | (engima2_flip_screen_get() << 5) | (x >> 3); */
offs_t star_map_address = (y >> 4 << 6) | 0x20 | (x >> 3);
+ if (m_blink_count & 0x08)
+ star_map_address |= 0x400;
offs_t videoram_address = (y << 5) | (x >> 3);
/* when the screen is flipped, all the video address bits are inverted,
and the adder at 16A is activated */
- if (m_flip_screen) videoram_address = (~videoram_address + 0x0400) & 0x1fff;
+ if (m_flip_screen)
+ {
+ color_map_address |= 0x400;
+ videoram_address = (~videoram_address + 0x0400) & 0x1fff;
+ }
video_data = m_videoram[videoram_address];
- fore_color = color_map_base[color_map_address] & 0x07;
- star_color = star_map_base[star_map_address] & 0x07;
+ fore_color = m_colors[color_map_address] & 0x07;
+ star_color = m_stars[star_map_address] & 0x07;
}
/* plot the current pixel */
@@ -277,7 +268,7 @@ UINT32 enigma2_state::screen_update_enigma2(screen_device &screen, bitmap_rgb32
/* stars only appear at certain positions */
color = ((x & y & 0x0f) == 0x0f) ? star_color : 0;
- bitmap.pix32(bitmap_y, x) = pens[color];
+ bitmap.pix32(bitmap_y, x) = m_palette->pen_color(color);
/* next pixel */
x = x + 1;
@@ -612,6 +603,8 @@ static MACHINE_CONFIG_START( enigma2, enigma2_state )
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
MCFG_SCREEN_UPDATE_DRIVER(enigma2_state, screen_update_enigma2)
+ MCFG_PALETTE_ADD_3BIT_BGR("palette")
+
/* audio hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -662,9 +655,11 @@ ROM_START( enigma2 )
ROM_REGION( 0x10000, "audiocpu", 0 )
ROM_LOAD( "enigma2.s", 0x0000, 0x1000, CRC(68fd8c54) SHA1(69996d5dfd996f0aacb26e397bef314204a2a88a) )
- ROM_REGION( 0x1000, "proms", 0 ) /* color map/star map */
+ ROM_REGION( 0x0800, "colors", 0 )
ROM_LOAD( "7.11f", 0x0000, 0x0800, CRC(409b5aad) SHA1(1b774a70f725637458ed68df9ed42476291b0e43) )
- ROM_LOAD( "8.13f", 0x0800, 0x0800, CRC(e9cb116d) SHA1(41da4f46c5614ec3345c233467ebad022c6b0bf5) )
+
+ ROM_REGION( 0x0800, "stars", 0 )
+ ROM_LOAD( "8.13f", 0x0000, 0x0800, CRC(e9cb116d) SHA1(41da4f46c5614ec3345c233467ebad022c6b0bf5) )
ROM_END
@@ -709,6 +704,6 @@ DRIVER_INIT_MEMBER(enigma2_state,enigma2)
-GAME( 1981, enigma2, 0, enigma2, enigma2, enigma2_state, enigma2, ROT270, "Game Plan (Zilec Electronics license)", "Enigma II", GAME_SUPPORTS_SAVE )
-GAME( 1984, enigma2a, enigma2, enigma2a, enigma2a, enigma2_state, enigma2, ROT270, "Zilec Electronics", "Enigma II (Space Invaders hardware)", GAME_SUPPORTS_SAVE )
-GAME( 1981, enigma2b, enigma2, enigma2a, enigma2a, enigma2_state, enigma2, ROT270, "Zilec Electronics", "Phantoms II (Space Invaders hardware)", GAME_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/mess/drivers/mirage.c b/src/mame/drivers/enmirage.c
index dc39d620897..1080a269dc9 100644
--- a/src/mess/drivers/mirage.c
+++ b/src/mame/drivers/enmirage.c
@@ -283,4 +283,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", GAME_NOT_WORKING )
+CONS( 1984, enmirage, 0, 0, mirage, mirage, mirage_state, mirage, "Ensoniq", "Ensoniq Mirage", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/eolith.c b/src/mame/drivers/eolith.c
index 6a90413268d..df62012572c 100644
--- a/src/mame/drivers/eolith.c
+++ b/src/mame/drivers/eolith.c
@@ -1569,22 +1569,22 @@ DRIVER_INIT_MEMBER(eolith_state,hidctch3)
*
*************************************/
-GAME( 1998, linkypip, 0, eolith45, linkypip, eolith_state, eolith, ROT0, "Eolith", "Linky Pipe", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1998, ironfort, 0, ironfort, ironfort, eolith_state, eolith, ROT0, "Eolith", "Iron Fortress", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1998, ironfortj, ironfort, ironfort, ironfortj, eolith_state, eolith, ROT0, "Eolith", "Iron Fortress (Japan)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1998, hidnctch, 0, eolith45, hidnctch, eolith_state, eolith, ROT0, "Eolith", "Hidden Catch (World) / Tul Lin Gu Lim Chat Ki '98 (Korea) (pcb ver 3.03)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // or Teurrin Geurim Chajgi '98
-GAME( 1998, raccoon, 0, eolith45, raccoon, eolith_state, eolith, ROT0, "Eolith", "Raccoon World", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1998, puzzlekg, 0, eolith45, puzzlekg, eolith_state, eolith, ROT0, "Eolith", "Puzzle King (Dance & Puzzle)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1999, candy, 0, eolith50, candy, eolith_state, eolith, ROT0, "Eolith", "Candy Candy", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1999, hidctch2, 0, eolith50, hidctch2, eolith_state, hidctch2, ROT0, "Eolith", "Hidden Catch 2 (pcb ver 3.03) (Kor/Eng) (AT89c52 protected)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1999, hidctch2a, hidctch2, eolith50, hidctch2, eolith_state, eolith, ROT0, "Eolith", "Hidden Catch 2 (pcb ver 1.00) (Kor/Eng/Jpn/Chi)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1999, hidnc2k, 0, eolith50, hidctch2, eolith_state, hidnc2k, ROT0, "Eolith", "Hidden Catch 2000 (AT89c52 protected)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1999, landbrk, 0, eolith45, landbrk, eolith_state, landbrk, ROT0, "Eolith", "Land Breaker (World) / Miss Tang Ja Ru Gi (Korea) (pcb ver 3.02)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // or Miss Ttang Jjareugi
-GAME( 1999, landbrka, landbrk, eolith45, landbrk, eolith_state, landbrka, ROT0, "Eolith", "Land Breaker (World) / Miss Tang Ja Ru Gi (Korea) (pcb ver 3.03) (AT89c52 protected)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // or Miss Ttang Jjareugi
-GAME( 1999, nhidctch, 0, eolith45, hidctch2, eolith_state, eolith, ROT0, "Eolith", "New Hidden Catch (World) / New Tul Lin Gu Lim Chat Ki '98 (Korea) (pcb ver 3.02)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // or New Teurrin Geurim Chajgi '98
-GAME( 1999, penfan, 0, eolith45, penfan, eolith_state, eolith, ROT0, "Eolith", "Penfan Girls - Step1. Mild Mind (set 1)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // alt title of Ribbon
-GAME( 1999, penfana, penfan, eolith45, penfan, eolith_state, eolith, ROT0, "Eolith", "Penfan Girls - Step1. Mild Mind (set 2)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2000, stealsee, 0, eolith45, stealsee, eolith_state, eolith, ROT0, "Moov Generation / Eolith", "Steal See", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2000, hidctch3, 0, eolith50, hidctch3, eolith_state, hidctch3, ROT0, "Eolith", "Hidden Catch 3 (ver 1.00 / pcb ver 3.05)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2001, fort2b, 0, eolith50, common, eolith_state, eolith, ROT0, "Eolith", "Fortress 2 Blue Arcade (ver 1.01 / pcb ver 3.05)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2001, fort2ba, fort2b, eolith50, common, eolith_state, eolith, ROT0, "Eolith", "Fortress 2 Blue Arcade (ver 1.00 / pcb ver 3.05)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1998, linkypip, 0, eolith45, linkypip, eolith_state, eolith, ROT0, "Eolith", "Linky Pipe", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1998, ironfort, 0, ironfort, ironfort, eolith_state, eolith, ROT0, "Eolith", "Iron Fortress", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1998, ironfortj, ironfort, ironfort, ironfortj, eolith_state, eolith, ROT0, "Eolith", "Iron Fortress (Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1998, hidnctch, 0, eolith45, hidnctch, eolith_state, eolith, ROT0, "Eolith", "Hidden Catch (World) / Tul Lin Gu Lim Chat Ki '98 (Korea) (pcb ver 3.03)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // or Teurrin Geurim Chajgi '98
+GAME( 1998, raccoon, 0, eolith45, raccoon, eolith_state, eolith, ROT0, "Eolith", "Raccoon World", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1998, puzzlekg, 0, eolith45, puzzlekg, eolith_state, eolith, ROT0, "Eolith", "Puzzle King (Dance & Puzzle)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, candy, 0, eolith50, candy, eolith_state, eolith, ROT0, "Eolith", "Candy Candy", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, hidctch2, 0, eolith50, hidctch2, eolith_state, hidctch2, ROT0, "Eolith", "Hidden Catch 2 (pcb ver 3.03) (Kor/Eng) (AT89c52 protected)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, hidctch2a, hidctch2, eolith50, hidctch2, eolith_state, eolith, ROT0, "Eolith", "Hidden Catch 2 (pcb ver 1.00) (Kor/Eng/Jpn/Chi)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, hidnc2k, 0, eolith50, hidctch2, eolith_state, hidnc2k, ROT0, "Eolith", "Hidden Catch 2000 (AT89c52 protected)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1999, landbrk, 0, eolith45, landbrk, eolith_state, landbrk, ROT0, "Eolith", "Land Breaker (World) / Miss Tang Ja Ru Gi (Korea) (pcb ver 3.02)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // or Miss Ttang Jjareugi
+GAME( 1999, landbrka, landbrk, eolith45, landbrk, eolith_state, landbrka, ROT0, "Eolith", "Land Breaker (World) / Miss Tang Ja Ru Gi (Korea) (pcb ver 3.03) (AT89c52 protected)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // or Miss Ttang Jjareugi
+GAME( 1999, nhidctch, 0, eolith45, hidctch2, eolith_state, eolith, ROT0, "Eolith", "New Hidden Catch (World) / New Tul Lin Gu Lim Chat Ki '98 (Korea) (pcb ver 3.02)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // or New Teurrin Geurim Chajgi '98
+GAME( 1999, penfan, 0, eolith45, penfan, eolith_state, eolith, ROT0, "Eolith", "Penfan Girls - Step1. Mild Mind (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // alt title of Ribbon
+GAME( 1999, penfana, penfan, eolith45, penfan, eolith_state, eolith, ROT0, "Eolith", "Penfan Girls - Step1. Mild Mind (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2000, stealsee, 0, eolith45, stealsee, eolith_state, eolith, ROT0, "Moov Generation / Eolith", "Steal See", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2000, hidctch3, 0, eolith50, hidctch3, eolith_state, hidctch3, ROT0, "Eolith", "Hidden Catch 3 (ver 1.00 / pcb ver 3.05)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2001, fort2b, 0, eolith50, common, eolith_state, eolith, ROT0, "Eolith", "Fortress 2 Blue Arcade (ver 1.01 / pcb ver 3.05)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2001, fort2ba, fort2b, eolith50, common, eolith_state, eolith, ROT0, "Eolith", "Fortress 2 Blue Arcade (ver 1.00 / pcb ver 3.05)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/eolith16.c b/src/mame/drivers/eolith16.c
index 317f3eb7aad..4cb68dd4875 100644
--- a/src/mame/drivers/eolith16.c
+++ b/src/mame/drivers/eolith16.c
@@ -262,4 +262,4 @@ DRIVER_INIT_MEMBER(eolith16_state,eolith16)
init_speedup();
}
-GAME( 1999, klondkp, 0, eolith16, eolith16, eolith16_state, eolith16, ROT0, "Eolith", "KlonDike+", GAME_SUPPORTS_SAVE )
+GAME( 1999, klondkp, 0, eolith16, eolith16, eolith16_state, eolith16, ROT0, "Eolith", "KlonDike+", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/ep64.c b/src/mame/drivers/ep64.c
index a2608cd4ea5..4b384701d63 100644
--- a/src/mess/drivers/ep64.c
+++ b/src/mame/drivers/ep64.c
@@ -595,6 +595,6 @@ ROM_END
//**************************************************************************
// 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", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-COMP( 1985, phc64, ep64, 0, ep64, ep64, driver_device, 0, "Hegener & Glaser", "Mephisto PHC 64 (Germany)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-COMP( 1986, ep128, ep64, 0, ep128, ep64, driver_device, 0, "Enterprise Computers", "Enterprise One Two Eight", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
+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 )
diff --git a/src/mame/drivers/epos.c b/src/mame/drivers/epos.c
index 42841368c3d..65038cf3d72 100644
--- a/src/mame/drivers/epos.c
+++ b/src/mame/drivers/epos.c
@@ -640,12 +640,12 @@ DRIVER_INIT_MEMBER(epos_state,dealer)
*
*************************************/
-GAME( 1982, megadon, 0, epos, megadon, driver_device, 0, ROT270, "Epos Corporation (Photar Industries license)", "Megadon", GAME_SUPPORTS_SAVE )
-GAME( 1982, catapult, 0, epos, catapult, driver_device, 0, ROT270, "Epos Corporation", "Catapult", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) /* bad rom, hold f2 for test mode */
-GAME( 1983, suprglob, 0, epos, suprglob, driver_device, 0, ROT270, "Epos Corporation", "Super Glob", GAME_SUPPORTS_SAVE )
-GAME( 1983, theglob, suprglob, epos, suprglob, driver_device, 0, ROT270, "Epos Corporation", "The Glob", GAME_SUPPORTS_SAVE )
-GAME( 1983, theglob2, suprglob, epos, suprglob, driver_device, 0, ROT270, "Epos Corporation", "The Glob (earlier)", GAME_SUPPORTS_SAVE )
-GAME( 1983, theglob3, suprglob, epos, suprglob, driver_device, 0, ROT270, "Epos Corporation", "The Glob (set 3)", GAME_SUPPORTS_SAVE )
-GAME( 1984, igmo, 0, epos, igmo, driver_device, 0, ROT270, "Epos Corporation", "IGMO", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
-GAME( 1984, dealer, 0, dealer, dealer, epos_state, dealer, ROT270, "Epos Corporation", "The Dealer", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
-GAME( 1984, revenger, 0, dealer, dealer, epos_state, dealer, ROT270, "Epos Corporation", "Revenger", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
+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( 1984, dealer, 0, dealer, dealer, epos_state, dealer, ROT270, "Epos Corporation", "The Dealer", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE )
+GAME( 1984, revenger, 0, dealer, dealer, epos_state, dealer, ROT270, "Epos Corporation", "Revenger", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/eprom.c b/src/mame/drivers/eprom.c
index 41268274452..87f9fb4063e 100644
--- a/src/mame/drivers/eprom.c
+++ b/src/mame/drivers/eprom.c
@@ -749,8 +749,8 @@ DRIVER_INIT_MEMBER(eprom_state,guts)
*
*************************************/
-GAME( 1989, eprom, 0, eprom, eprom, eprom_state, eprom, ROT0, "Atari Games", "Escape from the Planet of the Robot Monsters (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1989, eprom2, eprom, eprom, eprom, eprom_state, eprom, ROT0, "Atari Games", "Escape from the Planet of the Robot Monsters (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1989, klaxp1, klax, klaxp, klaxp, eprom_state, klaxp, ROT0, "Atari Games", "Klax (prototype set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1989, klaxp2, klax, klaxp, klaxp, eprom_state, klaxp, ROT0, "Atari Games", "Klax (prototype set 2)", GAME_SUPPORTS_SAVE )
+GAME( 1989, eprom, 0, eprom, eprom, eprom_state, eprom, ROT0, "Atari Games", "Escape from the Planet of the Robot Monsters (set 1)", MACHINE_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/equites.c b/src/mame/drivers/equites.c
index 17de0a8ab1e..bf5dcfc58d9 100644
--- a/src/mame/drivers/equites.c
+++ b/src/mame/drivers/equites.c
@@ -1885,13 +1885,13 @@ DRIVER_INIT_MEMBER(equites_state,hvoltage)
// Game Entries
// Equites Hardware
-GAME( 1984, equites, 0, equites, equites, equites_state, equites, ROT90, "Alpha Denshi Co.", "Equites", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1984, equitess, equites, equites, equites, equites_state, equites, ROT90, "Alpha Denshi Co. (Sega license)", "Equites (Sega)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1984, bullfgtr, 0, equites, bullfgtr, equites_state, bullfgtr, ROT90, "Alpha Denshi Co.", "Bull Fighter", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1984, bullfgtrs,bullfgtr, equites, bullfgtr, equites_state, bullfgtr, ROT90, "Alpha Denshi Co. (Sega license)", "Bull Fighter (Sega)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1985, kouyakyu, 0, equites, kouyakyu, equites_state, kouyakyu, ROT0, "Alpha Denshi Co.", "The Koukouyakyuh", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1985, gekisou, 0, gekisou, gekisou, equites_state, gekisou, ROT90, "Eastern Corp.", "Gekisou (Japan)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+GAME( 1984, equites, 0, equites, equites, equites_state, equites, ROT90, "Alpha Denshi Co.", "Equites", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1984, equitess, equites, equites, equites, equites_state, equites, ROT90, "Alpha Denshi Co. (Sega license)", "Equites (Sega)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1984, bullfgtr, 0, equites, bullfgtr, equites_state, bullfgtr, ROT90, "Alpha Denshi Co.", "Bull Fighter", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1984, bullfgtrs,bullfgtr, equites, bullfgtr, equites_state, bullfgtr, ROT90, "Alpha Denshi Co. (Sega license)", "Bull Fighter (Sega)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1985, kouyakyu, 0, equites, kouyakyu, equites_state, kouyakyu, ROT0, "Alpha Denshi Co.", "The Koukouyakyuh", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1985, gekisou, 0, gekisou, gekisou, equites_state, gekisou, ROT90, "Eastern Corp.", "Gekisou (Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
// Splendor Blast Hardware
-GAME( 1985, splndrbt, 0, splndrbt, splndrbt, equites_state, splndrbt, ROT0, "Alpha Denshi Co.", "Splendor Blast", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1985, hvoltage, 0, splndrbt, hvoltage, equites_state, hvoltage, ROT0, "Alpha Denshi Co.", "High Voltage", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+GAME( 1985, splndrbt, 0, splndrbt, splndrbt, equites_state, splndrbt, ROT0, "Alpha Denshi Co.", "Splendor Blast", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1985, hvoltage, 0, splndrbt, hvoltage, equites_state, hvoltage, ROT0, "Alpha Denshi Co.", "High Voltage", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/ertictac.c b/src/mame/drivers/ertictac.c
index dc3d05d682c..0eeaf5bc025 100644
--- a/src/mame/drivers/ertictac.c
+++ b/src/mame/drivers/ertictac.c
@@ -358,7 +358,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" ,GAME_IMPERFECT_SOUND)
-GAME( 1990, ertictaca, ertictac, ertictac, ertictac, ertictac_state, ertictac, ROT0, "Sisteme", "Erotictac/Tactic (ver 01)" ,GAME_IMPERFECT_SOUND)
-GAME( 1990, ertictacb, ertictac, ertictac, ertictac, ertictac_state, ertictac, ROT0, "Sisteme", "Erotictac/Tactic (set 2)" ,GAME_IMPERFECT_SOUND)
-GAME( 1991, poizone, 0, ertictac, poizone, ertictac_state, ertictac, ROT0, "Eterna" ,"Poizone" ,GAME_IMPERFECT_SOUND|GAME_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.c b/src/mame/drivers/esd16.c
index e680e35fa10..badd4bd76d5 100644
--- a/src/mame/drivers/esd16.c
+++ b/src/mame/drivers/esd16.c
@@ -1529,25 +1529,25 @@ ROM_END
***************************************************************************/
/* ESD 11-09-98 */
-GAME( 1999, multchmp, 0, esd16, multchmp, driver_device, 0, ROT0, "ESD", "Multi Champ (World, ver. 2.5)", GAME_SUPPORTS_SAVE )
-GAME( 1998, multchmpk,multchmp, esd16, multchmp, driver_device, 0, ROT0, "ESD", "Multi Champ (Korea)", GAME_SUPPORTS_SAVE )
-GAME( 2001, jumppop, 0, jumppop, jumppop, driver_device, 0, ROT0, "ESD", "Jumping Pop (set 1)", GAME_SUPPORTS_SAVE ) /* Redesigned(?) ESD 11-09-98 with no ID# */
-GAME( 2001, jumppope, jumppop, jumppop, jumppop, driver_device, 0, ROT0, "Emag Soft", "Jumping Pop (set 2)", GAME_SUPPORTS_SAVE )
+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)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, jumppop, 0, jumppop, jumppop, driver_device, 0, ROT0, "ESD", "Jumping Pop (set 1)", MACHINE_SUPPORTS_SAVE ) /* Redesigned(?) ESD 11-09-98 with no ID# */
+GAME( 2001, jumppope, jumppop, jumppop, jumppop, driver_device, 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)", GAME_SUPPORTS_SAVE )
+GAME( 1999, hedpanico,hedpanic, hedpanio, hedpanic, driver_device, 0, ROT0, "ESD", "Head Panic (ver. 0615, 15/06/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)", GAME_SUPPORTS_SAVE )
-GAME( 1999, mchampdxa,mchampdx, mchampdx, hedpanic, driver_device, 0, ROT0, "ESD", "Multi Champ Deluxe (ver. 1126, 26/11/1999)", GAME_SUPPORTS_SAVE )
-GAME( 1999, mchampdxb,mchampdx, mchampdx, hedpanic, driver_device, 0, ROT0, "ESD", "Multi Champ Deluxe (ver. 1114, 14/11/1999)", GAME_SUPPORTS_SAVE )
-GAME( 2000, hedpanic, 0, hedpanic, hedpanic, driver_device, 0, ROT0, "ESD", "Head Panic (ver. 0117, 17/01/2000)", GAME_SUPPORTS_SAVE )
-GAME( 2000, hedpanicf,hedpanic, hedpanic, hedpanic, driver_device, 0, ROT0, "ESD / Fuuki", "Head Panic (ver. 0315, 15/03/2000)", GAME_SUPPORTS_SAVE )
+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 )
/* 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)", GAME_SUPPORTS_SAVE ) // all 3 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)", GAME_SUPPORTS_SAVE )
-GAME( 2000, deluxe5b, deluxe5, tangtang, hedpanic, driver_device, 0, ROT0, "ESD", "Deluxe 5 (ver. 0107, 07/01/2000, set 3)", GAME_SUPPORTS_SAVE )
+GAME( 2000, deluxe5, 0, tangtang, hedpanic, driver_device, 0, ROT0, "ESD", "Deluxe 5 (ver. 0107, 07/01/2000, set 1)", MACHINE_SUPPORTS_SAVE ) // all 3 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, tangtang, 0, tangtang, hedpanic, driver_device, 0, ROT0, "ESD", "Tang Tang (ver. 0526, 26/05/2000)", GAME_SUPPORTS_SAVE )
-GAME( 2001, swatpolc, 0, hedpanic, swatpolc, driver_device, 0, ROT0, "ESD", "SWAT Police", GAME_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 )
diff --git a/src/mame/drivers/esh.c b/src/mame/drivers/esh.c
index e0249eeefc2..ec7670cb408 100644
--- a/src/mame/drivers/esh.c
+++ b/src/mame/drivers/esh.c
@@ -424,6 +424,6 @@ 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)", GAME_NOT_WORKING|GAME_NO_SOUND)
-GAME( 1983, esha, esh, esh, esh, esh_state, esh, ROT0, "Funai/Gakken", "Esh's Aurunmilla (set 2)", GAME_NOT_WORKING|GAME_NO_SOUND)
-GAME( 1983, eshb, esh, esh, esh, esh_state, esh, ROT0, "Funai/Gakken", "Esh's Aurunmilla (set 3)", GAME_NOT_WORKING|GAME_NO_SOUND)
+GAME( 1983, esh, 0, esh, esh, esh_state, esh, ROT0, "Funai/Gakken", "Esh's Aurunmilla (set 1)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND)
+GAME( 1983, esha, esh, esh, esh, esh_state, esh, ROT0, "Funai/Gakken", "Esh's Aurunmilla (set 2)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND)
+GAME( 1983, eshb, esh, esh, esh, esh_state, esh, ROT0, "Funai/Gakken", "Esh's Aurunmilla (set 3)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/espial.c b/src/mame/drivers/espial.c
index 05c43782f24..f563add57a0 100644
--- a/src/mame/drivers/espial.c
+++ b/src/mame/drivers/espial.c
@@ -438,6 +438,6 @@ ROM_END
-GAME( 1983, espial, 0, espial, espial, driver_device, 0, ROT0, "Orca / Thunderbolt", "Espial (Europe)", GAME_SUPPORTS_SAVE )
-GAME( 1983, espialu, espial, espial, espial, driver_device, 0, ROT0, "Orca / Thunderbolt", "Espial (US?)", GAME_SUPPORTS_SAVE )
-GAME( 1983, netwars, 0, netwars, netwars, driver_device, 0, ROT90, "Orca (Esco Trading Co license)", "Net Wars", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/esq1.c b/src/mame/drivers/esq1.c
index 3dcf511f95a..b37f26185aa 100644
--- a/src/mess/drivers/esq1.c
+++ b/src/mame/drivers/esq1.c
@@ -693,6 +693,6 @@ ROM_START( esqm )
ROM_END
-CONS( 1986, esq1, 0 , 0, esq1, esq1, driver_device, 0, "Ensoniq", "ESQ-1", GAME_NOT_WORKING )
-CONS( 1986, esqm, esq1, 0, esq1, esq1, driver_device, 0, "Ensoniq", "ESQ-M", GAME_NOT_WORKING )
-CONS( 1988, sq80, 0, 0, sq80, esq1, driver_device, 0, "Ensoniq", "SQ-80", GAME_NOT_WORKING )
+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 )
diff --git a/src/mess/drivers/esq5505.c b/src/mame/drivers/esq5505.c
index 69f3c380971..aaca4b127da 100644
--- a/src/mess/drivers/esq5505.c
+++ b/src/mame/drivers/esq5505.c
@@ -945,11 +945,11 @@ DRIVER_INIT_MEMBER(esq5505_state,denib)
}
}
-CONS( 1988, eps, 0, 0, eps, vfx, esq5505_state, eps, "Ensoniq", "EPS", GAME_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", GAME_NOT_WORKING ) // 2x40 VFD
-CONS( 1989, vfxsd, 0, 0, vfxsd, vfx, esq5505_state, denib, "Ensoniq", "VFX-SD", GAME_NOT_WORKING ) // 2x40 VFD
-CONS( 1990, eps16p,eps, 0, eps, vfx, esq5505_state, eps, "Ensoniq", "EPS-16 Plus", GAME_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)", GAME_NOT_WORKING ) // 2x40 VFD
-CONS( 1990, sq1, 0, 0, sq1, vfx, esq5505_state, sq1, "Ensoniq", "SQ-1", GAME_NOT_WORKING ) // 2x16 LCD
-CONS( 1990, sqrack,sq1, 0, sq1, vfx, esq5505_state, sq1, "Ensoniq", "SQ-Rack", GAME_NOT_WORKING ) // 2x16 LCD
-CONS( 1991, sd132, sd1,0, vfx32, vfx, esq5505_state, denib, "Ensoniq", "SD-1 (32 voice)", GAME_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, vfx, esq5505_state, sq1, "Ensoniq", "SQ-1", MACHINE_NOT_WORKING ) // 2x16 LCD
+CONS( 1990, sqrack,sq1, 0, sq1, vfx, esq5505_state, sq1, "Ensoniq", "SQ-Rack", 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/mess/drivers/esqasr.c b/src/mame/drivers/esqasr.c
index b529ce7e75e..6ae09247b70 100644
--- a/src/mess/drivers/esqasr.c
+++ b/src/mame/drivers/esqasr.c
@@ -163,5 +163,5 @@ DRIVER_INIT_MEMBER(esqasr_state, asr)
{
}
-CONS( 1992, asr10, 0, 0, asr, asr, esqasr_state, asr, "Ensoniq", "ASR-10", GAME_NOT_WORKING )
-CONS( 1997, asrx, 0, 0, asrx,asr, esqasr_state, asr, "Ensoniq", "ASR-X", GAME_NOT_WORKING )
+CONS( 1992, asr10, 0, 0, asr, asr, esqasr_state, asr, "Ensoniq", "ASR-10", MACHINE_NOT_WORKING )
+CONS( 1997, asrx, 0, 0, asrx,asr, esqasr_state, asr, "Ensoniq", "ASR-X", MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/esqkt.c b/src/mame/drivers/esqkt.c
index ff97daaf644..293844aa880 100644
--- a/src/mess/drivers/esqkt.c
+++ b/src/mame/drivers/esqkt.c
@@ -269,4 +269,4 @@ DRIVER_INIT_MEMBER(esqkt_state, kt)
m_duart_io = 0;
}
-CONS( 1996, kt76, 0, 0, kt, kt, esqkt_state, kt, "Ensoniq", "KT-76", GAME_IMPERFECT_SOUND )
+CONS( 1996, kt76, 0, 0, kt, kt, esqkt_state, kt, "Ensoniq", "KT-76", MACHINE_IMPERFECT_SOUND )
diff --git a/src/mess/drivers/esqmr.c b/src/mame/drivers/esqmr.c
index fef4b812fa7..058bd186251 100644
--- a/src/mess/drivers/esqmr.c
+++ b/src/mame/drivers/esqmr.c
@@ -315,5 +315,5 @@ DRIVER_INIT_MEMBER(esqmr_state, mr)
{
}
-CONS( 1996, mr61, 0, 0, mr, mr, esqmr_state, mr, "Ensoniq", "MR-61 Workstation", GAME_NOT_WORKING )
-CONS( 1996, mrrack, 0, 0, mr, mr, esqmr_state, mr, "Ensoniq", "MR-Rack", GAME_NOT_WORKING )
+CONS( 1996, mr61, 0, 0, mr, mr, esqmr_state, mr, "Ensoniq", "MR-61 Workstation", MACHINE_NOT_WORKING )
+CONS( 1996, mrrack, 0, 0, mr, mr, esqmr_state, mr, "Ensoniq", "MR-Rack", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/esripsys.c b/src/mame/drivers/esripsys.c
index 1333ac7b05b..8119d2f60df 100644
--- a/src/mame/drivers/esripsys.c
+++ b/src/mame/drivers/esripsys.c
@@ -1071,6 +1071,6 @@ ROM_END
*
*************************************/
-GAME( 1985, turbosub, 0, esripsys, turbosub, esripsys_state, esripsys, ROT0, "Entertainment Sciences", "Turbo Sub (prototype rev. TSCA)", GAME_SUPPORTS_SAVE )
-GAME( 1985, turbosub7, turbosub, esripsys, turbosub, esripsys_state, esripsys, ROT0, "Entertainment Sciences", "Turbo Sub (prototype rev. TSC7)", GAME_SUPPORTS_SAVE )
-GAME( 1985, turbosub6, turbosub, esripsys, turbosub, esripsys_state, esripsys, ROT0, "Entertainment Sciences", "Turbo Sub (prototype rev. TSC6)", GAME_SUPPORTS_SAVE )
+GAME( 1985, turbosub, 0, esripsys, turbosub, esripsys_state, esripsys, ROT0, "Entertainment Sciences", "Turbo Sub (prototype rev. TSCA)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, turbosub7, turbosub, esripsys, turbosub, esripsys_state, esripsys, ROT0, "Entertainment Sciences", "Turbo Sub (prototype rev. TSC7)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, turbosub6, turbosub, esripsys, turbosub, esripsys_state, esripsys, ROT0, "Entertainment Sciences", "Turbo Sub (prototype rev. TSC6)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/et3400.c b/src/mame/drivers/et3400.c
index 8050c4712c5..bf9806787c0 100644
--- a/src/mess/drivers/et3400.c
+++ b/src/mame/drivers/et3400.c
@@ -120,4 +120,4 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 1976, et3400, 0, 0, et3400, et3400, driver_device, 0, "Heath Inc", "Heathkit ET-3400", GAME_NO_SOUND_HW)
+COMP( 1976, et3400, 0, 0, et3400, et3400, driver_device, 0, "Heath Inc", "Heathkit ET-3400", MACHINE_NO_SOUND_HW)
diff --git a/src/mame/drivers/eti660.c b/src/mame/drivers/eti660.c
new file mode 100644
index 00000000000..238ec6d9b6f
--- /dev/null
+++ b/src/mame/drivers/eti660.c
@@ -0,0 +1,350 @@
+// license:BSD-3-Clause
+// copyright-holders:Curt Coder, Robbbert
+/*****************************************************************************************
+
+ ETI project 660, featured in the Australian magazine Electronics Today International.
+
+ Commands:
+ R - Reset (use this before any other instruction)
+ S - Step
+ 0 - Enter modify memory mode
+ 2 - Save memory to cassette
+ 4 - Load memory from cassette
+ 6 - start binary program
+ 8 - start chip-8 program.
+
+ To modify memory, press R, 0, enter 4-digit address, S, enter data, S, continue on.
+ R to escape.
+
+ To save a tape, enter the start address into 0400,0401 (big endian), and the end
+ address into 0402,0403. Press R. Press record on the tape, press 2.
+
+ To load a tape, enter the start and end addresses as above. Press R, 4. Screen goes
+ black. Press play on tape. If the screen is still black after the tape ends, press R.
+
+ All chip-8 programs start at 0600. The manual says the max end address is 7FF (gives
+ 512 bytes), but you can fill up all of memory (gives 2560 bytes).
+
+ TODO:
+ - sometimes there's no sound when started. You may need to hard reset until it beeps.
+ - don't know why, but the expected behaviour of our 6821 pia isn't what this machine
+ expects, so had to add a couple of hacks.
+ - doesn't run programs for other chip-8 computers (this might be normal?)
+ - we support BIN files, but have none to test with.
+ - in Invaders, can't shoot them
+ - in Maze, the result is rubbish (works in Emma02 emulator)
+
+**************************************************************************************************/
+
+#include "includes/eti660.h"
+
+/* Read/Write Handlers */
+
+READ8_MEMBER( eti660_state::pia_r )
+{
+ UINT8 pia_offset = m_maincpu->get_memory_address() & 0x03;
+
+ return m_pia->read(space, pia_offset);
+}
+
+WRITE8_MEMBER( eti660_state::pia_w )
+{
+ UINT8 pia_offset = m_maincpu->get_memory_address() & 0x03;
+
+ // Some PIA hacks here, as mentioned in the ToDo.
+ if (pia_offset == 1)
+ {
+ // switch color on when requested (test with Wipeout game)
+ if (data == 0x2c)
+ m_color_on = 1;
+ // enable keyboard
+ if (data == 0x20)
+ data = 0x24;
+ }
+
+ m_pia->write(space, pia_offset, data);
+}
+
+WRITE8_MEMBER( eti660_state::colorram_w )
+{
+ offset = m_maincpu->get_memory_address() - 0xc80;
+
+ UINT8 colorram_offset = (((offset & 0x1f0) >> 1) | (offset & 0x07));
+
+ if (colorram_offset < 0xc0)
+ m_color_ram[colorram_offset] = data;
+}
+
+/* Memory Maps */
+
+static ADDRESS_MAP_START( eti660_map, AS_PROGRAM, 8, eti660_state )
+ ADDRESS_MAP_GLOBAL_MASK(0xfff)
+ AM_RANGE(0x0000, 0x03ff) AM_ROM
+ AM_RANGE(0x0400, 0x047f) AM_RAM
+ AM_RANGE(0x0480, 0x05ff) AM_RAM AM_SHARE("videoram")
+ AM_RANGE(0x0600, 0x0fff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( eti660_io_map, AS_IO, 8, eti660_state )
+ AM_RANGE(0x01, 0x01) AM_DEVREADWRITE(CDP1864_TAG, cdp1864_device, dispon_r, step_bgcolor_w)
+ AM_RANGE(0x02, 0x02) AM_READWRITE(pia_r, pia_w)
+ AM_RANGE(0x03, 0x03) AM_WRITE(colorram_w)
+ AM_RANGE(0x04, 0x04) AM_DEVREADWRITE(CDP1864_TAG, cdp1864_device, dispoff_r, tone_latch_w)
+ADDRESS_MAP_END
+
+/* Input Ports */
+static INPUT_PORTS_START( eti660 )
+ PORT_START("KEY.0")
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_3) PORT_CHAR('3')
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_2) PORT_CHAR('2')
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_1) PORT_CHAR('1')
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_0) PORT_CHAR('0')
+ PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_START("KEY.1")
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_7) PORT_CHAR('7')
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_6) PORT_CHAR('6')
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_5) PORT_CHAR('5')
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_4) PORT_CHAR('4')
+ PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_START("KEY.2")
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_B) PORT_CHAR('B')
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_A) PORT_CHAR('A')
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_9) PORT_CHAR('9')
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_8) PORT_CHAR('8')
+ PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_START("KEY.3")
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_F) PORT_CHAR('F')
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_E) PORT_CHAR('E')
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_D) PORT_CHAR('D')
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_C) PORT_CHAR('C')
+ PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_START("SPECIAL")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("RESET") PORT_CODE(KEYCODE_R)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("STEP") PORT_CODE(KEYCODE_S)
+INPUT_PORTS_END
+
+/* Video */
+
+READ_LINE_MEMBER( eti660_state::rdata_r )
+{
+ return BIT(m_color, 0);
+}
+
+READ_LINE_MEMBER( eti660_state::bdata_r )
+{
+ return BIT(m_color, 1);
+}
+
+READ_LINE_MEMBER( eti660_state::gdata_r )
+{
+ return BIT(m_color, 2);
+}
+
+/* CDP1802 Interface */
+
+READ_LINE_MEMBER( eti660_state::clear_r )
+{
+ // A hack to make the machine reset itself on
+ // boot, like the real one does.
+ if (m_resetcnt < 0xffff)
+ m_resetcnt++;
+ if (m_resetcnt == 0xff00)
+ return 0;
+ return BIT(m_special->read(), 0); // R key
+}
+
+READ_LINE_MEMBER( eti660_state::ef2_r )
+{
+ return m_cassette->input() < 0;
+}
+
+READ_LINE_MEMBER( eti660_state::ef4_r )
+{
+ return BIT(m_special->read(), 1); // S key
+}
+
+WRITE_LINE_MEMBER( eti660_state::q_w )
+{
+ /* CDP1864 audio output enable */
+ m_cti->aoe_w(state);
+
+ /* PULSE led */
+ set_led_status(machine(), LED_PULSE, state);
+
+ /* tape output */
+ m_cassette->output(state ? 1.0 : -1.0);
+}
+
+WRITE8_MEMBER( eti660_state::dma_w )
+{
+ offset -= 0x480;
+
+ m_color = 7;
+
+ if (m_color_on)
+ {
+ UINT8 colorram_offset = ((offset & 0x1f0) >> 1) | (offset & 0x07);
+
+ if (colorram_offset < 0xc0)
+ m_color = m_color_ram[colorram_offset];
+ }
+ else
+ m_color = m_p_videoram[offset] ? 7 : 0;
+
+ m_cti->con_w(0); // HACK
+ m_cti->dma_w(space, offset, data);
+}
+
+/* PIA6821 Interface */
+
+READ8_MEMBER( eti660_state::pia_pa_r )
+{
+ /*
+
+ bit description
+
+ PA0 keyboard row 0
+ PA1 keyboard row 1
+ PA2 keyboard row 2
+ PA3 keyboard row 3
+ PA4 keyboard column 0
+ PA5 keyboard column 1
+ PA6 keyboard column 2
+ PA7 keyboard column 3
+
+ */
+
+ UINT8 i, data = 0xff;
+
+ for (i = 0; i < 4; i++)
+ if BIT(m_keylatch, i)
+ return m_io_keyboard[i]->read();
+
+ return data;
+}
+
+WRITE8_MEMBER( eti660_state::pia_pa_w )
+{
+ /*
+
+ bit description
+
+ PA0 keyboard row 0
+ PA1 keyboard row 1
+ PA2 keyboard row 2
+ PA3 keyboard row 3
+ PA4 keyboard column 0
+ PA5 keyboard column 1
+ PA6 keyboard column 2
+ PA7 keyboard column 3
+
+ */
+
+ m_keylatch = data ^ 0xff;
+}
+
+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
+}
+
+void eti660_state::machine_start()
+{
+ save_item(NAME(m_color_ram));
+}
+
+QUICKLOAD_LOAD_MEMBER( eti660_state, eti660 )
+{
+ address_space &space = m_maincpu->space(AS_PROGRAM);
+ int i;
+ int quick_addr = 0x600;
+ int quick_length;
+ dynamic_buffer quick_data;
+ int read_;
+ int result = IMAGE_INIT_FAIL;
+
+ quick_length = image.length();
+ quick_data.resize(quick_length);
+ read_ = image.fread( &quick_data[0], quick_length);
+ if (read_ != quick_length)
+ {
+ image.seterror(IMAGE_ERROR_INVALIDIMAGE, "Cannot read the file");
+ image.message(" Cannot read the file");
+ }
+ else
+ {
+ for (i = 0; i < quick_length; i++)
+ if ((quick_addr + i) < 0x1000)
+ space.write_byte(i + quick_addr, quick_data[i]);
+
+ /* display a message about the loaded quickload */
+ if (strcmp(image.filetype(), "bin") == 0)
+ image.message(" Quickload: size=%04X : start=%04X : end=%04X : Press 6 to start",quick_length,quick_addr,quick_addr+quick_length);
+ else
+ image.message(" Quickload: size=%04X : start=%04X : end=%04X : Press 8 to start",quick_length,quick_addr,quick_addr+quick_length);
+
+ result = IMAGE_INIT_PASS;
+ }
+
+ return result;
+}
+
+/* Machine Drivers */
+
+static MACHINE_CONFIG_START( eti660, eti660_state )
+ /* basic machine hardware */
+ MCFG_CPU_ADD(CDP1802_TAG, CDP1802, XTAL_8_867238MHz/5)
+ MCFG_CPU_PROGRAM_MAP(eti660_map)
+ MCFG_CPU_IO_MAP(eti660_io_map)
+ MCFG_COSMAC_WAIT_CALLBACK(VCC)
+ MCFG_COSMAC_CLEAR_CALLBACK(READLINE(eti660_state, clear_r))
+ MCFG_COSMAC_EF2_CALLBACK(READLINE(eti660_state, ef2_r))
+ MCFG_COSMAC_EF4_CALLBACK(READLINE(eti660_state, ef4_r))
+ MCFG_COSMAC_Q_CALLBACK(WRITELINE(eti660_state, q_w))
+ MCFG_COSMAC_DMAW_CALLBACK(WRITE8(eti660_state, dma_w))
+
+ /* video hardware */
+ MCFG_CDP1864_SCREEN_ADD(SCREEN_TAG, XTAL_8_867238MHz/5)
+ MCFG_SCREEN_UPDATE_DEVICE(CDP1864_TAG, cdp1864_device, screen_update)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_CDP1864_ADD(CDP1864_TAG, SCREEN_TAG, XTAL_8_867238MHz/5, GND, INPUTLINE(CDP1802_TAG, COSMAC_INPUT_LINE_INT), INPUTLINE(CDP1802_TAG, COSMAC_INPUT_LINE_DMAOUT), INPUTLINE(CDP1802_TAG, COSMAC_INPUT_LINE_EF1), NULL, READLINE(eti660_state, rdata_r), READLINE(eti660_state, bdata_r), READLINE(eti660_state, gdata_r))
+ MCFG_CDP1864_CHROMINANCE(RES_K(2.2), RES_K(1), RES_K(4.7), RES_K(4.7)) // R7, R5, R6, R4
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+
+ /* devices */
+ MCFG_DEVICE_ADD(MC6821_TAG, PIA6821, 0)
+ MCFG_PIA_READPA_HANDLER(READ8(eti660_state, pia_pa_r))
+ MCFG_PIA_WRITEPA_HANDLER(WRITE8(eti660_state, pia_pa_w))
+ MCFG_PIA_IRQA_HANDLER(DEVWRITELINE(CDP1802_TAG, cosmac_device, int_w)) MCFG_DEVCB_INVERT
+ MCFG_PIA_IRQB_HANDLER(DEVWRITELINE(CDP1802_TAG, cosmac_device, int_w)) MCFG_DEVCB_INVERT
+
+ MCFG_CASSETTE_ADD("cassette")
+ MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED)
+
+ /* internal ram */
+ MCFG_RAM_ADD(RAM_TAG)
+ MCFG_RAM_DEFAULT_SIZE("3K")
+
+ /* quickload */
+ MCFG_QUICKLOAD_ADD("quickload", eti660_state, eti660, "bin,c8,ch8", 2)
+MACHINE_CONFIG_END
+
+/* ROMs */
+
+ROM_START( eti660 )
+ ROM_REGION( 0x10000, CDP1802_TAG, 0 )
+ 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 )
diff --git a/src/mame/drivers/ettrivia.c b/src/mame/drivers/ettrivia.c
index 24a0ff81157..0d4337afd49 100644
--- a/src/mame/drivers/ettrivia.c
+++ b/src/mame/drivers/ettrivia.c
@@ -466,4 +466,4 @@ GAME( 1985, promutrv, 0, ettrivia, ettrivia, driver_device, 0, ROT270, "E
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", GAME_WRONG_COLORS )
+GAME( 1986, strvmstr, 0, ettrivia, ettrivia, driver_device, 0, ROT270, "Enerdyne Technologies Inc.", "Super Trivia Master", MACHINE_WRONG_COLORS )
diff --git a/src/mess/drivers/europc.c b/src/mame/drivers/europc.c
index aaa0b706b19..a034b1213b1 100644
--- a/src/mess/drivers/europc.c
+++ b/src/mame/drivers/europc.c
@@ -505,4 +505,4 @@ ROM_START( europc )
ROM_LOAD("50145", 0xf8000, 0x8000, CRC(1775a11d) SHA1(54430d4d0462860860397487c9c109e6f70db8e3)) // V2.07
ROM_END
-COMP( 1988, europc, ibm5150, 0, europc, europc, europc_pc_state, europc, "Schneider Rdf. AG", "EURO PC", GAME_NOT_WORKING)
+COMP( 1988, europc, ibm5150, 0, europc, europc, europc_pc_state, europc, "Schneider Rdf. AG", "EURO PC", MACHINE_NOT_WORKING)
diff --git a/src/mess/drivers/evmbug.c b/src/mame/drivers/evmbug.c
index 148557c9e53..355eaca0769 100644
--- a/src/mess/drivers/evmbug.c
+++ b/src/mame/drivers/evmbug.c
@@ -114,4 +114,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 19??, evmbug, 0, 0, evmbug, evmbug, driver_device, 0, "Texas Instruments", "TMAM6095", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/excali64.c b/src/mame/drivers/excali64.c
index b68d0e1f67e..3e4664ca913 100644
--- a/src/mess/drivers/excali64.c
+++ b/src/mame/drivers/excali64.c
@@ -595,7 +595,9 @@ static MACHINE_CONFIG_START( excali64, excali64_state )
MCFG_WD2793_ADD("fdc", XTAL_16MHz / 16)
MCFG_WD_FDC_DRQ_CALLBACK(DEVWRITELINE("dma", z80dma_device, rdy_w))
MCFG_FLOPPY_DRIVE_ADD("fdc:0", excali64_floppies, "drive0", excali64_state::floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", excali64_floppies, "drive1", excali64_state::floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_DEVICE_ADD("dma", Z80DMA, XTAL_16MHz/4)
MCFG_Z80DMA_OUT_BUSREQ_CB(WRITELINE(excali64_state, busreq_w))
diff --git a/src/mame/drivers/exedexes.c b/src/mame/drivers/exedexes.c
index 45c4b028e34..2f0a5ce1e63 100644
--- a/src/mame/drivers/exedexes.c
+++ b/src/mame/drivers/exedexes.c
@@ -344,5 +344,5 @@ ROM_END
-GAME( 1985, exedexes, 0, exedexes, exedexes, driver_device, 0, ROT270, "Capcom", "Exed Exes", GAME_SUPPORTS_SAVE )
-GAME( 1985, savgbees, exedexes, exedexes, exedexes, driver_device, 0, ROT270, "Capcom (Memetron license)", "Savage Bees", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/exelv.c b/src/mame/drivers/exelv.c
index c48bd0234dc..fc1ad3d0c0e 100644
--- a/src/mess/drivers/exelv.c
+++ b/src/mame/drivers/exelv.c
@@ -104,11 +104,10 @@ public:
/* mailbox data */
UINT8 m_wx318; /* data of 74ls374 labeled wx318 */
UINT8 m_wx319; /* data of 74sl374 labeled wx319 */
- DECLARE_PALETTE_INIT(exelv);
+
TIMER_DEVICE_CALLBACK_MEMBER(exelv_hblank_interrupt);
DECLARE_DEVICE_IMAGE_LOAD_MEMBER( exelvision_cartridge );
-
};
@@ -450,21 +449,6 @@ static INPUT_PORTS_START(exelv)
INPUT_PORTS_END
-PALETTE_INIT_MEMBER(exelv_state, exelv)
-{
- int i, red, green, blue;
-
- /* create the 8 color palette */
- for (i = 0; i < 8; i++)
- {
- red = (i & 1) ? 255 : 0; /* red */
- green = (i & 2) ? 255 : 0; /* green */
- blue = (i & 4) ? 255 : 0; /* blue */
- palette.set_pen_color(i, red, green, blue);
- }
-}
-
-
/* Machine Initialization */
MACHINE_START_MEMBER( exelv_state, exl100)
@@ -525,8 +509,7 @@ static MACHINE_CONFIG_START( exl100, exelv_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_PALETTE("palette")
- MCFG_PALETTE_ADD("palette", 8)
- MCFG_PALETTE_INIT_OWNER(exelv_state, exelv)
+ MCFG_PALETTE_ADD_3BIT_RGB("palette")
// MCFG_DEVICE_ADD("vsm", SPEECHROM, 0)
@@ -575,8 +558,7 @@ static MACHINE_CONFIG_START( exeltel, exelv_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_PALETTE("palette")
- MCFG_PALETTE_ADD("palette", 8)
- MCFG_PALETTE_INIT_OWNER(exelv_state, exelv)
+ MCFG_PALETTE_ADD_3BIT_RGB("palette")
MCFG_DEVICE_ADD("vsm", SPEECHROM, 0)
@@ -620,5 +602,5 @@ ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
-COMP(1984, exl100, 0, 0, exl100, exelv, driver_device, 0, "Exelvision", "EXL 100", GAME_NOT_WORKING)
-COMP(1986, exeltel, exl100, 0, exeltel, exelv, driver_device, 0, "Exelvision", "Exeltel", GAME_NOT_WORKING)
+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)
diff --git a/src/mame/drivers/exerion.c b/src/mame/drivers/exerion.c
index bd15e7834b7..611a6d4c5d9 100644
--- a/src/mame/drivers/exerion.c
+++ b/src/mame/drivers/exerion.c
@@ -572,6 +572,6 @@ DRIVER_INIT_MEMBER(exerion_state,exerionb)
*
*************************************/
-GAME( 1983, exerion, 0, exerion, exerion, exerion_state, exerion, ROT90, "Jaleco", "Exerion", GAME_SUPPORTS_SAVE )
-GAME( 1983, exeriont, exerion, exerion, exerion, exerion_state, exerion, ROT90, "Jaleco (Taito America license)", "Exerion (Taito)", GAME_SUPPORTS_SAVE )
-GAME( 1983, exerionb, exerion, exerion, exerion, exerion_state, exerionb, ROT90, "bootleg", "Exerion (bootleg)", GAME_SUPPORTS_SAVE )
+GAME( 1983, exerion, 0, exerion, exerion, exerion_state, exerion, ROT90, "Jaleco", "Exerion", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, exeriont, exerion, exerion, exerion, exerion_state, exerion, ROT90, "Jaleco (Taito America license)", "Exerion (Taito)", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, exerionb, exerion, exerion, exerion, exerion_state, exerionb, ROT90, "bootleg", "Exerion (bootleg)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/exidy.c b/src/mame/drivers/exidy.c
index 706dab9d813..81d5d68ea9a 100644
--- a/src/mame/drivers/exidy.c
+++ b/src/mame/drivers/exidy.c
@@ -1551,34 +1551,34 @@ DRIVER_INIT_MEMBER(exidy_state,fax)
*
*************************************/
-GAME( 1979, sidetrac, 0, sidetrac, sidetrac, exidy_state, sidetrac, ROT0, "Exidy", "Side Trak", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // "Side Track" on title screen, but cabinet/flyers/documentation clearly indicates otherwise, "Side Trak" it is
+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", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, targc, targ, targ, targ, exidy_state, targ, ROT0, "Exidy", "Targ (cocktail?)", GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, spectar1, spectar, spectar, spectar, exidy_state, spectar, ROT0, "Exidy", "Spectar (revision 1?)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, rallys, spectar, rallys, rallys, exidy_state, rallys, ROT0, "bootleg (Novar)", "Rallys (bootleg of Spectar, set 1)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, rallysa, spectar, rallys, rallys, exidy_state, rallys, ROT0, "bootleg (Musik Box Brescia)", "Rallys (bootleg of Spectar, set 2)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, panzer, spectar, rallys, rallys, exidy_state, rallys, ROT0, "bootleg (Proel)", "Panzer (bootleg of Spectar)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, phantoma, spectar, rallys, phantoma, exidy_state, phantoma, ROT0, "bootleg (Jeutel)", "Phantomas (bootleg of Spectar)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, phantom, spectar, rallys, phantoma, exidy_state, phantoma, ROT0, "bootleg (Proel)", "Phantom (bootleg of Spectar)", GAME_IMPERFECT_SOUND | GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1981, mtrap3, mtrap, mtrap, mtrap, exidy_state, mtrap, ROT0, "Exidy", "Mouse Trap (version 3)", GAME_SUPPORTS_SAVE )
-GAME( 1981, mtrap4, mtrap, mtrap, mtrap, exidy_state, mtrap, ROT0, "Exidy", "Mouse Trap (version 4)", GAME_SUPPORTS_SAVE )
-GAME( 1981, mtrapb, mtrap, mtrap, mtrap, exidy_state, mtrap, ROT0, "bootleg", "Mouse Trap (bootleg)", GAME_SUPPORTS_SAVE )
+GAME( 1981, mtrap, 0, mtrap, mtrap, exidy_state, mtrap, ROT0, "Exidy", "Mouse Trap (version 5)", 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)", GAME_SUPPORTS_SAVE )
-GAME( 1981, venture2, venture, venture, venture, exidy_state, venture, ROT0, "Exidy", "Venture (version 5 set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1981, venture4, venture, venture, venture, exidy_state, venture, ROT0, "Exidy", "Venture (version 4)", GAME_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)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1982, pepper27, pepper2, pepper2, pepper2, exidy_state, pepper2, ROT0, "Exidy", "Pepper II (version 7)", GAME_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", GAME_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", GAME_SUPPORTS_SAVE )
-GAME( 1983, fax2, fax, fax, fax, exidy_state, fax, ROT0, "Exidy", "FAX 2", GAME_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/exidyttl.c b/src/mame/drivers/exidyttl.c
index 9878e0692f0..e5b6beba535 100644
--- a/src/mame/drivers/exidyttl.c
+++ b/src/mame/drivers/exidyttl.c
@@ -213,6 +213,6 @@ ROM_END
-GAME( 1977, attckexd, 0, attack, 0, driver_device, 0, ROT0, "Exidy", "Attack (Set 1) [TTL]", GAME_IS_SKELETON )
-GAME( 1977, attckexd2, attckexd, attack, 0, driver_device, 0, ROT0, "Exidy", "Attack (Set 2) [TTL]", GAME_IS_SKELETON )
-GAME( 1976, deathrac, 0, deathrac, 0, driver_device, 0, ROT0, "Exidy", "Death Race [TTL]", GAME_IS_SKELETON )
+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 )
diff --git a/src/mess/drivers/exp85.c b/src/mame/drivers/exp85.c
index 82d2c679f98..82d2c679f98 100644
--- a/src/mess/drivers/exp85.c
+++ b/src/mame/drivers/exp85.c
diff --git a/src/mame/drivers/expro02.c b/src/mame/drivers/expro02.c
index 9a68c8193b9..bd1d43e5840 100644
--- a/src/mame/drivers/expro02.c
+++ b/src/mame/drivers/expro02.c
@@ -1831,38 +1831,38 @@ DRIVER_INIT_MEMBER(expro02_state,expro02)
*
*************************************/
-GAME( 1990, galsnew, 0, expro02, expro02, expro02_state, expro02, ROT90, "Kaneko", "Gals Panic (US, EXPRO-02 PCB)", GAME_NO_COCKTAIL )
-GAME( 1990, galsnewa, galsnew, expro02, galsnewa, expro02_state, expro02, ROT90, "Kaneko", "Gals Panic (Export, EXPRO-02 PCB)", GAME_NO_COCKTAIL )
-GAME( 1990, galsnewj, galsnew, expro02, galsnewj, expro02_state, expro02, ROT90, "Kaneko (Taito license)", "Gals Panic (Japan, EXPRO-02 PCB)", GAME_NO_COCKTAIL )
-GAME( 1990, galsnewk, galsnew, expro02, galsnewj, expro02_state, expro02, ROT90, "Kaneko (Inter license)", "Gals Panic (Korea, EXPRO-02 PCB)", GAME_NO_COCKTAIL )
+GAME( 1990, galsnew, 0, expro02, expro02, expro02_state, expro02, ROT90, "Kaneko", "Gals Panic (US, EXPRO-02 PCB)", MACHINE_NO_COCKTAIL )
+GAME( 1990, galsnewa, galsnew, expro02, galsnewa, expro02_state, expro02, ROT90, "Kaneko", "Gals Panic (Export, EXPRO-02 PCB)", MACHINE_NO_COCKTAIL )
+GAME( 1990, galsnewj, galsnew, expro02, galsnewj, expro02_state, expro02, ROT90, "Kaneko (Taito license)", "Gals Panic (Japan, EXPRO-02 PCB)", MACHINE_NO_COCKTAIL )
+GAME( 1990, galsnewk, galsnew, expro02, galsnewj, expro02_state, expro02, ROT90, "Kaneko (Inter license)", "Gals Panic (Korea, EXPRO-02 PCB)", MACHINE_NO_COCKTAIL )
/* 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)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
-GAME( 1994, fantasiab, fantasia, comad, fantasia, expro02_state, expro02, ROT90, "Comad & New Japan System", "Fantasia (940429 PCB, set 2)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
-GAME( 1994, fantasiaa, fantasia, comad, fantasia, expro02_state, expro02, ROT90, "Comad & New Japan System", "Fantasia (940307 PCB)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
+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 )
+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 )
+GAME( 1994, fantasiaa, fantasia, comad, fantasia, expro02_state, expro02, ROT90, "Comad & New Japan System", "Fantasia (940307 PCB)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
/* 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)", GAME_NO_COCKTAIL )
+GAME( 1994, fantasian,fantasia, fantasia, fantasiaa, driver_device, 0, ROT90, "Comad & New Japan System", "Fantasia (940803 PCB)", MACHINE_NO_COCKTAIL )
-GAME( 1994, supmodel, 0, supmodel, fantasiaa, driver_device, 0, ROT90, "Comad & New Japan System", "Super Model",GAME_NO_COCKTAIL )
+GAME( 1994, supmodel, 0, supmodel, fantasiaa, driver_device, 0, ROT90, "Comad & New Japan System", "Super Model",MACHINE_NO_COCKTAIL )
-GAME( 1995, newfant, 0, fantasia, fantasiaa, driver_device, 0, ROT90, "Comad & New Japan System", "New Fantasia (1995 copyright)", GAME_NO_COCKTAIL ) // 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)", GAME_NO_COCKTAIL )
-GAME( 1995, fantsy95, newfant, fantasia, fantasiaa, driver_device, 0, ROT90, "Hi-max Technology Inc.", "Fantasy '95", GAME_NO_COCKTAIL )
+GAME( 1995, newfant, 0, fantasia, fantasiaa, driver_device, 0, ROT90, "Comad & New Japan System", "New Fantasia (1995 copyright)", MACHINE_NO_COCKTAIL ) // 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 )
+GAME( 1995, fantsy95, newfant, fantasia, fantasiaa, driver_device, 0, ROT90, "Hi-max Technology Inc.", "Fantasy '95", MACHINE_NO_COCKTAIL )
-GAME( 1996, missw96, 0, fantasia, missw96, driver_device, 0, ROT0, "Comad", "Miss World '96 (Nude) (set 1)", GAME_NO_COCKTAIL )
-GAME( 1996, missw96a, missw96, fantasia, missw96, driver_device, 0, ROT0, "Comad", "Miss World '96 (Nude) (set 2)", GAME_NO_COCKTAIL )
-GAME( 1996, missw96b, missw96, fantasia, missw96, driver_device, 0, ROT0, "Comad", "Miss World '96 (Nude) (set 3)", GAME_NO_COCKTAIL )
-GAME( 1996, missmw96, missw96, fantasia, missw96, driver_device, 0, ROT0, "Comad", "Miss Mister World '96 (Nude)", GAME_NO_COCKTAIL )
+GAME( 1996, missw96, 0, fantasia, missw96, driver_device, 0, ROT0, "Comad", "Miss World '96 (Nude) (set 1)", MACHINE_NO_COCKTAIL )
+GAME( 1996, missw96a, missw96, fantasia, missw96, driver_device, 0, ROT0, "Comad", "Miss World '96 (Nude) (set 2)", MACHINE_NO_COCKTAIL )
+GAME( 1996, missw96b, missw96, fantasia, missw96, driver_device, 0, ROT0, "Comad", "Miss World '96 (Nude) (set 3)", MACHINE_NO_COCKTAIL )
+GAME( 1996, missmw96, missw96, fantasia, missw96, driver_device, 0, ROT0, "Comad", "Miss Mister World '96 (Nude)", MACHINE_NO_COCKTAIL )
-GAME( 1996, smissw, 0, smissw, missw96, driver_device, 0, ROT0, "Comad", "Super Miss World", GAME_NO_COCKTAIL ) // 951127 PCB
+GAME( 1996, smissw, 0, smissw, missw96, driver_device, 0, ROT0, "Comad", "Super Miss World", MACHINE_NO_COCKTAIL ) // 951127 PCB
-GAME( 1997, fantsia2, 0, fantsia2, missw96, driver_device, 0, ROT0, "Comad", "Fantasia II (Explicit)", GAME_NO_COCKTAIL )
-GAME( 1997, fantsia2a,fantsia2, fantsia2, missw96, driver_device, 0, ROT0, "Comad", "Fantasia II (Less Explicit)", GAME_NO_COCKTAIL )
-GAME( 1998, fantsia2n,fantsia2, fantsia2, missw96, driver_device, 0, ROT0, "Comad", "Fantasia II (1998)", GAME_NO_COCKTAIL )
+GAME( 1997, fantsia2, 0, fantsia2, missw96, driver_device, 0, ROT0, "Comad", "Fantasia II (Explicit)", MACHINE_NO_COCKTAIL )
+GAME( 1997, fantsia2a,fantsia2, fantsia2, missw96, driver_device, 0, ROT0, "Comad", "Fantasia II (Less Explicit)", MACHINE_NO_COCKTAIL )
+GAME( 1998, fantsia2n,fantsia2, fantsia2, missw96, driver_device, 0, ROT0, "Comad", "Fantasia II (1998)", MACHINE_NO_COCKTAIL )
-GAME( 2002, wownfant, 0, fantsia2, missw96, driver_device, 0, ROT0, "Comad", "WOW New Fantasia", GAME_NO_COCKTAIL )
+GAME( 2002, wownfant, 0, fantsia2, missw96, driver_device, 0, ROT0, "Comad", "WOW New Fantasia", MACHINE_NO_COCKTAIL )
-GAME( 1996, pgalvip, 0, galhustl, galhustl, driver_device, 0, ROT0, "ACE International / Afega","Pocket Gals V.I.P (set 1)", GAME_IMPERFECT_GRAPHICS ) // roms were all AFEGA stickered, select screen seems wrong? maybe not a final version.
+GAME( 1996, pgalvip, 0, galhustl, galhustl, driver_device, 0, ROT0, "ACE International / Afega","Pocket Gals V.I.P (set 1)", MACHINE_IMPERFECT_GRAPHICS ) // roms were all AFEGA stickered, select screen seems wrong? maybe not a final version.
GAME( 1997, pgalvipa, pgalvip, galhustl, galhustl, driver_device, 0, ROT0, "<unknown>", "Pocket Gals V.I.P (set 2)", 0 )
GAME( 1997, galhustl, pgalvip, galhustl, galhustl, driver_device, 0, ROT0, "ACE International", "Gals Hustler", 0 ) // hack of the above?
-GAME( 1995, zipzap, 0, zipzap, zipzap, driver_device, 0, ROT90, "Barko Corp", "Zip & Zap", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND )
+GAME( 1995, zipzap, 0, zipzap, zipzap, driver_device, 0, ROT90, "Barko Corp", "Zip & Zap", MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_SOUND )
diff --git a/src/mame/drivers/exprraid.c b/src/mame/drivers/exprraid.c
index cd26b2a7833..dc70f742ec8 100644
--- a/src/mame/drivers/exprraid.c
+++ b/src/mame/drivers/exprraid.c
@@ -868,10 +868,10 @@ DRIVER_INIT_MEMBER(exprraid_state,wexpressb3)
}
-GAME( 1986, exprraid, 0, exprraid, exprraid, exprraid_state, exprraid, ROT0, "Data East Corporation", "Express Raider (World, Rev 4)", GAME_SUPPORTS_SAVE )
-GAME( 1986, exprraidu, exprraid, exprraid, exprraid, exprraid_state, exprraid, ROT0, "Data East USA", "Express Raider (US, rev 5)", GAME_SUPPORTS_SAVE )
-GAME( 1986, exprraidi, exprraid, exprraid, exprraid, exprraid_state, exprraid, ROT0, "Data East Corporation", "Express Raider (Italy)", GAME_SUPPORTS_SAVE )
-GAME( 1986, wexpress, exprraid, exprraid, exprraid, exprraid_state, exprraid, ROT0, "Data East Corporation", "Western Express (Japan, rev 4)", GAME_SUPPORTS_SAVE )
-GAME( 1986, wexpressb1,exprraid, exprraid, exprraid, exprraid_state, wexpressb, ROT0, "bootleg", "Western Express (bootleg set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1986, wexpressb2,exprraid, exprboot, exprboot, exprraid_state, wexpressb2,ROT0, "bootleg", "Western Express (bootleg set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1986, wexpressb3,exprraid, exprboot, exprboot, exprraid_state, wexpressb3,ROT0, "bootleg", "Western Express (bootleg set 3)", GAME_SUPPORTS_SAVE )
+GAME( 1986, exprraid, 0, exprraid, exprraid, exprraid_state, exprraid, ROT0, "Data East Corporation", "Express Raider (World, Rev 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, exprraidu, exprraid, exprraid, exprraid, exprraid_state, exprraid, ROT0, "Data East USA", "Express Raider (US, rev 5)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, exprraidi, exprraid, exprraid, exprraid, exprraid_state, exprraid, ROT0, "Data East Corporation", "Express Raider (Italy)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, wexpress, exprraid, exprraid, exprraid, exprraid_state, exprraid, ROT0, "Data East Corporation", "Western Express (Japan, rev 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, wexpressb1,exprraid, exprraid, exprraid, exprraid_state, wexpressb, ROT0, "bootleg", "Western Express (bootleg set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, wexpressb2,exprraid, exprboot, exprboot, exprraid_state, wexpressb2,ROT0, "bootleg", "Western Express (bootleg set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, wexpressb3,exprraid, exprboot, exprboot, exprraid_state, wexpressb3,ROT0, "bootleg", "Western Express (bootleg set 3)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/extrema.c b/src/mame/drivers/extrema.c
index 5f737355b7a..4412839f895 100644
--- a/src/mame/drivers/extrema.c
+++ b/src/mame/drivers/extrema.c
@@ -158,13 +158,13 @@ ROM_END
-GAME( 200?, maski, 0, extrema, extrema, driver_device, 0, ROT0, "Extrema", "Maski Show (Russia) (Extrema)", GAME_IS_SKELETON)
-GAME( 200?, adults, 0, extrema, extrema, driver_device, 0, ROT0, "Extrema", "Adults Only (Russia) (Extrema)", GAME_IS_SKELETON)
-GAME( 200?, bloto, 0, extrema, extrema, driver_device, 0, ROT0, "Extrema", "Blits Loto (Russia) (Extrema)", GAME_IS_SKELETON)
-GAME( 200?, blpearl, 0, extrema, extrema, driver_device, 0, ROT0, "Extrema", "Black Pearl (Russia) (Extrema)", GAME_IS_SKELETON)
-GAME( 200?, grancan, 0, extrema, extrema, driver_device, 0, ROT0, "Extrema", "Grand Canyon (Russia) (Extrema)", GAME_IS_SKELETON)
-GAME( 200?, luckshel, 0, extrema, extrema, driver_device, 0, ROT0, "Extrema", "Lucky Shell (Russia) (Extrema)", GAME_IS_SKELETON)
-GAME( 200?, exsafar, 0, extrema, extrema, driver_device, 0, ROT0, "Extrema", "Safari (Russia) (Extrema)", GAME_IS_SKELETON)
-GAME( 200?, strlink, 0, extrema, extrema, driver_device, 0, ROT0, "Extrema", "Strong Link (Russia) (Extrema)", GAME_IS_SKELETON)
-GAME( 200?, extrmth, 0, extrema, extrema, driver_device, 0, ROT0, "Extrema", "Treasure Hunt (Russia) (Extrema)", GAME_IS_SKELETON)
-GAME( 200?, extrmti, 0, extrema, extrema, driver_device, 0, ROT0, "Extrema", "Treasure Island (Russia) (Extrema)", GAME_IS_SKELETON)
+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)
diff --git a/src/mame/drivers/exzisus.c b/src/mame/drivers/exzisus.c
index 0322ca8b72f..8291560d45a 100644
--- a/src/mame/drivers/exzisus.c
+++ b/src/mame/drivers/exzisus.c
@@ -386,6 +386,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)", GAME_SUPPORTS_SAVE )
-GAME( 1987, exzisusa, exzisus, exzisus, exzisus, driver_device, 0, ROT0, "Taito Corporation", "Exzisus (Japan, conversion)", GAME_SUPPORTS_SAVE )
-GAME( 1987, exzisust, exzisus, exzisus, exzisus, driver_device, 0, ROT0, "Taito Corporation (TAD license)", "Exzisus (TAD license)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/f-32.c b/src/mame/drivers/f-32.c
index 0e06f788aa8..a3fa89710d5 100644
--- a/src/mame/drivers/f-32.c
+++ b/src/mame/drivers/f-32.c
@@ -361,5 +361,5 @@ ROM_START( royalpk2 )
ROM_END
-GAME( 1999, mosaicf2, 0, mosaicf2, mosaicf2, driver_device, 0, ROT0, "F2 System", "Mosaic (F2 System)", GAME_SUPPORTS_SAVE )
-GAME( 1999, royalpk2, 0, royalpk2, royalpk2, driver_device, 0, ROT0, "F2 System", "Royal Poker 2 (Network version 3.12)", GAME_NOT_WORKING )
+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 )
diff --git a/src/mame/drivers/f1gp.c b/src/mame/drivers/f1gp.c
index 73f0cd9d816..201fd3fdb57 100644
--- a/src/mame/drivers/f1gp.c
+++ b/src/mame/drivers/f1gp.c
@@ -671,7 +671,7 @@ ROM_START( f1gp2 )
ROM_END
-GAME( 1991, f1gp, 0, f1gp, f1gp, driver_device, 0, ROT90, "Video System Co.", "F-1 Grand Prix", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1991, f1gpb, f1gp, f1gpb, f1gp, driver_device, 0, ROT90, "bootleg (Playmark)", "F-1 Grand Prix (Playmark bootleg)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // PCB marked 'Super Formula II', manufactured by Playmark.
+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( 1992, f1gp2, 0, f1gp2, f1gp2, driver_device, 0, ROT90, "Video System Co.", "F-1 Grand Prix Part II", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/famibox.c b/src/mame/drivers/famibox.c
index 4fa86d1e071..cc27ae1d0ca 100644
--- a/src/mame/drivers/famibox.c
+++ b/src/mame/drivers/famibox.c
@@ -635,4 +635,4 @@ ROM_START(famibox)
ROM_END
-GAME( 1986, famibox, 0, famibox, famibox, driver_device, 0, ROT0, "Nintendo", "FamicomBox", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND)
+GAME( 1986, famibox, 0, famibox, famibox, driver_device, 0, ROT0, "Nintendo", "FamicomBox", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND)
diff --git a/src/mame/drivers/fantland.c b/src/mame/drivers/fantland.c
index 0cb319ac335..9153a4cb5a9 100644
--- a/src/mame/drivers/fantland.c
+++ b/src/mame/drivers/fantland.c
@@ -1404,8 +1404,8 @@ ROM_START( wheelrun )
ROM_END
-GAME( 19??, borntofi, 0, borntofi, borntofi, driver_device, 0, ROT0, "International Games", "Born To Fight", GAME_SUPPORTS_SAVE )
-GAME( 19??, fantland, 0, fantland, fantland, driver_device, 0, ROT0, "Electronic Devices Italy", "Fantasy Land (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 19??, fantlanda, fantland, fantland, fantland, driver_device, 0, ROT0, "Electronic Devices Italy", "Fantasy Land (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 19??, wheelrun, 0, wheelrun, wheelrun, driver_device, 0, ROT0, "International Games", "Wheels Runner", GAME_SUPPORTS_SAVE )
-GAME( 1989, galaxygn, 0, galaxygn, galaxygn, driver_device, 0, ROT90, "Electronic Devices Italy", "Galaxy Gunners", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/fanucs15.c b/src/mame/drivers/fanucs15.c
index 41e681b3518..ce3f9a79bac 100644
--- a/src/mess/drivers/fanucs15.c
+++ b/src/mame/drivers/fanucs15.c
@@ -420,4 +420,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1990, fanucs15, 0, 0, fanucs15, fanucs15, driver_device, 0, "Fanuc", "System 15", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/fanucspmg.c b/src/mame/drivers/fanucspmg.c
index 83a8dd42bb3..9b40227094b 100644
--- a/src/mess/drivers/fanucspmg.c
+++ b/src/mame/drivers/fanucspmg.c
@@ -1007,5 +1007,5 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 1983, fanucspgm, fanucspg, 0, fanucspmgm, fanucspmg, fanucspmg_state, fanucspmg, "Fanuc", "System P Model G (monochrome)", GAME_NOT_WORKING | GAME_NO_SOUND)
+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.c b/src/mame/drivers/fastfred.c
index 8e548f3068c..3165a2bfb66 100644
--- a/src/mame/drivers/fastfred.c
+++ b/src/mame/drivers/fastfred.c
@@ -1050,13 +1050,13 @@ DRIVER_INIT_MEMBER(fastfred_state,imago)
m_hardware_type = 3;
}
-GAME( 1982, flyboy, 0, fastfred, flyboy, fastfred_state, flyboy, ROT90, "Kaneko", "Fly-Boy", GAME_SUPPORTS_SAVE )
-GAME( 1982, flyboyb, flyboy, fastfred, flyboy, fastfred_state, flyboyb, ROT90, "bootleg", "Fly-Boy (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1982, fastfred, flyboy, fastfred, fastfred, fastfred_state, fastfred, ROT90, "Kaneko (Atari license)", "Fast Freddie", GAME_SUPPORTS_SAVE )
-GAME( 1983, jumpcoas, 0, jumpcoas, jumpcoas, fastfred_state, jumpcoas, ROT90, "Kaneko", "Jump Coaster", GAME_SUPPORTS_SAVE )
-GAME( 1983, jumpcoast,jumpcoas, jumpcoas, jumpcoas, fastfred_state, jumpcoas, ROT90, "Kaneko (Taito license)", "Jump Coaster (Taito)", GAME_SUPPORTS_SAVE )
-GAME( 1983, boggy84, 0, jumpcoas, boggy84, fastfred_state, boggy84, ROT90, "Kaneko", "Boggy '84", GAME_SUPPORTS_SAVE )
-GAME( 1983, boggy84b, boggy84, jumpcoas, boggy84, fastfred_state, boggy84b, ROT90, "bootleg (Eddie's Games)", "Boggy '84 (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1986, redrobin, 0, fastfred, redrobin, fastfred_state, flyboyb, ROT90, "Elettronolo", "Red Robin", GAME_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( 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 )
diff --git a/src/mame/drivers/fastlane.c b/src/mame/drivers/fastlane.c
index 1a7b1f0a931..0eda767b887 100644
--- a/src/mame/drivers/fastlane.c
+++ b/src/mame/drivers/fastlane.c
@@ -260,4 +260,4 @@ ROM_START( fastlane )
ROM_END
-GAME( 1987, fastlane, 0, fastlane, fastlane, driver_device, 0, ROT90, "Konami", "Fast Lane", GAME_NO_COCKTAIL | GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE )
+GAME( 1987, fastlane, 0, fastlane, fastlane, driver_device, 0, ROT90, "Konami", "Fast Lane", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/fb01.c b/src/mame/drivers/fb01.c
index 534f1b33235..88353f634f5 100644
--- a/src/mess/drivers/fb01.c
+++ b/src/mame/drivers/fb01.c
@@ -225,4 +225,4 @@ 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", GAME_SUPPORTS_SAVE )
+CONS( 1986, fb01, 0, 0, fb01, fb01, driver_device, 0, "Yamaha", "FB-01", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/fc100.c b/src/mame/drivers/fc100.c
index eb892c7952a..65d7c801bee 100644
--- a/src/mess/drivers/fc100.c
+++ b/src/mame/drivers/fc100.c
@@ -575,4 +575,4 @@ 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", GAME_NOT_WORKING )
+CONS( 1982, fc100, 0, 0, fc100, fc100, fc100_state, fc100, "Goldstar", "FC-100", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/fcombat.c b/src/mame/drivers/fcombat.c
index 50b86177ba4..cd1f0c1a03c 100644
--- a/src/mame/drivers/fcombat.c
+++ b/src/mame/drivers/fcombat.c
@@ -445,4 +445,4 @@ ROM_START( fcombat )
ROM_LOAD( "fcprom_c.a9", 0x0220, 0x0100, CRC(768ac120) SHA1(ceede1d6cbeae08da96ef52bdca2718a839d88ab) ) /* bg char mixer */
ROM_END
-GAME( 1985, fcombat, 0, fcombat, fcombat, fcombat_state, fcombat, ROT90, "Jaleco", "Field Combat", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
+GAME( 1985, fcombat, 0, fcombat, fcombat, fcombat_state, fcombat, ROT90, "Jaleco", "Field Combat", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/fcrash.c b/src/mame/drivers/fcrash.c
index f05c5dfaaef..06d4f59beb8 100644
--- a/src/mame/drivers/fcrash.c
+++ b/src/mame/drivers/fcrash.c
@@ -1782,10 +1782,10 @@ ROM_START( fcrash )
ROMX_LOAD( "12.bin", 0x080001, 0x20000, CRC(25055642) SHA1(578cf6a436489cc1f2d1acdb0cba6c1cbee2e21f) , ROM_SKIP(3) )
ROMX_LOAD( "14.bin", 0x080002, 0x20000, CRC(b77d0328) SHA1(42eb1ebfda301f2b09f3add5932e8331f4790706) , ROM_SKIP(3) )
ROMX_LOAD( "16.bin", 0x080003, 0x20000, CRC(ea111a79) SHA1(1b86aa984d2d6c527e96b61274a82263f34d0d89) , ROM_SKIP(3) )
- ROMX_LOAD( "19.bin", 0x100000, 0x20000, CRC(b3aa1f48) SHA1(411f3855739992f5967e915f2a5255afcedeac2e) , ROM_SKIP(3) )
- ROMX_LOAD( "21.bin", 0x100001, 0x20000, CRC(04d175c9) SHA1(33e6e3fefae4e3977c8c954fbd7feff36e92d723) , ROM_SKIP(3) )
- ROMX_LOAD( "23.bin", 0x100002, 0x20000, CRC(e592ba4f) SHA1(62559481e0da3954a90da0ab0fb51f87f1b3dd9d) , ROM_SKIP(3) )
- ROMX_LOAD( "25.bin", 0x100003, 0x20000, CRC(b89a740f) SHA1(516d73c772e0a904dfb0bd84874919d78bbbd200) , ROM_SKIP(3) )
+ ROMX_LOAD( "19.bin", 0x100000, 0x20000, CRC(b3aa1f48) SHA1(411f3855739992f5967e915f2a5255afcedeac2e) , ROM_SKIP(3) ) // only these 4 differ from ffightbla (new title logo)
+ ROMX_LOAD( "21.bin", 0x100001, 0x20000, CRC(04d175c9) SHA1(33e6e3fefae4e3977c8c954fbd7feff36e92d723) , ROM_SKIP(3) ) // ^
+ ROMX_LOAD( "23.bin", 0x100002, 0x20000, CRC(e592ba4f) SHA1(62559481e0da3954a90da0ab0fb51f87f1b3dd9d) , ROM_SKIP(3) ) // ^
+ ROMX_LOAD( "25.bin", 0x100003, 0x20000, CRC(b89a740f) SHA1(516d73c772e0a904dfb0bd84874919d78bbbd200) , ROM_SKIP(3) ) // ^
ROMX_LOAD( "11.bin", 0x180000, 0x20000, CRC(d4457a60) SHA1(9e956efafa81a81aca92837df03968f5670ffc15) , ROM_SKIP(3) )
ROMX_LOAD( "13.bin", 0x180001, 0x20000, CRC(3b26a37d) SHA1(58d8d0cdef81c938fb1a5595f2d02b228865893b) , ROM_SKIP(3) )
ROMX_LOAD( "15.bin", 0x180002, 0x20000, CRC(6d837e09) SHA1(b4a133ab96c35b689ee692bfcc04981791099b6f) , ROM_SKIP(3) )
@@ -1814,7 +1814,46 @@ ROM_START( ffightbl )
ROM_COPY( "gfx", 0x000000, 0x000000, 0x8000 ) /* stars */
ROM_END
+// this is identical to the Final Crash bootleg but without the modified gfx.
+// it's less common than Final Crash, but is either the original bootleg, or the bootleggers wanted to restore the
+// original title.
+ROM_START( ffightbla )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "9.bin", 0x00000, 0x20000, CRC(c6854c91) SHA1(29f01cc65be5eaa3f86e99eebdd284104623abb0) )
+ ROM_LOAD16_BYTE( "5.bin", 0x00001, 0x20000, CRC(77f7c2b3) SHA1(feea48d9555824a2e5bf5e99ce159edc015f0792) )
+ ROM_LOAD16_BYTE( "8.bin", 0x40000, 0x20000, CRC(1895b3df) SHA1(415a26050c50ed79a7ee5ddd1b8d61593b1ce876) )
+ ROM_LOAD16_BYTE( "4.bin", 0x40001, 0x20000, CRC(bbd411ee) SHA1(85d50ca72ec46d627f9c88ff0809aa30e164821a) )
+ ROM_LOAD16_BYTE( "7.bin", 0x80000, 0x20000, CRC(5b23ebf2) SHA1(8c28c21a72a28ad249170026891c6bb865943f84) )
+ ROM_LOAD16_BYTE( "3.bin", 0x80001, 0x20000, CRC(aba2aebe) SHA1(294109b5929ed63859a55bef16643e3ade7da16f) )
+ ROM_LOAD16_BYTE( "6.bin", 0xc0000, 0x20000, CRC(d4bf37f6) SHA1(f47e1cc9aa3b3019ee57f59715e3a611acf9fe3e) )
+ ROM_LOAD16_BYTE( "2.bin", 0xc0001, 0x20000, CRC(07ac8f43) SHA1(7a41b003c76adaabd3f94929cc163461b70e0ed9) )
+ //ROM_FILL(0x2610, 1, 7) // temporary patch to fix transitions
+
+ ROM_REGION( 0x30000, "audiocpu", 0 ) /* Audio CPU + Sample Data */
+ ROM_LOAD( "1.bin", 0x00000, 0x20000, CRC(5b276c14) SHA1(73e53c077d4e3c1b919eee28b29e34176ee204f8) )
+ ROM_RELOAD( 0x10000, 0x20000 )
+ ROM_REGION( 0x200000, "gfx", 0 )
+ ROMX_LOAD( "18.bin", 0x000000, 0x20000, CRC(f1eee6d9) SHA1(bee95efbff49c582cff1cc6d9bb5ef4ea5c4a074) , ROM_SKIP(3) )
+ ROMX_LOAD( "20.bin", 0x000001, 0x20000, CRC(675f4537) SHA1(acc68822da3aafbb62f76cbffa5f3389fcc91447) , ROM_SKIP(3) )
+ ROMX_LOAD( "22.bin", 0x000002, 0x20000, CRC(db8a32ac) SHA1(b95f73dff291acee239e22e5fd7efe15d0de23be) , ROM_SKIP(3) )
+ ROMX_LOAD( "24.bin", 0x000003, 0x20000, CRC(f4113e57) SHA1(ff1f443c13494a169b9be24abc361d27a6d01c09) , ROM_SKIP(3) )
+ ROMX_LOAD( "10.bin", 0x080000, 0x20000, CRC(d478853e) SHA1(91fcf8eb022ccea66d291bec84ace557181cf861) , ROM_SKIP(3) )
+ ROMX_LOAD( "12.bin", 0x080001, 0x20000, CRC(25055642) SHA1(578cf6a436489cc1f2d1acdb0cba6c1cbee2e21f) , ROM_SKIP(3) )
+ ROMX_LOAD( "14.bin", 0x080002, 0x20000, CRC(b77d0328) SHA1(42eb1ebfda301f2b09f3add5932e8331f4790706) , ROM_SKIP(3) )
+ ROMX_LOAD( "16.bin", 0x080003, 0x20000, CRC(ea111a79) SHA1(1b86aa984d2d6c527e96b61274a82263f34d0d89) , ROM_SKIP(3) )
+ ROMX_LOAD( "ff-19.bin", 0x100000, 0x20000, CRC(7bc03747) SHA1(6964e5c562d6af5b4327ff828f3d0522c34911bc) , ROM_SKIP(3) ) // only these 4 differ from fcrash
+ ROMX_LOAD( "ff-21.bin", 0x100001, 0x20000, CRC(0c248e2b) SHA1(28731fe25a8eb39c1e0822cf9074a7a32c6b2978) , ROM_SKIP(3) ) // ^
+ ROMX_LOAD( "ff-23.bin", 0x100002, 0x20000, CRC(53949d0e) SHA1(1b11134005a47c323917b9892fe44819c36c6ee2) , ROM_SKIP(3) ) // ^
+ ROMX_LOAD( "ff-25.bin", 0x100003, 0x20000, CRC(8d34a67d) SHA1(69e9f52efb73952313848a6d54dbdc17a2275c59) , ROM_SKIP(3) ) // ^
+ ROMX_LOAD( "11.bin", 0x180000, 0x20000, CRC(d4457a60) SHA1(9e956efafa81a81aca92837df03968f5670ffc15) , ROM_SKIP(3) )
+ ROMX_LOAD( "13.bin", 0x180001, 0x20000, CRC(3b26a37d) SHA1(58d8d0cdef81c938fb1a5595f2d02b228865893b) , ROM_SKIP(3) )
+ ROMX_LOAD( "15.bin", 0x180002, 0x20000, CRC(6d837e09) SHA1(b4a133ab96c35b689ee692bfcc04981791099b6f) , ROM_SKIP(3) )
+ ROMX_LOAD( "17.bin", 0x180003, 0x20000, CRC(c59a4d6c) SHA1(59e49c7d24dd333007de4bb621050011a5392bcc) , ROM_SKIP(3) )
+
+ ROM_REGION( 0x8000, "gfx2", 0 )
+ ROM_COPY( "gfx", 0x000000, 0x000000, 0x8000 ) /* stars */
+ROM_END
@@ -2895,31 +2934,32 @@ ROM_END
// ************************************************************************* DRIVER MACROS
-GAME( 1990, cawingbl, cawing, cawingbl, cawingbl, cps_state, cawingbl, ROT0, "bootleg", "Carrier Air Wing (bootleg with 2xYM2203 + 2xMSM205 set 1)", GAME_SUPPORTS_SAVE ) // 901012 ETC
-GAME( 1990, cawingb2, cawing, cawingbl, cawingbl, cps_state, cawingbl, ROT0, "bootleg", "Carrier Air Wing (bootleg with 2xYM2203 + 2xMSM205 set 2)", GAME_SUPPORTS_SAVE ) // 901012 ETC
+GAME( 1990, cawingbl, cawing, cawingbl, cawingbl, cps_state, cawingbl, ROT0, "bootleg", "Carrier Air Wing (bootleg with 2xYM2203 + 2xMSM205 set 1)", MACHINE_SUPPORTS_SAVE ) // 901012 ETC
+GAME( 1990, cawingb2, cawing, cawingbl, cawingbl, cps_state, cawingbl, ROT0, "bootleg", "Carrier Air Wing (bootleg with 2xYM2203 + 2xMSM205 set 2)", MACHINE_SUPPORTS_SAVE ) // 901012 ETC
-GAME( 1993, dinopic, dino, dinopic, dino, cps_state, dinopic, ROT0, "bootleg", "Cadillacs and Dinosaurs (bootleg with PIC16c57, set 1)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE ) // 930201 ETC
-GAME( 1993, dinopic2, dino, dinopic, dino, cps_state, dinopic, ROT0, "bootleg", "Cadillacs and Dinosaurs (bootleg with PIC16c57, set 2)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // 930201 ETC
+GAME( 1993, dinopic, dino, dinopic, dino, cps_state, dinopic, ROT0, "bootleg", "Cadillacs and Dinosaurs (bootleg with PIC16c57, set 1)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) // 930201 ETC
+GAME( 1993, dinopic2, dino, dinopic, dino, cps_state, dinopic, ROT0, "bootleg", "Cadillacs and Dinosaurs (bootleg with PIC16c57, set 2)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // 930201 ETC
-GAME( 1990, fcrash, ffight, fcrash, fcrash, cps_state, cps1, ROT0, "bootleg (Playmark)", "Final Crash (bootleg of Final Fight)", GAME_SUPPORTS_SAVE )
-GAME( 1990, ffightbl, ffight, fcrash, fcrash, cps_state, cps1, ROT0, "bootleg", "Final Fight (bootleg)", GAME_SUPPORTS_SAVE )
+GAME( 1990, fcrash, ffight, fcrash, fcrash, cps_state, cps1, ROT0, "bootleg (Playmark)", "Final Crash (bootleg of Final Fight)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, ffightbl, ffight, fcrash, fcrash, cps_state, cps1, ROT0, "bootleg", "Final Fight (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, ffightbla, ffight, fcrash, fcrash, cps_state, cps1, ROT0, "bootleg", "Final Fight (bootleg on Final Crash PCB)", MACHINE_SUPPORTS_SAVE ) // same as Final Crash without the modified gfx
-GAME( 1991, kodb, kod, kodb, kodb, cps_state, kodb, ROT0, "bootleg (Playmark)", "The King of Dragons (bootleg)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) // 910731 "ETC"
-GAME( 1991, knightsb, knights, knightsb, knights, cps_state, dinopic, ROT0, "bootleg", "Knights of the Round (bootleg)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // 911127 - based on World version
+GAME( 1991, kodb, kod, kodb, kodb, cps_state, kodb, ROT0, "bootleg (Playmark)", "The King of Dragons (bootleg)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // 910731 "ETC"
+GAME( 1991, knightsb, knights, knightsb, knights, cps_state, dinopic, ROT0, "bootleg", "Knights of the Round (bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // 911127 - based on World version
-GAME( 1993, punipic, punisher, punipic, punisher, cps_state, punipic, ROT0, "bootleg", "The Punisher (bootleg with PIC16c57, set 1)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE ) // 930422 ETC
-GAME( 1993, punipic2, punisher, punipic, punisher, cps_state, punipic, ROT0, "bootleg", "The Punisher (bootleg with PIC16c57, set 2)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE ) // 930422 ETC
-GAME( 1993, punipic3, punisher, punipic, punisher, cps_state, punipic3, ROT0, "bootleg", "The Punisher (bootleg with PIC16c57, set 3)", GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND | GAME_SUPPORTS_SAVE ) // 930422 ETC
+GAME( 1993, punipic, punisher, punipic, punisher, cps_state, punipic, ROT0, "bootleg", "The Punisher (bootleg with PIC16c57, set 1)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) // 930422 ETC
+GAME( 1993, punipic2, punisher, punipic, punisher, cps_state, punipic, ROT0, "bootleg", "The Punisher (bootleg with PIC16c57, set 2)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) // 930422 ETC
+GAME( 1993, punipic3, punisher, punipic, punisher, cps_state, punipic3, ROT0, "bootleg", "The Punisher (bootleg with PIC16c57, set 3)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) // 930422 ETC
-GAME( 1992, sf2m1, sf2ce, sf2m1, sf2, cps_state, sf2m1, ROT0, "bootleg", "Street Fighter II': Champion Edition (M1, bootleg)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) // 920313 ETC
-GAME( 1992, sf2mdt, sf2ce, sf2mdt, sf2mdt, cps_state, sf2mdt, ROT0, "bootleg", "Street Fighter II': Magic Delta Turbo (bootleg, set 1)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) // 920313 - based on (heavily modified) World version
-GAME( 1992, sf2mdta, sf2ce, sf2mdt, sf2mdt, cps_state, sf2mdta, ROT0, "bootleg", "Street Fighter II': Magic Delta Turbo (bootleg, set 2)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) // 920313 - based on World version
-GAME( 1992, sf2mdtb, sf2ce, sf2mdt, sf2mdtb, cps_state, sf2mdtb, ROT0, "bootleg", "Street Fighter II': Magic Delta Turbo (bootleg, set 3)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) // 920313 - based on World version
+GAME( 1992, sf2m1, sf2ce, sf2m1, sf2, cps_state, sf2m1, ROT0, "bootleg", "Street Fighter II': Champion Edition (M1, bootleg)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // 920313 ETC
+GAME( 1992, sf2mdt, sf2ce, sf2mdt, sf2mdt, cps_state, sf2mdt, ROT0, "bootleg", "Street Fighter II': Magic Delta Turbo (bootleg, set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // 920313 - based on (heavily modified) World version
+GAME( 1992, sf2mdta, sf2ce, sf2mdt, sf2mdt, cps_state, sf2mdta, ROT0, "bootleg", "Street Fighter II': Magic Delta Turbo (bootleg, set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // 920313 - based on World version
+GAME( 1992, sf2mdtb, sf2ce, sf2mdt, sf2mdtb, cps_state, sf2mdtb, ROT0, "bootleg", "Street Fighter II': Magic Delta Turbo (bootleg, set 3)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // 920313 - based on World version
-GAME( 1992, sf2b, sf2, sf2b, sf2mdt, cps_state, sf2b, ROT0, "bootleg", "Street Fighter II: The World Warrior (bootleg)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) //910204 - based on World version
+GAME( 1992, sf2b, sf2, sf2b, sf2mdt, cps_state, sf2b, ROT0, "bootleg", "Street Fighter II: The World Warrior (bootleg)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) //910204 - based on World version
-GAME( 1992, sf2m9, sf2ce, sf2m1, sf2, cps_state, dinopic, ROT0, "bootleg", "Street Fighter II': Champion Edition (M9, bootleg)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) // 920313 ETC
+GAME( 1992, sf2m9, sf2ce, sf2m1, sf2, cps_state, sf2m1, ROT0, "bootleg", "Street Fighter II': Champion Edition (M9, bootleg)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // 920313 ETC
-GAME( 1993, slampic, slammast, slampic, slammast, cps_state, dinopic, ROT0, "bootleg", "Saturday Night Slam Masters (bootleg with PIC16c57)", GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND | GAME_SUPPORTS_SAVE ) // 930713 ETC
+GAME( 1993, slampic, slammast, slampic, slammast, cps_state, dinopic, ROT0, "bootleg", "Saturday Night Slam Masters (bootleg with PIC16c57)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) // 930713 ETC
-GAME( 1999, sgyxz, wof, sgyxz, sgyxz, cps_state, cps1, ROT0, "bootleg (All-In Electronic)", "Warriors of Fate ('sgyxz' bootleg)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) // 921005 - Sangokushi 2
+GAME( 1999, sgyxz, wof, sgyxz, sgyxz, cps_state, cps1, ROT0, "bootleg (All-In Electronic)", "Warriors of Fate ('sgyxz' bootleg)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // 921005 - Sangokushi 2
diff --git a/src/mame/drivers/fgoal.c b/src/mame/drivers/fgoal.c
index 7238476fd78..6d4ee03f425 100644
--- a/src/mame/drivers/fgoal.c
+++ b/src/mame/drivers/fgoal.c
@@ -437,5 +437,5 @@ ROM_START( fgoala )
ROM_END
-GAME( 1979, fgoal, 0, fgoal, fgoal, driver_device, 0, ROT90, "Taito", "Field Goal (set 1)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1979, fgoala, fgoal, fgoal, fgoal, driver_device, 0, ROT90, "Taito", "Field Goal (set 2)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/fidelz80.c b/src/mame/drivers/fidelz80.c
index 2d64b061189..1d545c8405f 100644
--- a/src/mess/drivers/fidelz80.c
+++ b/src/mame/drivers/fidelz80.c
@@ -1418,9 +1418,9 @@ ROM_END
******************************************************************************/
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 1978, cc10, 0, 0, cc10, fidelz80, driver_device, 0, "Fidelity Electronics", "Chess Challenger 10 (Model CC10/BCC)", GAME_NOT_WORKING )
-COMP( 1979, vcc, 0, 0, vcc, fidelz80, driver_device, 0, "Fidelity Electronics", "Talking Chess Challenger (model VCC)", GAME_NOT_WORKING )
-COMP( 1979, vbrc, 0, 0, bridgec, bridgec, driver_device, 0, "Fidelity Electronics", "Bridge Challenger (model VBRC/7002)", GAME_NOT_WORKING )
-COMP( 1980, uvc, vcc, 0, vcc, fidelz80, driver_device, 0, "Fidelity Electronics", "Advanced Talking Chess Challenger (model UVC)", GAME_NOT_WORKING )
-COMP( 1980, bridgec3, vbrc, 0, bridgec, bridgec, driver_device, 0, "Fidelity Electronics", "Bridge Challenger 3 (model 7014)", GAME_NOT_WORKING )
-COMP( 1980, vsc, 0, 0, vsc, vsc, driver_device, 0, "Fidelity Electronics", "Voice Sensory Chess Challenger (model VSC)", GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK )
+COMP( 1978, cc10, 0, 0, cc10, fidelz80, driver_device, 0, "Fidelity Electronics", "Chess Challenger 10 (Model CC10/BCC)", MACHINE_NOT_WORKING )
+COMP( 1979, vcc, 0, 0, vcc, fidelz80, driver_device, 0, "Fidelity Electronics", "Talking Chess Challenger (model VCC)", MACHINE_NOT_WORKING )
+COMP( 1979, vbrc, 0, 0, bridgec, bridgec, driver_device, 0, "Fidelity Electronics", "Bridge Challenger (model VBRC/7002)", MACHINE_NOT_WORKING )
+COMP( 1980, uvc, vcc, 0, vcc, fidelz80, driver_device, 0, "Fidelity Electronics", "Advanced Talking Chess Challenger (model UVC)", MACHINE_NOT_WORKING )
+COMP( 1980, bridgec3, vbrc, 0, bridgec, bridgec, driver_device, 0, "Fidelity Electronics", "Bridge Challenger 3 (model 7014)", MACHINE_NOT_WORKING )
+COMP( 1980, vsc, 0, 0, vsc, vsc, driver_device, 0, "Fidelity Electronics", "Voice Sensory Chess Challenger (model VSC)", MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK )
diff --git a/src/mame/drivers/finalizr.c b/src/mame/drivers/finalizr.c
index cfd7a23f96f..98f09e6bf54 100644
--- a/src/mame/drivers/finalizr.c
+++ b/src/mame/drivers/finalizr.c
@@ -355,5 +355,5 @@ DRIVER_INIT_MEMBER(finalizr_state,finalizr)
}
-GAME( 1985, finalizr, 0, finalizr, finalizr, finalizr_state, finalizr, ROT90, "Konami", "Finalizer - Super Transformation", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1985, finalizrb, finalizr, finalizr, finalizrb, finalizr_state, finalizr, ROT90, "bootleg", "Finalizer - Super Transformation (bootleg)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1985, finalizr, 0, finalizr, finalizr, finalizr_state, finalizr, ROT90, "Konami", "Finalizer - Super Transformation", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1985, finalizrb, finalizr, finalizr, finalizrb, finalizr_state, finalizr, ROT90, "bootleg", "Finalizer - Super Transformation (bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/fireball.c b/src/mame/drivers/fireball.c
index 9c4c7135b7e..5c536efd420 100644
--- a/src/mame/drivers/fireball.c
+++ b/src/mame/drivers/fireball.c
@@ -524,4 +524,4 @@ 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", GAME_MECHANICAL ) //1989 by rom name
+GAME( 1989, fireball, 0, fireball, fireball, driver_device, 0, ROT0, "Valco", "Fireball", MACHINE_MECHANICAL ) //1989 by rom name
diff --git a/src/mame/drivers/firebeat.c b/src/mame/drivers/firebeat.c
index efb1719ab4a..1d3002629bb 100644
--- a/src/mame/drivers/firebeat.c
+++ b/src/mame/drivers/firebeat.c
@@ -81,9 +81,9 @@
BIOS Game ID Year Game
------------------------------------------------------------------
GQ972 GQ972 2000 Beatmania III
- GQ972(?) ? 2001 Beatmania III Append 6th Mix
+ GQ972(?) GCA21 2001 Beatmania III Append 6th Mix
GQ972(?) GCB07 2002 Beatmania III Append 7th Mix
- GQ972(?) ? 2000 Beatmania III Append Core Remix
+ GQ972(?) GCA05 2000 Beatmania III Append Core Remix
GQ972(?) GCC01 2003 Beatmania III The Final
GQ974 GQ974 2000 Keyboardmania
GQ974 GCA01 2000 Keyboardmania 2nd Mix
@@ -101,13 +101,18 @@
??? GEA02 2001 Pop'n Music Animelo 2
??? ? 2001 Pop'n Music Mickey Tunes
- TODO:
- - The display list pointer setting in the graphics chip is not understood. Currently
- it has to be changed manually. (BIOS = 0x200000, PPP bootup = 0x1D0800, ingame = 0x0000, 0x8000 & 0x10000)
-
- - Keyboardmania 3rd mix is missing some graphics in the ingame. Most notably the backgrounds.
- The display list objects seem to be there, but the address is wrong (0x14c400, instead of the correct address)
+Dumpable pieces missing
+-----------------------
+Beatmania III - CD, HDD, EPROM on main board, EPROM on SPU board
+Beatmania III Append 6th Mix - HDD, dongle, EPROM on main board, EPROM on SPU board
+Para Para Paradise - dongle, program CD
+Para Para Paradise 1.1 - dongle
+Para Para Dancing - dongle, program CD
+Pop'n Music Animelo - dongle, CD, DVD
+Keyboard Mania - dongle, program CD, audio CD
+Keyboard Mania 2nd Mix - dongle, program CD, audio CD
+ TODO:
- The external Yamaha MIDI sound board is not emulated (no keyboard sounds).
@@ -141,13 +146,11 @@
#include "machine/midikbd.h"
#include "sound/ymz280b.h"
#include "sound/cdda.h"
+#include "sound/rf5c400.h"
+#include "video/k057714.h"
#include "firebeat.lh"
-#define DUMP_VRAM 0
-#define PRINT_GCU 0
-
-
struct IBUTTON_SUBKEY
{
UINT8 identifier[8];
@@ -160,718 +163,8 @@ struct IBUTTON
IBUTTON_SUBKEY subkey[3];
};
-#define MCFG_FIREBEAT_GCU_CPU_TAG(_tag) \
- firebeat_gcu_device::static_set_cpu_tag(*device, _tag);
-
-class firebeat_gcu_device : public device_t
-{
-public:
- firebeat_gcu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
- static void static_set_cpu_tag(device_t &device, const char *tag) { downcast<firebeat_gcu_device &>(device).m_cputag = tag; }
-
- int draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
-
- DECLARE_READ32_MEMBER(read);
- DECLARE_WRITE32_MEMBER(write);
-
- struct framebuffer
- {
- UINT32 base;
- int width;
- int height;
- };
-
-protected:
- virtual void device_start();
- virtual void device_stop();
- virtual void device_reset();
-
-private:
- void execute_command(UINT32 *cmd);
- void execute_display_list(UINT32 addr);
- void draw_object(UINT32 *cmd);
- void fill_rect(UINT32 *cmd);
- void draw_character(UINT32 *cmd);
- void fb_config(UINT32 *cmd);
-
- UINT32 *m_vram;
- UINT32 m_vram_read_addr;
- UINT32 m_vram_fifo0_addr;
- UINT32 m_vram_fifo1_addr;
- UINT32 m_vram_fifo0_mode;
- UINT32 m_vram_fifo1_mode;
- UINT32 m_command_fifo0[4];
- UINT32 m_command_fifo0_ptr;
- UINT32 m_command_fifo1[4];
- UINT32 m_command_fifo1_ptr;
-
- const char* m_cputag;
- device_t* m_cpu;
-
- framebuffer m_frame[4];
- UINT32 m_fb_origin_x;
- UINT32 m_fb_origin_y;
-};
-
-const device_type FIREBEAT_GCU = &device_creator<firebeat_gcu_device>;
-
-firebeat_gcu_device::firebeat_gcu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
- : device_t(mconfig, FIREBEAT_GCU, "FireBeat GCU", tag, owner, clock, "firebeat_gcu", __FILE__)
-{
-}
-
-READ32_MEMBER(firebeat_gcu_device::read)
-{
- int reg = offset * 4;
-
- // VRAM Read
- if (reg >= 0x80 && reg < 0x100)
- {
- return m_vram[m_vram_read_addr + offset - 0x20];
- }
-
- switch (reg)
- {
- case 0x78: // GCU Status
- /* ppd checks bits 0x0041 of the upper halfword on interrupt */
- return 0xffff0005;
-
- default:
- break;
- }
-
- return 0xffffffff;
-}
-
-WRITE32_MEMBER(firebeat_gcu_device::write)
-{
- int reg = offset * 4;
-
- switch (reg)
- {
- case 0x10:
- /* IRQ clear/enable; ppd writes bit off then on in response to interrupt */
- /* it enables bits 0x41, but 0x01 seems to be the one it cares about */
- if (ACCESSING_BITS_16_31 && (data & 0x00010000) == 0)
- m_cpu->execute().set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE);
- if (ACCESSING_BITS_0_15)
-#if PRINT_GCU
- printf("%s_w: %02X, %08X, %08X\n", basetag(), reg, data, mem_mask);
-#endif
- break;
-
- case 0x14: // ?
- break;
-
- case 0x18: // ?
- break;
-
- case 0x20: // Framebuffer 0 Origin(?)
- break;
-
- case 0x24: // Framebuffer 1 Origin(?)
- break;
-
- case 0x28: // Framebuffer 2 Origin(?)
- break;
-
- case 0x2c: // Framebuffer 3 Origin(?)
- break;
-
- case 0x30: // Framebuffer 0 Dimensions
- if (ACCESSING_BITS_16_31)
- m_frame[0].height = (data >> 16) & 0xffff;
- if (ACCESSING_BITS_0_15)
- m_frame[0].width = data & 0xffff;
- break;
-
- case 0x34: // Framebuffer 1 Dimensions
- if (ACCESSING_BITS_16_31)
- m_frame[1].height = (data >> 16) & 0xffff;
- if (ACCESSING_BITS_0_15)
- m_frame[1].width = data & 0xffff;
- break;
-
- case 0x38: // Framebuffer 2 Dimensions
- if (ACCESSING_BITS_16_31)
- m_frame[2].height = (data >> 16) & 0xffff;
- if (ACCESSING_BITS_0_15)
- m_frame[2].width = data & 0xffff;
- break;
-
- case 0x3c: // Framebuffer 3 Dimensions
- if (ACCESSING_BITS_16_31)
- m_frame[3].height = (data >> 16) & 0xffff;
- if (ACCESSING_BITS_0_15)
- m_frame[3].width = data & 0xffff;
- break;
-
- case 0x40: // Framebuffer 0 Base
- m_frame[0].base = data;
-#if PRINT_GCU
- printf("%s FB0 Base: %08X\n", basetag(), data);
-#endif
- break;
-
- case 0x44: // Framebuffer 1 Base
- m_frame[1].base = data;
-#if PRINT_GCU
- printf("%s FB1 Base: %08X\n", basetag(), data);
-#endif
- break;
-
- case 0x48: // Framebuffer 2 Base
- m_frame[2].base = data;
-#if PRINT_GCU
- printf("%s FB2 Base: %08X\n", basetag(), data);
-#endif
- break;
-
- case 0x4c: // Framebuffer 3 Base
- m_frame[3].base = data;
-#if PRINT_GCU
- printf("%s FB3 Base: %08X\n", basetag(), data);
-#endif
- break;
-
- case 0x5c: // VRAM Read Address
- m_vram_read_addr = (data & 0xffffff) / 2;
- break;
-
- case 0x60: // VRAM Port 0 Write Address
- m_vram_fifo0_addr = (data & 0xffffff) / 2;
- break;
-
- case 0x68: // VRAM Port 0/1 Mode
- if (ACCESSING_BITS_16_31)
- m_vram_fifo0_mode = data >> 16;
- if (ACCESSING_BITS_0_15)
- m_vram_fifo1_mode = data & 0xffff;
- break;
-
- case 0x70: // VRAM Port 0 Write FIFO
- if (m_vram_fifo0_mode & 0x100)
- {
- // write to command fifo
- m_command_fifo0[m_command_fifo0_ptr] = data;
- m_command_fifo0_ptr++;
-
- // execute when filled
- if (m_command_fifo0_ptr >= 4)
- {
- //printf("GCU FIFO0 exec: %08X %08X %08X %08X\n", m_command_fifo0[0], m_command_fifo0[1], m_command_fifo0[2], m_command_fifo0[3]);
- execute_command(m_command_fifo0);
- m_command_fifo0_ptr = 0;
- }
- }
- else
- {
- // write to VRAM fifo
- m_vram[m_vram_fifo0_addr] = data;
- m_vram_fifo0_addr++;
- }
- break;
-
- case 0x64: // VRAM Port 1 Write Address
- m_vram_fifo1_addr = (data & 0xffffff) / 2;
- printf("GCU FIFO1 addr = %08X\n", data);
- break;
-
- case 0x74: // VRAM Port 1 Write FIFO
- printf("GCU FIFO1 write = %08X\n", data);
-
- if (m_vram_fifo1_mode & 0x100)
- {
- // write to command fifo
- m_command_fifo1[m_command_fifo1_ptr] = data;
- m_command_fifo1_ptr++;
-
- // execute when filled
- if (m_command_fifo1_ptr >= 4)
- {
- printf("GCU FIFO1 exec: %08X %08X %08X %08X\n", m_command_fifo1[0], m_command_fifo1[1], m_command_fifo1[2], m_command_fifo1[3]);
- m_command_fifo1_ptr = 0;
- }
- }
- else
- {
- // write to VRAM fifo
- m_vram[m_vram_fifo1_addr] = data;
- m_vram_fifo1_addr++;
- }
- break;
-
- default:
- //printf("%s_w: %02X, %08X, %08X\n", basetag(), reg, data, mem_mask);
- break;
- }
-}
-
-int firebeat_gcu_device::draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
-{
- UINT16 *vram16 = (UINT16*)m_vram;
-
- int x = 0;
- int y = 0;
- int width = m_frame[0].width;
- int height = m_frame[0].height;
-
- if (width != 0 && height != 0)
- {
- rectangle visarea = screen.visible_area();
- if ((visarea.max_x+1) != width || (visarea.max_y+1) != height)
- {
- visarea.max_x = width-1;
- visarea.max_y = height-1;
- screen.configure(width, height, visarea, screen.frame_period().attoseconds);
- }
- }
-
- int fb_pitch = 1024;
-
- for (int j=0; j < height; j++)
- {
- UINT16 *d = &bitmap.pix16(j, x);
- int li = ((j+y) * fb_pitch) + x;
- UINT32 fbaddr0 = m_frame[0].base + li;
- UINT32 fbaddr1 = m_frame[1].base + li;
-// UINT32 fbaddr2 = m_frame[2].base + li;
-// UINT32 fbaddr3 = m_frame[3].base + li;
-
- for (int i=0; i < width; i++)
- {
- UINT16 pix0 = vram16[fbaddr0 ^ NATIVE_ENDIAN_VALUE_LE_BE(1,0)];
- UINT16 pix1 = vram16[fbaddr1 ^ NATIVE_ENDIAN_VALUE_LE_BE(1,0)];
-// UINT16 pix2 = vram16[fbaddr2 ^ NATIVE_ENDIAN_VALUE_LE_BE(1,0)];
-// UINT16 pix3 = vram16[fbaddr3 ^ NATIVE_ENDIAN_VALUE_LE_BE(1,0)];
-
- if (pix0 & 0x8000)
- {
- d[i] = pix0 & 0x7fff;
- }
- else
- {
- d[i] = pix1 & 0x7fff;
- }
-
- fbaddr0++;
- fbaddr1++;
-// fbaddr2++;
-// fbaddr3++;
- }
- }
-
- return 0;
-}
-
-void firebeat_gcu_device::draw_object(UINT32 *cmd)
-{
- // 0x00: xxx----- -------- -------- -------- command (5)
- // 0x00: ---x---- -------- -------- -------- 0: absolute coordinates
- // 1: relative coordinates from framebuffer origin
- // 0x00: ----xx-- -------- -------- -------- ?
- // 0x00: -------- xxxxxxxx xxxxxxxx xxxxxxxx object data address in vram
-
- // 0x01: -------- -------- ------xx xxxxxxxx object x
- // 0x01: -------- xxxxxxxx xxxxxx-- -------- object y
- // 0x01: -----x-- -------- -------- -------- object x flip
- // 0x01: ----x--- -------- -------- -------- object y flip
- // 0x01: --xx---- -------- -------- -------- object alpha enable (different blend modes?)
- // 0x01: -x------ -------- -------- -------- object transparency enable (?)
-
- // 0x02: -------- -------- ------xx xxxxxxxx object width
- // 0x02: -------- -----xxx xxxxxx-- -------- object x scale
-
- // 0x03: -------- -------- ------xx xxxxxxxx object height
- // 0x03: -------- -----xxx xxxxxx-- -------- object y scale
-
- int x = cmd[1] & 0x3ff;
- int y = (cmd[1] >> 10) & 0x3fff;
- int width = (cmd[2] & 0x3ff) + 1;
- int height = (cmd[3] & 0x3ff) + 1;
- int xscale = (cmd[2] >> 10) & 0x1ff;
- int yscale = (cmd[3] >> 10) & 0x1ff;
- bool xflip = (cmd[1] & 0x04000000) ? true : false;
- bool yflip = (cmd[1] & 0x08000000) ? true : false;
- bool alpha_enable = (cmd[1] & 0x30000000) ? true : false;
- bool trans_enable = (cmd[1] & 0x40000000) ? true : false;
- UINT32 address = cmd[0] & 0xffffff;
- int alpha_level = (cmd[2] >> 27) & 0x1f;
- bool relative_coords = (cmd[0] & 0x10000000) ? true : false;
-
- if (relative_coords)
- {
- x += m_fb_origin_x;
- y += m_fb_origin_y;
- }
-
- UINT16 *vram16 = (UINT16*)m_vram;
-
- if (xscale == 0 || yscale == 0)
- {
- return;
- }
-
-#if PRINT_GCU
- printf("%s Draw Object %08X, x %d, y %d, w %d, h %d [%08X %08X %08X %08X]\n", basetag(), address, x, y, width, height, cmd[0], cmd[1], cmd[2], cmd[3]);
-#endif
-
- width = (((width * 65536) / xscale) * 64) / 65536;
- height = (((height * 65536) / yscale) * 64) / 65536;
-
- int fb_pitch = 1024;
-
- int v = 0;
- for (int j=0; j < height; j++)
- {
- int index;
- int xinc;
- UINT32 fbaddr = ((j+y) * fb_pitch) + x;
-
- if (yflip)
- {
- index = address + ((height - 1 - (v >> 6)) * 1024);
- }
- else
- {
- index = address + ((v >> 6) * 1024);
- }
-
- if (xflip)
- {
- fbaddr += width;
- xinc = -1;
- }
- else
- {
- xinc = 1;
- }
-
- int u = 0;
- for (int i=0; i < width; i++)
- {
- UINT16 pix = vram16[((index + (u >> 6)) ^ NATIVE_ENDIAN_VALUE_LE_BE(1,0)) & 0xffffff];
- bool draw = !trans_enable || (trans_enable && (pix & 0x8000));
- if (alpha_enable)
- {
- if (draw)
- {
- if ((pix & 0x7fff) != 0)
- {
- UINT16 srcpix = vram16[fbaddr ^ NATIVE_ENDIAN_VALUE_LE_BE(1,0)];
-
- UINT32 sr = (srcpix >> 10) & 0x1f;
- UINT32 sg = (srcpix >> 5) & 0x1f;
- UINT32 sb = (srcpix >> 0) & 0x1f;
- UINT32 r = (pix >> 10) & 0x1f;
- UINT32 g = (pix >> 5) & 0x1f;
- UINT32 b = (pix >> 0) & 0x1f;
-
- sr += (r * alpha_level) >> 4;
- sg += (g * alpha_level) >> 4;
- sb += (b * alpha_level) >> 4;
-
- if (sr > 0x1f) sr = 0x1f;
- if (sg > 0x1f) sg = 0x1f;
- if (sb > 0x1f) sb = 0x1f;
-
- vram16[fbaddr ^ NATIVE_ENDIAN_VALUE_LE_BE(1,0)] = (sr << 10) | (sg << 5) | sb | 0x8000;
- }
- }
- }
- else
- {
- if (draw)
- {
- vram16[fbaddr ^ NATIVE_ENDIAN_VALUE_LE_BE(1,0)] = pix | 0x8000;
- }
- }
-
- fbaddr += xinc;
- u += xscale;
- }
-
- v += yscale;
- }
-}
-
-void firebeat_gcu_device::fill_rect(UINT32 *cmd)
-{
- // 0x00: xxx----- -------- -------- -------- command (4)
- // 0x00: ---x---- -------- -------- -------- 0: absolute coordinates
- // 1: relative coordinates from framebuffer origin
- // 0x00: ----xx-- -------- -------- -------- ?
- // 0x00: -------- -------- ------xx xxxxxxxx width
- // 0x00: -------- ----xxxx xxxxxx-- -------- height
-
- // 0x01: -------- -------- ------xx xxxxxxxx x
- // 0x01: -------- xxxxxxxx xxxxxx-- -------- y
-
- // 0x02: xxxxxxxx xxxxxxxx -------- -------- fill pattern pixel 0
- // 0x02: -------- -------- xxxxxxxx xxxxxxxx fill pattern pixel 1
-
- // 0x03: xxxxxxxx xxxxxxxx -------- -------- fill pattern pixel 2
- // 0x03: -------- -------- xxxxxxxx xxxxxxxx fill pattern pixel 3
-
- int x = cmd[1] & 0x3ff;
- int y = (cmd[1] >> 10) & 0x3fff;
- int width = (cmd[0] & 0x3ff) + 1;
- int height = ((cmd[0] >> 10) & 0x3ff) + 1;
- bool relative_coords = (cmd[0] & 0x10000000) ? true : false;
-
- if (relative_coords)
- {
- x += m_fb_origin_x;
- y += m_fb_origin_y;
- }
-
- UINT16 color[4];
- color[0] = (cmd[2] >> 16);
- color[1] = (cmd[2] & 0xffff);
- color[2] = (cmd[3] >> 16);
- color[3] = (cmd[3] & 0xffff);
-
-#if PRINT_GCU
- printf("%s Fill Rect x %d, y %d, w %d, h %d, %08X %08X [%08X %08X %08X %08X]\n", basetag(), x, y, width, height, cmd[2], cmd[3], cmd[0], cmd[1], cmd[2], cmd[3]);
-#endif
-
- int x1 = x;
- int x2 = x + width;
- int y1 = y;
- int y2 = y + height;
-
- UINT16 *vram16 = (UINT16*)m_vram;
-
- int fb_pitch = 1024;
-
- for (int j=y1; j < y2; j++)
- {
- UINT32 fbaddr = j * fb_pitch;
- for (int i=x1; i < x2; i++)
- {
- vram16[(fbaddr+i) ^ NATIVE_ENDIAN_VALUE_LE_BE(1,0)] = color[i&3];
- }
- }
-}
-
-void firebeat_gcu_device::draw_character(UINT32 *cmd)
-{
- // 0x00: xxx----- -------- -------- -------- command (7)
- // 0x00: ---x---- -------- -------- -------- 0: absolute coordinates
- // 1: relative coordinates from framebuffer base (unverified, should be same as other operations)
- // 0x00: -------- xxxxxxxx xxxxxxxx xxxxxxxx character data address in vram
-
- // 0x01: -------- -------- ------xx xxxxxxxx character x
- // 0x01: -------- ----xxxx xxxxxx-- -------- character y
-
- // 0x02: xxxxxxxx xxxxxxxx -------- -------- color 0
- // 0x02: -------- -------- xxxxxxxx xxxxxxxx color 1
-
- // 0x03: xxxxxxxx xxxxxxxx -------- -------- color 2
- // 0x03: -------- -------- xxxxxxxx xxxxxxxx color 3
-
- int x = cmd[1] & 0x3ff;
- int y = (cmd[1] >> 10) & 0x3ff;
- UINT32 address = cmd[0] & 0xffffff;
- UINT16 color[4];
- bool relative_coords = (cmd[0] & 0x10000000) ? true : false;
-
- if (relative_coords)
- {
- x += m_fb_origin_x;
- y += m_fb_origin_y;
- }
-
- color[0] = cmd[2] >> 16;
- color[1] = cmd[2] & 0xffff;
- color[2] = cmd[3] >> 16;
- color[3] = cmd[3] & 0xffff;
-
-#if PRINT_GCU
- printf("%s Draw Char %08X, x %d, y %d\n", basetag(), address, x, y);
-#endif
-
- UINT16 *vram16 = (UINT16*)m_vram;
- int fb_pitch = 1024;
-
- for (int j=0; j < 8; j++)
- {
- UINT32 fbaddr = (y+j) * fb_pitch;
- UINT16 line = vram16[address ^ NATIVE_ENDIAN_VALUE_LE_BE(1,0)];
-
- address += 4;
-
- for (int i=0; i < 8; i++)
- {
- int p = (line >> ((7-i) * 2)) & 3;
- vram16[(fbaddr+x+i) ^ NATIVE_ENDIAN_VALUE_LE_BE(1,0)] = color[p] | 0x8000;
- }
- }
-}
-
-void firebeat_gcu_device::fb_config(UINT32 *cmd)
-{
- // 0x00: xxx----- -------- -------- -------- command (3)
-
- // 0x01: -------- -------- -------- -------- unused?
-
- // 0x02: -------- -------- ------xx xxxxxxxx Framebuffer Origin X
-
- // 0x03: -------- -------- --xxxxxx xxxxxxxx Framebuffer Origin Y
-
-#if PRINT_GCU
- printf("%s FB Config %08X %08X %08X %08X\n", basetag(), cmd[0], cmd[1], cmd[2], cmd[3]);
-#endif
-
- m_fb_origin_x = cmd[2] & 0x3ff;
- m_fb_origin_y = cmd[3] & 0x3fff;
-}
-
-void firebeat_gcu_device::execute_display_list(UINT32 addr)
-{
- bool end = false;
-
- int counter = 0;
-
-#if PRINT_GCU
- printf("%s Exec Display List %08X\n", basetag(), addr);
-#endif
-
- addr /= 2;
- while (!end && counter < 0x1000 && addr < (0x2000000/4))
- {
- UINT32 *cmd = &m_vram[addr];
- addr += 4;
-
- int command = (cmd[0] >> 29) & 0x7;
-
- switch (command)
- {
- case 0: // NOP?
- break;
-
- case 1: // Execute display list
- execute_display_list(cmd[0] & 0xffffff);
- break;
-
- case 2: // End of display list
- end = true;
- break;
-
- case 3: // Framebuffer config
- fb_config(cmd);
- break;
-
- case 4: // Fill rectangle
- fill_rect(cmd);
- break;
-
- case 5: // Draw object
- draw_object(cmd);
- break;
-
- case 7: // Draw 8x8 character (2 bits per pixel)
- draw_character(cmd);
- break;
-
- default:
- printf("GCU Unknown command %08X %08X %08X %08X\n", cmd[0], cmd[1], cmd[2], cmd[3]);
- break;
- }
- counter++;
- };
-}
-
-void firebeat_gcu_device::execute_command(UINT32* cmd)
-{
- int command = (cmd[0] >> 29) & 0x7;
-
-#if PRINT_GCU
- printf("%s Exec Command %08X, %08X, %08X, %08X\n", basetag(), cmd[0], cmd[1], cmd[2], cmd[3]);
-#endif
-
- switch (command)
- {
- case 0: // NOP?
- break;
-
- case 1: // Execute display list
- execute_display_list(cmd[0] & 0xffffff);
- break;
-
- case 2: // End of display list
- break;
-
- case 3: // Framebuffer config
- fb_config(cmd);
- break;
-
- case 4: // Fill rectangle
- fill_rect(cmd);
- break;
-
- case 5: // Draw object
- draw_object(cmd);
- break;
-
- case 7: // Draw 8x8 character (2 bits per pixel)
- draw_character(cmd);
- break;
-
- default:
- printf("GCU Unknown command %08X %08X %08X %08X\n", cmd[0], cmd[1], cmd[2], cmd[3]);
- break;
- }
-}
-
-void firebeat_gcu_device::device_start()
-{
- m_cpu = machine().device(m_cputag);
-
- m_vram = auto_alloc_array(machine(), UINT32, 0x2000000/4);
- memset(m_vram, 0, 0x2000000);
-}
-
-void firebeat_gcu_device::device_reset()
-{
- m_vram_read_addr = 0;
- m_command_fifo0_ptr = 0;
- m_command_fifo1_ptr = 0;
- m_vram_fifo0_addr = 0;
- m_vram_fifo1_addr = 0;
-
- for (int i=0; i < 4; i++)
- {
- m_frame[i].base = 0;
- m_frame[i].width = 0;
- m_frame[i].height = 0;
- }
-}
-
-void firebeat_gcu_device::device_stop()
-{
-#if DUMP_VRAM
- char filename[200];
- sprintf(filename, "%s_vram.bin", basetag());
- printf("dumping %s\n", filename);
- FILE *file = fopen(filename, "wb");
- int i;
-
- for (i=0; i < 0x2000000/4; i++)
- {
- fputc((m_vram[i] >> 24) & 0xff, file);
- fputc((m_vram[i] >> 16) & 0xff, file);
- fputc((m_vram[i] >> 8) & 0xff, file);
- fputc((m_vram[i] >> 0) & 0xff, file);
- }
-
- fclose(file);
-#endif
-}
-
-
-
+#define PRINT_SPU_MEM 0
class firebeat_state : public driver_device
{
@@ -879,6 +172,7 @@ public:
firebeat_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_work_ram(*this, "work_ram"),
m_flash_main(*this, "flash_main"),
m_flash_snd1(*this, "flash_snd1"),
@@ -889,10 +183,12 @@ public:
m_kbd1(*this, "kbd1"),
m_ata(*this, "ata"),
m_gcu0(*this, "gcu0"),
- m_gcu1(*this, "gcu1")
+ m_gcu1(*this, "gcu1"),
+ m_spuata(*this, "spu_ata")
{ }
required_device<ppc4xx_device> m_maincpu;
+ optional_device<m68000_device> m_audiocpu;
required_shared_ptr<UINT32> m_work_ram;
required_device<fujitsu_29f016a_device> m_flash_main;
required_device<fujitsu_29f016a_device> m_flash_snd1;
@@ -902,8 +198,9 @@ public:
optional_device<midi_keyboard_device> m_kbd0;
optional_device<midi_keyboard_device> m_kbd1;
required_device<ata_interface_device> m_ata;
- required_device<firebeat_gcu_device> m_gcu0;
- required_device<firebeat_gcu_device> m_gcu1;
+ required_device<k057714_device> m_gcu0;
+ required_device<k057714_device> m_gcu1;
+ optional_device<ata_interface_device> m_spuata;
UINT8 m_extend_board_irq_enable;
UINT8 m_extend_board_irq_active;
@@ -918,6 +215,7 @@ public:
int m_ibutton_state;
int m_ibutton_read_subkey_ptr;
UINT8 m_ibutton_subkey_data[0x40];
+
DECLARE_READ8_MEMBER(soundram_r);
DECLARE_DRIVER_INIT(ppd);
DECLARE_DRIVER_INIT(kbm);
@@ -957,7 +255,14 @@ public:
DECLARE_READ32_MEMBER(ppc_spu_share_r);
DECLARE_WRITE32_MEMBER(ppc_spu_share_w);
DECLARE_READ16_MEMBER(spu_unk_r);
+ DECLARE_WRITE16_MEMBER(spu_irq_ack_w);
+ DECLARE_WRITE16_MEMBER(spu_220000_w);
+ DECLARE_WRITE16_MEMBER(spu_sdram_bank_w);
+ DECLARE_READ16_MEMBER(m68k_spu_share_r);
+ DECLARE_WRITE16_MEMBER(m68k_spu_share_w);
+ DECLARE_WRITE_LINE_MEMBER(spu_ata_interrupt);
// TIMER_CALLBACK_MEMBER(keyboard_timer_callback);
+ TIMER_DEVICE_CALLBACK_MEMBER(spu_timer_callback);
void set_ibutton(UINT8 *data);
int ibutton_w(UINT8 data);
DECLARE_WRITE8_MEMBER(security_w);
@@ -967,6 +272,8 @@ public:
DECLARE_WRITE_LINE_MEMBER(sound_irq_callback);
DECLARE_WRITE_LINE_MEMBER(midi_uart_ch0_irq_callback);
DECLARE_WRITE_LINE_MEMBER(midi_uart_ch1_irq_callback);
+ DECLARE_WRITE_LINE_MEMBER(gcu0_interrupt);
+ DECLARE_WRITE_LINE_MEMBER(gcu1_interrupt);
};
@@ -1567,6 +874,10 @@ READ32_MEMBER(firebeat_state::ppc_spu_share_r)
{
UINT32 r = 0;
+#if PRINT_SPU_MEM
+ printf("ppc_spu_share_r: %08X, %08X at %08X\n", offset, mem_mask, space.device().safe_pc());
+#endif
+
if (ACCESSING_BITS_24_31)
{
r |= m_spu_shared_ram[(offset * 4) + 0] << 24;
@@ -1582,6 +893,11 @@ READ32_MEMBER(firebeat_state::ppc_spu_share_r)
if (ACCESSING_BITS_0_7)
{
r |= m_spu_shared_ram[(offset * 4) + 3] << 0;
+
+ if (offset == 0xff) // address 0x3ff clears PPC interrupt
+ {
+ m_maincpu->set_input_line(INPUT_LINE_IRQ3, CLEAR_LINE);
+ }
}
return r;
@@ -1589,6 +905,10 @@ READ32_MEMBER(firebeat_state::ppc_spu_share_r)
WRITE32_MEMBER(firebeat_state::ppc_spu_share_w)
{
+#if PRINT_SPU_MEM
+ printf("ppc_spu_share_w: %08X, %08X, %08X at %08X\n", data, offset, mem_mask, space.device().safe_pc());
+#endif
+
if (ACCESSING_BITS_24_31)
{
m_spu_shared_ram[(offset * 4) + 0] = (data >> 24) & 0xff;
@@ -1600,6 +920,19 @@ WRITE32_MEMBER(firebeat_state::ppc_spu_share_w)
if (ACCESSING_BITS_8_15)
{
m_spu_shared_ram[(offset * 4) + 2] = (data >> 8) & 0xff;
+
+ if (offset == 0xff) // address 0x3fe triggers M68K interrupt
+ {
+ m_audiocpu->set_input_line(INPUT_LINE_IRQ4, ASSERT_LINE);
+
+ printf("SPU command %02X%02X\n", m_spu_shared_ram[0], m_spu_shared_ram[1]);
+
+ UINT16 cmd = ((UINT16)(m_spu_shared_ram[0]) << 8) | m_spu_shared_ram[1];
+ if (cmd == 0x1110)
+ {
+ printf(" [%02X %02X %02X %02X %02X]\n", m_spu_shared_ram[0x10], m_spu_shared_ram[0x11], m_spu_shared_ram[0x12], m_spu_shared_ram[0x13], m_spu_shared_ram[0x14]);
+ }
+ }
}
if (ACCESSING_BITS_0_7)
{
@@ -1607,21 +940,94 @@ WRITE32_MEMBER(firebeat_state::ppc_spu_share_w)
}
}
-#ifdef UNUSED_FUNCTION
+/* SPU board M68K IRQs
+
+ IRQ1: ?
+
+ IRQ2: Timer?
+
+ IRQ4: Dual-port RAM mailbox (when PPC writes to 0x3FE)
+ Handles commands from PPC (bytes 0x00 and 0x01)
+
+ IRQ6: ATA
+*/
+
READ16_MEMBER(firebeat_state::m68k_spu_share_r)
{
- return m_spu_shared_ram[offset] << 8;
+#if PRINT_SPU_MEM
+ printf("m68k_spu_share_r: %08X, %08X\n", offset, mem_mask);
+#endif
+ UINT16 r = 0;
+
+ if (ACCESSING_BITS_0_7)
+ {
+ r |= m_spu_shared_ram[offset];
+
+ if (offset == 0x3fe) // address 0x3fe clears M68K interrupt
+ {
+ m_audiocpu->set_input_line(INPUT_LINE_IRQ4, CLEAR_LINE);
+ }
+ }
+ return r;
}
WRITE16_MEMBER(firebeat_state::m68k_spu_share_w)
{
- m_spu_shared_ram[offset] = (data >> 8) & 0xff;
-}
+#if PRINT_SPU_MEM
+ printf("m68k_spu_share_w: %04X, %08X, %08X\n", data, offset, mem_mask);
#endif
+ if (ACCESSING_BITS_0_7)
+ {
+ m_spu_shared_ram[offset] = data & 0xff;
+
+ if (offset == 0x3ff) // address 0x3ff triggers PPC interrupt
+ {
+ m_maincpu->set_input_line(INPUT_LINE_IRQ3, ASSERT_LINE);
+ }
+ }
+}
READ16_MEMBER(firebeat_state::spu_unk_r)
{
- return 0xffff;
+ // dipswitches?
+
+ UINT16 r = 0;
+ r |= 0x80; // if set, uses ATA PIO mode, otherwise DMA
+ r |= 0x01; // enable SDRAM test
+
+ return r;
+}
+
+WRITE16_MEMBER(firebeat_state::spu_irq_ack_w)
+{
+ if (ACCESSING_BITS_0_7)
+ {
+ if (data & 0x01)
+ m_audiocpu->set_input_line(INPUT_LINE_IRQ1, CLEAR_LINE);
+ if (data & 0x02)
+ m_audiocpu->set_input_line(INPUT_LINE_IRQ2, CLEAR_LINE);
+ if (data & 0x08)
+ m_audiocpu->set_input_line(INPUT_LINE_IRQ6, CLEAR_LINE);
+ }
+}
+
+WRITE16_MEMBER(firebeat_state::spu_220000_w)
+{
+ // IRQ2 handler 5 sets all bits
+}
+
+WRITE16_MEMBER(firebeat_state::spu_sdram_bank_w)
+{
+}
+
+WRITE_LINE_MEMBER(firebeat_state::spu_ata_interrupt)
+{
+ m_audiocpu->set_input_line(INPUT_LINE_IRQ6, state);
+}
+
+TIMER_DEVICE_CALLBACK_MEMBER(firebeat_state::spu_timer_callback)
+{
+ m_audiocpu->set_input_line(INPUT_LINE_IRQ2, ASSERT_LINE);
}
/*****************************************************************************/
@@ -1651,8 +1057,8 @@ static ADDRESS_MAP_START( firebeat_map, AS_PROGRAM, 32, firebeat_state )
AM_RANGE(0x7dc00000, 0x7dc0000f) AM_DEVREADWRITE8("duart_com", pc16552_device, read, write, 0xffffffff)
AM_RANGE(0x7e000000, 0x7e00003f) AM_DEVREADWRITE8("rtc", rtc65271_device, rtc_r, rtc_w, 0xffffffff)
AM_RANGE(0x7e000100, 0x7e00013f) AM_DEVREADWRITE8("rtc", rtc65271_device, xram_r, xram_w, 0xffffffff)
- AM_RANGE(0x7e800000, 0x7e8000ff) AM_DEVREADWRITE("gcu0", firebeat_gcu_device, read, write)
- AM_RANGE(0x7e800100, 0x7e8001ff) AM_DEVREADWRITE("gcu1", firebeat_gcu_device, read, write)
+ AM_RANGE(0x7e800000, 0x7e8000ff) AM_DEVREADWRITE("gcu0", k057714_device, read, write)
+ AM_RANGE(0x7e800100, 0x7e8001ff) AM_DEVREADWRITE("gcu1", k057714_device, read, write)
AM_RANGE(0x7fe00000, 0x7fe0000f) AM_READWRITE(ata_command_r, ata_command_w)
AM_RANGE(0x7fe80000, 0x7fe8000f) AM_READWRITE(ata_control_r, ata_control_w)
AM_RANGE(0x7ff80000, 0x7fffffff) AM_ROM AM_REGION("user1", 0) /* System BIOS */
@@ -1661,7 +1067,16 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( spu_map, AS_PROGRAM, 16, firebeat_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x13ffff) AM_RAM
- AM_RANGE(0x340000, 0x34000f) AM_READ(spu_unk_r)
+ AM_RANGE(0x200000, 0x200001) AM_READ(spu_unk_r)
+ AM_RANGE(0x220000, 0x220001) AM_WRITE(spu_220000_w)
+ AM_RANGE(0x230000, 0x230001) AM_WRITE(spu_irq_ack_w)
+ AM_RANGE(0x260000, 0x260001) AM_WRITE(spu_sdram_bank_w)
+ AM_RANGE(0x280000, 0x2807ff) AM_READWRITE(m68k_spu_share_r, m68k_spu_share_w)
+ AM_RANGE(0x300000, 0x30000f) AM_DEVREADWRITE("spu_ata", ata_interface_device, read_cs0, write_cs0)
+ AM_RANGE(0x340000, 0x34000f) AM_DEVREADWRITE("spu_ata", ata_interface_device, read_cs1, write_cs1)
+ AM_RANGE(0x400000, 0x400fff) AM_DEVREADWRITE("rf5c400", rf5c400_device, rf5c400_r, rf5c400_w)
+ AM_RANGE(0x800000, 0x83ffff) AM_RAM // SDRAM
+ AM_RANGE(0xfc0000, 0xffffff) AM_RAM // SDRAM
ADDRESS_MAP_END
/*****************************************************************************/
@@ -1821,11 +1236,22 @@ INTERRUPT_GEN_MEMBER(firebeat_state::firebeat_interrupt)
// IRQ 0: VBlank
// IRQ 1: Extend board IRQ
// IRQ 2: Main board UART
+ // IRQ 3: SPU mailbox interrupt
// IRQ 4: ATA
device.execute().set_input_line(INPUT_LINE_IRQ0, ASSERT_LINE);
}
+WRITE_LINE_MEMBER(firebeat_state::gcu0_interrupt)
+{
+ m_maincpu->set_input_line(INPUT_LINE_IRQ0, state);
+}
+
+WRITE_LINE_MEMBER(firebeat_state::gcu1_interrupt)
+{
+ m_maincpu->set_input_line(INPUT_LINE_IRQ0, state);
+}
+
MACHINE_RESET_MEMBER(firebeat_state,firebeat)
{
m_layer = 0;
@@ -1867,11 +1293,11 @@ static MACHINE_CONFIG_START( firebeat, firebeat_state )
/* video hardware */
MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette")
- MCFG_DEVICE_ADD("gcu0", FIREBEAT_GCU, 0)
- MCFG_FIREBEAT_GCU_CPU_TAG("maincpu")
+ MCFG_DEVICE_ADD("gcu0", K057714, 0)
+ MCFG_K057714_IRQ_CALLBACK(WRITELINE(firebeat_state, gcu0_interrupt))
- MCFG_DEVICE_ADD("gcu1", FIREBEAT_GCU, 0)
- MCFG_FIREBEAT_GCU_CPU_TAG("maincpu")
+ MCFG_DEVICE_ADD("gcu1", K057714, 0)
+ MCFG_K057714_IRQ_CALLBACK(WRITELINE(firebeat_state, gcu1_interrupt))
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -1927,11 +1353,11 @@ static MACHINE_CONFIG_START( firebeat2, firebeat_state )
/* video hardware */
MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette")
- MCFG_DEVICE_ADD("gcu0", FIREBEAT_GCU, 0)
- MCFG_FIREBEAT_GCU_CPU_TAG("maincpu")
+ MCFG_DEVICE_ADD("gcu0", K057714, 0)
+ MCFG_K057714_IRQ_CALLBACK(WRITELINE(firebeat_state, gcu0_interrupt))
- MCFG_DEVICE_ADD("gcu1", FIREBEAT_GCU, 0)
- MCFG_FIREBEAT_GCU_CPU_TAG("maincpu")
+ MCFG_DEVICE_ADD("gcu1", K057714, 0)
+ MCFG_K057714_IRQ_CALLBACK(WRITELINE(firebeat_state, gcu1_interrupt))
MCFG_SCREEN_ADD("lscreen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -1977,11 +1403,31 @@ static MACHINE_CONFIG_DERIVED( firebeat_spu, firebeat )
/* basic machine hardware */
MCFG_CPU_ADD("audiocpu", M68000, 16000000)
MCFG_CPU_PROGRAM_MAP(spu_map)
+
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("sputimer", firebeat_state, spu_timer_callback, attotime::from_hz(1000));
+
+ MCFG_RF5C400_ADD("rf5c400", XTAL_16_9344MHz)
+ MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
+ MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
+
+ MCFG_ATA_INTERFACE_ADD("spu_ata", ata_devices, "cdrom", NULL, true)
+ MCFG_ATA_INTERFACE_IRQ_HANDLER(WRITELINE(firebeat_state, spu_ata_interrupt))
MACHINE_CONFIG_END
/*****************************************************************************/
/* Security dongle is a Dallas DS1411 RS232 Adapter with a DS1991 Multikey iButton */
+/* popn7 supports 8 different dongles:
+ - Manufacture
+ - Service
+ - Event
+ - Oversea
+ - No Hardware
+ - Rental
+ - Debug
+ - Normal
+*/
+
enum
{
DS1991_STATE_NORMAL,
@@ -2239,8 +1685,8 @@ ROM_START( kbm3rd )
ROM_REGION32_BE(0x80000, "user1", 0)
ROM_LOAD16_WORD_SWAP("974a03.21e", 0x00000, 0x80000, CRC(ef9a932d) SHA1(6299d3b9823605e519dbf1f105b59a09197df72f))
- ROM_REGION(0xc0, "user2", 0) // Security dongle
- ROM_LOAD("gca12-ja", 0x00, 0xc0, BAD_DUMP CRC(cf01dc15) SHA1(da8d208233487ebe65a0a9826fc72f1f459baa26))
+ ROM_REGION(0xc8, "user2", 0) // Security dongle
+ ROM_LOAD("gca12-ja_gca12-aa.bin", 0x00, 0xc8, CRC(96b12482) SHA1(199f20d9fa53108b3fe02d91d6793af1554b0f6f))
DISK_REGION( "ata:0:cdrom" ) // program CD-ROM
DISK_IMAGE_READONLY( "a12jaa01", 0, SHA1(ea30bf1273bce772f09063bfc8a74df360c743a7) )
@@ -2253,34 +1699,38 @@ ROM_START( popn4 )
ROM_REGION32_BE(0x80000, "user1", 0)
ROM_LOAD16_WORD_SWAP("a02jaa03.21e", 0x00000, 0x80000, CRC(43ecc093) SHA1(637df5b546cf7409dd4752dc471674fe2a046599))
- ROM_REGION(0xc0, "user2", ROMREGION_ERASE00) // Security dongle
- ROM_LOAD( "gq986-ja", 0x000000, 0x0000c0, CRC(6f8aa811) SHA1(fc970f6b4ada58eee361b3477abe503019b5dfda) )
+ ROM_REGION(0xc8, "user2", ROMREGION_ERASE00) // Security dongle
+ ROM_LOAD("gq986_gc986.bin", 0x00, 0xc8, CRC(5c11469a) SHA1(efbe2e4a8cbb1285122fad22e3cfe9d47310da02))
ROM_REGION(0x80000, "audiocpu", 0) // SPU 68K program
ROM_LOAD16_WORD_SWAP("a02jaa04.3q", 0x00000, 0x80000, CRC(8c6000dd) SHA1(94ab2a66879839411eac6c673b25143d15836683))
+ ROM_REGION16_LE(0x1000000, "rf5c400", ROMREGION_ERASE00)
+
DISK_REGION( "ata:0:cdrom" ) // program CD-ROM
DISK_IMAGE_READONLY( "gq986jaa01", 0, SHA1(e5368ac029b0bdf29943ae66677b5521ae1176e1) )
- DISK_REGION( "ata:1:cdrom" ) // data DVD-ROM
- DISK_IMAGE( "gq986jaa02", 1, SHA1(53367d3d5f91422fe386c42716492a0ae4332390) )
+ DISK_REGION( "spu_ata:0:cdrom" ) // data DVD-ROM
+ DISK_IMAGE( "gq986jaa02", 0, SHA1(53367d3d5f91422fe386c42716492a0ae4332390) )
ROM_END
ROM_START( popn5 )
ROM_REGION32_BE(0x80000, "user1", 0)
ROM_LOAD16_WORD_SWAP( "a02jaa03.21e", 0x000000, 0x080000, CRC(43ecc093) SHA1(637df5b546cf7409dd4752dc471674fe2a046599) )
- ROM_REGION(0xc0, "user2", ROMREGION_ERASE00) // Security dongle
- ROM_LOAD( "gca04-ja", 0x000000, 0x0000c0, CRC(7724fdbf) SHA1(b1b2d838d1938d9dc15151b7834502c1668bd31b) )
+ ROM_REGION(0xc8, "user2", ROMREGION_ERASE00) // Security dongle
+ ROM_LOAD("gea04-ja_gca04-ja_gca04-jb.bin", 0x00, 0xc8, CRC(f48f62f7) SHA1(e28b3fd41fa4136cf9c271967d0e68f21a67ba1a))
ROM_REGION(0x80000, "audiocpu", 0) // SPU 68K program
ROM_LOAD16_WORD_SWAP( "a02jaa04.3q", 0x000000, 0x080000, CRC(8c6000dd) SHA1(94ab2a66879839411eac6c673b25143d15836683) )
+ ROM_REGION16_LE(0x1000000, "rf5c400", ROMREGION_ERASE00)
+
DISK_REGION( "ata:0:cdrom" ) // program CD-ROM
DISK_IMAGE_READONLY( "a04jaa01", 0, SHA1(87136ddad1d786b4d5f04381fcbf679ab666e6c9) )
- DISK_REGION( "ata:1:cdrom" ) // data DVD-ROM
- DISK_IMAGE_READONLY( "a04jaa02", 1, SHA1(49a017dde76f84829f6e99a678524c40665c3bfd) )
+ DISK_REGION( "spu_ata:0:cdrom" ) // data DVD-ROM
+ DISK_IMAGE_READONLY( "a04jaa02", 0, SHA1(49a017dde76f84829f6e99a678524c40665c3bfd) )
ROM_END
ROM_START( popn6 )
@@ -2293,11 +1743,13 @@ ROM_START( popn6 )
ROM_REGION(0x80000, "audiocpu", 0) // SPU 68K program
ROM_LOAD16_WORD_SWAP("a02jaa04.3q", 0x00000, 0x80000, CRC(8c6000dd) SHA1(94ab2a66879839411eac6c673b25143d15836683))
+ ROM_REGION16_LE(0x1000000, "rf5c400", ROMREGION_ERASE00)
+
DISK_REGION( "ata:0:cdrom" ) // program CD-ROM
DISK_IMAGE_READONLY( "gqa16jaa01", 0, SHA1(7a7e475d06c74a273f821fdfde0743b33d566e4c) )
- DISK_REGION( "ata:1:cdrom" ) // data DVD-ROM
- DISK_IMAGE( "gqa16jaa02", 1, SHA1(e39067300e9440ff19cb98c1abc234fa3d5b26d1) )
+ DISK_REGION( "spu_ata:0:cdrom" ) // data DVD-ROM
+ DISK_IMAGE( "gqa16jaa02", 0, SHA1(e39067300e9440ff19cb98c1abc234fa3d5b26d1) )
ROM_END
ROM_START( popn7 )
@@ -2305,16 +1757,18 @@ ROM_START( popn7 )
ROM_LOAD16_WORD_SWAP("a02jaa03.21e", 0x00000, 0x80000, CRC(43ecc093) SHA1(637df5b546cf7409dd4752dc471674fe2a046599))
ROM_REGION(0xc0, "user2", ROMREGION_ERASE00) // Security dongle
- ROM_LOAD("gcb00-ja", 0x00, 0xc0, CRC(cc28625a) SHA1(e7de79ae72fdbd22328c9de74dfa17b5e6ae43b6))
+ ROM_LOAD("gcb00-ja", 0x00, 0xc0, CRC(d0a58c74) SHA1(fc1d8ad2f9d16743dc10b6e61a5a88ffa9c9dd2f))
ROM_REGION(0x80000, "audiocpu", 0) // SPU 68K program
ROM_LOAD16_WORD_SWAP("a02jaa04.3q", 0x00000, 0x80000, CRC(8c6000dd) SHA1(94ab2a66879839411eac6c673b25143d15836683))
+ ROM_REGION16_LE(0x1000000, "rf5c400", ROMREGION_ERASE00)
+
DISK_REGION( "ata:0:cdrom" ) // program CD-ROM
DISK_IMAGE_READONLY( "b00jab01", 0, SHA1(259c733ca4d30281205b46b7bf8d60c9d01aa818) )
- DISK_REGION( "ata:1:cdrom" ) // data DVD-ROM
- DISK_IMAGE_READONLY( "b00jaa02", 1, SHA1(c8ce2f8ee6aeeedef9c110a59e68fcec7b669ad6) )
+ DISK_REGION( "spu_ata:0:cdrom" ) // data DVD-ROM
+ DISK_IMAGE_READONLY( "b00jaa02", 0, SHA1(c8ce2f8ee6aeeedef9c110a59e68fcec7b669ad6) )
ROM_END
ROM_START( popn8 )
@@ -2327,11 +1781,13 @@ ROM_START( popn8 )
ROM_REGION(0x80000, "audiocpu", 0) // SPU 68K program
ROM_LOAD16_WORD_SWAP("a02jaa04.3q", 0x00000, 0x80000, CRC(8c6000dd) SHA1(94ab2a66879839411eac6c673b25143d15836683))
+ ROM_REGION16_LE(0x1000000, "rf5c400", ROMREGION_ERASE00)
+
DISK_REGION( "ata:0:cdrom" ) // program CD-ROM
DISK_IMAGE_READONLY( "gqb30jaa01", 0, SHA1(0ff3e40e3717ce23337b3a2438bdaca01cba9e30) )
- DISK_REGION( "ata:1:cdrom" ) // data DVD-ROM
- DISK_IMAGE_READONLY( "gqb30jaa02", 1, SHA1(f067d502c23efe0267aada5706f5bc7a54605942) )
+ DISK_REGION( "spu_ata:0:cdrom" ) // data DVD-ROM
+ DISK_IMAGE_READONLY( "gqb30jaa02", 0, SHA1(f067d502c23efe0267aada5706f5bc7a54605942) )
ROM_END
ROM_START( popnanm2 )
@@ -2344,11 +1800,13 @@ ROM_START( popnanm2 )
ROM_REGION(0x80000, "audiocpu", 0) // SPU 68K program
ROM_LOAD16_WORD_SWAP("a02jaa04.3q", 0x00000, 0x80000, CRC(8c6000dd) SHA1(94ab2a66879839411eac6c673b25143d15836683))
+ ROM_REGION16_LE(0x1000000, "rf5c400", ROMREGION_ERASE00)
+
DISK_REGION( "ata:0:cdrom" ) // program CD-ROM
DISK_IMAGE_READONLY( "gea02jaa01", 0, SHA1(e81203b6812336c4d00476377193340031ef11b1) )
- DISK_REGION( "ata:1:cdrom" ) // data DVD-ROM
- DISK_IMAGE_READONLY( "gea02jaa02", 1, SHA1(7212e399779f37a5dcb8317a8f635a3b3f620aa9) )
+ DISK_REGION( "spu_ata:0:cdrom" ) // data DVD-ROM
+ DISK_IMAGE_READONLY( "gea02jaa02", 0, SHA1(7212e399779f37a5dcb8317a8f635a3b3f620aa9) )
ROM_END
ROM_START( ppd )
@@ -2380,9 +1838,47 @@ ROM_START( ppp11 )
ROM_END
// Beatmania III has a different BIOS and SPU program, and they aren't dumped yet
+ROM_START( bm3core )
+ ROM_REGION32_BE(0x80000, "user1", 0)
+ ROM_LOAD16_WORD_SWAP("974a03.21e", 0x00000, 0x80000, BAD_DUMP CRC(ef9a932d) SHA1(6299d3b9823605e519dbf1f105b59a09197df72f)) // boots with KBM BIOS
+
+ ROM_REGION(0xc8, "user2", ROMREGION_ERASE00) // Security dongle
+ ROM_LOAD( "gca05-jc.bin", 0x00, 0xc8, CRC(a4c67c80) SHA1(a87609052fa879116350564353df7f5b70ef3ae5) )
+
+ ROM_REGION(0x80000, "audiocpu", 0) // SPU 68K program
+ ROM_LOAD16_WORD_SWAP("a02jaa04.3q", 0x00000, 0x80000, BAD_DUMP CRC(8c6000dd) SHA1(94ab2a66879839411eac6c673b25143d15836683))
+
+ ROM_REGION16_LE(0x1000000, "rf5c400", ROMREGION_ERASE00)
+
+ DISK_REGION( "ata:0:cdrom" ) // program CD-ROM
+ DISK_IMAGE_READONLY( "a05jca01", 0, SHA1(b89eced8a1325b087e3f875d1a643bebe9bad5c0) )
+
+ DISK_REGION( "spu_ata:0:hdd:image" ) // HDD
+ DISK_IMAGE_READONLY( "a05jca02", 0, NO_DUMP )
+ROM_END
+
+ROM_START( bm36th )
+ ROM_REGION32_BE(0x80000, "user1", 0)
+ ROM_LOAD16_WORD_SWAP("974a03.21e", 0x00000, 0x80000, BAD_DUMP CRC(ef9a932d) SHA1(6299d3b9823605e519dbf1f105b59a09197df72f)) // boots with KBM BIOS
+
+ ROM_REGION(0xc8, "user2", ROMREGION_ERASE00) // Security dongle
+ ROM_LOAD( "gca21-jc", 0x000000, 0x0000c8, NO_DUMP )
+
+ ROM_REGION(0x80000, "audiocpu", 0) // SPU 68K program
+ ROM_LOAD16_WORD_SWAP("a02jaa04.3q", 0x00000, 0x80000, BAD_DUMP CRC(8c6000dd) SHA1(94ab2a66879839411eac6c673b25143d15836683))
+
+ ROM_REGION16_LE(0x1000000, "rf5c400", ROMREGION_ERASE00)
+
+ DISK_REGION( "ata:0:cdrom" ) // program CD-ROM
+ DISK_IMAGE_READONLY( "a21jca01", 0, SHA1(d1b888379cc0b2c2ab58fa2c5be49258043c3ea1) )
+
+ DISK_REGION( "spu_ata:0:hdd:image" ) // HDD
+ DISK_IMAGE_READONLY( "a21jca02", 0, NO_DUMP )
+ROM_END
+
ROM_START( bm37th )
ROM_REGION32_BE(0x80000, "user1", 0)
- ROM_LOAD16_WORD_SWAP("a02jaa03.21e", 0x00000, 0x80000, BAD_DUMP CRC(43ecc093) SHA1(637df5b546cf7409dd4752dc471674fe2a046599))
+ ROM_LOAD16_WORD_SWAP("974a03.21e", 0x00000, 0x80000, BAD_DUMP CRC(ef9a932d) SHA1(6299d3b9823605e519dbf1f105b59a09197df72f)) // boots with KBM BIOS
ROM_REGION(0xc0, "user2", ROMREGION_ERASE00) // Security dongle
ROM_LOAD( "gcb07-jc", 0x000000, 0x0000c0, CRC(16115b6a) SHA1(dcb2a3346973941a946b2cdfd31a5a761f666ca3) )
@@ -2390,16 +1886,18 @@ ROM_START( bm37th )
ROM_REGION(0x80000, "audiocpu", 0) // SPU 68K program
ROM_LOAD16_WORD_SWAP("a02jaa04.3q", 0x00000, 0x80000, BAD_DUMP CRC(8c6000dd) SHA1(94ab2a66879839411eac6c673b25143d15836683))
+ ROM_REGION16_LE(0x1000000, "rf5c400", ROMREGION_ERASE00)
+
DISK_REGION( "ata:0:cdrom" ) // program CD-ROM
DISK_IMAGE_READONLY( "gcb07jca01", 0, SHA1(f906379bdebee314e2ca97c7756259c8c25897fd) )
- DISK_REGION( "ata:1:hdd:image" ) // data HDD
- DISK_IMAGE_READONLY( "gcb07jca02", 1, SHA1(6b8e17635825a6a43dc8d2721fe2eb0e0f39e940) )
+ DISK_REGION( "spu_ata:0:hdd:image" ) // HDD
+ DISK_IMAGE_READONLY( "gcb07jca02", 0, SHA1(6b8e17635825a6a43dc8d2721fe2eb0e0f39e940) )
ROM_END
ROM_START( bm3final )
ROM_REGION32_BE(0x80000, "user1", 0)
- ROM_LOAD16_WORD_SWAP("a02jaa03.21e", 0x00000, 0x80000, BAD_DUMP CRC(43ecc093) SHA1(637df5b546cf7409dd4752dc471674fe2a046599))
+ ROM_LOAD16_WORD_SWAP("974a03.21e", 0x00000, 0x80000, BAD_DUMP CRC(ef9a932d) SHA1(6299d3b9823605e519dbf1f105b59a09197df72f)) // boots with KBM BIOS
ROM_REGION(0xc0, "user2", ROMREGION_ERASE00) // Security dongle
ROM_LOAD( "gcc01-jc", 0x000000, 0x0000c0, CRC(9c49fed8) SHA1(212b87c1d25763117611ffb2a36ed568d429d2f4) )
@@ -2407,27 +1905,31 @@ ROM_START( bm3final )
ROM_REGION(0x80000, "audiocpu", 0) // SPU 68K program
ROM_LOAD16_WORD_SWAP("a02jaa04.3q", 0x00000, 0x80000, BAD_DUMP CRC(8c6000dd) SHA1(94ab2a66879839411eac6c673b25143d15836683))
+ ROM_REGION16_LE(0x1000000, "rf5c400", ROMREGION_ERASE00)
+
DISK_REGION( "ata:0:cdrom" ) // program CD-ROM
DISK_IMAGE_READONLY( "gcc01jca01", 0, SHA1(3e7af83670d791591ad838823422959987f7aab9) )
- DISK_REGION( "ata:1:hdd:image" ) // data HDD
- DISK_IMAGE_READONLY( "gcc01jca02", 1, SHA1(823e29bab11cb67069d822f5ffb2b90b9d3368d2) )
+ DISK_REGION( "spu_ata:0:hdd:image" ) // HDD
+ DISK_IMAGE_READONLY( "gcc01jca02", 0, SHA1(823e29bab11cb67069d822f5ffb2b90b9d3368d2) )
ROM_END
/*****************************************************************************/
-GAME( 2000, ppp, 0, firebeat, ppp, firebeat_state, ppp, ROT0, "Konami", "ParaParaParadise", GAME_NOT_WORKING)
-GAME( 2000, ppd, 0, firebeat, ppp, firebeat_state, ppd, ROT0, "Konami", "ParaParaDancing", GAME_NOT_WORKING)
-GAME( 2000, ppp11, 0, firebeat, ppp, firebeat_state, ppp, ROT0, "Konami", "ParaParaParadise v1.1", GAME_NOT_WORKING)
-GAME( 2000, ppp1mp, ppp, firebeat, ppp, firebeat_state, ppp, ROT0, "Konami", "ParaParaParadise 1st Mix Plus", GAME_NOT_WORKING)
-GAMEL(2000, kbm, 0, firebeat2, kbm, firebeat_state, kbm, ROT270, "Konami", "Keyboardmania", GAME_NOT_WORKING, layout_firebeat)
-GAMEL(2000, kbm2nd, 0, firebeat2, kbm, firebeat_state, kbm, ROT270, "Konami", "Keyboardmania 2nd Mix", GAME_NOT_WORKING, layout_firebeat)
-GAMEL(2001, kbm3rd, 0, firebeat2, kbm, firebeat_state, kbm, ROT270, "Konami", "Keyboardmania 3rd Mix", GAME_NOT_WORKING, layout_firebeat)
-GAME( 2000, popn4, 0, firebeat_spu, popn, firebeat_state, ppp, ROT0, "Konami", "Pop'n Music 4", GAME_NOT_WORKING)
-GAME( 2000, popn5, 0, firebeat_spu, popn, firebeat_state, ppp, ROT0, "Konami", "Pop'n Music 5", GAME_NOT_WORKING)
-GAME( 2001, popn6, 0, firebeat_spu, popn, firebeat_state, ppp, ROT0, "Konami", "Pop'n Music 6", GAME_NOT_WORKING)
-GAME( 2001, popn7, 0, firebeat_spu, popn, firebeat_state, ppp, ROT0, "Konami", "Pop'n Music 7", GAME_NOT_WORKING)
-GAME( 2001, popnanm2, 0, firebeat_spu, popn, firebeat_state, ppp, ROT0, "Konami", "Pop'n Music Animelo 2", GAME_NOT_WORKING)
-GAME( 2002, popn8, 0, firebeat_spu, popn, firebeat_state, ppp, ROT0, "Konami", "Pop'n Music 8", GAME_NOT_WORKING)
-GAME( 2002, bm37th, 0, firebeat_spu, popn, firebeat_state, ppp, ROT0, "Konami", "Beatmania III Append 7th Mix", GAME_NOT_WORKING)
-GAME( 2003, bm3final, 0, firebeat_spu, popn, firebeat_state, ppp, ROT0, "Konami", "Beatmania III The Final", GAME_NOT_WORKING)
+GAME( 2000, ppp, 0, firebeat, ppp, firebeat_state, ppp, ROT0, "Konami", "ParaParaParadise", MACHINE_NOT_WORKING)
+GAME( 2000, ppd, 0, firebeat, ppp, firebeat_state, ppd, ROT0, "Konami", "ParaParaDancing", MACHINE_NOT_WORKING)
+GAME( 2000, ppp11, 0, firebeat, ppp, firebeat_state, ppp, ROT0, "Konami", "ParaParaParadise v1.1", MACHINE_NOT_WORKING)
+GAME( 2000, ppp1mp, ppp, firebeat, ppp, firebeat_state, ppp, ROT0, "Konami", "ParaParaParadise 1st Mix Plus", MACHINE_NOT_WORKING)
+GAMEL(2000, kbm, 0, firebeat2, kbm, firebeat_state, kbm, ROT270, "Konami", "Keyboardmania", MACHINE_NOT_WORKING, layout_firebeat)
+GAMEL(2000, kbm2nd, 0, firebeat2, kbm, firebeat_state, kbm, ROT270, "Konami", "Keyboardmania 2nd Mix", MACHINE_NOT_WORKING, layout_firebeat)
+GAMEL(2001, kbm3rd, 0, firebeat2, kbm, firebeat_state, kbm, ROT270, "Konami", "Keyboardmania 3rd Mix", MACHINE_NOT_WORKING, layout_firebeat)
+GAME( 2000, popn4, 0, firebeat_spu, popn, firebeat_state, ppp, ROT0, "Konami", "Pop'n Music 4", MACHINE_NOT_WORKING)
+GAME( 2000, popn5, 0, firebeat_spu, popn, firebeat_state, ppp, ROT0, "Konami", "Pop'n Music 5", MACHINE_NOT_WORKING)
+GAME( 2001, popn6, 0, firebeat_spu, popn, firebeat_state, ppp, ROT0, "Konami", "Pop'n Music 6", MACHINE_NOT_WORKING)
+GAME( 2001, popn7, 0, firebeat_spu, popn, firebeat_state, ppp, ROT0, "Konami", "Pop'n Music 7", MACHINE_NOT_WORKING)
+GAME( 2001, popnanm2, 0, firebeat_spu, popn, firebeat_state, ppp, ROT0, "Konami", "Pop'n Music Animelo 2", MACHINE_NOT_WORKING)
+GAME( 2002, popn8, 0, firebeat_spu, popn, firebeat_state, ppp, ROT0, "Konami", "Pop'n Music 8", MACHINE_NOT_WORKING)
+GAME( 2000, bm3core, 0, firebeat_spu, popn, firebeat_state, ppp, ROT0, "Konami", "Beatmania III Append Core Remix", MACHINE_NOT_WORKING)
+GAME( 2001, bm36th, 0, firebeat_spu, popn, firebeat_state, ppp, ROT0, "Konami", "Beatmania III Append 6th Mix", MACHINE_NOT_WORKING)
+GAME( 2002, bm37th, 0, firebeat_spu, popn, firebeat_state, ppp, ROT0, "Konami", "Beatmania III Append 7th Mix", MACHINE_NOT_WORKING)
+GAME( 2003, bm3final, 0, firebeat_spu, popn, firebeat_state, ppp, ROT0, "Konami", "Beatmania III The Final", MACHINE_NOT_WORKING)
diff --git a/src/mame/drivers/firetrap.c b/src/mame/drivers/firetrap.c
index 899930200f2..786e141a4be 100644
--- a/src/mame/drivers/firetrap.c
+++ b/src/mame/drivers/firetrap.c
@@ -964,7 +964,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)", GAME_SUPPORTS_SAVE )
-GAME( 1986, firetrapa, firetrap, firetrap, firetrap, driver_device, 0, ROT90, "Wood Place Inc. (Data East USA license)", "Fire Trap (US, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1986, firetrapj, firetrap, firetrap, firetrapj, driver_device, 0, ROT90, "Wood Place Inc.", "Fire Trap (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1986, firetrapbl, firetrap, firetrapbl, firetrapbl, driver_device, 0, ROT90, "bootleg", "Fire Trap (Japan bootleg)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/fitfight.c b/src/mame/drivers/fitfight.c
index 47e718ba0cf..1f0a8b679e6 100644
--- a/src/mame/drivers/fitfight.c
+++ b/src/mame/drivers/fitfight.c
@@ -1019,7 +1019,7 @@ DRIVER_INIT_MEMBER(fitfight_state,hotmindff)
/* GAME */
-GAME( 199?, fitfight, 0, fitfight, fitfight, fitfight_state, fitfight, ROT0, "bootleg", "Fit of Fighting", GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 199?, histryma, 0, fitfight, histryma, fitfight_state, histryma, ROT0, "bootleg", "The History of Martial Arts", GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 199?, bbprot, 0, bbprot, bbprot, fitfight_state, bbprot, ROT0, "<unknown>", "unknown fighting game 'BB' (prototype)", GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 199?, hotmindff, hotmind, fitfight, fitfight, fitfight_state, hotmindff, ROT0, "Playmark", "Hot Mind (Fit of Fighting hardware)", GAME_NOT_WORKING | GAME_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>", "unknown fighting game 'BB' (prototype)", 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/mess/drivers/fk1.c b/src/mame/drivers/fk1.c
index ccd2184d8c0..c821864f844 100644
--- a/src/mess/drivers/fk1.c
+++ b/src/mame/drivers/fk1.c
@@ -474,4 +474,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1989, fk1, 0, 0, fk1, fk1, driver_device, 0, "Statni statek Klicany", "FK-1", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/flicker.c b/src/mame/drivers/flicker.c
index 4284c59f805..b4222b25212 100644
--- a/src/mame/drivers/flicker.c
+++ b/src/mame/drivers/flicker.c
@@ -228,4 +228,4 @@ ROM_START(flicker)
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)", GAME_MECHANICAL )
+GAME(1974, flicker, 0, flicker, flicker, driver_device, 0, ROT0, "Dave Nutting Associates / Bally", "Flicker (prototype)", MACHINE_MECHANICAL )
diff --git a/src/mame/drivers/flipjack.c b/src/mame/drivers/flipjack.c
index 8e838bd128d..182797e7741 100644
--- a/src/mame/drivers/flipjack.c
+++ b/src/mame/drivers/flipjack.c
@@ -500,4 +500,4 @@ ROM_START( flipjack )
ROM_END
-GAME( 1983?, flipjack, 0, flipjack, flipjack, driver_device, 0, ROT90, "Jackson Co., Ltd.", "Flipper Jack", GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) // copyright not shown, datecodes on pcb suggests mid-1983
+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
diff --git a/src/mame/drivers/flkatck.c b/src/mame/drivers/flkatck.c
index 2aa5af9ca1e..50fc26d94b8 100644
--- a/src/mame/drivers/flkatck.c
+++ b/src/mame/drivers/flkatck.c
@@ -304,6 +304,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", GAME_SUPPORTS_SAVE )
-GAME( 1987, flkatck, mx5000, flkatck, flkatck, driver_device, 0, ROT90, "Konami", "Flak Attack (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1987, flkatcka,mx5000, flkatck, flkatck, driver_device, 0, ROT90, "Konami", "Flak Attack (Japan, PWB 450593 sub-board)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/flower.c b/src/mame/drivers/flower.c
index d6612da69a4..a790731185b 100644
--- a/src/mame/drivers/flower.c
+++ b/src/mame/drivers/flower.c
@@ -373,5 +373,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)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1986, flowerj, flower, flower, flower, driver_device, 0, ROT0, "Clarue (Sega / Alpha Denshi Co. license)", "Flower (Japan)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE)
+GAME( 1986, flower, 0, flower, flower, driver_device, 0, ROT0, "Clarue (Komax license)", "Flower (US)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1986, flowerj, flower, flower, flower, driver_device, 0, ROT0, "Clarue (Sega / Alpha Denshi Co. license)", "Flower (Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE)
diff --git a/src/mame/drivers/flstory.c b/src/mame/drivers/flstory.c
index 2a3ffc27420..b68b43e5483 100644
--- a/src/mame/drivers/flstory.c
+++ b/src/mame/drivers/flstory.c
@@ -1576,9 +1576,9 @@ ROM_START( rumba )
ROM_END
-GAME( 1985, flstory, 0, flstory, flstory, driver_device, 0, ROT180, "Taito", "The FairyLand Story", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1985, flstoryj, flstory, flstory, flstory, driver_device, 0, ROT180, "Taito", "The FairyLand Story (Japan)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1985, onna34ro, 0, onna34ro, onna34ro, driver_device, 0, ROT0, "Taito", "Onna Sansirou - Typhoon Gal (set 1)", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1985, onna34roa, onna34ro, onna34ro, onna34ro, driver_device, 0, ROT0, "Taito", "Onna Sansirou - Typhoon Gal (set 2)", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1984, victnine, 0, victnine, victnine, driver_device, 0, ROT0, "Taito", "Victorious Nine", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1984, rumba, 0, rumba, rumba, driver_device, 0, ROT270, "Taito", "Rumba Lumber", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION )
+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 )
diff --git a/src/mame/drivers/flyball.c b/src/mame/drivers/flyball.c
index efda701ac73..e5d3d2c30b5 100644
--- a/src/mame/drivers/flyball.c
+++ b/src/mame/drivers/flyball.c
@@ -537,5 +537,5 @@ ROM_END
*
*************************************/
-GAME( 1976, flyball, 0, flyball, flyball, driver_device, 0, 0, "Atari", "Flyball (rev 2)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1976, flyball1, flyball, flyball, flyball, driver_device, 0, 0, "Atari", "Flyball (rev 1)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/fm7.c b/src/mame/drivers/fm7.c
index 2247deec612..787e38d4f9b 100644
--- a/src/mess/drivers/fm7.c
+++ b/src/mame/drivers/fm7.c
@@ -2083,10 +2083,8 @@ static MACHINE_CONFIG_START( fm7, fm7_state )
MCFG_SCREEN_SIZE(640, 200)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
MCFG_SCREEN_UPDATE_DRIVER(fm7_state, screen_update_fm7)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_PALETTE_ADD("palette", 8)
- MCFG_PALETTE_INIT_OWNER(fm7_state, fm7)
+ MCFG_PALETTE_ADD_3BIT_BRG("palette")
MCFG_CASSETTE_ADD("cassette")
MCFG_CASSETTE_FORMATS(fm7_cassette_formats)
@@ -2141,10 +2139,8 @@ static MACHINE_CONFIG_START( fm8, fm7_state )
MCFG_SCREEN_SIZE(640, 200)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
MCFG_SCREEN_UPDATE_DRIVER(fm7_state, screen_update_fm7)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_PALETTE_ADD("palette", 8)
- MCFG_PALETTE_INIT_OWNER(fm7_state, fm7)
+ MCFG_PALETTE_ADD_3BIT_BRG("palette")
MCFG_CASSETTE_ADD("cassette")
MCFG_CASSETTE_FORMATS(fm7_cassette_formats)
@@ -2216,10 +2212,9 @@ static MACHINE_CONFIG_START( fm77av, fm7_state )
MCFG_SCREEN_SIZE(640, 200)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
MCFG_SCREEN_UPDATE_DRIVER(fm7_state, screen_update_fm7)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_PALETTE_ADD("palette", 8 + 4096)
- MCFG_PALETTE_INIT_OWNER(fm7_state, fm7)
+ MCFG_PALETTE_ADD_3BIT_BRG("palette")
+ MCFG_PALETTE_ADD("av_palette", 4096)
MCFG_CASSETTE_ADD("cassette")
MCFG_CASSETTE_FORMATS(fm7_cassette_formats)
@@ -2295,10 +2290,8 @@ static MACHINE_CONFIG_START( fm11, fm7_state )
MCFG_SCREEN_SIZE(640, 200)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
MCFG_SCREEN_UPDATE_DRIVER(fm7_state, screen_update_fm7)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_PALETTE_ADD("palette", 8)
- MCFG_PALETTE_INIT_OWNER(fm7_state, fm7)
+ MCFG_PALETTE_ADD_3BIT_BRG("palette")
MCFG_CASSETTE_ADD("cassette")
MCFG_CASSETTE_FORMATS(fm7_cassette_formats)
@@ -2348,10 +2341,8 @@ static MACHINE_CONFIG_START( fm16beta, fm7_state )
MCFG_SCREEN_SIZE(640, 200)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
MCFG_SCREEN_UPDATE_DRIVER(fm7_state, screen_update_fm7)
- MCFG_SCREEN_PALETTE("palette")
- MCFG_PALETTE_ADD("palette", 8)
- MCFG_PALETTE_INIT_OWNER(fm7_state, fm7)
+ MCFG_PALETTE_ADD_3BIT_BRG("palette")
MCFG_CASSETTE_ADD("cassette")
MCFG_CASSETTE_FORMATS(fm7_cassette_formats)
@@ -2540,9 +2531,9 @@ ROM_END
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", GAME_IMPERFECT_GRAPHICS)
-COMP( 1985, fm7740sx, fm7, 0, fm77av, fm7, fm7_state, fm7, "Fujitsu", "FM-77AV40SX", GAME_NOT_WORKING)
+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", GAME_NOT_WORKING)
-COMP( 1982, fm16beta, 0, 0, fm16beta, fm7, fm7_state, fm7, "Fujitsu", "FM-16\xCE\xB2", GAME_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/mess/drivers/fmtowns.c b/src/mame/drivers/fmtowns.c
index fa6235e04d2..362fed1c7a0 100644
--- a/src/mess/drivers/fmtowns.c
+++ b/src/mame/drivers/fmtowns.c
@@ -2696,11 +2696,11 @@ static MACHINE_CONFIG_FRAGMENT( towns_base )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
- MCFG_SOUND_ADD("fm", YM3438, 53693100 / 7) // actual clock speed unknown
+ MCFG_SOUND_ADD("fm", YM3438, 16000000 / 2) // actual clock speed unknown
MCFG_YM2612_IRQ_HANDLER(WRITELINE(towns_state, towns_fm_irq))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
- MCFG_RF5C68_ADD("pcm", 53693100 / 7) // actual clock speed unknown
+ MCFG_RF5C68_ADD("pcm", 16000000 / 2) // actual clock speed unknown
MCFG_RF5C68_SAMPLE_END_CB(towns_state, towns_pcm_irq)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.50)
MCFG_SOUND_ADD("cdda",CDDA,0)
@@ -2970,13 +2970,13 @@ 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", GAME_NOT_WORKING)
-COMP( 1989, fmtownsa, fmtowns, 0, towns, towns, driver_device, 0, "Fujitsu", "FM-Towns (alternate)", GAME_NOT_WORKING)
-COMP( 1991, fmtownsux,fmtowns, 0, townsux, towns, driver_device, 0, "Fujitsu", "FM-Towns II UX", GAME_NOT_WORKING)
-COMP( 1992, fmtownshr,fmtowns, 0, townshr, towns, driver_device, 0, "Fujitsu", "FM-Towns II HR", GAME_NOT_WORKING)
-COMP( 1993, fmtownsmx,fmtowns, 0, townshr, towns, driver_device, 0, "Fujitsu", "FM-Towns II MX", GAME_NOT_WORKING)
-COMP( 1994, fmtownsftv,fmtowns, 0, townsftv, towns, driver_device, 0, "Fujitsu", "FM-Towns II FreshTV", GAME_NOT_WORKING)
-COMP( 19??, fmtownssj,fmtowns, 0, townssj, towns, driver_device, 0, "Fujitsu", "FM-Towns II SJ", GAME_NOT_WORKING)
-CONS( 1993, fmtmarty, 0, 0, marty, marty, driver_device, 0, "Fujitsu", "FM-Towns Marty", GAME_NOT_WORKING)
-CONS( 1993, fmtmarty2,fmtmarty, 0, marty, marty, driver_device, 0, "Fujitsu", "FM-Towns Marty 2", GAME_NOT_WORKING)
-CONS( 1994, carmarty, fmtmarty, 0, marty, marty, driver_device, 0, "Fujitsu", "FM-Towns Car Marty", GAME_NOT_WORKING)
+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)
diff --git a/src/mame/drivers/foodf.c b/src/mame/drivers/foodf.c
index 841cb7a2b89..878a1444250 100644
--- a/src/mame/drivers/foodf.c
+++ b/src/mame/drivers/foodf.c
@@ -502,7 +502,7 @@ ROM_END
*
*************************************/
-GAME( 1982, foodf, 0, foodf, foodf, driver_device, 0, ROT0, "General Computer Corporation (Atari license)", "Food Fight (rev 3)", GAME_SUPPORTS_SAVE )
-GAME( 1982, foodf2, foodf, foodf, foodf, driver_device, 0, ROT0, "General Computer Corporation (Atari license)", "Food Fight (rev 2)", GAME_SUPPORTS_SAVE )
-GAME( 1982, foodf1, foodf, foodf, foodf, driver_device, 0, ROT0, "General Computer Corporation (Atari license)", "Food Fight (rev 1)", GAME_SUPPORTS_SAVE )
-GAME( 1982, foodfc, foodf, foodf, foodf, driver_device, 0, ROT0, "General Computer Corporation (Atari license)", "Food Fight (cocktail)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/force68k.c b/src/mame/drivers/force68k.c
new file mode 100644
index 00000000000..d1cf7a46833
--- /dev/null
+++ b/src/mame/drivers/force68k.c
@@ -0,0 +1,606 @@
+// license:BSD-3-Clause
+// copyright-holders:Joakim Larsson Edstrom
+/***************************************************************************
+ *
+ * Force SYS68K CPU-1/CPU-6 VME SBC drivers, initially based on the 68ksbc.c
+ *
+ * 13/06/2015
+ *
+ * The info found on the links below is for a later revisions of the board I have
+ * but it is somewhat compatible so I got the system ROM up and running in terminal.
+ * My CPU-1 board has proms from 1983 and the PCB has no rev markings so probably
+ * the original or a very early design. The board real estate differs from the later
+ * CPU-1:s I found pictures of but has the same main chips and functions.
+ *
+ * http://bitsavers.trailing-edge.com/pdf/forceComputers/1988_Force_VMEbus_Products.pdf
+ * http://www.artisantg.com/info/P_wUovN.pdf
+ *
+ * Some info from those documents:
+ *
+ * Address Map
+ * ----------------------------------------------------------
+ * Address Range Description
+ * ----------------------------------------------------------
+ * 000 000 - 000 007 Initialisation vectors from system EPROM
+ * 000 008 - 01F FFF Dynamic RAM on CPU-1 B
+ * 000 008 - 07F FFF Dynamic RAM on CPU-1 D
+ * 080 008 - 09F FFF SYSTEM EPROM Area
+ * OAO 000 - OBF FFF USER EPROMArea
+ * 0C0 041 - 0C0 043 ACIA (P3) Host
+ * 0C0 080 - 0C0 082 ACIA (P4) Terminal
+ * 0C0 101 - 0C0 103 ACIA (P5) Remote device (eg serial printer)
+ * 0C0 401 - 0C0 42F RTC
+ * OEO 001 - 0E0 035 PI/T (eg centronics printer)
+ * OEO 200 - 0E0 2FF FPU
+ * OEO 300 - 0E0 300 Reset Off
+ * OEO 380 - 0E0 380 Reset On
+ * 100 000 - FEF FFF VMEbus addresses (A24)
+ * FFO 000 - FFF FFF VMEbus Short I/O (A16)
+ * ----------------------------------------------------------
+ *
+ * Interrupt sources
+ * ----------------------------------------------------------
+ * Description Device Lvl IRQ VME board
+ * /Board Vector Address
+ * ----------------------------------------------------------
+ * On board Sources
+ * ABORT Switch 7 31
+ * Real Time Clock (RTC) 58167A 6 30
+ * Parallel/Timer (PI/T) 68230 5 29
+ * Terminal ACIA 6850 4 28
+ * Remote ACIA 6850 3 27
+ * Host ACIA 6850 2 26
+ * ACFAIL, SYSFAIL VME 5 29
+ * Off board Sources (other VME boards)
+ * 6 Port Serial I/O board SIO 4 64-75 0xb00000
+ * 8 Port Serial I/O board ISIO 4 76-83 0x960000
+ * Disk Controller WFC 3 119 0xb01000
+ * SCSI Controller ISCSI 4 119 0xa00000
+ * Slot 1 Controller Board ASCU 7 31 0xb02000
+ * ----------------------------------------------------------
+ *
+ * TODO:
+ * - Finish 3 x ACIA6850, host and remote interface left, terminal works
+ * - Finish 1 x 68230 Motorola, Parallel Interface / Timer as required by ROM
+ * - Configure PIT to the Centronics device printer interface as
+ * supported by ROM (DONE)
+ * - Add 1 x Abort Switch
+ * - Add 1 x Reset Switch
+ * - Add 1 x Halt LED
+ * - Add a jumper field device as supported by PCB
+ * - Add configurable serial connector between ACIA:s and
+ * - Real terminal emulator, ie rs232 "socket"
+ * - Debug console
+ * - Add VME bus driver
+ *
+ ****************************************************************************/
+
+#include "emu.h"
+#include "bus/rs232/rs232.h"
+#include "cpu/m68000/m68000.h"
+#include "machine/mm58167.h"
+#include "machine/68230pit.h"
+#include "machine/6850acia.h"
+#include "machine/clock.h"
+#include "bus/centronics/ctronics.h"
+#include "bus/generic/slot.h"
+#include "bus/generic/carts.h"
+
+#define LOG(x) x
+
+#define BAUDGEN_CLOCK XTAL_1_8432MHz
+/*
+ * The baudrate on the Force68k CPU-1 to CPU-6 is generated by a
+ * Motorola 14411 bitrate generator, the CPU-6 documents matches the circuits
+ * that I could find on the CPU-1 board. Here how I calculated the clock for
+ * the factory settings. No need to add selectors until terminal.c supports
+ * configurable baudrates. Fortunality CPU-1 was shipped with 9600N8!
+ *
+ * From the documents:
+ *
+ * 3 RS232C interfaces, strap selectable baud rate from 110-9600 or 600-19200 baud
+ *
+ * Default Jumper Settings of B7:
+ * --------------------------------
+ * GND 10 - 11 RSA input on 14411
+ * F1 on 14411 1 - 20 Baud selector of the terminal port
+ * F1 on 14411 3 - 18 Baud selector of the host port
+ * F1 on 14411 5 - 16 Baud selector of the remote port
+ *
+ * The RSB input on the 14411 is kept high always so RSA=0, RSB=1 and a 1.8432MHz crystal
+ * generates 153600 on the F1 output pin which by default strapping is connected to all
+ * three 6850 acias on the board. These can be strapped separatelly to speedup downloads.
+ *
+ * The selectable outputs from 14411, F1-F16:
+ * X16 RSA=0,RSB=1: 153600, 115200, 76800, 57600, 38400, 28800, 19200, 9600, 4800, 3200, 2153.3, 1758.8, 1200, 921600, 1843000
+ * X64 RSA=1,RSB=1: 614400, 460800, 307200, 230400, 153600, 115200, 76800, 57600, 38400, 28800, 19200, 9600, 4800, 921600, 1843000
+ *
+ * However, the datasheet says baudrate is strapable for 110-9600 but the output is 153600
+ * so the system rom MUST setup the acia to divide by 16 to generate the correct baudrate.
+ *
+ */
+#define ACIA_CLOCK (BAUDGEN_CLOCK / 12)
+
+class force68k_state : public driver_device
+{
+public:
+force68k_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device (mconfig, type, tag),
+ m_maincpu (*this, "maincpu"),
+ m_rtc (*this, "rtc"),
+ m_pit (*this, "pit"),
+ m_aciahost (*this, "aciahost"),
+ m_aciaterm (*this, "aciaterm"),
+ m_aciaremt (*this, "aciaremt"),
+ m_centronics (*this, "centronics")
+ , m_centronics_ack (0)
+ , m_centronics_busy (0)
+ , m_centronics_perror (0)
+ , m_centronics_select (0)
+ ,m_cart(*this, "exp_rom1")
+{
+}
+
+DECLARE_READ16_MEMBER (bootvect_r);
+DECLARE_READ16_MEMBER (vme_a24_r);
+DECLARE_WRITE16_MEMBER (vme_a24_w);
+DECLARE_READ16_MEMBER (vme_a16_r);
+DECLARE_WRITE16_MEMBER (vme_a16_w);
+virtual void machine_start ();
+// clocks
+DECLARE_WRITE_LINE_MEMBER (write_aciahost_clock);
+DECLARE_WRITE_LINE_MEMBER (write_aciaterm_clock);
+DECLARE_WRITE_LINE_MEMBER (write_aciaremt_clock);
+// centronics printer interface
+DECLARE_WRITE_LINE_MEMBER (centronics_ack_w);
+DECLARE_WRITE_LINE_MEMBER (centronics_busy_w);
+DECLARE_WRITE_LINE_MEMBER (centronics_perror_w);
+DECLARE_WRITE_LINE_MEMBER (centronics_select_w);
+// User EPROM/SRAM slot(s)
+int force68k_load_cart(device_image_interface &image, generic_slot_device *slot);
+DECLARE_DEVICE_IMAGE_LOAD_MEMBER (exp1_load) { return force68k_load_cart(image, m_cart); }
+DECLARE_READ16_MEMBER (read16_rom);
+
+protected:
+
+private:
+required_device<cpu_device> m_maincpu;
+required_device<mm58167_device> m_rtc;
+required_device<pit68230_device> m_pit;
+required_device<acia6850_device> m_aciahost;
+required_device<acia6850_device> m_aciaterm;
+required_device<acia6850_device> m_aciaremt;
+optional_device<centronics_device> m_centronics;
+
+INT32 m_centronics_ack;
+INT32 m_centronics_busy;
+INT32 m_centronics_perror;
+INT32 m_centronics_select;
+
+// Pointer to System ROMs needed by bootvect_r
+UINT16 *m_sysrom;
+UINT16 *m_usrrom;
+
+required_device<generic_slot_device> m_cart;
+
+};
+
+static ADDRESS_MAP_START (force68k_mem, AS_PROGRAM, 16, force68k_state)
+ADDRESS_MAP_UNMAP_HIGH
+AM_RANGE (0x000000, 0x000007) AM_ROM AM_READ (bootvect_r) /* Vectors mapped from System EPROM */
+AM_RANGE (0x000008, 0x01ffff) AM_RAM /* DRAM CPU-1B */
+//AM_RANGE (0x020000, 0x07ffff) AM_RAM /* Additional DRAM CPU-1D */
+AM_RANGE (0x080000, 0x083fff) AM_ROM /* System EPROM Area 16Kb DEBUGGER supplied as default on CPU-1B/D */
+AM_RANGE (0x084000, 0x09ffff) AM_ROM /* System EPROM Area 112Kb additional space for System ROM */
+//AM_RANGE (0x0a0000, 0x0bffff) AM_ROM /* User EPROM/SRAM Area, max 128Kb mapped by a cartslot */
+AM_RANGE (0x0c0040, 0x0c0041) AM_DEVREADWRITE8 ("aciahost", acia6850_device, status_r, control_w, 0x00ff)
+AM_RANGE (0x0c0042, 0x0c0043) AM_DEVREADWRITE8 ("aciahost", acia6850_device, data_r, data_w, 0x00ff)
+AM_RANGE (0x0c0080, 0x0c0081) AM_DEVREADWRITE8 ("aciaterm", acia6850_device, status_r, control_w, 0xff00)
+AM_RANGE (0x0c0082, 0x0c0083) AM_DEVREADWRITE8 ("aciaterm", acia6850_device, data_r, data_w, 0xff00)
+AM_RANGE (0x0c0100, 0x0c0101) AM_DEVREADWRITE8 ("aciaremt", acia6850_device, status_r, control_w, 0x00ff)
+AM_RANGE (0x0c0102, 0x0c0103) AM_DEVREADWRITE8 ("aciaremt", acia6850_device, data_r, data_w, 0x00ff)
+AM_RANGE (0x0c0400, 0x0c042f) AM_DEVREADWRITE8 ("rtc", mm58167_device, read, write, 0x00ff)
+AM_RANGE (0x0e0000, 0x0e0035) AM_DEVREADWRITE8 ("pit", pit68230_device, read, write, 0x00ff)
+// AM_RANGE(0x0e0200, 0x0e0380) AM_READWRITE(fpu_r, fpu_w) /* optional FPCP 68881 FPU interface */
+AM_RANGE(0x100000, 0xfeffff) AM_READWRITE(vme_a24_r, vme_a24_w) /* VMEbus Rev B addresses (24 bits) */
+AM_RANGE(0xff0000, 0xffffff) AM_READWRITE(vme_a16_r, vme_a16_w) /* VMEbus Rev B addresses (16 bits) */
+ADDRESS_MAP_END
+
+/* Input ports */
+static INPUT_PORTS_START (force68k)
+INPUT_PORTS_END
+
+/*
+ * Centronics support
+ *
+ * The system ROMs has support for a parallel printer interface but the signals are just routed to row A
+ * of the VME P2 connector so no on board Centronics connector is available but assumed to be added on a
+ * separate I/O board. After some detective work I found that the ROM works as follows:
+ *
+ * The 'PA' (Printer Attach) command issues a <cr> on Port A and sends a strobe on H2 it then loops over
+ * the select signal, bit 0 on Port B, and the ack signal on HS1, both to be non zero. The support is really
+ * flawed as the strobe signal goes high instead of low ( this might assume an inverting driver on the
+ * P2 board ) and the busy signal is not checked at all. Or I might have assumed it all wrong, but it now
+ * works with the generic centronics printer driver. Need the printer board documentation to improve further.
+ *
+ * When the 'PA' command is successful everything printed to screen is mirrored on the printer. Use the
+ * 'NOPA' command to stop mirroring. I had no printer ROMs so could not test it with a "real" printer.
+ *
+ * Force CPU-1 init sequence for MC68230 PIT
+ * -----------------------------------------
+ * 0801E6 0E0000 W 00 -> PGCR Mode 0 (uni8), H34 dis, H12 dis, H1234 HZ
+ * 0801E6 0E0002 W 00 -> PSRR PC4, PC5, H1S>H2S>H3S>H4S
+ * 0801E6 0E0004 W FF -> PADDR Port A all Outputs
+ * 0801E6 0E0006 W 00 -> PBDDR Port B all Inputs
+ * 0801EA 0E000C W 60 -> PACR Port A Mode 01, pin def, dbfr H1 data rec, H2 status/int, H2 output neg, H2S clrd
+ * 0801F0 0E000E W A0 -> PBCR Port B mode 1x, H4 output neg, H4S clrd, H3 int dis, H3 edg input, H3S set by assrt edg
+ * 0801F6 0E0000 W 30 -> PGCR H34 enable, H12enable
+ * 0801FC 0E000E W A8 -> PBCR +H4 asserted
+ * 08020A 0E000E W A0 -> PBCR +H4 negated
+ *
+ * Upon PA (Printer Attach) command enabling the Centronics printer mode
+ * ---------------------------------------------------------------------
+ * 081DB4 0E0011 W D0 -> PADR Data to Port A
+ * 081DB8 0E000D W 68 -> PACR H2 output asserted Centronics Strobe
+ * 081DC0 0E000D W 60 -> PACR H2 output negated
+ * 081DD0 0E0013 R 00 <- PBDR Port B polled for 01 (data) & 03 (mask)
+ *
+ */
+
+/* Centronics ACK handler
+ * The centronics ack signal is expected by the ROM to arrive at H1 input line
+ */
+WRITE_LINE_MEMBER (force68k_state::centronics_ack_w)
+{
+// LOG (logerror ("centronics_ack_w(%d) %lld\n", state, m_maincpu->total_cycles ()));
+ m_centronics_ack = state;
+ m_pit->h1_set (state);
+}
+
+/* Centronics BUSY handler
+ * The centronics busy signal is not used by the ROM driver afaik
+ */
+WRITE_LINE_MEMBER (force68k_state::centronics_busy_w){
+// LOG (logerror ("centronics_busy_w(%d) %lld\n", state, m_maincpu->total_cycles ()));
+ m_centronics_busy = state;
+}
+
+/* Centronics PERROR handler
+ * The centronics perror signal is not used by the ROM driver afaik
+ */
+WRITE_LINE_MEMBER (force68k_state::centronics_perror_w){
+// LOG (logerror ("centronics_perror_w(%d) %lld\n", state, m_maincpu->total_cycles ()));
+ m_centronics_perror = state;
+}
+
+/* Centronics SELECT handler
+ * The centronics select signal is expected by the ROM on Port B bit 0
+ */
+WRITE_LINE_MEMBER (force68k_state::centronics_select_w){
+// LOG (logerror ("centronics_select_w(%d) %lld\n", state, m_maincpu->total_cycles ()));
+ m_centronics_select = state;
+ m_pit->portb_setbit (0, state);
+}
+
+/* Start it up */
+void force68k_state::machine_start ()
+{
+ LOG (logerror ("machine_start\n"));
+
+ save_item (NAME (m_centronics_busy));
+ save_item (NAME (m_centronics_ack));
+ save_item (NAME (m_centronics_select));
+ save_item (NAME (m_centronics_perror));
+
+ /* Setup pointer to bootvector in ROM for bootvector handler bootvect_r */
+ m_sysrom = (UINT16*)(memregion ("maincpu")->base () + 0x080000);
+
+ /* Map user ROM/RAM socket(s) */
+ if (m_cart->exists())
+ {
+ m_usrrom = (UINT16*)m_cart->get_rom_base();
+#if 0 // This should be the correct way but produces odd and even bytes swapped
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa0000, 0xbffff, read16_delegate(FUNC(generic_slot_device::read16_rom), (generic_slot_device*)m_cart));
+#else // So we installs a custom very ineffecient handler for now until we understand hwp to solve the problem better
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa0000, 0xbffff, read16_delegate(FUNC(force68k_state::read16_rom), this));
+#endif
+ }
+}
+
+/* A very ineffecient User cart emulation of two 8 bit sockets (odd and even) */
+READ16_MEMBER (force68k_state::read16_rom){
+ offset = offset % m_cart->common_get_size("rom"); // Don't read outside buffer...
+ return ((m_usrrom [offset] << 8) & 0xff00) | ((m_usrrom [offset] >> 8) & 0x00ff);
+}
+
+/* Boot vector handler, the PCB hardwires the first 8 bytes from 0x80000 to 0x0 */
+READ16_MEMBER (force68k_state::bootvect_r){
+ return m_sysrom [offset];
+}
+
+/* 10. The VMEbus (text from board documentation)
+ * ---------------
+ * The implemented VMEbus Interface includes 24 address, 16 data,
+ * 6 address modifier and the asynchronous control signals.
+ * A single level bus arbiter is provided to build multi master
+ * systems. In addition to the bus arbiter, a separate slave bus
+ * arbitration allows selection of the arbitration level (0-3).
+ *
+ * The address modifier range .,Short 110 Access can be selected
+ * via a jumper for variable system generation. The 7 interrupt
+ * request levels of the VMEbus are fully supported from the
+ * SYS68K1CPU-1 B/D. For multi-processing, each IRQ signal can be
+ * enabled/disabled via a jumper field.
+ *
+ * Additionally, the SYS68K1CPU-1 B/D supports the ACFAIL, SYSRESET,
+ * SYSFAIL and SYSCLK signal (16 MHz).
+ */
+
+/* Dummy VME access methods until the VME bus device is ready for use */
+READ16_MEMBER (force68k_state::vme_a24_r){
+ LOG (logerror ("vme_a24_r\n"));
+ return (UINT16) 0;
+}
+
+WRITE16_MEMBER (force68k_state::vme_a24_w){
+ LOG (logerror ("vme_a24_w\n"));
+}
+
+READ16_MEMBER (force68k_state::vme_a16_r){
+ LOG (logerror ("vme_16_r\n"));
+ return (UINT16) 0;
+}
+
+WRITE16_MEMBER (force68k_state::vme_a16_w){
+ LOG (logerror ("vme_a16_w\n"));
+}
+
+/*
+ * Serial port clock sources can all be driven by different outputs of the 14411
+ */
+WRITE_LINE_MEMBER (force68k_state::write_aciahost_clock){
+ m_aciahost->write_txc (state);
+ m_aciahost->write_rxc (state);
+}
+
+WRITE_LINE_MEMBER (force68k_state::write_aciaterm_clock){
+ m_aciaterm->write_txc (state);
+ m_aciaterm->write_rxc (state);
+}
+
+WRITE_LINE_MEMBER (force68k_state::write_aciaremt_clock){
+ m_aciaremt->write_txc (state);
+ m_aciaremt->write_rxc (state);
+}
+
+/*
+ * 4. The USER Area (Text from the board manual)
+ The USER area contains two 28 pin sockets with JEDEC compatible pin out.
+ To allow the usage of static RAM's, the access to the USER area is byte
+ oriented. Table 3. lists the usable device types.
+
+ Bits Bytes EPROM SRAM
+ --------------------------
+ 2Kx16 4 Kbyte 2716 6116
+ 4Kx16 8 Kbyte 2732
+ 8Kx16 16 Kbyte 2764 6264
+ 16Kx16 32 Kbyte 27128
+ 32Kx16 64 Kbyte 27256
+ --------------------------
+*/
+// Implementation of static 2 x 64K EPROM in sockets J10/J11 as 16 bit wide cartridge for easier
+// software handling. TODO: make configurable according to table above.
+static MACHINE_CONFIG_FRAGMENT( fccpu1_eprom_sockets )
+ MCFG_GENERIC_CARTSLOT_ADD("exp_rom1", generic_plain_slot, "fccpu1_cart")
+ MCFG_GENERIC_EXTENSIONS("bin,rom")
+ MCFG_GENERIC_WIDTH(GENERIC_ROM16_WIDTH)
+ MCFG_GENERIC_ENDIAN(ENDIANNESS_BIG)
+ MCFG_GENERIC_LOAD(force68k_state, exp1_load)
+// MCFG_SOFTWARE_LIST_ADD("cart_list", "fccpu1_cart")
+MACHINE_CONFIG_END
+
+/***************************
+ Rom loading functions
+****************************/
+int force68k_state::force68k_load_cart(device_image_interface &image, generic_slot_device *slot)
+{
+ UINT32 size = slot->common_get_size("rom");
+
+ if (size > 0x20000) // Max 128Kb
+ {
+ LOG( printf("Cartridge size exceeding max size (128Kb): %d\n", size) );
+ image.seterror(IMAGE_ERROR_UNSPECIFIED, "Cartridge size exceeding max size (128Kb)");
+ return IMAGE_INIT_FAIL;
+ }
+
+ slot->rom_alloc(size, GENERIC_ROM16_WIDTH, ENDIANNESS_BIG);
+ slot->common_load_rom(slot->get_rom_base(), size, "rom");
+
+ return IMAGE_INIT_PASS;
+}
+
+/*
+ * Machine configuration
+ */
+static MACHINE_CONFIG_START (fccpu1, force68k_state)
+/* basic machine hardware */
+MCFG_CPU_ADD ("maincpu", M68000, XTAL_16MHz / 2)
+MCFG_CPU_PROGRAM_MAP (force68k_mem)
+
+/* P3/Host Port config
+ * LO command causes ROM monitor to expect S-records on HOST port by default
+ * Implementation through nullmodem currently does not support handshakes so
+ * the ROM momitor is over-run while checking for checksums etc if used with
+ * UI mount <file> feature.
+ */
+MCFG_DEVICE_ADD ("aciahost", ACIA6850, 0)
+
+MCFG_ACIA6850_TXD_HANDLER (DEVWRITELINE ("rs232host", rs232_port_device, write_txd))
+MCFG_ACIA6850_RTS_HANDLER (DEVWRITELINE ("rs232host", rs232_port_device, write_rts))
+
+MCFG_RS232_PORT_ADD ("rs232host", default_rs232_devices, "null_modem")
+MCFG_RS232_RXD_HANDLER (DEVWRITELINE ("aciahost", acia6850_device, write_rxd))
+MCFG_RS232_CTS_HANDLER (DEVWRITELINE ("aciahost", acia6850_device, write_cts))
+
+MCFG_DEVICE_ADD ("aciahost_clock", CLOCK, ACIA_CLOCK)
+MCFG_CLOCK_SIGNAL_HANDLER (WRITELINE (force68k_state, write_aciahost_clock))
+
+/* P4/Terminal Port config */
+MCFG_DEVICE_ADD ("aciaterm", ACIA6850, 0)
+
+MCFG_ACIA6850_TXD_HANDLER (DEVWRITELINE ("rs232trm", rs232_port_device, write_txd))
+MCFG_ACIA6850_RTS_HANDLER (DEVWRITELINE ("rs232trm", rs232_port_device, write_rts))
+
+MCFG_RS232_PORT_ADD ("rs232trm", default_rs232_devices, "terminal")
+MCFG_RS232_RXD_HANDLER (DEVWRITELINE ("aciaterm", acia6850_device, write_rxd))
+MCFG_RS232_CTS_HANDLER (DEVWRITELINE ("aciaterm", acia6850_device, write_cts))
+
+MCFG_DEVICE_ADD ("aciaterm_clock", CLOCK, ACIA_CLOCK)
+MCFG_CLOCK_SIGNAL_HANDLER (WRITELINE (force68k_state, write_aciaterm_clock))
+
+/* P5/Remote Port config */
+MCFG_DEVICE_ADD ("aciaremt", ACIA6850, 0)
+
+MCFG_DEVICE_ADD ("aciaremt_clock", CLOCK, ACIA_CLOCK)
+MCFG_CLOCK_SIGNAL_HANDLER (WRITELINE (force68k_state, write_aciaterm_clock))
+
+/* RTC Real Time Clock device */
+MCFG_DEVICE_ADD ("rtc", MM58167, XTAL_32_768kHz)
+
+/* PIT Parallel Interface and Timer device, assuming strapped for on board clock */
+MCFG_DEVICE_ADD ("pit", PIT68230, XTAL_16MHz / 2)
+MCFG_PIT68230_PA_OUTPUT_CALLBACK (DEVWRITE8 ("cent_data_out", output_latch_device, write))
+MCFG_PIT68230_H2_CALLBACK (DEVWRITELINE ("centronics", centronics_device, write_strobe))
+
+// centronics
+MCFG_CENTRONICS_ADD ("centronics", centronics_devices, "printer")
+MCFG_CENTRONICS_ACK_HANDLER (WRITELINE (force68k_state, centronics_ack_w))
+MCFG_CENTRONICS_BUSY_HANDLER (WRITELINE (force68k_state, centronics_busy_w))
+MCFG_CENTRONICS_PERROR_HANDLER (WRITELINE (force68k_state, centronics_perror_w))
+MCFG_CENTRONICS_SELECT_HANDLER (WRITELINE (force68k_state, centronics_select_w))
+MCFG_CENTRONICS_OUTPUT_LATCH_ADD ("cent_data_out", "centronics")
+
+// EPROM sockets
+MCFG_FRAGMENT_ADD(fccpu1_eprom_sockets)
+MACHINE_CONFIG_END
+
+#if 0 /*
+ * 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)
+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)
+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)
+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)
+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)
+MCFG_CPU_ADD ("maincpu", M68010, XTAL_12_5MHz) /* Jumper B10 Mode A */
+MCFG_CPU_PROGRAM_MAP (force68k_mem)
+MACHINE_CONFIG_END
+#endif
+
+/* ROM definitions */
+ROM_START (fccpu1)
+ROM_REGION (0x1000000, "maincpu", 0)
+
+ROM_LOAD16_BYTE ("fccpu1V1.0L.j8.bin", 0x080001, 0x2000, CRC (3ac6f08f) SHA1 (502f6547b508d8732bd68bbbb2402d8c30fefc3b))
+ROM_LOAD16_BYTE ("fccpu1V1.0L.j9.bin", 0x080000, 0x2000, CRC (035315fb) SHA1 (90dc44d9c25d28428233e6846da6edce2d69e440))
+
+/*
+ * System ROM terminal commands
+ *
+ * COMMAND SUMMARY DESCRIPTION (From CPU-1B datasheet, ROMs were dumped
+ * from a CPU-1 board so some features might be missing or different)
+ * ---------------------------------------------------------------------------
+ * BF <address1> <address2> <data> <CR> Block Fill memory - from addr1 through addr2 with data
+ * BM <address1> <address2> <address 3> <CR> Block Move - move from addr1 through addr2to addr3
+ * BR [<address> [; <count>] ... ] <CR> Set/display Breakpoint
+ * BS <address1> <address2> <data> <CR> Block Search - search addr1 through addr2 for data
+ * BT <address1> <address2> <CR> Block Test of memory
+ * DC <expression> <CR> Data Conversion
+ * DF <CR> Display Formatted registers
+ * DU [n] <address1> <address2>[<string>] <CR> Dump memory to object file
+ * GO or G [<address] <CR> Execute program.
+ * GD [<address] <CR> Go Direct
+ * GT <address> <CR> Exec prog: temporary breakpoint
+ * HE<CR> Help; display monitor commands
+ * LO [n] [;<options] <CR> Load Object file
+ * MD <address> [<count>] <CR> Memory Display
+ * MM or M <address> [<data<][;<options>] <CR> Memory Modify
+ * MS <address> <data1 > <data2> < ... <CR> Memory Set - starting at addr with data 1. data 2 ...
+ * NOBR [<address> ... ] <CR> Remove Breakpoint
+ * NOPA <CR> Printer Detach (Centronics on PIT/P2)
+ * OF <CR> Offset
+ * PA <CR> Printer Attach (Centronics on PIT/P2)
+ * PF[n] <CR> Set/display Port Format
+ * RM <CR> Register Modify
+ * TM [<exit character>] <CR> Transparent Mode
+ * TR OR T [<count] <CR> Trace
+ * TT <address> <CR> Trace: temporary breakpoint
+ * VE [n] [<string] <CR> Verify memory/object file
+ * ----------------------------------------------------------------------------
+ * .AO - .A7 [<expression] <CR> Display/set address register
+ * .00 - .07 [<expression] <CR> Display/set data register
+ * .RO - .R6 [<expression] <CR> Display/set offset register
+ * .PC [<expression] <CR> Display/set program counter
+ * .SR [<expression] <CR> Display/set status register
+ * .SS [<expression] <CR> Display/set supervisor stack
+ * .US [<expression] <CR> Display/set user stack
+ * ----------------------------------------------------------------------------
+ * MD <address> [<count>]; DI <CR> Disassemble memory location
+ * MM <address>; DI <CR> Disassemble/Assemble memory location
+ * ----------------------------------------------------------------------------
+ * Undocumented commands found in ROM table at address 0x80308
+ * .* No WHAT message displayed, no action seen.
+ */
+ROM_END
+
+/*
+ * CPU-6 ROMs were generally based om VMEPROM which contained the PDOS RTOS from Eyring Research.
+ * I don't have these but if anyone can dump them and send to me I can verify that they work as expected.
+ */
+#if 0
+ROM_START (fccpu6)
+ROM_REGION (0x1000000, "maincpu", 0)
+ROM_END
+
+ROM_START (fccpu6a)
+ROM_REGION (0x1000000, "maincpu", 0)
+ROM_END
+
+ROM_START (fccpu6v)
+ROM_REGION (0x1000000, "maincpu", 0)
+ROM_END
+
+ROM_START (fccpu6va)
+ROM_REGION (0x1000000, "maincpu", 0)
+ROM_END
+
+ROM_START (fccpu6vb)
+ROM_REGION (0x1000000, "maincpu", 0)
+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 )
diff --git a/src/mame/drivers/forte2.c b/src/mame/drivers/forte2.c
index 2fcd243e912..303d9ddae23 100644
--- a/src/mame/drivers/forte2.c
+++ b/src/mame/drivers/forte2.c
@@ -153,4 +153,4 @@ ROM_START( pesadelo )
ROM_LOAD( "epr2764.15", 0x00000, 0x10000, CRC(1ae2f724) SHA1(12880dd7ad82acf04861843fb9d4f0f926d18f6b) )
ROM_END
-GAME( 1989, pesadelo, 0, pesadelo, pesadelo, forte2_state, pesadelo, ROT0, "bootleg (Forte II Games) / Konami", "Pesadelo (bootleg of Knightmare on MSX)", GAME_SUPPORTS_SAVE )
+GAME( 1989, pesadelo, 0, pesadelo, pesadelo, forte2_state, pesadelo, ROT0, "bootleg (Forte II Games) / Konami", "Pesadelo (bootleg of Knightmare on MSX)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/fortecar.c b/src/mame/drivers/fortecar.c
index 1f0dbe28626..8d78dfa7888 100644
--- a/src/mame/drivers/fortecar.c
+++ b/src/mame/drivers/fortecar.c
@@ -731,5 +731,5 @@ DRIVER_INIT_MEMBER(fortecar_state,fortecar)
/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT */
-GAMEL( 1994, fortecar, 0, fortecar, fortecar, fortecar_state, fortecar, ROT0, "Fortex Ltd", "Forte Card (Ver 103, English)", GAME_NOT_WORKING, layout_fortecrd )
+GAMEL( 1994, fortecar, 0, fortecar, fortecar, fortecar_state, fortecar, ROT0, "Fortex Ltd", "Forte Card (Ver 103, English)", MACHINE_NOT_WORKING, layout_fortecrd )
GAMEL( 1994, fortecrd, fortecar, fortecar, fortecar, fortecar_state, fortecar, ROT0, "Fortex Ltd", "Forte Card (Ver 110, Spanish)", 0, layout_fortecrd )
diff --git a/src/mess/drivers/fp1100.c b/src/mame/drivers/fp1100.c
index c64d7505358..6352049278c 100644
--- a/src/mess/drivers/fp1100.c
+++ b/src/mame/drivers/fp1100.c
@@ -702,4 +702,4 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
-COMP( 1983, fp1100, 0, 0, fp1100, fp1100, fp1100_state, fp1100, "Casio", "FP-1100", GAME_NOT_WORKING)
+COMP( 1983, fp1100, 0, 0, fp1100, fp1100, fp1100_state, fp1100, "Casio", "FP-1100", MACHINE_NOT_WORKING)
diff --git a/src/mess/drivers/fp200.c b/src/mame/drivers/fp200.c
index a4728d40a2c..9e9cc9c47db 100644
--- a/src/mess/drivers/fp200.c
+++ b/src/mame/drivers/fp200.c
@@ -623,4 +623,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)", GAME_NOT_WORKING | GAME_NO_SOUND_HW )
+COMP( 1982, fp200, 0, 0, fp200, fp200, driver_device, 0, "Casio", "FP-200 (Japan)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW )
diff --git a/src/mess/drivers/fp6000.c b/src/mame/drivers/fp6000.c
index a715558b1c4..9a7866c339e 100644
--- a/src/mess/drivers/fp6000.c
+++ b/src/mame/drivers/fp6000.c
@@ -327,4 +327,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1985, fp6000, 0, 0, fp6000, fp6000, driver_device, 0, "Casio", "FP-6000", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/freekick.c b/src/mame/drivers/freekick.c
index 25b5a7b6764..a4f278bf972 100644
--- a/src/mame/drivers/freekick.c
+++ b/src/mame/drivers/freekick.c
@@ -1214,18 +1214,18 @@ DRIVER_INIT_MEMBER(freekick_state,gigas)
*
*************************************/
/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS */
-GAME( 1986, gigas, 0, gigas, gigas, freekick_state, gigas, ROT270, "Sega", "Gigas (MC-8123, 317-5002)", GAME_NO_COCKTAIL | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // Missing a dump of one of the program roms
-GAME( 1986, gigasb, gigas, gigas, gigas, freekick_state, gigasb, ROT270, "bootleg", "Gigas (bootleg)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1986, oigas, gigas , oigas, gigas, freekick_state, gigasb, ROT270, "bootleg", "Oigas (bootleg)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1986, gigasm2b, 0, gigas, gigasm2, freekick_state, gigasb, ROT270, "bootleg", "Gigas Mark II (bootleg)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1987, pbillrd, 0, pbillrd, pbillrd, driver_device, 0, ROT0, "Nihon System", "Perfect Billiard", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1987, pbillrds, pbillrd, pbillrdm, pbillrd, freekick_state, pbillrds,ROT0, "Nihon System", "Perfect Billiard (MC-8123, 317-0030)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1987, pbillrdsa, pbillrd, pbillrdm, pbillrd, freekick_state, pbillrds,ROT0, "Nihon System", "Perfect Billiard (MC-8123, 317-5008)", GAME_NO_COCKTAIL | GAME_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)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1987, freekicka, freekick, freekickb, freekck, driver_device, 0, ROT270, "Nihon System", "Free Kick (NS6201-A 1987.9)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1987, freekickb1,freekick, freekickb, freekck, driver_device, 0, ROT270, "bootleg", "Free Kick (bootleg set 1)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1987, freekickb2,freekick, freekickb, freekck, driver_device, 0, ROT270, "bootleg", "Free Kick (bootleg set 2)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1987, freekickb3,freekick, freekickb, freekck, driver_device, 0, ROT270, "bootleg", "Free Kick (bootleg set 3)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1988, countrun, 0, freekickb, countrun, driver_device, 0, ROT0, "Nihon System (Sega license)", "Counter Run (NS6201-A 1988.3)", GAME_NO_COCKTAIL | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // CPU module not dumped
-GAME( 1988, countrunb, countrun, freekickb, countrun, driver_device, 0, ROT0, "bootleg", "Counter Run (bootleg set 1)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1988, countrunb2,countrun, freekickb, countrun, driver_device, 0, ROT0, "bootleg", "Counter Run (bootleg set 2)", GAME_NO_COCKTAIL | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
+GAME( 1986, gigas, 0, gigas, gigas, freekick_state, gigas, ROT270, "Sega", "Gigas (MC-8123, 317-5002)", MACHINE_NO_COCKTAIL | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // Missing a dump of one of the program roms
+GAME( 1986, gigasb, gigas, gigas, gigas, freekick_state, gigasb, ROT270, "bootleg", "Gigas (bootleg)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1986, oigas, gigas , oigas, gigas, freekick_state, gigasb, ROT270, "bootleg", "Oigas (bootleg)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1986, gigasm2b, 0, gigas, gigasm2, freekick_state, gigasb, ROT270, "bootleg", "Gigas Mark II (bootleg)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1987, pbillrd, 0, pbillrd, pbillrd, driver_device, 0, ROT0, "Nihon System", "Perfect Billiard", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1987, pbillrds, pbillrd, pbillrdm, pbillrd, freekick_state, pbillrds,ROT0, "Nihon System", "Perfect Billiard (MC-8123, 317-0030)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1987, pbillrdsa, pbillrd, pbillrdm, pbillrd, freekick_state, pbillrds,ROT0, "Nihon System", "Perfect Billiard (MC-8123, 317-5008)", MACHINE_NO_COCKTAIL | 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_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1987, freekicka, freekick, freekickb, freekck, driver_device, 0, ROT270, "Nihon System", "Free Kick (NS6201-A 1987.9)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1987, freekickb1,freekick, freekickb, freekck, driver_device, 0, ROT270, "bootleg", "Free Kick (bootleg set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1987, freekickb2,freekick, freekickb, freekck, driver_device, 0, ROT270, "bootleg", "Free Kick (bootleg set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1987, freekickb3,freekick, freekickb, freekck, driver_device, 0, ROT270, "bootleg", "Free Kick (bootleg set 3)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1988, countrun, 0, freekickb, countrun, driver_device, 0, ROT0, "Nihon System (Sega license)", "Counter Run (NS6201-A 1988.3)", MACHINE_NO_COCKTAIL | 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_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1988, countrunb2,countrun, freekickb, countrun, driver_device, 0, ROT0, "bootleg", "Counter Run (bootleg set 2)", MACHINE_NO_COCKTAIL | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/fresh.c b/src/mame/drivers/fresh.c
index 59526c87361..508adb94371 100644
--- a/src/mame/drivers/fresh.c
+++ b/src/mame/drivers/fresh.c
@@ -628,4 +628,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)", GAME_NOT_WORKING|GAME_NO_SOUND )
+GAME( 1996, fresh, 0, fresh, fresh, driver_device, 0, ROT0, "Chain Leisure", "Fruit Fresh (Italy)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/fromanc2.c b/src/mame/drivers/fromanc2.c
index a3f337ea164..7a5ce41412d 100644
--- a/src/mame/drivers/fromanc2.c
+++ b/src/mame/drivers/fromanc2.c
@@ -810,6 +810,6 @@ 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)", GAME_SUPPORTS_SAVE )
-GAME( 1995, fromancr, 0, fromancr, fromanc2, fromanc2_state, fromanc2, ROT0, "Video System Co.", "Taisen Mahjong Final Romance R (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1998, fromanc4, 0, fromanc4, fromanc4, fromanc2_state, fromanc4, ROT0, "Video System Co.", "Taisen Mahjong Final Romance 4 (Japan)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/fromance.c b/src/mame/drivers/fromance.c
index 8df60f0d4de..11dc49401b3 100644
--- a/src/mame/drivers/fromance.c
+++ b/src/mame/drivers/fromance.c
@@ -1341,11 +1341,11 @@ ROM_END
*
*************************************/
-GAME( 1988, nekkyoku, 0, nekkyoku, nekkyoku, driver_device, 0, ROT0, "Video System Co.", "Rettou Juudan Nekkyoku Janshi - Higashi Nippon Hen (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1988, idolmj, 0, idolmj, idolmj, driver_device, 0, ROT0, "System Service", "Idol-Mahjong Housoukyoku (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1989, mjnatsu, 0, fromance, mjnatsu, driver_device, 0, ROT0, "Video System Co.", "Mahjong Natsu Monogatari (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1989, natsuiro, mjnatsu, fromance, mjnatsu, driver_device, 0, ROT0, "Video System Co.", "Natsuiro Mahjong (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1989, mfunclub, 0, fromance, mfunclub, driver_device, 0, ROT0, "Video System Co.", "Mahjong Fun Club - Idol Saizensen (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1990, daiyogen, 0, fromance, daiyogen, driver_device, 0, ROT0, "Video System Co.", "Mahjong Daiyogen (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1991, nmsengen, 0, fromance, nmsengen, driver_device, 0, ROT0, "Video System Co.", "Nekketsu Mahjong Sengen! AFTER 5 (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1991, fromance, 0, fromance, fromance, driver_device, 0, ROT0, "Video System Co.", "Idol-Mahjong Final Romance (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1988, nekkyoku, 0, nekkyoku, nekkyoku, driver_device, 0, ROT0, "Video System Co.", "Rettou Juudan Nekkyoku Janshi - Higashi Nippon Hen (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+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, mfunclub, 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 )
diff --git a/src/mame/drivers/fruitpc.c b/src/mame/drivers/fruitpc.c
index 5c652ce6ab8..42db7c23f89 100644
--- a/src/mame/drivers/fruitpc.c
+++ b/src/mame/drivers/fruitpc.c
@@ -147,7 +147,7 @@ ROM_START( fruitpc )
DISK_IMAGE( "fruit", 0,SHA1(df250ff06a97fa141a4144034f7035ac2947c53c) )
ROM_END
-GAME( 2006, fruitpc, 0, fruitpc, fruitpc, fruitpc_state, fruitpc, ROT0, "<unknown>", "Fruit Land", GAME_NO_SOUND|GAME_IMPERFECT_GRAPHICS )
+GAME( 2006, fruitpc, 0, fruitpc, fruitpc, fruitpc_state, fruitpc, ROT0, "<unknown>", "Fruit Land", MACHINE_NO_SOUND|MACHINE_IMPERFECT_GRAPHICS )
// this doesn't really belong here, but is some kind of x86 pc-like hardware, exact CPU type etc. unknown
// hardware ia by Paokai, motherboard has logos, large chip with logo too, http://www.paokai.com.tw/
@@ -159,4 +159,4 @@ ROM_START( gogostrk )
DISK_IMAGE( "ggs-5-2-07", 0,SHA1(f214fd39ec8ac02f008823f4b179ea6c6835e1b8) )
ROM_END
-GAME( 2007, gogostrk, 0, fruitpc, fruitpc, fruitpc_state, fruitpc, ROT0, "American Alpha / Paokai", "Go Go Strike", GAME_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, fruitpc, 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/mess/drivers/ft68m.c b/src/mame/drivers/ft68m.c
index 7c950873ba9..a4d5b4da4a6 100644
--- a/src/mess/drivers/ft68m.c
+++ b/src/mame/drivers/ft68m.c
@@ -125,4 +125,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND_HW )
+COMP( 198?, ft68m, 0, 0, ft68m, ft68m, driver_device, 0, "Forward Technology", "FT-68M", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW )
diff --git a/src/mame/drivers/fungames.c b/src/mame/drivers/fungames.c
index f6e63408373..27d53d6fc3b 100644
--- a/src/mame/drivers/fungames.c
+++ b/src/mame/drivers/fungames.c
@@ -134,5 +134,5 @@ ROM_START( take5 )
ROM_END
-GAME( 1976, biplane4, 0, fungames, 0, driver_device, 0, ROT0, "Fun Games", "Biplane 4 [TTL]", GAME_IS_SKELETON )
-GAME( 1975, take5, 0, fungames, 0, driver_device, 0, ROT0, "Fun Games", "Take 5 [TTL]", GAME_IS_SKELETON )
+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 )
diff --git a/src/mame/drivers/funkball.c b/src/mame/drivers/funkball.c
index 9717fe4bf8c..47d7b339457 100644
--- a/src/mame/drivers/funkball.c
+++ b/src/mame/drivers/funkball.c
@@ -857,4 +857,4 @@ ROM_START( funkball )
ROM_END
-GAME(1998, funkball, 0, funkball, funkball, driver_device, 0, ROT0, "dgPIX Entertainment Inc.", "Funky Ball", GAME_NOT_WORKING | GAME_NO_SOUND)
+GAME(1998, funkball, 0, funkball, funkball, driver_device, 0, ROT0, "dgPIX Entertainment Inc.", "Funky Ball", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/funkybee.c b/src/mame/drivers/funkybee.c
index 87f915474cc..a9bfb7d751b 100644
--- a/src/mame/drivers/funkybee.c
+++ b/src/mame/drivers/funkybee.c
@@ -415,7 +415,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", GAME_SUPPORTS_SAVE )
-GAME( 1982, funkybeeb, funkybee, funkybee, funkybeeb, driver_device,0, ROT90, "bootleg", "Funky Bee (bootleg, harder)", GAME_SUPPORTS_SAVE )
-GAME( 1983, skylancr, 0, funkybee, skylancr, driver_device, 0, ROT90, "Orca", "Sky Lancer", GAME_SUPPORTS_SAVE )
-GAME( 1983, skylancre, skylancr, funkybee, skylancre, driver_device,0, ROT90, "Orca (Esco Trading Co license)", "Sky Lancer (Esco Trading Co license)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/funkyjet.c b/src/mame/drivers/funkyjet.c
index 2a6c9db7836..a9cacb720c6 100644
--- a/src/mame/drivers/funkyjet.c
+++ b/src/mame/drivers/funkyjet.c
@@ -451,7 +451,7 @@ DRIVER_INIT_MEMBER(funkyjet_state,funkyjet)
/******************************************************************************/
-GAME( 1992, funkyjet, 0, funkyjet, funkyjet, funkyjet_state, funkyjet, ROT0, "Data East (Mitchell license)", "Funky Jet (World, rev 1)", GAME_SUPPORTS_SAVE )
-GAME( 1992, funkyjeta, funkyjet, funkyjet, funkyjet, funkyjet_state, funkyjet, ROT0, "Data East (Mitchell license)", "Funky Jet (World)", GAME_SUPPORTS_SAVE )
-GAME( 1992, funkyjetj, funkyjet, funkyjet, funkyjetj, funkyjet_state, funkyjet, ROT0, "Data East Corporation", "Funky Jet (Japan, rev 2)", GAME_SUPPORTS_SAVE )
-GAME( 1995, sotsugyo, 0, funkyjet, sotsugyo, funkyjet_state, funkyjet, ROT0, "Mitchell (Atlus license)", "Sotsugyo Shousho", GAME_SUPPORTS_SAVE )
+GAME( 1992, funkyjet, 0, funkyjet, funkyjet, funkyjet_state, funkyjet, ROT0, "Data East (Mitchell license)", "Funky Jet (World, rev 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, funkyjeta, funkyjet, funkyjet, funkyjet, funkyjet_state, funkyjet, ROT0, "Data East (Mitchell license)", "Funky Jet (World)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, funkyjetj, funkyjet, funkyjet, funkyjetj, funkyjet_state, funkyjet, ROT0, "Data East Corporation", "Funky Jet (Japan, rev 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, sotsugyo, 0, funkyjet, sotsugyo, funkyjet_state, funkyjet, ROT0, "Mitchell (Atlus license)", "Sotsugyo Shousho", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/funworld.c b/src/mame/drivers/funworld.c
index f144bb80cff..a890826f4d1 100644
--- a/src/mame/drivers/funworld.c
+++ b/src/mame/drivers/funworld.c
@@ -793,7 +793,7 @@
- Added specific button-lamps layout for royalcrd & jolycdit,
but there is a bug in the d-up select code that lights the
wrong lamp. This is a leftover from jollycrd routines.
- - Flagged vegasfte as GAME_NOT_WORKING, since is not receiving
+ - Flagged vegasfte as MACHINE_NOT_WORKING, since is not receiving
any coins or remote credits anymore.
[2010/03/21]
@@ -6462,17 +6462,17 @@ GAMEL( 1998, jolycdev, jollycrd, fw1stpal, funworld, driver_device, 0,
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)", GAME_NOT_WORKING )
+GAME( 1986, jolycdab, jollycrd, fw1stpal, funworld, driver_device, 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
// Bonus Card based...
-GAMEL( 1986, bonuscrd, 0, fw2ndpal, bonuscrd, driver_device, 0, ROT0, "Fun World", "Bonus Card (Austrian)", GAME_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)", GAME_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)", GAME_IMPERFECT_COLORS, layout_bonuscrd )
-GAMEL( 1986, bigdealb, bonuscrd, fw2ndpal, bigdeal, driver_device, 0, ROT0, "Fun World", "Big Deal (Hungarian, set 2)", GAME_IMPERFECT_COLORS, layout_bonuscrd )
-GAME( 1993, powercrd, 0, fw2ndpal, funworld, driver_device, 0, ROT0, "Fun World", "Power Card (Ver 0263, encrypted)", GAME_NOT_WORKING ) // clone of Bonus Card.
+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 )
+GAME( 1993, powercrd, 0, fw2ndpal, funworld, driver_device, 0, ROT0, "Fun World", "Power Card (Ver 0263, encrypted)", MACHINE_NOT_WORKING ) // clone of Bonus Card.
// CMC Italian jamma PCB's...
GAMEL( 1996, cuoreuno, 0, cuoreuno, cuoreuno, driver_device, 0, ROT0, "C.M.C.", "Cuore 1 (Italian)", 0, layout_jollycrd )
@@ -6500,11 +6500,11 @@ GAMEL( 1998, crystal, 0, cuoreuno, cuoreuno, driver_device, 0,
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)", GAME_IMPERFECT_GRAPHICS, 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 )
-GAME( 1991, royalcrdf, royalcrd, royalcd1, royalcrd, funworld_state, royalcdc, ROT0, "Evona Electronic","Royal Card (Slovak, encrypted)", GAME_NOT_WORKING )
+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, royalcdfr, royalcrd, royalcd1, royalcrd, driver_device, 0, ROT0, "TAB Austria", "Royal Card (French)", 0, layout_jollycrd ) // big CPLD
GAME( 1993, royalcrdp, royalcrd, cuoreuno, royalcrd, driver_device, 0, ROT0, "Digital Dreams", "Royal Card v2.0 Professional", 0 )
@@ -6532,9 +6532,9 @@ GAMEL( 198?, jolyjokra, jolyjokr, fw1stpal, jolyjokra, driver_device, 0,
GAMEL( 198?, jolyjokrb, jolyjokr, fw1stpal, funworld, driver_device, 0, ROT0, "Impera", "Jolly Joker (40bet, Croatian hack)", 0, layout_jollycrd )
// Encrypted games...
-GAME( 1992, multiwin, 0, fw1stpal, funworld, funworld_state, multiwin, ROT0, "Fun World", "Multi Win (Ver.0167, encrypted)", GAME_NOT_WORKING )
-GAME( 1993, jokercrd, 0, fw2ndpal, funworld, driver_device, 0, ROT0, "Vesely Svet", "Joker Card (Ver.A267BC, encrypted)", GAME_NOT_WORKING )
-GAME( 198?, saloon, 0, saloon, saloon, funworld_state, saloon, ROT0, "<unknown>", "Saloon (French, encrypted)", GAME_NOT_WORKING )
+GAME( 1992, multiwin, 0, fw1stpal, funworld, funworld_state, multiwin, ROT0, "Fun World", "Multi Win (Ver.0167, 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( 198?, saloon, 0, saloon, saloon, funworld_state, saloon, ROT0, "<unknown>", "Saloon (French, encrypted)", MACHINE_NOT_WORKING )
// Encrypted TAB blue PCB...
GAMEL( 199?, jolycdit, jollycrd, cuoreuno, jolycdit, funworld_state, tabblue, ROT0, "bootleg", "Jolly Card (Italian, blue TAB board, encrypted)", 0, layout_royalcrd )
@@ -6547,8 +6547,8 @@ GAME ( 1998, rcdino4, 0, rcdino4, rcdino4, funworld_state, rcdino4,
GAMEL( 1998, chinatow, 0, chinatow, chinatow, funworld_state, rcdinch, ROT0, "<unknown>", "China Town (Ver 1B, Dino4 HW)", 0, layout_jollycrd )
// MCU based games...
-GAME( 199?, mongolnw, 0, royalcd1, royalcrd, funworld_state, mongolnw, ROT0, "<unknown>", "Mongolfier New (Italian)", GAME_UNEMULATED_PROTECTION )
-GAME( 199?, soccernw, 0, royalcd1, royalcrd, funworld_state, soccernw, ROT0, "<unknown>", "Soccer New (Italian)", GAME_UNEMULATED_PROTECTION )
+GAME( 199?, mongolnw, 0, royalcd1, royalcrd, funworld_state, mongolnw, ROT0, "<unknown>", "Mongolfier New (Italian)", MACHINE_UNEMULATED_PROTECTION )
+GAME( 199?, soccernw, 0, royalcd1, royalcrd, funworld_state, soccernw, ROT0, "<unknown>", "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 )
diff --git a/src/mame/drivers/funybubl.c b/src/mame/drivers/funybubl.c
index 88f949c898b..6f96d3a482f 100644
--- a/src/mame/drivers/funybubl.c
+++ b/src/mame/drivers/funybubl.c
@@ -310,5 +310,5 @@ ROM_START( funybublc )
ROM_END
-GAME( 1999, funybubl, 0, funybubl, funybubl, driver_device, 0, ROT0, "In Chang Electronic Co", "Funny Bubble", GAME_SUPPORTS_SAVE )
-GAME( 1999, funybublc,funybubl, funybubl, funybubl, driver_device, 0, ROT0, "Comad", "Funny Bubble (Comad version)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/fuukifg2.c b/src/mame/drivers/fuukifg2.c
index 234cf91aee1..e4796dc5f0c 100644
--- a/src/mame/drivers/fuukifg2.c
+++ b/src/mame/drivers/fuukifg2.c
@@ -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)", GAME_SUPPORTS_SAVE )
-GAME( 1995, gogomileo, gogomile, fuuki16, gogomileo, driver_device, 0, ROT0, "Fuuki", "Susume! Mile Smile / Go Go! Mile Smile (older)", GAME_SUPPORTS_SAVE )
-GAME( 1996, pbancho, 0, fuuki16, pbancho, driver_device, 0, ROT0, "Fuuki", "Gyakuten!! Puzzle Bancho (Japan)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/fuukifg3.c b/src/mame/drivers/fuukifg3.c
index 6de2951bd07..24bc9f565f4 100644
--- a/src/mame/drivers/fuukifg3.c
+++ b/src/mame/drivers/fuukifg3.c
@@ -38,8 +38,6 @@ Notes so far:
- PCM channels of music in asurabus is sometimes off-tune, check Chen-Mao's stage for example
note: srom.u7 (z80 prg) is a good dump
-- YMF278B and YMF262 are hooked up in an awkward way (real chip has YMF262 integrated)
-
Asura Blade
Fuuki Co. Ltd., 1998
@@ -162,7 +160,6 @@ FG-3J ROM-J 507KA0301P04 Rev:1.3
#include "cpu/z80/z80.h"
#include "cpu/m68000/m68000.h"
#include "sound/ymf278b.h"
-#include "sound/262intf.h"
#include "includes/fuukifg3.h"
@@ -258,10 +255,6 @@ WRITE8_MEMBER(fuuki32_state::snd_z80_w)
WRITE8_MEMBER(fuuki32_state::snd_ymf278b_w)
{
machine().device<ymf278b_device>("ymf1")->write(space, offset, data);
-
- // also write to ymf262
- if (offset < 4)
- machine().device<ymf262_device>("ymf2")->write(space, offset, data);
}
static ADDRESS_MAP_START( fuuki32_sound_map, AS_PROGRAM, 8, fuuki32_state )
@@ -584,12 +577,10 @@ static MACHINE_CONFIG_START(fuuki32, fuuki32_state)
MCFG_YMF278B_IRQ_HANDLER(INPUTLINE("soundcpu", 0))
MCFG_SOUND_ROUTE(0, "lspeaker", 0.50)
MCFG_SOUND_ROUTE(1, "rspeaker", 0.50)
-
- MCFG_SOUND_ADD("ymf2", YMF262, YMF278B_STD_CLOCK / (19/8.0))
- MCFG_SOUND_ROUTE(0, "lspeaker", 0.40)
- MCFG_SOUND_ROUTE(1, "rspeaker", 0.40)
MCFG_SOUND_ROUTE(2, "lspeaker", 0.40)
MCFG_SOUND_ROUTE(3, "rspeaker", 0.40)
+ MCFG_SOUND_ROUTE(4, "lspeaker", 0.40)
+ MCFG_SOUND_ROUTE(5, "rspeaker", 0.40)
MACHINE_CONFIG_END
@@ -732,7 +723,7 @@ ROM_END
***************************************************************************/
-GAME( 1998, asurabld, 0, fuuki32, asurabld, driver_device, 0, ROT0, "Fuuki", "Asura Blade - Sword of Dynasty (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+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( 2000, asurabus, 0, fuuki32, asurabus, driver_device, 0, ROT0, "Fuuki", "Asura Buster - Eternal Warriors (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2000, asurabusa, asurabus, fuuki32, asurabusa,driver_device, 0, ROT0, "Fuuki", "Asura Buster - Eternal Warriors (Japan) (ARCADIA review build)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // has pause function on P1 button 4
+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
diff --git a/src/mame/drivers/g627.c b/src/mame/drivers/g627.c
index c459393f833..c3b19d87b6c 100644
--- a/src/mame/drivers/g627.c
+++ b/src/mame/drivers/g627.c
@@ -330,6 +330,6 @@ ROM_START(rota_101)
ROM_LOAD("v101-c.bin", 0x1000, 0x0800, CRC(c7e85638) SHA1(b59805d8b558ab8f5ea5b4b9261e862afca4b9d3))
ROM_END
-GAME(1978, rotation, 0, g627, g627, g627_state, v117, ROT0, "Midway", "Rotation VIII (v. 1.17)", GAME_MECHANICAL )
-GAME(1978, rota_115, rotation, g627, g627, g627_state, v115, ROT0, "Midway", "Rotation VIII (v. 1.15)", GAME_MECHANICAL )
-GAME(1978, rota_101, rotation, g627, g627, g627_state, v115, ROT0, "Midway", "Rotation VIII (v. 1.01)", GAME_MECHANICAL )
+GAME(1978, rotation, 0, g627, g627, g627_state, v117, ROT0, "Midway", "Rotation VIII (v. 1.17)", MACHINE_MECHANICAL )
+GAME(1978, rota_115, rotation, g627, g627, g627_state, v115, ROT0, "Midway", "Rotation VIII (v. 1.15)", MACHINE_MECHANICAL )
+GAME(1978, rota_101, rotation, g627, g627, g627_state, v115, ROT0, "Midway", "Rotation VIII (v. 1.01)", MACHINE_MECHANICAL )
diff --git a/src/mame/drivers/gaelco.c b/src/mame/drivers/gaelco.c
index 3503c9c2cc8..0353c50542a 100644
--- a/src/mame/drivers/gaelco.c
+++ b/src/mame/drivers/gaelco.c
@@ -857,9 +857,9 @@ ROM_END
*
*************************************/
-GAME( 1991, bigkarnk, 0, bigkarnk, bigkarnk, driver_device, 0, ROT0, "Gaelco", "Big Karnak", GAME_SUPPORTS_SAVE )
-GAME( 1995, biomtoy, 0, maniacsq, biomtoy, driver_device, 0, ROT0, "Gaelco", "Biomechanical Toy (Ver. 1.0.1885)", GAME_SUPPORTS_SAVE )
-GAME( 1995, biomtoya, biomtoy, maniacsq, biomtoy, driver_device, 0, ROT0, "Gaelco", "Biomechanical Toy (Ver. 1.0.1884)", GAME_SUPPORTS_SAVE )
-GAME( 1996, maniacsp, maniacsq, maniacsq, maniacsq, driver_device, 0, ROT0, "Gaelco", "Maniac Square (prototype)", GAME_SUPPORTS_SAVE )
-GAME( 1992, squash, 0, squash, squash, driver_device, 0, ROT0, "Gaelco", "Squash (Ver. 1.0)", GAME_SUPPORTS_SAVE )
-GAME( 1992, thoop, 0, thoop, thoop, driver_device, 0, ROT0, "Gaelco", "Thunder Hoop (Ver. 1)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/gaelco2.c b/src/mame/drivers/gaelco2.c
index 984af51ce73..f11ebe45a23 100644
--- a/src/mame/drivers/gaelco2.c
+++ b/src/mame/drivers/gaelco2.c
@@ -204,12 +204,12 @@ ROM_END
BANG
============================================================================*/
-READ16_MEMBER(gaelco2_state::p1_gun_x){return (ioport("LIGHT0_X")->read() * 320 / 0x100) + 1;}
-READ16_MEMBER(gaelco2_state::p1_gun_y){return (ioport("LIGHT0_Y")->read() * 240 / 0x100) - 4;}
-READ16_MEMBER(gaelco2_state::p2_gun_x){return (ioport("LIGHT1_X")->read() * 320 / 0x100) + 1;}
-READ16_MEMBER(gaelco2_state::p2_gun_y){return (ioport("LIGHT1_Y")->read() * 240 / 0x100) - 4;}
+READ16_MEMBER(bang_state::p1_gun_x){return (m_light0_x->read() * 320 / 0x100) + 1;}
+READ16_MEMBER(bang_state::p1_gun_y){return (m_light0_y->read() * 240 / 0x100) - 4;}
+READ16_MEMBER(bang_state::p2_gun_x){return (m_light1_x->read() * 320 / 0x100) + 1;}
+READ16_MEMBER(bang_state::p2_gun_y){return (m_light1_y->read() * 240 / 0x100) - 4;}
-static ADDRESS_MAP_START( bang_map, AS_PROGRAM, 16, gaelco2_state )
+static ADDRESS_MAP_START( bang_map, AS_PROGRAM, 16, bang_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM /* ROM */
AM_RANGE(0x202890, 0x2028ff) AM_DEVREADWRITE("gaelco", gaelco_cg1v_device, gaelcosnd_r, gaelcosnd_w) /* Sound Registers */
AM_RANGE(0x200000, 0x20ffff) AM_RAM_WRITE(gaelco2_vram_w) AM_SHARE("spriteram") /* Video RAM */
@@ -263,11 +263,11 @@ 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, gaelco2_state )
+static MACHINE_CONFIG_START( bang, bang_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M68000, 30000000/2) /* 15 MHz */
MCFG_CPU_PROGRAM_MAP(bang_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", gaelco2_state, bang_irq, "screen", 0, 1)
+ MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", bang_state, bang_irq, "screen", 0, 1)
MCFG_EEPROM_SERIAL_93C66_ADD("eeprom")
@@ -1060,7 +1060,7 @@ ROM_END
WORLD RALLY 2
============================================================================*/
-static ADDRESS_MAP_START( wrally2_map, AS_PROGRAM, 16, gaelco2_state )
+static ADDRESS_MAP_START( wrally2_map, AS_PROGRAM, 16, wrally2_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM /* ROM */
AM_RANGE(0x202890, 0x2028ff) AM_DEVREADWRITE("gaelco", gaelco_gae1_device, gaelcosnd_r, gaelcosnd_w) /* Sound Registers */
AM_RANGE(0x200000, 0x20ffff) AM_RAM_WRITE(gaelco2_vram_w) AM_SHARE("spriteram") /* Video RAM */
@@ -1086,7 +1086,7 @@ static INPUT_PORTS_START( wrally2 )
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1) PORT_NAME("P1 Acc.")
PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("P1 Gear") PORT_TOGGLE
- PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM_MEMBER(DEVICE_SELF, gaelco2_state,wrally2_analog_bit_r, (void *)0) /* ADC_1 serial input */
+ PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM_MEMBER(DEVICE_SELF, wrally2_state,wrally2_analog_bit_r, (void *)0) /* ADC_1 serial input */
PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
PORT_SERVICE_DIPLOC( 0x0100, IP_ACTIVE_LOW, "SW2:1" )
PORT_DIPNAME( 0x0200, 0x0000, "Coin mechanism" ) PORT_DIPLOCATION("SW2:2")
@@ -1144,7 +1144,7 @@ static INPUT_PORTS_START( wrally2 )
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("P2 Acc.")
PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("P2 Gear") PORT_TOGGLE
- PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM_MEMBER(DEVICE_SELF, gaelco2_state,wrally2_analog_bit_r, (void *)1) /* ADC_2 serial input */
+ PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SPECIAL) PORT_CUSTOM_MEMBER(DEVICE_SELF, wrally2_state,wrally2_analog_bit_r, (void *)1) /* ADC_2 serial input */
PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 )
PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN2 )
@@ -1167,7 +1167,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, gaelco2_state )
+static MACHINE_CONFIG_START( wrally2, wrally2_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M68000, 26000000/2) /* 13 MHz */
MCFG_CPU_PROGRAM_MAP(wrally2_map)
@@ -1406,16 +1406,16 @@ ROM_START( grtesoro4 ) /* there are version 4.0 and version 1.0 strings in this,
ROM_LOAD( "palce16v8h.u29", 0x0000, 0x0117, BAD_DUMP CRC(4a0a6f39) SHA1(57351e471649391c9abf110828fe2f128fe84eee) )
ROM_END
-GAME( 1994, aligator, 0, alighunt, alighunt, gaelco2_state, alighunt, ROT0, "Gaelco", "Alligator Hunt", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
+GAME( 1994, aligator, 0, alighunt, alighunt, gaelco2_state, alighunt, ROT0, "Gaelco", "Alligator Hunt", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING )
GAME( 1994, aligatorun,aligator,alighunt, alighunt, gaelco2_state, alighunt, ROT0, "Gaelco", "Alligator Hunt (unprotected)", 0 )
-GAME( 1995, touchgo, 0, touchgo, touchgo, gaelco2_state, touchgo, ROT0, "Gaelco", "Touch & Go (World)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
-GAME( 1995, touchgon, touchgo, touchgo, touchgo, gaelco2_state, touchgo, ROT0, "Gaelco", "Touch & Go (Non North America)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
-GAME( 1995, touchgoe, touchgo, touchgo, touchgo, gaelco2_state, touchgo, ROT0, "Gaelco", "Touch & Go (earlier revision)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
-GAME( 1995, wrally2, 0, wrally2, wrally2, driver_device, 0, ROT0, "Gaelco", "World Rally 2: Twin Racing", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
+GAME( 1995, touchgo, 0, touchgo, touchgo, gaelco2_state, touchgo, ROT0, "Gaelco", "Touch & Go (World)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING )
+GAME( 1995, touchgon, touchgo, touchgo, touchgo, gaelco2_state, touchgo, ROT0, "Gaelco", "Touch & Go (Non North America)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING )
+GAME( 1995, touchgoe, touchgo, touchgo, touchgo, gaelco2_state, touchgo, ROT0, "Gaelco", "Touch & Go (earlier revision)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING )
+GAME( 1995, wrally2, 0, wrally2, wrally2, driver_device, 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, snowboar, 0, snowboar, snowboar, driver_device, 0, ROT0, "Gaelco", "Snow Board Championship (Version 2.1)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
-GAME( 1996, snowboara,snowboar, snowboar, snowboar, gaelco2_state, snowboar, ROT0, "Gaelco", "Snow Board Championship (Version 2.0)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
-GAME( 1998, bang, 0, bang, bang, gaelco2_state, bang, ROT0, "Gaelco", "Bang!", 0 )
-GAME( 1998, bangj, bang, bang, bang, gaelco2_state, bang, ROT0, "Gaelco", "Gun Gabacho (Japan)", 0 )
-GAME( 1999, grtesoro, 0, maniacsq, maniacsq, driver_device, 0, ROT0, "Nova Desitec", "Gran Tesoro? / Play 2000 (v5.01) (Italy)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
-GAME( 1999, grtesoro4, grtesoro,maniacsq, maniacsq, driver_device, 0, ROT0, "Nova Desitec", "Gran Tesoro? / Play 2000 (v4.0) (Italy)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
+GAME( 1996, snowboar, 0, snowboar, snowboar, driver_device, 0, ROT0, "Gaelco", "Snow Board Championship (Version 2.1)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING )
+GAME( 1996, snowboara,snowboar, snowboar, snowboar, gaelco2_state, snowboar, ROT0, "Gaelco", "Snow Board Championship (Version 2.0)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING )
+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 )
+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 )
diff --git a/src/mame/drivers/gaelco3d.c b/src/mame/drivers/gaelco3d.c
index bc9689d978a..da02df07eb6 100644
--- a/src/mame/drivers/gaelco3d.c
+++ b/src/mame/drivers/gaelco3d.c
@@ -677,7 +677,7 @@ WRITE32_MEMBER(gaelco3d_state::adsp_tx_callback)
/* now put it down to samples, so we know what the channel frequency has to be */
sample_period *= 16 * SOUND_CHANNELS;
- dmadac_set_frequency(&m_dmadac[0], SOUND_CHANNELS, ATTOSECONDS_TO_HZ(sample_period.attoseconds));
+ dmadac_set_frequency(&m_dmadac[0], SOUND_CHANNELS, ATTOSECONDS_TO_HZ(sample_period.attoseconds()));
dmadac_enable(&m_dmadac[0], SOUND_CHANNELS, 1);
/* fire off a timer wich will hit every half-buffer */
@@ -1240,11 +1240,11 @@ DRIVER_INIT_MEMBER(gaelco3d_state,gaelco3d)
*
*************************************/
-GAME( 1996, speedup, 0, gaelco3d, speedup, gaelco3d_state, gaelco3d, ROT0, "Gaelco", "Speed Up (Version 1.20)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1996, speedup10, speedup, gaelco3d, speedup, gaelco3d_state, gaelco3d, ROT0, "Gaelco", "Speed Up (Version 1.00)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+GAME( 1996, speedup, 0, gaelco3d, speedup, gaelco3d_state, gaelco3d, ROT0, "Gaelco", "Speed Up (Version 1.20)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1996, speedup10, speedup, gaelco3d, speedup, gaelco3d_state, gaelco3d, ROT0, "Gaelco", "Speed Up (Version 1.00)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
-GAME( 1997, surfplnt, 0, gaelco3d, surfplnt, gaelco3d_state, gaelco3d, ROT0, "Gaelco", "Surf Planet (Version 4.1)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE)
-GAME( 1997, surfplnt40, surfplnt, gaelco3d, surfplnt, gaelco3d_state, gaelco3d, ROT0, "Gaelco", "Surf Planet (Version 4.0)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE)
+GAME( 1997, surfplnt, 0, gaelco3d, surfplnt, gaelco3d_state, gaelco3d, ROT0, "Gaelco", "Surf Planet (Version 4.1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE)
+GAME( 1997, surfplnt40, surfplnt, gaelco3d, surfplnt, gaelco3d_state, gaelco3d, ROT0, "Gaelco", "Surf Planet (Version 4.0)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE)
-GAME( 1998, radikalb, 0, gaelco3d2, radikalb, gaelco3d_state, gaelco3d, ROT0, "Gaelco", "Radikal Bikers (Version 2.02)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE)
-GAME( 1998, radikalba, radikalb, gaelco3d2, radikalb, gaelco3d_state, gaelco3d, ROT0, "Gaelco (Atari license)", "Radikal Bikers (Version 2.02, Atari license)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE)
+GAME( 1998, radikalb, 0, gaelco3d2, radikalb, gaelco3d_state, gaelco3d, ROT0, "Gaelco", "Radikal Bikers (Version 2.02)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE)
+GAME( 1998, radikalba, radikalb, gaelco3d2, radikalb, gaelco3d_state, gaelco3d, ROT0, "Gaelco (Atari license)", "Radikal Bikers (Version 2.02, Atari license)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE)
diff --git a/src/mame/drivers/gaiden.c b/src/mame/drivers/gaiden.c
index 927fdf02a7b..249e6313b8c 100644
--- a/src/mame/drivers/gaiden.c
+++ b/src/mame/drivers/gaiden.c
@@ -1654,18 +1654,18 @@ DRIVER_INIT_MEMBER(gaiden_state,mastninj)
}
// 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)", GAME_SUPPORTS_SAVE )
-GAME( 1988, shadowwa, shadoww, shadoww, common, gaiden_state, shadoww, ROT0, "Tecmo", "Shadow Warriors (World, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1988, gaiden, shadoww, shadoww, common, gaiden_state, shadoww, ROT0, "Tecmo", "Ninja Gaiden (US)", GAME_SUPPORTS_SAVE )
-GAME( 1989, ryukendn, shadoww, shadoww, common, gaiden_state, shadoww, ROT0, "Tecmo", "Ninja Ryukenden (Japan, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1989, ryukendna, shadoww, shadoww, common, gaiden_state, shadoww, ROT0, "Tecmo", "Ninja Ryukenden (Japan, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1989, mastninj, shadoww, mastninj, common, gaiden_state, mastninj, ROT0, "bootleg", "Master Ninja (bootleg of Shadow Warriors / Ninja Gaiden)", GAME_NOT_WORKING | GAME_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)", GAME_SUPPORTS_SAVE ) // Draogn Bowl is based on Ninja Gaiden code
-GAME( 1992, drgnbowla, drgnbowl, drgnbowl, drgnbowl, gaiden_state, drgnbowla,ROT0, "Nics", "Dragon Bowl (set 2, unencrypted program)", GAME_SUPPORTS_SAVE )
-
-GAME( 1989, wildfang, 0, shadoww, wildfang, gaiden_state, wildfang, ROT0, "Tecmo", "Wild Fang / Tecmo Knight", GAME_SUPPORTS_SAVE )
-GAME( 1989, wildfangs, wildfang, shadoww, tknight, gaiden_state, wildfang, ROT0, "Tecmo", "Wild Fang", GAME_SUPPORTS_SAVE )
-GAME( 1989, tknight, wildfang, shadoww, tknight, gaiden_state, wildfang, ROT0, "Tecmo", "Tecmo Knight", GAME_SUPPORTS_SAVE )
-
-GAME( 1991, stratof, 0, raiga, raiga, gaiden_state, raiga, ROT0, "Tecmo", "Raiga - Strato Fighter (US)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1991, raiga, stratof, raiga, raiga, gaiden_state, raiga, ROT0, "Tecmo", "Raiga - Strato Fighter (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+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 ) // Draogn 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.c b/src/mame/drivers/gal3.c
index 752e8b0a32f..b405d644b66 100644
--- a/src/mame/drivers/gal3.c
+++ b/src/mame/drivers/gal3.c
@@ -865,5 +865,5 @@ ROM_START( gal3 )
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", GAME_NOT_WORKING | GAME_NO_SOUND, layout_dualhsxs )
-//GAMEL( 199?, gal3zlgr, 0, gal3, gal3, driver_device, 0, ROT0, "Namco", "Galaxian 3 - Theater 6 J2 : Attack of The Zolgear", GAME_NOT_WORKING | GAME_NO_SOUND, layout_dualhsxs )
+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 )
+//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.c b/src/mame/drivers/galaga.c
index 59e998d6e29..b03a0b5c4e1 100644
--- a/src/mame/drivers/galaga.c
+++ b/src/mame/drivers/galaga.c
@@ -3369,37 +3369,37 @@ 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)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS )
-GAME( 1981, boscoo, bosco, bosco, bosco, driver_device, 0, ROT0, "Namco", "Bosconian (old version)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS )
-GAME( 1981, boscoo2, bosco, bosco, bosco, driver_device, 0, ROT0, "Namco", "Bosconian (older version)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS )
-GAME( 1981, boscomd, bosco, bosco, boscomd, driver_device, 0, ROT0, "Namco (Midway license)", "Bosconian (Midway, new version)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS )
-GAME( 1981, boscomdo, bosco, bosco, boscomd, driver_device, 0, ROT0, "Namco (Midway license)", "Bosconian (Midway, old version)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS )
-
-GAME( 1981, galaga, 0, galaga, galaga, galaga_state, galaga, ROT90, "Namco", "Galaga (Namco rev. B)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS )
-GAME( 1981, galagao, galaga, galaga, galaga, galaga_state, galaga, ROT90, "Namco", "Galaga (Namco)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS )
-GAME( 1981, galagamw, galaga, galaga, galagamw, galaga_state, galaga, ROT90, "Namco (Midway license)", "Galaga (Midway set 1)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS )
-GAME( 1981, galagamk, galaga, galaga, galaga, galaga_state, galaga, ROT90, "Namco (Midway license)", "Galaga (Midway set 2)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS )
-GAME( 1981, galagamf, galaga, galaga, galaga, galaga_state, galaga, ROT90, "Namco (Midway license)", "Galaga (Midway set 1 with fast shoot hack)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS )
-
-GAME( 1982, xevious, 0, xevious, xevious, xevious_state, xevious, ROT90, "Namco", "Xevious (Namco)", GAME_SUPPORTS_SAVE )
-GAME( 1982, xeviousa, xevious, xevious, xeviousa, xevious_state, xevious, ROT90, "Namco (Atari license)", "Xevious (Atari, harder)", GAME_SUPPORTS_SAVE )
-GAME( 1982, xeviousb, xevious, xevious, xeviousb, xevious_state, xevious, ROT90, "Namco (Atari license)", "Xevious (Atari)", GAME_SUPPORTS_SAVE )
-GAME( 1982, xeviousc, xevious, xevious, xeviousa, xevious_state, xevious, ROT90, "Namco (Atari license)", "Xevious (Atari, Namco PCB)", GAME_SUPPORTS_SAVE )
-GAME( 1984, sxevious, xevious, xevious, sxevious, xevious_state, xevious, ROT90, "Namco", "Super Xevious", GAME_SUPPORTS_SAVE )
-GAME( 1984, sxeviousj, xevious, xevious, sxevious, xevious_state, xevious, ROT90, "Namco", "Super Xevious (Japan)", GAME_SUPPORTS_SAVE )
-
-GAME( 1982, digdug, 0, digdug, digdug, driver_device, 0, ROT90, "Namco", "Dig Dug (rev 2)", GAME_SUPPORTS_SAVE )
-GAME( 1982, digdug1, digdug, digdug, digdug, driver_device, 0, ROT90, "Namco", "Dig Dug (rev 1)", GAME_SUPPORTS_SAVE )
-GAME( 1982, digdugat, digdug, digdug, digdug, driver_device, 0, ROT90, "Namco (Atari license)", "Dig Dug (Atari, rev 2)", GAME_SUPPORTS_SAVE )
-GAME( 1982, digdugat1, digdug, digdug, digdug, driver_device, 0, ROT90, "Namco (Atari license)", "Dig Dug (Atari, rev 1)", GAME_SUPPORTS_SAVE )
-GAME( 1982, digsid, digdug, digdug, digdug, driver_device, 0, ROT90, "Namco (Sidam license)", "Dig Dug (manufactured by Sidam)", GAME_SUPPORTS_SAVE )
+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 )
+
+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, 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 )
/* Bootlegs with replacement I/O chips */
-GAME( 1981, gallag, galaga, galagab, galaga, galaga_state, galaga, ROT90, "bootleg", "Gallag", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1984, gatsbee, galaga, galagab, gatsbee, galaga_state, gatsbee, ROT90, "hack", "Gatsbee", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
+GAME( 1981, 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", "Gatsbee", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1982, xevios, xevious, xevious, xevious, xevious_state, xevios, ROT90, "bootleg", "Xevios", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1982, battles, xevious, battles, xevious, xevious_state, battles, ROT90, "bootleg", "Battles", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+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", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1982, dzigzag, digdug, dzigzag, digdug, driver_device, 0, ROT90, "bootleg", "Zig Zag (Dig Dug hardware)", GAME_SUPPORTS_SAVE )
+GAME( 1982, dzigzag, digdug, dzigzag, digdug, driver_device, 0, ROT90, "bootleg", "Zig Zag (Dig Dug hardware)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/galastrm.c b/src/mame/drivers/galastrm.c
index 7da7c8195ac..e6329108fe9 100644
--- a/src/mame/drivers/galastrm.c
+++ b/src/mame/drivers/galastrm.c
@@ -357,4 +357,4 @@ ROM_START( galastrm )
ROM_END
-GAME( 1992, galastrm, 0, galastrm, galastrm, driver_device, 0, ROT0, "Taito Corporation", "Galactic Storm (Japan)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1992, galastrm, 0, galastrm, galastrm, driver_device, 0, ROT0, "Taito Corporation", "Galactic Storm (Japan)", MACHINE_IMPERFECT_GRAPHICS )
diff --git a/src/mame/drivers/galaxi.c b/src/mame/drivers/galaxi.c
index 1a81bf9a0b0..f22f0176fa8 100644
--- a/src/mame/drivers/galaxi.c
+++ b/src/mame/drivers/galaxi.c
@@ -68,7 +68,6 @@ public:
required_shared_ptr<UINT16> m_bg3_ram;
required_shared_ptr<UINT16> m_bg4_ram;
required_shared_ptr<UINT16> m_fg_ram;
-// UINT16 * m_paletteram; // currently this uses generic palette handling
// UINT16 * m_nvram; // currently this uses generic nvram handling
/* video-related */
@@ -487,5 +486,5 @@ ROM_END
***************************************************************************/
/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS LAYOUT */
-GAMEL( 2000, galaxi, 0, galaxi, galaxi, driver_device, 0, ROT0, "B.R.L.", "Galaxi (v2.0)", GAME_SUPPORTS_SAVE, layout_galaxi )
-GAMEL( 2000, magjoker, 0, magjoker, magjoker, driver_device, 0, ROT0, "B.R.L.", "Magic Joker (v1.25.10.2000)", GAME_SUPPORTS_SAVE, layout_galaxi )
+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 )
diff --git a/src/mame/drivers/galaxia.c b/src/mame/drivers/galaxia.c
index 3f6c4e1983a..1e52fa6f881 100644
--- a/src/mame/drivers/galaxia.c
+++ b/src/mame/drivers/galaxia.c
@@ -3,6 +3,8 @@
/*
Galaxia by Zaccaria (1979)
+Also released in several regions as "Super Galaxians".
+Set regions are unknown, so all are currently named Galaxia.
Taken from an untested board.
@@ -11,7 +13,7 @@ Taken from an untested board.
This is not a direct pirate of Galaxian as you might think from the name.
The game uses a Signetics 2650A CPU with three 40-pin 2636 chips, which are
-responsible for sound and some video functions.
+responsible for basic sound and some video functions.
Other than that, the video hardware looks like it's similar to Galaxian
(2 x 2114, 2 x 2101, 2 x EPROM) but there is no attack RAM and the graphics
@@ -48,16 +50,21 @@ Quick PCB sketch:
Astro Wars (port of Astro Fighter) is on a stripped down board of Galaxia,
using only one 2636 chip, less RAM, and no PROM.
----
+Manual and Schematic for Galaxia can be found at:
+http://www.zzzaccaria.com/manuals/SuperGalaxiansTechnicalManual.zip
+http://www.zzzaccaria.com/manuals/GalaxiaSchematics.zip
+
+The manual for Astro Wars can also be found at:
+http://www.opdenkelder.com/Astrowars_manual.zip
HW has many similarities with quasar.c / cvs.c / zac2650.c
+---
TODO:
-- fix colors, there's no color prom?!
-- stars background should be multi color
-- improve sound, maybe part discrete
+- correct color/star generation using info from Galaxia technical manual and schematics
+- add sound board emulation
- improve bullets
-- accurate astrowar sprite/bg sync
+- accurate sprite/bg sync in astrowar
*/
@@ -286,7 +293,7 @@ static MACHINE_CONFIG_START( galaxia, galaxia_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
- MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_REFRESH_RATE(50)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 30*8-1, 2*8, 32*8-1)
@@ -331,7 +338,7 @@ static MACHINE_CONFIG_START( astrowar, galaxia_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
- MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_REFRESH_RATE(50)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 32*8-1)
@@ -463,9 +470,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)", GAME_IMPERFECT_COLORS | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1979, galaxiaa, galaxia, galaxia, galaxia, driver_device, 0, ROT90, "Zaccaria / Zelco", "Galaxia (set 2)", GAME_IMPERFECT_COLORS | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1979, galaxiab, galaxia, galaxia, galaxia, driver_device, 0, ROT90, "Zaccaria / Zelco", "Galaxia (set 3)", GAME_IMPERFECT_COLORS | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1979, galaxiac, galaxia, galaxia, galaxia, driver_device, 0, ROT90, "Zaccaria / Zelco", "Galaxia (set 4)", GAME_IMPERFECT_COLORS | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1980, astrowar, 0, astrowar, galaxia, driver_device, 0, ROT90, "Zaccaria / Zelco", "Astro Wars", GAME_IMPERFECT_COLORS | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
+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 )
diff --git a/src/mame/drivers/galaxian.c b/src/mame/drivers/galaxian.c
index f9276d41095..bcd1651c2c7 100644
--- a/src/mame/drivers/galaxian.c
+++ b/src/mame/drivers/galaxian.c
@@ -12,7 +12,7 @@
a CPU section, a sound section, and a video section.
The CPU section is based around a Z80 (though there are modified
- designed that changed this to an S2650). The base galaxian hardware
+ designs that changed this to an S2650). The base galaxian hardware
is designed to allow access to up to 16k of program ROM and 2k of
working RAM.
@@ -851,11 +851,18 @@ READ8_MEMBER(galaxian_state::frogger_sound_timer_r)
}
-WRITE8_MEMBER(galaxian_state::froggrmc_sound_control_w)
+WRITE8_MEMBER(galaxian_state::froggermc_sound_control_w)
{
- m_audiocpu->set_input_line(0, (data & 1) ? CLEAR_LINE : ASSERT_LINE);
+ m_audiocpu->set_input_line(INPUT_LINE_IRQ0, ASSERT_LINE);
}
+IRQ_CALLBACK_MEMBER(galaxian_state::froggermc_audiocpu_irq_ack)
+{
+ // cleared when taking the interrupt using the m1 line
+ // schematic: http://www.jrok.com/schem/FROGSND.pdf
+ m_audiocpu->set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE);
+ return 0xff;
+}
/*************************************
*
@@ -3722,7 +3729,7 @@ static INPUT_PORTS_START( frogger )
INPUT_PORTS_END
-static INPUT_PORTS_START( froggrmc )
+static INPUT_PORTS_START( froggermc )
PORT_START("IN0")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 )
@@ -3763,7 +3770,7 @@ INPUT_PORTS_END
static INPUT_PORTS_START( frogg )
- PORT_INCLUDE(froggrmc)
+ PORT_INCLUDE(froggermc)
PORT_MODIFY("IN0")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SPECIAL ) // See notes
@@ -5332,12 +5339,15 @@ static MACHINE_CONFIG_DERIVED( frogger, konami_base )
MACHINE_CONFIG_END
-static MACHINE_CONFIG_DERIVED( froggrmc, galaxian_base )
+static MACHINE_CONFIG_DERIVED( froggermc, galaxian_base )
MCFG_FRAGMENT_ADD(konami_sound_1x_ay8910)
/* alternate memory map */
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(mooncrst_map_base) /* no discrete sound ! */
+
+ MCFG_CPU_MODIFY("audiocpu")
+ MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE(DEVICE_SELF, galaxian_state, froggermc_audiocpu_irq_ack)
MACHINE_CONFIG_END
@@ -5758,7 +5768,18 @@ void galaxian_state::decode_frogger_sound()
UINT32 offs;
/* the first ROM of the sound CPU has data lines D0 and D1 swapped */
- for (offs = 0; offs < 0x0800; offs++)
+ for (offs = 0; offs < 0x800; offs++)
+ rombase[offs] = BITSWAP8(rombase[offs], 7,6,5,4,3,2,0,1);
+}
+
+// froggermc has a bigger first ROM of the sound CPU, thus a different decode
+void galaxian_state::decode_froggermc_sound()
+{
+ UINT8 *rombase = memregion("audiocpu")->base();
+ UINT32 offs;
+
+ /* the first ROM of the sound CPU has data lines D0 and D1 swapped */
+ for (offs = 0; offs < 0x1000; offs++)
rombase[offs] = BITSWAP8(rombase[offs], 7,6,5,4,3,2,0,1);
}
@@ -5817,7 +5838,7 @@ void galaxian_state::decode_superbon()
offs_t i;
UINT8 *RAM;
- /* Deryption worked out by hand by Chris Hardy. */
+ /* Decryption worked out by hand by Chris Hardy. */
RAM = memregion("maincpu")->base();
@@ -6510,6 +6531,9 @@ DRIVER_INIT_MEMBER(galaxian_state,atlantis)
}
+
+
+
DRIVER_INIT_MEMBER(galaxian_state,scobra)
{
/* video extensions */
@@ -6518,6 +6542,34 @@ DRIVER_INIT_MEMBER(galaxian_state,scobra)
+DRIVER_INIT_MEMBER(galaxian_state,scobrae)
+{
+ UINT8 *rom = memregion("maincpu")->base();
+ int offs;
+
+ for (offs = 0; offs < 0x6000; offs++)
+ {
+ int i = offs & 0x7f;
+ int x = rom[offs];
+
+ if (offs & 0x80) i ^= 0x7f;
+
+ if (i & 0x01) x ^= 0x49;
+ if (i & 0x02) x ^= 0x21;
+ if (i & 0x04) x ^= 0x18;
+ if (i & 0x08) x ^= 0x12;
+ if (i & 0x10) x ^= 0x84;
+ if (i & 0x20) x ^= 0x24;
+ if (i & 0x40) x ^= 0x40;
+
+ rom[offs] = x ^ 0xff;
+ }
+
+ /* video extensions */
+ common_init(&galaxian_state::scramble_draw_bullet, &galaxian_state::scramble_draw_background, NULL, NULL);
+}
+
+
DRIVER_INIT_MEMBER(galaxian_state,losttomb)
{
/* video extensions */
@@ -6547,7 +6599,7 @@ DRIVER_INIT_MEMBER(galaxian_state,quaak)
}
-DRIVER_INIT_MEMBER(galaxian_state,froggrmc)
+DRIVER_INIT_MEMBER(galaxian_state,froggermc)
{
address_space &space = m_maincpu->space(AS_PROGRAM);
@@ -6555,13 +6607,13 @@ DRIVER_INIT_MEMBER(galaxian_state,froggrmc)
common_init(NULL, &galaxian_state::frogger_draw_background, &galaxian_state::frogger_extend_tile_info, &galaxian_state::frogger_extend_sprite_info);
space.install_write_handler(0xa800, 0xa800, 0, 0x7ff, write8_delegate(FUNC(galaxian_state::soundlatch_byte_w),this));
- space.install_write_handler(0xb001, 0xb001, 0, 0x7f8, write8_delegate(FUNC(galaxian_state::froggrmc_sound_control_w),this));
+ space.install_write_handler(0xb001, 0xb001, 0, 0x7f8, write8_delegate(FUNC(galaxian_state::froggermc_sound_control_w),this));
/* actually needs 2k of RAM */
space.install_ram(0x8000, 0x87ff);
/* decrypt */
- decode_frogger_sound();
+ decode_froggermc_sound();
}
@@ -6719,25 +6771,6 @@ ROM_START( galaxian )
ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) )
ROM_END
-/* Suspected of being Space Warp - ASCII shows "COPYRIGHT 1983", "CENTURY ELECTRONICS UK LTD" in swarpt7f.bin */
-/* S2650 CPU, not Z80. gfx is like cosmos(cvs.c) */
-ROM_START( spcwarp )
- ROM_REGION( 0x4000, "maincpu", 0 )
- ROM_LOAD( "swarpt7f.bin", 0x0000, 0x1000, CRC(04d744e3) SHA1(db8218510052a05670cb0b722b73d3f10464788c) )
- ROM_LOAD( "swarpt7h.bin", 0x1000, 0x1000, CRC(34a36536) SHA1(bc438515618683b2a7c29637871ee00ed95ad7f8) )
-/* ROMCMP reports "BADADDR xxxxxx-xxxxx". Observed data sequence repeated every 32 bytes */
- ROM_LOAD( "swarpt7m.bin", 0x2000, 0x1000, BAD_DUMP CRC(a2dff6c8) SHA1(d1c72848450dc5ff386dc94a26e4bf704ccc7121) )
-/* Stripped "repaired" rom. Was original rom supposed to be 0x1000 or 0x800? */
-// ROM_LOAD( "swarpt7m-repair.bin", 0x2000, 0x0800, CRC(109f95cf) SHA1(d99171ffd6639fec28966edaf7cce3a4df5e948d) )
-
- ROM_REGION( 0x1000, "gfx1", 0 )
- ROM_LOAD( "swarpb1h.bin", 0x0000, 0x0800, CRC(6ee3b5f7) SHA1(8150f2ecd59d3a165c0541b550664c56d049edd5) )
- ROM_LOAD( "swarpb1k.bin", 0x0800, 0x0800, CRC(da4cee6b) SHA1(28b91381658f598fa62049489beee443232825c6) )
-
- ROM_REGION( 0x0020, "proms", 0 ) /* unknown - using Galaxian's prom for now */
- ROM_LOAD( "6l.bpr", 0x0000, 0x0020, CRC(c3ac9467) SHA1(f382ad5a34d282056c78a5ec00c30ec43772bae2) )
-ROM_END
-
ROM_START( galaxiana )
ROM_REGION( 0x4000, "maincpu", 0 )
ROM_LOAD( "7f.bin", 0x0000, 0x1000, CRC(4335b1de) SHA1(e41e3d90dac738cf71377f3b476ec67b14dee27a) )
@@ -7749,7 +7782,7 @@ ROM_START( devilfsg )
ROM_END
-ROM_START( zigzag )
+ROM_START( zigzagb )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "zz_d1.7l", 0x0000, 0x1000, CRC(8cc08d81) SHA1(be671192ef06dc3ed6963dc39e6bdce3275300e9) )
ROM_LOAD( "zz_d2.7k", 0x1000, 0x1000, CRC(326d8d45) SHA1(563b9fc64c34e36cfadffb107ce30d3a04d62d9c) )
@@ -7772,7 +7805,7 @@ ROM_START( zigzag )
ROM_LOAD( "zzbpr_e9.bin",0x0000, 0x0020, CRC(aa486dd0) SHA1(b845b52715bf6361ceee8c1ac541733963bd47af) )
ROM_END
-ROM_START( zigzag2 )
+ROM_START( zigzagb2 )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "z1.7l", 0x0000, 0x1000, CRC(4c28349a) SHA1(646134ce506deaee88cc2ec5a973f8fedaddb66b) )
ROM_LOAD( "zz_d2.7k", 0x1000, 0x1000, CRC(326d8d45) SHA1(563b9fc64c34e36cfadffb107ce30d3a04d62d9c) )
@@ -8671,6 +8704,7 @@ ROM_START( kong )
ROM_REGION( 0x2000, "unk", 0 )
// what is this, speech? the video at https://www.youtube.com/watch?v=HTZEVKoYlGM shows the game apparently talking (2nd game, after The Pit)
// The video however seems to show a game closer to ckongg (a bootleg of Crazy Kong) rather than this version of Kong which is rewritten from scratch
+ // It could be "GORILA" as seen in the Taito do Brasil cabinet flyers
ROM_LOAD( "13", 0x0000, 0x1000, CRC(7d33ca0a) SHA1(8a65a4b913559e3fd17f6abb381db1ab813fc8f2) )
ROM_REGION( 0x0020, "proms", 0 )
@@ -8962,7 +8996,7 @@ guess at what the game actually is.
Roms 1 through 8 read well in-circuit in the right
places in the memory map for moon cresta,
(through the fluke 9100) but the game does not
-currently run. Roms dumped adn verified with no
+currently run. Roms dumped and verified with no
anomalies.
Rom 9 was placed on the through-socket and has
@@ -10419,6 +10453,30 @@ ROM_START( scobrab )
ROM_LOAD( "82s123.6e", 0x0000, 0x0020, CRC(9b87f90d) SHA1(d11ac5e4a6057301ea2a9cbb404c2b978eb4c1dc) )
ROM_END
+ROM_START( scobrae ) // main program is identical to the scobras set once decrypted
+ ROM_REGION( 0x10000, "maincpu", 0 ) // all roms have STERN labels
+ ROM_LOAD( "super cobra ra1 2c 1981.2c", 0x0000, 0x1000, CRC(ba9d4152) SHA1(f1792c0049804ac956ab7f95f699559fca4df960) )
+ ROM_LOAD( "super cobra ra1 2e 1981.2e", 0x1000, 0x1000, CRC(f9b77b27) SHA1(7974761456aaabcf016158ee5f5c32c89e43c748) )
+ ROM_LOAD( "super cobra ra1 2f 1981.2f", 0x2000, 0x1000, CRC(e6109c2c) SHA1(1749ac277b1af45b1f6722d2ddaf46be043b2b25) )
+ ROM_LOAD( "super cobra ra1 2h 1981.2h", 0x3000, 0x1000, CRC(8762735b) SHA1(07dd9b390d44fec9f83c88abf28d167c1710dcc9) )
+ ROM_LOAD( "super cobra ra1 2j 1981.2j", 0x4000, 0x1000, CRC(5648f404) SHA1(5cfbada816fd614508c7cd41196a350176c5882d) )
+ ROM_LOAD( "super cobra ra1 2l 1981.2l", 0x5000, 0x1000, CRC(34476cc3) SHA1(b8b1c9572e0c5e25f3d2a33d5a0ce40de007b478) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "super cobra ra1 5f 1981.5f", 0x0000, 0x0800, CRC(64d113b4) SHA1(7b439bb74d5ecc792e0ca8964bcca8c6b7a51262) )
+ ROM_LOAD( "super cobra ra1 5h 1981.5h", 0x0800, 0x0800, CRC(a96316d3) SHA1(9de0e94932e91dc34aea7c81880bde6a486d103b) )
+
+ // roms below were missing, so not verified for this set but likely the same because the main program is.
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "5c", 0x0000, 0x0800, BAD_DUMP CRC(deeb0dd3) SHA1(b815a586f05361b75078d58f1fddfdb36f9d8fae) )
+ ROM_LOAD( "5d", 0x0800, 0x0800, BAD_DUMP CRC(872c1a74) SHA1(20f05bf398ad2690f5ba4e4158ad62aeec226413) )
+ ROM_LOAD( "5e", 0x1000, 0x0800, BAD_DUMP CRC(ccd7a110) SHA1(5a247e360530be0f94c90fcc7d0ce628d460449f) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "82s123.6e", 0x0000, 0x0020, BAD_DUMP CRC(9b87f90d) SHA1(d11ac5e4a6057301ea2a9cbb404c2b978eb4c1dc) )
+ROM_END
+
+
ROM_START( suprheli )
/* this is a bootleg of Super Cobra */
ROM_REGION( 0x10000, "maincpu", 0 )
@@ -10737,93 +10795,92 @@ ROM_END
*************************************/
/* basic galaxian hardware */
-GAME( 1979, galaxian, 0, galaxian, galaxian, galaxian_state, galaxian, ROT90, "Namco", "Galaxian (Namco set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1979, galaxiana, galaxian, galaxian, superg, galaxian_state, galaxian, ROT90, "Namco", "Galaxian (Namco set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1979, galaxianm, galaxian, galaxian, galaxian, galaxian_state, galaxian, ROT90, "Namco (Midway license)", "Galaxian (Midway set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1979, galaxianmo, galaxian, galaxian, galaxian, galaxian_state, galaxian, ROT90, "Namco (Midway license)", "Galaxian (Midway set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1979, galaxiant, galaxian, galaxian, superg, galaxian_state, galaxian, ROT90, "Namco (Taito license)", "Galaxian (Taito)", GAME_SUPPORTS_SAVE )
-GAME( 1979, galaxiani, galaxian, galaxian, superg, galaxian_state, galaxian, ROT90, "bootleg? (Irem)", "Galaxian (Irem)", GAME_SUPPORTS_SAVE ) // more likely bootlegged by Irem, not an official license
+GAME( 1979, galaxian, 0, galaxian, galaxian, galaxian_state, galaxian, ROT90, "Namco", "Galaxian (Namco set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1979, galaxiana, galaxian, galaxian, superg, galaxian_state, galaxian, ROT90, "Namco", "Galaxian (Namco set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1979, galaxianm, galaxian, galaxian, galaxian, galaxian_state, galaxian, ROT90, "Namco (Midway license)", "Galaxian (Midway set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1979, galaxianmo, galaxian, galaxian, galaxian, galaxian_state, galaxian, ROT90, "Namco (Midway license)", "Galaxian (Midway set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1979, galaxiant, galaxian, galaxian, superg, galaxian_state, galaxian, ROT90, "Namco (Taito license)", "Galaxian (Taito)", MACHINE_SUPPORTS_SAVE )
+GAME( 1979, galaxiani, galaxian, galaxian, superg, galaxian_state, galaxian, ROT90, "bootleg? (Irem)", "Galaxian (Irem)", MACHINE_SUPPORTS_SAVE ) // more likely bootlegged by Irem, not an official license
/* straight Galaxian ripoffs on basic galaxian hardware */
-GAME( 1979, moonaln, galaxian, galaxian, superg, galaxian_state, galaxian, ROT90, "Namco / Nichibutsu (Karateco license?)", "Moon Alien", GAME_SUPPORTS_SAVE ) // or bootleg?
-GAME( 1979, superg, galaxian, galaxian, superg, galaxian_state, galaxian, ROT90, "hack", "Super Galaxians (galaxiana hack)", GAME_SUPPORTS_SAVE )
-GAME( 1979, galturbo, galaxian, galaxian, superg, galaxian_state, galaxian, ROT90, "hack", "Galaxian Turbo (superg hack)", GAME_SUPPORTS_SAVE )
-GAME( 1979, galapx, galaxian, galaxian, superg, galaxian_state, galaxian, ROT90, "hack", "Galaxian Part X (moonaln hack)", GAME_SUPPORTS_SAVE )
-GAME( 1979, galap1, galaxian, galaxian, superg, galaxian_state, galaxian, ROT90, "hack", "Space Invaders Galactica (galaxiana hack)", GAME_SUPPORTS_SAVE )
-GAME( 1979, galap4, galaxian, galaxian, superg, galaxian_state, galaxian, ROT90, "hack (G.G.I)", "Galaxian Part 4 (hack)", GAME_SUPPORTS_SAVE )
-GAME( 1979, swarm, galaxian, galaxian, swarm, galaxian_state, galaxian, ROT90, "bootleg? (Subelectro)", "Swarm (bootleg?)", GAME_SUPPORTS_SAVE )
-GAME( 1980, astrians, galaxian, galaxian, swarm, galaxian_state, galaxian, ROT90, "bootleg (BGV Ltd.)", "Astrians (clone of Swarm)", GAME_SUPPORTS_SAVE )
-GAME( 1979, zerotime, galaxian, galaxian, zerotime, galaxian_state, galaxian, ROT90, "bootleg? (Petaco S.A.)", "Zero Time", GAME_SUPPORTS_SAVE )
-GAME( 1979, zerotimed, galaxian, galaxian, zerotime, galaxian_state, galaxian, ROT90, "bootleg (Datamat)", "Zero Time (Datamat)", GAME_SUPPORTS_SAVE ) // a 1994 bootleg of the Petaco bootleg
-GAME( 1979, starfght, galaxian, galaxian, swarm, galaxian_state, galaxian, ROT90, "bootleg (Jeutel)", "Star Fighter", GAME_SUPPORTS_SAVE )
-GAME( 1979, galaxbsf, galaxian, galaxian, galaxian, galaxian_state, galaxian, ROT90, "bootleg", "Galaxian (bootleg, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1979, galaxianbl, galaxian, galaxian, galaxianbl, galaxian_state, galaxian, ROT90, "bootleg", "Galaxian (bootleg, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1979, galaxbsf2, galaxian, galaxian, galaxian, galaxian_state, galaxian, ROT90, "bootleg", "Galaxian (bootleg, set 3)", GAME_SUPPORTS_SAVE )
-GAME( 1980, supergx, galaxian, galaxian, superg, galaxian_state, galaxian, ROT90, "Namco / Nichibutsu", "Super GX", GAME_NOT_WORKING | GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
-GAME( 19??, tst_galx, galaxian, galaxian, galaxian, galaxian_state, galaxian, ROT90, "<unknown>", "Galaxian Test ROM", GAME_SUPPORTS_SAVE )
-GAME( 1980, galaxrf, galaxian, galaxian, galaxrf, galaxian_state, galaxian, ROT90, "bootleg (Recreativos Franco S.A.)", "Galaxian (Recreativos Franco S.A. Spanish bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1980, galaxrfgg, galaxian, galaxian, galaxrf, galaxian_state, galaxian, ROT90, "bootleg (Recreativos Franco S.A.)", "Galaxian Growing Galaxip / Galaxian Nave Creciente (Recreativos Franco S.A. Spanish bootleg)", GAME_SUPPORTS_SAVE )
+GAME( 1979, moonaln, galaxian, galaxian, superg, galaxian_state, galaxian, ROT90, "Namco / Nichibutsu (Karateco license?)", "Moon Alien", MACHINE_SUPPORTS_SAVE ) // or bootleg?
+GAME( 1979, superg, galaxian, galaxian, superg, galaxian_state, galaxian, ROT90, "hack", "Super Galaxians (galaxiana hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1979, galturbo, galaxian, galaxian, superg, galaxian_state, galaxian, ROT90, "hack", "Galaxian Turbo (superg hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1979, galapx, galaxian, galaxian, superg, galaxian_state, galaxian, ROT90, "hack", "Galaxian Part X (moonaln hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1979, galap1, galaxian, galaxian, superg, galaxian_state, galaxian, ROT90, "hack", "Space Invaders Galactica (galaxiana hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1979, galap4, galaxian, galaxian, superg, galaxian_state, galaxian, ROT90, "hack (G.G.I)", "Galaxian Part 4 (hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1979, swarm, galaxian, galaxian, swarm, galaxian_state, galaxian, ROT90, "bootleg? (Subelectro)", "Swarm (bootleg?)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, astrians, galaxian, galaxian, swarm, galaxian_state, galaxian, ROT90, "bootleg (BGV Ltd.)", "Astrians (clone of Swarm)", MACHINE_SUPPORTS_SAVE )
+GAME( 1979, zerotime, galaxian, galaxian, zerotime, galaxian_state, galaxian, ROT90, "bootleg? (Petaco S.A.)", "Zero Time", MACHINE_SUPPORTS_SAVE )
+GAME( 1979, zerotimed, galaxian, galaxian, zerotime, galaxian_state, galaxian, ROT90, "bootleg (Datamat)", "Zero Time (Datamat)", MACHINE_SUPPORTS_SAVE ) // a 1994 bootleg of the Petaco bootleg
+GAME( 1979, starfght, galaxian, galaxian, swarm, galaxian_state, galaxian, ROT90, "bootleg (Jeutel)", "Star Fighter", MACHINE_SUPPORTS_SAVE )
+GAME( 1979, galaxbsf, galaxian, galaxian, galaxian, galaxian_state, galaxian, ROT90, "bootleg", "Galaxian (bootleg, set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1979, galaxianbl, galaxian, galaxian, galaxianbl, galaxian_state, galaxian, ROT90, "bootleg", "Galaxian (bootleg, set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1979, galaxbsf2, galaxian, galaxian, galaxian, galaxian_state, galaxian, ROT90, "bootleg", "Galaxian (bootleg, set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, supergx, galaxian, galaxian, superg, galaxian_state, galaxian, ROT90, "Namco / Nichibutsu", "Super GX", MACHINE_NOT_WORKING | MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE )
+GAME( 19??, tst_galx, galaxian, galaxian, galaxian, galaxian_state, galaxian, ROT90, "<unknown>", "Galaxian Test ROM", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, galaxrf, galaxian, galaxian, galaxrf, galaxian_state, galaxian, ROT90, "bootleg (Recreativos Franco S.A.)", "Galaxian (Recreativos Franco S.A. Spanish bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, galaxrfgg, galaxian, galaxian, galaxrf, galaxian_state, galaxian, ROT90, "bootleg (Recreativos Franco S.A.)", "Galaxian Growing Galaxip / Galaxian Nave Creciente (Recreativos Franco S.A. Spanish bootleg)", MACHINE_SUPPORTS_SAVE )
/* other games on basic galaxian hardware */
-GAME( 1981, blkhole, 0, galaxian, blkhole, galaxian_state, galaxian, ROT90, "TDS & MINTS", "Black Hole", GAME_SUPPORTS_SAVE )
-GAME( 1982, orbitron, 0, galaxian, orbitron, galaxian_state, galaxian, ROT270, "Signatron USA", "Orbitron", GAME_SUPPORTS_SAVE )
-GAME( 1980, luctoday, 0, galaxian, luctoday, galaxian_state, galaxian, ROT270, "Sigma", "Lucky Today",GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
-GAME( 19??, chewing, luctoday, galaxian, luctoday, galaxian_state, galaxian, ROT90, "<unknown>", "Chewing Gum", GAME_SUPPORTS_SAVE )
-GAME( 1982, catacomb, 0, galaxian, catacomb, galaxian_state, galaxian, ROT90, "MTM Games", "Catacomb", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
-GAME( 19??, omega, theend, galaxian, omega, galaxian_state, galaxian, ROT270, "bootleg?", "Omega", GAME_SUPPORTS_SAVE )
-GAME( 1983, spcwarp, 0, galaxian, galaxian, galaxian_state, galaxian, ROT90, "Century Electronics", "Space Warp?", GAME_NOT_WORKING | GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
+GAME( 1981, blkhole, 0, galaxian, blkhole, galaxian_state, galaxian, ROT90, "TDS & MINTS", "Black Hole", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, orbitron, 0, galaxian, orbitron, galaxian_state, galaxian, ROT270, "Signatron USA", "Orbitron", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, luctoday, 0, galaxian, luctoday, galaxian_state, galaxian, ROT270, "Sigma", "Lucky Today",MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE )
+GAME( 19??, chewing, luctoday, galaxian, luctoday, galaxian_state, galaxian, ROT90, "<unknown>", "Chewing Gum", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, catacomb, 0, galaxian, catacomb, galaxian_state, galaxian, ROT90, "MTM Games", "Catacomb", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE )
+GAME( 19??, omega, theend, galaxian, omega, galaxian_state, galaxian, ROT270, "bootleg?", "Omega", MACHINE_SUPPORTS_SAVE )
/* these games require the coin lockout mechanism to be disabled */
-GAME( 1981, warofbug, 0, galaxian, warofbug, galaxian_state, nolock, ROT90, "Armenia / Food and Fun Corp", "War of the Bugs or Monsterous Manouvers in a Mushroom Maze", GAME_SUPPORTS_SAVE )
-GAME( 1981, warofbugu, warofbug, galaxian, warofbug, galaxian_state, nolock, ROT90, "Armenia / Super Video Games", "War of the Bugs or Monsterous Manouvers in a Mushroom Maze (US)", GAME_SUPPORTS_SAVE )
-GAME( 1981, warofbugg, warofbug, galaxian, warofbug, galaxian_state, nolock, ROT90, "Armenia", "War of the Bugs or Monsterous Manouvers in a Mushroom Maze (German)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1981, spactrai, warofbug, spactrai, warofbug, galaxian_state, nolock, ROT90, "Armenia / Adar", "Space Train", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1981, redufo, 0, galaxian, redufo, galaxian_state, nolock, ROT270, "Artic", "Defend the Terra Attack on the Red UFO", GAME_SUPPORTS_SAVE ) // is this the original?
-GAME( 1981, redufob, redufo, galaxian, redufob, galaxian_state, nolock, ROT90, "bootleg", "Defend the Terra Attack on the Red UFO (bootleg)", GAME_SUPPORTS_SAVE ) // rev A?
-GAME( 19??, exodus, redufo, galaxian, redufo, galaxian_state, nolock, ROT90, "bootleg? (Subelectro)", "Exodus (bootleg?)", GAME_SUPPORTS_SAVE )
-GAME( 1983, tdpgal, 0, galaxian, tdpgal, galaxian_state, nolock, ROT90, "Design Labs / Thomas Automatics", "Triple Draw Poker", GAME_SUPPORTS_SAVE )
-GAME( 1979, kamakazi3, galaxian, galaxian, superg, galaxian_state, nolock, ROT90, "hack", "Kamakazi III (superg hack)", GAME_SUPPORTS_SAVE )
+GAME( 1981, warofbug, 0, galaxian, warofbug, galaxian_state, nolock, ROT90, "Armenia / Food and Fun Corp", "War of the Bugs or Monsterous Manouvers in a Mushroom Maze", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, warofbugu, warofbug, galaxian, warofbug, galaxian_state, nolock, ROT90, "Armenia / Super Video Games", "War of the Bugs or Monsterous Manouvers in a Mushroom Maze (US)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, warofbugg, warofbug, galaxian, warofbug, galaxian_state, nolock, ROT90, "Armenia", "War of the Bugs or Monsterous Manouvers in a Mushroom Maze (German)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1981, spactrai, warofbug, spactrai, warofbug, galaxian_state, nolock, ROT90, "Armenia / Adar", "Space Train", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1981, redufo, 0, galaxian, redufo, galaxian_state, nolock, ROT270, "Artic", "Defend the Terra Attack on the Red UFO", MACHINE_SUPPORTS_SAVE ) // is this the original?
+GAME( 1981, redufob, redufo, galaxian, redufob, galaxian_state, nolock, ROT90, "bootleg", "Defend the Terra Attack on the Red UFO (bootleg)", MACHINE_SUPPORTS_SAVE ) // rev A?
+GAME( 19??, exodus, redufo, galaxian, redufo, galaxian_state, nolock, ROT90, "bootleg? (Subelectro)", "Exodus (bootleg?)", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, tdpgal, 0, galaxian, tdpgal, galaxian_state, nolock, ROT90, "Design Labs / Thomas Automatics", "Triple Draw Poker", MACHINE_SUPPORTS_SAVE )
+GAME( 1979, kamakazi3, galaxian, galaxian, superg, galaxian_state, nolock, ROT90, "hack", "Kamakazi III (superg hack)", MACHINE_SUPPORTS_SAVE )
/* different bullet color */
-GAME( 1982, azurian, 0, galaxian, azurian, galaxian_state, azurian, ROT90, "Rait Electronics Ltd", "Azurian Attack", GAME_SUPPORTS_SAVE )
+GAME( 1982, azurian, 0, galaxian, azurian, galaxian_state, azurian, ROT90, "Rait Electronics Ltd", "Azurian Attack", MACHINE_SUPPORTS_SAVE )
/* extra characters controlled via bank at $6002 */
-GAME( 19??, pisces, 0, galaxian, pisces, galaxian_state, pisces, ROT90, "Subelectro", "Pisces", GAME_SUPPORTS_SAVE )
-GAME( 19??, piscesb, pisces, galaxian, piscesb, galaxian_state, pisces, ROT90, "bootleg", "Pisces (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 19??, omni, pisces, galaxian, piscesb, galaxian_state, pisces, ROT90, "bootleg", "Omni", GAME_SUPPORTS_SAVE )
-GAME( 1980, uniwars, 0, galaxian, superg, galaxian_state, pisces, ROT90, "Irem", "UniWar S", GAME_SUPPORTS_SAVE )
-GAME( 1980, gteikoku, uniwars, galaxian, superg, galaxian_state, pisces, ROT90, "Irem", "Gingateikoku No Gyakushu", GAME_SUPPORTS_SAVE )
-GAME( 1980, gteikokb, uniwars, galaxian, gteikokb, galaxian_state, pisces, ROT270, "bootleg", "Gingateikoku No Gyakushu (bootleg set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1980, gteikob2, uniwars, galaxian, gteikob2, galaxian_state, pisces, ROT90, "bootleg", "Gingateikoku No Gyakushu (bootleg set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1980, spacbatt, uniwars, galaxian, spacbatt, galaxian_state, pisces, ROT90, "bootleg", "Space Battle (bootleg set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1980, spacbat2, uniwars, galaxian, spacbatt, galaxian_state, pisces, ROT90, "bootleg", "Space Battle (bootleg set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1980, spacempr, uniwars, galaxian, spacbatt, galaxian_state, pisces, ROT90, "bootleg", "Space Empire (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1980, skyraidr, uniwars, galaxian, superg, galaxian_state, pisces, ROT90, "bootleg", "Sky Raider (Uniwars bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1980, galemp, uniwars, galaxian, superg, galaxian_state, pisces, ROT90, "bootleg (Taito do Brasil)", "Galaxy Empire (bootleg?)", GAME_SUPPORTS_SAVE ) // clearly a hack, but was it licensed?
-GAME( 1980, asideral, uniwars, galaxian, asideral, galaxian_state, pisces, ROT90, "bootleg (Electrogame S.A.)", "Ataque Sideral (Spanish bootleg of UniWar S)", GAME_SUPPORTS_SAVE )
-GAME( 1980, pajaroes, uniwars, galaxian, asideral, galaxian_state, pisces, ROT90, "bootleg (PSV S.A.)", "Pajaro del Espacio (Spanish bootleg of UniWar S)", GAME_SUPPORTS_SAVE ) // very similar to above
-
+GAME( 19??, pisces, 0, galaxian, pisces, galaxian_state, pisces, ROT90, "Subelectro", "Pisces", MACHINE_SUPPORTS_SAVE )
+GAME( 19??, piscesb, pisces, galaxian, piscesb, galaxian_state, pisces, ROT90, "bootleg", "Pisces (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 19??, omni, pisces, galaxian, piscesb, galaxian_state, pisces, ROT90, "bootleg", "Omni", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, uniwars, 0, galaxian, superg, galaxian_state, pisces, ROT90, "Irem", "UniWar S", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, gteikoku, uniwars, galaxian, superg, galaxian_state, pisces, ROT90, "Irem", "Gingateikoku No Gyakushu", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, gteikokb, uniwars, galaxian, gteikokb, galaxian_state, pisces, ROT270, "bootleg", "Gingateikoku No Gyakushu (bootleg set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, gteikob2, uniwars, galaxian, gteikob2, galaxian_state, pisces, ROT90, "bootleg", "Gingateikoku No Gyakushu (bootleg set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, spacbatt, uniwars, galaxian, spacbatt, galaxian_state, pisces, ROT90, "bootleg", "Space Battle (bootleg set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, spacbat2, uniwars, galaxian, spacbatt, galaxian_state, pisces, ROT90, "bootleg", "Space Battle (bootleg set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, spacempr, uniwars, galaxian, spacbatt, galaxian_state, pisces, ROT90, "bootleg", "Space Empire (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, skyraidr, uniwars, galaxian, superg, galaxian_state, pisces, ROT90, "bootleg", "Sky Raider (Uniwars bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, galemp, uniwars, galaxian, superg, galaxian_state, pisces, ROT90, "bootleg (Taito do Brasil)", "Galaxy Empire (bootleg?)", MACHINE_SUPPORTS_SAVE ) // clearly a hack, but was it licensed?
+GAME( 1980, asideral, uniwars, galaxian, asideral, galaxian_state, pisces, ROT90, "bootleg (Electrogame S.A.)", "Ataque Sideral (Spanish bootleg of UniWar S)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, pajaroes, uniwars, galaxian, asideral, galaxian_state, pisces, ROT90, "bootleg (PSV S.A.)", "Pajaro del Espacio (Spanish bootleg of UniWar S)", MACHINE_SUPPORTS_SAVE ) // very similar to above
/* Artic Multi-System games - separate tile/sprite ROMs */
-GAME( 1980, streakng, 0, pacmanbl, streakng, galaxian_state, galaxian, ROT90, "Shoei", "Streaking (set 1)", GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE )
-GAME( 1980, streaknga, streakng, pacmanbl, streakng, galaxian_state, galaxian, ROT90, "Shoei", "Streaking (set 2)", GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE )
-GAME( 1981, pacmanbl, puckman, pacmanbl, pacmanbl, galaxian_state, pacmanbl, ROT270, "bootleg", "Pac-Man (Galaxian hardware, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1981, pacmanbla, puckman, pacmanbl, pacmanbl, galaxian_state, pacmanbl, ROT270, "bootleg", "Pac-Man (Galaxian hardware, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1981, ghostmun, puckman, pacmanbl, streakng, galaxian_state, ghostmun, ROT90, "bootleg (Leisure and Allied)", "Ghost Muncher", GAME_SUPPORTS_SAVE )
-GAME( 1981, phoenxp2, phoenix, galaxian, phoenxp2, galaxian_state, batman2, ROT270, "bootleg", "Phoenix Part 2", GAME_SUPPORTS_SAVE )
-GAME( 1981, batman2, phoenix, galaxian, batman2, galaxian_state, batman2, ROT270, "bootleg", "Batman Part 2", GAME_SUPPORTS_SAVE ) /* similar to pisces, but with different video banking characteristics */
-GAME( 1981, atlantisb, atlantis, galaxian, atlantib, galaxian_state, galaxian, ROT270, "bootleg", "Battle of Atlantis (bootleg)", GAME_SUPPORTS_SAVE ) // I don't know if this should have a starfield...
-GAME( 1982, tenspot, 0, tenspot, tenspot, galaxian_state, tenspot, ROT270, "Thomas Automatics", "Ten Spot", GAME_NOT_WORKING ) // work out how menu works
+GAME( 1980, streakng, 0, pacmanbl, streakng, galaxian_state, galaxian, ROT90, "Shoei", "Streaking (set 1)", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE )
+GAME( 1980, streaknga, streakng, pacmanbl, streakng, galaxian_state, galaxian, ROT90, "Shoei", "Streaking (set 2)", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE )
+GAME( 1981, pacmanbl, puckman, pacmanbl, pacmanbl, galaxian_state, pacmanbl, ROT270, "bootleg", "Pac-Man (Galaxian hardware, set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, pacmanbla, puckman, pacmanbl, pacmanbl, galaxian_state, pacmanbl, ROT270, "bootleg", "Pac-Man (Galaxian hardware, set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, ghostmun, puckman, pacmanbl, streakng, galaxian_state, ghostmun, ROT90, "bootleg (Leisure and Allied)", "Ghost Muncher", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, phoenxp2, phoenix, galaxian, phoenxp2, galaxian_state, batman2, ROT270, "bootleg", "Phoenix Part 2", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, batman2, phoenix, galaxian, batman2, galaxian_state, batman2, ROT270, "bootleg", "Batman Part 2", MACHINE_SUPPORTS_SAVE ) /* similar to pisces, but with different video banking characteristics */
+GAME( 1981, atlantisb, atlantis, galaxian, atlantib, galaxian_state, galaxian, ROT270, "bootleg", "Battle of Atlantis (bootleg)", MACHINE_SUPPORTS_SAVE ) // I don't know if this should have a starfield...
+GAME( 1982, tenspot, 0, tenspot, tenspot, galaxian_state, tenspot, ROT270, "Thomas Automatics", "Ten Spot", MACHINE_NOT_WORKING ) // work out how menu works
/* separate tile/sprite ROMs, plus INT instead of NMI */
-GAME( 1984, devilfsg, devilfsh, pacmanbl, devilfsg, galaxian_state, devilfsg, ROT270, "Vision / Artic", "Devil Fish (Galaxian hardware, bootleg?)", GAME_SUPPORTS_SAVE )
+GAME( 1984, devilfsg, devilfsh, pacmanbl, devilfsg, galaxian_state, devilfsg, ROT270, "Vision / Artic", "Devil Fish (Galaxian hardware, bootleg?)", MACHINE_SUPPORTS_SAVE )
/* sound hardware replaced with AY8910 */
-GAME( 1982, zigzag, 0, zigzag, zigzag, galaxian_state, zigzag, ROT90, "bootleg (LAX)", "Zig Zag (Galaxian hardware, set 1)", GAME_SUPPORTS_SAVE ) // maybe by Taito do Brasil?
-GAME( 1982, zigzag2, zigzag, zigzag, zigzag, galaxian_state, zigzag, ROT90, "bootleg (LAX)", "Zig Zag (Galaxian hardware, set 2)", GAME_SUPPORTS_SAVE ) // "
+// we're missing the original set by Taito do Brasil, we only have the bootlegs
+GAME( 1982, zigzagb, 0, zigzag, zigzag, galaxian_state, zigzag, ROT90, "bootleg (LAX)", "Zig Zag (Dig Dug conversion on Galaxian hardware, bootleg set 1)", MACHINE_SUPPORTS_SAVE ) // rewrite of Dig Dug (!) not a clone
+GAME( 1982, zigzagb2, zigzagb, zigzag, zigzag, galaxian_state, zigzag, ROT90, "bootleg (LAX)", "Zig Zag (Dig Dug conversion on Galaxian hardware, bootleg set 2)", MACHINE_SUPPORTS_SAVE )
/* multi-game select via external switch */
-GAME( 1981, gmgalax, 0, gmgalax, gmgalax, galaxian_state, gmgalax, ROT90, "bootleg", "Ghostmuncher Galaxian (bootleg)", GAME_SUPPORTS_SAVE )
+GAME( 1981, gmgalax, 0, gmgalax, gmgalax, galaxian_state, gmgalax, ROT90, "bootleg", "Ghostmuncher Galaxian (bootleg)", MACHINE_SUPPORTS_SAVE )
@@ -10835,73 +10892,74 @@ GAME( 1981, gmgalax, 0, gmgalax, gmgalax, galaxian_state, gmgal
*************************************/
/* based on Galaxian, but with altered address map for more ROM */
-GAME( 1980, mooncrst, 0, mooncrst, mooncrst, galaxian_state, mooncrst, ROT90, "Nichibutsu", "Moon Cresta (Nichibutsu)", GAME_SUPPORTS_SAVE )
-GAME( 1980, mooncrstuk, mooncrst, mooncrst, mooncrst, galaxian_state, mooncrst, ROT90, "Nichibutsu UK", "Moon Cresta (Nichibutsu UK)", GAME_SUPPORTS_SAVE )
-GAME( 1980, mooncrstuku, mooncrst, mooncrst, mooncrst, galaxian_state, mooncrsu, ROT90, "Nichibutsu UK", "Moon Cresta (Nichibutsu UK, unencrypted)", GAME_SUPPORTS_SAVE )
-GAME( 1980, mooncrstu, mooncrst, mooncrst, mooncrst, galaxian_state, mooncrsu, ROT90, "Nichibutsu USA", "Moon Cresta (Nichibutsu USA, unencrypted)", GAME_SUPPORTS_SAVE )
-GAME( 1980, mooncrsto, mooncrst, mooncrst, mooncrsa, galaxian_state, mooncrst, ROT90, "Nichibutsu", "Moon Cresta (Nichibutsu, old rev)", GAME_SUPPORTS_SAVE )
-GAME( 1980, mooncrstg, mooncrst, mooncrst, mooncrsg, galaxian_state, mooncrsu, ROT90, "Nichibutsu (Gremlin license)", "Moon Cresta (Gremlin)", GAME_SUPPORTS_SAVE )
+GAME( 1980, mooncrst, 0, mooncrst, mooncrst, galaxian_state, mooncrst, ROT90, "Nichibutsu", "Moon Cresta (Nichibutsu)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, mooncrstuk, mooncrst, mooncrst, mooncrst, galaxian_state, mooncrst, ROT90, "Nichibutsu UK", "Moon Cresta (Nichibutsu UK)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, mooncrstuku, mooncrst, mooncrst, mooncrst, galaxian_state, mooncrsu, ROT90, "Nichibutsu UK", "Moon Cresta (Nichibutsu UK, unencrypted)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, mooncrstu, mooncrst, mooncrst, mooncrst, galaxian_state, mooncrsu, ROT90, "Nichibutsu USA", "Moon Cresta (Nichibutsu USA, unencrypted)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, mooncrsto, mooncrst, mooncrst, mooncrsa, galaxian_state, mooncrst, ROT90, "Nichibutsu", "Moon Cresta (Nichibutsu, old rev)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, mooncrstg, mooncrst, mooncrst, mooncrsg, galaxian_state, mooncrsu, ROT90, "Nichibutsu (Gremlin license)", "Moon Cresta (Gremlin)", MACHINE_SUPPORTS_SAVE )
/* straight Moon Cresta ripoffs on basic mooncrst hardware */
-GAME( 1980, mooncrsb, mooncrst, mooncrst, mooncrsa, galaxian_state, mooncrsu, ROT90, "bootleg", "Moon Cresta (bootleg set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1980, mooncrs2, mooncrst, mooncrst, mooncrsa, galaxian_state, mooncrsu, ROT90, "bootleg", "Moon Cresta (bootleg set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1980, mooncrs3, mooncrst, mooncrst, mooncrst, galaxian_state, mooncrsu, ROT90, "bootleg (Jeutel)", "Moon Cresta (bootleg set 3)", GAME_SUPPORTS_SAVE ) /* Jeutel bootleg, similar to bootleg set 2 */
-GAME( 1980, mooncrs4, mooncrst, mooncrst, mooncrst, galaxian_state, mooncrsu, ROT90, "bootleg (SG-Florence)", "Moon Crest (Moon Cresta bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1980, fantazia, mooncrst, mooncrst, fantazia, galaxian_state, mooncrsu, ROT90, "bootleg? (Subelectro)", "Fantazia (bootleg?)", GAME_SUPPORTS_SAVE )
-GAME( 1980, eagle, mooncrst, mooncrst, mooncrsa, galaxian_state, mooncrsu, ROT90, "Nichibutsu (Centuri license)", "Eagle (set 1)", GAME_SUPPORTS_SAVE ) // or bootleg?
-GAME( 1980, eagle2, mooncrst, mooncrst, eagle2, galaxian_state, mooncrsu, ROT90, "Nichibutsu (Centuri license)", "Eagle (set 2)", GAME_SUPPORTS_SAVE ) // "
-GAME( 1980, eagle3, mooncrst, mooncrst, mooncrsa, galaxian_state, mooncrsu, ROT90, "Nichibutsu (Centuri license)", "Eagle (set 3)", GAME_SUPPORTS_SAVE ) // "
-GAME( 1981?,spctbird, mooncrst, mooncrst, eagle2, galaxian_state, mooncrsu, ROT90, "bootleg? (Fortrek)", "Space Thunderbird", GAME_SUPPORTS_SAVE )
-GAME( 1980?,smooncrs, mooncrst, mooncrst, smooncrs, galaxian_state, mooncrsu, ROT90, "Nichibutsu (Gremlin license)", "Super Moon Cresta", GAME_SUPPORTS_SAVE )
-GAME( 1980?,mooncptc, mooncrst, mooncrst, mooncptc, galaxian_state, mooncrsu, ROT90, "bootleg (Petaco S.A.)", "Moon Cresta (Petaco S.A. Spanish bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1980?,sstarcrs, mooncrst, mooncrst, mooncrsg, galaxian_state, mooncrsu, ROT90, "Nichibutsu (Taito do Brasil license)", "Super Star Crest", GAME_SUPPORTS_SAVE )
-GAME( 198?, mooncmw, mooncrst, mooncrst, mooncrsa, galaxian_state, mooncrsu, ROT90, "bootleg", "Moon War (Moon Cresta bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 198?, starfgmc, mooncrst, mooncrst, mooncrsa, galaxian_state, mooncrsu, ROT90, "bootleg (Samyra Engineering)", "Starfighter (Moon Cresta bootleg)", GAME_SUPPORTS_SAVE )
+GAME( 1980, mooncrsb, mooncrst, mooncrst, mooncrsa, galaxian_state, mooncrsu, ROT90, "bootleg", "Moon Cresta (bootleg set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, mooncrs2, mooncrst, mooncrst, mooncrsa, galaxian_state, mooncrsu, ROT90, "bootleg", "Moon Cresta (bootleg set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, mooncrs3, mooncrst, mooncrst, mooncrst, galaxian_state, mooncrsu, ROT90, "bootleg (Jeutel)", "Moon Cresta (bootleg set 3)", MACHINE_SUPPORTS_SAVE ) /* Jeutel bootleg, similar to bootleg set 2 */
+GAME( 1980, mooncrs4, mooncrst, mooncrst, mooncrst, galaxian_state, mooncrsu, ROT90, "bootleg (SG-Florence)", "Moon Crest (Moon Cresta bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, fantazia, mooncrst, mooncrst, fantazia, galaxian_state, mooncrsu, ROT90, "bootleg? (Subelectro)", "Fantazia (bootleg?)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, eagle, mooncrst, mooncrst, mooncrsa, galaxian_state, mooncrsu, ROT90, "Nichibutsu (Centuri license)", "Eagle (set 1)", MACHINE_SUPPORTS_SAVE ) // or bootleg?
+GAME( 1980, eagle2, mooncrst, mooncrst, eagle2, galaxian_state, mooncrsu, ROT90, "Nichibutsu (Centuri license)", "Eagle (set 2)", MACHINE_SUPPORTS_SAVE ) // "
+GAME( 1980, eagle3, mooncrst, mooncrst, mooncrsa, galaxian_state, mooncrsu, ROT90, "Nichibutsu (Centuri license)", "Eagle (set 3)", MACHINE_SUPPORTS_SAVE ) // "
+GAME( 1981?,spctbird, mooncrst, mooncrst, eagle2, galaxian_state, mooncrsu, ROT90, "bootleg? (Fortrek)", "Space Thunderbird", MACHINE_SUPPORTS_SAVE )
+GAME( 1980?,smooncrs, mooncrst, mooncrst, smooncrs, galaxian_state, mooncrsu, ROT90, "Nichibutsu (Gremlin license)", "Super Moon Cresta", MACHINE_SUPPORTS_SAVE )
+GAME( 1980?,mooncptc, mooncrst, mooncrst, mooncptc, galaxian_state, mooncrsu, ROT90, "bootleg (Petaco S.A.)", "Moon Cresta (Petaco S.A. Spanish bootleg)", MACHINE_SUPPORTS_SAVE )
+// there may be an alternate version called "Star Crest" according to flyers; is it the same?
+GAME( 1980?,sstarcrs, mooncrst, mooncrst, mooncrsg, galaxian_state, mooncrsu, ROT90, "Nichibutsu (Taito do Brasil license)", "Super Star Crest", MACHINE_SUPPORTS_SAVE )
+GAME( 198?, mooncmw, mooncrst, mooncrst, mooncrsa, galaxian_state, mooncrsu, ROT90, "bootleg", "Moon War (Moon Cresta bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 198?, starfgmc, mooncrst, mooncrst, mooncrsa, galaxian_state, mooncrsu, ROT90, "bootleg (Samyra Engineering)", "Starfighter (Moon Cresta bootleg)", MACHINE_SUPPORTS_SAVE )
// The boards were marked 'Space Dragon' although this doesn't appear in the games.
-GAME( 1980, spcdrag, mooncrst, mooncrst, smooncrs, galaxian_state, mooncrsu, ROT90, "bootleg", "Space Dragon (Moon Cresta bootleg, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1980, spcdraga, mooncrst, mooncrst, smooncrs, galaxian_state, mooncrsu, ROT90, "bootleg", "Space Dragon (Moon Cresta bootleg, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1980, mooncreg, mooncrst, mooncrst, mooncreg, galaxian_state, mooncrsu, ROT90, "bootleg (Electrogame S.A.)", "Moon Cresta (Electrogame S.A. Spanish bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1980, mooncrsl, mooncrst, mooncrst, mooncrsl, galaxian_state, mooncrsu, ROT90, "bootleg (Laguna S.A.)", "Cresta Mundo (Laguna S.A. Spanish Moon Cresta bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1980, stera, mooncrst, mooncrst, smooncrs, galaxian_state, mooncrsu, ROT90, "bootleg", "Steraranger (Moon Cresta bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1980, mooncrgx, mooncrst, galaxian, mooncrgx, galaxian_state, mooncrgx, ROT270, "bootleg", "Moon Cresta (Galaxian hardware)", GAME_SUPPORTS_SAVE )
-GAME( 1980, moonqsr, 0, moonqsr, moonqsr, galaxian_state, moonqsr, ROT90, "Nichibutsu", "Moon Quasar", GAME_SUPPORTS_SAVE )
-GAME( 1980, moonal2, galaxian, mooncrst, moonal2, galaxian_state, galaxian, ROT90, "Namco / Nichibutsu", "Moon Alien Part 2", GAME_SUPPORTS_SAVE )
-GAME( 1980, moonal2b, galaxian, mooncrst, moonal2, galaxian_state, galaxian, ROT90, "Namco / Nichibutsu", "Moon Alien Part 2 (older version)", GAME_SUPPORTS_SAVE )
+GAME( 1980, spcdrag, mooncrst, mooncrst, smooncrs, galaxian_state, mooncrsu, ROT90, "bootleg", "Space Dragon (Moon Cresta bootleg, set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, spcdraga, mooncrst, mooncrst, smooncrs, galaxian_state, mooncrsu, ROT90, "bootleg", "Space Dragon (Moon Cresta bootleg, set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, mooncreg, mooncrst, mooncrst, mooncreg, galaxian_state, mooncrsu, ROT90, "bootleg (Electrogame S.A.)", "Moon Cresta (Electrogame S.A. Spanish bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, mooncrsl, mooncrst, mooncrst, mooncrsl, galaxian_state, mooncrsu, ROT90, "bootleg (Laguna S.A.)", "Cresta Mundo (Laguna S.A. Spanish Moon Cresta bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, stera, mooncrst, mooncrst, smooncrs, galaxian_state, mooncrsu, ROT90, "bootleg", "Steraranger (Moon Cresta bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, mooncrgx, mooncrst, galaxian, mooncrgx, galaxian_state, mooncrgx, ROT270, "bootleg", "Moon Cresta (Galaxian hardware)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, moonqsr, 0, moonqsr, moonqsr, galaxian_state, moonqsr, ROT90, "Nichibutsu", "Moon Quasar", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, moonal2, galaxian, mooncrst, moonal2, galaxian_state, galaxian, ROT90, "Namco / Nichibutsu", "Moon Alien Part 2", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, moonal2b, galaxian, mooncrst, moonal2, galaxian_state, galaxian, ROT90, "Namco / Nichibutsu", "Moon Alien Part 2 (older version)", MACHINE_SUPPORTS_SAVE )
/* larger romspace, interrupt enable moved */
-GAME( 198?, thepitm, thepit, mooncrst, thepitm, galaxian_state, thepitm, ROT90, "bootleg (KZH)", "The Pit (bootleg on Moon Quasar hardware)", GAME_SUPPORTS_SAVE ) // on an original MQ-2FJ pcb, even if the memory map appears closer to Moon Cresta
-
+GAME( 198?, thepitm, thepit, mooncrst, thepitm, galaxian_state, thepitm, ROT90, "bootleg (KZH)", "The Pit (bootleg on Moon Quasar hardware)", MACHINE_SUPPORTS_SAVE ) // on an original MQ-2FJ pcb, even if the memory map appears closer to Moon Cresta
/* other games on basic mooncrst hardware */
-GAME( 1982, skybase, 0, mooncrst, skybase, galaxian_state, skybase, ROT90, "Omori Electric Co., Ltd.", "Sky Base", GAME_SUPPORTS_SAVE )
-GAME( 198?, kong, 0, mooncrst, kong, galaxian_state, kong, ROT90, "Taito do Brasil", "Kong (Donkey Kong conversion on Galaxian hardware)", GAME_SUPPORTS_SAVE | GAME_WRONG_COLORS ) // rewrite of Donkey Kong (!) not a clone
+GAME( 1982, skybase, 0, mooncrst, skybase, galaxian_state, skybase, ROT90, "Omori Electric Co., Ltd.", "Sky Base", MACHINE_SUPPORTS_SAVE )
+GAME( 198?, kong, 0, mooncrst, kong, galaxian_state, kong, ROT90, "Taito do Brasil", "Kong (Donkey Kong conversion on Galaxian hardware)", MACHINE_SUPPORTS_SAVE | MACHINE_WRONG_COLORS ) // rewrite of Donkey Kong (!) not a clone
/* larger romspace, 2*AY8910, based on Super Star Crest board? */
-GAME( 198?, fantastc, 0, fantastc, fantastc, galaxian_state, fantastc, ROT90, "Taito do Brasil", "Fantastic (Galaga conversion on Galaxian hardware)", GAME_SUPPORTS_SAVE ) // rewrite of Galaga (!) not a clone
+// there may be an alternate version called "Fantasy" according to flyers; is it the same?
+GAME( 198?, fantastc, 0, fantastc, fantastc, galaxian_state, fantastc, ROT90, "Taito do Brasil", "Fantastic (Galaga conversion on Galaxian hardware)", MACHINE_SUPPORTS_SAVE ) // rewrite of Galaga (!) not a clone
/* like fantastc, plus larger spriteram, and maybe different bullet hw(?) */
-GAME( 198?, timefgtr, 0, timefgtr, timefgtr, galaxian_state, timefgtr, ROT90, "Taito do Brasil", "Time Fighter (Time Pilot conversion on Galaxian hardware)", GAME_SUPPORTS_SAVE | GAME_WRONG_COLORS ) // rewrite of Time Pilot (!) not a clone
+GAME( 198?, timefgtr, 0, timefgtr, timefgtr, galaxian_state, timefgtr, ROT90, "Taito do Brasil", "Time Fighter (Time Pilot conversion on Galaxian hardware)", MACHINE_SUPPORTS_SAVE | MACHINE_WRONG_COLORS ) // rewrite of Time Pilot (!) not a clone
/* extra ROMs, protection, and sound hardware replaced with AY8910 */
-GAME( 1981, jumpbug, 0, jumpbug, jumpbug, galaxian_state, jumpbug, ROT90, "Hoei (Rock-Ola license)", "Jump Bug", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND ) // or by Alpha Denshi Co. under contract from Hoei?
-GAME( 1981, jumpbugb, jumpbug, jumpbug, jumpbug, galaxian_state, jumpbug, ROT90, "bootleg", "Jump Bug (bootleg)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND ) // bootleg of Sega license
-GAME( 1983, levers, 0, jumpbug, levers, galaxian_state, jumpbug, ROT90, "Rock-Ola", "Levers", GAME_SUPPORTS_SAVE )
+GAME( 1981, jumpbug, 0, jumpbug, jumpbug, galaxian_state, jumpbug, ROT90, "Hoei (Rock-Ola license)", "Jump Bug", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) // or by Alpha Denshi Co. under contract from Hoei?
+GAME( 1981, jumpbugb, jumpbug, jumpbug, jumpbug, galaxian_state, jumpbug, ROT90, "bootleg", "Jump Bug (bootleg)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND ) // bootleg of Sega license
+GAME( 1983, levers, 0, jumpbug, levers, galaxian_state, jumpbug, ROT90, "Rock-Ola", "Levers", MACHINE_SUPPORTS_SAVE )
/* 2nd CPU driving AY8910 for sound */
-GAME( 1982, checkman, 0, checkman, checkman, galaxian_state, checkman, ROT90, "Zilec-Zenitone", "Check Man", GAME_SUPPORTS_SAVE )
-GAME( 1982, checkmanj, checkman, checkmaj, checkmaj, galaxian_state, checkmaj, ROT90, "Zilec-Zenitone (Jaleco license)", "Check Man (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1983, dingo, 0, checkmaj, dingo, galaxian_state, dingo, ROT90, "Ashby Computers and Graphics Ltd. (Jaleco license)", "Dingo", GAME_SUPPORTS_SAVE )
-GAME( 1983, dingoe, dingo, checkman, dingo, galaxian_state, dingoe, ROT90, "Ashby Computers and Graphics Ltd.", "Dingo (encrypted)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
+GAME( 1982, checkman, 0, checkman, checkman, galaxian_state, checkman, ROT90, "Zilec-Zenitone", "Check Man", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, checkmanj, checkman, checkmaj, checkmaj, galaxian_state, checkmaj, ROT90, "Zilec-Zenitone (Jaleco license)", "Check Man (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, dingo, 0, checkmaj, dingo, galaxian_state, dingo, ROT90, "Ashby Computers and Graphics Ltd. (Jaleco license)", "Dingo", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, dingoe, dingo, checkman, dingo, galaxian_state, dingoe, ROT90, "Ashby Computers and Graphics Ltd.", "Dingo (encrypted)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
/* Crazy Climber sound plus AY8910 instead of galaxian sound, plus INT instead of NMI */
-GAME( 1981, mshuttle, 0, mshuttle, mshuttle, galaxian_state, mshuttle, ROT0, "Nichibutsu", "Moon Shuttle (US? set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1981, mshuttle2, mshuttle, mshuttle, mshuttle, galaxian_state, mshuttle, ROT0, "Nichibutsu", "Moon Shuttle (US? set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1981, mshuttlej, mshuttle, mshuttle, mshuttle, galaxian_state, mshuttlj, ROT0, "Nichibutsu", "Moon Shuttle (Japan set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1981, mshuttlej2, mshuttle, mshuttle, mshuttle, galaxian_state, mshuttlj, ROT0, "Nichibutsu", "Moon Shuttle (Japan set 2)", GAME_SUPPORTS_SAVE )
+GAME( 1981, mshuttle, 0, mshuttle, mshuttle, galaxian_state, mshuttle, ROT0, "Nichibutsu", "Moon Shuttle (US? set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, mshuttle2, mshuttle, mshuttle, mshuttle, galaxian_state, mshuttle, ROT0, "Nichibutsu", "Moon Shuttle (US? set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, mshuttlej, mshuttle, mshuttle, mshuttle, galaxian_state, mshuttlj, ROT0, "Nichibutsu", "Moon Shuttle (Japan set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, mshuttlej2, mshuttle, mshuttle, mshuttle, galaxian_state, mshuttlj, ROT0, "Nichibutsu", "Moon Shuttle (Japan set 2)", MACHINE_SUPPORTS_SAVE )
/* 2nd CPU driving DAC for sound */
-GAME( 1980, kingball, 0, kingball, kingball, galaxian_state, kingball, ROT90, "Namco", "King & Balloon (US)", GAME_SUPPORTS_SAVE )
-GAME( 1980, kingballj, kingball, kingball, kingball, galaxian_state, kingball, ROT90, "Namco", "King & Balloon (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1980, kingball, 0, kingball, kingball, galaxian_state, kingball, ROT90, "Namco", "King & Balloon (US)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, kingballj, kingball, kingball, kingball, galaxian_state, kingball, ROT90, "Namco", "King & Balloon (Japan)", MACHINE_SUPPORTS_SAVE )
@@ -10913,16 +10971,16 @@ GAME( 1980, kingballj, kingball, kingball, kingball, galaxian_state, kingb
*************************************/
/* Frogger based hardware: 2nd Z80, AY-8910A, 2 8255 PPI for I/O, custom background */
-GAME( 1981, frogger, 0, frogger, frogger, galaxian_state, frogger, ROT90, "Konami", "Frogger", GAME_SUPPORTS_SAVE )
-GAME( 1981, froggers1, frogger, frogger, frogger, galaxian_state, frogger, ROT90, "Konami (Sega license)", "Frogger (Sega set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1981, froggers2, frogger, frogger, frogger, galaxian_state, frogger, ROT90, "Konami (Sega license)", "Frogger (Sega set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1981, froggermc, frogger, froggrmc, froggrmc, galaxian_state, froggrmc, ROT90, "Konami (Sega license)", "Frogger (Moon Cresta hardware)", GAME_SUPPORTS_SAVE )
-GAME( 1981, froggers, frogger, froggers, frogger, galaxian_state, froggers, ROT90, "bootleg", "Frog", GAME_SUPPORTS_SAVE )
-GAME( 1981, frogf, frogger, frogf, frogger, galaxian_state, froggers, ROT90, "bootleg (Falcon)", "Frog (Falcon bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1981, frogg, frogger, galaxian, frogg, galaxian_state, frogg, ROT90, "bootleg", "Frog (Galaxian hardware)", GAME_SUPPORTS_SAVE )
-GAME( 1981, froggrs, frogger, froggers, frogger, galaxian_state, froggrs, ROT90, "bootleg (Coin Music)", "Frogger (Scramble hardware)", GAME_SUPPORTS_SAVE )
-GAME( 1981, quaak, frogger, quaak, frogger, galaxian_state, quaak, ROT90, "bootleg", "Quaak (bootleg of Frogger)", GAME_SUPPORTS_SAVE ) // closest to Super Cobra hardware, presumably a bootleg from Germany (Quaak is the German frog sound)
-GAME( 1981, froggeram, frogger, froggeram, frogger, galaxian_state, quaak, ROT90, "bootleg", "Frogger (bootleg on Amigo? hardware)", GAME_NOT_WORKING ) // meant to be Amigo hardware, but maybe a different bootleg than the one we have?
+GAME( 1981, frogger, 0, frogger, frogger, galaxian_state, frogger, ROT90, "Konami", "Frogger", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, froggers1, frogger, frogger, frogger, galaxian_state, frogger, ROT90, "Konami (Sega license)", "Frogger (Sega set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, froggers2, frogger, frogger, frogger, galaxian_state, frogger, ROT90, "Konami (Sega license)", "Frogger (Sega set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, froggermc, frogger, froggermc, froggermc, galaxian_state, froggermc, ROT90, "Konami (Sega license)", "Frogger (Moon Cresta hardware)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, froggers, frogger, froggers, frogger, galaxian_state, froggers, ROT90, "bootleg", "Frog", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, frogf, frogger, frogf, frogger, galaxian_state, froggers, ROT90, "bootleg (Falcon)", "Frog (Falcon bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, frogg, frogger, galaxian, frogg, galaxian_state, frogg, ROT90, "bootleg", "Frog (Galaxian hardware)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, froggrs, frogger, froggers, frogger, galaxian_state, froggrs, ROT90, "bootleg (Coin Music)", "Frogger (Scramble hardware)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, quaak, frogger, quaak, frogger, galaxian_state, quaak, ROT90, "bootleg", "Quaak (bootleg of Frogger)", MACHINE_SUPPORTS_SAVE ) // closest to Super Cobra hardware, presumably a bootleg from Germany (Quaak is the German frog sound)
+GAME( 1981, froggeram, frogger, froggeram, frogger, galaxian_state, quaak, ROT90, "bootleg", "Frogger (bootleg on Amigo? hardware)", MACHINE_NOT_WORKING ) // meant to be Amigo hardware, but maybe a different bootleg than the one we have?
/*
@@ -10931,54 +10989,51 @@ GAME( 1981, froggeram, frogger, froggeram, frogger, galaxian_state, quaak
CPU/Video Board: KT-4108-2
Sound Board: KT-4108-1
*/
-GAME( 1981, turtles, 0, turtles, turtles, galaxian_state, turtles, ROT90, "Konami (Stern Electronics license)", "Turtles", GAME_SUPPORTS_SAVE )
-GAME( 1981, turpin, turtles, turtles, turpin, galaxian_state, turtles, ROT90, "Konami (Sega license)", "Turpin", GAME_SUPPORTS_SAVE )
-GAME( 1981, 600, turtles, turtles, turtles, galaxian_state, turtles, ROT90, "Konami", "600", GAME_SUPPORTS_SAVE )
+GAME( 1981, turtles, 0, turtles, turtles, galaxian_state, turtles, ROT90, "Konami (Stern Electronics license)", "Turtles", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, turpin, turtles, turtles, turpin, galaxian_state, turtles, ROT90, "Konami (Sega license)", "Turpin", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, 600, turtles, turtles, turtles, galaxian_state, turtles, ROT90, "Konami", "600", MACHINE_SUPPORTS_SAVE )
-GAME( 1982, amidar, 0, turtles, amidaru, galaxian_state, turtles, ROT90, "Konami", "Amidar", GAME_SUPPORTS_SAVE )
-GAME( 1981, amidar1, amidar, turtles, amidar, galaxian_state, turtles, ROT90, "Konami", "Amidar (older)", GAME_SUPPORTS_SAVE )
-GAME( 1982, amidaru, amidar, turtles, amidaru, galaxian_state, turtles, ROT90, "Konami (Stern Electronics license)", "Amidar (Stern Electronics)", GAME_SUPPORTS_SAVE )
-GAME( 1982, amidaro, amidar, turtles, amidaro, galaxian_state, turtles, ROT90, "Konami (Olympia license)", "Amidar (Olympia)", GAME_SUPPORTS_SAVE )
-GAME( 1982, amidarb, amidar, turtles, amidaru, galaxian_state, turtles, ROT90, "bootleg", "Amidar (bootleg)", GAME_SUPPORTS_SAVE ) /* similar to Amigo bootleg */
-GAME( 1982, amigo, amidar, turtles, amidaru, galaxian_state, turtles, ROT90, "bootleg", "Amigo", GAME_SUPPORTS_SAVE )
-GAME( 1982, amidars, amidar, scramble, amidars, galaxian_state, scramble, ROT90, "Konami", "Amidar (Scramble hardware)", GAME_SUPPORTS_SAVE )
+GAME( 1982, amidar, 0, turtles, amidaru, galaxian_state, turtles, ROT90, "Konami", "Amidar", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, amidar1, amidar, turtles, amidar, galaxian_state, turtles, ROT90, "Konami", "Amidar (older)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, amidaru, amidar, turtles, amidaru, galaxian_state, turtles, ROT90, "Konami (Stern Electronics license)", "Amidar (Stern Electronics)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, amidaro, amidar, turtles, amidaro, galaxian_state, turtles, ROT90, "Konami (Olympia license)", "Amidar (Olympia)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, amidarb, amidar, turtles, amidaru, galaxian_state, turtles, ROT90, "bootleg", "Amidar (bootleg)", MACHINE_SUPPORTS_SAVE ) /* similar to Amigo bootleg */
+GAME( 1982, amigo, amidar, turtles, amidaru, galaxian_state, turtles, ROT90, "bootleg", "Amigo", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, amidars, amidar, scramble, amidars, galaxian_state, scramble, ROT90, "Konami", "Amidar (Scramble hardware)", MACHINE_SUPPORTS_SAVE )
/* The End/Scramble based hardware */
-GAME( 1980, theend, 0, theend, theend, galaxian_state, theend, ROT90, "Konami", "The End", GAME_SUPPORTS_SAVE )
-GAME( 1980, theends, theend, theend, theend, galaxian_state, theend, ROT90, "Konami (Stern Electronics license)", "The End (Stern Electronics)", GAME_SUPPORTS_SAVE )
-GAME( 1980, theendb, theend, theend, theend, galaxian_state, theend, ROT90, "bootleg?", "The End (bootleg?)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-
-GAME( 1981, scramble, 0, scramble, scramble, galaxian_state, scramble, ROT90, "Konami", "Scramble", GAME_SUPPORTS_SAVE )
-GAME( 1981, scrambles, scramble, scramble, scramble, galaxian_state, scramble, ROT90, "Konami (Stern Electronics license)", "Scramble (Stern Electronics set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1981, scrambles2, scramble, scramble, scramble, galaxian_state, scramble, ROT90, "Konami (Stern Electronics license)", "Scramble (Stern Electronics set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1981, strfbomb, scramble, scramble, strfbomb, galaxian_state, scramble, ROT90, "bootleg (Omni)", "Strafe Bomb (bootleg of Scramble)", GAME_SUPPORTS_SAVE )
-GAME( 1981, explorer, scramble, explorer, explorer, galaxian_state, explorer, ROT90, "bootleg (Sidam)", "Explorer (bootleg of Scramble)", GAME_SUPPORTS_SAVE )
-GAME( 1981, scramblebf, scramble, scramble, scramble, galaxian_state, scramble, ROT90, "bootleg (Karateko)", "Scramble (Karateko, French bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1981, scrambp, scramble, scramble, scramble, galaxian_state, scramble, ROT90, "bootleg (Billport S.A.)", "Impacto (Billport S.A., Spanish bootleg of Scramble)", GAME_SUPPORTS_SAVE ) // similar to the Karateko set above
-GAME( 1981, scramce, scramble, scramble, scramble, galaxian_state, scramble, ROT90, "bootleg (Centromatic S.A.)", "Scramble (Centromatic S.A., Spanish bootleg)", GAME_SUPPORTS_SAVE ) // similar to above
-GAME( 1981, scrampt, scramble, scramble, scramble, galaxian_state, scramble, ROT90, "bootleg (Petaco S.A.)", "Scramble (Petaco S.A., Spanish bootleg)", GAME_SUPPORTS_SAVE ) // ^^
-GAME( 1981, scramrf, scramble, scramble, scramble, galaxian_state, scramble, ROT90, "bootleg (Recreativos Franco)", "Scramble (Recreativos Franco, Spanish bootleg)", GAME_SUPPORTS_SAVE )
-
-
-
-GAME( 1981, scramblebb, scramble, scramble, scramble, galaxian_state, scramble, ROT90, "bootleg?", "Scramble (bootleg?)", GAME_SUPPORTS_SAVE )
-GAME( 198?, bomber, scramble, scramble, scramble, galaxian_state, scramble, ROT90, "bootleg (Alca)", "Bomber (bootleg of Scramble)", GAME_SUPPORTS_SAVE )
-
-GAME( 1981, atlantis, 0, theend, atlantis, galaxian_state, atlantis, ROT90, "Comsoft", "Battle of Atlantis (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1981, atlantis2, atlantis, theend, atlantis, galaxian_state, atlantis, ROT90, "Comsoft", "Battle of Atlantis (set 2)", GAME_SUPPORTS_SAVE )
+GAME( 1980, theend, 0, theend, theend, galaxian_state, theend, ROT90, "Konami", "The End", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, theends, theend, theend, theend, galaxian_state, theend, ROT90, "Konami (Stern Electronics license)", "The End (Stern Electronics)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, theendb, theend, theend, theend, galaxian_state, theend, ROT90, "bootleg?", "The End (bootleg?)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+
+GAME( 1981, scramble, 0, scramble, scramble, galaxian_state, scramble, ROT90, "Konami", "Scramble", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, scrambles, scramble, scramble, scramble, galaxian_state, scramble, ROT90, "Konami (Stern Electronics license)", "Scramble (Stern Electronics set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, scrambles2, scramble, scramble, scramble, galaxian_state, scramble, ROT90, "Konami (Stern Electronics license)", "Scramble (Stern Electronics set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, strfbomb, scramble, scramble, strfbomb, galaxian_state, scramble, ROT90, "bootleg (Omni)", "Strafe Bomb (bootleg of Scramble)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, explorer, scramble, explorer, explorer, galaxian_state, explorer, ROT90, "bootleg (Sidam)", "Explorer (bootleg of Scramble)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, scramblebf, scramble, scramble, scramble, galaxian_state, scramble, ROT90, "bootleg (Karateko)", "Scramble (Karateko, French bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, scrambp, scramble, scramble, scramble, galaxian_state, scramble, ROT90, "bootleg (Billport S.A.)", "Impacto (Billport S.A., Spanish bootleg of Scramble)", MACHINE_SUPPORTS_SAVE ) // similar to the Karateko set above
+GAME( 1981, scramce, scramble, scramble, scramble, galaxian_state, scramble, ROT90, "bootleg (Centromatic S.A.)", "Scramble (Centromatic S.A., Spanish bootleg)", MACHINE_SUPPORTS_SAVE ) // similar to above
+GAME( 1981, scrampt, scramble, scramble, scramble, galaxian_state, scramble, ROT90, "bootleg (Petaco S.A.)", "Scramble (Petaco S.A., Spanish bootleg)", MACHINE_SUPPORTS_SAVE ) // ^^
+GAME( 1981, scramrf, scramble, scramble, scramble, galaxian_state, scramble, ROT90, "bootleg (Recreativos Franco)", "Scramble (Recreativos Franco, Spanish bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, scramblebb, scramble, scramble, scramble, galaxian_state, scramble, ROT90, "bootleg?", "Scramble (bootleg?)", MACHINE_SUPPORTS_SAVE )
+GAME( 198?, bomber, scramble, scramble, scramble, galaxian_state, scramble, ROT90, "bootleg (Alca)", "Bomber (bootleg of Scramble)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1981, atlantis, 0, theend, atlantis, galaxian_state, atlantis, ROT90, "Comsoft", "Battle of Atlantis (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, atlantis2, atlantis, theend, atlantis, galaxian_state, atlantis, ROT90, "Comsoft", "Battle of Atlantis (set 2)", MACHINE_SUPPORTS_SAVE )
/* Scorpion hardware; based on Scramble but with a 3rd AY-8910 and a speech chip */
-GAME( 1982, scorpion, 0, scorpion, scorpion, galaxian_state, scorpion, ROT90, "Zaccaria", "Scorpion (set 1)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE)
-GAME( 1982, scorpiona, scorpion, scorpion, scorpion, galaxian_state, scorpion, ROT90, "Zaccaria", "Scorpion (set 2)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE)
-GAME( 1982, scorpionb, scorpion, scorpion, scorpion, galaxian_state, scorpion, ROT90, "Zaccaria", "Scorpion (set 3)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE)
-GAME( 19??, scorpionmc, scorpion, mooncrst, scorpnmc, galaxian_state, scorpnmc, ROT90, "bootleg? (Dorneer)", "Scorpion (Moon Cresta hardware)", GAME_SUPPORTS_SAVE )
-GAME( 19??, aracnis, scorpion, mooncrst, aracnis, galaxian_state, scorpnmc, ROT90, "bootleg", "Aracnis (bootleg of Scorpion on Moon Cresta hardware)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS )
+GAME( 1982, scorpion, 0, scorpion, scorpion, galaxian_state, scorpion, ROT90, "Zaccaria", "Scorpion (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE)
+GAME( 1982, scorpiona, scorpion, scorpion, scorpion, galaxian_state, scorpion, ROT90, "Zaccaria", "Scorpion (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE)
+GAME( 1982, scorpionb, scorpion, scorpion, scorpion, galaxian_state, scorpion, ROT90, "Zaccaria", "Scorpion (set 3)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE)
+GAME( 19??, scorpionmc, scorpion, mooncrst, scorpnmc, galaxian_state, scorpnmc, ROT90, "bootleg? (Dorneer)", "Scorpion (Moon Cresta hardware)", MACHINE_SUPPORTS_SAVE )
+GAME( 19??, aracnis, scorpion, mooncrst, aracnis, galaxian_state, scorpnmc, ROT90, "bootleg", "Aracnis (bootleg of Scorpion on Moon Cresta hardware)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS )
/* SF-X hardware; based on Scramble with extra Z80 and 8255 driving a DAC-based sample player */
-GAME( 1983, sfx, 0, sfx, sfx, galaxian_state, sfx, ORIENTATION_FLIP_X, "Nichibutsu", "SF-X", GAME_SUPPORTS_SAVE )
-GAME( 1983, skelagon, sfx, sfx, sfx, galaxian_state, sfx, ORIENTATION_FLIP_X, "Nichibutsu USA", "Skelagon", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE)
-GAME( 1982, monsterz, 0, monsterz, sfx, galaxian_state, sfx, ORIENTATION_FLIP_X, "Nihon Game", "Monster Zero", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
+GAME( 1983, sfx, 0, sfx, sfx, galaxian_state, sfx, ORIENTATION_FLIP_X, "Nichibutsu", "SF-X", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, skelagon, sfx, sfx, sfx, galaxian_state, sfx, ORIENTATION_FLIP_X, "Nichibutsu USA", "Skelagon", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE)
+GAME( 1982, monsterz, 0, monsterz, sfx, galaxian_state, sfx, ORIENTATION_FLIP_X, "Nihon Game", "Monster Zero", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
/*
@@ -10987,19 +11042,21 @@ GAME( 1982, monsterz, 0, monsterz, sfx, galaxian_state, sfx,
CPU/Video Board: A969
Sound Board: A970
*/
-GAME( 1981, scobra, 0, scobra, scobra, galaxian_state, scobra, ROT90, "Konami", "Super Cobra", GAME_SUPPORTS_SAVE )
-GAME( 1981, scobrase, scobra, scobra, scobra, galaxian_state, scobra, ROT90, "Konami (Sega license)", "Super Cobra (Sega)", GAME_SUPPORTS_SAVE )
-GAME( 1981, scobras, scobra, scobra, scobras, galaxian_state, scobra, ROT90, "Konami (Stern Electronics license)", "Super Cobra (Stern Electronics)", GAME_SUPPORTS_SAVE )
-GAME( 1981, scobrab, scobra, scobra, scobras, galaxian_state, scobra, ROT90, "bootleg", "Super Cobra (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1981, suprheli, scobra, scobra, scobras, galaxian_state, scobra, ROT90, "bootleg", "Super Heli (Super Cobra bootleg)", GAME_SUPPORTS_SAVE )
+GAME( 1981, scobra, 0, scobra, scobra, galaxian_state, scobra, ROT90, "Konami", "Super Cobra", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, scobrase, scobra, scobra, scobra, galaxian_state, scobra, ROT90, "Konami (Sega license)", "Super Cobra (Sega)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, scobras, scobra, scobra, scobras, galaxian_state, scobra, ROT90, "Konami (Stern Electronics license)", "Super Cobra (Stern Electronics)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, scobrae, scobra, scobra, scobras, galaxian_state, scobrae, ROT90, "Konami (Stern Electronics license)", "Super Cobra (Stern Electronics) (encrypted, KONATEC XC-103SS CPU)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, scobrab, scobra, scobra, scobras, galaxian_state, scobra, ROT90, "bootleg", "Super Cobra (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, suprheli, scobra, scobra, scobras, galaxian_state, scobra, ROT90, "bootleg", "Super Heli (Super Cobra bootleg)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1981, moonwar, 0, moonwar, moonwar, galaxian_state, moonwar, ROT90, "Stern Electronics", "Moonwar", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, moonwara, moonwar, moonwar, moonwara, galaxian_state, moonwar, ROT90, "Stern Electronics", "Moonwar (older)", MACHINE_SUPPORTS_SAVE )
-GAME( 1981, moonwar, 0, moonwar, moonwar, galaxian_state, moonwar, ROT90, "Stern Electronics", "Moonwar", GAME_SUPPORTS_SAVE )
-GAME( 1981, moonwara, moonwar, moonwar, moonwara, galaxian_state, moonwar, ROT90, "Stern Electronics", "Moonwar (older)", GAME_SUPPORTS_SAVE )
+GAME( 1981, armorcar, 0, scobra, armorcar, galaxian_state, scobra, ROT90, "Stern Electronics", "Armored Car (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, armorcar2, armorcar, scobra, armorcar2, galaxian_state, scobra, ROT90, "Stern Electronics", "Armored Car (set 2)", MACHINE_SUPPORTS_SAVE )
-GAME( 1981, armorcar, 0, scobra, armorcar, galaxian_state, scobra, ROT90, "Stern Electronics", "Armored Car (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1981, armorcar2, armorcar, scobra, armorcar2, galaxian_state, scobra, ROT90, "Stern Electronics", "Armored Car (set 2)", GAME_SUPPORTS_SAVE )
+GAME( 1982, tazmania, 0, scobra, tazmania, galaxian_state, scobra, ROT90, "Stern Electronics", "Tazz-Mania (set 1)", MACHINE_SUPPORTS_SAVE )
-GAME( 1982, tazmania, 0, scobra, tazmania, galaxian_state, scobra, ROT90, "Stern Electronics", "Tazz-Mania (set 1)", GAME_SUPPORTS_SAVE )
/*
Anteater (sold as conversion kit)
@@ -11007,11 +11064,12 @@ GAME( 1982, tazmania, 0, scobra, tazmania, galaxian_state, scobr
CPU/Video Board: A969 (Has various wire mods)
Sound Board: A970
*/
-GAME( 1982, anteater, 0, anteater, anteater, galaxian_state, anteater, ROT90, "Tago Electronics", "Anteater", GAME_SUPPORTS_SAVE )
-GAME( 1982, anteateruk, anteater, anteateruk, anteateruk, galaxian_state, anteateruk, ROT90, "Tago Electronics (Free Enterprise Games license", "The Anteater (UK)", GAME_SUPPORTS_SAVE ) // distributed in 1983
-GAME( 1982, anteaterg, anteater, anteaterg, anteateruk, galaxian_state, anteateruk, ROT90, "Tago Electronics (TV-Tuning license from Free Enterprise Games)", "Ameisenbaer (German)", GAME_SUPPORTS_SAVE )
+GAME( 1982, anteater, 0, anteater, anteater, galaxian_state, anteater, ROT90, "Tago Electronics", "Anteater", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, anteateruk, anteater, anteateruk, anteateruk, galaxian_state, anteateruk, ROT90, "Tago Electronics (Free Enterprise Games license", "The Anteater (UK)", MACHINE_SUPPORTS_SAVE ) // distributed in 1983
+GAME( 1982, anteaterg, anteater, anteaterg, anteateruk, galaxian_state, anteateruk, ROT90, "Tago Electronics (TV-Tuning license from Free Enterprise Games)", "Ameisenbaer (German)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1982, calipso, 0, scobra, calipso, galaxian_state, calipso, ROT90, "Tago Electronics", "Calipso", MACHINE_SUPPORTS_SAVE )
-GAME( 1982, calipso, 0, scobra, calipso, galaxian_state, calipso, ROT90, "Tago Electronics", "Calipso", GAME_SUPPORTS_SAVE )
/*
Lost Tomb
@@ -11019,9 +11077,9 @@ GAME( 1982, calipso, 0, scobra, calipso, galaxian_state, calip
CPU/Video Board: A969 (Has various wire mods)
Sound Board: A2048
*/
-GAME( 1982, losttomb, 0, scobra, losttomb, galaxian_state, losttomb, ROT90, "Stern Electronics", "Lost Tomb (easy)", GAME_SUPPORTS_SAVE )
-GAME( 1982, losttombh, losttomb, scobra, losttomb, galaxian_state, losttomb, ROT90, "Stern Electronics", "Lost Tomb (hard)", GAME_SUPPORTS_SAVE )
+GAME( 1982, losttomb, 0, scobra, losttomb, galaxian_state, losttomb, ROT90, "Stern Electronics", "Lost Tomb (easy)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, losttombh, losttomb, scobra, losttomb, galaxian_state, losttomb, ROT90, "Stern Electronics", "Lost Tomb (hard)", MACHINE_SUPPORTS_SAVE )
-GAME( 1984, spdcoin, 0, scobra, spdcoin, galaxian_state, scobra, ROT90, "Stern Electronics", "Speed Coin (prototype)", GAME_SUPPORTS_SAVE )
+GAME( 1984, spdcoin, 0, scobra, spdcoin, galaxian_state, scobra, ROT90, "Stern Electronics", "Speed Coin (prototype)", MACHINE_SUPPORTS_SAVE )
-GAME( 1985, superbon, 0, scobra, superbon, galaxian_state, superbon, ROT90, "Signatron USA", "Agent Super Bond (Super Cobra conversion)", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
+GAME( 1985, superbon, 0, scobra, superbon, galaxian_state, superbon, ROT90, "Signatron USA", "Agent Super Bond (Super Cobra conversion)", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/galaxold.c b/src/mame/drivers/galaxold.c
index b99550543ff..0b74004e5d7 100644
--- a/src/mame/drivers/galaxold.c
+++ b/src/mame/drivers/galaxold.c
@@ -361,7 +361,6 @@ Stephh's notes (based on the games Z80 code and some tests) for other games :
to 0x00, so routine at 0x042a ALWAYS thinks that you've pressed COIN2,
and as a consequence, it ALWAYS adds 1 credit (even when you are playing) !
-
***************************************************************************/
#include "emu.h"
@@ -902,6 +901,36 @@ static ADDRESS_MAP_START( hunchbkg, AS_PROGRAM, 8, galaxold_state )
AM_RANGE(0x6000, 0x6fff) AM_ROM
ADDRESS_MAP_END
+/* majorly shifted, hunchbkg style */
+static ADDRESS_MAP_START( spcwarp, AS_PROGRAM, 8, galaxold_state )
+ AM_RANGE(0x0000, 0x0fff) AM_ROM
+ AM_RANGE(0x1480, 0x14bf) AM_MIRROR(0x6000) AM_RAM_WRITE(galaxold_attributesram_w) AM_SHARE("attributesram")
+ AM_RANGE(0x14c0, 0x14ff) AM_MIRROR(0x6000) AM_WRITEONLY AM_SHARE("spriteram")
+ AM_RANGE(0x1500, 0x1500) AM_MIRROR(0x6000) AM_READ_PORT("IN0")
+ AM_RANGE(0x1500, 0x1501) AM_MIRROR(0x6000) AM_WRITE(galaxold_leds_w)
+ AM_RANGE(0x1502, 0x1502) AM_MIRROR(0x6000) AM_WRITE(galaxold_coin_lockout_w)
+ AM_RANGE(0x1503, 0x1503) AM_MIRROR(0x6000) AM_WRITE(galaxold_coin_counter_w)
+ AM_RANGE(0x1504, 0x1507) AM_MIRROR(0x6000) AM_DEVWRITE("cust", galaxian_sound_device, lfo_freq_w)
+ AM_RANGE(0x1580, 0x1580) AM_MIRROR(0x6000) AM_READ_PORT("IN1")
+ AM_RANGE(0x1580, 0x1587) AM_MIRROR(0x6000) AM_DEVWRITE("cust", galaxian_sound_device, sound_w)
+ AM_RANGE(0x1583, 0x1583) AM_MIRROR(0x6000) AM_DEVWRITE("cust", galaxian_sound_device, noise_enable_w)
+ AM_RANGE(0x1585, 0x1585) AM_MIRROR(0x6000) AM_DEVWRITE("cust", galaxian_sound_device, fire_enable_w)
+ AM_RANGE(0x1586, 0x1587) AM_MIRROR(0x6000) AM_DEVWRITE("cust", galaxian_sound_device, vol_w)
+ // everything else in the $16xx range is moved to $17xx
+ AM_RANGE(0x1680, 0x1680) AM_MIRROR(0x6000) AM_READ(watchdog_reset_r) AM_DEVWRITE("cust", galaxian_sound_device, pitch_w)
+ AM_RANGE(0x1700, 0x1700) AM_MIRROR(0x6000) AM_READ_PORT("DSW0")
+ AM_RANGE(0x1701, 0x1701) AM_MIRROR(0x6000) AM_WRITE(galaxold_nmi_enable_w)
+ AM_RANGE(0x1704, 0x1704) AM_MIRROR(0x6000) AM_WRITE(galaxold_stars_enable_w)
+ AM_RANGE(0x1706, 0x1706) AM_MIRROR(0x6000) AM_WRITE(galaxold_flip_screen_x_w)
+ AM_RANGE(0x1707, 0x1707) AM_MIRROR(0x6000) AM_WRITE(galaxold_flip_screen_y_w)
+ // the rest
+ AM_RANGE(0x1800, 0x1bff) AM_MIRROR(0x6000) AM_WRITE(galaxold_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x1c00, 0x1fff) AM_MIRROR(0x6000) AM_RAM
+ AM_RANGE(0x2000, 0x2fff) AM_ROM
+ AM_RANGE(0x4000, 0x4fff) AM_ROM
+ AM_RANGE(0x6000, 0x6fff) AM_ROM
+ADDRESS_MAP_END
+
static ADDRESS_MAP_START( hunchbkg_io, AS_IO, 8, galaxold_state )
AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READNOP // not used
ADDRESS_MAP_END
@@ -2733,6 +2762,14 @@ static MACHINE_CONFIG_DERIVED( hunchbkg, galaxold_base )
MACHINE_CONFIG_END
+static MACHINE_CONFIG_DERIVED( spcwarp, hunchbkg )
+ /* hunchbkg but with different banking */
+ /* basic machine hardware */
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(spcwarp)
+MACHINE_CONFIG_END
+
+
static MACHINE_CONFIG_DERIVED( tazzmang, galaxian )
/* basic machine hardware */
@@ -3441,6 +3478,28 @@ ROM_START( hunchbkg )
ROM_LOAD( "gal_hb_cp", 0x0000, 0x0020, CRC(cbff6762) SHA1(4515a6e12a0a5c485a55291feee17a571120a549) )
ROM_END
+ROM_START( spcwarp )
+ // conversion of 'cosmos' (cvs.c) to Galaxian hardware
+ // notes:
+ // -came out of an unemulated games collection - may or may not be actually spcwarp but it's unique
+ // -uses hunchbkg hardware with a different map
+ // -the game likely calls a checksum check every 10 frames, causes game to freeze (probably because of bad ROM)
+ // -so far using hunchbkg inputs work
+ // -text in ROM confirms year of release and company; ASCII shows "COPYRIGHT 1983", "CENTURY ELECTRONICS UK LTD" in swarpt7f.bin
+ ROM_REGION( 0x8000, "maincpu", 0 )
+ ROM_LOAD( "swarpt7f.bin", 0x0000, 0x1000, CRC(04d744e3) SHA1(db8218510052a05670cb0b722b73d3f10464788c) )
+ ROM_LOAD( "swarpt7h.bin", 0x2000, 0x1000, CRC(34a36536) SHA1(bc438515618683b2a7c29637871ee00ed95ad7f8) )
+ ROM_LOAD( "swarpt7m.bin", 0x6000, 0x1000, BAD_DUMP CRC(a2dff6c8) SHA1(d1c72848450dc5ff386dc94a26e4bf704ccc7121) ) /* ROMCMP reports "BADADDR xxxxxx-xxxxx". Observed data sequence repeated every 32 bytes */
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "swarpb1h.bin", 0x0000, 0x0800, CRC(6ee3b5f7) SHA1(8150f2ecd59d3a165c0541b550664c56d049edd5) )
+ ROM_LOAD( "swarpb1k.bin", 0x0800, 0x0800, CRC(da4cee6b) SHA1(28b91381658f598fa62049489beee443232825c6) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "clr", 0x0000, 0x0020, NO_DUMP )
+ROM_END
+
+
ROM_START( drivfrcg )
ROM_REGION( 0x8000, "maincpu", 0 )
ROM_LOAD( "dfgp1.bin", 0x2800, 0x0400, CRC(52d5e77d) SHA1(4e68ac1274bbc8cb5b6a7dfb511232bd83482453) )
@@ -3695,40 +3754,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)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1981, rockclim, 0, rockclim, rockclim, driver_device, 0, ROT180, "Taito", "Rock Climber", GAME_SUPPORTS_SAVE )
-GAME( 1981, ckongg, ckong, ckongg, ckongg, driver_device, 0, ROT90, "bootleg", "Crazy Kong (bootleg on Galaxian hardware)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1981, ckongmc, ckong, ckongmc, ckongmc, driver_device, 0, ROT90, "bootleg", "Crazy Kong (bootleg on Moon Cresta hardware)", GAME_NO_COCKTAIL | GAME_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)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1982, ckongcv, ckong, ckongg, ckonggx, galaxold_state, ckonggx, ROT90, "bootleg", "Crazy Kong (bootleg on Galaxian hardware, encrypted, set 2)", GAME_NOT_WORKING )
-GAME( 1982, ckongis, ckong, ckongg, ckonggx, galaxold_state, ckonggx, ROT90, "bootleg", "Crazy Kong (bootleg on Galaxian hardware, encrypted, set 3)", GAME_NOT_WORKING )
-GAME( 1981, scramblb, scramble, scramblb, scramblb, driver_device, 0, ROT90, "bootleg", "Scramble (bootleg on Galaxian hardware)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1981, scramb2, scramble, scramb2, scramb2, driver_device, 0, ROT90, "bootleg", "Scramble (bootleg)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1981, scrambler, scramble, scrambler, scrambler, driver_device, 0, ROT90, "bootleg (Reben S.A.)", "Scramble (Reben S.A. Spanish bootleg)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1981, 4in1, 0, 4in1, 4in1, galaxold_state, 4in1, ROT90, "Armenia / Food and Fun", "4 Fun in 1", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1982, bagmanmc, bagman, bagmanmc, bagmanmc, driver_device, 0, ROT90, "bootleg", "Bagman (bootleg on Moon Cresta hardware, set 1)", GAME_IMPERFECT_COLORS | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1984, bagmanm2, bagman, bagmanmc, bagmanmc, driver_device, 0, ROT90, "bootleg (GIB)", "Bagman (bootleg on Moon Cresta hardware, set 2)", GAME_IMPERFECT_COLORS | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1982, dkongjrm, dkongjr, dkongjrm, dkongjrm, driver_device, 0, ROT90, "bootleg", "Donkey Kong Jr. (bootleg on Moon Cresta hardware)", GAME_WRONG_COLORS | GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1982, porter, dockman, porter, porter, driver_device, 0, ROT90, "bootleg", "Port Man (bootleg on Moon Cresta hardware)", GAME_IMPERFECT_COLORS | GAME_NO_COCKTAIL )
-GAME( 1982, tazzmang, tazmania, tazzmang, tazzmang, driver_device, 0, ROT90, "bootleg", "Tazz-Mania (bootleg on Galaxian hardware)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1982, tazzmang2, tazmania, tazzmang, tazzmang, driver_device, 0, ROT90, "bootleg", "Tazz-Mania (bootleg on Galaxian hardware with Starfield)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1983, bongo, 0, bongo, bongo, driver_device, 0, ROT90, "Jetsoft", "Bongo", GAME_SUPPORTS_SAVE )
-GAME( 1983, ozon1, 0, ozon1, ozon1, driver_device, 0, ROT90, "Proma", "Ozon I", GAME_SUPPORTS_SAVE )
-GAME( 1983, ladybugg, ladybug, batman2, ladybugg, galaxold_state, ladybugg, ROT270, "bootleg", "Lady Bug (bootleg on Galaxian hardware)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1982, guttangt, locomotn, guttang, guttangt, galaxold_state, guttangt, ROT270, "bootleg (Recreativos Franco?)", "Guttang Gottong (bootleg on Galaxian type hardware)", GAME_NOT_WORKING | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) // or by 'Tren' ?
+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( 1983, ladybugg, ladybug, batman2, ladybugg, galaxold_state, ladybugg, ROT270, "bootleg", "Lady Bug (bootleg on Galaxian hardware)", MACHINE_NO_COCKTAIL | 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)", GAME_SUPPORTS_SAVE )
-GAME( 1981, froggerv, frogger, videotron, froggerv, driver_device, 0, ROT90, "bootleg (Videotron / Gamepack)", "Frogger (Videotron bootleg)", GAME_SUPPORTS_SAVE )
+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)", GAME_SUPPORTS_SAVE )
-GAME( 1984, drivfrcg, drivfrcp, drivfrcg, drivfrcg, driver_device, 0, ROT90, "Shinkai Inc. (Magic Electronics USA license)", "Driving Force (Galaxian conversion)", GAME_SUPPORTS_SAVE )
-GAME( 1984, drivfrct, drivfrcp, drivfrcg, drivfrcg, driver_device, 0, ROT90, "bootleg (EMT Germany)", "Top Racer (bootleg of Driving Force)", GAME_SUPPORTS_SAVE ) // Video Klein PCB
-GAME( 1985, drivfrcb, drivfrcp, drivfrcg, drivfrcg, driver_device, 0, ROT90, "bootleg (Elsys Software)", "Driving Force (Galaxian conversion bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1986, racknrol, 0, racknrol, racknrol, driver_device, 0, ROT0, "Senko Industries (Status license from Shinkai Inc.)", "Rack + Roll", GAME_SUPPORTS_SAVE )
-GAME( 1986, hexpool, racknrol, racknrol, racknrol, driver_device, 0, ROT90, "Senko Industries (Shinkai Inc. license)", "Hex Pool (Shinkai)", GAME_SUPPORTS_SAVE ) // still has Senko logo in gfx rom
-GAME( 1985, hexpoola, racknrol, hexpoola, racknrol, driver_device, 0, ROT90, "Senko Industries", "Hex Pool (Senko)", GAME_SUPPORTS_SAVE )
-GAME( 1985, trvchlng, 0, racknrol, trvchlng, driver_device, 0, ROT90, "Joyland (Senko license)", "Trivia Challenge", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1985, bullsdrtg, bullsdrt, bullsdrtg, racknrol, galaxold_state, bullsdrtg, ROT90, "Senko Industries", "Bulls Eye Darts (Galaxian conversion)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_WRONG_COLORS )
+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 )
+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/mess/drivers/galaxy.c b/src/mame/drivers/galaxy.c
index a8be2d524e0..a8be2d524e0 100644
--- a/src/mess/drivers/galaxy.c
+++ b/src/mame/drivers/galaxy.c
diff --git a/src/mess/drivers/galeb.c b/src/mame/drivers/galeb.c
index 64d24d912e0..64d24d912e0 100644
--- a/src/mess/drivers/galeb.c
+++ b/src/mame/drivers/galeb.c
diff --git a/src/mame/drivers/galgame.c b/src/mame/drivers/galgame.c
index 8e0c6ea7c6f..86d0b7d0429 100644
--- a/src/mame/drivers/galgame.c
+++ b/src/mame/drivers/galgame.c
@@ -458,4 +458,4 @@ DRIVER_INIT_MEMBER(galaxygame_state,galaxygame)
main.write_word(8, 000500 - 10);
}
-GAME(1971, galgame, 0, galaxygame, galaxygame, galaxygame_state, galaxygame, ROT270, "Computer Recreations, Inc", "Galaxy Game", GAME_NO_SOUND_HW )
+GAME(1971, galgame, 0, galaxygame, galaxygame, galaxygame_state, galaxygame, ROT270, "Computer Recreations, Inc", "Galaxy Game", MACHINE_NO_SOUND_HW )
diff --git a/src/mame/drivers/galivan.c b/src/mame/drivers/galivan.c
index f6379975a2c..3c2a8bce49d 100644
--- a/src/mame/drivers/galivan.c
+++ b/src/mame/drivers/galivan.c
@@ -1090,14 +1090,14 @@ DRIVER_INIT_MEMBER(galivan_state,youmab)
}
-GAME( 1985, galivan, 0, galivan, galivan, driver_device, 0, ROT270, "Nichibutsu", "Cosmo Police Galivan (12/26/1985)", GAME_SUPPORTS_SAVE )
-GAME( 1985, galivan2, galivan, galivan, galivan, driver_device, 0, ROT270, "Nichibutsu", "Cosmo Police Galivan (12/16/1985)", GAME_SUPPORTS_SAVE )
-GAME( 1985, galivan3, galivan, galivan, galivan, driver_device, 0, ROT270, "Nichibutsu", "Cosmo Police Galivan (12/11/1985)", GAME_SUPPORTS_SAVE )
-GAME( 1986, dangar, 0, galivan, dangar, driver_device, 0, ROT270, "Nichibutsu", "Ufo Robo Dangar (12/1/1986)", GAME_SUPPORTS_SAVE )
-GAME( 1986, dangar2, dangar, galivan, dangar2, driver_device, 0, ROT270, "Nichibutsu", "Ufo Robo Dangar (9/26/1986)", GAME_SUPPORTS_SAVE )
-GAME( 1986, dangarb, dangar, galivan, dangarb, driver_device, 0, ROT270, "bootleg", "Ufo Robo Dangar (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1986, ninjemak, 0, ninjemak, ninjemak, driver_device, 0, ROT270, "Nichibutsu", "Ninja Emaki (US)", GAME_SUPPORTS_SAVE|GAME_UNEMULATED_PROTECTION )
-GAME( 1986, youma, ninjemak, ninjemak, ninjemak, driver_device, 0, ROT270, "Nichibutsu", "Youma Ninpou Chou (Japan)", GAME_SUPPORTS_SAVE|GAME_UNEMULATED_PROTECTION )
-GAME( 1986, youma2, ninjemak, ninjemak, ninjemak, driver_device, 0, ROT270, "Nichibutsu", "Youma Ninpou Chou (Japan, alt)", GAME_SUPPORTS_SAVE|GAME_UNEMULATED_PROTECTION )
-GAME( 1986, youmab, ninjemak, youmab, ninjemak, galivan_state, youmab, ROT270, "bootleg", "Youma Ninpou Chou (Game Electronics bootleg, set 1)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE|GAME_UNEMULATED_PROTECTION ) // player is invincible
-GAME( 1986, youmab2, ninjemak, youmab, ninjemak, galivan_state, youmab, ROT270, "bootleg", "Youma Ninpou Chou (Game Electronics bootleg, set 2)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE|GAME_UNEMULATED_PROTECTION ) // ""
+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 (12/1/1986)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, dangar2, dangar, galivan, dangar2, driver_device, 0, ROT270, "Nichibutsu", "Ufo Robo Dangar (9/26/1986)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, dangarb, 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( 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.c b/src/mame/drivers/galpani2.c
index 9b73b2218c3..c3f87db9680 100644
--- a/src/mame/drivers/galpani2.c
+++ b/src/mame/drivers/galpani2.c
@@ -1196,15 +1196,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)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE )
-GAME( 1993, galpani2e, galpani2, galpani2, galpani2, driver_device, 0, ROT90, "Kaneko", "Gals Panic II (English)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE )
-GAME( 1993, galpani2e2,galpani2, galpani2, galpani2, driver_device, 0, ROT90, "Kaneko", "Gals Panic II (English, 2 PCB ver.)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE )
-GAME( 1993, galpani2g, galpani2, galpani2, galpani2, driver_device, 0, ROT90, "Kaneko", "Gals Panic II (Germany, 2 PCB ver.)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE )
-GAME( 1993, galpani2i, galpani2, galpani2, galpani2, driver_device, 0, ROT90, "Kaneko", "Gals Panic II (Italy, single PCB)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE )
-GAME( 1993, galpani2gs,galpani2, galpani2, galpani2, driver_device, 0, ROT90, "Kaneko", "Gals Panic II (Germany, single PCB)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE )
-GAME( 1993, galpani2t, galpani2, galpani2, galpani2, driver_device, 0, ROT90, "Kaneko", "Gals Panic II (Taiwan)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE )
-GAME( 1993, galpani2j, galpani2, galpani2, galpani2, driver_device, 0, ROT90, "Kaneko", "Gals Panic II (Japan)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_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", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_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)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE )
+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, 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( 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 )
diff --git a/src/mame/drivers/galpani3.c b/src/mame/drivers/galpani3.c
index 8687e54c2a3..dd00689032e 100644
--- a/src/mame/drivers/galpani3.c
+++ b/src/mame/drivers/galpani3.c
@@ -642,7 +642,7 @@ ROM_END
-GAME( 1995, galpani3, 0, galpani3, galpani3, driver_device, 0, ROT90, "Kaneko", "Gals Panic 3 (Euro)", GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1995, galpani3j, galpani3, galpani3, galpani3, driver_device, 0, ROT90, "Kaneko", "Gals Panic 3 (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1995, galpani3k, galpani3, galpani3, galpani3, driver_device, 0, ROT90, "Kaneko", "Gals Panic 3 (Korea)", GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1995, galpani3hk,galpani3, galpani3, galpani3, driver_device, 0, ROT90, "Kaneko", "Gals Panic 3 (Hong Kong)", GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/galpanic.c b/src/mame/drivers/galpanic.c
index ca7ad7f3105..ba02735d3ab 100644
--- a/src/mame/drivers/galpanic.c
+++ b/src/mame/drivers/galpanic.c
@@ -132,7 +132,7 @@ static ADDRESS_MAP_START( galpanic_map, AS_PROGRAM, 16, galpanic_state )
AM_RANGE(0x400000, 0x400001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
AM_RANGE(0x500000, 0x51ffff) AM_RAM AM_SHARE("fgvideoram")
AM_RANGE(0x520000, 0x53ffff) AM_RAM_WRITE(galpanic_bgvideoram_w) AM_SHARE("bgvideoram") /* + work RAM */
- AM_RANGE(0x600000, 0x6007ff) AM_RAM_WRITE(galpanic_paletteram_w) AM_SHARE("paletteram") /* 1024 colors, but only 512 seem to be used */
+ AM_RANGE(0x600000, 0x6007ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") /* 1024 colors, but only 512 seem to be used */
AM_RANGE(0x700000, 0x701fff) AM_DEVREADWRITE("pandora", kaneko_pandora_device, spriteram_LSB_r, spriteram_LSB_w)
AM_RANGE(0x702000, 0x704fff) AM_RAM
AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1")
@@ -235,7 +235,8 @@ static MACHINE_CONFIG_START( galpanic, galpanic_state )
MCFG_GFXDECODE_ADD("gfxdecode", "palette", galpanic)
MCFG_PALETTE_ADD("palette", 1024 + 32768)
- MCFG_PALETTE_INIT_OWNER(galpanic_state,galpanic)
+ MCFG_PALETTE_FORMAT(GGGGGRRRRRBBBBBx) // fg palette ram, bit 0 seems to be a transparency flag for the front bitmap
+ MCFG_PALETTE_INIT_OWNER(galpanic_state, galpanic)
MCFG_DEVICE_ADD("pandora", KANEKO_PANDORA, 0)
MCFG_KANEKO_PANDORA_OFFSETS(0, -16)
@@ -314,5 +315,5 @@ ROM_START( galpanica ) /* PAMERA-04 PCB with the CALC1 MCU used */
ROM_LOAD( "pm007e.u", 0xc0000, 0x80000, CRC(c7ed7950) SHA1(133258b058d3c562208d0d00b9fac71202647c32) )
ROM_END
-GAME( 1990, galpanic, 0, galpanic, galpanic, driver_device, 0, ROT90, "Kaneko", "Gals Panic (Unprotected)", GAME_NO_COCKTAIL )
-GAME( 1990, galpanica,galpanic, galpanica,galpanica, driver_device, 0, ROT90, "Kaneko", "Gals Panic (MCU Protected)", GAME_NO_COCKTAIL )
+GAME( 1990, galpanic, 0, galpanic, galpanic, driver_device, 0, ROT90, "Kaneko", "Gals Panic (Unprotected)", MACHINE_NO_COCKTAIL )
+GAME( 1990, galpanica,galpanic, galpanica,galpanica, driver_device, 0, ROT90, "Kaneko", "Gals Panic (MCU Protected)", MACHINE_NO_COCKTAIL )
diff --git a/src/mame/drivers/galspnbl.c b/src/mame/drivers/galspnbl.c
index 10a10c3568f..c1f8519e15f 100644
--- a/src/mame/drivers/galspnbl.c
+++ b/src/mame/drivers/galspnbl.c
@@ -315,5 +315,5 @@ ROM_START( hotpinbl )
ROM_END
-GAME( 1995, hotpinbl, 0, galspnbl, hotpinbl, driver_device, 0, ROT90, "Comad & New Japan System", "Hot Pinball", GAME_SUPPORTS_SAVE )
-GAME( 1996, galspnbl, 0, galspnbl, galspnbl, driver_device, 0, ROT90, "Comad", "Gals Pinball", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/gamate.c b/src/mame/drivers/gamate.c
index 2d54d0b4776..ad1e129e60c 100644
--- a/src/mess/drivers/gamate.c
+++ b/src/mame/drivers/gamate.c
@@ -25,6 +25,8 @@ public:
, m_io_joy(*this, "JOY")
, m_palette(*this, "palette")
, m_bios(*this, "bios")
+ , m_bank(*this, "bank")
+ , m_bankmulti(*this, "bankmulti")
{ }
DECLARE_PALETTE_INIT(gamate);
@@ -77,6 +79,8 @@ private:
required_ioport m_io_joy;
required_device<palette_device> m_palette;
required_shared_ptr<UINT8> m_bios;
+ required_memory_bank m_bank;
+ required_memory_bank m_bankmulti;
emu_timer *timer1;
emu_timer *timer2;
UINT8 bank_multi;
@@ -186,12 +190,12 @@ WRITE8_MEMBER( gamate_state::gamate_video_w )
WRITE8_MEMBER( gamate_state::cart_bankswitchmulti_w )
{
bank_multi=data;
- membank("bankmulti")->set_base(m_cart_ptr+0x4000*data+1);
+ m_bankmulti->set_base(m_cart_ptr+0x4000*data+1);
}
WRITE8_MEMBER( gamate_state::cart_bankswitch_w )
{
- membank("bank")->set_base(m_cart_ptr+0x4000*data);
+ m_bank->set_base(m_cart_ptr+0x4000*data);
}
READ8_MEMBER( gamate_state::gamate_video_r )
@@ -322,8 +326,8 @@ void gamate_state::machine_start()
{
// m_maincpu->space(AS_PROGRAM).install_read_handler(0x6000, 0x6000, READ8_DELEGATE(gamate_state, gamate_cart_protection_r));
m_cart_ptr = m_cart->get_rom_base();
- membank("bankmulti")->set_base(m_cart->get_rom_base()+1);
- membank("bank")->set_base(m_cart->get_rom_base()+0x4000); // bankswitched games in reality no offset
+ m_bankmulti->set_base(m_cart->get_rom_base()+1);
+ m_bank->set_base(m_cart->get_rom_base()+0x4000); // bankswitched games in reality no offset
}
// m_bios[0xdf1]=0xea; m_bios[0xdf2]=0xea; // default bios: $47 protection readback
card_protection.set=false;
@@ -382,7 +386,7 @@ static MACHINE_CONFIG_START( gamate, gamate_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
- MCFG_SOUND_ADD("custom", GAMATE_SND, 0)
+ MCFG_SOUND_ADD("custom", GAMATE_SND, 4433000/2)
MCFG_SOUND_ROUTE(0, "lspeaker", 0.50)
MCFG_SOUND_ROUTE(1, "rspeaker", 0.50)
diff --git a/src/mame/drivers/gambl186.c b/src/mame/drivers/gambl186.c
index ba0d4ce90ba..8d7ac5cb193 100644
--- a/src/mame/drivers/gambl186.c
+++ b/src/mame/drivers/gambl186.c
@@ -511,5 +511,5 @@ ROM_END
/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS... */
-GAME( 1997, gambl186, 0, gambl186, gambl186, driver_device, 0, ROT0, "EGD", "Multi Game (V398)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 199?, gambl186a, gambl186, gambl186, gambl186, driver_device, 0, ROT0, "EGD", "Multi Game (V399)", GAME_NOT_WORKING | GAME_NO_SOUND )
+GAME( 1997, gambl186, 0, gambl186, gambl186, driver_device, 0, ROT0, "EGD", "Multi Game (V398)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 199?, gambl186a, gambl186, gambl186, gambl186, driver_device, 0, ROT0, "EGD", "Multi Game (V399)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mess/drivers/gamecom.c b/src/mame/drivers/gamecom.c
index d3149e3808d..8b843aa55c8 100644
--- a/src/mess/drivers/gamecom.c
+++ b/src/mame/drivers/gamecom.c
@@ -296,4 +296,4 @@ ROM_START( gamecom )
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", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND)
+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.c b/src/mame/drivers/gamecstl.c
index 22e583d274a..4c6e764bf3d 100644
--- a/src/mame/drivers/gamecstl.c
+++ b/src/mame/drivers/gamecstl.c
@@ -492,5 +492,5 @@ ROM_END
/*****************************************************************************/
-GAME(2002, gamecstl, 0, gamecstl, gamecstl, gamecstl_state, gamecstl, ROT0, "Cristaltec", "GameCristal", GAME_NOT_WORKING | GAME_NO_SOUND)
-GAME(2002, gamecst2, gamecstl, gamecstl, gamecstl, gamecstl_state, gamecstl, ROT0, "Cristaltec", "GameCristal (version 2.613)", GAME_NOT_WORKING | GAME_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/mess/drivers/gameking.c b/src/mame/drivers/gameking.c
index da070c6a4aa..a05b407f3f1 100644
--- a/src/mess/drivers/gameking.c
+++ b/src/mame/drivers/gameking.c
@@ -106,7 +106,7 @@ DEVICE_IMAGE_LOAD_MEMBER( gameking_state, gameking_cart )
{
UINT32 size = m_cart->common_get_size("rom");
- if (size > 0x20000)
+ if (size > 0x80000)
{
image.seterror(IMAGE_ERROR_UNSPECIFIED, "Unsupported cartridge size");
return IMAGE_INIT_FAIL;
@@ -182,6 +182,7 @@ static MACHINE_CONFIG_START( gameking, gameking_state )
/* Software lists */
MCFG_SOFTWARE_LIST_ADD("cart_list", "gameking")
+ MCFG_SOFTWARE_LIST_ADD("cart_list_3", "gameking3") // maybe not compatible with this system (different internal bios?)
MACHINE_CONFIG_END
ROM_START(gameking)
@@ -190,5 +191,5 @@ ROM_END
-CONS(2003, gameking, 0, 0, gameking, gameking, gameking_state, gameking, "TimeTop", "GameKing GM-218", GAME_NOT_WORKING | GAME_NO_SOUND )
+CONS(2003, gameking, 0, 0, gameking, gameking, gameking_state, gameking, "TimeTop", "GameKing GM-218", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
// the GameKing 2 (GM-219) is probably identical HW
diff --git a/src/mame/drivers/gameplan.c b/src/mame/drivers/gameplan.c
index 90161a9f3d3..ad593e0e036 100644
--- a/src/mame/drivers/gameplan.c
+++ b/src/mame/drivers/gameplan.c
@@ -1158,11 +1158,11 @@ ROM_END
*
*************************************/
-GAME( 1980, killcom, 0, gameplan, killcom, driver_device, 0, ROT0, "Game Plan (Centuri license)", "Killer Comet", GAME_SUPPORTS_SAVE )
-GAME( 1980, megatack, 0, gameplan, megatack, driver_device, 0, ROT0, "Game Plan (Centuri license)", "Megatack", GAME_SUPPORTS_SAVE )
-GAME( 1981, challeng, 0, gameplan, challeng, driver_device, 0, ROT0, "Game Plan (Centuri license)", "Challenger", GAME_SUPPORTS_SAVE )
-GAME( 1981, kaos, 0, gameplan, kaos, driver_device, 0, ROT270, "Game Plan", "Kaos", GAME_SUPPORTS_SAVE )
-GAME( 1982, leprechn, 0, leprechn, leprechn, driver_device, 0, ROT0, "Tong Electronic", "Leprechaun", GAME_SUPPORTS_SAVE )
-GAME( 1982, potogold, leprechn, leprechn, potogold, driver_device, 0, ROT0, "Tong Electronic (Game Plan license)", "Pot of Gold", GAME_SUPPORTS_SAVE )
-GAME( 1982, leprechp, leprechn, leprechn, potogold, driver_device, 0, ROT0, "Tong Electronic (Pacific Polytechnical license)", "Leprechaun (Pacific)", GAME_SUPPORTS_SAVE )
-GAME( 1982, piratetr, 0, leprechn, piratetr, driver_device, 0, ROT0, "Tong Electronic", "Pirate Treasure", GAME_SUPPORTS_SAVE )
+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", 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 )
diff --git a/src/mess/drivers/gamepock.c b/src/mame/drivers/gamepock.c
index dbf76dc1bf5..dbf76dc1bf5 100644
--- a/src/mess/drivers/gamepock.c
+++ b/src/mame/drivers/gamepock.c
diff --git a/src/mame/drivers/gammagic.c b/src/mame/drivers/gammagic.c
index 64facc873ee..7b891b6b894 100644
--- a/src/mame/drivers/gammagic.c
+++ b/src/mame/drivers/gammagic.c
@@ -183,5 +183,5 @@ ROM_END
*************************/
/* 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", GAME_IS_SKELETON )
-GAME( 1999, 99bottles, gammagic, gammagic, gammagic, driver_device, 0, ROT0, "Bally Gaming Co.", "99 Bottles of Beer", GAME_IS_SKELETON )
+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 )
diff --git a/src/mame/drivers/gamtor.c b/src/mame/drivers/gamtor.c
index f9395fb73c4..adb337a720a 100644
--- a/src/mame/drivers/gamtor.c
+++ b/src/mame/drivers/gamtor.c
@@ -1263,7 +1263,7 @@ DRIVER_INIT_MEMBER(gaminator_state,gaminator)
-#define GAME_FLAGS GAME_NOT_WORKING|GAME_NO_SOUND
+#define GAME_FLAGS MACHINE_NOT_WORKING|MACHINE_NO_SOUND
GAME( 2002?, g4u2 ,0, gaminator, gaminator, gaminator_state, gaminator, ROT0, "Novotech","Games 4 U 2 (94 5.6-0)", GAME_FLAGS )
diff --git a/src/mame/drivers/gaplus.c b/src/mame/drivers/gaplus.c
index 29c03b69b77..9bd60dcf29c 100644
--- a/src/mame/drivers/gaplus.c
+++ b/src/mame/drivers/gaplus.c
@@ -1004,16 +1004,16 @@ DRIVER_INIT_MEMBER(gaplus_state,galaga3)
/* These sets are on revision 2 or 3 PCBs AKA "Namco" PCBs */
-GAME( 1984, gaplus, 0, gapluso, gapluso, gaplus_state, gaplus, ROT90, "Namco", "Gaplus (GP2 rev. B)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1984, gaplusa, gaplus, gapluso, gapluso, gaplus_state, gaplus, ROT90, "Namco", "Gaplus (GP2)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1984, gaplusd, gaplus, gaplusd, gapluso, gaplus_state, gaplusd, ROT90, "Namco", "Gaplus (GP2 rev D, alternate hardware)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1984, galaga3, gaplus, gaplus, gaplus, gaplus_state, galaga3, ROT90, "Namco", "Galaga 3 (GP3 rev. D)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1984, galaga3a, gaplus, gaplus, gaplus, gaplus_state, galaga3, ROT90, "Namco", "Galaga 3 (GP3 rev. C)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1984, galaga3b, gaplus, gaplus, gaplus, gaplus_state, galaga3, ROT90, "Namco", "Galaga 3 (GP3)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+GAME( 1984, gaplus, 0, gapluso, gapluso, gaplus_state, gaplus, ROT90, "Namco", "Gaplus (GP2 rev. B)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1984, gaplusa, gaplus, gapluso, gapluso, gaplus_state, gaplus, ROT90, "Namco", "Gaplus (GP2)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1984, gaplusd, gaplus, gaplusd, gapluso, gaplus_state, gaplusd, ROT90, "Namco", "Gaplus (GP2 rev D, alternate hardware)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1984, galaga3, gaplus, gaplus, gaplus, gaplus_state, galaga3, ROT90, "Namco", "Galaga 3 (GP3 rev. D)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1984, galaga3a, gaplus, gaplus, gaplus, gaplus_state, galaga3, ROT90, "Namco", "Galaga 3 (GP3 rev. C)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1984, galaga3b, gaplus, gaplus, gaplus, gaplus_state, galaga3, ROT90, "Namco", "Galaga 3 (GP3)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
/* These sets are on older revision (AKA Midway) 1 PCBs */
-GAME( 1984, galaga3c, gaplus, gaplus, galaga3a, gaplus_state, galaga3, ROT90, "Namco", "Galaga 3 (set 4)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1984, galaga3m, gaplus, gaplus, galaga3m, gaplus_state, galaga3, ROT90, "Namco", "Galaga 3 (set 5)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+GAME( 1984, galaga3c, gaplus, gaplus, galaga3a, gaplus_state, galaga3, ROT90, "Namco", "Galaga 3 (set 4)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1984, galaga3m, gaplus, gaplus, galaga3m, gaplus_state, galaga3, ROT90, "Namco", "Galaga 3 (set 5)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
/* This is an odd mix of Galaga3 and Gaplus, main code seems closest to galaga3m but still has significant changes, copyright is modified to 1992, has Galaga 3 style high scores, PARSEF spelling error on high score table */
-GAME( 1992, gaplust, gaplus, gaplus, galaga3m, gaplus_state, galaga3, ROT90, "bootleg (Tecfri)", "Gaplus (Tecfri PCB)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+GAME( 1992, gaplust, gaplus, gaplus, galaga3m, gaplus_state, galaga3, ROT90, "bootleg (Tecfri)", "Gaplus (Tecfri PCB)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/gb.c b/src/mame/drivers/gb.c
index 97620173d3b..85311e19598 100644
--- a/src/mess/drivers/gb.c
+++ b/src/mame/drivers/gb.c
@@ -813,6 +813,33 @@ static MACHINE_CONFIG_DERIVED( supergb, gameboy )
MCFG_GB_LCD_SGB_ADD("lcd")
MACHINE_CONFIG_END
+static MACHINE_CONFIG_DERIVED( supergb2, gameboy )
+ /* basic machine hardware */
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(sgb_map)
+
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_LR35902_TIMER_CB( WRITE8(gb_state, gb_timer_callback ) )
+ MCFG_LR35902_HALT_BUG
+
+ MCFG_MACHINE_START_OVERRIDE(gb_state, sgb)
+ MCFG_MACHINE_RESET_OVERRIDE(gb_state, sgb)
+
+ /* video hardware */
+ MCFG_DEFAULT_LAYOUT(layout_horizont) /* runs on a TV, not an LCD */
+
+ MCFG_SCREEN_MODIFY("screen")
+ MCFG_SCREEN_SIZE(32*8, 28*8)
+ MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
+
+ MCFG_PALETTE_MODIFY("palette")
+ MCFG_PALETTE_ENTRIES(32768)
+ MCFG_PALETTE_INIT_OWNER(gb_state,sgb)
+
+ MCFG_DEVICE_REMOVE("lcd")
+ MCFG_GB_LCD_SGB_ADD("lcd")
+MACHINE_CONFIG_END
+
static MACHINE_CONFIG_DERIVED( gbpocket, gameboy )
/* video hardware */
@@ -925,6 +952,11 @@ ROM_START( supergb )
ROM_LOAD( "sgb_boot.bin", 0x0000, 0x0100, CRC(ec8a83b9) SHA1(aa2f50a77dfb4823da96ba99309085a3c6278515) )
ROM_END
+ROM_START( supergb2 )
+ ROM_REGION( 0x0100, "maincpu", 0 )
+ ROM_LOAD( "sgb2_boot.bin", 0x0000, 0x0100, CRC(53d0dd63) SHA1(93407ea10d2f30ab96a314d8eca44fe160aea734) )
+ROM_END
+
ROM_START( gbpocket )
ROM_REGION( 0x0100, "maincpu", 0 )
ROM_LOAD( "mgb_boot.bin", 0x0000, 0x0100, CRC(e6920754) SHA1(4e68f9da03c310e84c523654b9026e51f26ce7f0) )
@@ -942,10 +974,11 @@ ROM_START( megaduck )
ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
-CONS( 1990, gameboy, 0, 0, gameboy, gameboy, driver_device, 0, "Nintendo", "Game Boy", GAME_SUPPORTS_SAVE )
-CONS( 1994, supergb, gameboy, 0, supergb, gameboy, driver_device, 0, "Nintendo", "Super Game Boy", GAME_SUPPORTS_SAVE )
-CONS( 1996, gbpocket, gameboy, 0, gbpocket, gameboy, driver_device, 0, "Nintendo", "Game Boy Pocket", GAME_SUPPORTS_SAVE )
-CONS( 1998, gbcolor, 0, 0, gbcolor, gameboy, driver_device, 0, "Nintendo", "Game Boy Color", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+CONS( 1990, gameboy, 0, 0, gameboy, gameboy, driver_device, 0, "Nintendo", "Game Boy", MACHINE_SUPPORTS_SAVE )
+CONS( 1994, supergb, gameboy, 0, supergb, gameboy, driver_device, 0, "Nintendo", "Super Game Boy", MACHINE_SUPPORTS_SAVE )
+CONS( 1998, supergb2, gameboy, 0, supergb2, gameboy, driver_device, 0, "Nintendo", "Super Game Boy 2", MACHINE_SUPPORTS_SAVE )
+CONS( 1996, gbpocket, gameboy, 0, gbpocket, gameboy, driver_device, 0, "Nintendo", "Game Boy Pocket", MACHINE_SUPPORTS_SAVE )
+CONS( 1998, gbcolor, 0, 0, gbcolor, gameboy, driver_device, 0, "Nintendo", "Game Boy Color", 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", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/gba.c b/src/mame/drivers/gba.c
index 031b9f05e22..b1e13241b04 100644
--- a/src/mess/drivers/gba.c
+++ b/src/mame/drivers/gba.c
@@ -6,7 +6,7 @@
Driver file to handle emulation of the Nintendo Game Boy Advance.
- By R. Belmont & Harmony
+ By R. Belmont & Ryan Holtz
***************************************************************************/
@@ -34,7 +34,7 @@ INLINE void ATTR_PRINTF(3,4) verboselog(running_machine &machine, int n_level, c
}
}
-#define GBA_ATTOTIME_NORMALIZE(a) do { while ((a).attoseconds >= ATTOSECONDS_PER_SECOND) { (a).seconds++; (a).attoseconds -= ATTOSECONDS_PER_SECOND; } } while (0)
+#define GBA_ATTOTIME_NORMALIZE(a) a.normalize()
static const UINT32 timer_clks[4] = { 16777216, 16777216/64, 16777216/256, 16777216/1024 };
@@ -2315,4 +2315,4 @@ DRIVER_INIT_MEMBER(gba_state,gbadv)
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
-CONS(2001, gba, 0, 0, gbadv, gbadv, gba_state, gbadv, "Nintendo", "Game Boy Advance", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND)
+CONS(2001, gba, 0, 0, gbadv, gbadv, gba_state, gbadv, "Nintendo", "Game Boy Advance", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND)
diff --git a/src/mame/drivers/gberet.c b/src/mame/drivers/gberet.c
index 541bee6a151..219bd0c7906 100644
--- a/src/mame/drivers/gberet.c
+++ b/src/mame/drivers/gberet.c
@@ -582,7 +582,7 @@ DRIVER_INIT_MEMBER(gberet_state,mrgoemon)
*
*************************************/
-GAME( 1985, gberet, 0, gberet, gberet, driver_device, 0, ROT0, "Konami", "Green Beret", GAME_SUPPORTS_SAVE )
-GAME( 1985, rushatck, gberet, gberet, gberet, driver_device, 0, ROT0, "Konami", "Rush'n Attack (US)", GAME_SUPPORTS_SAVE )
-GAME( 1985, gberetb, gberet, gberetb, gberetb, driver_device, 0, ROT0, "bootleg", "Green Beret (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1986, mrgoemon, 0, mrgoemon, mrgoemon, gberet_state, mrgoemon, ROT0, "Konami", "Mr. Goemon (Japan)", GAME_SUPPORTS_SAVE )
+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( 1986, mrgoemon, 0, mrgoemon, mrgoemon, gberet_state, mrgoemon, ROT0, "Konami", "Mr. Goemon (Japan)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/gcpinbal.c b/src/mame/drivers/gcpinbal.c
index 086f409a1c8..c7a3a40650c 100644
--- a/src/mame/drivers/gcpinbal.c
+++ b/src/mame/drivers/gcpinbal.c
@@ -526,4 +526,4 @@ ROM_END
-GAME( 1994, gcpinbal, 0, gcpinbal, gcpinbal, driver_device, 0, ROT270, "Excellent System", "Grand Cross", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+GAME( 1994, gcpinbal, 0, gcpinbal, gcpinbal, driver_device, 0, ROT270, "Excellent System", "Grand Cross", MACHINE_IMPERFECT_SOUND | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/gei.c b/src/mame/drivers/gei.c
index 25c3137d872..60d60384c01 100644
--- a/src/mame/drivers/gei.c
+++ b/src/mame/drivers/gei.c
@@ -143,8 +143,6 @@ public:
DECLARE_READ8_MEMBER(portC_r);
DECLARE_DRIVER_INIT(geimulti);
DECLARE_DRIVER_INIT(setbank);
- DECLARE_PALETTE_INIT(gei);
- DECLARE_PALETTE_INIT(quizvid);
INTERRUPT_GEN_MEMBER(vblank_irq);
};
@@ -177,26 +175,6 @@ WRITE8_MEMBER(gei_state::gei_bitmap_w)
m_bitmap.pix16(sy, sx+i) = m_color[8-i-1];
}
-PALETTE_INIT_MEMBER(gei_state, gei)
-{
- int i;
-
- for (i = 0; i < 8; i++ )
- {
- palette.set_pen_color(i, rgb_t(pal1bit(i >> 2), pal1bit(i), pal1bit(i >> 1)));
- }
-}
-
-PALETTE_INIT_MEMBER(gei_state,quizvid)
-{
- int i;
-
- for (i = 0; i < 8; i++ )
- {
- palette.set_pen_color(i, rgb_t(pal1bit(i >> 1), pal1bit(i), pal1bit(i >> 2)));
- }
-}
-
void gei_state::video_start()
{
m_screen->register_screen_bitmap(m_bitmap);
@@ -752,15 +730,14 @@ static INPUT_PORTS_START( getrivia )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("IN1")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 )
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_CODE(KEYCODE_Z)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_CODE(KEYCODE_X)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_CODE(KEYCODE_C)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_CODE(KEYCODE_V)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_CODE(KEYCODE_B)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
INPUT_PORTS_END
static INPUT_PORTS_START( sextriv1 )
@@ -920,57 +897,8 @@ static INPUT_PORTS_START( gt103 )
PORT_INCLUDE(trivia_standard)
INPUT_PORTS_END
-static INPUT_PORTS_START( gt103a )
- PORT_START("DSWA")
- PORT_DIPNAME( 0x03, 0x01, "Questions" ) PORT_DIPLOCATION("SW1:1,22")
- PORT_DIPSETTING( 0x00, "4" )
- PORT_DIPSETTING( 0x01, "5" )
-// PORT_DIPSETTING( 0x02, "5" )
- PORT_DIPSETTING( 0x03, "6" )
- PORT_DIPNAME( 0x04, 0x00, "Show Answer" ) PORT_DIPLOCATION("SW1:3")
- PORT_DIPSETTING( 0x04, DEF_STR( No ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x08, 0x00, "Max Coins" ) PORT_DIPLOCATION("SW1:4")
- PORT_DIPSETTING( 0x08, "30" )
- PORT_DIPSETTING( 0x00, "10" )
- PORT_DIPNAME( 0x10, 0x00, "Timeout" ) PORT_DIPLOCATION("SW1:5")
- PORT_DIPSETTING( 0x10, DEF_STR( No ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x20, 0x00, "Tickets" ) PORT_DIPLOCATION("SW1:6")
- PORT_DIPSETTING( 0x20, DEF_STR( No ) )
- PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
- PORT_DIPNAME( 0x40, 0x40, "No Coins" ) PORT_DIPLOCATION("SW1:7")
- PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:8")
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
- PORT_START("IN0")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2) PORT_CONDITION("DSWA", 0x40, EQUALS, 0x40)
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_IMPULSE(2) PORT_CONDITION("DSWA", 0x40, EQUALS, 0x00) PORT_NAME ("Start in no coins mode")
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2) PORT_CONDITION("DSWA", 0x40, EQUALS, 0x40)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_CONDITION("DSWA", 0x40, EQUALS, 0x00)
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("ticket", ticket_dispenser_device, line_r) /* ticket status */
- PORT_SERVICE( 0x08, IP_ACTIVE_LOW )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("IN1") /* IN1 */
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
-INPUT_PORTS_END
-
static INPUT_PORTS_START( quiz )
- PORT_INCLUDE( gt103a )
+ PORT_INCLUDE( getrivia )
PORT_MODIFY("DSWA")
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) /* no tickets */
@@ -1052,19 +980,9 @@ static INPUT_PORTS_START(geimulti)
INPUT_PORTS_END
static INPUT_PORTS_START(sprtauth)
- PORT_INCLUDE(getrivia)
-
- PORT_MODIFY("IN0")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2)
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("ticket", ticket_dispenser_device, line_r) /* ticket status */
- PORT_SERVICE( 0x08, IP_ACTIVE_LOW )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_INCLUDE(trivia_standard)
- PORT_MODIFY("DSWA")
+ PORT_START("DSWA")
PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:1,2,3,4")
PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) )
PORT_DIPSETTING( 0x07, DEF_STR( 7C_1C ) )
@@ -1094,7 +1012,6 @@ static INPUT_PORTS_START(sprtauth)
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:8")
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
-
INPUT_PORTS_END
@@ -1119,8 +1036,7 @@ static MACHINE_CONFIG_START( getrivia, gei_state )
MCFG_SCREEN_VISIBLE_AREA(48, 511-48, 16, 255-16)
MCFG_SCREEN_PALETTE("palette")
- MCFG_PALETTE_ADD("palette", 8)
- MCFG_PALETTE_INIT_OWNER(gei_state, gei)
+ MCFG_PALETTE_ADD_3BIT_GBR("palette")
MCFG_NVRAM_ADD_0FILL("nvram")
@@ -1160,8 +1076,8 @@ static MACHINE_CONFIG_DERIVED( quizvid, findout )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(quizvid_map)
- MCFG_PALETTE_MODIFY("palette")
- MCFG_PALETTE_INIT_OWNER(gei_state,quizvid)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD_3BIT_GRB("palette")
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( gselect, getrivia )
@@ -1671,15 +1587,24 @@ ROM_START( gt507uk )
ROM_LOAD( "pop_music", 0x30000, 0x8000, CRC(884fec7c) SHA1(b389216c17f516df4e15eee46246719dd4acb587) )
ROM_END
-ROM_START( gtsers8 )
+ROM_START( gtsers8 ) /* TRIV-3 PCB, stickered 256 TRIV #8 4/85 */
ROM_REGION( 0x38000, "maincpu", 0 )
ROM_LOAD( "prog1_versionc", 0x00000, 0x4000, CRC(340246a4) SHA1(d655e1cf2b1e87a05e87ff6af4b794e6d54a2a52) )
ROM_LOAD( "science", 0x10000, 0x8000, CRC(2f940ebd) SHA1(bead4988ac0a97d70f2a3c0b40a05968436de2ed) )
ROM_LOAD( "general", 0x18000, 0x8000, CRC(1efa01c3) SHA1(801ef5ab55184e488b08ef99ebd641ea4f7edb24) )
ROM_LOAD( "sports", 0x20000, 0x8000, CRC(6bd1ba9a) SHA1(7caac1bd438a9b1d11fb33e11814b5d76951211a) )
- ROM_LOAD( "soccer", 0x28000, 0x8000, CRC(f821f860) SHA1(b0437ef5d31c507c6499c1fb732d2ba3b9beb151) )
- ROM_LOAD( "potpourri", 0x30000, 0x8000, CRC(f2968a28) SHA1(87c08c59dfee71e7bf071f09c3017c750a1c5694) )
- /* Missing Alternate question set: "Adult Sex" */
+ ROM_LOAD( "entertainment+", 0x28000, 0x8000, CRC(07068c9f) SHA1(1aedc78d071281ec8b08488cd82655d41a77cf6b) ) /* Labeled as ENTR 2* */
+ ROM_LOAD( "adult_sex", 0x30000, 0x8000, CRC(bc8ea9c3) SHA1(6aa4c5468508a50843d3f40b320fc06149fdd292) )
+ROM_END
+
+ROM_START( gtsers8a ) /* TRIV-3 PCB, stickered 256 TRIV #8 4/85 */
+ ROM_REGION( 0x38000, "maincpu", 0 )
+ ROM_LOAD( "prog1_versionc", 0x00000, 0x4000, CRC(340246a4) SHA1(d655e1cf2b1e87a05e87ff6af4b794e6d54a2a52) )
+ ROM_LOAD( "science", 0x10000, 0x8000, CRC(2f940ebd) SHA1(bead4988ac0a97d70f2a3c0b40a05968436de2ed) )
+ ROM_LOAD( "general", 0x18000, 0x8000, CRC(1efa01c3) SHA1(801ef5ab55184e488b08ef99ebd641ea4f7edb24) )
+ ROM_LOAD( "sports", 0x20000, 0x8000, CRC(6bd1ba9a) SHA1(7caac1bd438a9b1d11fb33e11814b5d76951211a) )
+ ROM_LOAD( "entertainment+", 0x28000, 0x8000, CRC(07068c9f) SHA1(1aedc78d071281ec8b08488cd82655d41a77cf6b) ) /* Labeled as ENTR 2* */
+ ROM_LOAD( "potpourri", 0x30000, 0x8000, CRC(f2968a28) SHA1(87c08c59dfee71e7bf071f09c3017c750a1c5694) ) /* Listed as an alternate question set */
ROM_END
ROM_START( gtsers9 ) /* TRIV-3 PCB, stickered 256 TRIV #9 7/85 */
@@ -1700,17 +1625,8 @@ ROM_START( gtsers10 ) /* TRIV-3 PCB, stickered 256 TRIV #10 8/85 */
ROM_LOAD( "new_tv_mash", 0x18000, 0x8000, CRC(f73240c6) SHA1(78020644074da719414133a86a91c1328e5d8929) )
ROM_LOAD( "new_entrtnmnt", 0x20000, 0x8000, CRC(0f54340c) SHA1(1ca4c23b542339791a2d8f4a9a857f755feca8a1) )
ROM_LOAD( "new_sports", 0x28000, 0x8000, CRC(19eff1a3) SHA1(8e024ae6cc572176c90d819a438ace7b2512dbf2) )
- ROM_LOAD( "new_science", 0x30000, 0x8000, CRC(2c46e355) SHA1(387ab389abaaea8e870b00039dd884237f7dd9c6) )
-ROM_END
-
-ROM_START( gtsers10a ) /* TRIV-3 PCB, stickered 256 TRIV #10 8/85 */
- ROM_REGION( 0x38000, "maincpu", 0 )
- ROM_LOAD( "prog1_versionc", 0x00000, 0x4000, CRC(340246a4) SHA1(d655e1cf2b1e87a05e87ff6af4b794e6d54a2a52) ) /* Also found with program v5.03 (not dumped) */
- ROM_LOAD( "new_general", 0x10000, 0x8000, CRC(ba1f5b92) SHA1(7e94be0ef6904331d3a6b266e5887e9a15c5e7f9) )
- ROM_LOAD( "new_tv_mash", 0x18000, 0x8000, CRC(f73240c6) SHA1(78020644074da719414133a86a91c1328e5d8929) )
- ROM_LOAD( "new_entrtnmnt", 0x20000, 0x8000, CRC(0f54340c) SHA1(1ca4c23b542339791a2d8f4a9a857f755feca8a1) )
- ROM_LOAD( "new_sports", 0x28000, 0x8000, CRC(19eff1a3) SHA1(8e024ae6cc572176c90d819a438ace7b2512dbf2) )
ROM_LOAD( "adult_sex_3", 0x30000, 0x8000, CRC(2c46e355) SHA1(387ab389abaaea8e870b00039dd884237f7dd9c6) ) /* Listed as an alternate question set */
+ /* Missing "new_science" */
ROM_END
ROM_START( gtsers11 ) /* TRIV-3 PCB, stickered 256 TRIV #11 8/85 */
@@ -1735,7 +1651,7 @@ ROM_END
ROM_START( gtsers12 )
ROM_REGION( 0x38000, "maincpu", 0 )
- ROM_LOAD( "prog1_versionc", 0x00000, 0x4000, CRC(340246a4) SHA1(d655e1cf2b1e87a05e87ff6af4b794e6d54a2a52) )
+ ROM_LOAD( "program_v5.03", 0x00000, 0x4000, CRC(888b7d9b) SHA1(e5ed4f22bff99c26cd6ef9a06cb386221e84bbf5) )
ROM_LOAD( "new_science_2+", 0x10000, 0x8000, CRC(3bd80fb8) SHA1(9a196595bc5dc6ed5ee5853786839ed4847fa436) ) /* Labeled as NEW SCNE 2* */
ROM_LOAD( "adult_sex_4+", 0x18000, 0x8000, CRC(9c32730e) SHA1(9d060e49a4c1dd8d978619b1c357c9e8238e5c96) ) /* Labeled as ADULT SEX 4* */
ROM_LOAD( "cops_&_robbers", 0x20000, 0x8000, CRC(8b367c33) SHA1(013468157bf469c9cf138809fdc45b3ba60a423b) )
@@ -1771,28 +1687,28 @@ ROM_START( gt103a1 ) /* Need to verify which series these belong to */
ROM_LOAD( "history-geog", 0x10000, 0x8000, CRC(c9a70fc3) SHA1(4021e5d702844416e8c798ed0a57c9ecd20b1d4b) )
ROM_LOAD( "n.f.l._football", 0x18000, 0x8000, CRC(d676b7cd) SHA1(d652d2441adb500f7af526d110d0335ea453d75b) )
ROM_LOAD( "rock_music", 0x20000, 0x8000, CRC(7f11733a) SHA1(d4d0dee75518edf986cb1241ade45ccb4840f088) )
- ROM_LOAD( "entertainment", 0x28000, 0x8000, CRC(07068c9f) SHA1(1aedc78d071281ec8b08488cd82655d41a77cf6b) )
+ ROM_LOAD( "soccer", 0x28000, 0x8000, CRC(f821f860) SHA1(b0437ef5d31c507c6499c1fb732d2ba3b9beb151) )
ROM_LOAD( "horrors", 0x30000, 0x8000, CRC(5f7b262a) SHA1(047480d6bf5c6d0603d538b84c996bd226f07f77) )
ROM_END
ROM_START( gt103aa )
ROM_REGION( 0x38000, "maincpu", 0 )
ROM_LOAD( "t_3a-8_1.bin", 0x00000, 0x4000, CRC(02aef306) SHA1(1ffc10c79a55d41ea36bcaab13cb3f02cb3f9712) ) /* "Park" alternate version sets here */
- ROM_LOAD( "entertainment_alt", 0x10000, 0x8000, CRC(9a6628b9) SHA1(c0cb7e974329d4d5b91f107296d21a674e35a51b) )
+ ROM_LOAD( "entertainment_alt", 0x10000, 0x8000, CRC(9a6628b9) SHA1(c0cb7e974329d4d5b91f107296d21a674e35a51b) ) /* From series 8 */
ROM_LOAD( "general_alt", 0x18000, 0x8000, CRC(df34f7f9) SHA1(329d123eea711d5135dc02dd7b89b220ce8ddd28) )
- ROM_LOAD( "science_alt", 0x20000, 0x8000, CRC(9eaebd18) SHA1(3a4d787cb006dbb23ce346577cb1bb5e543ba52c) )
- ROM_LOAD( "science_alt2", 0x28000, 0x8000, CRC(ac93d348) SHA1(55550ba6b5daffdf9653854075ad4f8398a5e621) )
+ ROM_LOAD( "science_alt", 0x20000, 0x8000, CRC(9eaebd18) SHA1(3a4d787cb006dbb23ce346577cb1bb5e543ba52c) ) /* From series 8 */
+ ROM_LOAD( "science_alt2", 0x28000, 0x8000, CRC(ac93d348) SHA1(55550ba6b5daffdf9653854075ad4f8398a5e621) ) /* From series 8 */
ROM_LOAD( "sports_alt2", 0x30000, 0x8000, CRC(40207845) SHA1(2dddb9685dcefabfde07057a639aa9d08da2329e) )
ROM_END
ROM_START( gt103ab )
ROM_REGION( 0x38000, "maincpu", 0 )
- ROM_LOAD( "t_3a-8_1.rom", 0x00000, 0x4000, CRC(02aef306) SHA1(1ffc10c79a55d41ea36bcaab13cb3f02cb3f9712) ) /* "Park" alternate version sets here */
- ROM_LOAD( "new_science_2_alt", 0x10000, 0x8000, CRC(3bd80fb8) SHA1(9a196595bc5dc6ed5ee5853786839ed4847fa436) )
+ ROM_LOAD( "t_3a-8_1.bin", 0x00000, 0x4000, CRC(02aef306) SHA1(1ffc10c79a55d41ea36bcaab13cb3f02cb3f9712) ) /* "Park" alternate version sets here */
+ ROM_LOAD( "new_science_2_alt", 0x10000, 0x8000, CRC(95836bfb) SHA1(deb546bcd9109efd2b1f405354916e439cd0749b) )
ROM_LOAD( "adult_sex_2_alt", 0x18000, 0x8000, CRC(8c0eacc8) SHA1(ddaa25548d161394b41c65a2db57a9fcf793062b) )
ROM_LOAD( "adult_sex_3_alt", 0x20000, 0x8000, CRC(63cbd1d6) SHA1(8dcd5546dc8688d6b8404d5cf63d8a59acc9bf4c) )
- ROM_LOAD( "adult_sex_4_alt", 0x28000, 0x8000, CRC(36a75071) SHA1(f08d31f241e1dc9b94b940cd2872a692f6f8475b) )
- ROM_LOAD( "rock-n-roll_alt", 0x30000, 0x8000, CRC(8eb83052) SHA1(93e3c1ae6c2048fb44ecafe1013b6a96da38fa84) )
+ ROM_LOAD( "rock-n-roll_alt", 0x28000, 0x8000, CRC(8eb83052) SHA1(93e3c1ae6c2048fb44ecafe1013b6a96da38fa84) )
+ ROM_LOAD( "cops_&_robbers_alt",0x30000, 0x8000, CRC(5176751a) SHA1(fbf0aeceeedb8a93c12920fecf6268893b393541) )
ROM_END
ROM_START( gt103asx ) /* Not sure there was ever an all Adult Trivia version. These are just the collection from all the series combined here */
@@ -1957,65 +1873,65 @@ 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)", GAME_IMPERFECT_GRAPHICS | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1982, superbwl, 0, gselect, gselect, gei_state, setbank, ROT0, "Greyhound Electronics", "Super Bowl (Version 16.03B)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-
-GAME( 1982, gs4002, 0, gselect, gselect, driver_device, 0, ROT0, "Greyhound Electronics", "Selection (Version 40.02TMB, set 1)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1982, gs4002a, gs4002, gselect, gselect, driver_device, 0, ROT0, "Greyhound Electronics", "Selection (Version 40.02TMB, set 2)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-
-GAME( 1982, amuse, 0, amuse, gepoker, driver_device, 0, ROT0, "Greyhound Electronics", "Amuse (Version 50.08 IBA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1982, amuse1, amuse, amuse1, gepoker, driver_device, 0, ROT0, "Greyhound Electronics", "Amuse (Version 30.08 IBA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1983, amuse1a, amuse, amuse1, gepoker, driver_device, 0, ROT0, "Greyhound Electronics", "Amuse (Version 30.08A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-
-GAME( 1984, gepoker, 0, gepoker, gepoker, driver_device, 0, ROT0, "Greyhound Electronics", "Poker (Version 50.02 ICB, set 1)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1984, gepoker1, gepoker, gepoker, gepoker, driver_device, 0, ROT0, "Greyhound Electronics", "Poker (Version 50.02 ICB, set 2)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1984, gepoker2, gepoker, gepoker, gepoker, driver_device, 0, ROT0, "Greyhound Electronics", "Poker (Version 50.02 ICB, set 3)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-
-GAME( 1984, gtsers1, 0, getrivia, getrivia, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 1)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1984, gtsers2, gtsers1, getrivia, getrivia, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 2)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1984, gtsers3, gtsers1, getrivia, getrivia, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 3)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1984, gtsers4, gtsers1, getrivia, getrivia, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 4)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1984, gtsers5, gtsers1, getrivia, getrivia, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 5)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1984, gtsers7, gtsers1, getrivia, getrivia, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 7)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1984, gtsersa, gtsers1, getrivia, getrivia, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Alt revision questions set 1)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1984, gtsersb, gtsers1, getrivia, getrivia, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Alt revision questions set 2)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1984, gtsers8, 0, findout, gt103a, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 8)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1984, gtsers9, gtsers8, findout, gt103a, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 9)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1984, gtsers10, gtsers8, findout, gt103a, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 10)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1984, gtsers10a,gtsers8, findout, gt103a, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 10 Alt Question Rom)",GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1984, gtsers11, gtsers8, findout, gt103a, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 11)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1984, gtsers11a,gtsers8, findout, gt103a, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 11 Alt Question Rom)",GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1984, gtsers12, gtsers8, findout, gt103a, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 12)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1986, gtsers14, gtsers8, findout, gt103, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 14)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1986, gtsers15, gtsers8, findout, gt103, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Questions Series 15)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1984, gt103a1, gtsers8, findout, gt103a, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Unsorted question roms)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1984, gt103aa, gtsers8, findout, gt103a, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Version 1.03a Alt questions 1)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1984, gt103ab, gtsers8, findout, gt103a, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Version 1.03a Alt questions 2)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1984, gt103asx, gtsers8, findout, gt103a, driver_device, 0, ROT0, "Greyhound Electronics", "Trivia (Version 1.03a Sex questions)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-
-GAME( 1985, sextriv1, 0, getrivia, sextriv1, driver_device, 0, ROT0, "Kinky Kit and Game Co.", "Sexual Trivia (Version 1.02SB, set 1)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1985, sextriv2, sextriv1, getrivia, sextriv1, driver_device, 0, ROT0, "Kinky Kit and Game Co.", "Sexual Trivia (Version 1.02SB, set 2)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-
-GAME( 1986, gt507uk, 0, findout, gt507uk, driver_device, 0, ROT0, "Grayhound Electronics", "Trivia (UK Version 5.07)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-
-GAME( 1986, quiz, 0, findout, quiz, driver_device, 0, ROT0, "Elettronolo", "Quiz (Revision 2)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-
-GAME( 1986, quizvid, 0, quizvid, quiz, driver_device, 0, ROT0, "bootleg", "Video Quiz", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-
-GAME( 1986, reelfun, 0, findout, reelfun, driver_device, 0, ROT0, "Grayhound Electronics", "Reel Fun (Version 7.03)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1986, reelfun1, reelfun, findout, reelfun, driver_device, 0, ROT0, "Grayhound Electronics", "Reel Fun (Version 7.01)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1987, findout, 0, findout, findout, driver_device, 0, ROT0, "Elettronolo", "Find Out (Version 4.04)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-
-GAME( 1986, suprpokr, 0, suprpokr, suprpokr, driver_device, 0, ROT0, "Grayhound Electronics", "Super Poker (Version 10.19S)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1986, suprpokra,suprpokr, suprpokr, suprpokr, driver_device, 0, ROT0, "Grayhound Electronics", "Super Poker (Version 10.15S)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1986, suprpokrb,suprpokr, suprpokr, suprpokr, driver_device, 0, ROT0, "Grayhound Electronics", "Super Poker (Version 10.10)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-
-GAME( 1991, quiz211, 0, findout, quiz, driver_device, 0, ROT0, "Elettronolo", "Quiz (Revision 2.11)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-
-GAME( 1992, sexappl, 0, findout, sexappl, driver_device, 0, ROT0, "Grayhound Electronics", "Sex Appeal (Version 6.02)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-
-GAME( 1992, geimulti, 0, geimulti, geimulti, gei_state, geimulti, ROT0, "Grayhound Electronics", "GEI Multi Game", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1992, sprtauth, 0, sprtauth, sprtauth, gei_state, geimulti, ROT0, "Classic Games", "Sports Authority", GAME_IMPERFECT_GRAPHICS | GAME_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, 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, 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 )
diff --git a/src/mess/drivers/geneve.c b/src/mame/drivers/geneve.c
index cf738540f11..c366b70b2e7 100644
--- a/src/mess/drivers/geneve.c
+++ b/src/mame/drivers/geneve.c
@@ -209,14 +209,15 @@
#include "machine/mm58274c.h"
#include "sound/sn76496.h"
-#include "machine/ti99/genboard.h"
-#include "bus/ti99_peb/peribox.h"
-#include "machine/ti99/videowrp.h"
+#include "bus/ti99x/genboard.h"
+#include "bus/ti99x/videowrp.h"
+#include "bus/ti99x/joyport.h"
-#include "machine/ti99/joyport.h"
+#include "bus/ti99_peb/peribox.h"
-#define VERBOSE 1
-#define LOG logerror
+#define TRACE_READY 0
+#define TRACE_LINES 0
+#define TRACE_CRU 0
#define SRAM_SIZE 384*1024 // maximum SRAM expansion on-board
#define DRAM_SIZE 512*1024
@@ -317,9 +318,11 @@ static INPUT_PORTS_START(geneve)
PORT_CONFSETTING( GENMOD, "GenMod" )
PORT_START( "BOOTROM" )
- PORT_CONFNAME( 0x01, GENEVE_098, "Boot ROM" ) PORT_CONDITION( "MODE", 0x01, EQUALS, 0x00 )
+ PORT_CONFNAME( 0x03, GENEVE_098, "Boot ROM" ) PORT_CHANGED_MEMBER(GMAPPER_TAG, geneve_mapper_device, settings_changed, 3)
PORT_CONFSETTING( GENEVE_098, "Version 0.98" )
PORT_CONFSETTING( GENEVE_100, "Version 1.00" )
+ PORT_CONFSETTING( GENEVE_PFM512, "PFM 512" )
+ PORT_CONFSETTING( GENEVE_PFM512A, "PFM 512A" )
PORT_START( "SRAM" )
PORT_CONFNAME( 0x03, 0x01, "Onboard SRAM" ) PORT_CONDITION( "MODE", 0x01, EQUALS, 0x00 )
@@ -328,10 +331,10 @@ static INPUT_PORTS_START(geneve)
PORT_CONFSETTING( 0x02, "384 KiB" )
PORT_START( "GENMODDIPS" )
- PORT_DIPNAME( GM_TURBO, 0x00, "Genmod Turbo mode") PORT_CONDITION( "MODE", 0x01, EQUALS, GENMOD ) PORT_CHANGED_MEMBER(GMAPPER_TAG, geneve_mapper_device, gm_changed, 1)
+ PORT_DIPNAME( GM_TURBO, 0x00, "Genmod Turbo mode") PORT_CONDITION( "MODE", 0x01, EQUALS, GENMOD ) PORT_CHANGED_MEMBER(GMAPPER_TAG, geneve_mapper_device, settings_changed, 1)
PORT_CONFSETTING( 0x00, DEF_STR( Off ))
PORT_CONFSETTING( GM_TURBO, DEF_STR( On ))
- PORT_DIPNAME( GM_TIM, GM_TIM, "Genmod TI mode") PORT_CONDITION( "MODE", 0x01, EQUALS, GENMOD ) PORT_CHANGED_MEMBER(GMAPPER_TAG, geneve_mapper_device, gm_changed, 2)
+ PORT_DIPNAME( GM_TIM, GM_TIM, "Genmod TI mode") PORT_CONDITION( "MODE", 0x01, EQUALS, GENMOD ) PORT_CHANGED_MEMBER(GMAPPER_TAG, geneve_mapper_device, settings_changed, 2)
PORT_CONFSETTING( 0x00, DEF_STR( Off ))
PORT_CONFSETTING( GM_TIM, DEF_STR( On ))
@@ -353,7 +356,7 @@ WRITE8_MEMBER ( geneve_state::cruwrite )
if ((addroff & 0xffc0) == CRU_SSTEP_BASE)
{
int bit = (addroff & 0x003e)>>1;
- if (VERBOSE>0) LOG("geneve: Single step not implemented; bit %d set to %d\n", bit, data);
+ logerror("geneve: Single step not implemented; bit %d set to %d\n", bit, data);
return;
}
@@ -364,47 +367,47 @@ WRITE8_MEMBER ( geneve_state::cruwrite )
{
case 5:
// No one really cares...
- if (VERBOSE>8) LOG("geneve: Set PAL flag = %02x\n", data);
+ if (TRACE_CRU) logerror("geneve: Set PAL flag = %02x\n", data);
// m_palvideo = (data!=0);
break;
case 7:
// m_capslock = (data!=0);
- if (VERBOSE>8) LOG("geneve: Set capslock flag = %02x\n", data);
+ if (TRACE_CRU) logerror("geneve: Set capslock flag = %02x\n", data);
break;
case 8:
- if (VERBOSE>8) LOG("geneve: Set keyboard clock flag = %02x\n", data);
+ if (TRACE_CRU) logerror("geneve: Set keyboard clock flag = %02x\n", data);
m_keyboard->clock_control((data!=0)? ASSERT_LINE : CLEAR_LINE);
break;
case 9:
- if (VERBOSE>8) LOG("geneve: Set keyboard scan flag = %02x\n", data);
+ if (TRACE_CRU) logerror("geneve: Set keyboard scan flag = %02x\n", data);
m_keyboard->send_scancodes((data!=0)? ASSERT_LINE : CLEAR_LINE);
break;
case 10:
- if (VERBOSE>8) LOG("geneve: Geneve mode = %02x\n", data);
+ if (TRACE_CRU) logerror("geneve: Geneve mode = %02x\n", data);
m_mapper->set_geneve_mode(data!=0);
break;
case 11:
- if (VERBOSE>8) LOG("geneve: Direct mode = %02x\n", data);
+ if (TRACE_CRU) logerror("geneve: Direct mode = %02x\n", data);
m_mapper->set_direct_mode(data!=0);
break;
case 12:
- if (VERBOSE>8) LOG("geneve: Cartridge size 8K = %02x\n", data);
+ if (TRACE_CRU) logerror("geneve: Cartridge size 8K = %02x\n", data);
m_mapper->set_cartridge_size((data!=0)? 0x2000 : 0x4000);
break;
case 13:
- if (VERBOSE>8) LOG("geneve: Cartridge writable 6000 = %02x\n", data);
+ if (TRACE_CRU) logerror("geneve: Cartridge writable 6000 = %02x\n", data);
m_mapper->set_cartridge_writable(0x6000, (data!=0));
break;
case 14:
- if (VERBOSE>8) LOG("geneve: Cartridge writable 7000 = %02x\n", data);
+ if (TRACE_CRU) logerror("geneve: Cartridge writable 7000 = %02x\n", data);
m_mapper->set_cartridge_writable(0x7000, (data!=0));
break;
case 15:
- if (VERBOSE>8) LOG("geneve: Extra wait states = %02x\n", data==0);
+ if (TRACE_CRU) logerror("geneve: Extra wait states = %02x\n", data==0);
m_mapper->set_extra_waitstates(data==0); // let's use the inverse semantics
break;
default:
- if (VERBOSE>0) LOG("geneve: set CRU address %04x=%02x ignored\n", addroff, data);
+ logerror("geneve: set CRU address %04x=%02x ignored\n", addroff, data);
break;
}
}
@@ -424,7 +427,7 @@ READ8_MEMBER( geneve_state::cruread )
if ((addroff & 0xffc0) == CRU_SSTEP_BASE)
{
int bit = (addroff & 0x003e)>>1;
- if (VERBOSE>0) LOG("geneve: Single step not implemented; attempting to read bit %d\n", bit);
+ logerror("geneve: Single step not implemented; attempting to read bit %d\n", bit);
return value;
}
@@ -476,7 +479,7 @@ READ8_MEMBER( geneve_state::read_by_9901 )
if (m_intb==CLEAR_LINE) answer |= 0x10;
if (m_video_wait==ASSERT_LINE) answer |= 0x20;
// TODO: PAL pin 5
- if (VERBOSE>8) LOG("geneve: INT15-8 = %02x\n", answer);
+ if (TRACE_LINES) logerror("geneve: INT15-8 = %02x\n", answer);
break;
case TMS9901_P0_P7:
@@ -504,7 +507,7 @@ READ8_MEMBER( geneve_state::read_by_9901 )
*/
WRITE_LINE_MEMBER( geneve_state::peripheral_bus_reset )
{
- if (VERBOSE>0) LOG("geneve: peripheral bus reset request; not implemented yet.\n");
+ logerror("geneve: Peripheral bus reset request; not implemented yet.\n");
}
/*
@@ -512,7 +515,7 @@ WRITE_LINE_MEMBER( geneve_state::peripheral_bus_reset )
*/
WRITE_LINE_MEMBER( geneve_state::VDP_reset )
{
- if (VERBOSE>0) LOG("geneve: Video reset request; not implemented yet.\n");
+ logerror("geneve: Video reset request; not implemented yet.\n");
}
/*
@@ -528,7 +531,7 @@ WRITE_LINE_MEMBER( geneve_state::joystick_select )
*/
WRITE_LINE_MEMBER( geneve_state::extbus_wait_states )
{
- if (VERBOSE>0) LOG("geneve: external bus wait states set to %d, not implemented yet.\n", state);
+ logerror("geneve: External bus wait states set to %d, not implemented yet.\n", state);
}
/*
@@ -537,7 +540,7 @@ WRITE_LINE_MEMBER( geneve_state::extbus_wait_states )
*/
WRITE_LINE_MEMBER( geneve_state::video_wait_states )
{
- if (VERBOSE>1) LOG("geneve: video wait states set to %d\n", state);
+ if (TRACE_LINES) logerror("geneve: Video wait states set to %d\n", state);
m_mapper->set_video_waitstates(state==ASSERT_LINE);
m_video_wait = (state!=0)? ASSERT_LINE : CLEAR_LINE;
}
@@ -554,39 +557,6 @@ WRITE8_MEMBER( geneve_state::tms9901_interrupt )
m_cpu->set_input_line(INT_9995_INT1, data);
}
-/*
-// tms9901 setup
-const tms9901_interface tms9901_wiring_geneve =
-{
- TMS9901_INT1 | TMS9901_INT2 | TMS9901_INT8 | TMS9901_INTB | TMS9901_INTC,
-
- // read handler
- DEVCB_DRIVER_MEMBER(geneve_state, read_by_9901),
-
- { // write handlers
- DEVCB_DRIVER_LINE_MEMBER(geneve_state, peripheral_bus_reset),
- DEVCB_DRIVER_LINE_MEMBER(geneve_state, VDP_reset),
- DEVCB_DRIVER_LINE_MEMBER(geneve_state, joystick_select),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DEVICE_LINE_MEMBER(GKEYBOARD_TAG, geneve_keyboard_device, reset_line),
- DEVCB_DRIVER_LINE_MEMBER(geneve_state, extbus_wait_states),
- DEVCB_NULL,
- DEVCB_DRIVER_LINE_MEMBER(geneve_state, video_wait_states),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
- },
-
- // interrupt handler
- DEVCB_DRIVER_MEMBER(geneve_state, tms9901_interrupt)
-};
-*/
-
/*******************************************************************
Signal lines
*******************************************************************/
@@ -612,14 +582,14 @@ WRITE_LINE_MEMBER( geneve_state::intb )
WRITE_LINE_MEMBER( geneve_state::ext_ready )
{
- if (VERBOSE>6) LOG("geneve: READY level (ext) = %02x\n", state);
+ if (TRACE_READY) logerror("geneve: READY level (ext) = %02x\n", state);
m_ready_line = state;
m_cpu->set_ready((m_ready_line == ASSERT_LINE && m_ready_line1 == ASSERT_LINE)? ASSERT_LINE : CLEAR_LINE);
}
WRITE_LINE_MEMBER( geneve_state::mapper_ready )
{
- if (VERBOSE>6) LOG("geneve: READY level (mapper) = %02x\n", state);
+ if (TRACE_READY) logerror("geneve: READY level (mapper) = %02x\n", state);
m_ready_line1 = state;
m_cpu->set_ready((m_ready_line == ASSERT_LINE && m_ready_line1 == ASSERT_LINE)? ASSERT_LINE : CLEAR_LINE);
}
@@ -649,8 +619,6 @@ TIMER_DEVICE_CALLBACK_MEMBER(geneve_state::geneve_hblank_interrupt)
{
int scanline = param;
- machine().device<v9938_device>(VDP_TAG)->interrupt();
-
if (scanline == 0) // was 262
{
// TODO
@@ -666,8 +634,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(geneve_state::geneve_hblank_interrupt)
WRITE8_MEMBER( geneve_state::external_operation )
{
static const char* extop[8] = { "inv1", "inv2", "IDLE", "RSET", "inv3", "CKON", "CKOF", "LREX" };
- if (VERBOSE>1)
- if (offset != IDLE_OP) LOG("geneve: External operation %s not implemented on Geneve board\n", extop[offset]);
+ if (offset != IDLE_OP) logerror("geneve: External operation %s not implemented on Geneve board\n", extop[offset]);
}
/*
@@ -738,9 +705,12 @@ static MACHINE_CONFIG_START( geneve_60hz, geneve_state )
MCFG_TMS9901_P0_HANDLER( WRITELINE( geneve_state, peripheral_bus_reset) )
MCFG_TMS9901_P1_HANDLER( WRITELINE( geneve_state, VDP_reset) )
MCFG_TMS9901_P2_HANDLER( WRITELINE( geneve_state, joystick_select) )
+ MCFG_TMS9901_P4_HANDLER( DEVWRITELINE( GMAPPER_TAG, geneve_mapper_device, pfm_select_lsb) ) // new for PFM
+ MCFG_TMS9901_P5_HANDLER( DEVWRITELINE( GMAPPER_TAG, geneve_mapper_device, pfm_output_enable) ) // new for PFM
MCFG_TMS9901_P6_HANDLER( DEVWRITELINE( GKEYBOARD_TAG, geneve_keyboard_device, reset_line) )
MCFG_TMS9901_P7_HANDLER( WRITELINE( geneve_state, extbus_wait_states) )
MCFG_TMS9901_P9_HANDLER( WRITELINE( geneve_state, video_wait_states) )
+ MCFG_TMS9901_P13_HANDLER( DEVWRITELINE( GMAPPER_TAG, geneve_mapper_device, pfm_select_msb) ) // new for PFM
MCFG_TMS9901_INTLEVEL_HANDLER( WRITE8( geneve_state, tms9901_interrupt) )
// Mapper
@@ -768,6 +738,10 @@ static MACHINE_CONFIG_START( geneve_60hz, geneve_state )
MCFG_GENEVE_MOUSE_ADD( GMOUSE_TAG )
MCFG_GENEVE_JOYPORT_ADD( JOYPORT_TAG )
+ // PFM expansion
+ MCFG_AT29C040_ADD( PFM512_TAG )
+ MCFG_AT29C040A_ADD( PFM512A_TAG )
+
MACHINE_CONFIG_END
/*
diff --git a/src/mess/drivers/geniusiq.c b/src/mame/drivers/geniusiq.c
index 24376a72717..1ca2024e693 100644
--- a/src/mess/drivers/geniusiq.c
+++ b/src/mame/drivers/geniusiq.c
@@ -890,11 +890,11 @@ 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)", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 1997, iq128_fr, iq128, 0, iq128, geniusiq, driver_device, 0, "Video Technology", "Genius IQ 128 (France)", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 1998, iqtv512, 0, 0, iqtv512, geniusiq_de, driver_device, 0, "Video Technology", "Genius IQ TV 512 (Germany)", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 1999, gl8008cx, 0, 0, gl8008cx, gl8008cx, driver_device, 0, "Video Technology", "Genius Leader 8008 CX (Germany)", GAME_IS_SKELETON)
-COMP( 1999, bs9009cx, 0, 0, gl8008cx, gl8008cx, driver_device, 0, "Video Technology", "BrainStation 9009 CXL (Germany)", GAME_IS_SKELETON)
-COMP( 1998, itunlim, 0, 0, iq128, geniusiq_de, driver_device, 0, "Video Technology", "Vtech IT Unlimited (UK)", GAME_NO_SOUND)
-COMP( 19??, iqunlim, 0, 0, iq128, geniusiq_de, driver_device, 0, "Video Technology", "Vtech IQ Unlimited (Germany)", GAME_IS_SKELETON)
-COMP( 19??, glmmc, 0, 0, iq128, geniusiq_de, driver_device, 0, "Video Technology", "Genius Leader Master Mega Color (Germany)", GAME_IS_SKELETON)
+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)
diff --git a/src/mess/drivers/genpc.c b/src/mame/drivers/genpc.c
index 75d36bb8c5e..a17a2dd9d29 100644
--- a/src/mess/drivers/genpc.c
+++ b/src/mame/drivers/genpc.c
@@ -277,4 +277,4 @@ COMP( 1987, pc, ibm5150, 0, pccga, pcgen, driver_device
COMP( 1987, pcega, ibm5150, 0, pcega, pcgen, driver_device, 0, "<generic>", "PC (EGA)" , 0)
COMP ( 1987, pcmda, ibm5150, 0, pcmda, pcgen, driver_device, 0, "<generic>", "PC (MDA)" , 0)
COMP ( 1987, pcherc, ibm5150, 0, pcherc, pcgen, driver_device, 0, "<generic>", "PC (Hercules)" , 0)
-COMP ( 1987, xtvga, ibm5150, 0, xtvga, pcgen, driver_device, 0, "<generic>", "PC (VGA)" , GAME_NOT_WORKING)
+COMP ( 1987, xtvga, ibm5150, 0, xtvga, pcgen, driver_device, 0, "<generic>", "PC (VGA)" , MACHINE_NOT_WORKING)
diff --git a/src/mame/drivers/ggconnie.c b/src/mame/drivers/ggconnie.c
index 4a640487e8e..0e466d19adb 100644
--- a/src/mame/drivers/ggconnie.c
+++ b/src/mame/drivers/ggconnie.c
@@ -236,4 +236,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", GAME_NO_SOUND | GAME_NOT_WORKING )
+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 )
diff --git a/src/mame/drivers/ghosteo.c b/src/mame/drivers/ghosteo.c
index 298d90784ba..992d5e6c8f3 100644
--- a/src/mame/drivers/ghosteo.c
+++ b/src/mame/drivers/ghosteo.c
@@ -765,6 +765,6 @@ DRIVER_INIT_MEMBER(ghosteo_state,touryuu)
m_rom_pagesize = 0x210;
}
-GAME( 2003, bballoon, 0, bballoon, bballoon, ghosteo_state, bballoon, ROT0, "Eolith", "BnB Arcade", GAME_IMPERFECT_SOUND )
-GAME( 2005, hapytour, 0, bballoon, bballoon, ghosteo_state, bballoon, ROT0, "GAV Company", "Happy Tour", GAME_IMPERFECT_SOUND )
-GAME( 2005, touryuu, 0, touryuu, touryuu, ghosteo_state, touryuu, ROT0, "Yuki Enterprise", "Touryuumon (V1.1)?", GAME_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/gijoe.c b/src/mame/drivers/gijoe.c
index 0c66bf987f6..8556742921f 100644
--- a/src/mame/drivers/gijoe.c
+++ b/src/mame/drivers/gijoe.c
@@ -470,7 +470,7 @@ ROM_START( gijoej )
ROM_END
-GAME( 1992, gijoe, 0, gijoe, gijoe, driver_device, 0, ROT0, "Konami", "G.I. Joe (World, EAB, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1992, gijoea, gijoe, gijoe, gijoe, driver_device, 0, ROT0, "Konami", "G.I. Joe (World, EB8, prototype?)", GAME_SUPPORTS_SAVE )
-GAME( 1992, gijoeu, gijoe, gijoe, gijoe, driver_device, 0, ROT0, "Konami", "G.I. Joe (US, UAB)", GAME_SUPPORTS_SAVE )
-GAME( 1992, gijoej, gijoe, gijoe, gijoe, driver_device, 0, ROT0, "Konami", "G.I. Joe (Japan, JAA)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/gimix.c b/src/mame/drivers/gimix.c
index 4588f8006a4..2f04b6688d2 100644
--- a/src/mess/drivers/gimix.c
+++ b/src/mame/drivers/gimix.c
@@ -683,4 +683,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", GAME_IS_SKELETON | GAME_NOT_WORKING | GAME_NO_SOUND )
+COMP( 1980, gimix, 0, 0, gimix, gimix, driver_device, 0, "Gimix", "Gimix 6809 System", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/ginganin.c b/src/mame/drivers/ginganin.c
index 10f18c39e17..cd8dffb1f8e 100644
--- a/src/mame/drivers/ginganin.c
+++ b/src/mame/drivers/ginganin.c
@@ -374,5 +374,5 @@ DRIVER_INIT_MEMBER(ginganin_state,ginganin)
}
-GAME( 1987, ginganin, 0, ginganin, ginganin, ginganin_state, ginganin, ROT0, "Jaleco", "Ginga NinkyouDen (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1987, ginganina, ginganin, ginganin, ginganin, ginganin_state, ginganin, ROT0, "Jaleco", "Ginga NinkyouDen (set 2)", GAME_SUPPORTS_SAVE )
+GAME( 1987, ginganin, 0, ginganin, ginganin, ginganin_state, ginganin, ROT0, "Jaleco", "Ginga NinkyouDen (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, ginganina, ginganin, ginganin, ginganin, ginganin_state, ginganin, ROT0, "Jaleco", "Ginga NinkyouDen (set 2)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/gizmondo.c b/src/mame/drivers/gizmondo.c
index 09d05d3106d..c048a9ce672 100644
--- a/src/mess/drivers/gizmondo.c
+++ b/src/mame/drivers/gizmondo.c
@@ -246,4 +246,4 @@ ROM_START( gizmondo )
ROMX_LOAD( "fboot.bin", 0, 0x800, CRC(28887c29) SHA1(e625caaa63b9db74cb6d7499dce12ac758c5fe76), ROM_BIOS(1) )
ROM_END
-CONS(2005, gizmondo, 0, 0, gizmondo, gizmondo, gizmondo_state, gizmondo, "Tiger Telematics", "Gizmondo", GAME_NOT_WORKING | GAME_NO_SOUND)
+CONS(2005, gizmondo, 0, 0, gizmondo, gizmondo, gizmondo_state, gizmondo, "Tiger Telematics", "Gizmondo", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/gladiatr.c b/src/mame/drivers/gladiatr.c
index 8d538907b5e..029352ff5bb 100644
--- a/src/mame/drivers/gladiatr.c
+++ b/src/mame/drivers/gladiatr.c
@@ -994,7 +994,7 @@ DRIVER_INIT_MEMBER(gladiatr_state,gladiatr)
membank("bank1")->configure_entries(0, 2, memregion("maincpu")->base() + 0x10000, 0x6000);
membank("bank2")->configure_entries(0, 2, memregion("audiocpu")->base() + 0x10000, 0xc000);
-
+
/* make sure bank is valid in cpu-reset */
membank("bank2")->set_entry(0);
}
@@ -1038,8 +1038,8 @@ DRIVER_INIT_MEMBER(gladiatr_state,ppking)
-GAME( 1985, ppking, 0, ppking, 0, gladiatr_state, ppking, ROT90, "Taito America Corporation", "Ping-Pong King", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1986, gladiatr, 0, gladiatr, gladiatr, gladiatr_state, gladiatr, ROT0, "Allumer / Taito America Corporation", "Gladiator (US)", GAME_SUPPORTS_SAVE )
-GAME( 1986, ogonsiro, gladiatr, gladiatr, gladiatr, gladiatr_state, gladiatr, ROT0, "Allumer / Taito Corporation", "Ougon no Shiro (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1986, greatgur, gladiatr, gladiatr, gladiatr, gladiatr_state, gladiatr, ROT0, "Allumer / Taito Corporation", "Great Gurianos (Japan?)", GAME_SUPPORTS_SAVE )
-GAME( 1986, gcastle, gladiatr, gladiatr, gladiatr, gladiatr_state, gladiatr, ROT0, "Allumer / Taito Corporation", "Golden Castle (prototype?)", GAME_SUPPORTS_SAVE ) // incomplete dump
+GAME( 1985, ppking, 0, ppking, 0, gladiatr_state, ppking, ROT90, "Taito America Corporation", "Ping-Pong King", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1986, gladiatr, 0, gladiatr, gladiatr, gladiatr_state, gladiatr, ROT0, "Allumer / Taito America Corporation", "Gladiator (US)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, ogonsiro, gladiatr, gladiatr, gladiatr, gladiatr_state, gladiatr, ROT0, "Allumer / Taito Corporation", "Ougon no Shiro (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, greatgur, gladiatr, gladiatr, gladiatr, gladiatr_state, gladiatr, ROT0, "Allumer / Taito Corporation", "Great Gurianos (Japan?)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, gcastle, gladiatr, gladiatr, gladiatr, gladiatr_state, gladiatr, ROT0, "Allumer / Taito Corporation", "Golden Castle (prototype?)", MACHINE_SUPPORTS_SAVE ) // incomplete dump
diff --git a/src/mess/drivers/glasgow.c b/src/mame/drivers/glasgow.c
index 47ac4b8b2e7..803fd591005 100644
--- a/src/mess/drivers/glasgow.c
+++ b/src/mame/drivers/glasgow.c
@@ -61,7 +61,9 @@ public:
glasgow_state(const machine_config &mconfig, device_type type, const char *tag)
: mboard_state(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
- m_beep(*this, "beeper")
+ m_beep(*this, "beeper"),
+ m_line0(*this, "LINE0"),
+ m_line1(*this, "LINE1")
{ }
required_device<cpu_device> m_maincpu;
@@ -89,6 +91,8 @@ public:
DECLARE_MACHINE_START(dallas32);
TIMER_DEVICE_CALLBACK_MEMBER(update_nmi);
TIMER_DEVICE_CALLBACK_MEMBER(update_nmi32);
+ required_ioport m_line0;
+ required_ioport m_line1;
};
@@ -126,10 +130,10 @@ READ16_MEMBER( glasgow_state::glasgow_keys_r )
/* See if any keys pressed */
data = 3;
- if (mboard_key_select == ioport("LINE0")->read())
+ if (mboard_key_select == m_line0->read())
data &= 1;
- if (mboard_key_select == ioport("LINE1")->read())
+ if (mboard_key_select == m_line1->read())
data &= 2;
return data << 8;
@@ -188,9 +192,9 @@ READ16_MEMBER( glasgow_state::read_newkeys16 ) //Amsterdam, Roma
UINT16 data;
if (mboard_key_selector == 0)
- data = ioport("LINE0")->read();
+ data = m_line0->read();
else
- data = ioport("LINE1")->read();
+ data = m_line1->read();
logerror("read Keyboard Offset = %x Data = %x Select = %x \n", offset, data, mboard_key_selector);
data <<= 8;
@@ -251,10 +255,10 @@ READ32_MEMBER( glasgow_state::read_newkeys32 ) // Dallas 32, Roma 32
UINT32 data;
if (mboard_key_selector == 0)
- data = ioport("LINE0")->read();
+ data = m_line0->read();
else
- data = ioport("LINE1")->read();
- //if (mboard_key_selector == 1) data = machine.root_device().ioport("LINE0")->read(); else data = 0;
+ data = m_line1->read();
+ //if (mboard_key_selector == 1) data = m_line0->read(); else data = 0;
if(data)
logerror("read Keyboard Offset = %x Data = %x\n", offset, data);
data <<= 24;
@@ -399,113 +403,16 @@ static INPUT_PORTS_START( old_keyboard ) //Glasgow,Dallas
INPUT_PORTS_END
-static INPUT_PORTS_START( board )
- PORT_START("LINE2")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_START("LINE3")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_START("LINE4")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_START("LINE5")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_START("LINE6")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_START("LINE7")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_START("LINE8")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_START("LINE9")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD)
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD)
-
- PORT_START("LINE10")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD)
-
- PORT_START("B_WHITE")
- PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD)
- PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD)
- PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD)
- PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD)
- PORT_BIT(0x010, IP_ACTIVE_HIGH, IPT_KEYBOARD)
- PORT_BIT(0x020, IP_ACTIVE_HIGH, IPT_KEYBOARD)
-
- PORT_START("B_BLACK")
- PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD)
- PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD)
- PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD)
- PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD)
- PORT_BIT(0x010, IP_ACTIVE_HIGH, IPT_KEYBOARD)
- PORT_BIT(0x020, IP_ACTIVE_HIGH, IPT_KEYBOARD)
-
- PORT_START("B_BUTTONS")
- PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD)
- PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD)
-
-INPUT_PORTS_END
+INPUT_PORTS_EXTERN( chessboard);
static INPUT_PORTS_START( oldkeys )
PORT_INCLUDE( old_keyboard )
- PORT_INCLUDE( board )
+ PORT_INCLUDE( chessboard )
INPUT_PORTS_END
static INPUT_PORTS_START( newkeys )
PORT_INCLUDE( new_keyboard )
- PORT_INCLUDE( board )
+ PORT_INCLUDE( chessboard )
INPUT_PORTS_END
static MACHINE_CONFIG_START( glasgow, glasgow_state )
@@ -593,10 +500,10 @@ ROM_END
***************************************************************************/
/* YEAR, NAME, PARENT, COMPAT, MACHINE, INPUT, INIT, COMPANY, FULLNAME, FLAGS */
-CONS( 1984, glasgow, 0, 0, glasgow, oldkeys, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto III S Glasgow", GAME_SUPPORTS_SAVE)
-CONS( 1984, amsterd, 0, 0, amsterd, newkeys, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Amsterdam", GAME_SUPPORTS_SAVE)
-CONS( 1984, dallas, glasgow, 0, glasgow, oldkeys, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Dallas", GAME_SUPPORTS_SAVE)
-CONS( 1984, roma, amsterd, 0, glasgow, newkeys, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Roma", GAME_NOT_WORKING)
-CONS( 1984, dallas32, amsterd, 0, dallas32, newkeys, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Dallas 32 Bit", GAME_SUPPORTS_SAVE)
-CONS( 1984, roma32, amsterd, 0, dallas32, newkeys, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Roma 32 Bit", GAME_SUPPORTS_SAVE)
-CONS( 1984, dallas16, amsterd, 0, amsterd, newkeys, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Dallas 16 Bit", GAME_SUPPORTS_SAVE)
+CONS( 1984, glasgow, 0, 0, glasgow, oldkeys, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto III S Glasgow", MACHINE_SUPPORTS_SAVE)
+CONS( 1984, amsterd, 0, 0, amsterd, newkeys, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Amsterdam", MACHINE_SUPPORTS_SAVE)
+CONS( 1984, dallas, glasgow, 0, glasgow, oldkeys, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Dallas", MACHINE_SUPPORTS_SAVE)
+CONS( 1984, roma, amsterd, 0, glasgow, newkeys, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Roma", MACHINE_NOT_WORKING)
+CONS( 1984, dallas32, amsterd, 0, dallas32, newkeys, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Dallas 32 Bit", MACHINE_SUPPORTS_SAVE)
+CONS( 1984, roma32, amsterd, 0, dallas32, newkeys, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Roma 32 Bit", MACHINE_SUPPORTS_SAVE)
+CONS( 1984, dallas16, amsterd, 0, amsterd, newkeys, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Dallas 16 Bit", MACHINE_SUPPORTS_SAVE)
diff --git a/src/mame/drivers/glass.c b/src/mame/drivers/glass.c
index 17bbc802e52..b4e30ce200a 100644
--- a/src/mame/drivers/glass.c
+++ b/src/mame/drivers/glass.c
@@ -417,6 +417,6 @@ DRIVER_INIT_MEMBER(glass_state,glass)
}
-GAME( 1993, glass, 0, glass, glass, glass_state, glass, ROT0, "OMK / Gaelco", "Glass (Ver 1.1)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1993, glass10, glass, glass, glass, glass_state, glass, ROT0, "OMK / Gaelco", "Glass (Ver 1.0)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1993, glassbrk, glass, glass, glass, glass_state, glass, ROT0, "OMK / Gaelco", "Glass (Ver 1.0, Break Edition)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
+GAME( 1993, glass, 0, glass, glass, glass_state, glass, ROT0, "OMK / Gaelco", "Glass (Ver 1.1)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1993, glass10, glass, glass, glass, glass_state, glass, ROT0, "OMK / Gaelco", "Glass (Ver 1.0)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1993, glassbrk, glass, glass, glass, glass_state, glass, ROT0, "OMK / Gaelco", "Glass (Ver 1.0, Break Edition)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/globalfr.c b/src/mame/drivers/globalfr.c
index 5aca2c2c2bb..b64b666aba7 100644
--- a/src/mame/drivers/globalfr.c
+++ b/src/mame/drivers/globalfr.c
@@ -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)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, gl_snbeva, gl_snbev, globalfr, globalfr, driver_device, 0, ROT0, "Global", "Saturday Night Beaver (Global) (Stealth?) (set 2)",GAME_IS_SKELETON_MECHANICAL )
+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 )
// standalone game or topbox?
-GAME( 199?, gl_grncl, 0, globalfr, globalfr, driver_device, 0, ROT0, "Global", "Grid Runner Club (Global) (Stealth?) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, gl_grncla, gl_grncl, globalfr, globalfr, driver_device, 0, ROT0, "Global", "Grid Runner Club (Global) (Stealth?) (set 2)",GAME_IS_SKELETON_MECHANICAL )
+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_dow, 0, globalfr, globalfr, driver_device, 0, ROT0, "Global", "Deals On Wheels (Global) (v1.4) (Stealth)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 199?, gl_dowp, gl_dow, globalfr, globalfr, driver_device, 0, ROT0, "Global", "Deals On Wheels (Global) (v1.4 Protocol) (Stealth)", GAME_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_dowcl,0, globalfr, globalfr, driver_device, 0, ROT0, "Global", "Deals On Wheels Club (Global) (v1.6) (Stealth)", GAME_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)", GAME_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_wywh, 0, globalfr, globalfr, driver_device, 0, ROT0, "Global", "Wish You Were Here Club (Global) (v2.9) (Stealth)", GAME_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)", GAME_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)", GAME_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)", GAME_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_coc, 0, globalfr, globalfr, driver_device, 0, ROT0, "Global", "Carry On Clubbin' (Global) (v3.0) (Stealth)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 199?, gl_cocp, gl_coc, globalfr, globalfr, driver_device, 0, ROT0, "Global", "Carry On Clubbin' (Global) (v3.0 Protocol) (Stealth)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 199?, gl_coc29, gl_coc, globalfr, globalfr, driver_device, 0, ROT0, "Global", "Carry On Clubbin' (Global) (v2.9) (Stealth)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 199?, gl_coc29p,gl_coc, globalfr, globalfr, driver_device, 0, ROT0, "Global", "Carry On Clubbin' (Global) (v2.9 Protocol) (Stealth)", GAME_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_uyr, 0, globalfr, globalfr, driver_device, 0, ROT0, "Global", "Up Yer Riggin Club (Global) (v2.8) (Stealth)", GAME_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)", GAME_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_hbh, 0, globalfr, globalfr, driver_device, 0, ROT0, "Global", "Heartbreak Hotel (Global) (v1.0) (Stealth)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 199?, gl_hbhcl,0, globalfr, globalfr, driver_device, 0, ROT0, "Global", "Heartbreak Hotel Club (Global) (v1.9) (Stealth)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 199?, gl_hbhclp,gl_hbhcl, globalfr, globalfr, driver_device, 0, ROT0, "Global", "Heartbreak Hotel Club (Global) (v1.9 Protocol) (Stealth)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 199?, gl_hbhcla,gl_hbhcl, globalfr, globalfr, driver_device, 0, ROT0, "Global", "Heartbreak Hotel Club (Global) (Set 2) (Stealth)", GAME_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)
diff --git a/src/mame/drivers/globalvr.c b/src/mame/drivers/globalvr.c
index 8565c0b4292..04b957b9c90 100644
--- a/src/mame/drivers/globalvr.c
+++ b/src/mame/drivers/globalvr.c
@@ -144,14 +144,14 @@ 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", GAME_IS_SKELETON )
-GAME( 2001, hyperv2a, 0, globalvr, globalvr, driver_device, 0, ROT0, "Global VR", "Hyper V2 (Global VR) Install - 09/30/01", GAME_IS_SKELETON )
-GAME( 2001, gvrxpsys, 0, globalvr, globalvr, driver_device, 0, ROT0, "Global VR", "Global VR XP OS Install - 09/30/01", GAME_IS_SKELETON )
-GAME( 2002, gvrxpsup, 0, globalvr, globalvr, driver_device, 0, ROT0, "Global VR", "Global VR XP OS Update/Install - 06/11/02", GAME_IS_SKELETON )
+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 )
/* Game Installer CDs */
-GAME( 2000, bhead2k, 0, globalvr, globalvr, driver_device, 0, ROT0, "Global VR", "Beach Head 2000 Install - 05/27/03", GAME_IS_SKELETON )
-GAME( 2000, bhead2ka, 0, globalvr, globalvr, driver_device, 0, ROT0, "Global VR", "Beach Head 2000 Install - 09/16/01", GAME_IS_SKELETON )
-GAME( 2002, bhead2k2, 0, globalvr, globalvr, driver_device, 0, ROT0, "Global VR", "Beach Head 2002 Install - 05/27/03", GAME_IS_SKELETON )
-GAME( 2003, bhead2k3, 0, globalvr, globalvr, driver_device, 0, ROT0, "Global VR", "Beach Head 2003 Desert War Install - 05/27/03", GAME_IS_SKELETON )
-GAME( 2005, nfsug, 0, globalvr, globalvr, driver_device, 0, ROT0, "Global VR", "Need For Speed: Underground Install (2 Discs) (v1.1)", GAME_IS_SKELETON )
+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 )
diff --git a/src/mame/drivers/gluck2.c b/src/mame/drivers/gluck2.c
index ed4eb8fa51d..a34f598352d 100644
--- a/src/mame/drivers/gluck2.c
+++ b/src/mame/drivers/gluck2.c
@@ -585,4 +585,4 @@ ROM_END
*********************************************/
/* 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", GAME_SUPPORTS_SAVE )
+GAME( 1992, gluck2, 0, gluck2, gluck2, driver_device, 0, ROT0, "Yung Yu / CYE", "Good Luck II", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/gmaster.c b/src/mame/drivers/gmaster.c
index 6ed1c9bbf9f..aba49b950b3 100644
--- a/src/mess/drivers/gmaster.c
+++ b/src/mame/drivers/gmaster.c
@@ -312,4 +312,4 @@ ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME */
-CONS( 1990, gmaster, 0, 0, gmaster, gmaster, gmaster_state, gmaster, "Hartung", "Game Master", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND)
+CONS( 1990, gmaster, 0, 0, gmaster, gmaster, gmaster_state, gmaster, "Hartung", "Game Master", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
diff --git a/src/mame/drivers/gng.c b/src/mame/drivers/gng.c
index 6876f23ec63..bcb2af6418f 100644
--- a/src/mame/drivers/gng.c
+++ b/src/mame/drivers/gng.c
@@ -778,14 +778,14 @@ DRIVER_INIT_MEMBER(gng_state,diamond)
-GAME( 1985, gng, 0, gng, gng, driver_device, 0, ROT0, "Capcom", "Ghosts'n Goblins (World? set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1985, gnga, gng, gng, gng, driver_device, 0, ROT0, "Capcom", "Ghosts'n Goblins (World? set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1985, gngbl, gng, gng, gng, driver_device, 0, ROT0, "bootleg", "Ghosts'n Goblins (bootleg with Cross)", GAME_SUPPORTS_SAVE )
-GAME( 1985, gngprot, gng, gng, gng, driver_device, 0, ROT0, "Capcom", "Ghosts'n Goblins (prototype)", GAME_SUPPORTS_SAVE )
-GAME( 1985, gngblita, gng, gng, gng, driver_device, 0, ROT0, "bootleg", "Ghosts'n Goblins (Italian bootleg, harder)", GAME_SUPPORTS_SAVE )
-GAME( 1985, gngc, gng, gng, gng, driver_device, 0, ROT0, "Capcom", "Ghosts'n Goblins (World? set 3)", GAME_SUPPORTS_SAVE ) // rev c?
-GAME( 1985, gngt, gng, gng, gng, driver_device, 0, ROT0, "Capcom (Taito America license)", "Ghosts'n Goblins (US)", GAME_SUPPORTS_SAVE )
-GAME( 1985, makaimur, gng, gng, makaimur, driver_device, 0, ROT0, "Capcom", "Makai-Mura (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1985, makaimurc, gng, gng, makaimur, driver_device, 0, ROT0, "Capcom", "Makai-Mura (Japan Revision C)", GAME_SUPPORTS_SAVE )
-GAME( 1985, makaimurg, gng, gng, makaimur, driver_device, 0, ROT0, "Capcom", "Makai-Mura (Japan Revision G)", GAME_SUPPORTS_SAVE )
-GAME( 1989, diamond, 0, gng, diamond, gng_state, diamond, ROT0, "KH Video", "Diamond Run", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/go2000.c b/src/mame/drivers/go2000.c
index 714f740f0ec..8e87eec9e6c 100644
--- a/src/mame/drivers/go2000.c
+++ b/src/mame/drivers/go2000.c
@@ -52,7 +52,6 @@ public:
/* memory pointers */
required_shared_ptr<UINT16> m_videoram;
required_shared_ptr<UINT16> m_videoram2;
-// UINT16 * m_paletteram; // currently this uses generic palette handling
/* devices */
required_device<cpu_device> m_soundcpu;
@@ -372,4 +371,4 @@ ROM_START( go2000 )
ROM_END
-GAME( 2000, go2000, 0, go2000, go2000, driver_device, 0, ROT0, "SunA?", "Go 2000", GAME_SUPPORTS_SAVE )
+GAME( 2000, go2000, 0, go2000, go2000, driver_device, 0, ROT0, "SunA?", "Go 2000", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/goal92.c b/src/mame/drivers/goal92.c
index 600b527f700..3fbde29de60 100644
--- a/src/mame/drivers/goal92.c
+++ b/src/mame/drivers/goal92.c
@@ -396,4 +396,4 @@ ROM_END
-GAME( 1992, goal92, cupsoc, goal92, goal92, driver_device, 0, ROT0, "bootleg", "Goal! '92", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1992, goal92, cupsoc, goal92, goal92, driver_device, 0, ROT0, "bootleg", "Goal! '92", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/goindol.c b/src/mame/drivers/goindol.c
index 7dbba538d6f..a47f1892c3c 100644
--- a/src/mame/drivers/goindol.c
+++ b/src/mame/drivers/goindol.c
@@ -401,7 +401,7 @@ DRIVER_INIT_MEMBER(goindol_state,goindol)
-GAME( 1987, goindol, 0, goindol, goindol, goindol_state, goindol, ROT90, "SunA", "Goindol (World)", GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE )
-GAME( 1987, goindolu, goindol, goindol, goindol, goindol_state, goindol, ROT90, "SunA", "Goindol (US)", GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE )
-GAME( 1987, goindolk, goindol, goindol, goindol, goindol_state, goindol, ROT90, "SunA", "Goindol (Korea)", GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE )
-GAME( 1987, homo, goindol, goindol, homo, driver_device, 0, ROT90, "bootleg", "Homo", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/goldngam.c b/src/mame/drivers/goldngam.c
index a624d213a60..38c3119c451 100644
--- a/src/mame/drivers/goldngam.c
+++ b/src/mame/drivers/goldngam.c
@@ -613,5 +613,5 @@ ROM_END
*************************/
/* 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)", GAME_NO_SOUND | GAME_NOT_WORKING )
-GAME( 1998, moviecrd, 0, moviecrd, goldngam, driver_device, 0, ROT0, "Golden Games / C+M Technics AG", "Movie Card", GAME_NO_SOUND | GAME_NOT_WORKING )
+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 )
diff --git a/src/mame/drivers/goldnpkr.c b/src/mame/drivers/goldnpkr.c
index 2eba2ba4463..4714aedeca0 100644
--- a/src/mame/drivers/goldnpkr.c
+++ b/src/mame/drivers/goldnpkr.c
@@ -717,8 +717,8 @@
- Simulated colors for all sets till color PROMs appear.
- Fixed bit corruption in goldnpkr rom u40_4a.bin.
- Completed inputs in all sets (except DIP switches).
- - Removed flags GAME_WRONG_COLORS and GAME_IMPERFECT_GRAPHICS in all sets.
- - Removed flag GAME_NOT_WORKING. All sets are now playable. :)
+ - Removed flags MACHINE_WRONG_COLORS and MACHINE_IMPERFECT_GRAPHICS in all sets.
+ - Removed flag MACHINE_NOT_WORKING. All sets are now playable. :)
[2006-10-09]
@@ -10187,7 +10187,7 @@ GAMEL( 198?, potnpkrf, pottnpkr, goldnpkr, goldnpkr, driver_device, 0,
GAMEL( 198?, superdbl, pottnpkr, goldnpkr, goldnpkr, driver_device, 0, ROT0, "Karateco", "Super Double (French)", 0, layout_goldnpkr )
GAMEL( 198?, ngold, pottnpkr, pottnpkr, ngold, driver_device, 0, ROT0, "<unknown>", "Jack Potten's Poker (NGold, set 1)", 0, layout_goldnpkr )
GAMEL( 198?, ngolda, pottnpkr, pottnpkr, ngold, driver_device, 0, ROT0, "<unknown>", "Jack Potten's Poker (NGold, set 2)", 0, layout_goldnpkr )
-GAMEL( 198?, ngoldb, pottnpkr, pottnpkr, ngold, driver_device, 0, ROT0, "<unknown>", "Jack Potten's Poker (NGold, set 3)", GAME_IMPERFECT_GRAPHICS, layout_goldnpkr )
+GAMEL( 198?, ngoldb, pottnpkr, pottnpkr, ngold, driver_device, 0, ROT0, "<unknown>", "Jack Potten's Poker (NGold, set 3)", MACHINE_IMPERFECT_GRAPHICS, layout_goldnpkr )
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, "<unknown>", "Witch Card (Spanish, witch game, set 1)", 0 )
@@ -10201,16 +10201,16 @@ GAMEL( 1994, witchcdh, witchcrd, witchcrd, witchcdd, driver_device, 0,
GAMEL( 1994, witchcdi, witchcrd, witchcrd, witchcdd, driver_device, 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)", GAME_NOT_WORKING, 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( 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)", GAME_NOT_WORKING, layout_goldnpkr ) /* Ver 157-TE, 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( 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)", GAME_NOT_WORKING, layout_goldnpkr ) /* Ver 162A-F, 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, 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 */
@@ -10239,14 +10239,14 @@ GAMEL( 1992, wstrike, 0, wcrdxtnd, wstrike, goldnpkr_state, wstrike,
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( 1994, wtchjacka, wtchjack, wcrdxtnd, wtchjack, driver_device, 0, ROT0, "Video Klein", "Witch Jackpot (Export, 6T/12T ver 0.25)", GAME_IMPERFECT_GRAPHICS, layout_goldnpkr ) /* Ver 0.25 / 1994-11-24 */
-GAMEL( 1995, wtchjackb, wtchjack, wcrdxtnd, wtchjack, driver_device, 0, ROT0, "Video Klein", "Witch Jack (Export, 6T/12T ver 0.40)", GAME_IMPERFECT_GRAPHICS, layout_goldnpkr ) /* Ver 0.40 / 1995-02-27 */
-GAMEL( 1995, wtchjackc, wtchjack, wcrdxtnd, wtchjack, driver_device, 0, ROT0, "Video Klein", "Witch Jack (Export, 6T/12T ver 0.40T)", GAME_NOT_WORKING, layout_goldnpkr ) /* Ver 0.40T / 1995-02-27 */
-GAMEL( 1995, wtchjackd, wtchjack, wcrdxtnd, wtchjack, driver_device, 0, ROT0, "Video Klein", "Witch Jack (Export, 6T/12T ver 0.62)", GAME_IMPERFECT_GRAPHICS, layout_goldnpkr ) /* Ver 0.62 / 1995-08-02 */
-GAMEL( 1995, wtchjacke, wtchjack, wcrdxtnd, wtchjack, driver_device, 0, ROT0, "Video Klein", "Witch Jack (Export, 6T/12T ver 0.64)", GAME_IMPERFECT_GRAPHICS, layout_goldnpkr ) /* Ver 0.64 / 1995-09-13 */
-GAMEL( 1995, wtchjackf, wtchjack, wcrdxtnd, wtchjack, driver_device, 0, ROT0, "Video Klein", "Witch Jack (Export, 6T/12T ver 0.65)", GAME_IMPERFECT_GRAPHICS, layout_goldnpkr ) /* Ver 0.65 / 1995-10-19 */
-GAMEL( 1996, wtchjackg, wtchjack, wcrdxtnd, wtchjack, driver_device, 0, ROT0, "Video Klein", "Witch Jack (Export, 6T/12T ver 0.70S)", GAME_IMPERFECT_GRAPHICS, layout_goldnpkr ) /* Ver 0.70S / 1996-03-26 */
-GAMEL( 1996, wtchjackh, wtchjack, wcrdxtnd, wtchjack, driver_device, 0, ROT0, "Video Klein", "Witch Jack (Export, 6T/12T ver 0.70P)", GAME_IMPERFECT_GRAPHICS, layout_goldnpkr ) /* Ver 0.70P / 1996-03-26 */
+GAMEL( 1994, wtchjacka, 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( 1995, wtchjackb, 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( 1995, wtchjackc, 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, wtchjackd, 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, wtchjacke, 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, wtchjackf, 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( 1996, wtchjackg, 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, wtchjackh, 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( 1996, wtchjacki, 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, wtchjackj, 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 */
@@ -10277,7 +10277,7 @@ GAMEL( 1991, goodluck, bsuerte, witchcrd, goodluck, driver_device, 0,
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 )
-GAME( 1983, falcnwldc, falcnwld, wildcrdb, wildcard, goldnpkr_state, flcnw, ROT0, "Falcon", "Falcons Wild - World Wide Poker (Falcon original)", GAME_NOT_WORKING )
+GAME( 1983, falcnwldc, falcnwld, wildcrdb, wildcard, goldnpkr_state, flcnw, ROT0, "Falcon", "Falcons Wild - World Wide Poker (Falcon original)", MACHINE_NOT_WORKING )
/*************************************** OTHER SETS ***************************************/
@@ -10296,11 +10296,11 @@ GAME( 1993, brasil93, 0, witchcrd, bsuerte, driver_device, 0,
GAME( 1991, poker91, 0, witchcrd, poker91, driver_device, 0, ROT0, "<unknown>", "Poker 91", 0 )
GAME( 198?, genie, 0, genie, genie, driver_device, 0, ROT0, "Video Fun Games Ltd.", "Genie", 0 )
GAMEL( 1983, silverga, 0, goldnpkr, goldnpkr, driver_device, 0, ROT0, "<unknown>", "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)", GAME_IMPERFECT_COLORS )
+GAME( 1987, caspoker, 0, goldnpkr, caspoker, driver_device, 0, ROT0, "PM / Beck Elektronik", "Casino Poker (Ver PM86LO-35-5, German)", MACHINE_IMPERFECT_COLORS )
-GAME( 198?, pokerdub, 0, pottnpkr, goldnpkr, driver_device, 0, ROT0, "<unknown>", "unknown French poker game", GAME_NOT_WORKING ) // lacks of 2nd program ROM.
-GAME( 198?, pokerduc, 0, goldnpkr, goldnpkr, goldnpkr_state, icp1db, ROT0, "<unknown>", "unknown encrypted poker game", GAME_NOT_WORKING ) // encrypted.
+GAME( 198?, pokerdub, 0, pottnpkr, goldnpkr, driver_device, 0, ROT0, "<unknown>", "unknown French poker game", MACHINE_NOT_WORKING ) // lacks of 2nd program ROM.
+GAME( 198?, pokerduc, 0, goldnpkr, goldnpkr, goldnpkr_state, icp1db, ROT0, "<unknown>", "unknown encrypted poker game", MACHINE_NOT_WORKING ) // encrypted.
-GAMEL( 198?, bchancep, 0, bchancep, goldnpkr, goldnpkr_state, bchancep, ROT0, "<unknown>", "Bonne Chance! (Golden Poker prequel HW)", GAME_NOT_WORKING, layout_goldnpkr )
+GAMEL( 198?, bchancep, 0, bchancep, goldnpkr, goldnpkr_state, bchancep, ROT0, "<unknown>", "Bonne Chance! (Golden Poker prequel HW)", MACHINE_NOT_WORKING, layout_goldnpkr )
GAME( 1987, pokermon, 0, mondial, mondial, driver_device, 0, ROT0, "<unknown>", "Mundial/Mondial (Italian/French)", 0 ) // banked selectable program
-GAME( 198?, pokersis, 0, bchancep, goldnpkr, driver_device, 0, ROT0, "Sisteme France", "unknown Sisteme France Poker", GAME_NOT_WORKING ) // fix banking (4 prgs?)...
+GAME( 198?, pokersis, 0, bchancep, goldnpkr, driver_device, 0, ROT0, "Sisteme France", "unknown Sisteme France Poker", MACHINE_NOT_WORKING ) // fix banking (4 prgs?)...
diff --git a/src/mame/drivers/goldstar.c b/src/mame/drivers/goldstar.c
index 51d4291ef4d..4cf3d0b06bd 100644
--- a/src/mame/drivers/goldstar.c
+++ b/src/mame/drivers/goldstar.c
@@ -208,6 +208,7 @@
#include "cmaster.lh"
#include "cmasterb.lh"
#include "cmasterc.lh"
+#include "cmezspin.lh"
#include "cmpacman.lh"
#include "cmv4.lh"
#include "crazybon.lh"
@@ -260,6 +261,7 @@ WRITE8_MEMBER(goldstar_state::p1_lamps_w)
x--- ----
all cm/cmaster use the same scheme
+ cmv4, cmv801 and crazybon don't light the Take button when it's available for hold pair
tonypok uses lamps to indicate current button functions rather than active buttons
skill98 is like schery97 but doesn't activate bit 0 for stop
nfb96, roypok96 and nc96 sets are like schery97 but they don't activate bit 2 for select
@@ -1221,7 +1223,7 @@ INPUT_PORTS_END
static INPUT_PORTS_START( cmv4_dsw1 )
PORT_START("DSW1")
- PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("DSW1:1")
+ PORT_DIPNAME( 0x01, 0x00, "Hold Pair" ) PORT_DIPLOCATION("DSW1:1")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x01, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x00, "Hopper Out Switch" ) PORT_DIPLOCATION("DSW1:2")
@@ -1239,7 +1241,7 @@ static INPUT_PORTS_START( cmv4_dsw1 )
PORT_DIPNAME( 0x20, 0x00, "Double Up Game" ) PORT_DIPLOCATION("DSW1:6")
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0xc0, 0xc0, "Bet Max" ) PORT_DIPLOCATION("DSW1:7,8")
+ PORT_DIPNAME( 0xc0, 0x00, "Bet Max" ) PORT_DIPLOCATION("DSW1:7,8")
PORT_DIPSETTING( 0x00, "8" )
PORT_DIPSETTING( 0x40, "16" )
PORT_DIPSETTING( 0x80, "32" )
@@ -1456,7 +1458,7 @@ static INPUT_PORTS_START( cmv801 )
PORT_INCLUDE( cmv4_dsw1 )
PORT_MODIFY("DSW1")
- /* DSW1-1 unused */
+ /* Hold Pair OK - use Take button */
/* Hopper Out Switch not checked */
/* Payout Mode not checked */
/* '7' In Double Up Game OK */
@@ -1491,11 +1493,14 @@ static INPUT_PORTS_START( cmv801 )
PORT_INCLUDE( cmv4_dsw4 ) /* Display Of Payout Limit not working; all others OK */
PORT_INCLUDE( cmv4_dsw5 )
+ PORT_MODIFY("DSW5")
/* Display of Doll On Demo only affects payout table screen */
/* Coin In Limit OK */
/* Condition For 3 Kind Of Bonus not checked */
/* Display Of Doll At All Fr. Bonus not checked */
- /* DSW5-7 listed as unused */
+ PORT_DIPNAME( 0x40, 0x40, "Card Shuffle Animation" ) PORT_DIPLOCATION("DSW5:7") /* OK */
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
/* Test Mode For Disp. Of Doll not working */
INPUT_PORTS_END
@@ -1508,7 +1513,7 @@ static INPUT_PORTS_START( cmv4 )
PORT_INCLUDE( cmv4_dsw1 )
PORT_MODIFY("DSW1")
- /* DSW1-1 unused */
+ /* Hold Pair OK - use Take button */
/* Hopper Out Switch not checked */
/* Payout Mode not checked */
/* '7' In Double Up Game OK */
@@ -1564,7 +1569,9 @@ static INPUT_PORTS_START( cmaster )
PORT_INCLUDE( cmv4_dsw1 )
PORT_MODIFY("DSW1")
- /* DSW1-1 unused */
+ PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) PORT_DIPLOCATION("DSW1:1")
+ PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
/* Hopper Out Switch not checked */
/* Payout Mode not checked */
/* '7' In Double Up Game OK */
@@ -1620,7 +1627,9 @@ static INPUT_PORTS_START( cmasterb )
PORT_INCLUDE( cmv4_dsw1 )
PORT_MODIFY("DSW1")
- /* DSW1-1 unused */
+ PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) PORT_DIPLOCATION("DSW1:1")
+ PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
/* Hopper Out Switch not checked */
/* Payout Mode not checked */
/* '7' In Double Up Game OK */
@@ -1659,6 +1668,76 @@ static INPUT_PORTS_START( cmasterb )
/* Test Mode For Disp. Of Doll not checked */
INPUT_PORTS_END
+static INPUT_PORTS_START( cmezspin )
+ PORT_START("IN0")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SLOT_STOP3 ) PORT_NAME("Stop 3 / Big")
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SLOT_STOP1 ) PORT_NAME("Stop 1 / D-UP")
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SLOT_STOP_ALL ) PORT_NAME("Stop All / Take")
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_BET )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SLOT_STOP2 ) PORT_NAME("Stop 2 / Small / Info")
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Start")
+
+ PORT_INCLUDE( cmv4_coins )
+
+ PORT_INCLUDE( cmv4_service )
+
+ PORT_INCLUDE( cmv4_dsw1 )
+ PORT_MODIFY("DSW1")
+ /* Hold Pair OK */
+ /* Hopper Out Switch not checked */
+ /* Payout Mode not checked */
+ PORT_DIPNAME( 0x08, 0x00, "'7' In Double Up Game" ) PORT_DIPLOCATION("DSW1:4") /* OK */
+ PORT_DIPSETTING( 0x00, "Win" )
+ PORT_DIPSETTING( 0x08, "Even" )
+ PORT_DIPNAME( 0x10, 0x00, "Double Up Game Pay Rate" ) PORT_DIPLOCATION("DSW1:5") /* OK */
+ PORT_DIPSETTING( 0x00, "70%" )
+ PORT_DIPSETTING( 0x10, "80%" )
+ /* Double Up Game OK */
+ PORT_DIPNAME( 0xc0, 0x00, "Bet Max" ) PORT_DIPLOCATION("DSW1:7,8") /* OK */
+ PORT_DIPSETTING( 0x00, "16" )
+ PORT_DIPSETTING( 0x40, "32" )
+ PORT_DIPSETTING( 0x80, "64" )
+ PORT_DIPSETTING( 0xc0, "96" )
+
+ PORT_INCLUDE( cmv4_dsw2 )
+ PORT_MODIFY("DSW2")
+ PORT_DIPNAME( 0x03, 0x00, "Main Game Pay Rate" ) PORT_DIPLOCATION("DSW2:1,2") /* OK */
+ PORT_DIPSETTING( 0x03, "55%" )
+ PORT_DIPSETTING( 0x02, "60%" )
+ PORT_DIPSETTING( 0x01, "65%" )
+ PORT_DIPSETTING( 0x00, "70%" )
+ PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW2:3")
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ /* Hopper Limit not checked */
+ /* 100+ Odds Sound not checked */
+ /* Key In Type OK */
+ /* Center Super 7 Bet Limit related with Min. Bet For Bonus Play (DSW4-6) - not checked */
+
+ PORT_INCLUDE( cmv4_dsw3 ) /* all OK */
+
+ PORT_INCLUDE( cmv4_dsw4 )
+ PORT_MODIFY("DSW4")
+ /* Credit Limit not checked */
+ PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW4:4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ /* Type Of Coin D OK */
+ /* Min. Bet For Bonus Play OK */
+ /* Reel Speed OK */
+ /* Hopper Out By Coin A OK */
+
+ PORT_INCLUDE( cmv4_dsw5 )
+ /* Display of Doll On Demo only affects payout table screen */
+ /* Coin In Limit OK */
+ /* Condition for 3 Kind Of Bonus OK */
+ /* Display Of Doll At All Fr. Bonus not checked */
+ /* DSW5-7 listed as unused */
+ /* Test Mode For Disp. Of Doll not checked */
+INPUT_PORTS_END
+
static INPUT_PORTS_START( cmasterc )
PORT_START("IN0")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
@@ -1676,7 +1755,9 @@ static INPUT_PORTS_START( cmasterc )
PORT_INCLUDE( cmv4_dsw1 )
PORT_MODIFY("DSW1")
- /* DSW1-1 unused */
+ PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) PORT_DIPLOCATION("DSW1:1")
+ PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
/* Hopper Out Switch not checked */
/* Payout Mode not checked */
/* '7' In Double Up Game OK */
@@ -1721,35 +1802,35 @@ static INPUT_PORTS_START( cmast91 )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_HIGH ) PORT_NAME("Big")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_D_UP )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_TAKE )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_BET )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_LOW ) PORT_NAME("Small / Info")
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Start")
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SLOT_STOP1 ) PORT_NAME("Stop 1 / Take")
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SLOT_STOP2 ) PORT_NAME("Stop 2 / Bet" )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SLOT_STOP3 ) PORT_NAME("Stop 3 / Small / Info")
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Start / Stop All")
PORT_INCLUDE( cmv4_coins )
PORT_INCLUDE( cmv4_service )
PORT_START("DSW1")
- PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) PORT_DIPLOCATION("DSW1:1") /* OK */
+ PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) PORT_DIPLOCATION("DSW1:1") /* OK */
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x02, 0x02, "Hopper Out Switch" ) PORT_DIPLOCATION("DSW1:2") /* OK */
+ PORT_DIPNAME( 0x02, 0x02, "Hopper Out Switch" ) PORT_DIPLOCATION("DSW1:2") /* OK */
PORT_DIPSETTING( 0x02, "Active Low" )
PORT_DIPSETTING( 0x00, "Active High" )
- PORT_DIPNAME( 0x04, 0x00, "Payout Mode" ) PORT_DIPLOCATION("DSW1:3") /* OK */
+ PORT_DIPNAME( 0x04, 0x00, "Payout Mode" ) PORT_DIPLOCATION("DSW1:3") /* OK */
PORT_DIPSETTING( 0x04, "Payout Switch" )
PORT_DIPSETTING( 0x00, "Automatic" )
- PORT_DIPNAME( 0x08, 0x00, "W-UP '7'" ) PORT_DIPLOCATION("DSW1:4") /* not checked */
- PORT_DIPSETTING( 0x08, "Loss" )
- PORT_DIPSETTING( 0x00, "Even" )
- PORT_DIPNAME( 0x10, 0x00, "W-UP Pay Rate" ) PORT_DIPLOCATION("DSW1:5") /* OK */
+ PORT_DIPNAME( 0x08, 0x00, "'7' In Double Up Game" ) PORT_DIPLOCATION("DSW1:4") /* OK */
+ PORT_DIPSETTING( 0x08, "Even" )
+ PORT_DIPSETTING( 0x00, "Loss" )
+ PORT_DIPNAME( 0x10, 0x00, "Double Up Game Pay Rate" ) PORT_DIPLOCATION("DSW1:5") /* OK */
PORT_DIPSETTING( 0x00, "80%" )
PORT_DIPSETTING( 0x10, "90%" )
- PORT_DIPNAME( 0x20, 0x00, "W-UP Game" ) PORT_DIPLOCATION("DSW1:6") /* OK */
+ PORT_DIPNAME( 0x20, 0x00, "Double Up Game" ) PORT_DIPLOCATION("DSW1:6") /* OK */
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0xc0, 0xc0, "Bet Max" ) PORT_DIPLOCATION("DSW1:7,8") /* OK */
+ PORT_DIPNAME( 0xc0, 0xc0, "Bet Max" ) PORT_DIPLOCATION("DSW1:7,8") /* OK */
PORT_DIPSETTING( 0x00, "8" )
PORT_DIPSETTING( 0x40, "16" )
PORT_DIPSETTING( 0x80, "32" )
@@ -1777,16 +1858,18 @@ static INPUT_PORTS_START( cmast91 )
PORT_INCLUDE( cmv4_dsw5 )
PORT_MODIFY("DSW5")
- PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW5:1") /* normally Display of Doll On Demo, but no whores in this set */
+ PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW5:1") /* normally Display of Doll On Demo, but no whores in this set */
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
/* Coin In Limit OK */
/* Condition For 3 Kind Of Bonus not checked */
- PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW5:6") /* normally Display Of Doll At All Fr. Bonus, but no whores in this set */
- PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPNAME( 0x20, 0x20, "Show Odds In Double Up Game" ) PORT_DIPLOCATION("DSW5:6") /* OK */
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x40, "Skill Stop" ) PORT_DIPLOCATION("DSW5:7") /* OK */
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- /* DSW5-7 listed as unused */
- PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW5:8") /* normally Test Mode For Disp. Of Doll, but no whores in this set */
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW5:8") /* normally Test Mode For Disp. Of Doll, but no whores in this set */
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@@ -6006,7 +6089,7 @@ static INPUT_PORTS_START( crazybon )
PORT_INCLUDE( cmv4_service )
PORT_START("DSW1")
- PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:1")
+ PORT_DIPNAME( 0x01, 0x00, "Hold Pair" ) PORT_DIPLOCATION("DSW1:1") /* OK - use Take button */
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x00, "Hopper Out Switch" ) PORT_DIPLOCATION("DSW1:2") /* not checked */
@@ -6096,9 +6179,9 @@ static INPUT_PORTS_START( crazybon )
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW4:4")
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW4:5")
- PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, "Fast Take With" ) PORT_DIPLOCATION("DSW4:5") /* OK */
+ PORT_DIPSETTING( 0x10, "Take" )
+ PORT_DIPSETTING( 0x00, "Start" )
PORT_DIPNAME( 0x20, 0x20, "Bonus Min Bet" ) PORT_DIPLOCATION("DSW4:6") /* OK */
PORT_DIPSETTING( 0x20, "16" )
PORT_DIPSETTING( 0x00, "32" )
@@ -13151,9 +13234,9 @@ GAME( 199?, moonlght, goldstar, moonlght, goldstar, driver_device, 0,
GAMEL( 199?, chrygld, 0, chrygld, chrygld, cb3_state, chrygld, ROT0, "bootleg", "Cherry Gold I", 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( 2001, super9, goldstar, super9, goldstar, goldstar_state, super9, ROT0, "Playmark", "Super Nove (Playmark)", GAME_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)", GAME_NOT_WORKING )
-GAME( 199?, star100, 0, star100, star100, driver_device, 0, ROT0, "Sang Ho", "Ming Xing 100 (Star 100)", GAME_IMPERFECT_COLORS )
+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 )
// are these really dyna, or bootlegs?
@@ -13161,14 +13244,14 @@ GAMEL( 199?, ncb3, 0, ncb3, ncb3, driver_device, 0,
GAMEL( 199?, cb3a, ncb3, ncb3, cb3a, driver_device, 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)", GAME_NOT_WORKING)
+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?, cb3e, ncb3, cb3e, chrygld, cb3_state, cb3e, ROT0, "bootleg", "Cherry Bonus III (set 4, encrypted bootleg)", 0, layout_chrygld )
-GAME( 1996, cmast97, ncb3, cm97, chrygld, driver_device, 0, ROT0, "Dyna", "Cherry Master '97", GAME_NOT_WORKING) // fix prom decode
+GAME( 1996, cmast97, ncb3, cm97, chrygld, driver_device, 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, "<unknown>", "Cherry Angel", GAME_NOT_WORKING )
+GAME( 199?, chryangl, ncb3, cm, chryangl, cmaster_state, cmv4, ROT0, "<unknown>", "Cherry Angel", MACHINE_NOT_WORKING )
// cherry master hardware has a rather different mem map, but is basically the same
@@ -13181,27 +13264,27 @@ GAMEL( 198?, cmv801, 0, cm, cmv801, cmaster_state, cm,
// the original, unmodified dyna versions is almost impossible due to lack of documentation from back in the day,
// even original boards almost always run modified sets
GAMEL( 1992, cmv4, 0, cm, cmv4, cmaster_state, cmv4, ROT0, "Dyna", "Cherry Master (ver.4, set 1)", 0, layout_cmv4 )
-GAMEL( 1992, cmv4a, cmv4, cm, cmv4, cmaster_state, cmv4, ROT0, "Dyna", "Cherry Master (ver.4, set 2)", GAME_NOT_WORKING, layout_cmv4 ) // stealth game?
+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, 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, cmasterb, cmaster_state, cmv4, ROT0, "Dyna", "Cherry Master I (E-Z Spin bootleg / hack)", 0, layout_cmasterb ) // CM Fruit Bonus 55 ver.2 bootleg/hack
+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 )
-GAMEL( 1991, cmasterbv, cmaster, cm, cmasterb, cmaster_state, cmv4, ROT0, "Dyna", "Cherry Master I (ver.1.01, set 4, with Blitz Poker ROM?)", GAME_NOT_WORKING, layout_cmasterb ) // Cherry Master works, but no idea how to use the Blitz ROM
+GAMEL( 1991, cmasterbv, cmaster, cm, cmasterb, cmaster_state, cmv4, ROT0, "Dyna", "Cherry Master I (ver.1.01, set 4, with Blitz Poker ROM?)", MACHINE_NOT_WORKING, layout_cmasterb ) // Cherry Master works, but no idea how to use the Blitz ROM
GAMEL( 1991, cmasterd, cmaster, cm, cmasterb, cmaster_state, cmv4, ROT0, "Dyna", "Cherry Master I (ver.1.01, set 5)", 0, layout_cmasterb )
GAMEL( 1991, cmastere, cmaster, cm, cmasterb, cmaster_state, cmv4, ROT0, "Dyna", "Cherry Master I (ver.1.01, set 6)", 0, layout_cmasterb )
GAMEL( 1991, cmasterf, cmaster, cm, cmasterb, cmaster_state, cmv4, ROT0, "Dyna", "Cherry Master I (ver.1.01, set 7)", 0, layout_cmasterb )
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, "<unknown>", "Joker Master", GAME_NOT_WORKING ) // encrypted?
-GAME( 199?, pkrmast, jkrmast, pkrmast, pkrmast, driver_device, 0, ROT0, "<unknown>", "Poker Master (ED-1993 set 1)", GAME_NOT_WORKING ) // incomplete dump + encrypted?
-GAME( 1993, pkrmasta, jkrmast, pkrmast, pkrmast, driver_device, 0, ROT0, "<unknown>", "Poker Master (ED-1993 set 2)", GAME_NOT_WORKING ) // incomplete dump + encrypted?
+GAME( 199?, jkrmast, 0, pkrmast, pkrmast, driver_device, 0, ROT0, "<unknown>", "Joker Master", MACHINE_NOT_WORKING ) // encrypted?
+GAME( 199?, pkrmast, jkrmast, pkrmast, pkrmast, driver_device, 0, ROT0, "<unknown>", "Poker Master (ED-1993 set 1)", MACHINE_NOT_WORKING ) // incomplete dump + encrypted?
+GAME( 1993, pkrmasta, jkrmast, pkrmast, pkrmast, driver_device, 0, ROT0, "<unknown>", "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 )
-GAME( 1992, cmast92, 0, cmast91, cmast91, goldstar_state, cmast91, ROT0, "Dyna", "Cherry Master '92", GAME_NOT_WORKING ) // no gfx roms are dumped
+GAME( 1992, cmast92, 0, cmast91, cmast91, goldstar_state, cmast91, ROT0, "Dyna", "Cherry Master '92", MACHINE_NOT_WORKING ) // no gfx roms are dumped
GAMEL( 1989, lucky8, 0, lucky8, lucky8, driver_device, 0, ROT0, "Wing Co., Ltd.", "New Lucky 8 Lines (set 1, W-4)", 0, layout_lucky8 )
@@ -13213,23 +13296,23 @@ GAMEL( 1989, lucky8e, lucky8, lucky8, lucky8d, driver_device, 0,
GAMEL( 198?, ns8lines, 0, lucky8, lucky8b, driver_device, 0, ROT0, "<unknown>", "New Lucky 8 Lines / New Super 8 Lines (W-4)", 0, layout_lucky8 )
GAMEL( 198?, ns8linew, 0, lucky8, ns8linew, driver_device, 0, ROT0, "<unknown>", "New Lucky 8 Lines / New Super 8 Lines (F-5, Witch Bonus)", 0, layout_lucky8 )
-GAMEL( 198?, kkotnoli, 0, kkotnoli, kkotnoli, driver_device, 0, ROT0, "hack", "Kkot No Li (Kill the Bees)", GAME_IMPERFECT_COLORS, layout_lucky8 )
+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", GAME_NOT_WORKING )
+GAME( 198?, wcat3, 0, wcat3, lucky8, driver_device, 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)", GAME_NOT_WORKING ) // encrypted (see notes in rom_load)...
-GAME( 1991, megaline, 0, megaline, megaline, driver_device, 0, ROT0, "Fun World", "Mega Lines", GAME_NOT_WORKING )
-GAME( 1990, bonusch, 0, bonusch, bonusch, driver_device, 0, ROT0, "Wing Co., Ltd.", "Bonus Chance (W-8)", GAME_NOT_WORKING ) // M80C51F MCU
+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( 1990, bonusch, 0, bonusch, bonusch, driver_device, 0, ROT0, "Wing Co., Ltd.", "Bonus Chance (W-8)", MACHINE_NOT_WORKING ) // M80C51F MCU
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 )
-GAME( 1992, magodds, 0, magodds, magodds, driver_device, 0, ROT0, "Pal Company / Micro Manufacturing Inc.", "Magical Odds (set 1)", GAME_WRONG_COLORS | GAME_IMPERFECT_GRAPHICS )
-GAME( 1992, magoddsa, magodds, magodds, magodds, driver_device, 0, ROT0, "Pal Company / Micro Manufacturing Inc.", "Magical Odds (set 2)", GAME_WRONG_COLORS | GAME_IMPERFECT_GRAPHICS )
-GAME( 1992, magoddsb, magodds, magodds, magodds, driver_device, 0, ROT0, "Pal Company / Micro Manufacturing Inc.", "Magical Odds (set 3)", GAME_WRONG_COLORS | GAME_IMPERFECT_GRAPHICS )
-GAME( 1991, magoddsc, magodds, magodds, magoddsc, wingco_state, magoddsc, ROT0, "Pal Company", "Magical Odds (set 4, custom encrypted CPU block)", GAME_WRONG_COLORS | GAME_NOT_WORKING |GAME_NO_SOUND)
-GAME( 1991, magoddsd, magodds, magodds, magoddsc, wingco_state, magoddsc, ROT0, "Pal Company", "Magical Odds (set 5, custom encrypted CPU block)", GAME_WRONG_COLORS | GAME_NOT_WORKING |GAME_NO_SOUND)
+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( 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)
/* --- Amcoe games --- */
@@ -13260,7 +13343,7 @@ GAMEL( 1996, nc96e, nc96, amcoe2, nfb96, cmaster_state, nfb96_d,
GAMEL( 1996, nc96f, nc96, amcoe2, nfb96, cmaster_state, nfb96_dk, ROT0, "Amcoe", "New Cherry '96 Special Edition (v3.62, DK PCB)", 0, layout_nfb96 ) /* DK Sub-PCB */
GAMEL( 2000, nc96txt, nc96, amcoe2, nfb96tx, cmaster_state, nfb96_c2, ROT0, "Amcoe", "New Cherry '96 Special Edition (v1.32 Texas XT, C2 PCB)", 0, layout_nfb96tx ) /* ver. tc1.32axt C2 Sub-PCB */
-GAME( 2009, fb2010, 0, amcoe2, nfb96tx, cmaster_state, fb2010, ROT0, "Amcoe", "Fruit Bonus 2010", GAME_NOT_WORKING ) // no gfx dumped
+GAME( 2009, fb2010, 0, amcoe2, nfb96tx, cmaster_state, fb2010, ROT0, "Amcoe", "Fruit Bonus 2010", MACHINE_NOT_WORKING ) // no gfx dumped
GAMEL( 1996, roypok96, 0, amcoe2, roypok96, cmaster_state, rp35, ROT0, "Amcoe", "Royal Poker '96 (set 1, v97-3.5)", 0, layout_roypok96 )
GAMEL( 1996, roypok96a, roypok96, amcoe2, roypok96a, cmaster_state, rp36, ROT0, "Amcoe", "Royal Poker '96 (set 2, v98-3.6)", 0, layout_roypok96 )
@@ -13272,12 +13355,12 @@ GAMEL( 1996, roypok96b, roypok96, amcoe2, roypok96a, cmaster_state, rp36c3,
*/
/* 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, nfb96sea, nfb96, amcoe2, nfb96bl, cmaster_state, nfb96sea, ROT0, "bootleg", "New Fruit Bonus '96 Special Edition (bootleg set 2, v97-3.3c English)", GAME_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)", GAME_WRONG_COLORS )
-GAME( 2002, carb2002, nfb96, amcoe2, nfb96bl, driver_device, 0, ROT0, "bootleg", "Carriage Bonus 2002 (bootleg)", GAME_WRONG_COLORS )
-GAME( 2003, carb2003, nfb96, amcoe2, nfb96bl, driver_device, 0, ROT0, "bootleg", "Carriage Bonus 2003 (bootleg)", GAME_WRONG_COLORS )
+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( 2003, nfm, 0, nfm, nfm, driver_device, 0, ROT0, "Ming-Yang Electronic", "New Fruit Machine (Ming-Yang Electronic)", GAME_NOT_WORKING ) // vFB02-07A "Copyright By Ms. Liu Orchis 2003/03/06"
+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"
// these have 'cherry 1994' in the program roms, but also "Super Cherry / New Cherry Gold '99" probably hacks of a 1994 version of Cherry Bonus / Cherry Master (Super Cherry Master?)
GAMEL(1999, unkch1, 0, unkch, unkch, unkch_state, unkch1, ROT0, "bootleg", "New Cherry Gold '99 (bootleg of Super Cherry Master) (set 1)", 0, layout_unkch )
@@ -13292,9 +13375,9 @@ GAMEL(1999, unkch4, unkch1, unkch, unkch4, unkch_state, unkch4,
/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT */
GAMEL( 198?, cmpacman, 0, cm, cmpacman, cmaster_state, cm, ROT0, "<unknown>", "Super Pacman (v1.2) + Cherry Master (Corsica, v8.31)", 0, layout_cmpacman ) // need to press K to switch between games...
GAMEL( 198?, cmtetris, 0, cm, cmtetris, cmaster_state, cm, ROT0, "<unknown>", "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, "<unknown>", "Tetris + Cherry Master (Corsica, v8.01, set 2)", GAME_NOT_WORKING, layout_cmpacman ) // seems banked...
-GAMEL( 198?, cmtetrsb, 0, cm, cmtetris, cmaster_state, cm, ROT0, "<unknown>", "Tetris + Cherry Master (+K, Canada Version, encrypted)", GAME_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", GAME_IMPERFECT_COLORS, layout_crazybon )
+GAMEL( 198?, cmtetrsa, 0, cm, cmtetris, cmaster_state, cm, ROT0, "<unknown>", "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, "<unknown>", "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 )
/* other possible stealth sets:
- cmv4a ---> see the 1fxx zone. put a bp in 1f9f to see the loop.
diff --git a/src/mame/drivers/good.c b/src/mame/drivers/good.c
index 169792cd78b..1169896b980 100644
--- a/src/mame/drivers/good.c
+++ b/src/mame/drivers/good.c
@@ -51,7 +51,6 @@ public:
required_shared_ptr<UINT16> m_fg_tilemapram;
required_shared_ptr<UINT16> m_bg_tilemapram;
UINT16 * m_sprites;
-// UINT16 * m_paletteram; // currently this uses generic palette handling
/* video-related */
tilemap_t *m_bg_tilemap;
@@ -324,4 +323,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, "<unknown>", "Good (Korea)", GAME_SUPPORTS_SAVE )
+GAME( 1998, good, 0, good, good, driver_device, 0, ROT0, "<unknown>", "Good (Korea)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/goodejan.c b/src/mame/drivers/goodejan.c
index 2559538edcc..b8e66f4608b 100644
--- a/src/mame/drivers/goodejan.c
+++ b/src/mame/drivers/goodejan.c
@@ -756,6 +756,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", GAME_IMPERFECT_GRAPHICS | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/gotcha.c b/src/mame/drivers/gotcha.c
index c51a283a6f1..11c96bcdb0b 100644
--- a/src/mame/drivers/gotcha.c
+++ b/src/mame/drivers/gotcha.c
@@ -381,5 +381,5 @@ ROM_START( ppchamp )
ROM_LOAD( "uz11", 0x00000, 0x80000, CRC(3d96274c) SHA1(c7a670af86194c370bf8fb30afbe027ab78a0227) )
ROM_END
-GAME( 1997, gotcha, 0, gotcha, gotcha, driver_device, 0, ROT0, "Dongsung / Para", "Got-cha Mini Game Festival", GAME_SUPPORTS_SAVE )
-GAME( 1997, ppchamp, gotcha, gotcha, gotcha, driver_device, 0, ROT0, "Dongsung / Para", "Pasha Pasha Champ Mini Game Festival (Korea)", GAME_SUPPORTS_SAVE )
+GAME( 1997, gotcha, 0, gotcha, gotcha, driver_device, 0, ROT0, "Dongsung / Para", "Got-cha Mini Game Festival", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, ppchamp, gotcha, gotcha, gotcha, driver_device, 0, ROT0, "Dongsung / Para", "Pasha Pasha Champ Mini Game Festival (Korea)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/gottlieb.c b/src/mame/drivers/gottlieb.c
index 8c35f4e1864..401417418d2 100644
--- a/src/mame/drivers/gottlieb.c
+++ b/src/mame/drivers/gottlieb.c
@@ -2584,22 +2584,22 @@ DRIVER_INIT_MEMBER(gottlieb_state,vidvince)
*************************************/
/* games using rev 1 sound board */
-GAME( 1982, reactor, 0, reactor, reactor, gottlieb_state, ramtiles, ROT0, "Gottlieb", "Reactor", GAME_IMPERFECT_SOUND )
-GAME( 1982, qbert, 0, qbert, qbert, gottlieb_state, qbert, ROT270, "Gottlieb", "Q*bert (US set 1)", GAME_IMPERFECT_SOUND )
-GAME( 1982, qberta, qbert, qbert, qbert, gottlieb_state, qbert, ROT270, "Gottlieb", "Q*bert (US set 2)", GAME_IMPERFECT_SOUND )
-GAME( 1982, qbertj, qbert, qbert, qbert, gottlieb_state, qbert, ROT270, "Gottlieb (Konami license)", "Q*bert (Japan)", GAME_IMPERFECT_SOUND )
-GAME( 1982, myqbert, qbert, qbert, qbert, gottlieb_state, qbert, ROT270, "Gottlieb", "Mello Yello Q*bert", GAME_IMPERFECT_SOUND )
-GAME( 1982, qberttst, qbert, qbert, qbert, gottlieb_state, qbert, ROT270, "Gottlieb", "Q*bert (early test version)", GAME_IMPERFECT_SOUND )
-GAME( 1982, qbtrktst, qbert, qbert, qbert, gottlieb_state, qbert, ROT270, "Gottlieb", "Q*bert Board Input Test Rom", GAME_IMPERFECT_SOUND )
+GAME( 1982, reactor, 0, reactor, reactor, gottlieb_state, ramtiles, ROT0, "Gottlieb", "Reactor", MACHINE_IMPERFECT_SOUND )
+GAME( 1982, qbert, 0, qbert, qbert, gottlieb_state, qbert, ROT270, "Gottlieb", "Q*bert (US set 1)", MACHINE_IMPERFECT_SOUND )
+GAME( 1982, qberta, qbert, qbert, qbert, gottlieb_state, qbert, ROT270, "Gottlieb", "Q*bert (US set 2)", MACHINE_IMPERFECT_SOUND )
+GAME( 1982, qbertj, qbert, qbert, qbert, gottlieb_state, qbert, ROT270, "Gottlieb (Konami license)", "Q*bert (Japan)", MACHINE_IMPERFECT_SOUND )
+GAME( 1982, myqbert, qbert, qbert, qbert, gottlieb_state, qbert, ROT270, "Gottlieb", "Mello Yello Q*bert", MACHINE_IMPERFECT_SOUND )
+GAME( 1982, qberttst, qbert, qbert, qbert, gottlieb_state, qbert, ROT270, "Gottlieb", "Q*bert (early test version)", MACHINE_IMPERFECT_SOUND )
+GAME( 1982, qbtrktst, qbert, qbert, qbert, gottlieb_state, qbert, ROT270, "Gottlieb", "Q*bert Board Input Test Rom", MACHINE_IMPERFECT_SOUND )
GAME( 1982, insector, 0, gottlieb1, insector, gottlieb_state, romtiles, ROT0, "Gottlieb", "Insector (prototype)", 0 )
-GAME( 1982, tylz, 0, tylz, tylz, gottlieb_state, romtiles, ROT0, "Mylstar", "Tylz (prototype)", GAME_IMPERFECT_SOUND ) // modified sound hw?
+GAME( 1982, tylz, 0, tylz, tylz, gottlieb_state, romtiles, ROT0, "Mylstar", "Tylz (prototype)", MACHINE_IMPERFECT_SOUND ) // modified sound hw?
GAME( 1984, argusg, 0, gottlieb1, argusg, gottlieb_state, ramtiles, ROT0, "Gottlieb", "Argus (Gottlieb, prototype)" , 0) // aka Guardian / Protector?
GAME( 1983, mplanets, 0, gottlieb1, mplanets, gottlieb_state, romtiles, ROT270, "Gottlieb", "Mad Planets", 0 )
GAME( 1983, mplanetsuk,mplanets, gottlieb1, mplanets, gottlieb_state, romtiles, ROT270, "Gottlieb (Taitel license)", "Mad Planets (UK)", 0 )
GAME( 1983, krull, 0, gottlieb1, krull, gottlieb_state, ramtiles, ROT270, "Gottlieb", "Krull", 0 )
-GAME( 1983, kngtmare, 0, gottlieb1, kngtmare, gottlieb_state, romtiles, ROT0, "Gottlieb", "Knightmare (prototype)", GAME_NO_SOUND ) // Missing sound ROMs
-GAME( 1983, sqbert, 0, qbert, qbert, gottlieb_state, qbert, ROT270, "Mylstar", "Faster, Harder, More Challenging Q*bert (prototype)", GAME_IMPERFECT_SOUND )
-GAME( 1983, qbertqub, 0, qbert, qbertqub, gottlieb_state, qbertqub, ROT270, "Mylstar", "Q*bert's Qubes", GAME_IMPERFECT_SOUND )
+GAME( 1983, kngtmare, 0, gottlieb1, kngtmare, gottlieb_state, romtiles, ROT0, "Gottlieb", "Knightmare (prototype)", MACHINE_NO_SOUND ) // Missing sound ROMs
+GAME( 1983, sqbert, 0, qbert, qbert, gottlieb_state, qbert, ROT270, "Mylstar", "Faster, Harder, More Challenging Q*bert (prototype)", MACHINE_IMPERFECT_SOUND )
+GAME( 1983, qbertqub, 0, qbert, qbertqub, gottlieb_state, qbertqub, ROT270, "Mylstar", "Q*bert's Qubes", MACHINE_IMPERFECT_SOUND )
GAME( 1984, curvebal, 0, gottlieb1, curvebal, gottlieb_state, romtiles, ROT270, "Mylstar", "Curve Ball", 0 )
/* games using rev 2 sound board */
@@ -2609,5 +2609,5 @@ GAME( 1984, cobram3, cobra, cobram3, cobram3, gottlieb_state, romtiles,
GAME( 1984, usvsthem, 0, g2laser, usvsthem, gottlieb_state, romtiles, ROT0, "Mylstar", "Us vs. Them", 0 )
GAME( 1984, 3stooges, 0, gottlieb2, 3stooges, gottlieb_state, stooges, ROT0, "Mylstar", "The Three Stooges In Brides Is Brides (set 1)", 0 )
GAME( 1984, 3stoogesa, 3stooges, gottlieb2, 3stooges, gottlieb_state, stooges, ROT0, "Mylstar", "The Three Stooges In Brides Is Brides (set 2)", 0 )
-GAME( 1984, vidvince, 0, gottlieb2, vidvince, gottlieb_state, vidvince, ROT0, "Mylstar", "Video Vince and the Game Factory (prototype)", GAME_IMPERFECT_GRAPHICS ) // sprite wrapping issues
+GAME( 1984, vidvince, 0, gottlieb2, vidvince, gottlieb_state, vidvince, ROT0, "Mylstar", "Video Vince and the Game Factory (prototype)", MACHINE_IMPERFECT_GRAPHICS ) // sprite wrapping issues
GAME( 1984, wizwarz, 0, gottlieb2, wizwarz, gottlieb_state, romtiles, ROT0, "Mylstar", "Wiz Warz (prototype)", 0 )
diff --git a/src/mame/drivers/gotya.c b/src/mame/drivers/gotya.c
index ae2ca946780..cdae400d0bb 100644
--- a/src/mame/drivers/gotya.c
+++ b/src/mame/drivers/gotya.c
@@ -274,5 +274,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", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1981, gotya, thehand, gotya, gotya, driver_device, 0, ROT270, "Game-A-Tron", "Got-Ya (12/24/1981, prototype?)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/gp2x.c b/src/mame/drivers/gp2x.c
index bf7e93ca44a..0865638044e 100644
--- a/src/mess/drivers/gp2x.c
+++ b/src/mame/drivers/gp2x.c
@@ -390,4 +390,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", GAME_NOT_WORKING|GAME_NO_SOUND)
+CONS(2005, gp2x, 0, 0, gp2x, gp2x, driver_device, 0, "Game Park Holdings", "GP2X", MACHINE_NOT_WORKING|MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/gp32.c b/src/mame/drivers/gp32.c
index d864d490c1b..26dc298a2ff 100644
--- a/src/mess/drivers/gp32.c
+++ b/src/mame/drivers/gp32.c
@@ -1723,4 +1723,4 @@ ROM_START( gp32 )
#endif
ROM_END
-CONS(2001, gp32, 0, 0, gp32, gp32, driver_device, 0, "Game Park Holdings", "GP32", ROT270|GAME_NOT_WORKING|GAME_NO_SOUND)
+CONS(2001, gp32, 0, 0, gp32, gp32, driver_device, 0, "Game Park Holdings", "GP32", ROT270|MACHINE_NOT_WORKING|MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/gp_1.c b/src/mame/drivers/gp_1.c
index 81829bb7425..4a7911c39d8 100644
--- a/src/mame/drivers/gp_1.c
+++ b/src/mame/drivers/gp_1.c
@@ -528,13 +528,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", GAME_IS_BIOS_ROOT)
-GAME(1978, blvelvet, gp_110, gp_1, gp_1, driver_device, 0, ROT0, "Game Plan", "Black Velvet", GAME_MECHANICAL)
-GAME(1978, camlight, gp_110, gp_1, gp_1, driver_device, 0, ROT0, "Game Plan", "Camel Lights", GAME_MECHANICAL)
-GAME(1978, foxylady, gp_110, gp_1, gp_1, driver_device, 0, ROT0, "Game Plan", "Foxy Lady", GAME_MECHANICAL)
-GAME(1978, real, gp_110, gp_1, gp_1, driver_device, 0, ROT0, "Game Plan", "Real", GAME_MECHANICAL)
-GAME(1978, rio, gp_110, gp_1, gp_1, driver_device, 0, ROT0, "Game Plan", "Rio", GAME_MECHANICAL)
-GAME(1978, chucklck, gp_110, gp_1, gp_1, driver_device, 0, ROT0, "Game Plan", "Chuck-A-Luck", GAME_MECHANICAL)
-GAME(1979, famlyfun, 0, gp_1s, gp_1, driver_device, 0, ROT0, "Game Plan", "Family Fun!", GAME_MECHANICAL)
-GAME(1979, startrip, 0, gp_1s, gp_1, driver_device, 0, ROT0, "Game Plan", "Star Trip", GAME_MECHANICAL)
-GAME(1979, vegasgp, 0, gp_1s, gp_1, driver_device, 0, ROT0, "Game Plan", "Vegas (Game Plan)", GAME_MECHANICAL)
+GAME(1978, gp_110, 0, gp_1, gp_1, driver_device, 0, ROT0, "Game Plan", "Model 110", MACHINE_IS_BIOS_ROOT)
+GAME(1978, blvelvet, gp_110, gp_1, gp_1, driver_device, 0, ROT0, "Game Plan", "Black Velvet", MACHINE_MECHANICAL)
+GAME(1978, camlight, gp_110, gp_1, gp_1, driver_device, 0, ROT0, "Game Plan", "Camel Lights", MACHINE_MECHANICAL)
+GAME(1978, foxylady, gp_110, gp_1, gp_1, driver_device, 0, ROT0, "Game Plan", "Foxy Lady", MACHINE_MECHANICAL)
+GAME(1978, real, gp_110, gp_1, gp_1, driver_device, 0, ROT0, "Game Plan", "Real", MACHINE_MECHANICAL)
+GAME(1978, rio, gp_110, gp_1, gp_1, driver_device, 0, ROT0, "Game Plan", "Rio", MACHINE_MECHANICAL)
+GAME(1978, chucklck, gp_110, gp_1, gp_1, driver_device, 0, ROT0, "Game Plan", "Chuck-A-Luck", MACHINE_MECHANICAL)
+GAME(1979, famlyfun, 0, gp_1s, gp_1, driver_device, 0, ROT0, "Game Plan", "Family Fun!", MACHINE_MECHANICAL)
+GAME(1979, startrip, 0, gp_1s, gp_1, driver_device, 0, ROT0, "Game Plan", "Star Trip", MACHINE_MECHANICAL)
+GAME(1979, vegasgp, 0, gp_1s, gp_1, driver_device, 0, ROT0, "Game Plan", "Vegas (Game Plan)", MACHINE_MECHANICAL)
diff --git a/src/mame/drivers/gp_2.c b/src/mame/drivers/gp_2.c
index 8a506f9b8fa..1f1cd24fb46 100644
--- a/src/mame/drivers/gp_2.c
+++ b/src/mame/drivers/gp_2.c
@@ -807,24 +807,24 @@ ROM_START(suprnova)
ROM_END
// GP1 dips
-GAME(1979, sshootep, 0, gp_2, gp_1, driver_device, 0, ROT0, "Game Plan", "Sharpshooter", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
-GAME(1979, coneyis, 0, gp_2, gp_1, driver_device, 0, ROT0, "Game Plan", "Old Coney Island!", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
-GAME(1980, lizard, 0, gp_2, gp_1, driver_device, 0, ROT0, "Game Plan", "Pinball Lizard", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
-GAME(1982, suprnova, 0, gp_2, gp_1, driver_device, 0, ROT0, "Game Plan", "Super Nova", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
-GAME(1983, sshootr2, 0, gp_2, gp_1, driver_device, 0, ROT0, "Game Plan", "Sharp Shooter II", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
+GAME(1979, sshootep, 0, gp_2, gp_1, driver_device, 0, ROT0, "Game Plan", "Sharpshooter", MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND )
+GAME(1979, coneyis, 0, gp_2, gp_1, driver_device, 0, ROT0, "Game Plan", "Old Coney Island!", MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND )
+GAME(1980, lizard, 0, gp_2, gp_1, driver_device, 0, ROT0, "Game Plan", "Pinball Lizard", MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND )
+GAME(1982, suprnova, 0, gp_2, gp_1, driver_device, 0, ROT0, "Game Plan", "Super Nova", MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND )
+GAME(1983, sshootr2, 0, gp_2, gp_1, driver_device, 0, ROT0, "Game Plan", "Sharp Shooter II", MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND )
// GP2 dips
-GAME(1981, gwarfare, 0, gp_2, gp_2, driver_device, 0, ROT0, "Game Plan", "Global Warfare", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
-GAME(1982, mbossy, 0, gp_2, gp_2, driver_device, 0, ROT0, "Game Plan", "Mike Bossy", GAME_IS_SKELETON_MECHANICAL)
-GAME(1984, attila, 0, gp_2, gp_2, driver_device, 0, ROT0, "Game Plan", "Attila The Hun", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
+GAME(1981, gwarfare, 0, gp_2, gp_2, driver_device, 0, ROT0, "Game Plan", "Global Warfare", MACHINE_MECHANICAL | 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_IMPERFECT_SOUND )
// revolving match
-GAME(1984, agent777, 0, gp_2, gp_2, driver_device, 0, ROT0, "Game Plan", "Agents 777", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
-GAME(1985, cpthook, 0, gp_2, gp_2, driver_device, 0, ROT0, "Game Plan", "Captain Hook", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
-GAME(1985, ladyshot, 0, gp_2, gp_2, driver_device, 0, ROT0, "Game Plan", "Lady Sharpshooter (set 1)", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
-GAME(1985, ladyshota, ladyshot, gp_2, gp_2, driver_device, 0, ROT0, "Game Plan", "Lady Sharpshooter (set 2)", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
+GAME(1984, agent777, 0, gp_2, gp_2, driver_device, 0, ROT0, "Game Plan", "Agents 777", MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND )
+GAME(1985, cpthook, 0, gp_2, gp_2, driver_device, 0, ROT0, "Game Plan", "Captain Hook", MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND )
+GAME(1985, ladyshot, 0, gp_2, gp_2, driver_device, 0, ROT0, "Game Plan", "Lady Sharpshooter (set 1)", MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND )
+GAME(1985, ladyshota, ladyshot, gp_2, gp_2, driver_device, 0, ROT0, "Game Plan", "Lady Sharpshooter (set 2)", MACHINE_MECHANICAL | 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)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1985, andromepa, andromep, gp_2, gp_2, driver_device, 0, ROT0, "Game Plan", "Andromeda (set 2)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1985, cyclopes, 0, gp_2, gp_2, driver_device, 0, ROT0, "Game Plan", "Cyclopes", GAME_IS_SKELETON_MECHANICAL)
+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)
diff --git a/src/mame/drivers/gpworld.c b/src/mame/drivers/gpworld.c
index ae4babd485d..eb65d853fb2 100644
--- a/src/mame/drivers/gpworld.c
+++ b/src/mame/drivers/gpworld.c
@@ -559,4 +559,4 @@ DRIVER_INIT_MEMBER(gpworld_state,gpworld)
/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME FLAGS) */
-GAME( 1984, gpworld, 0, gpworld, gpworld, gpworld_state, gpworld, ROT0, "Sega", "GP World", GAME_NOT_WORKING|GAME_NO_SOUND)
+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.c b/src/mame/drivers/gradius3.c
index 099ab8690d8..94b4e5f2ed5 100644
--- a/src/mame/drivers/gradius3.c
+++ b/src/mame/drivers/gradius3.c
@@ -307,6 +307,7 @@ static MACHINE_CONFIG_START( gradius3, gradius3_state )
MCFG_DEVICE_ADD("k051960", K051960, 0)
MCFG_GFX_PALETTE("palette")
+ MCFG_K051960_SCREEN_TAG("screen")
MCFG_K051960_CB(gradius3_state, sprite_callback)
MCFG_K051960_PLANEORDER(K051960_PLANEORDER_GRADIUS3)
@@ -412,50 +413,50 @@ ROM_START( gradius3j )
ROM_END
ROM_START( gradius3js )
- ROM_REGION( 0x40000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "945_s13.f15", 0x00000, 0x20000, CRC(70c240a2) SHA1(82dc391572e1f61b0182cb031654d71adcdd5f6e) )
- ROM_LOAD16_BYTE( "945_s12.e15", 0x00001, 0x20000, CRC(bbc300d4) SHA1(e1ca98bc591575285d7bd2d4fefdf35fed10dcb6) )
-
- ROM_REGION( 0x100000, "sub", 0 )
- ROM_LOAD16_BYTE( "945_m09.r17", 0x000000, 0x20000, CRC(b4a6df25) SHA1(85533cf140d28f6f81c0b49b8061bda0924a613a) )
- ROM_LOAD16_BYTE( "945_m08.n17", 0x000001, 0x20000, CRC(74e981d2) SHA1(e7b47a2da01ff73293d2100c48fdf00b33125af5) )
- ROM_LOAD16_BYTE( "945_l06b.r11", 0x040000, 0x20000, CRC(83772304) SHA1(a90c75a3de670b6ec5e0fc201876d463b4a76766) )
- ROM_LOAD16_BYTE( "945_l06a.n11", 0x040001, 0x20000, CRC(e1fd75b6) SHA1(6160d80a2f1bf550e85d6253cf521a96f5a644cc) )
- ROM_LOAD16_BYTE( "945_l07c.r15", 0x080000, 0x20000, CRC(c1e399b6) SHA1(e95bd478dd3beea0175bf9ee4cededb111c4ace1) )
- ROM_LOAD16_BYTE( "945_l07a.n15", 0x080001, 0x20000, CRC(96222d04) SHA1(b55700f683a556b0e73dbac9c7b4ce485420d21c) )
- ROM_LOAD16_BYTE( "945_l07d.r13", 0x0c0000, 0x20000, CRC(4c16d4bd) SHA1(01dcf169b78a1e495214b10181401d1920b0c924) )
- ROM_LOAD16_BYTE( "945_l07b.n13", 0x0c0001, 0x20000, CRC(5e209d01) SHA1(0efa1bbfdc7e2ba1e0bb96245e2bfe961258b446) )
-
- ROM_REGION( 0x10000, "audiocpu", 0 )
- ROM_LOAD( "945_m05.d9", 0x00000, 0x10000, CRC(c8c45365) SHA1(b9a7b736b52bca42c7b8c8ed64c8df73e0116158) )
-
- ROM_REGION( 0x200000, "k051960", 0 ) /* graphics (addressable by the main CPU) */
+ ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "945_s13.f15", 0x00000, 0x20000, CRC(70c240a2) SHA1(82dc391572e1f61b0182cb031654d71adcdd5f6e) )
+ ROM_LOAD16_BYTE( "945_s12.e15", 0x00001, 0x20000, CRC(bbc300d4) SHA1(e1ca98bc591575285d7bd2d4fefdf35fed10dcb6) )
+
+ ROM_REGION( 0x100000, "sub", 0 )
+ ROM_LOAD16_BYTE( "945_m09.r17", 0x000000, 0x20000, CRC(b4a6df25) SHA1(85533cf140d28f6f81c0b49b8061bda0924a613a) )
+ ROM_LOAD16_BYTE( "945_m08.n17", 0x000001, 0x20000, CRC(74e981d2) SHA1(e7b47a2da01ff73293d2100c48fdf00b33125af5) )
+ ROM_LOAD16_BYTE( "945_l06b.r11", 0x040000, 0x20000, CRC(83772304) SHA1(a90c75a3de670b6ec5e0fc201876d463b4a76766) )
+ ROM_LOAD16_BYTE( "945_l06a.n11", 0x040001, 0x20000, CRC(e1fd75b6) SHA1(6160d80a2f1bf550e85d6253cf521a96f5a644cc) )
+ ROM_LOAD16_BYTE( "945_l07c.r15", 0x080000, 0x20000, CRC(c1e399b6) SHA1(e95bd478dd3beea0175bf9ee4cededb111c4ace1) )
+ ROM_LOAD16_BYTE( "945_l07a.n15", 0x080001, 0x20000, CRC(96222d04) SHA1(b55700f683a556b0e73dbac9c7b4ce485420d21c) )
+ ROM_LOAD16_BYTE( "945_l07d.r13", 0x0c0000, 0x20000, CRC(4c16d4bd) SHA1(01dcf169b78a1e495214b10181401d1920b0c924) )
+ ROM_LOAD16_BYTE( "945_l07b.n13", 0x0c0001, 0x20000, CRC(5e209d01) SHA1(0efa1bbfdc7e2ba1e0bb96245e2bfe961258b446) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "945_m05.d9", 0x00000, 0x10000, CRC(c8c45365) SHA1(b9a7b736b52bca42c7b8c8ed64c8df73e0116158) )
+
+ ROM_REGION( 0x200000, "k051960", 0 ) /* graphics (addressable by the main CPU) */
ROM_LOAD32_BYTE( "945_A02A.K2", 0x000000, 0x20000, CRC(fbb81511) SHA1(e7988d52e323e46117f5080c469daf9b119f28a0) )
- ROM_LOAD32_BYTE( "945_A02C.M2", 0x000001, 0x20000, CRC(031b55e8) SHA1(64ed8dee60bf012df7c1ed496af1c75263c052a6) )
- ROM_LOAD32_BYTE( "945_A01A.E2", 0x000002, 0x20000, CRC(bace5abb) SHA1(b32df63294c0730f463335b1b760494389c60062) )
- ROM_LOAD32_BYTE( "945_A01C.H2", 0x000003, 0x20000, CRC(d91b29a6) SHA1(0c3027a08996f4c2b86dd88695241b21c8dffd64) )
- ROM_LOAD32_BYTE( "945_A02B.K4", 0x080000, 0x20000, CRC(c0fed4ab) SHA1(f01975b13759cae7c8dfd24f9b3f4ac960d32957) )
- ROM_LOAD32_BYTE( "945_A02D.M4", 0x080001, 0x20000, CRC(d462817c) SHA1(00137e38454e7c3548a1a9553c5ee644916b3959) )
- ROM_LOAD32_BYTE( "945_A01B.E4", 0x080002, 0x20000, CRC(b426090e) SHA1(06a671a648e3255146fe0c325d5451d4f75f08aa) )
- ROM_LOAD32_BYTE( "945_A01D.H4", 0x080003, 0x20000, CRC(3990c09a) SHA1(1f6a089c1d03fb95d4d96fecc0379bde26ee2b9d) )
-
- ROM_LOAD32_BYTE( "945_l04a.k6", 0x100000, 0x20000, CRC(884e21ee) SHA1(ce86dd3a06775e5b1aa09db010dcb674e67828e7) )
- ROM_LOAD32_BYTE( "945_l04c.m6", 0x100001, 0x20000, CRC(45bcd921) SHA1(e51a8a71362a6fb55124aa1dce74519c0a3c6e3f) )
- ROM_LOAD32_BYTE( "945_l03a.e6", 0x100002, 0x20000, CRC(a67ef087) SHA1(fd63474f3bbde5dfc53ed4c1db25d6411a8b54d2) )
- ROM_LOAD32_BYTE( "945_l03c.h6", 0x100003, 0x20000, CRC(a56be17a) SHA1(1d387736144c30fcb5de54235331ab1ff70c356e) )
- ROM_LOAD32_BYTE( "945_l04b.k8", 0x180000, 0x20000, CRC(843bc67d) SHA1(cdf8421083f24ab27867ed5d08d8949da192b2b9) )
- ROM_LOAD32_BYTE( "945_l04d.m8", 0x180001, 0x20000, CRC(0a98d08e) SHA1(1e0ca51a2d45c01fa3f11950ddd387f41ddae691) )
- ROM_LOAD32_BYTE( "945_l03b.e8", 0x180002, 0x20000, CRC(933e68b9) SHA1(f3a39446ca77d17fdbd938bd5f718ae9d5570879) )
- ROM_LOAD32_BYTE( "945_l03d.h8", 0x180003, 0x20000, CRC(f375e87b) SHA1(6427b966795c907c8e516244872fe52217da62c4) )
-
- ROM_REGION( 0x0100, "proms", 0 )
- ROM_LOAD( "945l14.j28", 0x0000, 0x0100, CRC(c778c189) SHA1(847eaf379ba075c25911c6f83dd63ff390534f60) ) /* priority encoder (not used) */
-
- ROM_REGION( 0x80000, "k007232", 0 ) /* 007232 samples */
+ ROM_LOAD32_BYTE( "945_A02C.M2", 0x000001, 0x20000, CRC(031b55e8) SHA1(64ed8dee60bf012df7c1ed496af1c75263c052a6) )
+ ROM_LOAD32_BYTE( "945_A01A.E2", 0x000002, 0x20000, CRC(bace5abb) SHA1(b32df63294c0730f463335b1b760494389c60062) )
+ ROM_LOAD32_BYTE( "945_A01C.H2", 0x000003, 0x20000, CRC(d91b29a6) SHA1(0c3027a08996f4c2b86dd88695241b21c8dffd64) )
+ ROM_LOAD32_BYTE( "945_A02B.K4", 0x080000, 0x20000, CRC(c0fed4ab) SHA1(f01975b13759cae7c8dfd24f9b3f4ac960d32957) )
+ ROM_LOAD32_BYTE( "945_A02D.M4", 0x080001, 0x20000, CRC(d462817c) SHA1(00137e38454e7c3548a1a9553c5ee644916b3959) )
+ ROM_LOAD32_BYTE( "945_A01B.E4", 0x080002, 0x20000, CRC(b426090e) SHA1(06a671a648e3255146fe0c325d5451d4f75f08aa) )
+ ROM_LOAD32_BYTE( "945_A01D.H4", 0x080003, 0x20000, CRC(3990c09a) SHA1(1f6a089c1d03fb95d4d96fecc0379bde26ee2b9d) )
+
+ ROM_LOAD32_BYTE( "945_l04a.k6", 0x100000, 0x20000, CRC(884e21ee) SHA1(ce86dd3a06775e5b1aa09db010dcb674e67828e7) )
+ ROM_LOAD32_BYTE( "945_l04c.m6", 0x100001, 0x20000, CRC(45bcd921) SHA1(e51a8a71362a6fb55124aa1dce74519c0a3c6e3f) )
+ ROM_LOAD32_BYTE( "945_l03a.e6", 0x100002, 0x20000, CRC(a67ef087) SHA1(fd63474f3bbde5dfc53ed4c1db25d6411a8b54d2) )
+ ROM_LOAD32_BYTE( "945_l03c.h6", 0x100003, 0x20000, CRC(a56be17a) SHA1(1d387736144c30fcb5de54235331ab1ff70c356e) )
+ ROM_LOAD32_BYTE( "945_l04b.k8", 0x180000, 0x20000, CRC(843bc67d) SHA1(cdf8421083f24ab27867ed5d08d8949da192b2b9) )
+ ROM_LOAD32_BYTE( "945_l04d.m8", 0x180001, 0x20000, CRC(0a98d08e) SHA1(1e0ca51a2d45c01fa3f11950ddd387f41ddae691) )
+ ROM_LOAD32_BYTE( "945_l03b.e8", 0x180002, 0x20000, CRC(933e68b9) SHA1(f3a39446ca77d17fdbd938bd5f718ae9d5570879) )
+ ROM_LOAD32_BYTE( "945_l03d.h8", 0x180003, 0x20000, CRC(f375e87b) SHA1(6427b966795c907c8e516244872fe52217da62c4) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "945l14.j28", 0x0000, 0x0100, CRC(c778c189) SHA1(847eaf379ba075c25911c6f83dd63ff390534f60) ) /* priority encoder (not used) */
+
+ ROM_REGION( 0x80000, "k007232", 0 ) /* 007232 samples */
ROM_LOAD( "945_A10A.C14", 0x00000, 0x20000, CRC(ec717414) SHA1(8c63d5fe01d0833529fca91bc80cdbd8a04174c0) )
ROM_LOAD( "945_A10B.C16", 0x20000, 0x20000, CRC(709e30e4) SHA1(27fcea720cd2498f1870c9290d30dcb3dd81d5e5) )
- ROM_LOAD( "945_l11a.c18", 0x40000, 0x20000, CRC(6043f4eb) SHA1(1c2e9ace1cfdde504b7b6158e3c3f54dc5ae33d4) )
- ROM_LOAD( "945_l11b.c20", 0x60000, 0x20000, CRC(89ea3baf) SHA1(8edcbaa7969185cfac48c02559826d1b8b081f3f) )
+ ROM_LOAD( "945_l11a.c18", 0x40000, 0x20000, CRC(6043f4eb) SHA1(1c2e9ace1cfdde504b7b6158e3c3f54dc5ae33d4) )
+ ROM_LOAD( "945_l11b.c20", 0x60000, 0x20000, CRC(89ea3baf) SHA1(8edcbaa7969185cfac48c02559826d1b8b081f3f) )
ROM_END
ROM_START( gradius3a )
@@ -499,7 +500,7 @@ ROM_END
-GAME( 1989, gradius3, 0, gradius3, gradius3, driver_device, 0, ROT0, "Konami", "Gradius III (World, program code R)", GAME_SUPPORTS_SAVE )
-GAME( 1989, gradius3j, gradius3, gradius3, gradius3, driver_device, 0, ROT0, "Konami", "Gradius III (Japan, program code S)", GAME_SUPPORTS_SAVE )
-GAME( 1989, gradius3js, gradius3, gradius3, gradius3, driver_device, 0, ROT0, "Konami", "Gradius III (Japan, program code S, split)", GAME_SUPPORTS_SAVE )
-GAME( 1989, gradius3a, gradius3, gradius3, gradius3, driver_device, 0, ROT0, "Konami", "Gradius III (Asia)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/grchamp.c b/src/mame/drivers/grchamp.c
index 216a17ad5f0..ebb65186a9a 100644
--- a/src/mame/drivers/grchamp.c
+++ b/src/mame/drivers/grchamp.c
@@ -760,4 +760,4 @@ ROM_END
*
*************************************/
-GAMEL( 1981, grchamp, 0, grchamp, grchamp, driver_device, 0, ROT270, "Taito", "Grand Champion", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE, layout_grchamp )
+GAMEL( 1981, grchamp, 0, grchamp, grchamp, driver_device, 0, ROT270, "Taito", "Grand Champion", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_grchamp )
diff --git a/src/mess/drivers/grfd2301.c b/src/mame/drivers/grfd2301.c
index d7ec39534c1..e03f9312c2d 100644
--- a/src/mess/drivers/grfd2301.c
+++ b/src/mame/drivers/grfd2301.c
@@ -136,4 +136,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", GAME_NOT_WORKING | GAME_NO_SOUND_HW )
+COMP( 198?, grfd2301, 0, 0, grfd2301, grfd2301, driver_device, 0, "Genrad", "Futuredata 2301 Network Processor", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW )
diff --git a/src/mame/drivers/gridlee.c b/src/mame/drivers/gridlee.c
index 1e5d956f36a..6bd0ea52280 100644
--- a/src/mame/drivers/gridlee.c
+++ b/src/mame/drivers/gridlee.c
@@ -472,4 +472,4 @@ ROM_END
*
*************************************/
-GAME( 1983, gridlee, 0, gridlee, gridlee, driver_device, 0, ROT0, "Videa", "Gridlee", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
+GAME( 1983, gridlee, 0, gridlee, gridlee, driver_device, 0, ROT0, "Videa", "Gridlee", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
diff --git a/src/mame/drivers/groundfx.c b/src/mame/drivers/groundfx.c
index a719cdd9223..ef3386c9985 100644
--- a/src/mame/drivers/groundfx.c
+++ b/src/mame/drivers/groundfx.c
@@ -245,7 +245,7 @@ static INPUT_PORTS_START( groundfx )
PORT_BIT( 0xff, 0x7f, IPT_AD_STICK_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(15) PORT_REVERSE PORT_PLAYER(1)
PORT_START("AN1") /* IN 3, accel */
- PORT_BIT( 0xff, 0xff, IPT_AD_STICK_Y ) PORT_SENSITIVITY(20) PORT_KEYDELTA(10) PORT_PLAYER(1)
+ PORT_BIT( 0xff, 0x00, IPT_AD_STICK_Y ) PORT_SENSITIVITY(20) PORT_KEYDELTA(10) PORT_PLAYER(1)
PORT_START("AN2") /* IN 4, sound volume */
PORT_BIT( 0xff, 0x00, IPT_AD_STICK_X ) PORT_SENSITIVITY(20) PORT_KEYDELTA(10) PORT_REVERSE PORT_PLAYER(2)
diff --git a/src/mame/drivers/gstream.c b/src/mame/drivers/gstream.c
index b21492213d2..089e69d9cfe 100644
--- a/src/mame/drivers/gstream.c
+++ b/src/mame/drivers/gstream.c
@@ -1171,6 +1171,6 @@ DRIVER_INIT_MEMBER(gstream_state,x2222)
}
-GAME( 2002, gstream, 0, gstream, gstream, gstream_state, gstream, ROT270, "Oriental Soft Japan", "G-Stream G2020", GAME_SUPPORTS_SAVE )
-GAME( 2000, x2222, 0, x2222, x2222, gstream_state, x2222, ROT270, "Oriental Soft / Promat", "X2222 (final debug?)", GAME_SUPPORTS_SAVE | GAME_NO_SOUND )
-GAME( 2000, x2222o, x2222, x2222, x2222, gstream_state, x2222, ROT270, "Oriental Soft / Promat", "X2222 (5-level prototype)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_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.c b/src/mame/drivers/gstriker.c
index 51f9be4173d..c37d4a695af 100644
--- a/src/mame/drivers/gstriker.c
+++ b/src/mame/drivers/gstriker.c
@@ -181,7 +181,7 @@ Frequencies: 68k is XTAL_32MHZ/2
void gstriker_state::machine_start()
{
membank("soundbank")->configure_entries(0, 8, memregion("audiocpu")->base(), 0x8000);
-
+
save_item(NAME(m_dmmy_8f_ret));
save_item(NAME(m_pending_command));
}
@@ -1012,7 +1012,7 @@ void gstriker_state::mcu_init()
m_maincpu->space(AS_PROGRAM).install_write_handler(0x20008e, 0x20008f, write16_delegate(FUNC(gstriker_state::twrldc94_prot_reg_w),this));
m_maincpu->space(AS_PROGRAM).install_read_handler(0x20008e, 0x20008f, read16_delegate(FUNC(gstriker_state::twrldc94_prot_reg_r),this));
-
+
save_item(NAME(m_mcu_data));
save_item(NAME(m_prot_reg));
}
@@ -1040,13 +1040,13 @@ DRIVER_INIT_MEMBER(gstriker_state,vgoalsoc)
/*** GAME DRIVERS ************************************************************/
-GAME( 1993, gstriker, 0, gstriker, gstriker, driver_device, 0, ROT0, "Human", "Grand Striker", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1993, gstrikera, gstriker, gstriker, gstriker, driver_device, 0, ROT0, "Human", "Grand Striker (Americas)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1993, gstrikerj, gstriker, gstriker, gstriker, driver_device, 0, ROT0, "Human", "Grand Striker (Japan)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+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 )
/* Similar, but not identical hardware, appear to be protected by an MCU :-( */
-GAME( 1994, vgoalsoc, 0, vgoal, vgoalsoc, gstriker_state, vgoalsoc, ROT0, "Tecmo", "V Goal Soccer (Europe)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // has ger/hol/arg/bra/ita/eng/spa/fra
-GAME( 1994, vgoalsca, vgoalsoc, vgoal, vgoalsoc, gstriker_state, vgoalsoc, ROT0, "Tecmo", "V Goal Soccer (US/Japan/Korea)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // has ger/hol/arg/bra/ita/kor/usa/jpn
-GAME( 1994, twrldc94, 0, twc94, twrldc94, gstriker_state, twrldc94, ROT0, "Tecmo", "Tecmo World Cup '94 (set 1)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1994, twrldc94a,twrldc94, twc94, twrldc94, gstriker_state, twrldc94a, ROT0, "Tecmo", "Tecmo World Cup '94 (set 2)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+GAME( 1994, vgoalsoc, 0, vgoal, vgoalsoc, gstriker_state, vgoalsoc, ROT0, "Tecmo", "V Goal Soccer (Europe)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // has ger/hol/arg/bra/ita/eng/spa/fra
+GAME( 1994, vgoalsca, vgoalsoc, vgoal, vgoalsoc, gstriker_state, vgoalsoc, ROT0, "Tecmo", "V Goal Soccer (US/Japan/Korea)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // has ger/hol/arg/bra/ita/kor/usa/jpn
+GAME( 1994, twrldc94, 0, twc94, twrldc94, gstriker_state, twrldc94, ROT0, "Tecmo", "Tecmo World Cup '94 (set 1)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1994, twrldc94a,twrldc94, twc94, twrldc94, gstriker_state, twrldc94a, ROT0, "Tecmo", "Tecmo World Cup '94 (set 2)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/gsword.c b/src/mame/drivers/gsword.c
index 50ae7998a2c..b7a694cb30e 100644
--- a/src/mame/drivers/gsword.c
+++ b/src/mame/drivers/gsword.c
@@ -902,6 +902,6 @@ DRIVER_INIT_MEMBER(gsword_state,gsword2)
}
-GAME( 1983, josvolly, 0, josvolly, josvolly, driver_device, 0, ROT90, "Allumer / Taito Corporation", "Joshi Volleyball", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1984, gsword, 0, gsword, gsword, gsword_state, gsword, ROT0, "Allumer / Taito Corporation", "Great Swordsman (World?)", GAME_SUPPORTS_SAVE )
-GAME( 1984, gsword2, gsword, gsword, gsword, gsword_state, gsword2, ROT0, "Allumer / Taito Corporation", "Great Swordsman (Japan?)", GAME_SUPPORTS_SAVE )
+GAME( 1983, josvolly, 0, josvolly, josvolly, driver_device, 0, ROT90, "Allumer / Taito Corporation", "Joshi Volleyball", 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.c b/src/mame/drivers/gticlub.c
index fe653e7b83a..e8c88a6981f 100644
--- a/src/mame/drivers/gticlub.c
+++ b/src/mame/drivers/gticlub.c
@@ -1449,12 +1449,12 @@ DRIVER_INIT_MEMBER(gticlub_state,hangpltu)
/*************************************************************************/
-GAME( 1996, gticlub, 0, gticlub, gticlub, gticlub_state, gticlub, ROT0, "Konami", "GTI Club (ver EAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, gticlubu, gticlub, gticlub, gticlub, gticlub_state, gticlub, ROT0, "Konami", "GTI Club (ver UAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, gticluba, gticlub, gticlub, gticlub, gticlub_state, gticlub, ROT0, "Konami", "GTI Club (ver AAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, gticlubj, gticlub, gticlub, gticlub, gticlub_state, gticlub, ROT0, "Konami", "GTI Club (ver JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, thunderh, 0, thunderh, thunderh, gticlub_state, gticlub, ROT0, "Konami", "Operation Thunder Hurricane (ver EAA)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND )
-GAME( 1996, thunderhu,thunderh, thunderh, thunderh, gticlub_state, gticlub, ROT0, "Konami", "Operation Thunder Hurricane (ver UAA)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND )
-GAME( 1997, slrasslt, 0, slrasslt, slrasslt, gticlub_state, gticlub, ROT0, "Konami", "Solar Assault (ver UAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAMEL(1997, hangplt, 0, hangplt, hangplt, gticlub_state, hangplt, ROT0, "Konami", "Hang Pilot (ver JAB)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND, layout_dualhovu )
-GAMEL(1997, hangpltu, hangplt, hangplt, hangplt, gticlub_state, hangpltu, ROT0, "Konami", "Hang Pilot (ver UAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND, layout_dualhovu )
+GAME( 1996, gticlub, 0, gticlub, gticlub, gticlub_state, gticlub, ROT0, "Konami", "GTI Club (ver EAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, gticlubu, gticlub, gticlub, gticlub, gticlub_state, gticlub, ROT0, "Konami", "GTI Club (ver UAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, gticluba, gticlub, gticlub, gticlub, gticlub_state, gticlub, ROT0, "Konami", "GTI Club (ver AAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, gticlubj, gticlub, gticlub, gticlub, gticlub_state, gticlub, ROT0, "Konami", "GTI Club (ver JAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, thunderh, 0, thunderh, thunderh, gticlub_state, gticlub, ROT0, "Konami", "Operation Thunder Hurricane (ver EAA)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, thunderhu,thunderh, thunderh, thunderh, gticlub_state, gticlub, ROT0, "Konami", "Operation Thunder Hurricane (ver UAA)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
+GAME( 1997, slrasslt, 0, slrasslt, slrasslt, gticlub_state, gticlub, ROT0, "Konami", "Solar Assault (ver UAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAMEL(1997, hangplt, 0, hangplt, hangplt, gticlub_state, hangplt, ROT0, "Konami", "Hang Pilot (ver JAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND, layout_dualhovu )
+GAMEL(1997, hangpltu, hangplt, hangplt, hangplt, gticlub_state, hangpltu, ROT0, "Konami", "Hang Pilot (ver UAA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND, layout_dualhovu )
diff --git a/src/mame/drivers/gts1.c b/src/mame/drivers/gts1.c
index f5b670d3799..12ff867b851 100644
--- a/src/mame/drivers/gts1.c
+++ b/src/mame/drivers/gts1.c
@@ -975,34 +975,34 @@ ROM_START(sys1test)
ROM_END
-GAME(1977, gts1, 0, gts1, gts1, gts1_state, gts1, ROT0, "Gottlieb", "System 1", GAME_IS_BIOS_ROOT)
+GAME(1977, gts1, 0, gts1, gts1, gts1_state, gts1, ROT0, "Gottlieb", "System 1", MACHINE_IS_BIOS_ROOT)
//Exact same roms as gts1 with added hardware we'll likely need roms for to emulate properly
-GAME(1979, gts1s, gts1, gts1, gts1, gts1_state, gts1, ROT0, "Gottlieb", "System 1 with sound board", GAME_IS_BIOS_ROOT)
-GAME(19??, sys1test, gts1, gts1, gts1, gts1_state, gts1, ROT0, "Gottlieb", "System 1 Test prom", GAME_IS_SKELETON_MECHANICAL)
+GAME(1979, gts1s, gts1, gts1, gts1, gts1_state, gts1, ROT0, "Gottlieb", "System 1 with sound board", MACHINE_IS_BIOS_ROOT)
+GAME(19??, sys1test, gts1, gts1, gts1, gts1_state, gts1, ROT0, "Gottlieb", "System 1 Test prom", MACHINE_IS_SKELETON_MECHANICAL)
// chimes
-GAME(1977, cleoptra, gts1, gts1, gts1, gts1_state, gts1, ROT0, "Gottlieb", "Cleopatra", GAME_IS_SKELETON_MECHANICAL)
-GAME(1978, sinbad, gts1, gts1, gts1, gts1_state, gts1, ROT0, "Gottlieb", "Sinbad", GAME_IS_SKELETON_MECHANICAL)
-GAME(1978, sinbadn, sinbad, gts1, gts1, gts1_state, gts1, ROT0, "Gottlieb", "Sinbad (Norway)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1978, jokrpokr, gts1, gts1, jokrpokr, gts1_state, gts1, ROT0, "Gottlieb", "Joker Poker", GAME_IS_SKELETON_MECHANICAL)
-GAME(1978, dragon, gts1, gts1, gts1, gts1_state, gts1, ROT0, "Gottlieb", "Dragon", GAME_IS_SKELETON_MECHANICAL)
-GAME(1979, solaride, gts1, gts1, gts1, gts1_state, gts1, ROT0, "Gottlieb", "Solar Ride", GAME_IS_SKELETON_MECHANICAL)
-GAME(1979, countdwn, gts1, gts1, gts1, gts1_state, gts1, ROT0, "Gottlieb", "Count-Down", GAME_IS_SKELETON_MECHANICAL)
+GAME(1977, cleoptra, gts1, gts1, gts1, gts1_state, gts1, ROT0, "Gottlieb", "Cleopatra", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1978, sinbad, gts1, gts1, gts1, gts1_state, gts1, ROT0, "Gottlieb", "Sinbad", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1978, sinbadn, sinbad, gts1, gts1, gts1_state, gts1, ROT0, "Gottlieb", "Sinbad (Norway)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1978, jokrpokr, gts1, gts1, jokrpokr, gts1_state, gts1, ROT0, "Gottlieb", "Joker Poker", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1978, dragon, gts1, gts1, gts1, gts1_state, gts1, ROT0, "Gottlieb", "Dragon", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1979, solaride, gts1, gts1, gts1, gts1_state, gts1, ROT0, "Gottlieb", "Solar Ride", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1979, countdwn, gts1, gts1, gts1, gts1_state, gts1, ROT0, "Gottlieb", "Count-Down", MACHINE_IS_SKELETON_MECHANICAL)
// NE555 beeper
-GAME(1978, closeenc, gts1, gts1, gts1, gts1_state, gts1, ROT0, "Gottlieb", "Close Encounters of the Third Kind", GAME_IS_SKELETON_MECHANICAL)
-GAME(1978, charlies, gts1, gts1, gts1, gts1_state, gts1, ROT0, "Gottlieb", "Charlie's Angels", GAME_IS_SKELETON_MECHANICAL)
-GAME(1979, pinpool, gts1, gts1, gts1, gts1_state, gts1, ROT0, "Gottlieb", "Pinball Pool", GAME_IS_SKELETON_MECHANICAL)
+GAME(1978, closeenc, gts1, gts1, gts1, gts1_state, gts1, ROT0, "Gottlieb", "Close Encounters of the Third Kind", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1978, charlies, gts1, gts1, gts1, gts1_state, gts1, ROT0, "Gottlieb", "Charlie's Angels", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1979, pinpool, gts1, gts1, gts1, gts1_state, gts1, ROT0, "Gottlieb", "Pinball Pool", MACHINE_IS_SKELETON_MECHANICAL)
// sound card
-GAME(1979, totem, gts1s, gts1, gts1, gts1_state, gts1, ROT0, "Gottlieb", "Totem", GAME_IS_SKELETON_MECHANICAL)
-GAME(1979, hulk, gts1s, gts1, gts1, gts1_state, gts1, ROT0, "Gottlieb", "The Incredible Hulk", GAME_IS_SKELETON_MECHANICAL)
-GAME(1979, geniep, gts1s, gts1, gts1, gts1_state, gts1, ROT0, "Gottlieb", "Genie (Pinball)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1980, buckrgrs, gts1s, gts1, gts1, gts1_state, gts1, ROT0, "Gottlieb", "Buck Rogers", GAME_IS_SKELETON_MECHANICAL)
-GAME(1980, torch, gts1s, gts1, gts1, gts1_state, gts1, ROT0, "Gottlieb", "Torch", GAME_IS_SKELETON_MECHANICAL)
-GAME(1980, roldisco, gts1s, gts1, gts1, gts1_state, gts1, ROT0, "Gottlieb", "Roller Disco", GAME_IS_SKELETON_MECHANICAL)
-GAME(1980, astannie, gts1s, gts1, gts1, gts1_state, gts1, ROT0, "Gottlieb", "Asteroid Annie and the Aliens", GAME_IS_SKELETON_MECHANICAL)
+GAME(1979, totem, gts1s, gts1, gts1, gts1_state, gts1, ROT0, "Gottlieb", "Totem", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1979, hulk, gts1s, gts1, gts1, gts1_state, gts1, ROT0, "Gottlieb", "The Incredible Hulk", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1979, geniep, gts1s, gts1, gts1, gts1_state, gts1, ROT0, "Gottlieb", "Genie (Pinball)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1980, buckrgrs, gts1s, gts1, gts1, gts1_state, gts1, ROT0, "Gottlieb", "Buck Rogers", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1980, torch, gts1s, gts1, gts1, gts1_state, gts1, ROT0, "Gottlieb", "Torch", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1980, roldisco, gts1s, gts1, gts1, gts1_state, gts1, ROT0, "Gottlieb", "Roller Disco", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1980, astannie, gts1s, gts1, gts1, gts1_state, gts1, ROT0, "Gottlieb", "Asteroid Annie and the Aliens", MACHINE_IS_SKELETON_MECHANICAL)
// homebrew
-GAME(1986, hexagone, gts1s, gts1, gts1, gts1_state, gts1, ROT0, "Christian Tabart", "L'Hexagone (France)", GAME_IS_SKELETON_MECHANICAL)
+GAME(1986, hexagone, gts1s, gts1, gts1, gts1_state, gts1, ROT0, "Christian Tabart", "L'Hexagone (France)", MACHINE_IS_SKELETON_MECHANICAL)
diff --git a/src/mame/drivers/gts3.c b/src/mame/drivers/gts3.c
index ecc7679e7a7..d4cd95ee06a 100644
--- a/src/mame/drivers/gts3.c
+++ b/src/mame/drivers/gts3.c
@@ -580,19 +580,19 @@ ROM_START(tt_game)
ROM_LOAD("yrom1.bin", 0x8000, 0x8000, NO_DUMP)
ROM_END
-GAME(1989, lca, 0, gts3, gts3, gts3_state, gts3, ROT0, "Gottlieb", "Lights...Camera...Action!", GAME_IS_SKELETON_MECHANICAL)
-GAME(1989, lca2, lca, gts3, gts3, gts3_state, gts3, ROT0, "Gottlieb", "Lights...Camera...Action! (rev.2)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1990, silvslug, 0, gts3, gts3, gts3_state, gts3, ROT0, "Gottlieb", "Silver Slugger", GAME_IS_SKELETON_MECHANICAL)
-GAME(1990, vegas, 0, gts3, gts3, gts3_state, gts3, ROT0, "Gottlieb", "Vegas", GAME_IS_SKELETON_MECHANICAL)
-GAME(1990, deadweap, 0, gts3, gts3, gts3_state, gts3, ROT0, "Gottlieb", "Deadly Weapon", GAME_IS_SKELETON_MECHANICAL)
-GAME(1990, tfight, 0, gts3, gts3, gts3_state, gts3, ROT0, "Gottlieb", "Title Fight", GAME_IS_SKELETON_MECHANICAL)
-GAME(1990, nudgeit, 0, gts3, gts3, gts3_state, gts3, ROT0, "Gottlieb", "Nudge-It", GAME_IS_SKELETON_MECHANICAL)
-GAME(1990, bellring, 0, gts3, gts3, gts3_state, gts3, ROT0, "Gottlieb", "Bell Ringer", GAME_IS_SKELETON_MECHANICAL)
-GAME(1991, carhop, 0, gts3, gts3, gts3_state, gts3, ROT0, "Gottlieb", "Car Hop", GAME_IS_SKELETON_MECHANICAL)
-GAME(1991, hoops, 0, gts3, gts3, gts3_state, gts3, ROT0, "Gottlieb", "Hoops", GAME_IS_SKELETON_MECHANICAL)
-GAME(1991, cactjack, 0, gts3, gts3, gts3_state, gts3, ROT0, "Gottlieb", "Cactus Jack's", GAME_IS_SKELETON_MECHANICAL)
-GAME(1991, clas1812, 0, gts3, gts3, gts3_state, gts3, ROT0, "Gottlieb", "Class of 1812", GAME_IS_SKELETON_MECHANICAL)
-GAME(1991, surfnsaf, 0, gts3, gts3, gts3_state, gts3, ROT0, "Gottlieb", "Surf'n Safari", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, opthund, 0, gts3, gts3, gts3_state, gts3, ROT0, "Gottlieb", "Operation: Thunder", GAME_IS_SKELETON_MECHANICAL)
-GAME(19??, tt_game, 0, gts3, gts3, gts3_state, gts3, ROT0, "Toptronic", "unknown Toptronic pinball game", GAME_IS_SKELETON_MECHANICAL)
-GAME(1989, ccruise, 0, gts3, gts3, gts3_state, gts3, ROT0, "International Concepts","Caribbean Cruise", GAME_IS_SKELETON_MECHANICAL)
+GAME(1989, lca, 0, gts3, gts3, gts3_state, gts3, ROT0, "Gottlieb", "Lights...Camera...Action!", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1989, lca2, lca, gts3, gts3, gts3_state, gts3, ROT0, "Gottlieb", "Lights...Camera...Action! (rev.2)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1990, silvslug, 0, gts3, gts3, gts3_state, gts3, ROT0, "Gottlieb", "Silver Slugger", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1990, vegas, 0, gts3, gts3, gts3_state, gts3, ROT0, "Gottlieb", "Vegas", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1990, deadweap, 0, gts3, gts3, gts3_state, gts3, ROT0, "Gottlieb", "Deadly Weapon", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1990, tfight, 0, gts3, gts3, gts3_state, gts3, ROT0, "Gottlieb", "Title Fight", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1990, nudgeit, 0, gts3, gts3, gts3_state, gts3, ROT0, "Gottlieb", "Nudge-It", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1990, bellring, 0, gts3, gts3, gts3_state, gts3, ROT0, "Gottlieb", "Bell Ringer", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1991, carhop, 0, gts3, gts3, gts3_state, gts3, ROT0, "Gottlieb", "Car Hop", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1991, hoops, 0, gts3, gts3, gts3_state, gts3, ROT0, "Gottlieb", "Hoops", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1991, cactjack, 0, gts3, gts3, gts3_state, gts3, ROT0, "Gottlieb", "Cactus Jack's", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1991, clas1812, 0, gts3, gts3, gts3_state, gts3, ROT0, "Gottlieb", "Class of 1812", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1991, surfnsaf, 0, gts3, gts3, gts3_state, gts3, ROT0, "Gottlieb", "Surf'n Safari", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1992, opthund, 0, gts3, gts3, gts3_state, gts3, ROT0, "Gottlieb", "Operation: Thunder", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(19??, tt_game, 0, gts3, gts3, gts3_state, gts3, ROT0, "Toptronic", "unknown Toptronic pinball game", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1989, ccruise, 0, gts3, gts3, gts3_state, gts3, ROT0, "International Concepts","Caribbean Cruise", MACHINE_IS_SKELETON_MECHANICAL)
diff --git a/src/mame/drivers/gts3a.c b/src/mame/drivers/gts3a.c
index 0a09121980d..b0187f3ccdb 100644
--- a/src/mame/drivers/gts3a.c
+++ b/src/mame/drivers/gts3a.c
@@ -1175,38 +1175,38 @@ 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", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, smb1, smb, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Super Mario Brothers (rev.1)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, smb2, smb, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Super Mario Brothers (rev.2)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, smb3, smb, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Super Mario Brothers (rev.3)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, smbmush, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Super Mario Brothers Mushroom World", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, cueball, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Cue Ball Wizard", GAME_IS_SKELETON_MECHANICAL)
-GAME(1993, sfight2, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Street Fighter II", GAME_IS_SKELETON_MECHANICAL)
-GAME(1993, sfight2a, sfight2, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Street Fighter II (rev.1)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1993, sfight2b, sfight2, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Street Fighter II (rev.2)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1993, teedoffp, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Tee'd Off", GAME_IS_SKELETON_MECHANICAL)
-GAME(1993, teedoffp1, teedoffp, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Tee'd Off (rev.1)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1993, teedoffp3, teedoffp, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Tee'd Off (rev.3)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1993, gladiatp, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Gladiators", GAME_IS_SKELETON_MECHANICAL)
-GAME(1993, wipeout, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Wipeout (rev.2)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1994, rescu911, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Rescue 911 (rev.1)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1994, wcsoccer, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "World Challenge Soccer (rev.1)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1994, wcsoccerd2, wcsoccer, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "World Challenge Soccer (disp.rev.2)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1995, stargatp, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Stargate (Pinball)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1995, stargatp1, stargatp, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Stargate (rev.1)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1995, stargatp2, stargatp, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Stargate (rev.2)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1995, stargatp3, stargatp, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Stargate (rev.3)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1995, stargatp4, stargatp, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Stargate (rev.4)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1995, shaqattq, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Shaq Attaq (rev.5)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1995, shaqattq2, shaqattq, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Shaq Attaq (rev.2)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1994, freddy, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Freddy: A Nightmare on Elm Street (rev.3)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1994, freddy4, freddy, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Freddy: A Nightmare on Elm Street (rev.4)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1995, bighurt, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Frank Thomas' Big Hurt (rev.3)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1995, waterwld, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Waterworld (rev.3)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1995, waterwld2, waterwld, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Waterworld (rev.2)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1995, snspares, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Strikes n' Spares (rev.6)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1995, snspares1, snspares, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Strikes n' Spares (rev.1)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1995, andretti, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Mario Andretti", GAME_IS_SKELETON_MECHANICAL)
-GAME(1995, andretti4, andretti, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Mario Andretti (rev.T4)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1996, barbwire, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Barb Wire", GAME_IS_SKELETON_MECHANICAL)
-GAME(1996, brooks, 0, gts3a, gts3a, gts3a_state, gts3a, ROT0, "Gottlieb", "Brooks & Dunn (rev.T1)", GAME_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(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, 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, 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.c b/src/mame/drivers/gts80.c
index e3f3735d369..2cbcff01279 100644
--- a/src/mame/drivers/gts80.c
+++ b/src/mame/drivers/gts80.c
@@ -748,25 +748,25 @@ 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", GAME_IS_SKELETON_MECHANICAL)
-
-/* disp1 */GAME(1980, panthera, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Panthera", GAME_IS_SKELETON_MECHANICAL)
-/* disp1 */GAME(1980, spidermn, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "The Amazing Spider-Man", GAME_IS_SKELETON_MECHANICAL)
-/* disp1 */GAME(1980, circusp, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Circus", GAME_IS_SKELETON_MECHANICAL)
-/* disp1 */GAME(1980, cntforce, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Counterforce", GAME_IS_SKELETON_MECHANICAL)
-/* disp1 */GAME(1980, starrace, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Star Race", GAME_IS_SKELETON_MECHANICAL)
-/* disp2 */GAME(1980, jamesb, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "James Bond (Timed Play)", GAME_IS_SKELETON_MECHANICAL)
-/* disp2 */GAME(1980, jamesb2, jamesb, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "James Bond (3/5-Ball)", GAME_IS_SKELETON_MECHANICAL)
-/* cust */GAME(1980, timeline, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Time Line", GAME_IS_SKELETON_MECHANICAL)
-/* disp1 */GAME(1981, forceii, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Force II", GAME_IS_SKELETON_MECHANICAL)
-/* cust */GAME(1981, pnkpnthr, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Pink Panther", GAME_IS_SKELETON_MECHANICAL)
-/* disp1 */GAME(1981, marsp, 0, gts80_ss, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Mars - God of War", GAME_IS_SKELETON_MECHANICAL)
-/* disp1 */GAME(1981, vlcno_ax, 0, gts80_ss, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Volcano", GAME_IS_SKELETON_MECHANICAL)
-/* disp1 */GAME(1981, vlcno_1b, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Volcano (Sound Only set 1)", GAME_IS_SKELETON_MECHANICAL)
-/* disp1 */GAME(1981, vlcno_1a, vlcno_1b, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Volcano (Sound Only set 2)", GAME_IS_SKELETON_MECHANICAL)
-/* disp2 */GAME(1981, blckhole, 0, gts80_ss, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Black Hole (Rev. 4)", GAME_IS_SKELETON_MECHANICAL)
-/* disp2 */GAME(1981, blckhole2, blckhole, gts80_ss, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Black Hole (Rev. 2)", GAME_IS_SKELETON_MECHANICAL)
-/* disp2 */GAME(1981, blckhols, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Black Hole (Sound Only)", GAME_IS_SKELETON_MECHANICAL)
-/* disp2 */GAME(1982, hh, 0, gts80_hh, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Haunted House (Rev. 2)", GAME_IS_SKELETON_MECHANICAL)
-/* disp2 */GAME(1982, hh_1, hh, gts80_hh, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Haunted House (Rev. 1)", GAME_IS_SKELETON_MECHANICAL)
-/* disp2 */GAME(1981, eclipse, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Eclipse", GAME_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, vlcno_ax, 0, gts80_ss, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Volcano", MACHINE_IS_SKELETON_MECHANICAL)
+/* disp1 */GAME(1981, vlcno_1b, 0, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Volcano (Sound Only set 1)", MACHINE_IS_SKELETON_MECHANICAL)
+/* disp1 */GAME(1981, vlcno_1a, vlcno_1b, gts80_s, gts80, gts80_state, gts80, ROT0, "Gottlieb", "Volcano (Sound Only set 2)", 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.c b/src/mame/drivers/gts80a.c
index d18a00c3b36..f8ceda52c66 100644
--- a/src/mame/drivers/gts80a.c
+++ b/src/mame/drivers/gts80a.c
@@ -778,27 +778,27 @@ ROM_START(touchdn)
ROM_END
-/* cust */GAME(1981, dvlsdre, 0, gts80a_ss, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Devil's Dare", GAME_IS_SKELETON_MECHANICAL)
-/* cust */GAME(1981, dvlsdre2, 0, gts80a_s, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Devil's Dare (Sound Only)", GAME_IS_SKELETON_MECHANICAL)
-/* cust */GAME(1982, rocky, 0, gts80a_ss, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Rocky", GAME_IS_SKELETON_MECHANICAL)
-/* cust */GAME(1982, spirit, 0, gts80a_ss, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Spirit", GAME_IS_SKELETON_MECHANICAL)
-/* disp3 */GAME(1982, punk, 0, gts80a_ss, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Punk!", GAME_IS_SKELETON_MECHANICAL)
-/* cust */GAME(1982, striker, 0, gts80a_ss, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Striker", GAME_IS_SKELETON_MECHANICAL)
-/* cust */GAME(1983, krullp, 0, gts80a_ss, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Krull (Pinball)", GAME_IS_SKELETON_MECHANICAL)
-/* disp3 */GAME(1983, qbquest, 0, gts80a_ss, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Q*Bert's Quest", GAME_IS_SKELETON_MECHANICAL)
-/* disp3 */GAME(1983, sorbit, 0, gts80a_ss, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Super Orbit", GAME_IS_SKELETON_MECHANICAL)
-/* disp3 */GAME(1983, rflshdlx, 0, gts80a_ss, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Royal Flush Deluxe", GAME_IS_SKELETON_MECHANICAL)
-/* cust */GAME(1983, goinnuts, 0, gts80a_ss, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Goin' Nuts", GAME_IS_SKELETON_MECHANICAL)
-/* disp3 */GAME(1983, amazonh, 0, gts80a_ss, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Amazon Hunt", GAME_IS_SKELETON_MECHANICAL)
-/* disp3 */GAME(1983, rackempp, 0, gts80a_s, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Rack 'em Up! (Pinball)", GAME_IS_SKELETON_MECHANICAL)
-/* disp3 */GAME(1983, raimfire, 0, gts80a_s, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Ready...Aim...Fire!", GAME_IS_SKELETON_MECHANICAL)
-/* disp3 */GAME(1984, jack2opn, 0, gts80a_s, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Jacks to Open", GAME_IS_SKELETON_MECHANICAL)
-/* disp3 */GAME(1984, touchdn, 0, gts80a_s, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Touchdown", GAME_IS_SKELETON_MECHANICAL)
-/* disp3 */GAME(1984, alienstr, 0, gts80a_s, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Alien Star", GAME_IS_SKELETON_MECHANICAL)
-/* disp3 */GAME(1984, thegames, 0, gts80a_s, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "The Games", GAME_IS_SKELETON_MECHANICAL)
-/* disp3 */GAME(1984, eldorado, 0, gts80a_s, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "El Dorado City of Gold", GAME_IS_SKELETON_MECHANICAL)
-/* disp3 */GAME(1985, icefever, 0, gts80a_s, gts80a, gts80a_state, gts80a, ROT0, "Gottlieb", "Ice Fever", GAME_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, 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, 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)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1981, cavemana, caveman, caveman, caveman, gts80a_state, gts80a, ROT0, "Gottlieb", "Caveman (Pinball/Video Combo, set 2)", GAME_IS_SKELETON_MECHANICAL)
+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)
diff --git a/src/mame/drivers/gts80b.c b/src/mame/drivers/gts80b.c
index 5aa3c6bfb5b..75d4d44e123 100644
--- a/src/mame/drivers/gts80b.c
+++ b/src/mame/drivers/gts80b.c
@@ -951,28 +951,28 @@ ROM_START(victoryp)
ROM_END
-GAME(1985, bountyh, 0, gts80b_s, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Bounty Hunter", GAME_IS_SKELETON_MECHANICAL)
-GAME(1985, triplay, 0, gts80b_s, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Triple Play", GAME_IS_SKELETON_MECHANICAL)
-GAME(1985, rock, 0, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Rock", GAME_IS_SKELETON_MECHANICAL)
-GAME(1985, tagteamp, 0, gts80b_s, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Tag-Team Wrestling", GAME_IS_SKELETON_MECHANICAL)
-GAME(1985, tagteamp2, tagteamp, gts80b_s, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Tag-Team Wrestling (rev.2)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1986, raven, 0, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Raven", GAME_IS_SKELETON_MECHANICAL)
-GAME(1986, hlywoodh, 0, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Hollywood Heat", GAME_IS_SKELETON_MECHANICAL)
-GAME(1986, rock_enc, rock, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Rock Encore", GAME_IS_SKELETON_MECHANICAL)
-GAME(1986, genesisp, 0, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Genesis", GAME_IS_SKELETON_MECHANICAL)
-GAME(1987, sprbreak, 0, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Spring Break", GAME_IS_SKELETON_MECHANICAL)
-GAME(19??, sprbreaks, sprbreak, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Spring Break (single ball game)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1986, goldwing, 0, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Gold Wings", GAME_IS_SKELETON_MECHANICAL)
-GAME(1987, mntecrlo, 0, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Monte Carlo (Pinball)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1987, arena, 0, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Arena", GAME_IS_SKELETON_MECHANICAL)
-GAME(1987, victoryp, 0, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Victory (Pinball)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1988, diamondp, 0, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Diamond Lady", GAME_IS_SKELETON_MECHANICAL)
-GAME(1988, txsector, 0, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "TX-Sector", GAME_IS_SKELETON_MECHANICAL)
-GAME(1989, bighouse, 0, gts80b_s3, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Big House", GAME_IS_SKELETON_MECHANICAL)
-GAME(1988, robowars, 0, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Robo-War", GAME_IS_SKELETON_MECHANICAL)
-GAME(1988, excalibr, 0, gts80b_s3, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Excalibur", GAME_IS_SKELETON_MECHANICAL)
-GAME(1988, badgirls, 0, gts80b_s3, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Bad Girls", GAME_IS_SKELETON_MECHANICAL)
-GAME(1989, hotshots, 0, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Hot Shots", GAME_IS_SKELETON_MECHANICAL)
-GAME(1989, bonebstr, 0, bonebstr, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Bone Busters Inc.", GAME_IS_SKELETON_MECHANICAL)
-GAME(1989, bonebstrf, bonebstr, bonebstr, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Bone Busters Inc. (French)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1989, nmoves, 0, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "International Concepts", "Night Moves", GAME_IS_SKELETON_MECHANICAL)
+GAME(1985, bountyh, 0, gts80b_s, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Bounty Hunter", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1985, triplay, 0, gts80b_s, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Triple Play", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1985, rock, 0, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Rock", 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, 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, hlywoodh, 0, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Hollywood Heat", 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, genesisp, 0, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Genesis", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1987, sprbreak, 0, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Spring Break", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(19??, 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(1987, mntecrlo, 0, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Monte Carlo (Pinball)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1987, arena, 0, gts80b_s1, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Arena", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1987, victoryp, 0, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Victory (Pinball)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1988, diamondp, 0, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Diamond Lady", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1988, txsector, 0, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "TX-Sector", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1989, bighouse, 0, gts80b_s3, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Big House", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1988, robowars, 0, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Robo-War", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1988, excalibr, 0, gts80b_s3, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Excalibur", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1988, badgirls, 0, gts80b_s3, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Bad Girls", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1989, hotshots, 0, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "Gottlieb", "Hot Shots", 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, nmoves, 0, gts80b_s2, gts80b, gts80b_state, gts80b, ROT0, "International Concepts", "Night Moves", MACHINE_IS_SKELETON_MECHANICAL)
diff --git a/src/mame/drivers/guab.c b/src/mame/drivers/guab.c
index 47a250f3074..e129768dddb 100644
--- a/src/mame/drivers/guab.c
+++ b/src/mame/drivers/guab.c
@@ -574,5 +574,5 @@ ROM_END
*************************************/
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)", GAME_NOT_WORKING )
+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 )
diff --git a/src/mame/drivers/gumbo.c b/src/mame/drivers/gumbo.c
index cf644396194..99509e8ab1f 100644
--- a/src/mame/drivers/gumbo.c
+++ b/src/mame/drivers/gumbo.c
@@ -393,10 +393,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", GAME_SUPPORTS_SAVE )
-GAME( 1994, mspuzzleg,gumbo, gumbo, gumbo, driver_device, 0, ROT0, "Min Corp.", "Miss Puzzle (Clone of Gumbo)", GAME_SUPPORTS_SAVE )
-GAME( 1994, msbingo, 0, mspuzzle, msbingo, driver_device, 0, ROT0, "Min Corp.", "Miss Bingo", GAME_SUPPORTS_SAVE )
-GAME( 1994, mspuzzle, 0, mspuzzle, mspuzzle, driver_device, 0, ROT90, "Min Corp.", "Miss Puzzle", GAME_SUPPORTS_SAVE )
-GAME( 1994, mspuzzlen,mspuzzle, mspuzzle, mspuzzle, driver_device, 0, ROT90, "Min Corp.", "Miss Puzzle (Nudes)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1995, dblpoint, 0, dblpoint, dblpoint, driver_device, 0, ROT0, "Min Corp.", "Double Point", GAME_SUPPORTS_SAVE )
-GAME( 1995, dblpointd,dblpoint, dblpoint, dblpoint, driver_device, 0, ROT0, "bootleg? (Dong Bang Electron)", "Double Point (Dong Bang Electron, bootleg?)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/gundealr.c b/src/mame/drivers/gundealr.c
index e41def96edd..ca6570e3e25 100644
--- a/src/mame/drivers/gundealr.c
+++ b/src/mame/drivers/gundealr.c
@@ -590,10 +590,10 @@ ROM_END
-GAME( 1990, gundealr, 0, gundealr, gundealr, driver_device, 0, ROT270, "Dooyong", "Gun Dealer", GAME_SUPPORTS_SAVE )
-GAME( 1990, gundealra, gundealr, gundealr, gundealr, driver_device, 0, ROT270, "Dooyong", "Gun Dealer (alt card set)", GAME_SUPPORTS_SAVE )
-GAME( 1990, gundealrt, gundealr, gundealr, gundealt, driver_device, 0, ROT270, "Dooyong (Tecmo license)", "Gun Dealer (Japan)", GAME_SUPPORTS_SAVE )
+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, yamyam, 0, yamyam, yamyam, driver_device, 0, ROT0, "Dooyong", "Yam! Yam!?", GAME_SUPPORTS_SAVE )
-GAME( 1990, yamyamk, yamyam, yamyam, yamyam, driver_device, 0, ROT0, "Dooyong", "Yam! Yam!? (Korea)", GAME_SUPPORTS_SAVE )
-GAME( 1990, wiseguy, yamyam, yamyam, yamyam, driver_device, 0, ROT0, "Dooyong", "Wise Guy", GAME_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 )
diff --git a/src/mame/drivers/gunpey.c b/src/mame/drivers/gunpey.c
index 5b22c38a251..9c00a3b9e8d 100644
--- a/src/mame/drivers/gunpey.c
+++ b/src/mame/drivers/gunpey.c
@@ -1494,4 +1494,4 @@ DRIVER_INIT_MEMBER(gunpey_state,gunpey)
// ...
}
-GAME( 2000, gunpey, 0, gunpey, gunpey, gunpey_state, gunpey, ROT0, "Banpresto", "Gunpey (Japan)",GAME_NOT_WORKING|GAME_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.c b/src/mame/drivers/gunsmoke.c
index 5ca8c98a9f2..0e184a18f2d 100644
--- a/src/mame/drivers/gunsmoke.c
+++ b/src/mame/drivers/gunsmoke.c
@@ -48,13 +48,13 @@ Stephh's notes (based on the games Z80 code and some tests) :
You can enter 8 chars for your initials.
-3) 'gunsmokeu'
+3) 'gunsmokeub'
- US version licensed to Romstar.
You can enter 3 chars for your initials.
-4) 'gunsmokeua'
+4) 'gunsmokeu'
- US version licensed to Romstar.
You can enter 3 chars for your initials.
@@ -211,7 +211,7 @@ static INPUT_PORTS_START( gunsmoke )
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
INPUT_PORTS_END
-static INPUT_PORTS_START( gunsmokeua )
+static INPUT_PORTS_START( gunsmokeu )
PORT_INCLUDE(gunsmoke)
// Same as 'gunsmoke', but "Lives" Dip Switch instead of "Demonstration" Dip Switch
@@ -340,242 +340,296 @@ MACHINE_CONFIG_END
ROM_START( gunsmoke )
ROM_REGION( 0x20000, "maincpu", 0 )
- ROM_LOAD( "09n_gs03.bin", 0x00000, 0x8000, CRC(40a06cef) SHA1(3e2a52d476298b7252f0adaefdb42090351e921c) ) /* Code 0000-7fff */
- ROM_LOAD( "10n_gs04.bin", 0x10000, 0x8000, CRC(8d4b423f) SHA1(149274c2ed1526ca1f419fdf8a24059ff138f7f2) ) /* Paged code */
- ROM_LOAD( "12n_gs05.bin", 0x18000, 0x8000, CRC(2b5667fb) SHA1(5b689bca1e76d803b4cae22feaa7744fa528e93f) ) /* Paged code */
+ ROM_LOAD( "gs03.09n", 0x00000, 0x8000, CRC(40a06cef) SHA1(3e2a52d476298b7252f0adaefdb42090351e921c) ) /* Code 0000-7fff */ // gse_03 ?
+ ROM_LOAD( "gs04.10n", 0x10000, 0x8000, CRC(8d4b423f) SHA1(149274c2ed1526ca1f419fdf8a24059ff138f7f2) ) /* Paged code */
+ ROM_LOAD( "gs05.12n", 0x18000, 0x8000, CRC(2b5667fb) SHA1(5b689bca1e76d803b4cae22feaa7744fa528e93f) ) /* Paged code */
ROM_REGION( 0x10000, "audiocpu", 0 )
- ROM_LOAD( "14h_gs02.bin", 0x00000, 0x8000, CRC(cd7a2c38) SHA1(c76c471f694b76015370f0eacf5350e652f526ff) )
+ ROM_LOAD( "gs02.14h", 0x00000, 0x8000, CRC(cd7a2c38) SHA1(c76c471f694b76015370f0eacf5350e652f526ff) )
ROM_REGION( 0x04000, "gfx1", 0 )
- ROM_LOAD( "11f_gs01.bin", 0x00000, 0x4000, CRC(b61ece9b) SHA1(eb3fc62644cc5b5a2b9cbe67c393d4a0e2a59ca9) ) /* Characters */
+ ROM_LOAD( "gs01.11f", 0x00000, 0x4000, CRC(b61ece9b) SHA1(eb3fc62644cc5b5a2b9cbe67c393d4a0e2a59ca9) ) /* Characters */
ROM_REGION( 0x40000, "gfx2", 0 )
- ROM_LOAD( "06c_gs13.bin", 0x00000, 0x8000, CRC(f6769fc5) SHA1(d192ec176425327ca4b7e25fc8432fc47837ba29) ) /* 32x32 tiles planes 2-3 */
- ROM_LOAD( "05c_gs12.bin", 0x08000, 0x8000, CRC(d997b78c) SHA1(3b4a9b6f9e57ecfb4ab9734379bd0ee765fd6daa) )
- ROM_LOAD( "04c_gs11.bin", 0x10000, 0x8000, CRC(125ba58e) SHA1(cf6931653cebd051564bed8121ab8713a55095c5) )
- ROM_LOAD( "02c_gs10.bin", 0x18000, 0x8000, CRC(f469c13c) SHA1(54eda52d6fce58771c0adfe2c88292a41d5a9b99) )
- ROM_LOAD( "06a_gs09.bin", 0x20000, 0x8000, CRC(539f182d) SHA1(4190c0adbecc57b92f4d002e121acb77e8c5d8d8) ) /* 32x32 tiles planes 0-1 */
- ROM_LOAD( "05a_gs08.bin", 0x28000, 0x8000, CRC(e87e526d) SHA1(d10068addf30322424a85bbc6382cb762ae3fbe2) )
- ROM_LOAD( "04a_gs07.bin", 0x30000, 0x8000, CRC(4382c0d2) SHA1(8615e62bc57b40d082f6ca211d64f22185bed1fd) )
- ROM_LOAD( "02a_gs06.bin", 0x38000, 0x8000, CRC(4cafe7a6) SHA1(fe501f3a5e9ce9e82e9708f1cd297f4c94ef0f81) )
+ ROM_LOAD( "gs13.06c", 0x00000, 0x8000, CRC(f6769fc5) SHA1(d192ec176425327ca4b7e25fc8432fc47837ba29) ) /* 32x32 tiles planes 2-3 */
+ ROM_LOAD( "gs12.05c", 0x08000, 0x8000, CRC(d997b78c) SHA1(3b4a9b6f9e57ecfb4ab9734379bd0ee765fd6daa) )
+ ROM_LOAD( "gs11.04c", 0x10000, 0x8000, CRC(125ba58e) SHA1(cf6931653cebd051564bed8121ab8713a55095c5) )
+ ROM_LOAD( "gs10.02c", 0x18000, 0x8000, CRC(f469c13c) SHA1(54eda52d6fce58771c0adfe2c88292a41d5a9b99) )
+ ROM_LOAD( "gs09.06a", 0x20000, 0x8000, CRC(539f182d) SHA1(4190c0adbecc57b92f4d002e121acb77e8c5d8d8) ) /* 32x32 tiles planes 0-1 */
+ ROM_LOAD( "gs08.05a", 0x28000, 0x8000, CRC(e87e526d) SHA1(d10068addf30322424a85bbc6382cb762ae3fbe2) )
+ ROM_LOAD( "gs07.04a", 0x30000, 0x8000, CRC(4382c0d2) SHA1(8615e62bc57b40d082f6ca211d64f22185bed1fd) )
+ ROM_LOAD( "gs06.02a", 0x38000, 0x8000, CRC(4cafe7a6) SHA1(fe501f3a5e9ce9e82e9708f1cd297f4c94ef0f81) )
ROM_REGION( 0x40000, "gfx3", 0 )
- ROM_LOAD( "06n_gs22.bin", 0x00000, 0x8000, CRC(dc9c508c) SHA1(920505dd4c63b177918feb4e54cca8a7948ec9d9) ) /* Sprites planes 2-3 */
- ROM_LOAD( "04n_gs21.bin", 0x08000, 0x8000, CRC(68883749) SHA1(c7bf2bf49c53feddf8f30b4001dc2d59b52b1c28) ) /* Sprites planes 2-3 */
- ROM_LOAD( "03n_gs20.bin", 0x10000, 0x8000, CRC(0be932ed) SHA1(1c5af5884a23112dbc36579515d1cb497992da2f) ) /* Sprites planes 2-3 */
- ROM_LOAD( "01n_gs19.bin", 0x18000, 0x8000, CRC(63072f93) SHA1(cb3a2729782cf2855558d081fe92d28366228b8e) ) /* Sprites planes 2-3 */
- ROM_LOAD( "06l_gs18.bin", 0x20000, 0x8000, CRC(f69a3c7c) SHA1(e9eb9dfa7d53aa7b728150f91d05bfc3bf6f1e75) ) /* Sprites planes 0-1 */
- ROM_LOAD( "04l_gs17.bin", 0x28000, 0x8000, CRC(4e98562a) SHA1(0341b8a79be1d71a57d0d76ed890e15f9f92259e) ) /* Sprites planes 0-1 */
- ROM_LOAD( "03l_gs16.bin", 0x30000, 0x8000, CRC(0d99c3b3) SHA1(436c566b76f632242448671e3b6319f7d9f65322) ) /* Sprites planes 0-1 */
- ROM_LOAD( "01l_gs15.bin", 0x38000, 0x8000, CRC(7f14270e) SHA1(dd06c333c2ea097e25185a1423cd61e1b7afc42b) ) /* Sprites planes 0-1 */
+ ROM_LOAD( "gs22.06n", 0x00000, 0x8000, CRC(dc9c508c) SHA1(920505dd4c63b177918feb4e54cca8a7948ec9d9) ) /* Sprites planes 2-3 */
+ ROM_LOAD( "gs21.04n", 0x08000, 0x8000, CRC(68883749) SHA1(c7bf2bf49c53feddf8f30b4001dc2d59b52b1c28) ) /* Sprites planes 2-3 */
+ ROM_LOAD( "gs20.03n", 0x10000, 0x8000, CRC(0be932ed) SHA1(1c5af5884a23112dbc36579515d1cb497992da2f) ) /* Sprites planes 2-3 */
+ ROM_LOAD( "gs19.01n", 0x18000, 0x8000, CRC(63072f93) SHA1(cb3a2729782cf2855558d081fe92d28366228b8e) ) /* Sprites planes 2-3 */
+ ROM_LOAD( "gs18.06l", 0x20000, 0x8000, CRC(f69a3c7c) SHA1(e9eb9dfa7d53aa7b728150f91d05bfc3bf6f1e75) ) /* Sprites planes 0-1 */
+ ROM_LOAD( "gs17.04l", 0x28000, 0x8000, CRC(4e98562a) SHA1(0341b8a79be1d71a57d0d76ed890e15f9f92259e) ) /* Sprites planes 0-1 */
+ ROM_LOAD( "gs16.03l", 0x30000, 0x8000, CRC(0d99c3b3) SHA1(436c566b76f632242448671e3b6319f7d9f65322) ) /* Sprites planes 0-1 */
+ ROM_LOAD( "gs15.01l", 0x38000, 0x8000, CRC(7f14270e) SHA1(dd06c333c2ea097e25185a1423cd61e1b7afc42b) ) /* Sprites planes 0-1 */
ROM_REGION( 0x8000, "gfx4", 0 ) /* background tilemaps */
- ROM_LOAD( "11c_gs14.bin", 0x00000, 0x8000, CRC(0af4f7eb) SHA1(24a98fdeedeeaf1035b4af52d5a8dd5e47a5e62d) )
+ ROM_LOAD( "gs14.11c", 0x00000, 0x8000, CRC(0af4f7eb) SHA1(24a98fdeedeeaf1035b4af52d5a8dd5e47a5e62d) )
ROM_REGION( 0x0a00, "proms", 0 )
- ROM_LOAD( "03b_g-01.bin", 0x0000, 0x0100, CRC(02f55589) SHA1(8a3f98304aedf3aba1c08b615bf457752a480edc) ) /* red component */
- ROM_LOAD( "04b_g-02.bin", 0x0100, 0x0100, CRC(e1e36dd9) SHA1(5bd88a35898a2d973045bdde8311aac3a12826de) ) /* green component */
- ROM_LOAD( "05b_g-03.bin", 0x0200, 0x0100, CRC(989399c0) SHA1(e408e391f49ed0c7b9e16479fea44b809440fefc) ) /* blue component */
- ROM_LOAD( "09d_g-04.bin", 0x0300, 0x0100, CRC(906612b5) SHA1(7b727a6200c088538180758320ede84aa7e5b96d) ) /* char lookup table */
- ROM_LOAD( "14a_g-06.bin", 0x0400, 0x0100, CRC(4a9da18b) SHA1(fed3b81b56aab2ed0a21ed1fcebe3f1ae095a13b) ) /* tile lookup table */
- ROM_LOAD( "15a_g-07.bin", 0x0500, 0x0100, CRC(cb9394fc) SHA1(8ad0fde6a8ef8326d2da4b6dbf3b51f5f6c668c8) ) /* tile palette bank */
- ROM_LOAD( "09f_g-09.bin", 0x0600, 0x0100, CRC(3cee181e) SHA1(3f95bdb12391cb9b3673191bda8d09c84b36b4d3) ) /* sprite lookup table */
- ROM_LOAD( "08f_g-08.bin", 0x0700, 0x0100, CRC(ef91cdd2) SHA1(90b9191c9f10a153d64055a4238eb6e15b8c12bc) ) /* sprite palette bank */
- ROM_LOAD( "02j_g-10.bin", 0x0800, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */
- ROM_LOAD( "01f_g-05.bin", 0x0900, 0x0100, CRC(25c90c2a) SHA1(42893572bab757ec01e181fc418cb911638d37e0) ) /* priority? (not used) */
+ ROM_LOAD( "g-01.03b", 0x0000, 0x0100, CRC(02f55589) SHA1(8a3f98304aedf3aba1c08b615bf457752a480edc) ) /* red component */
+ ROM_LOAD( "g-02.04b", 0x0100, 0x0100, CRC(e1e36dd9) SHA1(5bd88a35898a2d973045bdde8311aac3a12826de) ) /* green component */
+ ROM_LOAD( "g-03.05b", 0x0200, 0x0100, CRC(989399c0) SHA1(e408e391f49ed0c7b9e16479fea44b809440fefc) ) /* blue component */
+ ROM_LOAD( "g-04.09d", 0x0300, 0x0100, CRC(906612b5) SHA1(7b727a6200c088538180758320ede84aa7e5b96d) ) /* char lookup table */
+ ROM_LOAD( "g-06.14a", 0x0400, 0x0100, CRC(4a9da18b) SHA1(fed3b81b56aab2ed0a21ed1fcebe3f1ae095a13b) ) /* tile lookup table */
+ ROM_LOAD( "g-07.15a", 0x0500, 0x0100, CRC(cb9394fc) SHA1(8ad0fde6a8ef8326d2da4b6dbf3b51f5f6c668c8) ) /* tile palette bank */
+ ROM_LOAD( "g-09.09f", 0x0600, 0x0100, CRC(3cee181e) SHA1(3f95bdb12391cb9b3673191bda8d09c84b36b4d3) ) /* sprite lookup table */
+ ROM_LOAD( "g-08.08f", 0x0700, 0x0100, CRC(ef91cdd2) SHA1(90b9191c9f10a153d64055a4238eb6e15b8c12bc) ) /* sprite palette bank */
+ ROM_LOAD( "g-10.02j", 0x0800, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */
+ ROM_LOAD( "g-05.01f", 0x0900, 0x0100, CRC(25c90c2a) SHA1(42893572bab757ec01e181fc418cb911638d37e0) ) /* priority? (not used) */
ROM_END
ROM_START( gunsmokeb )
ROM_REGION( 0x20000, "maincpu", 0 )
- ROM_LOAD( "3.ic85", 0x00000, 0x8000, CRC(ae6f4b75) SHA1(f4ee4f7a7d507ceaef9ce8165704fd80c8c1e8ba) ) /* Code 0000-7fff */
- ROM_LOAD( "10n_gs04.bin", 0x10000, 0x8000, CRC(8d4b423f) SHA1(149274c2ed1526ca1f419fdf8a24059ff138f7f2) ) /* Paged code */
- ROM_LOAD( "12n_gs05.bin", 0x18000, 0x8000, CRC(2b5667fb) SHA1(5b689bca1e76d803b4cae22feaa7744fa528e93f) ) /* Paged code */
+ ROM_LOAD( "3.ic85", 0x00000, 0x8000, CRC(ae6f4b75) SHA1(f4ee4f7a7d507ceaef9ce8165704fd80c8c1e8ba) ) /* Code 0000-7fff */
+ ROM_LOAD( "4.ic86", 0x10000, 0x8000, CRC(8d4b423f) SHA1(149274c2ed1526ca1f419fdf8a24059ff138f7f2) ) /* Paged code */
+ ROM_LOAD( "5.ic87", 0x18000, 0x8000, CRC(2b5667fb) SHA1(5b689bca1e76d803b4cae22feaa7744fa528e93f) ) /* Paged code */
ROM_REGION( 0x10000, "audiocpu", 0 )
- ROM_LOAD( "14h_gs02.bin", 0x00000, 0x8000, CRC(cd7a2c38) SHA1(c76c471f694b76015370f0eacf5350e652f526ff) )
+ ROM_LOAD( "2.ic41", 0x00000, 0x8000, CRC(cd7a2c38) SHA1(c76c471f694b76015370f0eacf5350e652f526ff) )
ROM_REGION( 0x04000, "gfx1", 0 )
- ROM_LOAD( "11f_gs01.bin", 0x00000, 0x4000, CRC(b61ece9b) SHA1(eb3fc62644cc5b5a2b9cbe67c393d4a0e2a59ca9) ) /* Characters */
+ ROM_LOAD( "1.ic39", 0x00000, 0x4000, CRC(b61ece9b) SHA1(eb3fc62644cc5b5a2b9cbe67c393d4a0e2a59ca9) ) /* Characters */
ROM_REGION( 0x40000, "gfx2", 0 )
- ROM_LOAD( "06c_gs13.bin", 0x00000, 0x8000, CRC(f6769fc5) SHA1(d192ec176425327ca4b7e25fc8432fc47837ba29) ) /* 32x32 tiles planes 2-3 */
- ROM_LOAD( "05c_gs12.bin", 0x08000, 0x8000, CRC(d997b78c) SHA1(3b4a9b6f9e57ecfb4ab9734379bd0ee765fd6daa) )
- ROM_LOAD( "04c_gs11.bin", 0x10000, 0x8000, CRC(125ba58e) SHA1(cf6931653cebd051564bed8121ab8713a55095c5) )
- ROM_LOAD( "02c_gs10.bin", 0x18000, 0x8000, CRC(f469c13c) SHA1(54eda52d6fce58771c0adfe2c88292a41d5a9b99) )
- ROM_LOAD( "06a_gs09.bin", 0x20000, 0x8000, CRC(539f182d) SHA1(4190c0adbecc57b92f4d002e121acb77e8c5d8d8) ) /* 32x32 tiles planes 0-1 */
- ROM_LOAD( "05a_gs08.bin", 0x28000, 0x8000, CRC(e87e526d) SHA1(d10068addf30322424a85bbc6382cb762ae3fbe2) )
- ROM_LOAD( "04a_gs07.bin", 0x30000, 0x8000, CRC(4382c0d2) SHA1(8615e62bc57b40d082f6ca211d64f22185bed1fd) )
- ROM_LOAD( "02a_gs06.bin", 0x38000, 0x8000, CRC(4cafe7a6) SHA1(fe501f3a5e9ce9e82e9708f1cd297f4c94ef0f81) )
+ ROM_LOAD( "13.ic21", 0x00000, 0x8000, CRC(f6769fc5) SHA1(d192ec176425327ca4b7e25fc8432fc47837ba29) ) /* 32x32 tiles planes 2-3 */
+ ROM_LOAD( "12.ic20", 0x08000, 0x8000, CRC(d997b78c) SHA1(3b4a9b6f9e57ecfb4ab9734379bd0ee765fd6daa) )
+ ROM_LOAD( "11.ic19", 0x10000, 0x8000, CRC(125ba58e) SHA1(cf6931653cebd051564bed8121ab8713a55095c5) )
+ ROM_LOAD( "10.ic18", 0x18000, 0x8000, CRC(f469c13c) SHA1(54eda52d6fce58771c0adfe2c88292a41d5a9b99) )
+ ROM_LOAD( "9.ic04", 0x20000, 0x8000, CRC(539f182d) SHA1(4190c0adbecc57b92f4d002e121acb77e8c5d8d8) ) /* 32x32 tiles planes 0-1 */
+ ROM_LOAD( "8.ic03", 0x28000, 0x8000, CRC(e87e526d) SHA1(d10068addf30322424a85bbc6382cb762ae3fbe2) )
+ ROM_LOAD( "7.ic02", 0x30000, 0x8000, CRC(4382c0d2) SHA1(8615e62bc57b40d082f6ca211d64f22185bed1fd) )
+ ROM_LOAD( "6.ic01", 0x38000, 0x8000, CRC(4cafe7a6) SHA1(fe501f3a5e9ce9e82e9708f1cd297f4c94ef0f81) )
ROM_REGION( 0x40000, "gfx3", 0 )
- ROM_LOAD( "06n_gs22.bin", 0x00000, 0x8000, CRC(dc9c508c) SHA1(920505dd4c63b177918feb4e54cca8a7948ec9d9) ) /* Sprites planes 2-3 */
- ROM_LOAD( "04n_gs21.bin", 0x08000, 0x8000, CRC(68883749) SHA1(c7bf2bf49c53feddf8f30b4001dc2d59b52b1c28) ) /* Sprites planes 2-3 */
- ROM_LOAD( "03n_gs20.bin", 0x10000, 0x8000, CRC(0be932ed) SHA1(1c5af5884a23112dbc36579515d1cb497992da2f) ) /* Sprites planes 2-3 */
- ROM_LOAD( "01n_gs19.bin", 0x18000, 0x8000, CRC(63072f93) SHA1(cb3a2729782cf2855558d081fe92d28366228b8e) ) /* Sprites planes 2-3 */
- ROM_LOAD( "06l_gs18.bin", 0x20000, 0x8000, CRC(f69a3c7c) SHA1(e9eb9dfa7d53aa7b728150f91d05bfc3bf6f1e75) ) /* Sprites planes 0-1 */
- ROM_LOAD( "04l_gs17.bin", 0x28000, 0x8000, CRC(4e98562a) SHA1(0341b8a79be1d71a57d0d76ed890e15f9f92259e) ) /* Sprites planes 0-1 */
- ROM_LOAD( "03l_gs16.bin", 0x30000, 0x8000, CRC(0d99c3b3) SHA1(436c566b76f632242448671e3b6319f7d9f65322) ) /* Sprites planes 0-1 */
- ROM_LOAD( "01l_gs15.bin", 0x38000, 0x8000, CRC(7f14270e) SHA1(dd06c333c2ea097e25185a1423cd61e1b7afc42b) ) /* Sprites planes 0-1 */
+ ROM_LOAD( "22.ic134", 0x00000, 0x8000, CRC(dc9c508c) SHA1(920505dd4c63b177918feb4e54cca8a7948ec9d9) ) /* Sprites planes 2-3 */
+ ROM_LOAD( "21.ic133", 0x08000, 0x8000, CRC(68883749) SHA1(c7bf2bf49c53feddf8f30b4001dc2d59b52b1c28) ) /* Sprites planes 2-3 */
+ ROM_LOAD( "20.ic132", 0x10000, 0x8000, CRC(0be932ed) SHA1(1c5af5884a23112dbc36579515d1cb497992da2f) ) /* Sprites planes 2-3 */
+ ROM_LOAD( "19.ic131", 0x18000, 0x8000, CRC(63072f93) SHA1(cb3a2729782cf2855558d081fe92d28366228b8e) ) /* Sprites planes 2-3 */
+ ROM_LOAD( "18.ic115", 0x20000, 0x8000, CRC(f69a3c7c) SHA1(e9eb9dfa7d53aa7b728150f91d05bfc3bf6f1e75) ) /* Sprites planes 0-1 */
+ ROM_LOAD( "17.ic114", 0x28000, 0x8000, CRC(4e98562a) SHA1(0341b8a79be1d71a57d0d76ed890e15f9f92259e) ) /* Sprites planes 0-1 */
+ ROM_LOAD( "16.ic113", 0x30000, 0x8000, CRC(0d99c3b3) SHA1(436c566b76f632242448671e3b6319f7d9f65322) ) /* Sprites planes 0-1 */
+ ROM_LOAD( "15.ic112", 0x38000, 0x8000, CRC(7f14270e) SHA1(dd06c333c2ea097e25185a1423cd61e1b7afc42b) ) /* Sprites planes 0-1 */
ROM_REGION( 0x8000, "gfx4", 0 ) /* background tilemaps */
- ROM_LOAD( "11c_gs14.bin", 0x00000, 0x8000, CRC(0af4f7eb) SHA1(24a98fdeedeeaf1035b4af52d5a8dd5e47a5e62d) )
+ ROM_LOAD( "14.ic25", 0x00000, 0x8000, CRC(0af4f7eb) SHA1(24a98fdeedeeaf1035b4af52d5a8dd5e47a5e62d) )
+ /* The names of the proms starting with "g-" do not yet reflect their position in the pcb layout of this bootleg.
+ As the ICs are not socketed, but directly soldered to the pcb, it is harder to identify which is which.
+ But it would be good to figure this out at some point, for the sake of documenting this specific board layout. */
ROM_REGION( 0x0a00, "proms", 0 )
- ROM_LOAD( "03b_g-01.bin", 0x0000, 0x0100, CRC(02f55589) SHA1(8a3f98304aedf3aba1c08b615bf457752a480edc) ) /* red component */
- ROM_LOAD( "04b_g-02.bin", 0x0100, 0x0100, CRC(e1e36dd9) SHA1(5bd88a35898a2d973045bdde8311aac3a12826de) ) /* green component */
- ROM_LOAD( "05b_g-03.bin", 0x0200, 0x0100, CRC(989399c0) SHA1(e408e391f49ed0c7b9e16479fea44b809440fefc) ) /* blue component */
- ROM_LOAD( "09d_g-04.bin", 0x0300, 0x0100, CRC(906612b5) SHA1(7b727a6200c088538180758320ede84aa7e5b96d) ) /* char lookup table */
- ROM_LOAD( "14a_g-06.bin", 0x0400, 0x0100, CRC(4a9da18b) SHA1(fed3b81b56aab2ed0a21ed1fcebe3f1ae095a13b) ) /* tile lookup table */
- ROM_LOAD( "15a_g-07.bin", 0x0500, 0x0100, CRC(cb9394fc) SHA1(8ad0fde6a8ef8326d2da4b6dbf3b51f5f6c668c8) ) /* tile palette bank */
- ROM_LOAD( "09f_g-09.bin", 0x0600, 0x0100, CRC(3cee181e) SHA1(3f95bdb12391cb9b3673191bda8d09c84b36b4d3) ) /* sprite lookup table */
- ROM_LOAD( "08f_g-08.bin", 0x0700, 0x0100, CRC(ef91cdd2) SHA1(90b9191c9f10a153d64055a4238eb6e15b8c12bc) ) /* sprite palette bank */
- ROM_LOAD( "02j_g-10.bin", 0x0800, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */
- ROM_LOAD( "01f_g-05.bin", 0x0900, 0x0100, CRC(25c90c2a) SHA1(42893572bab757ec01e181fc418cb911638d37e0) ) /* priority? (not used) */
+ ROM_LOAD( "prom.ic3", 0x0000, 0x0100, CRC(02f55589) SHA1(8a3f98304aedf3aba1c08b615bf457752a480edc) ) /* red component */
+ ROM_LOAD( "prom.ic4", 0x0100, 0x0100, CRC(e1e36dd9) SHA1(5bd88a35898a2d973045bdde8311aac3a12826de) ) /* green component */
+ ROM_LOAD( "prom.ic5", 0x0200, 0x0100, CRC(989399c0) SHA1(e408e391f49ed0c7b9e16479fea44b809440fefc) ) /* blue component */
+ ROM_LOAD( "g-04.09d", 0x0300, 0x0100, CRC(906612b5) SHA1(7b727a6200c088538180758320ede84aa7e5b96d) ) /* char lookup table */
+ ROM_LOAD( "g-06.14a", 0x0400, 0x0100, CRC(4a9da18b) SHA1(fed3b81b56aab2ed0a21ed1fcebe3f1ae095a13b) ) /* tile lookup table */
+ ROM_LOAD( "g-07.15a", 0x0500, 0x0100, CRC(cb9394fc) SHA1(8ad0fde6a8ef8326d2da4b6dbf3b51f5f6c668c8) ) /* tile palette bank */
+ ROM_LOAD( "g-09.09f", 0x0600, 0x0100, CRC(3cee181e) SHA1(3f95bdb12391cb9b3673191bda8d09c84b36b4d3) ) /* sprite lookup table */
+ ROM_LOAD( "g-08.08f", 0x0700, 0x0100, CRC(ef91cdd2) SHA1(90b9191c9f10a153d64055a4238eb6e15b8c12bc) ) /* sprite palette bank */
+ ROM_LOAD( "g-10.02j", 0x0800, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */
+ ROM_LOAD( "g-05.01f", 0x0900, 0x0100, CRC(25c90c2a) SHA1(42893572bab757ec01e181fc418cb911638d37e0) ) /* priority? (not used) */
ROM_END
ROM_START( gunsmokej )
ROM_REGION( 0x20000, "maincpu", 0 )
- ROM_LOAD( "gs03_9n.rom", 0x00000, 0x8000, CRC(b56b5df6) SHA1(0295a3ef491b6b8ee9c198fd08dddc29d88bbef6) ) /* Code 0000-7fff */
- ROM_LOAD( "10n_gs04.bin", 0x10000, 0x8000, CRC(8d4b423f) SHA1(149274c2ed1526ca1f419fdf8a24059ff138f7f2) ) /* Paged code */
- ROM_LOAD( "12n_gs05.bin", 0x18000, 0x8000, CRC(2b5667fb) SHA1(5b689bca1e76d803b4cae22feaa7744fa528e93f) ) /* Paged code */
+ ROM_LOAD( "gsj_03.09n", 0x00000, 0x8000, CRC(b56b5df6) SHA1(0295a3ef491b6b8ee9c198fd08dddc29d88bbef6) ) /* Code 0000-7fff */
+ ROM_LOAD( "gs04.10n", 0x10000, 0x8000, CRC(8d4b423f) SHA1(149274c2ed1526ca1f419fdf8a24059ff138f7f2) ) /* Paged code */
+ ROM_LOAD( "gs05.12n", 0x18000, 0x8000, CRC(2b5667fb) SHA1(5b689bca1e76d803b4cae22feaa7744fa528e93f) ) /* Paged code */
ROM_REGION( 0x10000, "audiocpu", 0 )
- ROM_LOAD( "14h_gs02.bin", 0x00000, 0x8000, CRC(cd7a2c38) SHA1(c76c471f694b76015370f0eacf5350e652f526ff) )
+ ROM_LOAD( "gs02.14h", 0x00000, 0x8000, CRC(cd7a2c38) SHA1(c76c471f694b76015370f0eacf5350e652f526ff) )
ROM_REGION( 0x04000, "gfx1", 0 )
- ROM_LOAD( "11f_gs01.bin", 0x00000, 0x4000, CRC(b61ece9b) SHA1(eb3fc62644cc5b5a2b9cbe67c393d4a0e2a59ca9) ) /* Characters */
+ ROM_LOAD( "gs01.11f", 0x00000, 0x4000, CRC(b61ece9b) SHA1(eb3fc62644cc5b5a2b9cbe67c393d4a0e2a59ca9) ) /* Characters */
ROM_REGION( 0x40000, "gfx2", 0 )
- ROM_LOAD( "06c_gs13.bin", 0x00000, 0x8000, CRC(f6769fc5) SHA1(d192ec176425327ca4b7e25fc8432fc47837ba29) ) /* 32x32 tiles planes 2-3 */
- ROM_LOAD( "05c_gs12.bin", 0x08000, 0x8000, CRC(d997b78c) SHA1(3b4a9b6f9e57ecfb4ab9734379bd0ee765fd6daa) )
- ROM_LOAD( "04c_gs11.bin", 0x10000, 0x8000, CRC(125ba58e) SHA1(cf6931653cebd051564bed8121ab8713a55095c5) )
- ROM_LOAD( "02c_gs10.bin", 0x18000, 0x8000, CRC(f469c13c) SHA1(54eda52d6fce58771c0adfe2c88292a41d5a9b99) )
- ROM_LOAD( "06a_gs09.bin", 0x20000, 0x8000, CRC(539f182d) SHA1(4190c0adbecc57b92f4d002e121acb77e8c5d8d8) ) /* 32x32 tiles planes 0-1 */
- ROM_LOAD( "05a_gs08.bin", 0x28000, 0x8000, CRC(e87e526d) SHA1(d10068addf30322424a85bbc6382cb762ae3fbe2) )
- ROM_LOAD( "04a_gs07.bin", 0x30000, 0x8000, CRC(4382c0d2) SHA1(8615e62bc57b40d082f6ca211d64f22185bed1fd) )
- ROM_LOAD( "02a_gs06.bin", 0x38000, 0x8000, CRC(4cafe7a6) SHA1(fe501f3a5e9ce9e82e9708f1cd297f4c94ef0f81) )
+ ROM_LOAD( "gs13.06c", 0x00000, 0x8000, CRC(f6769fc5) SHA1(d192ec176425327ca4b7e25fc8432fc47837ba29) ) /* 32x32 tiles planes 2-3 */
+ ROM_LOAD( "gs12.05c", 0x08000, 0x8000, CRC(d997b78c) SHA1(3b4a9b6f9e57ecfb4ab9734379bd0ee765fd6daa) )
+ ROM_LOAD( "gs11.04c", 0x10000, 0x8000, CRC(125ba58e) SHA1(cf6931653cebd051564bed8121ab8713a55095c5) )
+ ROM_LOAD( "gs10.02c", 0x18000, 0x8000, CRC(f469c13c) SHA1(54eda52d6fce58771c0adfe2c88292a41d5a9b99) )
+ ROM_LOAD( "gs09.06a", 0x20000, 0x8000, CRC(539f182d) SHA1(4190c0adbecc57b92f4d002e121acb77e8c5d8d8) ) /* 32x32 tiles planes 0-1 */
+ ROM_LOAD( "gs08.05a", 0x28000, 0x8000, CRC(e87e526d) SHA1(d10068addf30322424a85bbc6382cb762ae3fbe2) )
+ ROM_LOAD( "gs07.04a", 0x30000, 0x8000, CRC(4382c0d2) SHA1(8615e62bc57b40d082f6ca211d64f22185bed1fd) )
+ ROM_LOAD( "gs06.02a", 0x38000, 0x8000, CRC(4cafe7a6) SHA1(fe501f3a5e9ce9e82e9708f1cd297f4c94ef0f81) )
ROM_REGION( 0x40000, "gfx3", 0 )
- ROM_LOAD( "06n_gs22.bin", 0x00000, 0x8000, CRC(dc9c508c) SHA1(920505dd4c63b177918feb4e54cca8a7948ec9d9) ) /* Sprites planes 2-3 */
- ROM_LOAD( "04n_gs21.bin", 0x08000, 0x8000, CRC(68883749) SHA1(c7bf2bf49c53feddf8f30b4001dc2d59b52b1c28) ) /* Sprites planes 2-3 */
- ROM_LOAD( "03n_gs20.bin", 0x10000, 0x8000, CRC(0be932ed) SHA1(1c5af5884a23112dbc36579515d1cb497992da2f) ) /* Sprites planes 2-3 */
- ROM_LOAD( "01n_gs19.bin", 0x18000, 0x8000, CRC(63072f93) SHA1(cb3a2729782cf2855558d081fe92d28366228b8e) ) /* Sprites planes 2-3 */
- ROM_LOAD( "06l_gs18.bin", 0x20000, 0x8000, CRC(f69a3c7c) SHA1(e9eb9dfa7d53aa7b728150f91d05bfc3bf6f1e75) ) /* Sprites planes 0-1 */
- ROM_LOAD( "04l_gs17.bin", 0x28000, 0x8000, CRC(4e98562a) SHA1(0341b8a79be1d71a57d0d76ed890e15f9f92259e) ) /* Sprites planes 0-1 */
- ROM_LOAD( "03l_gs16.bin", 0x30000, 0x8000, CRC(0d99c3b3) SHA1(436c566b76f632242448671e3b6319f7d9f65322) ) /* Sprites planes 0-1 */
- ROM_LOAD( "01l_gs15.bin", 0x38000, 0x8000, CRC(7f14270e) SHA1(dd06c333c2ea097e25185a1423cd61e1b7afc42b) ) /* Sprites planes 0-1 */
+ ROM_LOAD( "gs22.06n", 0x00000, 0x8000, CRC(dc9c508c) SHA1(920505dd4c63b177918feb4e54cca8a7948ec9d9) ) /* Sprites planes 2-3 */
+ ROM_LOAD( "gs21.04n", 0x08000, 0x8000, CRC(68883749) SHA1(c7bf2bf49c53feddf8f30b4001dc2d59b52b1c28) ) /* Sprites planes 2-3 */
+ ROM_LOAD( "gs20.03n", 0x10000, 0x8000, CRC(0be932ed) SHA1(1c5af5884a23112dbc36579515d1cb497992da2f) ) /* Sprites planes 2-3 */
+ ROM_LOAD( "gs19.01n", 0x18000, 0x8000, CRC(63072f93) SHA1(cb3a2729782cf2855558d081fe92d28366228b8e) ) /* Sprites planes 2-3 */
+ ROM_LOAD( "gs18.06l", 0x20000, 0x8000, CRC(f69a3c7c) SHA1(e9eb9dfa7d53aa7b728150f91d05bfc3bf6f1e75) ) /* Sprites planes 0-1 */
+ ROM_LOAD( "gs17.04l", 0x28000, 0x8000, CRC(4e98562a) SHA1(0341b8a79be1d71a57d0d76ed890e15f9f92259e) ) /* Sprites planes 0-1 */
+ ROM_LOAD( "gs16.03l", 0x30000, 0x8000, CRC(0d99c3b3) SHA1(436c566b76f632242448671e3b6319f7d9f65322) ) /* Sprites planes 0-1 */
+ ROM_LOAD( "gs15.01l", 0x38000, 0x8000, CRC(7f14270e) SHA1(dd06c333c2ea097e25185a1423cd61e1b7afc42b) ) /* Sprites planes 0-1 */
ROM_REGION( 0x8000, "gfx4", 0 ) /* background tilemaps */
- ROM_LOAD( "11c_gs14.bin", 0x00000, 0x8000, CRC(0af4f7eb) SHA1(24a98fdeedeeaf1035b4af52d5a8dd5e47a5e62d) )
+ ROM_LOAD( "gs14.11c", 0x00000, 0x8000, CRC(0af4f7eb) SHA1(24a98fdeedeeaf1035b4af52d5a8dd5e47a5e62d) )
ROM_REGION( 0x0a00, "proms", 0 )
- ROM_LOAD( "03b_g-01.bin", 0x0000, 0x0100, CRC(02f55589) SHA1(8a3f98304aedf3aba1c08b615bf457752a480edc) ) /* red component */
- ROM_LOAD( "04b_g-02.bin", 0x0100, 0x0100, CRC(e1e36dd9) SHA1(5bd88a35898a2d973045bdde8311aac3a12826de) ) /* green component */
- ROM_LOAD( "05b_g-03.bin", 0x0200, 0x0100, CRC(989399c0) SHA1(e408e391f49ed0c7b9e16479fea44b809440fefc) ) /* blue component */
- ROM_LOAD( "09d_g-04.bin", 0x0300, 0x0100, CRC(906612b5) SHA1(7b727a6200c088538180758320ede84aa7e5b96d) ) /* char lookup table */
- ROM_LOAD( "14a_g-06.bin", 0x0400, 0x0100, CRC(4a9da18b) SHA1(fed3b81b56aab2ed0a21ed1fcebe3f1ae095a13b) ) /* tile lookup table */
- ROM_LOAD( "15a_g-07.bin", 0x0500, 0x0100, CRC(cb9394fc) SHA1(8ad0fde6a8ef8326d2da4b6dbf3b51f5f6c668c8) ) /* tile palette bank */
- ROM_LOAD( "09f_g-09.bin", 0x0600, 0x0100, CRC(3cee181e) SHA1(3f95bdb12391cb9b3673191bda8d09c84b36b4d3) ) /* sprite lookup table */
- ROM_LOAD( "08f_g-08.bin", 0x0700, 0x0100, CRC(ef91cdd2) SHA1(90b9191c9f10a153d64055a4238eb6e15b8c12bc) ) /* sprite palette bank */
- ROM_LOAD( "02j_g-10.bin", 0x0800, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */
- ROM_LOAD( "01f_g-05.bin", 0x0900, 0x0100, CRC(25c90c2a) SHA1(42893572bab757ec01e181fc418cb911638d37e0) ) /* priority? (not used) */
+ ROM_LOAD( "g-01.03b", 0x0000, 0x0100, CRC(02f55589) SHA1(8a3f98304aedf3aba1c08b615bf457752a480edc) ) /* red component */
+ ROM_LOAD( "g-02.04b", 0x0100, 0x0100, CRC(e1e36dd9) SHA1(5bd88a35898a2d973045bdde8311aac3a12826de) ) /* green component */
+ ROM_LOAD( "g-03.05b", 0x0200, 0x0100, CRC(989399c0) SHA1(e408e391f49ed0c7b9e16479fea44b809440fefc) ) /* blue component */
+ ROM_LOAD( "g-04.09d", 0x0300, 0x0100, CRC(906612b5) SHA1(7b727a6200c088538180758320ede84aa7e5b96d) ) /* char lookup table */
+ ROM_LOAD( "g-06.14a", 0x0400, 0x0100, CRC(4a9da18b) SHA1(fed3b81b56aab2ed0a21ed1fcebe3f1ae095a13b) ) /* tile lookup table */
+ ROM_LOAD( "g-07.15a", 0x0500, 0x0100, CRC(cb9394fc) SHA1(8ad0fde6a8ef8326d2da4b6dbf3b51f5f6c668c8) ) /* tile palette bank */
+ ROM_LOAD( "g-09.09f", 0x0600, 0x0100, CRC(3cee181e) SHA1(3f95bdb12391cb9b3673191bda8d09c84b36b4d3) ) /* sprite lookup table */
+ ROM_LOAD( "g-08.08f", 0x0700, 0x0100, CRC(ef91cdd2) SHA1(90b9191c9f10a153d64055a4238eb6e15b8c12bc) ) /* sprite palette bank */
+ ROM_LOAD( "g-10.02j", 0x0800, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */
+ ROM_LOAD( "g-05.01f", 0x0900, 0x0100, CRC(25c90c2a) SHA1(42893572bab757ec01e181fc418cb911638d37e0) ) /* priority? (not used) */
ROM_END
ROM_START( gunsmokeu )
ROM_REGION( 0x20000, "maincpu", 0 )
- ROM_LOAD( "9n_gs03.bin", 0x00000, 0x8000, CRC(592f211b) SHA1(8de44b3cafa3d2ce9aba515cf3ec4bac0bcdeb5b) ) /* Code 0000-7fff */
- ROM_LOAD( "10n_gs04.bin", 0x10000, 0x8000, CRC(8d4b423f) SHA1(149274c2ed1526ca1f419fdf8a24059ff138f7f2) ) /* Paged code */
- ROM_LOAD( "12n_gs05.bin", 0x18000, 0x8000, CRC(2b5667fb) SHA1(5b689bca1e76d803b4cae22feaa7744fa528e93f) ) /* Paged code */
+ ROM_LOAD( "gsa_03.9n", 0x00000, 0x8000, CRC(51dc3f76) SHA1(2a188fee73c3662b665b56a825eb908b7b42dcd0) ) /* Code 0000-7fff */
+ ROM_LOAD( "gs04.10n", 0x10000, 0x8000, CRC(5ecf31b8) SHA1(34ec9727330821a45b497c78c970a1a4f14ff4ee) ) /* Paged code */
+ ROM_LOAD( "gs05.12n", 0x18000, 0x8000, CRC(1c9aca13) SHA1(eb92c373d2241aea4c59248e1b82717733105ac0) ) /* Paged code */
ROM_REGION( 0x10000, "audiocpu", 0 )
- ROM_LOAD( "14h_gs02.bin", 0x00000, 0x8000, CRC(cd7a2c38) SHA1(c76c471f694b76015370f0eacf5350e652f526ff) )
+ ROM_LOAD( "gs02.14h", 0x00000, 0x8000, CRC(cd7a2c38) SHA1(c76c471f694b76015370f0eacf5350e652f526ff) )
ROM_REGION( 0x04000, "gfx1", 0 )
- ROM_LOAD( "11f_gs01.bin", 0x00000, 0x4000, CRC(b61ece9b) SHA1(eb3fc62644cc5b5a2b9cbe67c393d4a0e2a59ca9) ) /* Characters */
+ ROM_LOAD( "gs01.11f", 0x00000, 0x4000, CRC(b61ece9b) SHA1(eb3fc62644cc5b5a2b9cbe67c393d4a0e2a59ca9) ) /* Characters */
ROM_REGION( 0x40000, "gfx2", 0 )
- ROM_LOAD( "06c_gs13.bin", 0x00000, 0x8000, CRC(f6769fc5) SHA1(d192ec176425327ca4b7e25fc8432fc47837ba29) ) /* 32x32 tiles planes 2-3 */
- ROM_LOAD( "05c_gs12.bin", 0x08000, 0x8000, CRC(d997b78c) SHA1(3b4a9b6f9e57ecfb4ab9734379bd0ee765fd6daa) )
- ROM_LOAD( "04c_gs11.bin", 0x10000, 0x8000, CRC(125ba58e) SHA1(cf6931653cebd051564bed8121ab8713a55095c5) )
- ROM_LOAD( "02c_gs10.bin", 0x18000, 0x8000, CRC(f469c13c) SHA1(54eda52d6fce58771c0adfe2c88292a41d5a9b99) )
- ROM_LOAD( "06a_gs09.bin", 0x20000, 0x8000, CRC(539f182d) SHA1(4190c0adbecc57b92f4d002e121acb77e8c5d8d8) ) /* 32x32 tiles planes 0-1 */
- ROM_LOAD( "05a_gs08.bin", 0x28000, 0x8000, CRC(e87e526d) SHA1(d10068addf30322424a85bbc6382cb762ae3fbe2) )
- ROM_LOAD( "04a_gs07.bin", 0x30000, 0x8000, CRC(4382c0d2) SHA1(8615e62bc57b40d082f6ca211d64f22185bed1fd) )
- ROM_LOAD( "02a_gs06.bin", 0x38000, 0x8000, CRC(4cafe7a6) SHA1(fe501f3a5e9ce9e82e9708f1cd297f4c94ef0f81) )
+ ROM_LOAD( "gs13.06c", 0x00000, 0x8000, CRC(f6769fc5) SHA1(d192ec176425327ca4b7e25fc8432fc47837ba29) ) /* 32x32 tiles planes 2-3 */
+ ROM_LOAD( "gs12.05c", 0x08000, 0x8000, CRC(d997b78c) SHA1(3b4a9b6f9e57ecfb4ab9734379bd0ee765fd6daa) )
+ ROM_LOAD( "gs11.04c", 0x10000, 0x8000, CRC(125ba58e) SHA1(cf6931653cebd051564bed8121ab8713a55095c5) )
+ ROM_LOAD( "gs10.02c", 0x18000, 0x8000, CRC(f469c13c) SHA1(54eda52d6fce58771c0adfe2c88292a41d5a9b99) )
+ ROM_LOAD( "gs09.06a", 0x20000, 0x8000, CRC(539f182d) SHA1(4190c0adbecc57b92f4d002e121acb77e8c5d8d8) ) /* 32x32 tiles planes 0-1 */
+ ROM_LOAD( "gs08.05a", 0x28000, 0x8000, CRC(e87e526d) SHA1(d10068addf30322424a85bbc6382cb762ae3fbe2) )
+ ROM_LOAD( "gs07.04a", 0x30000, 0x8000, CRC(4382c0d2) SHA1(8615e62bc57b40d082f6ca211d64f22185bed1fd) )
+ ROM_LOAD( "gs06.02a", 0x38000, 0x8000, CRC(4cafe7a6) SHA1(fe501f3a5e9ce9e82e9708f1cd297f4c94ef0f81) )
ROM_REGION( 0x40000, "gfx3", 0 )
- ROM_LOAD( "06n_gs22.bin", 0x00000, 0x8000, CRC(dc9c508c) SHA1(920505dd4c63b177918feb4e54cca8a7948ec9d9) ) /* Sprites planes 2-3 */
- ROM_LOAD( "04n_gs21.bin", 0x08000, 0x8000, CRC(68883749) SHA1(c7bf2bf49c53feddf8f30b4001dc2d59b52b1c28) ) /* Sprites planes 2-3 */
- ROM_LOAD( "03n_gs20.bin", 0x10000, 0x8000, CRC(0be932ed) SHA1(1c5af5884a23112dbc36579515d1cb497992da2f) ) /* Sprites planes 2-3 */
- ROM_LOAD( "01n_gs19.bin", 0x18000, 0x8000, CRC(63072f93) SHA1(cb3a2729782cf2855558d081fe92d28366228b8e) ) /* Sprites planes 2-3 */
- ROM_LOAD( "06l_gs18.bin", 0x20000, 0x8000, CRC(f69a3c7c) SHA1(e9eb9dfa7d53aa7b728150f91d05bfc3bf6f1e75) ) /* Sprites planes 0-1 */
- ROM_LOAD( "04l_gs17.bin", 0x28000, 0x8000, CRC(4e98562a) SHA1(0341b8a79be1d71a57d0d76ed890e15f9f92259e) ) /* Sprites planes 0-1 */
- ROM_LOAD( "03l_gs16.bin", 0x30000, 0x8000, CRC(0d99c3b3) SHA1(436c566b76f632242448671e3b6319f7d9f65322) ) /* Sprites planes 0-1 */
- ROM_LOAD( "01l_gs15.bin", 0x38000, 0x8000, CRC(7f14270e) SHA1(dd06c333c2ea097e25185a1423cd61e1b7afc42b) ) /* Sprites planes 0-1 */
+ ROM_LOAD( "gs22.06n", 0x00000, 0x8000, CRC(dc9c508c) SHA1(920505dd4c63b177918feb4e54cca8a7948ec9d9) ) /* Sprites planes 2-3 */
+ ROM_LOAD( "gs21.04n", 0x08000, 0x8000, CRC(68883749) SHA1(c7bf2bf49c53feddf8f30b4001dc2d59b52b1c28) ) /* Sprites planes 2-3 */
+ ROM_LOAD( "gs20.03n", 0x10000, 0x8000, CRC(0be932ed) SHA1(1c5af5884a23112dbc36579515d1cb497992da2f) ) /* Sprites planes 2-3 */
+ ROM_LOAD( "gs19.01n", 0x18000, 0x8000, CRC(63072f93) SHA1(cb3a2729782cf2855558d081fe92d28366228b8e) ) /* Sprites planes 2-3 */
+ ROM_LOAD( "gs18.06l", 0x20000, 0x8000, CRC(f69a3c7c) SHA1(e9eb9dfa7d53aa7b728150f91d05bfc3bf6f1e75) ) /* Sprites planes 0-1 */
+ ROM_LOAD( "gs17.04l", 0x28000, 0x8000, CRC(4e98562a) SHA1(0341b8a79be1d71a57d0d76ed890e15f9f92259e) ) /* Sprites planes 0-1 */
+ ROM_LOAD( "gs16.03l", 0x30000, 0x8000, CRC(0d99c3b3) SHA1(436c566b76f632242448671e3b6319f7d9f65322) ) /* Sprites planes 0-1 */
+ ROM_LOAD( "gs15.01l", 0x38000, 0x8000, CRC(7f14270e) SHA1(dd06c333c2ea097e25185a1423cd61e1b7afc42b) ) /* Sprites planes 0-1 */
ROM_REGION( 0x8000, "gfx4", 0 ) /* background tilemaps */
- ROM_LOAD( "11c_gs14.bin", 0x00000, 0x8000, CRC(0af4f7eb) SHA1(24a98fdeedeeaf1035b4af52d5a8dd5e47a5e62d) )
+ ROM_LOAD( "gs14.11c", 0x00000, 0x8000, CRC(0af4f7eb) SHA1(24a98fdeedeeaf1035b4af52d5a8dd5e47a5e62d) )
ROM_REGION( 0x0a00, "proms", 0 )
- ROM_LOAD( "03b_g-01.bin", 0x0000, 0x0100, CRC(02f55589) SHA1(8a3f98304aedf3aba1c08b615bf457752a480edc) ) /* red component */
- ROM_LOAD( "04b_g-02.bin", 0x0100, 0x0100, CRC(e1e36dd9) SHA1(5bd88a35898a2d973045bdde8311aac3a12826de) ) /* green component */
- ROM_LOAD( "05b_g-03.bin", 0x0200, 0x0100, CRC(989399c0) SHA1(e408e391f49ed0c7b9e16479fea44b809440fefc) ) /* blue component */
- ROM_LOAD( "09d_g-04.bin", 0x0300, 0x0100, CRC(906612b5) SHA1(7b727a6200c088538180758320ede84aa7e5b96d) ) /* char lookup table */
- ROM_LOAD( "14a_g-06.bin", 0x0400, 0x0100, CRC(4a9da18b) SHA1(fed3b81b56aab2ed0a21ed1fcebe3f1ae095a13b) ) /* tile lookup table */
- ROM_LOAD( "15a_g-07.bin", 0x0500, 0x0100, CRC(cb9394fc) SHA1(8ad0fde6a8ef8326d2da4b6dbf3b51f5f6c668c8) ) /* tile palette bank */
- ROM_LOAD( "09f_g-09.bin", 0x0600, 0x0100, CRC(3cee181e) SHA1(3f95bdb12391cb9b3673191bda8d09c84b36b4d3) ) /* sprite lookup table */
- ROM_LOAD( "08f_g-08.bin", 0x0700, 0x0100, CRC(ef91cdd2) SHA1(90b9191c9f10a153d64055a4238eb6e15b8c12bc) ) /* sprite palette bank */
- ROM_LOAD( "02j_g-10.bin", 0x0800, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */
- ROM_LOAD( "01f_g-05.bin", 0x0900, 0x0100, CRC(25c90c2a) SHA1(42893572bab757ec01e181fc418cb911638d37e0) ) /* priority? (not used) */
+ ROM_LOAD( "g-01.03b", 0x0000, 0x0100, CRC(02f55589) SHA1(8a3f98304aedf3aba1c08b615bf457752a480edc) ) /* red component */
+ ROM_LOAD( "g-02.04b", 0x0100, 0x0100, CRC(e1e36dd9) SHA1(5bd88a35898a2d973045bdde8311aac3a12826de) ) /* green component */
+ ROM_LOAD( "g-03.05b", 0x0200, 0x0100, CRC(989399c0) SHA1(e408e391f49ed0c7b9e16479fea44b809440fefc) ) /* blue component */
+ ROM_LOAD( "g-04.09d", 0x0300, 0x0100, CRC(906612b5) SHA1(7b727a6200c088538180758320ede84aa7e5b96d) ) /* char lookup table */
+ ROM_LOAD( "g-06.14a", 0x0400, 0x0100, CRC(4a9da18b) SHA1(fed3b81b56aab2ed0a21ed1fcebe3f1ae095a13b) ) /* tile lookup table */
+ ROM_LOAD( "g-07.15a", 0x0500, 0x0100, CRC(cb9394fc) SHA1(8ad0fde6a8ef8326d2da4b6dbf3b51f5f6c668c8) ) /* tile palette bank */
+ ROM_LOAD( "g-09.09f", 0x0600, 0x0100, CRC(3cee181e) SHA1(3f95bdb12391cb9b3673191bda8d09c84b36b4d3) ) /* sprite lookup table */
+ ROM_LOAD( "g-08.08f", 0x0700, 0x0100, CRC(ef91cdd2) SHA1(90b9191c9f10a153d64055a4238eb6e15b8c12bc) ) /* sprite palette bank */
+ ROM_LOAD( "g-10.02j", 0x0800, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */
+ ROM_LOAD( "g-05.01f", 0x0900, 0x0100, CRC(25c90c2a) SHA1(42893572bab757ec01e181fc418cb911638d37e0) ) /* priority? (not used) */
ROM_END
+
+
+
ROM_START( gunsmokeua )
+ ROM_REGION( 0x20000, "maincpu", 0 ) // has a small extra piece of code at 0x2f00 and a jump to it at 0x297b, otherwise the same as gunsmokeub including the datecode, chip had an 'A' stamped on it, bugfix?
+ ROM_LOAD( "gsr_03a.9n", 0x00000, 0x8000, CRC(2f6e6ad7) SHA1(e9e4a367c240a35a1ba2eeaec9458996f7926f16) ) /* Code 0000-7fff */
+ ROM_LOAD( "gs04.10n", 0x10000, 0x8000, CRC(8d4b423f) SHA1(149274c2ed1526ca1f419fdf8a24059ff138f7f2) ) /* Paged code */
+ ROM_LOAD( "gs05.12n", 0x18000, 0x8000, CRC(2b5667fb) SHA1(5b689bca1e76d803b4cae22feaa7744fa528e93f) ) /* Paged code */
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "gs02.14h", 0x00000, 0x8000, CRC(cd7a2c38) SHA1(c76c471f694b76015370f0eacf5350e652f526ff) )
+
+ ROM_REGION( 0x04000, "gfx1", 0 )
+ ROM_LOAD( "gs01.11f", 0x00000, 0x4000, CRC(b61ece9b) SHA1(eb3fc62644cc5b5a2b9cbe67c393d4a0e2a59ca9) ) /* Characters */
+
+ ROM_REGION( 0x40000, "gfx2", 0 )
+ ROM_LOAD( "gs13.06c", 0x00000, 0x8000, CRC(f6769fc5) SHA1(d192ec176425327ca4b7e25fc8432fc47837ba29) ) /* 32x32 tiles planes 2-3 */
+ ROM_LOAD( "gs12.05c", 0x08000, 0x8000, CRC(d997b78c) SHA1(3b4a9b6f9e57ecfb4ab9734379bd0ee765fd6daa) )
+ ROM_LOAD( "gs11.04c", 0x10000, 0x8000, CRC(125ba58e) SHA1(cf6931653cebd051564bed8121ab8713a55095c5) )
+ ROM_LOAD( "gs10.02c", 0x18000, 0x8000, CRC(f469c13c) SHA1(54eda52d6fce58771c0adfe2c88292a41d5a9b99) )
+ ROM_LOAD( "gs09.06a", 0x20000, 0x8000, CRC(539f182d) SHA1(4190c0adbecc57b92f4d002e121acb77e8c5d8d8) ) /* 32x32 tiles planes 0-1 */
+ ROM_LOAD( "gs08.05a", 0x28000, 0x8000, CRC(e87e526d) SHA1(d10068addf30322424a85bbc6382cb762ae3fbe2) )
+ ROM_LOAD( "gs07.04a", 0x30000, 0x8000, CRC(4382c0d2) SHA1(8615e62bc57b40d082f6ca211d64f22185bed1fd) )
+ ROM_LOAD( "gs06.02a", 0x38000, 0x8000, CRC(4cafe7a6) SHA1(fe501f3a5e9ce9e82e9708f1cd297f4c94ef0f81) )
+
+ ROM_REGION( 0x40000, "gfx3", 0 )
+ ROM_LOAD( "gs22.06n", 0x00000, 0x8000, CRC(dc9c508c) SHA1(920505dd4c63b177918feb4e54cca8a7948ec9d9) ) /* Sprites planes 2-3 */
+ ROM_LOAD( "gs21.04n", 0x08000, 0x8000, CRC(68883749) SHA1(c7bf2bf49c53feddf8f30b4001dc2d59b52b1c28) ) /* Sprites planes 2-3 */
+ ROM_LOAD( "gs20.03n", 0x10000, 0x8000, CRC(0be932ed) SHA1(1c5af5884a23112dbc36579515d1cb497992da2f) ) /* Sprites planes 2-3 */
+ ROM_LOAD( "gs19.01n", 0x18000, 0x8000, CRC(63072f93) SHA1(cb3a2729782cf2855558d081fe92d28366228b8e) ) /* Sprites planes 2-3 */
+ ROM_LOAD( "gs18.06l", 0x20000, 0x8000, CRC(f69a3c7c) SHA1(e9eb9dfa7d53aa7b728150f91d05bfc3bf6f1e75) ) /* Sprites planes 0-1 */
+ ROM_LOAD( "gs17.04l", 0x28000, 0x8000, CRC(4e98562a) SHA1(0341b8a79be1d71a57d0d76ed890e15f9f92259e) ) /* Sprites planes 0-1 */
+ ROM_LOAD( "gs16.03l", 0x30000, 0x8000, CRC(0d99c3b3) SHA1(436c566b76f632242448671e3b6319f7d9f65322) ) /* Sprites planes 0-1 */
+ ROM_LOAD( "gs15.01l", 0x38000, 0x8000, CRC(7f14270e) SHA1(dd06c333c2ea097e25185a1423cd61e1b7afc42b) ) /* Sprites planes 0-1 */
+
+ ROM_REGION( 0x8000, "gfx4", 0 ) /* background tilemaps */
+ ROM_LOAD( "gs14.11c", 0x00000, 0x8000, CRC(0af4f7eb) SHA1(24a98fdeedeeaf1035b4af52d5a8dd5e47a5e62d) )
+
+ ROM_REGION( 0x0a00, "proms", 0 )
+ ROM_LOAD( "g-01.03b", 0x0000, 0x0100, CRC(02f55589) SHA1(8a3f98304aedf3aba1c08b615bf457752a480edc) ) /* red component */
+ ROM_LOAD( "g-02.04b", 0x0100, 0x0100, CRC(e1e36dd9) SHA1(5bd88a35898a2d973045bdde8311aac3a12826de) ) /* green component */
+ ROM_LOAD( "g-03.05b", 0x0200, 0x0100, CRC(989399c0) SHA1(e408e391f49ed0c7b9e16479fea44b809440fefc) ) /* blue component */
+ ROM_LOAD( "g-04.09d", 0x0300, 0x0100, CRC(906612b5) SHA1(7b727a6200c088538180758320ede84aa7e5b96d) ) /* char lookup table */
+ ROM_LOAD( "g-06.14a", 0x0400, 0x0100, CRC(4a9da18b) SHA1(fed3b81b56aab2ed0a21ed1fcebe3f1ae095a13b) ) /* tile lookup table */
+ ROM_LOAD( "g-07.15a", 0x0500, 0x0100, CRC(cb9394fc) SHA1(8ad0fde6a8ef8326d2da4b6dbf3b51f5f6c668c8) ) /* tile palette bank */
+ ROM_LOAD( "g-09.09f", 0x0600, 0x0100, CRC(3cee181e) SHA1(3f95bdb12391cb9b3673191bda8d09c84b36b4d3) ) /* sprite lookup table */
+ ROM_LOAD( "g-08.08f", 0x0700, 0x0100, CRC(ef91cdd2) SHA1(90b9191c9f10a153d64055a4238eb6e15b8c12bc) ) /* sprite palette bank */
+ ROM_LOAD( "g-10.02j", 0x0800, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */
+ ROM_LOAD( "g-05.01f", 0x0900, 0x0100, CRC(25c90c2a) SHA1(42893572bab757ec01e181fc418cb911638d37e0) ) /* priority? (not used) */
+ROM_END
+
+ROM_START( gunsmokeub )
ROM_REGION( 0x20000, "maincpu", 0 )
- ROM_LOAD( "gs03.9n", 0x00000, 0x8000, CRC(51dc3f76) SHA1(2a188fee73c3662b665b56a825eb908b7b42dcd0) ) /* Code 0000-7fff */
- ROM_LOAD( "gs04.10n", 0x10000, 0x8000, CRC(5ecf31b8) SHA1(34ec9727330821a45b497c78c970a1a4f14ff4ee) ) /* Paged code */
- ROM_LOAD( "gs05.12n", 0x18000, 0x8000, CRC(1c9aca13) SHA1(eb92c373d2241aea4c59248e1b82717733105ac0) ) /* Paged code */
+ ROM_LOAD( "gsr_03.9n", 0x00000, 0x8000, CRC(592f211b) SHA1(8de44b3cafa3d2ce9aba515cf3ec4bac0bcdeb5b) ) /* Code 0000-7fff */
+ ROM_LOAD( "gs04.10n", 0x10000, 0x8000, CRC(8d4b423f) SHA1(149274c2ed1526ca1f419fdf8a24059ff138f7f2) ) /* Paged code */
+ ROM_LOAD( "gs05.12n", 0x18000, 0x8000, CRC(2b5667fb) SHA1(5b689bca1e76d803b4cae22feaa7744fa528e93f) ) /* Paged code */
ROM_REGION( 0x10000, "audiocpu", 0 )
- ROM_LOAD( "14h_gs02.bin", 0x00000, 0x8000, CRC(cd7a2c38) SHA1(c76c471f694b76015370f0eacf5350e652f526ff) )
+ ROM_LOAD( "gs02.14h", 0x00000, 0x8000, CRC(cd7a2c38) SHA1(c76c471f694b76015370f0eacf5350e652f526ff) )
ROM_REGION( 0x04000, "gfx1", 0 )
- ROM_LOAD( "11f_gs01.bin", 0x00000, 0x4000, CRC(b61ece9b) SHA1(eb3fc62644cc5b5a2b9cbe67c393d4a0e2a59ca9) ) /* Characters */
+ ROM_LOAD( "gs01.11f", 0x00000, 0x4000, CRC(b61ece9b) SHA1(eb3fc62644cc5b5a2b9cbe67c393d4a0e2a59ca9) ) /* Characters */
ROM_REGION( 0x40000, "gfx2", 0 )
- ROM_LOAD( "06c_gs13.bin", 0x00000, 0x8000, CRC(f6769fc5) SHA1(d192ec176425327ca4b7e25fc8432fc47837ba29) ) /* 32x32 tiles planes 2-3 */
- ROM_LOAD( "05c_gs12.bin", 0x08000, 0x8000, CRC(d997b78c) SHA1(3b4a9b6f9e57ecfb4ab9734379bd0ee765fd6daa) )
- ROM_LOAD( "04c_gs11.bin", 0x10000, 0x8000, CRC(125ba58e) SHA1(cf6931653cebd051564bed8121ab8713a55095c5) )
- ROM_LOAD( "02c_gs10.bin", 0x18000, 0x8000, CRC(f469c13c) SHA1(54eda52d6fce58771c0adfe2c88292a41d5a9b99) )
- ROM_LOAD( "06a_gs09.bin", 0x20000, 0x8000, CRC(539f182d) SHA1(4190c0adbecc57b92f4d002e121acb77e8c5d8d8) ) /* 32x32 tiles planes 0-1 */
- ROM_LOAD( "05a_gs08.bin", 0x28000, 0x8000, CRC(e87e526d) SHA1(d10068addf30322424a85bbc6382cb762ae3fbe2) )
- ROM_LOAD( "04a_gs07.bin", 0x30000, 0x8000, CRC(4382c0d2) SHA1(8615e62bc57b40d082f6ca211d64f22185bed1fd) )
- ROM_LOAD( "02a_gs06.bin", 0x38000, 0x8000, CRC(4cafe7a6) SHA1(fe501f3a5e9ce9e82e9708f1cd297f4c94ef0f81) )
+ ROM_LOAD( "gs13.06c", 0x00000, 0x8000, CRC(f6769fc5) SHA1(d192ec176425327ca4b7e25fc8432fc47837ba29) ) /* 32x32 tiles planes 2-3 */
+ ROM_LOAD( "gs12.05c", 0x08000, 0x8000, CRC(d997b78c) SHA1(3b4a9b6f9e57ecfb4ab9734379bd0ee765fd6daa) )
+ ROM_LOAD( "gs11.04c", 0x10000, 0x8000, CRC(125ba58e) SHA1(cf6931653cebd051564bed8121ab8713a55095c5) )
+ ROM_LOAD( "gs10.02c", 0x18000, 0x8000, CRC(f469c13c) SHA1(54eda52d6fce58771c0adfe2c88292a41d5a9b99) )
+ ROM_LOAD( "gs09.06a", 0x20000, 0x8000, CRC(539f182d) SHA1(4190c0adbecc57b92f4d002e121acb77e8c5d8d8) ) /* 32x32 tiles planes 0-1 */
+ ROM_LOAD( "gs08.05a", 0x28000, 0x8000, CRC(e87e526d) SHA1(d10068addf30322424a85bbc6382cb762ae3fbe2) )
+ ROM_LOAD( "gs07.04a", 0x30000, 0x8000, CRC(4382c0d2) SHA1(8615e62bc57b40d082f6ca211d64f22185bed1fd) )
+ ROM_LOAD( "gs06.02a", 0x38000, 0x8000, CRC(4cafe7a6) SHA1(fe501f3a5e9ce9e82e9708f1cd297f4c94ef0f81) )
ROM_REGION( 0x40000, "gfx3", 0 )
- ROM_LOAD( "06n_gs22.bin", 0x00000, 0x8000, CRC(dc9c508c) SHA1(920505dd4c63b177918feb4e54cca8a7948ec9d9) ) /* Sprites planes 2-3 */
- ROM_LOAD( "04n_gs21.bin", 0x08000, 0x8000, CRC(68883749) SHA1(c7bf2bf49c53feddf8f30b4001dc2d59b52b1c28) ) /* Sprites planes 2-3 */
- ROM_LOAD( "03n_gs20.bin", 0x10000, 0x8000, CRC(0be932ed) SHA1(1c5af5884a23112dbc36579515d1cb497992da2f) ) /* Sprites planes 2-3 */
- ROM_LOAD( "01n_gs19.bin", 0x18000, 0x8000, CRC(63072f93) SHA1(cb3a2729782cf2855558d081fe92d28366228b8e) ) /* Sprites planes 2-3 */
- ROM_LOAD( "06l_gs18.bin", 0x20000, 0x8000, CRC(f69a3c7c) SHA1(e9eb9dfa7d53aa7b728150f91d05bfc3bf6f1e75) ) /* Sprites planes 0-1 */
- ROM_LOAD( "04l_gs17.bin", 0x28000, 0x8000, CRC(4e98562a) SHA1(0341b8a79be1d71a57d0d76ed890e15f9f92259e) ) /* Sprites planes 0-1 */
- ROM_LOAD( "03l_gs16.bin", 0x30000, 0x8000, CRC(0d99c3b3) SHA1(436c566b76f632242448671e3b6319f7d9f65322) ) /* Sprites planes 0-1 */
- ROM_LOAD( "01l_gs15.bin", 0x38000, 0x8000, CRC(7f14270e) SHA1(dd06c333c2ea097e25185a1423cd61e1b7afc42b) ) /* Sprites planes 0-1 */
+ ROM_LOAD( "gs22.06n", 0x00000, 0x8000, CRC(dc9c508c) SHA1(920505dd4c63b177918feb4e54cca8a7948ec9d9) ) /* Sprites planes 2-3 */
+ ROM_LOAD( "gs21.04n", 0x08000, 0x8000, CRC(68883749) SHA1(c7bf2bf49c53feddf8f30b4001dc2d59b52b1c28) ) /* Sprites planes 2-3 */
+ ROM_LOAD( "gs20.03n", 0x10000, 0x8000, CRC(0be932ed) SHA1(1c5af5884a23112dbc36579515d1cb497992da2f) ) /* Sprites planes 2-3 */
+ ROM_LOAD( "gs19.01n", 0x18000, 0x8000, CRC(63072f93) SHA1(cb3a2729782cf2855558d081fe92d28366228b8e) ) /* Sprites planes 2-3 */
+ ROM_LOAD( "gs18.06l", 0x20000, 0x8000, CRC(f69a3c7c) SHA1(e9eb9dfa7d53aa7b728150f91d05bfc3bf6f1e75) ) /* Sprites planes 0-1 */
+ ROM_LOAD( "gs17.04l", 0x28000, 0x8000, CRC(4e98562a) SHA1(0341b8a79be1d71a57d0d76ed890e15f9f92259e) ) /* Sprites planes 0-1 */
+ ROM_LOAD( "gs16.03l", 0x30000, 0x8000, CRC(0d99c3b3) SHA1(436c566b76f632242448671e3b6319f7d9f65322) ) /* Sprites planes 0-1 */
+ ROM_LOAD( "gs15.01l", 0x38000, 0x8000, CRC(7f14270e) SHA1(dd06c333c2ea097e25185a1423cd61e1b7afc42b) ) /* Sprites planes 0-1 */
ROM_REGION( 0x8000, "gfx4", 0 ) /* background tilemaps */
- ROM_LOAD( "11c_gs14.bin", 0x00000, 0x8000, CRC(0af4f7eb) SHA1(24a98fdeedeeaf1035b4af52d5a8dd5e47a5e62d) )
+ ROM_LOAD( "gs14.11c", 0x00000, 0x8000, CRC(0af4f7eb) SHA1(24a98fdeedeeaf1035b4af52d5a8dd5e47a5e62d) )
ROM_REGION( 0x0a00, "proms", 0 )
- ROM_LOAD( "03b_g-01.bin", 0x0000, 0x0100, CRC(02f55589) SHA1(8a3f98304aedf3aba1c08b615bf457752a480edc) ) /* red component */
- ROM_LOAD( "04b_g-02.bin", 0x0100, 0x0100, CRC(e1e36dd9) SHA1(5bd88a35898a2d973045bdde8311aac3a12826de) ) /* green component */
- ROM_LOAD( "05b_g-03.bin", 0x0200, 0x0100, CRC(989399c0) SHA1(e408e391f49ed0c7b9e16479fea44b809440fefc) ) /* blue component */
- ROM_LOAD( "09d_g-04.bin", 0x0300, 0x0100, CRC(906612b5) SHA1(7b727a6200c088538180758320ede84aa7e5b96d) ) /* char lookup table */
- ROM_LOAD( "14a_g-06.bin", 0x0400, 0x0100, CRC(4a9da18b) SHA1(fed3b81b56aab2ed0a21ed1fcebe3f1ae095a13b) ) /* tile lookup table */
- ROM_LOAD( "15a_g-07.bin", 0x0500, 0x0100, CRC(cb9394fc) SHA1(8ad0fde6a8ef8326d2da4b6dbf3b51f5f6c668c8) ) /* tile palette bank */
- ROM_LOAD( "09f_g-09.bin", 0x0600, 0x0100, CRC(3cee181e) SHA1(3f95bdb12391cb9b3673191bda8d09c84b36b4d3) ) /* sprite lookup table */
- ROM_LOAD( "08f_g-08.bin", 0x0700, 0x0100, CRC(ef91cdd2) SHA1(90b9191c9f10a153d64055a4238eb6e15b8c12bc) ) /* sprite palette bank */
- ROM_LOAD( "02j_g-10.bin", 0x0800, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */
- ROM_LOAD( "01f_g-05.bin", 0x0900, 0x0100, CRC(25c90c2a) SHA1(42893572bab757ec01e181fc418cb911638d37e0) ) /* priority? (not used) */
+ ROM_LOAD( "g-01.03b", 0x0000, 0x0100, CRC(02f55589) SHA1(8a3f98304aedf3aba1c08b615bf457752a480edc) ) /* red component */
+ ROM_LOAD( "g-02.04b", 0x0100, 0x0100, CRC(e1e36dd9) SHA1(5bd88a35898a2d973045bdde8311aac3a12826de) ) /* green component */
+ ROM_LOAD( "g-03.05b", 0x0200, 0x0100, CRC(989399c0) SHA1(e408e391f49ed0c7b9e16479fea44b809440fefc) ) /* blue component */
+ ROM_LOAD( "g-04.09d", 0x0300, 0x0100, CRC(906612b5) SHA1(7b727a6200c088538180758320ede84aa7e5b96d) ) /* char lookup table */
+ ROM_LOAD( "g-06.14a", 0x0400, 0x0100, CRC(4a9da18b) SHA1(fed3b81b56aab2ed0a21ed1fcebe3f1ae095a13b) ) /* tile lookup table */
+ ROM_LOAD( "g-07.15a", 0x0500, 0x0100, CRC(cb9394fc) SHA1(8ad0fde6a8ef8326d2da4b6dbf3b51f5f6c668c8) ) /* tile palette bank */
+ ROM_LOAD( "g-09.09f", 0x0600, 0x0100, CRC(3cee181e) SHA1(3f95bdb12391cb9b3673191bda8d09c84b36b4d3) ) /* sprite lookup table */
+ ROM_LOAD( "g-08.08f", 0x0700, 0x0100, CRC(ef91cdd2) SHA1(90b9191c9f10a153d64055a4238eb6e15b8c12bc) ) /* sprite palette bank */
+ ROM_LOAD( "g-10.02j", 0x0800, 0x0100, CRC(0eaf5158) SHA1(bafd4108708f66cd7b280e47152b108f3e254fc9) ) /* video timing (not used) */
+ ROM_LOAD( "g-05.01f", 0x0900, 0x0100, CRC(25c90c2a) SHA1(42893572bab757ec01e181fc418cb911638d37e0) ) /* priority? (not used) */
ROM_END
/* Game Drivers */
@@ -586,8 +640,9 @@ ROM_END
// this information is not displayed onscreen
-GAME( 1985, gunsmoke, 0, gunsmoke, gunsmoke, driver_device, 0, ROT270, "Capcom", "Gun.Smoke (World, 851115)", GAME_SUPPORTS_SAVE ) // GSE_03
-GAME( 1985, gunsmokeb, gunsmoke, gunsmoke, gunsmoke, driver_device, 0, ROT270, "bootleg", "Gun.Smoke (World, 851115) (bootleg)", GAME_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)", GAME_SUPPORTS_SAVE ) // GSJ_03
-GAME( 1985, gunsmokeu, gunsmoke, gunsmoke, gunsmoke, driver_device, 0, ROT270, "Capcom (Romstar license)", "Gun.Smoke (US, 851115)", GAME_SUPPORTS_SAVE ) // GSR_03
-GAME( 1986, gunsmokeua, gunsmoke, gunsmoke, gunsmokeua, driver_device, 0, ROT270, "Capcom (Romstar license)", "Gun.Smoke (US, 860408)", GAME_SUPPORTS_SAVE ) // GSA_03
+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
diff --git a/src/mame/drivers/gyruss.c b/src/mame/drivers/gyruss.c
index e894a93edd2..a88dea9ea8b 100644
--- a/src/mame/drivers/gyruss.c
+++ b/src/mame/drivers/gyruss.c
@@ -684,7 +684,7 @@ DRIVER_INIT_MEMBER(gyruss_state,gyruss)
}
-GAME( 1983, gyruss, 0, gyruss, gyruss, gyruss_state, gyruss, ROT90, "Konami", "Gyruss", GAME_SUPPORTS_SAVE )
-GAME( 1983, gyrussce, gyruss, gyruss, gyrussce, gyruss_state, gyruss, ROT90, "Konami (Centuri license)", "Gyruss (Centuri)", GAME_SUPPORTS_SAVE )
-GAME( 1983, gyrussb, gyruss, gyruss, gyruss, gyruss_state, gyruss, ROT90, "bootleg?", "Gyruss (bootleg?)", GAME_SUPPORTS_SAVE ) /* Supposed Taito NZ license, but (c) Konami */
-GAME( 1983, venus, gyruss, gyruss, gyruss, gyruss_state, gyruss, ROT90, "bootleg", "Venus (bootleg of Gyruss)", GAME_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 )
diff --git a/src/mess/drivers/h19.c b/src/mame/drivers/h19.c
index 23cd1ff767b..4e44801c862 100644
--- a/src/mess/drivers/h19.c
+++ b/src/mame/drivers/h19.c
@@ -449,4 +449,4 @@ ROM_END
/* Driver (year is either 1978 or 1979) */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 1978, h19, 0, 0, h19, h19, driver_device, 0, "Heath Inc", "Heathkit H-19", GAME_NOT_WORKING )
+COMP( 1978, h19, 0, 0, h19, h19, driver_device, 0, "Heath Inc", "Heathkit H-19", MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/h8.c b/src/mame/drivers/h8.c
index cfe20e29774..9838ad98100 100644
--- a/src/mess/drivers/h8.c
+++ b/src/mame/drivers/h8.c
@@ -365,4 +365,4 @@ 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", GAME_NOT_WORKING )
+COMP( 1977, h8, 0, 0, h8, h8, driver_device, 0, "Heath, Inc.", "Heathkit H8", MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/h89.c b/src/mame/drivers/h89.c
index a9eb016f47a..8ad90cede45 100644
--- a/src/mess/drivers/h89.c
+++ b/src/mame/drivers/h89.c
@@ -148,4 +148,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1979, h89, 0, 0, h89, h89, driver_device, 0, "Heath Inc", "Heathkit H89", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/halleys.c b/src/mame/drivers/halleys.c
index 3933f30ac6b..74af3713368 100644
--- a/src/mame/drivers/halleys.c
+++ b/src/mame/drivers/halleys.c
@@ -2271,8 +2271,8 @@ DRIVER_INIT_MEMBER(halleys_state,halley87)
//**************************************************************************
// Game Definitions
-GAME( 1984, benberob, 0, benberob, benberob, halleys_state, benberob, ROT0, "Taito", "Ben Bero Beh (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_COLORS | GAME_NO_COCKTAIL )
-GAME( 1986, halleys, 0, halleys, halleys, halleys_state, halleys, ROT90, "Taito America Corporation (Coin-It license)", "Halley's Comet (US)", GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL )
-GAME( 1986, halleysc, halleys, halleys, halleys, halleys_state, halleys, ROT90, "Taito Corporation", "Halley's Comet (Japan, Newer)", GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL )
-GAME( 1986, halleycj, halleys, halleys, halleys, halleys_state, halleys, ROT90, "Taito Corporation", "Halley's Comet (Japan, Older)", GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL )
-GAME( 1986, halley87, halleys, halleys, halleys, halleys_state, halley87, ROT90, "Taito Corporation", "Halley's Comet '87", GAME_IMPERFECT_GRAPHICS | GAME_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.c b/src/mame/drivers/hanaawas.c
index 2cb0c7acbff..cf50df04135 100644
--- a/src/mame/drivers/hanaawas.c
+++ b/src/mame/drivers/hanaawas.c
@@ -242,4 +242,4 @@ ROM_START( hanaawas )
ROM_END
-GAME( 1982, hanaawas, 0, hanaawas, hanaawas, driver_device, 0, ROT0, "Seta Kikaku, Ltd.", "Hana Awase", GAME_SUPPORTS_SAVE )
+GAME( 1982, hanaawas, 0, hanaawas, hanaawas, driver_device, 0, ROT0, "Seta Kikaku, Ltd.", "Hana Awase", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/hankin.c b/src/mame/drivers/hankin.c
index 09bf415c8b8..14dcda9555b 100644
--- a/src/mame/drivers/hankin.c
+++ b/src/mame/drivers/hankin.c
@@ -600,8 +600,8 @@ ROM_START(empsback)
ROM_END
-GAME(1978, fjholden, 0, hankin, hankin, driver_device, 0, ROT0, "Hankin", "FJ Holden", GAME_MECHANICAL )
-GAME(1978, orbit1, 0, hankin, hankin, driver_device, 0, ROT0, "Hankin", "Orbit 1", GAME_MECHANICAL )
-GAME(1980, shark, 0, hankin, hankin, driver_device, 0, ROT0, "Hankin", "Shark", GAME_MECHANICAL )
-GAME(1980, howzat, 0, hankin, hankin, driver_device, 0, ROT0, "Hankin", "Howzat!", GAME_MECHANICAL )
-GAME(1981, empsback, 0, hankin, hankin, driver_device, 0, ROT0, "Hankin", "The Empire Strike Back", GAME_MECHANICAL )
+GAME(1978, fjholden, 0, hankin, hankin, driver_device, 0, ROT0, "Hankin", "FJ Holden", MACHINE_MECHANICAL )
+GAME(1978, orbit1, 0, hankin, hankin, driver_device, 0, ROT0, "Hankin", "Orbit 1", MACHINE_MECHANICAL )
+GAME(1980, shark, 0, hankin, hankin, driver_device, 0, ROT0, "Hankin", "Shark", MACHINE_MECHANICAL )
+GAME(1980, howzat, 0, hankin, hankin, driver_device, 0, ROT0, "Hankin", "Howzat!", MACHINE_MECHANICAL )
+GAME(1981, empsback, 0, hankin, hankin, driver_device, 0, ROT0, "Hankin", "The Empire Strike Back", MACHINE_MECHANICAL )
diff --git a/src/mame/drivers/harddriv.c b/src/mame/drivers/harddriv.c
index 43238a42336..95a60fb7134 100644
--- a/src/mame/drivers/harddriv.c
+++ b/src/mame/drivers/harddriv.c
@@ -355,6 +355,8 @@ harddriv_state::harddriv_state(const machine_config &mconfig, const char *tag, d
m_ds3dac2(*this, "ds3dac2"),
m_harddriv_sound(*this, "harddriv_sound"),
m_jsa(*this, "jsa"),
+ m_screen(*this, "screen"),
+ m_duartn68681(*this, "duartn68681"),
m_hd34010_host_access(0),
m_dsk_pio_access(0),
m_msp_ram(*this, "msp_ram"),
@@ -384,6 +386,11 @@ harddriv_state::harddriv_state(const machine_config &mconfig, const char *tag, d
m_gsp_control_hi(*this, "gsp_control_hi"),
m_gsp_paletteram_lo(*this, "gsp_palram_lo"),
m_gsp_paletteram_hi(*this, "gsp_palram_hi"),
+ m_in0(*this, "IN0"),
+ m_sw1(*this, "SW1"),
+ m_a80000(*this, "a80000"),
+ m_8badc(*this, "8BADC"),
+ m_12badc(*this, "12BADC"),
m_irq_state(0),
m_gsp_irq_state(0),
m_msp_irq_state(0),
@@ -499,9 +506,18 @@ class harddriv_new_state : public driver_device
public:
harddriv_new_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
+ , m_mainpcb(*this, "mainpcb")
+ , m_leftpcb(*this, "leftpcb")
+ , m_rightpcb(*this, "rightpcb")
{ }
TIMER_DEVICE_CALLBACK_MEMBER(hack_timer);
+ DECLARE_WRITE_LINE_MEMBER(tx_a);
+
+ required_device<harddriv_state> m_mainpcb;
+ optional_device<harddriv_state> m_leftpcb;
+ optional_device<harddriv_state> m_rightpcb;
+
};
@@ -777,40 +793,40 @@ static INPUT_PORTS_START( harddriv )
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 ) /* aux coin */
PORT_BIT( 0xfff8, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("mainpcb:8BADC0") /* b00000 - 8 bit ADC 0 - gas pedal */
+ PORT_START("mainpcb:8BADC.0") /* b00000 - 8 bit ADC 0 - gas pedal */
PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_NAME("Gas Pedal")
- PORT_START("mainpcb:8BADC1") /* b00000 - 8 bit ADC 1 - clutch pedal */
+ PORT_START("mainpcb:8BADC.1") /* b00000 - 8 bit ADC 1 - clutch pedal */
PORT_BIT( 0xff, 0x00, IPT_PEDAL3 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(100) PORT_NAME("Clutch Pedal")
- PORT_START("mainpcb:8BADC2") /* b00000 - 8 bit ADC 2 - seat */
+ PORT_START("mainpcb:8BADC.2") /* b00000 - 8 bit ADC 2 - seat */
PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
- PORT_START("mainpcb:8BADC3") /* b00000 - 8 bit ADC 3 - shifter lever Y */
+ PORT_START("mainpcb:8BADC.3") /* b00000 - 8 bit ADC 3 - shifter lever Y */
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(128) PORT_CODE_DEC(KEYCODE_R) PORT_CODE_INC(KEYCODE_F) PORT_NAME("Shifter Lever Y")
- PORT_START("mainpcb:8BADC4") /* b00000 - 8 bit ADC 4 - shifter lever X*/
+ PORT_START("mainpcb:8BADC.4") /* b00000 - 8 bit ADC 4 - shifter lever X*/
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(128) PORT_CODE_DEC(KEYCODE_D) PORT_CODE_INC(KEYCODE_G) PORT_NAME("Shifter Lever X")
- PORT_START("mainpcb:8BADC5") /* b00000 - 8 bit ADC 5 - wheel */
+ PORT_START("mainpcb:8BADC.5") /* b00000 - 8 bit ADC 5 - wheel */
PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) PORT_NAME("Wheel")
- PORT_START("mainpcb:8BADC6") /* b00000 - 8 bit ADC 6 - line volts */
+ PORT_START("mainpcb:8BADC.6") /* b00000 - 8 bit ADC 6 - line volts */
PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
- PORT_START("mainpcb:8BADC7") /* b00000 - 8 bit ADC 7 - shift force */
+ PORT_START("mainpcb:8BADC.7") /* b00000 - 8 bit ADC 7 - shift force */
PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
- PORT_START("mainpcb:12BADC0") /* b80000 - 12 bit ADC 0 - steering wheel */
+ PORT_START("mainpcb:12BADC.0") /* b80000 - 12 bit ADC 0 - steering wheel */
PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) PORT_NAME("Steering Wheel")
- PORT_START("mainpcb:12BADC1") /* b80000 - 12 bit ADC 1 - force brake */
+ PORT_START("mainpcb:12BADC.1") /* b80000 - 12 bit ADC 1 - force brake */
PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(40) PORT_REVERSE PORT_NAME("Force Brake")
- PORT_START("mainpcb:12BADC2") /* b80000 - 12 bit ADC 2 */
+ PORT_START("mainpcb:12BADC.2") /* b80000 - 12 bit ADC 2 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("mainpcb:12BADC3") /* b80000 - 12 bit ADC 3 */
+ PORT_START("mainpcb:12BADC.3") /* b80000 - 12 bit ADC 3 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
INPUT_PORTS_END
@@ -861,40 +877,40 @@ static INPUT_PORTS_START( racedriv )
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN3 ) /* aux coin */
PORT_BIT( 0xfff8, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("mainpcb:8BADC0") /* b00000 - 8 bit ADC 0 - gas pedal */
+ PORT_START("mainpcb:8BADC.0") /* b00000 - 8 bit ADC 0 - gas pedal */
PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_NAME("Gas Pedal")
- PORT_START("mainpcb:8BADC1") /* b00000 - 8 bit ADC 1 - clutch pedal */
+ PORT_START("mainpcb:8BADC.1") /* b00000 - 8 bit ADC 1 - clutch pedal */
PORT_BIT( 0xff, 0x00, IPT_PEDAL3 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(100) PORT_NAME("Clutch Pedal")
- PORT_START("mainpcb:8BADC2") /* b00000 - 8 bit ADC 2 - seat */
+ PORT_START("mainpcb:8BADC.2") /* b00000 - 8 bit ADC 2 - seat */
PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
- PORT_START("mainpcb:8BADC3") /* b00000 - 8 bit ADC 3 - shifter lever Y */
+ PORT_START("mainpcb:8BADC.3") /* b00000 - 8 bit ADC 3 - shifter lever Y */
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(128) PORT_CODE_DEC(KEYCODE_R) PORT_CODE_INC(KEYCODE_F) PORT_NAME("Shifter Lever Y")
- PORT_START("mainpcb:8BADC4") /* b00000 - 8 bit ADC 4 - shifter lever X*/
+ PORT_START("mainpcb:8BADC.4") /* b00000 - 8 bit ADC 4 - shifter lever X*/
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(128) PORT_CODE_DEC(KEYCODE_D) PORT_CODE_INC(KEYCODE_G) PORT_NAME("Shifter Lever X")
- PORT_START("mainpcb:8BADC5") /* b00000 - 8 bit ADC 5 - wheel */
+ PORT_START("mainpcb:8BADC.5") /* b00000 - 8 bit ADC 5 - wheel */
PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) PORT_NAME("Wheel")
- PORT_START("mainpcb:8BADC6") /* b00000 - 8 bit ADC 6 - line volts */
+ PORT_START("mainpcb:8BADC.6") /* b00000 - 8 bit ADC 6 - line volts */
PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
- PORT_START("mainpcb:8BADC7") /* b00000 - 8 bit ADC 7 */
+ PORT_START("mainpcb:8BADC.7") /* b00000 - 8 bit ADC 7 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("mainpcb:12BADC0") /* b80000 - 12 bit ADC 0 - steering wheel */
+ PORT_START("mainpcb:12BADC.0") /* b80000 - 12 bit ADC 0 - steering wheel */
PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) PORT_NAME("Steering Wheel")
- PORT_START("mainpcb:12BADC1") /* b80000 - 12 bit ADC 1 - force brake */
+ PORT_START("mainpcb:12BADC.1") /* b80000 - 12 bit ADC 1 - force brake */
PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(40) PORT_REVERSE PORT_NAME("Force Brake")
- PORT_START("mainpcb:12BADC2") /* b80000 - 12 bit ADC 2 */
+ PORT_START("mainpcb:12BADC.2") /* b80000 - 12 bit ADC 2 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("mainpcb:12BADC3") /* b80000 - 12 bit ADC 3 */
+ PORT_START("mainpcb:12BADC.3") /* b80000 - 12 bit ADC 3 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
INPUT_PORTS_END
@@ -991,39 +1007,39 @@ static INPUT_PORTS_START( racedrivc )
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SPECIAL ) /* center edge on steering wheel */
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("mainpcb:8BADC0") /* b00000 - 8 bit ADC 0 - gas pedal */
+ PORT_START("mainpcb:8BADC.0") /* b00000 - 8 bit ADC 0 - gas pedal */
PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_NAME("Gas Pedal")
- PORT_START("mainpcb:8BADC1") /* b00000 - 8 bit ADC 1 - clutch pedal */
+ PORT_START("mainpcb:8BADC.1") /* b00000 - 8 bit ADC 1 - clutch pedal */
PORT_BIT( 0xff, 0x00, IPT_PEDAL3 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(100) PORT_NAME("Clutch Pedal")
- PORT_START("mainpcb:8BADC2") /* b00000 - 8 bit ADC 2 */
+ PORT_START("mainpcb:8BADC.2") /* b00000 - 8 bit ADC 2 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("mainpcb:8BADC3") /* b00000 - 8 bit ADC 3 */
+ PORT_START("mainpcb:8BADC.3") /* b00000 - 8 bit ADC 3 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("mainpcb:8BADC4") /* b00000 - 8 bit ADC 4 */
+ PORT_START("mainpcb:8BADC.4") /* b00000 - 8 bit ADC 4 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("mainpcb:8BADC5") /* b00000 - 8 bit ADC 5 */
+ PORT_START("mainpcb:8BADC.5") /* b00000 - 8 bit ADC 5 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("mainpcb:8BADC6") /* b00000 - 8 bit ADC 6 - force brake */
+ PORT_START("mainpcb:8BADC.6") /* b00000 - 8 bit ADC 6 - force brake */
PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(40) PORT_REVERSE PORT_NAME("Force Brake")
- PORT_START("mainpcb:8BADC7") /* b00000 - 8 bit ADC 7 */
+ PORT_START("mainpcb:8BADC.7") /* b00000 - 8 bit ADC 7 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("mainpcb:12BADC0") /* 400000 - steering wheel */
+ PORT_START("mainpcb:12BADC.0") /* 400000 - steering wheel */
PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) PORT_NAME("Steering Wheel")
/* dummy ADC ports to end up with the same number as the full version */
- PORT_START("mainpcb:12BADC1")
+ PORT_START("mainpcb:12BADC.1")
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("mainpcb:12BADC2")
+ PORT_START("mainpcb:12BADC.2")
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("mainpcb:12BADC3")
+ PORT_START("mainpcb:12BADC.3")
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
INPUT_PORTS_END
@@ -1073,40 +1089,40 @@ static INPUT_PORTS_START( stunrun )
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_START1 )
PORT_BIT( 0xfff8, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("mainpcb:8BADC0") /* b00000 - 8 bit ADC 0 */
+ PORT_START("mainpcb:8BADC.0") /* b00000 - 8 bit ADC 0 */
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10)
- PORT_START("mainpcb:8BADC1") /* b00000 - 8 bit ADC 1 */
+ PORT_START("mainpcb:8BADC.1") /* b00000 - 8 bit ADC 1 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("mainpcb:8BADC2") /* b00000 - 8 bit ADC 2 */
+ PORT_START("mainpcb:8BADC.2") /* b00000 - 8 bit ADC 2 */
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10)
- PORT_START("mainpcb:8BADC3") /* b00000 - 8 bit ADC 3 */
+ PORT_START("mainpcb:8BADC.3") /* b00000 - 8 bit ADC 3 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("mainpcb:8BADC4") /* b00000 - 8 bit ADC 4 */
+ PORT_START("mainpcb:8BADC.4") /* b00000 - 8 bit ADC 4 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("mainpcb:8BADC5") /* b00000 - 8 bit ADC 5 */
+ PORT_START("mainpcb:8BADC.5") /* b00000 - 8 bit ADC 5 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("mainpcb:8BADC6") /* b00000 - 8 bit ADC 6 */
+ PORT_START("mainpcb:8BADC.6") /* b00000 - 8 bit ADC 6 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("mainpcb:8BADC7") /* b00000 - 8 bit ADC 7 */
+ PORT_START("mainpcb:8BADC.7") /* b00000 - 8 bit ADC 7 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("mainpcb:12BADC0") /* b80000 - 12 bit ADC 0 */
+ PORT_START("mainpcb:12BADC.0") /* b80000 - 12 bit ADC 0 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("mainpcb:12BADC1") /* b80000 - 12 bit ADC 1 */
+ PORT_START("mainpcb:12BADC.1") /* b80000 - 12 bit ADC 1 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("mainpcb:12BADC2") /* b80000 - 12 bit ADC 2 */
+ PORT_START("mainpcb:12BADC.2") /* b80000 - 12 bit ADC 2 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("mainpcb:12BADC3") /* b80000 - 12 bit ADC 3 */
+ PORT_START("mainpcb:12BADC.3") /* b80000 - 12 bit ADC 3 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
/* stunrun has its own coins */
@@ -1163,40 +1179,40 @@ static INPUT_PORTS_START( steeltal )
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Real Helicopter Flight")
PORT_BIT( 0xfff0, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("mainpcb:8BADC0") /* b00000 - 8 bit ADC 0 */
+ PORT_START("mainpcb:8BADC.0") /* b00000 - 8 bit ADC 0 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("mainpcb:8BADC1") /* b00000 - 8 bit ADC 1 */
+ PORT_START("mainpcb:8BADC.1") /* b00000 - 8 bit ADC 1 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) /* volume control */
- PORT_START("mainpcb:8BADC2") /* b00000 - 8 bit ADC 2 */
+ PORT_START("mainpcb:8BADC.2") /* b00000 - 8 bit ADC 2 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("mainpcb:8BADC3") /* b00000 - 8 bit ADC 3 */
+ PORT_START("mainpcb:8BADC.3") /* b00000 - 8 bit ADC 3 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("mainpcb:8BADC4") /* b00000 - 8 bit ADC 4 */
+ PORT_START("mainpcb:8BADC.4") /* b00000 - 8 bit ADC 4 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("mainpcb:8BADC5") /* b00000 - 8 bit ADC 5 */
+ PORT_START("mainpcb:8BADC.5") /* b00000 - 8 bit ADC 5 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("mainpcb:8BADC6") /* b00000 - 8 bit ADC 6 */
+ PORT_START("mainpcb:8BADC.6") /* b00000 - 8 bit ADC 6 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("mainpcb:8BADC7") /* b00000 - 8 bit ADC 7 */
+ PORT_START("mainpcb:8BADC.7") /* b00000 - 8 bit ADC 7 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("mainpcb:12BADC0") /* b80000 - 12 bit ADC 0 */
+ PORT_START("mainpcb:12BADC.0") /* b80000 - 12 bit ADC 0 */
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) /* left/right */
- PORT_START("mainpcb:12BADC1") /* b80000 - 12 bit ADC 1 */
+ PORT_START("mainpcb:12BADC.1") /* b80000 - 12 bit ADC 1 */
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) /* up/down */
- PORT_START("mainpcb:12BADC2") /* b80000 - 12 bit ADC 2 */
+ PORT_START("mainpcb:12BADC.2") /* b80000 - 12 bit ADC 2 */
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Z ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_NAME("Collective") PORT_REVERSE /* collective */
- PORT_START("mainpcb:12BADC3") /* b80000 - 12 bit ADC 3 */
+ PORT_START("mainpcb:12BADC.3") /* b80000 - 12 bit ADC 3 */
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_NAME("Rudder") PORT_PLAYER(2) /* rudder */
/* steeltal has its own coins */
@@ -1260,39 +1276,39 @@ static INPUT_PORTS_START( strtdriv )
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SPECIAL ) /* center edge on steering wheel */
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("mainpcb:8BADC0") /* b00000 - 8 bit ADC 0 - gas pedal */
+ PORT_START("mainpcb:8BADC.0") /* b00000 - 8 bit ADC 0 - gas pedal */
PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_NAME("Gas Pedal")
- PORT_START("mainpcb:8BADC1") /* b00000 - 8 bit ADC 1 */
+ PORT_START("mainpcb:8BADC.1") /* b00000 - 8 bit ADC 1 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("mainpcb:8BADC2") /* b00000 - 8 bit ADC 2 - voice mic */
+ PORT_START("mainpcb:8BADC.2") /* b00000 - 8 bit ADC 2 - voice mic */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("mainpcb:8BADC3") /* b00000 - 8 bit ADC 3 - volume */
+ PORT_START("mainpcb:8BADC.3") /* b00000 - 8 bit ADC 3 - volume */
PORT_BIT( 0xff, 0X80, IPT_UNUSED )
- PORT_START("mainpcb:8BADC4") /* b00000 - 8 bit ADC 4 - elevator */
+ PORT_START("mainpcb:8BADC.4") /* b00000 - 8 bit ADC 4 - elevator */
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_NAME("Elevator") PORT_REVERSE /* up/down */
- PORT_START("mainpcb:8BADC5") /* b00000 - 8 bit ADC 5 - canopy */
+ PORT_START("mainpcb:8BADC.5") /* b00000 - 8 bit ADC 5 - canopy */
PORT_BIT( 0xff, 0X80, IPT_UNUSED )
- PORT_START("mainpcb:8BADC6") /* b00000 - 8 bit ADC 6 - brake */
+ PORT_START("mainpcb:8BADC.6") /* b00000 - 8 bit ADC 6 - brake */
PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(40) PORT_NAME("Brake") PORT_REVERSE
- PORT_START("mainpcb:8BADC7") /* b00000 - 8 bit ADC 7 - seat adjust */
+ PORT_START("mainpcb:8BADC.7") /* b00000 - 8 bit ADC 7 - seat adjust */
PORT_BIT( 0xff, 0X80, IPT_UNUSED )
- PORT_START("mainpcb:12BADC0") /* 400000 - steering wheel */
+ PORT_START("mainpcb:12BADC.0") /* 400000 - steering wheel */
PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) PORT_NAME("Steering Wheel")
/* dummy ADC ports to end up with the same number as the full version */
- PORT_START("mainpcb:12BADC1") /* FAKE */
+ PORT_START("mainpcb:12BADC.1") /* FAKE */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("mainpcb:12BADC2") /* FAKE */
+ PORT_START("mainpcb:12BADC.2") /* FAKE */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("mainpcb:12BADC3") /* FAKE */
+ PORT_START("mainpcb:12BADC.3") /* FAKE */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
INPUT_PORTS_END
@@ -1350,39 +1366,39 @@ static INPUT_PORTS_START( hdrivair )
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SPECIAL ) /* center edge on steering wheel */
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("mainpcb:8BADC0") /* b00000 - 8 bit ADC 0 - gas pedal */
+ PORT_START("mainpcb:8BADC.0") /* b00000 - 8 bit ADC 0 - gas pedal */
PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(20) PORT_NAME("Gas Pedal")
- PORT_START("mainpcb:8BADC1") /* b00000 - 8 bit ADC 1 */
+ PORT_START("mainpcb:8BADC.1") /* b00000 - 8 bit ADC 1 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("mainpcb:8BADC2") /* b00000 - 8 bit ADC 2 - voice mic */
+ PORT_START("mainpcb:8BADC.2") /* b00000 - 8 bit ADC 2 - voice mic */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("mainpcb:8BADC3") /* b00000 - 8 bit ADC 3 - volume */
+ PORT_START("mainpcb:8BADC.3") /* b00000 - 8 bit ADC 3 - volume */
PORT_BIT( 0xff, 0X80, IPT_UNUSED )
- PORT_START("mainpcb:8BADC4") /* b00000 - 8 bit ADC 4 - elevator */
+ PORT_START("mainpcb:8BADC.4") /* b00000 - 8 bit ADC 4 - elevator */
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_REVERSE PORT_NAME("Elevator") /* up/down */
- PORT_START("mainpcb:8BADC5") /* b00000 - 8 bit ADC 5 - canopy */
+ PORT_START("mainpcb:8BADC.5") /* b00000 - 8 bit ADC 5 - canopy */
PORT_BIT( 0xff, 0X80, IPT_UNUSED )
- PORT_START("mainpcb:8BADC6") /* b00000 - 8 bit ADC 6 - brake */
+ PORT_START("mainpcb:8BADC.6") /* b00000 - 8 bit ADC 6 - brake */
PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_SENSITIVITY(25) PORT_KEYDELTA(40) PORT_REVERSE PORT_NAME("Brake")
- PORT_START("mainpcb:8BADC7") /* b00000 - 8 bit ADC 7 - seat adjust */
+ PORT_START("mainpcb:8BADC.7") /* b00000 - 8 bit ADC 7 - seat adjust */
PORT_BIT( 0xff, 0X80, IPT_UNUSED )
- PORT_START("mainpcb:12BADC0") /* 400000 - steering wheel */
+ PORT_START("mainpcb:12BADC.0") /* 400000 - steering wheel */
PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5) PORT_REVERSE PORT_NAME("Steering Wheel")
/* dummy ADC ports to end up with the same number as the full version */
- PORT_START("mainpcb:12BADC1")
+ PORT_START("mainpcb:12BADC.1")
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("mainpcb:12BADC2")
+ PORT_START("mainpcb:12BADC.2")
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("mainpcb:12BADC3")
+ PORT_START("mainpcb:12BADC.3")
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
INPUT_PORTS_END
@@ -1986,13 +2002,11 @@ static MACHINE_CONFIG_START( steeltalp_machine, harddriv_new_state )
MCFG_DEVICE_ADD("mainpcb", STEELTALP_BOARD_DEVICE, 0)
MACHINE_CONFIG_END
-WRITE_LINE_MEMBER(racedriv_board_device_state::tx_a)
+WRITE_LINE_MEMBER(harddriv_new_state::tx_a)
{
// passive connection, one way, to both screens
- mc68681_device* left = machine().device<mc68681_device>(":leftpcb:duartn68681");
- mc68681_device* right = machine().device<mc68681_device>(":rightpcb:duartn68681");
- left->rx_a_w(state);
- right->rx_a_w(state);
+ m_leftpcb->m_duartn68681->rx_a_w(state);
+ m_rightpcb->m_duartn68681->rx_a_w(state);
}
static MACHINE_CONFIG_START( racedriv_panorama_machine, harddriv_new_state )
@@ -2002,7 +2016,7 @@ static MACHINE_CONFIG_START( racedriv_panorama_machine, harddriv_new_state )
// MCFG_QUANTUM_TIME(attotime::from_hz(100000))
MCFG_DEVICE_MODIFY("mainpcb:duartn68681")
- MCFG_MC68681_A_TX_CALLBACK(WRITELINE(racedriv_board_device_state,tx_a ))
+ MCFG_MC68681_A_TX_CALLBACK(DEVWRITELINE(DEVICE_SELF_OWNER, harddriv_new_state,tx_a))
MCFG_TIMER_DRIVER_ADD_PERIODIC("hack_timer", harddriv_new_state, hack_timer, attotime::from_hz(60))
// MCFG_QUANTUM_TIME(attotime::from_hz(60000))
@@ -2012,13 +2026,9 @@ MACHINE_CONFIG_END
// by forcing them to stay in sync using this ugly method everything works much better.
TIMER_DEVICE_CALLBACK_MEMBER(harddriv_new_state::hack_timer)
{
- screen_device* middle = machine().device<screen_device>(":mainpcb:screen");
- screen_device* left = machine().device<screen_device>(":leftpcb:screen");
- screen_device* right = machine().device<screen_device>(":rightpcb:screen");
-
- left->reset_origin(0, 0);
- middle->reset_origin(0, 0);
- right->reset_origin(0, 0);
+ m_leftpcb->m_screen->reset_origin(0, 0);
+ m_mainpcb->m_screen->reset_origin(0, 0);
+ m_rightpcb->m_screen->reset_origin(0, 0);
}
/*************************************
@@ -5203,9 +5213,9 @@ GAMEL( 1990, racedrivpan, racedriv, racedriv_panorama_machine, racedriv_pan, dri
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)", GAME_NOT_WORKING )
+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)", GAME_IMPERFECT_SOUND )
-GAME( 1993, hdrivairp, hdrivair, hdrivairp_machine, hdrivair, driver_device, 0,ROT0, "Atari Games", "Hard Drivin's Airborne (prototype, early rev)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
+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 )
diff --git a/src/mess/drivers/harriet.c b/src/mame/drivers/harriet.c
index 3721c94a80a..b359c19daec 100644
--- a/src/mess/drivers/harriet.c
+++ b/src/mame/drivers/harriet.c
@@ -222,4 +222,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", GAME_IS_SKELETON )
+COMP( 1990, harriet, 0, 0, harriet, harriet, driver_device, 0, "Quantel", "Harriet", MACHINE_IS_SKELETON )
diff --git a/src/mame/drivers/hazelgr.c b/src/mame/drivers/hazelgr.c
index a97bfaf4a94..b22c62381f9 100644
--- a/src/mame/drivers/hazelgr.c
+++ b/src/mame/drivers/hazelgr.c
@@ -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)", GAME_IS_SKELETON_MECHANICAL)
+GAME( 198?, hg_frd, 0, haze, haze, driver_device, 0, ROT0, "Hazel Grove", "Fruit Deuce (Hazel Grove)", MACHINE_IS_SKELETON_MECHANICAL)
diff --git a/src/mame/drivers/hcastle.c b/src/mame/drivers/hcastle.c
index 0f52bb17457..8e2ccb15ce1 100644
--- a/src/mame/drivers/hcastle.c
+++ b/src/mame/drivers/hcastle.c
@@ -372,8 +372,8 @@ ROM_END
-GAME( 1988, hcastle, 0, hcastle, hcastle, driver_device, 0, ROT0, "Konami", "Haunted Castle (version M)", GAME_SUPPORTS_SAVE )
-GAME( 1988, hcastlek, hcastle, hcastle, hcastle, driver_device, 0, ROT0, "Konami", "Haunted Castle (version K)", GAME_SUPPORTS_SAVE )
-GAME( 1988, hcastlee, hcastle, hcastle, hcastle, driver_device, 0, ROT0, "Konami", "Haunted Castle (version E)", GAME_SUPPORTS_SAVE )
-GAME( 1988, akumajou, hcastle, hcastle, hcastle, driver_device, 0, ROT0, "Konami", "Akuma-Jou Dracula (Japan version P)", GAME_SUPPORTS_SAVE )
-GAME( 1988, akumajoun, hcastle, hcastle, hcastle, driver_device, 0, ROT0, "Konami", "Akuma-Jou Dracula (Japan version N)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/headonb.c b/src/mame/drivers/headonb.c
index b6ae831871a..4d98c1a0e38 100644
--- a/src/mame/drivers/headonb.c
+++ b/src/mame/drivers/headonb.c
@@ -204,4 +204,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)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/hec2hrp.c b/src/mame/drivers/hec2hrp.c
index 0553958fcfa..ef9e3cac314 100644
--- a/src/mess/drivers/hec2hrp.c
+++ b/src/mame/drivers/hec2hrp.c
@@ -722,10 +722,10 @@ 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+", GAME_IMPERFECT_SOUND)
-COMP(1980, victor, hec2hrp, 0, hec2hrp, hec2hrp, driver_device,0, "Micronique", "Victor", GAME_IMPERFECT_SOUND)
-COMP(1983, hec2hr, hec2hrp, 0, hec2hr, hec2hrp, driver_device,0, "Micronique", "Hector 2HR", GAME_IMPERFECT_SOUND)
-COMP(1984, hec2hrx, hec2hrp, 0, hec2hrx, hec2hrp, driver_device,0, "Micronique", "Hector HRX + Disc2", GAME_IMPERFECT_SOUND)
-COMP(1985, hec2mdhrx, hec2hrp, 0, hec2mdhrx, hec2hrp, driver_device,0, "Micronique", "Hector HRX + mini Disc" , GAME_IMPERFECT_SOUND)
-COMP(1985, hec2mx80, hec2hrp, 0, hec2mx80, hec2hrp, driver_device,0, "Micronique", "Hector MX 80c + Disc2" , GAME_IMPERFECT_SOUND)
-COMP(1985, hec2mx40, hec2hrp, 0, hec2mx40, hec2hrp, driver_device,0, "Micronique", "Hector MX 40c + Disc2" , GAME_IMPERFECT_SOUND)
+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)
diff --git a/src/mess/drivers/hh_cop400.c b/src/mame/drivers/hh_cop400.c
index 568ccd6644e..3400b2d9ab5 100644
--- a/src/mess/drivers/hh_cop400.c
+++ b/src/mame/drivers/hh_cop400.c
@@ -284,7 +284,7 @@ MACHINE_CONFIG_END
The first version was on TMS1100 (see hh_tms1k.c), this is the reprogrammed
second release with a gray case instead of black.
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -830,12 +830,12 @@ 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)", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
+CONS( 1979, ctstein, 0, 0, ctstein, ctstein, driver_device, 0, "Castle Toy", "Einstein (Castle Toy)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
-CONS( 1981, einvaderc, einvader, 0, einvaderc, einvaderc, driver_device, 0, "Entex", "Space Invader (Entex, COP444)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | GAME_NOT_WORKING )
+CONS( 1981, einvaderc, einvader, 0, einvaderc, einvaderc, driver_device, 0, "Entex", "Space Invader (Entex, COP444)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK | MACHINE_NOT_WORKING )
-CONS( 1979, funjacks, 0, 0, funjacks, funjacks, driver_device, 0, "Mattel", "Funtronics Jacks", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
-CONS( 1979, funrlgl, 0, 0, funrlgl, funrlgl, driver_device, 0, "Mattel", "Funtronics Red Light Green Light", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
+CONS( 1979, funjacks, 0, 0, funjacks, funjacks, driver_device, 0, "Mattel", "Funtronics Jacks", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
+CONS( 1979, funrlgl, 0, 0, funrlgl, funrlgl, driver_device, 0, "Mattel", "Funtronics Red Light Green Light", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
-CONS( 1980, plus1, 0, 0, plus1, plus1, driver_device, 0, "Milton Bradley", "Plus One", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
-CONS( 1981, lightfgt, 0, 0, lightfgt, lightfgt, driver_device, 0, "Milton Bradley", "Lightfight", GAME_SUPPORTS_SAVE )
+CONS( 1980, plus1, 0, 0, plus1, plus1, driver_device, 0, "Milton Bradley", "Plus One", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
+CONS( 1981, lightfgt, 0, 0, lightfgt, lightfgt, driver_device, 0, "Milton Bradley", "Lightfight", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/hh_hmcs40.c b/src/mame/drivers/hh_hmcs40.c
index b66ebdd2a11..765c453ce13 100644
--- a/src/mess/drivers/hh_hmcs40.c
+++ b/src/mame/drivers/hh_hmcs40.c
@@ -20,6 +20,8 @@
@25 HD38800A 1981, Coleco Alien Attack
@27 HD38800A 1981, Bandai Packri Monster
*31 HD38800A 1981, Entex Select-a-Game cartridge: Space Invader 2 (have dump)
+ *37 HD38800A 1981, Entex Select-a-Game cartridge: Baseball 4 (have dump)
+ *38 HD38800A 1981, Entex Select-a-Game cartridge: Pinball (have dump)
*41 HD38800A 1982, Gakken Puck Monster
*51 HD38800A 1981, Actronics(Hanzawa) Twinvader (larger white version)
@70 HD38800A 1982, Coleco Galaxian
@@ -28,12 +30,13 @@
@88 HD38800A 1984, Tomy Tron (THN-02)
@01 HD38800B 1982, Gakken Crazy Kong
- *19 HD38800B 1982, Bandai Zaxxon
+ @19 HD38800B 1982, Bandai Zaxxon
@23 HD38800B 1982, Tomy Kingman (THF-01II)
*24 HD38800B 1982, Actronics(Hanzawa) Wanted G-Man
*29 HD38800B 1984, Tomy Portable 6000 Bombman
*35 HD38800B 1983, Bandai Gundam vs Gelgoog Zaku
@43 HD38800B 1983, Bandai Dokodemo Dorayaki Doraemon (PT-412)
+ @52 HD38800B 1983, Bandai Ultra Man (PT-424)
@09 HD38820A 1980, Mattel World Championship Baseball
@13 HD38820A 1981, Entex Galaxian 2
@@ -47,26 +50,25 @@
@45 HD38820A 1982, Coleco Donkey Kong
@49 HD38820A 1983, Bandai Zackman
@61 HD38820A 1983, Coleco Ms. Pac-Man
- *63 HD38820A 1983, Bandai Pengo
- *65 HD38820A 1983, Bandai Burger Time
+ @63 HD38820A 1983, Bandai Pengo
+ @65 HD38820A 1983, Bandai Burger Time (PT-389)
@69 HD38820A 1983, Gakken Dig Dug
@70 HD38820A 1983, Parker Brothers Q*Bert
@85 HD38820A 1984, Bandai Machine Man (PT-438)
- *88 HD38820A 1984, Bandai Pair Match (1/2)
- *89 HD38820A 1984, Bandai Pair Match (2/2)
+ @88 HD38820A 1984, Bandai Pair Match (PT-460) (1/2)
+ @89 HD38820A 1984, Bandai Pair Match (PT-460) (2/2)
*75 HD44801A 1982, Alpha 8201 protection MCU (have dump)
*35 HD44801B 1983, Alpha 8302 protection MCU (have dump)
*42 HD44801B 1984, Alpha 8303 protection MCU (have dump)
- (* denotes not yet emulated by MESS, @ denotes it's in this driver)
+ (* denotes not yet emulated by MAME, @ denotes it's in this driver)
TODO:
- cdkong discrete sound (simple volume decay, simulated for now)
- cgalaxn discrete sound (alien attacking sound effect)
- - vinvader locks up at boot
- gckong random lockups (tap the jump button repeatedly): mcu stack overflow,
works ok if stack levels is increased, 38800 B rev. has more stack levels?
Or it could be a race condition: irq happening too late/early.
@@ -83,6 +85,9 @@
#include "cpu/cop400/cop400.h"
#include "sound/speaker.h"
+// internal artwork
+#include "pairmtch.lh"
+
#include "hh_hmcs40_test.lh" // common test-layout - use external artwork
@@ -92,6 +97,7 @@ public:
hh_hmcs40_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_inp_matrix(*this, "IN"),
m_speaker(*this, "speaker"),
m_display_wait(33),
@@ -101,6 +107,7 @@ public:
// devices
required_device<cpu_device> m_maincpu;
+ optional_device<cpu_device> m_audiocpu;
optional_ioport_array<7> m_inp_matrix; // max 7
optional_device<speaker_sound_device> m_speaker;
@@ -327,7 +334,7 @@ INPUT_CHANGED_MEMBER(hh_hmcs40_state::single_interrupt_line)
* Hitachi HD38750A08 MCU
* green VFD display Emix-106, with bezel overlay
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -439,7 +446,7 @@ MACHINE_CONFIG_END
* Hitachi HD38750A07 MCU
* cyan VFD display Emix-103, with blue or green color overlay
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -575,7 +582,7 @@ MACHINE_CONFIG_END
* Hitachi HD38800A77 MCU
* cyan/red/green VFD display Futaba DM-43ZK 2E
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -705,7 +712,7 @@ MACHINE_CONFIG_END
- USA/Canada: Hungry Monster, published by Tandy
- other: Gobble Man/Ogre Monster, published by Tandy
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -816,7 +823,7 @@ MACHINE_CONFIG_END
- Japan: ?
- USA: Star Hawk, published by Mattel
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -938,11 +945,133 @@ MACHINE_CONFIG_END
/***************************************************************************
+ Bandai Zaxxon (manufactured in Japan, licensed from Sega)
+ * PCB label FL Zaxxon
+ * Hitachi HD38800B19 MCU
+ * cyan/red/blue VFD display NEC FIP11BM24T no. 4-8, half of it reflected
+ with a one-way mirror to give the illusion of a 3D display
+
+ NOTE!: MAME external artwork is required
+
+***************************************************************************/
+
+class bzaxxon_state : public hh_hmcs40_state
+{
+public:
+ bzaxxon_state(const machine_config &mconfig, device_type type, const char *tag)
+ : hh_hmcs40_state(mconfig, type, tag)
+ { }
+
+ DECLARE_WRITE8_MEMBER(plate_w);
+ DECLARE_WRITE16_MEMBER(grid_w);
+
+ void update_int1();
+ DECLARE_INPUT_CHANGED_MEMBER(input_changed);
+};
+
+// handlers
+
+WRITE8_MEMBER(bzaxxon_state::plate_w)
+{
+ // R0x-R3x(,D0-D2): vfd matrix plate
+ int shift = offset * 4;
+ m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
+
+ // update display
+ UINT16 grid = BITSWAP16(m_grid,15,14,13,12,11,6,7,8,9,10,5,4,3,2,1,0);
+ UINT32 plate = BITSWAP24(m_plate,23,22,21,20,5,7,0,1,2,3,4,6,19,16,17,18,15,14,13,12,10,8,9,11) | 0x800;
+ display_matrix(20, 11, plate, grid);
+}
+
+WRITE16_MEMBER(bzaxxon_state::grid_w)
+{
+ // D4: speaker out
+ m_speaker->level_w(data >> 4 & 1);
+
+ // D7-D10: input mux
+ UINT8 inp_mux = data >> 7 & 0xf;
+ if (inp_mux != m_inp_mux)
+ {
+ m_inp_mux = inp_mux;
+ update_int1();
+ }
+
+ // D5-D15: vfd matrix grid
+ m_grid = data >> 5 & 0x7ff;
+
+ // D0-D2: plate 7-9 (update display there)
+ plate_w(space, 4, data & 7);
+}
+
+void bzaxxon_state::update_int1()
+{
+ // INT1 on multiplexed inputs
+ set_interrupt(1, read_inputs(4));
+}
+
+
+// config
+
+static INPUT_PORTS_START( bzaxxon )
+ PORT_START("IN.0") // D7 INT1
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_MEMBER(DEVICE_SELF, bzaxxon_state, input_changed, NULL)
+
+ PORT_START("IN.1") // D8 INT1
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_MEMBER(DEVICE_SELF, bzaxxon_state, input_changed, NULL)
+
+ PORT_START("IN.2") // D9 INT1
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_MEMBER(DEVICE_SELF, bzaxxon_state, input_changed, NULL)
+
+ PORT_START("IN.3") // D10 INT1
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, bzaxxon_state, input_changed, NULL)
+
+ PORT_START("IN.4") // INT0
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_hmcs40_state, single_interrupt_line, (void *)0)
+
+ PORT_START("IN.5") // port D
+ PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_SELECT )
+ PORT_BIT( 0xfff7, IP_ACTIVE_HIGH, IPT_UNUSED )
+INPUT_PORTS_END
+
+INPUT_CHANGED_MEMBER(bzaxxon_state::input_changed)
+{
+ update_int1();
+}
+
+
+static MACHINE_CONFIG_START( bzaxxon, bzaxxon_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", HD38800, 400000) // approximation
+ MCFG_HMCS40_WRITE_R_CB(0, WRITE8(bzaxxon_state, plate_w))
+ MCFG_HMCS40_WRITE_R_CB(1, WRITE8(bzaxxon_state, plate_w))
+ MCFG_HMCS40_WRITE_R_CB(2, WRITE8(bzaxxon_state, plate_w))
+ MCFG_HMCS40_WRITE_R_CB(3, WRITE8(bzaxxon_state, plate_w))
+ MCFG_HMCS40_WRITE_D_CB(WRITE16(bzaxxon_state, grid_w))
+ MCFG_HMCS40_READ_D_CB(IOPORT("IN.5"))
+
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_hmcs40_state, display_decay_tick, attotime::from_msec(1))
+ MCFG_DEFAULT_LAYOUT(layout_hh_hmcs40_test)
+
+ /* no video! */
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+MACHINE_CONFIG_END
+
+
+
+
+
+/***************************************************************************
+
Bandai Zackman "The Pit, FL Exploration of Space" (manufactured in Japan)
* Hitachi QFP HD38820A49 MCU
* cyan/red/yellow VFD display Futaba DM-53Z 3E, with color overlay
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -1056,12 +1185,264 @@ MACHINE_CONFIG_END
/***************************************************************************
+ Bandai Pengo (manufactured in Japan, licensed from Sega)
+ * PCB label FL Pengo(in katakana)
+ * Hitachi QFP HD38820A63 MCU
+ * cyan/red/blue VFD display Futaba DM-68ZK 3D DM-63
+
+ NOTE!: MAME external artwork is required
+
+***************************************************************************/
+
+class bpengo_state : public hh_hmcs40_state
+{
+public:
+ bpengo_state(const machine_config &mconfig, device_type type, const char *tag)
+ : hh_hmcs40_state(mconfig, type, tag)
+ { }
+
+ void prepare_display();
+ DECLARE_WRITE8_MEMBER(plate_w);
+ DECLARE_WRITE16_MEMBER(grid_w);
+
+ void update_int0();
+ DECLARE_INPUT_CHANGED_MEMBER(input_changed);
+};
+
+// handlers
+
+void bpengo_state::prepare_display()
+{
+ UINT8 grid = BITSWAP8(m_grid,0,1,2,3,4,5,6,7);
+ UINT32 plate = BITSWAP32(m_plate,31,30,29,28,23,22,21,16,17,18,19,20,27,26,25,24,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0);
+ display_matrix(25, 8, plate, grid);
+}
+
+WRITE8_MEMBER(bpengo_state::plate_w)
+{
+ // R0x-R6x: vfd matrix plate
+ int shift = offset * 4;
+ m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
+ prepare_display();
+}
+
+WRITE16_MEMBER(bpengo_state::grid_w)
+{
+ // D10: speaker out
+ m_speaker->level_w(data >> 10 & 1);
+
+ // D12-D15: input mux
+ UINT8 inp_mux = data >> 12 & 0xf;
+ if (inp_mux != m_inp_mux)
+ {
+ m_inp_mux = inp_mux;
+ update_int0();
+ }
+
+ // D0-D7: vfd matrix grid
+ m_grid = data & 0xff;
+ prepare_display();
+}
+
+void bpengo_state::update_int0()
+{
+ // INT0 on multiplexed inputs
+ set_interrupt(0, read_inputs(4));
+}
+
+
+// config
+
+static INPUT_PORTS_START( bpengo )
+ PORT_START("IN.0") // D12 INT0
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_MEMBER(DEVICE_SELF, bpengo_state, input_changed, NULL)
+
+ PORT_START("IN.1") // D13 INT0
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, bpengo_state, input_changed, NULL)
+
+ PORT_START("IN.2") // D14 INT0
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_MEMBER(DEVICE_SELF, bpengo_state, input_changed, NULL)
+
+ PORT_START("IN.3") // D15 INT0
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_MEMBER(DEVICE_SELF, bpengo_state, input_changed, NULL)
+
+ PORT_START("IN.4") // INT1
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_hmcs40_state, single_interrupt_line, (void *)1)
+
+ PORT_START("IN.5") // port D
+ PORT_CONFNAME( 0x0800, 0x0000, "Factory Test" )
+ PORT_CONFSETTING( 0x0000, DEF_STR( Off ) )
+ PORT_CONFSETTING( 0x0800, DEF_STR( On ) )
+ PORT_BIT( 0xf7ff, IP_ACTIVE_HIGH, IPT_UNUSED )
+INPUT_PORTS_END
+
+INPUT_CHANGED_MEMBER(bpengo_state::input_changed)
+{
+ update_int0();
+}
+
+
+static MACHINE_CONFIG_START( bpengo, bpengo_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", HD38820, 400000) // approximation
+ MCFG_HMCS40_WRITE_R_CB(0, WRITE8(bpengo_state, plate_w))
+ MCFG_HMCS40_WRITE_R_CB(1, WRITE8(bpengo_state, plate_w))
+ MCFG_HMCS40_WRITE_R_CB(2, WRITE8(bpengo_state, plate_w))
+ MCFG_HMCS40_WRITE_R_CB(3, WRITE8(bpengo_state, plate_w))
+ MCFG_HMCS40_WRITE_R_CB(4, WRITE8(bpengo_state, plate_w))
+ MCFG_HMCS40_WRITE_R_CB(5, WRITE8(bpengo_state, plate_w))
+ MCFG_HMCS40_WRITE_R_CB(6, WRITE8(bpengo_state, plate_w))
+ MCFG_HMCS40_WRITE_D_CB(WRITE16(bpengo_state, grid_w))
+ MCFG_HMCS40_READ_D_CB(IOPORT("IN.5"))
+
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_hmcs40_state, display_decay_tick, attotime::from_msec(1))
+ MCFG_DEFAULT_LAYOUT(layout_hh_hmcs40_test)
+
+ /* no video! */
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+MACHINE_CONFIG_END
+
+
+
+
+
+/***************************************************************************
+
+ Bandai Burger Time (manufactured in Japan, licensed from Data East)
+ * PCB label Kaken Corp. PT-389 Burger Time
+ * Hitachi QFP HD38820A65 MCU
+ * cyan/red/green VFD display NEC FIP6AM25T no. 21-21
+
+ NOTE!: MAME external artwork is required
+
+***************************************************************************/
+
+class bbtime_state : public hh_hmcs40_state
+{
+public:
+ bbtime_state(const machine_config &mconfig, device_type type, const char *tag)
+ : hh_hmcs40_state(mconfig, type, tag)
+ { }
+
+ void prepare_display();
+ DECLARE_WRITE8_MEMBER(plate_w);
+ DECLARE_WRITE16_MEMBER(grid_w);
+
+ void update_int0();
+ DECLARE_INPUT_CHANGED_MEMBER(input_changed);
+};
+
+// handlers
+
+void bbtime_state::prepare_display()
+{
+ UINT8 grid = BITSWAP8(m_grid,7,6,0,1,2,3,4,5);
+ UINT32 plate = BITSWAP32(m_plate,31,30,29,28,25,24,26,27,22,23,15,14,12,11,10,8,7,6,4,1,5,9,13,3,2,16,17,18,19,20,0,21) | 0x1;
+ display_matrix(28, 6, plate, grid);
+}
+
+WRITE8_MEMBER(bbtime_state::plate_w)
+{
+ // R0x-R6x: vfd matrix plate
+ int shift = offset * 4;
+ m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
+ prepare_display();
+}
+
+WRITE16_MEMBER(bbtime_state::grid_w)
+{
+ // D3: speaker out
+ m_speaker->level_w(data >> 3 & 1);
+
+ // D10-D14: input mux
+ UINT8 inp_mux = data >> 10 & 0x1f;
+ if (inp_mux != m_inp_mux)
+ {
+ m_inp_mux = inp_mux;
+ update_int0();
+ }
+
+ // D4-D9: vfd matrix grid
+ m_grid = data >> 4 & 0x3f;
+ prepare_display();
+}
+
+void bbtime_state::update_int0()
+{
+ // INT0 on multiplexed inputs
+ set_interrupt(0, read_inputs(5));
+}
+
+
+// config
+
+static INPUT_PORTS_START( bbtime )
+ PORT_START("IN.0") // D10 INT0
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_MEMBER(DEVICE_SELF, bbtime_state, input_changed, NULL)
+
+ PORT_START("IN.1") // D11 INT0
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_MEMBER(DEVICE_SELF, bbtime_state, input_changed, NULL)
+
+ PORT_START("IN.2") // D12 INT0
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, bbtime_state, input_changed, NULL)
+
+ PORT_START("IN.3") // D13 INT0
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_MEMBER(DEVICE_SELF, bbtime_state, input_changed, NULL)
+
+ PORT_START("IN.4") // D14 INT0
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, bbtime_state, input_changed, NULL)
+
+ PORT_START("IN.5") // INT1
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_hmcs40_state, single_interrupt_line, (void *)1)
+INPUT_PORTS_END
+
+INPUT_CHANGED_MEMBER(bbtime_state::input_changed)
+{
+ update_int0();
+}
+
+
+static MACHINE_CONFIG_START( bbtime, bbtime_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", HD38820, 400000) // approximation
+ MCFG_HMCS40_WRITE_R_CB(0, WRITE8(bbtime_state, plate_w))
+ MCFG_HMCS40_WRITE_R_CB(1, WRITE8(bbtime_state, plate_w))
+ MCFG_HMCS40_WRITE_R_CB(2, WRITE8(bbtime_state, plate_w))
+ MCFG_HMCS40_WRITE_R_CB(3, WRITE8(bbtime_state, plate_w))
+ MCFG_HMCS40_WRITE_R_CB(4, WRITE8(bbtime_state, plate_w))
+ MCFG_HMCS40_WRITE_R_CB(5, WRITE8(bbtime_state, plate_w))
+ MCFG_HMCS40_WRITE_R_CB(6, WRITE8(bbtime_state, plate_w))
+ MCFG_HMCS40_WRITE_D_CB(WRITE16(bbtime_state, grid_w))
+
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_hmcs40_state, display_decay_tick, attotime::from_msec(1))
+ MCFG_DEFAULT_LAYOUT(layout_hh_hmcs40_test)
+
+ /* no video! */
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+MACHINE_CONFIG_END
+
+
+
+
+
+/***************************************************************************
+
Bandai Dokodemo Dorayaki Doraemon (FL LSI Game Push Up) (manufactured in Japan)
* PCB label Kaken Corp PT-412 FL-Doreamon(in katakana)
* Hitachi HD38800B43 MCU
* cyan/red/blue VFD display Futaba DM-71
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -1154,12 +1535,102 @@ MACHINE_CONFIG_END
/***************************************************************************
+ Bandai Ultra Man (FL LSI Game Push Up) (manufactured in Japan)
+ * PCB label Kaken Corp. PT-424 FL Ultra Man
+ * Hitachi HD38800B52 MCU
+ * cyan/red/blue VFD display NEC FIP8BM25T no. 21-8 2
+
+ NOTE!: MAME external artwork is required
+
+***************************************************************************/
+
+class bultrman_state : public hh_hmcs40_state
+{
+public:
+ bultrman_state(const machine_config &mconfig, device_type type, const char *tag)
+ : hh_hmcs40_state(mconfig, type, tag)
+ { }
+
+ DECLARE_WRITE8_MEMBER(plate_w);
+ DECLARE_WRITE16_MEMBER(grid_w);
+};
+
+// handlers
+
+WRITE8_MEMBER(bultrman_state::plate_w)
+{
+ // R0x-R3x(,D0-D2): vfd matrix plate
+ int shift = offset * 4;
+ m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
+
+ // update display
+ UINT8 grid = BITSWAP8(m_grid,0,1,2,3,4,5,6,7);
+ UINT32 plate = BITSWAP24(m_plate,23,22,21,20,19,18,17,16,15,14,13,12,11,2,10,9,8,7,6,5,4,3,0,1);
+ display_matrix(18, 8, plate, grid);
+}
+
+WRITE16_MEMBER(bultrman_state::grid_w)
+{
+ // D7: speaker out
+ m_speaker->level_w(data >> 7 & 1);
+
+ // D8-D15: vfd matrix grid
+ m_grid = data >> 8 & 0xff;
+
+ // D0-D2: plate 15-17 (update display there)
+ plate_w(space, 4, data & 7);
+}
+
+
+// config
+
+static INPUT_PORTS_START( bultrman )
+ PORT_START("IN.0") // INT0
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_hmcs40_state, single_interrupt_line, (void *)0)
+
+ PORT_START("IN.1") // port D
+ PORT_CONFNAME( 0x0010, 0x0000, "Factory Test" )
+ PORT_CONFSETTING( 0x0000, DEF_STR( Off ) )
+ PORT_CONFSETTING( 0x0010, DEF_STR( On ) )
+ PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT )
+ PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT )
+ PORT_BIT( 0xff8f, IP_ACTIVE_HIGH, IPT_UNUSED )
+INPUT_PORTS_END
+
+static MACHINE_CONFIG_START( bultrman, bultrman_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", HD38800, 400000) // approximation
+ MCFG_HMCS40_WRITE_R_CB(0, WRITE8(bultrman_state, plate_w))
+ MCFG_HMCS40_WRITE_R_CB(1, WRITE8(bultrman_state, plate_w))
+ MCFG_HMCS40_WRITE_R_CB(2, WRITE8(bultrman_state, plate_w))
+ MCFG_HMCS40_WRITE_R_CB(3, WRITE8(bultrman_state, plate_w))
+ MCFG_HMCS40_WRITE_D_CB(WRITE16(bultrman_state, grid_w))
+ MCFG_HMCS40_READ_D_CB(IOPORT("IN.1"))
+
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_hmcs40_state, display_decay_tick, attotime::from_msec(1))
+ MCFG_DEFAULT_LAYOUT(layout_hh_hmcs40_test)
+
+ /* no video! */
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+MACHINE_CONFIG_END
+
+
+
+
+
+/***************************************************************************
+
Bandai Machine Man (FL Flat Type) (manufactured in Japan)
* PCB label Kaken PT-438
* Hitachi QFP HD38820A85 MCU
* cyan/red/green VFD display NEC FIP5CM33T no. 4 21
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -1243,6 +1714,161 @@ MACHINE_CONFIG_END
/***************************************************************************
+ Bandai Pair Match (manufactured in Japan)
+ * PCB label Kaken Corp. PT-460
+ * Hitachi QFP HD38820A88 MCU(main), HD38820A89(audio)
+ * cyan/red VFD display
+
+ This is a memory game, the difference is instead of pictures, the player
+ needs to match sound effects. It has an extra MCU for sound. The case is
+ shaped like a glossy black pyramid. Star Trek fans will recognize it as
+ a prop used in TNG Ten Forward.
+
+ note: MAME external artwork is not needed for this game
+
+***************************************************************************/
+
+class pairmtch_state : public hh_hmcs40_state
+{
+public:
+ pairmtch_state(const machine_config &mconfig, device_type type, const char *tag)
+ : hh_hmcs40_state(mconfig, type, tag)
+ { }
+
+ DECLARE_WRITE8_MEMBER(plate_w);
+ DECLARE_WRITE16_MEMBER(grid_w);
+ DECLARE_READ8_MEMBER(input_r);
+
+ DECLARE_WRITE8_MEMBER(sound_w);
+ DECLARE_WRITE8_MEMBER(sound2_w);
+ DECLARE_WRITE16_MEMBER(speaker_w);
+};
+
+// handlers: maincpu side
+
+WRITE8_MEMBER(pairmtch_state::plate_w)
+{
+ // R2x,R3x,R6x: vfd matrix plate
+ int shift = (offset == HMCS40_PORT_R6X) ? 8 : (offset-2) * 4;
+ m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
+ display_matrix(12, 6, m_plate, m_grid);
+}
+
+WRITE16_MEMBER(pairmtch_state::grid_w)
+{
+ // D7: sound reset (to audiocpu reset line)
+ m_audiocpu->set_input_line(INPUT_LINE_RESET, (data & 0x80) ? ASSERT_LINE : CLEAR_LINE);
+
+ // D9: sound start (to audiocpu INT0)
+ m_audiocpu->set_input_line(0, (data & 0x200) ? ASSERT_LINE : CLEAR_LINE);
+
+ // D10,D15: input mux
+ m_inp_mux = (data >> 10 & 1) | (data >> 14 & 2);
+
+ // D0-D5: vfd matrix grid
+ m_grid = data & 0x3f;
+ display_matrix(12, 6, m_plate, m_grid);
+}
+
+READ8_MEMBER(pairmtch_state::input_r)
+{
+ // R4x: multiplexed inputs
+ return read_inputs(2);
+}
+
+WRITE8_MEMBER(pairmtch_state::sound_w)
+{
+ // R5x: soundlatch (to audiocpu R2x)
+ soundlatch_byte_w(space, 0, BITSWAP8(data,7,6,5,4,0,1,2,3));
+}
+
+
+// handlers: audiocpu side
+
+WRITE8_MEMBER(pairmtch_state::sound2_w)
+{
+ // R2x: soundlatch (to maincpu R5x)
+ soundlatch2_byte_w(space, 0, BITSWAP8(data,7,6,5,4,0,1,2,3));
+}
+
+WRITE16_MEMBER(pairmtch_state::speaker_w)
+{
+ // D0: speaker out
+ m_speaker->level_w(data & 1);
+
+ // D1: sound ack (to maincpu INT0)
+ m_maincpu->set_input_line(0, (data & 2) ? ASSERT_LINE : CLEAR_LINE);
+}
+
+
+// config
+
+static INPUT_PORTS_START( pairmtch )
+ PORT_START("IN.0") // D10 port R4x
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_COCKTAIL PORT_16WAY
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_COCKTAIL PORT_16WAY
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_COCKTAIL PORT_16WAY
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_COCKTAIL PORT_16WAY
+
+ PORT_START("IN.1") // D15 port R4x
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_16WAY
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_16WAY
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_16WAY
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_16WAY
+
+ PORT_START("IN.2") // port D
+ PORT_CONFNAME( 0x0040, 0x0000, "Factory Test" )
+ PORT_CONFSETTING( 0x0000, DEF_STR( Off ) )
+ PORT_CONFSETTING( 0x0040, DEF_STR( On ) )
+ PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL
+ PORT_CONFNAME( 0x0800, 0x0800, "Players" )
+ PORT_CONFSETTING( 0x0800, "1" )
+ PORT_CONFSETTING( 0x0000, "2" )
+ PORT_CONFNAME( 0x3000, 0x2000, "Skill Level" )
+ PORT_CONFSETTING( 0x2000, "1" )
+ PORT_CONFSETTING( 0x1000, "2" )
+ PORT_CONFSETTING( 0x0000, "3" )
+ PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_BUTTON1 )
+ PORT_BIT( 0x86bf, IP_ACTIVE_HIGH, IPT_UNUSED )
+INPUT_PORTS_END
+
+static MACHINE_CONFIG_START( pairmtch, pairmtch_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", HD38820, 400000) // approximation
+ MCFG_HMCS40_WRITE_R_CB(2, WRITE8(pairmtch_state, plate_w))
+ MCFG_HMCS40_WRITE_R_CB(3, WRITE8(pairmtch_state, plate_w))
+ MCFG_HMCS40_READ_R_CB(4, READ8(pairmtch_state, input_r))
+ MCFG_HMCS40_WRITE_R_CB(5, WRITE8(pairmtch_state, sound_w))
+ MCFG_HMCS40_READ_R_CB(5, READ8(driver_device, soundlatch2_byte_r))
+ MCFG_HMCS40_WRITE_R_CB(6, WRITE8(pairmtch_state, plate_w))
+ MCFG_HMCS40_WRITE_D_CB(WRITE16(pairmtch_state, grid_w))
+ MCFG_HMCS40_READ_D_CB(IOPORT("IN.2"))
+
+ MCFG_CPU_ADD("audiocpu", HD38820, 400000) // approximation
+ MCFG_HMCS40_WRITE_R_CB(2, WRITE8(pairmtch_state, sound2_w))
+ MCFG_HMCS40_READ_R_CB(2, READ8(driver_device, soundlatch_byte_r))
+ MCFG_HMCS40_WRITE_D_CB(WRITE16(pairmtch_state, speaker_w))
+
+ MCFG_QUANTUM_PERFECT_CPU("maincpu")
+
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_hmcs40_state, display_decay_tick, attotime::from_msec(1))
+ MCFG_DEFAULT_LAYOUT(layout_pairmtch)
+
+ /* no video! */
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+MACHINE_CONFIG_END
+
+
+
+
+
+/***************************************************************************
+
Coleco Alien Attack (manufactured in Taiwan)
* Hitachi HD38800A25 MCU
* cyan/red VFD display Futaba DM-19Z 1J
@@ -1250,7 +1876,7 @@ MACHINE_CONFIG_END
It looks like Coleco took Gakken's Heiankyo Alien and turned it into a more
action-oriented game.
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -1356,12 +1982,12 @@ MACHINE_CONFIG_END
/***************************************************************************
- Coleco Donkey Kong (manufactured in Taiwan)
+ Coleco Donkey Kong (manufactured in Taiwan, licensed from Nintendo)
* PCB label Coleco Rev C 75790 DK
* Hitachi QFP HD38820A45 MCU
* cyan/red VFD display Futaba DM-47ZK 2K, with color overlay
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -1401,7 +2027,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(cdkong_state::speaker_decay_sim)
void cdkong_state::prepare_display()
{
- UINT32 plate = BITSWAP32(m_plate,31,30,29,24,0,16,8,1,23,17,9,2,18,10,25,27,26,3,15,27,11,11,14,22,6,13,21,5,19,12,20,4);
+ UINT32 plate = BITSWAP32(m_plate,31,30,29,24,0,16,8,1,23,17,9,2,18,10,25,27,26,3,15,27,11,11,14,22,6,13,21,5,19,12,20,4) | 0x800800;
display_matrix(29, 11, plate, m_grid);
}
@@ -1495,7 +2121,7 @@ MACHINE_CONFIG_END
- P2 Left: Head-to-Head Galaxian (2-player mode, short)
- P2 Right: Head-to-Head Galaxian (2-player mode, long)
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -1611,7 +2237,7 @@ MACHINE_CONFIG_END
/***************************************************************************
- Coleco Pac-Man (manufactured in Taiwan)
+ Coleco Pac-Man (manufactured in Taiwan, licensed from Midway)
* PCB label Coleco 75690
* Hitachi QFP HD38820A28/29 MCU
* cyan/red VFD display Futaba DM-34Z 2A, with color overlay
@@ -1628,7 +2254,7 @@ MACHINE_CONFIG_END
BTANB note: 1st version doesn't show the whole maze on power-on
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -1732,7 +2358,7 @@ MACHINE_CONFIG_END
/***************************************************************************
- Coleco Ms. Pac-Man (manufactured in Taiwan)
+ Coleco Ms. Pac-Man (manufactured in Taiwan, licensed from Midway)
* PCB label Coleco 911171
* Hitachi QFP HD38820A61 MCU
* cyan/red VFD display Futaba DM-60Z 3I, with color overlay
@@ -1744,7 +2370,7 @@ MACHINE_CONFIG_END
BTANB note: in demo-mode, she hardly ever walks to the upper two rows
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -1770,7 +2396,7 @@ WRITE8_MEMBER(cmspacmn_state::plate_w)
// update display
UINT16 grid = BITSWAP16(m_grid,15,14,13,11,10,9,8,7,6,5,4,3,2,1,0,1);
- UINT64 plate = BIT(m_plate,15)<<32 | BITSWAP32(m_plate,14,13,12,4,5,6,7,24,23,25,22,21,20,13,24,3,19,14,12,11,24,2,10,8,7,25,0,9,1,18,17,16);
+ UINT64 plate = BIT(m_plate,15)<<32 | BITSWAP32(m_plate,14,13,12,4,5,6,7,24,23,25,22,21,20,13,24,3,19,14,12,11,24,2,10,8,7,25,0,9,1,18,17,16) | 0x1004080;
display_matrix(33, 12, plate, grid);
}
@@ -1853,7 +2479,7 @@ MACHINE_CONFIG_END
* Hitachi QFP HD38820A13 MCU
* cyan/red/green VFD display Futaba DM-20
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -1977,7 +2603,7 @@ MACHINE_CONFIG_END
2 VFD revisions are known, the difference is Pac-Man's color: cyan or red.
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
#if 0
@@ -2035,7 +2661,7 @@ INPUT_PORTS_END
* COP411L sub MCU, labeled COP411L-KED/N
* cyan/red/green VFD display NEC FIP15BM32T
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -2064,7 +2690,7 @@ protected:
virtual void machine_start();
};
-// handlers (maincpu side first)
+// handlers: maincpu side
void eturtles_state::prepare_display()
{
@@ -2109,7 +2735,7 @@ void eturtles_state::update_int()
}
-// COP side
+// handlers: COP side
WRITE_LINE_MEMBER(eturtles_state::speaker_w)
{
@@ -2228,7 +2854,7 @@ MACHINE_CONFIG_END
* COP411L sub MCU, labeled ~/B8236 COP411L-KEC/N
* cyan/red/green VFD display NEC FIP15AM32T (EL628-003) no. 2-421, with partial color overlay
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -2243,7 +2869,7 @@ public:
DECLARE_READ8_MEMBER(cop_data_r);
};
-// handlers (most of it is handled in eturtles_state above)
+// handlers (most of it is in eturtles_state above)
void estargte_state::prepare_display()
{
@@ -2338,7 +2964,7 @@ MACHINE_CONFIG_END
- Japan: Heiankyo Alien
- USA: Earth Invaders, published by CGL
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -2454,7 +3080,7 @@ MACHINE_CONFIG_END
- Japan: Crazy Kong
- USA: Super Kong, published by CGL
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -2482,7 +3108,7 @@ WRITE8_MEMBER(gckong_state::plate_w)
// update display
UINT16 grid = BITSWAP16(m_grid,15,14,13,12,11,0,1,2,3,4,5,6,7,8,9,10);
- UINT32 plate = BITSWAP32(m_plate,31,30,29,28,27,26,25,6,7,8,12,13,14,15,16,17,18,17,16,12,11,10,9,8,7,6,5,4,3,2,1,0);
+ UINT32 plate = BITSWAP32(m_plate,31,30,29,28,27,26,25,6,7,8,12,13,14,15,16,17,18,17,16,12,11,10,9,8,7,6,5,4,3,2,1,0) | 0x8000;
display_matrix(32, 11, plate, grid);
}
@@ -2577,7 +3203,7 @@ MACHINE_CONFIG_END
* Hitachi QFP HD38820A69 MCU
* cyan/red/green VFD display Futaba DM-69Z 3F, with color overlay
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -2702,7 +3328,7 @@ MACHINE_CONFIG_END
turn the game on while holding the 1-key and use the visitor's side keypad
to play offsense.
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -2860,7 +3486,7 @@ MACHINE_CONFIG_END
* Hitachi QFP HD38820A70 MCU
* cyan/red/green/darkgreen VFD display Itron CP5137
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -2884,7 +3510,7 @@ WRITE8_MEMBER(pbqbert_state::plate_w)
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
// update display
- UINT32 plate = BITSWAP32(m_plate,31,30,24,25,26,27,28,15,14,29,13,12,11,10,9,8,7,6,5,4,3,2,1,0,16,17,18,19,20,21,22,23);
+ UINT32 plate = BITSWAP32(m_plate,31,30,24,25,26,27,28,15,14,29,13,12,11,10,9,8,7,6,5,4,3,2,1,0,16,17,18,19,20,21,22,23) | 0x400000;
display_matrix(30, 8, plate, m_grid);
}
@@ -2948,7 +3574,7 @@ MACHINE_CONFIG_END
* Hitachi HD38800B23 MCU
* cyan/red/blue VFD display Futaba DM-65ZK 3A
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -3069,7 +3695,7 @@ MACHINE_CONFIG_END
* Hitachi HD38800A88 MCU
* cyan/red/green VFD display NEC FIP10AM24T no. 2-8 1
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -3194,7 +3820,7 @@ MACHINE_CONFIG_END
- UK: Cosmic Invader, published by Grandstand
- UK: Galactic Invaders, published by Prinztronic
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -3318,6 +3944,13 @@ ROM_START( msthawk )
ROM_END
+ROM_START( bzaxxon )
+ ROM_REGION( 0x2000, "maincpu", ROMREGION_ERASE00 )
+ ROM_LOAD( "hd38800b19", 0x0000, 0x1000, CRC(4fecb80d) SHA1(7adf079480ffd3825ad5ae1eaa4d892eecbcc42d) )
+ ROM_CONTINUE( 0x1e80, 0x0100 )
+ROM_END
+
+
ROM_START( zackman )
ROM_REGION( 0x2000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "hd38820a49", 0x0000, 0x1000, CRC(b97f5ef6) SHA1(7fe20e8107361caf9ea657e504be1f8b10b8b03f) )
@@ -3325,6 +3958,20 @@ ROM_START( zackman )
ROM_END
+ROM_START( bpengo )
+ ROM_REGION( 0x2000, "maincpu", ROMREGION_ERASE00 )
+ ROM_LOAD( "hd38820a63", 0x0000, 0x1000, CRC(ebd6bc64) SHA1(0a322c47b9553a2739a85908ce64b9650cf93d49) )
+ ROM_CONTINUE( 0x1e80, 0x0100 )
+ROM_END
+
+
+ROM_START( bbtime )
+ ROM_REGION( 0x2000, "maincpu", ROMREGION_ERASE00 )
+ ROM_LOAD( "hd38820a65", 0x0000, 0x1000, CRC(33611faf) SHA1(29b6a30ed543688d31ec2aa18f7938fa4eef30b0) )
+ ROM_CONTINUE( 0x1e80, 0x0100 )
+ROM_END
+
+
ROM_START( bdoramon )
ROM_REGION( 0x2000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "hd38800b43", 0x0000, 0x1000, CRC(9387ca42) SHA1(8937e208934b34bd9f49700aa50287dfc8bda76c) )
@@ -3332,6 +3979,13 @@ ROM_START( bdoramon )
ROM_END
+ROM_START( bultrman )
+ ROM_REGION( 0x2000, "maincpu", ROMREGION_ERASE00 )
+ ROM_LOAD( "hd38800b52", 0x0000, 0x1000, CRC(88d372dc) SHA1(f2ac3b89be8afe6fb65914ccebe1a56316b9472a) )
+ ROM_CONTINUE( 0x1e80, 0x0100 )
+ROM_END
+
+
ROM_START( machiman )
ROM_REGION( 0x2000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "hd38820a85", 0x0000, 0x1000, CRC(894b4954) SHA1(cab49638a326b031aa548301beb16f818759ef62) )
@@ -3339,6 +3993,17 @@ ROM_START( machiman )
ROM_END
+ROM_START( pairmtch )
+ ROM_REGION( 0x2000, "maincpu", ROMREGION_ERASE00 )
+ ROM_LOAD( "hd38820a88", 0x0000, 0x1000, CRC(ffa35730) SHA1(5a80b9025aaad2ac0ab0b1436a1355ae8cd3f868) )
+ ROM_CONTINUE( 0x1e80, 0x0100 )
+
+ ROM_REGION( 0x2000, "audiocpu", ROMREGION_ERASE00 )
+ ROM_LOAD( "hd38820a89", 0x0000, 0x1000, CRC(3533ec56) SHA1(556d69e78a0ee1bf766fce16ed58992d7272d57f) )
+ ROM_CONTINUE( 0x1e80, 0x0100 )
+ROM_END
+
+
ROM_START( alnattck )
ROM_REGION( 0x2000, "maincpu", ROMREGION_ERASE00 )
ROM_LOAD( "hd38800a25", 0x0000, 0x1000, CRC(18b50869) SHA1(11e9d5f7b4ae818b077b0ee14a3b43190e20bff3) )
@@ -3465,44 +4130,49 @@ ROM_END
ROM_START( vinvader )
ROM_REGION( 0x1000, "maincpu", ROMREGION_ERASE00 )
- ROM_LOAD( "hd38750a45", 0x0000, 0x0800, CRC(e02d94d9) SHA1(d4679abbb9c6778e5e853aa6c2b90dee1d21c9dd) )
+ ROM_LOAD( "hd38750a45", 0x0000, 0x0800, CRC(32de6056) SHA1(70238c6c40c3d513f8eced1cb81bdd4dbe12f16c) )
ROM_CONTINUE( 0x0f00, 0x0080 )
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", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
-CONS( 1979, bmboxing, 0, 0, bmboxing, bmboxing, driver_device, 0, "Bambino", "Knock-Em Out Boxing", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
-
-CONS( 1982, bfriskyt, 0, 0, bfriskyt, bfriskyt, driver_device, 0, "Bandai", "Frisky Tom (Bandai)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
-CONS( 1981, packmon, 0, 0, packmon, packmon, driver_device, 0, "Bandai", "Packri Monster", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
-CONS( 1982, msthawk, 0, 0, msthawk, msthawk, driver_device, 0, "Bandai (Mattel license)", "Star Hawk (Mattel)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
-CONS( 1983, zackman, 0, 0, zackman, zackman, driver_device, 0, "Bandai", "Zackman", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
-CONS( 1983, bdoramon, 0, 0, bdoramon, bdoramon, driver_device, 0, "Bandai", "Dokodemo Dorayaki Doraemon", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
-CONS( 1984, machiman, 0, 0, machiman, machiman, driver_device, 0, "Bandai", "Machine Man", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
-
-CONS( 1981, alnattck, 0, 0, alnattck, alnattck, driver_device, 0, "Coleco", "Alien Attack", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
-CONS( 1982, cdkong, 0, 0, cdkong, cdkong, driver_device, 0, "Coleco", "Donkey Kong (Coleco)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | GAME_IMPERFECT_SOUND )
-CONS( 1982, cgalaxn, 0, 0, cgalaxn, cgalaxn, driver_device, 0, "Coleco", "Galaxian (Coleco)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | GAME_IMPERFECT_SOUND )
-CONS( 1981, cpacman, 0, 0, cpacman, cpacman, driver_device, 0, "Coleco", "Pac-Man (Coleco, Rev. 29)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
-CONS( 1981, cpacmanr1, cpacman, 0, cpacman, cpacman, driver_device, 0, "Coleco", "Pac-Man (Coleco, Rev. 28)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
-CONS( 1983, cmspacmn, 0, 0, cmspacmn, cmspacmn, driver_device, 0, "Coleco", "Ms. Pac-Man (Coleco)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
-
-CONS( 1981, egalaxn2, 0, 0, egalaxn2, egalaxn2, driver_device, 0, "Entex", "Galaxian 2 (Entex)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
-CONS( 1981, epacman2, 0, 0, egalaxn2, epacman2, driver_device, 0, "Entex", "Pac Man 2 (Entex)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
-CONS( 1982, estargte, 0, 0, estargte, estargte, driver_device, 0, "Entex", "Stargate (Entex)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
-CONS( 1982, eturtles, 0, 0, eturtles, eturtles, driver_device, 0, "Entex", "Turtles (Entex)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
-
-CONS( 1980, ghalien, 0, 0, ghalien, ghalien, driver_device, 0, "Gakken", "Heiankyo Alien (Gakken)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
-CONS( 1982, gckong, 0, 0, gckong, gckong, driver_device, 0, "Gakken", "Crazy Kong (Gakken)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | GAME_NOT_WORKING )
-CONS( 1983, gdigdug, 0, 0, gdigdug, gdigdug, driver_device, 0, "Gakken", "Dig Dug (Gakken)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
-
-CONS( 1980, mwcbaseb, 0, 0, mwcbaseb, mwcbaseb, driver_device, 0, "Mattel", "World Championship Baseball", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
-
-CONS( 1983, pbqbert, 0, 0, pbqbert, pbqbert, driver_device, 0, "Parker Brothers", "Q*Bert (Parker Brothers)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
-
-CONS( 1982, kingman, 0, 0, kingman, kingman, driver_device, 0, "Tomy", "Kingman", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
-CONS( 1984, tmtron, 0, 0, tmtron, tmtron, driver_device, 0, "Tomy", "Tron (Tomy)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
-
-CONS( 1981, vinvader, 0, 0, vinvader, vinvader, driver_device, 0, "VTech", "Invaders (VTech)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | GAME_NOT_WORKING )
+CONS( 1979, bambball, 0, 0, bambball, bambball, driver_device, 0, "Bambino", "Dribble Away Basketball", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+CONS( 1979, bmboxing, 0, 0, bmboxing, bmboxing, driver_device, 0, "Bambino", "Knock-Em Out Boxing", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+
+CONS( 1982, bfriskyt, 0, 0, bfriskyt, bfriskyt, driver_device, 0, "Bandai", "Frisky Tom (Bandai)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+CONS( 1981, packmon, 0, 0, packmon, packmon, driver_device, 0, "Bandai", "Packri Monster", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+CONS( 1982, msthawk, 0, 0, msthawk, msthawk, driver_device, 0, "Bandai (Mattel license)", "Star Hawk (Mattel)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+CONS( 1982, bzaxxon, 0, 0, bzaxxon, bzaxxon, driver_device, 0, "Bandai", "Zaxxon (Bandai)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK | MACHINE_NOT_WORKING )
+CONS( 1983, zackman, 0, 0, zackman, zackman, driver_device, 0, "Bandai", "Zackman", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+CONS( 1983, bpengo, 0, 0, bpengo, bpengo, driver_device, 0, "Bandai", "Pengo (Bandai)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK | MACHINE_NOT_WORKING )
+CONS( 1983, bbtime, 0, 0, bbtime, bbtime, driver_device, 0, "Bandai", "Burger Time (Bandai)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK | MACHINE_NOT_WORKING )
+CONS( 1983, bdoramon, 0, 0, bdoramon, bdoramon, driver_device, 0, "Bandai", "Dokodemo Dorayaki Doraemon", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+CONS( 1983, bultrman, 0, 0, bultrman, bultrman, driver_device, 0, "Bandai", "Ultra Man (Bandai)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK | MACHINE_NOT_WORKING )
+CONS( 1984, machiman, 0, 0, machiman, machiman, driver_device, 0, "Bandai", "Machine Man", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+CONS( 1984, pairmtch, 0, 0, pairmtch, pairmtch, driver_device, 0, "Bandai", "Pair Match", MACHINE_SUPPORTS_SAVE )
+
+CONS( 1981, alnattck, 0, 0, alnattck, alnattck, driver_device, 0, "Coleco", "Alien Attack", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+CONS( 1982, cdkong, 0, 0, cdkong, cdkong, driver_device, 0, "Coleco", "Donkey Kong (Coleco)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK | MACHINE_IMPERFECT_SOUND )
+CONS( 1982, cgalaxn, 0, 0, cgalaxn, cgalaxn, driver_device, 0, "Coleco", "Galaxian (Coleco)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK | MACHINE_IMPERFECT_SOUND )
+CONS( 1981, cpacman, 0, 0, cpacman, cpacman, driver_device, 0, "Coleco", "Pac-Man (Coleco, Rev. 29)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+CONS( 1981, cpacmanr1, cpacman, 0, cpacman, cpacman, driver_device, 0, "Coleco", "Pac-Man (Coleco, Rev. 28)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+CONS( 1983, cmspacmn, 0, 0, cmspacmn, cmspacmn, driver_device, 0, "Coleco", "Ms. Pac-Man (Coleco)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+
+CONS( 1981, egalaxn2, 0, 0, egalaxn2, egalaxn2, driver_device, 0, "Entex", "Galaxian 2 (Entex)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+CONS( 1981, epacman2, 0, 0, egalaxn2, epacman2, driver_device, 0, "Entex", "Pac Man 2 (Entex)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+CONS( 1982, estargte, 0, 0, estargte, estargte, driver_device, 0, "Entex", "Stargate (Entex)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+CONS( 1982, eturtles, 0, 0, eturtles, eturtles, driver_device, 0, "Entex", "Turtles (Entex)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+
+CONS( 1980, ghalien, 0, 0, ghalien, ghalien, driver_device, 0, "Gakken", "Heiankyo Alien (Gakken)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+CONS( 1982, gckong, 0, 0, gckong, gckong, driver_device, 0, "Gakken", "Crazy Kong (Gakken)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK | MACHINE_NOT_WORKING )
+CONS( 1983, gdigdug, 0, 0, gdigdug, gdigdug, driver_device, 0, "Gakken", "Dig Dug (Gakken)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+
+CONS( 1980, mwcbaseb, 0, 0, mwcbaseb, mwcbaseb, driver_device, 0, "Mattel", "World Championship Baseball", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+
+CONS( 1983, pbqbert, 0, 0, pbqbert, pbqbert, driver_device, 0, "Parker Brothers", "Q*Bert (Parker Brothers)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+
+CONS( 1982, kingman, 0, 0, kingman, kingman, driver_device, 0, "Tomy", "Kingman", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+CONS( 1984, tmtron, 0, 0, tmtron, tmtron, driver_device, 0, "Tomy", "Tron (Tomy)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+
+CONS( 1981, vinvader, 0, 0, vinvader, vinvader, driver_device, 0, "VTech", "Invaders (VTech)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
diff --git a/src/mess/drivers/hh_melps4.c b/src/mame/drivers/hh_melps4.c
index 2fc3291e383..92e4bd09228 100644
--- a/src/mess/drivers/hh_melps4.c
+++ b/src/mame/drivers/hh_melps4.c
@@ -36,6 +36,7 @@ public:
UINT16 m_inp_mux; // multiplexed inputs mask
UINT8 read_inputs(int columns);
+ DECLARE_INPUT_CHANGED_MEMBER(reset_button);
// display common
int m_display_wait; // led/lamp off-delay in microseconds (default 33ms)
@@ -188,6 +189,8 @@ void hh_melps4_state::display_matrix(int maxx, int maxy, UINT32 setx, UINT32 set
}
+// generic input handlers
+
UINT8 hh_melps4_state::read_inputs(int columns)
{
UINT8 ret = 0;
@@ -200,6 +203,12 @@ UINT8 hh_melps4_state::read_inputs(int columns)
return ret;
}
+INPUT_CHANGED_MEMBER(hh_melps4_state::reset_button)
+{
+ // for when reset button is directly tied to MCU reset pin
+ m_maincpu->set_input_line(INPUT_LINE_RESET, newval ? ASSERT_LINE : CLEAR_LINE);
+}
+
/***************************************************************************
@@ -210,12 +219,12 @@ UINT8 hh_melps4_state::read_inputs(int columns)
/***************************************************************************
- Coleco Frogger (manufactured in Japan)
+ Coleco Frogger (manufactured in Japan, licensed from Sega)
* PCB label Coleco Frogger Code No. 01-81543, KS-003282 Japan
* Mitsubishi M58846-701P MCU
* cyan/red/green VFD display Itron CP5090GLR R1B, with partial color overlay
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -231,8 +240,6 @@ public:
DECLARE_WRITE16_MEMBER(grid_w);
DECLARE_WRITE_LINE_MEMBER(speaker_w);
DECLARE_READ16_MEMBER(input_r);
-
- DECLARE_INPUT_CHANGED_MEMBER(reset_button);
};
// handlers
@@ -246,14 +253,15 @@ void cfrogger_state::prepare_display()
WRITE8_MEMBER(cfrogger_state::plate_w)
{
+ // F0,F1: input mux
+ if (offset == MELPS4_PORTF)
+ m_inp_mux = data & 3;
+
// Sx,Fx,Gx: vfd matrix plate
int mask = (offset == MELPS4_PORTS) ? 0xff : 0xf; // port S is 8-bit
int shift = (offset == MELPS4_PORTS) ? 0 : (offset + 1) * 4;
m_plate = (m_plate & ~(mask << shift)) | (data << shift);
prepare_display();
-
- // F0,F1: input mux
- m_inp_mux = m_plate >> 8 & 3;
}
WRITE16_MEMBER(cfrogger_state::grid_w)
@@ -281,11 +289,11 @@ READ16_MEMBER(cfrogger_state::input_r)
// config
static INPUT_PORTS_START( cfrogger )
- PORT_START("IN.0") // F0 port K
+ PORT_START("IN.0") // F0 port K0,K1
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT )
- PORT_START("IN.1") // F1 port K
+ PORT_START("IN.1") // F1 port K0,K1
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN )
@@ -295,16 +303,9 @@ static INPUT_PORTS_START( cfrogger )
PORT_CONFSETTING( 0x08, "2" )
PORT_START("IN.3") // fake
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_MEMBER(DEVICE_SELF, cfrogger_state, reset_button, NULL)
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_melps4_state, reset_button, NULL)
INPUT_PORTS_END
-INPUT_CHANGED_MEMBER(cfrogger_state::reset_button)
-{
- // reset button is directly tied to MCU reset pin
- m_maincpu->set_input_line(INPUT_LINE_RESET, newval ? ASSERT_LINE : CLEAR_LINE);
-}
-
-
static MACHINE_CONFIG_START( cfrogger, cfrogger_state )
/* basic machine hardware */
@@ -333,6 +334,122 @@ MACHINE_CONFIG_END
/***************************************************************************
+ Gakken Jungler (manufactured in Japan, licensed from Konami)
+ * PCB label Konami Gakken GR503
+ * Mitsubishi M58846-702P MCU
+ * cyan/red/green VFD display Itron CP5143GLR SGA, with light-yellow color overlay
+
+ NOTE!: MAME external artwork is required
+
+***************************************************************************/
+
+class gjungler_state : public hh_melps4_state
+{
+public:
+ gjungler_state(const machine_config &mconfig, device_type type, const char *tag)
+ : hh_melps4_state(mconfig, type, tag)
+ { }
+
+ void prepare_display();
+ DECLARE_WRITE8_MEMBER(plate_w);
+ DECLARE_WRITE16_MEMBER(grid_w);
+ DECLARE_WRITE_LINE_MEMBER(speaker_w);
+ DECLARE_READ16_MEMBER(input_r);
+};
+
+// handlers
+
+void gjungler_state::prepare_display()
+{
+ UINT16 grid = BITSWAP16(m_grid,15,14,13,12,11,10,9,8,7,6,5,4,3,2,0,1);
+ UINT32 plate = BITSWAP24(m_plate,23,22,21,20,19,18,8,9,10,11,17,16,15,14,13,12,0,7,1,6,2,5,3,4) | 0x2000;
+ display_matrix(18, 12, plate, grid);
+}
+
+WRITE8_MEMBER(gjungler_state::plate_w)
+{
+ // G0,G1: input mux
+ if (offset == MELPS4_PORTG)
+ m_inp_mux = data & 3;
+
+ // Sx,Fx,Gx,U: vfd matrix plate
+ int mask = (offset == MELPS4_PORTS) ? 0xff : 0xf; // port S is 8-bit
+ int shift = (offset == MELPS4_PORTS) ? 0 : (offset + 1) * 4;
+ m_plate = (m_plate & ~(mask << shift)) | (data << shift);
+ prepare_display();
+}
+
+WRITE16_MEMBER(gjungler_state::grid_w)
+{
+ // D0-D11: vfd matrix grid
+ m_grid = data;
+ prepare_display();
+}
+
+WRITE_LINE_MEMBER(gjungler_state::speaker_w)
+{
+ // T: speaker out
+ m_speaker->level_w(state);
+}
+
+READ16_MEMBER(gjungler_state::input_r)
+{
+ // K0,K1: multiplexed inputs
+ // K2,K3: fixed inputs
+ return (m_inp_matrix[2]->read() & 0xc) | (read_inputs(2) & 3);
+}
+
+
+// config
+
+static INPUT_PORTS_START( gjungler )
+ PORT_START("IN.0") // G0 port K0,K1
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT )
+
+ PORT_START("IN.1") // G1 port K0,K1
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP )
+
+ PORT_START("IN.2") // K2,K3
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 )
+ PORT_CONFNAME( 0x08, 0x00, "Game Mode" )
+ PORT_CONFSETTING( 0x00, "A" )
+ PORT_CONFSETTING( 0x08, "B" )
+
+ PORT_START("IN.3") // fake
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_melps4_state, reset_button, NULL)
+INPUT_PORTS_END
+
+static MACHINE_CONFIG_START( gjungler, gjungler_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", M58846, XTAL_600kHz)
+ MCFG_MELPS4_READ_K_CB(READ16(gjungler_state, input_r))
+ MCFG_MELPS4_WRITE_S_CB(WRITE8(gjungler_state, plate_w))
+ MCFG_MELPS4_WRITE_F_CB(WRITE8(gjungler_state, plate_w))
+ MCFG_MELPS4_WRITE_G_CB(WRITE8(gjungler_state, plate_w))
+ MCFG_MELPS4_WRITE_U_CB(WRITE8(gjungler_state, plate_w))
+ MCFG_MELPS4_WRITE_D_CB(WRITE16(gjungler_state, grid_w))
+ MCFG_MELPS4_WRITE_T_CB(WRITELINE(gjungler_state, speaker_w))
+
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_melps4_state, display_decay_tick, attotime::from_msec(1))
+ MCFG_DEFAULT_LAYOUT(layout_hh_melps4_test)
+
+ /* no video! */
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+MACHINE_CONFIG_END
+
+
+
+
+
+/***************************************************************************
+
Game driver(s)
***************************************************************************/
@@ -343,6 +460,14 @@ ROM_START( cfrogger )
ROM_END
+ROM_START( gjungler )
+ ROM_REGION( 0x1000, "maincpu", 0 )
+ ROM_LOAD( "m58846-702p", 0x0000, 0x1000, CRC(94ab7060) SHA1(3389bc115d1df8d01a30611fa9e95a900d32b29b) )
+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)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
+CONS( 1981, cfrogger, 0, 0, cfrogger, cfrogger, driver_device, 0, "Coleco", "Frogger (Coleco)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+
+CONS( 1982, gjungler, 0, 0, gjungler, gjungler, driver_device, 0, "Gakken / Konami", "Jungler (Gakken)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK | MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/hh_pic16.c b/src/mame/drivers/hh_pic16.c
index a7542e6d31d..4a6e6088450 100644
--- a/src/mess/drivers/hh_pic16.c
+++ b/src/mame/drivers/hh_pic16.c
@@ -15,7 +15,7 @@
*192 1650 19??, (a phone dialer, have dump)
*255 1655 19??, (a talking clock, have dump)
- (* denotes not yet emulated by MESS, @ denotes it's in this driver)
+ (* denotes not yet emulated by MAME, @ denotes it's in this driver)
TODO:
@@ -299,4 +299,4 @@ ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */
-CONS( 1979, maniac, 0, 0, maniac, maniac, driver_device, 0, "Ideal", "Maniac", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
+CONS( 1979, maniac, 0, 0, maniac, maniac, driver_device, 0, "Ideal", "Maniac", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/hh_sm510.c b/src/mame/drivers/hh_sm510.c
index ff7e4b7b9cc..87c42f538bb 100644
--- a/src/mess/drivers/hh_sm510.c
+++ b/src/mame/drivers/hh_sm510.c
@@ -57,7 +57,7 @@ void hh_sm510_state::machine_start()
{
// zerofill
m_inp_mux = 0;
-// m_inp_lines = 0;
+// m_inp_lines = 0;
memset(m_lcd_output_cache, ~0, sizeof(m_lcd_output_cache));
// register for savestates
@@ -149,7 +149,7 @@ READ8_MEMBER(hh_sm510_state::input_r)
Konami Top Gun
* PCB label BH003
* Sharp SM510 under epoxy (die label CMS54C, KMS598)
-
+
The ROM listing "BH003 Top Gun" from patent US5137277 is identical to the
released version, except for 2 probable bit errors and filler bytes. Unused
pages list data too, of what looks like assembler leftover garbage.
@@ -396,7 +396,7 @@ 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 (Konami)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | GAME_NOT_WORKING )
-CONS( 1989, ktmnt, 0, 0, ktmnt, ktmnt, driver_device, 0, "Konami", "Teenage Mutant Ninja Turtles (Konami)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | GAME_NOT_WORKING )
+CONS( 1989, ktopgun, 0, 0, ktopgun, ktopgun, driver_device, 0, "Konami", "Top Gun (Konami)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK | MACHINE_NOT_WORKING )
+CONS( 1989, ktmnt, 0, 0, ktmnt, ktmnt, driver_device, 0, "Konami", "Teenage Mutant Ninja Turtles (Konami)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK | MACHINE_NOT_WORKING )
-CONS( 1982, gnwmndon, 0, 0, gnwmndon, gnwmndon, driver_device, 0, "Nintendo", "Game & Watch: Mickey & Donald", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | GAME_NOT_WORKING )
+CONS( 1982, gnwmndon, 0, 0, gnwmndon, gnwmndon, driver_device, 0, "Nintendo", "Game & Watch: Mickey & Donald", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK | MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/hh_tms1k.c b/src/mame/drivers/hh_tms1k.c
index 7474cff3ebe..357d0f496fe 100644
--- a/src/mess/drivers/hh_tms1k.c
+++ b/src/mame/drivers/hh_tms1k.c
@@ -34,12 +34,14 @@
*MP3208 TMS1000 1977, Milton Bradley Electronic Battleship (1977, model 4750A or B)
@MP3226 TMS1000 1978, Milton Bradley Simon (model 4850)
*MP3232 TMS1000 1979, Fonas 2-Player Baseball (no "MP" on chip label)
+ *MP3300 TMS1000 1980, Estrela Genius (from Brazil, looks and plays identical to Simon)
@MP3301A TMS1000 1979, Milton Bradley Big Trak
*MP3320A TMS1000 1979, Coleco Head to Head Basketball
*M32001 TMS1000 1981, Coleco Quiz Wiz Challenger (note: MP3398, MP3399, M3200x?)
MP3403 TMS1100 1978, Marx Electronic Bowling -> elecbowl.c
@MP3404 TMS1100 1978, Parker Brothers Merlin
@MP3405 TMS1100 1979, Coleco Amaze-A-Tron
+ *MP3415 TMS1100 1978, Coleco Electronic Quarterback
@MP3438A TMS1100 1979, Kenner Star Wars Electronic Battle Command
MP3450A TMS1100 1979, MicroVision cartridge: Blockbuster
MP3454 TMS1100 1979, MicroVision cartridge: Star Trek Phaser Strike
@@ -76,7 +78,7 @@
*M95041 ? 1983, Tsukuda Game Pachinko (? note: 40-pin, VFD-capable)
@CD7282SL TMS1100 1981, Tandy/RadioShack Tandy-12 (serial is similar to TI Speak & Spell series?)
- (* denotes not yet emulated by MESS, @ denotes it's in this driver)
+ (* denotes not yet emulated by MAME, @ denotes it's in this driver)
TODO:
@@ -142,7 +144,10 @@ void hh_tms1k_state::machine_start()
m_o = 0;
m_r = 0;
m_inp_mux = 0;
+ m_power_led = false;
m_power_on = false;
+ m_grid = 0;
+ m_plate = 0;
// register for savestates
save_item(NAME(m_display_maxy));
@@ -151,6 +156,7 @@ void hh_tms1k_state::machine_start()
save_item(NAME(m_display_state));
/* save_item(NAME(m_display_cache)); */ // don't save!
+ /* save_item(NAME(m_power_led)); */ // don't save!
save_item(NAME(m_display_decay));
save_item(NAME(m_display_segmask));
@@ -158,6 +164,8 @@ void hh_tms1k_state::machine_start()
save_item(NAME(m_r));
save_item(NAME(m_inp_mux));
save_item(NAME(m_power_on));
+ save_item(NAME(m_grid));
+ save_item(NAME(m_plate));
}
void hh_tms1k_state::machine_reset()
@@ -227,6 +235,13 @@ void hh_tms1k_state::display_update()
}
memcpy(m_display_cache, active_state, sizeof(m_display_cache));
+
+ // output optional power led
+ if (m_power_led != m_power_on)
+ {
+ m_power_led = m_power_on;
+ output_set_value("power_led", m_power_led ? 1 : 0);
+ }
}
TIMER_DEVICE_CALLBACK_MEMBER(hh_tms1k_state::display_decay_tick)
@@ -909,7 +924,7 @@ MACHINE_CONFIG_END
This is a head to head electronic tabletop LED-display sports console.
One cartridge(Football) was included with the console, the other three were
sold in a pack. Gameplay has emphasis on strategy, read the official manual
- on how to play. Remember that you can rotate the view in MESS: rotate left
+ on how to play. Remember that you can rotate the view in MAME: rotate left
for Home(P1) orientation, rotate right for Visitor(P2) orientation.
Cartridge socket:
@@ -1074,7 +1089,7 @@ MACHINE_CONFIG_END
are denoted by words ("left", "center", "short", etc), and an alternate one
with little guys drawn next to the LEDs.
- lamp translation table: led LDzz from game PCB = MESS lampyx:
+ lamp translation table: led LDzz from game PCB = MAME lampyx:
LD0 = - LD10 = lamp12 LD20 = lamp42 LD30 = lamp60
LD1 = lamp23 LD11 = lamp4 LD21 = lamp41 LD31 = lamp61
@@ -1207,7 +1222,7 @@ MACHINE_CONFIG_END
The sequel to Entex Baseball, this version keeps up with score and innings.
As its predecessor, the pitcher controls are on a separate joypad.
- lamp translation table: led zz from game PCB = MESS lampyx:
+ lamp translation table: led zz from game PCB = MAME lampyx:
00 = - 10 = lamp94 20 = lamp74 30 = lamp50
01 = lamp53 11 = lamp93 21 = lamp75 31 = lamp51
@@ -1333,7 +1348,7 @@ MACHINE_CONFIG_END
This is another improvement over Entex Baseball, where gameplay is a bit more
varied. Like the others, the pitcher controls are on a separate joypad.
- lamp translation table: led zz from game PCB = MESS lampyx:
+ lamp translation table: led zz from game PCB = MAME lampyx:
note: unlabeled panel leds are listed here as Sz, Bz, Oz, Iz, z left-to-right
00 = - 10 = lamp75 20 = lamp72
@@ -1515,7 +1530,7 @@ MACHINE_CONFIG_END
TMS1100, the second more widespread release runs on a COP400. There are
also differences with the overlay mask.
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -1746,7 +1761,7 @@ MACHINE_CONFIG_END
* TMS1100 6010 MP1218 (die also labeled MP1218)
* 4 7seg LEDs, and other LEDs behind bezel, 1bit sound
- lamp translation table: led zz from game PCB = MESS lampyx:
+ lamp translation table: led zz from game PCB = MAME lampyx:
11 = lamp90 21 = lamp91 31 = lamp92 41 = lamp93 51 = lamp95
12 = lamp80 22 = lamp81 32 = lamp82 42 = lamp83 52 = lamp85
@@ -1871,7 +1886,7 @@ MACHINE_CONFIG_END
* TMS1100 MP1221 (die labeled MP1221)
* 4 7seg LEDs(rightmost one unused), and other LEDs behind bezel, 1bit sound
- lamp translation table: led zz from game PCB = MESS lampyx:
+ lamp translation table: led zz from game PCB = MAME lampyx:
0 = - 10 = lamp44 20 = lamp53 30 = lamp95 40 = lamp92
1 = lamp30 11 = lamp45 21 = lamp54 31 = lamp85 41 = lamp93
@@ -1884,7 +1899,7 @@ MACHINE_CONFIG_END
8 = lamp42 18 = lamp73 28 = lamp84 38 = lamp82
9 = lamp43 19 = - 29 = lamp94 39 = lamp83
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -3682,7 +3697,7 @@ READ8_MEMBER(bankshot_state::read_k)
// config
/* physical button layout and labels is like this:
- (note: remember that you can rotate the display in MESS)
+ (note: remember that you can rotate the display in MAME)
[SELECT [BALL UP] [BALL OVER]
SCORE]
@@ -4017,7 +4032,7 @@ MACHINE_CONFIG_END
- Japan: Block Attack
- UK: Break-In
- lamp translation table: led zz from game PCB = MESS lampyx:
+ lamp translation table: led zz from game PCB = MAME lampyx:
00 = - 10 = lamp50 20 = lamp42
01 = lamp70 11 = lamp51 21 = lamp33
@@ -4575,47 +4590,47 @@ ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */
-COMP( 1980, mathmagi, 0, 0, mathmagi, mathmagi, driver_device, 0, "APF Electronics Inc.", "Mathemagician", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
+COMP( 1980, mathmagi, 0, 0, mathmagi, mathmagi, driver_device, 0, "APF Electronics Inc.", "Mathemagician", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW )
-CONS( 1979, amaztron, 0, 0, amaztron, amaztron, driver_device, 0, "Coleco", "Amaze-A-Tron", GAME_SUPPORTS_SAVE )
-CONS( 1980, h2hbaseb, 0, 0, h2hbaseb, h2hbaseb, driver_device, 0, "Coleco", "Head to Head Baseball", GAME_SUPPORTS_SAVE )
-CONS( 1980, h2hfootb, 0, 0, h2hfootb, h2hfootb, driver_device, 0, "Coleco", "Head to Head Football", GAME_SUPPORTS_SAVE )
-CONS( 1981, tc4, 0, 0, tc4, tc4, driver_device, 0, "Coleco", "Total Control 4", GAME_SUPPORTS_SAVE )
+CONS( 1979, amaztron, 0, 0, amaztron, amaztron, driver_device, 0, "Coleco", "Amaze-A-Tron", MACHINE_SUPPORTS_SAVE )
+CONS( 1980, h2hbaseb, 0, 0, h2hbaseb, h2hbaseb, driver_device, 0, "Coleco", "Head to Head Baseball", MACHINE_SUPPORTS_SAVE )
+CONS( 1980, h2hfootb, 0, 0, h2hfootb, h2hfootb, driver_device, 0, "Coleco", "Head to Head Football", MACHINE_SUPPORTS_SAVE )
+CONS( 1981, tc4, 0, 0, tc4, tc4, driver_device, 0, "Coleco", "Total Control 4", MACHINE_SUPPORTS_SAVE )
-CONS( 1979, ebball, 0, 0, ebball, ebball, driver_device, 0, "Entex", "Electronic Baseball (Entex)", GAME_SUPPORTS_SAVE )
-CONS( 1979, ebball2, 0, 0, ebball2, ebball2, driver_device, 0, "Entex", "Electronic Baseball 2 (Entex)", GAME_SUPPORTS_SAVE )
-CONS( 1980, ebball3, 0, 0, ebball3, ebball3, driver_device, 0, "Entex", "Electronic Baseball 3 (Entex)", GAME_SUPPORTS_SAVE )
-CONS( 1980, einvader, 0, 0, einvader, einvader, driver_device, 0, "Entex", "Space Invader (Entex, TMS1100)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
-CONS( 1980, efootb4 , 0, 0, efootb4, efootb4, driver_device, 0, "Entex", "Color Football 4 (Entex)", GAME_SUPPORTS_SAVE )
-CONS( 1980, ebaskb2 , 0, 0, ebaskb2, ebaskb2, driver_device, 0, "Entex", "Electronic Basketball 2 (Entex)", GAME_SUPPORTS_SAVE )
-CONS( 1980, raisedvl, 0, 0, raisedvl, raisedvl, driver_device, 0, "Entex", "Raise The Devil", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
+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( 1980, einvader, 0, 0, einvader, einvader, driver_device, 0, "Entex", "Space Invader (Entex, TMS1100)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+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, gpoker, 0, 0, gpoker, gpoker, driver_device, 0, "Gakken", "Poker (Gakken, 1979 version)", GAME_SUPPORTS_SAVE )
-CONS( 1980, gjackpot, 0, 0, gjackpot, gjackpot, driver_device, 0, "Gakken", "Jackpot: Gin Rummy & Black Jack", GAME_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( 1979, elecdet, 0, 0, elecdet, elecdet, driver_device, 0, "Ideal", "Electronic Detective", GAME_SUPPORTS_SAVE ) // ***
+CONS( 1979, elecdet, 0, 0, elecdet, elecdet, driver_device, 0, "Ideal", "Electronic Detective", MACHINE_SUPPORTS_SAVE ) // ***
-CONS( 1979, starwbc, 0, 0, starwbc, starwbc, driver_device, 0, "Kenner", "Star Wars - Electronic Battle Command", GAME_SUPPORTS_SAVE )
-CONS( 1979, starwbcp, starwbc, 0, starwbc, starwbc, driver_device, 0, "Kenner", "Star Wars - Electronic Battle Command (patent)", GAME_SUPPORTS_SAVE )
+CONS( 1979, starwbc, 0, 0, starwbc, starwbc, driver_device, 0, "Kenner", "Star Wars - Electronic Battle Command", MACHINE_SUPPORTS_SAVE )
+CONS( 1979, starwbcp, starwbc, 0, starwbc, starwbc, driver_device, 0, "Kenner", "Star Wars - Electronic Battle Command (patent)", MACHINE_SUPPORTS_SAVE )
-COMP( 1979, astro, 0, 0, astro, astro, driver_device, 0, "Kosmos", "Astro", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
+COMP( 1979, astro, 0, 0, astro, astro, driver_device, 0, "Kosmos", "Astro", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW )
-CONS( 1977, comp4, 0, 0, comp4, comp4, driver_device, 0, "Milton Bradley", "Comp IV", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
-CONS( 1978, simon, 0, 0, simon, simon, driver_device, 0, "Milton Bradley", "Simon (Rev. A)", GAME_SUPPORTS_SAVE )
-CONS( 1979, ssimon, 0, 0, ssimon, ssimon, driver_device, 0, "Milton Bradley", "Super Simon", GAME_SUPPORTS_SAVE )
-CONS( 1979, bigtrak, 0, 0, bigtrak, bigtrak, driver_device, 0, "Milton Bradley", "Big Trak", GAME_SUPPORTS_SAVE | GAME_MECHANICAL ) // ***
+CONS( 1977, comp4, 0, 0, comp4, comp4, driver_device, 0, "Milton Bradley", "Comp IV", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW )
+CONS( 1978, simon, 0, 0, simon, simon, driver_device, 0, "Milton Bradley", "Simon (Rev. A)", MACHINE_SUPPORTS_SAVE )
+CONS( 1979, ssimon, 0, 0, ssimon, ssimon, driver_device, 0, "Milton Bradley", "Super Simon", MACHINE_SUPPORTS_SAVE )
+CONS( 1979, bigtrak, 0, 0, bigtrak, bigtrak, driver_device, 0, "Milton Bradley", "Big Trak", MACHINE_SUPPORTS_SAVE | MACHINE_MECHANICAL ) // ***
-CONS( 1977, cnsector, 0, 0, cnsector, cnsector, driver_device, 0, "Parker Brothers", "Code Name: Sector", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW ) // ***
-CONS( 1978, merlin, 0, 0, merlin, merlin, driver_device, 0, "Parker Brothers", "Merlin - The Electronic Wizard", GAME_SUPPORTS_SAVE )
-CONS( 1979, stopthie, 0, 0, stopthief, stopthief, driver_device, 0, "Parker Brothers", "Stop Thief (Electronic Crime Scanner)", GAME_SUPPORTS_SAVE ) // ***
-CONS( 1979, stopthiep, stopthie, 0, stopthief, stopthief, driver_device, 0, "Parker Brothers", "Stop Thief (Electronic Crime Scanner) (patent)", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
-CONS( 1980, bankshot, 0, 0, bankshot, bankshot, driver_device, 0, "Parker Brothers", "Bank Shot - Electronic Pool", GAME_SUPPORTS_SAVE )
-CONS( 1980, splitsec, 0, 0, splitsec, splitsec, driver_device, 0, "Parker Brothers", "Split Second", GAME_SUPPORTS_SAVE )
-CONS( 1982, mmerlin, 0, 0, mmerlin, mmerlin, driver_device, 0, "Parker Brothers", "Master Merlin", GAME_SUPPORTS_SAVE )
+CONS( 1977, cnsector, 0, 0, cnsector, cnsector, driver_device, 0, "Parker Brothers", "Code Name: Sector", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW ) // ***
+CONS( 1978, merlin, 0, 0, merlin, merlin, driver_device, 0, "Parker Brothers", "Merlin - The Electronic Wizard", MACHINE_SUPPORTS_SAVE )
+CONS( 1979, stopthie, 0, 0, stopthief, stopthief, driver_device, 0, "Parker Brothers", "Stop Thief (Electronic Crime Scanner)", MACHINE_SUPPORTS_SAVE ) // ***
+CONS( 1979, stopthiep, stopthie, 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 )
-CONS( 1981, tandy12, 0, 0, tandy12, tandy12, driver_device, 0, "Tandy Radio Shack", "Tandy-12: Computerized Arcade", GAME_SUPPORTS_SAVE ) // some of the minigames: ***
+CONS( 1981, tandy12, 0, 0, tandy12, tandy12, driver_device, 0, "Tandy Radio Shack", "Tandy-12: Computerized Arcade", MACHINE_SUPPORTS_SAVE ) // some of the minigames: ***
-CONS( 1979, tbreakup, 0, 0, tbreakup, tbreakup, driver_device, 0, "Tomy", "Break Up (Tomy)", GAME_SUPPORTS_SAVE )
+CONS( 1979, tbreakup, 0, 0, tbreakup, tbreakup, driver_device, 0, "Tomy", "Break Up (Tomy)", MACHINE_SUPPORTS_SAVE )
-// ***: As far as MESS is concerned, the game is emulated fine. But for it to be playable, it requires interaction
+// ***: 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/mess/drivers/hh_ucom4.c b/src/mame/drivers/hh_ucom4.c
index f2bbe1685f3..8aa5836ffe9 100644
--- a/src/mess/drivers/hh_ucom4.c
+++ b/src/mame/drivers/hh_ucom4.c
@@ -44,13 +44,20 @@
@209 uPD553C 1982, Tomy Caveman (TN-12)
@258 uPD553C 1984, Tomy Alien Chase (TN-16)
+ @512 uPD557LC 1980, Castle Toy Tactix
+
*060 uPD650C 1979, Mattel Computer Gin
*085 uPD650C 1980, Roland TR-808
*127 uPD650C 198?, Sony OA-S1100 Typecorder (subcpu, have dump)
*128 uPD650C 1981, Roland TR-606
133 uPD650C 1982, Roland TB-303 -> tb303.c
- (* denotes not yet emulated by MESS, @ denotes it's in this driver)
+ (* denotes not yet emulated by MAME, @ denotes it's in this driver)
+
+
+TODO:
+ - games that rely on the fact that faster/longer strobed elements appear brighter:
+ tactix(player 2)
***************************************************************************/
@@ -59,6 +66,7 @@
// internal artwork
#include "efball.lh"
#include "mvbfree.lh"
+#include "tactix.lh" // clickable
#include "hh_ucom4_test.lh" // common test-layout - use external artwork
@@ -229,7 +237,7 @@ UINT8 hh_ucom4_state::read_inputs(int columns)
- Japan: "Missile Guerilla Warfare Maneuvers", published by Tomy
- World: UFO Master-Blaster Station
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -341,7 +349,7 @@ MACHINE_CONFIG_END
Then choose a formation(A,B,C) and either pass the ball, and/or start
running. For more information, refer to the official manual.
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -481,7 +489,7 @@ MACHINE_CONFIG_END
player 1 presses one of the directional keys. In 2-player mode, player 2
controls the goalkeeper, defensive players are still controlled by the CPU.
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -603,7 +611,7 @@ MACHINE_CONFIG_END
* NEC uCOM-44 MCU, labeled EMIX D552C 049
* cyan VFD display Emix-108
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -712,7 +720,7 @@ MACHINE_CONFIG_END
This is basically a revamp of their earlier Boxing game (ET-06), case and
buttons are exactly the same.
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -865,7 +873,7 @@ MACHINE_CONFIG_END
- Japan: FL Crazy Climbing
- USA: Crazy Climber
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -958,6 +966,125 @@ MACHINE_CONFIG_END
/***************************************************************************
+ Castle Toy Tactix
+ * NEC uCOM-43 MCU, labeled D557LC 512
+ * 16 LEDs behind buttons
+
+ Tactix is similar to Merlin, for 1 or 2 players. In 2-player mode, simply
+ don't press the Comp Turn button. The four included minigames are:
+ 1: Capture (reversi)
+ 2: Jump-Off (peg solitaire)
+ 3: Triple Play (3 in a row)
+ 4: Concentration (memory)
+
+ note: MAME external artwork is not needed for this game
+
+***************************************************************************/
+
+class tactix_state : public hh_ucom4_state
+{
+public:
+ tactix_state(const machine_config &mconfig, device_type type, const char *tag)
+ : hh_ucom4_state(mconfig, type, tag)
+ { }
+
+ DECLARE_WRITE8_MEMBER(leds_w);
+ DECLARE_WRITE8_MEMBER(speaker_w);
+ DECLARE_WRITE8_MEMBER(input_w);
+ DECLARE_READ8_MEMBER(input_r);
+};
+
+// handlers
+
+WRITE8_MEMBER(tactix_state::leds_w)
+{
+ // D,F: 4*4 led matrix
+ m_port[offset] = data;
+ display_matrix(4, 4, m_port[NEC_UCOM4_PORTD], m_port[NEC_UCOM4_PORTF]);
+}
+
+WRITE8_MEMBER(tactix_state::speaker_w)
+{
+ // G0: speaker out
+ m_speaker->level_w(data & 1);
+}
+
+WRITE8_MEMBER(tactix_state::input_w)
+{
+ // C,E0: input mux
+ m_port[offset] = data;
+ m_inp_mux = (m_port[NEC_UCOM4_PORTE] << 4 & 0x10) | m_port[NEC_UCOM4_PORTC];
+}
+
+READ8_MEMBER(tactix_state::input_r)
+{
+ // A: multiplexed inputs
+ return read_inputs(5);
+}
+
+
+// config
+
+static INPUT_PORTS_START( tactix )
+ PORT_START("IN.0") // C0 port A
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_1) PORT_NAME("Button 1")
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Q) PORT_NAME("Button 5")
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_A) PORT_NAME("Button 9")
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_Z) PORT_NAME("Button 13")
+
+ PORT_START("IN.1") // C1 port A
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_2) PORT_NAME("Button 2")
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_W) PORT_NAME("Button 6")
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_S) PORT_NAME("Button 10")
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_X) PORT_NAME("Button 14")
+
+ PORT_START("IN.2") // C2 port A
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_3) PORT_NAME("Button 3")
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_E) PORT_NAME("Button 7")
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_D) PORT_NAME("Button 11")
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_C) PORT_NAME("Button 15")
+
+ PORT_START("IN.3") // C3 port A
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_4) PORT_NAME("Button 4")
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_R) PORT_NAME("Button 8")
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_F) PORT_NAME("Button 12")
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_V) PORT_NAME("Button 16")
+
+ PORT_START("IN.4") // E0 port A
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_ENTER) PORT_NAME("New Game")
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_T) PORT_NAME("Comp Turn")
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_UNUSED)
+INPUT_PORTS_END
+
+static MACHINE_CONFIG_START( tactix, tactix_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", NEC_D557L, 400000) // approximation
+ MCFG_UCOM4_READ_A_CB(READ8(tactix_state, input_r))
+ MCFG_UCOM4_WRITE_C_CB(WRITE8(tactix_state, input_w))
+ MCFG_UCOM4_WRITE_D_CB(WRITE8(tactix_state, leds_w))
+ MCFG_UCOM4_WRITE_E_CB(WRITE8(tactix_state, input_w))
+ MCFG_UCOM4_WRITE_F_CB(WRITE8(tactix_state, leds_w))
+ MCFG_UCOM4_WRITE_G_CB(WRITE8(tactix_state, speaker_w))
+
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_ucom4_state, display_decay_tick, attotime::from_msec(1))
+ MCFG_DEFAULT_LAYOUT(layout_tactix)
+
+ /* no video! */
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+MACHINE_CONFIG_END
+
+
+
+
+
+/***************************************************************************
+
Epoch Invader From Space (manufactured in Japan)
* PCB labels 36010(A/B)
* NEC uCOM-44 MCU, labeled D552C 054
@@ -967,7 +1094,7 @@ MACHINE_CONFIG_END
- USA: Invader From Space
- UK: Invader From Space, published by Grandstand
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -1068,6 +1195,8 @@ MACHINE_CONFIG_END
- USA: Electronic Football (aka Pro-Bowl Football)
- Japan: American Football
+ note: MAME external artwork is not needed for this game
+
***************************************************************************/
class efball_state : public hh_ucom4_state
@@ -1179,7 +1308,7 @@ MACHINE_CONFIG_END
- Japan: Astro Wars
- UK: Astro Wars, published by Grandstand
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -1281,7 +1410,7 @@ MACHINE_CONFIG_END
- USA: Astro Command, published by Tandy
- UK: Scramble, published by Grandstand
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -1390,7 +1519,7 @@ MACHINE_CONFIG_END
- USA: Dracula, red case
- Other: Dracula, yellow case, published by Hales
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -1480,6 +1609,8 @@ MACHINE_CONFIG_END
* NEC uCOM-43 MCU, labeled D553C 049
* cyan VFD display Futaba DM-4.5 91
+ note: MAME external artwork is not needed for this game
+
***************************************************************************/
class mvbfree_state : public hh_ucom4_state
@@ -1589,7 +1720,7 @@ MACHINE_CONFIG_END
- USA: Cosmic Combat
- Japan: Space Attack
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -1688,7 +1819,7 @@ MACHINE_CONFIG_END
Press the Serve button to start, then hit the ball by pressing one of the
positional buttons when the ball flies over it.
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -1850,7 +1981,7 @@ MACHINE_CONFIG_END
The game will start automatically after turning it on. This Pac Man refuses
to eat dots with his butt, you can only eat them going right-to-left.
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -1871,7 +2002,7 @@ public:
void tmpacman_state::prepare_display()
{
UINT8 grid = BITSWAP8(m_grid,0,1,2,3,4,5,6,7);
- UINT32 plate = BITSWAP24(m_plate,23,22,21,20,19,16,17,18,11,10,9,8,0,2,3,1,4,5,6,7,12,13,14,15);
+ UINT32 plate = BITSWAP24(m_plate,23,22,21,20,19,16,17,18,11,10,9,8,0,2,3,1,4,5,6,7,12,13,14,15) | 0x100;
display_matrix(19, 8, plate, grid);
}
@@ -1954,7 +2085,7 @@ MACHINE_CONFIG_END
- UK: Astro Blaster, published by Hales (Epoch Astro Command was named Scramble)
- Germany: Rambler
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -1974,7 +2105,7 @@ public:
void tmscramb_state::prepare_display()
{
- UINT32 plate = BITSWAP24(m_plate,23,22,21,20,19,18,17,3,15,2,14,1,13,16,0,12,8,4,9,5,10,6,11,7);
+ UINT32 plate = BITSWAP24(m_plate,23,22,21,20,19,18,17,3,15,2,14,1,13,16,0,12,8,4,9,5,10,6,11,7) | 0x400;
display_matrix(17, 10, plate, m_grid);
}
@@ -2055,7 +2186,7 @@ MACHINE_CONFIG_END
- USA: Caveman, published by Tandy
- UK: Cave Man - Jr. Caveman vs Dinosaur, published by Grandstand
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -2076,7 +2207,7 @@ public:
void tcaveman_state::prepare_display()
{
UINT8 grid = BITSWAP8(m_grid,0,1,2,3,4,5,6,7);
- UINT32 plate = BITSWAP24(m_plate,23,22,21,20,19,10,11,5,6,7,8,0,9,2,18,17,16,3,15,14,13,12,4,1);
+ UINT32 plate = BITSWAP24(m_plate,23,22,21,20,19,10,11,5,6,7,8,0,9,2,18,17,16,3,15,14,13,12,4,1) | 0x40;
display_matrix(19, 8, plate, grid);
}
@@ -2154,7 +2285,7 @@ MACHINE_CONFIG_END
To start the game, simply press [UP]. Hold a joystick direction to move around.
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
***************************************************************************/
@@ -2315,6 +2446,12 @@ ROM_START( bcclimbr )
ROM_END
+ROM_START( tactix )
+ ROM_REGION( 0x0800, "maincpu", 0 )
+ ROM_LOAD( "d557lc-512", 0x0000, 0x0800, CRC(1df738cb) SHA1(15a5de28a3c03e6894d29c56b5b424983569ccf2) )
+ROM_END
+
+
ROM_START( invspace )
ROM_REGION( 0x0400, "maincpu", 0 )
ROM_LOAD( "d552c-054", 0x0000, 0x0400, CRC(913d9c13) SHA1(f20edb5458e54d2f6d4e45e5d59efd87e05a6f3f) )
@@ -2389,25 +2526,27 @@ 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", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
-CONS( 1979, ssfball, 0, 0, ssfball, ssfball, driver_device, 0, "Bambino", "Superstar Football", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
-CONS( 1979, bmsoccer, 0, 0, bmsoccer, bmsoccer, driver_device, 0, "Bambino", "Kick The Goal Soccer", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
-CONS( 1981, bmsafari, 0, 0, bmsafari, bmsafari, driver_device, 0, "Bambino", "Safari (Bambino)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
-CONS( 1980, splasfgt, 0, 0, splasfgt, splasfgt, driver_device, 0, "Bambino", "Space Laser Fight", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
-
-CONS( 1982, bcclimbr, 0, 0, bcclimbr, bcclimbr, driver_device, 0, "Bandai", "Crazy Climber (Bandai)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
-
-CONS( 1980, invspace, 0, 0, invspace, invspace, driver_device, 0, "Epoch", "Invader From Space", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
-CONS( 1980, efball, 0, 0, efball, efball, driver_device, 0, "Epoch", "Electronic Football (Epoch)", GAME_SUPPORTS_SAVE )
-CONS( 1981, galaxy2, 0, 0, galaxy2, galaxy2, driver_device, 0, "Epoch", "Galaxy II", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
-CONS( 1982, astrocmd, 0, 0, astrocmd, astrocmd, driver_device, 0, "Epoch", "Astro Command", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
-CONS( 1982, edracula, 0, 0, edracula, edracula, driver_device, 0, "Epoch", "Dracula (Epoch)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
-
-CONS( 1979, mvbfree, 0, 0, mvbfree, mvbfree, driver_device, 0, "Mego", "Mini-Vid Break Free", GAME_SUPPORTS_SAVE )
-
-CONS( 1980, tccombat, 0, 0, tccombat, tccombat, driver_device, 0, "Tomy", "Cosmic Combat", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
-CONS( 1980, tmtennis, 0, 0, tmtennis, tmtennis, driver_device, 0, "Tomy", "Tennis (Tomy)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
-CONS( 1982, tmpacman, 0, 0, tmpacman, tmpacman, driver_device, 0, "Tomy", "Pac Man (Tomy)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
-CONS( 1982, tmscramb, 0, 0, tmscramb, tmscramb, driver_device, 0, "Tomy", "Scramble (Tomy)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
-CONS( 1982, tcaveman, 0, 0, tcaveman, tcaveman, driver_device, 0, "Tomy", "Caveman (Tomy)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
-CONS( 1984, alnchase, 0, 0, alnchase, alnchase, driver_device, 0, "Tomy", "Alien Chase", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
+CONS( 1979, ufombs, 0, 0, ufombs, ufombs, driver_device, 0, "Bambino", "UFO Master-Blaster Station", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+CONS( 1979, ssfball, 0, 0, ssfball, ssfball, driver_device, 0, "Bambino", "Superstar Football", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+CONS( 1979, bmsoccer, 0, 0, bmsoccer, bmsoccer, driver_device, 0, "Bambino", "Kick The Goal Soccer", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+CONS( 1981, bmsafari, 0, 0, bmsafari, bmsafari, driver_device, 0, "Bambino", "Safari (Bambino)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+CONS( 1980, splasfgt, 0, 0, splasfgt, splasfgt, driver_device, 0, "Bambino", "Space Laser Fight", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+
+CONS( 1982, bcclimbr, 0, 0, bcclimbr, bcclimbr, driver_device, 0, "Bandai", "Crazy Climber (Bandai)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+
+CONS( 1980, tactix, 0, 0, tactix, tactix, driver_device, 0, "Castle Toy", "Tactix", MACHINE_SUPPORTS_SAVE )
+
+CONS( 1980, invspace, 0, 0, invspace, invspace, driver_device, 0, "Epoch", "Invader From Space", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+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", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+CONS( 1982, astrocmd, 0, 0, astrocmd, astrocmd, driver_device, 0, "Epoch", "Astro Command", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+CONS( 1982, edracula, 0, 0, edracula, edracula, driver_device, 0, "Epoch", "Dracula (Epoch)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+
+CONS( 1979, mvbfree, 0, 0, mvbfree, mvbfree, driver_device, 0, "Mego", "Mini-Vid Break Free", MACHINE_SUPPORTS_SAVE )
+
+CONS( 1980, tccombat, 0, 0, tccombat, tccombat, driver_device, 0, "Tomy", "Cosmic Combat", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+CONS( 1980, tmtennis, 0, 0, tmtennis, tmtennis, driver_device, 0, "Tomy", "Tennis (Tomy)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+CONS( 1982, tmpacman, 0, 0, tmpacman, tmpacman, driver_device, 0, "Tomy", "Pac Man (Tomy)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+CONS( 1982, tmscramb, 0, 0, tmscramb, tmscramb, driver_device, 0, "Tomy", "Scramble (Tomy)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+CONS( 1982, tcaveman, 0, 0, tcaveman, tcaveman, driver_device, 0, "Tomy", "Caveman (Tomy)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
+CONS( 1984, alnchase, 0, 0, alnchase, alnchase, driver_device, 0, "Tomy", "Alien Chase", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
diff --git a/src/mame/drivers/hideseek.c b/src/mame/drivers/hideseek.c
index 36d78070dc9..d17b244a4fb 100644
--- a/src/mame/drivers/hideseek.c
+++ b/src/mame/drivers/hideseek.c
@@ -154,4 +154,4 @@ DRIVER_INIT_MEMBER(hideseek_state,hideseek)
}
-GAME( 200?, hideseek, 0, hideseek, hideseek, hideseek_state, hideseek, ROT0, "<unknown>", "Hide & Seek",GAME_NOT_WORKING | GAME_NO_SOUND )
+GAME( 200?, hideseek, 0, hideseek, hideseek, hideseek_state, hideseek, ROT0, "<unknown>", "Hide & Seek",MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/higemaru.c b/src/mame/drivers/higemaru.c
index c6a81cc692b..bf341cbb92e 100644
--- a/src/mame/drivers/higemaru.c
+++ b/src/mame/drivers/higemaru.c
@@ -220,4 +220,4 @@ ROM_START( higemaru )
ROM_END
-GAME( 1984, higemaru, 0, higemaru, higemaru, driver_device, 0, ROT0, "Capcom", "Pirate Ship Higemaru", GAME_SUPPORTS_SAVE )
+GAME( 1984, higemaru, 0, higemaru, higemaru, driver_device, 0, ROT0, "Capcom", "Pirate Ship Higemaru", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/highvdeo.c b/src/mame/drivers/highvdeo.c
index fea755235cf..caf4022d786 100644
--- a/src/mame/drivers/highvdeo.c
+++ b/src/mame/drivers/highvdeo.c
@@ -1639,6 +1639,6 @@ GAMEL( 2000, ciclone, 0, ciclone, tv_tcf, highvdeo_state, ciclone, ROT
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)", GAME_NOT_WORKING, layout_fashion )
-GAMEL( 2000, magicbom, 0, magicbom, fashion, highvdeo_state, fashion, ROT0, "High Video", "Magic Bomb (Version 1)", GAME_NOT_WORKING, 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 )
diff --git a/src/mame/drivers/hikaru.c b/src/mame/drivers/hikaru.c
index e2dd7b80466..a31e865ba03 100644
--- a/src/mame/drivers/hikaru.c
+++ b/src/mame/drivers/hikaru.c
@@ -743,9 +743,9 @@ ROM_START( sgnascar )
ROM_PARAMETER( ":rom_board:key", "56dedf33" )
ROM_END
-GAME( 2000, hikaru, 0, hikaru, hikaru, driver_device, 0, ROT0, "Sega", "Hikaru Bios", GAME_NO_SOUND|GAME_NOT_WORKING|GAME_IS_BIOS_ROOT )
-GAME( 1999, braveff, hikaru, hikaru, hikaru, driver_device, 0, ROT0, "Sega", "Brave Fire Fighters", GAME_NO_SOUND|GAME_NOT_WORKING )
-GAME( 2000, airtrix, hikaru, hikaru, hikaru, driver_device, 0, ROT0, "Sega", "Air Trix", GAME_NO_SOUND|GAME_NOT_WORKING )
-GAME( 2000, sgnascar, hikaru, hikaru, hikaru, driver_device, 0, ROT0, "Sega / Electronic Arts", "NASCAR Racing", GAME_NO_SOUND|GAME_NOT_WORKING )
-GAME( 2001, pharrier, hikaru, hikaru, hikaru, driver_device, 0, ROT0, "Sega", "Planet Harriers", GAME_NO_SOUND|GAME_NOT_WORKING )
-GAME( 2001, podrace, hikaru, hikaru, hikaru, driver_device, 0, ROT0, "Sega", "Star Wars Pod Racer", GAME_NO_SOUND|GAME_NOT_WORKING )
+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", MACHINE_NO_SOUND|MACHINE_NOT_WORKING )
+GAME( 2000, sgnascar, hikaru, hikaru, hikaru, driver_device, 0, ROT0, "Sega / Electronic Arts", "NASCAR Racing", MACHINE_NO_SOUND|MACHINE_NOT_WORKING )
+GAME( 2001, pharrier, hikaru, hikaru, hikaru, driver_device, 0, ROT0, "Sega", "Planet Harriers", 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 )
diff --git a/src/mame/drivers/himesiki.c b/src/mame/drivers/himesiki.c
index bcc4f532a6c..12f487b3b97 100644
--- a/src/mame/drivers/himesiki.c
+++ b/src/mame/drivers/himesiki.c
@@ -352,4 +352,4 @@ ROM_START( himesiki )
ROM_LOAD16_BYTE( "14.8c", 0x020001, 0x010000, CRC(8103a207) SHA1(0dde8a0aaf2618d9c1589f35841db210439d0388) )
ROM_END
-GAME( 1989, himesiki, 0, himesiki, himesiki, driver_device, 0, ROT90, "Hi-Soft", "Himeshikibu (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1989, himesiki, 0, himesiki, himesiki, driver_device, 0, ROT90, "Hi-Soft", "Himeshikibu (Japan)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/hitme.c b/src/mame/drivers/hitme.c
index 60ab820b532..7f285a41cc5 100644
--- a/src/mame/drivers/hitme.c
+++ b/src/mame/drivers/hitme.c
@@ -688,9 +688,9 @@ ROM_END
*
*************************************/
-GAME( 1976, hitme, 0, hitme, hitme, driver_device, 0, ROT0, "RamTek", "Hit Me (set 1)", GAME_SUPPORTS_SAVE ) // 05/1976
-GAME( 1976, hitme1, hitme, hitme, hitme, driver_device, 0, ROT0, "RamTek", "Hit Me (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1976, m21, hitme, hitme, hitme, driver_device, 0, ROT0, "Mirco Games", "21 (Mirco)", GAME_SUPPORTS_SAVE ) // 08/1976, licensed?
-GAME( 1978, super21, 0, hitme, super21, driver_device, 0, ROT0, "Mirco Games", "Super Twenty One", GAME_SUPPORTS_SAVE )
-GAMEL(1976, barricad, 0, barricad, barricad, driver_device, 0, ROT0, "RamTek", "Barricade", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_barricad )
-GAMEL(1976, brickyrd, barricad, barricad, barricad, driver_device, 0, ROT0, "RamTek", "Brickyard", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_barricad )
+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 )
diff --git a/src/mame/drivers/hitpoker.c b/src/mame/drivers/hitpoker.c
index d53bd006204..19b4cf59d7d 100644
--- a/src/mame/drivers/hitpoker.c
+++ b/src/mame/drivers/hitpoker.c
@@ -530,4 +530,4 @@ ROM_START( hitpoker )
ROM_LOAD16_BYTE( "u45.bin", 0x80000, 0x40000, CRC(e65b3e52) SHA1(c0c1a360a4a1823bf71c0a4105ff41f4102862e8) ) // the first part of these 2 is almost empty as the standard gfx are 4bpp
ROM_END
-GAME( 1997, hitpoker, 0, hitpoker, hitpoker, hitpoker_state, hitpoker, ROT0, "Accept Ltd.", "Hit Poker (Bulgaria)", GAME_NOT_WORKING )
+GAME( 1997, hitpoker, 0, hitpoker, hitpoker, hitpoker_state, hitpoker, ROT0, "Accept Ltd.", "Hit Poker (Bulgaria)", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/hk68v10.c b/src/mame/drivers/hk68v10.c
new file mode 100644
index 00000000000..a5dd838c1d6
--- /dev/null
+++ b/src/mame/drivers/hk68v10.c
@@ -0,0 +1,383 @@
+// license:BSD-3-Clause
+// copyright-holders:Joakim Larsson Edstrom
+/***************************************************************************
+ *
+ * Heurikon HK68/V10 6U SBC driver, initially derived from hk68v10.c
+ *
+ * 21/08/2015
+ *
+ * I baught this board from http://www.retrotechnology.com without documentation.
+ * It has a Motorola 68010 CPU @ 10MHz and two 2764 EPROMS with HBUG firmware
+ * The board is very populated and suitable to run a real server OS supported by
+ * FPU,MMU and DMA controller chips. The firmware supports SCSI, Centronics/FPI
+ * and a serial port. I have not found so much on the FPI interface yet and it is
+ * possibly Heurikon specific. There is also a Heurikon Multibus board called
+ * HK68/M10 for which I might add support from specs, however would need a ROM
+ * to verify.
+ *
+ * ||
+ * || ||
+ * ||||--||
+ * ||||--||
+ * || ||____________________________________________________________ ___
+ * || | | | 12 PALs 68/V-... | | | | | |_| |
+ * || | | 2 x | |74 |74 |74 |74 | | | |
+ * || | | 74273 | VS4-01 VM4-00 | 244 573 645 645 | | |
+ * \==||| |SCSI | | VS3-00 VM3-03 | | | | | | | |
+ * ||| | | | VS2-01 VM2-02 |___|___|___|___| | | |
+ * || |NCR | | VS1-00 VM1-01 | | | | | | |
+ * || | 8530| 2 x | VBX-00 VDB-00 |74 |74 |74 | | |VME|
+ * || | | 74245 | VI1-00 VI2-00 | 244 641 245 | | |
+ * || | | | (90 deg ccw) | | | | | |P1 |
+ * SCSI || |_____| |_____________________|___|___|___| | | |
+ * port || | | _________ _________________________________ | | |
+ * || | | | || |74 |PAL | | | | |
+ * || | | | || 5 x | 244 MP2| 2 x | | | |
+ * || |CIO | | MC68881 || 74373 | | -00| 74646| | | |
+ * || |paral| | FPU || | | | | | | |
+ * || |Z8536| |_________||_________________|_ _| | | |_| |
+ * ||| | | | | | | ------------ |___|
+ * /==||| | | | | | | | 3 PALs | |
+ * FSM || | | | MC68010 | MC68451 | MC68450 | | MP1-00 | |
+ * 1234 || | | | CPU | MMU | DMA | | MX2-00 | |
+ * LEDs || |-----| |_________|__________|_________|__| MX1-01 |---|
+ * || | | ____ ____ ---| |__________|74 |
+ * \==||| | | | | | | |74| 4 x | 3 PALs |145|
+ * ||| |SCC | | | | | |804 74245 | CS3-00 |___|
+ * FPI || |seria| |U12 | |U23 | | | | CS2-00 | |
+ * paralell |Z8530A |HBUG| |HBUG| | | | CS1-00 | |___
+ * port || | | | | | | ---_---------------|__________| _| |
+ * || | | | | | | |MTTLDL|MDLDM| 2 x |___________ | | |
+ * ||| | | |____|_|____|_|____40|TTL75|74280| | | | |
+ * /==||| | || |19. | | | | | |_____| | | | |
+ * \==||| |_____||75 |6608|16 |20 |74|74| ______| 9 x 4 | | | |
+ * ||| +--------+|173| MHz| MHz | MHz| 74 08| | | RAM chips| | |VME|
+ * || | ||___|____|_____|____|__|__||74 74 | on SIL | | | |
+ * || | 2 x || | | |259|257 boards | | |P2 |
+ * || | SIL || 12 PALs 90 deg ccw|74| -______- | | | |
+ * || | boards || |240 | | | | | | |
+ * || | with 2 || BER-00 FPI-01 | | |74 74 | | | | |
+ * Serial|| | DIP16 || AC4-00 ARB-01 |__|___|138|257 | | | |
+ * port || | surf || AC3-00 INT-00 |______| | | | |
+ * || | mounted|| AC2-01 IAK-00 | | | | | | |
+ * || | chips || AC1-01 PAS-01 |74 |74| | | | |
+ * || | each || RFS-01 |590|257 | | | |
+ * ||| | || RCT-01 | | | | |_| |
+ * /==||| +--------+|__________________________|___|__|__________| |___|
+ * || ||------------------------------------------------------------+-+
+ * ||||--||
+ * ||||--||
+ * ||
+ *
+ * History of Heurikon
+ *---------------------
+ * The company was founded 1972 as cellar company. Heurikon was aquired
+ * 1989 by Computer Products, 1990 by Artesyn and finally in 2005 by Emerson
+ * Electric who consilidated it fully by 2009 and closed the office.
+ *
+ * Misc links about Heurikon and this board:
+ * http://www.heurikon.com/
+ * http://www.nytimes.com/1992/01/07/business/company-news-briefs.html
+ * http://bitsavers.informatik.uni-stuttgart.de/pdf/heurikon/brochures/HK68_V10_Brochure.pdf
+ * http://bitsavers.informatik.uni-stuttgart.de/pdf/heurikon/Heurikon_UNIX_System_V_and_V.2_Reference_Guide_Apr87.pdf
+ * From http://www.iri.tudelft.nl/~sfwww/manuals/OS9/PDF/9OM_30.pdf:
+ * "In most cases, you will only need to change the device base address. Some hardware implementations of the MC68451
+ * (specifically the Heurikon M10/V10 CPU's) use the DMA portion of the Address Space Table (AST) instead of the MPU
+ * section which is normally used. You should change the offsets for the AST registers to match your hardware. The
+ * ssmdefs.a file has conditional directives to accommodate either the standard or Heurikon style implementations."
+ *
+ * Address Map from the UNIX Ref Guide
+ * --------------------------------------------------------------------------
+ * Address Range Memory Space (physical) Notes
+ * --------------------------------------------------------------------------
+ * 0xffffff (top of memory)
+ * 0xffc200 0xffc220 Sky FFP 68881 FPU
+ * 0xff8000 ... MCT Reel-to-reel tape (V10) VME
+ * 0xff0000 0xff0100 Tapemaster(00B0,00B1) Reel-to-reel tape (M10) Multibus
+ * Ethernet(0010,0011)
+ * 0xff0000 (base of bus I/O)
+ *
+ * 0xfea000 SCC8530 device
+ * 0xfe9000 offset 6 seems also to be 2 access registers, ie register offset + data pairs
+ * 0xfe8000 offset E reading single byte
+ * 0xfe4000 front LED:s? or move ROM from 0x0 to 0xfc0000...
+ * 0xfe2000 cleared
+ * 0xfe0000 HK68 On-card I/O MMU, DMAC, SCC, SCSI
+ * 0xfc0000 HK68 ROM (128K) Hbug monitor
+ * 0xf00000 (reserved)
+ * (shared memory and logical area
+ * for shared text.)
+ * 0x800000 (Twilight Zone) (top of /dev/mem)
+ * 0x7c0000 (reserved)
+ * 0x780000 8 Chnl serial Expn(1-4) (CDC)
+ * HK68 (1-15) VRTX
+ * MLZ-93 (1-4) CP/M Shell
+ * 0x700000
+ * (open)
+ * 0x*00000 (maxmeml)
+ * RAM (bus) (optional)
+ * 0x200000 (top of 2 meg RAM)
+ * RAM (bus) (optional)
+ * 0x100000 (top of 1 meg RAM)
+ * User RAM
+ * 0x001000 UNIX Kernel
+ * Exception Vectors
+ * 0x000000 (bottom of memory)
+ * --------------------------------------------------------------------------
+ *
+ * Interrupt sources M10/V10
+ * ----------------------------------------------------------
+ * Description Device Lvl IRQ VME board
+ * /Board Vector Address
+ * ----------------------------------------------------------
+ * On board Sources M10/V10
+ *
+ * Off board Sources (other VME boards)
+ * EXOS Ethernet 5 4
+ * TapeMaster Reel-to-Reel Tape 3
+ * MCT Reel-to-Reel Tape 5
+ * CDC MB1031 Serial Expansion 2 2
+ * IT 2190 SMD Interface 1 3
+ * IT 3200 SMD Interface 3
+ * ----------------------------------------------------------
+ *
+ * DMAC Channel Assignments
+ * ----------------------------------------------------------
+ * Channel M10 V10
+ * ----------------------------------------------------------
+ * 0 SCSI SCSI
+ * 1 Streamer (P3) n/a
+ * 2 n/a n/a
+ * 3 SBX-FDIO n/a
+ * ----------------------------------------------------------
+ *
+ * TODO:
+ * - Dump the ROMs (DONE)
+ * - Setup a working address map (DONE)
+ * - Fix terminal for HBUG (DONE)
+ * - Add VME bus driver
+ * - Add DMA/MMU devices
+ * - Add CIO port
+ * - ADD SCSI controller device
+ * - dump PALs and describe descrete logic
+ * - Setup BAUD generation correctly, (eg find that x32 divider)
+ * it is a multilayer PCB so very hard to trace.
+ * - Add LED:s
+ * - Add Jumpers and strap areas
+ * - Find and Boot Heurikon Unix from a SCSI device
+ * - Support that optional 68881 FPU
+ *
+ ****************************************************************************/
+
+#include "emu.h"
+#include "cpu/m68000/m68000.h"
+#include "machine/z80scc.h"
+#include "bus/rs232/rs232.h"
+#include "machine/clock.h"
+
+#define VERBOSE 0
+
+#define LOG(x) do { if (VERBOSE) logerror x; } while (0)
+
+#if VERBOSE == 2
+#define logerror printf
+#endif
+
+#define BAUDGEN_CLOCK XTAL_19_6608MHz /* Raltron */
+/*
+ */
+#define SCC_CLOCK (BAUDGEN_CLOCK / 128) /* This gives prompt at the RS232 terminal device (9600) */
+//#define SCC_CLOCK (BAUDGEN_CLOCK / 4) /* This is correct giving 4.9152MHz as documentation says */
+class hk68v10_state : public driver_device
+{
+public:
+hk68v10_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device (mconfig, type, tag),
+ m_maincpu (*this, "maincpu")
+ ,m_sccterm(*this, "scc")
+// ,m_cart(*this, "exp_rom1")
+{
+}
+
+DECLARE_READ16_MEMBER (bootvect_r);
+DECLARE_WRITE16_MEMBER (bootvect_w);
+DECLARE_READ16_MEMBER (vme_a24_r);
+DECLARE_WRITE16_MEMBER (vme_a24_w);
+DECLARE_READ16_MEMBER (vme_a16_r);
+DECLARE_WRITE16_MEMBER (vme_a16_w);
+virtual void machine_start ();
+virtual void machine_reset ();
+DECLARE_WRITE_LINE_MEMBER (write_sccterm_clock);
+
+protected:
+
+private:
+required_device<cpu_device> m_maincpu;
+required_device<scc8530_device> m_sccterm;
+
+// Pointer to System ROMs needed by bootvect_r and masking RAM buffer for post reset accesses
+ UINT16 *m_sysrom;
+ UINT16 m_sysram[4];
+};
+
+static ADDRESS_MAP_START (hk68v10_mem, AS_PROGRAM, 16, hk68v10_state)
+ADDRESS_MAP_UNMAP_HIGH
+AM_RANGE (0x000000, 0x000007) AM_ROM AM_READ (bootvect_r) /* ROM mirror just durin reset */
+AM_RANGE (0x000000, 0x000007) AM_RAM AM_WRITE (bootvect_w) /* After first write we act as RAM */
+AM_RANGE (0x000008, 0x1fffff) AM_RAM /* 2 Mb RAM */
+AM_RANGE (0xFC0000, 0xFC3fff) AM_ROM /* System EPROM Area 16Kb HBUG */
+AM_RANGE (0xFC4000, 0xFDffff) AM_ROM /* System EPROM Area an additional 112Kb for System ROM */
+AM_RANGE (0xFE9000, 0xFE9009) AM_RAM //AM_DEVREADWRITE8("scc", scc8530_device, ba_cd_r, ba_cd_w, 0xffff) /* Z80-PIO? */
+AM_RANGE (0xFEA000, 0xFEA001) AM_DEVREADWRITE8("scc", scc8530_device, ca_r, ca_w, 0xff00) /* Dual serial port Z80-SCC */
+AM_RANGE (0xFEA002, 0xFEA003) AM_DEVREADWRITE8("scc", scc8530_device, cb_r, cb_w, 0xff00) /* Dual serial port Z80-SCC */
+AM_RANGE (0xFEA004, 0xFEA005) AM_DEVREADWRITE8("scc", scc8530_device, da_r, da_w, 0xff00) /* Dual serial port Z80-SCC */
+AM_RANGE (0xFEA006, 0xFEA007) AM_DEVREADWRITE8("scc", scc8530_device, db_r, db_w, 0xff00) /* 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 */
+ADDRESS_MAP_END
+
+/* Input ports */
+static INPUT_PORTS_START (hk68v10)
+INPUT_PORTS_END
+
+/* Start it up */
+void hk68v10_state::machine_start ()
+{
+ LOG (("%" I64FMT "d %s\n", m_maincpu->total_cycles(), __func__));
+
+ /* Setup pointer to bootvector in ROM for bootvector handler bootvect_r */
+ m_sysrom = (UINT16*)(memregion ("maincpu")->base () + 0x0fc0000);
+}
+
+/* Support CPU resets
+
+ TODO: Investigate why the user need two 'softreset' commands for the below to work. Eg F3 + F11 + F3 + F11
+ If only one 'softreset' is given the reset PC gets the RAM content, not the intended ROM vector.
+ Race conditions? Wrong call order in memory system? Debugger prefetch accesses? Better way to to this?
+*/
+void hk68v10_state::machine_reset ()
+{
+ LOG (("%" I64FMT "d %s\n", m_maincpu->total_cycles(), __func__));
+
+ /* Reset pointer to bootvector in ROM for bootvector handler bootvect_r */
+ if (m_sysrom == &m_sysram[0]) /* Condition needed because memory map is not setup first time */
+ m_sysrom = (UINT16*)(memregion ("maincpu")->base () + 0x0fc0000);
+}
+
+/* Boot vector handler, the PCB hardwires the first 8 bytes from 0xfc0000 to 0x0 at reset*/
+/*
+ Right after HBUG reset the bootvector is masked by RAM:
+ FC001C: move.w #$700, $fe4000.l
+ FC0024: move.l #$0, $0.l # <- zeroing the reset vector
+ FC002E: move.l #$0, $4.l # There is for sure some hardware mapping going in here
+*/
+READ16_MEMBER (hk68v10_state::bootvect_r){
+ //LOG (("bootvect_r %s\n", m_sysrom != &m_sysram[0] ? "as reset" : "as swapped"));
+ return m_sysrom[offset];
+}
+
+WRITE16_MEMBER (hk68v10_state::bootvect_w){
+ LOG (("bootvect_w offset %08x, mask %08x, data %04x\n", offset, mem_mask, data));
+ m_sysram[offset % sizeof(m_sysram)] &= ~mem_mask;
+ m_sysram[offset % sizeof(m_sysram)] |= (data & mem_mask);
+ m_sysrom = &m_sysram[0]; // redirect all upcomming accesses to masking RAM until reset.
+}
+
+#if 0
+/* Dummy VME access methods until the VME bus device is ready for use */
+READ16_MEMBER (hk68v10_state::vme_a24_r){
+ LOG (("vme_a24_r\n"));
+ return (UINT16) 0;
+}
+
+WRITE16_MEMBER (hk68v10_state::vme_a24_w){
+ LOG (("vme_a24_w\n"));
+}
+
+READ16_MEMBER (hk68v10_state::vme_a16_r){
+ LOG (("vme_16_r\n"));
+ return (UINT16) 0;
+}
+
+WRITE16_MEMBER (hk68v10_state::vme_a16_w){
+ LOG (("vme_a16_w\n"));
+}
+#endif
+
+/*
+ * Serial port clock source depends on the CPU clock and divider settings
+ * HBUG has a control byte that needs to be patched accordingly:
+ *
+ * CPU clock SCC clock Baud rate offset 0x0b value
+ * 10 Mhz 4.9152MHz 9600 15
+ * 10 Mhz 4.9152MHz 19200 55
+ * 12 Mhz 4.9152MHz 9600 16
+ * 12 Mhz 4.9152MHz 19200 56
+ *
+ * Configuration word detail:
+ * D15-D8 reserved ( = 0 )
+ * D7(MSB) = 0
+ * D6 = 0 for console default 9600 baud
+ * D6 = 1 for console default 19,200 baud
+ * D5,D4,D3,D2 = 0101 for 4.9152 Mhz SCC clock
+ * D1,DO
+ * 01 for 10 Mhz MPU clock
+ * D1,DO = 10 for 12 Mhz MPU clock
+ *
+ * Original HBUG configuration word: 0x003D = 0000 0000 0011 1101
+ *
+ */
+WRITE_LINE_MEMBER (hk68v10_state::write_sccterm_clock){
+ m_sccterm->txca_w (state);
+ m_sccterm->rxca_w (state);
+}
+
+/*
+ * Machine configuration
+ */
+static MACHINE_CONFIG_START (hk68v10, hk68v10_state)
+/* basic machine hardware */
+MCFG_CPU_ADD ("maincpu", M68010, XTAL_10MHz)
+MCFG_CPU_PROGRAM_MAP (hk68v10_mem)
+
+/* Terminal Port config */
+MCFG_SCC8530_ADD("scc", XTAL_4MHz, 0, 0, 0, 0 )
+MCFG_Z80SCC_OUT_TXDA_CB(DEVWRITELINE("rs232trm", rs232_port_device, write_txd))
+MCFG_Z80SCC_OUT_DTRA_CB(DEVWRITELINE("rs232trm", rs232_port_device, write_dtr))
+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", scc8530_device, rxa_w))
+MCFG_RS232_CTS_HANDLER (DEVWRITELINE ("scc", scc8530_device, ctsa_w))
+
+MCFG_DEVICE_ADD ("sccterm_clock", CLOCK, SCC_CLOCK)
+MCFG_CLOCK_SIGNAL_HANDLER (WRITELINE (hk68v10_state, write_sccterm_clock))
+
+MACHINE_CONFIG_END
+
+/* ROM definitions */
+ROM_START (hk68v10)
+ROM_REGION (0x1000000, "maincpu", 0)
+
+ROM_LOAD16_BYTE ("hk68kv10U23.bin", 0xFC0001, 0x2000, CRC (632aa026) SHA1 (f2b1ed0cc38dfbeb1602c013e00757015400720d))
+ROM_LOAD16_BYTE ("hk68kv10U12.bin", 0xFC0000, 0x2000, CRC (f2d688e9) SHA1 (e68699965645f0ce53de47625163c3eb02c8b727))
+/*
+ * System ROM information
+ *
+ * The ROMs contains HBUG v1.8, known commands from different sources:
+ *
+ * 'uc' Print HK68 Configuration
+ * 'um' Perform RAM test
+ * 'dm adrs' Display Memory
+ * 'sb adrs' Substitute Byte at adrs
+ * 'c adrs' Call Routine at adrs
+ * 'bw' Boot from Winchester
+ * 'bf' Boot from floppy (MIO, SBX-FDIO)
+ * 'bsf' Boot from floppy (SCSI)
+ *
+ */
+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 )
diff --git a/src/mame/drivers/hnayayoi.c b/src/mame/drivers/hnayayoi.c
index 8865a03dca3..576340f9d4a 100644
--- a/src/mame/drivers/hnayayoi.c
+++ b/src/mame/drivers/hnayayoi.c
@@ -673,6 +673,6 @@ DRIVER_INIT_MEMBER(hnayayoi_state,hnfubuki)
}
-GAME( 1987, hnayayoi, 0, hnayayoi, hnayayoi, driver_device, 0, ROT0, "Dyna Electronics", "Hana Yayoi (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1987, hnfubuki, hnayayoi, hnfubuki, hnfubuki, hnayayoi_state, hnfubuki, ROT0, "Dynax", "Hana Fubuki [BET] (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1987, untoucha, 0, untoucha, untoucha, driver_device, 0, ROT0, "Dynax", "Untouchable (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1987, hnayayoi, 0, hnayayoi, hnayayoi, driver_device, 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 (Japan)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/hng64.c b/src/mame/drivers/hng64.c
index 2d55b0e02d5..7a5d73d7b93 100644
--- a/src/mame/drivers/hng64.c
+++ b/src/mame/drivers/hng64.c
@@ -1,9 +1,8 @@
// license:LGPL-2.1+
-// copyright-holders:David Haywood, Angelo Salese, ElSemi, Andrew Gardner, Andrew Zaferakis
+// copyright-holders:David Haywood, Angelo Salese, ElSemi, Andrew Gardner
/* Hyper NeoGeo 64
Driver by David Haywood, ElSemi, Andrew Gardner and Angelo Salese
-Rasterizing code provided in part by Andrew Zaferakis.
Notes:
@@ -503,20 +502,6 @@ READ8_MEMBER(hng64_state::hng64_com_share_r)
return m_com_shared[offset];
}
-WRITE32_MEMBER(hng64_state::hng64_pal_w)
-{
- UINT32 *paletteram = m_generic_paletteram_32;
- int r, g, b/*, a*/;
-
- COMBINE_DATA(&paletteram[offset]);
-
- b = ((paletteram[offset] & 0x000000ff) >>0);
- g = ((paletteram[offset] & 0x0000ff00) >>8);
- r = ((paletteram[offset] & 0x00ff0000) >>16);
- //a = ((paletteram[offset] & 0xff000000) >>24);
- m_palette->set_pen_color(offset,rgb_t(r,g,b));
-}
-
READ32_MEMBER(hng64_state::hng64_sysregs_r)
{
UINT16 rtc_addr;
@@ -545,7 +530,7 @@ READ32_MEMBER(hng64_state::hng64_sysregs_r)
//case 0x108c:
case 0x1104: return m_irq_level;
case 0x111c:
- printf("Read to IRQ ACK?\n");
+ //printf("Read to IRQ ACK?\n");
break;
case 0x1254: return 0x00000000; //dma status, 0x800
}
@@ -608,7 +593,7 @@ WRITE32_MEMBER(hng64_state::hng64_sysregs_w)
break;
//0x110c global irq mask?
/* irq ack */
- case 0x111c: m_irq_pending &= ~m_sysregs[offset]; m_set_irq(0x0000); break;
+ case 0x111c: m_irq_pending &= ~m_sysregs[offset]; set_irq(0x0000); break;
case 0x1204: m_dma_start = m_sysregs[offset]; break;
case 0x1214: m_dma_dst = m_sysregs[offset]; break;
case 0x1224:
@@ -827,7 +812,7 @@ WRITE32_MEMBER(hng64_state::tcram_w)
m_screen_dis = 0;
visarea.set(min_x, min_x + max_x - 1, min_y, min_y + max_y - 1);
- m_screen->configure(HTOTAL, VTOTAL, visarea, m_screen->frame_period().attoseconds );
+ m_screen->configure(HTOTAL, VTOTAL, visarea, m_screen->frame_period().attoseconds() );
}
}
@@ -931,7 +916,7 @@ READ16_MEMBER(hng64_state::main_sound_comms_r)
case 0x06:
return sound_latch[1];
default:
- printf("%08x R\n",offset*2);
+ //printf("%08x R\n",offset*2);
break;
}
return 0;
@@ -950,10 +935,10 @@ WRITE16_MEMBER(hng64_state::main_sound_comms_w)
case 0x08:
m_audiocpu->set_input_line(5, (data & 1) ? ASSERT_LINE : CLEAR_LINE);
if(data & 0xfe)
- printf("IRQ send %02x?\n",data);
+ //printf("IRQ send %02x?\n",data);
break;
default:
- printf("%02x %04x\n",offset*2,data);
+ //printf("%02x %04x\n",offset*2,data);
break;
}
}
@@ -983,7 +968,7 @@ static ADDRESS_MAP_START( hng_map, AS_PROGRAM, 32, hng64_state )
AM_RANGE(0x20010000, 0x20010013) AM_RAM AM_SHARE("spriteregs")
AM_RANGE(0x20100000, 0x2017ffff) AM_RAM_WRITE(hng64_videoram_w) AM_SHARE("videoram") // Tilemap
AM_RANGE(0x20190000, 0x20190037) AM_RAM_WRITE(hng64_vregs_w) AM_SHARE("videoregs")
- AM_RANGE(0x20200000, 0x20203fff) AM_RAM_WRITE(hng64_pal_w) AM_SHARE("paletteram")
+ AM_RANGE(0x20200000, 0x20203fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x20208000, 0x2020805f) AM_READWRITE(tcram_r, tcram_w) AM_SHARE("tcram") // Transition Control
AM_RANGE(0x20300000, 0x203001ff) AM_WRITE16(dl_w,0xffffffff) // 3d Display List
AM_RANGE(0x20300200, 0x20300203) AM_WRITE(dl_upload_w) // 3d Display List Upload
@@ -1315,7 +1300,6 @@ static const gfx_layout hng64_16x16x4_tilelayout =
32*32
};
-
static const gfx_layout hng64_16x16x8_tilelayout =
{
16,16,
@@ -1369,9 +1353,7 @@ static const gfx_layout hng64_texlayout =
texlayout_yoffset
};
-
static GFXDECODE_START( hng64 )
-
/* tilemap tiles */
GFXDECODE_ENTRY( "scrtile", 0, hng64_8x8x4_tilelayout, 0x0, 0x100 )
GFXDECODE_ENTRY( "scrtile", 0, hng64_8x8x8_tilelayout, 0x0, 0x10 )
@@ -1389,12 +1371,11 @@ static void hng64_reorder( UINT8* gfxregion, size_t gfxregionsize)
{
// by default 2 4bpp tiles are stored in each 8bpp tile, this makes decoding in MAME harder than it needs to be
// reorder them
- int i;
UINT8 tilesize = 4*8; // 4 bytes per line, 8 lines
dynamic_buffer buffer(gfxregionsize);
- for (i=0;i<gfxregionsize/2;i+=tilesize)
+ for (int i = 0; i < gfxregionsize/2; i += tilesize)
{
memcpy(&buffer[i*2+tilesize], gfxregion+i, tilesize);
memcpy(&buffer[i*2], gfxregion+i+(gfxregionsize/2), tilesize);
@@ -1408,7 +1389,6 @@ DRIVER_INIT_MEMBER(hng64_state,hng64_reorder_gfx)
hng64_reorder(memregion("scrtile")->base(), memregion("scrtile")->bytes());
}
-
DRIVER_INIT_MEMBER(hng64_state,hng64)
{
/* 1 meg of virtual address space for the com cpu */
@@ -1460,8 +1440,7 @@ DRIVER_INIT_MEMBER(hng64_state,hng64_shoot)
DRIVER_INIT_CALL(hng64);
}
-
-void hng64_state::m_set_irq(UINT32 irq_vector)
+void hng64_state::set_irq(UINT32 irq_vector)
{
/*
TODO:
@@ -1489,8 +1468,7 @@ void hng64_state::m_set_irq(UINT32 irq_vector)
if(m_irq_pending)
{
- int i;
- for(i=0;i<31;i++)
+ for(int i = 0; i < 31; i++)
{
if(m_irq_pending & 1 << i)
{
@@ -1511,15 +1489,14 @@ TIMER_DEVICE_CALLBACK_MEMBER(hng64_state::hng64_irq)
switch(scanline)
{
- case 224*2: m_set_irq(0x0001); break; // lv 0 vblank irq
-// case 0*2: m_set_irq(0x0002); break; // lv 1
-// case 32*2: m_set_irq(0x0008); break; // lv 2
-// case 64*2: m_set_irq(0x0008); break; // lv 2
- case 128*2: m_set_irq(0x0800); break; // lv 11 network irq?
+ case 224*2: set_irq(0x0001); break; // lv 0 vblank irq
+// case 0*2: set_irq(0x0002); break; // lv 1
+// case 32*2: set_irq(0x0008); break; // lv 2
+// case 64*2: set_irq(0x0008); break; // lv 2
+ case 128*2: set_irq(0x0800); break; // lv 11 network irq?
}
}
-
void hng64_state::machine_start()
{
/* set the fastest DRC options */
@@ -1533,20 +1510,14 @@ void hng64_state::machine_start()
m_comm_rom = memregion("user2")->base();
m_comm_ram = auto_alloc_array(machine(),UINT8,0x10000);
-
for (int i = 0; i < 0x38 / 4; i++)
{
m_videoregs[i] = 0xdeadbeef;
}
-
}
-
void hng64_state::machine_reset()
{
- // "Display List" init - ugly
-// m_activeBuffer = 0;
-
/* For simulate MCU stepping */
m_mcu_fake_time = 0;
m_mcu_en = 0;
@@ -1566,9 +1537,6 @@ static MACHINE_CONFIG_START(hng64, hng64_state)
MCFG_CPU_PROGRAM_MAP(hng_map)
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", hng64_state, hng64_irq, "screen", 0, 1)
-
-
-
MCFG_NVRAM_ADD_0FILL("nvram")
MCFG_DEVICE_ADD("rtc", MSM6242, XTAL_32_768kHz)
@@ -1581,12 +1549,13 @@ static MACHINE_CONFIG_START(hng64, hng64_state)
MCFG_SCREEN_VBLANK_DRIVER(hng64_state, screen_eof_hng64)
MCFG_PALETTE_ADD("palette", 0x1000)
+ MCFG_PALETTE_FORMAT(XRGB)
MCFG_FRAGMENT_ADD( hng64_audio )
MCFG_FRAGMENT_ADD( hng64_network )
-
MACHINE_CONFIG_END
+
#define ROM_LOAD_HNG64_BIOS(bios,name,offset,length,hash) \
ROMX_LOAD(name, offset, length, hash, ROM_BIOS(bios+1)) /* Note '+1' */
@@ -1596,11 +1565,11 @@ MACHINE_CONFIG_END
ROM_SYSTEM_BIOS( 0, "japan", "Japan" ) \
ROM_LOAD_HNG64_BIOS( 0, "brom1.bin", 0x00000, 0x080000, CRC(a30dd3de) SHA1(3e2fd0a56214e6f5dcb93687e409af13d065ea30) ) \
ROM_SYSTEM_BIOS( 1, "us", "USA" ) \
- ROM_LOAD_HNG64_BIOS( 1, "bios_us.bin", 0x00000, 0x080000, CRC(ab5948d6) SHA1(f8b940c1ae5ce2d3b2cd0c9bfaf6e5b063cec06e) ) \
+ ROM_LOAD_HNG64_BIOS( 1, "bios_us.bin", 0x00000, 0x080000, CRC(ab5948d6) SHA1(f8b940c1ae5ce2d3b2cd0c9bfaf6e5b063cec06e) ) \
ROM_SYSTEM_BIOS( 2, "export", "Export" ) \
- ROM_LOAD_HNG64_BIOS( 2, "bios_export.bin", 0x00000, 0x080000, CRC(bbf07ec6) SHA1(5656aa077f6a6d43953f15b5123eea102a9d5313) ) \
+ ROM_LOAD_HNG64_BIOS( 2, "bios_export.bin", 0x00000, 0x080000, CRC(bbf07ec6) SHA1(5656aa077f6a6d43953f15b5123eea102a9d5313) ) \
ROM_SYSTEM_BIOS( 3, "korea", "Korea" ) \
- ROM_LOAD_HNG64_BIOS( 3, "bios_korea.bin", 0x00000, 0x080000, CRC(ac953e2e) SHA1(f502188ef252b7c9d04934c4b525730a116de48b) ) \
+ ROM_LOAD_HNG64_BIOS( 3, "bios_korea.bin", 0x00000, 0x080000, CRC(ac953e2e) SHA1(f502188ef252b7c9d04934c4b525730a116de48b) ) \
ROM_REGION( 0x0100000, "user2", 0 ) /* KL5C80 BIOS */ \
ROM_LOAD ( "from1.bin", 0x000000, 0x080000, CRC(6b933005) SHA1(e992747f46c48b66e5509fe0adf19c91250b00c7) ) \
ROM_REGION( 0x0100000, "fpga", 0 ) /* FPGA data */ \
@@ -2022,13 +1991,13 @@ ROM_START( buriki )
ROM_END
/* Bios */
-GAME( 1997, hng64, 0, hng64, hng64, hng64_state, hng64, ROT0, "SNK", "Hyper NeoGeo 64 Bios", GAME_NOT_WORKING|GAME_NO_SOUND|GAME_IS_BIOS_ROOT )
+GAME( 1997, hng64, 0, hng64, hng64, hng64_state, hng64, ROT0, "SNK", "Hyper NeoGeo 64 Bios", MACHINE_NOT_WORKING|MACHINE_NO_SOUND|MACHINE_IS_BIOS_ROOT )
/* Games */
-GAME( 1997, roadedge, hng64, hng64, roadedge, hng64_state, hng64_race, ROT0, "SNK", "Roads Edge / Round Trip (rev.B)", GAME_NOT_WORKING|GAME_NO_SOUND ) /* 001 */
-GAME( 1998, sams64, hng64, hng64, hng64, hng64_state, ss64, ROT0, "SNK", "Samurai Shodown 64 / Samurai Spirits 64", GAME_NOT_WORKING|GAME_NO_SOUND ) /* 002 */
-GAME( 1998, xrally, hng64, hng64, roadedge, hng64_state, hng64_race, ROT0, "SNK", "Xtreme Rally / Off Beat Racer!", GAME_NOT_WORKING|GAME_NO_SOUND ) /* 003 */
-GAME( 1998, bbust2, hng64, hng64, bbust2, hng64_state, hng64_shoot, ROT0, "SNK", "Beast Busters 2nd Nightmare", GAME_NOT_WORKING|GAME_NO_SOUND ) /* 004 */
-GAME( 1998, sams64_2, hng64, hng64, hng64, hng64_state, ss64, ROT0, "SNK", "Samurai Shodown: Warrior's Rage / Samurai Spirits 2: Asura Zanmaden", GAME_NOT_WORKING|GAME_NO_SOUND ) /* 005 */
-GAME( 1998, fatfurwa, hng64, hng64, hng64, hng64_state, fatfurwa, ROT0, "SNK", "Fatal Fury: Wild Ambition (rev.A)", GAME_NOT_WORKING|GAME_NO_SOUND ) /* 006 */
-GAME( 1999, buriki, hng64, hng64, hng64, hng64_state, buriki, ROT0, "SNK", "Buriki One (rev.B)", GAME_NOT_WORKING|GAME_NO_SOUND ) /* 007 */
+GAME( 1997, roadedge, hng64, hng64, roadedge, hng64_state, hng64_race, ROT0, "SNK", "Roads Edge / Round Trip (rev.B)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND ) /* 001 */
+GAME( 1998, sams64, hng64, hng64, hng64, hng64_state, ss64, ROT0, "SNK", "Samurai Shodown 64 / Samurai Spirits 64", MACHINE_NOT_WORKING|MACHINE_NO_SOUND ) /* 002 */
+GAME( 1998, xrally, hng64, hng64, roadedge, hng64_state, hng64_race, ROT0, "SNK", "Xtreme Rally / Off Beat Racer!", MACHINE_NOT_WORKING|MACHINE_NO_SOUND ) /* 003 */
+GAME( 1998, bbust2, hng64, hng64, bbust2, hng64_state, hng64_shoot, ROT0, "SNK", "Beast Busters 2nd Nightmare", MACHINE_NOT_WORKING|MACHINE_NO_SOUND ) /* 004 */
+GAME( 1998, sams64_2, hng64, hng64, hng64, hng64_state, ss64, ROT0, "SNK", "Samurai Shodown: Warrior's Rage / Samurai Spirits 2: Asura Zanmaden", MACHINE_NOT_WORKING|MACHINE_NO_SOUND ) /* 005 */
+GAME( 1998, fatfurwa, hng64, hng64, hng64, hng64_state, fatfurwa, ROT0, "SNK", "Fatal Fury: Wild Ambition (rev.A)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND ) /* 006 */
+GAME( 1999, buriki, hng64, hng64, hng64, hng64_state, buriki, ROT0, "SNK", "Buriki One (rev.B)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND ) /* 007 */
diff --git a/src/mame/drivers/holeland.c b/src/mame/drivers/holeland.c
index c81e97ee057..6b48104e736 100644
--- a/src/mame/drivers/holeland.c
+++ b/src/mame/drivers/holeland.c
@@ -479,7 +479,7 @@ ROM_START( crzrallyg )
ROM_END
-GAME( 1984, holeland, 0, holeland, holeland, driver_device, 0, ROT0, "Tecfri", "Hole Land", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1985, crzrally, 0, crzrally, crzrally, driver_device, 0, ROT270, "Tecfri", "Crazy Rally (set 1)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1985, crzrallya, crzrally, crzrally, crzrally, driver_device, 0, ROT270, "Tecfri", "Crazy Rally (set 2)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1985, crzrallyg, crzrally, crzrally, crzrally, driver_device, 0, ROT270, "Tecfri (Gecas license)", "Crazy Rally (Gecas license)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+GAME( 1984, holeland, 0, holeland, holeland, driver_device, 0, ROT0, "Tecfri", "Hole Land", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/homedata.c b/src/mame/drivers/homedata.c
index 3738e18bef5..b10c744920f 100644
--- a/src/mame/drivers/homedata.c
+++ b/src/mame/drivers/homedata.c
@@ -2033,23 +2033,23 @@ 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)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1987, mhgaiden, 0, mrokumei, mjhokite, driver_device, 0, ROT0, "Home Data", "Mahjong Hourouki Gaiden (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1988, mjhokite, 0, mrokumei, mjhokite, driver_device, 0, ROT0, "Home Data", "Mahjong Hourouki Okite (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1988, mjclinic, 0, mrokumei, mjhokite, driver_device, 0, ROT0, "Home Data", "Mahjong Clinic (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1988, mrokumei, 0, mrokumei, mjhokite, driver_device, 0, ROT0, "Home Data", "Mahjong Rokumeikan (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-
-GAME( 1988, reikaids, 0, reikaids, reikaids, homedata_state, reikaids, ROT0, "Home Data", "Reikai Doushi (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1991, battlcry, 0, reikaids, battlcry, homedata_state, battlcry, ROT0, "Home Data", "Battlecry", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1989, mjkojink, 0, pteacher, pteacher, driver_device, 0, ROT0, "Home Data", "Mahjong Kojinkyouju (Private Teacher) (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1989, vitaminc, 0, pteacher, pteacher, driver_device, 0, ROT0, "Home Data", "Mahjong Vitamin C (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1989, mjyougo, 0, pteacher, pteacher, driver_device, 0, ROT0, "Home Data", "Mahjong-yougo no Kisotairyoku (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1991, mjkinjas, 0, mjkinjas, pteacher, driver_device, 0, ROT0, "Home Data", "Mahjong Kinjirareta Asobi (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1992?,jogakuen, 0, pteacher, jogakuen, homedata_state, jogakuen, ROT0, "Windom", "Mahjong Jogakuen (Japan)", GAME_SUPPORTS_SAVE )
-
-GAME( 1990, lemnangl, 0, lemnangl, lemnangl, driver_device, 0, ROT0, "Home Data", "Mahjong Lemon Angel (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1991, mjprivat, 0, lemnangl, pteacher, driver_device, 0, ROT0, "Matoba", "Mahjong Private (Japan)", GAME_SUPPORTS_SAVE )
-
-GAME( 1991?,mjikaga, 0, lemnangl, mjikaga, homedata_state, mjikaga, ROT0, "Mitchell", "Mahjong Ikaga Desu ka (Japan)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-
-GAME( 1988, mirderby, 0, mirderby, mirderby, homedata_state, mirderby, ROT0, "Home Data?", "Miracle Derby - Ascot", GAME_NO_SOUND|GAME_NOT_WORKING )
+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)", 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( 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( 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( 1990, lemnangl, 0, lemnangl, lemnangl, 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( 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 )
diff --git a/src/mess/drivers/homelab.c b/src/mame/drivers/homelab.c
index 9733d9ff21a..0d6fc6735f1 100644
--- a/src/mess/drivers/homelab.c
+++ b/src/mame/drivers/homelab.c
@@ -904,8 +904,8 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND_HW )
-COMP( 1983, homelab3, homelab2, 0, homelab3, homelab3, driver_device, 0, "Jozsef and Endre Lukacs", "Homelab 3", GAME_NOT_WORKING )
-COMP( 1984, homelab4, homelab2, 0, homelab3, homelab3, driver_device, 0, "Jozsef and Endre Lukacs", "Homelab 4", GAME_NOT_WORKING )
-COMP( 1984, brailab4, homelab2, 0, brailab4, brailab4, homelab_state, brailab4, "Jozsef and Endre Lukacs", "Brailab 4", GAME_NOT_WORKING )
-COMP( 1988, braiplus, homelab2, 0, brailab4, brailab4, homelab_state, brailab4, "Jozsef and Endre Lukacs", "Brailab Plus", GAME_NOT_WORKING | GAME_IS_SKELETON )
+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 )
diff --git a/src/mame/drivers/homerun.c b/src/mame/drivers/homerun.c
index d745c922d4f..5dfe6ecba4d 100644
--- a/src/mame/drivers/homerun.c
+++ b/src/mame/drivers/homerun.c
@@ -450,6 +450,6 @@ ROM_START( ganjaja )
ROM_END
-GAME( 1988, homerun, 0, homerun, homerun, driver_device, 0, ROT0, "Jaleco", "Moero!! Pro Yakyuu Homerun Kyousou", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1988, dynashot, 0, dynashot, dynashot, driver_device, 0, ROT0, "Jaleco", "Dynamic Shoot Kyousou", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1990, ganjaja, 0, ganjaja, ganjaja, driver_device, 0, ROT0, "Jaleco", "Ganbare Jajamaru Saisho wa Goo / Ganbare Jajamaru Hop Step & Jump", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/homez80.c b/src/mame/drivers/homez80.c
index f20a0b9c887..3d403ba51d7 100644
--- a/src/mess/drivers/homez80.c
+++ b/src/mame/drivers/homez80.c
@@ -312,4 +312,4 @@ 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", GAME_NO_SOUND_HW)
+COMP( 2008, homez80, 0, 0, homez80, homez80, driver_device, 0, "Kun-Szabo Marton", "Homebrew Z80 Computer", MACHINE_NO_SOUND_HW)
diff --git a/src/mess/drivers/horizon.c b/src/mame/drivers/horizon.c
index 6cb01209db8..a888a4a3e0a 100644
--- a/src/mess/drivers/horizon.c
+++ b/src/mame/drivers/horizon.c
@@ -217,5 +217,5 @@ ROM_END
//**************************************************************************
// 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)", GAME_NOT_WORKING | GAME_NO_SOUND_HW )
-COMP( 1979, vector1, nshrz, 0, horizon, horizon, driver_device, 0, "Vector Graphic", "Vector 1+ (DD drive)", GAME_NOT_WORKING | GAME_NO_SOUND_HW )
+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 )
diff --git a/src/mame/drivers/hornet.c b/src/mame/drivers/hornet.c
index 3ea911faaf2..e76de3256c8 100644
--- a/src/mame/drivers/hornet.c
+++ b/src/mame/drivers/hornet.c
@@ -1539,17 +1539,17 @@ ROM_END
/*************************************************************************/
-GAME( 1998, gradius4, 0, hornet, hornet, hornet_state, hornet, ROT0, "Konami", "Gradius 4: Fukkatsu", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1998, nbapbp, 0, hornet, hornet, hornet_state, hornet, ROT0, "Konami", "NBA Play By Play", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAMEL( 1998, terabrst, 0, terabrst, hornet, hornet_state, hornet_2board, ROT0, "Konami", "Teraburst (1998/07/17 ver UEL)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_dualhsxs )
-GAMEL( 1998, terabrsta, terabrst, terabrst, hornet, hornet_state, hornet_2board, ROT0, "Konami", "Teraburst (1998/02/25 ver AAA)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_dualhsxs )
+GAME( 1998, gradius4, 0, hornet, hornet, hornet_state, hornet, ROT0, "Konami", "Gradius 4: Fukkatsu", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1998, nbapbp, 0, hornet, hornet, hornet_state, hornet, ROT0, "Konami", "NBA Play By Play", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAMEL( 1998, terabrst, 0, terabrst, hornet, hornet_state, hornet_2board, ROT0, "Konami", "Teraburst (1998/07/17 ver UEL)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_dualhsxs )
+GAMEL( 1998, terabrsta, terabrst, terabrst, hornet, hornet_state, hornet_2board, ROT0, "Konami", "Teraburst (1998/02/25 ver AAA)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_dualhsxs )
// The region comes from the Timekeeper NVRAM, without a valid default all sets except 'xxD, Ver 1.33' will init their NVRAM to UAx versions, the xxD set seems to incorrectly init it to JXD, which isn't a valid
// version, and thus can't be booted. If you copy the NVRAM from another already initialized set, it will boot as UAD.
// to get the actual game to boot you must calibrate the guns etc.
-GAMEL( 2000, sscope, 0, hornet_2board, sscope, hornet_state, hornet_2board, ROT0, "Konami", "Silent Scope (ver xxD, Ver 1.33)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE, layout_dualhsxs )
-GAMEL( 2000, sscopec, sscope, hornet_2board, sscope, hornet_state, hornet_2board, ROT0, "Konami", "Silent Scope (ver xxC, Ver 1.30)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE, layout_dualhsxs )
-GAMEL( 2000, sscopeb, sscope, hornet_2board, sscope, hornet_state, hornet_2board, ROT0, "Konami", "Silent Scope (ver xxB, Ver 1.20)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE, layout_dualhsxs )
-GAMEL( 2000, sscopea, sscope, hornet_2board, sscope, hornet_state, hornet_2board, ROT0, "Konami", "Silent Scope (ver xxA, Ver 1.00)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE, layout_dualhsxs )
+GAMEL( 2000, sscope, 0, hornet_2board, sscope, hornet_state, hornet_2board, ROT0, "Konami", "Silent Scope (ver xxD, Ver 1.33)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE, layout_dualhsxs )
+GAMEL( 2000, sscopec, sscope, hornet_2board, sscope, hornet_state, hornet_2board, ROT0, "Konami", "Silent Scope (ver xxC, Ver 1.30)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE, layout_dualhsxs )
+GAMEL( 2000, sscopeb, sscope, hornet_2board, sscope, hornet_state, hornet_2board, ROT0, "Konami", "Silent Scope (ver xxB, Ver 1.20)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE, layout_dualhsxs )
+GAMEL( 2000, sscopea, sscope, hornet_2board, sscope, hornet_state, hornet_2board, ROT0, "Konami", "Silent Scope (ver xxA, Ver 1.00)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE, layout_dualhsxs )
-GAMEL( 2000, sscope2, 0, sscope2, sscope2, hornet_state, hornet_2board, ROT0, "Konami", "Silent Scope 2", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE, layout_dualhsxs )
+GAMEL( 2000, sscope2, 0, sscope2, sscope2, hornet_state, hornet_2board, ROT0, "Konami", "Silent Scope 2", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE, layout_dualhsxs )
diff --git a/src/mame/drivers/hotblock.c b/src/mame/drivers/hotblock.c
index 8283c48693b..5ffb9bcf445 100644
--- a/src/mame/drivers/hotblock.c
+++ b/src/mame/drivers/hotblock.c
@@ -238,4 +238,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", GAME_SUPPORTS_SAVE )
+GAME( 1993, hotblock, 0, hotblock, hotblock, driver_device, 0, ROT0, "NIX?", "Hot Blocks - Tetrix II", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/hotstuff.c b/src/mame/drivers/hotstuff.c
index f17b35ff388..3ce897ea40b 100644
--- a/src/mame/drivers/hotstuff.c
+++ b/src/mame/drivers/hotstuff.c
@@ -152,4 +152,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)", GAME_NOT_WORKING | GAME_NO_SOUND )
+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 )
diff --git a/src/mess/drivers/hp16500.c b/src/mame/drivers/hp16500.c
index 9dcefa85a6e..b847da0c19b 100644
--- a/src/mess/drivers/hp16500.c
+++ b/src/mame/drivers/hp16500.c
@@ -501,7 +501,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", GAME_NOT_WORKING|GAME_NO_SOUND)
-COMP( 1989, hp1651b, 0, 0, hp1651, hp16500, driver_device, 0, "Hewlett Packard", "HP 1651b", GAME_NOT_WORKING|GAME_NO_SOUND)
-COMP( 1991, hp165ka0, 0, 0, hp16500a, hp16500, driver_device, 0, "Hewlett Packard", "HP 16500a", GAME_NOT_WORKING|GAME_NO_SOUND)
-COMP( 1991, hp16500b, 0, 0, hp16500, hp16500, driver_device, 0, "Hewlett Packard", "HP 16500b", GAME_NOT_WORKING|GAME_NO_SOUND)
+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)
diff --git a/src/mess/drivers/hp48.c b/src/mame/drivers/hp48.c
index 233ce5e5208..2b9e31dfcdc 100644
--- a/src/mess/drivers/hp48.c
+++ b/src/mame/drivers/hp48.c
@@ -1370,4 +1370,4 @@ COMP ( 1993, hp48g , hp48gx, 0, hp48g, hp48gx, hp48_state, hp48, "Hewlett Packa
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", GAME_NOT_WORKING )
+COMP ( 2000, hp39g , 0, 0, hp48g, hp48gx, hp48_state, hp48, "Hewlett Packard", "HP39G", MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/hp49gp.c b/src/mame/drivers/hp49gp.c
index 567325c9501..dafdf563516 100644
--- a/src/mess/drivers/hp49gp.c
+++ b/src/mame/drivers/hp49gp.c
@@ -334,4 +334,4 @@ ROM_START( hp49gp )
ROMX_LOAD( "31504.bin", 0x0000, 0x4000, CRC(9c71825e) SHA1(0a12b2b70a8573bc90ab5be06e6b2f814b8544ae), ROM_BIOS(2) )
ROM_END
-COMP(2009, hp49gp, 0, 0, hp49gp, hp49gp, hp49gp_state, hp49gp, "Hewlett Packard", "HP49G+", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP(2009, hp49gp, 0, 0, hp49gp, hp49gp, hp49gp_state, hp49gp, "Hewlett Packard", "HP49G+", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/hp64k.c b/src/mame/drivers/hp64k.c
index 7bf0107a597..e56ce89f62b 100644
--- a/src/mess/drivers/hp64k.c
+++ b/src/mame/drivers/hp64k.c
@@ -6,16 +6,16 @@
// ***************************************
//
// Documentation used for this driver:
-// [1] HP, manual 64100-90910, dec 83 rev. - Model 64100A mainframe service manual
+// [1] HP, manual 64100-90910, dec 83 rev. - Model 64100A mainframe service manual
// [2] HP, manual 64941-90902, apr 83 rev. - Model 64941A Flexible disc (Floppy) drive
// controller service manual
//
// A 64100A system ("mainframe" in HP docs) is built around a 13 slot card cage.
// The first 4 slots are reserved for specific card types:
-// J1 I/O card
-// J2 Display and RAM card
-// J3 CPU card
-// J4 Floppy interface card
+// J1 I/O card
+// J2 Display and RAM card
+// J3 CPU card
+// J4 Floppy interface card
//
// The rest of the slots are for CPU emulators, logic analyzers and so on (i.e. those
// cards doing the main functions of a development system).
@@ -35,7 +35,7 @@
// CPU card (64100-66521 or 64100-66532)
//
// This board holds the HP custom CPU with its massive heatsink, the BIOS roms and little else.
-// U30 5061-3011 HP "hybrid" CPU @ 6.25 MHz
+// U30 5061-3011 HP "hybrid" CPU @ 6.25 MHz
// U8
// U9
// U10
@@ -43,7 +43,7 @@
// U18
// U19
// U20
-// U21 2732 16kw of BIOS EPROMs
+// U21 2732 16kw of BIOS EPROMs
//
// **********
// I/O card (64100-66520)
@@ -59,8 +59,8 @@
// exponentially decaying envelope (a bell sound) whereas in the emulation it's inside a
// simple rectangular envelope.
//
-//*U20 HP "PHI" Custom HP-IB interface microcontroller
-//*U28 i8251 RS232 UART
+//*U20 HP "PHI" Custom HP-IB interface microcontroller
+// U28 i8251 RS232 UART
//
// **********
// Display card (64100-66530)
@@ -72,10 +72,10 @@
// CRTC is designed to refresh the whole DRAM in parallel. For some mysterious reason the first
// display row is always blanked (its 40 words of RAM are even used for the stack!).
//
-// U33 i8275 CRT controller
-// U60 2716 Character generator ROM
+// U33 i8275 CRT controller
+// U60 2716 Character generator ROM
// U23-U30
-// U38-U45 HM4864 64 kw of DRAM
+// U38-U45 HM4864 64 kw of DRAM
//
// **********
// Floppy I/F card (64941-66501)
@@ -87,7 +87,7 @@
// I tried to reverse engineer the FSM by looking at the schematics and applying some sensible
// assumptions. Then I did a sort of "clean room" re-implementation. It appears to work correctly.
//
-// U4 FD1791A Floppy disk controller
+// U4 FD1791A Floppy disk controller
//
// A brief summary of the reverse-engineered interface of this card follows.
//
@@ -148,8 +148,6 @@
//
// ICs that are not emulated yet are marked with "*"
//
-// TODO:
-// - RS232 I/F
#include "emu.h"
#include "cpu/hphybrid/hphybrid.h"
@@ -158,12 +156,15 @@
#include "machine/74123.h"
#include "machine/rescap.h"
#include "sound/beep.h"
+#include "machine/com8116.h"
+#include "machine/i8251.h"
+#include "bus/rs232/rs232.h"
#define BIT_MASK(n) (1U << (n))
// Macros to clear/set single bits
-#define BIT_CLR(w , n) ((w) &= ~BIT_MASK(n))
-#define BIT_SET(w , n) ((w) |= BIT_MASK(n))
+#define BIT_CLR(w , n) ((w) &= ~BIT_MASK(n))
+#define BIT_SET(w , n) ((w) |= BIT_MASK(n))
class hp64k_state : public driver_device
{
@@ -212,9 +213,22 @@ public:
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<hp_5061_3011_cpu_device> m_cpu;
required_device<i8275_device> m_crtc;
@@ -232,6 +246,10 @@ private:
required_ioport m_rs232_sw;
required_device<beep_device> m_beeper;
required_device<timer_device> m_beep_timer;
+ required_device<com8116_device> m_baud_rate;
+ required_ioport m_s5_sw;
+ required_device<i8251_device> m_uart;
+ required_device<rs232_port_device> m_rs232;
// Character generator
const UINT8 *m_chargen;
@@ -256,11 +274,11 @@ private:
UINT8 m_slot_map;
// Floppy I/F
- UINT8 m_floppy_in_latch_msb; // U23
- UINT8 m_floppy_in_latch_lsb; // U38
- UINT8 m_floppy_out_latch_msb; // U22
- UINT8 m_floppy_out_latch_lsb; // U37
- UINT8 m_floppy_if_ctrl; // U24
+ UINT8 m_floppy_in_latch_msb; // U23
+ UINT8 m_floppy_in_latch_lsb; // U38
+ UINT8 m_floppy_out_latch_msb; // U22
+ UINT8 m_floppy_out_latch_lsb; // U37
+ UINT8 m_floppy_if_ctrl; // U24
bool m_floppy_dmaen;
bool m_floppy_dmai;
bool m_floppy_mdci;
@@ -268,8 +286,8 @@ private:
bool m_floppy_drq;
bool m_floppy0_wpt;
bool m_floppy1_wpt;
- UINT8 m_floppy_drv_ctrl; // U39
- UINT8 m_floppy_status; // U25
+ UINT8 m_floppy_drv_ctrl; // U39
+ UINT8 m_floppy_status; // U25
typedef enum {
HP64K_FLPST_IDLE,
@@ -281,6 +299,15 @@ private:
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 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)
@@ -293,22 +320,25 @@ 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)
+ 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)
+ 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)
+ 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)
+ AM_RANGE(HP_MAKE_IOADDR(6 , 0) , HP_MAKE_IOADDR(6 , 3)) AM_READ(hp64k_usart_r)
// PA = 7, IC = 2
- // Rear-panel switches
- AM_RANGE(HP_MAKE_IOADDR(7 , 2) , HP_MAKE_IOADDR(7 , 2)) AM_READ(hp64k_rear_sw_r)
+ // 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)
+ 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)
@@ -334,7 +364,11 @@ hp64k_state::hp64k_state(const machine_config &mconfig, device_type type, const
m_rear_panel_sw(*this , "rear_sw"),
m_rs232_sw(*this , "rs232_sw"),
m_beeper(*this , "beeper"),
- m_beep_timer(*this , "beep_timer")
+ 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")
{
}
@@ -372,6 +406,13 @@ void hp64k_state::machine_reset()
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;
+
}
UINT8 hp64k_state::hp64k_crtc_filter(UINT8 data)
@@ -895,9 +936,125 @@ void hp64k_state::hp64k_floppy_wpt_cb(floppy_image_device *floppy , int state)
READ16_MEMBER(hp64k_state::hp64k_usart_r)
{
- // todo
+ UINT16 tmp;
+
+ if ((offset & 1) == 0) {
+ tmp = m_uart->status_r(space , 0);
+ } else {
+ tmp = m_uart->data_r(space , 0);
+ }
+
// bit 8 == bit 7 rear panel switches (modem/terminal) ???
- return m_rs232_sw->read() << 8;
+
+ tmp |= (m_rs232_sw->read() << 8);
+
+ if (BIT(m_rear_panel_sw->read() , 7)) {
+ BIT_SET(tmp , 8);
+ }
+
+ return tmp;
+}
+
+WRITE16_MEMBER(hp64k_state::hp64k_usart_w)
+{
+ if ((offset & 1) == 0) {
+ m_uart->control_w(space , 0 , (UINT8)(data & 0xff));
+ } else {
+ m_uart->data_w(space , 0 , (UINT8)(data & 0xff));
+ }
+}
+
+WRITE_LINE_MEMBER(hp64k_state::hp64k_rxrdy_w)
+{
+ if (state) {
+ BIT_SET(m_irl_pending , 6);
+ } else {
+ BIT_CLR(m_irl_pending , 6);
+ }
+
+ hp64k_update_irl();
+}
+
+WRITE_LINE_MEMBER(hp64k_state::hp64k_txrdy_w)
+{
+ if (state) {
+ BIT_SET(m_irl_pending , 5);
+ } else {
+ BIT_CLR(m_irl_pending , 5);
+ }
+
+ hp64k_update_irl();
+}
+
+WRITE_LINE_MEMBER(hp64k_state::hp64k_txd_w)
+{
+ m_txd_state = state;
+ if (m_loopback) {
+ m_uart->write_rxd(state);
+ }
+ m_rs232->write_txd(state);
+}
+
+WRITE_LINE_MEMBER(hp64k_state::hp64k_dtr_w)
+{
+ m_dtr_state = state;
+ if (m_loopback) {
+ m_uart->write_dsr(state);
+ }
+ m_rs232->write_dtr(state);
+}
+
+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);
+}
+
+WRITE16_MEMBER(hp64k_state::hp64k_loopback_w)
+{
+ 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());
+ }
+}
+
+WRITE_LINE_MEMBER(hp64k_state::hp64k_rs232_rxd_w)
+{
+ 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);
+ }
+}
+
+WRITE_LINE_MEMBER(hp64k_state::hp64k_rs232_cts_w)
+{
+ if (!m_loopback) {
+ m_uart->write_cts(state);
+ }
}
WRITE16_MEMBER(hp64k_state::hp64k_beep_w)
@@ -914,6 +1071,19 @@ TIMER_DEVICE_CALLBACK_MEMBER(hp64k_state::hp64k_beeper_off)
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);
+ }
+ 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
@@ -922,15 +1092,15 @@ static INPUT_PORTS_START(hp64k)
// 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(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)
@@ -938,90 +1108,90 @@ static INPUT_PORTS_START(hp64k)
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(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(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(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(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(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(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(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(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(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(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(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(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(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_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)
@@ -1029,15 +1199,15 @@ static INPUT_PORTS_START(hp64k)
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(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(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)
@@ -1057,82 +1227,106 @@ static INPUT_PORTS_START(hp64k)
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("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)
@@ -1145,11 +1339,12 @@ static MACHINE_CONFIG_START(hp64k , hp64k_state)
// 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))
+ // 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))
@@ -1158,39 +1353,56 @@ static MACHINE_CONFIG_START(hp64k , hp64k_state)
MCFG_SCREEN_ADD("screen" , RASTER)
MCFG_SCREEN_UPDATE_DEVICE("crtc" , i8275_device , screen_update)
MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_SIZE(720 , 390)
MCFG_PALETTE_ADD_MONOCHROME_GREEN_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_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 , NULL)
+ 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)
diff --git a/src/mess/drivers/hp9845.c b/src/mame/drivers/hp9845.c
index 254dc9dc894..2d382a2d1a1 100644
--- a/src/mess/drivers/hp9845.c
+++ b/src/mame/drivers/hp9845.c
@@ -163,10 +163,10 @@ ROM_END
#define rom_hp9845t rom_hp9845b
#define rom_hp9845c rom_hp9845b
-COMP( 1978, hp9845a, 0, 0, hp9845a, hp9845, driver_device, 0, "Hewlett-Packard", "9845A", GAME_IS_SKELETON | GAME_NOT_WORKING | GAME_NO_SOUND )
-COMP( 1978, hp9845s, hp9845a, 0, hp9845a, hp9845, driver_device, 0, "Hewlett-Packard", "9845S", GAME_IS_SKELETON | GAME_NOT_WORKING | GAME_NO_SOUND )
-COMP( 1979, hp9835a, 0, 0, hp9835a, hp9845, driver_device, 0, "Hewlett-Packard", "9835A", GAME_IS_SKELETON | GAME_NOT_WORKING | GAME_NO_SOUND )
-COMP( 1979, hp9835b, hp9835a, 0, hp9835a, hp9845, driver_device, 0, "Hewlett-Packard", "9835B", GAME_IS_SKELETON | GAME_NOT_WORKING | GAME_NO_SOUND )
-COMP( 1980, hp9845b, 0, 0, hp9845b, hp9845, driver_device, 0, "Hewlett-Packard", "9845B", GAME_IS_SKELETON | GAME_NOT_WORKING | GAME_NO_SOUND )
-COMP( 1980, hp9845t, hp9845b, 0, hp9845b, hp9845, driver_device, 0, "Hewlett-Packard", "9845T", GAME_IS_SKELETON | GAME_NOT_WORKING | GAME_NO_SOUND )
-COMP( 1981, hp9845c, hp9845b, 0, hp9845b, hp9845, driver_device, 0, "Hewlett-Packard", "9845C", GAME_IS_SKELETON | GAME_NOT_WORKING | GAME_NO_SOUND )
+COMP( 1978, hp9845a, 0, 0, hp9845a, hp9845, driver_device, 0, "Hewlett-Packard", "9845A", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+COMP( 1978, 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( 1980, hp9845b, 0, 0, hp9845b, hp9845, driver_device, 0, "Hewlett-Packard", "9845B", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+COMP( 1980, hp9845t, hp9845b, 0, hp9845b, hp9845, driver_device, 0, "Hewlett-Packard", "9845T", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+COMP( 1981, hp9845c, hp9845b, 0, hp9845b, hp9845, driver_device, 0, "Hewlett-Packard", "9845C", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mess/drivers/hp9k.c b/src/mame/drivers/hp9k.c
index bb504315408..9fa6ae09513 100644
--- a/src/mess/drivers/hp9k.c
+++ b/src/mame/drivers/hp9k.c
@@ -429,4 +429,4 @@ 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" , GAME_NOT_WORKING | GAME_NO_SOUND )
+COMP( 1982, hp9816, 0, 0, hp9k, hp9k, hp9k_state, hp9k, "Hewlett Packard", "HP 9816" , MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mess/drivers/hp9k_3xx.c b/src/mame/drivers/hp9k_3xx.c
index f79f09b94c1..e29034bd71a 100644
--- a/src/mess/drivers/hp9k_3xx.c
+++ b/src/mame/drivers/hp9k_3xx.c
@@ -466,10 +466,10 @@ ROM_START( hp9k382 )
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", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 1985, hp9k320, 0, 0, hp9k320, hp9k330, driver_device, 0, "Hewlett-Packard", "HP9000/320", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 1987, hp9k330, 0, 0, hp9k330, hp9k330, driver_device, 0, "Hewlett-Packard", "HP9000/330", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 1989, hp9k340, hp9k330,0, hp9k340, hp9k330, driver_device, 0, "Hewlett-Packard", "HP9000/340", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 1988, hp9k370, hp9k330,0, hp9k370, hp9k330, driver_device, 0, "Hewlett-Packard", "HP9000/370", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 1991, hp9k380, 0, 0, hp9k380, hp9k330, driver_device, 0, "Hewlett-Packard", "HP9000/380", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 1991, hp9k382, 0, 0, hp9k382, hp9k330, driver_device, 0, "Hewlett-Packard", "HP9000/382", GAME_NOT_WORKING | GAME_NO_SOUND)
+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)
diff --git a/src/mame/drivers/hp_ipc.c b/src/mame/drivers/hp_ipc.c
new file mode 100644
index 00000000000..1eddffdf46f
--- /dev/null
+++ b/src/mame/drivers/hp_ipc.c
@@ -0,0 +1,358 @@
+// license:BSD-3-Clause
+// copyright-holders:
+/******************************************************************************
+
+
+Integral Personal Computer (HP9807A)
+Hewlett-Packard, 1985
+
+This is a portable mains-powered UNIX workstation computer system produced by Hewlett-Packard and launched in 1985
+Basic hardware specs are....
+- 68000 CPU at 7.96MHz
+- 9" amber electro-luminescent display with a resolution of 255*512 pixels or up to 85 characters x 31 lines (default=80*24) with
+ dedicated 32Kb display memory
+- Internal 3.5" floppy disk drive with the following specification....
+ Encoding: Double Density HP MFM Format
+ Rotational speed: 600 RPM
+ Transfer speed: 62.5kB/second
+ Capacity: 709Kb (709632 bytes)
+ Bytes per sector: 512
+ Sectors per track: 9
+ Total tracks per surface: 80, Available: 77, Spare: 2, Wear: 1
+ Surfaces: 2
+ Interleave: 1
+- HP ThinkJet ink-jet printer integrated into the top of the case. This is a modified HP2225B Thinkjet printer
+- 90-key detachable keyboard
+- ROM: up to 512Kb standard and an additional 512Kb of option ROM
+- RAM: 512Kb, arranged as 256Kbx16. RAM is expandable externally to 7Mb
+- Real Time Clock
+- Speaker
+- External I/O bus with two I/O ports for interfaces and memory modules. Expandable to maximum 10 ports with two 5-port Bus Expander Modules
+- HP-IB (IEEE-488) bus
+- Runs the HP-UX Operating System III or System V (in ROM)
+
+
+PCB Layouts
+===========
+
+CPU/Memory Board (LOGIC A PCA)
+----------------
+
+HP Part# 00095-60953
+ |---------------------------------------------------------------------------------|
+ | 15.92MHz J1 J2 |
+ |LS74 |
+ | |---| |
+ | |T | |
+ | |M | |
+ | |S | |
+ | |4 | |-------------------------| |
+|--------------------| |5 | | 68000 | |
+| |0 | | | |
+| MB81256 MB81256 |0 | |-------------------------| |
+| |A | |
+| MB81256 MB81256 |---| |
+| |----------------J3-----------------| |
+| MB81256 MB81256 | | |
+| | | |
+| MB81256 MB81256 | | |
+| | | |
+| MB81256 MB81256 | | |
+| | | |
+| MB81256 MB81256 | | |
+| |----------------J4-----------------| |
+| MB81256 MB81256 |
+| U58 U60 |
+| MB81256 MB81256 555 |
+| |
+| |
+| |
+| J5 J6 J7 |
+|------------------------------------------------------------------------------------------------------|
+Notes:
+ 68000 - 68000 CPU at U7. Clock input 7.96MHz [15.92/2] (DIP64)
+ LS74 - 74LS74 at U2 provides system clock dividers /4 /2
+ MB81256 - Fujitsu MB81256 256Kx1 DRAM. Total RAM 512Kx8/256Kx16. HP part# 1818-3308. U20-U35 (DIP16)
+ TMS4500 - Texas Instruments TMS4500A DRAM Controller at U4. Clock input 3.98MHz [15.92/4] (DIP40)
+ U58 - HP-HIL Keyboard Interface 'Cerberus'. Clock input on pin 24 is unknown (DIP24)
+ U60 - Unknown IC used as an interrupt encoder. Possibly a logic chip? (DIP20)
+ 555 - 555 Timer
+ J1/J2 - Connectors joining to LOGIC B PCA (logic A to logic B bus)
+ J3/J4 - Connectors for ROM board
+ J5 - Power input connector from power supply PCB
+ J6 - 64-pin external I/O bus. This is connected to the I/O backplane PCB mounted at the rear of the case using a ribbon cable
+ J7 - 10 pin connector. Labelled on schematics as LOOP0 In/Out and LOOP1 In/Out. Connected to 'Cerberus' IC. Possibly for more input devices?
+
+
+Interface & Control Board (LOGIC B PCA)
+-------------------------
+
+HP Part# 00095-60952
+00095-60107 BD REV A
+00095-60149 ASSY LOGIC B
+|---------------------------------------------------------------------------------|
+|SPEAKER NS58167A J11 J10 |
+| LM358 32.768kHz |
+| |
+| 16Kx4 16Kx4 16Kx4 16Kx4 |
+| ROM |
+| |
+| BT1 HP-IL(2) GPU |
+| |--------------------|
+| 1Kb |
+| COP452 |
+| |
+| |
+| WD2797 |
+| LM393 HP-IL(1) |
+| |
+| LS193 |
+| |
+| |
+| |
+| LS74 24MHz LS161 |
+| J2|
+| |
+| TMS9914 |
+| |
+| |
+| 75162 75160 |
+| |
+| J14 J6 J5 J4 J3 J7 J1 J8 J9 J12 |
+|------------------------------------------------------------------------------------------------------|
+Notes:
+ GPU - GPU (Graphics Processor) at U1. Clock input 3MHz [24/8]. VSync on pin 45, HSync on pin 46 (DIP48)
+ 16Kx4 - 16Kx4 DRAM, organised as 32Kx8bit/16Kx16bit at U3, U4, U5 & U6. Chip type unknown, likely Fujitsu MB81416 (DIP18)
+ WD2797 - Western Digital WD2797 Floppy Disk Controller at U18. Clock input 2MHz [24/2/3/2] (DIP40)
+ HP-IL(1) - HP-IL 1LJ7-0015 'Saturn' Thinkjet Printer Controller IC at U28. Clock input 3MHz on pin 9 [24/8] (DIP48)
+ HP-IL(2) - HP-IL Interface IC at U31. Clock input 2MHz on pin 22 [24/2/3/2] (DIP28)
+ 1Kb - 1Kb RAM at U27 for printer buffer (DIP28, type unknown, very old, with only DATA0,1,2,3, C/D and DIN,DOUT)
+ ROM - 16Kb (2Kx8?) Some kind of very early DIP28 PROM/ROM? Same pinout as 1Kb RAM above. Holds the character font table for the printer
+ Four versions of this ROM exist, one each for Japan/Arabic/Hebrew and one for all other regions
+ NS58167A - National Semiconductor NS58167A Clock Controller RTC at U44. Clock input 32.768kHz (DIP24)
+ LM358 - National Semiconductor LM358 Operational Amplifier at U40 (DIP8)
+ LM393 - Texas Instruments LM393 Dual Comparator at U34 (DIP8)
+ BT1 - 3v lithium battery
+ COP452 - National Semiconductor COP452 Speaker Controller at U39. Clock input 2MHz [24/2/3/2]. This IC provides programmable square wave output from 100Hz to 5000Hz (DIP14)
+ TMS9914 - Texas Instruments TMS9914 General Purpose Interface Bus Adapter at U41. Clock input 4MHz [24/2/3] (DIP40)
+ 75160 - National Semiconductor DS75160A IEEE-488 General Purpose Interface Bus Transceiver at U42 (DIP20)
+ 75162 - National Semiconductor DS75162A IEEE-488 General Purpose Interface Bus Transceiver at U43 (DIP22)
+ LS193 - 74LS193 at U9 provides the main system clock dividers /8 /4 /2 (24MHz -> 12MHz, 6MHz, 3MHz). This is also the source of the 6MHz video clock on connector J1
+ LS161 - 74LS161 at U46. Takes 12MHz clock input on pin 2 and outputs 4MHz on pin 13 (i.e. /3). This is the clock source for the TMS9914
+ LS74 - LS74 at U16. Takes output of 4MHz from LS161 at U46 and outputs 2MHz on pin 5 (i.e. /2). This is the source of the 2MHz clocks
+ J1 - Connector joining to video display assembly
+ J2 - Connector joining to floppy drive
+ J3 - Connector joining to printer front switch panel assembly (ADV/CONT/FF/ATTN)
+ J4 - Connector joining to printer out of paper switch connected to ATTN
+ J5 - Connector joining to printer carriage motor
+ J6 - Connector joining to printer mechanism assembly including paper motor
+ J7 - Connector joining to printer printhead
+ J8 - Connector joining to HO?E switch (? ~ M, text unreadable on schems)
+ J9 - Connector for ?
+ J10/J11 - Connectors joining to LOGIC A PCA (logic A to logic B bus)
+ J12 - Power input connector from power supply PCB
+ J14 - Fan connector
+
+
+ROM board (Operating System ROM PCA. Assembly# HP82991A or HP82995A)
+---------
+
+|----------------J3-----------------|
+| |
+| |
+| |
+|J1 U1 U2 U3 U4 J2|
+| |
+| |
+| |
+|----------------J4-----------------|
+Notes:
+ J1/J2 - 20 pin connector joining to 'Option ROM PCA'
+ J3/J4 - 20 pin connector joining to 'LOGIC A PCA'
+ U1-U4 - 28 pin EPROM/MASKROM 0L/1L/0H/1H (note 1Mbit: 128Kx8 28 pin)
+
+
+ROM board (Option ROM PCA)
+---------
+Note this PCB plugs in upside-down on top of the Operating System ROM PCB
+
+|----------------J4-----------------|
+| |
+| |
+| |
+|J1 U1 U2 U3 U4 J2|
+| |
+| |
+| |
+|----------------J3-----------------|
+Notes:
+ J1/J2 - 20 pin connector joining to 'Operating System ROM PCA'
+ J3/J4 - 20 pin connector joining to 'LOGIC A PCA'
+ U1-U4 - 28 pin EPROM/MASKROM 0L/1L/0H/1H (note 1Mbit: 128Kx8 28 pin)
+
+
+Physical Memory Map
+===================
+000000-07FFFF - Internal ROM (Operating System PCA 512Kb)
+080000-0FFFFF - Internal ROM (Option ROM PCA 512Kb)
+100000-4FFFFF - External ROM modules (up to 4Mb)
+500000-5FFFFF - Reserved 1Mb
+600000-6FFFFF - Internal I/O 1Mb
+
+ Address Port Use
+ -------------------------
+ 600000-60FFFF 0 MMU
+ 610000-61FFFF 1 Disk Drive
+ 620000-62FFFF 2 Display
+ 630000-63FFFF 3 HP-IB
+ 640000-64FFFF 4 RTC
+ 650000-65FFFF 5 Printer
+ 660000-66FFFF 6 Keyboard
+ 670000-67FFFF 7 Speaker
+ 680000-68FFFF 8 Reserved
+ 690000-69FFFF 9 Reserved
+ 6A0000-6AFFFF 10 Reserved
+ 6B0000-6BFFFF 11 Reserved
+ 6C0000-6CFFFF 12 Reserved
+ 6D0000-6DFFFF 13 Reserved
+ 6E0000-6EFFFF 14 Reserved
+ 6F0000-6FFFFF 15 Reserved
+
+700000-7FFFFF - External I/O 1Mb
+
+ Address Port Use
+ -------------------------
+ 700000-70FFFF 16 Mainframe Port A
+ 710000-71FFFF 17 Mainframe Port B
+ 720000-72FFFF 18 Bus Expander Port A1
+ 730000-73FFFF 19 Bus Expander Port A2
+ 740000-74FFFF 20 Bus Expander Port A3
+ 750000-75FFFF 21 Bus Expander Port A4
+ 760000-76FFFF 22 Bus Expander Port A5
+ 770000-77FFFF 23 Reserved
+ 780000-78FFFF 24 Reserved
+ 790000-79FFFF 25 Reserved
+ 7A0000-7AFFFF 26 Bus Expander Port B1
+ 7B0000-7BFFFF 27 Bus Expander Port B2
+ 7C0000-7CFFFF 28 Bus Expander Port B3
+ 7D0000-7DFFFF 29 Bus Expander Port B4
+ 7E0000-7EFFFF 30 Bus Expander Port B5
+ 7F0000-7FFFFF 31 Reserved
+
+800000-EFFFFF - External RAM modules (up to 7Mb)
+F00000-F7FFFF - Internal RAM 512Kb
+F80000-FFFFFF - Reserved 512Kb
+
+Access to 800000-FFFFFF can be remapped by the MMU registers.
+
+
+Interrupts
+----------
+High Priority 7 - Soft reset from keyboard (NMI)
+ /\ 6 - RTC or NBIR3 (external I/O)
+ || 5 - Disc Drive or NBIR2 (external I/O)
+ || 4 - GPU or NBIR1 (external I/O)
+ || 3 - HP-IB, printer or NBIR0 (external I/O)
+ \/ 2 - HP-HIL devices (keyboard/mouse)
+Low Priority 1 - RTC
+
+Note external interrupt lines NBIR0 to NBIR3 can be asserted by an interface connected to the external I/O port
+
+
+******************************************************************************/
+
+#include "emu.h"
+#include "cpu/m68000/m68000.h"
+
+
+class hp_ipc_state : public driver_device
+{
+public:
+ hp_ipc_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ { }
+
+ DECLARE_WRITE16_MEMBER(mmu_w);
+ DECLARE_READ16_MEMBER(ram_r);
+ DECLARE_WRITE16_MEMBER(ram_w);
+
+private:
+ required_device<m68000_device> m_maincpu;
+
+ UINT32 m_mmu[4];
+ UINT16 m_internal_ram[0x40000];
+
+ inline UINT32 get_ram_address(offs_t offset) { return (m_mmu[(m_maincpu->get_fc() >> 1) & 3] + offset) & 0x3FFFFF; }
+};
+
+
+static ADDRESS_MAP_START(hp_ipc_mem, AS_PROGRAM, 16, hp_ipc_state)
+ AM_RANGE(0x000000, 0x07FFFF) AM_ROM
+ AM_RANGE(0x600000, 0x60FFFF) AM_WRITE(mmu_w)
+ AM_RANGE(0x800000, 0xFFFFFF) AM_READWRITE(ram_r, ram_w)
+ADDRESS_MAP_END
+
+
+static INPUT_PORTS_START(hp_ipc)
+INPUT_PORTS_END
+
+
+WRITE16_MEMBER(hp_ipc_state::mmu_w)
+{
+ logerror("mmu_w: offset = %08x, data = %04x, register = %d, data_to_add = %08x\n", offset, data, offset & 3, (data & 0xFFF) << 10);
+ m_mmu[offset & 3] = (data & 0xFFF) << 10;
+}
+
+
+READ16_MEMBER(hp_ipc_state::ram_r)
+{
+ UINT32 ram_address = get_ram_address(offset);
+
+ //logerror("RAM read, offset = %08x, ram address = %08X\n", offset, ram_address);
+
+ if (ram_address < 0x380000)
+ {
+ // External RAM modules
+ }
+ else if (ram_address < 0x3c0000)
+ {
+ // Internal RAM
+ return m_internal_ram[offset & 0x3ffff];
+ }
+ return 0xffff;
+}
+
+
+WRITE16_MEMBER(hp_ipc_state::ram_w)
+{
+ UINT32 ram_address = get_ram_address(offset);
+
+ //logerror("RAM write, offset = %08x, ram address = %08X, data = %04x\n", offset, ram_address, data);
+
+ if (ram_address < 0x380000)
+ {
+ // External RAM modules
+ }
+ else if (ram_address < 0x3c0000)
+ {
+ // Internal RAM
+ m_internal_ram[offset & 0x3ffff] = data;
+ }
+}
+
+
+static MACHINE_CONFIG_START(hp_ipc, hp_ipc_state)
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", M68000, 15920000 / 2)
+ MCFG_CPU_PROGRAM_MAP(hp_ipc_mem)
+MACHINE_CONFIG_END
+
+
+ROM_START(hp_ipc)
+ ROM_REGION(0x100000, "maincpu" , 0)
+ ROM_LOAD("hp ipc os 82991A.bin", 0x00000, 0x80000, BAD_DUMP CRC(df45a37b) SHA1(476af9923bca0d2d0f40aeb81be5145ca76fddf5)) // Should be spread across 4 x 128K ROMs
+ROM_END
+
+
+COMP(1985, hp_ipc, 0, 0, hp_ipc, hp_ipc, driver_device, 0, "HP", "Integral Personal Computer", MACHINE_IS_SKELETON)
diff --git a/src/mess/drivers/hprot1.c b/src/mame/drivers/hprot1.c
index 4f01802e70b..6cff402b711 100644
--- a/src/mess/drivers/hprot1.c
+++ b/src/mame/drivers/hprot1.c
@@ -371,11 +371,11 @@ ROM_START( hprot2r6 )
ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
-COMP( 2002, hprot1, 0, 0, hprot1, hprot1, hprot1_state, hprot1, "HENRY", "Henry Prot I v19 (REV.1)", GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND)
+COMP( 2002, hprot1, 0, 0, hprot1, hprot1, hprot1_state, hprot1, "HENRY", "Henry Prot I v19 (REV.1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND)
/* fw version: "R19" Release date: February 1st, 2002. */
-COMP( 2006, hprotr8a, hprot1, 0, hprotr8a, hprotr8a, hprot1_state, hprot1, "HENRY", "Henry Prot CARD I (REV.08A)", GAME_NOT_WORKING)
+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)", GAME_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/mess/drivers/hpz80unk.c b/src/mame/drivers/hpz80unk.c
index c3b4c9ecdba..170aaabd55b 100644
--- a/src/mess/drivers/hpz80unk.c
+++ b/src/mame/drivers/hpz80unk.c
@@ -156,4 +156,4 @@ 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", GAME_IS_SKELETON | GAME_NOT_WORKING | GAME_NO_SOUND_HW )
+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 )
diff --git a/src/mame/drivers/hshavoc.c b/src/mame/drivers/hshavoc.c
index 105a8183252..e4d0386c172 100644
--- a/src/mame/drivers/hshavoc.c
+++ b/src/mame/drivers/hshavoc.c
@@ -222,4 +222,4 @@ DRIVER_INIT_MEMBER(md_boot_state,hshavoc)
}
-GAME( 1993, hshavoc, 0, md_bootleg, hshavoc, md_boot_state, hshavoc, ROT0, "Data East", "High Seas Havoc",GAME_NOT_WORKING )
+GAME( 1993, hshavoc, 0, md_bootleg, hshavoc, md_boot_state, hshavoc, ROT0, "Data East", "High Seas Havoc",MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/ht68k.c b/src/mame/drivers/ht68k.c
index 5d4bbafb67a..203ec4c8280 100644
--- a/src/mess/drivers/ht68k.c
+++ b/src/mame/drivers/ht68k.c
@@ -157,4 +157,4 @@ 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", GAME_NO_SOUND)
+COMP( 1987, ht68k, 0, 0, ht68k, ht68k, driver_device, 0, "Hawthorne Technology", "TinyGiant HT68k", MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/huebler.c b/src/mame/drivers/huebler.c
index b6b9f2eb022..c97f5aafefc 100644
--- a/src/mess/drivers/huebler.c
+++ b/src/mame/drivers/huebler.c
@@ -395,4 +395,4 @@ 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", GAME_NO_SOUND )
+COMP( 1983, amu880, 0, 0, amu880, amu880, driver_device, 0, "Militaerverlag der DDR", "Ausbaufaehiger Mikrocomputer mit dem U 880", MACHINE_NO_SOUND )
diff --git a/src/mess/drivers/hunter2.c b/src/mame/drivers/hunter2.c
index 0391c42da44..75eb60c6115 100644
--- a/src/mess/drivers/hunter2.c
+++ b/src/mame/drivers/hunter2.c
@@ -439,4 +439,4 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */
-COMP( 1981, hunter2, 0, 0, hunter2, hunter2, hunter2_state, hunter2, "Husky", "Hunter 2", GAME_NOT_WORKING )
+COMP( 1981, hunter2, 0, 0, hunter2, hunter2, hunter2_state, hunter2, "Husky", "Hunter 2", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/hvyunit.c b/src/mame/drivers/hvyunit.c
index 2dac6fd5de8..ff140bd5829 100644
--- a/src/mame/drivers/hvyunit.c
+++ b/src/mame/drivers/hvyunit.c
@@ -809,7 +809,7 @@ ROM_END
*
*************************************/
-GAME( 1988, hvyunit, 0, hvyunit, hvyunit, driver_device, 0, ROT0, "Kaneko / Taito", "Heavy Unit (World)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1988, hvyunitj, hvyunit, hvyunit, hvyunitj, driver_device, 0, ROT0, "Kaneko / Taito", "Heavy Unit (Japan, Newer)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1988, hvyunitjo,hvyunit, hvyunit, hvyunitj, driver_device, 0, ROT0, "Kaneko / Taito", "Heavy Unit (Japan, Older)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1988, hvyunitu, hvyunit, hvyunit, hvyunitj, driver_device, 0, ROT0, "Kaneko / Taito", "Heavy Unit -U.S.A. Version- (US)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/hx20.c b/src/mame/drivers/hx20.c
index 20488e67991..bc39844c973 100644
--- a/src/mess/drivers/hx20.c
+++ b/src/mame/drivers/hx20.c
@@ -918,5 +918,5 @@ ROM_END
//**************************************************************************
// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS
-COMP( 1983, ehx20, 0, 0, hx20, hx20, driver_device, 0, "Epson", "Epson HX-20", GAME_NOT_WORKING )
-COMP( 1983, ehx20e, ehx20, 0, hx20, hx20e, driver_device, 0, "Epson", "Epson HX-20 (Europe)", GAME_NOT_WORKING )
+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 )
diff --git a/src/mame/drivers/hyhoo.c b/src/mame/drivers/hyhoo.c
index b45ed15f3a4..b4f0ad76389 100644
--- a/src/mame/drivers/hyhoo.c
+++ b/src/mame/drivers/hyhoo.c
@@ -304,5 +304,5 @@ ROM_START( hyhoo2 )
ROM_END
-GAME( 1987, hyhoo, 0, hyhoo, hyhoo, driver_device, 0, ROT90, "Nichibutsu", "Hayaoshi Taisen Quiz Hyhoo (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1987, hyhoo2, 0, hyhoo2, hyhoo2, driver_device, 0, ROT90, "Nichibutsu", "Hayaoshi Taisen Quiz Hyhoo 2 (Japan)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/hyperscan.c b/src/mame/drivers/hyperscan.c
index 346116e218e..15e1bb8da72 100644
--- a/src/mess/drivers/hyperscan.c
+++ b/src/mame/drivers/hyperscan.c
@@ -644,4 +644,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 2006, hs, 0, 0, hyperscan , hyperscan , driver_device, 0, "Mattel", "HyperScan", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/hyperspt.c b/src/mame/drivers/hyperspt.c
index bbbe2f74a26..522b599ad35 100644
--- a/src/mame/drivers/hyperspt.c
+++ b/src/mame/drivers/hyperspt.c
@@ -547,8 +547,8 @@ DRIVER_INIT_MEMBER(hyperspt_state,hyperspt)
}
-GAME( 1984, hyperspt, 0, hyperspt, hyperspt, hyperspt_state, hyperspt, ROT0, "Konami (Centuri license)", "Hyper Sports", GAME_SUPPORTS_SAVE )
-GAME( 1984, hypersptb, hyperspt, hypersptb, hyperspt, hyperspt_state, hyperspt, ROT0, "bootleg", "Hyper Sports (bootleg)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // has ADPCM vis MSM5205 instead of VLM
-GAME( 1984, hpolym84, hyperspt, hyperspt, hyperspt, hyperspt_state, hyperspt, ROT0, "Konami", "Hyper Olympic '84", GAME_SUPPORTS_SAVE )
-GAME( 1984, roadf, 0, roadf, roadf, hyperspt_state, hyperspt, ROT90, "Konami", "Road Fighter (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1984, roadf2, roadf, roadf, roadf, hyperspt_state, hyperspt, ROT90, "Konami", "Road Fighter (set 2)", GAME_SUPPORTS_SAVE )
+GAME( 1984, hyperspt, 0, hyperspt, hyperspt, hyperspt_state, hyperspt, ROT0, "Konami (Centuri license)", "Hyper Sports", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, hypersptb, hyperspt, hypersptb, hyperspt, hyperspt_state, hyperspt, 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, hyperspt, ROT0, "Konami", "Hyper Olympic '84", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, roadf, 0, roadf, roadf, hyperspt_state, hyperspt, ROT90, "Konami", "Road Fighter (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, roadf2, roadf, roadf, roadf, hyperspt_state, hyperspt, ROT90, "Konami", "Road Fighter (set 2)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/hyprduel.c b/src/mame/drivers/hyprduel.c
index dec1940e7ee..356be1ef249 100644
--- a/src/mame/drivers/hyprduel.c
+++ b/src/mame/drivers/hyprduel.c
@@ -790,6 +790,6 @@ DRIVER_INIT_MEMBER(hyprduel_state,magerror)
}
-GAME( 1993, hyprduel, 0, hyprduel, hyprduel, hyprduel_state, hyprduel, ROT0, "Technosoft", "Hyper Duel (Japan set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1993, hyprduel2,hyprduel, hyprduel, hyprduel, hyprduel_state, hyprduel, ROT0, "Technosoft", "Hyper Duel (Japan set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1994, magerror, 0, magerror, magerror, hyprduel_state, magerror, ROT0, "Technosoft / Jaleco", "Magical Error wo Sagase", GAME_SUPPORTS_SAVE )
+GAME( 1993, hyprduel, 0, hyprduel, hyprduel, hyprduel_state, hyprduel, ROT0, "Technosoft", "Hyper Duel (Japan set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, hyprduel2,hyprduel, hyprduel, hyprduel, hyprduel_state, hyprduel, ROT0, "Technosoft", "Hyper Duel (Japan set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, magerror, 0, magerror, magerror, hyprduel_state, magerror, ROT0, "Technosoft / Jaleco", "Magical Error wo Sagase", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/i7000.c b/src/mame/drivers/i7000.c
new file mode 100644
index 00000000000..a1dc4b0b24c
--- /dev/null
+++ b/src/mame/drivers/i7000.c
@@ -0,0 +1,415 @@
+// license:GPL-2.0+
+// copyright-holders: Felipe Sanches
+/***************************************************************************
+
+ Itautec I7000
+
+ driver by Felipe C. da S. Sanches <juca@members.fsf.org>
+ with tech info provided by Alexandre Souza (a.k.a. Tabajara).
+
+ The portuguese Wikipedia article available at
+ http://pt.wikipedia.org/wiki/Itautec_I-7000
+ also provides a technical overview of this machine:
+
+ The I-7000 was the first computer manufactured by Itautec
+ (http://www.itautec.com.br/pt-br/produtos). It was originally an 8 bit CP/M
+ computer that became an IBM PC-XT clone in later hardware revisions which
+ took the "I-7000 PC-XT" name.
+
+ * Released in 1982
+ * Operating System: SIM/M / BASIC
+ * CPU: National NSC800 D-4 at 4,00 MHz
+ * Memory: 64KB to 128KB
+ * keyboards: 80 keys (with a reduced numerical keypad and function keys)
+ * display:
+ - 40 X 25 text
+ - 80 X 25 text
+ - 160 X 100 (8 colors)
+ - 640 X 200 (monochrome, with an expansion board)
+ - 320 X 200 (16 colors, with an expansion board)
+ * Expansion slots:
+ - 1 frontal cart slot
+ - 4 internal expansion slots
+ * Ports:
+ - 1 composite video output for a color monitor
+ - 2 cassete interfaces
+ - 1 RS-232C serial port
+ - 1 parallel interface
+ * Storage:
+ - Cassetes recorder
+ - Up to 4 external floppy drives: 8" (FD/DD, 1,1MB) or 5" 1/4
+ - Up to 1 external 10 MB hard-drive
+
+****************************************************************************/
+
+#include "emu.h"
+#include "cpu/z80/z80.h" //CPU was actually a NSC800 (Z80 compatible)
+#include "bus/generic/carts.h"
+#include "machine/pit8253.h"
+#include "machine/i8279.h"
+#include "sound/speaker.h"
+#include "video/mc6845.h"
+
+class i7000_state : public driver_device
+{
+public:
+ i7000_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
+ m_card(*this, "cardslot"),
+ m_gfxdecode(*this, "gfxdecode"),
+ m_videoram(*this, "videoram")
+ { }
+
+ void video_start();
+ void machine_start();
+
+ required_device<cpu_device> m_maincpu;
+ required_device<generic_slot_device> m_card;
+ required_device<gfxdecode_device> m_gfxdecode;
+ required_shared_ptr<UINT8> m_videoram;
+ UINT32 screen_update_i7000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT8 *m_char_rom;
+ UINT8 m_row;
+ tilemap_t *m_bg_tilemap;
+
+ TILE_GET_INFO_MEMBER(get_bg_tile_info);
+ MC6845_ON_UPDATE_ADDR_CHANGED(crtc_addr);
+ DECLARE_DRIVER_INIT(i7000);
+ DECLARE_PALETTE_INIT(i7000);
+ DECLARE_DEVICE_IMAGE_LOAD_MEMBER( i7000_card );
+
+ DECLARE_READ8_MEMBER(i7000_kbd_r);
+ DECLARE_WRITE8_MEMBER(i7000_scanlines_w);
+};
+
+WRITE8_MEMBER( i7000_state::i7000_scanlines_w )
+{
+ m_row = data;
+}
+
+READ8_MEMBER( i7000_state::i7000_kbd_r )
+{
+ UINT8 data = 0xff;
+
+ for (int i=0; i<40*25; i++){
+ m_bg_tilemap->mark_tile_dirty(i);
+ }
+
+ if (m_row < 8)
+ {
+ char kbdrow[6];
+ sprintf(kbdrow,"X%X",m_row);
+ data = ioport(kbdrow)->read();
+ }
+ return data;
+}
+
+/* Input ports */
+static INPUT_PORTS_START( i7000 )
+ PORT_START("X0")
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1") PORT_CODE(KEYCODE_1)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9") PORT_CODE(KEYCODE_9)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("U") PORT_CODE(KEYCODE_U)
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ESC") PORT_CODE(KEYCODE_ESC)
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("K") PORT_CODE(KEYCODE_K)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("N") PORT_CODE(KEYCODE_N)
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("!") PORT_CHAR('!')
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ENTER") PORT_CODE(KEYCODE_ENTER)
+
+ PORT_START("X1")
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2") PORT_CODE(KEYCODE_2)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("T") PORT_CODE(KEYCODE_T)
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0x9D")
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("L") PORT_CODE(KEYCODE_L)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("X") PORT_CODE(KEYCODE_X)
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0x8F")
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("^R DC2") //0x12
+
+ PORT_START("X2")
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3") PORT_CODE(KEYCODE_3)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("$ ^") PORT_CHAR('$') PORT_CHAR('^')
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("R") PORT_CODE(KEYCODE_R)
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("S") PORT_CODE(KEYCODE_S)
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0xA0")
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C)
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("- _") PORT_CODE(KEYCODE_MINUS)
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("BACKSPACE") PORT_CODE(KEYCODE_BACKSPACE)
+
+ PORT_START("X3")
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4") PORT_CODE(KEYCODE_4)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("% +") PORT_CHAR('%') PORT_CHAR('+')
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("I") PORT_CODE(KEYCODE_I)
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D)
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0x9C")
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("M") PORT_CODE(KEYCODE_M)
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("]") PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(']')
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("@") PORT_CHAR('@')
+
+ PORT_START("X4")
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5 *") PORT_CODE(KEYCODE_5)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("^U NAK") //0x15
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("O") PORT_CODE(KEYCODE_O)
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F") PORT_CODE(KEYCODE_F)
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("| <") PORT_CHAR('<')
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(", ;") PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR(';')
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("[") PORT_CODE(KEYCODE_OPENBRACE)
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("^E ENQ") //0x05
+
+ PORT_START("X5")
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6") PORT_CODE(KEYCODE_6)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("^O SI") //0x0F
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("P") PORT_CODE(KEYCODE_P)
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G") PORT_CODE(KEYCODE_G)
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(".") PORT_CODE(KEYCODE_STOP) PORT_CHAR('.')
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("#") PORT_CHAR('#')
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("{") PORT_CHAR('{')
+
+ PORT_START("X6")
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7") PORT_CODE(KEYCODE_7)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E)
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_A)
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_H)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("V") PORT_CODE(KEYCODE_V)
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("^L FF") //0x0C
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("^T DC4") //0x14
+
+ PORT_START("X7")
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8") PORT_CODE(KEYCODE_8)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("W") PORT_CODE(KEYCODE_W)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Y)
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(">") PORT_CHAR('>')
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Z)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B)
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("SPACEBAR") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ')
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("}") PORT_CHAR('}')
+
+ PORT_START("DSW") /* DP01 */
+ PORT_DIPNAME( 0x80, 0x80, "1")
+ PORT_DIPSETTING( 0x00, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x40, 0x40, "2")
+ PORT_DIPSETTING( 0x00, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x20, 0x00, "3")
+ PORT_DIPSETTING( 0x00, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x10, 0x10, "4")
+ PORT_DIPSETTING( 0x00, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x08, 0x08, "5")
+ PORT_DIPSETTING( 0x00, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x04, 0x04, "6")
+ PORT_DIPSETTING( 0x00, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x02, 0x00, "7")
+ PORT_DIPSETTING( 0x00, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( Yes ) )
+ PORT_DIPNAME( 0x01, 0x01, "8")
+ PORT_DIPSETTING( 0x00, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( Yes ) )
+INPUT_PORTS_END
+
+DRIVER_INIT_MEMBER(i7000_state, i7000)
+{
+}
+
+void i7000_state::machine_start()
+{
+ address_space &program = m_maincpu->space(AS_PROGRAM);
+
+ if (m_card->exists())
+ {
+ // 0x4000 - 0xbfff 32KB ROM
+ program.install_read_handler(0x4000, 0xbfff, read8_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_card));
+ }
+}
+
+PALETTE_INIT_MEMBER(i7000_state, i7000)
+{
+ palette.set_pen_color(0, rgb_t(0x33, 0x33, 0x33));
+ palette.set_pen_color(1, rgb_t(0xBB, 0xBB, 0xBB));
+}
+
+/*FIXME: we still need to figure out the proper memory map
+ for the maincpu and where the cartridge slot maps to. */
+static ADDRESS_MAP_START(i7000_mem, AS_PROGRAM, 8, i7000_state)
+ AM_RANGE(0x0000, 0x0fff) AM_ROM AM_REGION("boot", 0)
+ AM_RANGE(0x2000, 0x2fff) AM_RAM AM_SHARE("videoram")
+ AM_RANGE(0x4000, 0xffff) AM_RAM
+// AM_RANGE(0x4000, 0xbfff) AM_ROM AM_REGION("cardslot", 0)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( i7000_io , AS_IO, 8, i7000_state)
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK (0xff)
+// AM_RANGE(0x06, 0x06) AM_WRITE(i7000_io_?_w)
+// AM_RANGE(0x08, 0x09) AM_WRITE(i7000_io_?_w) //printer perhaps?
+// AM_RANGE(0x0c, 0x0c) AM_WRITE(i7000_io_?_w) //0x0C and 0x10 may be related to mem page swapping. (self-test "4. PAG")
+// AM_RANGE(0x10, 0x10) AM_WRITE(i7000_io_?_w)
+// AM_RANGE(0x14, 0x15) AM_WRITE(i7000_io_?_w)
+
+ AM_RANGE(0x18, 0x1b) AM_DEVREADWRITE("pit8253", pit8253_device, read, write)
+
+// AM_RANGE(0x1c, 0x1c) AM_WRITE(i7000_io_printer_data_w) //ASCII data
+ AM_RANGE(0x1d, 0x1d) AM_READ_PORT("DSW")
+// AM_RANGE(0x1e, 0x1e) AM_READWRITE(i7000_io_printer_status_r, i7000_io_?_w)
+// AM_RANGE(0x1f, 0x1f) AM_WRITE(i7000_io_printer_strobe_w) //self-test routine writes 0x08 and 0x09 (it seems that bit 0 is the strobe and bit 3 is an enable signal)
+// AM_RANGE(0x20, 0x21) AM_READWRITE(i7000_io_keyboard_r, i7000_io_keyboard_w)
+
+ AM_RANGE( 0x20, 0x20 ) AM_DEVREADWRITE("i8279", i8279_device, data_r, data_w)
+ AM_RANGE( 0x21, 0x21 ) AM_DEVREADWRITE("i8279", i8279_device, status_r, cmd_w)
+
+// AM_RANGE(0x24, 0x24) AM_READ(i7000_io_?_r)
+// AM_RANGE(0x25, 0x25) AM_WRITE(i7000_io_?_w)
+
+// AM_RANGE(0x28, 0x2d) AM_READWRITE(i7000_io_joystick_r, i7000_io_joystick_w)
+
+// AM_RANGE(0x3b, 0x3b) AM_WRITE(i7000_io_?_w)
+// AM_RANGE(0x66, 0x67) AM_WRITE(i7000_io_?_w)
+// AM_RANGE(0xbb, 0xbb) AM_WRITE(i7000_io_?_w) //may be related to page-swapping...
+ADDRESS_MAP_END
+
+DEVICE_IMAGE_LOAD_MEMBER( i7000_state, i7000_card )
+{
+ UINT32 size = m_card->common_get_size("rom");
+
+ m_card->rom_alloc(size, GENERIC_ROM8_WIDTH, ENDIANNESS_BIG);
+ m_card->common_load_rom(m_card->get_rom_base(), size, "rom");
+
+ return IMAGE_INIT_PASS;
+}
+
+static const gfx_layout i7000_charlayout =
+{
+ 8, 8, /* 8 x 8 characters */
+ 256, /* 256 characters */
+ 1, /* 1 bits per pixel */
+ { 0 }, /* no bitplanes */
+ /* x offsets */
+ { 0, 1, 2, 3, 4, 5, 6, 7 },
+ /* y offsets */
+ { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
+ 8*8 /* every char takes 8 bytes */
+};
+
+static GFXDECODE_START( i7000 )
+ GFXDECODE_ENTRY( "gfx1", 0x0000, i7000_charlayout, 0, 8 )
+GFXDECODE_END
+
+/****************************
+* Video/Character functions *
+****************************/
+
+TILE_GET_INFO_MEMBER(i7000_state::get_bg_tile_info)
+{
+ SET_TILE_INFO_MEMBER(0, /*code:*/ m_videoram[tile_index], /*color:*/ 0, 0);
+}
+
+void i7000_state::video_start()
+{
+ m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(i7000_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 40, 25);
+}
+
+UINT32 i7000_state::screen_update_i7000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+{
+ m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
+ return 0;
+}
+
+/* ROCKWELL 6545 - Transparent Memory Addressing */
+MC6845_ON_UPDATE_ADDR_CHANGED(i7000_state::crtc_addr)
+{
+ /* What is this mandatory function meant to do ? */
+}
+
+
+static MACHINE_CONFIG_START( i7000, i7000_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", NSC800, XTAL_4MHz)
+ MCFG_CPU_PROGRAM_MAP(i7000_mem)
+ MCFG_CPU_IO_MAP(i7000_io)
+
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_SIZE(320, 200) /* 40x25 8x8 chars */
+ MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1)
+
+ MCFG_SCREEN_UPDATE_DRIVER(i7000_state, screen_update_i7000)
+ MCFG_SCREEN_PALETTE("palette")
+
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", i7000)
+ MCFG_PALETTE_ADD("palette", 2)
+ MCFG_PALETTE_INIT_OWNER(i7000_state, i7000)
+
+ MCFG_MC6845_ADD("crtc", R6545_1, "screen", XTAL_20MHz) /* (?) */
+ MCFG_MC6845_SHOW_BORDER_AREA(true)
+ MCFG_MC6845_CHAR_WIDTH(8)
+ MCFG_MC6845_ADDR_CHANGED_CB(i7000_state, crtc_addr)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
+
+ /* Programmable timer */
+ MCFG_DEVICE_ADD("pit8253", PIT8253, 0)
+// MCFG_PIT8253_CLK0(XTAL_4MHz / 2) /* TODO: verify on PCB */
+// MCFG_PIT8253_OUT0_HANDLER(WRITELINE(i7000_state,i7000_pit_out0))
+// MCFG_PIT8253_CLK1(XTAL_4MHz / 2) /* TODO: verify on PCB */
+// MCFG_PIT8253_OUT1_HANDLER(WRITELINE(i7000_state,i7000_pit_out1))
+ MCFG_PIT8253_CLK2(XTAL_4MHz / 2) /* TODO: verify on PCB */
+ MCFG_PIT8253_OUT2_HANDLER(DEVWRITELINE("speaker", speaker_sound_device, level_w))
+
+ /* Keyboard interface */
+ MCFG_DEVICE_ADD("i8279", I8279, 4000000) /* guessed value. TODO: verify on PCB */
+ MCFG_I8279_OUT_SL_CB(WRITE8(i7000_state, i7000_scanlines_w)) // scan SL lines
+ MCFG_I8279_IN_RL_CB(READ8(i7000_state, i7000_kbd_r)) // kbd RL lines
+ MCFG_I8279_IN_SHIFT_CB(VCC) // TODO: Shift key
+ MCFG_I8279_IN_CTRL_CB(VCC) // TODO: Ctrl key
+
+ /* Cartridge slot */
+ MCFG_GENERIC_CARTSLOT_ADD("cardslot", generic_romram_plain_slot, "i7000_card")
+ MCFG_GENERIC_EXTENSIONS("rom")
+ MCFG_GENERIC_LOAD(i7000_state, i7000_card)
+
+ /* Software lists */
+ MCFG_SOFTWARE_LIST_ADD("card_list", "i7000_card")
+MACHINE_CONFIG_END
+
+ROM_START( i7000 )
+ ROM_REGION( 0x1000, "boot", 0 )
+ ROM_LOAD( "i7000_boot_v1_4r02_15_10_85_d52d.rom", 0x0000, 0x1000, CRC(622412e5) SHA1(bf187a095600fd46a739c35132a85b5f39b2f867) )
+
+ ROM_REGION( 0x0800, "gfx1", 0 )
+ ROM_LOAD( "i7000_chargen.rom", 0x0000, 0x0800, CRC(fb7383e9) SHA1(71a6561bb9ff3cbf74711fa7ab445f9b43f15626) )
+ /*
+ The character generator ROM originally dumped had
+ some corrupt data that was manually fixed:
+
+ ROM address | Originally dumped value | Manually fixed value | Comment
+ 0x06A2 | 0xF7 | 0xFE | This is a fix to the upper right portion of a 2x2 tile image of a big filled circle
+ 0x06A3 | 0xF7 | 0xFE | This is another fix to the same tile (character value: 0xD4)
+
+ Also, characters 0x05, 0x06, 0x07 and 0x08
+ as well as lowercase 'x' (0x78), uppercase 'Y' (0x59)
+ may contain corrupt data, but we can't be sure,
+ unless we find another Itautec I7000 computer and
+ redump it's ROMs to double-check.
+ */
+
+ ROM_REGION( 0x1000, "drive", 0 )
+ ROM_LOAD( "i7000_drive_ci01.rom", 0x0000, 0x1000, CRC(d8d6e5c1) SHA1(93e7db42fbfaa8243973321c7fc8c51ed80780be) )
+
+ ROM_REGION( 0x1000, "telex", 0 )
+ ROM_LOAD( "i7000_telex_ci09.rom", 0x0000, 0x1000, CRC(c1c8fcc8) SHA1(cbf5fb600e587b998f190a9e3fb398a51d8a5e87) )
+ROM_END
+
+/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
+COMP( 1982, i7000, 0, 0, i7000, i7000, i7000_state, i7000, "Itautec", "I-7000", MACHINE_NOT_WORKING)
diff --git a/src/mess/drivers/ibm6580.c b/src/mame/drivers/ibm6580.c
index f2c404751e4..8a10c35a487 100644
--- a/src/mess/drivers/ibm6580.c
+++ b/src/mame/drivers/ibm6580.c
@@ -101,4 +101,4 @@ 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", GAME_IS_SKELETON)
+COMP( 1980, ibm6580, 0, 0, ibm6580, ibm6580, driver_device, 0, "IBM", "IBM 6580 DisplayWriter", MACHINE_IS_SKELETON)
diff --git a/src/mess/drivers/ibmpc.c b/src/mame/drivers/ibmpc.c
index a422ea54cf6..9f9f73e18a5 100644
--- a/src/mess/drivers/ibmpc.c
+++ b/src/mame/drivers/ibmpc.c
@@ -571,7 +571,7 @@ ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
COMP( 1981, ibm5150, 0, 0, ibm5150, ibm5150, driver_device, 0, "International Business Machines", "IBM PC 5150" , 0)
COMP( 1982, ibm5155, ibm5150, 0, ibm5150, ibm5150, driver_device, 0, "International Business Machines", "IBM PC 5155" , 0)
-COMP( 1985, ibm5140, ibm5150, 0, ibm5140, ibm5150, driver_device, 0, "International Business Machines", "IBM PC 5140 Convertible" , GAME_NOT_WORKING)
+COMP( 1985, ibm5140, ibm5150, 0, ibm5140, ibm5150, driver_device, 0, "International Business Machines", "IBM PC 5140 Convertible" , MACHINE_NOT_WORKING)
// xt class (pc but 8086)
COMP( 1982, ibm5160, ibm5150, 0, ibm5160, ibm5150, driver_device, 0, "International Business Machines", "IBM XT 5160" , 0)
diff --git a/src/mess/drivers/ibmpcjr.c b/src/mame/drivers/ibmpcjr.c
index 26e4ad0c955..13f421bf12e 100644
--- a/src/mess/drivers/ibmpcjr.c
+++ b/src/mame/drivers/ibmpcjr.c
@@ -701,5 +701,5 @@ ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
// pcjr
-COMP( 1983, ibmpcjr, ibm5150, 0, ibmpcjr, ibmpcjr, pcjr_state, pcjr, "International Business Machines", "IBM PC Jr", GAME_IMPERFECT_COLORS )
-COMP( 1985, ibmpcjx, ibm5150, 0, ibmpcjx, ibmpcjr, pcjr_state, pcjr, "International Business Machines", "IBM PC JX", GAME_IMPERFECT_COLORS | GAME_NOT_WORKING)
+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/mess/drivers/icatel.c b/src/mame/drivers/icatel.c
index 400fe02633e..372dafb439a 100644
--- a/src/mess/drivers/icatel.c
+++ b/src/mame/drivers/icatel.c
@@ -2,18 +2,18 @@
// copyright-holders: Felipe Sanches
/***************************************************************************
- icatel - Brazilian public payphone
- manufactured by icatel http://www.icatel.com.br/
+ icatel - Brazilian public payphone
+ manufactured by icatel http://www.icatel.com.br/
- Partial schematics (drawn based on PCB inspection) available at:
- https://github.com/garoa/Icatel/blob/master/doc/icatel.pdf
+ Partial schematics (drawn based on PCB inspection) available at:
+ https://github.com/garoa/Icatel/blob/master/doc/icatel.pdf
- Driver by Felipe Sanches <juca@members.fsf.org>
+ Driver by Felipe Sanches <juca@members.fsf.org>
- Changelog:
+ Changelog:
- 2014 DEC 14 [Felipe Sanches]:
- * Initial driver skeleton
+ 2014 DEC 14 [Felipe Sanches]:
+ * Initial driver skeleton
***************************************************************************/
@@ -81,7 +81,7 @@ static ADDRESS_MAP_START(i80c31_io, AS_IO, 8, icatel_state)
ADDRESS_MAP_END
static ADDRESS_MAP_START(i80c31_data, AS_DATA, 8, icatel_state)
-// AM_RANGE(0x0056,0x005A) AM_READ(magic_string) /* This is a hack! */
+// AM_RANGE(0x0056,0x005A) AM_READ(magic_string) /* This is a hack! */
ADDRESS_MAP_END
DRIVER_INIT_MEMBER( icatel_state, icatel )
@@ -98,7 +98,7 @@ void icatel_state::machine_reset()
READ8_MEMBER(icatel_state::magic_string)
{
-// logerror("read: magic_string, offset=%04X\n", offset);
+// logerror("read: magic_string, offset=%04X\n", offset);
char mstr[] = "TP-OK";
return mstr[offset%5];
}
@@ -108,7 +108,7 @@ READ8_MEMBER(icatel_state::ioport_r)
switch (offset%4)
{
case 0: return 0xff;
- case 1: return 0x7f;
+ case 1: return 0x7f;
case 2: return 0xff;
case 3: return 0xff;
}
@@ -169,8 +169,8 @@ WRITE8_MEMBER(icatel_state::ci8_w)
READ8_MEMBER(icatel_state::ci15_r)
{
/* TODO: Implement-me! */
-// debugger_break(machine());
-// logerror("read: ci15\n");
+// debugger_break(machine());
+// logerror("read: ci15\n");
return (1 << 3) | (1 << 0);
}
@@ -265,5 +265,5 @@ ROM_START( icatel )
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)", GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND)
+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/icecold.c b/src/mame/drivers/icecold.c
index 3a625899eb8..142d9f93c32 100644
--- a/src/mame/drivers/icecold.c
+++ b/src/mame/drivers/icecold.c
@@ -397,5 +397,5 @@ ROM_START(zekepeak)
ROM_END
-GAME(1983, icecold, 0, icecold, icecold, driver_device, 0, ROT0, "Taito", "Ice Cold Beer", GAME_NOT_WORKING | GAME_MECHANICAL)
-GAME(1983, zekepeak, icecold, icecold, icecold, driver_device, 0, ROT0, "Taito", "Zeke's Peak", GAME_NOT_WORKING | GAME_MECHANICAL)
+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)
diff --git a/src/mame/drivers/ichiban.c b/src/mame/drivers/ichiban.c
index 8a434dbbc88..772fcb7e27f 100644
--- a/src/mame/drivers/ichiban.c
+++ b/src/mame/drivers/ichiban.c
@@ -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", GAME_NOT_WORKING | GAME_NO_SOUND )
+GAME( 199?, ichiban, 0, ichibanjyan, ichibanjyan, driver_device, 0, ROT0, "Excel", "Ichi Ban Jyan", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mess/drivers/ie15.c b/src/mame/drivers/ie15.c
index 80eec85421e..405b33a2b5b 100644
--- a/src/mess/drivers/ie15.c
+++ b/src/mame/drivers/ie15.c
@@ -396,24 +396,24 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( ie15_io, AS_IO, 8, ie15_state )
ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(000, 000) AM_READ(mem_r) AM_WRITE(mem_w) // 00h W: memory request, R: memory data [6.1.2.2]
+ AM_RANGE(000, 000) AM_READWRITE(mem_r, mem_w) // 00h W: memory request, R: memory data [6.1.2.2]
AM_RANGE(001, 001) AM_READ(serial_rx_ready_r) AM_WRITENOP // 01h W: memory latch [6.1.2.2]
AM_RANGE(002, 002) AM_WRITE(mem_addr_hi_w) // 02h W: memory address high [6.1.2.2]
AM_RANGE(003, 003) AM_WRITE(mem_addr_lo_w) // 03h W: memory address low [6.1.2.2]
AM_RANGE(004, 004) AM_WRITE(mem_addr_inc_w) // 04h W: memory address counter + [6.1.2.2]
AM_RANGE(005, 005) AM_WRITE(mem_addr_dec_w) // 05h W: memory address counter - [6.1.2.2]
- AM_RANGE(006, 006) AM_READ(serial_r) AM_WRITE(serial_w) // 06h W: serial port data [6.1.5.4]
+ AM_RANGE(006, 006) AM_READWRITE(serial_r, serial_w) // 06h W: serial port data [6.1.5.4]
// port 7 is handled in cpu core
- AM_RANGE(010, 010) AM_READ(serial_tx_ready_r) AM_WRITE(beep_w) // 08h W: speaker control [6.1.5.4]
+ AM_RANGE(010, 010) AM_READWRITE(serial_tx_ready_r, beep_w) // 08h W: speaker control [6.1.5.4]
AM_RANGE(011, 011) AM_READ(kb_r) // 09h R: keyboard data [6.1.5.2]
AM_RANGE(012, 012) AM_READ(kb_s_red_r) // 0Ah I: keyboard mode "RED" [6.1.5.2]
AM_RANGE(013, 013) AM_READ(kb_ready_r) // 0Bh R: keyboard data ready [6.1.5.2]
- AM_RANGE(014, 014) AM_READ(kb_s_sdv_r) AM_WRITE(serial_speed_w) // 0Ch W: serial port speed [6.1.3.1], R: keyboard mode "SDV" [6.1.5.2]
- AM_RANGE(015, 015) AM_READ(kb_s_dk_r) AM_WRITE(kb_ready_w) // 0Dh I: keyboard mode "DK" [6.1.5.2]
+ AM_RANGE(014, 014) AM_READWRITE(kb_s_sdv_r, serial_speed_w) // 0Ch W: serial port speed [6.1.3.1], R: keyboard mode "SDV" [6.1.5.2]
+ AM_RANGE(015, 015) AM_READWRITE(kb_s_dk_r, kb_ready_w) // 0Dh I: keyboard mode "DK" [6.1.5.2]
AM_RANGE(016, 016) AM_READ(kb_s_dupl_r) // 0Eh I: keyboard mode "DUPL" [6.1.5.2]
AM_RANGE(017, 017) AM_READ(kb_s_lin_r) // 0Fh I: keyboard mode "LIN" [6.1.5.2]
// simulation of flag registers
- AM_RANGE(020, 027) AM_READ(flag_r) AM_WRITE(flag_w)
+ AM_RANGE(020, 027) AM_READWRITE(flag_r, flag_w)
ADDRESS_MAP_END
/* Input ports */
@@ -454,8 +454,7 @@ void ie15_state::machine_reset()
m_serial_tx_ready = m_serial_rx_ready = IE_TRUE;
set_data_frame(1 /* start bits */, 8 /* data bits */, PARITY_NONE, STOP_BITS_1);
// device supports rates from 150 to 9600 baud but null_modem has hardcoded 9600
- set_tra_rate(9600);
- set_rcv_rate(9600);
+ set_rate(9600);
}
void ie15_state::video_start()
diff --git a/src/mess/drivers/if800.c b/src/mame/drivers/if800.c
index 57b0bc0fdad..610269b9642 100644
--- a/src/mess/drivers/if800.c
+++ b/src/mame/drivers/if800.c
@@ -114,4 +114,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1985, if800, 0, 0, if800, if800, driver_device, 0, "Oki Electric", "if800 model 60", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/igs009.c b/src/mame/drivers/igs009.c
index fdb289f6632..b94f9b163c8 100644
--- a/src/mame/drivers/igs009.c
+++ b/src/mame/drivers/igs009.c
@@ -965,5 +965,5 @@ ROM_START( gp98 )
// no OKI on this
ROM_END
-GAME( 1995?, jingbell, 0, jingbell, jingbell, igs009_state, jingbell, ROT0, "IGS", "Jingle Bell (Italy, V133I)", GAME_SUPPORTS_SAVE )
-GAME( 1998, gp98, 0, gp98, jingbell, driver_device, 0, ROT0, "Romtec Co. Ltd", "Grand Prix '98 (V100K)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+GAME( 1995?, jingbell, 0, jingbell, jingbell, igs009_state, jingbell, 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_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/igs011.c b/src/mame/drivers/igs011.c
index 810920b6c18..1e0f0c825d4 100644
--- a/src/mame/drivers/igs011.c
+++ b/src/mame/drivers/igs011.c
@@ -4796,20 +4796,20 @@ ROM_END
***************************************************************************/
-GAME( 1997, drgnwrld, 0, drgnwrld, drgnwrld, igs011_state, drgnwrld, ROT0, "IGS", "Dragon World (World, V040O)", GAME_SUPPORTS_SAVE )
-GAME( 1995, drgnwrldv30, drgnwrld, drgnwrld, drgnwrld, igs011_state, drgnwrldv30, ROT0, "IGS", "Dragon World (World, V030O)", GAME_SUPPORTS_SAVE )
-GAME( 1995, drgnwrldv21, drgnwrld, drgnwrld_igs012, drgnwrld, igs011_state, drgnwrldv21, ROT0, "IGS", "Dragon World (World, V021O)", GAME_SUPPORTS_SAVE )
-GAME( 1995, drgnwrldv21j, drgnwrld, drgnwrld_igs012, drgnwrldj, igs011_state, drgnwrldv21j, ROT0, "IGS / Alta", "Zhong Guo Long (Japan, V021J)", GAME_SUPPORTS_SAVE )
-GAME( 1995, drgnwrldv20j, drgnwrld, drgnwrld_igs012, drgnwrldj, igs011_state, drgnwrldv20j, ROT0, "IGS / Alta", "Zhong Guo Long (Japan, V020J)", GAME_SUPPORTS_SAVE )
-GAME( 1995, drgnwrldv10c, drgnwrld, drgnwrld, drgnwrldc, igs011_state, drgnwrldv10c, ROT0, "IGS", "Zhong Guo Long (China, V010C)", GAME_SUPPORTS_SAVE )
-GAME( 1995, drgnwrldv11h, drgnwrld, drgnwrld, drgnwrldc, igs011_state, drgnwrldv11h, ROT0, "IGS", "Dong Fang Zhi Zhu (Hong Kong, V011H)", GAME_SUPPORTS_SAVE )
-GAME( 1995, lhb, 0, lhb, lhb, igs011_state, lhb, ROT0, "IGS", "Long Hu Bang (China, V035C)", GAME_SUPPORTS_SAVE )
-GAME( 1995, lhbv33c, lhb, lhb, lhb, igs011_state, lhbv33c, ROT0, "IGS", "Long Hu Bang (China, V033C)", GAME_SUPPORTS_SAVE )
-GAME( 1995, dbc, lhb, lhb, lhb, igs011_state, dbc, ROT0, "IGS", "Da Ban Cheng (Hong Kong, V027H)", GAME_SUPPORTS_SAVE )
-GAME( 1995, ryukobou, lhb, lhb, lhb, igs011_state, ryukobou, ROT0, "IGS / Alta", "Mahjong Ryukobou (Japan, V030J)", GAME_SUPPORTS_SAVE )
-GAME( 1996, lhb2, 0, lhb2, lhb2, igs011_state, lhb2, ROT0, "IGS", "Long Hu Bang II (Hong Kong, V185H)", GAME_SUPPORTS_SAVE )
-GAME( 1996, xymg, 0, xymg, xymg, igs011_state, xymg, ROT0, "IGS", "Xing Yun Man Guan (China, V651C)", GAME_SUPPORTS_SAVE )
-GAME( 1996, wlcc, xymg, wlcc, wlcc, igs011_state, wlcc, ROT0, "IGS", "Wan Li Chang Cheng (China, V638C)", GAME_SUPPORTS_SAVE )
-GAME( 1996, vbowl, 0, vbowl, vbowl, igs011_state, vbowl, ROT0, "IGS", "Virtua Bowling (World, V101XCM)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE)
-GAME( 1996, vbowlj, vbowl, vbowl, vbowlj, igs011_state, vbowlj, ROT0, "IGS / Alta", "Virtua Bowling (Japan, V100JCM)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE)
-GAME( 1998, nkishusp, lhb2, nkishusp, nkishusp, igs011_state, nkishusp, ROT0, "IGS / Alta", "Mahjong Nenrikishu SP (Japan, V250J)", GAME_SUPPORTS_SAVE )
+GAME( 1997, drgnwrld, 0, drgnwrld, drgnwrld, igs011_state, drgnwrld, ROT0, "IGS", "Dragon World (World, V040O)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, drgnwrldv30, drgnwrld, drgnwrld, drgnwrld, igs011_state, drgnwrldv30, ROT0, "IGS", "Dragon World (World, V030O)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, drgnwrldv21, drgnwrld, drgnwrld_igs012, drgnwrld, igs011_state, drgnwrldv21, ROT0, "IGS", "Dragon World (World, V021O)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, drgnwrldv21j, drgnwrld, drgnwrld_igs012, drgnwrldj, igs011_state, drgnwrldv21j, ROT0, "IGS / Alta", "Zhong Guo Long (Japan, V021J)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, drgnwrldv20j, drgnwrld, drgnwrld_igs012, drgnwrldj, igs011_state, drgnwrldv20j, ROT0, "IGS / Alta", "Zhong Guo Long (Japan, V020J)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, drgnwrldv10c, drgnwrld, drgnwrld, drgnwrldc, igs011_state, drgnwrldv10c, ROT0, "IGS", "Zhong Guo Long (China, V010C)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, drgnwrldv11h, drgnwrld, drgnwrld, drgnwrldc, igs011_state, drgnwrldv11h, ROT0, "IGS", "Dong Fang Zhi Zhu (Hong Kong, V011H)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, lhb, 0, lhb, lhb, igs011_state, lhb, ROT0, "IGS", "Long Hu Bang (China, V035C)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, lhbv33c, lhb, lhb, lhb, igs011_state, lhbv33c, ROT0, "IGS", "Long Hu Bang (China, V033C)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, dbc, lhb, lhb, lhb, igs011_state, dbc, ROT0, "IGS", "Da Ban Cheng (Hong Kong, V027H)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, ryukobou, lhb, lhb, lhb, igs011_state, ryukobou, ROT0, "IGS / Alta", "Mahjong Ryukobou (Japan, V030J)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, lhb2, 0, lhb2, lhb2, igs011_state, lhb2, ROT0, "IGS", "Long Hu Bang II (Hong Kong, V185H)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, xymg, 0, xymg, xymg, igs011_state, xymg, ROT0, "IGS", "Xing Yun Man Guan (China, V651C)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, wlcc, xymg, wlcc, wlcc, igs011_state, wlcc, ROT0, "IGS", "Wan Li Chang Cheng (China, V638C)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, vbowl, 0, vbowl, vbowl, igs011_state, vbowl, ROT0, "IGS", "Virtua Bowling (World, V101XCM)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE)
+GAME( 1996, vbowlj, vbowl, vbowl, vbowlj, igs011_state, vbowlj, ROT0, "IGS / Alta", "Virtua Bowling (Japan, V100JCM)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE)
+GAME( 1998, nkishusp, lhb2, nkishusp, nkishusp, igs011_state, nkishusp, ROT0, "IGS / Alta", "Mahjong Nenrikishu SP (Japan, V250J)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/igs017.c b/src/mame/drivers/igs017.c
index c049153dde3..ac979aad5b0 100644
--- a/src/mame/drivers/igs017.c
+++ b/src/mame/drivers/igs017.c
@@ -53,6 +53,7 @@ Notes:
#include "machine/igs025.h"
#include "machine/igs022.h"
#include "machine/ticket.h"
+#include "video/igs017_igs031.h"
class igs017_state : public driver_device
{
@@ -61,54 +62,38 @@ public:
: driver_device(mconfig, type, tag),
m_input_addr(-1),
m_maincpu(*this, "maincpu"),
- m_spriteram(*this, "spriteram", 0),
- m_fg_videoram(*this, "fg_videoram", 0),
- m_bg_videoram(*this, "bg_videoram", 0),
m_oki(*this, "oki"),
m_hopperdev(*this, "hopper"),
m_igs025(*this,"igs025"),
m_igs022(*this,"igs022"),
- m_gfxdecode(*this, "gfxdecode"),
m_screen(*this, "screen"),
m_palette(*this, "palette"),
- m_generic_paletteram_8(*this, "paletteram"),
- m_generic_paletteram_16(*this, "paletteram"),
- m_decrypted_opcodes(*this, "decrypted_opcodes")
+ m_decrypted_opcodes(*this, "decrypted_opcodes"),
+ m_igs017_igs031(*this, "igs017_igs031")
{ }
int m_input_addr;
required_device<cpu_device> m_maincpu;
- optional_shared_ptr<UINT8> m_spriteram;
- optional_shared_ptr<UINT8> m_fg_videoram;
- optional_shared_ptr<UINT8> m_bg_videoram;
+
required_device<okim6295_device> m_oki;
optional_device<ticket_dispenser_device> m_hopperdev;
optional_device<igs025_device> m_igs025; // Mj Shuang Long Qiang Zhu 2
optional_device<igs022_device> m_igs022; // Mj Shuang Long Qiang Zhu 2
- required_device<gfxdecode_device> m_gfxdecode;
required_device<screen_device> m_screen;
required_device<palette_device> m_palette;
- optional_shared_ptr<UINT8> m_generic_paletteram_8;
- optional_shared_ptr<UINT16> m_generic_paletteram_16;
optional_shared_ptr<UINT8> m_decrypted_opcodes;
+ required_device<igs017_igs031_device> m_igs017_igs031;
+
void igs025_to_igs022_callback( void );
- int m_toggle;
- int m_debug_addr;
- int m_debug_width;
- UINT8 m_video_disable;
- tilemap_t *m_fg_tilemap;
- tilemap_t *m_bg_tilemap;
- UINT8 *m_sprites_gfx;
- int m_sprites_gfx_size;
- int m_nmi_enable;
- int m_irq_enable;
+
+
UINT8 m_input_select;
UINT8 m_hopper;
UINT16 m_igs_magic[2];
UINT8 m_scramble_data;
- int m_irq1_enable;
+
UINT8 m_dsw_select;
// lhzb2a protection:
@@ -122,38 +107,28 @@ public:
// IGS029 protection (mgcs)
UINT32 m_igs029_mgcs_long;
- int m_irq2_enable;
- DECLARE_WRITE8_MEMBER(video_disable_w);
- DECLARE_WRITE16_MEMBER(video_disable_lsb_w);
- DECLARE_WRITE8_MEMBER(fg_w);
- DECLARE_WRITE8_MEMBER(bg_w);
- DECLARE_READ16_MEMBER(fg_lsb_r);
- DECLARE_WRITE16_MEMBER(fg_lsb_w);
- DECLARE_READ16_MEMBER(bg_lsb_r);
- DECLARE_WRITE16_MEMBER(bg_lsb_w);
- DECLARE_READ16_MEMBER(spriteram_lsb_r);
- DECLARE_WRITE16_MEMBER(spriteram_lsb_w);
- DECLARE_WRITE8_MEMBER(nmi_enable_w);
- DECLARE_WRITE8_MEMBER(irq_enable_w);
+
DECLARE_WRITE8_MEMBER(input_select_w);
DECLARE_READ8_MEMBER(input_r);
DECLARE_WRITE16_MEMBER(mgcs_magic_w);
DECLARE_READ16_MEMBER(mgcs_magic_r);
- DECLARE_WRITE16_MEMBER(irq1_enable_w);
- DECLARE_WRITE16_MEMBER(irq2_enable_w);
- DECLARE_WRITE16_MEMBER(mgcs_paletteram_w);
- DECLARE_WRITE16_MEMBER(sdmg2_paletteram_w);
+
+ UINT16 mgcs_palette_bitswap(UINT16 bgr);
+ UINT16 lhzb2a_palette_bitswap(UINT16 bgr);
+ UINT16 tjsb_palette_bitswap(UINT16 bgr);
+ UINT16 slqz2_palette_bitswap(UINT16 bgr);
+
DECLARE_READ8_MEMBER(sdmg2_keys_r);
DECLARE_WRITE16_MEMBER(sdmg2_magic_w);
DECLARE_READ16_MEMBER(sdmg2_magic_r);
DECLARE_READ8_MEMBER(mgdh_keys_r);
DECLARE_WRITE16_MEMBER(mgdha_magic_w);
DECLARE_READ16_MEMBER(mgdha_magic_r);
- DECLARE_WRITE8_MEMBER(tjsb_paletteram_w);
+
DECLARE_WRITE8_MEMBER(tjsb_output_w);
DECLARE_READ8_MEMBER(tjsb_input_r);
DECLARE_READ8_MEMBER(spkrform_input_r);
- DECLARE_WRITE16_MEMBER(lhzb2a_paletteram_w);
+
DECLARE_READ16_MEMBER(lhzb2a_input_r);
DECLARE_WRITE16_MEMBER(lhzb2a_input_addr_w);
DECLARE_WRITE16_MEMBER(lhzb2a_input_select_w);
@@ -168,7 +143,7 @@ public:
DECLARE_WRITE16_MEMBER(lhzb2_magic_w);
DECLARE_READ16_MEMBER(lhzb2_magic_r);
- DECLARE_WRITE16_MEMBER(slqz2_paletteram_w);
+
DECLARE_WRITE16_MEMBER(slqz2_magic_w);
DECLARE_READ16_MEMBER(slqz2_magic_r);
DECLARE_READ8_MEMBER(mgcs_keys_r);
@@ -186,8 +161,7 @@ public:
DECLARE_DRIVER_INIT(tarzana);
DECLARE_DRIVER_INIT(lhzb2a);
DECLARE_DRIVER_INIT(mgdha);
- TILE_GET_INFO_MEMBER(get_fg_tile_info);
- TILE_GET_INFO_MEMBER(get_bg_tile_info);
+
virtual void video_start();
virtual void machine_reset();
DECLARE_MACHINE_RESET(iqblocka);
@@ -197,10 +171,8 @@ public:
TIMER_DEVICE_CALLBACK_MEMBER(iqblocka_interrupt);
TIMER_DEVICE_CALLBACK_MEMBER(mgcs_interrupt);
TIMER_DEVICE_CALLBACK_MEMBER(mgdh_interrupt);
- void expand_sprites();
- void draw_sprite(bitmap_ind16 &bitmap,const rectangle &cliprect, int sx, int sy, int dimx, int dimy, int flipx, int flipy, int color, int addr);
- void draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect);
- int debug_viewer(bitmap_ind16 &bitmap,const rectangle &cliprect);
+
+
void decrypt_program_rom(int mask, int a7, int a6, int a5, int a4, int a3, int a2, int a1, int a0);
void iqblocka_patch_rom();
void tjsb_decrypt_sprites();
@@ -220,7 +192,6 @@ public:
void igs017_state::machine_reset()
{
- m_video_disable = 0;
m_igs029_send_len = m_igs029_recv_len = 0;
}
@@ -228,274 +199,45 @@ void igs017_state::machine_reset()
Video Hardware
***************************************************************************/
-WRITE8_MEMBER(igs017_state::video_disable_w)
-{
- m_video_disable = data & 1;
- if (data & (~1))
- logerror("%s: unknown bits of video_disable written = %02x\n", machine().describe_context(), data);
-// popmessage("VIDEO %02X",data);
-}
-WRITE16_MEMBER(igs017_state::video_disable_lsb_w)
-{
- if (ACCESSING_BITS_0_7)
- video_disable_w(space,offset,data);
-}
-
-
-#define COLOR(_X) (((_X)>>2)&7)
-
-TILE_GET_INFO_MEMBER(igs017_state::get_fg_tile_info)
-{
- int code = m_fg_videoram[tile_index*4+0] + (m_fg_videoram[tile_index*4+1] << 8);
- int attr = m_fg_videoram[tile_index*4+2] + (m_fg_videoram[tile_index*4+3] << 8);
- SET_TILE_INFO_MEMBER(0, code, COLOR(attr), TILE_FLIPXY( attr >> 5 ));
-}
-TILE_GET_INFO_MEMBER(igs017_state::get_bg_tile_info)
-{
- int code = m_bg_videoram[tile_index*4+0] + (m_bg_videoram[tile_index*4+1] << 8);
- int attr = m_bg_videoram[tile_index*4+2] + (m_bg_videoram[tile_index*4+3] << 8);
- SET_TILE_INFO_MEMBER(0, code, COLOR(attr)+8, TILE_FLIPXY( attr >> 5 ));
-}
-
-WRITE8_MEMBER(igs017_state::fg_w)
-{
- m_fg_videoram[offset] = data;
- m_fg_tilemap->mark_tile_dirty(offset/4);
-}
-
-WRITE8_MEMBER(igs017_state::bg_w)
-{
- m_bg_videoram[offset] = data;
- m_bg_tilemap->mark_tile_dirty(offset/4);
-}
-
-// 16-bit handlers for an 8-bit chip
-
-READ16_MEMBER(igs017_state::fg_lsb_r)
-{
- return m_fg_videoram[offset];
-}
-WRITE16_MEMBER(igs017_state::fg_lsb_w)
-{
- if (ACCESSING_BITS_0_7)
- fg_w(space,offset,data);
-}
-READ16_MEMBER(igs017_state::bg_lsb_r)
-{
- return m_bg_videoram[offset];
-}
-WRITE16_MEMBER(igs017_state::bg_lsb_w)
+void igs017_state::video_start()
{
- if (ACCESSING_BITS_0_7)
- bg_w(space,offset,data);
+ m_igs017_igs031->video_start();
}
-READ16_MEMBER(igs017_state::spriteram_lsb_r)
-{
- return m_spriteram[offset];
-}
-WRITE16_MEMBER(igs017_state::spriteram_lsb_w)
-{
- if (ACCESSING_BITS_0_7)
- m_spriteram[offset] = data;
-}
-
-
-
-// Eeach 16 bit word in the sprites gfx roms contains three 5 bit pens: x-22222-11111-00000 (little endian!).
-// This routine expands each word into three bytes.
-void igs017_state::expand_sprites()
+UINT32 igs017_state::screen_update_igs017(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- UINT8 *rom = memregion("sprites")->base();
- int size = memregion("sprites")->bytes();
- int i;
-
- m_sprites_gfx_size = size / 2 * 3;
- m_sprites_gfx = auto_alloc_array(machine(), UINT8, m_sprites_gfx_size);
-
- for (i = 0; i < size / 2 ; i++)
- {
- UINT16 pens = (rom[i*2+1] << 8) | rom[i*2];
-
- m_sprites_gfx[i * 3 + 0] = (pens >> 0) & 0x1f;
- m_sprites_gfx[i * 3 + 1] = (pens >> 5) & 0x1f;
- m_sprites_gfx[i * 3 + 2] = (pens >> 10) & 0x1f;
- }
+ m_igs017_igs031->screen_update_igs017(screen, bitmap, cliprect);
+ return 0;
}
-void igs017_state::video_start()
+// palette bitswap callbacks
+UINT16 igs017_state::mgcs_palette_bitswap(UINT16 bgr)
{
- m_fg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(igs017_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
- m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(igs017_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
-
- m_fg_tilemap->set_transparent_pen(0xf);
- m_bg_tilemap->set_transparent_pen(0xf);
+ bgr = ((bgr & 0xff00) >> 8) | ((bgr & 0x00ff) << 8);
- m_toggle = 0;
- m_debug_addr = 0;
- m_debug_width = 512;
-
- expand_sprites();
+ return BITSWAP16(bgr, 7, 8, 9, 2, 14, 3, 13, 15, 12, 11, 10, 0, 1, 4, 5, 6);
}
-/***************************************************************************
- Sprites Format
-
- Offset: Bits: Value:
-
- 0.b Y (low)
-
- 1.b 7654 32-- Size Y (low)
- ---- --10 Y (high)
-
- 2.b 7654 3--- X (low)
- ---- -210 Size Y (high)
-
- 3.b 76-- ---- Size X (low)
- --5- ----
- ---4 3210 X (high)
-
- 4.b 76-- ---- Code (low)
- --54 3210 Size X (high)
-
- 5.b Code (mid low)
-
- 6.b Code (mid high)
-
- 7.b 765- ---- Color
- ---4 ---- Flip X
- ---- 3---
- ---- -210 Code (high)
-
- Code = ROM Address / 2 = Pixel / 3
-
-***************************************************************************/
-
-void igs017_state::draw_sprite(bitmap_ind16 &bitmap,const rectangle &cliprect, int sx, int sy, int dimx, int dimy, int flipx, int flipy, int color, int addr)
+UINT16 igs017_state::lhzb2a_palette_bitswap(UINT16 bgr)
{
- // prepare GfxElement on the fly
-
- // Bounds checking
- if ( addr + dimx * dimy >= m_sprites_gfx_size )
- return;
-
- gfx_element gfx(m_palette, m_sprites_gfx + addr, dimx, dimy, dimx, m_palette->entries(), 0x100, 32);
-
- gfx.transpen(bitmap,cliprect,
- 0, color,
- flipx, flipy,
- sx, sy, 0x1f );
+// bgr = ((bgr & 0xff00) >> 8) | ((bgr & 0x00ff) << 8);
+ return BITSWAP16(bgr, 15,9,13,12,11,5,4,8,7,6,0,14,3,2,1,10);
}
-void igs017_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect)
+UINT16 igs017_state::tjsb_palette_bitswap(UINT16 bgr)
{
- UINT8 *s = m_spriteram;
- UINT8 *end = m_spriteram + 0x800;
-
- for ( ; s < end; s += 8 )
- {
- int x,y, sx,sy, dimx,dimy, flipx,flipy, addr,color;
-
- y = s[0] + (s[1] << 8);
- x = s[2] + (s[3] << 8);
- addr = (s[4] >> 6) | (s[5] << 2) | (s[6] << 10) | ((s[7] & 0x07) << 18);
- addr *= 3;
-
- flipx = s[7] & 0x10;
- flipy = 0;
-
- dimx = ((((s[4] & 0x3f)<<2) | ((s[3] & 0xc0)>>6))+1) * 3;
- dimy = ((y >> 10) | ((x & 0x03)<<6))+1;
-
- x >>= 3;
- sx = (x & 0x1ff) - (x & 0x200);
- sy = (y & 0x1ff) - (y & 0x200);
-
- // sprites list stop (used by mgdh & sdmg2 during don den)
- if (sy == -0x200)
- break;
-
- color = (s[7] & 0xe0) >> 5;
-
- draw_sprite(bitmap, cliprect, sx, sy, dimx, dimy, flipx, flipy, color, addr);
- }
+ // bitswap
+ return BITSWAP16(bgr, 15,12,3,6,10,5,4,2,9,13,8,7,11,1,0,14);
}
-// A simple gfx viewer (toggle with T)
-int igs017_state::debug_viewer(bitmap_ind16 &bitmap,const rectangle &cliprect)
+UINT16 igs017_state::slqz2_palette_bitswap(UINT16 bgr)
{
-#ifdef MAME_DEBUG
- if (machine().input().code_pressed_once(KEYCODE_T)) m_toggle = 1-m_toggle;
- if (m_toggle) {
- int h = 256, w = m_debug_width, a = m_debug_addr;
-
- if (machine().input().code_pressed(KEYCODE_O)) w += 1;
- if (machine().input().code_pressed(KEYCODE_I)) w -= 1;
-
- if (machine().input().code_pressed(KEYCODE_U)) w += 8;
- if (machine().input().code_pressed(KEYCODE_Y)) w -= 8;
-
- if (machine().input().code_pressed(KEYCODE_RIGHT)) a += 1;
- if (machine().input().code_pressed(KEYCODE_LEFT)) a -= 1;
-
- if (machine().input().code_pressed(KEYCODE_DOWN)) a += w;
- if (machine().input().code_pressed(KEYCODE_UP)) a -= w;
-
- if (machine().input().code_pressed(KEYCODE_PGDN)) a += w * h;
- if (machine().input().code_pressed(KEYCODE_PGUP)) a -= w * h;
-
- if (a < 0) a = 0;
- if (a > m_sprites_gfx_size) a = m_sprites_gfx_size;
-
- if (w <= 0) w = 0;
- if (w > 1024) w = 1024;
-
- bitmap.fill(0, cliprect);
-
- draw_sprite(bitmap, cliprect, 0,0, w,h, 0,0, 0, a);
-
- popmessage("a: %08X w: %03X p: %02x-%02x-%02x",a,w,m_sprites_gfx[a/3*3+0],m_sprites_gfx[a/3*3+1],m_sprites_gfx[a/3*3+2]);
- m_debug_addr = a;
- m_debug_width = w;
- osd_sleep(200000);
- return 1;
- }
-#endif
- return 0;
+ return BITSWAP16(bgr, 15,14,9,4,11,10,12,3,7,6,5,8,13,2,1,0);
}
-UINT32 igs017_state::screen_update_igs017(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
-{
- int layers_ctrl = -1;
-
-#ifdef MAME_DEBUG
- if (machine().input().code_pressed(KEYCODE_Z))
- {
- int mask = 0;
- if (machine().input().code_pressed(KEYCODE_Q)) mask |= 1;
- if (machine().input().code_pressed(KEYCODE_W)) mask |= 2;
- if (machine().input().code_pressed(KEYCODE_A)) mask |= 4;
- if (mask != 0) layers_ctrl &= mask;
- }
-#endif
-
- if (debug_viewer(bitmap,cliprect))
- return 0;
-
- bitmap.fill(m_palette->black_pen(), cliprect);
-
- if (m_video_disable)
- return 0;
-
- if (layers_ctrl & 1) m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- if (layers_ctrl & 4) draw_sprites(bitmap, cliprect);
- if (layers_ctrl & 2) m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
-
- return 0;
-}
/***************************************************************************
Decryption
@@ -697,7 +439,7 @@ void igs017_state::mgcs_decrypt_tiles()
for (i = 0;i < length;i++)
{
int addr = (i & ~0xffff) | BITSWAP16(i,15,14,13,12,11,10,6,7,8,9,5,4,3,2,1,0);
- rom[i] = tmp[addr];
+ rom[i^1] = BITSWAP8(tmp[addr],0,1,2,3,4,5,6,7);
}
}
@@ -1353,19 +1095,7 @@ static ADDRESS_MAP_START( decrypted_opcodes_map, AS_DECRYPTED_OPCODES, 8, igs017
AM_RANGE( 0x00000, 0x3ffff ) AM_ROM AM_SHARE("decrypted_opcodes")
ADDRESS_MAP_END
-WRITE8_MEMBER(igs017_state::nmi_enable_w)
-{
- m_nmi_enable = data & 1;
- if (data & (~1))
- logerror("%s: nmi_enable = %02x\n", machine().describe_context(), data);
-}
-WRITE8_MEMBER(igs017_state::irq_enable_w)
-{
- m_irq_enable = data & 1;
- if (data & (~1))
- logerror("%s: irq_enable = %02x\n", machine().describe_context(), data);
-}
WRITE8_MEMBER(igs017_state::input_select_w)
{
@@ -1413,20 +1143,7 @@ READ8_MEMBER(igs017_state::input_r)
static ADDRESS_MAP_START( iqblocka_io, AS_IO, 8, igs017_state )
AM_RANGE( 0x0000, 0x003f ) AM_RAM // internal regs
- AM_RANGE( 0x1000, 0x17ff ) AM_RAM AM_SHARE("spriteram")
- AM_RANGE( 0x1800, 0x1bff ) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
- AM_RANGE( 0x1c00, 0x1fff ) AM_RAM
-
-// AM_RANGE(0x200a, 0x200a) AM_WRITENOP
-
- AM_RANGE( 0x2010, 0x2013 ) AM_DEVREAD("ppi8255", i8255_device, read)
- AM_RANGE( 0x2012, 0x2012 ) AM_WRITE(video_disable_w )
-
- AM_RANGE( 0x2014, 0x2014 ) AM_WRITE(nmi_enable_w )
- AM_RANGE( 0x2015, 0x2015 ) AM_WRITE(irq_enable_w )
-
- AM_RANGE( 0x4000, 0x5fff ) AM_RAM_WRITE(fg_w ) AM_SHARE("fg_videoram")
- AM_RANGE( 0x6000, 0x7fff ) AM_RAM_WRITE(bg_w ) AM_SHARE("bg_videoram")
+ AM_RANGE( 0x0000, 0x7fff ) AM_DEVREADWRITE("igs017_igs031", igs017_igs031_device, read,write)
AM_RANGE( 0x8000, 0x8000 ) AM_WRITE(input_select_w )
AM_RANGE( 0x8001, 0x8001 ) AM_READ(input_r )
@@ -1694,48 +1411,15 @@ READ8_MEMBER(igs017_state::mgcs_keys_r)
return 0xff;
}
-WRITE16_MEMBER(igs017_state::irq1_enable_w)
-{
- if (ACCESSING_BITS_0_7)
- m_irq1_enable = data & 1;
-
- if (data != 0 && data != 1 && data != 0xff)
- logerror("%s: irq1_enable = %04x\n", machine().describe_context(), data);
-}
-
-WRITE16_MEMBER(igs017_state::irq2_enable_w)
-{
- if (ACCESSING_BITS_0_7)
- m_irq2_enable = data & 1;
-
- if (data != 0 && data != 1 && data != 0xff)
- logerror("%s: irq2_enable = %04x\n", machine().describe_context(), data);
-}
-
-WRITE16_MEMBER(igs017_state::mgcs_paletteram_w)
-{
- COMBINE_DATA(&m_generic_paletteram_16[offset]);
-
- int bgr = ((m_generic_paletteram_16[offset/2*2+0] & 0xff) << 8) | (m_generic_paletteram_16[offset/2*2+1] & 0xff);
- // bitswap
- bgr = BITSWAP16(bgr, 7,8,9,2,14,3,13,15,12,11,10,0,1,4,5,6);
-
- m_palette->set_pen_color(offset/2, pal5bit(bgr >> 0), pal5bit(bgr >> 5), pal5bit(bgr >> 10));
-}
static ADDRESS_MAP_START( mgcs, AS_PROGRAM, 16, igs017_state )
AM_RANGE( 0x000000, 0x07ffff ) AM_ROM
AM_RANGE( 0x300000, 0x303fff ) AM_RAM
AM_RANGE( 0x49c000, 0x49c003 ) AM_WRITE(mgcs_magic_w ) AM_READ(mgcs_magic_r )
- AM_RANGE( 0xa02000, 0xa02fff ) AM_READWRITE(spriteram_lsb_r, spriteram_lsb_w ) AM_SHARE("spriteram")
- AM_RANGE( 0xa03000, 0xa037ff ) AM_RAM_WRITE(mgcs_paletteram_w ) AM_SHARE("paletteram")
- AM_RANGE( 0xa04020, 0xa04027 ) AM_DEVREAD8("ppi8255", i8255_device, read, 0x00ff)
- AM_RANGE( 0xa04024, 0xa04025 ) AM_WRITE(video_disable_lsb_w )
- AM_RANGE( 0xa04028, 0xa04029 ) AM_RAM_WRITE(irq2_enable_w )
- AM_RANGE( 0xa0402a, 0xa0402b ) AM_RAM_WRITE(irq1_enable_w )
- AM_RANGE( 0xa08000, 0xa0bfff ) AM_READWRITE(fg_lsb_r, fg_lsb_w ) AM_SHARE("fg_videoram")
- AM_RANGE( 0xa0c000, 0xa0ffff ) AM_READWRITE(bg_lsb_r, bg_lsb_w ) AM_SHARE("bg_videoram")
+
+ AM_RANGE( 0xa00000, 0xa0ffff ) AM_DEVREADWRITE8("igs017_igs031", igs017_igs031_device, read,write, 0x00ff)
+
AM_RANGE( 0xa12000, 0xa12001 ) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff )
// oki banking through protection (code at $1a350)?
ADDRESS_MAP_END
@@ -1743,16 +1427,6 @@ ADDRESS_MAP_END
// sdmg2
-
-WRITE16_MEMBER(igs017_state::sdmg2_paletteram_w)
-{
- COMBINE_DATA(&m_generic_paletteram_16[offset]);
-
- int bgr = ((m_generic_paletteram_16[offset/2*2+1] & 0xff) << 8) | (m_generic_paletteram_16[offset/2*2+0] & 0xff);
-
- m_palette->set_pen_color(offset/2, pal5bit(bgr >> 0), pal5bit(bgr >> 5), pal5bit(bgr >> 10));
-}
-
READ8_MEMBER(igs017_state::sdmg2_keys_r)
{
if (~m_input_select & 0x01) return ioport("KEY0")->read();
@@ -1824,14 +1498,9 @@ READ16_MEMBER(igs017_state::sdmg2_magic_r)
static ADDRESS_MAP_START( sdmg2, AS_PROGRAM, 16, igs017_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x1f0000, 0x1fffff) AM_RAM
- AM_RANGE(0x202000, 0x202fff) AM_READWRITE(spriteram_lsb_r, spriteram_lsb_w ) AM_SHARE("spriteram")
- AM_RANGE(0x203000, 0x2037ff) AM_RAM_WRITE(sdmg2_paletteram_w ) AM_SHARE("paletteram")
- AM_RANGE(0x204020, 0x204027) AM_DEVREAD8("ppi8255", i8255_device, read, 0x00ff)
- AM_RANGE(0x204024, 0x204025) AM_WRITE(video_disable_lsb_w )
- AM_RANGE(0x204028, 0x204029) AM_WRITE(irq2_enable_w )
- AM_RANGE(0x20402a, 0x20402b) AM_WRITE(irq1_enable_w )
- AM_RANGE(0x208000, 0x20bfff) AM_READWRITE(fg_lsb_r, fg_lsb_w ) AM_SHARE("fg_videoram")
- AM_RANGE(0x20c000, 0x20ffff) AM_READWRITE(bg_lsb_r, bg_lsb_w ) AM_SHARE("bg_videoram")
+
+ AM_RANGE(0x200000, 0x20ffff ) AM_DEVREADWRITE8("igs017_igs031", igs017_igs031_device, read,write, 0x00ff)
+
AM_RANGE(0x210000, 0x210001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff )
AM_RANGE(0x300000, 0x300003) AM_WRITE(sdmg2_magic_w )
AM_RANGE(0x300002, 0x300003) AM_READ(sdmg2_magic_r )
@@ -1944,15 +1613,9 @@ static ADDRESS_MAP_START( mgdha_map, AS_PROGRAM, 16, igs017_state )
AM_RANGE(0x600000, 0x603fff) AM_RAM
AM_RANGE(0x876000, 0x876003) AM_WRITE(mgdha_magic_w )
AM_RANGE(0x876002, 0x876003) AM_READ(mgdha_magic_r )
- AM_RANGE(0xa02000, 0xa02fff) AM_READWRITE(spriteram_lsb_r, spriteram_lsb_w ) AM_SHARE("spriteram")
- AM_RANGE(0xa03000, 0xa037ff) AM_RAM_WRITE(sdmg2_paletteram_w ) AM_SHARE("paletteram")
-// AM_RANGE(0xa04014, 0xa04015) // written with FF at boot
- AM_RANGE(0xa04020, 0xa04027) AM_DEVREAD8("ppi8255", i8255_device, read, 0x00ff)
- AM_RANGE(0xa04024, 0xa04025) AM_WRITE(video_disable_lsb_w )
- AM_RANGE(0xa04028, 0xa04029) AM_WRITE(irq2_enable_w )
- AM_RANGE(0xa0402a, 0xa0402b) AM_WRITE(irq1_enable_w )
- AM_RANGE(0xa08000, 0xa0bfff) AM_READWRITE(fg_lsb_r, fg_lsb_w ) AM_SHARE("fg_videoram")
- AM_RANGE(0xa0c000, 0xa0ffff) AM_READWRITE(bg_lsb_r, bg_lsb_w ) AM_SHARE("bg_videoram")
+
+ AM_RANGE(0xa00000, 0xa0ffff ) AM_DEVREADWRITE8("igs017_igs031", igs017_igs031_device, read,write, 0x00ff)
+
AM_RANGE(0xa10000, 0xa10001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff )
ADDRESS_MAP_END
@@ -1960,17 +1623,6 @@ ADDRESS_MAP_END
// tjsb
-WRITE8_MEMBER(igs017_state::tjsb_paletteram_w)
-{
- m_generic_paletteram_8[offset] = data;
- int bgr = (m_generic_paletteram_8[offset/2*2+1] << 8) | m_generic_paletteram_8[offset/2*2+0];
-
- // bitswap
- bgr = BITSWAP16(bgr, 15,12,3,6,10,5,4,2,9,13,8,7,11,1,0,14);
-
- m_palette->set_pen_color(offset/2, pal5bit(bgr >> 0), pal5bit(bgr >> 5), pal5bit(bgr >> 10));
-}
-
WRITE8_MEMBER(igs017_state::tjsb_output_w)
{
switch(m_input_select)
@@ -2033,20 +1685,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( tjsb_io, AS_IO, 8, igs017_state )
AM_RANGE( 0x0000, 0x003f ) AM_RAM // internal regs
- AM_RANGE( 0x1000, 0x17ff ) AM_RAM AM_SHARE("spriteram")
- AM_RANGE( 0x1800, 0x1bff ) AM_RAM_WRITE(tjsb_paletteram_w ) AM_SHARE("paletteram")
- AM_RANGE( 0x1c00, 0x1fff ) AM_RAM
-
-// AM_RANGE(0x200a, 0x200a) AM_WRITENOP
-
- AM_RANGE( 0x2010, 0x2013 ) AM_DEVREAD("ppi8255", i8255_device, read)
- AM_RANGE( 0x2012, 0x2012 ) AM_WRITE(video_disable_w )
+ AM_RANGE( 0x0000, 0x7fff ) AM_DEVREADWRITE("igs017_igs031", igs017_igs031_device, read,write)
- AM_RANGE( 0x2014, 0x2014 ) AM_WRITE(nmi_enable_w )
- AM_RANGE( 0x2015, 0x2015 ) AM_WRITE(irq_enable_w )
-
- AM_RANGE( 0x4000, 0x5fff ) AM_RAM_WRITE(fg_w ) AM_SHARE("fg_videoram")
- AM_RANGE( 0x6000, 0x7fff ) AM_RAM_WRITE(bg_w ) AM_SHARE("bg_videoram")
AM_RANGE( 0x9000, 0x9000 ) AM_DEVREADWRITE("oki", okim6295_device, read, write)
@@ -2086,18 +1726,7 @@ READ8_MEMBER(igs017_state::spkrform_input_r)
static ADDRESS_MAP_START( spkrform_io, AS_IO, 8, igs017_state )
AM_RANGE( 0x0000, 0x003f ) AM_RAM // internal regs
- AM_RANGE( 0x1000, 0x17ff ) AM_RAM AM_SHARE("spriteram")
- AM_RANGE( 0x1800, 0x1bff ) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
- AM_RANGE( 0x1c00, 0x1fff ) AM_RAM
-
- AM_RANGE( 0x2010, 0x2013 ) AM_DEVREAD("ppi8255", i8255_device, read)
- AM_RANGE( 0x2012, 0x2012 ) AM_WRITE(video_disable_w )
-
- AM_RANGE( 0x2014, 0x2014 ) AM_WRITE(nmi_enable_w )
- AM_RANGE( 0x2015, 0x2015 ) AM_WRITE(irq_enable_w )
-
- AM_RANGE( 0x4000, 0x5fff ) AM_RAM_WRITE(fg_w ) AM_SHARE("fg_videoram")
- AM_RANGE( 0x6000, 0x7fff ) AM_RAM_WRITE(bg_w ) AM_SHARE("bg_videoram")
+ AM_RANGE( 0x0000, 0x7fff ) AM_DEVREADWRITE("igs017_igs031", igs017_igs031_device, read,write)
AM_RANGE( 0x8000, 0x8000 ) AM_DEVREADWRITE("oki", okim6295_device, read, write)
@@ -2177,14 +1806,9 @@ static ADDRESS_MAP_START( lhzb2, AS_PROGRAM, 16, igs017_state )
AM_RANGE(0x500000, 0x503fff) AM_RAM
AM_RANGE(0x910000, 0x910003) AM_WRITE( lhzb2_magic_w )
AM_RANGE(0x910002, 0x910003) AM_READ( lhzb2_magic_r )
- AM_RANGE(0xb02000, 0xb02fff) AM_READWRITE( spriteram_lsb_r, spriteram_lsb_w ) AM_SHARE("spriteram")
- AM_RANGE(0xb03000, 0xb037ff) AM_RAM_WRITE( lhzb2a_paletteram_w ) AM_SHARE("paletteram")
- AM_RANGE(0xb04020, 0xb04027) AM_DEVREAD8("ppi8255", i8255_device, read, 0x00ff)
- AM_RANGE(0xb04024, 0xb04025) AM_WRITE( video_disable_lsb_w )
- AM_RANGE(0xb04028, 0xb04029) AM_WRITE( irq2_enable_w )
- AM_RANGE(0xb0402a, 0xb0402b) AM_WRITE( irq1_enable_w )
- AM_RANGE(0xb08000, 0xb0bfff) AM_READWRITE( fg_lsb_r, fg_lsb_w ) AM_SHARE("fg_videoram")
- AM_RANGE(0xb0c000, 0xb0ffff) AM_READWRITE( bg_lsb_r, bg_lsb_w ) AM_SHARE("bg_videoram")
+
+ AM_RANGE( 0xb00000, 0xb0ffff ) AM_DEVREADWRITE8("igs017_igs031", igs017_igs031_device, read,write, 0x00ff)
+
AM_RANGE(0xb10000, 0xb10001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff )
ADDRESS_MAP_END
@@ -2422,18 +2046,6 @@ READ16_MEMBER(igs017_state::lhzb2a_prot2_r)
-WRITE16_MEMBER(igs017_state::lhzb2a_paletteram_w)
-{
- COMBINE_DATA(&m_generic_paletteram_16[offset]);
-
- int bgr = ((m_generic_paletteram_16[offset/2*2+1] & 0xff) << 8) | (m_generic_paletteram_16[offset/2*2+0] & 0xff);
-
- // bitswap
- bgr = BITSWAP16(bgr, 15,9,13,12,11,5,4,8,7,6,0,14,3,2,1,10);
-
- m_palette->set_pen_color(offset/2, pal5bit(bgr >> 0), pal5bit(bgr >> 5), pal5bit(bgr >> 10));
-}
-
READ16_MEMBER(igs017_state::lhzb2a_input_r)
{
switch (offset*2)
@@ -2511,13 +2123,9 @@ static ADDRESS_MAP_START( lhzb2a, AS_PROGRAM, 16, igs017_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x500000, 0x503fff) AM_RAM
// AM_RANGE(0x910000, 0x910003) accesses appear to be from leftover code where the final checks were disabled
- AM_RANGE(0xb02000, 0xb02fff) AM_READWRITE( spriteram_lsb_r, spriteram_lsb_w ) AM_SHARE("spriteram")
- AM_RANGE(0xb03000, 0xb037ff) AM_RAM_WRITE( lhzb2a_paletteram_w ) AM_SHARE("paletteram")
- AM_RANGE(0xb04024, 0xb04025) AM_WRITE( video_disable_lsb_w )
- AM_RANGE(0xb04028, 0xb04029) AM_WRITE( irq2_enable_w )
- AM_RANGE(0xb0402a, 0xb0402b) AM_WRITE( irq1_enable_w )
- AM_RANGE(0xb08000, 0xb0bfff) AM_READWRITE( fg_lsb_r, fg_lsb_w ) AM_SHARE("fg_videoram")
- AM_RANGE(0xb0c000, 0xb0ffff) AM_READWRITE( bg_lsb_r, bg_lsb_w ) AM_SHARE("bg_videoram")
+
+ AM_RANGE( 0xb00000, 0xb0ffff ) AM_DEVREADWRITE8("igs017_igs031", igs017_igs031_device, read,write, 0x00ff)
+
AM_RANGE(0xb10000, 0xb10001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff )
AM_RANGE(0xb12000, 0xb12001) AM_WRITE( lhzb2a_input_select_w )
// Inputs dynamically mapped at xx8000, protection at xx4000 (xx = f0 initially). xx written to xxc000
@@ -2527,18 +2135,6 @@ ADDRESS_MAP_END
// slqz2
-WRITE16_MEMBER(igs017_state::slqz2_paletteram_w)
-{
- COMBINE_DATA(&m_generic_paletteram_16[offset]);
-
- int bgr = ((m_generic_paletteram_16[offset/2*2+1] & 0xff) << 8) | (m_generic_paletteram_16[offset/2*2+0] & 0xff);
-
- // bitswap
- bgr = BITSWAP16(bgr, 15,14,9,4,11,10,12,3,7,6,5,8,13,2,1,0);
-
- m_palette->set_pen_color(offset/2, pal5bit(bgr >> 0), pal5bit(bgr >> 5), pal5bit(bgr >> 10));
-}
-
WRITE16_MEMBER(igs017_state::slqz2_magic_w)
{
COMBINE_DATA(&m_igs_magic[offset]);
@@ -2591,14 +2187,10 @@ static ADDRESS_MAP_START( slqz2, AS_PROGRAM, 16, igs017_state )
AM_RANGE(0x100000, 0x103fff) AM_RAM
AM_RANGE(0x602000, 0x602003) AM_WRITE( slqz2_magic_w )
AM_RANGE(0x602002, 0x602003) AM_READ( slqz2_magic_r )
- AM_RANGE(0x902000, 0x902fff) AM_READWRITE( spriteram_lsb_r, spriteram_lsb_w ) AM_SHARE("spriteram")
- AM_RANGE(0x903000, 0x9037ff) AM_RAM_WRITE( slqz2_paletteram_w ) AM_SHARE("paletteram")
- AM_RANGE(0x904020, 0x904027) AM_DEVREAD8("ppi8255", i8255_device, read, 0x00ff)
- AM_RANGE(0x904024, 0x904025) AM_WRITE( video_disable_lsb_w )
- AM_RANGE(0x904028, 0x904029) AM_WRITE( irq2_enable_w )
- AM_RANGE(0x90402a, 0x90402b) AM_WRITE( irq1_enable_w )
- AM_RANGE(0x908000, 0x90bfff) AM_READWRITE( fg_lsb_r, fg_lsb_w ) AM_SHARE("fg_videoram")
- AM_RANGE(0x90c000, 0x90ffff) AM_READWRITE( bg_lsb_r, bg_lsb_w ) AM_SHARE("bg_videoram")
+
+ AM_RANGE(0x900000, 0x90ffff ) AM_DEVREADWRITE8("igs017_igs031", igs017_igs031_device, read,write, 0x00ff)
+
+
AM_RANGE(0x910000, 0x910001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff )
ADDRESS_MAP_END
@@ -3601,55 +3193,6 @@ static INPUT_PORTS_START( spkrform )
INPUT_PORTS_END
-/***************************************************************************
- Graphics Layout
-***************************************************************************/
-
-static const gfx_layout layout_8x8x4 =
-{
- 8,8,
- RGN_FRAC(1,1),
- 4,
- { 8*3,8*2,8*1,8*0 },
- { STEP8(0, 1) },
- { STEP8(0, 8*4) },
- 8*8*4
-};
-
-static const gfx_layout layout_8x8x4_swapped =
-{
- 8,8,
- RGN_FRAC(1,1),
- 4,
- { 8*2,8*3,8*0,8*1 },
- { STEP8(0, 1) },
- { STEP8(0, 8*4) },
- 8*8*4
-};
-
-static const gfx_layout layout_8x8x4_flipped =
-{
- 8,8,
- RGN_FRAC(1,1),
- 4,
- { 8*2,8*3,8*0,8*1 },
- { STEP8(7, -1) },
- { STEP8(0, 8*4) },
- 8*8*4
-};
-
-static GFXDECODE_START( igs017 )
- GFXDECODE_ENTRY( "tilemaps", 0, layout_8x8x4, 0, 16 )
-GFXDECODE_END
-
-static GFXDECODE_START( igs017_swapped )
- GFXDECODE_ENTRY( "tilemaps", 0, layout_8x8x4_swapped, 0, 16 )
-GFXDECODE_END
-
-static GFXDECODE_START( igs017_flipped )
- GFXDECODE_ENTRY( "tilemaps", 0, layout_8x8x4_flipped, 0, 16 )
-GFXDECODE_END
-
/***************************************************************************
Machine Drivers
@@ -3659,18 +3202,16 @@ TIMER_DEVICE_CALLBACK_MEMBER(igs017_state::iqblocka_interrupt)
{
int scanline = param;
- if(scanline == 240 && m_irq_enable)
+ if(scanline == 240 && m_igs017_igs031->get_irq_enable())
m_maincpu->set_input_line(0, HOLD_LINE);
- if(scanline == 0 && m_nmi_enable)
+ if(scanline == 0 && m_igs017_igs031->get_nmi_enable())
m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
}
MACHINE_RESET_MEMBER(igs017_state,iqblocka)
{
- m_nmi_enable = 0;
- m_irq_enable = 0;
m_input_select = 0;
}
@@ -3696,11 +3237,13 @@ static MACHINE_CONFIG_START( iqblocka, igs017_state )
MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017)
MCFG_SCREEN_PALETTE("palette")
- MCFG_GFXDECODE_ADD("gfxdecode", "palette", igs017)
MCFG_PALETTE_ADD("palette", 0x100*2)
MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
+ MCFG_DEVICE_ADD("igs017_igs031", IGS017_IGS031, 0)
+ MCFG_GFX_PALETTE("palette")
+
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_3_579545MHz)
@@ -3722,18 +3265,17 @@ TIMER_DEVICE_CALLBACK_MEMBER(igs017_state::mgcs_interrupt)
{
int scanline = param;
- if(scanline == 240 && m_irq1_enable)
+ if(scanline == 240 && m_igs017_igs031->get_irq_enable())
m_maincpu->set_input_line(1, HOLD_LINE);
- if(scanline == 0 && m_irq2_enable)
+ if(scanline == 0 && m_igs017_igs031->get_nmi_enable())
m_maincpu->set_input_line(2, HOLD_LINE);
}
MACHINE_RESET_MEMBER(igs017_state,mgcs)
{
MACHINE_RESET_CALL_MEMBER( iqblocka );
- m_irq1_enable = 0;
- m_irq2_enable = 0;
+
m_scramble_data = 0;
memset(m_igs_magic, 0, sizeof(m_igs_magic));
}
@@ -3760,10 +3302,12 @@ static MACHINE_CONFIG_START( mgcs, igs017_state )
MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017)
MCFG_SCREEN_PALETTE("palette")
- MCFG_GFXDECODE_ADD("gfxdecode", "palette", igs017_flipped)
MCFG_PALETTE_ADD("palette", 0x100*2)
MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
+ MCFG_DEVICE_ADD("igs017_igs031", IGS017_IGS031, 0)
+ MCFG_GFX_PALETTE("palette")
+ MCFG_PALETTE_SCRAMBLE_CB( igs017_state, mgcs_palette_bitswap )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -3796,10 +3340,14 @@ static MACHINE_CONFIG_START( lhzb2, igs017_state )
MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017)
MCFG_SCREEN_PALETTE("palette")
- MCFG_GFXDECODE_ADD("gfxdecode", "palette", igs017_swapped)
+
MCFG_PALETTE_ADD("palette", 0x100*2)
MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
+ MCFG_DEVICE_ADD("igs017_igs031", IGS017_IGS031, 0)
+ MCFG_GFX_PALETTE("palette")
+ MCFG_PALETTE_SCRAMBLE_CB( igs017_state, lhzb2a_palette_bitswap )
+
// protection
MCFG_DEVICE_ADD("igs025", IGS025, 0)
MCFG_IGS025_SET_EXTERNAL_EXECUTE( igs017_state, igs025_to_igs022_callback )
@@ -3841,7 +3389,11 @@ static MACHINE_CONFIG_START( lhzb2a, igs017_state )
MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017)
MCFG_SCREEN_PALETTE("palette")
- MCFG_GFXDECODE_ADD("gfxdecode", "palette", igs017_swapped)
+ MCFG_DEVICE_ADD("igs017_igs031", IGS017_IGS031, 0)
+ MCFG_GFX_PALETTE("palette")
+ MCFG_PALETTE_SCRAMBLE_CB( igs017_state, lhzb2a_palette_bitswap )
+
+
MCFG_PALETTE_ADD("palette", 0x100*2)
MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
@@ -3877,10 +3429,13 @@ static MACHINE_CONFIG_START( slqz2, igs017_state )
MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017)
MCFG_SCREEN_PALETTE("palette")
- MCFG_GFXDECODE_ADD("gfxdecode", "palette", igs017)
MCFG_PALETTE_ADD("palette", 0x100*2)
MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
+ MCFG_DEVICE_ADD("igs017_igs031", IGS017_IGS031, 0)
+ MCFG_GFX_PALETTE("palette")
+ MCFG_PALETTE_SCRAMBLE_CB( igs017_state, slqz2_palette_bitswap )
+
// protection
MCFG_DEVICE_ADD("igs025", IGS025, 0)
MCFG_IGS025_SET_EXTERNAL_EXECUTE( igs017_state, igs025_to_igs022_callback )
@@ -3917,7 +3472,10 @@ static MACHINE_CONFIG_START( sdmg2, igs017_state )
MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017)
MCFG_SCREEN_PALETTE("palette")
- MCFG_GFXDECODE_ADD("gfxdecode", "palette", igs017)
+ MCFG_DEVICE_ADD("igs017_igs031", IGS017_IGS031, 0)
+ MCFG_GFX_PALETTE("palette")
+
+
MCFG_PALETTE_ADD("palette", 0x100*2)
MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
@@ -3935,10 +3493,10 @@ TIMER_DEVICE_CALLBACK_MEMBER(igs017_state::mgdh_interrupt)
{
int scanline = param;
- if(scanline == 240 && m_irq1_enable)
+ if(scanline == 240 && m_igs017_igs031->get_irq_enable())
m_maincpu->set_input_line(1, HOLD_LINE);
- if(scanline == 0 && m_irq2_enable)
+ if(scanline == 0 && m_igs017_igs031->get_nmi_enable())
m_maincpu->set_input_line(3, HOLD_LINE); // lev 3 instead of 2
}
@@ -3961,7 +3519,10 @@ static MACHINE_CONFIG_START( mgdha, igs017_state )
MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017)
MCFG_SCREEN_PALETTE("palette")
- MCFG_GFXDECODE_ADD("gfxdecode", "palette", igs017_swapped)
+ MCFG_DEVICE_ADD("igs017_igs031", IGS017_IGS031, 0)
+ MCFG_GFX_PALETTE("palette")
+
+
MCFG_PALETTE_ADD("palette", 0x100*2)
MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
@@ -3997,7 +3558,11 @@ static MACHINE_CONFIG_START( tjsb, igs017_state )
MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017)
MCFG_SCREEN_PALETTE("palette")
- MCFG_GFXDECODE_ADD("gfxdecode", "palette", igs017)
+ MCFG_DEVICE_ADD("igs017_igs031", IGS017_IGS031, 0)
+ MCFG_GFX_PALETTE("palette")
+ MCFG_PALETTE_SCRAMBLE_CB( igs017_state, tjsb_palette_bitswap )
+
+
MCFG_PALETTE_ADD("palette", 0x100*2)
MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
@@ -4036,10 +3601,12 @@ static MACHINE_CONFIG_START( spkrform, igs017_state )
MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017)
MCFG_SCREEN_PALETTE("palette")
- MCFG_GFXDECODE_ADD("gfxdecode", "palette", igs017)
MCFG_PALETTE_ADD("palette", 0x100*2)
MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
+ MCFG_DEVICE_ADD("igs017_igs031", IGS017_IGS031, 0)
+ MCFG_GFX_PALETTE("palette")
+
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -4360,7 +3927,7 @@ ROM_START( lhzb2 )
ROM_LOAD16_WORD_SWAP( "m1101.u6", 0x000000, 0x400000, CRC(0114e9d1) SHA1(5b16170d3cd8b8e1662c949b7234fbdd2ca927f7) ) // FIXED BITS (0xxxxxxxxxxxxxxx)
ROM_REGION( 0x80000, "tilemaps", 0 ) // adddress scrambling
- ROM_LOAD( "m1103.u8", 0x00000, 0x80000, CRC(4d3776b4) SHA1(fa9b311b1a6ad56e136b66d090bc62ed5003b2f2) )
+ ROM_LOAD16_WORD_SWAP( "m1103.u8", 0x00000, 0x80000, CRC(4d3776b4) SHA1(fa9b311b1a6ad56e136b66d090bc62ed5003b2f2) )
ROM_REGION( 0x80000, "oki", 0 )
ROM_LOAD( "s1102.u23", 0x00000, 0x80000, CRC(51ffe245) SHA1(849011b186096add657ab20d49d260ec23363ef3) )
@@ -4376,7 +3943,7 @@ ROM_START( lhzb2a )
ROM_LOAD16_WORD_SWAP( "m1101.u6", 0x000000, 0x400000, CRC(0114e9d1) SHA1(5b16170d3cd8b8e1662c949b7234fbdd2ca927f7) ) // FIXED BITS (0xxxxxxxxxxxxxxx)
ROM_REGION( 0x80000, "tilemaps", 0 ) // adddress scrambling
- ROM_LOAD( "m1103.u8", 0x00000, 0x80000, CRC(4d3776b4) SHA1(fa9b311b1a6ad56e136b66d090bc62ed5003b2f2) )
+ ROM_LOAD16_WORD_SWAP( "m1103.u8", 0x00000, 0x80000, CRC(4d3776b4) SHA1(fa9b311b1a6ad56e136b66d090bc62ed5003b2f2) )
ROM_REGION( 0x80000, "oki", 0 )
ROM_LOAD( "s1102.u23", 0x00000, 0x80000, CRC(51ffe245) SHA1(849011b186096add657ab20d49d260ec23363ef3) )
@@ -4489,7 +4056,7 @@ ROM_START( mgdha )
ROM_LOAD( "m1001.u4", 0x000000, 0x400000, CRC(0cfb60d6) SHA1(e099aca730e7fd91a72915c27e569ad3d21f0d8f) ) // FIXED BITS (xxxxxxx0xxxxxxxx)
ROM_REGION( 0x20000, "tilemaps", 0 )
- ROM_LOAD( "text.u6", 0x00000, 0x20000, CRC(db50f8fc) SHA1(e2ce4a42f5bdc0b4b7988ad9e8d14661f17c3d51) )
+ ROM_LOAD16_WORD_SWAP( "text.u6", 0x00000, 0x20000, CRC(db50f8fc) SHA1(e2ce4a42f5bdc0b4b7988ad9e8d14661f17c3d51) )
ROM_REGION( 0x80000, "oki", 0 )
ROM_LOAD( "s1002.u22", 0x00000, 0x80000, CRC(ac6b55f2) SHA1(7ff91fd1107272ad6bce071dc9ae2f374ebf5e3e) )
@@ -4665,17 +4232,17 @@ ROM_START( spkrform )
ROM_END
-GAME( 1996, iqblocka, iqblock, iqblocka, iqblocka, igs017_state, iqblocka, ROT0, "IGS", "Shu Zi Le Yuan (V127M)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION )
-GAME( 1996, iqblockf, iqblock, iqblocka, iqblocka, igs017_state, iqblockf, ROT0, "IGS", "Shu Zi Le Yuan (V113FR)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION )
+GAME( 1996, iqblocka, iqblock, iqblocka, iqblocka, igs017_state, iqblocka, ROT0, "IGS", "Shu Zi Le Yuan (V127M)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION )
+GAME( 1996, iqblockf, iqblock, iqblocka, iqblocka, igs017_state, iqblockf, ROT0, "IGS", "Shu Zi Le Yuan (V113FR)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION )
GAME( 1997, mgdh, 0, mgdha, mgdh, igs017_state, mgdh, ROT0, "IGS", "Mahjong Man Guan Da Heng (Taiwan, V125T1)", 0 )
GAME( 1997, mgdha, mgdh, mgdha, mgdh , igs017_state, mgdha, ROT0, "IGS", "Mahjong Man Guan Da Heng (Taiwan, V123T1)", 0 )
GAME( 1997, sdmg2, 0, sdmg2, sdmg2, igs017_state, sdmg2, ROT0, "IGS", "Mahjong Super Da Man Guan II (China, V754C)", 0 )
-GAME( 1997, tjsb, 0, tjsb, tjsb, igs017_state, tjsb, ROT0, "IGS", "Mahjong Tian Jiang Shen Bing (V137C)", GAME_UNEMULATED_PROTECTION )
-GAME( 1998, mgcs, 0, mgcs, mgcs, igs017_state, mgcs, ROT0, "IGS", "Mahjong Man Guan Cai Shen (V103CS)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_SOUND )
-GAME( 1998, lhzb2, 0, lhzb2, lhzb2, igs017_state, lhzb2, ROT0, "IGS", "Mahjong Long Hu Zheng Ba 2 (set 1)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION )
+GAME( 1997, tjsb, 0, tjsb, tjsb, igs017_state, tjsb, ROT0, "IGS", "Mahjong Tian Jiang Shen Bing (V137C)", MACHINE_UNEMULATED_PROTECTION )
+GAME( 1998, mgcs, 0, mgcs, mgcs, igs017_state, mgcs, ROT0, "IGS", "Mahjong Man Guan Cai Shen (V103CS)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, lhzb2, 0, lhzb2, lhzb2, igs017_state, lhzb2, ROT0, "IGS", "Mahjong Long Hu Zheng Ba 2 (set 1)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION )
GAME( 1998, lhzb2a, lhzb2, lhzb2a, lhzb2a, igs017_state, lhzb2a, ROT0, "IGS", "Mahjong Long Hu Zheng Ba 2 (VS221M)", 0 )
-GAME( 1998, slqz2, 0, slqz2, slqz2, igs017_state, slqz2, ROT0, "IGS", "Mahjong Shuang Long Qiang Zhu 2 (VS203J)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION )
-GAME( 1999?, tarzan, 0, iqblocka, iqblocka, igs017_state, tarzan, ROT0, "IGS", "Tarzan (V109C)", GAME_NOT_WORKING )
-GAME( 1999?, tarzana, tarzan, iqblocka, iqblocka, igs017_state, tarzana, ROT0, "IGS", "Tarzan (V107)", GAME_NOT_WORKING )
-GAME( 2000?, starzan, 0, starzan, iqblocka, igs017_state, starzan, ROT0, "IGS / G.F. Gioca", "Super Tarzan (Italy, V100I)", GAME_NOT_WORKING )
-GAME( ????, spkrform, spk116it, spkrform, spkrform, igs017_state, spkrform, ROT0, "IGS", "Super Poker (v100xD03) / Formosa", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION )
+GAME( 1998, slqz2, 0, slqz2, slqz2, igs017_state, slqz2, ROT0, "IGS", "Mahjong Shuang Long Qiang Zhu 2 (VS203J)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION )
+GAME( 1999?, tarzan, 0, iqblocka, iqblocka, igs017_state, tarzan, ROT0, "IGS", "Tarzan (V109C)", MACHINE_NOT_WORKING )
+GAME( 1999?, tarzana, tarzan, iqblocka, iqblocka, igs017_state, tarzana, ROT0, "IGS", "Tarzan (V107)", MACHINE_NOT_WORKING )
+GAME( 2000?, starzan, 0, starzan, iqblocka, igs017_state, starzan, ROT0, "IGS / G.F. Gioca", "Super Tarzan (Italy, V100I)", MACHINE_NOT_WORKING )
+GAME( ????, spkrform, spk116it, spkrform, spkrform, igs017_state, spkrform, ROT0, "IGS", "Super Poker (v100xD03) / Formosa", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION )
diff --git a/src/mame/drivers/igs_fear.c b/src/mame/drivers/igs_fear.c
new file mode 100644
index 00000000000..19a3976954c
--- /dev/null
+++ b/src/mame/drivers/igs_fear.c
@@ -0,0 +1,169 @@
+// license:BSD-3-Clause
+// copyright-holders:David Haywood
+
+#include "emu.h"
+#include "cpu/arm7/arm7.h"
+#include "cpu/arm7/arm7core.h"
+#include "machine/nvram.h"
+#include "machine/pgmcrypt.h"
+#include "sound/ics2115.h"
+
+
+class igs_fear_state : public driver_device
+{
+public:
+ igs_fear_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
+ m_gfxdecode(*this, "gfxdecode"),
+ m_palette(*this, "palette") { }
+
+
+ DECLARE_WRITE_LINE_MEMBER(sound_irq);
+ DECLARE_DRIVER_INIT(igs_fear);
+ //virtual void video_start();
+ virtual void video_start_igs_fear();
+ UINT32 screen_update_igs_fear(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void pgm_create_dummy_internal_arm_region();
+ required_device<cpu_device> m_maincpu;
+ optional_device<gfxdecode_device> m_gfxdecode;
+ required_device<palette_device> m_palette;
+};
+
+
+void igs_fear_state::video_start_igs_fear()
+{
+}
+
+
+UINT32 igs_fear_state::screen_update_igs_fear(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+{
+ return 0;
+}
+
+static ADDRESS_MAP_START( igs_igs_fear_map, AS_PROGRAM, 32, igs_fear_state )
+ AM_RANGE(0x00000000, 0x00003fff) AM_ROM /* Internal ROM */
+ AM_RANGE(0x08000000, 0x0807ffff) AM_ROM AM_REGION("user1", 0)/* Game ROM */
+ADDRESS_MAP_END
+
+// debugging only, not tile based
+static const gfx_layout fearlayout =
+{
+ 16,16,
+ RGN_FRAC(1,1),
+ 7, /* 7 bits per pixel - bit 0 unused in the roms we have*/
+ { 1,2,3,4,5,6,7 },
+ { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8},
+ { 0*128,1*128,2*128,3*128,4*128,5*128,6*128,7*128, 8*128,9*128,10*128,11*128,12*128,13*128,14*128,15*128 },
+ 128*16
+};
+
+
+static GFXDECODE_START( igs_fear )
+ GFXDECODE_ENTRY( "gfx1", 0, fearlayout, 0, 16 )
+ GFXDECODE_ENTRY( "gfx2", 0, fearlayout, 0, 16 )
+ GFXDECODE_ENTRY( "gfx3", 0, fearlayout, 0, 16 )
+GFXDECODE_END
+
+static INPUT_PORTS_START( fear )
+INPUT_PORTS_END
+
+WRITE_LINE_MEMBER(igs_fear_state::sound_irq)
+{
+}
+
+
+static MACHINE_CONFIG_START( igs_fear, igs_fear_state )
+ MCFG_CPU_ADD("maincpu",ARM7, 50000000/2)
+ MCFG_CPU_PROGRAM_MAP(igs_igs_fear_map)
+
+// MCFG_CPU_VBLANK_INT_DRIVER("screen", igs_fear_state, igs_majhong_interrupt)
+
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
+ MCFG_SCREEN_SIZE(512, 256)
+ MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
+
+ MCFG_VIDEO_START_OVERRIDE(igs_fear_state, igs_fear)
+ MCFG_SCREEN_UPDATE_DRIVER(igs_fear_state, screen_update_igs_fear)
+ MCFG_SCREEN_PALETTE("palette")
+
+ MCFG_PALETTE_ADD("palette", 0x200)
+
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", igs_fear)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_ICS2115_ADD("ics", 0)
+ MCFG_ICS2115_IRQ_CB(WRITELINE(igs_fear_state, sound_irq))
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 5.0)
+
+MACHINE_CONFIG_END
+
+
+ROM_START( fearless )
+ ROM_REGION( 0x04000, "maincpu", 0 )
+ /* Internal rom of IGS027A ARM based MCU */
+ ROM_LOAD( "fearless_igs027a", 0x00000, 0x4000, NO_DUMP ) // sticker marked 'F1'
+
+ ROM_REGION( 0x80000, "user1", 0 ) // external ARM data / prg
+ ROM_LOAD( "fearlessp_v-101us.u37", 0x000000, 0x80000, CRC(2522873c) SHA1(8db709877311b6d2796353fc9a44a820937e35c2) )
+
+ ROM_REGION( 0x10000, "plcc", 0 )
+ ROM_LOAD( "fearlessp_07.u33", 0x000000, 0x10000, CRC(7dae4900) SHA1(bbf7ba7c9e95ff2ffeb1dc0fc7ccedd4da274d01) ) // MX10EXAQC (80C51 XA based MCU) marked 07, not read protected?
+
+ // these all report FIXED BITS (0xxxxxxx), hopefully just 7-bit colour data, non-tile based sprites
+ ROM_REGION( 0x1000000, "gfx3", 0 )
+ ROM_LOAD16_BYTE( "fearlessp_u6_cg-0h.u6", 0x000001, 0x800000, CRC(02d8bbbf) SHA1(7cf36c909a5d76096a725ffe0a697bcbafbcf985) )
+ ROM_LOAD16_BYTE( "fearlessp_u7_cg-0l.u7", 0x000000, 0x800000, CRC(ca254db4) SHA1(f5670c2ff0720c84c9aff3cea95b118b6044e469) )
+ ROM_REGION( 0x1000000, "gfx2", 0 )
+ ROM_LOAD16_BYTE( "fearlessp_u13_cg-1h.u13", 0x000001, 0x800000, CRC(c9d2a56d) SHA1(91d1665623bca743f68f15a27bbf433e2ffc0808) )
+ ROM_LOAD16_BYTE( "fearlessp_u14_cg-1l.u14", 0x000000, 0x800000, CRC(7fe312d2) SHA1(c0add22d9fc4c0e32a03922cb709b947bfff429d) )
+ ROM_REGION( 0x1000000, "gfx1", 0 )
+ ROM_LOAD16_BYTE( "fearlessp_u17_cg-2h.u17", 0x000001, 0x800000, CRC(756fe1f2) SHA1(48ee81c5fa4808406b57b2521b836db3ff5a7fa9) )
+ ROM_LOAD16_BYTE( "fearlessp_u18_cg-2l.u18", 0x000000, 0x800000, CRC(07623d66) SHA1(041d5e44917bc16caa720ea98bdc0a4f5fb4b8e0) )
+
+
+ ROM_REGION( 0x800000, "ics", 0 )
+ ROM_LOAD( "fearlessp_u25_music0.u25", 0x000000, 0x400000, CRC(a015b9b1) SHA1(7b129c59acd523dec82e58a75d873bbc5341fb28) )
+ ROM_LOAD( "fearlessp_u26_music1.u26", 0x400000, 0x400000, CRC(9d5f18da) SHA1(42e5224c1af0898cc2e02b2e051ea8b629d5fb6d) )
+ROM_END
+
+
+
+void igs_fear_state::pgm_create_dummy_internal_arm_region()
+{
+ UINT16 *temp16 = (UINT16 *)memregion("maincpu")->base();
+
+ // fill with RX 14
+ int i;
+ for (i=0;i<0x4000/2;i+=2)
+ {
+ temp16[i] = 0xff1e;
+ temp16[i+1] = 0xe12f;
+
+ }
+
+ // jump straight to external area
+ temp16[(0x0000)/2] = 0xd088;
+ temp16[(0x0002)/2] = 0xe59f;
+ temp16[(0x0004)/2] = 0x0680;
+ temp16[(0x0006)/2] = 0xe3a0;
+ temp16[(0x0008)/2] = 0xff10;
+ temp16[(0x000a)/2] = 0xe12f;
+ temp16[(0x0090)/2] = 0x0400;
+ temp16[(0x0092)/2] = 0x1000;
+}
+
+
+
+
+DRIVER_INIT_MEMBER(igs_fear_state,igs_fear)
+{
+ fearless_decrypt(machine());
+ //sdwx_gfx_decrypt(machine());
+ pgm_create_dummy_internal_arm_region();
+}
+
+GAME( 2006, fearless, 0, igs_fear, fear, igs_fear_state, igs_fear, ROT0, "IGS", "Fearless Pinocchio (V101US)", MACHINE_IS_SKELETON )
diff --git a/src/mame/drivers/igs_m027.c b/src/mame/drivers/igs_m027.c
index 350e6699b5b..306aabac8bc 100644
--- a/src/mame/drivers/igs_m027.c
+++ b/src/mame/drivers/igs_m027.c
@@ -26,8 +26,7 @@
#include "cpu/arm7/arm7core.h"
#include "machine/nvram.h"
#include "machine/pgmcrypt.h"
-#include "sound/ics2115.h"
-
+#include "video/igs017_igs031.h"
class igs_m027_state : public driver_device
{
@@ -35,26 +34,15 @@ public:
igs_m027_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_igs_mainram(*this, "igs_mainram"),
- m_igs_cg_videoram(*this, "igs_cg_videoram"),
- m_igs_tx_videoram(*this, "igs_tx_videoram"),
- m_igs_bg_videoram(*this, "igs_bg_videoram"),
m_maincpu(*this, "maincpu"),
- m_gfxdecode(*this, "gfxdecode"),
- m_palette(*this, "palette") { }
+ m_igs017_igs031(*this, "igs017_igs031")
+ { }
optional_shared_ptr<UINT32> m_igs_mainram;
- optional_shared_ptr<UINT32> m_igs_cg_videoram;
- optional_shared_ptr<UINT32> m_igs_tx_videoram;
- optional_shared_ptr<UINT32> m_igs_bg_videoram;
-
- tilemap_t *m_igs_tx_tilemap;
- tilemap_t *m_igs_bg_tilemap;
-
- DECLARE_WRITE32_MEMBER(igs_cg_videoram_w);
- DECLARE_WRITE32_MEMBER(igs_tx_videoram_w);
- DECLARE_WRITE32_MEMBER(igs_bg_videoram_w);
- DECLARE_WRITE32_MEMBER(igs_palette32_w);
- DECLARE_WRITE_LINE_MEMBER(sound_irq);
+ required_device<cpu_device> m_maincpu;
+ required_device<igs017_igs031_device> m_igs017_igs031;
+
+
DECLARE_DRIVER_INIT(sdwx);
DECLARE_DRIVER_INIT(chessc2);
DECLARE_DRIVER_INIT(lhzb4);
@@ -65,19 +53,17 @@ public:
DECLARE_DRIVER_INIT(hauntedh);
DECLARE_DRIVER_INIT(zhongguo);
DECLARE_DRIVER_INIT(klxyj);
- DECLARE_DRIVER_INIT(fearless);
- TILE_GET_INFO_MEMBER(get_tx_tilemap_tile_info);
- TILE_GET_INFO_MEMBER(get_bg_tilemap_tile_info);
+ DECLARE_DRIVER_INIT(slqz3);
+ DECLARE_DRIVER_INIT(fruitpar);
+ DECLARE_DRIVER_INIT(amazonia);
+ DECLARE_DRIVER_INIT(amazoni2);
+
virtual void video_start();
- virtual void video_start_fearless();
UINT32 screen_update_igs_majhong(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- UINT32 screen_update_fearless(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(igs_majhong_interrupt);
+
void sdwx_gfx_decrypt();
void pgm_create_dummy_internal_arm_region();
- required_device<cpu_device> m_maincpu;
- optional_device<gfxdecode_device> m_gfxdecode;
- required_device<palette_device> m_palette;
};
@@ -91,21 +77,18 @@ public:
0x38004000, 0x38005FFF TX Video RAM????????1E00??????512x240??????
0x38006000, 0x38007FFF BG Video RAM????????1E00??????512x240??????
-
***************************************************************************/
/* CGLayer */
+#if 0
WRITE32_MEMBER(igs_m027_state::igs_cg_videoram_w)
{
COMBINE_DATA(&m_igs_cg_videoram[offset]);
//if(data!=0)
logerror("PC(%08X) CG @%x = %x!\n",space.device().safe_pc(),offset ,m_igs_cg_videoram[offset]);
-
-
-
/*
ROM:08020520 DCW 0x3E ddd1 y
ROM:08020522 DCW 0x29 ddd2 x
@@ -129,96 +112,27 @@ WRITE32_MEMBER(igs_m027_state::igs_cg_videoram_w)
yyyy-yynn
nnnn-nnnn
-
-
-
*/
-
-
-
-}
-
-
-/* TX Layer */
-WRITE32_MEMBER(igs_m027_state::igs_tx_videoram_w)
-{
- COMBINE_DATA(&m_igs_tx_videoram[offset]);
- m_igs_tx_tilemap->mark_tile_dirty(offset);
- //if(data!=0)
- //logerror( "TX VIDEO RAM OFFSET %x ,data %x!\n",offset ,m_igs_tx_videoram[offset]);
-}
-
-TILE_GET_INFO_MEMBER(igs_m027_state::get_tx_tilemap_tile_info)
-{
- //ppppppppNNNNNNNN
- int tileno,colour;
- tileno = m_igs_tx_videoram[tile_index] & 0xffff;
- colour = (m_igs_tx_videoram[tile_index]>>0x10) & 0xffff;
-
- SET_TILE_INFO_MEMBER(0,tileno,colour,0);
-}
-
-/* BG Layer */
-WRITE32_MEMBER(igs_m027_state::igs_bg_videoram_w)
-{
- COMBINE_DATA(&m_igs_bg_videoram[offset]);
- m_igs_bg_tilemap->mark_tile_dirty(offset);
- //if(data!=0)
- logerror("BG VIDEO RAM OFFSET %x ,data %x!\n",offset ,m_igs_bg_videoram[offset]);
-}
-
-TILE_GET_INFO_MEMBER(igs_m027_state::get_bg_tilemap_tile_info)
-{
- //ppppppppNNNNNNNN
- int tileno,colour;
- tileno = m_igs_bg_videoram[tile_index] & 0xffff;
- colour = (m_igs_bg_videoram[tile_index]>>0x10) & 0xffff;
-
- SET_TILE_INFO_MEMBER(0,tileno,colour,0);
}
+#endif
void igs_m027_state::video_start()
{
- m_igs_tx_tilemap= &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(igs_m027_state::get_tx_tilemap_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,64,32);
- m_igs_tx_tilemap->set_transparent_pen(15);
- m_igs_bg_tilemap= &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(igs_m027_state::get_bg_tilemap_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,64,32);
- //m_igs_bg_tilemap= &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(igs_m027_state::get_bg_tilemap_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,64,32);
- //m_igs_bg_tilemap->set_transparent_pen(15);
- logerror("Video START OK!\n");
+ m_igs017_igs031->video_start();
}
-void igs_m027_state::video_start_fearless()
-{
-}
+
UINT32 igs_m027_state::screen_update_igs_majhong(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- //??????????
- bitmap.fill(m_palette->black_pen(), cliprect);
-
- //??????
- m_igs_bg_tilemap->draw(screen, bitmap, cliprect, 0,0);
-
- //CG??????
-
- //??????
- m_igs_tx_tilemap->draw(screen, bitmap, cliprect, 0,0);
- //fprintf(stdout,"Video UPDATE OK!\n");
+ m_igs017_igs031->screen_update_igs017(screen, bitmap, cliprect);
return 0;
-}
-UINT32 igs_m027_state::screen_update_fearless(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
-{
- return 0;
}
-/***************************************************************************
-
- Blitter
-***************************************************************************/
/***************************************************************************
Memory Maps
@@ -231,6 +145,10 @@ static ADDRESS_MAP_START( igs_majhong_map, AS_PROGRAM, 32, igs_m027_state )
AM_RANGE(0x10000000, 0x100003ff) AM_RAM AM_SHARE("igs_mainram")// main ram for asic?
AM_RANGE(0x18000000, 0x18007fff) AM_RAM
+
+ AM_RANGE(0x38000000, 0x38007FFF) AM_DEVREADWRITE8("igs017_igs031", igs017_igs031_device, read,write, 0xffffffff) // guess based on below
+
+#if 0
AM_RANGE(0x38001000, 0x380017ff) AM_RAM_WRITE(igs_cg_videoram_w) AM_SHARE("igs_cg_videoram") //0x200 * 1 CG PALETTE?
AM_RANGE(0x38001800, 0x38001fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") //0x200 * 1
@@ -239,16 +157,15 @@ static ADDRESS_MAP_START( igs_majhong_map, AS_PROGRAM, 32, igs_m027_state )
AM_RANGE(0x38002010, 0x38002017) AM_RAM //??????????????
- AM_RANGE(0x38009000, 0x38009003) AM_RAM //??????????????
+#endif
+
+ AM_RANGE(0x38009000, 0x38009003) AM_RAM //?????????????? oki 6295
+
AM_RANGE(0x70000200, 0x70000203) AM_RAM //??????????????
AM_RANGE(0x50000000, 0x500003ff) AM_WRITENOP // uploads xor table to external rom here
AM_RANGE(0xf0000000, 0xF000000f) AM_WRITENOP // magic registers
ADDRESS_MAP_END
-static ADDRESS_MAP_START( igs_fearless_map, AS_PROGRAM, 32, igs_m027_state )
- AM_RANGE(0x00000000, 0x00003fff) AM_ROM /* Internal ROM */
- AM_RANGE(0x08000000, 0x0807ffff) AM_ROM AM_REGION("user1", 0)/* Game ROM */
-ADDRESS_MAP_END
/***************************************************************************
@@ -290,7 +207,7 @@ void igs_m027_state::sdwx_gfx_decrypt()
{
int i;
unsigned rom_size = 0x80000;
- UINT8 *src = (UINT8 *) (memregion("gfx1")->base());
+ UINT8 *src = (UINT8 *) (memregion("tilemaps")->base());
dynamic_buffer result_data(rom_size);
for (i=0; i<rom_size; i++)
@@ -326,6 +243,79 @@ void igs_m027_state::sdwx_gfx_decrypt()
static INPUT_PORTS_START( sdwx )
INPUT_PORTS_END
+static INPUT_PORTS_START( amazonia )
+ PORT_START("DSW1")
+// Credits proportion
+ PORT_DIPNAME( 0x03, 0x03, "Proporcao Credito" ) PORT_DIPLOCATION("SW1:1,2")
+ PORT_DIPSETTING( 0x00, "1" )
+ PORT_DIPSETTING( 0x02, "2" )
+ PORT_DIPSETTING( 0x01, "4" )
+ PORT_DIPSETTING( 0x03, "10" )
+// (Oponent's ?) credits proportion
+ PORT_DIPNAME( 0x0c, 0x0c, "Proporcao Credito Ele" ) PORT_DIPLOCATION("SW1:3,4")
+ PORT_DIPSETTING( 0x00, "1" )
+ PORT_DIPSETTING( 0x08, "2" )
+ PORT_DIPSETTING( 0x04, "4" )
+ PORT_DIPSETTING( 0x0c, "10" )
+// Game Percentage
+ PORT_DIPNAME( 0x70, 0x70, "Porcentagem Jogo" ) PORT_DIPLOCATION("SW1:5,6,7")
+ PORT_DIPSETTING( 0x00, "55%" )
+ PORT_DIPSETTING( 0x40, "60%" )
+ PORT_DIPSETTING( 0x20, "65%" )
+ PORT_DIPSETTING( 0x60, "70%" )
+ PORT_DIPSETTING( 0x10, "75%" )
+ PORT_DIPSETTING( 0x50, "80%" )
+ PORT_DIPSETTING( 0x30, "85%" )
+ PORT_DIPSETTING( 0x70, "90%" )
+// Payment System
+ PORT_DIPNAME( 0x80, 0x80, "Sistema de Pagamento" ) PORT_DIPLOCATION("SW1:8")
+ PORT_DIPSETTING( 0x00, "Normal" )
+ PORT_DIPSETTING( 0x80, "Auto" )
+
+
+ PORT_START("DSW2")
+// Demo Song
+ PORT_DIPNAME( 0x01, 0x01, "Demonstracao Musica" ) PORT_DIPLOCATION("SW2:1")
+ PORT_DIPSETTING( 0x00, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( Yes ) )
+// End of Game
+ PORT_DIPNAME( 0x02, 0x02, "Fim do Sistema" ) PORT_DIPLOCATION("SW2:2")
+ PORT_DIPSETTING( 0x00, DEF_STR( No ) )
+ PORT_DIPSETTING( 0x02, "10000" )
+// Background color
+ PORT_DIPNAME( 0x04, 0x04, "Cor do Fundo" ) PORT_DIPLOCATION("SW2:3")
+ PORT_DIPSETTING( 0x00, "Preto" ) // Black
+ PORT_DIPSETTING( 0x04, "Cor" ) // Coloured
+// Double Percentage
+ PORT_DIPNAME( 0x18, 0x18, "Porcentagem Dobrar" ) PORT_DIPLOCATION("SW2:4,5")
+ PORT_DIPSETTING( 0x00, "70%" )
+ PORT_DIPSETTING( 0x08, "90%" )
+ PORT_DIPSETTING( 0x10, "80%" )
+ PORT_DIPSETTING( 0x18, "90%" )
+// Language
+ PORT_DIPNAME( 0x20, 0x20, "Idioma" ) PORT_DIPLOCATION("SW2:6")
+ PORT_DIPSETTING( 0x00, "Espanhol" ) // Spanish
+ PORT_DIPSETTING( 0x20, "Portugues" ) // Portuguese
+// Credit Mode
+ PORT_DIPNAME( 0x40, 0x40, "Credit Mode" ) PORT_DIPLOCATION("SW2:7")
+ PORT_DIPSETTING( 0x00, "COIN" )
+ PORT_DIPSETTING( 0x40, "KEYIN" )
+// Panel Mode
+ PORT_DIPNAME( 0x80, 0x80, "Panel Mode" ) PORT_DIPLOCATION("SW2:8")
+ PORT_DIPSETTING( 0x00, "36+10" )
+ PORT_DIPSETTING( 0x80, "28" )
+
+ PORT_START("DSW3")
+ PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW3:1" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW3:2" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SW3:3" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW3:4" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW3:5" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW3:6" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW3:7" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW3:8" )
+INPUT_PORTS_END
+
/***************************************************************************
@@ -334,49 +324,6 @@ INPUT_PORTS_END
***************************************************************************/
-// for debugging
-#if 0
-static const gfx_layout charlayout =
-{
- 8,8, /* 8 x 8 chars */
- RGN_FRAC(1,1),
- 4, /* 4 bits per pixel */
- { 0, 1, 2, 3 }, /* planes are packed in a nibble */
- { 33*4, 32*4, 49*4, 48*4, 1*4, 0*4, 17*4, 16*4 },
- { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
- 32*8 /* 32 bytes per char */
-};
-#endif
-
-static const gfx_layout gfxlayout_8x8x4 =
-{
- 8,8,
- RGN_FRAC(1,1),
- 4,
- //{ STEP4(0,8) },
- { 24,8,16,0 },
- { STEP8(7,-1) },
- { STEP8(0,4*8) },
- 8*8*4
-};
-
-#if 0
-static const gfx_layout gfxlayout_16x16x16 =
-{
- 16,16,
- RGN_FRAC(1,1),
- 16,
- { STEP16(0,0) }, // >8planes not supported
- { STEP16(15,-1) },
- { STEP16(0,16*1) },
- 16*16*16
-};
-#endif
-
-static GFXDECODE_START( igs_m027 )
- GFXDECODE_ENTRY( "gfx1", 0, gfxlayout_8x8x4, 0, 16 )
- // GFXDECODE_ENTRY( "gfx2", 0, gfxlayout_16x16x16, 0, 16 )
-GFXDECODE_END
INTERRUPT_GEN_MEMBER(igs_m027_state::igs_majhong_interrupt)
@@ -393,8 +340,6 @@ static MACHINE_CONFIG_START( igs_majhong, igs_m027_state )
MCFG_CPU_VBLANK_INT_DRIVER("screen", igs_m027_state, igs_majhong_interrupt)
//MCFG_NVRAM_ADD_0FILL("nvram")
- MCFG_GFXDECODE_ADD("gfxdecode", "palette", igs_m027)
-
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -405,131 +350,257 @@ static MACHINE_CONFIG_START( igs_majhong, igs_m027_state )
MCFG_SCREEN_PALETTE("palette")
MCFG_PALETTE_ADD("palette", 0x200)
- MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB)
+// MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB)
- /* sound hardware */
+ MCFG_DEVICE_ADD("igs017_igs031", IGS017_IGS031, 0)
+ MCFG_GFX_PALETTE("palette")
+ MCFG_REVERSE_TEXT_BITS
+
+ // 82C55? (accessed through igs017/igs031 area like igs017.c?)
+ /* sound hardware */
+ // OK6295
MACHINE_CONFIG_END
-WRITE_LINE_MEMBER(igs_m027_state::sound_irq)
-{
-}
-static MACHINE_CONFIG_START( fearless, igs_m027_state )
- MCFG_CPU_ADD("maincpu",ARM7, 50000000/2)
- MCFG_CPU_PROGRAM_MAP(igs_fearless_map)
+
+static MACHINE_CONFIG_START( amazonia, igs_m027_state )
+ MCFG_CPU_ADD("maincpu",ARM7, 20000000)
+
+ MCFG_CPU_PROGRAM_MAP(igs_majhong_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", igs_m027_state, igs_majhong_interrupt)
+ //MCFG_NVRAM_ADD_0FILL("nvram")
+
+
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
-
- MCFG_VIDEO_START_OVERRIDE(igs_m027_state, fearless)
- MCFG_SCREEN_UPDATE_DRIVER(igs_m027_state, screen_update_fearless)
+ MCFG_SCREEN_UPDATE_DRIVER(igs_m027_state, screen_update_igs_majhong)
MCFG_SCREEN_PALETTE("palette")
MCFG_PALETTE_ADD("palette", 0x200)
+// MCFG_PALETTE_FORMAT(xGGGGGRRRRRBBBBB)
+
+ MCFG_DEVICE_ADD("igs017_igs031", IGS017_IGS031, 0)
+ MCFG_GFX_PALETTE("palette")
+ MCFG_REVERSE_TEXT_BITS
+
+ // 82C55? (accessed through igs017/igs031 area like igs017.c?)
/* sound hardware */
- MCFG_SPEAKER_STANDARD_MONO("mono")
- MCFG_ICS2115_ADD("ics", 0)
- MCFG_ICS2115_IRQ_CB(WRITELINE(igs_m027_state, sound_irq))
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 5.0)
+ // OK6295
MACHINE_CONFIG_END
+/***************************************************************************
+ ROMs Loading
+***************************************************************************/
/***************************************************************************
- ROMs Loading
+Mahjong Shuang Long Qiang Zhu 3
+IGS, 1999
+
+PCB Layout
+
+IGS PCB-0239-11-EE
+|--------------------------------------------|
+| DSW2 DSW1 U9 U18 |
+| 22MHz IGS031 |
+| PAL |
+| |
+| |
+| |
+| 62256 IGS027A |
+| 55857G |
+| U29 |
+| 8255 |
+| |
+| 62256 |
+| |
+|ULN2004 |
+| M6295 |
+| |
+| RESET_SW|
+|TDA1519C U26 BATTERY |
+|--------------------------------------------|
***************************************************************************/
-ROM_START( sdwx )
+
+ROM_START( slqz3 )
ROM_REGION( 0x04000, "maincpu", 0 )
- /* Internal rom of IGS027A ARM based MCU */
- ROM_LOAD( "sdwx_igs027a", 0x00000, 0x4000, NO_DUMP )
+ /* Internal rom of IGS027A type G ARM based MCU */
+ ROM_LOAD( "slqz3_igs027a", 0x00000, 0x4000, NO_DUMP )
- ROM_REGION( 0x80000, "user1", 0 ) // external ARM data / prg
- ROM_LOAD( "prg.u16", 0x000000, 0x80000, CRC(c94ef6a8) SHA1(69f2f356e05206b0866a9020253d9a112b56316c) )
+ ROM_REGION( 0x200000, "user1", 0 ) // external ARM data / prg
+ ROM_LOAD( "u29", 0x000000, 0x200000, CRC(215fed1e) SHA1(c85d8695e0be1044ac206118c3fc0ddc7063aaf6) ) // 11xxxxxxxxxxxxxxxxxxx = 0xFF
- ROM_REGION( 0x80000, "gfx1", 0 )
- ROM_LOAD( "text.u24", 0x000000, 0x80000, CRC(60b415ac) SHA1(b4475b0ba1e70504cac9ac05078873df0b16495b) )
+ ROM_REGION( 0x080000, "tilemaps", 0 )
+ ROM_LOAD( "u9", 0x000000, 0x080000, CRC(a82398a9) SHA1(4d2987f57096b7f24ce6571ed3be6dcb33bce88d) )
- ROM_REGION( 0x200000, "gfx2", 0 )
- ROM_LOAD( "cg.u25", 0x000000, 0x200000, CRC(709b9a42) SHA1(18c4b8e159b29c168f5cafb437fe6eb123672471) )
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD( "u18", 0x000000, 0x400000, CRC(81428f18) SHA1(9fb19c8a79cc3443642f4b044e04735df2cb45be) ) // FIXED BITS (xxxxxxxx0xxxxxxx)
- ROM_REGION( 0x80000, "unknown", 0 )
- ROM_LOAD( "sp.u2", 0x00000, 0x80000, CRC(216b5418) SHA1(b7bc24ced0ccb5476c974420aa506c13b971fc9f) )
+
+ ROM_REGION( 0x200000, "oki", 0 )
+ ROM_LOAD( "u26", 0x000000, 0x200000, CRC(84bc2f3e) SHA1(49dcf5eaa39accd5c6bf01782fd4221298cb43ed) ) // 1ST AND 2ND HALF IDENTICAL
ROM_END
-ROM_START( sddz )
+/***************************************************************************
+
+Fruit Paradise
+IGS
+
+PCB Layout
+----------
+
+IGS PCB-0331-02-FG
+|--------------------------------------------|
+|PC817 7805 W4102.U28|
+|ULN2004 ULN2004 TDA1020 VOL M6295 |
+|ULN2004 PAL 62257 3.6VBATT|
+|ULN2004 82C55 22MHz |
+|ULN2004 |
+|8 V214.U23 |
+|L |--------| |
+|I PC817(x20) |IGS027A | |
+|N |--------| |55857G | |
+|E M4101.U13 | | |--------| |
+|R | IGS031 | |
+| | | |
+| TEXT.U12 |--------| |
+|DSW1 |
+|DSW2 ULN2004 61256 |
+|DSW3 PC817(x13) PC817 PC817 |
+| |--| JAMMA |--| |
+|-------| |---------------------------| |--|
+
+***************************************************************************/
+
+ROM_START( fruitpar )
ROM_REGION( 0x04000, "maincpu", 0 )
- /* Internal rom of IGS027A ARM based MCU */
- ROM_LOAD( "sddz_igs027a", 0x00000, 0x4000, NO_DUMP )
+ /* Internal rom of IGS027A type G ARM based MCU */
+ ROM_LOAD( "fruitpar_igs027a", 0x00000, 0x4000, NO_DUMP )
ROM_REGION( 0x80000, "user1", 0 ) // external ARM data / prg
- ROM_LOAD( "ddz_218cn.u17", 0x000000, 0x80000, CRC(3cfe38d5) SHA1(9c7f82ecffbc22879583519d5f753bb35e973ee3) )
+ ROM_LOAD( "fruit_paradise_v214.u23", 0x00000, 0x80000, CRC(e37bc4e0) SHA1(f5580e6007dc60f32efd3b3e7e64c5ee446ede8a) )
- ROM_REGION( 0x80000, "gfx1", 0 )
- ROM_LOAD( "ddz_text.u27", 0x000000, 0x80000, CRC(520dc392) SHA1(0ab2620f20af8253806b6ff4e1d9d77a694da17c) )
+ ROM_REGION( 0x080000, "tilemaps", 0 )
+ ROM_LOAD( "paradise_text.u12", 0x000000, 0x080000, CRC(bdaa4407) SHA1(845eead0902c81290c2b5d7543ac9dfda375fdd1) )
- ROM_REGION( 0x400000, "gfx2", 0 )
- ROM_LOAD( "ddz_ani.u28", 0x000000, 0x400000, CRC(72487508) SHA1(9f4bbc858960ddaae403e4a3330b2345f6fd6cb3))
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD( "igs_m4101.u13", 0x000000, 0x400000, CRC(84899398) SHA1(badac65af6e03c490798f4368eb2b15db8c590d0) ) // FIXED BITS (xxxxxxx0xxxxxxxx)
- ROM_REGION( 0x200000, "unknown", 0 )
- ROM_LOAD( "ddz_sp.u4", 0x00000, 0x200000, CRC(7ef65d95) SHA1(345c587cd449d6d06908e9687480be76b2cb2d28) )
+
+ ROM_REGION( 0x80000, "oki", 0 )
+ ROM_LOAD( "igs_w4102.u28", 0x00000, 0x80000, CRC(558cab25) SHA1(0280b37a14589329f0385c048e5742b9e89bd587) )
ROM_END
-ROM_START( lhzb3 )
+/***************************************************************************
+
+Amazonia King
+IGS
+
+IGS PCB-0367-00-FG-1
+
+ - IGS 027A
+ - IGS 031
+ - IGS A2107
+ - IGS T2105: Character Generator ROM
+ - K668 (qfp44) == OKI6225
+ - 82C55
+
+***************************************************************************/
+
+ROM_START( amazonia )
ROM_REGION( 0x04000, "maincpu", 0 )
- /* Internal rom of IGS027A ARM based MCU */
- ROM_LOAD( "lhzb3_igs027a", 0x00000, 0x4000, NO_DUMP )
+ /* Internal rom of IGS027A type G ARM based MCU */
+ ROM_LOAD( "amazonia_igs027a", 0x00000, 0x4000, NO_DUMP )
ROM_REGION( 0x80000, "user1", 0 ) // external ARM data / prg
- ROM_LOAD( "lhzb3_104.u9", 0x000000, 0x80000, CRC(70d61846) SHA1(662b59702ef6f26129de6b16346786df92f99097) )
+ ROM_LOAD( "amazonia_v-104br.u23", 0x00000, 0x80000, CRC(103d465e) SHA1(68d088f24171e27c0a9b0660f81d3334f730637a) )
- ROM_REGION( 0x80000, "gfx1", 0 )
- ROM_LOAD( "lhzb3_text.u17", 0x000000, 0x80000,CRC(a82398a9) SHA1(4d2987f57096b7f24ce6571ed3be6dcb33bce88d) )
+ ROM_REGION( 0x480000, "tilemaps", 0 )
+ ROM_LOAD( "igs_t2105_cg_v110.u12", 0x000000, 0x80000, CRC(1d4be260) SHA1(6374c61735144b3ff54d5e490f26adac4a10b14d) )
- ROM_REGION( 0x400000, "gfx2", 0 )
- ROM_LOAD( "m2401.u18", 0x000000, 0x400000, CRC(81428f18) SHA1(9fb19c8a79cc3443642f4b044e04735df2cb45be) )
+ ROM_REGION( 0x480000, "sprites", 0 )
+ ROM_LOAD( "igs_a2107_cg_v110.u13", 0x000000, 0x400000,CRC(d8dadfd7) SHA1(b40a46d56ff46d91e3377be8616c3eed321f7db4) ) // FIXED BITS (xxxxxxx0xxxxxxxx)
+ ROM_LOAD( "amazonia_cg.u11", 0x400000, 0x80000, CRC(2ac2cfd1) SHA1(f8750a4727ddabf1415dab6eaa4a72e60e86e7f1) ) // FIXED BITS (xxxxxxxx0xxxxxxx)
- ROM_REGION( 0x200000, "unknown", 0 )
- ROM_LOAD( "s2402.u14", 0x00000, 0x100000, CRC(56083fe2) SHA1(62afd651809bf5e639bfda6e5579dbf4b903b664) )
+ ROM_REGION( 0x80000, "oki", 0 )
+ ROM_LOAD( "igs_s2102.u28", 0x00000, 0x80000, CRC(90dda82d) SHA1(67fbc1e8d76b85e124136e2f1df09c8b6c5a8f97) )
ROM_END
+/*
+Amazonia King II by IGS 2004 ( International Game System )
+Patented by EAGO.
+
+U12 is a 27c240 labeled ( AKII TEXT ) ( text )
+U13 is a 27c160 labeled ( AKII CG ) ( Grafics)
+U23 is a 27c4096 labeled ( AKII_V-202br ) ( Program version Brazil )
+U28 is a 29F4000 labeled (AKII SP) ( Sound Program )
+U17 is a ATF16V8B-15P labeled ( FG-1 ) (read protected)
+U10 is a IGS 003c Dip 40 pin ( Maybe 8255 ? )
+U24 is a IGS031 QFP with 208 pin
+U32 is a IGS027a QFP with 120 pin ( Encrypted ARM, internal code, stamped P9 A/K II )
+Crystal Frequency = 22.000 Mhz
+Sound Processor ( U6295 )
+*/
-ROM_START( lhzb4 )
+ROM_START( amazoni2 )
ROM_REGION( 0x04000, "maincpu", 0 )
/* Internal rom of IGS027A ARM based MCU */
- ROM_LOAD( "lhzb4_igs027a", 0x00000, 0x4000, NO_DUMP )
+ ROM_LOAD( "sdwx_igs027a", 0x00000, 0x4000, NO_DUMP )
ROM_REGION( 0x80000, "user1", 0 ) // external ARM data / prg
- ROM_LOAD( "lhzb4_104.u17", 0x000000, 0x80000, CRC(6f349bbb) SHA1(54cf895889ef0f208637ba732ede696ca3603ee0) )
+ ROM_LOAD( "27c4096_akii_b-202br.u23", 0x000000, 0x80000, CRC(7147b43c) SHA1(29a4a20867595650918c4ab892ddb71440bd3f4b) )
- ROM_REGION( 0x80000, "gfx1", 0 )
- ROM_LOAD( "lhzb4_text.u27", 0x000000, 0x80000, CRC(8488b039) SHA1(59bc9eccba810fcac2a53866b2da1e71bfd8a6e7) )
+ ROM_REGION( 0x80000, "tilemaps", 0 )
+ ROM_LOAD( "akii_text.u12", 0x000000, 0x80000, CRC(60b415ac) SHA1(b4475b0ba1e70504cac9ac05078873df0b16495b) )
- ROM_REGION( 0x400000, "gfx2", 0 )
- ROM_LOAD( "a05501.u28", 0x000000, 0x400000, CRC(f78b3714) SHA1(c73d8e50b04126bc4f91783384713624ed133ee2) )
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD( "U13_27c160_akii_cg.u13", 0x000000, 0x200000, CRC(254bd84f) SHA1(091ecda792c4c4a7bb039b2c708788ef87fdaf86) ) // FIXED BITS (xxxxxxx0xxxxxxxx)
- ROM_REGION( 0x200000, "unknown", 0 )
- ROM_LOAD( "w05502.u5", 0x00000, 0x200000, CRC(467f677e) SHA1(63927c0d606176c0e22db89ea3a9777ed702abbd) )
+ ROM_REGION( 0x80000, "oki", 0 ) // m6295 samples
+ ROM_LOAD( "akii_sp.u28", 0x00000, 0x80000, CRC(216b5418) SHA1(b7bc24ced0ccb5476c974420aa506c13b971fc9f) )
ROM_END
+// Games with prg at u16
+// text at u24
+// cg at u25
+// samples at u2
+
+ROM_START( sdwx )
+ ROM_REGION( 0x04000, "maincpu", 0 )
+ /* Internal rom of IGS027A ARM based MCU */
+ ROM_LOAD( "sdwx_igs027a", 0x00000, 0x4000, NO_DUMP )
+
+ ROM_REGION( 0x80000, "user1", 0 ) // external ARM data / prg
+ ROM_LOAD( "prg.u16", 0x000000, 0x80000, CRC(c94ef6a8) SHA1(69f2f356e05206b0866a9020253d9a112b56316c) )
+
+ ROM_REGION( 0x80000, "tilemaps", 0 )
+ ROM_LOAD( "text.u24", 0x000000, 0x80000, CRC(60b415ac) SHA1(b4475b0ba1e70504cac9ac05078873df0b16495b) )
+
+ ROM_REGION( 0x200000, "sprites", 0 )
+ ROM_LOAD( "cg.u25", 0x000000, 0x200000, CRC(709b9a42) SHA1(18c4b8e159b29c168f5cafb437fe6eb123672471) )
+
+ ROM_REGION( 0x80000, "oki", 0 ) // m6295 samples
+ ROM_LOAD( "sp.u2", 0x00000, 0x80000, CRC(216b5418) SHA1(b7bc24ced0ccb5476c974420aa506c13b971fc9f) )
+ROM_END
ROM_START( klxyj )
ROM_REGION( 0x04000, "maincpu", 0 )
@@ -539,36 +610,45 @@ ROM_START( klxyj )
ROM_REGION( 0x80000, "user1", 0 ) // external ARM data / prg
ROM_LOAD( "klxyj_104.u16", 0x000000, 0x80000, CRC(8cb9bdc2) SHA1(5a13d0ff6488a938617a9ea89e7cf607539a1f49) )
- ROM_REGION( 0x80000, "gfx1", 0 )
+ ROM_REGION( 0x80000, "tilemaps", 0 )
ROM_LOAD( "klxyj_text.u24", 0x000000, 0x80000, CRC(22dcebd0) SHA1(0383f017135230d020d12c8c6cc3aeb136fe9106) )
- ROM_REGION( 0x400000, "gfx2", 0 )
+ ROM_REGION( 0x400000, "sprites", 0 )
ROM_LOAD( "a4202.u25", 0x000000, 0x400000, CRC(97a68f85) SHA1(177c8c23fd0d585b24a71359ede005ac9a2e4d4d) )
- ROM_REGION( 0x200000, "unknown", 0 )
+ ROM_REGION( 0x200000, "oki", 0 )
ROM_LOAD( "w4201.u2", 0x00000, 0x100000, CRC(464f11ab) SHA1(56e45bd31f667fc30387fcd4c940a94819b7ef0f) )
ROM_END
-ROM_START( mgfx )
+// Games with prg at u9
+// text at u17
+// cg at u18
+// samples at u14
+
+
+ROM_START( lhzb3 )
ROM_REGION( 0x04000, "maincpu", 0 )
/* Internal rom of IGS027A ARM based MCU */
- ROM_LOAD( "mgfx_igs027a", 0x00000, 0x4000, NO_DUMP )
+ ROM_LOAD( "lhzb3_igs027a", 0x00000, 0x4000, NO_DUMP )
ROM_REGION( 0x80000, "user1", 0 ) // external ARM data / prg
- ROM_LOAD( "mgfx_101.u10", 0x000000, 0x80000, CRC(897c88a1) SHA1(0f7a7808b9503ff28ad32c0b8e071cb24cff59b1) )
+ ROM_LOAD( "lhzb3_104.u9", 0x000000, 0x80000, CRC(70d61846) SHA1(662b59702ef6f26129de6b16346786df92f99097) )
- ROM_REGION( 0x80000, "gfx1", 0 )
- ROM_LOAD( "mgfx_text.u9", 0x000000, 0x80000, CRC(e41e7768) SHA1(3d0add7c75c23533309e799fd8853c815e6f811c) )
+ ROM_REGION( 0x80000, "tilemaps", 0 )
+ ROM_LOAD( "lhzb3_text.u17", 0x000000, 0x80000,CRC(a82398a9) SHA1(4d2987f57096b7f24ce6571ed3be6dcb33bce88d) )
- ROM_REGION( 0x400000, "gfx2", 0 )
- ROM_LOAD( "mgfx_ani.u17", 0x000000, 0x400000, CRC(9fc75f4d) SHA1(acb600739dcf252a5210e28ec96d749573061b27) )
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD( "m2401.u18", 0x000000, 0x400000, CRC(81428f18) SHA1(9fb19c8a79cc3443642f4b044e04735df2cb45be) )
ROM_REGION( 0x200000, "unknown", 0 )
- ROM_LOAD( "mgfx_sp.u14", 0x00000, 0x100000, CRC(9bb28fc8) SHA1(6368753c29607f2d212d68c5cca3f10aa069649b) )
+ ROM_LOAD( "s2402.u14", 0x00000, 0x100000, CRC(56083fe2) SHA1(62afd651809bf5e639bfda6e5579dbf4b903b664) )
ROM_END
+
+
+
/*
Zhong Guo Chu Da D
@@ -622,17 +702,38 @@ ROM_START( zhongguo )
ROM_REGION( 0x80000, "user1", 0 ) // external ARM data / prg
ROM_LOAD( "p2600.u10", 0x000000, 0x80000, CRC(9ad34135) SHA1(54717753d1296efe49946369fd4a27181f19dbc0) )
- ROM_REGION( 0x80000, "gfx1", 0 )
+ ROM_REGION( 0x80000, "tilemaps", 0 )
ROM_LOAD( "t2604.u9", 0x000000, 0x80000, CRC(5401a52d) SHA1(05b47a4b39939c1d5904e3fbd5cc56d6ee9b7953) )
- ROM_REGION( 0x400000, "gfx2", 0 )
+ ROM_REGION( 0x480000, "sprites", 0 )
ROM_LOAD( "m2601.u17", 0x000000, 0x400000, CRC(89736e3f) SHA1(6a22e2eb10d2c740cf21640c43a8caf4c72d3be7) )
- ROM_LOAD( "m2603.u18", 0x000000, 0x080000, CRC(fb2e91a8) SHA1(29b2f0ce3749539cbe4cfb5c40b240cc7f6147f1) )
+ ROM_LOAD( "m2603.u18", 0x400000, 0x080000, CRC(fb2e91a8) SHA1(29b2f0ce3749539cbe4cfb5c40b240cc7f6147f1) )
- ROM_REGION( 0x200000, "unknown", 0 )
+ ROM_REGION( 0x200000, "oki", 0 )
ROM_LOAD( "s2602.u14", 0x00000, 0x100000, CRC(f137028c) SHA1(0e4114222820bca2f7026fa653e2b96a489a0183) )
ROM_END
+
+
+ROM_START( mgfx )
+ ROM_REGION( 0x04000, "maincpu", 0 )
+ /* Internal rom of IGS027A ARM based MCU */
+ ROM_LOAD( "mgfx_igs027a", 0x00000, 0x4000, NO_DUMP )
+
+ ROM_REGION( 0x80000, "user1", 0 ) // external ARM data / prg
+ ROM_LOAD( "mgfx_101.u10", 0x000000, 0x80000, CRC(897c88a1) SHA1(0f7a7808b9503ff28ad32c0b8e071cb24cff59b1) )
+
+ ROM_REGION( 0x80000, "tilemaps", 0 )
+ ROM_LOAD( "mgfx_text.u9", 0x000000, 0x80000, CRC(e41e7768) SHA1(3d0add7c75c23533309e799fd8853c815e6f811c) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD( "mgfx_ani.u17", 0x000000, 0x400000, CRC(9fc75f4d) SHA1(acb600739dcf252a5210e28ec96d749573061b27) )
+
+ ROM_REGION( 0x200000, "oki", 0 )
+ ROM_LOAD( "mgfx_sp.u14", 0x00000, 0x100000, CRC(9bb28fc8) SHA1(6368753c29607f2d212d68c5cca3f10aa069649b) )
+ROM_END
+
+
/*
@@ -705,10 +806,10 @@ ROM_START( gonefsh2 )
ROM_REGION( 0x80000, "user1", 0 ) // external ARM data / prg
ROM_LOAD( "gfii_v-904uso.u12", 0x000000, 0x80000, CRC(ef0f6735) SHA1(0add92599b0989f3e50dc64e32ce234b4bd87d33) )
- ROM_REGION( 0x80000, "gfx1", 0 )
+ ROM_REGION( 0x80000, "tilemaps", 0 )
ROM_LOAD( "gfii_text.u15", 0x000000, 0x80000, CRC(b48118fd) SHA1(e718d23ce5f7f41ab94df2d05cdd3adbf27eef89) )
- ROM_REGION( 0x400000, "gfx2", 0 )
+ ROM_REGION( 0x400000, "sprites", 0 )
ROM_LOAD( "gfii_cg.u17", 0x000000, 0x200000, CRC(2568359c) SHA1(f1f240246e53496bf624c84f7cae3edb9675579f) )
ROM_REGION( 0x200000, "oki", 0 )
@@ -786,10 +887,10 @@ ROM_START( chessc2 )
ROM_REGION( 0x80000, "user1", 0 ) // external ARM data / prg
ROM_LOAD( "ccii_v-707uso.u12", 0x000000, 0x80000, CRC(5937b67b) SHA1(967b3adf6f5bf92d63ec460d595e473898a78372) )
- ROM_REGION( 0x80000, "gfx1", 0 )
+ ROM_REGION( 0x80000, "tilemaps", 0 )
ROM_LOAD( "ccii_text.u15", 0x000000, 0x80000, CRC(25fed033) SHA1(b321c4994f609906597c3f7d5cdfc2dca63cd340) )
- ROM_REGION( 0x400000, "gfx2", 0 )
+ ROM_REGION( 0x400000, "sprites", 0 )
ROM_LOAD( "ccii_cg.u17", 0x000000, 0x200000, CRC(47e45157) SHA1(4459799a4a6c30a2d0a3ad9ac54e92b62221e10b) )
ROM_REGION( 0x200000, "oki", 0 )
@@ -798,7 +899,10 @@ ROM_END
-
+// prg at u34
+// text at u15
+// cg at u32 / u12
+// samples at u3
ROM_START( haunthig )
ROM_REGION( 0x04000, "maincpu", 0 )
@@ -811,47 +915,64 @@ ROM_START( haunthig )
ROM_REGION( 0x10000, "plcc", 0 )
ROM_LOAD( "hauntedhouse.u17", 0x000000, 0x10000, CRC(3c76b157) SHA1(d8d3a434fd649577a30d5855e3fb34998041f4e5) ) // MX10EXAQC (80C51 XA based MCU) marked J9, not read protected?
- ROM_REGION( 0x80000, "gfx1", 0 )
+ ROM_REGION( 0x80000, "tilemaps", 0 )
ROM_LOAD( "haunted-h_text.u15", 0x000000, 0x80000, CRC(c23f48c8) SHA1(0cb1b6c61611a081ae4a3c0be51812045ff632fe) )
// are these PGM-like sprites?
- ROM_REGION( 0x400000, "gfx2", 0 )
- ROM_LOAD( "haunted-h_cg.u32", 0x000000, 0x400000, CRC(e0ea10e6) SHA1(e81be78fea93e72d4b1f4c0b58560bda46cf7948) )
- ROM_REGION( 0x400000, "gfx3", 0 )
- ROM_LOAD( "haunted-h_ext.u12", 0x000000, 0x400000, CRC(662eb883) SHA1(831ebe29e1e7a8b2c2fff7fbc608975771c3486c) )
+ ROM_REGION( 0x800000, "sprites", 0 )
+ ROM_LOAD( "haunted-h_cg.u32", 0x000000, 0x400000, CRC(e0ea10e6) SHA1(e81be78fea93e72d4b1f4c0b58560bda46cf7948) ) // FIXED BITS (xxxxxxx0xxxxxxxx)
+ ROM_LOAD( "haunted-h_ext.u12", 0x400000, 0x400000, CRC(662eb883) SHA1(831ebe29e1e7a8b2c2fff7fbc608975771c3486c) ) // FIXED BITS (xxxxxxxx0xxxxxxx)
- ROM_REGION( 0x200000, "oki", 0 )
+ ROM_REGION( 0x200000, "samples", 0 ) // samples, but not OKI? possibly ICS?
ROM_LOAD( "haunted-h_sp.u3", 0x00000, 0x200000, CRC(fe3fcddf) SHA1(ac57ab6d4e4883747c093bd19d0025cf6588cb2c) )
ROM_END
-// seems to be a bigger game with different video system
-ROM_START( fearless )
+
+// Games with prg at u17
+// text at u27
+// cg at u28
+// samples at u4 (or u5?)
+
+ROM_START( sddz )
ROM_REGION( 0x04000, "maincpu", 0 )
/* Internal rom of IGS027A ARM based MCU */
- ROM_LOAD( "fearless_igs027a", 0x00000, 0x4000, NO_DUMP ) // sticker marked 'F1'
+ ROM_LOAD( "sddz_igs027a", 0x00000, 0x4000, NO_DUMP )
ROM_REGION( 0x80000, "user1", 0 ) // external ARM data / prg
- ROM_LOAD( "fearlessp_v-101us.u37", 0x000000, 0x80000, CRC(2522873c) SHA1(8db709877311b6d2796353fc9a44a820937e35c2) )
+ ROM_LOAD( "ddz_218cn.u17", 0x000000, 0x80000, CRC(3cfe38d5) SHA1(9c7f82ecffbc22879583519d5f753bb35e973ee3) )
- ROM_REGION( 0x10000, "plcc", 0 )
- ROM_LOAD( "fearlessp_07.u33", 0x000000, 0x10000, CRC(7dae4900) SHA1(bbf7ba7c9e95ff2ffeb1dc0fc7ccedd4da274d01) ) // MX10EXAQC (80C51 XA based MCU) marked 07, not read protected?
-
- ROM_REGION( 0x800000, "gfx1", 0 ) // these all report FIXED BITS (0xxxxxxx), possibly just 7-bit colour data
- ROM_LOAD( "fearlessp_u6_cg-0h.u6", 0x000000, 0x800000, CRC(02d8bbbf) SHA1(7cf36c909a5d76096a725ffe0a697bcbafbcf985) )
- ROM_LOAD( "fearlessp_u7_cg-0l.u7", 0x000000, 0x800000, CRC(ca254db4) SHA1(f5670c2ff0720c84c9aff3cea95b118b6044e469) )
- ROM_LOAD( "fearlessp_u13_cg-1h.u13", 0x000000, 0x800000, CRC(c9d2a56d) SHA1(91d1665623bca743f68f15a27bbf433e2ffc0808) )
- ROM_LOAD( "fearlessp_u14_cg-1l.u14", 0x000000, 0x800000, CRC(7fe312d2) SHA1(c0add22d9fc4c0e32a03922cb709b947bfff429d) )
- ROM_LOAD( "fearlessp_u17_cg-2h.u17", 0x000000, 0x800000, CRC(756fe1f2) SHA1(48ee81c5fa4808406b57b2521b836db3ff5a7fa9) )
- ROM_LOAD( "fearlessp_u18_cg-2l.u18", 0x000000, 0x800000, CRC(07623d66) SHA1(041d5e44917bc16caa720ea98bdc0a4f5fb4b8e0) )
-
- ROM_REGION( 0x800000, "ics", 0 )
- ROM_LOAD( "fearlessp_u25_music0.u25", 0x000000, 0x400000, CRC(a015b9b1) SHA1(7b129c59acd523dec82e58a75d873bbc5341fb28) )
- ROM_LOAD( "fearlessp_u26_music1.u26", 0x400000, 0x400000, CRC(9d5f18da) SHA1(42e5224c1af0898cc2e02b2e051ea8b629d5fb6d) )
+ ROM_REGION( 0x80000, "tilemaps", 0 )
+ ROM_LOAD( "ddz_text.u27", 0x000000, 0x80000, CRC(520dc392) SHA1(0ab2620f20af8253806b6ff4e1d9d77a694da17c) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD( "ddz_ani.u28", 0x000000, 0x400000, CRC(72487508) SHA1(9f4bbc858960ddaae403e4a3330b2345f6fd6cb3))
+
+ ROM_REGION( 0x200000, "samples", 0 ) // samples, but not OKI? possibly ICS?
+ ROM_LOAD( "ddz_sp.u4", 0x00000, 0x200000, CRC(7ef65d95) SHA1(345c587cd449d6d06908e9687480be76b2cb2d28) )
+ROM_END
+
+ROM_START( lhzb4 )
+ ROM_REGION( 0x04000, "maincpu", 0 )
+ /* Internal rom of IGS027A ARM based MCU */
+ ROM_LOAD( "lhzb4_igs027a", 0x00000, 0x4000, NO_DUMP )
+
+ ROM_REGION( 0x80000, "user1", 0 ) // external ARM data / prg
+ ROM_LOAD( "lhzb4_104.u17", 0x000000, 0x80000, CRC(6f349bbb) SHA1(54cf895889ef0f208637ba732ede696ca3603ee0) )
+
+ ROM_REGION( 0x80000, "tilemaps", 0 )
+ ROM_LOAD( "lhzb4_text.u27", 0x000000, 0x80000, CRC(8488b039) SHA1(59bc9eccba810fcac2a53866b2da1e71bfd8a6e7) )
+
+ ROM_REGION( 0x400000, "sprites", 0 )
+ ROM_LOAD( "a05501.u28", 0x000000, 0x400000, CRC(f78b3714) SHA1(c73d8e50b04126bc4f91783384713624ed133ee2) )
+
+ ROM_REGION( 0x200000, "samples", 0 ) // samples, but not OKI? possibly ICS?
+ ROM_LOAD( "w05502.u5", 0x00000, 0x200000, CRC(467f677e) SHA1(63927c0d606176c0e22db89ea3a9777ed702abbd) )
ROM_END
+
void igs_m027_state::pgm_create_dummy_internal_arm_region()
{
UINT16 *temp16 = (UINT16 *)memregion("maincpu")->base();
@@ -912,12 +1033,6 @@ DRIVER_INIT_MEMBER(igs_m027_state,hauntedh)
pgm_create_dummy_internal_arm_region();
}
-DRIVER_INIT_MEMBER(igs_m027_state,fearless)
-{
- fearless_decrypt(machine());
- //sdwx_gfx_decrypt(machine());
- pgm_create_dummy_internal_arm_region();
-}
DRIVER_INIT_MEMBER(igs_m027_state,lhzb4)
@@ -962,20 +1077,51 @@ DRIVER_INIT_MEMBER(igs_m027_state,zhongguo)
pgm_create_dummy_internal_arm_region();
}
+DRIVER_INIT_MEMBER(igs_m027_state,slqz3)
+{
+ slqz3_decrypt(machine());
+ //sdwx_gfx_decrypt(machine());
+ pgm_create_dummy_internal_arm_region();
+}
+
+DRIVER_INIT_MEMBER(igs_m027_state,fruitpar)
+{
+ fruitpar_decrypt(machine());
+ //sdwx_gfx_decrypt(machine());
+ pgm_create_dummy_internal_arm_region();
+}
+
+DRIVER_INIT_MEMBER(igs_m027_state,amazonia)
+{
+ amazonia_decrypt(machine());
+ //sdwx_gfx_decrypt(machine());
+ pgm_create_dummy_internal_arm_region();
+}
+
+DRIVER_INIT_MEMBER(igs_m027_state,amazoni2)
+{
+ amazoni2_decrypt(machine());
+ //sdwx_gfx_decrypt(machine());
+ pgm_create_dummy_internal_arm_region();
+}
+
/***************************************************************************
Game Drivers
***************************************************************************/
-GAME( 2002, sdwx, 0, igs_majhong, sdwx, igs_m027_state, sdwx, ROT0, "IGS", "Sheng Dan Wu Xian", GAME_IS_SKELETON ) // aka Christmas 5 Line?
-GAME( 200?, sddz, 0, igs_majhong, sdwx, igs_m027_state, sddz, ROT0, "IGS", "Super Dou Di Zhu", GAME_IS_SKELETON )
-GAME( 2000, zhongguo, 0, igs_majhong, sdwx, igs_m027_state, zhongguo, ROT0, "IGS", "Zhong Guo Chu Da D", GAME_IS_SKELETON )
-GAME( 200?, lhzb3, 0, igs_majhong, sdwx, igs_m027_state, lhzb3, ROT0, "IGS", "Long Hu Zheng Ba 3", GAME_IS_SKELETON )
-GAME( 200?, lhzb4, 0, igs_majhong, sdwx, igs_m027_state, lhzb4, ROT0, "IGS", "Long Hu Zheng Ba 4", GAME_IS_SKELETON )
-GAME( 200?, klxyj, 0, igs_majhong, sdwx, igs_m027_state, klxyj, ROT0, "IGS", "Kuai Le Xi You Ji", GAME_IS_SKELETON )
-GAME( 2000, mgfx, 0, igs_majhong, sdwx, igs_m027_state, mgfx, ROT0, "IGS", "Man Guan Fu Xing", GAME_IS_SKELETON )
-GAME( 200?, gonefsh2, 0, igs_majhong, sdwx, igs_m027_state, gonefsh2, ROT0, "IGS", "Gone Fishing 2", GAME_IS_SKELETON )
-GAME( 200?, chessc2, 0, igs_majhong, sdwx, igs_m027_state, chessc2, ROT0, "IGS", "Chess Challenge 2", GAME_IS_SKELETON )
-GAME( 200?, haunthig, 0, igs_majhong, sdwx, igs_m027_state, hauntedh, ROT0, "IGS", "Haunted House (IGS)", GAME_IS_SKELETON )
-GAME( 2006, fearless, 0, fearless, sdwx, igs_m027_state, fearless, ROT0, "IGS", "Fearless Pinocchio (V101US)", GAME_IS_SKELETON )
+GAME( 1999, slqz3, 0, igs_majhong, sdwx, igs_m027_state, slqz3, ROT0, "IGS", "Mahjong Shuang Long Qiang Zhu 3 (China, VS107C)", MACHINE_IS_SKELETON )
+GAME( 1999, amazonia, 0, amazonia,amazonia, igs_m027_state, amazonia, ROT0, "IGS", "Amazonia King (V104BR)", MACHINE_IS_SKELETON )
+GAME( 200?, fruitpar, 0, igs_majhong, sdwx, igs_m027_state, fruitpar, ROT0, "IGS", "Fruit Paradise (V214)", MACHINE_IS_SKELETON )
+GAME( 2002, sdwx, 0, igs_majhong, sdwx, igs_m027_state, sdwx, ROT0, "IGS", "Sheng Dan Wu Xian", MACHINE_IS_SKELETON ) // aka Christmas 5 Line? (or Amazonia King II, shares roms at least?)
+GAME( 2002, amazoni2, 0, igs_majhong, sdwx, igs_m027_state, amazoni2, ROT0, "IGS", "Amazonia King II (V202BR)", MACHINE_IS_SKELETON )
+GAME( 200?, sddz, 0, igs_majhong, sdwx, igs_m027_state, sddz, ROT0, "IGS", "Super Dou Di Zhu", MACHINE_IS_SKELETON )
+GAME( 2000, zhongguo, 0, igs_majhong, sdwx, igs_m027_state, zhongguo, ROT0, "IGS", "Zhong Guo Chu Da D", MACHINE_IS_SKELETON )
+GAME( 200?, lhzb3, 0, igs_majhong, sdwx, igs_m027_state, lhzb3, ROT0, "IGS", "Long Hu Zheng Ba 3", MACHINE_IS_SKELETON )
+GAME( 200?, lhzb4, 0, igs_majhong, sdwx, igs_m027_state, lhzb4, ROT0, "IGS", "Long Hu Zheng Ba 4", MACHINE_IS_SKELETON )
+GAME( 200?, klxyj, 0, igs_majhong, sdwx, igs_m027_state, klxyj, ROT0, "IGS", "Kuai Le Xi You Ji", MACHINE_IS_SKELETON )
+GAME( 2000, mgfx, 0, igs_majhong, sdwx, igs_m027_state, mgfx, ROT0, "IGS", "Man Guan Fu Xing", MACHINE_IS_SKELETON )
+GAME( 200?, gonefsh2, 0, igs_majhong, sdwx, igs_m027_state, gonefsh2, ROT0, "IGS", "Gone Fishing 2", MACHINE_IS_SKELETON )
+GAME( 200?, chessc2, 0, igs_majhong, sdwx, igs_m027_state, chessc2, ROT0, "IGS", "Chess Challenge 2", MACHINE_IS_SKELETON )
+GAME( 200?, haunthig, 0, igs_majhong, sdwx, igs_m027_state, hauntedh, ROT0, "IGS", "Haunted House (IGS)", MACHINE_IS_SKELETON )
diff --git a/src/mame/drivers/igs_m036.c b/src/mame/drivers/igs_m036.c
index e22bb7031f8..a101a74b3b9 100644
--- a/src/mame/drivers/igs_m036.c
+++ b/src/mame/drivers/igs_m036.c
@@ -318,11 +318,11 @@ 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)", GAME_IS_SKELETON )
-GAME( 200?, cjdh2a, cjdh2, igs_m036, igs_m036, igs_m036_state, cjdh2, ROT0, "IGS", "Chao Ji Da Heng 2 (V311CNA)", GAME_IS_SKELETON )
-GAME( 200?, cjdh2b, cjdh2, igs_m036, igs_m036, igs_m036_state, cjdh2, ROT0, "IGS", "Chao Ji Da Heng 2 (V311CNB)", GAME_IS_SKELETON )
-GAME( 200?, cjdh2c, cjdh2, igs_m036, igs_m036, igs_m036_state, cjdh2, ROT0, "IGS", "Chao Ji Da Heng 2 (V215CN)", GAME_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)", GAME_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 )
-GAME( 200?, igsm312, 0, igs_m036_tt, igs_m036, igs_m036_state, igsm312, ROT0, "IGS", "unknown 'IGS 6POKER2' game (V312CN)", GAME_IS_SKELETON ) // there's very little code and no gfx roms, might be a 'set/clear' chip for a gambling game.
+GAME( 200?, igsm312, 0, igs_m036_tt, igs_m036, igs_m036_state, igsm312, ROT0, "IGS", "unknown 'IGS 6POKER2' game (V312CN)", MACHINE_IS_SKELETON ) // there's very little code and no gfx roms, might be a 'set/clear' chip for a gambling game.
diff --git a/src/mame/drivers/igspc.c b/src/mame/drivers/igspc.c
index 7846df2687b..2acd3fc9b2f 100644
--- a/src/mame/drivers/igspc.c
+++ b/src/mame/drivers/igspc.c
@@ -113,5 +113,5 @@ DRIVER_INIT_MEMBER(speeddrv_state,speeddrv)
{
}
-GAME( 2004, speeddrv, 0, speeddrv, speeddrv, speeddrv_state, speeddrv, ROT0, "IGS", "Speed Driver", GAME_IS_SKELETON )
-GAME( 200?, eztouch, 0, speeddrv, speeddrv, speeddrv_state, speeddrv, ROT0, "IGS", "EZ Touch (v116 China)", GAME_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.c b/src/mame/drivers/igspoker.c
index 15a855a65d3..831a5e687d1 100644
--- a/src/mame/drivers/igspoker.c
+++ b/src/mame/drivers/igspoker.c
@@ -122,6 +122,7 @@ public:
DECLARE_DRIVER_INIT(cpoker);
DECLARE_DRIVER_INIT(igs_ncs2);
DECLARE_DRIVER_INIT(cpokerpk);
+ DECLARE_DRIVER_INIT(kungfu);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
virtual void machine_reset();
@@ -2425,6 +2426,20 @@ ROM_START( citalcup )
ROM_LOAD( "9.bin", 0x0000, 0x40000, CRC(dd213b5c) SHA1(82e32aa44eee227d7424553a743df48606bbd48e) )
ROM_END
+
+ROM_START( pktet346 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "v-346i.bin", 0x00000, 0x10000, CRC(8015ef13) SHA1(62841daff380d40c14ddb9c1b3fccdbb287e0b0d) )
+
+ ROM_REGION( 0x60000, "gfx1", 0 )
+ ROM_LOAD( "346i-1.bin", 0x40000, 0x20000, CRC(1f8ae481) SHA1(259808422ae1c89f08deb982387b342a68afad7f) )
+ ROM_LOAD( "346i-2.bin", 0x20000, 0x20000, CRC(f198a24f) SHA1(a4bc5936f8729b00dc3c5034ce5689e4d16284bf) )
+ ROM_LOAD( "346i-3.bin", 0x00000, 0x20000, CRC(cfc4954d) SHA1(c68edbe0a7ce6a95d978756d2c1c8c5935786bcc) )
+
+ ROM_REGION( 0x30000, "gfx2", ROMREGION_ERASE00 )
+
+ROM_END
+
DRIVER_INIT_MEMBER(igspoker_state,pktet346)
{
int A;
@@ -2445,37 +2460,96 @@ DRIVER_INIT_MEMBER(igspoker_state,pktet346)
rom[0xbb0c] = 0xc3;
}
-ROM_START( pktet346 )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "v-346i.bin", 0x00000, 0x10000, CRC(8015ef13) SHA1(62841daff380d40c14ddb9c1b3fccdbb287e0b0d) )
+
+/*
+
+Cherry master looking board
+
+Big chip with no markings at U80 stickered KUNG FU
+ V1.0
+ 1992
+
+Board silkscreend on top PCB NO.0013-B
+
+.45 27010 stickered 6
+.44 27010 stickered 5
+.43 27010 stickered 4
+.42 27128 stickered 3
+.41 27128 stickered 2
+.40 27128 stickered 1
+.98 27256 stickered 7 couldn't read chip, but board was silkscreened 27c256
+.97 27512 stickered ? looked like japanese writing
+.38 74s287
+.46 18cv8 <--- same checksum as .48
+.47 pal16l8a <--- checksum was 0
+.48 18cv8 <--- same checksum as .46
+
+unknown 24 pin chip @ u29
+open 24 pin socket @ u54
+12 MHz crystal
+
+5 x DSW8
+3 x NEC D8255AC
+
+*/
+
+ROM_START( kungfu )
+ ROM_REGION( 0x20000, "maincpu", ROMREGION_ERASE00 )
+ // u97 contains leftover x86 code at 0-3fff (compiled with Borland Turbo-C).
+ // You can rename the rom to kungfu.exe and run it (DOS MZ executable)!
+ // The rest is Z80 code, so the CPU at u80 is probably a variant with internal ROM.
+ ROM_LOAD( "kungfu-internal.u80", 0x00000, 0x04000, NO_DUMP )
+ ROM_LOAD( "kungfu.u97", 0x00000, 0x10000, CRC(5c8e16de) SHA1(4af3795753d6e08f528b861d3a771c782e173556) )
+ ROM_LOAD( "kungfu-7.u98", 0x10000, 0x08000, CRC(1d3f0c79) SHA1(0a33798b69fbdc0fb7c47c51f5759e42acd2c608) )
ROM_REGION( 0x60000, "gfx1", 0 )
- ROM_LOAD( "346i-1.bin", 0x40000, 0x20000, CRC(1f8ae481) SHA1(259808422ae1c89f08deb982387b342a68afad7f) )
- ROM_LOAD( "346i-2.bin", 0x20000, 0x20000, CRC(f198a24f) SHA1(a4bc5936f8729b00dc3c5034ce5689e4d16284bf) )
- ROM_LOAD( "346i-3.bin", 0x00000, 0x20000, CRC(cfc4954d) SHA1(c68edbe0a7ce6a95d978756d2c1c8c5935786bcc) )
+ ROM_LOAD( "kungfu-4.u43", 0x00000, 0x20000, CRC(df4afedb) SHA1(56ab18c46a199653c284417a8e9edc9f32374318) )
+ ROM_LOAD( "kungfu-5.u44", 0x20000, 0x20000, CRC(25c9c98e) SHA1(2d3a399d8d53ee5cb8106d2b35d1ab1778439f81) )
+ ROM_LOAD( "kungfu-6.u45", 0x40000, 0x20000, CRC(f1ec5f0d) SHA1(0aa888e13312ed5d98953c81f03a61c6175c7fec) )
ROM_REGION( 0x30000, "gfx2", ROMREGION_ERASE00 )
-
+ ROM_LOAD( "kungfu-1.u40", 0x00000, 0x4000, CRC(abaada6b) SHA1(a6b910db7451e8ca737f43f32dfc8fc5ecf865f4) )
+ ROM_LOAD( "kungfu-2.u41", 0x10000, 0x4000, CRC(927b3060) SHA1(a780ea5aaee04287cc9533c2d258dc18f8426530) )
+ ROM_LOAD( "kungfu-3.u42", 0x20000, 0x4000, CRC(bbf78e03) SHA1(06fee093e75e2611d00c076c2e0a681938fa8b74) )
+
+ ROM_REGION( 0x1000, "plds", 0 )
+ ROM_LOAD( "kungfu.u38", 0x000, 0x100, CRC(2074f729) SHA1(eb9a60dec57a029ae6d3fc53aa7bc78e8ac34392) )
+ ROM_LOAD( "kungfu.u46", 0x000, 0xde1, CRC(5d4aacaf) SHA1(733546ce0585c40833e1c34504c33219a2bea0a9) )
+ ROM_LOAD( "kungfu.u47", 0x000, 0xaee, CRC(5c7e25b5) SHA1(7d37e4abfe1256bd9cb168e0f02e651118dfb304) )
+ ROM_LOAD( "kungfu.u48", 0x000, 0xde1, CRC(5d4aacaf) SHA1(733546ce0585c40833e1c34504c33219a2bea0a9) )
ROM_END
+DRIVER_INIT_MEMBER(igspoker_state,kungfu)
+{
+ int A;
+ UINT8 *rom = memregion("maincpu")->base();
+
+ for (A = 0x4000;A < 0x10000;A++)
+ {
+ rom[A] = rom[A] ^ 0x01;
+ }
+ memset( &rom[0xf000], 0, 0x1000);
+}
-GAMEL( 1993?,cpoker, 0, igspoker, cpoker, igspoker_state, cpoker, ROT0, "IGS", "Champion Poker (v220I)", 0, layout_igspoker )
-GAMEL( 1993?,cpokert, cpoker, igspoker, cpoker, igspoker_state, cpokert, ROT0, "IGS (Tuning license)", "Champion Poker (v200G)", 0, layout_igspoker )
-GAMEL( 1993, cpokerx, cpoker, igspoker, cpokerx, igspoker_state, cpokert, ROT0, "IGS", "Champion Poker (v100)", 0, layout_igspoker )
+GAMEL( 1993?,cpoker, 0, igspoker, cpoker, igspoker_state, cpoker, ROT0, "IGS", "Champion Poker (v220I)", 0, layout_igspoker )
+GAMEL( 1993?,cpokert, cpoker, igspoker, cpoker, igspoker_state, cpokert, ROT0, "IGS (Tuning license)", "Champion Poker (v200G)", 0, layout_igspoker )
+GAMEL( 1993, cpokerx, cpoker, igspoker, cpokerx, igspoker_state, cpokert, ROT0, "IGS", "Champion Poker (v100)", 0, layout_igspoker )
GAMEL( 2000, chleague, 0, igspoker, chleague, igspoker_state, chleague, ROT0, "IGS", "Champion League (Poker)", 0, layout_igspoker )
GAMEL( 2000, chleagul, chleague, igspoker, chleague, igspoker_state, chleague, ROT0, "IGS", "Champion League (Lattine)", 0, layout_igspoker )
-GAMEL( 198?, csk227it, 0, csk227it, csk227, igspoker_state, cska, ROT0, "IGS", "Champion Skill (with Ability)", 0, layout_igspoker ) /* SU 062 */
-GAMEL( 198?, csk234it, csk227it, csk234it, csk234, igspoker_state, cska, ROT0, "IGS", "Champion Skill (Ability, Poker & Symbols)", 0, layout_igspoker ) /* SU 062 */
+GAMEL( 198?, csk227it, 0, csk227it, csk227, igspoker_state, cska, ROT0, "IGS", "Champion Skill (with Ability)", 0, layout_igspoker ) /* SU 062 */
+GAMEL( 198?, csk234it, csk227it, csk234it, csk234, igspoker_state, cska, ROT0, "IGS", "Champion Skill (Ability, Poker & Symbols)", 0, layout_igspoker ) /* SU 062 */
GAMEL( 2000, number10, 0, number10, number10, igspoker_state, number10, ROT0, "PlayMark SRL", "Number Dieci (Poker)", 0, layout_igspoker )
GAMEL( 2000, numbr10l, number10, number10, number10, igspoker_state, number10, ROT0, "PlayMark SRL", "Number Dieci (Lattine)", 0, layout_igspoker )
-GAMEL( 198?, igs_ncs, 0, igs_ncs, igs_ncs, igspoker_state, igs_ncs, ROT0, "IGS", "New Champion Skill (v100n)", 0, layout_igspoker ) /* SU 062 */
+GAMEL( 198?, igs_ncs, 0, igs_ncs, igs_ncs, igspoker_state, igs_ncs, ROT0, "IGS", "New Champion Skill (v100n)", 0, layout_igspoker ) /* SU 062 */
GAMEL( 199?, cpokerpk, 0, cpokerpk, cpokerpk, igspoker_state, cpokerpk, ROT0, "bootleg (SGS)", "Champion Italian PK (bootleg, blue board)", 0, layout_igspoker )
GAMEL( 199?, cpokerpkg, cpokerpk, cpokerpk, cpokerpk, igspoker_state, cpokerpk, ROT0, "bootleg (SGS)", "Champion Italian PK (bootleg, green board)", 0, layout_igspoker )
GAMEL( 199?, citalcup, cpokerpk, cpokerpk, cpokerpk, igspoker_state, cpokerpk, ROT0, "bootleg (SGS)", "Champion Italian Cup (bootleg V220IT)", 0, layout_igspoker )
-GAMEL( 2000, igs_ncs2, 0, igs_ncs, igs_ncs, igspoker_state, igs_ncs2, ROT0, "IGS", "New Champion Skill (v100n 2000)", GAME_IMPERFECT_GRAPHICS, layout_igspoker )
+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)", GAME_NOT_WORKING, layout_igspoker )
+GAMEL( 1998, stellecu, 0, number10, number10, driver_device, 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 )
+
+GAMEL( 1992, kungfu, 0, igspoker, cpoker, igspoker_state, kungfu, ROT0, "IGS", "Kung Fu (IGS, v100)", MACHINE_NOT_WORKING, layout_igspoker )
diff --git a/src/mame/drivers/ikki.c b/src/mame/drivers/ikki.c
index 74fa1178c05..8b64a62f80f 100644
--- a/src/mame/drivers/ikki.c
+++ b/src/mame/drivers/ikki.c
@@ -354,5 +354,5 @@ ROM_END
*
*************************************/
-GAME( 1985, ikki, 0, ikki, ikki, driver_device, 0, ROT0, "Sun Electronics", "Ikki (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1985, farmer, ikki, ikki, ikki, driver_device, 0, ROT0, "Sun Electronics", "Farmers Rebellion", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/imds.c b/src/mame/drivers/imds.c
index 0e44a6f6ae9..6e7e3a8d063 100644
--- a/src/mess/drivers/imds.c
+++ b/src/mame/drivers/imds.c
@@ -113,4 +113,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1983, imds, 0, 0, imds, imds, driver_device, 0, "Intel", "Intellec MDS", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/imds2.c b/src/mame/drivers/imds2.c
index 4db7ffd7555..aae8a4506f7 100644
--- a/src/mess/drivers/imds2.c
+++ b/src/mame/drivers/imds2.c
@@ -140,7 +140,7 @@ static ADDRESS_MAP_START(ioc_io_map , AS_IO , 8 , imds2_state)
AM_RANGE(0x90 , 0x9f) AM_READ(imds2_kb_read)
AM_RANGE(0xa0 , 0xaf) AM_READ(imds2_ioc_status_r)
AM_RANGE(0xb0 , 0xbf) AM_READ(imds2_ioc_dbbin_r)
- AM_RANGE(0xc0 , 0xcf) AM_DEVREADWRITE("iocfdc" , i8271_device , read , write)
+ AM_RANGE(0xc0 , 0xcf) AM_DEVICE("iocfdc" , i8271_device, map)
AM_RANGE(0xd0 , 0xdf) AM_DEVREADWRITE("ioccrtc" , i8275_device , read , write)
AM_RANGE(0xe0 , 0xef) AM_DEVREADWRITE("ioctimer" , pit8253_device , read , write);
// DMA controller range doesn't extend to 0xff because register 0xfd needs to be read as 0xff
@@ -171,11 +171,12 @@ imds2_state::imds2_state(const machine_config &mconfig, device_type type, const
m_iocbeep(*this , "iocbeep"),
m_ioctimer(*this , "ioctimer"),
m_iocfdc(*this , "iocfdc"),
+ m_flop0(*this, "iocfdc:0"),
+ m_flop1(*this, "iocfdc:1"),
m_iocpio(*this , "iocpio"),
m_kbcpu(*this , "kbcpu"),
m_palette(*this , "palette"),
m_gfxdecode(*this, "gfxdecode"),
- m_floppy0(*this , FLOPPY_0),
m_centronics(*this , "centronics"),
m_io_key0(*this , "KEY0"),
m_io_key1(*this , "KEY1"),
@@ -551,6 +552,17 @@ I8275_DRAW_CHARACTER_MEMBER(imds2_state::crtc_display_pixels)
}
}
+int imds2_state::floppy_load(floppy_image_device *dev)
+{
+ dev->mon_w(0);
+ return IMAGE_INIT_PASS;
+}
+
+void imds2_state::floppy_unload(floppy_image_device *dev)
+{
+ dev->mon_w(1);
+}
+
void imds2_state::driver_start()
{
// Allocate 64k for IPC RAM
@@ -566,8 +578,11 @@ void imds2_state::driver_start()
void imds2_state::machine_start()
{
- m_floppy0->floppy_mon_w(0);
- m_floppy0->floppy_drive_set_ready_state(1 , 0);
+ // As far as I can tell from the schmatic, there's no software motor control
+ m_flop0->get_device()->setup_load_cb(floppy_image_device::load_cb(FUNC(imds2_state::floppy_load), this));
+ m_flop0->get_device()->setup_unload_cb(floppy_image_device::unload_cb(FUNC(imds2_state::floppy_unload), this));
+ m_flop1->get_device()->setup_load_cb(floppy_image_device::load_cb(FUNC(imds2_state::floppy_load), this));
+ m_flop1->get_device()->setup_unload_cb(floppy_image_device::unload_cb(FUNC(imds2_state::floppy_unload), this));
}
void imds2_state::video_start()
@@ -580,6 +595,10 @@ void imds2_state::machine_reset()
m_iocbeep->set_frequency(IOC_BEEP_FREQ);
m_ipc_control = 0x00;
m_ipc_ioc_status = 0x0f;
+ m_flop0->get_device()->mon_w(!m_flop0->get_device()->exists());
+ m_flop1->get_device()->mon_w(!m_flop1->get_device()->exists());
+
+ m_iocfdc->set_rate(500000); // The IMD images show a rate of 500kbps
}
bool imds2_state::imds2_in_ipc_rom(offs_t offset) const
@@ -737,15 +756,9 @@ static GFXDECODE_START(imds2)
GFXDECODE_ENTRY("gfx1" , 0x0000 , imds2_charlayout , 0 , 1)
GFXDECODE_END
-static LEGACY_FLOPPY_OPTIONS_START(imds2)
-LEGACY_FLOPPY_OPTIONS_END
-
-static const floppy_interface imds2_floppy_interface =
-{
- FLOPPY_STANDARD_8_SSSD,
- LEGACY_FLOPPY_OPTIONS_NAME(imds2),
- "floppy_8"
-};
+static SLOT_INTERFACE_START( imds2_floppies )
+ SLOT_INTERFACE( "8sssd", FLOPPY_8_SSSD )
+SLOT_INTERFACE_END
static MACHINE_CONFIG_START(imds2 , imds2_state)
MCFG_CPU_ADD("ipccpu" , I8085A , IPC_XTAL_Y2 / 2) // 4 MHz
@@ -805,8 +818,8 @@ static MACHINE_CONFIG_START(imds2 , imds2_state)
MCFG_I8257_OUT_HRQ_CB(WRITELINE(imds2_state, imds2_hrq_w))
MCFG_I8257_IN_MEMR_CB(READ8(imds2_state , imds2_ioc_mem_r))
MCFG_I8257_OUT_MEMW_CB(WRITE8(imds2_state , imds2_ioc_mem_w))
- MCFG_I8257_IN_IOR_1_CB(DEVREAD8("iocfdc" , i8271_device , dack_r))
- MCFG_I8257_OUT_IOW_1_CB(DEVWRITE8("iocfdc" , i8271_device , dack_w))
+ MCFG_I8257_IN_IOR_1_CB(DEVREAD8("iocfdc" , i8271_device , data_r))
+ MCFG_I8257_OUT_IOW_1_CB(DEVWRITE8("iocfdc" , i8271_device , data_w))
MCFG_I8257_OUT_IOW_2_CB(DEVWRITE8("ioccrtc" , i8275_device , dack_w))
MCFG_DEVICE_ADD("ioctimer" , PIT8253 , 0)
@@ -816,9 +829,8 @@ static MACHINE_CONFIG_START(imds2 , imds2_state)
MCFG_DEVICE_ADD("iocfdc" , I8271 , IOC_XTAL_Y1 / 2)
MCFG_I8271_DRQ_CALLBACK(DEVWRITELINE("iocdma" , i8257_device , dreq1_w))
- MCFG_I8271_FLOPPIES(FLOPPY_0 , FLOPPY_1)
-
- MCFG_LEGACY_FLOPPY_DRIVE_ADD(FLOPPY_0, imds2_floppy_interface)
+ MCFG_FLOPPY_DRIVE_ADD("iocfdc:0", imds2_floppies, "8sssd", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD("iocfdc:1", imds2_floppies, "8sssd", floppy_image_device::default_floppy_formats)
MCFG_CPU_ADD("iocpio" , I8041 , IOC_XTAL_Y3)
MCFG_CPU_IO_MAP(pio_io_map)
diff --git a/src/mame/drivers/imolagp.c b/src/mame/drivers/imolagp.c
index 4a735828a8c..57fba25c257 100644
--- a/src/mame/drivers/imolagp.c
+++ b/src/mame/drivers/imolagp.c
@@ -571,5 +571,5 @@ 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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_COLORS | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE, layout_imolagp ) // "
+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 ) // "
diff --git a/src/mess/drivers/imsai.c b/src/mame/drivers/imsai.c
index 2fb469a363f..60dca210781 100644
--- a/src/mess/drivers/imsai.c
+++ b/src/mame/drivers/imsai.c
@@ -139,4 +139,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND_HW )
+COMP( 1978, imsai, 0, 0, imsai, imsai, driver_device, 0, "Imsai", "MPU-B", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW )
diff --git a/src/mame/drivers/inder.c b/src/mame/drivers/inder.c
index 61c3190d62a..50de5937fbe 100644
--- a/src/mame/drivers/inder.c
+++ b/src/mame/drivers/inder.c
@@ -1621,21 +1621,21 @@ ROM_END
// old cpu board, 6 digits, sn76489
-GAME(1985, brvteam, 0, brvteam, brvteam, driver_device, 0, ROT0, "Inder", "Brave Team", GAME_MECHANICAL)
+GAME(1985, brvteam, 0, brvteam, brvteam, driver_device, 0, ROT0, "Inder", "Brave Team", MACHINE_MECHANICAL)
// old cpu board, 7 digits, ay8910
-GAME(1986, canasta, 0, canasta, canasta, driver_device, 0, ROT0, "Inder", "Canasta '86'", GAME_MECHANICAL)
+GAME(1986, canasta, 0, canasta, canasta, driver_device, 0, ROT0, "Inder", "Canasta '86'", MACHINE_MECHANICAL)
// old cpu board, 7 digits, sound cpu with 2x ay8910
-GAME(1986, lapbylap, 0, lapbylap, lapbylap, driver_device, 0, ROT0, "Inder", "Lap By Lap", GAME_MECHANICAL)
+GAME(1986, lapbylap, 0, lapbylap, lapbylap, driver_device, 0, ROT0, "Inder", "Lap By Lap", MACHINE_MECHANICAL)
// new cpu board, sound board with msm5205
-GAME(1987, pinmoonl, 0, inder, pinmoonl, inder_state, inder, ROT0, "Inder", "Moon Light (Inder)", GAME_MECHANICAL)
-GAME(1988, pinclown, 0, inder, pinclown, inder_state, inder1, ROT0, "Inder", "Clown (Inder)", GAME_MECHANICAL)
-GAME(1989, corsario, 0, inder, corsario, inder_state, inder1, ROT0, "Inder", "Corsario", GAME_MECHANICAL)
-GAME(1990, mundial, 0, inder, mundial, inder_state, inder1, ROT0, "Inder", "Mundial 90", GAME_MECHANICAL)
-GAME(1991, atleta, 0, inder, atleta, inder_state, inder1, ROT0, "Inder", "Atleta", GAME_MECHANICAL)
-GAME(1992, ind250cc, 0, inder, ind250cc, inder_state, inder1, ROT0, "Inder", "250 CC", GAME_MECHANICAL)
+GAME(1987, pinmoonl, 0, inder, pinmoonl, inder_state, inder, ROT0, "Inder", "Moon Light (Inder)", MACHINE_MECHANICAL)
+GAME(1988, pinclown, 0, inder, pinclown, inder_state, inder1, ROT0, "Inder", "Clown (Inder)", MACHINE_MECHANICAL)
+GAME(1989, corsario, 0, inder, corsario, inder_state, inder1, ROT0, "Inder", "Corsario", MACHINE_MECHANICAL)
+GAME(1990, mundial, 0, inder, mundial, inder_state, inder1, ROT0, "Inder", "Mundial 90", MACHINE_MECHANICAL)
+GAME(1991, atleta, 0, inder, atleta, inder_state, inder1, ROT0, "Inder", "Atleta", MACHINE_MECHANICAL)
+GAME(1992, ind250cc, 0, inder, ind250cc, inder_state, inder1, ROT0, "Inder", "250 CC", MACHINE_MECHANICAL)
// new cpu board, later revision of msm5205 sound board
-GAME(1992, metalman, 0, inder, metalman, inder_state, inder, ROT0, "Inder", "Metal Man", GAME_IS_SKELETON_MECHANICAL)
+GAME(1992, metalman, 0, inder, metalman, inder_state, inder, ROT0, "Inder", "Metal Man", MACHINE_IS_SKELETON_MECHANICAL)
diff --git a/src/mess/drivers/indiana.c b/src/mame/drivers/indiana.c
index 4f183075057..23e08a8bb81 100644
--- a/src/mess/drivers/indiana.c
+++ b/src/mame/drivers/indiana.c
@@ -119,4 +119,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+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/mess/drivers/instruct.c b/src/mame/drivers/instruct.c
index ae806290293..ae806290293 100644
--- a/src/mess/drivers/instruct.c
+++ b/src/mame/drivers/instruct.c
diff --git a/src/mess/drivers/interact.c b/src/mame/drivers/interact.c
index 893bdf866ba..31a7cf195f2 100644
--- a/src/mess/drivers/interact.c
+++ b/src/mame/drivers/interact.c
@@ -295,5 +295,5 @@ 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", GAME_IMPERFECT_SOUND)
-COMP(1983, hector1, interact, 0, hector1, interact, driver_device, 0, "Micronique", "Hector 1", GAME_IMPERFECT_SOUND)
+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)
diff --git a/src/mame/drivers/intrscti.c b/src/mame/drivers/intrscti.c
index 1c48ff75d21..f918af988d5 100644
--- a/src/mame/drivers/intrscti.c
+++ b/src/mame/drivers/intrscti.c
@@ -236,4 +236,4 @@ DRIVER_INIT_MEMBER(intrscti_state,intrscti)
}
}
-GAME( 19??, intrscti, 0, intrscti, intrscti, intrscti_state, intrscti, ROT0, "<unknown>", "Intersecti", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_NO_SOUND )
+GAME( 19??, intrscti, 0, intrscti, intrscti, intrscti_state, intrscti, ROT0, "<unknown>", "Intersecti", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_NO_SOUND )
diff --git a/src/mess/drivers/intv.c b/src/mame/drivers/intv.c
index 563bc1b8c0a..023cd6fcc36 100644
--- a/src/mess/drivers/intv.c
+++ b/src/mame/drivers/intv.c
@@ -742,11 +742,11 @@ DRIVER_INIT_MEMBER(intv_state,intvkbd)
***************************************************************************/
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
-CONS( 1979, intv, 0, 0, intv, intv, intv_state, intv, "Mattel", "Intellivision", GAME_SUPPORTS_SAVE )
-CONS( 1981, intvsrs, intv, 0, intv, intv, intv_state, intv, "Sears", "Super Video Arcade", GAME_SUPPORTS_SAVE )
-COMP( 1981, intvkbd, intv, 0, intvkbd, intvkbd, intv_state, intvkbd, "Mattel", "Intellivision Keyboard Component (Unreleased)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-CONS( 1982, intv2, intv, 0, intv2, intv, intv_state, intv, "Mattel", "Intellivision II", GAME_SUPPORTS_SAVE )
+CONS( 1979, intv, 0, 0, intv, intv, intv_state, intv, "Mattel", "Intellivision", MACHINE_SUPPORTS_SAVE )
+CONS( 1981, intvsrs, intv, 0, intv, intv, 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 )
+CONS( 1982, intv2, intv, 0, intv2, intv, intv_state, intv, "Mattel", "Intellivision II", MACHINE_SUPPORTS_SAVE )
// made up, user friendlier machines with pre-mounted passthu expansions
-COMP( 1982, intvoice, intv, 0, intvoice, intv, intv_state, intv, "Mattel", "Intellivision w/IntelliVoice expansion", GAME_SUPPORTS_SAVE )
-COMP( 1983, intvecs, intv, 0, intvecs, intv, intv_state, intv, "Mattel", "Intellivision w/Entertainment Computer System + Intellivoice expansions", GAME_SUPPORTS_SAVE )
+COMP( 1982, intvoice, intv, 0, intvoice, intv, intv_state, intv, "Mattel", "Intellivision w/IntelliVoice expansion", MACHINE_SUPPORTS_SAVE )
+COMP( 1983, intvecs, intv, 0, intvecs, intv, intv_state, intv, "Mattel", "Intellivision w/Entertainment Computer System + Intellivoice expansions", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/inufuku.c b/src/mame/drivers/inufuku.c
index d93795c8591..dcbb74bd400 100644
--- a/src/mame/drivers/inufuku.c
+++ b/src/mame/drivers/inufuku.c
@@ -488,5 +488,5 @@ ROM_END
******************************************************************************/
-GAME( 1998, inufuku, 0, inufuku, inufuku, driver_device, 0, ROT0, "Video System Co.", "Quiz & Variety Sukusuku Inufuku (Japan)", GAME_NO_COCKTAIL | GAME_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)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS ) // tilemap priority is wrong in places (basketball before explosion in attract, highscores)
+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)
diff --git a/src/mame/drivers/invqix.c b/src/mame/drivers/invqix.c
index 90cdf22fd3d..55d180c0b99 100644
--- a/src/mame/drivers/invqix.c
+++ b/src/mame/drivers/invqix.c
@@ -362,4 +362,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)", GAME_SUPPORTS_SAVE )
+GAME( 2003, invqix, 0, invqix, invqix, driver_device, 0, ROT270, "Taito / Namco", "Space Invaders / Qix Silver Anniversary Edition (Ver. 2.03)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/ip20.c b/src/mame/drivers/ip20.c
index 8cfb7b0bebe..b03fb978c78 100644
--- a/src/mess/drivers/ip20.c
+++ b/src/mame/drivers/ip20.c
@@ -629,4 +629,4 @@ ROM_START( ip204415 )
ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
-COMP( 1993, ip204415, 0, 0, ip204415, ip204415, ip20_state, ip204415, "Silicon Graphics Inc", "IRIS Indigo (R4400, 150MHz)", GAME_NOT_WORKING | GAME_NO_SOUND )
+COMP( 1993, ip204415, 0, 0, ip204415, ip204415, ip20_state, ip204415, "Silicon Graphics Inc", "IRIS Indigo (R4400, 150MHz)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mess/drivers/ip22.c b/src/mame/drivers/ip22.c
index 3ca0cd1abfe..2ea0ea03fd6 100644
--- a/src/mess/drivers/ip22.c
+++ b/src/mame/drivers/ip22.c
@@ -1670,6 +1670,6 @@ ROM_START( ip244415 )
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)", GAME_NOT_WORKING )
-COMP( 1993, ip224613, 0, 0, ip224613, ip225015, ip22_state, ip225015, "Silicon Graphics Inc", "Indy (R4600, 133MHz)", GAME_NOT_WORKING )
-COMP( 1994, ip244415, 0, 0, ip244415, ip225015, ip22_state, ip225015, "Silicon Graphics Inc", "Indigo2 (R4400, 150MHz)", GAME_NOT_WORKING )
+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/mess/drivers/ipc.c b/src/mame/drivers/ipc.c
index 6d4ff45c8c5..672b3b1c354 100644
--- a/src/mess/drivers/ipc.c
+++ b/src/mame/drivers/ipc.c
@@ -136,5 +136,5 @@ 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", GAME_NO_SOUND)
-COMP( 19??, ipc, ipb, 0, ipc, ipc, driver_device, 0, "Intel", "iPC", GAME_NOT_WORKING | GAME_NO_SOUND)
+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)
diff --git a/src/mess/drivers/ipds.c b/src/mame/drivers/ipds.c
index 91674996ec9..4b25d00bebc 100644
--- a/src/mess/drivers/ipds.c
+++ b/src/mame/drivers/ipds.c
@@ -165,4 +165,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1982, ipds, 0, 0, ipds, ipds, driver_device, 0, "Intel", "iPDS", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/iq151.c b/src/mame/drivers/iq151.c
index f6acd08bdd4..f6acd08bdd4 100644
--- a/src/mess/drivers/iq151.c
+++ b/src/mame/drivers/iq151.c
diff --git a/src/mame/drivers/iqblock.c b/src/mame/drivers/iqblock.c
index 9f3240f8097..0eca3938257 100644
--- a/src/mame/drivers/iqblock.c
+++ b/src/mame/drivers/iqblock.c
@@ -533,5 +533,5 @@ DRIVER_INIT_MEMBER(iqblock_state,grndtour)
-GAME( 1993, iqblock, 0, iqblock, iqblock, iqblock_state, iqblock, ROT0, "IGS", "IQ-Block", GAME_SUPPORTS_SAVE )
-GAME( 1993, grndtour, 0, iqblock, grndtour,iqblock_state, grndtour, ROT0, "IGS", "Grand Tour", GAME_SUPPORTS_SAVE )
+GAME( 1993, iqblock, 0, iqblock, iqblock, iqblock_state, iqblock, ROT0, "IGS", "IQ-Block", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, grndtour, 0, iqblock, grndtour,iqblock_state, grndtour, ROT0, "IGS", "Grand Tour", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/irisha.c b/src/mame/drivers/irisha.c
index 092d6b29a0f..be633aa7bce 100644
--- a/src/mess/drivers/irisha.c
+++ b/src/mame/drivers/irisha.c
@@ -438,4 +438,4 @@ 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", GAME_NOT_WORKING)
+COMP( 1983, irisha, 0, 0, irisha, irisha, driver_device, 0, "MGU", "Irisha", MACHINE_NOT_WORKING)
diff --git a/src/mame/drivers/ironhors.c b/src/mame/drivers/ironhors.c
index 03081a78b6e..0d5ea8c8c38 100644
--- a/src/mame/drivers/ironhors.c
+++ b/src/mame/drivers/ironhors.c
@@ -527,6 +527,6 @@ ROM_END
*
*************************************/
-GAME( 1986, ironhors, 0, ironhors, ironhors, driver_device, 0, ROT0, "Konami", "Iron Horse", GAME_SUPPORTS_SAVE )
-GAME( 1986, dairesya, ironhors, ironhors, dairesya, driver_device, 0, ROT0, "Konami (Kawakusu license)", "Dai Ressya Goutou (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1986, farwest, ironhors, farwest, ironhors, driver_device, 0, ROT0, "bootleg?", "Far West", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/isbc.c b/src/mame/drivers/isbc.c
index 756dd556737..d7a9ba149e0 100644
--- a/src/mess/drivers/isbc.c
+++ b/src/mame/drivers/isbc.c
@@ -361,7 +361,7 @@ 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",GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 1978, isbc86, 0, 0, isbc86, isbc, driver_device, 0, "Intel", "iSBC 86/12A",GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 19??, isbc286, 0, 0, isbc286, isbc, driver_device, 0, "Intel", "iSBC 286",GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 1983, isbc2861, 0, 0, isbc2861, isbc, driver_device, 0, "Intel", "iSBC 286/10",GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 19??, rpc86, 0, 0, rpc86, isbc, driver_device, 0, "Intel", "RPC 86",MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
+COMP( 1978, isbc86, 0, 0, isbc86, isbc, driver_device, 0, "Intel", "iSBC 86/12A",MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
+COMP( 19??, isbc286, 0, 0, isbc286, isbc, driver_device, 0, "Intel", "iSBC 286",MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
+COMP( 1983, isbc2861, 0, 0, isbc2861, isbc, driver_device, 0, "Intel", "iSBC 286/10",MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/iskr103x.c b/src/mame/drivers/iskr103x.c
index 95ed4fe7117..31aae050f61 100644
--- a/src/mess/drivers/iskr103x.c
+++ b/src/mame/drivers/iskr103x.c
@@ -142,5 +142,5 @@ ROM_END
***************************************************************************/
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
-COMP ( 1989, iskr1030m, ibm5150, 0, iskr1030m, iskr1030m, driver_device, 0, "Schetmash", "Iskra 1030M", GAME_NOT_WORKING)
+COMP ( 1989, iskr1030m, ibm5150, 0, iskr1030m, iskr1030m, driver_device, 0, "Schetmash", "Iskra 1030M", MACHINE_NOT_WORKING)
COMP ( 1989, iskr1031, ibm5150, 0, iskr1031, iskr1031, driver_device, 0, "<unknown>", "Iskra 1031", 0)
diff --git a/src/mame/drivers/istellar.c b/src/mame/drivers/istellar.c
index 616ff35185a..3c47a543680 100644
--- a/src/mame/drivers/istellar.c
+++ b/src/mame/drivers/istellar.c
@@ -434,4 +434,4 @@ DRIVER_INIT_MEMBER(istellar_state,istellar)
}
/* 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", GAME_NOT_WORKING|GAME_NO_SOUND)
+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/iteagle.c b/src/mame/drivers/iteagle.c
index f8eedcebe80..d277082c207 100644
--- a/src/mame/drivers/iteagle.c
+++ b/src/mame/drivers/iteagle.c
@@ -7,18 +7,18 @@
by Ted Green & R. Belmont
Known games on this hardware and their security chip IDs:
+ * ITVP-1 (c) 1998 Virtual Pool
* E2-LED0 (c) 2000 Golden Tee Fore!
* E2-BBH0 (c) 2000 Big Buck Hunter
* G42-US-U (c) 2001 Golden Tee Fore! 2002
* BB15-US (c) 2002 Big Buck Hunter: Shooter's Challenge (AKA Big Buck Hunter v1.5)
* BBH2-US (c) 2002 Big Buck Hunter II: Sportsman's Paradise
- * CK1-US (C) 2002 Carnival King
+ * CK1-US (c) 2002 Carnival King
* G43-US-U (c) 2002 Golden Tee Fore! 2003
* G44-US-U (c) 2003 Golden Tee Fore! 2004
* G45-US-U (c) 2004 Golden Tee Fore! 2005
* CW-US-U (c) 2005 Big Buck Hunter: Call of the Wild
* G4C-US-U (c) 2006 Golden Tee Complete
- * ???????? (c) ???? Virtual Pool (not on IT's website master list but known to exist)
Valid regions: US = USA, CAN = Canada, ENG = England, EUR = Euro, SWD = Sweden, AUS = Australia, NZ = New Zealand, SA = South Africa
@@ -246,7 +246,7 @@ static MACHINE_CONFIG_DERIVED( virtpool, iteagle )
MCFG_VOODOO_PCI_FBMEM(4)
MCFG_VOODOO_PCI_TMUMEM(4, 4)
MCFG_DEVICE_MODIFY(PCI_ID_FPGA)
- MCFG_ITEAGLE_FPGA_INIT(0x01000202, 0x0c0b0d)
+ MCFG_ITEAGLE_FPGA_INIT(0x01000202, 0x080808)
MCFG_DEVICE_MODIFY(PCI_ID_EEPROM)
MCFG_ITEAGLE_EEPROM_INIT(0x0202, 0x7)
MACHINE_CONFIG_END
@@ -555,9 +555,9 @@ ROM_END
*
*************************************/
-GAME( 2000, iteagle, 0, iteagle, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Eagle BIOS", GAME_IS_BIOS_ROOT )
-GAME( 1998, virtpool, iteagle, virtpool, virtpool, driver_device, 0, ROT0, "Incredible Technologies", "Virtual Pool", GAME_NOT_WORKING )
-GAME( 2002, carnking, iteagle, carnking, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Carnival King (v1.00.11)", GAME_NOT_WORKING )
+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", 0 )
+GAME( 2002, carnking, iteagle, carnking, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Carnival King (v1.00.11)", MACHINE_NOT_WORKING )
GAME( 2000, gtfore01, iteagle, gtfore01, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! (v1.00.25)", 0 )
GAME( 2001, gtfore02, iteagle, gtfore02, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! 2002 (v2.01.06)", 0 )
GAME( 2002, gtfore03, iteagle, gtfore03, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! 2003 (v3.00.10)", 0 )
@@ -569,5 +569,5 @@ GAME( 2004, gtfore05a, gtfore05, gtfore05, iteagle, driver_device, 0, ROT0, "I
GAME( 2004, gtfore05b, gtfore05, gtfore05, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! 2005 Extra (v5.01.00)", 0 )
GAME( 2004, gtfore05c, gtfore05, gtfore05, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! 2005 Extra (v5.00.00)", 0 )
GAME( 2005, gtfore06, iteagle, gtfore06, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! 2006 Complete (v6.00.01)", 0 )
-GAME( 2002, bbhsc, iteagle, bbhsc, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Big Buck Hunter - Shooter's Challenge (v1.50.07)", GAME_NOT_WORKING )
+GAME( 2002, bbhsc, iteagle, bbhsc, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Big Buck Hunter - Shooter's Challenge (v1.50.07)", MACHINE_NOT_WORKING )
GAME( 2006, bbhcotw, iteagle, bbhcotw, bbhcotw, driver_device, 0, ROT0, "Incredible Technologies", "Big Buck Hunter Call of the Wild (v3.02.5)", 0 )
diff --git a/src/mame/drivers/itech32.c b/src/mame/drivers/itech32.c
index 4eae09c985a..fc7e178745f 100644
--- a/src/mame/drivers/itech32.c
+++ b/src/mame/drivers/itech32.c
@@ -4461,7 +4461,7 @@ GAME( 1994, pairs, 0, bloodstm, pairs, itech32_state, bloodstm,
GAME( 1994, pairsa, pairs, bloodstm, pairs, itech32_state, bloodstm, ROT0, "Strata/Incredible Technologies", "Pairs (09/07/94)", 0 )
GAME( 1994, hotmemry, pairs, bloodstm, pairs, itech32_state, bloodstm, ROT0, "Incredible Technologies (Tuning license)", "Hot Memory (V1.2, Germany, 12/28/94)", 0 )
GAME( 1994, hotmemry11, pairs, bloodstm, pairs, itech32_state, bloodstm, ROT0, "Incredible Technologies (Tuning license)", "Hot Memory (V1.1, Germany, 11/30/94)", 0 )
-GAME( 1994, drivedge, 0, drivedge, drivedge, itech32_state, drivedge, ROT0, "Strata/Incredible Technologies", "Driver's Edge", GAME_IMPERFECT_GRAPHICS )
+GAME( 1994, drivedge, 0, drivedge, drivedge, itech32_state, drivedge, ROT0, "Strata/Incredible Technologies", "Driver's Edge", MACHINE_IMPERFECT_GRAPHICS )
GAME( 1995, wcbowl, 0, sftm, wcbowln, itech32_state, wcbowln, ROT0, "Incredible Technologies", "World Class Bowling (v1.66)" , 0) /* PIC 16C54 labeled as ITBWL-3 */
GAME( 1995, wcbowl165, wcbowl, sftm, wcbowlo, itech32_state, wcbowln, ROT0, "Incredible Technologies", "World Class Bowling (v1.65)" , 0) /* PIC 16C54 labeled as ITBWL-3 */
GAME( 1995, wcbowl161, wcbowl, sftm, wcbowlo, itech32_state, wcbowln, ROT0, "Incredible Technologies", "World Class Bowling (v1.61)" , 0) /* PIC 16C54 labeled as ITBWL-3 */
diff --git a/src/mame/drivers/itech8.c b/src/mame/drivers/itech8.c
index ee99b07888e..4c275d7ceb8 100644
--- a/src/mame/drivers/itech8.c
+++ b/src/mame/drivers/itech8.c
@@ -504,7 +504,6 @@
#include "machine/6821pia.h"
#include "machine/6522via.h"
#include "machine/nvram.h"
-#include "machine/ticket.h"
#include "includes/itech8.h"
#include "sound/2203intf.h"
#include "sound/2608intf.h"
@@ -519,6 +518,8 @@
+IOPORT_ARRAY_MEMBER(itech8_state::analog_inputs) { "AN_C", "AN_D", "AN_E", "AN_F" };
+
/*************************************
*
* Interrupt handling
@@ -597,7 +598,7 @@ MACHINE_START_MEMBER(itech8_state,sstrike)
/* we need to update behind the beam as well */
m_behind_beam_update_timer = timer_alloc(TIMER_BEHIND_BEAM_UPDATE);
m_behind_beam_update_timer->adjust(m_screen->time_until_pos(0), 32);
-
+
itech8_state::machine_start();
}
@@ -605,7 +606,7 @@ void itech8_state::machine_start()
{
if (membank("bank1"))
membank("bank1")->configure_entries(0, 2, memregion("maincpu")->base() + 0x4000, 0xc000);
-
+
m_irq_off_timer = timer_alloc(TIMER_IRQ_OFF);
m_delayed_sound_data_timer = timer_alloc(TIMER_DELAYED_SOUND_DATA);
m_blitter_done_timer = timer_alloc(TIMER_BLITTER_DONE);
@@ -747,7 +748,7 @@ WRITE8_MEMBER(itech8_state::pia_portb_out)
/* bit 5 controls the coin counter */
/* bit 6 controls the diagnostic sound LED */
m_pia_portb_data = data;
- machine().device<ticket_dispenser_device>("ticket")->write(space, 0, (data & 0x10) << 3);
+ m_ticket->write(space, 0, (data & 0x10) << 3);
coin_counter_w(machine(), 0, (data & 0x20) >> 5);
}
@@ -761,7 +762,7 @@ WRITE8_MEMBER(itech8_state::ym2203_portb_out)
/* bit 6 controls the diagnostic sound LED */
/* bit 7 controls the ticket dispenser */
m_pia_portb_data = data;
- machine().device<ticket_dispenser_device>("ticket")->write(machine().driver_data()->generic_space(), 0, data & 0x80);
+ m_ticket->write(machine().driver_data()->generic_space(), 0, data & 0x80);
coin_counter_w(machine(), 0, (data & 0x20) >> 5);
}
@@ -2611,7 +2612,7 @@ DRIVER_INIT_MEMBER(itech8_state,grmatch)
m_maincpu->space(AS_PROGRAM).install_write_handler(0x0160, 0x0160, write8_delegate(FUNC(itech8_state::grmatch_palette_w),this));
m_maincpu->space(AS_PROGRAM).install_write_handler(0x0180, 0x0180, write8_delegate(FUNC(itech8_state::grmatch_xscroll_w),this));
m_maincpu->space(AS_PROGRAM).unmap_write(0x01e0, 0x01ff);
-
+
save_item(NAME(m_grmatch_palcontrol));
save_item(NAME(m_grmatch_xscroll));
save_item(NAME(m_grmatch_palette));
@@ -2623,9 +2624,9 @@ DRIVER_INIT_MEMBER(itech8_state,slikshot)
m_maincpu->space(AS_PROGRAM).install_read_handler (0x0180, 0x0180, read8_delegate(FUNC(itech8_state::slikshot_z80_r),this));
m_maincpu->space(AS_PROGRAM).install_read_handler (0x01cf, 0x01cf, read8_delegate(FUNC(itech8_state::slikshot_z80_control_r),this));
m_maincpu->space(AS_PROGRAM).install_write_handler(0x01cf, 0x01cf, write8_delegate(FUNC(itech8_state::slikshot_z80_control_w),this));
-
+
m_delayed_z80_control_timer = timer_alloc(TIMER_DELAYED_Z80_CONTROL);
-
+
save_item(NAME(m_z80_ctrl));
save_item(NAME(m_z80_port_val));
save_item(NAME(m_z80_clear_to_send));
@@ -2717,11 +2718,11 @@ GAME( 1989, gtg2t, gtg2, stratab_hi, gtg2t, driver_device, 0,
GAME( 1991, gtg2j, gtg2, stratab_lo, gtg, driver_device, 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)", GAME_MECHANICAL )
-GAME( 1990, slikshot17,slikshot, slikshot_hi, slikshot, itech8_state, slikshot, ROT90, "Grand Products/Incredible Technologies", "Slick Shot (V1.7)", GAME_MECHANICAL )
-GAME( 1990, slikshot16,slikshot, slikshot_hi, slikshot, itech8_state, slikshot, ROT90, "Grand Products/Incredible Technologies", "Slick Shot (V1.6)", GAME_MECHANICAL )
-GAME( 1990, dynobop, 0, slikshot_hi, dynobop, itech8_state, slikshot, ROT90, "Grand Products/Incredible Technologies", "Dyno Bop", GAME_MECHANICAL )
-GAME( 1990, sstrike, 0, sstrike, sstrike, itech8_state, sstrike, ROT270, "Strata/Incredible Technologies", "Super Strike Bowling", GAME_MECHANICAL )
+GAME( 1990, slikshot, 0, slikshot_hi, slikshot, itech8_state, slikshot, ROT90, "Grand Products/Incredible Technologies", "Slick Shot (V2.2)", MACHINE_MECHANICAL )
+GAME( 1990, slikshot17,slikshot, slikshot_hi, slikshot, itech8_state, slikshot, ROT90, "Grand Products/Incredible Technologies", "Slick Shot (V1.7)", MACHINE_MECHANICAL )
+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", 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 )
/* Hot Shots Tennis-style PCB */
diff --git a/src/mame/drivers/itgambl2.c b/src/mame/drivers/itgambl2.c
index f31265030aa..196d8f8a775 100644
--- a/src/mame/drivers/itgambl2.c
+++ b/src/mame/drivers/itgambl2.c
@@ -957,20 +957,20 @@ ROM_END
*************************/
/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS */
-GAME( 1999, ntcash, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "<unknown>", "NtCash", GAME_IS_SKELETON )
-GAME( 1999, wizard, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "A.A.", "Wizard (Ver 1.0)", GAME_IS_SKELETON )
-GAME( 200?, trstar2k, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "A.M.", "Triple Star 2000", GAME_IS_SKELETON )
-GAME( 2001, laser2k1, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "<unknown>", "Laser 2001 (Ver 1.2)", GAME_IS_SKELETON )
-GAME( 2001, mdrink, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "<unknown>", "Magic Drink (Ver 1.2)", GAME_IS_SKELETON )
-GAME( 2001, te0144, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "<unknown>", "Puzzle Bobble (Italian Gambling Game)", GAME_IS_SKELETON )
-GAME( 200?, cmagica, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "<unknown>", "Carta Magica (Ver 1.8)", GAME_IS_SKELETON )
-GAME( 200?, millsun, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "<unknown>", "Millennium Sun", GAME_IS_SKELETON )
-GAME( 200?, sspac2k1, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "<unknown>", "Super Space 2001", GAME_IS_SKELETON )
-GAME( 200?, elvis, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "<unknown>", "Elvis?", GAME_IS_SKELETON )
-GAME( 200?, sstar, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "<unknown>", "Super Star", GAME_IS_SKELETON )
-GAME( 2001, pirati, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "Cin", "Pirati", GAME_IS_SKELETON )
-GAME( 200?, mnumitg, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "<unknown>", "Magic Number (Italian Gambling Game, Ver 1.5)", GAME_IS_SKELETON )
-GAME( 200?, mclass, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "<unknown>", "Magic Class (Ver 2.2)", GAME_IS_SKELETON )
-GAME( 200?, europass, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "<unknown>", "Euro Pass (Ver 1.1)", GAME_IS_SKELETON )
-GAME( 200?, thedrink, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "<unknown>", "The Drink", GAME_IS_SKELETON )
-GAME( 200?, unkh8gam, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "<unknown>", "unknown H8 Italian Gambling game", GAME_IS_SKELETON )
+GAME( 1999, ntcash, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "<unknown>", "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, "<unknown>", "Laser 2001 (Ver 1.2)", MACHINE_IS_SKELETON )
+GAME( 2001, mdrink, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "<unknown>", "Magic Drink (Ver 1.2)", MACHINE_IS_SKELETON )
+GAME( 2001, te0144, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "<unknown>", "Puzzle Bobble (Italian Gambling Game)", MACHINE_IS_SKELETON )
+GAME( 200?, cmagica, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "<unknown>", "Carta Magica (Ver 1.8)", MACHINE_IS_SKELETON )
+GAME( 200?, millsun, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "<unknown>", "Millennium Sun", MACHINE_IS_SKELETON )
+GAME( 200?, sspac2k1, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "<unknown>", "Super Space 2001", MACHINE_IS_SKELETON )
+GAME( 200?, elvis, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "<unknown>", "Elvis?", MACHINE_IS_SKELETON )
+GAME( 200?, sstar, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "<unknown>", "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, "<unknown>", "Magic Number (Italian Gambling Game, Ver 1.5)", MACHINE_IS_SKELETON )
+GAME( 200?, mclass, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "<unknown>", "Magic Class (Ver 2.2)", MACHINE_IS_SKELETON )
+GAME( 200?, europass, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "<unknown>", "Euro Pass (Ver 1.1)", MACHINE_IS_SKELETON )
+GAME( 200?, thedrink, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "<unknown>", "The Drink", MACHINE_IS_SKELETON )
+GAME( 200?, unkh8gam, 0, itgambl2, itgambl2, driver_device, 0, ROT0, "<unknown>", "unknown H8 Italian Gambling game", MACHINE_IS_SKELETON )
diff --git a/src/mame/drivers/itgambl3.c b/src/mame/drivers/itgambl3.c
index 5185d5f22fa..64a38b56563 100644
--- a/src/mame/drivers/itgambl3.c
+++ b/src/mame/drivers/itgambl3.c
@@ -514,9 +514,9 @@ ROM_END
*************************/
/* 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", GAME_IS_SKELETON )
-GAME( 200?, grandprx, 0, itgambl3, itgambl3, driver_device, 0, ROT0, "4fun", "Grand Prix", GAME_IS_SKELETON )
-GAME( 200?, supjolly, 0, itgambl3, itgambl3, driver_device, 0, ROT0, "<unknown>", "Super Jolly", GAME_IS_SKELETON )
-GAME( 200?, x5jokers, 0, itgambl3, itgambl3, driver_device, 0, ROT0, "Electronic Projects", "X Five Jokers (Version 1.12)", GAME_IS_SKELETON )
-GAME( 200?, queenotg, 0, itgambl3, itgambl3, driver_device, 0, ROT0, "<unknown>", "Queen of the Games", GAME_IS_SKELETON )
-GAME( 200?, ejollyx9, 0, itgambl3, itgambl3, driver_device, 0, ROT0, "Solar Games", "Euro Jolly X9", GAME_IS_SKELETON )
+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, "<unknown>", "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, "<unknown>", "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 )
diff --git a/src/mame/drivers/itgamble.c b/src/mame/drivers/itgamble.c
index 043963046a6..a6fd9d64781 100644
--- a/src/mame/drivers/itgamble.c
+++ b/src/mame/drivers/itgamble.c
@@ -702,15 +702,15 @@ ROM_END
*************************/
/* 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)", GAME_IS_SKELETON )
-GAME( 2001, capcor, 0, itgamble, itgamble, driver_device, 0, ROT0, "Nazionale Elettronica", "Capitani Coraggiosi (Ver 1.3)", GAME_IS_SKELETON )
-GAME( 2002, laperla, 0, itgamble, itgamble, driver_device, 0, ROT0, "Nazionale Elettronica", "La Perla Nera (Ver 2.0)", GAME_IS_SKELETON )
-GAME( 2001, laperlag, 0, itgamble, itgamble, driver_device, 0, ROT0, "Nazionale Elettronica", "La Perla Nera Gold (Ver 2.0)", GAME_IS_SKELETON )
-GAME( 2001, euro2k2, 0, itgamble, itgamble, driver_device, 0, ROT0, "Nazionale Elettronica", "Europa 2002 (Ver 2.0, set 1)", GAME_IS_SKELETON )
-GAME( 2001, euro2k2a, euro2k2, itgamble, itgamble, driver_device, 0, ROT0, "Nazionale Elettronica", "Europa 2002 (Ver 2.0, set 2)", GAME_IS_SKELETON )
-GAME( 2002, euro2k2s, euro2k2, itgamble, itgamble, driver_device, 0, ROT0, "Nazionale Elettronica", "Europa 2002 Space (Ver 3.0)", GAME_IS_SKELETON )
-GAME( 200?, abacus, 0, itgamble, itgamble, driver_device, 0, ROT0, "<unknown>", "Abacus (Ver 1.0)", GAME_IS_SKELETON )
-GAME( 200?, bookthr, 0, itgamble, itgamble, driver_device, 0, ROT0, "<unknown>", "Book Theatre (Ver 1.2)", GAME_IS_SKELETON )
+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, "<unknown>", "Abacus (Ver 1.0)", MACHINE_IS_SKELETON )
+GAME( 200?, bookthr, 0, itgamble, itgamble, driver_device, 0, ROT0, "<unknown>", "Book Theatre (Ver 1.2)", MACHINE_IS_SKELETON )
/* different hardware */
-GAME( 200?, mnumber, 0, mnumber, itgamble, driver_device, 0, ROT0, "M.M. - B.R.L.", "Mystery Number", GAME_IS_SKELETON )
+GAME( 200?, mnumber, 0, mnumber, itgamble, driver_device, 0, ROT0, "M.M. - B.R.L.", "Mystery Number", MACHINE_IS_SKELETON )
diff --git a/src/mess/drivers/itt3030.c b/src/mame/drivers/itt3030.c
index 9df2e81432b..2a006a84259 100644
--- a/src/mess/drivers/itt3030.c
+++ b/src/mame/drivers/itt3030.c
@@ -816,4 +816,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", GAME_NOT_WORKING | GAME_NO_SOUND )
+COMP( 1982, itt3030, 0, 0, itt3030, itt3030, driver_device, 0, "ITT RFA", "ITT3030", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/jack.c b/src/mame/drivers/jack.c
index 9b5d0132922..c8f3340e2d6 100644
--- a/src/mame/drivers/jack.c
+++ b/src/mame/drivers/jack.c
@@ -186,7 +186,7 @@ static ADDRESS_MAP_START( jack_map, AS_PROGRAM, 8, jack_state )
AM_RANGE(0xb504, 0xb504) AM_READ_PORT("IN2")
AM_RANGE(0xb505, 0xb505) AM_READ_PORT("IN3")
AM_RANGE(0xb506, 0xb507) AM_READWRITE(jack_flipscreen_r, jack_flipscreen_w)
- AM_RANGE(0xb600, 0xb61f) AM_WRITE(jack_paletteram_w) AM_SHARE("palette")
+ AM_RANGE(0xb600, 0xb61f) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xb800, 0xbbff) AM_RAM_WRITE(jack_videoram_w) AM_SHARE("videoram")
AM_RANGE(0xbc00, 0xbfff) AM_RAM_WRITE(jack_colorram_w) AM_SHARE("colorram")
AM_RANGE(0xc000, 0xffff) AM_ROM
@@ -922,7 +922,7 @@ static MACHINE_CONFIG_START( jack, jack_state )
MCFG_GFXDECODE_ADD("gfxdecode", "palette", jack)
MCFG_PALETTE_ADD("palette", 32)
- MCFG_PALETTE_FORMAT(BBGGGRRR)
+ MCFG_PALETTE_FORMAT(BBGGGRRR_inverted)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -979,10 +979,9 @@ static MACHINE_CONFIG_DERIVED( joinem, jack )
MCFG_GFXDECODE_MODIFY("gfxdecode", joinem)
- MCFG_PALETTE_MODIFY("palette")
- MCFG_PALETTE_ENTRIES(0x40)
- MCFG_PALETTE_INIT_OWNER(jack_state,joinem)
- MCFG_PALETTE_FORMAT(BBGGGRRR)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 64)
+ MCFG_PALETTE_INIT_OWNER(jack_state, joinem)
MCFG_VIDEO_START_OVERRIDE(jack_state,joinem)
MACHINE_CONFIG_END
@@ -999,7 +998,7 @@ static MACHINE_CONFIG_DERIVED( unclepoo, joinem )
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
MCFG_PALETTE_MODIFY("palette")
- MCFG_PALETTE_ENTRIES(0x100)
+ MCFG_PALETTE_ENTRIES(256)
MACHINE_CONFIG_END
@@ -1555,18 +1554,18 @@ DRIVER_INIT_MEMBER(jack_state,striv)
*
*************************************/
-GAME( 1982, jack, 0, jack, jack, jack_state, jack, ROT90, "Hara Industries (Cinematronics license)", "Jack the Giantkiller (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1982, jack2, jack, jack, jack2, jack_state, jack, ROT90, "Hara Industries (Cinematronics license)", "Jack the Giantkiller (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1982, jack3, jack, jack, jack3, jack_state, jack, ROT90, "Hara Industries (Cinematronics license)", "Jack the Giantkiller (set 3)", GAME_SUPPORTS_SAVE )
-GAME( 1982, treahunt, jack, treahunt, treahunt, jack_state, treahunt, ROT90, "Hara Industries", "Treasure Hunt", GAME_SUPPORTS_SAVE )
-GAME( 1982, zzyzzyxx, 0, jack, zzyzzyxx, jack_state, zzyzzyxx, ROT90, "Cinematronics / Advanced Microcomputer Systems", "Zzyzzyxx (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1982, zzyzzyxx2, zzyzzyxx, jack, zzyzzyxx, jack_state, zzyzzyxx, ROT90, "Cinematronics / Advanced Microcomputer Systems", "Zzyzzyxx (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1982, brix, zzyzzyxx, jack, zzyzzyxx, jack_state, zzyzzyxx, ROT90, "Cinematronics / Advanced Microcomputer Systems", "Brix", GAME_SUPPORTS_SAVE )
-GAME( 1984, freeze, 0, jack, freeze, jack_state, jack, ROT90, "Cinematronics", "Freeze", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1981, tripool, 0, jack, tripool, jack_state, jack, ROT90, "Noma (Casino Tech license)", "Tri-Pool (Casino Tech)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1981, tripoola, tripool, jack, tripool, jack_state, jack, ROT90, "Noma (Costal Games license)", "Tri-Pool (Costal Games)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1984, sucasino, 0, jack, sucasino, jack_state, jack, ROT90, "Data Amusement", "Super Casino", GAME_SUPPORTS_SAVE )
-GAME( 1985, striv, 0, striv, striv, jack_state, striv, ROT270, "Nova du Canada", "Super Triv", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // Hara Industries PCB
-GAME( 1983, joinem, 0, joinem, joinem, jack_state, zzyzzyxx, ROT90, "Global Corporation", "Joinem", GAME_SUPPORTS_SAVE )
-GAME( 1983, unclepoo, 0, unclepoo, unclepoo, jack_state, zzyzzyxx, ROT90, "Diatec", "Uncle Poo", GAME_SUPPORTS_SAVE ) // based on Joinem?
-GAME( 1983, loverboy, 0, joinem, loverboy, jack_state, loverboy, ROT90, "G.T Enterprise Inc.", "Lover Boy", GAME_SUPPORTS_SAVE )
+GAME( 1982, jack, 0, jack, jack, jack_state, jack, ROT90, "Hara Industries (Cinematronics license)", "Jack the Giantkiller (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, jack2, jack, jack, jack2, jack_state, jack, ROT90, "Hara Industries (Cinematronics license)", "Jack the Giantkiller (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, jack3, jack, jack, jack3, jack_state, jack, ROT90, "Hara Industries (Cinematronics license)", "Jack the Giantkiller (set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, treahunt, jack, treahunt, treahunt, jack_state, treahunt, ROT90, "Hara Industries", "Treasure Hunt", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, zzyzzyxx, 0, jack, zzyzzyxx, jack_state, zzyzzyxx, ROT90, "Cinematronics / Advanced Microcomputer Systems", "Zzyzzyxx (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, zzyzzyxx2, zzyzzyxx, jack, zzyzzyxx, jack_state, zzyzzyxx, ROT90, "Cinematronics / Advanced Microcomputer Systems", "Zzyzzyxx (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, brix, zzyzzyxx, jack, zzyzzyxx, jack_state, zzyzzyxx, ROT90, "Cinematronics / Advanced Microcomputer Systems", "Brix", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, freeze, 0, jack, freeze, jack_state, jack, ROT90, "Cinematronics", "Freeze", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
+GAME( 1981, tripool, 0, jack, tripool, jack_state, jack, ROT90, "Noma (Casino Tech license)", "Tri-Pool (Casino Tech)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1981, tripoola, tripool, jack, tripool, jack_state, jack, ROT90, "Noma (Costal Games license)", "Tri-Pool (Costal Games)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1984, sucasino, 0, jack, sucasino, jack_state, jack, ROT90, "Data Amusement", "Super Casino", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, striv, 0, striv, striv, jack_state, striv, ROT270, "Nova du Canada", "Super Triv", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // Hara Industries PCB
+GAME( 1983, joinem, 0, joinem, joinem, jack_state, zzyzzyxx, ROT90, "Global Corporation", "Joinem", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, unclepoo, 0, unclepoo, unclepoo, jack_state, zzyzzyxx, ROT90, "Diatec", "Uncle Poo", MACHINE_SUPPORTS_SAVE ) // based on Joinem?
+GAME( 1983, loverboy, 0, joinem, loverboy, jack_state, loverboy, ROT90, "G.T Enterprise Inc.", "Lover Boy", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/jackie.c b/src/mame/drivers/jackie.c
index 954a59804a2..2f59c1c42b3 100644
--- a/src/mame/drivers/jackie.c
+++ b/src/mame/drivers/jackie.c
@@ -650,4 +650,4 @@ ROM_START( jackie )
ROM_END
-GAME( 1993, jackie, 0, jackie, jackie, jackie_state, jackie, ROT0, "IGS", "Happy Jackie (v110U)", GAME_SUPPORTS_SAVE )
+GAME( 1993, jackie, 0, jackie, jackie, jackie_state, jackie, ROT0, "IGS", "Happy Jackie (v110U)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/jackpool.c b/src/mame/drivers/jackpool.c
index af845db8c79..350a07fc7b7 100644
--- a/src/mame/drivers/jackpool.c
+++ b/src/mame/drivers/jackpool.c
@@ -315,4 +315,4 @@ DRIVER_INIT_MEMBER(jackpool_state,jackpool)
rom[0x9040/2] = 0x6602;
}
-GAME( 1997, jackpool, 0, jackpool, jackpool, jackpool_state, jackpool, ROT0, "Electronic Projects", "Jackpot Cards / Jackpot Pool (Italy)",GAME_NOT_WORKING )
+GAME( 1997, jackpool, 0, jackpool, jackpool, jackpool_state, jackpool, ROT0, "Electronic Projects", "Jackpot Cards / Jackpot Pool (Italy)",MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/jade.c b/src/mame/drivers/jade.c
index cff387a77f3..1f554d92ad1 100644
--- a/src/mess/drivers/jade.c
+++ b/src/mame/drivers/jade.c
@@ -108,4 +108,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND_HW )
+COMP( 19??, jade, 0, 0, jade, jade, driver_device, 0, "Jade", "JGZ80", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW )
diff --git a/src/mame/drivers/jaguar.c b/src/mame/drivers/jaguar.c
index 0907c5cb362..88650c18b6d 100644
--- a/src/mame/drivers/jaguar.c
+++ b/src/mame/drivers/jaguar.c
@@ -11,8 +11,8 @@
console support originally by Nathan Woods
CoJag Games supported:
- * Area 51 (3 Sets)
- * Maximum Force (2 Sets)
+ * Area 51 (4 Sets)
+ * Maximum Force (3 Sets)
* Area 51/Maximum Force Duo (2 Sets)
* Vicious Circle
* Fishin' Frenzy
@@ -2673,25 +2673,26 @@ DRIVER_INIT_MEMBER(jaguar_state,vcircle)
*
*************************************/
-/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
-CONS( 1993, jaguar, 0, 0, jaguar, jaguar, jaguar_state, jaguar, "Atari", "Jaguar", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
-CONS( 1995, jaguarcd, jaguar, 0, jaguarcd, jaguar, jaguar_state, jaguarcd, "Atari", "Jaguar CD", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
-
-GAME( 1996, area51, 0, cojagr3k, area51, jaguar_state, area51, ROT0, "Atari Games", "Area 51 (R3000)", 0 )
-GAME( 1995, area51t, area51, cojag68k, area51, jaguar_state, area51a, ROT0, "Atari Games (Time Warner license)", "Area 51 (Time Warner license, Oct 17, 1996)", 0 )
-GAME( 1995, area51ta, area51, cojag68k, area51, jaguar_state, area51a, ROT0, "Atari Games (Time Warner license)", "Area 51 (Time Warner license, Nov 15, 1995)", 0 )
-GAME( 1995, area51a, area51, cojag68k, area51, jaguar_state, area51a, ROT0, "Atari Games", "Area 51 (Atari Games license, Oct 25, 1995)", 0 )
-GAME( 1995, fishfren, 0, cojagr3k_rom, fishfren, jaguar_state, fishfren, ROT0, "Time Warner Interactive", "Fishin' Frenzy (prototype)", 0 )
-GAME( 1996, freezeat, 0, cojagr3k_rom, freezeat, jaguar_state, freezeat, ROT0, "Atari Games", "Freeze (Atari) (prototype, English voice, 96/10/25)", 0 )
-GAME( 1996, freezeatjp,freezeat, cojagr3k_rom, freezeat, jaguar_state, freezeat, ROT0, "Atari Games", "Freeze (Atari) (prototype, Japanese voice, 96/10/25)", 0 )
-GAME( 1996, freezeat2, freezeat, cojagr3k_rom, freezeat, jaguar_state, freezeat2,ROT0, "Atari Games", "Freeze (Atari) (prototype, 96/10/18)", 0 )
-GAME( 1996, freezeat3, freezeat, cojagr3k_rom, freezeat, jaguar_state, freezeat3,ROT0, "Atari Games", "Freeze (Atari) (prototype, 96/10/07)", 0 )
-GAME( 1996, freezeat4, freezeat, cojagr3k_rom, freezeat, jaguar_state, freezeat4,ROT0, "Atari Games", "Freeze (Atari) (prototype, 96/10/03)", 0 )
-GAME( 1996, freezeat5, freezeat, cojagr3k_rom, freezeat, jaguar_state, freezeat5,ROT0, "Atari Games", "Freeze (Atari) (prototype, 96/09/20, AMOA-96)", 0 )
-GAME( 1996, freezeat6, freezeat, cojagr3k_rom, freezeat, jaguar_state, freezeat6,ROT0, "Atari Games", "Freeze (Atari) (prototype, 96/09/07, Jamma-96)", 0 )
-GAME( 1996, maxforce, 0, cojagr3k, area51, jaguar_state, maxforce, ROT0, "Atari Games", "Maximum Force v1.05", 0 )
-GAME( 1996, maxf_102, maxforce, cojagr3k, area51, jaguar_state, maxforce, ROT0, "Atari Games", "Maximum Force v1.02", 0 )
-GAME( 1996, maxf_ng, maxforce, cojagr3k, area51, jaguar_state, maxforce, ROT0, "Atari Games", "Maximum Force (No Gore version)", 0 )
-GAME( 1998, area51mx, 0, cojag68k, area51, jaguar_state, area51mx, ROT0, "Atari Games", "Area 51 / Maximum Force Duo v2.0", 0 )
-GAME( 1998, a51mxr3k, area51mx, cojagr3k, area51, jaguar_state, a51mxr3k, ROT0, "Atari Games", "Area 51 / Maximum Force Duo (R3000)", 0 )
-GAME( 1996, vcircle, 0, cojagr3k, vcircle, jaguar_state, vcircle, ROT0, "Atari Games", "Vicious Circle (prototype)", 0 )
+/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
+CONS( 1993, jaguar, 0, 0, jaguar, jaguar, jaguar_state, jaguar, "Atari", "Jaguar", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
+CONS( 1995, jaguarcd, jaguar, 0, jaguarcd, jaguar, jaguar_state, jaguarcd, "Atari", "Jaguar CD", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
+
+/* YEAR NAME PARENT MACHINE INPUT INIT COMPANY FULLNAME */
+GAME( 1996, area51, 0, cojagr3k, area51, jaguar_state, area51, ROT0, "Atari Games", "Area 51 (R3000)", 0 )
+GAME( 1995, area51t, area51, cojag68k, area51, jaguar_state, area51a, ROT0, "Atari Games (Time Warner license)", "Area 51 (Time Warner license, Oct 17, 1996)", 0 )
+GAME( 1995, area51ta, area51, cojag68k, area51, jaguar_state, area51a, ROT0, "Atari Games (Time Warner license)", "Area 51 (Time Warner license, Nov 15, 1995)", 0 )
+GAME( 1995, area51a, area51, cojag68k, area51, jaguar_state, area51a, ROT0, "Atari Games", "Area 51 (Atari Games license, Oct 25, 1995)", 0 )
+GAME( 1995, fishfren, 0, cojagr3k_rom, fishfren, jaguar_state, fishfren, ROT0, "Time Warner Interactive", "Fishin' Frenzy (prototype)", 0 )
+GAME( 1996, freezeat, 0, cojagr3k_rom, freezeat, jaguar_state, freezeat, ROT0, "Atari Games", "Freeze (Atari) (prototype, English voice, 96/10/25)", 0 )
+GAME( 1996, freezeatjp,freezeat, cojagr3k_rom, freezeat, jaguar_state, freezeat, ROT0, "Atari Games", "Freeze (Atari) (prototype, Japanese voice, 96/10/25)", 0 )
+GAME( 1996, freezeat2, freezeat, cojagr3k_rom, freezeat, jaguar_state, freezeat2, ROT0, "Atari Games", "Freeze (Atari) (prototype, 96/10/18)", 0 )
+GAME( 1996, freezeat3, freezeat, cojagr3k_rom, freezeat, jaguar_state, freezeat3, ROT0, "Atari Games", "Freeze (Atari) (prototype, 96/10/07)", 0 )
+GAME( 1996, freezeat4, freezeat, cojagr3k_rom, freezeat, jaguar_state, freezeat4, ROT0, "Atari Games", "Freeze (Atari) (prototype, 96/10/03)", 0 )
+GAME( 1996, freezeat5, freezeat, cojagr3k_rom, freezeat, jaguar_state, freezeat5, ROT0, "Atari Games", "Freeze (Atari) (prototype, 96/09/20, AMOA-96)", 0 )
+GAME( 1996, freezeat6, freezeat, cojagr3k_rom, freezeat, jaguar_state, freezeat6, ROT0, "Atari Games", "Freeze (Atari) (prototype, 96/09/07, Jamma-96)", 0 )
+GAME( 1996, maxforce, 0, cojagr3k, area51, jaguar_state, maxforce, ROT0, "Atari Games", "Maximum Force v1.05", 0 )
+GAME( 1996, maxf_102, maxforce, cojagr3k, area51, jaguar_state, maxforce, ROT0, "Atari Games", "Maximum Force v1.02", 0 )
+GAME( 1996, maxf_ng, maxforce, cojagr3k, area51, jaguar_state, maxforce, ROT0, "Atari Games", "Maximum Force (No Gore version)", 0 )
+GAME( 1998, area51mx, 0, cojag68k, area51, jaguar_state, area51mx, ROT0, "Atari Games", "Area 51 / Maximum Force Duo v2.0", 0 )
+GAME( 1998, a51mxr3k, area51mx, cojagr3k, area51, jaguar_state, a51mxr3k, ROT0, "Atari Games", "Area 51 / Maximum Force Duo (R3000)", 0 )
+GAME( 1996, vcircle, 0, cojagr3k, vcircle, jaguar_state, vcircle, ROT0, "Atari Games", "Vicious Circle (prototype)", 0 )
diff --git a/src/mame/drivers/jailbrek.c b/src/mame/drivers/jailbrek.c
index 2a58c3df652..db6e358f6f8 100644
--- a/src/mame/drivers/jailbrek.c
+++ b/src/mame/drivers/jailbrek.c
@@ -416,6 +416,6 @@ DRIVER_INIT_MEMBER(jailbrek_state,jailbrek)
}
}
-GAME( 1986, jailbrek, 0, jailbrek, jailbrek, jailbrek_state, jailbrek, ROT0, "Konami", "Jail Break", GAME_SUPPORTS_SAVE )
-GAME( 1986, jailbrekb,jailbrek, jailbrek, jailbrek, jailbrek_state, jailbrek, ROT0, "bootleg","Jail Break (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1986, manhatan, jailbrek, jailbrek, jailbrek, jailbrek_state, jailbrek, ROT0, "Konami", "Manhattan 24 Bunsyo (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1986, jailbrek, 0, jailbrek, jailbrek, jailbrek_state, jailbrek, ROT0, "Konami", "Jail Break", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, jailbrekb,jailbrek, jailbrek, jailbrek, jailbrek_state, jailbrek, ROT0, "bootleg","Jail Break (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, manhatan, jailbrek, jailbrek, jailbrek, jailbrek_state, jailbrek, ROT0, "Konami", "Manhattan 24 Bunsyo (Japan)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/jalmah.c b/src/mame/drivers/jalmah.c
index aa15d9c10eb..7000dc3294b 100644
--- a/src/mame/drivers/jalmah.c
+++ b/src/mame/drivers/jalmah.c
@@ -2469,10 +2469,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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1989, daireika, 0, jalmah, daireika, jalmah_state, daireika, ROT0, "Jaleco / NMK", "Mahjong Daireikai (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1990, mjzoomin, 0, jalmah, mjzoomin, jalmah_state, mjzoomin, ROT0, "Jaleco", "Mahjong Channel Zoom In (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
+GAME( 1989, urashima, 0, urashima, urashima, jalmah_state, urashima, ROT0, "UPL", "Otogizoushi Urashima Mahjong (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1989, daireika, 0, jalmah, daireika, jalmah_state, daireika, ROT0, "Jaleco / NMK", "Mahjong Daireikai (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1990, mjzoomin, 0, jalmah, mjzoomin, jalmah_state, mjzoomin, ROT0, "Jaleco", "Mahjong Channel Zoom In (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
/*Second version of the MCU*/
-GAME( 1990, kakumei, 0, jalmah, kakumei, jalmah_state, kakumei, ROT0, "Jaleco", "Mahjong Kakumei (Japan)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1992, kakumei2, 0, jalmah, kakumei2, jalmah_state, kakumei2, ROT0, "Jaleco", "Mahjong Kakumei 2 - Princess League (Japan)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1993, suchipi, 0, jalmah, suchipi, jalmah_state, suchipi, ROT0, "Jaleco", "Idol Janshi Suchie-Pai Special (Japan)", GAME_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 )
+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.c b/src/mame/drivers/jangou.c
index 85d42992ae7..e15d5c232d5 100644
--- a/src/mame/drivers/jangou.c
+++ b/src/mame/drivers/jangou.c
@@ -1383,16 +1383,16 @@ DRIVER_INIT_MEMBER(jangou_state,luckygrl)
*
*************************************/
-GAME( 1983, jangou, 0, jangou, jangou, driver_device, 0, ROT0, "Nichibutsu", "Jangou [BET] (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1983, macha, 0, jangou, macha, driver_device, 0, ROT0, "Logitec", "Monoshiri Quiz Osyaberi Macha (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1984, jngolady, 0, jngolady, jngolady, jangou_state, jngolady, ROT0, "Nichibutsu", "Jangou Lady (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1984, cntrygrl, 0, cntrygrl, cntrygrl, driver_device, 0, ROT0, "Royal Denshi", "Country Girl (Japan set 1)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1984, cntrygrla, cntrygrl, cntrygrl, cntrygrl, driver_device, 0, ROT0, "Nichibutsu", "Country Girl (Japan set 2)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1984, fruitbun, cntrygrl, cntrygrl, cntrygrl, driver_device, 0, ROT0, "Nichibutsu", "Fruits & Bunny (World?)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1985, roylcrdn, 0, roylcrdn, roylcrdn, driver_device, 0, ROT0, "Nichibutsu", "Royal Card (Nichibutsu)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+GAME( 1983, jangou, 0, jangou, jangou, driver_device, 0, ROT0, "Nichibutsu", "Jangou [BET] (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1983, macha, 0, jangou, macha, driver_device, 0, ROT0, "Logitec", "Monoshiri Quiz Osyaberi Macha (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1984, jngolady, 0, jngolady, jngolady, jangou_state, jngolady, ROT0, "Nichibutsu", "Jangou Lady (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1984, cntrygrl, 0, cntrygrl, cntrygrl, driver_device, 0, ROT0, "Royal Denshi", "Country Girl (Japan set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1984, cntrygrla, cntrygrl, cntrygrl, cntrygrl, driver_device, 0, ROT0, "Nichibutsu", "Country Girl (Japan set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1984, fruitbun, cntrygrl, cntrygrl, cntrygrl, driver_device, 0, ROT0, "Nichibutsu", "Fruits & Bunny (World?)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1985, roylcrdn, 0, roylcrdn, roylcrdn, driver_device, 0, ROT0, "Nichibutsu", "Royal Card (Nichibutsu)", MACHINE_NO_COCKTAIL | 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)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
+GAME( 1984?, luckygrl, 0, cntrygrl, cntrygrl, jangou_state, luckygrl, ROT0, "Wing Co., Ltd.", "Lucky Girl? (Wing)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
/*
Some other games that might run on this HW:
diff --git a/src/mame/drivers/jankenmn.c b/src/mame/drivers/jankenmn.c
index 580e3ad2353..403b7e6841b 100644
--- a/src/mame/drivers/jankenmn.c
+++ b/src/mame/drivers/jankenmn.c
@@ -415,4 +415,4 @@ ROM_END
*********************************************/
/* 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", GAME_SUPPORTS_SAVE, layout_jankenmn )
+GAMEL( 1991, jankenmn, 0, jankenmn, jankenmn, driver_device, 0, ROT0, "Sunwise", "Janken Man Kattara Ageru", MACHINE_SUPPORTS_SAVE, layout_jankenmn )
diff --git a/src/mame/drivers/jantotsu.c b/src/mame/drivers/jantotsu.c
index 4e0ffeee1ee..572acd3c0db 100644
--- a/src/mame/drivers/jantotsu.c
+++ b/src/mame/drivers/jantotsu.c
@@ -559,4 +559,4 @@ ROM_END
*
*************************************/
-GAME( 1983, jantotsu, 0, jantotsu, jantotsu, driver_device, 0, ROT270, "Sanritsu", "4nin-uchi Mahjong Jantotsu", GAME_SUPPORTS_SAVE )
+GAME( 1983, jantotsu, 0, jantotsu, jantotsu, driver_device, 0, ROT270, "Sanritsu", "4nin-uchi Mahjong Jantotsu", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/jchan.c b/src/mame/drivers/jchan.c
index 40294bcf10a..110e5893a48 100644
--- a/src/mame/drivers/jchan.c
+++ b/src/mame/drivers/jchan.c
@@ -724,5 +724,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", GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1995, jchan2, 0, jchan, jchan2, jchan_state, jchan, ROT0, "Kaneko", "Jackie Chan in Fists of Fire", GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL | GAME_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.c b/src/mame/drivers/jclub2.c
index 4b67922661f..daffa87c69e 100644
--- a/src/mame/drivers/jclub2.c
+++ b/src/mame/drivers/jclub2.c
@@ -1328,10 +1328,10 @@ DRIVER_INIT_MEMBER(darkhors_state,darkhors)
}
/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS */
-GAME( 199?, jclub2, 0, jclub2, jclub2, driver_device, 0, ROT0, "Seta", "Jockey Club II (newer hardware)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 199?, jclub2o, jclub2, jclub2o, jclub2, driver_device, 0, ROT0, "Seta", "Jockey Club II (older hardware)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 199?, jclub2ob, jclub2, jclub2o, jclub2, driver_device, 0, ROT0, "Seta", "Jockey Club II (older hardware, set 2)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 2001, darkhors, jclub2, darkhors,darkhors,darkhors_state, darkhors,ROT0, "bootleg", "Dark Horse (bootleg of Jockey Club II)", GAME_IMPERFECT_GRAPHICS )
+GAME( 199?, jclub2, 0, jclub2, jclub2, driver_device, 0, ROT0, "Seta", "Jockey Club II (newer hardware)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 199?, jclub2o, jclub2, jclub2o, jclub2, driver_device, 0, ROT0, "Seta", "Jockey Club II (older hardware)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 199?, jclub2ob, jclub2, jclub2o, jclub2, driver_device, 0, ROT0, "Seta", "Jockey Club II (older hardware, set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 2001, darkhors, jclub2, darkhors,darkhors,darkhors_state, darkhors,ROT0, "bootleg", "Dark Horse (bootleg of Jockey Club II)", MACHINE_IMPERFECT_GRAPHICS )
//test boot = test mode
diff --git a/src/mame/drivers/jedi.c b/src/mame/drivers/jedi.c
index e5e3a083ad8..4f012bac5bd 100644
--- a/src/mame/drivers/jedi.c
+++ b/src/mame/drivers/jedi.c
@@ -395,4 +395,4 @@ ROM_END
*
*************************************/
-GAME( 1984, jedi, 0, jedi, jedi, driver_device, 0, ROT0, "Atari", "Return of the Jedi", GAME_SUPPORTS_SAVE )
+GAME( 1984, jedi, 0, jedi, jedi, driver_device, 0, ROT0, "Atari", "Return of the Jedi", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/jeutel.c b/src/mame/drivers/jeutel.c
index bec5db6dc11..d185e322e8d 100644
--- a/src/mame/drivers/jeutel.c
+++ b/src/mame/drivers/jeutel.c
@@ -264,5 +264,5 @@ ROM_START(olympic)
ROM_END
-GAME(1983, leking, 0, jeutel, jeutel, jeutel_state, jeutel, ROT0, "Jeutel", "Le King", GAME_IS_SKELETON_MECHANICAL)
-GAME(1984, olympic, 0, jeutel, jeutel, jeutel_state, jeutel, ROT0, "Jeutel", "Olympic Games", GAME_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/jokrwild.c b/src/mame/drivers/jokrwild.c
index ea8344f856d..e6ac188d8f3 100644
--- a/src/mame/drivers/jokrwild.c
+++ b/src/mame/drivers/jokrwild.c
@@ -505,4 +505,4 @@ DRIVER_INIT_MEMBER(jokrwild_state,jokrwild)
*************************/
/* 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)", GAME_NO_SOUND | GAME_NOT_WORKING )
+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.c b/src/mame/drivers/jollyjgr.c
index 284964a71f1..c02763727e2 100644
--- a/src/mame/drivers/jollyjgr.c
+++ b/src/mame/drivers/jollyjgr.c
@@ -116,7 +116,8 @@ public:
m_bulletram(*this, "bulletram"),
m_maincpu(*this, "maincpu"),
m_gfxdecode(*this, "gfxdecode"),
- m_palette(*this, "palette") { }
+ m_palette(*this, "palette"),
+ m_bm_palette(*this, "bm_palette") { }
/* memory pointers */
required_shared_ptr<UINT8> m_videoram;
@@ -144,13 +145,14 @@ public:
virtual void machine_reset();
virtual void video_start();
DECLARE_PALETTE_INIT(jollyjgr);
- UINT32 screen_update_jollyjgr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- UINT32 screen_update_fspider(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_jollyjgr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_fspider(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(jollyjgr_interrupt);
- void draw_bitmap( bitmap_ind16 &bitmap );
+ void draw_bitmap( bitmap_rgb32 &bitmap );
required_device<cpu_device> m_maincpu;
required_device<gfxdecode_device> m_gfxdecode;
required_device<palette_device> m_palette;
+ required_device<palette_device> m_bm_palette;
};
@@ -415,13 +417,12 @@ INPUT_PORTS_END
*
*************************************/
+/* tilemap / sprites palette */
PALETTE_INIT_MEMBER(jollyjgr_state, jollyjgr)
{
const UINT8 *color_prom = memregion("proms")->base();
- int i;
- /* tilemap / sprites palette */
- for (i = 0; i < 32; i++)
+ for (int i = 0; i < 32; i++)
{
int bit0, bit1, bit2, r, g, b;
@@ -443,10 +444,6 @@ PALETTE_INIT_MEMBER(jollyjgr_state, jollyjgr)
palette.set_pen_color(i, rgb_t(r,g,b));
color_prom++;
}
-
- /* bitmap palette */
- for (i = 0;i < 8;i++)
- palette.set_pen_color(32 + i, pal1bit(i >> 0), pal1bit(i >> 1), pal1bit(i >> 2));
}
/* Tilemap is the same as in Galaxian */
@@ -465,7 +462,7 @@ void jollyjgr_state::video_start()
m_bg_tilemap->set_scroll_cols(32);
}
-void jollyjgr_state::draw_bitmap( bitmap_ind16 &bitmap )
+void jollyjgr_state::draw_bitmap( bitmap_rgb32 &bitmap )
{
int x, y, count;
int i, bit0, bit1, bit2;
@@ -486,13 +483,13 @@ void jollyjgr_state::draw_bitmap( bitmap_ind16 &bitmap )
if(color)
{
if(m_flip_x && m_flip_y)
- bitmap.pix16(y, x * 8 + i) = color + 32;
+ bitmap.pix32(y, x * 8 + i) = m_bm_palette->pen_color(color);
else if(m_flip_x && !m_flip_y)
- bitmap.pix16(255 - y, x * 8 + i) = color + 32;
+ bitmap.pix32(255 - y, x * 8 + i) = m_bm_palette->pen_color(color);
else if(!m_flip_x && m_flip_y)
- bitmap.pix16(y, 255 - x * 8 - i) = color + 32;
+ bitmap.pix32(y, 255 - x * 8 - i) = m_bm_palette->pen_color(color);
else
- bitmap.pix16(255 - y, 255 - x * 8 - i) = color + 32;
+ bitmap.pix32(255 - y, 255 - x * 8 - i) = m_bm_palette->pen_color(color);
}
}
@@ -501,12 +498,12 @@ void jollyjgr_state::draw_bitmap( bitmap_ind16 &bitmap )
}
}
-UINT32 jollyjgr_state::screen_update_jollyjgr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+UINT32 jollyjgr_state::screen_update_jollyjgr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
UINT8 *spriteram = m_spriteram;
int offs;
- bitmap.fill(32, cliprect);
+ bitmap.fill(m_bm_palette->pen_color(0), cliprect);
if(m_pri) //used in Frog & Spiders level 3
{
@@ -556,7 +553,7 @@ UINT32 jollyjgr_state::screen_update_jollyjgr(screen_device &screen, bitmap_ind1
return 0;
}
-UINT32 jollyjgr_state::screen_update_fspider(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+UINT32 jollyjgr_state::screen_update_fspider(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
// Draw bg and sprites
screen_update_jollyjgr(screen, bitmap, cliprect);
@@ -569,8 +566,8 @@ UINT32 jollyjgr_state::screen_update_fspider(screen_device &screen, bitmap_ind16
UINT8 sy=~m_bulletram[offs];
UINT8 sx=~m_bulletram[offs|1];
UINT16 bc=(offs<4)?
- 32+7: // player, white
- 32+3; // enemy, yellow
+ 7: // player, white
+ 3; // enemy, yellow
if (m_flip_y) sy^=0xff;
if (m_flip_x) sx+=8;
@@ -578,7 +575,7 @@ UINT32 jollyjgr_state::screen_update_fspider(screen_device &screen, bitmap_ind16
if (sy>=cliprect.min_y && sy<=cliprect.max_y)
for (int x=sx-4;x<sx;x++)
if (x>=cliprect.min_x && x<=cliprect.max_x)
- bitmap.pix16(sy, x)=bc;
+ bitmap.pix32(sy, x) = m_bm_palette->pen_color(bc);
}
return 0;
@@ -653,13 +650,11 @@ void jollyjgr_state::machine_reset()
}
static MACHINE_CONFIG_START( jollyjgr, jollyjgr_state )
-
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", Z80, 3579545) /* 3,579545 MHz */
MCFG_CPU_PROGRAM_MAP(jollyjgr_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", jollyjgr_state, jollyjgr_interrupt)
-
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -667,11 +662,11 @@ static MACHINE_CONFIG_START( jollyjgr, jollyjgr_state )
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(jollyjgr_state, screen_update_jollyjgr)
- MCFG_SCREEN_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", "palette", jollyjgr)
- MCFG_PALETTE_ADD("palette", 32+8) /* 32 for tilemap and sprites + 8 for the bitmap */
+ MCFG_PALETTE_ADD("palette", 32) // tilemap and sprites
MCFG_PALETTE_INIT_OWNER(jollyjgr_state, jollyjgr)
+ MCFG_PALETTE_ADD_3BIT_RGB("bm_palette") // bitmap
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -681,13 +676,11 @@ static MACHINE_CONFIG_START( jollyjgr, jollyjgr_state )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( fspider, jollyjgr )
-
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(fspider_map)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(jollyjgr_state, screen_update_fspider)
-
MACHINE_CONFIG_END
/*************************************
@@ -765,5 +758,5 @@ ROM_END
*
*************************************/
-GAME( 1981, fspiderb, 0, fspider, fspider, driver_device, 0, ROT90, "Taito Corporation", "Frog & Spiders (bootleg?)", GAME_SUPPORTS_SAVE ) // comes from a Fawaz Group bootleg(?) board
-GAME( 1982, jollyjgr, 0, jollyjgr, jollyjgr, driver_device, 0, ROT90, "Taito Corporation", "Jolly Jogger", GAME_SUPPORTS_SAVE )
+GAME( 1981, fspiderb, 0, fspider, fspider, driver_device, 0, ROT90, "Taito Corporation", "Frog & Spiders (bootleg?)", MACHINE_SUPPORTS_SAVE ) // comes from a Fawaz Group bootleg(?) board
+GAME( 1982, jollyjgr, 0, jollyjgr, jollyjgr, driver_device, 0, ROT90, "Taito Corporation", "Jolly Jogger", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/jongkyo.c b/src/mame/drivers/jongkyo.c
index 4536391be9b..906298208cf 100644
--- a/src/mame/drivers/jongkyo.c
+++ b/src/mame/drivers/jongkyo.c
@@ -599,4 +599,4 @@ DRIVER_INIT_MEMBER(jongkyo_state,jongkyo)
*
*************************************/
-GAME( 1985, jongkyo, 0, jongkyo, jongkyo, jongkyo_state, jongkyo, ROT0, "Kiwako", "Jongkyo", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
+GAME( 1985, jongkyo, 0, jongkyo, jongkyo, jongkyo_state, jongkyo, ROT0, "Kiwako", "Jongkyo", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/jonos.c b/src/mame/drivers/jonos.c
index a65b4667602..4f4a0ad2593 100644
--- a/src/mess/drivers/jonos.c
+++ b/src/mame/drivers/jonos.c
@@ -155,4 +155,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+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.c b/src/mame/drivers/joystand.c
new file mode 100644
index 00000000000..a9e4a9e097c
--- /dev/null
+++ b/src/mame/drivers/joystand.c
@@ -0,0 +1,687 @@
+// license:BSD-3-Clause
+// copyright-holders:Luca Elia
+/***************************************************************************
+
+Joy Stand Private
+Yuvo 1999 (31st October, 1999)
+
+driver by Luca Elia
+
+This is a sticker machine with camera, printer and light pen.
+
+PCB Layout
+----------
+
+Main board
+
+JSP-NM515
+|---------------------------------------------------------|
+|TA8201A POWER-IN TD62083 TD62083 CONTROL |
+| JRC3404 D71055 D71055 T531A|
+|SP JRC3404 CN10 |
+|VR2 JRC3404 JSP001 JSP-FRM JSP003B TC551001|
+|VR1 M6295 JSP-MAP |
+|CAM-IN JRC2235 JSP002 C46M1 TMP68301 JSP004B TC551001|
+|PRN-IN JRC2233 YM2413 |
+|VR3 JRC3404 JSP-XCT |
+|VR4 16MHz 32.767kHz|
+|VR5 SONY_A1585Q M548262 M548262 M6242B|
+| 3.579545MHz M548262 M548262 3V_BATT|
+| JRC2240 D6951 M548262 M548262 |
+|RGB-OUT D6951 M548262 M548262 JACK|
+| D6951 XC3042A |
+| SONY_CXA1645M KM68257 KM68257 JRC2903 |
+|SV-OUT D6901 LIGHTPEN|
+| JRC2244 D6901 XC3030A XC3030A XC3030A |
+| JRC2244 D6901 CN11 PRN_CONT|
+|---------------------------------------------------------|
+Notes:
+ Main CPU is Toshiba TMP68301 @ 16MHz
+ No custom chips, using only Xilinx XC30xx FPGA
+ Sound Oki M6295 @ 1MHz [16/16], YM2413 @ 3.579545MHz
+ PALs type PALCE16V8H
+ EPROMs are 27C040/27C020
+ CN10/11 - Connector for sub-board
+ Many other connectors for camera, printer, lightpen etc.
+
+
+Sub board
+
+JSP-NS515
+MODEL-NP001
+9.10.31
+|-------------------------------|
+| J2 |
+| |
+| JSP-SUB |
+| |
+| |-| |-| |
+|JSP005 JSP007A | | | | |
+| | | | | |
+| | | | | |
+| | | | | |
+|JSP006 JSP008A | | | | |
+| | | | | |
+| |-| |-| |
+| J1 |
+|-------------------------------|
+
+
+Cart board
+
+NS514-F040DD
+|---------------------|
+| U1 U2 U3 U4 U5 U6 |
+| |
+| U7 U8 U9 U10 U11 U12|
+| |
+-| |-|
+ |------------------|
+ Notes:
+ U* - TMS29F040 (TSOP32, x12)
+
+
+Notes:
+
+- To unlock some hidden items in test mode, go in the option menu and move:
+ left, right, left, left
+
+***************************************************************************/
+
+#include "emu.h"
+#include "cpu/m68000/m68000.h"
+#include "machine/tmp68301.h"
+#include "machine/msm6242.h"
+#include "machine/eepromser.h"
+#include "machine/intelfsh.h"
+#include "sound/2413intf.h"
+#include "sound/okim6295.h"
+
+class joystand_state : public driver_device
+{
+public:
+ joystand_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
+ m_tmp68301(*this, "tmp68301"),
+ m_palette(*this, "palette"),
+ m_bg15_palette(*this, "bg15_palette"),
+ m_gfxdecode(*this, "gfxdecode"),
+ m_eeprom(*this, "eeprom"),
+ m_cart_u1(*this, "cart.u1"),
+ m_cart_u2(*this, "cart.u2"),
+ m_cart_u3(*this, "cart.u3"),
+ m_cart_u4(*this, "cart.u4"),
+ m_cart_u5(*this, "cart.u5"),
+ m_cart_u6(*this, "cart.u6"),
+ m_cart_u7(*this, "cart.u7"),
+ m_cart_u8(*this, "cart.u8"),
+ m_cart_u9(*this, "cart.u9"),
+ m_cart_u10(*this, "cart.u10"),
+ m_cart_u11(*this, "cart.u11"),
+ m_cart_u12(*this, "cart.u12"),
+ m_oki(*this, "oki"),
+ m_bg1_ram(*this, "bg1_ram"),
+ m_bg2_ram(*this, "bg2_ram"),
+ m_bg15_0_ram(*this, "bg15_0_ram"),
+ m_bg15_1_ram(*this, "bg15_1_ram"),
+ m_scroll(*this, "scroll"),
+ m_enable(*this, "enable"),
+ m_outputs(*this, "outputs")
+ { }
+
+ // devices
+ required_device<cpu_device> m_maincpu;
+ required_device<tmp68301_device> m_tmp68301;
+ required_device<palette_device> m_palette;
+ required_device<palette_device> m_bg15_palette;
+ required_device<gfxdecode_device> m_gfxdecode;
+ required_device<eeprom_serial_93cxx_device> m_eeprom;
+ required_device<intelfsh8_device> m_cart_u1;
+ required_device<intelfsh8_device> m_cart_u2;
+ required_device<intelfsh8_device> m_cart_u3;
+ required_device<intelfsh8_device> m_cart_u4;
+ required_device<intelfsh8_device> m_cart_u5;
+ required_device<intelfsh8_device> m_cart_u6;
+ required_device<intelfsh8_device> m_cart_u7;
+ required_device<intelfsh8_device> m_cart_u8;
+ required_device<intelfsh8_device> m_cart_u9;
+ required_device<intelfsh8_device> m_cart_u10;
+ required_device<intelfsh8_device> m_cart_u11;
+ required_device<intelfsh8_device> m_cart_u12;
+ intelfsh8_device *m_cart_flash[12];
+ required_device<okim6295_device> m_oki;
+
+ // memory pointers
+ required_shared_ptr<UINT16> m_bg1_ram;
+ required_shared_ptr<UINT16> m_bg2_ram;
+ required_shared_ptr<UINT16> m_bg15_0_ram;
+ required_shared_ptr<UINT16> m_bg15_1_ram;
+ required_shared_ptr<UINT16> m_scroll;
+ required_shared_ptr<UINT16> m_enable;
+ required_shared_ptr<UINT16> m_outputs;
+
+ // tilemaps
+ tilemap_t *m_bg1_tmap;
+ tilemap_t *m_bg2_tmap;
+ DECLARE_WRITE16_MEMBER(bg1_w);
+ DECLARE_WRITE16_MEMBER(bg2_w);
+ TILE_GET_INFO_MEMBER(get_bg1_tile_info);
+ TILE_GET_INFO_MEMBER(get_bg2_tile_info);
+
+ // r5g5b5 layers
+ bitmap_rgb32 m_bg15_bitmap[2];
+ DECLARE_WRITE16_MEMBER(bg15_0_w);
+ DECLARE_WRITE16_MEMBER(bg15_1_w);
+ static const rgb_t BG15_TRANSPARENT;
+ void draw_bg15_tile(address_space &space, int x, int y, UINT16 code);
+ void draw_bg15_tilemap();
+ bool bg15_tiles_dirty;
+
+ // eeprom
+ DECLARE_READ16_MEMBER(eeprom_r);
+ DECLARE_WRITE16_MEMBER(eeprom_w);
+
+ // cart
+ DECLARE_READ16_MEMBER(cart_r);
+ DECLARE_WRITE16_MEMBER(cart_w);
+
+ // misc
+ DECLARE_READ16_MEMBER(fpga_r);
+ DECLARE_WRITE16_MEMBER(oki_bank_w);
+ DECLARE_READ16_MEMBER(e00000_r);
+ DECLARE_READ16_MEMBER(e00020_r);
+ DECLARE_WRITE16_MEMBER(outputs_w);
+
+ // screen updates
+ UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ virtual void video_start();
+
+ // machine
+ virtual void machine_start();
+ virtual void machine_reset();
+ INTERRUPT_GEN_MEMBER(joystand_interrupt);
+};
+
+const rgb_t joystand_state::BG15_TRANSPARENT = 0x99999999;
+
+/***************************************************************************
+
+ Tilemaps
+
+***************************************************************************/
+
+TILE_GET_INFO_MEMBER(joystand_state::get_bg1_tile_info)
+{
+ UINT32 code = (m_bg1_ram[tile_index * 2 + 0] << 16) | m_bg1_ram[tile_index * 2 + 1];
+ SET_TILE_INFO_MEMBER(0, code & 0x00ffffff, code >> 24, 0);
+}
+
+TILE_GET_INFO_MEMBER(joystand_state::get_bg2_tile_info)
+{
+ UINT32 code = (m_bg2_ram[tile_index * 2 + 0] << 16) | m_bg2_ram[tile_index * 2 + 1];
+ SET_TILE_INFO_MEMBER(0, code & 0x00ffffff, code >> 24, 0);
+}
+
+WRITE16_MEMBER(joystand_state::bg1_w)
+{
+ COMBINE_DATA(&m_bg1_ram[offset]);
+ m_bg1_tmap->mark_tile_dirty(offset/2);
+}
+
+WRITE16_MEMBER(joystand_state::bg2_w)
+{
+ COMBINE_DATA(&m_bg2_ram[offset]);
+ m_bg2_tmap->mark_tile_dirty(offset/2);
+}
+
+/***************************************************************************
+
+ r5g5b5 Layers
+
+***************************************************************************/
+
+// pixel-based
+WRITE16_MEMBER(joystand_state::bg15_0_w)
+{
+ UINT16 val = COMBINE_DATA(&m_bg15_0_ram[offset]);
+ m_bg15_bitmap[0].pix32(offset >> 9, offset & 0x1ff) = (val & 0x8000) ? BG15_TRANSPARENT : m_bg15_palette->pen_color(val & 0x7fff);
+}
+
+// tile-based
+void joystand_state::draw_bg15_tile(address_space &space, int x, int y, UINT16 code)
+{
+ x *= 16;
+ y *= 16;
+ int srcaddr = 0x800000 + (code % (0x800 * 6)) * 16 * 16 * 2;
+
+ for (int ty = 0; ty < 16; ++ty)
+ {
+ for (int tx = 0; tx < 16; ++tx)
+ {
+ UINT16 val = space.read_word(srcaddr + ty * 16 * 2 + tx * 2);
+ m_bg15_bitmap[1].pix32(y + ty , x + tx) = (val & 0x8000) ? BG15_TRANSPARENT : m_bg15_palette->pen_color(val & 0x7fff);
+ }
+ }
+}
+
+void joystand_state::draw_bg15_tilemap()
+{
+ if (!bg15_tiles_dirty)
+ return;
+
+ bg15_tiles_dirty = false;
+
+ address_space &space = m_maincpu->space(AS_PROGRAM);
+ UINT16 *src = m_bg15_1_ram + 2/2;
+ for (int y = 0; y < 0x10; ++y)
+ {
+ for (int x = 0; x < 0x20; ++x)
+ {
+ draw_bg15_tile(space, x, y, *src);
+ src += 8/2;
+ }
+ src += 0x100/2;
+ }
+}
+
+WRITE16_MEMBER(joystand_state::bg15_1_w)
+{
+ UINT16 code = COMBINE_DATA(&m_bg15_1_ram[offset]);
+ if ((offset & 0x83) == 0x01)
+ draw_bg15_tile(space, (offset/4) & 0x1f, offset/0x100, code);
+}
+
+/***************************************************************************
+
+ Screen Update
+
+***************************************************************************/
+
+void joystand_state::video_start()
+{
+ m_bg1_tmap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(joystand_state::get_bg1_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x20);
+ m_bg2_tmap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(joystand_state::get_bg2_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x40);
+
+ m_bg1_tmap->set_transparent_pen(0xf);
+ m_bg2_tmap->set_transparent_pen(0xf);
+
+ for (int i = 0; i < 2; ++i)
+ {
+ m_bg15_bitmap[i].allocate(0x200, 0x200);
+ m_bg15_bitmap[i].fill(BG15_TRANSPARENT);
+ }
+
+ bg15_tiles_dirty = true;
+}
+
+UINT32 joystand_state::screen_update( screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect )
+{
+ int layers_ctrl = -1;
+
+#ifdef MAME_DEBUG
+ if (machine().input().code_pressed(KEYCODE_Z))
+ {
+ int msk = 0;
+ if (machine().input().code_pressed(KEYCODE_Q)) msk |= 1;
+ if (machine().input().code_pressed(KEYCODE_W)) msk |= 2;
+ if (machine().input().code_pressed(KEYCODE_A)) msk |= 4;
+ if (machine().input().code_pressed(KEYCODE_S)) msk |= 8;
+ if (msk != 0) layers_ctrl &= msk;
+ }
+#endif
+
+ m_bg1_tmap->set_scrollx(0, 0);
+ m_bg1_tmap->set_scrolly(0, 0);
+
+ m_bg2_tmap->set_scrollx(0, m_scroll[0] - 0xa);
+ m_bg2_tmap->set_scrolly(0, m_scroll[1]);
+
+ draw_bg15_tilemap();
+
+ bitmap.fill(m_palette->black_pen(), cliprect);
+ if (layers_ctrl & 4) copybitmap_trans(bitmap, m_bg15_bitmap[0], 0, 0, 1, 0, cliprect, BG15_TRANSPARENT);
+ if (layers_ctrl & 8) copybitmap_trans(bitmap, m_bg15_bitmap[1], 0, 0, 0, 0, cliprect, BG15_TRANSPARENT);
+ if (layers_ctrl & 1) m_bg1_tmap->draw(screen, bitmap, cliprect, 0, 0);
+ if (layers_ctrl & 2) m_bg2_tmap->draw(screen, bitmap, cliprect, 0, 0);
+
+ popmessage("S0: %04X S1: %04X EN: %04X OUT: %04X", m_scroll[0], m_scroll[1], m_enable[0], m_outputs[0]);
+ return 0;
+}
+
+/***************************************************************************
+
+ Memory Maps
+
+***************************************************************************/
+
+READ16_MEMBER(joystand_state::fpga_r)
+{
+ return 0xffff;
+}
+
+WRITE16_MEMBER(joystand_state::oki_bank_w)
+{
+ if (ACCESSING_BITS_0_7)
+ m_oki->set_bank_base(((data >> 6) & 3) * 0x40000);
+}
+
+READ16_MEMBER(joystand_state::eeprom_r)
+{
+ // mask 0x0020 ? (active low)
+ // mask 0x0040 ? ""
+ return (m_eeprom->do_read() & 1) << 3;
+}
+WRITE16_MEMBER(joystand_state::eeprom_w)
+{
+ if (ACCESSING_BITS_8_15)
+ {
+ // latch the data bit
+ m_eeprom->di_write ( (data & 0x0004) ? ASSERT_LINE : CLEAR_LINE );
+
+ // reset line asserted: reset.
+ m_eeprom->cs_write ( (data & 0x0001) ? ASSERT_LINE : CLEAR_LINE );
+
+ // clock line asserted: write latch or select next bit to read
+ m_eeprom->clk_write( (data & 0x0002) ? ASSERT_LINE : CLEAR_LINE );
+
+ // mask 0x1000 ?
+ }
+}
+
+WRITE16_MEMBER(joystand_state::outputs_w)
+{
+ COMBINE_DATA(&m_outputs[0]);
+ if (ACCESSING_BITS_8_15)
+ {
+ coin_counter_w(machine(), 0, BIT(data, 0)); // coin counter 1
+ coin_counter_w(machine(), 1, BIT(data, 1)); // coin counter 2
+
+ output_set_value("blocker", BIT(data, 2));
+ output_set_value("error_lamp", BIT(data, 3)); // counter error
+ output_set_value("photo_lamp", BIT(data, 4)); // during photo
+ }
+ if (ACCESSING_BITS_8_15)
+ {
+ output_set_value("ok_button_led", BIT(data, 8));
+ output_set_value("cancel_button_led", BIT(data, 9));
+ }
+}
+
+// carts
+
+// copy slot
+READ16_MEMBER(joystand_state::e00000_r)
+{
+ return ioport("COPY")->read();
+}
+// master slot
+READ16_MEMBER(joystand_state::e00020_r)
+{
+ return ioport("MASTER")->read();
+}
+
+READ16_MEMBER(joystand_state::cart_r)
+{
+ int which = offset / 0x80000;
+ int addr = offset & 0x7ffff;
+ return (m_cart_flash[which * 2 + 0]->read(addr) << 8) | m_cart_flash[which * 2 + 1]->read(addr);
+}
+
+WRITE16_MEMBER(joystand_state::cart_w)
+{
+ int which = offset / 0x80000;
+ int addr = offset & 0x7ffff;
+
+ if (ACCESSING_BITS_0_7)
+ m_cart_flash[which * 2 + 1]->write(addr, data & 0xff);
+ if (ACCESSING_BITS_8_15)
+ m_cart_flash[which * 2 + 0]->write(addr, data >> 8);
+
+ bg15_tiles_dirty = true;
+}
+
+static ADDRESS_MAP_START( joystand_map, AS_PROGRAM, 16, joystand_state )
+ AM_RANGE(0x000000, 0x07ffff) AM_ROM
+ AM_RANGE(0x100000, 0x13ffff) AM_RAM
+ AM_RANGE(0x200000, 0x200003) AM_DEVWRITE8("ym2413", ym2413_device, write, 0x00ff)
+ AM_RANGE(0x200008, 0x200009) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
+ AM_RANGE(0x200010, 0x200011) AM_READ_PORT("IN0") // r/w
+ AM_RANGE(0x200012, 0x200013) AM_RAM_WRITE(outputs_w) AM_SHARE("outputs") // r/w
+ AM_RANGE(0x200014, 0x200015) AM_READWRITE(fpga_r, oki_bank_w) // r/w
+// AM_RANGE(0x200016, 0x200017) // write $9190 at boot
+
+ AM_RANGE(0x400000, 0x47ffff) AM_RAM_WRITE(bg15_0_w) AM_SHARE("bg15_0_ram") // r5g5b5 200x200 pixel-based
+ AM_RANGE(0x480000, 0x4fffff) AM_RAM // more rgb layers? (writes at offset 0)
+ AM_RANGE(0x500000, 0x57ffff) AM_RAM // ""
+ AM_RANGE(0x580000, 0x5fffff) AM_RAM // ""
+
+ AM_RANGE(0x600000, 0x603fff) AM_RAM_WRITE(bg2_w) AM_SHARE("bg2_ram")
+ AM_RANGE(0x604000, 0x605fff) AM_RAM_WRITE(bg1_w) AM_SHARE("bg1_ram")
+ AM_RANGE(0x606000, 0x607fff) AM_RAM_WRITE(bg15_1_w) AM_SHARE("bg15_1_ram") // r5g5b5 200x200 tile-based
+ AM_RANGE(0x608000, 0x609fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
+ AM_RANGE(0x60c000, 0x60c003) AM_RAM AM_SHARE("scroll") // write
+ AM_RANGE(0x60c00c, 0x60c00d) AM_RAM AM_SHARE("enable") // write
+
+ AM_RANGE(0x800000, 0xdfffff) AM_READWRITE(cart_r, cart_w) // r/w (cart flash)
+// AM_RANGE(0xe00080, 0xe00081) // write (bit 0 = cart? bit 1 = ? bit 3 = ?)
+ AM_RANGE(0xe00000, 0xe00001) AM_READ(e00000_r) // copy slot
+ AM_RANGE(0xe00020, 0xe00021) AM_READ(e00020_r) // master slot
+
+ AM_RANGE(0xe80040, 0xe8005f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write,0x00ff)
+
+ AM_RANGE(0xfffc00, 0xffffff) AM_DEVREADWRITE("tmp68301", tmp68301_device, regs_r, regs_w) // TMP68301 Registers
+ADDRESS_MAP_END
+
+
+static INPUT_PORTS_START( joystand )
+ // Cart status:
+ // mask 0x1000 -> cart flash addressing (0 = sequential, 1 = interleaved even/odd)
+ // mask 0x6000 == 0 -> cart present?
+ // mask 0x8000 -> cart ready?
+
+ PORT_START("MASTER")
+ PORT_CONFNAME( 0x1000, 0x1000, "Master Flash Addressing" )
+ PORT_CONFSETTING( 0x1000, "Interleaved" )
+ PORT_CONFSETTING( 0x0000, "Sequential" )
+ PORT_CONFNAME( 0x2000, 0x0000, "Master Slot Sense 1" )
+ PORT_CONFSETTING( 0x2000, "Empty" )
+ PORT_CONFSETTING( 0x0000, "Cart" )
+ PORT_CONFNAME( 0x4000, 0x0000, "Master Slot Sense 2" )
+ PORT_CONFSETTING( 0x4000, "Empty" )
+ PORT_CONFSETTING( 0x0000, "Cart" )
+ PORT_BIT( 0x8fff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("COPY")
+ PORT_CONFNAME( 0x1000, 0x1000, "Copy Flash Addressing" )
+ PORT_CONFSETTING( 0x1000, "Interleaved" )
+ PORT_CONFSETTING( 0x0000, "Sequential" )
+ PORT_CONFNAME( 0x2000, 0x2000, "Copy Slot Sense 1" )
+ PORT_CONFSETTING( 0x2000, "Empty" )
+ PORT_CONFSETTING( 0x0000, "Cart" )
+ PORT_CONFNAME( 0x4000, 0x4000, "Copy Slot Sense 2" )
+ PORT_CONFSETTING( 0x4000, "Empty" )
+ PORT_CONFSETTING( 0x0000, "Cart" )
+ PORT_BIT( 0x8fff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("IN0")
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) // up
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) // down
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) // left
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) // right
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) // ok
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) // cancel
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 ) // coin
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_SERVICE1 ) // service
+ PORT_SERVICE_NO_TOGGLE( 0x0400, IP_ACTIVE_LOW ) // test
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
+INPUT_PORTS_END
+
+
+static const gfx_layout layout_8x8x4 =
+{
+ 8,8,
+ RGN_FRAC(1,1),
+ 4,
+ { STEP4(0, 1) },
+ { STEP8(0, 4) },
+ { STEP8(0, 4*8) },
+ 8*8*4
+};
+
+static const gfx_layout layout_16x16x8 =
+{
+ 16,16,
+ RGN_FRAC(1,1),
+ 8,
+ { STEP8(0, 1) },
+ { STEP16(0, 8) },
+ { STEP16(0, 8*16) },
+ 16*16*8
+};
+
+static GFXDECODE_START( joystand )
+ GFXDECODE_ENTRY( "tiles", 0, layout_8x8x4, 0, 0x100 )
+ GFXDECODE_ENTRY( "cart.u5", 0, layout_16x16x8, 0, 0x10 )
+ GFXDECODE_ENTRY( "cart.u6", 0, layout_16x16x8, 0, 0x10 )
+ GFXDECODE_ENTRY( "cart.u3", 0, layout_16x16x8, 0, 0x10 )
+ GFXDECODE_ENTRY( "cart.u4", 0, layout_16x16x8, 0, 0x10 )
+ GFXDECODE_ENTRY( "cart.u1", 0, layout_16x16x8, 0, 0x10 )
+ GFXDECODE_ENTRY( "cart.u2", 0, layout_16x16x8, 0, 0x10 )
+GFXDECODE_END
+
+
+void joystand_state::machine_start()
+{
+ m_cart_flash[0] = m_cart_u11; m_cart_flash[1] = m_cart_u5;
+ m_cart_flash[2] = m_cart_u12; m_cart_flash[3] = m_cart_u6;
+ m_cart_flash[4] = m_cart_u9; m_cart_flash[5] = m_cart_u3;
+ m_cart_flash[6] = m_cart_u10; m_cart_flash[7] = m_cart_u4;
+ m_cart_flash[8] = m_cart_u7; m_cart_flash[9] = m_cart_u1;
+ m_cart_flash[10] = m_cart_u8; m_cart_flash[11] = m_cart_u2;
+}
+
+void joystand_state::machine_reset()
+{
+}
+
+INTERRUPT_GEN_MEMBER(joystand_state::joystand_interrupt)
+{
+ // VBlank is connected to INT1 (external interrupts pin 1)
+ m_tmp68301->external_interrupt_1();
+}
+
+static MACHINE_CONFIG_START( joystand, joystand_state )
+
+ // basic machine hardware
+ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz) // !! TMP68301 !!
+ MCFG_CPU_PROGRAM_MAP(joystand_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", joystand_state, joystand_interrupt)
+ MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("tmp68301",tmp68301_device,irq_callback)
+
+ MCFG_DEVICE_ADD("tmp68301", TMP68301, 0)
+ MCFG_TMP68301_IN_PARALLEL_CB(READ16(joystand_state, eeprom_r))
+ MCFG_TMP68301_OUT_PARALLEL_CB(WRITE16(joystand_state, eeprom_w))
+
+ // video hardware
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_UPDATE_DRIVER(joystand_state, screen_update)
+ MCFG_SCREEN_SIZE(0x200, 0x100)
+ MCFG_SCREEN_VISIBLE_AREA(0x40, 0x40+0x178-1, 0x10, 0x100-1)
+
+ MCFG_PALETTE_ADD("palette", 0x1000)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", joystand)
+
+ MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("bg15_palette")
+
+ // sound hardware
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+
+ 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_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
+
+ // cart
+ MCFG_TMS_29F040_ADD("cart.u1")
+ MCFG_TMS_29F040_ADD("cart.u2")
+ MCFG_TMS_29F040_ADD("cart.u3")
+ MCFG_TMS_29F040_ADD("cart.u4")
+ MCFG_TMS_29F040_ADD("cart.u5")
+ MCFG_TMS_29F040_ADD("cart.u6")
+ MCFG_TMS_29F040_ADD("cart.u7")
+ MCFG_TMS_29F040_ADD("cart.u8")
+ MCFG_TMS_29F040_ADD("cart.u9")
+ MCFG_TMS_29F040_ADD("cart.u10")
+ MCFG_TMS_29F040_ADD("cart.u11")
+ MCFG_TMS_29F040_ADD("cart.u12")
+
+ // devices
+ MCFG_EEPROM_SERIAL_93C46_ADD("eeprom")
+ MCFG_DEVICE_ADD("rtc", MSM6242, XTAL_32_768kHz)
+MACHINE_CONFIG_END
+
+
+/***************************************************************************
+
+ Machine driver(s)
+
+***************************************************************************/
+
+ROM_START( joystand )
+ ROM_REGION( 0x80000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "yuvo_jsp003b.ic3", 0x00000, 0x40000, CRC(0c85bc77) SHA1(ad8ec80b02e82cf43e3f0732cc6e5468c6d21297) )
+ ROM_LOAD16_BYTE( "yuvo_jsp004b.ic63", 0x00001, 0x40000, CRC(333396e5) SHA1(fc605890676efed476b67abcd1fcb8d509324be2) )
+
+ ROM_REGION( 0x180000, "tiles", 0 )
+ ROM_LOAD16_BYTE( "yuvo_jsp005.2j", 0x000000, 0x80000, CRC(98caff66) SHA1(e201bb0119bc6560b7def40d42d2ef5b788ca3d4) )
+ ROM_LOAD16_BYTE( "yuvo_jsp006.4j", 0x000001, 0x80000, CRC(6c9f8048) SHA1(3fd6effa83b0e429b97d55041697f1b5ee6eafe2) )
+ ROM_LOAD16_BYTE( "yuvo_jsp007a.2g", 0x100000, 0x40000, CRC(ccfd5b72) SHA1(29bf14c888731d63f5d6705d0efb840f1de0fc91) ) // 1xxxxxxxxxxxxxxxxx = 0xFF
+ ROM_LOAD16_BYTE( "yuvo_jsp008a.4g", 0x100001, 0x40000, CRC(fdaf369c) SHA1(488741b9f2c5ccd27ee1aa5120834ec8b161d6b1) ) // 1xxxxxxxxxxxxxxxxx = 0xFF
+
+ ROM_REGION( 0x80000, "cart.u1", 0 )
+ ROM_LOAD( "jsp.u1", 0x00000, 0x80000, CRC(5478b779) SHA1(5d76645de2833cefb20374480572f06ef496ce30) )
+ ROM_REGION( 0x80000, "cart.u2", 0 )
+ ROM_LOAD( "jsp.u2", 0x00000, 0x80000, CRC(adba9522) SHA1(574e925b35ef3f732989f712caf3f92e16106c22) )
+ ROM_REGION( 0x80000, "cart.u3", 0 )
+ ROM_LOAD( "jsp.u3", 0x00000, 0x80000, CRC(6e293f82) SHA1(e29099c5337c5e7b4776da01a3bd45141b4900b9) )
+ ROM_REGION( 0x80000, "cart.u4", 0 )
+ ROM_LOAD( "jsp.u4", 0x00000, 0x80000, CRC(4caab540) SHA1(5cd88dc93c57d3ae9a6b3773222d8f6001b74634) )
+ ROM_REGION( 0x80000, "cart.u5", 0 )
+ ROM_LOAD( "jsp.u5", 0x00000, 0x80000, CRC(2cfee501) SHA1(2f07179accca0181d20bb0af797194a8ddad4f7a) )
+ ROM_REGION( 0x80000, "cart.u6", 0 )
+ ROM_LOAD( "jsp.u6", 0x00000, 0x80000, CRC(6069d711) SHA1(e969dcc4b5da6951b4140a78fa7cda350167ca66) )
+ ROM_REGION( 0x80000, "cart.u7", 0 )
+ ROM_LOAD( "jsp.u7", 0x00000, 0x80000, CRC(9f58df4d) SHA1(e4933087204624c021420bf632a6ddfd7b26179c) )
+ ROM_REGION( 0x80000, "cart.u8", 0 )
+ ROM_LOAD( "jsp.u8", 0x00000, 0x80000, CRC(829ddce6) SHA1(614ac45d55abe487aaa0e5ca7354926caaa03346) )
+ ROM_REGION( 0x80000, "cart.u9", 0 )
+ ROM_LOAD( "jsp.u9", 0x00000, 0x80000, CRC(e5ee5d8d) SHA1(ea6ea2fe4fc8b9eaf556453b430c85434ddf1570) )
+ ROM_REGION( 0x80000, "cart.u10", 0 )
+ ROM_LOAD( "jsp.u10", 0x00000, 0x80000, CRC(97234b84) SHA1(06a5dc290e925f5d6a8bade89d970964f32c9945) )
+ ROM_REGION( 0x80000, "cart.u11", 0 )
+ ROM_LOAD( "jsp.u11", 0x00000, 0x80000, CRC(8b138563) SHA1(8a2092d80d02ac685014540837b9aa38dfe0eb47) )
+ ROM_REGION( 0x80000, "cart.u12", 0 )
+ ROM_LOAD( "jsp.u12", 0x00000, 0x80000, CRC(10001cab) SHA1(5de49061f9ab81a4dc7e3405132ecec35a63248d) )
+
+ ROM_REGION( 0x100000, "oki", 0 )
+ ROM_LOAD( "yuvo_jsp001.ic14", 0x00000, 0x80000, CRC(bf2b4557) SHA1(932b96f4b3553e9d52509d678c7c2d4dcfc32cd7) )
+ ROM_LOAD( "yuvo_jsp002.ic13", 0x80000, 0x80000, CRC(0eb6db96) SHA1(e5f88f5357709def987f807d1a2d21514b5aa107) ) // 1ST AND 2ND HALF IDENTICAL
+
+ ROM_REGION( 0x117, "pld", 0 )
+ ROM_LOAD( "jsp-frm.ic100", 0x000, 0x117, NO_DUMP )
+ ROM_LOAD( "jsp-map.ic4", 0x000, 0x117, NO_DUMP )
+ ROM_LOAD( "jsp-sub.1f", 0x000, 0x117, NO_DUMP )
+ 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 )
diff --git a/src/mame/drivers/jp.c b/src/mame/drivers/jp.c
index 2c81d48f89f..56216070ac8 100644
--- a/src/mame/drivers/jp.c
+++ b/src/mame/drivers/jp.c
@@ -466,15 +466,15 @@ ROM_START(petaco2)
ROM_END
// different hardware
-GAME(1984, petaco, 0, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "Petaco", GAME_IS_SKELETON_MECHANICAL)
+GAME(1984, petaco, 0, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "Petaco", MACHINE_IS_SKELETON_MECHANICAL)
// mostly ok
-GAME(1985, petaco2, 0, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "Petaco 2", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
-GAME(1985, faeton, 0, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "Faeton", GAME_MECHANICAL)
-GAME(1986, halley, 0, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "Halley Comet", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
-GAME(1986, halleya, halley, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "Halley Comet (alternate version)", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
-GAME(1986, aqualand, 0, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "Aqualand", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
-GAME(1986, america, 0, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "America 1492", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
-GAME(1986, olympus, 0, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "Olympus", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
-GAME(1987, lortium, 0, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "Lortium", GAME_IS_SKELETON_MECHANICAL)
-GAME(19??, pimbal, 0, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "Pimbal (Pinball 3000)", GAME_IS_SKELETON_MECHANICAL)
+GAME(1985, petaco2, 0, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "Petaco 2", MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND )
+GAME(1985, faeton, 0, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "Faeton", MACHINE_MECHANICAL)
+GAME(1986, halley, 0, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "Halley Comet", MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND )
+GAME(1986, halleya, halley, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "Halley Comet (alternate version)", MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND )
+GAME(1986, aqualand, 0, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "Aqualand", MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND )
+GAME(1986, america, 0, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "America 1492", MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND )
+GAME(1986, olympus, 0, jp, jp, jp_state, jp, ROT0, "Juegos Populares", "Olympus", MACHINE_MECHANICAL | 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.c b/src/mame/drivers/jpmimpct.c
index 47fe3e69d45..e1855657af3 100644
--- a/src/mame/drivers/jpmimpct.c
+++ b/src/mame/drivers/jpmimpct.c
@@ -26,7 +26,7 @@
* During the attract mode of Cluedo, just after the camera flash,
the camera colours go screwy and proceeding text is printed behind
the camera. Is it a TMS34010 emulation flaw or original game code bug?
- For now, the GAME_IMPERFECT_GRAPHICS flag remains.
+ For now, the MACHINE_IMPERFECT_GRAPHICS flag remains.
Mechanical games note:
@@ -1738,20 +1738,20 @@ ROM_END
/* Video */
-GAME( 1995, cluedo, 0, jpmimpct, cluedo, driver_device, 0, ROT0, "JPM", "Cluedo (prod. 2D)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1995, cluedod, cluedo, jpmimpct, cluedo, driver_device, 0, ROT0, "JPM", "Cluedo (prod. 2D) (Protocol)",GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1995, cluedo2c, cluedo, jpmimpct, cluedo, driver_device, 0, ROT0, "JPM", "Cluedo (prod. 2C)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1995, cluedo2, cluedo, jpmimpct, cluedo, driver_device, 0, ROT0, "JPM", "Cluedo (prod. 2)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1996, trivialp, 0, jpmimpct, trivialp, driver_device, 0, ROT0, "JPM", "Trivial Pursuit (New Edition) (prod. 1D)", GAME_SUPPORTS_SAVE )
-GAME( 1996, trivialpd,trivialp,jpmimpct, trivialp, driver_device, 0, ROT0, "JPM", "Trivial Pursuit (New Edition) (prod. 1D) (Protocol)",GAME_SUPPORTS_SAVE )
-GAME( 1996, trivialpo,trivialp,jpmimpct, trivialp, driver_device, 0, ROT0, "JPM", "Trivial Pursuit", GAME_SUPPORTS_SAVE )
-GAME( 1997, scrabble, 0, jpmimpct, scrabble, driver_device, 0, ROT0, "JPM", "Scrabble (rev. F)", GAME_SUPPORTS_SAVE )
-GAME( 1997, scrabbled,scrabble,jpmimpct, scrabble, driver_device, 0, ROT0, "JPM", "Scrabble (rev. F) (Protocol)",GAME_SUPPORTS_SAVE )
-GAME( 1998, hngmnjpm, 0, jpmimpct, hngmnjpm, driver_device, 0, ROT0, "JPM", "Hangman (JPM)", GAME_SUPPORTS_SAVE )
-GAME( 1998, hngmnjpmd,hngmnjpm,jpmimpct, hngmnjpm, driver_device, 0, ROT0, "JPM", "Hangman (JPM) (Protocol)", GAME_SUPPORTS_SAVE )
-GAME( 1999, coronatn, 0, jpmimpct, coronatn, driver_device, 0, ROT0, "JPM", "Coronation Street Quiz Game", GAME_SUPPORTS_SAVE )
-GAME( 1999, coronatnd,coronatn,jpmimpct, coronatn, driver_device, 0, ROT0, "JPM", "Coronation Street Quiz Game (Protocol)", GAME_SUPPORTS_SAVE )
-GAME( 199?, tqst, 0, jpmimpct, cluedo , driver_device, 0, ROT0, "JPM", "Treasure Quest" , GAME_NOT_WORKING) // incomplete (ACE?)
-GAME( 199?, snlad, 0, jpmimpct, cluedo , driver_device, 0, ROT0, "JPM", "Snake & Ladders" , GAME_NOT_WORKING) // incomplete
-GAME( 199?, buzzundr, 0, jpmimpct, cluedo , driver_device, 0, ROT0, "Ace", "Buzzundrum (Ace)", GAME_NOT_WORKING )
-GAME( 199?, monspdr , 0, jpmimpct, cluedo , driver_device, 0, ROT0, "Ace", "Money Spider (Ace)", GAME_NOT_WORKING )
+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 )
diff --git a/src/mame/drivers/jpmimpctsw.c b/src/mame/drivers/jpmimpctsw.c
index de6b28e67f8..4925200e4bf 100644
--- a/src/mame/drivers/jpmimpctsw.c
+++ b/src/mame/drivers/jpmimpctsw.c
@@ -7813,7 +7813,7 @@ ROM_END
/* Mechanical Below */
-#define GAME_FLAGS GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL|GAME_NO_SOUND
+#define GAME_FLAGS MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL|MACHINE_NO_SOUND
GAME( 199?, j6fifth , 0 , impctawp, tbirds, driver_device, 0, ROT0, "Ace", "5th Dimension (Ace) (IMPACT)", GAME_FLAGS )
diff --git a/src/mame/drivers/jpmmps.c b/src/mame/drivers/jpmmps.c
index 6feb43b4a7a..5b396248b4d 100644
--- a/src/mame/drivers/jpmmps.c
+++ b/src/mame/drivers/jpmmps.c
@@ -2022,211 +2022,211 @@ ROM_END
-GAME(198?, j2adnote ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Add A Note (JPM) (MPS, set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2adnotea,j2adnote ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Add A Note (JPM) (MPS, set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2adnoteb,j2adnote ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Add A Note (JPM) (MPS, set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2adnotec,j2adnote ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Add A Note (JPM) (MPS, set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2adnoted,j2adnote ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Add A Note (JPM) (MPS, set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2adnotee,j2adnote ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Add A Note (JPM) (MPS, set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2adnotef,j2adnote ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Add A Note (JPM) (MPS, set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2adnoteg,j2adnote ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Add A Note (JPM) (MPS, set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2adnoteh,j2adnote ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Add A Note (JPM) (MPS, set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2adnotei,j2adnote ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Add A Note (JPM) (MPS, set 10)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2bankch ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Bank Chase (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2bankrd ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Bank Raid (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2bigbnk ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Big Banker (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2bigbox ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Big Box (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2bigbuk ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Big Buck$ (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2bigdl ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Big Deal (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2blkchy ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Black Cherry (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2cashbn ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Cash Bonus Club (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2cashfl ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Cash Falls (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2cashrl ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Cash Reels (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2cashrv ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Cash Reserve (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2cashro ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Cash Rolls (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2cashtk ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Cash Track (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2cashtd ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Cash Track Deluxe (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2coppot ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Copper Pot (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2coprun ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Copper Run (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2cprndx ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Copper Run Deluxe (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2crkbnk ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Crack The Bank (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2droplt ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Drop The Lot (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2dropld ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Drop The Lot Deluxe (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2ewn ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Each Way Nudger (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2ews ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Each Way Shuffle (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2exec ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Executive Club (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2fasttk ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Fast Trak (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2fqueen ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Find The Queen (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2fiveal ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Five Alive (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2fiveln ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Five Liner (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2fws ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Five Way Shuffle (Set 1) (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2fwsa ,j2fws ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Five Way Shuffle (Set 2) (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2frmtch ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Fruit Match (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2fullhs ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Full House Club (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2ghostb ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Ghostbuster (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2goldrn ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Gold Run (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2goldbr ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Golden Bars (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2gldchy ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Golden Cherry (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2gldwin ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Golden Win (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2hinote ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Hi Note (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2hiroll ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Hi Roller (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2hotpot ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Hot Pot (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2hotptd ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Hot Pot Deluxe (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2hotsht ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Hot Shot Club (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2hypnot ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Hypernote (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2jackbr ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Jackpot Bars (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2jackdc ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Jackpot Dice (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2jokers ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Jokers (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2kingcl ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","King Of Clubs (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2litean ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Lite A Nudge (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2lovsht ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Loot Shoot (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2lovshd ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Loot Shoot Deluxe (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2luckar ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Lucky Arrows (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2lucky2 ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Lucky 2s (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2monblt ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Money Belt (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2mongam ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Money Game (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2mongmd ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Money Game Deluxe (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2multwn ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Multi Win (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2notexc ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Note Exchange (Set 1) (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2notexca,j2notexc ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Note Exchange (Set 2) (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2notexcb,j2notexc ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Note Exchange (Set 3) (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2notesh ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Note Shoot (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2nudbnz ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Nudge Bonanza Deluxe (Set 1) (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2nudbnza,j2nudbnz ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Nudge Bonanza Deluxe (Set 2) (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2nuddup ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Nudge Double Up (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2nuddud ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Nudge Double Up Deluxe (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2nudup3 ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Nudge Double Up MkIII (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2nudshf ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Nudge Shuffler (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2plsmon ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Plus Money (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2plsmnd ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Plus Money Deluxe (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2plsnud ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Plus Nudge (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2potlck ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Pot Luck (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2pndrsh ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Pound Rush (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2pyramd ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Pyramid (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2reelbn ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Reel Bingo Club (Set 1) (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2reelbna,j2reelbn ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Reel Bingo Club (Set 2) (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2reelbo ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Reel Bonus (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2reelmg ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Reel Magic (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2reelmgd,j2reelmg ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Reel Magic (JPM) [Dutch] (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2reelmc ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Reel Magic Club (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2reelmo ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Reel Money (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2rotnot ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Rota Note (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2roulcl ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Roulette Club (JPM) [Mps] (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2rdclb ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Royal Deal Club (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2slvrgh ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Silver Ghost (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2sldgld ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Solid Gold (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2spcrsv ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Special Reserve (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2stahed ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Streets Ahead (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2supfrt ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Supa Fruit (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2supfrc ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Supa Fruit Club (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(1987, j2supsft ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Supashifta (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2supstp ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Supa Steppa (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2suptrk ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Supa Track (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2suprft ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Super Fruit (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2supln ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Super Line (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2suppot ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Super Pots (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2suprl ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Super Reel (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2suprsh ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Supershot (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2supstr ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Superstars (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2swbank ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Switch Back (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2take2 ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Take 2 (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2topsht ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Top Shot (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2westrn ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Western (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-
-
-GAME(198?, j2blustr ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","Blue Streak (Pcp) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2cshalm ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","Cash Alarm (Pcp) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2cshcrd ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","Cash Cards (Pcp) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2cshfil ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","Cash-Filla (Pcp) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2cshsmh ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","Cash Smash (Pcp) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2criscr ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","Criss Cross Jackpot (Pcp) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2frucnx ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","Fruit Connexion (Pcp) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2hitmon ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","Hit Money (Pcp) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2penny ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","In For A Penny In For A Pound (Pcp) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2maxima ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","Maxima (Pcp) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2montrp ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","Money Trapper (Pcp) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2nudmon ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","Nudge Money (Pcp) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2paypkt ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","Pay Packet (Pcp) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2silvcl ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","Silver Classic (Pcp) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2silvsh ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","Silver Shot (Pcp) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2sstrea ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","Supa Streak (Pcp) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2tstplt ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","Test Pilot (Set 1) (Pcp) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2tstplta,j2tstplt ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","Test Pilot (Set 2) (Pcp) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-
-GAME(198?, j2bonanz ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Eurocoin","Bonanza (Eurocoin) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2supchy ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Eurocoin","Super Cherry (Eurocoin) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-
-GAME(198?, j2hilocl ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Crystal","Hi Lo Climber Club (Crystal) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2litnot ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Crystal","Lite A Note Club (Crystal) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2missis ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Crystal","Mississippi Gambler Club (Crystal) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-
-GAME(198?, j2always ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Bwb","Always Eight (Bwb) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2coinsh ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Bwb","Coin Shoot (Bwb) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2nudfev ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Bwb","Nudge Fever (Bwb) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2trail ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Bwb","Trailblazer (Bwb) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2wag ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Bwb","Win-A-Gain (Bwb) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-
-GAME(198?, j2cshnud ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Mdm","Cash Nudger (Mdm) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2fivepn ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Mdm","Fivepenny Nudger (Mdm) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2nolimt ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Mdm","No Limit Nudge (Mdm) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-
-GAME(198?, j2strk10 ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Ace?","Strike Ten (Ace) (MPS)", GAME_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,jpmmps,ROT0, "JPM","Bank Roll (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2bodym ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Body Match (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2cvault ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Cash Vault (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2cashab ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Cashablanca (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2cashry ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","Cashino Royale (Pcp) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2casino ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","Casino Classic (Pcp) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2coinct ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Coin Count (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2loots ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","Loot Shoot (Pcp) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2match ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Match It (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2monbnd ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Money Bands (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2monmtx ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Bwb","Money Matrix (Bwb) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2tst ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","MPS 1 Test Rom (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2nudnud ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Nudge Nudge (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2pinac ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Pinnacle (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2pinclb ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Pinnacle Club (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2reelcz ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Reel Crazy (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2reeldc ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Reel Deal Club (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2topcd ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Bwb","Top Card (Bwb) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2xxx ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Bwb","Triple X (Bwb) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2tupnud ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Tuppenny Nudger (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2wrb ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Wild Reel Bingo (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2ncsp ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Bwb","unknown 'ncsp0pp' (Bwb) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2nrrp ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Bwb","unknown 'nprpopp' (Bwb) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2nsc15 ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","unknown 'nsc15' (Pcp) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2nsw12 ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","unknown 'nsw12' (Pcp) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-
-GAME(198?, j2club77 ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "<unknown>","Club 77 (Unk) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2contnd ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Mdm","Continuous Nudger (Mdm) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2crown ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "<unknown>","Crown Dealer (Unk) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2hirola ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "<unknown>","Hi Roll (Unk) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2monmin ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "<unknown>","Money Mine (Unk) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2notspn ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "<unknown>","Note Spinner (Unk) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2super7 ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "<unknown>","Super 7's (Unk) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2sex ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "<unknown>","Super Exchanger (Unk) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2sng ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Cotswold Microsystems","Super Nudge Gambler (Cotswold Microsystems) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2tupnd ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Mdm","Tuppenny Nudger (Mdm) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2008 ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "<unknown>","unknown '008' (Unk) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2chsn ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "<unknown>","unknown 'chsnsn05' (Unk) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2lhs ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "<unknown>","unknown 'lhs' (Unk) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2nn2 ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "<unknown>","unknown 'nn_2' (Unk) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2rm941 ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "<unknown>","unknown 'rm941' (Unk) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2pharo ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "<unknown>","Pharoah (Unk) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-
-GAME(198?, j2nud5p ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","5p Nudger (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2b7 ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Bar 7? (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2ss ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Supa Stepper (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2nbz ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Nudge Bonanza (JPM) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-
-GAME(198?, j2clbbin ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Crystal?","Club Bingo (Crystal) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-
-GAME(198?, j2sirich ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Strike It Rich (JPM) (MPS) (set 1)", GAME_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,jpmmps,ROT0, "JPM","Strike It Rich (JPM) (MPS) (set 2)", GAME_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,jpmmps,ROT0, "<unknown>","Hot Cash (Unk) (MPS)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j2sset ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "<unknown>","Sunset Strip (v2.0) (Unk) (MPS?)", GAME_IS_SKELETON_MECHANICAL )
+GAME(198?, j2adnote ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Add A Note (JPM) (MPS, set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2adnotea,j2adnote ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Add A Note (JPM) (MPS, set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2adnoteb,j2adnote ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Add A Note (JPM) (MPS, set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2adnotec,j2adnote ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Add A Note (JPM) (MPS, set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2adnoted,j2adnote ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Add A Note (JPM) (MPS, set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2adnotee,j2adnote ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Add A Note (JPM) (MPS, set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2adnotef,j2adnote ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Add A Note (JPM) (MPS, set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2adnoteg,j2adnote ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Add A Note (JPM) (MPS, set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2adnoteh,j2adnote ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Add A Note (JPM) (MPS, set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2adnotei,j2adnote ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Add A Note (JPM) (MPS, set 10)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2bankch ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Bank Chase (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2bankrd ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Bank Raid (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2bigbnk ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Big Banker (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2bigbox ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Big Box (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2bigbuk ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Big Buck$ (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2bigdl ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Big Deal (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2blkchy ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Black Cherry (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2cashbn ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Cash Bonus Club (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2cashfl ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Cash Falls (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2cashrl ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Cash Reels (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2cashrv ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Cash Reserve (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2cashro ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Cash Rolls (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2cashtk ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Cash Track (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2cashtd ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Cash Track Deluxe (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2coppot ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Copper Pot (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2coprun ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Copper Run (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2cprndx ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Copper Run Deluxe (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2crkbnk ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Crack The Bank (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2droplt ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Drop The Lot (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2dropld ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Drop The Lot Deluxe (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2ewn ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Each Way Nudger (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2ews ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Each Way Shuffle (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2exec ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Executive Club (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2fasttk ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Fast Trak (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2fqueen ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Find The Queen (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2fiveal ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Five Alive (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2fiveln ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Five Liner (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2fws ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Five Way Shuffle (Set 1) (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2fwsa ,j2fws ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Five Way Shuffle (Set 2) (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2frmtch ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Fruit Match (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2fullhs ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Full House Club (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2ghostb ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Ghostbuster (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2goldrn ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Gold Run (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2goldbr ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Golden Bars (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2gldchy ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Golden Cherry (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2gldwin ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Golden Win (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2hinote ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Hi Note (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2hiroll ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Hi Roller (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2hotpot ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Hot Pot (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2hotptd ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Hot Pot Deluxe (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2hotsht ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Hot Shot Club (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2hypnot ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Hypernote (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2jackbr ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Jackpot Bars (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2jackdc ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Jackpot Dice (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2jokers ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Jokers (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2kingcl ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","King Of Clubs (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2litean ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Lite A Nudge (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2lovsht ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Loot Shoot (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2lovshd ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Loot Shoot Deluxe (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2luckar ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Lucky Arrows (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2lucky2 ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Lucky 2s (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2monblt ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Money Belt (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2mongam ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Money Game (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2mongmd ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Money Game Deluxe (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2multwn ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Multi Win (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2notexc ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Note Exchange (Set 1) (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2notexca,j2notexc ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Note Exchange (Set 2) (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2notexcb,j2notexc ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Note Exchange (Set 3) (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2notesh ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Note Shoot (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2nudbnz ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Nudge Bonanza Deluxe (Set 1) (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2nudbnza,j2nudbnz ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Nudge Bonanza Deluxe (Set 2) (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2nuddup ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Nudge Double Up (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2nuddud ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Nudge Double Up Deluxe (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2nudup3 ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Nudge Double Up MkIII (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2nudshf ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Nudge Shuffler (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2plsmon ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Plus Money (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2plsmnd ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Plus Money Deluxe (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2plsnud ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Plus Nudge (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2potlck ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Pot Luck (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2pndrsh ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Pound Rush (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2pyramd ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Pyramid (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2reelbn ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Reel Bingo Club (Set 1) (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2reelbna,j2reelbn ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Reel Bingo Club (Set 2) (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2reelbo ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Reel Bonus (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2reelmg ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Reel Magic (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2reelmgd,j2reelmg ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Reel Magic (JPM) [Dutch] (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2reelmc ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Reel Magic Club (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2reelmo ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Reel Money (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2rotnot ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Rota Note (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2roulcl ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Roulette Club (JPM) [Mps] (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2rdclb ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Royal Deal Club (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2slvrgh ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Silver Ghost (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2sldgld ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Solid Gold (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2spcrsv ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Special Reserve (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2stahed ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Streets Ahead (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2supfrt ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Supa Fruit (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2supfrc ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Supa Fruit Club (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(1987, j2supsft ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Supashifta (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2supstp ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Supa Steppa (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2suptrk ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Supa Track (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2suprft ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Super Fruit (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2supln ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Super Line (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2suppot ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Super Pots (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2suprl ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Super Reel (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2suprsh ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Supershot (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2supstr ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Superstars (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2swbank ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Switch Back (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2take2 ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Take 2 (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2topsht ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Top Shot (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2westrn ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Western (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+
+
+GAME(198?, j2blustr ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","Blue Streak (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2cshalm ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","Cash Alarm (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2cshcrd ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","Cash Cards (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2cshfil ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","Cash-Filla (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2cshsmh ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","Cash Smash (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2criscr ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","Criss Cross Jackpot (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2frucnx ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","Fruit Connexion (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2hitmon ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","Hit Money (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2penny ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","In For A Penny In For A Pound (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2maxima ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","Maxima (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2montrp ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","Money Trapper (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2nudmon ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","Nudge Money (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2paypkt ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","Pay Packet (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2silvcl ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","Silver Classic (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2silvsh ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","Silver Shot (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2sstrea ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","Supa Streak (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2tstplt ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","Test Pilot (Set 1) (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2tstplta,j2tstplt ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","Test Pilot (Set 2) (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME(198?, j2bonanz ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Eurocoin","Bonanza (Eurocoin) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2supchy ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Eurocoin","Super Cherry (Eurocoin) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME(198?, j2hilocl ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Crystal","Hi Lo Climber Club (Crystal) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2litnot ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Crystal","Lite A Note Club (Crystal) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2missis ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Crystal","Mississippi Gambler Club (Crystal) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME(198?, j2always ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Bwb","Always Eight (Bwb) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2coinsh ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Bwb","Coin Shoot (Bwb) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2nudfev ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Bwb","Nudge Fever (Bwb) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2trail ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Bwb","Trailblazer (Bwb) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2wag ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Bwb","Win-A-Gain (Bwb) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME(198?, j2cshnud ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Mdm","Cash Nudger (Mdm) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2fivepn ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Mdm","Fivepenny Nudger (Mdm) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2nolimt ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Mdm","No Limit Nudge (Mdm) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME(198?, j2strk10 ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,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,jpmmps,ROT0, "JPM","Bank Roll (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2bodym ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Body Match (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2cvault ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Cash Vault (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2cashab ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Cashablanca (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2cashry ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","Cashino Royale (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2casino ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","Casino Classic (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2coinct ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Coin Count (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2loots ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","Loot Shoot (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2match ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Match It (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2monbnd ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Money Bands (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2monmtx ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Bwb","Money Matrix (Bwb) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2tst ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","MPS 1 Test Rom (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2nudnud ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Nudge Nudge (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2pinac ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Pinnacle (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2pinclb ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Pinnacle Club (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2reelcz ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Reel Crazy (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2reeldc ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Reel Deal Club (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2topcd ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Bwb","Top Card (Bwb) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2xxx ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Bwb","Triple X (Bwb) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2tupnud ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Tuppenny Nudger (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2wrb ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Wild Reel Bingo (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2ncsp ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Bwb","unknown 'ncsp0pp' (Bwb) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2nrrp ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Bwb","unknown 'nprpopp' (Bwb) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2nsc15 ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","unknown 'nsc15' (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2nsw12 ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Pcp","unknown 'nsw12' (Pcp) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME(198?, j2club77 ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "<unknown>","Club 77 (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2contnd ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Mdm","Continuous Nudger (Mdm) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2crown ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "<unknown>","Crown Dealer (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2hirola ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "<unknown>","Hi Roll (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2monmin ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "<unknown>","Money Mine (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2notspn ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "<unknown>","Note Spinner (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2super7 ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "<unknown>","Super 7's (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2sex ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "<unknown>","Super Exchanger (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2sng ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Cotswold Microsystems","Super Nudge Gambler (Cotswold Microsystems) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2tupnd ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Mdm","Tuppenny Nudger (Mdm) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2008 ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "<unknown>","unknown '008' (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2chsn ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "<unknown>","unknown 'chsnsn05' (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2lhs ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "<unknown>","unknown 'lhs' (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2nn2 ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "<unknown>","unknown 'nn_2' (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2rm941 ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "<unknown>","unknown 'rm941' (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2pharo ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "<unknown>","Pharoah (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME(198?, j2nud5p ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","5p Nudger (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2b7 ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Bar 7? (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2ss ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Supa Stepper (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2nbz ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "JPM","Nudge Bonanza (JPM) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME(198?, j2clbbin ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "Crystal?","Club Bingo (Crystal) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME(198?, j2sirich ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,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,jpmmps,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,jpmmps,ROT0, "<unknown>","Hot Cash (Unk) (MPS)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j2sset ,0 ,jpmmps,jpmmps, jpmmps_state,jpmmps,ROT0, "<unknown>","Sunset Strip (v2.0) (Unk) (MPS?)", MACHINE_IS_SKELETON_MECHANICAL )
diff --git a/src/mame/drivers/jpms80.c b/src/mame/drivers/jpms80.c
index 584720cb843..9ecacdd29d8 100644
--- a/src/mame/drivers/jpms80.c
+++ b/src/mame/drivers/jpms80.c
@@ -286,29 +286,29 @@ ROM_END
-GAME(198?, j80bac ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Bank A Coin (JPM) (SYSTEM80)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j80bounc ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Bouncer (JPM) (SYSTEM80)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j80frogh ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Frog Hop (JPM) (SYSTEM80)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j80fruit ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Fruit Snappa (JPM) (SYSTEM80)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j80golds ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Golden Steppa (JPM) (SYSTEM80)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j80hotln ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Hot Lines (JPM) (SYSTEM80)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j80myspn ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Mystery Spin (JPM) (SYSTEM80)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j80nudg2 ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Nudge Double Up MkII (JPM) (SYSTEM80)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j80rr ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Road Runner (JPM) (SYSTEM80, set 1)", GAME_IS_SKELETON_MECHANICAL ) // was also in a set named 'Route 66' with identical roms, but text in ROM indicates name is Road Runner, maybe a reskin?
-GAME(198?, j80rra ,j80rr ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Road Runner (JPM) (SYSTEM80, set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j80supst ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Supa Steppa (JPM) (SYSTEM80)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j80supbk ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Superbank (JPM) (SYSTEM80)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j80topsp ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Top Sprint (JPM) (SYSTEM80)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j80topup ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Top Up (JPM) (SYSTEM80)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j80tumbl ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Tumble (JPM) (SYSTEM80)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j80wsprt, 0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Winsprint (JPM) (V4, 5x20p) (SYSTEM80)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j80wsprt3, j80wsprt ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Winsprint (JPM) (V3, 50p, 5 credits) (SYSTEM80)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j80wsprt2,j80wsprt ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Winsprint (JPM) (V2, 10x10p) (SYSTEM80)", GAME_IS_SKELETON_MECHANICAL )
-
-GAME(198?, j80blbnk ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "PCP","Blankity Bank (PCP) (SYSTEM80)", GAME_IS_SKELETON_MECHANICAL )
+GAME(198?, j80bac ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Bank A Coin (JPM) (SYSTEM80)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j80bounc ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Bouncer (JPM) (SYSTEM80)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j80frogh ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Frog Hop (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 )
+GAME(198?, j80golds ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Golden Steppa (JPM) (SYSTEM80)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j80hotln ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Hot Lines (JPM) (SYSTEM80)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j80myspn ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Mystery Spin (JPM) (SYSTEM80)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j80nudg2 ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Nudge Double Up MkII (JPM) (SYSTEM80)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j80rr ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Road Runner (JPM) (SYSTEM80, set 1)", MACHINE_IS_SKELETON_MECHANICAL ) // was also in a set named 'Route 66' with identical roms, but text in ROM indicates name is Road Runner, maybe a reskin?
+GAME(198?, j80rra ,j80rr ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Road Runner (JPM) (SYSTEM80, set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j80supst ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Supa Steppa (JPM) (SYSTEM80)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j80supbk ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Superbank (JPM) (SYSTEM80)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j80topsp ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Top Sprint (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 )
+GAME(198?, j80wsprt, 0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Winsprint (JPM) (V4, 5x20p) (SYSTEM80)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j80wsprt3, j80wsprt ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Winsprint (JPM) (V3, 50p, 5 credits) (SYSTEM80)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME(198?, j80wsprt2,j80wsprt ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Winsprint (JPM) (V2, 10x10p) (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)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j80fortr ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Fortune Trail (JPM)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j80mster ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Masterspy (Pcp)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j80plsnd ,0 ,jpms80,jpms80, jpms80_state,jpms80,ROT0, "JPM","Plus Nudge (JPM)", GAME_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.c b/src/mame/drivers/jpmsru.c
index 52d93590b1d..5e75986cb62 100644
--- a/src/mame/drivers/jpmsru.c
+++ b/src/mame/drivers/jpmsru.c
@@ -165,22 +165,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)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j_ewnda ,j_ewnud ,jpmsru,jpmsru, jpmsru_state,jpmsru,ROT0, "Barcrest?","Each Way Nudger (Barcrest?, set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j_ewnd20 ,j_ewnud ,jpmsru,jpmsru, jpmsru_state,jpmsru,ROT0, "Barcrest?","Each Way Nudger (Barcrest?, set 3, version 20?)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j_ews ,0 ,jpmsru,jpmsru, jpmsru_state,jpmsru,ROT0, "Barcrest?","Each Way Shifter (Barcrest?, set 1, version 16)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j_ews8a ,j_ews ,jpmsru,jpmsru, jpmsru_state,jpmsru,ROT0, "Barcrest?","Each Way Shifter (Barcrest?, set 2, version 8a)", GAME_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, "<unknown>","Lucky Aces (Unk)", GAME_IS_SKELETON_MECHANICAL )
-GAME(198?, j_super2 ,0 ,jpmsru,jpmsru, jpmsru_state,jpmsru,ROT0, "JPM","Super 2 (JPM)", GAME_IS_SKELETON_MECHANICAL )
+GAME(198?, j_luckac ,0 ,jpmsru,jpmsru, jpmsru_state,jpmsru,ROT0, "<unknown>","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, "<unknown>","Lucky Twos?", GAME_IS_SKELETON_MECHANICAL )
+GAME(198?, j_luck2 ,0 ,jpmsru_4,jpmsru, jpmsru_state,jpmsru,ROT0, "<unknown>","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)", GAME_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)", GAME_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?)", GAME_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)", GAME_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.c b/src/mame/drivers/jpmsys5.c
index 85b23a65d63..300a317c629 100644
--- a/src/mame/drivers/jpmsys5.c
+++ b/src/mame/drivers/jpmsys5.c
@@ -1030,4 +1030,4 @@ GAME( 1994, monopoly , 0 , jpmsys5v, monopoly, driver_device, 0, ROT0
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)", GAME_NOT_WORKING|GAME_NO_SOUND ) // shows a loading error.. is the set incomplete?
+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?
diff --git a/src/mame/drivers/jpmsys5sw.c b/src/mame/drivers/jpmsys5sw.c
index da92b96b80f..2a6589cd28a 100644
--- a/src/mame/drivers/jpmsys5sw.c
+++ b/src/mame/drivers/jpmsys5sw.c
@@ -1384,7 +1384,7 @@ ROM_END
-#define GAME_FLAGS GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL|GAME_NO_SOUND
+#define GAME_FLAGS MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL|MACHINE_NO_SOUND
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 )
diff --git a/src/mame/drivers/jpmsys7.c b/src/mame/drivers/jpmsys7.c
index 238886497c1..44b8134d67e 100644
--- a/src/mame/drivers/jpmsys7.c
+++ b/src/mame/drivers/jpmsys7.c
@@ -225,15 +225,15 @@ ROM_START( j7bullio )
ROM_END
-GAME( 200?, j7bmagic ,0, jpmsys7, jpmsys7, driver_device, 0, ROT0, "JPM","Black Magic (JPM)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, j7cexprs ,0, jpmsys7, jpmsys7, driver_device, 0, ROT0, "JPM","Cash Xpress (JPM)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, j7crztrl ,0, jpmsys7, jpmsys7, driver_device, 0, ROT0, "JPM","Crazy Trails (JPM)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, j7fantaz ,0, jpmsys7, jpmsys7, driver_device, 0, ROT0, "JPM","Fantaztec (JPM)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, j7kerchn ,0, jpmsys7, jpmsys7, driver_device, 0, ROT0, "JPM","Ker - Chinq (JPM)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, j7razzma ,0, jpmsys7, jpmsys7, driver_device, 0, ROT0, "JPM","Razzamataz (JPM) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, j7razzmaa ,j7razzma, jpmsys7, jpmsys7, driver_device, 0, ROT0, "JPM","Razzamataz (JPM) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, j7r2roll ,0, jpmsys7, jpmsys7, driver_device, 0, ROT0, "JPM","Ready To Roll (JPM)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, j7tubgld ,0, jpmsys7, jpmsys7, driver_device, 0, ROT0, "JPM","Turbo Gold (JPM)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, j7wldwkd ,0, jpmsys7, jpmsys7, driver_device, 0, ROT0, "JPM","Wild 'N' Wicked (JPM)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, j7bullio ,0, jpmsys7, jpmsys7, driver_device, 0, ROT0, "Ace","Bullionaire (Ace)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, j7clbmag ,0, jpmsys7, jpmsys7, driver_device, 0, ROT0, "Qps","Club Magic (JPM)", GAME_IS_SKELETON_MECHANICAL )
+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 )
diff --git a/src/mess/drivers/jr100.c b/src/mame/drivers/jr100.c
index b8a09453c92..b8a09453c92 100644
--- a/src/mess/drivers/jr100.c
+++ b/src/mame/drivers/jr100.c
diff --git a/src/mess/drivers/jr200.c b/src/mame/drivers/jr200.c
index 077e09fe411..8e2fba33614 100644
--- a/src/mess/drivers/jr200.c
+++ b/src/mame/drivers/jr200.c
@@ -70,7 +70,6 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- DECLARE_PALETTE_INIT(jr200);
UINT32 screen_update_jr200(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TIMER_CALLBACK_MEMBER(timer_d_callback);
@@ -495,14 +494,6 @@ static INPUT_PORTS_START( jr200 )
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("RIGHT CTRL") PORT_CODE(KEYCODE_RCONTROL) PORT_CHAR(UCHAR_MAMEKEY(RCONTROL))
INPUT_PORTS_END
-PALETTE_INIT_MEMBER(jr200_state, jr200)
-{
- int i;
-
- for (i = 0; i < 8; i++)
- palette.set_pen_color(i, pal1bit(i >> 1), pal1bit(i >> 2), pal1bit(i >> 0));
-}
-
static const gfx_layout tiles8x8_layout =
{
8,8,
@@ -548,7 +539,6 @@ static MACHINE_CONFIG_START( jr200, jr200_state )
// MCFG_CPU_ADD("mn1544", MN1544, ?)
-
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -559,9 +549,7 @@ static MACHINE_CONFIG_START( jr200, jr200_state )
MCFG_SCREEN_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", "palette", jr200)
- MCFG_PALETTE_ADD("palette", 8)
- MCFG_PALETTE_INIT_OWNER(jr200_state, jr200)
-
+ MCFG_PALETTE_ADD_3BIT_BRG("palette")
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -609,5 +597,5 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 1982, jr200u, jr200, 0, jr200, jr200, driver_device, 0, "Panasonic", "JR-200U", GAME_NOT_WORKING | GAME_NO_SOUND)
+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)
diff --git a/src/mame/drivers/jrpacman.c b/src/mame/drivers/jrpacman.c
index 6c596be8ae9..773a6788d4a 100644
--- a/src/mame/drivers/jrpacman.c
+++ b/src/mame/drivers/jrpacman.c
@@ -416,5 +416,5 @@ DRIVER_INIT_MEMBER(jrpacman_state,jrpacman)
*
*************************************/
-GAME( 1983, jrpacman, 0, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Bally Midway", "Jr. Pac-Man (11/9/83)", GAME_SUPPORTS_SAVE )
-GAME( 1983, jrpacmanf, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "hack", "Jr. Pac-Man (speedup hack)", GAME_SUPPORTS_SAVE )
+GAME( 1983, jrpacman, 0, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "Bally Midway", "Jr. Pac-Man (11/9/83)", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, jrpacmanf, jrpacman, jrpacman, jrpacman, jrpacman_state, jrpacman, ROT90, "hack", "Jr. Pac-Man (speedup hack)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/jtc.c b/src/mame/drivers/jtc.c
index f871be85e72..fe1a0a4e140 100644
--- a/src/mess/drivers/jtc.c
+++ b/src/mame/drivers/jtc.c
@@ -845,7 +845,7 @@ 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", GAME_NOT_WORKING )
-COMP( 1988, jtces88, jtc, 0, jtces88,jtc, driver_device, 0, "Jugend+Technik", "CompJU+TEr (EMR-ES 1988)", GAME_NOT_WORKING )
-COMP( 1989, jtces23, jtc, 0, jtces23,jtces23, driver_device, 0, "Jugend+Technik", "CompJU+TEr (ES 2.3)", GAME_NOT_WORKING )
-COMP( 1990, jtces40, jtc, 0, jtces40,jtces40, driver_device, 0, "Jugend+Technik", "CompJU+TEr (ES 4.0)", GAME_NOT_WORKING )
+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 )
diff --git a/src/mame/drivers/jubilee.c b/src/mame/drivers/jubilee.c
index 9b82ad69a62..c725146b878 100644
--- a/src/mame/drivers/jubilee.c
+++ b/src/mame/drivers/jubilee.c
@@ -707,4 +707,4 @@ ROM_END
*************************/
/* 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)", GAME_NO_SOUND )
+GAME( 1985, jubileep, 0, jubileep, jubileep, driver_device, 0, ROT0, "Jubilee", "Double-Up Poker (Jubilee)", MACHINE_NO_SOUND )
diff --git a/src/mess/drivers/juicebox.c b/src/mame/drivers/juicebox.c
index 0e84e6a1b20..0e84e6a1b20 100644
--- a/src/mess/drivers/juicebox.c
+++ b/src/mame/drivers/juicebox.c
diff --git a/src/mess/drivers/junior.c b/src/mame/drivers/junior.c
index 52e63a7c215..d40101213d6 100644
--- a/src/mess/drivers/junior.c
+++ b/src/mame/drivers/junior.c
@@ -256,4 +256,4 @@ 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", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW)
+COMP( 1980, junior, 0, 0, junior, junior, driver_device, 0, "Elektor Electronics", "Junior Computer", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW)
diff --git a/src/mame/drivers/junofrst.c b/src/mame/drivers/junofrst.c
index 57bc3dfb294..b83d1d1770b 100644
--- a/src/mame/drivers/junofrst.c
+++ b/src/mame/drivers/junofrst.c
@@ -291,7 +291,7 @@ WRITE8_MEMBER(junofrst_state::irq_enable_w)
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, junofrst_state )
AM_RANGE(0x0000, 0x7fff) AM_RAM AM_SHARE("videoram")
- AM_RANGE(0x8000, 0x800f) AM_RAM AM_SHARE("paletteram")
+ AM_RANGE(0x8000, 0x800f) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x8010, 0x8010) AM_READ_PORT("DSW2")
AM_RANGE(0x801c, 0x801c) AM_READ(watchdog_reset_r)
AM_RANGE(0x8020, 0x8020) AM_READ_PORT("SYSTEM")
@@ -423,6 +423,9 @@ static MACHINE_CONFIG_START( junofrst, junofrst_state )
MCFG_MACHINE_START_OVERRIDE(junofrst_state,junofrst)
MCFG_MACHINE_RESET_OVERRIDE(junofrst_state,junofrst)
+ MCFG_PALETTE_ADD("palette", 16)
+ MCFG_PALETTE_FORMAT(BBGGGRRR)
+
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -511,5 +514,5 @@ DRIVER_INIT_MEMBER(junofrst_state,junofrst)
}
-GAME( 1983, junofrst, 0, junofrst, junofrst, junofrst_state, junofrst, ROT90, "Konami", "Juno First", GAME_SUPPORTS_SAVE )
-GAME( 1983, junofrstg,junofrst, junofrst, junofrst, junofrst_state, junofrst, ROT90, "Konami (Gottlieb license)", "Juno First (Gottlieb)", GAME_SUPPORTS_SAVE )
+GAME( 1983, junofrst, 0, junofrst, junofrst, junofrst_state, junofrst, ROT90, "Konami", "Juno First", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, junofrstg,junofrst, junofrst, junofrst, junofrst_state, junofrst, ROT90, "Konami (Gottlieb license)", "Juno First (Gottlieb)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/ace.c b/src/mame/drivers/jupace.c
index 06cbec86d42..9a3856bcc1c 100644
--- a/src/mess/drivers/ace.c
+++ b/src/mame/drivers/jupace.c
@@ -55,7 +55,95 @@ Ports:
#include "sound/sp0256.h"
#include "sound/speaker.h"
#include "sound/wave.h"
-#include "includes/ace.h"
+
+
+#define Z80_TAG "z0"
+#define AY8910_TAG "ay8910"
+#define I8255_TAG "i8255"
+#define SP0256AL2_TAG "ic1"
+#define Z80PIO_TAG "z80pio"
+#define CENTRONICS_TAG "centronics"
+#define SCREEN_TAG "screen"
+
+class ace_state : public driver_device
+{
+public:
+ ace_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag),
+ m_maincpu(*this, Z80_TAG),
+ m_ppi(*this, I8255_TAG),
+ m_z80pio(*this, Z80PIO_TAG),
+ m_speaker(*this, "speaker"),
+ m_cassette(*this, "cassette"),
+ m_centronics(*this, CENTRONICS_TAG),
+ m_ram(*this, RAM_TAG),
+ m_sp0256(*this, SP0256AL2_TAG),
+ m_video_ram(*this, "video_ram"),
+ m_char_ram(*this, "char_ram"),
+ m_a8(*this, "A8"),
+ m_a9(*this, "A9"),
+ m_a10(*this, "A10"),
+ m_a11(*this, "A11"),
+ m_a12(*this, "A12"),
+ m_a13(*this, "A13"),
+ m_a14(*this, "A14"),
+ m_a15(*this, "A15"),
+ m_joy(*this, "JOY")
+ { }
+
+ virtual void machine_start();
+
+ UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+
+ DECLARE_READ8_MEMBER( io_r );
+ DECLARE_WRITE8_MEMBER( io_w );
+ DECLARE_READ8_MEMBER( ppi_pa_r );
+ DECLARE_WRITE8_MEMBER( ppi_pa_w );
+ DECLARE_READ8_MEMBER( ppi_pb_r );
+ DECLARE_WRITE8_MEMBER( ppi_pb_w );
+ DECLARE_READ8_MEMBER( ppi_pc_r );
+ DECLARE_WRITE8_MEMBER( ppi_pc_w );
+ DECLARE_READ8_MEMBER( ppi_control_r );
+ DECLARE_WRITE8_MEMBER( ppi_control_w );
+ DECLARE_READ8_MEMBER( pio_pa_r );
+ DECLARE_WRITE8_MEMBER( pio_pa_w );
+
+ UINT32 screen_update_ace(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ TIMER_DEVICE_CALLBACK_MEMBER(set_irq);
+ TIMER_DEVICE_CALLBACK_MEMBER(clear_irq);
+ DECLARE_READ8_MEMBER(pio_ad_r);
+ DECLARE_READ8_MEMBER(pio_bd_r);
+ DECLARE_READ8_MEMBER(pio_ac_r);
+ DECLARE_READ8_MEMBER(pio_bc_r);
+ DECLARE_WRITE8_MEMBER(pio_ad_w);
+ DECLARE_WRITE8_MEMBER(pio_bd_w);
+ DECLARE_WRITE8_MEMBER(pio_ac_w);
+ DECLARE_WRITE8_MEMBER(pio_bc_w);
+ DECLARE_READ8_MEMBER(sby_r);
+ DECLARE_WRITE8_MEMBER(ald_w);
+ DECLARE_SNAPSHOT_LOAD_MEMBER( ace );
+
+private:
+ required_device<cpu_device> m_maincpu;
+ required_device<i8255_device> m_ppi;
+ required_device<z80pio_device> m_z80pio;
+ required_device<speaker_sound_device> m_speaker;
+ required_device<cassette_image_device> m_cassette;
+ required_device<centronics_device> m_centronics;
+ required_device<ram_device> m_ram;
+ required_device<sp0256_device> m_sp0256;
+ required_shared_ptr<UINT8> m_video_ram;
+ required_shared_ptr<UINT8> m_char_ram;
+ required_ioport m_a8;
+ required_ioport m_a9;
+ required_ioport m_a10;
+ required_ioport m_a11;
+ required_ioport m_a12;
+ required_ioport m_a13;
+ required_ioport m_a14;
+ required_ioport m_a15;
+ required_ioport m_joy;
+};
/* Load in .ace files. These are memory images of 0x2000 to 0x7fff
@@ -172,17 +260,17 @@ READ8_MEMBER( ace_state::io_r )
{
UINT8 data = 0xff;
- if (!BIT(offset, 8)) data &= ioport("A8")->read();
- if (!BIT(offset, 9)) data &= ioport("A9")->read();
- if (!BIT(offset, 10)) data &= ioport("A10")->read();
- if (!BIT(offset, 11)) data &= ioport("A11")->read();
- if (!BIT(offset, 12)) data &= ioport("A12")->read();
- if (!BIT(offset, 13)) data &= ioport("A13")->read();
- if (!BIT(offset, 14)) data &= ioport("A14")->read();
+ if (!BIT(offset, 8)) data &= m_a8->read();
+ if (!BIT(offset, 9)) data &= m_a9->read();
+ if (!BIT(offset, 10)) data &= m_a10->read();
+ if (!BIT(offset, 11)) data &= m_a11->read();
+ if (!BIT(offset, 12)) data &= m_a12->read();
+ if (!BIT(offset, 13)) data &= m_a13->read();
+ if (!BIT(offset, 14)) data &= m_a14->read();
if (!BIT(offset, 15))
{
- data &= ioport("A15")->read();
+ data &= m_a15->read();
m_cassette->output(-1);
m_speaker->level_w(0);
@@ -264,26 +352,22 @@ WRITE8_MEMBER( ace_state::ppi_control_w )
READ8_MEMBER(ace_state::pio_ad_r)
{
- device_t *device = machine().device(Z80PIO_TAG);
- return dynamic_cast<z80pio_device*>(device)->data_read(0);
+ return m_z80pio->data_read(0);
}
READ8_MEMBER(ace_state::pio_bd_r)
{
- device_t *device = machine().device(Z80PIO_TAG);
- return dynamic_cast<z80pio_device*>(device)->data_read(1);
+ return m_z80pio->data_read(1);
}
READ8_MEMBER(ace_state::pio_ac_r)
{
- device_t *device = machine().device(Z80PIO_TAG);
- return dynamic_cast<z80pio_device*>(device)->control_read();
+ return m_z80pio->control_read();
}
READ8_MEMBER(ace_state::pio_bc_r)
{
- device_t *device = machine().device(Z80PIO_TAG);
- return dynamic_cast<z80pio_device*>(device)->control_read();
+ return m_z80pio->control_read();
}
@@ -293,26 +377,22 @@ READ8_MEMBER(ace_state::pio_bc_r)
WRITE8_MEMBER(ace_state::pio_ad_w)
{
- device_t *device = machine().device(Z80PIO_TAG);
- dynamic_cast<z80pio_device*>(device)->data_write(0, data);
+ m_z80pio->data_write(0, data);
}
WRITE8_MEMBER(ace_state::pio_bd_w)
{
- device_t *device = machine().device(Z80PIO_TAG);
- dynamic_cast<z80pio_device*>(device)->data_write(1, data);
+ m_z80pio->data_write(1, data);
}
WRITE8_MEMBER(ace_state::pio_ac_w)
{
- device_t *device = machine().device(Z80PIO_TAG);
- dynamic_cast<z80pio_device*>(device)->control_write(0, data);
+ m_z80pio->control_write(0, data);
}
WRITE8_MEMBER(ace_state::pio_bc_w)
{
- device_t *device = machine().device(Z80PIO_TAG);
- dynamic_cast<z80pio_device*>(device)->control_write(1, data);
+ m_z80pio->control_write(1, data);
}
diff --git a/src/mess/drivers/jupiter.c b/src/mame/drivers/jupiter.c
index 1bce61303a6..7d0fc11250a 100644
--- a/src/mess/drivers/jupiter.c
+++ b/src/mame/drivers/jupiter.c
@@ -361,5 +361,5 @@ DRIVER_INIT_MEMBER(jupiter3_state,jupiter3)
//**************************************************************************
// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS
-COMP( 1976, jupiter2, 0, 0, jupiter, jupiter, jupiter2_state, jupiter, "Wave Mate", "Jupiter II", GAME_NOT_WORKING | GAME_NO_SOUND_HW )
-COMP( 1976, jupiter3, 0, 0, jupiter3, jupiter, jupiter3_state, jupiter3,"Wave Mate", "Jupiter III", GAME_NOT_WORKING | GAME_NO_SOUND_HW )
+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.c b/src/mame/drivers/jvh.c
index 85b5c878039..ae46237bf2a 100644
--- a/src/mame/drivers/jvh.c
+++ b/src/mame/drivers/jvh.c
@@ -147,5 +147,5 @@ ROM_START(movmastr)
ROM_END
-GAME(1987, escape, 0, jvh, jvh, jvh_state, jvh, ROT0, "Jac Van Ham (Royal)", "Escape", GAME_IS_SKELETON_MECHANICAL)
-GAME(19??, movmastr, 0, jvh2, jvh, jvh_state, jvh, ROT0, "Jac Van Ham (Royal)", "Movie Masters", GAME_IS_SKELETON_MECHANICAL)
+GAME(1987, escape, 0, jvh, jvh, jvh_state, jvh, ROT0, "Jac Van Ham (Royal)", "Escape", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(19??, movmastr, 0, jvh2, jvh, jvh_state, jvh, ROT0, "Jac Van Ham (Royal)", "Movie Masters", MACHINE_IS_SKELETON_MECHANICAL)
diff --git a/src/mess/drivers/k1003.c b/src/mame/drivers/k1003.c
index 72ab976aa6e..3fa0b6d1cd3 100644
--- a/src/mess/drivers/k1003.c
+++ b/src/mame/drivers/k1003.c
@@ -194,4 +194,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND )
+COMP( 1978, k1003, 0, 0, k1003, k1003, driver_device, 0, "Robotron", "K1003", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mess/drivers/k8915.c b/src/mame/drivers/k8915.c
index b630438d196..7ec4cde5d0e 100644
--- a/src/mess/drivers/k8915.c
+++ b/src/mame/drivers/k8915.c
@@ -184,4 +184,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+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.c b/src/mame/drivers/kaneko16.c
index 621c1261d9c..9f28195f9ce 100644
--- a/src/mame/drivers/kaneko16.c
+++ b/src/mame/drivers/kaneko16.c
@@ -36,6 +36,7 @@ Year + Game PCB Notes
94 Great 1000 Miles Rally Z09AF-005 TBSOP01 MCU protection (EEPROM handling etc.)
Bonk's Adventure Z09AF-003 TBSOP01 MCU protection (EEPROM handling, 68k code snippet, data)
Blood Warrior Z09AF-005 TBSOP01 MCU protection (EEPROM handling etc.)
+ Pack'n Bang Bang BW-002 (prototype)
95 Great 1000 Miles Rally 2 M201F00138 TBSOP02 MCU protection (EEPROM handling etc.)
----------------------------------------------------------------------------------------
@@ -84,6 +85,14 @@ Dip locations verified from manual for:
- interrupt timing/behaviour
- replace sample bank copying with new ADDRESS MAP system for OKI and do banking like CPUs
+Non-Bugs (happen on real PCB)
+
+[packbang]
+ - Game crashes or gives you a corrupt stage if you attempt to continue on a bonus stage (due to buggy prototype code)
+ - Background fading appears inverted, fading to a black screen during levels, this is correct
+ - Some screens shown on the flyer (enemy select etc.) are never shown, the flyer probably shows a different version
+ of the game. The backgrounds used can be viewed in test mode.
+
***************************************************************************/
#include "emu.h"
@@ -1428,6 +1437,98 @@ INPUT_PORTS_END
/***************************************************************************
+ Pack'n Bang Bang
+***************************************************************************/
+
+static INPUT_PORTS_START( packbang )
+ PORT_START("P1") /* 680000.w */
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(1)
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
+ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
+ PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("P2") /* 680002.w */
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
+ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2)
+ PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("SYSTEM") /* 680000.w */
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2)
+ PORT_SERVICE_NO_TOGGLE( 0x1000, IP_ACTIVE_LOW )
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_TILT )
+ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SERVICE1 )
+ PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("UNK") /* ? - 680006.w */
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("DSW1")
+ PORT_DIPNAME( 0x01, 0x01, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW1:1")
+ PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC( 0x02, 0x02, "SW1:2" ) /* Listed as "Unused" */
+ PORT_DIPNAME( 0x1c, 0x1c, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:3,4,5")
+ PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( 3C_1C ) )
+ PORT_DIPSETTING( 0x0c, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x1c, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( 2C_3C ) )
+ PORT_DIPSETTING( 0x18, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x14, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( 1C_4C ) )
+ PORT_DIPNAME( 0xe0, 0xe0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW1:6,7,8")
+ PORT_DIPSETTING( 0x60, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0xe0, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( 2C_3C ) )
+ PORT_DIPSETTING( 0xc0, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0xa0, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( 1C_4C ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( 1C_5C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) )
+
+ PORT_START("DSW2")
+ PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:1,2")
+ PORT_DIPSETTING( 0x02, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) )
+ PORT_DIPNAME( 0x04, 0x04, "Timer Speed" ) PORT_DIPLOCATION("SW2:3")
+ PORT_DIPSETTING( 0x00, "Slow" )
+ PORT_DIPSETTING( 0x04, "Standard" )
+ PORT_DIPNAME( 0x18, 0x18, DEF_STR( Language ) ) PORT_DIPLOCATION("SW2:4,5")
+ PORT_DIPSETTING( 0x00, "Invalid" ) // Japanese text, Korean Kaneko logo 'Unusued' according to test mode
+ PORT_DIPSETTING( 0x08, DEF_STR( Korea ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( Japan ) )
+ PORT_DIPSETTING( 0x18, DEF_STR( World ) )
+ PORT_DIPNAME( 0x20, 0x20, DEF_STR( Free_Play ) ) PORT_DIPLOCATION("SW2:6")
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:7")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( On ) )
+ PORT_SERVICE_DIPLOC(0x80, IP_ACTIVE_LOW, "SW2:8" )
+INPUT_PORTS_END
+
+/***************************************************************************
Shogun Warriors
***************************************************************************/
@@ -2592,6 +2693,30 @@ ROM_START( berlwallk )
ROM_LOAD( "bw_u54.u54", 0x400, 0x0117, NO_DUMP)
ROM_END
+ROM_START( packbang ) /* same PCB as Berlin Wall - BW-002 */
+ ROM_REGION( 0x040000, "maincpu", 0 ) /* 68000 Code */
+ ROM_LOAD16_BYTE( "bbp0x3.u23", 0x000000, 0x020000, CRC(105e978a) SHA1(d2aa72a25b70726ebe4b16bfe16da149bb37cd85) ) /* hand written checksum on label - 527B */
+ ROM_LOAD16_BYTE( "bbp1x3.u39", 0x000001, 0x020000, CRC(465d36f5) SHA1(d3bc9e5d444e086652d2bc562d9adfb8a1fd0d2d) ) /* hand written checksum on label - C5C8 */
+
+ ROM_REGION( 0x120000, "gfx1", 0 ) /* Sprites */
+ ROM_LOAD( "bb.u84", 0x000000, 0x080000, CRC(97837aaa) SHA1(303780621afea01f9e4d1386229c7421307562ec) )
+ ROM_LOAD( "pb_spr_ext_9_20_ver.u83", 0x080000, 0x040000, CRC(666a1217) SHA1(0d7b08d63b229d70b7e9e77a36516a695533c4cb) ) /* hand written label plus checksum BA63 */
+
+ ROM_REGION( 0x080000, "gfx2", 0 ) /* Tiles (Scrambled) */
+ ROM_LOAD( "bbbox1.u77", 0x000000, 0x080000, CRC(b2ffd081) SHA1(e4b8b60ed0c5f2e0709477cc840864e1c0a351ea) ) // 1ST AND 2ND HALF IDENTICAL
+
+ ROM_REGION( 0x400000, "gfx3", 0 ) /* High Color Background */
+ ROM_LOAD16_BYTE( "bb.u73", 0x000000, 0x080000, CRC(896d88cb) SHA1(7546e64149d8d8e3425d9112a7a63b2d2e59b8bb) )
+ ROM_LOAD16_BYTE( "bb.u65", 0x000001, 0x080000, CRC(fe17c5b5) SHA1(daea65bd87d2137526250d521f36f122f733fd9d) ) // FIXED BITS (xxxxxxx0)
+ ROM_LOAD16_BYTE( "bb.u74", 0x100000, 0x080000, CRC(b01e77b9) SHA1(73f3adaf6468f4e9c54bff63268af1765cfc5f67) )
+ ROM_LOAD16_BYTE( "bb.u66", 0x100001, 0x080000, CRC(caec5098) SHA1(9966cd643abe498f84a9e01bc32003f4654584de) ) // FIXED BITS (xxxxxxx0)
+ ROM_LOAD16_BYTE( "bb.u75", 0x200000, 0x080000, CRC(5cb4669f) SHA1(ab061f5b34435dca46f710ea8118c919a3a9f87c) )
+ ROM_LOAD16_BYTE( "bb.u67", 0x200001, 0x080000, CRC(ce5c9417) SHA1(30aca496d1f4218b44a32b3630e58889f0c54564) ) // FIXED BITS (xxxxxxx0)
+
+ ROM_REGION( 0x040000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "bw000.u46", 0x000000, 0x040000, CRC(d8fe869d) SHA1(75e9044c4164ca6db9519fcff8eca6c8a2d8d5d1) )
+ROM_END
+
/***************************************************************************
@@ -3958,33 +4083,32 @@ DRIVER_INIT_MEMBER( kaneko16_shogwarr_state, brapboys )
***************************************************************************/
-GAME( 1991, berlwall, 0, berlwall, berlwall, kaneko16_berlwall_state, berlwall, ROT0, "Kaneko", "The Berlin Wall", GAME_SUPPORTS_SAVE )
-GAME( 1991, berlwallt,berlwall, berlwall, berlwallt,kaneko16_berlwall_state, berlwall, ROT0, "Kaneko", "The Berlin Wall (bootleg ?)", GAME_SUPPORTS_SAVE )
-GAME( 1991, berlwallk,berlwall, berlwall, berlwallk,kaneko16_berlwall_state, berlwall, ROT0, "Kaneko (Inter license)", "The Berlin Wall (Korea)", GAME_SUPPORTS_SAVE )
-
-
-
-GAME( 1991, mgcrystl, 0, mgcrystl, mgcrystl, kaneko16_state, kaneko16, ROT0, "Kaneko", "Magical Crystals (World, 92/01/10)", GAME_SUPPORTS_SAVE )
-GAME( 1991, mgcrystlo,mgcrystl, mgcrystl, mgcrystl, kaneko16_state, kaneko16, ROT0, "Kaneko", "Magical Crystals (World, 91/12/10)", GAME_SUPPORTS_SAVE )
-GAME( 1991, mgcrystlj,mgcrystl, mgcrystl, mgcrystl, kaneko16_state, kaneko16, ROT0, "Kaneko (Atlus license)", "Magical Crystals (Japan, 92/01/13)", GAME_SUPPORTS_SAVE )
-GAME( 1992, blazeon, 0, blazeon, blazeon, kaneko16_state, kaneko16, ROT0, "Atlus", "Blaze On (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1992, explbrkr, 0, bakubrkr, bakubrkr, kaneko16_state, kaneko16, ROT90, "Kaneko", "Explosive Breaker", GAME_SUPPORTS_SAVE )
-GAME( 1992, bakubrkr, explbrkr, bakubrkr, bakubrkr, kaneko16_state, kaneko16, ROT90, "Kaneko", "Bakuretsu Breaker", GAME_SUPPORTS_SAVE )
-
-GAME( 1994, bonkadv, 0, bonkadv , bonkadv, kaneko16_gtmr_state, gtmr, ROT0, "Kaneko", "B.C. Kid / Bonk's Adventure / Kyukyoku!! PC Genjin", GAME_SUPPORTS_SAVE )
-GAME( 1994, bloodwar, 0, bloodwar, bloodwar, kaneko16_gtmr_state, gtmr, ROT0, "Kaneko", "Blood Warrior", GAME_SUPPORTS_SAVE )
-GAME( 1994, oedfight, bloodwar, bloodwar, bloodwar, kaneko16_gtmr_state, gtmr, ROT0, "Kaneko", "Oedo Fight (Japan Bloodshed Ver.)", GAME_SUPPORTS_SAVE )
-GAME( 1994, gtmr, 0, gtmr, gtmr, kaneko16_gtmr_state, gtmr, ROT0, "Kaneko", "1000 Miglia: Great 1000 Miles Rally (94/07/18)", GAME_SUPPORTS_SAVE )
-GAME( 1994, gtmra, gtmr, gtmr, gtmr, kaneko16_gtmr_state, gtmr, ROT0, "Kaneko", "1000 Miglia: Great 1000 Miles Rally (94/06/13)", GAME_SUPPORTS_SAVE )
-GAME( 1994, gtmre, gtmr, gtmre, gtmr, kaneko16_gtmr_state, gtmr, ROT0, "Kaneko", "Great 1000 Miles Rally: Evolution Model!!! (94/09/06)", GAME_SUPPORTS_SAVE )
-GAME( 1994, gtmrusa, gtmr, gtmre, gtmr, kaneko16_gtmr_state, gtmr, ROT0, "Kaneko", "Great 1000 Miles Rally: U.S.A Version! (94/09/06)", GAME_SUPPORTS_SAVE ) // U.S.A version seems part of the title, rather than region
-GAME( 1995, gtmr2, 0, gtmr2, gtmr2, kaneko16_gtmr_state, gtmr, ROT0, "Kaneko", "Mille Miglia 2: Great 1000 Miles Rally (95/05/24)", GAME_SUPPORTS_SAVE )
-GAME( 1995, gtmr2a, gtmr2, gtmr2, gtmr2, kaneko16_gtmr_state, gtmr, ROT0, "Kaneko", "Mille Miglia 2: Great 1000 Miles Rally (95/04/04)", GAME_SUPPORTS_SAVE )
-GAME( 1995, gtmr2u, gtmr2, gtmr2, gtmr2, kaneko16_gtmr_state, gtmr, ROT0, "Kaneko", "Great 1000 Miles Rally 2 USA (95/05/18)", GAME_SUPPORTS_SAVE )
-
-GAME( 1992, brapboys, 0, brapboys, brapboys, kaneko16_shogwarr_state, brapboys, ROT0, "Kaneko", "B.Rap Boys (World)", GAME_SUPPORTS_SAVE )
-GAME( 1992, brapboysj,brapboys, brapboys, brapboys, kaneko16_shogwarr_state, brapboys, ROT0, "Kaneko", "B.Rap Boys Special (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1992, brapboysu,brapboys, brapboys, brapboys, kaneko16_shogwarr_state, brapboys, ROT0, "Kaneko", "B.Rap Boys Special (US)", GAME_SUPPORTS_SAVE )
-GAME( 1992, shogwarr, 0, shogwarr, shogwarr, kaneko16_shogwarr_state, shogwarr, ROT0, "Kaneko", "Shogun Warriors (World)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1992, shogwarru,shogwarr, shogwarr, shogwarr, kaneko16_shogwarr_state, shogwarr, ROT0, "Kaneko", "Shogun Warriors (US)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1992, fjbuster, shogwarr, shogwarr, shogwarr, kaneko16_shogwarr_state, shogwarr, ROT0, "Kaneko", "Fujiyama Buster (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+GAME( 1991, berlwall, 0, berlwall, berlwall, kaneko16_berlwall_state, berlwall, ROT0, "Kaneko", "The Berlin Wall", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, berlwallt,berlwall, berlwall, berlwallt,kaneko16_berlwall_state, berlwall, ROT0, "Kaneko", "The Berlin Wall (bootleg ?)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, berlwallk,berlwall, berlwall, berlwallk,kaneko16_berlwall_state, berlwall, ROT0, "Kaneko (Inter license)", "The Berlin Wall (Korea)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, packbang, 0, berlwall, packbang, kaneko16_berlwall_state, berlwall, ROT90, "Kaneko", "Pack'n Bang Bang (prototype)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS ) // priorities between stages?
+
+GAME( 1991, mgcrystl, 0, mgcrystl, mgcrystl, kaneko16_state, kaneko16, ROT0, "Kaneko", "Magical Crystals (World, 92/01/10)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, mgcrystlo,mgcrystl, mgcrystl, mgcrystl, kaneko16_state, kaneko16, ROT0, "Kaneko", "Magical Crystals (World, 91/12/10)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, mgcrystlj,mgcrystl, mgcrystl, mgcrystl, kaneko16_state, kaneko16, ROT0, "Kaneko (Atlus license)", "Magical Crystals (Japan, 92/01/13)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, blazeon, 0, blazeon, blazeon, kaneko16_state, kaneko16, ROT0, "Atlus", "Blaze On (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, explbrkr, 0, bakubrkr, bakubrkr, kaneko16_state, kaneko16, ROT90, "Kaneko", "Explosive Breaker", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, bakubrkr, explbrkr, bakubrkr, bakubrkr, kaneko16_state, kaneko16, ROT90, "Kaneko", "Bakuretsu Breaker", 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 )
+GAME( 1994, gtmra, gtmr, gtmr, gtmr, kaneko16_gtmr_state, gtmr, ROT0, "Kaneko", "1000 Miglia: Great 1000 Miles Rally (94/06/13)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, gtmre, gtmr, gtmre, gtmr, kaneko16_gtmr_state, gtmr, ROT0, "Kaneko", "Great 1000 Miles Rally: Evolution Model!!! (94/09/06)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, gtmrusa, gtmr, gtmre, gtmr, kaneko16_gtmr_state, gtmr, ROT0, "Kaneko", "Great 1000 Miles Rally: U.S.A Version! (94/09/06)", MACHINE_SUPPORTS_SAVE ) // U.S.A version seems part of the title, rather than region
+GAME( 1995, gtmr2, 0, gtmr2, gtmr2, kaneko16_gtmr_state, gtmr, ROT0, "Kaneko", "Mille Miglia 2: Great 1000 Miles Rally (95/05/24)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, gtmr2a, gtmr2, gtmr2, gtmr2, kaneko16_gtmr_state, gtmr, ROT0, "Kaneko", "Mille Miglia 2: Great 1000 Miles Rally (95/04/04)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, gtmr2u, gtmr2, gtmr2, gtmr2, kaneko16_gtmr_state, gtmr, ROT0, "Kaneko", "Great 1000 Miles Rally 2 USA (95/05/18)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1992, brapboys, 0, brapboys, brapboys, kaneko16_shogwarr_state, brapboys, ROT0, "Kaneko", "B.Rap Boys (World)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, brapboysj,brapboys, brapboys, brapboys, kaneko16_shogwarr_state, brapboys, ROT0, "Kaneko", "B.Rap Boys Special (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, brapboysu,brapboys, brapboys, brapboys, kaneko16_shogwarr_state, brapboys, ROT0, "Kaneko", "B.Rap Boys Special (US)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, shogwarr, 0, shogwarr, shogwarr, kaneko16_shogwarr_state, shogwarr, ROT0, "Kaneko", "Shogun Warriors (World)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1992, shogwarru,shogwarr, shogwarr, shogwarr, kaneko16_shogwarr_state, shogwarr, ROT0, "Kaneko", "Shogun Warriors (US)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1992, fjbuster, shogwarr, shogwarr, shogwarr, kaneko16_shogwarr_state, shogwarr, ROT0, "Kaneko", "Fujiyama Buster (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/kangaroo.c b/src/mame/drivers/kangaroo.c
index d5e2701011b..e5fad3069d5 100644
--- a/src/mame/drivers/kangaroo.c
+++ b/src/mame/drivers/kangaroo.c
@@ -443,6 +443,8 @@ static MACHINE_CONFIG_START( nomcu, kangaroo_state )
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK, 320*2, 0*2, 256*2, 260, 8, 248)
MCFG_SCREEN_UPDATE_DRIVER(kangaroo_state, screen_update_kangaroo)
+ MCFG_PALETTE_ADD_3BIT_BGR("palette")
+
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, MASTER_CLOCK/8)
@@ -563,7 +565,7 @@ ROM_END
*
*************************************/
-GAME( 1981, fnkyfish, 0, nomcu, fnkyfish, driver_device, 0, ROT90, "Sun Electronics", "Funky Fish", GAME_SUPPORTS_SAVE )
-GAME( 1982, kangaroo, 0, mcu, kangaroo, driver_device, 0, ROT90, "Sun Electronics", "Kangaroo", GAME_SUPPORTS_SAVE )
-GAME( 1982, kangarooa, kangaroo, mcu, kangaroo, driver_device, 0, ROT90, "Sun Electronics (Atari license)", "Kangaroo (Atari)", GAME_SUPPORTS_SAVE )
-GAME( 1982, kangaroob, kangaroo, nomcu, kangaroo, driver_device, 0, ROT90, "bootleg", "Kangaroo (bootleg)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/karnov.c b/src/mame/drivers/karnov.c
index 7a6ccaa360a..9737c94c80d 100644
--- a/src/mame/drivers/karnov.c
+++ b/src/mame/drivers/karnov.c
@@ -1318,12 +1318,12 @@ DRIVER_INIT_MEMBER(karnov_state,chelnovj)
*
*************************************/
-GAME( 1987, karnov, 0, karnov, karnov, karnov_state, karnov, ROT0, "Data East USA", "Karnov (US, rev 6)", GAME_SUPPORTS_SAVE )
-GAME( 1987, karnova, karnov, karnov, karnov, karnov_state, karnov, ROT0, "Data East USA", "Karnov (US, rev 5)", GAME_SUPPORTS_SAVE )
-GAME( 1987, karnovj, karnov, karnov, karnov, karnov_state, karnovj, ROT0, "Data East Corporation", "Karnov (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1987, wndrplnt, 0, wndrplnt, wndrplnt, karnov_state, wndrplnt, ROT270, "Data East Corporation", "Wonder Planet (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1988, chelnov, 0, karnov, chelnov, karnov_state, chelnov, ROT0, "Data East Corporation", "Chelnov - Atomic Runner (World)", GAME_SUPPORTS_SAVE )
-GAME( 1988, chelnovu, chelnov, karnov, chelnovu, karnov_state, chelnovu, ROT0, "Data East USA", "Chelnov - Atomic Runner (US)", GAME_SUPPORTS_SAVE )
-GAME( 1988, chelnovj, chelnov, karnov, chelnovj, karnov_state, chelnovj, ROT0, "Data East Corporation", "Chelnov - Atomic Runner (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1988, chelnovjbl,chelnov,chelnovjbl,chelnovj,karnov_state, chelnovj, ROT0, "bootleg", "Chelnov - Atomic Runner (Japan, bootleg with I8031, set 1)", GAME_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)", GAME_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, 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.c b/src/mame/drivers/kas89.c
index b9fee2e22a0..1b5fd70b3b0 100644
--- a/src/mame/drivers/kas89.c
+++ b/src/mame/drivers/kas89.c
@@ -207,8 +207,17 @@ public:
: driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_audiocpu(*this, "audiocpu"),
- m_v9938(*this, "v9938")
- { }
+ m_v9938(*this, "v9938"),
+ m_pl1(*this, "PL1"),
+ m_pl2(*this, "PL2"),
+ m_pl3(*this, "PL3"),
+ m_pl4(*this, "PL4"),
+ m_pl5(*this, "PL5"),
+ m_pl6(*this, "PL6"),
+ m_svc(*this, "SVC"),
+ m_dsw(*this, "DSW"),
+ m_unk(*this, "UNK")
+ { }
UINT8 m_mux_data;
UINT8 m_main_nmi_enable;
@@ -219,8 +228,17 @@ public:
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_audiocpu;
-
required_device<v9938_device> m_v9938;
+ required_ioport m_pl1;
+ required_ioport m_pl2;
+ required_ioport m_pl3;
+ required_ioport m_pl4;
+ required_ioport m_pl5;
+ required_ioport m_pl6;
+ required_ioport m_svc;
+ required_ioport m_dsw;
+ required_ioport m_unk;
+
DECLARE_WRITE8_MEMBER(mux_w);
DECLARE_READ8_MEMBER(mux_r);
DECLARE_WRITE8_MEMBER(control_w);
@@ -231,7 +249,6 @@ public:
DECLARE_DRIVER_INIT(kas89);
virtual void machine_start();
virtual void machine_reset();
- TIMER_DEVICE_CALLBACK_MEMBER(kas89_interrupt);
TIMER_DEVICE_CALLBACK_MEMBER(kas89_nmi_cb);
TIMER_DEVICE_CALLBACK_MEMBER(kas89_sound_nmi_cb);
DECLARE_WRITE_LINE_MEMBER(kas89_vdp_interrupt);
@@ -247,14 +264,6 @@ WRITE_LINE_MEMBER(kas89_state::kas89_vdp_interrupt)
m_maincpu->set_input_line(0, (state ? ASSERT_LINE : CLEAR_LINE));
}
-TIMER_DEVICE_CALLBACK_MEMBER(kas89_state::kas89_interrupt)
-{
- int scanline = param;
-
- if((scanline % 2) == 0)
- m_v9938->interrupt();
-}
-
/*************************************
* Machine Start & Reset *
@@ -291,19 +300,19 @@ READ8_MEMBER(kas89_state::mux_r)
{
switch(m_mux_data)
{
- case 0x01: return ioport("PL1")->read();
- case 0x02: return ioport("PL2")->read();
- case 0x04: return ioport("PL3")->read();
- case 0x08: return ioport("PL4")->read();
- case 0x10: return ioport("PL5")->read();
- case 0x20: return ioport("PL6")->read();
+ case 0x01: return m_pl1->read();
+ case 0x02: return m_pl2->read();
+ case 0x04: return m_pl3->read();
+ case 0x08: return m_pl4->read();
+ case 0x10: return m_pl5->read();
+ case 0x20: return m_pl6->read();
case 0x40:
{
- output_set_lamp_value(37, 1 - ((ioport("SVC")->read() >> 5) & 1)); /* Operator Key LAMP */
- return ioport("SVC")->read();
+ output_set_lamp_value(37, 1 - ((m_svc->read() >> 5) & 1)); /* Operator Key LAMP */
+ return m_svc->read();
}
- case 0x80: return ioport("DSW")->read(); /* Polled at $162a through NMI routine */
- case 0x3f: return ioport("UNK")->read();
+ case 0x80: return m_dsw->read(); /* Polled at $162a through NMI routine */
+ case 0x3f: return m_unk->read();
}
logerror("Mux_data %02X\n", m_mux_data);
@@ -754,7 +763,6 @@ static MACHINE_CONFIG_START( kas89, kas89_state )
MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/6) /* Confirmed */
MCFG_CPU_PROGRAM_MAP(kas89_map)
MCFG_CPU_IO_MAP(kas89_io)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", kas89_state, kas89_interrupt, "screen", 0, 1)
MCFG_TIMER_DRIVER_ADD_PERIODIC("kas89_nmi", kas89_state, kas89_nmi_cb, attotime::from_hz(138))
MCFG_CPU_ADD("audiocpu", Z80, MASTER_CLOCK/6) /* Confirmed */
@@ -765,16 +773,9 @@ static MACHINE_CONFIG_START( kas89, kas89_state )
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
- MCFG_V9938_ADD("v9938", "screen", VDP_MEM)
+ MCFG_V9938_ADD("v9938", "screen", VDP_MEM, MASTER_CLOCK)
MCFG_V99X8_INTERRUPT_CALLBACK(WRITELINE(kas89_state,kas89_vdp_interrupt))
-
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_UPDATE_DEVICE("v9938", v9938_device, screen_update)
- MCFG_SCREEN_SIZE(544, 524)
- MCFG_SCREEN_VISIBLE_AREA(0, 544 - 1, 0, 480 - 1)
- MCFG_SCREEN_PALETTE("v9938:palette")
+ MCFG_V99X8_SCREEN_ADD_NTSC("screen", "v9938", MASTER_CLOCK)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -859,4 +860,4 @@ DRIVER_INIT_MEMBER(kas89_state,kas89)
**************************************/
/* 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", GAME_IMPERFECT_SOUND, layout_kas89 )
+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/mess/drivers/kaypro.c b/src/mame/drivers/kaypro.c
index a6a82c0f166..7213db9ebe6 100644
--- a/src/mess/drivers/kaypro.c
+++ b/src/mame/drivers/kaypro.c
@@ -246,7 +246,9 @@ static MACHINE_CONFIG_START( kayproii, kaypro_state )
MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(kaypro_state, fdc_drq_w))
MCFG_WD_FDC_FORCE_READY
MCFG_FLOPPY_DRIVE_ADD("fdc:0", kaypro_floppies, "drive0", kaypro_state::kayproii_floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", kaypro_floppies, "drive1", kaypro_state::kayproii_floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_SOFTWARE_LIST_ADD("flop_list","kayproii")
MACHINE_CONFIG_END
@@ -309,7 +311,9 @@ static MACHINE_CONFIG_START( kaypro2x, kaypro_state )
MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(kaypro_state, fdc_drq_w))
MCFG_WD_FDC_FORCE_READY
MCFG_FLOPPY_DRIVE_ADD("fdc:0", kaypro_floppies, "drive0", kaypro_state::kaypro2x_floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", kaypro_floppies, "drive1", kaypro_state::kaypro2x_floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( kaypro10, kaypro2x )
@@ -448,10 +452,10 @@ 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" , GAME_NOT_WORKING ) // model 81-004 with an added 8088 daughterboard and rom
+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" , GAME_NOT_WORKING ) // model 81-025
-COMP( 1984, kaypro4a, kaypro2x, 0, kaypro2x, kay_kbd, kaypro_state, kaypro, "Non Linear Systems", "Kaypro 4 - 4/84" , GAME_NOT_WORKING ) // model 81-015
+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" , GAME_NOT_WORKING ) // model 81-005
-COMP( 1984, robie, 0, 0, kaypro2x, kay_kbd, kaypro_state, kaypro, "Non Linear Systems", "Kaypro Robie" , GAME_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/mess/drivers/kc.c b/src/mame/drivers/kc.c
index 5cf619f049a..b6b21733d69 100644
--- a/src/mess/drivers/kc.c
+++ b/src/mame/drivers/kc.c
@@ -314,7 +314,7 @@ ROM_START(kc85_5)
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", GAME_NOT_WORKING)
-COMP( 1987, kc85_3, kc85_2, 0, kc85_3, kc85, driver_device, 0, "VEB Mikroelektronik", "KC 85/3", GAME_NOT_WORKING)
-COMP( 1989, kc85_4, kc85_2, 0, kc85_4, kc85, driver_device, 0, "VEB Mikroelektronik", "KC 85/4", GAME_NOT_WORKING)
-COMP( 1989, kc85_5, kc85_2, 0, kc85_5, kc85, driver_device, 0, "VEB Mikroelektronik", "KC 85/5", GAME_NOT_WORKING)
+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)
diff --git a/src/mame/drivers/kchamp.c b/src/mame/drivers/kchamp.c
index 79f2260bffd..49b65cf2f19 100644
--- a/src/mame/drivers/kchamp.c
+++ b/src/mame/drivers/kchamp.c
@@ -756,8 +756,8 @@ DRIVER_INIT_MEMBER(kchamp_state,kchampvs2)
-GAME( 1984, kchamp, 0, kchamp, kchamp, driver_device, 0, ROT90, "Data East USA", "Karate Champ (US)", GAME_SUPPORTS_SAVE )
-GAME( 1984, karatedo, kchamp, kchamp, kchamp, driver_device, 0, ROT90, "Data East Corporation", "Karate Dou (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1984, kchampvs, kchamp, kchampvs, kchampvs, kchamp_state, kchampvs, ROT90, "Data East USA", "Karate Champ (US VS version, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1984, kchampvs2, kchamp, kchampvs, kchampvs, kchamp_state, kchampvs2, ROT90, "Data East USA", "Karate Champ (US VS version, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1984, karatevs, kchamp, kchampvs, kchampvs, kchamp_state, kchampvs, ROT90, "Data East Corporation", "Taisen Karate Dou (Japan VS version)", GAME_SUPPORTS_SAVE )
+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, 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.c b/src/mame/drivers/kenseim.c
index 09e1084f1f2..bf8f0c80f92 100644
--- a/src/mame/drivers/kenseim.c
+++ b/src/mame/drivers/kenseim.c
@@ -699,4 +699,4 @@ DRIVER_INIT_MEMBER(kenseim_state,kenseim)
// 1994.04.18 is from extra PCB rom, Siguma or Sigma? (Siguma is in the ROM)
// the CPS1 board roms contain "M O G U R A 9 2 0 9 2 4" strings suggesting that part of the code was developed earlier
-GAMEL( 1994, kenseim, 0, kenseim, kenseim, kenseim_state, kenseim, ROT0, "Capcom / Togo / Sigma", "Ken Sei Mogura: Street Fighter II (Japan 940418, Ver 1.00)", GAME_CLICKABLE_ARTWORK, layout_kenseim )
+GAMEL( 1994, kenseim, 0, kenseim, kenseim, kenseim_state, kenseim, ROT0, "Capcom / Togo / Sigma", "Ken Sei Mogura: Street Fighter II (Japan 940418, Ver 1.00)", MACHINE_CLICKABLE_ARTWORK, layout_kenseim )
diff --git a/src/mame/drivers/kickgoal.c b/src/mame/drivers/kickgoal.c
index 4649429370b..fc22ff78c23 100644
--- a/src/mame/drivers/kickgoal.c
+++ b/src/mame/drivers/kickgoal.c
@@ -768,5 +768,5 @@ DRIVER_INIT_MEMBER(kickgoal_state,kickgoal)
}
-GAME( 1995, kickgoal,0, kickgoal, kickgoal, kickgoal_state, kickgoal, ROT0, "TCH", "Kick Goal", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1995, actionhw,0, actionhw, kickgoal, kickgoal_state, kickgoal, ROT0, "TCH", "Action Hollywood", GAME_IMPERFECT_SOUND | GAME_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/mess/drivers/kim1.c b/src/mame/drivers/kim1.c
index 16fd5658477..71a98a96cdf 100644
--- a/src/mess/drivers/kim1.c
+++ b/src/mame/drivers/kim1.c
@@ -356,4 +356,4 @@ ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 1975, kim1, 0, 0, kim1, kim1, driver_device, 0, "MOS Technologies", "KIM-1" , GAME_SUPPORTS_SAVE)
+COMP( 1975, kim1, 0, 0, kim1, kim1, driver_device, 0, "MOS Technologies", "KIM-1" , MACHINE_SUPPORTS_SAVE)
diff --git a/src/mame/drivers/kingdrby.c b/src/mame/drivers/kingdrby.c
index ac55f3902c1..99b098474d0 100644
--- a/src/mame/drivers/kingdrby.c
+++ b/src/mame/drivers/kingdrby.c
@@ -1188,7 +1188,7 @@ ROM_START( kingdrbb2 )
ROM_END
-GAMEL( 1981, kingdrby, 0, kingdrby, kingdrby, driver_device, 0, ROT0, "Tazmi", "King Derby (1981)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_COLORS | GAME_IMPERFECT_SOUND, layout_kingdrby )
-GAME ( 1986, kingdrbb, kingdrby, kingdrbb, kingdrbb, driver_device, 0, ROT0, "bootleg (Casino Electronics)", "King Derby (Taiwan bootleg)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_COLORS )
-GAMEL( 198?, kingdrbb2, kingdrby, kingdrby, kingdrby, driver_device, 0, ROT0, "bootleg", "King Derby (bootleg set 2)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_COLORS | GAME_IMPERFECT_SOUND, layout_kingdrby )
-GAME ( 2000, cowrace, kingdrby, cowrace, kingdrbb, driver_device, 0, ROT0, "bootleg (Gate In)", "Cow Race (King Derby hack)", GAME_NOT_WORKING | GAME_WRONG_COLORS )
+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 )
diff --git a/src/mame/drivers/kingobox.c b/src/mame/drivers/kingobox.c
index 99c7d999098..6331925216c 100644
--- a/src/mame/drivers/kingobox.c
+++ b/src/mame/drivers/kingobox.c
@@ -802,8 +802,8 @@ DRIVER_INIT_MEMBER(kingofb_state,ringkingw)
}
-GAME( 1985, kingofb, 0, kingofb, kingofb, driver_device, 0, ROT90, "Wood Place Inc.", "King of Boxer (English)", GAME_SUPPORTS_SAVE )
-GAME( 1985, ringking, kingofb, ringking, ringking, driver_device, 0, ROT90, "Wood Place Inc. (Data East USA license)", "Ring King (US set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1985, ringking2, kingofb, ringking, ringking, driver_device, 0, ROT90, "Wood Place Inc. (Data East USA license)", "Ring King (US set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1985, ringking3, kingofb, kingofb, kingofb, kingofb_state, ringking3,ROT90, "Wood Place Inc. (Data East USA license)", "Ring King (US set 3)", GAME_SUPPORTS_SAVE )
-GAME( 1985, ringkingw, kingofb, kingofb, kingofb, kingofb_state, ringkingw,ROT90, "Wood Place Inc.", "Ring King (US, Wood Place Inc.)", GAME_SUPPORTS_SAVE )
+GAME( 1985, kingofb, 0, kingofb, kingofb, driver_device, 0, ROT90, "Wood Place Inc.", "King of Boxer (English)", 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, ringking3, kingofb, kingofb, kingofb, kingofb_state, ringking3,ROT90, "Wood Place Inc. (Data East USA license)", "Ring King (US set 3)", 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 )
diff --git a/src/mame/drivers/kinst.c b/src/mame/drivers/kinst.c
index c87d33efb6f..0a404706fbe 100644
--- a/src/mame/drivers/kinst.c
+++ b/src/mame/drivers/kinst.c
@@ -935,14 +935,14 @@ DRIVER_INIT_MEMBER(kinst_state,kinst2)
*
*************************************/
-GAME( 1994, kinst, 0, kinst, kinst, kinst_state, kinst, ROT0, "Rare", "Killer Instinct (v1.5d)", GAME_SUPPORTS_SAVE )
-GAME( 1994, kinst14, kinst, kinst, kinst2, kinst_state, kinst, ROT0, "Rare", "Killer Instinct (v1.4)", GAME_SUPPORTS_SAVE )
-GAME( 1994, kinst13, kinst, kinst, kinst2, kinst_state, kinst, ROT0, "Rare", "Killer Instinct (v1.3)", GAME_SUPPORTS_SAVE )
-GAME( 1994, kinstp, kinst, kinst, kinst2, kinst_state, kinst, ROT0, "Rare", "Killer Instinct (proto v4.7)", GAME_SUPPORTS_SAVE )
-
-GAME( 1995, kinst2, 0, kinst, kinst2, kinst_state, kinst2, ROT0, "Rare", "Killer Instinct 2 (v1.4)", GAME_SUPPORTS_SAVE )
-GAME( 1995, kinst2k4, kinst2, kinst, kinst2, kinst_state, kinst2, ROT0, "Rare", "Killer Instinct 2 (v1.4k, upgrade kit)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1995, kinst213, kinst2, kinst, kinst2, kinst_state, kinst2, ROT0, "Rare", "Killer Instinct 2 (v1.3)", GAME_SUPPORTS_SAVE )
-GAME( 1995, kinst2k3, kinst2, kinst, kinst2, kinst_state, kinst2, ROT0, "Rare", "Killer Instinct 2 (v1.3k, upgrade kit)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1995, kinst211, kinst2, kinst, kinst2, kinst_state, kinst2, ROT0, "Rare", "Killer Instinct 2 (v1.1)", GAME_SUPPORTS_SAVE )
-GAME( 1995, kinst210, kinst2, kinst, kinst2, kinst_state, kinst2, ROT0, "Rare", "Killer Instinct 2 (v1.0)", GAME_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 )
+
+GAME( 1995, kinst2, 0, kinst, kinst2, kinst_state, kinst2, ROT0, "Rare", "Killer Instinct 2 (v1.4)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kinst2k4, kinst2, kinst, kinst2, kinst_state, kinst2, ROT0, "Rare", "Killer Instinct 2 (v1.4k, upgrade kit)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kinst213, kinst2, kinst, kinst2, kinst_state, kinst2, ROT0, "Rare", "Killer Instinct 2 (v1.3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kinst2k3, kinst2, kinst, kinst2, kinst_state, kinst2, ROT0, "Rare", "Killer Instinct 2 (v1.3k, upgrade kit)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kinst211, kinst2, kinst, kinst2, kinst_state, kinst2, ROT0, "Rare", "Killer Instinct 2 (v1.1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kinst210, kinst2, kinst, kinst2, kinst_state, kinst2, ROT0, "Rare", "Killer Instinct 2 (v1.0)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/kissproto.c b/src/mame/drivers/kissproto.c
index d7ee0ed32e0..1f828ab370a 100644
--- a/src/mame/drivers/kissproto.c
+++ b/src/mame/drivers/kissproto.c
@@ -63,4 +63,4 @@ ROM_START(kissp)
ROM_END
-GAME( 1979, kissp, kiss, kissp, kissp, kissp_state, kissp, ROT0, "Bally", "Kiss (prototype)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 1979, kissp, kiss, kissp, kissp, kissp_state, kissp, ROT0, "Bally", "Kiss (prototype)", MACHINE_IS_SKELETON_MECHANICAL )
diff --git a/src/mame/drivers/kncljoe.c b/src/mame/drivers/kncljoe.c
index cd8c609bc6e..4b52111a3b9 100644
--- a/src/mame/drivers/kncljoe.c
+++ b/src/mame/drivers/kncljoe.c
@@ -398,6 +398,6 @@ ROM_END
-GAME( 1985, kncljoe, 0, kncljoe, kncljoe, driver_device, 0, ROT0, "Seibu Kaihatsu (Taito license)", "Knuckle Joe (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1985, kncljoea, kncljoe, kncljoe, kncljoe, driver_device, 0, ROT0, "Seibu Kaihatsu (Taito license)", "Knuckle Joe (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1985, bcrusher, kncljoe, kncljoe, kncljoe, driver_device, 0, ROT0, "bootleg", "Bone Crusher", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/koftball.c b/src/mame/drivers/koftball.c
index 0369a2b16b1..53d8c75d085 100644
--- a/src/mame/drivers/koftball.c
+++ b/src/mame/drivers/koftball.c
@@ -312,4 +312,4 @@ DRIVER_INIT_MEMBER(koftball_state,koftball)
#endif
}
-GAME( 1995, koftball, 0, koftball, koftball, koftball_state, koftball, ROT0, "BMC", "King of Football", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+GAME( 1995, koftball, 0, koftball, koftball, koftball_state, koftball, ROT0, "BMC", "King of Football", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/koikoi.c b/src/mame/drivers/koikoi.c
index 386363880ac..4da01a94adf 100644
--- a/src/mame/drivers/koikoi.c
+++ b/src/mame/drivers/koikoi.c
@@ -430,4 +430,4 @@ ROM_END
*
*************************************/
-GAME( 1982, koikoi, 0, koikoi, koikoi, driver_device, 0, ROT270, "Kiwako", "Koi Koi Part 2", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
+GAME( 1982, koikoi, 0, koikoi, koikoi, driver_device, 0, ROT270, "Kiwako", "Koi Koi Part 2", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/konamigq.c b/src/mame/drivers/konamigq.c
index e30196c3c88..d9591e493ae 100644
--- a/src/mame/drivers/konamigq.c
+++ b/src/mame/drivers/konamigq.c
@@ -13,38 +13,59 @@
----------
GQ420 PWB354905B
- |----------------------------------------------------------|
- |CN14 420A01.2G 420A02.3M CN6 CN7 CN8 |
- |056602 6264 |
- |LA4705 6264 058141 424800 |
- | 68000 |
- | 18.432MHz PAL 056800 424800 |
- | 32MHz 48MHz PAL 424800 |
- | RESET_SW TMS57002 |
- | M514256 |
- | M514256 |
- |J 000180 |
- |A MACH110 |
- |M 53.693175MHz (000619A) |
- |M KM4216V256 |
- |A KM4216V256 CXD8538Q PAL (000613) |
- | KM4216V256 PAL (000612) |
- | TEST_SW KM4216V256 PAL (000618) |
- | CXD2923AR 67.7376MHz |
- | DIPSW(8) 93C46 NCR 53CF96-2 |
- | KM48V514 KM48V514 420B03.27P HD_LED |
- | KM48V514 KM48V514 |
- | CN3 CXD8530BQ TOSHIBA MK1924FBV |
- | KM48V514 KM48V514 (U420UAA04) |
- | KM48V514 KM48V514 |
- |----------------------------------------------------------|
+ |----------------------------------------------------------------|
+ |CN14 420A01.2G 420A02.3M CN6 CN7 CN8 |
+ | 056602 6264 |------| 424800 |
+ | LA4705 6264 |058141| |
+ | 68000 |------| 424800 |
+ | 18.432MHz PAL(000607) |
+ | 32MHz 48kHz PAL |------| 424800 |
+ | (000608) |058800| |
+ | RESET_SW |------| M514256 |
+ | |--------| M514256 |
+ |J |TMS57002| |
+ |A |--------| MACH110 |
+ |M 000180 53.693175MHz (000619A) |
+ |M |--------| |
+ |A KM4216V256 KM4216V256 |CXD8538Q| PAL (000613) |
+ | KM4216V256 KM4216V256 | | PAL (000612) |
+ | TEST_SW |--------| PAL (000618) |
+ | CXD2923AR 67.7376MHz 93C46 NCR53CF96-2 |
+ | DIPSW(8) |---------| 420B03.27P HDD_LED |
+ | KM48V514 KM48V514 |CXD8530BQ| |-----------------| |
+ | KM48V514 KM48V514 | | |543MB SCSI HDRIVE| |
+ |CN3 UPA1556 |---------| |TOSHIBA MK1924FBV| |
+ | KM48V514 KM48V514 |(420UAA04) | |
+ | KM48V514 KM48V514 |-----------------| |
+ |----------------------------------------------------------------|
Notes:
- CN6, CN7, CN8: For connection of guns.
- CN3 : For connection of extra controls/buttons.
- CN14: For connection of additional speaker for stereo output.
- 68000 clock: 8.000MHz
- Vsync: 60Hz
+ CN6/7/8 - 5-pin connector for guns. All 3 connectors are wired the same.
+ Pinout is...
+ 1- gun opto
+ 2- ground
+ 3- trigger
+ 4- +5v
+ 5- reload (see below)
+
+ The Crypt Killer shotguns have 6 wires coming out of the gun.
+ The wire colors and connections are....
+ Black - Ground; joined to CN6/7/8 pin 2
+ Red - +5v; joined to CN6/7/8 pin 4
+ Yellow - Gun opto; joined to CN6/7/8 pin 1
+ White - Trigger; joined to CN6/7/8 pin 3
+ Purple - Reload; joined to CN6/7/8 pin 5
+ Grey - Reload ground; this wire must be joined to any ground for the reload to work
+
+ CN3 - For connection of extra controls/buttons (e.g. player 3 start etc)
+ CN14 - For connection of additional speaker for stereo output
+ 68000 - Clock input 8.000MHz [32/4]
+ 53CF96 - Clock input 16.000MHz [32/2]
+ TMS57002- Clock input 24.000MHz [48/2]
+ 056602 - Konami custom ceramic module. Clock inputs 18.432MHz, 1.536MHz[18.432/12], 48kHz
+ 000180 - Konami custom ceramic module containing LM1203 and resistors/caps etc
+ Vsync - 59.825Hz
+ HSync - 15.613kHz
*/
#include "emu.h"
@@ -298,10 +319,10 @@ static MACHINE_CONFIG_START( konamigq, konamigq_state )
MCFG_PSX_DMA_CHANNEL_READ( "maincpu", 5, psx_dma_read_delegate( FUNC( konamigq_state::scsi_dma_read ), (konamigq_state *) owner ) )
MCFG_PSX_DMA_CHANNEL_WRITE( "maincpu", 5, psx_dma_write_delegate( FUNC( konamigq_state::scsi_dma_write ), (konamigq_state *) owner ) )
- MCFG_CPU_ADD("soundcpu", M68000, 8000000)
+ MCFG_CPU_ADD("soundcpu", M68000, XTAL_32MHz/4) /* 8MHz - measured */
MCFG_CPU_PROGRAM_MAP(konamigq_sound_map)
- MCFG_CPU_ADD("dasp", TMS57002, 24000000/2)
+ MCFG_CPU_ADD("dasp", TMS57002, XTAL_48MHz/2) /* 24MHz - measured */
MCFG_CPU_DATA_MAP(konamigq_dasp_map)
MCFG_CPU_PERIODIC_INT_DRIVER(konamigq_state, tms_sync, 48000)
@@ -438,4 +459,4 @@ ROM_START( cryptklr )
DISK_IMAGE( "420uaa04", 0, SHA1(67cb1418fc0de2a89fc61847dc9efb9f1bebb347) )
ROM_END
-GAME( 1995, cryptklr, 0, konamigq, konamigq, konamigq_state, konamigq, ROT0, "Konami", "Crypt Killer (GQ420 UAA)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1995, cryptklr, 0, konamigq, konamigq, konamigq_state, konamigq, ROT0, "Konami", "Crypt Killer (GQ420 UAA)", MACHINE_IMPERFECT_GRAPHICS )
diff --git a/src/mame/drivers/konamigv.c b/src/mame/drivers/konamigv.c
index 60a99106b49..bb5da1c7c02 100644
--- a/src/mame/drivers/konamigv.c
+++ b/src/mame/drivers/konamigv.c
@@ -821,19 +821,19 @@ ROM_START( tmoshspa )
ROM_END
/* BIOS placeholder */
-GAME( 1995, konamigv, 0, konamigv, konamigv, driver_device, 0, ROT0, "Konami", "Baby Phoenix/GV System", GAME_IS_BIOS_ROOT )
-
-GAME( 1996, powyak96, konamigv, konamigv, konamigv, driver_device, 0, ROT0, "Konami", "Jikkyou Powerful Pro Yakyuu '96 (GV017 Japan 1.03)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, hyperath, konamigv, konamigv, konamigv, driver_device, 0, ROT0, "Konami", "Hyper Athlete (GV021 Japan 1.00)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, lacrazyc, konamigv, konamigv, konamigv, driver_device, 0, ROT0, "Konami", "Let's Attack Crazy Cross (GV027 Asia 1.10)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, susume, lacrazyc, konamigv, konamigv, driver_device, 0, ROT0, "Konami", "Susume! Taisen Puzzle-Dama (GV027 Japan 1.20)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, btchamp, konamigv, btchamp, btchamp, driver_device, 0, ROT0, "Konami", "Beat the Champ (GV053 UAA01)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, kdeadeye, konamigv, kdeadeye, kdeadeye, driver_device, 0, ROT0, "Konami", "Dead Eye (GV054 UAA01)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, weddingr, konamigv, konamigv, konamigv, driver_device, 0, ROT0, "Konami", "Wedding Rhapsody (GX624 JAA)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, tmosh, konamigv, tmosh, konamigv, driver_device, 0, ROT0, "Konami", "Tokimeki Memorial Oshiete Your Heart (GQ673 JAA)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
-GAME( 1997, tmoshs, konamigv, tmosh, konamigv, driver_device, 0, ROT0, "Konami", "Tokimeki Memorial Oshiete Your Heart Seal Version (GE755 JAA)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
-GAME( 1997, tmoshsp, konamigv, tmosh, konamigv, driver_device, 0, ROT0, "Konami", "Tokimeki Memorial Oshiete Your Heart Seal Version Plus (GE756 JAB)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
-GAME( 1997, tmoshspa, tmoshsp, tmosh, konamigv, driver_device, 0, ROT0, "Konami", "Tokimeki Memorial Oshiete Your Heart Seal Version Plus (GE756 JAA)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
-GAME( 1998, nagano98, konamigv, konamigv, konamigv, driver_device, 0, ROT0, "Konami", "Nagano Winter Olympics '98 (GX720 EAA)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE)
-GAME( 1998, naganoj, nagano98, konamigv, konamigv, driver_device, 0, ROT0, "Konami", "Hyper Olympic in Nagano (GX720 JAA)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE)
-GAME( 2000, simpbowl, konamigv, simpbowl, simpbowl, konamigv_state, simpbowl, ROT0, "Konami", "Simpsons Bowling (GQ829 UAA)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE)
+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, konamigv, 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( 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.c b/src/mame/drivers/konamigx.c
index cdc72258e99..756f35e2bea 100644
--- a/src/mame/drivers/konamigx.c
+++ b/src/mame/drivers/konamigx.c
@@ -982,7 +982,7 @@ static ADDRESS_MAP_START( gx_base_memmap, AS_PROGRAM, 32, konamigx_state )
ADDRESS_MAP_END
static ADDRESS_MAP_START( gx_type1_map, AS_PROGRAM, 32, konamigx_state )
- AM_RANGE(0xd90000, 0xd97fff) AM_RAM_WRITE(konamigx_palette_w) AM_SHARE("paletteram")
+ AM_RANGE(0xd90000, 0xd97fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xdc0000, 0xdc1fff) AM_RAM // LAN RAM? (Racin' Force has, Open Golf doesn't)
AM_RANGE(0xdd0000, 0xdd00ff) AM_READNOP AM_WRITENOP // LAN board
AM_RANGE(0xdda000, 0xddafff) AM_WRITE_PORT("ADC-WRPORT")
@@ -1002,7 +1002,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( gx_type2_map, AS_PROGRAM, 32, konamigx_state )
AM_RANGE(0xcc0000, 0xcc0003) AM_WRITE(esc_w)
- AM_RANGE(0xd90000, 0xd97fff) AM_RAM_WRITE(konamigx_palette_w) AM_SHARE("paletteram")
+ AM_RANGE(0xd90000, 0xd97fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_IMPORT_FROM(gx_base_memmap)
ADDRESS_MAP_END
@@ -1587,6 +1587,7 @@ static MACHINE_CONFIG_START( konamigx, konamigx_state )
MCFG_SCREEN_UPDATE_DRIVER(konamigx_state, screen_update_konamigx)
MCFG_PALETTE_ADD("palette", 8192)
+ MCFG_PALETTE_FORMAT(XRGB)
MCFG_PALETTE_ENABLE_SHADOWS()
MCFG_PALETTE_ENABLE_HILIGHTS()
@@ -1749,13 +1750,13 @@ static MACHINE_CONFIG_DERIVED( gxtype3, konamigx )
MCFG_VIDEO_START_OVERRIDE(konamigx_state, konamigx_type3)
MCFG_DEVICE_MODIFY("k056832")
- MCFG_K056832_CONFIG("gfx1", 0, K056832_BPP_6, 0, 0, "none")
+ MCFG_K056832_CONFIG("gfx1", 0, K056832_BPP_6, 0, 2, "none")
MCFG_DEVICE_MODIFY("k055673")
MCFG_K055673_CONFIG("gfx2", 0, K055673_LAYOUT_GX6, -132, -23)
- MCFG_PALETTE_MODIFY("palette")
- MCFG_PALETTE_ENTRIES(16384)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 16384)
MCFG_PALETTE_ENABLE_SHADOWS()
MCFG_PALETTE_ENABLE_HILIGHTS()
@@ -1796,8 +1797,8 @@ static MACHINE_CONFIG_DERIVED( gxtype4, konamigx )
MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 16, 32*8-1-16)
MCFG_SCREEN_UPDATE_DRIVER(konamigx_state, screen_update_konamigx_right)
- MCFG_PALETTE_MODIFY("palette")
- MCFG_PALETTE_ENTRIES(8192)
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD("palette", 8192)
MCFG_PALETTE_ENABLE_SHADOWS()
MCFG_PALETTE_ENABLE_HILIGHTS()
@@ -2057,7 +2058,7 @@ ROM_START( tbyahhoo )
/* main program */
ROM_REGION( 0x800000, "maincpu", 0 )
GX_BIOS
- ROM_LOAD32_WORD_SWAP( "426jaa02.31b", 0x200002, 512*1024, CRC(0416ad78) SHA1(a94c37a95e431c8f8cc3db66713faed406ab27c4) )
+ ROM_LOAD32_WORD_SWAP( "424jaa02.31b", 0x200002, 512*1024, CRC(0416ad78) SHA1(a94c37a95e431c8f8cc3db66713faed406ab27c4) )
ROM_LOAD32_WORD_SWAP( "424jaa04.27b", 0x200000, 512*1024, CRC(bcbe0e40) SHA1(715f72a172a0662e6e65a57baa1f5a18d6210389) )
/* sound program */
@@ -2273,8 +2274,8 @@ ROM_START( rushhero )
/* main program */
ROM_REGION( 0x800000, "maincpu", 0 )
GX_BIOS
- ROM_LOAD32_WORD_SWAP( "605b03.29m", 0x200000, 512*1024, CRC(c5b8d31d) SHA1(6c5b359e1fcf511c50d6a876946631fc38a6dade) )
- ROM_LOAD32_WORD_SWAP( "605b02.31m", 0x200002, 512*1024, CRC(94c3d835) SHA1(f48d34987fa6575a2c41d3ca3359e9e2cbc817e0) )
+ ROM_LOAD32_WORD_SWAP( "605uab03.29m", 0x200000, 512*1024, CRC(c5b8d31d) SHA1(6c5b359e1fcf511c50d6a876946631fc38a6dade) )
+ ROM_LOAD32_WORD_SWAP( "605uab02.31m", 0x200002, 512*1024, CRC(94c3d835) SHA1(f48d34987fa6575a2c41d3ca3359e9e2cbc817e0) )
/* data roms */
ROM_LOAD32_WORD_SWAP( "605a05.29r", 0x400000, 1024*1024, CRC(9bca4297) SHA1(c20be1ffcee8bd56f69d4fcc19d0035b3f74b8f2))
@@ -2621,13 +2622,13 @@ ROM_START( dragoona )
ROM_LOAD( "dragoona.nv", 0x0000, 0x080, CRC(7980ad2b) SHA1(dccaab02d23edbd81ae13441fbac0dbd7112c258) )
ROM_END
-/* Soccer Superstars (Europe ver EAA)*/
+/* Soccer Superstars (94.12.19 - Europe ver EAC) Writes EAA to EEPROM and reports as EAA despite chip labels EAC */
ROM_START( soccerss )
/* main program */
ROM_REGION( 0x800000, "maincpu", 0 )
GX_BIOS
- ROM_LOAD32_WORD_SWAP( "427ea_c02.28m", 0x200000, 512*1024, CRC(1817b218) SHA1(d69c70f0d8f1cbf385046c755a9533c01fe1eb4a) )
- ROM_LOAD32_WORD_SWAP( "427ea_c03.30m", 0x200002, 512*1024, CRC(8a17f509) SHA1(c3944b766499f2b6f217357159a02e54e44060c2) )
+ ROM_LOAD32_WORD_SWAP( "427eac02.28m", 0x200000, 512*1024, CRC(1817b218) SHA1(d69c70f0d8f1cbf385046c755a9533c01fe1eb4a) )
+ ROM_LOAD32_WORD_SWAP( "427eac03.30m", 0x200002, 512*1024, CRC(8a17f509) SHA1(c3944b766499f2b6f217357159a02e54e44060c2) )
/* data roms */
ROM_LOAD32_WORD_SWAP( "427a04.28r", 0x400000, 0x080000, CRC(c7d3e1a2) SHA1(5e1e4f4c97def36902ad853248014a7af62e0c5e) )
@@ -2680,13 +2681,72 @@ ROM_START( soccerss )
ROM_LOAD( "soccerss.nv", 0x0000, 0x080, CRC(f222dae4) SHA1(fede48a4e1fe91cf2b17ff3f3996bca4816fc283) )
ROM_END
-/* Soccer Superstars (Japan ver JAC)*/
+/* Soccer Superstars (94.12.19 - U.S.A. ver UAC) Writes UAA to EEPROM and reports as UAA despite chip labels UAC */
+ROM_START( soccerssu )
+ /* main program */
+ ROM_REGION( 0x800000, "maincpu", 0 )
+ GX_BIOS
+ ROM_LOAD32_WORD_SWAP( "427uac02.28m", 0x200000, 512*1024, CRC(cd999967) SHA1(6731b8f15ec73148993e3bce251f2392590da162) )
+ ROM_LOAD32_WORD_SWAP( "427uac03.30m", 0x200002, 512*1024, CRC(2edd4d49) SHA1(4118908dd84ebff2571cd7e4ce72951120ee82a9) )
+
+ /* data roms */
+ ROM_LOAD32_WORD_SWAP( "427a04.28r", 0x400000, 0x080000, CRC(c7d3e1a2) SHA1(5e1e4f4c97def36902ad853248014a7af62e0c5e) )
+ ROM_LOAD32_WORD_SWAP( "427a05.30r", 0x400002, 0x080000, CRC(5372f0a5) SHA1(36e8d0a73918cbd018c1865d1a05445daba8997c) )
+
+ /* sound program */
+ ROM_REGION( 0x40000, "soundcpu", 0 )
+ ROM_LOAD16_BYTE("427a07.6m", 0x000000, 128*1024, CRC(8dbaf4c7) SHA1(cb69bf94090a4871b35e7ba1f58e3225077b82cd) )
+ ROM_LOAD16_BYTE("427a06.9m", 0x000001, 128*1024, CRC(979df65d) SHA1(7499e9a27aa562692bd3a296789696492a6254bc) )
+
+ /* tiles */
+ ROM_REGION( 0x500000, "gfx1", ROMREGION_ERASE00 )
+ TILE_WORDS2_ROM_LOAD( "427a15.11r", 0x000000, 0x100000, CRC(33ce2b8e) SHA1(b0936386cdc7c41f33b1d7b4f5ce25fe618d1286) )
+ TILE_BYTES2_ROM_LOAD( "427a14.143", 0x000004, 0x080000, CRC(7575a0ed) SHA1(92fda2747ac090f93e60cff8478af6721b949dc2) )
+
+ /* sprites */
+ ROM_REGION( 0xc00000, "gfx2", ROMREGION_ERASE00 )
+ _48_WORD_ROM_LOAD( "427a13.18r", 0x000000, 2*1024*1024, CRC(815a9b87) SHA1(7d9d5932fff7dd7aa4cbccf0c8d3784dc8042e70) )
+ _48_WORD_ROM_LOAD( "427a11.23r", 0x000002, 2*1024*1024, CRC(c1ca74c1) SHA1(b7286df8e59f8f1939ebf17aaf9345a857b0b100) )
+ _48_WORD_ROM_LOAD( "427a09.137", 0x000004, 2*1024*1024, CRC(56bdd480) SHA1(01d164aedc77f71f6310cfd739c00b33289a2e7e) )
+ _48_WORD_ROM_LOAD( "427a12.21r", 0x600000, 2*1024*1024, CRC(97d6fd38) SHA1(8d2895850cafdea95db08c84e7eeea90a1921515) )
+ _48_WORD_ROM_LOAD( "427a10.25r", 0x600002, 2*1024*1024, CRC(6b3ccb41) SHA1(b246ef350a430e60f0afd1b80ff48139c325e926) )
+ _48_WORD_ROM_LOAD( "427a08.140", 0x600004, 2*1024*1024, CRC(221250af) SHA1(fd24e7f0e3024df5aa08506523953c5e35d2267b) )
+
+ /* PSAC2 tiles */
+ ROM_REGION( 0x100000, "gfx3", ROMREGION_ERASE00 )
+ ROM_LOAD( "427a18.145", 0x000000, 0x100000, CRC(bb6e6ec6) SHA1(aa1365a4318866d9e7e74461a6e6c113f83b6771) )
+
+ /* PSAC2 map data */
+ ROM_REGION( 0x080000, "gfx4", ROMREGION_ERASE00 )
+ // 4 banks of 0x20000? (only the first 2 seem valid tho)
+ // maybe this is CPU addressable and the 'garbage' is sprite related?
+ ROM_LOAD( "427a17.24c", 0x000000, 0x080000, CRC(fb6eb01f) SHA1(28cdb30ff70ee5fc7624e18fe048dd85dfa49ace) )
+ /* 0x00000-0x1ffff pitch+crowd */
+
+ /* 0x20000-0x2ffff attract screens */
+ /* 0x30000-0x3ffff garbage? */
+
+ /* 0x40000-0x4ffff blank */
+ /* 0x50000-0x5ffff garbage? */
+
+ /* 0x60000-0x6ffff blank */
+ /* 0x70000-0x7ffff garbage? */
+
+ /* sound data */
+ ROM_REGION( 0x400000, "shared", 0 )
+ ROM_LOAD( "427a16.9r", 0x000000, 2*1024*1024, CRC(39547265) SHA1(c0efd68c0c1ea59141045150842f36d43e1f01d8) )
+
+ ROM_REGION( 0x80, "eeprom", 0 ) // default eeprom to prevent game booting with error
+ ROM_LOAD( "soccerssu.nv", 0x0000, 0x080, CRC(812f6878) SHA1(fc4975211720a7eb413bceda8109231cb1c00834) )
+ROM_END
+
+/* Soccer Superstars (94.12.19 - Japan ver JAC) Writes JAB to EEPROM and reports as JAC */
ROM_START( soccerssj )
/* main program */
ROM_REGION( 0x800000, "maincpu", 0 )
GX_BIOS
- ROM_LOAD32_WORD_SWAP( "427c02.28m", 0x200000, 512*1024, CRC(399fe89d) SHA1(e42cf87cff8cd421afd121621ba1f67c43f728ef) )
- ROM_LOAD32_WORD_SWAP( "427c03.30m", 0x200002, 512*1024, CRC(f9c6ab08) SHA1(371b05a3990436a16b77b3d58aa235202abe78db) )
+ ROM_LOAD32_WORD_SWAP( "427jac02.28m", 0x200000, 512*1024, CRC(399fe89d) SHA1(e42cf87cff8cd421afd121621ba1f67c43f728ef) )
+ ROM_LOAD32_WORD_SWAP( "427jac03.30m", 0x200002, 512*1024, CRC(f9c6ab08) SHA1(371b05a3990436a16b77b3d58aa235202abe78db) )
/* data roms */
ROM_LOAD32_WORD_SWAP( "427a04.28r", 0x400000, 0x080000, CRC(c7d3e1a2) SHA1(5e1e4f4c97def36902ad853248014a7af62e0c5e) )
@@ -2727,7 +2787,7 @@ ROM_START( soccerssj )
ROM_LOAD( "soccerssj.nv", 0x0000, 0x080, CRC(7440255e) SHA1(af379b5b1f765f9050f18fbd41c5031c5ad4918b) )
ROM_END
-/* Soccer Superstars (Japan ver JAA)*/
+/* Soccer Superstars (94.12.3 - Japan ver JAA) Writes JAA to EEPROM and reports as JAA */
ROM_START( soccerssja )
/* main program */
ROM_REGION( 0x800000, "maincpu", 0 )
@@ -2774,7 +2834,7 @@ ROM_START( soccerssja )
ROM_LOAD( "soccerssja.nv", 0x0000, 0x080, CRC(60dba700) SHA1(087b086b29748727b41fdd4c154ff9b4bef42959) )
ROM_END
-/* Soccer Superstars (Asian ver AAA) */
+/* Soccer Superstars (94.12.19 - Asia ver AAA) Writes AAA to EEPROM and reports as AAA */
ROM_START( soccerssa )
/* main program */
ROM_REGION( 0x800000, "maincpu", 0 )
@@ -3598,21 +3658,16 @@ MACHINE_RESET_MEMBER(konamigx_state,konamigx)
const char *setname = machine().system().name;
- if (!strcmp(setname, "opengolf") ||
- !strcmp(setname, "opengolf2")||
- !strcmp(setname, "ggreats2") ||
- !strcmp(setname, "tbyahhoo") ||
- !strcmp(setname, "dragoona") ||
- !strcmp(setname, "dragoonj"))
+ if (m_use_68020_post_clock_hack)
{
// [HACK] The 68020 instruction cache is disabled during POST.
// We don't emulate this nor the slow program ROM access times (120ns)
// so some games that rely on wait loops timeout far too quickly
// waiting for the sound system tests to complete.
- // To hack around this, we underclock the 68020 for 10 seconds during POST
+ // To hack around this, we underclock the 68020 for 12 seconds during POST (soccerss requires longest)
m_maincpu->set_clock_scale(0.66f);
- m_boothack_timer->adjust(attotime::from_seconds(10));
+ m_boothack_timer->adjust(attotime::from_seconds(12));
}
if (!strcmp(setname, "le2") ||
@@ -3663,6 +3718,7 @@ static const GXGameInfoT gameDefs[] =
{ "winspike", 8, 7, BPP4 },
{ "winspikej", 8, 7, BPP4 },
{ "soccerss", 7, 0, BPP4 },
+ { "soccerssu", 7, 0, BPP4 },
{ "soccerssa", 7, 0, BPP4 },
{ "soccerssj", 7, 0, BPP4 },
{ "soccerssja",7, 0, BPP4 },
@@ -3770,11 +3826,18 @@ DRIVER_INIT_MEMBER(konamigx_state,konamigx)
#undef BPP66
}
+DRIVER_INIT_MEMBER(konamigx_state,posthack)
+{
+ m_use_68020_post_clock_hack = 1;
+ DRIVER_INIT_CALL(konamigx);
+}
+
+
/**********************************************************************************/
/* year ROM parent machine inp init */
/* dummy parent for the BIOS */
-GAME( 1994, konamigx, 0, konamigx, konamigx, konamigx_state, konamigx, ROT0, "Konami", "System GX", GAME_IS_BIOS_ROOT )
+GAME( 1994, konamigx, 0, konamigx, konamigx, konamigx_state, konamigx, ROT0, "Konami", "System GX", MACHINE_IS_BIOS_ROOT )
/* --------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
/* Type 1: standard with an add-on 53936 on the ROM board, analog inputs, */
@@ -3782,71 +3845,72 @@ GAME( 1994, konamigx, 0, konamigx, konamigx, konamigx_state, konamigx, ROT0, "Ko
/* needs the ROZ layer to be playable */
/* --------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
-GAME( 1994, racinfrc, konamigx, racinfrc, racinfrc, konamigx_state, konamigx, ROT0, "Konami", "Racin' Force (ver EAC)", GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
-GAME( 1994, racinfrcu,racinfrc, racinfrc, racinfrc, konamigx_state, konamigx, ROT0, "Konami", "Racin' Force (ver UAB)", GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
+GAME( 1994, racinfrc, konamigx, racinfrc, racinfrc, konamigx_state, posthack, ROT0, "Konami", "Racin' Force (ver EAC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING )
+GAME( 1994, racinfrcu,racinfrc, racinfrc, racinfrc, konamigx_state, posthack, ROT0, "Konami", "Racin' Force (ver UAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING )
-GAME( 1994, opengolf, konamigx, opengolf, racinfrc, konamigx_state, konamigx, ROT0, "Konami", "Konami's Open Golf Championship (ver EAE)", GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
-GAME( 1994, opengolf2,opengolf, opengolf, racinfrc, konamigx_state, konamigx, ROT0, "Konami", "Konami's Open Golf Championship (ver EAD)", GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
-GAME( 1994, ggreats2, opengolf, opengolf, racinfrc, konamigx_state, konamigx, ROT0, "Konami", "Golfing Greats 2 (ver JAC)", GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
+GAME( 1994, opengolf, konamigx, opengolf, racinfrc, konamigx_state, posthack, ROT0, "Konami", "Konami's Open Golf Championship (ver EAE)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING )
+GAME( 1994, opengolf2,opengolf, opengolf, racinfrc, konamigx_state, posthack, ROT0, "Konami", "Konami's Open Golf Championship (ver EAD)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING )
+GAME( 1994, ggreats2, opengolf, opengolf, racinfrc, konamigx_state, posthack, ROT0, "Konami", "Golfing Greats 2 (ver JAC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING )
/* --------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
/* Type 2: totally stock, sometimes with funny protection chips on the ROM board */
/* these games work and are playable with minor graphics glitches */
/* --------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
-GAME( 1994, le2, konamigx, le2, le2, konamigx_state, konamigx, ROT0, "Konami", "Lethal Enforcers II: Gun Fighters (ver EAA)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1994, le2u, le2, le2, le2_flip, konamigx_state, konamigx, ORIENTATION_FLIP_Y, "Konami", "Lethal Enforcers II: Gun Fighters (ver UAA)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1994, le2j, le2, le2, le2_flip, konamigx_state, konamigx, ORIENTATION_FLIP_Y, "Konami", "Lethal Enforcers II: The Western (ver JAA)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1994, le2, konamigx, le2, le2, konamigx_state, konamigx, ROT0, "Konami", "Lethal Enforcers II: Gun Fighters (ver EAA)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1994, le2u, le2, le2, le2_flip, konamigx_state, konamigx, ORIENTATION_FLIP_Y, "Konami", "Lethal Enforcers II: Gun Fighters (ver UAA)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1994, le2j, le2, le2, le2_flip, konamigx_state, konamigx, ORIENTATION_FLIP_Y, "Konami", "Lethal Enforcers II: The Western (ver JAA)", MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1994, fantjour, konamigx, gokuparo, gokuparo, konamigx_state, konamigx, ROT0, "Konami", "Fantastic Journey (ver EAA)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1994, fantjoura,fantjour, gokuparo, gokuparo, konamigx_state, konamigx, ROT0, "Konami", "Fantastic Journey (ver AAA)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1994, gokuparo, fantjour, gokuparo, gokuparo, konamigx_state, konamigx, ROT0, "Konami", "Gokujyou Parodius (ver JAD)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1994, fantjour, konamigx, gokuparo, gokuparo, konamigx_state, konamigx, ROT0, "Konami", "Fantastic Journey (ver EAA)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1994, fantjoura,fantjour, gokuparo, gokuparo, konamigx_state, konamigx, ROT0, "Konami", "Fantastic Journey (ver AAA)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1994, gokuparo, fantjour, gokuparo, gokuparo, konamigx_state, konamigx, ROT0, "Konami", "Gokujyou Parodius (ver JAD)", MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1994, crzcross, konamigx, gokuparo, puzldama, konamigx_state, konamigx, ROT0, "Konami", "Crazy Cross (ver EAA)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1994, puzldama, crzcross, gokuparo, puzldama, konamigx_state, konamigx, ROT0, "Konami", "Taisen Puzzle-dama (ver JAA)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1994, crzcross, konamigx, gokuparo, puzldama, konamigx_state, posthack, ROT0, "Konami", "Crazy Cross (ver EAA)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1994, puzldama, crzcross, gokuparo, puzldama, konamigx_state, posthack, ROT0, "Konami", "Taisen Puzzle-dama (ver JAA)", MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1995, tbyahhoo, konamigx, tbyahhoo, gokuparo, konamigx_state, konamigx, ROT0, "Konami", "Twin Bee Yahhoo! (ver JAA)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1995, tbyahhoo, konamigx, tbyahhoo, gokuparo, konamigx_state, posthack, ROT0, "Konami", "Twin Bee Yahhoo! (ver JAA)", MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1995, tkmmpzdm, konamigx, konamigx_6bpp, puzldama, konamigx_state, konamigx, ROT0, "Konami", "Tokimeki Memorial Taisen Puzzle-dama (ver JAB)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1995, tkmmpzdm, konamigx, konamigx_6bpp, puzldama, konamigx_state, konamigx, ROT0, "Konami", "Tokimeki Memorial Taisen Puzzle-dama (ver JAB)", MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1995, dragoona, konamigx, dragoonj, dragoonj, konamigx_state, konamigx, ROT0, "Konami", "Dragoon Might (ver AAB)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1995, dragoonj, dragoona, dragoonj, dragoonj, konamigx_state, konamigx, ROT0, "Konami", "Dragoon Might (ver JAA)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1995, dragoona, konamigx, dragoonj, dragoonj, konamigx_state, posthack, ROT0, "Konami", "Dragoon Might (ver AAB)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1995, dragoonj, dragoona, dragoonj, dragoonj, konamigx_state, posthack, ROT0, "Konami", "Dragoon Might (ver JAA)", MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1996, sexyparo, konamigx, sexyparo, gokuparo, konamigx_state, konamigx, ROT0, "Konami", "Sexy Parodius (ver JAA)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, sexyparoa,sexyparo, sexyparo, gokuparo, konamigx_state, konamigx, ROT0, "Konami", "Sexy Parodius (ver AAA)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1996, sexyparo, konamigx, sexyparo, gokuparo, konamigx_state, konamigx, ROT0, "Konami", "Sexy Parodius (ver JAA)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1996, sexyparoa,sexyparo, sexyparo, gokuparo, konamigx_state, konamigx, ROT0, "Konami", "Sexy Parodius (ver AAA)", MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1996, daiskiss, konamigx, konamigx, gokuparo, konamigx_state, konamigx, ROT0, "Konami", "Daisu-Kiss (ver JAA)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1996, daiskiss, konamigx, konamigx, gokuparo, konamigx_state, konamigx, ROT0, "Konami", "Daisu-Kiss (ver JAA)", MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1996, tokkae, konamigx, konamigx_6bpp, puzldama, konamigx_state, konamigx, ROT0, "Konami", "Taisen Tokkae-dama (ver JAA)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1996, tokkae, konamigx, konamigx_6bpp, puzldama, konamigx_state, konamigx, ROT0, "Konami", "Taisen Tokkae-dama (ver JAA)", MACHINE_IMPERFECT_GRAPHICS )
/* protection controls player ship direction in attract mode - doesn't impact playability */
-GAME( 1996, salmndr2, konamigx, salmndr2, gokuparo, konamigx_state, konamigx, ROT0, "Konami", "Salamander 2 (ver JAA)", GAME_IMPERFECT_GRAPHICS|GAME_UNEMULATED_PROTECTION )
-GAME( 1996, salmndr2a,salmndr2, salmndr2, gokuparo, konamigx_state, konamigx, ROT0, "Konami", "Salamander 2 (ver AAB)", GAME_IMPERFECT_GRAPHICS|GAME_UNEMULATED_PROTECTION )
+GAME( 1996, salmndr2, konamigx, salmndr2, gokuparo, konamigx_state, konamigx, ROT0, "Konami", "Salamander 2 (ver JAA)", MACHINE_IMPERFECT_GRAPHICS|MACHINE_UNEMULATED_PROTECTION )
+GAME( 1996, salmndr2a,salmndr2, salmndr2, gokuparo, konamigx_state, konamigx, ROT0, "Konami", "Salamander 2 (ver AAB)", MACHINE_IMPERFECT_GRAPHICS|MACHINE_UNEMULATED_PROTECTION )
/* bad sprite colours, part of tilemap gets blanked out when a game starts (might be more protection) */
-GAME( 1997, winspike, konamigx, winspike, konamigx, konamigx_state, konamigx, ROT0, "Konami", "Winning Spike (ver EAA)", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, winspikej,winspike, winspike, konamigx, konamigx_state, konamigx, ROT0, "Konami", "Winning Spike (ver JAA)", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_GRAPHICS )
+GAME( 1997, winspike, konamigx, winspike, konamigx, konamigx_state, konamigx, ROT0, "Konami", "Winning Spike (ver EAA)", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1997, winspikej,winspike, winspike, konamigx, konamigx_state, konamigx, ROT0, "Konami", "Winning Spike (ver JAA)", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_GRAPHICS )
/* --------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
/* Type 3: dual monitor output and 53936 on the ROM board, external palette RAM */
/* --------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
-GAME( 1994, soccerss, konamigx, gxtype3, type3, konamigx_state, konamigx, ROT0, "Konami", "Soccer Superstars (ver EAA)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1994, soccerssj, soccerss, gxtype3, type3, konamigx_state, konamigx, ROT0, "Konami", "Soccer Superstars (ver JAC)", GAME_IMPERFECT_GRAPHICS ) // writes JAB to EEPROM, but should be version JAC according to labels
-GAME( 1994, soccerssja,soccerss, gxtype3, type3, konamigx_state, konamigx, ROT0, "Konami", "Soccer Superstars (ver JAA)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1994, soccerssa, soccerss, gxtype3, type3, konamigx_state, konamigx, ROT0, "Konami", "Soccer Superstars (ver AAA)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1994, soccerss, konamigx, gxtype3, type3, konamigx_state, posthack, ROT0, "Konami", "Soccer Superstars (ver EAC)", MACHINE_IMPERFECT_GRAPHICS ) // writes EAA to EEPROM, but should be version EAC according to labels
+GAME( 1994, soccerssu, soccerss, gxtype3, type3, konamigx_state, posthack, ROT0, "Konami", "Soccer Superstars (ver UAC)", MACHINE_IMPERFECT_GRAPHICS ) // writes UAA to EEPROM, but should be version UAC according to labels
+GAME( 1994, soccerssj, soccerss, gxtype3, type3, konamigx_state, posthack, ROT0, "Konami", "Soccer Superstars (ver JAC)", MACHINE_IMPERFECT_GRAPHICS ) // writes JAB to EEPROM, but should be version JAC according to labels
+GAME( 1994, soccerssja,soccerss, gxtype3, type3, konamigx_state, posthack, ROT0, "Konami", "Soccer Superstars (ver JAA)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1994, soccerssa, soccerss, gxtype3, type3, konamigx_state, posthack, ROT0, "Konami", "Soccer Superstars (ver AAA)", MACHINE_IMPERFECT_GRAPHICS )
/* --------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
/* Type 4: dual monitor output and 53936 on the ROM board, external palette RAM, DMA protection */
/* --------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
-GAME( 1996, vsnetscr, konamigx, gxtype4_vsn, type3, konamigx_state, konamigx, ROT0, "Konami", "Versus Net Soccer (ver EAD)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND )
-GAME( 1996, vsnetscreb,vsnetscr, gxtype4_vsn, type3, konamigx_state, konamigx, ROT0, "Konami", "Versus Net Soccer (ver EAB)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND )
-GAME( 1996, vsnetscru, vsnetscr, gxtype4_vsn, type3, konamigx_state, konamigx, ROT0, "Konami", "Versus Net Soccer (ver UAB)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND )
-GAME( 1996, vsnetscra, vsnetscr, gxtype4_vsn, type3, konamigx_state, konamigx, ROT0, "Konami", "Versus Net Soccer (ver AAA)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND )
-GAME( 1996, vsnetscrj, vsnetscr, gxtype4_vsn, type3, konamigx_state, konamigx, ROT0, "Konami", "Versus Net Soccer (ver JAB)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND )
+GAME( 1996, vsnetscr, konamigx, gxtype4_vsn, type3, konamigx_state, konamigx, ROT0, "Konami", "Versus Net Soccer (ver EAD)", MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_SOUND )
+GAME( 1996, vsnetscreb,vsnetscr, gxtype4_vsn, type3, konamigx_state, konamigx, ROT0, "Konami", "Versus Net Soccer (ver EAB)", MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_SOUND )
+GAME( 1996, vsnetscru, vsnetscr, gxtype4_vsn, type3, konamigx_state, konamigx, ROT0, "Konami", "Versus Net Soccer (ver UAB)", MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_SOUND )
+GAME( 1996, vsnetscra, vsnetscr, gxtype4_vsn, type3, konamigx_state, konamigx, ROT0, "Konami", "Versus Net Soccer (ver AAA)", MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_SOUND )
+GAME( 1996, vsnetscrj, vsnetscr, gxtype4_vsn, type3, konamigx_state, konamigx, ROT0, "Konami", "Versus Net Soccer (ver JAB)", MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_SOUND )
-GAME( 1996, rungun2, konamigx, gxtype4sd2, type3, konamigx_state, konamigx, ROT0, "Konami", "Run and Gun 2 (ver UAA)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, slamdnk2, rungun2, gxtype4sd2, type3, konamigx_state, konamigx, ROT0, "Konami", "Slam Dunk 2 (ver JAA)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1996, rungun2, konamigx, gxtype4sd2, type3, konamigx_state, konamigx, ROT0, "Konami", "Run and Gun 2 (ver UAA)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1996, slamdnk2, rungun2, gxtype4sd2, type3, konamigx_state, konamigx, ROT0, "Konami", "Slam Dunk 2 (ver JAA)", MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1996, rushhero, konamigx, gxtype4, type3, konamigx_state, konamigx, ROT0, "Konami", "Rushing Heroes (ver UAB)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1996, rushhero, konamigx, gxtype4, type3, konamigx_state, konamigx, ROT0, "Konami", "Rushing Heroes (ver UAB)", MACHINE_IMPERFECT_GRAPHICS )
diff --git a/src/mame/drivers/konamim2.c b/src/mame/drivers/konamim2.c
index 04af6e81892..63c293fa1be 100644
--- a/src/mame/drivers/konamim2.c
+++ b/src/mame/drivers/konamim2.c
@@ -1327,15 +1327,15 @@ DRIVER_INIT_MEMBER(konamim2_state,m2)
cde_init();
}
-GAME( 1997, polystar, 0, m2, m2, konamim2_state, m2, ROT0, "Konami", "Tobe! Polystars (ver JAA)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 1997, totlvice, 0, m2, m2, konamim2_state, m2, ROT0, "Konami", "Total Vice (ver EBA)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 1997, totlvicu, totlvice, m2, m2, konamim2_state, m2, ROT0, "Konami", "Total Vice (ver UAC)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 1997, totlvicj, totlvice, m2, m2, konamim2_state, m2, ROT0, "Konami", "Total Vice (ver JAD)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 1997, totlvica, totlvice, m2, m2, konamim2_state, m2, ROT0, "Konami", "Total Vice (ver AAB)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 1998, btltryst, 0, m2, m2, konamim2_state, m2, ROT0, "Konami", "Battle Tryst (ver JAC)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 1998, heatof11, 0, m2, m2, konamim2_state, m2, ROT0, "Konami", "Heat of Eleven '98 (ver EAA)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 1998, evilngt, 0, m2, m2, konamim2_state, m2, ROT0, "Konami", "Evil Night (ver UBA)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 1998, evilngte, evilngt, m2, m2, konamim2_state, m2, ROT0, "Konami", "Evil Night (ver EAA)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 1998, hellngt, evilngt, m2, m2, konamim2_state, m2, ROT0, "Konami", "Hell Night (ver EAA)", GAME_NOT_WORKING | GAME_NO_SOUND )
-
-CONS( 199?, 3do_m2, 0, 0, m2, m2, driver_device, 0, "3DO", "3DO M2", GAME_NOT_WORKING | GAME_NO_SOUND )
+GAME( 1997, polystar, 0, m2, m2, konamim2_state, m2, ROT0, "Konami", "Tobe! Polystars (ver JAA)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 1997, totlvice, 0, m2, m2, konamim2_state, m2, ROT0, "Konami", "Total Vice (ver EBA)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 1997, totlvicu, totlvice, m2, m2, konamim2_state, m2, ROT0, "Konami", "Total Vice (ver UAC)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 1997, totlvicj, totlvice, m2, m2, konamim2_state, m2, ROT0, "Konami", "Total Vice (ver JAD)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 1997, totlvica, totlvice, m2, m2, konamim2_state, m2, ROT0, "Konami", "Total Vice (ver AAB)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 1998, btltryst, 0, m2, m2, konamim2_state, m2, ROT0, "Konami", "Battle Tryst (ver JAC)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 1998, heatof11, 0, m2, m2, konamim2_state, m2, ROT0, "Konami", "Heat of Eleven '98 (ver EAA)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 1998, evilngt, 0, m2, m2, konamim2_state, m2, ROT0, "Konami", "Evil Night (ver UBA)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+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, m2, m2, driver_device, 0, "3DO", "3DO M2", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/konendev.c b/src/mame/drivers/konendev.c
index 216b9dd4158..9e8f542eb65 100644
--- a/src/mame/drivers/konendev.c
+++ b/src/mame/drivers/konendev.c
@@ -37,78 +37,271 @@
#include "emu.h"
#include "cpu/powerpc/ppc.h"
#include "sound/ymz280b.h"
+#include "video/k057714.h"
+#include "machine/nvram.h"
+#include "machine/eepromser.h"
class konendev_state : public driver_device
{
public:
konendev_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
- m_maincpu(*this, "maincpu")
+ m_maincpu(*this, "maincpu"),
+ m_gcu(*this, "gcu"),
+ m_eeprom(*this, "eeprom")
{ }
protected:
// devices
required_device<cpu_device> m_maincpu;
+ required_device<k057714_device> m_gcu;
+ required_device<eeprom_serial_93cxx_device> m_eeprom;
public:
DECLARE_DRIVER_INIT(konendev);
+ DECLARE_DRIVER_INIT(enchlamp);
- DECLARE_READ32_MEMBER(gcu_r);
- DECLARE_WRITE32_MEMBER(gcu_w);
+ DECLARE_READ32_MEMBER(mcu2_r);
+ DECLARE_READ32_MEMBER(ifu2_r);
+ DECLARE_READ32_MEMBER(ctrl0_r);
+ DECLARE_READ32_MEMBER(ctrl1_r);
+ DECLARE_READ32_MEMBER(ctrl2_r);
+ DECLARE_READ32_MEMBER(rtc_r);
+ DECLARE_WRITE32_MEMBER(rtc_w);
+ DECLARE_WRITE32_MEMBER(eeprom_w);
+ DECLARE_READ32_MEMBER(sound_data_r);
+ DECLARE_WRITE32_MEMBER(sound_data_w);
+
+ DECLARE_WRITE_LINE_MEMBER(gcu_interrupt);
+ INTERRUPT_GEN_MEMBER(vbl_interrupt);
+
+ UINT8 rtc_dev_r(UINT32 reg);
UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
UINT32 konendev_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- return 0;
+ return m_gcu->draw(screen, bitmap, cliprect);
}
-// VERY similar to the Firebeat GCU, probably the same
-READ32_MEMBER(konendev_state::gcu_r)
+READ32_MEMBER(konendev_state::mcu2_r)
{
- int reg = offset << 2;
+ UINT32 r = 0;
+
+ if (ACCESSING_BITS_24_31)
+ {
+ r |= 0x11000000; // MCU2 version
+ }
+ if (ACCESSING_BITS_16_23)
+ {
+ r |= (m_eeprom->do_read() ? 0x2 : 0) << 16;
+ }
+ if (ACCESSING_BITS_8_15)
+ {
+ r &= ~0x4000; // MCU2 presence
+ r &= ~0x2000; // IFU2 presence
+ r &= ~0x1000; // FMU2 presence
+ }
+ if (ACCESSING_BITS_0_7)
+ {
+ r |= ioport("DSW")->read() & 0xff;
+
+ //r |= 0x80; // 0 = ram clear?
+ //r |= 0x40; // logic door
+ r |= 0x04; // battery 1 status
+ r |= 0x10; // battery 2 status
+ }
+
+ return r;
+}
+
+READ32_MEMBER(konendev_state::ifu2_r)
+{
+ UINT32 r = 0;
+
+ if (ACCESSING_BITS_0_7)
+ {
+ r |= 0x11; // IFU2 version
+ }
+
+ return r;
+}
+// This seems to be Epson RTC-72423
+UINT8 konendev_state::rtc_dev_r(UINT32 reg)
+{
switch (reg)
{
- // Status register
- case 0x78:
- return rand();
+ case 0x0: return 9;
+ case 0x1: return 5;
+ case 0x2: return 3;
+ case 0x3: return 2;
+ case 0x4: return 1;
+ case 0x5: return 0;
+ case 0x6: return 7;
+ case 0x7: return 2;
+ case 0x8: return 2;
+ case 0x9: return 1;
+ case 0xa: return 5;
+ case 0xb: return 1;
+ case 0xc: return 3;
}
return 0;
}
-WRITE32_MEMBER(konendev_state::gcu_w)
+READ32_MEMBER(konendev_state::rtc_r)
+{
+ UINT32 r = 0;
+
+ if (ACCESSING_BITS_24_31)
+ r |= (UINT32)(rtc_dev_r(offset * 4)) << 24;
+ if (ACCESSING_BITS_16_23)
+ r |= (UINT32)(rtc_dev_r((offset * 4)+1)) << 16;
+ if (ACCESSING_BITS_8_15)
+ r |= (UINT32)(rtc_dev_r((offset * 4)+2)) << 8;
+ if (ACCESSING_BITS_0_7)
+ r |= (UINT32)(rtc_dev_r((offset * 4)+3));
+
+ return r;
+}
+
+WRITE32_MEMBER(konendev_state::rtc_w)
{
- int reg = offset << 2;
+}
- switch (reg)
+READ32_MEMBER(konendev_state::ctrl0_r)
+{
+ return ((UINT32)(ioport("IN1")->read() & 0xffff) << 16) | 0xffff;
+}
+
+READ32_MEMBER(konendev_state::ctrl1_r)
+{
+ // 0x01000000 = main door optic
+ // 0x00000010 = hard meter access
+
+ return 0xfeffffef;
+}
+
+READ32_MEMBER(konendev_state::ctrl2_r)
+{
+ return ((UINT32)(ioport("IN0")->read() & 0xffff) << 16) | 0xffff;
+}
+
+WRITE32_MEMBER(konendev_state::eeprom_w)
+{
+ if (ACCESSING_BITS_0_7)
{
- default:
- osd_printf_debug("[%x] %.4x\n", reg, data);
+ m_eeprom->di_write((data & 0x04) ? 1 : 0);
+ m_eeprom->clk_write((data & 0x02) ? ASSERT_LINE : CLEAR_LINE);
+ m_eeprom->cs_write((data & 0x01) ? ASSERT_LINE : CLEAR_LINE);
}
}
+READ32_MEMBER(konendev_state::sound_data_r)
+{
+ return 0xffffffff;
+}
+
+WRITE32_MEMBER(konendev_state::sound_data_w)
+{
+}
+
static ADDRESS_MAP_START( konendev_map, AS_PROGRAM, 32, konendev_state )
AM_RANGE(0x00000000, 0x00ffffff) AM_RAM
- AM_RANGE(0x78000000, 0x78000003) AM_READNOP
- AM_RANGE(0x78100000, 0x7810001b) AM_RAM
- AM_RANGE(0x78a00014, 0x78a00017) AM_WRITENOP
- AM_RANGE(0x79800000, 0x798000ff) AM_READWRITE(gcu_r, gcu_w)
+ AM_RANGE(0x78000000, 0x78000003) AM_READ(mcu2_r)
+ AM_RANGE(0x78080000, 0x7808000f) AM_READWRITE(rtc_r, rtc_w)
+ AM_RANGE(0x780c0000, 0x780c0003) AM_READWRITE(sound_data_r, sound_data_w)
+ AM_RANGE(0x78100000, 0x78100003) AM_WRITE(eeprom_w)
+ AM_RANGE(0x78800000, 0x78800003) AM_READ(ifu2_r)
+ AM_RANGE(0x78800004, 0x78800007) AM_READ(ctrl0_r)
+ AM_RANGE(0x78a00000, 0x78a0001f) AM_READ(ctrl1_r)
+ AM_RANGE(0x78e00000, 0x78e00003) AM_READ(ctrl2_r)
+ AM_RANGE(0x79000000, 0x79000003) AM_DEVWRITE("gcu", k057714_device, fifo_w)
+ AM_RANGE(0x79800000, 0x798000ff) AM_DEVREADWRITE("gcu", k057714_device, read, write)
+ AM_RANGE(0x7a000000, 0x7a01ffff) AM_RAM AM_SHARE("nvram0")
+ AM_RANGE(0x7a100000, 0x7a11ffff) AM_RAM AM_SHARE("nvram1")
+ AM_RANGE(0x7e000000, 0x7f7fffff) AM_ROM AM_REGION("flash", 0)
AM_RANGE(0x7ff00000, 0x7fffffff) AM_ROM AM_REGION("program", 0)
ADDRESS_MAP_END
static INPUT_PORTS_START( konendev )
+ PORT_START("IN0")
+ PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_GAMBLE_TAKE ) // "Take Win" button
+ PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_GAMBLE_BET ) // "Gamble" button
+ PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON1 ) // "25 Lines" button
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON2 ) // "20 Lines" button
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON3 ) // "15 Lines" button
+ PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON4 ) // "10 Lines" button
+ PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON5 ) // "5 Lines" button
+ PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON6 ) // "1 Line" button
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON7 ) // "Reserve" button
+ PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON8 ) // "Collect" button
+ PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON9 ) // "Bet 20" button
+ PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON10 ) // "Bet 10" button
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON11 ) // "Bet 5" button
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON12 ) // "Bet 3" button
+ PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON13 ) // "Bet 2" button
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON14 ) // "Bet 1" button
+
+ PORT_START("IN1")
+ PORT_BIT( 0xc000, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_SERVICE( 0x2000, IP_ACTIVE_LOW ) // Audit key
+ PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON16 ) // Reset key
+ PORT_DIPNAME( 0x0800, 0x0800, "Main door switch" )
+ PORT_DIPSETTING( 0x0800, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x0400, 0x0400, "Cashbox door" )
+ PORT_DIPSETTING( 0x0400, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_BIT( 0x0300, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_DIPNAME( 0x0040, 0x0040, "BNA Door" )
+ PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x0020, 0x0020, "BNA Transport Exist" )
+ PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x0010, 0x0010, "BNA Stacker Exist" )
+ PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_DIPNAME( 0x0002, 0x0002, "BNA Power" )
+ PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_START("DSW")
+ PORT_DIPNAME( 0x80, 0x80, "Ram Clear" )
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, "Logic Door" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( On ) )
INPUT_PORTS_END
+WRITE_LINE_MEMBER(konendev_state::gcu_interrupt)
+{
+ m_maincpu->set_input_line(INPUT_LINE_IRQ1, state);
+ m_maincpu->set_input_line(INPUT_LINE_IRQ3, state);
+}
+
+
+INTERRUPT_GEN_MEMBER(konendev_state::vbl_interrupt)
+{
+ device.execute().set_input_line(INPUT_LINE_IRQ1, ASSERT_LINE);
+ device.execute().set_input_line(INPUT_LINE_IRQ3, ASSERT_LINE);
+}
static MACHINE_CONFIG_START( konendev, konendev_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", PPC403GCX, 32000000) // Clock unknown
MCFG_CPU_PROGRAM_MAP(konendev_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", konendev_state, vbl_interrupt)
/* video hardware */
MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette")
@@ -121,6 +314,14 @@ static MACHINE_CONFIG_START( konendev, konendev_state )
MCFG_SCREEN_UPDATE_DRIVER(konendev_state, screen_update)
MCFG_SCREEN_PALETTE("palette")
+ MCFG_DEVICE_ADD("gcu", K057714, 0)
+ MCFG_K057714_IRQ_CALLBACK(WRITELINE(konendev_state, gcu_interrupt))
+
+ MCFG_NVRAM_ADD_0FILL("nvram0")
+ MCFG_NVRAM_ADD_0FILL("nvram1")
+
+ MCFG_EEPROM_SERIAL_93C56_ADD("eeprom")
+
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -137,8 +338,11 @@ ROM_START( enchlamp )
ROM_LOAD32_WORD_SWAP( "enl5rg26_01h.bin", 0x00000, 0x100000, CRC(fed5b988) SHA1(49442decd9b40f0a382c4fc7b231958f526ddbd1) )
ROM_LOAD32_WORD_SWAP( "enl5rg26_02l.bin", 0x00002, 0x100000, CRC(d0e42c9f) SHA1(10ff944ec0a626d47ec12be291ff5fe001342ed4) )
- ROM_REGION( 0x1800000, "flash", 0 )
+ ROM_REGION32_BE( 0x1800000, "flash", ROMREGION_ERASE00 )
ROM_LOAD( "enl5r211.fmu.bin", 0x0000, 0x1800000, CRC(592c3c7f) SHA1(119b3c6223d656981c399c399d7edccfdbb50dc7) )
+
+ ROM_REGION32_BE( 0x100, "eeprom", 0 )
+ ROM_LOAD( "93c56.u98", 0x00, 0x100, CRC(b2521a6a) SHA1(f44711545bee7e9c772a3dc23b79f0ea8059ec50) ) // empty eeprom with Konami header
ROM_END
@@ -150,6 +354,8 @@ ROM_START( whiterus )
ROM_REGION( 0x200000, "others", 0 )
ROM_LOAD( "u190.4 2v02s502.ifu_rus (95 7)", 0x0000, 0x080000, CRC(36122a98) SHA1(3d2c40c9d504358d890364e26c9562e40314d8a4) )
ROM_LOAD( "2v02s502_ifu.bin", 0x0000, 0x080000, CRC(36122a98) SHA1(3d2c40c9d504358d890364e26c9562e40314d8a4) ) // was in 2V02S502_IFU.zip looks similar to above tho
+
+ ROM_REGION32_BE( 0x1800000, "flash", ROMREGION_ERASE00 )
ROM_END
/* Partial sets */
@@ -158,107 +364,152 @@ ROM_START( aadvent )
ROM_REGION32_BE( 0x200000, "program", 0 )
ROM_LOAD32_WORD_SWAP( "afa5re26_01h.bin", 0x00000, 0x100000, CRC(65ce6f7a) SHA1(018742f13fea4c52f822e7f12e8efd0aff61a713) )
ROM_LOAD32_WORD_SWAP( "afa5re26_02l.bin", 0x00002, 0x100000, CRC(73945b3a) SHA1(5ace9c439048f3555fe631917c15bee76362e784) )
+
+ ROM_REGION32_BE( 0x1800000, "flash", ROMREGION_ERASE00 )
ROM_END
ROM_START( dragnfly )
ROM_REGION32_BE( 0x200000, "program", 0 )
ROM_LOAD32_WORD_SWAP( "drf5re26_01h.bin", 0x00000, 0x100000, CRC(ef6f1b69) SHA1(007a41cd1b08705184f69ce3e0e6c63bc2301e25) )
ROM_LOAD32_WORD_SWAP( "drf5re26_02l.bin", 0x00002, 0x100000, CRC(00e00c29) SHA1(a92d7220bf46655222ddc5d1c276dc469343f4c5) )
+
+ ROM_REGION32_BE( 0x1800000, "flash", ROMREGION_ERASE00 )
ROM_END
ROM_START( gypmagic )
ROM_REGION32_BE( 0x200000, "program", 0 )
ROM_LOAD32_WORD_SWAP( "gym5rc26_01h.bin", 0x00000, 0x080000, CRC(8643be94) SHA1(fc63872a55ac2229652566bd9795ce9bf8442fee) )
ROM_LOAD32_WORD_SWAP( "gym5rc26_02l.bin", 0x00002, 0x080000, CRC(4ee33c46) SHA1(9e0ef66e9d53a47827d04e6a89d13d37429e0c16) )
+
+ ROM_REGION32_BE( 0x1800000, "flash", ROMREGION_ERASE00 )
ROM_END
ROM_START( incanp )
ROM_REGION32_BE( 0x200000, "program", 0 )
ROM_LOAD32_WORD_SWAP( "inp5rg26_01h.bin", 0x00000, 0x100000, CRC(8434222e) SHA1(d03710e18f5b9e45db32685778a21a5dc598d043) )
ROM_LOAD32_WORD_SWAP( "inp5rg26_02l.bin", 0x00002, 0x100000, CRC(50c37109) SHA1(a638587f37f63b3f63ee51f541d991c3784c09f7) )
+
+ ROM_REGION32_BE( 0x1800000, "flash", ROMREGION_ERASE00 )
ROM_END
ROM_START( jestmagi )
ROM_REGION32_BE( 0x200000, "program", 0 )
ROM_LOAD32_WORD_SWAP( "jem5rc26_01h.bin", 0x00000, 0x080000, CRC(9145324c) SHA1(366baa22bde1b8da19dba756829305d0fd69b4ff) )
ROM_LOAD32_WORD_SWAP( "jem5rc26_02l.bin", 0x00002, 0x080000, CRC(cb49f466) SHA1(e3987de2e640fe8116d66d2c1755e6500dedf8a5) )
+
+ ROM_REGION32_BE( 0x1800000, "flash", ROMREGION_ERASE00 )
ROM_END
ROM_START( luckfoun )
ROM_REGION32_BE( 0x200000, "program", 0 )
ROM_LOAD32_WORD_SWAP( "luf5rd26_01h.bin", 0x00000, 0x080000, CRC(68b3d50a) SHA1(9b3d2a9f5d72db091e79b036017bd5d07f9fed00) )
ROM_LOAD32_WORD_SWAP( "luf5rd26_02l.bin", 0x00002, 0x080000, CRC(e7e9b8cd) SHA1(d8c421b0d58775f5a0ccae6395a604091b0acf1d) )
+
+ ROM_REGION32_BE( 0x1800000, "flash", ROMREGION_ERASE00 )
ROM_END
ROM_START( mohicans )
ROM_REGION32_BE( 0x200000, "program", 0 )
ROM_LOAD32_WORD_SWAP( "moh5rf26_01h.bin", 0x00000, 0x100000, CRC(527dda20) SHA1(0a71484421738517c17d76e9bf92943b57cc4cc8) )
ROM_LOAD32_WORD_SWAP( "moh5rf26_02l.bin", 0x00002, 0x100000, CRC(a9bd3846) SHA1(02d80ff6c20e3732ae582de5d4392d4d6d8ba955) )
+
+ ROM_REGION32_BE( 0x1800000, "flash", ROMREGION_ERASE00 )
ROM_END
ROM_START( monshow )
ROM_REGION32_BE( 0x200000, "program", 0 )
ROM_LOAD32_WORD_SWAP( "tms5rc26_01h.bin", 0x00000, 0x100000, CRC(8209aafe) SHA1(e48a0524ad93a9b657d3efe67f7b5e1067b37e48) )
ROM_LOAD32_WORD_SWAP( "tms5rc26_02l.bin", 0x00002, 0x100000, CRC(78de8c59) SHA1(ad73bc926f5874d257171dfa6b727cb31e33bce9) )
+
+ ROM_REGION32_BE( 0x1800000, "flash", ROMREGION_ERASE00 )
ROM_END
ROM_START( romanl )
ROM_REGION32_BE( 0x200000, "program", 0 )
ROM_LOAD32_WORD_SWAP( "rol5rg26_01h.bin", 0x00000, 0x100000, CRC(d441d30c) SHA1(025111699a7e29781bbb4d0f4151c808e3d06235) )
ROM_LOAD32_WORD_SWAP( "rol5rg26_02l.bin", 0x00002, 0x100000, CRC(08bd72ca) SHA1(a082cffeb1bccc8ec468a618eaabba7dac89882c) )
+
+ ROM_REGION32_BE( 0x1800000, "flash", ROMREGION_ERASE00 )
ROM_END
ROM_START( safemon )
ROM_REGION32_BE( 0x200000, "program", 0 )
ROM_LOAD32_WORD_SWAP( "sam5rj26_01h.bin", 0x00000, 0x080000, CRC(7f82693f) SHA1(1c8540d209ab17f4fca5ff74bc687c83ec315208) )
ROM_LOAD32_WORD_SWAP( "sam5rj26_02l.bin", 0x00002, 0x080000, CRC(73bd981e) SHA1(f01b97201bd877c601cf3c742a6e0963de8e48dc) )
+
+ ROM_REGION32_BE( 0x1800000, "flash", ROMREGION_ERASE00 )
ROM_END
ROM_START( showqn )
ROM_REGION32_BE( 0x200000, "program", 0 )
ROM_LOAD32_WORD_SWAP( "shq_1h.bin", 0x00000, 0x080000, CRC(3fc44415) SHA1(f0be1b90a2a374f9fb9e059e834bbdbf714b6607) )
ROM_LOAD32_WORD_SWAP( "shq_2l.bin", 0x00002, 0x080000, CRC(38a03281) SHA1(1b4552b0ce347df4d87e398111bbf72f126a8ec1) )
+
+ ROM_REGION32_BE( 0x1800000, "flash", ROMREGION_ERASE00 )
ROM_END
ROM_START( spiceup )
ROM_REGION32_BE( 0x200000, "program", 0 )
ROM_LOAD32_WORD_SWAP( "siu5rc26_01h.bin", 0x00000, 0x100000, CRC(373bc2b1) SHA1(af3740fdcd028f162440701c952a3a87805bc65b) )
ROM_LOAD32_WORD_SWAP( "siu5rc26_02l.bin", 0x00002, 0x100000, CRC(2e584321) SHA1(ca98092dde76338117e989e774db2db672d87bfa) )
+
+ ROM_REGION32_BE( 0x1800000, "flash", ROMREGION_ERASE00 )
ROM_END
ROM_START( sultanw )
ROM_REGION32_BE( 0x200000, "program", 0 )
ROM_LOAD32_WORD_SWAP( "suw5rc26_01h.bin", 0x00000, 0x100000, CRC(27760529) SHA1(b8970a706df52ee5792bbd7a4e719f2be87662ac) )
ROM_LOAD32_WORD_SWAP( "suw5rc26_02l.bin", 0x00002, 0x100000, CRC(1c98fd4d) SHA1(58ff948c0deba0bffb8866b15f46518524516501) )
+
+ ROM_REGION32_BE( 0x1800000, "flash", ROMREGION_ERASE00 )
ROM_END
ROM_START( konzero )
ROM_REGION32_BE( 0x200000, "program", 0 )
ROM_LOAD32_WORD_SWAP( "rmclr_h.bin", 0x00000, 0x080000, CRC(b9237061) SHA1(0eb311e8e1c872d6a9c38726efb17ddf4713bc7d) )
ROM_LOAD32_WORD_SWAP( "rmclr_l.bin", 0x00002, 0x080000, CRC(2806299c) SHA1(a069f4477b310f99ff1ff48f622dc30862589127) )
+
+ ROM_REGION32_BE( 0x1800000, "flash", ROMREGION_ERASE00 )
+
+ ROM_REGION32_BE( 0x100, "eeprom", 0 )
+ ROM_LOAD( "93c56.u98", 0x00, 0x100, CRC(b2521a6a) SHA1(f44711545bee7e9c772a3dc23b79f0ea8059ec50) ) // empty eeprom with Konami header
ROM_END
DRIVER_INIT_MEMBER(konendev_state,konendev)
{
}
+DRIVER_INIT_MEMBER(konendev_state,enchlamp)
+{
+ UINT32 *rom = (UINT32*)memregion("program")->base();
+ rom[0x24/4] = 0x00002743; // patch flash checksum for now
+
+ // patch sound data checksums
+ rom[0x2d924/4] = 0x00000000;
+ rom[0x2d928/4] = 0x00000000;
+ rom[0x2d934/4] = 0x00000000;
+ rom[0x2d938/4] = 0x00000000;
+
+ rom[0] = 0x5782b930; // new checksum for program rom
+}
+
// has a flash dump?
-GAME( 200?, enchlamp, 0, konendev, konendev, konendev_state, konendev, ROT0, "Konami", "Enchanted Lamp (Konami Endeavour)", GAME_NOT_WORKING | GAME_NO_SOUND )
+GAME( 200?, enchlamp, 0, konendev, konendev, konendev_state, enchlamp, ROT0, "Konami", "Enchanted Lamp (Konami Endeavour)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
// missing flash but has other interesting files
-GAME( 200?, whiterus, 0, konendev, konendev, konendev_state, konendev, ROT0, "Konami", "White Russia (Konami Endeavour)", GAME_NOT_WORKING | GAME_NO_SOUND )
+GAME( 200?, whiterus, 0, konendev, konendev, konendev_state, konendev, ROT0, "Konami", "White Russia (Konami Endeavour)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
// partial sets
-GAME( 200?, aadvent, 0, konendev, konendev, konendev_state, konendev, ROT0, "Konami", "African Adventure (Konami Endeavour)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 200?, dragnfly, 0, konendev, konendev, konendev_state, konendev, ROT0, "Konami", "Dragonfly (Konami Endeavour)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 200?, gypmagic, 0, konendev, konendev, konendev_state, konendev, ROT0, "Konami", "Gypsy Magic (Konami Endeavour)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 200?, incanp, 0, konendev, konendev, konendev_state, konendev, ROT0, "Konami", "Incan Pyramids (Konami Endeavour)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 200?, jestmagi, 0, konendev, konendev, konendev_state, konendev, ROT0, "Konami", "Jester Magic (Konami Endeavour)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 200?, luckfoun, 0, konendev, konendev, konendev_state, konendev, ROT0, "Konami", "Lucky Fountain (Konami Endeavour)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 200?, mohicans, 0, konendev, konendev, konendev_state, konendev, ROT0, "Konami", "Mohican Sun (Konami Endeavour)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 200?, monshow, 0, konendev, konendev, konendev_state, konendev, ROT0, "Konami", "The Monster Show (Konami Endeavour)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 200?, romanl, 0, konendev, konendev, konendev_state, konendev, ROT0, "Konami", "Roman Legions (Konami Endeavour)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 200?, safemon, 0, konendev, konendev, konendev_state, konendev, ROT0, "Konami", "Safe Money (Konami Endeavour)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 200?, showqn, 0, konendev, konendev, konendev_state, konendev, ROT0, "Konami", "Show Queen (Konami Endeavour)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 200?, spiceup, 0, konendev, konendev, konendev_state, konendev, ROT0, "Konami", "Spice It Up (Konami Endeavour)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 200?, sultanw, 0, konendev, konendev, konendev_state, konendev, ROT0, "Konami", "Sultan's Wish (Konami Endeavour)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 200?, konzero, 0, konendev, konendev, konendev_state, konendev, ROT0, "Konami", "Zero (Konami Endeavour)", GAME_NOT_WORKING | GAME_NO_SOUND ) // doesn't seem to have a title string in it?
+GAME( 200?, aadvent, 0, konendev, konendev, konendev_state, konendev, ROT0, "Konami", "African Adventure (Konami Endeavour)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 200?, dragnfly, 0, konendev, konendev, konendev_state, konendev, ROT0, "Konami", "Dragonfly (Konami Endeavour)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 200?, gypmagic, 0, konendev, konendev, konendev_state, konendev, ROT0, "Konami", "Gypsy Magic (Konami Endeavour)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 200?, incanp, 0, konendev, konendev, konendev_state, konendev, ROT0, "Konami", "Incan Pyramids (Konami Endeavour)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 200?, jestmagi, 0, konendev, konendev, konendev_state, konendev, ROT0, "Konami", "Jester Magic (Konami Endeavour)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 200?, luckfoun, 0, konendev, konendev, konendev_state, konendev, ROT0, "Konami", "Lucky Fountain (Konami Endeavour)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 200?, mohicans, 0, konendev, konendev, konendev_state, konendev, ROT0, "Konami", "Mohican Sun (Konami Endeavour)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 200?, monshow, 0, konendev, konendev, konendev_state, konendev, ROT0, "Konami", "The Monster Show (Konami Endeavour)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 200?, romanl, 0, konendev, konendev, konendev_state, konendev, ROT0, "Konami", "Roman Legions (Konami Endeavour)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 200?, safemon, 0, konendev, konendev, konendev_state, konendev, ROT0, "Konami", "Safe Money (Konami Endeavour)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 200?, showqn, 0, konendev, konendev, konendev_state, konendev, ROT0, "Konami", "Show Queen (Konami Endeavour)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 200?, spiceup, 0, konendev, konendev, konendev_state, konendev, ROT0, "Konami", "Spice It Up (Konami Endeavour)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 200?, sultanw, 0, konendev, konendev, konendev_state, konendev, ROT0, "Konami", "Sultan's Wish (Konami Endeavour)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 200?, konzero, 0, konendev, konendev, konendev_state, konendev, ROT0, "Konami", "Zero (Konami Endeavour)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // doesn't seem to have a title string in it?
diff --git a/src/mess/drivers/konin.c b/src/mame/drivers/konin.c
index e6832b3b6bd..a9c5022a5ec 100644
--- a/src/mess/drivers/konin.c
+++ b/src/mame/drivers/konin.c
@@ -112,4 +112,4 @@ 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", GAME_IS_SKELETON | GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 198?, konin, 0, 0, konin, konin, driver_device, 0, "Mera-Elzab", "Konin", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/kontest.c b/src/mame/drivers/kontest.c
index 0c65c20e1db..ca7c4578a99 100644
--- a/src/mame/drivers/kontest.c
+++ b/src/mame/drivers/kontest.c
@@ -289,4 +289,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)", GAME_SUPPORTS_SAVE ) // late 1987 or early 1988
+GAME( 1987?, kontest, 0, kontest, kontest, driver_device, 0, ROT0, "Konami", "Konami Test Board (GX800, Japan)", MACHINE_SUPPORTS_SAVE ) // late 1987 or early 1988
diff --git a/src/mame/drivers/kopunch.c b/src/mame/drivers/kopunch.c
index cec9e36ea8a..168d9eb4f81 100644
--- a/src/mame/drivers/kopunch.c
+++ b/src/mame/drivers/kopunch.c
@@ -310,4 +310,4 @@ ROM_START( kopunch )
ROM_END
-GAME( 1981, kopunch, 0, kopunch, kopunch, driver_device, 0, ROT270, "Sega", "KO Punch", GAME_NO_SOUND | GAME_NOT_WORKING | GAME_MECHANICAL | GAME_SUPPORTS_SAVE )
+GAME( 1981, kopunch, 0, kopunch, kopunch, driver_device, 0, ROT270, "Sega", "KO Punch", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/korgm1.c b/src/mame/drivers/korgm1.c
index 50b2e3b68cc..99658c0057d 100644
--- a/src/mess/drivers/korgm1.c
+++ b/src/mame/drivers/korgm1.c
@@ -206,4 +206,4 @@ ROM_START( korgm1 )
// ROM_REGION( 0x10000, "gfx1", ROMREGION_ERASE00 )
ROM_END
-GAME( 1988, korgm1, 0, korgm1, korgm1, 0, ROT0, "Korg", "M1", GAME_IS_SKELETON )
+GAME( 1988, korgm1, 0, korgm1, korgm1, 0, ROT0, "Korg", "M1", MACHINE_IS_SKELETON )
diff --git a/src/mess/drivers/kramermc.c b/src/mame/drivers/kramermc.c
index 59d47d01ea3..db139591a34 100644
--- a/src/mess/drivers/kramermc.c
+++ b/src/mame/drivers/kramermc.c
@@ -148,4 +148,4 @@ 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", GAME_NO_SOUND)
+COMP( 1987, kramermc, 0, 0, kramermc, kramermc, kramermc_state, kramermc,"Manfred Kramer", "Kramer MC", MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/ksayakyu.c b/src/mame/drivers/ksayakyu.c
index 115660734fd..050a11fc592 100644
--- a/src/mame/drivers/ksayakyu.c
+++ b/src/mame/drivers/ksayakyu.c
@@ -326,4 +326,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", GAME_SUPPORTS_SAVE )
+GAME( 1985, ksayakyu, 0, ksayakyu, ksayakyu, driver_device, 0, ORIENTATION_FLIP_Y, "Taito Corporation", "Kusayakyuu", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/ksys573.c b/src/mame/drivers/ksys573.c
index 973d3924836..6a9a22bdf3d 100644
--- a/src/mame/drivers/ksys573.c
+++ b/src/mame/drivers/ksys573.c
@@ -3604,10 +3604,10 @@ ROM_START( drmn8m )
ROM_LOAD( "gcc38jaa.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
DISK_REGION( "cdrom0" )
- DISK_IMAGE_READONLY( "c38jaa02", 0, BAD_DUMP SHA1(d19ae541557405a4484145f4237f3c868375c72e) )
+ DISK_IMAGE_READONLY( "c38jaa02", 0, SHA1(9115252e6cc13ff90e73cd1a864e0d99e3c8b5ea) )
DISK_REGION( "multisession" )
- DISK_IMAGE_READONLY( "c38jba02", 0, BAD_DUMP SHA1(d963064678978d489474d1ca22c1f249c6f60232) )
+ DISK_IMAGE_READONLY( "c38jba02", 0, SHA1(2a31335277929b2231b12ad950ab69e35b37d973) )
ROM_END
ROM_START( drmn9m )
@@ -4251,7 +4251,7 @@ ROM_START( gtrfrk9m )
ROM_LOAD( "gcc39jaa.u6", 0x000000, 0x000008, BAD_DUMP CRC(ce84419e) SHA1(839e8ee080ecfc79021a06417d930e8b32dfc6a1) )
DISK_REGION( "cdrom0" )
- DISK_IMAGE_READONLY( "c39jaa02", 0, BAD_DUMP SHA1(d0696b29976a6bc01c3a1fefe09dbee721ff3ffb) )
+ DISK_IMAGE_READONLY( "c39jaa02", 0, SHA1(fef1202457b6bae2e10be6ecea35369820ffded5) )
ROM_END
ROM_START( gtfrk10m )
@@ -4677,115 +4677,115 @@ ROM_START( stepchmp )
ROM_LOAD( "gq930ja.27h", 0x000000, 0x200000, CRC(256f0794) SHA1(f95d5a8a53dea4d1f4d766124e94ee103cc1e3b2) )
ROM_END
-GAME( 1997, sys573, 0, konami573, konami573, driver_device, 0, ROT0, "Konami", "System 573 BIOS", GAME_IS_BIOS_ROOT )
-
-GAME( 1997, hndlchmp, sys573, konami573, hndlchmp, driver_device, 0, ROT0, "Konami", "Handle Champ (GQ710 VER. JAB)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, darkhleg, sys573, konami573x, konami573, driver_device, 0, ROT0, "Konami", "Dark Horse Legend (GX706 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, fbaitbc, sys573, fbaitbc, fbaitbc, driver_device, 0, ROT0, "Konami", "Fisherman's Bait - A Bass Challenge (GE765 VER. UAB)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, bassangl, fbaitbc, fbaitbc, fbaitbc, driver_device, 0, ROT0, "Konami", "Bass Angler (GE765 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, powyakex, sys573, konami573x, konami573, driver_device, 0, ROT0, "Konami", "Jikkyou Powerful Pro Yakyuu EX (GX802 VER. JAB)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, konam80s, sys573, konami573x, konami573, driver_device, 0, ROT90, "Konami", "Konami 80's AC Special (GC826 VER. EAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, konam80u, konam80s, konami573x, konami573, driver_device, 0, ROT90, "Konami", "Konami 80's AC Special (GC826 VER. UAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, konam80j, konam80s, konami573x, konami573, driver_device, 0, ROT90, "Konami", "Konami 80's Gallery (GC826 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, konam80a, konam80s, konami573x, konami573, driver_device, 0, ROT90, "Konami", "Konami 80's AC Special (GC826 VER. AAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, konam80k, konam80s, konami573x, konami573, driver_device, 0, ROT90, "Konami", "Konami 80's AC Special (GC826 VER. KAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1999, dstage, sys573, dsftkd, ddr, ksys573_state, ddr, ROT0, "Konami", "Dancing Stage - Internet Ranking Ver (GC845 VER. EBA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1999, dstagea, dstage, ddr, ddr, ksys573_state, ddr, ROT0, "Konami", "Dancing Stage (GN845 VER. EAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1999, ddru, dstage, ddr, ddr, ksys573_state, ddr, ROT0, "Konami", "Dance Dance Revolution (GN845 VER. UAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, ddrj, dstage, ddr, ddr, ksys573_state, ddr, ROT0, "Konami", "Dance Dance Revolution - Internet Ranking Ver (GC845 VER. JBA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, ddrja, dstage, ddr, ddr, ksys573_state, ddr, ROT0, "Konami", "Dance Dance Revolution (GC845 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
-GAME( 1998, ddrjb, dstage, ddr, ddr, ksys573_state, ddr, ROT0, "Konami", "Dance Dance Revolution (GC845 VER. JAB)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
-GAME( 1999, ddra, dstage, ddr, ddr, ksys573_state, ddr, ROT0, "Konami", "Dance Dance Revolution (GN845 VER. AAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, fbait2bc, sys573, fbaitbc, fbaitbc, driver_device, 0, ROT0, "Konami", "Fisherman's Bait 2 - A Bass Challenge (GE865 VER. UAB)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, bassang2, fbait2bc, fbaitbc, fbaitbc, driver_device, 0, ROT0, "Konami", "Bass Angler 2 (GE865 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, hyperbbc, sys573, hyperbbc, hyperbbc, ksys573_state, hyperbbc, ROT0, "Konami", "Hyper Bishi Bashi Champ (GQ876 VER. EAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, hyperbbca, hyperbbc, hyperbbc, hyperbbc, ksys573_state, hyperbbc, ROT0, "Konami", "Hyper Bishi Bashi Champ (GQ876 VER. AAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1999, gchgchmp, sys573, gchgchmp, gchgchmp, driver_device, 0, ROT0, "Konami", "Gachaga Champ (GE877 VER. JAB)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1999, drmn, sys573, drmn, drmn, ksys573_state, drmn, ROT0, "Konami", "DrumMania (GQ881 VER. JAD)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
-GAME( 1999, gtrfrks, sys573, gtrfrks, gtrfrks, driver_device, 0, ROT0, "Konami", "Guitar Freaks (GQ886 VER. EAC)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1999, gtrfrksu, gtrfrks, gtrfrks, gtrfrks, driver_device, 0, ROT0, "Konami", "Guitar Freaks (GQ886 VER. UAC)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1999, gtrfrksj, gtrfrks, gtrfrks, gtrfrks, driver_device, 0, ROT0, "Konami", "Guitar Freaks (GQ886 VER. JAC)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1999, gtrfrksa, gtrfrks, gtrfrks, gtrfrks, driver_device, 0, ROT0, "Konami", "Guitar Freaks (GQ886 VER. AAC)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1999, fbaitmc, sys573, fbaitbc, fbaitmc, driver_device, 0, ROT0, "Konami", "Fisherman's Bait - Marlin Challenge (GX889 VER. EA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1999, fbaitmcu, fbaitmc, fbaitbc, fbaitmc, driver_device, 0, ROT0, "Konami", "Fisherman's Bait - Marlin Challenge (GX889 VER. UA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1999, fbaitmcj, fbaitmc, fbaitbc, fbaitmc, driver_device, 0, ROT0, "Konami", "Fisherman's Bait - Marlin Challenge (GX889 VER. JA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1999, fbaitmca, fbaitmc, fbaitbc, fbaitmc, driver_device, 0, ROT0, "Konami", "Fisherman's Bait - Marlin Challenge (GX889 VER. AA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1999, ddr2m, sys573, ddr, ddr, ksys573_state, ddr, ROT0, "Konami", "Dance Dance Revolution 2nd Mix (GN895 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1999, ddr2ml, ddr2m, ddr2ml, ddr, ksys573_state, ddr, ROT0, "Konami", "Dance Dance Revolution 2nd Mix - Link Ver (GE885 VER. JAB)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1999, ddr2mla, ddr2m, ddr2ml, ddr, ksys573_state, ddr, ROT0, "Konami", "Dance Dance Revolution 2nd Mix - Link Ver (GE885 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1999, ddrbocd, ddr2m, ddr2ml, ddr, ksys573_state, ddr, ROT0, "Konami", "Dance Dance Revolution Best of Cool Dancers (GE892 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1999, gtrfrk2m, sys573, gtrfrk2m, gtrfrks, driver_device, 0, ROT0, "Konami", "Guitar Freaks 2nd Mix Ver 1.01 (GQ883 VER. JAD)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1999, dsftkd, sys573, dsftkd, ddr, ksys573_state, ddr, ROT0, "Konami", "Dancing Stage featuring TRUE KiSS DESTiNATiON (G*884 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1999, cr589fw, sys573, konami573, konami573, driver_device, 0, ROT0, "Konami", "CD-ROM Drive Updater 2.0 (700B04)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1999, cr589fwa, sys573, konami573, konami573, driver_device, 0, ROT0, "Konami", "CD-ROM Drive Updater (700A04)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 2000, ddr3mk, sys573, ddr3m, ddr, driver_device, 0, ROT0, "Konami", "Dance Dance Revolution 3rd Mix - Ver.Korea2 (GN887 VER. KBA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
-GAME( 1999, ddrs2k, sys573, ddrs2k, ddrsolo, driver_device, 0, ROT0, "Konami", "Dance Dance Revolution Solo 2000 (GC905 VER. AAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1999, dsfdct, sys573, ddr3m, ddr, driver_device, 0, ROT0, "Konami", "Dancing Stage featuring Dreams Come True (GC910 VER. JCA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
-GAME( 1999, dsfdcta, dsfdct, dsfdcta, ddr, ksys573_state, ddr, ROT0, "Konami", "Dancing Stage featuring Dreams Come True (GC910 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1999, drmn2m, sys573, drmn2m, drmn, driver_device, 0, ROT0, "Konami", "DrumMania 2nd Mix (GE912 VER. JAB)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.5 */
-GAME( 1999, stepchmp, sys573, salarymc, hyperbbc, ksys573_state, salarymc, ROT0, "Konami", "Step Champ (GQ930 VER. JA)", GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND )
-GAME( 2000, dncfrks, sys573, dmx, dmx, driver_device, 0, ROT0, "Konami", "Dance Freaks (G*874 VER. KAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.6 */
-GAME( 2000, dmx, dncfrks, dmx, dmx, driver_device, 0, ROT0, "Konami", "Dance Maniax (G*874 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.6 */
-GAME( 2000, gunmania, sys573, gunmania, gunmania, driver_device, 0, ROT0, "Konami", "GunMania (GL906 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
-GAME( 2000, fghtmn, sys573, pnchmn, pnchmn, ksys573_state, pnchmn, ROT0, "Konami", "Fighting Mania (QG918 VER. EAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* motor/artwork/network */
-GAME( 2000, fghtmna, fghtmn, pnchmn, pnchmn, ksys573_state, pnchmn, ROT0, "Konami", "Fighting Mania (QG918 VER. AAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* motor/artwork/network */
-GAME( 2000, pnchmn, fghtmn, pnchmn, pnchmn, ksys573_state, pnchmn, ROT0, "Konami", "Punch Mania: Hokuto No Ken (GQ918 VER. JAB)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* motor/artwork/network */
-GAME( 2000, fghtmnk, fghtmn, pnchmn, pnchmn, ksys573_state, pnchmn, ROT0, "Konami", "Fighting Mania (QG918 VER. KAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* motor/artwork/network */
-GAME( 2000, fghtmnu, fghtmn, pnchmn, pnchmn, ksys573_state, pnchmn, ROT0, "Konami", "Fighting Mania (QG918 VER. UAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* motor/artwork/network */
-GAME( 2000, dsem, sys573, dsem, ddr, driver_device, 0, ROT0, "Konami", "Dancing Stage Euro Mix (G*936 VER. EAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.7 */
-GAME( 2000, gtrfrk3m, sys573, gtrfrk3m, gtrfrks, driver_device, 0, ROT0, "Konami", "Guitar Freaks 3rd Mix (GE949 VER. JAC)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.4 */
-GAME( 2000, gtfrk3ma, gtrfrk3m, gtrfrk3m, gtrfrks, driver_device, 0, ROT0, "Konami", "Guitar Freaks 3rd Mix (GE949 VER. JAB)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* motor/artwork/network */
-GAME( 2000, salarymc, sys573, salarymc, hypbbc2p, ksys573_state, salarymc, ROT0, "Konami", "Salary Man Champ (GCA18 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 2000, ddr3mp, sys573, ddr3mp, ddr, driver_device, 0, ROT0, "Konami", "Dance Dance Revolution 3rd Mix Plus (G*A22 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.8 */
-GAME( 2000, drmn3m, pcnfrk3m, drmn2m, drmn, driver_device, 0, ROT0, "Konami", "DrumMania 3rd Mix (G*A23 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.8 */
-GAME( 2000, dsfdr, sys573, dsfdr, ddr, driver_device, 0, ROT0, "Konami", "Dancing Stage Featuring Disney's Rave (GCA37JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.9 */
-GAME( 2000, drmn4m, sys573, drmn4m, drmn, driver_device, 0, ROT0, "Konami", "DrumMania 4th Mix (G*A25 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.9 */
-GAME( 2001, mamboagg, sys573, mamboagg, mamboagg, driver_device, 0, ROT0, "Konami", "Mambo A Go-Go (GQA40 VER. JAB)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.95 */
-GAME( 2001, drmn5m, sys573, drmn4m, drmn, driver_device, 0, ROT0, "Konami", "DrumMania 5th Mix (G*B05 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.9 */
-GAME( 2001, drmn6m, sys573, drmn4m, drmn, driver_device, 0, ROT0, "Konami", "DrumMania 6th Mix (G*B16 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.95 */
-GAME( 2002, mrtlbeat, sys573, ddr5m, ddr, driver_device, 0, ROT0, "Konami", "Martial Beat (G*B47 VER. JBA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.95 */
-GAME( 2002, drmn7ma, drmn7m, drmn4m, drmn, driver_device, 0, ROT0, "Konami", "DrumMania 7th Mix (G*C07 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.95 */
-GAME( 2003, drmn8m, sys573, drmn4m, drmn, driver_device, 0, ROT0, "Konami", "DrumMania 8th Mix (G*C07 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.95 */
-GAME( 2003, drmn9m, sys573, drmn4m, drmn, driver_device, 0, ROT0, "Konami", "DrumMania 9th Mix (G*D09 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.95 */
-GAME( 2004, drmn10m, sys573, drmn4m, drmn, driver_device, 0, ROT0, "Konami", "DrumMania 10th Mix (G*D40 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* BOOT VER 1.95 */
+GAME( 1997, sys573, 0, konami573, konami573, driver_device, 0, ROT0, "Konami", "System 573 BIOS", MACHINE_IS_BIOS_ROOT )
+
+GAME( 1997, hndlchmp, sys573, 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( 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 */
diff --git a/src/mame/drivers/kungfur.c b/src/mame/drivers/kungfur.c
index 22c1798c59b..d6b27593e8d 100644
--- a/src/mame/drivers/kungfur.c
+++ b/src/mame/drivers/kungfur.c
@@ -339,4 +339,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", GAME_SUPPORTS_SAVE, layout_kungfur )
+GAMEL(1987, kungfur, 0, kungfur, kungfur, driver_device, 0, ROT0, "Namco", "Kung-Fu Roushi", MACHINE_SUPPORTS_SAVE, layout_kungfur )
diff --git a/src/mame/drivers/kurukuru.c b/src/mame/drivers/kurukuru.c
index 048fe8d335a..e4f6d5fbca8 100644
--- a/src/mame/drivers/kurukuru.c
+++ b/src/mame/drivers/kurukuru.c
@@ -209,7 +209,10 @@ public:
m_audiocpu(*this, "audiocpu"),
m_v9938(*this, "v9938"),
m_maincpu(*this, "maincpu"),
- m_adpcm(*this, "adpcm") { }
+ m_adpcm(*this, "adpcm"),
+ m_hopper(*this, "hopper"),
+ m_bank1(*this, "bank1")
+ { }
required_device<cpu_device> m_audiocpu;
required_device<v9938_device> m_v9938;
@@ -230,11 +233,12 @@ public:
void update_sound_irq(UINT8 cause);
virtual void machine_start();
virtual void machine_reset();
- TIMER_DEVICE_CALLBACK_MEMBER(kurukuru_vdp_scanline);
DECLARE_WRITE_LINE_MEMBER(kurukuru_msm5205_vck);
DECLARE_WRITE_LINE_MEMBER(kurukuru_vdp_interrupt);
required_device<cpu_device> m_maincpu;
required_device<msm5205_device> m_adpcm;
+ required_device<ticket_dispenser_device> m_hopper;
+ required_memory_bank m_bank1;
};
#define MAIN_CLOCK XTAL_21_4772MHz
@@ -245,14 +249,6 @@ public:
#define HOPPER_PULSE 50 // time between hopper pulses in milliseconds
#define VDP_MEM 0x30000
-/* from MSX2 driver, may be not accurate for this HW */
-#define MSX2_XBORDER_PIXELS 16
-#define MSX2_YBORDER_PIXELS 28
-#define MSX2_TOTAL_XRES_PIXELS 256 * 2 + (MSX2_XBORDER_PIXELS * 2)
-#define MSX2_TOTAL_YRES_PIXELS 212 * 2 + (MSX2_YBORDER_PIXELS * 2)
-#define MSX2_VISIBLE_XBORDER_PIXELS 8 * 2
-#define MSX2_VISIBLE_YBORDER_PIXELS 14 * 2
-
/*************************************************
* Interrupts *
@@ -264,12 +260,6 @@ WRITE_LINE_MEMBER(kurukuru_state::kurukuru_vdp_interrupt)
}
-TIMER_DEVICE_CALLBACK_MEMBER(kurukuru_state::kurukuru_vdp_scanline)
-{
- m_v9938->interrupt();
-}
-
-
void kurukuru_state::update_sound_irq(UINT8 cause)
{
m_sound_irq_cause = cause & 3;
@@ -322,7 +312,7 @@ WRITE8_MEMBER(kurukuru_state::kurukuru_out_latch_w)
coin_counter_w(machine(), 0, data & 0x01); /* Coin Counter 1 */
coin_counter_w(machine(), 1, data & 0x20); /* Coin Counter 2 */
coin_lockout_global_w(machine(), data & 0x40); /* Coin Lock */
- machine().device<ticket_dispenser_device>("hopper")->write(space, 0, (data & 0x40)); /* Hopper Motor */
+ m_hopper->write(space, 0, (data & 0x40)); /* Hopper Motor */
if (data & 0x9e)
logerror("kurukuru_out_latch_w %02X @ %04X\n", data, space.device().safe_pc());
@@ -330,7 +320,7 @@ WRITE8_MEMBER(kurukuru_state::kurukuru_out_latch_w)
WRITE8_MEMBER(kurukuru_state::kurukuru_bankswitch_w)
{
- membank("bank1")->set_entry(7); // remove banked rom
+ m_bank1->set_entry(7); // remove banked rom
/*
if bits 5,4 are 00,10,01 then IC10 is enabled
if bits 3,2 are 00,10,01 then IC18 is enabled
@@ -342,7 +332,7 @@ WRITE8_MEMBER(kurukuru_state::kurukuru_bankswitch_w)
for (int chip = 0; chip < 3; chip++)
{
if ((data & 3) != 3)
- membank("bank1")->set_entry((chip << 1) | (~data & 1));
+ m_bank1->set_entry((chip << 1) | (~data & 1));
data >>= 2;
}
}
@@ -527,7 +517,7 @@ INPUT_PORTS_END
void kurukuru_state::machine_start()
{
- membank("bank1")->configure_entries(0, 8, memregion("user1")->base(), 0x8000);
+ m_bank1->configure_entries(0, 8, memregion("user1")->base(), 0x8000);
}
void kurukuru_state::machine_reset()
@@ -545,7 +535,6 @@ static MACHINE_CONFIG_START( kurukuru, kurukuru_state )
MCFG_CPU_ADD("maincpu",Z80, CPU_CLOCK)
MCFG_CPU_PROGRAM_MAP(kurukuru_map)
MCFG_CPU_IO_MAP(kurukuru_io)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", kurukuru_state, kurukuru_vdp_scanline, "screen", 0, 1)
MCFG_CPU_ADD("audiocpu", Z80, CPU_CLOCK)
MCFG_CPU_PROGRAM_MAP(audio_map)
@@ -554,17 +543,9 @@ static MACHINE_CONFIG_START( kurukuru, kurukuru_state )
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
- MCFG_V9938_ADD("v9938", "screen", VDP_MEM)
+ MCFG_V9938_ADD("v9938", "screen", VDP_MEM, MAIN_CLOCK)
MCFG_V99X8_INTERRUPT_CALLBACK(WRITELINE(kurukuru_state,kurukuru_vdp_interrupt))
-
- MCFG_SCREEN_ADD("screen",RASTER)
- MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(MSX2_TOTAL_XRES_PIXELS, MSX2_TOTAL_YRES_PIXELS)
- MCFG_SCREEN_VISIBLE_AREA(MSX2_XBORDER_PIXELS - MSX2_VISIBLE_XBORDER_PIXELS, MSX2_TOTAL_XRES_PIXELS - MSX2_XBORDER_PIXELS + MSX2_VISIBLE_XBORDER_PIXELS - 1, MSX2_YBORDER_PIXELS - MSX2_VISIBLE_YBORDER_PIXELS, MSX2_TOTAL_YRES_PIXELS - MSX2_YBORDER_PIXELS + MSX2_VISIBLE_YBORDER_PIXELS - 1)
- MCFG_SCREEN_UPDATE_DEVICE("v9938", v9938_device, screen_update)
- MCFG_SCREEN_PALETTE("v9938:palette")
+ MCFG_V99X8_SCREEN_ADD_NTSC("screen", "v9938", MAIN_CLOCK)
MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(HOPPER_PULSE), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_LOW )
diff --git a/src/mess/drivers/kyocera.c b/src/mame/drivers/kyocera.c
index 14ffe1f28fc..af4b466f09b 100644
--- a/src/mess/drivers/kyocera.c
+++ b/src/mame/drivers/kyocera.c
@@ -1634,7 +1634,7 @@ COMP( 1983, m10, kc85, 0, kc85, olivm10, driver_device, 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, "Nippon Electronic Company", "PC-8201 (Japan)", GAME_NOT_WORKING ) // keyboard layout wrong
+COMP( 1983, pc8201, 0, 0, pc8201, pc8201, driver_device, 0, "Nippon Electronic Company", "PC-8201 (Japan)", MACHINE_NOT_WORKING ) // keyboard layout wrong
COMP( 1983, pc8201a, pc8201, 0, pc8201, pc8201a, driver_device, 0, "Nippon Electronic Company", "PC-8201A", 0 )
-COMP( 1987, npc8300, pc8201, 0, pc8300, pc8201a, driver_device, 0, "Nippon Electronic Company", "PC-8300", GAME_NOT_WORKING )
+COMP( 1987, npc8300, pc8201, 0, pc8300, pc8201a, driver_device, 0, "Nippon Electronic Company", "PC-8300", MACHINE_NOT_WORKING )
COMP( 1984, tandy200, 0, 0, tandy200, kc85, driver_device, 0, "Tandy Radio Shack", "Tandy 200", 0 )
diff --git a/src/mame/drivers/kyugo.c b/src/mame/drivers/kyugo.c
index b18ce89dbab..c83b94fff65 100644
--- a/src/mame/drivers/kyugo.c
+++ b/src/mame/drivers/kyugo.c
@@ -1366,22 +1366,22 @@ DRIVER_INIT_MEMBER(kyugo_state,srdmissn)
*
*************************************/
-GAME( 1984, gyrodine, 0, gyrodine, gyrodine, kyugo_state, gyrodine, ROT90, "Crux", "Gyrodine", GAME_SUPPORTS_SAVE )
-GAME( 1984, gyrodinet, gyrodine, gyrodine, gyrodine, kyugo_state, gyrodine, ROT90, "Crux (Taito Corporation license)", "Gyrodine (Taito Corporation license)", GAME_SUPPORTS_SAVE )
-GAME( 1984, buzzard, gyrodine, gyrodine, gyrodine, kyugo_state, gyrodine, ROT90, "Crux", "Buzzard", GAME_SUPPORTS_SAVE )
-GAME( 1985, repulse, 0, repulse, repulse, driver_device, 0, ROT90, "Crux / Sega", "Repulse", GAME_SUPPORTS_SAVE )
-GAME( 1985, 99lstwar, repulse, repulse, repulse, driver_device, 0, ROT90, "Crux / Proma", "'99: The Last War (set 1)", GAME_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)", GAME_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)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1985, flashgal, 0, repulse, flashgal, driver_device, 0, ROT0, "Kyugo / Sega", "Flashgal (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1985, flashgala, flashgal, flashgala, flashgal, driver_device, 0, ROT0, "Kyugo / Sega", "Flashgal (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1986, srdmissn, 0, srdmissn, srdmissn, kyugo_state, srdmissn, ROT90, "Kyugo / Taito Corporation", "S.R.D. Mission", GAME_SUPPORTS_SAVE )
-GAME( 1986, fx, srdmissn, srdmissn, srdmissn, kyugo_state, srdmissn, ROT90, "bootleg", "F-X (bootleg of S.R.D. Mission)", GAME_SUPPORTS_SAVE )
-GAME( 1986, legend, 0, legend, legend, kyugo_state, srdmissn, ROT0, "Kyugo / Sega", "Legend", GAME_SUPPORTS_SAVE ) // no copyright (maybe also a bootleg?)
-GAME( 1986, legendb, legend, legend, legend, kyugo_state, srdmissn, ROT0, "bootleg", "Legion (bootleg of Legend)", GAME_SUPPORTS_SAVE ) // no copyright
-GAME( 1987, airwolf, 0, srdmissn, airwolf, kyugo_state, srdmissn, ROT0, "Kyugo", "Airwolf", GAME_SUPPORTS_SAVE )
-GAME( 1987, airwolfa, airwolf, srdmissn, airwolf, kyugo_state, srdmissn, ROT0, "Kyugo (United Amusements license)", "Airwolf (US)", GAME_SUPPORTS_SAVE )
-GAME( 1987, skywolf, airwolf, srdmissn, skywolf, kyugo_state, srdmissn, ROT0, "bootleg", "Sky Wolf (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1987, skywolf2, airwolf, srdmissn, airwolf, kyugo_state, srdmissn, ROT0, "bootleg", "Sky Wolf (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1987, skywolf3, airwolf, srdmissn, airwolf, kyugo_state, srdmissn, ROT0, "bootleg", "Sky Wolf (set 3)", GAME_SUPPORTS_SAVE )
+GAME( 1984, gyrodine, 0, gyrodine, gyrodine, kyugo_state, gyrodine, ROT90, "Crux", "Gyrodine", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, gyrodinet, gyrodine, gyrodine, gyrodine, kyugo_state, gyrodine, ROT90, "Crux (Taito Corporation license)", "Gyrodine (Taito Corporation license)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, buzzard, gyrodine, gyrodine, gyrodine, kyugo_state, gyrodine, 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, 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 )
diff --git a/src/mame/drivers/labyrunr.c b/src/mame/drivers/labyrunr.c
index d70ef7edb22..d21b85bdaef 100644
--- a/src/mame/drivers/labyrunr.c
+++ b/src/mame/drivers/labyrunr.c
@@ -265,6 +265,6 @@ ROM_START( labyrunrk )
ROM_END
-GAME( 1987, tricktrp, 0, labyrunr, labyrunr, driver_device, 0, ROT90, "Konami", "Trick Trap (World?)", GAME_SUPPORTS_SAVE )
-GAME( 1987, labyrunr, tricktrp, labyrunr, labyrunr, driver_device, 0, ROT90, "Konami", "Labyrinth Runner (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1987, labyrunrk,tricktrp, labyrunr, labyrunr, driver_device, 0, ROT90, "Konami", "Labyrinth Runner (World Ver. K)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/ladybug.c b/src/mame/drivers/ladybug.c
index 6f12067e4f9..4152887ebd0 100644
--- a/src/mame/drivers/ladybug.c
+++ b/src/mame/drivers/ladybug.c
@@ -1059,11 +1059,11 @@ DRIVER_INIT_MEMBER(ladybug_state,dorodon)
}
-GAME( 1981, cavenger, 0, ladybug, cavenger, driver_device, 0, ROT0, "Universal", "Cosmic Avenger", GAME_SUPPORTS_SAVE )
-GAME( 1981, ladybug, 0, ladybug, ladybug, driver_device, 0, ROT270, "Universal", "Lady Bug", GAME_SUPPORTS_SAVE )
-GAME( 1981, ladybugb, ladybug, ladybug, ladybug, driver_device, 0, ROT270, "bootleg", "Lady Bug (bootleg set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1981, ladybgb2, ladybug, ladybug, ladybug, driver_device, 0, ROT270, "bootleg", "Lady Bug (bootleg set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1982, dorodon, 0, dorodon, dorodon, ladybug_state, dorodon, ROT270, "UPL (Falcon license?)", "Dorodon (set 1)", GAME_SUPPORTS_SAVE ) // license or bootleg?
-GAME( 1982, dorodon2, dorodon, dorodon, dorodon, ladybug_state, dorodon, ROT270, "UPL (Falcon license?)", "Dorodon (set 2)", GAME_SUPPORTS_SAVE ) // "
-GAME( 1982, snapjack, 0, ladybug, snapjack, driver_device, 0, ROT0, "Universal", "Snap Jack", GAME_SUPPORTS_SAVE )
-GAME( 1982, sraider, 0, sraider, sraider, driver_device, 0, ROT270, "Universal", "Space Raider", GAME_SUPPORTS_SAVE )
+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, ladybgb2, ladybug, ladybug, ladybug, driver_device, 0, ROT270, "bootleg", "Lady Bug (bootleg set 2)", MACHINE_SUPPORTS_SAVE )
+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( 1982, sraider, 0, sraider, sraider, driver_device, 0, ROT270, "Universal", "Space Raider", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/ladyfrog.c b/src/mame/drivers/ladyfrog.c
index 3c168d0ca0c..9a4782366d9 100644
--- a/src/mame/drivers/ladyfrog.c
+++ b/src/mame/drivers/ladyfrog.c
@@ -365,7 +365,7 @@ ROM_START( toucheme )
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", GAME_SUPPORTS_SAVE )
+GAME( 1990, ladyfrog, 0, ladyfrog, ladyfrog, driver_device, 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, "<unknown>", "Touche Me", GAME_SUPPORTS_SAVE )
+GAME( 19??, toucheme, 0, toucheme, toucheme, driver_device, 0, ORIENTATION_SWAP_XY, "<unknown>", "Touche Me", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/laser3k.c b/src/mame/drivers/laser3k.c
index c5e59161ef5..a7a3fa3bfa3 100644
--- a/src/mess/drivers/laser3k.c
+++ b/src/mame/drivers/laser3k.c
@@ -529,7 +529,7 @@ void laser3k_state::text_update(screen_device &screen, bitmap_ind16 &bitmap, con
start_address = (m_disp_page == 0) ? 0x400 : 0x800;
}
- m_flash = ((machine().time() * 4).seconds & 1) ? 1 : 0;
+ m_flash = ((machine().time() * 4).seconds() & 1) ? 1 : 0;
beginrow = MAX(beginrow, cliprect.min_y - (cliprect.min_y % 8));
endrow = MIN(endrow, cliprect.max_y - (cliprect.max_y % 8) + 7);
@@ -1034,4 +1034,4 @@ ROM_START(las3000)
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", GAME_NOT_WORKING )
+COMP( 1983, las3000, 0, 0, laser3k, laser3k, driver_device, 0, "Video Technology", "Laser 3000", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/laserbas.c b/src/mame/drivers/laserbas.c
index ee1afa6907c..d0b58ddd3b4 100644
--- a/src/mame/drivers/laserbas.c
+++ b/src/mame/drivers/laserbas.c
@@ -411,6 +411,6 @@ ROM_START( futflash )
ROM_LOAD( "ff.8", 0xf000, 0x0800, CRC(623f558f) SHA1(be6c6565df658555f21c43a8c2459cf399794a84) )
ROM_END
-GAME( 1981, laserbas, 0, laserbas, laserbas, driver_device, 0, ROT270, "Hoei (Amstar license)", "Laser Base (set 1)", GAME_NO_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1981, laserbasa,laserbas, laserbas, laserbas, driver_device, 0, ROT270, "Hoei (Amstar license)", "Laser Base (set 2)", GAME_NO_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1981, futflash, laserbas, laserbas, laserbas, driver_device, 0, ROT270, "Hoei", "Future Flash", GAME_NO_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
+GAME( 1981, laserbas, 0, laserbas, laserbas, driver_device, 0, ROT270, "Hoei (Amstar license)", "Laser Base (set 1)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1981, laserbasa,laserbas, laserbas, laserbas, driver_device, 0, ROT270, "Hoei (Amstar license)", "Laser Base (set 2)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1981, futflash, laserbas, laserbas, laserbas, driver_device, 0, ROT270, "Hoei", "Future Flash", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/laserbat.c b/src/mame/drivers/laserbat.c
index 2dfaf6c6b75..12d7da251bc 100644
--- a/src/mame/drivers/laserbat.c
+++ b/src/mame/drivers/laserbat.c
@@ -962,7 +962,7 @@ ROM_START( catnmousa )
ROM_END
-GAME( 1981, laserbat, 0, laserbat, laserbat, driver_device, 0, ROT0, "Zaccaria", "Laser Battle", GAME_IMPERFECT_SOUND | GAME_WRONG_COLORS | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1981, lazarian, laserbat, laserbat, lazarian, driver_device, 0, ROT0, "Zaccaria (Bally Midway license)", "Lazarian", GAME_IMPERFECT_SOUND | GAME_WRONG_COLORS | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1982, catnmous, 0, catnmous, catnmous, driver_device, 0, ROT90, "Zaccaria", "Cat and Mouse (set 1)", GAME_NO_SOUND | GAME_WRONG_COLORS | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE)
-GAME( 1982, catnmousa,catnmous, catnmous, catnmous, driver_device, 0, ROT90, "Zaccaria", "Cat and Mouse (set 2)", GAME_NO_SOUND | GAME_WRONG_COLORS | GAME_NO_COCKTAIL | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE)
+GAME( 1981, laserbat, 0, laserbat, laserbat, driver_device, 0, ROT0, "Zaccaria", "Laser Battle", MACHINE_IMPERFECT_SOUND | MACHINE_WRONG_COLORS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1981, lazarian, laserbat, laserbat, lazarian, driver_device, 0, ROT0, "Zaccaria (Bally Midway license)", "Lazarian", MACHINE_IMPERFECT_SOUND | MACHINE_WRONG_COLORS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1982, catnmous, 0, catnmous, catnmous, driver_device, 0, ROT90, "Zaccaria", "Cat and Mouse (set 1)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE)
+GAME( 1982, catnmousa,catnmous, catnmous, catnmous, driver_device, 0, ROT90, "Zaccaria", "Cat and Mouse (set 2)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_NO_COCKTAIL | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE)
diff --git a/src/mame/drivers/lasso.c b/src/mame/drivers/lasso.c
index e386d3c5cb9..f8048f908de 100644
--- a/src/mame/drivers/lasso.c
+++ b/src/mame/drivers/lasso.c
@@ -863,10 +863,10 @@ ROM_END
***************************************************************************/
-GAME( 1982, lasso, 0, lasso, lasso, driver_device, 0, ROT90, "SNK", "Lasso", GAME_SUPPORTS_SAVE )
-GAME( 1983, chameleo, 0, chameleo, chameleo, driver_device, 0, ROT0, "Jaleco", "Chameleon", GAME_SUPPORTS_SAVE )
-GAME( 1984, wwjgtin, 0, wwjgtin, wwjgtin, driver_device, 0, ROT0, "Jaleco / Casio", "Wai Wai Jockey Gate-In!", GAME_SUPPORTS_SAVE )
-GAME( 1991, photof, wwjgtin, wwjgtin, wwjgtin, driver_device, 0, ROT0, "Jaleco / Casio", "Photo Finish (bootleg?)", GAME_SUPPORTS_SAVE )
-GAME( 1984, pinbo, 0, pinbo, pinbo, driver_device, 0, ROT90, "Jaleco", "Pinbo (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1984, pinboa, pinbo, pinbo, pinboa, driver_device, 0, ROT90, "Jaleco", "Pinbo (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1985, pinbos, pinbo, pinbo, pinboa, driver_device, 0, ROT90, "bootleg (Strike)", "Pinbo (bootleg)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/lastbank.c b/src/mame/drivers/lastbank.c
index 658059c0498..edb837e20ab 100644
--- a/src/mame/drivers/lastbank.c
+++ b/src/mame/drivers/lastbank.c
@@ -514,4 +514,4 @@ ROM_START( lastbank )
ROM_LOAD( "7.u60", 0x40000, 0x80000, CRC(41be7146) SHA1(00f1c0d5809efccf888e27518a2a5876c4b633d8) )
ROM_END
-GAME( 1994, lastbank, 0, lastbank, lastbank, driver_device, 0, ROT0, "Excellent System", "Last Bank (v1.16)", GAME_NO_SOUND )
+GAME( 1994, lastbank, 0, lastbank, lastbank, driver_device, 0, ROT0, "Excellent System", "Last Bank (v1.16)", MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/lastduel.c b/src/mame/drivers/lastduel.c
index 7764c85f1eb..96fc1820e3d 100644
--- a/src/mame/drivers/lastduel.c
+++ b/src/mame/drivers/lastduel.c
@@ -381,16 +381,17 @@ INPUT_PORTS_END
static const gfx_layout sprite_layout =
{
16,16,
- RGN_FRAC(1,4),
+ RGN_FRAC(1,1),
4,
- { RGN_FRAC(0,4), RGN_FRAC(1,4), RGN_FRAC(2,4), RGN_FRAC(3,4) },
+ { 16, 0, 24, 8 },
{ 0, 1, 2, 3, 4, 5, 6, 7,
- 16*8+0, 16*8+1, 16*8+2, 16*8+3, 16*8+4, 16*8+5, 16*8+6, 16*8+7 },
- { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
- 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 },
- 32*8
+ 512+0,512+1,512+2,512+3,512+4,512+5,512+6,512+7 },
+ { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32,
+ 8*32, 9*32, 10*32, 11*32, 12*32, 13*32, 14*32, 15*32 },
+ 128*8
};
+
static const gfx_layout text_layout =
{
8,8,
@@ -429,14 +430,14 @@ static const gfx_layout madgear_tile2 =
};
static GFXDECODE_START( lastduel )
- GFXDECODE_ENTRY( "gfx1", 0, sprite_layout, 0x200, 16 ) /* colors 0x200-0x2ff */
+ GFXDECODE_ENTRY( "sprites", 0, sprite_layout, 0x200, 16 ) /* colors 0x200-0x2ff */
GFXDECODE_ENTRY( "gfx2", 0, text_layout, 0x300, 16 ) /* colors 0x300-0x33f */
GFXDECODE_ENTRY( "gfx3", 0, madgear_tile, 0x000, 16 ) /* colors 0x000-0x0ff */
GFXDECODE_ENTRY( "gfx4", 0, madgear_tile, 0x100, 16 ) /* colors 0x100-0x1ff */
GFXDECODE_END
static GFXDECODE_START( madgear )
- GFXDECODE_ENTRY( "gfx1", 0, sprite_layout, 0x200, 16 ) /* colors 0x200-0x2ff */
+ GFXDECODE_ENTRY( "sprites", 0, sprite_layout, 0x200, 16 ) /* colors 0x200-0x2ff */
GFXDECODE_ENTRY( "gfx2", 0, text_layout, 0x300, 16 ) /* colors 0x300-0x33f */
GFXDECODE_ENTRY( "gfx3", 0, madgear_tile, 0x000, 16 ) /* colors 0x000-0x0ff */
GFXDECODE_ENTRY( "gfx4", 0, madgear_tile2, 0x100, 16 ) /* colors 0x100-0x1ff */
@@ -585,11 +586,11 @@ ROM_START( lastduel )
ROM_REGION( 0x10000 , "audiocpu", 0 ) /* audio CPU */
ROM_LOAD( "ld_02.16h", 0x0000, 0x10000, CRC(91834d0c) SHA1(aaa63b8470fc19b82c25028ab27675a7837ab9a1) )
- ROM_REGION( 0x80000, "gfx1", 0 )
- ROM_LOAD( "ld-11.12b", 0x000000, 0x20000, CRC(49d4dbbd) SHA1(e58ebda9e9ad37a6990f2aca2a312d55cdaca979) ) /* sprites */
- ROM_LOAD( "ld-09.12a", 0x020000, 0x20000, CRC(6efadb74) SHA1(b00ddd33c08557940610570b1fd8c9a84dcaf063) )
- ROM_LOAD( "ld-12.17b", 0x040000, 0x20000, CRC(313e5338) SHA1(beceeb5ae9de6a41d3fde06767b8a23fc9f42259) )
- ROM_LOAD( "ld-10.17a", 0x060000, 0x20000, CRC(b8d3b2e3) SHA1(a08ef780c798b59bb1e1582d82317421a3353887) )
+ ROM_REGION( 0x80000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "ld-09.12a", 0x000000, 0x20000, CRC(6efadb74) SHA1(b00ddd33c08557940610570b1fd8c9a84dcaf063) ) /* sprites */
+ ROM_LOAD32_BYTE( "ld-10.17a", 0x000001, 0x20000, CRC(b8d3b2e3) SHA1(a08ef780c798b59bb1e1582d82317421a3353887) )
+ ROM_LOAD32_BYTE( "ld-11.12b", 0x000002, 0x20000, CRC(49d4dbbd) SHA1(e58ebda9e9ad37a6990f2aca2a312d55cdaca979) )
+ ROM_LOAD32_BYTE( "ld-12.17b", 0x000003, 0x20000, CRC(313e5338) SHA1(beceeb5ae9de6a41d3fde06767b8a23fc9f42259) )
ROM_REGION( 0x08000, "gfx2", 0 )
ROM_LOAD( "ld_01.12f", 0x000000, 0x08000, CRC(ad3c6f87) SHA1(1a5ef003c0eb641484921dc0c11450c53ee315f5) ) /* 8x8 text */
@@ -615,11 +616,11 @@ ROM_START( lastduelo )
ROM_REGION( 0x10000 , "audiocpu", 0 ) /* audio CPU */
ROM_LOAD( "ld_02.16h", 0x0000, 0x10000, CRC(91834d0c) SHA1(aaa63b8470fc19b82c25028ab27675a7837ab9a1) )
- ROM_REGION( 0x80000, "gfx1", 0 )
- ROM_LOAD( "ld-11.12b", 0x000000, 0x20000, CRC(49d4dbbd) SHA1(e58ebda9e9ad37a6990f2aca2a312d55cdaca979) ) /* sprites */
- ROM_LOAD( "ld-09.12a", 0x020000, 0x20000, CRC(6efadb74) SHA1(b00ddd33c08557940610570b1fd8c9a84dcaf063) )
- ROM_LOAD( "ld-12.17b", 0x040000, 0x20000, CRC(313e5338) SHA1(beceeb5ae9de6a41d3fde06767b8a23fc9f42259) )
- ROM_LOAD( "ld-10.17a", 0x060000, 0x20000, CRC(b8d3b2e3) SHA1(a08ef780c798b59bb1e1582d82317421a3353887) )
+ ROM_REGION( 0x80000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "ld-09.12a", 0x000000, 0x20000, CRC(6efadb74) SHA1(b00ddd33c08557940610570b1fd8c9a84dcaf063) ) /* sprites */
+ ROM_LOAD32_BYTE( "ld-10.17a", 0x000001, 0x20000, CRC(b8d3b2e3) SHA1(a08ef780c798b59bb1e1582d82317421a3353887) )
+ ROM_LOAD32_BYTE( "ld-11.12b", 0x000002, 0x20000, CRC(49d4dbbd) SHA1(e58ebda9e9ad37a6990f2aca2a312d55cdaca979) )
+ ROM_LOAD32_BYTE( "ld-12.17b", 0x000003, 0x20000, CRC(313e5338) SHA1(beceeb5ae9de6a41d3fde06767b8a23fc9f42259) )
ROM_REGION( 0x08000, "gfx2", 0 )
ROM_LOAD( "ld_01.12f", 0x000000, 0x08000, CRC(ad3c6f87) SHA1(1a5ef003c0eb641484921dc0c11450c53ee315f5) ) /* 8x8 text */
@@ -645,11 +646,11 @@ ROM_START( lastduelj )
ROM_REGION( 0x10000 , "audiocpu", 0 ) /* audio CPU */
ROM_LOAD( "ld_02.16h", 0x0000, 0x10000, CRC(91834d0c) SHA1(aaa63b8470fc19b82c25028ab27675a7837ab9a1) )
- ROM_REGION( 0x80000, "gfx1", 0 )
- ROM_LOAD( "ld-11.12b", 0x000000, 0x20000, CRC(49d4dbbd) SHA1(e58ebda9e9ad37a6990f2aca2a312d55cdaca979) ) /* sprites */
- ROM_LOAD( "ld-09.12a", 0x020000, 0x20000, CRC(6efadb74) SHA1(b00ddd33c08557940610570b1fd8c9a84dcaf063) )
- ROM_LOAD( "ld-12.17b", 0x040000, 0x20000, CRC(313e5338) SHA1(beceeb5ae9de6a41d3fde06767b8a23fc9f42259) )
- ROM_LOAD( "ld-10.17a", 0x060000, 0x20000, CRC(b8d3b2e3) SHA1(a08ef780c798b59bb1e1582d82317421a3353887) )
+ ROM_REGION( 0x80000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "ld-09.12a", 0x000000, 0x20000, CRC(6efadb74) SHA1(b00ddd33c08557940610570b1fd8c9a84dcaf063) ) /* sprites */
+ ROM_LOAD32_BYTE( "ld-10.17a", 0x000001, 0x20000, CRC(b8d3b2e3) SHA1(a08ef780c798b59bb1e1582d82317421a3353887) )
+ ROM_LOAD32_BYTE( "ld-11.12b", 0x000002, 0x20000, CRC(49d4dbbd) SHA1(e58ebda9e9ad37a6990f2aca2a312d55cdaca979) )
+ ROM_LOAD32_BYTE( "ld-12.17b", 0x000003, 0x20000, CRC(313e5338) SHA1(beceeb5ae9de6a41d3fde06767b8a23fc9f42259) )
ROM_REGION( 0x08000, "gfx2", 0 )
ROM_LOAD( "ld_01.12f", 0x000000, 0x08000, CRC(ad3c6f87) SHA1(1a5ef003c0eb641484921dc0c11450c53ee315f5) ) /* 8x8 text */
@@ -677,15 +678,15 @@ ROM_START( lastduelb )
ROM_REGION( 0x10000 , "audiocpu", 0 ) /* audio CPU */
ROM_LOAD( "ld_02.bin", 0x0000, 0x10000, CRC(91834d0c) SHA1(aaa63b8470fc19b82c25028ab27675a7837ab9a1) )
- ROM_REGION( 0x80000, "gfx1", 0 )
- ROM_LOAD( "ld_09.bin", 0x000000, 0x10000, CRC(f8fd5243) SHA1(fad80d8959f50a83eb2e47788a8183284d19bea6) ) /* sprites */
- ROM_LOAD( "ld_10.bin", 0x010000, 0x10000, CRC(b49ad746) SHA1(4e609982d60155b0df13a156c37bdf2a25626632) )
- ROM_LOAD( "ld_11.bin", 0x020000, 0x10000, CRC(1a0d180e) SHA1(a68a7f5d00da99a8068876fd2d61c726047aca80) )
- ROM_LOAD( "ld_12.bin", 0x030000, 0x10000, CRC(b2745e26) SHA1(b511631fe4e21f3d2dc7440b3f69cd5edb43d20e) )
- ROM_LOAD( "ld_15.bin", 0x040000, 0x10000, CRC(96b13bbc) SHA1(f2df8d4f11e9192063063ff2e9e4fe76971c5b24) )
- ROM_LOAD( "ld_16.bin", 0x050000, 0x10000, CRC(9d80f7e6) SHA1(ce7c10eba6a9f6a1fad655c7de6b487aef6d7d64) )
- ROM_LOAD( "ld_13.bin", 0x060000, 0x10000, CRC(a1a598ac) SHA1(a0d24d9125cd502b57adf9167cb61e8864d521ce) )
- ROM_LOAD( "ld_14.bin", 0x070000, 0x10000, CRC(edf515cc) SHA1(8dc68d1d4e480afe9614ea85e2eced3fd3917484) )
+ ROM_REGION( 0x80000, "sprites", 0 )
+ ROM_LOAD32_BYTE( "ld_11.bin", 0x000000, 0x10000, CRC(1a0d180e) SHA1(a68a7f5d00da99a8068876fd2d61c726047aca80) ) /* sprites */
+ ROM_LOAD32_BYTE( "ld_12.bin", 0x040000, 0x10000, CRC(b2745e26) SHA1(b511631fe4e21f3d2dc7440b3f69cd5edb43d20e) )
+ ROM_LOAD32_BYTE( "ld_13.bin", 0x000001, 0x10000, CRC(a1a598ac) SHA1(a0d24d9125cd502b57adf9167cb61e8864d521ce) )
+ ROM_LOAD32_BYTE( "ld_14.bin", 0x040001, 0x10000, CRC(edf515cc) SHA1(8dc68d1d4e480afe9614ea85e2eced3fd3917484) )
+ ROM_LOAD32_BYTE( "ld_09.bin", 0x000002, 0x10000, CRC(f8fd5243) SHA1(fad80d8959f50a83eb2e47788a8183284d19bea6) )
+ ROM_LOAD32_BYTE( "ld_10.bin", 0x040002, 0x10000, CRC(b49ad746) SHA1(4e609982d60155b0df13a156c37bdf2a25626632) )
+ ROM_LOAD32_BYTE( "ld_15.bin", 0x000003, 0x10000, CRC(96b13bbc) SHA1(f2df8d4f11e9192063063ff2e9e4fe76971c5b24) )
+ ROM_LOAD32_BYTE( "ld_16.bin", 0x040003, 0x10000, CRC(9d80f7e6) SHA1(ce7c10eba6a9f6a1fad655c7de6b487aef6d7d64) )
ROM_REGION( 0x08000, "gfx2", 0 )
ROM_LOAD( "ld_01.bin", 0x000000, 0x08000, CRC(ad3c6f87) SHA1(1a5ef003c0eb641484921dc0c11450c53ee315f5) ) /* 8x8 text */
@@ -721,15 +722,15 @@ ROM_START( madgear )
ROM_LOAD( "mg_05.14j", 0x00000, 0x08000, CRC(2fbfc945) SHA1(8066516dcf9261abee1edd103bdbe0cc18913ed3) )
ROM_CONTINUE( 0x10000, 0x08000 )
- ROM_REGION( 0x80000, "gfx1", 0 ) /* CN-SUB daughter cards replace unused NEC 23C2000 mask ROMS (QFP52) at 5A & 13A */
- ROM_LOAD( "mg_m11.rom0", 0x000000, 0x10000, CRC(ee319a64) SHA1(ce8d65fdac3ec1009b22764807c03dd96b340660) ) /* Interleaved sprites */
- ROM_LOAD( "mg_m07.rom2", 0x010000, 0x10000, CRC(e5c0b211) SHA1(dc4a92061c686a9d211a7b95aab2e41219508d67) )
- ROM_LOAD( "mg_m12.rom1", 0x020000, 0x10000, CRC(887ef120) SHA1(9d57b497334d64df9a4ab7f15824dcc6a333f73d) )
- ROM_LOAD( "mg_m08.rom3", 0x030000, 0x10000, CRC(59709aa3) SHA1(384641da58c8b5198ad4fa51cd5fd9a628bcb888) ) /* Mask roms 07, 08, 11 & 12 located on first CN-SUB daughter card */
- ROM_LOAD( "mg_m13.rom0", 0x040000, 0x10000, CRC(eae07db4) SHA1(59c4ff48d906b2bb101fbebe06383940fdff064f) )
- ROM_LOAD( "mg_m09.rom2", 0x050000, 0x10000, CRC(40ee83eb) SHA1(35e11fcb3b75ada99df23715ecb955bd40e10da8) )
- ROM_LOAD( "mg_m14.rom1", 0x060000, 0x10000, CRC(21e5424c) SHA1(2f7c5d974c847bb14eaf278545bca653919110ba) )
- ROM_LOAD( "mg_m10.rom3", 0x070000, 0x10000, CRC(b64afb54) SHA1(5fdd4f67e6b7440448adf395b61c79b79b4f86e7) ) /* Mask roms 09, 10, 13 & 14 located on second CN-SUB daughter card */
+ ROM_REGION( 0x80000, "sprites", 0 ) /* CN-SUB daughter cards replace unused NEC 23C2000 mask ROMS (QFP52) at 5A & 13A */
+ ROM_LOAD32_BYTE( "mg_m11.rom0", 0x000002, 0x10000, CRC(ee319a64) SHA1(ce8d65fdac3ec1009b22764807c03dd96b340660) ) /* Interleaved sprites */
+ ROM_LOAD32_BYTE( "mg_m07.rom2", 0x040002, 0x10000, CRC(e5c0b211) SHA1(dc4a92061c686a9d211a7b95aab2e41219508d67) )
+ ROM_LOAD32_BYTE( "mg_m12.rom1", 0x000000, 0x10000, CRC(887ef120) SHA1(9d57b497334d64df9a4ab7f15824dcc6a333f73d) )
+ ROM_LOAD32_BYTE( "mg_m08.rom3", 0x040000, 0x10000, CRC(59709aa3) SHA1(384641da58c8b5198ad4fa51cd5fd9a628bcb888) ) /* Mask roms 07, 08, 11 & 12 located on first CN-SUB daughter card */
+ ROM_LOAD32_BYTE( "mg_m13.rom0", 0x000003, 0x10000, CRC(eae07db4) SHA1(59c4ff48d906b2bb101fbebe06383940fdff064f) )
+ ROM_LOAD32_BYTE( "mg_m09.rom2", 0x040003, 0x10000, CRC(40ee83eb) SHA1(35e11fcb3b75ada99df23715ecb955bd40e10da8) )
+ ROM_LOAD32_BYTE( "mg_m14.rom1", 0x000001, 0x10000, CRC(21e5424c) SHA1(2f7c5d974c847bb14eaf278545bca653919110ba) )
+ ROM_LOAD32_BYTE( "mg_m10.rom3", 0x040001, 0x10000, CRC(b64afb54) SHA1(5fdd4f67e6b7440448adf395b61c79b79b4f86e7) ) /* Mask roms 09, 10, 13 & 14 located on second CN-SUB daughter card */
ROM_REGION( 0x08000, "gfx2", 0 )
ROM_LOAD( "mg_06.10k", 0x000000, 0x08000, CRC(382ee59b) SHA1(a1da439f0585f5cafe2fb7024f1ae0527e34cd92) ) /* 8x8 text */
@@ -759,15 +760,15 @@ ROM_START( madgearj )
ROM_LOAD( "mg_05.14j", 0x00000, 0x08000, CRC(2fbfc945) SHA1(8066516dcf9261abee1edd103bdbe0cc18913ed3) )
ROM_CONTINUE( 0x10000, 0x08000 )
- ROM_REGION( 0x80000, "gfx1", 0 ) /* CN-SUB daughter cards replace unused NEC 23C2000 mask ROMS (QFP52) at 5A & 13A */
- ROM_LOAD( "mg_m11.rom0", 0x000000, 0x10000, CRC(ee319a64) SHA1(ce8d65fdac3ec1009b22764807c03dd96b340660) ) /* Interleaved sprites */
- ROM_LOAD( "mg_m07.rom2", 0x010000, 0x10000, CRC(e5c0b211) SHA1(dc4a92061c686a9d211a7b95aab2e41219508d67) )
- ROM_LOAD( "mg_m12.rom1", 0x020000, 0x10000, CRC(887ef120) SHA1(9d57b497334d64df9a4ab7f15824dcc6a333f73d) )
- ROM_LOAD( "mg_m08.rom3", 0x030000, 0x10000, CRC(59709aa3) SHA1(384641da58c8b5198ad4fa51cd5fd9a628bcb888) ) /* Mask roms 07, 08, 11 & 12 located on first CN-SUB daughter card */
- ROM_LOAD( "mg_m13.rom0", 0x040000, 0x10000, CRC(eae07db4) SHA1(59c4ff48d906b2bb101fbebe06383940fdff064f) )
- ROM_LOAD( "mg_m09.rom2", 0x050000, 0x10000, CRC(40ee83eb) SHA1(35e11fcb3b75ada99df23715ecb955bd40e10da8) )
- ROM_LOAD( "mg_m14.rom1", 0x060000, 0x10000, CRC(21e5424c) SHA1(2f7c5d974c847bb14eaf278545bca653919110ba) )
- ROM_LOAD( "mg_m10.rom3", 0x070000, 0x10000, CRC(b64afb54) SHA1(5fdd4f67e6b7440448adf395b61c79b79b4f86e7) ) /* Mask roms 09, 10, 13 & 14 located on second CN-SUB daughter card */
+ ROM_REGION( 0x80000, "sprites", 0 ) /* CN-SUB daughter cards replace unused NEC 23C2000 mask ROMS (QFP52) at 5A & 13A */
+ ROM_LOAD32_BYTE( "mg_m11.rom0", 0x000002, 0x10000, CRC(ee319a64) SHA1(ce8d65fdac3ec1009b22764807c03dd96b340660) ) /* Interleaved sprites */
+ ROM_LOAD32_BYTE( "mg_m07.rom2", 0x040002, 0x10000, CRC(e5c0b211) SHA1(dc4a92061c686a9d211a7b95aab2e41219508d67) )
+ ROM_LOAD32_BYTE( "mg_m12.rom1", 0x000000, 0x10000, CRC(887ef120) SHA1(9d57b497334d64df9a4ab7f15824dcc6a333f73d) )
+ ROM_LOAD32_BYTE( "mg_m08.rom3", 0x040000, 0x10000, CRC(59709aa3) SHA1(384641da58c8b5198ad4fa51cd5fd9a628bcb888) ) /* Mask roms 07, 08, 11 & 12 located on first CN-SUB daughter card */
+ ROM_LOAD32_BYTE( "mg_m13.rom0", 0x000003, 0x10000, CRC(eae07db4) SHA1(59c4ff48d906b2bb101fbebe06383940fdff064f) )
+ ROM_LOAD32_BYTE( "mg_m09.rom2", 0x040003, 0x10000, CRC(40ee83eb) SHA1(35e11fcb3b75ada99df23715ecb955bd40e10da8) )
+ ROM_LOAD32_BYTE( "mg_m14.rom1", 0x000001, 0x10000, CRC(21e5424c) SHA1(2f7c5d974c847bb14eaf278545bca653919110ba) )
+ ROM_LOAD32_BYTE( "mg_m10.rom3", 0x040001, 0x10000, CRC(b64afb54) SHA1(5fdd4f67e6b7440448adf395b61c79b79b4f86e7) ) /* Mask roms 09, 10, 13 & 14 located on second CN-SUB daughter card */
ROM_REGION( 0x08000, "gfx2", 0 )
ROM_LOAD( "mg_06.10k", 0x000000, 0x08000, CRC(382ee59b) SHA1(a1da439f0585f5cafe2fb7024f1ae0527e34cd92) ) /* 8x8 text */
@@ -797,15 +798,15 @@ ROM_START( ledstorm )
ROM_LOAD( "mde_05.14j", 0x00000, 0x08000, CRC(2fbfc945) SHA1(8066516dcf9261abee1edd103bdbe0cc18913ed3) )
ROM_CONTINUE( 0x10000, 0x08000 )
- ROM_REGION( 0x80000, "gfx1", 0 ) /* CN-SUB daughter cards replace unused NEC 23C2000 mask ROMS (QFP52) at 5A & 13A */
- ROM_LOAD( "11.rom0", 0x000000, 0x10000, CRC(ee319a64) SHA1(ce8d65fdac3ec1009b22764807c03dd96b340660) ) /* Interleaved sprites */
- ROM_LOAD( "07u.rom2", 0x010000, 0x10000, CRC(7152b212) SHA1(b021496e8b3c22c018907e6e374a7401d3843570) )
- ROM_LOAD( "12.rom1", 0x020000, 0x10000, CRC(887ef120) SHA1(9d57b497334d64df9a4ab7f15824dcc6a333f73d) )
- ROM_LOAD( "08u.rom3", 0x030000, 0x10000, CRC(72e5d525) SHA1(209def4206e9b66be9879f0105d3f04980f156da) ) /* Mask roms 07, 08, 11 & 12 located on first CN-SUB daughter card */
- ROM_LOAD( "13.rom0", 0x040000, 0x10000, CRC(eae07db4) SHA1(59c4ff48d906b2bb101fbebe06383940fdff064f) )
- ROM_LOAD( "09u.rom2", 0x050000, 0x10000, CRC(7b5175cb) SHA1(8d8d4953dd787308bed75345af6789899d2afded) )
- ROM_LOAD( "14.rom1", 0x060000, 0x10000, CRC(21e5424c) SHA1(2f7c5d974c847bb14eaf278545bca653919110ba) )
- ROM_LOAD( "10u.rom3", 0x070000, 0x10000, CRC(6db7ca64) SHA1(389cc93b9bfe2824a0de9796e79c6d452d09567e) ) /* Mask roms 09, 10, 13 & 14 located on second CN-SUB daughter card */
+ ROM_REGION( 0x80000, "sprites", 0 ) /* CN-SUB daughter cards replace unused NEC 23C2000 mask ROMS (QFP52) at 5A & 13A */
+ ROM_LOAD32_BYTE( "11.rom0", 0x000002, 0x10000, CRC(ee319a64) SHA1(ce8d65fdac3ec1009b22764807c03dd96b340660) ) /* Interleaved sprites */
+ ROM_LOAD32_BYTE( "07u.rom2", 0x040002, 0x10000, CRC(7152b212) SHA1(b021496e8b3c22c018907e6e374a7401d3843570) )
+ ROM_LOAD32_BYTE( "12.rom1", 0x000000, 0x10000, CRC(887ef120) SHA1(9d57b497334d64df9a4ab7f15824dcc6a333f73d) )
+ ROM_LOAD32_BYTE( "08u.rom3", 0x040000, 0x10000, CRC(72e5d525) SHA1(209def4206e9b66be9879f0105d3f04980f156da) ) /* Mask roms 07, 08, 11 & 12 located on first CN-SUB daughter card */
+ ROM_LOAD32_BYTE( "13.rom0", 0x000003, 0x10000, CRC(eae07db4) SHA1(59c4ff48d906b2bb101fbebe06383940fdff064f) )
+ ROM_LOAD32_BYTE( "09u.rom2", 0x040003, 0x10000, CRC(7b5175cb) SHA1(8d8d4953dd787308bed75345af6789899d2afded) )
+ ROM_LOAD32_BYTE( "14.rom1", 0x000001, 0x10000, CRC(21e5424c) SHA1(2f7c5d974c847bb14eaf278545bca653919110ba) )
+ ROM_LOAD32_BYTE( "10u.rom3", 0x040001, 0x10000, CRC(6db7ca64) SHA1(389cc93b9bfe2824a0de9796e79c6d452d09567e) ) /* Mask roms 09, 10, 13 & 14 located on second CN-SUB daughter card */
ROM_REGION( 0x08000, "gfx2", 0 )
ROM_LOAD( "mdu_06.10k", 0x000000, 0x08000, CRC(54bfdc02) SHA1(480ef755425aed9e0149bdb90bf30ddaef2be192) ) /* 8x8 text */
@@ -824,7 +825,39 @@ ROM_START( ledstorm )
ROM_LOAD( "29.14k", 0x0000, 0x0100, CRC(7f862e1e) SHA1(7134c4f741463007a177d55922e1284d132f60e3) ) /* priority (not used) BPROM type 63S141 or compatible like 82S129A */
ROM_END
-ROM_START( ledstorm2 )
+ROM_START( leds2011 )
+ ROM_REGION( 0x80000, "maincpu", 0 ) /* 256K for 68000 code */
+ ROM_LOAD16_BYTE( "lse_04.8b", 0x00000, 0x20000, CRC(166c0576) SHA1(1bae79fa565d87ebcaf92bf2531b759ec22111c7) )
+ ROM_LOAD16_BYTE( "lse_03.7b", 0x00001, 0x20000, CRC(0c8647b6) SHA1(ea041e3fdb0991fc7aae736f3043e3edbb2d10f5) )
+ ROM_LOAD16_BYTE( "ls-02.6b", 0x40000, 0x20000, CRC(05c0285e) SHA1(b155d2d0c41f614bd324813c5d3d87a6765ad812) )
+ ROM_LOAD16_BYTE( "ls-01.5b", 0x40001, 0x20000, CRC(8bf934dd) SHA1(f2287a4361af4986eb010dfbfb6de3a3d4124937) )
+
+ ROM_REGION( 0x18000 , "audiocpu", 0 ) /* audio CPU */
+ ROM_LOAD( "ls-07.14j", 0x00000, 0x08000, CRC(98af7838) SHA1(a0b87b9ce3c1b0e5d7696ffaab9cea483b9ee928) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+
+ ROM_REGION( 0x80000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "ls-10.13a", 0x00001, 0x40000, CRC(db2c5883) SHA1(00899f96e2cbf6930c107a53f660a944fa9a2682) ) /* NEC 23C2000 256kx8 mask ROM (QFP52) */
+ ROM_LOAD16_BYTE( "ls-09.5a", 0x00000, 0x40000, CRC(89949efb) SHA1(c4d2ca19e483e468dedd184d0158e11e5591ab02) ) /* NEC 23C2000 256kx8 mask ROM (QFP52) */
+
+ ROM_REGION( 0x08000, "gfx2", 0 )
+ ROM_LOAD( "ls-08.10k", 0x000000, 0x08000, CRC(8803cf49) SHA1(7a01a05f760d8e2472fdbc1d10b53094babe295e) ) /* 8x8 text */
+
+ ROM_REGION( 0x40000, "gfx3", 0 )
+ ROM_LOAD( "ls-12.7l", 0x000000, 0x40000, CRC(6c1b2c6c) SHA1(18f22129f13c6bfa7e285f0e09a35644272f6ecb) ) /* NEC 23C2000 256kx8 mask ROM (QFP52) */
+
+ ROM_REGION( 0x80000, "gfx4", 0 )
+ ROM_LOAD( "ls-11.2l", 0x000000, 0x80000, CRC(6bf81c64) SHA1(2289978c6bdb6e4f86e7094e861df147e757e249) ) /* NEC 23C4000 512kx8 mask ROM (QFP64) */
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM */
+ ROM_LOAD( "ls-06.10e", 0x00000, 0x20000, CRC(88d39a5b) SHA1(8fb2d1d26e2ffb93dfc9cf8f23bb81eb64496c2b) )
+ ROM_LOAD( "ls-05.12e", 0x20000, 0x20000, CRC(b06e03b5) SHA1(7d17e5cfb57866c60146bea1a4535e961c73327c) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "29.14k", 0x0000, 0x0100, CRC(7f862e1e) SHA1(7134c4f741463007a177d55922e1284d132f60e3) ) /* priority (not used) BPROM type 63S141 or compatible like 82S129A */
+ROM_END
+
+ROM_START( leds2011u )
ROM_REGION( 0x80000, "maincpu", 0 ) /* 256K for 68000 code */
ROM_LOAD16_BYTE( "lsu-04.8b", 0x00000, 0x20000, CRC(56a2f079) SHA1(da581c117d92ac5c1e8e44324f1aed2858a3cdc8) )
ROM_LOAD16_BYTE( "lsu-03.7b", 0x00001, 0x20000, CRC(9b6408c0) SHA1(8ef8349f58c62a2d626b1053eae2032d168d602c) )
@@ -835,9 +868,9 @@ ROM_START( ledstorm2 )
ROM_LOAD( "ls-07.14j", 0x00000, 0x08000, CRC(98af7838) SHA1(a0b87b9ce3c1b0e5d7696ffaab9cea483b9ee928) )
ROM_CONTINUE( 0x10000, 0x08000 )
- ROM_REGION( 0x80000, "gfx1", 0 ) /* These ROMs are good but are incorrect for this set */
- ROM_LOAD( "ls-10.13a", 0x00000, 0x40000, BAD_DUMP CRC(c5993f93) SHA1(29c565c112edb003c7d4adc5ac52e98e034bd1a1) ) /* NEC 23C2000 256kx8 mask ROM (QFP52) */
- ROM_LOAD( "ls-09.5a", 0x40000, 0x40000, BAD_DUMP CRC(80875e1d) SHA1(6f53694a0617bf3b4f65a0cf71750b0e65e49b46) ) /* NEC 23C2000 256kx8 mask ROM (QFP52) */
+ ROM_REGION( 0x80000, "sprites", 0 )
+ ROM_LOAD16_BYTE( "ls-10.13a", 0x00001, 0x40000, CRC(db2c5883) SHA1(00899f96e2cbf6930c107a53f660a944fa9a2682) ) /* NEC 23C2000 256kx8 mask ROM (QFP52) */
+ ROM_LOAD16_BYTE( "ls-09.5a", 0x00000, 0x40000, CRC(89949efb) SHA1(c4d2ca19e483e468dedd184d0158e11e5591ab02) ) /* NEC 23C2000 256kx8 mask ROM (QFP52) */
ROM_REGION( 0x08000, "gfx2", 0 )
ROM_LOAD( "ls-08.10k", 0x000000, 0x08000, CRC(8803cf49) SHA1(7a01a05f760d8e2472fdbc1d10b53094babe295e) ) /* 8x8 text */
@@ -856,13 +889,19 @@ ROM_START( ledstorm2 )
ROM_LOAD( "29.14k", 0x0000, 0x0100, CRC(7f862e1e) SHA1(7134c4f741463007a177d55922e1284d132f60e3) ) /* priority (not used) BPROM type 63S141 or compatible like 82S129A */
ROM_END
+
/******************************************************************************/
-GAME( 1988, lastduel, 0, lastduel, lastduel, driver_device, 0, ROT270, "Capcom", "Last Duel (US New Ver.)", GAME_SUPPORTS_SAVE )
-GAME( 1988, lastduelo, lastduel, lastduel, lastduel, driver_device, 0, ROT270, "Capcom", "Last Duel (US Old Ver.)", GAME_SUPPORTS_SAVE )
-GAME( 1988, lastduelj, lastduel, lastduel, lastduel, driver_device, 0, ROT270, "Capcom", "Last Duel (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1988, lastduelb, lastduel, lastduel, lastduel, driver_device, 0, ROT270, "bootleg", "Last Duel (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1989, madgear, 0, madgear, madgear, driver_device, 0, ROT270, "Capcom", "Mad Gear (US)", GAME_SUPPORTS_SAVE )
-GAME( 1989, madgearj, madgear, madgear, madgear, driver_device, 0, ROT270, "Capcom", "Mad Gear (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1988, ledstorm, madgear, madgear, madgear, driver_device, 0, ROT270, "Capcom", "Led Storm (US)", GAME_SUPPORTS_SAVE )
-GAME( 1988, ledstorm2, madgear, madgear, madgear, driver_device, 0, ROT270, "Capcom", "Led Storm Rally 2011 (US)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) /* game still has wrong sprite issues */
+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 )
+
+// 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( 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 )
diff --git a/src/mame/drivers/lastfght.c b/src/mame/drivers/lastfght.c
index b9abf433833..d8a2be0c54d 100644
--- a/src/mame/drivers/lastfght.c
+++ b/src/mame/drivers/lastfght.c
@@ -610,4 +610,4 @@ DRIVER_INIT_MEMBER(lastfght_state,lastfght)
rom[0x01b86 / 2] = 0x5670;
}
-GAME( 2000, lastfght, 0, lastfght, lastfght, lastfght_state, lastfght, ROT0, "Subsino", "Last Fighting", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 2000, lastfght, 0, lastfght, lastfght, lastfght_state, lastfght, ROT0, "Subsino", "Last Fighting", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/lazercmd.c b/src/mame/drivers/lazercmd.c
index 726011c6a51..f6b6881e0a1 100644
--- a/src/mame/drivers/lazercmd.c
+++ b/src/mame/drivers/lazercmd.c
@@ -806,6 +806,6 @@ DRIVER_INIT_MEMBER(lazercmd_state,lazercmd)
-GAMEL( 1976, lazercmd, 0, lazercmd, lazercmd, lazercmd_state, lazercmd, ROT0, "Meadows Games, Inc.", "Lazer Command", GAME_SUPPORTS_SAVE, layout_lazercmd )
-GAMEL( 1977, medlanes, 0, medlanes, medlanes, lazercmd_state, lazercmd, ROT0, "Meadows Games, Inc.", "Meadows Lanes", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_medlanes )
-GAME ( 1976, bbonk, 0, bbonk, bbonk, lazercmd_state, lazercmd, ROT0, "Meadows Games, Inc.", "Bigfoot Bonkers", GAME_SUPPORTS_SAVE )
+GAMEL( 1976, lazercmd, 0, lazercmd, lazercmd, lazercmd_state, lazercmd, ROT0, "Meadows Games, Inc.", "Lazer Command", MACHINE_SUPPORTS_SAVE, layout_lazercmd )
+GAMEL( 1977, medlanes, 0, medlanes, medlanes, lazercmd_state, lazercmd, ROT0, "Meadows Games, Inc.", "Meadows Lanes", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_medlanes )
+GAME ( 1976, bbonk, 0, bbonk, bbonk, lazercmd_state, lazercmd, ROT0, "Meadows Games, Inc.", "Bigfoot Bonkers", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/lbeach.c b/src/mame/drivers/lbeach.c
index 6e71c526cc6..1f491e74261 100644
--- a/src/mame/drivers/lbeach.c
+++ b/src/mame/drivers/lbeach.c
@@ -375,4 +375,4 @@ ROM_START( lbeach )
ROM_END
-GAMEL(1979, lbeach, 0, lbeach, lbeach, driver_device, 0, ROT0, "Olympia / Seletron", "Long Beach", GAME_IMPERFECT_COLORS | GAME_NO_SOUND | GAME_SUPPORTS_SAVE, layout_lbeach )
+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 )
diff --git a/src/mess/drivers/lc80.c b/src/mame/drivers/lc80.c
index fa23f55fa34..046bd69af0e 100644
--- a/src/mess/drivers/lc80.c
+++ b/src/mame/drivers/lc80.c
@@ -436,6 +436,6 @@ 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", GAME_SUPPORTS_SAVE )
-COMP( 1984, lc80_2, lc80, 0, lc80_2, lc80, driver_device, 0, "VEB Mikroelektronik", "Lerncomputer LC 80.2", GAME_SUPPORTS_SAVE )
-COMP( 1984, sc80, lc80, 0, lc80_2, lc80, driver_device, 0, "VEB Mikroelektronik", "Schachcomputer SC-80", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/lcmate2.c b/src/mame/drivers/lcmate2.c
index 0e0c7a36202..b4ef3350601 100644
--- a/src/mess/drivers/lcmate2.c
+++ b/src/mame/drivers/lcmate2.c
@@ -265,4 +265,4 @@ 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", GAME_NOT_WORKING )
+COMP( 1984, lcmate2, 0, 0, lcmate2, lcmate2, driver_device, 0, "Vtech", "Laser Compumate 2", MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/leapster.c b/src/mame/drivers/leapster.c
index 1dcdd4b6769..3a569ed71d2 100644
--- a/src/mess/drivers/leapster.c
+++ b/src/mame/drivers/leapster.c
@@ -336,5 +336,5 @@ DRIVER_INIT_MEMBER(leapster_state,leapster)
{
}
-CONS(2003, leapster, 0, 0, leapster, leapster, leapster_state, leapster, "LeapFrog", "Leapster (Germany)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_IS_SKELETON )
-CONS(2005, leapstertv, leapster, 0, leapster, leapster, leapster_state, leapster, "LeapFrog", "Leapster TV (Germany)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_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.c b/src/mame/drivers/legionna.c
index 6143c3df745..240ad9b5400 100644
--- a/src/mame/drivers/legionna.c
+++ b/src/mame/drivers/legionna.c
@@ -2680,27 +2680,27 @@ DRIVER_INIT_MEMBER(legionna_state,legiongfx)
-GAME( 1992, legionna, 0, legionna, legionna, legionna_state, legiongfx, ROT0, "TAD Corporation", "Legionnaire (World)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
-GAME( 1992, legionnau,legionna, legionna, legionna, legionna_state, legiongfx, ROT0, "TAD Corporation (Fabtek license)", "Legionnaire (US)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
-
-GAME( 1992, heatbrl, 0, heatbrl, heatbrl, driver_device, 0, ROT0, "TAD Corporation", "Heated Barrel (World version 3)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
-GAME( 1992, heatbrl2, heatbrl, heatbrl, heatbrl, driver_device, 0, ROT0, "TAD Corporation", "Heated Barrel (World version 2)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
-GAME( 1992, heatbrlo, heatbrl, heatbrl, heatbrl, driver_device, 0, ROT0, "TAD Corporation", "Heated Barrel (World old version)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
-GAME( 1992, heatbrlu, heatbrl, heatbrl, heatbrl, driver_device, 0, ROT0, "TAD Corporation", "Heated Barrel (US)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
-GAME( 1992, heatbrle, heatbrl, heatbrl, heatbrl, driver_device, 0, ROT0, "TAD Corporation (Electronic Devices license)", "Heated Barrel (Electronic Devices license)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
-
-GAME( 1993, godzilla, 0, godzilla, godzilla, driver_device, 0, ROT0, "Banpresto", "Godzilla (Japan)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
-GAME( 1993, grainbow, 0, grainbow, grainbow, driver_device, 0, ROT0, "Banpresto", "SD Gundam Sangokushi Rainbow Tairiku Senki", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
-GAME( 1993, denjinmk, 0, denjinmk, denjinmk, legionna_state,denjinmk, ROT0, "Winkysoft (Banpresto license)", "Denjin Makai", GAME_IMPERFECT_GRAPHICS )
-
-GAME( 1992, cupsoc, 0, cupsoc, cupsoc, legionna_state, cupsoc, ROT0, "Seibu Kaihatsu", "Seibu Cup Soccer (set 1)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
-GAME( 1992, cupsoca, cupsoc, cupsoc, cupsoc, legionna_state, cupsoc, ROT0, "Seibu Kaihatsu", "Seibu Cup Soccer (set 2)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
-GAME( 1992, cupsocb, cupsoc, cupsoc, cupsoc, legionna_state, cupsocs, ROT0, "Seibu Kaihatsu", "Seibu Cup Soccer (set 3)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
-GAME( 1992, cupsocs, cupsoc, cupsocs, cupsoc, legionna_state, cupsocs, ROT0, "Seibu Kaihatsu", "Seibu Cup Soccer :Selection: (set 1)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
-GAME( 1992, cupsocs2, cupsoc, cupsocs, cupsoc, legionna_state, cupsocs, ROT0, "Seibu Kaihatsu", "Seibu Cup Soccer :Selection: (set 2)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
-GAME( 1992, cupsocsb, cupsoc, cupsocbl, cupsoc, legionna_state, cupsoc, ROT0, "bootleg", "Seibu Cup Soccer :Selection: (bootleg, set 1)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
-GAME( 1992, cupsocsb2,cupsoc, cupsocbl, cupsoc, legionna_state, cupsoc, ROT0, "bootleg", "Seibu Cup Soccer :Selection: (bootleg, set 2)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
-GAME( 1992, cupsocsb3,cupsoc, cupsocbl, cupsoc, legionna_state, cupsoc, ROT0, "bootleg", "Seibu Cup Soccer :Selection: (bootleg, set 3)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
-GAME( 1992, olysoc92, cupsoc, cupsoc, cupsoc, legionna_state, olysoc92, ROT0, "Seibu Kaihatsu", "Olympic Soccer '92 (set 1)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
-GAME( 1992, olysoc92a,cupsoc, cupsoc, cupsoc, legionna_state, olysoc92, ROT0, "Seibu Kaihatsu", "Olympic Soccer '92 (set 2)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
-GAME( 1992, olysoc92b,cupsoc, cupsoc, cupsoc, legionna_state, olysoc92, ROT0, "Seibu Kaihatsu", "Olympic Soccer '92 (set 3)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
+GAME( 1992, legionna, 0, legionna, legionna, legionna_state, legiongfx, ROT0, "TAD Corporation", "Legionnaire (World)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING )
+GAME( 1992, legionnau,legionna, legionna, legionna, legionna_state, legiongfx, ROT0, "TAD Corporation (Fabtek license)", "Legionnaire (US)", 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)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING )
+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, legionna_state,denjinmk, ROT0, "Winkysoft (Banpresto license)", "Denjin Makai", MACHINE_IMPERFECT_GRAPHICS )
+
+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, cupsocsb, cupsoc, cupsocbl, cupsoc, legionna_state, cupsoc, ROT0, "bootleg", "Seibu Cup Soccer :Selection: (bootleg, set 1)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING )
+GAME( 1992, cupsocsb2,cupsoc, cupsocbl, cupsoc, legionna_state, cupsoc, ROT0, "bootleg", "Seibu Cup Soccer :Selection: (bootleg, set 2)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING )
+GAME( 1992, cupsocsb3,cupsoc, cupsocbl, cupsoc, legionna_state, cupsoc, ROT0, "bootleg", "Seibu Cup Soccer :Selection: (bootleg, set 3)", 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.c b/src/mame/drivers/leland.c
index acd22e3e068..ae0706928fe 100644
--- a/src/mame/drivers/leland.c
+++ b/src/mame/drivers/leland.c
@@ -2318,7 +2318,7 @@ GAME( 1988, teamqb2, teamqb, lelandi, teamqb, leland_state, teamqb, ROT27
GAME( 1989, aafb, 0, lelandi, teamqb, leland_state, aafb, ROT270, "Leland Corp.", "All American Football (rev E)", 0 )
GAME( 1989, aafbd2p, aafb, lelandi, aafb2p, leland_state, aafbd2p, ROT270, "Leland Corp.", "All American Football (rev D, 2 Players)", 0 )
GAME( 1989, aafbc, aafb, lelandi, teamqb, leland_state, aafbb, ROT270, "Leland Corp.", "All American Football (rev C)", 0 )
-GAME( 1989, aafbb, aafb, lelandi, teamqb, leland_state, aafbb, ROT270, "Leland Corp.", "All American Football (rev B)", GAME_NOT_WORKING )
+GAME( 1989, aafbb, aafb, lelandi, teamqb, leland_state, aafbb, ROT270, "Leland Corp.", "All American Football (rev B)", MACHINE_NOT_WORKING )
/* huge master banks, large slave banks, 80186 sound */
GAME( 1989, offroad, 0, lelandi, offroad, leland_state, offroad, ROT0, "Leland Corp.", "Ironman Ivan Stewart's Super Off-Road", 0 )
diff --git a/src/mame/drivers/lemmings.c b/src/mame/drivers/lemmings.c
index 31c05a4eae3..321e88e1665 100644
--- a/src/mame/drivers/lemmings.c
+++ b/src/mame/drivers/lemmings.c
@@ -318,4 +318,4 @@ ROM_END
/******************************************************************************/
-GAME( 1991, lemmings, 0, lemmings, lemmings, driver_device, 0, ROT0, "Data East USA", "Lemmings (US prototype)", GAME_SUPPORTS_SAVE )
+GAME( 1991, lemmings, 0, lemmings, lemmings, driver_device, 0, ROT0, "Data East USA", "Lemmings (US prototype)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/lethal.c b/src/mame/drivers/lethal.c
index 3a03be090d0..2e0c072a12b 100644
--- a/src/mame/drivers/lethal.c
+++ b/src/mame/drivers/lethal.c
@@ -732,12 +732,12 @@ ROM_START( lethalenj ) // Japan version JAD
ROM_END
-GAME( 1992, lethalen, 0, lethalen, lethalen, driver_device, 0, ORIENTATION_FLIP_Y, "Konami", "Lethal Enforcers (ver UAE, 11/19/92 15:04)", GAME_IMPERFECT_GRAPHICS | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_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?)", GAME_IMPERFECT_GRAPHICS | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) // writes EC to eeprom?!
+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, 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?!
// 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)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) // writes JC to eeprom?!
+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?!
diff --git a/src/mame/drivers/lethalj.c b/src/mame/drivers/lethalj.c
index e862dfd1f0e..b8a472c3586 100644
--- a/src/mame/drivers/lethalj.c
+++ b/src/mame/drivers/lethalj.c
@@ -142,7 +142,6 @@ Pin #11(+) | | R |
#include "emu.h"
#include "cpu/tms34010/tms34010.h"
#include "includes/lethalj.h"
-#include "machine/ticket.h"
#include "sound/okim6295.h"
@@ -162,7 +161,7 @@ Pin #11(+) | | R |
CUSTOM_INPUT_MEMBER(lethalj_state::cclownz_paddle)
{
- int value = ioport("PADDLE")->read();
+ int value = m_paddle->read();
return ((value << 4) & 0xf00) | (value & 0x00f);
}
@@ -177,14 +176,14 @@ CUSTOM_INPUT_MEMBER(lethalj_state::cclownz_paddle)
WRITE16_MEMBER(lethalj_state::ripribit_control_w)
{
coin_counter_w(machine(), 0, data & 1);
- machine().device<ticket_dispenser_device>("ticket")->write(space, 0, ((data >> 1) & 1) << 7);
+ m_ticket->write(space, 0, ((data >> 1) & 1) << 7);
output_set_lamp_value(0, (data >> 2) & 1);
}
WRITE16_MEMBER(lethalj_state::cfarm_control_w)
{
- machine().device<ticket_dispenser_device>("ticket")->write(space, 0, ((data >> 0) & 1) << 7);
+ m_ticket->write(space, 0, ((data >> 0) & 1) << 7);
output_set_lamp_value(0, (data >> 2) & 1);
output_set_lamp_value(1, (data >> 3) & 1);
output_set_lamp_value(2, (data >> 4) & 1);
@@ -194,7 +193,7 @@ WRITE16_MEMBER(lethalj_state::cfarm_control_w)
WRITE16_MEMBER(lethalj_state::cclownz_control_w)
{
- machine().device<ticket_dispenser_device>("ticket")->write(space, 0, ((data >> 0) & 1) << 7);
+ m_ticket->write(space, 0, ((data >> 0) & 1) << 7);
output_set_lamp_value(0, (data >> 2) & 1);
output_set_lamp_value(1, (data >> 4) & 1);
output_set_lamp_value(2, (data >> 5) & 1);
@@ -682,16 +681,16 @@ MACHINE_CONFIG_END
ROM_START( lethalj )
ROM_REGION16_LE( 0x100000, "user1", 0 ) /* 34010 code */
- ROM_LOAD16_BYTE( "vc8", 0x000000, 0x080000, CRC(8d568e1d) SHA1(e4dd3794789f9ccd7be8374978a3336f2b79136f) )
- ROM_LOAD16_BYTE( "vc9", 0x000001, 0x080000, CRC(8f22add4) SHA1(e773d3ae9cf512810fc266e784d21ed115c8830c) )
+ ROM_LOAD16_BYTE( "lethal_vc8_2.3.vc8", 0x000000, 0x080000, CRC(8d568e1d) SHA1(e4dd3794789f9ccd7be8374978a3336f2b79136f) ) /* Labeled as LETHAL VC8 2.3, also found labeled as VC-8 */
+ ROM_LOAD16_BYTE( "lethal_vc9_2.3.vc9", 0x000001, 0x080000, CRC(8f22add4) SHA1(e773d3ae9cf512810fc266e784d21ed115c8830c) ) /* Labeled as LETHAL VC9 2.3, also found labeled as VC-9 */
ROM_REGION16_LE( 0x600000, "gfx1", 0 ) /* graphics data */
- ROM_LOAD16_BYTE( "gr1", 0x000000, 0x100000, CRC(27f7b244) SHA1(628b29c066e217e1fe54553ea3ed98f86735e262) )
- ROM_LOAD16_BYTE( "gr2", 0x000001, 0x100000, CRC(1f25d3ab) SHA1(bdb8a3c546cdee9a5630c47b9c5079a956e8a093) )
- ROM_LOAD16_BYTE( "gr4", 0x200000, 0x100000, CRC(c5838b4c) SHA1(9ad03d0f316eb31fdf0ca6f65c02a27d3406d072) )
- ROM_LOAD16_BYTE( "gr3", 0x200001, 0x100000, CRC(ba9fa057) SHA1(db6f11a8964870f04f94fef6f1b1a58168a942ad) )
- ROM_LOAD16_BYTE( "gr6", 0x400000, 0x100000, CRC(51c99b85) SHA1(9a23bf21a73d2884b49c64a8f42c288534c79dc5) )
- ROM_LOAD16_BYTE( "gr5", 0x400001, 0x100000, CRC(80dda9b5) SHA1(d8a79cad112bc7d9e4ba31a950e4807581f3bf46) )
+ ROM_LOAD16_BYTE( "gr1.gr1", 0x000000, 0x100000, CRC(27f7b244) SHA1(628b29c066e217e1fe54553ea3ed98f86735e262) ) /* These had non specific GRx labels, also found labeled as GR-x */
+ ROM_LOAD16_BYTE( "gr2.gr2", 0x000001, 0x100000, CRC(1f25d3ab) SHA1(bdb8a3c546cdee9a5630c47b9c5079a956e8a093) )
+ ROM_LOAD16_BYTE( "gr4.gr4", 0x200000, 0x100000, CRC(c5838b4c) SHA1(9ad03d0f316eb31fdf0ca6f65c02a27d3406d072) )
+ ROM_LOAD16_BYTE( "gr3.gr3", 0x200001, 0x100000, CRC(ba9fa057) SHA1(db6f11a8964870f04f94fef6f1b1a58168a942ad) )
+ ROM_LOAD16_BYTE( "lethal_gr6_2.3.gr6", 0x400000, 0x100000, CRC(51c99b85) SHA1(9a23bf21a73d2884b49c64a8f42c288534c79dc5) ) /* Labeled as LETHAL GR6 2.3, also found labeled as GR-6 */
+ ROM_LOAD16_BYTE( "lethal_gr5_2.3.gr5", 0x400001, 0x100000, CRC(80dda9b5) SHA1(d8a79cad112bc7d9e4ba31a950e4807581f3bf46) ) /* Labeled as LETHAL GR5 2.3, also found labeled as GR-5 */
ROM_REGION( 0x40000, "oki1", 0 ) /* sound data */
ROM_LOAD( "sound1.u20", 0x00000, 0x40000, CRC(7d93ca66) SHA1(9e1dc0efa5d0f770c7e1f10de56fbf5620dea437) )
@@ -1008,8 +1007,8 @@ DRIVER_INIT_MEMBER(lethalj_state,cclownz)
*
*************************************/
-GAME( 1996, lethalj, 0, lethalj, lethalj, driver_device, 0, ROT0, "The Game Room", "Lethal Justice", 0 )
-GAME( 1996, franticf, 0, gameroom, franticf, driver_device, 0, ROT0, "The Game Room", "Frantic Fred", GAME_NOT_WORKING )
+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 )
diff --git a/src/mess/drivers/lft.c b/src/mame/drivers/lft.c
index 9953f5635e5..2034ec9219d 100644
--- a/src/mess/drivers/lft.c
+++ b/src/mame/drivers/lft.c
@@ -113,5 +113,5 @@ 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", GAME_IS_SKELETON)
-COMP( ????, lft1230, lft1510, 0, lft, lft, driver_device, 0, "LFT", "LFT 1230", GAME_IS_SKELETON)
+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)
diff --git a/src/mame/drivers/lg-dvd.c b/src/mame/drivers/lg-dvd.c
new file mode 100644
index 00000000000..0ea3c2ad14a
--- /dev/null
+++ b/src/mame/drivers/lg-dvd.c
@@ -0,0 +1,41 @@
+/*
+ Rather skeleton driver for a LG GP40NW10 usb dvd writer.
+
+ Main cpu, a MT1839, seems to be a mcs51 variant.
+*/
+
+#include "emu.h"
+#include "debugger.h"
+#include "cpu/mcs51/mcs51.h"
+
+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")
+ { }
+
+ required_device<i80c52_device> maincpu;
+};
+
+static INPUT_PORTS_START( lg )
+INPUT_PORTS_END
+
+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 )
+ MCFG_CPU_ADD( "maincpu", I80C52, XTAL_16MHz )
+ MCFG_CPU_PROGRAM_MAP( lg_dvd_map )
+MACHINE_CONFIG_END
+
+ROM_START( lggp40 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_SYSTEM_BIOS( 0, "bios0", "1.00" )
+ ROMX_LOAD( "firm-1.00.bin", 0x000000, 0x100000, CRC(c7f24f3b) SHA1(c2ce96c02ab419fb7e0b38703cdaeeccb2b7f34b), ROM_BIOS(1) )
+ ROM_SYSTEM_BIOS( 1, "bios1", "1.01" )
+ 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 )
diff --git a/src/mame/drivers/lgp.c b/src/mame/drivers/lgp.c
index 5c220dbeb16..2615484e2e5 100644
--- a/src/mame/drivers/lgp.c
+++ b/src/mame/drivers/lgp.c
@@ -571,5 +571,5 @@ 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", GAME_NOT_WORKING|GAME_NO_SOUND)
-GAME( 1983, lgpalt, lgp, lgp, lgp, lgp_state, lgp, ROT0, "Taito", "Laser Grand Prix (alternate)", GAME_NOT_WORKING|GAME_NO_SOUND)
+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.c b/src/mame/drivers/liberate.c
index 42a67e605df..9e0b2b7d644 100644
--- a/src/mame/drivers/liberate.c
+++ b/src/mame/drivers/liberate.c
@@ -237,7 +237,7 @@ WRITE8_MEMBER(liberate_state::prosport_charram_w)
*************************************/
static ADDRESS_MAP_START( prosport_map, AS_PROGRAM, 8, liberate_state )
- AM_RANGE(0x0200, 0x021f) AM_RAM_WRITE(prosport_paletteram_w) AM_SHARE("paletteram")
+ AM_RANGE(0x0200, 0x021f) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x0000, 0x03ff) AM_MIRROR(0x2000) AM_RAM
AM_RANGE(0x0400, 0x07ff) AM_RAM_WRITE(prosport_bg_vram_w) AM_SHARE("bg_vram")
AM_RANGE(0x0800, 0x1fff) AM_READWRITE(prosport_charram_r,prosport_charram_w) //0x1e00-0x1fff isn't charram!
@@ -836,6 +836,7 @@ static MACHINE_CONFIG_START( prosport, liberate_state )
MCFG_GFXDECODE_ADD("gfxdecode", "palette", prosport)
MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_FORMAT(BBGGGRRR_inverted)
MCFG_VIDEO_START_OVERRIDE(liberate_state,prosport)
@@ -1293,14 +1294,14 @@ DRIVER_INIT_MEMBER(liberate_state,liberate)
*
*************************************/
-GAME( 1983, prosoccr, 0, prosoccr, prosoccr, liberate_state, prosport, ROT270, "Data East Corporation", "Pro Soccer", GAME_SUPPORTS_SAVE )
-GAME( 1983, prosport, 0, prosport, prosport, liberate_state, prosport, ROT270, "Data East Corporation", "Pro Sports - Bowling, Tennis, and Golf", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1983, prosporta, prosport, prosport, prosport, liberate_state, prosport, ROT270, "Data East Corporation (Digital Controls license)", "Pro Sports - Bowling, Tennis, and Golf (USA)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1983, boomrang, 0, boomrang, boomrang, liberate_state, prosport, ROT270, "Data East Corporation", "Boomer Rang'r / Genesis (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1983, boomranga, boomrang, boomrang, boomrang, liberate_state, prosport, ROT270, "Data East Corporation", "Boomer Rang'r / Genesis (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1984, kamikcab, 0, boomrang, kamikcab, liberate_state, prosport, ROT270, "Data East Corporation", "Kamikaze Cabbie", GAME_SUPPORTS_SAVE )
-GAME( 1984, yellowcbj, kamikcab, boomrang, yellowcb, liberate_state, yellowcb, ROT270, "Data East Corporation", "Yellow Cab (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1984, yellowcbb, kamikcab, boomrang, yellowcb, liberate_state, yellowcb, ROT270, "bootleg", "Yellow Cab (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1984, liberate, 0, liberate, liberate, liberate_state, liberate, ROT270, "Data East Corporation", "Liberation", GAME_SUPPORTS_SAVE )
-GAME( 1984, dualaslt, liberate, liberate, dualaslt, liberate_state, liberate, ROT270, "Data East USA", "Dual Assault", GAME_SUPPORTS_SAVE )
-GAME( 1984, liberateb, liberate, liberatb, liberatb, liberate_state, prosport, ROT270, "bootleg", "Liberation (bootleg)", GAME_SUPPORTS_SAVE )
+GAME( 1983, prosoccr, 0, prosoccr, prosoccr, liberate_state, prosport, ROT270, "Data East Corporation", "Pro Soccer", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, prosport, 0, prosport, prosport, liberate_state, prosport, ROT270, "Data East Corporation", "Pro Sports - Bowling, Tennis, and Golf", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1983, prosporta, prosport, prosport, prosport, liberate_state, prosport, ROT270, "Data East Corporation (Digital Controls license)", "Pro Sports - Bowling, Tennis, and Golf (USA)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1983, boomrang, 0, boomrang, boomrang, liberate_state, prosport, ROT270, "Data East Corporation", "Boomer Rang'r / Genesis (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, boomranga, boomrang, boomrang, boomrang, liberate_state, prosport, ROT270, "Data East Corporation", "Boomer Rang'r / Genesis (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, kamikcab, 0, boomrang, kamikcab, liberate_state, prosport, ROT270, "Data East Corporation", "Kamikaze Cabbie", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, yellowcbj, kamikcab, boomrang, yellowcb, liberate_state, yellowcb, ROT270, "Data East Corporation", "Yellow Cab (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, yellowcbb, kamikcab, boomrang, yellowcb, liberate_state, yellowcb, ROT270, "bootleg", "Yellow Cab (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, liberate, 0, liberate, liberate, liberate_state, liberate, ROT270, "Data East Corporation", "Liberation", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, dualaslt, liberate, liberate, dualaslt, liberate_state, liberate, ROT270, "Data East USA", "Dual Assault", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, liberateb, liberate, liberatb, liberatb, liberate_state, prosport, ROT270, "bootleg", "Liberation (bootleg)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/liberatr.c b/src/mame/drivers/liberatr.c
index e40c3d192d2..f0f77750814 100644
--- a/src/mame/drivers/liberatr.c
+++ b/src/mame/drivers/liberatr.c
@@ -479,5 +479,5 @@ ROM_END
*
*************************************/
-GAME( 1982, liberatr, 0, liberatr, liberatr, driver_device, 0, ROT0, "Atari", "Liberator (set 1)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1982, liberatr2,liberatr, liberat2, liberatr, driver_device, 0, ROT0, "Atari", "Liberator (set 2)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/limenko.c b/src/mame/drivers/limenko.c
index 8bbfc5f59df..448d8c9c6a8 100644
--- a/src/mame/drivers/limenko.c
+++ b/src/mame/drivers/limenko.c
@@ -1152,10 +1152,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)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2000, legendoh, 0, limenko, legendoh, limenko_state, legendoh, ROT0, "Limenko", "Legend of Heroes", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2003, sb2003, 0, limenko, sb2003, limenko_state, sb2003, ROT0, "Limenko", "Super Bubble 2003 (World, Ver 1.0)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2003, sb2003a, sb2003, limenko, sb2003, limenko_state, sb2003, ROT0, "Limenko", "Super Bubble 2003 (Asia, Ver 1.0)", GAME_IMPERFECT_SOUND | GAME_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)", GAME_NO_SOUND | GAME_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.c b/src/mame/drivers/lindbergh.c
index 9d14f057a39..3d94a5ea9ed 100644
--- a/src/mame/drivers/lindbergh.c
+++ b/src/mame/drivers/lindbergh.c
@@ -71,63 +71,63 @@ is a combination of our research and things found on the internet.
Lindbergh Game List
-------------------
- Security
-Game Dongle Sticker PIC Number DVD Code
+ Security Sega Part#
+Game Dongle Sticker printed on PIC DVD Code
------------------------------------------------------------------------------------------
-*2 Spicy 253-5508-0491 317-0491-COM DVP-0027A
- After Burner Climax (EXPORT) 253-5508-0440A ^317-0440-COM DVP-0009
- After Burner Climax CE ? ? DVP-0031A
- Ami-Gyo ? ? ?
- Answer X Answer ? ? ?
- Answer X Answer 1.1 ? ? ?
- Answer X Answer DX ? ? ?
- Answer X Answer Premium ? ? ?
- Club Majesty Extend ? ? ?
- Club Majesty Formal ? ? ?
- Derby Owners Club 2008: Feel the Rush ? ? DVP-0047A
- Derby Owners Club 2008: Feel the Rush V2.0 ? ? ?
-*Ghost Squad Evolution ? ? DVP-0029A
- Harley Davidson: King of the Road ? ? ?
- Hummer Extreme ? ? ?
- Initial D Arcade Stage 4 ? ? DVP-0019
- Initial D Arcade Stage 4 (rev A) ? ? DVP-0019A
- Initial D Arcade Stage 4 (rev B) ? ? DVP-0019B
- Initial D Arcade Stage 4 (rev D) ? ? DVP-0019D
- Initial D Arcade Stage 4 (rev G) ? ? DVP-0019G
- Initial D4 ? ? DVP-0030
- Initial D4 (rev B) 253-5508-0486E 317-0486-COM DVP-0030B
-*Initial D4 (rev C) 253-5508-0486E 317-0486-COM DVP-0030C
-*Initial D4 (rev D) 253-5508-0486E 317-0486-COM DVP-0030D
- Initial D Arcade Stage 5 ? ? ?
- Let's Go Jungle (EXPORT) 253-5508-0442 317-0442-COM DVP-0011
- MJ4 ? ? ?
- OutRun 2 Special Tours (EXPORT) 253-5508-0452 317-0452-COM ?
- OutRun 2 SP SDX ? ? DVP-0015A
-*Primeval Hunt 253-5508-0512 317-0512-COM DVP-0048A
- R-Tuned: Ultimate Street Racing ? ? DVP-0060
-*Rambo (EXPORT) 253-5508-0540 ^317-0540-COM DVP-0069
- SEGA Network Taisen Mahjong MJ4 (rev A) ? ? DVP-0049A
- SEGA Network Taisen Mahjong MJ4 (rev F) ? ? DVP-0049F
- SEGA Network Taisen Mahjong MJ4 (rev G) ? ? DVP-0049G
-*SEGA-Race TV (EXPORT) 253-5508-0504 ^317-0504-COM DVP-0044
- StarHorse 2: Fifth Expansion (rev D) ? ? DVP-0082D
- StarHorse 2: Fifth Expansion (rev E) ? ? DVP-0082E
-*The House Of The Dead 4 (EXPORT) 253-5508-0427 ^317-0427-COM DVP-0003A
- The House Of The Dead EX (JAPAN) 253-5508-0550 ^317-0550-JPN ?
- The House Of the Dead 4 Special ? ? ?
-*VBIOS Update ? ? DVP-0021B
- VBIOS Update [For VTF] ? ? DVP-0023A
- Virtua Fighter 5 (EXPORT) 253-5508-0438 317-0438-COM DVP-0008E
- Virtua Tennis 3 (Power Smash 3) ? ? DVP-0005
- Virtua Tennis 3 (Power Smash 3) (EXPORT) 253-5508-0434 ^317-0434-COM DVP-0005A
-*Virtua Tennis 3 (JAPAN) 253-5508-0506 317-0506-JPN DVP-0005C
- WCC Football Intercontinental Clubs 2006-2007 ? ? ?
- WCC Football Intercontinental Clubs 2007-2008 ? ? ?
- WCC Football Intercontinental Clubs 2008-2009 ? ? ?
- WCC Football Intercontinental Clubs 2009-2010 ? ? ?
-
-* denotes these DVDs are archived.
-^ denotes these PICs are archived.
+2 Spicy 253-5508-0491 317-0491-COM ^DVP-0027A
+After Burner Climax (EXPORT) 253-5508-0440A ^317-0440-COM DVP-0009
+After Burner Climax CE ? ? DVP-0031A
+Ami-Gyo ? ? ?
+Answer X Answer 253-5508-0618J 317-0618-JPN ?
+Answer X Answer 1.1 ? ? ?
+Answer X Answer DX ? ? ?
+Answer X Answer Premium ? ? ?
+Club Majesty Extend ? ? ?
+Club Majesty Formal ? ? ?
+Derby Owners Club 2008: Feel the Rush ? ? DVP-0047A
+Derby Owners Club 2008: Feel the Rush V2.0 ? ? ?
+Ghost Squad Evolution ? ? ^DVP-0029A
+Harley Davidson: King of the Road ? ? ?
+Hummer Extreme 253-5508-???? ^317-????-COM ?
+Initial D Arcade Stage 4 253-5508-0620 317-0620-COM DVP-0019
+Initial D Arcade Stage 4 (rev A) 253-5508-0620 317-0620-COM DVP-0019A
+Initial D Arcade Stage 4 (rev B) 253-5508-0620 317-0620-COM DVP-0019B
+Initial D Arcade Stage 4 (rev C) 253-5508-0620 317-0620-COM ^DVP-0019C
+Initial D Arcade Stage 4 (rev D) 253-5508-0620 317-0620-COM DVP-0019D
+Initial D Arcade Stage 4 (rev G) 253-5508-0620 317-0620-COM DVP-0019G
+Initial D4 253-5508-0486E 317-0486-COM DVP-0030
+Initial D4 (rev B) 253-5508-0486E 317-0486-COM DVP-0030B
+Initial D4 (rev C) 253-5508-0486E 317-0486-COM ^DVP-0030C
+Initial D4 (rev D) 253-5508-0486E 317-0486-COM ^DVP-0030D
+Initial D Arcade Stage 5 ? ? ?
+Let's Go Jungle (EXPORT) 253-5508-0442 317-0442-COM DVP-0011
+MJ4 ? ? ?
+OutRun 2 Special Tours (EXPORT) 253-5508-0452 317-0452-COM ?
+OutRun 2 SP SDX ? ? DVP-0015A
+Primeval Hunt 253-5508-0512 317-0512-COM ^DVP-0048A
+R-Tuned: Ultimate Street Racing ? ? DVP-0060
+Rambo (EXPORT) 253-5508-0540 ^317-0540-COM ^DVP-0069
+SEGA Network Taisen Mahjong MJ4 (rev A) ? ? DVP-0049A
+SEGA Network Taisen Mahjong MJ4 (rev F) ? ? DVP-0049F
+SEGA Network Taisen Mahjong MJ4 (rev G) ? ? DVP-0049G
+SEGA-Race TV (EXPORT) 253-5508-0504 ^317-0504-COM ^DVP-0044
+StarHorse 2: Fifth Expansion (rev D) ? ? DVP-0082D
+StarHorse 2: Fifth Expansion (rev E) ? ? DVP-0082E
+The House Of The Dead 4 (EXPORT) 253-5508-0427 ^317-0427-COM ^DVP-0003A
+The House Of The Dead EX (JAPAN) 253-5508-0550 ^317-0550-JPN ?
+The House Of the Dead 4 Special ? ? ?
+VBIOS Update ? ? ^DVP-0021B
+VBIOS Update [For VTF] ? ? DVP-0023A
+Virtua Fighter 5 (EXPORT) 253-5508-0438 317-0438-COM DVP-0008E
+Virtua Tennis 3 (Power Smash 3) ? ? DVP-0005
+Virtua Tennis 3 (Power Smash 3) (EXPORT) 253-5508-0434 ^317-0434-COM DVP-0005A
+Virtua Tennis 3 (JAPAN) 253-5508-0506 317-0506-JPN ^DVP-0005C
+WCC Football Intercontinental Clubs 2006-2007 ? ? ?
+WCC Football Intercontinental Clubs 2007-2008 ? ? ?
+WCC Football Intercontinental Clubs 2008-2009 ? ? ?
+WCC Football Intercontinental Clubs 2009-2010 ? ? ?
+
+^ denotes these parts are archived.
This list is not necessarily correct or complete.
Corrections and additions to the above are welcome.
@@ -156,19 +156,22 @@ Sticker: 838-14673
| 14.31818MHz |-------| | | |
|JP |-----------| |
|12 |
-|34 |-------| 932S208DG SIMM1(512M DDR PC3200) |
+|34 |-------| 932S208DG SIMM1 |
|56 |6300ESB| |
-|78 |SL7XJ | SIMM2 |
+|78 |SL7XJ | SIMM2(not used) |
|910 | | |
-|1112|INTEL | SIMM3 |
+|1112|INTEL | SIMM3(not used) |
| |-------| |
-|32.768kHz |---------| SIMM4 |
+|32.768kHz |---------| SIMM4(not used) |
| 3V_BATT |COMPACT | |
| MB_BIOS.3J7 |FLASH | IDE40 |
| |SLOT | IDE40 ATX_POWER |
|------------------|---------|-------------------------------|
Notes:
- CPU - Intel Celeron D 335 SL8HM 2.8GHz 256k L2 cache, 533MHz FSB
+ CPU - Lindbergh RED: Intel Celeron D 335 SL8HM 2.8GHz 256k L2 cache, 533MHz FSB.
+ Lindbergh YELLOW: Intel Pentium 4 3.00GHz/1M/800 SL8JZ
+ SIMM1 - Lindbergh RED: 512M DDR PC3200
+ Lindbergh YELLOW: 1GB DDR PC3200
82541PI - Intel Gigabit Ethernet Controller
6300ESB - Intel Southbridge IC
JG82875 - Intel Northbridge IC
@@ -498,7 +501,7 @@ ROM_START(initiad4)
LINDBERGH_BIOS
ROM_REGION(0x2000, ":pic", 0) // PIC security 253-5508-0486E / 317-0486-COM
- ROM_LOAD("317-0846-com.bin", 0, 0x2000, NO_DUMP)
+ ROM_LOAD("317-0486-com.bin", 0, 0x2000, NO_DUMP)
DISK_REGION("dvd")
DISK_IMAGE_READONLY("dvp-0030d", 0, SHA1(e43e6d22fab4eceb81db8309e4634e049d9c41e6))
@@ -508,7 +511,7 @@ ROM_START(initiad4c)
LINDBERGH_BIOS
ROM_REGION(0x2000, ":pic", 0) // PIC security 253-5508-0486E / 317-0486-COM
- ROM_LOAD("317-0846-com.bin", 0, 0x2000, NO_DUMP)
+ ROM_LOAD("317-0486-com.bin", 0, 0x2000, NO_DUMP)
DISK_REGION("dvd")
DISK_IMAGE_READONLY("dvp-0030c", 0, SHA1(b1919f28539afec4c4bc52357e5210a090b5ae32))
@@ -568,21 +571,21 @@ 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", GAME_IS_BIOS_ROOT)
-GAME(2005, hotd4, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "House of the Dead 4 (Export)", GAME_NOT_WORKING|GAME_UNEMULATED_PROTECTION|GAME_NO_SOUND)
-GAME(2005, vf5, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "Virtua Fighter 5 (Export)", GAME_NOT_WORKING|GAME_UNEMULATED_PROTECTION|GAME_NO_SOUND)
-GAME(2006, abclimax, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "After Burner Climax (Export)", GAME_NOT_WORKING|GAME_UNEMULATED_PROTECTION|GAME_NO_SOUND)
-GAME(2006, letsgoju, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "Let's Go Jungle (Export)", GAME_NOT_WORKING|GAME_UNEMULATED_PROTECTION|GAME_NO_SOUND)
-GAME(2006, outr2sdx, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "OutRun 2 SP SDX", GAME_NOT_WORKING|GAME_UNEMULATED_PROTECTION|GAME_NO_SOUND)
-GAME(2006, psmash3, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "Power Smash 3 / Virtua Tennis 3 (Export)", GAME_NOT_WORKING|GAME_UNEMULATED_PROTECTION|GAME_NO_SOUND)
-GAME(2006, vtennis3, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "Virtua Tennis 3 (Japan)", GAME_NOT_WORKING|GAME_UNEMULATED_PROTECTION|GAME_NO_SOUND)
-GAME(2007, 2spicy, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "2 Spicy", GAME_NOT_WORKING|GAME_UNEMULATED_PROTECTION|GAME_NO_SOUND)
-GAME(2007, ghostsev, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "Ghost Squad Evolution", GAME_NOT_WORKING|GAME_UNEMULATED_PROTECTION|GAME_NO_SOUND)
-GAME(2007, initiad4, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "Initial D4 (Rev D)", GAME_NOT_WORKING|GAME_UNEMULATED_PROTECTION|GAME_NO_SOUND)
-GAME(2007, initiad4c, initiad4, lindbergh, 0, driver_device, 0, ROT0, "Sega", "Initial D4 (Rev C)", GAME_NOT_WORKING|GAME_UNEMULATED_PROTECTION|GAME_NO_SOUND)
-GAME(2007, segartv, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "Sega Race-TV (Export)", GAME_NOT_WORKING|GAME_UNEMULATED_PROTECTION|GAME_NO_SOUND)
-GAME(2008, hotdex, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "House of the Dead EX (Japan)", GAME_NOT_WORKING|GAME_UNEMULATED_PROTECTION|GAME_NO_SOUND)
-GAME(2008, primevah, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "Primeval Hunt", GAME_NOT_WORKING|GAME_UNEMULATED_PROTECTION|GAME_NO_SOUND)
-GAME(2008, rambo, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "Rambo (Export)", GAME_NOT_WORKING|GAME_UNEMULATED_PROTECTION|GAME_NO_SOUND)
-GAME(2009, hummerxt, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "Hummer Extreme", GAME_NOT_WORKING|GAME_UNEMULATED_PROTECTION|GAME_NO_SOUND)
-GAME(200?, lbvbiosu, lindbios, lindbergh, 0, driver_device, 0, ROT0, "Sega", "VBios updater", GAME_NOT_WORKING|GAME_UNEMULATED_PROTECTION|GAME_NO_SOUND)
+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)", 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)
diff --git a/src/mess/drivers/lisa.c b/src/mame/drivers/lisa.c
index 3bba439d0bc..d496742cd8d 100644
--- a/src/mess/drivers/lisa.c
+++ b/src/mame/drivers/lisa.c
@@ -477,10 +477,10 @@ ROM_END
/*
Lisa drivers boot MacWorks, but do not boot the Lisa OS, which is why we set
- the GAME_NOT_WORKING flag...
+ 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", GAME_NOT_WORKING )
-COMP( 1984, lisa2, 0, 0, lisa, lisa, lisa_state, lisa2, "Apple Computer", "Lisa2", GAME_NOT_WORKING )
-COMP( 1984, lisa210, lisa2, 0, lisa210, lisa, lisa_state, lisa210, "Apple Computer", "Lisa2/10", GAME_NOT_WORKING )
-COMP( 1985, macxl, lisa2, 0, macxl, lisa, lisa_state, mac_xl, "Apple Computer", "Macintosh XL", /*GAME_NOT_WORKING*/0 )
+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.c b/src/mame/drivers/littlerb.c
index d018c4d8b98..6ec40e52ff2 100644
--- a/src/mame/drivers/littlerb.c
+++ b/src/mame/drivers/littlerb.c
@@ -283,4 +283,4 @@ ROM_START( littlerb )
ROM_END
-GAME( 1994, littlerb, 0, littlerb, littlerb, driver_device, 0, ROT0, "TCH", "Little Robin", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND )
+GAME( 1994, littlerb, 0, littlerb, littlerb, driver_device, 0, ROT0, "TCH", "Little Robin", MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_SOUND )
diff --git a/src/mame/drivers/lkage.c b/src/mame/drivers/lkage.c
index 317922994d9..a357dc57334 100644
--- a/src/mame/drivers/lkage.c
+++ b/src/mame/drivers/lkage.c
@@ -958,10 +958,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", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1984, lkageo, lkage, lkage, lkage, lkage_state, lkage, ROT0, "Taito Corporation", "The Legend of Kage (older)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1984, lkageoo, lkage, lkage, lkage, lkage_state, lkage, ROT0, "Taito Corporation", "The Legend of Kage (oldest)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1984, lkageb, lkage, lkageb, lkageb, lkage_state, lkageb, ROT0, "bootleg", "The Legend of Kage (bootleg set 1)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1984, lkageb2, lkage, lkageb, lkageb, lkage_state, lkageb, ROT0, "bootleg", "The Legend of Kage (bootleg set 2)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1984, lkageb3, lkage, lkageb, lkageb, lkage_state, lkageb, ROT0, "bootleg", "The Legend of Kage (bootleg set 3)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1985, bygone, 0, lkage, bygone, lkage_state, bygone, ROT0, "Taito Corporation", "Bygone", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL | GAME_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, lkageb, ROT0, "bootleg", "The Legend of Kage (bootleg set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1984, lkageb2, lkage, lkageb, lkageb, lkage_state, lkageb, ROT0, "bootleg", "The Legend of Kage (bootleg set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1984, lkageb3, lkage, lkageb, lkageb, lkage_state, lkageb, 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", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/llc.c b/src/mame/drivers/llc.c
index cc9a620cae7..45cb0ce5348 100644
--- a/src/mess/drivers/llc.c
+++ b/src/mame/drivers/llc.c
@@ -307,5 +307,5 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND_HW)
+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.c b/src/mame/drivers/lockon.c
index 81fd4dcea5a..3dff4710044 100644
--- a/src/mame/drivers/lockon.c
+++ b/src/mame/drivers/lockon.c
@@ -774,5 +774,5 @@ ROM_END
*
*************************************/
-GAME( 1986, lockon, 0, lockon, lockon, driver_device, 0, ROT0, "Tatsumi", "Lock-On (rev. E)", GAME_SUPPORTS_SAVE )
-GAME( 1986, lockonc, lockon, lockon, lockone, driver_device, 0, ROT0, "Tatsumi", "Lock-On (rev. C)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/lola8a.c b/src/mame/drivers/lola8a.c
index 5c73d2ffac6..c6f2e9a6c4f 100644
--- a/src/mess/drivers/lola8a.c
+++ b/src/mame/drivers/lola8a.c
@@ -42,7 +42,6 @@ public:
required_device<cpu_device> m_maincpu;
- DECLARE_PALETTE_INIT(lola8a);
virtual void machine_reset() { m_maincpu->set_pc(0x8000); }
DECLARE_READ8_MEMBER(lola8a_port_a_r);
@@ -187,20 +186,9 @@ static INPUT_PORTS_START( lola8a )
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(KEYCODE_RCONTROL)
INPUT_PORTS_END
-
-PALETTE_INIT_MEMBER(lola8a_state, lola8a)
-{
- int i;
-
- for(i=0;i<8;i++) {
- palette.set_pen_color(i, pal1bit(i >> 1),pal1bit(i >> 2),pal1bit(i >> 0));
- }
-}
-
MC6845_UPDATE_ROW( lola8a_state::crtc_update_row )
{
address_space &program = m_maincpu->space(AS_PROGRAM);
- const rgb_t *palette = m_palette->palette()->entry_list_raw();
for (int sx = 0; sx < x_count; sx++)
{
@@ -211,7 +199,7 @@ MC6845_UPDATE_ROW( lola8a_state::crtc_update_row )
{
int color = BIT(code, 7-x) ? 7 : 0;
if (cursor_x==sx) color = 7;
- bitmap.pix32(y, x + sx*8) = palette[color];
+ bitmap.pix32(y, x + sx*8) = m_palette->pen_color(color);
}
}
}
@@ -285,8 +273,7 @@ static MACHINE_CONFIG_START( lola8a, lola8a_state )
MCFG_MC6845_UPDATE_ROW_CB(lola8a_state, crtc_update_row)
MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(lola8a_state, crtc_vsync))
- MCFG_PALETTE_ADD("palette", 8)
- MCFG_PALETTE_INIT_OWNER(lola8a_state, lola8a)
+ MCFG_PALETTE_ADD_3BIT_BRG("palette")
/* Cassette */
MCFG_CASSETTE_ADD( "cassette" )
@@ -305,4 +292,4 @@ 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", GAME_NOT_WORKING)
+COMP( 1986, lola8a, 0, 0, lola8a, lola8a, driver_device, 0, "Institut Ivo Lola Ribar", "Lola 8A", MACHINE_NOT_WORKING)
diff --git a/src/mame/drivers/looping.c b/src/mame/drivers/looping.c
index c10595d1ad9..32a866d838b 100644
--- a/src/mame/drivers/looping.c
+++ b/src/mame/drivers/looping.c
@@ -906,7 +906,7 @@ DRIVER_INIT_MEMBER(looping_state,looping)
*
*************************************/
-GAME( 1982, looping, 0, looping, looping, looping_state, looping, ROT90, "Video Games GmbH", "Looping", GAME_IMPERFECT_SOUND /*| GAME_SUPPORTS_SAVE */)
-GAME( 1982, loopingv, looping, looping, looping, looping_state, looping, ROT90, "Video Games GmbH (Venture Line license)", "Looping (Venture Line license, set 1)", GAME_IMPERFECT_SOUND /* | GAME_SUPPORTS_SAVE */)
-GAME( 1982, loopingva, looping, looping, looping, looping_state, looping, ROT90, "Video Games GmbH (Venture Line license)", "Looping (Venture Line license, set 2)", GAME_IMPERFECT_SOUND /* | GAME_SUPPORTS_SAVE */ )
-GAME( 1982, skybump, 0, looping, skybump, looping_state, looping, ROT90, "Venture Line", "Sky Bumper", GAME_IMPERFECT_SOUND /* | GAME_SUPPORTS_SAVE */)
+GAME( 1982, looping, 0, looping, looping, looping_state, looping, ROT90, "Video Games GmbH", "Looping", MACHINE_IMPERFECT_SOUND /*| MACHINE_SUPPORTS_SAVE */)
+GAME( 1982, loopingv, looping, looping, looping, looping_state, looping, ROT90, "Video Games GmbH (Venture Line license)", "Looping (Venture Line license, set 1)", MACHINE_IMPERFECT_SOUND /* | MACHINE_SUPPORTS_SAVE */)
+GAME( 1982, loopingva, looping, looping, looping, looping_state, looping, ROT90, "Video Games GmbH (Venture Line license)", "Looping (Venture Line license, set 2)", MACHINE_IMPERFECT_SOUND /* | MACHINE_SUPPORTS_SAVE */ )
+GAME( 1982, skybump, 0, looping, skybump, looping_state, looping, ROT90, "Venture Line", "Sky Bumper", MACHINE_IMPERFECT_SOUND /* | MACHINE_SUPPORTS_SAVE */)
diff --git a/src/mame/drivers/lordgun.c b/src/mame/drivers/lordgun.c
index ca0daf3decb..e25acbe1cc6 100644
--- a/src/mame/drivers/lordgun.c
+++ b/src/mame/drivers/lordgun.c
@@ -1074,6 +1074,6 @@ DRIVER_INIT_MEMBER(lordgun_state, aliencha)
***************************************************************************/
-GAME( 1994, lordgun, 0, lordgun, lordgun, lordgun_state, lordgun, ROT0, "IGS", "Lord of Gun (USA)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1994, aliencha, 0, aliencha, aliencha, driver_device, 0, ROT0, "IGS", "Alien Challenge (World)", GAME_SUPPORTS_SAVE )
-GAME( 1994, alienchac, aliencha, aliencha, aliencha, driver_device, 0, ROT0, "IGS", "Alien Challenge (China)", GAME_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, 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 )
diff --git a/src/mame/drivers/lsasquad.c b/src/mame/drivers/lsasquad.c
index 14605bf0f70..75c3ae5af63 100644
--- a/src/mame/drivers/lsasquad.c
+++ b/src/mame/drivers/lsasquad.c
@@ -806,6 +806,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", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1986, storming, lsasquad, storming, storming, driver_device, 0, ROT270, "bootleg", "Storming Party / Riku Kai Kuu Saizensen", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1986, daikaiju, 0, daikaiju, daikaiju, driver_device, 0, ROT270, "Taito", "Daikaiju no Gyakushu", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/ltcasino.c b/src/mame/drivers/ltcasino.c
index 8715d04ecb1..6ef86f37720 100644
--- a/src/mame/drivers/ltcasino.c
+++ b/src/mame/drivers/ltcasino.c
@@ -726,6 +726,6 @@ DRIVER_INIT_MEMBER(ltcasino_state,mv4in1)
-GAME( 1982, ltcasino, 0, ltcasino, ltcasino, driver_device, 0, ROT0, "Digital Controls Inc.", "Little Casino (older)", GAME_WRONG_COLORS | GAME_IMPERFECT_GRAPHICS )
-GAME( 1983, mv4in1, ltcasino, ltcasino, mv4in1, ltcasino_state, mv4in1, ROT0, "Entertainment Enterprises, Ltd.", "Mini Vegas 4in1", GAME_WRONG_COLORS | GAME_IMPERFECT_GRAPHICS )
-GAME( 1984, ltcasinn, 0, ltcasino, ltcasinn, driver_device, 0, ROT0, "Digital Controls Inc.", "Little Casino (newer)", GAME_NOT_WORKING )
+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 )
diff --git a/src/mame/drivers/ltd.c b/src/mame/drivers/ltd.c
index b270f46329a..40ab85f0881 100644
--- a/src/mame/drivers/ltd.c
+++ b/src/mame/drivers/ltd.c
@@ -610,12 +610,12 @@ ROM_START(columbia)
ROM_END
// system 3
-GAME(1981, atla_ltd, 0, ltd3, ltd3, ltd_state, atla_ltd, ROT0, "LTD", "Atlantis (LTD)", GAME_MECHANICAL | GAME_NO_SOUND )
-GAME(1981, bhol_ltd, 0, ltd3, ltd3, ltd_state, bhol_ltd, ROT0, "LTD", "Black Hole (LTD)", GAME_MECHANICAL | GAME_NO_SOUND )
-GAME(1981, zephy, 0, ltd3, ltd3, ltd_state, zephy, ROT0, "LTD", "Zephy", GAME_IS_SKELETON_MECHANICAL)
+GAME(1981, atla_ltd, 0, ltd3, ltd3, ltd_state, atla_ltd, ROT0, "LTD", "Atlantis (LTD)", MACHINE_MECHANICAL | MACHINE_NO_SOUND )
+GAME(1981, bhol_ltd, 0, ltd3, ltd3, ltd_state, bhol_ltd, ROT0, "LTD", "Black Hole (LTD)", MACHINE_MECHANICAL | MACHINE_NO_SOUND )
+GAME(1981, zephy, 0, ltd3, ltd3, ltd_state, zephy, ROT0, "LTD", "Zephy", MACHINE_IS_SKELETON_MECHANICAL)
// system 4
-GAME(1981, cowboy, 0, ltd4, ltd4, ltd_state, ltd, ROT0, "LTD", "Cowboy Eight Ball 2", GAME_IS_SKELETON_MECHANICAL)
-GAME(1981, pecmen, 0, ltd4, ltd4, ltd_state, ltd, ROT0, "LTD", "Mr. & Mrs. Pec-Men", GAME_IS_SKELETON_MECHANICAL)
-GAME(1981, alcapone, 0, ltd4, ltd4, ltd_state, ltd, ROT0, "LTD", "Al Capone", GAME_IS_SKELETON_MECHANICAL)
-GAME(1982, columbia, 0, ltd4, ltd4, ltd_state, ltd, ROT0, "LTD", "Columbia", GAME_IS_SKELETON_MECHANICAL)
+GAME(1981, cowboy, 0, ltd4, ltd4, ltd_state, ltd, ROT0, "LTD", "Cowboy Eight Ball 2", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1981, pecmen, 0, ltd4, ltd4, ltd_state, ltd, ROT0, "LTD", "Mr. & Mrs. Pec-Men", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1981, alcapone, 0, ltd4, ltd4, ltd_state, ltd, ROT0, "LTD", "Al Capone", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1982, columbia, 0, ltd4, ltd4, ltd_state, ltd, ROT0, "LTD", "Columbia", MACHINE_IS_SKELETON_MECHANICAL)
diff --git a/src/mame/drivers/luckgrln.c b/src/mame/drivers/luckgrln.c
index a2a857ef873..b7d2e25572a 100644
--- a/src/mame/drivers/luckgrln.c
+++ b/src/mame/drivers/luckgrln.c
@@ -1092,5 +1092,5 @@ ROM_END
**********************************************
YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS LAYOUT */
-GAMEL( 1991, luckgrln, 0, luckgrln, luckgrln, luckgrln_state, luckgrln, ROT0, "Wing Co., Ltd.", "Lucky Girl (newer Z180 based hardware)", GAME_NO_SOUND, layout_luckgrln )
-GAMEL( 1993, 7smash, 0, _7smash, _7smash, driver_device, 0, ROT0, "Sovic", "7 Smash", GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING | GAME_NO_SOUND, layout_luckgrln )
+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_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING | MACHINE_NO_SOUND, layout_luckgrln )
diff --git a/src/mame/drivers/lucky74.c b/src/mame/drivers/lucky74.c
index 4880f252502..ae654165df3 100644
--- a/src/mame/drivers/lucky74.c
+++ b/src/mame/drivers/lucky74.c
@@ -1744,5 +1744,5 @@ ROM_END
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)", GAME_NOT_WORKING, layout_lucky74 )
-GAME( 1989, excitbj, 0, lucky74, excitbj, driver_device, 0, ROT0, "Sega", "Exciting Black Jack", GAME_NOT_WORKING )
+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 )
diff --git a/src/mess/drivers/lviv.c b/src/mame/drivers/lviv.c
index 1861e026e71..1861e026e71 100644
--- a/src/mess/drivers/lviv.c
+++ b/src/mame/drivers/lviv.c
diff --git a/src/mame/drivers/lwings.c b/src/mame/drivers/lwings.c
index ff95edc6aa5..762264188fd 100644
--- a/src/mame/drivers/lwings.c
+++ b/src/mame/drivers/lwings.c
@@ -847,6 +847,12 @@ static MACHINE_CONFIG_DERIVED( avengers, trojan )
MCFG_VIDEO_START_OVERRIDE(lwings_state,avengers)
MACHINE_CONFIG_END
+static MACHINE_CONFIG_DERIVED( avengersb, avengers )
+ /* video hardware */
+ MCFG_VIDEO_START_OVERRIDE(lwings_state,avengersb)
+MACHINE_CONFIG_END
+
+
/*************************************
*
* ROM definition(s)
@@ -1054,7 +1060,7 @@ ROM_START( trojan )
ROM_REGION( 0x10000, "soundcpu", 0 )
ROM_LOAD( "tb02.15h", 0x0000, 0x8000, CRC(21154797) SHA1(e1a3006746cc2d692ecd4369cc0a77c596abd60b) )
- ROM_REGION( 0x10000, "adpcm", 0 ) /* 64k for ADPCM CPU (CPU not emulated) */
+ ROM_REGION( 0x10000, "adpcm", 0 ) /* 64k for ADPCM CPU */
ROM_LOAD( "tb01.6d", 0x0000, 0x4000, CRC(1c0f91b2) SHA1(163bf6aa1936994659661653eabdc368199b0070) )
ROM_REGION( 0x04000, "gfx1", 0 )
@@ -1101,7 +1107,7 @@ ROM_START( trojana )
ROM_REGION( 0x10000, "soundcpu", 0 )
ROM_LOAD( "tb02.15h", 0x0000, 0x8000, CRC(21154797) SHA1(e1a3006746cc2d692ecd4369cc0a77c596abd60b) )
- ROM_REGION( 0x10000, "adpcm", 0 ) /* 64k for ADPCM CPU (CPU not emulated) */
+ ROM_REGION( 0x10000, "adpcm", 0 ) /* 64k for ADPCM CPU */
ROM_LOAD( "tb01.6d", 0x0000, 0x4000, CRC(1c0f91b2) SHA1(163bf6aa1936994659661653eabdc368199b0070) )
ROM_REGION( 0x04000, "gfx1", 0 )
@@ -1148,7 +1154,7 @@ ROM_START( trojanr )
ROM_REGION( 0x10000, "soundcpu", 0 )
ROM_LOAD( "tb02.15h", 0x0000, 0x8000, CRC(21154797) SHA1(e1a3006746cc2d692ecd4369cc0a77c596abd60b) )
- ROM_REGION( 0x10000, "adpcm", 0 ) /* 64k for ADPCM CPU (CPU not emulated) */
+ ROM_REGION( 0x10000, "adpcm", 0 ) /* 64k for ADPCM CPU */
ROM_LOAD( "tb01.6d", 0x0000, 0x4000, CRC(1c0f91b2) SHA1(163bf6aa1936994659661653eabdc368199b0070) )
ROM_REGION( 0x04000, "gfx1", 0 )
@@ -1195,7 +1201,7 @@ ROM_START( trojanj )
ROM_REGION( 0x10000, "soundcpu", 0 )
ROM_LOAD( "tb02.15h", 0x0000, 0x8000, CRC(21154797) SHA1(e1a3006746cc2d692ecd4369cc0a77c596abd60b) )
- ROM_REGION( 0x10000, "adpcm", 0 ) /* 64k for ADPCM CPU (CPU not emulated) */
+ ROM_REGION( 0x10000, "adpcm", 0 ) /* 64k for ADPCM CPU */
ROM_LOAD( "tb01.6d", 0x0000, 0x4000, CRC(1c0f91b2) SHA1(163bf6aa1936994659661653eabdc368199b0070) )
ROM_REGION( 0x04000, "gfx1", 0 )
@@ -1242,7 +1248,7 @@ ROM_START( trojanb )
ROM_REGION( 0x10000, "soundcpu", 0 )
ROM_LOAD( "2.6q", 0x0000, 0x8000, CRC(21154797) SHA1(e1a3006746cc2d692ecd4369cc0a77c596abd60b) )
- ROM_REGION( 0x10000, "adpcm", 0 ) /* 64k for ADPCM CPU (CPU not emulated) */
+ ROM_REGION( 0x10000, "adpcm", 0 ) /* 64k for ADPCM CPU */
ROM_LOAD( "1.3f", 0x0000, 0x8000, CRC(83c715b2) SHA1(0c69c086657f91828a639ff7c72c703a27ade710) ) // different
ROM_REGION( 0x04000, "gfx1", 0 )
@@ -1290,7 +1296,7 @@ ROM_START( avengers )
ROM_REGION( 0x10000, "soundcpu", 0 )
ROM_LOAD( "02.15h", 0x0000, 0x8000, CRC(107a2e17) SHA1(5aae2f4ac9f15ccb4122f3ba9fba588438d62f4f) ) /* ?? */
- ROM_REGION( 0x10000, "adpcm", 0 ) /* ADPCM CPU (not emulated) */
+ ROM_REGION( 0x10000, "adpcm", 0 ) /* ADPCM CPU */
ROM_LOAD( "01.6d", 0x0000, 0x8000, CRC(c1e5d258) SHA1(88ed978e6df72ce22f9371930360aa9cde73abe9) ) /* adpcm player - "Talker" ROM */
ROM_REGION( 0x08000, "gfx1", 0 )
@@ -1337,7 +1343,7 @@ ROM_START( avengers2 )
ROM_REGION( 0x10000, "soundcpu", 0 )
ROM_LOAD( "02.15h", 0x0000, 0x8000, CRC(107a2e17) SHA1(5aae2f4ac9f15ccb4122f3ba9fba588438d62f4f) ) /* MISSING from this set */
- ROM_REGION( 0x10000, "adpcm", 0 ) /* ADPCM CPU (not emulated) */
+ ROM_REGION( 0x10000, "adpcm", 0 ) /* ADPCM CPU */
ROM_LOAD( "01.6d", 0x0000, 0x8000, CRC(c1e5d258) SHA1(88ed978e6df72ce22f9371930360aa9cde73abe9) ) /* adpcm player - "Talker" ROM */
ROM_REGION( 0x08000, "gfx1", 0 )
@@ -1384,7 +1390,7 @@ ROM_START( buraiken )
ROM_REGION( 0x10000, "soundcpu", 0 )
ROM_LOAD( "02.15h", 0x0000, 0x8000, CRC(107a2e17) SHA1(5aae2f4ac9f15ccb4122f3ba9fba588438d62f4f) )
- ROM_REGION( 0x10000, "adpcm", 0 ) /* ADPCM CPU (not emulated) */
+ ROM_REGION( 0x10000, "adpcm", 0 ) /* ADPCM CPU */
ROM_LOAD( "01.6d", 0x0000, 0x8000, CRC(c1e5d258) SHA1(88ed978e6df72ce22f9371930360aa9cde73abe9) ) /* adpcm player - "Talker" ROM */
ROM_REGION( 0x08000, "gfx1", 0 )
@@ -1424,6 +1430,59 @@ ROM_END
+ROM_START( buraikenb )
+ ROM_REGION( 0x20000, "maincpu", 0 ) /* 64k for code + 3*16k for the banked ROMs images */
+ ROM_LOAD( "a4", 0x00000, 0x8000, CRC(b4ac7928) SHA1(4a525532f634dd9e800dc3dbd1230a5c431f869a) )
+ ROM_LOAD( "a6", 0x10000, 0x8000, CRC(b1c6d40d) SHA1(d150adace829130ebf99b8beeedde0e673124984) )
+ ROM_LOAD( "av_05.12n", 0x18000, 0x8000, CRC(9a214b42) SHA1(e13d47dcf9fa055fef467a10751badffcc3b8734) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_LOAD( "a2", 0x0000, 0x8000, CRC(5e991c96) SHA1(1866f38043f61244b65213544fa5ec5d6d82f96f) )
+
+ ROM_REGION( 0x10000, "adpcm", 0 ) /* ADPCM CPU */
+ ROM_LOAD( "01.6d", 0x0000, 0x8000, CRC(c1e5d258) SHA1(88ed978e6df72ce22f9371930360aa9cde73abe9) ) /* adpcm player - "Talker" ROM */
+
+ ROM_REGION( 0x08000, "gfx1", 0 )
+ ROM_LOAD( "03.8k", 0x00000, 0x8000, CRC(efb5883e) SHA1(08aebf579f2c5ff472db66597cde1c6871d7d757) ) /* characters */
+
+ ROM_REGION( 0x40000, "gfx2", 0 ) /* tiles */
+ ROM_LOAD( "13.6b", 0x00000, 0x8000, CRC(9b5ff305) SHA1(8843c757e040b58efd36299eb3c56d9c51362b20) ) /* plane 1 */
+ ROM_LOAD( "09.6a", 0x08000, 0x8000, CRC(08323355) SHA1(c5778c6835f2801fba0250cea21796ea201642f7) )
+ ROM_LOAD( "12.4b", 0x10000, 0x8000, CRC(6d5261ba) SHA1(667e3b8df871c3052bde7a3c79daa7f70eaa0b8b) ) /* plane 2 */
+ ROM_LOAD( "08.4a", 0x18000, 0x8000, CRC(a13d9f54) SHA1(e1bcb6d12cdfc9ad780f131272d12d9af751f429) )
+ ROM_LOAD( "11.3b", 0x20000, 0x8000, CRC(a2911d8b) SHA1(f51ef7bb8a275fdd92a9a9ad516218d2f8c3e1fb) ) /* plane 3 */
+ ROM_LOAD( "07.3a", 0x28000, 0x8000, CRC(cde78d32) SHA1(8cb69b7a25e935073887628565cb4f9787186ea9) )
+ ROM_LOAD( "14.8b", 0x30000, 0x8000, CRC(44ac2671) SHA1(60baa541debd8aa7d32a512906d0d6c6e9955968) ) /* plane 4 */
+ ROM_LOAD( "10.8a", 0x38000, 0x8000, CRC(b1a717cb) SHA1(2730764ece0e9231955b9c07de537f1f97729599) )
+
+ ROM_REGION( 0x40000, "gfx3", 0 ) /* sprites */
+ ROM_LOAD( "18.7l", 0x00000, 0x8000, CRC(3c876a17) SHA1(1f06b695b78a2e1db151f3c5baa1bb17ccef951e) ) /* planes 0,1 */
+ ROM_LOAD( "16.3l", 0x08000, 0x8000, CRC(4b1ff3ac) SHA1(5166f2a2c9ba2483a4e340d756303cba46b7de88) )
+ ROM_LOAD( "17.5l", 0x10000, 0x8000, CRC(4eb543ef) SHA1(5dfdd2568a50b179e724643880d79f79d831be19) )
+ ROM_LOAD( "15.2l", 0x18000, 0x8000, CRC(8041de7f) SHA1(c301b20edad1981dd20cd6d4f7de703d9dc80b83) )
+ ROM_LOAD( "22.7n", 0x20000, 0x8000, CRC(bdaa8b22) SHA1(9a03d20cc7010f9b7c602db86808d54fdd7e228d) ) /* planes 2,3 */
+ ROM_LOAD( "20.3n", 0x28000, 0x8000, CRC(566e3059) SHA1(cf3e5cfcb5ebbff3f9a8e1da9f7242a7a00fee83) )
+ ROM_LOAD( "21.5n", 0x30000, 0x8000, CRC(301059aa) SHA1(c529ad83d4e4139ce4d4d912c00aef9ece297706) )
+ ROM_LOAD( "19.2n", 0x38000, 0x8000, CRC(a00485ec) SHA1(cc24e7243f55bdfaedeabb7dddf7e1ef32811c45) )
+
+ ROM_REGION( 0x10000, "gfx4", 0 )
+ ROM_LOAD( "av_25.15n", 0x00000, 0x8000, CRC(88a505a7) SHA1(ef4371e082b2370fcbfc96bfef5a94910acd9eff) ) /* planes 0,1 */
+ ROM_LOAD( "av_24.13n", 0x08000, 0x8000, CRC(1f4463c8) SHA1(04cdb0187dcbdd4f5f53e60c856d4925ade8d7df) ) /* planes 2,3 */
+
+ ROM_REGION( 0x08000, "gfx5", 0 )
+ ROM_LOAD( "23.9n", 0x0000, 0x8000, CRC(c0a93ef6) SHA1(2dc9cd4eb142d74aea8d151904cb60a0767c6393) ) /* Tile Map */
+
+ ROM_REGION( 0x0200, "proms", 0 )
+ ROM_LOAD( "tbb_2bpr.7j", 0x0000, 0x0100, CRC(d96bcc98) SHA1(99e69a624d5586e5eedacd2083fa68b36e7b5e40) ) /* timing (not used) */
+ ROM_LOAD( "tbb_1bpr.1e", 0x0100, 0x0100, CRC(5052fa9d) SHA1(8cd240f4795a7ae76499573c09069dba37182be2) ) /* priority (not used) */
+ROM_END
+
+
+DRIVER_INIT_MEMBER(lwings_state, avengersb)
+{
+ /* set up protection handlers */
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xf80c, 0xf80c, write8_delegate(FUNC(lwings_state::soundlatch_byte_w), this));
+}
/*************************************
@@ -1432,20 +1491,21 @@ ROM_END
*
*************************************/
-GAME( 1985, sectionz, 0, lwings, sectionz, driver_device, 0, ROT0, "Capcom", "Section Z (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1985, sectionza, sectionz, lwings, sectionz, driver_device, 0, ROT0, "Capcom", "Section Z (set 2)", GAME_SUPPORTS_SAVE )
+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( 1986, lwings, 0, lwings, lwings, driver_device, 0, ROT90, "Capcom", "Legendary Wings (US set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1986, lwings2, lwings, lwings, lwings, driver_device, 0, ROT90, "Capcom", "Legendary Wings (US set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1986, lwingsj, lwings, lwings, lwings, driver_device, 0, ROT90, "Capcom", "Ares no Tsubasa (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1986, lwingsb, lwings, lwings, lwingsb, driver_device, 0, ROT90, "bootleg", "Legendary Wings (bootleg)", GAME_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, trojan, 0, trojan, trojanls, driver_device, 0, ROT0, "Capcom", "Trojan (US set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1986, trojana, trojan, trojan, trojanls, driver_device, 0, ROT0, "Capcom", "Trojan (US set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1986, trojanr, trojan, trojan, trojan, driver_device, 0, ROT0, "Capcom (Romstar license)", "Trojan (Romstar)", GAME_SUPPORTS_SAVE )
-GAME( 1986, trojanj, trojan, trojan, trojan, driver_device, 0, ROT0, "Capcom", "Tatakai no Banka (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1986, trojanb, trojan, trojan, trojanls, driver_device, 0, ROT0, "bootleg", "Trojan (bootleg)", GAME_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( 1987, avengers, 0, avengers, avengers, driver_device, 0, ROT90, "Capcom", "Avengers (US set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1987, avengers2, avengers, avengers, avengers, driver_device, 0, ROT90, "Capcom", "Avengers (US set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1987, buraiken, avengers, avengers, avengers, driver_device, 0, ROT90, "Capcom", "Hissatsu Buraiken (Japan)", GAME_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, buraikenb, avengers, avengersb,avengers, lwings_state, avengersb, ROT90, "Capcom", "Hissatsu Buraiken (Japan, bootleg?)", MACHINE_SUPPORTS_SAVE ) // unprotected at least
diff --git a/src/mess/drivers/lynx.c b/src/mame/drivers/lynx.c
index ed3bfb4494b..5bde2a0cf15 100644
--- a/src/mess/drivers/lynx.c
+++ b/src/mame/drivers/lynx.c
@@ -195,5 +195,5 @@ 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", GAME_SUPPORTS_SAVE )
-// CONS( 1991, lynx2, lynx, 0, lynx2, lynx, driver_device, 0, "Atari", "Lynx II", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND )
+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 )
diff --git a/src/mame/drivers/m10.c b/src/mame/drivers/m10.c
index 78ca5e6a48d..bbb08433573 100644
--- a/src/mame/drivers/m10.c
+++ b/src/mame/drivers/m10.c
@@ -1041,10 +1041,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?)", GAME_NO_SOUND | GAME_IMPERFECT_COLORS | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1979, ipminvad, 0, m10, ipminvad, driver_device, 0, ROT270, "IPM", "IPM Invader", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE )
-GAME( 1979, ipminvad1, ipminvad, m10, ipminvad, m10_state, ipminva1, ROT270, "IPM", "IPM Invader (Incomplete Dump)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1980, skychut, 0, m11, skychut, driver_device, 0, ROT270, "Irem", "Sky Chuter", GAME_NO_SOUND | GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE )
-GAME( 1979, spacbeam, 0, m15, spacbeam, driver_device, 0, ROT270, "Irem", "Space Beam", GAME_NO_SOUND | GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE ) // IPM or Irem?
-GAME( 1979, headoni, 0, headoni, headoni, driver_device, 0, ROT270, "Irem", "Head On (Irem, M-15 Hardware)", GAME_NO_SOUND | GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE )
-GAME( 1980, greenber, 0, m15, spacbeam, driver_device, 0, ROT270, "Irem", "Green Beret (Irem)", GAME_NO_SOUND | GAME_IMPERFECT_COLORS | GAME_NOT_WORKING | GAME_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, driver_device, 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 )
diff --git a/src/mame/drivers/m107.c b/src/mame/drivers/m107.c
index bc1bd16490b..d857157672b 100644
--- a/src/mame/drivers/m107.c
+++ b/src/mame/drivers/m107.c
@@ -34,12 +34,34 @@ confirmed for m107 games as well.
#include "sound/2151intf.h"
#include "sound/iremga20.h"
-
-#define M107_IRQ_0 ((m_irq_vectorbase+0)/4) /* VBL interrupt */
-#define M107_IRQ_1 ((m_irq_vectorbase+4)/4) /* ??? */
-#define M107_IRQ_2 ((m_irq_vectorbase+8)/4) /* Raster interrupt */
-#define M107_IRQ_3 ((m_irq_vectorbase+12)/4) /* Sound cpu interrupt */
-
+// this is the hacky code from m92.c, but better than per-game irq vector hacks.
+#define USE_HACKED_IRQS
+
+#ifdef USE_HACKED_IRQS
+
+#define M107_TRIGGER_IRQ0 m_maincpu->set_input_line_and_vector(0, HOLD_LINE, m_upd71059c->HACK_get_base_vector()+0 ); /* VBL interrupt */
+#define M107_TRIGGER_IRQ1 m_maincpu->set_input_line_and_vector(0, HOLD_LINE, m_upd71059c->HACK_get_base_vector()+1 ); /* Sprite buffer complete interrupt */
+#define M107_TRIGGER_IRQ2 m_maincpu->set_input_line_and_vector(0, HOLD_LINE, m_upd71059c->HACK_get_base_vector()+2 ); /* Raster interrupt */
+#define M107_TRIGGER_IRQ3 m_maincpu->set_input_line_and_vector(0, HOLD_LINE, m_upd71059c->HACK_get_base_vector()+3 ); /* Sound cpu->Main cpu interrupt */
+// not used due to HOLD LINE logic
+#define M107_CLEAR_IRQ0 ;
+#define M107_CLEAR_IRQ1 ;
+#define M107_CLEAR_IRQ2 ;
+#define M107_CLEAR_IRQ3 ;
+
+#else
+
+#define M107_TRIGGER_IRQ0 m_upd71059c->ir0_w(1);
+#define M107_TRIGGER_IRQ1 m_upd71059c->ir1_w(1);
+#define M107_TRIGGER_IRQ2 m_upd71059c->ir2_w(1);
+#define M107_TRIGGER_IRQ3 m_upd71059c->ir3_w(1);
+// not sure when these should happen, probably the source of our issues
+#define M107_CLEAR_IRQ0 m_upd71059c->ir0_w(0);
+#define M107_CLEAR_IRQ1 m_upd71059c->ir1_w(0);
+#define M107_CLEAR_IRQ2 m_upd71059c->ir2_w(0);
+#define M107_CLEAR_IRQ3 m_upd71059c->ir3_w(0);
+
+#endif
/*****************************************************************************/
@@ -58,17 +80,28 @@ TIMER_DEVICE_CALLBACK_MEMBER(m107_state::scanline_interrupt)
if (scanline == m_raster_irq_position)
{
m_screen->update_partial(scanline);
- m_maincpu->set_input_line_and_vector(0, HOLD_LINE, M107_IRQ_2);
+ M107_TRIGGER_IRQ2
}
-
- /* VBLANK interrupt */
- else if (scanline == m_screen->visible_area().max_y + 1)
+ else
{
- m_screen->update_partial(scanline);
- m_maincpu->set_input_line_and_vector(0, HOLD_LINE, M107_IRQ_0);
+ M107_CLEAR_IRQ2
+
+ /* VBLANK interrupt */
+ if (scanline == m_screen->visible_area().max_y + 1)
+ {
+ m_screen->update_partial(scanline);
+ M107_TRIGGER_IRQ0
+ }
+ else
+ {
+ M107_CLEAR_IRQ0
+ }
+
}
}
+
+
/*****************************************************************************/
WRITE16_MEMBER(m107_state::coincounter_w)
@@ -116,7 +149,7 @@ WRITE16_MEMBER(m107_state::sound_irq_ack_w)
WRITE16_MEMBER(m107_state::sound_status_w)
{
COMBINE_DATA(&m_sound_status);
- m_maincpu->set_input_line_and_vector(0, HOLD_LINE, M107_IRQ_3);
+ M107_TRIGGER_IRQ3
}
WRITE16_MEMBER(m107_state::sound_reset_w)
@@ -145,6 +178,7 @@ static ADDRESS_MAP_START( main_portmap, AS_IO, 16, m107_state )
AM_RANGE(0x00, 0x01) AM_WRITE(soundlatch_w)
AM_RANGE(0x02, 0x03) AM_WRITE(coincounter_w)
AM_RANGE(0x04, 0x05) AM_WRITENOP /* ??? 0008 */
+ AM_RANGE(0x40, 0x43) AM_DEVREADWRITE8("upd71059c", pic8259_device, read, write, 0x00ff)
AM_RANGE(0x80, 0x9f) AM_WRITE(control_w)
AM_RANGE(0xa0, 0xaf) AM_WRITENOP /* Written with 0's in interrupt */
AM_RANGE(0xb0, 0xb1) AM_WRITE(spritebuffer_w)
@@ -761,11 +795,15 @@ static MACHINE_CONFIG_START( firebarr, m107_state )
MCFG_CPU_ADD("maincpu", V33, 28000000/2) /* NEC V33, 28MHz clock */
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_CPU_IO_MAP(main_portmap)
+#ifndef USE_HACKED_IRQS
+ MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("upd71059c", pic8259_device, inta_cb)
+#endif
MCFG_CPU_ADD("soundcpu", V35, 14318000)
MCFG_CPU_PROGRAM_MAP(sound_map)
MCFG_V25_CONFIG(rtypeleo_decryption_table)
+ MCFG_PIC8259_ADD( "upd71059c", INPUTLINE("maincpu", 0), VCC, NULL)
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", m107_state, scanline_interrupt, "screen", 0, 1)
@@ -1017,7 +1055,6 @@ DRIVER_INIT_MEMBER(m107_state,firebarr)
membank("bank1")->set_base(&ROM[0xa0000]);
- m_irq_vectorbase = 0x20;
m_spritesystem = 1;
}
@@ -1028,23 +1065,21 @@ DRIVER_INIT_MEMBER(m107_state,dsoccr94)
membank("bank1")->configure_entries(0, 4, &ROM[0x80000], 0x20000);
m_maincpu->space(AS_IO).install_write_handler(0x06, 0x07, write16_delegate(FUNC(m107_state::bankswitch_w),this));
- m_irq_vectorbase = 0x80;
m_spritesystem = 0;
}
DRIVER_INIT_MEMBER(m107_state,wpksoc)
{
- m_irq_vectorbase = 0x80;
m_spritesystem = 0;
}
/***************************************************************************/
-GAME( 1993, airass, 0, airass, firebarr, m107_state, firebarr, ROT270, "Irem", "Air Assault (World)", GAME_NO_COCKTAIL | GAME_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)", GAME_NO_COCKTAIL | GAME_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)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1994, dsoccr94k, dsoccr94, dsoccr94, dsoccr94, m107_state, dsoccr94, ROT0, "Irem (Data East Corporation license)", "Dream Soccer '94 (Korea, M107 hardware)", GAME_NO_COCKTAIL | GAME_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", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL | GAME_MECHANICAL | GAME_SUPPORTS_SAVE )
-GAME( 1994, kftgoal, wpksoc, wpksoc, wpksoc, m107_state, wpksoc, ROT0, "Jaleco", "Kick for the Goal", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL | GAME_MECHANICAL | GAME_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.c b/src/mame/drivers/m14.c
index 4583c05ba65..2a922f83e54 100644
--- a/src/mame/drivers/m14.c
+++ b/src/mame/drivers/m14.c
@@ -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)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE ) // IPM or Irem?
+GAME( 1979, ptrmj, 0, m14, m14, driver_device, 0, ROT0, "Irem", "PT Reach Mahjong (Japan)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) // IPM or Irem?
diff --git a/src/mess/drivers/m20.c b/src/mame/drivers/m20.c
index e60bb918de4..0d4ebe58531 100644
--- a/src/mess/drivers/m20.c
+++ b/src/mame/drivers/m20.c
@@ -812,6 +812,9 @@ static MACHINE_CONFIG_START( m20, m20_state )
MCFG_I8251_RXRDY_HANDLER(DEVWRITELINE("i8259", pic8259_device, ir4_w))
MCFG_DEVICE_ADD("i8251_2", I8251, 0)
+ MCFG_I8251_TXD_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_txd))
+ MCFG_I8251_RXRDY_HANDLER(DEVWRITELINE("i8259", pic8259_device, ir3_w))
+ MCFG_I8251_TXRDY_HANDLER(DEVWRITELINE("i8259", pic8259_device, ir5_w))
MCFG_DEVICE_ADD("pit8253", PIT8253, 0)
MCFG_PIT8253_CLK0(1230782)
@@ -826,6 +829,9 @@ static MACHINE_CONFIG_START( m20, m20_state )
MCFG_RS232_PORT_ADD("kbd", keyboard, "m20")
MCFG_RS232_RXD_HANDLER(DEVWRITELINE("i8251_1", i8251_device, write_rxd))
+ MCFG_RS232_PORT_ADD("rs232", default_rs232_devices, NULL)
+ MCFG_RS232_RXD_HANDLER(DEVWRITELINE("i8251_2", i8251_device, write_rxd))
+
MCFG_DEVICE_ADD("apb", M20_8086, 0)
MCFG_SOFTWARE_LIST_ADD("flop_list","m20")
@@ -856,5 +862,5 @@ ROM_START(m40)
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", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 1981, m40, m20, 0, m20, 0, driver_device, 0, "Olivetti", "Olivetti L1 M40", GAME_NOT_WORKING | GAME_NO_SOUND)
+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)
diff --git a/src/mess/drivers/m24.c b/src/mame/drivers/m24.c
index 3a26ab4f5bf..c9504ef6eec 100644
--- a/src/mess/drivers/m24.c
+++ b/src/mame/drivers/m24.c
@@ -308,5 +308,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", GAME_NOT_WORKING)
-COMP( 1987, m240, ibm5150, 0, olivetti, m24, driver_device, 0, "Olivetti", "M240", GAME_NOT_WORKING)
+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)
diff --git a/src/mess/drivers/m5.c b/src/mame/drivers/m5.c
index 9912827631d..9912827631d 100644
--- a/src/mess/drivers/m5.c
+++ b/src/mame/drivers/m5.c
diff --git a/src/mame/drivers/m52.c b/src/mame/drivers/m52.c
index 9bac80fb154..591b93ef99d 100644
--- a/src/mame/drivers/m52.c
+++ b/src/mame/drivers/m52.c
@@ -411,7 +411,9 @@ static MACHINE_CONFIG_START( m52, m52_state )
MCFG_SCREEN_PALETTE("palette")
/* sound hardware */
- MCFG_FRAGMENT_ADD(m52_sound_c_audio)
+ //MCFG_FRAGMENT_ADD(m52_sound_c_audio)
+ MCFG_DEVICE_ADD("irem_audio", IREM_M52_SOUNDC_AUDIO, 0)
+
MACHINE_CONFIG_END
@@ -437,7 +439,7 @@ ROM_START( mpatrol )
ROM_LOAD( "mpa-3.3k", 0x2000, 0x1000, CRC(2e1a598c) SHA1(112c3c9678db8a8540a8df3708020c87fd10c91b) )
ROM_LOAD( "mpa-4.3j", 0x3000, 0x1000, CRC(dd05b587) SHA1(727961b0dafa4a96b580d51013336db2a18aff1e) )
- ROM_REGION( 0x8000, "iremsound", 0 )
+ ROM_REGION( 0x8000, "irem_audio:iremsound", 0 )
ROM_LOAD( "mp-s1.1a", 0x7000, 0x1000, CRC(561d3108) SHA1(4998c68a9e9a8002251fa8f07aa1082444a9dc80) )
ROM_REGION( 0x2000, "gfx1", 0 )
@@ -471,7 +473,7 @@ ROM_START( mpatrolw )
ROM_LOAD( "mpa-3w.3k", 0x2000, 0x1000, CRC(9b249fe5) SHA1(c01e0d572c4c163f3cf4b2aa9f4246427811b78d) )
ROM_LOAD( "mpa-4w.3j", 0x3000, 0x1000, CRC(fee76972) SHA1(c3166b027f89f61964ead804d3c2da387454c4c2) )
- ROM_REGION( 0x8000, "iremsound", 0 )
+ ROM_REGION( 0x8000, "irem_audio:iremsound", 0 )
ROM_LOAD( "mp-s1.1a", 0x7000, 0x1000, CRC(561d3108) SHA1(4998c68a9e9a8002251fa8f07aa1082444a9dc80) )
ROM_REGION( 0x2000, "gfx1", 0 )
@@ -505,7 +507,7 @@ ROM_START( mranger )
ROM_LOAD( "mra-3.3k", 0x2000, 0x1000, CRC(9f0af7b2) SHA1(3daaec15b0d3bc30723ebb14b50f66f288f0d096) )
ROM_LOAD( "mra-4.3j", 0x3000, 0x1000, CRC(7fe8e2cd) SHA1(4ffad9c7a9360999b213b790c6c76cc79c8e49d5) )
- ROM_REGION( 0x8000, "iremsound", 0 )
+ ROM_REGION( 0x8000, "irem_audio:iremsound", 0 )
ROM_LOAD( "mp-s1.1a", 0x7000, 0x1000, CRC(561d3108) SHA1(4998c68a9e9a8002251fa8f07aa1082444a9dc80) )
ROM_REGION( 0x2000, "gfx1", 0 )
@@ -543,7 +545,7 @@ ROM_START( alpha1v )
ROM_LOAD( "7-f3", 0x5000, 0x1000, CRC(99db9781) SHA1(a56a675cc4cbc9681bfe8052f51f19336eb2a0a6) )
ROM_LOAD( "7a e3", 0x6000, 0x1000, CRC(3b0b4b0d) SHA1(0d8eea1e2db269943611289b3490a578ee347f85) )
- ROM_REGION( 0x8000, "iremsound", 0 )
+ ROM_REGION( 0x8000, "irem_audio:iremsound", 0 )
ROM_LOAD( "1-a1", 0x7000, 0x1000, CRC(9e07fdd5) SHA1(ed4f462fcfe91fa8e88bfeaaba0a0c11fa0b4601) )
ROM_REGION( 0x2000, "gfx1", 0 )
@@ -581,7 +583,7 @@ ROM_END
*
*************************************/
-GAME( 1982, mpatrol, 0, m52, mpatrol, driver_device, 0, ROT0, "Irem", "Moon Patrol", GAME_SUPPORTS_SAVE )
-GAME( 1982, mpatrolw, mpatrol, m52, mpatrolw, driver_device, 0, ROT0, "Irem (Williams license)", "Moon Patrol (Williams)", GAME_SUPPORTS_SAVE ) // USA
-GAME( 1982, mranger, mpatrol, m52, mpatrol, driver_device, 0, ROT0, "bootleg", "Moon Ranger (bootleg of Moon Patrol)", GAME_SUPPORTS_SAVE ) // Italy
-GAME( 1988, alpha1v, 0, alpha1v, alpha1v, driver_device, 0, ROT0, "Vision Electronics", "Alpha One (Vision Electronics)", GAME_NOT_WORKING| GAME_NO_SOUND| GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/m57.c b/src/mame/drivers/m57.c
index 10213ff93bb..1b039cfe035 100644
--- a/src/mame/drivers/m57.c
+++ b/src/mame/drivers/m57.c
@@ -249,7 +249,9 @@ static MACHINE_CONFIG_START( m57, m57_state )
MCFG_PALETTE_INIT_OWNER(m57_state, m57)
/* sound hardware */
- MCFG_FRAGMENT_ADD(m52_sound_c_audio)
+ //MCFG_FRAGMENT_ADD(m52_sound_c_audio)
+ MCFG_DEVICE_ADD("irem_audio", IREM_M52_SOUNDC_AUDIO, 0)
+
MACHINE_CONFIG_END
@@ -267,7 +269,7 @@ ROM_START( troangel )
ROM_LOAD( "ta-a-3n", 0x4000, 0x2000, CRC(de3dea44) SHA1(1290755ffc04dc3b3667e063118669a0eab6fb79) )
ROM_LOAD( "ta-a-3q", 0x6000, 0x2000, CRC(fff0fc2a) SHA1(82f3f5a8817e956192323eb555daa85b7766676d) )
- ROM_REGION( 0x8000 , "iremsound", 0 ) /* sound CPU */
+ ROM_REGION( 0x8000 , "irem_audio:iremsound", 0 ) /* sound CPU */
ROM_LOAD( "ta-s-1a", 0x6000, 0x2000, CRC(15a83210) SHA1(8ada510db689ffa372b2f4dc4bd1b1c69a0c5307) )
ROM_REGION( 0x06000, "gfx1", 0 )
@@ -297,7 +299,7 @@ ROM_START( newtangl ) /* Offical "upgrade" or hack? */
ROM_LOAD( "3n", 0x4000, 0x2000, CRC(17b5a775) SHA1(d85c3371080bea82f19ac96fa0f1b332e1c86e27) )
ROM_LOAD( "3q", 0x6000, 0x2000, CRC(2e5fa773) SHA1(9a34fa43bde021fc7b00d8c3762c248e7b96dbf1) )
- ROM_REGION( 0x8000 , "iremsound", 0 ) /* sound CPU */
+ ROM_REGION( 0x8000 , "irem_audio:iremsound", 0 ) /* sound CPU */
ROM_LOAD( "ta-s-1a-", 0x6000, 0x2000, CRC(ea8a05cb) SHA1(5683e4dca93066ee788287ab73a766fa303ebe84) )
ROM_REGION( 0x06000, "gfx1", 0 )
@@ -328,5 +330,5 @@ ROM_END
*
*************************************/
-GAME( 1983, troangel, 0, m57, troangel, driver_device, 0, ROT0, "Irem", "Tropical Angel", GAME_SUPPORTS_SAVE )
-GAME( 1983, newtangl, troangel, m57, troangel, driver_device, 0, ROT0, "Irem", "New Tropical Angel", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/m58.c b/src/mame/drivers/m58.c
index f82aef0c0be..334cb77be25 100644
--- a/src/mame/drivers/m58.c
+++ b/src/mame/drivers/m58.c
@@ -209,7 +209,8 @@ static MACHINE_CONFIG_START( yard, m58_state )
MCFG_SCREEN_PALETTE("palette")
/* sound hardware */
- MCFG_FRAGMENT_ADD(m52_large_audio)
+ MCFG_DEVICE_ADD("irem_audio", IREM_M52_LARGE_AUDIO, 0)
+
MACHINE_CONFIG_END
@@ -227,7 +228,7 @@ ROM_START( 10yard )
ROM_LOAD( "yf-a-3n-b", 0x2000, 0x2000, CRC(82fcd980) SHA1(7846705b29961cb95ee1571ee7e16baceea522d4) )
ROM_LOAD( "yf-a-3m-b", 0x4000, 0x2000, CRC(a8d5c311) SHA1(28edb5cfd943a2262d7e37ef9a7245f7017cbc51) )
- ROM_REGION( 0x10000, "iremsound", 0 )
+ ROM_REGION( 0x10000, "irem_audio:iremsound", 0 )
ROM_LOAD( "yf-s.3b", 0x8000, 0x2000, CRC(0392a60c) SHA1(68030504eafc58db250099edd3c3323bdb9eff6b) )
ROM_LOAD( "yf-s.1b", 0xa000, 0x2000, CRC(6588f41a) SHA1(209305efc68171886427216b9a0b37333f40daa8) )
ROM_LOAD( "yf-s.3a", 0xc000, 0x2000, CRC(bd054e44) SHA1(f10c32c70d60680229fc0891d0e1308015fa69d6) )
@@ -261,7 +262,7 @@ ROM_START( 10yardj )
ROM_LOAD( "yf-a.3n", 0x2000, 0x2000, CRC(947fa760) SHA1(bd6c2ee6e6800b063b81dbdd9fc929120019439d) )
ROM_LOAD( "yf-a.3m", 0x4000, 0x2000, CRC(d4975633) SHA1(84a506ae680a9dd26ef6f33880400e965ccf8260) )
- ROM_REGION( 0x10000, "iremsound", 0 )
+ ROM_REGION( 0x10000, "irem_audio:iremsound", 0 )
ROM_LOAD( "yf-s.3b", 0x8000, 0x2000, CRC(0392a60c) SHA1(68030504eafc58db250099edd3c3323bdb9eff6b) )
ROM_LOAD( "yf-s.1b", 0xa000, 0x2000, CRC(6588f41a) SHA1(209305efc68171886427216b9a0b37333f40daa8) )
ROM_LOAD( "yf-s.3a", 0xc000, 0x2000, CRC(bd054e44) SHA1(f10c32c70d60680229fc0891d0e1308015fa69d6) )
@@ -295,7 +296,7 @@ ROM_START( vs10yard )
ROM_LOAD( "vyf-a.3m", 0x2000, 0x2000, CRC(3b9330f8) SHA1(b35fe72cf724cfb887906060bbcf40b0c896ccf0) )
ROM_LOAD( "a.3m", 0x4000, 0x2000, CRC(cf783dad) SHA1(0b1b875ac65ba90c92ca06d0aa01c477b7427322) )
- ROM_REGION( 0x10000, "iremsound", 0 )
+ ROM_REGION( 0x10000, "irem_audio:iremsound", 0 )
ROM_LOAD( "yf-s.3b", 0x8000, 0x2000, CRC(0392a60c) SHA1(68030504eafc58db250099edd3c3323bdb9eff6b) )
ROM_LOAD( "yf-s.1b", 0xa000, 0x2000, CRC(6588f41a) SHA1(209305efc68171886427216b9a0b37333f40daa8) )
ROM_LOAD( "yf-s.3a", 0xc000, 0x2000, CRC(bd054e44) SHA1(f10c32c70d60680229fc0891d0e1308015fa69d6) )
@@ -329,7 +330,7 @@ ROM_START( vs10yardj )
ROM_LOAD( "vyf-a.3m", 0x2000, 0x2000, CRC(3b9330f8) SHA1(b35fe72cf724cfb887906060bbcf40b0c896ccf0) )
ROM_LOAD( "vyf-a.3k", 0x4000, 0x2000, CRC(a0ec15bb) SHA1(a5ce9341e9d05e33c025ac62a27faf738c88326e) )
- ROM_REGION( 0x10000, "iremsound", 0 )
+ ROM_REGION( 0x10000, "irem_audio:iremsound", 0 )
ROM_LOAD( "yf-s.3b", 0x8000, 0x2000, CRC(0392a60c) SHA1(68030504eafc58db250099edd3c3323bdb9eff6b) )
ROM_LOAD( "yf-s.1b", 0xa000, 0x2000, CRC(6588f41a) SHA1(209305efc68171886427216b9a0b37333f40daa8) )
ROM_LOAD( "yf-s.3a", 0xc000, 0x2000, CRC(bd054e44) SHA1(f10c32c70d60680229fc0891d0e1308015fa69d6) )
@@ -363,7 +364,7 @@ ROM_START( vs10yardu )
ROM_LOAD( "yf-a-3n-h-vs.3n", 0x2000, 0x2000, CRC(a14d7a14) SHA1(1b900ed276dd2d918f82613399416cf399362405) )
ROM_LOAD( "yf-a-3m-h-vs.3m", 0x4000, 0x2000, CRC(dc4bb0ce) SHA1(9d9c960744720ffeddc7c9f1db4981fb6a0006d7) )
- ROM_REGION( 0x10000, "iremsound", 0 )
+ ROM_REGION( 0x10000, "irem_audio:iremsound", 0 )
ROM_LOAD( "yf-s-3b.3b", 0x8000, 0x2000, CRC(0392a60c) SHA1(68030504eafc58db250099edd3c3323bdb9eff6b) )
ROM_LOAD( "yf-s-1b.1b", 0xa000, 0x2000, CRC(6588f41a) SHA1(209305efc68171886427216b9a0b37333f40daa8) )
ROM_LOAD( "yf-s-3a.3a", 0xc000, 0x2000, CRC(bd054e44) SHA1(f10c32c70d60680229fc0891d0e1308015fa69d6) )
@@ -397,7 +398,7 @@ ROM_START( 10yard85 )
ROM_LOAD( "yf-a-3n-h.3n", 0x2000, 0x2000, CRC(8dc5f32f) SHA1(f550ed326711d1103711b99777f302f0d48e8eaf) )
ROM_LOAD( "yf-a-3m-h.3m", 0x4000, 0x2000, CRC(7d5d0c20) SHA1(38ada7a53881f7f812b02514d13fbf0fa013c0f1) )
- ROM_REGION( 0x10000, "iremsound", 0 )
+ ROM_REGION( 0x10000, "irem_audio:iremsound", 0 )
ROM_LOAD( "yf-s-3b.3b", 0x8000, 0x2000, CRC(0392a60c) SHA1(68030504eafc58db250099edd3c3323bdb9eff6b) )
ROM_LOAD( "yf-s-1b.1b", 0xa000, 0x2000, CRC(6588f41a) SHA1(209305efc68171886427216b9a0b37333f40daa8) )
ROM_LOAD( "yf-s-3a.3a", 0xc000, 0x2000, CRC(bd054e44) SHA1(f10c32c70d60680229fc0891d0e1308015fa69d6) )
@@ -447,9 +448,9 @@ DRIVER_INIT_MEMBER(m58_state,yard85)
m_palette->update();
}
-GAME( 1983, 10yard, 0, yard, yard, driver_device, 0, ROT0, "Irem", "10-Yard Fight (World, set 1)", GAME_SUPPORTS_SAVE ) // no copyright
-GAME( 1983, 10yardj, 10yard, yard, yard, driver_device, 0, ROT0, "Irem", "10-Yard Fight (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1984, vs10yard, 10yard, yard, vs10yard, driver_device, 0, ROT0, "Irem", "Vs 10-Yard Fight (World, 11/05/84)", GAME_SUPPORTS_SAVE )
-GAME( 1984, vs10yardj,10yard, yard, vs10yarj, driver_device, 0, ROT0, "Irem", "Vs 10-Yard Fight (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1984, vs10yardu,10yard, yard, vs10yard, m58_state, yard85, ROT0, "Irem (Taito license)", "Vs 10-Yard Fight (US, Taito license)", GAME_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, yard85, ROT0, "Irem (Taito license)", "10-Yard Fight '85 (US, Taito license)", GAME_SUPPORTS_SAVE )
+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, m58_state, yard85, 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, yard85, ROT0, "Irem (Taito license)", "10-Yard Fight '85 (US, Taito license)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/m62.c b/src/mame/drivers/m62.c
index e94b189791d..25c0fce3020 100644
--- a/src/mame/drivers/m62.c
+++ b/src/mame/drivers/m62.c
@@ -953,7 +953,9 @@ static MACHINE_CONFIG_START( ldrun, m62_state )
MCFG_PALETTE_INIT_OWNER(m62_state,m62)
/* sound hardware */
- MCFG_FRAGMENT_ADD(m62_audio)
+ //MCFG_FRAGMENT_ADD(m62_audio)
+ MCFG_DEVICE_ADD("irem_audio", IREM_M62_AUDIO, 0)
+
MACHINE_CONFIG_END
@@ -1150,7 +1152,7 @@ ROM_START( kungfum )
ROM_LOAD( "a-4e-c.bin", 0x0000, 0x4000, CRC(b6e2d083) SHA1(17e2cfe2b9d6121239803aba7132918e54ae02bf) )
ROM_LOAD( "a-4d-c.bin", 0x4000, 0x4000, CRC(7532918e) SHA1(9d513d5a3b99cc54c4491371cd44af048ef0fb33) )
- ROM_REGION( 0x10000, "iremsound", 0 ) /* 64k for the audio CPU (6803) */
+ ROM_REGION( 0x10000, "irem_audio:iremsound", 0 ) /* 64k for the audio CPU (6803) */
ROM_LOAD( "a-3e-.bin", 0xa000, 0x2000, CRC(58e87ab0) SHA1(3b03c101fec58eac13fc309a78df9a2cd44f7604) ) /* samples (ADPCM 4-bit) */
ROM_LOAD( "a-3f-.bin", 0xc000, 0x2000, CRC(c81e31ea) SHA1(f0fc58b929188c8802cd85549bdf9f4566e6a677) ) /* samples (ADPCM 4-bit) */
ROM_LOAD( "a-3h-.bin", 0xe000, 0x2000, CRC(d99fb995) SHA1(caa6acdbc3b02d248fd123be95ea6fdcb4f35b59) )
@@ -1191,7 +1193,7 @@ ROM_START( kungfumd )
ROM_LOAD( "snx_a-4e-d", 0x0000, 0x4000, CRC(fc330a46) SHA1(50edbd6131310afa17d476e278a7098ab1cfae73) )
ROM_LOAD( "snx_a-4d-d", 0x4000, 0x4000, CRC(1b2fd32f) SHA1(34487dacf2ec9fbf55148953a9f248fae9442568) )
- ROM_REGION( 0x10000, "iremsound", 0 ) /* 64k for the audio CPU (6803) */
+ ROM_REGION( 0x10000, "irem_audio:iremsound", 0 ) /* 64k for the audio CPU (6803) */
ROM_LOAD( "snx_a-3d-b", 0x8000, 0x4000, CRC(85ca7956) SHA1(f97f744520770766cf9633c8762013d77b0e7a61) ) /* samples (ADPCM 4-bit) */
ROM_LOAD( "snx_a-3f-b", 0xc000, 0x4000, CRC(3ef1100a) SHA1(901c40477b4c6fbc984446fa7171006d67b48652) ) /* samples (ADPCM 4-bit) */
@@ -1225,7 +1227,7 @@ ROM_START( spartanx )
ROM_LOAD( "a-4e-c-j.bin", 0x0000, 0x4000, CRC(32a0a9a6) SHA1(fbb601a4c98a131013ea49a6877f2cd8139434fa) )
ROM_LOAD( "a-4d-c-j.bin", 0x4000, 0x4000, CRC(3173ea78) SHA1(cb6102abf9cf8df531f6e808b59e076831456ff5) )
- ROM_REGION( 0x10000, "iremsound", 0 ) /* 64k for the audio CPU (6803) */
+ ROM_REGION( 0x10000, "irem_audio:iremsound", 0 ) /* 64k for the audio CPU (6803) */
ROM_LOAD( "a-3e-.bin", 0xa000, 0x2000, CRC(58e87ab0) SHA1(3b03c101fec58eac13fc309a78df9a2cd44f7604) ) /* samples (ADPCM 4-bit) */
ROM_LOAD( "a-3f-.bin", 0xc000, 0x2000, CRC(c81e31ea) SHA1(f0fc58b929188c8802cd85549bdf9f4566e6a677) ) /* samples (ADPCM 4-bit) */
ROM_LOAD( "a-3h-.bin", 0xe000, 0x2000, CRC(d99fb995) SHA1(caa6acdbc3b02d248fd123be95ea6fdcb4f35b59) )
@@ -1266,7 +1268,7 @@ ROM_START( kungfub )
ROM_LOAD( "c5.5h", 0x0000, 0x4000, CRC(5d8e791d) SHA1(90cd911f715a50a90427abd89b38272a6df08d69) )
ROM_LOAD( "c4.5k", 0x4000, 0x4000, CRC(4000e2b8) SHA1(719b0aa1fd0cbe671178ac728d76d439bd7932d9) )
- ROM_REGION( 0x10000, "iremsound", 0 ) /* 64k for the audio CPU (6803) */
+ ROM_REGION( 0x10000, "irem_audio:iremsound", 0 ) /* 64k for the audio CPU (6803) */
ROM_LOAD( "a-3e-.bin", 0xa000, 0x2000, CRC(58e87ab0) SHA1(3b03c101fec58eac13fc309a78df9a2cd44f7604) ) /* samples (ADPCM 4-bit) */
ROM_LOAD( "a-3f-.bin", 0xc000, 0x2000, CRC(c81e31ea) SHA1(f0fc58b929188c8802cd85549bdf9f4566e6a677) ) /* samples (ADPCM 4-bit) */
ROM_LOAD( "a-3h-.bin", 0xe000, 0x2000, CRC(d99fb995) SHA1(caa6acdbc3b02d248fd123be95ea6fdcb4f35b59) )
@@ -1324,7 +1326,7 @@ ROM_START( kungfub2 )
ROM_LOAD( "kf4", 0x0000, 0x4000, CRC(3f65313f) SHA1(bd584896f558440a0f7bf8e1ca49bf478fe77553) )
ROM_LOAD( "kf5", 0x4000, 0x4000, CRC(9ea325f3) SHA1(7c35128a3e70e5994a5e17db656dec1a53c1fe67) )
- ROM_REGION( 0x10000, "iremsound", 0 ) /* 64k for the audio CPU (6803) */
+ ROM_REGION( 0x10000, "irem_audio:iremsound", 0 ) /* 64k for the audio CPU (6803) */
ROM_LOAD( "a-3e-.bin", 0xa000, 0x2000, CRC(58e87ab0) SHA1(3b03c101fec58eac13fc309a78df9a2cd44f7604) ) /* samples (ADPCM 4-bit) */
ROM_LOAD( "a-3f-.bin", 0xc000, 0x2000, CRC(c81e31ea) SHA1(f0fc58b929188c8802cd85549bdf9f4566e6a677) ) /* samples (ADPCM 4-bit) */
ROM_LOAD( "a-3h-.bin", 0xe000, 0x2000, CRC(d99fb995) SHA1(caa6acdbc3b02d248fd123be95ea6fdcb4f35b59) )
@@ -1373,7 +1375,7 @@ ROM_START( battroad )
ROM_LOAD( "br-c-7a", 0x18000, 0x2000, CRC(ec3b0080) SHA1(83dc0d0c4ecf2ff62cfb213c02a3869c6f72f2e9) )
ROM_LOAD( "br-c-7k", 0x1c000, 0x2000, CRC(edc75f7f) SHA1(3650521874c85a7cf403ede2588b989ac93fb92e) )
- ROM_REGION( 0x10000, "iremsound", 0 ) /* 64k for the audio CPU (6803) */
+ ROM_REGION( 0x10000, "irem_audio:iremsound", 0 ) /* 64k for the audio CPU (6803) */
ROM_LOAD( "br-a-3e", 0xa000, 0x2000, CRC(a7140871) SHA1(bf993e8ed776974ae59e1995eb5d3055c632eda7) )
ROM_LOAD( "br-a-3f", 0xc000, 0x2000, CRC(1bb51b30) SHA1(c8e99d79e2fdb6b02c57cba475be0e5e35359124) )
ROM_LOAD( "br-a-3h", 0xe000, 0x2000, CRC(afb3e083) SHA1(b1aaca64bbcce73203e55d2f16be3f3cef46f39b) )
@@ -1415,7 +1417,7 @@ ROM_START( ldrun )
ROM_LOAD( "lr-a-4b", 0x4000, 0x2000, CRC(b041c4a9) SHA1(77768b03ea2497e25c3e47b68a0eb2fe3e9aea35) )
ROM_LOAD( "lr-a-4a", 0x6000, 0x2000, CRC(645e42aa) SHA1(c806ffce7ece418bad86854c987f78c70c13e492) )
- ROM_REGION( 0x10000, "iremsound", 0 ) /* 64k for the audio CPU (6803) */
+ ROM_REGION( 0x10000, "irem_audio:iremsound", 0 ) /* 64k for the audio CPU (6803) */
ROM_LOAD( "lr-a-3f", 0xc000, 0x2000, CRC(7a96accd) SHA1(e94815dbfaabbb562df8f3298060aa6bd7825904) )
ROM_LOAD( "lr-a-3h", 0xe000, 0x2000, CRC(3f7f3939) SHA1(7ee25a21e74995bfb36ac11b45d384b33a6d8515) )
@@ -1448,7 +1450,7 @@ ROM_START( ldruna )
ROM_LOAD( "roma4b", 0x4000, 0x2000, CRC(3c464bad) SHA1(df34a9ec2f29f8d2a2ef1a2fc065ba7541ea4178) )
ROM_LOAD( "roma4a", 0x6000, 0x2000, CRC(899df8e0) SHA1(e80154dccd04e2928124591f16e088de3554995b) )
- ROM_REGION( 0x10000, "iremsound", 0 ) /* 64k for the audio CPU (6803) */
+ ROM_REGION( 0x10000, "irem_audio:iremsound", 0 ) /* 64k for the audio CPU (6803) */
ROM_LOAD( "lr-a-3f", 0xc000, 0x2000, CRC(7a96accd) SHA1(e94815dbfaabbb562df8f3298060aa6bd7825904) )
ROM_LOAD( "lr-a-3h", 0xe000, 0x2000, CRC(3f7f3939) SHA1(7ee25a21e74995bfb36ac11b45d384b33a6d8515) )
@@ -1483,7 +1485,7 @@ ROM_START( ldrun2 )
ROM_LOAD( "lr2-h-1c.a", 0x10000, 0x2000, CRC(7ebcadbc) SHA1(ff8377cb1f349f2957280b6a633e596740a489be) ) /* banked at 8000-9fff */
ROM_LOAD( "lr2-h-1d.a", 0x12000, 0x2000, CRC(64cbb7f9) SHA1(897d53c3892e636734f5a380c67c41c0d810955e) ) /* banked at 8000-9fff */
- ROM_REGION( 0x10000, "iremsound", 0 ) /* 64k for the audio CPU (6803) */
+ ROM_REGION( 0x10000, "irem_audio:iremsound", 0 ) /* 64k for the audio CPU (6803) */
ROM_LOAD( "lr2-a-3e", 0xa000, 0x2000, CRC(853f3898) SHA1(12ade2f6f10c85c6a2c380dd0727aad64b317d56) )
ROM_LOAD( "lr2-a-3f", 0xc000, 0x2000, CRC(7a96accd) SHA1(e94815dbfaabbb562df8f3298060aa6bd7825904) )
ROM_LOAD( "lr2-a-3h", 0xe000, 0x2000, CRC(2a0e83ca) SHA1(207bfb3912e7a9caa61b742fc3357154a0189434) )
@@ -1519,7 +1521,7 @@ ROM_START( ldrun3 )
ROM_LOAD( "lr3a4db.bin", 0x4000, 0x4000, CRC(23a02178) SHA1(0560b92dfc9b57d01abb62a7b270beb27fa42040) )
ROM_LOAD( "lr3a4bb.bin", 0x8000, 0x4000, CRC(3d501a1a) SHA1(a92ff743eb21145154fa717ee9e6ede4da458aa9) )
- ROM_REGION( 0x10000, "iremsound", 0 ) /* 64k for the audio CPU (6803) */
+ ROM_REGION( 0x10000, "irem_audio:iremsound", 0 ) /* 64k for the audio CPU (6803) */
ROM_LOAD( "lr3-a-3d", 0x8000, 0x4000, CRC(28be68cd) SHA1(1e48cdf649bc861066fbef0293466091092045f3) )
ROM_LOAD( "lr3-a-3f", 0xc000, 0x4000, CRC(cb7186b7) SHA1(cc99821f3f1523523598e4b7d68b95eee6c84e69) )
@@ -1555,7 +1557,7 @@ ROM_START( ldrun3j )
ROM_LOAD( "lr3-a-4d.a", 0x4000, 0x4000, CRC(a84bc931) SHA1(0348d238a85a059a6423794910adec4462e14f27) )
ROM_LOAD( "lr3-a-4b.a", 0x8000, 0x4000, CRC(be09031d) SHA1(c124163895d295969b66386fee91c89bbd8b8774) )
- ROM_REGION( 0x10000, "iremsound", 0 ) /* 64k for the audio CPU (6803) */
+ ROM_REGION( 0x10000, "irem_audio:iremsound", 0 ) /* 64k for the audio CPU (6803) */
ROM_LOAD( "lr3-a-3d", 0x8000, 0x4000, CRC(28be68cd) SHA1(1e48cdf649bc861066fbef0293466091092045f3) )
ROM_LOAD( "lr3-a-3f", 0xc000, 0x4000, CRC(cb7186b7) SHA1(cc99821f3f1523523598e4b7d68b95eee6c84e69) )
@@ -1588,7 +1590,7 @@ ROM_START( ldrun4 )
ROM_LOAD( "lr4-a-4d.c", 0x04000, 0x4000, CRC(298afa36) SHA1(077b5fa8a246059801232c5287225e3bb7507345) )
ROM_LOAD( "lr4-v-4k", 0x10000, 0x8000, CRC(8b248abd) SHA1(3e755c8f8011d6f878a1777a2c22b2156ef926e6) ) /* banked at 8000-bfff */
- ROM_REGION( 0x10000, "iremsound", 0 ) /* 64k for the audio CPU (6803) */
+ ROM_REGION( 0x10000, "irem_audio:iremsound", 0 ) /* 64k for the audio CPU (6803) */
ROM_LOAD( "lr4-a-3d", 0x8000, 0x4000, CRC(86c6d445) SHA1(644b86fba745a5be545c4dd9c534157af75492b8) )
ROM_LOAD( "lr4-a-3f", 0xc000, 0x4000, CRC(097c6c0a) SHA1(627ccdd1d77ae78db9660b51484d2a9110d035e5) )
@@ -1623,7 +1625,7 @@ ROM_START( lotlot )
ROM_LOAD( "lot-a-4e", 0x0000, 0x4000, CRC(2913d08f) SHA1(829115333825a9483322a910efee9ee470d85a0e) )
ROM_LOAD( "lot-a-4d", 0x4000, 0x4000, CRC(0443095f) SHA1(2c3ca107b54519632513a75b80a1a7d8b971f2b1) )
- ROM_REGION( 0x10000, "iremsound", 0 ) /* 64k for the audio CPU (6803) */
+ ROM_REGION( 0x10000, "irem_audio:iremsound", 0 ) /* 64k for the audio CPU (6803) */
ROM_LOAD( "lot-a-3h", 0xe000, 0x2000, CRC(0781cee7) SHA1(bff8592f96b43af6554f1a04e0c00f45b178cce6) )
ROM_REGION( 0x6000, "gfx1", 0 )
@@ -1666,7 +1668,7 @@ ROM_START( kidniki )
ROM_LOAD( "dr12.8l", 0x18000, 0x08000, CRC(c0b255fd) SHA1(bdd74239a3490eb35cb736cac6f5030bec4b2392) )
ROM_CONTINUE( 0x28000, 0x08000 )
- ROM_REGION( 0x10000, "iremsound", 0 ) /* sound CPU */
+ ROM_REGION( 0x10000, "irem_audio:iremsound", 0 ) /* sound CPU */
ROM_LOAD( "dr00.3a", 0x4000, 0x04000, CRC(458309f7) SHA1(7dfd77e0cd76a4b6f913eb434ac20ef5a172e2f0) )
ROM_LOAD( "dr01.3cd", 0x8000, 0x04000, CRC(e66897bd) SHA1(04ea4a857a94d4e884fb28623ec6195dae701e25) )
ROM_LOAD( "dr02.3f", 0xc000, 0x04000, CRC(f9e31e26) SHA1(712b1bde4b3c18c9ac26d58ade48316af004e733) ) /* 6803 code */
@@ -1716,7 +1718,7 @@ ROM_START( kidnikiu )
ROM_LOAD( "dr12.8l", 0x18000, 0x08000, CRC(c0b255fd) SHA1(bdd74239a3490eb35cb736cac6f5030bec4b2392) )
ROM_CONTINUE( 0x28000, 0x08000 )
- ROM_REGION( 0x10000, "iremsound", 0 ) /* sound CPU */
+ ROM_REGION( 0x10000, "irem_audio:iremsound", 0 ) /* sound CPU */
ROM_LOAD( "dr00.3a", 0x4000, 0x04000, CRC(458309f7) SHA1(7dfd77e0cd76a4b6f913eb434ac20ef5a172e2f0) )
ROM_LOAD( "dr01.3cd", 0x8000, 0x04000, CRC(e66897bd) SHA1(04ea4a857a94d4e884fb28623ec6195dae701e25) )
ROM_LOAD( "dr02.3f", 0xc000, 0x04000, CRC(f9e31e26) SHA1(712b1bde4b3c18c9ac26d58ade48316af004e733) ) /* 6803 code */
@@ -1767,7 +1769,7 @@ ROM_START( yanchamr )
ROM_LOAD( "ky_t-8l-.bin", 0x18000, 0x08000, CRC(a929110b) SHA1(87334f946e14c79426bc7a14e8da984bb8ef9cfc) )
/* ROM_CONTINUE( 0x28000, 0x08000 ) */
- ROM_REGION( 0x10000, "iremsound", 0 ) /* sound CPU */
+ ROM_REGION( 0x10000, "irem_audio:iremsound", 0 ) /* sound CPU */
ROM_LOAD( "ky_a-3a-.bin", 0x4000, 0x04000, CRC(cb365f3b) SHA1(fefad25459eb00d228ee29931c5714ae895b76c7) )
ROM_LOAD( "dr01.3cd", 0x8000, 0x04000, CRC(e66897bd) SHA1(04ea4a857a94d4e884fb28623ec6195dae701e25) )
ROM_LOAD( "dr02.3f", 0xc000, 0x04000, CRC(f9e31e26) SHA1(712b1bde4b3c18c9ac26d58ade48316af004e733) ) /* 6803 code */
@@ -1816,7 +1818,7 @@ ROM_START( lithero )
ROM_LOAD( "12.bin", 0x18000, 0x08000, CRC(a929110b) SHA1(87334f946e14c79426bc7a14e8da984bb8ef9cfc) )
/* ROM_CONTINUE( 0x28000, 0x08000 ) */
- ROM_REGION( 0x10000, "iremsound", 0 ) /* sound CPU */
+ ROM_REGION( 0x10000, "irem_audio:iremsound", 0 ) /* sound CPU */
ROM_LOAD( "ky_a-3a-.bin", 0x4000, 0x04000, CRC(cb365f3b) SHA1(fefad25459eb00d228ee29931c5714ae895b76c7) )
ROM_LOAD( "dr01.3cd", 0x8000, 0x04000, CRC(e66897bd) SHA1(04ea4a857a94d4e884fb28623ec6195dae701e25) )
ROM_LOAD( "dr02.3f", 0xc000, 0x04000, CRC(f9e31e26) SHA1(712b1bde4b3c18c9ac26d58ade48316af004e733) ) /* 6803 code */
@@ -1859,7 +1861,7 @@ ROM_START( spelunkr )
ROM_LOAD( "sprm.7c", 0x10000, 0x4000, CRC(fb6197e2) SHA1(8c3ccc2c14d076a1d6d14c2548a101a87af4211a) ) /* banked at 8000-9fff */
ROM_LOAD( "sprm.7b", 0x14000, 0x4000, CRC(26bb25a4) SHA1(d384901042664a4e46d7b6b5d183ce49e360dac8) )
- ROM_REGION( 0x10000, "iremsound", 0 ) /* sound CPU */
+ ROM_REGION( 0x10000, "irem_audio:iremsound", 0 ) /* sound CPU */
ROM_LOAD( "spra.3d", 0x8000, 0x04000, CRC(4110363c) SHA1(8c1f4966291887c17175ab921acd732be6266186) ) /* adpcm data */
ROM_LOAD( "spra.3f", 0xc000, 0x04000, CRC(67a9d2e6) SHA1(d859648d7a3f05ae777a3909ddcd866b786c5b26) ) /* 6803 code */
@@ -1925,7 +1927,7 @@ ROM_START( spelunkrj )
ROM_LOAD( "spr_m7cc.bin", 0x10000, 0x4000, CRC(57598a36) SHA1(7d9c5790eb2a79c7977ca7b590d228685bd3a6b2) ) /* banked at 8000-9fff */
ROM_LOAD( "spr_m7bd.bin", 0x14000, 0x4000, CRC(ecf5137f) SHA1(6daa88b40698e2a3a11206cd946465621bb3c059) )
- ROM_REGION( 0x10000, "iremsound", 0 ) /* sound CPU */
+ ROM_REGION( 0x10000, "irem_audio:iremsound", 0 ) /* sound CPU */
ROM_LOAD( "spra.3d", 0x8000, 0x04000, CRC(4110363c) SHA1(8c1f4966291887c17175ab921acd732be6266186) ) /* adpcm data */
ROM_LOAD( "spra.3f", 0xc000, 0x04000, CRC(67a9d2e6) SHA1(d859648d7a3f05ae777a3909ddcd866b786c5b26) ) /* 6803 code */
@@ -1992,7 +1994,7 @@ ROM_START( spelunk2 )
ROM_LOAD( "sp2-r.7c", 0x18000, 0x8000, CRC(4b380162) SHA1(867e441411e8b74d1d6ce0333c47b1aec3d4f5f2) ) /* banked at 9000-9fff */
ROM_LOAD( "sp2-r.7b", 0x20000, 0x4000, CRC(7709a1fe) SHA1(4c2b57982b3d3e4524a8e0d24f38d3c3f5a809f3) ) /* banked at 8000-8fff */
- ROM_REGION( 0x10000, "iremsound", 0 ) /* sound CPU */
+ ROM_REGION( 0x10000, "irem_audio:iremsound", 0 ) /* sound CPU */
ROM_LOAD( "sp2-a.3d", 0x8000, 0x04000, CRC(839ec7e2) SHA1(a2c45553b149fc16b8af6338627cd2a8a31e08a0) ) /* adpcm data */
ROM_LOAD( "sp2-a.3f", 0xc000, 0x04000, CRC(ad3ce898) SHA1(36876b6d51a480a0664413dfcc57ef343e0f9965) ) /* 6803 code */
@@ -2058,7 +2060,7 @@ ROM_START( youjyudn )
ROM_LOAD( "yju_p4cb.0", 0x10000, 0x4000, CRC(60baf3b1) SHA1(2ab577bdbec7c8695a8f530b3e476aa91447cd60) ) /* banked at 8000-bfff */
ROM_LOAD( "yju_p4eb.1", 0x14000, 0x4000, CRC(8d0521f8) SHA1(e03385b94194806e347cd6be4151686e2f38c890) )
- ROM_REGION( 0x10000, "iremsound", 0 ) /* sound CPU */
+ ROM_REGION( 0x10000, "irem_audio:iremsound", 0 ) /* sound CPU */
ROM_LOAD( "yju_a3fb.bin", 0xc000, 0x04000, CRC(e15c8030) SHA1(bbbf4fa0349d614af86e356a106d5dd24b0b8baa) ) /* 6803 code */
ROM_REGION( 0x0c000, "gfx1", 0 )
@@ -2104,7 +2106,7 @@ ROM_START( horizon )
ROM_LOAD( "hrza-4d", 0x4000, 0x4000, CRC(06b06ac7) SHA1(d9ae9633455733fd14fc4d448b85365bfebef446) )
ROM_LOAD( "hrza-4b", 0x8000, 0x4000, CRC(39c0bd02) SHA1(8d3b465ef7db11863cd2d343656e99cfb77c89ef) )
- ROM_REGION( 0x10000, "iremsound", 0 ) /* 64k for the audio CPU (6803) */
+ ROM_REGION( 0x10000, "irem_audio:iremsound", 0 ) /* 64k for the audio CPU (6803) */
ROM_LOAD( "hrza-3f", 0xc000, 0x4000, CRC(7412c99f) SHA1(33e7cffa08d9644c78e1bada9a2b08ce5d3f97e1) )
ROM_REGION( 0x06000, "gfx1", 0 )
@@ -2176,25 +2178,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)", GAME_SUPPORTS_SAVE )
-GAME( 1984, kungfumd, kungfum, kungfum, kungfum, driver_device, 0, ROT0, "Irem (Data East USA license)", "Kung-Fu Master (US)", GAME_SUPPORTS_SAVE )
-GAME( 1984, spartanx, kungfum, kungfum, kungfum, driver_device, 0, ROT0, "Irem", "Spartan X (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1984, kungfub, kungfum, kungfum, kungfum, driver_device, 0, ROT0, "bootleg", "Kung-Fu Master (bootleg set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1984, kungfub2, kungfum, kungfum, kungfum, driver_device, 0, ROT0, "bootleg", "Kung-Fu Master (bootleg set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1984, battroad, 0, battroad, battroad, m62_state, battroad, ROT90, "Irem", "The Battle-Road", GAME_SUPPORTS_SAVE )
-GAME( 1984, ldrun, 0, ldrun, ldrun, driver_device, 0, ROT0, "Irem (licensed from Broderbund)", "Lode Runner (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1984, ldruna, ldrun, ldrun, ldrun, driver_device, 0, ROT0, "Irem (licensed from Broderbund, Digital Controls Inc. license)", "Lode Runner (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1984, ldrun2, 0, ldrun2, ldrun2, m62_state, ldrun2, ROT0, "Irem (licensed from Broderbund)", "Lode Runner II - The Bungeling Strikes Back", GAME_SUPPORTS_SAVE ) /* 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", GAME_SUPPORTS_SAVE )
-GAME( 1985, ldrun3j, ldrun3, ldrun3, ldrun3, driver_device, 0, ROT0, "Irem (licensed from Broderbund)", "Lode Runner III - Majin No Fukkatsu (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1986, ldrun4, 0, ldrun4, ldrun4, m62_state, ldrun4, ROT0, "Irem (licensed from Broderbund)", "Lode Runner IV - Teikoku Karano Dasshutsu (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1985, lotlot, 0, lotlot, lotlot, driver_device, 0, ROT0, "Irem (licensed from Tokuma Shoten)", "Lot Lot", GAME_SUPPORTS_SAVE )
-GAME( 1986, kidniki, 0, kidniki, kidniki, m62_state, kidniki, ROT0, "Irem", "Kid Niki - Radical Ninja (World)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1986, kidnikiu, kidniki, kidniki, kidniki, m62_state, kidniki, ROT0, "Irem (Data East USA license)", "Kid Niki - Radical Ninja (US)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1986, yanchamr, kidniki, kidniki, kidniki, m62_state, kidniki, ROT0, "Irem", "Kaiketsu Yanchamaru (Japan)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1987, lithero, kidniki, kidniki, kidniki, m62_state, kidniki, ROT0, "bootleg", "Little Hero", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1985, spelunkr, 0, spelunkr, spelunkr, m62_state, spelunkr, ROT0, "Irem (licensed from Broderbund)", "Spelunker", GAME_SUPPORTS_SAVE )
-GAME( 1985, spelunkrj,spelunkr, spelunkr, spelunkr, m62_state, spelunkr, ROT0, "Irem (licensed from Broderbund)", "Spelunker (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1986, spelunk2, 0, spelunk2, spelunk2, m62_state, spelunk2, ROT0, "Irem (licensed from Broderbund)", "Spelunker II", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1986, youjyudn, 0, youjyudn, youjyudn, m62_state, youjyudn, ROT270, "Irem", "Youjyuden (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1985, horizon, 0, horizon, horizon, driver_device, 0, ROT0, "Irem", "Horizon (Irem)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/m63.c b/src/mame/drivers/m63.c
index a4375596208..9889122e369 100644
--- a/src/mame/drivers/m63.c
+++ b/src/mame/drivers/m63.c
@@ -1015,7 +1015,7 @@ DRIVER_INIT_MEMBER(m63_state,fghtbskt)
m_sy_offset = 240;
}
-GAME( 1984, wilytowr, 0, m63, wilytowr, m63_state, wilytowr, ROT180, "Irem", "Wily Tower", GAME_SUPPORTS_SAVE )
-GAME( 1985, atomboy, wilytowr, atomboy, wilytowr, m63_state, wilytowr, ROT180, "Irem (Memetron license)", "Atomic Boy (revision B)", GAME_SUPPORTS_SAVE )
-GAME( 1985, atomboya, wilytowr, atomboy, wilytowr, m63_state, wilytowr, ROT180, "Irem (Memetron license)", "Atomic Boy (revision A)", GAME_SUPPORTS_SAVE )
-GAME( 1984, fghtbskt, 0, fghtbskt, fghtbskt, m63_state, fghtbskt, ROT0, "Paradise Co. Ltd.", "Fighting Basketball", GAME_SUPPORTS_SAVE )
+GAME( 1984, wilytowr, 0, m63, wilytowr, m63_state, wilytowr, ROT180, "Irem", "Wily Tower", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, atomboy, wilytowr, atomboy, wilytowr, m63_state, wilytowr, ROT180, "Irem (Memetron license)", "Atomic Boy (revision B)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, atomboya, wilytowr, atomboy, wilytowr, m63_state, wilytowr, ROT180, "Irem (Memetron license)", "Atomic Boy (revision A)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, fghtbskt, 0, fghtbskt, fghtbskt, m63_state, fghtbskt, ROT0, "Paradise Co. Ltd.", "Fighting Basketball", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/m6805evs.c b/src/mame/drivers/m6805evs.c
index 09b3f9e2adc..91400aa4a6d 100644
--- a/src/mess/drivers/m6805evs.c
+++ b/src/mame/drivers/m6805evs.c
@@ -77,4 +77,4 @@ ROM_END
***************************************************************************/
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME */
-COMP( 1990, m6805evs, 0, 0, m6805evs, m6805evs, driver_device, 0, "Motorola", "M68HC05EVS", GAME_NOT_WORKING | GAME_NO_SOUND_HW )
+COMP( 1990, m6805evs, 0, 0, m6805evs, m6805evs, driver_device, 0, "Motorola", "M68HC05EVS", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW )
diff --git a/src/mame/drivers/m72.c b/src/mame/drivers/m72.c
index 09f68dcee16..4cb93f3a8d6 100644
--- a/src/mame/drivers/m72.c
+++ b/src/mame/drivers/m72.c
@@ -7,34 +7,132 @@ IREM M72 board
driver by Nicola Salmoria
protection information by Nao
- Year Board Protected?
-R-Type 1987 M72 N
-Battle Chopper / Mr. Heli 1987 M72 Y
-Ninja Spirit 1988 M72 Y
-Image Fight 1988 M72 Y
-Legend of Hero Tonma 1989 M72 Y
-X Multiply 1989 M81 N
-X Multiply 1989 M72(1) Y
-Dragon Breed 1989 M81 N
-Dragon Breed 1989 M72 Y
-R-Type II 1989 M82/M84(2) N
-Major Title 1990 M84 N
-Hammerin' Harry / Daiku no Gensan 1990 M82(3) N
- Daiku no Gensan 1990 M72(4) Y
-Pound for Pound 1990 M85 N
-Air Duel 1990 M72? Y
-Cosmic Cop / 1991 M84 N
- Gallop - Armed Police Unit 1991 M72 N
-Ken-Go 1991 ? Encrypted
-
-(1) different addressing PALs, so different memory map
-(2) rtype2j has M84 written on the board, but it's the same hardware as rtype2
-(3) multiple versions supported, running on different hardware
-(4) normal M72 memory map, but IRQ vectors and sprite control as in X-Multiply
+board differences
+
+M72 - 3 board stack, 2 known variants
+
+ M72-B-D (bottom) / M72-A-C (middle) / M72-ROM-C (top)
+
+ This is the original hardware used by R-type
+ Z80 program uploaded to RAM rather than having a ROM
+ each of the 2 tile layers uses it's own set of ROMs.
+ Flip bits are with the tile num, so 0x3fff max tiles
+ per layer
+
+ M72-B-D (bottom) / M72-A-C (middle) / M72-C-A (top)
+
+ This is used by all other M72 games, adds support
+ for an I8751 MCU and sample playback
+
+
+M81 - 2 PCB Stack
+
+ M81-A-B (top board) (seen on Dragon Breed)
+ CPUs, program roms etc.
+
+ M81-B-B (bottom board) (seen on Dragon Breed)
+ supports
+ 8 sprite ROMS
+ 4 tile roms for FG layer (A0-A3)
+ (Jumper J3 also allows them to be used for BG)
+ 4 tile roms for BG layer (B0-B3)
+
+ The Jumper at J3 seems to be an important difference
+ from M72, it allows both the FG and BG layers to
+ operate from a single set of ROMs.
+ W - use both sets of ROMs
+ S - use a single set of ROMs (A0-A3)
+
+
+ revised hardware, Z80 uses a ROM, no MCU, same video
+ system as M72 (some layer offsets - why?)
+
+
+M82 - board made for Major Title, Z80 has a rom, no MCU
+ has an extra sprite layer, rowscroll, and a larger
+ tilemap. Tile data from both tile layers now comes
+ from a single set of ROMs, flip bits moved to 2nd
+ word meaning max of 0xffff tiles.
+
+ * Some games were converted to run on this board,
+ leaving the extra sprite HW unused.
+
+M84 - 2 PCB stack
+ functionally same as M82 but without the extra sprite hw??
+
+ M84-A-A (bottom board) (most games)
+ supports
+ 4 program roms
+ 8 tile roms
+ 1 snd prg, 1 voice rom
+ CPUs and some customs etc.
+
+ M84-D-B (bottom board) (found on lightning swords / kengo)
+ redesigned version of above but
+ for V35 CPU? (seems to lack the UPD71059C interrupt
+ controller which isn't needed when with the V35)
+
+ M84-C-A (top board) (listed as for Hammering Harry)
+ 4 sprite roms (in a row)
+ 6 larger chips with detail removed
+ etc.
+
+ M84-B-A (top board) (found on rytpe 2)
+ M84-B-B (top board) (lightning swords / kengo)
+ these both look very similar, if not the same
+
+ 4 sprite roms (in a square)
+ various NANAO marked customs
+ KNA70H016(12) NANAO 0201
+ KNA65005 17 NANAO 9048KS
+ KNA71H010(15) NANAO 0X2002
+ KNA72H010(14) NANAO 0Z2001
+ KNA71H009(13) NANAO 122001
+ KNA70H015(11) NANAO 092002
+ KNA91H014 NANAO 0Z2001V
+ etc.
+
+
+
+M85 - Pound for Pound uses this, possibly just M84 with
+ a modified sound section?
+ - most Jamma inputs not connected, trackball only
+
+
+ Year Board Protected?
+R-Type 1987 M72 N
+Battle Chopper / Mr. Heli 1987 M72 Y
+Ninja Spirit 1988 M72 Y
+Image Fight 1988 M72 Y
+Legend of Hero Tonma 1989 M72 Y
+X Multiply (World) 1989 M81-A-B + M81-B-B N
+X Multiply (Japan) 1989 M72 Y
+Dragon Breed 1989 M81-A-B + M81-B-B N
+Dragon Breed (Japan?) 1989 M72 Y
+R-Type II 1989 M84-A-A + M84-B-A N
+Major Title 1990 M82-A-A + M82-B-A N
+Hammerin' Harry (World ver) 1990 M81-A-B + M81-B-B N
+Hammerin' H..(US)/ Daiku no Gensan 1990 M84-A-A + M84-C-A N
+ Daiku no Gensan 1990 M72 Y
+Pound for Pound 1990 M85-A-B + M85-B N
+Air Duel (World) 1990 M82-A-A + M82-B-A N
+Air Duel (Japan) 1990 M72 Y
+Cosmic Cop / 1991 M84-D-B + M84-B-B N
+ Gallop - Armed Police Unit 1991 M72 Y (sample playback only)
+Ken-Go / Lightning Swords 1991 M84-D-B + M84-B-B Encrypted
+
+
+Rtype / Rtype 2 are often misreported as being M82 games, this is mostly
+due to the unofficial conversions that have become widespread, see:
+http://www.paulswan.me/arcade/m82-m72.htm (Rtype on M82, extensive wiremods)
+http://www.paulswan.me/arcade/m82-m84.htm (Rtype 2 on M82)
+these are supported as 'rtypem82b' and 'rtype2m82b' although the former
+still needs work because the wiremods change same of the behavior to be
+more like an M72 PCB than an M82
TODO:
-- majtitle_gfx_ctrl_w is unknown, it seems to be used to disable rowscroll,
+- m82_gfx_ctrl_w is unknown, it seems to be used to disable rowscroll,
and maybe other things
- Maybe there is a layer enable register, e.g. nspirit shows (for an instant)
@@ -49,6 +147,8 @@ TODO:
IRQ controller
--------------
+The IRQ controller is a UPD71059C
+
The initialization consists of one write to port 0x40 and multiple writes
(2 or 3) to port 0x42. The first value written to 0x42 is the IRQ vector base.
Cosmic Cop and Ken-Go have a V35 CPU with its own IRQ controller built in.
@@ -100,6 +200,38 @@ other supported games as well.
/***************************************************************************/
+// bchopper doesn't like the proper IRQ controller hookup, title screen jumps around, as does ingame at times
+// like m92.c I think this is because we don't clear things at the right time.
+#define USE_HACKED_IRQS
+
+#ifdef USE_HACKED_IRQS
+
+#define M72_TRIGGER_IRQ0 m_maincpu->set_input_line_and_vector(0, HOLD_LINE, m_upd71059c->HACK_get_base_vector()+0 ); /* VBL interrupt */
+#define M72_TRIGGER_IRQ1 m_maincpu->set_input_line_and_vector(0, HOLD_LINE, m_upd71059c->HACK_get_base_vector()+1 ); /* Sprite buffer complete interrupt */
+#define M72_TRIGGER_IRQ2 m_maincpu->set_input_line_and_vector(0, HOLD_LINE, m_upd71059c->HACK_get_base_vector()+2 ); /* Raster interrupt */
+#define M72_TRIGGER_IRQ3 m_maincpu->set_input_line_and_vector(0, HOLD_LINE, m_upd71059c->HACK_get_base_vector()+3 ); /* Sound cpu->Main cpu interrupt */
+// not used due to HOLD LINE logic
+#define M72_CLEAR_IRQ0 ;
+#define M72_CLEAR_IRQ1 ;
+#define M72_CLEAR_IRQ2 ;
+#define M72_CLEAR_IRQ3 ;
+
+#else
+
+#define M72_TRIGGER_IRQ0 m_upd71059c->ir0_w(1);
+#define M72_TRIGGER_IRQ1 m_upd71059c->ir1_w(1);
+#define M72_TRIGGER_IRQ2 m_upd71059c->ir2_w(1);
+#define M72_TRIGGER_IRQ3 m_upd71059c->ir3_w(1);
+// not sure when these should happen, probably the source of our issues
+#define M72_CLEAR_IRQ0 m_upd71059c->ir0_w(0);
+#define M72_CLEAR_IRQ1 m_upd71059c->ir1_w(0);
+#define M72_CLEAR_IRQ2 m_upd71059c->ir2_w(0);
+#define M72_CLEAR_IRQ3 m_upd71059c->ir3_w(0);
+
+#endif
+
+
+
void m72_state::machine_start()
{
m_scanline_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(m72_state::scanline_interrupt),this));
@@ -118,7 +250,6 @@ TIMER_CALLBACK_MEMBER(m72_state::synch_callback)
void m72_state::machine_reset()
{
- m_irq_base = 0x20;
m_mcu_sample_addr = 0;
m_mcu_snd_cmd_latch = 0;
@@ -126,12 +257,6 @@ void m72_state::machine_reset()
machine().scheduler().synchronize(timer_expired_delegate(FUNC(m72_state::synch_callback),this));
}
-MACHINE_RESET_MEMBER(m72_state,xmultipl)
-{
- m72_state::machine_reset();
- m_irq_base = 0x08;
-}
-
MACHINE_RESET_MEMBER(m72_state,kengo)
{
m_scanline_timer->adjust(m_screen->time_until_pos(0));
@@ -144,15 +269,21 @@ TIMER_CALLBACK_MEMBER(m72_state::scanline_interrupt)
/* raster interrupt - visible area only? */
if (scanline < 256 && scanline == m_raster_irq_position - 128)
{
- m_screen->update_partial(scanline);
- m_maincpu->set_input_line_and_vector(0, HOLD_LINE, m_irq_base + 2);
+ M72_TRIGGER_IRQ2
+ }
+ else
+ {
+ M72_CLEAR_IRQ2
}
/* VBLANK interrupt */
- else if (scanline == 256)
+ if (scanline == 256)
{
- m_screen->update_partial(scanline);
- m_maincpu->set_input_line_and_vector(0, HOLD_LINE, m_irq_base + 0);
+ M72_TRIGGER_IRQ0
+ }
+ else
+ {
+ M72_CLEAR_IRQ0
}
/* adjust for next scanline */
@@ -458,7 +589,7 @@ WRITE16_MEMBER(m72_state::dbreedm72_sample_trigger_w)
if (ACCESSING_BITS_0_7 && (data & 0xff) < 9) m_audio->set_sample_start(a[data & 0xff]);
}
-WRITE16_MEMBER(m72_state::airduel_sample_trigger_w)
+WRITE16_MEMBER(m72_state::airduelm72_sample_trigger_w)
{
static const int a[16] = {
0x00000, 0x00020, 0x03ec0, 0x05640, 0x06dc0, 0x083a0, 0x0c000, 0x0eb60,
@@ -630,7 +761,7 @@ static const UINT8 dbreedm72_crc[CRC_LEN] = { 0xa4,0x96,0x5f,0xc0, 0xab,0x49,0
0x84,0xe6,0xd6,0xca, 0x00,0x00 };
/* Air Duel */
-static const UINT8 airduel_code[CODE_LEN] =
+static const UINT8 airduelm72_code[CODE_LEN] =
{
0x68,0x00,0xd0, // push 0d000h
0x1f, // pop ds
@@ -640,7 +771,7 @@ static const UINT8 airduel_code[CODE_LEN] =
0xc6,0x06,0xc0,0x1c,0x57, // mov [1cc0h], byte 057h
0xea,0x69,0x0b,0x00,0x00 // jmp 0000:$0b69
};
-static const UINT8 airduel_crc[CRC_LEN] = { 0x72,0x9c,0xca,0x85, 0xc9,0x12,0xcc,0xea,
+static const UINT8 airduelm72_crc[CRC_LEN] = { 0x72,0x9c,0xca,0x85, 0xc9,0x12,0xcc,0xea,
0x00,0x00 };
/* Daiku no Gensan */
@@ -727,10 +858,10 @@ DRIVER_INIT_MEMBER(m72_state,dbreedm72)
m_maincpu->space(AS_IO).install_write_handler(0xc0, 0xc1, write16_delegate(FUNC(m72_state::dbreedm72_sample_trigger_w),this));
}
-DRIVER_INIT_MEMBER(m72_state,airduel)
+DRIVER_INIT_MEMBER(m72_state,airduelm72)
{
- install_protection_handler(airduel_code,airduel_crc);
- m_maincpu->space(AS_IO).install_write_handler(0xc0, 0xc1, write16_delegate(FUNC(m72_state::airduel_sample_trigger_w),this));
+ install_protection_handler(airduelm72_code,airduelm72_crc);
+ m_maincpu->space(AS_IO).install_write_handler(0xc0, 0xc1, write16_delegate(FUNC(m72_state::airduelm72_sample_trigger_w),this));
}
DRIVER_INIT_MEMBER(m72_state,dkgenm72)
@@ -794,7 +925,7 @@ READ16_MEMBER(m72_state::poundfor_trackball_r)
}
-#define CPU1_MEMORY(NAME,ROMSIZE,WORKRAM) \
+#define M72_CPU1_MEMORY(NAME,ROMSIZE,WORKRAM) \
static ADDRESS_MAP_START( NAME##_map, AS_PROGRAM, 16 , m72_state ) \
AM_RANGE(0x00000, ROMSIZE-1) AM_ROM \
AM_RANGE(WORKRAM, WORKRAM+0x3fff) AM_RAM /* work RAM */ \
@@ -808,50 +939,55 @@ static ADDRESS_MAP_START( NAME##_map, AS_PROGRAM, 16 , m72_state ) \
ADDRESS_MAP_END
-/* ROMSIZE WORKRAM */
-CPU1_MEMORY( m72, 0x80000, 0xa0000 )
-CPU1_MEMORY( rtype, 0x40000, 0x40000 )
-CPU1_MEMORY( xmultiplm72, 0x80000, 0x80000 )
-CPU1_MEMORY( dbreedm72, 0x80000, 0x90000 )
+/* ROMSIZE WORKRAM */
+M72_CPU1_MEMORY( m72, 0x80000, 0xa0000 )
+M72_CPU1_MEMORY( rtype, 0x40000, 0x40000 )
+M72_CPU1_MEMORY( xmultiplm72, 0x80000, 0x80000 )
+M72_CPU1_MEMORY( dbreedm72, 0x80000, 0x90000 )
-static ADDRESS_MAP_START( xmultipl_map, AS_PROGRAM, 16, m72_state )
- AM_RANGE(0x00000, 0x7ffff) AM_ROM
- AM_RANGE(0x9c000, 0x9ffff) AM_RAM /* work RAM */
- AM_RANGE(0xb0ffe, 0xb0fff) AM_WRITEONLY /* leftover from protection?? */
- AM_RANGE(0xc0000, 0xc03ff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0xc8000, 0xc8bff) AM_READWRITE(palette1_r, palette1_w) AM_SHARE("paletteram")
- AM_RANGE(0xcc000, 0xccbff) AM_READWRITE(palette2_r, palette2_w) AM_SHARE("paletteram2")
- AM_RANGE(0xd0000, 0xd3fff) AM_RAM_WRITE(videoram1_w) AM_SHARE("videoram1")
- AM_RANGE(0xd8000, 0xdbfff) AM_RAM_WRITE(videoram2_w) AM_SHARE("videoram2")
- AM_RANGE(0xffff0, 0xfffff) AM_ROM
-ADDRESS_MAP_END
-static ADDRESS_MAP_START( dbreed_map, AS_PROGRAM, 16, m72_state )
- AM_RANGE(0x00000, 0x7ffff) AM_ROM
- AM_RANGE(0x88000, 0x8bfff) AM_RAM /* work RAM */
- AM_RANGE(0xb0ffe, 0xb0fff) AM_WRITEONLY /* leftover from protection?? */
- AM_RANGE(0xc0000, 0xc03ff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0xc8000, 0xc8bff) AM_READWRITE(palette1_r, palette1_w) AM_SHARE("paletteram")
- AM_RANGE(0xcc000, 0xccbff) AM_READWRITE(palette2_r, palette2_w) AM_SHARE("paletteram2")
- AM_RANGE(0xd0000, 0xd3fff) AM_RAM_WRITE(videoram1_w) AM_SHARE("videoram1")
- AM_RANGE(0xd8000, 0xdbfff) AM_RAM_WRITE(videoram2_w) AM_SHARE("videoram2")
- AM_RANGE(0xffff0, 0xfffff) AM_ROM
-ADDRESS_MAP_END
+#define M81_CPU1_MEMORY(NAME,WORKRAM) \
+ static ADDRESS_MAP_START( NAME##_map, AS_PROGRAM, 16 , m72_state ) \
+ AM_RANGE(0x00000, 0x7ffff) AM_ROM \
+ AM_RANGE(WORKRAM, WORKRAM+0x3fff) AM_RAM /* work RAM */ \
+ AM_RANGE(0xb0ffe, 0xb0fff) AM_WRITEONLY /* leftover from protection?? */ \
+ AM_RANGE(0xc0000, 0xc03ff) AM_RAM AM_SHARE("spriteram") \
+ AM_RANGE(0xc8000, 0xc8bff) AM_READWRITE(palette1_r, palette1_w) AM_SHARE("paletteram") \
+ AM_RANGE(0xcc000, 0xccbff) AM_READWRITE(palette2_r, palette2_w) AM_SHARE("paletteram2") \
+ AM_RANGE(0xd0000, 0xd3fff) AM_RAM_WRITE(videoram1_w) AM_SHARE("videoram1") \
+ AM_RANGE(0xd8000, 0xdbfff) AM_RAM_WRITE(videoram2_w) AM_SHARE("videoram2") \
+ AM_RANGE(0xffff0, 0xfffff) AM_ROM \
+ADDRESS_MAP_END \
+
+/* WORKRAM */
+M81_CPU1_MEMORY( xmultipl, 0x9c000 )
+M81_CPU1_MEMORY( dbreed, 0x88000 )
+M81_CPU1_MEMORY( hharry, 0xa0000 )
+
+
+#define M84_CPU1_MEMORY(NAME,VIDEORAM,PALETTERAM1,PALETTERAM2) \
+ static ADDRESS_MAP_START( NAME##_map, AS_PROGRAM, 16 , m72_state ) \
+ AM_RANGE(0x00000, 0x7ffff) AM_ROM \
+ AM_RANGE(0xb0000, 0xb0001) AM_WRITE(irq_line_w) \
+ AM_RANGE(0xb4000, 0xb4001) AM_WRITENOP /* ??? */ \
+ AM_RANGE(0xbc000, 0xbc001) AM_WRITE(dmaon_w) \
+ AM_RANGE(0xb0ffe, 0xb0fff) AM_WRITEONLY /* leftover from protection?? */ \
+ AM_RANGE(0xc0000, 0xc03ff) AM_RAM AM_SHARE("spriteram") \
+ AM_RANGE(VIDEORAM+0x0000, VIDEORAM+0x3fff) AM_RAM_WRITE(videoram1_w) AM_SHARE("videoram1") \
+ AM_RANGE(VIDEORAM+0x4000, VIDEORAM+0x7fff) AM_RAM_WRITE(videoram2_w) AM_SHARE("videoram2") \
+ AM_RANGE(PALETTERAM1, PALETTERAM1+0xbff) AM_READWRITE(palette1_r, palette1_w) AM_SHARE("paletteram") \
+ AM_RANGE(PALETTERAM2, PALETTERAM2+0xbff) AM_READWRITE(palette2_r, palette2_w) AM_SHARE("paletteram2") \
+ AM_RANGE(0xe0000, 0xe3fff) AM_RAM /* work RAM */ \
+ AM_RANGE(0xffff0, 0xfffff) AM_ROM \
+ADDRESS_MAP_END \
+
+M84_CPU1_MEMORY( rtype2, 0xd0000, 0xc8000, 0xd8000 )
+M84_CPU1_MEMORY( hharryu, 0xd0000, 0xa0000, 0xa8000 )
+M84_CPU1_MEMORY( kengo, 0x80000, 0xa0000, 0xa8000 )
-static ADDRESS_MAP_START( rtype2_map, AS_PROGRAM, 16, m72_state )
- AM_RANGE(0x00000, 0x7ffff) AM_ROM
- AM_RANGE(0xb0000, 0xb0001) AM_WRITE(irq_line_w)
- AM_RANGE(0xbc000, 0xbc001) AM_WRITE(dmaon_w)
- AM_RANGE(0xc0000, 0xc03ff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0xc8000, 0xc8bff) AM_READWRITE(palette1_r, palette1_w) AM_SHARE("paletteram")
- AM_RANGE(0xd0000, 0xd3fff) AM_RAM_WRITE(videoram1_w) AM_SHARE("videoram1")
- AM_RANGE(0xd4000, 0xd7fff) AM_RAM_WRITE(videoram2_w) AM_SHARE("videoram2")
- AM_RANGE(0xd8000, 0xd8bff) AM_READWRITE(palette2_r, palette2_w) AM_SHARE("paletteram2")
- AM_RANGE(0xe0000, 0xe3fff) AM_RAM /* work RAM */
- AM_RANGE(0xffff0, 0xfffff) AM_ROM
-ADDRESS_MAP_END
-static ADDRESS_MAP_START( majtitle_map, AS_PROGRAM, 16, m72_state )
+
+static ADDRESS_MAP_START( m82_map, AS_PROGRAM, 16, m72_state )
AM_RANGE(0x00000, 0x7ffff) AM_ROM
AM_RANGE(0xa0000, 0xa03ff) AM_RAM AM_SHARE("majtitle_rowscr")
AM_RANGE(0xa4000, 0xa4bff) AM_READWRITE(palette2_r, palette2_w) AM_SHARE("paletteram2")
@@ -867,45 +1003,8 @@ static ADDRESS_MAP_START( majtitle_map, AS_PROGRAM, 16, m72_state )
AM_RANGE(0xffff0, 0xfffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hharry_map, AS_PROGRAM, 16, m72_state )
- AM_RANGE(0x00000, 0x7ffff) AM_ROM
- AM_RANGE(0xa0000, 0xa3fff) AM_RAM /* work RAM */
- AM_RANGE(0xb0ffe, 0xb0fff) AM_WRITEONLY /* leftover from protection?? */
- AM_RANGE(0xc0000, 0xc03ff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0xc8000, 0xc8bff) AM_READWRITE(palette1_r, palette1_w) AM_SHARE("paletteram")
- AM_RANGE(0xcc000, 0xccbff) AM_READWRITE(palette2_r, palette2_w) AM_SHARE("paletteram2")
- AM_RANGE(0xd0000, 0xd3fff) AM_RAM_WRITE(videoram1_w) AM_SHARE("videoram1")
- AM_RANGE(0xd8000, 0xdbfff) AM_RAM_WRITE(videoram2_w) AM_SHARE("videoram2")
- AM_RANGE(0xffff0, 0xfffff) AM_ROM
-ADDRESS_MAP_END
-static ADDRESS_MAP_START( hharryu_map, AS_PROGRAM, 16, m72_state )
- AM_RANGE(0x00000, 0x7ffff) AM_ROM
- AM_RANGE(0xa0000, 0xa0bff) AM_READWRITE(palette1_r, palette1_w) AM_SHARE("paletteram")
- AM_RANGE(0xa8000, 0xa8bff) AM_READWRITE(palette2_r, palette2_w) AM_SHARE("paletteram2")
- AM_RANGE(0xb0000, 0xb0001) AM_WRITE(irq_line_w)
- AM_RANGE(0xbc000, 0xbc001) AM_WRITE(dmaon_w)
- AM_RANGE(0xb0ffe, 0xb0fff) AM_WRITEONLY /* leftover from protection?? */
- AM_RANGE(0xc0000, 0xc03ff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0xd0000, 0xd3fff) AM_RAM_WRITE(videoram1_w) AM_SHARE("videoram1")
- AM_RANGE(0xd4000, 0xd7fff) AM_RAM_WRITE(videoram2_w) AM_SHARE("videoram2")
- AM_RANGE(0xe0000, 0xe3fff) AM_RAM /* work RAM */
- AM_RANGE(0xffff0, 0xfffff) AM_ROM
-ADDRESS_MAP_END
-static ADDRESS_MAP_START( kengo_map, AS_PROGRAM, 16, m72_state )
- AM_RANGE(0x00000, 0x7ffff) AM_ROM
- AM_RANGE(0xa0000, 0xa0bff) AM_READWRITE(palette1_r, palette1_w) AM_SHARE("paletteram")
- AM_RANGE(0xa8000, 0xa8bff) AM_READWRITE(palette2_r, palette2_w) AM_SHARE("paletteram2")
- AM_RANGE(0xb0000, 0xb0001) AM_WRITE(irq_line_w)
- AM_RANGE(0xb4000, 0xb4001) AM_WRITENOP /* ??? */
- AM_RANGE(0xbc000, 0xbc001) AM_WRITE(dmaon_w)
- AM_RANGE(0xc0000, 0xc03ff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x80000, 0x83fff) AM_RAM_WRITE(videoram1_w) AM_SHARE("videoram1")
- AM_RANGE(0x84000, 0x87fff) AM_RAM_WRITE(videoram2_w) AM_SHARE("videoram2")
- AM_RANGE(0xe0000, 0xe3fff) AM_RAM /* work RAM */
- AM_RANGE(0xffff0, 0xfffff) AM_ROM
-ADDRESS_MAP_END
static ADDRESS_MAP_START( m72_portmap, AS_IO, 16, m72_state )
AM_RANGE(0x00, 0x01) AM_READ_PORT("IN0")
@@ -915,7 +1014,7 @@ static ADDRESS_MAP_START( m72_portmap, AS_IO, 16, m72_state )
AM_RANGE(0x02, 0x03) AM_WRITE(port02_w) /* coin counters, reset sound cpu, other stuff? */
AM_RANGE(0x04, 0x05) AM_WRITE(dmaon_w)
AM_RANGE(0x06, 0x07) AM_WRITE(irq_line_w)
- //AM_RANGE(0x40, 0x43) AM_WRITENOP /* Interrupt controller, only written to at bootup */
+ AM_RANGE(0x40, 0x43) AM_DEVREADWRITE8("upd71059c", pic8259_device, read, write, 0x00ff)
AM_RANGE(0x80, 0x81) AM_WRITE(scrolly1_w)
AM_RANGE(0x82, 0x83) AM_WRITE(scrollx1_w)
AM_RANGE(0x84, 0x85) AM_WRITE(scrolly2_w)
@@ -923,75 +1022,80 @@ static ADDRESS_MAP_START( m72_portmap, AS_IO, 16, m72_state )
/* { 0xc0, 0xc0 trigger sample, filled by init_ function */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( rtype2_portmap, AS_IO, 16, m72_state )
+static ADDRESS_MAP_START( m84_portmap, AS_IO, 16, m72_state )
AM_RANGE(0x00, 0x01) AM_READ_PORT("IN0")
AM_RANGE(0x02, 0x03) AM_READ_PORT("IN1")
AM_RANGE(0x04, 0x05) AM_READ_PORT("DSW")
AM_RANGE(0x00, 0x01) AM_DEVWRITE("m72", m72_audio_device, sound_command_w)
AM_RANGE(0x02, 0x03) AM_WRITE(rtype2_port02_w)
- AM_RANGE(0x40, 0x43) AM_WRITENOP /* Interrupt controller, only written to at bootup */
+ AM_RANGE(0x40, 0x43) AM_DEVREADWRITE8("upd71059c", pic8259_device, read, write, 0x00ff)
AM_RANGE(0x80, 0x81) AM_WRITE(scrolly1_w)
AM_RANGE(0x82, 0x83) AM_WRITE(scrollx1_w)
AM_RANGE(0x84, 0x85) AM_WRITE(scrolly2_w)
AM_RANGE(0x86, 0x87) AM_WRITE(scrollx2_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( poundfor_portmap, AS_IO, 16, m72_state )
+static ADDRESS_MAP_START( m84_v33_portmap, AS_IO, 16, m72_state )
+ AM_RANGE(0x00, 0x01) AM_READ_PORT("IN0")
AM_RANGE(0x02, 0x03) AM_READ_PORT("IN1")
AM_RANGE(0x04, 0x05) AM_READ_PORT("DSW")
- AM_RANGE(0x08, 0x0f) AM_READ(poundfor_trackball_r)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("m72", m72_audio_device, sound_command_w)
AM_RANGE(0x02, 0x03) AM_WRITE(rtype2_port02_w)
- AM_RANGE(0x40, 0x43) AM_WRITENOP /* Interrupt controller, only written to at bootup */
AM_RANGE(0x80, 0x81) AM_WRITE(scrolly1_w)
AM_RANGE(0x82, 0x83) AM_WRITE(scrollx1_w)
AM_RANGE(0x84, 0x85) AM_WRITE(scrolly2_w)
AM_RANGE(0x86, 0x87) AM_WRITE(scrollx2_w)
+// AM_RANGE(0x8c, 0x8f) AM_WRITENOP /* ??? */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( majtitle_portmap, AS_IO, 16, m72_state )
- AM_RANGE(0x00, 0x01) AM_READ_PORT("IN0")
+
+static ADDRESS_MAP_START( poundfor_portmap, AS_IO, 16, m72_state )
AM_RANGE(0x02, 0x03) AM_READ_PORT("IN1")
AM_RANGE(0x04, 0x05) AM_READ_PORT("DSW")
+ AM_RANGE(0x08, 0x0f) AM_READ(poundfor_trackball_r)
AM_RANGE(0x00, 0x01) AM_DEVWRITE("m72", m72_audio_device, sound_command_w)
AM_RANGE(0x02, 0x03) AM_WRITE(rtype2_port02_w)
- AM_RANGE(0x40, 0x43) AM_WRITENOP /* Interrupt controller, only written to at bootup */
+ AM_RANGE(0x40, 0x43) AM_DEVREADWRITE8("upd71059c", pic8259_device, read, write, 0x00ff)
AM_RANGE(0x80, 0x81) AM_WRITE(scrolly1_w)
AM_RANGE(0x82, 0x83) AM_WRITE(scrollx1_w)
AM_RANGE(0x84, 0x85) AM_WRITE(scrolly2_w)
AM_RANGE(0x86, 0x87) AM_WRITE(scrollx2_w)
- AM_RANGE(0x8e, 0x8f) AM_WRITE(majtitle_gfx_ctrl_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( hharry_portmap, AS_IO, 16, m72_state )
+static ADDRESS_MAP_START( m82_portmap, AS_IO, 16, m72_state )
AM_RANGE(0x00, 0x01) AM_READ_PORT("IN0")
AM_RANGE(0x02, 0x03) AM_READ_PORT("IN1")
AM_RANGE(0x04, 0x05) AM_READ_PORT("DSW")
AM_RANGE(0x00, 0x01) AM_DEVWRITE("m72", m72_audio_device, sound_command_w)
- AM_RANGE(0x02, 0x03) AM_WRITE(rtype2_port02_w) /* coin counters, reset sound cpu, other stuff? */
- AM_RANGE(0x04, 0x05) AM_WRITE(dmaon_w)
- AM_RANGE(0x06, 0x07) AM_WRITE(irq_line_w)
- AM_RANGE(0x40, 0x43) AM_WRITENOP /* Interrupt controller, only written to at bootup */
+ AM_RANGE(0x02, 0x03) AM_WRITE(rtype2_port02_w)
+ AM_RANGE(0x40, 0x43) AM_DEVREADWRITE8("upd71059c", pic8259_device, read, write, 0x00ff)
AM_RANGE(0x80, 0x81) AM_WRITE(scrolly1_w)
AM_RANGE(0x82, 0x83) AM_WRITE(scrollx1_w)
AM_RANGE(0x84, 0x85) AM_WRITE(scrolly2_w)
AM_RANGE(0x86, 0x87) AM_WRITE(scrollx2_w)
+
+ // these ports control the tilemap sizes, rowscroll etc. that m82 has, exact bit usage not known (maybe one for each layer?)
+ AM_RANGE(0x8c, 0x8d) AM_WRITE(m82_tm_ctrl_w)
+ AM_RANGE(0x8e, 0x8f) AM_WRITE(m82_gfx_ctrl_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( kengo_portmap, AS_IO, 16, m72_state )
+static ADDRESS_MAP_START( m81_portmap, AS_IO, 16, m72_state )
AM_RANGE(0x00, 0x01) AM_READ_PORT("IN0")
AM_RANGE(0x02, 0x03) AM_READ_PORT("IN1")
AM_RANGE(0x04, 0x05) AM_READ_PORT("DSW")
AM_RANGE(0x00, 0x01) AM_DEVWRITE("m72", m72_audio_device, sound_command_w)
- AM_RANGE(0x02, 0x03) AM_WRITE(rtype2_port02_w)
+ AM_RANGE(0x02, 0x03) AM_WRITE(rtype2_port02_w) /* coin counters, reset sound cpu, other stuff? */
+ AM_RANGE(0x04, 0x05) AM_WRITE(dmaon_w)
+ AM_RANGE(0x06, 0x07) AM_WRITE(irq_line_w)
+ AM_RANGE(0x40, 0x43) AM_DEVREADWRITE8("upd71059c", pic8259_device, read, write, 0x00ff)
AM_RANGE(0x80, 0x81) AM_WRITE(scrolly1_w)
AM_RANGE(0x82, 0x83) AM_WRITE(scrollx1_w)
AM_RANGE(0x84, 0x85) AM_WRITE(scrolly2_w)
AM_RANGE(0x86, 0x87) AM_WRITE(scrollx2_w)
-// AM_RANGE(0x8c, 0x8f) AM_WRITENOP /* ??? */
ADDRESS_MAP_END
+
static ADDRESS_MAP_START( sound_ram_map, AS_PROGRAM, 8, m72_state )
AM_RANGE(0x0000, 0xffff) AM_RAM AM_SHARE("soundram")
ADDRESS_MAP_END
@@ -1374,6 +1478,11 @@ static INPUT_PORTS_START( xmultipl )
PORT_SERVICE_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW2:8" )
INPUT_PORTS_END
+static INPUT_PORTS_START( m81_xmultipl )
+ PORT_INCLUDE( xmultipl )
+ M81_B_B_JUMPER_J3_W
+INPUT_PORTS_END
+
static INPUT_PORTS_START( dbreed )
PORT_INCLUDE( common )
@@ -1415,6 +1524,11 @@ static INPUT_PORTS_START( dbreed )
PORT_SERVICE_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW2:8")
INPUT_PORTS_END
+static INPUT_PORTS_START( m81_dbreed )
+ PORT_INCLUDE( dbreed )
+ M81_B_B_JUMPER_J3_S
+INPUT_PORTS_END
+
static INPUT_PORTS_START( rtype2 )
PORT_INCLUDE( common )
@@ -1494,6 +1608,11 @@ static INPUT_PORTS_START( hharry )
IREM_COIN_MODE_2_HIGH
INPUT_PORTS_END
+static INPUT_PORTS_START( m81_hharry )
+ PORT_INCLUDE( hharry )
+ M81_B_B_JUMPER_J3_S
+INPUT_PORTS_END
+
static INPUT_PORTS_START( poundfor )
PORT_START("IN0")
PORT_BIT( 0x001f, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* high bits of trackball X */
@@ -1733,20 +1852,20 @@ static const gfx_layout spritelayout =
};
static GFXDECODE_START( m72 )
- GFXDECODE_ENTRY( "gfx1", 0, spritelayout, 0, 16 )
+ GFXDECODE_ENTRY( "sprites", 0, spritelayout, 0, 16 )
GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 256, 16 )
GFXDECODE_ENTRY( "gfx3", 0, tilelayout, 256, 16 )
GFXDECODE_END
static GFXDECODE_START( rtype2 )
- GFXDECODE_ENTRY( "gfx1", 0, spritelayout, 0, 16 )
+ GFXDECODE_ENTRY( "sprites", 0, spritelayout, 0, 16 )
GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 256, 16 )
GFXDECODE_END
static GFXDECODE_START( majtitle )
- GFXDECODE_ENTRY( "gfx1", 0, spritelayout, 0, 16 )
+ GFXDECODE_ENTRY( "sprites", 0, spritelayout, 0, 16 )
GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 256, 16 )
- GFXDECODE_ENTRY( "gfx3", 0, spritelayout, 0, 16 )
+ GFXDECODE_ENTRY( "sprites2", 0, spritelayout, 0, 16 )
GFXDECODE_END
@@ -1772,11 +1891,14 @@ static MACHINE_CONFIG_START( m72_base, m72_state )
MCFG_CPU_ADD("maincpu",V30,MASTER_CLOCK/2/2) /* 16 MHz external freq (8MHz internal) */
MCFG_CPU_PROGRAM_MAP(m72_map)
MCFG_CPU_IO_MAP(m72_portmap)
-
+#ifndef USE_HACKED_IRQS
+ MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("upd71059c", pic8259_device, inta_cb)
+#endif
MCFG_CPU_ADD("soundcpu",Z80, SOUND_CLOCK)
MCFG_CPU_PROGRAM_MAP(sound_ram_map)
MCFG_CPU_IO_MAP(sound_portmap)
+ MCFG_PIC8259_ADD( "upd71059c", INPUTLINE("maincpu", 0), VCC, NULL)
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", "palette", m72)
@@ -1817,7 +1939,7 @@ static MACHINE_CONFIG_DERIVED( rtype, m72_base )
MCFG_DEVICE_REMOVE("dac")
MACHINE_CONFIG_END
-static MACHINE_CONFIG_DERIVED( xmultiplm72, m72_8751 )
+static MACHINE_CONFIG_DERIVED( m72_xmultipl, m72_8751 )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(xmultiplm72_map)
@@ -1825,85 +1947,65 @@ static MACHINE_CONFIG_DERIVED( xmultiplm72, m72_8751 )
MCFG_CPU_PERIODIC_INT_DRIVER(m72_state, nmi_line_pulse, 128*55) /* clocked by V1? (Vigilante) */
/* IRQs are generated by main Z80 and YM2151 */
-
- MCFG_MACHINE_RESET_OVERRIDE(m72_state,xmultipl)
MACHINE_CONFIG_END
-static MACHINE_CONFIG_DERIVED( dbreedm72, m72_base )
+static MACHINE_CONFIG_DERIVED( m72_dbreed, m72_base )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(dbreedm72_map)
MCFG_CPU_MODIFY("soundcpu")
MCFG_CPU_PERIODIC_INT_DRIVER(m72_state, nmi_line_pulse, 128*55) /* clocked by V1? (Vigilante) */
/* IRQs are generated by main Z80 and YM2151 */
-
- MCFG_MACHINE_RESET_OVERRIDE(m72_state,xmultipl)
MACHINE_CONFIG_END
-static MACHINE_CONFIG_DERIVED( dkgenm72, m72 ) // dervices from 'm72' because we use 'fake nmi' on the soundcpu
-
- MCFG_MACHINE_RESET_OVERRIDE(m72_state,xmultipl)
-MACHINE_CONFIG_END
-// not m72
-static MACHINE_CONFIG_DERIVED( xmultipl, m72 )
+/****************************************** M81 ***********************************************/
- /* basic machine hardware */
+// M81 is closest to M72
+static MACHINE_CONFIG_DERIVED( m81_hharry, m72_base )
MCFG_CPU_MODIFY("maincpu")
- MCFG_CPU_PROGRAM_MAP(xmultipl_map)
- MCFG_CPU_IO_MAP(hharry_portmap)
+ MCFG_CPU_PROGRAM_MAP(hharry_map)
+ MCFG_CPU_IO_MAP(m81_portmap)
MCFG_CPU_MODIFY("soundcpu")
MCFG_CPU_PROGRAM_MAP(sound_rom_map)
MCFG_CPU_IO_MAP(rtype2_sound_portmap)
- MCFG_CPU_PERIODIC_INT_DRIVER(m72_state, nmi_line_pulse, 128*55) /* clocked by V1? (Vigilante) */
- /* IRQs are generated by main Z80 and YM2151 */
+ MCFG_CPU_PERIODIC_INT_DRIVER(m72_state, nmi_line_pulse, 128*55)
+ MCFG_VIDEO_START_OVERRIDE(m72_state,hharry)
- MCFG_MACHINE_RESET_OVERRIDE(m72_state,xmultipl)
-
- MCFG_VIDEO_START_OVERRIDE(m72_state,xmultipl)
+ MCFG_SCREEN_MODIFY("screen")
+ MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_m81)
MACHINE_CONFIG_END
-
-// not m72, different video system (more sprites)
-static MACHINE_CONFIG_START( majtitle, m72_state )
-
+static MACHINE_CONFIG_DERIVED( m81_xmultipl, m81_hharry )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", V30,MASTER_CLOCK/2/2) /* 16 MHz external freq (8MHz internal) */
- MCFG_CPU_PROGRAM_MAP(majtitle_map)
- MCFG_CPU_IO_MAP(majtitle_portmap)
-
- MCFG_CPU_ADD("soundcpu", Z80, SOUND_CLOCK)
- MCFG_CPU_PROGRAM_MAP(sound_rom_map)
- MCFG_CPU_IO_MAP(rtype2_sound_portmap)
- MCFG_CPU_PERIODIC_INT_DRIVER(m72_state, nmi_line_pulse, 128*55) /* clocked by V1? (Vigilante) */
- /* IRQs are generated by main Z80 and YM2151 */
-
- /* video hardware */
- MCFG_GFXDECODE_ADD("gfxdecode", "palette", majtitle)
- MCFG_PALETTE_ADD("palette", 512)
-
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
- MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_majtitle)
- MCFG_SCREEN_PALETTE("palette")
-
- MCFG_VIDEO_START_OVERRIDE(m72_state,majtitle)
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(xmultipl_map)
- MCFG_FRAGMENT_ADD(m72_audio_chips)
+ MCFG_VIDEO_START_OVERRIDE(m72_state,xmultipl) // different offsets
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( m81_dbreed, m81_xmultipl )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(dbreed_map)
MACHINE_CONFIG_END
-// not m72, different video system (less tiles regions?)
+/****************************************** M84 ***********************************************/
+
+// M84
static MACHINE_CONFIG_START( rtype2, m72_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", V30,MASTER_CLOCK/2/2) /* 16 MHz external freq (8MHz internal) */
MCFG_CPU_PROGRAM_MAP(rtype2_map)
- MCFG_CPU_IO_MAP(rtype2_portmap)
+ MCFG_CPU_IO_MAP(m84_portmap)
+#ifndef USE_HACKED_IRQS
+ MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("upd71059c", pic8259_device, inta_cb)
+#endif
MCFG_CPU_ADD("soundcpu", Z80, SOUND_CLOCK)
MCFG_CPU_PROGRAM_MAP(sound_rom_map)
@@ -1911,6 +2013,8 @@ static MACHINE_CONFIG_START( rtype2, m72_state )
MCFG_CPU_PERIODIC_INT_DRIVER(m72_state, nmi_line_pulse, 128*55) /* clocked by V1? (Vigilante) */
/* IRQs are generated by main Z80 and YM2151 */
+ MCFG_PIC8259_ADD( "upd71059c", INPUTLINE("maincpu", 0), VCC, NULL)
+
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", "palette", rtype2)
MCFG_PALETTE_ADD("palette", 512)
@@ -1925,44 +2029,28 @@ static MACHINE_CONFIG_START( rtype2, m72_state )
MCFG_FRAGMENT_ADD(m72_audio_chips)
MACHINE_CONFIG_END
-// not m72, different video system (less tiles regions?)
-static MACHINE_CONFIG_START( dbreed, m72_state )
-
+// not m72, different video system (less tiles regions?) (M84? M82?)
+static MACHINE_CONFIG_DERIVED( hharryu, rtype2 )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu",V30,MASTER_CLOCK/2/2) /* 16 MHz external freq (8MHz internal) */
- MCFG_CPU_PROGRAM_MAP(dbreed_map)
- MCFG_CPU_IO_MAP(hharry_portmap)
-
- MCFG_CPU_ADD("soundcpu",Z80, SOUND_CLOCK)
- MCFG_CPU_PROGRAM_MAP(sound_rom_map)
- MCFG_CPU_IO_MAP(rtype2_sound_portmap)
- MCFG_CPU_PERIODIC_INT_DRIVER(m72_state, nmi_line_pulse, 128*55) /* clocked by V1? (Vigilante) */
- /* IRQs are generated by main Z80 and YM2151 */
-
-
- MCFG_MACHINE_RESET_OVERRIDE(m72_state,xmultipl)
-
- /* video hardware */
- MCFG_GFXDECODE_ADD("gfxdecode", "palette", rtype2)
- MCFG_PALETTE_ADD("palette", 512)
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(hharryu_map)
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
- MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
+ MCFG_VIDEO_START_OVERRIDE(m72_state,hharryu)
+MACHINE_CONFIG_END
- MCFG_VIDEO_START_OVERRIDE(m72_state,hharry)
- MCFG_FRAGMENT_ADD(m72_audio_chips)
-MACHINE_CONFIG_END
+// M84
-// not m72, different video system (less tiles regions?)
-static MACHINE_CONFIG_START( hharry, m72_state )
+// 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 )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", V30,MASTER_CLOCK/2/2) /* 16 MHz external freq (8MHz internal) */
- MCFG_CPU_PROGRAM_MAP(hharry_map)
- MCFG_CPU_IO_MAP(hharry_portmap)
+ MCFG_CPU_ADD("maincpu", V35,MASTER_CLOCK/2)
+ MCFG_CPU_PROGRAM_MAP(kengo_map)
+ MCFG_CPU_IO_MAP(m84_v33_portmap)
+//#ifndef USE_HACKED_IRQS
+// MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("upd71059c", pic8259_device, inta_cb)
+//#endif
MCFG_CPU_ADD("soundcpu", Z80, SOUND_CLOCK)
MCFG_CPU_PROGRAM_MAP(sound_rom_map)
@@ -1970,8 +2058,10 @@ static MACHINE_CONFIG_START( hharry, m72_state )
MCFG_CPU_PERIODIC_INT_DRIVER(m72_state, nmi_line_pulse, 128*55) /* clocked by V1? (Vigilante) */
/* IRQs are generated by main Z80 and YM2151 */
-
- MCFG_MACHINE_RESET_OVERRIDE(m72_state,xmultipl)
+// MCFG_PIC8259_ADD( "upd71059c", INPUTLINE("maincpu", 0), VCC, NULL)
+
+ MCFG_MACHINE_START_OVERRIDE(m72_state,kengo)
+ MCFG_MACHINE_RESET_OVERRIDE(m72_state,kengo)
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", "palette", rtype2)
@@ -1982,58 +2072,78 @@ static MACHINE_CONFIG_START( hharry, m72_state )
MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update)
MCFG_SCREEN_PALETTE("palette")
- MCFG_VIDEO_START_OVERRIDE(m72_state,hharry)
+ MCFG_VIDEO_START_OVERRIDE(m72_state,hharryu)
MCFG_FRAGMENT_ADD(m72_audio_chips)
+MACHINE_CONFIG_END
+static MACHINE_CONFIG_DERIVED( kengo, cosmccop )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_V25_CONFIG(gunforce_decryption_table)
MACHINE_CONFIG_END
-// not m72, different video system (less tiles regions?)
-static MACHINE_CONFIG_START( hharryu, m72_state )
+
+/****************************************** M82 ***********************************************/
+
+/* Major Title uses
+
+M82-A-A as the top board
+M82-B-A and as the bottom board
+
+*/
+static MACHINE_CONFIG_START( m82, m72_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", V30,MASTER_CLOCK/2/2) /* 16 MHz external freq (8MHz internal) */
- MCFG_CPU_PROGRAM_MAP(hharryu_map)
- MCFG_CPU_IO_MAP(rtype2_portmap)
-
+ MCFG_CPU_PROGRAM_MAP(m82_map)
+ MCFG_CPU_IO_MAP(m82_portmap)
+#ifndef USE_HACKED_IRQS
+ MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("upd71059c", pic8259_device, inta_cb)
+#endif
MCFG_CPU_ADD("soundcpu", Z80, SOUND_CLOCK)
MCFG_CPU_PROGRAM_MAP(sound_rom_map)
MCFG_CPU_IO_MAP(rtype2_sound_portmap)
MCFG_CPU_PERIODIC_INT_DRIVER(m72_state, nmi_line_pulse, 128*55) /* clocked by V1? (Vigilante) */
/* IRQs are generated by main Z80 and YM2151 */
-
- MCFG_MACHINE_RESET_OVERRIDE(m72_state,xmultipl)
+ MCFG_PIC8259_ADD( "upd71059c", INPUTLINE("maincpu", 0), VCC, NULL)
/* video hardware */
- MCFG_GFXDECODE_ADD("gfxdecode", "palette", rtype2)
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", majtitle)
MCFG_PALETTE_ADD("palette", 512)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
- MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update)
+ MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_m82)
MCFG_SCREEN_PALETTE("palette")
- MCFG_VIDEO_START_OVERRIDE(m72_state,hharryu)
+ MCFG_VIDEO_START_OVERRIDE(m72_state,m82)
MCFG_FRAGMENT_ADD(m72_audio_chips)
-
MACHINE_CONFIG_END
-// not m72, different video system (less tiles regions?)
+
+/* Pound for Pound uses
+ M85-A-B / M85-B
+*/
+
static MACHINE_CONFIG_START( poundfor, m72_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", V30,MASTER_CLOCK/2/2) /* 16 MHz external freq (8MHz internal) */
MCFG_CPU_PROGRAM_MAP(rtype2_map)
MCFG_CPU_IO_MAP(poundfor_portmap)
-
+#ifndef USE_HACKED_IRQS
+ MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("upd71059c", pic8259_device, inta_cb)
+#endif
MCFG_CPU_ADD("soundcpu", Z80, SOUND_CLOCK)
MCFG_CPU_PROGRAM_MAP(sound_rom_map)
MCFG_CPU_IO_MAP(poundfor_sound_portmap)
MCFG_CPU_PERIODIC_INT_DRIVER(m72_state, fake_nmi, 128*55) /* clocked by V1? (Vigilante) */
/* IRQs are generated by main Z80 and YM2151 */
+ MCFG_PIC8259_ADD( "upd71059c", INPUTLINE("maincpu", 0), VCC, NULL)
+
/* video hardware */
MCFG_GFXDECODE_ADD("gfxdecode", "palette", rtype2)
MCFG_PALETTE_ADD("palette", 512)
@@ -2048,42 +2158,6 @@ static MACHINE_CONFIG_START( poundfor, m72_state )
MCFG_FRAGMENT_ADD(m72_audio_chips)
MACHINE_CONFIG_END
-// not m72, different video system (less tiles regions?)
-static MACHINE_CONFIG_START( cosmccop, m72_state )
-
- /* basic machine hardware */
- MCFG_CPU_ADD("maincpu", V35,MASTER_CLOCK/2)
- MCFG_CPU_PROGRAM_MAP(kengo_map)
- MCFG_CPU_IO_MAP(kengo_portmap)
-
- MCFG_CPU_ADD("soundcpu", Z80, SOUND_CLOCK)
- MCFG_CPU_PROGRAM_MAP(sound_rom_map)
- MCFG_CPU_IO_MAP(rtype2_sound_portmap)
- MCFG_CPU_PERIODIC_INT_DRIVER(m72_state, nmi_line_pulse, 128*55) /* clocked by V1? (Vigilante) */
- /* IRQs are generated by main Z80 and YM2151 */
-
- MCFG_MACHINE_START_OVERRIDE(m72_state,kengo)
- MCFG_MACHINE_RESET_OVERRIDE(m72_state,kengo)
-
- /* video hardware */
- MCFG_GFXDECODE_ADD("gfxdecode", "palette", rtype2)
- MCFG_PALETTE_ADD("palette", 512)
-
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
- MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
-
- MCFG_VIDEO_START_OVERRIDE(m72_state,poundfor)
-
- MCFG_FRAGMENT_ADD(m72_audio_chips)
-MACHINE_CONFIG_END
-
-static MACHINE_CONFIG_DERIVED( kengo, cosmccop )
- MCFG_CPU_MODIFY("maincpu")
- MCFG_V25_CONFIG(gunforce_decryption_table)
-MACHINE_CONFIG_END
-
/***************************************************************************
@@ -2100,7 +2174,7 @@ ROM_START( rtype )
ROM_LOAD16_BYTE( "rt_r-l1-b.3c", 0x20000, 0x10000, CRC(0df3573d) SHA1(0144c846fd0bdb3e4d790f6cb7bb64829e931b76) )
ROM_RELOAD( 0xe0000, 0x10000 )
- ROM_REGION( 0x80000, "gfx1", 0 ) /* Roms located on the M72-ROM-C rom board */
+ ROM_REGION( 0x80000, "sprites", 0 ) /* Roms located on the M72-ROM-C rom board */
ROM_LOAD( "rt_r-00.1h", 0x00000, 0x10000, CRC(dad53bc0) SHA1(1e3bc498861946278a0b1fe24259f5d224e265d7) ) /* sprites */
ROM_LOAD( "rt_r-01.1j", 0x10000, 0x08000, CRC(5e441e7f) SHA1(6741eb7f2d9d985b5a89eefc73ea44c3e38de6f7) )
ROM_RELOAD( 0x18000, 0x08000 )
@@ -2136,7 +2210,7 @@ ROM_START( rtypej )
ROM_LOAD16_BYTE( "rt_r-l1-.3c", 0x20000, 0x10000, CRC(4821141c) SHA1(df6cf04c3ecd04b6f27a96871848904575414dae) )
ROM_RELOAD( 0xe0000, 0x10000 )
- ROM_REGION( 0x80000, "gfx1", 0 ) /* Roms located on the M72-ROM-C rom board */
+ ROM_REGION( 0x80000, "sprites", 0 ) /* Roms located on the M72-ROM-C rom board */
ROM_LOAD( "rt_r-00.1h", 0x00000, 0x10000, CRC(dad53bc0) SHA1(1e3bc498861946278a0b1fe24259f5d224e265d7) ) /* sprites */
ROM_LOAD( "rt_r-01.1j", 0x10000, 0x08000, CRC(5e441e7f) SHA1(6741eb7f2d9d985b5a89eefc73ea44c3e38de6f7) )
ROM_RELOAD( 0x18000, 0x08000 )
@@ -2172,7 +2246,7 @@ ROM_START( rtypejp )
ROM_LOAD16_BYTE( "db_a2.bin", 0x20000, 0x10000, CRC(6098d86f) SHA1(c6c9c1c2c30d5f190c40e000004bd21606efb8b0) )
ROM_RELOAD( 0xe0000, 0x10000 )
- ROM_REGION( 0x80000, "gfx1", 0 ) /* Roms located on the M72-ROM-C rom board */
+ ROM_REGION( 0x80000, "sprites", 0 ) /* Roms located on the M72-ROM-C rom board */
ROM_LOAD( "rt_r-00.1h", 0x00000, 0x10000, CRC(dad53bc0) SHA1(1e3bc498861946278a0b1fe24259f5d224e265d7) ) /* sprites */
ROM_LOAD( "rt_r-01.1j", 0x10000, 0x08000, CRC(5e441e7f) SHA1(6741eb7f2d9d985b5a89eefc73ea44c3e38de6f7) )
ROM_RELOAD( 0x18000, 0x08000 )
@@ -2208,7 +2282,7 @@ ROM_START( rtypeu )
ROM_LOAD16_BYTE( "rt_r-l1-a.3c", 0x20000, 0x10000, CRC(c28b103b) SHA1(f294a23c3917b97812eb4c7f3a99253fd0cbb7ea) )
ROM_RELOAD( 0xe0000, 0x10000 )
- ROM_REGION( 0x80000, "gfx1", 0 ) /* Roms located on the M72-ROM-C rom board */
+ ROM_REGION( 0x80000, "sprites", 0 ) /* Roms located on the M72-ROM-C rom board */
ROM_LOAD( "rt_r-00.1h", 0x00000, 0x10000, CRC(dad53bc0) SHA1(1e3bc498861946278a0b1fe24259f5d224e265d7) ) /* sprites */
ROM_LOAD( "rt_r-01.1j", 0x10000, 0x08000, CRC(5e441e7f) SHA1(6741eb7f2d9d985b5a89eefc73ea44c3e38de6f7) )
ROM_RELOAD( 0x18000, 0x08000 )
@@ -2255,7 +2329,7 @@ ROM_START( rtypeb )
ROM_LOAD16_BYTE( "2.512", 0x20000, 0x10000, CRC(ada7b90e) SHA1(c9d2caed95b95d1c1718a10766bc88b2f8f51619) )
ROM_RELOAD( 0xe0000, 0x10000 )
- ROM_REGION( 0x80000, "gfx1", 0 ) /* Roms located on the M72-ROM-C rom board */
+ ROM_REGION( 0x80000, "sprites", 0 ) /* Roms located on the M72-ROM-C rom board */
ROM_LOAD( "rt_r-00.1h", 0x00000, 0x10000, CRC(dad53bc0) SHA1(1e3bc498861946278a0b1fe24259f5d224e265d7) ) /* sprites */
ROM_LOAD( "rt_r-01.1j", 0x10000, 0x08000, CRC(5e441e7f) SHA1(6741eb7f2d9d985b5a89eefc73ea44c3e38de6f7) )
ROM_RELOAD( 0x18000, 0x08000 )
@@ -2296,7 +2370,7 @@ ROM_START( bchopper )
ROM_REGION( 0x10000, "mcu", 0 )
ROM_LOAD( "bchopper_i8751.mcu", 0x00000, 0x10000, NO_DUMP ) // read protected
- ROM_REGION( 0x080000, "gfx1", 0 )
+ ROM_REGION( 0x080000, "sprites", 0 )
ROM_LOAD( "c-00-a.rom", 0x00000, 0x10000, CRC(f6e6e660) SHA1(e066e5ed37719cf2b6fd36e0117f11325bb06f9c) ) /* sprites */
ROM_LOAD( "c-01-b.rom", 0x10000, 0x10000, CRC(708cdd37) SHA1(24f3fcd381422f0d75410c2af7a56744e3b4a699) )
ROM_LOAD( "c-10-a.rom", 0x20000, 0x10000, CRC(292c8520) SHA1(c552090d295ee1c1ca611b0cddee356e509e2045) )
@@ -2336,7 +2410,7 @@ ROM_START( mrheli )
ROM_REGION( 0x10000, "mcu", 0 )
ROM_LOAD( "mh-c-pr.bin", 0x00000, 0x1000, CRC(897dc4ee) SHA1(05a24bf76e8fa9ca96ba9376cbf44d299df04138) )
- ROM_REGION( 0x080000, "gfx1", 0 )
+ ROM_REGION( 0x080000, "sprites", 0 )
ROM_LOAD( "mh-c-00.bin", 0x00000, 0x20000, CRC(dec4e121) SHA1(92169b523f1600e994e016dc1959a52958e1d89d) ) /* sprites */
ROM_LOAD( "mh-c-10.bin", 0x20000, 0x20000, CRC(7aaa151e) SHA1(efd980bb2eed7084354b7a4aa2f733cd2f876741) )
ROM_LOAD( "mh-c-20.bin", 0x40000, 0x20000, CRC(eae0de74) SHA1(3a2469c0eeb18131f989807afb50228f57ccea30) )
@@ -2499,7 +2573,7 @@ ROM_START( nspirit )
ROM_REGION( 0x10000, "mcu", 0 )
ROM_LOAD( "nin_c-pr.1c", 0x00000, 0x01000, NO_DUMP ) // sldh - read protected
- ROM_REGION( 0x080000, "gfx1", 0 )
+ ROM_REGION( 0x080000, "sprites", 0 )
ROM_LOAD( "nin-r00.7m", 0x00000, 0x20000, CRC(5f61d30b) SHA1(7754697e43f6117fa604f50885b76014b1dc5760) ) /* sprites */
ROM_LOAD( "nin-r10.7j", 0x20000, 0x20000, CRC(0caad107) SHA1(c4eff00327313e05ac8f7c6dbee3a0de1c83fadd) )
ROM_LOAD( "nin-r20.7f", 0x40000, 0x20000, CRC(ef3617d3) SHA1(16c175cf45559aacdea6e4002dd8a87f16817cfb) )
@@ -2549,7 +2623,7 @@ ROM_START( nspiritj )
ROM_REGION( 0x10000, "mcu", 0 )
ROM_LOAD( "nin_c-pr.1c", 0x00000, 0x01000, CRC(802d440a) SHA1(45b844b831aa6d5d002e3960e17fb5a058b02a29) ) /* checksum correct for Japan version only (see test mode) */
- ROM_REGION( 0x080000, "gfx1", 0 )
+ ROM_REGION( 0x080000, "sprites", 0 )
ROM_LOAD( "nin-r00.7m", 0x00000, 0x20000, CRC(5f61d30b) SHA1(7754697e43f6117fa604f50885b76014b1dc5760) ) /* sprites */
ROM_LOAD( "nin-r10.7j", 0x20000, 0x20000, CRC(0caad107) SHA1(c4eff00327313e05ac8f7c6dbee3a0de1c83fadd) )
ROM_LOAD( "nin-r20.7f", 0x40000, 0x20000, CRC(ef3617d3) SHA1(16c175cf45559aacdea6e4002dd8a87f16817cfb) )
@@ -2583,7 +2657,7 @@ ROM_START( imgfight )
ROM_REGION( 0x10000, "mcu", 0 )
ROM_LOAD( "imgfight_i8751h.bin", 0x00000, 0x01000, NO_DUMP )
- ROM_REGION( 0x080000, "gfx1", 0 )
+ ROM_REGION( 0x080000, "sprites", 0 )
ROM_LOAD( "if-c-00.bin", 0x00000, 0x20000, CRC(745e6638) SHA1(43fb1f9da4190fea67eee3aee8caf4219becc21b) ) /* sprites */
ROM_LOAD( "if-c-10.bin", 0x20000, 0x20000, CRC(b7108449) SHA1(1f41ebe7164fab86958caaf6749b99425e682657) )
ROM_LOAD( "if-c-20.bin", 0x40000, 0x20000, CRC(aef33cba) SHA1(2d8a8458207d0c790c81b1285366463c8540d190) )
@@ -2618,7 +2692,7 @@ ROM_START( imgfightj )
ROM_REGION( 0x10000, "mcu", 0 )
ROM_LOAD( "imgfightj_i8751h.bin", 0x00000, 0x01000, CRC(ef0d5098) SHA1(068b73937588e16a318a094dfe2fb1293b1a1711) )
- ROM_REGION( 0x080000, "gfx1", 0 )
+ ROM_REGION( 0x080000, "sprites", 0 )
ROM_LOAD( "if-c-00.bin", 0x00000, 0x20000, CRC(745e6638) SHA1(43fb1f9da4190fea67eee3aee8caf4219becc21b) ) /* sprites */
ROM_LOAD( "if-c-10.bin", 0x20000, 0x20000, CRC(b7108449) SHA1(1f41ebe7164fab86958caaf6749b99425e682657) )
ROM_LOAD( "if-c-20.bin", 0x40000, 0x20000, CRC(aef33cba) SHA1(2d8a8458207d0c790c81b1285366463c8540d190) )
@@ -2653,7 +2727,7 @@ ROM_START( loht )
ROM_REGION( 0x10000, "mcu", 0 )
ROM_LOAD( "loht_i8751.mcu", 0x00000, 0x10000, NO_DUMP ) // read protected
- ROM_REGION( 0x080000, "gfx1", 0 )
+ ROM_REGION( 0x080000, "sprites", 0 )
ROM_LOAD( "tom_m53.rom", 0x00000, 0x20000, CRC(0b83265f) SHA1(b31918d6442b79c9fe4f20410189788b050a994e) ) /* sprites */
ROM_LOAD( "tom_m51.rom", 0x20000, 0x20000, CRC(8ec5f6f3) SHA1(210f2753f5eeb06396758d21ab1778d459add247) )
ROM_LOAD( "tom_m49.rom", 0x40000, 0x20000, CRC(a41d3bfd) SHA1(536fb7c0321dbbc1a8b73e9647fba9c53a253fcc) )
@@ -2747,7 +2821,7 @@ ROM_START( lohtj )
ROM_REGION( 0x10000, "mcu", 0 )
ROM_LOAD( "tom_c-pr.bin", 0x00000, 0x01000, CRC(9fa9b496) SHA1(b529bcd7bf123894e11f2a8df8826932122e375a) )
- ROM_REGION( 0x080000, "gfx1", 0 )
+ ROM_REGION( 0x080000, "sprites", 0 )
ROM_LOAD( "r200", 0x00000, 0x20000, CRC(0b83265f) SHA1(b31918d6442b79c9fe4f20410189788b050a994e) ) /* sprites */
ROM_LOAD( "r210", 0x20000, 0x20000, CRC(8ec5f6f3) SHA1(210f2753f5eeb06396758d21ab1778d459add247) )
ROM_LOAD( "r220", 0x40000, 0x20000, CRC(a41d3bfd) SHA1(536fb7c0321dbbc1a8b73e9647fba9c53a253fcc) )
@@ -2789,7 +2863,7 @@ ROM_START( lohtb )
ROM_REGION( 0x10000, "soundcpu", 0 ) /* Sound CPU program (Z80) + Samples*/
ROM_LOAD( "lohtb01.02", 0x00000, 0x10000, CRC(e4bd8f03) SHA1(69fe41a978db92daa912cb345c2c7bafd2a6eb93) )
- ROM_REGION( 0x080000, "gfx1", 0 ) /* Sprites */
+ ROM_REGION( 0x080000, "sprites", 0 ) /* Sprites */
ROM_LOAD( "lohtb14.11", 0x00000, 0x10000, CRC(df5ac5ee) SHA1(5b45417ada402047d97dfb6cee6545686ad26e37) )
ROM_LOAD( "lohtb15.12", 0x20000, 0x10000, CRC(45220b01) SHA1(83715cf155f91c82067d69f14b3b01ed77777b7d) )
ROM_LOAD( "lohtb16.13", 0x40000, 0x10000, CRC(25b85cfc) SHA1(c7a9962165379193dc6553ed1f977795a79e0f78) )
@@ -2833,7 +2907,7 @@ ROM_START( lohtb2 )
ROM_REGION( 0x10000, "mcu", 0 )
ROM_LOAD( "loht-a26.bin", 0x00000, 0x02000, CRC(ac901e17) SHA1(70a73288d594c78ad2aca78ce55a699cb040bede) ) // unprotected??
- ROM_REGION( 0x080000, "gfx1", 0 )
+ ROM_REGION( 0x080000, "sprites", 0 )
ROM_LOAD( "loht-a16.bin", 0x00000, 0x10000, CRC(df5ac5ee) SHA1(5b45417ada402047d97dfb6cee6545686ad26e37) )
ROM_LOAD( "loht-a17.bin", 0x10000, 0x10000, CRC(d7ecf849) SHA1(ab86a88eae21e054d4e8a740a60c7c6c198232d4) )
ROM_LOAD( "loht-a8.bin", 0x20000, 0x10000, CRC(45220b01) SHA1(83715cf155f91c82067d69f14b3b01ed77777b7d) )
@@ -2860,6 +2934,194 @@ ROM_START( lohtb2 )
ROM_LOAD( "loht-a1.bin", 0x00000, 0x10000, CRC(3ed51d1f) SHA1(84f3aa17d640df91387e5f1f5b5971cf8dcd4e17) )
ROM_END
+
+ROM_START( xmultiplm72 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "ch3.h3", 0x00001, 0x20000, CRC(20685021) SHA1(92f4216320bf525045223b9454fb5bb224c536d8) )
+ ROM_LOAD16_BYTE( "cl3.l3", 0x00000, 0x20000, CRC(93fdd200) SHA1(dd4244ba0ce6c621136b0648374179da44363c01) )
+ ROM_LOAD16_BYTE( "ch0.h0", 0x40001, 0x10000, CRC(9438dd8a) SHA1(dc85789c47d31a96300b4236dc43f065e1b01e4a) )
+ ROM_RELOAD( 0xe0001, 0x10000 )
+ ROM_LOAD16_BYTE( "cl0.l0", 0x40000, 0x10000, CRC(06a9e213) SHA1(9831c110814642703d6e71d49848d854095b7d3a) )
+ ROM_RELOAD( 0xe0000, 0x10000 )
+
+ ROM_REGION( 0x10000, "mcu", 0 )
+ ROM_LOAD( "xmultipl_i8751h.bin", 0x00000, 0x01000, CRC(c8ceb3cd) SHA1(e5d20a3a9d7f0919604543c97643a03434d80130) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD( "t44.00", 0x00000, 0x20000, CRC(db45186e) SHA1(8c8edeb4b7e6b0516f2597823dc27eba9c5d9528) ) /* sprites */
+ ROM_LOAD( "t45.01", 0x20000, 0x20000, CRC(4d0764d4) SHA1(4942333336a110b033f16ac1afa06ffef7b2dad6) )
+ ROM_LOAD( "t46.10", 0x40000, 0x20000, CRC(f0c465a4) SHA1(69c107c860d4e8736431fd86b6821b70a8367eb3) )
+ ROM_LOAD( "t47.11", 0x60000, 0x20000, CRC(1263b24b) SHA1(0445a5381df3a868bed6967c8e5de7169e4be6a3) )
+ ROM_LOAD( "t48.20", 0x80000, 0x20000, CRC(4129944f) SHA1(988b072032d1667c3ac0731fada32fb6978505dc) )
+ ROM_LOAD( "t49.21", 0xa0000, 0x20000, CRC(2346e6f9) SHA1(b3de017dd0353e04d279f57e151c47f5fcc70e9c) )
+ ROM_LOAD( "t50.30", 0xc0000, 0x20000, CRC(e322543e) SHA1(b4c3a7f202d81485d5f0a7b7668ee89fc1edb215) )
+ ROM_LOAD( "t51.31", 0xe0000, 0x20000, CRC(229bf7b1) SHA1(ae42c7efbb6278dd3fa56842361138391f2d49ca) )
+
+ ROM_REGION( 0x080000, "gfx2", 0 )
+ ROM_LOAD( "t53.a0", 0x00000, 0x20000, CRC(1a082494) SHA1(63a3a84a262833d2cafab41e35df8f10a5e317b1) ) /* tiles #1 */
+ ROM_LOAD( "t54.a1", 0x20000, 0x20000, CRC(076c16c5) SHA1(4be858806b916953d59aceee550e721eaf3996a6) )
+ ROM_LOAD( "t55.a2", 0x40000, 0x20000, CRC(25d877a5) SHA1(48c948bf714c432f534c098123c8f50d5561756f) )
+ ROM_LOAD( "t56.a3", 0x60000, 0x20000, CRC(5b1213f5) SHA1(87782aa0bd04d4378c4ba78b63028ae2709da2f1) )
+
+ ROM_REGION( 0x080000, "gfx3", 0 )
+ ROM_LOAD( "t57.b0", 0x00000, 0x20000, CRC(0a84e0c7) SHA1(67ad181a7d2c431cb4bf45955e09754549a03576) ) /* tiles #2 */
+ ROM_LOAD( "t58.b1", 0x20000, 0x20000, CRC(a874121d) SHA1(1351d5901d55059c6472a4588a2e560396903861) )
+ ROM_LOAD( "t59.b2", 0x40000, 0x20000, CRC(69deb990) SHA1(1eed3183efbe576376661b45152a0a21240ecfc8) )
+ ROM_LOAD( "t60.b3", 0x60000, 0x20000, CRC(14c69f99) SHA1(4bea72f8bd421ef3ca559363f7473ce2e7038699) )
+
+ ROM_REGION( 0x20000, "samples", 0 ) /* samples */
+ ROM_LOAD( "t52.v0", 0x00000, 0x20000, CRC(2db1bd80) SHA1(657006d0642ec7fb949bb52821d78fe51a599415) )
+ROM_END
+
+
+
+
+
+ROM_START( dbreedm72 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "db_c-h3.rom", 0x00001, 0x20000, CRC(4bf3063c) SHA1(3f970c9ece2ac700738e217e0b31b3aba2848ab2) )
+ ROM_LOAD16_BYTE( "db_c-l3.rom", 0x00000, 0x20000, CRC(e4b89b79) SHA1(c312925940633e60fb5d0f05044c6e73e4f7fd54) )
+ ROM_LOAD16_BYTE( "db_c-h0.rom", 0x60001, 0x10000, CRC(5aa79fb2) SHA1(b7b862699ddccf90cf18d3822703078668aa1dc7) )
+ ROM_RELOAD( 0xe0001, 0x10000 )
+ ROM_LOAD16_BYTE( "db_c-l0.rom", 0x60000, 0x10000, CRC(ed0f5e06) SHA1(9030840b15e83c18d59c884ed08c93c05fa70c5b) )
+ ROM_RELOAD( 0xe0000, 0x10000 )
+
+ ROM_REGION( 0x10000, "mcu", 0 )
+ ROM_LOAD( "dbreedm72_i8751.mcu", 0x00000, 0x10000, NO_DUMP ) // read protected
+
+ ROM_REGION( 0x080000, "sprites", 0 )
+ ROM_LOAD( "db_k800m.00", 0x00000, 0x20000, CRC(c027a8cf) SHA1(534dc416b8f5587168c7f644d3f9438c8a190491) ) /* sprites */
+ ROM_LOAD( "db_k801m.10", 0x20000, 0x20000, CRC(093faf33) SHA1(2704f644cdce87daf975984f143b1d55ba731c3f) )
+ ROM_LOAD( "db_k802m.20", 0x40000, 0x20000, CRC(055b4c59) SHA1(71315dd7476612f138cb64b905648791d44eb7da) )
+ ROM_LOAD( "db_k803m.30", 0x60000, 0x20000, CRC(8ed63922) SHA1(51daa8a23e637f6b4394598ff4a1d26f65b59c8b) )
+
+ ROM_REGION( 0x080000, "gfx2", 0 ) // same roms are duplicated at a0-a3 and b0-b3, confirmed
+ ROM_LOAD( "db_k804m.a0", 0x00000, 0x20000, CRC(4c83e92e) SHA1(6dade027435c48ab48bd4516d16a9961d4dd6fad) ) /* tiles #1 */
+ ROM_LOAD( "db_k805m.a1", 0x20000, 0x20000, CRC(835ef268) SHA1(89d0bb15201440dffad3ef745970f95505d7ab03) )
+ ROM_LOAD( "db_k806m.a2", 0x40000, 0x20000, CRC(5117f114) SHA1(a401a3e638209b32d4101a5c2e2a8b4612eaa21b) )
+ ROM_LOAD( "db_k807m.a3", 0x60000, 0x20000, CRC(8eb0c978) SHA1(7fc55bbe4d0923db88492bb7160a89de34e11cd6) )
+
+ ROM_REGION( 0x080000, "gfx3", 0 )
+ ROM_LOAD( "db_k804m.b0", 0x00000, 0x20000, CRC(4c83e92e) SHA1(6dade027435c48ab48bd4516d16a9961d4dd6fad) ) /* tiles #2 */
+ ROM_LOAD( "db_k805m.b1", 0x20000, 0x20000, CRC(835ef268) SHA1(89d0bb15201440dffad3ef745970f95505d7ab03) )
+ ROM_LOAD( "db_k806m.b2", 0x40000, 0x20000, CRC(5117f114) SHA1(a401a3e638209b32d4101a5c2e2a8b4612eaa21b) )
+ ROM_LOAD( "db_k807m.b3", 0x60000, 0x20000, CRC(8eb0c978) SHA1(7fc55bbe4d0923db88492bb7160a89de34e11cd6) )
+
+ ROM_REGION( 0x20000, "samples", 0 ) /* samples */
+ ROM_LOAD( "db_c-v0.rom", 0x00000, 0x20000, CRC(312f7282) SHA1(742d56980b4618180e9a0e02051c5aec4d5cdae4) )
+ROM_END
+
+ROM_START( dkgensanm72 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "ge72-h0.bin", 0x00001, 0x20000, CRC(a0ad992c) SHA1(6de4105d8454c4e4e62762fdd7e22829acc2442b) )
+ ROM_LOAD16_BYTE( "ge72-l0.bin", 0x00000, 0x20000, CRC(996396f0) SHA1(1a2501ba46bcbc607f772765e8614bc442154a18) )
+ ROM_LOAD16_BYTE( "ge72-h3.bin", 0x60001, 0x10000, CRC(d8b86005) SHA1(dd626cfe50a823066c54cc24d9fdaaf03d61d1e7) )
+ ROM_RELOAD( 0xe0001, 0x10000 )
+ ROM_LOAD16_BYTE( "ge72-l3.bin", 0x60000, 0x10000, CRC(23d303a5) SHA1(b62010f34d71afb590deae458493454f9af38f7c) )
+ ROM_RELOAD( 0xe0000, 0x10000 )
+
+ ROM_REGION( 0x10000, "mcu", 0 )
+ ROM_LOAD( "dkgenm72_i8751.mcu", 0x00000, 0x10000, NO_DUMP ) // read protected
+
+ ROM_REGION( 0x080000, "sprites", 0 )
+ ROM_LOAD( "hh_00.rom", 0x00000, 0x20000, CRC(ec5127ef) SHA1(014ac8ad7b19cd9b475b72a0f42a4991119501c4) ) /* sprites */
+ ROM_LOAD( "hh_10.rom", 0x20000, 0x20000, CRC(def65294) SHA1(23f5d99fa9f604fde37cb52113bff233d9be1d25) )
+ ROM_LOAD( "hh_20.rom", 0x40000, 0x20000, CRC(bb0d6ad4) SHA1(4ab617fadfc32efad90ed7f0555513f167b0c43a) )
+ ROM_LOAD( "hh_30.rom", 0x60000, 0x20000, CRC(4351044e) SHA1(0d3ce3f4f1473fd997e70de91e7b5b5a5ec60ad4) )
+
+ ROM_REGION( 0x040000, "gfx2", 0 )
+ ROM_LOAD( "ge72b-a0.bin", 0x00000, 0x10000, CRC(f5f56b2a) SHA1(4ef6602052fa70e765d6d7747e672b7108b44f59) ) /* tiles #1 */
+ ROM_LOAD( "ge72-a1.bin", 0x10000, 0x10000, CRC(d194ea08) SHA1(0270897049cd256472df42f3dda856ee707535cd) )
+ ROM_LOAD( "ge72-a2.bin", 0x20000, 0x10000, CRC(2b06bcc3) SHA1(36378a4a69f3c3da96d2dc8df48916af8de50009) )
+ ROM_LOAD( "ge72-a3.bin", 0x30000, 0x10000, CRC(94b96bfa) SHA1(33c1e9045e7a984097f3fe4954b20d954cffbafa) )
+
+ ROM_REGION( 0x040000, "gfx3", 0 )
+ ROM_LOAD( "ge72-b0.bin", 0x00000, 0x10000, CRC(208796b3) SHA1(38b90732c8d5c77ee84053364a8a7e3daaaabe66) ) /* tiles #2 */
+ ROM_LOAD( "ge72-b1.bin", 0x10000, 0x10000, CRC(b4a7f490) SHA1(851b40650fc8920b49f43f9cc6f19e845a25e945) )
+ ROM_LOAD( "ge72b-b2.bin", 0x20000, 0x10000, CRC(34fe8f7f) SHA1(fbf8839b26be55ad83ad4db538ba3e196c1ab945) )
+ ROM_LOAD( "ge72b-b3.bin", 0x30000, 0x10000, CRC(4b0e92f4) SHA1(16ad9220ca6708028cea18c1c4b57e2b6eb425b4) )
+
+ ROM_REGION( 0x20000, "samples", 0 ) /* samples */
+ ROM_LOAD( "gen-vo.bin", 0x00000, 0x20000, CRC(d8595c66) SHA1(97920c9947fbac609fb901415e5471c6e4ca066c) )
+ROM_END
+
+
+ROM_START( airduelm72 )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "ad-c-h0.bin", 0x00001, 0x20000, CRC(12140276) SHA1(f218c5f2e6795b6295dea064817d7d6b1a7762b6) )
+ ROM_LOAD16_BYTE( "ad-c-l0.bin", 0x00000, 0x20000, CRC(4ac0b91d) SHA1(97e2f633181cd5c25927fd0e2988af2acdb3f388) )
+ ROM_LOAD16_BYTE( "ad-c-h3.bin", 0x40001, 0x20000, CRC(9f7cfca3) SHA1(becf827aa7749c54f1c435ea224e1fd9c8b3f5f9) )
+ ROM_RELOAD( 0xc0001, 0x20000 )
+ ROM_LOAD16_BYTE( "ad-c-l3.bin", 0x40000, 0x20000, CRC(9dd343f7) SHA1(9f499936b6d3807aa5b5c18e9811c73c9a2c99f9) )
+ ROM_RELOAD( 0xc0000, 0x20000 )
+
+ ROM_REGION( 0x10000, "mcu", 0 )
+ ROM_LOAD( "airduel_i8751.mcu", 0x00000, 0x10000, NO_DUMP ) // read protected
+
+ ROM_REGION( 0x080000, "sprites", 0 )
+ ROM_LOAD( "ad-00.bin", 0x00000, 0x20000, CRC(2f0d599b) SHA1(a966f806b5e25bb98cc63c46c49e0e676a62afcf) ) /* sprites */
+ ROM_LOAD( "ad-10.bin", 0x20000, 0x20000, CRC(9865856b) SHA1(b18a06899ae29d45e2351594df544220f3f4485a) )
+ ROM_LOAD( "ad-20.bin", 0x40000, 0x20000, CRC(d392aef2) SHA1(0f639a07066cadddc3884eb490885a8745571567) )
+ ROM_LOAD( "ad-30.bin", 0x60000, 0x20000, CRC(923240c3) SHA1(f587a83329087a715a3e42110f74f104e8c8ef1f) )
+
+ ROM_REGION( 0x080000, "gfx2", 0 )
+ ROM_LOAD( "ad-a0.bin", 0x00000, 0x20000, CRC(ce134b47) SHA1(841358cc222c81b8a91edc262f355310d50b4dbb) ) /* tiles #1 */
+ ROM_LOAD( "ad-a1.bin", 0x20000, 0x20000, CRC(097fd853) SHA1(8e08f4f4a747c899bb8e21b347635e26af9edc2d) )
+ ROM_LOAD( "ad-a2.bin", 0x40000, 0x20000, CRC(6a94c1b9) SHA1(55174acbac54236e5fc1b80d120cd6da9fe5524c) )
+ ROM_LOAD( "ad-a3.bin", 0x60000, 0x20000, CRC(6637c349) SHA1(27cb7c89ab73292b43f8ae3c0d803a01ef3d3936) )
+
+ ROM_REGION( 0x080000, "gfx3", 0 )
+ ROM_LOAD( "ad-b0.bin", 0x00000, 0x20000, CRC(ce134b47) SHA1(841358cc222c81b8a91edc262f355310d50b4dbb) ) /* tiles #2 */
+ ROM_LOAD( "ad-b1.bin", 0x20000, 0x20000, CRC(097fd853) SHA1(8e08f4f4a747c899bb8e21b347635e26af9edc2d) )
+ ROM_LOAD( "ad-b2.bin", 0x40000, 0x20000, CRC(6a94c1b9) SHA1(55174acbac54236e5fc1b80d120cd6da9fe5524c) )
+ ROM_LOAD( "ad-b3.bin", 0x60000, 0x20000, CRC(6637c349) SHA1(27cb7c89ab73292b43f8ae3c0d803a01ef3d3936) )
+
+ ROM_REGION( 0x20000, "samples", 0 ) /* samples */
+ ROM_LOAD( "ad-v0.bin", 0x00000, 0x20000, CRC(339f474d) SHA1(a81bb52598a0e31b2ed6a538755237c5d14d1844) )
+ROM_END
+
+ROM_START( gallop )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "cc-c-h0.bin", 0x00001, 0x20000, CRC(2217dcd0) SHA1(9485b6c3eec99e720439e69dcbe0e55798bbff1c) )
+ ROM_LOAD16_BYTE( "cc-c-l0.bin", 0x00000, 0x20000, CRC(ff39d7fb) SHA1(fad95f76050fce04464268b5edff6622b2cb798f) )
+ ROM_LOAD16_BYTE( "cc-c-h3.bin", 0x40001, 0x20000, CRC(9b2bbab9) SHA1(255d4dda55be667f5f1f4324e9e66111738e79b3) )
+ ROM_RELOAD( 0xc0001, 0x20000 )
+ ROM_LOAD16_BYTE( "cc-c-l3.bin", 0x40000, 0x20000, CRC(acd3278e) SHA1(83d7ddfbdb4bc9548a179b728351a21b3b0ac134) )
+ ROM_RELOAD( 0xc0000, 0x20000 )
+
+ ROM_REGION( 0x10000, "mcu", 0 )
+ ROM_LOAD( "gallop_i8751.mcu", 0x00000, 0x10000, NO_DUMP ) // read protected (only used for sample triggering, not supplying code / warning screens)
+
+ ROM_REGION( 0x080000, "sprites", 0 )
+ ROM_LOAD( "cc-c-00.bin", 0x00000, 0x20000, CRC(9d99deaa) SHA1(acf16bea0f482306107d2a305c568406b6c21e9a) ) /* sprites */
+ ROM_LOAD( "cc-c-10.bin", 0x20000, 0x20000, CRC(7eb083ed) SHA1(31fa7d532fd46e861c3d19d5b08661653f685a49) )
+ ROM_LOAD( "cc-c-20.bin", 0x40000, 0x20000, CRC(9421489e) SHA1(e43d042bf8b4ebed93558d74ec479ec60a01ca5c) )
+ ROM_LOAD( "cc-c-30.bin", 0x60000, 0x20000, CRC(920ec735) SHA1(2d0949b43dddce7317c45910d6e4868ddf010806) )
+
+ ROM_REGION( 0x040000, "gfx2", 0 )
+ ROM_LOAD( "cc-b-a0.bin", 0x00000, 0x10000, CRC(a33472bd) SHA1(962047fe3dd1fb996285ecef615a8ebdb529adef) ) /* tiles #1 */
+ ROM_LOAD( "cc-b-a1.bin", 0x10000, 0x10000, CRC(118b1f2d) SHA1(7413ccc67a8aa9dae156e6ee122b1ca5beeb9a76) )
+ ROM_LOAD( "cc-b-a2.bin", 0x20000, 0x10000, CRC(83cebf48) SHA1(12847827ecbf6b493eb9dbddd0a469729d87a451) )
+ ROM_LOAD( "cc-b-a3.bin", 0x30000, 0x10000, CRC(572903fc) SHA1(03305301bcf939e97044e746594736b1ca1d7c0a) )
+
+ ROM_REGION( 0x040000, "gfx3", 0 )
+ ROM_LOAD( "cc-b-b0.bin", 0x00000, 0x10000, CRC(0df5b439) SHA1(0775cf92139a111542c8b5f940da0f7f43020982) ) /* tiles #2 */
+ ROM_LOAD( "cc-b-b1.bin", 0x10000, 0x10000, CRC(010b778f) SHA1(cc5bfeb0fbe0ed2fe513458c5785ec0ce5b02f53) )
+ ROM_LOAD( "cc-b-b2.bin", 0x20000, 0x10000, CRC(bda9f6fb) SHA1(a6b655ae5bff0568c1fb56ee8a3874fc6524052c) )
+ ROM_LOAD( "cc-b-b3.bin", 0x30000, 0x10000, CRC(d361ba3f) SHA1(7348fdae03e997e05187a2726eb221edb92553df) )
+
+ ROM_REGION( 0x20000, "samples", 0 ) /* samples */
+ ROM_LOAD( "cc-c-v0.bin", 0x00000, 0x20000, CRC(6247bade) SHA1(4bc9f86acd09908c74b1ab0e7817c4ff1cad6f0b) )
+ROM_END
+
+
+
+
+/*****************************
+ M81 sets
+******************************/
+
+
ROM_START( xmultipl )
ROM_REGION( 0x100000, "maincpu", 0 )
ROM_LOAD16_BYTE( "xm-a-h1-.ic58", 0x00001, 0x20000, CRC(449048cf) SHA1(871b588177fb018937d143f76eda18aa53b0f6c4) )
@@ -2872,7 +3134,7 @@ ROM_START( xmultipl )
ROM_REGION( 0x10000, "soundcpu", 0 )
ROM_LOAD( "xm-a-sp-.ic14", 0x00000, 0x10000, CRC(006eef56) SHA1(917b26b200fa4c1692d4c7ca0ea0f7897e3e3b7b) )
- ROM_REGION( 0x100000, "gfx1", 0 )
+ ROM_REGION( 0x100000, "sprites", 0 )
ROM_LOAD( "t44.00", 0x00000, 0x20000, CRC(db45186e) SHA1(8c8edeb4b7e6b0516f2597823dc27eba9c5d9528) ) /* sprites */
ROM_LOAD( "t45.01", 0x20000, 0x20000, CRC(4d0764d4) SHA1(4942333336a110b033f16ac1afa06ffef7b2dad6) )
ROM_LOAD( "t46.10", 0x40000, 0x20000, CRC(f0c465a4) SHA1(69c107c860d4e8736431fd86b6821b70a8367eb3) )
@@ -2889,6 +3151,7 @@ ROM_START( xmultipl )
ROM_LOAD( "t56.a3", 0x60000, 0x20000, CRC(5b1213f5) SHA1(87782aa0bd04d4378c4ba78b63028ae2709da2f1) )
ROM_REGION( 0x080000, "gfx3", 0 )
+ /* b0-b3 are populated, Jumper J3 on the M81-B-B board is set to 'W' meaning use the ROMs from the b0-b3 positions*/
ROM_LOAD( "t57.b0", 0x00000, 0x20000, CRC(0a84e0c7) SHA1(67ad181a7d2c431cb4bf45955e09754549a03576) ) /* tiles #2 */
ROM_LOAD( "t58.b1", 0x20000, 0x20000, CRC(a874121d) SHA1(1351d5901d55059c6472a4588a2e560396903861) )
ROM_LOAD( "t59.b2", 0x40000, 0x20000, CRC(69deb990) SHA1(1eed3183efbe576376661b45152a0a21240ecfc8) )
@@ -2902,42 +3165,36 @@ ROM_START( xmultipl )
ROM_LOAD( "m81_a-9p-.ic74", 0x0100, 0x0100, CRC(a4f2c4bc) SHA1(f13b0a4b52dcc6704063b676f09d83dcba170133) )
ROM_END
-ROM_START( xmultiplm72 )
+
+ROM_START( hharry )
ROM_REGION( 0x100000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "ch3.h3", 0x00001, 0x20000, CRC(20685021) SHA1(92f4216320bf525045223b9454fb5bb224c536d8) )
- ROM_LOAD16_BYTE( "cl3.l3", 0x00000, 0x20000, CRC(93fdd200) SHA1(dd4244ba0ce6c621136b0648374179da44363c01) )
- ROM_LOAD16_BYTE( "ch0.h0", 0x40001, 0x10000, CRC(9438dd8a) SHA1(dc85789c47d31a96300b4236dc43f065e1b01e4a) )
+ ROM_LOAD16_BYTE( "a-h0-v.rom", 0x00001, 0x20000, CRC(c52802a5) SHA1(7180189c886aebe8d3e7fd38922916cecfddae32) )
+ ROM_LOAD16_BYTE( "a-l0-v.rom", 0x00000, 0x20000, CRC(f463074c) SHA1(aca86345610e65848c276ab278092d35ba215916) )
+ ROM_LOAD16_BYTE( "a-h1-0.rom", 0x60001, 0x10000, CRC(3ae21335) SHA1(780d7a0c5bebe4b914ea5b3741e30630f8c29a4f) )
ROM_RELOAD( 0xe0001, 0x10000 )
- ROM_LOAD16_BYTE( "cl0.l0", 0x40000, 0x10000, CRC(06a9e213) SHA1(9831c110814642703d6e71d49848d854095b7d3a) )
+ ROM_LOAD16_BYTE( "a-l1-0.rom", 0x60000, 0x10000, CRC(bc6ac5f9) SHA1(c6afba4967a8055f6b63827697425eac743f5a75) )
ROM_RELOAD( 0xe0000, 0x10000 )
- ROM_REGION( 0x10000, "mcu", 0 )
- ROM_LOAD( "xmultipl_i8751h.bin", 0x00000, 0x01000, CRC(c8ceb3cd) SHA1(e5d20a3a9d7f0919604543c97643a03434d80130) )
+ ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_LOAD( "a-sp-0.rom", 0x00000, 0x10000, CRC(80e210e7) SHA1(66cff58fb37c52e1d8e0567e13b774253e862585) )
- ROM_REGION( 0x100000, "gfx1", 0 )
- ROM_LOAD( "t44.00", 0x00000, 0x20000, CRC(db45186e) SHA1(8c8edeb4b7e6b0516f2597823dc27eba9c5d9528) ) /* sprites */
- ROM_LOAD( "t45.01", 0x20000, 0x20000, CRC(4d0764d4) SHA1(4942333336a110b033f16ac1afa06ffef7b2dad6) )
- ROM_LOAD( "t46.10", 0x40000, 0x20000, CRC(f0c465a4) SHA1(69c107c860d4e8736431fd86b6821b70a8367eb3) )
- ROM_LOAD( "t47.11", 0x60000, 0x20000, CRC(1263b24b) SHA1(0445a5381df3a868bed6967c8e5de7169e4be6a3) )
- ROM_LOAD( "t48.20", 0x80000, 0x20000, CRC(4129944f) SHA1(988b072032d1667c3ac0731fada32fb6978505dc) )
- ROM_LOAD( "t49.21", 0xa0000, 0x20000, CRC(2346e6f9) SHA1(b3de017dd0353e04d279f57e151c47f5fcc70e9c) )
- ROM_LOAD( "t50.30", 0xc0000, 0x20000, CRC(e322543e) SHA1(b4c3a7f202d81485d5f0a7b7668ee89fc1edb215) )
- ROM_LOAD( "t51.31", 0xe0000, 0x20000, CRC(229bf7b1) SHA1(ae42c7efbb6278dd3fa56842361138391f2d49ca) )
+ ROM_REGION( 0x080000, "sprites", 0 )
+ ROM_LOAD( "hh_00.rom", 0x00000, 0x20000, CRC(ec5127ef) SHA1(014ac8ad7b19cd9b475b72a0f42a4991119501c4) ) /* sprites */
+ ROM_LOAD( "hh_10.rom", 0x20000, 0x20000, CRC(def65294) SHA1(23f5d99fa9f604fde37cb52113bff233d9be1d25) )
+ ROM_LOAD( "hh_20.rom", 0x40000, 0x20000, CRC(bb0d6ad4) SHA1(4ab617fadfc32efad90ed7f0555513f167b0c43a) )
+ ROM_LOAD( "hh_30.rom", 0x60000, 0x20000, CRC(4351044e) SHA1(0d3ce3f4f1473fd997e70de91e7b5b5a5ec60ad4) )
- ROM_REGION( 0x080000, "gfx2", 0 )
- ROM_LOAD( "t53.a0", 0x00000, 0x20000, CRC(1a082494) SHA1(63a3a84a262833d2cafab41e35df8f10a5e317b1) ) /* tiles #1 */
- ROM_LOAD( "t54.a1", 0x20000, 0x20000, CRC(076c16c5) SHA1(4be858806b916953d59aceee550e721eaf3996a6) )
- ROM_LOAD( "t55.a2", 0x40000, 0x20000, CRC(25d877a5) SHA1(48c948bf714c432f534c098123c8f50d5561756f) )
- ROM_LOAD( "t56.a3", 0x60000, 0x20000, CRC(5b1213f5) SHA1(87782aa0bd04d4378c4ba78b63028ae2709da2f1) )
+ ROM_REGION( 0x080000, "gfx2", ROMREGION_ERASEFF )
+ ROM_LOAD( "hh_a0.rom", 0x00000, 0x20000, CRC(c577ba5f) SHA1(c882e58cf64deca8eee6f14f3df43ecc932488fc) ) /* tiles */
+ ROM_LOAD( "hh_a1.rom", 0x20000, 0x20000, CRC(429d12ab) SHA1(ccba25eab981fc4e664f76e06a2964066f2ae2e8) )
+ ROM_LOAD( "hh_a2.rom", 0x40000, 0x20000, CRC(b5b163b0) SHA1(82a708fea4953a7c4dcd1d4a1b07f302221ba30b) )
+ ROM_LOAD( "hh_a3.rom", 0x60000, 0x20000, CRC(8ef566a1) SHA1(3afb020a7317efe89c18b2a7773894ce28499d49) )
- ROM_REGION( 0x080000, "gfx3", 0 )
- ROM_LOAD( "t57.b0", 0x00000, 0x20000, CRC(0a84e0c7) SHA1(67ad181a7d2c431cb4bf45955e09754549a03576) ) /* tiles #2 */
- ROM_LOAD( "t58.b1", 0x20000, 0x20000, CRC(a874121d) SHA1(1351d5901d55059c6472a4588a2e560396903861) )
- ROM_LOAD( "t59.b2", 0x40000, 0x20000, CRC(69deb990) SHA1(1eed3183efbe576376661b45152a0a21240ecfc8) )
- ROM_LOAD( "t60.b3", 0x60000, 0x20000, CRC(14c69f99) SHA1(4bea72f8bd421ef3ca559363f7473ce2e7038699) )
+ ROM_REGION( 0x080000, "gfx3", ROMREGION_ERASEFF )
+ /* b0-b3 are unpopulated, Jumper J3 on the M81-B-B board is set to 'S' meaning use the ROMs from the a0-a3 positions*/
ROM_REGION( 0x20000, "samples", 0 ) /* samples */
- ROM_LOAD( "t52.v0", 0x00000, 0x20000, CRC(2db1bd80) SHA1(657006d0642ec7fb949bb52821d78fe51a599415) )
+ ROM_LOAD( "a-v0-0.rom", 0x00000, 0x20000, CRC(faaacaff) SHA1(ea3a3920255c07aa9c0a7e0191eae257a9f7f558) )
ROM_END
ROM_START( dbreed )
@@ -2952,56 +3209,206 @@ ROM_START( dbreed )
ROM_REGION( 0x10000, "soundcpu", 0 )
ROM_LOAD( "db-a-sp-.14", 0x00000, 0x10000, CRC(54a61560) SHA1(e5fccfcedcadbab1667900f98370043c1907dd89) )
- ROM_REGION( 0x080000, "gfx1", 0 )
+ ROM_REGION( 0x080000, "sprites", 0 )
ROM_LOAD( "db_k800m.00", 0x00000, 0x20000, CRC(c027a8cf) SHA1(534dc416b8f5587168c7f644d3f9438c8a190491) ) /* sprites */
ROM_LOAD( "db_k801m.10", 0x20000, 0x20000, CRC(093faf33) SHA1(2704f644cdce87daf975984f143b1d55ba731c3f) )
ROM_LOAD( "db_k802m.20", 0x40000, 0x20000, CRC(055b4c59) SHA1(71315dd7476612f138cb64b905648791d44eb7da) )
ROM_LOAD( "db_k803m.30", 0x60000, 0x20000, CRC(8ed63922) SHA1(51daa8a23e637f6b4394598ff4a1d26f65b59c8b) )
- ROM_REGION( 0x080000, "gfx2", 0 )
+ ROM_REGION( 0x080000, "gfx2", ROMREGION_ERASEFF )
ROM_LOAD( "db_k804m.a0", 0x00000, 0x20000, CRC(4c83e92e) SHA1(6dade027435c48ab48bd4516d16a9961d4dd6fad) ) /* tiles */
ROM_LOAD( "db_k805m.a1", 0x20000, 0x20000, CRC(835ef268) SHA1(89d0bb15201440dffad3ef745970f95505d7ab03) )
ROM_LOAD( "db_k806m.a2", 0x40000, 0x20000, CRC(5117f114) SHA1(a401a3e638209b32d4101a5c2e2a8b4612eaa21b) )
ROM_LOAD( "db_k807m.a3", 0x60000, 0x20000, CRC(8eb0c978) SHA1(7fc55bbe4d0923db88492bb7160a89de34e11cd6) )
+ ROM_REGION( 0x080000, "gfx3", ROMREGION_ERASEFF )
+ /* b0-b3 are unpopulated, Jumper J3 on the M81-B-B board is set to 'S' meaning use the ROMs from the a0-a3 positions*/
+
ROM_REGION( 0x20000, "samples", 0 ) /* samples */
ROM_LOAD( "db_a-v0.rom", 0x00000, 0x20000, CRC(312f7282) SHA1(742d56980b4618180e9a0e02051c5aec4d5cdae4) )
ROM_END
-ROM_START( dbreedm72 )
+
+/*****************************
+ M82 sets
+******************************/
+
+ROM_START( majtitle )
ROM_REGION( 0x100000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "db_c-h3.rom", 0x00001, 0x20000, CRC(4bf3063c) SHA1(3f970c9ece2ac700738e217e0b31b3aba2848ab2) )
- ROM_LOAD16_BYTE( "db_c-l3.rom", 0x00000, 0x20000, CRC(e4b89b79) SHA1(c312925940633e60fb5d0f05044c6e73e4f7fd54) )
- ROM_LOAD16_BYTE( "db_c-h0.rom", 0x60001, 0x10000, CRC(5aa79fb2) SHA1(b7b862699ddccf90cf18d3822703078668aa1dc7) )
- ROM_RELOAD( 0xe0001, 0x10000 )
- ROM_LOAD16_BYTE( "db_c-l0.rom", 0x60000, 0x10000, CRC(ed0f5e06) SHA1(9030840b15e83c18d59c884ed08c93c05fa70c5b) )
- ROM_RELOAD( 0xe0000, 0x10000 )
+ ROM_LOAD16_BYTE( "mt_h0-a.bin", 0x00001, 0x20000, CRC(36aadb67) SHA1(11cb9f190431ef7b68bcad691191c810b00452be) )
+ ROM_LOAD16_BYTE( "mt_l0-a.bin", 0x00000, 0x20000, CRC(2e1b6242) SHA1(a1d36c1bad7eb874e6b37a372d0ff95452b09315) )
+ ROM_LOAD16_BYTE( "mt_h1-a.bin", 0x40001, 0x20000, CRC(e1402a22) SHA1(97ecf3cf5438dd3aad65554b672a4e401917dc34) )
+ ROM_RELOAD( 0xc0001, 0x20000 )
+ ROM_LOAD16_BYTE( "mt_l1-a.bin", 0x40000, 0x20000, CRC(0efa409a) SHA1(2b4fd62705398c7ac1647f6ea821f722b4f7496f) )
+ ROM_RELOAD( 0xc0000, 0x20000 )
- ROM_REGION( 0x10000, "mcu", 0 )
- ROM_LOAD( "dbreedm72_i8751.mcu", 0x00000, 0x10000, NO_DUMP ) // read protected
+ ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_LOAD( "mt_sp.bin", 0x00000, 0x10000, CRC(e44260a9) SHA1(a2512033c8cca9a8064eae1ada721202edf06e8e) )
- ROM_REGION( 0x080000, "gfx1", 0 )
- ROM_LOAD( "db_k800m.00", 0x00000, 0x20000, CRC(c027a8cf) SHA1(534dc416b8f5587168c7f644d3f9438c8a190491) ) /* sprites */
- ROM_LOAD( "db_k801m.10", 0x20000, 0x20000, CRC(093faf33) SHA1(2704f644cdce87daf975984f143b1d55ba731c3f) )
- ROM_LOAD( "db_k802m.20", 0x40000, 0x20000, CRC(055b4c59) SHA1(71315dd7476612f138cb64b905648791d44eb7da) )
- ROM_LOAD( "db_k803m.30", 0x60000, 0x20000, CRC(8ed63922) SHA1(51daa8a23e637f6b4394598ff4a1d26f65b59c8b) )
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD( "mt_n0.bin", 0x00000, 0x40000, CRC(5618cddc) SHA1(16d34b431ab9b72067fa669d694e635c88aeb261) ) /* sprites #1 */
+ ROM_LOAD( "mt_n1.bin", 0x40000, 0x40000, CRC(483b873b) SHA1(654efd67b2102521e8c46cd57cefa2cc64cf4fd3) )
+ ROM_LOAD( "mt_n2.bin", 0x80000, 0x40000, CRC(4f5d665b) SHA1(f539d0f5c738ffabfac16121706abe3bb3b2a1fa) )
+ ROM_LOAD( "mt_n3.bin", 0xc0000, 0x40000, CRC(83571549) SHA1(ce0b89aa4b3e3e1cf6ec6136f956577267cdd9d3) )
ROM_REGION( 0x080000, "gfx2", 0 )
- ROM_LOAD( "db_k804m.a0", 0x00000, 0x20000, CRC(4c83e92e) SHA1(6dade027435c48ab48bd4516d16a9961d4dd6fad) ) /* tiles #1 */
- ROM_LOAD( "db_k805m.a1", 0x20000, 0x20000, CRC(835ef268) SHA1(89d0bb15201440dffad3ef745970f95505d7ab03) )
- ROM_LOAD( "db_k806m.a2", 0x40000, 0x20000, CRC(5117f114) SHA1(a401a3e638209b32d4101a5c2e2a8b4612eaa21b) )
- ROM_LOAD( "db_k807m.a3", 0x60000, 0x20000, CRC(8eb0c978) SHA1(7fc55bbe4d0923db88492bb7160a89de34e11cd6) )
+ ROM_LOAD( "mt_c0.bin", 0x00000, 0x20000, CRC(780e7a02) SHA1(9776ecb8b5d86636061f8360464001a63bec0842) ) /* tiles */
+ ROM_LOAD( "mt_c1.bin", 0x20000, 0x20000, CRC(45ad1381) SHA1(de281398dcd1c547bde9fa86f8ca409dd8d4aa6c) )
+ ROM_LOAD( "mt_c2.bin", 0x40000, 0x20000, CRC(5df5856d) SHA1(f16163f672de6701b411315c9956ddb74c8464ce) )
+ ROM_LOAD( "mt_c3.bin", 0x60000, 0x20000, CRC(f5316cc8) SHA1(123892d4a7e8d98582ea736afe659afdba8c5f87) )
- ROM_REGION( 0x080000, "gfx3", 0 )
- ROM_LOAD( "db_k804m.b0", 0x00000, 0x20000, CRC(4c83e92e) SHA1(6dade027435c48ab48bd4516d16a9961d4dd6fad) ) /* tiles #2 */
- ROM_LOAD( "db_k805m.b1", 0x20000, 0x20000, CRC(835ef268) SHA1(89d0bb15201440dffad3ef745970f95505d7ab03) )
- ROM_LOAD( "db_k806m.b2", 0x40000, 0x20000, CRC(5117f114) SHA1(a401a3e638209b32d4101a5c2e2a8b4612eaa21b) )
- ROM_LOAD( "db_k807m.b3", 0x60000, 0x20000, CRC(8eb0c978) SHA1(7fc55bbe4d0923db88492bb7160a89de34e11cd6) )
+ ROM_REGION( 0x080000, "sprites2", 0 )
+ ROM_LOAD( "mt_f0.bin", 0x00000, 0x20000, CRC(2d5e05d5) SHA1(18bdc9c561dbf0f91642161ca985d2154bd58b5d) ) /* sprites #2 */
+ ROM_LOAD( "mt_f1.bin", 0x20000, 0x20000, CRC(c68cd65f) SHA1(8999b558b4af0f453ada9e4ef705163df96844e6) )
+ ROM_LOAD( "mt_f2.bin", 0x40000, 0x20000, CRC(a71feb2d) SHA1(47e366b422772bed08ee4d1c338970687d6c3b4c) )
+ ROM_LOAD( "mt_f3.bin", 0x60000, 0x20000, CRC(179f7562) SHA1(6d28b199daffc62e8fa9009878ac0bb976ccbb2a) )
ROM_REGION( 0x20000, "samples", 0 ) /* samples */
- ROM_LOAD( "db_c-v0.rom", 0x00000, 0x20000, CRC(312f7282) SHA1(742d56980b4618180e9a0e02051c5aec4d5cdae4) )
+ ROM_LOAD( "mt_vo.bin", 0x00000, 0x20000, CRC(eb24bb2c) SHA1(9fca04fba0249e8213dd164eb6829e1a5acbee65) )
+ROM_END
+
+ROM_START( majtitlej )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "mt_h0.bin", 0x00001, 0x20000, CRC(b9682c70) SHA1(b979c0a630397f2a2eb73709cf12c5262c973782) )
+ ROM_LOAD16_BYTE( "mt_l0.bin", 0x00000, 0x20000, CRC(702c9fd6) SHA1(84a5e9e64f4bf235d115f5648b4a108f710ade1d) )
+ ROM_LOAD16_BYTE( "mt_h1.bin", 0x40001, 0x20000, CRC(d9e97c30) SHA1(97f59b614eeeced0a414f8a1693590525a58f788) )
+ ROM_RELOAD( 0xc0001, 0x20000 )
+ ROM_LOAD16_BYTE( "mt_l1.bin", 0x40000, 0x20000, CRC(8dbd91b5) SHA1(2bd01f3fba0fa1ca4b6f8ff57e7dc4434c42ce48) )
+ ROM_RELOAD( 0xc0000, 0x20000 )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_LOAD( "mt_sp.bin", 0x00000, 0x10000, CRC(e44260a9) SHA1(a2512033c8cca9a8064eae1ada721202edf06e8e) )
+
+ ROM_REGION( 0x100000, "sprites", 0 )
+ ROM_LOAD( "mt_n0.bin", 0x00000, 0x40000, CRC(5618cddc) SHA1(16d34b431ab9b72067fa669d694e635c88aeb261) ) /* sprites #1 */
+ ROM_LOAD( "mt_n1.bin", 0x40000, 0x40000, CRC(483b873b) SHA1(654efd67b2102521e8c46cd57cefa2cc64cf4fd3) )
+ ROM_LOAD( "mt_n2.bin", 0x80000, 0x40000, CRC(4f5d665b) SHA1(f539d0f5c738ffabfac16121706abe3bb3b2a1fa) )
+ ROM_LOAD( "mt_n3.bin", 0xc0000, 0x40000, CRC(83571549) SHA1(ce0b89aa4b3e3e1cf6ec6136f956577267cdd9d3) )
+
+ ROM_REGION( 0x080000, "gfx2", 0 )
+ ROM_LOAD( "mt_c0.bin", 0x00000, 0x20000, CRC(780e7a02) SHA1(9776ecb8b5d86636061f8360464001a63bec0842) ) /* tiles */
+ ROM_LOAD( "mt_c1.bin", 0x20000, 0x20000, CRC(45ad1381) SHA1(de281398dcd1c547bde9fa86f8ca409dd8d4aa6c) )
+ ROM_LOAD( "mt_c2.bin", 0x40000, 0x20000, CRC(5df5856d) SHA1(f16163f672de6701b411315c9956ddb74c8464ce) )
+ ROM_LOAD( "mt_c3.bin", 0x60000, 0x20000, CRC(f5316cc8) SHA1(123892d4a7e8d98582ea736afe659afdba8c5f87) )
+
+ ROM_REGION( 0x080000, "sprites2", 0 )
+ ROM_LOAD( "mt_f0.bin", 0x00000, 0x20000, CRC(2d5e05d5) SHA1(18bdc9c561dbf0f91642161ca985d2154bd58b5d) ) /* sprites #2 */
+ ROM_LOAD( "mt_f1.bin", 0x20000, 0x20000, CRC(c68cd65f) SHA1(8999b558b4af0f453ada9e4ef705163df96844e6) )
+ ROM_LOAD( "mt_f2.bin", 0x40000, 0x20000, CRC(a71feb2d) SHA1(47e366b422772bed08ee4d1c338970687d6c3b4c) )
+ ROM_LOAD( "mt_f3.bin", 0x60000, 0x20000, CRC(179f7562) SHA1(6d28b199daffc62e8fa9009878ac0bb976ccbb2a) )
+
+ ROM_REGION( 0x20000, "samples", 0 ) /* samples */
+ ROM_LOAD( "mt_vo.bin", 0x00000, 0x20000, CRC(eb24bb2c) SHA1(9fca04fba0249e8213dd164eb6829e1a5acbee65) )
+ROM_END
+
+ROM_START( airduel )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "AD_(M82)_A-H0-D.IC52", 0x00001, 0x20000, CRC(dbecc726) SHA1(526e9fdf0ca3af3eae462524df71af8e6bfa85d0) )
+ ROM_LOAD16_BYTE( "AD_(M82)_A-L0-D.IC60", 0x00000, 0x20000, CRC(6a9fcf59) SHA1(a2ae64d290137036c350f84c38054cf6681473a5) )
+ ROM_LOAD16_BYTE( "AD_(M82)_A-H1-D.IC51", 0x40001, 0x20000, CRC(bafc152a) SHA1(e20fa8b832ebfb7a4407fc162f28388858686d61) )
+ ROM_RELOAD( 0xc0001, 0x20000 )
+ ROM_LOAD16_BYTE( "AD_(M82)_A-L1-D.IC59", 0x40000, 0x20000, CRC(9e2b1ae7) SHA1(838ccffb760b464d7d7e108e033a09e6295e5fc8) )
+ ROM_RELOAD( 0xc0000, 0x20000 )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_LOAD( "AD_(M82)_A-SP-D.IC15", 0x00000, 0x10000, CRC(16a858a3) SHA1(51dbac5b37ecb30b46072f5a300a29dc7f7b8542) )
+
+ ROM_REGION( 0x080000, "sprites", 0 )
+ ROM_LOAD( "AD_(M82)_B-N0-D.IC44", 0x00000, 0x20000, CRC(2f0d599b) SHA1(a966f806b5e25bb98cc63c46c49e0e676a62afcf) ) /* sprites */
+ ROM_LOAD( "AD_(M82)_B-N1-D.IC45", 0x20000, 0x20000, CRC(9865856b) SHA1(b18a06899ae29d45e2351594df544220f3f4485a) )
+ ROM_LOAD( "AD_(M82)_B-N2-D.IC46", 0x40000, 0x20000, CRC(d392aef2) SHA1(0f639a07066cadddc3884eb490885a8745571567) )
+ ROM_LOAD( "AD_(M82)_B-N3-D.IC36", 0x60000, 0x20000, CRC(923240c3) SHA1(f587a83329087a715a3e42110f74f104e8c8ef1f) )
+
+ ROM_REGION( 0x080000, "gfx2", 0 )
+ ROM_LOAD( "AD_(M82)_A-C0-D.IC49", 0x00000, 0x20000, CRC(ce134b47) SHA1(841358cc222c81b8a91edc262f355310d50b4dbb) ) /* tiles */
+ ROM_LOAD( "AD_(M82)_A-C1-D.IC48", 0x20000, 0x20000, CRC(097fd853) SHA1(8e08f4f4a747c899bb8e21b347635e26af9edc2d) )
+ ROM_LOAD( "AD_(M82)_A-C2-D.IC57", 0x40000, 0x20000, CRC(6a94c1b9) SHA1(55174acbac54236e5fc1b80d120cd6da9fe5524c) )
+ ROM_LOAD( "AD_(M82)_A-C3-D.IC56", 0x60000, 0x20000, CRC(6637c349) SHA1(27cb7c89ab73292b43f8ae3c0d803a01ef3d3936) )
+
+ ROM_REGION( 0x080000, "sprites2", 0 ) // still had these leftover from Major Title, probably needed to avoid displaying garbage?
+ ROM_LOAD( "mt_f0.bin", 0x00000, 0x20000, CRC(2d5e05d5) SHA1(18bdc9c561dbf0f91642161ca985d2154bd58b5d) ) /* sprites #2 */
+ ROM_LOAD( "mt_f1.bin", 0x20000, 0x20000, CRC(c68cd65f) SHA1(8999b558b4af0f453ada9e4ef705163df96844e6) )
+ ROM_LOAD( "mt_f2.bin", 0x40000, 0x20000, CRC(a71feb2d) SHA1(47e366b422772bed08ee4d1c338970687d6c3b4c) )
+ ROM_LOAD( "mt_f3.bin", 0x60000, 0x20000, CRC(179f7562) SHA1(6d28b199daffc62e8fa9009878ac0bb976ccbb2a) )
+
+ ROM_REGION( 0x20000, "samples", 0 ) /* samples */
+ ROM_LOAD( "AD_(M82)_A-V0-D.IC12", 0x00000, 0x20000, CRC(339f474d) SHA1(a81bb52598a0e31b2ed6a538755237c5d14d1844) )
+ROM_END
+
+
+ROM_START( rtypem82b )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "rt_h0.bin", 0x00001, 0x20000, CRC(5fa5068b) SHA1(b33891d2e0ca7e52226c1318ad657ac6bc7d6df4) )
+ ROM_LOAD16_BYTE( "rt_l0.bin", 0x00000, 0x20000, CRC(aee6fae8) SHA1(22645da3bfeb3a7517bdbf0829fd9d689ddc5368) )
+ ROM_LOAD16_BYTE( "rt_h1.bin", 0x40001, 0x20000, CRC(76389df4) SHA1(20004dd1d058589bdd8ea93a66a6cdf93382c7cc) )
+ ROM_RELOAD( 0xc0001, 0x20000 )
+ ROM_LOAD16_BYTE( "rt_l1.bin", 0x40000, 0x20000, CRC(6af66a05) SHA1(3c686b4559e4e223e3b03533fe2b2fc4758f4e02) )
+ ROM_RELOAD( 0xc0000, 0x20000 )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_LOAD( "rt_sp.bin", 0x00000, 0x10000, CRC(24fded65) SHA1(34e085ebfc6415a60b7440ac53c8ae7130b5e9d4) )
+
+ ROM_REGION( 0x80000, "sprites", 0 )
+ ROM_LOAD( "rt_n0.bin", 0x00000, 0x20000, CRC(236e93ad) SHA1(a168c2f007a7469d8c1d834dc5247d99d13fd36d) ) /* sprites #1 */
+ ROM_LOAD( "rt_n1.bin", 0x20000, 0x20000, CRC(94e0da50) SHA1(0e8aef07b2a4a60bb6faa9ea3d02869d30dff84c) )
+ ROM_LOAD( "rt_n2.bin", 0x40000, 0x20000, CRC(6310dd0e) SHA1(4e4a50ef64cdfddea10d415a4b2d2490c1364074) )
+ ROM_LOAD( "rt_n3.bin", 0x60000, 0x20000, CRC(dd9674fb) SHA1(925bbd64015ec9109a74ce80747bea2bfdb0cde6) )
+
+ ROM_REGION( 0x100000, "gfx2", 0 )
+ ROM_LOAD( "rt_c0.bin", 0x00000, 0x40000, CRC(c2511272) SHA1(138dd131f827215f13ba0761cacc0f383b5e5a48) ) /* tiles */
+ ROM_LOAD( "rt_c1.bin", 0x40000, 0x40000, CRC(6da33dae) SHA1(2b5f686c5c8e45a896ab115818066d03af767cb5) )
+ ROM_LOAD( "rt_c2.bin", 0x80000, 0x40000, CRC(29322d6e) SHA1(b553d46f1270dcc4754800e65c21b5e418994fcd) )
+ ROM_LOAD( "rt_c3.bin", 0xc0000, 0x40000, CRC(0ab3a8db) SHA1(7f4f5c18b5df0f5fdcb471db4e87c1be393aca92) )
+
+ ROM_REGION( 0x080000, "sprites2", 0 ) // leftover from Major Title
+ ROM_LOAD( "mt_f0.bin", 0x00000, 0x20000, CRC(2d5e05d5) SHA1(18bdc9c561dbf0f91642161ca985d2154bd58b5d) ) /* sprites #2 */
+ ROM_LOAD( "mt_f1.bin", 0x20000, 0x20000, CRC(c68cd65f) SHA1(8999b558b4af0f453ada9e4ef705163df96844e6) )
+ ROM_LOAD( "mt_f2.bin", 0x40000, 0x20000, CRC(a71feb2d) SHA1(47e366b422772bed08ee4d1c338970687d6c3b4c) )
+ ROM_LOAD( "mt_f3.bin", 0x60000, 0x20000, CRC(179f7562) SHA1(6d28b199daffc62e8fa9009878ac0bb976ccbb2a) )
+
+ ROM_REGION( 0x20000, "samples", 0 ) /* samples */ // leftover from Major Title
+ ROM_LOAD( "mt_vo.bin", 0x00000, 0x20000, CRC(eb24bb2c) SHA1(9fca04fba0249e8213dd164eb6829e1a5acbee65) )
+ROM_END
+
+ROM_START( rtype2m82b )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "rt2_h0.bin", 0x00001, 0x20000, CRC(47639a78) SHA1(d7dd851fed96d46c850e5c8f24d9d1a081f6b297) )
+ ROM_LOAD16_BYTE( "rt2_l0.bin", 0x00000, 0x20000, CRC(a1661cdf) SHA1(d209328d678fc2fc405bd20f5134bd85b4cd4802) )
+ ROM_LOAD16_BYTE( "rt2_h1.bin", 0x40001, 0x20000, CRC(4b79840c) SHA1(6cf8c8cf4bcf5e2acdaa05b8dca2f2a969edc2c5) )
+ ROM_RELOAD( 0xc0001, 0x20000 )
+ ROM_LOAD16_BYTE( "rt2_l1.bin", 0x40000, 0x20000, CRC(6ab3ae42) SHA1(d3d7c35e1583b55cc668aa011471c3bf04a541af) )
+ ROM_RELOAD( 0xc0000, 0x20000 )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_LOAD( "rt2_sp.bin", 0x00000, 0x10000, CRC(73ffecb4) SHA1(4795bf0d6263060c3d3759b659bdb189a4087600) )
+
+ ROM_REGION( 0x80000, "sprites", 0 )
+ ROM_LOAD( "rt2_n0.bin", 0x00000, 0x20000, CRC(2cd8f913) SHA1(a53752b35da95b420dd29a09176d265d292b3938) ) /* sprites #1 */
+ ROM_LOAD( "rt2_n1.bin", 0x20000, 0x20000, CRC(5033066d) SHA1(e125127f0610c63f9e59a585db547be5d49ed863) )
+ ROM_LOAD( "rt2_n2.bin", 0x40000, 0x20000, CRC(ec3a0450) SHA1(632bdd397f1bc67f6970faf7d09ab8d911e105fe) )
+ ROM_LOAD( "rt2_n3.bin", 0x60000, 0x20000, CRC(db6176fc) SHA1(1eaf72af0322490c98461aded202288e387caac1) )
+
+ ROM_REGION( 0x100000, "gfx2", 0 )
+ ROM_LOAD( "rt2_c0.bin", 0x00000, 0x40000, CRC(f5bad5f2) SHA1(dc86b93f62e8947e3551f07e393e740e5dc43f5e)) /* tiles */
+ ROM_LOAD( "rt2_c1.bin", 0x40000, 0x40000, CRC(71451778) SHA1(52ca7aa8522b988a19556313041450c767dad054) )
+ ROM_LOAD( "rt2_c2.bin", 0x80000, 0x40000, CRC(c6b0c352) SHA1(eec4fa88c27815960106881e7ccb23e62556bf1c) )
+ ROM_LOAD( "rt2_c3.bin", 0xc0000, 0x40000, CRC(6d530a32) SHA1(4e4100e5e5d88e65fb5494474d3692ecd8f44343) )
+
+ ROM_REGION( 0x080000, "sprites2", 0 ) // leftover from Major Title
+ ROM_LOAD( "mt_f0.bin", 0x00000, 0x20000, CRC(2d5e05d5) SHA1(18bdc9c561dbf0f91642161ca985d2154bd58b5d) ) /* sprites #2 */
+ ROM_LOAD( "mt_f1.bin", 0x20000, 0x20000, CRC(c68cd65f) SHA1(8999b558b4af0f453ada9e4ef705163df96844e6) )
+ ROM_LOAD( "mt_f2.bin", 0x40000, 0x20000, CRC(a71feb2d) SHA1(47e366b422772bed08ee4d1c338970687d6c3b4c) )
+ ROM_LOAD( "mt_f3.bin", 0x60000, 0x20000, CRC(179f7562) SHA1(6d28b199daffc62e8fa9009878ac0bb976ccbb2a) )
+
+ ROM_REGION( 0x20000, "samples", 0 ) /* samples */
+ ROM_LOAD( "rt2_vo.bin", 0x00000, 0x20000, CRC(637172d5) SHA1(9dd0dc409306287238826bf301e2a7a12d6cd9ce) )
ROM_END
+
+/*****************************
+ M84 sets
+******************************/
+
ROM_START( rtype2 )
ROM_REGION( 0x100000, "maincpu", 0 )
ROM_LOAD16_BYTE( "rt2-a-h0-d.54", 0x00001, 0x20000, CRC(d8ece6f4) SHA1(f7bb246fe8b75af24716d419bb3c6e7d9cd0971e) )
@@ -3014,7 +3421,7 @@ ROM_START( rtype2 )
ROM_REGION( 0x10000, "soundcpu", 0 )
ROM_LOAD( "ic17.4f", 0x00000, 0x10000, CRC(73ffecb4) SHA1(4795bf0d6263060c3d3759b659bdb189a4087600) )
- ROM_REGION( 0x080000, "gfx1", 0 )
+ ROM_REGION( 0x080000, "sprites", 0 )
ROM_LOAD( "ic31.6l", 0x00000, 0x20000, CRC(2cd8f913) SHA1(a53752b35da95b420dd29a09176d265d292b3938) ) /* sprites */
ROM_LOAD( "ic21.4l", 0x20000, 0x20000, CRC(5033066d) SHA1(e125127f0610c63f9e59a585db547be5d49ed863) )
ROM_LOAD( "ic32.6m", 0x40000, 0x20000, CRC(ec3a0450) SHA1(632bdd397f1bc67f6970faf7d09ab8d911e105fe) )
@@ -3046,7 +3453,7 @@ ROM_START( rtype2j )
ROM_REGION( 0x10000, "soundcpu", 0 )
ROM_LOAD( "ic17.4f", 0x00000, 0x10000, CRC(73ffecb4) SHA1(4795bf0d6263060c3d3759b659bdb189a4087600) )
- ROM_REGION( 0x080000, "gfx1", 0 )
+ ROM_REGION( 0x080000, "sprites", 0 )
ROM_LOAD( "ic31.6l", 0x00000, 0x20000, CRC(2cd8f913) SHA1(a53752b35da95b420dd29a09176d265d292b3938) ) /* sprites */
ROM_LOAD( "ic21.4l", 0x20000, 0x20000, CRC(5033066d) SHA1(e125127f0610c63f9e59a585db547be5d49ed863) )
ROM_LOAD( "ic32.6m", 0x40000, 0x20000, CRC(ec3a0450) SHA1(632bdd397f1bc67f6970faf7d09ab8d911e105fe) )
@@ -3064,6 +3471,10 @@ ROM_START( rtype2j )
ROM_REGION( 0x20000, "samples", 0 ) /* samples */
ROM_LOAD( "ic14.4c", 0x00000, 0x20000, CRC(637172d5) SHA1(9dd0dc409306287238826bf301e2a7a12d6cd9ce) )
+
+ ROM_REGION( 0x0200, "proms", 0 ) /* located on M84-B-A */
+ ROM_LOAD( "rt2_b-4n-.bin", 0x0000, 0x0100, CRC(b460c438) SHA1(00e20cf754b6fd5138ee4d2f6ec28dff9e292fe6) )
+ ROM_LOAD( "rt2_b-4p-.bin", 0x0100, 0x0100, CRC(a4f2c4bc) SHA1(f13b0a4b52dcc6704063b676f09d83dcba170133) )
ROM_END
ROM_START( rtype2jc )
@@ -3078,7 +3489,7 @@ ROM_START( rtype2jc )
ROM_REGION( 0x10000, "soundcpu", 0 )
ROM_LOAD( "ic17.4f", 0x00000, 0x10000, CRC(73ffecb4) SHA1(4795bf0d6263060c3d3759b659bdb189a4087600) )
- ROM_REGION( 0x080000, "gfx1", 0 )
+ ROM_REGION( 0x080000, "sprites", 0 )
ROM_LOAD( "ic31.6l", 0x00000, 0x20000, CRC(2cd8f913) SHA1(a53752b35da95b420dd29a09176d265d292b3938) ) /* sprites */
ROM_LOAD( "ic21.4l", 0x20000, 0x20000, CRC(5033066d) SHA1(e125127f0610c63f9e59a585db547be5d49ed863) )
ROM_LOAD( "ic32.6m", 0x40000, 0x20000, CRC(ec3a0450) SHA1(632bdd397f1bc67f6970faf7d09ab8d911e105fe) )
@@ -3098,101 +3509,6 @@ ROM_START( rtype2jc )
ROM_LOAD( "ic14.4c", 0x00000, 0x20000, CRC(637172d5) SHA1(9dd0dc409306287238826bf301e2a7a12d6cd9ce) )
ROM_END
-ROM_START( majtitle )
- ROM_REGION( 0x100000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "mt_h0-a.bin", 0x00001, 0x20000, CRC(36aadb67) SHA1(11cb9f190431ef7b68bcad691191c810b00452be) )
- ROM_LOAD16_BYTE( "mt_l0-a.bin", 0x00000, 0x20000, CRC(2e1b6242) SHA1(a1d36c1bad7eb874e6b37a372d0ff95452b09315) )
- ROM_LOAD16_BYTE( "mt_h1-a.bin", 0x40001, 0x20000, CRC(e1402a22) SHA1(97ecf3cf5438dd3aad65554b672a4e401917dc34) )
- ROM_RELOAD( 0xc0001, 0x20000 )
- ROM_LOAD16_BYTE( "mt_l1-a.bin", 0x40000, 0x20000, CRC(0efa409a) SHA1(2b4fd62705398c7ac1647f6ea821f722b4f7496f) )
- ROM_RELOAD( 0xc0000, 0x20000 )
-
- ROM_REGION( 0x10000, "soundcpu", 0 )
- ROM_LOAD( "mt_sp.bin", 0x00000, 0x10000, CRC(e44260a9) SHA1(a2512033c8cca9a8064eae1ada721202edf06e8e) )
-
- ROM_REGION( 0x100000, "gfx1", 0 )
- ROM_LOAD( "mt_n0.bin", 0x00000, 0x40000, CRC(5618cddc) SHA1(16d34b431ab9b72067fa669d694e635c88aeb261) ) /* sprites #1 */
- ROM_LOAD( "mt_n1.bin", 0x40000, 0x40000, CRC(483b873b) SHA1(654efd67b2102521e8c46cd57cefa2cc64cf4fd3) )
- ROM_LOAD( "mt_n2.bin", 0x80000, 0x40000, CRC(4f5d665b) SHA1(f539d0f5c738ffabfac16121706abe3bb3b2a1fa) )
- ROM_LOAD( "mt_n3.bin", 0xc0000, 0x40000, CRC(83571549) SHA1(ce0b89aa4b3e3e1cf6ec6136f956577267cdd9d3) )
-
- ROM_REGION( 0x080000, "gfx2", 0 )
- ROM_LOAD( "mt_c0.bin", 0x00000, 0x20000, CRC(780e7a02) SHA1(9776ecb8b5d86636061f8360464001a63bec0842) ) /* tiles */
- ROM_LOAD( "mt_c1.bin", 0x20000, 0x20000, CRC(45ad1381) SHA1(de281398dcd1c547bde9fa86f8ca409dd8d4aa6c) )
- ROM_LOAD( "mt_c2.bin", 0x40000, 0x20000, CRC(5df5856d) SHA1(f16163f672de6701b411315c9956ddb74c8464ce) )
- ROM_LOAD( "mt_c3.bin", 0x60000, 0x20000, CRC(f5316cc8) SHA1(123892d4a7e8d98582ea736afe659afdba8c5f87) )
-
- ROM_REGION( 0x080000, "gfx3", 0 )
- ROM_LOAD( "mt_f0.bin", 0x00000, 0x20000, CRC(2d5e05d5) SHA1(18bdc9c561dbf0f91642161ca985d2154bd58b5d) ) /* sprites #2 */
- ROM_LOAD( "mt_f1.bin", 0x20000, 0x20000, CRC(c68cd65f) SHA1(8999b558b4af0f453ada9e4ef705163df96844e6) )
- ROM_LOAD( "mt_f2.bin", 0x40000, 0x20000, CRC(a71feb2d) SHA1(47e366b422772bed08ee4d1c338970687d6c3b4c) )
- ROM_LOAD( "mt_f3.bin", 0x60000, 0x20000, CRC(179f7562) SHA1(6d28b199daffc62e8fa9009878ac0bb976ccbb2a) )
-
- ROM_REGION( 0x20000, "samples", 0 ) /* samples */
- ROM_LOAD( "mt_vo.bin", 0x00000, 0x20000, CRC(eb24bb2c) SHA1(9fca04fba0249e8213dd164eb6829e1a5acbee65) )
-ROM_END
-
-ROM_START( majtitlej )
- ROM_REGION( 0x100000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "mt_h0.bin", 0x00001, 0x20000, CRC(b9682c70) SHA1(b979c0a630397f2a2eb73709cf12c5262c973782) )
- ROM_LOAD16_BYTE( "mt_l0.bin", 0x00000, 0x20000, CRC(702c9fd6) SHA1(84a5e9e64f4bf235d115f5648b4a108f710ade1d) )
- ROM_LOAD16_BYTE( "mt_h1.bin", 0x40001, 0x20000, CRC(d9e97c30) SHA1(97f59b614eeeced0a414f8a1693590525a58f788) )
- ROM_RELOAD( 0xc0001, 0x20000 )
- ROM_LOAD16_BYTE( "mt_l1.bin", 0x40000, 0x20000, CRC(8dbd91b5) SHA1(2bd01f3fba0fa1ca4b6f8ff57e7dc4434c42ce48) )
- ROM_RELOAD( 0xc0000, 0x20000 )
-
- ROM_REGION( 0x10000, "soundcpu", 0 )
- ROM_LOAD( "mt_sp.bin", 0x00000, 0x10000, CRC(e44260a9) SHA1(a2512033c8cca9a8064eae1ada721202edf06e8e) )
-
- ROM_REGION( 0x100000, "gfx1", 0 )
- ROM_LOAD( "mt_n0.bin", 0x00000, 0x40000, CRC(5618cddc) SHA1(16d34b431ab9b72067fa669d694e635c88aeb261) ) /* sprites #1 */
- ROM_LOAD( "mt_n1.bin", 0x40000, 0x40000, CRC(483b873b) SHA1(654efd67b2102521e8c46cd57cefa2cc64cf4fd3) )
- ROM_LOAD( "mt_n2.bin", 0x80000, 0x40000, CRC(4f5d665b) SHA1(f539d0f5c738ffabfac16121706abe3bb3b2a1fa) )
- ROM_LOAD( "mt_n3.bin", 0xc0000, 0x40000, CRC(83571549) SHA1(ce0b89aa4b3e3e1cf6ec6136f956577267cdd9d3) )
-
- ROM_REGION( 0x080000, "gfx2", 0 )
- ROM_LOAD( "mt_c0.bin", 0x00000, 0x20000, CRC(780e7a02) SHA1(9776ecb8b5d86636061f8360464001a63bec0842) ) /* tiles */
- ROM_LOAD( "mt_c1.bin", 0x20000, 0x20000, CRC(45ad1381) SHA1(de281398dcd1c547bde9fa86f8ca409dd8d4aa6c) )
- ROM_LOAD( "mt_c2.bin", 0x40000, 0x20000, CRC(5df5856d) SHA1(f16163f672de6701b411315c9956ddb74c8464ce) )
- ROM_LOAD( "mt_c3.bin", 0x60000, 0x20000, CRC(f5316cc8) SHA1(123892d4a7e8d98582ea736afe659afdba8c5f87) )
-
- ROM_REGION( 0x080000, "gfx3", 0 )
- ROM_LOAD( "mt_f0.bin", 0x00000, 0x20000, CRC(2d5e05d5) SHA1(18bdc9c561dbf0f91642161ca985d2154bd58b5d) ) /* sprites #2 */
- ROM_LOAD( "mt_f1.bin", 0x20000, 0x20000, CRC(c68cd65f) SHA1(8999b558b4af0f453ada9e4ef705163df96844e6) )
- ROM_LOAD( "mt_f2.bin", 0x40000, 0x20000, CRC(a71feb2d) SHA1(47e366b422772bed08ee4d1c338970687d6c3b4c) )
- ROM_LOAD( "mt_f3.bin", 0x60000, 0x20000, CRC(179f7562) SHA1(6d28b199daffc62e8fa9009878ac0bb976ccbb2a) )
-
- ROM_REGION( 0x20000, "samples", 0 ) /* samples */
- ROM_LOAD( "mt_vo.bin", 0x00000, 0x20000, CRC(eb24bb2c) SHA1(9fca04fba0249e8213dd164eb6829e1a5acbee65) )
-ROM_END
-
-ROM_START( hharry )
- ROM_REGION( 0x100000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "a-h0-v.rom", 0x00001, 0x20000, CRC(c52802a5) SHA1(7180189c886aebe8d3e7fd38922916cecfddae32) )
- ROM_LOAD16_BYTE( "a-l0-v.rom", 0x00000, 0x20000, CRC(f463074c) SHA1(aca86345610e65848c276ab278092d35ba215916) )
- ROM_LOAD16_BYTE( "a-h1-0.rom", 0x60001, 0x10000, CRC(3ae21335) SHA1(780d7a0c5bebe4b914ea5b3741e30630f8c29a4f) )
- ROM_RELOAD( 0xe0001, 0x10000 )
- ROM_LOAD16_BYTE( "a-l1-0.rom", 0x60000, 0x10000, CRC(bc6ac5f9) SHA1(c6afba4967a8055f6b63827697425eac743f5a75) )
- ROM_RELOAD( 0xe0000, 0x10000 )
-
- ROM_REGION( 0x10000, "soundcpu", 0 )
- ROM_LOAD( "a-sp-0.rom", 0x00000, 0x10000, CRC(80e210e7) SHA1(66cff58fb37c52e1d8e0567e13b774253e862585) )
-
- ROM_REGION( 0x080000, "gfx1", 0 )
- ROM_LOAD( "hh_00.rom", 0x00000, 0x20000, CRC(ec5127ef) SHA1(014ac8ad7b19cd9b475b72a0f42a4991119501c4) ) /* sprites */
- ROM_LOAD( "hh_10.rom", 0x20000, 0x20000, CRC(def65294) SHA1(23f5d99fa9f604fde37cb52113bff233d9be1d25) )
- ROM_LOAD( "hh_20.rom", 0x40000, 0x20000, CRC(bb0d6ad4) SHA1(4ab617fadfc32efad90ed7f0555513f167b0c43a) )
- ROM_LOAD( "hh_30.rom", 0x60000, 0x20000, CRC(4351044e) SHA1(0d3ce3f4f1473fd997e70de91e7b5b5a5ec60ad4) )
-
- ROM_REGION( 0x080000, "gfx2", 0 )
- ROM_LOAD( "hh_a0.rom", 0x00000, 0x20000, CRC(c577ba5f) SHA1(c882e58cf64deca8eee6f14f3df43ecc932488fc) ) /* tiles */
- ROM_LOAD( "hh_a1.rom", 0x20000, 0x20000, CRC(429d12ab) SHA1(ccba25eab981fc4e664f76e06a2964066f2ae2e8) )
- ROM_LOAD( "hh_a2.rom", 0x40000, 0x20000, CRC(b5b163b0) SHA1(82a708fea4953a7c4dcd1d4a1b07f302221ba30b) )
- ROM_LOAD( "hh_a3.rom", 0x60000, 0x20000, CRC(8ef566a1) SHA1(3afb020a7317efe89c18b2a7773894ce28499d49) )
-
- ROM_REGION( 0x20000, "samples", 0 ) /* samples */
- ROM_LOAD( "a-v0-0.rom", 0x00000, 0x20000, CRC(faaacaff) SHA1(ea3a3920255c07aa9c0a7e0191eae257a9f7f558) )
-ROM_END
ROM_START( hharryu )
ROM_REGION( 0x100000, "maincpu", 0 )
@@ -3206,7 +3522,7 @@ ROM_START( hharryu )
ROM_REGION( 0x10000, "soundcpu", 0 )
ROM_LOAD( "a-sp-0.rom", 0x00000, 0x10000, CRC(80e210e7) SHA1(66cff58fb37c52e1d8e0567e13b774253e862585) )
- ROM_REGION( 0x080000, "gfx1", 0 )
+ ROM_REGION( 0x080000, "sprites", 0 )
ROM_LOAD( "hh_00.rom", 0x00000, 0x20000, CRC(ec5127ef) SHA1(014ac8ad7b19cd9b475b72a0f42a4991119501c4) ) /* sprites */
ROM_LOAD( "hh_10.rom", 0x20000, 0x20000, CRC(def65294) SHA1(23f5d99fa9f604fde37cb52113bff233d9be1d25) )
ROM_LOAD( "hh_20.rom", 0x40000, 0x20000, CRC(bb0d6ad4) SHA1(4ab617fadfc32efad90ed7f0555513f167b0c43a) )
@@ -3234,7 +3550,7 @@ ROM_START( dkgensan )
ROM_REGION( 0x10000, "soundcpu", 0 )
ROM_LOAD( "gen-a-sp.bin", 0x00000, 0x10000, CRC(e83cfc2c) SHA1(3193bdd06a9712fc499e6fc90a33140463ef59fe) )
- ROM_REGION( 0x080000, "gfx1", 0 )
+ ROM_REGION( 0x080000, "sprites", 0 )
ROM_LOAD( "hh_00.rom", 0x00000, 0x20000, CRC(ec5127ef) SHA1(014ac8ad7b19cd9b475b72a0f42a4991119501c4) ) /* sprites */
ROM_LOAD( "hh_10.rom", 0x20000, 0x20000, CRC(def65294) SHA1(23f5d99fa9f604fde37cb52113bff233d9be1d25) )
ROM_LOAD( "hh_20.rom", 0x40000, 0x20000, CRC(bb0d6ad4) SHA1(4ab617fadfc32efad90ed7f0555513f167b0c43a) )
@@ -3250,40 +3566,125 @@ ROM_START( dkgensan )
ROM_LOAD( "gen-vo.bin", 0x00000, 0x20000, CRC(d8595c66) SHA1(97920c9947fbac609fb901415e5471c6e4ca066c) )
ROM_END
-ROM_START( dkgensanm72 )
+
+
+ROM_START( cosmccop )
ROM_REGION( 0x100000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "ge72-h0.bin", 0x00001, 0x20000, CRC(a0ad992c) SHA1(6de4105d8454c4e4e62762fdd7e22829acc2442b) )
- ROM_LOAD16_BYTE( "ge72-l0.bin", 0x00000, 0x20000, CRC(996396f0) SHA1(1a2501ba46bcbc607f772765e8614bc442154a18) )
- ROM_LOAD16_BYTE( "ge72-h3.bin", 0x60001, 0x10000, CRC(d8b86005) SHA1(dd626cfe50a823066c54cc24d9fdaaf03d61d1e7) )
- ROM_RELOAD( 0xe0001, 0x10000 )
- ROM_LOAD16_BYTE( "ge72-l3.bin", 0x60000, 0x10000, CRC(23d303a5) SHA1(b62010f34d71afb590deae458493454f9af38f7c) )
- ROM_RELOAD( 0xe0000, 0x10000 )
+ ROM_LOAD16_BYTE( "cc-d-h0b.bin", 0x00001, 0x40000, CRC(38958b01) SHA1(7d7e217742e33a1fe096adf5bbc93d63ddcfb375) )
+ ROM_RELOAD( 0x80001, 0x40000 )
+ ROM_LOAD16_BYTE( "cc-d-l0b.bin", 0x00000, 0x40000, CRC(eff87f70) SHA1(61f49b8738cf31546d4182680b761705274b01bf) )
+ ROM_RELOAD( 0x80000, 0x40000 )
- ROM_REGION( 0x10000, "mcu", 0 )
- ROM_LOAD( "dkgenm72_i8751.mcu", 0x00000, 0x10000, NO_DUMP ) // read protected
+ ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_LOAD( "cc-d-sp.bin", 0x00000, 0x10000, CRC(3e3ace60) SHA1(d89b1b84de2887598bb7bcb17b1df1ec8d1862a9) )
- ROM_REGION( 0x080000, "gfx1", 0 )
- ROM_LOAD( "hh_00.rom", 0x00000, 0x20000, CRC(ec5127ef) SHA1(014ac8ad7b19cd9b475b72a0f42a4991119501c4) ) /* sprites */
- ROM_LOAD( "hh_10.rom", 0x20000, 0x20000, CRC(def65294) SHA1(23f5d99fa9f604fde37cb52113bff233d9be1d25) )
- ROM_LOAD( "hh_20.rom", 0x40000, 0x20000, CRC(bb0d6ad4) SHA1(4ab617fadfc32efad90ed7f0555513f167b0c43a) )
- ROM_LOAD( "hh_30.rom", 0x60000, 0x20000, CRC(4351044e) SHA1(0d3ce3f4f1473fd997e70de91e7b5b5a5ec60ad4) )
+ ROM_REGION( 0x080000, "sprites", 0 )
+ ROM_LOAD( "cc-c-00.bin", 0x00000, 0x20000, CRC(9d99deaa) SHA1(acf16bea0f482306107d2a305c568406b6c21e9a) ) // cc-b-n0
+ ROM_LOAD( "cc-c-10.bin", 0x20000, 0x20000, CRC(7eb083ed) SHA1(31fa7d532fd46e861c3d19d5b08661653f685a49) ) // cc-b-n1
+ ROM_LOAD( "cc-c-20.bin", 0x40000, 0x20000, CRC(9421489e) SHA1(e43d042bf8b4ebed93558d74ec479ec60a01ca5c) ) // cc-b-n2
+ ROM_LOAD( "cc-c-30.bin", 0x60000, 0x20000, CRC(920ec735) SHA1(2d0949b43dddce7317c45910d6e4868ddf010806) ) // cc-b-n3
- ROM_REGION( 0x040000, "gfx2", 0 )
- ROM_LOAD( "ge72b-a0.bin", 0x00000, 0x10000, CRC(f5f56b2a) SHA1(4ef6602052fa70e765d6d7747e672b7108b44f59) ) /* tiles #1 */
- ROM_LOAD( "ge72-a1.bin", 0x10000, 0x10000, CRC(d194ea08) SHA1(0270897049cd256472df42f3dda856ee707535cd) )
- ROM_LOAD( "ge72-a2.bin", 0x20000, 0x10000, CRC(2b06bcc3) SHA1(36378a4a69f3c3da96d2dc8df48916af8de50009) )
- ROM_LOAD( "ge72-a3.bin", 0x30000, 0x10000, CRC(94b96bfa) SHA1(33c1e9045e7a984097f3fe4954b20d954cffbafa) )
+ ROM_REGION( 0x080000, "gfx2", 0 )
+ ROM_LOAD( "cc-d-g00.bin", 0x00000, 0x20000, CRC(e7f3d772) SHA1(c7f0bc42e8dde7bae334c7974c3d0ddba3856144) ) /* tiles */
+ ROM_LOAD( "cc-d-g10.bin", 0x20000, 0x20000, CRC(418b4e4c) SHA1(1191f12741ee7a360240f706534c9c83be8d5c2d) )
+ ROM_LOAD( "cc-d-g20.bin", 0x40000, 0x20000, CRC(a4b558eb) SHA1(0babf725de0065dbeca73fa170bd33565305d129) )
+ ROM_LOAD( "cc-d-g30.bin", 0x60000, 0x20000, CRC(f64a3166) SHA1(1661db2a37c76e6b4552e48c04966dbbccab8926) )
- ROM_REGION( 0x040000, "gfx3", 0 )
- ROM_LOAD( "ge72-b0.bin", 0x00000, 0x10000, CRC(208796b3) SHA1(38b90732c8d5c77ee84053364a8a7e3daaaabe66) ) /* tiles #2 */
- ROM_LOAD( "ge72-b1.bin", 0x10000, 0x10000, CRC(b4a7f490) SHA1(851b40650fc8920b49f43f9cc6f19e845a25e945) )
- ROM_LOAD( "ge72b-b2.bin", 0x20000, 0x10000, CRC(34fe8f7f) SHA1(fbf8839b26be55ad83ad4db538ba3e196c1ab945) )
- ROM_LOAD( "ge72b-b3.bin", 0x30000, 0x10000, CRC(4b0e92f4) SHA1(16ad9220ca6708028cea18c1c4b57e2b6eb425b4) )
+ ROM_REGION( 0x20000, "samples", 0 ) /* samples */
+ ROM_LOAD( "cc-c-v0.bin", 0x00000, 0x20000, CRC(6247bade) SHA1(4bc9f86acd09908c74b1ab0e7817c4ff1cad6f0b) ) // cc-d-v0
+ROM_END
+
+
+ROM_START( ltswords )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "h0.ic55", 0x00001, 0x20000, CRC(22f342b2) SHA1(8a0954eed7ad5a231a0e3884da28556c0f64f7f6) )
+ ROM_RELOAD( 0xc0001, 0x20000 )
+ ROM_LOAD16_BYTE( "l0.ic61", 0x00000, 0x20000, CRC(0210d592) SHA1(8500dd6da56c007878287d468b3ebc1686e59ef7) )
+ ROM_RELOAD( 0xc0000, 0x20000 )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_LOAD( "ken_d-sp.rom", 0x00000, 0x10000, CRC(233ca1cf) SHA1(4ebb6162773bd586a10016ccd77998a9b880f474) )
+
+ ROM_REGION( 0x080000, "sprites", 0 )
+ ROM_LOAD( "ken_m31.rom", 0x00000, 0x20000, CRC(e00b95a6) SHA1(6efcd8d58f8ebe3a42c60a0aa790b42c0e132777) ) /* sprites */
+ ROM_LOAD( "ken_m21.rom", 0x20000, 0x20000, CRC(d7722f87) SHA1(8606a53b8630934d2b5dfc986bd92ac4142f67e2) )
+ ROM_LOAD( "ken_m32.rom", 0x40000, 0x20000, CRC(30a844c4) SHA1(72b2caba3ee7a229ca56f004516dea8d3f0a7ba6) )
+ ROM_LOAD( "ken_m22.rom", 0x60000, 0x20000, CRC(a00dac85) SHA1(0c1ed852795046926f62843f6b256cbeecf9ebcf) )
+
+ ROM_REGION( 0x080000, "gfx2", 0 )
+ ROM_LOAD( "ken_m51.rom", 0x00000, 0x20000, CRC(1646cf4f) SHA1(d240cb2bad3e766128e8e40aa7b1bf4f3b9a5559) ) /* tiles */
+ ROM_LOAD( "ken_m57.rom", 0x20000, 0x20000, CRC(a9f88d90) SHA1(c8d4a96fe55fed4b7499550f3c74b03d10306757) )
+ ROM_LOAD( "ken_m66.rom", 0x40000, 0x20000, CRC(e9d17645) SHA1(fbe18d6691686a1c458d4a91169c9850698b5ca7) )
+ ROM_LOAD( "ken_m64.rom", 0x60000, 0x20000, CRC(df46709b) SHA1(e7c2cd752e765bf7b8ff24637305d61031ce0baa) )
ROM_REGION( 0x20000, "samples", 0 ) /* samples */
- ROM_LOAD( "gen-vo.bin", 0x00000, 0x20000, CRC(d8595c66) SHA1(97920c9947fbac609fb901415e5471c6e4ca066c) )
+ ROM_LOAD( "ken_m14.rom", 0x00000, 0x20000, CRC(6651e9b7) SHA1(c42009f986c9a9f35732d5cd717d548536469b1c) )
ROM_END
+
+
+ROM_START( kengo )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "ken_d-h0.rom", 0x00001, 0x20000, CRC(f4ddeea5) SHA1(bcf016e40886e11c171f2f50de39ac0d8cabcdd1) )
+ ROM_RELOAD( 0xc0001, 0x20000 )
+ ROM_LOAD16_BYTE( "ken_d-l0.rom", 0x00000, 0x20000, CRC(04dc0f81) SHA1(b296529f0bc26d53b344449dfa5a08eca70f30d8) )
+ ROM_RELOAD( 0xc0000, 0x20000 )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_LOAD( "ken_d-sp.rom", 0x00000, 0x10000, CRC(233ca1cf) SHA1(4ebb6162773bd586a10016ccd77998a9b880f474) )
+
+ ROM_REGION( 0x080000, "sprites", 0 )
+ ROM_LOAD( "ken_m31.rom", 0x00000, 0x20000, CRC(e00b95a6) SHA1(6efcd8d58f8ebe3a42c60a0aa790b42c0e132777) ) /* sprites */
+ ROM_LOAD( "ken_m21.rom", 0x20000, 0x20000, CRC(d7722f87) SHA1(8606a53b8630934d2b5dfc986bd92ac4142f67e2) )
+ ROM_LOAD( "ken_m32.rom", 0x40000, 0x20000, CRC(30a844c4) SHA1(72b2caba3ee7a229ca56f004516dea8d3f0a7ba6) )
+ ROM_LOAD( "ken_m22.rom", 0x60000, 0x20000, CRC(a00dac85) SHA1(0c1ed852795046926f62843f6b256cbeecf9ebcf) )
+
+ ROM_REGION( 0x080000, "gfx2", 0 )
+ ROM_LOAD( "ken_m51.rom", 0x00000, 0x20000, CRC(1646cf4f) SHA1(d240cb2bad3e766128e8e40aa7b1bf4f3b9a5559) ) /* tiles */
+ ROM_LOAD( "ken_m57.rom", 0x20000, 0x20000, CRC(a9f88d90) SHA1(c8d4a96fe55fed4b7499550f3c74b03d10306757) )
+ ROM_LOAD( "ken_m66.rom", 0x40000, 0x20000, CRC(e9d17645) SHA1(fbe18d6691686a1c458d4a91169c9850698b5ca7) )
+ ROM_LOAD( "ken_m64.rom", 0x60000, 0x20000, CRC(df46709b) SHA1(e7c2cd752e765bf7b8ff24637305d61031ce0baa) )
+
+ ROM_REGION( 0x20000, "samples", 0 ) /* samples */
+ ROM_LOAD( "ken_m14.rom", 0x00000, 0x20000, CRC(6651e9b7) SHA1(c42009f986c9a9f35732d5cd717d548536469b1c) )
+ROM_END
+
+
+ROM_START( kengoa )
+ ROM_REGION( 0x100000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "KEN-D-H0-.IC55", 0x00001, 0x20000, CRC(ed3da88c) SHA1(536824eb3347eade2d3aad927e83eae51ee852b3) )
+ ROM_RELOAD( 0xc0001, 0x20000 )
+ ROM_LOAD16_BYTE( "KEN-D-L0-.IC61", 0x00000, 0x20000, CRC(92c57d8e) SHA1(eb078a7b261e13cfb0a920b5115beee917b8d89c))
+ ROM_RELOAD( 0xc0000, 0x20000 )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 )
+ ROM_LOAD( "ken_d-sp.rom", 0x00000, 0x10000, CRC(233ca1cf) SHA1(4ebb6162773bd586a10016ccd77998a9b880f474) )
+
+ ROM_REGION( 0x080000, "sprites", 0 )
+ ROM_LOAD( "ken_m31.rom", 0x00000, 0x20000, CRC(e00b95a6) SHA1(6efcd8d58f8ebe3a42c60a0aa790b42c0e132777) ) /* sprites */
+ ROM_LOAD( "ken_m21.rom", 0x20000, 0x20000, CRC(d7722f87) SHA1(8606a53b8630934d2b5dfc986bd92ac4142f67e2) )
+ ROM_LOAD( "ken_m32.rom", 0x40000, 0x20000, CRC(30a844c4) SHA1(72b2caba3ee7a229ca56f004516dea8d3f0a7ba6) )
+ ROM_LOAD( "ken_m22.rom", 0x60000, 0x20000, CRC(a00dac85) SHA1(0c1ed852795046926f62843f6b256cbeecf9ebcf) )
+
+ ROM_REGION( 0x080000, "gfx2", 0 )
+ ROM_LOAD( "ken_m51.rom", 0x00000, 0x20000, CRC(1646cf4f) SHA1(d240cb2bad3e766128e8e40aa7b1bf4f3b9a5559) ) /* tiles */
+ ROM_LOAD( "ken_m57.rom", 0x20000, 0x20000, CRC(a9f88d90) SHA1(c8d4a96fe55fed4b7499550f3c74b03d10306757) )
+ ROM_LOAD( "ken_m66.rom", 0x40000, 0x20000, CRC(e9d17645) SHA1(fbe18d6691686a1c458d4a91169c9850698b5ca7) )
+ ROM_LOAD( "ken_m64.rom", 0x60000, 0x20000, CRC(df46709b) SHA1(e7c2cd752e765bf7b8ff24637305d61031ce0baa) )
+
+ ROM_REGION( 0x20000, "samples", 0 ) /* samples */
+ ROM_LOAD( "ken_m14.rom", 0x00000, 0x20000, CRC(6651e9b7) SHA1(c42009f986c9a9f35732d5cd717d548536469b1c) )
+
+ ROM_REGION( 0x0200, "proms", 0 ) /* located on M84-B-B */
+ ROM_LOAD( "KEN_B-4N-.IC23", 0x0000, 0x0100, CRC(b460c438) SHA1(00e20cf754b6fd5138ee4d2f6ec28dff9e292fe6) )
+ ROM_LOAD( "KEN_B-4P-.IC24", 0x0100, 0x0100, CRC(526f10ca) SHA1(e0ecd4db0720a4a37489e4d725843a2fbf266ebf) ) // differs from rtype 2 / ninja spirit
+ROM_END
+
+
+/*****************************
+ M85 sets
+******************************/
+
ROM_START( poundfor )
ROM_REGION( 0x100000, "maincpu", 0 )
ROM_LOAD16_BYTE( "ppa-h0-b.9e", 0x00001, 0x20000, CRC(50d4a2d8) SHA1(7fd62c6613cb58b512c6c3670fa66a5b9906e6a1) )
@@ -3296,7 +3697,7 @@ ROM_START( poundfor )
ROM_REGION( 0x10000, "soundcpu", 0 )
ROM_LOAD( "ppa-sp.4j", 0x00000, 0x10000, CRC(3f458a5b) SHA1(d73740b2a548bf8a895909da0841f18d9ed32668) )
- ROM_REGION( 0x100000, "gfx1", 0 )
+ ROM_REGION( 0x100000, "sprites", 0 )
ROM_LOAD( "ppb-n0.bin", 0x00000, 0x40000, CRC(951a41f8) SHA1(59b64f63ea2452c2b42ff7ebf1ff6fc4e7879ce3) ) /* sprites */
ROM_LOAD( "ppb-n1.bin", 0x40000, 0x40000, CRC(c609b7f2) SHA1(1da3550c7e4d2a26d75d143934680d9177ba5c35) )
ROM_LOAD( "ppb-n2.bin", 0x80000, 0x40000, CRC(318c0b5f) SHA1(1d4cd17dc2f8fc4e523eaf679f21d83e1bfade4e) )
@@ -3324,7 +3725,7 @@ ROM_START( poundforj )
ROM_REGION( 0x10000, "soundcpu", 0 )
ROM_LOAD( "ppa-sp.4j", 0x00000, 0x10000, CRC(3f458a5b) SHA1(d73740b2a548bf8a895909da0841f18d9ed32668) )
- ROM_REGION( 0x100000, "gfx1", 0 )
+ ROM_REGION( 0x100000, "sprites", 0 )
ROM_LOAD( "ppb-n0.bin", 0x00000, 0x40000, CRC(951a41f8) SHA1(59b64f63ea2452c2b42ff7ebf1ff6fc4e7879ce3) ) /* sprites */
ROM_LOAD( "ppb-n1.bin", 0x40000, 0x40000, CRC(c609b7f2) SHA1(1da3550c7e4d2a26d75d143934680d9177ba5c35) )
ROM_LOAD( "ppb-n2.bin", 0x80000, 0x40000, CRC(318c0b5f) SHA1(1d4cd17dc2f8fc4e523eaf679f21d83e1bfade4e) )
@@ -3352,7 +3753,7 @@ ROM_START( poundforu )
ROM_REGION( 0x10000, "soundcpu", 0 )
ROM_LOAD( "ppa-sp.4j", 0x00000, 0x10000, CRC(3f458a5b) SHA1(d73740b2a548bf8a895909da0841f18d9ed32668) )
- ROM_REGION( 0x100000, "gfx1", 0 )
+ ROM_REGION( 0x100000, "sprites", 0 )
ROM_LOAD( "ppb-n0.bin", 0x00000, 0x40000, CRC(951a41f8) SHA1(59b64f63ea2452c2b42ff7ebf1ff6fc4e7879ce3) ) /* sprites */
ROM_LOAD( "ppb-n1.bin", 0x40000, 0x40000, CRC(c609b7f2) SHA1(1da3550c7e4d2a26d75d143934680d9177ba5c35) )
ROM_LOAD( "ppb-n2.bin", 0x80000, 0x40000, CRC(318c0b5f) SHA1(1d4cd17dc2f8fc4e523eaf679f21d83e1bfade4e) )
@@ -3368,176 +3769,77 @@ ROM_START( poundforu )
ROM_LOAD( "ppa-v0.bin", 0x00000, 0x40000, CRC(03321664) SHA1(51f2b2b712385c1cd55fd069829efac01838d603) )
ROM_END
-ROM_START( airduel )
- ROM_REGION( 0x100000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "ad-c-h0.bin", 0x00001, 0x20000, CRC(12140276) SHA1(f218c5f2e6795b6295dea064817d7d6b1a7762b6) )
- ROM_LOAD16_BYTE( "ad-c-l0.bin", 0x00000, 0x20000, CRC(4ac0b91d) SHA1(97e2f633181cd5c25927fd0e2988af2acdb3f388) )
- ROM_LOAD16_BYTE( "ad-c-h3.bin", 0x40001, 0x20000, CRC(9f7cfca3) SHA1(becf827aa7749c54f1c435ea224e1fd9c8b3f5f9) )
- ROM_RELOAD( 0xc0001, 0x20000 )
- ROM_LOAD16_BYTE( "ad-c-l3.bin", 0x40000, 0x20000, CRC(9dd343f7) SHA1(9f499936b6d3807aa5b5c18e9811c73c9a2c99f9) )
- ROM_RELOAD( 0xc0000, 0x20000 )
-
- ROM_REGION( 0x10000, "mcu", 0 )
- ROM_LOAD( "airduel_i8751.mcu", 0x00000, 0x10000, NO_DUMP ) // read protected
-
- ROM_REGION( 0x080000, "gfx1", 0 )
- ROM_LOAD( "ad-00.bin", 0x00000, 0x20000, CRC(2f0d599b) SHA1(a966f806b5e25bb98cc63c46c49e0e676a62afcf) ) /* sprites */
- ROM_LOAD( "ad-10.bin", 0x20000, 0x20000, CRC(9865856b) SHA1(b18a06899ae29d45e2351594df544220f3f4485a) )
- ROM_LOAD( "ad-20.bin", 0x40000, 0x20000, CRC(d392aef2) SHA1(0f639a07066cadddc3884eb490885a8745571567) )
- ROM_LOAD( "ad-30.bin", 0x60000, 0x20000, CRC(923240c3) SHA1(f587a83329087a715a3e42110f74f104e8c8ef1f) )
-
- ROM_REGION( 0x080000, "gfx2", 0 )
- ROM_LOAD( "ad-a0.bin", 0x00000, 0x20000, CRC(ce134b47) SHA1(841358cc222c81b8a91edc262f355310d50b4dbb) ) /* tiles #1 */
- ROM_LOAD( "ad-a1.bin", 0x20000, 0x20000, CRC(097fd853) SHA1(8e08f4f4a747c899bb8e21b347635e26af9edc2d) )
- ROM_LOAD( "ad-a2.bin", 0x40000, 0x20000, CRC(6a94c1b9) SHA1(55174acbac54236e5fc1b80d120cd6da9fe5524c) )
- ROM_LOAD( "ad-a3.bin", 0x60000, 0x20000, CRC(6637c349) SHA1(27cb7c89ab73292b43f8ae3c0d803a01ef3d3936) )
-
- ROM_REGION( 0x080000, "gfx3", 0 )
- ROM_LOAD( "ad-b0.bin", 0x00000, 0x20000, CRC(ce134b47) SHA1(841358cc222c81b8a91edc262f355310d50b4dbb) ) /* tiles #2 */
- ROM_LOAD( "ad-b1.bin", 0x20000, 0x20000, CRC(097fd853) SHA1(8e08f4f4a747c899bb8e21b347635e26af9edc2d) )
- ROM_LOAD( "ad-b2.bin", 0x40000, 0x20000, CRC(6a94c1b9) SHA1(55174acbac54236e5fc1b80d120cd6da9fe5524c) )
- ROM_LOAD( "ad-b3.bin", 0x60000, 0x20000, CRC(6637c349) SHA1(27cb7c89ab73292b43f8ae3c0d803a01ef3d3936) )
-
- ROM_REGION( 0x20000, "samples", 0 ) /* samples */
- ROM_LOAD( "ad-v0.bin", 0x00000, 0x20000, CRC(339f474d) SHA1(a81bb52598a0e31b2ed6a538755237c5d14d1844) )
-ROM_END
-
-ROM_START( cosmccop )
- ROM_REGION( 0x100000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "cc-d-h0b.bin", 0x00001, 0x40000, CRC(38958b01) SHA1(7d7e217742e33a1fe096adf5bbc93d63ddcfb375) )
- ROM_RELOAD( 0x80001, 0x40000 )
- ROM_LOAD16_BYTE( "cc-d-l0b.bin", 0x00000, 0x40000, CRC(eff87f70) SHA1(61f49b8738cf31546d4182680b761705274b01bf) )
- ROM_RELOAD( 0x80000, 0x40000 )
-
- ROM_REGION( 0x10000, "soundcpu", 0 )
- ROM_LOAD( "cc-d-sp.bin", 0x00000, 0x10000, CRC(3e3ace60) SHA1(d89b1b84de2887598bb7bcb17b1df1ec8d1862a9) )
-
- ROM_REGION( 0x080000, "gfx1", 0 )
- ROM_LOAD( "cc-c-00.bin", 0x00000, 0x20000, CRC(9d99deaa) SHA1(acf16bea0f482306107d2a305c568406b6c21e9a) ) // cc-b-n0
- ROM_LOAD( "cc-c-10.bin", 0x20000, 0x20000, CRC(7eb083ed) SHA1(31fa7d532fd46e861c3d19d5b08661653f685a49) ) // cc-b-n1
- ROM_LOAD( "cc-c-20.bin", 0x40000, 0x20000, CRC(9421489e) SHA1(e43d042bf8b4ebed93558d74ec479ec60a01ca5c) ) // cc-b-n2
- ROM_LOAD( "cc-c-30.bin", 0x60000, 0x20000, CRC(920ec735) SHA1(2d0949b43dddce7317c45910d6e4868ddf010806) ) // cc-b-n3
-
- ROM_REGION( 0x080000, "gfx2", 0 )
- ROM_LOAD( "cc-d-g00.bin", 0x00000, 0x20000, CRC(e7f3d772) SHA1(c7f0bc42e8dde7bae334c7974c3d0ddba3856144) ) /* tiles */
- ROM_LOAD( "cc-d-g10.bin", 0x20000, 0x20000, CRC(418b4e4c) SHA1(1191f12741ee7a360240f706534c9c83be8d5c2d) )
- ROM_LOAD( "cc-d-g20.bin", 0x40000, 0x20000, CRC(a4b558eb) SHA1(0babf725de0065dbeca73fa170bd33565305d129) )
- ROM_LOAD( "cc-d-g30.bin", 0x60000, 0x20000, CRC(f64a3166) SHA1(1661db2a37c76e6b4552e48c04966dbbccab8926) )
-
- ROM_REGION( 0x20000, "samples", 0 ) /* samples */
- ROM_LOAD( "cc-c-v0.bin", 0x00000, 0x20000, CRC(6247bade) SHA1(4bc9f86acd09908c74b1ab0e7817c4ff1cad6f0b) ) // cc-d-v0
-ROM_END
-
-ROM_START( gallop )
- ROM_REGION( 0x100000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "cc-c-h0.bin", 0x00001, 0x20000, CRC(2217dcd0) SHA1(9485b6c3eec99e720439e69dcbe0e55798bbff1c) )
- ROM_LOAD16_BYTE( "cc-c-l0.bin", 0x00000, 0x20000, CRC(ff39d7fb) SHA1(fad95f76050fce04464268b5edff6622b2cb798f) )
- ROM_LOAD16_BYTE( "cc-c-h3.bin", 0x40001, 0x20000, CRC(9b2bbab9) SHA1(255d4dda55be667f5f1f4324e9e66111738e79b3) )
- ROM_RELOAD( 0xc0001, 0x20000 )
- ROM_LOAD16_BYTE( "cc-c-l3.bin", 0x40000, 0x20000, CRC(acd3278e) SHA1(83d7ddfbdb4bc9548a179b728351a21b3b0ac134) )
- ROM_RELOAD( 0xc0000, 0x20000 )
+// in the case of the i8751 protected games the World and Japan sets should be using different MCU roms.
+// the MCU roms provide checksum information needed for the sets, so using the wrong ROM will result in
+// the program roms failing their tests. This is why we still have simulation code for many games
+// despite having Japanese version MCU roms for several of them. See notes next to the sets
- ROM_REGION( 0x10000, "mcu", 0 )
- ROM_LOAD( "gallop_i8751.mcu", 0x00000, 0x10000, NO_DUMP ) // read protected (only used for sample triggering, not supplying code / warning screens)
+/* M72 */
- ROM_REGION( 0x080000, "gfx1", 0 )
- ROM_LOAD( "cc-c-00.bin", 0x00000, 0x20000, CRC(9d99deaa) SHA1(acf16bea0f482306107d2a305c568406b6c21e9a) ) /* sprites */
- ROM_LOAD( "cc-c-10.bin", 0x20000, 0x20000, CRC(7eb083ed) SHA1(31fa7d532fd46e861c3d19d5b08661653f685a49) )
- ROM_LOAD( "cc-c-20.bin", 0x40000, 0x20000, CRC(9421489e) SHA1(e43d042bf8b4ebed93558d74ec479ec60a01ca5c) )
- ROM_LOAD( "cc-c-30.bin", 0x60000, 0x20000, CRC(920ec735) SHA1(2d0949b43dddce7317c45910d6e4868ddf010806) )
+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 )
- ROM_REGION( 0x040000, "gfx2", 0 )
- ROM_LOAD( "cc-b-a0.bin", 0x00000, 0x10000, CRC(a33472bd) SHA1(962047fe3dd1fb996285ecef615a8ebdb529adef) ) /* tiles #1 */
- ROM_LOAD( "cc-b-a1.bin", 0x10000, 0x10000, CRC(118b1f2d) SHA1(7413ccc67a8aa9dae156e6ee122b1ca5beeb9a76) )
- ROM_LOAD( "cc-b-a2.bin", 0x20000, 0x10000, CRC(83cebf48) SHA1(12847827ecbf6b493eb9dbddd0a469729d87a451) )
- ROM_LOAD( "cc-b-a3.bin", 0x30000, 0x10000, CRC(572903fc) SHA1(03305301bcf939e97044e746594736b1ca1d7c0a) )
+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 )
- ROM_REGION( 0x040000, "gfx3", 0 )
- ROM_LOAD( "cc-b-b0.bin", 0x00000, 0x10000, CRC(0df5b439) SHA1(0775cf92139a111542c8b5f940da0f7f43020982) ) /* tiles #2 */
- ROM_LOAD( "cc-b-b1.bin", 0x10000, 0x10000, CRC(010b778f) SHA1(cc5bfeb0fbe0ed2fe513458c5785ec0ce5b02f53) )
- ROM_LOAD( "cc-b-b2.bin", 0x20000, 0x10000, CRC(bda9f6fb) SHA1(a6b655ae5bff0568c1fb56ee8a3874fc6524052c) )
- ROM_LOAD( "cc-b-b3.bin", 0x30000, 0x10000, CRC(d361ba3f) SHA1(7348fdae03e997e05187a2726eb221edb92553df) )
+GAME( 1988, nspirit, 0, m72, nspirit, m72_state, nspirit, ROT0, "Irem", "Ninja Spirit", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // doesn't wait / check for japan warning string.. fails rom check if used with japanese mcu rom (World version?)
+GAME( 1988, nspiritj, nspirit, m72_8751, nspirit, m72_state, m72_8751, ROT0, "Irem", "Saigo no Nindou (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // waits for japan warning screen, works with our mcu dump, corrupt warning screen due to priority / mixing errors (Japan Version)
- ROM_REGION( 0x20000, "samples", 0 ) /* samples */
- ROM_LOAD( "cc-c-v0.bin", 0x00000, 0x20000, CRC(6247bade) SHA1(4bc9f86acd09908c74b1ab0e7817c4ff1cad6f0b) )
-ROM_END
+GAME( 1988, imgfight, 0, m72, imgfight, m72_state, imgfight, ROT270, "Irem", "Image Fight (World, revision A)", MACHINE_SUPPORTS_SAVE ) // doesn't wait / check for japan warning string.. fails rom check if used with japanese mcu rom (World version?)
+GAME( 1988, imgfightj, imgfight, m72_8751, imgfight, m72_state, m72_8751, ROT270, "Irem", "Image Fight (Japan)", MACHINE_SUPPORTS_SAVE ) // waits for japan warning screen, works with our mcu dump, can't actually see warning screen due to priority / mixing errors, check tilemap viewer (Japan Version)
-ROM_START( kengo )
- ROM_REGION( 0x100000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "ken_d-h0.rom", 0x00001, 0x20000, CRC(f4ddeea5) SHA1(bcf016e40886e11c171f2f50de39ac0d8cabcdd1) )
- ROM_RELOAD( 0xc0001, 0x20000 )
- ROM_LOAD16_BYTE( "ken_d-l0.rom", 0x00000, 0x20000, CRC(04dc0f81) SHA1(b296529f0bc26d53b344449dfa5a08eca70f30d8) )
- ROM_RELOAD( 0xc0000, 0x20000 )
+GAME( 1989, loht, 0, m72, loht, m72_state, loht, ROT0, "Irem", "Legend of Hero Tonma", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // fails rom check if used with Japan MCU rom (World version?)
+GAME( 1989, lohtj, loht, m72_8751, loht, m72_state, m72_8751, ROT0, "Irem", "Legend of Hero Tonma (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // waits for japan warning screen, works with our mcu dump (Japan Version)
+GAME( 1989, lohtb2, loht, m72_8751, loht, m72_state, m72_8751, ROT0, "bootleg", "Legend of Hero Tonma (Japan, bootleg with i8751)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // works like above, mcu code is the same as the real code, probably just an alt revision on a bootleg board
- ROM_REGION( 0x10000, "soundcpu", 0 )
- ROM_LOAD( "ken_d-sp.rom", 0x00000, 0x10000, CRC(233ca1cf) SHA1(4ebb6162773bd586a10016ccd77998a9b880f474) )
+GAME( 1989, xmultiplm72, xmultipl, m72_xmultipl,xmultipl, m72_state, m72_8751, ROT0, "Irem", "X Multiply (Japan, M72)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
- ROM_REGION( 0x080000, "gfx1", 0 )
- ROM_LOAD( "ken_m31.rom", 0x00000, 0x20000, CRC(e00b95a6) SHA1(6efcd8d58f8ebe3a42c60a0aa790b42c0e132777) ) /* sprites */
- ROM_LOAD( "ken_m21.rom", 0x20000, 0x20000, CRC(d7722f87) SHA1(8606a53b8630934d2b5dfc986bd92ac4142f67e2) )
- ROM_LOAD( "ken_m32.rom", 0x40000, 0x20000, CRC(30a844c4) SHA1(72b2caba3ee7a229ca56f004516dea8d3f0a7ba6) )
- ROM_LOAD( "ken_m22.rom", 0x60000, 0x20000, CRC(a00dac85) SHA1(0c1ed852795046926f62843f6b256cbeecf9ebcf) )
+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
- ROM_REGION( 0x080000, "gfx2", 0 )
- ROM_LOAD( "ken_m51.rom", 0x00000, 0x20000, CRC(1646cf4f) SHA1(d240cb2bad3e766128e8e40aa7b1bf4f3b9a5559) ) /* tiles */
- ROM_LOAD( "ken_m57.rom", 0x20000, 0x20000, CRC(a9f88d90) SHA1(c8d4a96fe55fed4b7499550f3c74b03d10306757) )
- ROM_LOAD( "ken_m66.rom", 0x40000, 0x20000, CRC(e9d17645) SHA1(fbe18d6691686a1c458d4a91169c9850698b5ca7) )
- ROM_LOAD( "ken_m64.rom", 0x60000, 0x20000, CRC(df46709b) SHA1(e7c2cd752e765bf7b8ff24637305d61031ce0baa) )
+GAME( 1991, gallop, cosmccop, m72, gallop, m72_state, gallop, ROT0, "Irem", "Gallop - Armed Police Unit (Japan, M72)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
- ROM_REGION( 0x20000, "samples", 0 ) /* samples */
- ROM_LOAD( "ken_m14.rom", 0x00000, 0x20000, CRC(6651e9b7) SHA1(c42009f986c9a9f35732d5cd717d548536469b1c) )
-ROM_END
-
-// in the case of the i8751 protected games the World and Japan sets should be using different MCU roms.
-// the MCU roms provide checksum information needed for the sets, so using the wrong ROM will result in
-// the program roms failing their tests. This is why we still have simulation code for many games
-// despite having Japanese version MCU roms for several of them. See notes next to the sets
+GAME( 1990, airduelm72, airduel, m72, airduel, m72_state, airduelm72, ROT270, "Irem", "Air Duel (Japan, M72)", MACHINE_SUPPORTS_SAVE )
-GAME( 1987, rtype, 0, rtype, rtype, driver_device, 0, ROT0, "Irem", "R-Type (World)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1987, rtypej, rtype, rtype, rtype, driver_device, 0, ROT0, "Irem", "R-Type (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1987, rtypejp, rtype, rtype, rtypep, driver_device, 0, ROT0, "Irem", "R-Type (Japan prototype)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1987, rtypeu, rtype, rtype, rtype, driver_device, 0, ROT0, "Irem (Nintendo of America license)", "R-Type (US)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1987, rtypeb, rtype, rtype, rtype, driver_device, 0, ROT0, "bootleg", "R-Type (World bootleg)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+GAME( 1990, dkgensanm72, hharry, m72, hharry, m72_state, dkgenm72, ROT0, "Irem", "Daiku no Gensan (Japan, M72)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
-GAME( 1987, bchopper, 0, m72, bchopper, m72_state, bchopper, ROT0, "Irem", "Battle Chopper", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1987, mrheli, bchopper, m72_8751, bchopper, m72_state, m72_8751, ROT0, "Irem", "Mr. HELI no Daibouken (Japan)", GAME_NO_COCKTAIL | GAME_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( 1988, nspirit, 0, m72, nspirit, m72_state, nspirit, ROT0, "Irem", "Ninja Spirit", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) // doesn't wait / check for japan warning string.. fails rom check if used with japanese mcu rom (World version?)
-GAME( 1988, nspiritj, nspirit, m72_8751, nspirit, m72_state, m72_8751, ROT0, "Irem", "Saigo no Nindou (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) // waits for japan warning screen, works with our mcu dump, corrupt warning screen due to priority / mixing errors (Japan Version)
+/* 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( 1988, imgfight, 0, m72, imgfight, m72_state, imgfight, ROT270, "Irem", "Image Fight (World, revision A)", GAME_SUPPORTS_SAVE ) // doesn't wait / check for japan warning string.. fails rom check if used with japanese mcu rom (World version?)
-GAME( 1988, imgfightj, imgfight, m72_8751, imgfight, m72_state, m72_8751, ROT270, "Irem", "Image Fight (Japan)", GAME_SUPPORTS_SAVE ) // waits for japan warning screen, works with our mcu dump, can't actually see warning screen due to priority / mixing errors, check tilemap viewer (Japan Version)
+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( 1989, loht, 0, m72, loht, m72_state, loht, ROT0, "Irem", "Legend of Hero Tonma", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) // fails rom check if used with Japan MCU rom (World version?)
-GAME( 1989, lohtj, loht, m72_8751, loht, m72_state, m72_8751, ROT0, "Irem", "Legend of Hero Tonma (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) // waits for japan warning screen, works with our mcu dump (Japan Version)
-GAME( 1989, lohtb2, loht, m72_8751, loht, m72_state, m72_8751, ROT0, "bootleg", "Legend of Hero Tonma (Japan, bootleg with i8751)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) // works like above, mcu code is the same as the real code, probably just an alt revision on a bootleg board
-GAME( 1989, lohtb, loht, m72, loht, driver_device, 0, ROT0, "bootleg", "Legend of Hero Tonma (unprotected bootleg)", GAME_NOT_WORKING| GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+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( 1989, xmultipl, 0, xmultipl, xmultipl, driver_device, 0, ROT0, "Irem", "X Multiply (World, M81)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1989, xmultiplm72, xmultipl, xmultiplm72, xmultipl, m72_state, m72_8751, ROT0, "Irem", "X Multiply (Japan, M72)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+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( 1989, dbreed, 0, dbreed, dbreed, driver_device, 0, ROT0, "Irem", "Dragon Breed (M81 PCB version)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1989, dbreedm72, dbreed, dbreedm72, dbreed, m72_state, dbreedm72, ROT0, "Irem", "Dragon Breed (M72 PCB version)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+/* M84 */
-GAME( 1989, rtype2, 0, rtype2, rtype2, driver_device, 0, ROT0, "Irem", "R-Type II", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1989, rtype2j, rtype2, rtype2, rtype2, driver_device, 0, ROT0, "Irem", "R-Type II (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1989, rtype2jc, rtype2, rtype2, rtype2, driver_device, 0, ROT0, "Irem", "R-Type II (Japan, revision C)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+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, majtitle, 0, majtitle, rtype2, driver_device, 0, ROT0, "Irem", "Major Title (World)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1990, majtitlej, majtitle, majtitle, rtype2, driver_device, 0, ROT0, "Irem", "Major Title (Japan)", GAME_NO_COCKTAIL | GAME_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( 1990, hharry, 0, hharry, hharry, driver_device, 0, ROT0, "Irem", "Hammerin' Harry (World)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1990, hharryu, hharry, hharryu, hharry, driver_device, 0, ROT0, "Irem America", "Hammerin' Harry (US)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1990, dkgensan, hharry, hharryu, hharry, driver_device, 0, ROT0, "Irem", "Daiku no Gensan (Japan, M82)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1990, dkgensanm72, hharry, dkgenm72, hharry, m72_state, dkgenm72, ROT0, "Irem", "Daiku no Gensan (Japan, M72)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+GAME( 1991, cosmccop, 0, cosmccop, gallop, driver_device, 0, ROT0, "Irem", "Cosmic Cop (World)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
-GAME( 1990, poundfor, 0, poundfor, poundfor, driver_device, 0, ROT270, "Irem", "Pound for Pound (World)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1990, poundforj, poundfor, poundfor, poundfor, driver_device, 0, ROT270, "Irem", "Pound for Pound (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1990, poundforu, poundfor, poundfor, poundfor, driver_device, 0, ROT270, "Irem America", "Pound for Pound (US)", GAME_NO_COCKTAIL | GAME_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( 1990, airduel, 0, m72, airduel, m72_state, airduel, ROT270, "Irem", "Air Duel (Japan)", GAME_SUPPORTS_SAVE )
+/* M85 */
-GAME( 1991, cosmccop, 0, cosmccop, gallop, driver_device, 0, ROT0, "Irem", "Cosmic Cop (World)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1991, gallop, cosmccop, m72, gallop, m72_state, gallop, ROT0, "Irem", "Gallop - Armed Police Unit (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+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( 1991, kengo, 0, kengo, kengo, driver_device, 0, ROT0, "Irem", "Ken-Go", GAME_NO_COCKTAIL | GAME_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 )
diff --git a/src/mess/drivers/m79152pc.c b/src/mame/drivers/m79152pc.c
index 313a66dd892..cf8bf82d908 100644
--- a/src/mess/drivers/m79152pc.c
+++ b/src/mame/drivers/m79152pc.c
@@ -142,4 +142,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( ????, m79152pc, 0, 0, m79152pc, m79152pc, driver_device, 0, "Mera-Elzab", "MERA 79152 PC", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/m79amb.c b/src/mame/drivers/m79amb.c
index 7fcaf671cc8..2d7a5c0836c 100644
--- a/src/mame/drivers/m79amb.c
+++ b/src/mame/drivers/m79amb.c
@@ -300,4 +300,4 @@ DRIVER_INIT_MEMBER(m79amb_state,m79amb)
}
}
-GAME( 1977, m79amb, 0, m79amb, m79amb, m79amb_state, m79amb, ROT0, "RamTek", "M-79 Ambush", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1977, m79amb, 0, m79amb, m79amb, m79amb_state, m79amb, ROT0, "Ramtek", "M-79 Ambush", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/m90.c b/src/mame/drivers/m90.c
index 25beeab47a7..9c59f67b44b 100644
--- a/src/mame/drivers/m90.c
+++ b/src/mame/drivers/m90.c
@@ -1221,19 +1221,19 @@ DRIVER_INIT_MEMBER(m90_state,bomblord)
-GAME( 1991, hasamu, 0, hasamu, hasamu, driver_device, 0, ROT0, "Irem", "Hasamu (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1991, dynablst, 0, bombrman, dynablst, driver_device, 0, ROT0, "Irem (licensed from Hudson Soft)", "Dynablaster / Bomber Man", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1991, bombrman, dynablst, bombrman, bombrman, driver_device, 0, ROT0, "Irem (licensed from Hudson Soft)", "Bomber Man (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1991, atompunk, dynablst, bombrman, atompunk, driver_device, 0, ROT0, "Irem America (licensed from Hudson Soft)", "Atomic Punk (US)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1991, dynablstb,dynablst, dynablsb, dynablsb, driver_device, 0, ROT0, "bootleg (Seitu)", "Dynablaster / Bomber Man (bootleg)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1991, dynablstb2,dynablst,dynablsb, dynablsb, driver_device, 0, ROT0, "bootleg (Seitu)", "Dynablaster / Bomber Man (bootleg, alt)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1992, bbmanw, 0, bbmanw, bbmanw, driver_device, 0, ROT0, "Irem", "Bomber Man World / New Dyna Blaster - Global Quest", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1992, bbmanwj, bbmanw, bbmanw, bbmanwj, driver_device, 0, ROT0, "Irem", "Bomber Man World (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1992, bbmanwja, bbmanw, bbmanwj, bbmanwj, driver_device, 0, ROT0, "Irem", "Bomber Man World (Japan, revised sound hardware)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1992, newapunk, bbmanw, bbmanw, newapunk, driver_device, 0, ROT0, "Irem America", "New Atomic Punk - Global Quest (US)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1992, bomblord, bbmanw, bomblord, bbmanw, m90_state, bomblord, ROT0, "bootleg", "Bomber Lord (bootleg)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1992, quizf1, 0, quizf1, quizf1, m90_state, quizf1, ROT0, "Irem", "Quiz F1 1-2 Finish (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1993, riskchal, 0, riskchal, riskchal, driver_device, 0, ROT0, "Irem", "Risky Challenge", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1993, gussun, riskchal, riskchal, riskchal, driver_device, 0, ROT0, "Irem", "Gussun Oyoyo (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1993, matchit2, 0, matchit2, matchit2, driver_device, 0, ROT0, "Tamtex", "Match It II", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1993, shisen2, matchit2, matchit2, shisen2, driver_device, 0, ROT0, "Tamtex", "Shisensho II", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+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( 1991, dynablstb,dynablst, dynablsb, dynablsb, driver_device, 0, ROT0, "bootleg (Seitu)", "Dynablaster / Bomber Man (bootleg)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1991, dynablstb2,dynablst,dynablsb, dynablsb, driver_device, 0, ROT0, "bootleg (Seitu)", "Dynablaster / Bomber Man (bootleg, alt)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/m92.c b/src/mame/drivers/m92.c
index b67309d46cb..7ac6630ef16 100644
--- a/src/mame/drivers/m92.c
+++ b/src/mame/drivers/m92.c
@@ -211,10 +211,35 @@ psoldier dip locations still need verification.
#include "sound/okim6295.h"
-#define M92_IRQ_0 ((m_irq_vectorbase+0)/4) /* VBL interrupt */
-#define M92_IRQ_1 ((m_irq_vectorbase+4)/4) /* Sprite buffer complete interrupt */
-#define M92_IRQ_2 ((m_irq_vectorbase+8)/4) /* Raster interrupt */
-#define M92_IRQ_3 ((m_irq_vectorbase+12)/4) /* Sound cpu interrupt */
+// I haven't managed to find a way to keep nbbatman happy when using the proper upd71059c device
+// so we just use an ugly hack and get the vector base from it for now until this is properly resolved.
+#define USE_HACKED_IRQS
+
+#ifdef USE_HACKED_IRQS
+
+#define M92_TRIGGER_IRQ0 m_maincpu->set_input_line_and_vector(0, HOLD_LINE, m_upd71059c->HACK_get_base_vector()+0 ); /* VBL interrupt */
+#define M92_TRIGGER_IRQ1 m_maincpu->set_input_line_and_vector(0, HOLD_LINE, m_upd71059c->HACK_get_base_vector()+1 ); /* Sprite buffer complete interrupt */
+#define M92_TRIGGER_IRQ2 m_maincpu->set_input_line_and_vector(0, HOLD_LINE, m_upd71059c->HACK_get_base_vector()+2 ); /* Raster interrupt */
+#define M92_TRIGGER_IRQ3 m_maincpu->set_input_line_and_vector(0, HOLD_LINE, m_upd71059c->HACK_get_base_vector()+3 ); /* Sound cpu->Main cpu interrupt */
+// not used due to HOLD LINE logic
+#define M92_CLEAR_IRQ0 ;
+#define M92_CLEAR_IRQ1 ;
+#define M92_CLEAR_IRQ2 ;
+#define M92_CLEAR_IRQ3 ;
+
+#else
+
+#define M92_TRIGGER_IRQ0 m_upd71059c->ir0_w(1);
+#define M92_TRIGGER_IRQ1 m_upd71059c->ir1_w(1);
+#define M92_TRIGGER_IRQ2 m_upd71059c->ir2_w(1);
+#define M92_TRIGGER_IRQ3 m_upd71059c->ir3_w(1);
+// not sure when these should happen, probably the source of our issues
+#define M92_CLEAR_IRQ0 m_upd71059c->ir0_w(0);
+#define M92_CLEAR_IRQ1 m_upd71059c->ir1_w(0);
+#define M92_CLEAR_IRQ2 m_upd71059c->ir2_w(0);
+#define M92_CLEAR_IRQ3 m_upd71059c->ir3_w(0);
+
+#endif
/*****************************************************************************/
@@ -231,6 +256,7 @@ MACHINE_RESET_MEMBER(m92_state,m92)
/*****************************************************************************/
+
TIMER_DEVICE_CALLBACK_MEMBER(m92_state::m92_scanline_interrupt)
{
int scanline = param;
@@ -239,17 +265,28 @@ TIMER_DEVICE_CALLBACK_MEMBER(m92_state::m92_scanline_interrupt)
if (scanline == m_raster_irq_position)
{
m_screen->update_partial(scanline);
- m_maincpu->set_input_line_and_vector(0, HOLD_LINE, M92_IRQ_2);
+ M92_TRIGGER_IRQ2
}
-
- /* VBLANK interrupt */
- else if (scanline == m_screen->visible_area().max_y + 1)
+ else
{
- m_screen->update_partial(scanline);
- m_maincpu->set_input_line_and_vector(0, HOLD_LINE, M92_IRQ_0);
+ M92_CLEAR_IRQ2
+
+ /* VBLANK interrupt */
+ if (scanline == m_screen->visible_area().max_y + 1)
+ {
+ m_screen->update_partial(scanline);
+ M92_TRIGGER_IRQ0
+ }
+ else
+ {
+ M92_CLEAR_IRQ0
+ }
+
}
}
+
+
/*****************************************************************************/
READ16_MEMBER(m92_state::m92_eeprom_r)
@@ -327,7 +364,7 @@ WRITE16_MEMBER(m92_state::m92_sound_irq_ack_w)
WRITE16_MEMBER(m92_state::m92_sound_status_w)
{
COMBINE_DATA(&m_sound_status);
- m_maincpu->set_input_line_and_vector(0, HOLD_LINE, M92_IRQ_3);
+ M92_TRIGGER_IRQ3
}
@@ -372,7 +409,7 @@ static ADDRESS_MAP_START( m92_portmap, AS_IO, 16, m92_state )
AM_RANGE(0x08, 0x09) AM_READ(m92_sound_status_r) /* answer from sound CPU */
AM_RANGE(0x00, 0x01) AM_WRITE(m92_soundlatch_w)
AM_RANGE(0x02, 0x03) AM_WRITE(m92_coincounter_w)
- AM_RANGE(0x40, 0x43) AM_WRITENOP /* Interrupt controller, only written to at bootup */
+ AM_RANGE(0x40, 0x43) AM_DEVREADWRITE8("upd71059c", pic8259_device, read, write, 0x00ff)
AM_RANGE(0x80, 0x87) AM_WRITE(m92_pf1_control_w)
AM_RANGE(0x88, 0x8f) AM_WRITE(m92_pf2_control_w)
AM_RANGE(0x90, 0x97) AM_WRITE(m92_pf3_control_w)
@@ -394,7 +431,7 @@ static ADDRESS_MAP_START( ppan_portmap, AS_IO, 16, m92_state )
AM_RANGE(0x10, 0x11) AM_WRITE(oki_bank_w)
AM_RANGE(0x18, 0x19) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
AM_RANGE(0x02, 0x03) AM_WRITE(m92_coincounter_w)
- AM_RANGE(0x40, 0x43) AM_WRITENOP /* Interrupt controller, only written to at bootup */
+ AM_RANGE(0x40, 0x43) AM_DEVREADWRITE8("upd71059c", pic8259_device, read, write, 0x00ff)
AM_RANGE(0x80, 0x87) AM_WRITE(m92_pf1_control_w)
AM_RANGE(0x88, 0x8f) AM_WRITE(m92_pf2_control_w)
AM_RANGE(0x90, 0x97) AM_WRITE(m92_pf3_control_w)
@@ -912,19 +949,25 @@ GFXDECODE_END
void m92_state::m92_sprite_interrupt()
{
- m_maincpu->set_input_line_and_vector(0, HOLD_LINE, M92_IRQ_1);
+ M92_TRIGGER_IRQ1
}
+
static MACHINE_CONFIG_START( m92, m92_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu",V33,XTAL_18MHz/2)
MCFG_CPU_PROGRAM_MAP(m92_map)
MCFG_CPU_IO_MAP(m92_portmap)
+#ifndef USE_HACKED_IRQS
+ MCFG_CPU_IRQ_ACKNOWLEDGE_DEVICE("upd71059c", pic8259_device, inta_cb)
+#endif
MCFG_CPU_ADD("soundcpu" ,V35, XTAL_14_31818MHz)
MCFG_CPU_PROGRAM_MAP(sound_map)
+ MCFG_PIC8259_ADD( "upd71059c", INPUTLINE("maincpu", 0), VCC, NULL)
+
MCFG_MACHINE_START_OVERRIDE(m92_state,m92)
MCFG_MACHINE_RESET_OVERRIDE(m92_state,m92)
@@ -2112,25 +2155,12 @@ DRIVER_INIT_MEMBER(m92_state,m92)
membank("bank1")->set_base(&ROM[0xa0000]);
m_game_kludge = 0;
- m_irq_vectorbase = 0x80;
-}
-
-/* different vector base */
-DRIVER_INIT_MEMBER(m92_state,m92_alt)
-{
- UINT8 *ROM = memregion("maincpu")->base();
-
- membank("bank1")->set_base(&ROM[0xa0000]);
-
- m_game_kludge = 0;
- m_irq_vectorbase = 0x20;
}
-/* different vector base, different address map (no bank1) */
+/* different address map (no bank1) */
DRIVER_INIT_MEMBER(m92_state,lethalth)
{
m_game_kludge = 0;
- m_irq_vectorbase = 0x20;
}
/* has bankswitching */
@@ -2142,7 +2172,6 @@ DRIVER_INIT_MEMBER(m92_state,m92_bank)
m_maincpu->space(AS_IO).install_write_handler(0x20, 0x21, write16_delegate(FUNC(m92_state::m92_bankswitch_w),this));
m_game_kludge = 0;
- m_irq_vectorbase = 0x80;
}
/* has bankswitching, has eeprom, needs sprite kludge */
@@ -2157,7 +2186,6 @@ DRIVER_INIT_MEMBER(m92_state,majtitl2)
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf0000, 0xf3fff, read16_delegate(FUNC(m92_state::m92_eeprom_r),this), write16_delegate(FUNC(m92_state::m92_eeprom_w),this));
m_game_kludge = 2;
- m_irq_vectorbase = 0x80;
}
/* TODO: figure out actual address map and other differences from real Irem h/w */
@@ -2167,46 +2195,58 @@ DRIVER_INIT_MEMBER(m92_state,ppan)
membank("bank1")->set_base(&ROM[0xa0000]);
m_game_kludge = 0;
- m_irq_vectorbase = 0x80;
}
/***************************************************************************/
-GAME( 1991, gunforce, 0, gunforce, gunforce, m92_state, m92, ROT0, "Irem", "Gunforce - Battle Fire Engulfed Terror Island (World)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1991, gunforcej,gunforce, gunforce, gunforce, m92_state, m92, ROT0, "Irem", "Gunforce - Battle Fire Engulfed Terror Island (Japan)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1991, gunforceu,gunforce, gunforce, gunforce, m92_state, m92, ROT0, "Irem America", "Gunforce - Battle Fire Engulfed Terror Island (US)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1991, bmaster, 0, bmaster, bmaster, m92_state, m92, ROT0, "Irem", "Blade Master (World)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1991, crossbld, bmaster, bmaster, bmaster, m92_state, m92, ROT0, "Irem", "Cross Blades! (Japan)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL)
-GAME( 1991, lethalth, 0, lethalth, lethalth, m92_state, lethalth, ROT270, "Irem", "Lethal Thunder (World)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1991, thndblst, lethalth, lethalth, lethalth, m92_state, lethalth, ROT270, "Irem", "Thunder Blaster (Japan)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1992, uccops, 0, uccops, uccops, m92_state, m92, ROT0, "Irem", "Undercover Cops (World)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1992, uccopsu, uccops, uccops, uccops, m92_state, m92, ROT0, "Irem", "Undercover Cops (US)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1992, uccopsar, uccops, uccops, uccops, m92_state, m92, ROT0, "Irem", "Undercover Cops - Alpha Renewal Version", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1992, uccopsj, uccops, uccops, uccops, m92_state, m92, ROT0, "Irem", "Undercover Cops (Japan)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1992, mysticri, 0, mysticri, mysticri, m92_state, m92, ROT0, "Irem", "Mystic Riders (World)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL)
-GAME( 1992, gunhohki, mysticri, mysticri, mysticri, m92_state, m92, ROT0, "Irem", "Mahou Keibitai Gun Hohki (Japan)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
+GAME( 1991, gunforce, 0, gunforce, gunforce, m92_state, m92, ROT0, "Irem", "Gunforce - Battle Fire Engulfed Terror Island (World)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
+GAME( 1991, gunforcej,gunforce, gunforce, gunforce, m92_state, m92, ROT0, "Irem", "Gunforce - Battle Fire Engulfed Terror Island (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
+GAME( 1991, gunforceu,gunforce, gunforce, gunforce, m92_state, m92, ROT0, "Irem America", "Gunforce - Battle Fire Engulfed Terror Island (US)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
+
+GAME( 1991, bmaster, 0, bmaster, bmaster, m92_state, m92, ROT0, "Irem", "Blade Master (World)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
+GAME( 1991, crossbld, bmaster, bmaster, bmaster, m92_state, m92, ROT0, "Irem", "Cross Blades! (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL)
+
+GAME( 1991, lethalth, 0, lethalth, lethalth, m92_state, lethalth, ROT270, "Irem", "Lethal Thunder (World)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
+GAME( 1991, thndblst, lethalth, lethalth, lethalth, m92_state, lethalth, ROT270, "Irem", "Thunder Blaster (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
+
+GAME( 1992, uccops, 0, uccops, uccops, m92_state, m92, ROT0, "Irem", "Undercover Cops (World)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
+GAME( 1992, uccopsu, uccops, uccops, uccops, m92_state, m92, ROT0, "Irem", "Undercover Cops (US)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
+GAME( 1992, uccopsar, uccops, uccops, uccops, m92_state, m92, ROT0, "Irem", "Undercover Cops - Alpha Renewal Version", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
+GAME( 1992, uccopsj, uccops, uccops, uccops, m92_state, m92, ROT0, "Irem", "Undercover Cops (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
+
+GAME( 1992, mysticri, 0, mysticri, mysticri, m92_state, m92, ROT0, "Irem", "Mystic Riders (World)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL)
+GAME( 1992, gunhohki, mysticri, mysticri, mysticri, m92_state, m92, ROT0, "Irem", "Mahou Keibitai Gun Hohki (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
// cheaply produced Korean board, has original chips, but lacks any proper labels
// main code is also significantly different to the supported original set, so it might just be a legitimate early revision on a cheap board
-GAME( 1992, mysticrib,mysticri, mysticri, mysticri, m92_state, m92, ROT0, "Irem", "Mystic Riders (bootleg?)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1992, majtitl2, 0, majtitl2, majtitl2, m92_state, majtitl2, ROT0, "Irem", "Major Title 2 (World)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL)
-GAME( 1992, majtitl2j,majtitl2, majtitl2, majtitl2, m92_state, majtitl2, ROT0, "Irem", "Major Title 2 (Japan)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL)
-GAME( 1992, skingame, majtitl2, majtitl2, majtitl2, m92_state, majtitl2, ROT0, "Irem America", "The Irem Skins Game (US set 1)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1992, skingame2,majtitl2, majtitl2, majtitl2, m92_state, majtitl2, ROT0, "Irem America", "The Irem Skins Game (US set 2)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1992, hook, 0, hook, hook, m92_state, m92, ROT0, "Irem", "Hook (World)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL)
-GAME( 1992, hooku, hook, hook, hook, m92_state, m92, ROT0, "Irem America", "Hook (US)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL)
-GAME( 1992, hookj, hook, hook, hook, m92_state, m92, ROT0, "Irem", "Hook (Japan)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL)
-GAME( 1992, ppan, hook, ppan, hook, m92_state, ppan, ROT0, "bootleg", "Peter Pan (bootleg of Hook)", GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL) // PCB marked 'Peter Pan', no title screen, made in Italy?
-GAME( 1992, rtypeleo, 0, rtypeleo, rtypeleo, m92_state, m92_alt, ROT0, "Irem", "R-Type Leo (World)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL)
-GAME( 1992, rtypeleoj,rtypeleo, rtypeleo, rtypeleo, m92_state, m92_alt, ROT0, "Irem", "R-Type Leo (Japan)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL)
-GAME( 1993, inthunt, 0, inthunt, inthunt, m92_state, m92, ROT0, "Irem", "In The Hunt (World)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL)
-GAME( 1993, inthuntu, inthunt, inthunt, inthunt, m92_state, m92, ROT0, "Irem America", "In The Hunt (US)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL)
-GAME( 1993, kaiteids, inthunt, inthunt, inthunt, m92_state, m92, ROT0, "Irem", "Kaitei Daisensou (Japan)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1993, nbbatman, 0, nbbatman, nbbatman, m92_state, m92_bank, ROT0, "Irem", "Ninja Baseball Bat Man (World)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL )
-GAME( 1993, nbbatmanu,nbbatman, nbbatman, nbbatman, m92_state, m92_bank, ROT0, "Irem America", "Ninja Baseball Bat Man (US)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL)
-GAME( 1993, leaguemn, nbbatman, nbbatman, nbbatman, m92_state, m92_bank, ROT0, "Irem", "Yakyuu Kakutou League-Man (Japan)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL )
-GAME( 1993, nbbatman2bl,nbbatman,nbbatman2bl, nbbatman, m92_state, m92_bank, ROT0, "bootleg", "Ninja Baseball Bat Man II (bootleg)", GAME_NO_SOUND | GAME_NOT_WORKING | GAME_NO_COCKTAIL ) // different sprite system, MCU as soundcpu, OKI samples for music/sound
-GAME( 1993, ssoldier, 0, psoldier, psoldier, m92_state, m92_alt, ROT0, "Irem America", "Superior Soldiers (US)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1993, psoldier, ssoldier, psoldier, psoldier, m92_state, m92_alt, ROT0, "Irem", "Perfect Soldiers (Japan)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1994, dsoccr94j,dsoccr94, dsoccr94j, dsoccr94j, m92_state,m92_bank, ROT0, "Irem", "Dream Soccer '94 (Japan, M92 hardware)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1994, gunforc2, 0, gunforc2, gunforc2, m92_state, m92_bank, ROT0, "Irem", "Gun Force II (US)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1994, geostorm, gunforc2, gunforc2, gunforc2, m92_state, m92_bank, ROT0, "Irem", "Geo Storm (Japan)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL)
+GAME( 1992, mysticrib,mysticri, mysticri, mysticri, m92_state, m92, ROT0, "Irem", "Mystic Riders (bootleg?)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
+
+GAME( 1992, majtitl2, 0, majtitl2, majtitl2, m92_state, majtitl2, ROT0, "Irem", "Major Title 2 (World)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL)
+GAME( 1992, majtitl2j,majtitl2, majtitl2, majtitl2, m92_state, majtitl2, ROT0, "Irem", "Major Title 2 (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL)
+
+GAME( 1992, skingame, majtitl2, majtitl2, majtitl2, m92_state, majtitl2, ROT0, "Irem America", "The Irem Skins Game (US set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
+GAME( 1992, skingame2,majtitl2, majtitl2, majtitl2, m92_state, majtitl2, ROT0, "Irem America", "The Irem Skins Game (US set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
+
+GAME( 1992, hook, 0, hook, hook, m92_state, m92, ROT0, "Irem", "Hook (World)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL)
+GAME( 1992, hooku, hook, hook, hook, m92_state, m92, ROT0, "Irem America", "Hook (US)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL)
+GAME( 1992, hookj, hook, hook, hook, m92_state, m92, ROT0, "Irem", "Hook (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL)
+GAME( 1992, ppan, hook, ppan, hook, m92_state, ppan, ROT0, "bootleg", "Peter Pan (bootleg of Hook)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL) // PCB marked 'Peter Pan', no title screen, made in Italy?
+
+GAME( 1992, rtypeleo, 0, rtypeleo, rtypeleo, m92_state, m92, ROT0, "Irem", "R-Type Leo (World)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL)
+GAME( 1992, rtypeleoj,rtypeleo, rtypeleo, rtypeleo, m92_state, m92, ROT0, "Irem", "R-Type Leo (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL)
+
+GAME( 1993, inthunt, 0, inthunt, inthunt, m92_state, m92, ROT0, "Irem", "In The Hunt (World)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL)
+GAME( 1993, inthuntu, inthunt, inthunt, inthunt, m92_state, m92, ROT0, "Irem America", "In The Hunt (US)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL)
+GAME( 1993, kaiteids, inthunt, inthunt, inthunt, m92_state, m92, ROT0, "Irem", "Kaitei Daisensou (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
+
+GAME( 1993, nbbatman, 0, nbbatman, nbbatman, m92_state, m92_bank, ROT0, "Irem", "Ninja Baseball Bat Man (World)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL )
+GAME( 1993, nbbatmanu,nbbatman, nbbatman, nbbatman, m92_state, m92_bank, ROT0, "Irem America", "Ninja Baseball Bat Man (US)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL)
+GAME( 1993, leaguemn, nbbatman, nbbatman, nbbatman, m92_state, m92_bank, ROT0, "Irem", "Yakyuu Kakutou League-Man (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL )
+GAME( 1993, nbbatman2bl,nbbatman,nbbatman2bl, nbbatman, m92_state, m92_bank, ROT0, "bootleg", "Ninja Baseball Bat Man II (bootleg)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_NO_COCKTAIL ) // different sprite system, MCU as soundcpu, OKI samples for music/sound
+
+GAME( 1993, ssoldier, 0, psoldier, psoldier, m92_state, m92, ROT0, "Irem America", "Superior Soldiers (US)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
+GAME( 1993, psoldier, ssoldier, psoldier, psoldier, m92_state, m92, ROT0, "Irem", "Perfect Soldiers (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
+
+GAME( 1994, dsoccr94j,dsoccr94, dsoccr94j, dsoccr94j, m92_state,m92_bank, ROT0, "Irem", "Dream Soccer '94 (Japan, M92 hardware)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
+
+GAME( 1994, gunforc2, 0, gunforc2, gunforc2, m92_state, m92_bank, ROT0, "Irem", "Gun Force II (US)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
+GAME( 1994, geostorm, gunforc2, gunforc2, gunforc2, m92_state, m92_bank, ROT0, "Irem", "Geo Storm (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL)
diff --git a/src/mess/drivers/mac.c b/src/mame/drivers/mac.c
index bc670603bdc..5ba63ada537 100644
--- a/src/mess/drivers/mac.c
+++ b/src/mame/drivers/mac.c
@@ -202,7 +202,7 @@ READ8_MEMBER( mac_state::mac_sonora_vctl_r )
if (offset == 2)
{
// printf("Sonora: read monitor ID at PC=%x\n", m_maincpu->pc());
- return (m_montype->read_safe(6)<<4);
+ return ((m_montype ? m_montype->read() : 6)<<4);
}
return m_sonora_vctl[offset];
@@ -2442,11 +2442,11 @@ ROM_START( maclc520 )
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)", GAME_NOT_WORKING )
-COMP( 1984, mac128k, 0, 0, mac128k, macplus, mac_state, mac128k512k, "Apple Computer", "Macintosh 128k", GAME_NOT_WORKING )
-COMP( 1984, mac512k, mac128k, 0, mac512ke, macplus, mac_state, mac128k512k, "Apple Computer", "Macintosh 512k", GAME_NOT_WORKING )
+//COMP( 1983, mactw, 0, 0, mac128k, macplus, mac_state, mac128k512k, "Apple Computer", "Macintosh (4.3T Prototype)", MACHINE_NOT_WORKING )
+COMP( 1984, mac128k, 0, 0, mac128k, macplus, mac_state, mac128k512k, "Apple Computer", "Macintosh 128k", MACHINE_NOT_WORKING )
+COMP( 1984, mac512k, mac128k, 0, mac512ke, macplus, mac_state, mac128k512k, "Apple Computer", "Macintosh 512k", MACHINE_NOT_WORKING )
COMP( 1986, mac512ke, macplus, 0, mac512ke, macplus, mac_state, mac512ke, "Apple Computer", "Macintosh 512ke", 0 )
-COMP( 1985, unitron, macplus, 0, mac512ke, macplus, mac_state, mac512ke, "bootleg (Unitron)", "Mac 512", GAME_NOT_WORKING )
+COMP( 1985, unitron, macplus, 0, mac512ke, macplus, mac_state, mac512ke, "bootleg (Unitron)", "Mac 512", MACHINE_NOT_WORKING )
COMP( 1986, macplus, 0, 0, macplus, macplus, mac_state, macplus, "Apple Computer", "Macintosh Plus", 0 )
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 )
@@ -2454,29 +2454,29 @@ COMP( 1987, macii, 0, 0, macii, macadb, mac_state, macii,
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", GAME_NOT_WORKING )
+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", GAME_NOT_WORKING )
+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", GAME_IMPERFECT_SOUND )
+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", GAME_NOT_WORKING )
-COMP( 1991, macpb140, 0, 0, macpb140, macadb, mac_state, macpb140, "Apple Computer", "Macintosh PowerBook 140", GAME_NOT_WORKING )
-COMP( 1991, macpb170, macpb140, 0, macpb170, macadb, mac_state, macpb140, "Apple Computer", "Macintosh PowerBook 170", GAME_NOT_WORKING )
-COMP( 1991, macqd700, macpb140, 0, macqd700, macadb, mac_state, macquadra700, "Apple Computer", "Macintosh Quadra 700", GAME_NOT_WORKING )
-COMP( 1991, macclas2, 0, 0, macclas2, macadb, mac_state, macclassic2, "Apple Computer", "Macintosh Classic II", GAME_IMPERFECT_SOUND )
-COMP( 1991, maclc2, 0, 0, maclc2, maciici, mac_state, maclc2, "Apple Computer", "Macintosh LC II", GAME_IMPERFECT_SOUND )
-COMP( 1992, macpb145, macpb140, 0, macpb145, macadb, mac_state, macpb140, "Apple Computer", "Macintosh PowerBook 145", GAME_NOT_WORKING )
-COMP( 1992, macpb160, 0, 0, macpb160, macadb, mac_state, macpb160, "Apple Computer", "Macintosh PowerBook 160", GAME_NOT_WORKING )
-COMP( 1992, macpb180, macpb160, 0, macpb180, macadb, mac_state, macpb160, "Apple Computer", "Macintosh PowerBook 180", GAME_NOT_WORKING )
-COMP( 1992, macpb180c,macpb160, 0, macpb180c,macadb, mac_state, macpb160, "Apple Computer", "Macintosh PowerBook 180c", GAME_NOT_WORKING )
-//COMP( 1992, macpd210, 0, 0, macpd210, macadb, mac_state, macpd210, "Apple Computer", "Macintosh PowerBook Duo 210", GAME_NOT_WORKING )
-COMP( 1993, maccclas, 0, 0, maccclas, macadb, mac_state, maclrcclassic,"Apple Computer", "Macintosh Color Classic", GAME_NOT_WORKING )
-COMP( 1992, macpb145b,macpb140, 0, macpb170, macadb, mac_state, macpb140, "Apple Computer", "Macintosh PowerBook 145B", GAME_NOT_WORKING )
-COMP( 1993, maclc3, 0, 0, maclc3, maciici, mac_state, maclc3, "Apple Computer", "Macintosh LC III", GAME_IMPERFECT_SOUND )
-COMP( 1993, maciivx, 0, 0, maciivx, maciici, mac_state, maciivx, "Apple Computer", "Macintosh IIvx", GAME_IMPERFECT_SOUND )
-COMP( 1993, maciivi, maciivx, 0, maciivi, maciici, mac_state, maciivx, "Apple Computer", "Macintosh IIvi", GAME_IMPERFECT_SOUND )
-COMP( 1993, maclc520, 0, 0, maclc520, maciici, mac_state, maclc520, "Apple Computer", "Macintosh LC 520", GAME_NOT_WORKING )
-COMP( 1994, pmac6100, 0, 0, pwrmac, macadb, mac_state, macpm6100, "Apple Computer", "Power Macintosh 6100/60", GAME_NOT_WORKING | GAME_NO_SOUND )
+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/mess/drivers/macpci.c b/src/mame/drivers/macpci.c
index 975a514a46b..10f938d108f 100644
--- a/src/mess/drivers/macpci.c
+++ b/src/mame/drivers/macpci.c
@@ -163,4 +163,4 @@ 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", GAME_NOT_WORKING)
+COMP( 1996, pippin, 0, 0, pippin, pippin, driver_device, 0, "Apple / Bandai", "Pippin @mark", MACHINE_NOT_WORKING)
diff --git a/src/mame/drivers/macrossp.c b/src/mame/drivers/macrossp.c
index 4e673f4cb3e..241a82a1d0d 100644
--- a/src/mame/drivers/macrossp.c
+++ b/src/mame/drivers/macrossp.c
@@ -9,9 +9,6 @@ Driver by David Haywood
TODO:
- what is the 'bios' rom for? it appears to be data tables and is very different between games but we don't map it anywhere
- - priorities
- - zooming is wrong
- - is alpha REALLY alpha or sprite flicker?
- convert tilemaps to devices?
68020 interrupts
@@ -293,19 +290,6 @@ Notes:
/*** VARIOUS READ / WRITE HANDLERS *******************************************/
-WRITE32_MEMBER(macrossp_state::paletteram32_macrossp_w)
-{
- int r,g,b;
- COMBINE_DATA(&m_paletteram[offset]);
-
- b = ((m_paletteram[offset] & 0x0000ff00) >>8);
- g = ((m_paletteram[offset] & 0x00ff0000) >>16);
- r = ((m_paletteram[offset] & 0xff000000) >>24);
-
- m_palette->set_pen_color(offset, rgb_t(r,g,b));
-}
-
-
READ32_MEMBER(macrossp_state::macrossp_soundstatus_r)
{
// logerror("%08x read soundstatus\n", space.device().safe_pc());
@@ -338,44 +322,14 @@ READ16_MEMBER(macrossp_state::macrossp_soundcmd_r)
return soundlatch_word_r(space, offset, mem_mask);
}
-void macrossp_state::update_colors( )
-{
- int i, r, g, b;
-
- for (i = 0; i < 0x1000; i++)
- {
- b = ((m_paletteram[i] & 0x0000ff00) >> 8);
- g = ((m_paletteram[i] & 0x00ff0000) >> 16);
- r = ((m_paletteram[i] & 0xff000000) >> 24);
-
- if (m_fade_effect > b)
- b = 0;
- else
- b -= m_fade_effect;
-
- if (m_fade_effect > g)
- g = 0;
- else
- g -= m_fade_effect;
-
- if (m_fade_effect > r)
- r = 0;
- else
- r -= m_fade_effect;
-
- m_palette->set_pen_color(i, rgb_t(r, g, b));
- }
-}
-
-WRITE32_MEMBER(macrossp_state::macrossp_palette_fade_w)
+WRITE16_MEMBER(macrossp_state::palette_fade_w)
{
- m_fade_effect = ((data & 0xff00) >> 8) - 0x28; //it writes two times, first with a -0x28 then with the proper data
- // popmessage("%02x",fade_effect);
-
- if (m_old_fade != m_fade_effect)
+ // 0xff is written a few times on startup
+ if (data >> 8 != 0xff)
{
- m_old_fade = m_fade_effect;
- update_colors();
+ // range seems to be 40 (brightest) to 252 (darkest)
+ UINT8 fade = ((data >> 8) - 40) / 212.0 * 255.0;
+ m_screen->set_brightness(0xff - fade);
}
}
@@ -401,13 +355,13 @@ static ADDRESS_MAP_START( macrossp_map, AS_PROGRAM, 32, macrossp_state )
AM_RANGE(0x91c200, 0x91c3ff) AM_RAM AM_SHARE("text_linezoom") /* W/O? */
AM_RANGE(0x91d000, 0x91d00b) AM_RAM AM_SHARE("text_videoregs") /* W/O? */
- AM_RANGE(0xa00000, 0xa03fff) AM_RAM_WRITE(paletteram32_macrossp_w) AM_SHARE("paletteram")
+ AM_RANGE(0xa00000, 0xa03fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xb00000, 0xb00003) AM_READ_PORT("INPUTS")
AM_RANGE(0xb00004, 0xb00007) AM_READ(macrossp_soundstatus_r) AM_WRITENOP // irq related?
AM_RANGE(0xb00008, 0xb0000b) AM_WRITENOP // irq related?
AM_RANGE(0xb0000c, 0xb0000f) AM_READ_PORT("DSW") AM_WRITENOP
- AM_RANGE(0xb00010, 0xb00013) AM_WRITE(macrossp_palette_fade_w) // macrossp palette fade
+ AM_RANGE(0xb00010, 0xb00013) AM_WRITE16(palette_fade_w, 0x0000ffff)
AM_RANGE(0xb00020, 0xb00023) AM_WRITENOP
AM_RANGE(0xc00000, 0xc00003) AM_WRITE(macrossp_soundcmd_w)
@@ -574,16 +528,12 @@ void macrossp_state::machine_start()
{
save_item(NAME(m_sndpending));
save_item(NAME(m_snd_toggle));
- save_item(NAME(m_fade_effect));
- save_item(NAME(m_old_fade));
}
void macrossp_state::machine_reset()
{
m_sndpending = 0;
m_snd_toggle = 0;
- m_fade_effect = 0;
- m_old_fade = 0;
}
static MACHINE_CONFIG_START( macrossp, macrossp_state )
@@ -607,8 +557,9 @@ static MACHINE_CONFIG_START( macrossp, macrossp_state )
MCFG_SCREEN_VBLANK_DRIVER(macrossp_state, screen_eof_macrossp)
MCFG_GFXDECODE_ADD("gfxdecode", "palette", macrossp)
- MCFG_PALETTE_ADD("palette", 0x1000)
+ MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(RGBX)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -674,6 +625,11 @@ ROM_START( macrossp )
ROM_REGION16_BE( 0x400000, "ensoniq.1", 0 )
ROM_COPY( "ensoniq.0", 0x400000, 0x000000, 0x400000 )
+
+ ROM_REGION( 0x0600, "plds", 0 )
+ ROM_LOAD( "u8.u8", 0x0000, 0x0117, CRC(99bd3cc1) SHA1(b0d3ac93cb5d2857cf9c184c7a2b4afa0211d588) ) /* unprotected GAL16V8B */
+ ROM_LOAD( "u9.u9", 0x0200, 0x0117, CRC(480f4860) SHA1(7ff3723122cbdda5c0dcea5167508e9a7437f551) ) /* unprotected GAL16V8B */
+ ROM_LOAD( "u200.u200", 0x0400, 0x0117, CRC(9343ad76) SHA1(a2adf2510011078ee9fae65acdd2daa0ffab48f6) ) /* unprotected GAL16V8B */
ROM_END
ROM_START( quizmoon )
@@ -761,5 +717,5 @@ DRIVER_INIT_MEMBER(macrossp_state,quizmoon)
#endif
}
-GAME( 1996, macrossp, 0, macrossp, macrossp, macrossp_state, macrossp, ROT270, "MOSS / Banpresto", "Macross Plus", GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1997, quizmoon, 0, quizmoon, quizmoon, macrossp_state, quizmoon, ROT0, "Banpresto", "Quiz Bisyoujo Senshi Sailor Moon - Chiryoku Tairyoku Toki no Un", GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+GAME( 1996, macrossp, 0, macrossp, macrossp, macrossp_state, macrossp, ROT270, "MOSS / Banpresto", "Macross Plus", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1997, quizmoon, 0, quizmoon, quizmoon, macrossp_state, quizmoon, ROT0, "Banpresto", "Quiz Bisyoujo Senshi Sailor Moon - Chiryoku Tairyoku Toki no Un", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/macs.c b/src/mame/drivers/macs.c
index 1d4fa845f54..1cd74867268 100644
--- a/src/mame/drivers/macs.c
+++ b/src/mame/drivers/macs.c
@@ -745,11 +745,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", GAME_IS_BIOS_ROOT | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
-GAME( 1995, mac2bios, 0, macs, macs_m, macs_state, macs2, ROT0, "I'Max", "Multi Amenity Cassette System 2 BIOS", GAME_IS_BIOS_ROOT | GAME_IMPERFECT_SOUND | GAME_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", GAME_NOT_WORKING|GAME_IMPERFECT_SOUND )
-GAME( 1995, kisekaeh, macsbios, macs, macs_h, macs_state, kisekaeh, ROT0, "I'Max", "Kisekae Hanafuda", GAME_NOT_WORKING |GAME_IMPERFECT_SOUND)
-GAME( 1996, cultname, macsbios, macs, macs_m, macs_state, macs, ROT0, "I'Max", "Seimei-Kantei-Meimei-Ki Cult Name", GAME_NOT_WORKING |GAME_IMPERFECT_SOUND)
+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.c b/src/mame/drivers/madalien.c
index 944bfd00d13..d06e31a74d5 100644
--- a/src/mame/drivers/madalien.c
+++ b/src/mame/drivers/madalien.c
@@ -458,6 +458,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)", GAME_SUPPORTS_SAVE )
-GAME( 1980, madaliena,madalien, madalien, madalien, driver_device, 0, ROT270, "Data East Corporation", "Mad Alien (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1980, madalienb,madalien, madalien, madalien, driver_device, 0, ROT270, "Data East Corporation", "Mad Alien (set 2, alt gfx)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/madmotor.c b/src/mame/drivers/madmotor.c
index 1c2be5ea2a2..a71d77e7a60 100644
--- a/src/mame/drivers/madmotor.c
+++ b/src/mame/drivers/madmotor.c
@@ -349,4 +349,4 @@ DRIVER_INIT_MEMBER(madmotor_state,madmotor)
/* The title screen is undated, but it's (c) 1989 Data East at 0xefa0 */
-GAME( 1989, madmotor, 0, madmotor, madmotor, madmotor_state, madmotor, ROT0, "Mitchell", "Mad Motor", GAME_SUPPORTS_SAVE )
+GAME( 1989, madmotor, 0, madmotor, madmotor, madmotor_state, madmotor, ROT0, "Mitchell", "Mad Motor", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/magic10.c b/src/mame/drivers/magic10.c
index c8895bc04d1..0753a1aeecd 100644
--- a/src/mame/drivers/magic10.c
+++ b/src/mame/drivers/magic10.c
@@ -99,8 +99,7 @@ public:
m_vregs(*this, "vregs"),
m_maincpu(*this, "maincpu"),
m_gfxdecode(*this, "gfxdecode"),
- m_palette(*this, "palette"),
- m_generic_paletteram_16(*this, "paletteram") { }
+ m_palette(*this, "palette") { }
tilemap_t *m_layer0_tilemap;
tilemap_t *m_layer1_tilemap;
@@ -114,7 +113,6 @@ public:
DECLARE_WRITE16_MEMBER(layer0_videoram_w);
DECLARE_WRITE16_MEMBER(layer1_videoram_w);
DECLARE_WRITE16_MEMBER(layer2_videoram_w);
- DECLARE_WRITE16_MEMBER(paletteram_w);
DECLARE_READ16_MEMBER(magic102_r);
DECLARE_READ16_MEMBER(hotslot_copro_r);
DECLARE_WRITE16_MEMBER(hotslot_copro_w);
@@ -132,7 +130,6 @@ public:
required_device<cpu_device> m_maincpu;
required_device<gfxdecode_device> m_gfxdecode;
required_device<palette_device> m_palette;
- required_shared_ptr<UINT16> m_generic_paletteram_16;
};
@@ -158,13 +155,6 @@ WRITE16_MEMBER(magic10_state::layer2_videoram_w)
m_layer2_tilemap->mark_tile_dirty(offset >> 1);
}
-WRITE16_MEMBER(magic10_state::paletteram_w)
-{
- data = COMBINE_DATA(&m_generic_paletteram_16[offset]);
- m_palette->set_pen_color( offset, pal4bit(data >> 4), pal4bit(data >> 0), pal4bit(data >> 8));
-}
-
-
TILE_GET_INFO_MEMBER(magic10_state::get_layer0_tile_info)
{
SET_TILE_INFO_MEMBER(1,
@@ -302,7 +292,7 @@ static ADDRESS_MAP_START( magic10_map, AS_PROGRAM, 16, magic10_state )
AM_RANGE(0x101000, 0x101fff) AM_RAM_WRITE(layer0_videoram_w) AM_SHARE("layer0_videoram")
AM_RANGE(0x102000, 0x103fff) AM_RAM_WRITE(layer2_videoram_w) AM_SHARE("layer2_videoram")
AM_RANGE(0x200000, 0x2007ff) AM_RAM AM_SHARE("nvram")
- AM_RANGE(0x300000, 0x3001ff) AM_RAM_WRITE(paletteram_w) AM_SHARE("paletteram")
+ AM_RANGE(0x300000, 0x3001ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x400000, 0x400001) AM_READ_PORT("INPUTS")
AM_RANGE(0x400002, 0x400003) AM_READ_PORT("DSW")
AM_RANGE(0x400008, 0x400009) AM_WRITE(magic10_out_w)
@@ -318,7 +308,7 @@ static ADDRESS_MAP_START( magic10a_map, AS_PROGRAM, 16, magic10_state )
AM_RANGE(0x101000, 0x101fff) AM_RAM_WRITE(layer0_videoram_w) AM_SHARE("layer0_videoram")
AM_RANGE(0x102000, 0x103fff) AM_RAM_WRITE(layer2_videoram_w) AM_SHARE("layer2_videoram")
AM_RANGE(0x200000, 0x2007ff) AM_RAM AM_SHARE("nvram")
- AM_RANGE(0x300000, 0x3001ff) AM_RAM_WRITE(paletteram_w) AM_SHARE("paletteram")
+ AM_RANGE(0x300000, 0x3001ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x500000, 0x500001) AM_READ_PORT("INPUTS")
AM_RANGE(0x500002, 0x500003) AM_READ_PORT("DSW")
AM_RANGE(0x500008, 0x500009) AM_WRITE(magic10_out_w)
@@ -334,7 +324,7 @@ static ADDRESS_MAP_START( magic102_map, AS_PROGRAM, 16, magic10_state )
AM_RANGE(0x101000, 0x101fff) AM_RAM_WRITE(layer0_videoram_w) AM_SHARE("layer0_videoram")
AM_RANGE(0x102000, 0x103fff) AM_RAM_WRITE(layer2_videoram_w) AM_SHARE("layer2_videoram")
AM_RANGE(0x200000, 0x2007ff) AM_RAM AM_SHARE("nvram")
- AM_RANGE(0x400000, 0x4001ff) AM_RAM_WRITE(paletteram_w) AM_SHARE("paletteram")
+ AM_RANGE(0x400000, 0x4001ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x500000, 0x500001) AM_READ(magic102_r)
AM_RANGE(0x500004, 0x500005) AM_READNOP // gives credits
AM_RANGE(0x500006, 0x500007) AM_READNOP // gives credits
@@ -353,7 +343,7 @@ static ADDRESS_MAP_START( hotslot_map, AS_PROGRAM, 16, magic10_state )
AM_RANGE(0x101000, 0x101fff) AM_RAM_WRITE(layer0_videoram_w) AM_SHARE("layer0_videoram")
AM_RANGE(0x102000, 0x103fff) AM_RAM_WRITE(layer2_videoram_w) AM_SHARE("layer2_videoram")
AM_RANGE(0x200000, 0x2007ff) AM_RAM AM_SHARE("nvram")
- AM_RANGE(0x400000, 0x4001ff) AM_RAM_WRITE(paletteram_w) AM_SHARE("paletteram")
+ AM_RANGE(0x400000, 0x4001ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x500004, 0x500005) AM_READWRITE(hotslot_copro_r, hotslot_copro_w) // copro comm
AM_RANGE(0x500006, 0x500011) AM_RAM
AM_RANGE(0x500012, 0x500013) AM_READ_PORT("IN0")
@@ -372,7 +362,7 @@ static ADDRESS_MAP_START( sgsafari_map, AS_PROGRAM, 16, magic10_state )
AM_RANGE(0x101000, 0x101fff) AM_RAM_WRITE(layer0_videoram_w) AM_SHARE("layer0_videoram")
AM_RANGE(0x102000, 0x103fff) AM_RAM_WRITE(layer2_videoram_w) AM_SHARE("layer2_videoram")
AM_RANGE(0x200000, 0x203fff) AM_RAM AM_SHARE("nvram")
- AM_RANGE(0x300000, 0x3001ff) AM_RAM_WRITE(paletteram_w) AM_SHARE("paletteram")
+ AM_RANGE(0x300000, 0x3001ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x500002, 0x500003) AM_READ_PORT("DSW1")
AM_RANGE(0x500008, 0x500009) AM_WRITE(magic10_out_w)
AM_RANGE(0x50000a, 0x50000b) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
@@ -743,9 +733,10 @@ static MACHINE_CONFIG_START( magic10, magic10_state )
MCFG_SCREEN_UPDATE_DRIVER(magic10_state, screen_update_magic10)
MCFG_SCREEN_PALETTE("palette")
- MCFG_PALETTE_ADD("palette", 0x100)
- MCFG_GFXDECODE_ADD("gfxdecode", "palette", magic10)
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_FORMAT(xxxxBBBBRRRRGGGG)
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", magic10)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1273,9 +1264,9 @@ GAMEL( 1995, magic10, 0, magic10, magic10, magic10_state, magic10, RO
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 )
GAMEL( 1995, magic10c, magic10, magic10a, magic10, magic10_state, magic10, ROT0, "A.W.P. Games", "Magic's 10 (ver. 16.15)", 0, layout_sgsafari )
-GAME( 1997, magic102, 0, magic102, magic102, magic10_state, magic102, ROT0, "ABM Games", "Magic's 10 2 (ver 1.1)", GAME_NOT_WORKING )
-GAME( 1997, suprpool, 0, magic102, magic102, magic10_state, suprpool, ROT0, "ABM Games", "Super Pool (9743 rev.01)", GAME_NOT_WORKING )
-GAME( 1996, hotslot, 0, hotslot, hotslot, magic10_state, hotslot, ROT0, "ABM Electronics", "Hot Slot (ver. 05.01)", GAME_NOT_WORKING )
-GAME( 1999, mcolors, 0, magic102, magic102, magic10_state, magic102, ROT0, "<unknown>", "Magic Colors (ver. 1.7a)", GAME_NOT_WORKING )
+GAME( 1997, magic102, 0, magic102, magic102, magic10_state, magic102, ROT0, "ABM Games", "Magic's 10 2 (ver 1.1)", MACHINE_NOT_WORKING )
+GAME( 1997, suprpool, 0, magic102, magic102, magic10_state, suprpool, ROT0, "ABM Games", "Super Pool (9743 rev.01)", MACHINE_NOT_WORKING )
+GAME( 1996, hotslot, 0, hotslot, hotslot, magic10_state, hotslot, ROT0, "ABM Electronics", "Hot Slot (ver. 05.01)", MACHINE_NOT_WORKING )
+GAME( 1999, mcolors, 0, magic102, magic102, magic10_state, magic102, ROT0, "<unknown>", "Magic Colors (ver. 1.7a)", MACHINE_NOT_WORKING )
GAMEL( 1996, sgsafari, 0, sgsafari, sgsafari, magic10_state, sgsafari, ROT0, "New Impeuropex Corp.", "Super Gran Safari (ver 3.11)", 0, layout_sgsafari )
GAMEL( 1995, musicsrt, 0, magic10a, musicsrt, magic10_state, magic10, ROT0, "ABM Games", "Music Sort (ver 2.02, English)", 0, layout_musicsrt )
diff --git a/src/mame/drivers/magicard.c b/src/mame/drivers/magicard.c
index 20f3a4c88bc..910a13973c7 100644
--- a/src/mame/drivers/magicard.c
+++ b/src/mame/drivers/magicard.c
@@ -902,10 +902,10 @@ DRIVER_INIT_MEMBER(magicard_state,magicard)
/* 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)", GAME_NO_SOUND | GAME_NOT_WORKING )
-GAME( 199?, magicarda, magicard, magicard, magicard, magicard_state, magicard, ROT0, "Impera", "Magic Card (set 2)", GAME_NO_SOUND | GAME_NOT_WORKING )
-GAME( 199?, magicardb, magicard, magicard, magicard, magicard_state, magicard, ROT0, "Impera", "Magic Card (set 3)", GAME_NO_SOUND | GAME_NOT_WORKING )
-GAME( 1994, magicarde, magicard, magicard, magicard, magicard_state, magicard, ROT0, "Impera", "Magic Card Export 94", GAME_NO_SOUND | GAME_NOT_WORKING )
-GAME( 1998, magicardj, magicard, magicard, magicard, magicard_state, magicard, ROT0, "Impera", "Magic Card Jackpot (4.01)", GAME_NO_SOUND | GAME_NOT_WORKING )
-GAME( 2001, magicle, 0, magicard, magicard, magicard_state, magicard, ROT0, "Impera", "Magic Lotto Export (5.03)", GAME_NO_SOUND | GAME_NOT_WORKING )
-GAME( 2002, hotslots, 0, hotslots, magicard, magicard_state, magicard, ROT0, "Impera", "Hot Slots (6.00)", GAME_NO_SOUND | GAME_NOT_WORKING )
+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 )
+GAME( 199?, magicardb, magicard, magicard, magicard, magicard_state, magicard, ROT0, "Impera", "Magic Card (set 3)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
+GAME( 1994, magicarde, magicard, magicard, magicard, magicard_state, magicard, ROT0, "Impera", "Magic Card Export 94", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
+GAME( 1998, magicardj, magicard, magicard, magicard, magicard_state, magicard, ROT0, "Impera", "Magic Card Jackpot (4.01)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
+GAME( 2001, magicle, 0, magicard, magicard, magicard_state, magicard, ROT0, "Impera", "Magic Lotto Export (5.03)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
+GAME( 2002, hotslots, 0, hotslots, magicard, magicard_state, magicard, ROT0, "Impera", "Hot Slots (6.00)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/magicfly.c b/src/mame/drivers/magicfly.c
index 184aa0d817a..6f044a65559 100644
--- a/src/mame/drivers/magicfly.c
+++ b/src/mame/drivers/magicfly.c
@@ -372,13 +372,13 @@
- Added new findings to the technical notes.
- Added version/revision number to magicfly.
- Marked magicfly PAL as NO_DUMP (read protected).
- - Added flags GAME_IMPERFECT_GRAPHICS and GAME_WRONG_COLORS.
+ - Added flags MACHINE_IMPERFECT_GRAPHICS and MACHINE_WRONG_COLORS.
[2006-08-06]
- Figured out how the gfx banks works.
- Fixed the gfx layers.
- Fixed the gfx decode.
- - Removed flag GAME_IMPERFECT_GRAPHICS.
+ - Removed flag MACHINE_IMPERFECT_GRAPHICS.
[2007-05-12]
- Figured out how the protection works.
@@ -392,7 +392,7 @@
- Changed CPU clock to 833 kHz.
- Mapped DIP switches.
- Found the maximum bet DIP switch in magicfly.
- - Removed flag GAME_NOT_WORKING for both games.
+ - Removed flag MACHINE_NOT_WORKING for both games.
- Managed the planes to get the 3bpp GFX colors accurate.
- Renamed the ROMs acording to pcb pictures and ROM contents.
- Cleaned up and optimized the driver.
@@ -1050,4 +1050,4 @@ ROM_END
/* 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, "<unknown>", "7 e Mezzo", 0 )
-GAME( 198?, bchance, 0, bchance, bchance, driver_device, 0, ROT0, "<unknown>", "Bonne Chance! (French/English)", GAME_IMPERFECT_GRAPHICS )
+GAME( 198?, bchance, 0, bchance, bchance, driver_device, 0, ROT0, "<unknown>", "Bonne Chance! (French/English)", MACHINE_IMPERFECT_GRAPHICS )
diff --git a/src/mame/drivers/magictg.c b/src/mame/drivers/magictg.c
index 6ba18042234..03a296ed606 100644
--- a/src/mame/drivers/magictg.c
+++ b/src/mame/drivers/magictg.c
@@ -1026,5 +1026,5 @@ ROM_END
*
*************************************/
-GAME( 1997, magictg, 0, magictg, magictg, driver_device, 0, ROT0, "Acclaim", "Magic the Gathering: Armageddon (set 1)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 1997, magictga, magictg, magictg, magictg, driver_device, 0, ROT0, "Acclaim", "Magic the Gathering: Armageddon (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND )
+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 )
diff --git a/src/mame/drivers/magmax.c b/src/mame/drivers/magmax.c
index 4c5b31e177f..210f5988028 100644
--- a/src/mame/drivers/magmax.c
+++ b/src/mame/drivers/magmax.c
@@ -424,4 +424,4 @@ ROM_START( magmax )
ROM_END
-GAME( 1985, magmax, 0, magmax, magmax, driver_device, 0, ROT0, "Nichibutsu", "Mag Max", GAME_SUPPORTS_SAVE )
+GAME( 1985, magmax, 0, magmax, magmax, driver_device, 0, ROT0, "Nichibutsu", "Mag Max", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/magtouch.c b/src/mame/drivers/magtouch.c
index 50a2299a9b4..d1f7681e6fb 100644
--- a/src/mame/drivers/magtouch.c
+++ b/src/mame/drivers/magtouch.c
@@ -202,4 +202,4 @@ DRIVER_INIT_MEMBER(magtouch_state,magtouch)
}
-GAME( 1995, magtouch, 0, magtouch, magtouch, magtouch_state, magtouch, ROT0, "Micro Manufacturing", "Magical Touch", GAME_NOT_WORKING | GAME_NO_SOUND )
+GAME( 1995, magtouch, 0, magtouch, magtouch, magtouch_state, magtouch, ROT0, "Micro Manufacturing", "Magical Touch", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/mainevt.c b/src/mame/drivers/mainevt.c
index 35809ef84cb..840da8b536b 100644
--- a/src/mame/drivers/mainevt.c
+++ b/src/mame/drivers/mainevt.c
@@ -51,7 +51,7 @@ INTERRUPT_GEN_MEMBER(mainevt_state::dv_interrupt)
WRITE8_MEMBER(mainevt_state::mainevt_bankswitch_w)
{
/* bit 0-1 ROM bank select */
- membank("bank1")->set_entry(data & 0x03);
+ m_rombank->set_entry(data & 0x03);
/* TODO: bit 5 = select work RAM or palette? */
//palette_selected = data & 0x20;
@@ -170,7 +170,7 @@ static ADDRESS_MAP_START( mainevt_map, AS_PROGRAM, 8, mainevt_state )
AM_RANGE(0x4000, 0x5dff) AM_RAM
AM_RANGE(0x5e00, 0x5fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
- AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("bank1")
+ AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("rombank")
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -194,7 +194,7 @@ static ADDRESS_MAP_START( devstors_map, AS_PROGRAM, 8, mainevt_state )
AM_RANGE(0x4000, 0x5dff) AM_RAM
AM_RANGE(0x5e00, 0x5fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
- AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("bank1")
+ AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("rombank")
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -380,9 +380,7 @@ WRITE8_MEMBER(mainevt_state::volume_callback)
void mainevt_state::machine_start()
{
- UINT8 *ROM = memregion("maincpu")->base();
-
- membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x2000);
+ m_rombank->configure_entries(0, 4, memregion("maincpu")->base(), 0x2000);
save_item(NAME(m_nmi_enable));
}
@@ -428,14 +426,13 @@ static MACHINE_CONFIG_START( mainevt, mainevt_state )
MCFG_PALETTE_ENABLE_SHADOWS()
MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
- MCFG_VIDEO_START_OVERRIDE(mainevt_state,mainevt)
-
MCFG_DEVICE_ADD("k052109", K052109, 0)
MCFG_GFX_PALETTE("palette")
MCFG_K052109_CB(mainevt_state, mainevt_tile_callback)
MCFG_DEVICE_ADD("k051960", K051960, 0)
MCFG_GFX_PALETTE("palette")
+ MCFG_K051960_SCREEN_TAG("screen")
MCFG_K051960_CB(mainevt_state, mainevt_sprite_callback)
/* sound hardware */
@@ -475,14 +472,13 @@ static MACHINE_CONFIG_START( devstors, mainevt_state )
MCFG_PALETTE_ENABLE_SHADOWS()
MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
- MCFG_VIDEO_START_OVERRIDE(mainevt_state,dv)
-
MCFG_DEVICE_ADD("k052109", K052109, 0)
MCFG_GFX_PALETTE("palette")
MCFG_K052109_CB(mainevt_state, dv_tile_callback)
MCFG_DEVICE_ADD("k051960", K051960, 0)
MCFG_GFX_PALETTE("palette")
+ MCFG_K051960_SCREEN_TAG("screen")
MCFG_K051960_CB(mainevt_state, dv_sprite_callback)
MCFG_K051733_ADD("k051733")
@@ -510,11 +506,10 @@ MACHINE_CONFIG_END
ROM_START( mainevt ) /* 4 players - English title screen - No "Warning" message in the ROM */
- ROM_REGION( 0x40000, "maincpu", 0 )
- ROM_LOAD( "799y02.k11", 0x10000, 0x08000, CRC(e2e7dbd5) SHA1(80314cd42a9f47f7bb82a2160fb5ef2ddc6dff30) )
- ROM_CONTINUE( 0x08000, 0x08000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "799y02.k11", 0x00000, 0x10000, CRC(e2e7dbd5) SHA1(80314cd42a9f47f7bb82a2160fb5ef2ddc6dff30) )
- ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_REGION( 0x8000, "audiocpu", 0 )
ROM_LOAD( "799c01.f7", 0x00000, 0x08000, CRC(447c4c5c) SHA1(86e42132793c59cc6feece143516f7ecd4ed14e8) )
ROM_REGION( 0x20000, "k052109", 0 ) /* tiles */
@@ -538,11 +533,10 @@ ROM_START( mainevt ) /* 4 players - English title screen - No "Warning" messa
ROM_END
ROM_START( mainevto ) /* 4 players - English title screen - No "Warning" message in the ROM */
- ROM_REGION( 0x40000, "maincpu", 0 )
- ROM_LOAD( "799f02.k11", 0x10000, 0x08000, CRC(c143596b) SHA1(5da7efaf0f7c7a493cc242eae115f278bc9c134b) )
- ROM_CONTINUE( 0x08000, 0x08000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "799f02.k11", 0x00000, 0x10000, CRC(c143596b) SHA1(5da7efaf0f7c7a493cc242eae115f278bc9c134b) )
- ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_REGION( 0x8000, "audiocpu", 0 )
ROM_LOAD( "799c01.f7", 0x00000, 0x08000, CRC(447c4c5c) SHA1(86e42132793c59cc6feece143516f7ecd4ed14e8) )
ROM_REGION( 0x20000, "k052109", 0 ) /* tiles */
@@ -566,11 +560,10 @@ ROM_START( mainevto ) /* 4 players - English title screen - No "Warning" messa
ROM_END
ROM_START( mainevt2p ) /* 2 players - English title screen - "Warning" message in the ROM (not displayed) */
- ROM_REGION( 0x40000, "maincpu", 0 )
- ROM_LOAD( "799x02.k11", 0x10000, 0x08000, CRC(42cfc650) SHA1(2d1918ebc0d93a2356ad995a6854dbde7c3b8daf) )
- ROM_CONTINUE( 0x08000, 0x08000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "799x02.k11", 0x00000, 0x10000, CRC(42cfc650) SHA1(2d1918ebc0d93a2356ad995a6854dbde7c3b8daf) )
- ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_REGION( 0x8000, "audiocpu", 0 )
ROM_LOAD( "799c01.f7", 0x00000, 0x08000, CRC(447c4c5c) SHA1(86e42132793c59cc6feece143516f7ecd4ed14e8) )
ROM_REGION( 0x20000, "k052109", 0 ) /* tiles */
@@ -594,11 +587,10 @@ ROM_START( mainevt2p ) /* 2 players - English title screen - "Warning" message
ROM_END
ROM_START( ringohja ) /* 2 players - Japan title screen - "Warning" message in the ROM (displayed) */
- ROM_REGION( 0x40000, "maincpu", 0 )
- ROM_LOAD( "799n02.k11", 0x10000, 0x08000, CRC(f9305dd0) SHA1(7135053be9d46ac9c09ab63eca1eb71825a71a13) )
- ROM_CONTINUE( 0x08000, 0x08000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "799n02.k11", 0x00000, 0x10000, CRC(f9305dd0) SHA1(7135053be9d46ac9c09ab63eca1eb71825a71a13) )
- ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_REGION( 0x8000, "audiocpu", 0 )
ROM_LOAD( "799c01.f7", 0x00000, 0x08000, CRC(447c4c5c) SHA1(86e42132793c59cc6feece143516f7ecd4ed14e8) )
ROM_REGION( 0x20000, "k052109", 0 ) /* tiles */
@@ -623,11 +615,10 @@ ROM_END
ROM_START( devstors )
- ROM_REGION( 0x40000, "maincpu", 0 )
- ROM_LOAD( "890z02.k11", 0x10000, 0x08000, CRC(ebeb306f) SHA1(838fcfe95dfedd61f21f34301d48e337db765ab2) )
- ROM_CONTINUE( 0x08000, 0x08000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "890z02.k11", 0x00000, 0x10000, CRC(ebeb306f) SHA1(838fcfe95dfedd61f21f34301d48e337db765ab2) )
- ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_REGION( 0x8000, "audiocpu", 0 )
ROM_LOAD( "890k01.f7", 0x00000, 0x08000, CRC(d44b3eb0) SHA1(26109fc56668b65f1a5aa6d8ec2c08fd70ca7c51) )
ROM_REGION( 0x40000, "k052109", 0 ) /* tiles */
@@ -648,11 +639,10 @@ ROM_START( devstors )
ROM_END
ROM_START( devstors2 )
- ROM_REGION( 0x40000, "maincpu", 0 )
- ROM_LOAD( "890x02.k11", 0x10000, 0x08000, CRC(e58ebb35) SHA1(4253b6a7128534cc0866bc910a271d91ac8b40fd) )
- ROM_CONTINUE( 0x08000, 0x08000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "890x02.k11", 0x00000, 0x10000, CRC(e58ebb35) SHA1(4253b6a7128534cc0866bc910a271d91ac8b40fd) )
- ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_REGION( 0x8000, "audiocpu", 0 )
ROM_LOAD( "890k01.f7", 0x00000, 0x08000, CRC(d44b3eb0) SHA1(26109fc56668b65f1a5aa6d8ec2c08fd70ca7c51) )
ROM_REGION( 0x40000, "k052109", 0 ) /* tiles */
@@ -673,11 +663,10 @@ ROM_START( devstors2 )
ROM_END
ROM_START( devstors3 )
- ROM_REGION( 0x40000, "maincpu", 0 )
- ROM_LOAD( "890v02.k11", 0x10000, 0x08000, CRC(52f4ccdd) SHA1(074e526ed170a5f2083c8c0808734291a2ea7403) )
- ROM_CONTINUE( 0x08000, 0x08000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "890v02.k11", 0x00000, 0x10000, CRC(52f4ccdd) SHA1(074e526ed170a5f2083c8c0808734291a2ea7403) )
- ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_REGION( 0x8000, "audiocpu", 0 )
ROM_LOAD( "890k01.f7", 0x00000, 0x08000, CRC(d44b3eb0) SHA1(26109fc56668b65f1a5aa6d8ec2c08fd70ca7c51) )
ROM_REGION( 0x40000, "k052109", 0 ) /* tiles */
@@ -698,11 +687,10 @@ ROM_START( devstors3 )
ROM_END
ROM_START( garuka )
- ROM_REGION( 0x40000, "maincpu", 0 )
- ROM_LOAD( "890w02.k11", 0x10000, 0x08000, CRC(b2f6f538) SHA1(95dad3258a2e4c5648d0fc22c06fa3e2da3b5ed1) )
- ROM_CONTINUE( 0x08000, 0x08000 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "890w02.k11", 0x00000, 0x10000, CRC(b2f6f538) SHA1(95dad3258a2e4c5648d0fc22c06fa3e2da3b5ed1) )
- ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_REGION( 0x8000, "audiocpu", 0 )
ROM_LOAD( "890k01.f7", 0x00000, 0x08000, CRC(d44b3eb0) SHA1(26109fc56668b65f1a5aa6d8ec2c08fd70ca7c51) )
ROM_REGION( 0x40000, "k052109", 0 ) /* tiles */
@@ -724,11 +712,11 @@ ROM_END
-GAME( 1988, mainevt, 0, mainevt, mainevt, driver_device, 0, ROT0, "Konami", "The Main Event (4 Players ver. Y)", GAME_SUPPORTS_SAVE )
-GAME( 1988, mainevto, mainevt, mainevt, mainevt, driver_device, 0, ROT0, "Konami", "The Main Event (4 Players ver. F)", GAME_SUPPORTS_SAVE )
-GAME( 1988, mainevt2p,mainevt, mainevt, mainev2p, driver_device, 0, ROT0, "Konami", "The Main Event (2 Players ver. X)", GAME_SUPPORTS_SAVE )
-GAME( 1988, ringohja, mainevt, mainevt, mainev2p, driver_device, 0, ROT0, "Konami", "Ring no Ohja (Japan 2 Players ver. N)", GAME_SUPPORTS_SAVE )
-GAME( 1988, devstors, 0, devstors, devstors, driver_device, 0, ROT90, "Konami", "Devastators (ver. Z)", GAME_SUPPORTS_SAVE )
-GAME( 1988, devstors2,devstors, devstors, devstor2, driver_device, 0, ROT90, "Konami", "Devastators (ver. X)", GAME_SUPPORTS_SAVE )
-GAME( 1988, devstors3,devstors, devstors, devstors, driver_device, 0, ROT90, "Konami", "Devastators (ver. V)", GAME_SUPPORTS_SAVE )
-GAME( 1988, garuka, devstors, devstors, devstor2, driver_device, 0, ROT90, "Konami", "Garuka (Japan ver. W)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/mainsnk.c b/src/mame/drivers/mainsnk.c
index 576dcff171a..695a29fdb24 100644
--- a/src/mame/drivers/mainsnk.c
+++ b/src/mame/drivers/mainsnk.c
@@ -486,5 +486,5 @@ ROM_START( canvas )
ROM_END
-GAME( 1984, mainsnk, 0, mainsnk, mainsnk, driver_device, 0, ROT0, "SNK", "Main Event (1984)", GAME_SUPPORTS_SAVE )
-GAME( 1985, canvas, 0, mainsnk, canvas, driver_device, 0, ROT0, "SNK", "Canvas Croquis", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/malzak.c b/src/mame/drivers/malzak.c
index d418a4c856a..ae3997d1f4f 100644
--- a/src/mame/drivers/malzak.c
+++ b/src/mame/drivers/malzak.c
@@ -413,5 +413,5 @@ ROM_START( malzak2 )
ROM_END
-GAME( 19??, malzak, 0, malzak, malzak, driver_device, 0, ROT0, "Kitronix", "Malzak", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 19??, malzak2, malzak, malzak2, malzak2, driver_device, 0, ROT0, "Kitronix", "Malzak II", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/manohman.c b/src/mame/drivers/manohman.c
index d7e465f0547..430413996a9 100644
--- a/src/mame/drivers/manohman.c
+++ b/src/mame/drivers/manohman.c
@@ -236,4 +236,4 @@ ROM_END
*********************************************/
/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS... */
-GAME( 199?, manohman, 0, manohman, manohman, driver_device, 0, ROT0, "Merkur", "Mann, oh-Mann", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_REQUIRES_ARTWORK )
+GAME( 199?, manohman, 0, manohman, manohman, driver_device, 0, ROT0, "Merkur", "Mann, oh-Mann", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_REQUIRES_ARTWORK )
diff --git a/src/mame/drivers/mappy.c b/src/mame/drivers/mappy.c
index 525e30a1b62..aad2fa4a05d 100644
--- a/src/mame/drivers/mappy.c
+++ b/src/mame/drivers/mappy.c
@@ -2453,25 +2453,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", GAME_SUPPORTS_SAVE )
-GAME( 1982, superpacm,superpac, superpac, superpac, mappy_state, superpac, ROT90, "Namco (Bally Midway license)", "Super Pac-Man (Midway)", GAME_SUPPORTS_SAVE )
-GAME( 1983, pacnpal, 0, pacnpal, pacnpal, mappy_state, pacnpal, ROT90, "Namco", "Pac & Pal", GAME_SUPPORTS_SAVE )
-GAME( 1983, pacnpal2, pacnpal, pacnpal, pacnpal, mappy_state, pacnpal, ROT90, "Namco", "Pac & Pal (older)", GAME_SUPPORTS_SAVE )
-GAME( 1983, pacnchmp, pacnpal, pacnpal, pacnpal, mappy_state, pacnpal, ROT90, "Namco", "Pac-Man & Chomp Chomp", GAME_SUPPORTS_SAVE )
-GAME( 1984, grobda, 0, grobda, grobda, mappy_state, grobda, ROT90, "Namco", "Grobda (New Ver.)", GAME_SUPPORTS_SAVE )
-GAME( 1984, grobda2, grobda, grobda, grobda, mappy_state, grobda, ROT90, "Namco", "Grobda (Old Ver. set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1984, grobda3, grobda, grobda, grobda, mappy_state, grobda, ROT90, "Namco", "Grobda (Old Ver. set 2)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1983, phozons, phozon, phozon, phozon, mappy_state, phozon, ROT90, "Namco (Sidam license)", "Phozon (Sidam)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1983, mappyj, mappy, mappy, mappy, mappy_state, mappy, ROT90, "Namco", "Mappy (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1984, todruaga, 0, todruaga, todruaga, mappy_state, druaga, ROT90, "Namco", "The Tower of Druaga (New Ver.)", GAME_SUPPORTS_SAVE )
-GAME( 1984, todruagao,todruaga, todruaga, todruaga, mappy_state, druaga, ROT90, "Namco", "The Tower of Druaga (Old Ver.)", GAME_SUPPORTS_SAVE )
-GAME( 1984, todruagas,todruaga, todruaga, todruaga, mappy_state, druaga, ROT90, "bootleg? (Sidam)", "The Tower of Druaga (Sidam)", GAME_SUPPORTS_SAVE )
-GAME( 1985, digdug2, 0, digdug2, digdug2, mappy_state, digdug2, ROT90, "Namco", "Dig Dug II (New Ver.)", GAME_SUPPORTS_SAVE )
-GAME( 1985, digdug2o, digdug2, digdug2, digdug2, mappy_state, digdug2, ROT90, "Namco", "Dig Dug II (Old Ver.)", GAME_SUPPORTS_SAVE )
-GAME( 1985, motos, 0, motos, motos, mappy_state, motos, ROT90, "Namco", "Motos", GAME_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.c b/src/mame/drivers/marineb.c
index 80abd5149c1..d01ce880e39 100644
--- a/src/mame/drivers/marineb.c
+++ b/src/mame/drivers/marineb.c
@@ -865,13 +865,13 @@ ROM_END
/* year name parent machine inputs */
-GAME( 1982, marineb, 0, marineb, marineb, driver_device, 0, ROT0, "Orca", "Marine Boy", GAME_SUPPORTS_SAVE )
-GAME( 1982, changes, 0, changes, changes, driver_device, 0, ROT0, "Orca", "Changes", GAME_SUPPORTS_SAVE )
-GAME( 1982, changesa, changes, changes, changes, driver_device, 0, ROT0, "Orca (Eastern Micro Electronics, Inc. license)", "Changes (EME license)", GAME_SUPPORTS_SAVE )
-GAME( 1982, looper, changes, changes, changes, driver_device, 0, ROT0, "Orca", "Looper", GAME_SUPPORTS_SAVE )
-GAME( 1982, springer, 0, springer, marineb, driver_device, 0, ROT270, "Orca", "Springer", GAME_SUPPORTS_SAVE )
-GAME( 1983, hoccer, 0, hoccer, hoccer, driver_device, 0, ROT90, "Eastern Micro Electronics, Inc.", "Hoccer (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1983, hoccer2, hoccer, hoccer, hoccer, driver_device, 0, ROT90, "Eastern Micro Electronics, Inc.", "Hoccer (set 2)" , GAME_SUPPORTS_SAVE ) /* earlier */
-GAME( 1983, bcruzm12, 0, bcruzm12, bcruzm12, driver_device,0, ROT90, "Sigma Enterprises Inc.", "Battle Cruiser M-12", GAME_SUPPORTS_SAVE )
-GAME( 1983, hopprobo, 0, hopprobo, marineb, driver_device, 0, ROT90, "Sega", "Hopper Robo", GAME_SUPPORTS_SAVE )
-GAME( 1984, wanted, 0, wanted, wanted, driver_device, 0, ROT90, "Sigma Enterprises Inc.", "Wanted", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/marinedt.c b/src/mame/drivers/marinedt.c
index 8ea96e9e701..77a8cd475f0 100644
--- a/src/mame/drivers/marinedt.c
+++ b/src/mame/drivers/marinedt.c
@@ -732,4 +732,4 @@ ROM_START( marinedt )
ROM_LOAD( "mg17.bpr", 0x0060, 0x0020, CRC(13261a02) SHA1(050edd18e4f79d19d5206f55f329340432fd4099) ) //?? table of increasing values
ROM_END
-GAME( 1981, marinedt, 0, marinedt, marinedt, driver_device, 0, ROT270, "Taito", "Marine Date", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1981, marinedt, 0, marinedt, marinedt, driver_device, 0, ROT270, "Taito", "Marine Date", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/mario.c b/src/mame/drivers/mario.c
index f213e7c98ea..371a078c18b 100644
--- a/src/mame/drivers/mario.c
+++ b/src/mame/drivers/mario.c
@@ -831,12 +831,12 @@ ROM_END
*
*************************************/
-GAME( 1983, mario, 0, mario, marioo, driver_device, 0, ROT0, "Nintendo of America", "Mario Bros. (US, Revision F)", GAME_SUPPORTS_SAVE )
-GAME( 1983, marioe, mario, mario, mario, driver_device, 0, ROT0, "Nintendo of America", "Mario Bros. (US, Revision E)", GAME_SUPPORTS_SAVE )
-GAME( 1983, marioo, mario, mario, marioo, driver_device, 0, ROT0, "Nintendo of America", "Mario Bros. (US, Unknown Rev)", GAME_SUPPORTS_SAVE )
-GAME( 1983, marioj, mario, mario, marioj, driver_device, 0, ROT0, "Nintendo", "Mario Bros. (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1983, masao, mario, masao, masao, driver_device, 0, ROT0, "bootleg", "Masao", GAME_SUPPORTS_SAVE )
+GAME( 1983, mario, 0, mario, marioo, driver_device, 0, ROT0, "Nintendo of America", "Mario Bros. (US, Revision F)", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, marioe, mario, mario, mario, 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, masao, driver_device, 0, ROT0, "bootleg", "Masao", MACHINE_SUPPORTS_SAVE )
// todo, these might have a better home than in here
-GAME( 1983, mariobl, mario, mariobl, mariobl,driver_device, 0, ROT180, "bootleg", "Mario Bros. (Japan, bootleg)", GAME_SUPPORTS_SAVE ) // was listed as 'on extended Ambush hardware' but doesn't seem similar apart from the sound system?
-GAME( 1983, dkong3abl,dkong3, dkong3abl,dkong3abl,driver_device,0, ROT90, "bootleg", "Donkey Kong 3 (bootleg with 2xAY8910)", GAME_NOT_WORKING ) // likewise, put here because it's similar to mariobl
+GAME( 1983, mariobl, mario, mariobl, mariobl,driver_device, 0, ROT180, "bootleg", "Mario Bros. (Japan, bootleg)", MACHINE_SUPPORTS_SAVE ) // was listed as 'on extended Ambush hardware' but doesn't seem similar apart from the sound system?
+GAME( 1983, dkong3abl,dkong3, dkong3abl,dkong3abl,driver_device,0, ROT90, "bootleg", "Donkey Kong 3 (bootleg with 2xAY8910)", MACHINE_NOT_WORKING ) // likewise, put here because it's similar to mariobl
diff --git a/src/mame/drivers/markham.c b/src/mame/drivers/markham.c
index b17e115784c..74648b255f3 100644
--- a/src/mame/drivers/markham.c
+++ b/src/mame/drivers/markham.c
@@ -242,4 +242,4 @@ ROM_START( markham )
ROM_END
-GAME( 1983, markham, 0, markham, markham, driver_device, 0, ROT0, "Sun Electronics", "Markham", GAME_SUPPORTS_SAVE )
+GAME( 1983, markham, 0, markham, markham, driver_device, 0, ROT0, "Sun Electronics", "Markham", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/mastboy.c b/src/mame/drivers/mastboy.c
index cb5e604f87e..88c685a6e0a 100644
--- a/src/mame/drivers/mastboy.c
+++ b/src/mame/drivers/mastboy.c
@@ -1016,6 +1016,44 @@ ROM_START( mastboyi )
/* 0x1c0000 to 0x1fffff EMPTY */
ROM_END
+// only one of the question roms differs (minor wording / spelling changes in most cases)
+ROM_START( mastboyia )
+ ROM_REGION( 0x20000, "maincpu", 0 )
+ ROM_LOAD( "hd647180.bin", 0x00000, 0x4000, CRC(75716dd1) SHA1(9b14b9b889b29b6022a3815de95487fb6a720d7a) ) // game code is internal to the CPU!
+ ROM_LOAD( "3-mem-a.ic77", 0x04000, 0x4000, CRC(3ee33282) SHA1(26371e3bb436869461e9870409b69aa9fb1845d6) ) // sound data? (+ 1 piece of) 1ST AND 2ND HALF IDENTICAL
+ ROM_CONTINUE( 0x04000, 0x4000 )
+ ROM_CONTINUE( 0x04000, 0x4000 )
+ ROM_CONTINUE( 0x04000, 0x4000 ) // only the last 16kb matters
+
+ ROM_REGION( 0x10000, "gfx1", ROMREGION_ERASE00 ) /* RAM accessed by the video chip */
+ /* 0x00000 - 0x0ffff = banked ram */
+
+ ROM_REGION( 0x10000, "gfx2", ROMREGION_INVERT ) /* ROM accessed by the video chip */
+ ROM_LOAD( "4.ic91", 0x00000, 0x10000, CRC(858d7b27) SHA1(b0ddf49df5665003f3616d67f7fc27408433483b) )
+
+ ROM_REGION( 0x200000, "user1", 0 ) /* question data - 6 sockets */
+ ROM_LOAD( "1-mem-c.ic75", 0x000000, 0x040000, CRC(7c7b1cc5) SHA1(73ad7bdb61d1f99ce09ef3a5a3ae0f1e72364eee) ) // 99% gfx
+ ROM_LOAD( "2-mem-b.ic76", 0x040000, 0x020000, CRC(87015c18) SHA1(a16bf2707ce847da0923662796195b75719a6d77) ) // data
+ ROM_RELOAD( 0x060000, 0x020000) // 128kb roms are mirrored
+/* Musica - Autori Canzoni
+ Scienza - Natura
+ Sport - Mondiali 90
+ Tempo Libero - Hobby Giochi */
+ ROM_LOAD( "5-alt.ic95", 0x080000, 0x020000, CRC(efa442fa) SHA1(5211ea122083120028348418e33cb71b4ce52b8f) )
+ ROM_RELOAD( 0x0a0000, 0x020000) // 128kb roms are mirrored
+/* Spettacolo - Cine-TV
+ Sport - Generale */
+ ROM_LOAD( "6-rom.ic96", 0x0c0000, 0x020000, CRC(2c52cb1e) SHA1(d58f21c09bd3983497f74ab6c5a37977d9e30f0c) )
+ ROM_RELOAD( 0x0e0000, 0x020000) // 128kb roms are mirrored
+/* Scienza - Geografia
+ Scienza - Storia */
+ ROM_LOAD( "7-rom.ic97", 0x100000, 0x020000, CRC(7818408f) SHA1(2a69688b6cda5baf2a45966dd86f10b2fcd54b66) )
+ ROM_RELOAD( 0x120000, 0x020000) // 128kb roms are mirrored
+ /* 0x140000 to 0x17ffff EMPTY */
+ /* 0x180000 to 0x1bffff EMPTY */
+ /* 0x1c0000 to 0x1fffff EMPTY */
+ROM_END
-GAME( 1991, mastboy, 0, mastboy, mastboy, driver_device, 0, ROT0, "Gaelco", "Master Boy (Spanish, PCB Rev A)", GAME_SUPPORTS_SAVE )
-GAME( 1991, mastboyi, mastboy, mastboy, mastboy, driver_device, 0, ROT0, "Gaelco", "Master Boy (Italian, PCB Rev A)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/matmania.c b/src/mame/drivers/matmania.c
index c843e3005e8..d227a15805d 100644
--- a/src/mame/drivers/matmania.c
+++ b/src/mame/drivers/matmania.c
@@ -773,7 +773,7 @@ ROM_END
*
*************************************/
-GAME( 1985, matmania, 0, matmania, matmania, driver_device, 0, ROT270, "Technos Japan (Taito America license)", "Mat Mania", GAME_SUPPORTS_SAVE )
-GAME( 1985, excthour, matmania, matmania, maniach, driver_device, 0, ROT270, "Technos Japan (Taito license)", "Exciting Hour", GAME_SUPPORTS_SAVE )
-GAME( 1986, maniach, 0, maniach, maniach, driver_device, 0, ROT270, "Technos Japan (Taito America license)", "Mania Challenge (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1986, maniach2, maniach, maniach, maniach, driver_device, 0, ROT270, "Technos Japan (Taito America license)", "Mania Challenge (set 2)", GAME_SUPPORTS_SAVE ) /* earlier version? */
+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? */
diff --git a/src/mame/drivers/maxaflex.c b/src/mame/drivers/maxaflex.c
index f210026b24b..558b9eb9c12 100644
--- a/src/mame/drivers/maxaflex.c
+++ b/src/mame/drivers/maxaflex.c
@@ -535,7 +535,7 @@ ROM_START(mf_flip)
ROM_END
-GAME( 1984, maxaflex, 0, maxaflex, a600xl, driver_device, 0, ROT0, "Exidy", "Max-A-Flex", GAME_IS_BIOS_ROOT )
+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 )
diff --git a/src/mame/drivers/maygay1bsw.c b/src/mame/drivers/maygay1bsw.c
index 76d58aa4c65..0d039c3345e 100644
--- a/src/mame/drivers/maygay1bsw.c
+++ b/src/mame/drivers/maygay1bsw.c
@@ -26,7 +26,7 @@
INPUT_PORTS_EXTERN( maygay_m1 );
-#define GAME_FLAGS GAME_NOT_WORKING|GAME_NO_SOUND|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL
+#define GAME_FLAGS MACHINE_NOT_WORKING|MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL
// I assume all sets have this, or is M1B different? We don't use it right now anyway.
#define ROM_END_M1A_MCU \
diff --git a/src/mame/drivers/maygayep.c b/src/mame/drivers/maygayep.c
index 9aa5699657e..fa9c5568a3d 100644
--- a/src/mame/drivers/maygayep.c
+++ b/src/mame/drivers/maygayep.c
@@ -7046,1028 +7046,1028 @@ ROM_END
/* header info */
-GAME( 1998, ep_simp, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons (Maygay) (EPOCH) (3.6, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1998, ep_simpa, ep_simp, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons (Maygay) (EPOCH) (3.5, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1998, ep_simpb, ep_simp, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons (Maygay) (EPOCH) (3.5, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1998, ep_simpc, ep_simp, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons (Maygay) (EPOCH) (4.5, set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1998, ep_simpd, ep_simp, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons (Maygay) (EPOCH) (4.5, set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1998, ep_simpe, ep_simp, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons (Maygay) (EPOCH) (1.5, set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1998, ep_simpf, ep_simp, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons (Maygay) (EPOCH) (1.5, set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1998, ep_simpg, ep_simp, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons (Maygay) (EPOCH) (2.5, set 8)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1998, ep_simph, ep_simp, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons (Maygay) (EPOCH) (2.5, set 9)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1999, ep_simpj, ep_simp, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons (Maygay) (EPOCH) (1.8, set 10)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1999, ep_simpk, ep_simp, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons (Maygay) (EPOCH) (1.8, set 11)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1999, ep_simpl, ep_simp, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons (Maygay) (EPOCH) (3.7, set 12)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1999, ep_simpm, ep_simp, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons (Maygay) (EPOCH) (3.7, set 13)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 1999, ep_merln, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Merlin's Magic (Maygay) (EPOCH) (1.91)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 1998, ep_bingb, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Bingo Belle (Maygay) (EPOCH) (1.3, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1998, ep_bingba, ep_bingb, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Bingo Belle (Maygay) (EPOCH) (1.3, set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 1998, ep_calyp, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Calypso (Maygay) (EPOCH) (2.2, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1998, ep_calypa, ep_calyp, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Calypso (Maygay) (EPOCH) (2.2, set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 1998, ep_cow, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Carry On Winning (Maygay) (EPOCH) (1.3, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1998, ep_cowa, ep_cow, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Carry On Winning (Maygay) (EPOCH) (1.3, set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 1998, ep_cfall, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Falls (Maygay) (EPOCH) (1.2, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1998, ep_cfalla, ep_cfall, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Falls (Maygay) (EPOCH) (1.3, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1998, ep_cfallb, ep_cfall, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Falls (Maygay) (EPOCH) (1.3, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1998, ep_cfallc, ep_cfall, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Falls (Maygay) (EPOCH) (2.3, set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1998, ep_cfalld, ep_cfall, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Falls (Maygay) (EPOCH) (2.3, set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1998, ep_cfalle, ep_cfall, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Falls (Maygay) (EPOCH) (3.2, set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1998, ep_cfallf, ep_cfall, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Falls (Maygay) (EPOCH) (3.2, set 7)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 1998, ep_cflow, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Flow (Maygay) (EPOCH) (3.7, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1998, ep_cflowa, ep_cflow, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Flow (Maygay) (EPOCH) (3.2, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1999, ep_cflowc, ep_cflow, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Flow (Maygay) (EPOCH) (3.A, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1999, ep_cflowd, ep_cflow, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Flow (Maygay) (EPOCH) (3.A, set 4)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_doubl, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Double Top (Maygay) (EPOCH) (1.4, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_doubla, ep_doubl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Double Top (Maygay) (EPOCH) (1.4, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_doublb, ep_doubl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Double Top (Maygay) (EPOCH) (1.6, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_doublc, ep_doubl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Double Top (Maygay) (EPOCH) (1.6, set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_doubld, ep_doubl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Double Top (Maygay) (EPOCH) (1.4, set 5)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_evil, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Evil Streak (Maygay) (EPOCH) (1.6, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_evila, ep_evil, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Evil Streak (Maygay) (EPOCH) (1.6, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_evilb, ep_evil, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Evil Streak (Maygay) (EPOCH) (1.4, set 3)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 1998, ep_nyny, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "New York New York (Maygay) (EPOCH) (3.6, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1998, ep_nynya, ep_nyny, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "New York New York (Maygay) (EPOCH) (3.6, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1998, ep_nynyb, ep_nyny, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "New York New York (Maygay) (EPOCH) (4.6, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1998, ep_nynyc, ep_nyny, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "New York New York (Maygay) (EPOCH) (4.6, set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1998, ep_nynyd, ep_nyny, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "New York New York (Maygay) (EPOCH) (3.A, set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1998, ep_nynye, ep_nyny, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "New York New York (Maygay) (EPOCH) (3.A, set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1998, ep_nynyf, ep_nyny, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "New York New York (Maygay) (EPOCH) (3.9, set 7)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_pizza, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Pizza The Action (Maygay) (EPOCH) (2.3, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_pizzaa, ep_pizza, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Pizza The Action (Maygay) (EPOCH) (2.3, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_pizzab, ep_pizza, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Pizza The Action (Maygay) (EPOCH) (2.1, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_pizzac, ep_pizza, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Pizza The Action (Maygay) (EPOCH) (2.1, set 4)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_crazy, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Reel Crazy (Maygay) (EPOCH) (1.6, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_crazya, ep_crazy, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Reel Crazy (Maygay) (EPOCH) (1.6, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_crazyb, ep_crazy, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Reel Crazy (Maygay) (EPOCH) (2.6, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_crazyc, ep_crazy, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Reel Crazy (Maygay) (EPOCH) (2.6, set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_crazyd, ep_crazy, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Reel Crazy (Maygay) (EPOCH) (1.9, set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_crazye, ep_crazy, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Reel Crazy (Maygay) (EPOCH) (1.9, set 6)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 1998, ep_simp, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons (Maygay) (EPOCH) (3.6, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1998, ep_simpa, ep_simp, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons (Maygay) (EPOCH) (3.5, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1998, ep_simpb, ep_simp, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons (Maygay) (EPOCH) (3.5, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1998, ep_simpc, ep_simp, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons (Maygay) (EPOCH) (4.5, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1998, ep_simpd, ep_simp, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons (Maygay) (EPOCH) (4.5, set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1998, ep_simpe, ep_simp, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons (Maygay) (EPOCH) (1.5, set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1998, ep_simpf, ep_simp, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons (Maygay) (EPOCH) (1.5, set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1998, ep_simpg, ep_simp, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons (Maygay) (EPOCH) (2.5, set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1998, ep_simph, ep_simp, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons (Maygay) (EPOCH) (2.5, set 9)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1999, ep_simpj, ep_simp, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons (Maygay) (EPOCH) (1.8, set 10)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1999, ep_simpk, ep_simp, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons (Maygay) (EPOCH) (1.8, set 11)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1999, ep_simpl, ep_simp, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons (Maygay) (EPOCH) (3.7, set 12)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1999, ep_simpm, ep_simp, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons (Maygay) (EPOCH) (3.7, set 13)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 1999, ep_merln, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Merlin's Magic (Maygay) (EPOCH) (1.91)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 1998, ep_bingb, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Bingo Belle (Maygay) (EPOCH) (1.3, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1998, ep_bingba, ep_bingb, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Bingo Belle (Maygay) (EPOCH) (1.3, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 1998, ep_calyp, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Calypso (Maygay) (EPOCH) (2.2, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1998, ep_calypa, ep_calyp, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Calypso (Maygay) (EPOCH) (2.2, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 1998, ep_cow, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Carry On Winning (Maygay) (EPOCH) (1.3, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1998, ep_cowa, ep_cow, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Carry On Winning (Maygay) (EPOCH) (1.3, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 1998, ep_cfall, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Falls (Maygay) (EPOCH) (1.2, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1998, ep_cfalla, ep_cfall, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Falls (Maygay) (EPOCH) (1.3, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1998, ep_cfallb, ep_cfall, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Falls (Maygay) (EPOCH) (1.3, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1998, ep_cfallc, ep_cfall, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Falls (Maygay) (EPOCH) (2.3, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1998, ep_cfalld, ep_cfall, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Falls (Maygay) (EPOCH) (2.3, set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1998, ep_cfalle, ep_cfall, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Falls (Maygay) (EPOCH) (3.2, set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1998, ep_cfallf, ep_cfall, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Falls (Maygay) (EPOCH) (3.2, set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 1998, ep_cflow, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Flow (Maygay) (EPOCH) (3.7, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1998, ep_cflowa, ep_cflow, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Flow (Maygay) (EPOCH) (3.2, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1999, ep_cflowc, ep_cflow, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Flow (Maygay) (EPOCH) (3.A, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1999, ep_cflowd, ep_cflow, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Flow (Maygay) (EPOCH) (3.A, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_doubl, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Double Top (Maygay) (EPOCH) (1.4, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_doubla, ep_doubl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Double Top (Maygay) (EPOCH) (1.4, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_doublb, ep_doubl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Double Top (Maygay) (EPOCH) (1.6, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_doublc, ep_doubl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Double Top (Maygay) (EPOCH) (1.6, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_doubld, ep_doubl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Double Top (Maygay) (EPOCH) (1.4, set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_evil, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Evil Streak (Maygay) (EPOCH) (1.6, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_evila, ep_evil, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Evil Streak (Maygay) (EPOCH) (1.6, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_evilb, ep_evil, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Evil Streak (Maygay) (EPOCH) (1.4, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 1998, ep_nyny, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "New York New York (Maygay) (EPOCH) (3.6, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1998, ep_nynya, ep_nyny, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "New York New York (Maygay) (EPOCH) (3.6, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1998, ep_nynyb, ep_nyny, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "New York New York (Maygay) (EPOCH) (4.6, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1998, ep_nynyc, ep_nyny, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "New York New York (Maygay) (EPOCH) (4.6, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1998, ep_nynyd, ep_nyny, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "New York New York (Maygay) (EPOCH) (3.A, set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1998, ep_nynye, ep_nyny, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "New York New York (Maygay) (EPOCH) (3.A, set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1998, ep_nynyf, ep_nyny, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "New York New York (Maygay) (EPOCH) (3.9, set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_pizza, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Pizza The Action (Maygay) (EPOCH) (2.3, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_pizzaa, ep_pizza, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Pizza The Action (Maygay) (EPOCH) (2.3, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_pizzab, ep_pizza, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Pizza The Action (Maygay) (EPOCH) (2.1, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_pizzac, ep_pizza, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Pizza The Action (Maygay) (EPOCH) (2.1, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_crazy, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Reel Crazy (Maygay) (EPOCH) (1.6, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_crazya, ep_crazy, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Reel Crazy (Maygay) (EPOCH) (1.6, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_crazyb, ep_crazy, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Reel Crazy (Maygay) (EPOCH) (2.6, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_crazyc, ep_crazy, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Reel Crazy (Maygay) (EPOCH) (2.6, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_crazyd, ep_crazy, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Reel Crazy (Maygay) (EPOCH) (1.9, set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_crazye, ep_crazy, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Reel Crazy (Maygay) (EPOCH) (1.9, set 6)",MACHINE_IS_SKELETON_MECHANICAL )
// CA000527 SUPER MARIO - version number seems to jump backwards from 2.A after 1.A, with 2.A having the exact same build date as 1.A.. is the KJ / SM / CW bit significant? or is the 2.A revision a mistake, it comes after the 1.A in label tho, so 1.A isn't a correction.
-GAME( 1997, ep_mario, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Super Mario (Maygay) (EPOCH) (1.5, set 1)",GAME_IS_SKELETON_MECHANICAL ) // SA970024 SA970018 11:40:00 DEC 02 1997 MAB, V1.5 EPOCH APOLLO AllCash
-GAME( 1997, ep_marioa, ep_mario, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Super Mario (Maygay) (EPOCH) (1.5, set 2)",GAME_IS_SKELETON_MECHANICAL ) // SA970025 SA970019 11:40:00 DEC 02 1997 MAB, V1.5 EPOCH APOLLO AllCash
-GAME( 1997, ep_mariob, ep_mario, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Super Mario (Maygay) (EPOCH) (1.A, set 3)",GAME_IS_SKELETON_MECHANICAL ) // SA970036 SA970024 11:15:00 DEC 23 1997 KJGio.x, 1.A EPOCH APOLLO
-GAME( 1997, ep_marioc, ep_mario, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Super Mario (Maygay) (EPOCH) (1.A, set 4)",GAME_IS_SKELETON_MECHANICAL ) // SA970037 SA970025 11:15:00 DEC 23 1997 KJGio.x, 1.A EPOCH APOLLO
-GAME( 1997, ep_mariod, ep_mario, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Super Mario (Maygay) (EPOCH) (2.A, set 5)",GAME_IS_SKELETON_MECHANICAL ) // SA970038 SA970026 11:15:00 DEC 23 1997 KJGio.x, 2.A EPOCH APOLLO
-GAME( 1997, ep_marioe, ep_mario, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Super Mario (Maygay) (EPOCH) (2.A, set 6)",GAME_IS_SKELETON_MECHANICAL ) // SA970039 SA970027 11:15:00 DEC 23 1997 KJGio.x, 2.A EPOCH APOLLO
-GAME( 1998, ep_marioh, ep_mario, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Super Mario (Maygay) (EPOCH) (1.B, set 9)",GAME_IS_SKELETON_MECHANICAL ) // SA980286 SA970037 10:05:00 AUG 26 1998 SJMio.x, 1.B EPOCH APOLLO
-GAME( 1999, ep_mariof, ep_mario, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Super Mario (Maygay) (EPOCH) (1.C, set 7)",GAME_IS_SKELETON_MECHANICAL ) // SA990033 SA980286 14:05:00 FEB 26 1999 CWGio.x, 1.C EPOCH APOLLO
-GAME( 1999, ep_mariog, ep_mario, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Super Mario (Maygay) (EPOCH) (1.C, set 8)",GAME_IS_SKELETON_MECHANICAL ) // SA990034 SA980287 14:05:00 FEB 26 1999 CWGio.x, 1.C EPOCH APOLLO
-
-GAME( 199?, ep_tincn, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Tin Can Alley (Maygay) (EPOCH) (1.5, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_tincna, ep_tincn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Tin Can Alley (Maygay) (EPOCH) (1.5, set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_tonfn, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Tons Of Fun (Maygay) (EPOCH) (1.5, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_tonfna, ep_tonfn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Tons Of Fun (Maygay) (EPOCH) (1.5, set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_tcrwn, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Triple Crown (Maygay) (EPOCH) (2.2, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_tcrwna, ep_tcrwn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Triple Crown (Maygay) (EPOCH) (2.2, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_tcrwnb, ep_tcrwn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Triple Crown (Maygay) (EPOCH) (2.2, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_tcrwnc, ep_tcrwn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Triple Crown (Maygay) (EPOCH) (2.2, set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_tcrwnd, ep_tcrwn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Triple Crown (Maygay) (EPOCH) (3.1, set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_tcrwne, ep_tcrwn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Triple Crown (Maygay) (EPOCH) (3.1, set 6)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_word, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Word Up (Maygay) (EPOCH) (1.4, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_worda, ep_word, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Word Up (Maygay) (EPOCH) (1.4, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_wordb, ep_word, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Word Up (Maygay) (EPOCH) (2.4, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_wordc, ep_word, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Word Up (Maygay) (EPOCH) (2.4, set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_wordd, ep_word, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Word Up (Maygay) (EPOCH) (3.1, set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_worde, ep_word, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Word Up (Maygay) (EPOCH) (3.1, set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_wordf, ep_word, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Word Up (Maygay) (EPOCH) (4.1, set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_wordg, ep_word, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Word Up (Maygay) (EPOCH) (4.1, set 8)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_xtra, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "X-tra X-tra (Maygay) (EPOCH) (1.5, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_xtraa, ep_xtra, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "X-tra X-tra (Maygay) (EPOCH) (1.5, set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 2002, ep_25crt, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "25 Carrot Gold (Maygay) (EPOCH) (1.2, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, ep_25crta, ep_25crt, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "25 Carrot Gold (Maygay) (EPOCH) (1.1, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, ep_25crtb, ep_25crt, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "25 Carrot Gold (Maygay) (EPOCH) (3.1, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2003, ep_25crtc, ep_25crt, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "25 Carrot Gold (Maygay) (EPOCH) (4.1, set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2003, ep_25crtd, ep_25crt, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "25 Carrot Gold (Maygay) (EPOCH) (5.1, set 5)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_bartk, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Bar Trekkin (Maygay) (EPOCH) (4.5, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_bartka, ep_bartk, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Bar Trekkin (Maygay) (EPOCH) (3.9, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_bartkb, ep_bartk, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Bar Trekkin (Maygay) (EPOCH) (3.9, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_bartkc, ep_bartk, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Bar Trekkin (Maygay) (EPOCH) (4.4, set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_bartkd, ep_bartk, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Bar Trekkin (Maygay) (EPOCH) (4.4, set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_bartke, ep_bartk, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Bar Trekkin (Maygay) (EPOCH) (4.5, set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_bartkf, ep_bartk, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Bar Trekkin (Maygay) (EPOCH) (4.2, set 7)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_batls, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Battleships (Maygay) (EPOCH) (2.2, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_batlsa, ep_batls, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Battleships (Maygay) (EPOCH) (2.2, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_batlsb, ep_batls, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Battleships (Maygay) (EPOCH) (1.9, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_batlsc, ep_batls, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Battleships (Maygay) (EPOCH) (1.9, set 4)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_cdspn, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cardinal Spin (Maygay) (EPOCH) (1.1, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cdspna, ep_cdspn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cardinal Spin (Maygay) (EPOCH) (1.1, set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_cosc, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Carry On Screaming (Maygay) (EPOCH) (1.3, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cosca, ep_cosc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Carry On Screaming (Maygay) (EPOCH) (1.3, set 2)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 1997, ep_mario, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Super Mario (Maygay) (EPOCH) (1.5, set 1)",MACHINE_IS_SKELETON_MECHANICAL ) // SA970024 SA970018 11:40:00 DEC 02 1997 MAB, V1.5 EPOCH APOLLO AllCash
+GAME( 1997, ep_marioa, ep_mario, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Super Mario (Maygay) (EPOCH) (1.5, set 2)",MACHINE_IS_SKELETON_MECHANICAL ) // SA970025 SA970019 11:40:00 DEC 02 1997 MAB, V1.5 EPOCH APOLLO AllCash
+GAME( 1997, ep_mariob, ep_mario, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Super Mario (Maygay) (EPOCH) (1.A, set 3)",MACHINE_IS_SKELETON_MECHANICAL ) // SA970036 SA970024 11:15:00 DEC 23 1997 KJGio.x, 1.A EPOCH APOLLO
+GAME( 1997, ep_marioc, ep_mario, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Super Mario (Maygay) (EPOCH) (1.A, set 4)",MACHINE_IS_SKELETON_MECHANICAL ) // SA970037 SA970025 11:15:00 DEC 23 1997 KJGio.x, 1.A EPOCH APOLLO
+GAME( 1997, ep_mariod, ep_mario, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Super Mario (Maygay) (EPOCH) (2.A, set 5)",MACHINE_IS_SKELETON_MECHANICAL ) // SA970038 SA970026 11:15:00 DEC 23 1997 KJGio.x, 2.A EPOCH APOLLO
+GAME( 1997, ep_marioe, ep_mario, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Super Mario (Maygay) (EPOCH) (2.A, set 6)",MACHINE_IS_SKELETON_MECHANICAL ) // SA970039 SA970027 11:15:00 DEC 23 1997 KJGio.x, 2.A EPOCH APOLLO
+GAME( 1998, ep_marioh, ep_mario, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Super Mario (Maygay) (EPOCH) (1.B, set 9)",MACHINE_IS_SKELETON_MECHANICAL ) // SA980286 SA970037 10:05:00 AUG 26 1998 SJMio.x, 1.B EPOCH APOLLO
+GAME( 1999, ep_mariof, ep_mario, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Super Mario (Maygay) (EPOCH) (1.C, set 7)",MACHINE_IS_SKELETON_MECHANICAL ) // SA990033 SA980286 14:05:00 FEB 26 1999 CWGio.x, 1.C EPOCH APOLLO
+GAME( 1999, ep_mariog, ep_mario, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Super Mario (Maygay) (EPOCH) (1.C, set 8)",MACHINE_IS_SKELETON_MECHANICAL ) // SA990034 SA980287 14:05:00 FEB 26 1999 CWGio.x, 1.C EPOCH APOLLO
+
+GAME( 199?, ep_tincn, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Tin Can Alley (Maygay) (EPOCH) (1.5, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_tincna, ep_tincn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Tin Can Alley (Maygay) (EPOCH) (1.5, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_tonfn, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Tons Of Fun (Maygay) (EPOCH) (1.5, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_tonfna, ep_tonfn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Tons Of Fun (Maygay) (EPOCH) (1.5, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_tcrwn, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Triple Crown (Maygay) (EPOCH) (2.2, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_tcrwna, ep_tcrwn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Triple Crown (Maygay) (EPOCH) (2.2, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_tcrwnb, ep_tcrwn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Triple Crown (Maygay) (EPOCH) (2.2, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_tcrwnc, ep_tcrwn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Triple Crown (Maygay) (EPOCH) (2.2, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_tcrwnd, ep_tcrwn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Triple Crown (Maygay) (EPOCH) (3.1, set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_tcrwne, ep_tcrwn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Triple Crown (Maygay) (EPOCH) (3.1, set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_word, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Word Up (Maygay) (EPOCH) (1.4, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_worda, ep_word, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Word Up (Maygay) (EPOCH) (1.4, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_wordb, ep_word, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Word Up (Maygay) (EPOCH) (2.4, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_wordc, ep_word, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Word Up (Maygay) (EPOCH) (2.4, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_wordd, ep_word, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Word Up (Maygay) (EPOCH) (3.1, set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_worde, ep_word, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Word Up (Maygay) (EPOCH) (3.1, set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_wordf, ep_word, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Word Up (Maygay) (EPOCH) (4.1, set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_wordg, ep_word, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Word Up (Maygay) (EPOCH) (4.1, set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_xtra, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "X-tra X-tra (Maygay) (EPOCH) (1.5, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_xtraa, ep_xtra, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "X-tra X-tra (Maygay) (EPOCH) (1.5, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 2002, ep_25crt, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "25 Carrot Gold (Maygay) (EPOCH) (1.2, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_25crta, ep_25crt, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "25 Carrot Gold (Maygay) (EPOCH) (1.1, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_25crtb, ep_25crt, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "25 Carrot Gold (Maygay) (EPOCH) (3.1, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2003, ep_25crtc, ep_25crt, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "25 Carrot Gold (Maygay) (EPOCH) (4.1, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2003, ep_25crtd, ep_25crt, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "25 Carrot Gold (Maygay) (EPOCH) (5.1, set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_bartk, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Bar Trekkin (Maygay) (EPOCH) (4.5, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_bartka, ep_bartk, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Bar Trekkin (Maygay) (EPOCH) (3.9, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_bartkb, ep_bartk, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Bar Trekkin (Maygay) (EPOCH) (3.9, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_bartkc, ep_bartk, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Bar Trekkin (Maygay) (EPOCH) (4.4, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_bartkd, ep_bartk, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Bar Trekkin (Maygay) (EPOCH) (4.4, set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_bartke, ep_bartk, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Bar Trekkin (Maygay) (EPOCH) (4.5, set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_bartkf, ep_bartk, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Bar Trekkin (Maygay) (EPOCH) (4.2, set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_batls, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Battleships (Maygay) (EPOCH) (2.2, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_batlsa, ep_batls, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Battleships (Maygay) (EPOCH) (2.2, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_batlsb, ep_batls, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Battleships (Maygay) (EPOCH) (1.9, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_batlsc, ep_batls, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Battleships (Maygay) (EPOCH) (1.9, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_cdspn, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cardinal Spin (Maygay) (EPOCH) (1.1, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cdspna, ep_cdspn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cardinal Spin (Maygay) (EPOCH) (1.1, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_cosc, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Carry On Screaming (Maygay) (EPOCH) (1.3, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cosca, ep_cosc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Carry On Screaming (Maygay) (EPOCH) (1.3, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
// these 3 are 'fruit cocktail' (CA000627) in the header
-GAME( 199?, ep_ccock, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Cocktail (Maygay) (EPOCH) (1.1, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_ccocka, ep_ccock, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Cocktail (Maygay) (EPOCH) (1.1, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_ccockb, ep_ccock, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Cocktail (Maygay) (EPOCH) (1.1, set 3)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_ccock, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Cocktail (Maygay) (EPOCH) (1.1, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_ccocka, ep_ccock, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Cocktail (Maygay) (EPOCH) (1.1, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_ccockb, ep_ccock, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Cocktail (Maygay) (EPOCH) (1.1, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
// this one is 'cash cocktail' (CA000710)
-GAME( 199?, ep_ccockc, ep_ccock, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Cocktail (Maygay) (EPOCH) (1.1, set 4)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_ccockc, ep_ccock, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Cocktail (Maygay) (EPOCH) (1.1, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cgord, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Gordon (Maygay) (EPOCH) (2.1, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cgorda, ep_cgord, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Gordon (Maygay) (EPOCH) (2.3, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cgordb, ep_cgord, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Gordon (Maygay) (EPOCH) (2.3, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cgordc, ep_cgord, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Gordon (Maygay) (EPOCH) (1.9, set 4)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cgord, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Gordon (Maygay) (EPOCH) (2.1, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cgorda, ep_cgord, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Gordon (Maygay) (EPOCH) (2.3, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cgordb, ep_cgord, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Gordon (Maygay) (EPOCH) (2.3, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cgordc, ep_cgord, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Gordon (Maygay) (EPOCH) (1.9, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cshpn, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash In The Pan (Maygay) (EPOCH) (1.1, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cshpna, ep_cshpn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash In The Pan (Maygay) (EPOCH) (1.1, set 2)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cshpn, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash In The Pan (Maygay) (EPOCH) (1.1, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cshpna, ep_cshpn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash In The Pan (Maygay) (EPOCH) (1.1, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_ctit, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Of The Titans (Maygay) (EPOCH) (1.5, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_ctita, ep_ctit, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Of The Titans (Maygay) (EPOCH) (1.5, set 2)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_ctit, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Of The Titans (Maygay) (EPOCH) (1.5, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_ctita, ep_ctit, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Of The Titans (Maygay) (EPOCH) (1.5, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
// CASINO GRAND
-GAME( 199?, ep_casgc, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Casino Grand Club (Maygay) (EPOCH) (1.1, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_casgca, ep_casgc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Casino Grand Club (Maygay) (EPOCH) (1.1, set 2)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_casgc, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Casino Grand Club (Maygay) (EPOCH) (1.1, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_casgca, ep_casgc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Casino Grand Club (Maygay) (EPOCH) (1.1, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
// CLASSIC CASINO GRAND
-GAME( 199?, ep_casgcb, ep_casgc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Casino Grand Club (Maygay) (EPOCH) (1.4, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_casgcc, ep_casgc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Casino Grand Club (Maygay) (EPOCH) (1.4, set 4)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_casgcb, ep_casgc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Casino Grand Club (Maygay) (EPOCH) (1.4, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_casgcc, ep_casgc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Casino Grand Club (Maygay) (EPOCH) (1.4, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_casrd, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Casino Royale Deluxe Club (Maygay) (EPOCH) (1.5, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_casrda, ep_casrd, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Casino Royale Deluxe Club (Maygay) (EPOCH) (1.3, set 2)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_casrd, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Casino Royale Deluxe Club (Maygay) (EPOCH) (1.5, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_casrda, ep_casrd, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Casino Royale Deluxe Club (Maygay) (EPOCH) (1.3, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_chock, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Chocks Away (Maygay) (EPOCH) (1.1, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_chocka, ep_chock, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Chocks Away (Maygay) (EPOCH) (1.1, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_chockb, ep_chock, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Chocks Away (Maygay) (EPOCH) (1.1, set 3)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_chock, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Chocks Away (Maygay) (EPOCH) (1.1, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_chocka, ep_chock, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Chocks Away (Maygay) (EPOCH) (1.1, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_chockb, ep_chock, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Chocks Away (Maygay) (EPOCH) (1.1, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_commd, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Complete Madness (Maygay) (EPOCH) (2.2, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_commda, ep_commd, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Complete Madness (Maygay) (EPOCH) (2.2, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_commdb, ep_commd, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Complete Madness (Maygay) (EPOCH) (1.1, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_commdc, ep_commd, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Complete Madness (Maygay) (EPOCH) (1.2, set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_commdd, ep_commd, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Complete Madness (Maygay) (EPOCH) (2.1, set 5)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_commd, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Complete Madness (Maygay) (EPOCH) (2.2, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_commda, ep_commd, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Complete Madness (Maygay) (EPOCH) (2.2, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_commdb, ep_commd, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Complete Madness (Maygay) (EPOCH) (1.1, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_commdc, ep_commd, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Complete Madness (Maygay) (EPOCH) (1.2, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_commdd, ep_commd, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Complete Madness (Maygay) (EPOCH) (2.1, set 5)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cor2, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Coronation Street 2 (Maygay) (EPOCH) (3.7, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cor2a, ep_cor2, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Coronation Street 2 (Maygay) (EPOCH) (3.7, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cor2b, ep_cor2, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Coronation Street 2 (Maygay) (EPOCH) (3.8, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cor2c, ep_cor2, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Coronation Street 2 (Maygay) (EPOCH) (3.8, set 4)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cor2, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Coronation Street 2 (Maygay) (EPOCH) (3.7, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cor2a, ep_cor2, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Coronation Street 2 (Maygay) (EPOCH) (3.7, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cor2b, ep_cor2, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Coronation Street 2 (Maygay) (EPOCH) (3.8, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cor2c, ep_cor2, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Coronation Street 2 (Maygay) (EPOCH) (3.8, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cormn, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Coronation Street Monopoly Club (Maygay) (EPOCH) (1.7, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cormna, ep_cormn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Coronation Street Monopoly Club (Maygay) (EPOCH) (1.7, set 2)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cormn, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Coronation Street Monopoly Club (Maygay) (EPOCH) (1.7, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cormna, ep_cormn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Coronation Street Monopoly Club (Maygay) (EPOCH) (1.7, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cycl, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cyclone Club (Maygay) (EPOCH) (3.1, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cycla, ep_cycl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cyclone Club (Maygay) (EPOCH) (3.1, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cyclb, ep_cycl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cyclone Club (Maygay) (EPOCH) (2.1, set 3)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cycl, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cyclone Club (Maygay) (EPOCH) (3.1, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cycla, ep_cycl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cyclone Club (Maygay) (EPOCH) (3.1, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cyclb, ep_cycl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cyclone Club (Maygay) (EPOCH) (2.1, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
// these are dated 2001 with a MMLNFOTG string (game CA000727)
-GAME( 2001, ep_fgods, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Fruit Of The Gods (Maygay) (EPOCH) (1.2, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2001, ep_fgodsa, ep_fgods, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Fruit Of The Gods (Maygay) (EPOCH) (1.2, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2001, ep_fgodsb, ep_fgods, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Fruit Of The Gods (Maygay) (EPOCH) (2.2, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2001, ep_fgodsc, ep_fgods, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Fruit Of The Gods (Maygay) (EPOCH) (2.2, set 4)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 2001, ep_fgods, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Fruit Of The Gods (Maygay) (EPOCH) (1.2, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2001, ep_fgodsa, ep_fgods, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Fruit Of The Gods (Maygay) (EPOCH) (1.2, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2001, ep_fgodsb, ep_fgods, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Fruit Of The Gods (Maygay) (EPOCH) (2.2, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2001, ep_fgodsc, ep_fgods, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Fruit Of The Gods (Maygay) (EPOCH) (2.2, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
// below are dated 2002 with a UGLNFOTG string (still CA000727) versioning seems independent of above
-GAME( 2002, ep_fgodsd, ep_fgods, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Fruit Of The Gods (Maygay) (EPOCH) (2.1, set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, ep_fgodse, ep_fgods, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Fruit Of The Gods (Maygay) (EPOCH) (3.2, set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, ep_fgodsf, ep_fgods, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Fruit Of The Gods (Maygay) (EPOCH) (1.1, set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, ep_fgodsg, ep_fgods, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Fruit Of The Gods (Maygay) (EPOCH) (1.1, set 8)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_fgodsd, ep_fgods, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Fruit Of The Gods (Maygay) (EPOCH) (2.1, set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_fgodse, ep_fgods, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Fruit Of The Gods (Maygay) (EPOCH) (3.2, set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_fgodsf, ep_fgods, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Fruit Of The Gods (Maygay) (EPOCH) (1.1, set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_fgodsg, ep_fgods, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Fruit Of The Gods (Maygay) (EPOCH) (1.1, set 8)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 2002, ep_gldtp, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Gold Top (Maygay) (EPOCH) (1.1, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, ep_gldtpa, ep_gldtp, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Gold Top (Maygay) (EPOCH) (1.1, set 2)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_gldtp, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Gold Top (Maygay) (EPOCH) (1.1, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_gldtpa, ep_gldtp, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Gold Top (Maygay) (EPOCH) (1.1, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
// CA000782 GREATESCAPE
-GAME( 2002, ep_gesc2, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Great Escape 2 (Maygay) (EPOCH) (2.1, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, ep_gesc2a, ep_gesc2, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Great Escape 2 (Maygay) (EPOCH) (2.1, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, ep_gresc, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Great Escape (Maygay) (EPOCH) (1.1, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, ep_gresca, ep_gresc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Great Escape (Maygay) (EPOCH) (1.1, set 2)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_gesc2, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Great Escape 2 (Maygay) (EPOCH) (2.1, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_gesc2a, ep_gesc2, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Great Escape 2 (Maygay) (EPOCH) (2.1, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_gresc, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Great Escape (Maygay) (EPOCH) (1.1, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_gresca, ep_gresc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Great Escape (Maygay) (EPOCH) (1.1, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
// CC000043 CLUB ESCAPE
-GAME( 1999, ep_geclb, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Great Escape Club (Maygay) (EPOCH) (1.C, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1999, ep_geclba, ep_geclb, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Great Escape Club (Maygay) (EPOCH) (1.C, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1998, ep_geclbb, ep_geclb, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Great Escape Club (Maygay) (EPOCH) (1.9, set 3)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 1999, ep_geclb, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Great Escape Club (Maygay) (EPOCH) (1.C, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1999, ep_geclba, ep_geclb, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Great Escape Club (Maygay) (EPOCH) (1.C, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1998, ep_geclbb, ep_geclb, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Great Escape Club (Maygay) (EPOCH) (1.9, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 2002, ep_hhclb, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Haunted House Club (Maygay) (EPOCH) (1.4, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, ep_hhclba, ep_hhclb, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Haunted House Club (Maygay) (EPOCH) (1.4, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2000, ep_hhclbb, ep_hhclb, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Haunted House Club (Maygay) (EPOCH) (1.1, set 3)",GAME_IS_SKELETON_MECHANICAL ) // only one of the last roms differs from below
-GAME( 2000, ep_hhclbc, ep_hhclb, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Haunted House Club (Maygay) (EPOCH) (1.1, set 4)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_hhclb, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Haunted House Club (Maygay) (EPOCH) (1.4, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_hhclba, ep_hhclb, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Haunted House Club (Maygay) (EPOCH) (1.4, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2000, ep_hhclbb, ep_hhclb, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Haunted House Club (Maygay) (EPOCH) (1.1, set 3)",MACHINE_IS_SKELETON_MECHANICAL ) // only one of the last roms differs from below
+GAME( 2000, ep_hhclbc, ep_hhclb, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Haunted House Club (Maygay) (EPOCH) (1.1, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
// CA000623 HOMERS MELT
-GAME( 2000, ep_homer, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons - Homer's Meltdown (Maygay) (EPOCH) (2.A, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2000, ep_homeri, ep_homer, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons - Homer's Meltdown (Maygay) (EPOCH) (2.9, set 2)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 2000, ep_homer, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons - Homer's Meltdown (Maygay) (EPOCH) (2.A, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2000, ep_homeri, ep_homer, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons - Homer's Meltdown (Maygay) (EPOCH) (2.9, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
// CA000623 MELTDOWN lt
-GAME( 2002, ep_homera, ep_homer, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons - Homer's Meltdown (Maygay) (EPOCH) (3.2, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, ep_homerb, ep_homer, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons - Homer's Meltdown (Maygay) (EPOCH) (3.2, set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, ep_homerc, ep_homer, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons - Homer's Meltdown (Maygay) (EPOCH) (2.B, set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, ep_homerd, ep_homer, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons - Homer's Meltdown (Maygay) (EPOCH) (2.B, set 6)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_homera, ep_homer, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons - Homer's Meltdown (Maygay) (EPOCH) (3.2, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_homerb, ep_homer, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons - Homer's Meltdown (Maygay) (EPOCH) (3.2, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_homerc, ep_homer, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons - Homer's Meltdown (Maygay) (EPOCH) (2.B, set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_homerd, ep_homer, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons - Homer's Meltdown (Maygay) (EPOCH) (2.B, set 6)",MACHINE_IS_SKELETON_MECHANICAL )
// CA000555 HOMERS MELT
-GAME( 2003, ep_homere, ep_homer, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons - Homer's Meltdown (Maygay) (EPOCH) (3.1, set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2003, ep_homerf, ep_homer, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons - Homer's Meltdown (Maygay) (EPOCH) (3.1, set 8)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2003, ep_homerg, ep_homer, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons - Homer's Meltdown (Maygay) (EPOCH) (2.1, set 9)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2003, ep_homerh, ep_homer, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons - Homer's Meltdown (Maygay) (EPOCH) (2.1, set 10)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 2003, ep_homere, ep_homer, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons - Homer's Meltdown (Maygay) (EPOCH) (3.1, set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2003, ep_homerf, ep_homer, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons - Homer's Meltdown (Maygay) (EPOCH) (3.1, set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2003, ep_homerg, ep_homer, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons - Homer's Meltdown (Maygay) (EPOCH) (2.1, set 9)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2003, ep_homerh, ep_homer, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons - Homer's Meltdown (Maygay) (EPOCH) (2.1, set 10)",MACHINE_IS_SKELETON_MECHANICAL )
// versioning doesn't make much sense here
-GAME( 2002, ep_icebg, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Ice Burger (Maygay) (EPOCH) (1.4, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, ep_icebga, ep_icebg, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Ice Burger (Maygay) (EPOCH) (1.2, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, ep_icebgb, ep_icebg, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Ice Burger (Maygay) (EPOCH) (1.4, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, ep_icebgc, ep_icebg, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Ice Burger (Maygay) (EPOCH) (1.3, set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, ep_icebgd, ep_icebg, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Ice Burger (Maygay) (EPOCH) (1.1, set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, ep_icebge, ep_icebg, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Ice Burger (Maygay) (EPOCH) (1.1, set 6)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_icebg, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Ice Burger (Maygay) (EPOCH) (1.4, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_icebga, ep_icebg, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Ice Burger (Maygay) (EPOCH) (1.2, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_icebgb, ep_icebg, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Ice Burger (Maygay) (EPOCH) (1.4, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_icebgc, ep_icebg, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Ice Burger (Maygay) (EPOCH) (1.3, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_icebgd, ep_icebg, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Ice Burger (Maygay) (EPOCH) (1.1, set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_icebge, ep_icebg, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Ice Burger (Maygay) (EPOCH) (1.1, set 6)",MACHINE_IS_SKELETON_MECHANICAL )
// these have 2003 dates, despite being versioned lower?
-GAME( 2003, ep_icebgf, ep_icebg, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Ice Burger (Maygay) (EPOCH) (1.3, set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2003, ep_icebgg, ep_icebg, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Ice Burger (Maygay) (EPOCH) (1.3, set 8)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2003, ep_icebgh, ep_icebg, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Ice Burger (Maygay) (EPOCH) (1.4, set 9)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2003, ep_icebgi, ep_icebg, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Ice Burger (Maygay) (EPOCH) (1.4, set 10)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 2003, ep_icebgf, ep_icebg, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Ice Burger (Maygay) (EPOCH) (1.3, set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2003, ep_icebgg, ep_icebg, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Ice Burger (Maygay) (EPOCH) (1.3, set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2003, ep_icebgh, ep_icebg, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Ice Burger (Maygay) (EPOCH) (1.4, set 9)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2003, ep_icebgi, ep_icebg, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Ice Burger (Maygay) (EPOCH) (1.4, set 10)",MACHINE_IS_SKELETON_MECHANICAL )
// CA000719 ITALIAN JOB
-GAME( 2002, ep_itjb2, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Italian Job 2 (Maygay) (EPOCH) (1.5, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, ep_itjb2a, ep_itjb2, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Italian Job 2 (Maygay) (EPOCH) (1.5, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, ep_itjb2b, ep_itjb2, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Italian Job 2 (Maygay) (EPOCH) (2.3, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, ep_itjb2c, ep_itjb2, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Italian Job 2 (Maygay) (EPOCH) (2.3, set 4)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_itjb2, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Italian Job 2 (Maygay) (EPOCH) (1.5, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_itjb2a, ep_itjb2, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Italian Job 2 (Maygay) (EPOCH) (1.5, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_itjb2b, ep_itjb2, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Italian Job 2 (Maygay) (EPOCH) (2.3, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_itjb2c, ep_itjb2, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Italian Job 2 (Maygay) (EPOCH) (2.3, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
// same game code, but 2.1 is (c)2001 wheras 1.5 above is 2002...
-GAME( 2001, ep_ijob, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Italian Job (Maygay) (EPOCH, v2.1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2001, ep_ijoba, ep_ijob, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Italian Job (Maygay) (EPOCH, v1.1)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 2001, ep_ijob, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Italian Job (Maygay) (EPOCH, v2.1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2001, ep_ijoba, ep_ijob, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Italian Job (Maygay) (EPOCH, v1.1)",MACHINE_IS_SKELETON_MECHANICAL )
// CC000059 CLUBITALIAN
-GAME( 2002, ep_ijcl, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Italian Job Club (Maygay) (EPOCH) (2.6, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, ep_ijcla, ep_ijcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Italian Job Club (Maygay) (EPOCH) (2.5, set 2)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_ijcl, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Italian Job Club (Maygay) (EPOCH) (2.6, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_ijcla, ep_ijcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Italian Job Club (Maygay) (EPOCH) (2.5, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
// again build date vs build number doesn't make sense
-GAME( 2002, ep_jsttt, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Just The Ticket (Maygay) (EPOCH) (4.2, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, ep_jsttta, ep_jsttt, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Just The Ticket (Maygay) (EPOCH) (4.2, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, ep_jstttb, ep_jsttt, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Just The Ticket (Maygay) (EPOCH) (3.5, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, ep_jstttc, ep_jsttt, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Just The Ticket (Maygay) (EPOCH) (3.4, set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2003, ep_jstttd, ep_jsttt, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Just The Ticket (Maygay) (EPOCH) (3.5, set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2003, ep_jsttte, ep_jsttt, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Just The Ticket (Maygay) (EPOCH) (3.5, set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2003, ep_jstttf, ep_jsttt, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Just The Ticket (Maygay) (EPOCH) (3.6, set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2003, ep_jstttg, ep_jsttt, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Just The Ticket (Maygay) (EPOCH) (3.6, set 8)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_jsttt, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Just The Ticket (Maygay) (EPOCH) (4.2, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_jsttta, ep_jsttt, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Just The Ticket (Maygay) (EPOCH) (4.2, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_jstttb, ep_jsttt, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Just The Ticket (Maygay) (EPOCH) (3.5, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_jstttc, ep_jsttt, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Just The Ticket (Maygay) (EPOCH) (3.4, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2003, ep_jstttd, ep_jsttt, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Just The Ticket (Maygay) (EPOCH) (3.5, set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2003, ep_jsttte, ep_jsttt, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Just The Ticket (Maygay) (EPOCH) (3.5, set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2003, ep_jstttf, ep_jsttt, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Just The Ticket (Maygay) (EPOCH) (3.6, set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2003, ep_jstttg, ep_jsttt, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Just The Ticket (Maygay) (EPOCH) (3.6, set 8)",MACHINE_IS_SKELETON_MECHANICAL )
// CA000593 MARIO KART 'ELEGANCE'
-GAME( 1999, ep_mkart, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Mario Kart (Maygay) (EPOCH) (1.2, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1999, ep_mkarta, ep_mkart, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Mario Kart (Maygay) (EPOCH) (1.2, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1999, ep_mkartd, ep_mkart, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Mario Kart (Maygay) (EPOCH) (1.1, set 5)",GAME_IS_SKELETON_MECHANICAL ) // First Master For Elegance cab
+GAME( 1999, ep_mkart, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Mario Kart (Maygay) (EPOCH) (1.2, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1999, ep_mkarta, ep_mkart, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Mario Kart (Maygay) (EPOCH) (1.2, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1999, ep_mkartd, ep_mkart, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Mario Kart (Maygay) (EPOCH) (1.1, set 5)",MACHINE_IS_SKELETON_MECHANICAL ) // First Master For Elegance cab
// CA000580 MARIOKART 'EPOCH APOLLO'
-GAME( 1999, ep_mkartb, ep_mkart, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Mario Kart (Maygay) (EPOCH) (1.6, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1999, ep_mkartc, ep_mkart, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Mario Kart (Maygay) (EPOCH) (1.6, set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1999, ep_mkarte, ep_mkart, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Mario Kart (Maygay) (EPOCH) (1.5, set 6)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 1999, ep_mkartb, ep_mkart, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Mario Kart (Maygay) (EPOCH) (1.6, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1999, ep_mkartc, ep_mkart, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Mario Kart (Maygay) (EPOCH) (1.6, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1999, ep_mkarte, ep_mkart, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Mario Kart (Maygay) (EPOCH) (1.5, set 6)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 1998, ep_midas, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Midas Touch Club (Maygay) (EPOCH) (1.1, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1998, ep_midasa, ep_midas, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Midas Touch Club (Maygay) (EPOCH) (1.1, set 2)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 1998, ep_midas, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Midas Touch Club (Maygay) (EPOCH) (1.1, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1998, ep_midasa, ep_midas, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Midas Touch Club (Maygay) (EPOCH) (1.1, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
// CA000612 MONTE CARLO 'ELEGANCE'
-GAME( 199?, ep_monbs, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Monte Carlo Or Bust (Maygay) (EPOCH) (1.2, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_monbsa, ep_monbs, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Monte Carlo Or Bust (Maygay) (EPOCH) (1.2, set 2)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_monbs, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Monte Carlo Or Bust (Maygay) (EPOCH) (1.2, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_monbsa, ep_monbs, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Monte Carlo Or Bust (Maygay) (EPOCH) (1.2, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_mrmus, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Mr Muscle (Maygay) (EPOCH) (1.2, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_mrmusa, ep_mrmus, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Mr Muscle (Maygay) (EPOCH) (1.2, set 2)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_mrmus, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Mr Muscle (Maygay) (EPOCH) (1.2, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_mrmusa, ep_mrmus, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Mr Muscle (Maygay) (EPOCH) (1.2, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_nuns, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Nuns Of Navarone (Maygay) (EPOCH) (2.4, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_nunsa, ep_nuns, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Nuns Of Navarone (Maygay) (EPOCH) (2.4, set 2)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_nuns, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Nuns Of Navarone (Maygay) (EPOCH) (2.4, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_nunsa, ep_nuns, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Nuns Of Navarone (Maygay) (EPOCH) (2.4, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_otm, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Over The Moon (Maygay) (EPOCH) (1.2, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_otma, ep_otm, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Over The Moon (Maygay) (EPOCH) (1.2, set 2)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_otm, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Over The Moon (Maygay) (EPOCH) (1.2, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_otma, ep_otm, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Over The Moon (Maygay) (EPOCH) (1.2, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
// messy headers..
-GAME( 199?, ep_ozzie, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Ozzie Ozzie Ozzie (Maygay) (EPOCH) (2.Z, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_ozziea, ep_ozzie, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Ozzie Ozzie Ozzie (Maygay) (EPOCH) ( .2, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_ozzieb, ep_ozzie, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Ozzie Ozzie Ozzie (Maygay) (EPOCH) (5.J, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_ozziec, ep_ozzie, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Ozzie Ozzie Ozzie (Maygay) (EPOCH) (6.J, set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_ozzied, ep_ozzie, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Ozzie Ozzie Ozzie (Maygay) (EPOCH) (1.1, set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_ozziee, ep_ozzie, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Ozzie Ozzie Ozzie (Maygay) (EPOCH) (1.1, set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_ozzief, ep_ozzie, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Ozzie Ozzie Ozzie (Maygay) (EPOCH) (2.Z, set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_ozzieg, ep_ozzie, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Ozzie Ozzie Ozzie (Maygay) (EPOCH) (0.2, set 8)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_ozzieh, ep_ozzie, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Ozzie Ozzie Ozzie (Maygay) (EPOCH) (0.2, set 9)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_pascl, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Passport To Riches Classic Club (Maygay) (EPOCH) (1.2, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_pascla, ep_pascl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Passport To Riches Classic Club (Maygay) (EPOCH) (1.2, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_passpb, ep_pascl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Passport To Riches Classic Club (Maygay) (EPOCH) (1.3, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_passpc, ep_pascl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Passport To Riches Classic Club (Maygay) (EPOCH) (1.3, set 4)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_passp, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Passport To Riches Club (Maygay) (EPOCH) (1.2, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_passpa, ep_passp, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Passport To Riches Club (Maygay) (EPOCH) (1.2, set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_baskr, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Pounds Of The Baskervilles (Maygay) (EPOCH) (1.7, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_baskra, ep_baskr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Pounds Of The Baskervilles (Maygay) (EPOCH) (2.2, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_baskrb, ep_baskr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Pounds Of The Baskervilles (Maygay) (EPOCH) (2.2, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_baskrc, ep_baskr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Pounds Of The Baskervilles (Maygay) (EPOCH) (1.7, set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_baskrd, ep_baskr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Pounds Of The Baskervilles (Maygay) (EPOCH) (2.1, set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_baskre, ep_baskr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Pounds Of The Baskervilles (Maygay) (EPOCH) (1.5, set 6)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_rags, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Rags To Riches Club (Maygay) (EPOCH) (1.10, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_ragsa, ep_rags, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Rags To Riches Club (Maygay) (EPOCH) (1.10, set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_roost, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Roosters Millions (Maygay) (EPOCH) (1.2, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_roosta, ep_roost, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Roosters Millions (Maygay) (EPOCH) (1.2, set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-
-GAME( 2002, ep_secag, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Secret Agent (Maygay) (EPOCH) (1.5, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, ep_secaga, ep_secag, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Secret Agent (Maygay) (EPOCH) (1.5, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2000, ep_secagb, ep_secag, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Secret Agent (Maygay) (EPOCH) (1.3, set 3)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_simfr, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Simply Fruits (Maygay) (EPOCH) (1.2, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_simfra, ep_simfr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Simply Fruits (Maygay) (EPOCH) (1.2, set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 2002, ep_srwin, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Sir Winalot (Maygay) (EPOCH) (2.6, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, ep_srwina, ep_srwin, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Sir Winalot (Maygay) (EPOCH) (3.3, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, ep_srwinb, ep_srwin, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Sir Winalot (Maygay) (EPOCH) (3.3, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, ep_srwinc, ep_srwin, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Sir Winalot (Maygay) (EPOCH) (2.6, set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2000, ep_srwind, ep_srwin, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Sir Winalot (Maygay) (EPOCH) (2.1, set 5)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_spcbw, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Special Brew (Maygay) (EPOCH) (1.1, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_spcbwa, ep_spcbw, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Special Brew (Maygay) (EPOCH) (1.1, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_spcbwb, ep_spcbw, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Special Brew (Maygay) (EPOCH) (1.3, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_spcbwc, ep_spcbw, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Special Brew (Maygay) (EPOCH) (1.3, set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_spcbwd, ep_spcbw, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Special Brew (Maygay) (EPOCH) (1.5, set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_spcbwe, ep_spcbw, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Special Brew (Maygay) (EPOCH) (1.5, set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_spcbwf, ep_spcbw, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Special Brew (Maygay) (EPOCH) (1.6, set 7)",GAME_IS_SKELETON_MECHANICAL ) // version seems typoed as " .6" in ROM
-GAME( 199?, ep_spcbwg, ep_spcbw, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Special Brew (Maygay) (EPOCH) (1.6, set 8)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_spcbwh, ep_spcbw, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Special Brew (Maygay) (EPOCH) (1.4, set 9)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_spcbwi, ep_spcbw, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Special Brew (Maygay) (EPOCH) (1.4, set 10)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_spcbwj, ep_spcbw, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Special Brew (Maygay) (EPOCH) (1.8, set 11)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_spcbwk, ep_spcbw, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Special Brew (Maygay) (EPOCH) (1.8, set 12)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_spcbwl, ep_spcbw, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Special Brew (Maygay) (EPOCH) (1.9, set 13)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_spcbwm, ep_spcbw, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Special Brew (Maygay) (EPOCH) (1.9, set 14)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 2002, ep_spec, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Spectre (Maygay) (EPOCH) (1.6, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, ep_speca, ep_spec, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Spectre (Maygay) (EPOCH) (1.6, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1999, ep_specb, ep_spec, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Spectre (Maygay) (EPOCH) (1.3, set 3)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_step, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Stepping Stones (Maygay) (EPOCH) (1.0, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_stepa, ep_step, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Stepping Stones (Maygay) (EPOCH) (1.0, set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_survi, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Survival (Maygay) (EPOCH) (1.4, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_survia, ep_survi, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Survival (Maygay) (EPOCH) (1.4, set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_tits, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Title Shot Club (Maygay) (EPOCH) (1.7, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_titsa, ep_tits, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Title Shot Club (Maygay) (EPOCH) (1.7, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_titsb, ep_tits, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Title Shot Club (Maygay) (EPOCH) (1.5, set 3)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 2000, ep_tortr, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Torture TV (Maygay) (EPOCH) (1.3, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2000, ep_tortra, ep_tortr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Torture TV (Maygay) (EPOCH) (1.3, set 2)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_ozzie, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Ozzie Ozzie Ozzie (Maygay) (EPOCH) (2.Z, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_ozziea, ep_ozzie, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Ozzie Ozzie Ozzie (Maygay) (EPOCH) ( .2, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_ozzieb, ep_ozzie, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Ozzie Ozzie Ozzie (Maygay) (EPOCH) (5.J, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_ozziec, ep_ozzie, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Ozzie Ozzie Ozzie (Maygay) (EPOCH) (6.J, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_ozzied, ep_ozzie, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Ozzie Ozzie Ozzie (Maygay) (EPOCH) (1.1, set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_ozziee, ep_ozzie, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Ozzie Ozzie Ozzie (Maygay) (EPOCH) (1.1, set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_ozzief, ep_ozzie, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Ozzie Ozzie Ozzie (Maygay) (EPOCH) (2.Z, set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_ozzieg, ep_ozzie, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Ozzie Ozzie Ozzie (Maygay) (EPOCH) (0.2, set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_ozzieh, ep_ozzie, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Ozzie Ozzie Ozzie (Maygay) (EPOCH) (0.2, set 9)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_pascl, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Passport To Riches Classic Club (Maygay) (EPOCH) (1.2, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_pascla, ep_pascl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Passport To Riches Classic Club (Maygay) (EPOCH) (1.2, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_passpb, ep_pascl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Passport To Riches Classic Club (Maygay) (EPOCH) (1.3, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_passpc, ep_pascl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Passport To Riches Classic Club (Maygay) (EPOCH) (1.3, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_passp, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Passport To Riches Club (Maygay) (EPOCH) (1.2, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_passpa, ep_passp, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Passport To Riches Club (Maygay) (EPOCH) (1.2, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_baskr, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Pounds Of The Baskervilles (Maygay) (EPOCH) (1.7, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_baskra, ep_baskr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Pounds Of The Baskervilles (Maygay) (EPOCH) (2.2, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_baskrb, ep_baskr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Pounds Of The Baskervilles (Maygay) (EPOCH) (2.2, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_baskrc, ep_baskr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Pounds Of The Baskervilles (Maygay) (EPOCH) (1.7, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_baskrd, ep_baskr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Pounds Of The Baskervilles (Maygay) (EPOCH) (2.1, set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_baskre, ep_baskr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Pounds Of The Baskervilles (Maygay) (EPOCH) (1.5, set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_rags, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Rags To Riches Club (Maygay) (EPOCH) (1.10, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_ragsa, ep_rags, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Rags To Riches Club (Maygay) (EPOCH) (1.10, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_roost, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Roosters Millions (Maygay) (EPOCH) (1.2, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_roosta, ep_roost, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Roosters Millions (Maygay) (EPOCH) (1.2, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+
+GAME( 2002, ep_secag, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Secret Agent (Maygay) (EPOCH) (1.5, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_secaga, ep_secag, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Secret Agent (Maygay) (EPOCH) (1.5, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2000, ep_secagb, ep_secag, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Secret Agent (Maygay) (EPOCH) (1.3, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_simfr, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Simply Fruits (Maygay) (EPOCH) (1.2, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_simfra, ep_simfr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Simply Fruits (Maygay) (EPOCH) (1.2, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 2002, ep_srwin, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Sir Winalot (Maygay) (EPOCH) (2.6, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_srwina, ep_srwin, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Sir Winalot (Maygay) (EPOCH) (3.3, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_srwinb, ep_srwin, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Sir Winalot (Maygay) (EPOCH) (3.3, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_srwinc, ep_srwin, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Sir Winalot (Maygay) (EPOCH) (2.6, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2000, ep_srwind, ep_srwin, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Sir Winalot (Maygay) (EPOCH) (2.1, set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_spcbw, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Special Brew (Maygay) (EPOCH) (1.1, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_spcbwa, ep_spcbw, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Special Brew (Maygay) (EPOCH) (1.1, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_spcbwb, ep_spcbw, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Special Brew (Maygay) (EPOCH) (1.3, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_spcbwc, ep_spcbw, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Special Brew (Maygay) (EPOCH) (1.3, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_spcbwd, ep_spcbw, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Special Brew (Maygay) (EPOCH) (1.5, set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_spcbwe, ep_spcbw, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Special Brew (Maygay) (EPOCH) (1.5, set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_spcbwf, ep_spcbw, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Special Brew (Maygay) (EPOCH) (1.6, set 7)",MACHINE_IS_SKELETON_MECHANICAL ) // version seems typoed as " .6" in ROM
+GAME( 199?, ep_spcbwg, ep_spcbw, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Special Brew (Maygay) (EPOCH) (1.6, set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_spcbwh, ep_spcbw, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Special Brew (Maygay) (EPOCH) (1.4, set 9)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_spcbwi, ep_spcbw, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Special Brew (Maygay) (EPOCH) (1.4, set 10)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_spcbwj, ep_spcbw, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Special Brew (Maygay) (EPOCH) (1.8, set 11)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_spcbwk, ep_spcbw, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Special Brew (Maygay) (EPOCH) (1.8, set 12)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_spcbwl, ep_spcbw, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Special Brew (Maygay) (EPOCH) (1.9, set 13)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_spcbwm, ep_spcbw, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Special Brew (Maygay) (EPOCH) (1.9, set 14)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 2002, ep_spec, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Spectre (Maygay) (EPOCH) (1.6, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_speca, ep_spec, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Spectre (Maygay) (EPOCH) (1.6, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1999, ep_specb, ep_spec, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Spectre (Maygay) (EPOCH) (1.3, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_step, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Stepping Stones (Maygay) (EPOCH) (1.0, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_stepa, ep_step, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Stepping Stones (Maygay) (EPOCH) (1.0, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_survi, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Survival (Maygay) (EPOCH) (1.4, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_survia, ep_survi, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Survival (Maygay) (EPOCH) (1.4, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_tits, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Title Shot Club (Maygay) (EPOCH) (1.7, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_titsa, ep_tits, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Title Shot Club (Maygay) (EPOCH) (1.7, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_titsb, ep_tits, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Title Shot Club (Maygay) (EPOCH) (1.5, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 2000, ep_tortr, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Torture TV (Maygay) (EPOCH) (1.3, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2000, ep_tortra, ep_tortr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Torture TV (Maygay) (EPOCH) (1.3, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
// CA000715 TRIVIAL PUR
-GAME( 199?, ep_tp, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Trivial Pursuit (Maygay) (EPOCH) (3.5, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_tpa, ep_tp, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Trivial Pursuit (Maygay) (EPOCH) (3.5, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_tpb, ep_tp, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Trivial Pursuit (Maygay) (EPOCH) (2.1, set 3)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_tp, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Trivial Pursuit (Maygay) (EPOCH) (3.5, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_tpa, ep_tp, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Trivial Pursuit (Maygay) (EPOCH) (3.5, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_tpb, ep_tp, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Trivial Pursuit (Maygay) (EPOCH) (2.1, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
// same code as above?
-GAME( 199?, ep_tp2, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Trivial Pursuit 2 (Maygay) (EPOCH) (2.2, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_tp2a, ep_tp2, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Trivial Pursuit 2 (Maygay) (EPOCH) (2.2, set 2)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_tp2, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Trivial Pursuit 2 (Maygay) (EPOCH) (2.2, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_tp2a, ep_tp2, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Trivial Pursuit 2 (Maygay) (EPOCH) (2.2, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_tutcl, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Tutankhamun Club (Maygay) (EPOCH) (2.1, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_tutcla, ep_tutcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Tutankhamun Club (Maygay) (EPOCH) (2.1, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_tutclb, ep_tutcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Tutankhamun Club (Maygay) (EPOCH) (1.8, set 3)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_tutcl, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Tutankhamun Club (Maygay) (EPOCH) (2.1, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_tutcla, ep_tutcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Tutankhamun Club (Maygay) (EPOCH) (2.1, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_tutclb, ep_tutcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Tutankhamun Club (Maygay) (EPOCH) (1.8, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_21clb, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Twenty One Club (Maygay) (EPOCH) (3.2, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_21clba, ep_21clb, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Twenty One Club (Maygay) (EPOCH) (3.2, set 2)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_21clb, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Twenty One Club (Maygay) (EPOCH) (3.2, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_21clba, ep_21clb, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Twenty One Club (Maygay) (EPOCH) (3.2, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 2002, ep_xspot, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "X Marks The Spot (Maygay) (EPOCH) (1.5, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, ep_xspota, ep_xspot, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "X Marks The Spot (Maygay) (EPOCH) (1.5, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1999, ep_xspotb, ep_xspot, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "X Marks The Spot (Maygay) (EPOCH) (1.4, set 3)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_xspot, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "X Marks The Spot (Maygay) (EPOCH) (1.5, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_xspota, ep_xspot, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "X Marks The Spot (Maygay) (EPOCH) (1.5, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1999, ep_xspotb, ep_xspot, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "X Marks The Spot (Maygay) (EPOCH) (1.4, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_bathl, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Bat Outa Hell (Global) (EPOCH) (2.1, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_bathla, ep_bathl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Bat Outa Hell (Global) (EPOCH) (2.1, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_bathlb, ep_bathl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Bat Outa Hell (Global) (EPOCH) (2.2, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_bathlc, ep_bathl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Bat Outa Hell (Global) (EPOCH) (2.2, set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_bathld, ep_bathl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Bat Outa Hell (Global) (EPOCH) (3.1, set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_bathle, ep_bathl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Bat Outa Hell (Global) (EPOCH) (3.1, set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_bathlf, ep_bathl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Bat Outa Hell (Global) (EPOCH) (4.1, set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_bathlg, ep_bathl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Bat Outa Hell (Global) (EPOCH) (4.1, set 8)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_bathlh, ep_bathl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Bat Outa Hell (Global) (EPOCH) (3.3, set 9)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_bathl, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Bat Outa Hell (Global) (EPOCH) (2.1, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_bathla, ep_bathl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Bat Outa Hell (Global) (EPOCH) (2.1, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_bathlb, ep_bathl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Bat Outa Hell (Global) (EPOCH) (2.2, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_bathlc, ep_bathl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Bat Outa Hell (Global) (EPOCH) (2.2, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_bathld, ep_bathl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Bat Outa Hell (Global) (EPOCH) (3.1, set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_bathle, ep_bathl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Bat Outa Hell (Global) (EPOCH) (3.1, set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_bathlf, ep_bathl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Bat Outa Hell (Global) (EPOCH) (4.1, set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_bathlg, ep_bathl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Bat Outa Hell (Global) (EPOCH) (4.1, set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_bathlh, ep_bathl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Bat Outa Hell (Global) (EPOCH) (3.3, set 9)",MACHINE_IS_SKELETON_MECHANICAL )
// CA000720 BEAVER LAS (2.3 has a newer date than 3.3...)
-GAME( 2001, ep_beav3, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Beaver Las Vegas (Global) (EPOCH) (CA000720, 3.3, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2001, ep_beav3a, ep_beav3, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Beaver Las Vegas (Global) (EPOCH) (CA000720, 3.3, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, ep_beav3b, ep_beav3, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Beaver Las Vegas (Global) (EPOCH) (CA000720, 4.2, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, ep_beav3c, ep_beav3, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Beaver Las Vegas (Global) (EPOCH) (CA000720, 4.2, set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, ep_beavrn, ep_beav3, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Beaver Las Vegas (Global) (EPOCH) (CA000720, 2.3, set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, ep_beavro, ep_beav3, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Beaver Las Vegas (Global) (EPOCH) (CA000720, 2.3, set 6)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 2001, ep_beav3, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Beaver Las Vegas (Global) (EPOCH) (CA000720, 3.3, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2001, ep_beav3a, ep_beav3, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Beaver Las Vegas (Global) (EPOCH) (CA000720, 3.3, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_beav3b, ep_beav3, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Beaver Las Vegas (Global) (EPOCH) (CA000720, 4.2, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_beav3c, ep_beav3, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Beaver Las Vegas (Global) (EPOCH) (CA000720, 4.2, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_beavrn, ep_beav3, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Beaver Las Vegas (Global) (EPOCH) (CA000720, 2.3, set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_beavro, ep_beav3, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Beaver Las Vegas (Global) (EPOCH) (CA000720, 2.3, set 6)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_bvruc, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Beaver Uncovered (Global) (EPOCH) (1.4, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_bvruca, ep_bvruc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Beaver Uncovered (Global) (EPOCH) (1.4, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_bvrucb, ep_bvruc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Beaver Uncovered (Global) (EPOCH) (1.6, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_bvrucc, ep_bvruc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Beaver Uncovered (Global) (EPOCH) (2.3, set 4)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_bvruc, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Beaver Uncovered (Global) (EPOCH) (1.4, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_bvruca, ep_bvruc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Beaver Uncovered (Global) (EPOCH) (1.4, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_bvrucb, ep_bvruc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Beaver Uncovered (Global) (EPOCH) (1.6, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_bvrucc, ep_bvruc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Beaver Uncovered (Global) (EPOCH) (2.3, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cbrun, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cannonball Run (Global) (EPOCH) (2.2, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cbruna, ep_cbrun, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cannonball Run (Global) (EPOCH) (2.2, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cbrunb, ep_cbrun, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cannonball Run (Global) (EPOCH) (2.4, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cbrunc, ep_cbrun, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cannonball Run (Global) (EPOCH) (2.4, set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cbrund, ep_cbrun, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cannonball Run (Global) (EPOCH) (3.1, set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cbrune, ep_cbrun, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cannonball Run (Global) (EPOCH) (3.1, set 6)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cbrun, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cannonball Run (Global) (EPOCH) (2.2, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cbruna, ep_cbrun, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cannonball Run (Global) (EPOCH) (2.2, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cbrunb, ep_cbrun, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cannonball Run (Global) (EPOCH) (2.4, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cbrunc, ep_cbrun, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cannonball Run (Global) (EPOCH) (2.4, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cbrund, ep_cbrun, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cannonball Run (Global) (EPOCH) (3.1, set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cbrune, ep_cbrun, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cannonball Run (Global) (EPOCH) (3.1, set 6)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_ctc, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cut Throat Cash (Global) (EPOCH) (1.2, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_ctca, ep_ctc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cut Throat Cash (Global) (EPOCH) (1.2, set 2)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_ctc, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cut Throat Cash (Global) (EPOCH) (1.2, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_ctca, ep_ctc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cut Throat Cash (Global) (EPOCH) (1.2, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_ddq, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Dungeons & Drag Queens (Global) (EPOCH) (1.4, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_ddqa, ep_ddq, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Dungeons & Drag Queens (Global) (EPOCH) (1.4, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_ddqb, ep_ddq, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Dungeons & Drag Queens (Global) (EPOCH) (2.1, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_ddqc, ep_ddq, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Dungeons & Drag Queens (Global) (EPOCH) (2.1, set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_ddqd, ep_ddq, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Dungeons & Drag Queens (Global) (EPOCH) (2.2, set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_ddqe, ep_ddq, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Dungeons & Drag Queens (Global) (EPOCH) (2.2, set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_ddqf, ep_ddq, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Dungeons & Drag Queens (Global) (EPOCH) (2.4, set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_ddqg, ep_ddq, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Dungeons & Drag Queens (Global) (EPOCH) (2.4, set 8)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_ddqh, ep_ddq, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Dungeons & Drag Queens (Global) (EPOCH) (2.5, set 9)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_ddqi, ep_ddq, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Dungeons & Drag Queens (Global) (EPOCH) (2.5, set 10)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_ddq, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Dungeons & Drag Queens (Global) (EPOCH) (1.4, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_ddqa, ep_ddq, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Dungeons & Drag Queens (Global) (EPOCH) (1.4, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_ddqb, ep_ddq, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Dungeons & Drag Queens (Global) (EPOCH) (2.1, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_ddqc, ep_ddq, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Dungeons & Drag Queens (Global) (EPOCH) (2.1, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_ddqd, ep_ddq, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Dungeons & Drag Queens (Global) (EPOCH) (2.2, set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_ddqe, ep_ddq, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Dungeons & Drag Queens (Global) (EPOCH) (2.2, set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_ddqf, ep_ddq, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Dungeons & Drag Queens (Global) (EPOCH) (2.4, set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_ddqg, ep_ddq, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Dungeons & Drag Queens (Global) (EPOCH) (2.4, set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_ddqh, ep_ddq, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Dungeons & Drag Queens (Global) (EPOCH) (2.5, set 9)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_ddqi, ep_ddq, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Dungeons & Drag Queens (Global) (EPOCH) (2.5, set 10)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_greed, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Greed (Global) (EPOCH) (1.3, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_greeda, ep_greed, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Greed (Global) (EPOCH) (1.3, set 2)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_greed, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Greed (Global) (EPOCH) (1.3, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_greeda, ep_greed, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Greed (Global) (EPOCH) (1.3, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
// CA000702 HI SPIRITS
-GAME( 199?, ep_hispr, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Hi Spirits (Global) (EPOCH) (1.A, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_hispra, ep_hispr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Hi Spirits (Global) (EPOCH) (1.A, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_hisprb, ep_hispr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Hi Spirits (Global) (EPOCH) (4.2, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_hisprc, ep_hispr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Hi Spirits (Global) (EPOCH) (4.2, set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_hisprd, ep_hispr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Hi Spirits (Global) (EPOCH) (3.2, set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_hispre, ep_hispr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Hi Spirits (Global) (EPOCH) (3.2, set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_spirt, ep_hispr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Hi Spirits (Global) (EPOCH) (2.3, set 1)",GAME_IS_SKELETON_MECHANICAL ) // same game code
-GAME( 199?, ep_spirta, ep_hispr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Hi Spirits (Global) (EPOCH) (2.3, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_spirtb, ep_hispr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Hi Spirits (Global) (EPOCH) (4.1, set 3)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_pkni, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Phoenix Knights (Global) (EPOCH) (1.1, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_pknia, ep_pkni, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Phoenix Knights (Global) (EPOCH) (1.1, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_pknib, ep_pkni, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Phoenix Knights (Global) (EPOCH) (1.3, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_pknic, ep_pkni, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Phoenix Knights (Global) (EPOCH) (1.3, set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_pknid, ep_pkni, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Phoenix Knights (Global) (EPOCH) (1.4, set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_pknie, ep_pkni, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Phoenix Knights (Global) (EPOCH) (1.7, set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_pknif, ep_pkni, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Phoenix Knights (Global) (EPOCH) (1.7, set 7)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_snbev, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Saturday Night Beaver (Global) (EPOCH) (1.8, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_snbeva, ep_snbev, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Saturday Night Beaver (Global) (EPOCH) (1.8, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_snbevb, ep_snbev, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Saturday Night Beaver (Global) (EPOCH) (1.9, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_snbevc, ep_snbev, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Saturday Night Beaver (Global) (EPOCH) (1.9, set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_snbevd, ep_snbev, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Saturday Night Beaver (Global) (EPOCH) (2.1, set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_snbeve, ep_snbev, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Saturday Night Beaver (Global) (EPOCH) (2.1, set 6)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_spook, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Spooky Hollow (Global) (EPOCH) (1.3, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_spooka, ep_spook, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Spooky Hollow (Global) (EPOCH) (1.3, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_spookb, ep_spook, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Spooky Hollow (Global) (EPOCH) (2.7, set 3)",GAME_IS_SKELETON_MECHANICAL )
-
-
-GAME( 199?, ep_milhr, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Who Wants To Be A Millionhare? (Global) (EPOCH) (1.2, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_milhra, ep_milhr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Who Wants To Be A Millionhare? (Global) (EPOCH) (1.2, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_milhrb, ep_milhr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Who Wants To Be A Millionhare? (Global) (EPOCH) (1.3, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_milhrc, ep_milhr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Who Wants To Be A Millionhare? (Global) (EPOCH) (1.3, set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_milhrd, ep_milhr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Who Wants To Be A Millionhare? (Global) (EPOCH) (1.6, set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_milhre, ep_milhr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Who Wants To Be A Millionhare? (Global) (EPOCH) (1.6, set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_milhrf, ep_milhr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Who Wants To Be A Millionhare? (Global) (EPOCH) (1.9, set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_milhrg, ep_milhr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Who Wants To Be A Millionhare? (Global) (EPOCH) (1.9, set 8)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_bbars, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Balloon Bars (Maygay) (EPOCH) (1.2, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_bbarsa, ep_bbars, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Balloon Bars (Maygay) (EPOCH) (1.2, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_bbarsb, ep_bbars, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Balloon Bars (Maygay) (EPOCH) (2.0, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_bbarsc, ep_bbars, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Balloon Bars (Maygay) (EPOCH) (2.0, set 4)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_cslay, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cash Slayer (Global) (EPOCH) (1.4, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cslaya, ep_cslay, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cash Slayer (Global) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL ) // incomplete pair
-
-GAME( 199?, ep_monky, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Monkey Business (Global) (EPOCH) (1.4, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_monkya, ep_monky, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Monkey Business (Global) (EPOCH) (1.5, set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 1999, ep_lug, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "London Underground (Maygay) (EPOCH) (2.4, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1999, ep_luga, ep_lug, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "London Underground (Maygay) (EPOCH) (2.9, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, ep_lugb, ep_lug, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "London Underground (Maygay) (EPOCH) (3.1, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 2002, ep_lugc, ep_lug, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "London Underground (Maygay) (EPOCH) (3.1, set 4)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_crzbn, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Crazy Bingo (Maygay) (EPOCH) (1.1, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_crzbna, ep_crzbn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Crazy Bingo (Maygay) (EPOCH) (1.1, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_crzbnb, ep_crzbn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Crazy Bingo (Maygay) (EPOCH) (1.1 Gala, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_crzbnc, ep_crzbn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Crazy Bingo (Maygay) (EPOCH) (1.1 Gala, set 4)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_hispr, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Hi Spirits (Global) (EPOCH) (1.A, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_hispra, ep_hispr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Hi Spirits (Global) (EPOCH) (1.A, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_hisprb, ep_hispr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Hi Spirits (Global) (EPOCH) (4.2, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_hisprc, ep_hispr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Hi Spirits (Global) (EPOCH) (4.2, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_hisprd, ep_hispr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Hi Spirits (Global) (EPOCH) (3.2, set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_hispre, ep_hispr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Hi Spirits (Global) (EPOCH) (3.2, set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_spirt, ep_hispr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Hi Spirits (Global) (EPOCH) (2.3, set 1)",MACHINE_IS_SKELETON_MECHANICAL ) // same game code
+GAME( 199?, ep_spirta, ep_hispr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Hi Spirits (Global) (EPOCH) (2.3, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_spirtb, ep_hispr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Hi Spirits (Global) (EPOCH) (4.1, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_pkni, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Phoenix Knights (Global) (EPOCH) (1.1, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_pknia, ep_pkni, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Phoenix Knights (Global) (EPOCH) (1.1, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_pknib, ep_pkni, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Phoenix Knights (Global) (EPOCH) (1.3, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_pknic, ep_pkni, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Phoenix Knights (Global) (EPOCH) (1.3, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_pknid, ep_pkni, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Phoenix Knights (Global) (EPOCH) (1.4, set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_pknie, ep_pkni, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Phoenix Knights (Global) (EPOCH) (1.7, set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_pknif, ep_pkni, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Phoenix Knights (Global) (EPOCH) (1.7, set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_snbev, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Saturday Night Beaver (Global) (EPOCH) (1.8, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_snbeva, ep_snbev, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Saturday Night Beaver (Global) (EPOCH) (1.8, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_snbevb, ep_snbev, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Saturday Night Beaver (Global) (EPOCH) (1.9, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_snbevc, ep_snbev, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Saturday Night Beaver (Global) (EPOCH) (1.9, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_snbevd, ep_snbev, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Saturday Night Beaver (Global) (EPOCH) (2.1, set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_snbeve, ep_snbev, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Saturday Night Beaver (Global) (EPOCH) (2.1, set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_spook, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Spooky Hollow (Global) (EPOCH) (1.3, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_spooka, ep_spook, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Spooky Hollow (Global) (EPOCH) (1.3, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_spookb, ep_spook, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Spooky Hollow (Global) (EPOCH) (2.7, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+
+
+GAME( 199?, ep_milhr, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Who Wants To Be A Millionhare? (Global) (EPOCH) (1.2, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_milhra, ep_milhr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Who Wants To Be A Millionhare? (Global) (EPOCH) (1.2, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_milhrb, ep_milhr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Who Wants To Be A Millionhare? (Global) (EPOCH) (1.3, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_milhrc, ep_milhr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Who Wants To Be A Millionhare? (Global) (EPOCH) (1.3, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_milhrd, ep_milhr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Who Wants To Be A Millionhare? (Global) (EPOCH) (1.6, set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_milhre, ep_milhr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Who Wants To Be A Millionhare? (Global) (EPOCH) (1.6, set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_milhrf, ep_milhr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Who Wants To Be A Millionhare? (Global) (EPOCH) (1.9, set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_milhrg, ep_milhr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Who Wants To Be A Millionhare? (Global) (EPOCH) (1.9, set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_bbars, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Balloon Bars (Maygay) (EPOCH) (1.2, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_bbarsa, ep_bbars, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Balloon Bars (Maygay) (EPOCH) (1.2, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_bbarsb, ep_bbars, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Balloon Bars (Maygay) (EPOCH) (2.0, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_bbarsc, ep_bbars, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Balloon Bars (Maygay) (EPOCH) (2.0, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_cslay, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cash Slayer (Global) (EPOCH) (1.4, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cslaya, ep_cslay, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cash Slayer (Global) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL ) // incomplete pair
+
+GAME( 199?, ep_monky, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Monkey Business (Global) (EPOCH) (1.4, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_monkya, ep_monky, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Monkey Business (Global) (EPOCH) (1.5, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 1999, ep_lug, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "London Underground (Maygay) (EPOCH) (2.4, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1999, ep_luga, ep_lug, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "London Underground (Maygay) (EPOCH) (2.9, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_lugb, ep_lug, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "London Underground (Maygay) (EPOCH) (3.1, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 2002, ep_lugc, ep_lug, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "London Underground (Maygay) (EPOCH) (3.1, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_crzbn, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Crazy Bingo (Maygay) (EPOCH) (1.1, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_crzbna, ep_crzbn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Crazy Bingo (Maygay) (EPOCH) (1.1, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_crzbnb, ep_crzbn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Crazy Bingo (Maygay) (EPOCH) (1.1 Gala, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_crzbnc, ep_crzbn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Crazy Bingo (Maygay) (EPOCH) (1.1 Gala, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
// Z0000024 CASINOCR AZ
-GAME( 199?, ep_cascza, ep_cascz, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Crazy (Global) (EPOCH) (2.1, set 2)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cascza, ep_cascz, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Crazy (Global) (EPOCH) (2.1, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_wside, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Wildside (Global) (EPOCH) (1.2, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_wsidea, ep_wside, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Wildside (Global) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL ) // incomplete pair
+GAME( 199?, ep_wside, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Wildside (Global) (EPOCH) (1.2, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_wsidea, ep_wside, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Wildside (Global) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL ) // incomplete pair
-GAME( 199?, ep_imj, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "I'm A Jackpot (Global) (EPOCH) (1.5)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_imj, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "I'm A Jackpot (Global) (EPOCH) (1.5)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 1998, ep_party, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Party Party (Global) (EPOCH) (1.1)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 1998, ep_party, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Party Party (Global) (EPOCH) (1.1)",MACHINE_IS_SKELETON_MECHANICAL )
/* no header info */
-GAME( 199?, ep_dblim, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Double Impact (Maygay - Impulse) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_dblima, ep_dblim, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Double Impact (Maygay - Impulse) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_dblimb, ep_dblim, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Double Impact (Maygay - Impulse) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_dblimc, ep_dblim, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Double Impact (Maygay - Impulse) (EPOCH) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_dblimd, ep_dblim, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Double Impact (Maygay - Impulse) (EPOCH) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_itjb3, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Italian Job 3 (Maygay) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_itjb3a, ep_itjb3, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Italian Job 3 (Maygay) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_wipeo, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Wipeout (Maygay) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_wipeoa, ep_wipeo, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Wipeout (Maygay) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_wipeob, ep_wipeo, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Wipeout (Maygay) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_wipeoc, ep_wipeo, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Wipeout (Maygay) (EPOCH) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_wipeoe, ep_wipeo, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Wipeout (Maygay) (EPOCH) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_bbonz, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Bingo Bonanza (Maygay - Union) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_bbonza, ep_bbonz, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Bingo Bonanza (Maygay - Union) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_cahoy, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay - Eclipse?", "Cash Ahoy (Maygay - Eclipse?) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cahoya, ep_cahoy, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Ahoy (Maygay) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cahoyb, ep_cahoy, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Ahoy (Maygay) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_cock, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cock A Doodle Dosh (Maygay - Union) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cocka, ep_cock, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cock A Doodle Dosh (Maygay - Union) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cockb, ep_cock, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cock A Doodle Dosh (Maygay - Union) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cockc, ep_cock, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cock A Doodle Dosh (Maygay - Union) (EPOCH) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cockd, ep_cock, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cock A Doodle Dosh (Maygay - Union) (EPOCH) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cocke, ep_cock, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cock A Doodle Dosh (Maygay - Union) (EPOCH) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_duff, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons - Duff Beer Guide (Maygay) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_duffa, ep_duff, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons - Duff Beer Guide (Maygay) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_duffb, ep_duff, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons - Duff Beer Guide (Maygay) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_duffc, ep_duff, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons - Duff Beer Guide (Maygay) (EPOCH) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_flash, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Flashback (Maygay - Impulse) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_flasha, ep_flash, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Flashback (Maygay - Impulse) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_flashb, ep_flash, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Flashback (Maygay - Impulse) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_flashc, ep_flash, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Flashback (Maygay - Impulse) (EPOCH) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_flashd, ep_flash, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Flashback (Maygay - Impulse) (EPOCH) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_flashe, ep_flash, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Flashback (Maygay - Impulse) (EPOCH) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_flashf, ep_flash, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Flashback (Maygay - Impulse) (EPOCH) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_fortg, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Fortune & Glory (Maygay - Impulse) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_fortga, ep_fortg, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Fortune & Glory (Maygay - Impulse) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_fortgb, ep_fortg, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Fortune & Glory (Maygay - Impulse) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_fran, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Frantic (Maygay) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_frana, ep_fran, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Frantic (Maygay) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_fnclb, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Fruit & Nudge Club (Maygay) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_fnclba, ep_fnclb, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Fruit & Nudge Club (Maygay) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_fullm, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Full Moon Fever (Maygay - Impulse) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_fullma, ep_fullm, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Full Moon Fever (Maygay - Impulse) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_fullmb, ep_fullm, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Full Moon Fever (Maygay - Impulse) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_fullmc, ep_fullm, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Full Moon Fever (Maygay - Impulse) (EPOCH) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_fullmd, ep_fullm, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Full Moon Fever (Maygay - Impulse) (EPOCH) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_fullme, ep_fullm, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Full Moon Fever (Maygay - Impulse) (EPOCH) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_fullmf, ep_fullm, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Full Moon Fever (Maygay - Impulse) (EPOCH) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_funny, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Funny Money (Maygay) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_funnya, ep_funny, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Funny Money (Maygay) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_funnyb, ep_funny, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Funny Money (Maygay) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_funnyc, ep_funny, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Funny Money (Maygay) (EPOCH) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_funnyd, ep_funny, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Funny Money (Maygay) (EPOCH) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_funnye, ep_funny, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Funny Money (Maygay) (EPOCH) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_funnyf, ep_funny, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Funny Money (Maygay) (EPOCH) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_funnyg, ep_funny, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Funny Money (Maygay) (EPOCH) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_geron, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Geronimo (Maygay - Impulse) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_gerona, ep_geron, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Geronimo (Maygay - Impulse) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_geronb, ep_geron, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Geronimo (Maygay - Impulse) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_geronc, ep_geron, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Geronimo (Maygay - Impulse) (EPOCH) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_gerond, ep_geron, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Geronimo (Maygay - Impulse) (EPOCH) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_gerone, ep_geron, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Geronimo (Maygay - Impulse) (EPOCH) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_gridr, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Gridrunner (Maygay - Impulse) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_gridra, ep_gridr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Gridrunner (Maygay - Impulse) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_gridrb, ep_gridr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Gridrunner (Maygay - Impulse) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_gridrc, ep_gridr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Gridrunner (Maygay - Impulse) (EPOCH) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_gridrd, ep_gridr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Gridrunner (Maygay - Impulse) (EPOCH) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_hvns, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Heavens Above (Maygay) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_hvnsa, ep_hvns, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Heavens Above (Maygay) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_highv, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "High Voltage (Maygay - Impulse) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_highva, ep_highv, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "High Voltage (Maygay - Impulse) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_highvb, ep_highv, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "High Voltage (Maygay - Impulse) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_highvc, ep_highv, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "High Voltage (Maygay - Impulse) (EPOCH) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_highvd, ep_highv, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "High Voltage (Maygay - Impulse) (EPOCH) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_highve, ep_highv, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "High Voltage (Maygay - Impulse) (EPOCH) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_highvf, ep_highv, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "High Voltage (Maygay - Impulse) (EPOCH) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_hogmn, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Hog Money (Maygay - Impulse) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_hogmna, ep_hogmn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Hog Money (Maygay - Impulse) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_hogmnb, ep_hogmn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Hog Money (Maygay - Impulse) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_htdgs, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Hot Dogs (Maygay) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_htdgsa, ep_htdgs, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Hot Dogs (Maygay) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_hubbl, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Hubble Bubble (Maygay) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_hubbla, ep_hubbl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Hubble Bubble (Maygay) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_huric, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Hurricane (Maygay - Impulse) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_hurica, ep_huric, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Hurricane (Maygay - Impulse) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_huricb, ep_huric, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Hurricane (Maygay - Impulse) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_huricc, ep_huric, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Hurricane (Maygay - Impulse) (EPOCH) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_huricd, ep_huric, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Hurricane (Maygay - Impulse) (EPOCH) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_hurice, ep_huric, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Hurricane (Maygay - Impulse) (EPOCH) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_hur, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Hurricane (Global) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_hura, ep_hur, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Hurricane (Global) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_hurb, ep_hur, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Hurricane (Global) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_hyst, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Hysteria (Maygay - Impulse) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_hysta, ep_hyst, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Hysteria (Maygay - Impulse) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_manic, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Manic Miner (Maygay - Impulse) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_manica, ep_manic, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Manic Miner (Maygay - Impulse) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_manicb, ep_manic, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Manic Miner (Maygay - Impulse) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_manicc, ep_manic, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Manic Miner (Maygay - Impulse) (EPOCH) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_manicd, ep_manic, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Manic Miner (Maygay - Impulse) (EPOCH) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_manice, ep_manic, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Manic Miner (Maygay - Impulse) (EPOCH) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_manicf, ep_manic, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Manic Miner (Maygay - Impulse) (EPOCH) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_matrx, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Matrix (Maygay - Impulse) (EPOCH)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_mwom, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Mortal Wombat (Maygay) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_mwoma, ep_mwom, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Mortal Wombat (Maygay) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_mwomb, ep_mwom, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Mortal Wombat (Maygay) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_mwomc, ep_mwom, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Mortal Wombat (Maygay) (EPOCH) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_mwomd, ep_mwom, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Mortal Wombat (Maygay) (EPOCH) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_otmcl, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Over The Moon Club (Maygay) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_otmcla, ep_otmcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Over The Moon Club (Maygay) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_dblim, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Double Impact (Maygay - Impulse) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_dblima, ep_dblim, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Double Impact (Maygay - Impulse) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_dblimb, ep_dblim, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Double Impact (Maygay - Impulse) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_dblimc, ep_dblim, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Double Impact (Maygay - Impulse) (EPOCH) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_dblimd, ep_dblim, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Double Impact (Maygay - Impulse) (EPOCH) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_itjb3, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Italian Job 3 (Maygay) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_itjb3a, ep_itjb3, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Italian Job 3 (Maygay) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_wipeo, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Wipeout (Maygay) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_wipeoa, ep_wipeo, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Wipeout (Maygay) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_wipeob, ep_wipeo, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Wipeout (Maygay) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_wipeoc, ep_wipeo, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Wipeout (Maygay) (EPOCH) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_wipeoe, ep_wipeo, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Wipeout (Maygay) (EPOCH) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_bbonz, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Bingo Bonanza (Maygay - Union) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_bbonza, ep_bbonz, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Bingo Bonanza (Maygay - Union) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_cahoy, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay - Eclipse?", "Cash Ahoy (Maygay - Eclipse?) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cahoya, ep_cahoy, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Ahoy (Maygay) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cahoyb, ep_cahoy, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cash Ahoy (Maygay) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_cock, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cock A Doodle Dosh (Maygay - Union) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cocka, ep_cock, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cock A Doodle Dosh (Maygay - Union) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cockb, ep_cock, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cock A Doodle Dosh (Maygay - Union) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cockc, ep_cock, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cock A Doodle Dosh (Maygay - Union) (EPOCH) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cockd, ep_cock, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cock A Doodle Dosh (Maygay - Union) (EPOCH) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cocke, ep_cock, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cock A Doodle Dosh (Maygay - Union) (EPOCH) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_duff, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons - Duff Beer Guide (Maygay) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_duffa, ep_duff, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons - Duff Beer Guide (Maygay) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_duffb, ep_duff, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons - Duff Beer Guide (Maygay) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_duffc, ep_duff, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "The Simpsons - Duff Beer Guide (Maygay) (EPOCH) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_flash, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Flashback (Maygay - Impulse) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_flasha, ep_flash, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Flashback (Maygay - Impulse) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_flashb, ep_flash, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Flashback (Maygay - Impulse) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_flashc, ep_flash, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Flashback (Maygay - Impulse) (EPOCH) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_flashd, ep_flash, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Flashback (Maygay - Impulse) (EPOCH) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_flashe, ep_flash, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Flashback (Maygay - Impulse) (EPOCH) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_flashf, ep_flash, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Flashback (Maygay - Impulse) (EPOCH) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_fortg, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Fortune & Glory (Maygay - Impulse) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_fortga, ep_fortg, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Fortune & Glory (Maygay - Impulse) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_fortgb, ep_fortg, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Fortune & Glory (Maygay - Impulse) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_fran, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Frantic (Maygay) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_frana, ep_fran, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Frantic (Maygay) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_fnclb, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Fruit & Nudge Club (Maygay) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_fnclba, ep_fnclb, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Fruit & Nudge Club (Maygay) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_fullm, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Full Moon Fever (Maygay - Impulse) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_fullma, ep_fullm, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Full Moon Fever (Maygay - Impulse) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_fullmb, ep_fullm, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Full Moon Fever (Maygay - Impulse) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_fullmc, ep_fullm, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Full Moon Fever (Maygay - Impulse) (EPOCH) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_fullmd, ep_fullm, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Full Moon Fever (Maygay - Impulse) (EPOCH) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_fullme, ep_fullm, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Full Moon Fever (Maygay - Impulse) (EPOCH) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_fullmf, ep_fullm, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Full Moon Fever (Maygay - Impulse) (EPOCH) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_funny, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Funny Money (Maygay) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_funnya, ep_funny, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Funny Money (Maygay) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_funnyb, ep_funny, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Funny Money (Maygay) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_funnyc, ep_funny, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Funny Money (Maygay) (EPOCH) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_funnyd, ep_funny, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Funny Money (Maygay) (EPOCH) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_funnye, ep_funny, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Funny Money (Maygay) (EPOCH) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_funnyf, ep_funny, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Funny Money (Maygay) (EPOCH) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_funnyg, ep_funny, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Funny Money (Maygay) (EPOCH) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_geron, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Geronimo (Maygay - Impulse) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_gerona, ep_geron, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Geronimo (Maygay - Impulse) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_geronb, ep_geron, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Geronimo (Maygay - Impulse) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_geronc, ep_geron, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Geronimo (Maygay - Impulse) (EPOCH) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_gerond, ep_geron, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Geronimo (Maygay - Impulse) (EPOCH) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_gerone, ep_geron, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Geronimo (Maygay - Impulse) (EPOCH) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_gridr, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Gridrunner (Maygay - Impulse) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_gridra, ep_gridr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Gridrunner (Maygay - Impulse) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_gridrb, ep_gridr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Gridrunner (Maygay - Impulse) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_gridrc, ep_gridr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Gridrunner (Maygay - Impulse) (EPOCH) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_gridrd, ep_gridr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Gridrunner (Maygay - Impulse) (EPOCH) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_hvns, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Heavens Above (Maygay) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_hvnsa, ep_hvns, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Heavens Above (Maygay) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_highv, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "High Voltage (Maygay - Impulse) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_highva, ep_highv, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "High Voltage (Maygay - Impulse) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_highvb, ep_highv, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "High Voltage (Maygay - Impulse) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_highvc, ep_highv, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "High Voltage (Maygay - Impulse) (EPOCH) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_highvd, ep_highv, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "High Voltage (Maygay - Impulse) (EPOCH) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_highve, ep_highv, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "High Voltage (Maygay - Impulse) (EPOCH) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_highvf, ep_highv, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "High Voltage (Maygay - Impulse) (EPOCH) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_hogmn, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Hog Money (Maygay - Impulse) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_hogmna, ep_hogmn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Hog Money (Maygay - Impulse) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_hogmnb, ep_hogmn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Hog Money (Maygay - Impulse) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_htdgs, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Hot Dogs (Maygay) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_htdgsa, ep_htdgs, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Hot Dogs (Maygay) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_hubbl, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Hubble Bubble (Maygay) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_hubbla, ep_hubbl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Hubble Bubble (Maygay) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_huric, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Hurricane (Maygay - Impulse) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_hurica, ep_huric, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Hurricane (Maygay - Impulse) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_huricb, ep_huric, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Hurricane (Maygay - Impulse) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_huricc, ep_huric, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Hurricane (Maygay - Impulse) (EPOCH) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_huricd, ep_huric, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Hurricane (Maygay - Impulse) (EPOCH) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_hurice, ep_huric, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Hurricane (Maygay - Impulse) (EPOCH) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_hur, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Hurricane (Global) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_hura, ep_hur, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Hurricane (Global) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_hurb, ep_hur, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Hurricane (Global) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_hyst, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Hysteria (Maygay - Impulse) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_hysta, ep_hyst, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Hysteria (Maygay - Impulse) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_manic, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Manic Miner (Maygay - Impulse) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_manica, ep_manic, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Manic Miner (Maygay - Impulse) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_manicb, ep_manic, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Manic Miner (Maygay - Impulse) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_manicc, ep_manic, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Manic Miner (Maygay - Impulse) (EPOCH) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_manicd, ep_manic, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Manic Miner (Maygay - Impulse) (EPOCH) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_manice, ep_manic, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Manic Miner (Maygay - Impulse) (EPOCH) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_manicf, ep_manic, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Manic Miner (Maygay - Impulse) (EPOCH) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_matrx, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Matrix (Maygay - Impulse) (EPOCH)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_mwom, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Mortal Wombat (Maygay) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_mwoma, ep_mwom, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Mortal Wombat (Maygay) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_mwomb, ep_mwom, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Mortal Wombat (Maygay) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_mwomc, ep_mwom, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Mortal Wombat (Maygay) (EPOCH) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_mwomd, ep_mwom, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Mortal Wombat (Maygay) (EPOCH) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_otmcl, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Over The Moon Club (Maygay) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_otmcla, ep_otmcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Over The Moon Club (Maygay) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
// 'awards'
-GAME( 199?, ep_pharo, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Pharaoh's Treasure (Maygay) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL ) // has hdd dump
-GAME( 199?, ep_pharoa, ep_pharo, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Pharaoh's Treasure (Maygay) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_pesos, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Pick Yer Pesos (Maygay - Impulse) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_pesosa, ep_pesos, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Pick Yer Pesos (Maygay - Impulse) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_pesosb, ep_pesos, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Pick Yer Pesos (Maygay - Impulse) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_pesosc, ep_pesos, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Pick Yer Pesos (Maygay - Impulse) (EPOCH) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_react, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Reactor (Maygay - Impulse) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_reacta, ep_react, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Reactor (Maygay - Impulse) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_reactb, ep_react, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Reactor (Maygay - Impulse) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_reactc, ep_react, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Reactor (Maygay - Impulse) (EPOCH) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_reactd, ep_react, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Reactor (Maygay - Impulse) (EPOCH) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_reacte, ep_react, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Reactor (Maygay - Impulse) (EPOCH) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_rtt, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Round The Twist (Maygay) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_rtta, ep_rtt, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Round The Twist (Maygay) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_royrl, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Royal Roulette (Maygay) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_royrla, ep_royrl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Royal Roulette (Maygay) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_royrlb, ep_royrl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Royal Roulette (Maygay) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_royrlc, ep_royrl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Royal Roulette (Maygay) (EPOCH) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_royrld, ep_royrl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Royal Roulette (Maygay) (EPOCH) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_royrle, ep_royrl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Royal Roulette (Maygay) (EPOCH) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_spart, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Spartacash (Maygay - Impulse) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_sparta, ep_spart, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Spartacash (Maygay - Impulse) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_spartb, ep_spart, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Spartacash (Maygay - Impulse) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_spntn, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Spin & Tonic (Maygay - Impulse) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_spntna, ep_spntn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Spin & Tonic (Maygay - Impulse) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_spntnb, ep_spntn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Spin & Tonic (Maygay - Impulse) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_spntnc, ep_spntn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Spin & Tonic (Maygay - Impulse) (EPOCH) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_spin, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Spin On It (Maygay - Impulse) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_spina, ep_spin, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Spin On It (Maygay - Impulse) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_spinb, ep_spin, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Spin On It (Maygay - Impulse) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_spinc, ep_spin, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Spin On It (Maygay - Impulse) (EPOCH) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_spind, ep_spin, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Spin On It (Maygay - Impulse) (EPOCH) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_spine, ep_spin, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Spin On It (Maygay - Impulse) (EPOCH) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_strat, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Stratagem (Maygay) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_strata, ep_strat, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Stratagem (Maygay) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_subb, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Subbuteo (Maygay) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_subba, ep_subb, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Subbuteo (Maygay) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_subbb, ep_subb, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Subbuteo (Maygay) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_subbc, ep_subb, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Subbuteo (Maygay) (EPOCH) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_subbd, ep_subb, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Subbuteo (Maygay) (EPOCH) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_subbe, ep_subb, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Subbuteo (Maygay) (EPOCH) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_subbf, ep_subb, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Subbuteo (Maygay) (EPOCH) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_subbg, ep_subb, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Subbuteo (Maygay) (EPOCH) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_snw, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Super Nudge Wink (Maygay - Union) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_snwa, ep_snw, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Super Nudge Wink (Maygay - Union) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_snwb, ep_snw, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Super Nudge Wink (Maygay - Union) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_snwc, ep_snw, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Super Nudge Wink (Maygay - Union) (EPOCH) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_snwd, ep_snw, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Super Nudge Wink (Maygay - Union) (EPOCH) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_tak5, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Take Five (Maygay - Union) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_tak5a, ep_tak5, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Take Five (Maygay - Union) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_trail, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Trailblazer (Maygay - Impulse) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_traila, ep_trail, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Trailblazer (Maygay - Impulse) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_trailb, ep_trail, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Trailblazer (Maygay - Impulse) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_trics, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Triple Cash (Maygay - Union) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_tricsa, ep_trics, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Triple Cash (Maygay - Union) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_wildf, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Wildfire (Maygay - Impulse) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_wildfa, ep_wildf, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Wildfire (Maygay - Impulse) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_beavr, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Beaver Las Vegas (Global) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_beavra, ep_beavr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Beaver Las Vegas (Global) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_beavrb, ep_beavr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Beaver Las Vegas (Global) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_beavrc, ep_beavr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Beaver Las Vegas (Global) (EPOCH) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_beavrd, ep_beavr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Beaver Las Vegas (Global) (EPOCH) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_beavre, ep_beavr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Beaver Las Vegas (Global) (EPOCH) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_beavrf, ep_beavr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Beaver Las Vegas (Global) (EPOCH) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_beavrg, ep_beavr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Beaver Las Vegas (Global) (EPOCH) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_beavrh, ep_beavr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Beaver Las Vegas (Global) (EPOCH) (set 9)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_beavri, ep_beavr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Beaver Las Vegas (Global) (EPOCH) (set 10)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_beavrj, ep_beavr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Beaver Las Vegas (Global) (EPOCH) (set 11)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_beavrk, ep_beavr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Beaver Las Vegas (Global) (EPOCH) (set 12)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_beavrl, ep_beavr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Beaver Las Vegas (Global) (EPOCH) (set 13)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_beavrm, ep_beavr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Beaver Las Vegas (Global) (EPOCH) (set 14)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_bvrcl, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Beaver Las Vegas Club (Global) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_bvrcla, ep_bvrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Beaver Las Vegas Club (Global) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_bvrclb, ep_bvrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Beaver Las Vegas Club (Global) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_bvrclc, ep_bvrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Beaver Las Vegas Club (Global) (EPOCH) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_bvrcld, ep_bvrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Beaver Las Vegas Club (Global) (EPOCH) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_bvrcle, ep_bvrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Beaver Las Vegas Club (Global) (EPOCH) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_bvrclf, ep_bvrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Beaver Las Vegas Club (Global) (EPOCH) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_bvrclg, ep_bvrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Beaver Las Vegas Club (Global) (EPOCH) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_bvrclh, ep_bvrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Beaver Las Vegas Club (Global) (EPOCH) (set 9)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_bvrcli, ep_bvrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Beaver Las Vegas Club (Global) (EPOCH) (set 10)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_bvrclj, ep_bvrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Beaver Las Vegas Club (Global) (EPOCH) (set 11)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_bvrclk, ep_bvrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Beaver Las Vegas Club (Global) (EPOCH) (set 12)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_bjclb, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Blackjack Club (Global) (EPOCH)",GAME_IS_SKELETON_MECHANICAL )
-
-
-GAME( 199?, ep_cbrcl, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cannonball Run Club (Global) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cbrcla, ep_cbrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cannonball Run Club (Global) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cbrclb, ep_cbrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cannonball Run Club (Global) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cbrclc, ep_cbrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cannonball Run Club (Global) (EPOCH) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cbrcld, ep_cbrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cannonball Run Club (Global) (EPOCH) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cbrcle, ep_cbrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cannonball Run Club (Global) (EPOCH) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cbrclf, ep_cbrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cannonball Run Club (Global) (EPOCH) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cbrclg, ep_cbrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cannonball Run Club (Global) (EPOCH) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cbrclh, ep_cbrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cannonball Run Club (Global) (EPOCH) (set 9)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cbrcli, ep_cbrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cannonball Run Club (Global) (EPOCH) (set 10)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cbrclj, ep_cbrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cannonball Run Club (Global) (EPOCH) (set 11)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cbrclk, ep_cbrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cannonball Run Club (Global) (EPOCH) (set 12)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_cclas, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Classic (Global) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cclasa, ep_cclas, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Classic (Global) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_cgrc, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Grand Classic (Global) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cgrca, ep_cgrc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Grand Classic (Global) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_cgred, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Club Greed (Global) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cgreda, ep_cgred, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Club Greed (Global) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_cstrk, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Crazy Streak Club (Global) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cstrka, ep_cstrk, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Crazy Streak Club (Global) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cstrkb, ep_cstrk, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Crazy Streak Club (Global) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cstrkc, ep_cstrk, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Crazy Streak Club (Global) (EPOCH) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cstrkd, ep_cstrk, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Crazy Streak Club (Global) (EPOCH) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cstrke, ep_cstrk, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Crazy Streak Club (Global) (EPOCH) (set 6)",GAME_IS_SKELETON_MECHANICAL ) // bad? (or at least has garbage fill, not 0xff like the other sets)
-GAME( 199?, ep_cstrkf, ep_cstrk, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Crazy Streak Club (Global) (EPOCH) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cstrkg, ep_cstrk, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Crazy Streak Club (Global) (EPOCH) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_dmbus, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Dambusters (Impulse) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_dmbusa, ep_dmbus, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Dambusters (Impulse) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_dmbusb, ep_dmbus, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Dambusters (Impulse) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_dmbusc, ep_dmbus, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Dambusters (Impulse) (EPOCH) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_dmbusd, ep_dmbus, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Dambusters (Impulse) (EPOCH) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_dmbuse, ep_dmbus, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Dambusters (Impulse) (EPOCH) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_dmbusf, ep_dmbus, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Dambusters (Impulse) (EPOCH) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_ddqcl, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Dungeons & Drag Queens Club (Global) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_ddqcla, ep_ddqcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Dungeons & Drag Queens Club (Global) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_ddqclb, ep_ddqcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Dungeons & Drag Queens Club (Global) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_ddqclc, ep_ddqcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Dungeons & Drag Queens Club (Global) (EPOCH) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_ddqcld, ep_ddqcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Dungeons & Drag Queens Club (Global) (EPOCH) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_ddqcle, ep_ddqcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Dungeons & Drag Queens Club (Global) (EPOCH) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_ddqclf, ep_ddqcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Dungeons & Drag Queens Club (Global) (EPOCH) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_ddqclg, ep_ddqcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Dungeons & Drag Queens Club (Global) (EPOCH) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_fog, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Fields of Gold (Global) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_foga, ep_fog, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Fields of Gold (Global) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_fmf, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Full Moon Fever (Global) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_fmfa, ep_fmf, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Full Moon Fever (Global) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_gtrot, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Globe Trotter (Global) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL ) // contains maygay, global and impulse strings
-GAME( 199?, ep_gtrota, ep_gtrot, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Globe Trotter (Global) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL ) // contains maygay, global and impulse strings
-
-GAME( 199?, ep_grun, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Grid Runner (Global) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_gruna, ep_grun, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Grid Runner (Global) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_grncl, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Grid Runner Club (Global) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_grncla, ep_grncl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Grid Runner Club (Global) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_grnclb, ep_grncl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Grid Runner Club (Global) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_grnclc, ep_grncl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Grid Runner Club (Global) (EPOCH) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_heybg, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Hey Big Spender (Global) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_heybga, ep_heybg, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Hey Big Spender (Global) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_heybgb, ep_heybg, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Hey Big Spender (Global) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_heybgc, ep_heybg, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Hey Big Spender (Global) (EPOCH) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_heybc, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Hey Big Spender Club (Global) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_heybca, ep_heybc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Hey Big Spender Club (Global) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_hiscl, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Hi Spirits Club (Global) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_hiscla, ep_hiscl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Hi Spirits Club (Global) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_smoke, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Holy Smoke! (Impulse) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_smokea, ep_smoke, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Holy Smoke! (Impulse) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_smokeb, ep_smoke, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Holy Smoke! (Impulse) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_smokec, ep_smoke, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Holy Smoke! (Impulse) (EPOCH) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_smoked, ep_smoke, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Holy Smoke! (Impulse) (EPOCH) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_smokee, ep_smoke, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Holy Smoke! (Impulse) (EPOCH) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_smokef, ep_smoke, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Holy Smoke! (Impulse) (EPOCH) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_smokeg, ep_smoke, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Holy Smoke! (Impulse) (EPOCH) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_smokeh, ep_smoke, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Holy Smoke! (Impulse) (EPOCH) (set 9)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_smokei, ep_smoke, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Holy Smoke! (Impulse) (EPOCH) (set 10)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_smokej, ep_smoke, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Holy Smoke! (Impulse) (EPOCH) (set 11)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_ifern, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Inferno (Impulse) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_iferna, ep_ifern, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Inferno (Impulse) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_kopcl, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Knockout Punch Club (Global) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_kopcla, ep_kopcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Knockout Punch Club (Global) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_kopclb, ep_kopcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Knockout Punch Club (Global) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_ltt, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Licence To Thrill (Global) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_ltta, ep_ltt, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Licence To Thrill (Global) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_monrt, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Money Returns Club (Global) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_monrta, ep_monrt, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Money Returns Club (Global) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_monrtb, ep_monrt, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Money Returns Club (Global) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_monrtc, ep_monrt, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Money Returns Club (Global) (EPOCH) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_monrtd, ep_monrt, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Money Returns Club (Global) (EPOCH) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_monrte, ep_monrt, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Money Returns Club (Global) (EPOCH) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_monrtf, ep_monrt, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Money Returns Club (Global) (EPOCH) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_monsh, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Moonshine Club (Global) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_monsha, ep_monsh, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Moonshine Club (Global) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_monshb, ep_monsh, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Moonshine Club (Global) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_monshc, ep_monsh, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Moonshine Club (Global) (EPOCH) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_monshd, ep_monsh, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Moonshine Club (Global) (EPOCH) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_monshe, ep_monsh, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Moonshine Club (Global) (EPOCH) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_monshf, ep_monsh, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Moonshine Club (Global) (EPOCH) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_mummy, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Mummy Talks (Impulse) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_mummya, ep_mummy, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Mummy Talks (Impulse) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_mummyb, ep_mummy, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Mummy Talks (Impulse) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_mummyc, ep_mummy, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Mummy Talks (Impulse) (EPOCH) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_mummyd, ep_mummy, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Mummy Talks (Impulse) (EPOCH) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_mummye, ep_mummy, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Mummy Talks (Impulse) (EPOCH) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_mummyf, ep_mummy, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Mummy Talks (Impulse) (EPOCH) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_rlgdt, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Reel Good Time (Rebuild) (Global) (Version 1.0) (EPOCH)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_rchik, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Rich Chics Club (Global) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_rchika, ep_rchik, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Rich Chics Club (Global) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_royrc, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Royal Roulette Club (Impulse) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_royrca, ep_royrc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Royal Roulette Club (Impulse) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_sdcla, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Spotted Dick Classic (Global) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_sdclaa, ep_sdcla, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Spotted Dick Classic (Global) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_sdclab, ep_sdcla, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Spotted Dick Classic (Global) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_sdclac, ep_sdcla, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Spotted Dick Classic (Global) (EPOCH) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_sdclaf, ep_sdcla, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Spotted Dick Classic (Global) (EPOCH) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_sdclag, ep_sdcla, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Spotted Dick Classic (Global) (EPOCH) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_sdclad, ep_sdcla, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Spotted Dick Classic (Global) (EPOCH) (set 5)",GAME_IS_SKELETON_MECHANICAL ) // larger roms, header not cleared
-GAME( 199?, ep_sdclae, ep_sdcla, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Spotted Dick Classic (Global) (EPOCH) (set 6)",GAME_IS_SKELETON_MECHANICAL ) // larger roms, header not cleared
-
-GAME( 199?, ep_sdclb, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Spotted Dick Club (Global) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_sdclba, ep_sdclb, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Spotted Dick Club (Global) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_stm, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Storm Force (Global) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_stma, ep_stm, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Storm Force (Global) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_stmb, ep_stm, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Storm Force (Global) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_stmc, ep_stm, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Storm Force (Global) (EPOCH) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_stmcl, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Storm Force Club (Global) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_stmcla, ep_stmcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Storm Force Club (Global) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_tod, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Truth Or Dare (Global) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_toda, ep_tod, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Truth Or Dare (Global) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_utnut, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Utter Nutter (Global) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_utnuta, ep_utnut, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Utter Nutter (Global) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_utnutb, ep_utnut, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Utter Nutter (Global) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_utnutc, ep_utnut, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Utter Nutter (Global) (EPOCH) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_utncl, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Utter Nutter Club (Global) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_utncla, ep_utncl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Utter Nutter Club (Global) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_wleek, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Weakest Leek Club (Global) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_wleeka, ep_wleek, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Weakest Leek Club (Global) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_wud, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "What's Up Doc (Global) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_wuda, ep_wud, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "What's Up Doc (Global) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_wudb, ep_wud, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "What's Up Doc (Global) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_wudc, ep_wud, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "What's Up Doc (Global) (EPOCH) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_wudd, ep_wud, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "What's Up Doc (Global) (EPOCH) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_wude, ep_wud, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "What's Up Doc (Global) (EPOCH) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_mlhrc, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Who Whats To Be A Millionhare Club (Global) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_mlhrca, ep_mlhrc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Who Whats To Be A Millionhare Club (Global) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_mlhrcb, ep_mlhrc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Who Whats To Be A Millionhare Club (Global) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_mlhrcc, ep_mlhrc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Who Whats To Be A Millionhare Club (Global) (EPOCH) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_mlhrcd, ep_mlhrc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Who Whats To Be A Millionhare Club (Global) (EPOCH) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_mlhrce, ep_mlhrc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Who Whats To Be A Millionhare Club (Global) (EPOCH) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_wf, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Wildfire (Global) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_wfa, ep_wf, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Wildfire (Global) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_wfb, ep_wf, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Wildfire (Global) (EPOCH) (set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_wfc, ep_wf, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Wildfire (Global) (EPOCH) (set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_wfd, ep_wf, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Wildfire (Global) (EPOCH) (set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_wfe, ep_wf, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Wildfire (Global) (EPOCH) (set 6)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_wff, ep_wf, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Wildfire (Global) (EPOCH) (set 7)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_wfg, ep_wf, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Wildfire (Global) (EPOCH) (set 8)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_makmv, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Make Your Move (Global) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_makmva, ep_makmv, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Make Your Move (Global) (EPOCH) (set 2)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, ep_cascz, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Crazy (Global) (EPOCH) (set 1)",GAME_IS_SKELETON_MECHANICAL ) // check identity, other set has header
-
-GAME( 199?, ep_goldf, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Gold Fever (Impulse) (EPOCH)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_pharo, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Pharaoh's Treasure (Maygay) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL ) // has hdd dump
+GAME( 199?, ep_pharoa, ep_pharo, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Pharaoh's Treasure (Maygay) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_pesos, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Pick Yer Pesos (Maygay - Impulse) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_pesosa, ep_pesos, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Pick Yer Pesos (Maygay - Impulse) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_pesosb, ep_pesos, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Pick Yer Pesos (Maygay - Impulse) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_pesosc, ep_pesos, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Pick Yer Pesos (Maygay - Impulse) (EPOCH) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_react, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Reactor (Maygay - Impulse) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_reacta, ep_react, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Reactor (Maygay - Impulse) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_reactb, ep_react, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Reactor (Maygay - Impulse) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_reactc, ep_react, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Reactor (Maygay - Impulse) (EPOCH) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_reactd, ep_react, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Reactor (Maygay - Impulse) (EPOCH) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_reacte, ep_react, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Reactor (Maygay - Impulse) (EPOCH) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_rtt, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Round The Twist (Maygay) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_rtta, ep_rtt, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Round The Twist (Maygay) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_royrl, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Royal Roulette (Maygay) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_royrla, ep_royrl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Royal Roulette (Maygay) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_royrlb, ep_royrl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Royal Roulette (Maygay) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_royrlc, ep_royrl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Royal Roulette (Maygay) (EPOCH) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_royrld, ep_royrl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Royal Roulette (Maygay) (EPOCH) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_royrle, ep_royrl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Royal Roulette (Maygay) (EPOCH) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_spart, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Spartacash (Maygay - Impulse) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_sparta, ep_spart, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Spartacash (Maygay - Impulse) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_spartb, ep_spart, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Spartacash (Maygay - Impulse) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_spntn, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Spin & Tonic (Maygay - Impulse) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_spntna, ep_spntn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Spin & Tonic (Maygay - Impulse) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_spntnb, ep_spntn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Spin & Tonic (Maygay - Impulse) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_spntnc, ep_spntn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Spin & Tonic (Maygay - Impulse) (EPOCH) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_spin, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Spin On It (Maygay - Impulse) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_spina, ep_spin, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Spin On It (Maygay - Impulse) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_spinb, ep_spin, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Spin On It (Maygay - Impulse) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_spinc, ep_spin, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Spin On It (Maygay - Impulse) (EPOCH) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_spind, ep_spin, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Spin On It (Maygay - Impulse) (EPOCH) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_spine, ep_spin, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Spin On It (Maygay - Impulse) (EPOCH) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_strat, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Stratagem (Maygay) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_strata, ep_strat, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Stratagem (Maygay) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_subb, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Subbuteo (Maygay) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_subba, ep_subb, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Subbuteo (Maygay) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_subbb, ep_subb, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Subbuteo (Maygay) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_subbc, ep_subb, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Subbuteo (Maygay) (EPOCH) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_subbd, ep_subb, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Subbuteo (Maygay) (EPOCH) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_subbe, ep_subb, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Subbuteo (Maygay) (EPOCH) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_subbf, ep_subb, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Subbuteo (Maygay) (EPOCH) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_subbg, ep_subb, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Subbuteo (Maygay) (EPOCH) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_snw, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Super Nudge Wink (Maygay - Union) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_snwa, ep_snw, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Super Nudge Wink (Maygay - Union) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_snwb, ep_snw, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Super Nudge Wink (Maygay - Union) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_snwc, ep_snw, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Super Nudge Wink (Maygay - Union) (EPOCH) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_snwd, ep_snw, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Super Nudge Wink (Maygay - Union) (EPOCH) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_tak5, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Take Five (Maygay - Union) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_tak5a, ep_tak5, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Take Five (Maygay - Union) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_trail, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Trailblazer (Maygay - Impulse) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_traila, ep_trail, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Trailblazer (Maygay - Impulse) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_trailb, ep_trail, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Trailblazer (Maygay - Impulse) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_trics, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Triple Cash (Maygay - Union) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_tricsa, ep_trics, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Triple Cash (Maygay - Union) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_wildf, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Wildfire (Maygay - Impulse) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_wildfa, ep_wildf, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Wildfire (Maygay - Impulse) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_beavr, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Beaver Las Vegas (Global) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_beavra, ep_beavr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Beaver Las Vegas (Global) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_beavrb, ep_beavr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Beaver Las Vegas (Global) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_beavrc, ep_beavr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Beaver Las Vegas (Global) (EPOCH) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_beavrd, ep_beavr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Beaver Las Vegas (Global) (EPOCH) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_beavre, ep_beavr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Beaver Las Vegas (Global) (EPOCH) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_beavrf, ep_beavr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Beaver Las Vegas (Global) (EPOCH) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_beavrg, ep_beavr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Beaver Las Vegas (Global) (EPOCH) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_beavrh, ep_beavr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Beaver Las Vegas (Global) (EPOCH) (set 9)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_beavri, ep_beavr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Beaver Las Vegas (Global) (EPOCH) (set 10)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_beavrj, ep_beavr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Beaver Las Vegas (Global) (EPOCH) (set 11)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_beavrk, ep_beavr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Beaver Las Vegas (Global) (EPOCH) (set 12)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_beavrl, ep_beavr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Beaver Las Vegas (Global) (EPOCH) (set 13)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_beavrm, ep_beavr, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Beaver Las Vegas (Global) (EPOCH) (set 14)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_bvrcl, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Beaver Las Vegas Club (Global) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_bvrcla, ep_bvrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Beaver Las Vegas Club (Global) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_bvrclb, ep_bvrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Beaver Las Vegas Club (Global) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_bvrclc, ep_bvrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Beaver Las Vegas Club (Global) (EPOCH) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_bvrcld, ep_bvrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Beaver Las Vegas Club (Global) (EPOCH) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_bvrcle, ep_bvrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Beaver Las Vegas Club (Global) (EPOCH) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_bvrclf, ep_bvrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Beaver Las Vegas Club (Global) (EPOCH) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_bvrclg, ep_bvrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Beaver Las Vegas Club (Global) (EPOCH) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_bvrclh, ep_bvrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Beaver Las Vegas Club (Global) (EPOCH) (set 9)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_bvrcli, ep_bvrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Beaver Las Vegas Club (Global) (EPOCH) (set 10)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_bvrclj, ep_bvrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Beaver Las Vegas Club (Global) (EPOCH) (set 11)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_bvrclk, ep_bvrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Beaver Las Vegas Club (Global) (EPOCH) (set 12)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_bjclb, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Blackjack Club (Global) (EPOCH)",MACHINE_IS_SKELETON_MECHANICAL )
+
+
+GAME( 199?, ep_cbrcl, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cannonball Run Club (Global) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cbrcla, ep_cbrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cannonball Run Club (Global) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cbrclb, ep_cbrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cannonball Run Club (Global) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cbrclc, ep_cbrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cannonball Run Club (Global) (EPOCH) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cbrcld, ep_cbrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cannonball Run Club (Global) (EPOCH) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cbrcle, ep_cbrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cannonball Run Club (Global) (EPOCH) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cbrclf, ep_cbrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cannonball Run Club (Global) (EPOCH) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cbrclg, ep_cbrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cannonball Run Club (Global) (EPOCH) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cbrclh, ep_cbrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cannonball Run Club (Global) (EPOCH) (set 9)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cbrcli, ep_cbrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cannonball Run Club (Global) (EPOCH) (set 10)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cbrclj, ep_cbrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cannonball Run Club (Global) (EPOCH) (set 11)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cbrclk, ep_cbrcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Cannonball Run Club (Global) (EPOCH) (set 12)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_cclas, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Classic (Global) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cclasa, ep_cclas, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Classic (Global) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_cgrc, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Grand Classic (Global) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cgrca, ep_cgrc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Grand Classic (Global) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_cgred, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Club Greed (Global) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cgreda, ep_cgred, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Club Greed (Global) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_cstrk, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Crazy Streak Club (Global) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cstrka, ep_cstrk, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Crazy Streak Club (Global) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cstrkb, ep_cstrk, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Crazy Streak Club (Global) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cstrkc, ep_cstrk, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Crazy Streak Club (Global) (EPOCH) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cstrkd, ep_cstrk, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Crazy Streak Club (Global) (EPOCH) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cstrke, ep_cstrk, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Crazy Streak Club (Global) (EPOCH) (set 6)",MACHINE_IS_SKELETON_MECHANICAL ) // bad? (or at least has garbage fill, not 0xff like the other sets)
+GAME( 199?, ep_cstrkf, ep_cstrk, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Crazy Streak Club (Global) (EPOCH) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cstrkg, ep_cstrk, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Crazy Streak Club (Global) (EPOCH) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_dmbus, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Dambusters (Impulse) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_dmbusa, ep_dmbus, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Dambusters (Impulse) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_dmbusb, ep_dmbus, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Dambusters (Impulse) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_dmbusc, ep_dmbus, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Dambusters (Impulse) (EPOCH) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_dmbusd, ep_dmbus, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Dambusters (Impulse) (EPOCH) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_dmbuse, ep_dmbus, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Dambusters (Impulse) (EPOCH) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_dmbusf, ep_dmbus, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Dambusters (Impulse) (EPOCH) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_ddqcl, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Dungeons & Drag Queens Club (Global) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_ddqcla, ep_ddqcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Dungeons & Drag Queens Club (Global) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_ddqclb, ep_ddqcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Dungeons & Drag Queens Club (Global) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_ddqclc, ep_ddqcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Dungeons & Drag Queens Club (Global) (EPOCH) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_ddqcld, ep_ddqcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Dungeons & Drag Queens Club (Global) (EPOCH) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_ddqcle, ep_ddqcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Dungeons & Drag Queens Club (Global) (EPOCH) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_ddqclf, ep_ddqcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Dungeons & Drag Queens Club (Global) (EPOCH) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_ddqclg, ep_ddqcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Dungeons & Drag Queens Club (Global) (EPOCH) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_fog, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Fields of Gold (Global) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_foga, ep_fog, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Fields of Gold (Global) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_fmf, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Full Moon Fever (Global) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_fmfa, ep_fmf, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Full Moon Fever (Global) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_gtrot, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Globe Trotter (Global) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL ) // contains maygay, global and impulse strings
+GAME( 199?, ep_gtrota, ep_gtrot, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Globe Trotter (Global) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL ) // contains maygay, global and impulse strings
+
+GAME( 199?, ep_grun, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Grid Runner (Global) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_gruna, ep_grun, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Grid Runner (Global) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_grncl, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Grid Runner Club (Global) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_grncla, ep_grncl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Grid Runner Club (Global) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_grnclb, ep_grncl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Grid Runner Club (Global) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_grnclc, ep_grncl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Grid Runner Club (Global) (EPOCH) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_heybg, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Hey Big Spender (Global) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_heybga, ep_heybg, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Hey Big Spender (Global) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_heybgb, ep_heybg, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Hey Big Spender (Global) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_heybgc, ep_heybg, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Hey Big Spender (Global) (EPOCH) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_heybc, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Hey Big Spender Club (Global) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_heybca, ep_heybc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Hey Big Spender Club (Global) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_hiscl, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Hi Spirits Club (Global) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_hiscla, ep_hiscl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Hi Spirits Club (Global) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_smoke, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Holy Smoke! (Impulse) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_smokea, ep_smoke, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Holy Smoke! (Impulse) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_smokeb, ep_smoke, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Holy Smoke! (Impulse) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_smokec, ep_smoke, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Holy Smoke! (Impulse) (EPOCH) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_smoked, ep_smoke, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Holy Smoke! (Impulse) (EPOCH) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_smokee, ep_smoke, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Holy Smoke! (Impulse) (EPOCH) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_smokef, ep_smoke, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Holy Smoke! (Impulse) (EPOCH) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_smokeg, ep_smoke, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Holy Smoke! (Impulse) (EPOCH) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_smokeh, ep_smoke, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Holy Smoke! (Impulse) (EPOCH) (set 9)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_smokei, ep_smoke, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Holy Smoke! (Impulse) (EPOCH) (set 10)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_smokej, ep_smoke, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Holy Smoke! (Impulse) (EPOCH) (set 11)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_ifern, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Inferno (Impulse) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_iferna, ep_ifern, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Inferno (Impulse) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_kopcl, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Knockout Punch Club (Global) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_kopcla, ep_kopcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Knockout Punch Club (Global) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_kopclb, ep_kopcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Knockout Punch Club (Global) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_ltt, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Licence To Thrill (Global) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_ltta, ep_ltt, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Licence To Thrill (Global) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_monrt, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Money Returns Club (Global) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_monrta, ep_monrt, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Money Returns Club (Global) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_monrtb, ep_monrt, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Money Returns Club (Global) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_monrtc, ep_monrt, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Money Returns Club (Global) (EPOCH) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_monrtd, ep_monrt, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Money Returns Club (Global) (EPOCH) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_monrte, ep_monrt, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Money Returns Club (Global) (EPOCH) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_monrtf, ep_monrt, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Money Returns Club (Global) (EPOCH) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_monsh, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Moonshine Club (Global) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_monsha, ep_monsh, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Moonshine Club (Global) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_monshb, ep_monsh, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Moonshine Club (Global) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_monshc, ep_monsh, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Moonshine Club (Global) (EPOCH) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_monshd, ep_monsh, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Moonshine Club (Global) (EPOCH) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_monshe, ep_monsh, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Moonshine Club (Global) (EPOCH) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_monshf, ep_monsh, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "The Moonshine Club (Global) (EPOCH) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_mummy, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Mummy Talks (Impulse) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_mummya, ep_mummy, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Mummy Talks (Impulse) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_mummyb, ep_mummy, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Mummy Talks (Impulse) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_mummyc, ep_mummy, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Mummy Talks (Impulse) (EPOCH) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_mummyd, ep_mummy, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Mummy Talks (Impulse) (EPOCH) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_mummye, ep_mummy, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Mummy Talks (Impulse) (EPOCH) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_mummyf, ep_mummy, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Mummy Talks (Impulse) (EPOCH) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_rlgdt, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Reel Good Time (Rebuild) (Global) (Version 1.0) (EPOCH)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_rchik, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Rich Chics Club (Global) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_rchika, ep_rchik, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Rich Chics Club (Global) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_royrc, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Royal Roulette Club (Impulse) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_royrca, ep_royrc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Royal Roulette Club (Impulse) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_sdcla, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Spotted Dick Classic (Global) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_sdclaa, ep_sdcla, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Spotted Dick Classic (Global) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_sdclab, ep_sdcla, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Spotted Dick Classic (Global) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_sdclac, ep_sdcla, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Spotted Dick Classic (Global) (EPOCH) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_sdclaf, ep_sdcla, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Spotted Dick Classic (Global) (EPOCH) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_sdclag, ep_sdcla, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Spotted Dick Classic (Global) (EPOCH) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_sdclad, ep_sdcla, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Spotted Dick Classic (Global) (EPOCH) (set 5)",MACHINE_IS_SKELETON_MECHANICAL ) // larger roms, header not cleared
+GAME( 199?, ep_sdclae, ep_sdcla, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Spotted Dick Classic (Global) (EPOCH) (set 6)",MACHINE_IS_SKELETON_MECHANICAL ) // larger roms, header not cleared
+
+GAME( 199?, ep_sdclb, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Spotted Dick Club (Global) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_sdclba, ep_sdclb, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Spotted Dick Club (Global) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_stm, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Storm Force (Global) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_stma, ep_stm, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Storm Force (Global) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_stmb, ep_stm, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Storm Force (Global) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_stmc, ep_stm, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Storm Force (Global) (EPOCH) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_stmcl, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Storm Force Club (Global) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_stmcla, ep_stmcl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Storm Force Club (Global) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_tod, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Truth Or Dare (Global) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_toda, ep_tod, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Truth Or Dare (Global) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_utnut, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Utter Nutter (Global) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_utnuta, ep_utnut, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Utter Nutter (Global) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_utnutb, ep_utnut, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Utter Nutter (Global) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_utnutc, ep_utnut, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Utter Nutter (Global) (EPOCH) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_utncl, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Utter Nutter Club (Global) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_utncla, ep_utncl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Utter Nutter Club (Global) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_wleek, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Weakest Leek Club (Global) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_wleeka, ep_wleek, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Weakest Leek Club (Global) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_wud, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "What's Up Doc (Global) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_wuda, ep_wud, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "What's Up Doc (Global) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_wudb, ep_wud, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "What's Up Doc (Global) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_wudc, ep_wud, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "What's Up Doc (Global) (EPOCH) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_wudd, ep_wud, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "What's Up Doc (Global) (EPOCH) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_wude, ep_wud, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "What's Up Doc (Global) (EPOCH) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_mlhrc, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Who Whats To Be A Millionhare Club (Global) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_mlhrca, ep_mlhrc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Who Whats To Be A Millionhare Club (Global) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_mlhrcb, ep_mlhrc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Who Whats To Be A Millionhare Club (Global) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_mlhrcc, ep_mlhrc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Who Whats To Be A Millionhare Club (Global) (EPOCH) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_mlhrcd, ep_mlhrc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Who Whats To Be A Millionhare Club (Global) (EPOCH) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_mlhrce, ep_mlhrc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Who Whats To Be A Millionhare Club (Global) (EPOCH) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_wf, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Wildfire (Global) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_wfa, ep_wf, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Wildfire (Global) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_wfb, ep_wf, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Wildfire (Global) (EPOCH) (set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_wfc, ep_wf, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Wildfire (Global) (EPOCH) (set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_wfd, ep_wf, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Wildfire (Global) (EPOCH) (set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_wfe, ep_wf, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Wildfire (Global) (EPOCH) (set 6)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_wff, ep_wf, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Wildfire (Global) (EPOCH) (set 7)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_wfg, ep_wf, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Wildfire (Global) (EPOCH) (set 8)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_makmv, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Make Your Move (Global) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_makmva, ep_makmv, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Make Your Move (Global) (EPOCH) (set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, ep_cascz, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Casino Crazy (Global) (EPOCH) (set 1)",MACHINE_IS_SKELETON_MECHANICAL ) // check identity, other set has header
+
+GAME( 199?, ep_goldf, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Impulse", "Gold Fever (Impulse) (EPOCH)",MACHINE_IS_SKELETON_MECHANICAL )
/* minimal header info */
-GAME( 199?, ep_bubsq, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Bubble & Squeak (Extreme) (EPOCH) (BASQ 0.2, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_bubsqa, ep_bubsq, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Bubble & Squeak (Extreme) (EPOCH) (BASQ 0.2, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_bubsqb, ep_bubsq, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Bubble & Squeak (Extreme) (EPOCH) (BASQ 0.3, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_bubsqc, ep_bubsq, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Bubble & Squeak (Extreme) (EPOCH) (BASQ 0.3, set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_bubsqd, ep_bubsq, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Bubble & Squeak (Extreme) (EPOCH) (BASQ 0.4, set 5)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_bubsq, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Bubble & Squeak (Extreme) (EPOCH) (BASQ 0.2, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_bubsqa, ep_bubsq, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Bubble & Squeak (Extreme) (EPOCH) (BASQ 0.2, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_bubsqb, ep_bubsq, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Bubble & Squeak (Extreme) (EPOCH) (BASQ 0.3, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_bubsqc, ep_bubsq, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Bubble & Squeak (Extreme) (EPOCH) (BASQ 0.3, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_bubsqd, ep_bubsq, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Bubble & Squeak (Extreme) (EPOCH) (BASQ 0.4, set 5)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cashn, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cashino (Maygay - Extreme) (EPOCH) (CSHI 1.0, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cashna, ep_cashn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cashino (Maygay - Extreme) (EPOCH) (CSHI 1.0, set 2)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cashn, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cashino (Maygay - Extreme) (EPOCH) (CSHI 1.0, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cashna, ep_cashn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Cashino (Maygay - Extreme) (EPOCH) (CSHI 1.0, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_inca, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Inca Dinka Do (Maygay - Extreme) (EPOCH) (INCA 1.2, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_incaa, ep_inca, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Inca Dinka Do (Maygay - Extreme) (EPOCH) (INCA 1.2, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_incab, ep_inca, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Inca Dinka Do (Maygay - Extreme) (EPOCH) (INCA 1.1, set 3)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_inca, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Inca Dinka Do (Maygay - Extreme) (EPOCH) (INCA 1.2, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_incaa, ep_inca, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Inca Dinka Do (Maygay - Extreme) (EPOCH) (INCA 1.2, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_incab, ep_inca, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Inca Dinka Do (Maygay - Extreme) (EPOCH) (INCA 1.1, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_jakbn, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Jackpot & The Beanstreak (Extreme) (EPOCH) (JABS 0.3, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_jakbna, ep_jakbn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Jackpot & The Beanstreak (Extreme) (EPOCH) (JABS 0.3, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_jakbnb, ep_jakbn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Jackpot & The Beanstreak (Extreme) (EPOCH) (JABS 0.5, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_jakbnc, ep_jakbn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Jackpot & The Beanstreak (Extreme) (EPOCH) (JABS 0.5, set 4)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_jakbn, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Jackpot & The Beanstreak (Extreme) (EPOCH) (JABS 0.3, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_jakbna, ep_jakbn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Jackpot & The Beanstreak (Extreme) (EPOCH) (JABS 0.3, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_jakbnb, ep_jakbn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Jackpot & The Beanstreak (Extreme) (EPOCH) (JABS 0.5, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_jakbnc, ep_jakbn, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Jackpot & The Beanstreak (Extreme) (EPOCH) (JABS 0.5, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_loadd, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Loaded (Maygay) (EPOCH) (LOAD 1.2, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_loadda, ep_loadd, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Loaded (Maygay) (EPOCH) (LOAD 1.2, set 2)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_loadd, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Loaded (Maygay) (EPOCH) (LOAD 1.2, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_loadda, ep_loadd, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Loaded (Maygay) (EPOCH) (LOAD 1.2, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_lukld, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Lucky Ladders (Maygay) (EPOCH) (LULA 0.2, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_luklda, ep_lukld, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Lucky Ladders (Maygay) (EPOCH) (LULA 0.2, set 2)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_lukld, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Lucky Ladders (Maygay) (EPOCH) (LULA 0.2, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_luklda, ep_lukld, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Lucky Ladders (Maygay) (EPOCH) (LULA 0.2, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_noter, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Note Runner (Maygay) (EPOCH) (NORU 0.1, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_notera, ep_noter, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Note Runner (Maygay) (EPOCH) (NORU 0.1, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_noterb, ep_noter, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Note Runner (Maygay) (EPOCH) (NORU 0.2, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_noterc, ep_noter, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Note Runner (Maygay) (EPOCH) (NORU 0.2, set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_noterd, ep_noter, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Note Runner (Maygay) (EPOCH) (NORU 1.0, set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_notere, ep_noter, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Note Runner (Maygay) (EPOCH) (NORU 1.0, set 6)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_noter, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Note Runner (Maygay) (EPOCH) (NORU 0.1, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_notera, ep_noter, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Note Runner (Maygay) (EPOCH) (NORU 0.1, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_noterb, ep_noter, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Note Runner (Maygay) (EPOCH) (NORU 0.2, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_noterc, ep_noter, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Note Runner (Maygay) (EPOCH) (NORU 0.2, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_noterd, ep_noter, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Note Runner (Maygay) (EPOCH) (NORU 1.0, set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_notere, ep_noter, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Note Runner (Maygay) (EPOCH) (NORU 1.0, set 6)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_pwrpl, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Power Play (Maygay) (EPOCH) (PPLY 0.3, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_pwrpla, ep_pwrpl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Power Play (Maygay) (EPOCH) (PPLY 0.3, set 2)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_pwrpl, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Power Play (Maygay) (EPOCH) (PPLY 0.3, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_pwrpla, ep_pwrpl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Power Play (Maygay) (EPOCH) (PPLY 0.3, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_scrm, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Screamin Demon (Maygay) (EPOCH) (SCDE 2.0, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_scrma, ep_scrm, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Screamin Demon (Maygay) (EPOCH) (SCDE 2.0, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_scrmb, ep_scrm, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Screamin Demon (Maygay) (EPOCH) (SCDE 1.0, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_scrmc, ep_scrm, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Screamin Demon (Maygay) (EPOCH) (SCDE 1.0, set 4)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_scrm, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Screamin Demon (Maygay) (EPOCH) (SCDE 2.0, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_scrma, ep_scrm, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Screamin Demon (Maygay) (EPOCH) (SCDE 2.0, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_scrmb, ep_scrm, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Screamin Demon (Maygay) (EPOCH) (SCDE 1.0, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_scrmc, ep_scrm, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Screamin Demon (Maygay) (EPOCH) (SCDE 1.0, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_tree, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Tree Amigos (Maygay) (EPOCH) (TRAM 0.3, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_treea, ep_tree, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Tree Amigos (Maygay) (EPOCH) (TRAM 0.3, set 2)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_tree, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Tree Amigos (Maygay) (EPOCH) (TRAM 0.3, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_treea, ep_tree, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Tree Amigos (Maygay) (EPOCH) (TRAM 0.3, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_vipjv, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Viper Jive (Maygay - Extreme) (EPOCH) (JIVE 1.1, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_vipjva, ep_vipjv, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Viper Jive (Maygay - Extreme) (EPOCH) (JIVE 1.1, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_vipjvb, ep_vipjv, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Viper Jive (Maygay - Extreme) (EPOCH) (JIVE 2.2, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_vipjvc, ep_vipjv, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Viper Jive (Maygay - Extreme) (EPOCH) (JIVE 2.2, set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_vipjvd, ep_vipjv, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Viper Jive (Maygay - Extreme) (EPOCH) (JIVE 2.1, set 5)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_vipjv, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Viper Jive (Maygay - Extreme) (EPOCH) (JIVE 1.1, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_vipjva, ep_vipjv, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Viper Jive (Maygay - Extreme) (EPOCH) (JIVE 1.1, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_vipjvb, ep_vipjv, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Viper Jive (Maygay - Extreme) (EPOCH) (JIVE 2.2, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_vipjvc, ep_vipjv, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Viper Jive (Maygay - Extreme) (EPOCH) (JIVE 2.2, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_vipjvd, ep_vipjv, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Maygay", "Viper Jive (Maygay - Extreme) (EPOCH) (JIVE 2.1, set 5)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_braid, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Bank Raid (Extreme) (EPOCH) (BARA 0.1, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_braida, ep_braid, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Bank Raid (Extreme) (EPOCH) (BARA 0.1, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_braidb, ep_braid, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Bank Raid (Extreme) (EPOCH) (BARA 0.5, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_braidc, ep_braid, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Bank Raid (Extreme) (EPOCH) (BARA 0.5, set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_braidd, ep_braid, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Bank Raid (Extreme) (EPOCH) (BARA 0.5, set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_braide, ep_braid, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Bank Raid (Extreme) (EPOCH) (BARA 0.5, set 6)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_braid, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Bank Raid (Extreme) (EPOCH) (BARA 0.1, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_braida, ep_braid, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Bank Raid (Extreme) (EPOCH) (BARA 0.1, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_braidb, ep_braid, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Bank Raid (Extreme) (EPOCH) (BARA 0.5, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_braidc, ep_braid, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Bank Raid (Extreme) (EPOCH) (BARA 0.5, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_braidd, ep_braid, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Bank Raid (Extreme) (EPOCH) (BARA 0.5, set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_braide, ep_braid, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Bank Raid (Extreme) (EPOCH) (BARA 0.5, set 6)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cyc, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Cyclone (Extreme) (EPOCH) (CYCL 0.2, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cyca, ep_cyc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Cyclone (Extreme) (EPOCH) (CYCL 0.2, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cycb, ep_cyc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Cyclone (Extreme) (EPOCH) (CYCL 0.3, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cycc, ep_cyc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Cyclone (Extreme) (EPOCH) (CYCL 0.3, set 4)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cycd, ep_cyc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Cyclone (Extreme) (EPOCH) (CYCL 0.1, set 5)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_cyce, ep_cyc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Cyclone (Extreme) (EPOCH) (CYCL 0.1, set 6)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cyc, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Cyclone (Extreme) (EPOCH) (CYCL 0.2, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cyca, ep_cyc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Cyclone (Extreme) (EPOCH) (CYCL 0.2, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cycb, ep_cyc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Cyclone (Extreme) (EPOCH) (CYCL 0.3, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cycc, ep_cyc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Cyclone (Extreme) (EPOCH) (CYCL 0.3, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cycd, ep_cyc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Cyclone (Extreme) (EPOCH) (CYCL 0.1, set 5)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_cyce, ep_cyc, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Cyclone (Extreme) (EPOCH) (CYCL 0.1, set 6)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_ll, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Lucky Ladders (Extreme) (EPOCH) (LULA 0.3, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_lla, ep_ll, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Lucky Ladders (Extreme) (EPOCH) (LULA 0.3, set 2)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_ll, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Lucky Ladders (Extreme) (EPOCH) (LULA 0.3, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_lla, ep_ll, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Lucky Ladders (Extreme) (EPOCH) (LULA 0.3, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_redl, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Red Line (Extreme) (EPOCH) (RELI 0.1, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_redla, ep_redl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Red Line (Extreme) (EPOCH) (RELI 0.1, set 2)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_redl, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Red Line (Extreme) (EPOCH) (RELI 0.1, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_redla, ep_redl, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Red Line (Extreme) (EPOCH) (RELI 0.1, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_snset, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Sunset Strip (Extreme) (EPOCH) (SUST 0.1, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_snseta, ep_snset, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Sunset Strip (Extreme) (EPOCH) (SUST 0.1, set 2)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_snset, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Sunset Strip (Extreme) (EPOCH) (SUST 0.1, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_snseta, ep_snset, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Sunset Strip (Extreme) (EPOCH) (SUST 0.1, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_treas, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Treasure Hunt (Global) (EPOCH) (Version 1.6)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_treas, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Global", "Treasure Hunt (Global) (EPOCH) (Version 1.6)",MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_twarp, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Time Warp (Extreme) (EPOCH) (TWRP 0.1, set 1)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_twarpa, ep_twarp, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Time Warp (Extreme) (EPOCH) (TWRP 0.1, set 2)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_twarpb, ep_twarp, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Time Warp (Extreme) (EPOCH) (TWRP 0.4, set 3)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, ep_twarpc, ep_twarp, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Time Warp (Extreme) (EPOCH) (TWRP 0.4, set 4)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_twarp, 0, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Time Warp (Extreme) (EPOCH) (TWRP 0.1, set 1)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_twarpa, ep_twarp, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Time Warp (Extreme) (EPOCH) (TWRP 0.1, set 2)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_twarpb, ep_twarp, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Time Warp (Extreme) (EPOCH) (TWRP 0.4, set 3)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, ep_twarpc, ep_twarp, maygayep, maygayep, maygayep_state, maygayep, ROT0, "Extreme", "Time Warp (Extreme) (EPOCH) (TWRP 0.4, set 4)",MACHINE_IS_SKELETON_MECHANICAL )
diff --git a/src/mame/drivers/maygaysw.c b/src/mame/drivers/maygaysw.c
index 75a69f918d8..e095ac2b885 100644
--- a/src/mame/drivers/maygaysw.c
+++ b/src/mame/drivers/maygaysw.c
@@ -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)", GAME_IS_SKELETON )
-GAME( 199?, mg_risk , 0 , maygayew, maygayew, driver_device, 0, ROT0, "Maygay", "Risk (Maygay M2)", GAME_IS_SKELETON )
-GAME( 199?, mg_bb , 0 , maygayew, maygayew, driver_device, 0, ROT0, "Maygay", "Big Break (Maygay M2)", GAME_IS_SKELETON )
-GAME( 199?, mg_lug , 0 , maygayew, maygayew, driver_device, 0, ROT0, "Maygay", "London Underground (Maygay M2)", GAME_IS_SKELETON )
-GAME( 199?, mg_alad , 0 , maygayew, maygayew, driver_device, 0, ROT0, "Maygay", "Aladdin's Cave (Maygay M2)", GAME_IS_SKELETON )
+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 )
// incomplete dumps
-GAME( 199?, mg_ewg , 0 , maygayew, maygayew, driver_device, 0, ROT0, "Maygay", "Each Way Gambler (Maygay M2)", GAME_IS_SKELETON )
-GAME( 199?, mg_jv , 0 , maygayew, maygayew, driver_device, 0, ROT0, "Maygay", "Jack & Vera (Maygay M2)", GAME_IS_SKELETON )
-GAME( 199?, mg_pbw , 0 , maygayew, maygayew, driver_device, 0, ROT0, "Maygay", "Pinball Wizard (Maygay M2)", GAME_IS_SKELETON )
-GAME( 199?, mg_scl , 0 , maygayew, maygayew, driver_device, 0, ROT0, "Maygay", "Super Clue (Maygay M2)", GAME_IS_SKELETON )
-GAME( 199?, mg_kf , 0 , maygayew, maygayew, driver_device, 0, ROT0, "Maygay", "Krypton Factor (Maygay M2)", GAME_IS_SKELETON )
+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 )
diff --git a/src/mame/drivers/maygayv1.c b/src/mame/drivers/maygayv1.c
index 05ab9377c14..927c6cad996 100644
--- a/src/mame/drivers/maygayv1.c
+++ b/src/mame/drivers/maygayv1.c
@@ -1250,7 +1250,7 @@ DRIVER_INIT_MEMBER(maygayv1_state,screenpl)
m_p1 = m_p3 = 0xff;
}
-#define GAME_FLAGS GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_REQUIRES_ARTWORK
+#define GAME_FLAGS MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_REQUIRES_ARTWORK
GAME( 1991, screenpl, 0, maygayv1, screenpl, maygayv1_state, screenpl, ROT0, "Maygay", "Screen Play (Maygay, MV1 Video, ver. 4.0)", GAME_FLAGS )
GAME( 1991, screenp1, screenpl, maygayv1, screenpl, maygayv1_state, screenpl, ROT0, "Maygay", "Screen Play (Maygay, MV1 Video, ver. 1.9, set 1)", GAME_FLAGS )
diff --git a/src/mame/drivers/mayumi.c b/src/mame/drivers/mayumi.c
index 3d10951e610..ecd1af67574 100644
--- a/src/mame/drivers/mayumi.c
+++ b/src/mame/drivers/mayumi.c
@@ -434,4 +434,4 @@ ROM_END
*
*************************************/
-GAME( 1988, mayumi, 0, mayumi, mayumi, driver_device, 0, ROT0, "Sanritsu / Victory L.L.C.", "Kikiippatsu Mayumi-chan (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1988, mayumi, 0, mayumi, mayumi, driver_device, 0, ROT0, "Sanritsu / Victory L.L.C.", "Kikiippatsu Mayumi-chan (Japan)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/mazerbla.c b/src/mame/drivers/mazerbla.c
index 722865dbcc8..9fed4900608 100644
--- a/src/mame/drivers/mazerbla.c
+++ b/src/mame/drivers/mazerbla.c
@@ -350,7 +350,7 @@ WRITE8_MEMBER(mazerbla_state::cfb_vbank_w)
WRITE8_MEMBER(mazerbla_state::cfb_rom_bank_sel_w)
{
m_gfx_rom_bank = data;
-
+
membank("bank1")->set_entry(m_gfx_rom_bank);
}
@@ -1381,7 +1381,7 @@ INTERRUPT_GEN_MEMBER(mazerbla_state::sound_interrupt)
void mazerbla_state::machine_start()
{
membank("bank1")->configure_entries(0, 256, memregion("sub2")->base() + 0x10000, 0x2000);
-
+
save_item(NAME(m_vcu_video_reg));
save_item(NAME(m_vcu_gfx_addr));
save_item(NAME(m_vcu_gfx_param_addr));
@@ -1669,6 +1669,6 @@ DRIVER_INIT_MEMBER(mazerbla_state,greatgun)
rom[0x0380] = 0;
}
-GAME( 1983, mazerbla, 0, mazerbla, mazerbla, mazerbla_state, mazerbla, ROT0, "Stern Electronics", "Mazer Blazer (set 1)", GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1983, mazerblaa, mazerbla, mazerbla, mazerbla, mazerbla_state, mazerbla, ROT0, "Stern Electronics", "Mazer Blazer (set 2)", GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1983, greatgun, 0, greatgun, greatgun, mazerbla_state, greatgun, ROT0, "Stern Electronics", "Great Guns", GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/mbc200.c b/src/mame/drivers/mbc200.c
index 5c9ee51937a..104b12435e4 100644
--- a/src/mess/drivers/mbc200.c
+++ b/src/mame/drivers/mbc200.c
@@ -264,4 +264,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1982, mbc200, 0, 0, mbc200, mbc200, driver_device, 0, "Sanyo", "MBC-200", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/mbc55x.c b/src/mame/drivers/mbc55x.c
index d5b1c2b7a06..602eb146c8a 100644
--- a/src/mess/drivers/mbc55x.c
+++ b/src/mame/drivers/mbc55x.c
@@ -313,4 +313,4 @@ 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 /*GAME_NO_SOUND*/)
+COMP( 1983, mbc55x, 0, 0, mbc55x, mbc55x, driver_device, 0, "Sanyo", "MBC-55x", 0 /*MACHINE_NO_SOUND*/)
diff --git a/src/mess/drivers/mbdtower.c b/src/mame/drivers/mbdtower.c
index 2502c38c2a6..65d27fb06f4 100644
--- a/src/mess/drivers/mbdtower.c
+++ b/src/mame/drivers/mbdtower.c
@@ -13,7 +13,7 @@
This is a board game, it obviously requires game pieces and the board.
The emulated part is the centerpiece, a black tower with a rotating card
panel and LED digits for displaying health, amount of gold, etc. As far
- as MESS is concerned, the game works fine.
+ as MAME is concerned, the game works fine.
To start up the game, first press [MOVE], the machine now does a self-test.
Then select level and number of players and the game will start. Read the
@@ -282,4 +282,4 @@ ROM_START( mbdtower )
ROM_END
-CONS( 1981, mbdtower, 0, 0, mbdtower, mbdtower, driver_device, 0, "Milton Bradley", "Dark Tower (Milton Bradley)", GAME_SUPPORTS_SAVE | GAME_MECHANICAL )
+CONS( 1981, mbdtower, 0, 0, mbdtower, mbdtower, driver_device, 0, "Milton Bradley", "Dark Tower (Milton Bradley)", MACHINE_SUPPORTS_SAVE | MACHINE_MECHANICAL )
diff --git a/src/mess/drivers/mbee.c b/src/mame/drivers/mbee.c
index 7d40de85c95..35cfd694d67 100644
--- a/src/mess/drivers/mbee.c
+++ b/src/mame/drivers/mbee.c
@@ -767,7 +767,9 @@ static MACHINE_CONFIG_DERIVED( mbee56, mbeeic )
MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(mbee_state, fdc_drq_w))
MCFG_WD_FDC_ENMF_CALLBACK(GND)
MCFG_FLOPPY_DRIVE_ADD("fdc:0", mbee_floppies, "drive5a", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", mbee_floppies, "drive5b", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( mbee128, mbee56 )
@@ -789,7 +791,9 @@ static MACHINE_CONFIG_DERIVED( mbee128p, mbeeppc )
MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(mbee_state, fdc_drq_w))
MCFG_WD_FDC_ENMF_CALLBACK(GND)
MCFG_FLOPPY_DRIVE_ADD("fdc:0", mbee_floppies, "drive5a", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", mbee_floppies, "drive5b", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( mbee256, mbee128p )
@@ -801,7 +805,9 @@ static MACHINE_CONFIG_DERIVED( mbee256, mbee128p )
MCFG_DEVICE_REMOVE("fdc:0")
MCFG_DEVICE_REMOVE("fdc:1")
MCFG_FLOPPY_DRIVE_ADD("fdc:0", mbee_floppies, "drive3a", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", mbee_floppies, "drive3b", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( mbeett, mbeeppc )
@@ -1151,8 +1157,8 @@ COMP( 1985, mbeepc85, mbee, 0, mbeepc, mbee, mbee_state, mbeepc8
COMP( 1985, mbeepc85b,mbee, 0, mbeepc, mbee, mbee_state, mbeepc85, "Applied Technology", "Microbee PC85 (New version)" , 0 )
COMP( 1985, mbeepc85s,mbee, 0, mbeepc, mbee, mbee_state, mbeepc85, "Applied Technology", "Microbee PC85 (Swedish)" , 0 )
COMP( 1986, mbeeppc, mbee, 0, mbeeppc, mbee, mbee_state, mbeeppc, "Applied Technology", "Microbee Premium PC85" , 0 )
-COMP( 1986, mbeett, mbee, 0, mbeett, mbee256, mbee_state, mbeett, "Applied Technology", "Microbee Teleterm" , GAME_NOT_WORKING )
-COMP( 1986, mbee56, mbee, 0, mbee56, mbee, mbee_state, mbee56, "Applied Technology", "Microbee 56k" , GAME_NOT_WORKING )
-COMP( 1986, mbee128, mbee, 0, mbee128, mbee128, mbee_state, mbee128, "Applied Technology", "Microbee 128k Standard" , GAME_NOT_WORKING )
-COMP( 1986, mbee128p, mbee, 0, mbee128p, mbee128, mbee_state, mbee128, "Applied Technology", "Microbee 128k Premium" , GAME_NOT_WORKING )
-COMP( 1987, mbee256, mbee, 0, mbee256, mbee256, mbee_state, mbee256, "Applied Technology", "Microbee 256TC" , GAME_NOT_WORKING )
+COMP( 1986, mbeett, mbee, 0, mbeett, mbee256, mbee_state, mbeett, "Applied Technology", "Microbee Teleterm" , MACHINE_NOT_WORKING )
+COMP( 1986, mbee56, mbee, 0, mbee56, mbee, mbee_state, mbee56, "Applied Technology", "Microbee 56k" , MACHINE_NOT_WORKING )
+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 )
diff --git a/src/mess/drivers/mc10.c b/src/mame/drivers/mc10.c
index 9b2ffcd9c9e..af38ba6cc63 100644
--- a/src/mess/drivers/mc10.c
+++ b/src/mame/drivers/mc10.c
@@ -602,7 +602,7 @@ ROM_END
***************************************************************************/
/* 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", GAME_SUPPORTS_SAVE )
-COMP( 1983, alice, mc10, 0, mc10, alice, mc10_state, mc10, "Matra & Hachette", "Alice", GAME_SUPPORTS_SAVE )
-COMP( 1984, alice32, 0, 0, alice32, alice, mc10_state, mc10, "Matra & Hachette", "Alice 32", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-COMP( 1985, alice90, alice32, 0, alice90, alice, mc10_state, mc10, "Matra & Hachette", "Alice 90", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+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/mess/drivers/mc1000.c b/src/mame/drivers/mc1000.c
index e543d46a9bb..defef2a94c0 100644
--- a/src/mess/drivers/mc1000.c
+++ b/src/mame/drivers/mc1000.c
@@ -378,7 +378,7 @@ void mc1000_state::machine_reset()
+---------*---*---o V+
| | |
+-+ | |
- | |309K | |
+ | |390K | |
| |R17 |8 |4
+-+ +-------+
| 7| |3
@@ -390,23 +390,23 @@ void mc1000_state::machine_reset()
| | | | 555 |
+-+ | | |
| | 6| |5
- *----*?-| |---+
+ *----*--| |---+
| | | |
---C30 +-------+ ---C29
- ---103 |1 ---103
+ ---10n |1 ---10n
_|_ _|_ _|_
/// /// ///
Calculated properties:
* 99.74489795918367 Duty Cycle Percentage
- * 368.1126130105722 Frequency in Hertz
+ * 367.3469387755102 Frequency in Hertz
* 0.00000693 Seconds Low
- * 0.0027096299999999998 Seconds High
+ * 0.00270963 Seconds High
*/
-#define MC1000_NE555_FREQ (368) /* Hz */
+#define MC1000_NE555_FREQ (367) /* Hz */
#define MC1000_NE555_DUTY_CYCLE (99.745) /* % */
TIMER_DEVICE_CALLBACK_MEMBER(mc1000_state::ne555_tick)
@@ -499,4 +499,4 @@ DRIVER_INIT_MEMBER(mc1000_state,mc1000)
/* System Drivers */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 1985, mc1000, 0, 0, mc1000, mc1000, mc1000_state, mc1000, "CCE", "MC-1000", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+COMP( 1985, mc1000, 0, 0, mc1000, mc1000, mc1000_state, mc1000, "CCE", "MC-1000", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/mc1502.c b/src/mame/drivers/mc1502.c
index da6fc21660e..12134cbc3ab 100644
--- a/src/mess/drivers/mc1502.c
+++ b/src/mame/drivers/mc1502.c
@@ -407,4 +407,4 @@ ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
COMP ( 1989, mc1502, ibm5150, 0, mc1502, mc1502, mc1502_state, mc1502, "NPO Microprocessor", "Elektronika MC-1502", 0)
-COMP ( 1988, pk88, ibm5150, 0, pk88, mc1502, mc1502_state, mc1502, "NPO Microprocessor", "Elektronika PK-88", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP ( 1988, pk88, ibm5150, 0, pk88, mc1502, mc1502_state, mc1502, "NPO Microprocessor", "Elektronika PK-88", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/mc80.c b/src/mame/drivers/mc80.c
index 2592bafda83..ee2ae44bfee 100644
--- a/src/mess/drivers/mc80.c
+++ b/src/mame/drivers/mc80.c
@@ -300,5 +300,5 @@ 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", GAME_NO_SOUND)
-COMP( 198?, mc8030, mc8020, 0, mc8030, mc8030, driver_device, 0, "VEB Elektronik Gera", "MC-80.30/31", GAME_NOT_WORKING | GAME_NO_SOUND | ORIENTATION_FLIP_X)
+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)
diff --git a/src/mame/drivers/mcatadv.c b/src/mame/drivers/mcatadv.c
index acac838fd8a..68106e00314 100644
--- a/src/mame/drivers/mcatadv.c
+++ b/src/mame/drivers/mcatadv.c
@@ -659,9 +659,9 @@ ROM_START( nostk )
ROM_END
-GAME( 1993, mcatadv, 0, mcatadv, mcatadv, driver_device, 0, ROT0, "Wintechno", "Magical Cat Adventure", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1993, mcatadvj, mcatadv, mcatadv, mcatadv, driver_device, 0, ROT0, "Wintechno", "Magical Cat Adventure (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1993, catt, mcatadv, mcatadv, mcatadv, driver_device, 0, ROT0, "Wintechno", "Catt (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1993, nost, 0, nost, nost, driver_device, 0, ROT270, "Face", "Nostradamus", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1993, nostj, nost, nost, nost, driver_device, 0, ROT270, "Face", "Nostradamus (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1993, nostk, nost, nost, nost, driver_device, 0, ROT270, "Face", "Nostradamus (Korea)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/mcb216.c b/src/mame/drivers/mcb216.c
index 931042455b6..05aaf8960f8 100644
--- a/src/mess/drivers/mcb216.c
+++ b/src/mame/drivers/mcb216.c
@@ -157,5 +157,5 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND_HW )
-COMP( 1977, cb308, mcb216, 0, cb308, mcb216, driver_device, 0, "Cromemco", "CB-308", GAME_NOT_WORKING | GAME_NO_SOUND_HW )
+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 )
diff --git a/src/mess/drivers/mccpm.c b/src/mame/drivers/mccpm.c
index e4fa13b6cea..7821bd59c3e 100644
--- a/src/mess/drivers/mccpm.c
+++ b/src/mame/drivers/mccpm.c
@@ -149,4 +149,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1981, mccpm, 0, 0, mccpm, mccpm, driver_device, 0, "GRAF Elektronik Systeme GmbH", "mc-CP/M-Computer", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/mcr.c b/src/mame/drivers/mcr.c
index 60d6c2b4a61..8bd89ee8ec0 100644
--- a/src/mame/drivers/mcr.c
+++ b/src/mame/drivers/mcr.c
@@ -1651,20 +1651,20 @@ static INPUT_PORTS_START( demoderb )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
PORT_START("ssio:IP1.ALT1") /* J4 10-13,15-18 */ /* The high 6 bits contain the steering wheel value */
- PORT_BIT( 0x3f, 0x00, IPT_DIAL ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_REVERSE PORT_PLAYER(1)
+ PORT_BIT( 0x3f, 0x00, IPT_DIAL ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_INVERT PORT_PLAYER(1)
PORT_START("ssio:IP1.ALT2") /* IN1 (muxed) -- the high 6 bits contain the steering wheel value */
- PORT_BIT( 0x3f, 0x00, IPT_DIAL ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_REVERSE PORT_PLAYER(3)
+ PORT_BIT( 0x3f, 0x00, IPT_DIAL ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_INVERT PORT_PLAYER(3)
PORT_START("ssio:IP2") /* J5 1-8 */ /* The high 6 bits contain the steering wheel value */
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
PORT_START("ssio:IP2.ALT1") /* J5 1-8 */ /* The high 6 bits contain the steering wheel value */
- PORT_BIT( 0x3f, 0x00, IPT_DIAL ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_REVERSE PORT_PLAYER(2)
+ PORT_BIT( 0x3f, 0x00, IPT_DIAL ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_INVERT PORT_PLAYER(2)
PORT_START("ssio:IP2.ALT2") /* IN2 (muxed) -- the high 6 bits contain the steering wheel value */
- PORT_BIT( 0x3f, 0x00, IPT_DIAL ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_REVERSE PORT_PLAYER(4)
+ PORT_BIT( 0x3f, 0x00, IPT_DIAL ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_INVERT PORT_PLAYER(4)
PORT_START("ssio:IP3") /* DIPSW @ B3 */
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Cabinet ) )
@@ -2924,48 +2924,48 @@ DRIVER_INIT_MEMBER(mcr_state,demoderb)
*************************************/
/* 90009 CPU board + 91399 video gen + 90908 sound I/O */
-GAME( 1981, solarfox, 0, mcr_90009, solarfox, mcr_state, solarfox, ROT90 ^ ORIENTATION_FLIP_Y, "Bally Midway", "Solar Fox (upright)", GAME_SUPPORTS_SAVE )
-GAME( 1981, kick, 0, mcr_90009, kick, mcr_state, kick, ORIENTATION_SWAP_XY, "Midway", "Kick (upright)", GAME_SUPPORTS_SAVE )
-GAME( 1981, kickman, kick, mcr_90009, kick, mcr_state, kick, ORIENTATION_SWAP_XY, "Midway", "Kickman (upright)", GAME_SUPPORTS_SAVE )
-GAME( 1981, kickc, kick, mcr_90009, kickc, mcr_state, kick, ROT90, "Midway", "Kick (cocktail)", GAME_SUPPORTS_SAVE )
-GAMEL(1985, dpoker, 0, mcr_90009_dp, dpoker, mcr_state, dpoker, ROT0, "Bally", "Draw Poker (Bally, 03-20)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_dpoker )
+GAME( 1981, solarfox, 0, mcr_90009, solarfox, mcr_state, solarfox, ROT90 ^ ORIENTATION_FLIP_Y, "Bally Midway", "Solar Fox (upright)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, kick, 0, mcr_90009, kick, mcr_state, kick, ORIENTATION_SWAP_XY, "Midway", "Kick (upright)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, kickman, kick, mcr_90009, kick, mcr_state, kick, ORIENTATION_SWAP_XY, "Midway", "Kickman (upright)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, kickc, kick, mcr_90009, kickc, mcr_state, kick, ROT90, "Midway", "Kick (cocktail)", MACHINE_SUPPORTS_SAVE )
+GAMEL(1985, dpoker, 0, mcr_90009_dp, dpoker, mcr_state, dpoker, ROT0, "Bally", "Draw Poker (Bally, 03-20)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_dpoker )
/* 90010 CPU board + 91399 video gen + 90913 sound I/O */
-GAME( 1981, shollow, 0, mcr_90010, shollow, mcr_state, mcr_90010, ROT90, "Bally Midway", "Satan's Hollow (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1981, shollow2, shollow, mcr_90010, shollow, mcr_state, mcr_90010, ROT90, "Bally Midway", "Satan's Hollow (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1982, tron, 0, mcr_90010, tron, mcr_state, mcr_90010, ROT90, "Bally Midway", "Tron (8/9)", GAME_SUPPORTS_SAVE )
-GAME( 1982, tron2, tron, mcr_90010, tron, mcr_state, mcr_90010, ROT90, "Bally Midway", "Tron (6/25)", GAME_SUPPORTS_SAVE )
-GAME( 1982, tron3, tron, mcr_90010, tron3, mcr_state, mcr_90010, ROT90, "Bally Midway", "Tron (6/17)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1982, tron4, tron, mcr_90010, tron3, mcr_state, mcr_90010, ROT90, "Bally Midway", "Tron (6/15)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1982, tronger, tron, mcr_90010, tron3, mcr_state, mcr_90010, ROT90, "Bally Midway", "Tron (Germany)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1982, domino, 0, mcr_90010, domino, mcr_state, mcr_90010, ROT0, "Bally Midway", "Domino Man", GAME_SUPPORTS_SAVE )
-GAME( 1982, wacko, 0, mcr_90010, wacko, mcr_state, wacko, ROT0, "Bally Midway", "Wacko", GAME_SUPPORTS_SAVE )
-GAME( 1984, twotigerc,twotiger, mcr_90010, twotigrc, mcr_state, mcr_90010, ROT0, "Bally Midway", "Two Tigers (Tron conversion)", GAME_SUPPORTS_SAVE )
+GAME( 1981, shollow, 0, mcr_90010, shollow, mcr_state, mcr_90010, ROT90, "Bally Midway", "Satan's Hollow (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, shollow2, shollow, mcr_90010, shollow, mcr_state, mcr_90010, ROT90, "Bally Midway", "Satan's Hollow (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, tron, 0, mcr_90010, tron, mcr_state, mcr_90010, ROT90, "Bally Midway", "Tron (8/9)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, tron2, tron, mcr_90010, tron, mcr_state, mcr_90010, ROT90, "Bally Midway", "Tron (6/25)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, tron3, tron, mcr_90010, tron3, mcr_state, mcr_90010, ROT90, "Bally Midway", "Tron (6/17)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
+GAME( 1982, tron4, tron, mcr_90010, tron3, mcr_state, mcr_90010, ROT90, "Bally Midway", "Tron (6/15)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
+GAME( 1982, tronger, tron, mcr_90010, tron3, mcr_state, mcr_90010, ROT90, "Bally Midway", "Tron (Germany)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
+GAME( 1982, domino, 0, mcr_90010, domino, mcr_state, mcr_90010, ROT0, "Bally Midway", "Domino Man", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, wacko, 0, mcr_90010, wacko, mcr_state, wacko, ROT0, "Bally Midway", "Wacko", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, twotigerc,twotiger, mcr_90010, twotigrc, mcr_state, mcr_90010, ROT0, "Bally Midway", "Two Tigers (Tron conversion)", MACHINE_SUPPORTS_SAVE )
/* hacked 90010 CPU board + 91399 video gen + 90913 sound I/O + 8-track interface */
-GAME( 1984, twotiger, 0, mcr_90010_tt, twotiger, mcr_state, twotiger, ROT0, "Bally Midway", "Two Tigers (dedicated)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1984, twotiger, 0, mcr_90010_tt, twotiger, mcr_state, twotiger, ROT0, "Bally Midway", "Two Tigers (dedicated)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
/* 90010 CPU board + 91399 video gen + 91483 sound I/O */
-GAME( 1982, kroozr, 0, mcr_90010, kroozr, mcr_state, kroozr, ROT0, "Bally Midway", "Kozmik Kroozr", GAME_SUPPORTS_SAVE )
+GAME( 1982, kroozr, 0, mcr_90010, kroozr, mcr_state, kroozr, ROT0, "Bally Midway", "Kozmik Kroozr", MACHINE_SUPPORTS_SAVE )
/* 91475 CPU board + 91464 video gen + 90913 sound I/O + cassette interface */
-GAME( 1983, journey, 0, mcr_91475, journey, mcr_state, journey, ROT90, "Bally Midway", "Journey", GAME_SUPPORTS_SAVE )
+GAME( 1983, journey, 0, mcr_91475, journey, mcr_state, journey, ROT90, "Bally Midway", "Journey", MACHINE_SUPPORTS_SAVE )
/* 91490 CPU board + 91464 video gen + 90913 sound I/O */
-GAME( 1983, tapper, 0, mcr_91490, tapper, mcr_state, mcr_91490, ROT0, "Bally Midway", "Tapper (Budweiser, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1983, tappera, tapper, mcr_91490, tapper, mcr_state, mcr_91490, ROT0, "Bally Midway", "Tapper (Budweiser, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1983, sutapper, tapper, mcr_91490, tapper, mcr_state, mcr_91490, ROT0, "Bally Midway", "Tapper (Suntory)", GAME_SUPPORTS_SAVE )
-GAME( 1984, rbtapper, tapper, mcr_91490, tapper, mcr_state, mcr_91490, ROT0, "Bally Midway", "Tapper (Root Beer)", GAME_SUPPORTS_SAVE )
-GAME( 1984, timber, 0, mcr_91490, timber, mcr_state, mcr_91490, ROT0, "Bally Midway", "Timber", GAME_SUPPORTS_SAVE )
-GAME( 1983, dotron, 0, mcr_91490, dotron, mcr_state, mcr_91490, ORIENTATION_FLIP_X, "Bally Midway", "Discs of Tron (Upright)", GAME_SUPPORTS_SAVE )
-GAME( 1983, dotrona, dotron, mcr_91490, dotron, mcr_state, mcr_91490, ORIENTATION_FLIP_X, "Bally Midway", "Discs of Tron (Upright alternate)", GAME_SUPPORTS_SAVE )
+GAME( 1983, tapper, 0, mcr_91490, tapper, mcr_state, mcr_91490, ROT0, "Bally Midway", "Tapper (Budweiser, set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, tappera, tapper, mcr_91490, tapper, mcr_state, mcr_91490, ROT0, "Bally Midway", "Tapper (Budweiser, set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, sutapper, tapper, mcr_91490, tapper, mcr_state, mcr_91490, ROT0, "Bally Midway", "Tapper (Suntory)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, rbtapper, tapper, mcr_91490, tapper, mcr_state, mcr_91490, ROT0, "Bally Midway", "Tapper (Root Beer)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, timber, 0, mcr_91490, timber, mcr_state, mcr_91490, ROT0, "Bally Midway", "Timber", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, dotron, 0, mcr_91490, dotron, mcr_state, mcr_91490, ORIENTATION_FLIP_X, "Bally Midway", "Discs of Tron (Upright)", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, dotrona, dotron, mcr_91490, dotron, mcr_state, mcr_91490, ORIENTATION_FLIP_X, "Bally Midway", "Discs of Tron (Upright alternate)", MACHINE_SUPPORTS_SAVE )
/* 91490 CPU board + 91464 video gen + 91657 sound I/O + Squawk n' Talk */
-GAME( 1983, dotrone, dotron, mcr_91490_snt, dotrone, mcr_state, dotrone, ORIENTATION_FLIP_X, "Bally Midway", "Discs of Tron (Environmental)", GAME_SUPPORTS_SAVE )
+GAME( 1983, dotrone, dotron, mcr_91490_snt, dotrone, mcr_state, dotrone, ORIENTATION_FLIP_X, "Bally Midway", "Discs of Tron (Environmental)", MACHINE_SUPPORTS_SAVE )
/* 91490 CPU board + 91464 video gen + 91657 sound I/O + Squawk n' Talk + IPU laserdisk interface */
-GAME( 1983, nflfoot, 0, mcr_91490_ipu, nflfoot, mcr_state, nflfoot, ROT0, "Bally Midway", "NFL Football", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
+GAME( 1983, nflfoot, 0, mcr_91490_ipu, nflfoot, mcr_state, nflfoot, ROT0, "Bally Midway", "NFL Football", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
/* 91490 CPU board + 91464 video gen + 90913 sound I/O + Turbo Chip Squeak */
-GAME( 1984, demoderb, 0, mcr_91490_tcs, demoderb, mcr_state, demoderb, ROT0, "Bally Midway", "Demolition Derby", GAME_SUPPORTS_SAVE )
-GAME( 1984, demoderbc,demoderb, mcr_91490_tcs, demoderbc,mcr_state, demoderb, ROT0, "Bally Midway", "Demolition Derby (cocktail)", GAME_SUPPORTS_SAVE )
+GAME( 1984, demoderb, 0, mcr_91490_tcs, demoderb, mcr_state, demoderb, ROT0, "Bally Midway", "Demolition Derby", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, demoderbc,demoderb, mcr_91490_tcs, demoderbc,mcr_state, demoderb, ROT0, "Bally Midway", "Demolition Derby (cocktail)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/mcr3.c b/src/mame/drivers/mcr3.c
index a9357396409..ef9e885ead8 100644
--- a/src/mame/drivers/mcr3.c
+++ b/src/mame/drivers/mcr3.c
@@ -2022,17 +2022,20 @@ DRIVER_INIT_MEMBER(mcr3_state,turbotag)
*************************************/
/* MCR monoboard games */
-GAME( 1984, demoderm, demoderb, mono_tcs, demoderm, mcr3_state, demoderm, ROT0, "Bally Midway", "Demolition Derby (MCR-3 Mono Board Version)", GAME_SUPPORTS_SAVE )
-GAME( 1985, sarge, 0, mono_tcs, sarge, mcr3_state, sarge, ROT0, "Bally Midway", "Sarge", GAME_SUPPORTS_SAVE )
-GAME( 1986, maxrpm, 0, mono_tcs, maxrpm, mcr3_state, maxrpm, ROT0, "Bally Midway", "Max RPM (ver 2)", GAME_SUPPORTS_SAVE )
-GAME( 1986, rampage, 0, mono_sg, rampage, mcr3_state, rampage, ROT0, "Bally Midway", "Rampage (Rev 3, 8/27/86)", GAME_SUPPORTS_SAVE )
-GAME( 1986, rampage2, rampage, mono_sg, rampage, mcr3_state, rampage, ROT0, "Bally Midway", "Rampage (Rev 2, 8/4/86)", GAME_SUPPORTS_SAVE )
-GAME( 1986, powerdrv, 0, mono_sg, powerdrv, mcr3_state, powerdrv, ROT0, "Bally Midway", "Power Drive", GAME_SUPPORTS_SAVE )
-GAME( 1987, stargrds, 0, mono_sg, stargrds, mcr3_state, stargrds, ROT0, "Bally Midway", "Star Guards", GAME_SUPPORTS_SAVE )
+GAME( 1984, demoderm, demoderb, mono_tcs, demoderm, mcr3_state, demoderm, ROT0, "Bally Midway", "Demolition Derby (MCR-3 Mono Board Version)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, sarge, 0, mono_tcs, sarge, mcr3_state, sarge, ROT0, "Bally Midway", "Sarge", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, maxrpm, 0, mono_tcs, maxrpm, mcr3_state, maxrpm, ROT0, "Bally Midway", "Max RPM (ver 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, rampage, 0, mono_sg, rampage, mcr3_state, rampage, ROT0, "Bally Midway", "Rampage (Rev 3, 8/27/86)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, rampage2, rampage, mono_sg, rampage, mcr3_state, rampage, ROT0, "Bally Midway", "Rampage (Rev 2, 8/4/86)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, powerdrv, 0, mono_sg, powerdrv, mcr3_state, powerdrv, ROT0, "Bally Midway", "Power Drive", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, stargrds, 0, mono_sg, stargrds, mcr3_state, stargrds, ROT0, "Bally Midway", "Star Guards", MACHINE_SUPPORTS_SAVE )
/* MCR scrolling games */
-GAMEL(1983, spyhunt, 0, mcrsc_csd, spyhunt, mcr3_state, spyhunt, ROT90, "Bally Midway", "Spy Hunter", GAME_SUPPORTS_SAVE, layout_spyhunt )
-GAMEL(1983, spyhuntp, spyhunt, mcrsc_csd, spyhunt, mcr3_state, spyhunt, ROT90, "Bally Midway (Playtronic license)", "Spy Hunter (Playtronic license)", GAME_SUPPORTS_SAVE, layout_spyhunt )
-GAME (1983, spyhuntpr,spyhunt, spyhuntpr, spyhuntpr,mcr3_state, spyhuntpr,ROT90, "Bally Midway (Recreativos Franco S.A. license)", "Spy Hunter (Spain, Recreativos Franco S.A. PCB)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // PCB made by Recreativos Franco S.A. in Spain, has Bally Midway logo, board is dated '85' so seems to be a low-cost rebuild? it is unclear if it made it to market.
-GAME( 1984, crater, 0, mcrscroll, crater, mcr3_state, crater, ORIENTATION_FLIP_X, "Bally Midway", "Crater Raider", GAME_SUPPORTS_SAVE )
-GAMEL(1985, turbotag, 0, mcrsc_csd, turbotag, mcr3_state, turbotag, ROT90, "Bally Midway", "Turbo Tag (prototype)", GAME_SUPPORTS_SAVE, layout_turbotag )
+GAMEL(1983, spyhunt, 0, mcrsc_csd, spyhunt, mcr3_state, spyhunt, ROT90, "Bally Midway", "Spy Hunter", MACHINE_SUPPORTS_SAVE, layout_spyhunt )
+GAMEL(1983, spyhuntp, spyhunt, mcrsc_csd, spyhunt, mcr3_state, spyhunt, ROT90, "Bally Midway (Playtronic license)", "Spy Hunter (Playtronic license)", MACHINE_SUPPORTS_SAVE, layout_spyhunt )
+GAME( 1984, crater, 0, mcrscroll, crater, mcr3_state, crater, ORIENTATION_FLIP_X, "Bally Midway", "Crater Raider", MACHINE_SUPPORTS_SAVE )
+GAMEL(1985, turbotag, 0, mcrsc_csd, turbotag, mcr3_state, turbotag, ROT90, "Bally Midway", "Turbo Tag (prototype)", MACHINE_SUPPORTS_SAVE, layout_turbotag )
+
+// very different hardware, probably bootleg despite the license text printed on the PCB, similar to '1942p' in 1942.c. Probably should be put in separate driver.
+// PCB made by Tecfri for Recreativos Franco S.A. in Spain, has Bally Midway logo, and licensing text on the PCB. Board is dated '85' so seems to be a low-cost rebuild? it is unclear if it made it to market.
+GAME (1983, spyhuntpr,spyhunt, spyhuntpr, spyhuntpr,mcr3_state, spyhuntpr,ROT90, "Bally Midway (Recreativos Franco S.A. license)", "Spy Hunter (Spain, Tecfri / Recreativos Franco S.A. PCB)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/mcr68.c b/src/mame/drivers/mcr68.c
index a1fcb2a4d94..1736a5fb1f5 100644
--- a/src/mame/drivers/mcr68.c
+++ b/src/mame/drivers/mcr68.c
@@ -308,7 +308,7 @@ static ADDRESS_MAP_START( mcr68_map, AS_PROGRAM, 16, mcr68_state )
AM_RANGE(0x070000, 0x070fff) AM_RAM_WRITE(mcr68_videoram_w) AM_SHARE("videoram")
AM_RANGE(0x071000, 0x071fff) AM_RAM
AM_RANGE(0x080000, 0x080fff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x090000, 0x09007f) AM_WRITE(mcr68_paletteram_w) AM_SHARE("paletteram")
+ AM_RANGE(0x090000, 0x09007f) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x0a0000, 0x0a000f) AM_READWRITE(mcr68_6840_upper_r, mcr68_6840_upper_w)
AM_RANGE(0x0b0000, 0x0bffff) AM_WRITE(watchdog_reset16_w)
AM_RANGE(0x0d0000, 0x0dffff) AM_READ_PORT("IN0")
@@ -334,7 +334,7 @@ static ADDRESS_MAP_START( zwackery_map, AS_PROGRAM, 16, mcr68_state )
AM_RANGE(0x108000, 0x108007) AM_DEVREADWRITE8("pia1", pia6821_device, read, write, 0x00ff)
AM_RANGE(0x10c000, 0x10c007) AM_DEVREADWRITE8("pia2", pia6821_device, read, write, 0x00ff)
AM_RANGE(0x800000, 0x800fff) AM_RAM_WRITE(zwackery_videoram_w) AM_SHARE("videoram")
- AM_RANGE(0x802000, 0x803fff) AM_RAM_WRITE(zwackery_paletteram_w) AM_SHARE("paletteram")
+ AM_RANGE(0x802000, 0x803fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0xc00000, 0xc00fff) AM_RAM_WRITE(zwackery_spriteram_w) AM_SHARE("spriteram")
ADDRESS_MAP_END
@@ -352,7 +352,7 @@ static ADDRESS_MAP_START( pigskin_map, AS_PROGRAM, 16, mcr68_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080000, 0x08ffff) AM_READ(pigskin_port_1_r)
AM_RANGE(0x0a0000, 0x0affff) AM_READ(pigskin_port_2_r)
- AM_RANGE(0x0c0000, 0x0c007f) AM_WRITE(mcr68_paletteram_w) AM_SHARE("paletteram")
+ AM_RANGE(0x0c0000, 0x0c007f) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x0e0000, 0x0effff) AM_WRITE(watchdog_reset16_w)
AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE(mcr68_videoram_w) AM_SHARE("videoram")
AM_RANGE(0x120000, 0x120001) AM_READWRITE(pigskin_protection_r, pigskin_protection_w)
@@ -378,7 +378,7 @@ static ADDRESS_MAP_START( trisport_map, AS_PROGRAM, 16, mcr68_state )
AM_RANGE(0x080000, 0x08ffff) AM_READ(trisport_port_1_r)
AM_RANGE(0x0a0000, 0x0affff) AM_READ_PORT("DSW")
AM_RANGE(0x100000, 0x103fff) AM_RAM AM_SHARE("nvram")
- AM_RANGE(0x120000, 0x12007f) AM_WRITE(mcr68_paletteram_w) AM_SHARE("paletteram")
+ AM_RANGE(0x120000, 0x12007f) AM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x140000, 0x1407ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x160000, 0x160fff) AM_RAM_WRITE(mcr68_videoram_w) AM_SHARE("videoram")
AM_RANGE(0x180000, 0x18000f) AM_READWRITE(mcr68_6840_upper_r, mcr68_6840_upper_w)
@@ -1054,6 +1054,7 @@ static MACHINE_CONFIG_START( zwackery, mcr68_state )
MCFG_GFXDECODE_ADD("gfxdecode", "palette", zwackery)
MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(xRRRRRBBBBBGGGGG_inverted)
MCFG_VIDEO_START_OVERRIDE(mcr68_state,zwackery)
@@ -1086,6 +1087,7 @@ static MACHINE_CONFIG_START( mcr68, mcr68_state )
MCFG_GFXDECODE_ADD("gfxdecode", "palette", mcr68)
MCFG_PALETTE_ADD("palette", 64)
+ MCFG_PALETTE_FORMAT(xxxxxxxRRRBBBGGG)
MCFG_VIDEO_START_OVERRIDE(mcr68_state,mcr68)
@@ -1831,22 +1833,22 @@ DRIVER_INIT_MEMBER(mcr68_state,trisport)
*
*************************************/
-GAME( 1984, zwackery, 0, zwackery, zwackery, mcr68_state, zwackery, ROT0, "Bally Midway", "Zwackery", GAME_SUPPORTS_SAVE )
+GAME( 1984, zwackery, 0, zwackery, zwackery, mcr68_state, zwackery, ROT0, "Bally Midway", "Zwackery", MACHINE_SUPPORTS_SAVE )
-GAME( 1987, xenophob, 0, xenophob, xenophob, mcr68_state, xenophob, ROT0, "Bally Midway", "Xenophobe", GAME_SUPPORTS_SAVE )
+GAME( 1987, xenophob, 0, xenophob, xenophob, mcr68_state, xenophob, ROT0, "Bally Midway", "Xenophobe", MACHINE_SUPPORTS_SAVE )
-GAME( 1987, spyhunt2, 0, spyhunt2, spyhunt2, mcr68_state, spyhunt2, ROT0, "Bally Midway", "Spy Hunter II (rev 2)", GAME_SUPPORTS_SAVE )
-GAME( 1987, spyhunt2a,spyhunt2, spyhunt2, spyhunt2, mcr68_state, spyhunt2, ROT0, "Bally Midway", "Spy Hunter II (rev 1)", GAME_SUPPORTS_SAVE )
+GAME( 1987, spyhunt2, 0, spyhunt2, spyhunt2, mcr68_state, spyhunt2, ROT0, "Bally Midway", "Spy Hunter II (rev 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, spyhunt2a,spyhunt2, spyhunt2, spyhunt2, mcr68_state, spyhunt2, ROT0, "Bally Midway", "Spy Hunter II (rev 1)", MACHINE_SUPPORTS_SAVE )
-GAME( 1988, blasted, 0, xenophob, blasted, mcr68_state, blasted, ROT0, "Bally Midway", "Blasted", GAME_SUPPORTS_SAVE )
-GAME( 1987, intlaser, blasted, intlaser, intlaser, mcr68_state, intlaser, ROT0, "Bally Midway", "International Team Laser (prototype)", GAME_SUPPORTS_SAVE )
+GAME( 1988, blasted, 0, xenophob, blasted, mcr68_state, blasted, ROT0, "Bally Midway", "Blasted", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, intlaser, blasted, intlaser, intlaser, mcr68_state, intlaser, ROT0, "Bally Midway", "International Team Laser (prototype)", MACHINE_SUPPORTS_SAVE )
-GAME( 1989, archrivl, 0, archrivl, archrivl, mcr68_state, archrivl, ROT0, "Bally Midway", "Arch Rivals (rev 4.0 6/29/89)", GAME_SUPPORTS_SAVE )
-GAME( 1989, archrivla,archrivl, archrivl, archrivl, mcr68_state, archrivl, ROT0, "Bally Midway", "Arch Rivals (rev 2.0 5/03/89)", GAME_SUPPORTS_SAVE )
-GAME( 1989, archrivlb,archrivl, archrivl, archrivlb,mcr68_state, archrivlb,ROT0, "bootleg", "Arch Rivals (rev 2.0 5/03/89, 8-way Joystick bootleg)", GAME_SUPPORTS_SAVE )
+GAME( 1989, archrivl, 0, archrivl, archrivl, mcr68_state, archrivl, ROT0, "Bally Midway", "Arch Rivals (rev 4.0 6/29/89)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, archrivla,archrivl, archrivl, archrivl, mcr68_state, archrivl, ROT0, "Bally Midway", "Arch Rivals (rev 2.0 5/03/89)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, archrivlb,archrivl, archrivl, archrivlb,mcr68_state, archrivlb,ROT0, "bootleg", "Arch Rivals (rev 2.0 5/03/89, 8-way Joystick bootleg)", MACHINE_SUPPORTS_SAVE )
-GAME( 1989, trisport, 0, trisport, trisport, mcr68_state, trisport, ROT270, "Bally Midway", "Tri-Sports", GAME_SUPPORTS_SAVE )
+GAME( 1989, trisport, 0, trisport, trisport, mcr68_state, trisport, ROT270, "Bally Midway", "Tri-Sports", MACHINE_SUPPORTS_SAVE )
-GAME( 1990, pigskin, 0, pigskin, pigskin, mcr68_state, pigskin, ROT0, "Midway", "Pigskin 621AD (rev 1.1K 8/01/90)", GAME_SUPPORTS_SAVE )
-GAME( 1990, pigskina, pigskin, pigskin, pigskin, mcr68_state, pigskin, ROT0, "Midway", "Pigskin 621AD (rev 2.0 7/06/90)", GAME_SUPPORTS_SAVE )
-GAME( 1990, pigskinb, pigskin, pigskin, pigskin, mcr68_state, pigskin, ROT0, "Midway", "Pigskin 621AD (rev 1.1 6/05/90)", GAME_SUPPORTS_SAVE )
+GAME( 1990, pigskin, 0, pigskin, pigskin, mcr68_state, pigskin, ROT0, "Midway", "Pigskin 621AD (rev 1.1K 8/01/90)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, pigskina, pigskin, pigskin, pigskin, mcr68_state, pigskin, ROT0, "Midway", "Pigskin 621AD (rev 2.0 7/06/90)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, pigskinb, pigskin, pigskin, pigskin, mcr68_state, pigskin, ROT0, "Midway", "Pigskin 621AD (rev 1.1 6/05/90)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/meadows.c b/src/mame/drivers/meadows.c
index 9063e2b4524..f1d06deb3a5 100644
--- a/src/mame/drivers/meadows.c
+++ b/src/mame/drivers/meadows.c
@@ -878,6 +878,6 @@ 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", GAME_NO_SOUND )
-GAMEL( 1978, gypsyjug, 0, meadows, meadows, meadows_state, gypsyjug, ROT0, "Meadows Games, Inc.", "Gypsy Juggler", GAME_IMPERFECT_GRAPHICS, layout_gypsyjug )
-GAMEL( 1978, minferno, 0, minferno, minferno, meadows_state, minferno, ROT0, "Meadows Games, Inc.", "Inferno (Meadows)", GAME_NO_SOUND, layout_minferno )
+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, 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.c b/src/mame/drivers/meadwttl.c
index 070ba3006b6..56c2186159e 100644
--- a/src/mame/drivers/meadwttl.c
+++ b/src/mame/drivers/meadwttl.c
@@ -164,7 +164,7 @@ ROM_END
-GAME( 1976, bombaway, 0, meadows, 0, driver_device, 0, ROT0, "Meadows", "Bombs Away [TTL]", GAME_IS_SKELETON )
-GAME( 1976, ckidzo, 0, meadows, 0, driver_device, 0, ROT0, "Meadows", "Ckidzo [TTL]", GAME_IS_SKELETON )
-GAME( 1976, cgunship, 0, meadows, 0, driver_device, 0, ROT0, "Meadows", "Cobra Gunship [TTL]", GAME_IS_SKELETON )
-GAME( 197?, mead4in1, 0, meadows, 0, driver_device, 0, ROT0, "Meadows", "Meadows 4 in 1 [TTL]", GAME_IS_SKELETON )
+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( 197?, mead4in1, 0, meadows, 0, driver_device, 0, ROT0, "Meadows", "Meadows 4 in 1 [TTL]", MACHINE_IS_SKELETON )
diff --git a/src/mame/drivers/mediagx.c b/src/mame/drivers/mediagx.c
index 70e1820ec71..57cca0c4b97 100644
--- a/src/mame/drivers/mediagx.c
+++ b/src/mame/drivers/mediagx.c
@@ -287,7 +287,7 @@ void mediagx_state::draw_framebuffer(bitmap_rgb32 &bitmap, const rectangle &clip
m_frame_height = height;
visarea.set(0, width - 1, 0, height - 1);
- m_screen->configure(width, height * 262 / 240, visarea, m_screen->frame_period().attoseconds);
+ m_screen->configure(width, height * 262 / 240, visarea, m_screen->frame_period().attoseconds());
}
if (m_disp_ctrl_reg[DC_OUTPUT_CFG] & 0x1) // 8-bit mode
@@ -1036,5 +1036,5 @@ ROM_END
/*****************************************************************************/
-GAME( 1998, a51site4, 0 , mediagx, mediagx, mediagx_state, a51site4, ROT0, "Atari Games", "Area 51: Site 4 (HD Rev 2.01, September 7, 1998)", GAME_NOT_WORKING )
-GAME( 1998, a51site4a,a51site4, mediagx, mediagx, mediagx_state, a51site4, ROT0, "Atari Games", "Area 51: Site 4 (HD Rev 2.0, September 11, 1998)", GAME_NOT_WORKING )
+GAME( 1998, a51site4, 0 , mediagx, mediagx, mediagx_state, a51site4, ROT0, "Atari Games", "Area 51: Site 4 (HD Rev 2.01, September 7, 1998)", MACHINE_NOT_WORKING )
+GAME( 1998, a51site4a,a51site4, mediagx, mediagx, mediagx_state, a51site4, ROT0, "Atari Games", "Area 51: Site 4 (HD Rev 2.0, September 11, 1998)", MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/megadriv.c b/src/mame/drivers/megadriv.c
index bf20a36202e..63164a11d0f 100644
--- a/src/mess/drivers/megadriv.c
+++ b/src/mame/drivers/megadriv.c
@@ -54,14 +54,14 @@ READ8_MEMBER(md_cons_state::mess_md_io_read_data_port)
{
/* here we read B, C & the additional buttons */
retdata = (m_megadrive_io_data_regs[portnum] & helper_6b) |
- (((m_io_pad6b[0][portnum]->read_safe(0) & 0x30) |
- (m_io_pad6b[1][portnum]->read_safe(0) & 0x0f)) & ~helper_6b);
+ ((((m_io_pad6b[0][portnum] ? m_io_pad6b[0][portnum]->read() : 0) & 0x30) |
+ ((m_io_pad6b[1][portnum] ? m_io_pad6b[1][portnum]->read() : 0) & 0x0f)) & ~helper_6b);
}
else
{
/* here we read B, C & the directional buttons */
retdata = (m_megadrive_io_data_regs[portnum] & helper_6b) |
- ((m_io_pad6b[0][portnum]->read_safe(0) & 0x3f) & ~helper_6b);
+ (((m_io_pad6b[0][portnum] ? m_io_pad6b[0][portnum]->read() : 0) & 0x3f) & ~helper_6b);
}
}
else
@@ -70,20 +70,20 @@ READ8_MEMBER(md_cons_state::mess_md_io_read_data_port)
{
/* here we read ((Start & A) >> 2) | 0x00 */
retdata = (m_megadrive_io_data_regs[portnum] & helper_6b) |
- (((m_io_pad6b[0][portnum]->read_safe(0) & 0xc0) >> 2) & ~helper_6b);
+ ((((m_io_pad6b[0][portnum] ? m_io_pad6b[0][portnum]->read() : 0) & 0xc0) >> 2) & ~helper_6b);
}
else if (m_io_stage[portnum]==2)
{
/* here we read ((Start & A) >> 2) | 0x0f */
retdata = (m_megadrive_io_data_regs[portnum] & helper_6b) |
- ((((m_io_pad6b[0][portnum]->read_safe(0) & 0xc0) >> 2) | 0x0f) & ~helper_6b);
+ (((((m_io_pad6b[0][portnum] ? m_io_pad6b[0][portnum]->read() : 0) & 0xc0) >> 2) | 0x0f) & ~helper_6b);
}
else
{
/* here we read ((Start & A) >> 2) | Up and Down */
retdata = (m_megadrive_io_data_regs[portnum] & helper_6b) |
- ((((m_io_pad6b[0][portnum]->read_safe(0) & 0xc0) >> 2) |
- (m_io_pad6b[0][portnum]->read_safe(0) & 0x03)) & ~helper_6b);
+ (((((m_io_pad6b[0][portnum] ? m_io_pad6b[0][portnum]->read() : 0) & 0xc0) >> 2) |
+ ((m_io_pad6b[0][portnum] ? m_io_pad6b[0][portnum]->read() : 0) & 0x03)) & ~helper_6b);
}
}
@@ -107,14 +107,14 @@ READ8_MEMBER(md_cons_state::mess_md_io_read_data_port)
{
/* here we read B, C & the directional buttons */
retdata = (m_megadrive_io_data_regs[portnum] & helper_3b) |
- (((m_io_pad3b[portnum]->read_safe(0) & 0x3f) | 0x40) & ~helper_3b);
+ ((((m_io_pad3b[portnum] ? m_io_pad3b[portnum]->read() : 0) & 0x3f) | 0x40) & ~helper_3b);
}
else
{
/* here we read ((Start & A) >> 2) | Up and Down */
retdata = (m_megadrive_io_data_regs[portnum] & helper_3b) |
- ((((m_io_pad3b[portnum]->read_safe(0) & 0xc0) >> 2) |
- (m_io_pad3b[portnum]->read_safe(0) & 0x03) | 0x40) & ~helper_3b);
+ (((((m_io_pad3b[portnum] ? m_io_pad3b[portnum]->read() : 0) & 0xc0) >> 2) |
+ ((m_io_pad3b[portnum] ? m_io_pad3b[portnum]->read() : 0) & 0x03) | 0x40) & ~helper_3b);
}
}
@@ -311,7 +311,7 @@ MACHINE_RESET_MEMBER(md_cons_state, ms_megadriv)
// same as screen_eof_megadriv but with addition of 32x and SegaCD/MegaCD pieces
void md_cons_state::screen_eof_console(screen_device &screen, bool state)
{
- if (m_io_reset->read_safe(0x00) & 0x01)
+ if (m_io_reset && (m_io_reset->read() & 0x01))
m_maincpu->set_input_line(INPUT_LINE_RESET, PULSE_LINE);
// rising edge
@@ -911,29 +911,29 @@ ROM_END
***************************************************************************/
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
-CONS( 1989, genesis, 0, 0, ms_megadriv, md, md_cons_state, genesis, "Sega", "Genesis (USA, NTSC)", GAME_SUPPORTS_SAVE )
-CONS( 1990, megadriv, genesis, 0, ms_megadpal, md, md_cons_state, md_eur, "Sega", "Mega Drive (Europe, PAL)", GAME_SUPPORTS_SAVE )
-CONS( 1988, megadrij, genesis, 0, ms_megadriv, md, md_cons_state, md_jpn, "Sega", "Mega Drive (Japan, NTSC)", GAME_SUPPORTS_SAVE )
+CONS( 1989, genesis, 0, 0, ms_megadriv, md, md_cons_state, genesis, "Sega", "Genesis (USA, NTSC)", MACHINE_SUPPORTS_SAVE )
+CONS( 1990, megadriv, genesis, 0, ms_megadpal, md, md_cons_state, md_eur, "Sega", "Mega Drive (Europe, PAL)", MACHINE_SUPPORTS_SAVE )
+CONS( 1988, megadrij, genesis, 0, ms_megadriv, md, md_cons_state, md_jpn, "Sega", "Mega Drive (Japan, NTSC)", MACHINE_SUPPORTS_SAVE )
// the 32X plugged in the cart slot, games plugged into the 32x. Maybe it should be handled as an expansion device?
-CONS( 1994, 32x, 0, 0, genesis_32x, md, md_cons_state, genesis, "Sega", "Genesis with 32X (USA, NTSC)", GAME_NOT_WORKING )
-CONS( 1994, 32xe, 32x, 0, md_32x, md, md_cons_state, md_eur, "Sega", "Mega Drive with 32X (Europe, PAL)", GAME_NOT_WORKING )
-CONS( 1994, 32xj, 32x, 0, mdj_32x, md, md_cons_state, md_jpn, "Sega", "Mega Drive with 32X (Japan, NTSC)", GAME_NOT_WORKING )
+CONS( 1994, 32x, 0, 0, genesis_32x, md, md_cons_state, genesis, "Sega", "Genesis with 32X (USA, NTSC)", MACHINE_NOT_WORKING )
+CONS( 1994, 32xe, 32x, 0, md_32x, md, md_cons_state, md_eur, "Sega", "Mega Drive with 32X (Europe, PAL)", MACHINE_NOT_WORKING )
+CONS( 1994, 32xj, 32x, 0, mdj_32x, md, md_cons_state, md_jpn, "Sega", "Mega Drive with 32X (Japan, NTSC)", MACHINE_NOT_WORKING )
// the SegaCD plugged into the expansion port..
-CONS( 1992, segacd, 0, 0, genesis_scd, md, md_cons_state, genesis, "Sega", "Sega CD (USA, NTSC)", GAME_NOT_WORKING )
-CONS( 1993, megacd, segacd, 0, md_scd, md, md_cons_state, md_eur, "Sega", "Mega-CD (Europe, PAL)", GAME_NOT_WORKING )
-CONS( 1991, megacdj, segacd, 0, mdj_scd, md, md_cons_state, md_jpn, "Sega", "Mega-CD (Japan, NTSC)", GAME_NOT_WORKING ) // this bios doesn't work with our ram interleave needed by a few games?!
-CONS( 1991, megacda, segacd, 0, md_scd, md, md_cons_state, md_eur, "Sega", "Mega-CD (Asia, PAL)", GAME_NOT_WORKING )
-CONS( 1993, segacd2, 0, 0, genesis_scd, md, md_cons_state, genesis, "Sega", "Sega CD 2 (USA, NTSC)", GAME_NOT_WORKING )
-CONS( 1993, megacd2, segacd2, 0, md_scd, md, md_cons_state, md_eur, "Sega", "Mega-CD 2 (Europe, PAL)", GAME_NOT_WORKING )
-CONS( 1993, megacd2j, segacd2, 0, mdj_scd, md, md_cons_state, md_jpn, "Sega", "Mega-CD 2 (Japan, NTSC)", GAME_NOT_WORKING )
-CONS( 1994, aiwamcd, segacd2, 0, mdj_scd, md, md_cons_state, md_jpn, "AIWA", "Mega-CD CSD-G1M (Japan, NTSC)", GAME_NOT_WORKING )
-CONS( 1993, laseract, 0, 0, genesis_scd, md, md_cons_state, genesis, "Pioneer","LaserActive (USA, NTSC)", GAME_NOT_WORKING )
-CONS( 1993, laseractj, laseract, 0, mdj_scd, md, md_cons_state, md_jpn, "Pioneer","LaserActive (Japan, NTSC)", GAME_NOT_WORKING )
-CONS( 1993, xeye, 0, 0, genesis_scd, md, md_cons_state, genesis, "JVC", "X'eye (USA, NTSC)", GAME_NOT_WORKING )
-CONS( 1992, wmega, xeye, 0, mdj_scd, md, md_cons_state, md_jpn, "Sega", "Wondermega (Japan, NTSC)", GAME_NOT_WORKING )
-CONS( 1993, wmegam2, xeye, 0, mdj_scd, md, md_cons_state, md_jpn, "Victor", "Wondermega M2 (Japan, NTSC)", GAME_NOT_WORKING )
-CONS( 1994, cdx, 0, 0, genesis_scd, md, md_cons_state, genesis, "Sega", "CDX (USA, NTSC)", GAME_NOT_WORKING )
-CONS( 1994, multmega, cdx, 0, md_scd, md, md_cons_state, md_eur, "Sega", "Multi-Mega (Europe, PAL)", GAME_NOT_WORKING )
-CONS( 1994, 32x_scd, 0, 0, genesis_32x_scd, md, md_cons_state, genesis, "Sega", "Sega CD (USA, NTSC, w/32X)", GAME_NOT_WORKING )
+CONS( 1992, segacd, 0, 0, genesis_scd, md, md_cons_state, genesis, "Sega", "Sega CD (USA, NTSC)", MACHINE_NOT_WORKING )
+CONS( 1993, megacd, segacd, 0, md_scd, md, md_cons_state, md_eur, "Sega", "Mega-CD (Europe, PAL)", MACHINE_NOT_WORKING )
+CONS( 1991, megacdj, segacd, 0, mdj_scd, md, md_cons_state, md_jpn, "Sega", "Mega-CD (Japan, NTSC)", MACHINE_NOT_WORKING ) // this bios doesn't work with our ram interleave needed by a few games?!
+CONS( 1991, megacda, segacd, 0, md_scd, md, md_cons_state, md_eur, "Sega", "Mega-CD (Asia, PAL)", MACHINE_NOT_WORKING )
+CONS( 1993, segacd2, 0, 0, genesis_scd, md, md_cons_state, genesis, "Sega", "Sega CD 2 (USA, NTSC)", MACHINE_NOT_WORKING )
+CONS( 1993, megacd2, segacd2, 0, md_scd, md, md_cons_state, md_eur, "Sega", "Mega-CD 2 (Europe, PAL)", MACHINE_NOT_WORKING )
+CONS( 1993, megacd2j, segacd2, 0, mdj_scd, md, md_cons_state, md_jpn, "Sega", "Mega-CD 2 (Japan, NTSC)", MACHINE_NOT_WORKING )
+CONS( 1994, aiwamcd, segacd2, 0, mdj_scd, md, md_cons_state, md_jpn, "AIWA", "Mega-CD CSD-G1M (Japan, NTSC)", MACHINE_NOT_WORKING )
+CONS( 1993, laseract, 0, 0, genesis_scd, md, md_cons_state, genesis, "Pioneer","LaserActive (USA, NTSC)", MACHINE_NOT_WORKING )
+CONS( 1993, laseractj, laseract, 0, mdj_scd, md, md_cons_state, md_jpn, "Pioneer","LaserActive (Japan, NTSC)", MACHINE_NOT_WORKING )
+CONS( 1993, xeye, 0, 0, genesis_scd, md, md_cons_state, genesis, "JVC", "X'eye (USA, NTSC)", MACHINE_NOT_WORKING )
+CONS( 1992, wmega, xeye, 0, mdj_scd, md, md_cons_state, md_jpn, "Sega", "Wondermega (Japan, NTSC)", MACHINE_NOT_WORKING )
+CONS( 1993, wmegam2, xeye, 0, mdj_scd, md, md_cons_state, md_jpn, "Victor", "Wondermega M2 (Japan, NTSC)", MACHINE_NOT_WORKING )
+CONS( 1994, cdx, 0, 0, genesis_scd, md, md_cons_state, genesis, "Sega", "CDX (USA, NTSC)", MACHINE_NOT_WORKING )
+CONS( 1994, multmega, cdx, 0, md_scd, md, md_cons_state, md_eur, "Sega", "Multi-Mega (Europe, PAL)", MACHINE_NOT_WORKING )
+CONS( 1994, 32x_scd, 0, 0, genesis_32x_scd, md, md_cons_state, genesis, "Sega", "Sega CD (USA, NTSC, w/32X)", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/megadrvb.c b/src/mame/drivers/megadrvb.c
index 1905de7236b..d7ea815b695 100644
--- a/src/mame/drivers/megadrvb.c
+++ b/src/mame/drivers/megadrvb.c
@@ -888,4 +888,4 @@ GAME( 1996, mk3mdb, 0, megadrvb_6b, mk3mdb, md_boot_state, mk3mdb, ROT0,
GAME( 1994, ssf2mdb, 0, megadrvb_6b, ssf2mdb, md_boot_state, ssf2mdb, ROT0, "bootleg / Capcom", "Super Street Fighter II - The New Challengers (bootleg of Japanese MegaDrive version)", 0)
GAME( 1993, srmdb, 0, megadrvb, srmdb, md_boot_state, srmdb, ROT0, "bootleg / Konami", "Sunset Riders (bootleg of Megadrive version)", 0)
GAME( 1995, topshoot, 0, md_bootleg, topshoot, md_boot_state, topshoot, ROT0, "Sun Mixing", "Top Shooter", 0)
-GAME( 1993, sonic2mb, 0, megadrvb, aladmdb, md_boot_state, aladmdb, ROT0, "bootleg / Sega", "Sonic The Hedgehog 2 (bootleg of Megadrive version)", GAME_NOT_WORKING )
+GAME( 1993, sonic2mb, 0, megadrvb, aladmdb, md_boot_state, aladmdb, ROT0, "bootleg / Sega", "Sonic The Hedgehog 2 (bootleg of Megadrive version)", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/megaphx.c b/src/mame/drivers/megaphx.c
index 37d9a792063..ce22404a4b6 100644
--- a/src/mame/drivers/megaphx.c
+++ b/src/mame/drivers/megaphx.c
@@ -410,4 +410,4 @@ ROM_START( megaphx )
ROM_LOAD( "p40_u29_palce16v8h-25.jed", 0x000, 0xbd4, CRC(44b7e51c) SHA1(b8b34f3b319d664ec3ad72ed87d9f65701f183a5) )
ROM_END
-GAME( 1991, megaphx, 0, megaphx, megaphx, megaphx_state, megaphx, ROT0, "Dinamic / Inder", "Mega Phoenix", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
+GAME( 1991, megaphx, 0, megaphx, megaphx, megaphx_state, megaphx, ROT0, "Dinamic / Inder", "Mega Phoenix", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
diff --git a/src/mame/drivers/megaplay.c b/src/mame/drivers/megaplay.c
index af91020e30e..1e70aa87996 100644
--- a/src/mame/drivers/megaplay.c
+++ b/src/mame/drivers/megaplay.c
@@ -941,7 +941,7 @@ Mazin Wars 171-6215A 837-9165-11 610-0297-11 MPR-1646
didn't have original Sega part numbers it's probably a converted TWC cart
*/
-/* -- */ GAME( 1993, megaplay, 0, megaplay, megaplay, mplay_state, megaplay, ROT0, "Sega", "Mega Play BIOS", GAME_IS_BIOS_ROOT )
+/* -- */ GAME( 1993, megaplay, 0, megaplay, megaplay, mplay_state, megaplay, ROT0, "Sega", "Mega Play BIOS", MACHINE_IS_BIOS_ROOT )
/* 01 */ GAME( 1993, mp_sonic, megaplay, megaplay, mp_sonic, mplay_state, megaplay, ROT0, "Sega", "Sonic The Hedgehog (Mega Play)" , 0 )
/* 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 )
diff --git a/src/mame/drivers/megasys1.c b/src/mame/drivers/megasys1.c
index 5f386fb63c2..d12503e7a15 100644
--- a/src/mame/drivers/megasys1.c
+++ b/src/mame/drivers/megasys1.c
@@ -2358,6 +2358,46 @@ ROM_START( edf )
ROM_LOAD( "rd.20n", 0x0000, 0x0200, CRC(1d877538) SHA1(a5be0dc65dcfc36fbba10d1fddbe155e24b6122f) )
ROM_END
+
+ROM_START( edfa )
+ ROM_REGION( 0xc0000, "maincpu", 0 ) /* Main CPU Code: 00000-3ffff & 80000-bffff */
+ ROM_LOAD16_BYTE( "5.b5", 0x00000, 0x20000, CRC(6edd3c53) SHA1(53fd42f417be7ca57bd941abe343e2730a7b3ba9) )
+ ROM_CONTINUE ( 0x80000, 0x20000 )
+ ROM_LOAD16_BYTE( "6.b3", 0x00001, 0x20000, CRC(4d8bfa8f) SHA1(9d61f035e7c73a26b5de5380030c511eebeb7ece) )
+ ROM_CONTINUE ( 0x80001, 0x20000 )
+
+ // rest from edf:
+
+ ROM_REGION( 0x40000, "audiocpu", 0 ) /* Sound CPU Code */
+ ROM_LOAD16_BYTE( "edf1.f5", 0x000000, 0x020000, CRC(2290ea19) SHA1(64c9394bd4d5569d68833d2e57abaf2f1af5be97) )
+ ROM_LOAD16_BYTE( "edf2.f3", 0x000001, 0x020000, CRC(ce93643e) SHA1(686bf0ec104af8c97624a782e0d60afe170fd945) )
+
+ ROM_REGION( 0x1000, "mcu", 0 ) /* MCU Internal Code, 64 pin DIP surface scratched, m50747? */
+ ROM_LOAD( "edf.mcu", 0x000000, 0x1000, NO_DUMP )
+
+ ROM_REGION( 0x080000, "gfx1", 0 ) /* Scroll 0 */
+ ROM_LOAD( "edf_m04.rom", 0x000000, 0x080000, CRC(6744f406) SHA1(3b8f13ca968456186d9ad61f34611b7eab62ea86) )
+
+ ROM_REGION( 0x080000, "gfx2", 0 ) /* Scroll 1 */
+ ROM_LOAD( "edf_m05.rom", 0x000000, 0x080000, CRC(6f47e456) SHA1(823baa9dc4cb2425c64e9332c6ed4678e49d0c7b) )
+
+ ROM_REGION( 0x020000, "gfx3", 0 ) /* Scroll 2 */
+ ROM_LOAD( "edf_09.rom", 0x000000, 0x020000, CRC(96e38983) SHA1(a4fb94f15d9a9f7df1645be66fe3e179d0ebf765) )
+
+ ROM_REGION( 0x080000, "gfx4", 0 ) /* Sprites */
+ ROM_LOAD( "edf_m03.rom", 0x000000, 0x080000, CRC(ef469449) SHA1(bc591e56c5478383eb4bd29f16133c6ba407c22f) )
+
+ ROM_REGION( 0x040000, "oki1", 0 ) /* Samples */
+ ROM_LOAD( "edf_m02.rom", 0x000000, 0x040000, CRC(fc4281d2) SHA1(67ea324ff359a5d9e7538c08865b5eeebd16704b) )
+
+ ROM_REGION( 0x040000, "oki2", 0 ) /* Samples */
+ ROM_LOAD( "edf_m01.rom", 0x000000, 0x040000, CRC(9149286b) SHA1(f6c66c5cd50b72c4d401a263c65a8d4ef8cf9221) )
+
+ ROM_REGION( 0x0200, "proms", 0 ) /* Priority PROM (N82S131N compatible type PROM) */
+ ROM_LOAD( "rd.20n", 0x0000, 0x0200, CRC(1d877538) SHA1(a5be0dc65dcfc36fbba10d1fddbe155e24b6122f) )
+ROM_END
+
+
ROM_START( edfu )
ROM_REGION( 0xc0000, "maincpu", 0 ) /* Main CPU Code: 00000-3ffff & 80000-bffff */
ROM_LOAD16_BYTE( "edf5.b5", 0x000000, 0x020000, CRC(105094d1) SHA1(e962164836756bc20c2b5dc0032042a0219e82d8) )
@@ -2365,6 +2405,8 @@ ROM_START( edfu )
ROM_LOAD16_BYTE( "edf6.b3", 0x000001, 0x020000, CRC(4797de97) SHA1(dcfcc376a49853c938d772808efe421ba4ba24da) )
ROM_CONTINUE ( 0x080001, 0x020000 )
+ // rest from edf:
+
ROM_REGION( 0x40000, "audiocpu", 0 ) /* Sound CPU Code */
ROM_LOAD16_BYTE( "edf1.f5", 0x000000, 0x020000, CRC(2290ea19) SHA1(64c9394bd4d5569d68833d2e57abaf2f1af5be97) )
ROM_LOAD16_BYTE( "edf2.f3", 0x000001, 0x020000, CRC(ce93643e) SHA1(686bf0ec104af8c97624a782e0d60afe170fd945) )
@@ -2430,6 +2472,7 @@ ROM_START( edfbl )
ROM_LOAD( "rd.20n", 0x0000, 0x0200, CRC(1d877538) SHA1(a5be0dc65dcfc36fbba10d1fddbe155e24b6122f) )
ROM_END
+
/***************************************************************************
[ Hachoo! ]
@@ -3544,6 +3587,77 @@ ROM_START( stdragona )
ROM_LOAD( "prom.14m", 0x0000, 0x0200, CRC(1d877538) SHA1(a5be0dc65dcfc36fbba10d1fddbe155e24b6122f) )
ROM_END
+/***************************************************************************
+
+Bootleg version of Saint Dragon. Two PCBs connected by two flat cables.
+Sound section can host two oki chips (and roms) but only one is populated.
+No ASICs just logic chips.
+
+- ROMs A-19 and A-20 are fitted 'piggy backed' with one pin
+ from A-20 bent out and wired to a nearby TTL.
+
+- Stage 5 has some of its background graphics corrupted.
+ Don't know if it is a PCB issue or designed like that.
+
+***************************************************************************/
+
+ROM_START( stdragonb )
+ ROM_REGION( 0x60000, "maincpu", 0 ) /* Main CPU Code */
+ ROM_LOAD16_BYTE( "a-4.bin", 0x00000, 0x10000, CRC(c58fe5c2) SHA1(221767e995e05b076e256b1818c4b5d85f58e7e6) )
+ ROM_LOAD16_BYTE( "a-2.bin", 0x00001, 0x10000, CRC(46a7cdbb) SHA1(b90a0c10a5e7584e565f61b7bb143fb5800ae039) )
+ ROM_LOAD16_BYTE( "a-3.bin", 0x20000, 0x10000, CRC(f6a268c4) SHA1(106184fb18ad8018e9a4aad383c7243c254bfab1) )
+ ROM_LOAD16_BYTE( "a-1.bin", 0x20001, 0x10000, CRC(0fb439bd) SHA1(ab596cee4d14f9d805c065d826f36298c6486975) )
+
+ ROM_REGION( 0x20000, "audiocpu", 0 ) /* Sound CPU Code */
+ ROM_LOAD16_BYTE( "b-20.bin", 0x00000, 0x10000, CRC(8c04feaa) SHA1(57e86fd88dc72d123a41f0dee80a16be38ac2e81) ) // = jsd-05
+ ROM_LOAD16_BYTE( "b-19.bin", 0x00001, 0x10000, CRC(0bb62f3a) SHA1(68d9f161ba2568f8e046b1a40127bbb973d7a884) ) // = jsd-06
+
+ ROM_REGION( 0x080000, "gfx1", 0 ) /* Scroll 0 */
+ ROM_LOAD( "a-15.bin", 0x00000, 0x10000, CRC(42f7d2cd) SHA1(7518b2d1d92a1c48e6d8ae0723cfa76ac67fa2b9) ) // ~= jsd-11 [1/2]
+ ROM_LOAD( "a-16.bin", 0x10000, 0x10000, CRC(4f519a97) SHA1(fc7c9f6756f9b6c8fa96c2eea61066859120ad3a) ) // ~= jsd-11 [2/2]
+ ROM_LOAD( "a-14.bin", 0x20000, 0x10000, CRC(d8ba8d4c) SHA1(47c179e46f329c32f09ba539c742633f390fc449) ) // ~= jsd-12 [1/2]
+
+ ROM_LOAD( "a-18.bin", 0x40000, 0x10000, CRC(5e35f269) SHA1(54b3108f819056582c3e85432faa6c31dd706cbe) ) // ~= jsd-13 [1/2]
+ ROM_LOAD( "a-19.bin", 0x50000, 0x10000, CRC(b818db20) SHA1(f60b041a7934fb3d1ebf8fcdf12121e33734c6ae) ) // ~= jsd-13 [2/2]
+ ROM_LOAD( "a-17.bin", 0x60000, 0x10000, CRC(0f6094f9) SHA1(952976c7e019536b8d718ce7c6ed5e6a643b4070) ) // ~= jsd-14 [1/2]
+ ROM_LOAD( "a-20.bin", 0x70000, 0x10000, CRC(e8849b15) SHA1(2c18f56da4d26ca7112d9bd720f26e9cce078eb7) ) // ~= jsd-14 [2/2]
+
+ ROM_REGION( 0x080000, "gfx2", 0 ) /* Scroll 1 */
+ ROM_LOAD( "a-9.bin", 0x00000, 0x10000, CRC(135c2e0e) SHA1(052b29c7060117c7e3e6c7c7826c129775564f87) ) // = jsd-15 [1/2]
+ ROM_LOAD( "a-10.bin", 0x10000, 0x10000, CRC(19cec47a) SHA1(b90600b39e4c54e1405be27740e8c55b18681632) ) // = jsd-15 [2/2]
+ ROM_LOAD( "a-5.bin", 0x20000, 0x10000, CRC(da4ca7bf) SHA1(f472ce7f474a56779dd3bbd729d908494e94c91c) ) // = jsd-16 [1/2]
+ ROM_LOAD( "a-6.bin", 0x30000, 0x10000, CRC(9d9b6470) SHA1(a6433687b1b13517e249138dac1b088ff0bcd2ff) ) // = jsd-16 [2/2]
+ ROM_LOAD( "a-12.bin", 0x40000, 0x10000, CRC(22382b5f) SHA1(e177368bf1e02a57d4284362804e1ba5a39cfb35) ) // = jsd-17 [1/2]
+ ROM_LOAD( "a-11.bin", 0x50000, 0x10000, CRC(26c2494d) SHA1(224aabd2e431f490bc9e06682ee279e7ca3a7df7) ) // = jsd-17 [2/2]
+ ROM_LOAD( "a-7.bin", 0x60000, 0x10000, CRC(cee3a6f7) SHA1(3829591a6724b080435e9d008ff51faf69ebcd71) ) // = jsd-18 [1/2]
+ ROM_LOAD( "a-8.bin", 0x70000, 0x10000, CRC(883b99bb) SHA1(820afda20ba2b66ac89a5982178aa5b5f6e2bd74) ) // = jsd-18 [2/2]
+
+ ROM_REGION( 0x020000, "gfx3", 0 ) /* Scroll 2 */
+ ROM_LOAD( "a-13.bin", 0x000000, 0x08000, CRC(9e487aa1) SHA1(6d418467bc865a7069b5a9eb0707d23ce821ad28) ) // = jsd-19 [1/2]
+
+ ROM_REGION( 0x080000, "gfx4", 0 ) /* Sprites */
+ ROM_LOAD( "a-22.bin", 0x00000, 0x10000, CRC(c7ee6d89) SHA1(45bba446dc5821222c09957380d74993310cb3a1) ) // ~= jsd-20 [1/2]
+ ROM_LOAD( "a-23.bin", 0x10000, 0x10000, CRC(79552709) SHA1(2e5120efcc0afc46642561b269f410498f6f5bef) ) // ~= jsd-20 [2/2]
+ ROM_LOAD( "a-25.bin", 0x20000, 0x10000, CRC(d8926711) SHA1(56c2f25e21eacd4fb779fa04ffd06de937c557ef) ) // ~= jsd-21 [1/2]
+ ROM_LOAD( "a-26.bin", 0x30000, 0x10000, CRC(41d76447) SHA1(cfced91518859b93b77c9097f0b44adef66c8683) ) // ~= jsd-21 [2/2]
+ ROM_LOAD( "a-21.bin", 0x40000, 0x10000, CRC(5af84bd5) SHA1(a0b4dd69c8e0e2f38f67d42dcadb1254299ab649) ) // ~= jsd-22 [1/2]
+ ROM_LOAD( "a-24.bin", 0x50000, 0x10000, CRC(09ae3173) SHA1(6c5c49297319decf530f3c0930d5146836d425b1) ) // ~= jsd-22 [2/2]
+ ROM_LOAD( "a-27.bin", 0x60000, 0x10000, CRC(c9049e98) SHA1(d24775704a4898293522ea5c2a901c6f457dce75) ) // ~= jsd-23 [1/2]
+ ROM_LOAD( "a-28.bin", 0x70000, 0x10000, CRC(b4d12106) SHA1(08018251d10c0f5410779fa68cf95c87ba89ea56) ) // ~= jsd-23 [2/2]
+
+ ROM_REGION( 0x040000, "oki1", ROMREGION_ERASE00 ) /* Samples */
+ // unpopulated
+
+ ROM_REGION( 0x040000, "oki2", 0 ) /* Samples */
+ ROM_LOAD( "a-29.bin", 0x00000, 0x10000, CRC(0049aa65) SHA1(29efff074e0fd23eb3cc9ccd3a0eae0acc812e39) ) // = jsd-07 [1/2]
+ ROM_LOAD( "a-30.bin", 0x10000, 0x10000, CRC(05bce2c7) SHA1(4aaf5156bafb3451492c5053d7d75994a72f8738) ) // = jsd-07 [2/2]
+ ROM_LOAD( "b-17.bin", 0x20000, 0x10000, CRC(3e4e34d3) SHA1(3cda83d8f9e9108acbace717f167cccb8adc5b90) ) // = jsd-08 [1/2]
+ ROM_LOAD( "b-18.bin", 0x30000, 0x10000, CRC(738a6643) SHA1(d41a0eaf076847d63a9a23db16a99627ec118f97) ) // = jsd-08 [2/2]
+
+ ROM_REGION( 0x0200, "proms", 0 ) /* Priority PROM */
+ ROM_LOAD( "prom.14m", 0x0000, 0x0200, CRC(1d877538) SHA1(a5be0dc65dcfc36fbba10d1fddbe155e24b6122f) ) // from parent
+ROM_END
+
/***************************************************************************
@@ -4138,6 +4252,12 @@ DRIVER_INIT_MEMBER(megasys1_state,stdragona)
m_maincpu->space(AS_PROGRAM).install_write_handler(0x23ff0, 0x23ff9, write16_delegate(FUNC(megasys1_state::stdragon_mcu_hs_w),this));
}
+DRIVER_INIT_MEMBER(megasys1_state,stdragonb)
+{
+ stdragona_gfx_unmangle("gfx1");
+ stdragona_gfx_unmangle("gfx4");
+}
+
READ16_MEMBER(megasys1_state::monkelf_input_r)
{
ioport_port *in_names[] = { m_io_p1, m_io_p2, m_io_dsw1, m_io_dsw2, m_io_system };
@@ -4191,8 +4311,8 @@ GAME( 1988, p47, 0, system_A, p47, driver_device, 0,
GAME( 1988, p47j, p47, system_A, p47, driver_device, 0, ROT0, "Jaleco", "P-47 - The Freedom Fighter (Japan)", 0 )
GAME( 1988, p47je, p47, system_A, p47, driver_device, 0, ROT0, "Jaleco", "P-47 - The Freedom Fighter (Japan, Export)", 0 )
GAME( 1988, kickoff, 0, system_A, kickoff, driver_device, 0, ROT0, "Jaleco", "Kick Off (Japan)", 0 )
-GAME( 1988, tshingen, 0, system_A, tshingen, megasys1_state, phantasm, ROT0, "Jaleco", "Shingen Samurai-Fighter (Japan, English)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1988, tshingena,tshingen, system_A, tshingen, megasys1_state, phantasm, ROT0, "Jaleco", "Takeda Shingen (Japan, Japanese)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1988, tshingen, 0, system_A, tshingen, megasys1_state, phantasm, ROT0, "Jaleco", "Shingen Samurai-Fighter (Japan, English)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1988, tshingena,tshingen, system_A, tshingen, megasys1_state, phantasm, ROT0, "Jaleco", "Takeda Shingen (Japan, Japanese)", MACHINE_IMPERFECT_GRAPHICS )
GAME( 1988, kazan, 0, system_A, kazan, megasys1_state, iganinju, ROT0, "Jaleco", "Ninja Kazan (World)", 0 )
GAME( 1988, iganinju, kazan, system_A, kazan, megasys1_state, iganinju, ROT0, "Jaleco", "Iga Ninjyutsuden (Japan)", 0 )
GAME( 1989, astyanax, 0, system_A, astyanax, megasys1_state, astyanax, ROT0, "Jaleco", "The Astyanax", 0 )
@@ -4202,6 +4322,7 @@ GAME( 1989, jitsupro, 0, system_A, jitsupro, megasys1_state, jit
GAME( 1989, plusalph, 0, system_A, plusalph, megasys1_state, astyanax, ROT270, "Jaleco", "Plus Alpha", 0 )
GAME( 1989, stdragon, 0, system_A, stdragon, megasys1_state, stdragon, ROT0, "Jaleco", "Saint Dragon (set 1)", 0 )
GAME( 1989, stdragona,stdragon, system_A, stdragon, megasys1_state, stdragona,ROT0, "Jaleco", "Saint Dragon (set 2)", 0 )
+GAME( 1989, stdragonb,stdragon, system_A, stdragon, megasys1_state, stdragonb,ROT0, "bootleg","Saint Dragon (bootleg)", 0 )
GAME( 1990, rodland, 0, system_A, rodland, megasys1_state, rodland, ROT0, "Jaleco", "Rod-Land (World)", 0 )
GAME( 1990, rodlandj, rodland, system_A, rodland, megasys1_state, rodlandj, ROT0, "Jaleco", "Rod-Land (Japan)", 0 )
GAME( 1990, rittam, rodland, system_A, rodland, megasys1_state, rittam, ROT0, "Jaleco", "R&T (Rod-Land prototype?)", 0 )
@@ -4209,9 +4330,10 @@ GAME( 1990, rodlandjb,rodland, system_A, rodland, megasys1_state, ro
GAME( 1991, avspirit, 0, system_B, avspirit, megasys1_state, avspirit, ROT0, "Jaleco", "Avenging Spirit", 0 )
GAME( 1990, phantasm, avspirit, system_A, phantasm, megasys1_state, phantasm, ROT0, "Jaleco", "Phantasm (Japan)", 0 )
GAME( 1990, monkelf, avspirit, system_B, avspirit, megasys1_state, monkelf, ROT0, "bootleg","Monky Elf (Korean bootleg of Avenging Spirit)", 0 )
-GAME( 1991, edf, 0, system_B, edf, megasys1_state, edf, ROT0, "Jaleco", "E.D.F. : Earth Defense Force", 0 )
+GAME( 1991, edf, 0, system_B, edf, megasys1_state, edf, ROT0, "Jaleco", "E.D.F. : Earth Defense Force (set 1)", 0 )
+GAME( 1991, edfa, edf, system_B, edf, megasys1_state, edf, ROT0, "Jaleco", "E.D.F. : Earth Defense Force (set 2)", 0 )
GAME( 1991, edfu, edf, system_B, edf, megasys1_state, edf, ROT0, "Jaleco", "E.D.F. : Earth Defense Force (North America)", 0 )
-GAME( 1991, edfbl, edf, system_Bbl, edf, megasys1_state, edfbl, ROT0, "bootleg","E.D.F. : Earth Defense Force (bootleg)", GAME_NO_SOUND )
+GAME( 1991, edfbl, edf, system_Bbl, edf, megasys1_state, edfbl, ROT0, "bootleg","E.D.F. : Earth Defense Force (bootleg)", MACHINE_NO_SOUND )
GAME( 1991, 64street, 0, system_C, 64street, megasys1_state, 64street, ROT0, "Jaleco", "64th. Street - A Detective Story (World)", 0 )
GAME( 1991, 64streetj,64street, system_C, 64street, megasys1_state, 64street, ROT0, "Jaleco", "64th. Street - A Detective Story (Japan)", 0 )
GAME( 1992, soldam, 0, system_A, soldam, megasys1_state, soldam, ROT0, "Jaleco", "Soldam", 0 )
@@ -4219,6 +4341,6 @@ GAME( 1992, soldamj, soldam, system_A, soldam, megasys1_state, sol
GAME( 1992, bigstrik, 0, system_C, bigstrik, megasys1_state, bigstrik, ROT0, "Jaleco", "Big Striker", 0 )
GAME( 1993, chimerab, 0, system_C, chimerab, megasys1_state, chimerab, ROT0, "Jaleco", "Chimera Beast (prototype)", 0 )
GAME( 1993, cybattlr, 0, system_C, cybattlr, megasys1_state, cybattlr, ROT90, "Jaleco", "Cybattler", 0 )
-GAME( 1993, hayaosi1, 0, system_B_hayaosi1, hayaosi1, megasys1_state, hayaosi1, ROT0, "Jaleco", "Hayaoshi Quiz Ouza Ketteisen - The King Of Quiz", GAME_IMPERFECT_GRAPHICS )
+GAME( 1993, hayaosi1, 0, system_B_hayaosi1, hayaosi1, megasys1_state, hayaosi1, ROT0, "Jaleco", "Hayaoshi Quiz Ouza Ketteisen - The King Of Quiz", MACHINE_IMPERFECT_GRAPHICS )
GAME( 1993, peekaboo, 0, system_D, peekaboo, megasys1_state, peekaboo, ROT0, "Jaleco", "Peek-a-Boo!", 0 )
GAME( 1993, peekaboou,peekaboo, system_D, peekaboo, megasys1_state, peekaboo, ROT0, "Jaleco", "Peek-a-Boo! (North America, ver 1.0)", 0 )
diff --git a/src/mame/drivers/megatech.c b/src/mame/drivers/megatech.c
index 44fed89d187..cb0d223cff6 100644
--- a/src/mame/drivers/megatech.c
+++ b/src/mame/drivers/megatech.c
@@ -97,7 +97,8 @@ public:
m_cart6(*this, "mt_slot6"),
m_cart7(*this, "mt_slot7"),
m_cart8(*this, "mt_slot8"),
- m_bioscpu(*this, "mtbios")
+ m_bioscpu(*this, "mtbios"),
+ m_region_maincpu(*this, "maincpu")
{ }
DECLARE_WRITE_LINE_MEMBER( snd_int_callback );
@@ -141,7 +142,7 @@ public:
private:
UINT8 m_mt_cart_select_reg;
UINT32 m_bios_port_ctrl;
- int m_current_game_is_sms; // is the current game SMS based (running on genesis z80, in VDP compatibility mode)
+ int m_current_MACHINE_IS_sms; // is the current game SMS based (running on genesis z80, in VDP compatibility mode)
UINT32 m_bios_ctrl_inputs;
UINT8 m_bios_ctrl[6];
int m_mt_bank_addr;
@@ -167,6 +168,7 @@ private:
optional_device<generic_slot_device> m_cart7;
optional_device<generic_slot_device> m_cart8;
required_device<cpu_device> m_bioscpu;
+ required_memory_region m_region_maincpu;
memory_region *m_cart_reg[8];
};
@@ -345,13 +347,13 @@ WRITE8_MEMBER( mtech_state::mt_sms_standard_rom_bank_w )
//printf("bank ram??\n");
break;
case 1:
- memcpy(sms_rom+0x0000, space.machine().root_device().memregion("maincpu")->base()+bank*0x4000, 0x4000);
+ memcpy(sms_rom+0x0000, m_region_maincpu->base()+bank*0x4000, 0x4000);
break;
case 2:
- memcpy(sms_rom+0x4000, space.machine().root_device().memregion("maincpu")->base()+bank*0x4000, 0x4000);
+ memcpy(sms_rom+0x4000, m_region_maincpu->base()+bank*0x4000, 0x4000);
break;
case 3:
- memcpy(sms_rom+0x8000, space.machine().root_device().memregion("maincpu")->base()+bank*0x4000, 0x4000);
+ memcpy(sms_rom+0x8000, m_region_maincpu->base()+bank*0x4000, 0x4000);
break;
}
@@ -359,9 +361,8 @@ WRITE8_MEMBER( mtech_state::mt_sms_standard_rom_bank_w )
void mtech_state::set_genz80_as_sms()
{
- address_space &prg = machine().device("genesis_snd_z80")->memory().space(AS_PROGRAM);
- address_space &io = machine().device("genesis_snd_z80")->memory().space(AS_IO);
- sn76496_base_device *sn = machine().device<sn76496_base_device>("snsnd");
+ address_space &prg = m_z80snd->space(AS_PROGRAM);
+ address_space &io = m_z80snd->space(AS_IO);
// main ram area
sms_mainram = (UINT8 *)prg.install_ram(0xc000, 0xdfff, 0, 0x2000);
@@ -370,13 +371,13 @@ void mtech_state::set_genz80_as_sms()
// fixed rom bank area
sms_rom = (UINT8 *)prg.install_rom(0x0000, 0xbfff, NULL);
- memcpy(sms_rom, machine().root_device().memregion("maincpu")->base(), 0xc000);
+ memcpy(sms_rom, m_region_maincpu->base(), 0xc000);
prg.install_write_handler(0xfffc, 0xffff, write8_delegate(FUNC(mtech_state::mt_sms_standard_rom_bank_w),this));
// ports
io.install_read_handler (0x40, 0x41, 0xff, 0x3e, read8_delegate(FUNC(mtech_state::sms_count_r),this));
- io.install_write_handler (0x40, 0x41, 0xff, 0x3e, write8_delegate(FUNC(sn76496_device::write),sn));
+ io.install_write_handler (0x40, 0x41, 0xff, 0x3e, write8_delegate(FUNC(sn76496_device::write),(sn76496_base_device *)m_snsnd));
io.install_readwrite_handler (0x80, 0x80, 0xff, 0x3e, read8_delegate(FUNC(sega315_5124_device::vram_read),(sega315_5124_device *)m_vdp), write8_delegate(FUNC(sega315_5124_device::vram_write),(sega315_5124_device *)m_vdp));
io.install_readwrite_handler (0x81, 0x81, 0xff, 0x3e, read8_delegate(FUNC(sega315_5124_device::register_read),(sega315_5124_device *)m_vdp), write8_delegate(FUNC(sega315_5124_device::register_write),(sega315_5124_device *)m_vdp));
@@ -392,15 +393,14 @@ void mtech_state::set_genz80_as_sms()
/* sets the megadrive z80 to it's normal ports / map */
void mtech_state::set_genz80_as_md()
{
- address_space &prg = machine().device("genesis_snd_z80")->memory().space(AS_PROGRAM);
- ym2612_device *ym2612 = machine().device<ym2612_device>("ymsnd");
+ address_space &prg = m_z80snd->space(AS_PROGRAM);
prg.install_readwrite_bank(0x0000, 0x1fff, "bank1");
machine().root_device().membank("bank1")->set_base(m_genz80.z80_prgram);
prg.install_ram(0x0000, 0x1fff, m_genz80.z80_prgram);
- prg.install_readwrite_handler(0x4000, 0x4003, read8_delegate(FUNC(ym2612_device::read),ym2612), write8_delegate(FUNC(ym2612_device::write),ym2612));
+ prg.install_readwrite_handler(0x4000, 0x4003, read8_delegate(FUNC(ym2612_device::read), (ym2612_device *)m_ymsnd), write8_delegate(FUNC(ym2612_device::write), (ym2612_device *)m_ymsnd));
prg.install_write_handler (0x6000, 0x6000, write8_delegate(FUNC(mtech_state::megadriv_z80_z80_bank_w),this));
prg.install_write_handler (0x6001, 0x6001, write8_delegate(FUNC(mtech_state::megadriv_z80_z80_bank_w),this));
prg.install_read_handler (0x6100, 0x7eff, read8_delegate(FUNC(mtech_state::megadriv_z80_unmapped_read),this));
@@ -417,7 +417,7 @@ void mtech_state::switch_cart(int gameno)
m_z80snd->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
//m_maincpu->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
//m_z80snd->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
- machine().device("ymsnd")->reset();
+ m_ymsnd->reset();
megadriv_stop_scanline_timer();// stop the scanline timer for the genesis vdp... it can be restarted in video eof when needed
m_vdp->reset();
@@ -425,12 +425,12 @@ void mtech_state::switch_cart(int gameno)
/* if the regions exist we're fine */
if (m_cart_reg[gameno])
{
- memcpy(memregion("maincpu")->base(), m_cart_reg[gameno]->base(), 0x400000);
+ memcpy(m_region_maincpu->base(), m_cart_reg[gameno]->base(), 0x400000);
if (!m_cart_is_genesis[gameno])
{
logerror("enabling SMS Z80\n");
- m_current_game_is_sms = 1;
+ m_current_MACHINE_IS_sms = 1;
set_genz80_as_sms();
//m_z80snd->set_input_line(INPUT_LINE_HALT, CLEAR_LINE);
m_z80snd->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
@@ -438,7 +438,7 @@ void mtech_state::switch_cart(int gameno)
else
{
logerror("disabling SMS Z80\n");
- m_current_game_is_sms = 0;
+ m_current_MACHINE_IS_sms = 0;
set_genz80_as_md();
m_maincpu->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
//m_maincpu->set_input_line(INPUT_LINE_HALT, CLEAR_LINE);
@@ -447,7 +447,7 @@ void mtech_state::switch_cart(int gameno)
else /* else, no cart.. */
{
memset(memregion("mtbios")->base() + 0x8000, 0x00, 0x8000);
- memset(memregion("maincpu")->base(), 0x00, 0x400000);
+ memset(m_region_maincpu->base(), 0x00, 0x400000);
}
}
@@ -613,7 +613,7 @@ DRIVER_INIT_MEMBER(mtech_state,mt_crt)
UINT32 mtech_state::screen_update_main(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
// if we're running an sms game then use the SMS update.. maybe this should be moved to the megadrive emulation core as compatibility mode is a feature of the chip
- if (!m_current_game_is_sms)
+ if (!m_current_MACHINE_IS_sms)
screen_update_megadriv(screen, bitmap, cliprect);
else
{
@@ -635,7 +635,7 @@ UINT32 mtech_state::screen_update_main(screen_device &screen, bitmap_rgb32 &bitm
void mtech_state::screen_eof_main(screen_device &screen, bool state)
{
- if (!m_current_game_is_sms)
+ if (!m_current_MACHINE_IS_sms)
screen_eof_megadriv(screen, state);
}
@@ -1396,69 +1396,69 @@ ROM_END
/* nn */ /* nn is part of the instruction rom name, should there be a game for each number? */
-/* -- */ CONS( 1989, megatech, 0, 0, megatech_slot, megatech, mtech_state, mt_slot, "Sega", "Mega-Tech", GAME_IS_BIOS_ROOT )
-/* 01 */ GAME( 1988, mt_beast, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Altered Beast (Mega-Tech)", GAME_NOT_WORKING )
-/* 02 */ GAME( 1988, mt_shar2, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Space Harrier II (Mega-Tech)", GAME_NOT_WORKING )
-/* 03 */ GAME( 1988, mt_stbld, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Super Thunder Blade (Mega-Tech)", GAME_NOT_WORKING )
-/* 04 */ GAME( 1987, mt_ggolf, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Great Golf (Mega-Tech, SMS based)", GAME_NOT_WORKING ) /* sms! */
-/* 05 */ GAME( 198?, mt_gsocr, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Great Soccer (Mega-Tech, SMS based)", GAME_NOT_WORKING ) /* sms! also bad */
-/* 06 */ GAME( 1987, mt_orun, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Out Run (Mega-Tech, SMS based)", GAME_NOT_WORKING ) /* sms! */
-/* 07 */ GAME( 1987, mt_asyn, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Alien Syndrome (Mega-Tech, SMS based)", GAME_NOT_WORKING ) /* sms! */
-/* 08 */ GAME( 1987, mt_shnbi, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Shinobi (Mega-Tech, SMS based)", GAME_NOT_WORKING) /* sms */
-/* 09 */ GAME( 1987, mt_fz, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Fantasy Zone (Mega-Tech, SMS based)", GAME_NOT_WORKING) /* sms */
-/* 10 */ GAME( 1987, mt_aftrb, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "After Burner (Mega-Tech, SMS based)", GAME_NOT_WORKING) /* sms */
-/* 11 */ GAME( 1989, mt_tfor2, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Techno Soft / Sega", "Thunder Force II MD (Mega-Tech)", GAME_NOT_WORKING )
+/* -- */ CONS( 1989, megatech, 0, 0, megatech_slot, megatech, mtech_state, mt_slot, "Sega", "Mega-Tech", MACHINE_IS_BIOS_ROOT )
+/* 01 */ GAME( 1988, mt_beast, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Altered Beast (Mega-Tech)", MACHINE_NOT_WORKING )
+/* 02 */ GAME( 1988, mt_shar2, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Space Harrier II (Mega-Tech)", MACHINE_NOT_WORKING )
+/* 03 */ GAME( 1988, mt_stbld, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Super Thunder Blade (Mega-Tech)", MACHINE_NOT_WORKING )
+/* 04 */ GAME( 1987, mt_ggolf, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Great Golf (Mega-Tech, SMS based)", MACHINE_NOT_WORKING ) /* sms! */
+/* 05 */ GAME( 198?, mt_gsocr, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Great Soccer (Mega-Tech, SMS based)", MACHINE_NOT_WORKING ) /* sms! also bad */
+/* 06 */ GAME( 1987, mt_orun, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Out Run (Mega-Tech, SMS based)", MACHINE_NOT_WORKING ) /* sms! */
+/* 07 */ GAME( 1987, mt_asyn, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Alien Syndrome (Mega-Tech, SMS based)", MACHINE_NOT_WORKING ) /* sms! */
+/* 08 */ GAME( 1987, mt_shnbi, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Shinobi (Mega-Tech, SMS based)", MACHINE_NOT_WORKING) /* sms */
+/* 09 */ GAME( 1987, mt_fz, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Fantasy Zone (Mega-Tech, SMS based)", MACHINE_NOT_WORKING) /* sms */
+/* 10 */ GAME( 1987, mt_aftrb, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "After Burner (Mega-Tech, SMS based)", MACHINE_NOT_WORKING) /* sms */
+/* 11 */ GAME( 1989, mt_tfor2, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Techno Soft / Sega", "Thunder Force II MD (Mega-Tech)", MACHINE_NOT_WORKING )
/* 12 */ // unknown
-/* 13 */ GAME( 1986, mt_astro, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Astro Warrior (Mega-Tech, SMS based)", GAME_NOT_WORKING ) /* sms! */
+/* 13 */ GAME( 1986, mt_astro, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Astro Warrior (Mega-Tech, SMS based)", MACHINE_NOT_WORKING ) /* sms! */
/* 14 */ // unknown
/* 15 */ // unknown
/* 16 */ // unknown
/* 17 */ // unknown
/* 18 */ // Kung Fu Kid (sms)
-/* 19 */ GAME( 1987, mt_gfoot, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Great Football (Mega-Tech, SMS based)", GAME_NOT_WORKING ) /* sms! */
-/* 20 */ GAME( 1989, mt_lastb, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Last Battle (Mega-Tech)", GAME_NOT_WORKING )
-/* 21 */ GAME( 1989, mt_wcsoc, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "World Championship Soccer (Mega-Tech)", GAME_NOT_WORKING )
-/* 22 */ GAME( 1989, mt_tetri, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Tetris (Mega-Tech)", GAME_NOT_WORKING )
-/* 23 */ GAME( 1989, mt_gng, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Capcom / Sega", "Ghouls'n Ghosts (Mega-Tech)", GAME_NOT_WORKING )
-/* 24 */ GAME( 1989, mt_shang, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Super Hang-On (Mega-Tech)", GAME_NOT_WORKING )
-/* 25 */ GAME( 1989, mt_gaxe, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Golden Axe (Mega-Tech)", GAME_NOT_WORKING )
-/* 26 */ GAME( 1989, mt_fwrld, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Forgotten Worlds (Mega-Tech)", GAME_NOT_WORKING )
-/* 27 */ GAME( 1989, mt_mystd, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Mystic Defender (Mega-Tech)", GAME_NOT_WORKING )
-/* 28 */ GAME( 1989, mt_revsh, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "The Revenge of Shinobi (Mega-Tech)", GAME_NOT_WORKING )
-/* 29 */ GAME( 1987, mt_parlg, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Parlour Games (Mega-Tech, SMS based)", GAME_NOT_WORKING ) /* sms! */
+/* 19 */ GAME( 1987, mt_gfoot, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Great Football (Mega-Tech, SMS based)", MACHINE_NOT_WORKING ) /* sms! */
+/* 20 */ GAME( 1989, mt_lastb, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Last Battle (Mega-Tech)", MACHINE_NOT_WORKING )
+/* 21 */ GAME( 1989, mt_wcsoc, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "World Championship Soccer (Mega-Tech)", MACHINE_NOT_WORKING )
+/* 22 */ GAME( 1989, mt_tetri, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Tetris (Mega-Tech)", MACHINE_NOT_WORKING )
+/* 23 */ GAME( 1989, mt_gng, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Capcom / Sega", "Ghouls'n Ghosts (Mega-Tech)", MACHINE_NOT_WORKING )
+/* 24 */ GAME( 1989, mt_shang, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Super Hang-On (Mega-Tech)", MACHINE_NOT_WORKING )
+/* 25 */ GAME( 1989, mt_gaxe, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Golden Axe (Mega-Tech)", MACHINE_NOT_WORKING )
+/* 26 */ GAME( 1989, mt_fwrld, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Forgotten Worlds (Mega-Tech)", MACHINE_NOT_WORKING )
+/* 27 */ GAME( 1989, mt_mystd, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Mystic Defender (Mega-Tech)", MACHINE_NOT_WORKING )
+/* 28 */ GAME( 1989, mt_revsh, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "The Revenge of Shinobi (Mega-Tech)", MACHINE_NOT_WORKING )
+/* 29 */ GAME( 1987, mt_parlg, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Parlour Games (Mega-Tech, SMS based)", MACHINE_NOT_WORKING ) /* sms! */
/* 30 */ // unknown
-/* 31 */ GAME( 1989, mt_tgolf, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Arnold Palmer Tournament Golf (Mega-Tech)", GAME_NOT_WORKING )
-/* 32 */ GAME( 1989, mt_srbb, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Super Real Basketball (Mega-Tech)", GAME_NOT_WORKING )
+/* 31 */ GAME( 1989, mt_tgolf, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Arnold Palmer Tournament Golf (Mega-Tech)", MACHINE_NOT_WORKING )
+/* 32 */ GAME( 1989, mt_srbb, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Super Real Basketball (Mega-Tech)", MACHINE_NOT_WORKING )
/* 33 */ // unknown
/* 34 */ // unknown
-/* 35 */ GAME( 1989, mt_tlbba, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Tommy Lasorda Baseball (Mega-Tech)", GAME_NOT_WORKING )
-/* 36 */ GAME( 1990, mt_cols, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Columns (Mega-Tech)", GAME_NOT_WORKING )
+/* 35 */ GAME( 1989, mt_tlbba, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Tommy Lasorda Baseball (Mega-Tech)", MACHINE_NOT_WORKING )
+/* 36 */ GAME( 1990, mt_cols, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Columns (Mega-Tech)", MACHINE_NOT_WORKING )
/* 37 */ // unknown
-/* 38 */ GAME( 1990, mt_eswat, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Cyber Police ESWAT: Enhanced Special Weapons and Tactics (Mega-Tech)", GAME_NOT_WORKING )
-/* 39 */ GAME( 1990, mt_smgp, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Super Monaco GP (Mega-Tech)", GAME_NOT_WORKING )
-/* 40 */ GAME( 1990, mt_mwalk, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Michael Jackson's Moonwalker (Mega-Tech)", GAME_NOT_WORKING )
-/* 41 */ GAME( 1990, mt_crack, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Crack Down (Mega-Tech)", GAME_NOT_WORKING )
+/* 38 */ GAME( 1990, mt_eswat, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Cyber Police ESWAT: Enhanced Special Weapons and Tactics (Mega-Tech)", MACHINE_NOT_WORKING )
+/* 39 */ GAME( 1990, mt_smgp, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Super Monaco GP (Mega-Tech)", MACHINE_NOT_WORKING )
+/* 40 */ GAME( 1990, mt_mwalk, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Michael Jackson's Moonwalker (Mega-Tech)", MACHINE_NOT_WORKING )
+/* 41 */ GAME( 1990, mt_crack, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Crack Down (Mega-Tech)", MACHINE_NOT_WORKING )
/* 42 */ // unknown
-/* 43 */ GAME( 1990, mt_shado, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Shadow Dancer (Mega-Tech)", GAME_NOT_WORKING )
-/* 44 */ GAME( 1990, mt_arrow, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Arrow Flash (Mega-Tech)", GAME_NOT_WORKING )
+/* 43 */ GAME( 1990, mt_shado, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Shadow Dancer (Mega-Tech)", MACHINE_NOT_WORKING )
+/* 44 */ GAME( 1990, mt_arrow, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Arrow Flash (Mega-Tech)", MACHINE_NOT_WORKING )
/* 45 */ // unknown
/* 46 */ // unknown
-/* 47 */ GAME( 1990, mt_astrm, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Alien Storm (Mega-Tech)", GAME_NOT_WORKING )
-/* 48 */ GAME( 1991, mt_wwar, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Wrestle War (Mega-Tech)", GAME_NOT_WORKING ) /* Copyright 1989, 1991 Sega */
-/* 49 */ GAME( 1991, mt_bbros, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Bonanza Bros. (Mega-Tech)", GAME_NOT_WORKING )
+/* 47 */ GAME( 1990, mt_astrm, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Alien Storm (Mega-Tech)", MACHINE_NOT_WORKING )
+/* 48 */ GAME( 1991, mt_wwar, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Wrestle War (Mega-Tech)", MACHINE_NOT_WORKING ) /* Copyright 1989, 1991 Sega */
+/* 49 */ GAME( 1991, mt_bbros, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Bonanza Bros. (Mega-Tech)", MACHINE_NOT_WORKING )
/* 50 */ // unknown
-/* 51 */ GAME( 1991, mt_srage, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Streets of Rage (Mega-Tech)", GAME_NOT_WORKING )
-/* 52 */ GAME( 1991, mt_sonic, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Sonic The Hedgehog (Mega-Tech, set 1)", GAME_NOT_WORKING )
-/* */ GAME( 1991, mt_sonia, mt_sonic, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Sonic The Hedgehog (Mega-Tech, set 2)", GAME_NOT_WORKING )
-/* 53 */ GAME( 1990, mt_fshrk, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Toaplan / Sega", "Fire Shark (Mega-Tech)", GAME_NOT_WORKING )
-/* 54 */ GAME( 1991, mt_spman, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega / Marvel", "Spider-Man vs The Kingpin (Mega-Tech)", GAME_NOT_WORKING )
-/* 55 */ GAME( 1991, mt_calga, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "California Games (Mega-Tech)", GAME_NOT_WORKING )
+/* 51 */ GAME( 1991, mt_srage, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Streets of Rage (Mega-Tech)", MACHINE_NOT_WORKING )
+/* 52 */ GAME( 1991, mt_sonic, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Sonic The Hedgehog (Mega-Tech, set 1)", MACHINE_NOT_WORKING )
+/* */ GAME( 1991, mt_sonia, mt_sonic, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Sonic The Hedgehog (Mega-Tech, set 2)", MACHINE_NOT_WORKING )
+/* 53 */ GAME( 1990, mt_fshrk, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Toaplan / Sega", "Fire Shark (Mega-Tech)", MACHINE_NOT_WORKING )
+/* 54 */ GAME( 1991, mt_spman, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega / Marvel", "Spider-Man vs The Kingpin (Mega-Tech)", MACHINE_NOT_WORKING )
+/* 55 */ GAME( 1991, mt_calga, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "California Games (Mega-Tech)", MACHINE_NOT_WORKING )
/* 56 */ // unknown
-/* 57 */ GAME( 1991, mt_gaxe2, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Golden Axe II (Mega-Tech)", GAME_NOT_WORKING )
-/* 58 */ GAME( 1991, mt_stf, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Joe Montana II: Sports Talk Football (Mega-Tech)", GAME_NOT_WORKING )
-/* 59 */ GAME( 1991, mt_mlh, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Mario Lemieux Hockey (Mega-Tech)", GAME_NOT_WORKING )
-/* 60 */ GAME( 1992, mt_kcham, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Kid Chameleon (Mega-Tech)", GAME_NOT_WORKING )
-/* 61 */ GAME( 1992, mt_tout, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Turbo Outrun (Mega-Tech)", GAME_NOT_WORKING )
-/* 62 */ GAME( 1992, mt_soni2, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Sonic The Hedgehog 2 (Mega-Tech)", GAME_NOT_WORKING )
+/* 57 */ GAME( 1991, mt_gaxe2, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Golden Axe II (Mega-Tech)", MACHINE_NOT_WORKING )
+/* 58 */ GAME( 1991, mt_stf, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Joe Montana II: Sports Talk Football (Mega-Tech)", MACHINE_NOT_WORKING )
+/* 59 */ GAME( 1991, mt_mlh, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Mario Lemieux Hockey (Mega-Tech)", MACHINE_NOT_WORKING )
+/* 60 */ GAME( 1992, mt_kcham, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Kid Chameleon (Mega-Tech)", MACHINE_NOT_WORKING )
+/* 61 */ GAME( 1992, mt_tout, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Turbo Outrun (Mega-Tech)", MACHINE_NOT_WORKING )
+/* 62 */ GAME( 1992, mt_soni2, megatech, megatech, megatech, mtech_state, mt_crt, ROT0, "Sega", "Sonic The Hedgehog 2 (Mega-Tech)", MACHINE_NOT_WORKING )
/* more? */
diff --git a/src/mame/drivers/megazone.c b/src/mame/drivers/megazone.c
index e5bc1f41ff9..60d7b9eb0b0 100644
--- a/src/mame/drivers/megazone.c
+++ b/src/mame/drivers/megazone.c
@@ -508,8 +508,8 @@ DRIVER_INIT_MEMBER(megazone_state,megazone)
{
}
-GAME( 1983, megazone, 0, megazone, megazone, megazone_state, megazone, ROT90, "Konami", "Mega Zone (Konami set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1983, megazonea, megazone, megazone, megazona, megazone_state, megazone, ROT90, "Konami", "Mega Zone (Konami set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1983, megazoneb, megazone, megazone, megazone, megazone_state, megazone, ROT90, "Konami (Kosuka license)", "Mega Zone (Kosuka set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1983, megazonec, megazone, megazone, megazone, megazone_state, megazone, ROT90, "Konami (Kosuka license)", "Mega Zone (Kosuka set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1983, megazonei, megazone, megazone, megazone, megazone_state, megazone, ROT90, "Konami (Interlogic license)", "Mega Zone (Interlogic)", GAME_SUPPORTS_SAVE )
+GAME( 1983, megazone, 0, megazone, megazone, megazone_state, megazone, ROT90, "Konami", "Mega Zone (Konami set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, megazonea, megazone, megazone, megazona, megazone_state, megazone, ROT90, "Konami", "Mega Zone (Konami set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, megazoneb, megazone, megazone, megazone, megazone_state, megazone, ROT90, "Konami (Kosuka license)", "Mega Zone (Kosuka set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, megazonec, megazone, megazone, megazone, megazone_state, megazone, ROT90, "Konami (Kosuka license)", "Mega Zone (Kosuka set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, megazonei, megazone, megazone, megazone, megazone_state, megazone, ROT90, "Konami (Interlogic license)", "Mega Zone (Interlogic)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/meijinsn.c b/src/mame/drivers/meijinsn.c
index 219c8c76979..7ed48d13b05 100644
--- a/src/mame/drivers/meijinsn.c
+++ b/src/mame/drivers/meijinsn.c
@@ -407,4 +407,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", GAME_SUPPORTS_SAVE )
+GAME( 1986, meijinsn, 0, meijinsn, meijinsn, driver_device, 0, ROT0, "SNK", "Meijinsen", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/mekd2.c b/src/mame/drivers/mekd2.c
index 8bac598dea0..8bac598dea0 100644
--- a/src/mess/drivers/mekd2.c
+++ b/src/mame/drivers/mekd2.c
diff --git a/src/mame/drivers/mephisto.c b/src/mame/drivers/mephisto.c
index e589da34a9e..faf3cd69797 100644
--- a/src/mame/drivers/mephisto.c
+++ b/src/mame/drivers/mephisto.c
@@ -1,115 +1,470 @@
-// license:BSD-3-Clause
-// copyright-holders:Robbbert
-/*****************************************************************************************
+// license:LGPL-2.1+
+// copyright-holders:Dirk Verwiebe, Cowering
+/******************************************************************************
+ Mephisto 4 + 5 Chess Computer
+ 2007 Dirk V.
- PINBALL
- Mephisto
+CPU 65C02 P4
+Clock 4.9152 MHz
+NMI CLK 600 Hz
+IRQ Line is set to VSS
+8 KByte SRAM Sony CXK5864-15l
+
+1-CD74HC4060E 14 Bit Counter
+1-CD74HC166E
+1-CD74HC251E
+1-SN74HC138N TI
+1-SN74HC139N TI
+1-74HC14AP Toshiba
+1-74HC02AP Toshiba
+1-74HC00AP Toshiba
+1-CD74HC259E
+
+
+$0000-$1fff S-RAM
+$2000 LCD 4 Byte Shift Register writeonly right to left
+every 2nd char xor'd by $FF
+
+2c00-2c07 Keyboard (8to1 Multiplexer) 74HCT251
+2*8 Matrix
+Adr. 0x3407
+==0 !=0
+2c00 CL E5
+2c01 POS F6
+2c02 MEMO G7
+2c03 INFO A1
+2c04 LEV H8
+2c05 ENT B2
+2c06 >0 C3
+2c07 <9 D4
+
+$3400-$3407 LED 1-6, Buzzer, Keyboard select
+
+$2400 // Chess Board
+$2800 // Chess Board
+$3000 // Chess Board
+
+$4000-7FFF Opening Modul HG550
+$8000-$FFF ROM
+
+Mephisto 4 Turbo Kit 18mhz - (mm4tk)
+ This is a replacement rom combining the turbo kit initial rom with the original MM IV.
+ The Turbo Kit powers up to it's tiny rom, copies itself to ram, banks in normal rom,
+ copies that to faster SRAM, then patches the checksum and the LED blink delays.
+ If someone else wants to code up the power up banking, feel free
+
+ There is an undumped MM V Turbo Kit, which will be the exact same except for location of
+ the patches. The mm5tk just needs the normal mm5 ROM swapped out for that one to
+ blinks the LEDs a little slower.
+
+ -- Cowering (2011)
+
+***********************************************************************************************/
-******************************************************************************************/
#include "emu.h"
-#include "cpu/i86/i86.h"
-#include "cpu/mcs51/mcs51.h"
+#include "cpu/m6502/m65c02.h"
+#include "sound/beep.h"
+//#include "mephisto.lh"
+
+#include "includes/mboard.h"
-// mephisto_state was also defined in mess/drivers/mephisto.c
-class mephisto_pinball_state : public driver_device
+
+class mephisto_state : public mboard_state
{
public:
- mephisto_pinball_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_maincpu(*this, "maincpu")
+ mephisto_state(const machine_config &mconfig, device_type type, const char *tag)
+ : mboard_state(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ , m_beep(*this, "beeper")
+ , m_key1_0(*this, "KEY1_0")
+ , m_key1_1(*this, "KEY1_1")
+ , m_key1_2(*this, "KEY1_2")
+ , m_key1_3(*this, "KEY1_3")
+ , m_key1_4(*this, "KEY1_4")
+ , m_key1_5(*this, "KEY1_5")
+ , m_key1_6(*this, "KEY1_6")
+ , m_key1_7(*this, "KEY1_7")
+ , m_key2_0(*this, "KEY2_0")
+ , m_key2_1(*this, "KEY2_1")
+ , m_key2_2(*this, "KEY2_2")
+ , m_key2_3(*this, "KEY2_3")
+ , m_key2_4(*this, "KEY2_4")
+ , m_key2_5(*this, "KEY2_5")
+ , m_key2_6(*this, "KEY2_6")
+ , m_key2_7(*this, "KEY2_7")
{ }
+ required_device<m65c02_device> m_maincpu;
+ required_device<beep_device> m_beep;
+ DECLARE_WRITE8_MEMBER(write_lcd);
+ DECLARE_WRITE8_MEMBER(mephisto_NMI);
+ DECLARE_READ8_MEMBER(read_keys);
+ DECLARE_WRITE8_MEMBER(write_led);
+ DECLARE_WRITE8_MEMBER(write_led_mm2);
+ UINT8 m_lcd_shift_counter;
+ UINT8 m_led_status;
+ //UINT8 *m_p_ram;
+ UINT8 m_led7;
+ UINT8 m_allowNMI;
+ DECLARE_DRIVER_INIT(mephisto);
+ virtual void machine_start();
+ virtual void machine_reset();
+ DECLARE_MACHINE_START(mm2);
+ TIMER_DEVICE_CALLBACK_MEMBER(update_nmi);
+ TIMER_DEVICE_CALLBACK_MEMBER(update_nmi_r5);
+ TIMER_DEVICE_CALLBACK_MEMBER(update_irq);
+
protected:
+ required_ioport m_key1_0;
+ required_ioport m_key1_1;
+ required_ioport m_key1_2;
+ required_ioport m_key1_3;
+ required_ioport m_key1_4;
+ required_ioport m_key1_5;
+ required_ioport m_key1_6;
+ required_ioport m_key1_7;
+ required_ioport m_key2_0;
+ required_ioport m_key2_1;
+ required_ioport m_key2_2;
+ required_ioport m_key2_3;
+ required_ioport m_key2_4;
+ required_ioport m_key2_5;
+ required_ioport m_key2_6;
+ required_ioport m_key2_7;
+};
- // devices
- required_device<cpu_device> m_maincpu;
- // driver_device overrides
- virtual void machine_reset();
-public:
- DECLARE_DRIVER_INIT(mephisto);
-};
+WRITE8_MEMBER( mephisto_state::write_lcd )
+{
+ if (m_led7 == 0) output_set_digit_value(m_lcd_shift_counter,data); // 0x109 MM IV // 0x040 MM V
+
+ //output_set_digit_value(m_lcd_shift_counter,data ^ m_p_ram[0x165]); // 0x109 MM IV // 0x040 MM V
+ m_lcd_shift_counter--;
+ m_lcd_shift_counter &= 3;
+}
+
+WRITE8_MEMBER( mephisto_state::mephisto_NMI )
+{
+ m_allowNMI = 1;
+}
+
+READ8_MEMBER( mephisto_state::read_keys )
+{
+ UINT8 data = 0;
+ if (((m_led_status & 0x80) == 0x00))
+ {
+ switch ( offset )
+ {
+ case 0: data = m_key1_0->read(); break;
+ case 1: data = m_key1_1->read(); break;
+ case 2: data = m_key1_2->read(); break;
+ case 3: data = m_key1_3->read(); break;
+ case 4: data = m_key1_4->read(); break;
+ case 5: data = m_key1_5->read(); break;
+ case 6: data = m_key1_6->read(); break;
+ case 7: data = m_key1_7->read(); break;
+ }
+ }
+ else
+ {
+ switch ( offset )
+ {
+ case 0: data = m_key2_0->read(); break;
+ case 1: data = m_key2_1->read(); break;
+ case 2: data = m_key2_2->read(); break;
+ case 3: data = m_key2_3->read(); break;
+ case 4: data = m_key2_4->read(); break;
+ case 5: data = m_key2_5->read(); break;
+ case 6: data = m_key2_6->read(); break;
+ case 7: data = m_key2_7->read(); break;
+ }
+ }
+
+ logerror("Keyboard Port = %d-%d Data = %d\n ", ((m_led_status & 0x80) == 0x00) ? 0 : 1, offset, data);
+ return data | 0x7f;
+}
+
+WRITE8_MEMBER( mephisto_state::write_led )
+{
+ UINT8 LED_offset=100;
+ data &= 0x80;
+
+ if (data==0)m_led_status &= 255-(1<<offset) ; else m_led_status|=1<<offset;
+ if (offset<6)output_set_led_value(LED_offset+offset, m_led_status&1<<offset?1:0);
+ if (offset==7) m_led7=data& 0x80 ? 0x00 :0xff;
+ logerror("LEDs Offset = %d Data = %d\n",offset,data);
+}
-static ADDRESS_MAP_START( mephisto_map, AS_PROGRAM, 8, mephisto_pinball_state )
- AM_RANGE(0x00000, 0x0ffff) AM_ROM
- AM_RANGE(0x10000, 0x1ffff) AM_RAM
- //AM_RANGE(0x12000, 0x1201f) io (switches & lamps)
- AM_RANGE(0xf8000, 0xfffff) AM_ROM
+WRITE8_MEMBER( mephisto_state::write_led_mm2 )
+{
+ UINT8 LED_offset=100;
+ data &= 0x80;
+
+ if (data==0)
+ m_led_status &= 255-(1<<offset);
+ else
+ m_led_status|=1<<offset;
+
+ if (offset<6)
+ output_set_led_value(LED_offset+offset, m_led_status&1<<offset?1:0);
+
+ if (offset==7)
+ m_led7= BIT(data, 7) ? 0xff :0x00; //MM2
+}
+
+static ADDRESS_MAP_START( rebel5_mem, AS_PROGRAM, 8, mephisto_state )
+ AM_RANGE( 0x0000, 0x1fff) AM_RAM // AM_BASE(m_p_ram)
+ AM_RANGE( 0x2000, 0x2007) AM_WRITE(write_led) // Status LEDs+ buzzer
+ AM_RANGE( 0x3000, 0x3007) AM_READ(read_keys) // Rebel 5.0
+ AM_RANGE( 0x3000, 0x4000) AM_READ(mboard_read_board_8) // Chessboard
+ AM_RANGE( 0x5000, 0x5000) AM_WRITE(write_lcd)
+ AM_RANGE( 0x6000, 0x6000) AM_WRITE(mboard_write_LED_8) // Chessboard
+ AM_RANGE( 0x7000, 0x7000) AM_WRITE(mboard_write_board_8) // Chessboard
+ AM_RANGE( 0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mephisto_cpu2, AS_PROGRAM, 8, mephisto_pinball_state )
- AM_RANGE(0x00000, 0x07fff) AM_ROM
+
+static ADDRESS_MAP_START( mephisto_mem, AS_PROGRAM, 8, mephisto_state )
+ AM_RANGE( 0x0000, 0x1fff) AM_RAM //AM_BASE(m_p_ram)
+ AM_RANGE( 0x2000, 0x2000) AM_WRITE(write_lcd)
+ AM_RANGE( 0x2400, 0x2407) AM_WRITE(mboard_write_LED_8) // Chessboard
+ AM_RANGE( 0x2800, 0x2800) AM_WRITE(mboard_write_board_8) // Chessboard
+ AM_RANGE( 0x2c00, 0x2c07) AM_READ(read_keys)
+ AM_RANGE( 0x3000, 0x3000) AM_READ(mboard_read_board_8) // Chessboard
+ AM_RANGE( 0x3400, 0x3407) AM_WRITE(write_led) // Status LEDs+ buzzer
+ AM_RANGE( 0x3800, 0x3800) AM_WRITE(mephisto_NMI) // NMI enable
+ AM_RANGE( 0x4000, 0x7fff) AM_ROM // Opening Library
+ AM_RANGE( 0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mephisto_cpu2_io, AS_IO, 8, mephisto_pinball_state )
- //AM_RANGE(0x0000, 0x07ff) AM_WRITE
+static ADDRESS_MAP_START( mm2_mem, AS_PROGRAM, 8, mephisto_state )
+ AM_RANGE( 0x0000, 0x0fff) AM_RAM //AM_BASE(m_p_ram)
+ AM_RANGE( 0x1000, 0x1007) AM_WRITE(write_led_mm2) //Status LEDs
+ AM_RANGE( 0x1800, 0x1807) AM_READ(read_keys)
+ AM_RANGE( 0x2000, 0x2000) AM_READ(mboard_read_board_8) //Chessboard
+ AM_RANGE( 0x2800, 0x2800) AM_WRITE(write_lcd)
+ AM_RANGE( 0x3000, 0x3000) AM_WRITE(mboard_write_LED_8) //Chessboard
+ AM_RANGE( 0x3800, 0x3800) AM_WRITE(mboard_write_board_8) //Chessboard
+ AM_RANGE( 0x4000, 0x7fff) AM_ROM // Opening Library ?
+ AM_RANGE( 0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
+INPUT_PORTS_EXTERN( chessboard );
+
static INPUT_PORTS_START( mephisto )
+ PORT_START("KEY1_0") //Port $2c00
+ PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CLEAR") PORT_CODE(KEYCODE_F1)
+ PORT_START("KEY1_1") //Port $2c01
+ PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("POS") PORT_CODE(KEYCODE_F2)
+ PORT_START("KEY1_2") //Port $2c02
+ PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("MEM") PORT_CODE(KEYCODE_F3)
+ PORT_START("KEY1_3") //Port $2c03
+ PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("INFO") PORT_CODE(KEYCODE_F4)
+ PORT_START("KEY1_4") //Port $2c04
+ PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("LEV") PORT_CODE(KEYCODE_F5)
+ PORT_START("KEY1_5") //Port $2c05
+ PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ENT") PORT_CODE(KEYCODE_ENTER)
+ PORT_START("KEY1_6") //Port $2c06
+ PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0)
+ PORT_START("KEY1_7") //Port $2c07
+ PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9") PORT_CODE(KEYCODE_9)
+
+ PORT_START("KEY2_0") //Port $2c08
+ PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E 5") PORT_CODE(KEYCODE_E) PORT_CODE(KEYCODE_5)
+ PORT_START("KEY2_1") //Port $2c09
+ PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F 6") PORT_CODE(KEYCODE_F) PORT_CODE(KEYCODE_6)
+ PORT_START("KEY2_2") //Port $2c0a
+ PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G 7") PORT_CODE(KEYCODE_G) PORT_CODE(KEYCODE_7)
+ PORT_START("KEY2_3") //Port $2c0b
+ PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A 1") PORT_CODE(KEYCODE_A) PORT_CODE(KEYCODE_1)
+ PORT_START("KEY2_4") //Port $2c0c
+ PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("H 8") PORT_CODE(KEYCODE_H) PORT_CODE(KEYCODE_8)
+ PORT_START("KEY2_5") //Port $2c0d
+ PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B 2") PORT_CODE(KEYCODE_B) PORT_CODE(KEYCODE_2)
+ PORT_START("KEY2_6") //Port $2c0e
+ PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C 3") PORT_CODE(KEYCODE_C) PORT_CODE(KEYCODE_3)
+ PORT_START("KEY2_7") //Port $2c0f
+ PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D 4") PORT_CODE(KEYCODE_D) PORT_CODE(KEYCODE_4)
+
+ PORT_INCLUDE( chessboard )
INPUT_PORTS_END
-void mephisto_pinball_state::machine_reset()
+
+TIMER_DEVICE_CALLBACK_MEMBER(mephisto_state::update_nmi)
{
+ if (m_allowNMI)
+ {
+ m_allowNMI = 0;
+ m_maincpu->set_input_line(INPUT_LINE_NMI,PULSE_LINE);
+ }
+ m_beep->set_state(m_led_status&64?1:0);
}
-DRIVER_INIT_MEMBER(mephisto_pinball_state,mephisto)
+TIMER_DEVICE_CALLBACK_MEMBER(mephisto_state::update_nmi_r5)
{
+ m_maincpu->set_input_line(INPUT_LINE_NMI,PULSE_LINE);
+ m_beep->set_state(m_led_status&64?1:0);
}
-static MACHINE_CONFIG_START( mephisto, mephisto_pinball_state )
+TIMER_DEVICE_CALLBACK_MEMBER(mephisto_state::update_irq)//only mm2
+{
+ m_maincpu->set_input_line(M65C02_IRQ_LINE, HOLD_LINE);
+
+ m_beep->set_state(m_led_status&64?1:0);
+}
+
+void mephisto_state::machine_start()
+{
+ m_lcd_shift_counter = 3;
+ m_allowNMI = 1;
+ mboard_savestate_register();
+}
+
+MACHINE_START_MEMBER(mephisto_state,mm2)
+{
+ m_lcd_shift_counter = 3;
+ m_led7=0xff;
+
+ mboard_savestate_register();
+}
+
+
+void mephisto_state::machine_reset()
+{
+ m_lcd_shift_counter = 3;
+ m_allowNMI = 1;
+ mboard_set_border_pieces();
+ mboard_set_board();
+
+/* adjust artwork depending on current emulation*/
+
+ if (!strcmp(machine().system().name,"mm2") )
+ output_set_value("MM",1);
+ else if (!strcmp(machine().system().name,"mm4") )
+ output_set_value("MM",2);
+ else if (!strcmp(machine().system().name,"mm4tk") )
+ output_set_value("MM",5);
+ else if (!strcmp(machine().system().name,"mm5tk") )
+ output_set_value("MM",5);
+ else if (!strcmp(machine().system().name,"mm5") )
+ output_set_value("MM",3);
+ else if (!strcmp(machine().system().name,"mm50") )
+ output_set_value("MM",3);
+ else if (!strcmp(machine().system().name,"rebel5") )
+ output_set_value("MM",4);
+}
+
+
+static MACHINE_CONFIG_START( mephisto, mephisto_state )
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu",M65C02,4915200) /* 65C02 */
+ MCFG_CPU_PROGRAM_MAP(mephisto_mem)
+ MCFG_QUANTUM_TIME(attotime::from_hz(60))
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_SOUND_ADD("beeper", BEEP, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("nmi_timer", mephisto_state, update_nmi, attotime::from_hz(600))
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("artwork_timer", mephisto_state, mboard_update_artwork, attotime::from_hz(100))
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( rebel5, mephisto )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", I8088, 8000000)
- MCFG_CPU_PROGRAM_MAP(mephisto_map)
- MCFG_CPU_ADD("cpu2", I8051, 12000000)
- MCFG_CPU_PROGRAM_MAP(mephisto_cpu2)
- MCFG_CPU_IO_MAP(mephisto_cpu2_io)
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(rebel5_mem)
+ MCFG_DEVICE_REMOVE("nmi_timer")
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("nmi_timer_r5", mephisto_state, update_nmi_r5, attotime::from_hz(600))
+
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( mm2, mephisto )
+ MCFG_CPU_REPLACE("maincpu", M65C02, 3700000)
+ MCFG_CPU_PROGRAM_MAP(mm2_mem)
+ MCFG_MACHINE_START_OVERRIDE(mephisto_state, mm2 )
+
+ MCFG_DEVICE_REMOVE("nmi_timer")
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_timer", mephisto_state, update_irq, attotime::from_hz(450))
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( mm4tk, mephisto )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_REPLACE("maincpu", M65C02, 18000000)
+ MCFG_CPU_PROGRAM_MAP(mephisto_mem)
MACHINE_CONFIG_END
-/*-------------------------------------------------------------------
-/ Mephisto
-/-------------------------------------------------------------------*/
-ROM_START(mephistp)
- ROM_REGION(0x1000000, "maincpu", 0)
- ROM_LOAD("cpu_ver1.2", 0x00000, 0x8000, CRC(845c8eb4) SHA1(2a705629990950d4e2d3a66a95e9516cf112cc88))
- ROM_RELOAD(0x08000, 0x8000)
- ROM_RELOAD(0xf8000, 0x8000)
-
- ROM_REGION(0x20000, "cpu2", 0)
- ROM_LOAD("ic15_02", 0x00000, 0x8000, CRC(2accd446) SHA1(7297e4825c33e7cf23f86fe39a0242e74874b1e2))
-
- ROM_REGION(0x40000, "sound1", 0)
- ROM_LOAD("ic14_s0", 0x00000, 0x8000, CRC(7cea3018) SHA1(724fe7a4456cbf2ac01466d946668ee86f4410ae))
- ROM_LOAD("ic13_s1", 0x08000, 0x8000, CRC(5a9e0f1d) SHA1(dbfd307706c51f8809f4867a199b4b62beb64379))
- ROM_LOAD("ic12_s2", 0x10000, 0x8000, CRC(b3cc962a) SHA1(521376cab7e917a5d5f5f183bccb21bd13327c48))
- ROM_LOAD("ic11_s3", 0x18000, 0x8000, CRC(8aaa21ec) SHA1(29f17249cac62128fd8b0eee415ce399ee2ec672))
- ROM_LOAD("ic16_c", 0x20000, 0x8000, CRC(5f12b4f4) SHA1(73fbdb57fca0dbc918e6665a6cb949e741f2720a))
- ROM_LOAD("ic17_d", 0x28000, 0x8000, CRC(d17e18a8) SHA1(372eaf209ea5d26f3c096aadd7d028ef68bfb68e))
- ROM_LOAD("ic18_e", 0x30000, 0x8000, CRC(eac6dbba) SHA1(f4971c8b0aa3a72c396b943a0ee3094afb902ec1))
- ROM_LOAD("ic19_f", 0x38000, 0x8000, CRC(cc4bb629) SHA1(db46be2a8034bbd106b7dd80f50988c339684b5e))
+ROM_START(rebel5)
+ ROM_REGION(0x10000,"maincpu",0)
+ ROM_LOAD("rebel5.rom", 0x8000, 0x8000, CRC(8d02e1ef) SHA1(9972c75936613bd68cfd3fe62bd222e90e8b1083))
+ROM_END
+
+ROM_START(mm2)
+ ROM_REGION(0x10000,"maincpu",0)
+ ROM_LOAD("mm2_1.bin", 0x8000, 0x4000, CRC(e2daac82) SHA1(c9fa59ca92362f8ee770733073bfa2ab8c7904ad))
+ ROM_LOAD("mm2_2.bin", 0xc000, 0x4000, CRC(5e296939) SHA1(badd2a377259cf738cd076d8fb245c3dc284c24d))
+ROM_END
+
+ROM_START(mm4)
+ ROM_REGION(0x10000,"maincpu",0)
+ ROM_LOAD("mephisto4.rom", 0x8000, 0x8000, CRC(f68a4124) SHA1(d1d03a9aacc291d5cb720d2ee2a209eeba13a36c))
+ ROM_SYSTEM_BIOS( 0, "none", "No Opening Library" )
+ ROM_SYSTEM_BIOS( 1, "hg440", "HG440 Opening Library" )
+ ROMX_LOAD( "hg440.rom", 0x4000, 0x4000, CRC(81ffcdfd) SHA1(b0f7bcc11d1e821daf92cde31e3446c8be0bbe19), ROM_BIOS(2))
+ROM_END
+
+ROM_START(mm4tk)
+ ROM_REGION(0x10000,"maincpu",0)
+ ROM_LOAD("mm4tk.rom", 0x8000, 0x8000, CRC(51cb36a4) SHA1(9e184b4e85bb721e794b88d8657ae8d2ff5a24af))
+ ROM_SYSTEM_BIOS( 0, "none", "No Opening Library" )
+ ROM_SYSTEM_BIOS( 1, "hg440", "HG440 Opening Library" )
+ ROMX_LOAD( "hg440.rom", 0x4000, 0x4000, CRC(81ffcdfd) SHA1(b0f7bcc11d1e821daf92cde31e3446c8be0bbe19), ROM_BIOS(0))
ROM_END
-ROM_START(mephistp1)
- ROM_REGION(0x1000000, "maincpu", 0)
- ROM_LOAD("cpu_ver1.1", 0x00000, 0x8000, CRC(ce584902) SHA1(dd05d008bbd9b6588cb204e8d901537ffe7ddd43))
- ROM_RELOAD(0x08000, 0x8000)
- ROM_RELOAD(0xf8000, 0x8000)
-
- ROM_REGION(0x20000, "cpu2", 0)
- ROM_LOAD("ic15_02", 0x00000, 0x8000, CRC(2accd446) SHA1(7297e4825c33e7cf23f86fe39a0242e74874b1e2))
-
- ROM_REGION(0x40000, "sound1", 0)
- ROM_LOAD("ic14_s0", 0x00000, 0x8000, CRC(7cea3018) SHA1(724fe7a4456cbf2ac01466d946668ee86f4410ae))
- ROM_LOAD("ic13_s1", 0x08000, 0x8000, CRC(5a9e0f1d) SHA1(dbfd307706c51f8809f4867a199b4b62beb64379))
- ROM_LOAD("ic12_s2", 0x10000, 0x8000, CRC(b3cc962a) SHA1(521376cab7e917a5d5f5f183bccb21bd13327c48))
- ROM_LOAD("ic11_s3", 0x18000, 0x8000, CRC(8aaa21ec) SHA1(29f17249cac62128fd8b0eee415ce399ee2ec672))
- ROM_LOAD("ic16_c", 0x20000, 0x8000, CRC(5f12b4f4) SHA1(73fbdb57fca0dbc918e6665a6cb949e741f2720a))
- ROM_LOAD("ic17_d", 0x28000, 0x8000, CRC(d17e18a8) SHA1(372eaf209ea5d26f3c096aadd7d028ef68bfb68e))
- ROM_LOAD("ic18_e", 0x30000, 0x8000, CRC(eac6dbba) SHA1(f4971c8b0aa3a72c396b943a0ee3094afb902ec1))
- ROM_LOAD("ic19_f", 0x38000, 0x8000, CRC(cc4bb629) SHA1(db46be2a8034bbd106b7dd80f50988c339684b5e))
+ROM_START(mm5tk)
+ ROM_REGION(0x10000,"maincpu",0)
+ ROM_LOAD("mephisto5.rom", 0x8000, 0x8000, BAD_DUMP CRC(89c3d9d2) SHA1(77cd6f8eeb03c713249db140d2541e3264328048))
+ ROM_SYSTEM_BIOS( 0, "none", "No Opening Library" )
+ ROM_SYSTEM_BIOS( 1, "hg550", "HG550 Opening Library" )
+ ROMX_LOAD("hg550.rom", 0x4000, 0x4000, CRC(0359f13d) SHA1(833cef8302ad8d283d3f95b1d325353c7e3b8614),ROM_BIOS(0))
ROM_END
+ROM_START(mm5)
+ ROM_REGION(0x10000,"maincpu",0)
+ ROM_LOAD("mephisto5.rom", 0x8000, 0x8000, CRC(89c3d9d2) SHA1(77cd6f8eeb03c713249db140d2541e3264328048))
+ ROM_SYSTEM_BIOS( 0, "none", "No Opening Library" )
+ ROM_SYSTEM_BIOS( 1, "hg550", "HG550 Opening Library" )
+ ROMX_LOAD("hg550.rom", 0x4000, 0x4000, CRC(0359f13d) SHA1(833cef8302ad8d283d3f95b1d325353c7e3b8614),ROM_BIOS(2))
+ROM_END
+
+ROM_START(mm50)
+ ROM_REGION(0x10000,"maincpu",0)
+ ROM_LOAD("mm50.rom", 0x8000, 0x8000, CRC(fcfa7e6e) SHA1(afeac3a8c957ba58cefaa27b11df974f6f2066da))
+ ROM_SYSTEM_BIOS( 0, "none", "No Opening Library" )
+ ROM_SYSTEM_BIOS( 1, "hg550", "HG550 Opening Library" )
+ ROMX_LOAD("hg550.rom", 0x4000, 0x4000, CRC(0359f13d) SHA1(833cef8302ad8d283d3f95b1d325353c7e3b8614),ROM_BIOS(2))
+ROM_END
+
+
+DRIVER_INIT_MEMBER(mephisto_state,mephisto)
+{
+ m_lcd_shift_counter = 3;
+}
+
+/***************************************************************************
+
+ Game driver(s)
+
+***************************************************************************/
+
+/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-GAME(1986, mephistp, 0, mephisto, mephisto, mephisto_pinball_state, mephisto, ROT0, "Stargame", "Mephisto (rev. 1.2)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1986, mephistp1, mephistp, mephisto, mephisto, mephisto_pinball_state, mephisto, ROT0, "Stargame", "Mephisto (rev. 1.1)", GAME_IS_SKELETON_MECHANICAL)
+CONS( 1984, mm2, mm4, 0, mm2, mephisto, mephisto_state, mephisto, "Hegener & Glaser", "Mephisto MM2 Schachcomputer", MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK )
+CONS( 1986, rebel5, mm4, 0, rebel5, mephisto, mephisto_state, mephisto, "Hegener & Glaser", "Mephisto Rebell 5,0 Schachcomputer", MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK )
+CONS( 1987, mm4, 0, 0, mephisto, mephisto, mephisto_state, mephisto, "Hegener & Glaser", "Mephisto 4 Schachcomputer", MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK )
+CONS( 1987, mm4tk, mm4, 0, mm4tk, mephisto, mephisto_state, mephisto, "Hegener & Glaser", "Mephisto 4 Schachcomputer Turbo Kit + HG440", MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK )
+CONS( 1990, mm5, mm4, 0, mephisto, mephisto, mephisto_state, mephisto, "Hegener & Glaser", "Mephisto 5.1 Schachcomputer", MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK )
+CONS( 1990, mm50, mm4, 0, mephisto, mephisto, mephisto_state, mephisto, "Hegener & Glaser", "Mephisto 5.0 Schachcomputer", MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK )
+CONS( 1990, mm5tk, mm4, 0, mm4tk, mephisto, mephisto_state, mephisto, "Hegener & Glaser", "Mephisto 5.1 Schachcomputer Turbo Kit + HG550", MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK )
diff --git a/src/mame/drivers/mephistp.c b/src/mame/drivers/mephistp.c
new file mode 100644
index 00000000000..db9e3aac432
--- /dev/null
+++ b/src/mame/drivers/mephistp.c
@@ -0,0 +1,115 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+/*****************************************************************************************
+
+ PINBALL
+ Mephisto
+
+******************************************************************************************/
+
+#include "emu.h"
+#include "cpu/i86/i86.h"
+#include "cpu/mcs51/mcs51.h"
+
+// mephisto_state was also defined in mess/drivers/mephisto.c
+class mephisto_pinball_state : public driver_device
+{
+public:
+ mephisto_pinball_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu")
+ { }
+
+protected:
+
+ // devices
+ required_device<cpu_device> m_maincpu;
+
+ // driver_device overrides
+ virtual void machine_reset();
+public:
+ DECLARE_DRIVER_INIT(mephisto);
+};
+
+
+static ADDRESS_MAP_START( mephisto_map, AS_PROGRAM, 8, mephisto_pinball_state )
+ AM_RANGE(0x00000, 0x0ffff) AM_ROM
+ AM_RANGE(0x10000, 0x1ffff) AM_RAM
+ //AM_RANGE(0x12000, 0x1201f) io (switches & lamps)
+ AM_RANGE(0xf8000, 0xfffff) AM_ROM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( mephisto_cpu2, AS_PROGRAM, 8, mephisto_pinball_state )
+ AM_RANGE(0x00000, 0x07fff) AM_ROM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( mephisto_cpu2_io, AS_IO, 8, mephisto_pinball_state )
+ //AM_RANGE(0x0000, 0x07ff) AM_WRITE
+ADDRESS_MAP_END
+
+static INPUT_PORTS_START( mephisto )
+INPUT_PORTS_END
+
+void mephisto_pinball_state::machine_reset()
+{
+}
+
+DRIVER_INIT_MEMBER(mephisto_pinball_state,mephisto)
+{
+}
+
+static MACHINE_CONFIG_START( mephisto, mephisto_pinball_state )
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", I8088, 8000000)
+ MCFG_CPU_PROGRAM_MAP(mephisto_map)
+ MCFG_CPU_ADD("cpu2", I8051, 12000000)
+ MCFG_CPU_PROGRAM_MAP(mephisto_cpu2)
+ MCFG_CPU_IO_MAP(mephisto_cpu2_io)
+MACHINE_CONFIG_END
+
+/*-------------------------------------------------------------------
+/ Mephisto
+/-------------------------------------------------------------------*/
+ROM_START(mephistp)
+ ROM_REGION(0x1000000, "maincpu", 0)
+ ROM_LOAD("cpu_ver1.2", 0x00000, 0x8000, CRC(845c8eb4) SHA1(2a705629990950d4e2d3a66a95e9516cf112cc88))
+ ROM_RELOAD(0x08000, 0x8000)
+ ROM_RELOAD(0xf8000, 0x8000)
+
+ ROM_REGION(0x20000, "cpu2", 0)
+ ROM_LOAD("ic15_02", 0x00000, 0x8000, CRC(2accd446) SHA1(7297e4825c33e7cf23f86fe39a0242e74874b1e2))
+
+ ROM_REGION(0x40000, "sound1", 0)
+ ROM_LOAD("ic14_s0", 0x00000, 0x8000, CRC(7cea3018) SHA1(724fe7a4456cbf2ac01466d946668ee86f4410ae))
+ ROM_LOAD("ic13_s1", 0x08000, 0x8000, CRC(5a9e0f1d) SHA1(dbfd307706c51f8809f4867a199b4b62beb64379))
+ ROM_LOAD("ic12_s2", 0x10000, 0x8000, CRC(b3cc962a) SHA1(521376cab7e917a5d5f5f183bccb21bd13327c48))
+ ROM_LOAD("ic11_s3", 0x18000, 0x8000, CRC(8aaa21ec) SHA1(29f17249cac62128fd8b0eee415ce399ee2ec672))
+ ROM_LOAD("ic16_c", 0x20000, 0x8000, CRC(5f12b4f4) SHA1(73fbdb57fca0dbc918e6665a6cb949e741f2720a))
+ ROM_LOAD("ic17_d", 0x28000, 0x8000, CRC(d17e18a8) SHA1(372eaf209ea5d26f3c096aadd7d028ef68bfb68e))
+ ROM_LOAD("ic18_e", 0x30000, 0x8000, CRC(eac6dbba) SHA1(f4971c8b0aa3a72c396b943a0ee3094afb902ec1))
+ ROM_LOAD("ic19_f", 0x38000, 0x8000, CRC(cc4bb629) SHA1(db46be2a8034bbd106b7dd80f50988c339684b5e))
+ROM_END
+
+ROM_START(mephistp1)
+ ROM_REGION(0x1000000, "maincpu", 0)
+ ROM_LOAD("cpu_ver1.1", 0x00000, 0x8000, CRC(ce584902) SHA1(dd05d008bbd9b6588cb204e8d901537ffe7ddd43))
+ ROM_RELOAD(0x08000, 0x8000)
+ ROM_RELOAD(0xf8000, 0x8000)
+
+ ROM_REGION(0x20000, "cpu2", 0)
+ ROM_LOAD("ic15_02", 0x00000, 0x8000, CRC(2accd446) SHA1(7297e4825c33e7cf23f86fe39a0242e74874b1e2))
+
+ ROM_REGION(0x40000, "sound1", 0)
+ ROM_LOAD("ic14_s0", 0x00000, 0x8000, CRC(7cea3018) SHA1(724fe7a4456cbf2ac01466d946668ee86f4410ae))
+ ROM_LOAD("ic13_s1", 0x08000, 0x8000, CRC(5a9e0f1d) SHA1(dbfd307706c51f8809f4867a199b4b62beb64379))
+ ROM_LOAD("ic12_s2", 0x10000, 0x8000, CRC(b3cc962a) SHA1(521376cab7e917a5d5f5f183bccb21bd13327c48))
+ ROM_LOAD("ic11_s3", 0x18000, 0x8000, CRC(8aaa21ec) SHA1(29f17249cac62128fd8b0eee415ce399ee2ec672))
+ ROM_LOAD("ic16_c", 0x20000, 0x8000, CRC(5f12b4f4) SHA1(73fbdb57fca0dbc918e6665a6cb949e741f2720a))
+ ROM_LOAD("ic17_d", 0x28000, 0x8000, CRC(d17e18a8) SHA1(372eaf209ea5d26f3c096aadd7d028ef68bfb68e))
+ ROM_LOAD("ic18_e", 0x30000, 0x8000, CRC(eac6dbba) SHA1(f4971c8b0aa3a72c396b943a0ee3094afb902ec1))
+ ROM_LOAD("ic19_f", 0x38000, 0x8000, CRC(cc4bb629) SHA1(db46be2a8034bbd106b7dd80f50988c339684b5e))
+ROM_END
+
+
+GAME(1986, mephistp, 0, mephisto, mephisto, mephisto_pinball_state, mephisto, ROT0, "Stargame", "Mephisto (rev. 1.2)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1986, mephistp1, mephistp, mephisto, mephisto, mephisto_pinball_state, mephisto, ROT0, "Stargame", "Mephisto (rev. 1.1)", MACHINE_IS_SKELETON_MECHANICAL)
diff --git a/src/mame/drivers/merit.c b/src/mame/drivers/merit.c
index fb728ba9414..7131d099cc5 100644
--- a/src/mame/drivers/merit.c
+++ b/src/mame/drivers/merit.c
@@ -670,7 +670,7 @@ static INPUT_PORTS_START( pitboss ) /* PCB pinout maps 12 lamp outputs - Where a
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_CODE(KEYCODE_B) PORT_NAME("P1/P2 Button 5")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("P1/P2 Play")
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_CODE(KEYCODE_Q) PORT_NAME("P1/P2 Cancel")
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) //causes "unauthorized conversion" msg.
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // pulling this LOW causes "unathorized conversion" msg.
PORT_START("IN1") /* Pins #57 through #51 of J3 in decending order */
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
@@ -722,6 +722,68 @@ static INPUT_PORTS_START( pitboss ) /* PCB pinout maps 12 lamp outputs - Where a
PORT_DIPSETTING( 0x00, DEF_STR( None ) )
INPUT_PORTS_END
+
+static INPUT_PORTS_START( mroundup ) // todo: Find were Player 2 "Play" is mapped, all "IPT_UNKNOWN" below checked and nothing seems to work
+ PORT_START("IN0") /* Pins #65 through #58 of J3 in decending order */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_CODE(KEYCODE_Z)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_CODE(KEYCODE_X)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_CODE(KEYCODE_C)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_CODE(KEYCODE_V)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_CODE(KEYCODE_B)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("P1 Play")
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_CODE(KEYCODE_Q) PORT_NAME("Cancel")
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON8 ) PORT_CODE(KEYCODE_R) PORT_NAME("Reset Points") /* Counts down player point if pressed instead of "Play" */
+
+ PORT_START("IN1") /* Pins #57 through #51 of J3 in decending order */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN2 )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK )
+ PORT_SERVICE_NO_TOGGLE( 0x08, IP_ACTIVE_LOW ) /* AKA Diagnostics - Seems to reset the game */
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON7 ) PORT_COCKTAIL PORT_CODE(KEYCODE_E) PORT_NAME("P2 Cancel")
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_DIPNAME( 0xc0, 0xc0, "Percentage Out" )
+ PORT_DIPSETTING( 0x80, "80%" )
+ PORT_DIPSETTING( 0x00, "85%" ) /* Duplicate */
+ PORT_DIPSETTING( 0xc0, "85%" )
+ PORT_DIPSETTING( 0x40, "90%" )
+
+
+ PORT_START("IN2") /* Pins #46 through #41 of J3 in decending order */
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL PORT_CODE(KEYCODE_A) PORT_NAME("P2 Button 1")
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL PORT_CODE(KEYCODE_S) PORT_NAME("P2 Button 2")
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL PORT_CODE(KEYCODE_D) PORT_NAME("P2 Button 3")
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_COCKTAIL PORT_CODE(KEYCODE_F) PORT_NAME("P2 Button 4")
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_COCKTAIL PORT_CODE(KEYCODE_G) PORT_NAME("P2 Button 5")
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // pulling this LOW causes "unathorized conversion" msg.
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, merit_state,rndbit_r, NULL)
+
+ PORT_START("DSW")
+ PORT_DIPNAME( 0x01, 0x01, "Enable Draw Poker" ) PORT_DIPLOCATION("SW1:1")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( On ) )
+ PORT_DIPNAME( 0x02, 0x02, "Enable Foto Finish" ) PORT_DIPLOCATION("SW1:2")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( On ) )
+ PORT_DIPNAME( 0x04, 0x04, "Enable Black Jack" ) PORT_DIPLOCATION("SW1:3")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW1:4")
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, "Points Per Coin" ) PORT_DIPLOCATION("SW1:5")
+ PORT_DIPSETTING( 0x10, "1 Point" )
+ PORT_DIPSETTING( 0x00, "5 Points" )
+ PORT_DIPNAME( 0x20, 0x20, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SW1:6")
+ PORT_DIPSETTING( 0x20, "Counter Top" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
+ PORT_DIPNAME( 0xc0, 0x00, "Maximum Bet" ) PORT_DIPLOCATION("SW1:7,8")
+ PORT_DIPSETTING( 0x40, "1" )
+ PORT_DIPSETTING( 0xc0, "10" )
+ PORT_DIPSETTING( 0x80, "20" )
+ PORT_DIPSETTING( 0x00, "50" )
+INPUT_PORTS_END
+
static INPUT_PORTS_START( pitbossa )
PORT_INCLUDE( pitboss )
@@ -769,12 +831,15 @@ static INPUT_PORTS_START( casino5 )
PORT_START("IN1") /* Pins #57 through #51 of J3 in decending order */
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK )
- PORT_SERVICE_NO_TOGGLE( 0x08, IP_ACTIVE_LOW ) /* AKA Diagnostics */
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* 1 displays additional screens in attract mode - custom ads screen (requires optional Keyboard to set up) */
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) /* Runs basic Diagnostics on roms */
+ PORT_SERVICE_NO_TOGGLE( 0x08, IP_ACTIVE_LOW ) /* AKA Diagnostics - Shows simple Statistics */
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN ) /* 1 displays additional screens in attract mode - custom ads screen (requires optional Keyboard to set up) */
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Likely controls Percentage out, 75%, 80%, 85% & 90% as per manual's "Tab Positions" */
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_DIPNAME( 0xc0, 0xc0, "Percentage Out" ) /* Controls Percentage out, 75%, 80%, 85% & 90% as per manual's "Tab Positions" - Need to verify values */
+ PORT_DIPSETTING( 0x00, "75%" )
+ PORT_DIPSETTING( 0x80, "80%" )
+ PORT_DIPSETTING( 0xc0, "85%" )
+ PORT_DIPSETTING( 0x40, "90%" )
PORT_START("IN2") /* Pins #46 through #41 of J3 in decending order (usually P2 controls - Not used!) */
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
@@ -1345,6 +1410,21 @@ ROM_START( casino5 ) /* Standard version, the rom set with 3315-02 U5-1 is the "
ROM_LOAD( "u40", 0x0000, 0x2000, CRC(b13a3fb1) SHA1(25760aa27c88b8be248a87df724bf8797d179e7a) )
ROM_END
+ROM_START( mroundup )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "kru1cd_u5.u5", 0x0000, 0x2000, CRC(7bd90672) SHA1(5f763e807370df991cc2c4abaeb8184c42149a0e) ) /* Internal designation: RUM1HRV0 */
+ ROM_LOAD( "kru1cd_u6.u6", 0x2000, 0x2000, CRC(fccffb0d) SHA1(57cbfb7e2bf1050cb2da8b4cc7cdd7e18356bcd2) ) /* Games included in this set are: */
+ ROM_LOAD( "kru1cd_u7.u7", 0x4000, 0x2000, CRC(72131230) SHA1(e7c08b537848a7c6e6e987c6d0644a031bb238d4) ) /* Draw Poker, Blackjack, Foto Finish */
+
+ ROM_REGION( 0x6000, "gfx1", 0 )
+ ROM_LOAD( "chr7.u39", 0x0000, 0x2000, CRC(6662f607) SHA1(6b423f8de011d196700839af0be37effbf87383f) )
+ ROM_LOAD( "chr7.u38", 0x2000, 0x2000, CRC(a014b44f) SHA1(906d426b1de75f26030c19dcd599b6570909f510) )
+ ROM_LOAD( "chr7.u37", 0x4000, 0x2000, CRC(cb12e139) SHA1(06fe91281faae5d0c0ae4b3cd8ad103bd3995c38) )
+
+ ROM_REGION( 0x2000, "gfx2", 0 )
+ ROM_LOAD( "chr7.u40", 0x0000, 0x2000, CRC(52298162) SHA1(79aa6c4ab6bec6450d882615e64f61cfef934153) )
+ROM_END
+
ROM_START( riviera ) /* PAL16L8ANC labeled DEC-003 at U13 */
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "2131-08_u5-4a.u5", 0x0000, 0x8000, CRC(0bc8cf26) SHA1(da52010be2d44a240160bb1a13288b35e8feade2) ) /* 08 U5-4A 111287 2131-84A, label shows (c) 1988 */
@@ -2088,52 +2168,54 @@ DRIVER_INIT_MEMBER(merit_state,dtrvwz5)
/* Gambling type games */
-GAME( 1983, pitboss, 0, casino5, pitboss, driver_device, 0, ROT0, "Merit", "The Pit Boss (2214-04)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
-GAME( 1983, pitbossa, pitboss, pitboss, pitbossa, driver_device, 0, ROT0, "Merit", "The Pit Boss (2214-03, U5-0C)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
-GAME( 1983, pitbossa1,pitboss, pitboss, pitbossa1,driver_device, 0, ROT0, "Merit", "The Pit Boss (2214-03, U5-1C)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
-GAME( 1983, pitbossb, pitboss, pitboss, pitbossa, driver_device, 0, ROT0, "Merit", "The Pit Boss (2214-02?)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
-GAME( 1983, pitbossc, pitboss, pitboss, pitbossb, driver_device, 0, ROT0, "Merit", "The Pit Boss (2214-?)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
+GAME( 1983, pitboss, 0, casino5, pitboss, driver_device, 0, ROT0, "Merit", "The Pit Boss (2214-04)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1983, pitbossa, 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, pitbossa1,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, pitbossb, pitboss, pitboss, pitbossa, driver_device, 0, ROT0, "Merit", "The Pit Boss (2214-02?)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1983, pitbossc, pitboss, pitboss, pitbossb, driver_device, 0, ROT0, "Merit", "The Pit Boss (2214-?)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS )
+
+GAME( 1984, casino5, 0, casino5, casino5, driver_device, 0, ROT0, "Merit", "Casino Five (3315-02, U5-0)", MACHINE_SUPPORTS_SAVE )
-GAME( 1984, casino5, 0, casino5, casino5, driver_device, 0, ROT0, "Merit", "Casino Five (3315-02, U5-0)", GAME_SUPPORTS_SAVE )
+GAME( 1984, mroundup, 0, pitboss, mroundup, driver_device, 0, ROT0, "Merit", "The Round Up", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
-GAME( 1987, riviera, 0, dodge, riviera, driver_device, 0, ROT0, "Merit", "Riviera Hi-Score (2131-08, U5-4A)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS )
-GAME( 1986, rivieraa, riviera, dodge, riviera, driver_device, 0, ROT0, "Merit", "Riviera Hi-Score (2131-08, U5-4)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS )
-GAME( 1986, rivierab, riviera, dodge, rivierab, driver_device, 0, ROT0, "Merit", "Riviera Hi-Score (2131-08, U5-2D)", GAME_SUPPORTS_SAVE | GAME_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( 1986, bigappg, 0, bigappg, bigappg, driver_device, 0, ROT0, "Big Apple Games / Merit", "The Big Apple (2131-13, U5-0)", GAME_SUPPORTS_SAVE )
+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, dodgectya,dodgecty,dodge, dodge, driver_device, 0, ROT0, "Merit", "Dodge City (2131-82, U5-0D)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
-GAME( 1986, dodgectyb,dodgecty,dodge, dodge, driver_device, 0, ROT0, "Merit", "Dodge City (2131-82, U5-50)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
-GAME( 1986, dodgectyc,dodgecty,dodge, dodge, driver_device, 0, ROT0, "Merit", "Dodge City (2131-82, U5-0 GT)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
+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 )
/* Trivia and Word games */
-GAME( 1985, trvwzh, 0, trvwhiz, trivia, merit_state, key_0, ROT0, "Merit", "Trivia ? Whiz (6221-00)", GAME_SUPPORTS_SAVE )
-GAME( 1985, trvwzha, trvwzh, trvwhiz, trivia, merit_state, key_0, ROT0, "Merit", "Trivia ? Whiz (6221-00, with Sex trivia)", GAME_SUPPORTS_SAVE )
-GAME( 1985, trvwzhb, trvwzh, trvwhiz, trivia, merit_state, key_0, ROT0, "Merit", "Trivia ? Whiz (6221-00, Alt Gen trivia)", GAME_SUPPORTS_SAVE )
-GAME( 1985, trvwzv, trvwzh, trvwhiz, trivia, merit_state, key_0, ROT90, "Merit", "Trivia ? Whiz (6221-02, Vertical)", GAME_SUPPORTS_SAVE )
+GAME( 1985, trvwzh, 0, trvwhiz, trivia, merit_state, key_0, ROT0, "Merit", "Trivia ? Whiz (6221-00)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, trvwzha, trvwzh, trvwhiz, trivia, merit_state, key_0, ROT0, "Merit", "Trivia ? Whiz (6221-00, with Sex trivia)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, trvwzhb, trvwzh, trvwhiz, trivia, merit_state, key_0, ROT0, "Merit", "Trivia ? Whiz (6221-00, Alt Gen trivia)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, trvwzv, trvwzh, trvwhiz, trivia, merit_state, key_0, ROT90, "Merit", "Trivia ? Whiz (6221-02, Vertical)", MACHINE_SUPPORTS_SAVE )
-GAME( 1985, trvwz2, 0, trvwhiz, trivia, merit_state, key_2, ROT90, "Merit", "Trivia ? Whiz (6221-05, Edition 2)", GAME_SUPPORTS_SAVE )
-GAME( 1985, trvwz2a, trvwz2, trvwhiz, trivia, merit_state, key_2, ROT90, "Merit", "Trivia ? Whiz (6221-05, Edition 2 Alt Sex trivia)", GAME_SUPPORTS_SAVE )
+GAME( 1985, trvwz2, 0, trvwhiz, trivia, merit_state, key_2, ROT90, "Merit", "Trivia ? Whiz (6221-05, Edition 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, trvwz2a, trvwz2, trvwhiz, trivia, merit_state, key_2, ROT90, "Merit", "Trivia ? Whiz (6221-05, Edition 2 Alt Sex trivia)", MACHINE_SUPPORTS_SAVE )
-GAME( 1985, trvwz3h, 0, trvwhiz, trivia, merit_state, key_0, ROT0, "Merit", "Trivia ? Whiz (6221-05, Edition 3)", GAME_SUPPORTS_SAVE )
-GAME( 1985, trvwz3ha, trvwz3h, trvwhiz, trivia, merit_state, key_0, ROT0, "Merit", "Trivia ? Whiz (6221-05, Edition 3 Sex trivia III)", GAME_SUPPORTS_SAVE )
-GAME( 1985, trvwz3v, trvwz3h, trvwhiz, trivia, merit_state, key_0, ROT90, "Merit", "Trivia ? Whiz (6221-04, Edition 3 Vertical)", GAME_SUPPORTS_SAVE )
+GAME( 1985, trvwz3h, 0, trvwhiz, trivia, merit_state, key_0, ROT0, "Merit", "Trivia ? Whiz (6221-05, Edition 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, trvwz3ha, trvwz3h, trvwhiz, trivia, merit_state, key_0, ROT0, "Merit", "Trivia ? Whiz (6221-05, Edition 3 Sex trivia III)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, trvwz3v, trvwz3h, trvwhiz, trivia, merit_state, key_0, ROT90, "Merit", "Trivia ? Whiz (6221-04, Edition 3 Vertical)", MACHINE_SUPPORTS_SAVE )
-GAME( 1985, trvwz4, 0, trvwhziv, trvwhziv, merit_state, key_5, ROT90, "Merit", "Trivia ? Whiz (6221-13, U5-0B Edition 4)", GAME_SUPPORTS_SAVE )
-GAME( 1985, trvwz4a, trvwz4, trvwhziv, trvwhziv, merit_state, key_5, ROT90, "Merit", "Trivia ? Whiz (6221-13, U5-0B Edition 4 Alt Sex trivia)", GAME_SUPPORTS_SAVE )
+GAME( 1985, trvwz4, 0, trvwhziv, trvwhziv, merit_state, key_5, ROT90, "Merit", "Trivia ? Whiz (6221-13, U5-0B Edition 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, trvwz4a, trvwz4, trvwhziv, trvwhziv, merit_state, key_5, ROT90, "Merit", "Trivia ? Whiz (6221-13, U5-0B Edition 4 Alt Sex trivia)", MACHINE_SUPPORTS_SAVE )
-GAME( 1985, tictac, 0, tictac, tictac, merit_state, key_4, ROT0, "Merit", "Tic Tac Trivia (6221-23, U5-0C Horizontal)", GAME_SUPPORTS_SAVE )
-GAME( 1985, tictacv, tictac, tictac, tictac, merit_state, key_4, ROT90, "Merit", "Tic Tac Trivia (6221-22, U5-0 Vertical)", GAME_SUPPORTS_SAVE )
+GAME( 1985, tictac, 0, tictac, tictac, merit_state, key_4, ROT0, "Merit", "Tic Tac Trivia (6221-23, U5-0C Horizontal)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, tictacv, tictac, tictac, tictac, merit_state, key_4, ROT90, "Merit", "Tic Tac Trivia (6221-22, U5-0 Vertical)", MACHINE_SUPPORTS_SAVE )
-GAME( 1986, phrcraze, 0, phrcraze, phrcraze, merit_state, key_7, ROT0, "Merit", "Phraze Craze (6221-40, U5-0A)", GAME_SUPPORTS_SAVE )
-GAME( 1986, phrcrazea,phrcraze,phrcraze, phrcraza, merit_state, key_7, ROT0, "Merit", "Phraze Craze (6221-40, U5-0)", GAME_SUPPORTS_SAVE )
-GAME( 1986, phrcrazeb,phrcraze,phrcraze, phrcrazs, merit_state, key_7, ROT0, "Merit", "Phraze Craze (6221-40, U5-3A Expanded Questions)", GAME_SUPPORTS_SAVE )
-GAME( 1986, phrcrazec,phrcraze,phrcraze, phrcrazs, merit_state, key_7, ROT0, "Merit", "Phraze Craze (6221-40, U5-3 Expanded Questions)", GAME_SUPPORTS_SAVE )
-GAME( 1986, phrcrazev,phrcraze,phrcraze, phrcrazs, merit_state, key_7, ROT90, "Merit", "Phraze Craze (6221-45, U5-2 Vertical)", GAME_SUPPORTS_SAVE )
+GAME( 1986, phrcraze, 0, phrcraze, phrcraze, merit_state, key_7, ROT0, "Merit", "Phraze Craze (6221-40, U5-0A)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, phrcrazea,phrcraze,phrcraze, phrcraza, merit_state, key_7, ROT0, "Merit", "Phraze Craze (6221-40, U5-0)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, phrcrazeb,phrcraze,phrcraze, phrcrazs, merit_state, key_7, ROT0, "Merit", "Phraze Craze (6221-40, U5-3A Expanded Questions)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, phrcrazec,phrcraze,phrcraze, phrcrazs, merit_state, key_7, ROT0, "Merit", "Phraze Craze (6221-40, U5-3 Expanded Questions)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, phrcrazev,phrcraze,phrcraze, phrcrazs, merit_state, key_7, ROT90, "Merit", "Phraze Craze (6221-45, U5-2 Vertical)", MACHINE_SUPPORTS_SAVE )
-GAME( 1987, dtrvwz5, 0, dtrvwz5, dtrvwh5, merit_state, dtrvwz5,ROT0, "Merit", "Deluxe Trivia ? Whiz (6221-70, U5-0A Edition 5)", GAME_SUPPORTS_SAVE )
+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)", GAME_IMPERFECT_GRAPHICS | GAME_UNEMULATED_PROTECTION )
-GAME( 1988, couplep, couple, couple, couplep, merit_state, couple, ROT0, "Merit", "The Couples (set 2)", GAME_IMPERFECT_GRAPHICS | GAME_UNEMULATED_PROTECTION )
-GAME( 1988, couplei, couple, couple, couple, merit_state, couple, ROT0, "Merit", "The Couples (set 3)", GAME_IMPERFECT_GRAPHICS | GAME_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.c b/src/mame/drivers/meritm.c
index c36f3be3b97..f765ac75de5 100644
--- a/src/mame/drivers/meritm.c
+++ b/src/mame/drivers/meritm.c
@@ -79,9 +79,9 @@ Power & Common Ground wires are 18 gauge, all other wires are 20 or 22 gauge.
- DS1232 Reset and Watchdog
- MAX232 (for MegaLink)
- One of the following Dallas Nonvolatile SRAM chips:
- - DS1225Y 64K Non-volitile SRAM (Mega Touch 4)
- - DS1230Y 256K Non-volitile SRAM (Mega Touch 6)
+ One of the following Dallas Non-volatile SRAM chips:
+ - DS1225Y 64K Non-volatile SRAM (Mega Touch 4)
+ - DS1230Y 256K Non-volatile SRAM (Mega Touch 6)
- DS1644 32K NVRAM + RTC (Tournament sets)
Known Games:
@@ -105,7 +105,7 @@ PROGRAM# Program Version Program Differences
923x-00-01 Standard Version Includes all Options, no Restrictions
923x-00-02 Minnesota Version Excludes Casino Games
923x-00-03 Louisiana Version Excludes all Poker Games
-923x-00-04 Wisconsin Version Game Connot End if Player Busts; 1,000 Points are Added to End of Each Hand
+923x-00-04 Wisconsin Version Game Cannot End if Player Busts; 1,000 Points are Added to End of Each Hand
923x-00-05 Montana Version Excludes Blackjack, Dice and Photo Finish
923x-00-06 California Version Excludes Poker Double-up feature
9234-00-07 New Jersey Version Excludes Sex Trivia and includes 2-Coin Limit with Lockout Coil (Only for Supertouch 30 & Megastar)
@@ -130,21 +130,21 @@ Custom Program Versions (from different Megatouch manuals):
PROGRAM# Program Version Program Differences
---------------------------------------------------------------------------------------------
-9255-xx-01 Standard Version Includes all Options, no Restrictions
-9255-xx-02 Minnesota Version Excludes Casino Games
-9255-xx-03 Louisiana Version Excludes all Poker Games
-9255-xx-04 Wisconsin Version Game Connot End if Player Busts; 1,000 Points are Added to End of Each Hand
-9255-xx-06 California Version Excludes Poker Double-up feature & No Free Game in Solitaire
-9255-xx-07 New Jersey Version Includes 2-Coin Limit with Lockout Coil
-9255-xx-50 Bi-Lingual ENG/GER Same as Standard Version, Without Word/Casino Games
-9255-xx-54 Bi-Lingual ENG/SPA Same as Standard Version, Without Word Games
-9255-xx-56 No Free Credits Same as Standard Version, Without Word Games and No Free Credits
-9255-xx-57 Internation Version Same as Standard Version, Without Word Games
-9255-xx-60 Bi-Lingual ENG/FRE Same as Standard Version, Without Word/Casino Games
-9255-xx-62 No Free Credit Same as Standard Version, With No Free Credit (see regional notes below)
-9255-xx-62 Croatia Same as Standard Version, With No Free Credit (see regional notes below)
-9255-xx-70 Australia Version Same as Standard Version with Special Question Set
-9255-xx-71 South Africa Ver. Same as Standard Version with Special Question Set
+9255-xx-01 Standard Version Includes all Options, no Restrictions
+9255-xx-02 Minnesota Version Excludes Casino Games
+9255-xx-03 Louisiana Version Excludes all Poker Games
+9255-xx-04 Wisconsin Version Game Cannot End if Player Busts; 1,000 Points are Added to End of Each Hand
+9255-xx-06 California Version Excludes Poker Double-up feature & No Free Game in Solitaire
+9255-xx-07 New Jersey Version Includes 2-Coin Limit with Lockout Coil
+9255-xx-50 Bi-Lingual ENG/GER Same as Standard Version, Without Word/Casino Games
+9255-xx-54 Bi-Lingual ENG/SPA Same as Standard Version, Without Word Games
+9255-xx-56 No Free Credits Same as Standard Version, Without Word Games and No Free Credits
+9255-xx-57 International Version Same as Standard Version, Without Word Games
+9255-xx-60 Bi-Lingual ENG/FRE Same as Standard Version, Without Word/Casino Games
+9255-xx-62 No Free Credit Same as Standard Version, With No Free Credit (see regional notes below)
+9255-xx-62 Croatia Same as Standard Version, With No Free Credit (see regional notes below)
+9255-xx-70 Australia Version Same as Standard Version with Special Question Set
+9255-xx-71 South Africa Ver. Same as Standard Version with Special Question Set
xx = game/version code:
@@ -163,12 +163,12 @@ Not all regional versions are available for each Megatouch series
For Megatouch Super 4, set 9255-41-62 is No Free Credit
Notes/ToDo:
- - offset for top V9938 layer is hardcoded, probably should be taken from V9938 setup
+ - offset for top V9938 layer is hard coded, probably should be taken from V9938 setup
- blinking on Megatouch title screen is probably incorrect
- clean up V9938 interrupt implementation
- finish inputs, dsw, outputs (lamps)
- problem with registering touches on the bottom of the screen (currently hacked to work)
- - megat5a: has jmp $0000 in the initialization code causing infinite loop - Dump verfied on 4 different sets. (watchdog issue???)
+ - megat5a: has jmp $0000 in the initialization code causing infinite loop - Dump verified on 4 different sets. (watchdog issue???)
*/
#include "emu.h"
@@ -197,7 +197,13 @@ public:
m_microtouch(*this, "microtouch") ,
m_uart(*this, "ns16550"),
m_maincpu(*this, "maincpu"),
- m_palette(*this, "v9938_0:palette") { }
+ m_palette(*this, "v9938_0:palette"),
+ m_bank1(*this, "bank1"),
+ m_bank2(*this, "bank2"),
+ m_bank3(*this, "bank3"),
+ m_region_maincpu(*this, "maincpu"),
+ m_region_extra(*this, "extra")
+ { }
UINT8* m_ram;
required_device<z80pio_device> m_z80pio_0;
@@ -240,7 +246,6 @@ public:
DECLARE_MACHINE_START(meritm_crt260);
DECLARE_MACHINE_START(merit_common);
UINT32 screen_update_meritm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- TIMER_DEVICE_CALLBACK_MEMBER(meritm_interrupt);
TIMER_DEVICE_CALLBACK_MEMBER(vblank_start_tick);
TIMER_DEVICE_CALLBACK_MEMBER(vblank_end_tick);
void meritm_crt250_switch_banks( );
@@ -251,6 +256,11 @@ public:
DECLARE_WRITE_LINE_MEMBER(meritm_vdp1_interrupt);
required_device<cpu_device> m_maincpu;
required_device<palette_device> m_palette;
+ required_memory_bank m_bank1;
+ optional_memory_bank m_bank2;
+ optional_memory_bank m_bank3;
+ required_memory_region m_region_maincpu;
+ optional_memory_region m_region_extra;
};
@@ -295,17 +305,6 @@ int meritm_state::meritm_touch_coord_transform(int *touch_x, int *touch_y)
*************************************/
-TIMER_DEVICE_CALLBACK_MEMBER(meritm_state::meritm_interrupt)
-{
- int scanline = param;
-
- if((scanline % 2) == 0)
- {
- m_v9938_0->interrupt();
- m_v9938_1->interrupt();
- }
-}
-
WRITE_LINE_MEMBER(meritm_state::meritm_vdp0_interrupt)
{
/* this is not used as the v9938 interrupt callbacks are broken
@@ -368,7 +367,7 @@ void meritm_state::meritm_crt250_switch_banks( )
int rombank = (m_bank & 0x07) ^ 0x07;
//logerror( "CRT250: Switching banks: rom = %0x (bank = %x)\n", rombank, m_bank );
- membank("bank1")->set_entry(rombank );
+ m_bank1->set_entry(rombank );
}
WRITE8_MEMBER(meritm_state::meritm_crt250_bank_w)
@@ -385,9 +384,9 @@ void meritm_state::meritm_switch_banks( )
(m_psd_a15 & 0x1);
//logerror( "Switching banks: rom = %0x (bank = %x), ram = %0x\n", rombank, m_bank, rambank);
- membank("bank1")->set_entry(rombank );
- membank("bank2")->set_entry(rombank | 0x01);
- membank("bank3")->set_entry(rambank);
+ m_bank1->set_entry(rombank );
+ m_bank2->set_entry(rombank | 0x01);
+ m_bank3->set_entry(rambank);
}
WRITE8_MEMBER(meritm_state::meritm_psd_a15_w)
@@ -461,7 +460,7 @@ WRITE8_MEMBER(meritm_state::meritm_crt250_questions_bank_w)
default: logerror( "meritm_crt250_questions_bank_w: unknown data = %02x\n", data ); return;
}
logerror( "Reading question byte at %06X\n", questions_address | m_questions_loword_address);
- *dst = memregion("extra")->base()[questions_address | m_questions_loword_address];
+ *dst = m_region_extra->base()[questions_address | m_questions_loword_address];
}
}
@@ -1032,7 +1031,7 @@ MACHINE_START_MEMBER(meritm_state,merit_common)
void meritm_state::machine_start()
{
- membank("bank1")->configure_entries(0, 8, memregion("maincpu")->base(), 0x10000);
+ m_bank1->configure_entries(0, 8, m_region_maincpu->base(), 0x10000);
m_bank = 0xff;
meritm_crt250_switch_banks();
MACHINE_START_CALL_MEMBER(merit_common);
@@ -1056,9 +1055,9 @@ MACHINE_START_MEMBER(meritm_state,meritm_crt260)
m_ram = auto_alloc_array(machine(), UINT8, 0x8000 );
machine().device<nvram_device>("nvram")->set_base(m_ram, 0x8000);
memset(m_ram, 0x00, 0x8000);
- membank("bank1")->configure_entries(0, 128, memregion("maincpu")->base(), 0x8000);
- membank("bank2")->configure_entries(0, 128, memregion("maincpu")->base(), 0x8000);
- membank("bank3")->configure_entries(0, 4, m_ram, 0x2000);
+ m_bank1->configure_entries(0, 128, m_region_maincpu->base(), 0x8000);
+ m_bank2->configure_entries(0, 128, m_region_maincpu->base(), 0x8000);
+ m_bank3->configure_entries(0, 4, m_ram, 0x2000);
m_bank = 0xff;
m_psd_a15 = 0;
meritm_switch_banks();
@@ -1068,14 +1067,6 @@ MACHINE_START_MEMBER(meritm_state,meritm_crt260)
save_pointer(NAME(m_ram), 0x8000);
}
-// from MSX2 driver, may be not accurate for merit games
-#define MSX2_XBORDER_PIXELS 16
-#define MSX2_YBORDER_PIXELS 28
-#define MSX2_TOTAL_XRES_PIXELS 256 * 2 + (MSX2_XBORDER_PIXELS * 2)
-#define MSX2_TOTAL_YRES_PIXELS 212 * 2 + (MSX2_YBORDER_PIXELS * 2)
-#define MSX2_VISIBLE_XBORDER_PIXELS 8 * 2
-#define MSX2_VISIBLE_YBORDER_PIXELS 14 * 2
-
TIMER_DEVICE_CALLBACK_MEMBER(meritm_state::vblank_start_tick)
{
/* this is a workaround to signal the v9938 vblank interrupt correctly */
@@ -1095,7 +1086,6 @@ static MACHINE_CONFIG_START( meritm_crt250, meritm_state )
MCFG_CPU_PROGRAM_MAP(meritm_crt250_map)
MCFG_CPU_IO_MAP(meritm_crt250_io_map)
MCFG_CPU_CONFIG(meritm_daisy_chain)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", meritm_state, meritm_interrupt, "screen", 0, 1)
MCFG_DEVICE_ADD("ppi8255", I8255, 0)
MCFG_I8255_OUT_PORTB_CB(WRITE8(meritm_state, meritm_crt250_port_b_w)) // used LMP x DRIVE
@@ -1122,21 +1112,14 @@ static MACHINE_CONFIG_START( meritm_crt250, meritm_state )
MCFG_DS1204_ADD("ds1204")
- MCFG_V9938_ADD("v9938_0", "screen", 0x20000)
+ MCFG_V9938_ADD("v9938_0", "screen", 0x20000, SYSTEM_CLK)
MCFG_V99X8_INTERRUPT_CALLBACK(WRITELINE(meritm_state,meritm_vdp0_interrupt))
- MCFG_V9938_ADD("v9938_1", "screen", 0x20000)
+ MCFG_V9938_ADD("v9938_1", "screen", 0x20000, SYSTEM_CLK)
MCFG_V99X8_INTERRUPT_CALLBACK(WRITELINE(meritm_state,meritm_vdp1_interrupt))
- MCFG_SCREEN_ADD("screen",RASTER)
- MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
-
- MCFG_SCREEN_SIZE(MSX2_TOTAL_XRES_PIXELS, 262*2)
- MCFG_SCREEN_VISIBLE_AREA(MSX2_XBORDER_PIXELS - MSX2_VISIBLE_XBORDER_PIXELS, MSX2_TOTAL_XRES_PIXELS - MSX2_XBORDER_PIXELS + MSX2_VISIBLE_XBORDER_PIXELS - 1, MSX2_YBORDER_PIXELS - MSX2_VISIBLE_YBORDER_PIXELS, MSX2_TOTAL_YRES_PIXELS - MSX2_YBORDER_PIXELS + MSX2_VISIBLE_YBORDER_PIXELS - 1)
+ MCFG_V99X8_SCREEN_ADD_NTSC("screen", "v9938_0", SYSTEM_CLK)
MCFG_SCREEN_UPDATE_DRIVER(meritm_state, screen_update_meritm)
- MCFG_SCREEN_PALETTE("v9938_0:palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1213,14 +1196,41 @@ Entering the Setup menu "S":
Is the "Stand" & "Hi-Score" keys the same? Without a separate Stand key, you cannot set up the "TWIN" bonus feature
+REPLAYS - You start with 1 star per coin up to a maximum 15 stars. One star is deducted for each losing hand including
+ busting on Double-ups while stars are added for winning hands. Running out of stars forces the player to add
+ at least 1 more coin to continue to play EVEN if the player still has points available to use.
+
*/
ROM_START( americna ) /* Uses a small daughter card CRT-251 & Dallas DS1225Y NV SRAM */
ROM_REGION( 0x80000, "maincpu", 0 )
- ROM_LOAD( "9131-00_u9-2.u9", 0x00000, 0x10000, CRC(8a741fb6) SHA1(2d77c67e5a0bdaf6199c31c4055df214672db3e1) ) /* 9131-00 U9-2 888020 */
+ ROM_LOAD( "9131-01_u9-2.u9", 0x00000, 0x10000, CRC(0410a1bf) SHA1(1218cf4b3d1067777841673620c84406cce418fb) ) /* 9131-01 U9-2 888020 - Has REPLAYS feature */
ROM_LOAD( "9131-00_u10-0.u10", 0x10000, 0x10000, CRC(d6f72934) SHA1(4f3d6a5227a3b0fc298533a03cc0a32f8e2f3840) )
ROM_LOAD( "9131-00_u11-0.u11", 0x20000, 0x10000, CRC(f2db6f5d) SHA1(3f734a7e8c72c14bf4a3e6f595819311739394d3) )
ROM_END
+ROM_START( americnaa ) /* Uses a small daughter card CRT-251 & Dallas DS1225Y NV SRAM */
+ ROM_REGION( 0x80000, "maincpu", 0 )
+ ROM_LOAD( "9131-00_u9-2.u9", 0x00000, 0x10000, CRC(8a741fb6) SHA1(2d77c67e5a0bdaf6199c31c4055df214672db3e1) ) /* 9131-00 U9-2 888020 - Doesn't have REPLAYS feature */
+ ROM_LOAD( "9131-00_u10-0.u10", 0x10000, 0x10000, CRC(d6f72934) SHA1(4f3d6a5227a3b0fc298533a03cc0a32f8e2f3840) )
+ ROM_LOAD( "9131-00_u11-0.u11", 0x20000, 0x10000, CRC(f2db6f5d) SHA1(3f734a7e8c72c14bf4a3e6f595819311739394d3) )
+ROM_END
+
+/*
+
+This set seems odd, it doesn't really have a title sequence.
+
+Same keys as Americana & same Stand / Hi-Score issue
+
+This set also has additional bonuses for certain winning hands, but requires a minimum 10 point bet to qualify for any bonus.
+
+*/
+ROM_START( meritjp ) /* Uses a small daughter card CRT-255 & Dallas DS1225Y NV SRAM */
+ ROM_REGION( 0x80000, "maincpu", 0 )
+ ROM_LOAD( "9131-01_u9-00.u9", 0x00000, 0x10000, CRC(dadaac6a) SHA1(798068f3cef6f5d41dd8ee4315e220932f31a3f7) ) /* 9131-01 U9-00 - Has REPLAYS feature */
+ ROM_LOAD( "9131-01_u10-r0.u10", 0x10000, 0x10000, CRC(ebee75e2) SHA1(1ba1c92684d0f5251bb5b57a29b39467b57a1170) )
+ ROM_LOAD( "9131-01_u11-r0.u11", 0x20000, 0x10000, CRC(f2db6f5d) SHA1(3f734a7e8c72c14bf4a3e6f595819311739394d3) )
+ROM_END
+
ROM_START( dodgecty ) /* Uses a small daughter card CRT-255 & Dallas DS1225Y NV SRAM */
ROM_REGION( 0x80000, "maincpu", 0 )
ROM_LOAD( "9131-02_u9-2t.u9", 0x00000, 0x10000, CRC(22e73039) SHA1(368f03b31f7c3cb81a95b20d1cb954e8557d2017) ) /* 9131-02 U9-2T 880111 */
@@ -1331,7 +1341,7 @@ ROM_START( megat ) /* Dallas DS1204V security key attached to CRT-254 connected
ROM_LOAD( "9234-20_u1-r0_c1994_mii", 0x000000, 0x000022, BAD_DUMP CRC(6cbdbde1) SHA1(b076ee21fc792a5e85cdaed427bc41554568811e) )
ROM_REGION( 0xc0000, "extra", 0 ) // question roms
- ROM_LOAD( "qs9234-20_u7-r0", 0x00000, 0x40000, CRC(c0534aaa) SHA1(4b3cbf03f29fd5b4b8fd423e73c0c8147692fa75) ) /* These 3 roms are on CRT-256 sattalite PCB */
+ ROM_LOAD( "qs9234-20_u7-r0", 0x00000, 0x40000, CRC(c0534aaa) SHA1(4b3cbf03f29fd5b4b8fd423e73c0c8147692fa75) ) /* These 3 roms are on CRT-256 satellite PCB */
ROM_LOAD( "qs9234-20_u6-r0", 0x40000, 0x40000, CRC(fe2cd934) SHA1(623011dc53ed6eefefa0725dba6fd1efee2077c1) ) /* Same data as Pit Boss Supertouch 30 sets, different label - verified */
ROM_LOAD( "qs9234-20_u5-r0", 0x80000, 0x40000, CRC(293fe305) SHA1(8a551ae8fb4fa4bf329128be1bfd6f1c3ff5a366) )
ROM_END
@@ -1350,7 +1360,7 @@ ROM_START( pbst30 ) /* Dallas DS1204V security key attached to CRT-254 connected
ROM_LOAD( "9234-10_u1-r01_c1994_mii", 0x000000, 0x000022, BAD_DUMP CRC(1c782f78) SHA1(8255afcffbe21a43f53cfb41867552681403ea47) )
ROM_REGION( 0xc0000, "extra", 0 ) // question roms
- ROM_LOAD( "qs9234-01_u7-r0", 0x00000, 0x40000, CRC(c0534aaa) SHA1(4b3cbf03f29fd5b4b8fd423e73c0c8147692fa75) ) /* These 3 roms are on CRT-256 sattalite PCB */
+ ROM_LOAD( "qs9234-01_u7-r0", 0x00000, 0x40000, CRC(c0534aaa) SHA1(4b3cbf03f29fd5b4b8fd423e73c0c8147692fa75) ) /* These 3 roms are on CRT-256 satellite PCB */
ROM_LOAD( "qs9234-01_u6-r0", 0x40000, 0x40000, CRC(fe2cd934) SHA1(623011dc53ed6eefefa0725dba6fd1efee2077c1) )
ROM_LOAD( "qs9234-01_u5-r0", 0x80000, 0x40000, CRC(293fe305) SHA1(8a551ae8fb4fa4bf329128be1bfd6f1c3ff5a366) )
ROM_END
@@ -1369,7 +1379,7 @@ ROM_START( pbst30a ) /* Dallas DS1204V security key attached to CRT-254 connecte
ROM_LOAD( "9234-01_u1-r01_c1993_mii", 0x000000, 0x000022, BAD_DUMP CRC(74bf0546) SHA1(eb44a057cf797279ee3456a74e166fa711547ea4) )
ROM_REGION( 0xc0000, "extra", 0 ) // question roms
- ROM_LOAD( "qs9234-01_u7-r0", 0x00000, 0x40000, CRC(c0534aaa) SHA1(4b3cbf03f29fd5b4b8fd423e73c0c8147692fa75) ) /* These 3 roms are on CRT-256 sattalite PCB */
+ ROM_LOAD( "qs9234-01_u7-r0", 0x00000, 0x40000, CRC(c0534aaa) SHA1(4b3cbf03f29fd5b4b8fd423e73c0c8147692fa75) ) /* These 3 roms are on CRT-256 satellite PCB */
ROM_LOAD( "qs9234-01_u6-r0", 0x40000, 0x40000, CRC(fe2cd934) SHA1(623011dc53ed6eefefa0725dba6fd1efee2077c1) )
ROM_LOAD( "qs9234-01_u5-r0", 0x80000, 0x40000, CRC(293fe305) SHA1(8a551ae8fb4fa4bf329128be1bfd6f1c3ff5a366) )
ROM_END
@@ -1386,7 +1396,7 @@ ROM_START( pitbossma ) /* Unprotected or patched?? The manual shows a DS1204 ke
ROM_RELOAD( 0x70000, 0x10000)
ROM_REGION( 0xc0000, "extra", 0 ) // question roms
- ROM_LOAD( "qs9243-00-01_u7-r0", 0x00000, 0x40000, CRC(35f4ca46) SHA1(87917b3017f505fae65d6bfa2c7d6fb503c2da6a) ) /* These 3 roms are on CRT-256 sattalite PCB */
+ ROM_LOAD( "qs9243-00-01_u7-r0", 0x00000, 0x40000, CRC(35f4ca46) SHA1(87917b3017f505fae65d6bfa2c7d6fb503c2da6a) ) /* These 3 roms are on CRT-256 satellite PCB */
ROM_LOAD( "qs9243-00-01_u6-r0", 0x40000, 0x40000, CRC(606f1656) SHA1(7f1e3a698a34d3c3b8f9f2cd8d5224b6c096e941) )
ROM_LOAD( "qs9243-00-01_u5-r0", 0x80000, 0x40000, CRC(590a1565) SHA1(b80ea967b6153847b2594e9c59bfe87559022b6c) )
ROM_END
@@ -1443,7 +1453,7 @@ ROM_START( pitbossm ) /* Dallas DS1204V security key attached to CRT-254 connect
ROM_LOAD( "9244-00_u1-ro1_c1994_mii", 0x000000, 0x000022, BAD_DUMP CRC(0455e18b) SHA1(919b48c25888af0af34b2d0cf34370476a97b79e) )
ROM_REGION( 0xc0000, "extra", 0 ) // question roms
- ROM_LOAD( "qs9243-00-01_u7-r0", 0x00000, 0x40000, CRC(35f4ca46) SHA1(87917b3017f505fae65d6bfa2c7d6fb503c2da6a) ) /* These 3 roms are on CRT-256 sattalite PCB */
+ ROM_LOAD( "qs9243-00-01_u7-r0", 0x00000, 0x40000, CRC(35f4ca46) SHA1(87917b3017f505fae65d6bfa2c7d6fb503c2da6a) ) /* These 3 roms are on CRT-256 satellite PCB */
ROM_LOAD( "qs9243-00-01_u6-r0", 0x40000, 0x40000, CRC(606f1656) SHA1(7f1e3a698a34d3c3b8f9f2cd8d5224b6c096e941) )
ROM_LOAD( "qs9243-00-01_u5-r0", 0x80000, 0x40000, CRC(590a1565) SHA1(b80ea967b6153847b2594e9c59bfe87559022b6c) )
ROM_END
@@ -2277,61 +2287,63 @@ DRIVER_INIT_MEMBER(meritm_state,megat3te)
}
/* CRT-250 */
-GAME( 1987, americna, 0, meritm_crt250, americna, driver_device, 0, ROT0, "Merit", "Americana (9131-00)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1988, dodgecty, 0, meritm_crt250, dodgecty, driver_device, 0, ROT0, "Merit", "Dodge City (9131-02)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1988, pitboss2, 0, meritm_crt250, pitboss2, driver_device, 0, ROT0, "Merit", "Pit Boss II (9221-01C)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1988, spitboss, 0, meritm_crt250, spitboss, driver_device, 0, ROT0, "Merit", "Super Pit Boss (9221-02A)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1990, pitbosss, 0, meritm_crt250, pitbosss, driver_device, 0, ROT0, "Merit", "Pit Boss Superstar (9221-10-00B)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1990, pitbosssa, pitbosss, meritm_crt250, pitbosss, driver_device, 0, ROT0, "Merit", "Pit Boss Superstar (9221-10-00A)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1992, pitbosssc, pitbosss, meritm_crt250, pitbosss, driver_device, 0, ROT0, "Merit", "Pit Boss Superstar (9221-12-01)", GAME_IMPERFECT_GRAPHICS )
+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-01)", 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 )
/* 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)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1994, megat, 0, meritm_crt250_crt252_crt258, pbst30, driver_device, 0, ROT0, "Merit", "Pit Boss Megatouch (9234-20-01)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1994, pbst30, 0, meritm_crt250_crt252_crt258, pbst30, driver_device, 0, ROT0, "Merit", "Pit Boss Supertouch 30 (9234-10-01)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1993, pbst30a, pbst30, meritm_crt250_crt252_crt258, pbst30, driver_device, 0, ROT0, "Merit", "Pit Boss Supertouch 30 (9234-00-01)", GAME_IMPERFECT_GRAPHICS )
+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 )
/* 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)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1994, pitbossm, 0, meritm_crt250_questions, pitbossm, driver_device, 0, ROT0, "Merit", "Pit Boss Megastar (9244-00-01)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1994, pitbossma, pitbossm, meritm_crt250_questions, pitbossa, driver_device, 0, ROT0, "Merit", "Pit Boss Megastar (9243-00-01)", GAME_IMPERFECT_GRAPHICS )
+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 )
/* CRT-260 NON-touchscreen based */
-GAME( 1995, realbrod, 0, meritm_crt260, realbrod, driver_device, 0, ROT0, "Merit", "The Real Broadway (9131-20-00 R0A)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1995, realbrod, 0, meritm_crt260, realbrod, driver_device, 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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, megat3, 0, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Megatouch III (9255-20-01 RON, Standard version)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1995, megat3a, megat3, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Megatouch III (9255-20-01 ROK, Standard version)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1995, megat3b, megat3, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Megatouch III (9255-20-01 ROF, Standard version)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1995, megat3c, megat3, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Megatouch III (9255-20-01 ROB, Standard version)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1995, megat3d, megat3, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Megatouch III (9255-20-01 ROA, Standard version)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, megat3ca, megat3, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Megatouch III (9255-20-06 RON, California version)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1995, megat3caa, megat3, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Megatouch III (9255-20-06 ROD, California version)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1995, megat3nj, megat3, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Megatouch III (9255-20-07 ROG, New Jersey version)", GAME_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)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, megat4, 0, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Megatouch IV (9255-40-01 ROE, Standard version)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, megat4a, megat4, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Megatouch IV (9255-40-01 ROD, Standard version)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, megat4b, megat4, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Megatouch IV (9255-40-01 ROB, Standard version)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, megat4c, megat4, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Megatouch IV (9255-40-01 ROA, Standard version)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, megat4d, megat4, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Megatouch IV (9255-40-01 RO, Standard version)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, megat4s, megat4, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Super Megatouch IV (9255-41-01 ROG, Standard version)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, megat4sa, megat4, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Super Megatouch IV (9255-41-01 ROE, Standard version)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, megat4sb, megat4, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Super Megatouch IV (9255-41-01 ROC, Standard version)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, megat4smn, megat4, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Super Megatouch IV (9255-41-02 ROC, Minnesota version)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, megat5, 0, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Megatouch 5 (9255-60-01 ROI, Standard version)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, megat5a, megat5, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Megatouch 5 (9255-60-01 ROC, Standard version)", GAME_IMPERFECT_GRAPHICS|GAME_NOT_WORKING )
-GAME( 1998, megat5nj, megat5, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Megatouch 5 (9255-60-07 RON, New Jersey version)", GAME_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)", GAME_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)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1998, megat6, 0, meritm_crt260, meritm_crt260, driver_device, 0, ROT0, "Merit", "Megatouch 6 (9255-80-01 ROA, Standard version)", GAME_IMPERFECT_GRAPHICS )
+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 )
diff --git a/src/mame/drivers/mermaid.c b/src/mame/drivers/mermaid.c
index a611ad76e7a..54011c36710 100644
--- a/src/mame/drivers/mermaid.c
+++ b/src/mame/drivers/mermaid.c
@@ -579,6 +579,6 @@ ROM_END
/* Game Drivers */
-GAME( 1982, mermaid, 0, mermaid, mermaid, driver_device, 0, ROT0, "Sanritsu / Rock-Ola", "Mermaid", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
-GAME( 1982, yachtmn, mermaid, mermaid, yachtmn, driver_device, 0, ROT0, "Sanritsu / Esco", "Yachtsman", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
-GAME( 1982, rougien, 0, rougien, rougien, driver_device, 0, ROT0, "Sanritsu", "Rougien", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS )
+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 )
diff --git a/src/mess/drivers/mes.c b/src/mame/drivers/mes.c
index 54359486ac7..80e710ee471 100644
--- a/src/mess/drivers/mes.c
+++ b/src/mame/drivers/mes.c
@@ -138,4 +138,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 198?, mes, 0, 0, mes, mes, driver_device, 0, "Schleicher", "MES", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/metalmx.c b/src/mame/drivers/metalmx.c
index 082e4a05852..c4053720c6e 100644
--- a/src/mame/drivers/metalmx.c
+++ b/src/mame/drivers/metalmx.c
@@ -859,4 +859,4 @@ ROM_END
*
*************************************/
-GAME( 1994, metalmx, 0, metalmx, metalmx, metalmx_state, metalmx, ROT0, "Atari Games", "Metal Maniax (prototype)", GAME_NO_SOUND | GAME_NOT_WORKING )
+GAME( 1994, metalmx, 0, metalmx, metalmx, metalmx_state, metalmx, ROT0, "Atari Games", "Metal Maniax (prototype)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/metlclsh.c b/src/mame/drivers/metlclsh.c
index b570bd60aa2..920585917e5 100644
--- a/src/mame/drivers/metlclsh.c
+++ b/src/mame/drivers/metlclsh.c
@@ -413,4 +413,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)", GAME_SUPPORTS_SAVE )
+GAME( 1985, metlclsh, 0, metlclsh, metlclsh, driver_device, 0, ROT0, "Data East", "Metal Clash (Japan)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/metro.c b/src/mame/drivers/metro.c
index bec917dc81a..c72228e3b51 100644
--- a/src/mame/drivers/metro.c
+++ b/src/mame/drivers/metro.c
@@ -6272,43 +6272,43 @@ DRIVER_INIT_MEMBER(metro_state,puzzlet)
***************************************************************************/
-GAME( 1992, karatour, 0, karatour, karatour, metro_state, karatour, ROT0, "Mitchell", "The Karate Tournament", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1992, pangpoms, 0, pangpoms, pangpoms, metro_state, metro, ROT0, "Metro", "Pang Pom's", GAME_SUPPORTS_SAVE )
-GAME( 1992, pangpomsm, pangpoms, pangpoms, pangpoms, metro_state, metro, ROT0, "Metro (Mitchell license)", "Pang Pom's (Mitchell)", GAME_SUPPORTS_SAVE )
-GAME( 1992, skyalert, 0, skyalert, skyalert, metro_state, metro, ROT270, "Metro", "Sky Alert", GAME_SUPPORTS_SAVE )
-GAME( 1993, ladykill, 0, karatour, ladykill, metro_state, karatour, ROT90, "Yanyaka (Mitchell license)", "Lady Killer", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1993, moegonta, ladykill, karatour, moegonta, metro_state, karatour, ROT90, "Yanyaka", "Moeyo Gonta!! (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1993, poitto, 0, poitto, poitto, metro_state, metro, ROT0, "Metro / Able Corp.", "Poitto!", GAME_SUPPORTS_SAVE )
-GAME( 1994, blzntrnd, 0, blzntrnd, blzntrnd, metro_state, blzntrnd, ROT0, "Human Amusement", "Blazing Tornado", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1994, dharma, 0, dharma, dharma, metro_state, dharmak, ROT0, "Metro", "Dharma Doujou", GAME_SUPPORTS_SAVE )
-GAME( 1994, dharmaj, dharma, dharma, dharma, metro_state, metro, ROT0, "Metro", "Dharma Doujou (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1994, dharmak, dharma, dharma, dharma, metro_state, dharmak, ROT0, "Metro", "Dharma Doujou (Korea)", GAME_SUPPORTS_SAVE )
-GAME( 1994, lastfort, 0, lastfort, lastfort, metro_state, metro, ROT0, "Metro", "Last Fortress - Toride", GAME_SUPPORTS_SAVE )
-GAME( 1994, lastforte, lastfort, lastfort, lastfero, metro_state, metro, ROT0, "Metro", "Last Fortress - Toride (Erotic, Rev C)", GAME_SUPPORTS_SAVE )
-GAME( 1994, lastfortea,lastfort, lastfort, lastfero, metro_state, metro, ROT0, "Metro", "Last Fortress - Toride (Erotic, Rev A)", GAME_SUPPORTS_SAVE )
-GAME( 1994, lastfortk, lastfort, lastfort, lastfero, metro_state, metro, ROT0, "Metro", "Last Fortress - Toride (Korea)", GAME_SUPPORTS_SAVE )
-GAME( 1994, lastfortg, lastfort, lastforg, ladykill, metro_state, metro, ROT0, "Metro", "Last Fortress - Toride (German)", GAME_SUPPORTS_SAVE )
-GAME( 1994, toride2g, 0, toride2g, toride2g, metro_state, metro, ROT0, "Metro", "Toride II Adauchi Gaiden", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1994, toride2gg, toride2g, toride2g, toride2g, metro_state, metro, ROT0, "Metro", "Toride II Adauchi Gaiden (German)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1994, toride2gk, toride2g, toride2g, toride2g, metro_state, metro, ROT0, "Metro", "Toride II Bok Su Oi Jeon Adauchi Gaiden (Korea)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1994, toride2j, toride2g, toride2g, toride2g, metro_state, metro, ROT0, "Metro", "Toride II (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1994, gunmast, 0, pururun, gunmast, metro_state, daitorid, ROT0, "Metro", "Gun Master", GAME_SUPPORTS_SAVE )
-GAME( 1995, daitorid, 0, daitorid, daitorid, metro_state, daitorid, ROT0, "Metro", "Daitoride", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1996, daitorida, daitorid, daitoa, daitorid, metro_state, balcube, ROT0, "Metro", "Daitoride (YMF278B version)", GAME_SUPPORTS_SAVE )
-GAME( 1995, dokyusei, 0, dokyusei, dokyusei, metro_state, gakusai, ROT0, "Make Software / Elf / Media Trading", "Mahjong Doukyuusei", GAME_SUPPORTS_SAVE )
-GAME( 1995, dokyusp, 0, dokyusp, gakusai, metro_state, gakusai, ROT0, "Make Software / Elf / Media Trading", "Mahjong Doukyuusei Special", GAME_SUPPORTS_SAVE )
-GAME( 1995, msgogo, 0, msgogo, msgogo, metro_state, balcube, ROT0, "Metro", "Mouse Shooter GoGo", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1995, pururun, 0, pururun, pururun, metro_state, daitorid, ROT0, "Metro / Banpresto", "Pururun", GAME_SUPPORTS_SAVE )
-GAME( 1995, puzzli, 0, daitorid, puzzli, metro_state, daitorid, ROT0, "Metro / Banpresto", "Puzzli", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1996, 3kokushi, 0, 3kokushi, 3kokushi, metro_state, karatour, ROT0, "Mitchell", "Sankokushi (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1996, balcube, 0, balcube, balcube, metro_state, balcube, ROT0, "Metro", "Bal Cube", GAME_SUPPORTS_SAVE )
-GAME( 1996, bangball, 0, bangball, bangball, metro_state, balcube, ROT0, "Banpresto / Kunihiko Tashiro+Goodhouse", "Bang Bang Ball (v1.05)", GAME_SUPPORTS_SAVE )
-GAME( 1996, gstrik2, 0, gstrik2, gstrik2, metro_state, blzntrnd, ROT0, "Human Amusement", "Grand Striker 2 (Europe and Oceania)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1996, gstrik2j, gstrik2, gstrik2, gstrik2, metro_state, blzntrnd, ROT0, "Human Amusement", "Grand Striker 2 (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) // priority between rounds
-GAME( 1999, batlbubl, bangball, batlbubl, batlbubl, metro_state, balcube, ROT0, "Banpresto (Limenko license?)", "Battle Bubble (v2.00)", GAME_SUPPORTS_SAVE ) // or bootleg?
-GAME( 1996, mouja, 0, mouja, mouja, metro_state, mouja, ROT0, "Etona", "Mouja (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1997, gakusai, 0, gakusai, gakusai, metro_state, gakusai, ROT0, "MakeSoft", "Mahjong Gakuensai (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1998, gakusai2, 0, gakusai2, gakusai, metro_state, gakusai, ROT0, "MakeSoft", "Mahjong Gakuensai 2 (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 2000, puzzlet, 0, puzzlet, puzzlet, metro_state, puzzlet, ROT0, "Unies Corporation", "Puzzlet (Japan)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1995, vmetal, 0, vmetal, vmetal, metro_state, blzntrnd, ROT90, "Excellent System", "Varia Metal", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1995, vmetaln, vmetal, vmetal, vmetal, metro_state, blzntrnd, ROT90, "Excellent System (New Ways Trading Co. license)", "Varia Metal (New Ways Trading Co.)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1992, karatour, 0, karatour, karatour, metro_state, karatour, ROT0, "Mitchell", "The Karate Tournament", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1992, pangpoms, 0, pangpoms, pangpoms, metro_state, metro, ROT0, "Metro", "Pang Pom's", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, pangpomsm, pangpoms, pangpoms, pangpoms, metro_state, metro, ROT0, "Metro (Mitchell license)", "Pang Pom's (Mitchell)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, skyalert, 0, skyalert, skyalert, metro_state, metro, ROT270, "Metro", "Sky Alert", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, ladykill, 0, karatour, ladykill, metro_state, karatour, ROT90, "Yanyaka (Mitchell license)", "Lady Killer", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1993, moegonta, ladykill, karatour, moegonta, metro_state, karatour, ROT90, "Yanyaka", "Moeyo Gonta!! (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1993, poitto, 0, poitto, poitto, metro_state, metro, ROT0, "Metro / Able Corp.", "Poitto!", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, blzntrnd, 0, blzntrnd, blzntrnd, metro_state, blzntrnd, ROT0, "Human Amusement", "Blazing Tornado", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1994, dharma, 0, dharma, dharma, metro_state, dharmak, ROT0, "Metro", "Dharma Doujou", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, dharmaj, dharma, dharma, dharma, metro_state, metro, ROT0, "Metro", "Dharma Doujou (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, dharmak, dharma, dharma, dharma, metro_state, dharmak, ROT0, "Metro", "Dharma Doujou (Korea)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, lastfort, 0, lastfort, lastfort, metro_state, metro, ROT0, "Metro", "Last Fortress - Toride", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, lastforte, lastfort, lastfort, lastfero, metro_state, metro, ROT0, "Metro", "Last Fortress - Toride (Erotic, Rev C)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, lastfortea,lastfort, lastfort, lastfero, metro_state, metro, ROT0, "Metro", "Last Fortress - Toride (Erotic, Rev A)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, lastfortk, lastfort, lastfort, lastfero, metro_state, metro, ROT0, "Metro", "Last Fortress - Toride (Korea)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, lastfortg, lastfort, lastforg, ladykill, metro_state, metro, ROT0, "Metro", "Last Fortress - Toride (German)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, toride2g, 0, toride2g, toride2g, metro_state, metro, ROT0, "Metro", "Toride II Adauchi Gaiden", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1994, toride2gg, toride2g, toride2g, toride2g, metro_state, metro, ROT0, "Metro", "Toride II Adauchi Gaiden (German)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1994, toride2gk, toride2g, toride2g, toride2g, metro_state, metro, ROT0, "Metro", "Toride II Bok Su Oi Jeon Adauchi Gaiden (Korea)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1994, toride2j, toride2g, toride2g, toride2g, metro_state, metro, ROT0, "Metro", "Toride II (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1994, gunmast, 0, pururun, gunmast, metro_state, daitorid, ROT0, "Metro", "Gun Master", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, daitorid, 0, daitorid, daitorid, metro_state, daitorid, ROT0, "Metro", "Daitoride", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1996, daitorida, daitorid, daitoa, daitorid, metro_state, balcube, ROT0, "Metro", "Daitoride (YMF278B version)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, dokyusei, 0, dokyusei, dokyusei, metro_state, gakusai, ROT0, "Make Software / Elf / Media Trading", "Mahjong Doukyuusei", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, dokyusp, 0, dokyusp, gakusai, metro_state, gakusai, ROT0, "Make Software / Elf / Media Trading", "Mahjong Doukyuusei Special", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, msgogo, 0, msgogo, msgogo, metro_state, balcube, ROT0, "Metro", "Mouse Shooter GoGo", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1995, pururun, 0, pururun, pururun, metro_state, daitorid, ROT0, "Metro / Banpresto", "Pururun", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, puzzli, 0, daitorid, puzzli, metro_state, daitorid, ROT0, "Metro / Banpresto", "Puzzli", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1996, 3kokushi, 0, 3kokushi, 3kokushi, metro_state, karatour, ROT0, "Mitchell", "Sankokushi (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1996, balcube, 0, balcube, balcube, metro_state, balcube, ROT0, "Metro", "Bal Cube", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, bangball, 0, bangball, bangball, metro_state, balcube, ROT0, "Banpresto / Kunihiko Tashiro+Goodhouse", "Bang Bang Ball (v1.05)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, gstrik2, 0, gstrik2, gstrik2, metro_state, blzntrnd, ROT0, "Human Amusement", "Grand Striker 2 (Europe and Oceania)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1996, gstrik2j, gstrik2, gstrik2, gstrik2, metro_state, blzntrnd, ROT0, "Human Amusement", "Grand Striker 2 (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // priority between rounds
+GAME( 1999, batlbubl, bangball, batlbubl, batlbubl, metro_state, balcube, ROT0, "Banpresto (Limenko license?)", "Battle Bubble (v2.00)", MACHINE_SUPPORTS_SAVE ) // or bootleg?
+GAME( 1996, mouja, 0, mouja, mouja, metro_state, mouja, ROT0, "Etona", "Mouja (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, gakusai, 0, gakusai, gakusai, metro_state, gakusai, ROT0, "MakeSoft", "Mahjong Gakuensai (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1998, gakusai2, 0, gakusai2, gakusai, metro_state, gakusai, ROT0, "MakeSoft", "Mahjong Gakuensai 2 (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, puzzlet, 0, puzzlet, puzzlet, metro_state, puzzlet, ROT0, "Unies Corporation", "Puzzlet (Japan)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1995, vmetal, 0, vmetal, vmetal, metro_state, blzntrnd, ROT90, "Excellent System", "Varia Metal", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1995, vmetaln, vmetal, vmetal, vmetal, metro_state, blzntrnd, ROT90, "Excellent System (New Ways Trading Co. license)", "Varia Metal (New Ways Trading Co.)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/mexico86.c b/src/mame/drivers/mexico86.c
index 04e43c8cef4..a763f0f84e4 100644
--- a/src/mame/drivers/mexico86.c
+++ b/src/mame/drivers/mexico86.c
@@ -678,8 +678,8 @@ ROM_END
*
*************************************/
-GAME( 1986, kikikai, 0, kikikai, kikikai, driver_device, 0, ROT90, "Taito Corporation", "KiKi KaiKai", GAME_SUPPORTS_SAVE )
-GAME( 1986, knightb, kikikai, knightb, kikikai, driver_device, 0, ROT90, "bootleg", "Knight Boy", GAME_SUPPORTS_SAVE )
-GAME( 1986, kicknrun, 0, mexico86, mexico86, driver_device, 0, ROT0, "Taito Corporation", "Kick and Run (World)", GAME_SUPPORTS_SAVE )
-GAME( 1986, kicknrunu,kicknrun, mexico86, mexico86, driver_device, 0, ROT0, "Taito America Corp", "Kick and Run (US)", GAME_SUPPORTS_SAVE )
-GAME( 1986, mexico86, kicknrun, mexico86, mexico86, driver_device, 0, ROT0, "bootleg", "Mexico 86 (bootleg of Kick and Run)", GAME_SUPPORTS_SAVE )
+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)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/meyc8080.c b/src/mame/drivers/meyc8080.c
index 8704c8bec7e..ff2529984ac 100644
--- a/src/mame/drivers/meyc8080.c
+++ b/src/mame/drivers/meyc8080.c
@@ -728,7 +728,7 @@ 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)", GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_mdrawpkr )
-GAMEL(1983, casbjack, 0, meyc8080, casbjack, driver_device, 0, ROT0, "Meyco Games, Inc.", "Casino Black Jack (color, Standard 00-05)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_meybjack ) // B&W version not dumped yet
+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
diff --git a/src/mame/drivers/mgames.c b/src/mame/drivers/mgames.c
index 70cb080d67b..53567b429d1 100644
--- a/src/mame/drivers/mgames.c
+++ b/src/mame/drivers/mgames.c
@@ -700,4 +700,4 @@ ROM_END
*************************/
/* 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", GAME_WRONG_COLORS | GAME_NO_SOUND, layout_mgames )
+GAMEL( 1981, mgames, 0, mgames, mgames, driver_device, 0, ROT0, "Merit", "Match Games", MACHINE_WRONG_COLORS | MACHINE_NO_SOUND, layout_mgames )
diff --git a/src/mame/drivers/mgavegas.c b/src/mame/drivers/mgavegas.c
index 39f7415f85c..2cab03a633c 100644
--- a/src/mame/drivers/mgavegas.c
+++ b/src/mame/drivers/mgavegas.c
@@ -654,6 +654,6 @@ ROM_END
* Game Drivers *
*************************/
/* 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)", GAME_MECHANICAL )
-GAME( 1985, mgavegas21, mgavegas, mgavegas, mgavegas, mgavegas_state, mgavegas21, ROT0, "MGA", "Vegas 1 (Ver 2.1 dual coin pulse, longer)", GAME_MECHANICAL )
-GAME( 1985, mgavegas133, mgavegas, mgavegas, mgavegas, mgavegas_state, mgavegas133,ROT0, "MGA", "Vegas 1 (Ver 1.33 single coin pulse)", GAME_MECHANICAL )
+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 )
diff --git a/src/mame/drivers/mgolf.c b/src/mame/drivers/mgolf.c
index e1369c74c73..c3ec409cc17 100644
--- a/src/mame/drivers/mgolf.c
+++ b/src/mame/drivers/mgolf.c
@@ -408,4 +408,4 @@ ROM_START( mgolf )
ROM_END
-GAME( 1978, mgolf, 0, mgolf, mgolf, driver_device, 0, ROT270, "Atari", "Atari Mini Golf (prototype)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1978, mgolf, 0, mgolf, mgolf, driver_device, 0, ROT270, "Atari", "Atari Mini Golf (prototype)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/mhavoc.c b/src/mame/drivers/mhavoc.c
index dadecc517de..f039a8d5596 100644
--- a/src/mame/drivers/mhavoc.c
+++ b/src/mame/drivers/mhavoc.c
@@ -763,9 +763,9 @@ ROM_END
*
*************************************/
-GAME( 1983, mhavoc, 0, mhavoc, mhavoc, driver_device, 0, ROT0, "Atari", "Major Havoc (rev 3)", GAME_SUPPORTS_SAVE )
-GAME( 1983, mhavoc2, mhavoc, mhavoc, mhavoc, driver_device, 0, ROT0, "Atari", "Major Havoc (rev 2)", GAME_SUPPORTS_SAVE )
-GAME( 1983, mhavocrv, mhavoc, mhavocrv, mhavocrv, mhavoc_state, mhavocrv, ROT0, "Atari / JMA", "Major Havoc (Return to Vax)", GAME_SUPPORTS_SAVE )
-GAME( 1983, mhavocp, mhavoc, mhavoc, mhavocp, driver_device, 0, ROT0, "Atari", "Major Havoc (prototype)", GAME_SUPPORTS_SAVE )
-GAME( 1983, alphaone, mhavoc, alphaone, alphaone, driver_device, 0, ROT0, "Atari", "Alpha One (prototype, 3 lives)", GAME_SUPPORTS_SAVE )
-GAME( 1983, alphaonea,mhavoc, alphaone, alphaone, driver_device, 0, ROT0, "Atari", "Alpha One (prototype, 5 lives)", GAME_SUPPORTS_SAVE )
+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, mhavocrv, mhavoc, mhavocrv, mhavocrv, mhavoc_state, mhavocrv, ROT0, "Atari / JMA", "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 )
diff --git a/src/mess/drivers/mice.c b/src/mame/drivers/mice.c
index 492208fc0ee..3e5662dd50d 100644
--- a/src/mess/drivers/mice.c
+++ b/src/mame/drivers/mice.c
@@ -118,4 +118,4 @@ 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", GAME_IS_SKELETON )
+COMP( 1980, mice, 0, 0, mice, mice, driver_device, 0, "Microtek International Inc", "Mice", MACHINE_IS_SKELETON )
diff --git a/src/mame/drivers/micral.c b/src/mame/drivers/micral.c
new file mode 100644
index 00000000000..0defae8fad3
--- /dev/null
+++ b/src/mame/drivers/micral.c
@@ -0,0 +1,292 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+/********************************************************************************
+
+ Bull (Originally R2E) Micral 80-22G
+
+ 2015-10-01 Skeleton [Robbbert]
+
+ http://www.ti99.com/exelvision/website/index.php?page=r2e-micral-8022-g
+
+ This expensive, futuristic-looking design featured a motherboard and slots,
+ much like an ancient pc. The known chip complement is:
+ Z80A, 4MHz; 64KB RAM, 2KB BIOS ROM, 256x4 prom (7611);
+ CRT8002, TMS9937 (=CRT5037), 4KB video RAM, 256x4 prom (7611);
+ 2x 5.25 inch floppy drives, one ST506 5MB hard drive;
+ CDP6402 UART. Sound is a beeper.
+ The keyboard has a uPD780C (=Z80) and 1KB of ROM.
+
+ The FDC and HDC are unknown.
+ No manuals, schematic or circuit description have been found.
+
+*********************************************************************************/
+
+#include "emu.h"
+#include "cpu/z80/z80.h"
+#include "video/tms9927.h"
+#include "sound/beep.h"
+
+
+class micral_state : public driver_device
+{
+public:
+ micral_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ , m_beep(*this, "beeper")
+ { }
+
+ DECLARE_DRIVER_INIT(micral);
+ DECLARE_MACHINE_RESET(micral);
+ UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+
+private:
+ required_device<cpu_device> m_maincpu;
+ required_device<beep_device> m_beep;
+};
+
+
+static ADDRESS_MAP_START( micral_mem, AS_PROGRAM, 8, micral_state )
+ ADDRESS_MAP_UNMAP_HIGH
+ AM_RANGE(0x0000, 0xf7ff) AM_RAM
+ AM_RANGE(0xf800, 0xfeff) AM_ROM
+ AM_RANGE(0xff00, 0xffff) AM_RAM // FFF0-F seems to be devices
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( micral_kbd_mem, AS_PROGRAM, 8, micral_state )
+ ADDRESS_MAP_UNMAP_HIGH
+ AM_RANGE(0x0000, 0x03ff) AM_ROM
+ AM_RANGE(0x8000, 0x8000) AM_RAM // byte returned to main cpu after receiving irq
+ AM_RANGE(0x8001, 0x8001) AM_READ_PORT("X0")
+ AM_RANGE(0x8002, 0x8002) AM_READ_PORT("X1")
+ AM_RANGE(0x8004, 0x8004) AM_READ_PORT("X2")
+ AM_RANGE(0x8008, 0x8008) AM_READ_PORT("X3")
+ AM_RANGE(0x8010, 0x8010) AM_READ_PORT("X4")
+ AM_RANGE(0x8020, 0x8020) AM_READ_PORT("X5")
+ AM_RANGE(0x8040, 0x8040) AM_READ_PORT("X6")
+ AM_RANGE(0x8080, 0x8080) AM_READ_PORT("X7")
+ AM_RANGE(0x8100, 0x8100) AM_READ_PORT("X8")
+ AM_RANGE(0x8200, 0x8200) AM_READ_PORT("X9")
+ AM_RANGE(0x8400, 0x8400) AM_READ_PORT("X10")
+ AM_RANGE(0x8800, 0x8800) AM_READ_PORT("X11")
+ AM_RANGE(0x9000, 0x9000) AM_READ_PORT("X12")
+ AM_RANGE(0xa000, 0xa000) AM_READ_PORT("X13")
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( micral_kbd_io, AS_IO, 8, micral_state )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
+ AM_RANGE(0x00, 0x00) AM_READ_PORT("X14")
+ADDRESS_MAP_END
+
+/* Input ports */
+static INPUT_PORTS_START( micral )
+ PORT_START("X0")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ESC)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SPACE)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // 01
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // 00
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // 03
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // 00
+
+ PORT_START("X1")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) // 2A
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) // 22
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5) // 28
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_7) // 94
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9) // 90
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // 29
+
+ PORT_START("X2")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // 3E, 3C
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // 00
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_E)
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_T)
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_U)
+
+ PORT_START("X3")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_O)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // '^'
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // 00
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // 00
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_S)
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F)
+
+ PORT_START("X4")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_H)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_K)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_M)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_CLOSEBRACE) // 5B
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // OB
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_W)
+
+ PORT_START("X5")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_C)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_B)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COMMA) // 3F
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // ':','/'
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // 08
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // 06
+
+ PORT_START("X6")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ENTER)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_TAB)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // 00
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // 02
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // 00
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // 00
+
+ PORT_START("X7")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) // 91
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) // 27
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) // '-'
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8) // '_'
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) // 8E
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) // '+'
+
+ PORT_START("X8")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // 00
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // 00
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Z)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_R)
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Y)
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_I)
+
+ PORT_START("X9")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_P)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // '@', '#'
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // 00
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Q)
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_D)
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_G)
+
+ PORT_START("X10")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_J)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_L)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // 9C, '%'
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // 05
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // 7F
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_X)
+
+ PORT_START("X11")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_V)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_N)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // ';','.'
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // '!','&'
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // 0A
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // 00
+
+ PORT_START("X12")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // 95,FE
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // 97,FC
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // 9D,'$'
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // 96,'\'
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // 99,84
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // 9A,92
+
+ PORT_START("X13")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // 00
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // 00
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // 00
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // 00
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // 00
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) // 00
+
+ PORT_START("X14")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_RCONTROL) // ?? don't look for a new keypress
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1)
+ PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_LCONTROL) // ??
+INPUT_PORTS_END
+
+UINT32 micral_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
+{
+// for (int y = 0; y < 32*8; y++)
+// {
+// offs_t offset = (y / 8) * 128;
+
+// for (int sx = 0; sx < 64; sx++)
+// {
+// UINT8 code = m_video_ram[offset++];
+// UINT8 attr = m_video_ram[offset++];
+
+// offs_t char_offs = ((code & 0x7f) << 3) | (y & 0x07);
+// if (BIT(code, 7)) char_offs = ((code & 0x7f) << 3) | ((y >> 1) & 0x07);
+
+// UINT8 data = m_char_rom->base()[char_offs];
+
+// rgb_t fg = m_palette->pen_color(attr & 0x07);
+// rgb_t bg = m_palette->pen_color((attr >> 3) & 0x07);
+
+// for (int x = 0; x < 6; x++)
+// {
+// bitmap.pix32(y, (sx * 6) + x) = BIT(data, 7) ? fg : bg;
+
+// data <<= 1;
+// }
+// }
+// }
+
+ return 0;
+}
+
+DRIVER_INIT_MEMBER( micral_state, micral )
+{
+ //UINT8 *main = memregion("maincpu")->base();
+
+ //membank("bankr0")->configure_entry(1, &main[0xf800]);
+ //membank("bankr0")->configure_entry(0, &main[0x10000]);
+ //membank("bankw0")->configure_entry(0, &main[0xf800]);
+}
+
+MACHINE_RESET_MEMBER( micral_state, micral )
+{
+ //membank("bankr0")->set_entry(0); // point at rom
+ //membank("bankw0")->set_entry(0); // always write to ram
+ m_beep->set_frequency(2000);
+ m_maincpu->set_state_int(Z80_PC, 0xf800);
+}
+
+static MACHINE_CONFIG_START( micral, micral_state )
+ // basic machine hardware
+ MCFG_CPU_ADD( "maincpu", Z80, XTAL_4MHz )
+ MCFG_CPU_PROGRAM_MAP(micral_mem)
+ // no i/o ports on main cpu
+ MCFG_CPU_ADD( "keyboard", Z80, XTAL_1MHz ) // freq unknown
+ MCFG_CPU_PROGRAM_MAP(micral_kbd_mem)
+ MCFG_CPU_IO_MAP(micral_kbd_io)
+
+ MCFG_MACHINE_RESET_OVERRIDE(micral_state, micral)
+
+ // video hardware
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(250))
+ MCFG_SCREEN_UPDATE_DRIVER(micral_state, screen_update)
+ MCFG_SCREEN_SIZE(64*6, 32*8)
+ MCFG_SCREEN_VISIBLE_AREA(0, 64*6-1, 0, 32*8-1)
+ MCFG_PALETTE_ADD_MONOCHROME_GREEN("palette")
+ //MCFG_GFXDECODE_ADD("gfxdecode", "palette", micral)
+
+ MCFG_DEVICE_ADD("crtc", CRT5037, XTAL_17_9712MHz/2) // xtal freq unknown
+ MCFG_TMS9927_CHAR_WIDTH(6) // unknown
+ //MCFG_TMS9927_VSYN_CALLBACK(DEVWRITELINE(TMS5501_TAG, tms5501_device, sens_w))
+ MCFG_VIDEO_SET_SCREEN("screen")
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_SOUND_ADD("beeper", BEEP, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
+MACHINE_CONFIG_END
+
+ROM_START( micral )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "8022g.rom", 0xf800, 0x0800, CRC(882732a9) SHA1(3f37b82c450a54aedec209bd46fcbcf131c86313) )
+
+ ROM_REGION( 0x400, "keyboard", 0 )
+ ROM_LOAD( "2010221.rom", 0x000, 0x400, CRC(65123378) SHA1(401f0a648b78bf1662a1cd2546e83ba8e3cb7a42) )
+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 )
diff --git a/src/mame/drivers/micro3d.c b/src/mame/drivers/micro3d.c
index 695d5f4972e..988cf4cab84 100644
--- a/src/mame/drivers/micro3d.c
+++ b/src/mame/drivers/micro3d.c
@@ -226,7 +226,7 @@ static ADDRESS_MAP_START( vgbmem, AS_PROGRAM, 16, micro3d_state )
AM_RANGE(0x00800000, 0x00bfffff) AM_RAM
AM_RANGE(0x00c00000, 0x00c0000f) AM_READ_PORT("VGB_SW")
AM_RANGE(0x00e00000, 0x00e0000f) AM_WRITE(micro3d_xfer3dk_w)
- AM_RANGE(0x02000000, 0x0200ffff) AM_RAM_WRITE(micro3d_clut_w) AM_SHARE("paletteram")
+ AM_RANGE(0x02000000, 0x0200ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // clut
AM_RANGE(0x02600000, 0x0260000f) AM_WRITE(micro3d_creg_w)
AM_RANGE(0x02c00000, 0x02c0003f) AM_READ(micro3d_ti_uart_r)
AM_RANGE(0x02e00000, 0x02e0003f) AM_WRITE(micro3d_ti_uart_w)
@@ -326,6 +326,7 @@ static MACHINE_CONFIG_START( micro3d, micro3d_state )
MCFG_QUANTUM_TIME(attotime::from_hz(3000))
MCFG_PALETTE_ADD("palette", 4096)
+ MCFG_PALETTE_FORMAT(BBBBBRRRRRGGGGGx)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(XTAL_40MHz/8*4, 192*4, 0, 144*4, 434, 0, 400)
@@ -637,8 +638,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)", GAME_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)", GAME_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)", GAME_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)", GAME_IMPERFECT_SOUND )
-GAME( 1992, tankbatl, 0, micro3d, tankbatl, micro3d_state, micro3d, ROT0, "Microprose Games Inc.", "Tank Battle (prototype rev. 4/21/92)", GAME_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/mess/drivers/microdec.c b/src/mame/drivers/microdec.c
index ab3a2194e9a..8f2494087da 100644
--- a/src/mess/drivers/microdec.c
+++ b/src/mame/drivers/microdec.c
@@ -138,5 +138,5 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
-COMP( 1982, md2, 0, 0, microdec, microdec, driver_device, 0, "Morrow Designs", "Micro Decision MD-2", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 1982, md3, md2, 0, microdec, microdec, driver_device, 0, "Morrow Designs", "Micro Decision MD-3", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1982, md2, 0, 0, microdec, microdec, driver_device, 0, "Morrow Designs", "Micro Decision MD-2", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
+COMP( 1982, md3, md2, 0, microdec, microdec, driver_device, 0, "Morrow Designs", "Micro Decision MD-3", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/microkit.c b/src/mame/drivers/microkit.c
index 556b16dffdf..9082931f21f 100644
--- a/src/mess/drivers/microkit.c
+++ b/src/mame/drivers/microkit.c
@@ -43,4 +43,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", GAME_IS_SKELETON | GAME_NOT_WORKING | GAME_NO_SOUND )
+COMP( 1975, microkit, 0, 0, microkit, microkit, driver_device, 0, "RCA", "COSMAC Microkit", MACHINE_IS_SKELETON | MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mess/drivers/micronic.c b/src/mame/drivers/micronic.c
index 7d7290897a4..90a898854ef 100644
--- a/src/mess/drivers/micronic.c
+++ b/src/mame/drivers/micronic.c
@@ -396,4 +396,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 198?, micronic, 0, 0, micronic, micronic, driver_device, 0, "Victor Micronic", "Micronic 1000", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/micropin.c b/src/mame/drivers/micropin.c
index a90faff4789..14dff4d8c1c 100644
--- a/src/mame/drivers/micropin.c
+++ b/src/mame/drivers/micropin.c
@@ -352,5 +352,5 @@ ROM_START(pentacup2)
ROM_END
-GAME(1978, pentacup, 0, micropin, micropin, micropin_state, micropin, ROT0, "Micropin", "Pentacup (rev. 1)", GAME_MECHANICAL | GAME_NOT_WORKING )
-GAME(1980, pentacup2, pentacup, pentacup2, micropin, micropin_state, micropin, ROT0, "Micropin", "Pentacup (rev. 2)", GAME_IS_SKELETON_MECHANICAL)
+GAME(1978, pentacup, 0, micropin, micropin, micropin_state, micropin, ROT0, "Micropin", "Pentacup (rev. 1)", MACHINE_MECHANICAL | MACHINE_NOT_WORKING )
+GAME(1980, pentacup2, pentacup, pentacup2, micropin, micropin_state, micropin, ROT0, "Micropin", "Pentacup (rev. 2)", MACHINE_IS_SKELETON_MECHANICAL)
diff --git a/src/mess/drivers/microtan.c b/src/mame/drivers/microtan.c
index 5503e3285e8..5503e3285e8 100644
--- a/src/mess/drivers/microtan.c
+++ b/src/mame/drivers/microtan.c
diff --git a/src/mess/drivers/microvsn.c b/src/mame/drivers/microvsn.c
index 72fb8984e34..e322bf47615 100644
--- a/src/mess/drivers/microvsn.c
+++ b/src/mame/drivers/microvsn.c
@@ -704,4 +704,4 @@ ROM_START( microvsn )
ROM_END
-CONS( 1979, microvsn, 0, 0, microvision, microvision, driver_device, 0, "Milton Bradley", "MicroVision", GAME_NOT_WORKING )
+CONS( 1979, microvsn, 0, 0, microvision, microvision, driver_device, 0, "Milton Bradley", "MicroVision", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/midqslvr.c b/src/mame/drivers/midqslvr.c
index 3e52f4c72ef..0e33354dbb4 100644
--- a/src/mame/drivers/midqslvr.c
+++ b/src/mame/drivers/midqslvr.c
@@ -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", GAME_IS_SKELETON)
+GAME(1999, hydrthnd, 0, midqslvr, at_keyboard, driver_device, 0, ROT0, "Midway Games", "Hydro Thunder", MACHINE_IS_SKELETON)
-GAME(2000, offrthnd, 0, midqslvr, at_keyboard, driver_device, 0, ROT0, "Midway Games", "Offroad Thunder", GAME_IS_SKELETON)
+GAME(2000, offrthnd, 0, midqslvr, at_keyboard, driver_device, 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)", GAME_IS_SKELETON)
+GAME(2001, arctthnd, 0, midqslvr, at_keyboard, driver_device, 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", GAME_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)", GAME_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)
diff --git a/src/mame/drivers/midtunit.c b/src/mame/drivers/midtunit.c
index c6fd6b3974f..e96906f01d6 100644
--- a/src/mame/drivers/midtunit.c
+++ b/src/mame/drivers/midtunit.c
@@ -49,7 +49,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, midtunit_state )
AM_RANGE(0x01600010, 0x0160001f) AM_READ_PORT("IN1")
AM_RANGE(0x01600020, 0x0160002f) AM_READ_PORT("IN2")
AM_RANGE(0x01600030, 0x0160003f) AM_READ_PORT("DSW")
- AM_RANGE(0x01800000, 0x0187ffff) AM_RAM_WRITE(midtunit_paletteram_w) AM_SHARE("paletteram")
+ AM_RANGE(0x01800000, 0x0187ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x01a80000, 0x01a800ff) AM_READWRITE(midtunit_dma_r, midtunit_dma_w)
AM_RANGE(0x01b00000, 0x01b0001f) AM_WRITE(midtunit_control_w)
/* AM_RANGE(0x01c00060, 0x01c0007f) AM_WRITE(midtunit_cmos_enable_w) */
@@ -602,6 +602,7 @@ static MACHINE_CONFIG_START( tunit_core, midtunit_state )
/* video hardware */
MCFG_PALETTE_ADD("palette", 32768)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_SCREEN_ADD("screen", RASTER)
// from TMS340 registers
@@ -1477,29 +1478,29 @@ ROM_END
*
*************************************/
-GAME( 1992, mk, 0, tunit_adpcm, mk, midtunit_state, mktunit, ROT0, "Midway", "Mortal Kombat (rev 5.0 T-Unit 03/19/93)", GAME_SUPPORTS_SAVE )
-GAME( 1992, mkr4, mk, tunit_adpcm, mk, midtunit_state, mktunit, ROT0, "Midway", "Mortal Kombat (rev 4.0 T-Unit 02/11/93)", GAME_SUPPORTS_SAVE )
-GAME( 1992, mktturbo, mk, tunit_adpcm, mk, midtunit_state, mkturbo, ROT0, "hack", "Mortal Kombat (Turbo Ninja T-Unit 03/19/93, hack)", GAME_SUPPORTS_SAVE )
-
-GAME( 1993, mk2, 0, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "Midway", "Mortal Kombat II (rev L3.1)", GAME_SUPPORTS_SAVE )
-GAME( 1993, mk2r32e, mk2, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "Midway", "Mortal Kombat II (rev L3.2 (European))", GAME_SUPPORTS_SAVE )
-GAME( 1993, mk2r31e, mk2, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "Midway", "Mortal Kombat II (rev L3.1 (European))", GAME_SUPPORTS_SAVE )
-GAME( 1993, mk2r30, mk2, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "Midway", "Mortal Kombat II (rev L3.0)", GAME_SUPPORTS_SAVE )
-GAME( 1993, mk2r21, mk2, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "Midway", "Mortal Kombat II (rev L2.1)", GAME_SUPPORTS_SAVE )
-GAME( 1993, mk2r20, mk2, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "Midway", "Mortal Kombat II (rev L2.0)", GAME_SUPPORTS_SAVE )
-GAME( 1993, mk2r14, mk2, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "Midway", "Mortal Kombat II (rev L1.4)", GAME_SUPPORTS_SAVE )
-GAME( 1993, mk2r11, mk2, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "Midway", "Mortal Kombat II (rev L1.1)", GAME_SUPPORTS_SAVE )
-GAME( 1993, mk2r42, mk2, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "hack", "Mortal Kombat II (rev L4.2, hack)", GAME_SUPPORTS_SAVE )
-GAME( 1993, mk2r91, mk2, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "hack", "Mortal Kombat II (rev L9.1, hack)", GAME_SUPPORTS_SAVE )
-GAME( 1993, mk2chal, mk2, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "hack", "Mortal Kombat II Challenger (hack)", GAME_SUPPORTS_SAVE )
-
-GAME( 1993, jdreddp, 0, tunit_adpcm, jdreddp, midtunit_state, jdreddp, ROT0, "Midway", "Judge Dredd (rev LA1, prototype)", GAME_SUPPORTS_SAVE )
-
-GAME( 1993, nbajam, 0, tunit_adpcm, nbajam, midtunit_state, nbajam, ROT0, "Midway", "NBA Jam (rev 3.01 04/07/93)", GAME_SUPPORTS_SAVE )
-GAME( 1993, nbajamr2, nbajam, tunit_adpcm, nbajam, midtunit_state, nbajam, ROT0, "Midway", "NBA Jam (rev 2.00 02/10/93)", GAME_SUPPORTS_SAVE )
-
-GAME( 1994, nbajamte, 0, tunit_adpcm, nbajamte, midtunit_state, nbajamte, ROT0, "Midway", "NBA Jam TE (rev 4.0 03/23/94)", GAME_SUPPORTS_SAVE )
-GAME( 1994, nbajamte1,nbajamte, tunit_adpcm, nbajamte, midtunit_state, nbajamte, ROT0, "Midway", "NBA Jam TE (rev 1.0 01/17/94)", GAME_SUPPORTS_SAVE )
-GAME( 1994, nbajamte2,nbajamte, tunit_adpcm, nbajamte, midtunit_state, nbajamte, ROT0, "Midway", "NBA Jam TE (rev 2.0 01/28/94)", GAME_SUPPORTS_SAVE )
-GAME( 1994, nbajamte3,nbajamte, tunit_adpcm, nbajamte, midtunit_state, nbajamte, ROT0, "Midway", "NBA Jam TE (rev 3.0 03/04/94)", GAME_SUPPORTS_SAVE )
-GAME( 1995, nbajamten,nbajamte, tunit_adpcm, nbajamte, midtunit_state, nbajamte, ROT0, "Midway", "NBA Jam T.E. Nani Edition (rev 5.2 8/11/95, prototype)", GAME_SUPPORTS_SAVE )
+GAME( 1992, mk, 0, tunit_adpcm, mk, midtunit_state, mktunit, ROT0, "Midway", "Mortal Kombat (rev 5.0 T-Unit 03/19/93)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, mkr4, mk, tunit_adpcm, mk, midtunit_state, mktunit, ROT0, "Midway", "Mortal Kombat (rev 4.0 T-Unit 02/11/93)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, mktturbo, mk, tunit_adpcm, mk, midtunit_state, mkturbo, ROT0, "hack", "Mortal Kombat (Turbo Ninja T-Unit 03/19/93, hack)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1993, mk2, 0, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "Midway", "Mortal Kombat II (rev L3.1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, mk2r32e, mk2, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "Midway", "Mortal Kombat II (rev L3.2 (European))", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, mk2r31e, mk2, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "Midway", "Mortal Kombat II (rev L3.1 (European))", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, mk2r30, mk2, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "Midway", "Mortal Kombat II (rev L3.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, mk2r21, mk2, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "Midway", "Mortal Kombat II (rev L2.1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, mk2r20, mk2, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "Midway", "Mortal Kombat II (rev L2.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, mk2r14, mk2, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "Midway", "Mortal Kombat II (rev L1.4)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, mk2r11, mk2, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "Midway", "Mortal Kombat II (rev L1.1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, mk2r42, mk2, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "hack", "Mortal Kombat II (rev L4.2, hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, mk2r91, mk2, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "hack", "Mortal Kombat II (rev L9.1, hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, mk2chal, mk2, tunit_dcs, mk2, midtunit_state, mk2, ROT0, "hack", "Mortal Kombat II Challenger (hack)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1993, jdreddp, 0, tunit_adpcm, jdreddp, midtunit_state, jdreddp, ROT0, "Midway", "Judge Dredd (rev LA1, prototype)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1993, nbajam, 0, tunit_adpcm, nbajam, midtunit_state, nbajam, ROT0, "Midway", "NBA Jam (rev 3.01 04/07/93)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, nbajamr2, nbajam, tunit_adpcm, nbajam, midtunit_state, nbajam, ROT0, "Midway", "NBA Jam (rev 2.00 02/10/93)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1994, nbajamte, 0, tunit_adpcm, nbajamte, midtunit_state, nbajamte, ROT0, "Midway", "NBA Jam TE (rev 4.0 03/23/94)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, nbajamte1,nbajamte, tunit_adpcm, nbajamte, midtunit_state, nbajamte, ROT0, "Midway", "NBA Jam TE (rev 1.0 01/17/94)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, nbajamte2,nbajamte, tunit_adpcm, nbajamte, midtunit_state, nbajamte, ROT0, "Midway", "NBA Jam TE (rev 2.0 01/28/94)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, nbajamte3,nbajamte, tunit_adpcm, nbajamte, midtunit_state, nbajamte, ROT0, "Midway", "NBA Jam TE (rev 3.0 03/04/94)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, nbajamten,nbajamte, tunit_adpcm, nbajamte, midtunit_state, nbajamte, ROT0, "Midway", "NBA Jam T.E. Nani Edition (rev 5.2 8/11/95, prototype)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/midvunit.c b/src/mame/drivers/midvunit.c
index 1c661e5fb4c..8396fa76291 100644
--- a/src/mame/drivers/midvunit.c
+++ b/src/mame/drivers/midvunit.c
@@ -1805,24 +1805,24 @@ DRIVER_INIT_MEMBER(midvunit_state,wargods)
*
*************************************/
-GAME( 1994, crusnusa, 0, midvunit, crusnusa, midvunit_state, crusnusa, ROT0, "Midway", "Cruis'n USA (rev L4.1)", GAME_SUPPORTS_SAVE )
-GAME( 1994, crusnusa40, crusnusa, midvunit, crusnusa, midvunit_state, crusnu40, ROT0, "Midway", "Cruis'n USA (rev L4.0)", GAME_SUPPORTS_SAVE )
-GAME( 1994, crusnusa21, crusnusa, midvunit, crusnusa, midvunit_state, crusnu21, ROT0, "Midway", "Cruis'n USA (rev L2.1)", GAME_SUPPORTS_SAVE )
-
-GAME( 1996, crusnwld, 0, crusnwld, crusnwld, midvunit_state, crusnwld, ROT0, "Midway", "Cruis'n World (rev L2.5)", GAME_SUPPORTS_SAVE )
-GAME( 1996, crusnwld24, crusnwld, crusnwld, crusnwld, midvunit_state, crusnwld, ROT0, "Midway", "Cruis'n World (rev L2.4)", GAME_SUPPORTS_SAVE )
-GAME( 1996, crusnwld23, crusnwld, crusnwld, crusnwld, midvunit_state, crusnwld, ROT0, "Midway", "Cruis'n World (rev L2.3)", GAME_SUPPORTS_SAVE )
-GAME( 1996, crusnwld20, crusnwld, crusnwld, crusnwld, midvunit_state, crusnwld, ROT0, "Midway", "Cruis'n World (rev L2.0)", GAME_SUPPORTS_SAVE )
-GAME( 1996, crusnwld19, crusnwld, crusnwld, crusnwld, midvunit_state, crusnwld, ROT0, "Midway", "Cruis'n World (rev L1.9)", GAME_SUPPORTS_SAVE )
-GAME( 1996, crusnwld17, crusnwld, crusnwld, crusnwld, midvunit_state, crusnwld, ROT0, "Midway", "Cruis'n World (rev L1.7)", GAME_SUPPORTS_SAVE )
-GAME( 1996, crusnwld13, crusnwld, crusnwld, crusnwld, midvunit_state, crusnwld, ROT0, "Midway", "Cruis'n World (rev L1.3)", GAME_SUPPORTS_SAVE )
-
-GAME( 1997, offroadc, 0, offroadc, offroadc, midvunit_state, offroadc, ROT0, "Midway", "Off Road Challenge (v1.63)", GAME_SUPPORTS_SAVE )
-GAME( 1997, offroadc5, offroadc, offroadc, offroadc, midvunit_state, offroadc, ROT0, "Midway", "Off Road Challenge (v1.50)", GAME_SUPPORTS_SAVE )
-GAME( 1997, offroadc4, offroadc, offroadc, offroadc, midvunit_state, offroadc, ROT0, "Midway", "Off Road Challenge (v1.40)", GAME_SUPPORTS_SAVE )
-GAME( 1997, offroadc3, offroadc, offroadc, offroadc, midvunit_state, offroadc, ROT0, "Midway", "Off Road Challenge (v1.30)", GAME_SUPPORTS_SAVE )
-GAME( 1997, offroadc1, offroadc, offroadc, offroadc, midvunit_state, offroadc, ROT0, "Midway", "Off Road Challenge (v1.10)", GAME_SUPPORTS_SAVE )
-
-GAME( 1995, wargods, 0, midvplus, wargods, midvunit_state, wargods, ROT0, "Midway", "War Gods (HD 10/09/1996 - Dual Resolution)", GAME_SUPPORTS_SAVE )
-GAME( 1995, wargodsa, wargods, midvplus, wargodsa, midvunit_state, wargods, ROT0, "Midway", "War Gods (HD 08/15/1996)", GAME_SUPPORTS_SAVE )
-GAME( 1995, wargodsb, wargods, midvplus, wargodsa, midvunit_state, wargods, ROT0, "Midway", "War Gods (HD 12/11/1995)", GAME_SUPPORTS_SAVE )
+GAME( 1994, crusnusa, 0, midvunit, crusnusa, midvunit_state, crusnusa, ROT0, "Midway", "Cruis'n USA (rev L4.1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, crusnusa40, crusnusa, midvunit, crusnusa, midvunit_state, crusnu40, ROT0, "Midway", "Cruis'n USA (rev L4.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, crusnusa21, crusnusa, midvunit, crusnusa, midvunit_state, crusnu21, ROT0, "Midway", "Cruis'n USA (rev L2.1)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1996, crusnwld, 0, crusnwld, crusnwld, midvunit_state, crusnwld, ROT0, "Midway", "Cruis'n World (rev L2.5)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, crusnwld24, crusnwld, crusnwld, crusnwld, midvunit_state, crusnwld, ROT0, "Midway", "Cruis'n World (rev L2.4)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, crusnwld23, crusnwld, crusnwld, crusnwld, midvunit_state, crusnwld, ROT0, "Midway", "Cruis'n World (rev L2.3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, crusnwld20, crusnwld, crusnwld, crusnwld, midvunit_state, crusnwld, ROT0, "Midway", "Cruis'n World (rev L2.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, crusnwld19, crusnwld, crusnwld, crusnwld, midvunit_state, crusnwld, ROT0, "Midway", "Cruis'n World (rev L1.9)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, crusnwld17, crusnwld, crusnwld, crusnwld, midvunit_state, crusnwld, ROT0, "Midway", "Cruis'n World (rev L1.7)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, crusnwld13, crusnwld, crusnwld, crusnwld, midvunit_state, crusnwld, ROT0, "Midway", "Cruis'n World (rev L1.3)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1997, offroadc, 0, offroadc, offroadc, midvunit_state, offroadc, ROT0, "Midway", "Off Road Challenge (v1.63)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, offroadc5, offroadc, offroadc, offroadc, midvunit_state, offroadc, ROT0, "Midway", "Off Road Challenge (v1.50)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, offroadc4, offroadc, offroadc, offroadc, midvunit_state, offroadc, ROT0, "Midway", "Off Road Challenge (v1.40)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, offroadc3, offroadc, offroadc, offroadc, midvunit_state, offroadc, ROT0, "Midway", "Off Road Challenge (v1.30)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, offroadc1, offroadc, offroadc, offroadc, midvunit_state, offroadc, ROT0, "Midway", "Off Road Challenge (v1.10)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1995, wargods, 0, midvplus, wargods, midvunit_state, wargods, ROT0, "Midway", "War Gods (HD 10/09/1996 - Dual Resolution)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, wargodsa, wargods, midvplus, wargodsa, midvunit_state, wargods, ROT0, "Midway", "War Gods (HD 08/15/1996)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, wargodsb, wargods, midvplus, wargodsa, midvunit_state, wargods, ROT0, "Midway", "War Gods (HD 12/11/1995)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/midwunit.c b/src/mame/drivers/midwunit.c
index 3039333413f..47090af6b82 100644
--- a/src/mame/drivers/midwunit.c
+++ b/src/mame/drivers/midwunit.c
@@ -112,7 +112,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, midwunit_state )
AM_RANGE(0x01600000, 0x0160001f) AM_READWRITE(midwunit_security_r, midwunit_security_w)
AM_RANGE(0x01680000, 0x0168001f) AM_READWRITE(midwunit_sound_r, midwunit_sound_w)
AM_RANGE(0x01800000, 0x0187ffff) AM_READWRITE(midwunit_io_r, midwunit_io_w)
- AM_RANGE(0x01880000, 0x018fffff) AM_RAM_WRITE(midtunit_paletteram_w) AM_SHARE("paletteram")
+ AM_RANGE(0x01880000, 0x018fffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x01a00000, 0x01a000ff) AM_MIRROR(0x00080000) AM_READWRITE(midtunit_dma_r, midtunit_dma_w)
AM_RANGE(0x01b00000, 0x01b0001f) AM_READWRITE(midwunit_control_r, midwunit_control_w)
AM_RANGE(0x02000000, 0x06ffffff) AM_READ(midwunit_gfxrom_r)
@@ -631,6 +631,7 @@ static MACHINE_CONFIG_START( wunit, midwunit_state )
/* video hardware */
MCFG_PALETTE_ADD("palette", 32768)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_SCREEN_ADD("screen", RASTER)
// from TMS340 registers
@@ -1254,22 +1255,22 @@ ROM_END
*
*************************************/
-GAME( 1994, mk3, 0, wunit, mk3, midwunit_state, mk3, ROT0, "Midway", "Mortal Kombat 3 (rev 2.1)", GAME_SUPPORTS_SAVE )
-GAME( 1994, mk3r20, mk3, wunit, mk3, midwunit_state, mk3r20, ROT0, "Midway", "Mortal Kombat 3 (rev 2.0)", GAME_SUPPORTS_SAVE )
-GAME( 1994, mk3r10, mk3, wunit, mk3, midwunit_state, mk3r10, ROT0, "Midway", "Mortal Kombat 3 (rev 1.0)", GAME_SUPPORTS_SAVE )
-GAME( 1994, mk3p40, mk3, wunit, mk3, midwunit_state, mk3r10, ROT0, "Midway", "Mortal Kombat 3 (rev 1 chip label p4.0)", GAME_SUPPORTS_SAVE )
-GAME( 1994, umk3, 0, wunit, mk3, midwunit_state, umk3, ROT0, "Midway", "Ultimate Mortal Kombat 3 (rev 1.2)", GAME_SUPPORTS_SAVE )
-GAME( 1994, umk3r11, umk3, wunit, mk3, midwunit_state, umk3r11, ROT0, "Midway", "Ultimate Mortal Kombat 3 (rev 1.1)", GAME_SUPPORTS_SAVE )
-GAME( 1994, umk3r10, umk3, wunit, mk3, midwunit_state, umk3r11, ROT0, "Midway", "Ultimate Mortal Kombat 3 (rev 1.0)", GAME_SUPPORTS_SAVE )
-
-GAME( 1995, wwfmania, 0, wunit, wwfmania, midwunit_state, wwfmania, ROT0, "Midway", "WWF: Wrestlemania (rev 1.30 08/10/95)", GAME_SUPPORTS_SAVE )
-GAME( 1995, wwfmaniab, wwfmania, wunit, wwfmania, midwunit_state, wwfmania, ROT0, "Midway", "WWF: Wrestlemania (rev 1.20 08/02/95)", GAME_SUPPORTS_SAVE )
-GAME( 1995, wwfmaniac, wwfmania, wunit, wwfmania, midwunit_state, wwfmania, ROT0, "Midway", "WWF: Wrestlemania (rev 1.1 07/11/95)", GAME_SUPPORTS_SAVE )
-GAME( 1995, openice, 0, wunit, openice, midwunit_state, openice, ROT0, "Midway", "2 On 2 Open Ice Challenge (rev 1.21)", GAME_SUPPORTS_SAVE )
-
-GAME( 1996, nbahangt, 0, wunit, nbahangt, midwunit_state, nbahangt, ROT0, "Midway", "NBA Hangtime (rev L1.1 04/16/96)", GAME_SUPPORTS_SAVE )
-GAME( 1996, nbamht, nbahangt, wunit, nbahangt, midwunit_state, nbahangt, ROT0, "Midway", "NBA Maximum Hangtime (rev 1.03 06/09/97)", GAME_SUPPORTS_SAVE )
-GAME( 1996, nbamht1, nbahangt, wunit, nbahangt, midwunit_state, nbahangt, ROT0, "Midway", "NBA Maximum Hangtime (rev 1.0 11/08/96)", GAME_SUPPORTS_SAVE )
-
-GAME( 1997, rmpgwt, 0, wunit, rmpgwt, midwunit_state, rmpgwt, ROT0, "Midway", "Rampage: World Tour (rev 1.3)", GAME_SUPPORTS_SAVE )
-GAME( 1997, rmpgwt11, rmpgwt, wunit, rmpgwt, midwunit_state, rmpgwt, ROT0, "Midway", "Rampage: World Tour (rev 1.1)", GAME_SUPPORTS_SAVE )
+GAME( 1994, mk3, 0, wunit, mk3, midwunit_state, mk3, ROT0, "Midway", "Mortal Kombat 3 (rev 2.1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, mk3r20, mk3, wunit, mk3, midwunit_state, mk3r20, ROT0, "Midway", "Mortal Kombat 3 (rev 2.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, mk3r10, mk3, wunit, mk3, midwunit_state, mk3r10, ROT0, "Midway", "Mortal Kombat 3 (rev 1.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, mk3p40, mk3, wunit, mk3, midwunit_state, mk3r10, ROT0, "Midway", "Mortal Kombat 3 (rev 1 chip label p4.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, umk3, 0, wunit, mk3, midwunit_state, umk3, ROT0, "Midway", "Ultimate Mortal Kombat 3 (rev 1.2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, umk3r11, umk3, wunit, mk3, midwunit_state, umk3r11, ROT0, "Midway", "Ultimate Mortal Kombat 3 (rev 1.1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, umk3r10, umk3, wunit, mk3, midwunit_state, umk3r11, ROT0, "Midway", "Ultimate Mortal Kombat 3 (rev 1.0)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1995, wwfmania, 0, wunit, wwfmania, midwunit_state, wwfmania, ROT0, "Midway", "WWF: Wrestlemania (rev 1.30 08/10/95)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, wwfmaniab, wwfmania, wunit, wwfmania, midwunit_state, wwfmania, ROT0, "Midway", "WWF: Wrestlemania (rev 1.20 08/02/95)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, wwfmaniac, wwfmania, wunit, wwfmania, midwunit_state, wwfmania, ROT0, "Midway", "WWF: Wrestlemania (rev 1.1 07/11/95)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, openice, 0, wunit, openice, midwunit_state, openice, ROT0, "Midway", "2 On 2 Open Ice Challenge (rev 1.21)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1996, nbahangt, 0, wunit, nbahangt, midwunit_state, nbahangt, ROT0, "Midway", "NBA Hangtime (rev L1.1 04/16/96)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, nbamht, nbahangt, wunit, nbahangt, midwunit_state, nbahangt, ROT0, "Midway", "NBA Maximum Hangtime (rev 1.03 06/09/97)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, nbamht1, nbahangt, wunit, nbahangt, midwunit_state, nbahangt, ROT0, "Midway", "NBA Maximum Hangtime (rev 1.0 11/08/96)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1997, rmpgwt, 0, wunit, rmpgwt, midwunit_state, rmpgwt, ROT0, "Midway", "Rampage: World Tour (rev 1.3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, rmpgwt11, rmpgwt, wunit, rmpgwt, midwunit_state, rmpgwt, ROT0, "Midway", "Rampage: World Tour (rev 1.1)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/midxunit.c b/src/mame/drivers/midxunit.c
index 9beb50d4ac3..aa9a23d4564 100644
--- a/src/mame/drivers/midxunit.c
+++ b/src/mame/drivers/midxunit.c
@@ -112,7 +112,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, midxunit_state )
AM_RANGE(0x80800000, 0x8080001f) AM_READWRITE(midxunit_analog_r, midxunit_analog_select_w)
AM_RANGE(0x80c00000, 0x80c000ff) AM_READWRITE(midxunit_uart_r, midxunit_uart_w)
AM_RANGE(0xa0440000, 0xa047ffff) AM_READWRITE(midxunit_cmos_r, midxunit_cmos_w) AM_SHARE("nvram")
- AM_RANGE(0xa0800000, 0xa08fffff) AM_READWRITE(midxunit_paletteram_r, midxunit_paletteram_w) AM_SHARE("paletteram")
+ AM_RANGE(0xa0800000, 0xa08fffff) AM_READWRITE(midxunit_paletteram_r, midxunit_paletteram_w) AM_SHARE("palette")
AM_RANGE(0xc0000000, 0xc00003ff) AM_DEVREADWRITE("maincpu", tms34020_device, io_register_r, io_register_w)
AM_RANGE(0xc0c00000, 0xc0c000ff) AM_MIRROR(0x00400000) AM_READWRITE(midtunit_dma_r, midtunit_dma_w)
AM_RANGE(0xf8000000, 0xfeffffff) AM_READ(midwunit_gfxrom_r)
@@ -255,6 +255,7 @@ static MACHINE_CONFIG_START( midxunit, midxunit_state )
/* video hardware */
MCFG_PALETTE_ADD("palette", 32768)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 506, 101, 501, 289, 20, 274)
@@ -344,6 +345,72 @@ ROM_START( revx )
ROM_LOAD( "a-17721.u955", 0x200, 0x117, CRC(033fe902) SHA1(6efb4e519ed3c9d49fff046a679762b506b3a75b) )
ROM_END
+ROM_START( revxp5 )
+ ROM_REGION16_LE( 0x1000000, "dcs", ROMREGION_ERASEFF ) /* sound data */
+ ROM_LOAD16_BYTE( "revx_snd.2", 0x000000, 0x80000, CRC(4ed9e803) SHA1(ba50f1beb9f2a2cf5110897209b5e9a2951ff165) )
+ ROM_LOAD16_BYTE( "revx_snd.3", 0x200000, 0x80000, CRC(af8f253b) SHA1(25a0000cab177378070f7a6e3c7378fe87fad63e) )
+ ROM_LOAD16_BYTE( "revx_snd.4", 0x400000, 0x80000, CRC(3ccce59c) SHA1(e81a31d64c64e7b1d25f178c53da3d68453c203c) )
+ ROM_LOAD16_BYTE( "revx_snd.5", 0x600000, 0x80000, CRC(a0438006) SHA1(560d216d21cb8073dbee0fd20ebe589932a9144e) )
+ ROM_LOAD16_BYTE( "revx_snd.6", 0x800000, 0x80000, CRC(b7b34f60) SHA1(3b9682c6a00fa3bdb47e69d8e8ceccc244ee55b5) )
+ ROM_LOAD16_BYTE( "revx_snd.7", 0xa00000, 0x80000, CRC(6795fd88) SHA1(7c3790730a8b99b63112c851318b1c7e4989e5e0) )
+ ROM_LOAD16_BYTE( "revx_snd.8", 0xc00000, 0x80000, CRC(793a7eb5) SHA1(4b1f81b68f95cedf1b356ef362d1eb37acc74b16) )
+ ROM_LOAD16_BYTE( "revx_snd.9", 0xe00000, 0x80000, CRC(14ddbea1) SHA1(8dba9dc5529ea77c4312ea61f825bf9062ffc6c3) )
+
+ ROM_REGION16_LE( 0x200000, "maincpu", 0 ) /* 34020 code */
+ ROM_LOAD32_BYTE( "revx_p5.51", 0x00000, 0x80000, CRC(f3877eee) SHA1(7a4fdce36edddd35308c107c992ce626a2c9eb8c) )
+ ROM_LOAD32_BYTE( "revx_p5.52", 0x00001, 0x80000, CRC(199a54d8) SHA1(45319437e11176d4926c00c95c372098203a32a3) )
+ ROM_LOAD32_BYTE( "revx_p5.53", 0x00002, 0x80000, CRC(fcfcf72a) SHA1(b471afb416e3d348b046b0b40f497d27b0afa470) )
+ ROM_LOAD32_BYTE( "revx_p5.54", 0x00003, 0x80000, CRC(fd684c31) SHA1(db3453792e4d9fc375297d030f0b3f9cc3cad925) )
+
+ ROM_REGION( 0x2000, "pic", 0 )
+ ROM_LOAD( "revx_16c57.bin", 0x0000000, 0x2000, CRC(eb8a8649) SHA1(a1e1d0b7a5e9802e8f889eb7e719259656dc8133) )
+
+ ROM_REGION( 0x1000000, "gfxrom", 0 )
+ ROM_LOAD32_BYTE( "revx.120", 0x0000000, 0x80000, CRC(523af1f0) SHA1(a67c0fd757e860fc1c1236945952a295b4d5df5a) )
+ ROM_LOAD32_BYTE( "revx.121", 0x0000001, 0x80000, CRC(78201d93) SHA1(fb0b8f887eec433f7624f387d7fb6f633ea30d7c) )
+ ROM_LOAD32_BYTE( "revx.122", 0x0000002, 0x80000, CRC(2cf36144) SHA1(22ed0eefa2c7c836811fac5f717c3f38254eabc2) )
+ ROM_LOAD32_BYTE( "revx.123", 0x0000003, 0x80000, CRC(6912e1fb) SHA1(416f0de711d80e9182ede524c568c5095b1bec61) )
+
+ ROM_LOAD32_BYTE( "revx.110", 0x0200000, 0x80000, CRC(e3f7f0af) SHA1(5877d9f488b0f4362a9482007c3ff7f4589a036f) )
+ ROM_LOAD32_BYTE( "revx.111", 0x0200001, 0x80000, CRC(49fe1a69) SHA1(9ae54b461f0524c034fbcb6fcd3fd5ccb5d7265a) )
+ ROM_LOAD32_BYTE( "revx.112", 0x0200002, 0x80000, CRC(7e3ba175) SHA1(dd2fe90988b544f67dbe6151282fd80d49631388) )
+ ROM_LOAD32_BYTE( "revx.113", 0x0200003, 0x80000, CRC(c0817583) SHA1(2f866e5888e212b245984344950d0e1fb8957a73) )
+
+ ROM_LOAD32_BYTE( "revx.101", 0x0400000, 0x80000, CRC(5a08272a) SHA1(17da3c9d71114f5fdbf50281a942be3da3b6f564) )
+ ROM_LOAD32_BYTE( "revx.102", 0x0400001, 0x80000, CRC(11d567d2) SHA1(7ebe6fd39a0335e1fdda150d2dc86c3eaab17b2e) )
+ ROM_LOAD32_BYTE( "revx.103", 0x0400002, 0x80000, CRC(d338e63b) SHA1(0a038217542667b3a01ecbcad824ee18c084f293) )
+ ROM_LOAD32_BYTE( "revx.104", 0x0400003, 0x80000, CRC(f7b701ee) SHA1(0fc5886e5857326bee7272d5d482a878cbcea83c) )
+
+ ROM_LOAD32_BYTE( "revx.91", 0x0600000, 0x80000, CRC(52a63713) SHA1(dcc0ff3596bd5d273a8d4fd33b0b9b9d588d8354) )
+ ROM_LOAD32_BYTE( "revx.92", 0x0600001, 0x80000, CRC(fae3621b) SHA1(715d41ea789c0c724baa5bd90f6f0f06b9cb1c64) )
+ ROM_LOAD32_BYTE( "revx.93", 0x0600002, 0x80000, CRC(7065cf95) SHA1(6c5888da099e51c4b1c592721c5027c899cf52e3) )
+ ROM_LOAD32_BYTE( "revx.94", 0x0600003, 0x80000, CRC(600d5b98) SHA1(6aef98c91f87390c0759fe71a272a3ccadd71066) )
+
+ ROM_LOAD32_BYTE( "revx.81", 0x0800000, 0x80000, CRC(729eacb1) SHA1(d130162ae22b99c84abfbe014c4e23e20afb757f) )
+ ROM_LOAD32_BYTE( "revx.82", 0x0800001, 0x80000, CRC(19acb904) SHA1(516059b516bc5b1669c9eb085e0cdcdee520dff0) )
+ ROM_LOAD32_BYTE( "revx.83", 0x0800002, 0x80000, CRC(0e223456) SHA1(1eedbd667f4a214533d1c22ca5312ecf2d4a3ab4) )
+ ROM_LOAD32_BYTE( "revx.84", 0x0800003, 0x80000, CRC(d3de0192) SHA1(2d22c5bac07a7411f326691167c7c70eba4b371f) )
+
+ ROM_LOAD32_BYTE( "revx.71", 0x0a00000, 0x80000, CRC(2b29fddb) SHA1(57b71e5c18b56bf58216e690fdefa6d30d88d34a) )
+ ROM_LOAD32_BYTE( "revx.72", 0x0a00001, 0x80000, CRC(2680281b) SHA1(d1ae0701d20166a00d8733d9d12246c140a5fb96) )
+ ROM_LOAD32_BYTE( "revx.73", 0x0a00002, 0x80000, CRC(420bde4d) SHA1(0f010cdeddb59631a5420dddfc142c50c2a1e65a) )
+ ROM_LOAD32_BYTE( "revx.74", 0x0a00003, 0x80000, CRC(26627410) SHA1(a612121554549afff5c8e8c54774ca7b0220eda8) )
+
+ ROM_LOAD32_BYTE( "revx.63", 0x0c00000, 0x80000, CRC(3066e3f3) SHA1(25548923db111bd6c6cff44bfb63cb9eb2ef0b53) )
+ ROM_LOAD32_BYTE( "revx.64", 0x0c00001, 0x80000, CRC(c33f5309) SHA1(6bb333f563ea66c4c862ffd5fb91fb5e1b919fe8) )
+ ROM_LOAD32_BYTE( "revx.65", 0x0c00002, 0x80000, CRC(6eee3e71) SHA1(0ef22732e0e2bb5207559decd43f90d1e338ad7b) )
+ ROM_LOAD32_BYTE( "revx.66", 0x0c00003, 0x80000, CRC(b43d6fff) SHA1(87584e7aeea9d52a43023d40c359591ff6342e84) )
+
+ ROM_LOAD32_BYTE( "revx_p5.51", 0xe00000, 0x80000, CRC(f3877eee) SHA1(7a4fdce36edddd35308c107c992ce626a2c9eb8c) )
+ ROM_LOAD32_BYTE( "revx_p5.52", 0xe00001, 0x80000, CRC(199a54d8) SHA1(45319437e11176d4926c00c95c372098203a32a3) )
+ ROM_LOAD32_BYTE( "revx_p5.53", 0xe00002, 0x80000, CRC(fcfcf72a) SHA1(b471afb416e3d348b046b0b40f497d27b0afa470) )
+ ROM_LOAD32_BYTE( "revx_p5.54", 0xe00003, 0x80000, CRC(fd684c31) SHA1(db3453792e4d9fc375297d030f0b3f9cc3cad925) )
+
+ ROM_REGION( 0x400, "plds", 0 )
+ ROM_LOAD( "a-17722.u1", 0x000, 0x117, CRC(054de7a3) SHA1(bb7abaec50ed704c03b44d5d54296898f7c80d38) )
+ ROM_LOAD( "a-17721.u955", 0x200, 0x117, CRC(033fe902) SHA1(6efb4e519ed3c9d49fff046a679762b506b3a75b) )
+ROM_END
+
/*************************************
@@ -352,4 +419,5 @@ ROM_END
*
*************************************/
-GAME( 1994, revx, 0, midxunit, revx, midxunit_state, revx, ROT0, "Midway", "Revolution X (Rev. 1.0 6/16/94)", GAME_SUPPORTS_SAVE )
+GAME( 1994, revx, 0, midxunit, revx, midxunit_state, revx, ROT0, "Midway", "Revolution X (rev 1.0 6/16/94)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, revxp5, revx, midxunit, revx, midxunit_state, revx, ROT0, "Midway", "Revolution X (prototype, rev 5.0 5/23/94)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/midyunit.c b/src/mame/drivers/midyunit.c
index dcbfe079d4b..5c70e80232e 100644
--- a/src/mame/drivers/midyunit.c
+++ b/src/mame/drivers/midyunit.c
@@ -1219,7 +1219,7 @@ static MACHINE_CONFIG_DERIVED( mkyawdim, yunit_core )
/* basic machine hardware */
- MCFG_CPU_ADD("audiocpu", Z80, 5000000)
+ MCFG_CPU_ADD("audiocpu", Z80, XTAL_8MHz / 2)
MCFG_CPU_PROGRAM_MAP(yawdim_sound_map)
/* video hardware */
@@ -1228,7 +1228,7 @@ static MACHINE_CONFIG_DERIVED( mkyawdim, yunit_core )
MCFG_VIDEO_START_OVERRIDE(midyunit_state,mkyawdim)
/* sound hardware */
- MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified
+ MCFG_OKIM6295_ADD("oki", XTAL_8MHz / 8, OKIM6295_PIN7_HIGH)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
@@ -2561,17 +2561,20 @@ ROM_END
ROM_START( mkyawdim2 )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound CPU */
- // Differs from other yawdim set - sound doesn't want to work
- ROM_LOAD ( "yawdim.u167", 0x00000, 0x10000, CRC(16da7efb) SHA1(ac1db81a55aca36136b94977a91a1fc778b7b164) )
+ // Differs from other mkyawdim set
+ ROM_LOAD ( "yawdim.u167", 0x00000, 0x08000, CRC(16da7efb) SHA1(ac1db81a55aca36136b94977a91a1fc778b7b164) )
+ ROM_CONTINUE( 0x00000, 0x08000 )
ROM_REGION( 0x100000, "oki", 0 ) /* ADPCM */
- // Half size as mkyawdim set
- ROM_LOAD( "yawdim.u159", 0x00000, 0x20000, CRC(95b120af) SHA1(41b6fb384e5048926b87959a2c58d96b95698aba) )
- ROM_CONTINUE( 0x40000, 0x20000 )
+ // Half size as mkyawdim set
+ ROM_LOAD( "yawdim.u159", 0x00000, 0x20000, CRC(95b120af) SHA1(41b6fb384e5048926b87959a2c58d96b95698aba) )
+ ROM_CONTINUE( 0x40000, 0x20000 )
+ ROM_RELOAD( 0x80000, 0x20000 )
+ ROM_CONTINUE( 0xc0000, 0x20000 )
ROM_LOAD( "mw-15.u160", 0x20000, 0x20000, CRC(6e68e0b0) SHA1(edb7aa6507452ffa5ce7097e3b1855a69542971c) )
- ROM_CONTINUE( 0x60000, 0x20000 )
- ROM_CONTINUE( 0xa0000, 0x20000 )
- ROM_CONTINUE( 0xe0000, 0x20000 )
+ ROM_CONTINUE( 0x60000, 0x20000 )
+ ROM_CONTINUE( 0xa0000, 0x20000 )
+ ROM_CONTINUE( 0xe0000, 0x20000 )
ROM_REGION16_LE( 0x100000, "user1", 0 ) /* 34010 code */
ROM_LOAD16_BYTE( "4.u25", 0x00000, 0x80000, CRC(b12b3bf2) SHA1(deb7755e8407d9de25124b3fdbc4c834a25d8252) )
@@ -2595,10 +2598,13 @@ ROM_START( mkyawdim3 )
ROM_REGION( 0x100000, "oki", 0 ) /* ADPCM */
ROM_LOAD( "13.bin", 0x00000, 0x20000, CRC(921c613d) SHA1(be62b87f195b6347112ab13cc14514d4c88a8b86) ) // Half size as mkyawdim2 set and a quarter of mkyawdim
+ ROM_RELOAD( 0x40000, 0x20000 )
+ ROM_RELOAD( 0x80000, 0x20000 )
+ ROM_RELOAD( 0xc0000, 0x20000 )
ROM_LOAD( "14.bin", 0x20000, 0x20000, CRC(6e68e0b0) SHA1(edb7aa6507452ffa5ce7097e3b1855a69542971c) )
- ROM_CONTINUE( 0x60000, 0x20000 )
- ROM_CONTINUE( 0xa0000, 0x20000 )
- ROM_CONTINUE( 0xe0000, 0x20000 )
+ ROM_CONTINUE( 0x60000, 0x20000 )
+ ROM_CONTINUE( 0xa0000, 0x20000 )
+ ROM_CONTINUE( 0xe0000, 0x20000 )
ROM_REGION16_LE( 0x100000, "user1", 0 ) /* 34010 code */
ROM_LOAD16_BYTE( "p1.bin", 0x00000, 0x80000, CRC(2337a0f9) SHA1(d25743e5bb7b4a60f181783d17f217aa0a64536a) ) // differs from other Yawdim sets
@@ -2606,22 +2612,103 @@ ROM_START( mkyawdim3 )
ROM_REGION( 0x800000, "gfx1", 0 )
ROM_LOAD ( "12.bin", 0x000000, 0x80000, CRC(d17096c4) SHA1(01ef390a372c9d94adf138f9543ebb88b89f4c38) )
- ROM_LOAD ( "8.bin", 0x080000, 0x80000, CRC(993bc2e4) SHA1(7791edbec2b4b8971a3e790346dd7564ecf16d5c) )
+ ROM_LOAD ( "8.bin", 0x080000, 0x80000, CRC(993bc2e4) SHA1(7791edbec2b4b8971a3e790346dd7564ecf16d5c) )
ROM_LOAD ( "10.bin", 0x100000, 0x80000, CRC(6fb91ede) SHA1(a3735b49f93b08c44fbc97e2b5aad394628fbe90) )
- ROM_LOAD ( "3.bin", 0x180000, 0x80000, CRC(ed1ff88a) SHA1(6b090b658ee6148af953bd0c9216f37162b6460f) )
+ ROM_LOAD ( "3.bin", 0x180000, 0x80000, CRC(ed1ff88a) SHA1(6b090b658ee6148af953bd0c9216f37162b6460f) )
ROM_LOAD ( "6.bin", 0x200000, 0x80000, CRC(a002a155) SHA1(3cf7909e92bcd428063596fc5b9953e0000d6eca) )
ROM_LOAD ( "1.bin", 0x280000, 0x80000, CRC(dcee8492) SHA1(a912b74d3b26ebd1b1613cc631080f83ececeaf8) )
- ROM_LOAD ( "11.bin", 0x300000, 0x80000, CRC(de88caef) SHA1(a7927b504dc56ca5c9048373977fe5743b0a3f0b) )
+ ROM_LOAD ( "11.bin", 0x300000, 0x80000, CRC(de88caef) SHA1(a7927b504dc56ca5c9048373977fe5743b0a3f0b) )
ROM_LOAD ( "2.bin", 0x380000, 0x80000, CRC(37eb01b4) SHA1(06092460bd137e08d0f8df8560942ed877d40e09) )
- ROM_LOAD ( "4.bin", 0x400000, 0x80000, CRC(45acaf21) SHA1(5edd36c55f4e5d3c74fb85171728ec0a58284b12) )
- ROM_LOAD ( "7.bin", 0x480000, 0x80000, CRC(2a6c10a0) SHA1(cc90923c44f2961b945a0fd0f85ecc2ba04af2cb) )
- ROM_LOAD ( "9.bin", 0x500000, 0x80000, CRC(23308979) SHA1(0b36788624a1cf0d3f4c895be5ba967b8dfcf85e) )
- ROM_LOAD ( "5.bin", 0x580000, 0x80000, CRC(cafc47bb) SHA1(8610af6e52f7089ff4acd850c53ab8b4119e4445) )
+ ROM_LOAD ( "4.bin", 0x400000, 0x80000, CRC(45acaf21) SHA1(5edd36c55f4e5d3c74fb85171728ec0a58284b12) )
+ ROM_LOAD ( "7.bin", 0x480000, 0x80000, CRC(2a6c10a0) SHA1(cc90923c44f2961b945a0fd0f85ecc2ba04af2cb) )
+ ROM_LOAD ( "9.bin", 0x500000, 0x80000, CRC(23308979) SHA1(0b36788624a1cf0d3f4c895be5ba967b8dfcf85e) )
+ ROM_LOAD ( "5.bin", 0x580000, 0x80000, CRC(cafc47bb) SHA1(8610af6e52f7089ff4acd850c53ab8b4119e4445) )
+ROM_END
+
+
+/*************************************************************************
+
+Mortal Kombat bootleg
+
+PCB Layout
+----------
+
+Kombat rev. 2 1c
+|-----------------------------------------------------|
+|TDA2003 LM358 15 TMS34010 19|
+| 16 48MHz 20|
+| 14 8MHz |
+| 6116 21|
+| Z80 M6295 22|
+|J |
+|A 41464 4464 4464 23|
+|M 6264 41464 4464 4464 24|
+|M 17 41464 4464 4464 |
+|A 18 41464 4464 4464 25|
+| DSW2(4) 4464 4464 26|
+| 6264 4464 4464 |
+| DSW1(8) 27|
+| 6264 TPC1020 28|
+| 29|
+| 30|
+|-----------------------------------------------------|
+Notes:
+ Z80 @ 4MHz [8/2]
+ TMS34010 @ 48MHz
+ M6295 @ 1MHz[8/8]. Pin 7 HIGH
+ 41464/4464 - 64kx4-bit DRAM
+ 6264 - 8kx8-bit SRAM
+ 6116 - 2kx8-bit SRAM
+ EPROMS: 14 is 27C512, 15 is 27C010, all others are 27C040
+ 14 - Z80 program
+ 15-16 - Oki samples
+ 17-18 - Main program
+ 19-30 - Graphics
+
+*************************************************************************/
+
+// same as mkyawdim3, but with its own main program roms
+ROM_START( mkyawdim4 )
+ ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound CPU */
+ ROM_LOAD( "14.bin", 0x00000, 0x10000, CRC(b58d229e) SHA1(3ed14ef650dfa7f9d460611b19e9233a022cbea6) )
+
+ ROM_REGION( 0x100000, "oki", 0 ) /* ADPCM */
+ ROM_LOAD( "15.bin", 0x00000, 0x20000, CRC(921c613d) SHA1(be62b87f195b6347112ab13cc14514d4c88a8b86) )
+ ROM_RELOAD( 0x40000, 0x20000 )
+ ROM_RELOAD( 0x80000, 0x20000 )
+ ROM_RELOAD( 0xc0000, 0x20000 )
+ ROM_LOAD( "16.bin", 0x20000, 0x20000, CRC(6e68e0b0) SHA1(edb7aa6507452ffa5ce7097e3b1855a69542971c) )
+ ROM_CONTINUE( 0x60000, 0x20000 )
+ ROM_CONTINUE( 0xa0000, 0x20000 )
+ ROM_CONTINUE( 0xe0000, 0x20000 )
+
+ ROM_REGION16_LE( 0x100000, "user1", 0 ) /* 34010 code */
+ ROM_LOAD16_BYTE( "17.bin", 0x00000, 0x80000, CRC(671b533d) SHA1(20859ceb0635126047216f85a6e35072e14766ad) )
+ ROM_LOAD16_BYTE( "18.bin", 0x00001, 0x80000, CRC(4e857747) SHA1(b94c7d5e4356ac6890e6bfaf75c76d94408e5bc5) )
+// ROM_LOAD16_BYTE( "17.bin", 0x00000, 0x80000, CRC(b12b3bf2) SHA1(deb7755e8407d9de25124b3fdbc4c834a25d8252) ) // other PCB: mkyawdim3 with mkyawdim main program
+// ROM_LOAD16_BYTE( "18.bin", 0x00001, 0x80000, CRC(7a37dc5c) SHA1(c4fc6933d8b990c5c56c65282b1f72b90b5d5435) )
+
+ ROM_REGION( 0x800000, "gfx1", 0 )
+ ROM_LOAD( "22.bin", 0x000000, 0x80000, CRC(d17096c4) SHA1(01ef390a372c9d94adf138f9543ebb88b89f4c38) )
+ ROM_LOAD( "21.bin", 0x080000, 0x80000, CRC(993bc2e4) SHA1(7791edbec2b4b8971a3e790346dd7564ecf16d5c) )
+ ROM_LOAD( "20.bin", 0x100000, 0x80000, CRC(6fb91ede) SHA1(a3735b49f93b08c44fbc97e2b5aad394628fbe90) )
+ ROM_LOAD( "19.bin", 0x180000, 0x80000, CRC(ed1ff88a) SHA1(6b090b658ee6148af953bd0c9216f37162b6460f) )
+
+ ROM_LOAD( "26.bin", 0x200000, 0x80000, CRC(a002a155) SHA1(3cf7909e92bcd428063596fc5b9953e0000d6eca) )
+ ROM_LOAD( "25.bin", 0x280000, 0x80000, CRC(dcee8492) SHA1(a912b74d3b26ebd1b1613cc631080f83ececeaf8) )
+ ROM_LOAD( "24.bin", 0x300000, 0x80000, CRC(de88caef) SHA1(a7927b504dc56ca5c9048373977fe5743b0a3f0b) )
+ ROM_LOAD( "23.bin", 0x380000, 0x80000, CRC(37eb01b4) SHA1(06092460bd137e08d0f8df8560942ed877d40e09) )
+
+ ROM_LOAD( "30.bin", 0x400000, 0x80000, CRC(45acaf21) SHA1(5edd36c55f4e5d3c74fb85171728ec0a58284b12) )
+ ROM_LOAD( "29.bin", 0x480000, 0x80000, CRC(2a6c10a0) SHA1(cc90923c44f2961b945a0fd0f85ecc2ba04af2cb) )
+ ROM_LOAD( "28.bin", 0x500000, 0x80000, CRC(23308979) SHA1(0b36788624a1cf0d3f4c895be5ba967b8dfcf85e) )
+ ROM_LOAD( "27.bin", 0x580000, 0x80000, CRC(cafc47bb) SHA1(8610af6e52f7089ff4acd850c53ab8b4119e4445) )
ROM_END
+
ROM_START( term2 )
ROM_REGION( 0x50000, "adpcm:cpu", 0 ) /* sound CPU */
ROM_LOAD ( "t2_snd.3", 0x10000, 0x20000, CRC(73c3f5c4) SHA1(978dd974590e77294dbe9a647aebd3d24af6397f) )
@@ -2827,55 +2914,56 @@ ROM_END
*
*************************************/
-GAME( 1988, narc, 0, zunit, narc, midyunit_state, narc, ROT0, "Williams", "Narc (rev 7.00)", GAME_SUPPORTS_SAVE )
-GAME( 1988, narc3, narc, zunit, narc, midyunit_state, narc, ROT0, "Williams", "Narc (rev 3.20)", GAME_SUPPORTS_SAVE )
-GAME( 1988, narc2, narc, zunit, narc, midyunit_state, narc, ROT0, "Williams", "Narc (rev 2.00)", GAME_SUPPORTS_SAVE )
-
-GAME( 1990, trog, 0, yunit_cvsd_4bit_slow, trog, midyunit_state, trog, ROT0, "Midway", "Trog (rev LA5 03/29/91)", GAME_SUPPORTS_SAVE )
-GAME( 1990, trog4, trog, yunit_cvsd_4bit_slow, trog, midyunit_state, trog, ROT0, "Midway", "Trog (rev LA4 03/11/91)", GAME_SUPPORTS_SAVE )
-GAME( 1990, trog3, trog, yunit_cvsd_4bit_slow, trog, midyunit_state, trog, ROT0, "Midway", "Trog (rev LA3 02/14/91)", GAME_SUPPORTS_SAVE )
-GAME( 1990, trogpa6, trog, yunit_cvsd_4bit_slow, trog, midyunit_state, trog, ROT0, "Midway", "Trog (prototype, rev PA6-PAC 09/09/90)", GAME_SUPPORTS_SAVE )
-GAME( 1990, trogpa4, trog, yunit_cvsd_4bit_slow, trog, midyunit_state, trog, ROT0, "Midway", "Trog (prototype, rev 4.00 07/27/90)", GAME_SUPPORTS_SAVE )
-
-GAME( 1990, smashtv, 0, yunit_cvsd_6bit_slow, smashtv, midyunit_state, smashtv, ROT0, "Williams", "Smash T.V. (rev 8.00)", GAME_SUPPORTS_SAVE )
-GAME( 1990, smashtv6, smashtv, yunit_cvsd_6bit_slow, smashtv, midyunit_state, smashtv, ROT0, "Williams", "Smash T.V. (rev 6.00)", GAME_SUPPORTS_SAVE )
-GAME( 1990, smashtv5, smashtv, yunit_cvsd_6bit_slow, smashtv, midyunit_state, smashtv, ROT0, "Williams", "Smash T.V. (rev 5.00)", GAME_SUPPORTS_SAVE )
-GAME( 1990, smashtv4, smashtv, yunit_cvsd_6bit_slow, smashtv, midyunit_state, smashtv, ROT0, "Williams", "Smash T.V. (rev 4.00)", GAME_SUPPORTS_SAVE )
-GAME( 1990, smashtv3, smashtv, yunit_cvsd_6bit_slow, smashtv, midyunit_state, smashtv, ROT0, "Williams", "Smash T.V. (rev 3.01)", GAME_SUPPORTS_SAVE )
-
-GAME( 1990, hiimpact, 0, yunit_cvsd_6bit_slow, hiimpact, midyunit_state, hiimpact, ROT0, "Williams", "High Impact Football (rev LA5 02/15/91)", GAME_SUPPORTS_SAVE )
-GAME( 1990, hiimpact4, hiimpact, yunit_cvsd_6bit_slow, hiimpact, midyunit_state, hiimpact, ROT0, "Williams", "High Impact Football (rev LA4 02/04/91)", GAME_SUPPORTS_SAVE )
-GAME( 1990, hiimpact3, hiimpact, yunit_cvsd_6bit_slow, hiimpact, midyunit_state, hiimpact, ROT0, "Williams", "High Impact Football (rev LA3 12/27/90)", GAME_SUPPORTS_SAVE )
-GAME( 1990, hiimpact2, hiimpact, yunit_cvsd_6bit_slow, hiimpact, midyunit_state, hiimpact, ROT0, "Williams", "High Impact Football (rev LA2 12/26/90)", GAME_SUPPORTS_SAVE )
-GAME( 1990, hiimpact1, hiimpact, yunit_cvsd_6bit_slow, hiimpact, midyunit_state, hiimpact, ROT0, "Williams", "High Impact Football (rev LA1 12/16/90)", GAME_SUPPORTS_SAVE )
-GAME( 1990, hiimpactp, hiimpact, yunit_cvsd_6bit_slow, hiimpact, midyunit_state, hiimpact, ROT0, "Williams", "High Impact Football (prototype, rev 8.6 12/09/90)", GAME_SUPPORTS_SAVE )
-
-GAME( 1991, shimpact, 0, yunit_cvsd_6bit_slow, shimpact, midyunit_state, shimpact, ROT0, "Midway", "Super High Impact (rev LA1 09/30/91)", GAME_SUPPORTS_SAVE )
-GAME( 1991, shimpactp6, shimpact, yunit_cvsd_6bit_slow, shimpact, midyunit_state, shimpact, ROT0, "Midway", "Super High Impact (prototype, rev 6.0 09/23/91)", GAME_SUPPORTS_SAVE )
-GAME( 1991, shimpactp5, shimpact, yunit_cvsd_6bit_slow, shimpact, midyunit_state, shimpact, ROT0, "Midway", "Super High Impact (prototype, rev 5.0 09/15/91)", GAME_SUPPORTS_SAVE )
-GAME( 1991, shimpactp4, shimpact, yunit_cvsd_6bit_slow, shimpact, midyunit_state, shimpact, ROT0, "Midway", "Super High Impact (prototype, rev 4.0 09/10/91)", GAME_SUPPORTS_SAVE ) /* See notes about factory restore above */
-
-GAME( 1991, strkforc, 0, yunit_cvsd_4bit_fast, strkforc, midyunit_state, strkforc, ROT0, "Midway", "Strike Force (rev 1 02/25/91)", GAME_SUPPORTS_SAVE )
-
-GAME( 1991, term2, 0, yunit_adpcm_6bit_faster, term2, midyunit_state, term2, ORIENTATION_FLIP_X, "Midway", "Terminator 2 - Judgment Day (rev LA4 08/03/92)", GAME_SUPPORTS_SAVE )
-GAME( 1991, term2la3, term2, yunit_adpcm_6bit_faster, term2, midyunit_state, term2la3, ORIENTATION_FLIP_X, "Midway", "Terminator 2 - Judgment Day (rev LA3 03/27/92)", GAME_SUPPORTS_SAVE )
-GAME( 1991, term2la2, term2, yunit_adpcm_6bit_faster, term2, midyunit_state, term2la2, ORIENTATION_FLIP_X, "Midway", "Terminator 2 - Judgment Day (rev LA2 12/09/91)", GAME_SUPPORTS_SAVE )
-GAME( 1991, term2la1, term2, yunit_adpcm_6bit_faster, term2, midyunit_state, term2la1, ORIENTATION_FLIP_X, "Midway", "Terminator 2 - Judgment Day (rev LA1 11/01/91)", GAME_SUPPORTS_SAVE )
-
-GAME( 1992, mkla4, mk, yunit_adpcm_6bit_fast, mkla4, midyunit_state, mkyunit, ROT0, "Midway", "Mortal Kombat (rev 4.0 09/28/92)", GAME_SUPPORTS_SAVE )
-GAME( 1992, mkla3, mk, yunit_adpcm_6bit_fast, mkla4, midyunit_state, mkyunit, ROT0, "Midway", "Mortal Kombat (rev 3.0 08/31/92)", GAME_SUPPORTS_SAVE )
-GAME( 1992, mkla2, mk, yunit_adpcm_6bit_fast, mkla2, midyunit_state, mkyunit, ROT0, "Midway", "Mortal Kombat (rev 2.0 08/18/92)", GAME_SUPPORTS_SAVE )
-GAME( 1992, mkla1, mk, yunit_adpcm_6bit_fast, mkla2, midyunit_state, mkyunit, ROT0, "Midway", "Mortal Kombat (rev 1.0 08/09/92)", GAME_SUPPORTS_SAVE )
-GAME( 1992, mkprot9, mk, yunit_adpcm_6bit_faster, mkla2, midyunit_state, mkyunit, ROT0, "Midway", "Mortal Kombat (prototype, rev 9.0 07/28/92)", GAME_SUPPORTS_SAVE )
-GAME( 1992, mkprot8, mk, yunit_adpcm_6bit_faster, mkla2, midyunit_state, mkyunit, ROT0, "Midway", "Mortal Kombat (prototype, rev 8.0 07/21/92)", GAME_SUPPORTS_SAVE )
-GAME( 1992, mkprot4, mk, yunit_adpcm_6bit_faster, mkla2, midyunit_state, mkyunit, ROT0, "Midway", "Mortal Kombat (prototype, rev 4.0 07/14/92)", GAME_SUPPORTS_SAVE )
-GAME( 1992, mkyturbo, mk, yunit_adpcm_6bit_fast, mkla4, midyunit_state, mkyturbo, ROT0, "hack", "Mortal Kombat (Turbo 3.1 09/09/93, hack)", GAME_SUPPORTS_SAVE )
-GAME( 1992, mkyturboe,mk, yunit_adpcm_6bit_fast, mkla4, midyunit_state, mkyturbo, ROT0, "hack", "Mortal Kombat (Turbo 3.0 08/31/92, hack)", GAME_SUPPORTS_SAVE )
-GAME( 1992, mknifty, mk, yunit_adpcm_6bit_fast, mkla4, midyunit_state, mkyturbo, ROT0, "hack", "Mortal Kombat (Nifty Kombo, hack)", GAME_SUPPORTS_SAVE )
-GAME( 1992, mknifty666, mk, yunit_adpcm_6bit_fast, mkla4, midyunit_state, mkyturbo, ROT0, "hack", "Mortal Kombat (Nifty Kombo 666, hack)", GAME_SUPPORTS_SAVE )
-GAME( 1992, mkyawdim, mk, mkyawdim, mkyawdim, midyunit_state, mkyawdim, ROT0, "bootleg (Yawdim)", "Mortal Kombat (Yawdim bootleg, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1992, mkyawdim2,mk, mkyawdim, mkyawdim, midyunit_state, mkyawdim, ROT0, "bootleg (Yawdim)", "Mortal Kombat (Yawdim bootleg, set 2)", GAME_SUPPORTS_SAVE | GAME_NO_SOUND )
-GAME( 1992, mkyawdim3, mk, mkyawdim, mkyawdim, midyunit_state, mkyawdim, ROT0, "bootleg (Yawdim)", "Mortal Kombat (Yawdim bootleg, set 3)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND) //some sound effects aren't reproduced
-
-GAME( 1992, totcarn, 0, yunit_adpcm_6bit_fast, totcarn, midyunit_state, totcarn, ROT0, "Midway", "Total Carnage (rev LA1 03/10/92)", GAME_SUPPORTS_SAVE )
-GAME( 1992, totcarnp, totcarn, yunit_adpcm_6bit_fast, totcarn, midyunit_state, totcarn, ROT0, "Midway", "Total Carnage (prototype, rev 1.0 01/25/92)", GAME_SUPPORTS_SAVE )
+GAME( 1988, narc, 0, zunit, narc, midyunit_state, narc, ROT0, "Williams", "Narc (rev 7.00)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, narc3, narc, zunit, narc, midyunit_state, narc, ROT0, "Williams", "Narc (rev 3.20)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, narc2, narc, zunit, narc, midyunit_state, narc, ROT0, "Williams", "Narc (rev 2.00)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1990, trog, 0, yunit_cvsd_4bit_slow, trog, midyunit_state, trog, ROT0, "Midway", "Trog (rev LA5 03/29/91)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, trog4, trog, yunit_cvsd_4bit_slow, trog, midyunit_state, trog, ROT0, "Midway", "Trog (rev LA4 03/11/91)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, trog3, trog, yunit_cvsd_4bit_slow, trog, midyunit_state, trog, ROT0, "Midway", "Trog (rev LA3 02/14/91)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, trogpa6, trog, yunit_cvsd_4bit_slow, trog, midyunit_state, trog, ROT0, "Midway", "Trog (prototype, rev PA6-PAC 09/09/90)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, trogpa4, trog, yunit_cvsd_4bit_slow, trog, midyunit_state, trog, ROT0, "Midway", "Trog (prototype, rev 4.00 07/27/90)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1990, smashtv, 0, yunit_cvsd_6bit_slow, smashtv, midyunit_state, smashtv, ROT0, "Williams", "Smash T.V. (rev 8.00)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, smashtv6, smashtv, yunit_cvsd_6bit_slow, smashtv, midyunit_state, smashtv, ROT0, "Williams", "Smash T.V. (rev 6.00)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, smashtv5, smashtv, yunit_cvsd_6bit_slow, smashtv, midyunit_state, smashtv, ROT0, "Williams", "Smash T.V. (rev 5.00)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, smashtv4, smashtv, yunit_cvsd_6bit_slow, smashtv, midyunit_state, smashtv, ROT0, "Williams", "Smash T.V. (rev 4.00)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, smashtv3, smashtv, yunit_cvsd_6bit_slow, smashtv, midyunit_state, smashtv, ROT0, "Williams", "Smash T.V. (rev 3.01)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1990, hiimpact, 0, yunit_cvsd_6bit_slow, hiimpact, midyunit_state, hiimpact, ROT0, "Williams", "High Impact Football (rev LA5 02/15/91)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, hiimpact4, hiimpact, yunit_cvsd_6bit_slow, hiimpact, midyunit_state, hiimpact, ROT0, "Williams", "High Impact Football (rev LA4 02/04/91)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, hiimpact3, hiimpact, yunit_cvsd_6bit_slow, hiimpact, midyunit_state, hiimpact, ROT0, "Williams", "High Impact Football (rev LA3 12/27/90)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, hiimpact2, hiimpact, yunit_cvsd_6bit_slow, hiimpact, midyunit_state, hiimpact, ROT0, "Williams", "High Impact Football (rev LA2 12/26/90)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, hiimpact1, hiimpact, yunit_cvsd_6bit_slow, hiimpact, midyunit_state, hiimpact, ROT0, "Williams", "High Impact Football (rev LA1 12/16/90)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, hiimpactp, hiimpact, yunit_cvsd_6bit_slow, hiimpact, midyunit_state, hiimpact, ROT0, "Williams", "High Impact Football (prototype, rev 8.6 12/09/90)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1991, shimpact, 0, yunit_cvsd_6bit_slow, shimpact, midyunit_state, shimpact, ROT0, "Midway", "Super High Impact (rev LA1 09/30/91)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, shimpactp6, shimpact, yunit_cvsd_6bit_slow, shimpact, midyunit_state, shimpact, ROT0, "Midway", "Super High Impact (prototype, rev 6.0 09/23/91)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, shimpactp5, shimpact, yunit_cvsd_6bit_slow, shimpact, midyunit_state, shimpact, ROT0, "Midway", "Super High Impact (prototype, rev 5.0 09/15/91)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, shimpactp4, shimpact, yunit_cvsd_6bit_slow, shimpact, midyunit_state, shimpact, ROT0, "Midway", "Super High Impact (prototype, rev 4.0 09/10/91)", MACHINE_SUPPORTS_SAVE ) /* See notes about factory restore above */
+
+GAME( 1991, strkforc, 0, yunit_cvsd_4bit_fast, strkforc, midyunit_state, strkforc, ROT0, "Midway", "Strike Force (rev 1 02/25/91)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1991, term2, 0, yunit_adpcm_6bit_faster, term2, midyunit_state, term2, ORIENTATION_FLIP_X, "Midway", "Terminator 2 - Judgment Day (rev LA4 08/03/92)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, term2la3, term2, yunit_adpcm_6bit_faster, term2, midyunit_state, term2la3, ORIENTATION_FLIP_X, "Midway", "Terminator 2 - Judgment Day (rev LA3 03/27/92)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, term2la2, term2, yunit_adpcm_6bit_faster, term2, midyunit_state, term2la2, ORIENTATION_FLIP_X, "Midway", "Terminator 2 - Judgment Day (rev LA2 12/09/91)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, term2la1, term2, yunit_adpcm_6bit_faster, term2, midyunit_state, term2la1, ORIENTATION_FLIP_X, "Midway", "Terminator 2 - Judgment Day (rev LA1 11/01/91)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1992, mkla4, mk, yunit_adpcm_6bit_fast, mkla4, midyunit_state, mkyunit, ROT0, "Midway", "Mortal Kombat (rev 4.0 09/28/92)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, mkla3, mk, yunit_adpcm_6bit_fast, mkla4, midyunit_state, mkyunit, ROT0, "Midway", "Mortal Kombat (rev 3.0 08/31/92)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, mkla2, mk, yunit_adpcm_6bit_fast, mkla2, midyunit_state, mkyunit, ROT0, "Midway", "Mortal Kombat (rev 2.0 08/18/92)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, mkla1, mk, yunit_adpcm_6bit_fast, mkla2, midyunit_state, mkyunit, ROT0, "Midway", "Mortal Kombat (rev 1.0 08/09/92)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, mkprot9, mk, yunit_adpcm_6bit_faster, mkla2, midyunit_state, mkyunit, ROT0, "Midway", "Mortal Kombat (prototype, rev 9.0 07/28/92)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, mkprot8, mk, yunit_adpcm_6bit_faster, mkla2, midyunit_state, mkyunit, ROT0, "Midway", "Mortal Kombat (prototype, rev 8.0 07/21/92)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, mkprot4, mk, yunit_adpcm_6bit_faster, mkla2, midyunit_state, mkyunit, ROT0, "Midway", "Mortal Kombat (prototype, rev 4.0 07/14/92)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, mkyturbo, mk, yunit_adpcm_6bit_fast, mkla4, midyunit_state, mkyturbo, ROT0, "hack", "Mortal Kombat (Turbo 3.1 09/09/93, hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, mkyturboe,mk, yunit_adpcm_6bit_fast, mkla4, midyunit_state, mkyturbo, ROT0, "hack", "Mortal Kombat (Turbo 3.0 08/31/92, hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, mknifty, mk, yunit_adpcm_6bit_fast, mkla4, midyunit_state, mkyturbo, ROT0, "hack", "Mortal Kombat (Nifty Kombo, hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, mknifty666, mk, yunit_adpcm_6bit_fast, mkla4, midyunit_state, mkyturbo, ROT0, "hack", "Mortal Kombat (Nifty Kombo 666, hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, mkyawdim, mk, mkyawdim, mkyawdim, midyunit_state, mkyawdim, ROT0, "bootleg (Yawdim)", "Mortal Kombat (Yawdim bootleg, set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, mkyawdim2,mk, mkyawdim, mkyawdim, midyunit_state, mkyawdim, ROT0, "bootleg (Yawdim)", "Mortal Kombat (Yawdim bootleg, set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND) // are some sound effects missing/wrong?
+GAME( 1992, mkyawdim3,mk, mkyawdim, mkyawdim, midyunit_state, mkyawdim, ROT0, "bootleg (Yawdim)", "Mortal Kombat (Yawdim bootleg, set 3)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND) // are some sound effects missing/wrong?
+GAME( 1992, mkyawdim4,mk, mkyawdim, mkyawdim, midyunit_state, mkyawdim, ROT0, "bootleg (Yawdim)", "Mortal Kombat (Yawdim bootleg, set 4)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND) // are some sound effects missing/wrong?
+
+GAME( 1992, totcarn, 0, yunit_adpcm_6bit_fast, totcarn, midyunit_state, totcarn, ROT0, "Midway", "Total Carnage (rev LA1 03/10/92)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, totcarnp, totcarn, yunit_adpcm_6bit_fast, totcarn, midyunit_state, totcarn, ROT0, "Midway", "Total Carnage (prototype, rev 1.0 01/25/92)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/midzeus.c b/src/mame/drivers/midzeus.c
index 7468267c2dd..f221468faae 100644
--- a/src/mame/drivers/midzeus.c
+++ b/src/mame/drivers/midzeus.c
@@ -1521,16 +1521,16 @@ DRIVER_INIT_MEMBER(midzeus_state,thegrid)
*
*************************************/
-GAME( 1997, mk4, 0, mk4, mk4, midzeus_state, mk4, ROT0, "Midway", "Mortal Kombat 4 (version 3.0)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1997, mk4a, mk4, mk4, mk4, midzeus_state, mk4, ROT0, "Midway", "Mortal Kombat 4 (version 2.1)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1997, mk4b, mk4, mk4, mk4, midzeus_state, mk4, ROT0, "Midway", "Mortal Kombat 4 (version 1.0)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1999, invasnab, 0, invasn, invasn, midzeus_state, invasn, ROT0, "Midway", "Invasion - The Abductors (version 5.0)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1999, invasnab4,invasnab, invasn, invasn, midzeus_state, invasn, ROT0, "Midway", "Invasion - The Abductors (version 4.0)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1999, invasnab3,invasnab, invasn, invasn, midzeus_state, invasn, ROT0, "Midway", "Invasion - The Abductors (version 3.0)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAMEL( 1999, crusnexo, 0, crusnexo, crusnexo, midzeus_state, crusnexo, ROT0, "Midway", "Cruis'n Exotica (version 2.4)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE, layout_crusnexo )
-GAMEL( 1999, crusnexoa,crusnexo, crusnexo, crusnexo, midzeus_state, crusnexo, ROT0, "Midway", "Cruis'n Exotica (version 2.0)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE, layout_crusnexo )
-GAMEL( 1999, crusnexob,crusnexo, crusnexo, crusnexo, midzeus_state, crusnexo, ROT0, "Midway", "Cruis'n Exotica (version 1.6)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE, layout_crusnexo )
-GAMEL( 1999, crusnexoc,crusnexo, crusnexo, crusnexo, midzeus_state, crusnexo, ROT0, "Midway", "Cruis'n Exotica (version 1.3)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE, layout_crusnexo )
-GAMEL( 1999, crusnexod,crusnexo, crusnexo, crusnexo, midzeus_state, crusnexo, ROT0, "Midway", "Cruis'n Exotica (version 1.0)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE, layout_crusnexo )
-GAME( 2001, thegrid, 0, thegrid, thegrid, midzeus_state, thegrid, ROT0, "Midway", "The Grid (version 1.2)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 2001, thegrida, thegrid, thegrid, thegrid, midzeus_state, thegrid, ROT0, "Midway", "The Grid (version 1.1)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_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, 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 )
diff --git a/src/mame/drivers/mikie.c b/src/mame/drivers/mikie.c
index e74366b44c3..a5cf578d288 100644
--- a/src/mame/drivers/mikie.c
+++ b/src/mame/drivers/mikie.c
@@ -373,6 +373,6 @@ ROM_END
*
*************************************/
-GAME( 1984, mikie, 0, mikie, mikie, driver_device, 0, ROT270, "Konami", "Mikie", GAME_SUPPORTS_SAVE )
-GAME( 1984, mikiej, mikie, mikie, mikie, driver_device, 0, ROT270, "Konami", "Shinnyuushain Tooru-kun", GAME_SUPPORTS_SAVE )
-GAME( 1984, mikiehs, mikie, mikie, mikie, driver_device, 0, ROT270, "Konami", "Mikie (High School Graffiti)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/mikro80.c b/src/mame/drivers/mikro80.c
index 178be26ce25..178be26ce25 100644
--- a/src/mess/drivers/mikro80.c
+++ b/src/mame/drivers/mikro80.c
diff --git a/src/mess/drivers/mikromik.c b/src/mame/drivers/mikromik.c
index 3442c42ffa3..a0f9ed54b8f 100644
--- a/src/mess/drivers/mikromik.c
+++ b/src/mame/drivers/mikromik.c
@@ -491,7 +491,9 @@ static MACHINE_CONFIG_START( mm1, mm1_state )
MCFG_UPD765_INTRQ_CALLBACK(INPUTLINE(I8085A_TAG, I8085_RST55_LINE))
MCFG_UPD765_DRQ_CALLBACK(DEVWRITELINE(I8237_TAG, am9517a_device, dreq3_w))
MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":0", mm1_floppies, "525qd", mm1_state::floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":1", mm1_floppies, "525qd", mm1_state::floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_UPD7201_ADD(UPD7201_TAG, XTAL_6_144MHz/2, 0, 0, 0, 0)
MCFG_Z80DART_OUT_TXDA_CB(DEVWRITELINE(RS232_A_TAG, rs232_port_device, write_txd))
@@ -574,5 +576,5 @@ ROM_END
//**************************************************************************
// 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", GAME_SUPPORTS_SAVE )
-COMP( 1981, mm1m7, mm1m6, 0, mm1m7, mm1, driver_device, 0, "Nokia Data", "MikroMikko 1 M7", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/mikrosha.c b/src/mame/drivers/mikrosha.c
index 8320400b4de..8320400b4de 100644
--- a/src/mess/drivers/mikrosha.c
+++ b/src/mame/drivers/mikrosha.c
diff --git a/src/mame/drivers/mil4000.c b/src/mame/drivers/mil4000.c
index 81ed6b0b0e6..af06b09ee93 100644
--- a/src/mame/drivers/mil4000.c
+++ b/src/mame/drivers/mil4000.c
@@ -751,4 +751,4 @@ GAMEL( 2000, mil4000a, mil4000, mil4000, mil4000, driver_device, 0, ROT0,
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)", GAME_UNEMULATED_PROTECTION, layout_mil4000 )
+GAMEL( 200?, chewheel, 0, chewheel, mil4000, driver_device, 0, ROT0, "Assogiochi Assago", "Cherry Wheel (Version 1.7)", MACHINE_UNEMULATED_PROTECTION, layout_mil4000 )
diff --git a/src/mess/drivers/mini2440.c b/src/mame/drivers/mini2440.c
index c9402e57a9c..c9402e57a9c 100644
--- a/src/mess/drivers/mini2440.c
+++ b/src/mame/drivers/mini2440.c
diff --git a/src/mame/drivers/miniboy7.c b/src/mame/drivers/miniboy7.c
index 2cf932e7e1e..d8d6d3a9abc 100644
--- a/src/mame/drivers/miniboy7.c
+++ b/src/mame/drivers/miniboy7.c
@@ -622,5 +622,5 @@ ROM_END
***********************************/
// 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)", GAME_NO_COCKTAIL, layout_miniboy7 )
-GAMEL( 1983, miniboy7a, miniboy7, miniboy7, miniboy7, driver_device, 0, ROT0, "Bonanza Enterprises, Ltd", "Mini-Boy 7 (set 2)", GAME_NO_COCKTAIL, layout_miniboy7 )
+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 )
diff --git a/src/mess/drivers/minicom.c b/src/mame/drivers/minicom.c
index 5667e29fdcd..f5ac1f0aed4 100644
--- a/src/mess/drivers/minicom.c
+++ b/src/mame/drivers/minicom.c
@@ -250,5 +250,5 @@ ROM_START( mcom4_02 )
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)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_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)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND) /* fw release data: 19th Apr 2002 */
+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/minivadr.c b/src/mame/drivers/minivadr.c
index 924e5958fff..6d847f5468f 100644
--- a/src/mame/drivers/minivadr.c
+++ b/src/mame/drivers/minivadr.c
@@ -10,6 +10,28 @@ Driver by Takahiro Nogi (nogi@kt.rim.or.jp) 1999/12/19 -
This is a test board sold together with the cabinet (as required by law in
Japan). It has no sound.
+PCB Layout
+----------
+
+K11X0622A
+MINI VADERS
+|-------------------------|
+|MB3771 24MHz |
+|LS32 74F74 |
+|LS139 |
+|D26_01.IC7 LS244 J|
+|Z80 LS244 A|
+|LS86 LS08 LS373 M|
+|LS157 LS157 LS161 LS161 M|
+|LS157 LS157 LS161 LS161 A|
+|6116 LS157 LS08 |
+|LS74 LS74 LS74 LS157 |
+|-------------------------|
+Notes: (all ICs shown)
+ Z80 - Clock 4MHz [24/6]
+ 6116 - 2Kbx8 SRAM
+ D26_01.IC7 - 27C64 8Kbx8 EPROM
+
***************************************************************************/
#include "emu.h"
@@ -113,4 +135,4 @@ ROM_START( minivadr )
ROM_END
-GAME( 1990, minivadr, 0, minivadr, minivadr, driver_device, 0, ROT0, "Taito Corporation", "Mini Vaders", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
+GAME( 1990, minivadr, 0, minivadr, minivadr, driver_device, 0, ROT0, "Taito Corporation", "Mini Vaders", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW )
diff --git a/src/mame/drivers/mirage.c b/src/mame/drivers/mirage.c
index ded88b06c0d..caaccf62c47 100644
--- a/src/mame/drivers/mirage.c
+++ b/src/mame/drivers/mirage.c
@@ -72,7 +72,7 @@ public:
required_shared_ptr<UINT16> m_pf1_rowscroll;
required_shared_ptr<UINT16> m_pf2_rowscroll;
optional_device<decospr_device> m_sprgen;
-// UINT16 * m_paletteram; // currently this uses generic palette handling (in decocomn.c)
+
DECLARE_WRITE16_MEMBER(mirage_mux_w);
DECLARE_READ16_MEMBER(mirage_input_r);
DECLARE_WRITE16_MEMBER(okim1_rombank_w);
@@ -390,4 +390,4 @@ DRIVER_INIT_MEMBER(miragemi_state,mirage)
deco56_decrypt_gfx(machine(), "gfx1");
}
-GAME( 1994, mirage, 0, mirage, mirage, miragemi_state, mirage, ROT0, "Mitchell", "Mirage Youjuu Mahjongden (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1994, mirage, 0, mirage, mirage, miragemi_state, mirage, ROT0, "Mitchell", "Mirage Youjuu Mahjongden (Japan)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/mirax.c b/src/mame/drivers/mirax.c
index 177ea613a96..2bbeb94fdb7 100644
--- a/src/mame/drivers/mirax.c
+++ b/src/mame/drivers/mirax.c
@@ -580,5 +580,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)", GAME_SUPPORTS_SAVE )
-GAME( 1985, miraxa, mirax, mirax, miraxa, mirax_state, mirax, ROT90, "Current Technologies", "Mirax (set 2)", GAME_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.c b/src/mame/drivers/missb2.c
index d0a3ad1be18..93abb480bbc 100644
--- a/src/mame/drivers/missb2.c
+++ b/src/mame/drivers/missb2.c
@@ -575,5 +575,5 @@ DRIVER_INIT_MEMBER(missb2_state,missb2)
/* Game Drivers */
-GAME( 1996, missb2, 0, missb2, missb2, missb2_state, missb2, ROT0, "Alpha Co.", "Miss Bubble II", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1996, bublpong, missb2, bublpong, missb2, missb2_state, missb2, ROT0, "Top Ltd.", "Bubble Pong Pong", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/missile.c b/src/mame/drivers/missile.c
index 9184bcfb5e7..f3cfe2b05f6 100644
--- a/src/mame/drivers/missile.c
+++ b/src/mame/drivers/missile.c
@@ -1307,14 +1307,14 @@ DRIVER_INIT_MEMBER(missile_state,missilem)
*
*************************************/
-GAME( 1980, missile, 0, missile, missile, driver_device, 0, ROT0, "Atari", "Missile Command (rev 3)", GAME_SUPPORTS_SAVE )
-GAME( 1980, missile2, missile, missile, missile, driver_device, 0, ROT0, "Atari", "Missile Command (rev 2)", GAME_SUPPORTS_SAVE )
-GAME( 1980, missile1, missile, missile, missile, driver_device, 0, ROT0, "Atari", "Missile Command (rev 1)", GAME_SUPPORTS_SAVE )
-GAME( 1981, suprmatk, missile, missile, suprmatk, missile_state, suprmatk, ROT0, "Atari / General Computer Corporation", "Super Missile Attack (for rev 1)", GAME_SUPPORTS_SAVE )
-GAME( 1981, suprmatkd,missile, missile, suprmatk, driver_device, 0, ROT0, "Atari / General Computer Corporation", "Super Missile Attack (not encrypted)", GAME_SUPPORTS_SAVE )
+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( 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 )
/* the bootlegs are on different hardware and don't work */
-GAME( 1980, mcombat, missile, missile, missile, driver_device, 0, ROT0, "bootleg (Videotron)", "Missile Combat (Videotron bootleg, set 1)", GAME_NOT_WORKING )
-GAME( 1980, mcombata, missile, missile, missile, driver_device, 0, ROT0, "bootleg (Videotron)", "Missile Combat (Videotron bootleg, set 2)", GAME_NOT_WORKING )
-GAME( 1980, mcombats, missile, missile, missile, driver_device, 0, ROT0, "bootleg (Sidam)", "Missile Combat (Sidam bootleg)", GAME_NOT_WORKING )
-GAME( 2005, missilem, missile, missile, missile, missile_state, missilem, ROT0, "hack (Braze Technologies)", "Missile Command Multigame", GAME_NOT_WORKING )
+GAME( 1980, mcombat, missile, missile, missile, driver_device, 0, ROT0, "bootleg (Videotron)", "Missile Combat (Videotron bootleg, set 1)", MACHINE_NOT_WORKING )
+GAME( 1980, mcombata, missile, missile, missile, driver_device, 0, ROT0, "bootleg (Videotron)", "Missile Combat (Videotron bootleg, set 2)", MACHINE_NOT_WORKING )
+GAME( 1980, mcombats, missile, missile, missile, driver_device, 0, ROT0, "bootleg (Sidam)", "Missile Combat (Sidam bootleg)", MACHINE_NOT_WORKING )
+GAME( 2005, missilem, missile, missile, missile, missile_state, missilem, ROT0, "hack (Braze Technologies)", "Missile Command Multigame", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/mitchell.c b/src/mame/drivers/mitchell.c
index 16141bb62a9..5f8777942cf 100644
--- a/src/mame/drivers/mitchell.c
+++ b/src/mame/drivers/mitchell.c
@@ -2274,32 +2274,32 @@ DRIVER_INIT_MEMBER(mitchell_state,mstworld)
*
*************************************/
-GAME( 1988, mgakuen, 0, mgakuen, mgakuen, mitchell_state, mgakuen, ROT0, "Yuga", "Mahjong Gakuen", GAME_SUPPORTS_SAVE )
-GAME( 1988, 7toitsu, mgakuen, mgakuen, mgakuen, mitchell_state, mgakuen, ROT0, "Yuga", "Chi-Toitsu", GAME_SUPPORTS_SAVE )
-GAME( 1989, mgakuen2, 0, marukin, marukin, mitchell_state, mgakuen2, ROT0, "Face", "Mahjong Gakuen 2 Gakuen-chou no Fukushuu", GAME_SUPPORTS_SAVE )
-GAME( 1989, pkladies, 0, marukin, pkladies, mitchell_state, pkladies, ROT0, "Mitchell", "Poker Ladies", GAME_SUPPORTS_SAVE )
-GAME( 1989, pkladiesl, pkladies, marukin, pkladies, mitchell_state, pkladies, ROT0, "Leprechaun", "Poker Ladies (Leprechaun ver. 510)", GAME_SUPPORTS_SAVE )
-GAME( 1989, pkladiesla,pkladies, marukin, pkladies, mitchell_state, pkladies, ROT0, "Leprechaun", "Poker Ladies (Leprechaun ver. 401)", GAME_SUPPORTS_SAVE )
-GAME( 1989, pkladiesbl,pkladies, pkladiesbl,pkladies, mitchell_state,pkladiesbl,ROT0, "bootleg", "Poker Ladies (Censored bootleg)", GAME_NOT_WORKING ) // by Playmark? need to figure out CPU 'decryption' / ordering
-GAME( 1989, dokaben, 0, pang, pang, mitchell_state, dokaben, ROT0, "Capcom", "Dokaben (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1989, pang, 0, pang, pang, mitchell_state, pang, ROT0, "Mitchell", "Pang (World)", GAME_SUPPORTS_SAVE )
-GAME( 1989, bbros, pang, pang, pang, mitchell_state, pang, ROT0, "Mitchell (Capcom license)", "Buster Bros. (USA)", GAME_SUPPORTS_SAVE )
-GAME( 1989, pompingw, pang, pang, pang, mitchell_state, pang, ROT0, "Mitchell", "Pomping World (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1989, pangb, pang, pang, pang, mitchell_state, pangb, ROT0, "bootleg", "Pang (bootleg, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1989, pangbold, pang, pang, pang, mitchell_state, pangb, ROT0, "bootleg", "Pang (bootleg, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1989, pangba, pang, spangbl, pang, mitchell_state, pangb, ROT0, "bootleg", "Pang (bootleg, set 3)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1989, pangb2, pang, pang, pang, mitchell_state, pangb, ROT0, "bootleg", "Pang (bootleg, set 4)", GAME_SUPPORTS_SAVE )
-GAME( 1989, cworld, 0, pang, qtono1, mitchell_state, cworld, ROT0, "Capcom", "Capcom World (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1990, hatena, 0, pang, qtono1, mitchell_state, hatena, ROT0, "Capcom", "Adventure Quiz 2 - Hatena? no Daibouken (Japan 900228)", GAME_SUPPORTS_SAVE )
-GAME( 1990, spang, 0, pangnv, pang, mitchell_state, spang, ROT0, "Mitchell", "Super Pang (World 900914)", GAME_SUPPORTS_SAVE )
-GAME( 1990, sbbros, spang, pangnv, pang, mitchell_state, sbbros, ROT0, "Mitchell (Capcom license)", "Super Buster Bros. (USA 901001)", GAME_SUPPORTS_SAVE )
-GAME( 1990, spangj, spang, pangnv, pang, mitchell_state, spangj, ROT0, "Mitchell", "Super Pang (Japan 901023)", GAME_SUPPORTS_SAVE )
-GAME( 1990, spangbl, spang, spangbl, spangbl, mitchell_state, spangbl, ROT0, "bootleg", "Super Pang (World 900914, bootleg)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE ) // different sound hardware
-GAME( 1994, mstworld, 0, mstworld,mstworld, mitchell_state, mstworld, ROT0, "bootleg (TCH)", "Monsters World (bootleg of Super Pang)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1990, marukin, 0, marukin, marukin, mitchell_state, marukin, ROT0, "Yuga", "Super Marukin-Ban (Japan 901017)", GAME_SUPPORTS_SAVE )
-GAME( 1991, qtono1, 0, pang, qtono1, mitchell_state, qtono1, ROT0, "Capcom", "Quiz Tonosama no Yabou (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1991, qsangoku, 0, pang, qtono1, mitchell_state, qsangoku, ROT0, "Capcom", "Quiz Sangokushi (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1991, block, 0, pangnv, block, mitchell_state, block, ROT270, "Capcom", "Block Block (World 910910)", GAME_SUPPORTS_SAVE )
-GAME( 1991, blockj, block, pangnv, block, mitchell_state, block, ROT270, "Capcom", "Block Block (Japan 910910)", GAME_SUPPORTS_SAVE )
-GAME( 1991, blockjoy, block, pangnv, blockjoy, mitchell_state, block, ROT270, "Capcom", "Block Block (World 911106 Joystick)", GAME_SUPPORTS_SAVE )
-GAME( 1991, blockbl, block, pangnv, block, mitchell_state, blockbl, ROT270, "bootleg", "Block Block (bootleg)", GAME_SUPPORTS_SAVE )
+GAME( 1988, mgakuen, 0, mgakuen, mgakuen, mitchell_state, mgakuen, ROT0, "Yuga", "Mahjong Gakuen", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, 7toitsu, mgakuen, mgakuen, mgakuen, mitchell_state, mgakuen, ROT0, "Yuga", "Chi-Toitsu", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, mgakuen2, 0, marukin, marukin, mitchell_state, mgakuen2, ROT0, "Face", "Mahjong Gakuen 2 Gakuen-chou no Fukushuu", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, pkladies, 0, marukin, pkladies, mitchell_state, pkladies, ROT0, "Mitchell", "Poker Ladies", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, pkladiesl, pkladies, marukin, pkladies, mitchell_state, pkladies, ROT0, "Leprechaun", "Poker Ladies (Leprechaun ver. 510)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, pkladiesla,pkladies, marukin, pkladies, mitchell_state, pkladies, ROT0, "Leprechaun", "Poker Ladies (Leprechaun ver. 401)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, pkladiesbl,pkladies, pkladiesbl,pkladies, mitchell_state,pkladiesbl,ROT0, "bootleg", "Poker Ladies (Censored bootleg)", MACHINE_NOT_WORKING ) // by Playmark? need to figure out CPU 'decryption' / ordering
+GAME( 1989, dokaben, 0, pang, pang, mitchell_state, dokaben, ROT0, "Capcom", "Dokaben (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, pang, 0, pang, pang, mitchell_state, pang, ROT0, "Mitchell", "Pang (World)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, bbros, pang, pang, pang, mitchell_state, pang, ROT0, "Mitchell (Capcom license)", "Buster Bros. (USA)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, pompingw, pang, pang, pang, mitchell_state, pang, ROT0, "Mitchell", "Pomping World (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, pangb, pang, pang, pang, mitchell_state, pangb, ROT0, "bootleg", "Pang (bootleg, set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, pangbold, pang, pang, pang, mitchell_state, pangb, ROT0, "bootleg", "Pang (bootleg, set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, pangba, pang, spangbl, pang, mitchell_state, pangb, ROT0, "bootleg", "Pang (bootleg, set 3)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1989, pangb2, pang, pang, pang, mitchell_state, pangb, ROT0, "bootleg", "Pang (bootleg, set 4)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, cworld, 0, pang, qtono1, mitchell_state, cworld, ROT0, "Capcom", "Capcom World (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, hatena, 0, pang, qtono1, mitchell_state, hatena, ROT0, "Capcom", "Adventure Quiz 2 - Hatena? no Daibouken (Japan 900228)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, spang, 0, pangnv, pang, mitchell_state, spang, ROT0, "Mitchell", "Super Pang (World 900914)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, sbbros, spang, pangnv, pang, mitchell_state, sbbros, ROT0, "Mitchell (Capcom license)", "Super Buster Bros. (USA 901001)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, spangj, spang, pangnv, pang, mitchell_state, spangj, ROT0, "Mitchell", "Super Pang (Japan 901023)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, spangbl, spang, spangbl, spangbl, mitchell_state, spangbl, ROT0, "bootleg", "Super Pang (World 900914, bootleg)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) // different sound hardware
+GAME( 1994, mstworld, 0, mstworld,mstworld, mitchell_state, mstworld, ROT0, "bootleg (TCH)", "Monsters World (bootleg of Super Pang)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1990, marukin, 0, marukin, marukin, mitchell_state, marukin, ROT0, "Yuga", "Super Marukin-Ban (Japan 901017)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, qtono1, 0, pang, qtono1, mitchell_state, qtono1, ROT0, "Capcom", "Quiz Tonosama no Yabou (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, qsangoku, 0, pang, qtono1, mitchell_state, qsangoku, ROT0, "Capcom", "Quiz Sangokushi (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, block, 0, pangnv, block, mitchell_state, block, ROT270, "Capcom", "Block Block (World 910910)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, blockj, block, pangnv, block, mitchell_state, block, ROT270, "Capcom", "Block Block (Japan 910910)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, blockjoy, block, pangnv, blockjoy, mitchell_state, block, ROT270, "Capcom", "Block Block (World 911106 Joystick)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, blockbl, block, pangnv, block, mitchell_state, blockbl, ROT270, "bootleg", "Block Block (bootleg)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/mits680b.c b/src/mame/drivers/mits680b.c
index 2d9119e109c..f0f0d24ed15 100644
--- a/src/mess/drivers/mits680b.c
+++ b/src/mame/drivers/mits680b.c
@@ -114,4 +114,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1976, mits680b, 0, 0, mits680b, mits680b, driver_device, 0, "MITS", "Altair 680b", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/mjkjidai.c b/src/mame/drivers/mjkjidai.c
index 20a59886ada..39cec562bc3 100644
--- a/src/mame/drivers/mjkjidai.c
+++ b/src/mame/drivers/mjkjidai.c
@@ -369,4 +369,4 @@ ROM_START( mjkjidai )
ROM_END
-GAME( 1986, mjkjidai, 0, mjkjidai, mjkjidai, driver_device, 0, ROT0, "Sanritsu", "Mahjong Kyou Jidai (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+GAME( 1986, mjkjidai, 0, mjkjidai, mjkjidai, driver_device, 0, ROT0, "Sanritsu", "Mahjong Kyou Jidai (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/mjsister.c b/src/mame/drivers/mjsister.c
index c1adaf0bc87..d7690e7af07 100644
--- a/src/mame/drivers/mjsister.c
+++ b/src/mame/drivers/mjsister.c
@@ -562,4 +562,4 @@ ROM_END
*
*************************************/
-GAME( 1986, mjsister, 0, mjsister, mjsister, driver_device, 0, ROT0, "Toaplan", "Mahjong Sisters (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1986, mjsister, 0, mjsister, mjsister, driver_device, 0, ROT0, "Toaplan", "Mahjong Sisters (Japan)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/mk1.c b/src/mame/drivers/mk1.c
index 82558f28363..22d18396d2c 100644
--- a/src/mess/drivers/mk1.c
+++ b/src/mame/drivers/mk1.c
@@ -206,4 +206,4 @@ 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, "Computer Electronic", "Chess Champion MK I", GAME_NO_SOUND_HW )
+CONS( 1979, ccmk1, 0, 0, mk1, mk1, driver_device, 0, "Computer Electronic", "Chess Champion MK I", MACHINE_NO_SOUND_HW )
diff --git a/src/mess/drivers/mk14.c b/src/mame/drivers/mk14.c
index 22c8bd64e30..ba30757020b 100644
--- a/src/mess/drivers/mk14.c
+++ b/src/mame/drivers/mk14.c
@@ -160,4 +160,4 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 1977, mk14, 0, 0, mk14, mk14, driver_device, 0, "Science of Cambridge", "MK-14", GAME_NO_SOUND)
+COMP( 1977, mk14, 0, 0, mk14, mk14, driver_device, 0, "Science of Cambridge", "MK-14", MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/mk2.c b/src/mame/drivers/mk2.c
index cd929668fed..cd929668fed 100644
--- a/src/mess/drivers/mk2.c
+++ b/src/mame/drivers/mk2.c
diff --git a/src/mess/drivers/mk85.c b/src/mame/drivers/mk85.c
index dfa211504c4..c84df818ed9 100644
--- a/src/mess/drivers/mk85.c
+++ b/src/mame/drivers/mk85.c
@@ -63,8 +63,8 @@ UINT32 mk85_state::screen_update_mk85(screen_device &screen, bitmap_ind16 &bitma
static MACHINE_CONFIG_START( mk85, mk85_state )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu",T11, XTAL_4MHz)
- MCFG_T11_INITIAL_MODE(5 << 13) /* start from 0000 */
+ MCFG_CPU_ADD("maincpu", K1801VM2, XTAL_4MHz)
+ MCFG_T11_INITIAL_MODE(0)
MCFG_CPU_PROGRAM_MAP(mk85_mem)
@@ -89,4 +89,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1986, mk85, 0, 0, mk85, mk85, driver_device, 0, "Elektronika", "MK-85", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/mk90.c b/src/mame/drivers/mk90.c
index 487b4b9623b..3f9249a899f 100644
--- a/src/mess/drivers/mk90.c
+++ b/src/mame/drivers/mk90.c
@@ -68,8 +68,8 @@ UINT32 mk90_state::screen_update_mk90(screen_device &screen, bitmap_ind16 &bitma
static MACHINE_CONFIG_START( mk90, mk90_state )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu",T11, XTAL_4MHz)
- MCFG_T11_INITIAL_MODE(0xf600)
+ MCFG_CPU_ADD("maincpu", K1801VM2, XTAL_4MHz)
+ MCFG_T11_INITIAL_MODE(0x8000)
MCFG_CPU_PROGRAM_MAP(mk90_mem)
@@ -99,4 +99,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1988, mk90, 0, 0, mk90, mk90, driver_device, 0, "Elektronika", "MK-90", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/mkit09.c b/src/mame/drivers/mkit09.c
index 1e39600ecd1..17065af8b6d 100644
--- a/src/mess/drivers/mkit09.c
+++ b/src/mame/drivers/mkit09.c
@@ -24,6 +24,11 @@ Test Paste:
-0000 00^11^22^33^44^55^66^77^88^99^--0000
Now press up-arrow to confirm the data has been entered.
+
+
+ 2015-10-02 Added alternate bios found on a forum. Memory map is different.
+ Still to fix keyboard and display. No documentation exists.
+
****************************************************************************/
#include "emu.h"
@@ -66,6 +71,14 @@ static ADDRESS_MAP_START(mkit09_mem, AS_PROGRAM, 8, mkit09_state)
AM_RANGE(0xe000,0xe7ff) AM_MIRROR(0x1800) AM_ROM AM_REGION("roms", 0)
ADDRESS_MAP_END
+static ADDRESS_MAP_START(mkit09a_mem, AS_PROGRAM, 8, mkit09_state)
+ ADDRESS_MAP_UNMAP_HIGH
+ AM_RANGE(0x0000,0x07ff) AM_RAM
+ AM_RANGE(0xe600,0xe603) AM_DEVREADWRITE("pia", pia6821_device, read_alt, write_alt)
+ AM_RANGE(0xee00,0xefff) AM_RAM
+ AM_RANGE(0xf000,0xffff) AM_ROM AM_REGION("roms", 0)
+ADDRESS_MAP_END
+
static ADDRESS_MAP_START( mkit09_io, AS_IO, 8, mkit09_state)
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_END
@@ -200,13 +213,45 @@ static MACHINE_CONFIG_START( mkit09, mkit09_state )
MCFG_CASSETTE_ADD( "cassette" )
MACHINE_CONFIG_END
+static MACHINE_CONFIG_START( mkit09a, mkit09_state )
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu",M6809E, XTAL_4MHz)
+ MCFG_CPU_PROGRAM_MAP(mkit09a_mem)
+ MCFG_CPU_IO_MAP(mkit09_io)
+
+ /* video hardware */
+ MCFG_DEFAULT_LAYOUT(layout_mkit09)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+
+ /* Devices */
+ MCFG_DEVICE_ADD("pia", PIA6821, 0)
+ MCFG_PIA_READPA_HANDLER(READ8(mkit09_state, pa_r))
+ MCFG_PIA_READPB_HANDLER(READ8(mkit09_state, pb_r))
+ MCFG_PIA_WRITEPA_HANDLER(WRITE8(mkit09_state, pa_w))
+ MCFG_PIA_WRITEPB_HANDLER(WRITE8(mkit09_state, pb_w))
+ MCFG_PIA_IRQA_HANDLER(DEVWRITELINE("maincpu", m6809e_device, irq_line))
+ MCFG_PIA_IRQB_HANDLER(DEVWRITELINE("maincpu", m6809e_device, irq_line))
+
+ MCFG_CASSETTE_ADD( "cassette" )
+MACHINE_CONFIG_END
+
/* ROM definition */
ROM_START( mkit09 )
ROM_REGION( 0x800, "roms", 0 )
ROM_LOAD( "micromon.bin", 0x0000, 0x0800, CRC(c993c7c2) SHA1(2f54a2b423b925798f669f8a6d2cadeb8a82e968) )
ROM_END
+ROM_START( mkit09a )
+ ROM_REGION( 0x1000, "roms", 0 )
+ ROM_LOAD( "ukit09like.bin", 0x0000, 0x1000, CRC(2cdb6a84) SHA1(edfc1dfc954bdba80c3df64abf4d7553343c1fae) )
+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", 0 )
+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 )
diff --git a/src/mame/drivers/mlanding.c b/src/mame/drivers/mlanding.c
index 571b0bdfacc..1bfddcedd7c 100644
--- a/src/mame/drivers/mlanding.c
+++ b/src/mame/drivers/mlanding.c
@@ -1032,4 +1032,4 @@ ROM_END
*
*************************************/
-GAME( 1987, mlanding, 0, mlanding, mlanding, driver_device, 0, ROT0, "Taito America Corporation", "Midnight Landing (Germany)", GAME_SUPPORTS_SAVE )
+GAME( 1987, mlanding, 0, mlanding, mlanding, driver_device, 0, ROT0, "Taito America Corporation", "Midnight Landing (Germany)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/mmagic.c b/src/mame/drivers/mmagic.c
new file mode 100644
index 00000000000..fe94c2d4e02
--- /dev/null
+++ b/src/mame/drivers/mmagic.c
@@ -0,0 +1,317 @@
+// license:GPL-2.0+
+// copyright-holders:Dirk Best
+/***************************************************************************
+
+ "Monkey Magic" ?? 1979 Nintendo
+
+
+ Dumping info provided by Andrew Welburn:
+
+ TZF-MP - Main Board
+ TZF-SOU - Sound Board
+
+ # device Label PCB filename
+ -------------------------------------------
+ 4 i2708 1AI* 2A 1AI.2A
+ 5 i2708 2AI* 3A 2AI.3A
+ 6 i2708 3AI* 4A 3AI.4A
+ 7 i2708 4AI* 4/5A 4AI.45A
+ 8 i2708 5AI* 5A 5AI.5A
+
+ 22 H7641 6H 6HI 6H.6HI
+ 23 ?? ** 7H 7HI 7H.7HI
+ 24 H7641 6J 6JK 6J.6JK
+ 25 H7641 6H*** 7JK
+
+ * Note that there is a Kana character 'I' in romaji on the end of the labels, not an I.
+
+ ** Note this device was plastic and not ceramic, but it was dumped as a Harris 7641 as
+ it is logical that its compatible with the 7641. I can see the other devices all have
+ similar/same Harris markings in the bottom left of the IC obscured by the labels.
+
+ *** Note that the label for the 7643 PROM at IC25 was almost scraped off, but by its position
+ in the sequence, it has to be 6H. I removed a little more of the label in order to
+ work out what the inking was on it below, turned out to be 'D-2'. the prom at IC22 also
+ looks like it has an inked number under the paper label, just peeking through on one side.
+ Without removing the paper labels entirely, these markings wont be fully known, but were
+ covered for some reason.
+
+ SPECS:
+
+ - CPU is an NEC D8085A
+ - Crystal is marked 6.1440, but this looks to have been replaced.
+ - X1/X2 clock frequency measured at pins 1 + 2 is 6.14330 mhz
+ - Test point with stable readings is :
+ - TP4 (HS) = 15.9982 khz (Horizontal sync)
+ - TP5 (VS) = 60.5992 hz (Vertical Sync)
+
+***************************************************************************/
+
+#include "emu.h"
+#include "cpu/i8085/i8085.h"
+
+
+//**************************************************************************
+// CONSTANTS / MACROS
+//**************************************************************************
+
+#define LOG_AUDIO 1
+
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+class mmagic_state : public driver_device
+{
+public:
+ mmagic_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
+ m_screen(*this, "screen"),
+ m_palette(*this, "palette"),
+ m_vram(*this, "vram"),
+ m_tiles(*this, "tiles"),
+ m_colors(*this, "colors"),
+ m_ball_x(0x00),
+ m_ball_y(0x00),
+ m_color(0x00)
+ {}
+
+ DECLARE_READ8_MEMBER(vblank_r);
+ DECLARE_WRITE8_MEMBER(ball_x_w);
+ DECLARE_WRITE8_MEMBER(ball_y_w);
+ DECLARE_WRITE8_MEMBER(color_w);
+ DECLARE_WRITE8_MEMBER(audio_w);
+
+ UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+
+protected:
+ virtual void machine_start();
+
+private:
+ required_device<cpu_device> m_maincpu;
+ required_device<screen_device> m_screen;
+ required_device<palette_device> m_palette;
+ required_shared_ptr<UINT8> m_vram;
+ required_region_ptr<UINT8> m_tiles;
+ required_region_ptr<UINT8> m_colors;
+
+ UINT8 m_ball_x;
+ UINT8 m_ball_y;
+ UINT8 m_color;
+};
+
+
+//**************************************************************************
+// ADDRESS MAPS
+//**************************************************************************
+
+static ADDRESS_MAP_START( mmagic_mem, AS_PROGRAM, 8, mmagic_state )
+ ADDRESS_MAP_UNMAP_HIGH
+ AM_RANGE(0x0000, 0x17ff) AM_ROM
+ AM_RANGE(0x2000, 0x21ff) AM_RAM
+ AM_RANGE(0x3000, 0x31ff) AM_RAM AM_SHARE("vram")
+ AM_RANGE(0x8002, 0x8002) AM_WRITE(ball_x_w)
+ AM_RANGE(0x8003, 0x8003) AM_WRITE(ball_y_w)
+ AM_RANGE(0x8004, 0x8004) AM_READ(vblank_r)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( mmagic_io, AS_IO, 8, mmagic_state )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
+ AM_RANGE(0x80, 0x80) AM_WRITE(color_w)
+ AM_RANGE(0x81, 0x81) AM_WRITE(audio_w)
+ AM_RANGE(0x85, 0x85) AM_READ_PORT("paddle")
+ AM_RANGE(0x86, 0x86) AM_READ_PORT("buttons")
+ AM_RANGE(0x87, 0x87) AM_READ_PORT("dipswitch")
+ADDRESS_MAP_END
+
+
+//**************************************************************************
+// INPUTS
+//**************************************************************************
+
+static INPUT_PORTS_START( mmagic )
+ PORT_START("dipswitch")
+ PORT_SERVICE_DIPLOC(0x01, IP_ACTIVE_LOW, "DSW:1")
+ PORT_DIPNAME(0x06, 0x06, DEF_STR(Bonus_Life)) PORT_DIPLOCATION ("DSW:2,3")
+ PORT_DIPSETTING(0x00, "30000")
+ PORT_DIPSETTING(0x02, "20000")
+ PORT_DIPSETTING(0x04, "15000")
+ PORT_DIPSETTING(0x06, "10000")
+ PORT_DIPNAME(0x18, 0x18, DEF_STR(Lives)) PORT_DIPLOCATION ("DSW:4,5")
+ PORT_DIPSETTING(0x00, "6")
+ PORT_DIPSETTING(0x08, "5")
+ PORT_DIPSETTING(0x10, "4")
+ PORT_DIPSETTING(0x18, "3")
+ PORT_DIPUNUSED_DIPLOC(0x20, IP_ACTIVE_LOW, "DSW:6" )
+ PORT_DIPUNUSED_DIPLOC(0x40, IP_ACTIVE_LOW, "DSW:7" )
+ PORT_DIPUNUSED_DIPLOC(0x80, IP_ACTIVE_LOW, "DSW:8" )
+
+ PORT_START("buttons")
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_BUTTON1)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_START1)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_START2)
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_COIN1)
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNUSED)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED)
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED)
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Debug?") // checked once at startup
+
+ PORT_START("paddle")
+ PORT_BIT(0xff, 0x80, IPT_PADDLE) PORT_MINMAX(0x00, 0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(30) PORT_CENTERDELTA(0)
+INPUT_PORTS_END
+
+
+//**************************************************************************
+// VIDEO EMULATION
+//**************************************************************************
+
+READ8_MEMBER( mmagic_state::vblank_r )
+{
+ UINT8 data = 0;
+
+ // bit 0 = vblank
+ data |= m_screen->vblank() << 0;
+
+ // other bits unused
+ data |= 0xfe;
+
+ return data;
+}
+
+WRITE8_MEMBER( mmagic_state::ball_x_w )
+{
+ m_ball_x = data;
+}
+
+WRITE8_MEMBER( mmagic_state::ball_y_w )
+{
+ m_ball_y = data;
+}
+
+WRITE8_MEMBER( mmagic_state::color_w )
+{
+ // bit 3 is always set
+ // bit 6 switches the palette (actually there is only a single differently colored tile)
+ // other bits are always 0
+ m_color = data;
+}
+
+UINT32 mmagic_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
+{
+ // draw playfield
+ for (int y = 0; y < 192 / 12; y++)
+ {
+ for (int x = 0; x < 256 / 8; x++)
+ {
+ UINT8 code = m_vram[(y * 32) + x] & 0x7f;
+
+ // normal palette 00..7f, alternate palette 80..ff
+ UINT8 color = m_colors[code | (BIT(m_color, 6) << 7)];
+
+ // draw one tile
+ for (int tx = 0; tx < 12; tx++)
+ {
+ UINT8 gfx = m_tiles[(code << 4) + tx];
+
+ bitmap.pix32(y * 12 + tx, x * 8 + 0) = BIT(gfx, 4) ? rgb_t::black : m_palette->pen_color(color);
+ bitmap.pix32(y * 12 + tx, x * 8 + 1) = BIT(gfx, 5) ? rgb_t::black : m_palette->pen_color(color);
+ bitmap.pix32(y * 12 + tx, x * 8 + 2) = BIT(gfx, 6) ? rgb_t::black : m_palette->pen_color(color);
+ bitmap.pix32(y * 12 + tx, x * 8 + 3) = BIT(gfx, 7) ? rgb_t::black : m_palette->pen_color(color);
+
+ bitmap.pix32(y * 12 + tx, x * 8 + 4) = BIT(gfx, 0) ? rgb_t::black : m_palette->pen_color(color);
+ bitmap.pix32(y * 12 + tx, x * 8 + 5) = BIT(gfx, 1) ? rgb_t::black : m_palette->pen_color(color);
+ bitmap.pix32(y * 12 + tx, x * 8 + 6) = BIT(gfx, 2) ? rgb_t::black : m_palette->pen_color(color);
+ bitmap.pix32(y * 12 + tx, x * 8 + 7) = BIT(gfx, 3) ? rgb_t::black : m_palette->pen_color(color);
+ }
+ }
+ }
+
+ // draw ball (if not disabled)
+ if (m_ball_x != 0xff)
+ {
+ static const int BALL_SIZE = 4;
+ int ball_y = (m_ball_y >> 4) * 12 + (m_ball_y & 0x0f);
+ bitmap.plot_box(m_ball_x - BALL_SIZE + 1, ball_y - BALL_SIZE + 1, BALL_SIZE, BALL_SIZE, rgb_t::white);
+ }
+
+ return 0;
+}
+
+
+//**************************************************************************
+// AUDIO EMULATION
+//**************************************************************************
+
+WRITE8_MEMBER( mmagic_state::audio_w )
+{
+ if (LOG_AUDIO)
+ logerror("audio_w: %02x\n", data);
+}
+
+
+//**************************************************************************
+// DRIVER INIT
+//**************************************************************************
+
+void mmagic_state::machine_start()
+{
+ // register for save states
+ save_item(NAME(m_ball_x));
+ save_item(NAME(m_ball_y));
+ save_item(NAME(m_color));
+}
+
+
+//**************************************************************************
+// MACHINE DEFINTIONS
+//**************************************************************************
+
+static MACHINE_CONFIG_START( mmagic, mmagic_state )
+ // basic machine hardware
+ MCFG_CPU_ADD("maincpu", I8085A, XTAL_6_144MHz) // NEC D8085A
+ MCFG_CPU_PROGRAM_MAP(mmagic_mem)
+ MCFG_CPU_IO_MAP(mmagic_io)
+
+ // video hardware
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_RAW_PARAMS(XTAL_6_144MHz, 384, 0, 256, 264, 0, 192)
+ MCFG_SCREEN_UPDATE_DRIVER(mmagic_state, screen_update)
+
+ MCFG_PALETTE_ADD_3BIT_RGB("palette")
+
+ // sound hardware
+ // TODO: SN76477 + discrete sound
+MACHINE_CONFIG_END
+
+
+//**************************************************************************
+// ROM DEFINITIONS
+//**************************************************************************
+
+ROM_START( mmagic )
+ ROM_REGION(0x1800, "maincpu", 0)
+ ROM_LOAD("1ai.2a", 0x0000, 0x0400, CRC(ec772e2e) SHA1(7efc1bbb24b2ed73c518aea1c4ef4b9a93034e31))
+ ROM_LOAD("2ai.3a", 0x0400, 0x0400, CRC(e5d482ca) SHA1(208b808e9208bb6f5f5f89ffbeb5a885be33733a))
+ ROM_LOAD("3ai.4a", 0x0800, 0x0400, CRC(e8d38deb) SHA1(d7384234fb47e4b1d0421f58571fa748662b05f5))
+ ROM_LOAD("4ai.45a", 0x0c00, 0x0400, CRC(3048bd6c) SHA1(740051589f6ba44b2ee68edf76a3177bb973d78e))
+ ROM_LOAD("5ai.5a", 0x1000, 0x0400, CRC(2cab8f04) SHA1(203a3c005f18f968cd14c972bbb9fd7e0fc3b670))
+ // location 6a is unpopulated, if the "debug" switch is activated on bootup it would jump here
+
+ ROM_REGION(0x800, "tiles", 0)
+ ROM_LOAD("6h.6hi", 0x000, 0x200, CRC(b6321b6f) SHA1(06611f7419d2982e006a3e81b79677e59e194f38))
+ ROM_LOAD("7h.7hi", 0x200, 0x200, CRC(9ec0e82c) SHA1(29983f690a1b6134bb1983921f42c14898788095))
+ ROM_LOAD("6j.6jk", 0x400, 0x200, CRC(7ce83302) SHA1(1870610ff07ab11622e183e04e3fce29328ff291))
+
+ ROM_REGION(0x200, "colors", ROMREGION_INVERT)
+ ROM_LOAD("7j.7jk", 0x000, 0x200, CRC(b7eb8e1c) SHA1(b65a8efb88668dcf1c1d00e31a9b15a67c2972c8))
+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 )
diff --git a/src/mess/drivers/mmd1.c b/src/mame/drivers/mmd1.c
index 345e34d4aa7..99c4f4569b0 100644
--- a/src/mess/drivers/mmd1.c
+++ b/src/mame/drivers/mmd1.c
@@ -527,5 +527,5 @@ 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", GAME_NO_SOUND_HW)
-COMP( 1976, mmd2, mmd1, 0, mmd2, mmd2, mmd1_state, mmd2, "E&L Instruments Inc", "MMD-2", GAME_NO_SOUND_HW)
+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)
diff --git a/src/mame/drivers/mmm.c b/src/mame/drivers/mmm.c
index 481a0c2fc0f..1f567dced93 100644
--- a/src/mame/drivers/mmm.c
+++ b/src/mame/drivers/mmm.c
@@ -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)", GAME_IS_SKELETON_MECHANICAL)
+GAME( 198?, mmm_ldip, 0, mmm, mmm, driver_device, 0, ROT0, "Maygay", "Lucky Dip (Maygay)", MACHINE_IS_SKELETON_MECHANICAL)
diff --git a/src/mess/drivers/mmodular.c b/src/mame/drivers/mmodular.c
index b80aa7ab643..17c2d2c3499 100644
--- a/src/mess/drivers/mmodular.c
+++ b/src/mame/drivers/mmodular.c
@@ -652,7 +652,7 @@ READ8_MEMBER(polgar_state::milano_read_board)
{
int line;
static const char *const board_lines[8] =
- { "LINE2", "LINE3", "LINE4", "LINE5", "LINE6", "LINE7", "LINE8", "LINE9" };
+ { "LINE.0", "LINE.1", "LINE.2", "LINE.3", "LINE.4", "LINE.5", "LINE.6", "LINE.7" };
UINT8 data = 0x00;
UINT8 tmp; // = 0xff;
@@ -703,7 +703,7 @@ READ32_MEMBER(polgar_state::read_keys_BPL32)
UINT32 data = 0;
UINT8 tmp = 0xff, line = 0;
static const char *const board_lines[8] =
- { "LINE2", "LINE3", "LINE4", "LINE5", "LINE6", "LINE7", "LINE8", "LINE9" };
+ { "LINE.0", "LINE.1", "LINE.2", "LINE.3", "LINE.4", "LINE.5", "LINE.6", "LINE.7" };
if (BPL32latch_data == 0xff) {
tmp = ioport("BUTTONS_BPL")->read();
@@ -784,7 +784,7 @@ READ8_MEMBER(polgar_state::read_keys_board_academy)
UINT8 data = 0;
// UINT8 tmp = 0xff, line = 0;
// static const char *const board_lines[8] =
-// { "LINE2", "LINE3", "LINE4", "LINE5", "LINE6", "LINE7", "LINE8", "LINE9" };
+// { "LINE.0", "LINE.1", "LINE.2", "LINE.3", "LINE.4", "LINE.5", "LINE.6", "LINE.7" };
if (latch_data == 0xff) {
data = ioport("BUTTONS_ACAD")->read();
@@ -1882,30 +1882,30 @@ DRIVER_INIT_MEMBER(polgar_state,polgar)
}
/* 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", GAME_REQUIRES_ARTWORK | GAME_CLICKABLE_ARTWORK)
- CONS( 1987, sfortea, 0, 0, sfortea, sfortea, driver_device, 0, "Novag", "Novag Super Forte Chess Computer (version A)", GAME_NO_SOUND|GAME_SUPPORTS_SAVE|GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK )
- CONS( 1988, alm16, van16, 0, alm16, van16, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Almeria 68000", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK | GAME_CLICKABLE_ARTWORK )
- CONS( 1988, alm32, van16, 0, alm32, van32, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Alimera 68020", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK | GAME_CLICKABLE_ARTWORK )
- CONS( 1988, sforteb, sfortea, 0, sfortea, sfortea, driver_device, 0, "Novag", "Novag Super Forte Chess Computer (version B)", GAME_NO_SOUND|GAME_SUPPORTS_SAVE|GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK )
- CONS( 1988, sforteba, sfortea, 0, sfortea, sfortea, driver_device, 0, "Novag", "Novag Super Forte Chess Computer (version B, alt)", GAME_NO_SOUND|GAME_SUPPORTS_SAVE|GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK )
- CONS( 1988, sexpertb, sfortea, 0, sfortea, sfortea, driver_device, 0, "Novag", "Novag Super Expert B Chess Computer", GAME_NO_SOUND|GAME_SUPPORTS_SAVE|GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK )
- CONS( 1989, academy, 0, 0, academy, academy, driver_device, 0, "Hegener & Glaser", "Mephisto Academy Schachcomputer", GAME_REQUIRES_ARTWORK|GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK )
- CONS( 1989, megaiv, 0, 0, megaiv, megaiv, driver_device, 0, "Hegener & Glaser", "Mephisto Mega IV Schachcomputer", GAME_SUPPORTS_SAVE|GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK | GAME_CLICKABLE_ARTWORK )
- CONS( 1989, milano, polgar, 0, milano, polgar, polgar_state, polgar, "Hegener & Glaser", "Mephisto Milano Schachcomputer", GAME_REQUIRES_ARTWORK | GAME_CLICKABLE_ARTWORK )
-//CONS( 1989, montec4, 0, 0, monteciv, monteciv, driver_device, 0, "Hegener & Glaser", "Mephisto Monte Carlo IV", GAME_SUPPORTS_SAVE|GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK | GAME_CLICKABLE_ARTWORK )
- CONS( 1989, sfortec, sfortea, 0, sfortea, sfortea, driver_device, 0, "Novag", "Novag Super Forte Chess Computer (version C)", GAME_NO_SOUND|GAME_SUPPORTS_SAVE|GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK )
- CONS( 1989, sexpertc, sfortea, 0, sfortea, sfortea, driver_device, 0, "Novag", "Novag Super Expert C Chess Computer", GAME_NO_SOUND|GAME_SUPPORTS_SAVE|GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK )
- CONS( 1990, lyon16, van16, 0, alm16, van16, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Lyon 68000", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK | GAME_CLICKABLE_ARTWORK )
- CONS( 1990, lyon32, van16, 0, alm32, van32, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Lyon 68020", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK | GAME_CLICKABLE_ARTWORK )
- CONS( 1990, monteciv, 0, 0, monteciv, monteciv, driver_device, 0, "Hegener & Glaser", "Mephisto Monte Carlo IV LE Schachcomputer", GAME_SUPPORTS_SAVE|GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK | GAME_CLICKABLE_ARTWORK )
- CONS( 1991, diablo68, 0, 0, diablo68, sfortea, driver_device, 0, "Novag", "Novag Diablo 68000 Chess Computer", GAME_NO_SOUND|GAME_SUPPORTS_SAVE|GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK )
- CONS( 1991, van16, 0, 0, van16, van16, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Vancouver 68000", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK | GAME_CLICKABLE_ARTWORK )
- CONS( 1991, van32, van16, 0, van32, van32, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Vancouver 68020", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK | GAME_CLICKABLE_ARTWORK )
- CONS( 1992, risc, 0, 0, risc, van16, driver_device, 0, "Saitek", "RISC2500", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_NOT_WORKING | GAME_CLICKABLE_ARTWORK )
- CONS( 1993, gen32, van16, 0, gen32, gen32, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Genius030 V4.00", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK | GAME_CLICKABLE_ARTWORK )
- CONS( 1993, gen32_41, van16, 0, gen32, gen32, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Genius030 V4.01", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK | GAME_CLICKABLE_ARTWORK )
- CONS( 1993, gen32_oc, van16, 0, gen32_oc, gen32, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Genius030 V4.01OC", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK|GAME_UNOFFICIAL | GAME_CLICKABLE_ARTWORK )
- CONS( 1994, berlinp, van16, 0, bpl32, bpl32, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Berlin Pro 68020", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK | GAME_CLICKABLE_ARTWORK )
- CONS( 1996, bpl32, van16, 0, bpl32, bpl32, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Berlin Pro London Upgrade V5.00", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK | GAME_CLICKABLE_ARTWORK )
- CONS( 1996, lond020, van16, 0, van32, van32, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto London 68020 32 Bit", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK | GAME_CLICKABLE_ARTWORK )
- CONS( 1996, lond030, van16, 0, gen32, gen32, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Genius030 London Upgrade V5.00", GAME_SUPPORTS_SAVE|GAME_REQUIRES_ARTWORK | GAME_CLICKABLE_ARTWORK )
+ CONS( 1986, polgar, 0, 0, polgar, polgar, polgar_state, polgar, "Hegener & Glaser", "Mephisto Polgar Schachcomputer", MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK)
+ CONS( 1987, sfortea, 0, 0, sfortea, sfortea, driver_device, 0, "Novag", "Novag Super Forte Chess Computer (version A)", MACHINE_NO_SOUND|MACHINE_SUPPORTS_SAVE|MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK )
+ CONS( 1988, alm16, van16, 0, alm16, van16, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Almeria 68000", MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK )
+ CONS( 1988, alm32, van16, 0, alm32, van32, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Alimera 68020", MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK )
+ CONS( 1988, sforteb, sfortea, 0, sfortea, sfortea, driver_device, 0, "Novag", "Novag Super Forte Chess Computer (version B)", MACHINE_NO_SOUND|MACHINE_SUPPORTS_SAVE|MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK )
+ CONS( 1988, sforteba, sfortea, 0, sfortea, sfortea, driver_device, 0, "Novag", "Novag Super Forte Chess Computer (version B, alt)", MACHINE_NO_SOUND|MACHINE_SUPPORTS_SAVE|MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK )
+ CONS( 1988, sexpertb, sfortea, 0, sfortea, sfortea, driver_device, 0, "Novag", "Novag Super Expert B Chess Computer", MACHINE_NO_SOUND|MACHINE_SUPPORTS_SAVE|MACHINE_NOT_WORKING | 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_SUPPORTS_SAVE|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_SUPPORTS_SAVE|MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK )
+ CONS( 1989, sfortec, sfortea, 0, sfortea, sfortea, driver_device, 0, "Novag", "Novag Super Forte Chess Computer (version C)", MACHINE_NO_SOUND|MACHINE_SUPPORTS_SAVE|MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK )
+ CONS( 1989, sexpertc, sfortea, 0, sfortea, sfortea, driver_device, 0, "Novag", "Novag Super Expert C Chess Computer", MACHINE_NO_SOUND|MACHINE_SUPPORTS_SAVE|MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK )
+ CONS( 1990, lyon16, van16, 0, alm16, van16, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Lyon 68000", MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK )
+ CONS( 1990, lyon32, van16, 0, alm32, van32, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Lyon 68020", MACHINE_SUPPORTS_SAVE|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_SUPPORTS_SAVE|MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK )
+ CONS( 1991, diablo68, 0, 0, diablo68, sfortea, driver_device, 0, "Novag", "Novag Diablo 68000 Chess Computer", MACHINE_NO_SOUND|MACHINE_SUPPORTS_SAVE|MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK )
+ CONS( 1991, van16, 0, 0, van16, van16, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Vancouver 68000", MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK )
+ CONS( 1991, van32, van16, 0, van32, van32, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Vancouver 68020", MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK )
+ CONS( 1992, risc, 0, 0, risc, van16, driver_device, 0, "Saitek", "RISC2500", MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK|MACHINE_NOT_WORKING | MACHINE_CLICKABLE_ARTWORK )
+ CONS( 1993, gen32, van16, 0, gen32, gen32, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Genius030 V4.00", MACHINE_SUPPORTS_SAVE|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_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK )
+ CONS( 1993, gen32_oc, van16, 0, gen32_oc, gen32, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Genius030 V4.01OC", MACHINE_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK|MACHINE_UNOFFICIAL | MACHINE_CLICKABLE_ARTWORK )
+ CONS( 1994, berlinp, van16, 0, bpl32, bpl32, driver_device, 0, "Hegener & Glaser Muenchen", "Mephisto Berlin Pro 68020", MACHINE_SUPPORTS_SAVE|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_SUPPORTS_SAVE|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_SUPPORTS_SAVE|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_SUPPORTS_SAVE|MACHINE_REQUIRES_ARTWORK | MACHINE_CLICKABLE_ARTWORK )
diff --git a/src/mess/drivers/mod8.c b/src/mame/drivers/mod8.c
index 7ebe6c03803..48574a94df9 100644
--- a/src/mess/drivers/mod8.c
+++ b/src/mame/drivers/mod8.c
@@ -168,4 +168,4 @@ 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", GAME_NO_SOUND_HW)
+COMP( 1974, mod8, 0, 0, mod8, mod8, driver_device, 0, "Microsystems International Ltd", "MOD-8", MACHINE_NO_SOUND_HW)
diff --git a/src/mame/drivers/model1.c b/src/mame/drivers/model1.c
index 8b34dbb22ce..d87fe481904 100644
--- a/src/mame/drivers/model1.c
+++ b/src/mame/drivers/model1.c
@@ -1603,11 +1603,11 @@ static MACHINE_CONFIG_START( model1_vr, model1_state )
MCFG_M1COMM_ADD("m1comm")
MACHINE_CONFIG_END
-GAME( 1993, vf, 0, model1, vf, driver_device, 0, ROT0, "Sega", "Virtua Fighter", GAME_IMPERFECT_GRAPHICS )
-GAMEL(1992, vr, 0, model1_vr, vr, driver_device, 0, ROT0, "Sega", "Virtua Racing", GAME_IMPERFECT_GRAPHICS, layout_vr )
-GAME( 1993, vformula, vr, model1_vr, vr, driver_device, 0, ROT0, "Sega", "Virtua Formula", GAME_IMPERFECT_GRAPHICS )
-GAME( 1993, swa, 0, swa, swa, driver_device, 0, ROT0, "Sega", "Star Wars Arcade", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND )
-GAME( 1994, wingwar, 0, model1, wingwar, driver_device, 0, ROT0, "Sega", "Wing War (World)", GAME_NOT_WORKING )
-GAME( 1994, wingwaru, wingwar, model1, wingwar, driver_device, 0, ROT0, "Sega", "Wing War (US)", GAME_NOT_WORKING )
-GAME( 1994, wingwarj, wingwar, model1, wingwar, driver_device, 0, ROT0, "Sega", "Wing War (Japan)", GAME_NOT_WORKING )
-GAME( 1993, netmerc, 0, model1, vf, driver_device, 0, ROT0, "Sega", "NetMerc?", GAME_NOT_WORKING )
+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, netmerc, 0, model1, vf, driver_device, 0, ROT0, "Sega", "NetMerc?", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/model2.c b/src/mame/drivers/model2.c
index 6b66fc9f2fd..b108d3d3065 100644
--- a/src/mame/drivers/model2.c
+++ b/src/mame/drivers/model2.c
@@ -5985,75 +5985,75 @@ DRIVER_INIT_MEMBER(model2_state,srallyc)
// Model 2 (TGPs, Model 1 sound board)
-GAME( 1993, daytona, 0, model2o, daytona, driver_device, 0, ROT0, "Sega", "Daytona USA (Japan, Revision A)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1993, daytonase, daytona, model2o, daytona, driver_device, 0, ROT0, "Sega", "Daytona USA Special Edition (Japan, Revision A)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1993, daytona93, daytona, model2o, daytona, driver_device, 0, ROT0, "Sega", "Daytona USA Deluxe '93", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1993, daytonas, daytona, model2o, daytona, driver_device, 0, ROT0, "Sega", "Daytona USA (With Saturn Adverts)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1993, daytonat, daytona, model2o, daytona, driver_device, 0, ROT0, "Sega", "Daytona USA (Japan, Turbo hack, set 1)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1993, daytonata, daytona, model2o, daytona, driver_device, 0, ROT0, "Sega", "Daytona USA (Japan, Turbo hack, set 2)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1993, daytonam, daytona, model2o, daytona, model2_state, daytonam,ROT0, "Sega", "Daytona USA (Japan, To The MAXX)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1994, desert, 0, model2o, desert, driver_device, 0, ROT0, "Sega / Martin Marietta", "Desert Tank", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1994, vcop, 0, model2o, vcop, driver_device, 0, ROT0, "Sega", "Virtua Cop (Revision B)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1994, vcopa, vcop, model2o, vcop, driver_device, 0, ROT0, "Sega", "Virtua Cop (Revision A)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
+GAME( 1993, daytona, 0, model2o, daytona, driver_device, 0, ROT0, "Sega", "Daytona USA (Japan, Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1993, daytonase, daytona, model2o, daytona, driver_device, 0, ROT0, "Sega", "Daytona USA Special Edition (Japan, Revision A)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1993, daytona93, daytona, model2o, daytona, driver_device, 0, ROT0, "Sega", "Daytona USA Deluxe '93", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1993, daytonas, daytona, model2o, daytona, driver_device, 0, ROT0, "Sega", "Daytona USA (With Saturn Adverts)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1993, daytonat, daytona, model2o, daytona, driver_device, 0, ROT0, "Sega", "Daytona USA (Japan, Turbo hack, set 1)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1993, daytonata, daytona, model2o, daytona, driver_device, 0, ROT0, "Sega", "Daytona USA (Japan, Turbo hack, set 2)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1993, daytonam, daytona, model2o, 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 )
// Model 2A-CRX (TGPs, SCSP sound board)
-GAME( 1995, manxtt, 0, manxttdx ,manxtt, driver_device, 0, ROT0, "Sega", "Manx TT Superbike - DX (Revision D)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1995, manxttc, 0, model2a, manxtt, driver_device, 0, ROT0, "Sega", "Manx TT Superbike - Twin (Revision C)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1995, srallyc, 0, srallyc, srallyc, model2_state, srallyc, ROT0, "Sega", "Sega Rally Championship - TWIN (Revision C)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1995, srallycb, srallyc, srallyc, srallyc, model2_state, srallyc, ROT0, "Sega", "Sega Rally Championship - TWIN (Revision B)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1995, srallyca, srallyc, srallyc, srallyc, model2_state, srallyc, ROT0, "Sega", "Sega Rally Championship - DX (Revision A)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1995, vf2, 0, model2a, model2, driver_device, 0, ROT0, "Sega", "Virtua Fighter 2 (Version 2.1)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1995, vf2b, vf2, model2a, model2, driver_device, 0, ROT0, "Sega", "Virtua Fighter 2 (Revision B)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1995, vf2a, vf2, model2a, model2, driver_device, 0, ROT0, "Sega", "Virtua Fighter 2 (Revision A)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1995, vf2o, vf2, model2a, model2, driver_device, 0, ROT0, "Sega", "Virtua Fighter 2", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1995, vcop2, 0, model2a, vcop2, driver_device, 0, ROT0, "Sega", "Virtua Cop 2", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1995, skytargt, 0, model2a, skytargt,driver_device, 0, ROT0, "Sega", "Sky Target", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, doaa, doa, model2a_0229, model2, model2_state, doa, ROT0, "Sega", "Dead or Alive (Model 2A, Revision A)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, zeroguna, zerogun, model2a_5881, model2, model2_state, zerogun, ROT0, "Psikyo", "Zero Gunner (Export, Model 2A)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, zerogunaj, zerogun, model2a_5881, model2, model2_state, zerogun, ROT0, "Psikyo", "Zero Gunner (Japan, Model 2A)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, motoraid, 0, model2a, manxtt, driver_device, 0, ROT0, "Sega", "Motor Raid - Twin", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1998, dynamcop, 0, model2a_5881, model2, model2_state, genprot, ROT0, "Sega", "Dynamite Cop (Export, Model 2A)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1998, dyndeka2, dynamcop, model2a_5881, model2, model2_state, genprot, ROT0, "Sega", "Dynamite Deka 2 (Japan, Model 2A)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1998, pltkidsa, pltkids, model2a_5881, model2, model2_state, pltkids, ROT0, "Psikyo", "Pilot Kids (Model 2A)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
+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 (Revision C)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1995, srallycb, srallyc, srallyc, srallyc, model2_state, srallyc, ROT0, "Sega", "Sega Rally Championship - TWIN (Revision B)", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1995, srallyca, srallyc, srallyc, srallyc, model2_state, srallyc, ROT0, "Sega", "Sega Rally Championship - DX (Revision A)", 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 )
// Model 2B-CRX (SHARC, SCSP sound board)
-GAME( 1994, vstriker, 0, model2b, model2, driver_device, 0, ROT0, "Sega", "Virtua Striker (Revision A)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1994, vstrikero,vstriker, model2b, model2, driver_device, 0, ROT0, "Sega", "Virtua Striker", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1995, fvipers, 0, model2b, model2, driver_device, 0, ROT0, "Sega", "Fighting Vipers (Revision D)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1995, gunblade, 0, model2b, model2, driver_device, 0, ROT0, "Sega", "Gunblade NY (Revision A)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1995, indy500, 0, model2b, srallyc, driver_device, 0, ROT0, "Sega", "INDY 500 Twin (Revision A, Newer)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1995, indy500d, indy500, model2b, srallyc, driver_device, 0, ROT0, "Sega", "INDY 500 Deluxe (Revision A)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1995, indy500to, indy500, model2b, srallyc, driver_device, 0, ROT0, "Sega", "INDY 500 Twin (Revision A)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, schamp, 0, model2b, model2, driver_device, 0, ROT0, "Sega", "Sonic Championship (USA)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, sfight, schamp, model2b, model2, driver_device, 0, ROT0, "Sega", "Sonic the Fighters (Japan)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, lastbrnx, 0, model2b, model2, driver_device, 0, ROT0, "Sega", "Last Bronx (Export, Revision A)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, lastbrnxu,lastbrnx, model2b, model2, driver_device, 0, ROT0, "Sega", "Last Bronx (USA, Revision A)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, lastbrnxj,lastbrnx, model2b, model2, driver_device, 0, ROT0, "Sega", "Last Bronx (Japan, Revision A)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, doa, 0, model2b_0229, model2, model2_state, doa, ROT0, "Sega", "Dead or Alive (Model 2B, Revision B)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, sgt24h, 0, model2b, srallyc, model2_state, sgt24h, ROT0, "Jaleco", "Super GT 24h", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, von, 0, model2b, model2, driver_device, 0, ROT0, "Sega", "Cyber Troopers Virtual-On (USA, Revision B)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, vonj, von, model2b, model2, driver_device, 0, ROT0, "Sega", "Cyber Troopers Virtual-On (Japan, Revision B)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, dynabb, 0, model2b, model2, driver_device, 0, ROT0, "Sega", "Dynamite Baseball", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, dynabb97, 0, model2b, model2, driver_device, 0, ROT0, "Sega", "Dynamite Baseball 97 (Revision A)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, overrevb, overrev, model2b, srallyc, model2_state, overrev, ROT0, "Jaleco", "Over Rev (Model 2B, Revision B)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, zerogun, 0, model2b_5881, model2, model2_state, zerogun, ROT0, "Psikyo", "Zero Gunner (Export, Model 2B)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, zerogunj, zerogun, model2b_5881, model2, model2_state, zerogun, ROT0, "Psikyo", "Zero Gunner (Japan, Model 2B)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1998, dynamcopb,dynamcop, model2b_5881, model2, model2_state, genprot, ROT0, "Sega", "Dynamite Cop (Export, Model 2B)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1998, dyndeka2b,dynamcop, model2b_5881, model2, model2_state, genprot, ROT0, "Sega", "Dynamite Deka 2 (Japan, Model 2B)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1998, pltkids, 0, model2b_5881, model2, model2_state, pltkids, ROT0, "Psikyo", "Pilot Kids (Model 2B, Revision A)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1995, rchase2, 0, model2b, rchase2, model2_state, rchase2, ROT0, "Sega", "Rail Chase 2 (Revision A)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
+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, model2_state, overrev, 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, model2b, 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", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS|GAME_UNEMULATED_PROTECTION )
-GAME( 1996, stcc, 0, stcc, model2, driver_device, 0, ROT0, "Sega", "Sega Touring Car Championship", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, stccb, stcc, stcc, model2, driver_device, 0, ROT0, "Sega", "Sega Touring Car Championship (Revision B)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, stcca, stcc, stcc, model2, driver_device, 0, ROT0, "Sega", "Sega Touring Car Championship (Revision A)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, waverunr, 0, model2c, model2, driver_device, 0, ROT0, "Sega", "Wave Runner (Japan, Revision A)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, hotd, 0, model2c, model2, driver_device, 0, ROT0, "Sega", "House of the Dead", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, overrev, 0, model2c, srallyc, model2_state, overrev, ROT0, "Jaleco", "Over Rev (Model 2C, Revision A)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, segawski, 0, model2c, model2, driver_device, 0, ROT0, "Sega", "Sega Water Ski (Japan, Revision A)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, topskatr, 0, model2c, model2, driver_device, 0, ROT0, "Sega", "Top Skater (Export, Revision A)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, topskatru,topskatr, model2c, model2, driver_device, 0, ROT0, "Sega", "Top Skater (USA, Revision A)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, topskatrj,topskatr, model2c, model2, driver_device, 0, ROT0, "Sega", "Top Skater (Japan)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1998, bel, 0, model2c, bel, driver_device, 0, ROT0, "Sega / EPL Productions", "Behind Enemy Lines", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
-GAME( 1998, dynamcopc,dynamcop, model2c_5881, model2, model2_state, genprot, ROT0, "Sega", "Dynamite Cop (USA, Model 2C)", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
+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, model2_state, overrev, ROT0, "Jaleco", "Over Rev (Model 2C, Revision A)", 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, 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 )
diff --git a/src/mame/drivers/model3.c b/src/mame/drivers/model3.c
index 8509fb90664..9d10c48278e 100644
--- a/src/mame/drivers/model3.c
+++ b/src/mame/drivers/model3.c
@@ -1,5 +1,5 @@
// license:BSD-3-Clause
-// copyright-holders:Andrew Gardner, R. Belmont, Ville Linde
+// copyright-holders:R. Belmont, Ville Linde
/*
Sega Model 3
PowerPC 603e + tilemaps + Real3D 1000 + 68000 + 2x SCSP
@@ -667,6 +667,13 @@ ALL VROM ROMs are 16M MASK
#include "includes/model3.h"
+// for now, make buggy GCC/Mingw STFU about I64FMT
+#if (defined(__MINGW32__) && (__GNUC__ >= 5))
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wformat"
+#pragma GCC diagnostic ignored "-Wformat-extra-args"
+#endif
+
void model3_state::update_irq_state()
{
@@ -2559,7 +2566,7 @@ ROM_START( vf3 ) /* step 1.0, Sega game ID# is 833-12712, ROM board ID# 834-1
ROM_LOAD_VROM( "mpr-19226.41", 0x00000c, 0x200000, CRC(00091722) SHA1(ef86db36b4b91a66b3e401c3c91735b9d28da2e2) )
ROM_REGION( 0x100000, "audiocpu", 0 ) /* 68000 code */
- ROM_LOAD16_WORD_SWAP( "epr19231.21", 0x080000, 0x080000, CRC(b416fe96) SHA1(b508eb6802072a8d4f8fdc7ca4fba6c6a4aaadae) )
+ ROM_LOAD16_WORD_SWAP( "epr-19231.21", 0x080000, 0x080000, CRC(b416fe96) SHA1(b508eb6802072a8d4f8fdc7ca4fba6c6a4aaadae) )
ROM_REGION( 0x800000, "samples", 0 ) /* SCSP samples */
ROM_LOAD( "mpr-19209.22", 0x000000, 0x400000, CRC(3715e38c) SHA1(b11dbf8a5840990e9697c53b4796cd70ad91f6a1) )
@@ -2581,10 +2588,10 @@ ROM_END
ROM_START( vf3a ) /* step 1.0, Sega game ID# is 833-12712, ROM board ID# 834-12821 */
ROM_REGION64_BE( 0x8800000, "user1", 0 ) /* program + data ROMs */
// CROM
- ROM_LOAD64_WORD_SWAP( "epr19227a.17", 0x600006, 0x080000, CRC(7139931a) SHA1(57eec80361726143017b1adbfaafbeef0bc4109d) )
- ROM_LOAD64_WORD_SWAP( "epr19228a.18", 0x600004, 0x080000, CRC(82f17ab5) SHA1(64714d14e64d97ebeedd1c6e1e832969df9e2324) )
- ROM_LOAD64_WORD_SWAP( "epr19229a.19", 0x600002, 0x080000, CRC(5f1404b8) SHA1(434b0900a33704190285a6db45e9391b2bda2152) )
- ROM_LOAD64_WORD_SWAP( "epr19230a.20", 0x600000, 0x080000, CRC(4dff78ed) SHA1(4d687479fc1fcce10ed7417555c003a546f64390) )
+ ROM_LOAD64_WORD_SWAP( "epr-19227a.17", 0x600006, 0x080000, CRC(7139931a) SHA1(57eec80361726143017b1adbfaafbeef0bc4109d) )
+ ROM_LOAD64_WORD_SWAP( "epr-19228a.18", 0x600004, 0x080000, CRC(82f17ab5) SHA1(64714d14e64d97ebeedd1c6e1e832969df9e2324) )
+ ROM_LOAD64_WORD_SWAP( "epr-19229a.19", 0x600002, 0x080000, CRC(5f1404b8) SHA1(434b0900a33704190285a6db45e9391b2bda2152) )
+ ROM_LOAD64_WORD_SWAP( "epr-19230a.20", 0x600000, 0x080000, CRC(4dff78ed) SHA1(4d687479fc1fcce10ed7417555c003a546f64390) )
// CROM0
ROM_LOAD64_WORD_SWAP( "mpr-19193.1", 0x800006, 0x400000, CRC(7bab33d2) SHA1(243a09959f3c4311070f1de760ee63958cd47660) )
@@ -2634,7 +2641,7 @@ ROM_START( vf3a ) /* step 1.0, Sega game ID# is 833-12712, ROM board ID# 834-1
ROM_LOAD_VROM( "mpr-19226.41", 0x00000c, 0x200000, CRC(00091722) SHA1(ef86db36b4b91a66b3e401c3c91735b9d28da2e2) )
ROM_REGION( 0x100000, "audiocpu", 0 ) /* 68000 code */
- ROM_LOAD16_WORD_SWAP( "epr19231.21", 0x080000, 0x080000, CRC(b416fe96) SHA1(b508eb6802072a8d4f8fdc7ca4fba6c6a4aaadae) )
+ ROM_LOAD16_WORD_SWAP( "epr-19231.21", 0x080000, 0x080000, CRC(b416fe96) SHA1(b508eb6802072a8d4f8fdc7ca4fba6c6a4aaadae) )
ROM_REGION( 0x800000, "samples", 0 ) /* SCSP samples */
ROM_LOAD( "mpr-19209.22", 0x000000, 0x400000, CRC(3715e38c) SHA1(b11dbf8a5840990e9697c53b4796cd70ad91f6a1) )
@@ -2709,7 +2716,7 @@ ROM_START( vf3tb ) /* step 1.0? */
ROM_LOAD_VROM( "mpr-19226.41", 0x00000c, 0x200000, CRC(00091722) SHA1(ef86db36b4b91a66b3e401c3c91735b9d28da2e2) )
ROM_REGION( 0x100000, "audiocpu", 0 ) /* 68000 code */
- ROM_LOAD16_WORD_SWAP( "epr19231.21", 0x080000, 0x080000, CRC(b416fe96) SHA1(b508eb6802072a8d4f8fdc7ca4fba6c6a4aaadae) )
+ ROM_LOAD16_WORD_SWAP( "epr-19231.21", 0x080000, 0x080000, CRC(b416fe96) SHA1(b508eb6802072a8d4f8fdc7ca4fba6c6a4aaadae) )
ROM_REGION( 0x800000, "samples", 0 ) /* SCSP samples */
ROM_LOAD( "mpr-19209.22", 0x000000, 0x400000, CRC(3715e38c) SHA1(b11dbf8a5840990e9697c53b4796cd70ad91f6a1) )
@@ -2960,7 +2967,7 @@ ROM_START( getbass ) /* step 1.0, Sega game ID# is 833-13416 GET BASS STD, RO
ROM_FILL( 0x000000, 0x80000, 0 )
ROM_REGION( 0x10000, "iocpu", 0 ) // kl5c80a16cf code
- ROM_LOAD( "epr20690.ic11", 0x00000, 0x10000, CRC(b7da201d) SHA1(7e58eb45ee6ec78250ece7b4fcc4e955b8b4f084) )
+ ROM_LOAD( "epr-20690.ic11", 0x00000, 0x10000, CRC(b7da201d) SHA1(7e58eb45ee6ec78250ece7b4fcc4e955b8b4f084) )
ROM_END
ROM_START( lostwsga ) /* Step 1.5, PCB cage labeled 834-13172 THE LOST WORLD U/R. Sega game ID# is 833-13171, ROM board ID# 834-13172 REV.A */
@@ -4027,7 +4034,7 @@ ROM_START( swtrilgy ) /* Step 2.1, Sega game ID# is 833-13586, ROM board ID# 8
ROM_FILL( 0x000000, 0x80000, 0 )
ROM_REGION( 0x10000, "ffcpu", 0 ) /* force feedback controller prg */
- ROM_LOAD( "epr21119.ic8", 0x00000, 0x10000, CRC(65082b14) SHA1(6c3c192dd6ef3780c6202dd63fc6086328928818) )
+ ROM_LOAD( "epr-21119.ic8", 0x00000, 0x10000, CRC(65082b14) SHA1(6c3c192dd6ef3780c6202dd63fc6086328928818) )
// ???? 317-0241-COM Model 3
ROM_PARAMETER( ":315_5881:key", "31272a01" )
@@ -6002,53 +6009,57 @@ DRIVER_INIT_MEMBER(model3_state,lamachin)
/* Model 3 Step 1.0 */
-GAME( 1996, vf3, 0, model3_10, model3, model3_state, vf3, ROT0, "Sega", "Virtua Fighter 3 (Revision C)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, vf3a, vf3, model3_10, model3, model3_state, vf3, ROT0, "Sega", "Virtua Fighter 3 (Revision A)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, vf3tb, vf3, model3_10, model3, model3_state, model3_10, ROT0, "Sega", "Virtua Fighter 3 Team Battle", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1997, bass, 0, model3_10, bass, model3_state, bass, ROT0, "Sega", "Sega Bass Fishing (Japan)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1997, bassdx, bass, model3_10, bass, model3_state, getbass, ROT0, "Sega", "Sega Bass Fishing Deluxe (Japan)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1997, getbass, bass, model3_10, bass, model3_state, getbass, ROT0, "Sega", "Get Bass", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
+GAME( 1996, vf3, 0, model3_10, model3, model3_state, vf3, ROT0, "Sega", "Virtua Fighter 3 (Revision C)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, vf3a, vf3, model3_10, model3, model3_state, vf3, ROT0, "Sega", "Virtua Fighter 3 (Revision A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, vf3tb, vf3, model3_10, model3, model3_state, model3_10, ROT0, "Sega", "Virtua Fighter 3 Team Battle", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1997, bass, 0, model3_10, bass, model3_state, bass, ROT0, "Sega", "Sega Bass Fishing (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1997, bassdx, bass, model3_10, bass, model3_state, getbass, ROT0, "Sega", "Sega Bass Fishing Deluxe (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1997, getbass, bass, model3_10, bass, model3_state, getbass, ROT0, "Sega", "Get Bass", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
/* Model 3 Step 1.5 */
-GAME( 1996, scud, 0, scud, scud, model3_state, scud, ROT0, "Sega", "Scud Race Twin (Australia)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, scudj, scud, scud, scud, model3_state, scud, ROT0, "Sega", "Scud Race Deluxe (Japan)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, scuda, scud, scud, scud, model3_state, scud, ROT0, "Sega", "Scud Race Twin (Export)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1997, scudplus, scud, scud, scud, model3_state, scudplus, ROT0, "Sega", "Scud Race Plus (Revision A)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1997, scudplusa, scud, scud, scud, model3_state,scudplusa, ROT0, "Sega", "Scud Race Plus", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1997, lostwsga, 0, model3_15, lostwsga, model3_state, lostwsga, ROT0, "Sega", "The Lost World (Japan, Revision A)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1997, vs215, vs2, model3_15, model3, model3_state, vs215, ROT0, "Sega", "Virtua Striker 2 (Step 1.5)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1997, vs215o, vs2, model3_15, model3, model3_state, vs215, ROT0, "Sega", "Virtua Striker 2 (Step 1.5, older)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1997, lemans24, 0, model3_15, scud, model3_state, lemans24, ROT0, "Sega", "Le Mans 24 (Revision B)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, vs29815, vs298, model3_15, model3, model3_state, vs29815, ROT0, "Sega", "Virtua Striker 2 '98 (Step 1.5)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
+GAME( 1996, scud, 0, scud, scud, model3_state, scud, ROT0, "Sega", "Scud Race Twin (Australia)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, scudj, scud, scud, scud, model3_state, scud, ROT0, "Sega", "Scud Race Deluxe (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, scuda, scud, scud, scud, model3_state, scud, ROT0, "Sega", "Scud Race Twin (Export)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1997, scudplus, scud, scud, scud, model3_state, scudplus, ROT0, "Sega", "Scud Race Plus (Revision A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1997, scudplusa, scud, scud, scud, model3_state,scudplusa, ROT0, "Sega", "Scud Race Plus", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1997, lostwsga, 0, model3_15, lostwsga, model3_state, lostwsga, ROT0, "Sega", "The Lost World (Japan, Revision A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1997, vs215, vs2, model3_15, model3, model3_state, vs215, ROT0, "Sega", "Virtua Striker 2 (Step 1.5)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1997, vs215o, vs2, model3_15, model3, model3_state, vs215, ROT0, "Sega", "Virtua Striker 2 (Step 1.5, older)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1997, lemans24, 0, model3_15, scud, model3_state, lemans24, ROT0, "Sega", "Le Mans 24 (Revision B)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, vs29815, vs298, model3_15, model3, model3_state, vs29815, ROT0, "Sega", "Virtua Striker 2 '98 (Step 1.5)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
/* Model 3 Step 2.0 */
-GAME( 1997, vs2, 0, model3_20, model3, model3_state, vs2, ROT0, "Sega", "Virtua Striker 2 (Step 2.0)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1997, harley, 0, model3_20, harley, model3_state, harley, ROT0, "Sega", "Harley-Davidson and L.A. Riders (Revision B)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1997, harleya, harley, model3_20, harley, model3_state, harleya, ROT0, "Sega", "Harley-Davidson and L.A. Riders (Revision A)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, lamachin, 0, model3_20_5881, model3, model3_state, lamachin, ROT0, "Sega", "L.A. Machineguns (Japan)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, oceanhun, 0, model3_20_5881, model3, model3_state, oceanhun, ROT0, "Sega", "The Ocean Hunter", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, skichamp, 0, model3_20, skichamp, model3_state, skichamp, ROT0, "Sega", "Ski Champ (Japan)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, srally2, 0, model3_20, scud, model3_state, srally2, ROT0, "Sega", "Sega Rally 2", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, srally2x, 0, model3_20, scud, model3_state, srally2, ROT0, "Sega", "Sega Rally 2 DX", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, von2, 0, model3_20_5881, model3, model3_state, von2, ROT0, "Sega", "Virtual On 2: Oratorio Tangram (Revision B)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, von254g, von2, model3_20_5881, model3, model3_state, von2, ROT0, "Sega", "Virtual On 2: Oratorio Tangram (ver 5.4g)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, fvipers2, 0, model3_20_5881, model3, model3_state, vs299, ROT0, "Sega", "Fighting Vipers 2 (Japan, Revision A)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, vs298, 0, model3_20_5881, model3, model3_state, vs298, ROT0, "Sega", "Virtua Striker 2 '98 (Step 2.0)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1999, vs2v991, 0, model3_20_5881, model3, model3_state, vs299, ROT0, "Sega", "Virtua Striker 2 '99.1 (Revision B)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1999, vs299b, vs2v991, model3_20_5881, model3, model3_state, vs299, ROT0, "Sega", "Virtua Striker 2 '99 (Revision B)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1999, vs299a, vs2v991, model3_20_5881, model3, model3_state, vs299, ROT0, "Sega", "Virtua Striker 2 '99 (Revision A)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1999, vs299, vs2v991, model3_20_5881, model3, model3_state, vs299, ROT0, "Sega", "Virtua Striker 2 '99", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
+GAME( 1997, vs2, 0, model3_20, model3, model3_state, vs2, ROT0, "Sega", "Virtua Striker 2 (Step 2.0)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1997, harley, 0, model3_20, harley, model3_state, harley, ROT0, "Sega", "Harley-Davidson and L.A. Riders (Revision B)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1997, harleya, harley, model3_20, harley, model3_state, harleya, ROT0, "Sega", "Harley-Davidson and L.A. Riders (Revision A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, lamachin, 0, model3_20_5881, model3, model3_state, lamachin, ROT0, "Sega", "L.A. Machineguns (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, oceanhun, 0, model3_20_5881, model3, model3_state, oceanhun, ROT0, "Sega", "The Ocean Hunter", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, skichamp, 0, model3_20, skichamp, model3_state, skichamp, ROT0, "Sega", "Ski Champ (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, srally2, 0, model3_20, scud, model3_state, srally2, ROT0, "Sega", "Sega Rally 2", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, srally2x, 0, model3_20, scud, model3_state, srally2, ROT0, "Sega", "Sega Rally 2 DX", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, von2, 0, model3_20_5881, model3, model3_state, von2, ROT0, "Sega", "Virtual On 2: Oratorio Tangram (Revision B)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, von254g, von2, model3_20_5881, model3, model3_state, von2, ROT0, "Sega", "Virtual On 2: Oratorio Tangram (ver 5.4g)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, fvipers2, 0, model3_20_5881, model3, model3_state, vs299, ROT0, "Sega", "Fighting Vipers 2 (Japan, Revision A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, vs298, 0, model3_20_5881, model3, model3_state, vs298, ROT0, "Sega", "Virtua Striker 2 '98 (Step 2.0)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1999, vs2v991, 0, model3_20_5881, model3, model3_state, vs299, ROT0, "Sega", "Virtua Striker 2 '99.1 (Revision B)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1999, vs299b, vs2v991, model3_20_5881, model3, model3_state, vs299, ROT0, "Sega", "Virtua Striker 2 '99 (Revision B)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1999, vs299a, vs2v991, model3_20_5881, model3, model3_state, vs299, ROT0, "Sega", "Virtua Striker 2 '99 (Revision A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1999, vs299, vs2v991, model3_20_5881, model3, model3_state, vs299, ROT0, "Sega", "Virtua Striker 2 '99", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
/* Model 3 Step 2.1 */
-GAME( 1998, daytona2, 0, model3_21_5881, daytona2, model3_state, daytona2, ROT0, "Sega", "Daytona USA 2 (Revision A)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, dayto2pe, 0, model3_21_5881, daytona2, model3_state, dayto2pe, ROT0, "Sega", "Daytona USA 2 Power Edition", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, dirtdvls, 0, model3_21_5881, scud, model3_state, dirtdvls, ROT0, "Sega", "Dirt Devils (Export, Revision A)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, dirtdvlsa, dirtdvls, model3_21_5881, scud, model3_state, dirtdvls, ROT0, "Sega", "Dirt Devils (Australia, Revision A)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, swtrilgy, 0, model3_21_5881, swtrilgy, model3_state, swtrilgy, ROT0, "Sega / LucasArts", "Star Wars Trilogy (Revision A)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, swtrilgya, swtrilgy, model3_21_5881, swtrilgy, model3_state, swtrilga, ROT0, "Sega / LucasArts", "Star Wars Trilogy", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, spikeout, 0, model3_21_5881, model3, model3_state, spikeout, ROT0, "Sega", "Spikeout (Revision C)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, spikeofe, 0, model3_21_5881, model3, model3_state, spikeofe, ROT0, "Sega", "Spikeout Final Edition", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, magtruck, 0, model3_21_5881, eca, model3_state, magtruck, ROT0, "Sega", "Magical Truck Adventure (Japan)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1999, eca, 0, model3_21_5881, eca, model3_state, eca, ROT0, "Sega", "Emergency Call Ambulance (Export)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1999, ecau, eca, model3_21_5881, eca, model3_state, eca, ROT0, "Sega", "Emergency Call Ambulance (USA)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1999, ecap, eca, model3_21_5881, eca, model3_state, eca, ROT0, "Sega", "Emergency Call Ambulance (US location test?)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
+GAME( 1998, daytona2, 0, model3_21_5881, daytona2, model3_state, daytona2, ROT0, "Sega", "Daytona USA 2 (Revision A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, dayto2pe, 0, model3_21_5881, daytona2, model3_state, dayto2pe, ROT0, "Sega", "Daytona USA 2 Power Edition", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, dirtdvls, 0, model3_21_5881, scud, model3_state, dirtdvls, ROT0, "Sega", "Dirt Devils (Export, Revision A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, dirtdvlsa, dirtdvls, model3_21_5881, scud, model3_state, dirtdvls, ROT0, "Sega", "Dirt Devils (Australia, Revision A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, swtrilgy, 0, model3_21_5881, swtrilgy, model3_state, swtrilgy, ROT0, "Sega / LucasArts", "Star Wars Trilogy (Revision A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, swtrilgya, swtrilgy, model3_21_5881, swtrilgy, model3_state, swtrilga, ROT0, "Sega / LucasArts", "Star Wars Trilogy", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, spikeout, 0, model3_21_5881, model3, model3_state, spikeout, ROT0, "Sega", "Spikeout (Revision C)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, spikeofe, 0, model3_21_5881, model3, model3_state, spikeofe, ROT0, "Sega", "Spikeout Final Edition", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, magtruck, 0, model3_21_5881, eca, model3_state, magtruck, ROT0, "Sega", "Magical Truck Adventure (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1999, eca, 0, model3_21_5881, eca, model3_state, eca, ROT0, "Sega", "Emergency Call Ambulance (Export)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1999, ecau, eca, model3_21_5881, eca, model3_state, eca, ROT0, "Sega", "Emergency Call Ambulance (USA)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1999, ecap, eca, model3_21_5881, eca, model3_state, eca, ROT0, "Sega", "Emergency Call Ambulance (US location test?)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+
+#if (defined(__MINGW32__) && (__GNUC__ >= 5))
+#pragma GCC diagnostic pop
+#endif
diff --git a/src/mess/drivers/modellot.c b/src/mame/drivers/modellot.c
index 7a0c2cb38be..9c2421bddd0 100644
--- a/src/mess/drivers/modellot.c
+++ b/src/mame/drivers/modellot.c
@@ -186,4 +186,4 @@ ROM_START( modellot )
ROM_END
/* Driver */
-COMP( 1979, modellot, 0, 0, modellot, modellot, driver_device, 0, "General Processor", "Modello T", GAME_IS_SKELETON)
+COMP( 1979, modellot, 0, 0, modellot, modellot, driver_device, 0, "General Processor", "Modello T", MACHINE_IS_SKELETON)
diff --git a/src/mame/drivers/mogura.c b/src/mame/drivers/mogura.c
index 4aafded3d75..b4588d14e46 100644
--- a/src/mame/drivers/mogura.c
+++ b/src/mame/drivers/mogura.c
@@ -237,4 +237,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)", GAME_SUPPORTS_SAVE )
+GAME( 1991, mogura, 0, mogura, mogura, driver_device, 0, ROT0, "Konami", "Mogura Desse (Japan)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/mole.c b/src/mame/drivers/mole.c
index 3710e73e06c..b86dbc3b10c 100644
--- a/src/mame/drivers/mole.c
+++ b/src/mame/drivers/mole.c
@@ -83,7 +83,6 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- DECLARE_PALETTE_INIT(mole);
UINT32 screen_update_mole(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -94,12 +93,6 @@ public:
*
*************************************/
-PALETTE_INIT_MEMBER(mole_state, mole)
-{
- for (int i = 0; i < 8; i++)
- palette.set_pen_color(i, pal1bit(i >> 0), pal1bit(i >> 2), pal1bit(i >> 1));
-}
-
TILE_GET_INFO_MEMBER(mole_state::get_bg_tile_info)
{
UINT16 code = m_tileram[tile_index];
@@ -340,8 +333,7 @@ static MACHINE_CONFIG_START( mole, mole_state )
MCFG_SCREEN_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", "palette", mole)
- MCFG_PALETTE_ADD("palette", 8)
- MCFG_PALETTE_INIT_OWNER(mole_state, mole)
+ MCFG_PALETTE_ADD_3BIT_RBG("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -379,4 +371,4 @@ ROM_END
*
*************************************/
-GAME( 1982, mole, 0, mole, mole, driver_device, 0, ROT0, "Yachiyo Electronics, Ltd.", "Mole Attack", GAME_SUPPORTS_SAVE )
+GAME( 1982, mole, 0, mole, mole, driver_device, 0, ROT0, "Yachiyo Electronics, Ltd.", "Mole Attack", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/molecular.c b/src/mame/drivers/molecular.c
index dfde052639a..d976f124fe3 100644
--- a/src/mess/drivers/molecular.c
+++ b/src/mame/drivers/molecular.c
@@ -353,4 +353,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", GAME_IS_SKELETON )
+COMP( 1982, molecula, 0, 0, molecula, molecula, driver_device, 0, "MOLECULAR", "MOLECULAR Computer", MACHINE_IS_SKELETON )
diff --git a/src/mame/drivers/momoko.c b/src/mame/drivers/momoko.c
index 6b3f0b02651..8b8526095cd 100644
--- a/src/mame/drivers/momoko.c
+++ b/src/mame/drivers/momoko.c
@@ -332,4 +332,4 @@ ROM_START( momoko )
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%", GAME_SUPPORTS_SAVE )
+GAME( 1986, momoko, 0, momoko, momoko, driver_device, 0, ROT0, "Jaleco", "Momoko 120%", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/monacogp.c b/src/mame/drivers/monacogp.c
index dba88697c9a..b38fa260b56 100644
--- a/src/mame/drivers/monacogp.c
+++ b/src/mame/drivers/monacogp.c
@@ -265,5 +265,5 @@ ROM_END
-GAME( 1980, monacogp, 0, monacogp, 0, driver_device, 0, ROT0, "Sega", "Monaco GP (Set 1) [TTL]", GAME_IS_SKELETON )
-GAME( 1980, monacogpa, monacogp, monacogp, 0, driver_device, 0, ROT0, "Sega", "Monaco GP (Set 2) [TTL]", GAME_IS_SKELETON )
+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 )
diff --git a/src/mess/drivers/monty.c b/src/mame/drivers/monty.c
index 42172a6c357..3ac595f9691 100644
--- a/src/mess/drivers/monty.c
+++ b/src/mame/drivers/monty.c
@@ -284,5 +284,5 @@ 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", GAME_NOT_WORKING )
-COMP( 1982, mmonty, 0, 0, mmonty, monty, driver_device, 0, "Ritam", "Master Monty", GAME_NOT_WORKING )
+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 )
diff --git a/src/mame/drivers/monzagp.c b/src/mame/drivers/monzagp.c
index 57e8566b62a..f95264f2423 100644
--- a/src/mame/drivers/monzagp.c
+++ b/src/mame/drivers/monzagp.c
@@ -31,7 +31,9 @@ Lower board (MGP_01):
#include "emu.h"
#include "cpu/mcs48/mcs48.h"
+#include "machine/nvram.h"
+#include "monzagp.lh"
class monzagp_state : public driver_device
{
@@ -40,82 +42,153 @@ public:
: driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_gfxdecode(*this, "gfxdecode"),
- m_palette(*this, "palette") { }
-
- int m_coordx;
- int m_coordy;
- UINT8 *m_vram;
- int m_screenw;
- int m_bank;
-
- DECLARE_READ8_MEMBER(rng_r);
+ m_palette(*this, "palette"),
+ m_nvram(*this, "nvram"),
+ m_gfx1(*this, "gfx1"),
+ m_tile_attr(*this, "unk1"),
+ m_proms(*this, "proms"),
+ m_in0(*this, "IN0"),
+ m_in1(*this, "IN1"),
+ m_dsw(*this, "DSW")
+ { }
+
+ DECLARE_READ8_MEMBER(port_r);
DECLARE_WRITE8_MEMBER(port_w);
- DECLARE_WRITE8_MEMBER(port0_w);
DECLARE_WRITE8_MEMBER(port1_w);
DECLARE_WRITE8_MEMBER(port2_w);
+ DECLARE_READ8_MEMBER(port2_r);
DECLARE_WRITE8_MEMBER(port3_w);
virtual void video_start();
+ TIMER_DEVICE_CALLBACK_MEMBER(time_tick_timer);
DECLARE_PALETTE_INIT(monzagp);
UINT32 screen_update_monzagp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<gfxdecode_device> m_gfxdecode;
required_device<palette_device> m_palette;
+ required_device<nvram_device> m_nvram;
+ required_memory_region m_gfx1;
+ required_memory_region m_tile_attr;
+ required_memory_region m_proms;
+ required_ioport m_in0;
+ required_ioport m_in1;
+ required_ioport m_dsw;
+
+private:
+ UINT8 m_p1;
+ UINT8 m_p2;
+ UINT8 m_video_ctrl[2][8];
+ bool m_time_tick;
+ bool m_cp_ruote;
+ UINT8 m_mycar_pos;
+ UINT8 *m_vram;
+ UINT8 *m_score_ram;
};
+TIMER_DEVICE_CALLBACK_MEMBER(monzagp_state::time_tick_timer)
+{
+ m_time_tick = !m_time_tick;
+}
+
PALETTE_INIT_MEMBER(monzagp_state, monzagp)
{
}
void monzagp_state::video_start()
{
- m_screenw = 80;
- m_vram = auto_alloc_array(machine(), UINT8, 0x10000);
+ m_vram = auto_alloc_array(machine(), UINT8, 0x800);
+ m_score_ram = auto_alloc_array(machine(), UINT8, 0x100);
+ m_time_tick = 0;
+ m_cp_ruote = 0;
+ m_mycar_pos = 7*16;
+ save_pointer(NAME(m_vram), 0x800);
+ save_pointer(NAME(m_score_ram), 0x100);
+
+ m_nvram->set_base(m_score_ram, 0x100);
}
UINT32 monzagp_state::screen_update_monzagp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- int x,y;
+/*
+ for(int i=0;i<8;i++)
+ printf("%02x ", m_video_ctrl[0][i]);
+ printf(" ---- ");
+ for(int i=0;i<8;i++)
+ printf("%02x ", m_video_ctrl[1][i]);
+ printf("\n");
+*/
- if(machine().input().code_pressed_once(KEYCODE_Z))
- m_bank--;
+ bitmap.fill(0, cliprect);
- if(machine().input().code_pressed_once(KEYCODE_X))
- m_bank++;
+ // background tilemap
+ UINT8 *tile_table = m_proms->base() + 0x100;
+ UINT8 start_tile = m_video_ctrl[0][0] >> 5;
- if(machine().input().code_pressed_once(KEYCODE_Q))
+ for(int y=0; y<8; y++)
{
- m_screenw--;
- printf("%x\n",m_screenw);
- }
+ UINT16 start_x = ((m_video_ctrl[0][3] << 8) | m_video_ctrl[0][2]) ^ 0xffff;
+ bool inv = y > 3;
- if(machine().input().code_pressed_once(KEYCODE_W))
- {
- m_screenw++;
- printf("%x\n",m_screenw);
+ for(int x=0;x<64;x++)
+ {
+ UINT8 tile_attr = m_tile_attr->base()[((start_x >> 5) & 0x07) | (((start_x >> 8) & 0x3f) << 3) | ((start_x >> 6) & 0x200)];
+
+ //if (tile_attr & 0x10) printf("dark on\n");
+ //if (tile_attr & 0x20) printf("light on\n");
+ //if (tile_attr & 0x40) printf("bridge\n");
+
+ int tile_idx = tile_table[((tile_attr & 0x0f) << 4) | (inv ? 0x08 : 0) | (start_tile & 0x07)];
+ int tile = (tile_idx << 3) | (((start_x) >> 2) & 0x07);
+
+ m_gfxdecode->gfx(2)->opaque(bitmap,cliprect,
+ tile ^ 4,
+ 0,
+ 0, inv,
+ x*4,y*32);
+
+ start_x += 4;
+ }
+
+ if (y < 3)
+ start_tile++;
+ else if (y > 3)
+ start_tile--;
}
- if(machine().input().code_pressed_once(KEYCODE_A))
+ // my car sprite
+ if (m_video_ctrl[1][3] & 0x18)
{
- FILE * p=fopen("vram.bin","wb");
- fwrite(&m_vram[0],1,0x10000,p);
- fclose(p);
+ int start_sprite = (((m_video_ctrl[1][3] & 0x18)) << 3) | (m_video_ctrl[1][3] & 0x06);
+
+ if (m_cp_ruote && (m_video_ctrl[1][3] & 0x0e) == 0)
+ start_sprite |= 0x02;
+
+ for(int y=0; y<2; y++)
+ for(int x=0; x<4*8; x+=4)
+ {
+ int sprite = start_sprite | ((x << 1) & 0x38);
+
+ m_gfxdecode->gfx(1)->transpen(bitmap,cliprect,
+ (sprite ^ 0x06) + y,
+ 0,
+ 0, 0,
+ m_video_ctrl[1][2] + x, m_mycar_pos + (1 - y) * 16,
+ 3);
+ }
}
- bitmap.fill(0, cliprect);
- for(y=0;y<256;y++)
+ // characters
+ for(int y=0;y<26;y++)
{
- for(x=0;x<256;x++)
+ for(int x=0;x<40;x++)
{
- m_gfxdecode->gfx(m_bank&1)->transpen(bitmap,cliprect,
- m_vram[y*m_screenw+x],
- //(m_vram[y*m_screenw+x]&0x3f)+(m_bank>>1)*64,
+ m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,
+ m_vram[y*40+x],
0,
0, 0,
- x*8,y*8,
- 0);
-
+ x*7,y*10,
+ 1);
}
}
@@ -126,141 +199,218 @@ static ADDRESS_MAP_START( monzagp_map, AS_PROGRAM, 8, monzagp_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
ADDRESS_MAP_END
-READ8_MEMBER(monzagp_state::rng_r)
-{
- return machine().rand();
-}
-WRITE8_MEMBER(monzagp_state::port_w)
+READ8_MEMBER(monzagp_state::port_r)
{
- m_coordx=offset;//-0xc0;
- //m_vram[m_coordy*m_screenw+m_coordx]=data;
- //if(output==0xfe)
+ UINT8 data = 0xff;
+ if (!(m_p1 & 0x01)) // 8350 videoram
{
- // if(data>='A' && data <='Z')
- // printf("%.2x %.2x %c %c\n",m_coordy, offset,data, znaki[data-'A']);
- //m_vram[m_coordy*m_screenw+m_coordx]=data;
- m_vram[(m_coordx*256+m_coordy)&0x7ff]=data;
+ //printf("ext 0 r P1:%02x P2:%02x %02x\n", m_p1, m_p2, offset);
+ int addr = ((m_p2 & 0x3f) << 5) | (offset & 0x1f);
+ data = m_vram[addr];
+ }
+ if (!(m_p1 & 0x02))
+ {
+ printf("ext 1 r P1:%02x P2:%02x %02x\n", m_p1, m_p2, offset);
+ }
+ if (!(m_p1 & 0x04)) // GFX
+ {
+ //printf("ext 2 r P1:%02x P2:%02x %02x\n", m_p1, m_p2, offset);
+ int addr = ((m_p2 & 0x7f) << 5) | (offset & 0x1f);
+ data = m_gfx1->base()[addr];
+ }
+ if (!(m_p1 & 0x08))
+ {
+ //printf("ext 3 r P1:%02x P2:%02x %02x\n", m_p1, m_p2, offset);
+ data = m_in1->read();
+ }
+ if (!(m_p1 & 0x10))
+ {
+ //printf("ext 4 r P1:%02x P2:%02x %02x\n", m_p1, m_p2, offset);
+ data = (m_dsw->read() & 0x1f) | (m_in0->read() & 0xe0);
+ }
+ if (!(m_p1 & 0x20))
+ {
+ printf("ext 5 r P1:%02x P2:%02x %02x\n", m_p1, m_p2, offset);
+ }
+ if (!(m_p1 & 0x40)) // digits
+ {
+ data = m_score_ram[BITSWAP8(offset, 3,2,1,0,7,6,5,4)];
+ //printf("ext 6 r P1:%02x P2:%02x %02x\n", m_p1, m_p2, offset);
+ }
+ if (!(m_p1 & 0x80))
+ {
+ //printf("ext 7 r P1:%02x P2:%02x %02x\n", m_p1, m_p2, offset);
+ data = 0;
+ if(machine().input().code_pressed(KEYCODE_1_PAD)) data |= 0x01;
+ if(machine().input().code_pressed(KEYCODE_2_PAD)) data |= 0x02;
+ if(machine().input().code_pressed(KEYCODE_3_PAD)) data |= 0x04;
+ if(machine().input().code_pressed(KEYCODE_4_PAD)) data |= 0x08;
+
+ if (m_time_tick)
+ data |= 0x10;
}
-}
-/*
-
-10 da U T
-0f f2 F F
-0e ea E E
-0d e2 M L
-12 ca U T
-11 e2 H H
-0f da G G
-0e f2 I I
-0d ea S R
-13 e6 U T
-11 de I I
-10 f6 D D
-0f ee E E
-0e e6 S R
-0c de C C
-14 d0 Z
-10 d8 O N
-0f f0 I I
-0e e8 P O
-0d e0 C C
-14 d6 T S
-13 ee U T
-12 e6 I I
-10 de D D
-0f f6 E E
-0e ee S R
-0d e6 C C
-14 d8 Z
-11 e0 O N
-0f d8 I I
-0e f0 P O
-0d e8 C C
-*/
+ return data;
+}
+WRITE8_MEMBER(monzagp_state::port_w)
+{
+ if (!(m_p1 & 0x01)) // 8350 videoram
+ {
+ //printf("ext 0 w P1:%02x P2:%02x, %02x = %02x\n", m_p1, m_p2, offset, data);
+ int addr = ((m_p2 & 0x3f) << 5) | (offset & 0x1f);
+ m_vram[addr] = data;
+ }
+ if (!(m_p1 & 0x02))
+ {
+ printf("ext 1 w P1:%02x P2:%02x, %02x = %02x\n", m_p1, m_p2, offset, data);
+ }
+ if (!(m_p1 & 0x04)) // GFX
+ {
+ //printf("ext 2 w P1:%02x P2:%02x, %02x = %02x\n", m_p1, m_p2, offset, data);
+ int addr = ((m_p2 & 0x7f) << 5) | (offset & 0x1f);
+ if (addr < 0x400)
+ {
+ static int pt[] = { 0x0e, 0x0c, 0x0d, 0x08, 0x09, 0x0a, 0x0b, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x0f };
+ m_gfx1->base()[addr] = (pt[(data >> 4) & 0x0f] << 4) | pt[data & 0x0f];
+ m_gfxdecode->gfx(0)->mark_dirty(addr >> 4);
+ }
+ }
+ if (!(m_p1 & 0x08))
+ {
+ //printf("ext 3 w P1:%02x P2:%02x, %02x = %02x\n", m_p1, m_p2, offset, data);
+ }
+ if (!(m_p1 & 0x10))
+ {
+ printf("ext 4 w P1:%02x P2:%02x, %02x = %02x\n", m_p1, m_p2, offset, data);
+ }
+ if (!(m_p1 & 0x20))
+ {
+ //printf("ext 5 w P1:%02x P2:%02x, %02x = %02x\n", m_p1, m_p2, offset, data);
+ }
+ if (!(m_p1 & 0x40)) // digits
+ {
+ //printf("ext 6 w P1:%02x P2:%02x, %02x = %02x\n", m_p1, m_p2, offset, data);
+ offs_t ram_offset = BITSWAP8(offset, 3,2,1,0,7,6,5,4);
+ m_score_ram[ram_offset] = data & 0x0f;
-WRITE8_MEMBER(monzagp_state::port0_w)
-{
-// printf("P0 %x = %x\n",space.device().safe_pc(),data);
+ if ((ram_offset & 0x07) == 0)
+ {
+ // 74LS47 BCD-to-Seven-Segment Decoder
+ static UINT8 bcd2hex[] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7c, 0x07, 0x7f, 0x67, 0x58, 0x4c, 0x62, 0x49, 0x78, 0x00 };
+ output_set_digit_value(ram_offset >> 3, bcd2hex[data & 0x0f]);
+ }
+ }
+ if (!(m_p1 & 0x80))
+ {
+ //printf("ext 7 w P1:%02x P2:%02x, %02x = %02x\n", m_p1, m_p2, offset, data);
+ m_video_ctrl[0][(offset>>0) & 0x07] = data;
+ m_video_ctrl[1][(offset>>3) & 0x07] = data;
+ }
}
WRITE8_MEMBER(monzagp_state::port1_w)
{
// printf("P1 %x = %x\n",space.device().safe_pc(),data);
+ m_p1 = data;
}
-WRITE8_MEMBER(monzagp_state::port2_w)
+READ8_MEMBER(monzagp_state::port2_r)
{
-// printf("P2 %x = %x\n",space.device().safe_pc(),data);
- m_coordy=data;
+ return m_p2;
}
-#if 0
-WRITE8_MEMBER(monzagp_state::port3_w)
+WRITE8_MEMBER(monzagp_state::port2_w)
{
- output=data;
+// printf("P2 %x = %x\n",space.device().safe_pc(),data);
+ m_p2 = data;
}
-#endif
-
-/*
-
-#define I8039_p0 0x100
-#define I8039_p1 0x101
-#define I8039_p2 0x102
-#define I8039_p4 0x104
-#define I8039_p5 0x105
-#define I8039_p6 0x106
-#define I8039_p7 0x107
-#define I8039_t0 0x110
-#define I8039_t1 0x111
-#define I8039_bus 0x120
-*/
static ADDRESS_MAP_START( monzagp_io, AS_IO, 8, monzagp_state )
- AM_RANGE(0x00, 0xff) AM_READWRITE(rng_r,port_w)
- AM_RANGE(0x100, 0x100) AM_WRITE(port0_w)
- AM_RANGE(0x101, 0x101) AM_WRITE(port1_w)
- AM_RANGE(0x102, 0x102) AM_WRITE(port2_w)
- AM_RANGE(0x104, 0x104) AM_READ(rng_r)
+ AM_RANGE(0x00, 0xff) AM_READWRITE(port_r, port_w)
+ AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_WRITE(port1_w)
+ AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_READWRITE(port2_r, port2_w)
ADDRESS_MAP_END
static INPUT_PORTS_START( monzagp )
PORT_START("IN0")
+ PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_TILT )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
+
+ PORT_START("IN1")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 )
+
+ PORT_START("DSW")
+ PORT_DIPNAME( 0x03, 0x00, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW:1,2")
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) )
+ PORT_DIPNAME( 0x0c, 0x00, DEF_STR( Coin_B ) ) PORT_DIPLOCATION("SW:3,4")
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( 1C_3C ) )
+ PORT_DIPSETTING( 0x0c, DEF_STR( 2C_1C ) )
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW:5,6")
+ PORT_DIPSETTING( 0x00, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( Medium ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( Medium ) )
+ PORT_DIPSETTING( 0x30, DEF_STR( Hard ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW:7")
+ PORT_DIPSETTING( 0x00, DEF_STR( Unused ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( Unused ) )
+ PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW:8")
+ PORT_DIPSETTING( 0x00, DEF_STR( Unused ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( Unused ) )
INPUT_PORTS_END
-static const gfx_layout tile_layout1 =
+static const gfx_layout char_layout =
{
- 8,8,
+ 7,10,
RGN_FRAC(1,1),
- 1, /* 2 bit per pixel */
+ 1,
{ 0 },
- { 0,1,2,3,4,5,6,7 },
- { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
+ { STEP8(1,1) },
+ { STEP16(0,8) },
8*8*2
};
-static const gfx_layout tile_layout2 =
+static const gfx_layout tile_layout =
{
- 8,8,
+ 4, 32,
RGN_FRAC(1,1),
- 1, /* 2 bit per pixel */
- { 8*8 },
- { 0,1,2,3,4,5,6,7 },
- { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
- 8*8*2
+ 2,
+ { STEP2(0,4) },
+ { STEP4(0,1) },
+ { STEP32(0,4*2) },
+ 32*4*2,
+};
+
+static const gfx_layout sprite_layout =
+{
+ 4, 16,
+ RGN_FRAC(1,1),
+ 2,
+ { STEP2(0,4) },
+ { STEP4(0,1) },
+ { STEP16(0,4*2) },
+ 16*4*2,
};
+
static GFXDECODE_START( monzagp )
- GFXDECODE_ENTRY( "gfx1", 0x0000, tile_layout1, 0, 8 )
- GFXDECODE_ENTRY( "gfx1", 0x0000, tile_layout2, 0, 8 )
+ GFXDECODE_ENTRY( "gfx1", 0x0000, char_layout, 0, 8 )
+ GFXDECODE_ENTRY( "gfx2", 0x0000, sprite_layout, 0, 8 )
+ GFXDECODE_ENTRY( "gfx3", 0x0000, tile_layout, 0, 8 )
GFXDECODE_END
static MACHINE_CONFIG_START( monzagp, monzagp_state )
- MCFG_CPU_ADD("maincpu", I8035, 12000000/32) /* 400KHz ??? - Main board Crystal is 12MHz */
+ 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)
MCFG_CPU_VBLANK_INT_DRIVER("screen", monzagp_state, irq0_line_hold)
@@ -278,6 +428,10 @@ static MACHINE_CONFIG_START( monzagp, monzagp_state )
MCFG_PALETTE_INIT_OWNER(monzagp_state, monzagp)
MCFG_GFXDECODE_ADD("gfxdecode", "palette", monzagp)
+
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("time_tick_timer", monzagp_state, time_tick_timer, attotime::from_hz(4))
+
+ MCFG_NVRAM_ADD_NO_FILL("nvram")
MACHINE_CONFIG_END
ROM_START( monzagp )
@@ -287,20 +441,24 @@ ROM_START( monzagp )
ROM_LOAD( "14.8a", 0x0800, 0x0400, CRC(16a1b36c) SHA1(6bc6bac37febb7c0fe18dc9b0a4e3a71ad1faafd) )
ROM_LOAD( "15.9a", 0x0c00, 0x0400, CRC(ee6d9cc6) SHA1(0aa9efe812c1d4865fee2bbb1764a135dd642790) )
- ROM_REGION( 0x10000, "gfx1", 0 )
- ROM_LOAD( "11.8d", 0x0000, 0x0400, CRC(47607a83) SHA1(91ce272c4af3e1994db71d2239b68879dd279347) )
+ ROM_REGION( 0x1000, "gfx1", 0 )
ROM_LOAD( "10.7d", 0x0400, 0x0400, CRC(d2bedd67) SHA1(9b75731d2701f5b9ce0446141c5cd55b05671ec1) )
- ROM_LOAD( "9.10j", 0x0800, 0x0400, CRC(474ab63f) SHA1(6ba623d1768ed92b39e8f76c2f2eed7874955f1b) )
- ROM_LOAD( "6.4f", 0x0c00, 0x0400, CRC(934d2070) SHA1(e742bfcb910e8747780d32ca66efd7e343190fb4) )
- ROM_LOAD( "7.3f", 0x1000, 0x0400, CRC(08f29f60) SHA1(9ca454e848aa986ff9eccaead3fec5076df2e4d3) )
- ROM_LOAD( "8.1f", 0x1400, 0x0400, CRC(99ce2753) SHA1(f4540700ea909ba1be34ac2c33dafd8ec67a2bb7) )
+ ROM_LOAD( "11.8d", 0x0800, 0x0400, CRC(47607a83) SHA1(91ce272c4af3e1994db71d2239b68879dd279347) )
+
+ ROM_REGION( 0x1000, "gfx2", 0 )
+ ROM_LOAD( "9.10j", 0x0000, 0x0400, CRC(474ab63f) SHA1(6ba623d1768ed92b39e8f76c2f2eed7874955f1b) )
+ ROM_LOAD( "6.4f", 0x0400, 0x0400, CRC(934d2070) SHA1(e742bfcb910e8747780d32ca66efd7e343190fb4) )
+ ROM_LOAD( "7.3f", 0x0800, 0x0400, CRC(08f29f60) SHA1(9ca454e848aa986ff9eccaead3fec5076df2e4d3) )
+ ROM_LOAD( "8.1f", 0x0c00, 0x0400, CRC(99ce2753) SHA1(f4540700ea909ba1be34ac2c33dafd8ec67a2bb7) )
+
+ ROM_REGION( 0x1000, "gfx3", 0 )
+ ROM_LOAD( "5.9f", 0x0000, 0x0400, CRC(5abd1ef6) SHA1(1bc79225c1be2821930fdb8e821a70c7ac8683ab) )
+ ROM_LOAD( "4.10f", 0x0400, 0x0400, CRC(a426a371) SHA1(d6023bebf6924d1820e631ee53896100e5b256a5) )
+ ROM_LOAD( "3.12f", 0x0800, 0x0400, CRC(e5591074) SHA1(ac756ee605d932d7c1c3eddbe2b9c6f78dad6ce8) )
+ ROM_LOAD( "2.13f", 0x0c00, 0x0400, BAD_DUMP CRC(1943122f) SHA1(3d343314fcb594560b4a280e795c8cea4a3200c9) ) /* missing, so use rom from below. Not confirmed to 100% same */
ROM_REGION( 0x10000, "unk1", 0 )
ROM_LOAD( "1.9c", 0x0000, 0x0400, CRC(005d5fed) SHA1(145a860751ef7d99129b7242aacac7a4e1e14a51) )
- ROM_LOAD( "2.13f", 0x0400, 0x0400, BAD_DUMP CRC(1943122f) SHA1(3d343314fcb594560b4a280e795c8cea4a3200c9) ) /* missing, so use rom from below. Not confirmed to 100% same */
- ROM_LOAD( "3.12f", 0x0800, 0x0400, CRC(e5591074) SHA1(ac756ee605d932d7c1c3eddbe2b9c6f78dad6ce8) )
- ROM_LOAD( "4.10f", 0x0c00, 0x0400, CRC(a426a371) SHA1(d6023bebf6924d1820e631ee53896100e5b256a5) )
- ROM_LOAD( "5.9f", 0x1000, 0x0400, CRC(5abd1ef6) SHA1(1bc79225c1be2821930fdb8e821a70c7ac8683ab) )
ROM_REGION( 0x0700, "proms", 0 )
ROM_LOAD( "63s140.1", 0x0000, 0x0100, CRC(5123c83e) SHA1(d8ff06af421d3dae65bc9b0a081ed56249ef61ab) )
@@ -320,20 +478,24 @@ ROM_START( monzagpb )
ROM_LOAD( "m14.8a", 0x0800, 0x0400, CRC(16a1b36c) SHA1(6bc6bac37febb7c0fe18dc9b0a4e3a71ad1faafd) )
ROM_LOAD( "m15bi.9a", 0x0c00, 0x0400, CRC(ee6d9cc6) SHA1(0aa9efe812c1d4865fee2bbb1764a135dd642790) )
- ROM_REGION( 0x10000, "gfx1", 0 )
- ROM_LOAD( "m11.8d", 0x0000, 0x0400, CRC(5b4a7ffa) SHA1(50fa073437febe516065cd83fbaf85b596c4f3c8) ) /* differs from above */
+ ROM_REGION( 0x1000, "gfx1", 0 )
ROM_LOAD( "m10.7d", 0x0400, 0x0400, CRC(19db00af) SHA1(c73da9c2fdbdb1b52a7354ba169af43b26fcb4cc) ) /* differs from above */
- ROM_LOAD( "m9.10j", 0x0800, 0x0400, CRC(474ab63f) SHA1(6ba623d1768ed92b39e8f76c2f2eed7874955f1b) )
- ROM_LOAD( "m6.4f", 0x0c00, 0x0400, CRC(934d2070) SHA1(e742bfcb910e8747780d32ca66efd7e343190fb4) )
- ROM_LOAD( "m7.3f", 0x1000, 0x0400, CRC(08f29f60) SHA1(9ca454e848aa986ff9eccaead3fec5076df2e4d3) )
- ROM_LOAD( "m8.1f", 0x1400, 0x0400, CRC(99ce2753) SHA1(f4540700ea909ba1be34ac2c33dafd8ec67a2bb7) )
+ ROM_LOAD( "m11.8d", 0x0800, 0x0400, CRC(5b4a7ffa) SHA1(50fa073437febe516065cd83fbaf85b596c4f3c8) ) /* differs from above */
+
+ ROM_REGION( 0x1000, "gfx2", 0 )
+ ROM_LOAD( "m9.10j", 0x0000, 0x0400, CRC(474ab63f) SHA1(6ba623d1768ed92b39e8f76c2f2eed7874955f1b) )
+ ROM_LOAD( "m6.4f", 0x0400, 0x0400, CRC(934d2070) SHA1(e742bfcb910e8747780d32ca66efd7e343190fb4) )
+ ROM_LOAD( "m7.3f", 0x0800, 0x0400, CRC(08f29f60) SHA1(9ca454e848aa986ff9eccaead3fec5076df2e4d3) )
+ ROM_LOAD( "m8.1f", 0x0c00, 0x0400, CRC(99ce2753) SHA1(f4540700ea909ba1be34ac2c33dafd8ec67a2bb7) )
+
+ ROM_REGION( 0x1000, "gfx3", 0 )
+ ROM_LOAD( "m5.9f", 0x0000, 0x0400, CRC(5abd1ef6) SHA1(1bc79225c1be2821930fdb8e821a70c7ac8683ab) )
+ ROM_LOAD( "m4.10f", 0x0400, 0x0400, CRC(a426a371) SHA1(d6023bebf6924d1820e631ee53896100e5b256a5) )
+ ROM_LOAD( "m3.12f", 0x0800, 0x0400, CRC(e5591074) SHA1(ac756ee605d932d7c1c3eddbe2b9c6f78dad6ce8) )
+ ROM_LOAD( "m2.13f", 0x0c00, 0x0400, CRC(1943122f) SHA1(3d343314fcb594560b4a280e795c8cea4a3200c9) )
ROM_REGION( 0x10000, "unk1", 0 )
ROM_LOAD( "m1.9c", 0x0000, 0x0400, CRC(005d5fed) SHA1(145a860751ef7d99129b7242aacac7a4e1e14a51) )
- ROM_LOAD( "m2.13f", 0x0400, 0x0400, CRC(1943122f) SHA1(3d343314fcb594560b4a280e795c8cea4a3200c9) )
- ROM_LOAD( "m3.12f", 0x0800, 0x0400, CRC(e5591074) SHA1(ac756ee605d932d7c1c3eddbe2b9c6f78dad6ce8) )
- ROM_LOAD( "m4.10f", 0x0c00, 0x0400, CRC(a426a371) SHA1(d6023bebf6924d1820e631ee53896100e5b256a5) )
- ROM_LOAD( "m5.9f", 0x1000, 0x0400, CRC(5abd1ef6) SHA1(1bc79225c1be2821930fdb8e821a70c7ac8683ab) )
ROM_REGION( 0x0700, "proms", 0 )
ROM_LOAD( "6300.1", 0x0000, 0x0100, CRC(5123c83e) SHA1(d8ff06af421d3dae65bc9b0a081ed56249ef61ab) )
@@ -346,5 +508,5 @@ ROM_START( monzagpb )
ROM_END
-GAME( 1981, monzagp, 0, monzagp, monzagp, driver_device, 0, ROT270, "Olympia", "Monza GP", GAME_NOT_WORKING|GAME_NO_SOUND )
-GAME( 1981, monzagpb, monzagp, monzagp, monzagp, driver_device, 0, ROT270, "bootleg", "Monza GP (bootleg)", GAME_NOT_WORKING|GAME_NO_SOUND )
+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 )
diff --git a/src/mame/drivers/moo.c b/src/mame/drivers/moo.c
index 18bba755490..73bcdaab223 100644
--- a/src/mame/drivers/moo.c
+++ b/src/mame/drivers/moo.c
@@ -995,12 +995,12 @@ 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)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1992, moomesauac, moomesa, moo, moo, driver_device, 0, ROT0, "Konami", "Wild West C.O.W.-Boys of Moo Mesa (ver UAC)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1992, moomesauab, moomesa, moo, moo, driver_device, 0, ROT0, "Konami", "Wild West C.O.W.-Boys of Moo Mesa (ver UAB)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1992, moomesaaab, moomesa, moo, moo, driver_device, 0, ROT0, "Konami", "Wild West C.O.W.-Boys of Moo Mesa (ver AAB)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1992, moomesabl, moomesa, moobl, moo, driver_device, 0, ROT0, "bootleg", "Wild West C.O.W.-Boys of Moo Mesa (bootleg)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) // based on Version AA
-GAME( 1992, bucky, 0, bucky, bucky, driver_device, 0, ROT0, "Konami", "Bucky O'Hare (ver EAB)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1992, buckyea, bucky, bucky, bucky, driver_device, 0, ROT0, "Konami", "Bucky O'Hare (ver EA)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1992, buckyuab, bucky, bucky, bucky, driver_device, 0, ROT0, "Konami", "Bucky O'Hare (ver UAB)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1992, buckyaab, bucky, bucky, bucky, driver_device, 0, ROT0, "Konami", "Bucky O'Hare (ver AAB)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+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, 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 )
diff --git a/src/mame/drivers/mosaic.c b/src/mame/drivers/mosaic.c
index 08eda5435e4..edbbcff08f9 100644
--- a/src/mame/drivers/mosaic.c
+++ b/src/mame/drivers/mosaic.c
@@ -340,6 +340,6 @@ ROM_END
-GAME( 1990, mosaic, 0, mosaic, mosaic, driver_device, 0, ROT0, "Space", "Mosaic", GAME_SUPPORTS_SAVE )
-GAME( 1990, mosaica, mosaic, mosaic, mosaic, driver_device, 0, ROT0, "Space (Fuuki license)", "Mosaic (Fuuki)", GAME_SUPPORTS_SAVE )
-GAME( 1992, gfire2, 0, gfire2, gfire2, driver_device, 0, ROT0, "Topis Corp", "Golden Fire II", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/mouser.c b/src/mame/drivers/mouser.c
index 477b2469d5d..ba1dd9a6722 100644
--- a/src/mame/drivers/mouser.c
+++ b/src/mame/drivers/mouser.c
@@ -298,5 +298,5 @@ DRIVER_INIT_MEMBER(mouser_state,mouser)
}
-GAME( 1983, mouser, 0, mouser, mouser, mouser_state, mouser, ROT90, "UPL", "Mouser", GAME_SUPPORTS_SAVE )
-GAME( 1983, mouserc, mouser, mouser, mouser, mouser_state, mouser, ROT90, "UPL (Cosmos license)", "Mouser (Cosmos)", GAME_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/mess/drivers/mpf1.c b/src/mame/drivers/mpf1.c
index d114d18e7bf..b8ed818e0e8 100644
--- a/src/mess/drivers/mpf1.c
+++ b/src/mame/drivers/mpf1.c
@@ -480,4 +480,4 @@ DRIVER_INIT_MEMBER(mpf1_state,mpf1)
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", GAME_NOT_WORKING)
+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.c b/src/mame/drivers/mps1230.c
new file mode 100644
index 00000000000..3df393372ba
--- /dev/null
+++ b/src/mame/drivers/mps1230.c
@@ -0,0 +1,162 @@
+// license:BSD-3-Clause
+// copyright-holders:R. Belmont
+/***************************************************************************
+
+ mps1230.c - Commodore MPS-1230 dot-matrix printer
+
+ Skeleton made September, 2015 by R. Belmont
+
+-------------------------------------
+
+Commodore MPS-1230 Dot Matrix Printer
+Commodore 1988/89
+
+This is a 9-pin dot matrix printer manufactured by Commodore (possibly under license from Olivetti)
+The printer is based on the Olivetti DM100 9-pin dot matrix printer with an added Commodore
+serial port and other Commodore modifications. The service manual shows the PCB as 'DM10XC2',
+however the actual PCB does not exactly match that shown in the service manual.
+The firmware is modified by Commodore to support the CBM ASCII character and command set.
+
+The printer comes standard with Centronics Parallel and Commodore Serial ports, sheet feed
+and tractor feed and can be used with Commodore 64, 128/D, Amiga and IBM compatibles.
+
+The ink ribbons are compatible with, and used in the following printers....
+Commodore MPS 1230 printer
+Olivetti DM 100, DM 90-1, DM 95, DM 99 & PR 98 printers
+Birch BR-600 POS/cash register
+Facit E 440 printer
+Philips NMS 1016 & NMS 1432 printers
+Senor Science K-700 & K-750 POS/cash register
+Triumph Adler MPR 7120 printer
+
+
+PCB Layout
+----------
+
+BA235
+OLIVETTI OPE MADE IN HONGKONG
+750746Y00-A-B9
+
+ CENTRONICS SERIAL
+|-|------------|--------|---|----------|
+|J899 J369 9306 7407 J02G L387A|
+| J169|
+| D7810 6264 27512 |
+|J708 MB624207 |
+|-----| |
+ | 11.06MHz J532 |
+ | |
+ | 555 L293 L6210 2803 2803 |
+ |J404 74LS14 J477 2803 J821|
+ |--------------------------------|
+Notes: (all IC's shown)
+ D7810 - NEC D7810HG ROM-less Microcontroller, clock input 11.06MHz (64 pin 'spider' package)
+ MB624207 - Fujitsu MB624207U MB62XXXX UHB Series 1.5um CMOS Gate Array marked 'OPE 200' (SDIP64)
+ 6264 - 8k x8 SRAM (DIP28)
+ 27512 - TMS27C512 64k x8 EPROM (DIP28)
+ S/W revisions dumped:
+ 'Release R - 1.1D 10/NOV/1988' with label 'PDL2'
+ 'Release R - 2.1E 09/AUG/1989' with label 'PEEK'
+ L387A - ST L387A 5V @ 0.5A Voltage Regulator
+ 2803 - ULN2803A 8-Channel Darlinton Driver (DIP18)
+ L6210 - ST L6210R Dual Schottky Diode Bridge (DIP16)
+ L293 - ST L293ER Quad Push-Pull Driver (DIP20)
+ 74LS14 - National DM74LS14N Hex Inverter with Schmitt Trigger (DIP14)
+ 555 - Texas Instruments NE555P Timer (DIP8)
+ 9306 - National NMC9306N 32bytes Serial EEPROM (DIP8)
+ 7407 - Texas Instruments ON7404N Hex Buffer with High Voltage Open-Collector Outputs (DIP14)
+ J169 - 3-pin 9v power input connector (from built-in transformer)
+ J821 - 6-pin connector for paper feed motor
+ J532 - 12-pin connector for print head
+ J477 - 2-pin print head transport motor connector
+ J404 - 4-pin connector for paper-out photosensor
+ J708 - 6-pin connector for transport motor encoder
+ J899 - 15-pin connector for ribbon cable for console buttons and leds (feed, online etc)
+ J369 - 36-pin centronics parallel connector
+ J02G - 6-pin Commodore serial bus connector
+
+************************************************************************/
+
+#include "emu.h"
+
+#include "cpu/upd7810/upd7810.h"
+
+#define CPU_TAG "maincpu"
+
+class mps1230_state : public driver_device
+{
+public:
+ mps1230_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag),
+ m_maincpu(*this, CPU_TAG)
+ { }
+
+ required_device<cpu_device> m_maincpu;
+
+ virtual void machine_start();
+ virtual void machine_reset();
+
+private:
+};
+
+/***************************************************************************
+ PARAMETERS
+***************************************************************************/
+
+/***************************************************************************
+ START/RESET
+***************************************************************************/
+
+void mps1230_state::machine_start()
+{
+}
+
+void mps1230_state::machine_reset()
+{
+}
+
+/***************************************************************************
+ ADDRESS MAP
+***************************************************************************/
+
+static ADDRESS_MAP_START( mps1230_map, AS_PROGRAM, 8, mps1230_state )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM AM_REGION("maincpu", 0)
+ AM_RANGE(0xc000, 0xdfff) AM_RAM // as per the service manual
+ AM_RANGE(0xff00, 0xffff) AM_RAM // tested at PC=77, then used for the 7810's stack
+ADDRESS_MAP_END
+
+/***************************************************************************
+ INPUT PORTS
+***************************************************************************/
+
+static INPUT_PORTS_START( mps1230 )
+INPUT_PORTS_END
+
+static MACHINE_CONFIG_START( mps1230, mps1230_state )
+ MCFG_CPU_ADD(CPU_TAG, UPD7810, 11060000)
+ MCFG_CPU_PROGRAM_MAP(mps1230_map)
+MACHINE_CONFIG_END
+
+/***************************************************************************
+
+ Game driver(s)
+
+***************************************************************************/
+
+ROM_START(mps1000)
+ ROM_REGION(0x10000, "maincpu", 0)
+ // ver 2.20, 06/DEC/1986 (But it could also perhaps mean 12/JUN/1986)
+ // I can't tell the PCB reference because this was dumped from spare EPROMs from a drawer
+ // The dump seems to be good because the data content of all of my 4 spare EPROMs matched perfectly.
+ ROM_LOAD( "mps_1000_vers_2.20_12-06-86.rom", 0x000000, 0x02000, CRC(0a91ea8a) SHA1(ccb679f3d1f7f4eddb4e8899fe9e9a594dcfca5d) )
+ROM_END
+
+ROM_START(mps1230)
+ ROM_REGION(0x10000, "maincpu", 0)
+ ROM_LOAD( "pdl2.f03ee", 0x000000, 0x010000, CRC(f8a9f45c) SHA1(4e7bb0d382c55432665f5576b6a5cd3c4c33bd8e) ) // ver 1.1D, 10/NOV/1988
+ 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 )
diff --git a/src/mame/drivers/mpu12wbk.c b/src/mame/drivers/mpu12wbk.c
index fbbc34ee1c5..51b3307b5b9 100644
--- a/src/mame/drivers/mpu12wbk.c
+++ b/src/mame/drivers/mpu12wbk.c
@@ -559,4 +559,4 @@ DRIVER_INIT_MEMBER(mpu12wbk_state, mpu12wbk)
*************************/
/* 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)", GAME_NO_SOUND | GAME_NOT_WORKING )
+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.c b/src/mame/drivers/mpu2.c
index d39df506596..1ded190b0b2 100644
--- a/src/mame/drivers/mpu2.c
+++ b/src/mame/drivers/mpu2.c
@@ -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)", GAME_IS_SKELETON_MECHANICAL)
-GAME(198?, m2svlite, 0, mpu2, mpu2, driver_device, 0, ROT0, "Barcrest", "Silver Lights (Barcrest) (MPU2)", GAME_IS_SKELETON_MECHANICAL)
+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)
diff --git a/src/mame/drivers/mpu3.c b/src/mame/drivers/mpu3.c
index 797cc687dff..106db35cbae 100644
--- a/src/mame/drivers/mpu3.c
+++ b/src/mame/drivers/mpu3.c
@@ -1570,7 +1570,7 @@ ROM_END
/* Barcrest */
-#define GAME_FLAGS GAME_NOT_WORKING|GAME_NO_SOUND|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL
+#define GAME_FLAGS MACHINE_NOT_WORKING|MACHINE_NO_SOUND|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL
GAME( 198?, m3tst, 0, mpu3base, mpu3, driver_device, 0, ROT0, "Barcrest","MPU3 Unit Test (Program 5) (Barcrest) (MPU3)",GAME_FLAGS )
diff --git a/src/mame/drivers/mpu4.c b/src/mame/drivers/mpu4.c
index 572ce91e335..f96fd66d576 100644
--- a/src/mame/drivers/mpu4.c
+++ b/src/mame/drivers/mpu4.c
@@ -2375,11 +2375,11 @@ ROM_END
/* Barcrest */
-GAME( 198?, m4tst2, 0, mod2 , mpu4, mpu4_state, m4default, ROT0, "Barcrest","MPU4 Unit Test (Program 2)",GAME_MECHANICAL )
-GAME( 198?, m4clr, 0, mod2 , mpu4, mpu4_state, m4default, ROT0, "Barcrest","MPU4 Meter Clear ROM",GAME_MECHANICAL )
-GAME( 198?, m4rltst, 0, mod2 , mpu4, mpu4_state, m4default, ROT0, "Barcrest","MPU4 Reel Test (3.0)",GAME_MECHANICAL )
+GAME( 198?, m4tst2, 0, mod2 , mpu4, mpu4_state, m4default, ROT0, "Barcrest","MPU4 Unit Test (Program 2)",MACHINE_MECHANICAL )
+GAME( 198?, m4clr, 0, mod2 , mpu4, mpu4_state, m4default, ROT0, "Barcrest","MPU4 Meter Clear ROM",MACHINE_MECHANICAL )
+GAME( 198?, m4rltst, 0, mod2 , mpu4, mpu4_state, m4default, ROT0, "Barcrest","MPU4 Reel Test (3.0)",MACHINE_MECHANICAL )
-#define GAME_FLAGS (GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK)
+#define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK)
@@ -2557,7 +2557,7 @@ GAME(199?, m4vivalvd,m4vivalv ,mod4oki ,mpu4 , mpu4_state,m4d
GAME(199?, m4toprn ,0 ,mod2 ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Top Run (Barcrest) (Dutch) (MPU4)",GAME_FLAGS ) // unique behavior (START UP IN countdown)
-GAME(199?, m4magtbo ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Magic Turbo (Barcrest) (MPU4)",GAME_FLAGS )
+GAME(199?, m4magtbo ,0 ,mod4oki ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Magic Turbo (Barcrest) (MPU4)",GAME_FLAGS )
// bwb/nova?
GAME(199?, m4ordmnd ,0 ,mod4oki ,mpu4 , mpu4_state,m4default_big ,ROT0, "Barcrest","Oriental Diamonds (Barcrest) (German) (MPU4)",GAME_FLAGS )
@@ -2718,19 +2718,19 @@ GAME(199?, m4booze, 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0,
GAME(199?, m4cbing, 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Redpoint Systems","Cherry Bingo (Redpoint Systems) (MPU4)",GAME_FLAGS ) // custom sound system
-GAME( 199?, m4nod , 0 , mod4oki , mpu4 , mpu4_state, m4default , 0, "Eurotech", "Nod And A Wink (Eurotech) (MPU4)",GAME_FLAGS|GAME_MECHANICAL|GAME_SUPPORTS_SAVE) // this has valid strings in it BEFORE the bfm decode, but decodes to valid code, does it use some funky mapping, or did they just fill unused space with valid looking data?
+GAME( 199?, m4nod , 0 , mod4oki , mpu4 , mpu4_state, m4default , 0, "Eurotech", "Nod And A Wink (Eurotech) (MPU4)",GAME_FLAGS|MACHINE_MECHANICAL|MACHINE_SUPPORTS_SAVE) // this has valid strings in it BEFORE the bfm decode, but decodes to valid code, does it use some funky mapping, or did they just fill unused space with valid looking data?
// not sure about several of the nova ones
-GAME( 199?, m4aliz , 0 , mod4oki , mpu4 , mpu4_state, m4default , 0, "Qps", "AlizBaz (Qps) (German) (MPU4)",GAME_FLAGS|GAME_MECHANICAL|GAME_SUPPORTS_SAVE)
-GAME( 199?, m4coney , 0 , mod4oki , mpu4 , mpu4_state, m4default , 0, "Qps", "Coney Island (Qps) (MPU4)",GAME_FLAGS|GAME_MECHANICAL|GAME_SUPPORTS_SAVE)
+GAME( 199?, m4aliz , 0 , mod4oki , mpu4 , mpu4_state, m4default , 0, "Qps", "AlizBaz (Qps) (German) (MPU4)",GAME_FLAGS|MACHINE_MECHANICAL|MACHINE_SUPPORTS_SAVE)
+GAME( 199?, m4coney , 0 , mod4oki , mpu4 , mpu4_state, m4default , 0, "Qps", "Coney Island (Qps) (MPU4)",GAME_FLAGS|MACHINE_MECHANICAL|MACHINE_SUPPORTS_SAVE)
GAME( 199?, m4crzjk , 0 , mod2 , mpu4 , mpu4_state, m4default , 0, "Nova?", "Crazy Jokers (Nova?) (MPU4)",GAME_FLAGS ) // COIN ALM
-GAME( 199?, m4c2 , 0 , mod4oki , mpu4 , mpu4_state, m4default , 0, "Nova?", "Circus Circus 2 (Nova?) (MPU4)",GAME_FLAGS|GAME_MECHANICAL|GAME_SUPPORTS_SAVE) // COIN ALM
+GAME( 199?, m4c2 , 0 , mod4oki , mpu4 , mpu4_state, m4default , 0, "Nova?", "Circus Circus 2 (Nova?) (MPU4)",GAME_FLAGS|MACHINE_MECHANICAL|MACHINE_SUPPORTS_SAVE) // COIN ALM
// regular barcrest structure
-GAME( 199?, m4vivan , 0 , mod4oki , mpu4 , mpu4_state, m4default , 0, "Nova", "Viva Las Vegas (Nova) (MPU4)",GAME_FLAGS|GAME_MECHANICAL|GAME_SUPPORTS_SAVE)
-GAME( 199?, m4spotln , 0 , mod4oki , mpu4 , mpu4_state, m4default , 0, "Nova", "Spotlight (Nova) (MPU4)",GAME_FLAGS|GAME_MECHANICAL|GAME_SUPPORTS_SAVE)
-GAME( 199?, m4mgpn , 0 , mod4oki , mpu4 , mpu4_state, m4default , 0, "Nova", "Monaco Grand Prix (Nova) (MPU4)",GAME_FLAGS|GAME_MECHANICAL|GAME_SUPPORTS_SAVE)
-GAME( 199?, m4goldnn , 0 , mod4oki , mpu4 , mpu4_state, m4default , 0, "Nova", "Golden Years (Nova) (MPU4)",GAME_FLAGS|GAME_MECHANICAL|GAME_SUPPORTS_SAVE)
+GAME( 199?, m4vivan , 0 , mod4oki , mpu4 , mpu4_state, m4default , 0, "Nova", "Viva Las Vegas (Nova) (MPU4)",GAME_FLAGS|MACHINE_MECHANICAL|MACHINE_SUPPORTS_SAVE)
+GAME( 199?, m4spotln , 0 , mod4oki , mpu4 , mpu4_state, m4default , 0, "Nova", "Spotlight (Nova) (MPU4)",GAME_FLAGS|MACHINE_MECHANICAL|MACHINE_SUPPORTS_SAVE)
+GAME( 199?, m4mgpn , 0 , mod4oki , mpu4 , mpu4_state, m4default , 0, "Nova", "Monaco Grand Prix (Nova) (MPU4)",GAME_FLAGS|MACHINE_MECHANICAL|MACHINE_SUPPORTS_SAVE)
+GAME( 199?, m4goldnn , 0 , mod4oki , mpu4 , mpu4_state, m4default , 0, "Nova", "Golden Years (Nova) (MPU4)",GAME_FLAGS|MACHINE_MECHANICAL|MACHINE_SUPPORTS_SAVE)
diff --git a/src/mame/drivers/mpu4avan.c b/src/mame/drivers/mpu4avan.c
index 8214a67461b..a87921f4c78 100644
--- a/src/mame/drivers/mpu4avan.c
+++ b/src/mame/drivers/mpu4avan.c
@@ -14,7 +14,7 @@
MACHINE_CONFIG_EXTERN( mod4oki );
INPUT_PORTS_EXTERN( mpu4 );
-#define GAME_FLAGS (GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL)
+#define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL)
diff --git a/src/mame/drivers/mpu4bwb.c b/src/mame/drivers/mpu4bwb.c
index b718f79d96b..3d5b1221834 100644
--- a/src/mame/drivers/mpu4bwb.c
+++ b/src/mame/drivers/mpu4bwb.c
@@ -31,7 +31,7 @@ MACHINE_CONFIG_EXTERN( bwboki );
MACHINE_CONFIG_EXTERN( mod2 );
INPUT_PORTS_EXTERN( mpu4 );
-#define GAME_FLAGS (GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL)
+#define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL)
#define M4BIGMT_EXTRA_ROMS \
diff --git a/src/mame/drivers/mpu4concept.c b/src/mame/drivers/mpu4concept.c
index 30ad95ccf5b..9c5533eceea 100644
--- a/src/mame/drivers/mpu4concept.c
+++ b/src/mame/drivers/mpu4concept.c
@@ -8,7 +8,7 @@
MACHINE_CONFIG_EXTERN( mod4oki );
INPUT_PORTS_EXTERN( mpu4 );
-#define GAME_FLAGS (GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL)
+#define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL)
#define M4RHFEVC_EXTRA_ROMS \
diff --git a/src/mame/drivers/mpu4crystal.c b/src/mame/drivers/mpu4crystal.c
index 95218a2a799..1f09dd4fe3a 100644
--- a/src/mame/drivers/mpu4crystal.c
+++ b/src/mame/drivers/mpu4crystal.c
@@ -11,7 +11,7 @@ MACHINE_CONFIG_EXTERN( mod4oki );
MACHINE_CONFIG_EXTERN( mpu4crys );
INPUT_PORTS_EXTERN( mpu4 );
-#define GAME_FLAGS (GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL)
+#define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL)
@@ -761,104 +761,104 @@ ROM_END
-GAME(199?, m4frkstn ,0 ,mpu4crys ,mpu4 , mpu4_state,m_frkstn, ROT0, "Crystal","Frank 'n' Stein (Crystal) (MPU4, set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4frkstna,m4frkstn ,mpu4crys ,mpu4 , mpu4_state,m_frkstn, ROT0, "Crystal","Frank 'n' Stein (Crystal) (MPU4, set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4frkstnb,m4frkstn ,mpu4crys ,mpu4 , mpu4_state,m_frkstn, ROT0, "Crystal","Frank 'n' Stein (Crystal) (MPU4, set 3)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4frkstnc,m4frkstn ,mpu4crys ,mpu4 , mpu4_state,m_frkstn, ROT0, "Crystal","Frank 'n' Stein (Crystal) (MPU4, set 4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4frkstnd,m4frkstn ,mpu4crys ,mpu4 , mpu4_state,m_frkstn, ROT0, "Crystal","Frank 'n' Stein (Crystal) (MPU4, set 5)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4frkstne,m4frkstn ,mpu4crys ,mpu4 , mpu4_state,m_frkstn, ROT0, "Crystal","Frank 'n' Stein (Crystal) (MPU4, set 6)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4frkstnf,m4frkstn ,mpu4crys ,mpu4 , mpu4_state,m_frkstn, ROT0, "Crystal","Frank 'n' Stein (Crystal) (MPU4, set 7)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4frkstng,m4frkstn ,mpu4crys ,mpu4 , mpu4_state,m_frkstn, ROT0, "Crystal","Frank 'n' Stein (Crystal) (MPU4, set 8)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4frkstnh,m4frkstn ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Frank 'n' Stein (Crystal) (MPU4, set 9)", GAME_FLAGS|GAME_NO_SOUND ) // this set is encrypted
-GAME(199?, m4aladn ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Aladdin's Cave (Crystal) (MPU4) (set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4aladna ,m4aladn ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Aladdin's Cave (Crystal) (MPU4) (set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4aladnb ,m4aladn ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Aladdin's Cave (Crystal) (MPU4) (set 3)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4aladnc ,m4aladn ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Aladdin's Cave (Crystal) (MPU4) (set 4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4aladnd ,m4aladn ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Aladdin's Cave (Crystal) (MPU4) (set 5)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4aladne ,m4aladn ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Aladdin's Cave (Crystal) (MPU4) (set 6)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4aladnf ,m4aladn ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Aladdin's Cave (Crystal) (MPU4) (set 7)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4aladng ,m4aladn ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Aladdin's Cave (Crystal) (MPU4) (set 8)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4aladnh ,m4aladn ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Aladdin's Cave (Crystal) (MPU4) (set 9)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4aladni ,m4aladn ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Aladdin's Cave (Crystal) (MPU4) (set 10)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4bagcsh ,0 ,mpu4crys ,mpu4 , mpu4_state,m_frkstn, ROT0, "Crystal","Bags Of Cash Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4bagcsha,m4bagcsh ,mpu4crys ,mpu4 , mpu4_state,m_frkstn, ROT0, "Crystal","Bags Of Cash Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4bucclb ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Buccaneer Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4bucclba,m4bucclb ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Buccaneer Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4bucclbb,m4bucclb ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Buccaneer Club (Crystal) (MPU4) (set 3)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4bucclbc,m4bucclb ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Buccaneer Club (Crystal) (MPU4) (set 4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4bullio ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Bullion Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4bullioa,m4bullio ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Bullion Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4bulliob,m4bullio ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Bullion Club (Crystal) (MPU4) (set 3)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4carou ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Carousel Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4caroua ,m4carou ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Carousel Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4caroub ,m4carou ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Carousel Club (Crystal) (MPU4) (set 3)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4carouc ,m4carou ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Carousel Club (Crystal) (MPU4) (set 4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4cclimb ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Crazy Climber (Crystal) (MPU4) (set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4cclimba,m4cclimb ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Crazy Climber (Crystal) (MPU4) (set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4crzcl ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Crazy Climber Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4crzcla ,m4crzcl ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Crazy Climber Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4crzclb ,m4crzcl ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Crazy Climber Club (Crystal) (MPU4) (set 3)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4crzclc ,m4crzcl ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Crazy Climber Club (Crystal) (MPU4) (set 4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4crzcld ,m4crzcl ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Crazy Climber Club (Crystal) (MPU4) (set 5)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4elitc ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Elite Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4elitca ,m4elitc ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Elite Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4fairg ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Fairground (Crystal) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4frmani ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Fruit Mania (Crystal) (MPU4) (set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4frmania,m4frmani ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Fruit Mania (Crystal) (MPU4) (set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4frmanib,m4frmani ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Fruit Mania (Crystal) (MPU4) (set 3)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4frmanic,m4frmani ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Fruit Mania (Crystal) (MPU4) (set 4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4goldxc ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Gold Exchange Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4goldxca,m4goldxc ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Gold Exchange Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4goldxcb,m4goldxc ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Gold Exchange Club (Crystal) (MPU4) (set 3)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4goldxcc,m4goldxc ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Gold Exchange Club (Crystal) (MPU4) (set 4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4goldxcd,m4goldxc ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Gold Exchange Club (Crystal) (MPU4) (set 5)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4goldxce,m4goldxc ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Gold Exchange Club (Crystal) (MPU4) (set 6)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4goldfc ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Gold Fever (Crystal) (MPU4) (set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4goldfca,m4goldfc ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Gold Fever (Crystal) (MPU4) (set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4goldfcb,m4goldfc ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Gold Fever (Crystal) (MPU4) (set 3)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4hirol ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Hi Roller Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4hirola ,m4hirol ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Hi Roller Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4kingqn ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Kings & Queens Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4kingqna,m4kingqn ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Kings & Queens Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4lotclb ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Lottery Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4lotclba,m4lotclb ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Lottery Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4montrl ,0 ,mpu4crys ,mpu4 , mpu4_state,crystali, ROT0, "Crystal","Money Trail (Crystal) (MPU4) (set 1)", GAME_FLAGS|GAME_NO_SOUND ) // encryption is inverted!
-GAME(199?, m4montrla,m4montrl ,mpu4crys ,mpu4 , mpu4_state,crystali, ROT0, "Crystal","Money Trail (Crystal) (MPU4) (set 2)", GAME_FLAGS|GAME_NO_SOUND ) // encryption is inverted!
-GAME(199?, m4montrlb,m4montrl ,mpu4crys ,mpu4 , mpu4_state,crystali, ROT0, "Crystal","Money Trail (Crystal) (MPU4) (set 3)", GAME_FLAGS|GAME_NO_SOUND ) // encryption is inverted!
-GAME(199?, m4montrlc,m4montrl ,mpu4crys ,mpu4 , mpu4_state,crystali, ROT0, "Crystal","Money Trail (Crystal) (MPU4) (set 4)", GAME_FLAGS|GAME_NO_SOUND ) // encryption is inverted!
-GAME(199?, m4montrld,m4montrl ,mpu4crys ,mpu4 , mpu4_state,crystali, ROT0, "Crystal","Money Trail (Crystal) (MPU4) (set 5)", GAME_FLAGS|GAME_NO_SOUND ) // encryption is inverted!
-GAME(199?, m4mystiq ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Mystique Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4mystiqa,m4mystiq ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Mystique Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4mystiqb,m4mystiq ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Mystique Club (Crystal) (MPU4) (set 3)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4mystiqc,m4mystiq ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Mystique Club (Crystal) (MPU4) (set 4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4nudwin ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Nudge & Win (Crystal) (MPU4) (set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4nudwina,m4nudwin ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Nudge & Win (Crystal) (MPU4) (set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4paracl ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Paradise Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4paracla,m4paracl ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Paradise Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4rlpick ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Reel Picks (Crystal) (MPU4) (set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4rlpicka,m4rlpick ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Reel Picks (Crystal) (MPU4) (set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4rlpickb,m4rlpick ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Reel Picks (Crystal) (MPU4) (set 3)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4rlpickc,m4rlpick ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Reel Picks (Crystal) (MPU4) (set 4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4twstr ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Twister (Crystal) (MPU4) (set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4twstra ,m4twstr ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Twister (Crystal) (MPU4) (set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4twstrb ,m4twstr ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Twister (Crystal) (MPU4) (set 3)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4twstrc ,m4twstr ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Twister (Crystal) (MPU4) (set 4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4twstrd ,m4twstr ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Twister (Crystal) (MPU4) (set 5)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4twstcl ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Twister Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4twstcla,m4twstcl ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Twister Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4twstclb,m4twstcl ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Twister Club (Crystal) (MPU4) (set 3)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4dz ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Danger Zone (Crystal) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4tylb ,0 ,mod4oki ,mpu4 , mpu4_state,m4default, ROT0, "Crystal","Thank Your Lucky Bars (Crystal) (MPU4) (set 1)",GAME_FLAGS|GAME_NO_SOUND|GAME_MECHANICAL )
-GAME(199?, m4tylba ,m4tylb ,mod4oki ,mpu4 , mpu4_state,m4default, ROT0, "Crystal","Thank Your Lucky Bars (Crystal) (MPU4) (set 2)",GAME_FLAGS|GAME_NO_SOUND|GAME_MECHANICAL )
-GAME(199?, m4magi7 ,0 ,mod4oki ,mpu4 , mpu4_state,m4default, ROT0, "Crystal","Magic 7's (Crystal) (MPU4) (set 1)",GAME_FLAGS|GAME_NO_SOUND|GAME_MECHANICAL )
-GAME(199?, m4magi7a ,m4magi7 ,mod4oki ,mpu4 , mpu4_state,m4default, ROT0, "Crystal","Magic 7's (Crystal) (MPU4) (set 2)",GAME_FLAGS|GAME_NO_SOUND|GAME_MECHANICAL )
-GAME(199?, m4rags ,0 ,mod4oki ,mpu4 , mpu4_state,m4default, ROT0, "Crystal","Rags To Riches Club (Crystal) (MPU4) (set 1)",GAME_FLAGS|GAME_NO_SOUND|GAME_MECHANICAL )
-GAME(199?, m4ragsa ,m4rags ,mod4oki ,mpu4 , mpu4_state,m4default, ROT0, "Crystal","Rags To Riches Club (Crystal) (MPU4) (set 2)",GAME_FLAGS|GAME_NO_SOUND|GAME_MECHANICAL )
-GAME(199?, m4ragsb ,m4rags ,mod4oki ,mpu4 , mpu4_state,m4default, ROT0, "Crystal","Rags To Riches Club (Crystal) (MPU4) (set 3)",GAME_FLAGS|GAME_NO_SOUND|GAME_MECHANICAL )
-GAME(199?, m4ragsc ,m4rags ,mod4oki ,mpu4 , mpu4_state,m4default, ROT0, "Crystal","Rags To Riches Club (Crystal) (MPU4) (set 4)",GAME_FLAGS|GAME_NO_SOUND|GAME_MECHANICAL )
-GAME(199?, m4riocr ,0 ,mod4oki ,mpu4 , mpu4_state,m4default, ROT0, "Crystal","Rio Grande (Crystal) (MPU4) (set 1)",GAME_FLAGS|GAME_NO_SOUND|GAME_MECHANICAL )
-GAME(199?, m4riocra ,m4riocr ,mod4oki ,mpu4 , mpu4_state,m4default, ROT0, "Crystal","Rio Grande (Crystal) (MPU4) (set 2)",GAME_FLAGS|GAME_NO_SOUND|GAME_MECHANICAL )
-GAME(199?, m4ndup ,0 ,mod4oki ,mpu4 , mpu4_state,m4default, ROT0, "Crystal","Nudge Double Up Deluxe (Crystal) (MPU4) (set 1)",GAME_FLAGS|GAME_NO_SOUND|GAME_MECHANICAL )
-GAME(199?, m4ndupa ,m4ndup ,mod4oki ,mpu4 , mpu4_state,m4default, ROT0, "Crystal","Nudge Double Up Deluxe (Crystal) (MPU4) (set 2)",GAME_FLAGS|GAME_NO_SOUND|GAME_MECHANICAL )
-GAME(199?, m4ndupb ,m4ndup ,mod4oki ,mpu4 , mpu4_state,m4default, ROT0, "Crystal","Nudge Double Up Deluxe (Crystal) (MPU4) (set 3)",GAME_FLAGS|GAME_NO_SOUND|GAME_MECHANICAL )
-GAME(199?, m4ndupc ,m4ndup ,mod4oki ,mpu4 , mpu4_state,m4default, ROT0, "Crystal","Nudge Double Up Deluxe (Crystal) (MPU4) (set 4)",GAME_FLAGS|GAME_NO_SOUND|GAME_MECHANICAL )
+GAME(199?, m4frkstn ,0 ,mpu4crys ,mpu4 , mpu4_state,m_frkstn, ROT0, "Crystal","Frank 'n' Stein (Crystal) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4frkstna,m4frkstn ,mpu4crys ,mpu4 , mpu4_state,m_frkstn, ROT0, "Crystal","Frank 'n' Stein (Crystal) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4frkstnb,m4frkstn ,mpu4crys ,mpu4 , mpu4_state,m_frkstn, ROT0, "Crystal","Frank 'n' Stein (Crystal) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4frkstnc,m4frkstn ,mpu4crys ,mpu4 , mpu4_state,m_frkstn, ROT0, "Crystal","Frank 'n' Stein (Crystal) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4frkstnd,m4frkstn ,mpu4crys ,mpu4 , mpu4_state,m_frkstn, ROT0, "Crystal","Frank 'n' Stein (Crystal) (MPU4, set 5)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4frkstne,m4frkstn ,mpu4crys ,mpu4 , mpu4_state,m_frkstn, ROT0, "Crystal","Frank 'n' Stein (Crystal) (MPU4, set 6)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4frkstnf,m4frkstn ,mpu4crys ,mpu4 , mpu4_state,m_frkstn, ROT0, "Crystal","Frank 'n' Stein (Crystal) (MPU4, set 7)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4frkstng,m4frkstn ,mpu4crys ,mpu4 , mpu4_state,m_frkstn, ROT0, "Crystal","Frank 'n' Stein (Crystal) (MPU4, set 8)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4frkstnh,m4frkstn ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Frank 'n' Stein (Crystal) (MPU4, set 9)", GAME_FLAGS|MACHINE_NO_SOUND ) // this set is encrypted
+GAME(199?, m4aladn ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Aladdin's Cave (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4aladna ,m4aladn ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Aladdin's Cave (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4aladnb ,m4aladn ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Aladdin's Cave (Crystal) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4aladnc ,m4aladn ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Aladdin's Cave (Crystal) (MPU4) (set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4aladnd ,m4aladn ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Aladdin's Cave (Crystal) (MPU4) (set 5)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4aladne ,m4aladn ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Aladdin's Cave (Crystal) (MPU4) (set 6)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4aladnf ,m4aladn ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Aladdin's Cave (Crystal) (MPU4) (set 7)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4aladng ,m4aladn ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Aladdin's Cave (Crystal) (MPU4) (set 8)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4aladnh ,m4aladn ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Aladdin's Cave (Crystal) (MPU4) (set 9)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4aladni ,m4aladn ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Aladdin's Cave (Crystal) (MPU4) (set 10)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bagcsh ,0 ,mpu4crys ,mpu4 , mpu4_state,m_frkstn, ROT0, "Crystal","Bags Of Cash Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bagcsha,m4bagcsh ,mpu4crys ,mpu4 , mpu4_state,m_frkstn, ROT0, "Crystal","Bags Of Cash Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bucclb ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Buccaneer Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bucclba,m4bucclb ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Buccaneer Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bucclbb,m4bucclb ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Buccaneer Club (Crystal) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bucclbc,m4bucclb ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Buccaneer Club (Crystal) (MPU4) (set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bullio ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Bullion Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bullioa,m4bullio ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Bullion Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bulliob,m4bullio ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Bullion Club (Crystal) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4carou ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Carousel Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4caroua ,m4carou ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Carousel Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4caroub ,m4carou ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Carousel Club (Crystal) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4carouc ,m4carou ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Carousel Club (Crystal) (MPU4) (set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4cclimb ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Crazy Climber (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4cclimba,m4cclimb ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Crazy Climber (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4crzcl ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Crazy Climber Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4crzcla ,m4crzcl ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Crazy Climber Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4crzclb ,m4crzcl ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Crazy Climber Club (Crystal) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4crzclc ,m4crzcl ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Crazy Climber Club (Crystal) (MPU4) (set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4crzcld ,m4crzcl ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Crazy Climber Club (Crystal) (MPU4) (set 5)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4elitc ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Elite Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4elitca ,m4elitc ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Elite Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4fairg ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Fairground (Crystal) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4frmani ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Fruit Mania (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4frmania,m4frmani ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Fruit Mania (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4frmanib,m4frmani ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Fruit Mania (Crystal) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4frmanic,m4frmani ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Fruit Mania (Crystal) (MPU4) (set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4goldxc ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Gold Exchange Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4goldxca,m4goldxc ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Gold Exchange Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4goldxcb,m4goldxc ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Gold Exchange Club (Crystal) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4goldxcc,m4goldxc ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Gold Exchange Club (Crystal) (MPU4) (set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4goldxcd,m4goldxc ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Gold Exchange Club (Crystal) (MPU4) (set 5)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4goldxce,m4goldxc ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Gold Exchange Club (Crystal) (MPU4) (set 6)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4goldfc ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Gold Fever (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4goldfca,m4goldfc ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Gold Fever (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4goldfcb,m4goldfc ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Gold Fever (Crystal) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4hirol ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Hi Roller Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4hirola ,m4hirol ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Hi Roller Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4kingqn ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Kings & Queens Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4kingqna,m4kingqn ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Kings & Queens Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4lotclb ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Lottery Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4lotclba,m4lotclb ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Lottery Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4montrl ,0 ,mpu4crys ,mpu4 , mpu4_state,crystali, ROT0, "Crystal","Money Trail (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND ) // encryption is inverted!
+GAME(199?, m4montrla,m4montrl ,mpu4crys ,mpu4 , mpu4_state,crystali, ROT0, "Crystal","Money Trail (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND ) // encryption is inverted!
+GAME(199?, m4montrlb,m4montrl ,mpu4crys ,mpu4 , mpu4_state,crystali, ROT0, "Crystal","Money Trail (Crystal) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND ) // encryption is inverted!
+GAME(199?, m4montrlc,m4montrl ,mpu4crys ,mpu4 , mpu4_state,crystali, ROT0, "Crystal","Money Trail (Crystal) (MPU4) (set 4)", GAME_FLAGS|MACHINE_NO_SOUND ) // encryption is inverted!
+GAME(199?, m4montrld,m4montrl ,mpu4crys ,mpu4 , mpu4_state,crystali, ROT0, "Crystal","Money Trail (Crystal) (MPU4) (set 5)", GAME_FLAGS|MACHINE_NO_SOUND ) // encryption is inverted!
+GAME(199?, m4mystiq ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Mystique Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4mystiqa,m4mystiq ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Mystique Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4mystiqb,m4mystiq ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Mystique Club (Crystal) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4mystiqc,m4mystiq ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Mystique Club (Crystal) (MPU4) (set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4nudwin ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Nudge & Win (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4nudwina,m4nudwin ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Nudge & Win (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4paracl ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Paradise Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4paracla,m4paracl ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Paradise Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4rlpick ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Reel Picks (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4rlpicka,m4rlpick ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Reel Picks (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4rlpickb,m4rlpick ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Reel Picks (Crystal) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4rlpickc,m4rlpick ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Reel Picks (Crystal) (MPU4) (set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4twstr ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Twister (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4twstra ,m4twstr ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Twister (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4twstrb ,m4twstr ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Twister (Crystal) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4twstrc ,m4twstr ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Twister (Crystal) (MPU4) (set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4twstrd ,m4twstr ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Twister (Crystal) (MPU4) (set 5)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4twstcl ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Twister Club (Crystal) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4twstcla,m4twstcl ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Twister Club (Crystal) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4twstclb,m4twstcl ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Twister Club (Crystal) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4dz ,0 ,mpu4crys ,mpu4 , mpu4_state,crystal, ROT0, "Crystal","Danger Zone (Crystal) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4tylb ,0 ,mod4oki ,mpu4 , mpu4_state,m4default, ROT0, "Crystal","Thank Your Lucky Bars (Crystal) (MPU4) (set 1)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
+GAME(199?, m4tylba ,m4tylb ,mod4oki ,mpu4 , mpu4_state,m4default, ROT0, "Crystal","Thank Your Lucky Bars (Crystal) (MPU4) (set 2)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
+GAME(199?, m4magi7 ,0 ,mod4oki ,mpu4 , mpu4_state,m4default, ROT0, "Crystal","Magic 7's (Crystal) (MPU4) (set 1)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
+GAME(199?, m4magi7a ,m4magi7 ,mod4oki ,mpu4 , mpu4_state,m4default, ROT0, "Crystal","Magic 7's (Crystal) (MPU4) (set 2)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
+GAME(199?, m4rags ,0 ,mod4oki ,mpu4 , mpu4_state,m4default, ROT0, "Crystal","Rags To Riches Club (Crystal) (MPU4) (set 1)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
+GAME(199?, m4ragsa ,m4rags ,mod4oki ,mpu4 , mpu4_state,m4default, ROT0, "Crystal","Rags To Riches Club (Crystal) (MPU4) (set 2)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
+GAME(199?, m4ragsb ,m4rags ,mod4oki ,mpu4 , mpu4_state,m4default, ROT0, "Crystal","Rags To Riches Club (Crystal) (MPU4) (set 3)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
+GAME(199?, m4ragsc ,m4rags ,mod4oki ,mpu4 , mpu4_state,m4default, ROT0, "Crystal","Rags To Riches Club (Crystal) (MPU4) (set 4)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
+GAME(199?, m4riocr ,0 ,mod4oki ,mpu4 , mpu4_state,m4default, ROT0, "Crystal","Rio Grande (Crystal) (MPU4) (set 1)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
+GAME(199?, m4riocra ,m4riocr ,mod4oki ,mpu4 , mpu4_state,m4default, ROT0, "Crystal","Rio Grande (Crystal) (MPU4) (set 2)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
+GAME(199?, m4ndup ,0 ,mod4oki ,mpu4 , mpu4_state,m4default, ROT0, "Crystal","Nudge Double Up Deluxe (Crystal) (MPU4) (set 1)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
+GAME(199?, m4ndupa ,m4ndup ,mod4oki ,mpu4 , mpu4_state,m4default, ROT0, "Crystal","Nudge Double Up Deluxe (Crystal) (MPU4) (set 2)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
+GAME(199?, m4ndupb ,m4ndup ,mod4oki ,mpu4 , mpu4_state,m4default, ROT0, "Crystal","Nudge Double Up Deluxe (Crystal) (MPU4) (set 3)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
+GAME(199?, m4ndupc ,m4ndup ,mod4oki ,mpu4 , mpu4_state,m4default, ROT0, "Crystal","Nudge Double Up Deluxe (Crystal) (MPU4) (set 4)",GAME_FLAGS|MACHINE_NO_SOUND|MACHINE_MECHANICAL )
diff --git a/src/mame/drivers/mpu4dealem.c b/src/mame/drivers/mpu4dealem.c
index 1dbb341b1a0..c9d3dfcdb15 100644
--- a/src/mame/drivers/mpu4dealem.c
+++ b/src/mame/drivers/mpu4dealem.c
@@ -377,4 +377,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)",GAME_IMPERFECT_GRAPHICS )
+GAME( 1987,v4dealem, 0, dealem, dealem, driver_device, 0, ROT0, "Zenitone","Deal 'Em (MPU4 Conversion Kit, v7.0)",MACHINE_IMPERFECT_GRAPHICS )
diff --git a/src/mame/drivers/mpu4empire.c b/src/mame/drivers/mpu4empire.c
index c4724efd163..b33791d3877 100644
--- a/src/mame/drivers/mpu4empire.c
+++ b/src/mame/drivers/mpu4empire.c
@@ -9,7 +9,7 @@
MACHINE_CONFIG_EXTERN( mod4oki );
INPUT_PORTS_EXTERN( mpu4 );
-#define GAME_FLAGS (GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL)
+#define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL)
ROM_START( m4apachg )
@@ -829,86 +829,86 @@ ROM_END
most of these boot (after a single reset to initialize)
but have broken text, need to check VFD emulation */
-GAME(199?, m4apachg, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Apache Gold (Empire) (MPU4, set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4apachga, m4apachg, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Apache Gold (Empire) (MPU4, set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4apachgb, m4apachg, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Apache Gold (Empire) (MPU4, set 3)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4apachgc, m4apachg, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Apache Gold (Empire) (MPU4, set 4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4apachgd, m4apachg, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Apache Gold (Empire) (MPU4, set 5)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4apachge, m4apachg, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Apache Gold (Empire) (MPU4, set 6)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4apachgf, m4apachg, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Apache Gold (Empire) (MPU4, set 7)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4bangrs, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Bangers 'n' Cash (Empire) (MPU4, set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4bangrsa, m4bangrs, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Bangers 'n' Cash (Empire) (MPU4, set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4bangrsb, m4bangrs, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Bangers 'n' Cash (Empire) (MPU4, set 3)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4bankrd, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Bank Raid (Empire) (MPU4, set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4bankrda, m4bankrd, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Bank Raid (Empire) (MPU4, set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4bankrdb, m4bankrd, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Bank Raid (Empire) (MPU4, set 3)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4bankrdc, m4bankrd, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Bank Raid (Empire) (MPU4, set 4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4bankrdd, m4bankrd, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Bank Raid (Empire) (MPU4, set 5)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4bigchs, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Big Cheese (Empire) (MPU4, set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4bigchsa, m4bigchs, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Big Cheese (Empire) (MPU4, set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4bigchsb, m4bigchs, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Big Cheese (Empire) (MPU4, set 3)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4cstrik, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Cash Strike (Empire) (MPU4, set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4cstrika, m4cstrik, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Cash Strike (Empire) (MPU4, set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4cstrikb, m4cstrik, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Cash Strike (Empire) (MPU4, set 3)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4cstrikc, m4cstrik, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Cash Strike (Empire) (MPU4, set 4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4chacec, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Chase The Ace [Cards] (Empire) (MPU4, set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4chaceca, m4chacec, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Chase The Ace [Cards] (Empire) (MPU4, set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4chacef, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Chase The Ace [Fruits] (Empire) (MPU4, set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4chacefa, m4chacef, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Chase The Ace [Fruits] (Empire) (MPU4, set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4chacefb, m4chacef, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Chase The Ace [Fruits] (Empire) (MPU4, set 3)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4chacefc, m4chacef, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Chase The Ace [Fruits] (Empire) (MPU4, set 4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4crzcap, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Crazy Capers (Empire) (MPU4, set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4crzcapa, m4crzcap, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Crazy Capers (Empire) (MPU4, set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4crzcapb, m4crzcap, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Crazy Capers (Empire) (MPU4, set 3)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4crzcapc, m4crzcap, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Crazy Capers (Empire) (MPU4, set 4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4crfire, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Crossfire (Empire) (MPU4, set 1)", GAME_FLAGS|GAME_NO_SOUND ) // doesn't boot, alarm
-GAME(199?, m4crfirea, m4crfire, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Crossfire (Empire) (MPU4, set 2)", GAME_FLAGS|GAME_NO_SOUND ) // doesn't boot, alarm
-GAME(199?, m4eureka, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Eureka (Empire) (MPU4, set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4eurekaa, m4eureka, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Eureka (Empire) (MPU4, set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4eurekab, m4eureka, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Eureka (Empire) (MPU4, set 3)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4fright, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Fright Night (Empire) (MPU4, v4.1X)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4frighta, m4fright, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Fright Night (Empire) (MPU4, v4.1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4frightb, m4fright, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Fright Night (Empire) (MPU4, v4.1i)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4frightc, m4fright, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Fright Night (Empire) (MPU4, v?.?, set 1)", GAME_FLAGS|GAME_NO_SOUND ) // bad dump
-GAME(199?, m4frightd, m4fright, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Fright Night (Empire) (MPU4, v3.3)",GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4frighte, m4fright, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Fright Night (Empire) (MPU4, v3.0)",GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4frightf, m4fright, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Fright Night (Empire) (MPU4, v?.?, set 2)",GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4gamblr, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","The Gambler (Empire) (MPU4, set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4gamblra, m4gamblr, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","The Gambler (Empire) (MPU4, set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4gamblrb, m4gamblr, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","The Gambler (Empire) (MPU4, set 3)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4gtrain, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Ghost Train (Empire) (MPU4, set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4gtraina, m4gtrain, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Ghost Train (Empire) (MPU4, set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4gtrainb, m4gtrain, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Ghost Train (Empire) (MPU4, set 3)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4gtrainc, m4gtrain, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Ghost Train (Empire) (MPU4, set 4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4goldfv, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Gold Fever (Empire) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4haunt, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Haunted House (Empire) (MPU4, set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4haunta, m4haunt, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Haunted House (Empire) (MPU4, set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4hauntb, m4haunt, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Haunted House (Empire) (MPU4, set 3)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4hauntc, m4haunt, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Haunted House (Empire) (MPU4, set 4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4hauntd, m4haunt, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Haunted House (Empire) (MPU4, set 5)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4hisprt, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","High Spirits (Empire) (MPU4, set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4hisprta, m4hisprt, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","High Spirits (Empire) (MPU4, set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4hisprtb, m4hisprt, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","High Spirits (Empire) (MPU4, set 3)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4hisprtc, m4hisprt, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","High Spirits (Empire) (MPU4, set 4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4hisprtd, m4hisprt, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","High Spirits (Empire) (MPU4, set 5)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4hisprte, m4hisprt, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","High Spirits (Empire) (MPU4, set 6)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(1996, m4hotcsh, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Hot Cash (Empire) (MPU4, set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(1996, m4hotcsha, m4hotcsh, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Hot Cash (Empire) (MPU4, set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(1996, m4hotcshb, m4hotcsh, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Hot Cash (Empire) (MPU4, set 3)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(1996, m4hotcshc, m4hotcsh, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Hot Cash (Empire) (MPU4, set 4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4monspn, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Money Spinner (Empire) (MPU4, set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4monspna, m4monspn, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Money Spinner (Empire) (MPU4, set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4monspnb, m4monspn, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Money Spinner (Empire) (MPU4, set 3)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4pbnudg, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Pinball Nudger (Empire) (MPU4, set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4pbnudga, m4pbnudg, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Pinball Nudger (Empire) (MPU4, set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4pbnudgb, m4pbnudg, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Pinball Nudger (Empire) (MPU4, set 3)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4pitfal, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Pitfall (Empire) (MPU4, set 1)", GAME_FLAGS|GAME_NO_SOUND ) // doesn't boot, alarm
-GAME(199?, m4pitfala, m4pitfal, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Pitfall (Empire) (MPU4, set 2)", GAME_FLAGS|GAME_NO_SOUND ) // doesn't boot, alarm
-GAME(199?, m4pitfalb, m4pitfal, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Pitfall (Empire) (MPU4, set 3)", GAME_FLAGS|GAME_NO_SOUND ) // doesn't boot, alarm
-GAME(199?, m4pitfalc, m4pitfal, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Pitfall (Empire) (MPU4, set 4)", GAME_FLAGS|GAME_NO_SOUND ) // doesn't boot, alarm
-GAME(199?, m4ttrail, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Treasure Trail (Empire) (MPU4, set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4ttraila,m4ttrail, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Treasure Trail (Empire) (MPU4, set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4ttrailb,m4ttrail, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Treasure Trail (Empire) (MPU4, set 3)", GAME_FLAGS|GAME_NO_SOUND )
+GAME(199?, m4apachg, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Apache Gold (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4apachga, m4apachg, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Apache Gold (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4apachgb, m4apachg, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Apache Gold (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4apachgc, m4apachg, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Apache Gold (Empire) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4apachgd, m4apachg, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Apache Gold (Empire) (MPU4, set 5)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4apachge, m4apachg, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Apache Gold (Empire) (MPU4, set 6)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4apachgf, m4apachg, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Apache Gold (Empire) (MPU4, set 7)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bangrs, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Bangers 'n' Cash (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bangrsa, m4bangrs, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Bangers 'n' Cash (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bangrsb, m4bangrs, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Bangers 'n' Cash (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bankrd, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Bank Raid (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bankrda, m4bankrd, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Bank Raid (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bankrdb, m4bankrd, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Bank Raid (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bankrdc, m4bankrd, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Bank Raid (Empire) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bankrdd, m4bankrd, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Bank Raid (Empire) (MPU4, set 5)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bigchs, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Big Cheese (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bigchsa, m4bigchs, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Big Cheese (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bigchsb, m4bigchs, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Big Cheese (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4cstrik, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Cash Strike (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4cstrika, m4cstrik, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Cash Strike (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4cstrikb, m4cstrik, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Cash Strike (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4cstrikc, m4cstrik, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Cash Strike (Empire) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4chacec, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Chase The Ace [Cards] (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4chaceca, m4chacec, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Chase The Ace [Cards] (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4chacef, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Chase The Ace [Fruits] (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4chacefa, m4chacef, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Chase The Ace [Fruits] (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4chacefb, m4chacef, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Chase The Ace [Fruits] (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4chacefc, m4chacef, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Chase The Ace [Fruits] (Empire) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4crzcap, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Crazy Capers (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4crzcapa, m4crzcap, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Crazy Capers (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4crzcapb, m4crzcap, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Crazy Capers (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4crzcapc, m4crzcap, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Crazy Capers (Empire) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4crfire, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Crossfire (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND ) // doesn't boot, alarm
+GAME(199?, m4crfirea, m4crfire, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Crossfire (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND ) // doesn't boot, alarm
+GAME(199?, m4eureka, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Eureka (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4eurekaa, m4eureka, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Eureka (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4eurekab, m4eureka, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Eureka (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4fright, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Fright Night (Empire) (MPU4, v4.1X)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4frighta, m4fright, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Fright Night (Empire) (MPU4, v4.1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4frightb, m4fright, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Fright Night (Empire) (MPU4, v4.1i)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4frightc, m4fright, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Fright Night (Empire) (MPU4, v?.?, set 1)", GAME_FLAGS|MACHINE_NO_SOUND ) // bad dump
+GAME(199?, m4frightd, m4fright, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Fright Night (Empire) (MPU4, v3.3)",GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4frighte, m4fright, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Fright Night (Empire) (MPU4, v3.0)",GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4frightf, m4fright, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Fright Night (Empire) (MPU4, v?.?, set 2)",GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4gamblr, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","The Gambler (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4gamblra, m4gamblr, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","The Gambler (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4gamblrb, m4gamblr, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","The Gambler (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4gtrain, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Ghost Train (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4gtraina, m4gtrain, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Ghost Train (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4gtrainb, m4gtrain, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Ghost Train (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4gtrainc, m4gtrain, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Ghost Train (Empire) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4goldfv, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Gold Fever (Empire) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4haunt, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Haunted House (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4haunta, m4haunt, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Haunted House (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4hauntb, m4haunt, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Haunted House (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4hauntc, m4haunt, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Haunted House (Empire) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4hauntd, m4haunt, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Haunted House (Empire) (MPU4, set 5)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4hisprt, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","High Spirits (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4hisprta, m4hisprt, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","High Spirits (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4hisprtb, m4hisprt, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","High Spirits (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4hisprtc, m4hisprt, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","High Spirits (Empire) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4hisprtd, m4hisprt, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","High Spirits (Empire) (MPU4, set 5)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4hisprte, m4hisprt, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","High Spirits (Empire) (MPU4, set 6)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(1996, m4hotcsh, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Hot Cash (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(1996, m4hotcsha, m4hotcsh, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Hot Cash (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(1996, m4hotcshb, m4hotcsh, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Hot Cash (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(1996, m4hotcshc, m4hotcsh, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Hot Cash (Empire) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4monspn, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Money Spinner (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4monspna, m4monspn, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Money Spinner (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4monspnb, m4monspn, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Money Spinner (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4pbnudg, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Pinball Nudger (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4pbnudga, m4pbnudg, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Pinball Nudger (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4pbnudgb, m4pbnudg, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Pinball Nudger (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4pitfal, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Pitfall (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND ) // doesn't boot, alarm
+GAME(199?, m4pitfala, m4pitfal, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Pitfall (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND ) // doesn't boot, alarm
+GAME(199?, m4pitfalb, m4pitfal, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Pitfall (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND ) // doesn't boot, alarm
+GAME(199?, m4pitfalc, m4pitfal, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Pitfall (Empire) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND ) // doesn't boot, alarm
+GAME(199?, m4ttrail, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Treasure Trail (Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4ttraila,m4ttrail, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Treasure Trail (Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4ttrailb,m4ttrail, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","Treasure Trail (Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
// doesn't seem like the other Empire games (starts with RESETTING JNE, licensed, mislabeled?)
//Looks like the only one to have a proper protection routine, too so I'm guessing it's just a game they distributed, rather than made themselves
-GAME(199?, m4jne, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","The Jackpot's Not Enough (Empire) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
+GAME(199?, m4jne, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Empire","The Jackpot's Not Enough (Empire) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/mpu4mdm.c b/src/mame/drivers/mpu4mdm.c
index 67cd49d9556..61c53be08a2 100644
--- a/src/mame/drivers/mpu4mdm.c
+++ b/src/mame/drivers/mpu4mdm.c
@@ -9,7 +9,7 @@
MACHINE_CONFIG_EXTERN( mod4oki );
INPUT_PORTS_EXTERN( mpu4 );
-#define GAME_FLAGS (GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL)
+#define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL)
@@ -415,47 +415,47 @@ ROM_END
/* MDM
most of these boot and act similar to the Empire games (ie bad text, but run OK) */
-GAME(199?, m42punlm, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","2p Unlimited (Mdm) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4silnud, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm?","Silver Nudger (Mdm?) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) // code is close to 2p Unlimited, same sound rom
-GAME(199?, m4nud2p, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm?","2p Nudger (Mdm?) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) // code is close to 2p Unlimited, same sound rom
-GAME(199?, m4ctn, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm?","Tuppenny Nudger Classic (Mdm?) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) // code is close to 2p Unlimited, same sound rom
-GAME(199?, m4bigapl, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","The Big Apple (Mdm) (MPU4, set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4bigapla, m4bigapl, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","The Big Apple (Mdm) (MPU4, set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4bigaplb, m4bigapl, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","The Big Apple (Mdm) (MPU4, set 3)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4bigaplc, m4bigapl, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","The Big Apple (Mdm) (MPU4, set 4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4bigapld, m4bigapl, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","The Big Apple (Mdm) (MPU4, set 5)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4bigaple, m4bigapl, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","The Big Apple (Mdm) (MPU4, set 6)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4blztrl, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","Blazing Trails (Mdm) (MPU4, set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4blztrla, m4blztrl, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","Blazing Trails (Mdm) (MPU4, set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4bodymt, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","Body Match (Mdm) (MPU4)", GAME_FLAGS|GAME_NO_SOUND ) // doesn't boot, various alarms
-GAME(199?, m4coloss, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","Colossus (Mdm) (MPU4, set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4colossa, m4coloss, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","Colossus (Mdm) (MPU4, set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4colossb, m4coloss, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","Colossus (Mdm) (MPU4, set 3)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4colossc, m4coloss, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","Colossus (Mdm) (MPU4, set 4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4colossd, m4coloss, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","Colossus (Mdm) (MPU4, set 5)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4colosse, m4coloss, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","Colossus (Mdm) (MPU4, set 6)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4colossf, m4coloss, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","Colossus (Mdm) (MPU4, set 7)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4colossg, m4coloss, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","Colossus (Mdm) (MPU4, set 8)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4firebl, 0, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Mdm","Fireball (Mdm) (MPU4, set 1)", GAME_FLAGS|GAME_NO_SOUND ) // hangs after spin (sound status?)
-GAME(199?, m4firebla, m4firebl, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Mdm","Fireball (Mdm) (MPU4, set 2)", GAME_FLAGS|GAME_NO_SOUND ) // hangs after spin (sound status?)
-GAME(199?, m4fireblb, m4firebl, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Mdm","Fireball (Mdm) (MPU4, set 3)", GAME_FLAGS|GAME_NO_SOUND ) // hangs after spin (sound status?)
-GAME(199?, m4fireblc, m4firebl, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Mdm","Fireball (Mdm) (MPU4, set 4)", GAME_FLAGS|GAME_NO_SOUND ) // hangs after spin (sound status?)
-GAME(199?, m4firebld, m4firebl, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Mdm","Fireball (Mdm) (MPU4, set 5)", GAME_FLAGS|GAME_NO_SOUND ) // hangs after spin (sound status?)
-GAME(199?, m4mayhem, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","Mayhem (Mdm) (MPU4, set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4mayhema, m4mayhem, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","Mayhem (Mdm) (MPU4, set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4themob, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","The Mob (Mdm) (MPU4, set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4themoba, m4themob, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","The Mob (Mdm) (MPU4, set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4themobb, m4themob, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","The Mob (Mdm) (MPU4, set 3)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4nudbon, 0, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Mdm","Nudge Bonanza (Mdm) (MPU4, set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4nudbona, m4nudbon, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Mdm","Nudge Bonanza (Mdm) (MPU4, set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4nudgem, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","Nudge Gems (Mdm) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4smshgb, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","Smash 'n' Grab (Mdm) (MPU4, set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4smshgba,m4smshgb, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","Smash 'n' Grab (Mdm) (MPU4, set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4smshgbb,m4smshgb, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","Smash 'n' Grab (Mdm) (MPU4, set 3)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4smshgbc,m4smshgb, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","Smash 'n' Grab (Mdm) (MPU4, set 4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4snklad, 0, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Mdm","Snakes & Ladders (Mdm) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4excam, 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Mdm","Excalibur (Mdm) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4front, 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Mdm","Final Frontier (Mdm) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4safar, 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Mdm","Safari Club (Mdm) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4snowbl, 0, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Mdm","Snowball Bingo (Mdm) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4ewshft, 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Mdm","Each Way Shifter (Mdm) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
+GAME(199?, m42punlm, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","2p Unlimited (Mdm) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4silnud, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm?","Silver Nudger (Mdm?) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND ) // code is close to 2p Unlimited, same sound rom
+GAME(199?, m4nud2p, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm?","2p Nudger (Mdm?) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND ) // code is close to 2p Unlimited, same sound rom
+GAME(199?, m4ctn, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm?","Tuppenny Nudger Classic (Mdm?) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND ) // code is close to 2p Unlimited, same sound rom
+GAME(199?, m4bigapl, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","The Big Apple (Mdm) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bigapla, m4bigapl, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","The Big Apple (Mdm) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bigaplb, m4bigapl, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","The Big Apple (Mdm) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bigaplc, m4bigapl, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","The Big Apple (Mdm) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bigapld, m4bigapl, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","The Big Apple (Mdm) (MPU4, set 5)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bigaple, m4bigapl, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","The Big Apple (Mdm) (MPU4, set 6)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4blztrl, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","Blazing Trails (Mdm) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4blztrla, m4blztrl, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","Blazing Trails (Mdm) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bodymt, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","Body Match (Mdm) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND ) // doesn't boot, various alarms
+GAME(199?, m4coloss, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","Colossus (Mdm) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4colossa, m4coloss, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","Colossus (Mdm) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4colossb, m4coloss, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","Colossus (Mdm) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4colossc, m4coloss, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","Colossus (Mdm) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4colossd, m4coloss, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","Colossus (Mdm) (MPU4, set 5)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4colosse, m4coloss, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","Colossus (Mdm) (MPU4, set 6)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4colossf, m4coloss, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","Colossus (Mdm) (MPU4, set 7)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4colossg, m4coloss, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","Colossus (Mdm) (MPU4, set 8)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4firebl, 0, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Mdm","Fireball (Mdm) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND ) // hangs after spin (sound status?)
+GAME(199?, m4firebla, m4firebl, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Mdm","Fireball (Mdm) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND ) // hangs after spin (sound status?)
+GAME(199?, m4fireblb, m4firebl, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Mdm","Fireball (Mdm) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND ) // hangs after spin (sound status?)
+GAME(199?, m4fireblc, m4firebl, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Mdm","Fireball (Mdm) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND ) // hangs after spin (sound status?)
+GAME(199?, m4firebld, m4firebl, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Mdm","Fireball (Mdm) (MPU4, set 5)", GAME_FLAGS|MACHINE_NO_SOUND ) // hangs after spin (sound status?)
+GAME(199?, m4mayhem, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","Mayhem (Mdm) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4mayhema, m4mayhem, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","Mayhem (Mdm) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4themob, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","The Mob (Mdm) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4themoba, m4themob, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","The Mob (Mdm) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4themobb, m4themob, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","The Mob (Mdm) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4nudbon, 0, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Mdm","Nudge Bonanza (Mdm) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4nudbona, m4nudbon, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Mdm","Nudge Bonanza (Mdm) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4nudgem, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","Nudge Gems (Mdm) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4smshgb, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","Smash 'n' Grab (Mdm) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4smshgba,m4smshgb, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","Smash 'n' Grab (Mdm) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4smshgbb,m4smshgb, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","Smash 'n' Grab (Mdm) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4smshgbc,m4smshgb, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Mdm","Smash 'n' Grab (Mdm) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4snklad, 0, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Mdm","Snakes & Ladders (Mdm) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4excam, 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Mdm","Excalibur (Mdm) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4front, 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Mdm","Final Frontier (Mdm) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4safar, 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Mdm","Safari Club (Mdm) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4snowbl, 0, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Mdm","Snowball Bingo (Mdm) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4ewshft, 0, mod4oki ,mpu4, mpu4_state, m4default, ROT0, "Mdm","Each Way Shifter (Mdm) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/mpu4misc.c b/src/mame/drivers/mpu4misc.c
index 9cf9d7b8dfc..bf5889d121a 100644
--- a/src/mame/drivers/mpu4misc.c
+++ b/src/mame/drivers/mpu4misc.c
@@ -8,7 +8,7 @@
MACHINE_CONFIG_EXTERN( mod4oki );
INPUT_PORTS_EXTERN( mpu4 );
-#define GAME_FLAGS (GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL)
+#define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL)
@@ -471,16 +471,16 @@ GAME_CUSTOM( 199?, m4looplt__m, m4looplt, "70001505.bin", 0x0000, 0x080
/* Global */
// boot to "Percent Change" then "*initializing*"
-GAME(199?, m4bangin, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Global","Bangin' Away (Global) (MPU4, set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4bangina, m4bangin, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Global","Bangin' Away (Global) (MPU4, set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4banginb, m4bangin, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Global","Bangin' Away (Global) (MPU4, set 3)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4wwc, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Global","Wacky Weekend Club (Global) (MPU4) (set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4wwca, m4wwc, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Global","Wacky Weekend Club (Global) (MPU4) (set 2)" , GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4wwcb, m4wwc, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Global","Wacky Weekend Club (Global) (MPU4) (set 3)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4screw, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Global","Screwin' Around (Global) (MPU4, v0.8)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4screwp, m4screw, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Global","Screwin' Around (Global) (MPU4, v0.8) (Protocol)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4screwa, m4screw, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Global","Screwin' Around (Global) (MPU4, v0.7)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4screwb, m4screw, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Global","Screwin' Around (Global) (MPU4, v0.5)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4vfm, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Global","Value For Money (Global) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4jiggin, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Global","Jiggin' In The Riggin' (Global) (MPU4) (set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4jiggina, m4jiggin, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Global","Jiggin' In The Riggin' (Global) (MPU4) (set 2)", GAME_FLAGS|GAME_NO_SOUND )
+GAME(199?, m4bangin, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Global","Bangin' Away (Global) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4bangina, m4bangin, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Global","Bangin' Away (Global) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4banginb, m4bangin, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Global","Bangin' Away (Global) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4wwc, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Global","Wacky Weekend Club (Global) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4wwca, m4wwc, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Global","Wacky Weekend Club (Global) (MPU4) (set 2)" , GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4wwcb, m4wwc, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Global","Wacky Weekend Club (Global) (MPU4) (set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4screw, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Global","Screwin' Around (Global) (MPU4, v0.8)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4screwp, m4screw, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Global","Screwin' Around (Global) (MPU4, v0.8) (Protocol)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4screwa, m4screw, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Global","Screwin' Around (Global) (MPU4, v0.7)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4screwb, m4screw, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Global","Screwin' Around (Global) (MPU4, v0.5)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4vfm, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Global","Value For Money (Global) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4jiggin, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Global","Jiggin' In The Riggin' (Global) (MPU4) (set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4jiggina, m4jiggin, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Global","Jiggin' In The Riggin' (Global) (MPU4) (set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/mpu4mod2sw.c b/src/mame/drivers/mpu4mod2sw.c
index 0365c2177a0..ec94e17a18f 100644
--- a/src/mame/drivers/mpu4mod2sw.c
+++ b/src/mame/drivers/mpu4mod2sw.c
@@ -26,7 +26,7 @@ INPUT_PORTS_EXTERN( mpu4jackpot8tkn );
-#define GAME_FLAGS (GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL)
+#define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL)
DRIVER_INIT_MEMBER( mpu4_state, m4_showstring_mod2 )
{
@@ -1867,7 +1867,7 @@ GAME(199?, m4spnwina ,m4spnwin ,mod2 ,mpu4, mpu4_state, m4default, RO
GAME(199?, m4pick, 0, mod2 ,mpu4, mpu4_state, m4default, ROT0, "JPM","Pick A Fruit (JPM) (MPU4)",GAME_FLAGS )
-GAMEL(1989?, m4conn4, 0, mod2 , connect4, mpu4_state, connect4, ROT0, "Dolbeck Systems","Connect 4",GAME_IMPERFECT_GRAPHICS|GAME_REQUIRES_ARTWORK,layout_connect4 )
+GAMEL(1989?, m4conn4, 0, mod2 , connect4, mpu4_state, connect4, ROT0, "Dolbeck Systems","Connect 4",MACHINE_IMPERFECT_GRAPHICS|MACHINE_REQUIRES_ARTWORK,layout_connect4 )
GAME(199?, m4ttak , 0, mod2 ,mpu4, mpu4_state, m4default, ROT0, "<unknown>","Tic Tac Take (unknown) (MPU4)",GAME_FLAGS )
diff --git a/src/mame/drivers/mpu4mod4yam.c b/src/mame/drivers/mpu4mod4yam.c
index f02b9ea0e58..cd9f78455a9 100644
--- a/src/mame/drivers/mpu4mod4yam.c
+++ b/src/mame/drivers/mpu4mod4yam.c
@@ -8,7 +8,7 @@
MACHINE_CONFIG_EXTERN( mod4yam );
INPUT_PORTS_EXTERN( mpu4 );
-#define GAME_FLAGS (GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK)
+#define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK)
#include "gamball.lh"
@@ -192,7 +192,7 @@ ROM_START( m4tst )
ROM_LOAD( "ut4.p1", 0xC000, 0x4000, CRC(086dc325) SHA1(923caeb61347ac9d3e6bcec45998ddf04b2c8ffd))
ROM_END
-GAME(198?, m4tst, 0, mod4yam ,mpu4 , mpu4_state,m4default, ROT0,"Barcrest","MPU4 Unit Test (Program 4)",GAME_MECHANICAL )
+GAME(198?, m4tst, 0, mod4yam ,mpu4 , mpu4_state,m4default, ROT0,"Barcrest","MPU4 Unit Test (Program 4)",MACHINE_MECHANICAL )
ROM_START( m4stc )
ROM_REGION( 0x10000, "maincpu", 0 )
@@ -256,7 +256,7 @@ GAME_CUSTOM( 199?, m4cojok__f, m4cojok, "cojxy.p1", 0x0000, 0x010000, CR
ROM_REGION( length, "maincpu", 0 ) \
ROM_LOAD( name, offset, length, hash ) \
ROM_END \
- GAMEL(year, setname, parent ,mod4yam ,mpu4 , mpu4_state,m4gambal ,ROT0,company,title,GAME_REQUIRES_ARTWORK|GAME_MECHANICAL,layout_gamball )
+ GAMEL(year, setname, parent ,mod4yam ,mpu4 , mpu4_state,m4gambal ,ROT0,company,title,MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL,layout_gamball )
GAME_CUSTOM( 199?, m4gambal, 0, "gbbx.p1", 0x0000, 0x010000, CRC(0b5adcd0) SHA1(1a198bd4a1e7d6bf4cf025c43d35aaef351415fc), "Barcrest","Gamball (Barcrest) (MPU4) (set 1)" )
GAME_CUSTOM( 199?, m4gambal__a, m4gambal, "gabcx.p1", 0x0000, 0x010000, CRC(52c35266) SHA1(bda49005de88094fbc84621f63b33f0e0a9c0bd3), "Barcrest","Gamball (Barcrest) (MPU4) (set 2)" )
diff --git a/src/mame/drivers/mpu4plasma.c b/src/mame/drivers/mpu4plasma.c
index 49d45ae63bb..d0a87ae6c4a 100644
--- a/src/mame/drivers/mpu4plasma.c
+++ b/src/mame/drivers/mpu4plasma.c
@@ -191,16 +191,16 @@ ROM_START( m4elite )
M4ELITE_PLASMA
ROM_END
-#define GAME_FLAGS (GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL)
+#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|GAME_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|GAME_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|GAME_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|GAME_NO_SOUND,layout_mpu4plasma )
+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?, m4click ,0 ,mpu4plasma ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Clickity Click (Barcrest) (MPU4 w/ Plasma DMD)", GAME_FLAGS|GAME_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 )
// 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|GAME_NO_SOUND,layout_mpu4plasma )
+GAMEL(199?, m4apach ,0 ,mpu4plasma ,mpu4 , mpu4_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|GAME_NO_SOUND,layout_mpu4plasma )
+GAMEL(199?, m4elite ,0 ,mpu4plasma ,mpu4 , mpu4_state,m4default ,ROT0, "Barcrest","Elite (Barcrest) (MPU4 w/ Plasma DMD?)", GAME_FLAGS|MACHINE_NO_SOUND,layout_mpu4plasma )
diff --git a/src/mame/drivers/mpu4sw.c b/src/mame/drivers/mpu4sw.c
index ab00ff0f445..01923ddcb3b 100644
--- a/src/mame/drivers/mpu4sw.c
+++ b/src/mame/drivers/mpu4sw.c
@@ -27,7 +27,7 @@ INPUT_PORTS_EXTERN( grtecp );
INPUT_PORTS_EXTERN( mpu4jackpot8tkn );
INPUT_PORTS_EXTERN( mpu4jackpot8per );
-#define GAME_FLAGS (GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL)
+#define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL)
DRIVER_INIT_MEMBER(mpu4_state,m4debug)
{
@@ -179,7 +179,7 @@ ROM_START( m4andycpdut )
ROM_END
// blank copyright and "DAC 1.3" (6 reel game, not the same as the UK version?)
-GAME(199?, m4andycpdut, m4andycp ,mod4oki ,mpu4 , mpu4_state,m4_showstring ,ROT0, "Barcrest","Andy Capp (Barcrest) [DAC 1.3, Dutch] (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
+GAME(199?, m4andycpdut, m4andycp ,mod4oki ,mpu4 , mpu4_state,m4_showstring ,ROT0, "Barcrest","Andy Capp (Barcrest) [DAC 1.3, Dutch] (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
#define M4ANDYFL_EXTRA_ROMS \
@@ -3931,20 +3931,20 @@ GAME_CUSTOM( 199?, m4vivess__p, m4vivess, "sesy.p1", 0x0000, 0x010000, CRC
GAME(year, setname, parent ,mod4oki ,mpu4 , mpu4_state,m4_showstring_big ,ROT0,company,title,GAME_FLAGS )
-GAME_CUSTOM( 199?, m4ttdia, 0, "tda04s.p1", 0x0000, 0x020000, CRC(1240642e) SHA1(7eaf02d5c00707a0a6d98d247c293cad1ca87108), "Barcrest","Ten Ten Do It Again (Barcrest) (MPU4) (set 1)" )
-GAME_CUSTOM( 199?, m4ttdia__a, m4ttdia, "tda04ad.p1", 0x0000, 0x020000, CRC(79d804ba) SHA1(0616a2718aea85692ce5c5086f18e54a531efb19), "Barcrest","Ten Ten Do It Again (Barcrest) (MPU4) (set 2)" )
-GAME_CUSTOM( 199?, m4ttdia__b, m4ttdia, "tda04b.p1", 0x0000, 0x020000, CRC(dc755e6a) SHA1(386a1baf7d86d73dff1d6034f60094a55255d6bc), "Barcrest","Ten Ten Do It Again (Barcrest) (MPU4) (set 3)" )
-GAME_CUSTOM( 199?, m4ttdia__c, m4ttdia, "tda04bd.p1", 0x0000, 0x020000, CRC(f4c2aa7f) SHA1(aae114e9ab813809a8f8e2e12773a9f6379f535d), "Barcrest","Ten Ten Do It Again (Barcrest) (MPU4) (set 4)" )
-GAME_CUSTOM( 199?, m4ttdia__d, m4ttdia, "tda04c.p1", 0x0000, 0x020000, CRC(eb3fe378) SHA1(d805cc596dc5c4dd9d0ee5d7c741736698f7db36), "Barcrest","Ten Ten Do It Again (Barcrest) (MPU4) (set 5)" )
-GAME_CUSTOM( 199?, m4ttdia__e, m4ttdia, "tda04d.p1", 0x0000, 0x020000, CRC(a16e551c) SHA1(7aaf5355e3f454523363f78d32b7ff80bac45268), "Barcrest","Ten Ten Do It Again (Barcrest) (MPU4) (set 6)" )
-GAME_CUSTOM( 199?, m4ttdia__f, m4ttdia, "tda04dh.p1", 0x0000, 0x020000, CRC(3a2efa3c) SHA1(e7826f2cc7e7b853cbb9a216212e60be29a89a90), "Barcrest","Ten Ten Do It Again (Barcrest) (MPU4) (set 7)" )
-GAME_CUSTOM( 199?, m4ttdia__g, m4ttdia, "tda04dk.p1", 0x0000, 0x020000, CRC(be050229) SHA1(a4a66f87430a03b1f3b1638d3e45786a64f8db0f), "Barcrest","Ten Ten Do It Again (Barcrest) (MPU4) (set 8)" )
-GAME_CUSTOM( 199?, m4ttdia__h, m4ttdia, "tda04dr.p1", 0x0000, 0x020000, CRC(0d0ab918) SHA1(41f8ac5a59b2600f71f2d5498a20d2ac0f6c7ffa), "Barcrest","Ten Ten Do It Again (Barcrest) (MPU4) (set 9)" )
-GAME_CUSTOM( 199?, m4ttdia__i, m4ttdia, "tda04dy.p1", 0x0000, 0x020000, CRC(39e622d7) SHA1(b8525ffa91b29fe71c452e5642a5eb9432c0fa63), "Barcrest","Ten Ten Do It Again (Barcrest) (MPU4) (set 10)" )
-GAME_CUSTOM( 199?, m4ttdia__j, m4ttdia, "tda04h.p1", 0x0000, 0x020000, CRC(12990e29) SHA1(b61a5efa34e3d3bff80272f2b3008d15ada24179), "Barcrest","Ten Ten Do It Again (Barcrest) (MPU4) (set 11)" )
-GAME_CUSTOM( 199?, m4ttdia__k, m4ttdia, "tda04k.p1", 0x0000, 0x020000, CRC(96b2f63c) SHA1(7cb76b7dfc34d5967ba82c01d8d0b0f8a62a2c93), "Barcrest","Ten Ten Do It Again (Barcrest) (MPU4) (set 12)" )
-GAME_CUSTOM( 199?, m4ttdia__l, m4ttdia, "tda04r.p1", 0x0000, 0x020000, CRC(25bd4d0d) SHA1(967949e7ce73ba7064f3d75333091140236629c7), "Barcrest","Ten Ten Do It Again (Barcrest) (MPU4) (set 13)" )
-GAME_CUSTOM( 199?, m4ttdia__m, m4ttdia, "tda04y.p1", 0x0000, 0x020000, CRC(1151d6c2) SHA1(0048447537061d15c4173366ac1b431e4eef4d57), "Barcrest","Ten Ten Do It Again (Barcrest) (MPU4) (set 14)" )
+GAME_CUSTOM( 199?, m4ttdia, 0, "tda04s.p1", 0x0000, 0x020000, CRC(1240642e) SHA1(7eaf02d5c00707a0a6d98d247c293cad1ca87108), "Barcrest","Ten Ten Do It Again (Barcrest) (MPU4) (set 1)" )
+GAME_CUSTOM( 199?, m4ttdia__a, m4ttdia, "tda04ad.p1", 0x0000, 0x020000, CRC(79d804ba) SHA1(0616a2718aea85692ce5c5086f18e54a531efb19), "Barcrest","Ten Ten Do It Again (Barcrest) (MPU4) (set 2)" )
+GAME_CUSTOM( 199?, m4ttdia__b, m4ttdia, "tda04b.p1", 0x0000, 0x020000, CRC(dc755e6a) SHA1(386a1baf7d86d73dff1d6034f60094a55255d6bc), "Barcrest","Ten Ten Do It Again (Barcrest) (MPU4) (set 3)" )
+GAME_CUSTOM( 199?, m4ttdia__c, m4ttdia, "tda04bd.p1", 0x0000, 0x020000, CRC(f4c2aa7f) SHA1(aae114e9ab813809a8f8e2e12773a9f6379f535d), "Barcrest","Ten Ten Do It Again (Barcrest) (MPU4) (set 4)" )
+GAME_CUSTOM( 199?, m4ttdia__d, m4ttdia, "tda04c.p1", 0x0000, 0x020000, CRC(eb3fe378) SHA1(d805cc596dc5c4dd9d0ee5d7c741736698f7db36), "Barcrest","Ten Ten Do It Again (Barcrest) (MPU4) (set 5)" )
+GAME_CUSTOM( 199?, m4ttdia__e, m4ttdia, "tda04d.p1", 0x0000, 0x020000, CRC(a16e551c) SHA1(7aaf5355e3f454523363f78d32b7ff80bac45268), "Barcrest","Ten Ten Do It Again (Barcrest) (MPU4) (set 6)" )
+GAME_CUSTOM( 199?, m4ttdia__f, m4ttdia, "tda04dh.p1", 0x0000, 0x020000, CRC(3a2efa3c) SHA1(e7826f2cc7e7b853cbb9a216212e60be29a89a90), "Barcrest","Ten Ten Do It Again (Barcrest) (MPU4) (set 7)" )
+GAME_CUSTOM( 199?, m4ttdia__g, m4ttdia, "tda04dk.p1", 0x0000, 0x020000, CRC(be050229) SHA1(a4a66f87430a03b1f3b1638d3e45786a64f8db0f), "Barcrest","Ten Ten Do It Again (Barcrest) (MPU4) (set 8)" )
+GAME_CUSTOM( 199?, m4ttdia__h, m4ttdia, "tda04dr.p1", 0x0000, 0x020000, CRC(0d0ab918) SHA1(41f8ac5a59b2600f71f2d5498a20d2ac0f6c7ffa), "Barcrest","Ten Ten Do It Again (Barcrest) (MPU4) (set 9)" )
+GAME_CUSTOM( 199?, m4ttdia__i, m4ttdia, "tda04dy.p1", 0x0000, 0x020000, CRC(39e622d7) SHA1(b8525ffa91b29fe71c452e5642a5eb9432c0fa63), "Barcrest","Ten Ten Do It Again (Barcrest) (MPU4) (set 10)" )
+GAME_CUSTOM( 199?, m4ttdia__j, m4ttdia, "tda04h.p1", 0x0000, 0x020000, CRC(12990e29) SHA1(b61a5efa34e3d3bff80272f2b3008d15ada24179), "Barcrest","Ten Ten Do It Again (Barcrest) (MPU4) (set 11)" )
+GAME_CUSTOM( 199?, m4ttdia__k, m4ttdia, "tda04k.p1", 0x0000, 0x020000, CRC(96b2f63c) SHA1(7cb76b7dfc34d5967ba82c01d8d0b0f8a62a2c93), "Barcrest","Ten Ten Do It Again (Barcrest) (MPU4) (set 12)" )
+GAME_CUSTOM( 199?, m4ttdia__l, m4ttdia, "tda04r.p1", 0x0000, 0x020000, CRC(25bd4d0d) SHA1(967949e7ce73ba7064f3d75333091140236629c7), "Barcrest","Ten Ten Do It Again (Barcrest) (MPU4) (set 13)" )
+GAME_CUSTOM( 199?, m4ttdia__m, m4ttdia, "tda04y.p1", 0x0000, 0x020000, CRC(1151d6c2) SHA1(0048447537061d15c4173366ac1b431e4eef4d57), "Barcrest","Ten Ten Do It Again (Barcrest) (MPU4) (set 14)" )
@@ -3961,23 +3961,23 @@ GAME_CUSTOM( 199?, m4ttdia__m, m4ttdia, "tda04y.p1", 0x0000, 0x020000, CR
ROM_END \
GAME(year, setname, parent ,mod4oki ,mpu4 , mpu4_state,m4_showstring ,ROT0,company,title,GAME_FLAGS )
-GAME_CUSTOM( 199?, m4przve, 0, "pess.p1", 0x0000, 0x010000, CRC(d8e79833) SHA1(f68fd1bd057a353832c7de3e2818906ab2b844b7), "Barcrest","Prize Viva Esapana (Barcrest) (MPU4) (set 1)" )
-GAME_CUSTOM( 199?, m4przve__a, m4przve, "pe8ad.p1", 0x0000, 0x010000, CRC(3a81422e) SHA1(bb77365ed7bc7c2cd9e1cfe6e266c6edfd3562a3), "Barcrest","Prize Viva Esapana (Barcrest) (MPU4) (set 2)" )
-GAME_CUSTOM( 199?, m4przve__b, m4przve, "pe8b.p1", 0x0000, 0x010000, CRC(9f36b112) SHA1(265451557afcfdc1aa8e77616f4b871698b20c5f), "Barcrest","Prize Viva Esapana (Barcrest) (MPU4) (set 3)" )
-GAME_CUSTOM( 199?, m4przve__c, m4przve, "pe8bd.p1", 0x0000, 0x010000, CRC(af0689b5) SHA1(0e3cf464c855b0dcfeac403bda80818287707abe), "Barcrest","Prize Viva Esapana (Barcrest) (MPU4) (set 4)" )
-GAME_CUSTOM( 199?, m4przve__d, m4przve, "pe8d.p1", 0x0000, 0x010000, CRC(d21ee810) SHA1(bb95e217a383332a6617644bf17239c1ebd7c7e7), "Barcrest","Prize Viva Esapana (Barcrest) (MPU4) (set 5)" )
-GAME_CUSTOM( 199?, m4przve__e, m4przve, "pe8dj.p1", 0x0000, 0x010000, CRC(2bdf3b80) SHA1(2d27373e01c4308c9b0818c8193b459b1b335634), "Barcrest","Prize Viva Esapana (Barcrest) (MPU4) (set 6)" )
-GAME_CUSTOM( 199?, m4przve__f, m4przve, "pe8dk.p1", 0x0000, 0x010000, CRC(fcece282) SHA1(95e5bfeef8618f422501bcb9b703887587b3067a), "Barcrest","Prize Viva Esapana (Barcrest) (MPU4) (set 7)" )
-GAME_CUSTOM( 199?, m4przve__g, m4przve, "pe8dy.p1", 0x0000, 0x010000, CRC(6abc5682) SHA1(ae8754f0e214738adae4bc856cd72b0920aaa67a), "Barcrest","Prize Viva Esapana (Barcrest) (MPU4) (set 8)" )
-GAME_CUSTOM( 199?, m4przve__h, m4przve, "pe8j.p1", 0x0000, 0x010000, CRC(d3bf07f1) SHA1(3e539f24ef25c8d6fbfbdcd469fa8a2908dd2ec2), "Barcrest","Prize Viva Esapana (Barcrest) (MPU4) (set 9)" )
-GAME_CUSTOM( 199?, m4przve__i, m4przve, "pe8k.p1", 0x0000, 0x010000, CRC(efba0d3f) SHA1(2205b94f5a6ed23e834cfeb0d3ebe5ed66d942a1), "Barcrest","Prize Viva Esapana (Barcrest) (MPU4) (set 10)" )
-GAME_CUSTOM( 199?, m4przve__j, m4przve, "pe8s.p1", 0x0000, 0x010000, CRC(e8463e69) SHA1(923d6c79470a65cf66b089ef09898acea928aa9b), "Barcrest","Prize Viva Esapana (Barcrest) (MPU4) (set 11)" )
-GAME_CUSTOM( 199?, m4przve__k, m4przve, "pe8y.p1", 0x0000, 0x010000, CRC(c324b75f) SHA1(bf3409a193539e1e032c856a5316bec674043d57), "Barcrest","Prize Viva Esapana (Barcrest) (MPU4) (set 12)" )
-GAME_CUSTOM( 199?, m4przve__l, m4przve, "pesb.p1", 0x0000, 0x010000, CRC(bf0ffed9) SHA1(ab8cd98ae7dfb3582aad7ae8c669a6d97f144f88), "Barcrest","Prize Viva Esapana (Barcrest) (MPU4) (set 13)" )
-GAME_CUSTOM( 199?, m4przve__m, m4przve, "pesd.p1", 0x0000, 0x010000, CRC(6f7b1e16) SHA1(412a22ebb61b77541da067ba74621c8e54364471), "Barcrest","Prize Viva Esapana (Barcrest) (MPU4) (set 14)" )
-GAME_CUSTOM( 199?, m4przve__n, m4przve, "pesdy.p1", 0x0000, 0x010000, CRC(94db27b4) SHA1(fe745a991a5e78fc9054480d3ce5bf6b7f5f9fe4), "Barcrest","Prize Viva Esapana (Barcrest) (MPU4) (set 15)" )
-GAME_CUSTOM( 199?, m4przve__o, m4przve, "pesk.p1", 0x0000, 0x010000, CRC(9e7b9f58) SHA1(86c2a83964f925448dda189546d9909b10e52673), "Barcrest","Prize Viva Esapana (Barcrest) (MPU4) (set 16)" )
-GAME_CUSTOM( 199?, m4przve__p, m4przve, "pesy.p1", 0x0000, 0x010000, CRC(fbfc1563) SHA1(870239cab39eff33303fe06dfd1dd3db708f0f2d), "Barcrest","Prize Viva Esapana (Barcrest) (MPU4) (set 17)" )
+GAME_CUSTOM( 199?, m4przve, 0, "pess.p1", 0x0000, 0x010000, CRC(d8e79833) SHA1(f68fd1bd057a353832c7de3e2818906ab2b844b7), "Barcrest","Prize Viva Esapana (Barcrest) (MPU4) (set 1)" )
+GAME_CUSTOM( 199?, m4przve__a, m4przve, "pe8ad.p1", 0x0000, 0x010000, CRC(3a81422e) SHA1(bb77365ed7bc7c2cd9e1cfe6e266c6edfd3562a3), "Barcrest","Prize Viva Esapana (Barcrest) (MPU4) (set 2)" )
+GAME_CUSTOM( 199?, m4przve__b, m4przve, "pe8b.p1", 0x0000, 0x010000, CRC(9f36b112) SHA1(265451557afcfdc1aa8e77616f4b871698b20c5f), "Barcrest","Prize Viva Esapana (Barcrest) (MPU4) (set 3)" )
+GAME_CUSTOM( 199?, m4przve__c, m4przve, "pe8bd.p1", 0x0000, 0x010000, CRC(af0689b5) SHA1(0e3cf464c855b0dcfeac403bda80818287707abe), "Barcrest","Prize Viva Esapana (Barcrest) (MPU4) (set 4)" )
+GAME_CUSTOM( 199?, m4przve__d, m4przve, "pe8d.p1", 0x0000, 0x010000, CRC(d21ee810) SHA1(bb95e217a383332a6617644bf17239c1ebd7c7e7), "Barcrest","Prize Viva Esapana (Barcrest) (MPU4) (set 5)" )
+GAME_CUSTOM( 199?, m4przve__e, m4przve, "pe8dj.p1", 0x0000, 0x010000, CRC(2bdf3b80) SHA1(2d27373e01c4308c9b0818c8193b459b1b335634), "Barcrest","Prize Viva Esapana (Barcrest) (MPU4) (set 6)" )
+GAME_CUSTOM( 199?, m4przve__f, m4przve, "pe8dk.p1", 0x0000, 0x010000, CRC(fcece282) SHA1(95e5bfeef8618f422501bcb9b703887587b3067a), "Barcrest","Prize Viva Esapana (Barcrest) (MPU4) (set 7)" )
+GAME_CUSTOM( 199?, m4przve__g, m4przve, "pe8dy.p1", 0x0000, 0x010000, CRC(6abc5682) SHA1(ae8754f0e214738adae4bc856cd72b0920aaa67a), "Barcrest","Prize Viva Esapana (Barcrest) (MPU4) (set 8)" )
+GAME_CUSTOM( 199?, m4przve__h, m4przve, "pe8j.p1", 0x0000, 0x010000, CRC(d3bf07f1) SHA1(3e539f24ef25c8d6fbfbdcd469fa8a2908dd2ec2), "Barcrest","Prize Viva Esapana (Barcrest) (MPU4) (set 9)" )
+GAME_CUSTOM( 199?, m4przve__i, m4przve, "pe8k.p1", 0x0000, 0x010000, CRC(efba0d3f) SHA1(2205b94f5a6ed23e834cfeb0d3ebe5ed66d942a1), "Barcrest","Prize Viva Esapana (Barcrest) (MPU4) (set 10)" )
+GAME_CUSTOM( 199?, m4przve__j, m4przve, "pe8s.p1", 0x0000, 0x010000, CRC(e8463e69) SHA1(923d6c79470a65cf66b089ef09898acea928aa9b), "Barcrest","Prize Viva Esapana (Barcrest) (MPU4) (set 11)" )
+GAME_CUSTOM( 199?, m4przve__k, m4przve, "pe8y.p1", 0x0000, 0x010000, CRC(c324b75f) SHA1(bf3409a193539e1e032c856a5316bec674043d57), "Barcrest","Prize Viva Esapana (Barcrest) (MPU4) (set 12)" )
+GAME_CUSTOM( 199?, m4przve__l, m4przve, "pesb.p1", 0x0000, 0x010000, CRC(bf0ffed9) SHA1(ab8cd98ae7dfb3582aad7ae8c669a6d97f144f88), "Barcrest","Prize Viva Esapana (Barcrest) (MPU4) (set 13)" )
+GAME_CUSTOM( 199?, m4przve__m, m4przve, "pesd.p1", 0x0000, 0x010000, CRC(6f7b1e16) SHA1(412a22ebb61b77541da067ba74621c8e54364471), "Barcrest","Prize Viva Esapana (Barcrest) (MPU4) (set 14)" )
+GAME_CUSTOM( 199?, m4przve__n, m4przve, "pesdy.p1", 0x0000, 0x010000, CRC(94db27b4) SHA1(fe745a991a5e78fc9054480d3ce5bf6b7f5f9fe4), "Barcrest","Prize Viva Esapana (Barcrest) (MPU4) (set 15)" )
+GAME_CUSTOM( 199?, m4przve__o, m4przve, "pesk.p1", 0x0000, 0x010000, CRC(9e7b9f58) SHA1(86c2a83964f925448dda189546d9909b10e52673), "Barcrest","Prize Viva Esapana (Barcrest) (MPU4) (set 16)" )
+GAME_CUSTOM( 199?, m4przve__p, m4przve, "pesy.p1", 0x0000, 0x010000, CRC(fbfc1563) SHA1(870239cab39eff33303fe06dfd1dd3db708f0f2d), "Barcrest","Prize Viva Esapana (Barcrest) (MPU4) (set 17)" )
#define M4SHOCM_EXTRA_ROMS \
diff --git a/src/mame/drivers/mpu4union.c b/src/mame/drivers/mpu4union.c
index f6254398cd6..bca6b812f7f 100644
--- a/src/mame/drivers/mpu4union.c
+++ b/src/mame/drivers/mpu4union.c
@@ -9,7 +9,7 @@ MACHINE_CONFIG_EXTERN( mod4oki );
MACHINE_CONFIG_EXTERN( mod2 );
INPUT_PORTS_EXTERN( mpu4 );
-#define GAME_FLAGS (GAME_NOT_WORKING|GAME_REQUIRES_ARTWORK|GAME_MECHANICAL)
+#define GAME_FLAGS (MACHINE_NOT_WORKING|MACHINE_REQUIRES_ARTWORK|MACHINE_MECHANICAL)
ROM_START( m4cwalk )
@@ -260,37 +260,37 @@ ROM_END
/* Union
these don't boot, at best you get a 'CLEAR' message */
-GAME(199?, m4cwalk, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Union","Cake Walk (Union) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4eezee, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Union","Eezee Fruits (Union) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4frdrop, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Union","Fruit Drop (Union) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4gobana, 0, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Union","Go Bananas (Union) (MPU4, set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4gobanaa, m4gobana, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Union","Go Bananas (Union) (MPU4, set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4gobanab, m4gobana, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Union","Go Bananas (Union) (MPU4, set 3)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4gobanac, m4gobana, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Union","Go Bananas (Union) (MPU4, set 4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4gobanad, m4gobana, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Union","Go Bananas (Union) (MPU4, set 5)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4lotty, 0, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Union","Lotty Time (Union) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4maxmze, 0, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Union","Maximize (Union) (MPU4, set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4maxmzea, m4maxmze, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Union","Maximize (Union) (MPU4, set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4maxmzeb, m4maxmze, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Union","Maximize (Union) (MPU4, set 3)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4maxmzec, m4maxmze, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Union","Maximize (Union) (MPU4, set 4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4maxmzed, m4maxmze, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Union","Maximize (Union) (MPU4, set 5)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4mecca, 0, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Union","Mecca Money (Union) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4purmad, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Union","Pure Madness (Union)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4revolv, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Union","Revolva (Union) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4rotex, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Union","Rotex (Union) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4select, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Union","Select (Union) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4supfru, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Union","Supafruits (Union) (MPU4, set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4supfrua,m4supfru, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Union","Supafruits (Union) (MPU4, set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4trimad, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Union","Triple Madness (Union) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4unibox, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Union","Unibox (Union) (MPU4, set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4uniboxa,m4unibox, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Union","Unibox (Union) (MPU4, set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4unique, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Union","Unique (Union) (MPU4, set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4uniquep,m4unique, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Union","Unique (Union) (MPU4, set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4crzbn, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Union","Crazy Bingo (Union) (MPU4)", GAME_FLAGS|GAME_NO_SOUND )
+GAME(199?, m4cwalk, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Union","Cake Walk (Union) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4eezee, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Union","Eezee Fruits (Union) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4frdrop, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Union","Fruit Drop (Union) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4gobana, 0, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Union","Go Bananas (Union) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4gobanaa, m4gobana, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Union","Go Bananas (Union) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4gobanab, m4gobana, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Union","Go Bananas (Union) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4gobanac, m4gobana, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Union","Go Bananas (Union) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4gobanad, m4gobana, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Union","Go Bananas (Union) (MPU4, set 5)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4lotty, 0, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Union","Lotty Time (Union) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4maxmze, 0, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Union","Maximize (Union) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4maxmzea, m4maxmze, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Union","Maximize (Union) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4maxmzeb, m4maxmze, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Union","Maximize (Union) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4maxmzec, m4maxmze, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Union","Maximize (Union) (MPU4, set 4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4maxmzed, m4maxmze, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Union","Maximize (Union) (MPU4, set 5)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4mecca, 0, mod2 ,mpu4, mpu4_state, m4default, ROT0, "Union","Mecca Money (Union) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4purmad, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Union","Pure Madness (Union)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4revolv, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Union","Revolva (Union) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4rotex, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Union","Rotex (Union) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4select, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Union","Select (Union) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4supfru, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Union","Supafruits (Union) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4supfrua,m4supfru, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Union","Supafruits (Union) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4trimad, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Union","Triple Madness (Union) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4unibox, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Union","Unibox (Union) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4uniboxa,m4unibox, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Union","Unibox (Union) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4unique, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Union","Unique (Union) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4uniquep,m4unique, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Union","Unique (Union) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4crzbn, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Union","Crazy Bingo (Union) (MPU4)", GAME_FLAGS|MACHINE_NO_SOUND )
/* Union + Empire
same as Union above */
-GAME(199?, m4gvibes, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Union / Empire","Good Vibrations (Union - Empire) (MPU4, set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4gvibesa, m4gvibes, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Union / Empire","Good Vibrations (Union - Empire) (MPU4, set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4rckrol, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Union / Empire","Rock 'n' Roll (Union - Empire) (MPU4, set 1)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4rckrola, m4rckrol, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Union / Empire","Rock 'n' Roll (Union - Empire) (MPU4, set 2)", GAME_FLAGS|GAME_NO_SOUND )
-GAME(199?, m4rckrolb, m4rckrol, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Union / Empire","Rock 'n' Roll (Union - Empire) (MPU4, set 3)", GAME_FLAGS|GAME_NO_SOUND )
+GAME(199?, m4gvibes, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Union / Empire","Good Vibrations (Union - Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4gvibesa, m4gvibes, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Union / Empire","Good Vibrations (Union - Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4rckrol, 0, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Union / Empire","Rock 'n' Roll (Union - Empire) (MPU4, set 1)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4rckrola, m4rckrol, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Union / Empire","Rock 'n' Roll (Union - Empire) (MPU4, set 2)", GAME_FLAGS|MACHINE_NO_SOUND )
+GAME(199?, m4rckrolb, m4rckrol, mod4oki, mpu4, mpu4_state, m4default, ROT0, "Union / Empire","Rock 'n' Roll (Union - Empire) (MPU4, set 3)", GAME_FLAGS|MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/mpu4vid.c b/src/mame/drivers/mpu4vid.c
index 8b8fab87261..f87ca949180 100644
--- a/src/mame/drivers/mpu4vid.c
+++ b/src/mame/drivers/mpu4vid.c
@@ -3654,9 +3654,9 @@ 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",GAME_IS_BIOS_ROOT )
+GAME( 199?,v4bios, 0, mod2, mpu4, driver_device, 0, ROT0, "Barcrest","MPU4 Video Firmware",MACHINE_IS_BIOS_ROOT )
-#define GAME_FLAGS GAME_NOT_WORKING
+#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
diff --git a/src/mame/drivers/mpu5.c b/src/mame/drivers/mpu5.c
index f9d1f53b0b6..e7aa9997bc9 100644
--- a/src/mame/drivers/mpu5.c
+++ b/src/mame/drivers/mpu5.c
@@ -7191,937 +7191,937 @@ ROM_END
/* Barcrest */
-GAME( 199?, m5clr ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","MPU 5 Ram & Meter Clear (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5tst ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","MPU 5 Test Rom (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+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?, m5addams ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.5, set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5addamsa ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.5, set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5addamsb ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.5, set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5addamsc ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.5, set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5addamsd ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.5, set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5addamse ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.5, set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5addamsf ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.5, set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5addamsg ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.5, set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5addamsh ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.2, set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5addamsi ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.2, set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5addamsj ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.2, set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5addamsk ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.3, set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5addamsl ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.3, set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5addamsm ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.3, set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5addamsn ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.3, set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5addamso ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.3, set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5addamsp ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.3, set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5addamsq ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.3, set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5addamsr ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.3, set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5addamss ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.3, set 9)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5addams ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.5, set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5addamsa ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.5, set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5addamsb ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.5, set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5addamsc ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.5, set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5addamsd ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.5, set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5addamse ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.5, set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5addamsf ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.5, set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5addamsg ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.5, set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5addamsh ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.2, set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5addamsi ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.2, set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5addamsj ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.2, set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5addamsk ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.3, set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5addamsl ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.3, set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5addamsm ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.3, set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5addamsn ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.3, set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5addamso ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.3, set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5addamsp ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.3, set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5addamsq ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.3, set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5addamsr ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.3, set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5addamss ,m5addams, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Addams Family (Barcrest) (MPU5) (v0.3, set 9)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5addlad ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.6, set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5addlada ,m5addlad, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.6, set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5addladb ,m5addlad, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.6, set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5addladc ,m5addlad, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.6, set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5addladd ,m5addlad, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.6, set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5addlade ,m5addlad, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.6, set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5addladf ,m5addlad, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.6, set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5addladg ,m5addlad, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.6, set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5addladh ,m5addlad, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.6, set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5addladi ,m5addlad, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.6, set 10)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5addladj ,m5addlad, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.1, set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5addladk ,m5addlad, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.1, set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5addladl ,m5addlad, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.1, set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5addladm ,m5addlad, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.1, set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5addladn ,m5addlad, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.1, set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5addlado ,m5addlad, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.1, set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5addladp ,m5addlad, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.1, set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5addladq ,m5addlad, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.4, set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5addladr ,m5addlad, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v0.4, set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5addlads ,m5addlad, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Adders & Ladders (Barcrest) (MPU5, v?.?)", GAME_IS_SKELETON_MECHANICAL )
+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?, m5fire ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","All Fired Up (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5fire ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","All Fired Up (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5arab ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Arabian Nights (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5arab03 ,m5arab, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Arabian Nights (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5arab ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Arabian Nights (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5arab03 ,m5arab, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Arabian Nights (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5austin ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Austin Powers (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5austin10 ,m5austin, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Austin Powers (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5austin11 ,m5austin, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Austin Powers (Barcrest) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5austin ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Austin Powers (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5austin10 ,m5austin, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Austin Powers (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5austin11 ,m5austin, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Austin Powers (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5bankrl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","The Bank Roll (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5bankrl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","The Bank Roll (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5barkng ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Barking Mad (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5barkng ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Barking Mad (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5barmy ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Barmy Army (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5barmy ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Barmy Army (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5baxe ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Battle Axe (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5baxe04 ,m5baxe, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Battle Axe (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5baxe ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Battle Axe (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5baxe04 ,m5baxe, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Battle Axe (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5bbro ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Big Brother (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5bbro02 ,m5bbro, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Big Brother (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5bbro ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Big Brother (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5bbro02 ,m5bbro, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Big Brother (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5bbrocl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Big Brother Club (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5bbrocl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Big Brother Club (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5bigchs ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","The Big Cheese (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5bigchs05 ,m5bigchs, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","The Big Cheese (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5bigchs ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","The Big Cheese (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5bigchs05 ,m5bigchs, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","The Big Cheese (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5biggam ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","The Big Game (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5biggam11 ,m5biggam, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","The Big Game (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5biggam ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","The Big Game (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5biggam11 ,m5biggam, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","The Big Game (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5blkwht ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Black & White (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5blkwht11 ,m5blkwht, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Black & White (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5blkwht01 ,m5blkwht, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Black & White (Barcrest) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5blkwht ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Black & White (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5blkwht11 ,m5blkwht, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Black & White (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5blkwht01 ,m5blkwht, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Black & White (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5bwaves ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Brain Waves (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5bwaves07 ,m5bwaves, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Brain Waves (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5bwaves ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Brain Waves (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5bwaves07 ,m5bwaves, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Brain Waves (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5bling ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Bling King Crazy (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5bling ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Bling King Crazy (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5cbw ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Ca$h Bang Wallop (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5cbwa ,m5cbw, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Ca$h Bang Wallop (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5cbw ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Ca$h Bang Wallop (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5cbwa ,m5cbw, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Ca$h Bang Wallop (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5cpcash ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Captain Cash (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5cpcash ,0, mpu5, mpu5, driver_device, 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)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5carclb ,0, mpu5, mpu5, driver_device, 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)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5cashar04 ,m5cashar, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Cash Arena (Barcrest) (MPU5) (set 2)", GAME_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?, m5cashat ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Cash Attack (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5cashat ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Cash Attack (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5cashln ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Cash Lines (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5cashln ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Cash Lines (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5cashrn ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Cash Run (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5cashrn01 ,m5cashrn, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Cash Run (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5cashrn02 ,m5cashrn, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Cash Run (Barcrest) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5cashrn04 ,m5cashrn, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Cash Run (Barcrest) (MPU5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5cashrn ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Cash Run (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5cashrn01 ,m5cashrn, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Cash Run (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5cashrn02 ,m5cashrn, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Cash Run (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5cashrn04 ,m5cashrn, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Cash Run (Barcrest) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5codft ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","The Codfather (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5codft02 ,m5codft, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","The Codfather (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5codft ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","The Codfather (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5codft02 ,m5codft, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","The Codfather (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5cos ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Costa Del Cash Casino (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5cos ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Costa Del Cash Casino (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5cosclb ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Costa Del Cash Club (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5cosclb ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Costa Del Cash Club (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5crzkni ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Crazy Crazy Knights (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5crzkni03 ,m5crzkni, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Crazy Crazy Knights (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5crzkni ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Crazy Crazy Knights (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5crzkni03 ,m5crzkni, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Crazy Crazy Knights (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5doshpk ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Do$h 'n' Pecks (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5doshpk05 ,m5doshpk, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Do$h 'n' Pecks (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5doshpk ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Do$h 'n' Pecks (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5doshpk05 ,m5doshpk, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Do$h 'n' Pecks (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5draclb ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Ooh Aah Dracula Club (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5draclb07 ,m5draclb, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Ooh Aah Dracula Club (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5draclb01 ,m5draclb, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Ooh Aah Dracula Club (Barcrest) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
+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?, m5ewn ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Each Way Nudge (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5ewn08 ,m5ewn, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Each Way Nudge (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5ewn ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Each Way Nudge (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5ewn08 ,m5ewn, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Each Way Nudge (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5elim ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Eliminator (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5elim03 ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Eliminator (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5elim04 ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Eliminator (Barcrest) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5elim ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Eliminator (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5elim03 ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Eliminator (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5elim04 ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Eliminator (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5egr ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Elvis Gold Rush (Barcrest) (MPU5, set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5egra ,m5egr, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Elvis Gold Rush (Barcrest) (MPU5, set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5egr ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Elvis Gold Rush (Barcrest) (MPU5, set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5egra ,m5egr, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Elvis Gold Rush (Barcrest) (MPU5, set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5egss ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Elvis Gold Super Streak (Barcrest) (MPU5, set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5egssa ,m5egss, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Elvis Gold Super Streak (Barcrest) (MPU5, set 2)", GAME_IS_SKELETON_MECHANICAL )
+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?, m5evgrhr ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Elvis Gold Red Hot Roll (Barcrest) (MPU5, set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5evgrhra ,m5evgrhr, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Elvis Gold Red Hot Roll (Barcrest) (MPU5, set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5evgrhr ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Elvis Gold Red Hot Roll (Barcrest) (MPU5, set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5evgrhra ,m5evgrhr, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Elvis Gold Red Hot Roll (Barcrest) (MPU5, set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5xchn ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Exchanges Unlimited (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5xchn ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Exchanges Unlimited (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5firebl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Fireball (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5firebl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Fireball (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5flipcr ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Flippin Crazy (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5flipcr ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Flippin Crazy (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5fortby ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Fort Boyard (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5fortby01 ,m5fortby, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Fort Boyard (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5fortby ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Fort Boyard (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5fortby01 ,m5fortby, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Fort Boyard (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5frnzy ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Frenzy (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5frnzya ,m5frnzy, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Frenzy (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5frnzy ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Frenzy (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5frnzya ,m5frnzy, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Frenzy (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5beans ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Full Of Beans (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5beansa ,m5beans, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Full Of Beans (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5beans ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Full Of Beans (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5beansa ,m5beans, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Full Of Beans (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5funsun ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Fun In The Sun (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5funsun03 ,m5funsun, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Fun In The Sun (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5funsun ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Fun In The Sun (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5funsun03 ,m5funsun, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Fun In The Sun (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5gimmie ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gimmie Gimmie Gimmie (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5gimmie ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gimmie Gimmie Gimmie (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5grush ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Rush (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5grush10 ,m5grush, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Rush (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5grush04 ,m5grush, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Rush (Barcrest) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5grush03 ,m5grush, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Rush (Barcrest) (MPU5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5grush02 ,m5grush, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Rush (Barcrest) (MPU5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5grush01 ,m5grush, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Rush (Barcrest) (MPU5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5grush ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Rush (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5grush10 ,m5grush, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Rush (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5grush04 ,m5grush, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Rush (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5grush03 ,m5grush, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Rush (Barcrest) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5grush02 ,m5grush, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Rush (Barcrest) (MPU5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5grush01 ,m5grush, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Rush (Barcrest) (MPU5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5grush5 ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Rush Five Liner (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5grush504 ,m5grush5, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Rush Five Liner (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5grush5 ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Rush Five Liner (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5grush504 ,m5grush5, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Rush Five Liner (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5gruss ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Rush Sit Down (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5gruss ,0, mpu5, mpu5, driver_device, 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)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5grusst04 ,m5grusst, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Rush Stampede (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5grusst03 ,m5grusst, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Rush Stampede (Barcrest) (MPU5) (set 3)", GAME_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?, m5gstrik ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Strike (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5gstrik11 ,m5gstrik, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Strike (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5gstrik02 ,m5gstrik, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Strike (Barcrest) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5gstrik01 ,m5gstrik, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Strike (Barcrest) (MPU5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5gstrik01a ,m5gstrik, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Strike (Barcrest) (MPU5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5gstrika ,m5gstrik, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Strike (Barcrest) (MPU5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5gstrik ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Strike (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5gstrik11 ,m5gstrik, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Strike (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5gstrik02 ,m5gstrik, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Strike (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5gstrik01 ,m5gstrik, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Strike (Barcrest) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5gstrik01a ,m5gstrik, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Strike (Barcrest) (MPU5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5gstrika ,m5gstrik, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Strike (Barcrest) (MPU5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5gsstrk ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Super Streak (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5gsstrk07 ,m5gsstrk, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Super Streak (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5gsstrk ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Super Streak (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5gsstrk07 ,m5gsstrk, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Gold Super Streak (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5gdrag ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Golden Dragon (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5gdrag ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Golden Dragon (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5gdrgcl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Golden Dragon Club (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5gdrgcl05 ,m5gdrgcl, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Golden Dragon Club (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+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?, m5gkeys ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Golden Keys (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5gkeys ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Golden Keys (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5hellrz ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Hellraiser (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5hellrz ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Hellraiser (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5hlsumo ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Hi Lo Sumo (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5hlsumo ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Hi Lo Sumo (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5hifly ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","High Flyer (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5hifly03 ,m5hifly, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","High Flyer (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5hifly04 ,m5hifly, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","High Flyer (Barcrest) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5hifly ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","High Flyer (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5hifly03 ,m5hifly, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","High Flyer (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5hifly04 ,m5hifly, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","High Flyer (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5holy ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","The Holy Grail (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5holy10 ,m5holy, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","The Holy Grail (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5holy ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","The Holy Grail (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5holy10 ,m5holy, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","The Holy Grail (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5hotslt ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Hot Slot (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5hotslt ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Hot Slot (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5hotstf ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Hot Stuff (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5hotstf ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Hot Stuff (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5hypvip ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Hyper Viper (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5hypvip ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Hyper Viper (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5jackpt ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Jackpoteers (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5jackpt07 ,m5jackpt, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Jackpoteers (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5jackpt ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Jackpoteers (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5jackpt07 ,m5jackpt, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Jackpoteers (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5jackp2 ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Jackpoteers 2 (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5jackp2a ,m5jackp2, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Jackpoteers 2 (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5jackp2 ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Jackpoteers 2 (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5jackp2a ,m5jackp2, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Jackpoteers 2 (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5jlyjwl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Jolly Jewels (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5jlyjwl01 ,m5jlyjwl, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Jolly Jewels (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5jlyjwl02 ,m5jlyjwl, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Jolly Jewels (Barcrest) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5jlyjwl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Jolly Jewels (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5jlyjwl01 ,m5jlyjwl, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Jolly Jewels (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5jlyjwl02 ,m5jlyjwl, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Jolly Jewels (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5jlyrog ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Jolly Roger (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5jlyroga ,m5jlyrog, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Jolly Roger (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+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?, m5kkebab ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","King Kebab (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5kkebab10 ,m5kkebab, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","King Kebab (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5kkebaba ,m5kkebab, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","King Kebab (Barcrest) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5kkebab ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","King Kebab (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5kkebab10 ,m5kkebab, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","King Kebab (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5kkebaba ,m5kkebab, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","King Kebab (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5kingko ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","King KO (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5kingko04 ,m5kingko, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","King KO (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5kingko05 ,m5kingko, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","King KO (Barcrest) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
+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?, m5lotta ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Lotta Luck (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5lotta ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Lotta Luck (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5mega ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Mega Zone (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5mega ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Mega Zone (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5martns ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Money Mad Martians (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5martns07 ,m5martns, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Money Mad Martians (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5martns ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Money Mad Martians (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5martns07 ,m5martns, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Money Mad Martians (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5mmak ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Money Maker (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5mmak06 ,m5mmak, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Money Maker (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5mmak ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Money Maker (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5mmak06 ,m5mmak, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Money Maker (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5monjok ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Monedin Joker (Spanish) (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5monjoka ,m5monjok, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Monedin Joker (Spanish) (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+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?, m5monty ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Monty Python (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5monty ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Monty Python (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5mprio ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Monty Python Rio (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5mprio ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Monty Python Rio (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5mpfc ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Monty Python's Flying Circus (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5mpfc ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Monty Python's Flying Circus (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5mpfccl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Monty Python's Flying Circus Club (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+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?, m5neptun ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Neptunes Treasure (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5neptun ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Neptunes Treasure (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5nnww ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Nudge Nudge Wink Wink (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5nnww ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Nudge Nudge Wink Wink (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5nnwwgl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Nudge Nudge Wink Wink Gold (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5nnwwgl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Nudge Nudge Wink Wink Gold (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5fiddle ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","On The Fiddle (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5fiddle03 ,m5fiddle, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","On The Fiddle (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5fiddle ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","On The Fiddle (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5fiddle03 ,m5fiddle, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","On The Fiddle (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5oohaah ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Ooh Aah Dracula (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5oohaah01 ,m5oohaah, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Ooh Aah Dracula (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5oohaah ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Ooh Aah Dracula (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5oohaah01 ,m5oohaah, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Ooh Aah Dracula (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5oohrio ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Ooh Ahh Dracula Rio (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5oohrio ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Ooh Ahh Dracula Rio (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5openbx ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Open The Box (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5openbx06 ,m5openbx, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Open The Box (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5openbx05 ,m5openbx, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Open The Box (Barcrest) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5openbx01 ,m5openbx, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Open The Box (Barcrest) (MPU5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5openbx ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Open The Box (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5openbx06 ,m5openbx, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Open The Box (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5openbx05 ,m5openbx, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Open The Box (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5openbx01 ,m5openbx, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Open The Box (Barcrest) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5overld ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Overload (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5overld02 ,m5overld, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Overload (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5overld10 ,m5overld, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Overload (Barcrest) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5overld11 ,m5overld, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Overload (Barcrest) (MPU5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5overld ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Overload (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5overld02 ,m5overld, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Overload (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5overld10 ,m5overld, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Overload (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5overld11 ,m5overld, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Overload (Barcrest) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5ptyani ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Party Animal (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5ptyani01 ,m5ptyani, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Party Animal (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5ptyani ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Party Animal (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5ptyani01 ,m5ptyani, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Party Animal (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5peepsh ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Peep Show (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5peepsh ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Peep Show (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5psy2 ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Psycho Cash Beast 2 (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5psy2 ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Psycho Cash Beast 2 (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5qshot ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Quack Shot (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5qshot04 ,m5qshot, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Quack Shot (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5qshot ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Quack Shot (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5qshot04 ,m5qshot, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Quack Shot (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5roof ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Raise The Roof (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5roofa ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Raise The Roof (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+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?, m5razdz ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Razzle Dazzle Club (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5razdz10 ,m5razdz, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Razzle Dazzle Club (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5razdz11 ,m5razdz, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Razzle Dazzle Club (Barcrest) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5razdz ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Razzle Dazzle Club (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5razdz10 ,m5razdz, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Razzle Dazzle Club (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5razdz11 ,m5razdz, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Razzle Dazzle Club (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5redrck ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Ready To Rock (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5redrck10 ,m5redrck, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Ready To Rock (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5redrcka ,m5redrck, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Ready To Rock (Barcrest) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5redrck ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Ready To Rock (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5redrck10 ,m5redrck, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Ready To Rock (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5redrcka ,m5redrck, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Ready To Rock (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5rhkni ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Red Hot Knights (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5rhkni ,0, mpu5, mpu5, driver_device, 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)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5rhrga ,m5rhrg, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Red Hot Roll Gold (Barcrest) (MPU5) (set 2)", GAME_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?, m5rhrgt ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Red Hot Roll Triple (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5rhrgt12 ,m5rhrgt, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Red Hot Roll Triple (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5rhrgt02 ,m5rhrgt, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Red Hot Roll Triple (Barcrest) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5rhrgt ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Red Hot Roll Triple (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5rhrgt12 ,m5rhrgt, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Red Hot Roll Triple (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5rhrgt02 ,m5rhrgt, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Red Hot Roll Triple (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5revo ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Revolution (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5revo13 ,m5revo, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Revolution (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5revoa ,m5revo, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Revolution (Barcrest) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5revo ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Revolution (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5revo13 ,m5revo, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Revolution (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5revoa ,m5revo, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Revolution (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5rgclb ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Rio Grande Club (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5rgclb11 ,m5rgclb, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Rio Grande Club (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5rgclb12 ,m5rgclb, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Rio Grande Club (Barcrest) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5rgclb20 ,m5rgclb, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Rio Grande Club (Barcrest) (MPU5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5rgclb21 ,m5rgclb, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Rio Grande Club (Barcrest) (MPU5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5rgclb03 ,m5rgclb, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Rio Grande Club (Barcrest) (MPU5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5rgclb01 ,m5rgclb, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Rio Grande Club (Barcrest) (MPU5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5rgclb01a ,m5rgclb, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Rio Grande Club (Barcrest) (MPU5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5rgclb ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Rio Grande Club (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5rgclb11 ,m5rgclb, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Rio Grande Club (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5rgclb12 ,m5rgclb, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Rio Grande Club (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5rgclb20 ,m5rgclb, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Rio Grande Club (Barcrest) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5rgclb21 ,m5rgclb, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Rio Grande Club (Barcrest) (MPU5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5rgclb03 ,m5rgclb, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Rio Grande Club (Barcrest) (MPU5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5rgclb01 ,m5rgclb, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Rio Grande Club (Barcrest) (MPU5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5rgclb01a ,m5rgclb, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Rio Grande Club (Barcrest) (MPU5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5rcx ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Royal Exchange Club (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5rcxa ,m5rcx, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Royal Exchange Club (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+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?, m5rub ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Rubies & Diamonds (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5rub ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Rubies & Diamonds (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5ritj ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Rumble In The Jungle (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5ritj ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Rumble In The Jungle (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5rfymc ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Run For Your Money Club (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5rfymc06 ,m5rfymc, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Run For Your Money Club (Barcrest) (MPU5) (Set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5rfymc ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Run For Your Money Club (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5rfymc06 ,m5rfymc, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Run For Your Money Club (Barcrest) (MPU5) (Set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5seven ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Seven Deadly Spins (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5seven ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Seven Deadly Spins (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5sheik ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Sheik Yer Money (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5sheik ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Sheik Yer Money (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5showtm ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Showtime (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5showtm ,0, mpu5, mpu5, driver_device, 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)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5silver06 ,m5silver, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Silver Screen (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5silver03 ,m5silver, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Silver Screen (Barcrest) (MPU5) (set 3)", GAME_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?, m5sondr ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Son Of Dracula (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5sondr05 ,m5sondr, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Son Of Dracula (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5sondra ,m5sondr, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Son Of Dracula (Barcrest) (MPU5) (15GBP Jackpot)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5sondr ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Son Of Dracula (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5sondr05 ,m5sondr, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Son Of Dracula (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5sondra ,m5sondr, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Son Of Dracula (Barcrest) (MPU5) (15GBP Jackpot)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5spicer ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","The Spice Is Right (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5spicer06 ,m5spicer, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","The Spice Is Right (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+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?, m5spiker ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Spiker The Biker (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5spiker02 ,m5spiker, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Spiker The Biker (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5spikera ,m5spiker, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Spiker The Biker (Barcrest) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5spiker ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Spiker The Biker (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5spiker02 ,m5spiker, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Spiker The Biker (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5spikera ,m5spiker, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Spiker The Biker (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5spins ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Spinsation (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5spins ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Spinsation (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5squids ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Squids In (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5squids04a ,m5squids, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Squids In (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5squids05 ,m5squids, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Squids In (Barcrest) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5squids06 ,m5squids, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Squids In (Barcrest) (MPU5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5squids ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Squids In (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5squids04a ,m5squids, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Squids In (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5squids05 ,m5squids, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Squids In (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5squids06 ,m5squids, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Squids In (Barcrest) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5stax ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Stax Of Cash (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5stax ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Stax Of Cash (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5scharg ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Super Charged (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5scharg05 ,m5scharg, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Super Charged (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5scharg06 ,m5scharg, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Super Charged (Barcrest) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5scharga ,m5scharg, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Super Charged (Barcrest) (MPU5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5scharg ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Super Charged (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5scharg05 ,m5scharg, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Super Charged (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5scharg06 ,m5scharg, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Super Charged (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5scharga ,m5scharg, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Super Charged (Barcrest) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5supstr ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Super Star (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5supstra ,m5supstr, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Super Star (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+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?, m5sstrk ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Super Streak (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5sstrk02a ,m5sstrk, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Super Streak (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5sstrk ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Super Streak (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5sstrk02a ,m5sstrk, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Super Streak (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5supnov ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Supernova (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5supnova ,m5supnov, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Supernova (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5supnov ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Supernova (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5supnova ,m5supnov, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Supernova (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5tempt ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Temple Of Treasure (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5tempt05 ,m5tempt, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Temple Of Treasure (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5tempta ,m5tempt, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Temple Of Treasure (Barcrest) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5temptb ,m5tempt, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Temple Of Treasure (Barcrest) (MPU5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+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?, m5tempt2 ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Temple Of Treasure 2 (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5tempt203 ,m5tempt2, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Temple Of Treasure 2 (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5tempt2a ,m5tempt2, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Temple Of Treasure 2 (Barcrest) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5tempt2 ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Temple Of Treasure 2 (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5tempt203 ,m5tempt2, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Temple Of Treasure 2 (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5tempt2a ,m5tempt2, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Temple Of Treasure 2 (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5tempcl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Temple Of Treasure Club (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5tempcl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Temple Of Treasure Club (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5tbird ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Thunderbird (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5tbird ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Thunderbird (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5topdog ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Top Dog (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5topdog04 ,m5topdog, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Top Dog (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5topdoga ,m5topdog, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Top Dog (Barcrest) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
+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?, m5trail ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Trailblazer Club (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5trail ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Trailblazer Club (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5ultimo ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Ultimo (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5ultimo03a ,m5ultimo, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Ultimo (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5ultimo04 ,m5ultimo, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Ultimo (Barcrest) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5ultimo ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Ultimo (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5ultimo03a ,m5ultimo, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Ultimo (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5ultimo04 ,m5ultimo, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Ultimo (Barcrest) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5upover ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Up & Over (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5upover15 ,m5upover, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Up & Over (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5upover ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Up & Over (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5upover15 ,m5upover, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Up & Over (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5vampup ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Vamp It Up (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5vampup ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Vamp It Up (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5wking ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Wild King (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5wking05 ,m5wking, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Wild King (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5wking ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Wild King (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5wking05 ,m5wking, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Wild King (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5costa ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Costa Del Cash (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5costa ,0, mpu5, mpu5, driver_device, 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)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5ttwo ,0, mpu5, mpu5, driver_device, 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)", GAME_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?, m5hotrk ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Hot Rocks (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5hotrk ,0, mpu5, mpu5, driver_device, 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)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5ashocka ,m5ashock, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Aftershock (Barcrest - Red Gaming) (MPU5, v1.3)", GAME_IS_SKELETON_MECHANICAL )
+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?, m5bigsht ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Big Shot (Barcrest - Red Gaming) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5bigsht04 ,m5bigsht, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Big Shot (Barcrest - Red Gaming) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5bigsht11 ,m5bigsht, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Big Shot (Barcrest - Red Gaming) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5bigsht13 ,m5bigsht, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Big Shot (Barcrest - Red Gaming) (MPU5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5bigshta ,m5bigsht, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Big Shot (Barcrest - Red Gaming) (MPU5) (set 5)", GAME_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?, m5bnkrs ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Bonkers (Barcrest - Red Gaming) (MPU5)", GAME_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?, m5bbank ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Break The Bank (Barcrest - Red Gaming) (MPU5) (set 1)", GAME_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)", GAME_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?, m5casfev ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Casino Fever (Red Gaming) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5casfev12 ,m5casfev, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Casino Fever (Red Gaming) (MPU5) (set 2)", GAME_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?, m5dmnstr ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Demon Streak (Barcrest - Red Gaming) (MPU5, set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5dmnstra ,m5dmnstr, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Demon Streak (Barcrest - Red Gaming) (MPU5, set 2)", GAME_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?, m5dbubl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Double Bubble (Barcrest - Red Gaming) (MPU5)", GAME_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?, m5dragnd ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Dragon Drop (Barcrest - Red Gaming) (MPU5, set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5dragnda ,m5dragnd, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Dragon Drop (Barcrest - Red Gaming) (MPU5, set 2)", GAME_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?, m5fnfair ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Funfair (Barcrest - Red Gaming) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5fnfaird ,m5fnfair, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Funfair (Barcrest - Red Gaming) (MPU5) (Datapak)", GAME_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?, m5fusir ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Fruits U Sir (Barcrest - Red Gaming) (MPU5) (set 1)", GAME_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)", GAME_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)", GAME_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?, m5hypalx ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Hypalinx (Barcrest - Red Gaming) (MPU5)", GAME_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?, m5invad ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Invaders (Barcrest - Red Gaming) (MPU5)", GAME_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?, m5jcptgn ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Jackpot Genie (Barcrest - Red Gaming) (MPU5)", GAME_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?, m5jlstrk ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Jewel Strike (Barcrest - Red Gaming) (MPU5)", GAME_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?, m5lock ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Lock 'n' Load (Barcrest - Red Gaming) (MPU5) (set 1)", GAME_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)", GAME_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)", GAME_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?, m5lockcl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Lock 'n' Load Club (Barcrest - Red Gaming) (MPU5) (set 1)", GAME_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)", GAME_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)", GAME_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?, m5nitro ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Nitro (Barcrest - Red Gaming) (MPU5)", GAME_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?, m5paint ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Paint The Town Red (Barcrest - Red Gaming) (MPU5)", GAME_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?, m5quake ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Quake (Barcrest - Red Gaming) (MPU5)", GAME_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?, m5rainrn ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Rainbow Runner (Barcrest - Red Gaming) (MPU5, set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5rainrna ,m5rainrn, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Rainbow Runner (Barcrest - Red Gaming) (MPU5, set 2)", GAME_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?, m5rampg ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Rampage (Barcrest - Red Gaming) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5rampg11 ,m5rampg, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Rampage (Barcrest - Red Gaming) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5rampg12 ,m5rampg, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Rampage (Barcrest - Red Gaming) (MPU5) (set 3)", GAME_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?, m5rdwarf ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Red Dwarf (Barcrest - Red Gaming) (MPU5)", GAME_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?, m5redx ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Red X (Barcrest - Red Gaming) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5redx12 ,m5redx, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Red X (Barcrest - Red Gaming) (MPU5) (set 2)", GAME_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?, m5thtsmg ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","That's Magic (Barcrest - Red Gaming) (MPU5)", GAME_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?, m5topdol ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Top Dollar (Barcrest - Red Gaming) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5topdola ,m5topdol, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Top Dollar (Barcrest - Red Gaming) (MPU5) (set 2)", GAME_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?, m5zigzag ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Zig Zag (Barcrest - Red Gaming) (MPU5)", GAME_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?, m5cmass ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Critical Mass (Barcrest - Red Gaming) (MPU5)", GAME_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?, m5sblz ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Snail Blazer (Barcrest - Red Gaming) (MPU5)", GAME_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?, m5slide ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest / Red Gaming","Slider (Barcrest - Red Gaming) (MPU5)", GAME_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 )
/* Vivid */
-GAME( 199?, m5sixsht ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v1.1, set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5sixshta ,m5sixsht, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v1.1, set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5sixshtb ,m5sixsht, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v2.0, set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5sixshtc ,m5sixsht, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v2.0, set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5sixshtd ,m5sixsht, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v2.0, set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5sixshte ,m5sixsht, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v2.0, set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5sixshtf ,m5sixsht, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v2.0, set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5sixshtg ,m5sixsht, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v2.0, set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5sixshth ,m5sixsht, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v2.0, set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5sixshti ,m5sixsht, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v2.1, set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5sixshtj ,m5sixsht, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v2.1, set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5sixshtk ,m5sixsht, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v2.1, set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5sixshtl ,m5sixsht, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v2.1, set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5sixshtm ,m5sixsht, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v2.1, set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5sixshtn ,m5sixsht, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Six Shooter (Vivid) (MPU5) (v2.1, set 6)", GAME_IS_SKELETON_MECHANICAL )
+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?, m5all41 ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5all41a ,m5all41, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5all41b ,m5all41, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5all41c ,m5all41, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5all41d ,m5all41, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5all41e ,m5all41, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5all41f ,m5all41, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5all41g ,m5all41, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5all41h ,m5all41, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5all41i ,m5all41, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 10)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5all41j ,m5all41, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 11)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5all41k ,m5all41, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 12)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5all41l ,m5all41, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 13)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5all41m ,m5all41, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 14)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5all41 ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5all41a ,m5all41, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5all41b ,m5all41, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5all41c ,m5all41, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5all41d ,m5all41, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5all41e ,m5all41, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5all41f ,m5all41, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5all41g ,m5all41, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5all41h ,m5all41, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5all41i ,m5all41, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 10)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5all41j ,m5all41, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 11)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5all41k ,m5all41, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 12)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5all41l ,m5all41, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 13)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5all41m ,m5all41, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","All 4 One (Vivid) (MPU5, set 14)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5atlan ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Atlantic (Vivid) (MPU5, v1.4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5atlana ,m5atlan, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Atlantic (Vivid) (MPU5, v1.2)", GAME_IS_SKELETON_MECHANICAL )
+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?, m5bttf ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Back To The Features (Vivid) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5bttfa ,m5bttf, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Back To The Features (Vivid) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5bttf ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Back To The Features (Vivid) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5bttfa ,m5bttf, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Back To The Features (Vivid) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5btlbnk ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Bottle Bank (Vivid) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5btlbnk ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Bottle Bank (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5caesc ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Caesar's Cash (Vivid) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5caesc ,0, mpu5, mpu5, driver_device, 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)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5card ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Card Shark (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5cshkcb ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Card Shark Club (Vivid) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5cshkcb12 ,m5cshkcb, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Card Shark Club (Vivid) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5cshkcb13 ,m5cshkcb, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Card Shark Club (Vivid) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5cshkcb ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Card Shark Club (Vivid) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5cshkcb12 ,m5cshkcb, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Card Shark Club (Vivid) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5cshkcb13 ,m5cshkcb, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Card Shark Club (Vivid) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5clifhn ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Cliffhanger (Vivid) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5clifhn ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Cliffhanger (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5cnct4 ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Connect 4 (Vivid) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5cnct415 ,m5cnct4, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Connect 4 (Vivid) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5cnct420 ,m5cnct4, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Connect 4 (Vivid) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
+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?, m5devil ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Devil Of A Deal (Vivid) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5devil ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Devil Of A Deal (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5elband ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","El Bandido Club (Vivid) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5elband ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","El Bandido Club (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5fair ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Fairground Attraction (Vivid) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5fair ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Fairground Attraction (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5ggems ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Giant Gems (Vivid) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5ggems20 ,m5ggems, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Giant Gems (Vivid) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5ggems ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Giant Gems (Vivid) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5ggems20 ,m5ggems, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Giant Gems (Vivid) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5groll ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Golden Roll (Vivid) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5groll ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Golden Roll (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5hilok ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Hi Lo Karate (Vivid) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5hilok ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Hi Lo Karate (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5hiclau ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","High Claudius (Vivid) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5hiclau ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","High Claudius (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5honmon ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Honey Money (Vivid) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5honmona ,m5honmon, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Honey Money (Vivid) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+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?, m5hopidl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Hop Idol (Vivid) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5hopidl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Hop Idol (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5hypno ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Hypnotic (Vivid) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5hypno ,0, mpu5, mpu5, driver_device, 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)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5jmpjok11 ,m5jmpjok, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Jumpin Jokers (Vivid) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5jmpjoka ,m5jmpjok, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Jumpin Jokers (Vivid) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5jmpjokb ,m5jmpjok, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Jumpin Jokers (Vivid) (MPU5) (set 4)", GAME_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?, m5loony ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Loony Juice (Vivid) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5loony ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Loony Juice (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5loot ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Loot 'n' Khamun (Vivid) (MPU5, set 1)", GAME_IS_SKELETON_MECHANICAL ) // aka 3-in-1 ?
-GAME( 199?, m5loota ,m5loot, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Loot 'n' Khamun (Vivid) (MPU5, set 2)", GAME_IS_SKELETON_MECHANICAL ) // aka 3-in-1 ?
+GAME( 199?, m5loot ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Loot 'n' Khamun (Vivid) (MPU5, set 1)", MACHINE_IS_SKELETON_MECHANICAL ) // aka 3-in-1 ?
+GAME( 199?, m5loota ,m5loot, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Loot 'n' Khamun (Vivid) (MPU5, set 2)", MACHINE_IS_SKELETON_MECHANICAL ) // aka 3-in-1 ?
-GAME( 199?, m5mag7s ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Magnificent 7s (Vivid) (MPU5, set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5mag7sa ,m5mag7s, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Magnificent 7s (Vivid) (MPU5, set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5mag7sb ,m5mag7s, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Magnificent 7s (Vivid) (MPU5, set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5mag7sc ,m5mag7s, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Magnificent 7s (Vivid) (MPU5, set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5mag7sd ,m5mag7s, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Magnificent 7s (Vivid) (MPU5, set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5mag7se ,m5mag7s, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Magnificent 7s (Vivid) (MPU5, set 6)", GAME_IS_SKELETON_MECHANICAL )
+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?, m5msf ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Manic Streak Features (Vivid) (MPU5, set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5msfa ,m5msf, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Manic Streak Features (Vivid) (MPU5, set 2)", GAME_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?, m5piefac ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Pie Factory (Vivid) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5piefac23 ,m5piefac, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Pie Factory (Vivid) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5piefac12 ,m5piefac, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Pie Factory (Vivid) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5piefaca ,m5piefac, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Pie Factory (Vivid) (MPU5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5piefac ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Pie Factory (Vivid) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5piefac23 ,m5piefac, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Pie Factory (Vivid) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5piefac12 ,m5piefac, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Pie Factory (Vivid) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5piefaca ,m5piefac, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Pie Factory (Vivid) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5piefc2 ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Pie Factory 2 (Vivid) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5piefc2a ,m5piefc2, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Pie Factory 2 (Vivid) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5piefc2b ,m5piefc2, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Pie Factory 2 (Vivid) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
+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?, m5piefcr ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Pie Factory Rio (Vivid) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5piefcr ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Pie Factory Rio (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5qdraw ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Quick On The Draw (Vivid) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5qdraw12 ,m5qdraw, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Quick On The Draw (Vivid) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5qdraw14 ,m5qdraw, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Quick On The Draw (Vivid) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5qdraw15 ,m5qdraw, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Quick On The Draw (Vivid) (MPU5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5qdrawa ,m5qdraw, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Quick On The Draw (Vivid) (MPU5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5qdrawb ,m5qdraw, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Quick On The Draw (Vivid) (MPU5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5qdraw ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Quick On The Draw (Vivid) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5qdraw12 ,m5qdraw, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Quick On The Draw (Vivid) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5qdraw14 ,m5qdraw, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Quick On The Draw (Vivid) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5qdraw15 ,m5qdraw, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Quick On The Draw (Vivid) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5qdrawa ,m5qdraw, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Quick On The Draw (Vivid) (MPU5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5qdrawb ,m5qdraw, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Quick On The Draw (Vivid) (MPU5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5redbal ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Random Red Ball (Vivid) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5redbal ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Random Red Ball (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5ratpk ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Rat Pack (Vivid) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5ratpka ,m5ratpk, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Rat Pack (Vivid) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5ratpk ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Rat Pack (Vivid) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5ratpka ,m5ratpk, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Rat Pack (Vivid) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5rawin ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid / Whitbread","Reel A Win (Vivid / Whitbread) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5rawin ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid / Whitbread","Reel A Win (Vivid / Whitbread) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5rollup ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Roll Up Roll Up (Vivid) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5rollup ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Roll Up Roll Up (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5shark ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Shark Raving Mad (Vivid) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5sharka ,m5shark, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Shark Raving Mad (Vivid) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5shark ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Shark Raving Mad (Vivid) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5sharka ,m5shark, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Shark Raving Mad (Vivid) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5speccl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Spectrum Club (Vivid) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5speccl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Spectrum Club (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5spddmn ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Speed Demon (Vivid) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5spddmn ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Speed Demon (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5stars ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Stars & Stripes (Vivid) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5stars13a ,m5stars, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Stars & Stripes (Vivid) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5stars26 ,m5stars, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Stars & Stripes (Vivid) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5stars25a ,m5stars, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Stars & Stripes (Vivid) (MPU5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5stars25 ,m5stars, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Stars & Stripes (Vivid) (MPU5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5stars22 ,m5stars, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Stars & Stripes (Vivid) (MPU5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5stars20 ,m5stars, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Stars & Stripes (Vivid) (MPU5) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5stars10 ,m5stars, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Stars & Stripes (Vivid) (MPU5) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5stars10a ,m5stars, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Stars & Stripes (Vivid) (MPU5) (set 9)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5stars ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Stars & Stripes (Vivid) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5stars13a ,m5stars, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Stars & Stripes (Vivid) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5stars26 ,m5stars, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Stars & Stripes (Vivid) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5stars25a ,m5stars, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Stars & Stripes (Vivid) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5stars25 ,m5stars, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Stars & Stripes (Vivid) (MPU5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5stars22 ,m5stars, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Stars & Stripes (Vivid) (MPU5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5stars20 ,m5stars, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Stars & Stripes (Vivid) (MPU5) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5stars10 ,m5stars, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Stars & Stripes (Vivid) (MPU5) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5stars10a ,m5stars, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Stars & Stripes (Vivid) (MPU5) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5starcl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Stars & Stripes Club (Vivid) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5starcl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Stars & Stripes Club (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5startr ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Stars & Stripes Triple (Vivid) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5startr ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Stars & Stripes Triple (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5supro ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Super Roulette (Vivid) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5suproa ,m5supro, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Super Roulette (Vivid) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5supro ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Super Roulette (Vivid) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5suproa ,m5supro, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Super Roulette (Vivid) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5tempp ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Temple Of Pleasure (Vivid) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5tempp ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Temple Of Pleasure (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5whdres ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Who Dares Spins (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5whdres ,0, mpu5, mpu5, driver_device, 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)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5winway ,0, mpu5, mpu5, driver_device, 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)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5fewmora ,m5fewmor, mpu5, mpu5, driver_device, 0, ROT0, "Empire","A Few Dollars More (Empire) (MPU5) (v0.2, set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5fewmorb ,m5fewmor, mpu5, mpu5, driver_device, 0, ROT0, "Empire","A Few Dollars More (Empire) (MPU5) (v0.3, set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5fewmorc ,m5fewmor, mpu5, mpu5, driver_device, 0, ROT0, "Empire","A Few Dollars More (Empire) (MPU5) (v0.3, set 2)", GAME_IS_SKELETON_MECHANICAL )
+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?, m5wonga ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","A Fish Called Wonga (Empire) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5wonga ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","A Fish Called Wonga (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5aceclb ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Ace Of Clubs (Empire) (MPU5, set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5aceclba ,m5aceclb, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Ace Of Clubs (Empire) (MPU5, set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5aceclbb ,m5aceclb, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Ace Of Clubs (Empire) (MPU5, set 3)", GAME_IS_SKELETON_MECHANICAL )
+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?, m5barxdx ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Bar X Deluxe (Empire) (MPU5)", GAME_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?, m5bnzclb ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Bonanza Club (Empire) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5bnzclb11 ,m5bnzclb, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Bonanza Club (Empire) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5bnzclb ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Bonanza Club (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5bnzclb11 ,m5bnzclb, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Bonanza Club (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5bukroo ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Buckaroo (Empire) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5bukroo ,0, mpu5, mpu5, driver_device, 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)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5cbrun ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Cannonball Run (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5carou ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Carousel (Empire) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5carou ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Carousel (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5casroc ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Casino Royale Club (Empire) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5casroc ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Casino Royale Club (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5centcl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Centurion Club (Empire) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5centcl20 ,m5centcl, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Centurion Club (Empire) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5centcl21 ,m5centcl, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Centurion Club (Empire) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5centcl21a ,m5centcl, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Centurion Club (Empire) (MPU5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5centcla ,m5centcl, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Centurion Club (Empire) (MPU5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5centcl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Centurion Club (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5centcl20 ,m5centcl, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Centurion Club (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5centcl21 ,m5centcl, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Centurion Club (Empire) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5centcl21a ,m5centcl, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Centurion Club (Empire) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5centcla ,m5centcl, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Centurion Club (Empire) (MPU5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5cworan ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Clockwork Oranges (Empire) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5cworan12 ,m5cworan, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Clockwork Oranges (Empire) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+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?, m5clbtro ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Club Tropicana (Empire) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5clbtro24 ,m5clbtro, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Club Tropicana (Empire) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5clbtro25 ,m5clbtro, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Club Tropicana (Empire) (MPU5) (set 3)", GAME_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?, m5cockdd ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Cock A Doodle Dough! (Empire) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5cockdd05 ,m5cockdd, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Cock A Doodle Dough! (Empire) (MPU5) (set 2)", GAME_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?, m5coloss ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Colossus Club (Empire) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5coloss ,0, mpu5, mpu5, driver_device, 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)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5crocrk10 ,m5crocrk, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Crocodile Rock (Empire) (MPU5) (set 2)", GAME_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?, m5croclb ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Crocodile Rock Club (Empire) (MPU5)", GAME_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?, m5crsfir ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Crossfire (Empire) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5crsfir ,0, mpu5, mpu5, driver_device, 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)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5dmnf10 ,m5dmnf, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Diamonds Are Forever (Empire) (MPU5) (set 2)", GAME_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?, m5dmnfcl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Diamonds Are Forever Club (Empire) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5dmnfcl04 ,m5dmnfcl, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Diamonds Are Forever Club (Empire) (MPU5) (set 2)", GAME_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?, m5extrm ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Extreme (Empire) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5extrm ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Extreme (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5extrmm ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Extreme Madness (Empire) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5extrmm04a ,m5extrmm, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Extreme Madness (Empire) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5extrmm04b ,m5extrmm, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Extreme Madness (Empire) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5extrmm10 ,m5extrmm, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Extreme Madness (Empire) (MPU5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+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?, m5fatcat ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Fat Cat (Empire) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5fatcat ,0, mpu5, mpu5, driver_device, 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)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5fishdl10 ,m5fishdl, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Fish Full Of Dollars (Empire) (MPU5) (set 2)", GAME_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?, m5fishcl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Fish Full Of Dollars Club (Empire) (MPU5)", GAME_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?, m5fmonty ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","The Full Monty (Empire) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5fmonty04a ,m5fmonty, mpu5, mpu5, driver_device, 0, ROT0, "Empire","The Full Monty (Empire) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5fmonty04b ,m5fmonty, mpu5, mpu5, driver_device, 0, ROT0, "Empire","The Full Monty (Empire) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5fmonty04c ,m5fmonty, mpu5, mpu5, driver_device, 0, ROT0, "Empire","The Full Monty (Empire) (MPU5) (set 4)", GAME_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?, m5fmount ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Full Mountie (Empire) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5fmount ,0, mpu5, mpu5, driver_device, 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)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5gophr ,0, mpu5, mpu5, driver_device, 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)", GAME_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?, m5hisprt ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","High Spirits (Empire) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5hisprt ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","High Spirits (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5hocus ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Hocus Pocus (Empire) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5hocus10 ,m5hocus, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Hocus Pocus (Empire) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+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?, m5hocscl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Hocus Pocus Club (Empire) (MPU5)", GAME_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?, m5hotsht ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Hot Shots (Empire) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5hotsht07a ,m5hotsht, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Hot Shots (Empire) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5hotsht08 ,m5hotsht, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Hot Shots (Empire) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5hotsht08a ,m5hotsht, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Hot Shots (Empire) (MPU5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5hotsht10 ,m5hotsht, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Hot Shots (Empire) (MPU5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5hotsht10a ,m5hotsht, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Hot Shots (Empire) (MPU5) (set 6)", GAME_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?, m5hula ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Hula Moolah (Empire) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5hula10 ,m5hula, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Hula Moolah (Empire) (MPU5) (set 2)", GAME_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?, m5hulacl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Hula Moolah Club (Empire) (MPU5)", GAME_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?, m5jackbx ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Jack In The Box (Empire) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5jackbx03 ,m5jackbx, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Jack In The Box (Empire) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5jackbx ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Jack In The Box (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5jackbx03 ,m5jackbx, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Jack In The Box (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5jcy ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Juicy Fruits (Empire) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5jcy ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Juicy Fruits (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5jmpgem ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Jumping Gems (Empire) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5jmpgem01 ,m5jmpgem, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Jumping Gems (Empire) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5jmpgem03 ,m5jmpgem, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Jumping Gems (Empire) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5jmpgem ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Jumping Gems (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5jmpgem01 ,m5jmpgem, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Jumping Gems (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5jmpgem03 ,m5jmpgem, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Jumping Gems (Empire) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5jmpgmc ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Jumping Gems Club (Empire) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5jmpgmc ,0, mpu5, mpu5, driver_device, 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)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5kaleid ,0, mpu5, mpu5, driver_device, 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)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5kcclb24 ,m5kcclb, mpu5, mpu5, driver_device, 0, ROT0, "Empire","King Cobra Club (Empire) (MPU5) (set 2)", GAME_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?, m5kingqc ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Kings & Queens Club (Empire) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5kingqc06 ,m5kingqc, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Kings & Queens Club (Empire) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5kingqc07 ,m5kingqc, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Kings & Queens Club (Empire) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5kingqc08 ,m5kingqc, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Kings & Queens Club (Empire) (MPU5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5kingqc ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Kings & Queens Club (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5kingqc06 ,m5kingqc, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Kings & Queens Club (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5kingqc07 ,m5kingqc, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Kings & Queens Club (Empire) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5kingqc08 ,m5kingqc, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Kings & Queens Club (Empire) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5korma ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Korma Chameleon (Empire) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5korma12 ,m5korma, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Korma Chameleon (Empire) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5korma ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Korma Chameleon (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5korma12 ,m5korma, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Korma Chameleon (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5kormcl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Korma Chameleon Club (Empire) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5kormcl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Korma Chameleon Club (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5monmst ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Money Monster (Empire) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5monmsta ,m5monmst, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Money Monster (Empire) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5monmst ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Money Monster (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5monmsta ,m5monmst, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Money Monster (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5ramrd ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Ram Raid (Empire) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5ramrd ,0, mpu5, mpu5, driver_device, 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)", GAME_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?, m5ronr ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Reel Or No Reel (Empire) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5ronr05 ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Reel Or No Reel (Empire) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5ronr07 ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Reel Or No Reel (Empire) (MPU5) (set 3)", GAME_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?, m5resfrg ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Reservoir Frogs (Empire) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5resfrg ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Reservoir Frogs (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5rthh ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Return To The Haunted House (Empire) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5rthh ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Return To The Haunted House (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5rollx ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Roll X (Empire) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5rollx12 ,m5rollx, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Roll X (Empire) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5rollx ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Roll X (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5rollx12 ,m5rollx, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Roll X (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5skulcl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Skullduggery Club (Empire) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5skulcl20 ,m5skulcl, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Skullduggery Club (Empire) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5skulcl23 ,m5skulcl, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Skullduggery Club (Empire) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5skulcl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Skullduggery Club (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5skulcl20 ,m5skulcl, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Skullduggery Club (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5skulcl23 ,m5skulcl, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Skullduggery Club (Empire) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5tball ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Thunderball (Empire) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5tball ,0, mpu5, mpu5, driver_device, 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)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5tomb ,0, mpu5, mpu5, driver_device, 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)", GAME_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?, m5ttop ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Treble Top (Empire) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5ttop04 ,m5ttop, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Treble Top (Empire) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5ttop10 ,m5ttop, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Treble Top (Empire) (MPU5) (set 3)", GAME_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?, m5ttopcl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Treble Top Club (Empire) (MPU5)", GAME_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?, m5tsar ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Tsar Wars (Empire) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5tsar ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Tsar Wars (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5vertgo ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Vertigo (Empire) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5vertgo ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Vertigo (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5vertcl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Vertigo Club (Empire) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5vertcl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Vertigo Club (Empire) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5wthing ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Wild Thing Club (Empire) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5wthing11 ,m5wthing, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Wild Thing Club (Empire) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5wthing20 ,m5wthing, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Wild Thing Club (Empire) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5wthing ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Wild Thing Club (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5wthing11 ,m5wthing, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Wild Thing Club (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5wthing20 ,m5wthing, mpu5, mpu5, driver_device, 0, ROT0, "Empire","Wild Thing Club (Empire) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5xfact ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","X Factor (Empire) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5xfact02 ,m5xfact, mpu5, mpu5, driver_device, 0, ROT0, "Empire","X Factor (Empire) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5xfact04 ,m5xfact, mpu5, mpu5, driver_device, 0, ROT0, "Empire","X Factor (Empire) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5xfact11 ,m5xfact, mpu5, mpu5, driver_device, 0, ROT0, "Empire","X Factor (Empire) (MPU5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5xfact ,0, mpu5, mpu5, driver_device, 0, ROT0, "Empire","X Factor (Empire) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5xfact02 ,m5xfact, mpu5, mpu5, driver_device, 0, ROT0, "Empire","X Factor (Empire) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5xfact04 ,m5xfact, mpu5, mpu5, driver_device, 0, ROT0, "Empire","X Factor (Empire) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5xfact11 ,m5xfact, mpu5, mpu5, driver_device, 0, ROT0, "Empire","X Factor (Empire) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
/* Bwb */
-GAME( 199?, m5carwsh ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Car Wash (Bwb) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5carwsh10 ,m5carwsh, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Car Wash (Bwb) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+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?, m5cshstx ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Cash Stax (Bwb) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5cshstx ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Cash Stax (Bwb) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5circus ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Circus (Bwb) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5circus0a ,m5circus, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Circus (Bwb) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5circus0b ,m5circus, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Circus (Bwb) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5circus20 ,m5circus, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Circus (Bwb) (MPU5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5circus21 ,m5circus, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Circus (Bwb) (MPU5) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5circus11 ,m5circus, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Circus (Bwb) (MPU5) (set 6)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5circus ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Circus (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5circus0a ,m5circus, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Circus (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5circus0b ,m5circus, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Circus (Bwb) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5circus20 ,m5circus, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Circus (Bwb) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5circus21 ,m5circus, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Circus (Bwb) (MPU5) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5circus11 ,m5circus, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Circus (Bwb) (MPU5) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5circlb ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Circus Club (Bwb) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5circlb00 ,m5circlb, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Circus Club (Bwb) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5circlb15 ,m5circlb, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Circus Club (Bwb) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5circlb33 ,m5circlb, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Circus Club (Bwb) (MPU5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5circlb ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Circus Club (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5circlb00 ,m5circlb, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Circus Club (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5circlb15 ,m5circlb, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Circus Club (Bwb) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5circlb33 ,m5circlb, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Circus Club (Bwb) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5clown ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Clown In Around (Bwb) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5clown11 ,m5clown, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Clown In Around (Bwb) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5clown13 ,m5clown, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Clown In Around (Bwb) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5clown ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Clown In Around (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5clown11 ,m5clown, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Clown In Around (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5clown13 ,m5clown, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Clown In Around (Bwb) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5clubsn ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Club Sandwich (Bwb) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5clubsn11 ,m5clubsn, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Club Sandwich (Bwb) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5clubsn14 ,m5clubsn, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Club Sandwich (Bwb) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5clubsn16 ,m5clubsn, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Club Sandwich (Bwb) (MPU5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+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?, m5dick ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Dick Turnip (Bwb) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5dick10 ,m5dick, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Dick Turnip (Bwb) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5dick ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Dick Turnip (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5dick10 ,m5dick, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Dick Turnip (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5donna ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Donna Kebab (Bwb) (MPU5, set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5donnad ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Donna Kebab (Bwb) (MPU5, set 1, Datapak)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5donnaa ,m5donna, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Donna Kebab (Bwb) (MPU5, set 3)", GAME_IS_SKELETON_MECHANICAL )
+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?, m5dblqts ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Double Or Quits (Bwb) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5dblqtsa ,m5dblqts, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Double Or Quits (Bwb) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5dblqtsb ,m5dblqts, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Double Or Quits (Bwb) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5dblqts1b ,m5dblqts, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Double Or Quits (Bwb) (MPU5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5dblqts ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Double Or Quits (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5dblqtsa ,m5dblqts, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Double Or Quits (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5dblqtsb ,m5dblqts, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Double Or Quits (Bwb) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5dblqts1b ,m5dblqts, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Double Or Quits (Bwb) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5eggold ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Egyptian Gold (Bwb) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5eggold ,0, mpu5, mpu5, driver_device, 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)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m55050 ,0, mpu5, mpu5, driver_device, 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)", GAME_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?, m5goape ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Going Ape (Bwb) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5goape ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Going Ape (Bwb) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5hgl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Happy Go Lucky (Bwb) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5hgl16 ,m5hgl, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Happy Go Lucky (Bwb) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5hgl14 ,m5hgl, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Happy Go Lucky (Bwb) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5hgl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Happy Go Lucky (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5hgl16 ,m5hgl, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Happy Go Lucky (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5hgl14 ,m5hgl, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Happy Go Lucky (Bwb) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5jokpak ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Joker In The Pack (Bwb) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5jokpak ,0, mpu5, mpu5, driver_device, 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)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5lvwirea ,m5lvwire, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Live Wire (Bwb) (MPU5) (set 2)", GAME_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?, m5carpet ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Magic Carpet (Bwb) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5carpet12 ,m5carpet, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Magic Carpet (Bwb) (MPU5) (set 2)", GAME_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?, m5minesw ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Minesweeper (Bwb) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5minesw ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Minesweeper (Bwb) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5psycho ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Psycho Cash Beast (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5psycho06 ,m5psycho, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Psycho Cash Beast (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5psychoa ,m5psycho, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Psycho Cash Beast (Bwb) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5psychoa21 ,m5psycho, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Psycho Cash Beast (Bwb) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5psycho ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Psycho Cash Beast (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5psycho06 ,m5psycho, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Psycho Cash Beast (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5psychoa ,m5psycho, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Psycho Cash Beast (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5psychoa21 ,m5psycho, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Psycho Cash Beast (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5psyccl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Psycho Cash Beast Club (Barcrest) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5psyccl01 ,m5psyccl, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Psycho Cash Beast Club (Barcrest) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5psyccla ,m5psyccl, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Psycho Cash Beast Club (Bwb) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5psyccla24 ,m5psyccl, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Psycho Cash Beast Club (Bwb) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5psyccla02 ,m5psyccl, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Psycho Cash Beast Club (Bwb) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5psyccl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Psycho Cash Beast Club (Barcrest) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5psyccl01 ,m5psyccl, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Psycho Cash Beast Club (Barcrest) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5psyccla ,m5psyccl, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Psycho Cash Beast Club (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5psyccla24 ,m5psyccl, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Psycho Cash Beast Club (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5psyccla02 ,m5psyccl, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Psycho Cash Beast Club (Bwb) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5rwb ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Red White & Blue (Barcrest) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5rwbbwb ,m5rwb, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Red White & Blue (Bwb) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5rwbbwb24 ,m5rwb, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Red White & Blue (Bwb) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5rwbbwb25 ,m5rwb, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Red White & Blue (Bwb) (MPU5) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5rwbbwb15 ,m5rwb, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Red White & Blue (Bwb) (MPU5) (set 4)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5rwb ,0, mpu5, mpu5, driver_device, 0, ROT0, "Barcrest","Red White & Blue (Barcrest) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5rwbbwb ,m5rwb, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Red White & Blue (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5rwbbwb24 ,m5rwb, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Red White & Blue (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5rwbbwb25 ,m5rwb, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Red White & Blue (Bwb) (MPU5) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5rwbbwb15 ,m5rwb, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Red White & Blue (Bwb) (MPU5) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5reelwn ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Reel A Win (Bwb) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5reelwn24 ,m5reelwn, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Reel A Win (Bwb) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+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?, m5reelth ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Reel Thunder (Bwb) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5reelth ,0, mpu5, mpu5, driver_device, 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)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5rlup ,0, mpu5, mpu5, driver_device, 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)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5round ,0, mpu5, mpu5, driver_device, 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)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5sec7a ,m5sec7, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Secret 7s (Bwb) (MPU5) (set 2)", GAME_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?, m5sil7 ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Silver 7s (Bwb) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5sil7a ,m5sil7, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Silver 7s (Bwb) (MPU5) (set 2)", GAME_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?, m5smobik ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Smokey Bikin (Bwb) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5smobik12 ,m5smobik, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Smokey Bikin (Bwb) (MPU5) (set 2)", GAME_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?, m5tictac ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Tic Tac Tut (Vivid) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5tictacbwb ,m5tictac, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Tic Tac Tut (Bwb) (MPU5) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5tictacbwb16,m5tictac, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Tic Tac Tut (Bwb) (MPU5) (set 2)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5tictac ,0, mpu5, mpu5, driver_device, 0, ROT0, "Vivid","Tic Tac Tut (Vivid) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5tictacbwb ,m5tictac, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Tic Tac Tut (Bwb) (MPU5) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5tictacbwb16,m5tictac, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Tic Tac Tut (Bwb) (MPU5) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5xena ,0, mpu5, mpu5, driver_device, 0, ROT0, "Bwb","Xena Warrior Princess (Bwb) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5xena ,0, mpu5, mpu5, driver_device, 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)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5dblfun ,0, mpu5, mpu5, driver_device, 0, ROT0, "Lowen","Double Fun (Lowen) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5jakjok ,0, mpu5, mpu5, driver_device, 0, ROT0, "Lowen","Jackpot Jokers (Lowen) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5roundl ,m5round, mpu5, mpu5, driver_device, 0, ROT0, "Lowen","Round & Round (Lowen) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, m5scfinl ,0, mpu5, mpu5, driver_device, 0, ROT0, "Lowen","Super Cup Final (Lowen) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+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 )
/* Others / Uncertain */
-GAME( 199?, m5ppussy ,0, mpu5, mpu5, driver_device, 0, ROT0, "Mdm","Pink Pussy (Mdm) (MPU5)", GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, m5ppussy ,0, mpu5, mpu5, driver_device, 0, ROT0, "Mdm","Pink Pussy (Mdm) (MPU5)", MACHINE_IS_SKELETON_MECHANICAL )
diff --git a/src/mess/drivers/mpz80.c b/src/mame/drivers/mpz80.c
index dd14b4f44b5..b8a947a4903 100644
--- a/src/mess/drivers/mpz80.c
+++ b/src/mame/drivers/mpz80.c
@@ -804,4 +804,4 @@ DRIVER_INIT_MEMBER(mpz80_state,mpz80)
//**************************************************************************
// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS
-COMP( 1980, mpz80, 0, 0, mpz80, mpz80, mpz80_state, mpz80, "Morrow Designs", "MPZ80", GAME_NOT_WORKING | GAME_NO_SOUND_HW )
+COMP( 1980, mpz80, 0, 0, mpz80, mpz80, mpz80_state, mpz80, "Morrow Designs", "MPZ80", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW )
diff --git a/src/mame/drivers/mquake.c b/src/mame/drivers/mquake.c
index eafc9e810f1..77c38c9db88 100644
--- a/src/mame/drivers/mquake.c
+++ b/src/mame/drivers/mquake.c
@@ -412,4 +412,4 @@ DRIVER_INIT_MEMBER( mquake_state, mquake )
*
*************************************/
-GAME( 1987, mquake, 0, mquake, mquake, mquake_state, mquake, 0, "Sente", "Moonquake", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_IMPERFECT_GRAPHICS )
+GAME( 1987, mquake, 0, mquake, mquake, mquake_state, mquake, 0, "Sente", "Moonquake", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS )
diff --git a/src/mame/drivers/mrdo.c b/src/mame/drivers/mrdo.c
index 25fc7d05256..4ba5195aeda 100644
--- a/src/mame/drivers/mrdo.c
+++ b/src/mame/drivers/mrdo.c
@@ -386,10 +386,10 @@ ROM_END
-GAME( 1982, mrdo, 0, mrdo, mrdo, driver_device, 0, ROT270, "Universal", "Mr. Do!", GAME_SUPPORTS_SAVE )
-GAME( 1982, mrdoy, mrdo, mrdo, mrdo, driver_device, 0, ROT270, "Universal", "Mr. Do! (prototype)" , GAME_SUPPORTS_SAVE ) /* aka "Yukidaruma" */
-GAME( 1982, mrdot, mrdo, mrdo, mrdo, driver_device, 0, ROT270, "Universal (Taito license)", "Mr. Do! (Taito)", GAME_SUPPORTS_SAVE )
-GAME( 1982, mrdofix, mrdo, mrdo, mrdo, driver_device, 0, ROT270, "Universal (Taito license)", "Mr. Do! (bugfixed)", GAME_SUPPORTS_SAVE )
-GAME( 1982, mrlo, mrdo, mrdo, mrdo, driver_device, 0, ROT270, "bootleg", "Mr. Lo!", GAME_SUPPORTS_SAVE )
-GAME( 1982, mrdu, mrdo, mrdo, mrdo, driver_device, 0, ROT270, "bootleg", "Mr. Du!", GAME_SUPPORTS_SAVE )
-GAME( 1982, yankeedo, mrdo, mrdo, mrdo, driver_device, 0, ROT270, "hack", "Yankee DO!", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/mrflea.c b/src/mame/drivers/mrflea.c
index 6928ba33cc7..ac14b0ae87c 100644
--- a/src/mame/drivers/mrflea.c
+++ b/src/mame/drivers/mrflea.c
@@ -417,4 +417,4 @@ ROM_END
*
*************************************/
-GAME( 1982, mrflea, 0, mrflea, mrflea, driver_device, 0, ROT270, "Pacific Novelty", "The Amazing Adventures of Mr. F. Lea" , GAME_SUPPORTS_SAVE )
+GAME( 1982, mrflea, 0, mrflea, mrflea, driver_device, 0, ROT270, "Pacific Novelty", "The Amazing Adventures of Mr. F. Lea" , MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/mrgame.c b/src/mame/drivers/mrgame.c
index 1f9291ededd..d6d0b162c0f 100644
--- a/src/mame/drivers/mrgame.c
+++ b/src/mame/drivers/mrgame.c
@@ -657,8 +657,8 @@ ROM_START(wcup90)
ROM_END
-GAME(1988, dakar, 0, mrgame, mrgame, mrgame_state, mrgame, ROT0, "Mr Game", "Dakar", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
-GAME(1989, motrshow, 0, mrgame, mrgame, mrgame_state, mrgame, ROT0, "Mr Game", "Motor Show (set 1)", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
-GAME(1989, motrshowa, motrshow, mrgame, mrgame, mrgame_state, mrgame, ROT0, "Mr Game", "Motor Show (set 2)", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
-GAME(1990, macattck, 0, mrgame, mrgame, mrgame_state, mrgame, ROT0, "Mr Game", "Mac Attack", GAME_IS_SKELETON_MECHANICAL)
-GAME(1990, wcup90, 0, mrgame, mrgame, mrgame_state, mrgame, ROT0, "Mr Game", "World Cup 90", GAME_IS_SKELETON_MECHANICAL)
+GAME(1988, dakar, 0, mrgame, mrgame, mrgame_state, mrgame, ROT0, "Mr Game", "Dakar", MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND )
+GAME(1989, motrshow, 0, mrgame, mrgame, mrgame_state, mrgame, ROT0, "Mr Game", "Motor Show (set 1)", MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND )
+GAME(1989, motrshowa, motrshow, mrgame, mrgame, mrgame_state, mrgame, ROT0, "Mr Game", "Motor Show (set 2)", MACHINE_MECHANICAL | 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)
diff --git a/src/mame/drivers/mrjong.c b/src/mame/drivers/mrjong.c
index 68e1a849171..57f09a19316 100644
--- a/src/mame/drivers/mrjong.c
+++ b/src/mame/drivers/mrjong.c
@@ -273,6 +273,6 @@ ROM_END
*
*************************************/
-GAME( 1983, mrjong, 0, mrjong, mrjong, driver_device, 0, ROT90, "Kiwako", "Mr. Jong (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1983, crazyblk, mrjong, mrjong, mrjong, driver_device, 0, ROT90, "Kiwako (ECI license)", "Crazy Blocks", GAME_SUPPORTS_SAVE )
-GAME( 1983, blkbustr, mrjong, mrjong, mrjong, driver_device, 0, ROT90, "Kiwako (ECI license)", "BlockBuster", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/ms0515.c b/src/mame/drivers/ms0515.c
index 54086c019db..9f72a325764 100644
--- a/src/mess/drivers/ms0515.c
+++ b/src/mame/drivers/ms0515.c
@@ -255,4 +255,4 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( ????, ms0515, 0, 0, ms0515, ms0515, driver_device, 0, "Elektronika", "MS-0515", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( ????, ms0515, 0, 0, ms0515, ms0515, driver_device, 0, "Elektronika", "MS-0515", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/ms32.c b/src/mame/drivers/ms32.c
index c50ace35f42..33294d7c2af 100644
--- a/src/mame/drivers/ms32.c
+++ b/src/mame/drivers/ms32.c
@@ -2253,26 +2253,26 @@ DRIVER_INIT_MEMBER(ms32_state,bnstars)
-GAME( 1994, hayaosi2, 0, ms32, hayaosi2, ms32_state, ss92046_01, ROT0, "Jaleco", "Hayaoshi Quiz Grand Champion Taikai", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1994, hayaosi3, 0, ms32, hayaosi3, ms32_state, ss92046_01, ROT0, "Jaleco", "Hayaoshi Quiz Nettou Namahousou", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1994, bbbxing, 0, ms32, bbbxing, ms32_state, ss92046_01, ROT0, "Jaleco", "Best Bout Boxing", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1994, 47pie2, 0, ms32, 47pie2, ms32_state, 47pie2, ROT0, "Jaleco", "Idol Janshi Su-Chi-Pie 2 (v1.1)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1994, 47pie2o, 47pie2, ms32, 47pie2, ms32_state, 47pie2, ROT0, "Jaleco", "Idol Janshi Su-Chi-Pie 2 (v1.0)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1995, desertwr, 0, ms32, desertwr, ms32_state, ss91022_10, ROT270, "Jaleco", "Desert War / Wangan Sensou", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_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", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1995, tetrisp, 0, ms32, tetrisp, ms32_state, ss92046_01, ROT0, "Jaleco / BPS", "Tetris Plus", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1995, p47aces, 0, ms32, p47aces, ms32_state, ss92048_01, ROT0, "Jaleco", "P-47 Aces", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1995, akiss, 0, ms32, 47pie2, ms32_state, kirarast, ROT0, "Jaleco", "Mahjong Angel Kiss", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1996, gratia, 0, ms32, gratia, ms32_state, ss92047_01, ROT0, "Jaleco", "Gratia - Second Earth (92047-01 version)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1996, gratiaa, gratia, ms32, gratia, ms32_state, ss91022_10, ROT0, "Jaleco", "Gratia - Second Earth (91022-10 version)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1996, kirarast, 0, ms32, kirarast, ms32_state, kirarast, ROT0, "Jaleco", "Ryuusei Janshi Kirara Star", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1997, tp2m32, tetrisp2, ms32, tp2m32, ms32_state, ss91022_10, ROT0, "Jaleco", "Tetris Plus 2 (MegaSystem 32 Version)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1997, bnstars, bnstars1, ms32, 47pie2, ms32_state, bnstars, ROT0, "Jaleco", "Vs. Janshi Brandnew Stars (MegaSystem32 Version)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1996, wpksocv2, 0, ms32, wpksocv2, ms32_state, ss92046_01, ROT0, "Jaleco", "World PK Soccer V2 (ver 1.1)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+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 Su-Chi-Pie 2 (v1.1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1994, 47pie2o, 47pie2, ms32, 47pie2, ms32_state, 47pie2, ROT0, "Jaleco", "Idol Janshi Su-Chi-Pie 2 (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( 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( 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 )
/* these boot and show something */
-GAME( 1994, f1superb, 0, f1superb, f1superb, ms32_state, f1superb, ROT0, "Jaleco", "F1 Super Battle", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1994, f1superb, 0, f1superb, f1superb, ms32_state, f1superb, ROT0, "Jaleco", "F1 Super Battle", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
/* Notes from Charles MacDonald
diff --git a/src/mess/drivers/ms9540.c b/src/mame/drivers/ms9540.c
index 542de9941bb..16f48730c50 100644
--- a/src/mess/drivers/ms9540.c
+++ b/src/mame/drivers/ms9540.c
@@ -103,4 +103,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND_HW )
+COMP( 198?, ms9540, 0, 0, ms9540, ms9540, driver_device, 0, "Millennium Systems", "ms9540", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW )
diff --git a/src/mess/drivers/msbc1.c b/src/mame/drivers/msbc1.c
index 7a3a38f2400..08178eaec02 100644
--- a/src/mess/drivers/msbc1.c
+++ b/src/mame/drivers/msbc1.c
@@ -110,4 +110,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1985, msbc1, 0, 0, msbc1, msbc1, driver_device, 0, "Omnibyte", "MSBC-1", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/msisaac.c b/src/mame/drivers/msisaac.c
index f1796c36959..ef44297be33 100644
--- a/src/mame/drivers/msisaac.c
+++ b/src/mame/drivers/msisaac.c
@@ -552,4 +552,4 @@ ROM_START( msisaac )
ROM_END
-GAME( 1985, msisaac, 0, msisaac, msisaac, driver_device, 0, ROT270, "Taito Corporation", "Metal Soldier Isaac II", GAME_UNEMULATED_PROTECTION | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/mstation.c b/src/mame/drivers/mstation.c
index eddbb6ace27..d49478f0b56 100644
--- a/src/mess/drivers/mstation.c
+++ b/src/mame/drivers/mstation.c
@@ -557,4 +557,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND )
+COMP( 1999, mstation, 0, 0, mstation, mstation, driver_device, 0, "CIDCO", "MailStation", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mess/drivers/msx.c b/src/mame/drivers/msx.c
index 56c10c6c865..830cc102c1e 100644
--- a/src/mess/drivers/msx.c
+++ b/src/mame/drivers/msx.c
@@ -22,8 +22,8 @@
**
**
** Todo/known issues:
-** - piopx7/piopx7uk/piopxv60: Laserdisc integration doesn't exist
-** - piopx7: Is this a pal or an ntsc machine?
+** - piopx7/piopx7uk/piopxv60: Pioneer System Remote (home entertainment/Laserdisc control) not implemented
+** - piopx7: Dump is from a PAL (EU/AU) machine, we have no known good dumps from JP or US NTSC machines
** - spc800: Haven't been able to test operation of the han rom yet
** - svi728: Expansion slot not emulated
** - svi738: v9938 not emulated
@@ -1479,19 +1479,11 @@ static MACHINE_CONFIG_DERIVED( msx_tms9929, msx )
MACHINE_CONFIG_END
-#define MSX2_XBORDER_PIXELS 16
-#define MSX2_YBORDER_PIXELS 28
-#define MSX2_TOTAL_XRES_PIXELS 256 * 2 + (MSX2_XBORDER_PIXELS * 2)
-#define MSX2_TOTAL_YRES_PIXELS 212 * 2 + (MSX2_YBORDER_PIXELS * 2)
-#define MSX2_VISIBLE_XBORDER_PIXELS 8 * 2
-#define MSX2_VISIBLE_YBORDER_PIXELS 14 * 2
-
static MACHINE_CONFIG_START( msx2, msx_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", Z80, XTAL_21_4772MHz/6) /* 3.579545 MHz */
MCFG_CPU_PROGRAM_MAP(msx_memory_map)
MCFG_CPU_IO_MAP(msx2_io_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", msx_state, msx2_interrupt, "screen", 0, 2)
MCFG_QUANTUM_TIME(attotime::from_hz(60))
MCFG_DEVICE_ADD("ppi8255", I8255, 0)
@@ -1500,17 +1492,9 @@ static MACHINE_CONFIG_START( msx2, msx_state )
MCFG_I8255_OUT_PORTC_CB(WRITE8(msx_state, msx_ppi_port_c_w))
/* video hardware */
- MCFG_V9938_ADD("v9938", "screen", 0x20000)
+ MCFG_V9938_ADD("v9938", "screen", 0x20000, XTAL_21_4772MHz)
MCFG_V99X8_INTERRUPT_CALLBACK(WRITELINE(msx_state,msx_irq_source0))
-
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_UPDATE_DEVICE("v9938", v9938_device, screen_update)
- MCFG_SCREEN_SIZE(MSX2_TOTAL_XRES_PIXELS, 262*2)
- MCFG_SCREEN_VISIBLE_AREA(MSX2_XBORDER_PIXELS - MSX2_VISIBLE_XBORDER_PIXELS, MSX2_TOTAL_XRES_PIXELS - MSX2_XBORDER_PIXELS + MSX2_VISIBLE_XBORDER_PIXELS - 1, MSX2_YBORDER_PIXELS - MSX2_VISIBLE_YBORDER_PIXELS, MSX2_TOTAL_YRES_PIXELS - MSX2_YBORDER_PIXELS + MSX2_VISIBLE_YBORDER_PIXELS - 1)
- MCFG_SCREEN_PALETTE("v9938:palette")
+ MCFG_V99X8_SCREEN_ADD_NTSC("screen", "v9938", XTAL_21_4772MHz)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1556,7 +1540,6 @@ static MACHINE_CONFIG_START( msx2p, msx_state )
MCFG_CPU_ADD("maincpu", Z80, XTAL_21_4772MHz/6) /* 3.579545 MHz */
MCFG_CPU_PROGRAM_MAP(msx_memory_map)
MCFG_CPU_IO_MAP(msx2p_io_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", msx_state, msx2p_interrupt, "screen", 0, 2)
MCFG_QUANTUM_TIME(attotime::from_hz(60))
MCFG_DEVICE_ADD("ppi8255", I8255, 0)
@@ -1565,17 +1548,9 @@ static MACHINE_CONFIG_START( msx2p, msx_state )
MCFG_I8255_OUT_PORTC_CB(WRITE8(msx_state, msx_ppi_port_c_w))
/* video hardware */
- MCFG_V9958_ADD("v9958", "screen", 0x20000)
+ MCFG_V9958_ADD("v9958", "screen", 0x20000, XTAL_21_4772MHz)
MCFG_V99X8_INTERRUPT_CALLBACK(WRITELINE(msx_state,msx_irq_source0))
-
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_UPDATE_DEVICE("v9958", v9958_device, screen_update)
- MCFG_SCREEN_SIZE(MSX2_TOTAL_XRES_PIXELS, 262*2)
- MCFG_SCREEN_VISIBLE_AREA(MSX2_XBORDER_PIXELS - MSX2_VISIBLE_XBORDER_PIXELS, MSX2_TOTAL_XRES_PIXELS - MSX2_XBORDER_PIXELS + MSX2_VISIBLE_XBORDER_PIXELS - 1, MSX2_YBORDER_PIXELS - MSX2_VISIBLE_YBORDER_PIXELS, MSX2_TOTAL_YRES_PIXELS - MSX2_YBORDER_PIXELS + MSX2_VISIBLE_YBORDER_PIXELS - 1)
- MCFG_SCREEN_PALETTE("v9958:palette")
+ MCFG_V99X8_SCREEN_ADD_NTSC("screen", "v9958", XTAL_21_4772MHz)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1617,9 +1592,8 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( msx2_pal, msx2 )
- MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_SIZE(MSX2_TOTAL_XRES_PIXELS, 313*2)
- MCFG_SCREEN_REFRESH_RATE(50)
+ MCFG_DEVICE_REMOVE("screen")
+ MCFG_V99X8_SCREEN_ADD_PAL("screen", "v9938", XTAL_21_4772MHz)
MACHINE_CONFIG_END
@@ -2942,10 +2916,29 @@ ROM_START (piopx7)
ROM_END
static MACHINE_CONFIG_DERIVED( piopx7, msx_pal )
- // AY8910/YM2149?
+ // TMS9129NL VDP with sync/overlay interface
+ // AY-3-8910 PSG
+ // Pioneer System Remote (SR) system control interface
// FDC: None, 0 drives
// 2 Cartridge slots
- // TMS9928 is this were an ntsc machine
+
+ // Line-level stereo audio input can be mixed with sound output, balance controlled with slider on front panel
+ // Front-panel switch allows audio input to be passed through bypassing the mixing circuit
+ // Line input can be muted under software control, e.g. when loading data from Laserdisc
+ // Right channel of line input is additionally routed via some signal processing to the cassette input for loading data from Laserdisc
+
+ // PSG port B bits 0-5 can be used to drive controller pins 1-6, 1-7, 2-6, 2-7, 1-8 and 2-8 low if 0 is written
+
+ // Slot #2 7FFE is the SR control register LCON
+ // Bit 7 R = /ACK (significant with acknowledge 1->0 with respect to remote control signal transmission)
+ // Bit 0 R = RMCLK (clock produced by dividing CLK1/CLK2 frequency by 128)
+ // Bit 0 W = /REM (high output with bit serial data output generated in synchronisation with RMCLK)
+
+ // Slot #2 7FFF is the video overlay control register VCON
+ // Bit 7 R = /EXTV (low when external video input available; high when not available)
+ // Bit 7 W = Mute (line input signal muting)
+ // Bit 0 R = INTEXV (interrupt available when external video signal OFF, reset on read)
+ // Bit 0 W = /OVERLAY (0 = superimpose, 1 = non-superimpose)
MCFG_MSX_LAYOUT_ROM("bios", 0, 0, 0, 2, "maincpu", 0x0000)
MCFG_MSX_LAYOUT_RAM("ram", 0, 0, 2, 2) /* 32KB RAM */
@@ -8246,8 +8239,8 @@ MACHINE_CONFIG_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
/* MSX1 */
-COMP(1986, ax150, 0, 0, ax150, msx, driver_device, 0, "Al Alamiah", "AX-150 (MSX1)", 0)
-COMP(1986, ax170, 0, 0, ax170, msx, driver_device, 0, "Al Alamiah", "AX-170 (MSX1)", 0)
+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)
@@ -8302,7 +8295,7 @@ COMP(1985, fs4000a, fs4000, 0, fs4000a, msxjp, driver_device, 0, "Nat
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)", GAME_NOT_WORKING)
+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)
@@ -8356,9 +8349,9 @@ COMP(1984, hx10s, hx10, 0, hx10s, msx, driver_device, 0, "Tos
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)", GAME_NOT_WORKING) // Does not go into firmware
+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)", GAME_NOT_WORKING) // Does not go into firmware
+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)
@@ -8379,8 +8372,8 @@ COMP(1984, yc64, 0, 0, yc64, msx, driver_device, 0, "Yas
COMP(1984, mx64, 0, 0, mx64, msxkr, driver_device, 0, "Yeno", "MX64 (MSX1)", 0)
/* MSX2 */
-COMP(1986, ax350, 0, 0, ax350, msx2, driver_device, 0, "Al Alamiah", "AX-350 (MSX2)", 0)
-COMP(1986, ax370, 0, 0, ax370, msx2, driver_device, 0, "Al Alamiah", "AX-370 (MSX2)", 0)
+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)
@@ -8390,10 +8383,10 @@ COMP(1985, cpc330k, 0, 0, cpc330k, msx2kr, driver_device, 0, "Dae
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)", GAME_NOT_WORKING) // v9958 not added
+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)", GAME_NOT_WORKING) // Firmware not working
+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)
@@ -8413,7 +8406,7 @@ COMP(1987, fsa1fm, 0, 0, fsa1fm, msx2jp, driver_device, 0, "Pan
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)", GAME_NOT_WORKING) // Screen flashes a few times before going into basic
+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)
@@ -8424,24 +8417,24 @@ COMP(1986, nms8250f, nms8255, 0, nms8250f, msx2, driver_device, 0, "Phi
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)", GAME_NOT_WORKING)
+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)", GAME_NOT_WORKING) // Keyboard responds differently
-COMP(198?, mpc2500f, 0, 0, mpc2500f, msx2, driver_device, 0, "Sanyo", "MPC-2500FD (MSX2)", GAME_NOT_WORKING) // Russian keyboard?
+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)", GAME_NOT_WORKING) // Light pen not emulated
+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)", GAME_NOT_WORKING) // Firmware not emulated
-COMP(1986, hbf1, 0, 0, hbf1, msx2jp, driver_device, 0, "Sony", "HB-F1 (Japan) (MSX2)", GAME_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)", GAME_NOT_WORKING ) // Screen stays a single color after a while
+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)", GAME_NOT_WORKING) // Keyboard responds differently
+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?
@@ -8460,30 +8453,30 @@ COMP(19??, tpp311, 0, 0, tpp311, msx2, driver_device, 0, "Tal
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(190?, hx23i, 0, 0, hx23i, msx2, driver_device, 0, "Toshiba", "HX-23I (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)", GAME_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)", GAME_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)", GAME_NOT_WORKING) // 2nd cpu/turbo not emulated, firmware won't start
+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)", GAME_NOT_WORKING) // Russian keyboard, floppy support broken
-COMP(198?, y503iiire, y503iiir, 0, y503iiire, msx2, driver_device, 0, "Yamaha", "YIS-503 III R (Estonian) (MSX2)", GAME_NOT_WORKING) // Russian/Estonian keyboard, floppy support broken
+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)", GAME_NOT_WORKING) // Floppy support broken
-COMP(198?, y805128r2, y805256, 0, y805128r2, msx2jp, driver_device, 0, "Yamaha", "YIS805R2/128 (Russian) (MSX2)", GAME_NOT_WORKING) // Floppy support broken
-COMP(198?, y805128r2e, y805256, 0, y805128r2e, msx2jp, driver_device, 0, "Yamaha", "YIS805R2/128 (Estonian) (MSX2)", GAME_NOT_WORKING) // Floppy support broken
-COMP(198?, y805256, 0, 0, y805256, msx2jp, driver_device, 0, "Yamaha", "YIS805/256 (Russian) (MSX2)", GAME_NOT_WORKING) // Floppy support broken
+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
/* MSX2+ */
-COMP(19??, expert3i, 0, 0, expert3i, msx2, driver_device, 0, "Ciel", "Expert 3 IDE (MSX2+)", GAME_NOT_WORKING ) // Some hardware not emulated
-COMP(1996, expert3t, 0, 0, expert3t, msx2, driver_device, 0, "Ciel", "Expert 3 Turbo (MSX2+)", GAME_NOT_WORKING ) // Some hardware not emulated
-COMP(19??, expertac, 0, 0, expertac, msx2, driver_device, 0, "Gradiente", "Expert AC88+ (MSX2+)", GAME_NOT_WORKING ) // Some hardware not emulated
-COMP(19??, expertdx, 0, 0, expertdx, msx2, driver_device, 0, "Gradiente", "Expert DDX+ (MSX2+)", GAME_NOT_WORKING ) // Some hardware not emulated
+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 )
@@ -8497,5 +8490,5 @@ COMP(19??, hbf9sp, 0, 0, hbf9sp, msx2jp, driver_device, 0, "Son
/* 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)", GAME_NOT_WORKING)
-COMP(19??, fsa1st, 0, 0, fsa1st, msx2jp, driver_device, 0, "Panasonic", "FS-A1ST (MSX Turbo-R)", GAME_NOT_WORKING)
+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)
diff --git a/src/mame/drivers/mt735.c b/src/mame/drivers/mt735.c
new file mode 100644
index 00000000000..569f612d875
--- /dev/null
+++ b/src/mame/drivers/mt735.c
@@ -0,0 +1,71 @@
+/*
+ Brother MT735 thermal printer
+*/
+
+
+#include "emu.h"
+#include "cpu/m68000/m68000.h"
+
+class mt735_state : public driver_device
+{
+public:
+ mt735_state(const machine_config &mconfig, device_type type, const char *tag);
+
+ required_device<m68000_device> m_cpu;
+
+ DECLARE_READ8_MEMBER(p4_r);
+ DECLARE_READ8_MEMBER(p5_r);
+
+ virtual void machine_start();
+ virtual void machine_reset();
+};
+
+mt735_state::mt735_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
+ m_cpu(*this, "maincpu")
+{
+}
+
+void mt735_state::machine_start()
+{
+}
+
+void mt735_state::machine_reset()
+{
+}
+
+READ8_MEMBER(mt735_state::p4_r)
+{
+ logerror("p4_r (%06x)\n", space.device().safe_pc());
+ return 0xe0;
+}
+
+READ8_MEMBER(mt735_state::p5_r)
+{
+ logerror("p5_r (%06x)\n", space.device().safe_pc());
+ return 0x00;
+}
+
+static ADDRESS_MAP_START( mt735_map, AS_PROGRAM, 16, mt735_state )
+ AM_RANGE(0x000000, 0x03ffff) AM_ROM AM_REGION("maincpu", 0)
+ AM_RANGE(0x278000, 0x287fff) AM_RAM
+ AM_RANGE(0x400000, 0x4fffff) AM_RAM
+ AM_RANGE(0xff8004, 0xff8005) AM_READ8(p4_r, 0xff00)
+ AM_RANGE(0xff8004, 0xff8005) AM_READ8(p5_r, 0x00ff)
+ADDRESS_MAP_END
+
+static INPUT_PORTS_START( mt735 )
+INPUT_PORTS_END
+
+static MACHINE_CONFIG_START( mt735, mt735_state )
+ MCFG_CPU_ADD("maincpu", M68000, XTAL_48MHz/6)
+ MCFG_CPU_PROGRAM_MAP(mt735_map)
+MACHINE_CONFIG_END
+
+ROM_START( mt735 )
+ ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "spg_m_e_ic103.bin", 0, 0x20000, CRC(1ab58bc9) SHA1(c10d50f38819c037d28435b77e09f2b6923e8369) )
+ 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 )
diff --git a/src/mess/drivers/mtx.c b/src/mame/drivers/mtx.c
index f6839299480..f6839299480 100644
--- a/src/mess/drivers/mtx.c
+++ b/src/mame/drivers/mtx.c
diff --git a/src/mame/drivers/mugsmash.c b/src/mame/drivers/mugsmash.c
index 1a2c3328522..77e5c55efe5 100644
--- a/src/mame/drivers/mugsmash.c
+++ b/src/mame/drivers/mugsmash.c
@@ -456,4 +456,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", GAME_SUPPORTS_SAVE )
+GAME( 1990?, mugsmash, 0, mugsmash, mugsmash, driver_device, 0, ROT0, "Electronic Devices Italy / 3D Games England", "Mug Smashers", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/multfish.c b/src/mame/drivers/multfish.c
index 7e1bb982107..539a4dfdd20 100644
--- a/src/mame/drivers/multfish.c
+++ b/src/mame/drivers/multfish.c
@@ -2701,117 +2701,117 @@ Most games had a revision in early 2007 to meet the standards of the "Government
-GAME( 2002, goldfish, mfish_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Gold Fish (020903, prototype)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2002, mfish_3, mfish_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Multi Fish (021124)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2002, mfish_6, mfish_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Multi Fish (030124)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2002, mfish_8, mfish_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Multi Fish (030522)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2002, mfish_11, mfish_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Multi Fish (031124)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2002, mfish_12, mfish_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Multi Fish (040308)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2002, mfish_13, 0, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Multi Fish (040316)", GAME_SUPPORTS_SAVE ) /* World */
-
-GAME( 2002, windjamr, 0, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Windjammer (021216)", GAME_SUPPORTS_SAVE ) /* World */
-
-GAME( 2003, czmon_5, czmon_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Crazy Monkey (030421 World)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2003, czmon_7, czmon_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Crazy Monkey (031110 World)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2003, czmon_8, czmon_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Crazy Monkey (050120 World)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2003, czmon_9, czmon_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Crazy Monkey (070315 Russia)", GAME_SUPPORTS_SAVE ) /* Russia */
-GAME( 2003, czmon_13, 0, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Crazy Monkey (100311 World)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2003, czmon_15, czmon_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, crzmonent,ROT0, "Igrosoft", "Crazy Monkey (100311 Entertainment)", GAME_SUPPORTS_SAVE ) /* Entertainment */
-GAME( 2003, czmon_16, czmon_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Crazy Monkey (100312 Russia)", GAME_SUPPORTS_SAVE ) /* Russia */
-
-GAME( 2003, fcockt_3, fcockt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail (030623 World)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2003, fcockt_5, fcockt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail (031111 World)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2003, fcockt_6, fcockt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail (040216 World)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2003, fcockt_7, fcockt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail (050118 World)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2003, fcockt_8, 0, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail (060111 World)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2003, fcockt_9, fcockt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail (070305 Russia)", GAME_SUPPORTS_SAVE ) /* Russia */
-GAME( 2003, fcockt_10, fcockt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail (070517 Russia)", GAME_SUPPORTS_SAVE ) /* Russia */
-GAME( 2003, fcockt_11, fcockt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail (070822 Russia)", GAME_SUPPORTS_SAVE ) /* Russia */
-GAME( 2003, fcockt_12, fcockt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail (070911 Russia)", GAME_SUPPORTS_SAVE ) /* Russia */
-GAME( 2003, fcockt_14, fcockt_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, fcocktent,ROT0, "Igrosoft", "Fruit Cocktail (090708 Entertainment)", GAME_SUPPORTS_SAVE ) /* Entertainment */
-
-GAME( 2003, lhaunt_2, lhaunt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Lucky Haunter (030804 World)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2003, lhaunt_4, lhaunt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Lucky Haunter (031111 World)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2003, lhaunt_5, lhaunt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Lucky Haunter (040216 World)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2003, lhaunt_6, 0, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Lucky Haunter (040825 World)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2003, lhaunt_7, lhaunt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Lucky Haunter (070402 Russia)", GAME_SUPPORTS_SAVE ) /* Russia */
-GAME( 2003, lhaunt_8, lhaunt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Lucky Haunter (070604 Russia)", GAME_SUPPORTS_SAVE ) /* Russia */
-GAME( 2003, lhaunt_10, lhaunt_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, lhauntent,ROT0, "Igrosoft", "Lucky Haunter (090712 Entertainment)", GAME_SUPPORTS_SAVE ) /* Entertainment */
-GAME( 2003, lhaunt_11, lhaunt_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, lhauntent,ROT0, "Igrosoft", "Lucky Haunter (100331 Entertainment)", GAME_SUPPORTS_SAVE ) /* Entertainment */
-
-GAME( 2003, rollfr_2, rollfr_parent, rollfr, rollfr, driver_device, 0, ROT0, "Igrosoft", "Roll Fruit (040318)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2003, rollfr_3, rollfr_parent, rollfr, rollfr, driver_device, 0, ROT0, "Igrosoft", "Roll Fruit (080327)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2003, rollfr_4, 0, rollfr, rollfr, driver_device, 0, ROT0, "Igrosoft", "Roll Fruit (080331)", GAME_SUPPORTS_SAVE ) /* World */
-
-GAME( 2004, garage_4, garage_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Garage (040219 World)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2004, garage_5, 0, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Garage (050311 World)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2004, garage_6, garage_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Garage (070213 Russia)", GAME_SUPPORTS_SAVE ) /* Russia */
-GAME( 2004, garage_7, garage_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Garage (070329 Russia)", GAME_SUPPORTS_SAVE ) /* Russia */
-GAME( 2004, garage_9, garage_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, garageent,ROT0, "Igrosoft", "Garage (090715 Entertainment)", GAME_SUPPORTS_SAVE ) /* Entertainment */
-
-GAME( 2004, rclimb, rclimb_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Rock Climber (040815 World)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2004, rclimb_3, 0, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Rock Climber (040827 World)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2004, rclimb_4, rclimb_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Rock Climber (070322 Russia)", GAME_SUPPORTS_SAVE ) /* Russia */
-GAME( 2004, rclimb_5, rclimb_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Rock Climber (070621 Russia)", GAME_SUPPORTS_SAVE ) /* Russia */
-GAME( 2004, rclimb_7, rclimb_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, rclimbent,ROT0, "Igrosoft", "Rock Climber (090716 Entertainment)", GAME_SUPPORTS_SAVE ) /* Entertainment */
-
-GAME( 2004, sweetl, 0, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Sweet Life (041220 World)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2004, sweetl_2, sweetl_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Sweet Life (070412 Russia)", GAME_SUPPORTS_SAVE ) /* Russia */
-
-GAME( 2004, resdnt, resdnt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Resident (040415 World)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2004, resdnt_2, resdnt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Resident (040513 World)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2004, resdnt_3, resdnt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Resident (070222 Russia)", GAME_SUPPORTS_SAVE ) /* Russia */
-GAME( 2004, resdnt_6, 0, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Resident (100311 World)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2004, resdnt_8, resdnt_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, resdntent,ROT0, "Igrosoft", "Resident (100311 Entertainment)", GAME_SUPPORTS_SAVE ) /* Entertainment */
-GAME( 2004, resdnt_9, resdnt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Resident (100316 Russia)", GAME_SUPPORTS_SAVE ) /* Russia */
-
-GAME( 2005, island, 0, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Island (050713 World)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2005, island_2, island_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Island (070409 Russia)", GAME_SUPPORTS_SAVE ) /* Russia */
-
-GAME( 2005, pirate_2, pirate_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Pirate (060210 World)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2005, pirate_3, 0, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Pirate (060803 World)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2005, pirate_4, pirate_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Pirate (070412 Russia)", GAME_SUPPORTS_SAVE ) /* Russia */
-
-GAME( 2006, island2, 0, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Island 2 (060529 World)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2006, island2_3, island2_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Island 2 (061218 World)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2006, island2_4, island2_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Island 2 (070205 Russia)", GAME_SUPPORTS_SAVE ) /* Russia */
-GAME( 2006, island2_5, island2_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, island2l, ROT0, "Igrosoft", "Island 2 (090528 Lottery)", GAME_SUPPORTS_SAVE ) /* Lottery */
-GAME( 2006, island2_6, island2_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state,island2ent,ROT0, "Igrosoft", "Island 2 (090724 Entertainment)", GAME_SUPPORTS_SAVE ) /* Entertainment */
-
-GAME( 2006, pirate2, 0, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Pirate 2 (061005 World)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2006, pirate2_2, pirate2_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Pirate 2 (070126 Russia)", GAME_SUPPORTS_SAVE ) /* Russia */
-GAME( 2006, pirate2_3, pirate2_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, pirate2l, ROT0, "Igrosoft", "Pirate 2 (090528 Lottery)", GAME_SUPPORTS_SAVE ) /* Lottery */
-GAME( 2006, pirate2_4, pirate2_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state,pirate2ent,ROT0, "Igrosoft", "Pirate 2 (090730 Entertainment)", GAME_SUPPORTS_SAVE ) /* Entertainment */
-
-GAME( 2006, keks, keks_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Keks (060328 World)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2006, keks_2, 0, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Keks (060403 World)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2006, keks_3, keks_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Keks (070119 Russia)", GAME_SUPPORTS_SAVE ) /* Russia */
-GAME( 2006, keks_4, keks_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, keksl, ROT0, "Igrosoft", "Keks (090604 Lottery)", GAME_SUPPORTS_SAVE ) /* Lottery */
-GAME( 2006, keks_5, keks_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, keksent, ROT0, "Igrosoft", "Keks (090727 Entertainment)", GAME_SUPPORTS_SAVE ) /* Entertainment */
-
-GAME( 2007, gnome, gnome_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Gnome (070906 Russia)", GAME_SUPPORTS_SAVE ) /* Russia */
-GAME( 2007, gnome_2, gnome_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Gnome (071115 Russia)", GAME_SUPPORTS_SAVE ) /* Russia */
-GAME( 2007, gnome_3, gnome_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Gnome (080303 World)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2007, gnome_4, gnome_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Gnome (090402 Russia)", GAME_SUPPORTS_SAVE ) /* Russia */
-GAME( 2007, gnome_5, gnome_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Gnome (090406 World)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2007, gnome_7, gnome_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, gnomel, ROT0, "Igrosoft", "Gnome (090708 Lottery)", GAME_SUPPORTS_SAVE ) /* Lottery */
-GAME( 2007, gnome_9, 0, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Gnome (100326 World)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2007, gnome_10, gnome_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, gnomel, ROT0, "Igrosoft", "Gnome (100326 Lottery)", GAME_SUPPORTS_SAVE ) /* Lottery */
-GAME( 2007, gnome_11, gnome_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, gnomeent, ROT0, "Igrosoft", "Gnome (100326 Entertainment)", GAME_SUPPORTS_SAVE ) /* Entertainment */
-GAME( 2007, gnome_12, gnome_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Gnome (100326 Russia)", GAME_SUPPORTS_SAVE ) /* Russia */
-
-GAME( 2007, sweetl2, 0, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Sweet Life 2 (071217 Russia)", GAME_SUPPORTS_SAVE ) /* Russia */
-GAME( 2007, sweetl2_2, sweetl2_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Sweet Life 2 (080320 World)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2007, sweetl2_3, sweetl2_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, sweetl2l, ROT0, "Igrosoft", "Sweet Life 2 (090525 Lottery)", GAME_SUPPORTS_SAVE ) /* Lottery */
-GAME( 2007, sweetl2_4, sweetl2_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state,sweetl2ent,ROT0, "Igrosoft", "Sweet Life 2 (090812 Entertainment)", GAME_SUPPORTS_SAVE ) /* Entertainment */
-
-GAME( 2008, fcockt2, 0, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail 2 (080707 Russia)", GAME_SUPPORTS_SAVE ) /* Russia */
-GAME( 2008, fcockt2_3, fcockt2_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail 2 (080909 World)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2008, fcockt2_4, fcockt2_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail 2 (081105 World)", GAME_SUPPORTS_SAVE ) /* World */
-GAME( 2008, fcockt2_5, fcockt2_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail 2 (081106 Russia)", GAME_SUPPORTS_SAVE ) /* Russia */
-GAME( 2008, fcockt2_6, fcockt2_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, fcockt2l, ROT0, "Igrosoft", "Fruit Cocktail 2 (090528 Lottery)", GAME_SUPPORTS_SAVE ) /* Lottery */
-GAME( 2008, fcockt2_7, fcockt2_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state,fcockt2ent,ROT0, "Igrosoft", "Fruit Cocktail 2 (090813 Entertainment)", GAME_SUPPORTS_SAVE ) /* Entertainment */
-
-GAME( 2010, crzmon2, 0, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state,crzmon2, ROT0, "Igrosoft", "Crazy Monkey 2 (100310)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE ) /* World */ // xored and bitswapped palette and gfx roms
-GAME( 2010, crzmon2_2, crzmon2_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state,crzmon2lot,ROT0, "Igrosoft", "Crazy Monkey 2 (100311 Lottery)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE ) /* Lottery */
-GAME( 2010, crzmon2_3, crzmon2_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state,crzmon2ent,ROT0, "Igrosoft", "Crazy Monkey 2 (100315 Entertainment)", GAME_NOT_WORKING|GAME_SUPPORTS_SAVE ) /* Entertainment */
+GAME( 2002, goldfish, mfish_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Gold Fish (020903, prototype)", MACHINE_SUPPORTS_SAVE ) /* World */
+GAME( 2002, mfish_3, mfish_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Multi Fish (021124)", MACHINE_SUPPORTS_SAVE ) /* World */
+GAME( 2002, mfish_6, mfish_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Multi Fish (030124)", MACHINE_SUPPORTS_SAVE ) /* World */
+GAME( 2002, mfish_8, mfish_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Multi Fish (030522)", MACHINE_SUPPORTS_SAVE ) /* World */
+GAME( 2002, mfish_11, mfish_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Multi Fish (031124)", MACHINE_SUPPORTS_SAVE ) /* World */
+GAME( 2002, mfish_12, mfish_parent, 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_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Crazy Monkey (030421 World)", MACHINE_SUPPORTS_SAVE ) /* World */
+GAME( 2003, czmon_7, czmon_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Crazy Monkey (031110 World)", MACHINE_SUPPORTS_SAVE ) /* World */
+GAME( 2003, czmon_8, czmon_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Crazy Monkey (050120 World)", MACHINE_SUPPORTS_SAVE ) /* World */
+GAME( 2003, czmon_9, czmon_parent, 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_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, crzmonent,ROT0, "Igrosoft", "Crazy Monkey (100311 Entertainment)", MACHINE_SUPPORTS_SAVE ) /* Entertainment */
+GAME( 2003, czmon_16, czmon_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Crazy Monkey (100312 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */
+
+GAME( 2003, fcockt_3, fcockt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail (030623 World)", MACHINE_SUPPORTS_SAVE ) /* World */
+GAME( 2003, fcockt_5, fcockt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail (031111 World)", MACHINE_SUPPORTS_SAVE ) /* World */
+GAME( 2003, fcockt_6, fcockt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail (040216 World)", MACHINE_SUPPORTS_SAVE ) /* World */
+GAME( 2003, fcockt_7, fcockt_parent, 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_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail (070305 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */
+GAME( 2003, fcockt_10, fcockt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail (070517 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */
+GAME( 2003, fcockt_11, fcockt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail (070822 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */
+GAME( 2003, fcockt_12, fcockt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail (070911 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */
+GAME( 2003, fcockt_14, fcockt_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, fcocktent,ROT0, "Igrosoft", "Fruit Cocktail (090708 Entertainment)", MACHINE_SUPPORTS_SAVE ) /* Entertainment */
+
+GAME( 2003, lhaunt_2, lhaunt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Lucky Haunter (030804 World)", MACHINE_SUPPORTS_SAVE ) /* World */
+GAME( 2003, lhaunt_4, lhaunt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Lucky Haunter (031111 World)", MACHINE_SUPPORTS_SAVE ) /* World */
+GAME( 2003, lhaunt_5, lhaunt_parent, 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_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Lucky Haunter (070402 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */
+GAME( 2003, lhaunt_8, lhaunt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Lucky Haunter (070604 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */
+GAME( 2003, lhaunt_10, lhaunt_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, lhauntent,ROT0, "Igrosoft", "Lucky Haunter (090712 Entertainment)", MACHINE_SUPPORTS_SAVE ) /* Entertainment */
+GAME( 2003, lhaunt_11, lhaunt_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, lhauntent,ROT0, "Igrosoft", "Lucky Haunter (100331 Entertainment)", MACHINE_SUPPORTS_SAVE ) /* Entertainment */
+
+GAME( 2003, rollfr_2, rollfr_parent, rollfr, rollfr, driver_device, 0, ROT0, "Igrosoft", "Roll Fruit (040318)", MACHINE_SUPPORTS_SAVE ) /* World */
+GAME( 2003, rollfr_3, rollfr_parent, 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_parent, 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_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Garage (070213 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */
+GAME( 2004, garage_7, garage_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Garage (070329 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */
+GAME( 2004, garage_9, garage_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, garageent,ROT0, "Igrosoft", "Garage (090715 Entertainment)", MACHINE_SUPPORTS_SAVE ) /* Entertainment */
+
+GAME( 2004, rclimb, rclimb_parent, 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_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Rock Climber (070322 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */
+GAME( 2004, rclimb_5, rclimb_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Rock Climber (070621 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */
+GAME( 2004, rclimb_7, rclimb_parent, 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_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Sweet Life (070412 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */
+
+GAME( 2004, resdnt, resdnt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Resident (040415 World)", MACHINE_SUPPORTS_SAVE ) /* World */
+GAME( 2004, resdnt_2, resdnt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Resident (040513 World)", MACHINE_SUPPORTS_SAVE ) /* World */
+GAME( 2004, resdnt_3, resdnt_parent, 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_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, resdntent,ROT0, "Igrosoft", "Resident (100311 Entertainment)", MACHINE_SUPPORTS_SAVE ) /* Entertainment */
+GAME( 2004, resdnt_9, resdnt_parent, 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_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Island (070409 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */
+
+GAME( 2005, pirate_2, pirate_parent, 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_parent, 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_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Island 2 (061218 World)", MACHINE_SUPPORTS_SAVE ) /* World */
+GAME( 2006, island2_4, island2_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Island 2 (070205 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */
+GAME( 2006, island2_5, island2_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, island2l, ROT0, "Igrosoft", "Island 2 (090528 Lottery)", MACHINE_SUPPORTS_SAVE ) /* Lottery */
+GAME( 2006, island2_6, island2_parent, 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_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Pirate 2 (070126 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */
+GAME( 2006, pirate2_3, pirate2_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, pirate2l, ROT0, "Igrosoft", "Pirate 2 (090528 Lottery)", MACHINE_SUPPORTS_SAVE ) /* Lottery */
+GAME( 2006, pirate2_4, pirate2_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state,pirate2ent,ROT0, "Igrosoft", "Pirate 2 (090730 Entertainment)", MACHINE_SUPPORTS_SAVE ) /* Entertainment */
+
+GAME( 2006, keks, keks_parent, 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_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Keks (070119 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */
+GAME( 2006, keks_4, keks_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, keksl, ROT0, "Igrosoft", "Keks (090604 Lottery)", MACHINE_SUPPORTS_SAVE ) /* Lottery */
+GAME( 2006, keks_5, keks_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, keksent, ROT0, "Igrosoft", "Keks (090727 Entertainment)", MACHINE_SUPPORTS_SAVE ) /* Entertainment */
+
+GAME( 2007, gnome, gnome_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Gnome (070906 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */
+GAME( 2007, gnome_2, gnome_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Gnome (071115 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */
+GAME( 2007, gnome_3, gnome_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Gnome (080303 World)", MACHINE_SUPPORTS_SAVE ) /* World */
+GAME( 2007, gnome_4, gnome_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Gnome (090402 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */
+GAME( 2007, gnome_5, gnome_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Gnome (090406 World)", MACHINE_SUPPORTS_SAVE ) /* World */
+GAME( 2007, gnome_7, gnome_parent, 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_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, gnomel, ROT0, "Igrosoft", "Gnome (100326 Lottery)", MACHINE_SUPPORTS_SAVE ) /* Lottery */
+GAME( 2007, gnome_11, gnome_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, gnomeent, ROT0, "Igrosoft", "Gnome (100326 Entertainment)", MACHINE_SUPPORTS_SAVE ) /* Entertainment */
+GAME( 2007, gnome_12, gnome_parent, 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_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Sweet Life 2 (080320 World)", MACHINE_SUPPORTS_SAVE ) /* World */
+GAME( 2007, sweetl2_3, sweetl2_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, sweetl2l, ROT0, "Igrosoft", "Sweet Life 2 (090525 Lottery)", MACHINE_SUPPORTS_SAVE ) /* Lottery */
+GAME( 2007, sweetl2_4, sweetl2_parent, 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_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail 2 (080909 World)", MACHINE_SUPPORTS_SAVE ) /* World */
+GAME( 2008, fcockt2_4, fcockt2_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail 2 (081105 World)", MACHINE_SUPPORTS_SAVE ) /* World */
+GAME( 2008, fcockt2_5, fcockt2_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail 2 (081106 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */
+GAME( 2008, fcockt2_6, fcockt2_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, fcockt2l, ROT0, "Igrosoft", "Fruit Cocktail 2 (090528 Lottery)", MACHINE_SUPPORTS_SAVE ) /* Lottery */
+GAME( 2008, fcockt2_7, fcockt2_parent, 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_parent, 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_parent, 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.c b/src/mame/drivers/multfish_boot.c
index 0b5dfec8983..a821b7b681b 100644
--- a/src/mame/drivers/multfish_boot.c
+++ b/src/mame/drivers/multfish_boot.c
@@ -1710,128 +1710,128 @@ ROM_START( fcockt2_4f ) // 081105 custom alteras, modified graphics, bank F9, ma
ROM_END
-GAME( 2002, mfish_3a, mfish_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Multi Fish (bootleg, 021124, banking address hack)", GAME_SUPPORTS_SAVE ) // bank F9
-GAME( 2002, mfish_12a, mfish_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Multi Fish (bootleg, 040308, banking address hack)", GAME_SUPPORTS_SAVE ) // bank F9
-
-GAME( 2003, czmon_7a, czmon_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Crazy Monkey (bootleg, 031110, backdoor set 1)", GAME_SUPPORTS_SAVE ) // backdoor 1,1 1,3 1,5 1,7 3,3 3,4
-GAME( 2003, czmon_7b, czmon_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Crazy Monkey (bootleg, 031110, backdoor set 2)", GAME_SUPPORTS_SAVE ) // backdoor 1,5 5,5 1,7 3,2 3,3 3,4
-GAME( 2003, czmon_8a, czmon_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Crazy Monkey (bootleg, 050120, backdoor)", GAME_SUPPORTS_SAVE ) // backdoor 1,1 1,3 1,5 1,7 3,3 3,4
-GAME( 2003, czmon_8b, czmon_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Crazy Monkey (bootleg, 050120, changed version text)", GAME_SUPPORTS_SAVE ) // changed version text to 070315
-GAME( 2003, czmon_8c, czmon_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Crazy Monkey (bootleg, 050120, VIDEO GAME-1 CM01)", GAME_SUPPORTS_SAVE ) // custom alteras, modified graphics, changed version text to "VIDEO GAME-1 CM01"
-GAME( 2003, czmon_8d, czmon_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Crazy Monkey (bootleg, 050120, LOTTOGAME (I))", GAME_SUPPORTS_SAVE ) // modified graphics, changed version text to "MDS_is_the_best_ LOTTOGAME (I)"
-GAME( 2003, czmon_8e, czmon_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Crazy Monkey (bootleg, 050120, LOTO PROGRAM V-CM2)", GAME_SUPPORTS_SAVE ) // modified graphics, many texts changed, changed version text to "LOTO PROGRAM V-CM2"
-GAME( 2003, czmon_8f, czmon_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Crazy Monkey (bootleg, 050120, LOTOS CM01)", GAME_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "LOTOS CM01"
-GAME( 2003, czmon_9a, czmon_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Crazy Monkey (bootleg, 070315, VIDEO GAME-1 O01 set 1)", GAME_SUPPORTS_SAVE ) // custom alteras, modified graphics, changed version text to "VIDEO GAME-1 O01"
-GAME( 2003, czmon_9b, czmon_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Crazy Monkey (bootleg, 070315, VIDEO GAME-1 O01 set 2)", GAME_SUPPORTS_SAVE ) // modified graphics, changed version text to "VIDEO GAME-1 O01" (czmon_9a, decoded gfx)
-GAME( 2003, czmon_9c, czmon_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Crazy Monkey (bootleg, 070315, payout percentage 70)", GAME_SUPPORTS_SAVE ) // payout percentage 70%
-
-GAME( 2003, fcockt_6a, fcockt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Fruit Cocktail (bootleg, 040216, banking address hack)", GAME_SUPPORTS_SAVE ) // bank F8
-GAME( 2003, fcockt_6b, fcockt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Fruit Cocktail (bootleg, 040216, backdoor)", GAME_SUPPORTS_SAVE ) // backdoor 1,1 1,3 1,5 1,7 3,3 3,4
-GAME( 2003, fcockt_6c, fcockt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Fruit Cocktail (bootleg, 040216, LotoRossy+)", GAME_SUPPORTS_SAVE ) // modified graphics, some code changes, description says "for Lat-02 terminals", older set
-GAME( 2003, fcockt_6d, fcockt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Fruit Cocktail (bootleg, 040216, VIDEO GAME-1 FR01)", GAME_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_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Fruit Cocktail (bootleg, 050118, backdoor)", GAME_SUPPORTS_SAVE ) // backdoor 1,1 1,3 1,5 1,7 3,3 3,4
-GAME( 2003, fcockt_7b, fcockt_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Fruit Cocktail (bootleg, 050118, VIDEO GAME-1 FR01)", GAME_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "VIDEO GAME-1 FR01"
-GAME( 2003, fcockt_7c, fcockt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Fruit Cocktail (bootleg, 050118, payout percentage 40)", GAME_SUPPORTS_SAVE ) // payout percentage 40%
-GAME( 2003, fcockt_7d, fcockt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Fruit Cocktail (bootleg, 050118, payout percentage 60)", GAME_SUPPORTS_SAVE ) // payout percentage 60%
-GAME( 2003, fcockt_7e, fcockt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Fruit Cocktail (bootleg, 050118, payout percentage 70)", GAME_SUPPORTS_SAVE ) // payout percentage 70%
-GAME( 2003, fcockt_7f, fcockt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Fruit Cocktail (bootleg, 050118, changed version text)", GAME_SUPPORTS_SAVE ) // changed version text to 070305
-GAME( 2003, fcockt_7g, fcockt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Fruit Cocktail (bootleg, 050118, LOTO PROGRAM V-FC2)", GAME_SUPPORTS_SAVE ) // modified graphics, many texts changed, changed version text to "LOTO PROGRAM V-FC2"
-GAME( 2003, fcockt_7h, fcockt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Fruit Cocktail (bootleg, 050118, LOTOS FR01)", GAME_SUPPORTS_SAVE ) // modified graphics, many texts changed, changed version text to "LOTOS FR01"
-GAME( 2003, fcockt_8a, fcockt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Fruit Cocktail (bootleg, 060111, LOTO COCKTAIL V01-0001)", GAME_SUPPORTS_SAVE ) // modified graphics, many texts changed, changed version text to "LOTO COCKTAIL V01-0001"
-GAME( 2003, fcockt_8b, fcockt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Fruit Cocktail (bootleg, 060111, LOTTOGAME (I))", GAME_SUPPORTS_SAVE ) // modified graphics, changed version text to "MDS_is_the_best_ LOTTOGAME (I)"
-
-GAME( 2003, lhaunt_4a, lhaunt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Lucky Haunter (bootleg, 031111, backdoor)", GAME_SUPPORTS_SAVE ) // backdoor 1,1 1,3 1,5 1,7 3,3 3,4
-GAME( 2003, lhaunt_5a, lhaunt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Lucky Haunter (bootleg, 040216, backdoor)", GAME_SUPPORTS_SAVE ) // backdoor 1,1 1,3 1,5 1,7 3,3 3,4
-GAME( 2003, lhaunt_6a, lhaunt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Lucky Haunter (bootleg, 040825, backdoor)", GAME_SUPPORTS_SAVE ) // backdoor 1,5 9,1 5,1 1,5 3,3 3,4
-GAME( 2003, lhaunt_6b, lhaunt_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Lucky Haunter (bootleg, 040825, VIDEO GAME-1 PB01)", GAME_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "VIDEO GAME-1 PB01"
-GAME( 2003, lhaunt_6c, lhaunt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Lucky Haunter (bootleg, 040825, changed version text)", GAME_SUPPORTS_SAVE ) // changed version text to 070604
-GAME( 2003, lhaunt_6d, lhaunt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Lucky Haunter (bootleg, 040825, LOTTOGAME (I))", GAME_SUPPORTS_SAVE ) // modified graphics, changed version text to "MDS_is_the_best_ LOTTOGAME (I)"
-GAME( 2003, lhaunt_6e, lhaunt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Lucky Haunter (bootleg, 040825, LOTO PROGRAM V-LH2)", GAME_SUPPORTS_SAVE ) // modified graphics, many texts changed, changed version text to "LOTO PROGRAM V-LH2"
-GAME( 2003, lhaunt_6f, lhaunt_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Lucky Haunter (bootleg, 040825, LOTOS PB01)", GAME_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "LOTOS PB01"
-
-GAME( 2004, garage_4a, garage_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Garage (bootleg, 040219, backdoor)", GAME_SUPPORTS_SAVE ) // backdoor 1,1 1,3 1,5 1,7 3,3 3,4
-GAME( 2004, garage_4b, garage_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Garage (bootleg, 040219, changed version text)", GAME_SUPPORTS_SAVE ) // changed version text to 070329
-GAME( 2004, garage_4c, garage_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Garage (bootleg, 040219, LOTO PROGRAM V-GG2)", GAME_SUPPORTS_SAVE ) // modified graphics, many texts changed, changed version text to "LOTO PROGRAM V-GG2"
-GAME( 2004, garage_5a, garage_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Garage (bootleg, 050311, backdoor)", GAME_SUPPORTS_SAVE ) // backdoor 1,1 1,3 1,5 1,7 3,3 3,4
-GAME( 2004, garage_5b, garage_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Garage (bootleg, 050311, VIDEO GAME-1 GA01)", GAME_SUPPORTS_SAVE ) // custom alteras, modified graphics, changed version text to "VIDEO GAME-1 GA01"
-GAME( 2004, garage_5c, garage_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Garage (bootleg, 050311, payout percentage 70)", GAME_SUPPORTS_SAVE ) // payout percentage 70%
-GAME( 2004, garage_5d, garage_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Garage (bootleg, 050311, LOTTOGAME (I))", GAME_SUPPORTS_SAVE ) // modified graphics, changed version text to "MDS_is_the_best_ LOTTOGAME (I)"
-GAME( 2004, garage_5e, garage_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Garage (bootleg, 050311, LOTOS GA01)", GAME_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "LOTOS GA01"
-
-GAME( 2004, rclimb_3a, rclimb_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Rock Climber (bootleg, 040827, backdoor)", GAME_SUPPORTS_SAVE ) // backdoor 1,5 9,1 5,1 1,5 3,3 3,4
-GAME( 2004, rclimb_3b, rclimb_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Rock Climber (bootleg, 040827, new service menu)", GAME_SUPPORTS_SAVE ) // new service menu
-GAME( 2004, rclimb_3c, rclimb_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Rock Climber (bootleg, 040827, VIDEO GAME-1 SK01)", GAME_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "VIDEO GAME-1 SK01"
-GAME( 2004, rclimb_3d, rclimb_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Rock Climber (bootleg, 040827, LOTTOGAME (I))", GAME_SUPPORTS_SAVE ) // modified graphics, changed version text to "MDS_is_the_best_ LOTTOGAME (I)"
-GAME( 2004, rclimb_3e, rclimb_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Rock Climber (bootleg, 040827, LOTOS SK01)", GAME_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "LOTOS SK01"
-
-GAME( 2004, sweetla, sweetl_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Sweet Life (bootleg, 041220, backdoor)", GAME_SUPPORTS_SAVE ) // backdoor 1,5 9,1 5,3 1,5 3,3 3,4
-GAME( 2004, sweetlb, sweetl_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Sweet Life (bootleg, 041220, banking address hack, changed version text)", GAME_SUPPORTS_SAVE ) // bank F9, changed version text to 070412
-
-GAME( 2004, resdnt_2a, resdnt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Resident (bootleg, 040513, backdoor)", GAME_SUPPORTS_SAVE ) // backdoor 1,5 9,1 5,1 1,5 3,3 3,4
-GAME( 2004, resdnt_2b, resdnt_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Resident (bootleg, 040513, VIDEO GAME-1 SE01 set 1)", GAME_SUPPORTS_SAVE ) // custom alteras, modified graphics, changed version text to "VIDEO GAME-1 SE01"
-GAME( 2004, resdnt_2c, resdnt_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Resident (bootleg, 040513, VIDEO GAME-1 SE01 set 2)", GAME_SUPPORTS_SAVE ) // custom alteras, modified graphics, changed version text to "VIDEO GAME-1 SE01"
-GAME( 2004, resdnt_2d, resdnt_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Resident (bootleg, 040513, VIDEO GAME-1 SE01 set 3)", GAME_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "VIDEO GAME-1 SE01"
-GAME( 2004, resdnt_2e, resdnt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Resident (bootleg, 040513, LOTTOGAME (I))", GAME_SUPPORTS_SAVE ) // modified graphics, changed version text to "MDS_is_the_best_ LOTTOGAME (I)"
-GAME( 2004, resdnt_2f, resdnt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Resident (bootleg, 040513, LOTO PROGRAM V-RS2)", GAME_SUPPORTS_SAVE ) // modified graphics, many texts changed, changed version text to "LOTO PROGRAM V-RS2"
-GAME( 2004, resdnt_2g, resdnt_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Resident (bootleg, 040513, LOTOS SE01)", GAME_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "LOTOS SE01"
-
-GAME( 2005, islanda, island_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Island (bootleg, 050713, backdoor)", GAME_SUPPORTS_SAVE ) // backdoor 1,1 1,3 1,5 1,7 3,3 3,4
-GAME( 2005, islandb, island_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Island (bootleg, 050713, VIDEO GAME-1 OS01)", GAME_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "VIDEO GAME-1 OS01"
-GAME( 2005, islandc, island_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Island (bootleg, 050713, LOTOS OS01)", GAME_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "LOTOS OS01"
-
-GAME( 2006, island2a, island2_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Island 2 (bootleg, 060529, banking address hack)", GAME_SUPPORTS_SAVE ) // bank F9 (not standart, game not work)
-GAME( 2006, island2b, island2_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Island 2 (bootleg, 060529, banking address hack, changed version text)", GAME_SUPPORTS_SAVE ) // bank F9, changed version text to 070205, skip some start tests
-GAME( 2006, island2c, island2_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Island 2 (bootleg, 060529, LOTTOGAME (I))", GAME_SUPPORTS_SAVE ) // bank F9, modified graphics, changed version text to "MDS_is_the_best_ LOTTOGAME (I)"
-GAME( 2006, island2_3a, island2_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Island 2 (bootleg, 061218, VIDEO GAME-1 OS2-01)", GAME_SUPPORTS_SAVE ) // bank F9, modified graphics, changed version text to "VIDEO GAME-1 OS2-01"
-GAME( 2006, island2_4a, island2_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Island 2 (bootleg, 070205, banking address hack)", GAME_SUPPORTS_SAVE ) // bank F9
-
-GAME( 2006, pirate2a, pirate2_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Pirate 2 (bootleg, 061005, banking address hack set 1)", GAME_SUPPORTS_SAVE ) // bank F9
-GAME( 2006, pirate2b, pirate2_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Pirate 2 (bootleg, 061005, banking address hack set 2)", GAME_SUPPORTS_SAVE ) // bank F9, skip raster beam position check
-GAME( 2006, pirate2c, pirate2_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Pirate 2 (bootleg, 061005, banking address hack, changed version text set 1)", GAME_SUPPORTS_SAVE ) // bank F9, changed version text to 070126
-GAME( 2006, pirate2d, pirate2_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Pirate 2 (bootleg, 061005, banking address hack, changed version text set 2)", GAME_SUPPORTS_SAVE ) // bank F9, changed version text to 070126
-GAME( 2006, pirate2e, pirate2_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Pirate 2 (bootleg, 061005, banking address hack, changed version text set 3)", GAME_SUPPORTS_SAVE ) // bank F9, changed version text to 070126, skip some start tests
-GAME( 2006, pirate2f, pirate2_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Pirate 2 (bootleg, 061005, VIDEO GAME-1 PR01)", GAME_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "VIDEO GAME-1 PR01"
-GAME( 2006, pirate2g, pirate2_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Pirate 2 (bootleg, 061005, LOTTOGAME (I))", GAME_SUPPORTS_SAVE ) // bank F9, modified graphics, changed version text to "MDS_is_the_best_ LOTTOGAME (I)"
-GAME( 2006, pirate2h, pirate2_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Pirate 2 (bootleg, 061005, LOTOS PR01)", GAME_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "LOTOS PR01"
-GAME( 2006, pirate2_2a, pirate2_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Pirate 2 (bootleg, 070126, banking address hack)", GAME_SUPPORTS_SAVE ) // bank F9
-
-GAME( 2006, keksa, keks_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Keks (bootleg, 060328, banking address hack)", GAME_SUPPORTS_SAVE ) // bank F9
-GAME( 2006, keksb, keks_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Keks (bootleg, 060328, backdoor)", GAME_SUPPORTS_SAVE ) // backdoor 1,1 1,3 1,5 1,7 3,3 3,4
-GAME( 2006, keksc, keks_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Keks (bootleg, 060328, banking address hack, changed version text)", GAME_SUPPORTS_SAVE ) // bank F9, changed version text to 070119
-GAME( 2006, keks_2a, keks_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Keks (bootleg, 060403, banking address hack)", GAME_SUPPORTS_SAVE ) // bank F9
-GAME( 2006, keks_2b, keks_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Keks (bootleg, 060403, banking address hack, changed version text)", GAME_SUPPORTS_SAVE ) // bank F9, changed version text to 070119
-GAME( 2006, keks_2c, keks_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Keks (bootleg, 060403, VIDEO GAME-1 KS01 set 1)", GAME_SUPPORTS_SAVE ) // custom alteras, modified graphics, bank F9, changed version text to "VIDEO GAME-1 KS01"
-GAME( 2006, keks_2d, keks_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Keks (bootleg, 060403, VIDEO GAME-1 KS01 set 2)", GAME_SUPPORTS_SAVE ) // modified graphics, bank F9, changed version text to "VIDEO GAME-1 KS01" (keks_2c, decoded gfx)
-GAME( 2006, keks_2e, keks_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Keks (bootleg, 060403, banking address hack, payout percentage 60)", GAME_SUPPORTS_SAVE ) // bank F9, payout percentage 60%
-GAME( 2006, keks_2f, keks_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Keks (bootleg, 060403, LOTTOGAME (I))", GAME_SUPPORTS_SAVE ) // bank F9, modified graphics, changed version text to "MDS_is_the_best_ LOTTOGAME (I)"
-GAME( 2006, keks_2g, keks_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Keks (bootleg, 060403, LOTOS KS01)", GAME_SUPPORTS_SAVE ) // custom alteras, modified graphics, bank F9, many texts changed, changed version text to "LOTOS KS01"
-GAME( 2006, keks_3a, keks_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Keks (bootleg, 070119, banking address hack set 1)", GAME_SUPPORTS_SAVE ) // bank F9
-GAME( 2006, keks_3b, keks_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Keks (bootleg, 070119, banking address hack set 2)", GAME_SUPPORTS_SAVE ) // bank F9
-
-GAME( 2007, gnomea, gnome_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Gnome (bootleg, 070906, banking address hack set 1)", GAME_SUPPORTS_SAVE ) // bank F9
-GAME( 2007, gnomeb, gnome_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Gnome (bootleg, 070906, banking address hack set 2)", GAME_SUPPORTS_SAVE ) // bank F9
-GAME( 2007, gnomec, gnome_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Gnome (bootleg, 070906, banking address hack set 3)", GAME_SUPPORTS_SAVE ) // bank F9
-GAME( 2007, gnomed, gnome_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Gnome (bootleg, 070906, VIDEO GAME-1 GN01)", GAME_SUPPORTS_SAVE ) // custom alteras, modified graphics, many texts changed, changed version text to "VIDEO GAME-1 GN01"
-GAME( 2007, gnomee, gnome_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Gnome (bootleg, 070906, LOTOS GN01)", GAME_SUPPORTS_SAVE ) // custom alteras, modified graphics, bank F9, many texts changed, changed version text to "LOTOS GN01"
-GAME( 2007, gnome_2a, gnome_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Gnome (bootleg, 071115, banking address hack)", GAME_SUPPORTS_SAVE ) // bank F9
-GAME( 2007, gnome_3a, gnome_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Gnome (bootleg, 080303, banking address hack)", GAME_SUPPORTS_SAVE ) // bank F9
-GAME( 2007, gnome_3b, gnome_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Gnome (bootleg, 080303, banking address hack, payout percentage 45)", GAME_SUPPORTS_SAVE ) // bank F9 payout percentage 45%
-GAME( 2007, gnome_3c, gnome_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Gnome (bootleg, 080303, banking address hack, payout percentage 60)", GAME_SUPPORTS_SAVE ) // bank F9 payout percentage 60%
-GAME( 2007, gnome_5a, gnome_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Gnome (bootleg, 090406, banking address hack, payout percentage 70)", GAME_SUPPORTS_SAVE ) // bank F9, payout percentage 70%
-GAME( 2007, gnome_5b, gnome_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Gnome (bootleg, 090406, LOTTOGAME (I))", GAME_SUPPORTS_SAVE ) // bank F9, modified graphics, changed version text to "MDS_is_the_best_ LOTTOGAME (I)"
-
-GAME( 2007, sweetl2_2a, sweetl2_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Sweet Life 2 (bootleg, 080320, banking address hack set 1)", GAME_SUPPORTS_SAVE ) // bank F9
-GAME( 2007, sweetl2_2b, sweetl2_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Sweet Life 2 (bootleg, 080320, banking address hack set 2)", GAME_SUPPORTS_SAVE ) // bank F9, some fixes
-GAME( 2007, sweetl2_2c, sweetl2_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Sweet Life 2 (bootleg, 080320, VIDEO GAME-1 MD01)", GAME_SUPPORTS_SAVE ) // modified graphics, bank F9, changed version text to "VIDEO GAME-1 MD01"
-GAME( 2007, sweetl2_2d, sweetl2_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Sweet Life 2 (bootleg, 080320, LOTTOGAME (I))", GAME_SUPPORTS_SAVE ) // bank F9, modified graphics, changed version text to "MDS_is_the_best_ LOTTOGAME (I)"
-
-GAME( 2008, fcockt2a, fcockt2_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Fruit Cocktail 2 (bootleg, 080707, banking address hack)", GAME_SUPPORTS_SAVE ) // bank F9
-GAME( 2008, fcockt2_4a, fcockt2_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Fruit Cocktail 2 (bootleg, 081105, banking address hack)", GAME_SUPPORTS_SAVE ) // bank F9
-GAME( 2008, fcockt2_4b, fcockt2_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Fruit Cocktail 2 (bootleg, 081105, banking address hack, no credit limit)", GAME_SUPPORTS_SAVE ) // bank F9, no credit limit, "MaxVin" signature
-GAME( 2008, fcockt2_4c, fcockt2_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Fruit Cocktail 2 (bootleg, 081105, VIDEO GAME-1 FR02)", GAME_SUPPORTS_SAVE ) // custom alteras, modified graphics, bank F9, many texts changed, changed version text to "VIDEO GAME-1 FR02"
-GAME( 2008, fcockt2_4d, fcockt2_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Fruit Cocktail 2 (bootleg, 081105, banking address hack, payout percentage 70)", GAME_SUPPORTS_SAVE ) // bank F9, no credit limit, "MaxVin" signature, payout percentage 70%
-GAME( 2008, fcockt2_4e, fcockt2_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Fruit Cocktail 2 (bootleg, 081105, LOTTOGAME (I))", GAME_SUPPORTS_SAVE ) // bank F9, modified graphics, changed version text to "MDS_is_the_best_ LOTTOGAME (I)"
-GAME( 2008, fcockt2_4f, fcockt2_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, customl,ROT0, "bootleg", "Fruit Cocktail 2 (bootleg, 081105, LOTOS FR02)", GAME_SUPPORTS_SAVE ) // custom alteras, modified graphics, bank F9, many texts changed, changed version text to "LOTOS FR02"
+GAME( 2002, mfish_3a, mfish_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Keks (bootleg, 060328, banking address hack)", MACHINE_SUPPORTS_SAVE ) // bank F9
+GAME( 2006, keksb, keks_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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_parent, 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
@@ -1885,5 +1885,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)", GAME_NOT_WORKING ) // no GFX roms
-GAME( 2003, igromula, igromult, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "bootleg", "Igrosoft Multigame Bootleg (15 Games)", GAME_NOT_WORKING ) // no GFX roms
+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
diff --git a/src/mame/drivers/multfish_ref.c b/src/mame/drivers/multfish_ref.c
index 1fe33d98d0e..529292d9bfa 100644
--- a/src/mame/drivers/multfish_ref.c
+++ b/src/mame/drivers/multfish_ref.c
@@ -575,54 +575,54 @@ ROM_START( fcockt2_2 ) // 080904
ROM_LOAD( "fruitcocktail2_old.008", 0x380000, 0x80000, CRC(a27c49a2) SHA1(7c9ee0e01f76ca3ab6716579f5dde7036050970b) )
ROM_END
-//GAME( 2002, mfish, mfish_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Multi Fish (021120)", GAME_SUPPORTS_SAVE ) /* World */
-//GAME( 2002, mfish_2, mfish_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Multi Fish (021121)", GAME_SUPPORTS_SAVE ) /* World */
-//GAME( 2002, mfish_4, mfish_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Multi Fish (021219)", GAME_SUPPORTS_SAVE ) /* World */
-//GAME( 2002, mfish_5, mfish_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Multi Fish (021227)", GAME_SUPPORTS_SAVE ) /* World */
-//GAME( 2002, mfish_7, mfish_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Multi Fish (030511)", GAME_SUPPORTS_SAVE ) /* World */
-//GAME( 2002, mfish_9, mfish_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Multi Fish (031026)", GAME_SUPPORTS_SAVE ) /* World */
-//GAME( 2002, mfish_10, mfish_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Multi Fish (031117)", GAME_SUPPORTS_SAVE ) /* World */
-
-//GAME( 2003, crzmon, czmon_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Crazy Monkey (030217 World)", GAME_SUPPORTS_SAVE ) /* World */
-//GAME( 2003, czmon_2, czmon_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Crazy Monkey (030225 World)", GAME_SUPPORTS_SAVE ) /* World */
-//GAME( 2003, czmon_3, czmon_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Crazy Monkey (030227 World)", GAME_SUPPORTS_SAVE ) /* World */
-//GAME( 2003, czmon_4, czmon_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Crazy Monkey (030404 World)", GAME_SUPPORTS_SAVE ) /* World */
-//GAME( 2003, czmon_6, czmon_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Crazy Monkey (031016 World)", GAME_SUPPORTS_SAVE ) /* World */
-//GAME( 2003, czmon_10, czmon_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Crazy Monkey (081027 Lottery)", GAME_SUPPORTS_SAVE ) /* Lottery */
-//GAME( 2003, czmon_11, czmon_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Crazy Monkey (081113 Lottery)", GAME_SUPPORTS_SAVE ) /* Lottery */
-//GAME( 2003, czmon_12, czmon_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, crzmonent,ROT0, "Igrosoft", "Crazy Monkey (090711 Entertainment)", GAME_SUPPORTS_SAVE ) /* Entertainment */
-//GAME( 2003, czmon_14, czmon_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Crazy Monkey (100311 Lottery)", GAME_SUPPORTS_SAVE ) /* Lottery */
-
-//GAME( 2003, fcockt, fcockt_parent igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail (030505 World)", GAME_SUPPORTS_SAVE ) /* World */
-//GAME( 2003, fcockt_2, fcockt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail (030512 World)", GAME_SUPPORTS_SAVE ) /* World */
-//GAME( 2003, fcockt_4, fcockt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail (031028 World)", GAME_SUPPORTS_SAVE ) /* World */
-//GAME( 2003, fcockt_13, fcockt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail (081124 Lottery)", GAME_SUPPORTS_SAVE ) /* Lottery */
-
-//GAME( 2003, lhaunt, lhaunt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Lucky Haunter (030707 World)", GAME_SUPPORTS_SAVE ) /* World */
-//GAME( 2003, lhaunt_3, lhaunt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Lucky Haunter (031027 World)", GAME_SUPPORTS_SAVE ) /* World */
-//GAME( 2003, lhaunt_9, lhaunt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Lucky Haunter (081208 Lottery)", GAME_SUPPORTS_SAVE ) /* Lottery */
-
-//GAME( 2003, rollfr, rollfr_parent, rollfr, rollfr, driver_device, 0, ROT0, "Igrosoft", "Roll Fruit (030821)", GAME_SUPPORTS_SAVE ) /* World */
-
-//GAME( 2004, garage, garage_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Garage (040122 World)", GAME_SUPPORTS_SAVE ) /* World */
-//GAME( 2004, garage_2, garage_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Garage (040123 World)", GAME_SUPPORTS_SAVE ) /* World */
-//GAME( 2004, garage_3, garage_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Garage (040216 World)", GAME_SUPPORTS_SAVE ) /* World */
-//GAME( 2004, garage_8, garage_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Garage (081229 Lottery)", GAME_SUPPORTS_SAVE ) /* Lottery */
-
-//GAME( 2004, rclimb_2, rclimb_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Rock Climber (040823 World)", GAME_SUPPORTS_SAVE ) /* World */
-//GAME( 2004, rclimb_6, rclimb_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Rock Climber (090217 Lottery)", GAME_SUPPORTS_SAVE ) /* Lottery */
-
-//GAME( 2004, resdnt_4, resdnt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Resident (090129 Lottery)", GAME_SUPPORTS_SAVE ) /* Lottery */
+//GAME( 2002, mfish, mfish_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Multi Fish (021120)", MACHINE_SUPPORTS_SAVE ) /* World */
+//GAME( 2002, mfish_2, mfish_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Multi Fish (021121)", MACHINE_SUPPORTS_SAVE ) /* World */
+//GAME( 2002, mfish_4, mfish_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Multi Fish (021219)", MACHINE_SUPPORTS_SAVE ) /* World */
+//GAME( 2002, mfish_5, mfish_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Multi Fish (021227)", MACHINE_SUPPORTS_SAVE ) /* World */
+//GAME( 2002, mfish_7, mfish_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Multi Fish (030511)", MACHINE_SUPPORTS_SAVE ) /* World */
+//GAME( 2002, mfish_9, mfish_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Multi Fish (031026)", MACHINE_SUPPORTS_SAVE ) /* World */
+//GAME( 2002, mfish_10, mfish_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Multi Fish (031117)", MACHINE_SUPPORTS_SAVE ) /* World */
+
+//GAME( 2003, crzmon, czmon_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Crazy Monkey (030217 World)", MACHINE_SUPPORTS_SAVE ) /* World */
+//GAME( 2003, czmon_2, czmon_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Crazy Monkey (030225 World)", MACHINE_SUPPORTS_SAVE ) /* World */
+//GAME( 2003, czmon_3, czmon_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Crazy Monkey (030227 World)", MACHINE_SUPPORTS_SAVE ) /* World */
+//GAME( 2003, czmon_4, czmon_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Crazy Monkey (030404 World)", MACHINE_SUPPORTS_SAVE ) /* World */
+//GAME( 2003, czmon_6, czmon_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Crazy Monkey (031016 World)", MACHINE_SUPPORTS_SAVE ) /* World */
+//GAME( 2003, czmon_10, czmon_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Crazy Monkey (081027 Lottery)", MACHINE_SUPPORTS_SAVE ) /* Lottery */
+//GAME( 2003, czmon_11, czmon_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Crazy Monkey (081113 Lottery)", MACHINE_SUPPORTS_SAVE ) /* Lottery */
+//GAME( 2003, czmon_12, czmon_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, crzmonent,ROT0, "Igrosoft", "Crazy Monkey (090711 Entertainment)", MACHINE_SUPPORTS_SAVE ) /* Entertainment */
+//GAME( 2003, czmon_14, czmon_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Crazy Monkey (100311 Lottery)", MACHINE_SUPPORTS_SAVE ) /* Lottery */
+
+//GAME( 2003, fcockt, fcockt_parent igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail (030505 World)", MACHINE_SUPPORTS_SAVE ) /* World */
+//GAME( 2003, fcockt_2, fcockt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail (030512 World)", MACHINE_SUPPORTS_SAVE ) /* World */
+//GAME( 2003, fcockt_4, fcockt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail (031028 World)", MACHINE_SUPPORTS_SAVE ) /* World */
+//GAME( 2003, fcockt_13, fcockt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail (081124 Lottery)", MACHINE_SUPPORTS_SAVE ) /* Lottery */
+
+//GAME( 2003, lhaunt, lhaunt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Lucky Haunter (030707 World)", MACHINE_SUPPORTS_SAVE ) /* World */
+//GAME( 2003, lhaunt_3, lhaunt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Lucky Haunter (031027 World)", MACHINE_SUPPORTS_SAVE ) /* World */
+//GAME( 2003, lhaunt_9, lhaunt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Lucky Haunter (081208 Lottery)", MACHINE_SUPPORTS_SAVE ) /* Lottery */
+
+//GAME( 2003, rollfr, rollfr_parent, rollfr, rollfr, driver_device, 0, ROT0, "Igrosoft", "Roll Fruit (030821)", MACHINE_SUPPORTS_SAVE ) /* World */
+
+//GAME( 2004, garage, garage_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Garage (040122 World)", MACHINE_SUPPORTS_SAVE ) /* World */
+//GAME( 2004, garage_2, garage_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Garage (040123 World)", MACHINE_SUPPORTS_SAVE ) /* World */
+//GAME( 2004, garage_3, garage_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Garage (040216 World)", MACHINE_SUPPORTS_SAVE ) /* World */
+//GAME( 2004, garage_8, garage_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Garage (081229 Lottery)", MACHINE_SUPPORTS_SAVE ) /* Lottery */
+
+//GAME( 2004, rclimb_2, rclimb_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Rock Climber (040823 World)", MACHINE_SUPPORTS_SAVE ) /* World */
+//GAME( 2004, rclimb_6, rclimb_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Rock Climber (090217 Lottery)", MACHINE_SUPPORTS_SAVE ) /* Lottery */
+
+//GAME( 2004, resdnt_4, resdnt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Resident (090129 Lottery)", MACHINE_SUPPORTS_SAVE ) /* Lottery */
//GAME( 2004, resdnt_5, resdnt_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, resdntent,ROT0, "Igrosoft", "Resident (090722 Entertainment)", GANE_SUPPORTS_SAVE ) /* Entertainment */
-//GAME( 2004, resdnt_7, resdnt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Resident (100311 Lottery)", GAME_SUPPORTS_SAVE ) /* Lottery */
+//GAME( 2004, resdnt_7, resdnt_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Resident (100311 Lottery)", MACHINE_SUPPORTS_SAVE ) /* Lottery */
-//GAME( 2005, pirate, pirate_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Pirate (051229 World)", GAME_SUPPORTS_SAVE ) /* World */
+//GAME( 2005, pirate, pirate_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Pirate (051229 World)", MACHINE_SUPPORTS_SAVE ) /* World */
-//GAME( 2006, island2_2, island2_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Island 2 (061214 World)", GAME_SUPPORTS_SAVE ) /* World */
+//GAME( 2006, island2_2, island2_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Island 2 (061214 World)", MACHINE_SUPPORTS_SAVE ) /* World */
-//GAME( 2007, gnome_6, gnome_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, gnomel, ROT0, "Igrosoft", "Gnome (090604 Lottery)", GAME_SUPPORTS_SAVE ) /* Lottery */
-//GAME( 2007, gnome_8, gnome_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, gnomeent, ROT0, "Igrosoft", "Gnome (090810 Entertainment)", GAME_SUPPORTS_SAVE ) /* Entertainment */
+//GAME( 2007, gnome_6, gnome_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, gnomel, ROT0, "Igrosoft", "Gnome (090604 Lottery)", MACHINE_SUPPORTS_SAVE ) /* Lottery */
+//GAME( 2007, gnome_8, gnome_parent, igrosoft_gamble, igrosoft_gamble, igrosoft_gamble_state, gnomeent, ROT0, "Igrosoft", "Gnome (090810 Entertainment)", MACHINE_SUPPORTS_SAVE ) /* Entertainment */
-//GAME( 2008, fcockt2_2, fcockt2_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail 2 (080904 Russia)", GAME_SUPPORTS_SAVE ) /* Russia */
+//GAME( 2008, fcockt2_2, fcockt2_parent, igrosoft_gamble, igrosoft_gamble, driver_device, 0, ROT0, "Igrosoft", "Fruit Cocktail 2 (080904 Russia)", MACHINE_SUPPORTS_SAVE ) /* Russia */
#endif
diff --git a/src/mess/drivers/multi16.c b/src/mame/drivers/multi16.c
index 5c236215ff1..3e9722b990e 100644
--- a/src/mess/drivers/multi16.c
+++ b/src/mame/drivers/multi16.c
@@ -164,4 +164,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1986, multi16, 0, 0, multi16, multi16, driver_device, 0, "Mitsubishi", "Multi 16", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/multi8.c b/src/mame/drivers/multi8.c
index 78451473a99..d10ea348ea8 100644
--- a/src/mess/drivers/multi8.c
+++ b/src/mame/drivers/multi8.c
@@ -69,7 +69,6 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- DECLARE_PALETTE_INIT(multi8);
UINT32 screen_update_multi8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TIMER_DEVICE_CALLBACK_MEMBER(keyboard_callback);
void multi8_draw_pixel(bitmap_ind16 &bitmap,int y,int x,UINT8 pen,UINT8 width);
@@ -560,14 +559,6 @@ static GFXDECODE_START( multi8 )
GFXDECODE_END
-PALETTE_INIT_MEMBER(multi8_state, multi8)
-{
- UINT8 i;
-
- for(i=0; i<8; i++)
- palette.set_pen_color(i, pal1bit(i >> 1),pal1bit(i >> 2),pal1bit(i >> 0));
-}
-
READ8_MEMBER( multi8_state::porta_r )
{
int vsync = (ioport("VBLANK")->read() & 0x1) << 5;
@@ -638,8 +629,7 @@ static MACHINE_CONFIG_START( multi8, multi8_state )
MCFG_SCREEN_UPDATE_DRIVER(multi8_state, screen_update_multi8)
MCFG_SCREEN_PALETTE("palette")
- MCFG_PALETTE_ADD("palette", 8)
- MCFG_PALETTE_INIT_OWNER(multi8_state, multi8)
+ MCFG_PALETTE_ADD_3BIT_BRG("palette")
MCFG_GFXDECODE_ADD("gfxdecode", "palette", multi8)
/* Audio */
@@ -688,4 +678,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1983, multi8, 0, 0, multi8, multi8, driver_device, 0, "Mitsubishi", "Multi 8", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/munchmo.c b/src/mame/drivers/munchmo.c
index 9467604394f..86d5c2e0669 100644
--- a/src/mame/drivers/munchmo.c
+++ b/src/mame/drivers/munchmo.c
@@ -423,5 +423,5 @@ ROM_END
*
*************************************/
-GAME( 1983, joyfulr, 0, mnchmobl, mnchmobl, driver_device, 0, ROT270, "SNK", "Joyful Road (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1983, mnchmobl, joyfulr, mnchmobl, mnchmobl, driver_device, 0, ROT270, "SNK (Centuri license)", "Munch Mobile (US)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/murogem.c b/src/mame/drivers/murogem.c
index b961c525371..3df8476b7d4 100644
--- a/src/mame/drivers/murogem.c
+++ b/src/mame/drivers/murogem.c
@@ -328,7 +328,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, "<unknown>", "Muroge Monaco (set 1)", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
-GAME( 198?, murogema, murogem, murogem, murogem, driver_device, 0, ROT0, "<unknown>", "Muroge Monaco (set 2)", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
-GAME( 198?, murogemb, murogem, murogem, murogem, driver_device, 0, ROT0, "<unknown>", "Muroge Monaco (set 3)", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
-GAME( 198?, lasvegas, murogem, murogem, murogem, driver_device, 0, ROT0, "hack", "Las Vegas, Nevada", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
+GAME( 198?, murogem, 0, murogem, murogem, driver_device, 0, ROT0, "<unknown>", "Muroge Monaco (set 1)", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE )
+GAME( 198?, murogema, murogem, murogem, murogem, driver_device, 0, ROT0, "<unknown>", "Muroge Monaco (set 2)", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE )
+GAME( 198?, murogemb, murogem, murogem, murogem, driver_device, 0, ROT0, "<unknown>", "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 )
diff --git a/src/mame/drivers/murogmbl.c b/src/mame/drivers/murogmbl.c
index 516bd7d25a0..ff8cecd482f 100644
--- a/src/mame/drivers/murogmbl.c
+++ b/src/mame/drivers/murogmbl.c
@@ -230,4 +230,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?)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1982, murogmbl, murogem, murogmbl, murogmbl, driver_device, 0, ROT0, "bootleg?", "Muroge Monaco (bootleg?)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/mustache.c b/src/mame/drivers/mustache.c
index 03d3c02a017..b5c2d31db76 100644
--- a/src/mame/drivers/mustache.c
+++ b/src/mame/drivers/mustache.c
@@ -279,4 +279,4 @@ DRIVER_INIT_MEMBER(mustache_state,mustache)
}
-GAME( 1987, mustache, 0, mustache, mustache, mustache_state, mustache, ROT90, "Seibu Kaihatsu (March license)", "Mustache Boy", GAME_SUPPORTS_SAVE )
+GAME( 1987, mustache, 0, mustache, mustache, mustache_state, mustache, ROT90, "Seibu Kaihatsu (March license)", "Mustache Boy", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/mvme350.c b/src/mame/drivers/mvme350.c
new file mode 100644
index 00000000000..62bf38926d3
--- /dev/null
+++ b/src/mame/drivers/mvme350.c
@@ -0,0 +1,257 @@
+// license:BSD-3-Clause
+// copyright-holders:Joakim Larsson Edstrom
+/***************************************************************************
+ *
+ * Motorola MVME-350 6U Intelligent Tape Controller driver, initially derived
+ * from hk68v10.c
+ *
+ * 31/08/2015
+ *
+ * I baught this board from http://www.retrotechnology.com without documentation.
+ * It has a Motorola 68010 CPU @ 10MHz, 128 Mb RAM and two 2764 EPROMS with
+ * QIC-02 tape controller firmware. The board also populates a 68230 PIT and loads
+ * of descrete TTL components.
+ *
+ *
+ * ||
+ * || ||
+ * ||||--||
+ * ||||--||
+ * || ||__________________________________________________________ ___
+ * ||_______________________________________________________ |_| |
+ * || |74F74 | xxxxx | xxxxx | 74LS245 | 74ALS645| | | |
+ * || |______|________|_________|___________| ________| | | |
+ * || |74F74 | xxxxx | xxxxx | 74LS245 | 74ALS645| | | |
+ * || |______|________|_________|___________| ________| | | |
+ * || |74LS02| 74LS08||Am25LS251| 74S38 |74LS20|Jumpers | | |
+ * || |______|_______||_________|_______|______|______| | |VME|
+ * || |74F04 | 74LS32||74LS374 | 74LS374 |74S244 | | | |
+ * ||+---+ |______|_______||_________|___________|_________| | |P1 |
+ * |||CON| |74F04 | 74LS85||74S244 | 74S240 |PAL | | | |
+ * ||| | |______|_______||_________|___________|_________| | | |
+ * ||| | |74LS04| | |74S244 | | | |
+ * ||| | |______| | PIT |_________| | | |
+ * ||| | |74LS125 | MC68230L10 |74LS145 | | | |
+ * ||| | |______| __|_______________________|---------| | | |
+ * ||| | |74LS74| |25LS251 | | RAM |74S244 | |_| |
+ * ||+---+ ---------- |---------- | HM6264P-12 |---------| |___|
+ * || | PAL | | 74245 | |______________|74S244 | |
+ * || +--------- |_________| | U40 27128 |---------| |
+ * || | 74F32 | | || System ROM |74LS682 | |
+ * Red || +-------- | CPU || |-+-------| |
+ * FAIL ||LED | 74F138| | MC68010 |+--------------+ |DIPSW__| |
+ * Red || +-------- | || RAM | |74S38 | |
+ * HALT ||LED | 74F32 | |__________|| HM6264P-12 | |______ | |
+ * Green || +-------+ |74245 |+--------------+ |74F08 | |
+ * RUN ||LED |XTAL | |__________|| U47 27128 | |______ | |___
+ * ||+---+|20MHz | |74244 || System ROM | |74F00 | _| |
+ * |||CON|--------+___|__________|+--------------+_|_______| | | |
+ * ||| |74LS08 |74F74 |74LS148| |PAL | | PAL | | | |
+ * ||| |________|________|_______| |________|_|_________| | | |
+ * ||| | 74LS138|74F32 | PAL | |74F74 |Am29823 | | | |
+ * ||| |________|________|_______| |________|-+---------| | |VME|
+ * ||| | 74LS11 |74F04 |74LS374| |74LS374 | |74S240 | | | |
+ * ||| |________|________|_______| |________|_|---------| | |P2 |
+ * ||| | 74F138 |BLANK |74LS374| |74LS374 |74S240 | | | |
+ * ||| |________|________|_______| +----------+---------| | | |
+ * ||| | 74LS08 |74F32 |74LS11|74LS393|74LS393|resistors | | |
+ * ||| |________|________|______|______ |_______|________| | | |
+ * ||| |DM2585 |74F74 |DM2230| 74LS00| 74F02 |74F32 | | | |
+ * ||+---+--------+--------+------+-------+---------+------| | | |
+ * || |74LS74 |74F20 |74S260| 74S74 | 74F08 |74LS02| | | |
+ * || +------------------------------------------+------| | | |
+ * || |DM2353 |74F10 |74F32 | 74LS32| 74F08 |DM2353| |_| |
+ * || +------------------------------------------+------+-+ |___|
+ * || ||------------------------------------------------------------+-+
+ * ||||--||
+ * ||||--||
+ * ||
+ *
+ * History of Motorola VME division (https://en.wikipedia.org/wiki/VMEbus)
+ *---------------------------------
+ * When Motorola released the 68000 processor 1979 the ambition of the deisgners
+ * was also to standardize a versatile CPU bus to be able to build computer
+ * systems without constructing PCB:s from scratch. This become VersaBus but the
+ * boards was really too big and the computer world already saw the systems shrink
+ * in size. Motorola's design center in Munich proposed to use the smaller and
+ * already used Euroboard form factor and call it Versabus-E. This later became
+ * VME which was standardized in the VITA organization 1981
+ *
+ * Misc links about Motorola VME division and this board:
+ * http://bitsavers.trailing-edge.com/pdf/motorola/_dataBooks/1987_Microcomputer_Systems_and_Components.pdf
+ *
+ * Description
+ * ------------
+ * Streaming Tape Controller released 1984 with the following feature set
+ *
+ * - Double High (6U) VMEmodule
+ * - QIC-02 Streaming Tape Interface
+ * - Supports One 01C-02 compatible 1/4-inch Streaming Tape Drive
+ * - Standard VMEbus Interface
+ * - Supports 24- or 32-bit DMA Addressing/16-bit Data
+ * - Generates Seven Levels of VMEbus Interrupts with Programmable Interrupt Vector
+ * - 10 MHz MC68010 Microprocessor
+ * - 90Kb/s Continuous Transfer Rate for QIC-02 Interface, 200Kb/s Burst rate
+ * - Controls Tape Cartridges Offering 20Mb, 45Mb and 60Mb of Formatted Data Storage
+ * - MC68230 PIT-based Timer
+ * - 16Kb of Static RAM Provides Buffer Storage and CPU Workspace
+ * - Multitasking Kernel-based Firmware Package
+ * - Buffered Pipe Communication Protocol Allows Multiple Hosts to Oueue Commands Without Interlock
+ * - High Level Command/Status Packets offer efficient Operating System Support
+ * - Permits Chaining of Host Command
+ *
+ * Address Map
+ * --------------------------------------------------------------------------
+ * Local to VME Decscription
+ * --------------------------------------------------------------------------
+ * 0x000000 Up to 128Kb System ROM with RESET vector
+ * 0x020000 RAM with vectors
+ * 0x020500 RAM Top of stack
+ * 0x040000 PIT device?
+ * 0x060000 RAM?
+ * 0x080000 PIT device?
+ * --------------------------------------------------------------------------
+ *
+ * Interrupt sources MVME
+ * ----------------------------------------------------------
+ * Description Device Lvl IRQ VME board
+ * /Board Vector Address
+ * ----------------------------------------------------------
+ * On board Sources
+ *
+ * Off board Sources (other VME boards)
+ *
+ * ----------------------------------------------------------
+ *
+ * DMAC Channel Assignments
+ * ----------------------------------------------------------
+ * Channel M10 V10
+ * ----------------------------------------------------------
+ *
+ *
+ * TODO:
+ * - Dump the ROMs (DONE)
+ * - Setup a working address map (STARTED)
+ * - Get documentation for VME interface
+ * - Add VME bus driver
+ * - Hook up a CPU board that supports boot from tape (ie MVME-162, MVME 147)
+ * - Get a tape file with a bootable data on it.
+ *
+ ****************************************************************************/
+
+#include "emu.h"
+#include "cpu/m68000/m68000.h"
+#include "machine/68230pit.h"
+
+#define LOG(x) x
+
+class mvme350_state : public driver_device
+{
+public:
+mvme350_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device (mconfig, type, tag),
+ m_maincpu (*this, "maincpu"),
+ m_pit(*this, "pit")
+{
+}
+
+DECLARE_READ16_MEMBER (vme_a24_r);
+DECLARE_WRITE16_MEMBER (vme_a24_w);
+DECLARE_READ16_MEMBER (vme_a16_r);
+DECLARE_WRITE16_MEMBER (vme_a16_w);
+virtual void machine_start ();
+virtual void machine_reset ();
+protected:
+
+private:
+ required_device<cpu_device> m_maincpu;
+ required_device<pit68230_device> m_pit;
+
+};
+
+static ADDRESS_MAP_START (mvme350_mem, AS_PROGRAM, 16, mvme350_state)
+ADDRESS_MAP_UNMAP_HIGH
+ AM_RANGE (0x000000, 0x01ffff) AM_ROM /* 128 Mb ROM */
+ AM_RANGE (0x020000, 0x03ffff) AM_RAM /* 128 Mb RAM */
+#if 1
+ AM_RANGE(0x040000, 0x040035) AM_DEVREADWRITE8("pit", pit68230_device, read, write, 0x00ff) /* PIT ?*/
+ AM_RANGE(0x060000, 0x06001f) AM_RAM /* Area is cleared on start */
+ AM_RANGE(0x080000, 0x080035) AM_DEVREADWRITE8("pit", pit68230_device, read, write, 0x00ff) /* PIT ?*/
+#endif
+//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 */
+ADDRESS_MAP_END
+
+/* Input ports */
+static INPUT_PORTS_START (mvme350)
+INPUT_PORTS_END
+
+/* Start it up */
+void mvme350_state::machine_start ()
+{
+ LOG (logerror ("machine_start\n"));
+}
+
+void mvme350_state::machine_reset ()
+{
+ LOG (logerror ("machine_reset\n"));
+}
+
+#if 0
+/* Dummy VME access methods until the VME bus device is ready for use */
+READ16_MEMBER (mvme350_state::vme_a24_r){
+ LOG (logerror ("vme_a24_r\n"));
+ return (UINT16) 0;
+}
+
+WRITE16_MEMBER (mvme350_state::vme_a24_w){
+ LOG (logerror ("vme_a24_w\n"));
+}
+
+READ16_MEMBER (mvme350_state::vme_a16_r){
+ LOG (logerror ("vme_16_r\n"));
+ return (UINT16) 0;
+}
+
+WRITE16_MEMBER (mvme350_state::vme_a16_w){
+ LOG (logerror ("vme_a16_w\n"));
+}
+#endif
+
+/*
+ * Machine configuration
+ */
+static MACHINE_CONFIG_START (mvme350, mvme350_state)
+ /* basic machine hardware */
+ MCFG_CPU_ADD ("maincpu", M68010, XTAL_10MHz)
+ MCFG_CPU_PROGRAM_MAP (mvme350_mem)
+ /* PIT Parallel Interface and Timer device, assuming strapped for on board clock */
+ MCFG_DEVICE_ADD("pit", PIT68230, XTAL_16MHz / 2)
+
+MACHINE_CONFIG_END
+
+/* ROM definitions */
+ROM_START (mvme350)
+ROM_REGION (0x1000000, "maincpu", 0)
+
+ROM_LOAD16_BYTE ("mvme350U40v2.3.bin", 0x0000, 0x4000, CRC (bcef82ef) SHA1 (e6fdf26e4714cbaeb3e97d7b5acf02d64d8ad744))
+ROM_LOAD16_BYTE ("mvme350U47v2.3.bin", 0x0001, 0x4000, CRC (582ce095) SHA1 (d0929dbfeb0cfda63df6b5bc29ee27fbf665def7))
+
+/*
+ * System ROM information
+ *
+ * The ROMs known commands from different sources:
+ *
+ * It communicates with the master through data buffers in shared memory and VME bus interrupts
+ * as desribed in
+ * http://bitsavers.trailing-edge.com/pdf/motorola/_dataBooks/1987_Microcomputer_Systems_and_Components.pdf
+ *
+ * The board is pretty boring as stand alone, it initializes everything and then executes a STOP instruction
+ * awaiting a CPU on the VME bus to request its services. However, it enables boot from tape devices, we just
+ * need a MVME-131 and a dump of a VersaDOS or Motorola UNIX System V system tape and some work.
+ */
+ROM_END
+
+/* Driver */
+/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
+COMP (1984, mvme350, 0, 0, mvme350, mvme350, driver_device, 0, "Motorola", "MVME-350", MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER )
diff --git a/src/mame/drivers/mw18w.c b/src/mame/drivers/mw18w.c
index 0ae69fdf511..edeca7e1a22 100644
--- a/src/mame/drivers/mw18w.c
+++ b/src/mame/drivers/mw18w.c
@@ -303,5 +303,5 @@ ROM_START( 18w2 )
ROM_END
-GAMEL( 1979, 18w, 0, mw18w, mw18w, driver_device, 0, ROT0, "Midway", "18 Wheeler (set 1)", GAME_NO_SOUND | GAME_NOT_WORKING | GAME_MECHANICAL, layout_18w )
-GAMEL( 1979, 18w2, 18w, mw18w, mw18w, driver_device, 0, ROT0, "Midway", "18 Wheeler (set 2)", GAME_NO_SOUND | GAME_NOT_WORKING | GAME_MECHANICAL, layout_18w )
+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 )
diff --git a/src/mame/drivers/mw8080bw.c b/src/mame/drivers/mw8080bw.c
index 10502958df5..3ad0b5a7adf 100644
--- a/src/mame/drivers/mw8080bw.c
+++ b/src/mame/drivers/mw8080bw.c
@@ -3155,34 +3155,34 @@ ROM_END
/* PCB # 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)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_seawolf )
-/* 596 */ GAMEL(1976, seawolfo, seawolf, seawolf, seawolf, driver_device, 0, ROT0, "Dave Nutting Associates / Midway", "Sea Wolf (set 2)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_seawolf )
-/* 597 */ GAMEL(1975, gunfight, 0, gunfight, gunfight, driver_device, 0, ROT0, "Dave Nutting Associates / Midway", "Gun Fight (set 1)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_gunfight )
-/* 597 */ GAMEL(1975, gunfighto,gunfight, gunfight, gunfight, driver_device, 0, ROT0, "Dave Nutting Associates / Midway", "Gun Fight (set 2)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_gunfight )
+/* 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 )
/* 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", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-/* 610 */ GAMEL(1976, 280zzzap, 0, zzzap, zzzap, driver_device, 0, ROT0, "Dave Nutting Associates / Midway", "280-ZZZAP", GAME_NO_SOUND | GAME_SUPPORTS_SAVE, layout_280zzzap )
-/* 611 */ GAMEL(1976, maze, 0, maze, maze, driver_device, 0, ROT0, "Midway", "Amazing Maze", GAME_SUPPORTS_SAVE, layout_maze )
-/* 612 */ GAME( 1977, boothill, 0, boothill, boothill, driver_device, 0, ROT0, "Dave Nutting Associates / Midway", "Boot Hill", GAME_SUPPORTS_SAVE )
-/* 615 */ GAME( 1977, checkmat, 0, checkmat, checkmat, driver_device, 0, ROT0, "Dave Nutting Associates / Midway", "Checkmate", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-/* 618 */ GAME( 1977, desertgu, 0, desertgu, desertgu, driver_device, 0, ROT0, "Dave Nutting Associates / Midway", "Desert Gun", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-/* 618 */ GAME( 1977, roadrunm, desertgu, desertgu, desertgu, driver_device, 0, ROT0, "Midway", "Road Runner (Midway)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-/* 619 */ GAME( 1977, dplay, 0, dplay, dplay, driver_device, 0, ROT0, "Midway", "Double Play", GAME_SUPPORTS_SAVE )
-/* 622 */ GAMEL(1977, lagunar, 0, zzzap, lagunar, driver_device, 0, ROT90, "Midway", "Laguna Racer", GAME_NO_SOUND | GAME_SUPPORTS_SAVE, layout_lagunar )
-/* 623 */ GAME( 1977, gmissile, 0, gmissile, gmissile, driver_device, 0, ROT0, "Midway", "Guided Missile", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-/* 626 */ GAME( 1977, m4, 0, m4, m4, driver_device, 0, ROT0, "Midway", "M-4", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-/* 630 */ GAMEL(1978, clowns, 0, clowns, clowns, driver_device, 0, ROT0, "Midway", "Clowns (rev. 2)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_clowns )
-/* 630 */ GAMEL(1978, clowns1, clowns, clowns, clowns1, driver_device, 0, ROT0, "Midway", "Clowns (rev. 1)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_clowns )
-/* 640 */ GAMEL(1978, spacwalk, 0, spacwalk, spacwalk, driver_device, 0, ROT0, "Midway", "Space Walk", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_spacwalk )
-/* 642 */ GAME( 1978, einning, 0, dplay, einning, driver_device, 0, ROT0, "Midway / Taito", "Extra Inning / Ball Park II", GAME_SUPPORTS_SAVE )
-/* 643 */ GAME( 1978, shuffle, 0, shuffle, shuffle, driver_device, 0, ROT90, "Midway", "Shuffleboard", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-/* 644 */ GAME( 1977, dogpatch, 0, dogpatch, dogpatch, driver_device, 0, ROT0, "Midway", "Dog Patch", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-/* 645 */ GAMEL(1980, spcenctr, 0, spcenctr, spcenctr, driver_device, 0, ROT0, "Midway", "Space Encounters", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_spcenctr )
-/* 652 */ GAMEL(1979, phantom2, 0, phantom2, phantom2, driver_device, 0, ROT0, "Midway", "Phantom II", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_phantom2 )
-/* 730 */ GAME( 1978, bowler, 0, bowler, bowler, driver_device, 0, ROT90, "Midway", "Bowling Alley", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-/* 739 */ GAMEL(1978, invaders, 0, invaders, invaders, driver_device, 0, ROT270, "Taito / Midway", "Space Invaders / Space Invaders M", GAME_SUPPORTS_SAVE, layout_invaders )
-/* 742 */ GAME( 1978, blueshrk, 0, blueshrk, blueshrk, driver_device, 0, ROT0, "Midway", "Blue Shark", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+/* 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 )
/* 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)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_invad2ct )
+/* 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 )
/* 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.c b/src/mame/drivers/mwarr.c
index 5da08157aa8..aff1fae0552 100644
--- a/src/mame/drivers/mwarr.c
+++ b/src/mame/drivers/mwarr.c
@@ -78,7 +78,6 @@ public:
required_shared_ptr<UINT16> m_mhigh_scrollram;
required_shared_ptr<UINT16> m_vidattrram;
required_shared_ptr<UINT16> m_spriteram;
-// UINT16 *m_paletteram; // currently this uses generic palette handling
required_shared_ptr<UINT16> m_mwarr_ram;
/* video-related */
@@ -654,4 +653,4 @@ ROM_END
*
*************************************/
-GAME( 199?, mwarr, 0, mwarr, mwarr, driver_device, 0, ROT0, "Elettronica Video-Games S.R.L.", "Mighty Warriors", GAME_SUPPORTS_SAVE )
+GAME( 199?, mwarr, 0, mwarr, mwarr, driver_device, 0, ROT0, "Elettronica Video-Games S.R.L.", "Mighty Warriors", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/mwsub.c b/src/mame/drivers/mwsub.c
index a4c3b90dc2c..0dd9e3aed4a 100644
--- a/src/mame/drivers/mwsub.c
+++ b/src/mame/drivers/mwsub.c
@@ -224,4 +224,4 @@ ROM_START( submar )
ROM_END
-GAMEL( 1979, submar, 0, submar, submar, driver_device, 0, ROT0, "Midway", "Submarine (Midway)", GAME_NO_SOUND | GAME_NOT_WORKING | GAME_MECHANICAL, layout_submar )
+GAMEL( 1979, submar, 0, submar, submar, driver_device, 0, ROT0, "Midway", "Submarine (Midway)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_MECHANICAL, layout_submar )
diff --git a/src/mess/drivers/mx2178.c b/src/mame/drivers/mx2178.c
index 3a51bf03407..a1fc4fb1a22 100644
--- a/src/mess/drivers/mx2178.c
+++ b/src/mame/drivers/mx2178.c
@@ -201,4 +201,4 @@ 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", GAME_IS_SKELETON )
+COMP( 1984, mx2178, 0, 0, mx2178, mx2178, driver_device, 0, "Memorex", "Memorex 2178", MACHINE_IS_SKELETON )
diff --git a/src/mess/drivers/myb3k.c b/src/mame/drivers/myb3k.c
index 0d467cbdfe1..96677868c1e 100644
--- a/src/mess/drivers/myb3k.c
+++ b/src/mame/drivers/myb3k.c
@@ -283,4 +283,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1982, myb3k, 0, 0, myb3k, myb3k, driver_device, 0, "Panasonic", "MyBrain 3000", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/mycom.c b/src/mame/drivers/mycom.c
index c90bc44c2a6..be3978d2ddf 100644
--- a/src/mess/drivers/mycom.c
+++ b/src/mame/drivers/mycom.c
@@ -552,7 +552,9 @@ static MACHINE_CONFIG_START( mycom, mycom_state )
MCFG_CASSETTE_ADD( "cassette" )
MCFG_FD1771_ADD("fdc", XTAL_16MHz / 16)
MCFG_FLOPPY_DRIVE_ADD("fdc:0", mycom_floppies, "525sd", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", mycom_floppies, "525sd", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_TIMER_DRIVER_ADD_PERIODIC("keyboard_timer", mycom_state, mycom_kbd, attotime::from_hz(20))
MACHINE_CONFIG_END
@@ -580,4 +582,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND )
+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.c b/src/mame/drivers/mystston.c
index a7ec18fa450..abe70753f9c 100644
--- a/src/mame/drivers/mystston.c
+++ b/src/mame/drivers/mystston.c
@@ -318,6 +318,6 @@ ROM_END
*
*************************************/
-GAME( 1984, mystston, 0, mystston, mystston, driver_device, 0, ROT270, "Technos Japan", "Mysterious Stones - Dr. John's Adventure", GAME_SUPPORTS_SAVE )
-GAME( 1984, myststono,mystston, mystston, mystston, driver_device, 0, ROT270, "Technos Japan", "Mysterious Stones - Dr. Kick in Adventure", GAME_SUPPORTS_SAVE )
-GAME( 1984, myststonoi,mystston, mystston, mystston, driver_device, 0, ROT270, "Technos Japan", "Mysterious Stones - Dr. Kick in Adventure (Itisa PCB)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/mystwarr.c b/src/mame/drivers/mystwarr.c
index fd5b28a5f7a..8e8632c9e1b 100644
--- a/src/mame/drivers/mystwarr.c
+++ b/src/mame/drivers/mystwarr.c
@@ -2138,33 +2138,33 @@ ROM_START( dadandrn )
ROM_END
/* ROM parent machine inp init */
-GAME( 1993, mystwarr, 0, mystwarr, mystwarr, driver_device, 0, ROT0, "Konami", "Mystic Warriors (ver EAA)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1993, mystwarru, mystwarr, mystwarr, mystwarr, driver_device, 0, ROT0, "Konami", "Mystic Warriors (ver UAA)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1993, mystwarrj, mystwarr, mystwarr, mystwarr, driver_device, 0, ROT0, "Konami", "Mystic Warriors (ver JAA)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1993, mystwarra, mystwarr, mystwarr, mystwarr, driver_device, 0, ROT0, "Konami", "Mystic Warriors (ver AAA)", GAME_IMPERFECT_GRAPHICS )
-
-GAME( 1993, mmaulers, 0, dadandrn, dadandrn, driver_device, 0, ROT0, "Konami", "Monster Maulers (ver EAA)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1993, dadandrn, mmaulers, dadandrn, dadandrn, driver_device, 0, ROT0, "Konami", "Kyukyoku Sentai Dadandarn (ver JAA)", GAME_IMPERFECT_GRAPHICS )
-
-GAME( 1993, viostorm, 0, viostorm, viostorm, driver_device, 0, ROT0, "Konami", "Violent Storm (ver EAC)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1993, viostormeb, viostorm, viostorm, viostorm, driver_device, 0, ROT0, "Konami", "Violent Storm (ver EAB)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1993, viostormu, viostorm, viostorm, viostorm, driver_device, 0, ROT0, "Konami", "Violent Storm (ver UAC)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1993, viostormub, viostorm, viostorm, viostorm, driver_device, 0, ROT0, "Konami", "Violent Storm (ver UAB)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1993, viostormj, viostorm, viostorm, viostorm, driver_device, 0, ROT0, "Konami", "Violent Storm (ver JAC)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1993, viostorma, viostorm, viostorm, viostorm, driver_device, 0, ROT0, "Konami", "Violent Storm (ver AAC)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1993, viostormab, viostorm, viostorm, viostorm, driver_device, 0, ROT0, "Konami", "Violent Storm (ver AAB)", GAME_IMPERFECT_GRAPHICS )
-
-GAME( 1993, metamrph, 0, metamrph, metamrph, driver_device, 0, ROT0, "Konami", "Metamorphic Force (ver EAA)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1993, metamrphu, metamrph, metamrph, metamrph, driver_device, 0, ROT0, "Konami", "Metamorphic Force (ver UAA)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1993, metamrphj, metamrph, metamrph, metamrph, driver_device, 0, ROT0, "Konami", "Metamorphic Force (ver JAA)", GAME_IMPERFECT_GRAPHICS )
-
-GAME( 1993, mtlchamp, 0, martchmp, martchmp, driver_device, 0, ROT0, "Konami", "Martial Champion (ver EAB)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1993, mtlchamp1, mtlchamp, martchmp, martchmp, driver_device, 0, ROT0, "Konami", "Martial Champion (ver EAA)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1993, mtlchampu, mtlchamp, martchmp, martchmp, driver_device, 0, ROT0, "Konami", "Martial Champion (ver UAE)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1993, mtlchampu1, mtlchamp, martchmp, martchmp, driver_device, 0, ROT0, "Konami", "Martial Champion (ver UAD)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1993, mtlchampj, mtlchamp, martchmp, martchmp, driver_device, 0, ROT0, "Konami", "Martial Champion (ver JAA)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1993, mtlchampa, mtlchamp, martchmp, martchmp, driver_device, 0, ROT0, "Konami", "Martial Champion (ver AAA)", GAME_IMPERFECT_GRAPHICS )
-
-GAME( 1993, gaiapols, 0, gaiapols, dadandrn, driver_device, 0, ROT90, "Konami", "Gaiapolis (ver EAF)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1993, gaiapolsu, gaiapols, gaiapols, dadandrn, driver_device, 0, ROT90, "Konami", "Gaiapolis (ver UAF)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1993, gaiapolsj, gaiapols, gaiapols, dadandrn, driver_device, 0, ROT90, "Konami", "Gaiapolis (ver JAF)", GAME_IMPERFECT_GRAPHICS )
+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 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, 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, 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 )
diff --git a/src/mess/drivers/myvision.c b/src/mame/drivers/myvision.c
index 5881ebf8389..5881ebf8389 100644
--- a/src/mess/drivers/myvision.c
+++ b/src/mame/drivers/myvision.c
diff --git a/src/mess/drivers/mz2000.c b/src/mame/drivers/mz2000.c
index f12c3e309b1..1fa43c6fcd6 100644
--- a/src/mess/drivers/mz2000.c
+++ b/src/mame/drivers/mz2000.c
@@ -586,20 +586,6 @@ void mz2000_state::machine_reset()
m_color_mode = m_io_config->read() & 1;
m_has_fdc = (m_io_config->read() & 2) >> 1;
m_hi_mode = (m_io_config->read() & 4) >> 2;
-
- {
- int i;
- int r,g,b;
-
- for(i=0;i<8;i++)
- {
- r = (m_color_mode) ? (i & 2)>>1 : 0;
- g = (m_color_mode) ? (i & 4)>>2 : ((i) ? 1 : 0);
- b = (m_color_mode) ? (i & 1)>>0 : 0;
-
- m_palette->set_pen_color(i,pal1bit(r),pal1bit(g),pal1bit(b));
- }
- }
}
@@ -859,7 +845,7 @@ static MACHINE_CONFIG_START( mz2000, mz2000_state )
MCFG_SCREEN_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", "palette", mz2000)
- MCFG_PALETTE_ADD("palette", 8)
+ MCFG_PALETTE_ADD_3BIT_BRG("palette")
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -918,5 +904,5 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 1982, mz2000, mz80b, 0, mz2000, mz2000, driver_device, 0, "Sharp", "MZ-2000", GAME_NOT_WORKING )
-COMP( 1982, mz2200, mz80b, 0, mz2000, mz2000, driver_device, 0, "Sharp", "MZ-2200", GAME_NOT_WORKING )
+COMP( 1982, mz2000, mz80b, 0, mz2000, mz2000, driver_device, 0, "Sharp", "MZ-2000", MACHINE_NOT_WORKING )
+COMP( 1982, mz2200, mz80b, 0, mz2000, mz2000, driver_device, 0, "Sharp", "MZ-2200", MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/mz2500.c b/src/mame/drivers/mz2500.c
index 6d904bd5bbd..9e30a8c2ac5 100644
--- a/src/mess/drivers/mz2500.c
+++ b/src/mame/drivers/mz2500.c
@@ -729,7 +729,7 @@ void mz2500_state::mz2500_reconfigure_screen()
//popmessage("%d %d %d %d %02x",vs,ve,hs,he,m_cg_reg[0x0e]);
- machine().first_screen()->configure(720, 480, visarea, machine().first_screen()->frame_period().attoseconds);
+ machine().first_screen()->configure(720, 480, visarea, machine().first_screen()->frame_period().attoseconds());
/* calculate CG window parameters here */
m_cg_vs = (m_cg_reg[0x08]) | ((m_cg_reg[0x09]<<8) & 1);
@@ -2197,5 +2197,5 @@ ROM_END
/* Driver */
-COMP( 1985, mz2500, 0, 0, mz2500, mz2500, driver_device, 0, "Sharp", "MZ-2500", GAME_IMPERFECT_GRAPHICS )
-COMP( 1985, mz2520, mz2500, 0, mz2500, mz2500, driver_device, 0, "Sharp", "MZ-2520", GAME_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, 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
diff --git a/src/mess/drivers/mz3500.c b/src/mame/drivers/mz3500.c
index 311fd42616b..8a5828e0401 100644
--- a/src/mess/drivers/mz3500.c
+++ b/src/mame/drivers/mz3500.c
@@ -98,7 +98,6 @@ public:
// screen updates
UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
- DECLARE_PALETTE_INIT(mz3500);
UPD7220_DISPLAY_PIXELS_MEMBER( hgdc_display_pixels );
UPD7220_DRAW_TEXT_LINE_MEMBER( hgdc_draw_text );
@@ -786,16 +785,6 @@ void mz3500_state::machine_reset()
}
-
-PALETTE_INIT_MEMBER(mz3500_state, mz3500)
-{
- int i;
-
- for(i=0;i<8;i++)
- palette.set_pen_color(i,pal1bit((i >> 1) & 1),pal1bit(i >> 2),pal1bit((i >> 0) & 1));
-
-}
-
static ADDRESS_MAP_START( upd7220_1_map, AS_0, 16, mz3500_state )
ADDRESS_MAP_GLOBAL_MASK(0x1fff)
AM_RANGE(0x00000, 0x00fff) AM_RAM AM_SHARE("video_ram")
@@ -854,8 +843,7 @@ static MACHINE_CONFIG_START( mz3500, mz3500_state )
MCFG_GFXDECODE_ADD("gfxdecode", "palette", mz3500)
- MCFG_PALETTE_ADD("palette", 8)
- MCFG_PALETTE_INIT_OWNER(mz3500_state, mz3500)
+ MCFG_PALETTE_ADD_3BIT_BRG("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -882,4 +870,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", GAME_IS_SKELETON )
+COMP( 198?, mz3500, 0, 0, mz3500, mz3500, driver_device, 0, "Sharp", "MZ-3500", MACHINE_IS_SKELETON )
diff --git a/src/mess/drivers/mz6500.c b/src/mame/drivers/mz6500.c
index af138d8b64b..31e9a2ee917 100644
--- a/src/mess/drivers/mz6500.c
+++ b/src/mame/drivers/mz6500.c
@@ -177,4 +177,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 198?, mz6500, 0, 0, mz6500, mz6500, driver_device, 0, "Sharp", "MZ-6500", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/mz700.c b/src/mame/drivers/mz700.c
index 94666bbf942..4039da71e14 100644
--- a/src/mess/drivers/mz700.c
+++ b/src/mame/drivers/mz700.c
@@ -452,5 +452,5 @@ ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
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", GAME_NOT_WORKING )
-COMP( 1984, mz1500, 0, 0, mz800, mz800, mz_state, mz800, "Sharp", "MZ-1500", GAME_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/mess/drivers/mz80.c b/src/mame/drivers/mz80.c
index 3531471e896..0bd1f92b71a 100644
--- a/src/mess/drivers/mz80.c
+++ b/src/mame/drivers/mz80.c
@@ -377,4 +377,4 @@ COMP( 1979, mz80k, mz80kj, 0, mz80k, mz80k, mz80_state, mz80k, "Sha
// These may need a separate driver!
COMP( 1982, mz80a, 0, 0, mz80a, mz80a, mz80_state, mz80k, "Sharp", "MZ-80A", 0 )
-COMP( 1981, mz80b, 0, 0, mz80k, mz80k, mz80_state, mz80k, "Sharp", "MZ-80B", GAME_NOT_WORKING )
+COMP( 1981, mz80b, 0, 0, mz80k, mz80k, mz80_state, mz80k, "Sharp", "MZ-80B", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/mzr8105.c b/src/mame/drivers/mzr8105.c
new file mode 100644
index 00000000000..e1679e2a146
--- /dev/null
+++ b/src/mame/drivers/mzr8105.c
@@ -0,0 +1,369 @@
+// license:BSD-3-Clause
+// copyright-holders:Joakim Larsson Edstrom
+/***************************************************************************
+ *
+ * Mizar VME8105 rev D 3U SBC driver, initially derived from force68k.c
+ *
+ * 19/08/2015
+ *
+ * I baught this board from http://www.retrotechnology.com without documentation.
+ * It has a Motorola 68000 CPU @ 10MHz and two 27128 EPROMS with OS9 DEBUG labels
+ * and not much more except 16 or so TTLs, 2 PALs and a VME P1 connector. It is a
+ * 2 sided design so it shold be possible to trace the schematics quite easily.
+ * There is a date on the P1 Connector: "Feb 20 1987"
+ *
+ * ||
+ * ||
+ * ||
+ * ||
+ * ||____________________________________________________________ ___
+ * || --------------K2|U6-7432|U7-7474|U14-7405|U21-74645 | |_| |
+ * || | 2764 - low |-+-------+-------+--------+-----------+ | | |
+ * || | OS9 DEBUG U4| +---------+ +--------+---------+ | | |
+ * || -------------- | | |U13-7474|U20-74645| | | |
+ * || ______________ | | +--------+---------+ | | |
+ * || | | | | ______________K4____ | | |
+ * || | U3| | | |U12-7438|U19-74244| | |VME|
+ * || -------------- | |+------K6---------K3---+ | | |
+ * || ______________ | ||U11-PAL20L10|U18-74244| | |P1 |
+ * || | 2764 - high | | |+-----021102-+---------+ | | |
+ * || | OS9 DEBUG U2| |MC68000L10+------------+---------+ | | |
+ * || |______________| | ||U10-PAL14L4 |U17-74244| | | |
+ * || | |+-----021001-+---------+ | | |
+ * || -------------- | |+----+_______|U16-74244|+--+| | |
+ * || | | | |XTAL |U9-7410+---------+| || | |
+ * ||K1 | U1| | |FOX100-------+---------+|K5||_| |
+ * || -------------- |_________|10MHz|U8-7404|U15-74148|| || |___|
+ * ||--||--------------------------------+----+-------+---------++--+
+ * ||--||
+ * ||
+ *
+ * PAL:s
+ *------
+ * The board has two PAL:s, a PAL20L10 and a PAL14L4.
+ *
+ * _____ _____
+ * OD/CLK 1 |* \_/ | 20 VCC
+ * CPU A13 I0 2 | | 19 O0/LR A23
+ * U9 7410p12 I1 3 | | 18 O1/A0 A22
+ * CPU *AS I2 4 | | 17 02/A1 U2/U4 2764p22 *OE
+ * GND I3 5 | | 16 03/A2 U11 PAL20L10p6 I4
+ * CPU A14 I4 6 | U10 | 15 A0/O0 U11 PAL20L10p7 I5
+ * CPU A15 I5 7 | PAL14L4 | 14 A1/O1 U19 74LS244p11 I0b
+ * CPU A16 I6 8 | | 13 A2/O2 A18
+ * CPU A17 I7 9 | | 12 LR/O3 A20
+ * GND 10 |_____________| 11 CLK/OD A21
+ *
+ * _____ _____
+ * OD/CLK 1 |* \_/ | 24 VCC
+ * I0 2 | | 23 O0/LR
+ * CPU *AS I1 3 | | 22 O1/A0
+ * U10 PAL14L4p3 I2 4 | | 21 02/A1
+ * I3 5 | | 20 03/A2
+ * U10 PAL14L4p16 I4 6 | U10 | 19 04/NC
+ * U10 PAL14L4p15 I5 7 | PAL20L10 | 18 NC/O0
+ * I6 8 | | 17 A2/O1
+ * I7 9 | | 16 A1/O2
+ * I8 10 | | 15 A0/O3
+ * I9 11 | | 14 LR/O4
+ * GND 12 |_____________| 13 CLK/OD
+ *
+ * Trace is not fully completed and validated.
+ *
+ * History of Mizar
+ *-------------------
+ * Mizar was one of the first companies that released VME boards in 1982-3 together with
+ * Force Computers and Motorola. Their systems was often supported by OS9/68000 from Microware.
+ * In 1993 Mizar discontinued their OS9/CPU board product range and focused entirely on DSP
+ * boards. RTSI was founded by Mizar employees preserving the knowledge in OS9 as consultants.
+ * In 1998 Blue Wave resulted from the merger of Mizar and Loughborough Sound Images.
+ * Not much tech information availabe but I found some quotes about Mizar on the internet:
+ *
+ * From http://archive.org/stream/68micro-vol-11-num-02/V11N02_Feb1989_djvu.txt :
+ *--------------------------------------------------------------------------------
+ * " Mizar provides complete OS-9 solutions for the VMEbus. Mizar's VME CPUs
+ * offer (he functions and performance your application demands. Our single
+ * height (3U) VME processors are uniquely configurable computing engines,
+ * Through Mizar's unique MXbus expansion interface, standard and custom side
+ * modules can be added to basic processors to create double-height (6U) boards
+ * tor specific applications, 3U CPU options include 68010, 66020, and 63030
+ * microprocessors, up to one MB of DRAM, serial I/O, real-time clock, and
+ * mailbox interrupt support. Standard MXbus side modules include additional DRAM.
+ * SRAM, and I/O.
+ *
+ * Mizar's standard double- height (6U) processors provide additional features such
+ * as a high-speed cache to enhance 68030 performance, floating, point coprocessor
+ * support, up to four MB dual ported DRAM, VSB memory interface, Ethernet, and SCSI.
+ *
+ * Mizar also supports OS-9 with completely configured OS9 development systems and
+ * OS-9 application server systems. For more information, call Mizar today
+ *
+ * 800-635-0200 MIZAR 1419 Dunn Drive CarrolHon, TX 75006 214-446-2664"
+ *
+ * Known boards from Mizar:
+ *
+ *-Comp.Os.Vxworks diguest mailing list May 1992: VxWorks Drivers Available from Mizar:
+ * EMX 7320 Serial I/O Board
+ * EMX 7550 Ethernet Controller Board (AMD 7990 Lance) MAC: 00:80:F8 MIZAR, INC.
+ * MZ 7300 Serial I/O Board (Z8530)
+ * MZ 7400 Disk Controller Board (WD 2010; WD 1772)
+ * MZ 7500 IEEE-488 (GPIB) Interface Board
+ * MZ 7810 I/O Expansion Module (6681 DUART)
+ * MZ 7831 SCSI Expansion Module (WD 33C93A)
+ * MZ 7850 Ethernet Expansion Module (WD 83C690)
+ * MZ 8505 IEEE-488 (GPIB) Interface Board"
+ *- Other sources:
+ * MZ 8000 ??
+ * MZ 8105 3U 68000 CPU board
+ * MZ 8300 3U serial board, 2 NEC 7201 (Z80 DART) and 1 AMD CTS9513 5 x 16 bit Counter/Timer
+ *
+ * From http://www.megalextoria.com/forum2/index.php?t=msg&goto=73945&
+ *--------------------------------------------------------------------
+ * Aug 20 1984 a report by James Jones from the OS/9 conferance in Des Moines:
+ * "...
+ * Mizar: is selling VME bus 68010 boards, running OS-9/68000; they also make
+ * various memory and I/O boards, disk controller boards, and and a NEC 7220-based
+ * graphics controller board...."
+ *
+ * Misc links about Mizar:
+ * http://www.vita.com/History
+ * http://www.verycomputer.com/154_e272024804bbe203_1.htm
+ * https://www.aihitdata.com/company/00814595/RTSI/overview
+ *
+ * Address Map
+ * --------------------------------------------------------------------------
+ * Address Range Description/Assumption
+ * --------------------------------------------------------------------------
+ * 0x000000 0x01ffff ROM because of fixed vectors
+ * 0x020000 0x03ffff RAM because bootvector stack starts at 0x21000
+ * -- VME adresses---
+ * 0xff0000 0xff0003 Bootstrap expects to find a UPD7201 serial device here
+ * --------------------------------------------------------------------------
+ *
+ * Interrupt sources
+ * ----------------------------------------------------------
+ * Description Device Lvl IRQ VME board
+ * /Board Vector Address
+ * ----------------------------------------------------------
+ * On board Sources
+ * TBD
+ * Off board Sources (other VME boards)
+ * TBD
+ * ----------------------------------------------------------
+ *
+ * TODO:
+ * - Dump the ROMs (DONE)
+ * - Setup a working address map (DONE)
+ * - Add VME bus driver (Faked one)
+ *
+ ****************************************************************************/
+
+#include "emu.h"
+#include "cpu/m68000/m68000.h"
+#include "machine/z80dart.h"
+#include "bus/rs232/rs232.h"
+#include "machine/clock.h"
+
+#define CARDSLOT 0
+
+#if CARDSLOT // Awaiting info on how to boot the user eproms
+#include "bus/generic/slot.h"
+#include "bus/generic/carts.h"
+#endif
+
+#define LOG(x) x
+
+
+/* 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. */
+#define BAUDGEN_CLOCK XTAL_19_6608MHz /* fake */
+#define UPD_CLOCK (BAUDGEN_CLOCK / 128) /* This will give prompt */
+
+class mzr8105_state : public driver_device
+{
+public:
+mzr8105_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device (mconfig, type, tag),
+ m_maincpu (*this, "maincpu")
+ ,m_updterm(*this, "upd")
+// ,m_cart(*this, "exp_rom1")
+{
+}
+
+DECLARE_READ16_MEMBER (vme_a24_r);
+DECLARE_WRITE16_MEMBER (vme_a24_w);
+DECLARE_READ16_MEMBER (vme_a16_r);
+DECLARE_WRITE16_MEMBER (vme_a16_w);
+virtual void machine_start ();
+DECLARE_WRITE_LINE_MEMBER (write_updterm_clock);
+
+#if CARDSLOT
+// User EPROM/SRAM slot(s)
+int mzr8105_load_cart(device_image_interface &image, generic_slot_device *slot);
+DECLARE_DEVICE_IMAGE_LOAD_MEMBER (exp1_load) { return mzr8105_load_cart(image, m_cart); }
+DECLARE_READ16_MEMBER (read16_rom);
+#endif
+
+protected:
+
+private:
+required_device<cpu_device> m_maincpu;
+required_device<upd7201_device> m_updterm;
+
+// Pointer to System ROMs needed by bootvect_r
+// UINT16 *m_sysrom;
+
+#if CARDSLOT
+UINT16 *m_usrrom;
+required_device<generic_slot_device> m_cart;
+#endif
+};
+
+static ADDRESS_MAP_START (mzr8105_mem, AS_PROGRAM, 16, mzr8105_state)
+ADDRESS_MAP_UNMAP_HIGH
+//AM_RANGE (0x000000, 0x000007) AM_ROM AM_READ (bootvect_r) /* Not verified */
+AM_RANGE (0x000000, 0x003fff) AM_ROM /* System EPROM Area 16Kb OS9 DEBUG - not verified */
+AM_RANGE (0x004000, 0x01ffff) AM_ROM /* System EPROM Area 112Kb for System ROM - not verified */
+AM_RANGE (0x020000, 0x03ffff) AM_RAM /* Not verified */
+//AM_RANGE (0x0a0000, 0x0bffff) AM_ROM /* User EPROM/SRAM Area, max 128Kb mapped by a cartslot */
+//AM_RANGE (0x0c0080, 0x0c0081) AM_DEVREADWRITE8 ("aciaterm", acia6850_device, status_r, control_w, 0xff00)
+//AM_RANGE (0x0c0082, 0x0c0083) AM_DEVREADWRITE8 ("aciaterm", acia6850_device, data_r, data_w, 0xff00)
+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 */
+// Faking a Mizar 8300 SIO BOARD in VME A16 adress space
+ AM_RANGE (0xFF0000, 0xFF0001) AM_DEVREADWRITE8("upd", upd7201_device, da_r, da_w, 0x00ff) /* Dual serial port NEC uPD7201 */
+ AM_RANGE (0xFF0002, 0xFF0003) AM_DEVREADWRITE8("upd", upd7201_device, ca_r, ca_w, 0x00ff) /* Dual serial port NEC uPD7201 */
+ AM_RANGE (0xFF0004, 0xFF0005) AM_DEVREADWRITE8("upd", upd7201_device, db_r, db_w, 0x00ff) /* Dual serial port NEC uPD7201 */
+ AM_RANGE (0xFF0006, 0xFF0007) AM_DEVREADWRITE8("upd", upd7201_device, cb_r, cb_w, 0x00ff) /* Dual serial port NEC uPD7201 */
+
+ADDRESS_MAP_END
+
+/* Input ports */
+static INPUT_PORTS_START (mzr8105)
+INPUT_PORTS_END
+
+/* Start it up */
+void mzr8105_state::machine_start ()
+{
+ LOG (logerror ("machine_start\n"));
+
+#if CARDSLOT
+ /* Map user ROM/RAM socket(s) */
+ if (m_cart->exists())
+ {
+ m_usrrom = (UINT16*)m_cart->get_rom_base();
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa0000, 0xbffff, read16_delegate(FUNC(generic_slot_device::read16_rom), (generic_slot_device*)m_cart));
+ }
+#endif
+}
+
+/* Dummy VME access methods until the VME bus device is ready for use */
+READ16_MEMBER (mzr8105_state::vme_a24_r){
+ LOG (logerror ("vme_a24_r\n"));
+ return (UINT16) 0;
+}
+
+WRITE16_MEMBER (mzr8105_state::vme_a24_w){
+ LOG (logerror ("vme_a24_w\n"));
+}
+
+READ16_MEMBER (mzr8105_state::vme_a16_r){
+ LOG (logerror ("vme_16_r\n"));
+ return (UINT16) 0;
+}
+
+WRITE16_MEMBER (mzr8105_state::vme_a16_w){
+ LOG (logerror ("vme_a16_w\n"));
+}
+
+#if CARDSLOT
+/*
+ * 4. The USER EPROM Area
+ */
+// Implementation of static 2 x 64K EPROM in sockets U1/U3 as 16 bit wide cartridge for easier
+// software handling. TODO: make configurable according to table above.
+static MACHINE_CONFIG_FRAGMENT( mzr8105_eprom_sockets )
+ MCFG_GENERIC_CARTSLOT_ADD("exp_rom1", generic_plain_slot, "mzr8105_cart")
+ MCFG_GENERIC_EXTENSIONS("bin,rom")
+ MCFG_GENERIC_WIDTH(GENERIC_ROM16_WIDTH)
+ MCFG_GENERIC_ENDIAN(ENDIANNESS_BIG)
+ MCFG_GENERIC_LOAD(mzr8105_state, exp1_load)
+// MCFG_SOFTWARE_LIST_ADD("cart_list", "mzr8105_cart")
+MACHINE_CONFIG_END
+
+/***************************
+ Rom loading functions
+****************************/
+int mzr8105_state::mzr8105_load_cart(device_image_interface &image, generic_slot_device *slot)
+{
+ UINT32 size = slot->common_get_size("rom");
+
+ if (size > 0x20000) // Max 128Kb - not verified
+ {
+ LOG( printf("Cartridge size exceeding max size (128Kb): %d\n", size) );
+ image.seterror(IMAGE_ERROR_UNSPECIFIED, "Cartridge size exceeding max size (128Kb)");
+ return IMAGE_INIT_FAIL;
+ }
+
+ slot->rom_alloc(size, GENERIC_ROM16_WIDTH, ENDIANNESS_BIG);
+ slot->common_load_rom(slot->get_rom_base(), size, "rom");
+
+ return IMAGE_INIT_PASS;
+}
+#endif
+
+WRITE_LINE_MEMBER (mzr8105_state::write_updterm_clock){
+ m_updterm->txca_w (state);
+ m_updterm->rxca_w (state);
+}
+
+/*
+ * Machine configuration
+ */
+static MACHINE_CONFIG_START (mzr8105, mzr8105_state)
+/* basic machine hardware */
+MCFG_CPU_ADD ("maincpu", M68000, XTAL_10MHz)
+MCFG_CPU_PROGRAM_MAP (mzr8105_mem)
+
+
+/* Terminal Port config */
+MCFG_UPD7201_ADD("upd", XTAL_4MHz, 0, 0, 0, 0 )
+MCFG_Z80DART_OUT_TXDA_CB(DEVWRITELINE("rs232trm", rs232_port_device, write_txd))
+MCFG_Z80DART_OUT_DTRA_CB(DEVWRITELINE("rs232trm", rs232_port_device, write_dtr))
+MCFG_Z80DART_OUT_RTSA_CB(DEVWRITELINE("rs232trm", rs232_port_device, write_rts))
+
+MCFG_RS232_PORT_ADD ("rs232trm", default_rs232_devices, "terminal")
+MCFG_RS232_RXD_HANDLER (DEVWRITELINE ("upd", upd7201_device, rxa_w))
+MCFG_RS232_CTS_HANDLER (DEVWRITELINE ("upd", upd7201_device, ctsa_w))
+
+MCFG_DEVICE_ADD ("updterm_clock", CLOCK, UPD_CLOCK)
+MCFG_CLOCK_SIGNAL_HANDLER (WRITELINE (mzr8105_state, write_updterm_clock))
+
+#if CARDSLOT
+
+// EPROM sockets
+MCFG_FRAGMENT_ADD(mzr8105_eprom_sockets)
+#endif
+
+MACHINE_CONFIG_END
+
+/* ROM definitions */
+ROM_START (mzr8105)
+ROM_REGION (0x1000000, "maincpu", 0)
+
+ROM_LOAD16_BYTE ("mzros9LB.bin", 0x000001, 0x2000, CRC (7c6a354d) SHA1 (2721eb649c8046dbcb517a36a97dc0816cd133f2))
+ROM_LOAD16_BYTE ("mzros9HB.bin", 0x000000, 0x2000, CRC (d18e69a6) SHA1 (a00b68f4d649bcc09a29361f8692e52be12b3792))
+
+/*
+ * System ROM information
+ *
+ * The ROMs contains an OS9 bootloader. It is position independent but reset vector suggests that it sits flat on adress 0 (zero)
+ *
+ * We got a prompt but the command reportoair are very sparse to non OS9 users so investigation needed.
+ *
+ */
+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_IS_SKELETON )
diff --git a/src/mess/drivers/n64.c b/src/mame/drivers/n64.c
index 503d80e839f..4ef6f0c95e5 100644
--- a/src/mess/drivers/n64.c
+++ b/src/mame/drivers/n64.c
@@ -6,7 +6,7 @@
Driver by Ville Linde
Reformatted to share hardware by R. Belmont
Additional work by Ryan Holtz
- Porting from Mupen64 by Harmony
+ Porting from Mupen64 by Ryan Holtz
*/
#include "emu.h"
@@ -89,23 +89,27 @@ ADDRESS_MAP_END
static INPUT_PORTS_START( n64 )
PORT_START("input")
- PORT_CONFNAME(0x03, 0x01, "Controller Port 0 Device")
+ PORT_CONFNAME(0x0003, 0x0001, "Controller Port 0 Device")
PORT_CONFSETTING(0x00, "None")
PORT_CONFSETTING(0x01, "Joypad")
PORT_CONFSETTING(0x02, "Mouse")
- PORT_CONFNAME(0x0C, 0x00, "Controller Port 1 Device")
+ PORT_CONFNAME(0x000C, 0x0000, "Controller Port 1 Device")
PORT_CONFSETTING(0x00, "None")
PORT_CONFSETTING(0x04, "Joypad")
PORT_CONFSETTING(0x08, "Mouse")
- PORT_CONFNAME(0x30, 0x00, "Controller Port 2 Device")
+ PORT_CONFNAME(0x0030, 0x0000, "Controller Port 2 Device")
PORT_CONFSETTING(0x00, "None")
PORT_CONFSETTING(0x10, "Joypad")
PORT_CONFSETTING(0x20, "Mouse")
- PORT_CONFNAME(0xC0, 0x00, "Controller Port 3 Device")
+ PORT_CONFNAME(0x00C0, 0x0000, "Controller Port 3 Device")
PORT_CONFSETTING(0x00, "None")
PORT_CONFSETTING(0x40, "Joypad")
PORT_CONFSETTING(0x80, "Mouse")
+ PORT_CONFNAME(0x0100, 0x0000, "Disk Drive")
+ PORT_CONFSETTING(0x0000, "Retail")
+ PORT_CONFSETTING(0x0100, "Development")
+
//Player 1
PORT_START("P1")
PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("P1 Button A / Left Click")
@@ -402,16 +406,19 @@ static MACHINE_CONFIG_START( n64, n64_mess_state )
MCFG_RSP_SP_SET_STATUS_CB(DEVWRITE32("rcp",n64_periphs, sp_set_status))
MCFG_CPU_PROGRAM_MAP(rsp_map)
- //MCFG_QUANTUM_TIME(attotime::from_hz(1000000))
- MCFG_QUANTUM_TIME(attotime::from_hz(1200))
+ MCFG_QUANTUM_TIME(attotime::from_hz(500000))
+ //MCFG_QUANTUM_TIME(attotime::from_hz(1200))
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(640, 525)
- MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 239)
+ /* Video DACRATE is for quarter pixels, so the horizontal is also given in quarter pixels. However, the horizontal and vertical timing and sizing is adjustable by register and will be reset when the registers are written. */
+ MCFG_SCREEN_RAW_PARAMS(DACRATE_NTSC*2,3093,0,3093,525,0,525)
+ //MCFG_SCREEN_REFRESH_RATE(60)
+ //MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
+ //MCFG_SCREEN_SIZE(640, 525)
+ //MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479)
MCFG_SCREEN_UPDATE_DRIVER(n64_state, screen_update_n64)
+ MCFG_SCREEN_VBLANK_DRIVER(n64_state, screen_eof_n64)
MCFG_PALETTE_ADD("palette", 0x1000)
@@ -488,5 +495,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", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS )
-CONS(1996, n64dd, n64, 0, n64dd, n64, driver_device, 0, "Nintendo", "Nintendo 64DD", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS )
+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 )
diff --git a/src/mame/drivers/n8080.c b/src/mame/drivers/n8080.c
index 9e7a5b785f0..3bcefb814fb 100644
--- a/src/mame/drivers/n8080.c
+++ b/src/mame/drivers/n8080.c
@@ -932,15 +932,15 @@ ROM_START( helifirea )
ROM_END
-GAME( 1979, spacefev, 0, spacefev, spacefev, driver_device, 0, ROT270, "Nintendo", "Space Fever (New Ver.)", GAME_SUPPORTS_SAVE )
-GAME( 1979, spacefevo, spacefev, spacefev, spacefev, driver_device, 0, ROT270, "Nintendo", "Space Fever (Old Ver.)", GAME_SUPPORTS_SAVE )
-GAME( 1979, spacefevo2, spacefev, spacefev, spacefev, driver_device, 0, ROT270, "Nintendo", "Space Fever (Older Ver.)", GAME_SUPPORTS_SAVE )
-GAME( 1979, highsplt, 0, spacefev, highsplt, driver_device, 0, ROT270, "Nintendo", "Space Fever High Splitter (set 1)", GAME_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)", GAME_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)", GAME_SUPPORTS_SAVE ) // known as "SF-Hisplitter" on its flyer
-GAME( 1979, spacelnc, 0, spacefev, spacelnc, driver_device, 0, ROT270, "Nintendo", "Space Launcher", GAME_SUPPORTS_SAVE )
-GAME( 1979, sheriff, 0, sheriff, sheriff, driver_device, 0, ROT270, "Nintendo", "Sheriff", GAME_SUPPORTS_SAVE )
-GAME( 1980, bandido, sheriff, sheriff, bandido, driver_device, 0, ROT270, "Nintendo (Exidy license)", "Bandido", GAME_SUPPORTS_SAVE )
-GAME( 1980, westgun2, sheriff, westgun2, westgun2, driver_device, 0, ROT270, "Nintendo (Taito Corporation license)", "Western Gun Part II", GAME_SUPPORTS_SAVE ) // official Taito PCBs, but title/copyright not shown
-GAME( 1980, helifire, 0, helifire, helifire, driver_device, 0, ROT270, "Nintendo", "HeliFire (set 1)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1980, helifirea, helifire, helifire, helifire, driver_device, 0, ROT270, "Nintendo", "HeliFire (set 2)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/nakajies.c b/src/mame/drivers/nakajies.c
index e0771f1ce1e..29b2ba35af8 100644
--- a/src/mess/drivers/nakajies.c
+++ b/src/mame/drivers/nakajies.c
@@ -826,10 +826,10 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND ) /* German, 128KB RAM */
-COMP( 199?, dator3k, wales210, 0, dator3k, nakajies, driver_device, 0, "Dator", "Dator 3000", GAME_NOT_WORKING | GAME_NO_SOUND ) /* Spanish, 128KB RAM */
-COMP( 199?, es210_es, wales210, 0, nakajies210, nakajies, driver_device, 0, "Nakajima","ES-210 (Spain)", GAME_NOT_WORKING | GAME_NO_SOUND ) /* Spanish, 128KB RAM */
-COMP( 199?, drwrt100, wales210, 0, nakajies220, nakajies, driver_device, 0, "NTS", "DreamWriter T100", GAME_NOT_WORKING | GAME_NO_SOUND ) /* English, 128KB RAM */
-COMP( 1996, drwrt400, wales210, 0, nakajies220, nakajies, driver_device, 0, "NTS", "DreamWriter T400", GAME_NOT_WORKING | GAME_NO_SOUND ) /* English, 256KB RAM */
-COMP( 199?, drwrt450, wales210, 0, nakajies220, nakajies, driver_device, 0, "NTS", "DreamWriter 450", GAME_NOT_WORKING | GAME_NO_SOUND ) /* English, 128KB RAM */
-COMP( 199?, drwrt200, wales210, 0, nakajies250, nakajies, driver_device, 0, "NTS", "DreamWriter T200", GAME_NOT_WORKING | GAME_NO_SOUND ) /* English, 256KB? RAM */
+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 */
diff --git a/src/mame/drivers/namcofl.c b/src/mame/drivers/namcofl.c
index 7b0d437d82e..8bef9d9c7d8 100644
--- a/src/mame/drivers/namcofl.c
+++ b/src/mame/drivers/namcofl.c
@@ -610,7 +610,7 @@ static MACHINE_CONFIG_START( namcofl, namcofl_state )
MCFG_VIDEO_START_OVERRIDE(namcofl_state,namcofl)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
- MCFG_C352_ADD("c352", 48384000/2, C352_DIVIDER_288)
+ MCFG_C352_ADD("c352", 48384000/2, 288)
MCFG_SOUND_ROUTE(0, "rspeaker", 1.00)
MCFG_SOUND_ROUTE(1, "lspeaker", 1.00)
MCFG_SOUND_ROUTE(2, "rspeaker", 1.00)
@@ -808,7 +808,7 @@ DRIVER_INIT_MEMBER(namcofl_state,finalapr)
m_gametype = NAMCOFL_FINAL_LAP_R;
}
-GAME ( 1995, speedrcr, 0, namcofl, speedrcr, namcofl_state, speedrcr, ROT0, "Namco", "Speed Racer", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAMEL( 1995, finalapr, 0, namcofl, finalapr, namcofl_state, finalapr, ROT0, "Namco", "Final Lap R (Rev. B)", GAME_IMPERFECT_SOUND, layout_namcofl )
-GAMEL( 1995, finalapro, finalapr, namcofl, finalapr, namcofl_state, finalapr, ROT0, "Namco", "Final Lap R", GAME_IMPERFECT_SOUND, layout_namcofl )
-GAMEL( 1995, finalaprj, finalapr, namcofl, finalapr, namcofl_state, finalapr, ROT0, "Namco", "Final Lap R (Japan Rev. C)", GAME_IMPERFECT_SOUND, layout_namcofl )
+GAME ( 1995, speedrcr, 0, namcofl, speedrcr, namcofl_state, speedrcr, ROT0, "Namco", "Speed Racer", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAMEL( 1995, finalapr, 0, namcofl, finalapr, namcofl_state, finalapr, ROT0, "Namco", "Final Lap R (Rev. B)", MACHINE_IMPERFECT_SOUND, layout_namcofl )
+GAMEL( 1995, finalapro, finalapr, namcofl, finalapr, namcofl_state, finalapr, ROT0, "Namco", "Final Lap R", MACHINE_IMPERFECT_SOUND, layout_namcofl )
+GAMEL( 1995, finalaprj, finalapr, namcofl, finalapr, namcofl_state, finalapr, ROT0, "Namco", "Final Lap R (Japan Rev. C)", MACHINE_IMPERFECT_SOUND, layout_namcofl )
diff --git a/src/mame/drivers/namcona1.c b/src/mame/drivers/namcona1.c
index 1d1f2fdb006..a67f2a60de2 100644
--- a/src/mame/drivers/namcona1.c
+++ b/src/mame/drivers/namcona1.c
@@ -319,15 +319,15 @@ int namcona1_state::transfer_dword( UINT32 dest, UINT32 source )
}
if( dest>=0xf00000 && dest<0xf02000 )
{
- namcona1_paletteram_w(space, (dest-0xf00000)/2, data, 0xffff );
+ paletteram_w(space, (dest-0xf00000)/2, data, 0xffff );
}
else if( dest>=0xf40000 && dest<0xf80000 )
{
- namcona1_gfxram_w(space, (dest-0xf40000)/2, data, 0xffff );
+ gfxram_w(space, (dest-0xf40000)/2, data, 0xffff );
}
else if( dest>=0xff0000 && dest<0xffc000 )
{
- namcona1_videoram_w(space, (dest-0xff0000)/2, data, 0xffff );
+ videoram_w(space, (dest-0xff0000)/2, data, 0xffff );
}
else if( dest>=0xfff000 && dest<0x1000000 )
{
@@ -412,7 +412,7 @@ static void blit_setup( int format, int *bytes_per_row, int *pitch, int mode )
}
} /* blit_setup */
-void namcona1_state::namcona1_blit()
+void namcona1_state::blit()
{
int src0 = m_vreg[0x0];
int src1 = m_vreg[0x1];
@@ -487,16 +487,16 @@ void namcona1_state::namcona1_blit()
src_offset = 0;
}
}
-} /* namcona1_blit */
+} /* blit */
-WRITE16_MEMBER(namcona1_state::namcona1_vreg_w)
+WRITE16_MEMBER(namcona1_state::vreg_w)
{
COMBINE_DATA( &m_vreg[offset] );
switch( offset )
{
case 0x18/2:
- namcona1_blit();
+ blit();
/* see also 0x1e */
break;
@@ -505,7 +505,7 @@ WRITE16_MEMBER(namcona1_state::namcona1_vreg_w)
/* interrupt enable mask; 0 enables INT level */
break;
}
-} /* namcona1_vreg_w */
+} /* vreg_w */
/***************************************************************/
@@ -546,10 +546,10 @@ static ADDRESS_MAP_START( namcona1_main_map, AS_PROGRAM, 16, namcona1_state )
AM_RANGE(0xc00000, 0xdfffff) AM_ROM AM_REGION("maincpu", 0) // code
AM_RANGE(0xe00000, 0xe00fff) AM_DEVREADWRITE8("eeprom", eeprom_parallel_28xx_device, read, write, 0x00ff)
AM_RANGE(0xe40000, 0xe4000f) AM_READWRITE(custom_key_r, custom_key_w)
- AM_RANGE(0xefff00, 0xefffff) AM_RAM_WRITE(namcona1_vreg_w) AM_SHARE("vreg")
- AM_RANGE(0xf00000, 0xf01fff) AM_RAM_WRITE(namcona1_paletteram_w) AM_SHARE("paletteram")
- AM_RANGE(0xf40000, 0xf7ffff) AM_READWRITE(namcona1_gfxram_r, namcona1_gfxram_w) AM_SHARE("cgram")
- AM_RANGE(0xff0000, 0xffbfff) AM_RAM_WRITE(namcona1_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0xefff00, 0xefffff) AM_RAM_WRITE(vreg_w) AM_SHARE("vreg")
+ AM_RANGE(0xf00000, 0xf01fff) AM_RAM_WRITE(paletteram_w) AM_SHARE("paletteram")
+ AM_RANGE(0xf40000, 0xf7ffff) AM_READWRITE(gfxram_r, gfxram_w) AM_SHARE("cgram")
+ AM_RANGE(0xff0000, 0xffbfff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram")
AM_RANGE(0xffd000, 0xffdfff) AM_RAM /* unknown */
AM_RANGE(0xffe000, 0xffefff) AM_RAM AM_SHARE("scroll") /* scroll registers */
AM_RANGE(0xfff000, 0xffffff) AM_RAM AM_SHARE("spriteram") /* spriteram */
@@ -694,6 +694,14 @@ void namcona1_state::machine_start()
m_maskrom = (UINT16 *)memregion("maskrom")->base();
m_mEnableInterrupts = 0;
m_c140->set_base(m_workram);
+
+ save_item(NAME(m_mEnableInterrupts));
+ save_item(NAME(m_count));
+ save_item(NAME(m_mcu_mailbox));
+ save_item(NAME(m_mcu_port4));
+ save_item(NAME(m_mcu_port5));
+ save_item(NAME(m_mcu_port6));
+ save_item(NAME(m_mcu_port8));
}
// the MCU boots the 68000
@@ -893,7 +901,7 @@ GFXDECODE_END
// IRQ 1 =>
// IRQ 2 =>
-TIMER_DEVICE_CALLBACK_MEMBER(namcona1_state::namcona1_interrupt)
+TIMER_DEVICE_CALLBACK_MEMBER(namcona1_state::interrupt)
{
int scanline = param;
int enabled = m_mEnableInterrupts ? ~m_vreg[0x1a/2] : 0;
@@ -933,7 +941,7 @@ static MACHINE_CONFIG_START( namcona1, namcona1_state )
MCFG_CPU_PROGRAM_MAP(namcona1_mcu_map)
MCFG_CPU_IO_MAP( namcona1_mcu_io_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scan_main", namcona1_state, namcona1_interrupt, "screen", 0, 1)
+ MCFG_TIMER_DRIVER_ADD_SCANLINE("scan_main", namcona1_state, interrupt, "screen", 0, 1)
MCFG_EEPROM_2816_ADD("eeprom")
@@ -943,7 +951,7 @@ static MACHINE_CONFIG_START( namcona1, namcona1_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(38*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8, 38*8-1-8, 4*8, 32*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(namcona1_state, screen_update_namcona1)
+ MCFG_SCREEN_UPDATE_DRIVER(namcona1_state, screen_update)
MCFG_SCREEN_PALETTE("palette")
MCFG_PALETTE_ADD("palette", 0x2000)
@@ -992,7 +1000,7 @@ DRIVER_INIT_MEMBER(namcona1_state,knckhead) { m_gametype = NAMCO_KNCKHEAD; }
DRIVER_INIT_MEMBER(namcona1_state,numanath) { m_gametype = NAMCO_NUMANATH; }
DRIVER_INIT_MEMBER(namcona1_state,quiztou) { m_gametype = NAMCO_QUIZTOU; }
DRIVER_INIT_MEMBER(namcona1_state,swcourt) { m_gametype = NAMCO_SWCOURT; }
-DRIVER_INIT_MEMBER(namcona1_state,tinklpit) { m_gametype = NAMCO_TINKLPIT; }
+DRIVER_INIT_MEMBER(namcona1_state,tinklpit) { m_gametype = NAMCO_TINKLPIT; save_item(NAME(m_keyval)); }
DRIVER_INIT_MEMBER(namcona1_state,xday2) { m_gametype = NAMCO_XDAY2; }
ROM_START( bkrtmaq )
@@ -1301,25 +1309,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)", 0 )
-GAME( 1992, cgangpzl, 0, namcona1w, namcona1_joy, namcona1_state, cgangpzl, ROT0, "Namco", "Cosmo Gang the Puzzle (US)", 0 )
-GAME( 1992, cgangpzlj, cgangpzl, namcona1w, namcona1_joy, namcona1_state, cgangpzl, ROT0, "Namco", "Cosmo Gang the Puzzle (Japan)", 0 )
-GAME( 1992, exvania, 0, namcona1, namcona1_joy, namcona1_state, exbania, ROT0, "Namco", "Exvania (World)", 0 )
-GAME( 1992, exvaniaj, exvania, namcona1, namcona1_joy, namcona1_state, exbania, ROT0, "Namco", "Exvania (Japan)", 0 )
-GAME( 1992, fghtatck, 0, namcona1, namcona1_joy, namcona1_state, fa, ROT90,"Namco", "Fighter & Attacker (US)", 0 )
-GAME( 1992, fa, fghtatck, namcona1, namcona1_joy, namcona1_state, fa, ROT90,"Namco", "F/A (Japan)", 0 )
-GAME( 1992, swcourt, 0, namcona1w, namcona1_joy, namcona1_state, swcourt, ROT0, "Namco", "Super World Court (World)", 0 )
-GAME( 1992, swcourtj, swcourt, namcona1w, namcona1_joy, namcona1_state, swcourt, ROT0, "Namco", "Super World Court (Japan)", 0 )
-GAME( 1993, emeraldaj, emeralda, namcona1w, namcona1_joy, namcona1_state, emeraldj, ROT0, "Namco", "Emeraldia (Japan Version B)", 0 ) /* Parent is below on NA-2 Hardware */
-GAME( 1993, emeraldaja, emeralda, namcona1w, namcona1_joy, namcona1_state, emeraldj, ROT0, "Namco", "Emeraldia (Japan)", 0 ) /* Parent is below on NA-2 Hardware */
-GAME( 1993, tinklpit, 0, namcona1w, namcona1_joy, namcona1_state, tinklpit, ROT0, "Namco", "Tinkle Pit (Japan)", 0 )
+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)", 0 )
-GAME( 1992, knckheadj, knckhead, namcona2, namcona1_joy, namcona1_state, knckhead, ROT0, "Namco", "Knuckle Heads (Japan)", 0 )
-GAME( 1992, knckheadjp, knckhead, namcona2, namcona1_joy, namcona1_state, knckhead, ROT0, "Namco", "Knuckle Heads (Japan, Prototype?)", 0 )
-GAME( 1993, emeralda, 0, namcona2, namcona1_joy, namcona1_state, emeralda, ROT0, "Namco", "Emeraldia (World)", 0 )
-GAME( 1993, numanath, 0, namcona2, namcona1_joy, namcona1_state, numanath, ROT0, "Namco", "Numan Athletics (World)", 0 )
-GAME( 1993, numanathj, numanath, namcona2, namcona1_joy, namcona1_state, numanath, ROT0, "Namco", "Numan Athletics (Japan)", 0 )
-GAME( 1993, quiztou, 0, namcona2, namcona1_quiz, namcona1_state,quiztou, ROT0, "Namco", "Nettou! Gekitou! Quiztou!! (Japan)", 0 )
-GAME( 1995, xday2, 0, namcona2, namcona1_joy, namcona1_state, xday2, ROT0, "Namco", "X-Day 2 (Japan)", GAME_IMPERFECT_GRAPHICS )
+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, namcona2, 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.c b/src/mame/drivers/namconb1.c
index 0994ae17686..f67ea62e1c4 100644
--- a/src/mame/drivers/namconb1.c
+++ b/src/mame/drivers/namconb1.c
@@ -1126,7 +1126,7 @@ static MACHINE_CONFIG_START( namconb1, namconb1_state )
MCFG_VIDEO_START_OVERRIDE(namconb1_state,namconb1)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
- MCFG_C352_ADD("c352", MASTER_CLOCK/2, C352_DIVIDER_288)
+ MCFG_C352_ADD("c352", MASTER_CLOCK/2, 288)
MCFG_SOUND_ROUTE(0, "rspeaker", 1.00)
MCFG_SOUND_ROUTE(1, "lspeaker", 1.00)
MCFG_SOUND_ROUTE(2, "rspeaker", 1.00)
@@ -1163,7 +1163,7 @@ static MACHINE_CONFIG_START( namconb2, namconb1_state )
MCFG_VIDEO_START_OVERRIDE(namconb1_state,namconb2)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
- MCFG_C352_ADD("c352", MASTER_CLOCK/2, C352_DIVIDER_288)
+ MCFG_C352_ADD("c352", MASTER_CLOCK/2, 288)
MCFG_SOUND_ROUTE(0, "rspeaker", 1.00)
MCFG_SOUND_ROUTE(1, "lspeaker", 1.00)
MCFG_SOUND_ROUTE(2, "rspeaker", 1.00)
@@ -1204,6 +1204,37 @@ ROM_START( ptblank ) /* World set using 4Mb sound data rom (verified) */
ROM_LOAD( "eeprom", 0x0000, 0x0800, CRC(95760d0f) SHA1(94ac5a261d9afc77c2a163a50950b0e86b1f8041) )
ROM_END
+ROM_START( ptblanka ) /* World set using non standard ROM labels (NR is Namco's prefix for Nebulas Ray, but NOT here!!), verified on 2 seperate PCBs */
+ ROM_REGION( 0x100000, "maincpu", 0 ) /* main program */
+ ROM_LOAD32_WORD( "nr3_spr0.15b", 0x00002, 0x80000, CRC(fe2d9425) SHA1(51b166a629cbb522720d63720558816b496b6b76) ) // == gn2_mprlb.15b
+ ROM_LOAD32_WORD( "nr2_spr0.13b", 0x00000, 0x80000, CRC(3bf4985a) SHA1(f559e0d5f55d23d886fe61bd7d5ca556acc7f87c) ) // == gn2_mprub.12b
+
+ ROM_REGION16_LE( 0x80000, "c75data", 0 ) /* sound data - JP1 jumper selectable between 1Mb (27C1024) or 4Mb (27C4096) either rom is correct */
+// ROM_LOAD( "nr1_spr0.5b", 0, 0x20000, CRC(6836ba38) SHA1(6ea17ea4bbb59be108e8887acd7871409580732f) ) /* 1Megabit, same data as the 4Mb rom at 0x00000-0x1ffff */
+ ROM_LOAD( "nr1_spr0.5b", 0, 0x80000, CRC(a0bde3fb) SHA1(b5fac1d0339b1df6b8880fcd7aa2725a774765a4) ) /* 4Megabit, same data at 0x00000-0x1ffff repeated 4 time */
+
+ ROM_REGION( 0x1000000, "c352", 0 ) // Samples
+ ROM_LOAD( "nr4_spr0.5j", 0, 0x200000, CRC(05477eb7) SHA1(f2eaacb5dbac06c37c56b9b131230c9cf6602221) ) // == gn1-voi0.5j
+
+ ROM_REGION( 0x800000, NAMCONB1_SPRITEGFXREGION, 0 )
+ ROM_LOAD16_BYTE( "gn1obj0l.ic1", 0x000001, 0x200000, CRC(06722dc8) SHA1(56fee4e17ed707fa6dbc6bad0d0281fc8cdf72d1) ) /* These four located on MEMEXT OBJ8 PCB daughter-card */
+ ROM_LOAD16_BYTE( "gn1obj0u.ic2", 0x000000, 0x200000, CRC(fcefc909) SHA1(48c19b6032096dd80777aa6d5eb5f90463095cbe) )
+ ROM_LOAD16_BYTE( "gn1obj1l.ic3", 0x400001, 0x200000, CRC(48468df7) SHA1(c5fb9082c84ac2ffceb6f5f4cbc1d40047c55e3d) )
+ ROM_LOAD16_BYTE( "gn1obj1u.ic4", 0x400000, 0x200000, CRC(3109a071) SHA1(4bb16df5a3aecdf37baf843edfc82952d46f5227) )
+
+ ROM_REGION( 0x400000, NAMCONB1_TILEGFXREGION, 0 )
+ ROM_LOAD( "nr5_spr0.8j", 0x000000, 0x100000, CRC(a5c61246) SHA1(d1d9f286b93b5b9880160029c53384d13c08dd8a) ) // == gn1_chr0.8j
+ ROM_LOAD( "nr6_spr0.9j", 0x100000, 0x100000, CRC(c8c59772) SHA1(91de633a300e3b25a919579eaada5549640ab6f0) ) // == gn1_chr1.8j
+ ROM_LOAD( "nr7_spr0.10j", 0x200000, 0x100000, CRC(dc96d999) SHA1(d006a401762b57fef6716f56eb3a7edcb3d3c00e) ) // == gn1_chr2.10j
+ ROM_LOAD( "nr8_spr0.11j", 0x300000, 0x100000, CRC(4352c308) SHA1(785c13df219dceac2f940519141665b630a29f86) ) // == gn1_chr3.11j
+
+ ROM_REGION( 0x80000, NAMCONB1_TILEMASKREGION, 0 )
+ ROM_LOAD( "nr9_spr0.5m", 0, 0x80000, CRC(86d4ff85) SHA1(a71056b2bcbba50c834fe28269ebda9719df354a) ) // == gn1-sha0.5m
+
+ ROM_REGION( 0x0800, "eeprom", 0 ) // default gun calibration and settings
+ ROM_LOAD( "eeprom", 0x0000, 0x0800, CRC(95760d0f) SHA1(94ac5a261d9afc77c2a163a50950b0e86b1f8041) )
+ROM_END
+
ROM_START( gunbuletw ) /* World set using 4Mb sound data rom (verified) */
ROM_REGION( 0x100000, "maincpu", 0 ) /* main program */
ROM_LOAD32_WORD( "gn3_mprlb.15b", 0x00002, 0x80000, CRC(9260fce5) SHA1(064579be1ac90e04082a8b403c6adf35dbb46a7e) )
@@ -1930,20 +1961,21 @@ ROM_END
/***************************************************************/
-GAME( 1994, nebulray, 0, namconb1, namconb1, namconb1_state, nebulray, ROT90, "Namco", "Nebulas Ray (World, NR2)", GAME_IMPERFECT_SOUND )
-GAME( 1994, nebulrayj,nebulray, namconb1, namconb1, namconb1_state, nebulray, ROT90, "Namco", "Nebulas Ray (Japan, NR1)", GAME_IMPERFECT_SOUND )
-GAME( 1994, ptblank, 0, namconb1, gunbulet, namconb1_state, gunbulet, ROT0, "Namco", "Point Blank (World, GN2 Rev B)", GAME_IMPERFECT_SOUND )
-GAME( 1994, gunbuletj,ptblank, namconb1, gunbulet, namconb1_state, gunbulet, ROT0, "Namco", "Gun Bullet (Japan, GN1)", GAME_IMPERFECT_SOUND )
-GAME( 1994, gunbuletw,ptblank, namconb1, gunbulet, namconb1_state, gunbulet, ROT0, "Namco", "Gun Bullet (World, GN3 Rev B)", GAME_IMPERFECT_SOUND )
-GAME( 1993, gslugrsj, 0, namconb1, nbsports, namconb1_state, gslgr94u, ROT0, "Namco", "Great Sluggers (Japan)", GAME_IMPERFECT_SOUND )
-GAME( 1994, gslgr94u, 0, namconb1, nbsports, namconb1_state, gslgr94u, ROT0, "Namco", "Great Sluggers '94", GAME_IMPERFECT_SOUND )
-GAME( 1994, gslgr94j, gslgr94u, namconb1, nbsports, namconb1_state, gslgr94j, ROT0, "Namco", "Great Sluggers '94 (Japan)", GAME_IMPERFECT_SOUND )
-GAME( 1995, sws95, 0, namconb1, nbsports, namconb1_state, sws95, ROT0, "Namco", "Super World Stadium '95 (Japan)", GAME_IMPERFECT_SOUND )
-GAME( 1996, sws96, 0, namconb1, nbsports, namconb1_state, sws96, ROT0, "Namco", "Super World Stadium '96 (Japan)", GAME_IMPERFECT_SOUND )
-GAME( 1997, sws97, 0, namconb1, nbsports, namconb1_state, sws97, ROT0, "Namco", "Super World Stadium '97 (Japan)", GAME_IMPERFECT_SOUND )
-GAME( 1994, vshoot, 0, namconb1, namconb1, namconb1_state, vshoot, ROT0, "Namco", "J-League Soccer V-Shoot (Japan)", GAME_IMPERFECT_SOUND )
+GAME( 1994, nebulray, 0, namconb1, namconb1, namconb1_state, nebulray, ROT90, "Namco", "Nebulas Ray (World, NR2)", MACHINE_IMPERFECT_SOUND )
+GAME( 1994, nebulrayj,nebulray, namconb1, namconb1, namconb1_state, nebulray, ROT90, "Namco", "Nebulas Ray (Japan, NR1)", MACHINE_IMPERFECT_SOUND )
+GAME( 1994, ptblank, 0, namconb1, gunbulet, namconb1_state, gunbulet, ROT0, "Namco", "Point Blank (World, GN2 Rev B, set 1)", MACHINE_IMPERFECT_SOUND )
+GAME( 1994, ptblanka, ptblank, namconb1, gunbulet, namconb1_state, gunbulet, ROT0, "Namco", "Point Blank (World, GN2 Rev B, set 2)", MACHINE_IMPERFECT_SOUND )
+GAME( 1994, gunbuletj,ptblank, namconb1, gunbulet, namconb1_state, gunbulet, ROT0, "Namco", "Gun Bullet (Japan, GN1)", MACHINE_IMPERFECT_SOUND )
+GAME( 1994, gunbuletw,ptblank, namconb1, gunbulet, namconb1_state, gunbulet, ROT0, "Namco", "Gun Bullet (World, GN3 Rev B)", MACHINE_IMPERFECT_SOUND )
+GAME( 1993, gslugrsj, 0, namconb1, nbsports, namconb1_state, gslgr94u, ROT0, "Namco", "Great Sluggers (Japan)", MACHINE_IMPERFECT_SOUND )
+GAME( 1994, gslgr94u, 0, namconb1, nbsports, namconb1_state, gslgr94u, ROT0, "Namco", "Great Sluggers '94", MACHINE_IMPERFECT_SOUND )
+GAME( 1994, gslgr94j, gslgr94u, namconb1, nbsports, namconb1_state, gslgr94j, ROT0, "Namco", "Great Sluggers '94 (Japan)", MACHINE_IMPERFECT_SOUND )
+GAME( 1995, sws95, 0, namconb1, nbsports, namconb1_state, sws95, ROT0, "Namco", "Super World Stadium '95 (Japan)", MACHINE_IMPERFECT_SOUND )
+GAME( 1996, sws96, 0, namconb1, nbsports, namconb1_state, sws96, ROT0, "Namco", "Super World Stadium '96 (Japan)", MACHINE_IMPERFECT_SOUND )
+GAME( 1997, sws97, 0, namconb1, nbsports, namconb1_state, sws97, ROT0, "Namco", "Super World Stadium '97 (Japan)", MACHINE_IMPERFECT_SOUND )
+GAME( 1994, vshoot, 0, namconb1, namconb1, namconb1_state, vshoot, ROT0, "Namco", "J-League Soccer V-Shoot (Japan)", MACHINE_IMPERFECT_SOUND )
/* YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MNTR, COMPANY, FULLNAME, FLAGS */
-GAME( 1994, outfxies, 0, namconb2, outfxies, namconb1_state, outfxies, ROT0, "Namco", "The Outfoxies (World, OU2)", GAME_IMPERFECT_SOUND )
-GAME( 1994, outfxiesj,outfxies, namconb2, outfxies, namconb1_state, outfxies, ROT0, "Namco", "The Outfoxies (Japan, OU1)", GAME_IMPERFECT_SOUND )
-GAME( 1995, machbrkr, 0, namconb2, namconb1, namconb1_state, machbrkr, ROT0, "Namco", "Mach Breakers - Numan Athletics 2 (Japan)", GAME_IMPERFECT_SOUND )
+GAME( 1994, outfxies, 0, namconb2, outfxies, namconb1_state, outfxies, ROT0, "Namco", "The Outfoxies (World, OU2)", MACHINE_IMPERFECT_SOUND )
+GAME( 1994, outfxiesj,outfxies, namconb2, outfxies, namconb1_state, outfxies, ROT0, "Namco", "The Outfoxies (Japan, OU1)", MACHINE_IMPERFECT_SOUND )
+GAME( 1995, machbrkr, 0, namconb2, namconb1, namconb1_state, machbrkr, ROT0, "Namco", "Mach Breakers - Numan Athletics 2 (Japan)", MACHINE_IMPERFECT_SOUND )
diff --git a/src/mame/drivers/namcond1.c b/src/mame/drivers/namcond1.c
index bef6cecaaa7..5e740e11d4a 100644
--- a/src/mame/drivers/namcond1.c
+++ b/src/mame/drivers/namcond1.c
@@ -70,7 +70,6 @@ Notes:
#include "emu.h"
#include "cpu/m68000/m68000.h"
-#include "video/ygv608.h"
#include "cpu/h8/h83002.h"
#include "includes/namcond1.h"
#include "sound/c352.h"
@@ -80,13 +79,13 @@ Notes:
static ADDRESS_MAP_START( namcond1_map, AS_PROGRAM, 16, namcond1_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
- AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(namcond1_shared_ram_r,namcond1_shared_ram_w) AM_SHARE("shared_ram")
+ AM_RANGE(0x400000, 0x40ffff) AM_RAM AM_SHARE("shared_ram")
AM_RANGE(0x800000, 0x80000f) AM_DEVREADWRITE("ygv608", ygv608_device, read, write)
AM_RANGE(0xa00000, 0xa00fff) AM_DEVREADWRITE8("at28c16", at28c16_device, read, write, 0xff00)
#ifdef MAME_DEBUG
AM_RANGE(0xb00000, 0xb00001) AM_DEVREAD("ygv608", ygv608_device, debug_trigger_r)
#endif
- AM_RANGE(0xc3ff00, 0xc3ffff) AM_READWRITE(namcond1_cuskey_r,namcond1_cuskey_w)
+ AM_RANGE(0xc3ff00, 0xc3ffff) AM_READWRITE(cuskey_r,cuskey_w)
ADDRESS_MAP_END
/*************************************************************/
@@ -223,17 +222,6 @@ static GFXDECODE_START( namcond1 )
GFXDECODE_ENTRY( "gfx1", 0x00000000, pts_16x16_8bits_layout, 0, 256 )
GFXDECODE_END
-WRITE16_MEMBER(namcond1_state::sharedram_sub_w)
-{
- COMBINE_DATA(&m_shared_ram[offset]);
-}
-
-READ16_MEMBER(namcond1_state::sharedram_sub_r)
-{
- return m_shared_ram[offset];
-}
-
-
READ16_MEMBER(namcond1_state::mcu_p7_read)
{
return 0xff;
@@ -252,7 +240,7 @@ WRITE16_MEMBER(namcond1_state::mcu_pa_write)
/* H8/3002 MCU stuff */
static ADDRESS_MAP_START( nd1h8rwmap, AS_PROGRAM, 16, namcond1_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
- AM_RANGE(0x200000, 0x20ffff) AM_READWRITE(sharedram_sub_r, sharedram_sub_w )
+ AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_SHARE("shared_ram")
AM_RANGE(0xa00000, 0xa07fff) AM_DEVREADWRITE("c352", c352_device, read, write)
AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("DSW")
AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("P1_P2")
@@ -319,7 +307,7 @@ static MACHINE_CONFIG_START( namcond1, namcond1_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
- MCFG_C352_ADD("c352", XTAL_49_152MHz/2, C352_DIVIDER_288)
+ MCFG_C352_ADD("c352", XTAL_49_152MHz/2, 288)
MCFG_SOUND_ROUTE(0, "rspeaker", 1.00)
MCFG_SOUND_ROUTE(1, "lspeaker", 1.00)
MCFG_SOUND_ROUTE(2, "rspeaker", 1.00)
@@ -409,8 +397,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", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1995, ncv1j, ncv1, namcond1, namcond1, driver_device, 0, ROT90, "Namco", "Namco Classic Collection Vol.1 (Japan, v1.00)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1995, ncv1j2, ncv1, namcond1, namcond1, driver_device, 0, ROT90, "Namco", "Namco Classic Collection Vol.1 (Japan, v1.03)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, ncv2, 0, namcond1, namcond1, driver_device, 0, ROT90, "Namco", "Namco Classic Collection Vol.2", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_UNEMULATED_PROTECTION )
-GAME( 1996, ncv2j, ncv2, namcond1, namcond1, driver_device, 0, ROT90, "Namco", "Namco Classic Collection Vol.2 (Japan)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_UNEMULATED_PROTECTION )
+GAME( 1995, ncv1, 0, namcond1, namcond1, driver_device, 0, ROT90, "Namco", "Namco Classic Collection Vol.1", MACHINE_IMPERFECT_SOUND | 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_SOUND | 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_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1996, ncv2, 0, namcond1, namcond1, driver_device, 0, ROT90, "Namco", "Namco Classic Collection Vol.2", MACHINE_IMPERFECT_SOUND | 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_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/namcops2.c b/src/mame/drivers/namcops2.c
index 3aaeff225ad..d22aa7ab8c7 100644
--- a/src/mame/drivers/namcops2.c
+++ b/src/mame/drivers/namcops2.c
@@ -17,69 +17,856 @@
with 2 MB of wave RAM, a 48 kHz sample rate (vs. 44.1 on PS1), and 2
stereo DMADACs.
-List of Namco System 246 games:
-* Battle Gear 3 (Taito, 2002)
-* Battle Gear 3 Tuned (Taito, 2003)
-* Bloody Roar 3 (Namco / 8ing / Raizing, 2000)
-* Capcom Fighting Jam (Capcom, 2004)
-* Cobra: The Arcade (Namco, 2004)
-* Dragon Chronicles (Namco, 2002)
-* Fate/Unlimited Codes (Capcom / Type-Moon / Cavia / 8ing, 2008)
-* Getchu Play! Tottoko Hamutaro (Banpresto, 2007)
-* Mobile Suit Gundam SEED: Federation Vs. Z.A.F.T. (Capcom / Banpresto, 2005)
-* Mobile Suit Gundam SEED Destiny: Federation Vs. Z.A.F.T. II (Banpresto, 2006)
-* Mobile Suit Gundam Z: AEUG Vs. Titans (Capcom / Banpresto, 2003)
-* Mobile Suit Gundam Z: AEUG Vs. Titans DX (Capcom / Banpresto, 2004)
-* Minnade Kitaeru Zennou Training (Namco, 2006)
-* Netchuu Pro Yakyuu 2002 (Namco, 2002)
-* Pride GP 2003 (Capcom, 2003)
-* Quiz and Variety Sukusuku Inufuku 2 (Namco / AMI / Hamster, 2007)
-* Quiz Mobile Suit Gundam: Tou. Senshi (Banpresto, 2006)
-* Ridge Racer V: Arcade Battle (Namco, 2000)
-* Sengoku Basara X Cross (Capcom / ARC System Works, 2008)
-* Smash Court Pro Tournament (Namco, 2001)
-* Soul Calibur II (Namco, 2002)
-* Soul Calibur II Ver.D (Namco, 2003)
-* Soul Calibur III Arcade Edition (Namco, 2006)
-* Taiko No Tatsujin 7 (Namco, 2005)
-* Taiko No Tatsujin 8 (Namco, 2006)
-* Technic Beat (Arika, 2002)
-* Tekken 4 (Namco, 2001)
-* Time Crisis 3 (Namco, 2002)
-* Vampire Night (Namco / Sega / WOW Entertainment, 2000)
-* Wangan Midnight (Namco, 2001)
-* Wangan Midnight R (Namco, 2002)
-* Zoids Infinity (Taito, 2004)
-
-List of Namco System 256 Games
-* Chou Dragon Ball Z (Banpresto, 2005)
-* Druaga Online - The Story of Aon (Namco, 2005)
-* Kinnikuman Muscle Grand Prix (Banpresto, 2006)
-* Kinnikuman Muscle Grand Prix 2 (Banpresto, 2007)
-* Kinnikuman Muscle Grand Prix 2 Tokumori (Banpresto, 2008)
-* Mobile Suit Gundam SEED Destiny: Federation Vs. Z.A.F.T. II (Banpresto, 2006)
-* Mobile Suit Gundam: Gundam Vs. Gundam (Banpresto, 2008)
-* Mobile Suit Gundam: Gundam Vs. Gundam Next (Banpresto, 2009)
-* Quiz and Variety Sukusuku Inufuku 2 (Namco / AMI / Hamster, 2007)
-* Sengoku Basara X Cross (Capcom / ARC System Works, 2008)
-* Taiko No Tatsujin 9 (Namco, 2006)
-* Taiko No Tatsujin 10 (Namco, 2007)
-* Taiko No Tatsujin 11 (Namco, 2008)
-* Taiko No Tatsujin 12 (Namco, 2008)
-* Taiko No Tatsujin 12 Don! (Namco, 2009)
-* Taiko No Tatsujin 13 (Namco, 2009)
-* Taiko No Tatsujin 14 (Namco, 2010)
-* Tekken 5 (Namco, 2004)
-* Tekken 5.1 (Namco, 2005)
-* Tekken 5 Dark Resurrection (Namco, 2005)
-* The Battle of YuYu Hakusho (Banpresto, 2006)
-* THE iDOLM@STER (Namco, 2005)
-* Zoids Infinity EX (Taito, 2005)
-* Zoids Infinity EX Plus (Taito, 2006)
-
-List of System Super 256 Games
-* Time Crisis 4 (Namco, 2006)
+Namco System 246, 256 & Super System 256 Hardware Overview
+Namco 2001-2010
+
+Games on System 246/256/S256 include.....
+(Note this list is not complete and other versions or games may exist)
+ Media Type Game ID &
+Name from title screen System Media ID (HDD/CD/DVD) Cart ID Revision Company/Year Notes
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+Battle Gear 3 (Japan)........................... XX34XXX M9005793A VER.2.04J HDD (20GB) NM00010 B3900065A Taito 2002 \ HDD: Western Digital WD200EB
+Battle Gear 3 (Export).......................... XX34XXX M9005793A VER.2.04J HDD (20GB) NM00010 *? Taito 2002 | All require Taito JVS Universal I/O board K91X0951A otherwise no boot-up
+Battle Gear 3 Tuned (Japan)..................... XX34XXX M9006066A VER.2.03J HDD (30GB) NM00015 *B3900074B Taito 2003 | Dongle selects region using same HDD's
+Battle Gear 3 Tuned (Export).................... XX34XXX M9006066A VER.2.03J HDD (30GB) NM00015 B3900074C Taito 2003 / HDD: Maxtor Fireball 3 30GB 2F030L0
+Bloody Roar 3................................... 1234XXX BRT1-A CD NM00002 BRT1 Ver.A Namco/8ing/Raizing 2000
+Capcom Fighting Jam/Capcom Fighting Evolution... XXXX56X JAM1 DVD0 DVD NM00018 JAM1 Ver.A Capcom 2004
+Cobra The Arcade................................ XXXX56X CBR1-HA HDD (40GB) NM00021 CBR1 Ver.B Namco 2004 Requires RAYS I/O PCB and IR guns and IR sensors. HDD: Maxtor DiamondMax Plus 8 40GB 6E040L0
+Dragon Chronicles (satellite)................... ------X *DCO31-TS CD0 *CD NM00020 DC001 Ver.A Namco 2002 \
+Dragon Chronicles Legend of the Master Ark (sat) ------X *DGC11 CD0 *CD *NM00014 *DGC11 Ver.A1 Namco 200? | server is a custom PC
+Druaga Online The Story Of Aon (satellite)...... XXXX56X DOL160-1-ST-DVD0-H DVD NM00028 DOL165-1-ST-I Ver1.65 Namco 2004 |
+ " ...... XXXX56X DOL150-1-ST-DVD0-G DVD NM00028 *? Namco 2004 |
+ " ...... XXXX56X DOL140-1-ST-DVD0-F DVD NM00028 *? Namco 2004 |
+ " ...... XXXX56X DOL120-1-ST-DVD0-D DVD NM00028 *? Namco 2004 |
+ " ...... XXXX56X DOL110-1-ST-DVD0-C DVD NM00028 *? Namco 2004 /
+Fate / Unlimited Codes.......................... X23456X FUD-HDD0-A HDD (80GB) NM00048 FUD1 Ver.A Capcom/Type-Moon/Cavia/8ing 2008 HDD: Western Digital WD800BB
+Gundam vs Gundam Next........................... XXXX56X GNX100-1-NA-HDD0-A HDD (80GB) NM00052 GNX1001-NA-A Bandai/Capcom 2009 HDD: Western Digital WD800BB
+Idol Master..................................... ------X *IDM1-HA *HDD *NM00022 *IDMS1 Ver.A Namco 2004
+Kinnikuman Muscle Grand Prix.................... XXXX56X KN1-B DVD NM00029 KN1 Ver.A Banpresto 2006 #
+Kinnikuman Muscle Grand Prix 2.................. XXXX56X KN2 DVD NM00040 KN2 Ver.A Banpresto 2007 #
+Minna de Kitaeru Zenno Training................. ------X *ZNT100-1-NA-DVD0 *DVD *NM00036 *ZNT100-1-ST-A Namco 2006
+Mobile Suit Gundam - Gundam vs Gundam........... XXXX56X GVS1 DVD0B DVD NM00043 GVS1 Ver.A Bandai/Capcom 2008
+Mobile Suit Gundam SEED O.M.N.I. vs Z.A.F.T..... 123456X SED1 DVD0 DVD NM00024 SED1 Ver.A Banpresto 2005 % #
+M.S. Gundam SEED Destiny O.M.N.I. vs Z.A.F.T. II 123456X GSD1 DVD0 DVD NM00034 GSD1 Ver.A Banpresto 2006 % #
+Mobile Suit Z Gundam A.E.U.G. vs Titans......... 123456X ZGA1 DVD0 DVD NM00013 ZGA1 Ver.A Capcom/Banpresto 2003 %
+Mobile Suit Z Gundam DX A.E.U.G. vs Titans...... 12X456X ZDX1 DVD0 DVD NM00017 ZDX1 Ver.A Capcom/Banpresto 2003 %
+Netchuu Pro Yakyuu 2002......................... X23XXXX NPY1 CD0B CD NM00009 NPY Ver.B Namco 2002
+Pride GP 2003................................... 123456X PR21 DVD0 DVD NM00011 PR21 Ver.A Capcom 2003 %
+Quiz Mobile Suit Gundam Tou Senshi.............. 123456X QG1 DVD NM00030 QG1 Ver.A Banpresto 2006 %
+Ridge Racer V Arcade Battle..................... 1XXXXXX RRV1-A CD NM00001 RRV1 Ver.A Namco 2001
+ " ..................... 1XXXXXX RRV1-A CD NM00001 RRV2 Ver.A Namco 2001
+ " ..................... 1XXXXXX RRV1-A CD NM00001 *RRV2 Ver.B Namco 2001
+ " ..................... 1XXXXXX RRV1-A CD NM00001 RRV3 Ver.A Namco 2001
+Sengoku Basara X Cross.......................... 123456X BAX1 DVD0 DVD NM00042 BAX1 VER.A Capcom/ARC System Works 2007 % #
+Smash Court Pro Tournament...................... ------X SCP1 CD0 CD NM00006 SCP1 Ver.A Namco 2001
+Soul Calibur II................................. 123456X SC21 DVD0 DVD NM00007 SC21 Ver.A Namco 2002 \
+ " Rev. B.......................... 123456X SC21 DVD0B DVD NM00007 SC23 Ver.A Namco 2002 | # @ 1st & rev B DVD needs campaign memory card
+ " Rev. D.......................... 123456X SC21 DVD0D DVD NM00007 SC22 Ver.D Namco 2002 / rev D will allow skipping it if not available
+Soul Calibur III Arcade Edition................. 123456X SC31001-NA-DVD0-A DVD NM00031 SC31001-NA-A Namco 2005 \
+ " ................. 123456X SC31001-NA-DVD0-B DVD NM00031 SC31001-NA-A Namco 2005 / # % @
+Sukusuku Inufuku 2 / The Dog Luck 2............. 123456X HM-IN2 CD NM00037 IN2 Ver.A Hampster/Video System 2007
+Super Dragonball Z / Chou Dragonball Z.......... XXXX56X DB1 DVD NM00027 DB1 Ver.B Banpresto 2005
+Taiko no Tatsujin 7............................. ------X TK71 DVD0 DVD NM00023 TK71 Ver.A Namco 2005
+Taiko no Tatsujin 8............................. ------X TK8100-1-NA-DVD0-A DVD NM00033 TK81001-NA-A Namco 2006
+Taiko No Tatsujin 9............................. XXXX56X TK9100-1-NA-DVD0-A DVD NM00038 TK91001-NA-A Namco 2006
+Taiko No Tatsujin 10............................ XXXX56X TK10100-1-NA-DVD0-A DVD NM00041 TK101001-NA-A Namco 2007
+Taiko No Tatsujin 11............................ ------X *TK11100-1-NA-DVD0-A *DVD *NM00044 *TK111001-NA-A Namco 2008
+Taiko No Tatsujin 12............................ ------X *TK12-HA *HDD *NM00051 *TK121001-NA-A Namco 2008
+Taiko No Tatsujin 12 More....................... ------X *TK12200-1-NA-HDD-A *HDD *NM00051 *TK121001-NA-A Namco 2008
+Taiko No Tatsujin 13............................ ------X *TK1301-NA-HDD0-A1 *HDD *NM00056 *TK1301-NA-A Namco 2009
+Taiko No Tatsujin 14............................ ------X *T141001-NA-HDD0-A *HDD *NM00057 *TK141001-NA-A Namco 2010
+Taiko No Tatsujin 14 More....................... ------X *T141002-NA-HDD0-A *HDD *NM00057 *TK141002-NA-A Namco 2010
+Technic Beat.................................... ------X *TNB1 DVD0 *DVD *NM000?? *TNB1 Ver.A Arika 2002
+Tekken 4........................................ 1234XXX TEF1 DVD0 DVD NM00004 TEF1 Ver.A Namco 2001 \
+ " ........................................ 1234XXX TEF1 DVD0 DVD NM00004 TEF1 Ver.C Namco 2001 |
+ " ........................................ 1234XXX TEF1 DVD0 DVD NM00004 TEF1 Ver.D Namco 2001 | %
+ " ........................................ 1234XXX TEF1 DVD0 DVD NM00004 TEF2 Ver.A Namco 2001 |
+ " ........................................ 1234XXX TEF1 DVD0 DVD NM00004 TEF3 Ver.A Namco 2001 |
+ " ........................................ 1234XXX TEF1 DVD0 DVD NM00004 TEF3 Ver.C Namco 2001 /
+Tekken 5........................................ XXXX56X TE51 DVD0 DVD NM00019 *TE51 Ver.A Namco 2004 \
+ " ........................................ XXXX56X TE51 DVD0B DVD NM00019 TE51 Ver.B Namco 2004 | @
+Tekken 5.1...................................... XXXX56X *TE52 DVD0 *DVD NM00019 *TE52 Ver.A Namco 2005 |
+ " ...................................... XXXX56X TE52 DVD0B DVD NM00019 TE52 Ver.B Namco 2005 |
+ " ...................................... XXXX56X TE52 DVD0B DVD NM00019 TE53 Ver.B Namco 2005 /
+Tekken 5 Dark Resurrection...................... XXXX56X TED1 DVD0 DVD NM00026 TED1 VER.A Namco 2005
+ " ...................... XXXX56X TED1 DVD0B DVD NM00026 *TED2 VER.A Namco 2005
+The Battle of Yu Yu Hakusho Dark Tournament..... ------X YH1 DVD NM00035 YH1 Ver.A Banpresto 2006
+Time Crisis 3................................... 1234XXX TST1 DVD0 DVD NM00012 TST1 Ver.A Namco 2002 \ Uses 'V185 I/O PCB' for light guns
+ " ................................... 1234XXX TST1 DVD0 DVD NM00012 TST2 Ver.A Namco 2002 | or 'V221 MIU PCB' for CCD camera guns
+ " ................................... 1234XXX TST1 DVD0 DVD NM00012 *TST3 Ver.A Namco 2002 / %
+Time Crisis 4................................... XXXXXX7 TSF1-HA HDD (40GB) NM00032 TSF1002-NA-A Namco 2005 Uses 'V329 NA-JV PCB' for guns
+Vampire Night................................... 1234XXX VPN1 CD0 CD NM00003 VPN3 Ver.B Namco/Sega/WOW Entertainment 2000
+Wangan Midnight (Japan)......................... 1XXXXXX WMN1-A CD NM00008 WMN1 Ver.A Namco 2001
+ " (Japan)......................... 1XXXXXX WMN1-A CD NM00008 *WMN1 Ver.B Namco 2001
+ " (Export)........................ 1XXXXXX *WMN2-A CD NM00008 *WMN2 Ver.A Namco 2001
+ " (Export)........................ 1XXXXXX *WMN2-A CD NM00008 *WMN2 Ver.B Namco 2001
+Wangan Midnight R............................... 1XXXXXX WMR1-A CD NM00005 WMR1 Ver.A Namco 2002
+Zoids Infinity.................................. ------X M9006212A Ver.2.02J HDD (40GB) NM00016 B3900076A Taito 2004 HDD: Maxtor Fireball 3 40GB 2F040L0
+Zoids Infinity Ex............................... ------X *? *HDD NM00025 *B3900098B Taito 2005
+Zoids Infinity Ex Plus.......................... ------X M9006907A Ver.2.10J HDD (20GB) NM00025 B3900107A Taito 2006 HDD: Seagate ST320014A
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+* - denotes these items are NOT dumped
+? - unknown info
+
+Unused NM000xx numbers:
+NM00039 ?
+NM00045 ?
+NM00046 ?
+NM00047 ?
+NM00049 ?
+NM00050 ?
+NM00052 ?
+NM00053 ?
+NM00054 ?
+NM00055 ?
+
+Note about System:
+This is a general guideline flag showing compatibility between the different revisions of System 246 hardware.
+1-7: Tested Working
+X : Tested Not Working
+- : Not Tested
+% : 1 and 2; For testing purposes these games need a DVD drive. Using this hardware to play the actual game is
+ normally impossible due to requiring controls/IO boards that can't be connected to this hardware version.
+# : 5 and 6; Working only in S246+ mode.
+@ : Multiple different DVD's and/or dongles are available and are compatible in any combination.
+
+For 'Tested Working', working is defined as "boots to the attract mode".
+Some games need specific controls and are unplayable even though the game loads (eg. most games on earliest rev 246
+or the driving or gun games on non-factory-provided hardware). Some games will start to boot but either get stuck
+somewhere in the boot process or nothing loads after the initial booting.
+The DVD drive used for these tests was a Toshiba/Samsung SD-M1802. In the case where the original drive didn't work
+(i.e. factory drive was a CDROM and the disc was a DVD), this drive was substituted.
+Finally, all games were tested with the SD-M1802 and worked, therefore no game requires a specific make and model of
+optical drive to BOOT. But of course not all drive models will work or work for extended periods. YMMV.
+These makes and models have been tested and worked.....
+H-L Data Storage LG GSA-4164B Super Multi DVD Drive (September 2005)
+H-L Data Storage LG GSA-4082B Super Multi DVD Drive (February 2004)
+H-L Data Storage LG GCC-4120B CD-RW/DVD-ROM Drive (April 2002)
+NEC DV-5800C DVD-ROM Drive (February 2004)
+Sony DW-U10A (May 2003) (Factory Supplied)
+Toshiba/Samsung SD-616 DVD-ROM Drive (December 2001) (Factory Supplied)
+Toshiba/Samsung SD-816 DVD-ROM Drive (Factory Supplied)
+Toshiba/Samsung SD-M1612 DVD-ROM Drive (January 2003) (Factory Supplied)
+Toshiba/Samsung SD-M1712 DVD-ROM Drive (November 2003) (Factory Supplied)
+Toshiba/Samsung SD-M1802 DVD-ROM Drive (August 2007 & December 2007) (Both factory Supplied)
+
+Different security cart revisions of the same game are filled in with the same status even if they are not dumped as
+long as at least one revision is tested.
+
+1 = 246 1st generation using COH-H30000 or COH-H31000 Playstation 2 main board (GH-004/GH-006 with PS2 power supply)
+ and custom Namco interface board 'System 246 MOTHER PCB' and Teac CD-540E CD drive
+2 = 246A 2nd generation using COH-H30000 or COH-H31000 Playstation 2 main board (GH-004/GH-006 with PS2 power supply)
+ and custom Namco interface board 'System 246 MOTHER(A) PCB' and Teac CD-540E CD drive
+3 = 246B 3rd generation using COH-H31000 Playstation 2 main board (GH-006 without PS2 power supply) and custom Namco
+ interface board 'System 246 PMOTHER PCB'
+4 = 246C 4th generation using integrated single main board 'System 246 Main PCB'
+5 = 256 5th generation using integrated single main board 'System 256 Main PCB'. Note some games requiring S246 will
+ work in S246+ mode.
+6 = 256B 6th generation using integrated single main board 'System 256 Main(B) PCB'. Note some games requiring S246
+ will work in S246+ mode.
+7 = S256 7th generation using integrated single main board 'Super System 256 Main PCB'. All other games are X because
+ this system only runs Time Crisis 4.
+
+
+Namco System 246 readme (earliest type using standard PS2 main board)
+-----------------------
+The info below covers the first version of Namco System 246 hardware used with
+games including Ridge Racer V, Wangan Midnight, Vampire Night and Bloody Roar 3.
+It uses a standard Japanese COH-H30000 Playstation 2 main board (GH-004).
+A later model Playstation 2 main board COH-H31000 (GH-006) has also been tested and works fine.
+The PS2 main board is interfaced to the Namco MOTHER PCB via a small adapter board.
+The boot ROM is inside a MagicGate security cart and plugs into the memory cart slot.
+After the boot ROM loads, some of the game data is loaded from CDROM and stored in the
+RAM32 PCB. However, the CDROM is continually accessed as the game plays.
+The CDROM drive is a TEAC CD-540E.
+
+
+PCB Layouts
+===========
+
+Namco Interface Board (1st version)
+---------------------
+This PCB is used with Ridge Racer V and Wangan Midnight.
+
+System 246 MOTHER PCB
+8908960202 (8908970202)
+|------------------------------------------------------------------------------|
+|J1 ADM485 Ti6734 |------| J12 |
+| 6358N TMP95C061 | C448 | |
+| MAX232 | | |
+|J2 |------| |
+| CY7C199 |
+| K4S281632 |
+| CXA2055P K4S281632 |
+| J11 |
+|J3 66.666MHz |
+| J13 |--------| J10 |
+| EPM3128 |ALTERA | |
+| |EP20K100E |
+|J4 LC35256 |QC208 | |
+| |--------| |
+| |
+| |
+| J6 |
+| |
+|J5 BATTERY PQ30RV31 |
+| J7 J8 J9 |
+|------------------------------------------------------------------------------|
+Notes:
+ J1 - USB connector (not used)
+ J2 - Two RCA jacks for stereo audio output
+ J3/J4 - DSUB15 VGA output connectors
+ J5 - 3-pin connector (joins to V257 STR PCB to J104)
+ J6 - Multi-pin connector (PS2 interface adapter plugged in here)
+ J7 - Playstation 2 video cable connector (input)
+ J8 - 2-pin power connector (+5V input)
+ J9 - 40-pin IDE flat cable connector for CDROM drive
+ J10 - Multi-pin connector (this is the same as the J9 connector on the 2nd version, not used)
+ J11 - Multi-pin connector (RAM32 PCB plugged in here, same as J10 on 2nd version)
+ J12 - Multi-pin connector (this is the same as the J8 connector on the 2nd version, not used)
+ J13 - 6-pin connector for programming EPM3128 CPLD (not populated)
+TMP95C061 - Toshiba TMP95C061 TLCS-900-series 16-bit Microcontroller (internal RAM/ROM = none)
+ C448 - Namco Custom C448
+ EPM3128 - Altera MAX EMP3128ATC100-10 CPLD labelled 'P2AMO1'
+ CXA2055P - Sony CXA2055P Video Amplifier IC
+ Ti6734 - Texas Instruments LMH6734 Single Supply, Ultra High-Speed, Triple Selectable Gain Buffer
+ 6358N - Sanyo 6358N High-Performance Dual Operational Amplifier
+ PQ30RV31 - Sharp PQ30RV31 Voltage Regulator
+ CY7C199 - Cypress CY7C199-15VC 32k x8-bit SRAM
+ LC35256 - Sanyo LC35256DM70 32k x8-bit SRAM
+ EP20K100 - Altera APEX EP20K100EQC208-2X FPGA
+K4S281632 - Samsung K4S281632B-TC1H 8M x16-bit SDRAM
+ ADM485 - Analog Devices ADM485 5V Low Power EIA RS-485 Transceiver
+ MAX232 - Maxim MAX232 dual serial to TTL logic level driver/receiver
+
+
+Namco Interface Board (2nd version)
+---------------------
+This PCB is used with Bloody Roar 3 and Vampire Night.
+
+System 246 MOTHER(A) PCB
+8908961500 (8908971500)
+|------------------------------------------------------------------------------|
+| |------| BATTERY |
+| J2 TMP95C061 | C448 | |
+|J1 | | LC35256 |
+| |------| K4S281632 |
+| 66.666MHz K4S281632 |
+| J11 CY7C199 |
+| EPM3128 |--------| J10 |
+| |ALTERA | |
+| |EP20K100E |
+| |QC208 | J9 |
+| |--------| |
+| Ti6734 |
+| |
+| SP232EET 6358N |
+| |
+|J3 J4 J8 |
+| |
+| CXA2055P |
+| PQ30RV31 |
+| J5 J6 J7 |
+|------------------------------------------------------------------------------|
+Notes:
+ J1 - USB connector (not used for Bloody Roar 3)
+ J2 - I/O board connector
+ J3 - PAC PCB connector
+ J4 - Multi-pin connector (PS2 interface adapter plugged in here)
+ J5 - 2-pin power connector (+5V input)
+ J6 - Playstation 2 video cable connector (input)
+ J7 - 40-pin IDE flat cable connector for CDROM drive
+ J8 - Multi-pin connector labelled 'ROM' (not used)
+ J9 - Multi-pin connector labelled 'RAM2' (not used)
+ J10 - Multi-pin connector labelled 'RAM1' (RAM32 PCB plugged in here)
+ J11 - 6-pin connector for programming EPM3128 CPLD (not populated)
+TMP95C061 - Toshiba TMP95C061 TLCS-900-series 16-bit Microcontroller (internal RAM/ROM = none)
+ C448 - Namco Custom C448
+ EPM3128 - Altera MAX EMP3128ATC100-10 CPLD labelled 'P2AMO1'
+ CXA2055P - Sony CXA2055P Video Amplifier IC
+ Ti6734 - Texas Instruments LMH6734 Single Supply, Ultra High-Speed, Triple Selectable Gain Buffer
+ 6358N - Sanyo 6358N High-Performance Dual Operational Amplifier
+ PQ30RV31 - Sharp PQ30RV31 Voltage Regulator
+ CY7C199 - Cypress CY7C199-15VC 32k x8-bit SRAM
+ LC35256 - Sanyo LC35256DM70 32k x8-bit SRAM
+ EP20K100 - Altera APEX EP20K100EQC208-2X FPGA
+K4S281632 - Samsung K4S281632B-TC1H 8M x16-bit SDRAM
+
+
+Add-on Memory Boards (plugs into J10 on MOTHER(A) PCB)
+--------------------
+
+System246 RAM32 PCB
+8908960400 (8908970400)
+|--------------|
+| 16M 16M |
+| |
+| J1 |
+|--------------|
+Notes:
+ 16M - Samsung K4S281632B-TC1H 128Mbit (2Mbit x16-bit x 4 banks) SDRAM
+ J1 - Multi-pin connector
+This PCB is used with Bloody Roar 3, Vampire Night and Ridge Racer V.
+
+System246 RAM64 PCB
+8908962800 (8908972800)
+|--------------|
+|16M 16M |
+| 16M 16M |
+| J1 |
+|--------------|
+Notes:
+ 16M - Hyundai HY57V281620AT-P 128Mbit (2Mbit x16-bit x 4 banks) SDRAM
+ J1 - Multi-pin connector
+This PCB is used with Wangan Midnight and Wangan Midnight R.
+
+
+PS2 Adapter Board
+-----------------
+This PCB is used with Bloody Roar 3, Vampire Night, Ridge Racer V and Wangan Midnight.
+
+System246 T004 PCB
+8908960501 (8908970501)
+|----------------|
+| *J1 |
+| J2 |
+|----------------|
+Notes:
+ J1 - Multi-pin connector (*located on other side of PCB, plugs into J4 on MOTHER(A) PCB)
+ J2 - Multi-pin connector (plugs into PS2 main board)
+
+
+I/O Board
+---------
+This PCB is used with Bloody Roar 3. It is bolted into the metal box and the JAMMA
+edge connector sits perpendicular to the front face of the metal box protruding outwards.
+
+System246 JAMMA PCB
+8908961601 (8908971601)
+|--------------------------------------------|
+|TLP281-4 J6 TLP281-4 LA4705 |
+| TLP281-4 |
+| EPM7064 BA3121 |
+| J5 TLP281-4 |
+| TLP281-4 TLP281-4 TLP281-4 |
+| TLP281-4 TLP281-4 VOLUME |
+|J4 J2 J1|
+|--| J3 JAMMA |-------------|
+ |---------------------------|
+Notes:
+ J1 - 4-pin connector for stereo audio output
+ J2 - 10-pin connector for extra buttons
+ J3 - JAMMA connector
+ J4 - 2-pin power connector for 5V
+ J5 - 6-pin connector for programming CPLD (not populated)
+ J6 - Multi-pin connector (located on other side of PCB, plugs into J2 on MOTHER(A) PCB)
+ EPM7064 - Altera MAX EPM7064STC100-10 CPLD labelled 'S246 J01'
+ BA3121 - Rohm BA3121 Ground Isolation Amplifier IC
+TLP281-4 - Toshiba TLP281-4 Optocoupler
+ LA4705 - Sanyo LA4705 2-channel BTL Power Amplifier
+
+Connector J2 pinout Connector J1 pinout
+1 - GND 1 - Left +
+2 - NC 2 - Left -
+3 - P1 Button 4 3 - Right +
+4 - P1 Button 5 4 - Right -
+5 - P1 Button 6
+6 - NC
+7 - P2 Button 4
+8 - P2 Button 5
+9 - P2 Button 6
+10- GND
+
+
+Power Input/Video Output/Audio Output Board
+-------------------------------------------
+This PCB is used with Bloody Roar 3 and Vampire Night. It is bolted to the front of the metal box.
+
+System246 PAC PCB
+8908961700 (8908971700)
+ |----------------------------|
+ | G5LE-1 |
+ | |
+ | J6 J7 L1|
+|------------------------| J9 J10 |
+| J3 J4 J5 J8 L2|
+|J1 J2 SW1 |
+|-----------------------------------------------------|
+Notes:
+ J1/J2 - RCA jacks for stereo audio output (mono audio is also output from the JAMMA connector on the I/O board
+ for Bloody Roar 3)
+ J3 - Multi-pin connector (located on other side of PCB, plugs into J3 on MOTHER(A) PCB)
+ J4 - 4-pin connector (not used)
+ J5 - 3-pin connector (not used)
+ J6/J7 - DSUB15 VGA output connectors
+ J8 - 10-pin power output connector for 5V/12V (located on other side of PCB, joins
+ to PS2 main board, MOTHER(A) PCB and CDROM drive)
+ J9 - 6-pin JVS power input connector
+ J10 - 4-pin power connector
+ G5LE-1 - Omron G5LE-1 single-pole 10A power relay (located on other side of PCB)
+ SW1 - 4-position DIP switch (all OFF)
+ L1 - Green LED (lights when 5 volts is present)
+ L2 - Blue LED (lights when 12 volts is present)
+
+
+Gun I/O Boards
+--------------
+
+V185 I/O PCB
+2479961102 (2479971102)
+|-----------------------------------------|
+| J601 LED1 LED2 |-------| |
+| DSW(4)JP1 |-------| |TSSIO | |
+| |-----| | C78 |14.746MHz|PLD | |
+| |TSSIO| | |PST592 |-------| |
+| |PROG | |-------| |
+| |-----| |
+| |
+| 62256 |
+|ADM485 |
+|J1 SLA4060 J5|
+| J3 J4 |
+|-----------------------------------------|
+Notes:
+ TSSIOPROG - Atmel AT29C020 EEPROM stamped 'TSSIOP8' (PLCC32)
+ C78 - Namco Custom C78, actually a rebadged Hitachi HD643334 MCU, clock input 14.746MHz (PLCC84)
+ TSSIOPLD - Altera MAX EPM7128ELC84 CPLD with label 'TSSIOPLD' (PLCC84)
+ SLA4060 - Sanken Electric SLA4060 NPN general purpose darlington transistor (used to drive the kick-back
+ solenoid in the gun)
+ PST592 - System Reset IC (SOIC4)
+ J1 - 12 pin connector for power and I/O communication joined to main board
+ J3 - 12 pin connector for cabinet buttons UP/DOWN/ENTER/TEST/SERVICE/COIN etc
+ J4 - 4-pin connector for pedal
+ J5 - 6 position connector for gun trigger/optical signal/power/gnd)
+ J601 - not used?
+ JP1 - jumper set to 1-2 (lower position), labelled 'WR'
+ DSW - 4 position dipswitch block, all off
+
+This board is used with Time Crisis 3 (System 246B/C twin CRT-screen version)
+It's also used with Time Crisis II (on System 23)
+Note this board requires a standard light gun.
+
+
+V221 MIU PCB
+2512960101 (2512970101)
+additional sticker for Vampire Night says '8662969301 (JV) TMIU PCB'
+|---------------------------------------------|
+|J10 J9 29C020 LC35256 DSW(4) |
+| M0105 PRG.8F LED |
+|2267 6393 LED |
+| T082 T082 |------| |
+| |--------| | C78 | J8 |
+| |ALTERA | | | |
+|J11 |MAX | |------| J7|
+| LM1881 |EPM7128 | 3771 |
+|R305526 |--------| |
+| ZUW1R51212 14.746MHz |
+| ADM485 J6|
+| |
+| J1 J2 J3 J4 J5 |
+|---------------------------------------------|
+Notes:
+ 2267 - JRC2267 Current limiting diode array? (SOIC8)
+ R305526 - Some kind of mini transformer or regulator?
+ LC35256 - Sanyo LC35256 32k x8 SRAM (SOP28)
+ LM1881 - National Semiconductor LM1881 Video Sync Separator (SOIC8)
+ M0105 - Matsushita Panasonic 0105 = ? (SOIC16)
+ T082 - Texas Instruments T082 (=TL082) JFET-Input operational amplifier (SOIC8)
+ 6393 - Sanyo 6393 (LA6393) High Performance Dual Comparator (SOIC8)
+ ADM485 - Analog Devices ADM485 5V Low Power EIA RS-485 Transceiver (SOIC8)
+ 3771 - Fujitsu MB3771 Power Supply Monitor and Master Reset IC (SOIC8)
+ EPM7128 - Altera MAX EPM7128SLC84-15 PLD labelled 'TMIU1 PLD0'
+ 29C020 - location for 29C020 PLCC32 Flash/EP ROM (not populated)
+ZUW1R51212 - Cosel ZUW1R51212 DC to DC Power Supply Module (input 9-18VDC, output +-12VDC or +24VDC)
+ DSW - 4 position dipswitch block, all off
+ J1 - 6-pin power input connector
+ J2 - 12-pin connector (cabinet buttons UP/DOWN/ENTER/TEST/SERVICE/COIN etc)
+ J3 - 4 pin connector (not used)
+ J4 - 9 pin Namco female plug connector for gun (solenoid +24V/trigger/pedal/sensor)
+ J5 - 5 pin connector used for I/O --> S246 communications (connects to J1 on MOTHER(A) PCB)
+ J6 - 7-pin connector (not used)
+ J9 - 6-pin connector (not used)
+ J10 - 2-pin Namco female plug connector (not used)
+ J11 - 6-pin Namco female plug connector (video input from CCD camera)
+ PRG.8F - 27C1001 EPROM with label...
+ - 'TMIU1 PRG0B' (I/O program for Vampire Night)
+ - 'XMIU1 PRG0' (I/O program for Time Crisis 3)
+ - 'CSZ1 PRG0A' (I/O program for Crisis Zone)
+
+This PCB is used with Vampire Night and Time Crisis 3 (DX projector-screen version on System 246B/C)
+It's also used with Crisis Zone (on System 23 Evolution2)
+Note this board requires a CCD camera gun sensor.
+
+
+JVS I/O RAYS PCB
+8903960101 (8903970101)
+|---------------------------------------------|
+| DSW(4) DSW(4) SDRAM 33.33MHz|
+| |-----| |
+| EPM7064 | SH4 | |
+|J10 24.576MHz |-----| |
+| FLASH.8D LLLLLLLL XCS20XL |
+| |
+| KS0127B |
+| |
+| NJM2267 |
+| ADM485 |
+|J9 L |
+| |
+| J8 J7 J6 J5 J4 J3 J2 J1 |
+|---------------------------------------------|
+Notes:
+ SH4 - Hitachi HD6417750 SH4 CPU
+ FLASH.8D - SHARP LH28F160S5T-L70 Flash ROM labelled 'JVS RAYS OA' (TSOP56)
+ SDRAM - SAMSUNG 2M x32-bit SDRAM (TSSOP86)
+ EPM7064 - Altera MAX EPM7064 CPLD labelled 'JVS RAY 1A' (TQFP100)
+ XCS20XL - Xilinx Spartan XCS20XL FPGA (TQFP144)
+ KS0127B - Samsung Multistandard Composite to RGB Video Decoder & Scaler (PQFP100)
+ NJM2267 - New Japan Radio NJM2267 Dual Video Amplifier (TSSOP8)
+ ADM485 - Analog Devices ADM485 RS-485 Transceiver (SOIC8)
+ DSW - 4 position dipswitch block, all off
+ L - LED
+ J1 - 6-pin connector for power input
+ J2 - 3-pin connector (not used)
+ J3 - 2-pin connector (not used)
+ J4 - 6-pin connector for CCD camera input
+ J5 - 12-pin connector for cabinet buttons (UP/DOWN/ENTER/TEST/SERVICE/COIN etc)
+ J6 - 4-pin connector for step pedal
+ J7 - 9-pin connector for gun LED, gun motor, gun trigger
+ J8 - 5-pin connector for communication with main PCB (sense, data+, data-)
+ J9 - 6-pin connector (not used)
+ J10 - 80-pin Namco connector (not used, probably for an add-on PCB with ROMs for diagnostics)
+
+This PCB is used with Cobra The Arcade. The game will boot with several I/O boards but in the test mode in 'I/O TEST'
+the I/O board is only reported as good with the RAYS PCB, otherwise it reports 'NG'.
+This same PCB is also used with the DX rear-projection-screen version of Crisis Zone (on System 23 Evolution 2 hardware).
+Note this board requires a CCD camera and infrared guns and infrared sensors.
+
+
+Digital & Analog I/O boards
+---------------------------
+1st Revsion
+FCA PCB
+8662969102 (8662979102)
+
+2nd Revision
+FCA2(B) PCB
+8662969200 (8662979100)
+|---------------------------------------------------|
+| J101 3771 J106 |
+| 4.9152MHz |
+| DSW(6) D1017 D1017 D1017 D1017 |
+| LED2 |-----| D1017 D1017 D1017 D1017|
+| | MCU | |
+| LEDS3-10 | | |
+| PIC16F84 |-----| |
+| JP1 LED1 ADM485 |
+| |
+| J102 J104 |
+|---------------------------------------------------|
+Notes:
+ J101 - 6 pin connector for power input
+ J102 - 60 pin flat cable connector
+ J104 - 5 pin connector
+ J106 - 30 pin flat cable connector
+ JP1 - 3 pin jumper, set to 'NORM'. Alt setting 'WR'
+ 3771 - Fujitsu MB3771 System Reset IC (SOIC8)
+ PIC16F84 - Microchip PIC16F84 PIC with sticker 'FCAP11' (SOIC20)
+ MCU - Fujitsu MB90F574 Microcontroller with sticker 'FCAF11' (QFP120)
+ ADM485 - Analog Devices ADM485 +5V Low Power EIA RS-485 Transceiver (SOIC8)
+ D1017 - D1017 transistor (8 parts populated)
+
+This PCB is used with Ridge Racer V, Wangan Midnight and Wangan Midnight R.
+The FCA2(B) PCB is pb-free but otherwise identical to FCA PCB.
+
+
+V290 FCB PCB
+2582960101 (2582970101)
+|---------------------------------------------------|
+| J101 ADM231L 3771 J108 J106 |
+| 4.9152MHz |
+| DSW(6) X X X D1017 |
+| LED2 |-----| X X D1017 D1017|
+| | MCU | |
+| LEDS3-10 | | |
+| PIC16F84 |-----| |
+| JP1 LED1 ADM485 |
+| J204 |
+| J102 |
+|---------------------------------------------------|
+Notes:
+ J101 - 6 pin connector for power input
+ J102 - 60 pin flat cable connector
+ J104 - 5 pin connector (not populated)
+ J204 - USB-B connector (also wired in-line with J104. Note the signal is still the
+ normal Namco communication signal; i.e. RS485)
+ J106 - 30 pin flat cable connector
+ J108 - 4 pin connector
+ JP1 - 3 pin jumper position (not populated)
+ 3771 - Fujitsu MB3771 System Reset IC (SOIC8)
+ PIC16F84 - Microchip PIC16F84 PIC without sticker (SOIC20)
+ MCU - Fujitsu MB90F574 Microcontroller with sticker 'FCB1 IO 0B'
+ ADM485 - Analog Devices ADM485 +5V Low Power EIA RS-485 Transceiver (SOIC8)
+ D1017 - D1017 transistor (X = 5 parts not populated)
+ ADM231L - Analog Devices ADM231L RS-232 Driver/Receiver (SOIC16)
+
+V290 FCB PCB is almost identical to FCA PCB. The main differences are changed internal MCU code & PIC code,
+some extra/different connectors, less D1017 driver transistors and an added RS-232 IC.
+The V290 FCB PCB is used with touchscreen games such as Dragon Chronicles, Druaga Online, Idol Master etc.
+It supports a serial touchscreen interface, card readers and buttons.
+The additional devices are supported via J108 which connects to another PCB 'XOU020-A' which contains a
+Texas Instruments TMS32VC540x DSP, TSOP32 flash ROM and other components.
+
+
+System246 JAMMA(B) PCB
+8908962701 (8908972701)
+|--------------------------------------------|
+|74HC132A J5 J6 J7 LA4705 |
+| 34161 |
+| J8 EPM7064 BA3121 |
+| 74F04 |
+| |
+| |
+|J4 VOLUME J2 J3 |
+|--| J1 JAMMA |-------------|
+ |---------------------------|
+Notes:
+ J1 - JAMMA connector
+ J2 - 4-pin connector for stereo audio output
+ J3 - 10-pin connector for extra buttons
+ J4 - 6-pin power connector for 5V/12V/GND
+ J5 - 15-pin VGA connector for RGB/Sync video signals
+ J6 - Left/Right RCA Audio Jacks
+ J7 - 20-pin connector for flat cable joining to System 246B/C & S256
+ J8 - 6-pin connector for programming CPLD (not populated)
+ EPM7064 - Altera MAX EPM7064STC100-10 CPLD labelled 'S246 J01B'
+ BA3121 - Rohm BA3121 Ground Isolation Amplifier IC
+ LA4705 - Sanyo LA4705 2-channel BTL Power Amplifier
+
+Connector J3 pinout Connector J2 pinout
+1 - GND 1 - Left + \
+2 - P2 Button 6 2 - Left - / Also wired to JAMMA audio output pins
+3 - P2 Button 5 3 - Right +
+4 - P2 Button 4 4 - Right -
+5 -
+6 - P1 Button 6
+7 - P1 Button 5
+8 - P1 Button 4
+9 -
+10- GND
+
+This I/O board works with all the games that require regular joysticks and buttons which run on System 246B/C and
+System 256.
+
+
+Drive/Feedback Board
+--------------------
+
+V194 STR PCB
+2487960103 (2487970103)
+Additional sticker for Ridge Racer V: 'V257 STR PCB 2553960100'
+|----------------------------------------------------------|
+| SOP44.IC16 TRANSFORMER J105 |
+| DIP42 |
+| LED N341256 FUSE |
+| LED FUSE BF150G8E|
+| N341256 |
+| |
+|RESET_SW 32MHz 7815 K2682|
+| MB3771 |
+|J101 DSW2(4, all off) |
+| MB90242A |
+| LED MB3773 HP3150 |
+| LED K2682|
+| HP3150 |
+| EPM7064 |
+|J104 MAX232 LM393 |
+| LED JP1 O O=O |
+| LED HP3150 K2682|
+| |
+| HP3150 |
+| |
+|J103 |
+| UPC358 LM393 UPC358 K2682|
+| J102 J106 |
+|----------------------------------------------------------|
+Notes:
+ SOP44.IC16 - Fujitsu MB29F400TC 512k x8 flash ROM labelled 'RRV3 STR-0A' (SOP44)
+ EPM7064 - Altera EPM7064 CPLD labelled 'STR-DR1' (PLCC44)
+ N341256 - NKK 32k x8 SRAM (SOP28)
+ K2682 - 2SK2682 N-Channel Silicon MOSFET
+ BF150G8E - Large power transistor(?) connected to the transformer
+ UPC358 - NEC uPC358 Dual operational amplifier (SOIC8)
+ LM393 - National LM393 Low Power Low Offset Voltage Dual Comparator (SOIC8)
+ MAX232 - Maxim MAX232 dual serial to TTL logic level driver/receiver (SOIC16)
+ HP3150 - HP 3150 Optocoupler (DIP8)
+ MB3773 - Fujitsu MB3773 Power Supply Monitor with Watch Dog Timer and Reset (SOIC8)
+ MB3771 - Fujitsu MB3771 System Reset IC (SOIC8)
+ DIP42 - Unpopulated DIP42 socket for 27C4096 EPROM
+ MB90242A - Fujitsu MB90242A 16-Bit CISC ROM-less F2MC-16F Family Microcontroller optimized for mechatronics
+ control applications (TQFP80)
+ 7815 - LM7815 15V voltage regulator
+ J101 - 8 pin connector (purpose unknown)
+ J102 - 3 pin connector input from potentiometer connected to the steering wheel mechanism
+ J103 - Power input connector (5v/GND/12v)
+ J104 - 6 pin connector joined with a cable to J5 on the System 246 MOTHER PCB.
+ This cable provides the feed-back connection to/from the main board.
+ J105 - 110VAC power input
+ J106 - DC variable power output to feed-back motor
+
+This PCB is used with Ridge Racer V and Wangan Midnight and controls the steering feed-back motor.
+When the driving games boot they test the feed-back motor by monitoring a potentiometer
+connected to the steering wheel mechanism. On Ridge Racer V, if the pot is faulty or not connected
+or if the drive/feedback board isn't connected (including the 110VAC input voltage), the
+steering check will fail after a time-out period and the game will not continue further.
+Wangan Midnight doesn't test the potentiometer and will boot without it connected, but it does
+test for the presence of the feedback PCB.
+Note this same PCB (with different ROMs) is also used with Mario Kart (on Triforce hardware), all of the Wangan
+Midnight Maximum Tune series up to Maximum Tune 3 DX Plus and Race On! (on System 23 hardware).
+
+
+System 246B Main Board Layout
+-----------------------------
+
+System246 PMOTHER PCB
+8908962201 (8908972201)
+|-----------J12-----J13---------------------------------------|
+| 16M PQ30RV31 J15 |
+| 16M |--------| |
+| |ALTERA | BATTERY |
+| |EP20K100E LC35256 RS5C348 J14 |
+| |QC208 | 32.768kHz BR9080F |
+| 16M |--------| |----------|
+| 16M 66.666MHz C807U-1V86|
+| 4MHz|
+| J11 MM1537|
+| |------| J10 |
+| | C448 | 61C256 EPM3128 |
+| | | |
+| |------| |
+| J9 |
+| TMP95C061 |
+J8 CXA2055P |
+| MAX232 ADM485 6358N J7
+| J3 |
+|--SW1--J1----J2-----J4--------J5---------J6-------|
+Notes:
+ SW1 - 4-position DIP Switch; 1=TEST, 2=RGB Level 3.0p-p or 0.7p-p, 3=15k/31k output, 4=sync composite/separate
+ J1 - 3-pin connector (not used)
+ J2 - USB connector (used to connect some I/O boards e.g for Time Crisis 3)
+ J3 - 4-pin connector (not used)
+ J4 - Left/right RCA jacks for unamplified stereo audio output
+ J5/J6 - DSUB15 VGA output connectors
+ J7 - Playstation 2 video cable connector (input)
+ J8 - 20-pin flat cable connector used with 'System246 JAMMA(B) PCB'
+ J9 - Multi-pin male socket connector for flat cable with female socket joining to PS2 main board
+ J10 - 6-pin connector for programming EPM3128 CPLD (not populated)
+ J11 - Flat cable connector joining to PS2 main board
+ J12 - 40-pin IDE connector for CD/DVD/HDD drives
+ J13 - 4-pin power input connector (+5V/GND)
+ J14 - 34-pin connector plugged directly into PS2 main board
+ J15 - 4-pin power output connector plugged directly into PS2 main board (the PS2 main board PSU is not populated)
+C807U-1V86 - Toshiba TMP87PH47U microcontroller with 16k x8-bit OTP EPROM re-badged as 'SONY C8707U-1V86 (C)2000 SCEI'
+ This chip is connected to J11
+ TMP95C061 - Toshiba TMP95C061 TLCS-900-series 16-bit Microcontroller (internal RAM/ROM = none)
+ C448 - Namco Custom C448
+ EPM3128 - Altera MAX EMP3128ATC100-10 CPLD labelled 'P2AMO1'
+ CXA2055P - Sony CXA2055P Video Amplifier IC
+ 6358N - Sanyo 6358N High-Performance Dual Operational Amplifier
+ PQ30RV31 - Sharp PQ30RV31 Voltage Regulator
+ 61C256 - ISSI IS61C256 32k x8-bit SRAM
+ LC35256 - Sanyo LC35256DM70 32k x8-bit SRAM
+ EP20K100 - Altera APEX EP20K100EQC208-2X FPGA
+ 16M - Hyundai HY57V281620AT-P 128Mbit (2Mbit x16-bit x 4 banks) SDRAM
+ ADM485 - Analog Devices ADM485 +5V Low Power EIA RS-485 Transceiver (SOIC8)
+ RS5C348 - Ricoh RS5C348 RTC
+ BR9080F - ROHN BR9080F 512 word x16-bit serial EEPROM
+ MM1537 - Mitsumi MM1537 reset chip. No info available but pin 2 of MM1537 tied to TMP87PH47 reset pin 14 so it's a reset chip
+ MAX232 - Maxim MAX232 dual serial to TTL logic level driver/receiver
+ BATTERY - CR2032 3.0V battery
+
+This revision was initially used with Tekken 4, Time Crisis 3, Battle Gear 3 and Soul Calibur II. There are reports
+that the DVD-based games on this system are fussy about the model of DVD-ROM drive used. Powering the drive from an
+external PSU will help in some cases.
+
+A PS2 main board (such as GH-006) is required and plugs into J14 & J15 directly and two flat cables
+from J9 & J11 also connect to the PS2 main board.
+The board documented here is green. A blue PCB has been seen used in Time Crisis 3. It's not known if the PCB
+is different to this one.
+
+
+System 246C Main Board Layout
+-----------------------------
+[to-do]
+
+System 256 Main Board Layout
+----------------------------
+[to-do]
+
+
+For Super System 256, the main board is identical to the regular System 256 except the mode jumper
+is not shorted. The regular System 256 games won't load, only displaying an error message about
+the wrong mode being set. If the mode jumper is changed the board either doesn't boot at all or just
+displays the same error message.
+
+Info for Time Crisis 4
+----------------------
+Main Board sticker: Super System 256 Main PCB 8692960100
+Graphics Chip 'EE+GS CXD9833GB'
+
+
+Super System 256 I/O boards
+---------------------------
+
+8682960602 (8682970602)
+NA-JV PCB
+Sticker for Time Crisis 4 - 26169605 V329 NA-JV PCB
+|-------------------------------------|
+|CN4 CN3 CN2 CN1 |
+| |
+| |
+| LED2 |----| CN7 |
+| LED3 |3062| 14.7456MHz |
+| LED4 |----| CN6 |
+| CN5 LED5 LED1 |
+|-------------------------------------|
+Notes:
+ 3062 - Hitachi F3062F25V H8/3062 microcontroller stamped 'TSF1APRA' (QFP100)
+ CN1 - 4 pin power input connector
+ CN2 - 32 pin connector for controls (Gun Position)
+ CN3 - 40 pin connector for controls (Buttons: Trigger/Pedal/Select/Test/Service/Coin/Up/Down etc)
+ CN4 - 8 pin connector for I/O link to main board USB connector (uses a special cable)
+ CN5 - Not populated, possibly for a standard USB connector
+ CN6 - 5 pin connector (not used for Time Crisis 4)
+
+
+Extra Sound board (used on Super System 256 for Time Crisis 4)
+-----------------
+Note the game works without this PCB.
+
+V329 EXSOUND PCB
+2616961002
+(2616971002)
+|---------------------|
+| CN3 |-----------|
+| CN2|
+| |-|
+| EPM3128 CS42516 |-|
+| |
+| * |
+| |
+| |
+| CN7 CN6 |
+|---------------------------------|
+Notes:
+ EPM3128 - Altera Max EPM3128ATC-100 CPLD stamped 'TSF' (TQFP100)
+ CS42516 - Cirrus Logic CS42516-CQZ 114 dB, 192-kHz 6-Ch CODEC with S/PDIF Receiver (QFP48)
+ * - unpopulated position for H8/3062 MCU
+ CN2 - RCA Sound output connector
+ CN3 - 40 pin connector with perpendicular adapter board plugged into main board to connector J11
+ CN6 - 2 pin connector joined with a small cable to the board where the dongle plugs in
+ CN7 - 6 pin connector (unused)
***************************************************************************/
@@ -265,12 +1052,13 @@ ROM_START( soulcl2w )
ROM_REGION(0x200000, "bios", 0)
SYSTEM246_BIOS
+ // Guru says this disc works with any SC2x key
ROM_REGION(0x840000, "key", ROMREGION_ERASE00)
- ROM_LOAD( "scxx.ic002", 0x000000, 0x800000, NO_DUMP ) // no idea which dongle(s) this goes with, the SC2 sets are a huge mess now
- ROM_LOAD( "scxx_spr.ic002", 0x800000, 0x040000, NO_DUMP )
+ ROM_LOAD( "sc23vera.ic002", 0x000000, 0x800000, CRC(5c537182) SHA1(ff4213db24b1200b494e6c3bd3eb7b75789e4032) )
+ ROM_LOAD( "sc23vera_spr.ic002", 0x800000, 0x040000, CRC(8f548cbc) SHA1(81b844dc5873bb397cd4cd5aca101d7486d60385) )
DISK_REGION("dvd")
- DISK_IMAGE_READONLY( "sc21-dvd0b", 0, SHA1(883170f759b4d53c4031e00ff29bcd1a4d3fea97) )
+ DISK_IMAGE_READONLY( "sc21-dvd0b", 0, SHA1(2403a0dc6d21103957676ab2df410994c12588a3) )
ROM_END
ROM_START( soulclb3 )
@@ -296,6 +1084,18 @@ ROM_START( soulclb3a )
DISK_IMAGE_READONLY( "sc31001-na-dvd0-b", 0, SHA1(b46ee35083f8fcc091ce562951c55fbdbb929e4b) )
ROM_END
+ROM_START( soulclb3b )
+ ROM_REGION(0x200000, "bios", 0)
+ SYSTEM246_BIOS
+
+ ROM_REGION(0x840000, "key", ROMREGION_ERASE00)
+ ROM_LOAD( "sc31001-na-a.ic002", 0x000000, 0x800000, CRC(ddbe9774) SHA1(6bb2d31cb669336345b5508bcca56936ea97c04a) )
+ ROM_LOAD( "sc31001-na-a_spr.ic002", 0x800000, 0x040000, CRC(18c6f56d) SHA1(13bc6a3688985c0cd9900b063824a4af691a1b31) )
+
+ DISK_REGION("dvd")
+ DISK_IMAGE_READONLY( "sc31001-na-dvd0-a", 0, SHA1(2bb8669d094d470ddf99feecd4d2026bfd54f487) )
+ROM_END
+
ROM_START( sukuinuf )
ROM_REGION(0x200000, "bios", 0)
SYSTEM246_BIOS
@@ -452,6 +1252,19 @@ ROM_START( tekken51 )
DISK_IMAGE_READONLY( "te51-dvd0", 0, SHA1(2a0ac3723725572c1810b0ef4bcfa7aa114062f8) )
ROM_END
+ROM_START( tekken51b )
+ ROM_REGION(0x200000, "bios", 0)
+ SYSTEM256_BIOS
+
+ // this key should work with Tekken 5 or 5.1 discs, according to Guru
+ ROM_REGION(0x840000, "key", ROMREGION_ERASE00)
+ ROM_LOAD( "te53verb.ic002", 0x000000, 0x800000, CRC(4d605636) SHA1(417b02d6c69f883920cd43a7278d0af183583c55) )
+ ROM_LOAD( "te53verb_spr.ic002", 0x800000, 0x040000, CRC(b7094978) SHA1(1e4903cd5f594c13dad2fd74666ba35c62550044) )
+
+ DISK_REGION("dvd")
+ DISK_IMAGE_READONLY( "te51-dvd0", 0, SHA1(2a0ac3723725572c1810b0ef4bcfa7aa114062f8) )
+ROM_END
+
ROM_START( tekken5d )
ROM_REGION(0x200000, "bios", 0)
SYSTEM256_BIOS
@@ -536,6 +1349,18 @@ ROM_START( gundzaft )
DISK_IMAGE_READONLY( "sed1dvd0", 0, SHA1(0e6db61d94f66a4ddd7d4a3013983a838d256c5d) )
ROM_END
+ROM_START( cobrata )
+ ROM_REGION(0x200000, "bios", 0)
+ SYSTEM246_BIOS
+
+ ROM_REGION(0x840000, "key", ROMREGION_ERASE00)
+ ROM_LOAD( "cbr1verb.ic002", 0x000000, 0x800000, CRC(aecda462) SHA1(97c8e98c44d66231ee3f2527756d92dbc947b76d) )
+ ROM_LOAD( "cbr1verb_spr.ic002", 0x800000, 0x040000, CRC(65aaadcf) SHA1(5cc642f71bef3b5e44db5e999e8abccca7fdaa4c) )
+
+ DISK_REGION("dvd")
+ DISK_IMAGE_READONLY( "cbr1-ha", 0, SHA1(a20d4ace91a2f2caab0804ebdf62c87ab267239b) )
+ROM_END
+
ROM_START( rrvac )
ROM_REGION(0x200000, "bios", 0)
SYSTEM246_BIOS
@@ -573,6 +1398,24 @@ ROM_START( rrvac2 )
DISK_IMAGE_READONLY( "rrv1-a", 0, SHA1(77bb70407511cbb12ab999410e797dcaf0779229) )
ROM_END
+ROM_START( rrvac1 )
+ ROM_REGION(0x200000, "bios", 0)
+ SYSTEM246_BIOS
+
+ ROM_REGION(0x840000, "key", ROMREGION_ERASE00)
+ ROM_LOAD( "rrv1vera.ic002", 0x000000, 0x800000, CRC(e28bb0be) SHA1(9683ddc228e9aedd338cf2eb4d4373faeaea5b75) )
+ ROM_LOAD( "rrv1vera_spr.ic002", 0x800000, 0x040000, CRC(81c370b7) SHA1(7693c03b544c79fa3b6e536abb32ad34cf14dfbf) )
+
+ ROM_REGION(0x4010, "jvsio", 0) // Namco "FCA" JVS I/O board PIC16F84 code (see namcos23.c for FCA details)
+ ROM_LOAD( "fcap11.ic2", 0x000000, 0x004010, CRC(1b2592ce) SHA1(a1a487361053af564f6ec67e545413e370a3b38c) )
+
+ ROM_REGION(0x80000, "steering", 0) // Steering I/O board MB90242A code (see namcos23.c for steering board details)
+ ROM_LOAD( "rrv3_str-0a.ic16", 0x000000, 0x080000, CRC(df8b6cac) SHA1(d45e150678218084925673e1d77edefc04135035) )
+
+ DISK_REGION("dvd")
+ DISK_IMAGE_READONLY( "rrv1-a", 0, SHA1(77bb70407511cbb12ab999410e797dcaf0779229) )
+ROM_END
+
ROM_START( scptour )
ROM_REGION(0x200000, "bios", 0)
SYSTEM246_BIOS
@@ -606,7 +1449,7 @@ ROM_START( wanganmd )
ROM_LOAD( "wmn1vera_spr.ic002", 0x800000, 0x040000, CRC(97253f9e) SHA1(652807972c62a96ba329b400e17dabd313134392) )
DISK_REGION("dvd")
- DISK_IMAGE_READONLY( "wmn1", 0, SHA1(4254e987e71d0d4038a87f11dc1a304396b3dffc) )
+ DISK_IMAGE_READONLY( "wmn1-a", 0, SHA1(4254e987e71d0d4038a87f11dc1a304396b3dffc) )
ROM_END
ROM_START( vnight )
@@ -715,54 +1558,58 @@ ROM_START( sbxc )
ROM_END
// System 246
-GAME(2001, sys246, 0, system246, system246, driver_device, 0, ROT0, "Namco", "System 246 BIOS", GAME_IS_SKELETON|GAME_IS_BIOS_ROOT)
-GAME(2001, vnight, sys246, system246, system246, driver_device, 0, ROT0, "Sega / Namco", "Vampire Night (VPN3 Ver. B)", GAME_IS_SKELETON)
-GAME(2001, bldyr3b, sys246, system246, system246, driver_device, 0, ROT0, "bootleg", "Bloody Roar 3 (bootleg)", GAME_IS_SKELETON)
-GAME(2001, rrvac, sys246, system246, system246, driver_device, 0, ROT0, "Namco", "Ridge Racer V Arcade Battle (RRV3 Ver. A)", GAME_IS_SKELETON)
-GAME(2001, rrvac2, rrvac, system246, system246, driver_device, 0, ROT0, "Namco", "Ridge Racer V Arcade Battle (RRV2 Ver. A)", GAME_IS_SKELETON)
-GAME(2001, wanganmd, sys246, system246, system246, driver_device, 0, ROT0, "Namco", "Wangan Midnight (WMN1 Ver. A)", GAME_IS_SKELETON)
-GAME(2002, dragchrn, sys246, system246, system246, driver_device, 0, ROT0, "Namco", "Dragon Chronicles (DC001 Ver. A)", GAME_IS_SKELETON)
-GAME(2002, netchu02, sys246, system246, system246, driver_device, 0, ROT0, "Namco", "Netchuu Pro Yakyuu 2002 (NPY1 Ver. A)", GAME_IS_SKELETON)
-GAME(2002, scptour, sys246, system246, system246, driver_device, 0, ROT0, "Namco", "Smash Court Pro Tournament (SCP1)", GAME_IS_SKELETON)
-GAME(2002, soulclb2, sys246, system246, system246, driver_device, 0, ROT0, "Namco", "Soul Calibur II (SC23 Ver. A)", GAME_IS_SKELETON)
-GAME(2002, soulcl2a, soulclb2, system246, system246, driver_device, 0, ROT0, "Namco", "Soul Calibur II (SC22 Ver. A)", GAME_IS_SKELETON)
-GAME(2002, soulcl2b, soulclb2, system246, system246, driver_device, 0, ROT0, "Namco", "Soul Calibur II (SC21 Ver. A)", GAME_IS_SKELETON)
-GAME(2002, soulcl2w, soulclb2, system246, system246, driver_device, 0, ROT0, "Namco", "Soul Calibur II (SC2? world version)", GAME_IS_SKELETON)
-GAME(2002, tekken4, sys246, system246, system246, driver_device, 0, ROT0, "Namco", "Tekken 4 (TEF3 Ver. C)", GAME_IS_SKELETON)
-GAME(2002, tekken4a, tekken4, system246, system246, driver_device, 0, ROT0, "Namco", "Tekken 4 (TEF2 Ver. A)", GAME_IS_SKELETON)
-GAME(2002, tekken4b, tekken4, system246, system246, driver_device, 0, ROT0, "Namco", "Tekken 4 (TEF1 Ver. A)", GAME_IS_SKELETON)
-GAME(2002, tekken4c, tekken4, system246, system246, driver_device, 0, ROT0, "Namco", "Tekken 4 (TEF1 Ver. C)", GAME_IS_SKELETON)
-GAME(2003, prdgp03, sys246, system246, system246, driver_device, 0, ROT0, "Namco", "Pride GP 2003 (PR21 Ver. A)", GAME_IS_SKELETON)
-GAME(2003, timecrs3, sys246, system246, system246, driver_device, 0, ROT0, "Namco", "Time Crisis 3 (TST1)", GAME_IS_SKELETON)
-GAME(2003, timecrs3e,timecrs3, system246, system246, driver_device, 0, ROT0, "Namco", "Time Crisis 3 (TST2 Ver. A)", GAME_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)", GAME_IS_SKELETON)
-GAME(2004, fghtjam, sys246, system246, system246, driver_device, 0, ROT0, "Capcom / Namco", "Capcom Fighting Jam (JAM1 Ver. A)", GAME_IS_SKELETON)
-GAME(2004, sukuinuf, sys246, system246, system246, driver_device, 0, ROT0, "Namco", "Quiz and Variety Suku Suku Inufuku 2 (IN2 Ver. A)", GAME_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)", GAME_IS_SKELETON)
-GAME(2004, zoidsinf, sys246, system246, system246, driver_device, 0, ROT0, "Tomy / Taito", "Zoids Infinity", GAME_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)", GAME_IS_SKELETON)
-GAME(2005, soulclb3, sys246, system246, system246, driver_device, 0, ROT0, "Namco", "Soul Calibur III (SC31001-NA-A)", GAME_IS_SKELETON)
-GAME(2005, soulclb3a,soulclb3, system246, system246, driver_device, 0, ROT0, "Namco", "Soul Calibur III (SC31002-NA-A)", GAME_IS_SKELETON)
-GAME(2005, taiko7, sys246, system246, system246, driver_device, 0, ROT0, "Namco", "Taiko No Tatsujin 7 (TK71-NA-A)", GAME_IS_SKELETON)
-GAME(2006, taiko8, sys246, system246, system246, driver_device, 0, ROT0, "Namco", "Taiko No Tatsujin 8 (TK8100-1-NA-A)", GAME_IS_SKELETON)
-GAME(2006, qgundam, sys246, system246, system246, driver_device, 0, ROT0, "Namco", "Quiz Mobile Suit Gundam: Monsenshi (QG1 Ver. A)", GAME_IS_SKELETON)
-GAME(2008, fateulc, sys246, system246, system246, driver_device, 0, ROT0, "Capcom / Namco", "Fate: Unlimited Codes (FUD1 ver. A)", GAME_IS_SKELETON)
-GAME(2008, fateulcb, fateulc, system246, system246, driver_device, 0, ROT0, "bootleg", "Fate: Unlimited Codes (bootleg)", GAME_IS_SKELETON)
-GAME(2008, sbxc, sys246, system246, system246, driver_device, 0, ROT0, "Capcom / Arc System Works", "Sengoku Basara X Cross", GAME_IS_SKELETON)
+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(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)
// System 256
-GAME(2004, sys256, 0, system256, system246, driver_device, 0, ROT0, "Namco", "System 256 BIOS", GAME_IS_SKELETON|GAME_IS_BIOS_ROOT)
-GAME(2005, tekken51, sys256, system256, system246, driver_device, 0, ROT0, "Namco", "Tekken 5.1 (TE51 Ver. B)", GAME_IS_SKELETON)
-GAME(2005, tekken5d, sys256, system256, system246, driver_device, 0, ROT0, "Namco", "Tekken 5 Dark Resurrection (TED1 Ver. A)", GAME_IS_SKELETON)
-GAME(2005, superdbz, sys256, system256, system246, driver_device, 0, ROT0, "Banpresto / Spike", "Super Dragon Ball Z (DB1 Ver. B)", GAME_IS_SKELETON)
-GAME(2006, kinniku, sys256, system256, system246, driver_device, 0, ROT0, "Namco", "Kinnikuman Muscle Grand Prix (KN1 Ver. A)", GAME_IS_SKELETON)
-GAME(2006, taiko9, sys256, system256, system246, driver_device, 0, ROT0, "Namco", "Taiko No Tatsujin 9 (TK91001-NA-A)", GAME_IS_SKELETON)
-GAME(2006, yuyuhaku, sys256, system256, system246, driver_device, 0, ROT0, "Banpresto", "The Battle of Yu Yu Hakusho: Shitou! Ankoku Bujutsukai!", GAME_IS_SKELETON)
-GAME(2006, zoidiexp, sys246, system246, system246, driver_device, 0, ROT0, "Tomy / Taito", "Zoids Infinity EX Plus (ver. 2.10)", GAME_IS_SKELETON)
-GAME(2007, kinniku2, sys256, system256, system246, driver_device, 0, ROT0, "Namco", "Kinnikuman Muscle Grand Prix 2 (KN2 Ver. A)", GAME_IS_SKELETON)
-GAME(2007, taiko10, sys256, system256, system246, driver_device, 0, ROT0, "Namco", "Taiko No Tatsujin 10 (T101001-NA-A)", GAME_IS_SKELETON)
-GAME(2008, gdvsgd, sys256, system256, system246, driver_device, 0, ROT0, "Capcom / Bandai", "Gundam vs. Gundam (GVS1 Ver. A)", GAME_IS_SKELETON)
-GAME(2009, gdvsgdnx, sys256, system256, system246, driver_device, 0, ROT0, "Capcom / Bandai", "Gundam vs. Gundam Next", GAME_IS_SKELETON)
+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)
// System Super 256
-GAME(2006, timecrs4, sys256, system256, system246, driver_device, 0, ROT0, "Namco", "Time Crisis 4", GAME_IS_SKELETON)
+GAME(2006, timecrs4, sys256, system256, system246, driver_device, 0, ROT0, "Namco", "Time Crisis 4", MACHINE_IS_SKELETON)
diff --git a/src/mame/drivers/namcos1.c b/src/mame/drivers/namcos1.c
index 60f6c16e2ae..af70533bc20 100644
--- a/src/mame/drivers/namcos1.c
+++ b/src/mame/drivers/namcos1.c
@@ -353,7 +353,7 @@ WRITE8_MEMBER(namcos1_state::irq_ack_w)
READ8_MEMBER(namcos1_state::dsw_r)
{
- int ret = ioport("DIPSW")->read();
+ int ret = m_io_dipsw->read();
if (!(offset & 2)) ret >>= 4;
return 0xf0 | ret;
}
@@ -871,7 +871,14 @@ static INPUT_PORTS_START( splatter )
// Allow "CPU #0&1 Kick Watchdog in IRQ" = _____oo_
// 12345678
#endif
- PORT_DIPNAME( 0x20, 0x20, "Stage Select (ver. SH3 only)" )
+INPUT_PORTS_END
+
+
+static INPUT_PORTS_START( splatter3 )
+ PORT_INCLUDE( splatter )
+
+ PORT_MODIFY( "DIPSW" )
+ PORT_DIPNAME( 0x20, 0x20, "Stage Select" ) PORT_DIPLOCATION("SW:3")
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@@ -2815,41 +2822,41 @@ ROM_END
-GAME( 1987, shadowld, 0, ns1, shadowld, namcos1_state, shadowld, ROT180, "Namco", "Shadowland (YD3)", GAME_SUPPORTS_SAVE )
-GAME( 1987, youkaidk2, shadowld, ns1, shadowld, namcos1_state, shadowld, ROT180, "Namco", "Yokai Douchuuki (Japan, new version (YD2, Rev B))", GAME_SUPPORTS_SAVE )
-GAME( 1987, youkaidk1, shadowld, ns1, shadowld, namcos1_state, shadowld, ROT180, "Namco", "Yokai Douchuuki (Japan, old version (YD1))", GAME_SUPPORTS_SAVE )
-GAME( 1987, dspirit, 0, ns1, dspirit, namcos1_state, dspirit, ROT90, "Namco", "Dragon Spirit (new version (DS3))", GAME_SUPPORTS_SAVE )
-GAME( 1987, dspirit2, dspirit, ns1, dspirit, namcos1_state, dspirit, ROT90, "Namco", "Dragon Spirit (DS2)", GAME_SUPPORTS_SAVE ) /* Atari had rights to US market */
-GAME( 1987, dspirit1, dspirit, ns1, dspirit, namcos1_state, dspirit, ROT90, "Namco", "Dragon Spirit (old version (DS1))", GAME_SUPPORTS_SAVE )
-GAME( 1987, blazer, 0, ns1, ns1, namcos1_state, blazer, ROT90, "Namco", "Blazer (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1987, quester, 0, ns1, quester, namcos1_state, quester, ROT90, "Namco", "Quester (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1987, questers, quester, ns1, quester, namcos1_state, quester, ROT90, "Namco", "Quester Special Edition (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1987, pacmania, 0, ns1, pacmania, namcos1_state, pacmania, ROT270, "Namco", "Pac-Mania", GAME_SUPPORTS_SAVE )
-GAME( 1987, pacmaniao, pacmania, ns1, pacmania, namcos1_state, pacmania, ROT270, "Namco", "Pac-Mania (111187 sound program)", GAME_SUPPORTS_SAVE )
-GAME( 1987, pacmaniaj, pacmania, ns1, pacmania, namcos1_state, pacmania, ROT90, "Namco", "Pac-Mania (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1987, galaga88, 0, ns1, galaga88, namcos1_state, galaga88, ROT270, "Namco", "Galaga '88", GAME_SUPPORTS_SAVE )
-GAME( 1987, galaga88a, galaga88, ns1, galaga88, namcos1_state, galaga88, ROT90, "Namco", "Galaga '88 (02-03-88)", GAME_SUPPORTS_SAVE )
-GAME( 1987, galaga88j, galaga88, ns1, galaga88, namcos1_state, galaga88, ROT90, "Namco", "Galaga '88 (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1988, ws, 0, ns1, ns1, namcos1_state, ws, ROT180, "Namco", "World Stadium (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1988, berabohm, 0, ns1, berabohm, namcos1_state, berabohm, ROT180, "Namco", "Beraboh Man (Japan, Rev C)", GAME_SUPPORTS_SAVE )
-GAME( 1988, berabohmb, berabohm, ns1, berabohm, namcos1_state, berabohm, ROT180, "Namco", "Beraboh Man (Japan, Rev B)", GAME_SUPPORTS_SAVE )
-GAME( 1988, mmaze, 0, ns1, mmaze, namcos1_state, alice, ROT180, "Namco", "Marchen Maze (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1988, bakutotu, 0, ns1, bakutotu, namcos1_state, bakutotu, ROT180, "Namco", "Bakutotsu Kijuutei", GAME_SUPPORTS_SAVE )
-GAME( 1988, wldcourt, 0, ns1, wldcourt, namcos1_state, wldcourt, ROT180, "Namco", "World Court (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1988, splatter, 0, ns1, splatter, namcos1_state, splatter, ROT180, "Namco", "Splatter House (World, new version (SH3))", GAME_SUPPORTS_SAVE )
-GAME( 1988, splatter2, splatter, ns1, splatter, namcos1_state, splatter, ROT180, "Namco", "Splatter House (World, old version (SH2))", GAME_SUPPORTS_SAVE )
-GAME( 1988, splatterj, splatter, ns1, splatter, namcos1_state, splatter, ROT180, "Namco", "Splatter House (Japan, SH1)", GAME_SUPPORTS_SAVE )
-GAME( 1988, faceoff, 0, ns1, faceoff, namcos1_state, faceoff, ROT180, "Namco", "Face Off (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1989, rompers, 0, ns1, ns1, namcos1_state, rompers, ROT90, "Namco", "Rompers (Japan, new version (Rev B))", GAME_SUPPORTS_SAVE )
-GAME( 1989, romperso, rompers, ns1, ns1, namcos1_state, rompers, ROT90, "Namco", "Rompers (Japan, old version)", GAME_SUPPORTS_SAVE )
-GAME( 1989, blastoff, 0, ns1, ns1, namcos1_state, blastoff, ROT90, "Namco", "Blast Off (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1989, ws89, ws, ns1, ws89, namcos1_state, ws89, ROT180, "Namco", "World Stadium '89 (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1989, dangseed, 0, ns1, dangseed, namcos1_state, dangseed, ROT90, "Namco", "Dangerous Seed (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1990, ws90, ws, ns1, ws90, namcos1_state, ws90, ROT180, "Namco", "World Stadium '90 (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1990, pistoldm, 0, ns1, ns1, namcos1_state, pistoldm, ROT0, "Namco", "Pistol Daimyo no Bouken (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1990, boxyboy, 0, ns1, boxyboy, namcos1_state, soukobdx, ROT0, "Namco", "Boxy Boy (SB?)", GAME_SUPPORTS_SAVE )
-GAME( 1990, soukobdx, boxyboy, ns1, boxyboy, namcos1_state, soukobdx, ROT0, "Namco", "Souko Ban Deluxe (Japan, SB1)", GAME_SUPPORTS_SAVE )
-GAME( 1990, puzlclub, 0, ns1, puzlclub, namcos1_state, puzlclub, ROT90, "Namco", "Puzzle Club (Japan prototype)", GAME_SUPPORTS_SAVE )
-GAME( 1991, tankfrce, 0, ns1, ns1, namcos1_state, tankfrce, ROT0, "Namco", "Tank Force (US, 2 Player)", GAME_SUPPORTS_SAVE )
-GAME( 1991, tankfrce4, tankfrce, ns1, tankfrc4, namcos1_state, tankfrc4, ROT0, "Namco", "Tank Force (US, 4 Player)", GAME_SUPPORTS_SAVE )
-GAME( 1991, tankfrcej, tankfrce, ns1, ns1, namcos1_state, tankfrce, ROT0, "Namco", "Tank Force (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1987, shadowld, 0, ns1, shadowld, namcos1_state, shadowld, ROT180, "Namco", "Shadowland (YD3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, youkaidk2, shadowld, ns1, shadowld, namcos1_state, shadowld, ROT180, "Namco", "Yokai Douchuuki (Japan, new version (YD2, Rev B))", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, youkaidk1, shadowld, ns1, shadowld, namcos1_state, shadowld, ROT180, "Namco", "Yokai Douchuuki (Japan, old version (YD1))", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, dspirit, 0, ns1, dspirit, namcos1_state, dspirit, ROT90, "Namco", "Dragon Spirit (new version (DS3))", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, dspirit2, dspirit, ns1, dspirit, namcos1_state, dspirit, ROT90, "Namco", "Dragon Spirit (DS2)", MACHINE_SUPPORTS_SAVE ) /* Atari had rights to US market */
+GAME( 1987, dspirit1, dspirit, ns1, dspirit, namcos1_state, dspirit, ROT90, "Namco", "Dragon Spirit (old version (DS1))", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, blazer, 0, ns1, ns1, namcos1_state, blazer, ROT90, "Namco", "Blazer (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, quester, 0, ns1, quester, namcos1_state, quester, ROT90, "Namco", "Quester (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, questers, quester, ns1, quester, namcos1_state, quester, ROT90, "Namco", "Quester Special Edition (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, pacmania, 0, ns1, pacmania, namcos1_state, pacmania, ROT270, "Namco", "Pac-Mania", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, pacmaniao, pacmania, ns1, pacmania, namcos1_state, pacmania, ROT270, "Namco", "Pac-Mania (111187 sound program)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, pacmaniaj, pacmania, ns1, pacmania, namcos1_state, pacmania, ROT90, "Namco", "Pac-Mania (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, galaga88, 0, ns1, galaga88, namcos1_state, galaga88, ROT270, "Namco", "Galaga '88", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, galaga88a, galaga88, ns1, galaga88, namcos1_state, galaga88, ROT90, "Namco", "Galaga '88 (02-03-88)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, galaga88j, galaga88, ns1, galaga88, namcos1_state, galaga88, ROT90, "Namco", "Galaga '88 (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, ws, 0, ns1, ns1, namcos1_state, ws, ROT180, "Namco", "World Stadium (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, berabohm, 0, ns1, berabohm, namcos1_state, berabohm, ROT180, "Namco", "Beraboh Man (Japan, Rev C)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, berabohmb, berabohm, ns1, berabohm, namcos1_state, berabohm, ROT180, "Namco", "Beraboh Man (Japan, Rev B)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, mmaze, 0, ns1, mmaze, namcos1_state, alice, ROT180, "Namco", "Marchen Maze (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, bakutotu, 0, ns1, bakutotu, namcos1_state, bakutotu, ROT180, "Namco", "Bakutotsu Kijuutei", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, wldcourt, 0, ns1, wldcourt, namcos1_state, wldcourt, ROT180, "Namco", "World Court (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, splatter, 0, ns1, splatter3,namcos1_state, splatter, ROT180, "Namco", "Splatter House (World, new version (SH3))", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, splatter2, splatter, ns1, splatter, namcos1_state, splatter, ROT180, "Namco", "Splatter House (World, old version (SH2))", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, splatterj, splatter, ns1, splatter, namcos1_state, splatter, ROT180, "Namco", "Splatter House (Japan, SH1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, faceoff, 0, ns1, faceoff, namcos1_state, faceoff, ROT180, "Namco", "Face Off (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, rompers, 0, ns1, ns1, namcos1_state, rompers, ROT90, "Namco", "Rompers (Japan, new version (Rev B))", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, romperso, rompers, ns1, ns1, namcos1_state, rompers, ROT90, "Namco", "Rompers (Japan, old version)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, blastoff, 0, ns1, ns1, namcos1_state, blastoff, ROT90, "Namco", "Blast Off (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, ws89, ws, ns1, ws89, namcos1_state, ws89, ROT180, "Namco", "World Stadium '89 (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, dangseed, 0, ns1, dangseed, namcos1_state, dangseed, ROT90, "Namco", "Dangerous Seed (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, ws90, ws, ns1, ws90, namcos1_state, ws90, ROT180, "Namco", "World Stadium '90 (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, pistoldm, 0, ns1, ns1, namcos1_state, pistoldm, ROT0, "Namco", "Pistol Daimyo no Bouken (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, boxyboy, 0, ns1, boxyboy, namcos1_state, soukobdx, ROT0, "Namco", "Boxy Boy (SB?)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, soukobdx, boxyboy, ns1, boxyboy, namcos1_state, soukobdx, ROT0, "Namco", "Souko Ban Deluxe (Japan, SB1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, puzlclub, 0, ns1, puzlclub, namcos1_state, puzlclub, ROT90, "Namco", "Puzzle Club (Japan prototype)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, tankfrce, 0, ns1, ns1, namcos1_state, tankfrce, ROT0, "Namco", "Tank Force (US, 2 Player)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, tankfrce4, tankfrce, ns1, tankfrc4, namcos1_state, tankfrc4, ROT0, "Namco", "Tank Force (US, 4 Player)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, tankfrcej, tankfrce, ns1, ns1, namcos1_state, tankfrce, ROT0, "Namco", "Tank Force (Japan)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/namcos10.c b/src/mame/drivers/namcos10.c
index 7098a033743..39e37d3b9d7 100644
--- a/src/mame/drivers/namcos10.c
+++ b/src/mame/drivers/namcos10.c
@@ -269,6 +269,7 @@ Kono Tako 10021 Ver.A KC034A 8E, 8D
#include "emu.h"
#include "cpu/psx/psx.h"
#include "video/psx.h"
+#include "machine/ns10crypt.h"
class namcos10_state : public driver_device
{
@@ -283,7 +284,8 @@ public:
DECLARE_WRITE16_MEMBER(bank_w);
// memn variant interface
- DECLARE_READ16_MEMBER (nand_status_r);
+ DECLARE_WRITE16_MEMBER(crypto_switch_w);
+ DECLARE_READ16_MEMBER(nand_status_r);
DECLARE_WRITE8_MEMBER(nand_address1_w);
DECLARE_WRITE8_MEMBER(nand_address2_w);
DECLARE_WRITE8_MEMBER(nand_address3_w);
@@ -292,18 +294,44 @@ public:
DECLARE_WRITE16_MEMBER(nand_block_w);
DECLARE_READ16_MEMBER(nand_block_r);
+ DECLARE_READ16_MEMBER (control_r);
+ DECLARE_WRITE16_MEMBER(control_w);
+
+ DECLARE_READ16_MEMBER (i2c_clock_r);
+ DECLARE_WRITE16_MEMBER(i2c_clock_w);
+ DECLARE_READ16_MEMBER (i2c_data_r);
+ DECLARE_WRITE16_MEMBER(i2c_data_w);
+
+ DECLARE_READ16_MEMBER (sprot_r);
+ DECLARE_WRITE16_MEMBER(sprot_w);
+
UINT8 *nand_base;
void nand_copy( UINT32 *dst, UINT32 address, int len );
private:
+ enum {
+ I2CP_IDLE,
+ I2CP_RECIEVE_BYTE,
+ I2CP_RECIEVE_ACK_1,
+ I2CP_RECIEVE_ACK_0
+ };
UINT16 key;
UINT8 cnt;
UINT32 bank_base;
UINT32 nand_address;
UINT16 block[0x1ff];
+ ns10_decrypter_device* decrypter;
+
+ UINT16 i2c_host_clock, i2c_host_data, i2c_dev_clock, i2c_dev_data, i2c_prev_clock, i2c_prev_data;
+ int i2cp_mode;
+ UINT8 i2c_byte;
+ int i2c_bit;
+ int sprot_bit, sprot_byte;
UINT16 nand_read( UINT32 address );
UINT16 nand_read2( UINT32 address );
+
+ void i2c_update();
public:
DECLARE_DRIVER_INIT(knpuzzle);
DECLARE_DRIVER_INIT(panikuru);
@@ -323,9 +351,14 @@ public:
static ADDRESS_MAP_START( namcos10_map, AS_PROGRAM, 32, namcos10_state )
- AM_RANGE(0x1f500000, 0x1f5007ff) AM_RAM AM_SHARE("share3") /* ram? stores block numbers */
- AM_RANGE(0x9f500000, 0x9f5007ff) AM_RAM AM_SHARE("share3") /* ram? stores block numbers */
- AM_RANGE(0xbf500000, 0xbf5007ff) AM_RAM AM_SHARE("share3") /* ram? stores block numbers */
+ AM_RANGE(0x1f500000, 0x1f501fff) AM_RAM AM_SHARE("share3") /* ram? stores block numbers */
+ AM_RANGE(0x9f500000, 0x9f501fff) AM_RAM AM_SHARE("share3") /* ram? stores block numbers */
+ AM_RANGE(0xbf500000, 0xbf501fff) AM_RAM AM_SHARE("share3") /* ram? stores block numbers */
+
+ AM_RANGE(0x1fba0000, 0x1fba0003) AM_READWRITE16(sprot_r, sprot_w, 0xffff0000)
+ AM_RANGE(0x1fba0008, 0x1fba000b) AM_READWRITE16(i2c_clock_r, i2c_clock_w, 0x0000ffff)
+ AM_RANGE(0x1fba0008, 0x1fba000b) AM_READWRITE16(i2c_data_r, i2c_data_w, 0xffff0000)
+ AM_RANGE(0x1fba0000, 0x1fba000f) AM_READWRITE16(control_r, control_w, 0xffffffff)
ADDRESS_MAP_END
@@ -387,6 +420,141 @@ READ16_MEMBER(namcos10_state::range_r)
return dd16;
}
+READ16_MEMBER(namcos10_state::control_r)
+{
+ logerror("control_r %d (%x)\n", offset, space.device().safe_pc());
+ if(offset == 2)
+ return 1^0xffff;
+ return 0;
+}
+
+WRITE16_MEMBER(namcos10_state::control_w)
+{
+ logerror("control_w %d, %04x (%x)\n", offset, data, space.device().safe_pc());
+}
+
+WRITE16_MEMBER(namcos10_state::sprot_w)
+{
+ logerror("sprot_w %04x (%x)\n", data, space.device().safe_pc());
+ sprot_bit = 7;
+ sprot_byte = 0;
+}
+
+// startrgn:
+// 8004b6f8: jal 4b730, dies if v0!=0 (answers 1)
+// flash access, unhappy with the results
+
+// 800128d8: jal 37b58 (flash death)
+// 800128e0: jal 1649c
+// 800128e8: jal 2c47c
+
+READ16_MEMBER(namcos10_state::sprot_r)
+{
+ // If line 3 has 0x30/0x31 in it, something happens. That
+ // something currently kills the system though.
+
+ const static UINT8 prot[0x40] = {
+ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
+ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
+ 0x50, 0x51, 0x50, 0x51, 0x50, 0x51, 0x50, 0x51, 0x50, 0x51, 0x50, 0x51, 0x50, 0x51, 0x50, 0x51,
+ 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
+ };
+ UINT16 res = sprot_byte >= 0x20 ? 0x3 :
+ (((prot[sprot_byte ] >> sprot_bit) & 1) ? 1 : 0) |
+ (((prot[sprot_byte+0x20] >> sprot_bit) & 1) ? 2 : 0);
+
+ sprot_bit--;
+ if(sprot_bit == -1) {
+ sprot_bit = 7;
+ sprot_byte++;
+ }
+ return res;
+}
+
+READ16_MEMBER(namcos10_state::i2c_clock_r)
+{
+ UINT16 res = i2c_dev_clock & i2c_host_clock & 1;
+ // logerror("i2c_clock_r %d (%x)\n", res, space.device().safe_pc());
+ return res;
+}
+
+
+WRITE16_MEMBER(namcos10_state::i2c_clock_w)
+{
+ COMBINE_DATA(&i2c_host_clock);
+ // logerror("i2c_clock_w %d (%x)\n", data, space.device().safe_pc());
+ i2c_update();
+}
+
+READ16_MEMBER(namcos10_state::i2c_data_r)
+{
+ UINT16 res = i2c_dev_data & i2c_host_data & 1;
+ // logerror("i2c_data_r %d (%x)\n", res, space.device().safe_pc());
+ return res;
+}
+
+
+WRITE16_MEMBER(namcos10_state::i2c_data_w)
+{
+ COMBINE_DATA(&i2c_host_data);
+ // logerror("i2c_data_w %d (%x)\n", data, space.device().safe_pc());
+ i2c_update();
+}
+
+void namcos10_state::i2c_update()
+{
+ UINT16 clock = i2c_dev_clock & i2c_host_clock & 1;
+ UINT16 data = i2c_dev_data & i2c_host_data & 1;
+
+ if(i2c_prev_data == data && i2c_prev_clock == clock)
+ return;
+
+ switch(i2cp_mode) {
+ case I2CP_IDLE:
+ if(clock && !data) {
+ logerror("i2c: start bit\n");
+ i2c_byte = 0;
+ i2c_bit = 7;
+ i2cp_mode = I2CP_RECIEVE_BYTE;
+ }
+ break;
+ case I2CP_RECIEVE_BYTE:
+ if(clock && data && !i2c_prev_data) {
+ logerror("i2c stop bit\n");
+ i2cp_mode = I2CP_IDLE;
+ } else if(clock && !i2c_prev_clock) {
+ i2c_byte |= (data << i2c_bit);
+ // logerror("i2c_byte = %02x (%d)\n", i2c_byte, i2c_bit);
+ i2c_bit--;
+ if(i2c_bit < 0) {
+ i2cp_mode = I2CP_RECIEVE_ACK_1;
+ logerror("i2c recieved byte %02x\n", i2c_byte);
+ i2c_dev_data = 0;
+ data = 0;
+ }
+ }
+ break;
+ case I2CP_RECIEVE_ACK_1:
+ if(clock && !i2c_prev_clock) {
+ // logerror("i2c ack on\n");
+ i2cp_mode = I2CP_RECIEVE_ACK_0;
+ }
+ break;
+ case I2CP_RECIEVE_ACK_0:
+ if(!clock && i2c_prev_clock) {
+ // logerror("i2c ack off\n");
+ i2c_dev_data = 1;
+ data = i2c_host_data & 1;
+ i2c_byte = 0;
+ i2c_bit = 7;
+ i2cp_mode = I2CP_RECIEVE_BYTE;
+ }
+ break;
+ }
+ i2c_prev_data = data;
+ i2c_prev_clock = clock;
+}
+
static ADDRESS_MAP_START( namcos10_memm_map, AS_PROGRAM, 32, namcos10_state )
AM_RANGE(0x1f300000, 0x1f300003) AM_WRITE16(key_w, 0x0000ffff)
AM_RANGE(0x1f400000, 0x1f5fffff) AM_READ16(range_r, 0xffffffff)
@@ -401,6 +569,18 @@ ADDRESS_MAP_END
// Block access to the nand. Something strange is going on with the
// status port. Interaction with the decryption is unclear at best.
+WRITE16_MEMBER(namcos10_state::crypto_switch_w)
+{
+ printf("crypto_switch_w: %04x\n", data);
+ if (decrypter == 0)
+ return;
+
+ if (BIT(data, 15) != 0)
+ decrypter->activate(data & 0xf);
+ else
+ decrypter->deactivate();
+}
+
READ16_MEMBER(namcos10_state::nand_status_r )
{
return 0;
@@ -447,11 +627,19 @@ READ16_MEMBER( namcos10_state::nand_data_r )
UINT16 data = nand_read2( nand_address * 2 );
// logerror("read %08x = %04x\n", nand_address*2, data);
+ // printf("read %08x = %04x\n", nand_address*2, data);
+
/* printf( "data<-%08x (%08x)\n", data, nand_address ); */
nand_address++;
- return data;
+ if (decrypter == 0)
+ return data;
+
+ if (decrypter->is_active())
+ return decrypter->decrypt(data);
+ else
+ return data;
}
void namcos10_state::nand_copy( UINT32 *dst, UINT32 address, int len )
@@ -475,8 +663,8 @@ READ16_MEMBER(namcos10_state::nand_block_r)
}
static ADDRESS_MAP_START( namcos10_memn_map, AS_PROGRAM, 32, namcos10_state )
- AM_RANGE(0x1f300000, 0x1f300003) AM_WRITE16(key_w, 0x0000ffff)
-
+ AM_RANGE(0x1f300000, 0x1f300003) AM_WRITE16(crypto_switch_w, 0x0000ffff)
+ AM_RANGE(0x1f380000, 0x1f380003) AM_WRITE16(crypto_switch_w, 0x0000ffff)
AM_RANGE(0x1f400000, 0x1f400003) AM_READ16(nand_status_r, 0x0000ffff)
AM_RANGE(0x1f410000, 0x1f410003) AM_WRITE8(nand_address1_w, 0x000000ff)
AM_RANGE(0x1f420000, 0x1f420003) AM_WRITE8(nand_address2_w, 0x000000ff)
@@ -492,17 +680,18 @@ void namcos10_state::memn_driver_init( )
{
UINT8 *BIOS = (UINT8 *)memregion( "maincpu:rom" )->base();
nand_base = (UINT8 *)memregion( "user2" )->base();
+ decrypter = static_cast<ns10_decrypter_device*>(machine().root_device().subdevice("decrypter"));
nand_copy( (UINT32 *)( BIOS + 0x0000000 ), 0x08000, 0x001c000 );
nand_copy( (UINT32 *)( BIOS + 0x0020000 ), 0x24000, 0x03e0000 );
}
-static void decrypt_bios( running_machine &machine, const char *regionName, int start, int b15, int b14, int b13, int b12, int b11, int b10, int b9, int b8,
+static void decrypt_bios( running_machine &machine, const char *regionName, int start, int end, int b15, int b14, int b13, int b12, int b11, int b10, int b9, int b8,
int b7, int b6, int b5, int b4, int b3, int b2, int b1, int b0 )
{
memory_region *region = machine.root_device().memregion( regionName );
UINT16 *BIOS = (UINT16 *)( region->base() + start );
- int len = (region->bytes()-start)/2;
+ int len = (end - start) / 2;
for( int i = 0; i < len; i++ )
{
@@ -513,72 +702,103 @@ static void decrypt_bios( running_machine &machine, const char *regionName, int
DRIVER_INIT_MEMBER(namcos10_state,mrdrilr2)
{
- decrypt_bios( machine(), "maincpu:rom", 0, 0xc, 0xd, 0xf, 0xe, 0xb, 0xa, 0x9, 0x8, 0x7, 0x6, 0x4, 0x1, 0x2, 0x5, 0x0, 0x3 );
+ int regSize = machine().root_device().memregion("user2")->bytes();
+ decrypt_bios(machine(), "maincpu:rom", 0, regSize, 0xc, 0xd, 0xf, 0xe, 0xb, 0xa, 0x9, 0x8, 0x7, 0x6, 0x4, 0x1, 0x2, 0x5, 0x0, 0x3);
}
DRIVER_INIT_MEMBER(namcos10_state,gjspace)
{
- decrypt_bios( machine(), "user2", 0x8400, 0x0, 0x2, 0xe, 0xd, 0xf, 0x6, 0xc, 0x7, 0x5, 0x1, 0x9, 0x8, 0xa, 0x3, 0x4, 0xb );
+ int regSize = machine().root_device().memregion("user2")->bytes();
+ decrypt_bios(machine(), "user2", 0x0008400, 0x0029400, 0x0, 0x2, 0xe, 0xd, 0xf, 0x6, 0xc, 0x7, 0x5, 0x1, 0x9, 0x8, 0xa, 0x3, 0x4, 0xb);
+ decrypt_bios(machine(), "user2", 0x0210000, 0x104e800, 0x0, 0x2, 0xe, 0xd, 0xf, 0x6, 0xc, 0x7, 0x5, 0x1, 0x9, 0x8, 0xa, 0x3, 0x4, 0xb);
+ decrypt_bios(machine(), "user2", 0x1077c00, regSize, 0x0, 0x2, 0xe, 0xd, 0xf, 0x6, 0xc, 0x7, 0x5, 0x1, 0x9, 0x8, 0xa, 0x3, 0x4, 0xb);
memn_driver_init();
}
DRIVER_INIT_MEMBER(namcos10_state,mrdrilrg)
{
- decrypt_bios( machine(), "user2", 0x8400, 0x6, 0x4, 0x7, 0x5, 0x2, 0x1, 0x0, 0x3, 0xc, 0xd, 0xe, 0xf, 0x8, 0x9, 0xb, 0xa );
+ int regSize = machine().root_device().memregion("user2")->bytes();
+ decrypt_bios(machine(), "user2", 0x8400, regSize, 0x6, 0x4, 0x7, 0x5, 0x2, 0x1, 0x0, 0x3, 0xc, 0xd, 0xe, 0xf, 0x8, 0x9, 0xb, 0xa);
memn_driver_init();
}
DRIVER_INIT_MEMBER(namcos10_state,knpuzzle)
{
- decrypt_bios( machine(), "user2", 0x8400, 0x6, 0x7, 0x4, 0x5, 0x2, 0x0, 0x3, 0x1, 0xc, 0xd, 0xe, 0xf, 0x9, 0xb, 0x8, 0xa );
+ int regSize = machine().root_device().memregion("user2")->bytes();
+ decrypt_bios(machine(), "user2", 0x0008400, 0x0029400, 0x6, 0x7, 0x4, 0x5, 0x2, 0x0, 0x3, 0x1, 0xc, 0xd, 0xe, 0xf, 0x9, 0xb, 0x8, 0xa);
+ decrypt_bios(machine(), "user2", 0x047ac00, 0x1042200, 0x6, 0x7, 0x4, 0x5, 0x2, 0x0, 0x3, 0x1, 0xc, 0xd, 0xe, 0xf, 0x9, 0xb, 0x8, 0xa);
+ decrypt_bios(machine(), "user2", 0x104a600, regSize , 0x6, 0x7, 0x4, 0x5, 0x2, 0x0, 0x3, 0x1, 0xc, 0xd, 0xe, 0xf, 0x9, 0xb, 0x8, 0xa);
memn_driver_init();
}
DRIVER_INIT_MEMBER(namcos10_state,startrgn)
{
- decrypt_bios( machine(), "user2", 0x8400, 0x6, 0x5, 0x4, 0x7, 0x1, 0x3, 0x0, 0x2, 0xc, 0xd, 0xe, 0xf, 0x8, 0xb, 0xa, 0x9 );
+ int regSize = machine().root_device().memregion("user2")->bytes();
+ decrypt_bios(machine(), "user2", 0x0008400, 0x0029400, 0x6, 0x5, 0x4, 0x7, 0x1, 0x3, 0x0, 0x2, 0xc, 0xd, 0xe, 0xf, 0x8, 0xb, 0xa, 0x9);
+ decrypt_bios(machine(), "user2", 0x00b9a00, 0x105ae00, 0x6, 0x5, 0x4, 0x7, 0x1, 0x3, 0x0, 0x2, 0xc, 0xd, 0xe, 0xf, 0x8, 0xb, 0xa, 0x9);
+ decrypt_bios(machine(), "user2", 0x1080000, regSize , 0x6, 0x7, 0x4, 0x5, 0x0, 0x1, 0x3, 0x2, 0xd, 0xc, 0xf, 0xe, 0x8, 0x9, 0xb, 0xa);
memn_driver_init();
}
DRIVER_INIT_MEMBER(namcos10_state,gamshara)
{
- decrypt_bios( machine(), "user2", 0x8400, 0x5, 0x4, 0x7, 0x6, 0x0, 0x1, 0x3, 0x2, 0xd, 0xf, 0xc, 0xe, 0x8, 0x9, 0xa, 0xb );
+ int regSize = machine().root_device().memregion("user2")->bytes();
+ decrypt_bios(machine(), "user2", 0x0008400, 0x0029400, 0x5, 0x4, 0x7, 0x6, 0x0, 0x1, 0x3, 0x2, 0xd, 0xf, 0xc, 0xe, 0x8, 0x9, 0xa, 0xb);
+ decrypt_bios(machine(), "user2", 0x014e200, 0x105ae00, 0x5, 0x4, 0x7, 0x6, 0x0, 0x1, 0x3, 0x2, 0xd, 0xf, 0xc, 0xe, 0x8, 0x9, 0xa, 0xb);
+ decrypt_bios(machine(), "user2", 0x1080000, regSize , 0x5, 0x4, 0x7, 0x6, 0x0, 0x1, 0x3, 0x2, 0xd, 0xf, 0xc, 0xe, 0x8, 0x9, 0xa, 0xb);
memn_driver_init();
}
DRIVER_INIT_MEMBER(namcos10_state,gunbalna)
{
- decrypt_bios( machine(), "user2", 0x8400, 0x5, 0x4, 0x7, 0x6, 0x0, 0x1, 0x3, 0x2, 0xd, 0xf, 0xc, 0xe, 0x9, 0x8, 0xa, 0xb );
+ int regSize = machine().root_device().memregion("user2")->bytes();
+ decrypt_bios(machine(), "user2", 0x8400, regSize, 0x5, 0x4, 0x7, 0x6, 0x0, 0x1, 0x3, 0x2, 0xd, 0xf, 0xc, 0xe, 0x9, 0x8, 0xa, 0xb);
memn_driver_init();
}
DRIVER_INIT_MEMBER(namcos10_state,chocovdr)
{
- decrypt_bios( machine(), "user2", 0x8400, 0x5, 0x4, 0x6, 0x7, 0x1, 0x0, 0x2, 0x3, 0xc, 0xf, 0xe, 0xd, 0x8, 0xb, 0xa, 0x9 );
+ int regSize = machine().root_device().memregion("user2")->bytes();
+ decrypt_bios(machine(), "user2", 0x0008400, 0x0029400, 0x5, 0x4, 0x6, 0x7, 0x1, 0x0, 0x2, 0x3, 0xc, 0xf, 0xe, 0xd, 0x8, 0xb, 0xa, 0x9);
+ decrypt_bios(machine(), "user2", 0x01eae00, 0x105ae00, 0x5, 0x4, 0x6, 0x7, 0x1, 0x0, 0x2, 0x3, 0xc, 0xf, 0xe, 0xd, 0x8, 0xb, 0xa, 0x9);
+ decrypt_bios(machine(), "user2", 0x1080000, regSize , 0x5, 0x4, 0x6, 0x7, 0x1, 0x0, 0x2, 0x3, 0xc, 0xf, 0xe, 0xd, 0x8, 0xb, 0xa, 0x9);
memn_driver_init();
}
DRIVER_INIT_MEMBER(namcos10_state,panikuru)
{
- decrypt_bios( machine(), "user2", 0x8400, 0x6, 0x4, 0x7, 0x5, 0x0, 0x1, 0x2, 0x3, 0xc, 0xf, 0xe, 0xd, 0x9, 0x8, 0xb, 0xa );
+ int regSize = machine().root_device().memregion("user2")->bytes();
+ decrypt_bios(machine(), "user2", 0x8400, regSize, 0x6, 0x4, 0x7, 0x5, 0x0, 0x1, 0x2, 0x3, 0xc, 0xf, 0xe, 0xd, 0x9, 0x8, 0xb, 0xa);
memn_driver_init();
}
DRIVER_INIT_MEMBER(namcos10_state,nflclsfb)
{
- decrypt_bios( machine(), "user2", 0x8400, 0x6, 0x5, 0x4, 0x7, 0x1, 0x3, 0x0, 0x2, 0xc, 0xd, 0xe, 0xf, 0x8, 0xb, 0xa, 0x9 );
+ int regSize = machine().root_device().memregion("user2")->bytes();
+ decrypt_bios(machine(), "user2", 0x0008400, 0x0029400, 0x6, 0x5, 0x4, 0x7, 0x1, 0x3, 0x0, 0x2, 0xc, 0xd, 0xe, 0xf, 0x8, 0xb, 0xa, 0x9);
+ decrypt_bios(machine(), "user2", 0x0214200, 0x105ae00, 0x6, 0x5, 0x4, 0x7, 0x1, 0x3, 0x0, 0x2, 0xc, 0xd, 0xe, 0xf, 0x8, 0xb, 0xa, 0x9);
+ decrypt_bios(machine(), "user2", 0x1080000, regSize , 0x6, 0x5, 0x4, 0x7, 0x1, 0x3, 0x0, 0x2, 0xc, 0xd, 0xe, 0xf, 0x8, 0xb, 0xa, 0x9);
memn_driver_init();
}
DRIVER_INIT_MEMBER(namcos10_state,konotako)
{
- decrypt_bios( machine(), "user2", 0x8400, 0x6, 0x7, 0x4, 0x5, 0x0, 0x1, 0x3, 0x2, 0xd, 0xc, 0xf, 0xe, 0x8, 0x9, 0xb, 0xa );
+ int regSize = machine().root_device().memregion("user2")->bytes();
+ decrypt_bios(machine(), "user2", 0x0008400, 0x0029400, 0x6, 0x7, 0x4, 0x5, 0x0, 0x1, 0x3, 0x2, 0xd, 0xc, 0xf, 0xe, 0x8, 0x9, 0xb, 0xa);
+ decrypt_bios(machine(), "user2", 0x00b9a00, 0x105ae00, 0x6, 0x7, 0x4, 0x5, 0x0, 0x1, 0x3, 0x2, 0xd, 0xc, 0xf, 0xe, 0x8, 0x9, 0xb, 0xa);
+ decrypt_bios(machine(), "user2", 0x1080000, regSize , 0x6, 0x7, 0x4, 0x5, 0x0, 0x1, 0x3, 0x2, 0xd, 0xc, 0xf, 0xe, 0x8, 0x9, 0xb, 0xa);
memn_driver_init();
}
MACHINE_RESET_MEMBER(namcos10_state,namcos10)
{
+ i2c_dev_clock = i2c_dev_data = 1;
+ i2c_host_clock = i2c_host_data = 1;
+ i2c_prev_clock = i2c_prev_data = 1;
+ i2cp_mode = I2CP_IDLE;
+ i2c_byte = 0x00;
+ i2c_bit = 0;
}
static MACHINE_CONFIG_START( namcos10_memm, namcos10_state )
@@ -586,6 +806,13 @@ static MACHINE_CONFIG_START( namcos10_memm, namcos10_state )
MCFG_CPU_ADD( "maincpu", CXD8606BQ, XTAL_101_4912MHz )
MCFG_CPU_PROGRAM_MAP( namcos10_memm_map )
+ // The bios first configures the rom window as 80000-big, then
+ // switches to 400000. If berr is active, the first configuration
+ // wipes all handlers after 1fc80000, which kills the system
+ // afterwards
+
+ MCFG_PSX_DISABLE_ROM_BERR
+
MCFG_RAM_MODIFY("maincpu:ram")
MCFG_RAM_DEFAULT_SIZE("16M")
@@ -603,6 +830,13 @@ static MACHINE_CONFIG_START( namcos10_memn, namcos10_state )
MCFG_CPU_ADD( "maincpu", CXD8606BQ, XTAL_101_4912MHz )
MCFG_CPU_PROGRAM_MAP( namcos10_memn_map )
+ // The bios first configures the rom window as 80000-big, then
+ // switches to 400000. If berr is active, the first configuration
+ // wipes all handlers after 1fc80000, which kills the system
+ // afterwards
+
+ MCFG_PSX_DISABLE_ROM_BERR
+
MCFG_RAM_MODIFY("maincpu:ram")
MCFG_RAM_DEFAULT_SIZE("16M")
@@ -615,6 +849,41 @@ static MACHINE_CONFIG_START( namcos10_memn, namcos10_state )
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MACHINE_CONFIG_END
+static MACHINE_CONFIG_DERIVED(ns10_chocovdr, namcos10_memn)
+/* decrypter device (CPLD in hardware?) */
+MCFG_DEVICE_ADD("decrypter", CHOCOVDR_DECRYPTER, 0)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED(ns10_gamshara, namcos10_memn)
+/* decrypter device (CPLD in hardware?) */
+MCFG_DEVICE_ADD("decrypter", GAMSHARA_DECRYPTER, 0)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED(ns10_gjspace, namcos10_memn)
+/* decrypter device (CPLD in hardware?) */
+MCFG_DEVICE_ADD("decrypter", GJSPACE_DECRYPTER, 0)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED(ns10_knpuzzle, namcos10_memn)
+/* decrypter device (CPLD in hardware?) */
+MCFG_DEVICE_ADD("decrypter", KNPUZZLE_DECRYPTER, 0)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED(ns10_konotako, namcos10_memn)
+/* decrypter device (CPLD in hardware?) */
+MCFG_DEVICE_ADD("decrypter", KONOTAKO_DECRYPTER, 0)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED(ns10_nflclsfb, namcos10_memn)
+/* decrypter device (CPLD in hardware?) */
+MCFG_DEVICE_ADD("decrypter", NFLCLSFB_DECRYPTER, 0)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED(ns10_startrgn, namcos10_memn)
+/* decrypter device (CPLD in hardware?) */
+MCFG_DEVICE_ADD("decrypter", STARTRGN_DECRYPTER, 0)
+MACHINE_CONFIG_END
+
static INPUT_PORTS_START( namcos10 )
/* IN 0 */
PORT_START("SYSTEM")
@@ -750,8 +1019,9 @@ ROM_START( ptblank3 )
ROM_FILL( 0x0000000, 0x400000, 0x55 )
ROM_REGION16_LE( 0x2100000, "user2", 0 ) /* main prg */
- ROM_LOAD( "gnn2a.8e", 0x0000000, 0x1080000, CRC(31b39221) SHA1(7fcb14aaa26c531928a6cd704e746d0e3ae3e031) )
- ROM_LOAD( "gnn2a.8d", 0x1080000, 0x1080000, CRC(82d2cfb5) SHA1(4b5e713a55e74a7b32b1b9b5811892df2df86256) )
+ // protection issues preventing the last NAND block to be dumped
+ ROM_LOAD("gnn2a.8e", 0x0000000, 0x1080000, BAD_DUMP CRC(31b39221) SHA1(7fcb14aaa26c531928a6cd704e746d0e3ae3e031))
+ ROM_LOAD( "gnn2a.8d", 0x1080000, 0x1080000, BAD_DUMP CRC(82d2cfb5) SHA1(4b5e713a55e74a7b32b1b9b5811892df2df86256) )
ROM_END
ROM_START( gunbalina )
@@ -759,8 +1029,9 @@ ROM_START( gunbalina )
ROM_FILL( 0x0000000, 0x400000, 0x55 )
ROM_REGION16_LE( 0x2100000, "user2", 0 ) /* main prg */
- ROM_LOAD( "gnn1a.8e", 0x0000000, 0x1080000, CRC(981b03d4) SHA1(1c55458f1b2964afe2cf4e9d84548c0699808e9f) )
- ROM_LOAD( "gnn1a.8d", 0x1080000, 0x1080000, CRC(6cd343e0) SHA1(dcec44abae1504025895f42fe574549e5010f7d5) )
+ // protection issues preventing the last NAND block to be dumped
+ ROM_LOAD( "gnn1a.8e", 0x0000000, 0x1080000, BAD_DUMP CRC(981b03d4) SHA1(1c55458f1b2964afe2cf4e9d84548c0699808e9f) )
+ ROM_LOAD( "gnn1a.8d", 0x1080000, 0x1080000, BAD_DUMP CRC(6cd343e0) SHA1(dcec44abae1504025895f42fe574549e5010f7d5) )
ROM_END
ROM_START( chocovdr )
@@ -806,17 +1077,17 @@ ROM_START( konotako )
ROM_END
-GAME( 2000, mrdrilr2, 0, namcos10_memm, namcos10, namcos10_state, mrdrilr2, ROT0, "Namco", "Mr. Driller 2 (Japan, DR21 Ver.A)", GAME_NOT_WORKING | GAME_NO_SOUND ) // PORT_4WAY joysticks
-GAME( 2000, mrdrlr2a, mrdrilr2, namcos10_memm, namcos10, namcos10_state, mrdrilr2, ROT0, "Namco", "Mr. Driller 2 (Asia, DR22 Ver.A)", GAME_NOT_WORKING | GAME_NO_SOUND ) // PORT_4WAY joysticks
-GAME( 2000, ptblank3, 0, namcos10_memn, namcos10, namcos10_state, gunbalna, ROT0, "Namco", "Point Blank 3 (Asia, GNN2 Ver.A)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 2000, gunbalina, ptblank3, namcos10_memn, namcos10, namcos10_state, gunbalna, ROT0, "Namco", "Gunbalina (Japan, GNN1 Ver.A)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 2001, gjspace, 0, namcos10_memn, namcos10, namcos10_state, gjspace, ROT0, "Namco / Metro", "Gekitoride-Jong Space (10011 Ver.A)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 2001, mrdrilrg, 0, namcos10_memn, namcos10, namcos10_state, mrdrilrg, ROT0, "Namco", "Mr. Driller G (Japan, DRG1 Ver.A)", GAME_NOT_WORKING | GAME_NO_SOUND ) // PORT_4WAY joysticks
-GAME( 2001, mrdrilrga, mrdrilrg, namcos10_memn, namcos10, namcos10_state, mrdrilrg, ROT0, "Namco", "Mr. Driller G ALT (Japan, DRG1 Ver.A)", GAME_NOT_WORKING | GAME_NO_SOUND ) // PORT_4WAY joysticks
-GAME( 2001, knpuzzle, 0, namcos10_memn, namcos10, namcos10_state, knpuzzle, ROT0, "Namco", "Kotoba no Puzzle Mojipittan (Japan, KPM1 Ver.A)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 2002, chocovdr, 0, namcos10_memn, namcos10, namcos10_state, chocovdr, ROT0, "Namco", "Uchuu Daisakusen: Chocovader Contactee (Japan, CVC1 Ver.A)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 2002, startrgn, 0, namcos10_memn, namcos10, namcos10_state, startrgn, ROT0, "Namco", "Star Trigon (Japan, STT1 Ver.A)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 2002, panikuru, 0, namcos10_memn, namcos10, namcos10_state, panikuru, ROT0, "Namco", "Panicuru Panekuru (Japan, PPA1 Ver.A)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 2003, nflclsfb, 0, namcos10_memn, namcos10, namcos10_state, nflclsfb, ROT0, "Namco", "NFL Classic Football (US, NCF3 Ver.A.)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 2003, gamshara, 0, namcos10_memn, namcos10, namcos10_state, gamshara, ROT0, "Mitchell", "Gamshara (10021 Ver.A)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 2003, konotako, 0, namcos10_memn, namcos10, namcos10_state, konotako, ROT0, "Mitchell", "Kono Tako (10021 Ver.A)", GAME_NOT_WORKING | GAME_NO_SOUND )
+GAME( 2000, mrdrilr2, 0, namcos10_memm, namcos10, namcos10_state, mrdrilr2, ROT0, "Namco", "Mr. Driller 2 (Japan, DR21 Ver.A)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // PORT_4WAY joysticks
+GAME( 2000, mrdrlr2a, mrdrilr2, namcos10_memm, namcos10, namcos10_state, mrdrilr2, ROT0, "Namco", "Mr. Driller 2 (Asia, DR22 Ver.A)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // PORT_4WAY joysticks
+GAME( 2000, ptblank3, 0, namcos10_memn, namcos10, namcos10_state, gunbalna, ROT0, "Namco", "Point Blank 3 (Asia, GNN2 Ver.A)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 2000, gunbalina, ptblank3, namcos10_memn, namcos10, namcos10_state, gunbalna, ROT0, "Namco", "Gunbalina (Japan, GNN1 Ver.A)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 2001, gjspace, 0, ns10_gjspace , namcos10, namcos10_state, gjspace, ROT0, "Namco / Metro", "Gekitoride-Jong Space (10011 Ver.A)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 2001, mrdrilrg, 0, namcos10_memn, namcos10, namcos10_state, mrdrilrg, ROT0, "Namco", "Mr. Driller G (Japan, DRG1 Ver.A)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // PORT_4WAY joysticks
+GAME( 2001, mrdrilrga, mrdrilrg, namcos10_memn, namcos10, namcos10_state, mrdrilrg, ROT0, "Namco", "Mr. Driller G ALT (Japan, DRG1 Ver.A)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // PORT_4WAY joysticks
+GAME( 2001, knpuzzle, 0, ns10_knpuzzle, namcos10, namcos10_state, knpuzzle, ROT0, "Namco", "Kotoba no Puzzle Mojipittan (Japan, KPM1 Ver.A)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 2002, chocovdr, 0, ns10_chocovdr, namcos10, namcos10_state, chocovdr, ROT0, "Namco", "Uchuu Daisakusen: Chocovader Contactee (Japan, CVC1 Ver.A)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 2002, startrgn, 0, ns10_startrgn, namcos10, namcos10_state, startrgn, ROT0, "Namco", "Star Trigon (Japan, STT1 Ver.A)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
+GAME( 2002, panikuru, 0, namcos10_memn, namcos10, namcos10_state, panikuru, ROT0, "Namco", "Panicuru Panekuru (Japan, PPA1 Ver.A)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 2003, nflclsfb, 0, ns10_nflclsfb, namcos10, namcos10_state, nflclsfb, ROT0, "Namco", "NFL Classic Football (US, NCF3 Ver.A.)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 2003, gamshara, 0, ns10_gamshara, namcos10, namcos10_state, gamshara, ROT0, "Mitchell", "Gamshara (10021 Ver.A)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 2003, konotako, 0, ns10_konotako, namcos10, namcos10_state, konotako, ROT0, "Mitchell", "Kono Tako (10021 Ver.A)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/namcos11.c b/src/mame/drivers/namcos11.c
index e6d53c00e6c..5b813e8dbdc 100644
--- a/src/mame/drivers/namcos11.c
+++ b/src/mame/drivers/namcos11.c
@@ -45,7 +45,7 @@ myangel3 Kosodate Quiz My Angel 3 (KQT1/VER.A) COH-110 SYSTEM11
ptblank2ua Point Blank 2 (GNB3/VER.A) COH-100 / COH-110 SYSTEM11 MOTHER PCB SYSTEM11 ROM8(64) PCB C443 2
-Not Dumped Yet
+Not Dumped Yet (they possibly don't exist)
--------------
Point Blank 3 (C) Namco, 2001
Soul Edge Ver. III (C) Namco, 1996
@@ -262,13 +262,35 @@ Notes:
SLA4060 - Sanken Electric Co. NPN Darlington Transistor Array (SIP12)
J1 - 96 pin connector joining to the mother board (connector below the PCB)
J2 - 96 pin connector joining to the CPU board (connector above the PCB)
- J3 - 10 pin connector joining to the gun via a 24V solenoid driver board (for the gun recoil)
+ J3 - 10 pin connector joining to the gun via a 24V solenoid driver board (for the gun opto/recoil)
S11GUN0 - PLCC84 FPGA (not populated)
S11GUN1 - Altera Max EPM7128STC100-10 EPLD (QFP100, not populated)
S11GUN2 - Altera Max EPM7128STC100-10 EPLD (QFP100, labelled 'S11GUN2)
S11GUN3 - Altera Max EPM7128STC100-10 EPLD (QFP100, not populated)
AV9170 - Integrated Circuit Systems Inc. AV9170 Clock Synchronizer and Multiplier, Voltage Controlled Oscillator (SOIC8)
+To connect a normal (i.e. HAPP) light gun only 4 wires are needed.
+Those are +5V, GND, trigger and gun optical sensor using pins 5 & 9 of J3 and pins 1, 3 & 22 (both solder and parts side)
+of the JAMMA connector. A Namco gun can also be connected the same way, with or without the kickback solenoid.
+
+J3 connector:
+Pin 1 - Not Used
+Pin 2 - Not Used
+Pin 3 - Gun 1 Solenoid
+Pin 4 - Player 1 Start Button Lamp
+Pin 5 - Gun 1 Sensor
+Pin 6 - GND
+Pin 7 - Gun 2 Solenoid
+Pin 8 - Player 2 Start Button Lamp
+Pin 9 - Gun 2 Sensor
+Pin 10- Not Used
+
+JAMMA Harness:
+Pin 1 Parts Side - GND
+Pin 3 Parts Side - +5V
+Pin 22 Parts Side - Gun 1 Trigger
+Pin 22 Solder Side - Gun 2 Trigger
+
***************************************************************************/
#include "emu.h"
@@ -571,7 +593,7 @@ static MACHINE_CONFIG_START( coh110, namcos11_state )
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
- MCFG_C352_ADD("c352", 20013200, C352_DIVIDER_228)
+ MCFG_C352_ADD("c352", 20013200, 228)
MCFG_SOUND_ROUTE(0, "rspeaker", 1.00)
MCFG_SOUND_ROUTE(1, "lspeaker", 1.00)
MCFG_SOUND_ROUTE(2, "rspeaker", 1.00)
@@ -1581,28 +1603,28 @@ ROM_START( xevi3dg )
ROM_RELOAD( 0x800000, 0x400000 )
ROM_END
-GAME( 1994, tekken, 0, tekken, tekken, driver_device, 0, ROT0, "Namco", "Tekken (World, TE4/VER.C)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1994, tekkenac, tekken, tekken, tekken, driver_device, 0, ROT0, "Namco", "Tekken (Asia, TE2/VER.C)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1994, tekkenab, tekken, tekken, tekken, driver_device, 0, ROT0, "Namco", "Tekken (Asia, TE2/VER.B)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1994, tekkenjb, tekken, tekken, tekken, driver_device, 0, ROT0, "Namco", "Tekken (Japan, TE1/VER.B)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, tekken2, 0, tekken2, tekken, driver_device, 0, ROT0, "Namco", "Tekken 2 Ver.B (US, TES3/VER.D)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1995, tekken2ub, tekken2, tekken2o, tekken, driver_device, 0, ROT0, "Namco", "Tekken 2 Ver.B (US, TES3/VER.B)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1995, tekken2ab, tekken2, tekken2o, tekken, driver_device, 0, ROT0, "Namco", "Tekken 2 Ver.B (Asia, TES2/VER.B)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1995, tekken2jc, tekken2, tekken2o, tekken, driver_device, 0, ROT0, "Namco", "Tekken 2 Ver.B (Japan, TES1/VER.C)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1995, tekken2jb, tekken2, tekken2o, tekken, driver_device, 0, ROT0, "Namco", "Tekken 2 Ver.B (Japan, TES1/VER.B)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1995, tekken2aa, tekken2, tekken2o, tekken, driver_device, 0, ROT0, "Namco", "Tekken 2 (Asia, TES2/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, souledge, 0, souledge, souledge, driver_device, 0, ROT0, "Namco", "Soul Edge Ver. II (World, SO4/VER.C)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1995, souledgeuc, souledge, souledge, souledge, driver_device, 0, ROT0, "Namco", "Soul Edge Ver. II (US, SO3/VER.C)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1995, souledgeua, souledge, souledge, souledge, driver_device, 0, ROT0, "Namco", "Soul Edge (US, SO3/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1995, souledgeaa, souledge, souledge, souledge, driver_device, 0, ROT0, "Namco", "Soul Edge (Asia, SO2/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1995, souledgeja, souledge, souledge, souledge, driver_device, 0, ROT0, "Namco", "Soul Edge (Japan, SO1/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1995, dunkmnia, 0, dunkmnia, namcos11, driver_device, 0, ROT0, "Namco", "Dunk Mania (Asia, DM2/VER.C)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1995, dunkmniajc, dunkmnia, dunkmnia, namcos11, driver_device, 0, ROT0, "Namco", "Dunk Mania (Japan, DM1/VER.C)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1995, xevi3dg, 0, xevi3dg, namcos11, driver_device, 0, ROT0, "Namco", "Xevious 3D/G (Japan, XV31/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, primglex, 0, primglex, tekken, driver_device, 0, ROT0, "Namco", "Prime Goal EX (Japan, PG1/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, danceyes, 0, danceyes, namcos11, driver_device, 0, ROT0, "Namco", "Dancing Eyes (US, DC3/VER.C)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, danceyesj, danceyes, danceyes, namcos11, driver_device, 0, ROT0, "Namco", "Dancing Eyes (Japan, DC1/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, pocketrc, 0, pocketrc, pocketrc, driver_device, 0, ROT0, "Namco", "Pocket Racer (Japan, PKR1/VER.B)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1997, starswep, 0, starswep, namcos11, driver_device, 0, ROT0, "Axela / Namco", "Star Sweep (Japan, STP1/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, myangel3, 0, myangel3, myangel3, driver_device, 0, ROT0, "MOSS / Namco", "Kosodate Quiz My Angel 3 (Japan, KQT1/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1999, ptblank2ua, ptblank2, ptblank2ua, ptblank2ua, driver_device, 0, ROT0, "Namco", "Point Blank 2 (US, GNB3/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
+GAME( 1994, tekken, 0, tekken, tekken, driver_device, 0, ROT0, "Namco", "Tekken (World, TE4/VER.C)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1994, tekkenac, tekken, tekken, tekken, driver_device, 0, ROT0, "Namco", "Tekken (Asia, TE2/VER.C)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1994, tekkenab, tekken, tekken, tekken, driver_device, 0, ROT0, "Namco", "Tekken (Asia, TE2/VER.B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1994, tekkenjb, tekken, tekken, tekken, driver_device, 0, ROT0, "Namco", "Tekken (Japan, TE1/VER.B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, tekken2, 0, tekken2, tekken, driver_device, 0, ROT0, "Namco", "Tekken 2 Ver.B (US, TES3/VER.D)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1995, tekken2ub, tekken2, tekken2o, tekken, driver_device, 0, ROT0, "Namco", "Tekken 2 Ver.B (US, TES3/VER.B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1995, tekken2ab, tekken2, tekken2o, tekken, driver_device, 0, ROT0, "Namco", "Tekken 2 Ver.B (Asia, TES2/VER.B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1995, tekken2jc, tekken2, tekken2o, tekken, driver_device, 0, ROT0, "Namco", "Tekken 2 Ver.B (Japan, TES1/VER.C)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1995, tekken2jb, tekken2, tekken2o, tekken, driver_device, 0, ROT0, "Namco", "Tekken 2 Ver.B (Japan, TES1/VER.B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1995, tekken2aa, tekken2, tekken2o, tekken, driver_device, 0, ROT0, "Namco", "Tekken 2 (Asia, TES2/VER.A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, souledge, 0, souledge, souledge, driver_device, 0, ROT0, "Namco", "Soul Edge Ver. II (World, SO4/VER.C)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1995, souledgeuc, souledge, souledge, souledge, driver_device, 0, ROT0, "Namco", "Soul Edge Ver. II (US, SO3/VER.C)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1995, souledgeua, souledge, souledge, souledge, driver_device, 0, ROT0, "Namco", "Soul Edge (US, SO3/VER.A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1995, souledgeaa, souledge, souledge, souledge, driver_device, 0, ROT0, "Namco", "Soul Edge (Asia, SO2/VER.A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1995, souledgeja, souledge, souledge, souledge, driver_device, 0, ROT0, "Namco", "Soul Edge (Japan, SO1/VER.A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1995, dunkmnia, 0, dunkmnia, namcos11, driver_device, 0, ROT0, "Namco", "Dunk Mania (Asia, DM2/VER.C)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1995, dunkmniajc, dunkmnia, dunkmnia, namcos11, driver_device, 0, ROT0, "Namco", "Dunk Mania (Japan, DM1/VER.C)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1995, xevi3dg, 0, xevi3dg, namcos11, driver_device, 0, ROT0, "Namco", "Xevious 3D/G (Japan, XV31/VER.A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, primglex, 0, primglex, tekken, driver_device, 0, ROT0, "Namco", "Prime Goal EX (Japan, PG1/VER.A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, danceyes, 0, danceyes, namcos11, driver_device, 0, ROT0, "Namco", "Dancing Eyes (US, DC3/VER.C)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, danceyesj, danceyes, danceyes, namcos11, driver_device, 0, ROT0, "Namco", "Dancing Eyes (Japan, DC1/VER.A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, pocketrc, 0, pocketrc, pocketrc, driver_device, 0, ROT0, "Namco", "Pocket Racer (Japan, PKR1/VER.B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1997, starswep, 0, starswep, namcos11, driver_device, 0, ROT0, "Axela / Namco", "Star Sweep (Japan, STP1/VER.A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, myangel3, 0, myangel3, myangel3, driver_device, 0, ROT0, "MOSS / Namco", "Kosodate Quiz My Angel 3 (Japan, KQT1/VER.A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1999, ptblank2ua, ptblank2, ptblank2ua, ptblank2ua, driver_device, 0, ROT0, "Namco", "Point Blank 2 (US, GNB3/VER.A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
diff --git a/src/mame/drivers/namcos12.c b/src/mame/drivers/namcos12.c
index d89c8a0c31c..3620838e9de 100644
--- a/src/mame/drivers/namcos12.c
+++ b/src/mame/drivers/namcos12.c
@@ -7,6 +7,7 @@
Driver by smf
Board notes by The Guru
H8/3002 and Golgo13 support by R. Belmont based on work by The_Author and DynaChicken
+ JVS Support by R. Belmont
Issues:
not all games work due to either banking, dma or protection issues.
@@ -25,7 +26,7 @@ Namco System 12 - Arcade Playstation-based Hardware
Game & software revision Company/Year CPU board Mother board Daughter board Keycus
------------------------------------------------------------------------------------------------------------------------
Aqua Rush (AQ1/VER.A1) (C) Namco, 1999 COH-700 SYSTEM12 MOTHER(C) SYSTEM12 M5F2 KC053
-Attack Pla-Rail (C) Tomy/Namco, 199?
+Attack Pla-Rail (AP1/VER.A) (C) Tomy/Namco, 1998 COH-700 SYSTEM12 MOTHER(B) SYSTEM12 M5F4 KC032
Derby Quiz My Dream Horse (MDH1/VER.A2) (C) Namco, 1998 COH-700 SYSTEM12 MOTHER(B) SYSTEM12 M10X64 KC035
Ehrgeiz (EG1/VER.A) (C) Square/Namco, 1998 COH-700 SYSTEM12 MOTHER(B) SYSTEM12 M4F6 KC021
Ehrgeiz (EG2/VER.A) (C) Square/Namco, 1998 COH-700 SYSTEM12 MOTHER(B) SYSTEM12 M4F6 KC021
@@ -228,6 +229,7 @@ Notes:
Game Sticker Revision MOTHER PCB
--------------------------------------------------------------------
Aqua Rush AQ1 Ver.A AQ1/VER.A1 MOTHER(C) (ROMs serialised)
+ Attack Pla-Rail AP1 Ver.A none MOTHER(B)
Derby Quiz My Dream Horse MDH1 Ver.A MDH1/VER.A2 MOTHER(B)
Ehrgeiz EG3 Ver.A EG3/VER.A MOTHER(B)
Golgo 13 GLG1 Ver.A GLG1/VER.A MOTHER(C) (ROMs serialised)
@@ -267,6 +269,7 @@ Notes:
Test Mode S/W
Game Sticker Revision MOTHER PCB
--------------------------------------------------------------------
+ Attack Pla-Rail AP1 Ver.A none MOTHER(B)
Ehrgeiz EG2 Ver.A EG2/VER.A MOTHER(B)
Fighting Layer FTL1 Ver.A FTL0/VER.A MOTHER(B)
Ghoul Panic OB2 Ver.A OB2/VER.A MOTHER(B)
@@ -478,6 +481,11 @@ This PCB is used on:
Software
Game Revision PCB KEYCUS ROMs Populated
-------------------------------------------------------------------------------------------------------------------
+Attack Pla-Rail AP1/VER.A SYSTEM 12 M5F4 PCB 8661961200 (8661971200) KC032 AP1 WAVE0, AP1 WAVE1
+ AP1 ROM0, AP1 ROM1, AP1 ROM2
+ AP1 FL4L, AP1 FL4H
+ AP1 FL3L, AP1 FL3H
+
Fighting Layer FTL0/VER.A SYSTEM 12 M5F4 PCB 8661961200 (8661971200) KC037 FTL1 WAVE0, FTL1 WAVE1
FTL1 ROM0, FTL1 ROM1, FTL1 ROM2
FTL1 FL4L, FTL1 FL4H
@@ -949,7 +957,7 @@ Notes:
SLA4060 - Sanken Electric Co. NPN Darlington Transistor Array (SIP12)
J1 - 96 pin connector joining to the mother board (connector below the PCB)
J2 - 96 pin connector joining to the CPU board (connector above the PCB)
- J3 - 10 pin connector joining to the gun via a 24V solenoid driver board (for the gun recoil)
+ J3 - 10 pin connector joining to the gun via a 24V solenoid driver board (for the gun opto/recoil)
S11GUN0 - PLCC84 FPGA (not populated)
S11GUN1 - Altera Max EPM7128STC100-10 EPLD (QFP100, not populated)
S11GUN2 - Altera Max EPM7128STC100-10 EPLD (QFP100, labelled 'S11GUN2)
@@ -958,8 +966,32 @@ Notes:
This PCB was found on the following games (so far)....
Ghoul Panic (OB2/VER.A)
+ Oh! Bakyuuun (OB1/VER.A)
+ Gunbarl (GNB4/VER.A)
Point Blank 2 (GNB5/VER.A)
+To connect a normal (i.e. HAPP) light gun only 4 wires are needed.
+Those are +5V, GND, trigger and gun optical sensor using pins 5 & 9 of J3 and pins 1, 3 & 22 (both solder and parts side)
+of the JAMMA connector. A Namco gun can also be connected the same way, with or without the kickback solenoid.
+
+J3 connector:
+Pin 1 - Not Used
+Pin 2 - Not Used
+Pin 3 - Gun 1 Solenoid
+Pin 4 - Player 1 Start Button Lamp
+Pin 5 - Gun 1 Sensor
+Pin 6 - GND
+Pin 7 - Gun 2 Solenoid
+Pin 8 - Player 2 Start Button Lamp
+Pin 9 - Gun 2 Sensor
+Pin 10- Not Used
+
+JAMMA Harness:
+Pin 1 Parts Side - GND
+Pin 3 Parts Side - +5V
+Pin 22 Parts Side - Gun 1 Trigger
+Pin 22 Solder Side - Gun 2 Trigger
+
CDXA PCB
--------
@@ -1037,11 +1069,20 @@ Notes:
JP1 - Jumper to configure the H8/3334 for internal or external ROM usage. Set to 2-3 (EXT)
J1/2/3/8 - Multi-pin connectors joining to controls and main PCB
J9 - Power input connector
+
+I/O board (for Attack Pla-Rail)
+-------------------------------
+Attack Pla-Rail requires an I/O board to boot. Several I/O boards are accepted including TSS-I/O, FCA, ASCA3, ASCA5
+and also the common JVS I/O boards manufactured by Sega.
+The game uses 3 buttons and a 5k potentiometer for the lever. The button signals come from the I/O board.
+The lever must be wired to analog port 0 (pin B22 parts side) of the Namco 48-way edge connector.
+
*/
#include "emu.h"
#include "cpu/psx/psx.h"
#include "cpu/h8/h83002.h"
+#include "cpu/h8/h83337.h"
#include "video/psx.h"
#include "machine/at28c16.h"
#include "sound/c352.h"
@@ -1082,6 +1123,14 @@ public:
UINT8 m_sub_porta;
UINT8 m_sub_portb;
+ UINT8 m_jvssense;
+ UINT8 m_tssio_port_4;
+
+ DECLARE_READ16_MEMBER(s12_mcu_p6_r);
+ DECLARE_READ16_MEMBER(iob_p4_r);
+ DECLARE_READ16_MEMBER(iob_p6_r);
+ DECLARE_WRITE16_MEMBER(iob_p4_w);
+
DECLARE_WRITE16_MEMBER(sharedram_w);
DECLARE_READ16_MEMBER(sharedram_r);
DECLARE_WRITE16_MEMBER(bankoffset_w);
@@ -1094,6 +1143,7 @@ public:
DECLARE_READ16_MEMBER(tektagt_protection_2_r);
DECLARE_READ16_MEMBER(tektagt_protection_3_r);
DECLARE_READ16_MEMBER(s12_mcu_p8_r);
+ DECLARE_READ16_MEMBER(s12_mcu_jvs_p8_r);
DECLARE_READ16_MEMBER(s12_mcu_pa_r);
DECLARE_WRITE16_MEMBER(s12_mcu_pa_w);
DECLARE_READ16_MEMBER(s12_mcu_rtc_r);
@@ -1112,6 +1162,7 @@ protected:
virtual void machine_reset();
};
+
inline void ATTR_PRINTF(3,4) namcos12_state::verboselog( int n_level, const char *s_fmt, ... )
{
if( VERBOSE_LEVEL >= n_level )
@@ -1417,6 +1468,9 @@ void namcos12_state::machine_reset()
address_space &space = m_maincpu->space(AS_PROGRAM);
bankoffset_w(space,0,0,0xffff);
+ m_jvssense = 1;
+ m_tssio_port_4 = 0;
+
m_has_tektagt_dma = 0;
if( strcmp( machine().system().name, "tektagt" ) == 0 ||
@@ -1441,6 +1495,8 @@ void namcos12_state::machine_reset()
strcmp( machine().system().name, "sws2000" ) == 0 ||
strcmp( machine().system().name, "sws2001" ) == 0 ||
strcmp( machine().system().name, "truckk" ) == 0 ||
+ strcmp( machine().system().name, "technodr" ) == 0 ||
+ strcmp( machine().system().name, "aplarail" ) == 0 ||
strcmp( machine().system().name, "kartduel" ) == 0 ||
strcmp( machine().system().name, "ohbakyuun" ) == 0 ||
strcmp( machine().system().name, "ghlpanic" ) == 0 )
@@ -1464,6 +1520,17 @@ static ADDRESS_MAP_START( s12h8rwmap, AS_PROGRAM, 16, namcos12_state )
AM_RANGE(0x300030, 0x300031) AM_NOP // most S12 bioses write here simply to generate a wait state. there is no deeper meaning.
ADDRESS_MAP_END
+// map for JVS games w/o controls connected directly
+static ADDRESS_MAP_START( s12h8rwjvsmap, AS_PROGRAM, 16, namcos12_state )
+ AM_RANGE(0x000000, 0x07ffff) AM_ROM
+ AM_RANGE(0x080000, 0x08ffff) AM_RAM AM_SHARE("sharedram")
+ AM_RANGE(0x280000, 0x287fff) AM_DEVREADWRITE("c352", c352_device, read, write)
+ AM_RANGE(0x300000, 0x300001) AM_READ_PORT("DIN0")
+ AM_RANGE(0x300002, 0x300003) AM_READ_PORT("DIN1")
+ AM_RANGE(0x300010, 0x300011) AM_NOP
+ AM_RANGE(0x300030, 0x300031) AM_NOP // most S12 bioses write here simply to generate a wait state. there is no deeper meaning.
+ADDRESS_MAP_END
+
READ16_MEMBER(namcos12_state::s12_mcu_p8_r)
{
return 0x02;
@@ -1480,7 +1547,6 @@ READ16_MEMBER(namcos12_state::s12_mcu_pa_r)
WRITE16_MEMBER(namcos12_state::s12_mcu_pa_w)
{
- logerror("pa_w %02x\n", data);
m_sub_porta = data;
m_rtc->ce_w((m_sub_portb & 0x20) && (m_sub_porta & 1));
m_settings->ce_w((m_sub_portb & 0x20) && !(m_sub_porta & 1));
@@ -1498,7 +1564,19 @@ WRITE16_MEMBER(namcos12_state::s12_mcu_portB_w)
m_settings->ce_w((m_sub_portb & 0x20) && !(m_sub_porta & 1));
}
+READ16_MEMBER(namcos12_state::s12_mcu_p6_r)
+{
+ // bit 1 = JVS cable present sense (1 = I/O board plugged in)
+ return (m_jvssense << 1) | 0xfd;
+}
+
+READ16_MEMBER(namcos12_state::s12_mcu_jvs_p8_r)
+{
+ return 0x12; // bit 4 = JVS enable. aplarail requires it to be on, soulclbr & others will require JVS I/O if it's on
+}
+
static ADDRESS_MAP_START( s12h8iomap, AS_IO, 16, namcos12_state )
+ AM_RANGE(h8_device::PORT_6, h8_device::PORT_6) AM_READ(s12_mcu_p6_r)
AM_RANGE(h8_device::PORT_7, h8_device::PORT_7) AM_READ_PORT("DSW")
AM_RANGE(h8_device::PORT_8, h8_device::PORT_8) AM_READ(s12_mcu_p8_r) AM_WRITENOP
AM_RANGE(h8_device::PORT_A, h8_device::PORT_A) AM_READWRITE(s12_mcu_pa_r, s12_mcu_pa_w)
@@ -1509,6 +1587,29 @@ static ADDRESS_MAP_START( s12h8iomap, AS_IO, 16, namcos12_state )
AM_RANGE(h8_device::ADC_3, h8_device::ADC_3) AM_NOP
ADDRESS_MAP_END
+static ADDRESS_MAP_START( s12h8jvsiomap, AS_IO, 16, namcos12_state )
+ AM_RANGE(h8_device::PORT_6, h8_device::PORT_6) AM_READ(s12_mcu_p6_r)
+ AM_RANGE(h8_device::PORT_7, h8_device::PORT_7) AM_READ_PORT("DSW")
+ AM_RANGE(h8_device::PORT_8, h8_device::PORT_8) AM_READ(s12_mcu_jvs_p8_r) AM_WRITENOP
+ AM_RANGE(h8_device::PORT_A, h8_device::PORT_A) AM_READWRITE(s12_mcu_pa_r, s12_mcu_pa_w)
+ AM_RANGE(h8_device::PORT_B, h8_device::PORT_B) AM_READWRITE(s12_mcu_portB_r, s12_mcu_portB_w)
+ AM_RANGE(h8_device::ADC_0, h8_device::ADC_0) AM_NOP
+ AM_RANGE(h8_device::ADC_1, h8_device::ADC_1) AM_NOP
+ AM_RANGE(h8_device::ADC_2, h8_device::ADC_2) AM_NOP
+ AM_RANGE(h8_device::ADC_3, h8_device::ADC_3) AM_NOP
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( s12h8railiomap, AS_IO, 16, namcos12_state )
+ AM_RANGE(h8_device::PORT_6, h8_device::PORT_6) AM_READ(s12_mcu_p6_r)
+ AM_RANGE(h8_device::PORT_7, h8_device::PORT_7) AM_READ_PORT("DSW")
+ AM_RANGE(h8_device::PORT_8, h8_device::PORT_8) AM_READ(s12_mcu_jvs_p8_r) AM_WRITENOP
+ AM_RANGE(h8_device::PORT_A, h8_device::PORT_A) AM_READWRITE(s12_mcu_pa_r, s12_mcu_pa_w)
+ AM_RANGE(h8_device::PORT_B, h8_device::PORT_B) AM_READWRITE(s12_mcu_portB_r, s12_mcu_portB_w)
+ AM_RANGE(h8_device::ADC_0, h8_device::ADC_0) AM_READ_PORT("LEVER")
+ AM_RANGE(h8_device::ADC_1, h8_device::ADC_1) AM_NOP
+ AM_RANGE(h8_device::ADC_2, h8_device::ADC_2) AM_NOP
+ AM_RANGE(h8_device::ADC_3, h8_device::ADC_3) AM_NOP
+ADDRESS_MAP_END
// Golgo 13 lightgun inputs
@@ -1591,7 +1692,7 @@ static MACHINE_CONFIG_START( coh700, namcos12_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
- MCFG_C352_ADD("c352", 29168000, C352_DIVIDER_332)
+ MCFG_C352_ADD("c352", 29168000, 332)
MCFG_SOUND_ROUTE(0, "rspeaker", 1.00)
MCFG_SOUND_ROUTE(1, "lspeaker", 1.00)
MCFG_SOUND_ROUTE(2, "rspeaker", 1.00)
@@ -1619,6 +1720,128 @@ static MACHINE_CONFIG_DERIVED( golgo13, coh700 )
MCFG_CPU_IO_MAP(golgo13_h8iomap)
MACHINE_CONFIG_END
+#define JVSCLOCK (XTAL_14_7456MHz)
+static ADDRESS_MAP_START( jvsmap, AS_PROGRAM, 16, namcos12_state )
+ AM_RANGE(0x0000, 0x1fff) AM_ROM AM_REGION("iocpu", 0)
+ AM_RANGE(0xc000, 0xffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( jvsiomap, AS_IO, 16, namcos12_state )
+ADDRESS_MAP_END
+
+
+static MACHINE_CONFIG_DERIVED( truckk, coh700 )
+ // Timer at 115200*16 for the jvs serial clock
+ MCFG_DEVICE_MODIFY(":sub:sci0")
+ MCFG_H8_SCI_SET_EXTERNAL_CLOCK_PERIOD(attotime::from_hz(JVSCLOCK/8))
+
+ MCFG_CPU_ADD("iocpu", H83334, JVSCLOCK )
+ MCFG_CPU_PROGRAM_MAP( jvsmap )
+ MCFG_CPU_IO_MAP( jvsiomap )
+
+ MCFG_DEVICE_MODIFY("iocpu:sci0")
+ MCFG_H8_SCI_TX_CALLBACK(DEVWRITELINE(":sub:sci0", h8_sci_device, rx_w))
+ MCFG_DEVICE_MODIFY("sub:sci0")
+ MCFG_H8_SCI_TX_CALLBACK(DEVWRITELINE(":iocpu:sci0", h8_sci_device, rx_w))
+
+ MCFG_QUANTUM_TIME(attotime::from_hz(2*115200))
+MACHINE_CONFIG_END
+
+READ16_MEMBER(namcos12_state::iob_p4_r)
+{
+ return m_tssio_port_4;
+}
+
+WRITE16_MEMBER(namcos12_state::iob_p4_w)
+{
+ m_tssio_port_4 = data;
+
+ // bit 2 = SENSE line back to main (0 = asserted, 1 = dropped)
+ m_jvssense = (data & 0x04) ? 0 : 1;
+}
+
+READ16_MEMBER(namcos12_state::iob_p6_r)
+{
+ // d4 is service button
+ UINT8 sb = (ioport("SERVICE")->read() & 1) << 4;
+ // other bits: unknown
+
+ return sb | 0;
+}
+
+static ADDRESS_MAP_START( tdjvsmap, AS_PROGRAM, 16, namcos12_state )
+ AM_RANGE(0x0000, 0x3fff) AM_ROM AM_REGION("iocpu", 0)
+ AM_RANGE(0x6000, 0x6001) AM_READ_PORT("IN01")
+ AM_RANGE(0x6002, 0x6003) AM_READ_PORT("IN23")
+ AM_RANGE(0xc000, 0xffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( tdjvsiomap, AS_IO, 16, namcos12_state )
+ AM_RANGE(h8_device::PORT_4, h8_device::PORT_4) AM_READWRITE(iob_p4_r, iob_p4_w)
+ AM_RANGE(h8_device::PORT_6, h8_device::PORT_6) AM_READ(iob_p6_r)
+ AM_RANGE(h8_device::ADC_0, h8_device::ADC_0) AM_READ_PORT("STEER")
+ AM_RANGE(h8_device::ADC_1, h8_device::ADC_1) AM_READ_PORT("BRAKE")
+ AM_RANGE(h8_device::ADC_2, h8_device::ADC_2) AM_READ_PORT("GAS")
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( plarailjvsmap, AS_PROGRAM, 16, namcos12_state )
+ AM_RANGE(0x0000, 0x3fff) AM_ROM AM_REGION("iocpu", 0)
+ AM_RANGE(0x6000, 0x6001) AM_READ_PORT("IN01")
+ AM_RANGE(0x6002, 0x6003) AM_READ_PORT("IN23")
+ AM_RANGE(0xc000, 0xffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( plarailjvsiomap, AS_IO, 16, namcos12_state )
+ AM_RANGE(h8_device::PORT_4, h8_device::PORT_4) AM_READWRITE(iob_p4_r, iob_p4_w)
+ AM_RANGE(h8_device::PORT_6, h8_device::PORT_6) AM_READ_PORT("SERVICE")
+ AM_RANGE(h8_device::ADC_0, h8_device::ADC_0) AM_NOP
+ AM_RANGE(h8_device::ADC_1, h8_device::ADC_1) AM_NOP
+ AM_RANGE(h8_device::ADC_2, h8_device::ADC_2) AM_NOP
+ADDRESS_MAP_END
+
+static MACHINE_CONFIG_DERIVED( technodr, coh700 )
+ // Timer at 115200*16 for the jvs serial clock
+ MCFG_DEVICE_MODIFY(":sub:sci0")
+ MCFG_H8_SCI_SET_EXTERNAL_CLOCK_PERIOD(attotime::from_hz(JVSCLOCK/8))
+
+ // modify H8/3002 map to omit direct-connected controls
+ MCFG_CPU_MODIFY("sub")
+ MCFG_CPU_PROGRAM_MAP(s12h8rwjvsmap)
+ MCFG_CPU_IO_MAP(s12h8jvsiomap)
+
+ MCFG_CPU_ADD("iocpu", H83334, JVSCLOCK )
+ MCFG_CPU_PROGRAM_MAP( tdjvsmap )
+ MCFG_CPU_IO_MAP( tdjvsiomap )
+
+ MCFG_DEVICE_MODIFY("iocpu:sci0")
+ MCFG_H8_SCI_TX_CALLBACK(DEVWRITELINE(":sub:sci0", h8_sci_device, rx_w))
+ MCFG_DEVICE_MODIFY("sub:sci0")
+ MCFG_H8_SCI_TX_CALLBACK(DEVWRITELINE(":iocpu:sci0", h8_sci_device, rx_w))
+
+ MCFG_QUANTUM_TIME(attotime::from_hz(2*115200))
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( aplarail, coh700 )
+ // Timer at 115200*16 for the jvs serial clock
+ MCFG_DEVICE_MODIFY(":sub:sci0")
+ MCFG_H8_SCI_SET_EXTERNAL_CLOCK_PERIOD(attotime::from_hz(JVSCLOCK/8))
+
+ // modify H8/3002 map to omit direct-connected controls
+ MCFG_CPU_MODIFY("sub")
+ MCFG_CPU_PROGRAM_MAP(s12h8rwjvsmap)
+ MCFG_CPU_IO_MAP(s12h8railiomap)
+
+ MCFG_CPU_ADD("iocpu", H83334, JVSCLOCK )
+ MCFG_CPU_PROGRAM_MAP( plarailjvsmap )
+ MCFG_CPU_IO_MAP( plarailjvsiomap )
+
+ MCFG_DEVICE_MODIFY("iocpu:sci0")
+ MCFG_H8_SCI_TX_CALLBACK(DEVWRITELINE(":sub:sci0", h8_sci_device, rx_w))
+ MCFG_DEVICE_MODIFY("sub:sci0")
+ MCFG_H8_SCI_TX_CALLBACK(DEVWRITELINE(":iocpu:sci0", h8_sci_device, rx_w))
+
+ MCFG_QUANTUM_TIME(attotime::from_hz(2*115200))
+MACHINE_CONFIG_END
static INPUT_PORTS_START( namcos12 )
PORT_START("DSW")
@@ -1745,6 +1968,78 @@ static INPUT_PORTS_START( golgo13 )
PORT_BIT( 0xffff, 0x00fe, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, -1.0, 0.0, 0) PORT_MINMAX(0x1f,0x1de) PORT_SENSITIVITY(100) PORT_KEYDELTA(15) PORT_PLAYER(1) PORT_REVERSE
INPUT_PORTS_END
+static INPUT_PORTS_START( technodr )
+ PORT_START("DSW")
+ PORT_DIPNAME( 0x0080, 0x0080, DEF_STR(Service_Mode) ) PORT_DIPLOCATION( "DIP SW2:1" )
+ PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x0040, 0x0040, "Freeze" ) PORT_DIPLOCATION( "DIP SW2:2" )
+ PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_BIT( 0xff3f, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("IN01")
+ PORT_SERVICE( 0x100, IP_ACTIVE_LOW ) // service switch
+ PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON1 ) // select switch
+ PORT_BIT( 0x7eff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("IN23")
+ PORT_BIT(0x0800, IP_ACTIVE_LOW, IPT_COIN1 ) // coin switch
+ PORT_BIT(0xf7ff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("DIN0")
+ PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN)
+
+ PORT_START("DIN1")
+ PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN)
+
+ PORT_START("SERVICE")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE1 ) // service coin
+
+ PORT_START("GAS")
+ PORT_BIT( 0x3ff, 0x0200, IPT_PEDAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_NAME("Gas Pedal")
+
+ PORT_START("BRAKE")
+ PORT_BIT( 0x3ff, 0x0200, IPT_PEDAL2 ) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_NAME("Brake Pedal")
+
+ PORT_START("STEER")
+ PORT_BIT( 0x3ff, 0x0200, IPT_PADDLE ) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_NAME("Steering Wheel")
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( aplarail )
+ PORT_START("DSW")
+ PORT_DIPNAME( 0x0080, 0x0080, DEF_STR(Service_Mode) ) PORT_DIPLOCATION( "DIP SW2:1" )
+ PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_DIPNAME( 0x0040, 0x0040, "Freeze" ) PORT_DIPLOCATION( "DIP SW2:2" )
+ PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
+ PORT_BIT( 0xff3f, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("IN01")
+ PORT_BIT( 0x00000800, IP_ACTIVE_LOW, IPT_BUTTON1 ) // left
+ PORT_BIT( 0x00001000, IP_ACTIVE_LOW, IPT_START1 ) // OK / Start
+ PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_BUTTON2 ) // right
+ PORT_BIT( 0xc7ff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("IN23")
+ PORT_BIT( 0xf7ff, IP_ACTIVE_LOW, IPT_UNKNOWN)
+ PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_COIN1 ) // coin
+
+ PORT_START("DIN0")
+ PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN)
+
+ PORT_START("DIN1")
+ PORT_SERVICE_NO_TOGGLE( 0x4000, IP_ACTIVE_LOW )
+ PORT_BIT(0xbfff, IP_ACTIVE_LOW, IPT_UNKNOWN)
+
+ PORT_START("LEVER")
+ PORT_BIT( 0x07ff, 0x03ff, IPT_AD_STICK_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_NAME("Speed Lever") PORT_REVERSE
+
+ PORT_START("SERVICE")
+ PORT_BIT(0xff, IP_ACTIVE_LOW, IPT_UNKNOWN)
+INPUT_PORTS_END
+
ROM_START( aquarush )
ROM_REGION32_LE( 0x00400000, "maincpu:rom", 0 ) /* main prg */
ROM_LOAD16_BYTE( "aq1vera.2l", 0x0000000, 0x200000, CRC(91eb9258) SHA1(30e225eb551bfe1bed6b342dd6d597345d64b677) )
@@ -2798,60 +3093,113 @@ ROM_START( truckk )
ROM_REGION( 0x1000000, "c352", 0 ) /* samples */
ROM_LOAD( "tkk1wave0.ic1", 0x000000, 0x800000, CRC(037d3095) SHA1(cc343bdd45d023c133964321e2df5cb1c91525ef) )
- ROM_REGION( 0x20000, "ioboard", 0) /* Truck K. I/O board */
+ ROM_REGION( 0x20000, "iocpu", 0) /* Truck K. I/O board */
ROM_LOAD( "tkk1prg0.ic7", 0x000000, 0x020000, CRC(11fd9c31) SHA1(068b8364ec0eb1e88f9f85f40b8b322876f6f3e2) )
DISK_REGION( "cdrom" )
DISK_IMAGE( "tkk2-a", 0, SHA1(6b7c3686b22a508c44f67295b188504b757dd482) )
ROM_END
-GAME( 1996, tekken3, 0, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Tekken 3 (Japan, TET1/VER.E1)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) /* KC006 */
-GAME( 1996, tekken3ae, tekken3, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Tekken 3 (Asia, TET2/VER.E1)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) /* KC006 */
-GAME( 1996, tekken3ud, tekken3, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Tekken 3 (US, TET3/VER.D)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) /* KC006 */
-GAME( 1996, tekken3ab, tekken3, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Tekken 3 (Asia, TET2/VER.B)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) /* KC006 */
-GAME( 1996, tekken3ua, tekken3, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Tekken 3 (US, TET3/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) /* KC006 */
-GAME( 1996, tekken3aa, tekken3, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Tekken 3 (Asia, TET2/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) /* KC006 */
-GAME( 1996, tekken3ja, tekken3, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Tekken 3 (Japan, TET1/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) /* KC014 */
-GAME( 1997, lbgrande, 0, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Libero Grande (Asia, LG2/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) /* KC014 */
-GAME( 1997, lbgrandeja,lbgrande, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Libero Grande (Japan, LG1/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* KC014 */
-GAME( 1997, toukon3, 0, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco / Tomy", "Shin Nihon Pro Wrestling Toukon Retsuden 3 Arcade Edition (Japan, TR1/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) /* KC019 */
-GAME( 1998, soulclbr, 0, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Soul Calibur (World, SOC14/VER.C)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, soulclbruc,soulclbr, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Soul Calibur (US, SOC13/VER.C)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, soulclbrjc,soulclbr, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Soul Calibur (Japan, SOC11/VER.C)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) /* KC020 */
-GAME( 1998, soulclbrwb,soulclbr, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Soul Calibur (World, SOC14/VER.B)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, soulclbrub,soulclbr, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Soul Calibur (US, SOC13/VER.B)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) /* KC020 */
-GAME( 1998, soulclbrjb,soulclbr, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Soul Calibur (Japan, SOC11/VER.B)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) /* KC020 */
-GAME( 1998, soulclbrja,soulclbr, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Soul Calibur (Japan, SOC11/VER.A2)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) /* KC020 */
-GAME( 1998, ehrgeiz, 0, coh700, namcos12, namcos12_state, namcos12, ROT0, "Square / Namco", "Ehrgeiz (US, EG3/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) /* KC021 */
-GAME( 1998, ehrgeizaa, ehrgeiz, coh700, namcos12, namcos12_state, namcos12, ROT0, "Square / Namco", "Ehrgeiz (Asia, EG2/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) /* KC021 */
-GAME( 1998, ehrgeizja, ehrgeiz, coh700, namcos12, namcos12_state, namcos12, ROT0, "Square / Namco", "Ehrgeiz (Japan, EG1/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) /* KC021 */
-GAME( 1998, mdhorse, 0, coh700, namcos12, namcos12_state, namcos12, ROT0, "MOSS / Namco", "Derby Quiz My Dream Horse (Japan, MDH1/VER.A2)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* KC035 */
-GAME( 1998, sws98, 0, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Super World Stadium '98 (Japan, SS81/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) /* KC0?? */
-GAME( 1998, tenkomor, 0, coh700, namcos12, namcos12_state, namcos12, ROT90,"Namco", "Tenkomori Shooting (Asia, TKM2/VER.A1)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) /* KC036 */
-GAME( 1998, tenkomorja,tenkomor, coh700, namcos12, namcos12_state, namcos12, ROT90,"Namco", "Tenkomori Shooting (Japan, TKM1/VER.A1)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) /* KC036 */
-GAME( 1998, fgtlayer, 0, coh700, namcos12, namcos12_state, namcos12, ROT0, "Arika / Namco", "Fighting Layer (Japan, FTL1/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) /* KC037 */
-GAME( 1999, pacapp, 0, coh700, namcos12, namcos12_state, namcos12, ROT0, "Produce / Namco", "Paca Paca Passion (Japan, PPP1/VER.A2)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) /* KC038 */
-GAME( 1999, ptblank2, 0, ptblank2, ptblank2, namcos12_state, ptblank2, ROT0, "Namco", "Point Blank 2 (GNB5/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) /* KC042 */
-GAME( 1999, gunbarl, ptblank2, ptblank2, ptblank2, namcos12_state, ptblank2, ROT0, "Namco", "Gunbarl (Japan, GNB4/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) /* KC042 */
-GAME( 1999, sws99, 0, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Super World Stadium '99 (Japan, SS91/VER.A3)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) /* KC043 */
-GAME( 1999, tektagt, 0, tektagt, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Tekken Tag Tournament (US, TEG3/VER.C1)", GAME_IMPERFECT_SOUND ) /* KC044 */
-GAME( 1999, tektagtac, tektagt, tektagt, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Tekken Tag Tournament (Asia, TEG2/VER.C1, set 1)", GAME_IMPERFECT_SOUND ) /* KC044 */
-GAME( 1999, tektagtac1,tektagt, tektagt, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Tekken Tag Tournament (Asia, TEG2/VER.C1, set 2)", GAME_IMPERFECT_SOUND ) /* KC044 */
-GAME( 1999, tektagtub, tektagt, tektagt, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Tekken Tag Tournament (US, TEG3/VER.B)", GAME_IMPERFECT_SOUND ) /* KC044 */
-GAME( 1999, tektagtjc1,tektagt, tektagt, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Tekken Tag Tournament (Japan, TEG1/VER.C1)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* KC044 */
-GAME( 1999, tektagtjb, tektagt, tektagt, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Tekken Tag Tournament (Japan, TEG1/VER.B)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* KC044 */
-GAME( 1999, tektagtja, tektagt, tektagt, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Tekken Tag Tournament (Japan, TEG1/VER.A3)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* KC044 */
-GAME( 1999, ghlpanic, 0, ptblank2, ghlpanic, namcos12_state, namcos12, ROT0, "Eighting / Raizing / Namco", "Ghoul Panic (Asia, OB2/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) /* KC045 */
-GAME( 1999, ohbakyuun, ghlpanic, ptblank2, ghlpanic, namcos12_state, namcos12, ROT0, "Eighting / Raizing / Namco", "Oh! Bakyuuun (Japan, OB1/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) /* KC045 */
-GAME( 1999, pacapp2, 0, coh700, namcos12, namcos12_state, namcos12, ROT0, "Produce / Namco", "Paca Paca Passion 2 (Japan, PKS1/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) /* KC046 */
-GAME( 1999, mrdrillr, 0, coh700, namcos124w,namcos12_state,namcos12, ROT0, "Namco", "Mr. Driller (US, DRI3/VER.A2)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) /* KC048 */
-GAME( 1999, mrdrillrj, mrdrillr, coh700, namcos124w,namcos12_state,namcos12, ROT0, "Namco", "Mr. Driller (Japan, DRI1/VER.A2)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) /* KC048 */
-GAME( 1999, kaiunqz, 0, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Kaiun Quiz (Japan, KW1/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* KC050 */
-GAME( 1999, pacappsp, 0, coh700, namcos12, namcos12_state, namcos12, ROT0, "Produce / Namco", "Paca Paca Passion Special (Japan, PSP1/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) /* KC052 */
-GAME( 1999, aquarush, 0, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Aqua Rush (Japan, AQ1/VER.A1)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) /* KC053 */
-GAME( 1999, golgo13, 0, golgo13, golgo13, namcos12_state, namcos12, ROT0, "Eighting / Raizing / Namco", "Golgo 13 (Japan, GLG1/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) /* KC054 */
-GAME( 1999, g13knd, 0, golgo13, golgo13, namcos12_state, namcos12, ROT0, "Eighting / Raizing / Namco", "Golgo 13 Kiseki no Dandou (Japan, GLS1/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) /* KC059 */
-GAME( 2000, sws2000, 0, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Super World Stadium 2000 (Japan, SS01/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* KC055 */
-GAME( 2000, truckk, 0, coh700, namcos12, namcos12_state, namcos12, ROT0, "Metro / Namco", "Truck Kyosokyoku (Japan, TKK2/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* KC056 */
-GAME( 2000, kartduel, 0, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Kart Duel (Japan, KTD1/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* KC057 */
-GAME( 2001, sws2001, sws2000, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Super World Stadium 2001 (Japan, SS11/VER.A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) /* KC061 */
+ROM_START( technodr )
+ ROM_REGION32_LE( 0x00400000, "maincpu:rom", 0 ) /* main prg */
+ ROM_LOAD16_BYTE( "th1verb.2l", 0x000000, 0x200000, CRC(736fae08) SHA1(099e648784f617cc3b5a57a5838b8fbb54cacca1) )
+ ROM_LOAD16_BYTE( "th1verb.2p", 0x000001, 0x200000, CRC(1fafb2d2) SHA1(ea0617714dcd7636e21a10fa2665a6f9c0f0a93b) )
+
+ ROM_REGION32_LE( 0x3400000, "user2", 0 ) /* main data */
+ ROM_LOAD16_BYTE( "th1rom0l.6", 0x0000000, 0x400000, CRC(f8274106) SHA1(5c0b60c7440cfa01572b10ed564446d7f1a81a3a) )
+ ROM_LOAD16_BYTE( "th1rom0u.9", 0x0000001, 0x400000, CRC(260ae0c5) SHA1(2ecb82e069fa64b9d3f63d6193befae02f3140e4) )
+ ROM_LOAD16_BYTE( "th1rom1l.7", 0x0800000, 0x400000, CRC(56d9b477) SHA1(101b5acfbe5d292418f7fd8db642187f2b571d0b) )
+ ROM_LOAD16_BYTE( "th1rom1u.10", 0x0800001, 0x400000, CRC(a45d337e) SHA1(10e230b61ab4c6aa386c68463badef0c4ba58f0e) )
+ ROM_LOAD16_BYTE( "th1fl3l.12", 0x1000000, 0x200000, CRC(cd4422c0) SHA1(97a9788cf0c589477f77c5403cc715ce4980a7bd) )
+ ROM_LOAD16_BYTE( "th1fl3u.13", 0x1000001, 0x200000, CRC(c330116f) SHA1(b12de5a82d6ebb5f893882b578e02af732231512) )
+
+ ROM_REGION( 0x0080000, "sub", 0 ) /* sound prg */
+ ROM_LOAD16_WORD_SWAP( "th1verb.11s", 0x000000, 0x080000, CRC(85806e2e) SHA1(9e0a7e6924b72e7b5b1d0e72eeec10045984dd4b) )
+
+ ROM_REGION( 0x1000000, "c352", 0 ) /* samples */
+ ROM_LOAD( "th1wave0.5", 0x000000, 0x400000, CRC(6cdd06fb) SHA1(31bd0b359e3b93bd40c3416a4805d0523e7f54c3) )
+ ROM_LOAD( "th1wave1.4", 0x400000, 0x400000, CRC(40fd413b) SHA1(b7edf89b5fa196a0787646c73b9aa07fc062fc8b) )
+
+ ROM_REGION( 0x40000, "iocpu", 0) /* Truck K. I/O board */
+ ROM_LOAD( "th1io-a.4f", 0x000000, 0x040000, CRC(1cbbce27) SHA1(71d61d9218543e1b0b2a6c550a8ff2b7c6267257) )
+ROM_END
+
+ROM_START( aplarail )
+ ROM_REGION32_LE( 0x00400000, "maincpu:rom", 0 ) /* main prg */
+ ROM_LOAD16_BYTE( "ap1vera.2e", 0x000000, 0x200000, CRC(386ffe26) SHA1(27b4bb0f0b178b4236e18d7ef9d810d1afc99798) )
+ ROM_LOAD16_BYTE( "ap1vera.2j", 0x000001, 0x200000, CRC(cab954e1) SHA1(3d3b8cfbb8160bb0c421af88137b9de7f8ea22bf) )
+
+ ROM_REGION32_LE( 0x3400000, "user2", 0 ) /* main data */
+ ROM_LOAD( "ap1rom0.ic9", 0x0000000, 0x800000, CRC(c8042aad) SHA1(48d4205535fd20ffc99a0caab6c5f9c66b7f64ed) )
+ ROM_LOAD( "ap1rom1.ic10", 0x0800000, 0x800000, CRC(0f3210ec) SHA1(d3e0782f01e952a27d4fbe2470159e92ba57a57a) )
+ ROM_LOAD( "ap1rom2.ic11", 0x1000000, 0x800000, CRC(9ef8382d) SHA1(bb1e56a4911bfc9c4f763f35885da74a1c1e96c5) )
+ ROM_LOAD16_BYTE( "ap1fl3l.ic7", 0x1800000, 0x200000, CRC(b52c2df6) SHA1(9d07b546395486e7cae86d24c8a352d9e48d00d4) )
+ ROM_LOAD16_BYTE( "ap1fl3h.ic8", 0x1800001, 0x200000, CRC(050af45d) SHA1(4cd93222b9a2fbfad5c93b60cdb7ccd4d58678d5) )
+ ROM_LOAD16_BYTE( "ap1fl4l.ic5", 0x1c00000, 0x200000, CRC(9a4109e5) SHA1(ba59caac5f5a80fc52c507d8a47f322a380aa9a1) )
+ ROM_LOAD16_BYTE( "ap1fl4h.ic6", 0x1c00001, 0x200000, CRC(9a4109e5) SHA1(ba59caac5f5a80fc52c507d8a47f322a380aa9a1) )
+
+ ROM_REGION( 0x0080000, "sub", 0 ) /* sound prg */
+ ROM_LOAD16_WORD_SWAP( "ap1vera.11s", 0x000000, 0x080000, CRC(126aaebc) SHA1(3f5a709c38ca38753d7a93d81e59a7ed48515b92) )
+
+ ROM_REGION( 0x1000000, "c352", 0 ) /* samples */
+ ROM_LOAD( "ap1wave0.ic2", 0x000000, 0x800000, CRC(003abebb) SHA1(edd70a0cc2f8648d3cbd3457ee36aa3772f97d2e) )
+
+ ROM_REGION( 0x40000, "iocpu", 0) /* Truck K. I/O board */
+ ROM_LOAD( "asca1_io-a.ic2", 0x000000, 0x040000, CRC(77cdf69a) SHA1(497af1059f85c07bea2dd0d303481623f6019dcf) )
+
+ ROM_REGION( 0x800, "at28c16", 0) /* pre-calibrated NVRAM */
+ ROM_LOAD( "at28c16", 0x000000, 0x000800, CRC(db1b63c5) SHA1(01fc3386a2d1cb1bed1b7fd9bd2fd59e503832d3) )
+ROM_END
+
+GAME( 1996, tekken3, 0, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Tekken 3 (Japan, TET1/VER.E1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* KC006 */
+GAME( 1996, tekken3ae, tekken3, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Tekken 3 (Asia, TET2/VER.E1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* KC006 */
+GAME( 1996, tekken3ud, tekken3, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Tekken 3 (US, TET3/VER.D)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* KC006 */
+GAME( 1996, tekken3ab, tekken3, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Tekken 3 (Asia, TET2/VER.B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* KC006 */
+GAME( 1996, tekken3ua, tekken3, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Tekken 3 (US, TET3/VER.A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* KC006 */
+GAME( 1996, tekken3aa, tekken3, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Tekken 3 (Asia, TET2/VER.A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* KC006 */
+GAME( 1996, tekken3ja, tekken3, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Tekken 3 (Japan, TET1/VER.A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* KC014 */
+GAME( 1997, lbgrande, 0, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Libero Grande (Asia, LG2/VER.A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* KC014 */
+GAME( 1997, lbgrandeja,lbgrande, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Libero Grande (Japan, LG1/VER.A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* KC014 */
+GAME( 1997, toukon3, 0, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco / Tomy", "Shin Nihon Pro Wrestling Toukon Retsuden 3 Arcade Edition (Japan, TR1/VER.A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* KC019 */
+GAME( 1998, soulclbr, 0, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Soul Calibur (World, SOC14/VER.C)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, soulclbruc,soulclbr, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Soul Calibur (US, SOC13/VER.C)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, soulclbrjc,soulclbr, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Soul Calibur (Japan, SOC11/VER.C)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* KC020 */
+GAME( 1998, soulclbrwb,soulclbr, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Soul Calibur (World, SOC14/VER.B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, soulclbrub,soulclbr, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Soul Calibur (US, SOC13/VER.B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* KC020 */
+GAME( 1998, soulclbrjb,soulclbr, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Soul Calibur (Japan, SOC11/VER.B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* KC020 */
+GAME( 1998, soulclbrja,soulclbr, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Soul Calibur (Japan, SOC11/VER.A2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* KC020 */
+GAME( 1998, ehrgeiz, 0, coh700, namcos12, namcos12_state, namcos12, ROT0, "Square / Namco", "Ehrgeiz (US, EG3/VER.A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* KC021 */
+GAME( 1998, ehrgeizaa, ehrgeiz, coh700, namcos12, namcos12_state, namcos12, ROT0, "Square / Namco", "Ehrgeiz (Asia, EG2/VER.A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* KC021 */
+GAME( 1998, ehrgeizja, ehrgeiz, coh700, namcos12, namcos12_state, namcos12, ROT0, "Square / Namco", "Ehrgeiz (Japan, EG1/VER.A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* KC021 */
+GAME( 1998, mdhorse, 0, coh700, namcos12, namcos12_state, namcos12, ROT0, "MOSS / Namco", "Derby Quiz My Dream Horse (Japan, MDH1/VER.A2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* KC035 */
+GAME( 1998, aplarail, 0, aplarail, aplarail, namcos12_state, namcos12, ROT0, "Namco / Tomy", "Attack Pla Rail (Japan, AP1/VER.A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* KC032 */
+GAME( 1998, sws98, 0, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Super World Stadium '98 (Japan, SS81/VER.A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* KC0?? */
+GAME( 1998, technodr, 0, technodr, technodr, namcos12_state, namcos12, ROT0, "Namco", "Techno Drive (Japan, TD2/VER.B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* KC056 */
+GAME( 1998, tenkomor, 0, coh700, namcos12, namcos12_state, namcos12, ROT90,"Namco", "Tenkomori Shooting (Asia, TKM2/VER.A1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* KC036 */
+GAME( 1998, tenkomorja,tenkomor, coh700, namcos12, namcos12_state, namcos12, ROT90,"Namco", "Tenkomori Shooting (Japan, TKM1/VER.A1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* KC036 */
+GAME( 1998, fgtlayer, 0, coh700, namcos12, namcos12_state, namcos12, ROT0, "Arika / Namco", "Fighting Layer (Japan, FTL1/VER.A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* KC037 */
+GAME( 1999, pacapp, 0, coh700, namcos12, namcos12_state, namcos12, ROT0, "Produce / Namco", "Paca Paca Passion (Japan, PPP1/VER.A2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* KC038 */
+GAME( 1999, ptblank2, 0, ptblank2, ptblank2, namcos12_state, ptblank2, ROT0, "Namco", "Point Blank 2 (GNB5/VER.A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* KC042 */
+GAME( 1999, gunbarl, ptblank2, ptblank2, ptblank2, namcos12_state, ptblank2, ROT0, "Namco", "Gunbarl (Japan, GNB4/VER.A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* KC042 */
+GAME( 1999, sws99, 0, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Super World Stadium '99 (Japan, SS91/VER.A3)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* KC043 */
+GAME( 1999, tektagt, 0, tektagt, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Tekken Tag Tournament (US, TEG3/VER.C1)", MACHINE_IMPERFECT_SOUND ) /* KC044 */
+GAME( 1999, tektagtac, tektagt, tektagt, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Tekken Tag Tournament (Asia, TEG2/VER.C1, set 1)", MACHINE_IMPERFECT_SOUND ) /* KC044 */
+GAME( 1999, tektagtac1,tektagt, tektagt, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Tekken Tag Tournament (Asia, TEG2/VER.C1, set 2)", MACHINE_IMPERFECT_SOUND ) /* KC044 */
+GAME( 1999, tektagtub, tektagt, tektagt, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Tekken Tag Tournament (US, TEG3/VER.B)", MACHINE_IMPERFECT_SOUND ) /* KC044 */
+GAME( 1999, tektagtjc1,tektagt, tektagt, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Tekken Tag Tournament (Japan, TEG1/VER.C1)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* KC044 */
+GAME( 1999, tektagtjb, tektagt, tektagt, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Tekken Tag Tournament (Japan, TEG1/VER.B)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* KC044 */
+GAME( 1999, tektagtja, tektagt, tektagt, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Tekken Tag Tournament (Japan, TEG1/VER.A3)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* KC044 */
+GAME( 1999, ghlpanic, 0, ptblank2, ghlpanic, namcos12_state, namcos12, ROT0, "Eighting / Raizing / Namco", "Ghoul Panic (Asia, OB2/VER.A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* KC045 */
+GAME( 1999, ohbakyuun, ghlpanic, ptblank2, ghlpanic, namcos12_state, namcos12, ROT0, "Eighting / Raizing / Namco", "Oh! Bakyuuun (Japan, OB1/VER.A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* KC045 */
+GAME( 1999, pacapp2, 0, coh700, namcos12, namcos12_state, namcos12, ROT0, "Produce / Namco", "Paca Paca Passion 2 (Japan, PKS1/VER.A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* KC046 */
+GAME( 1999, mrdrillr, 0, coh700, namcos124w,namcos12_state,namcos12, ROT0, "Namco", "Mr. Driller (US, DRI3/VER.A2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* KC048 */
+GAME( 1999, mrdrillrj, mrdrillr, coh700, namcos124w,namcos12_state,namcos12, ROT0, "Namco", "Mr. Driller (Japan, DRI1/VER.A2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* KC048 */
+GAME( 1999, kaiunqz, 0, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Kaiun Quiz (Japan, KW1/VER.A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* KC050 */
+GAME( 1999, pacappsp, 0, coh700, namcos12, namcos12_state, namcos12, ROT0, "Produce / Namco", "Paca Paca Passion Special (Japan, PSP1/VER.A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* KC052 */
+GAME( 1999, aquarush, 0, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Aqua Rush (Japan, AQ1/VER.A1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* KC053 */
+GAME( 1999, golgo13, 0, golgo13, golgo13, namcos12_state, namcos12, ROT0, "Eighting / Raizing / Namco", "Golgo 13 (Japan, GLG1/VER.A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* KC054 */
+GAME( 1999, g13knd, 0, golgo13, golgo13, namcos12_state, namcos12, ROT0, "Eighting / Raizing / Namco", "Golgo 13 Kiseki no Dandou (Japan, GLS1/VER.A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* KC059 */
+GAME( 2000, sws2000, 0, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Super World Stadium 2000 (Japan, SS01/VER.A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* KC055 */
+GAME( 2000, truckk, 0, truckk, namcos12, namcos12_state, namcos12, ROT0, "Metro / Namco", "Truck Kyosokyoku (Japan, TKK2/VER.A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* KC056 */
+GAME( 2000, kartduel, 0, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Kart Duel (Japan, KTD1/VER.A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* KC057 */
+GAME( 2001, sws2001, sws2000, coh700, namcos12, namcos12_state, namcos12, ROT0, "Namco", "Super World Stadium 2001 (Japan, SS11/VER.A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* KC061 */
diff --git a/src/mame/drivers/namcos2.c b/src/mame/drivers/namcos2.c
index 27d742429ed..1b84d0ca76f 100644
--- a/src/mame/drivers/namcos2.c
+++ b/src/mame/drivers/namcos2.c
@@ -5581,11 +5581,11 @@ DRIVER_INIT_MEMBER(namcos2_state,luckywld)
/* and metal hawk have the B version and dragon saber has the C version */
/* YEAR, NAME, PARENT, MACHINE, INPUT, STATE, INIT, MONITOR, COMPANY, FULLNAME */
-GAMEL(1987, finallap, 0, finallap, finallap, namcos2_state, finallap, ROT0, "Namco", "Final Lap (Rev E)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND, layout_finallap )
-GAMEL(1987, finallapd, finallap, finallap, finallap, namcos2_state, finallap, ROT0, "Namco", "Final Lap (Rev D)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND, layout_finallap )
-GAMEL(1987, finallapc, finallap, finallap, finallap, namcos2_state, finallap, ROT0, "Namco", "Final Lap (Rev C)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND, layout_finallap )
-GAMEL(1987, finallapjc, finallap, finallap, finallap, namcos2_state, finallap, ROT0, "Namco", "Final Lap (Japan, Rev C)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND, layout_finallap )
-GAMEL(1987, finallapjb, finallap, finallap, finallap, namcos2_state, finallap, ROT0, "Namco", "Final Lap (Japan, Rev B)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND, layout_finallap )
+GAMEL(1987, finallap, 0, finallap, finallap, namcos2_state, finallap, ROT0, "Namco", "Final Lap (Rev E)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND, layout_finallap )
+GAMEL(1987, finallapd, finallap, finallap, finallap, namcos2_state, finallap, ROT0, "Namco", "Final Lap (Rev D)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND, layout_finallap )
+GAMEL(1987, finallapc, finallap, finallap, finallap, namcos2_state, finallap, ROT0, "Namco", "Final Lap (Rev C)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND, layout_finallap )
+GAMEL(1987, finallapjc, finallap, finallap, finallap, namcos2_state, finallap, ROT0, "Namco", "Final Lap (Japan, Rev C)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND, layout_finallap )
+GAMEL(1987, finallapjb, finallap, finallap, finallap, namcos2_state, finallap, ROT0, "Namco", "Final Lap (Japan, Rev B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND, layout_finallap )
GAME( 1988, assault, 0, default2, assault, namcos2_state, assault, ROT90, "Namco", "Assault (Rev B)", 0 )
GAME( 1988, assaultj, assault, default2, assault, namcos2_state, assaultj, ROT90, "Namco", "Assault (Japan)", 0 )
@@ -5604,7 +5604,7 @@ GAME( 1988, pheliosj, phelios, default2, default, namcos2_state, phelios, R
GAME( 1989, dirtfoxj, 0, default2, dirtfox, namcos2_state, dirtfoxj, ROT90, "Namco", "Dirt Fox (Japan)", 0 )
-GAMEL(1989, fourtrax, 0, finallap, fourtrax, namcos2_state, fourtrax, ROT0, "Namco", "Four Trax", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND, layout_finallap )
+GAMEL(1989, fourtrax, 0, finallap, fourtrax, namcos2_state, fourtrax, ROT0, "Namco", "Four Trax", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND, layout_finallap )
GAME( 1989, valkyrie, 0, default3, default, namcos2_state, valkyrie, ROT90, "Namco", "Valkyrie No Densetsu (Japan)", 0 )
@@ -5622,10 +5622,10 @@ GAME( 1990, kyukaidko, kyukaidk, default, kyukaidk, namcos2_state, kyukaidk, R
GAME( 1990, dsaber, 0, default3, default, namcos2_state, dsaber, ROT90, "Namco", "Dragon Saber", 0 )
GAME( 1990, dsaberj, dsaber, default3, default, namcos2_state, dsaberj, ROT90, "Namco", "Dragon Saber (Japan, Rev B)", 0 )
-GAMEL(1990, finalap2, 0, finallap, finallap, namcos2_state, finalap2, ROT0, "Namco", "Final Lap 2", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND, layout_finallap )
-GAMEL(1990, finalap2j, finalap2, finallap, finallap, namcos2_state, finalap2, ROT0, "Namco", "Final Lap 2 (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND, layout_finallap )
+GAMEL(1990, finalap2, 0, finallap, finallap, namcos2_state, finalap2, ROT0, "Namco", "Final Lap 2", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND, layout_finallap )
+GAMEL(1990, finalap2j, finalap2, finallap, finallap, namcos2_state, finalap2, ROT0, "Namco", "Final Lap 2 (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND, layout_finallap )
-GAME( 1990, gollygho, 0, gollygho, gollygho, namcos2_state, gollygho, ROT180, "Namco", "Golly! Ghost!", GAME_REQUIRES_ARTWORK )
+GAME( 1990, gollygho, 0, gollygho, gollygho, namcos2_state, gollygho, ROT180, "Namco", "Golly! Ghost!", MACHINE_REQUIRES_ARTWORK )
GAME( 1990, rthun2, 0, default3, default, namcos2_state, rthun2, ROT0, "Namco", "Rolling Thunder 2", 0 )
GAME( 1990, rthun2j, rthun2, default3, default, namcos2_state, rthun2j, ROT0, "Namco", "Rolling Thunder 2 (Japan)", 0 )
@@ -5639,26 +5639,26 @@ GAME( 1991, sgunner2j, sgunner2, sgunner2, sgunner2, namcos2_state, sgunner2, R
GAME( 1991, cosmogng, 0, default, default, namcos2_state, cosmogng, ROT90, "Namco", "Cosmo Gang the Video (US)", 0 )
GAME( 1991, cosmogngj, cosmogng, default, default, namcos2_state, cosmogng, ROT90, "Namco", "Cosmo Gang the Video (Japan)", 0 )
-GAME( 1992, bubbletr, 0, gollygho, bubbletr, namcos2_state, bubbletr, ROT180, "Namco", "Bubble Trouble (Japan, Rev C)", GAME_REQUIRES_ARTWORK )
+GAME( 1992, bubbletr, 0, gollygho, bubbletr, namcos2_state, bubbletr, ROT180, "Namco", "Bubble Trouble (Japan, Rev C)", MACHINE_REQUIRES_ARTWORK )
-GAMEL(1992, finalap3, 0, finallap, finalap3, namcos2_state, finalap3, ROT0, "Namco", "Final Lap 3 (World, set 1)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND, layout_finallap )
-GAMEL(1992, finalap3a, finalap3, finallap, finalap3, namcos2_state, finalap3, ROT0, "Namco", "Final Lap 3 (World, set 2)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND, layout_finallap )
-GAMEL(1992, finalap3j, finalap3, finallap, finalap3, namcos2_state, finalap3, ROT0, "Namco", "Final Lap 3 (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND, layout_finallap )
-GAMEL(1992, finalap3jc, finalap3, finallap, finalap3, namcos2_state, finalap3, ROT0, "Namco", "Final Lap 3 (Japan - Rev C)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND, layout_finallap )
-GAMEL(1992, finalap3bl, finalap3, finallap, finalap3, namcos2_state, finalap3, ROT0, "Namco", "Final Lap 3 (bootleg)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND, layout_finallap )
+GAMEL(1992, finalap3, 0, finallap, finalap3, namcos2_state, finalap3, ROT0, "Namco", "Final Lap 3 (World, set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND, layout_finallap )
+GAMEL(1992, finalap3a, finalap3, finallap, finalap3, namcos2_state, finalap3, ROT0, "Namco", "Final Lap 3 (World, set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND, layout_finallap )
+GAMEL(1992, finalap3j, finalap3, finallap, finalap3, namcos2_state, finalap3, ROT0, "Namco", "Final Lap 3 (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND, layout_finallap )
+GAMEL(1992, finalap3jc, finalap3, finallap, finalap3, namcos2_state, finalap3, ROT0, "Namco", "Final Lap 3 (Japan - Rev C)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND, layout_finallap )
+GAMEL(1992, finalap3bl, finalap3, finallap, finalap3, namcos2_state, finalap3, ROT0, "Namco", "Final Lap 3 (bootleg)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND, layout_finallap )
GAME( 1992, luckywld, 0, luckywld, luckywld, namcos2_state, luckywld, ROT0, "Namco", "Lucky & Wild", 0 )
GAME( 1992, luckywldj, luckywld, luckywld, luckywld, namcos2_state, luckywld, ROT0, "Namco", "Lucky & Wild (Japan)", 0 )
-GAME( 1992, suzuka8h, 0, luckywld, suzuka, namcos2_state, suzuka8h, ROT0, "Namco", "Suzuka 8 Hours (World, Rev C)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1992, suzuka8hj, suzuka8h, luckywld, suzuka, namcos2_state, suzuka8h, ROT0, "Namco", "Suzuka 8 Hours (Japan, Rev B)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
+GAME( 1992, suzuka8h, 0, luckywld, suzuka, namcos2_state, suzuka8h, ROT0, "Namco", "Suzuka 8 Hours (World, Rev C)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1992, suzuka8hj, suzuka8h, luckywld, suzuka, namcos2_state, suzuka8h, ROT0, "Namco", "Suzuka 8 Hours (Japan, Rev B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
GAME( 1992, sws, 0, default, default, namcos2_state, sws, ROT0, "Namco", "Super World Stadium (Japan)", 0 )
GAME( 1992, sws92, 0, default, default, namcos2_state, sws92, ROT0, "Namco", "Super World Stadium '92 (Japan)", 0 )
GAME( 1992, sws92g, sws92, default, default, namcos2_state, sws92g, ROT0, "Namco", "Super World Stadium '92 Gekitouban (Japan)", 0 )
-GAME( 1993, suzuk8h2, 0, luckywld, suzuka, namcos2_state, suzuk8h2, ROT0, "Namco", "Suzuka 8 Hours 2 (World, Rev B)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1993, suzuk8h2j, suzuk8h2, luckywld, suzuka, namcos2_state, suzuk8h2, ROT0, "Namco", "Suzuka 8 Hours 2 (Japan, Rev B)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
+GAME( 1993, suzuk8h2, 0, luckywld, suzuka, namcos2_state, suzuk8h2, ROT0, "Namco", "Suzuka 8 Hours 2 (World, Rev B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1993, suzuk8h2j, suzuk8h2, luckywld, suzuka, namcos2_state, suzuk8h2, ROT0, "Namco", "Suzuka 8 Hours 2 (Japan, Rev B)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
GAME( 1993, sws93, 0, default, default, namcos2_state, sws93, ROT0, "Namco", "Super World Stadium '93 (Japan)", 0 )
diff --git a/src/mame/drivers/namcos21.c b/src/mame/drivers/namcos21.c
index db38523c096..6168d6ad470 100644
--- a/src/mame/drivers/namcos21.c
+++ b/src/mame/drivers/namcos21.c
@@ -2489,14 +2489,14 @@ static INPUT_PORTS_START( aircomb )
INPUT_PORTS_END
/* YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR, COMPANY, FULLNAME, FLAGS */
-GAME( 1988, winrun, 0, winrun, winrun, namcos21_state, winrun, ROT0, "Namco", "Winning Run", GAME_IMPERFECT_GRAPHICS )
-GAME( 1989, winrungp, 0, winrun, winrungp, namcos21_state, winrun, ROT0, "Namco", "Winning Run Suzuka Grand Prix (Japan)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1991, winrun91, 0, winrun, winrungp, namcos21_state, winrun, ROT0, "Namco", "Winning Run '91 (Japan)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1991, driveyes, 0, driveyes, winrungp, namcos21_state, driveyes, ROT0, "Namco", "Driver's Eyes (Japan)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS )
-GAME( 1991, solvalou, 0, namcos21, s21default, namcos21_state, solvalou, ROT0, "Namco", "Solvalou (Japan)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1991, starblad, 0, namcos21, s21default, namcos21_state, starblad, ROT0, "Namco", "Starblade (World)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1991, starbladj, starblad, namcos21, s21default, namcos21_state, starblad, ROT0, "Namco", "Starblade (Japan)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1992, aircomb, 0, namcos21, aircomb, namcos21_state, aircomb, ROT0, "Namco", "Air Combat (US)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS )
-GAME( 1992, aircombj, aircomb, namcos21, aircomb, namcos21_state, aircomb, ROT0, "Namco", "Air Combat (Japan)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS )
-GAME( 1993, cybsled, 0, namcos21, cybsled, namcos21_state, cybsled, ROT0, "Namco", "Cyber Sled (World)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1993, cybsledj, cybsled, namcos21, cybsled, namcos21_state, cybsled, ROT0, "Namco", "Cyber Sled (Japan)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1988, winrun, 0, winrun, winrun, namcos21_state, winrun, ROT0, "Namco", "Winning Run", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1989, winrungp, 0, winrun, winrungp, namcos21_state, winrun, ROT0, "Namco", "Winning Run Suzuka Grand Prix (Japan)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1991, winrun91, 0, winrun, winrungp, namcos21_state, winrun, ROT0, "Namco", "Winning Run '91 (Japan)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1991, driveyes, 0, driveyes, winrungp, namcos21_state, driveyes, ROT0, "Namco", "Driver's Eyes (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1991, solvalou, 0, namcos21, s21default, namcos21_state, solvalou, ROT0, "Namco", "Solvalou (Japan)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1991, starblad, 0, namcos21, s21default, namcos21_state, starblad, ROT0, "Namco", "Starblade (World)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1991, starbladj, starblad, namcos21, s21default, namcos21_state, starblad, ROT0, "Namco", "Starblade (Japan)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1992, aircomb, 0, namcos21, aircomb, namcos21_state, aircomb, ROT0, "Namco", "Air Combat (US)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1992, aircombj, aircomb, namcos21, aircomb, namcos21_state, aircomb, ROT0, "Namco", "Air Combat (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1993, cybsled, 0, namcos21, cybsled, namcos21_state, cybsled, ROT0, "Namco", "Cyber Sled (World)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1993, cybsledj, cybsled, namcos21, cybsled, namcos21_state, cybsled, ROT0, "Namco", "Cyber Sled (Japan)", MACHINE_IMPERFECT_GRAPHICS )
diff --git a/src/mame/drivers/namcos22.c b/src/mame/drivers/namcos22.c
index af329845cdb..e1a28cb6272 100644
--- a/src/mame/drivers/namcos22.c
+++ b/src/mame/drivers/namcos22.c
@@ -3781,7 +3781,7 @@ static MACHINE_CONFIG_START( namcos22, namcos22_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
- MCFG_C352_ADD("c352", SS22_MASTER_CLOCK/2, C352_DIVIDER_288)
+ MCFG_C352_ADD("c352", SS22_MASTER_CLOCK/2, 288)
MCFG_SOUND_ROUTE(0, "rspeaker", 1.00)
MCFG_SOUND_ROUTE(1, "lspeaker", 1.00)
MCFG_SOUND_ROUTE(2, "rspeaker", 1.00)
@@ -3830,7 +3830,7 @@ static MACHINE_CONFIG_START( namcos22s, namcos22_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
- MCFG_C352_ADD("c352", SS22_MASTER_CLOCK/2, C352_DIVIDER_288)
+ MCFG_C352_ADD("c352", SS22_MASTER_CLOCK/2, 288)
MCFG_SOUND_ROUTE(0, "rspeaker", 1.00)
MCFG_SOUND_ROUTE(1, "lspeaker", 1.00)
MCFG_SOUND_ROUTE(2, "rspeaker", 1.00)
@@ -5596,33 +5596,33 @@ DRIVER_INIT_MEMBER(namcos22_state,dirtdash)
/* YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MNTR, COMPANY, FULLNAME, FLAGS */
/* System22 games */
-GAME( 1993, ridgerac, 0, namcos22, ridgera, namcos22_state, ridgeraj, ROT0, "Namco", "Ridge Racer (Rev. RR3, World)" , GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) // 1994-01-17
-GAME( 1993, ridgerac3, ridgerac, namcos22, ridgera, namcos22_state, ridgeraj, ROT0, "Namco", "Ridge Racer (Rev. RR2 Ver.B, World, 3-screen?)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) // 1993-10-28, no indication that this really is a 3-screen version.
-GAME( 1993, ridgeracb, ridgerac, namcos22, ridgera, namcos22_state, ridgeraj, ROT0, "Namco", "Ridge Racer (Rev. RR2, World)" , GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) // 1993-10-07
-GAME( 1993, ridgeracj, ridgerac, namcos22, ridgera, namcos22_state, ridgeraj, ROT0, "Namco", "Ridge Racer (Rev. RR1, Japan)" , GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) // 1993-10-07
-GAME( 1993, ridgeracf, ridgerac, namcos22, ridgeracf, namcos22_state, ridgeraj, ROT0, "Namco", "Ridge Racer Full Scale (World)" , GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING ) // 1993-12-13, very different version, incomplete dump.
-GAME( 1994, ridgera2, 0, namcos22, ridgera2, namcos22_state, ridger2j, ROT0, "Namco", "Ridge Racer 2 (Rev. RRS2, World)" , GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) // 1994-06-21
-GAME( 1994, ridgera2j, ridgera2, namcos22, ridgera2, namcos22_state, ridger2j, ROT0, "Namco", "Ridge Racer 2 (Rev. RRS1 Ver.B, Japan)" , GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) // 1994-06-21
-GAME( 1994, ridgera2ja,ridgera2, namcos22, ridgera2, namcos22_state, ridger2j, ROT0, "Namco", "Ridge Racer 2 (Rev. RRS1, Japan)" , GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) // 1994-06-13
-GAME( 1994, cybrcomm, 0, namcos22, cybrcomm, namcos22_state, cybrcomm, ROT0, "Namco", "Cyber Commando (Rev. CY1, Japan)" , GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) // 10/14/94
-GAME( 1995, raveracw, 0, namcos22, raveracw, namcos22_state, raveracw, ROT0, "Namco", "Rave Racer (Rev. RV2, World)" , GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) // 07/16/95
-GAME( 1995, raveracj, raveracw, namcos22, raveracw, namcos22_state, raveracw, ROT0, "Namco", "Rave Racer (Rev. RV1 Ver.B, Japan)" , GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) // 07/16/95
-GAME( 1995, raveracja, raveracw, namcos22, raveracw, namcos22_state, raveracw, ROT0, "Namco", "Rave Racer (Rev. RV1, Japan)" , GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) // 06/29/95
-GAME( 1994, acedrvrw, 0, namcos22, acedrvr, namcos22_state, acedrvr, ROT0, "Namco", "Ace Driver: Racing Evolution (Rev. AD2)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) // 94/10/20 16:22:25
-GAME( 1996, victlapw, 0, namcos22, victlap, namcos22_state, victlap, ROT0, "Namco", "Ace Driver: Victory Lap (Rev. ADV2)" , GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) // 96/02/13 17:50:06
+GAME( 1993, ridgerac, 0, namcos22, ridgera, namcos22_state, ridgeraj, ROT0, "Namco", "Ridge Racer (Rev. RR3, World)" , MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // 1994-01-17
+GAME( 1993, ridgerac3, ridgerac, namcos22, ridgera, namcos22_state, ridgeraj, ROT0, "Namco", "Ridge Racer (Rev. RR2 Ver.B, World, 3-screen?)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // 1993-10-28, no indication that this really is a 3-screen version.
+GAME( 1993, ridgeracb, ridgerac, namcos22, ridgera, namcos22_state, ridgeraj, ROT0, "Namco", "Ridge Racer (Rev. RR2, World)" , MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // 1993-10-07
+GAME( 1993, ridgeracj, ridgerac, namcos22, ridgera, namcos22_state, ridgeraj, ROT0, "Namco", "Ridge Racer (Rev. RR1, Japan)" , MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // 1993-10-07
+GAME( 1993, ridgeracf, ridgerac, namcos22, ridgeracf, namcos22_state, ridgeraj, ROT0, "Namco", "Ridge Racer Full Scale (World)" , MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) // 1993-12-13, very different version, incomplete dump.
+GAME( 1994, ridgera2, 0, namcos22, ridgera2, namcos22_state, ridger2j, ROT0, "Namco", "Ridge Racer 2 (Rev. RRS2, World)" , MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // 1994-06-21
+GAME( 1994, ridgera2j, ridgera2, namcos22, ridgera2, namcos22_state, ridger2j, ROT0, "Namco", "Ridge Racer 2 (Rev. RRS1 Ver.B, Japan)" , MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // 1994-06-21
+GAME( 1994, ridgera2ja,ridgera2, namcos22, ridgera2, namcos22_state, ridger2j, ROT0, "Namco", "Ridge Racer 2 (Rev. RRS1, Japan)" , MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // 1994-06-13
+GAME( 1994, cybrcomm, 0, namcos22, cybrcomm, namcos22_state, cybrcomm, ROT0, "Namco", "Cyber Commando (Rev. CY1, Japan)" , MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // 10/14/94
+GAME( 1995, raveracw, 0, namcos22, raveracw, namcos22_state, raveracw, ROT0, "Namco", "Rave Racer (Rev. RV2, World)" , MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // 07/16/95
+GAME( 1995, raveracj, raveracw, namcos22, raveracw, namcos22_state, raveracw, ROT0, "Namco", "Rave Racer (Rev. RV1 Ver.B, Japan)" , MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // 07/16/95
+GAME( 1995, raveracja, raveracw, namcos22, raveracw, namcos22_state, raveracw, ROT0, "Namco", "Rave Racer (Rev. RV1, Japan)" , MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // 06/29/95
+GAME( 1994, acedrvrw, 0, namcos22, acedrvr, namcos22_state, acedrvr, ROT0, "Namco", "Ace Driver: Racing Evolution (Rev. AD2)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // 94/10/20 16:22:25
+GAME( 1996, victlapw, 0, namcos22, victlap, namcos22_state, victlap, ROT0, "Namco", "Ace Driver: Victory Lap (Rev. ADV2)" , MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // 96/02/13 17:50:06
/* Super System22 games */
-GAME( 1994, alpinerd, 0, alpine, alpiner, namcos22_state, alpiner, ROT0, "Namco", "Alpine Racer (Rev. AR2 Ver.D)" , GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1994, alpinerc, alpinerd, alpine, alpiner, namcos22_state, alpiner, ROT0, "Namco", "Alpine Racer (Rev. AR2 Ver.C)" , GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1995, airco22b, 0, namcos22s, airco22, namcos22_state, airco22, ROT0, "Namco", "Air Combat 22 (Rev. ACS1 Ver.B, Japan)" , GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING ) // various problems
-GAME( 1995, cybrcycc, 0, namcos22s, cybrcycc, namcos22_state, cybrcyc, ROT0, "Namco", "Cyber Cycles (Rev. CB2 Ver.C)" , GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) // 95/04/04
-GAME( 1995, dirtdash, 0, namcos22s, dirtdash, namcos22_state, dirtdash, ROT0, "Namco", "Dirt Dash (Rev. DT2)" , GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) // 95/12/20 20:01:56
-GAME( 1995, timecris, 0, timecris, timecris, namcos22_state, timecris, ROT0, "Namco", "Time Crisis (Rev. TS2 Ver.B)" , GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) // 96/04/02 18:48:00
-GAME( 1995, timecrisa,timecris, timecris, timecris, namcos22_state, timecris, ROT0, "Namco", "Time Crisis (Rev. TS2 Ver.A)" , GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) // 96/01/08 18:56:09
-GAME( 1996, propcycl, 0, propcycl, propcycl, namcos22_state, propcycl, ROT0, "Namco", "Prop Cycle (Rev. PR2 Ver.A)" , GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) // 96/06/18 21:22:13
-GAME( 1996, alpinesa, 0, alpinesa, alpiner, namcos22_state, alpinesa, ROT0, "Namco", "Alpine Surfer (Rev. AF2 Ver.A)" , GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING ) // 96/07/01 15:19:23. major gfx problems, slave dsp?
-GAME( 1996, tokyowar, 0, namcos22s, tokyowar, namcos22_state, tokyowar, ROT0, "Namco", "Tokyo Wars (Rev. TW2 Ver.A)" , GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING ) // 96/09/03 14:08:47. near-invincible tanks, maybe related to timecris helicopter bug?
-GAME( 1996, aquajet, 0, namcos22s, aquajet, namcos22_state, aquajet, ROT0, "Namco", "Aqua Jet (Rev. AJ2 Ver.B)" , GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) // 96/09/20 14:28:30
-GAME( 1996, alpinr2b, 0, alpine, alpiner, namcos22_state, alpiner2, ROT0, "Namco", "Alpine Racer 2 (Rev. ARS2 Ver.B)" , GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) // 97/01/10 17:10:59
-GAME( 1996, alpinr2a, alpinr2b, alpine, alpiner, namcos22_state, alpiner2, ROT0, "Namco", "Alpine Racer 2 (Rev. ARS2 Ver.A)" , GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) // 96/12/06 13:45:05
-GAME( 1996, adillor, 0, adillor, adillor, namcos22_state, adillor, ROT0, "Namco", "Armadillo Racing (Rev. AM1 Ver.A)" , GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS ) // 97/04/07 19:19:41
+GAME( 1994, alpinerd, 0, alpine, alpiner, namcos22_state, alpiner, ROT0, "Namco", "Alpine Racer (Rev. AR2 Ver.D)" , MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1994, alpinerc, alpinerd, alpine, alpiner, namcos22_state, alpiner, ROT0, "Namco", "Alpine Racer (Rev. AR2 Ver.C)" , MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1995, airco22b, 0, namcos22s, airco22, namcos22_state, airco22, ROT0, "Namco", "Air Combat 22 (Rev. ACS1 Ver.B, Japan)" , MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) // various problems
+GAME( 1995, cybrcycc, 0, namcos22s, cybrcycc, namcos22_state, cybrcyc, ROT0, "Namco", "Cyber Cycles (Rev. CB2 Ver.C)" , MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // 95/04/04
+GAME( 1995, dirtdash, 0, namcos22s, dirtdash, namcos22_state, dirtdash, ROT0, "Namco", "Dirt Dash (Rev. DT2)" , MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // 95/12/20 20:01:56
+GAME( 1995, timecris, 0, timecris, timecris, namcos22_state, timecris, ROT0, "Namco", "Time Crisis (Rev. TS2 Ver.B)" , MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // 96/04/02 18:48:00
+GAME( 1995, timecrisa,timecris, timecris, timecris, namcos22_state, timecris, ROT0, "Namco", "Time Crisis (Rev. TS2 Ver.A)" , MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // 96/01/08 18:56:09
+GAME( 1996, propcycl, 0, propcycl, propcycl, namcos22_state, propcycl, ROT0, "Namco", "Prop Cycle (Rev. PR2 Ver.A)" , MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // 96/06/18 21:22:13
+GAME( 1996, alpinesa, 0, alpinesa, alpiner, namcos22_state, alpinesa, ROT0, "Namco", "Alpine Surfer (Rev. AF2 Ver.A)" , MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) // 96/07/01 15:19:23. major gfx problems, slave dsp?
+GAME( 1996, tokyowar, 0, namcos22s, tokyowar, namcos22_state, tokyowar, ROT0, "Namco", "Tokyo Wars (Rev. TW2 Ver.A)" , MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) // 96/09/03 14:08:47. near-invincible tanks, maybe related to timecris helicopter bug?
+GAME( 1996, aquajet, 0, namcos22s, aquajet, namcos22_state, aquajet, ROT0, "Namco", "Aqua Jet (Rev. AJ2 Ver.B)" , MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // 96/09/20 14:28:30
+GAME( 1996, alpinr2b, 0, alpine, alpiner, namcos22_state, alpiner2, ROT0, "Namco", "Alpine Racer 2 (Rev. ARS2 Ver.B)" , MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // 97/01/10 17:10:59
+GAME( 1996, alpinr2a, alpinr2b, alpine, alpiner, namcos22_state, alpiner2, ROT0, "Namco", "Alpine Racer 2 (Rev. ARS2 Ver.A)" , MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // 96/12/06 13:45:05
+GAME( 1996, adillor, 0, adillor, adillor, namcos22_state, adillor, ROT0, "Namco", "Armadillo Racing (Rev. AM1 Ver.A)" , MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // 97/04/07 19:19:41
diff --git a/src/mame/drivers/namcos23.c b/src/mame/drivers/namcos23.c
index fd92dc91d8f..c2a86ec5ce7 100644
--- a/src/mame/drivers/namcos23.c
+++ b/src/mame/drivers/namcos23.c
@@ -1234,7 +1234,7 @@ Notes:
#include "emu.h"
#include <float.h>
-#include "video/polylgcy.h"
+#include "video/poly.h"
#include "cpu/mips/mips3.h"
#include "cpu/h8/h83002.h"
#include "cpu/h8/h83337.h"
@@ -1247,7 +1247,8 @@ Notes:
#define JVSCLOCK (XTAL_14_7456MHz)
#define H8CLOCK (16737350) /* from 2061 */
#define BUSCLOCK (16737350*2) /* 33MHz CPU bus clock / input */
-#define C352CLOCK (25992000) /* measured at 25.992MHz from 2061 pin 9 (System 12 uses a divider of 332) */
+#define C352CLOCK (25992000) /* measured at 25.992MHz from 2061 pin 9 */
+#define C352DIV (296)
#define VSYNC1 (59.8824)
#define VSYNC2 (59.915)
#define HSYNC (16666150)
@@ -1263,6 +1264,8 @@ Notes:
enum { MODEL, FLUSH };
+enum { RENDER_MAX_ENTRIES = 1000, POLY_MAX_ENTRIES = 10000 };
+
struct namcos23_render_entry
{
int type;
@@ -1286,17 +1289,32 @@ struct namcos23_render_data
UINT32 (*texture_lookup)(running_machine &machine, const pen_t *pens, float x, float y);
};
+class namcos23_state;
+
+class namcos23_renderer : public poly_manager<float, namcos23_render_data, 5, POLY_MAX_ENTRIES>
+{
+public:
+ namcos23_renderer(namcos23_state &state);
+ void render_flush(bitmap_rgb32& bitmap);
+ void render_scanline(INT32 scanline, const extent_t& extent, const namcos23_render_data& object, int threadid);
+ float* zBuffer() { return m_zBuffer; }
+
+private:
+ namcos23_state& m_state;
+ bitmap_rgb32 m_bitmap;
+ float* m_zBuffer;
+};
+
+typedef namcos23_renderer::vertex_t poly_vertex;
+
struct namcos23_poly_entry
{
namcos23_render_data rd;
- float zkey;
int front;
int vertex_count;
poly_vertex pv[16];
};
-enum { RENDER_MAX_ENTRIES = 1000, POLY_MAX_ENTRIES = 10000 };
-
struct c417_t
{
@@ -1343,13 +1361,12 @@ struct c404_t
struct render_t
{
- legacy_poly_manager *polymgr;
+ namcos23_renderer *polymgr;
int cur;
int poly_count;
int count[2];
namcos23_render_entry entries[2][RENDER_MAX_ENTRIES];
namcos23_poly_entry polys[POLY_MAX_ENTRIES];
- namcos23_poly_entry *poly_order[POLY_MAX_ENTRIES];
};
class namcos23_state : public driver_device
@@ -1539,7 +1556,6 @@ public:
void render_apply_matrot(INT32 xi, INT32 yi, INT32 zi, const namcos23_render_entry *re, INT32 &x, INT32 &y, INT32 &z);
void render_project(poly_vertex &pv);
void render_one_model(const namcos23_render_entry *re);
- void render_flush(bitmap_rgb32 &bitmap);
void render_run(bitmap_rgb32 &bitmap);
};
@@ -1566,6 +1582,15 @@ UINT16 namcos23_state::nthword(const UINT32 *pSource, int offs)
***************************************************************************/
+namcos23_renderer::namcos23_renderer(namcos23_state &state)
+ : poly_manager<float, namcos23_render_data, 5, POLY_MAX_ENTRIES>(state.machine()),
+ m_state(state),
+ m_bitmap(state.m_screen->width(), state.m_screen->height())
+{
+ const INT32 bufferSize = state.m_screen->visible_area().width() * state.m_screen->visible_area().height();
+ m_zBuffer = auto_alloc_array(state.machine(), float, bufferSize);
+}
+
// 3D hardware, to throw at least in part in video/namcos23.c
inline INT32 namcos23_state::u32_to_s24(UINT32 v)
@@ -1856,32 +1881,42 @@ WRITE32_MEMBER(namcos23_state::c435_w)
-static void render_scanline(void *dest, INT32 scanline, const poly_extent *extent, const void *extradata, int threadid)
+void namcos23_renderer::render_scanline(INT32 scanline, const extent_t& extent, const namcos23_render_data& object, int threadid)
{
- const namcos23_render_data *rd = (const namcos23_render_data *)extradata;
-
- float w = extent->param[0].start;
- float u = extent->param[1].start;
- float v = extent->param[2].start;
- float l = extent->param[3].start;
- float dw = extent->param[0].dpdx;
- float du = extent->param[1].dpdx;
- float dv = extent->param[2].dpdx;
- float dl = extent->param[3].dpdx;
- bitmap_rgb32 *bitmap = (bitmap_rgb32 *)dest;
- UINT32 *img = &bitmap->pix32(scanline, extent->startx);
-
- for(int x = extent->startx; x < extent->stopx; x++) {
- float z = w ? 1/w : 0;
- UINT32 pcol = rd->texture_lookup(*rd->machine, rd->pens, u*z, v*z);
- float ll = l*z;
- *img = (light(pcol >> 16, ll) << 16) | (light(pcol >> 8, ll) << 8) | light(pcol, ll);
-
+ const namcos23_render_data& rd = object;
+
+ float zz = extent.param[0].start;
+ float w = extent.param[1].start;
+ float u = extent.param[2].start;
+ float v = extent.param[3].start;
+ float l = extent.param[4].start;
+ float dz = extent.param[0].dpdx;
+ float dw = extent.param[1].dpdx;
+ float du = extent.param[2].dpdx;
+ float dv = extent.param[3].dpdx;
+ float dl = extent.param[4].dpdx;
+
+ UINT32 *img = &m_bitmap.pix32(scanline, extent.startx);
+ float* zBuffer = &m_zBuffer[(scanline * m_state.m_screen->visible_area().width()) + extent.startx];
+
+ for(int x = extent.startx; x < extent.stopx; x++) {
+ if (zz < *zBuffer)
+ {
+ float z = w ? 1/w : 0;
+ UINT32 pcol = rd.texture_lookup(*rd.machine, rd.pens, u*z, v*z);
+ float ll = l*z;
+ *img = (light(pcol >> 16, ll) << 16) | (light(pcol >> 8, ll) << 8) | light(pcol, ll);
+
+ *zBuffer = zz;
+ }
+
+ zz += dz;
w += dw;
u += du;
v += dv;
l += dl;
img++;
+ zBuffer++;
}
}
@@ -1906,10 +1941,9 @@ void namcos23_state::render_project(poly_vertex &pv)
// 640/(3.125/3.75) = 768
// 480/(2.34375/3.75) = 768
- float w = pv.p[0] ? 1/pv.p[0] : 0;
- pv.x = 320 + 768*w*pv.x;
- pv.y = 240 - 768*w*pv.y;
- pv.p[0] = w;
+ pv.x = 320 + 768 * pv.x;
+ pv.y = 240 - 768 * pv.y;
+ pv.p[1] = 1.0f / pv.p[1];
}
static UINT32 render_texture_lookup_nocache_point(running_machine &machine, const pen_t *pens, float x, float y)
@@ -2012,22 +2046,71 @@ void namcos23_state::render_one_model(const namcos23_render_entry *re)
namcos23_poly_entry *p = render.polys + render.poly_count;
- p->vertex_count = poly_zclip_if_less(ne, pv, p->pv, 4, 0.001f);
-
+ // Should be unnecessary now that frustum clipping happens, but this still culls polys behind the camera
+ p->vertex_count = render.polymgr->zclip_if_less(ne, pv, p->pv, 5, 0.001f);
+
+ // Project if you don't clip on the near plane
if(p->vertex_count >= 3) {
+ // Project the eye points
+ frustum_clip_vertex<float, 3> clipVerts[10];
for(int i=0; i<p->vertex_count; i++) {
- render_project(p->pv[i]);
- float w = p->pv[i].p[0];
- p->pv[i].p[1] *= w;
- p->pv[i].p[2] *= w;
- p->pv[i].p[3] *= w;
+ // A basic perspective transform
+ const float Z = p->pv[i].p[0];
+ const float projX = p->pv[i].x / Z;
+ const float projY = p->pv[i].y / Z;
+
+ const float near = 0.001f;
+ const float far = 1000.0f;
+ const float m22 = -(far / (far-near));
+ const float m23 = -((far * near) / (far - near));
+ const float projZ = -(Z * m22) + m23;
+
+ // Construct a frustum clipping vert from the NDCoords
+ clipVerts[i].x = projX;
+ clipVerts[i].y = projY;
+ clipVerts[i].z = projZ;
+ clipVerts[i].w = p->pv[i].p[0];
+ clipVerts[i].p[0] = p->pv[i].p[1];
+ clipVerts[i].p[1] = p->pv[i].p[2];
+ clipVerts[i].p[2] = p->pv[i].p[3];
+ }
+
+ // Clip against all edges of the view frustum
+ int num_vertices = frustum_clip_all<float, 3>(clipVerts, p->vertex_count, clipVerts);
+
+ if (num_vertices != 0)
+ {
+ // Push the results back into the main vertices
+ for (int i=0; i < num_vertices; i++)
+ {
+ p->pv[i].x = clipVerts[i].x;
+ p->pv[i].y = clipVerts[i].y;
+ p->pv[i].p[0] = clipVerts[i].z;
+ p->pv[i].p[1] = clipVerts[i].w;
+ p->pv[i].p[2] = clipVerts[i].p[0];
+ p->pv[i].p[3] = clipVerts[i].p[1];
+ p->pv[i].p[4] = clipVerts[i].p[2];
+ }
+ p->vertex_count = num_vertices;
+
+ // This is our poor-man's projection matrix
+ for(int i=0; i<p->vertex_count; i++)
+ {
+ render_project(p->pv[i]);
+
+ const float w = p->pv[i].p[1];
+ p->pv[i].p[2] *= w;
+ p->pv[i].p[3] *= w;
+ p->pv[i].p[4] *= w;
+ }
+
+ // Compute an odd sorta'-Z thing that can situate the polygon wherever you want in Z-depth
+ p->front = !(h & 0x00000001);
+ p->rd.machine = &machine();
+ p->rd.texture_lookup = render_texture_lookup_nocache_point;
+ p->rd.pens = m_palette->pens() + (color << 8);
+ render.poly_count++;
}
- p->zkey = 0.5f*(minz+maxz);
- p->front = !(h & 0x00000001);
- p->rd.machine = &machine();
- p->rd.texture_lookup = render_texture_lookup_nocache_point;
- p->rd.pens = m_palette->pens() + (color << 8);
- render.poly_count++;
}
if(type & 0x000010000)
@@ -2035,38 +2118,39 @@ void namcos23_state::render_one_model(const namcos23_render_entry *re)
}
}
-static int render_poly_compare(const void *i1, const void *i2)
+void namcos23_renderer::render_flush(bitmap_rgb32& bitmap)
{
- const namcos23_poly_entry *p1 = *(const namcos23_poly_entry **)i1;
- const namcos23_poly_entry *p2 = *(const namcos23_poly_entry **)i2;
-
- if(p1->front != p2->front)
- return p1->front ? 1 : -1;
-
- return p1->zkey < p2->zkey ? 1 : p1->zkey > p2->zkey ? -1 : 0;
-}
-
-void namcos23_state::render_flush(bitmap_rgb32 &bitmap)
-{
- render_t &render = m_render;
+ render_t &render = m_state.m_render;
if(!render.poly_count)
return;
- for(int i=0; i<render.poly_count; i++)
- render.poly_order[i] = &render.polys[i];
-
- qsort(render.poly_order, render.poly_count, sizeof(namcos23_poly_entry *), render_poly_compare);
-
const static rectangle scissor(0, 639, 0, 479);
for(int i=0; i<render.poly_count; i++) {
- const namcos23_poly_entry *p = render.poly_order[i];
- namcos23_render_data *rd = (namcos23_render_data *)poly_get_extra_data(render.polymgr);
- *rd = p->rd;
- poly_render_triangle_fan(render.polymgr, &bitmap, scissor, render_scanline, 4, p->vertex_count, p->pv);
+ const namcos23_poly_entry *p = &render.polys[i];
+ namcos23_render_data& extra = render.polymgr->object_data_alloc();
+ extra = p->rd;
+
+ // We should probably split the polygons into triangles ourselves to insure everything is being rendered properly
+ if (p->vertex_count == 3)
+ render_triangle(scissor, render_delegate(FUNC(namcos23_renderer::render_scanline), this), 5, p->pv[0], p->pv[1], p->pv[2]);
+ else if (p->vertex_count == 4)
+ render_polygon<4>(scissor, render_delegate(FUNC(namcos23_renderer::render_scanline), this), 5, p->pv);
+ else if (p->vertex_count == 5)
+ render_polygon<5>(scissor, render_delegate(FUNC(namcos23_renderer::render_scanline), this), 5, p->pv);
+ else if (p->vertex_count == 6)
+ render_polygon<6>(scissor, render_delegate(FUNC(namcos23_renderer::render_scanline), this), 5, p->pv);
}
render.poly_count = 0;
+
+ copybitmap(bitmap, m_bitmap, 0, 0, 0, 0, scissor);
+
+ // Reset the buffers
+ for (int i = 0; i < (m_state.m_screen->visible_area().width())*(m_state.m_screen->visible_area().height()); i++)
+ {
+ m_zBuffer[i] = 1000.0f; // TODO: set to far clipping plane value
+ }
}
void namcos23_state::render_run(bitmap_rgb32 &bitmap)
@@ -2081,14 +2165,13 @@ void namcos23_state::render_run(bitmap_rgb32 &bitmap)
render_one_model(re);
break;
case FLUSH:
- render_flush(bitmap);
+ render.polymgr->render_flush(bitmap);
break;
}
re++;
}
- render_flush(bitmap);
-
- poly_wait(render.polymgr, "render_run");
+ render.polymgr->render_flush(bitmap);
+ render.polymgr->wait();
}
@@ -2160,7 +2243,7 @@ VIDEO_START_MEMBER(namcos23_state,s23)
m_bgtilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(namcos23_state::TextTilemapGetInfo),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
m_bgtilemap->set_transparent_pen(0xf);
m_bgtilemap->set_scrolldx(860, 860);
- m_render.polymgr = poly_alloc(machine(), 10000, sizeof(namcos23_render_data), 0);
+ m_render.polymgr = auto_alloc(machine(), namcos23_renderer(*this));
}
@@ -3320,7 +3403,7 @@ static MACHINE_CONFIG_START( gorgon, namcos23_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
- MCFG_C352_ADD("c352", C352CLOCK, C352_DIVIDER_332)
+ MCFG_C352_ADD("c352", C352CLOCK, C352DIV)
MCFG_SOUND_ROUTE(0, "rspeaker", 1.00)
MCFG_SOUND_ROUTE(1, "lspeaker", 1.00)
MCFG_SOUND_ROUTE(2, "rspeaker", 1.00)
@@ -3389,7 +3472,7 @@ static MACHINE_CONFIG_START( s23, namcos23_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
- MCFG_C352_ADD("c352", C352CLOCK, C352_DIVIDER_332)
+ MCFG_C352_ADD("c352", C352CLOCK, C352DIV)
MCFG_SOUND_ROUTE(0, "rspeaker", 1.00)
MCFG_SOUND_ROUTE(1, "lspeaker", 1.00)
MCFG_SOUND_ROUTE(2, "rspeaker", 1.00)
@@ -3469,7 +3552,7 @@ static MACHINE_CONFIG_START( ss23, namcos23_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
- MCFG_C352_ADD("c352", C352CLOCK, C352_DIVIDER_332)
+ MCFG_C352_ADD("c352", C352CLOCK, C352DIV)
MCFG_SOUND_ROUTE(0, "rspeaker", 1.00)
MCFG_SOUND_ROUTE(1, "lspeaker", 1.00)
MCFG_SOUND_ROUTE(2, "rspeaker", 1.00)
@@ -4853,7 +4936,7 @@ ROM_END
/* Games */
-#define GAME_FLAGS (GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND)
+#define GAME_FLAGS (MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND)
// YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MNTR, COMPANY, FULLNAME, FLAGS
GAME( 1997, rapidrvr, 0, gorgon, rapidrvr, namcos23_state, s23, ROT0, "Namco", "Rapid River (RD3 Ver. C)", GAME_FLAGS ) // 97/11/27, USA
GAME( 1997, rapidrvrv2c, rapidrvr, gorgon, rapidrvr, namcos23_state, s23, ROT0, "Namco", "Rapid River (RD2 Ver. C)", GAME_FLAGS ) // 97/11/27, Europe
diff --git a/src/mame/drivers/namcos86.c b/src/mame/drivers/namcos86.c
index 421b639eef4..ff1be2381ee 100644
--- a/src/mame/drivers/namcos86.c
+++ b/src/mame/drivers/namcos86.c
@@ -1349,7 +1349,7 @@ ROM_START( genpeitd )
/* m3 empty */
ROM_END
-ROM_START( rthunder )
+ROM_START( rthunder ) // program and mcu updated to rt3
ROM_REGION( 0x10000, "cpu1", 0 )
/* 9d empty */
ROM_LOAD( "rt3_1b.9c", 0x8000, 0x8000, CRC(7d252a1b) SHA1(cb92709e94eb273b3ce44c55cd252170ad1017f4) )
@@ -1400,7 +1400,7 @@ ROM_START( rthunder )
/* m3 empty */
ROM_END
-ROM_START( rthunder2 )
+ROM_START( rthunder2 ) // program updated to rt2, 19/20 banked CPU code updated to rt3
ROM_REGION( 0x10000, "cpu1", 0 )
/* 9d empty */
ROM_LOAD( "rt2_1.9c", 0x8000, 0x8000, CRC(7eaa9fdf) SHA1(aecc338b025eb5cd48c26ffb2c658d03478361c8) )
@@ -1451,14 +1451,15 @@ ROM_START( rthunder2 )
/* m3 empty */
ROM_END
-ROM_START( rthunder1 )
+
+ROM_START( rthunder1 ) // some roms (mcu + samples) and maybe r19 updated to rt2
ROM_REGION( 0x10000, "cpu1", 0 )
/* 9d empty */
- ROM_LOAD( "r1", 0x8000, 0x8000, CRC(6f8c1252) SHA1(586f2e33dd16f31131e4ae9423d639fdc6555c9c) )
+ ROM_LOAD( "rt1_1b.9c", 0x8000, 0x8000, CRC(6f8c1252) SHA1(586f2e33dd16f31131e4ae9423d639fdc6555c9c) )
ROM_REGION( 0x10000, "cpu2", 0 )
- ROM_LOAD( "r3", 0x00000, 0x8000, CRC(aaa82885) SHA1(fc2bec3cf7e2de5f90174a2ed3bacfa94b6819f4) )
- ROM_LOAD( "r2", 0x08000, 0x8000, CRC(f22a03d8) SHA1(5b81fc82813978d5cb69402be72b9ccc585fa1d0) )
+ ROM_LOAD( "rt1_3.12d", 0x00000, 0x8000, CRC(aaa82885) SHA1(fc2bec3cf7e2de5f90174a2ed3bacfa94b6819f4) )
+ ROM_LOAD( "rt1_2b.12c", 0x08000, 0x8000, CRC(f22a03d8) SHA1(5b81fc82813978d5cb69402be72b9ccc585fa1d0) )
ROM_REGION( 0x18000, "gfx1", 0 )
ROM_LOAD( "rt1_7.7r", 0x00000, 0x10000, CRC(a85efa39) SHA1(1ed63b421a93960668cb4558c1ca1b3c86b1f6be) ) /* plane 1,2 */
@@ -1486,14 +1487,14 @@ ROM_START( rthunder1 )
ROM_LOAD( "rt1-5.6u", 0x1400, 0x0020, CRC(e4130804) SHA1(e1a3e1383186d036fba6dc8a8681f48f24f59281) ) /* tile address decoder (used at runtime) */
ROM_REGION( 0x10000, "mcu", 0 )
- ROM_LOAD( "r4", 0x4000, 0x8000, CRC(0387464f) SHA1(ce7f521bc2ecc6525880da2551daf595a394a275) ) /* subprogram for the MCU */
+ ROM_LOAD( "rt2_4.6b", 0x4000, 0x8000, CRC(0387464f) SHA1(ce7f521bc2ecc6525880da2551daf595a394a275) ) /* subprogram for the MCU */
ROM_LOAD( "cus60-60a1.mcu", 0xf000, 0x1000, CRC(076ea82a) SHA1(22b5e62e26390d7d5cacc0503c7aa5ed524204df) ) /* MCU internal code */
ROM_REGION( 0x40000, "user1", 0 ) /* bank switched data for CPU1 */
ROM_LOAD( "rt1_17.f1", 0x00000, 0x10000, CRC(766af455) SHA1(8c71772795e783d6c4b88af9a311d55e363c298a) )
ROM_LOAD( "rt1_18.h1", 0x10000, 0x10000, CRC(3f9f2f5d) SHA1(541b8f80800cb55e4b81ac48771d00fe10c90743) )
- ROM_LOAD( "r19", 0x20000, 0x10000, CRC(fe9343b0) SHA1(ae8e5ee11eaf7dc1e8f814b0a0beef97731f042b) )
- ROM_LOAD( "r20", 0x30000, 0x10000, CRC(f8518d4f) SHA1(3a8551d46ffdf82844b2eb1b2c01cf2d8423a49e) )
+ ROM_LOAD( "r19", 0x20000, 0x10000, CRC(fe9343b0) SHA1(ae8e5ee11eaf7dc1e8f814b0a0beef97731f042b) ) // probably rt2
+ ROM_LOAD( "rt1_20.m1", 0x30000, 0x10000, CRC(f8518d4f) SHA1(3a8551d46ffdf82844b2eb1b2c01cf2d8423a49e) ) // maybe labeled rt2? content is the same as rt1 tho, we have no rt2 rom for this position otherwise tho, only rt1 and rt3, strange.
ROM_REGION( 0x80000, "namco2", 0 ) /* PCM samples for Hitachi CPU */
ROM_LOAD( "rt1_21.f3", 0x00000, 0x10000, CRC(454968f3) SHA1(e0a679353491190b6d4f0355324456a1bd7c8a7a) )
@@ -1502,6 +1503,59 @@ ROM_START( rthunder1 )
/* m3 empty */
ROM_END
+
+ROM_START( rthunder0 )
+ ROM_REGION( 0x10000, "cpu1", 0 )
+ /* 9d empty */
+ ROM_LOAD( "rt1_1b.9c", 0x8000, 0x8000, CRC(6f8c1252) SHA1(586f2e33dd16f31131e4ae9423d639fdc6555c9c) )
+
+ ROM_REGION( 0x10000, "cpu2", 0 )
+ ROM_LOAD( "rt1_3.12d", 0x00000, 0x8000, CRC(aaa82885) SHA1(fc2bec3cf7e2de5f90174a2ed3bacfa94b6819f4) )
+ ROM_LOAD( "rt1_2b.12c", 0x08000, 0x8000, CRC(f22a03d8) SHA1(5b81fc82813978d5cb69402be72b9ccc585fa1d0) )
+
+ ROM_REGION( 0x18000, "gfx1", 0 )
+ ROM_LOAD( "rt1_7.7r", 0x00000, 0x10000, CRC(a85efa39) SHA1(1ed63b421a93960668cb4558c1ca1b3c86b1f6be) ) /* plane 1,2 */
+ ROM_LOAD( "rt1_8.7s", 0x10000, 0x08000, CRC(f7a95820) SHA1(82fe0adf6c5b3abef19031646e1eca1585dcc481) ) /* plane 3 */
+
+ ROM_REGION( 0x0c000, "gfx2", 0 )
+ ROM_LOAD( "rt1_5.4r", 0x00000, 0x08000, CRC(d0fc470b) SHA1(70f7f1e29527044eae405f58af08bad3097990bd) ) /* plane 1,2 */
+ ROM_LOAD( "rt1_6.4s", 0x08000, 0x04000, CRC(6b57edb2) SHA1(4a8f1e024e5be4d76f2c99d506ae7da86af3d1f5) ) /* plane 3 */
+
+ ROM_REGION( 0x80000, "gfx3", 0 )
+ ROM_LOAD( "rt1_9.12h", 0x00000, 0x10000, CRC(8e070561) SHA1(483b4de79f2429236f45c32ec56b97a9a90574a3) )
+ ROM_LOAD( "rt1_10.12k", 0x10000, 0x10000, CRC(cb8fb607) SHA1(ba9400fb19d29a285897cc3a2d4d739ce845f897) )
+ ROM_LOAD( "rt1_11.12l", 0x20000, 0x10000, CRC(2bdf5ed9) SHA1(a771e922ad868ca1e008d08a8ff5fdf28aa315fc) )
+ ROM_LOAD( "rt1_12.12m", 0x30000, 0x10000, CRC(e6c6c7dc) SHA1(ead143c2730a77911839a25734550188533c7b96) )
+ ROM_LOAD( "rt1_13.12p", 0x40000, 0x10000, CRC(489686d7) SHA1(a04b57424acbf2584f736b55740d613a1aae2b8b) )
+ ROM_LOAD( "rt1_14.12r", 0x50000, 0x10000, CRC(689e56a8) SHA1(b4d6de4eec47856a62f396f55d531fbf345cf12a) )
+ ROM_LOAD( "rt1_15.12t", 0x60000, 0x10000, CRC(1d8bf2ca) SHA1(949ae8b00b94bfa5bc2d07888aafbaaaea559b06) )
+ ROM_LOAD( "rt1_16.12u", 0x70000, 0x10000, CRC(1bbcf37b) SHA1(8d27c49b36d5e23dd446c150ada3853eec75e4c1) )
+
+ ROM_REGION( 0x1420, "proms", 0 )
+ ROM_LOAD( "rt1-1.3r", 0x0000, 0x0200, CRC(8ef3bb9d) SHA1(4636d6b8ba7611b11d4863fab02475dc4a619eaf) ) /* red & green components */
+ ROM_LOAD( "rt1-2.3s", 0x0200, 0x0200, CRC(6510a8f2) SHA1(935f140bfa7e6f8cebafa7f1b0de99dd319273d4) ) /* blue component */
+ ROM_LOAD( "rt1-3.4v", 0x0400, 0x0800, CRC(95c7d944) SHA1(ca5fea028674882a61507ac7c89ada96f5b2674d) ) /* tiles color table */
+ ROM_LOAD( "rt1-4.5v", 0x0c00, 0x0800, CRC(1391fec9) SHA1(8ca94e22110b20d2ecdf03610bcc89ff4245920f) ) /* sprites color table */
+ ROM_LOAD( "rt1-5.6u", 0x1400, 0x0020, CRC(e4130804) SHA1(e1a3e1383186d036fba6dc8a8681f48f24f59281) ) /* tile address decoder (used at runtime) */
+
+ ROM_REGION( 0x10000, "mcu", 0 )
+ ROM_LOAD( "rt1_4.6b", 0x4000, 0x8000, CRC(3f795094) SHA1(390eef98e3dec690bf942c35617e2fa004c96e5c) ) /* subprogram for the MCU */
+ ROM_LOAD( "cus60-60a1.mcu", 0xf000, 0x1000, CRC(076ea82a) SHA1(22b5e62e26390d7d5cacc0503c7aa5ed524204df) ) /* MCU internal code */
+
+ ROM_REGION( 0x40000, "user1", 0 ) /* bank switched data for CPU1 */
+ ROM_LOAD( "rt1_17.f1", 0x00000, 0x10000, CRC(766af455) SHA1(8c71772795e783d6c4b88af9a311d55e363c298a) )
+ ROM_LOAD( "rt1_18.h1", 0x10000, 0x10000, CRC(3f9f2f5d) SHA1(541b8f80800cb55e4b81ac48771d00fe10c90743) )
+ ROM_LOAD( "rt1_19.k1", 0x20000, 0x10000, CRC(1273a048) SHA1(b8a0a6f5d9f9d351a622252afb409a111431c5ca) )
+ ROM_LOAD( "rt1_20.m1", 0x30000, 0x10000, CRC(f8518d4f) SHA1(3a8551d46ffdf82844b2eb1b2c01cf2d8423a49e) )
+
+ ROM_REGION( 0x80000, "namco2", 0 ) /* PCM samples for Hitachi CPU */
+ ROM_LOAD( "rt1_21.f3", 0x00000, 0x10000, CRC(454968f3) SHA1(e0a679353491190b6d4f0355324456a1bd7c8a7a) )
+ ROM_LOAD( "rt1_22.h3", 0x20000, 0x10000, CRC(842a2fd4) SHA1(5aee47d680621ab5a33b13433f37bd74e977c3f6) )
+ /* k3 empty */
+ /* m3 empty */
+ROM_END
+
+
ROM_START( wndrmomo )
ROM_REGION( 0x10000, "cpu1", 0 )
/* 9d empty */
@@ -1611,12 +1665,18 @@ DRIVER_INIT_MEMBER(namcos86_state,namco86)
-GAME( 1986, skykiddx, 0, hopmappy, skykiddx, namcos86_state, namco86, ROT180, "Namco", "Sky Kid Deluxe (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1986, skykiddxo,skykiddx, hopmappy, skykiddx, namcos86_state, namco86, ROT180, "Namco", "Sky Kid Deluxe (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1986, hopmappy, 0, hopmappy, hopmappy, namcos86_state, namco86, ROT0, "Namco", "Hopping Mappy", GAME_SUPPORTS_SAVE )
-GAME( 1986, roishtar, 0, roishtar, roishtar, namcos86_state, namco86, ROT0, "Namco", "The Return of Ishtar", GAME_SUPPORTS_SAVE )
-GAME( 1986, genpeitd, 0, genpeitd, genpeitd, namcos86_state, namco86, ROT0, "Namco", "Genpei ToumaDen", GAME_SUPPORTS_SAVE )
-GAME( 1986, rthunder, 0, rthunder, rthunder, namcos86_state, namco86, ROT0, "Namco", "Rolling Thunder (rev 3)", GAME_SUPPORTS_SAVE )
-GAME( 1986, rthunder2,rthunder, rthunder, rthunder1, namcos86_state, namco86, ROT0, "Namco", "Rolling Thunder (rev 2)", GAME_SUPPORTS_SAVE )
-GAME( 1986, rthunder1,rthunder, rthunder, rthunder1, namcos86_state, namco86, ROT0, "Namco", "Rolling Thunder (rev 1)", GAME_SUPPORTS_SAVE )
-GAME( 1987, wndrmomo, 0, wndrmomo, wndrmomo, namcos86_state, namco86, ROT0, "Namco", "Wonder Momo", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+GAME( 1986, skykiddx, 0, hopmappy, skykiddx, namcos86_state, namco86, ROT180, "Namco", "Sky Kid Deluxe (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, skykiddxo,skykiddx, hopmappy, skykiddx, namcos86_state, namco86, ROT180, "Namco", "Sky Kid Deluxe (set 2)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1986, hopmappy, 0, hopmappy, hopmappy, namcos86_state, namco86, ROT0, "Namco", "Hopping Mappy", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1986, roishtar, 0, roishtar, roishtar, namcos86_state, namco86, ROT0, "Namco", "The Return of Ishtar", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1986, genpeitd, 0, genpeitd, genpeitd, namcos86_state, namco86, ROT0, "Namco", "Genpei ToumaDen", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1986, rthunder, 0, rthunder, rthunder, namcos86_state, namco86, ROT0, "Namco", "Rolling Thunder (rev 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, rthunder2,rthunder, rthunder, rthunder1, namcos86_state, namco86, ROT0, "Namco", "Rolling Thunder (rev 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, rthunder1,rthunder, rthunder, rthunder1, namcos86_state, namco86, ROT0, "Namco", "Rolling Thunder (rev 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, rthunder0,rthunder, rthunder, rthunder1, namcos86_state, namco86, ROT0, "Namco", "Rolling Thunder (oldest)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1987, wndrmomo, 0, wndrmomo, wndrmomo, namcos86_state, namco86, ROT0, "Namco", "Wonder Momo", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/nanos.c b/src/mame/drivers/nanos.c
index 25655a03d02..6552b696a98 100644
--- a/src/mess/drivers/nanos.c
+++ b/src/mame/drivers/nanos.c
@@ -541,4 +541,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1985, nanos, 0, 0, nanos, nanos, driver_device, 0, "Ingenieurhochschule fur Seefahrt Warnemunde/Wustrow", "NANOS", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/naomi.c b/src/mame/drivers/naomi.c
index ecd32a47570..73cc62f775f 100644
--- a/src/mame/drivers/naomi.c
+++ b/src/mame/drivers/naomi.c
@@ -407,10 +407,10 @@ IC17S-IC38S - FlashROM (SOP56), 64Mb.
CN1/2/3 - connectors joining to main board
Games known to use this PCB include....
- Sticker EPROM FLASHROMs
-Game on cart IC16# # of SOP56 Notes
-----------------------------------------------------------------------------------------------------
-Puyo Puyo Fever (prototype) * not present 22 (64Mb) no cart, only development PCB
+ Sticker EPROM FLASHROMs
+Game on cart IC16# # of SOP56 Notes
+-----------------------------------------------------------------------------------------------------
+Puyo Puyo Fever (prototype ver 0.01) * not present 22 (64Mb) no cart, only development PCB
@@ -519,14 +519,14 @@ Club Kart: European Session 840-0062C 23704 11 (128Mb) 3
Club Kart: European Session (Rev C) 840-0062C * 11 (128Mb) 315-6319A 315-6213 317-0313-COM * EPR have handwritten Japanese label possibly readable as 'teteto 74 lcl'
Club Kart: European Session (Rev D) 840-0062C 23704D 11 (128Mb) 315-6319A 315-6213 317-0313-COM
Crackin' DJ 840-0043C 23450 10 (128Mb) 315-6319 315-6213 317-0288-COM requires regular 837-13551 and 837-13938 rotary JVS boards, and turntable simulation
-Derby Owners Club II (Rev B) 840-0083C 22306B 11 (128Mb) 315-6319A 315-6213 not present
+Derby Owners Club II (Rev B) 840-0083C 22306B 11 (128Mb) 315-6319A 315-6213 317-0327-JPN
Derby Owners Club World Edition (Rev C) 840-0088C 22336C 7 (128Mb) 315-6319A 315-6213 not present
Derby Owners Club World Edition (Rev D) 840-0088C 22336D 7 (128Mb) 315-6319A 315-6213 not present 2 MaskROM are different from Rev C
Giga Wing 2 841-0014C 22270 5 (128Mb) 315-6319A 315-6213 317-5064-COM
Mobile Suit Gundam: Federation Vs. Zeon 841-0017C 23638 10 (128Mb) 315-6319A 315-6213 317-5070-COM
Moero! Justice Gakuen / Project Justice (Rev A) 841-0015C 23548A 11 (128Mb) 315-6319A 315-6213 317-5065-COM
MushiKing - The King Of Beetle 2K5 1ST 840-0158C 24286 7 (128Mb) 315-6319A 315-6213 not present requires 610-0669 barcode reader
-Oinori-daimyoujin Matsuri 840-0126B 24053 5 (128Mb) 315-6319A 315-6213 not present requires 837-14274 "G2 EXPANSION BD" (similar to hopper 837-14381 but with ARC NET chip)
+Oinori-daimyoujin Matsuri 840-0126C 24053 5 (128Mb) 315-6319A 315-6213 not present requires 837-14274 "G2 EXPANSION BD" (similar to hopper 837-14381 but with ARC NET chip)
Samba de Amigo Ver. 2000 840-0047C 23600 11 (128Mb) 315-6319A 315-6213 317-0295-COM
Star Horse (big screens) 840-0054C 23625 4 (128Mb) 315-6319 315-6213 not present requires 837-13785 ARCNET&IO BD
Star Horse (satellite) 840-0056C 23627 6 (128Mb)* 315-6319 315-6213 not present * +1 (64Mb), requires 837-13785 ARCNET&IO BD
@@ -566,7 +566,7 @@ Notes:
IC4 - XCF01SVG Xilinx Platform Flash In-System Programmable Configuration PROMS (TSSOP20)
IC5 - 74LVC08A (Quad 2-input AND gate)
IC6 - 74LVCH16245A (16bit transceiver with direction pin)
- IC7 - empty socket for EPROM (DIP42), either 27C160 or 27C322
+ IC7 - socket for EPROM (DIP42), either 27C160 or 27C322
IC8-IC15 - S29GL512N FlashROM (TSOP56), 512Mb. Not all positions are populated
IC16 - R3112N431A Low voltage detector with output delay (SOT-23-5)
JP1 - JUMPER Sets the size of the EPROM. 1-2 = 32M, 2-3 = 16M
@@ -579,21 +579,21 @@ Notes:
Game on cart IC7# # of SOP56 IC2# IC3# IC4# Notes
-------------------------------------------------------------------------------------------------------------------------------------------
/Akatsuki Denkou Senki Blitz Kampf
-\Ausf. Achse 841-0058C not present 4 (512Mb) present 317-5130-JPN present IC2# is labeled "VER.2" - IC4# is marked "5A" - IC#10 & IC#11 are empty
-Dynamite Deka EX / Asian Dynamite 840-0175C not present 4 (512Mb) present 317-0495-COM present IC2# is labeled "VER.2"
-Illmatic Envelope 841-0059C not present 4 (512Mb) present 317-5131-JPN present IC2# is labeled "VER.2" - IC#11 is empty
-Mamoru-kun wa Norowarete Shimatta 841-0060C not present 4 (512Mb) present 317-5132-JPN present IC2# is labeled "VER.2"
-Manic Panic Ghost! 840-0170C not present 5 (512Mb) present 317-0461-COM present requires 837-14672 sensor board (SH4 based)
-Melty Blood Actress Again 841-0061C not present 6 (512Mb) present 317-5133-JPN present IC2# is labeled "REV.A" - IC4# is marked "5A"
-Melty Blood Actress Again Version A (Rev A) 841-0061C 24455 6 (512Mb) present 317-5133-JPN present IC2# is labeled "REV.A" - IC4# is marked "5A"
-Mushiking - The King Of Beetles II ENG (Ver. 1.001) 840-0164C not present 2 (512Mb) present 317-0437-COM present requires 610-0669 barcode reader, 838-14245-92 "MAPLE/232C CONVERT BD" (MIE-based), 838-14243 "RFID CHIP R/W BD" and RFID chip
-Mushiking - The King Of Beetles II ENG (Ver. 2.001) 840-0164C 24357 2 (512Mb) present 317-0437-COM present IC4# is marked "18"
-Poka Suka Ghost 840-0170C not present 5 (512Mb) present 317-0461-COM present requires 837-14672 sensor board (SH4 based)
-Radirgy Noa 841-0062C not present 4 (512Mb) present 317-5138-JPN present IC2# is labeled "VER.2" - IC4# is marked "8A"
-Rhythm Tengoku 841-0177C not present 4 (512Mb) present 317-0503-JPN present IC2# is labeled "VER.2" - IC4# is marked "8A"
-Star Horse Progress Returns (satellite) 840-0186C not present 2 (512Mb) present not present present IC2# is labeled "VER.2", requires 837-13785 ARCNET&IO BD
-Shooting Love 2007 841-0057C not present 4 (512Mb) present 317-5129-JPN present IC2# is labeled "VER.2"
-Touch De Zunou (Rev A) 840-0166C not present 2 (512Mb) present 317-0435-JPN present IC4# is marked "18", requires 837-14672 sensor board (SH4 based)
+\Ausf. Achse 841-0058C not present 4 (512Mb) present 317-5130-JPN present IC2# is labeled "VER.2" - IC4# is marked "5A" - IC#10 & IC#11 are empty
+Dynamite Deka EX / Asian Dynamite 840-0175C not present 4 (512Mb) present 317-0495-COM present IC2# is labeled "VER.2"
+Illmatic Envelope 841-0059C not present 4 (512Mb) present 317-5131-JPN present IC2# is labeled "VER.2" - IC#11 is empty
+Mamoru-kun wa Norowarete Shimatta 841-0060C not present 4 (512Mb) present 317-5132-JPN present IC2# is labeled "VER.2"
+Manic Panic Ghost! 840-0170C-01 not present 5 (512Mb) present 317-0461-COM present requires 837-14672 sensor board (SH4 based)
+Melty Blood Actress Again 841-0061C not present 6 (512Mb) present 317-5133-JPN present IC2# is labeled "REV.A" - IC4# is marked "5A"
+Melty Blood Actress Again Version A (Rev A) 841-0061C 24455 6 (512Mb) present 317-5133-JPN present IC2# is labeled "REV.A" - IC4# is marked "5A"
+Mushiking - The King Of Beetles II ENG (Ver. 1.001) 840-0164C not present 2 (512Mb) present 317-0437-COM present requires 610-0669 barcode reader, 838-14245-92 "MAPLE/232C CONVERT BD" (MIE-based), 838-14243 "RFID CHIP R/W BD" and RFID chip
+Mushiking - The King Of Beetles II ENG (Ver. 2.001) 840-0164C 24357 2 (512Mb) present 317-0437-COM present IC4# is marked "18"
+Pokasuka Ghost! 840-0170C not present 5 (512Mb) present 317-0461-COM present requires 837-14672 sensor board (SH4 based)
+Radirgy Noa 841-0062C not present 4 (512Mb) present 317-5138-JPN present IC2# is labeled "VER.2" - IC4# is marked "8A"
+Rhythm Tengoku 841-0177C not present 4 (512Mb) present 317-0503-JPN present IC2# is labeled "VER.2" - IC4# is marked "8A"
+Star Horse Progress Returns (satellite) 840-0186C not present 2 (512Mb) present not present present IC2# is labeled "VER.2", requires 837-13785 ARCNET&IO BD
+Shooting Love 2007 841-0057C not present 4 (512Mb) present 317-5129-JPN present IC2# is labeled "VER.2"
+Touch De Zunou (Rev A) 840-0166C not present 2 (512Mb) present 317-0435-JPN present IC4# is marked "18", requires 837-14672 sensor board (SH4 based)
@@ -889,6 +889,7 @@ Notes:
837-13741
837-13844-02 (sticker)
+837-14645
|-----------------------------|
| CN8 CN9 |
|DB9 CN1|
@@ -924,6 +925,7 @@ Notes: (most info taken from poor quality pics/scans, better info is needed)
IC6 - Sega 315-6146 custom IC (QFP176)
IC7 - 27C512 EPROM with label 'EPR-22082' (DIP28)
On plain 837-13844 (no -02) this is 'EPR-21868' (DIP28)
+ On later 837-14645 it is 'EPR-24354'
IC8 - Sharp LH52256 32k x8 SRAM (SOP28)
IC10 - NEC D71054GB programmable counter/timer (QFP44)
OSC1 - 14.7456MHz
@@ -998,9 +1000,9 @@ Notes: (most info taken from poor quality pics/scans, better info is needed)
|LED CN4 IC4 |
|--------------------|
Notes:
- This is the I/O board used for Dynamic Golf which is
- located under the panel. It's also used for spinner
- controls such as those used on Outtrigger.
+ This is the I/O board used in Dynamic Golf, Out Trigger, Shootout Pool,
+ Shootout Pool Prize, Kick'4'Cash, Crackin' DJ 1&2
+ for the trackballs and other rotary type game controls.
It must be daisy-chained to the normal I/O board with a USB cable.
CN1 - 24 pin connector (not used on Dynamic Golf, other use unknown)
@@ -1025,7 +1027,7 @@ Sega's I/O board has:
- analog input
- USB input (connect to NAOMI motherboard)
- USB output (not used)
-- shrinked D-sub 15pin connector (connect JVS video output, the signal is routed to JAMMA connector, signal is amplified to 3Vp-p and H/V sync signal is mixed (composite))
+- D-sub 15pin VGA-compatible connector (connect JVS video output, the signal is routed to JAMMA connector, signal is amplified to 3Vp-p and H/V sync signal is mixed (composite))
- external I/O connector (JST 12pin)
- switch to select function of external I/O connector (extra button input or 7-seg LED(x2) output of total wins for 'Versus City' cabinet)
- spare audio input (the signal goes to JAMMA speaker output)
@@ -1395,8 +1397,8 @@ Notes:
Development ROM board:
-few unreleased and many prototype game versions known to exist on this ROM board,
-currently only Rumble Fish 2 prototype dumped
+There are a few unreleased and many prototype game versions known to exist on this ROM board.
+Currently only Rumble Fish 2 prototype is dumped.
PC BD SYSTEMX 3MODE FLASH Rev.B
1111-00001402
@@ -1422,7 +1424,7 @@ Notes:
XC9536 - Xilinx XC9536XL in-system programmable CPLD (PLCC44), stamped JULIE_DEV
XC2S30 - Xilinx XC2S30 Spartan-II FPGA (TQFP144), Rumble Fish 2 have printed sticker A08
17S30 - Xilinx 17S30APC OTP Configuration PROM, stamped SXFLS
- IC12-IC27 - Fujitsu MBM29DL640E 64M TSOP48 flash ROMs
+ IC12-IC27 - Fujitsu MBM29DL640E 64M TSOP48 flash ROMs
Network Board
@@ -1533,9 +1535,16 @@ Sushi Bar
*/
#include "emu.h"
+#include "includes/naomi.h"
-#include "includes/naomi.h"
+// for now, make buggy GCC/Mingw STFU about I64FMT
+#if (defined(__MINGW32__) && (__GNUC__ >= 5))
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wformat"
+#pragma GCC diagnostic ignored "-Wformat-extra-args"
+#endif
+
#define CPU_CLOCK (200000000)
@@ -3558,7 +3567,8 @@ ROM_START( derbyoc2 )
ROM_LOAD( "mpr-22304.ic10", 0x9800000, 0x1000000, CRC(46c1fb1f) SHA1(6daca76a75df3501f77e473eb065d48804fcc64a) )
ROM_LOAD( "mpr-22305.ic11", 0xa800000, 0x1000000, CRC(027d0e7b) SHA1(e3c874e60cabb6f9ce686696d9055a0c0d5289ae) )
- ROM_PARAMETER( ":rom_board:segam2crypt:key", "-1") // 315-5881 not populated
+ // 840-0083-01 2001 317-0327-JPN Naomi (label comes from unclear photo, can be wrong)
+ ROM_PARAMETER( ":rom_board:segam2crypt:key", "-1") // key is unknown, probably not used by game
ROM_END
/*
@@ -4636,11 +4646,13 @@ ROM_START( 18wheelr )
ROM_LOAD( "mpr-22182.ic19s", 0x9800000, 0x800000, CRC(c5606c42) SHA1(5871104ff1c7acde0493e13b9a4d0abdf8a40728) )
ROM_LOAD( "mpr-22183.ic20s", 0xa000000, 0x800000, CRC(776af308) SHA1(7d29cb4dce75d34c622549fea7e102868d0da60a) )
- // JVS I/O board 837-13844, code is for a Z80 of unknown type (it's inside the big Sega ASIC)
+ // JVS I/O board 837-13844, external Z80 code for Sega 315-6146 "MIE" MCU
ROM_REGION( 0x20000, "jvsio", ROMREGION_ERASEFF)
ROM_LOAD( "epr-21868.ic7", 0x000000, 0x010000, CRC(c306a51f) SHA1(7833b73dc34c4c62401a30637968f46b949ceac0) )
// later version of the same I/O board (temporary, we'll handle this properly later)
ROM_LOAD( "epr-22082.ic7", 0x010000, 0x010000, CRC(de26fc6c) SHA1(cf8ef7969770fff8697299c3e3152413b898a967) )
+ // 837-14645 JVS I/O, uses same PCB as 837-13844
+ ROM_LOAD( "epr-24354.ic7", 0x000000, 0x010000, CRC(0ce43505) SHA1(7700e3acfb756dfbf95f3ff14786d1bcb57e2f7d) )
// 18 Wheeler motor controller 838-13992, code is for a TMPZ84C015 which is Z80 compatible
ROM_REGION( 0x10000, "motorio", ROMREGION_ERASEFF)
@@ -5080,6 +5092,9 @@ ROM_START( otrigger )
NAOMI_BIOS
NAOMI_DEFAULT_EEPROM
+ ROM_REGION( 0x10000, "io_board", 0)
+ ROM_LOAD("epr-22084.ic3", 0x0000, 0x10000, CRC(18cf58bb) SHA1(1494f8215231929e41bbe2a133658d01882fbb0f) )
+
ROM_REGION( 0xa000000, "rom_board", ROMREGION_ERASEFF)
ROM_LOAD("epr-22163.ic22", 0x0000000, 0x0400000, CRC(3bdafb6a) SHA1(c4c5a4ba94d85c4353df22d70bb08be67e9c22c3) )
ROM_LOAD("mpr-22142.ic1", 0x0800000, 0x0800000, CRC(5b45fa35) SHA1(7d3fbecc6f0dce2b13bfb21ed68f44632b91b94b) )
@@ -5668,7 +5683,7 @@ ROM_START( wwfroyal )
ROM_PARAMETER( ":rom_board:segam2crypt:key", "281627c3" )
ROM_END
-ROM_START( mushik2e )
+ROM_START( mushi2eo )
NAOMI_BIOS
NAOMI_DEFAULT_EEPROM
@@ -5682,7 +5697,7 @@ ROM_START( mushik2e )
ROM_REGION(0x4, "boardid", ROMREGION_ERASEVAL(0x02))
ROM_END
-ROM_START( mushi2ea )
+ROM_START( mushik2e )
NAOMI_BIOS
NAOMI_DEFAULT_EEPROM
@@ -5775,7 +5790,7 @@ ROM_START( mamonoro )
ROM_REGION(0x4, "boardid", ROMREGION_ERASEVAL(0x04))
ROM_END
-ROM_START( mbaa )
+ROM_START( mbaao )
NAOMI_BIOS
NAOMI_DEFAULT_EEPROM
@@ -5793,7 +5808,7 @@ ROM_START( mbaa )
ROM_REGION(0x4, "boardid", ROMREGION_ERASEVAL(0x06))
ROM_END
-ROM_START( mbaaa )
+ROM_START( mbaa )
NAOMI_BIOS
NAOMI_DEFAULT_EEPROM
@@ -5985,7 +6000,7 @@ ROM_START( zombrvn )
ROM_PARAMETER( ":rom_board:segam2crypt:key", "28012b41" )
ROM_END
-ROM_START( gunsur2 )
+ROM_START( gunsur2j )
NAOMI_BIOS
NAOMI_DEFAULT_EEPROM
@@ -6010,7 +6025,7 @@ ROM_START( gunsur2 )
ROM_PARAMETER( ":rom_board:segam2crypt:key", "000680d0" )
ROM_END
-ROM_START( gunsur2e )
+ROM_START( gunsur2 )
NAOMI_BIOS
NAOMI_DEFAULT_EEPROM
@@ -6035,7 +6050,7 @@ ROM_START( gunsur2e )
ROM_PARAMETER( ":rom_board:segam2crypt:key", "000680d0" )
ROM_END
-ROM_START( wldkicks )
+ROM_START( wldkicksa )
NAOMI_BIOS
NAOMI_DEFAULT_EEPROM
@@ -6057,7 +6072,7 @@ ROM_START( wldkicks )
ROM_PARAMETER( ":rom_board:segam2crypt:key", "052e2901" )
ROM_END
-ROM_START( wldkicksa )
+ROM_START( wldkicks )
NAOMI_BIOS
NAOMI_DEFAULT_EEPROM
@@ -6079,7 +6094,7 @@ ROM_START( wldkicksa )
ROM_PARAMETER( ":rom_board:segam2crypt:key", "052e2901" )
ROM_END
-ROM_START( wldkicksb )
+ROM_START( wldkicksj )
NAOMI_BIOS
NAOMI_DEFAULT_EEPROM
@@ -6128,14 +6143,14 @@ ROM_START( toukon4 )
ROM_PARAMETER( ":rom_board:segam2crypt:key", "052e2901" )
ROM_END
-ROM_START( ninjaslt )
+ROM_START( ninjasltj )
NAOMI_BIOS
NAOMI_DEFAULT_EEPROM
ROM_REGION( 0xb000000, "rom_board", ROMREGION_ERASEFF)
- ROM_LOAD( "nja3vera.2d", 0x0800000, 0x0800000, CRC(442cb858) SHA1(8244871bdb0b49e14ea400d63fe759754a530410) )
- ROM_LOAD( "nja3vera.2c", 0x1000000, 0x0800000, CRC(1f81f46b) SHA1(7677f881b84233f3f95a792f9be6f618cba6d586) )
- ROM_LOAD( "nja3vera.2b", 0x1800000, 0x0800000, CRC(24974c3d) SHA1(cd64dec682688e26fca91873e5e7b6e0d931d1ce) )
+ ROM_LOAD( "nja1vera.2d", 0x0800000, 0x0800000, CRC(c4c60b4c) SHA1(25e5c78b4704626a962b56405e6295bddfd2ae93) )
+ ROM_LOAD( "nja1vera.2c", 0x1000000, 0x0800000, CRC(1f81f46b) SHA1(7677f881b84233f3f95a792f9be6f618cba6d586) )
+ ROM_LOAD( "nja1vera.2b", 0x1800000, 0x0800000, CRC(24974c3d) SHA1(cd64dec682688e26fca91873e5e7b6e0d931d1ce) )
ROM_LOAD( "nja1ma2.4l", 0x2000000, 0x1000000, CRC(5af34ea0) SHA1(b49a50e995cb6682782b0643d40001b9bffe0118) )
ROM_LOAD( "nja1ma3.4k", 0x3000000, 0x1000000, CRC(504a89b3) SHA1(e0b90542f80527e998db7ee3bb75e36c375cacba) )
ROM_LOAD( "nja1ma4.4j", 0x4000000, 0x1000000, CRC(d5c2799a) SHA1(ce46c1aa38479d9e5e350573bc6b214979b88dbc) )
@@ -6153,14 +6168,14 @@ ROM_START( ninjaslt )
ROM_PARAMETER( ":rom_board:segam2crypt:key", "000ca510" )
ROM_END
-ROM_START( ninjaslt1 )
+ROM_START( ninjaslta )
NAOMI_BIOS
NAOMI_DEFAULT_EEPROM
ROM_REGION( 0xb000000, "rom_board", ROMREGION_ERASEFF)
- ROM_LOAD( "nja1vera.2d", 0x0800000, 0x0800000, CRC(c4c60b4c) SHA1(25e5c78b4704626a962b56405e6295bddfd2ae93) )
- ROM_LOAD( "nja3vera.2c", 0x1000000, 0x0800000, CRC(1f81f46b) SHA1(7677f881b84233f3f95a792f9be6f618cba6d586) )
- ROM_LOAD( "nja3vera.2b", 0x1800000, 0x0800000, CRC(24974c3d) SHA1(cd64dec682688e26fca91873e5e7b6e0d931d1ce) )
+ ROM_LOAD( "nja2vera.2d", 0x0800000, 0x0800000, CRC(a5bdf581) SHA1(838a719e14449fb64ea0abd1497e395d86599b34) )
+ ROM_LOAD( "nja1vera.2c", 0x1000000, 0x0800000, CRC(1f81f46b) SHA1(7677f881b84233f3f95a792f9be6f618cba6d586) )
+ ROM_LOAD( "nja1vera.2b", 0x1800000, 0x0800000, CRC(24974c3d) SHA1(cd64dec682688e26fca91873e5e7b6e0d931d1ce) )
ROM_LOAD( "nja1ma2.4l", 0x2000000, 0x1000000, CRC(5af34ea0) SHA1(b49a50e995cb6682782b0643d40001b9bffe0118) )
ROM_LOAD( "nja1ma3.4k", 0x3000000, 0x1000000, CRC(504a89b3) SHA1(e0b90542f80527e998db7ee3bb75e36c375cacba) )
ROM_LOAD( "nja1ma4.4j", 0x4000000, 0x1000000, CRC(d5c2799a) SHA1(ce46c1aa38479d9e5e350573bc6b214979b88dbc) )
@@ -6178,14 +6193,14 @@ ROM_START( ninjaslt1 )
ROM_PARAMETER( ":rom_board:segam2crypt:key", "000ca510" )
ROM_END
-ROM_START( ninjaslt2 )
+ROM_START( ninjasltu )
NAOMI_BIOS
NAOMI_DEFAULT_EEPROM
ROM_REGION( 0xb000000, "rom_board", ROMREGION_ERASEFF)
- ROM_LOAD( "nja2vera.2d", 0x0800000, 0x0800000, CRC(a5bdf581) SHA1(838a719e14449fb64ea0abd1497e395d86599b34) )
- ROM_LOAD( "nja3vera.2c", 0x1000000, 0x0800000, CRC(1f81f46b) SHA1(7677f881b84233f3f95a792f9be6f618cba6d586) )
- ROM_LOAD( "nja3vera.2b", 0x1800000, 0x0800000, CRC(24974c3d) SHA1(cd64dec682688e26fca91873e5e7b6e0d931d1ce) )
+ ROM_LOAD( "nja3vera.2d", 0x0800000, 0x0800000, CRC(442cb858) SHA1(8244871bdb0b49e14ea400d63fe759754a530410) )
+ ROM_LOAD( "nja1vera.2c", 0x1000000, 0x0800000, CRC(1f81f46b) SHA1(7677f881b84233f3f95a792f9be6f618cba6d586) )
+ ROM_LOAD( "nja1vera.2b", 0x1800000, 0x0800000, CRC(24974c3d) SHA1(cd64dec682688e26fca91873e5e7b6e0d931d1ce) )
ROM_LOAD( "nja1ma2.4l", 0x2000000, 0x1000000, CRC(5af34ea0) SHA1(b49a50e995cb6682782b0643d40001b9bffe0118) )
ROM_LOAD( "nja1ma3.4k", 0x3000000, 0x1000000, CRC(504a89b3) SHA1(e0b90542f80527e998db7ee3bb75e36c375cacba) )
ROM_LOAD( "nja1ma4.4j", 0x4000000, 0x1000000, CRC(d5c2799a) SHA1(ce46c1aa38479d9e5e350573bc6b214979b88dbc) )
@@ -6203,14 +6218,14 @@ ROM_START( ninjaslt2 )
ROM_PARAMETER( ":rom_board:segam2crypt:key", "000ca510" )
ROM_END
-ROM_START( ninjaslt4 )
+ROM_START( ninjaslt )
NAOMI_BIOS
NAOMI_DEFAULT_EEPROM
ROM_REGION( 0xb000000, "rom_board", ROMREGION_ERASEFF)
ROM_LOAD( "nja4vera.2d", 0x0800000, 0x0800000, CRC(a57c0576) SHA1(0c99a3e648798bf6a100512d682c08a3d4f05958) )
- ROM_LOAD( "nja3vera.2c", 0x1000000, 0x0800000, CRC(1f81f46b) SHA1(7677f881b84233f3f95a792f9be6f618cba6d586) )
- ROM_LOAD( "nja3vera.2b", 0x1800000, 0x0800000, CRC(24974c3d) SHA1(cd64dec682688e26fca91873e5e7b6e0d931d1ce) )
+ ROM_LOAD( "nja1vera.2c", 0x1000000, 0x0800000, CRC(1f81f46b) SHA1(7677f881b84233f3f95a792f9be6f618cba6d586) )
+ ROM_LOAD( "nja1vera.2b", 0x1800000, 0x0800000, CRC(24974c3d) SHA1(cd64dec682688e26fca91873e5e7b6e0d931d1ce) )
ROM_LOAD( "nja1ma2.4l", 0x2000000, 0x1000000, CRC(5af34ea0) SHA1(b49a50e995cb6682782b0643d40001b9bffe0118) )
ROM_LOAD( "nja1ma3.4k", 0x3000000, 0x1000000, CRC(504a89b3) SHA1(e0b90542f80527e998db7ee3bb75e36c375cacba) )
ROM_LOAD( "nja1ma4.4j", 0x4000000, 0x1000000, CRC(d5c2799a) SHA1(ce46c1aa38479d9e5e350573bc6b214979b88dbc) )
@@ -6228,7 +6243,7 @@ ROM_START( ninjaslt4 )
ROM_PARAMETER( ":rom_board:segam2crypt:key", "000ca510" )
ROM_END
-ROM_START( mazan )
+ROM_START( mazana )
NAOMI_BIOS
NAOMI_DEFAULT_EEPROM
@@ -6247,7 +6262,7 @@ ROM_START( mazan )
ROM_PARAMETER( ":rom_board:segam2crypt:key", "280fea94" )
ROM_END
-ROM_START( mazana )
+ROM_START( mazan )
NAOMI_BIOS
NAOMI_DEFAULT_EEPROM
@@ -6895,7 +6910,7 @@ ROM_START( moeru )
ROM_LOAD("moeru-default-eeprom.bin", 0, 0x80, CRC(50ca079f) SHA1(788a399017b94d9d1a981ea703af0d4a178dadb6))
DISK_REGION( "gdrom" )
- DISK_IMAGE_READONLY( "gdl-0013", 0, BAD_DUMP SHA1(c8869069c28bc8eec96d820886bc388d69d46143) )
+ DISK_IMAGE_READONLY( "gdl-0013", 0, SHA1(12108adc8292e145aeb6b68c8450f6a626bda5ee) )
ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF)
//PIC16C622A (317-5084-JPN)
@@ -7011,7 +7026,7 @@ ROM_START( usagiym )
ROM_LOAD("usagiym-default-eeprom.bin", 0, 0x80, CRC(1fbdf0ca) SHA1(5854c693b7d6451cefeb737109aeaf64751fc4f7))
DISK_REGION( "gdrom" )
- DISK_IMAGE_READONLY( "gdl-0022", 0, BAD_DUMP SHA1(45deba05a12abbf6390c0fc0e4cdeaedfa7d2ca5) )
+ DISK_IMAGE_READONLY( "gdl-0022", 0, SHA1(8e65d1821e0907ead1e81d97e4685a01e24b2053) )
ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF)
//PIC16C622A (317-5096-JPN)
@@ -7142,7 +7157,7 @@ ROM_START( senkoo )
ROM_LOAD("317-5107-jpn.pic", 0x00, 0x4000, CRC(6bc3fad0) SHA1(6d5196265232f4c0715a97acc84d6f7376056894) )
ROM_END
-ROM_START( ss2005 )
+ROM_START( ss2005o )
NAOMIGD_BIOS
NAOMI_DEFAULT_EEPROM
@@ -7158,12 +7173,15 @@ ROM_START( ss2005 )
ROM_LOAD("317-5108-jpn.pic", 0x00, 0x4000, CRC(4fa7dede) SHA1(f9011e951378364a12512d398f76be174dccce69) )
ROM_END
-ROM_START( ss2005a )
+ROM_START( ss2005 )
NAOMIGD_BIOS
NAOMI_DEFAULT_EEPROM
+ ROM_REGION( 0x80, "mie_eeprom", 0 )
+ ROM_LOAD("ss2005-default-eeprom.bin", 0, 0x80, CRC(26bd9003) SHA1(f35551c96c49eef5473ff50a94b82ef5110b0f10))
+
DISK_REGION( "gdrom" )
- DISK_IMAGE_READONLY( "gdl-0031a", 0,BAD_DUMP SHA1(6091525845fc2042ed43cae5a1b60c603e16cf97) )
+ DISK_IMAGE_READONLY( "gdl-0031a", 0, SHA1(6702a3a67c3e40217e382578e4eb8d0ddc5dbbe4) )
ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF)
//PIC16C622A (317-5108-JPN)
@@ -7171,7 +7189,7 @@ ROM_START( ss2005a )
ROM_LOAD("317-5108-jpn.pic", 0x00, 0x4000, CRC(4fa7dede) SHA1(f9011e951378364a12512d398f76be174dccce69) )
ROM_END
-ROM_START( radirgy )
+ROM_START( radirgyo )
NAOMIGD_BIOS
NAOMI_DEFAULT_EEPROM
@@ -7187,7 +7205,7 @@ ROM_START( radirgy )
ROM_LOAD("317-5110-jpn.pic", 0x00, 0x4000, CRC(829d06e2) SHA1(c53d791e82cc75f2bcd49575185c89d448fed672) )
ROM_END
-ROM_START( radirgya )
+ROM_START( radirgy )
NAOMIGD_BIOS
NAOMI_DEFAULT_EEPROM
@@ -7266,7 +7284,7 @@ ROM_START( jingystm )
NAOMI_DEFAULT_EEPROM
DISK_REGION( "gdrom" )
- DISK_IMAGE_READONLY( "gdl-0037", 0, BAD_DUMP SHA1(99ffe2987e3002b3871daf276d2be45f2e9c6e74) )
+ DISK_IMAGE_READONLY( "gdl-0037", 0, SHA1(864f3b16409730f80b132bee0ef497257bc15128) )
ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF)
//PIC16C622A (317-5122-JPN)
@@ -7287,7 +7305,7 @@ ROM_START( senkosp )
ROM_LOAD("317-5123-com.pic", 0x00, 0x4000, CRC(7340df6e) SHA1(003a94e986335e959f9b1e8905fea8cbfdb5b2a1) )
ROM_END
-ROM_START( meltyb )
+ROM_START( meltybo )
NAOMIGD_BIOS
NAOMI_DEFAULT_EEPROM
@@ -7300,7 +7318,7 @@ ROM_START( meltyb )
ROM_LOAD("317-5124-jpn.pic", 0x00, 0x4000, CRC(ad162bfa) SHA1(0e9740ba65a724eb7cd70fb897e5cd9ac17aa55c) )
ROM_END
-ROM_START( meltyba )
+ROM_START( meltyb )
NAOMIGD_BIOS
NAOMI_DEFAULT_EEPROM
@@ -7496,39 +7514,11 @@ ROM_START( monkeyba )
ROM_LOAD("317-0307-com.pic", 0x00, 0x4000, CRC(4046de19) SHA1(8adda9f223e926148b36744bbbaa89557544a229) )
ROM_END
-/*
-This is the I/O board used for Dynamic Golf which is
-located under the panel.
-It must be connected to the normal I/O board with a USB cable.
-
-PCB Layout
-----------
-
-837-13938
-|--------------------|
-|CN2 CN1 |
-| |
-| |-----| |
-| | IC2 | |
-| CN3 | | |
-| |-----| IC3|
-|LED CN4 IC4 |
-|--------------------|
-Notes:
- CN1 - 24 pin connector. not used
- CN2 - 4 pin connector used for 5 volt power input
- CN3 - USB connector type B
- CN4 - 16 pin connector used for buttons and trackball
- IC1 - HC240 logic IC (SOIC20)
- IC2 - Sega 315-6146 custom IC (QFP176)
- IC3 - 27C512 EPROM with label 'EPR-22084' (DIP28)
- IC4 - HC4020 logic IC (SOIC16)
-*/
-
ROM_START( dygolf )
NAOMIGD_BIOS
NAOMI_DEFAULT_EEPROM
+ // 837-13938 JVS I/O
ROM_REGION( 0x10000, "io_board", 0)
ROM_LOAD("epr-22084.ic3", 0x0000, 0x10000, CRC(18cf58bb) SHA1(1494f8215231929e41bbe2a133658d01882fbb0f) )
@@ -7627,7 +7617,7 @@ ROM_START( keyboard )
ROM_LOAD("keyboard-default-eeprom.bin", 0, 0x80, CRC(9262fc90) SHA1(6080c029967932cace361d673bf04c805276a7de))
DISK_REGION( "gdrom" )
- DISK_IMAGE_READONLY( "gds-0017", 0, BAD_DUMP SHA1(fb86eff3ef38de7fd78cfde897d5332d2092c172) )
+ DISK_IMAGE_READONLY( "gds-0017", 0, SHA1(89457044e9dbed792d4081b85f24d75d0f4d75a7) )
ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF)
ROM_LOAD("317-0323-com.pic", 0x00, 0x4000, CRC(c8854ef2) SHA1(b43b956df142fe4167dcc2ec805921e25bba180f) )
@@ -7687,7 +7677,7 @@ ROM_START( luptype )
NAOMI_DEFAULT_EEPROM
DISK_REGION( "gdrom" )
- DISK_IMAGE_READONLY( "gds-0021a", 0, BAD_DUMP SHA1(15c6f9434494a31693cbb8e33da36e0e8a8f7c62) )
+ DISK_IMAGE_READONLY( "gds-0021a", 0, SHA1(48eee537035359745c697cc511a2639da467af91) )
ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF)
//PIC16C622A (317-0332-JPN)
@@ -7825,7 +7815,7 @@ ROM_END
*
*********************************************/
-ROM_START( vstrik3c )
+ROM_START( vstrik3co )
NAOMI2_BIOS
NAOMI_DEFAULT_EEPROM
@@ -7848,7 +7838,7 @@ ROM_START( vstrik3c )
ROM_PARAMETER( ":rom_board:segam2crypt:key", "2cee834a" )
ROM_END
-ROM_START( vstrik3cb )
+ROM_START( vstrik3c )
NAOMI2_BIOS
NAOMI_DEFAULT_EEPROM
@@ -8017,7 +8007,7 @@ ROM_START( hopper )
ROM_PARAMETER( ":rom_board:key", "1e5bb0cd" )
ROM_END
-ROM_START( clubkrte )
+ROM_START( clubkrto )
NAOMI2_BIOS
NAOMI_DEFAULT_EEPROM
@@ -8039,12 +8029,12 @@ ROM_START( clubkrte )
ROM_PARAMETER( ":rom_board:segam2crypt:key", "2ce7d742" )
ROM_END
-ROM_START( clubkrtd )
+ROM_START( clubkrtc )
NAOMI2_BIOS
NAOMI_DEFAULT_EEPROM
ROM_REGION( 0xb800000, "rom_board", ROMREGION_ERASEFF)
- ROM_LOAD( "epr-23704d.ic22",0x0000000, 0x0400000, CRC(60ac770c) SHA1(2f1688f2046e794d1c1e06912b46c1573d934608) )
+ ROM_LOAD( "epr-23704c.ic22",0x0000000, 0x0400000, CRC(45ea13c3) SHA1(48cddba0506010dc705f04457f784a1d455ef3a6) )
ROM_LOAD( "mpr-23693.ic1", 0x0800000, 0x1000000, CRC(28995764) SHA1(a1457f9935dde2e5aaa5ef245c736c0f2f8c74b7) )
ROM_LOAD( "mpr-23694.ic2", 0x1800000, 0x1000000, CRC(37d30111) SHA1(4c07df8cd548cac79d48709e61f692d762471f8f) )
ROM_LOAD( "mpr-23695.ic3", 0x2800000, 0x1000000, CRC(41ac1510) SHA1(01b889b627fdfc1f12a0c84fcc36debdfb1cf377) )
@@ -8061,12 +8051,12 @@ ROM_START( clubkrtd )
ROM_PARAMETER( ":rom_board:segam2crypt:key", "2ce7d742" )
ROM_END
-ROM_START( clubkrtc )
+ROM_START( clubkrt )
NAOMI2_BIOS
NAOMI_DEFAULT_EEPROM
ROM_REGION( 0xb800000, "rom_board", ROMREGION_ERASEFF)
- ROM_LOAD( "epr-23704c.ic22",0x0000000, 0x0400000, CRC(45ea13c3) SHA1(48cddba0506010dc705f04457f784a1d455ef3a6) )
+ ROM_LOAD( "epr-23704d.ic22",0x0000000, 0x0400000, CRC(60ac770c) SHA1(2f1688f2046e794d1c1e06912b46c1573d934608) )
ROM_LOAD( "mpr-23693.ic1", 0x0800000, 0x1000000, CRC(28995764) SHA1(a1457f9935dde2e5aaa5ef245c736c0f2f8c74b7) )
ROM_LOAD( "mpr-23694.ic2", 0x1800000, 0x1000000, CRC(37d30111) SHA1(4c07df8cd548cac79d48709e61f692d762471f8f) )
ROM_LOAD( "mpr-23695.ic3", 0x2800000, 0x1000000, CRC(41ac1510) SHA1(01b889b627fdfc1f12a0c84fcc36debdfb1cf377) )
@@ -8231,12 +8221,12 @@ ROM_START( vstrik3 )
ROM_LOAD("317-0304-com.bin", 0x00, 0x4000, CRC(8e82d17a) SHA1(141a4d492b13bbb222dfbe7a1ad296b548d12a3b) )
ROM_END
-ROM_START( vf4 )
+ROM_START( vf4o )
NAOMI2_BIOS
NAOMI_DEFAULT_EEPROM
DISK_REGION( "gdrom" )
- DISK_IMAGE_READONLY( "gds-0012", 0, BAD_DUMP SHA1(c34588f59c6091cd1c3ef235171dad8d5247e707) )
+ DISK_IMAGE_READONLY( "gds-0012", 0, SHA1(da231483b5351ab9f9eb0e6e8cd6c2a26d1f8f72) )
ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF)
//PIC16C622A (317-0314-COM)
@@ -8259,7 +8249,7 @@ ROM_START( vf4b )
ROM_END
-ROM_START( vf4c )
+ROM_START( vf4 )
NAOMI2_BIOS
NAOMI_DEFAULT_EEPROM
@@ -8317,7 +8307,7 @@ ROM_START( initd )
NAOMI_DEFAULT_EEPROM
DISK_REGION( "gdrom" )
- DISK_IMAGE_READONLY( "gds-0020b", 0, BAD_DUMP SHA1(c0e901623ef4fcd97b7e4d29ae556e6f2e91b8ad) )
+ DISK_IMAGE_READONLY( "gds-0020b", 0, SHA1(08a594af2933144d341a299e3160d3c8281b7241) )
ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF)
//PIC16C622A (317-0331-JPN)
@@ -8406,7 +8396,7 @@ ROM_START( initdv2jo )
NAOMI_DEFAULT_EEPROM
DISK_REGION( "gdrom" )
- DISK_IMAGE_READONLY( "gds-0026", 0, BAD_DUMP SHA1(253acede106b7fbf49e24458e7fda868720e9549) )
+ DISK_IMAGE_READONLY( "gds-0026", 0, SHA1(07d1dda89e7f5b5377888feaef1dff32c18e63f1) )
ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF)
//PIC16C622A (317-0345-JPN)
@@ -9030,16 +9020,16 @@ ROM_END
*/
-#define GAME_FLAGS (GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING)
+#define GAME_FLAGS (MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_SOUND|MACHINE_NOT_WORKING)
/* Main board and game specific BIOS */
-/* Naomi */ GAME( 1998, naomi, 0, naomi, naomi, naomi_state, naomi, ROT0, "Sega", "Naomi Bios", GAME_FLAGS|GAME_IS_BIOS_ROOT )
-/* game */ GAME( 1998, hod2bios, 0, naomi, naomi, driver_device, 0, ROT0, "Sega", "Naomi House of the Dead 2 Bios", GAME_FLAGS|GAME_IS_BIOS_ROOT )
-/* game */ GAME( 1999, f355dlx, 0, naomi, naomi, driver_device, 0, ROT0, "Sega", "Naomi Ferrari F355 Challenge (deluxe) Bios", GAME_FLAGS|GAME_IS_BIOS_ROOT )
-/* game */ GAME( 1999, f355bios, 0, naomi, naomi, driver_device, 0, ROT0, "Sega", "Naomi Ferrari F355 Challenge (twin) Bios", GAME_FLAGS|GAME_IS_BIOS_ROOT )
-/* game */ GAME( 1999, airlbios, 0, naomi, naomi, driver_device, 0, ROT0, "Sega", "Naomi Airline Pilots (deluxe) Bios", GAME_FLAGS|GAME_IS_BIOS_ROOT )
-/* Naomi2*/ GAME( 2001, naomi2, 0, naomi, naomi, driver_device, 0, ROT0, "Sega", "Naomi 2 Bios", GAME_FLAGS|GAME_IS_BIOS_ROOT )
-/* GDROM */ GAME( 2001, naomigd, 0, naomi, naomi, naomi_state, naomi, ROT0, "Sega", "Naomi GD-ROM Bios", GAME_FLAGS|GAME_IS_BIOS_ROOT )
+/* 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) 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 )
+/* 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", GAME_FLAGS ) /* specific BIOS "hod2bios" needed */
@@ -9090,6 +9080,8 @@ ROM_END
/* 0043 */ GAME( 2000, crackndj, naomi, naomim2, crackndj,naomi_state, naomi, ROT0, "Sega", "Crackin' DJ", GAME_FLAGS )
/* 0044 */ GAME( 2000, csmasho, csmash, naomim2, naomi, naomi_state, naomi, ROT0, "Sega", "Cosmic Smash (JPN, USA, EXP, KOR, AUS)", GAME_FLAGS )
/* 0044 */ GAME( 2000, csmash, naomi, naomim2, naomi, naomi_state, naomi, ROT0, "Sega", "Cosmic Smash (JPN, USA, EXP, KOR, AUS) (Rev A)", GAME_FLAGS )
+// 0045 1999, "FortyFive / Sega", "Tokio Bus Guide"
+// 0045 1999, "FortyFive / Sega", "Tokio Bus Guide (Rev A)"
/* 0047 */ GAME( 2000, samba2k, naomi, naomim2, naomi, naomi_state, naomi, ROT0, "Sega", "Samba de Amigo ver. 2000", GAME_FLAGS )
/* 0048 */ GAME( 2001, alienfnt, naomi, naomim2, naomi, naomi_state, naomi, ROT0, "Sega", "Alien Front (Rev T)", GAME_FLAGS )
/* 0048 */ GAME( 2001, alienfnta,alienfnt, naomim2, naomi, naomi_state, naomi, ROT0, "Sega", "Alien Front (Rev A)", GAME_FLAGS )
@@ -9097,7 +9089,7 @@ ROM_END
/* 0054 */ GAME( 2000, starhrse, naomi, naomim2, naomi, naomi_state, naomi, ROT0, "Sega", "Star Horse (big screens)", GAME_FLAGS )
/* 0055 */ GAME( 2000, starhrct, naomi, naomim2, naomi, naomi_state, naomi, ROT0, "Sega", "Star Horse (server)", GAME_FLAGS )
/* 0056 */ GAME( 2000, starhrcl, naomi, naomim2, naomi, naomi_state, naomi, ROT270,"Sega", "Star Horse (satellite)", GAME_FLAGS )
-/* 0064 */ GAME( 2001, wrungp, naomi, naomim2, naomi, naomi_state, naomi, ROT0, "Sega", "Wave Runner GP", GAME_FLAGS )
+/* 0064 */ GAME( 2001, wrungp, naomi, naomim2, naomi, naomi_state, naomi, ROT0, "CRI / Sega", "Wave Runner GP", GAME_FLAGS )
/* 0068 */ GAME( 2001, crakndj2, naomi, naomim2, crackndj,naomi_state, naomi, ROT0, "Sega", "Crackin' DJ Part 2", GAME_FLAGS )
/* 0073 */ GAME( 2001, inunoos, naomi, naomim2, naomi, naomi_state, naomi, ROT0, "Sega", "Inu No Osanpo / Dog Walking (Rev A)", GAME_FLAGS )
/* 0083 */ GAME( 2001, derbyoc2, naomi, naomim2, naomi, naomi_state, naomi, ROT0, "Sega", "Derby Owners Club II (JPN, USA, EXP, KOR, AUS) (Rev B)", GAME_FLAGS )
@@ -9113,13 +9105,13 @@ ROM_END
/* 0140 */ GAME( 2004, kick4csh, naomi, naomim1, naomi, naomi_state, kick4csh,ROT0, "Sega", "Kick '4' Cash", GAME_FLAGS )
/* 0150 */ GAME( 2003, mtkob2, naomi, naomim1, naomi, naomi_state, naomi, ROT0, "Sega", "Mushiking The King Of Beetle 2K3 2nd", GAME_FLAGS )
/* 0158 */ GAME( 2005, mushi2k5, naomi, naomim2, naomi, naomi_state, naomi, ROT0, "Sega", "Mushiking The King Of Beetle 2K5 1st", GAME_FLAGS )
-/* 0164 */ GAME( 2005, mushik2e, naomi, naomim4, naomi, naomi_state, naomi, ROT0, "Sega", "MushiKing II - The King Of Beetle II ENG (Ver. 1.001)", GAME_FLAGS )
-/* 0164 */ GAME( 2005, mushi2ea, mushik2e, naomim4, naomi, naomi_state, naomi, ROT0, "Sega", "MushiKing II - The King Of Beetle II ENG (Ver. 2.001)", GAME_FLAGS )
+/* 0164 */ GAME( 2005, mushi2eo, mushik2e, naomim4, naomi, naomi_state, naomi, ROT0, "Sega", "MushiKing II - The King Of Beetle II ENG (Ver. 1.001)", GAME_FLAGS )
+/* 0164 */ GAME( 2005, mushik2e, naomi, naomim4, naomi, naomi_state, naomi, ROT0, "Sega", "MushiKing II - The King Of Beetle II ENG (Ver. 2.001)", GAME_FLAGS )
/* 0166 */ GAME( 2006, zunou, naomi, naomim4, naomi, naomi_state, naomi, ROT0, "Sega", "Touch De Zunou (Rev A)", GAME_FLAGS )
-/* 0170 */ GAME( 2007, manicpnc, naomi, naomim4, naomi, naomi_state, naomi, ROT0, "Sega", "Manic Panic Ghosts!", GAME_FLAGS )
-/* 0170 */ GAME( 2007, pokasuka, manicpnc, naomim4, naomi, naomi_state, naomi, ROT0, "Sega", "Pokasuka Ghost", GAME_FLAGS )
+/* 0170-01*/GAME( 2007,manicpnc, naomi, naomim4, naomi, naomi_state, naomi, ROT0, "Sega", "Manic Panic Ghosts!", GAME_FLAGS )
+/* 0170 */ GAME( 2007, pokasuka, manicpnc, naomim4, naomi, naomi_state, naomi, ROT0, "Sega", "Pokasuka Ghost!", GAME_FLAGS )
/* 0175 */ GAME( 2007, asndynmt, naomi, naomim4, naomi, naomi_state, naomi, ROT0, "Sega", "Asian Dynamite", GAME_FLAGS )
-/* 0177 */ GAME( 2007, rhytngk, naomi, naomim4, naomi, naomi_state, naomi, ROT0, "Sega/Nintendo", "Rhythm Tengoku", GAME_FLAGS )
+/* 0177 */ GAME( 2007, rhytngk, naomi, naomim4, naomi, naomi_state, naomi, ROT0, "Sega / Nintendo", "Rhythm Tengoku", GAME_FLAGS )
/* 0186 */ GAME( 2009, starhrpr, naomi, naomim4, naomi, naomi_state, naomi, ROT270,"Sega", "Star Horse Progress Returns (satellite)", GAME_FLAGS )
// 00xx Mayjinsen (Formation Battle in May) - prototype, never released
@@ -9128,11 +9120,11 @@ GAME( 2003, puyofevp, naomi, naomim1, naomi, naomi_state, naomi, ROT0, "Sega", "
/* 840-xxxxx (Sega Naomi 2 cart games) */
/* 0046 */ GAME( 2001, wldrider, naomi2, naomi2m2, naomi, naomi_state, naomi2, ROT0, "Sega", "Wild Riders (JPN, USA, EXP, KOR, AUS)", GAME_FLAGS )
-/* 0061 */ GAME( 2001, vstrik3c, naomi2, naomi2m2, naomi, naomi_state, naomi2, ROT0, "Sega", "Virtua Striker 3 (USA, EXP, KOR, AUS)", GAME_FLAGS )
-/* 0061 */ GAME( 2001, vstrik3cb,vstrik3c,naomi2m2, naomi, naomi_state, naomi2, ROT0, "Sega", "Virtua Striker 3 (USA, EXP, KOR, AUS) (Rev B)", GAME_FLAGS )
-/* 0062 */ GAME( 2001, clubkrte, naomi2, naomi2m2, naomi, naomi_state, naomi2, ROT0, "Sega", "Club Kart: European Session", GAME_FLAGS )
-/* 0062 */ GAME( 2001, clubkrtd, clubkrte,naomi2m2, naomi, naomi_state, naomi2, ROT0, "Sega", "Club Kart: European Session (Rev D)", GAME_FLAGS )
-/* 0062 */ GAME( 2001, clubkrtc, clubkrte,naomi2m2, naomi, naomi_state, naomi2, ROT0, "Sega", "Club Kart: European Session (Rev C)", GAME_FLAGS )
+/* 0061 */ GAME( 2001, vstrik3co,vstrik3c,naomi2m2, naomi, naomi_state, naomi2, ROT0, "Sega", "Virtua Striker 3 (USA, EXP, KOR, AUS)", GAME_FLAGS )
+/* 0061 */ GAME( 2001, vstrik3c, naomi2, naomi2m2, naomi, naomi_state, naomi2, ROT0, "Sega", "Virtua Striker 3 (USA, EXP, KOR, AUS) (Rev B)", GAME_FLAGS )
+/* 0062 */ GAME( 2001, clubkrto, clubkrt, naomi2m2, naomi, naomi_state, naomi2, ROT0, "Sega", "Club Kart: European Session", GAME_FLAGS )
+/* 0062 */ GAME( 2001, clubkrtc, clubkrt, naomi2m2, naomi, naomi_state, naomi2, ROT0, "Sega", "Club Kart: European Session (Rev C)", GAME_FLAGS )
+/* 0062 */ GAME( 2001, clubkrt, naomi2, naomi2m2, naomi, naomi_state, naomi2, ROT0, "Sega", "Club Kart: European Session (Rev D)", GAME_FLAGS )
/* 0080 */ GAME( 2002, vf4cart, naomi2, naomi2m2, naomi, naomi_state, naomi2, ROT0, "Sega", "Virtua Fighter 4 (Cartridge)", GAME_FLAGS )
/* 0087 */ GAME( 2002, kingrt66, naomi2, naomi2m2, naomi, naomi_state, naomi2, ROT0, "Sega", "The King of Route 66 (Rev A)", GAME_FLAGS )
/* 0095 */ GAME( 2002, soulsurf, naomi2, naomi2m2, naomi, naomi_state, naomi2, ROT0, "Sega", "Soul Surfer (Rev A)", GAME_FLAGS )
@@ -9167,25 +9159,25 @@ GAME( 2003, puyofevp, naomi, naomim1, naomi, naomi_state, naomi, ROT0, "Sega", "
/* 0058 */ GAME( 2008, ausfache, naomi, naomim4, naomi, naomi_state, naomi, ROT0, "Subtle Style", "Akatsuki Blitzkampf Ausf Achse", GAME_FLAGS )
/* 0059 */ GAME( 2008, illvelo, naomi, naomim4, naomi, naomi_state, naomi, ROT270,"Milestone", "Illvelo (Illmatic Envelope)", GAME_FLAGS )
/* 0060 */ GAME( 2008, mamonoro, naomi, naomim4, naomi, naomi_state, naomi, ROT270,"G.Rev", "Mamoru-kun wa Norowarete Shimatta!", GAME_FLAGS )
-/* 0061 */ GAME( 2008, mbaa, naomi, naomim4, naomi, naomi_state, naomi, ROT0, "Type-Moon/Ecole", "Melty Blood Actress Again", GAME_FLAGS )
-/* 0061 */ GAME( 2008, mbaaa, mbaa, naomim4, naomi, naomi_state, naomi, ROT0, "Type-Moon/Ecole", "Melty Blood Actress Again Version A (Rev A)", GAME_FLAGS )
+/* 0061 */ GAME( 2008, mbaao, mbaa, naomim4, naomi, naomi_state, naomi, ROT0, "Type-Moon/Ecole", "Melty Blood Actress Again", GAME_FLAGS )
+/* 0061 */ GAME( 2008, mbaa, naomi, naomim4, naomi, naomi_state, naomi, ROT0, "Type-Moon/Ecole", "Melty Blood Actress Again Version A (Rev A)", GAME_FLAGS )
/* 0062 */ GAME( 2009, radirgyn, naomi, naomim4, naomi, naomi_state, naomi, ROT0, "Milestone", "Radirgy Noa", GAME_FLAGS )
/* HMG016007 */ GAME( 2001,hmgeo,naomi, naomim2, naomi, naomi_state, naomi, ROT0, "Capcom", "Heavy Metal Geomatrix (JPN, USA, EUR, ASI, AUS) (Rev B)", GAME_FLAGS )
/* Cart games on Namco custom ROM board */
-/* 25209801 */ GAME( 2000, wldkicks, naomi, naomim2,naomi, naomi_state, naomi, ROT0, "Namco", "World Kicks (WK2 Ver. A)", GAME_FLAGS )
-/* 25209801 */ GAME( 2000, wldkicksa,wldkicks,naomim2,naomi, naomi_state, naomi, ROT0, "Namco", "World Kicks (WK3 Ver. A)", GAME_FLAGS )
-/* 25349801 */ GAME( 2000, toukon4, naomi, naomim2,naomi, naomi_state, naomi, ROT0, "Namco", "Shin Nihon Pro Wrestling Toukon Retsuden 4 Arcade Edition (TRF1 Ver. A)", GAME_FLAGS )
-/* 25469801 */ GAME( 2000, ninjaslt1,ninjaslt,naomim2,naomi, naomi_state, naomi, ROT0, "Namco", "Ninja Assault (NJA1 Ver. A)", GAME_FLAGS )
-/* 25469801 */ GAME( 2000, ninjaslt2,ninjaslt,naomim2,naomi, naomi_state, naomi, ROT0, "Namco", "Ninja Assault (NJA2 Ver. A)", GAME_FLAGS )
-/* 25469801 */ GAME( 2000, ninjaslt, naomi, naomim2,naomi, naomi_state, naomi, ROT0, "Namco", "Ninja Assault (NJA3 Ver. A)", GAME_FLAGS )
-/* 25469801 */ GAME( 2000, ninjaslt4,ninjaslt,naomim2,naomi, naomi_state, naomi, ROT0, "Namco", "Ninja Assault (NJA4 Ver. A)", GAME_FLAGS )
+/* 25209801 */ GAME( 2000, wldkicksa,wldkicks,naomim2,naomi, naomi_state, naomi, ROT0, "Namco", "World Kicks (Asia, WK2 Ver.A)", GAME_FLAGS )
+/* 25209801 */ GAME( 2000, wldkicks, naomi, naomim2,naomi, naomi_state, naomi, ROT0, "Namco", "World Kicks (US, WK3 Ver.A)", GAME_FLAGS )
+/* 25349801 */ GAME( 2000, toukon4, naomi, naomim2,naomi, naomi_state, naomi, ROT0, "Namco", "Shin Nihon Pro Wrestling Toukon Retsuden 4 Arcade Edition (Japan, TRF1 Ver.A)", GAME_FLAGS )
+/* 25469801 */ GAME( 2000, ninjasltj,ninjaslt,naomim2,naomi, naomi_state, naomi, ROT0, "Namco", "Ninja Assault (Japan, NJA1 Ver.A)", GAME_FLAGS )
+/* 25469801 */ GAME( 2000, ninjaslta,ninjaslt,naomim2,naomi, naomi_state, naomi, ROT0, "Namco", "Ninja Assault (Asia, NJA2 Ver.A)", GAME_FLAGS )
+/* 25469801 */ GAME( 2000, ninjasltu,ninjaslt,naomim2,naomi, naomi_state, naomi, ROT0, "Namco", "Ninja Assault (US, NJA3 Ver.A)", GAME_FLAGS )
+/* 25469801 */ GAME( 2000, ninjaslt, naomi, naomim2,naomi, naomi_state, naomi, ROT0, "Namco", "Ninja Assault (World, NJA4 Ver.A)", GAME_FLAGS )
/* Note: the game's full name is exactly "World Kicks PCB", have different s/n as well */
-/* 25509801 */ GAME( 2000, wldkicksb,wldkicks,naomim2,naomi, naomi_state, naomi, ROT0, "Namco", "World Kicks PCB (WKC1 Ver. A)", GAME_FLAGS )
-/* 25709801 */ GAME( 2001, gunsur2, naomi, naomim2,naomi, naomi_state, naomi, ROT0, "Capcom / Namco", "Gun Survivor 2 Biohazard Code: Veronica (BHF1 Ver. E)", GAME_FLAGS )
-/* 25709801 */ GAME( 2001, gunsur2e, gunsur2, naomim2,naomi, naomi_state, naomi, ROT0, "Capcom / Namco", "Gun Survivor 2 Biohazard Code: Veronica (BHF2 Ver. E)", GAME_FLAGS )
-/* 25869812 */ GAME( 2002, mazan, naomi, naomim2,naomi, naomi_state, naomi, ROT0, "Namco", "Mazan: Flash of the Blade (MAZ2 Ver. A)", GAME_FLAGS )
-/* 25869812 */ GAME( 2002, mazana, mazan, naomim2,naomi, naomi_state, naomi, ROT0, "Namco", "Mazan: Flash of the Blade (MAZ3 Ver. A)", GAME_FLAGS )
+/* 25509801 */ GAME( 2000, wldkicksj,wldkicks,naomim2,naomi, naomi_state, naomi, ROT0, "Namco", "World Kicks PCB (Japan, WKC1 Ver.A)", GAME_FLAGS )
+/* 25709801 */ GAME( 2001, gunsur2j, gunsur2, naomim2,naomi, naomi_state, naomi, ROT0, "Capcom / Namco", "Gun Survivor 2 Biohazard Code: Veronica (Japan, BHF1 Ver.E)", GAME_FLAGS )
+/* 25709801 */ GAME( 2001, gunsur2, naomi, naomim2,naomi, naomi_state, naomi, ROT0, "Capcom / Namco", "Gun Survivor 2 Biohazard Code: Veronica (Asia, BHF2 Ver.E)", GAME_FLAGS )
+/* 25869812 */ GAME( 2002, mazana, mazan, naomim2,naomi, naomi_state, naomi, ROT0, "Namco", "Mazan: Flash of the Blade (Asia, MAZ2 Ver.A)", GAME_FLAGS )
+/* 25869812 */ GAME( 2002, mazan, naomi, naomim2,naomi, naomi_state, naomi, ROT0, "Namco", "Mazan: Flash of the Blade (US, MAZ3 Ver.A)", GAME_FLAGS )
/* GDS-xxxx (Sega GD-ROM games) */
/* 0001 */ GAME( 2000, confmiss, naomigd, naomigd, hotd2, naomi_state, naomigd, ROT0, "Sega", "Confidential Mission (GDS-0001)", GAME_FLAGS )
@@ -9202,10 +9194,10 @@ GAME( 2003, puyofevp, naomi, naomim1, naomi, naomi_state, naomi, ROT0, "Sega", "
/* 0009A */ GAME( 2001, dygolf, naomigd, naomigd, naomi, naomi_state, naomigd, ROT0, "Sega", "Dynamic Golf / Virtua Golf (Rev A) (GDS-0009A)", GAME_FLAGS )
/* 0010 */ GAME( 2001, wsbbgd, naomigd, naomigd, dybbnao, naomi_state, naomigd, ROT0, "Sega", "Super Major League / World Series Baseball (GDS-0010)", GAME_FLAGS )
/* 0011 */ GAME( 1999, vtennisg, naomigd, naomigd, naomi, naomi_state, naomigd, ROT0, "Sega", "Virtua Tennis / Power Smash (GDS-0011)", GAME_FLAGS )
-/* 0012 */ GAME( 2001, vf4, naomi2, naomi2gd, naomi, naomi_state, naomi2, ROT0, "Sega", "Virtua Fighter 4 (GDS-0012)", GAME_FLAGS )
+/* 0012 */ GAME( 2001, vf4o, vf4, naomi2gd, naomi, naomi_state, naomi2, ROT0, "Sega", "Virtua Fighter 4 (GDS-0012)", GAME_FLAGS )
// 0012A Virtua Fighter 4 (Rev A)
/* 0012B */ GAME( 2001, vf4b, vf4, naomi2gd, naomi, naomi_state, naomi2, ROT0, "Sega", "Virtua Fighter 4 (Rev B) (GDS-0012B)", GAME_FLAGS )
-/* 0012C */ GAME( 2001, vf4c, vf4, naomi2gd, naomi, naomi_state, naomi2, ROT0, "Sega", "Virtua Fighter 4 (Rev C) (GDS-0012C)", GAME_FLAGS )
+/* 0012C */ GAME( 2001, vf4, naomi2, naomi2gd, naomi, naomi_state, naomi2, ROT0, "Sega", "Virtua Fighter 4 (Rev C) (GDS-0012C)", GAME_FLAGS )
/* 0013 */ GAME( 2001, shaktmsp, naomigd, naomigd, shaktamb, naomi_state, naomigd, ROT0, "Sega", "Shakatto Tambourine Motto Norinori Shinkyoku Tsuika (2K1 SPR) (GDS-0013)", GAME_FLAGS )
/* 0014 */ GAME( 2001, beachspi, naomi2, naomi2gd, naomi, naomi_state, naomi2, ROT0, "Sega", "Beach Spikers (GDS-0014)", GAME_FLAGS )
// 0015 Virtua Tennis 2 / Power Smash 2
@@ -9273,8 +9265,8 @@ GAME( 2003, puyofevp, naomi, naomim1, naomi, naomi_state, naomi, ROT0, "Sega", "
/* 0002 */ GAME( 2001, sfz3ugd, naomigd, naomigd, naomi, naomi_state, sfz3ugd, ROT0, "Capcom", "Street Fighter Zero 3 Upper (GDL-0002)", GAME_FLAGS )
// 0003
/* 0004 */ GAME( 2001, cvsgd, naomigd, naomigd, naomi, naomi_state, naomigd, ROT0, "Capcom / SNK", "Capcom Vs. SNK Millennium Fight 2000 Pro (GDL-0004)", GAME_FLAGS )
-/* 0005 */ GAME( 2001, starseek,naomigd, naomigd, naomi, naomi_state, naomigd, ROT0, "G.Rev", "Doki Doki Idol Star Seeker (GDL-0005)", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND )
-/* 0006 */ GAME( 2001, gundmxgd,naomigd, naomigd, naomi, naomi_state, naomigd, ROT0, "Capcom", "Mobile Suit Gundam: Federation Vs. Zeon DX (GDL-0006)", GAME_FLAGS )
+/* 0005 */ GAME( 2001, starseek,naomigd, naomigd, naomi, naomi_state, naomigd, ROT0, "G.Rev", "Doki Doki Idol Star Seeker (GDL-0005)", MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_SOUND )
+/* 0006 */ GAME( 2001, gundmxgd,naomigd, naomigd, naomi, naomi_state, naomigd, ROT0, "Capcom", "Mobile Suit Gundam: Federation Vs. Zeon DX (GDL-0006)", GAME_FLAGS )
// 0007 Capcom Vs. SNK 2
/* 0007A */ GAME( 2001, cvs2gd, naomigd, naomigd, naomi, naomi_state, naomigd, ROT0, "Capcom / SNK", "Capcom Vs. SNK 2 Millionaire Fighting 2001 (Rev A) (GDL-0007A)", GAME_FLAGS )
// 0008 Capcom Vs. SNK 2 Mark Of The Millennium 2001 (Export)
@@ -9307,10 +9299,10 @@ GAME( 2003, puyofevp, naomi, naomim1, naomi, naomi_state, naomi, ROT0, "Sega", "
// 0029
/* 0030 */ GAME( 2005, senkoo, senko, naomigd, naomi, naomi_state, naomigd, ROT0, "G.Rev", "Senko No Ronde (GDL-0030)", GAME_FLAGS )
/* 0030A */ GAME( 2005, senko, naomigd, naomigd, naomi, naomi_state, naomigd, ROT0, "G.Rev", "Senko No Ronde (Rev A) (GDL-0030A)", GAME_FLAGS )
-/* 0031 */ GAME( 2005, ss2005, naomigd, naomigd, naomi, naomi_state, naomigd, ROT0, "Starfish", "Super Shanghai 2005 (GDL-0031)", GAME_FLAGS )
-/* 0031A */ GAME( 2005, ss2005a, ss2005, naomigd, naomi, naomi_state, naomigd, ROT0, "Starfish", "Super Shanghai 2005 (Rev A) (GDL-0031A)", GAME_FLAGS )
-/* 0032 */ GAME( 2005, radirgy, naomigd, naomigd, naomi, naomi_state, naomigd, ROT270, "Milestone", "Radirgy (GDL-0032)", GAME_FLAGS )
-/* 0032A */ GAME( 2005, radirgya,radirgy, naomigd, naomi, naomi_state, naomigd, ROT270, "Milestone", "Radirgy (Rev A) (GDL-0032A)", GAME_FLAGS )
+/* 0031 */ GAME( 2005, ss2005o, ss2005, naomigd, naomi, naomi_state, naomigd, ROT0, "Starfish", "Super Shanghai 2005 (GDL-0031)", GAME_FLAGS )
+/* 0031A */ GAME( 2005, ss2005, naomigd, naomigd, naomi, naomi_state, naomigd, ROT0, "Starfish", "Super Shanghai 2005 (Rev A) (GDL-0031A)", GAME_FLAGS )
+/* 0032 */ GAME( 2005, radirgyo,radirgy, naomigd, naomi, naomi_state, naomigd, ROT270, "Milestone", "Radirgy (GDL-0032)", GAME_FLAGS )
+/* 0032A */ GAME( 2005, radirgy, naomigd, naomigd, naomi, naomi_state, naomigd, ROT270, "Milestone", "Radirgy (Rev A) (GDL-0032A)", GAME_FLAGS )
// 0033 Guilty Gear XX Slash
/* 0033A */ GAME( 2005, ggxxsla, naomigd, naomigd, naomi, naomi_state, ggxxsla, ROT0,"Arc System Works","Guilty Gear XX Slash (Rev A) (GDL-0033A)", GAME_FLAGS )
/* 0034 */ GAME( 2006, kurucham,naomigd, naomigd, naomi, naomi_state, naomigd, ROT0, "Able", "Kurukuru Chameleon (GDL-0034)", GAME_FLAGS )
@@ -9319,8 +9311,8 @@ GAME( 2003, puyofevp, naomi, naomim1, naomi, naomi_state, naomi, ROT0, "Sega", "
/* 0036A */ GAME( 2006, trgheart,naomigd, naomigd, naomi, naomi_state, naomigd, ROT270, "Warashi", "Trigger Heart Exelica (Rev A) (GDL-0036A)", GAME_FLAGS )
/* 0037 */ GAME( 2006, jingystm,naomigd, naomigd, naomi, naomi_state, naomigd, ROT0, "Atrativa Japan", "Jingi Storm - The Arcade (GDL-0037)", GAME_FLAGS )
/* 0038 */ GAME( 2006, senkosp, naomigd, naomigd, naomi, naomi_state, naomigd, ROT0, "G.Rev", "Senko No Ronde Special (GDL-0038)", GAME_FLAGS )
-/* 0039 */ GAME( 2006, meltyb, naomigd, naomigd, naomi, naomi_state, naomigd, ROT0, "Ecole Software", "Melty Blood Act Cadenza Version B (GDL-0039)", GAME_FLAGS )
-/* 0039A */ GAME( 2006, meltyba, meltyb, naomigd, naomi, naomi_state, naomigd, ROT0, "Ecole Software", "Melty Blood Act Cadenza Version B2 (GDL-0039A)", GAME_FLAGS )
+/* 0039 */ GAME( 2006, meltybo, meltyb, naomigd, naomi, naomi_state, naomigd, ROT0, "Ecole Software", "Melty Blood Act Cadenza Version B (GDL-0039)", GAME_FLAGS )
+/* 0039A */ GAME( 2006, meltyb, naomigd, naomigd, naomi, naomi_state, naomigd, ROT0, "Ecole Software", "Melty Blood Act Cadenza Version B2 (GDL-0039A)", GAME_FLAGS )
/* 0040 */ GAME( 2006, karous, naomigd, naomigd, naomi, naomi_state, naomigd, ROT270, "Milestone", "Karous (GDL-0040)", GAME_FLAGS )
/* 0041 */ GAME( 2006, ggxxac, naomigd, naomigd, naomi, naomi_state, naomigd, ROT0,"Arc System Works","Guilty Gear XX Accent Core (GDL-0041)", GAME_FLAGS )
/* 0042 */ GAME( 2006, takoron, naomigd, naomigd, naomi, naomi_state, naomigd, ROT0, "Compile", "Noukone Puzzle Takoron (GDL-0042)", GAME_FLAGS )
@@ -9348,17 +9340,17 @@ GAME( 2003, puyofevp, naomi, naomim1, naomi, naomi_state, naomi, ROT0, "Sega", "
/* Atomiswave */
-GAME( 2001, awbios, 0, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Sammy", "Atomiswave Bios", GAME_FLAGS|GAME_IS_BIOS_ROOT )
+GAME( 2001, awbios, 0, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Sammy", "Atomiswave Bios", GAME_FLAGS|MACHINE_IS_BIOS_ROOT )
GAME( 2003, maxspeed, awbios, aw1c, aw1w, naomi_state, atomiswave, ROT0, "Sammy", "Maximum Speed", GAME_FLAGS )
GAME( 2003, sprtshot, awbios, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Sammy USA", "Sports Shooting USA", GAME_FLAGS )
-GAME( 2003, ggx15, awbios, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Arc System Works / Sammy", "Guilty Gear X ver. 1.5", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING )
+GAME( 2003, ggx15, awbios, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Arc System Works / Sammy", "Guilty Gear X ver. 1.5", MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_SOUND|MACHINE_NOT_WORKING )
GAME( 2003, demofist, awbios, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Polygon Magic / Dimps", "Demolish Fist", GAME_FLAGS )
-GAME( 2003, dolphin, awbios, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Sammy", "Dolphin Blue", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING )
-GAME( 2003, kov7sprt, awbios, aw2c, aw2c, naomi_state, atomiswave, ROT0, "IGS / Sammy", "Knights of Valour - The Seven Spirits", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING )
-GAME( 2003, ggisuka, awbios, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Arc System Works / Sammy", "Guilty Gear Isuka", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING )
-GAME( 2004, dirtypig, awbios, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Sammy", "Dirty Pigskin Football", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING )
-GAME( 2004, rumblef, awbios, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Sammy / Dimps", "The Rumble Fish", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING )
+GAME( 2003, dolphin, awbios, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Sammy", "Dolphin Blue", MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_SOUND|MACHINE_NOT_WORKING )
+GAME( 2003, kov7sprt, awbios, aw2c, aw2c, naomi_state, atomiswave, ROT0, "IGS / Sammy", "Knights of Valour - The Seven Spirits", MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_SOUND|MACHINE_NOT_WORKING )
+GAME( 2003, ggisuka, awbios, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Arc System Works / Sammy", "Guilty Gear Isuka", MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_SOUND|MACHINE_NOT_WORKING )
+GAME( 2004, dirtypig, awbios, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Sammy", "Dirty Pigskin Football", MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_SOUND|MACHINE_NOT_WORKING )
+GAME( 2004, rumblef, awbios, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Sammy / Dimps", "The Rumble Fish", MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_SOUND|MACHINE_NOT_WORKING )
GAME( 2004, rangrmsn, awbios, aw2c, aw1w, naomi_state, atomiswave, ROT0, "Sammy", "Ranger Mission", GAME_FLAGS )
GAME( 2004, salmankt, awbios, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Sammy", "Salary Man Kintarou", GAME_FLAGS )
GAME( 2004, ftspeed, awbios, aw1c, aw1w, naomi_state, atomiswave, ROT0, "Sammy", "Faster Than Speed", GAME_FLAGS )
@@ -9373,7 +9365,11 @@ GAME( 2005, fotns, awbios, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Arc
GAME( 2005, kofnw, awbios, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Sammy / SNK Playmore", "The King of Fighters Neowave", GAME_FLAGS )
GAME( 2005, kofnwj, kofnw, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Sammy / SNK Playmore", "The King of Fighters Neowave (Japan)", GAME_FLAGS )
GAME( 2005, xtrmhunt, awbios, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Sammy", "Extreme Hunting", GAME_FLAGS )
-GAME( 2006, mslug6, awbios, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Sega / SNK Playmore", "Metal Slug 6", GAME_IMPERFECT_GRAPHICS|GAME_IMPERFECT_SOUND|GAME_NOT_WORKING )
+GAME( 2006, mslug6, awbios, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Sega / SNK Playmore", "Metal Slug 6", MACHINE_IMPERFECT_GRAPHICS|MACHINE_IMPERFECT_SOUND|MACHINE_NOT_WORKING )
GAME( 2006, xtrmhnt2, awbios, aw2c, aw2c, naomi_state, xtrmhnt2, ROT0, "Sega", "Extreme Hunting 2", GAME_FLAGS )
GAME( 2008, claychal, awbios, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Sega", "Sega Clay Challenge", GAME_FLAGS )
GAME( 2009, basschal, awbios, aw2c, aw2c, naomi_state, atomiswave, ROT0, "Sega", "Sega Bass Fishing Challenge", GAME_FLAGS )
+
+#if (defined(__MINGW32__) && (__GNUC__ >= 5))
+#pragma GCC diagnostic pop
+#endif
diff --git a/src/mess/drivers/nascom1.c b/src/mame/drivers/nascom1.c
index 135a5d6b083..216d9de8e64 100644
--- a/src/mess/drivers/nascom1.c
+++ b/src/mame/drivers/nascom1.c
@@ -771,6 +771,6 @@ ROM_END
//**************************************************************************
// 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", GAME_NO_SOUND_HW )
-COMP( 1979, nascom2, 0, 0, nascom2, nascom2, nascom2_state, nascom2, "Nascom Microcomputers", "Nascom 2", GAME_NO_SOUND_HW )
-COMP( 1980, nascom2c, nascom2, 0, nascom2c, nascom2c, nascom2_state, nascom2c, "Nascom Microcomputers", "Nascom 2 (CP/M)", GAME_NO_SOUND_HW )
+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.c b/src/mame/drivers/naughtyb.c
index 0b974aa43e7..08c2e7e23f6 100644
--- a/src/mame/drivers/naughtyb.c
+++ b/src/mame/drivers/naughtyb.c
@@ -832,7 +832,7 @@ DRIVER_INIT_MEMBER(naughtyb_state,popflame)
m_maincpu->space(AS_PROGRAM).install_read_handler(0x9090, 0x9090, read8_delegate(FUNC(naughtyb_state::popflame_protection_r),this));
m_maincpu->space(AS_PROGRAM).install_write_handler(0xb000, 0xb0ff, write8_delegate(FUNC(naughtyb_state::popflame_protection_w),this));
-
+
save_item(NAME(m_popflame_prot_seed));
save_item(NAME(m_r_index));
save_item(NAME(m_prot_count));
@@ -864,20 +864,20 @@ DRIVER_INIT_MEMBER(naughtyb_state,trvmstr)
{
/* install questions' handlers */
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc000, 0xc002, read8_delegate(FUNC(naughtyb_state::trvmstr_questions_r),this), write8_delegate(FUNC(naughtyb_state::trvmstr_questions_w),this));
-
+
save_item(NAME(m_question_offset));
}
-GAME( 1982, naughtyb, 0, naughtyb, naughtyb, driver_device, 0, ROT90, "Jaleco", "Naughty Boy", GAME_SUPPORTS_SAVE )
-GAME( 1982, naughtyba,naughtyb, naughtyb, naughtyb, driver_device, 0, ROT90, "bootleg", "Naughty Boy (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1982, naughtybc,naughtyb, naughtyb, naughtyb, driver_device, 0, ROT90, "Jaleco (Cinematronics license)", "Naughty Boy (Cinematronics)", GAME_SUPPORTS_SAVE )
-GAME( 1982, popflame, 0, popflame, naughtyb, naughtyb_state, popflame, ROT90, "Jaleco", "Pop Flamer (protected)", GAME_SUPPORTS_SAVE )
-GAME( 1982, popflamea,popflame, popflame, naughtyb, driver_device, 0, ROT90, "Jaleco", "Pop Flamer (not protected)", GAME_SUPPORTS_SAVE )
-GAME( 1982, popflameb,popflame, popflame, naughtyb, driver_device, 0, ROT90, "Jaleco", "Pop Flamer (hack?)", GAME_SUPPORTS_SAVE )
-GAME( 1982, popflamen,popflame, naughtyb, naughtyb, driver_device, 0, ROT90, "Jaleco", "Pop Flamer (bootleg on Naughty Boy PCB)", GAME_SUPPORTS_SAVE )
-GAME( 1985, trvmstr, 0, naughtyb, trvmstr, naughtyb_state, trvmstr, ROT90, "Enerdyne Technologies Inc.", "Trivia Master (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1985, trvmstra, trvmstr, naughtyb, trvmstr, naughtyb_state, trvmstr, ROT90, "Enerdyne Technologies Inc.", "Trivia Master (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1985, trvmstrb, trvmstr, naughtyb, trvmstr, naughtyb_state, trvmstr, ROT90, "Enerdyne Technologies Inc.", "Trivia Master (set 3)", GAME_SUPPORTS_SAVE )
-GAME( 1985, trvmstrc, trvmstr, naughtyb, trvmstr, naughtyb_state, trvmstr, ROT90, "Enerdyne Technologies Inc.", "Trivia Master (set 4)", GAME_SUPPORTS_SAVE )
-GAME( 1985, trvgns, trvmstr, naughtyb, trvmstr, naughtyb_state, trvmstr, ROT90, "bootleg", "Trivia Genius", GAME_SUPPORTS_SAVE )
+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, 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 )
diff --git a/src/mame/drivers/nbmj8688.c b/src/mame/drivers/nbmj8688.c
index c9eda230f1d..8e4f7480517 100644
--- a/src/mame/drivers/nbmj8688.c
+++ b/src/mame/drivers/nbmj8688.c
@@ -4060,52 +4060,52 @@ ROM_END
/* 8-bit palette */
-GAME( 1986, crystalg, 0, crystalg, crystalg, driver_device, 0, ROT0, "Nichibutsu", "Crystal Gal (Japan 860512)", GAME_SUPPORTS_SAVE )
-GAME( 1986, crystal2, 0, crystal2, crystal2, driver_device, 0, ROT0, "Nichibutsu", "Crystal Gal 2 (Japan 860620)", GAME_SUPPORTS_SAVE )
-GAME( 1986, nightlov, 0, nightlov, nightlov, driver_device, 0, ROT0, "Central Denshi", "Night Love (Japan 860705)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1986, apparel, 0, apparel, apparel, driver_device, 0, ROT0, "Central Denshi", "Apparel Night (Japan 860929)", GAME_SUPPORTS_SAVE )
+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 )
/* hybrid 12-bit palette */
-GAME( 1986, citylove, 0, citylove, citylove, driver_device, 0, ROT0, "Nichibutsu", "City Love (Japan 860908)", GAME_SUPPORTS_SAVE )
-GAME( 1986, mcitylov, citylove, mcitylov, mcitylov, driver_device, 0, ROT0, "Nichibutsu", "City Love [BET] (Japan 860904)", GAME_SUPPORTS_SAVE )
-GAME( 1986, secolove, 0, secolove, secolove, driver_device, 0, ROT0, "Nichibutsu", "Second Love (Japan 861201)", GAME_SUPPORTS_SAVE )
-GAME( 1988, barline, 0, barline, barline, driver_device, 0, ROT180, "Nichibutsu", "Barline (Japan?)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+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 )
/* hybrid 16-bit palette */
-GAME( 1987, seiha, 0, seiha, seiha, driver_device, 0, ROT0, "Nichibutsu", "Seiha (Japan 870725)", GAME_SUPPORTS_SAVE )
-GAME( 1987, seiham, seiha, seiham, seiham, driver_device, 0, ROT0, "Nichibutsu", "Seiha [BET] (Japan 870723)", GAME_SUPPORTS_SAVE )
-GAME( 1987, mjgaiden, 0, mjgaiden, ojousan, driver_device, 0, ROT0, "Central Denshi", "Mahjong Gaiden [BET] (Japan 870803)", GAME_SUPPORTS_SAVE )
-GAME( 1987, iemoto, 0, iemoto, iemoto, driver_device, 0, ROT0, "Nichibutsu", "Iemoto (Japan 871020)", GAME_SUPPORTS_SAVE )
-GAME( 1987, iemotom, iemoto, iemotom, iemotom, driver_device, 0, ROT0, "Nichibutsu", "Iemoto [BET] (Japan 871118)", GAME_SUPPORTS_SAVE )
-GAME( 1987, ryuuha, iemoto, ryuuha, ryuuha, driver_device, 0, ROT0, "Central Denshi", "Ryuuha [BET] (Japan 871027)", GAME_SUPPORTS_SAVE )
-GAME( 1987, ojousan, 0, ojousan, ojousan, driver_device, 0, ROT0, "Nichibutsu", "Ojousan (Japan 871204)", GAME_SUPPORTS_SAVE )
-GAME( 1987, ojousanm, ojousan, ojousanm, ojousanm, driver_device, 0, ROT0, "Nichibutsu", "Ojousan [BET] (Japan 870108)", GAME_SUPPORTS_SAVE )
-GAME( 1988, korinai, 0, korinai, korinai, driver_device, 0, ROT0, "Nichibutsu", "Mahjong-zukino Korinai Menmen (Japan 880425)", GAME_SUPPORTS_SAVE )
-GAME( 1988, korinaim, korinai, korinaim, korinaim, driver_device, 0, ROT0, "Nichibutsu", "Mahjong-zukino Korinai Menmen [BET] (Japan 880920)", GAME_SUPPORTS_SAVE )
+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( 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 )
/* pure 16-bit palette (+ LCD in some) */
-GAME( 1987, housemnq, 0, housemnq, housemnq, driver_device, 0, ROT0, "Nichibutsu", "House Mannequin (Japan 870217)", GAME_SUPPORTS_SAVE )
-GAME( 1987, housemn2, 0, housemn2, housemn2, driver_device, 0, ROT0, "Nichibutsu", "House Mannequin Roppongi Live hen (Japan 870418)", GAME_SUPPORTS_SAVE )
-GAME( 1987, livegal, 0, livegal, livegal, driver_device, 0, ROT0, "Central Denshi", "Live Gal (Japan 870530)", GAME_SUPPORTS_SAVE )
-GAME( 1987, bijokkoy, 0, bijokkoy, bijokkoy, driver_device, 0, ROT0, "Nichibutsu", "Bijokko Yume Monogatari (Japan 870925)", GAME_SUPPORTS_SAVE )
-GAME( 1988, bijokkog, 0, bijokkog, bijokkog, driver_device, 0, ROT0, "Nichibutsu", "Bijokko Gakuen (Japan 880116)", GAME_SUPPORTS_SAVE )
-GAME( 1988, orangec, 0, orangec, orangec, driver_device, 0, ROT0, "Daiichi Denshi", "Orange Club - Maruhi Kagai Jugyou (Japan 880213)", GAME_SUPPORTS_SAVE )
-GAME( 1988, orangeci, orangec, orangeci, orangeci, driver_device, 0, ROT0, "Daiichi Denshi", "Orange Club - Maru-hi Ippatsu Kaihou [BET] (Japan 880221)", GAME_SUPPORTS_SAVE )
-GAME( 1988, vipclub, orangec, vipclub, vipclub, driver_device, 0, ROT0, "Daiichi Denshi", "Vip Club - Maru-hi Ippatsu Kaihou [BET] (Japan 880310)", GAME_SUPPORTS_SAVE )
+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 (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 )
/* pure 12-bit palette */
-GAME( 1988, kaguya, 0, kaguya, kaguya, driver_device, 0, ROT0, "Miki Syouji", "Mahjong Kaguyahime [BET] (Japan 880521)", GAME_SUPPORTS_SAVE )
-GAME( 1989, kaguya2, 0, kaguya2, kaguya2, nbmj8688_state, kaguya2, ROT0, "Miki Syouji", "Mahjong Kaguyahime Sono2 [BET] (Japan 890829)", GAME_SUPPORTS_SAVE )
-GAME( 1989, kaguya2f, kaguya2, kaguya2, kaguya2, nbmj8688_state, kaguya2, ROT0, "Miki Syouji", "Mahjong Kaguyahime Sono2 Fukkokuban [BET] (Japan 010808)", GAME_SUPPORTS_SAVE )
-GAME( 1988, kanatuen, 0, kanatuen, kanatuen, nbmj8688_state, kanatuen, ROT0, "Panac", "Kanatsuen no Onna [BET] (Japan 880905)", GAME_SUPPORTS_SAVE )
-GAME( 1988, kyuhito, kanatuen, kyuhito, kyuhito, nbmj8688_state, kyuhito, ROT0, "Roller Tron", "Kyukyoku no Hito [BET] (Japan 880824)", GAME_SUPPORTS_SAVE )
-GAME( 1989, idhimitu, 0, idhimitu, idhimitu, nbmj8688_state, idhimitu, ROT0, "Digital Soft", "Idol no Himitsu [BET] (Japan 890304)", GAME_SUPPORTS_SAVE )
+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, kaguya2, nbmj8688_state, kaguya2, ROT0, "Miki Syouji", "Mahjong Kaguyahime Sono2 [BET] (Japan 890829)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, kaguya2f, kaguya2, kaguya2, kaguya2, 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)", GAME_SUPPORTS_SAVE )
-GAME( 1988, mjsikakb, mjsikaku, mjsikaku, mjsikaku, driver_device, 0, ROT0, "Nichibutsu", "Mahjong Shikaku (Japan 880722)", GAME_SUPPORTS_SAVE )
-GAME( 1988, mjsikakc, mjsikaku, mjsikaku, mjsikaku, driver_device, 0, ROT0, "Nichibutsu", "Mahjong Shikaku (Japan 880806)", GAME_SUPPORTS_SAVE )
-GAME( 1988, mjsikakd, mjsikaku, mjsikaku, mjsikaku, driver_device, 0, ROT0, "Nichibutsu", "Mahjong Shikaku (Japan 880802)", GAME_SUPPORTS_SAVE )
-GAME( 1988, mmsikaku, mjsikaku, mmsikaku, mmsikaku, driver_device, 0, ROT0, "Nichibutsu", "Mahjong Shikaku [BET] (Japan 880929)", GAME_SUPPORTS_SAVE )
-GAME( 1988, otonano, 0, otonano, otonano, driver_device, 0, ROT0, "Apple", "Otona no Mahjong (Japan 880628)", GAME_SUPPORTS_SAVE )
-GAME( 1988, mjcamera, 0, mjcamera, mjcamera, nbmj8688_state, mjcamera, ROT0, "Miki Syouji", "Mahjong Camera Kozou (set 1) (Japan 881109)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/nbmj8891.c b/src/mame/drivers/nbmj8891.c
index b446b5c965d..f1278134092 100644
--- a/src/mame/drivers/nbmj8891.c
+++ b/src/mame/drivers/nbmj8891.c
@@ -3641,6 +3641,25 @@ ROM_START( hanaoji )
ROM_LOAD( "hnoj_11.bin", 0x100000, 0x20000, CRC(bfe38671) SHA1(6c81864caab61ea60dfe446b390221bdcfb0895e) )
ROM_END
+ROM_START( hanaojia )
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* program */
+ ROM_LOAD( "02.f3.bin", 0x00000, 0x10000, CRC(2f493c0b) SHA1(0c2b2ece744556f8b2d25fde9017680a77afcf6b) )
+
+ ROM_REGION( 0x10000, "voice", 0 ) /* voice */
+ ROM_LOAD( "hnoj_01.bin", 0x00000, 0x10000, CRC(3f7fcb94) SHA1(7bb0bc3a8c34b1b707b39ba52be40900cca0f015) )
+
+ ROM_REGION( 0x200000, "gfx1", 0 ) /* gfx */
+ ROM_LOAD( "hnoj_03.bin", 0x000000, 0x20000, CRC(fbbe1dce) SHA1(f742bb8e06a1e71e7c586d0a821f96238bdbc6ac) )
+ ROM_LOAD( "hnoj_04.bin", 0x020000, 0x20000, CRC(2074b04f) SHA1(e759e49474bcb1caeea5a60708844ec53aed64c6) )
+ ROM_LOAD( "hnoj_05.bin", 0x040000, 0x20000, CRC(84d20ba6) SHA1(0f270d43cdb390492f349b3680978e2e36a6a5d4) )
+ ROM_LOAD( "hnoj_06.bin", 0x060000, 0x20000, CRC(f85fedd8) SHA1(224a5b05c28b1f84df0bd32b32cb2aa416156460) )
+ ROM_LOAD( "hnoj_07.bin", 0x080000, 0x20000, CRC(c72cdde1) SHA1(877cd52461ecc9cd44d5b328c36ac8878056059d) )
+ ROM_LOAD( "hnoj_08.bin", 0x0a0000, 0x20000, CRC(12e70429) SHA1(4728a5a0f636f793099c5a3a7bc998931921623f) )
+ ROM_LOAD( "hnoj_09.bin", 0x0c0000, 0x20000, CRC(4ec74a59) SHA1(92803e99aa6fb5c8f2227db3b7cc875266249ed1) )
+ ROM_LOAD( "hnoj_10.bin", 0x0e0000, 0x20000, CRC(e9212fc5) SHA1(c09f4a93f01630696acb0e80b1c6adb711377319) )
+ ROM_LOAD( "hnoj_11.bin", 0x100000, 0x20000, CRC(bfe38671) SHA1(6c81864caab61ea60dfe446b390221bdcfb0895e) )
+ROM_END
+
ROM_START( mjcamerb )
ROM_REGION( 0x10000, "maincpu", 0 ) /* program */
ROM_LOAD( "2.3h", 0x00000, 0x10000, CRC(3a0f110b) SHA1(8923136ed25ed91c90f93c3f75f5532ff8f9d420) )
@@ -3828,36 +3847,37 @@ 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)", GAME_SUPPORTS_SAVE )
-GAME( 1988, hanamomo, 0, hanamomo, hanamomo, driver_device, 0, ROT0, "Nichibutsu", "Mahjong Hana no Momoko gumi (Japan 881201)", GAME_SUPPORTS_SAVE )
-GAME( 1988, hanamomb, hanamomo, hanamomo, hanamomo, driver_device, 0, ROT0, "Nichibutsu", "Mahjong Hana no Momoko gumi (Japan 881125)", GAME_SUPPORTS_SAVE )
-GAME( 1988, telmahjn, 0, telmahjn, telmahjn, nbmj8891_state, telmahjn, ROT270, "Nichibutsu", "Telephone Mahjong (Japan 890111)", GAME_SUPPORTS_SAVE )
-GAME( 1989, gionbana, 0, gionbana, gionbana, nbmj8891_state, gionbana, ROT0, "Nichibutsu", "Gionbana (Japan 890120)", GAME_SUPPORTS_SAVE )
-GAME( 1989, mgion, 0, mgion, mgion, driver_device, 0, ROT0, "Nichibutsu", "Gionbana [BET] (Japan 890207)", GAME_SUPPORTS_SAVE )
-GAME( 1989, omotesnd, 0, omotesnd, omotesnd, nbmj8891_state, omotesnd, ROT0, "Anime Tec", "Omotesandou (Japan 890215)", GAME_SUPPORTS_SAVE )
-GAME( 1989, abunai, 0, abunai, abunai, driver_device, 0, ROT0, "Green Soft", "Abunai Houkago - Mou Matenai (Japan 890325)", GAME_SUPPORTS_SAVE )
-GAME( 1989, mjfocus, 0, mjfocus, mjfocus, nbmj8891_state, mjfocus, ROT0, "Nichibutsu", "Mahjong Focus (Japan 890313)", GAME_SUPPORTS_SAVE )
-GAME( 1989, mjfocusm, mjfocus, mjfocusm, mjfocusm, nbmj8891_state, mjfocusm, ROT0, "Nichibutsu", "Mahjong Focus [BET] (Japan 890510)", GAME_SUPPORTS_SAVE )
-GAME( 1989, peepshow, mjfocus, mjfocus, peepshow, nbmj8891_state, mjfocus, ROT0, "AC", "Nozokimeguri Mahjong Peep Show (Japan 890404)", GAME_SUPPORTS_SAVE )
-GAME( 1989, mjcamerb, 0, mjcamerb, mjcamerb, driver_device, 0, ROT0, "Miki Syouji", "Mahjong Camera Kozou (set 2) (Japan 881109)", GAME_SUPPORTS_SAVE )
-GAME( 1989, mmcamera, mjcamerb, mmcamera, mmcamera, driver_device, 0, ROT0, "Miki Syouji", "Mahjong Camera Kozou [BET] (Japan 890509)", GAME_SUPPORTS_SAVE )
-GAME( 1989, scandal, 0, scandal, scandal, nbmj8891_state, scandal, ROT0, "Nichibutsu", "Scandal Mahjong (Japan 890213)", GAME_SUPPORTS_SAVE )
-GAME( 1989, scandalm, scandal, scandalm, scandalm, driver_device, 0, ROT0, "Nichibutsu", "Scandal Mahjong [BET] (Japan 890217)", GAME_SUPPORTS_SAVE )
-GAME( 1989, mgmen89, 0, mgmen89, mgmen89, nbmj8891_state, mgmen89, ROT0, "Nichibutsu", "Mahjong G-MEN'89 (Japan 890425)", GAME_SUPPORTS_SAVE )
-GAME( 1989, mjnanpas, 0, mjnanpas, mjnanpas, nbmj8891_state, mjnanpas, ROT0, "Brooks", "Mahjong Nanpa Story (Japan 890713)", GAME_SUPPORTS_SAVE )
-GAME( 1989, mjnanpaa, mjnanpas, mjnanpas, mjnanpaa, nbmj8891_state, mjnanpas, ROT0, "Brooks", "Mahjong Nanpa Story (Japan 890712)", GAME_SUPPORTS_SAVE )
-GAME( 1989, mjnanpau, mjnanpas, mjnanpas, mjnanpas, nbmj8891_state, mjnanpas, ROT0, "Brooks", "Mahjong Nanpa Story (Ura) (Japan 890805)", GAME_SUPPORTS_SAVE )
-GAME( 1989, bananadr, 0, bananadr, bananadr, driver_device, 0, ROT0, "Digital Soft", "Mahjong Banana Dream [BET] (Japan 891124)", GAME_SUPPORTS_SAVE )
-GAME( 1990, mladyhtr, 0, mladyhtr, mladyhtr, driver_device, 0, ROT0, "Nichibutsu", "Mahjong The Lady Hunter (Japan 900509)", GAME_SUPPORTS_SAVE )
-GAME( 1990, chinmoku, 0, chinmoku, chinmoku, driver_device, 0, ROT0, "Nichibutsu", "Mahjong Chinmoku no Hentai (Japan 900511)", GAME_SUPPORTS_SAVE )
-GAME( 1990, maiko, 0, maiko, maiko, driver_device, 0, ROT0, "Nichibutsu", "Maikobana (Japan 900802)", GAME_SUPPORTS_SAVE )
-GAME( 1990, mmaiko, 0, mmaiko, mmaiko, driver_device, 0, ROT0, "Nichibutsu", "Maikobana [BET] (Japan 900911)", GAME_SUPPORTS_SAVE )
-GAME( 1990, hnxmasev, 0, hnxmasev, maiko, driver_device, 0, ROT180, "Nichibutsu / AV Japan", "AV Hanafuda Hana no Christmas Eve (Japan 901204)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1990, hnageman, 0, hnageman, maiko, driver_device, 0, ROT180, "Nichibutsu / AV Japan", "AV Hanafuda Hana no Ageman (Japan 900716)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1990, club90s, 0, club90s, club90s, driver_device, 0, ROT0, "Nichibutsu", "Mahjong CLUB 90's (set 1) (Japan 900919)", GAME_SUPPORTS_SAVE )
-GAME( 1990, club90sa, club90s, club90s, club90s, driver_device, 0, ROT0, "Nichibutsu", "Mahjong CLUB 90's (set 2) (Japan 900919)", GAME_SUPPORTS_SAVE )
-GAME( 1990, lovehous, club90s, lovehous, lovehous, driver_device, 0, ROT0, "Nichibutsu", "Mahjong Love House [BET] (Japan 901024)", GAME_SUPPORTS_SAVE )
-GAME( 1991, hanaoji, 0, hanaoji, hanaoji, driver_device, 0, ROT0, "Nichibutsu", "Hana to Ojisan [BET] (Japan 911209)", GAME_SUPPORTS_SAVE )
-GAME( 1988, taiwanmb, 0, taiwanmb, taiwanmb, driver_device, 0, ROT0, "Miki Syouji", "Taiwan Mahjong [BET] (Japan 881208)", GAME_SUPPORTS_SAVE )
-GAME( 1989, pairsnb, 0, pairsnb, pairsnb, nbmj8891_state, pairsnb, ROT0, "Nichibutsu", "Pairs (Nichibutsu) (Japan 890822)", GAME_SUPPORTS_SAVE )
-GAME( 1989, pairsten, pairsnb, pairsten, pairsnb, nbmj8891_state, pairsten, ROT0, "System Ten", "Pairs (System Ten) (Japan 890826)", GAME_SUPPORTS_SAVE )
+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, telmahjn, 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, 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, mjfocusm, mjfocus, mjfocusm, mjfocusm, nbmj8891_state, mjfocusm, ROT0, "Nichibutsu", "Mahjong Focus [BET] (Japan 890510)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, peepshow, mjfocus, mjfocus, peepshow, 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, 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 )
diff --git a/src/mame/drivers/nbmj8900.c b/src/mame/drivers/nbmj8900.c
index 9bcf53ad70b..ff345a57045 100644
--- a/src/mame/drivers/nbmj8900.c
+++ b/src/mame/drivers/nbmj8900.c
@@ -391,5 +391,5 @@ ROM_START( togenkyo )
ROM_END
// YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR,COMPANY,FULLNAME,FLAGS)
-GAME( 1989, ohpaipee, 0, ohpaipee, ohpaipee, nbmj8900_state, ohpaipee, ROT270, "Nichibutsu", "Oh! Paipee (Japan 890227)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1989, togenkyo, 0, togenkyo, togenkyo, nbmj8900_state, togenkyo, ROT0, "Nichibutsu", "Tougenkyou (Japan 890418)", GAME_SUPPORTS_SAVE )
+GAME( 1989, ohpaipee, 0, ohpaipee, ohpaipee, nbmj8900_state, ohpaipee, ROT270, "Nichibutsu", "Oh! Paipee (Japan 890227)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1989, togenkyo, 0, togenkyo, togenkyo, nbmj8900_state, togenkyo, ROT0, "Nichibutsu", "Tougenkyou (Japan 890418)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/nbmj8991.c b/src/mame/drivers/nbmj8991.c
index fedf55349c2..e0ce7540cdd 100644
--- a/src/mame/drivers/nbmj8991.c
+++ b/src/mame/drivers/nbmj8991.c
@@ -2134,21 +2134,21 @@ ROM_START( av2mj2rg )
ROM_END
-GAME( 1989, galkoku, 0, galkoku, galkoku, driver_device, 0, ROT180, "Nichibutsu / T.R.Tec", "Mahjong Gal no Kokuhaku (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1989, hyouban, galkoku, hyouban, hyouban, driver_device, 0, ROT180, "Nichibutsu / T.R.Tec", "Mahjong Hyouban Musume [BET] (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1989, galkaika, 0, galkaika, galkaika, nbmj8991_state, galkaika, ROT180, "Nichibutsu / T.R.Tec", "Mahjong Gal no Kaika (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1989, tokyogal, 0, tokyogal, tokyogal, nbmj8991_state, tokyogal, ROT180, "Nichibutsu", "Tokyo Gal Zukan (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1989, tokimbsj, tokyogal, tokimbsj, tokimbsj, nbmj8991_state, tokimbsj, ROT180, "Nichibutsu", "Tokimeki Bishoujo [BET] (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1989, mcontest, 0, mcontest, mcontest, driver_device, 0, ROT180, "Nichibutsu", "Miss Mahjong Contest (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1989, uchuuai, 0, uchuuai, uchuuai, driver_device, 0, ROT180, "Nichibutsu", "Mahjong Uchuu yori Ai wo komete (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1989, triplew1, 0, triplew1, triplew1, driver_device, 0, ROT180, "Nichibutsu", "Mahjong Triple Wars (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1990, pstadium, 0, pstadium, pstadium, driver_device, 0, ROT180, "Nichibutsu", "Mahjong Panic Stadium (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1990, triplew2, 0, triplew2, triplew1, driver_device, 0, ROT180, "Nichibutsu", "Mahjong Triple Wars 2 (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1990, ntopstar, 0, ntopstar, ntopstar, driver_device, 0, ROT180, "Nichibutsu", "Mahjong Nerae! Top Star (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1991, mjlstory, 0, mjlstory, mjlstory, driver_device, 0, ROT180, "Nichibutsu", "Mahjong Jikken Love Story (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1991, vanilla, 0, vanilla, vanilla, driver_device, 0, ROT180, "Nichibutsu", "Mahjong Vanilla Syndrome (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1991, finalbny, vanilla, finalbny, finalbny, nbmj8991_state, finalbny, ROT180, "Nichibutsu", "Mahjong Final Bunny [BET] (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1991, qmhayaku, 0, qmhayaku, qmhayaku, driver_device, 0, ROT180, "Nichibutsu", "Quiz-Mahjong Hayaku Yatteyo! (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1991, mjgottub, 0, mjgottub, mjgottub, driver_device, 0, ROT180, "Nichibutsu", "Medal Mahjong Gottsu ee-kanji [BET] (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1991, av2mj1bb, 0, av2mj1bb, av2mj1bb, driver_device, 0, ROT0, "Miki Syouji / AV Japan", "AV2Mahjong No.1 Bay Bridge no Seijo (Japan)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1991, av2mj2rg, 0, av2mj2rg, av2mj2rg, driver_device, 0, ROT0, "Miki Syouji / AV Japan", "AV2Mahjong No.2 Rouge no Kaori (Japan)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
+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, 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, vanilla, 0, vanilla, vanilla, driver_device, 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 )
diff --git a/src/mame/drivers/nbmj9195.c b/src/mame/drivers/nbmj9195.c
index 02a881ccccb..1c335c0bf22 100644
--- a/src/mame/drivers/nbmj9195.c
+++ b/src/mame/drivers/nbmj9195.c
@@ -32,7 +32,7 @@ Notes:
void nbmj9195_state::machine_start()
{
membank("soundbank")->configure_entries(0, 4, memregion("audiocpu")->base() + 0x8000, 0x8000);
-
+
save_item(NAME(m_inputport));
save_item(NAME(m_dipswbitsel));
save_item(NAME(m_outcoin_flag));
@@ -3638,38 +3638,38 @@ ROM_START( shabdama )
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)", GAME_SUPPORTS_SAVE )
-GAME( 1992, koinomp, 0, koinomp, koinomp, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu", "Mahjong Koi no Magic Potion (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1992, patimono, 0, patimono, patimono, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu", "Mahjong Pachinko Monogatari (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1992, janbari, 0, janbari, janbari, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu / Yubis / AV Japan", "Mahjong Janjan Baribari (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1992, mjanbari, janbari, janbari, mjanbari, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu / Yubis / AV Japan", "Medal Mahjong Janjan Baribari [BET] (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1992, mmehyou, 0, mmehyou, mmehyou, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu / Kawakusu", "Medal Mahjong Circuit no Mehyou [BET] (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1993, ultramhm, 0, ultramhm, ultramhm, nbmj9195_state, nbmj9195, ROT0, "Apple", "Ultra Maru-hi Mahjong (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1993, gal10ren, 0, gal10ren, gal10ren, nbmj9195_state, nbmj9195, ROT0, "Fujic", "Mahjong Gal 10-renpatsu (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1993, renaiclb, 0, renaiclb, renaiclb, nbmj9195_state, nbmj9195, ROT0, "Fujic", "Mahjong Ren-ai Club (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1993, mjlaman, 0, mjlaman, mjlaman, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu / AV Japan", "Mahjong La Man (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1993, mkeibaou, 0, mkeibaou, mkeibaou, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu", "Mahjong Keibaou (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1993, pachiten, 0, pachiten, pachiten, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu / AV Japan / Miki Syouji", "Medal Mahjong Pachi-Slot Tengoku [BET] (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1993, sailorws, 0, sailorws, sailorws, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu", "Mahjong Sailor Wars (Japan set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1993, sailorwa, sailorws, sailorws, sailorws, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu", "Mahjong Sailor Wars (Japan set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1993, sailorwr, sailorws, sailorwr, sailorwr, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu", "Mahjong Sailor Wars-R [BET] (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1993, wcatcher, 0, otatidai, wcatcher, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu", "Mahjong Wakuwaku Catcher (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1993, jituroku, 0, jituroku, jituroku, nbmj9195_state, nbmj9195, ROT0, "Windom", "Jitsuroku Maru-chi Mahjong (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1994, yosimoto, 0, yosimoto, yosimoto, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu / Yoshimoto Kougyou", "Mahjong Yoshimoto Gekijou (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1994, yosimotm, yosimoto, yosimotm, yosimotm, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu / Yoshimoto Kougyou", "Mahjong Yoshimoto Gekijou [BET] (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1994, psailor1, 0, psailor1, psailor1, nbmj9195_state, nbmj9195, ROT0, "Sphinx", "Bishoujo Janshi Pretty Sailor 18-kin (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1994, psailor2, 0, psailor2, psailor2, nbmj9195_state, nbmj9195, ROT0, "Sphinx", "Bishoujo Janshi Pretty Sailor 2 (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1995, otatidai, 0, otatidai, otatidai, nbmj9195_state, nbmj9195, ROT0, "Sphinx", "Disco Mahjong Otachidai no Okite (Japan)", GAME_SUPPORTS_SAVE )
-
-GAME( 1991, ngpgal, 0, ngpgal, ngpgal, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu", "Nekketsu Grand-Prix Gal (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1991, mjgottsu, 0, mjgottsu, mjgottsu, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu", "Mahjong Gottsu ee-kanji (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1991, bakuhatu, mjgottsu, bakuhatu, bakuhatu, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu", "Mahjong Bakuhatsu Junjouden (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1992, cmehyou, 0, cmehyou, cmehyou, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu / Kawakusu", "Mahjong Circuit no Mehyou (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1992, mjkoiura, 0, mjkoiura, mjkoiura, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu", "Mahjong Koi Uranai (Japan set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1992, mkoiuraa, mjkoiura, mkoiuraa, mjkoiura, nbmj9195_state, nbmj9195, ROT0, "Nichibutsu", "Mahjong Koi Uranai (Japan set 2)", GAME_SUPPORTS_SAVE )
-
-GAME( 1994, mscoutm, 0, mscoutm, mscoutm, nbmj9195_state, nbmj9195, ROT0, "Sphinx / AV Japan", "Mahjong Scout Man (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1994, imekura, 0, imekura, imekura, nbmj9195_state, nbmj9195, ROT0, "Sphinx / AV Japan", "Imekura Mahjong (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1994, mjegolf, 0, mjegolf, mjegolf, nbmj9195_state, nbmj9195, ROT0, "Fujic / AV Japan", "Mahjong Erotica Golf (Japan)", GAME_SUPPORTS_SAVE )
-
-GAME( 199?, shabdama, 0, shabdama, mjuraden,nbmj9195_state, nbmj9195, ROT0, "Nichibutsu", "LD Mahjong #4 Shabon-Dama", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
+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, mjanbari, 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, mkeibaou, 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/mess/drivers/nc.c b/src/mame/drivers/nc.c
index fbdbbd1f8b8..7bf13f6d188 100644
--- a/src/mess/drivers/nc.c
+++ b/src/mame/drivers/nc.c
@@ -1553,4 +1553,4 @@ ROM_END
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 )
-COMP( 1993, nc200, 0, 0, nc200, nc200, nc_state, nc, "Amstrad plc", "NC200", GAME_NOT_WORKING ) // boot hangs while checking the MC146818 UIP (update in progress) bit
+COMP( 1993, nc200, 0, 0, nc200, nc200, nc_state, nc, "Amstrad plc", "NC200", MACHINE_NOT_WORKING ) // boot hangs while checking the MC146818 UIP (update in progress) bit
diff --git a/src/mame/drivers/nemesis.c b/src/mame/drivers/nemesis.c
index 36c7984ab2f..a8a0c4bf327 100644
--- a/src/mame/drivers/nemesis.c
+++ b/src/mame/drivers/nemesis.c
@@ -2340,24 +2340,24 @@ ROM_END
-GAME( 1985, nemesis, 0, nemesis, nemesis, driver_device, 0, ROT0, "Konami", "Nemesis (ROM version)", GAME_SUPPORTS_SAVE )
-GAME( 1985, nemesisuk, nemesis, nemesis, nemesuk, driver_device, 0, ROT0, "Konami", "Nemesis (World?, ROM version)", GAME_SUPPORTS_SAVE )
-GAMEL(1985, konamigt, 0, konamigt, konamigt, driver_device, 0, ROT0, "Konami", "Konami GT", GAME_SUPPORTS_SAVE, layout_konamigt )
-GAME( 1985, rf2, konamigt, rf2_gx400, rf2, driver_device, 0, ROT0, "Konami", "Konami RF2 - Red Fighter", GAME_SUPPORTS_SAVE )
-GAME( 1985, twinbee, 0, gx400, twinbee, driver_device, 0, ROT90, "Konami", "TwinBee (ROM version)", GAME_SUPPORTS_SAVE )
-GAME( 1985, gradius, nemesis, gx400, gradius, driver_device, 0, ROT0, "Konami", "Gradius (Japan, ROM version)", GAME_SUPPORTS_SAVE )
-GAME( 1985, gwarrior, 0, gx400, gwarrior, driver_device, 0, ROT0, "Konami", "Galactic Warriors", GAME_SUPPORTS_SAVE )
-GAME( 1986, salamand, 0, salamand, salamand, driver_device, 0, ROT0, "Konami", "Salamander (version D)", GAME_SUPPORTS_SAVE )
-GAME( 1986, salamandj, salamand, salamand, salamand, driver_device, 0, ROT0, "Konami", "Salamander (version J)", GAME_SUPPORTS_SAVE )
-GAME( 1986, lifefrce, salamand, salamand, salamand, driver_device, 0, ROT0, "Konami", "Lifeforce (US)", GAME_SUPPORTS_SAVE )
-GAME( 1987, lifefrcej, salamand, salamand, lifefrcj, driver_device, 0, ROT0, "Konami", "Lifeforce (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1987, blkpnthr, 0, blkpnthr, blkpnthr, driver_device, 0, ROT0, "Konami", "Black Panther", GAME_SUPPORTS_SAVE )
-GAME( 1987, citybomb, 0, citybomb, citybomb, driver_device, 0, ROT270, "Konami", "City Bomber (World)", GAME_SUPPORTS_SAVE )
-GAME( 1987, citybombj, citybomb, citybomb, citybomb, driver_device, 0, ROT270, "Konami", "City Bomber (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1987, hcrash, 0, hcrash, hcrash, driver_device, 0, ROT0, "Konami", "Hyper Crash (version D)", GAME_SUPPORTS_SAVE )
-GAME( 1987, hcrashc, hcrash, hcrash, hcrash, driver_device, 0, ROT0, "Konami", "Hyper Crash (version C)", GAME_SUPPORTS_SAVE )
-GAME( 1988, kittenk, 0, nyanpani, nyanpani, driver_device, 0, ROT0, "Konami", "Kitten Kaboodle", GAME_SUPPORTS_SAVE )
-GAME( 1988, nyanpani, kittenk, nyanpani, nyanpani, driver_device, 0, ROT0, "Konami", "Nyan Nyan Panic (Japan)", GAME_SUPPORTS_SAVE )
+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 )
/*
@@ -2706,4 +2706,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", GAME_IS_BIOS_ROOT | GAME_NOT_WORKING )
+GAME( 1985, bubsys, 0, bubsys, nemesis, driver_device, 0, ROT0, "Konami", "Bubble System BIOS", MACHINE_IS_BIOS_ROOT | MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/neogeo.c b/src/mame/drivers/neogeo.c
index 91e9b977477..e9df2f8456c 100644
--- a/src/mame/drivers/neogeo.c
+++ b/src/mame/drivers/neogeo.c
@@ -1463,10 +1463,10 @@ MACHINE_CONFIG_START( neogeo_base, neogeo_state )
MCFG_SOUND_ADD("ymsnd", YM2610, NEOGEO_YM2610_CLOCK)
MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
- MCFG_SOUND_ROUTE(0, "lspeaker", 0.60)
- MCFG_SOUND_ROUTE(0, "rspeaker", 0.60)
- MCFG_SOUND_ROUTE(1, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(2, "rspeaker", 1.0)
+ MCFG_SOUND_ROUTE(0, "lspeaker", 0.28)
+ MCFG_SOUND_ROUTE(0, "rspeaker", 0.28)
+ MCFG_SOUND_ROUTE(1, "lspeaker", 0.98)
+ MCFG_SOUND_ROUTE(2, "rspeaker", 0.98)
MCFG_NEOGEO_BANKED_CART_ADD("banked_cart")
MACHINE_CONFIG_END
@@ -1528,4 +1528,4 @@ ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT */
-CONS( 1990, neogeo, 0, 0, mvs, neogeo_6slot, neogeo_state, mvs, "SNK", "Neo-Geo", GAME_IS_BIOS_ROOT | GAME_SUPPORTS_SAVE )
+CONS( 1990, neogeo, 0, 0, mvs, neogeo_6slot, neogeo_state, mvs, "SNK", "Neo-Geo", MACHINE_IS_BIOS_ROOT | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/neogeo_noslot.c b/src/mame/drivers/neogeo_noslot.c
index 5490326f9e5..aac77ba8640 100644
--- a/src/mame/drivers/neogeo_noslot.c
+++ b/src/mame/drivers/neogeo_noslot.c
@@ -9593,313 +9593,313 @@ DRIVER_INIT_MEMBER(neogeo_noslot_state,kf2k3pcb)
/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR */
/* SNK */
-GAME( 1990, nam1975, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "NAM-1975 (NGM-001)(NGH-001)", GAME_SUPPORTS_SAVE )
-GAME( 1990, bstars, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Baseball Stars Professional (NGM-002)", GAME_SUPPORTS_SAVE )
-GAME( 1990, bstarsh, bstars, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Baseball Stars Professional (NGH-002)", GAME_SUPPORTS_SAVE )
-GAME( 1990, tpgolf, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Top Player's Golf (NGM-003)(NGH-003)", GAME_SUPPORTS_SAVE )
-GAME( 1990, mahretsu, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Mahjong Kyo Retsuden (NGM-004)(NGH-004)", GAME_SUPPORTS_SAVE ) // does not support mahjong panel in MVS mode
-GAME( 1990, ridhero, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Riding Hero (NGM-006)(NGH-006)", GAME_SUPPORTS_SAVE )
-GAME( 1990, ridheroh, ridhero, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Riding Hero (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1991, alpham2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Alpha Mission II / ASO II - Last Guardian (NGM-007)(NGH-007)", GAME_SUPPORTS_SAVE )
-GAME( 1991, alpham2p, alpham2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Alpha Mission II / ASO II - Last Guardian (prototype)", GAME_SUPPORTS_SAVE )
-GAME( 1990, cyberlip, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Cyber-Lip (NGM-010)", GAME_SUPPORTS_SAVE )
-GAME( 1990, superspy, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The Super Spy (NGM-011)(NGH-011)", GAME_SUPPORTS_SAVE )
-GAME( 1992, mutnat, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Mutation Nation (NGM-014)(NGH-014)", GAME_SUPPORTS_SAVE )
-GAME( 1991, kotm, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "King of the Monsters (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1991, kotmh, kotm, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "King of the Monsters (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1991, sengoku, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Sengoku / Sengoku Denshou (NGM-017)(NGH-017)", GAME_SUPPORTS_SAVE )
-GAME( 1991, sengokuh, sengoku, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Sengoku / Sengoku Denshou (NGH-017)(US)", GAME_SUPPORTS_SAVE )
-GAME( 1991, burningf, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Burning Fight (NGM-018)(NGH-018)", GAME_SUPPORTS_SAVE )
-GAME( 1991, burningfh, burningf, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Burning Fight (NGH-018)(US)", GAME_SUPPORTS_SAVE )
-GAME( 1991, burningfp, burningf, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Burning Fight (prototype)", GAME_SUPPORTS_SAVE )
-GAME( 1990, lbowling, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "League Bowling (NGM-019)(NGH-019)", GAME_SUPPORTS_SAVE )
-GAME( 1991, gpilots, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Ghost Pilots (NGM-020)(NGH-020)", GAME_SUPPORTS_SAVE )
-GAME( 1991, gpilotsh, gpilots, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Ghost Pilots (NGH-020)(US)", GAME_SUPPORTS_SAVE )
-GAME( 1990, joyjoy, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Puzzled / Joy Joy Kid (NGM-021)(NGH-021)", GAME_SUPPORTS_SAVE )
-GAME( 1991, quizdais, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Quiz Daisousa Sen - The Last Count Down (NGM-023)(NGH-023)", GAME_SUPPORTS_SAVE )
-GAME( 1991, quizdaisk, quizdais, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Quiz Daisousa Sen - The Last Count Down (Korean release)", GAME_SUPPORTS_SAVE )
-GAME( 1992, lresort, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Last Resort", GAME_SUPPORTS_SAVE )
-GAME( 1991, eightman, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK / Pallas", "Eight Man (NGM-025)(NGH-025)", GAME_SUPPORTS_SAVE )
-GAME( 1991, legendos, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Legend of Success Joe / Ashita no Joe Densetsu", GAME_SUPPORTS_SAVE )
-GAME( 1991, 2020bb, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK / Pallas", "2020 Super Baseball (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1991, 2020bba, 2020bb, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK / Pallas", "2020 Super Baseball (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1991, 2020bbh, 2020bb, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK / Pallas", "2020 Super Baseball (set 3)", GAME_SUPPORTS_SAVE )
-GAME( 1991, socbrawl, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Soccer Brawl (NGM-031)", GAME_SUPPORTS_SAVE )
-GAME( 1991, socbrawlh, socbrawl, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Soccer Brawl (NGH-031)", GAME_SUPPORTS_SAVE )
-GAME( 1991, fatfury1, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Fatal Fury - King of Fighters / Garou Densetsu - shukumei no tatakai (NGM-033)(NGH-033)", GAME_SUPPORTS_SAVE )
-GAME( 1991, roboarmy, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Robo Army", GAME_SUPPORTS_SAVE )
-GAME( 1992, fbfrenzy, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Football Frenzy (NGM-034)(NGH-034)", GAME_SUPPORTS_SAVE )
-GAME( 1992, kotm2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "King of the Monsters 2 - The Next Thing (NGM-039)(NGH-039)", GAME_SUPPORTS_SAVE )
-GAME( 1992, kotm2p, kotm2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "King of the Monsters 2 - The Next Thing (prototype)", GAME_SUPPORTS_SAVE )
-GAME( 1993, sengoku2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Sengoku 2 / Sengoku Denshou 2", GAME_SUPPORTS_SAVE )
-GAME( 1992, bstars2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Baseball Stars 2", GAME_SUPPORTS_SAVE )
-GAME( 1992, quizdai2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Quiz Meitantei Neo & Geo - Quiz Daisousa Sen part 2 (NGM-042)(NGH-042)", GAME_SUPPORTS_SAVE )
-GAME( 1993, 3countb, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "3 Count Bout / Fire Suplex (NGM-043)(NGH-043)", GAME_SUPPORTS_SAVE )
-GAME( 1992, aof, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Art of Fighting / Ryuuko no Ken (NGM-044)(NGH-044)", GAME_SUPPORTS_SAVE )
-GAME( 1993, samsho, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Samurai Shodown / Samurai Spirits (NGM-045)", GAME_SUPPORTS_SAVE )
-GAME( 1993, samshoh, samsho, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Samurai Shodown / Samurai Spirits (NGH-045)", GAME_SUPPORTS_SAVE )
-GAME( 1994, tophuntr, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Top Hunter - Roddy & Cathy (NGM-046)", GAME_SUPPORTS_SAVE )
-GAME( 1994, tophuntrh, tophuntr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Top Hunter - Roddy & Cathy (NGH-046)", GAME_SUPPORTS_SAVE )
-GAME( 1992, fatfury2, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, fatfury2, ROT0, "SNK", "Fatal Fury 2 / Garou Densetsu 2 - arata-naru tatakai (NGM-047)(NGH-047)", GAME_SUPPORTS_SAVE )
-GAME( 1992, ssideki, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, fatfury2, ROT0, "SNK", "Super Sidekicks / Tokuten Ou", GAME_SUPPORTS_SAVE )
-GAME( 1994, kof94, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '94 (NGM-055)(NGH-055)", GAME_SUPPORTS_SAVE )
-GAME( 1994, aof2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Art of Fighting 2 / Ryuuko no Ken 2 (NGM-056)", GAME_SUPPORTS_SAVE )
-GAME( 1994, aof2a, aof2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Art of Fighting 2 / Ryuuko no Ken 2 (NGH-056)", GAME_SUPPORTS_SAVE )
-GAME( 1993, fatfursp, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Fatal Fury Special / Garou Densetsu Special (set 1)(NGM-058)(NGH-058)", GAME_SUPPORTS_SAVE )
-GAME( 1993, fatfurspa, fatfursp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Fatal Fury Special / Garou Densetsu Special (set 2)(NGM-058)(NGH-058)", GAME_SUPPORTS_SAVE )
-GAME( 1995, savagere, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Savage Reign / Fu'un Mokushiroku - kakutou sousei", GAME_SUPPORTS_SAVE )
-GAME( 1994, ssideki2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Super Sidekicks 2 - The World Championship / Tokuten Ou 2 - real fight football (NGM-061)(NGH-061)", GAME_SUPPORTS_SAVE )
-GAME( 1994, samsho2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Samurai Shodown II / Shin Samurai Spirits - Haohmaru jigokuhen (NGM-063)(NGH-063)", GAME_SUPPORTS_SAVE )
-GAME( 1994, samsho2k, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Saulabi Spirits / Jin Saulabi Tu Hon (Korean release of Samurai Shodown II)", GAME_SUPPORTS_SAVE ) // official or hack?
-GAME( 1995, fatfury3, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Fatal Fury 3 - Road to the Final Victory / Garou Densetsu 3 - haruka-naru tatakai (NGM-069)(NGH-069)", GAME_SUPPORTS_SAVE )
-GAME( 1995, ssideki3, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Super Sidekicks 3 - The Next Glory / Tokuten Ou 3 - eikou e no michi", GAME_SUPPORTS_SAVE )
-GAME( 1995, kof95, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '95 (NGM-084)", GAME_SUPPORTS_SAVE )
-GAME( 1995, kof95a, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '95 (NGM-084), alternate board", GAME_SUPPORTS_SAVE )
-GAME( 1995, kof95h, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '95 (NGH-084)", GAME_SUPPORTS_SAVE )
-GAME( 1995, samsho3, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Samurai Shodown III / Samurai Spirits - Zankurou Musouken (NGM-087)", GAME_SUPPORTS_SAVE )
-GAME( 1995, samsho3h, samsho3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Samurai Shodown III / Samurai Spirits - Zankurou Musouken (NGH-087)", GAME_SUPPORTS_SAVE )
-GAME( 1995, fswords, samsho3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Fighters Swords (Korean release of Samurai Shodown III)", GAME_SUPPORTS_SAVE )
-GAME( 1995, rbff1, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury / Real Bout Garou Densetsu (NGM-095)(NGH-095)", GAME_SUPPORTS_SAVE )
-GAME( 1995, rbff1a, rbff1, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury / Real Bout Garou Densetsu (bug fix revision)", GAME_SUPPORTS_SAVE )
-GAME( 1996, aof3, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Art of Fighting 3 - The Path of the Warrior / Art of Fighting - Ryuuko no Ken Gaiden", GAME_SUPPORTS_SAVE )
-GAME( 1996, aof3k, aof3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Art of Fighting 3 - The Path of the Warrior (Korean release)", GAME_SUPPORTS_SAVE ) // no Japanese title / mode
-GAME( 1996, kof96, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '96 (NGM-214)", GAME_SUPPORTS_SAVE )
-GAME( 1996, kof96h, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '96 (NGH-214)", GAME_SUPPORTS_SAVE )
-GAME( 1996, ssideki4, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The Ultimate 11 - The SNK Football Championship / Tokuten Ou - Honoo no Libero", GAME_SUPPORTS_SAVE )
-GAME( 1996, kizuna, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Kizuna Encounter - Super Tag Battle / Fu'un Super Tag Battle", GAME_SUPPORTS_SAVE )
-GAME( 1996, kizuna4p, kizuna, neogeo_noslot, kizuna4p, neogeo_state, neogeo, ROT0, "SNK", "Kizuna Encounter - Super Tag Battle 4 Way Battle Version / Fu'un Super Tag Battle Special Version", GAME_SUPPORTS_SAVE )
-GAME( 1996, samsho4, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Samurai Shodown IV - Amakusa's Revenge / Samurai Spirits - Amakusa Kourin (NGM-222)(NGH-222)", GAME_SUPPORTS_SAVE )
-GAME( 1996, samsho4k, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Pae Wang Jeon Seol / Legend of a Warrior (Korean censored Samurai Shodown IV)", GAME_SUPPORTS_SAVE )
-GAME( 1996, rbffspec, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury Special / Real Bout Garou Densetsu Special", GAME_SUPPORTS_SAVE )
-GAME( 1996, rbffspeck, rbffspec, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury Special / Real Bout Garou Densetsu Special (Korean release)", GAME_SUPPORTS_SAVE )
-GAME( 1997, kof97, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '97 (NGM-2320)", GAME_SUPPORTS_SAVE )
-GAME( 1997, kof97h, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '97 (NGH-2320)", GAME_SUPPORTS_SAVE )
-GAME( 1997, kof97k, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '97 (Korean release)", GAME_SUPPORTS_SAVE )
-GAME( 1997, kof97pls, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "The King of Fighters '97 Plus (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1997, kof97oro, kof97, neogeo_noslot, neogeo, neogeo_noslot_state, kof97oro, ROT0, "bootleg", "The King of Fighters '97 Oroshi Plus 2003 (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1997, kog, kof97, neogeo_noslot_kog, neogeo, neogeo_noslot_kog_state, kog, ROT0, "bootleg", "King of Gladiator (The King of Fighters '97 bootleg)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // protected bootleg
-GAME( 1997, lastblad, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The Last Blade / Bakumatsu Roman - Gekka no Kenshi (NGM-2340)", GAME_SUPPORTS_SAVE )
-GAME( 1997, lastbladh, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The Last Blade / Bakumatsu Roman - Gekka no Kenshi (NGH-2340)", GAME_SUPPORTS_SAVE )
-GAME( 1997, lastsold, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The Last Soldier (Korean release of The Last Blade)", GAME_SUPPORTS_SAVE )
-GAME( 1997, irrmaze, neogeo, neogeo_noslot, irrmaze, neogeo_state, neogeo, ROT0, "SNK / Saurus", "The Irritating Maze / Ultra Denryu Iraira Bou", GAME_SUPPORTS_SAVE )
-GAME( 1998, rbff2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury 2 - The Newcomers / Real Bout Garou Densetsu 2 - the newcomers (NGM-2400)", GAME_SUPPORTS_SAVE )
-GAME( 1998, rbff2h, rbff2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury 2 - The Newcomers / Real Bout Garou Densetsu 2 - the newcomers (NGH-2400)", GAME_SUPPORTS_SAVE )
-GAME( 1998, rbff2k, rbff2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury 2 - The Newcomers (Korean release)", GAME_SUPPORTS_SAVE ) // no Japanese title / mode
-GAME( 1998, mslug2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Metal Slug 2 - Super Vehicle-001/II (NGM-2410)(NGH-2410)", GAME_SUPPORTS_SAVE )
-GAME( 1998, kof98, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, kof98, ROT0, "SNK", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - dream match never ends (NGM-2420)", GAME_SUPPORTS_SAVE )
-GAME( 1998, kof98a, kof98, neogeo_noslot, neogeo, neogeo_noslot_state, kof98, ROT0, "SNK", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - dream match never ends (NGM-2420, alternate board)", GAME_SUPPORTS_SAVE )
-GAME( 1998, kof98k, kof98, neogeo_noslot, neogeo, neogeo_noslot_state, kof98, ROT0, "SNK", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - dream match never ends (Korean board)", GAME_SUPPORTS_SAVE )
-GAME( 1998, kof98ka, kof98, neogeo_noslot, neogeo, neogeo_noslot_state, kof98, ROT0, "SNK", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - dream match never ends (Korean board 2)", GAME_SUPPORTS_SAVE )
-GAME( 1998, kof98h, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - dream match never ends (NGH-2420)", GAME_SUPPORTS_SAVE )
-GAME( 1998, lastbld2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The Last Blade 2 / Bakumatsu Roman - Dai Ni Maku Gekka no Kenshi (NGM-2430)(NGH-2430)", GAME_SUPPORTS_SAVE )
-GAME( 1998, neocup98, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Neo-Geo Cup '98 - The Road to the Victory", GAME_SUPPORTS_SAVE )
-GAME( 1999, mslugx, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "SNK", "Metal Slug X - Super Vehicle-001 (NGM-2500)(NGH-2500)", GAME_SUPPORTS_SAVE )
-GAME( 1999, kof99, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, kof99, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (NGM-2510)" , GAME_SUPPORTS_SAVE ) /* Encrypted Code & GFX */
-GAME( 1999, kof99h, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (NGH-2510)" , GAME_SUPPORTS_SAVE ) /* Encrypted Code & GFX, crashes going into attract demo */
-GAME( 1999, kof99e, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (earlier)" , GAME_SUPPORTS_SAVE ) /* Encrypted Code & GFX */
-GAME( 1999, kof99k, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (Korean release)" , GAME_SUPPORTS_SAVE ) /* Encrypted GFX */
-GAME( 1999, kof99p, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (prototype)", GAME_SUPPORTS_SAVE )
-GAME( 1999, garou, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, garou, ROT0, "SNK", "Garou - Mark of the Wolves (NGM-2530)" , GAME_SUPPORTS_SAVE ) /* Encrypted Code & GFX */
-GAME( 1999, garouh, garou, neogeo_noslot, neogeo, neogeo_noslot_state, garouh, ROT0, "SNK", "Garou - Mark of the Wolves (NGM-2530)(NGH-2530)" , GAME_SUPPORTS_SAVE ) /* Encrypted Code & GFX */
-GAME( 1999, garoup, garou, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Garou - Mark of the Wolves (prototype)", GAME_SUPPORTS_SAVE )
-GAME( 1999, garoubl, garou, neogeo_noslot, neogeo, neogeo_noslot_state, garoubl, ROT0, "bootleg", "Garou - Mark of the Wolves (bootleg)", GAME_SUPPORTS_SAVE ) /* Bootleg of garoup */
-GAME( 2000, mslug3, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, mslug3, ROT0, "SNK", "Metal Slug 3 (NGM-2560)" , GAME_SUPPORTS_SAVE ) /* Encrypted Code & GFX */
-GAME( 2000, mslug3h, mslug3, neogeo_noslot, neogeo, neogeo_noslot_state, mslug3h, ROT0, "SNK", "Metal Slug 3 (NGH-2560)" , GAME_SUPPORTS_SAVE ) /* Encrypted GFX */
-GAME( 2000, mslug3b6, mslug3, neogeo_noslot, neogeo, neogeo_noslot_state, mslug3b6, ROT0, "bootleg", "Metal Slug 6 (Metal Slug 3 bootleg)", GAME_SUPPORTS_SAVE ) /* real Metal Slug 6 is an Atomiswave HW game, see naomi.c ;-) */
-GAME( 2000, kof2000, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, kof2000, ROT0, "SNK", "The King of Fighters 2000 (NGM-2570) (NGH-2570)" , GAME_SUPPORTS_SAVE ) /* Encrypted Code & GFX */
-GAME( 2000, kof2000n, kof2000, neogeo_noslot, neogeo, neogeo_noslot_state, kof2000n, ROT0, "SNK", "The King of Fighters 2000 (not encrypted)" , GAME_SUPPORTS_SAVE ) /* Encrypted GFX */
-GAME( 2001, zupapa, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, zupapa, ROT0, "SNK", "Zupapa!" , GAME_SUPPORTS_SAVE ) /* Encrypted GFX */
-GAME( 2001, sengoku3, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, sengoku3, ROT0, "Noise Factory / SNK", "Sengoku 3 / Sengoku Densho 2001" , GAME_SUPPORTS_SAVE ) /* Encrypted GFX */
-GAME( 2001, kof2001, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, kof2001, ROT0, "Eolith / SNK", "The King of Fighters 2001 (NGM-262?)" , GAME_SUPPORTS_SAVE ) /* Encrypted GFX */
-GAME( 2001, kof2001h, kof2001, neogeo_noslot, neogeo, neogeo_noslot_state, kof2001, ROT0, "Eolith / SNK", "The King of Fighters 2001 (NGH-2621)" , GAME_SUPPORTS_SAVE ) /* Encrypted GFX */
-GAME( 2003, cthd2003, kof2001, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "bootleg", "Crouching Tiger Hidden Dragon 2003 (The King of Fighters 2001 bootleg)", GAME_SUPPORTS_SAVE ) /* Protected Hack / Bootleg of kof2001 */
-GAME( 2003, ct2k3sp, kof2001, neogeo_noslot, neogeo, neogeo_noslot_state, ct2k3sp, ROT0, "bootleg", "Crouching Tiger Hidden Dragon 2003 Super Plus (The King of Fighters 2001 bootleg)", GAME_SUPPORTS_SAVE ) /* Protected Hack / Bootleg of kof2001 */
-GAME( 2003, ct2k3sa, kof2001, neogeo_noslot, neogeo, neogeo_noslot_state, ct2k3sa, ROT0, "bootleg", "Crouching Tiger Hidden Dragon 2003 Super Plus alternate (The King of Fighters 2001 bootleg)", GAME_SUPPORTS_SAVE ) /* Hack / Bootleg of kof2001 */
-GAME( 2002, kof2002, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, kof2002, ROT0, "Eolith / Playmore", "The King of Fighters 2002 (NGM-2650)(NGH-2650)" , GAME_SUPPORTS_SAVE ) /* Encrypted GFX */
-GAME( 2002, kof2002b, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kof2002b, ROT0, "bootleg", "The King of Fighters 2002 (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 2002, kf2k2pls, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kf2k2pls, ROT0, "bootleg", "The King of Fighters 2002 Plus (bootleg set 1)" , GAME_SUPPORTS_SAVE ) /* Encrypted GFX */
-GAME( 2002, kf2k2pla, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kf2k2pls, ROT0, "bootleg", "The King of Fighters 2002 Plus (bootleg set 2)" , GAME_SUPPORTS_SAVE ) /* Encrypted GFX */
-GAME( 2002, kf2k2mp, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kf2k2mp, ROT0, "bootleg", "The King of Fighters 2002 Magic Plus (bootleg)" , GAME_SUPPORTS_SAVE ) /* Encrypted GFX */
-GAME( 2002, kf2k2mp2, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kf2k2mp2, ROT0, "bootleg", "The King of Fighters 2002 Magic Plus II (bootleg)" , GAME_SUPPORTS_SAVE ) /* Encrypted GFX */
-GAME( 2002, kof10th, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kof10th, ROT0, "bootleg", "The King of Fighters 10th Anniversary (The King of Fighters 2002 bootleg)", GAME_SUPPORTS_SAVE ) // fake SNK copyright
-GAME( 2005, kf10thep, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kf10thep, ROT0, "bootleg", "The King of Fighters 10th Anniversary Extra Plus (The King of Fighters 2002 bootleg)", GAME_SUPPORTS_SAVE ) // fake SNK copyright
-GAME( 2004, kf2k5uni, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kf2k5uni, ROT0, "bootleg", "The King of Fighters 10th Anniversary 2005 Unique (The King of Fighters 2002 bootleg)", GAME_SUPPORTS_SAVE ) // fake SNK copyright
-GAME( 2004, kof2k4se, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kof2k4se, ROT0, "bootleg", "The King of Fighters Special Edition 2004 (The King of Fighters 2002 bootleg)", GAME_SUPPORTS_SAVE ) /* Hack / Bootleg of kof2002 */
-GAME( 2003, mslug5, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, mslug5, ROT0, "SNK Playmore", "Metal Slug 5 (NGM-2680)", GAME_SUPPORTS_SAVE )
-GAME( 2003, mslug5h, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, mslug5, ROT0, "SNK Playmore", "Metal Slug 5 (NGH-2680)", GAME_SUPPORTS_SAVE ) /* Also found in later MVS carts */
-GAME( 2003, ms5pcb, 0, neogeo_noslot, dualbios, neogeo_noslot_state, ms5pcb, ROT0, "SNK Playmore", "Metal Slug 5 (JAMMA PCB)", GAME_SUPPORTS_SAVE )
-GAME( 2003, ms5plus, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, ms5plus, ROT0, "bootleg", "Metal Slug 5 Plus (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 2003, svcpcb, 0, neogeo_noslot, dualbios, neogeo_noslot_state, svcpcb, ROT0, "SNK Playmore", "SNK vs. Capcom - SVC Chaos (JAMMA PCB, set 1)", GAME_SUPPORTS_SAVE ) // not a clone of neogeo because it's NOT a neogeo cart.
-GAME( 2003, svcpcba, svcpcb, neogeo_noslot, dualbios, neogeo_noslot_state, svcpcb, ROT0, "SNK Playmore", "SNK vs. Capcom - SVC Chaos (JAMMA PCB, set 2)" , GAME_SUPPORTS_SAVE ) /* Encrypted Code */
-GAME( 2003, svc, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, svc, ROT0, "SNK Playmore", "SNK vs. Capcom - SVC Chaos (NGM-2690)(NGH-2690)", GAME_SUPPORTS_SAVE )
-GAME( 2003, svcboot, svc, neogeo_noslot, neogeo, neogeo_noslot_state, svcboot, ROT0, "bootleg", "SNK vs. Capcom - SVC Chaos (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 2003, svcplus, svc, neogeo_noslot, neogeo, neogeo_noslot_state, svcplus, ROT0, "bootleg", "SNK vs. Capcom - SVC Chaos Plus (bootleg set 1)", GAME_SUPPORTS_SAVE )
-GAME( 2003, svcplusa, svc, neogeo_noslot, neogeo, neogeo_noslot_state, svcplusa, ROT0, "bootleg", "SNK vs. Capcom - SVC Chaos Plus (bootleg set 2)", GAME_SUPPORTS_SAVE )
-GAME( 2003, svcsplus, svc, neogeo_noslot, neogeo, neogeo_noslot_state, svcsplus, ROT0, "bootleg", "SNK vs. Capcom - SVC Chaos Super Plus (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 2003, samsho5, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, samsho5, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V / Samurai Spirits Zero (NGM-2700)", GAME_SUPPORTS_SAVE )
-GAME( 2003, samsho5h, samsho5, neogeo_noslot, neogeo, neogeo_noslot_state, samsho5, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V / Samurai Spirits Zero (NGH-2700)", GAME_SUPPORTS_SAVE )
-GAME( 2003, samsho5b, samsho5, neogeo_noslot, neogeo, neogeo_noslot_state, samsho5b, ROT0, "bootleg", "Samurai Shodown V / Samurai Spirits Zero (bootleg)", GAME_SUPPORTS_SAVE ) // different program scrambling
-GAME( 2003, kf2k3pcb, 0, neogeo_noslot, neogeo, neogeo_noslot_state, kf2k3pcb, ROT0, "SNK Playmore", "The King of Fighters 2003 (Japan, JAMMA PCB)", GAME_SUPPORTS_SAVE ) // not a clone of neogeo because it's NOT a neogeo cart.
-GAME( 2003, kof2003, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, kof2003, ROT0, "SNK Playmore", "The King of Fighters 2003 (NGM-2710)", GAME_SUPPORTS_SAVE )
-GAME( 2003, kof2003h, kof2003, neogeo_noslot, neogeo, neogeo_noslot_state, kof2003h, ROT0, "SNK Playmore", "The King of Fighters 2003 (NGH-2710)", GAME_SUPPORTS_SAVE )
-GAME( 2003, kf2k3bl, kof2003, neogeo_noslot, neogeo, neogeo_noslot_state, kf2k3bl , ROT0, "bootleg", "The King of Fighters 2003 (bootleg set 1)", GAME_SUPPORTS_SAVE ) // zooming is wrong because its a bootleg of the pcb version on a cart (unless it was a bootleg pcb with the new bios?)
-GAME( 2003, kf2k3bla, kof2003, neogeo_noslot, neogeo, neogeo_noslot_state, kf2k3pl, ROT0, "bootleg", "The King of Fighters 2003 (bootleg set 2)", GAME_SUPPORTS_SAVE ) // zooming is wrong because its a bootleg of the pcb version on a cart
-GAME( 2003, kf2k3pl, kof2003, neogeo_noslot, neogeo, neogeo_noslot_state, kf2k3pl, ROT0, "bootleg", "The King of Fighters 2004 Plus / Hero (The King of Fighters 2003 bootleg)", GAME_SUPPORTS_SAVE ) // zooming is wrong because its a bootleg of the pcb version on a cart
-GAME( 2003, kf2k3upl, kof2003, neogeo_noslot, neogeo, neogeo_noslot_state, kf2k3upl, ROT0, "bootleg", "The King of Fighters 2004 Ultra Plus (The King of Fighters 2003 bootleg)", GAME_SUPPORTS_SAVE ) // zooming is wrong because its a bootleg of the pcb version on a cart
-GAME( 2004, samsh5sp, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, samsh5sp, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V Special / Samurai Spirits Zero Special (NGM-2720)", GAME_SUPPORTS_SAVE )
-GAME( 2004, samsh5sph, samsh5sp, neogeo_noslot, neogeo, neogeo_noslot_state, samsh5sp, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V Special / Samurai Spirits Zero Special (NGH-2720) (2nd release, less censored)", GAME_SUPPORTS_SAVE )
-GAME( 2004, samsh5spho, samsh5sp, neogeo_noslot, neogeo, neogeo_noslot_state, samsh5sp, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V Special / Samurai Spirits Zero Special (NGH-2720) (1st release, censored)", GAME_SUPPORTS_SAVE )
+GAME( 1990, nam1975, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "NAM-1975 (NGM-001)(NGH-001)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, bstars, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Baseball Stars Professional (NGM-002)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, bstarsh, bstars, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Baseball Stars Professional (NGH-002)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, tpgolf, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Top Player's Golf (NGM-003)(NGH-003)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, mahretsu, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Mahjong Kyo Retsuden (NGM-004)(NGH-004)", MACHINE_SUPPORTS_SAVE ) // does not support mahjong panel in MVS mode
+GAME( 1990, ridhero, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Riding Hero (NGM-006)(NGH-006)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, ridheroh, ridhero, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Riding Hero (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, alpham2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Alpha Mission II / ASO II - Last Guardian (NGM-007)(NGH-007)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, alpham2p, alpham2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Alpha Mission II / ASO II - Last Guardian (prototype)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, cyberlip, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Cyber-Lip (NGM-010)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, superspy, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The Super Spy (NGM-011)(NGH-011)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, mutnat, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Mutation Nation (NGM-014)(NGH-014)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, kotm, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "King of the Monsters (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, kotmh, kotm, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "King of the Monsters (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, sengoku, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Sengoku / Sengoku Denshou (NGM-017)(NGH-017)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, sengokuh, sengoku, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Sengoku / Sengoku Denshou (NGH-017)(US)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, burningf, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Burning Fight (NGM-018)(NGH-018)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, burningfh, burningf, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Burning Fight (NGH-018)(US)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, burningfp, burningf, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Burning Fight (prototype)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, lbowling, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "League Bowling (NGM-019)(NGH-019)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, gpilots, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Ghost Pilots (NGM-020)(NGH-020)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, gpilotsh, gpilots, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Ghost Pilots (NGH-020)(US)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, joyjoy, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Puzzled / Joy Joy Kid (NGM-021)(NGH-021)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, quizdais, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Quiz Daisousa Sen - The Last Count Down (NGM-023)(NGH-023)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, quizdaisk, quizdais, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Quiz Daisousa Sen - The Last Count Down (Korean release)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, lresort, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Last Resort", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, eightman, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK / Pallas", "Eight Man (NGM-025)(NGH-025)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, legendos, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Legend of Success Joe / Ashita no Joe Densetsu", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, 2020bb, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK / Pallas", "2020 Super Baseball (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, 2020bba, 2020bb, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK / Pallas", "2020 Super Baseball (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, 2020bbh, 2020bb, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK / Pallas", "2020 Super Baseball (set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, socbrawl, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Soccer Brawl (NGM-031)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, socbrawlh, socbrawl, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Soccer Brawl (NGH-031)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, fatfury1, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Fatal Fury - King of Fighters / Garou Densetsu - shukumei no tatakai (NGM-033)(NGH-033)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, roboarmy, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Robo Army", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, fbfrenzy, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Football Frenzy (NGM-034)(NGH-034)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, kotm2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "King of the Monsters 2 - The Next Thing (NGM-039)(NGH-039)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, kotm2p, kotm2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "King of the Monsters 2 - The Next Thing (prototype)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, sengoku2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Sengoku 2 / Sengoku Denshou 2", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, bstars2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Baseball Stars 2", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, quizdai2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Quiz Meitantei Neo & Geo - Quiz Daisousa Sen part 2 (NGM-042)(NGH-042)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, 3countb, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "3 Count Bout / Fire Suplex (NGM-043)(NGH-043)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, aof, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Art of Fighting / Ryuuko no Ken (NGM-044)(NGH-044)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, samsho, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Samurai Shodown / Samurai Spirits (NGM-045)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, samshoh, samsho, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Samurai Shodown / Samurai Spirits (NGH-045)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, tophuntr, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Top Hunter - Roddy & Cathy (NGM-046)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, tophuntrh, tophuntr, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Top Hunter - Roddy & Cathy (NGH-046)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, fatfury2, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, fatfury2, ROT0, "SNK", "Fatal Fury 2 / Garou Densetsu 2 - arata-naru tatakai (NGM-047)(NGH-047)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, ssideki, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, fatfury2, ROT0, "SNK", "Super Sidekicks / Tokuten Ou", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, kof94, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '94 (NGM-055)(NGH-055)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, aof2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Art of Fighting 2 / Ryuuko no Ken 2 (NGM-056)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, aof2a, aof2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Art of Fighting 2 / Ryuuko no Ken 2 (NGH-056)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, fatfursp, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Fatal Fury Special / Garou Densetsu Special (set 1)(NGM-058)(NGH-058)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, fatfurspa, fatfursp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Fatal Fury Special / Garou Densetsu Special (set 2)(NGM-058)(NGH-058)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, savagere, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Savage Reign / Fu'un Mokushiroku - kakutou sousei", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, ssideki2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Super Sidekicks 2 - The World Championship / Tokuten Ou 2 - real fight football (NGM-061)(NGH-061)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, samsho2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Samurai Shodown II / Shin Samurai Spirits - Haohmaru jigokuhen (NGM-063)(NGH-063)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, samsho2k, samsho2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Saulabi Spirits / Jin Saulabi Tu Hon (Korean release of Samurai Shodown II)", MACHINE_SUPPORTS_SAVE ) // official or hack?
+GAME( 1995, fatfury3, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Fatal Fury 3 - Road to the Final Victory / Garou Densetsu 3 - haruka-naru tatakai (NGM-069)(NGH-069)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, ssideki3, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Super Sidekicks 3 - The Next Glory / Tokuten Ou 3 - eikou e no michi", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kof95, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '95 (NGM-084)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kof95a, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '95 (NGM-084), alternate board", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kof95h, kof95, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '95 (NGH-084)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, samsho3, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Samurai Shodown III / Samurai Spirits - Zankurou Musouken (NGM-087)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, samsho3h, samsho3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Samurai Shodown III / Samurai Spirits - Zankurou Musouken (NGH-087)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, fswords, samsho3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Fighters Swords (Korean release of Samurai Shodown III)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, rbff1, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury / Real Bout Garou Densetsu (NGM-095)(NGH-095)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, rbff1a, rbff1, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury / Real Bout Garou Densetsu (bug fix revision)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, aof3, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Art of Fighting 3 - The Path of the Warrior / Art of Fighting - Ryuuko no Ken Gaiden", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, aof3k, aof3, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Art of Fighting 3 - The Path of the Warrior (Korean release)", MACHINE_SUPPORTS_SAVE ) // no Japanese title / mode
+GAME( 1996, kof96, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '96 (NGM-214)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kof96h, kof96, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '96 (NGH-214)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, ssideki4, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The Ultimate 11 - The SNK Football Championship / Tokuten Ou - Honoo no Libero", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kizuna, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Kizuna Encounter - Super Tag Battle / Fu'un Super Tag Battle", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, kizuna4p, kizuna, neogeo_noslot, kizuna4p, neogeo_state, neogeo, ROT0, "SNK", "Kizuna Encounter - Super Tag Battle 4 Way Battle Version / Fu'un Super Tag Battle Special Version", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, samsho4, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Samurai Shodown IV - Amakusa's Revenge / Samurai Spirits - Amakusa Kourin (NGM-222)(NGH-222)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, samsho4k, samsho4, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Pae Wang Jeon Seol / Legend of a Warrior (Korean censored Samurai Shodown IV)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, rbffspec, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury Special / Real Bout Garou Densetsu Special", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, rbffspeck, rbffspec, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury Special / Real Bout Garou Densetsu Special (Korean release)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '97 (NGM-2320)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97h, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '97 (NGH-2320)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97k, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '97 (Korean release)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97pls, kof97, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "The King of Fighters '97 Plus (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kof97oro, kof97, neogeo_noslot, neogeo, neogeo_noslot_state, kof97oro, ROT0, "bootleg", "The King of Fighters '97 Oroshi Plus 2003 (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, kog, kof97, neogeo_noslot_kog, neogeo, neogeo_noslot_kog_state, kog, ROT0, "bootleg", "King of Gladiator (The King of Fighters '97 bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // protected bootleg
+GAME( 1997, lastblad, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The Last Blade / Bakumatsu Roman - Gekka no Kenshi (NGM-2340)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lastbladh, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The Last Blade / Bakumatsu Roman - Gekka no Kenshi (NGH-2340)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, lastsold, lastblad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The Last Soldier (Korean release of The Last Blade)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, irrmaze, neogeo, neogeo_noslot, irrmaze, neogeo_state, neogeo, ROT0, "SNK / Saurus", "The Irritating Maze / Ultra Denryu Iraira Bou", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, rbff2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury 2 - The Newcomers / Real Bout Garou Densetsu 2 - the newcomers (NGM-2400)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, rbff2h, rbff2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury 2 - The Newcomers / Real Bout Garou Densetsu 2 - the newcomers (NGH-2400)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, rbff2k, rbff2, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Real Bout Fatal Fury 2 - The Newcomers (Korean release)", MACHINE_SUPPORTS_SAVE ) // no Japanese title / mode
+GAME( 1998, mslug2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Metal Slug 2 - Super Vehicle-001/II (NGM-2410)(NGH-2410)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, kof98, ROT0, "SNK", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - dream match never ends (NGM-2420)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98a, kof98, neogeo_noslot, neogeo, neogeo_noslot_state, kof98, ROT0, "SNK", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - dream match never ends (NGM-2420, alternate board)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98k, kof98, neogeo_noslot, neogeo, neogeo_noslot_state, kof98, ROT0, "SNK", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - dream match never ends (Korean board)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98ka, kof98, neogeo_noslot, neogeo, neogeo_noslot_state, kof98, ROT0, "SNK", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - dream match never ends (Korean board 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, kof98h, kof98, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '98 - The Slugfest / King of Fighters '98 - dream match never ends (NGH-2420)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, lastbld2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The Last Blade 2 / Bakumatsu Roman - Dai Ni Maku Gekka no Kenshi (NGM-2430)(NGH-2430)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, neocup98, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Neo-Geo Cup '98 - The Road to the Victory", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, mslugx, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, mslugx, ROT0, "SNK", "Metal Slug X - Super Vehicle-001 (NGM-2500)(NGH-2500)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, kof99, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, kof99, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (NGM-2510)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */
+GAME( 1999, kof99h, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (NGH-2510)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX, crashes going into attract demo */
+GAME( 1999, kof99e, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (earlier)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */
+GAME( 1999, kof99k, kof99, neogeo_noslot, neogeo, neogeo_noslot_state, kof99k, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (Korean release)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */
+GAME( 1999, kof99p, kof99, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "The King of Fighters '99 - Millennium Battle (prototype)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, garou, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, garou, ROT0, "SNK", "Garou - Mark of the Wolves (NGM-2530)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */
+GAME( 1999, garouh, garou, neogeo_noslot, neogeo, neogeo_noslot_state, garouh, ROT0, "SNK", "Garou - Mark of the Wolves (NGM-2530)(NGH-2530)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */
+GAME( 1999, garoup, garou, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "SNK", "Garou - Mark of the Wolves (prototype)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, garoubl, garou, neogeo_noslot, neogeo, neogeo_noslot_state, garoubl, ROT0, "bootleg", "Garou - Mark of the Wolves (bootleg)", MACHINE_SUPPORTS_SAVE ) /* Bootleg of garoup */
+GAME( 2000, mslug3, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, mslug3, ROT0, "SNK", "Metal Slug 3 (NGM-2560)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */
+GAME( 2000, mslug3h, mslug3, neogeo_noslot, neogeo, neogeo_noslot_state, mslug3h, ROT0, "SNK", "Metal Slug 3 (NGH-2560)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */
+GAME( 2000, mslug3b6, mslug3, neogeo_noslot, neogeo, neogeo_noslot_state, mslug3b6, ROT0, "bootleg", "Metal Slug 6 (Metal Slug 3 bootleg)", MACHINE_SUPPORTS_SAVE ) /* real Metal Slug 6 is an Atomiswave HW game, see naomi.c ;-) */
+GAME( 2000, kof2000, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, kof2000, ROT0, "SNK", "The King of Fighters 2000 (NGM-2570) (NGH-2570)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code & GFX */
+GAME( 2000, kof2000n, kof2000, neogeo_noslot, neogeo, neogeo_noslot_state, kof2000n, ROT0, "SNK", "The King of Fighters 2000 (not encrypted)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */
+GAME( 2001, zupapa, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, zupapa, ROT0, "SNK", "Zupapa!" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */
+GAME( 2001, sengoku3, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, sengoku3, ROT0, "Noise Factory / SNK", "Sengoku 3 / Sengoku Densho 2001" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */
+GAME( 2001, kof2001, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, kof2001, ROT0, "Eolith / SNK", "The King of Fighters 2001 (NGM-262?)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */
+GAME( 2001, kof2001h, kof2001, neogeo_noslot, neogeo, neogeo_noslot_state, kof2001, ROT0, "Eolith / SNK", "The King of Fighters 2001 (NGH-2621)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */
+GAME( 2003, cthd2003, kof2001, neogeo_noslot, neogeo, neogeo_noslot_state, cthd2003, ROT0, "bootleg", "Crouching Tiger Hidden Dragon 2003 (The King of Fighters 2001 bootleg)", MACHINE_SUPPORTS_SAVE ) /* Protected Hack / Bootleg of kof2001 */
+GAME( 2003, ct2k3sp, kof2001, neogeo_noslot, neogeo, neogeo_noslot_state, ct2k3sp, ROT0, "bootleg", "Crouching Tiger Hidden Dragon 2003 Super Plus (The King of Fighters 2001 bootleg)", MACHINE_SUPPORTS_SAVE ) /* Protected Hack / Bootleg of kof2001 */
+GAME( 2003, ct2k3sa, kof2001, neogeo_noslot, neogeo, neogeo_noslot_state, ct2k3sa, ROT0, "bootleg", "Crouching Tiger Hidden Dragon 2003 Super Plus alternate (The King of Fighters 2001 bootleg)", MACHINE_SUPPORTS_SAVE ) /* Hack / Bootleg of kof2001 */
+GAME( 2002, kof2002, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, kof2002, ROT0, "Eolith / Playmore", "The King of Fighters 2002 (NGM-2650)(NGH-2650)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */
+GAME( 2002, kof2002b, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kof2002b, ROT0, "bootleg", "The King of Fighters 2002 (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, kf2k2pls, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kf2k2pls, ROT0, "bootleg", "The King of Fighters 2002 Plus (bootleg set 1)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */
+GAME( 2002, kf2k2pla, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kf2k2pls, ROT0, "bootleg", "The King of Fighters 2002 Plus (bootleg set 2)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */
+GAME( 2002, kf2k2mp, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kf2k2mp, ROT0, "bootleg", "The King of Fighters 2002 Magic Plus (bootleg)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */
+GAME( 2002, kf2k2mp2, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kf2k2mp2, ROT0, "bootleg", "The King of Fighters 2002 Magic Plus II (bootleg)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */
+GAME( 2002, kof10th, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kof10th, ROT0, "bootleg", "The King of Fighters 10th Anniversary (The King of Fighters 2002 bootleg)", MACHINE_SUPPORTS_SAVE ) // fake SNK copyright
+GAME( 2005, kf10thep, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kf10thep, ROT0, "bootleg", "The King of Fighters 10th Anniversary Extra Plus (The King of Fighters 2002 bootleg)", MACHINE_SUPPORTS_SAVE ) // fake SNK copyright
+GAME( 2004, kf2k5uni, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kf2k5uni, ROT0, "bootleg", "The King of Fighters 10th Anniversary 2005 Unique (The King of Fighters 2002 bootleg)", MACHINE_SUPPORTS_SAVE ) // fake SNK copyright
+GAME( 2004, kof2k4se, kof2002, neogeo_noslot, neogeo, neogeo_noslot_state, kof2k4se, ROT0, "bootleg", "The King of Fighters Special Edition 2004 (The King of Fighters 2002 bootleg)", MACHINE_SUPPORTS_SAVE ) /* Hack / Bootleg of kof2002 */
+GAME( 2003, mslug5, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, mslug5, ROT0, "SNK Playmore", "Metal Slug 5 (NGM-2680)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, mslug5h, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, mslug5, ROT0, "SNK Playmore", "Metal Slug 5 (NGH-2680)", MACHINE_SUPPORTS_SAVE ) /* Also found in later MVS carts */
+GAME( 2003, ms5pcb, 0, neogeo_noslot, dualbios, neogeo_noslot_state, ms5pcb, ROT0, "SNK Playmore", "Metal Slug 5 (JAMMA PCB)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, ms5plus, mslug5, neogeo_noslot, neogeo, neogeo_noslot_state, ms5plus, ROT0, "bootleg", "Metal Slug 5 Plus (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcpcb, 0, neogeo_noslot, dualbios, neogeo_noslot_state, svcpcb, ROT0, "SNK Playmore", "SNK vs. Capcom - SVC Chaos (JAMMA PCB, set 1)", MACHINE_SUPPORTS_SAVE ) // not a clone of neogeo because it's NOT a neogeo cart.
+GAME( 2003, svcpcba, svcpcb, neogeo_noslot, dualbios, neogeo_noslot_state, svcpcb, ROT0, "SNK Playmore", "SNK vs. Capcom - SVC Chaos (JAMMA PCB, set 2)" , MACHINE_SUPPORTS_SAVE ) /* Encrypted Code */
+GAME( 2003, svc, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, svc, ROT0, "SNK Playmore", "SNK vs. Capcom - SVC Chaos (NGM-2690)(NGH-2690)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcboot, svc, neogeo_noslot, neogeo, neogeo_noslot_state, svcboot, ROT0, "bootleg", "SNK vs. Capcom - SVC Chaos (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcplus, svc, neogeo_noslot, neogeo, neogeo_noslot_state, svcplus, ROT0, "bootleg", "SNK vs. Capcom - SVC Chaos Plus (bootleg set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcplusa, svc, neogeo_noslot, neogeo, neogeo_noslot_state, svcplusa, ROT0, "bootleg", "SNK vs. Capcom - SVC Chaos Plus (bootleg set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, svcsplus, svc, neogeo_noslot, neogeo, neogeo_noslot_state, svcsplus, ROT0, "bootleg", "SNK vs. Capcom - SVC Chaos Super Plus (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, samsho5, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, samsho5, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V / Samurai Spirits Zero (NGM-2700)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, samsho5h, samsho5, neogeo_noslot, neogeo, neogeo_noslot_state, samsho5, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V / Samurai Spirits Zero (NGH-2700)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, samsho5b, samsho5, neogeo_noslot, neogeo, neogeo_noslot_state, samsho5b, ROT0, "bootleg", "Samurai Shodown V / Samurai Spirits Zero (bootleg)", MACHINE_SUPPORTS_SAVE ) // different program scrambling
+GAME( 2003, kf2k3pcb, 0, neogeo_noslot, neogeo, neogeo_noslot_state, kf2k3pcb, ROT0, "SNK Playmore", "The King of Fighters 2003 (Japan, JAMMA PCB)", MACHINE_SUPPORTS_SAVE ) // not a clone of neogeo because it's NOT a neogeo cart.
+GAME( 2003, kof2003, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, kof2003, ROT0, "SNK Playmore", "The King of Fighters 2003 (NGM-2710)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kof2003h, kof2003, neogeo_noslot, neogeo, neogeo_noslot_state, kof2003h, ROT0, "SNK Playmore", "The King of Fighters 2003 (NGH-2710)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, kf2k3bl, kof2003, neogeo_noslot, neogeo, neogeo_noslot_state, kf2k3bl , ROT0, "bootleg", "The King of Fighters 2003 (bootleg set 1)", MACHINE_SUPPORTS_SAVE ) // zooming is wrong because its a bootleg of the pcb version on a cart (unless it was a bootleg pcb with the new bios?)
+GAME( 2003, kf2k3bla, kof2003, neogeo_noslot, neogeo, neogeo_noslot_state, kf2k3pl, ROT0, "bootleg", "The King of Fighters 2003 (bootleg set 2)", MACHINE_SUPPORTS_SAVE ) // zooming is wrong because its a bootleg of the pcb version on a cart
+GAME( 2003, kf2k3pl, kof2003, neogeo_noslot, neogeo, neogeo_noslot_state, kf2k3pl, ROT0, "bootleg", "The King of Fighters 2004 Plus / Hero (The King of Fighters 2003 bootleg)", MACHINE_SUPPORTS_SAVE ) // zooming is wrong because its a bootleg of the pcb version on a cart
+GAME( 2003, kf2k3upl, kof2003, neogeo_noslot, neogeo, neogeo_noslot_state, kf2k3upl, ROT0, "bootleg", "The King of Fighters 2004 Ultra Plus (The King of Fighters 2003 bootleg)", MACHINE_SUPPORTS_SAVE ) // zooming is wrong because its a bootleg of the pcb version on a cart
+GAME( 2004, samsh5sp, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, samsh5sp, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V Special / Samurai Spirits Zero Special (NGM-2720)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, samsh5sph, samsh5sp, neogeo_noslot, neogeo, neogeo_noslot_state, samsh5sp, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V Special / Samurai Spirits Zero Special (NGH-2720) (2nd release, less censored)", MACHINE_SUPPORTS_SAVE )
+GAME( 2004, samsh5spho, samsh5sp, neogeo_noslot, neogeo, neogeo_noslot_state, samsh5sp, ROT0, "Yuki Enterprise / SNK Playmore", "Samurai Shodown V Special / Samurai Spirits Zero Special (NGH-2720) (1st release, censored)", MACHINE_SUPPORTS_SAVE )
/* Alpha Denshi Co. / ADK (changed name in 1993) */
-GAME( 1990, maglord, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Magician Lord (NGM-005)", GAME_SUPPORTS_SAVE )
-GAME( 1990, maglordh, maglord, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Magician Lord (NGH-005)", GAME_SUPPORTS_SAVE )
-GAME( 1990, ncombat, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Ninja Combat (NGM-009)", GAME_SUPPORTS_SAVE )
-GAME( 1990, ncombath, ncombat, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Ninja Combat (NGH-009)", GAME_SUPPORTS_SAVE )
-GAME( 1990, bjourney, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Blue's Journey / Raguy (ALM-001)(ALH-001)", GAME_SUPPORTS_SAVE )
-GAME( 1991, crsword, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Crossed Swords (ALM-002)(ALH-002)", GAME_SUPPORTS_SAVE )
-GAME( 1991, trally, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Thrash Rally (ALM-003)(ALH-003)", GAME_SUPPORTS_SAVE )
-GAME( 1992, ncommand, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Ninja Commando", GAME_SUPPORTS_SAVE )
-GAME( 1992, wh1, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "World Heroes (ALM-005)", GAME_SUPPORTS_SAVE )
-GAME( 1992, wh1h, wh1, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "World Heroes (ALH-005)", GAME_SUPPORTS_SAVE )
-GAME( 1992, wh1ha, wh1, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "World Heroes (set 3)", GAME_SUPPORTS_SAVE )
-GAME( 1993, wh2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ADK", "World Heroes 2 (ALM-006)(ALH-006)", GAME_SUPPORTS_SAVE )
-GAME( 1994, wh2j, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ADK / SNK", "World Heroes 2 Jet (ADM-007)(ADH-007)", GAME_SUPPORTS_SAVE )
-GAME( 1994, aodk, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ADK / SNK", "Aggressors of Dark Kombat / Tsuukai GANGAN Koushinkyoku (ADM-008)(ADH-008)", GAME_SUPPORTS_SAVE )
-GAME( 1995, whp, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ADK / SNK", "World Heroes Perfect", GAME_SUPPORTS_SAVE )
-GAME( 1995, mosyougi, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ADK / SNK", "Syougi No Tatsujin - Master of Syougi", GAME_SUPPORTS_SAVE )
-GAME( 1996, overtop, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ADK", "Over Top", GAME_SUPPORTS_SAVE )
-GAME( 1996, ninjamas, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ADK / SNK", "Ninja Master's - haoh-ninpo-cho", GAME_SUPPORTS_SAVE )
-GAME( 1996, twinspri, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ADK / SNK", "Twinkle Star Sprites", GAME_SUPPORTS_SAVE )
-GAME( 1996, zintrckb, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Zintrick / Oshidashi Zentrix (hack)", GAME_SUPPORTS_SAVE )
+GAME( 1990, maglord, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Magician Lord (NGM-005)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, maglordh, maglord, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Magician Lord (NGH-005)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, ncombat, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Ninja Combat (NGM-009)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, ncombath, ncombat, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Ninja Combat (NGH-009)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, bjourney, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Blue's Journey / Raguy (ALM-001)(ALH-001)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, crsword, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Crossed Swords (ALM-002)(ALH-002)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, trally, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Thrash Rally (ALM-003)(ALH-003)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, ncommand, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "Ninja Commando", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wh1, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "World Heroes (ALM-005)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wh1h, wh1, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "World Heroes (ALH-005)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, wh1ha, wh1, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Alpha Denshi Co.", "World Heroes (set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, wh2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ADK", "World Heroes 2 (ALM-006)(ALH-006)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, wh2j, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ADK / SNK", "World Heroes 2 Jet (ADM-007)(ADH-007)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, aodk, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ADK / SNK", "Aggressors of Dark Kombat / Tsuukai GANGAN Koushinkyoku (ADM-008)(ADH-008)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, whp, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ADK / SNK", "World Heroes Perfect", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, mosyougi, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ADK / SNK", "Syougi No Tatsujin - Master of Syougi", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, overtop, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ADK", "Over Top", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, ninjamas, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ADK / SNK", "Ninja Master's - haoh-ninpo-cho", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, twinspri, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "ADK / SNK", "Twinkle Star Sprites", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, zintrckb, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "hack", "Zintrick / Oshidashi Zentrix (hack)", MACHINE_SUPPORTS_SAVE )
/* Aicom (was a part of Sammy) / Yumekobo (changed name in 1996) */
-GAME( 1992, viewpoin, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Sammy / Aicom", "Viewpoint", GAME_SUPPORTS_SAVE )
-GAME( 1994, janshin, neogeo, neogeo_noslot, mjneogeo, neogeo_state, neogeo, ROT0, "Aicom", "Jyanshin Densetsu - Quest of Jongmaster", GAME_SUPPORTS_SAVE )
-GAME( 1995, pulstar, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Aicom", "Pulstar", GAME_SUPPORTS_SAVE )
-GAME( 1998, blazstar, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumekobo", "Blazing Star", GAME_SUPPORTS_SAVE )
-GAME( 1999, preisle2, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, preisle2, ROT0, "Yumekobo", "Prehistoric Isle 2" , GAME_SUPPORTS_SAVE ) /* Encrypted GFX */
+GAME( 1992, viewpoin, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Sammy / Aicom", "Viewpoint", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, janshin, neogeo, neogeo_noslot, mjneogeo, neogeo_state, neogeo, ROT0, "Aicom", "Jyanshin Densetsu - Quest of Jongmaster", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, pulstar, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Aicom", "Pulstar", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, blazstar, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Yumekobo", "Blazing Star", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, preisle2, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, preisle2, ROT0, "Yumekobo", "Prehistoric Isle 2" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */
/* Data East Corporation */
-GAME( 1993, spinmast, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Spin Master / Miracle Adventure", GAME_SUPPORTS_SAVE )
-GAME( 1994, wjammers, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Windjammers / Flying Power Disc", GAME_SUPPORTS_SAVE )
-GAME( 1994, karnovr, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Karnov's Revenge / Fighter's History Dynamite", GAME_SUPPORTS_SAVE )
-GAME( 1994, strhoop, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Street Hoop / Street Slam / Dunk Dream (DEM-004)(DEH-004)", GAME_SUPPORTS_SAVE )
-GAME( 1996, ghostlop, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Ghostlop (prototype)", GAME_SUPPORTS_SAVE )
-GAME( 1996, magdrop2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Magical Drop II", GAME_SUPPORTS_SAVE )
-GAME( 1997, magdrop3, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Magical Drop III", GAME_SUPPORTS_SAVE )
+GAME( 1993, spinmast, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Spin Master / Miracle Adventure", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, wjammers, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Windjammers / Flying Power Disc", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, karnovr, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Karnov's Revenge / Fighter's History Dynamite", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, strhoop, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Street Hoop / Street Slam / Dunk Dream (DEM-004)(DEH-004)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, ghostlop, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Ghostlop (prototype)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, magdrop2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Magical Drop II", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, magdrop3, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Data East Corporation", "Magical Drop III", MACHINE_SUPPORTS_SAVE )
/* Eleven */
-GAME( 2000, nitd, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, nitd, ROT0, "Eleven / Gavaking", "Nightmare in the Dark" , GAME_SUPPORTS_SAVE ) /* Encrypted GFX */
-GAME( 2001, nitdbl, nitd, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Nightmare in the Dark (bootleg)" , GAME_SUPPORTS_SAVE )
+GAME( 2000, nitd, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, nitd, ROT0, "Eleven / Gavaking", "Nightmare in the Dark" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */
+GAME( 2001, nitdbl, nitd, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Nightmare in the Dark (bootleg)" , MACHINE_SUPPORTS_SAVE )
/* Face */
-GAME( 1994, gururin, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Face", "Gururin", GAME_SUPPORTS_SAVE )
-GAME( 1997, miexchng, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Face", "Money Puzzle Exchanger / Money Idol Exchanger", GAME_SUPPORTS_SAVE )
+GAME( 1994, gururin, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Face", "Gururin", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, miexchng, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Face", "Money Puzzle Exchanger / Money Idol Exchanger", MACHINE_SUPPORTS_SAVE )
/* Hudson Soft */
-GAME( 1994, panicbom, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Eighting / Hudson", "Panic Bomber", GAME_SUPPORTS_SAVE )
-GAME( 1995, kabukikl, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hudson", "Far East of Eden - Kabuki Klash / Tengai Makyou - Shin Den", GAME_SUPPORTS_SAVE )
-GAME( 1997, neobombe, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hudson", "Neo Bomberman", GAME_SUPPORTS_SAVE )
+GAME( 1994, panicbom, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Eighting / Hudson", "Panic Bomber", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, kabukikl, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hudson", "Far East of Eden - Kabuki Klash / Tengai Makyou - Shin Den", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, neobombe, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Hudson", "Neo Bomberman", MACHINE_SUPPORTS_SAVE )
/* Monolith Corp. */
-GAME( 1990, minasan, neogeo, neogeo_noslot, mjneogeo, neogeo_state, neogeo, ROT0, "Monolith Corp.", "Minasanno Okagesamadesu! Daisugorokutaikai (MOM-001)(MOH-001)", GAME_SUPPORTS_SAVE )
-GAME( 1991, bakatono, neogeo, neogeo_noslot, mjneogeo, neogeo_state, neogeo, ROT0, "Monolith Corp.", "Bakatonosama Mahjong Manyuuki (MOM-002)(MOH-002)", GAME_SUPPORTS_SAVE )
+GAME( 1990, minasan, neogeo, neogeo_noslot, mjneogeo, neogeo_state, neogeo, ROT0, "Monolith Corp.", "Minasanno Okagesamadesu! Daisugorokutaikai (MOM-001)(MOH-001)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, bakatono, neogeo, neogeo_noslot, mjneogeo, neogeo_state, neogeo, ROT0, "Monolith Corp.", "Bakatonosama Mahjong Manyuuki (MOM-002)(MOH-002)", MACHINE_SUPPORTS_SAVE )
/* Nazca (later acquired by SNK) */
-GAME( 1996, turfmast, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Nazca", "Neo Turf Masters / Big Tournament Golf", GAME_SUPPORTS_SAVE )
-GAME( 1996, mslug, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Nazca", "Metal Slug - Super Vehicle-001", GAME_SUPPORTS_SAVE )
+GAME( 1996, turfmast, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Nazca", "Neo Turf Masters / Big Tournament Golf", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, mslug, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Nazca", "Metal Slug - Super Vehicle-001", MACHINE_SUPPORTS_SAVE )
/* NMK */
-GAME( 1994, zedblade, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "NMK", "Zed Blade / Operation Ragnarok", GAME_SUPPORTS_SAVE )
+GAME( 1994, zedblade, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "NMK", "Zed Blade / Operation Ragnarok", MACHINE_SUPPORTS_SAVE )
/* Psikyo */
-GAME( 1999, s1945p, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, s1945p, ROT0, "Psikyo", "Strikers 1945 Plus" , GAME_SUPPORTS_SAVE ) /* Encrypted GFX */
+GAME( 1999, s1945p, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, s1945p, ROT0, "Psikyo", "Strikers 1945 Plus" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */
/* Saurus */
-GAME( 1995, quizkof, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Quiz King of Fighters (SAM-080)(SAH-080)", GAME_SUPPORTS_SAVE )
-GAME( 1995, quizkofk, quizkof, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Quiz King of Fighters (Korean release)", GAME_SUPPORTS_SAVE )
-GAME( 1995, stakwin, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Stakes Winner / Stakes Winner - GI kinzen seiha e no michi", GAME_SUPPORTS_SAVE )
-GAME( 1996, ragnagrd, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Ragnagard / Shin-Oh-Ken", GAME_SUPPORTS_SAVE )
-GAME( 1996, pgoal, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Pleasure Goal / Futsal - 5 on 5 Mini Soccer (NGM-219)", GAME_SUPPORTS_SAVE )
-GAME( 1996, ironclad, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Choutetsu Brikin'ger - Iron clad (Prototype)", GAME_SUPPORTS_SAVE )
-GAME( 1996, ironclado, ironclad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Choutetsu Brikin'ger - Iron clad (Prototype, bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1996, stakwin2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Stakes Winner 2", GAME_SUPPORTS_SAVE )
-GAME( 1997, shocktro, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Shock Troopers (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1997, shocktroa, shocktro, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Shock Troopers (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1998, shocktr2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Shock Troopers - 2nd Squad", GAME_SUPPORTS_SAVE )
-GAME( 1998, lans2004, shocktr2, neogeo_noslot, neogeo, neogeo_noslot_state, lans2004, ROT0, "bootleg", "Lansquenet 2004 (Shock Troopers - 2nd Squad bootleg)", GAME_SUPPORTS_SAVE )
+GAME( 1995, quizkof, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Quiz King of Fighters (SAM-080)(SAH-080)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, quizkofk, quizkof, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Quiz King of Fighters (Korean release)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, stakwin, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Stakes Winner / Stakes Winner - GI kinzen seiha e no michi", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, ragnagrd, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Ragnagard / Shin-Oh-Ken", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, pgoal, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Pleasure Goal / Futsal - 5 on 5 Mini Soccer (NGM-219)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, ironclad, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Choutetsu Brikin'ger - Iron clad (Prototype)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, ironclado, ironclad, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Choutetsu Brikin'ger - Iron clad (Prototype, bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, stakwin2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Stakes Winner 2", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, shocktro, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Shock Troopers (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, shocktroa, shocktro, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Shock Troopers (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, shocktr2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Saurus", "Shock Troopers - 2nd Squad", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, lans2004, shocktr2, neogeo_noslot, neogeo, neogeo_noslot_state, lans2004, ROT0, "bootleg", "Lansquenet 2004 (Shock Troopers - 2nd Squad bootleg)", MACHINE_SUPPORTS_SAVE )
/* Sunsoft */
-GAME( 1995, galaxyfg, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Sunsoft", "Galaxy Fight - Universal Warriors", GAME_SUPPORTS_SAVE )
-GAME( 1996, wakuwak7, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Sunsoft", "Waku Waku 7", GAME_SUPPORTS_SAVE )
+GAME( 1995, galaxyfg, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Sunsoft", "Galaxy Fight - Universal Warriors", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, wakuwak7, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Sunsoft", "Waku Waku 7", MACHINE_SUPPORTS_SAVE )
/* Taito */
-GAME( 1994, pbobblen, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Taito", "Puzzle Bobble / Bust-A-Move (Neo-Geo) (NGM-083)", GAME_SUPPORTS_SAVE )
-GAME( 1994, pbobblenb, pbobblen, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Puzzle Bobble / Bust-A-Move (Neo-Geo) (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1999, pbobbl2n, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Taito (SNK license)", "Puzzle Bobble 2 / Bust-A-Move Again (Neo-Geo)", GAME_SUPPORTS_SAVE )
-GAME( 2003, pnyaa, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, pnyaa, ROT0, "Aiky / Taito", "Pochi and Nyaa", GAME_SUPPORTS_SAVE )
+GAME( 1994, pbobblen, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Taito", "Puzzle Bobble / Bust-A-Move (Neo-Geo) (NGM-083)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, pbobblenb, pbobblen, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "bootleg", "Puzzle Bobble / Bust-A-Move (Neo-Geo) (bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, pbobbl2n, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Taito (SNK license)", "Puzzle Bobble 2 / Bust-A-Move Again (Neo-Geo)", MACHINE_SUPPORTS_SAVE )
+GAME( 2003, pnyaa, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, pnyaa, ROT0, "Aiky / Taito", "Pochi and Nyaa", MACHINE_SUPPORTS_SAVE )
/* Takara */
-GAME( 1995, marukodq, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Takara", "Chibi Marukochan Deluxe Quiz", GAME_SUPPORTS_SAVE )
+GAME( 1995, marukodq, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Takara", "Chibi Marukochan Deluxe Quiz", MACHINE_SUPPORTS_SAVE )
/* Technos Japan */
-GAME( 1995, doubledr, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Technos Japan", "Double Dragon (Neo-Geo)", GAME_SUPPORTS_SAVE )
-GAME( 1995, gowcaizr, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Technos Japan", "Voltage Fighter - Gowcaizer / Choujin Gakuen Gowcaizer", GAME_SUPPORTS_SAVE )
-GAME( 1996, sdodgeb, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Technos Japan", "Super Dodge Ball / Kunio no Nekketsu Toukyuu Densetsu", GAME_SUPPORTS_SAVE )
+GAME( 1995, doubledr, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Technos Japan", "Double Dragon (Neo-Geo)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, gowcaizr, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Technos Japan", "Voltage Fighter - Gowcaizer / Choujin Gakuen Gowcaizer", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, sdodgeb, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Technos Japan", "Super Dodge Ball / Kunio no Nekketsu Toukyuu Densetsu", MACHINE_SUPPORTS_SAVE )
/* Tecmo */
-GAME( 1996, tws96, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Tecmo", "Tecmo World Soccer '96", GAME_SUPPORTS_SAVE )
+GAME( 1996, tws96, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Tecmo", "Tecmo World Soccer '96", MACHINE_SUPPORTS_SAVE )
/* Viccom */
-GAME( 1994, fightfev, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Viccom", "Fight Fever (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1994, fightfeva, fightfev, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Viccom", "Fight Fever (set 2)", GAME_SUPPORTS_SAVE )
+GAME( 1994, fightfev, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Viccom", "Fight Fever (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, fightfeva, fightfev, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Viccom", "Fight Fever (set 2)", MACHINE_SUPPORTS_SAVE )
/* Video System Co. */
-GAME( 1994, pspikes2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Video System Co.", "Power Spikes II (NGM-068)", GAME_SUPPORTS_SAVE )
-GAME( 1994, sonicwi2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Video System Co.", "Aero Fighters 2 / Sonic Wings 2", GAME_SUPPORTS_SAVE )
-GAME( 1995, sonicwi3, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Video System Co.", "Aero Fighters 3 / Sonic Wings 3", GAME_SUPPORTS_SAVE )
-GAME( 1997, popbounc, neogeo, neogeo_noslot, popbounc, neogeo_state, neogeo, ROT0, "Video System Co.", "Pop 'n Bounce / Gapporin", GAME_SUPPORTS_SAVE )
+GAME( 1994, pspikes2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Video System Co.", "Power Spikes II (NGM-068)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, sonicwi2, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Video System Co.", "Aero Fighters 2 / Sonic Wings 2", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, sonicwi3, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Video System Co.", "Aero Fighters 3 / Sonic Wings 3", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, popbounc, neogeo, neogeo_noslot, popbounc, neogeo_state, neogeo, ROT0, "Video System Co.", "Pop 'n Bounce / Gapporin", MACHINE_SUPPORTS_SAVE )
/* Visco */
-GAME( 1992, androdun, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Andro Dunos (NGM-049)(NGH-049)", GAME_SUPPORTS_SAVE )
-GAME( 1995, puzzledp, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Taito (Visco license)", "Puzzle De Pon!", GAME_SUPPORTS_SAVE )
-GAME( 1996, neomrdo, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Neo Mr. Do!", GAME_SUPPORTS_SAVE )
-GAME( 1995, goalx3, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Goal! Goal! Goal!", GAME_SUPPORTS_SAVE )
-GAME( 1996, neodrift, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Neo Drift Out - New Technology", GAME_SUPPORTS_SAVE )
-GAME( 1996, breakers, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Breakers", GAME_SUPPORTS_SAVE )
-GAME( 1997, puzzldpr, puzzledp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Taito (Visco license)", "Puzzle De Pon! R!", GAME_SUPPORTS_SAVE )
-GAME( 1998, breakrev, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Breakers Revenge", GAME_SUPPORTS_SAVE )
-GAME( 1998, flipshot, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Battle Flip Shot", GAME_SUPPORTS_SAVE )
-GAME( 1999, ctomaday, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Captain Tomaday", GAME_SUPPORTS_SAVE )
-GAME( 1999, ganryu, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, ganryu, ROT0, "Visco", "Ganryu / Musashi Ganryuki" , GAME_SUPPORTS_SAVE ) /* Encrypted GFX */
-GAME( 2000, bangbead, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, bangbead, ROT0, "Visco", "Bang Bead", GAME_SUPPORTS_SAVE )
-GAME( 2000, b2b, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Bang Bang Busters (2010 NCI release)" , GAME_SUPPORTS_SAVE )
+GAME( 1992, androdun, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Andro Dunos (NGM-049)(NGH-049)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, puzzledp, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Taito (Visco license)", "Puzzle De Pon!", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, neomrdo, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Neo Mr. Do!", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, goalx3, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Goal! Goal! Goal!", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, neodrift, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Neo Drift Out - New Technology", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, breakers, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Breakers", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, puzzldpr, puzzledp, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Taito (Visco license)", "Puzzle De Pon! R!", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, breakrev, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Breakers Revenge", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, flipshot, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Battle Flip Shot", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, ctomaday, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Captain Tomaday", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, ganryu, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, ganryu, ROT0, "Visco", "Ganryu / Musashi Ganryuki" , MACHINE_SUPPORTS_SAVE ) /* Encrypted GFX */
+GAME( 2000, bangbead, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, bangbead, ROT0, "Visco", "Bang Bead", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, b2b, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Visco", "Bang Bang Busters (2010 NCI release)" , MACHINE_SUPPORTS_SAVE )
/* Mega Enterprise */
-GAME( 2002, mslug4, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, mslug4, ROT0, "Mega / Playmore", "Metal Slug 4 (NGM-2630)", GAME_SUPPORTS_SAVE )
-GAME( 2002, mslug4h, mslug4, neogeo_noslot, neogeo, neogeo_noslot_state, mslug4, ROT0, "Mega / Playmore", "Metal Slug 4 (NGH-2630)", GAME_SUPPORTS_SAVE )
-GAME( 2002, ms4plus, mslug4, neogeo_noslot, neogeo, neogeo_noslot_state, ms4plus, ROT0, "bootleg", "Metal Slug 4 Plus (bootleg)", GAME_SUPPORTS_SAVE )
+GAME( 2002, mslug4, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, mslug4, ROT0, "Mega / Playmore", "Metal Slug 4 (NGM-2630)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, mslug4h, mslug4, neogeo_noslot, neogeo, neogeo_noslot_state, mslug4, ROT0, "Mega / Playmore", "Metal Slug 4 (NGH-2630)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, ms4plus, mslug4, neogeo_noslot, neogeo, neogeo_noslot_state, ms4plus, ROT0, "bootleg", "Metal Slug 4 Plus (bootleg)", MACHINE_SUPPORTS_SAVE )
/* Evoga */
-GAME( 2002, rotd, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, rotd, ROT0, "Evoga / Playmore", "Rage of the Dragons (NGM-264?)", GAME_SUPPORTS_SAVE )
+GAME( 2002, rotd, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, rotd, ROT0, "Evoga / Playmore", "Rage of the Dragons (NGM-264?)", MACHINE_SUPPORTS_SAVE )
/* Atlus */
-GAME( 2002, matrim, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, matrim, ROT0, "Noise Factory / Atlus", "Matrimelee / Shin Gouketsuji Ichizoku Toukon (NGM-2660) (NGH-2660)", GAME_SUPPORTS_SAVE )
-GAME( 2002, matrimbl, matrim, neogeo_noslot, neogeo, neogeo_noslot_state, matrimbl, ROT0, "bootleg", "Matrimelee / Shin Gouketsuji Ichizoku Toukon (bootleg)", GAME_SUPPORTS_SAVE )
+GAME( 2002, matrim, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, matrim, ROT0, "Noise Factory / Atlus", "Matrimelee / Shin Gouketsuji Ichizoku Toukon (NGM-2660) (NGH-2660)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, matrimbl, matrim, neogeo_noslot, neogeo, neogeo_noslot_state, matrimbl, ROT0, "bootleg", "Matrimelee / Shin Gouketsuji Ichizoku Toukon (bootleg)", MACHINE_SUPPORTS_SAVE )
/***** Unlicensed commercial releases *****/
/* BrezzaSoft */
-GAME( 2001, jockeygp, neogeo, neogeo_noslot, jockeygp, neogeo_noslot_state, jockeygp, ROT0, "Sun Amusement / BrezzaSoft", "Jockey Grand Prix (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 2001, jockeygpa, jockeygp, neogeo_noslot, jockeygp, neogeo_noslot_state, jockeygp, ROT0, "Sun Amusement / BrezzaSoft", "Jockey Grand Prix (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 2001, vliner, neogeo, neogeo_noslot, vliner, neogeo_noslot_state, vliner, ROT0, "Dyna / BrezzaSoft", "V-Liner (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 2001, vlinero, vliner, neogeo_noslot, vliner, neogeo_noslot_state, vliner, ROT0, "Dyna / BrezzaSoft", "V-Liner (set 2)", GAME_SUPPORTS_SAVE )
+GAME( 2001, jockeygp, neogeo, neogeo_noslot, jockeygp, neogeo_noslot_state, jockeygp, ROT0, "Sun Amusement / BrezzaSoft", "Jockey Grand Prix (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, jockeygpa, jockeygp, neogeo_noslot, jockeygp, neogeo_noslot_state, jockeygp, ROT0, "Sun Amusement / BrezzaSoft", "Jockey Grand Prix (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, vliner, neogeo, neogeo_noslot, vliner, neogeo_noslot_state, vliner, ROT0, "Dyna / BrezzaSoft", "V-Liner (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, vlinero, vliner, neogeo_noslot, vliner, neogeo_noslot_state, vliner, ROT0, "Dyna / BrezzaSoft", "V-Liner (set 2)", MACHINE_SUPPORTS_SAVE )
/* Kyle Hodgetts */
-GAME( 2000, diggerma, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kyle Hodgetts", "Digger Man (prototype)", GAME_SUPPORTS_SAVE )
+GAME( 2000, diggerma, neogeo, neogeo_noslot, neogeo, neogeo_state, neogeo, ROT0, "Kyle Hodgetts", "Digger Man (prototype)", MACHINE_SUPPORTS_SAVE )
/* Vektorlogic */
-GAME( 2004, sbp, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, sbp, ROT0, "Vektorlogic", "Super Bubble Pop", GAME_NOT_WORKING )
+GAME( 2004, sbp, neogeo, neogeo_noslot, neogeo, neogeo_noslot_state, sbp, ROT0, "Vektorlogic", "Super Bubble Pop", MACHINE_NOT_WORKING )
/* NG:DEV.TEAM */
// Last Hope (c)2006 - AES/NEOCD (has no MVS mode)
diff --git a/src/mame/drivers/neoprint.c b/src/mame/drivers/neoprint.c
index ce0d22f3562..6b7589698a6 100644
--- a/src/mame/drivers/neoprint.c
+++ b/src/mame/drivers/neoprint.c
@@ -70,6 +70,7 @@ public:
DECLARE_DRIVER_INIT(98best44);
DECLARE_DRIVER_INIT(npcartv1);
DECLARE_DRIVER_INIT(nprsp);
+ DECLARE_DRIVER_INIT(unkneo);
virtual void machine_start();
virtual void video_start();
DECLARE_MACHINE_RESET(nprsp);
@@ -450,12 +451,12 @@ INPUT_PORTS_END
static const gfx_layout neoprint_layout =
{
16,16,
- RGN_FRAC(1,3),
+ RGN_FRAC(1,1),
6,
- { RGN_FRAC(2,3)+8, RGN_FRAC(2,3)+0, RGN_FRAC(1,3)+8, RGN_FRAC(1,3)+0, RGN_FRAC(0,3)+8, RGN_FRAC(0,3)+0 },
- { 0,1,2,3,4,5,6,7, 256,257,258,259,260,261,262,263 },
- { 0*16,1*16,2*16,3*16,4*16,5*16,6*16,7*16,8*16,9*16,10*16,11*16,12*16,13*16,14*16,15*16 },
- 32*16,
+ { 48, 16, 40, 8, 32, 0 },
+ { 0,1,2,3,4,5,6,7, 1024+0,1024+1,1024+2,1024+3,1024+4,1024+5,1024+6,1024+7 },
+ { 0*64,1*64,2*64,3*64,4*64,5*64,6*64,7*64,8*64,9*64,10*64,11*64,12*64,13*64,14*64,15*64 },
+ 32*64,
};
static GFXDECODE_START( neoprint )
@@ -557,6 +558,26 @@ static MACHINE_CONFIG_START( nprsp, neoprint_state )
MACHINE_CONFIG_END
+// uses NEO-MVS PROGBK1 (Same as NeoGeo MVS cart)
+// and PSTM-ROMC (unique to NeoPrint) (has ZMC chip)
+ROM_START( neoprint )
+ ROM_REGION( 0x200000, "maincpu", ROMREGION_ERASEFF )
+ ROM_LOAD16_WORD_SWAP( "ep1.bin", 0x000000, 0x80000, CRC(271da3ee) SHA1(50132d2ac5524e880ec0c2ba3617bf516fd36e7d) )
+// ROM_RELOAD( 0x100000, 0x80000 ) /* checks the same string from above to be present there? Why? */
+
+ ROM_REGION( 0x20000, "audiocpu", 0 ) /* Z80 program */
+ ROM_LOAD( "m1- tc571000.bin", 0x00000, 0x20000, CRC(d720f53e) SHA1(7a20200065d3da43fcf7d5922d1808dc896b0da8) ) // possible bad dump? (although looks ok, just mostly empty?)
+
+ ROM_REGION( 0x200000, "ymsnd", 0 ) /* Samples */
+ ROM_LOAD( "v1.bin", 0x00000, 0x200000, CRC(c1984fa9) SHA1(9702d253ad75e0b0f0182d8da449328648ff1a2f) )
+
+ ROM_REGION( 0x400000, "gfx1", ROMREGION_ERASE00 )
+ ROM_LOAD32_BYTE( "c1.bin", 0x000000, 0x80000, CRC(ec6770e1) SHA1(2f4629dbadcdbd90117fe5fad1aa5601808864c9) )
+ ROM_LOAD32_BYTE( "c2.bin", 0x000001, 0x80000, CRC(8855bae0) SHA1(cb717abb3f8a121c0e5bb7c6ef76ff30bbc66895) )
+ ROM_LOAD32_BYTE( "c3.bin", 0x200000, 0x80000, CRC(c54be0b2) SHA1(ab64c6115c9033babcaeb0910609ef0f41a5f3f2) )
+ ROM_LOAD32_BYTE( "c4.bin", 0x200001, 0x80000, CRC(c7e5e6ce) SHA1(f1e37732446ae6146b3cb51a9714c5edd539d7e4) )
+ROM_END
+
ROM_START( npcartv1 )
ROM_REGION( 0x200000, "maincpu", ROMREGION_ERASEFF )
ROM_LOAD16_WORD_SWAP( "ep1.bin", 0x000000, 0x80000, CRC(18606198) SHA1(d968e09131c22769e22c7310aca1f02e739f38f1) )
@@ -568,9 +589,9 @@ ROM_START( npcartv1 )
ROM_REGION( 0x080000, "ymsnd", 0 ) /* Samples */
ROM_LOAD( "v1.bin", 0x00000, 0x80000, CRC(2d6608f9) SHA1(7dbde1c305ab3438b7fe7417816427c682371bd4) )
- ROM_REGION( 0x180000, "gfx1", ROMREGION_ERASE00 )
- ROM_LOAD( "c1.bin", 0x00000, 0x80000, CRC(b89f1fb6) SHA1(e711f91a7872b2e0edc3f42a726d969096d684f2) )
- ROM_LOAD( "c2.bin", 0x80000, 0x80000, CRC(7ce39dc2) SHA1(c5be90657350258b670b55dd9c77f7899133ced3) )
+ ROM_REGION( 0x200000, "gfx1", ROMREGION_ERASE00 )
+ ROM_LOAD32_BYTE( "c1.bin", 0x00000, 0x80000, CRC(b89f1fb6) SHA1(e711f91a7872b2e0edc3f42a726d969096d684f2) )
+ ROM_LOAD32_BYTE( "c2.bin", 0x00001, 0x80000, CRC(7ce39dc2) SHA1(c5be90657350258b670b55dd9c77f7899133ced3) )
ROM_END
/* logo: Neo Print
@@ -589,9 +610,9 @@ ROM_START( 98best44 )
ROM_REGION( 0x200000, "ymsnd", 0 ) /* Samples */
ROM_LOAD( "pt004-v1", 0x000000, 0x200000, CRC(118a84fd) SHA1(9059297a42a329eca47a82327c301853219013bd) )
- ROM_REGION( 0x300000, "gfx1", ROMREGION_ERASE00 )
- ROM_LOAD( "pt060-c1", 0x000000, 0x100000, CRC(22a23090) SHA1(0e219fcfea6ca2ddf4b7b4197aac8bc55a29d5cf) )
- ROM_LOAD( "pt060-c2", 0x100000, 0x100000, CRC(66a8e56a) SHA1(adfd1e52d52806a785f1e9b1ae2ac969b6ed60af) )
+ ROM_REGION( 0x400000, "gfx1", ROMREGION_ERASE00 )
+ ROM_LOAD32_BYTE( "pt060-c1", 0x000000, 0x100000, CRC(22a23090) SHA1(0e219fcfea6ca2ddf4b7b4197aac8bc55a29d5cf) )
+ ROM_LOAD32_BYTE( "pt060-c2", 0x000001, 0x100000, CRC(66a8e56a) SHA1(adfd1e52d52806a785f1e9b1ae2ac969b6ed60af) )
ROM_END
ROM_START( nprsp )
@@ -605,10 +626,11 @@ ROM_START( nprsp )
ROM_REGION( 0x200000, "ymsnd", 0 ) /* Samples */
ROM_LOAD( "s001-v1.bin", 0x000000, 0x100000, CRC(13d63625) SHA1(4a9e3b1192a4a7e405becfd5d2a95ffc14ae6e79) )
- ROM_REGION( 0x600000, "gfx1", 0 )
- ROM_LOAD( "s046-c1.bin", 0x000000, 0x200000, CRC(06fffce0) SHA1(0d9bb9d3107b1efb66ee82341c3f80ec093d5987) )
- ROM_LOAD( "s046-c2.bin", 0x200000, 0x200000, CRC(7cc353e7) SHA1(5c4fa9fdf90bd0d03608becaa174d68735f28bbb) )
- ROM_LOAD( "s046-c3.bin", 0x400000, 0x200000, CRC(f68f0f6f) SHA1(2fc105953a17259353f74376661c442658f9a644) )
+ ROM_REGION( 0x800000, "gfx1", ROMREGION_ERASE00 )
+ ROM_LOAD32_BYTE( "s046-c1.bin", 0x000000, 0x200000, CRC(06fffce0) SHA1(0d9bb9d3107b1efb66ee82341c3f80ec093d5987) )
+ ROM_LOAD32_BYTE( "s046-c2.bin", 0x000001, 0x200000, CRC(7cc353e7) SHA1(5c4fa9fdf90bd0d03608becaa174d68735f28bbb) )
+ ROM_LOAD32_BYTE( "s046-c3.bin", 0x000002, 0x200000, CRC(f68f0f6f) SHA1(2fc105953a17259353f74376661c442658f9a644) )
+ // 8bpp might be possible with another ROM?
ROM_END
/* FIXME: get rid of these two, probably something to do with irq3 and camera / printer devices */
@@ -641,6 +663,13 @@ DRIVER_INIT_MEMBER(neoprint_state,nprsp)
ROM[0x4834/2] = 0x4e71;
}
-GAME( 1996, npcartv1, 0, neoprint, neoprint, neoprint_state, npcartv1, ROT0, "SNK", "Neo Print V1 (World)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
-GAME( 1998, 98best44, 0, neoprint, neoprint, neoprint_state, 98best44, ROT0, "SNK", "Neo Print - '98 NeoPri Best 44 (Japan)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
-GAME( 1996, nprsp, 0, nprsp, neoprint, neoprint_state, nprsp, ROT0, "SNK", "NeopriSP Retro Collection (Japan)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
+DRIVER_INIT_MEMBER(neoprint_state,unkneo)
+{
+ UINT16 *ROM = (UINT16 *)memregion( "maincpu" )->base();
+ 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 )
diff --git a/src/mame/drivers/neptunp2.c b/src/mame/drivers/neptunp2.c
index 0a53f945066..958bf8b54d4 100644
--- a/src/mame/drivers/neptunp2.c
+++ b/src/mame/drivers/neptunp2.c
@@ -137,4 +137,4 @@ ROM_START( neptunp2 )
ROM_END
-GAME( 199?, neptunp2, 0, neptunp2, neptunp2, driver_device, 0, ROT0, "Unidesa?", "Neptune's Pearls 2", GAME_NOT_WORKING | GAME_NO_SOUND )
+GAME( 199?, neptunp2, 0, neptunp2, neptunp2, driver_device, 0, ROT0, "Unidesa?", "Neptune's Pearls 2", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mess/drivers/nes.c b/src/mame/drivers/nes.c
index 50e99f6dd4c..124749f07b0 100644
--- a/src/mess/drivers/nes.c
+++ b/src/mame/drivers/nes.c
@@ -336,12 +336,12 @@ ROM_END
***************************************************************************/
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
-CONS( 1985, nes, 0, 0, nes, nes, driver_device, 0, "Nintendo", "Nintendo Entertainment System / Famicom (NTSC)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-CONS( 1987, nespal, nes, 0, nespal, nes, driver_device, 0, "Nintendo", "Nintendo Entertainment System (PAL)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-CONS( 1983, famicom, nes, 0, famicom, famicom, nes_state, famicom, "Nintendo", "Famicom (NTSC)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-CONS( 1983, fds, nes, 0, fds, famicom, nes_state, famicom, "Nintendo", "Famicom (w/ Disk System add-on)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-CONS( 1986, famitwin, nes, 0, famitwin, famicom, nes_state, famicom, "Sharp", "Famicom Twin", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-CONS( 198?, m82, nes, 0, nes, nes, driver_device, 0, "Nintendo", "M82 Display Unit", GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-CONS( 1996, drpcjr, nes, 0, famicom, famicom, nes_state, famicom, "Bung", "Doctor PC Jr", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-CONS( 1992, dendy, nes, 0, dendy, nes, driver_device, 0, "Steepler", "Dendy Classic", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-CONS( 198?, gchinatv, nes, 0, nespal, nes, driver_device, 0, "Golden China", "Golden China TV Game", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+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 )
+CONS( 1983, famicom, nes, 0, famicom, famicom, nes_state, famicom, "Nintendo", "Famicom (NTSC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+CONS( 1983, fds, nes, 0, fds, famicom, nes_state, famicom, "Nintendo", "Famicom (w/ Disk System add-on)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+CONS( 1986, famitwin, nes, 0, famitwin, famicom, nes_state, famicom, "Sharp", "Famicom Twin", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+CONS( 198?, m82, nes, 0, nes, nes, driver_device, 0, "Nintendo", "M82 Display Unit", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+CONS( 1996, drpcjr, nes, 0, famicom, famicom, nes_state, famicom, "Bung", "Doctor PC Jr", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+CONS( 1992, dendy, nes, 0, dendy, nes, driver_device, 0, "Steepler", "Dendy Classic", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+CONS( 198?, gchinatv, nes, 0, nespal, nes, driver_device, 0, "Golden China", "Golden China TV Game", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/newbrain.c b/src/mame/drivers/newbrain.c
index 33ce6bfda8c..84699034a75 100644
--- a/src/mess/drivers/newbrain.c
+++ b/src/mame/drivers/newbrain.c
@@ -1487,7 +1487,7 @@ ROM_END
/* System Drivers */
// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS
-COMP( 1981, newbrain, 0, 0, newbrain_a, newbrain, driver_device, 0, "Grundy Business Systems Ltd", "NewBrain AD", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 1981, newbraineim,newbrain, 0, newbrain_eim, newbrain, driver_device, 0, "Grundy Business Systems Ltd", "NewBrain AD with Expansion Interface", GAME_NOT_WORKING | GAME_NO_SOUND )
-COMP( 1981, newbraina, newbrain, 0, newbrain_a, newbrain, driver_device, 0, "Grundy Business Systems Ltd", "NewBrain A", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 1981, newbrainmd, newbrain, 0, newbrain_a, newbrain, driver_device, 0, "Grundy Business Systems Ltd", "NewBrain MD", GAME_NOT_WORKING | GAME_NO_SOUND )
+COMP( 1981, newbrain, 0, 0, newbrain_a, newbrain, driver_device, 0, "Grundy Business Systems Ltd", "NewBrain AD", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
+COMP( 1981, newbraineim,newbrain, 0, newbrain_eim, newbrain, driver_device, 0, "Grundy Business Systems Ltd", "NewBrain AD with Expansion Interface", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+COMP( 1981, newbraina, newbrain, 0, newbrain_a, newbrain, driver_device, 0, "Grundy Business Systems Ltd", "NewBrain A", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
+COMP( 1981, newbrainmd, newbrain, 0, newbrain_a, newbrain, driver_device, 0, "Grundy Business Systems Ltd", "NewBrain MD", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/news.c b/src/mame/drivers/news.c
index 1f32c07bff7..5bca38ad047 100644
--- a/src/mame/drivers/news.c
+++ b/src/mame/drivers/news.c
@@ -180,5 +180,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)", GAME_SUPPORTS_SAVE )
-GAME( 1993, newsa, news, news, newsa, driver_device, 0, ROT0, "Poby", "News (set 2)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/next.c b/src/mame/drivers/next.c
index d91312b820e..90901333a35 100644
--- a/src/mess/drivers/next.c
+++ b/src/mame/drivers/next.c
@@ -1215,11 +1215,11 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 1990, nexts, 0, 0, nexts, next, next_state, nexts, "Next Software Inc", "NeXTstation", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 1990, nexts2, nexts, 0, nexts2, next, next_state, nexts2, "Next Software Inc", "NeXTstation (X15 variant)", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 1990, nextsc, nexts, 0, nextsc, next, next_state, nextsc, "Next Software Inc", "NeXTstation color", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 1990, nextst, 0, 0, nextst, next, next_state, nextst, "Next Software Inc", "NeXTstation turbo", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 1990, nextstc, nextst, 0, nextstc, next, next_state, nextstc, "Next Software Inc", "NeXTstation turbo color", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( ????, nextct, nextst, 0, nextct, next, next_state, nextct, "Next Software Inc", "NeXT Cube turbo", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( ????, nextctc, nextst, 0, nextctc, next, next_state, nextctc, "Next Software Inc", "NeXT Cube turbo color", GAME_NOT_WORKING | GAME_NO_SOUND)
+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.c b/src/mame/drivers/nexus3d.c
index 5671af2d931..8a54416f677 100644
--- a/src/mame/drivers/nexus3d.c
+++ b/src/mame/drivers/nexus3d.c
@@ -89,7 +89,9 @@ static ADDRESS_MAP_START( nexus3d_map, AS_PROGRAM, 32, nexus3d_state )
AM_RANGE(0x9C000018, 0x9C00001b) AM_DEVWRITE8("flash", serflash_device, n3d_flash_addr_w, 0xffffffff)
// lots of accesses in this range
-// AM_RANGE(0xC0000F44, 0xC0000F47) AM_READWRITE(nexus3d_unk2_r, nexus3d_unk2_w ) // often
+ // 0xc00018xx seems CRTC related
+ // 0xc000091x loads a "gfx charset"?
+// AM_RANGE(0xC0000F44, 0xC0000F47) AM_READWRITE(nexus3d_unk2_r, nexus3d_unk2_w ) // often, status for something.
// AM_RANGE(0xC0000F4C, 0xC0000F4f) AM_READWRITE(nexus3d_unk3_r, nexus3d_unk3_w ) // often
AM_RANGE(0xE0000014, 0xE0000017) AM_READ(nexus3d_unk_r ) // sits waiting for this
@@ -173,5 +175,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",GAME_IS_SKELETON )
-GAME( 2006, acheartf, 0, nexus3d, nexus3d, nexus3d_state, nexus3d, ROT0, "Examu", "Arcana Heart Full",GAME_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/mess/drivers/ng_aes.c b/src/mame/drivers/ng_aes.c
index 6cc3293a464..63f49e0823a 100644
--- a/src/mess/drivers/ng_aes.c
+++ b/src/mame/drivers/ng_aes.c
@@ -1621,7 +1621,7 @@ DRIVER_INIT_MEMBER(ng_aes_state,neogeo)
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-CONS( 1990, aes, 0, 0, aes, aes, ng_aes_state, neogeo, "SNK", "Neo-Geo AES", GAME_SUPPORTS_SAVE )
+CONS( 1990, aes, 0, 0, aes, aes, ng_aes_state, neogeo, "SNK", "Neo-Geo AES", MACHINE_SUPPORTS_SAVE )
DRIVER_INIT_MEMBER(ng_aes_state,neocdz)
{
@@ -1638,4 +1638,4 @@ CONS( 1996, neocdz, 0, 0, neocd, neocd, ng_aes_state, neocdz, "SNK", "
CONS( 1996, neocdzj, neocdz, 0, neocd, neocd, ng_aes_state, neocdzj, "SNK", "Neo-Geo CDZ (Japan)", 0 )
-CONS( 1994, neocd, neocdz, 0, neocd, neocd, ng_aes_state, neogeo, "SNK", "Neo-Geo CD", GAME_NOT_WORKING ) // older model, ignores disc protections?
+CONS( 1994, neocd, neocdz, 0, neocd, neocd, ng_aes_state, neogeo, "SNK", "Neo-Geo CD", MACHINE_NOT_WORKING ) // older model, ignores disc protections?
diff --git a/src/mess/drivers/ngen.c b/src/mame/drivers/ngen.c
index 9050da436a8..29f492e5f30 100644
--- a/src/mess/drivers/ngen.c
+++ b/src/mame/drivers/ngen.c
@@ -91,8 +91,6 @@ public:
m_pic(*this,"pic"),
m_pit(*this,"pit"),
m_disk_rom(*this,"disk"),
- m_vram(*this,"vram"),
- m_fontram(*this,"fontram"),
m_fdc(*this,"fdc"),
m_fd0(*this,"fdc:0"),
m_fdc_timer(*this,"fdc_timer"),
@@ -141,6 +139,10 @@ public:
DECLARE_READ8_MEMBER(hd_buffer_r);
DECLARE_WRITE8_MEMBER(hd_buffer_w);
+ DECLARE_READ16_MEMBER(b38_keyboard_r);
+ DECLARE_WRITE16_MEMBER(b38_keyboard_w);
+ DECLARE_READ16_MEMBER(b38_crtc_r);
+ DECLARE_WRITE16_MEMBER(b38_crtc_w);
protected:
virtual void machine_reset();
virtual void machine_start();
@@ -155,8 +157,8 @@ private:
required_device<pic8259_device> m_pic;
required_device<pit8254_device> m_pit;
optional_memory_region m_disk_rom;
- optional_shared_ptr<UINT16> m_vram;
- optional_shared_ptr<UINT16> m_fontram;
+ memory_array m_vram;
+ memory_array m_fontram;
optional_device<wd2797_t> m_fdc;
optional_device<floppy_connector> m_fd0;
optional_device<pit8253_device> m_fdc_timer;
@@ -745,10 +747,10 @@ MC6845_UPDATE_ROW( ngen_state::crtc_update_row )
for(int x=0;x<bitmap.width();x+=9)
{
- UINT8 ch = m_vram[addr++];
+ UINT8 ch = m_vram.read16(addr++) & 0xff;
for(int z=0;z<9;z++)
{
- if(BIT(m_fontram[ch*16+ra],8-z))
+ if(BIT(m_fontram.read16(ch*16+ra),8-z))
bitmap.pix32(y,x+z) = rgb_t(0,0xff,0);
else
bitmap.pix32(y,x+z) = rgb_t(0,0,0);
@@ -761,9 +763,80 @@ READ8_MEMBER( ngen_state::irq_cb )
return m_pic->acknowledge();
}
+READ16_MEMBER( ngen_state::b38_keyboard_r )
+{
+ UINT8 ret = 0;
+ switch(offset)
+ {
+ case 0:
+ if(mem_mask & 0x00ff)
+ ret = m_viduart->data_r(space,0);
+ break;
+ case 1: // keyboard UART
+ // expects bit 0 to be set (UART transmit ready)
+ if(mem_mask & 0x00ff)
+ ret = m_viduart->status_r(space,0);
+ break;
+ }
+ return ret;
+}
+
+WRITE16_MEMBER( ngen_state::b38_keyboard_w )
+{
+ switch(offset)
+ {
+ case 0:
+ if(mem_mask & 0x00ff)
+ m_viduart->data_w(space,0,data & 0xff);
+ break;
+ case 1:
+ if(mem_mask & 0x00ff)
+ m_viduart->control_w(space,0,data & 0xff);
+ break;
+ }
+}
+
+READ16_MEMBER( ngen_state::b38_crtc_r )
+{
+ UINT8 ret = 0;
+ switch(offset)
+ {
+ case 0:
+ if(mem_mask & 0x00ff)
+ ret = m_crtc->register_r(space,0);
+ break;
+ case 1:
+ if(mem_mask & 0x00ff)
+ ret = m_viduart->data_r(space,0);
+ break;
+ }
+ return ret;
+}
+
+WRITE16_MEMBER( ngen_state::b38_crtc_w )
+{
+ switch(offset)
+ {
+ case 0:
+ if(mem_mask & 0x00ff)
+ m_crtc->address_w(space,0,data & 0xff);
+ break;
+ case 1:
+ if(mem_mask & 0x00ff)
+ m_crtc->register_w(space,0,data & 0xff);
+ break;
+ }
+}
+
void ngen_state::machine_start()
{
+ memory_share* vidshare = memshare("vram");
+ memory_share* fontshare = memshare("fontram");
m_hd_buffer.allocate(1024*8); // 8kB buffer RAM for HD controller
+ if(vidshare == NULL || fontshare == NULL)
+ fatalerror("Error: VRAM not found");
+ m_vram.set(*vidshare,2);
+ m_fontram.set(*fontshare,2);
}
void ngen_state::machine_reset()
@@ -800,25 +873,29 @@ static ADDRESS_MAP_START( ngen_io, AS_IO, 16, ngen_state )
ADDRESS_MAP_END
static ADDRESS_MAP_START( ngen386_mem, AS_PROGRAM, 32, ngen_state )
- AM_RANGE(0x00000000, 0x000fdfff) AM_RAM
+ AM_RANGE(0x00000000, 0x000f7fff) AM_RAM
AM_RANGE(0x000f8000, 0x000f9fff) AM_RAM AM_SHARE("vram")
AM_RANGE(0x000fa000, 0x000fbfff) AM_RAM AM_SHARE("fontram")
AM_RANGE(0x000fc000, 0x000fcfff) AM_RAM
AM_RANGE(0x000fe000, 0x000fffff) AM_ROM AM_REGION("bios",0)
+ AM_RANGE(0x00100000, 0x00ffffff) AM_RAM // some extra RAM
AM_RANGE(0xffffe000, 0xffffffff) AM_ROM AM_REGION("bios",0)
ADDRESS_MAP_END
static ADDRESS_MAP_START( ngen386i_mem, AS_PROGRAM, 32, ngen_state )
- AM_RANGE(0x00000000, 0x000fbfff) AM_RAM
+ AM_RANGE(0x00000000, 0x000f7fff) AM_RAM
AM_RANGE(0x000f8000, 0x000f9fff) AM_RAM AM_SHARE("vram")
AM_RANGE(0x000fa000, 0x000fbfff) AM_RAM AM_SHARE("fontram")
AM_RANGE(0x000fc000, 0x000fffff) AM_ROM AM_REGION("bios",0)
+ AM_RANGE(0x00100000, 0x00ffffff) AM_RAM // some extra RAM
AM_RANGE(0xffffc000, 0xffffffff) AM_ROM AM_REGION("bios",0)
ADDRESS_MAP_END
static ADDRESS_MAP_START( ngen386_io, AS_IO, 32, ngen_state )
AM_RANGE(0x0000, 0x0003) AM_READWRITE16(xbus_r, xbus_w, 0x0000ffff)
- AM_RANGE(0xf800, 0xfeff) AM_READWRITE16(peripheral_r, peripheral_w,0xffffffff)
+// AM_RANGE(0xf800, 0xfeff) AM_READWRITE16(peripheral_r, peripheral_w,0xffffffff)
+ AM_RANGE(0xfd08, 0xfd0b) AM_READWRITE16(b38_crtc_r, b38_crtc_w,0xffffffff)
+ AM_RANGE(0xfd0c, 0xfd0f) AM_READWRITE16(b38_keyboard_r, b38_keyboard_w,0xffffffff)
ADDRESS_MAP_END
static INPUT_PORTS_START( ngen )
@@ -1064,6 +1141,9 @@ ROM_START( ngen )
ROM_LOAD16_BYTE( "72-00414_80186_cpu.bin", 0x000000, 0x001000, CRC(e1387a03) SHA1(ddca4eba67fbf8b731a8009c14f6b40edcbc3279) ) // bootstrap ROM v8.4
ROM_LOAD16_BYTE( "72-00415_80186_cpu.bin", 0x000001, 0x001000, CRC(a6dde7d9) SHA1(b4d15c1bce31460ab5b92ff43a68c15ac5485816) )
+ ROM_REGION16_LE( 0x2000, "vram", ROMREGION_ERASE00 )
+ ROM_REGION16_LE( 0x2000, "fontram", ROMREGION_ERASE00 )
+
ROM_REGION( 0x1000, "disk", 0)
ROM_LOAD( "72-00422_10mb_disk.bin", 0x000000, 0x001000, CRC(f5b046b6) SHA1(b303c6f6aa40504016de9826879bc316e44389aa) )
@@ -1076,6 +1156,9 @@ ROM_START( ngenb38 )
ROM_REGION( 0x2000, "bios", 0)
ROM_LOAD16_BYTE( "72-168_fpc_386_cpu.bin", 0x000000, 0x001000, CRC(250a3b68) SHA1(49c070514bac264fa4892f284f7d2c852ae6605d) )
ROM_LOAD16_BYTE( "72-167_fpc_386_cpu.bin", 0x000001, 0x001000, CRC(4010cc4e) SHA1(74a3024d605569056484d08b63f19fbf8eaf31c6) )
+
+ ROM_REGION16_LE( 0x2000, "vram", ROMREGION_ERASE00 )
+ ROM_REGION16_LE( 0x2000, "fontram", ROMREGION_ERASE00 )
ROM_END
ROM_START( 386i )
@@ -1083,11 +1166,14 @@ ROM_START( 386i )
ROM_LOAD16_BYTE( "72-1561o_386i_cpu.bin", 0x000000, 0x002000, CRC(b5efd768) SHA1(8b250d47d9c6eb82e1afaeb2244d8c4134ecbc47) )
ROM_LOAD16_BYTE( "72-1562e_386i_cpu.bin", 0x000001, 0x002000, CRC(002d0d3a) SHA1(31de8592999377db9251acbeff348390a2d2602a) )
+ ROM_REGION16_LE( 0x2000, "vram", ROMREGION_ERASE00 )
+ ROM_REGION16_LE( 0x2000, "fontram", ROMREGION_ERASE00 )
+
ROM_REGION( 0x2000, "video", 0)
ROM_LOAD( "72-1630_gc-104_vga.bin", 0x000000, 0x002000, CRC(4e4d8ebe) SHA1(50c96ccb4d0bd1beb2d1aee0d18b2c462d25fc8f) )
ROM_END
-COMP( 1983, ngen, 0, 0, ngen, ngen, driver_device, 0, "Convergent Technologies", "NGEN CP-001", GAME_IS_SKELETON | GAME_NOT_WORKING | GAME_NO_SOUND )
-COMP( 1991, ngenb38, ngen, 0, ngen386, ngen, driver_device, 0, "Financial Products Corp.", "B28/38", GAME_IS_SKELETON | GAME_NOT_WORKING | GAME_NO_SOUND )
-COMP( 1990, 386i, ngen, 0, 386i, ngen, driver_device, 0, "Convergent Technologies", "386i", GAME_IS_SKELETON | GAME_NOT_WORKING | GAME_NO_SOUND )
+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 )
diff --git a/src/mess/drivers/ngp.c b/src/mame/drivers/ngp.c
index 4110dcd2c6c..1443d671c19 100644
--- a/src/mess/drivers/ngp.c
+++ b/src/mame/drivers/ngp.c
@@ -891,5 +891,5 @@ ROM_START( ngpc )
ROM_END
-CONS( 1998, ngp, 0, 0, ngp, ngp, driver_device, 0, "SNK", "NeoGeo Pocket", GAME_SUPPORTS_SAVE )
-CONS( 1999, ngpc, ngp, 0, ngpc, ngp, driver_device, 0, "SNK", "NeoGeo Pocket Color", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/nightgal.c b/src/mame/drivers/nightgal.c
index b34653de61e..32cb1d6a949 100644
--- a/src/mame/drivers/nightgal.c
+++ b/src/mame/drivers/nightgal.c
@@ -1272,12 +1272,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)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1984, ngtbunny, 0, royalqn, sexygal, driver_device, 0, ROT0, "Nichibutsu", "Night Bunny (Japan 840601 MRN 2-10)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1984, royalngt, ngtbunny, royalqn, sexygal, driver_device, 0, ROT0, "Royal Denshi", "Royal Night [BET] (Japan 840220 RN 2-00)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1984, royalqn, 0, royalqn, sexygal, nightgal_state, royalqn, ROT0, "Royal Denshi", "Royal Queen [BET] (Japan 841010 RQ 0-07)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+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 )
/* Type 2 HW */
-GAME( 1985, sexygal, 0, sexygal, sexygal, driver_device, 0, ROT0, "Nichibutsu", "Sexy Gal (Japan 850501 SXG 1-00)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE )
-GAME( 1985, sweetgal, sexygal, sexygal, sexygal, driver_device, 0, ROT0, "Nichibutsu", "Sweet Gal (Japan 850510 SWG 1-02)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE )
+GAME( 1985, sexygal, 0, sexygal, sexygal, driver_device, 0, ROT0, "Nichibutsu", "Sexy Gal (Japan 850501 SXG 1-00)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | 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_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
/* Type 3 HW */
-GAME( 1985, ngalsumr, 0, ngalsumr,sexygal, nightgal_state, ngalsumr,ROT0, "Nichibutsu", "Night Gal Summer", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE )
+GAME( 1985, ngalsumr, 0, ngalsumr,sexygal, nightgal_state, ngalsumr,ROT0, "Nichibutsu", "Night Gal Summer", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/ninjakd2.c b/src/mame/drivers/ninjakd2.c
index 7c1b3feeab8..9ed67eb57d4 100644
--- a/src/mame/drivers/ninjakd2.c
+++ b/src/mame/drivers/ninjakd2.c
@@ -1539,15 +1539,15 @@ DRIVER_INIT_MEMBER(ninjakd2_state,robokidj)
*************************************/
// YEAR, NAME, PARENT, MACHINE, INPUT, 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)", GAME_SUPPORTS_SAVE )
-GAME( 1987, ninjakd2a, ninjakd2, ninjakd2, ninjakd2, ninjakd2_state, bootleg, ROT0, "UPL", "Ninja-Kid II / NinjaKun Ashura no Shou (set 2, bootleg?)", GAME_SUPPORTS_SAVE )
-GAME( 1987, ninjakd2b, ninjakd2, ninjakd2, rdaction, ninjakd2_state, bootleg, ROT0, "UPL", "Ninja-Kid II / NinjaKun Ashura no Shou (set 3, bootleg?)", GAME_SUPPORTS_SAVE )
-GAME( 1987, rdaction, ninjakd2, ninjakd2, rdaction, ninjakd2_state, ninjakd2, ROT0, "UPL (World Games license)", "Rad Action / NinjaKun Ashura no Shou", GAME_SUPPORTS_SAVE )
-GAME( 1987, jt104, ninjakd2, ninjakd2, rdaction, ninjakd2_state, bootleg, ROT0, "UPL (United Amusements license)", "JT-104 (title screen modification of Rad Action)", GAME_SUPPORTS_SAVE )
-GAME( 1987, mnight, 0, mnight, mnight, ninjakd2_state, mnight, ROT0, "UPL (Kawakus license)", "Mutant Night", GAME_SUPPORTS_SAVE )
-GAME( 1988, arkarea, 0, arkarea, arkarea, ninjakd2_state, mnight, ROT0, "UPL", "Ark Area", GAME_SUPPORTS_SAVE )
-GAME( 1988, robokid, 0, robokid, robokid, ninjakd2_state, robokid, ROT0, "UPL", "Atomic Robo-kid", GAME_SUPPORTS_SAVE )
-GAME( 1988, robokidj, robokid, robokid, robokidj, ninjakd2_state, robokidj, ROT0, "UPL", "Atomic Robo-kid (Japan, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1988, robokidj2, robokid, robokid, robokidj, ninjakd2_state, robokidj, ROT0, "UPL", "Atomic Robo-kid (Japan, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1989, omegaf, 0, omegaf, omegaf, driver_device, 0, ROT270, "UPL", "Omega Fighter", GAME_SUPPORTS_SAVE )
-GAME( 1989, omegafs, omegaf, omegaf, omegaf, driver_device, 0, ROT270, "UPL", "Omega Fighter Special", GAME_SUPPORTS_SAVE )
+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, ninjakd2, ninjakd2, ninjakd2_state, bootleg, ROT0, "UPL", "Ninja-Kid II / NinjaKun Ashura no Shou (set 2, bootleg?)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, ninjakd2b, ninjakd2, ninjakd2, rdaction, ninjakd2_state, bootleg, ROT0, "UPL", "Ninja-Kid II / NinjaKun Ashura no Shou (set 3, bootleg?)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, rdaction, ninjakd2, ninjakd2, rdaction, ninjakd2_state, ninjakd2, ROT0, "UPL (World Games license)", "Rad Action / NinjaKun Ashura no Shou", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, jt104, ninjakd2, ninjakd2, rdaction, ninjakd2_state, bootleg, ROT0, "UPL (United Amusements license)", "JT-104 (title screen modification of Rad Action)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, mnight, 0, mnight, mnight, ninjakd2_state, mnight, ROT0, "UPL (Kawakus license)", "Mutant Night", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, arkarea, 0, arkarea, arkarea, ninjakd2_state, mnight, ROT0, "UPL", "Ark Area", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, robokid, 0, robokid, robokid, ninjakd2_state, robokid, ROT0, "UPL", "Atomic Robo-kid", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, robokidj, robokid, robokid, robokidj, ninjakd2_state, robokidj, ROT0, "UPL", "Atomic Robo-kid (Japan, set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, robokidj2, robokid, robokid, robokidj, ninjakd2_state, robokidj, ROT0, "UPL", "Atomic Robo-kid (Japan, set 2)", MACHINE_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/ninjaw.c b/src/mame/drivers/ninjaw.c
index e39d2665bf5..f42371ed561 100644
--- a/src/mame/drivers/ninjaw.c
+++ b/src/mame/drivers/ninjaw.c
@@ -1174,7 +1174,7 @@ 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)", GAME_SUPPORTS_SAVE )
-GAME( 1987, ninjawj, ninjaw, ninjaw, ninjawj, driver_device, 0, ROT0, "Taito Corporation", "The Ninja Warriors (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1987, ninjawu, ninjaw, ninjaw, ninjaw, driver_device, 0, ROT0, "Taito Corporation America (licensed to Romstar)", "The Ninja Warriors (US)", GAME_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)", GAME_SUPPORTS_SAVE )
+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, ninjaw, 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 )
diff --git a/src/mame/drivers/nitedrvr.c b/src/mame/drivers/nitedrvr.c
index eeca4a65368..a36b46ad204 100644
--- a/src/mame/drivers/nitedrvr.c
+++ b/src/mame/drivers/nitedrvr.c
@@ -197,4 +197,4 @@ ROM_END
/* Game Drivers */
-GAME( 1976, nitedrvr, 0, nitedrvr, nitedrvr, driver_device, 0, ROT0, "Atari", "Night Driver", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1976, nitedrvr, 0, nitedrvr, nitedrvr, driver_device, 0, ROT0, "Atari", "Night Driver", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/niyanpai.c b/src/mame/drivers/niyanpai.c
index 87d04f072f5..ef411c20158 100644
--- a/src/mame/drivers/niyanpai.c
+++ b/src/mame/drivers/niyanpai.c
@@ -894,8 +894,8 @@ ROM_START( zokumahj )
ROM_END
-GAME( 1996, niyanpai, 0, niyanpai, niyanpai, niyanpai_state, niyanpai, ROT0, "Nichibutsu", "Niyanpai (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1995, musobana, 0, musobana, musobana, niyanpai_state, niyanpai, ROT0, "Nichibutsu / Yubis", "Musoubana (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1994, 4psimasy, 0, musobana, 4psimasy, niyanpai_state, niyanpai, ROT0, "Sphinx / AV Japan", "Mahjong 4P Simasyo (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 199?, mhhonban, 0, mhhonban, mhhonban, niyanpai_state, niyanpai, ROT0, "Nichibutsu?", "Mahjong Housoukyoku Honbanchuu (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 199?, zokumahj, mhhonban, zokumahj, zokumahj, niyanpai_state, niyanpai, ROT0, "Nichibutsu?", "Zoku Mahjong Housoukyoku (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1996, niyanpai, 0, niyanpai, niyanpai, niyanpai_state, niyanpai, ROT0, "Nichibutsu", "Niyanpai (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, musobana, 0, musobana, musobana, niyanpai_state, niyanpai, ROT0, "Nichibutsu / Yubis", "Musoubana (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, 4psimasy, 0, musobana, 4psimasy, niyanpai_state, niyanpai, ROT0, "Sphinx / AV Japan", "Mahjong 4P Simasyo (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 199?, mhhonban, 0, mhhonban, mhhonban, niyanpai_state, niyanpai, ROT0, "Nichibutsu?", "Mahjong Housoukyoku Honbanchuu (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 199?, zokumahj, mhhonban, zokumahj, zokumahj, niyanpai_state, niyanpai, ROT0, "Nichibutsu?", "Zoku Mahjong Housoukyoku (Japan)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/nmg5.c b/src/mame/drivers/nmg5.c
index b17b41dc031..f54110c224a 100644
--- a/src/mame/drivers/nmg5.c
+++ b/src/mame/drivers/nmg5.c
@@ -252,7 +252,6 @@ public:
required_shared_ptr<UINT16> m_fg_videoram;
required_shared_ptr<UINT16> m_bitmap;
optional_device<decospr_device> m_sprgen;
-// UINT16 * m_paletteram; // currently this uses generic palette handling
/* video-related */
tilemap_t *m_bg_tilemap;
@@ -1423,6 +1422,37 @@ ROM_START( wondstck )
ROM_LOAD( "u137.bin", 0x000000, 0x40000, CRC(294b6cbd) SHA1(1498a3298c53d62f56f9c85c82035d09a5bb8b4a) )
ROM_END
+ROM_START( wondstcka )
+ ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
+ ROM_LOAD16_BYTE( "4.u2", 0x000001, 0x20000, CRC(0b28ab9d) SHA1(3f536269a101071a8ef57775fc8a990c7131307f) )
+ ROM_LOAD16_BYTE( "3.u7", 0x000000, 0x20000, CRC(5f1337d8) SHA1(e8636dadc4459ffbdbdbb1716a61e3d22fc2f813) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 ) /* Z80 Code */
+ ROM_LOAD( "1.u128", 0x00000, 0x10000, CRC(86dba085) SHA1(6dedfb4bcf890490848409b6d9bce69e72bf1bba) )
+
+ ROM_REGION( 0x400000, "gfx1", 0 ) /* 8x8x8 */
+ ROM_LOAD( "7.u63", 0x000000, 0x80000, CRC(25ee44ce) SHA1(bf1cad9d89af764d54eb9d35b1656208b8e0b594) )
+ ROM_LOAD( "2.u68", 0x080000, 0x80000, CRC(b26afb40) SHA1(f6c96d0ea72bfdf5b153fd599a67703c3c7609b1) )
+ ROM_LOAD( "8.u73", 0x100000, 0x80000, CRC(7cf46203) SHA1(97bd5fdc9004726846d9577ca7b4bc078d3731e8) )
+ ROM_LOAD( "4.u79", 0x180000, 0x80000, CRC(825213e0) SHA1(c37a892a070fe2f2884416472c35e37330911977) )
+ ROM_LOAD( "5.u64", 0x200000, 0x80000, CRC(9ece36d6) SHA1(71e0409f3d8058426a9d1531ab1ef953c0c65c5d) )
+ ROM_LOAD( "1.u69", 0x280000, 0x80000, CRC(ec091e87) SHA1(e41e9409347aa2c513515b7d7d6e95b63bc595f9) )
+ ROM_LOAD( "6.u74", 0x300000, 0x80000, CRC(9795ff80) SHA1(e369844382e8cb99d6d37eb40cdd62266b4031f2) )
+ ROM_LOAD( "3.u80", 0x380000, 0x80000, CRC(553c5781) SHA1(d5f694f6a50f51c80845a15e58d263fa629c3522) )
+
+ ROM_REGION( 0x280000, "gfx2", 0 ) /* 16x16x5 */
+ ROM_LOAD( "8.u83 ", 0x000000, 0x80000, CRC(f51cf9c6) SHA1(6d0fc749bab918ff6a9d7fae8be7c65823349283) )
+// ROM_LOAD( "9.u82", 0x080000, 0x80000, CRC(8c6cff4d) SHA1(5a217ff60f10bf5c58091c189b3509d1361a16b3) ) // bad dump
+ ROM_LOAD( "9.u82", 0x080000, 0x80000, CRC(ddd3c60c) SHA1(19b68a44c877d0bf630d07b18541ef9636f5adac) )
+ ROM_LOAD( "7.u105", 0x100000, 0x80000, CRC(a7fc624d) SHA1(b336ab6e16555db30f9366bf5b797b5ba3ea767c) )
+ ROM_LOAD( "6.u96", 0x180000, 0x80000, CRC(2369d8a3) SHA1(4224f50c9c31624dfcac6215d60a2acdd39bb477) )
+ ROM_LOAD( "5.u97", 0x200000, 0x80000, CRC(aba1bd94) SHA1(28dce35ad92547a54912c5645e9979c0876d6fe8) )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "2.u137", 0x000000, 0x40000, CRC(294b6cbd) SHA1(1498a3298c53d62f56f9c85c82035d09a5bb8b4a) )
+ROM_END
+
+
ROM_START( garogun )
ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
ROM_LOAD16_BYTE( "p1.u7", 0x000000, 0x80000, CRC(9b5627f8) SHA1(d336d4f34de7fdf5ba16bc76223e701369d24a5e) )
@@ -1544,14 +1574,15 @@ DRIVER_INIT_MEMBER(nmg5_state,prot_val_40)
m_prot_val = 0x40;
}
-GAME( 1998, nmg5, 0, nmg5, nmg5, nmg5_state, prot_val_10, ROT0, "Yun Sung", "Multi 5 / New Multi Game 5 (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1998, nmg5a, nmg5, nmg5, nmg5, nmg5_state, prot_val_10, ROT0, "Yun Sung", "Multi 5 / New Multi Game 5 (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1997, nmg5e, nmg5, nmg5, nmg5, nmg5_state, prot_val_10, ROT0, "Yun Sung", "Multi 5 / New Multi Game 5 (set 3, earlier)", GAME_SUPPORTS_SAVE )
-GAME( 1999, searchey, 0, nmg5, searchey, nmg5_state, prot_val_10, ROT0, "Yun Sung", "Search Eye (English / Korean / Japanese / Italian)", GAME_SUPPORTS_SAVE )
-GAME( 1999, searcheya, searchey, nmg5, searcheya, nmg5_state, prot_val_10, ROT0, "Yun Sung", "Search Eye (English / Korean)", GAME_SUPPORTS_SAVE )
-GAME( 1999, searchp2, 0, searchp2, searchp2, nmg5_state, prot_val_10, ROT0, "Yun Sung", "Search Eye Plus V2.0", GAME_SUPPORTS_SAVE )
-GAME( 2000, pclubys, 0, pclubys, pclubys, nmg5_state, prot_val_10, ROT0, "Yun Sung", "Puzzle Club (Yun Sung, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 2000, pclubysa, pclubys, pclubys, pclubys, nmg5_state, prot_val_10, ROT0, "Yun Sung", "Puzzle Club (Yun Sung, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 2000, garogun, 0, garogun, garogun, nmg5_state, prot_val_40, ROT0, "Yun Sung", "Garogun Seroyang (Korea)", GAME_SUPPORTS_SAVE )
-GAME( 2002, 7ordi, 0, 7ordi, 7ordi, nmg5_state, prot_val_20, ROT0, "Yun Sung", "7 Ordi (Korea)", GAME_SUPPORTS_SAVE )
-GAME( ????, wondstck, 0, nmg5, wondstck, nmg5_state, prot_val_00, ROT0, "Yun Sung", "Wonder Stick", GAME_SUPPORTS_SAVE )
+GAME( 1998, nmg5, 0, nmg5, nmg5, nmg5_state, prot_val_10, ROT0, "Yun Sung", "Multi 5 / New Multi Game 5 (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, nmg5a, nmg5, nmg5, nmg5, nmg5_state, prot_val_10, ROT0, "Yun Sung", "Multi 5 / New Multi Game 5 (set 2, censored)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, nmg5e, nmg5, nmg5, nmg5, nmg5_state, prot_val_10, ROT0, "Yun Sung", "Multi 5 / New Multi Game 5 (set 3, earlier)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, searchey, 0, nmg5, searchey, nmg5_state, prot_val_10, ROT0, "Yun Sung", "Search Eye (English / Korean / Japanese / Italian)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, searcheya, searchey, nmg5, searcheya, nmg5_state, prot_val_10, ROT0, "Yun Sung", "Search Eye (English / Korean)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, searchp2, 0, searchp2, searchp2, nmg5_state, prot_val_10, ROT0, "Yun Sung", "Search Eye Plus V2.0", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pclubys, 0, pclubys, pclubys, nmg5_state, prot_val_10, ROT0, "Yun Sung", "Puzzle Club (Yun Sung, set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, pclubysa, pclubys, pclubys, pclubys, nmg5_state, prot_val_10, ROT0, "Yun Sung", "Puzzle Club (Yun Sung, set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 2000, garogun, 0, garogun, garogun, nmg5_state, prot_val_40, ROT0, "Yun Sung", "Garogun Seroyang (Korea)", MACHINE_SUPPORTS_SAVE )
+GAME( 2002, 7ordi, 0, 7ordi, 7ordi, nmg5_state, prot_val_20, ROT0, "Yun Sung", "7 Ordi (Korea)", MACHINE_SUPPORTS_SAVE )
+GAME( ????, wondstck, 0, nmg5, wondstck, nmg5_state, prot_val_00, ROT0, "Yun Sung", "Wonder Stick (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( ????, wondstcka, wondstck, nmg5, wondstck, nmg5_state, prot_val_00, ROT0, "Yun Sung", "Wonder Stick (set 2, censored)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/nmk16.c b/src/mame/drivers/nmk16.c
index d50a17795ee..517d912d6ac 100644
--- a/src/mame/drivers/nmk16.c
+++ b/src/mame/drivers/nmk16.c
@@ -4362,7 +4362,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_START( gunnail, nmk16_state )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", M68000, 12000000) /* 12 MHz? */
+ MCFG_CPU_ADD("maincpu", M68000, XTAL_10MHz) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(gunnail_map)
NMK_HACKY_INTERRUPT_TIMING
@@ -4370,9 +4370,6 @@ static MACHINE_CONFIG_START( gunnail, nmk16_state )
NMK_HACKY_SCREEN_HIRES
MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_gunnail)
-
-
-
MCFG_GFXDECODE_ADD("gfxdecode", "palette", macross)
MCFG_PALETTE_ADD("palette", 1024)
MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
@@ -4382,19 +4379,19 @@ static MACHINE_CONFIG_START( gunnail, nmk16_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
- MCFG_NMK004_ADD("nmk004", 8000000)
+ MCFG_NMK004_ADD("nmk004", XTAL_16MHz/2) /* verified on pcb */
- MCFG_SOUND_ADD("ymsnd", YM2203, 1500000)
+ MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_12MHz/8) /* verified on pcb */
MCFG_YM2203_IRQ_HANDLER(DEVWRITELINE("nmk004", nmk004_device, ym2203_irq_handler))
MCFG_SOUND_ROUTE(0, "mono", 0.50)
MCFG_SOUND_ROUTE(1, "mono", 0.50)
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", XTAL_16MHz/4, OKIM6295_PIN7_LOW) /* verified on pcb */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10)
- MCFG_OKIM6295_ADD("oki2", 16000000/4, OKIM6295_PIN7_LOW)
+ MCFG_OKIM6295_ADD("oki2", XTAL_16MHz/4, OKIM6295_PIN7_LOW) /* verified on pcb */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10)
MACHINE_CONFIG_END
@@ -6175,7 +6172,7 @@ PCB Layout
AK92077
|-------------------------------------------------------------|
-| LA4460 VOL YM2203 6116 92077-2.U10 62256 62256 |
+| LA4460 VOL YM2203 6116 92077-2.U101 62256 62256 |
|-| 16MHz |------| 62256 62256 |
| 4558 6295 92077-6.U57 |NMK004| 62256 62256 |
|-| 12MHz | | 62256 62256 |
@@ -6203,22 +6200,24 @@ AK92077
| 6264 10MHz |
|-------------------------------------------------------------|
Notes:
- 68000 - Motorola MC68000P12 CPU running at 10.000MHz (DIP64)
- 6116 - 2K x8 SRAM (x9, DIP24)
- 6264 - 8K x8 SRAM (x2, DIP28)
- 62256 - 32K x8 SRAM (x10, DIP28)
- YM2203- Yamaha YM2203 (DIP40)
+ 68000 - Motorola MC68000P12 CPU running at 10MHz (DIP64)
+ 6116 - 2Kb x8 SRAM (x9, DIP24)
+ 6264 - 8Kb x8 SRAM (x2, DIP28)
+ 62256 - 32Kb x8 SRAM (x10, DIP28)
+ YM2203- Yamaha YM2203 running at 1.5MHz [12/8] (DIP40)
YM3014- Yamaha YM3014 (DIP8)
+ 6295 - OKI M6295 running at 4MHz, pin 7 low [16/4] (x2, QFP44)
4558 - BA4558 Op Amp (DIP8)
LA4460- Power Amplifier
- 6295 - Oki M6295, running at MHz, sample rate (x2, QFP44)
- DIP1/2- 8 position Dip Switches
+ DIP1/2- 8 position DIP Switches
VOL - Volume Potentiometer
+ OSC - 12MHz, 16MHz, 10MHz
+ HSync - 15.367kHz
+ VSync - 56.205Hz
NMK CUSTOM IC'S
- - NMK004; Actually a TLCS90-based Toshiba TMP91P640F-10 MCU
- with 16K internal OTP PROM, running at 8.000MHz [16 / 2] (QFP64)
- Note that the internal ROM is secured :(
+ - NMK004 marked "NMK004 0840-1324". Actually a TLCS90-based Toshiba TMP90C840AF
+ Microcontroller with 256 bytes RAM & 8Kb ROM, running at 8.000MHz [16/2] (QFP64)
- NMK005 (x1, Square QFP64)
- NMK008 (x1, Square QFP84)
- NMK009 (x2, Square QFP100)
@@ -6228,40 +6227,37 @@ Notes:
- NMK214 (x2, SDIP64)
- NMK215 (x1, SDIP64)
-Sound:YM2203C,OKI M6295 x2
-OSC :12.0000MHz,16.0000MHz,10.0000MHz
-Other:NMK 111 x3,214 x2,901,903 x2,902,005,004,215,008,009 x2
*/
ROM_START( gunnail )
ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 code */
- ROM_LOAD16_BYTE( "3e.bin", 0x00000, 0x40000, CRC(61d985b2) SHA1(96daca603f18accb47f98a3e584b2c84fc5a2ca4) )
- ROM_LOAD16_BYTE( "3o.bin", 0x00001, 0x40000, CRC(f114e89c) SHA1(a12f5278167f446bb5277e87289c41b5aa365c86) )
+ ROM_LOAD16_BYTE( "3e.u131", 0x00000, 0x40000, CRC(61d985b2) SHA1(96daca603f18accb47f98a3e584b2c84fc5a2ca4) )
+ ROM_LOAD16_BYTE( "3o.u133", 0x00001, 0x40000, CRC(f114e89c) SHA1(a12f5278167f446bb5277e87289c41b5aa365c86) )
- ROM_REGION( 0x10000, "audiocpu", 0 ) /* Code for (unknown?) CPU */
- ROM_LOAD( "92077_2.bin", 0x00000, 0x10000, CRC(cd4e55f8) SHA1(92182767ca0ec37ec4949bd1a88c2efdcdcb60ed) )
+ ROM_REGION( 0x10000, "audiocpu", 0 ) /* Code for NMK004 CPU */
+ ROM_LOAD( "92077_2.u101", 0x00000, 0x10000, CRC(cd4e55f8) SHA1(92182767ca0ec37ec4949bd1a88c2efdcdcb60ed) )
ROM_REGION( 0x020000, "fgtile", 0 )
- ROM_LOAD( "1.bin", 0x000000, 0x020000, CRC(3d00a9f4) SHA1(91a82e3e74c8774d7f8b2adceb228b97010facfd) ) /* 8x8 tiles */
+ ROM_LOAD( "1.u21", 0x000000, 0x020000, CRC(3d00a9f4) SHA1(91a82e3e74c8774d7f8b2adceb228b97010facfd) ) /* 8x8 tiles */
ROM_REGION( 0x100000, "bgtile", 0 )
- ROM_LOAD( "92077-4.bin", 0x000000, 0x100000, CRC(a9ea2804) SHA1(14dbdb3c7986db5e44dc7c5be6fcf39f3d1e50b0) ) /* 16x16 tiles */
+ ROM_LOAD( "92077-4.u19", 0x000000, 0x100000, CRC(a9ea2804) SHA1(14dbdb3c7986db5e44dc7c5be6fcf39f3d1e50b0) ) /* 16x16 tiles */
ROM_REGION( 0x200000, "sprites", 0 )
- ROM_LOAD16_WORD_SWAP( "92077-7.bin", 0x000000, 0x200000, CRC(d49169b3) SHA1(565ff7725dd6ace79b55706114132d8d867e81a9) ) /* Sprites */
+ ROM_LOAD16_WORD_SWAP( "92077-7.u134", 0x000000, 0x200000, CRC(d49169b3) SHA1(565ff7725dd6ace79b55706114132d8d867e81a9) ) /* Sprites */
ROM_REGION( 0x0a0000, "oki1", 0 ) /* OKIM6295 samples */
- ROM_LOAD( "92077-5.bin", 0x00000, 0x20000, CRC(feb83c73) SHA1(b44e9d20b4af02e218c4bc875d66a7d6b8551cae) )
+ ROM_LOAD( "92077-5.u56", 0x00000, 0x20000, CRC(feb83c73) SHA1(b44e9d20b4af02e218c4bc875d66a7d6b8551cae) )
ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */
ROM_REGION( 0x0a0000, "oki2", 0 ) /* OKIM6295 samples */
- ROM_LOAD( "92077-6.bin", 0x00000, 0x20000, CRC(6d133f0d) SHA1(8a5e6e27a297196f20e4de0d060f1188115809bb) )
+ ROM_LOAD( "92077-6.u57", 0x00000, 0x20000, CRC(6d133f0d) SHA1(8a5e6e27a297196f20e4de0d060f1188115809bb) )
ROM_CONTINUE( 0x40000, 0x60000 ) /* banked */
ROM_REGION( 0x0220, "proms", 0 )
- ROM_LOAD( "8.bpr", 0x0000, 0x0100, CRC(4299776e) SHA1(683d14d2ace14965f0fcfe0f0540c1b77d2cece5) ) /* unknown */
- ROM_LOAD( "9.bpr", 0x0100, 0x0100, CRC(633ab1c9) SHA1(acd99fcca41eaab7948ca84988352f1d7d519c61) ) /* unknown */
- ROM_LOAD( "10.bpr", 0x0200, 0x0020, CRC(c60103c8) SHA1(dfb05b704bb5e1f75f5aaa4fa36e8ddcc905f8b6) ) /* unknown */
+ ROM_LOAD( "8_82s129.u35", 0x0000, 0x0100, CRC(4299776e) SHA1(683d14d2ace14965f0fcfe0f0540c1b77d2cece5) ) /* unknown */
+ ROM_LOAD( "9_82s135.u72", 0x0100, 0x0100, CRC(633ab1c9) SHA1(acd99fcca41eaab7948ca84988352f1d7d519c61) ) /* unknown */
+ ROM_LOAD( "10_82s123.u96", 0x0200, 0x0020, CRC(c60103c8) SHA1(dfb05b704bb5e1f75f5aaa4fa36e8ddcc905f8b6) ) /* unknown */
ROM_END
ROM_START( macross2 )
@@ -7816,7 +7812,7 @@ GAME( 1990, sbsgomo, bioship, bioship, bioship, driver_device, 0, ROT
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)", GAME_NO_SOUND )
+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 )
@@ -7827,9 +7823,9 @@ GAME( 1992, strahl, 0, strahl, strahl, driver_device, 0, ROT
GAME( 1992, strahla, strahl, strahl, strahl, driver_device, 0, ROT0, "UPL", "Koutetsu Yousai Strahl (Japan set 2)", 0 )
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)", GAME_UNEMULATED_PROTECTION | GAME_NO_SOUND )
+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( 1991, hachamf, 0, hachamf_prot, hachamf_prot, nmk16_state, hachamf_prot, ROT0, "NMK", "Hacha Mecha Fighter (19th Sep. 1991, protected)", GAME_UNEMULATED_PROTECTION | GAME_NO_SOUND ) // lots of things wrong due to protection
+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 )
@@ -7837,30 +7833,30 @@ GAME( 1992, macross, 0, macross, macross, nmk16_state, nmk, ROT
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, driver_device, 0, ROT0, "Banpresto", "Super Spacefortress Macross II / Chou-Jikuu Yousai Macross II", GAME_NO_COCKTAIL )
-GAME( 1993, macross2g, macross2,macross2, macross2, driver_device, 0, ROT0, "Banpresto", "Super Spacefortress Macross II / Chou-Jikuu Yousai Macross II (GAMEST review build)", GAME_NO_COCKTAIL ) // Service switch pauses game
+GAME( 1993, macross2, 0, macross2, macross2, driver_device, 0, ROT0, "Banpresto", "Super Spacefortress Macross II / Chou-Jikuu Yousai Macross II", MACHINE_NO_COCKTAIL )
+GAME( 1993, macross2g, macross2,macross2, macross2, driver_device, 0, 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, driver_device, 0, ROT270, "NMK", "Thunder Dragon 2 (9th Nov. 1993)", GAME_NO_COCKTAIL )
-GAME( 1993, tdragon2a,tdragon2, tdragon2, tdragon2, driver_device, 0, ROT270, "NMK", "Thunder Dragon 2 (1st Oct. 1993)", GAME_NO_COCKTAIL )
-GAME( 1993, bigbang, tdragon2, tdragon2, tdragon2, driver_device, 0, ROT270, "NMK", "Big Bang (9th Nov. 1993)", GAME_NO_COCKTAIL )
+GAME( 1993, tdragon2, 0, tdragon2, tdragon2, driver_device, 0, ROT270, "NMK", "Thunder Dragon 2 (9th Nov. 1993)", MACHINE_NO_COCKTAIL )
+GAME( 1993, tdragon2a,tdragon2, tdragon2, tdragon2, driver_device, 0, ROT270, "NMK", "Thunder Dragon 2 (1st Oct. 1993)", MACHINE_NO_COCKTAIL )
+GAME( 1993, bigbang, tdragon2, tdragon2, tdragon2, driver_device, 0, 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, driver_device, 0, ROT270, "NMK", "Arcadia (NMK)", 0 ) // 23rd July 1993 in test mode, (c)1994 on title screen
GAME( 1994, raphero, arcadian, raphero, raphero, driver_device, 0, 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)", GAME_NO_COCKTAIL )
-GAME( 1992, sabotenba,sabotenb, bjtwin, sabotenb, nmk16_state, nmk, ROT0, "NMK / Tecmo", "Saboten Bombers (set 2)", GAME_NO_COCKTAIL )
-GAME( 1992, cactus, sabotenb, bjtwin, sabotenb, nmk16_state, nmk, ROT0, "bootleg", "Cactus (bootleg of Saboten Bombers)", GAME_NO_COCKTAIL ) // PCB marked 'Cactus', no title screen
+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)", GAME_NO_COCKTAIL )
-GAME( 1993, bjtwina, bjtwin, bjtwin, bjtwin, nmk16_state, bjtwin, ROT270, "NMK", "Bombjack Twin (set 2)", GAME_NO_COCKTAIL )
-GAME( 1993, bjtwinp, bjtwin, bjtwin, bjtwin, driver_device, 0, ROT270, "NMK", "Bombjack Twin (prototype? with adult pictures)", GAME_NO_COCKTAIL ) // Genuine NMK PCB but GFX aren't encrypted
-GAME( 1993, atombjt, bjtwin, atombjt, bjtwin, driver_device, 0, ROT270, "bootleg", "Atom (bootleg of Bombjack Twin)", GAME_NO_COCKTAIL | GAME_NOT_WORKING ) // some non-trivial mods to the gfx and sound hw
+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)", MACHINE_NO_COCKTAIL ) // Genuine NMK PCB but GFX aren't encrypted
+GAME( 1993, atombjt, bjtwin, atombjt, bjtwin, driver_device, 0, ROT270, "bootleg", "Atom (bootleg of Bombjack Twin)", MACHINE_NO_COCKTAIL | MACHINE_NOT_WORKING ) // some non-trivial mods to the gfx and sound hw
-GAME( 1995, nouryoku, 0, bjtwin, nouryoku, nmk16_state, nmk, ROT0, "Tecmo", "Nouryoku Koujou Iinkai", GAME_NO_COCKTAIL )
-GAME( 1995, nouryokup,nouryoku, bjtwin, nouryoku, driver_device, 0, ROT0, "Tecmo", "Nouryoku Koujou Iinkai (prototype)", GAME_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, driver_device, 0, ROT0, "Tecmo", "Nouryoku Koujou Iinkai (prototype)", MACHINE_NO_COCKTAIL ) // GFX aren't encrypted
/* Non NMK boards */
@@ -7870,10 +7866,10 @@ GAME( 1990, mustangb2,mustang, mustangb, mustang, driver_device, 0, ROT
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", GAME_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)", GAME_NO_COCKTAIL )
-GAME( 1996, airattcka,airattck, ssmissin, airattck, nmk16_state, ssmissin, ROT270, "Comad", "Air Attack (set 2)", GAME_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
@@ -7905,10 +7901,10 @@ GAME( 1999, popspops, 0, popspops, popspops, nmk16_state, grdnstrm, ROT
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)", GAME_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, 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)", GAME_NOT_WORKING ) // incomplete dump, vertical mode gfx not dumped
+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
// bee-oh board - different display / interrupt timing to others?
-GAME( 1991, manybloc, 0, manybloc, manybloc, driver_device, 0, ROT270, "Bee-Oh", "Many Block", GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND )
+GAME( 1991, manybloc, 0, manybloc, manybloc, driver_device, 0, ROT270, "Bee-Oh", "Many Block", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND )
diff --git a/src/mame/drivers/norautp.c b/src/mame/drivers/norautp.c
index 323598459de..849a198e2d9 100644
--- a/src/mame/drivers/norautp.c
+++ b/src/mame/drivers/norautp.c
@@ -3436,20 +3436,18 @@ ROM_END
*/
-/*
ROM_START( pkii_dm )
- ROM_REGION( 0x10000, "maincpu", 0 ) // no stack, call's RET go to PC=0
- ROM_LOAD( "12.u12", 0x0000, 0x1000, CRC(048e70d8) SHA1(f0eb16ba68455638de2ce68f51f305a13d0df287) )
- ROM_LOAD( "13.u18", 0x1000, 0x1000, CRC(06cf6789) SHA1(587d883c399348b518e3be4d1dc2581824055328) )
+ ROM_REGION( 0x10000, "maincpu", 0 ) // no stack, call's RET go to PC=0
+ ROM_LOAD( "12.u12", 0x0000, 0x1000, CRC(048e70d8) SHA1(f0eb16ba68455638de2ce68f51f305a13d0df287) )
+ ROM_LOAD( "13.u18", 0x1000, 0x1000, CRC(06cf6789) SHA1(587d883c399348b518e3be4d1dc2581824055328) )
- ROM_REGION( 0x1000, "gfx", 0 )
- ROM_FILL( 0x0000, 0x0800, 0xff )
- ROM_LOAD( "cgw-f506.u31", 0x0800, 0x0800, CRC(412fc492) SHA1(094ea0ffd0c22274cfe164f07c009ffe022331fd) )
+ ROM_REGION( 0x1000, "gfx", 0 )
+ ROM_FILL( 0x0000, 0x0800, 0xff )
+ ROM_LOAD( "cgw-f506.u31", 0x0800, 0x0800, CRC(412fc492) SHA1(094ea0ffd0c22274cfe164f07c009ffe022331fd) )
- ROM_REGION( 0x0200, "proms", 0 )
- ROM_LOAD( "63s141n.u51", 0x0000, 0x0100, CRC(88302127) SHA1(aed1273974917673405f1234ab64e6f8b3856c34) )
+ ROM_REGION( 0x0200, "proms", 0 )
+ ROM_LOAD( "63s141n.u51", 0x0000, 0x0100, CRC(88302127) SHA1(aed1273974917673405f1234ab64e6f8b3856c34) )
ROM_END
-*/
/**************************
@@ -3599,19 +3597,19 @@ GAMEL( 198?, norautpl, 0, norautpl, mainline, driver_device, 0, ROT0, "V
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)", GAME_NOT_WORKING )
-GAME( 2002, noraut3a, 0, norautxp, norautp, driver_device, 0, ROT0, "Noraut Ltd.", "Noraut Joker Poker (V3.010a)", GAME_NOT_WORKING )
-GAME( 2003, noraut3b, 0, norautxp, norautp, driver_device, 0, ROT0, "Noraut Ltd.", "Noraut Joker Poker (V3.011a)", GAME_NOT_WORKING )
-GAMEL( 198?, norautua, 0, norautp, norautp, norautp_state, enc, ROT0, "Noraut Ltd.", "Noraut unknown set 1 (console)", GAME_NOT_WORKING, layout_noraut12 )
-GAMEL( 198?, norautub, 0, norautp, norautp, norautp_state, enc, ROT0, "Noraut Ltd.", "Noraut unknown set 2 (console)", GAME_NOT_WORKING, layout_noraut12 )
+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, "<unknown>", "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)", GAME_NOT_WORKING )
-GAME( 1983, pma, 0, nortest1, norautp, driver_device, 0, ROT0, "PMA", "PMA Poker", GAME_NOT_WORKING )
-GAMEL( 198?, bjpoker, 0, norautxp, norautrh, driver_device, 0, ROT0, "M.Kramer Manufacturing.", "Poker / Black Jack (Model 7521)", GAME_NOT_WORKING, layout_noraut12 )
-GAME( 19??, newhilop, 0, newhilop, norautp, driver_device, 0, ROT0, "Song Won?", "New Hi-Low Poker", GAME_NOT_WORKING )
+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 )
/************************************* 8080 sets **************************************/
@@ -3620,19 +3618,19 @@ GAME( 19??, newhilop, 0, newhilop, norautp, driver_device, 0, ROT0, "S
/* 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)", GAME_NOT_WORKING )
-GAME( 1983, dphla, 0, dphla, norautp, driver_device, 0, ROT0, "<unknown>", "Draw Poker HI-LO (Alt)", GAME_NOT_WORKING )
-GAME( 1983, dphljp, 0, dphl, norautp, driver_device, 0, ROT0, "<unknown>", "Draw Poker HI-LO (Japanese)", GAME_NOT_WORKING )
-GAME( 198?, kimbldhl, 0, kimbldhl, norautp, driver_device, 0, ROT0, "Kimble Ireland", "Kimble Double HI-LO", GAME_NOT_WORKING )
-GAME( 1983, gtipoker, 0, dphl, norautp, driver_device, 0, ROT0, "GTI Inc", "GTI Poker", GAME_NOT_WORKING )
-GAME( 1983, gtipokra, 0, dphla, norautp, driver_device, 0, ROT0, "GTI Inc", "GTI Poker? (SMS hardware)", GAME_NOT_WORKING )
-GAME( 1983, smshilo, 0, dphla, norautp, driver_device, 0, ROT0, "SMS Manufacturing Corp.", "HI-LO Double Up Joker Poker", GAME_NOT_WORKING )
-GAME( 1986, drhl, 0, drhl, norautp, driver_device, 0, ROT0, "Drews Inc.", "Drews Revenge (v.2.89, set 1)", GAME_NOT_WORKING )
-GAME( 1986, drhla, 0, drhl, norautp, driver_device, 0, ROT0, "Drews Inc.", "Drews Revenge (v.2.89, set 2)", GAME_NOT_WORKING )
-GAME( 1982, ssjkrpkr, 0, ssjkrpkr, norautp, norautp_state, ssa, ROT0, "Southern Systems & Assembly", "Southern Systems Joker Poker", GAME_NOT_WORKING )
+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, "<unknown>", "Draw Poker HI-LO (Alt)", MACHINE_NOT_WORKING )
+GAME( 1983, dphljp, 0, dphl, norautp, driver_device, 0, ROT0, "<unknown>", "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 )
+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", GAME_NOT_WORKING )
+GAME( 1993, tpoker2, 0, dphltest, norautp, driver_device, 0, ROT0, "Micro Manufacturing", "Turbo Poker 2", MACHINE_NOT_WORKING )
/************************************ unknown sets ************************************/
@@ -3641,8 +3639,7 @@ GAME( 1993, tpoker2, 0, dphltest, norautp, driver_device, 0, ROT0, "M
/* 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)?", GAME_NOT_WORKING )
-GAME( 198?, dphlunka, 0, dphl, norautp, driver_device, 0, ROT0, "SMS Manufacturing Corp.", "Draw Poker HI-LO (unknown, rev 1)", GAME_NOT_WORKING )
-GAME( 198?, dphlunkb, 0, dphl, norautp, driver_device, 0, ROT0, "SMS Manufacturing Corp.", "Draw Poker HI-LO (unknown, rev 2)", GAME_NOT_WORKING )
-
-//GAME( 198?, pkii_dm, 0, nortest1, norautp, driver_device, 0, ROT0, "<unknown>", "Unknown Poker PKII/DM", GAME_NOT_WORKING )
+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>", "Unknown Poker PKII/DM", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/nova2001.c b/src/mame/drivers/nova2001.c
index d00b2853091..8f10665d9d0 100644
--- a/src/mame/drivers/nova2001.c
+++ b/src/mame/drivers/nova2001.c
@@ -647,8 +647,8 @@ static MACHINE_CONFIG_START( nova2001, nova2001_state )
MCFG_SCREEN_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", "palette", nova2001)
- MCFG_PALETTE_ADD("palette", 0x200)
- MCFG_PALETTE_FORMAT(BBGGRRII)
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_FORMAT_CLASS(1, nova2001_state, BBGGRRII)
MCFG_PALETTE_INIT_OWNER(nova2001_state,nova2001)
MCFG_VIDEO_START_OVERRIDE(nova2001_state,nova2001)
@@ -692,8 +692,8 @@ static MACHINE_CONFIG_START( ninjakun, nova2001_state )
MCFG_SCREEN_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", "palette", ninjakun)
- MCFG_PALETTE_ADD("palette", 0x300)
- MCFG_PALETTE_FORMAT(BBGGRRII)
+ MCFG_PALETTE_ADD("palette", 768)
+ MCFG_PALETTE_FORMAT_CLASS(1, nova2001_state, BBGGRRII)
MCFG_VIDEO_START_OVERRIDE(nova2001_state,ninjakun)
@@ -728,8 +728,8 @@ static MACHINE_CONFIG_START( pkunwar, nova2001_state )
MCFG_SCREEN_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", "palette", pkunwar)
- MCFG_PALETTE_ADD("palette", 0x200)
- MCFG_PALETTE_FORMAT(BBGGRRII)
+ MCFG_PALETTE_ADD("palette", 512)
+ MCFG_PALETTE_FORMAT_CLASS(1, nova2001_state, BBGGRRII)
MCFG_PALETTE_INIT_OWNER(nova2001_state,nova2001)
MCFG_VIDEO_START_OVERRIDE(nova2001_state,pkunwar)
@@ -771,8 +771,8 @@ static MACHINE_CONFIG_START( raiders5, nova2001_state )
MCFG_SCREEN_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", "palette", raiders5)
- MCFG_PALETTE_ADD("palette", 0x300)
- MCFG_PALETTE_FORMAT(BBGGRRII)
+ MCFG_PALETTE_ADD("palette", 768)
+ MCFG_PALETTE_FORMAT_CLASS(1, nova2001_state, BBGGRRII)
MCFG_VIDEO_START_OVERRIDE(nova2001_state,raiders5)
@@ -996,10 +996,10 @@ DRIVER_INIT_MEMBER(nova2001_state,raiders5)
*************************************/
// YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR,COMPANY,FULLNAME,FLAGS
-GAME( 1983, nova2001, 0, nova2001, nova2001, driver_device, 0, ROT0, "UPL", "Nova 2001 (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1983, nova2001u, nova2001, nova2001, nova2001, driver_device, 0, ROT0, "UPL (Universal license)", "Nova 2001 (US)", GAME_SUPPORTS_SAVE )
-GAME( 1984, ninjakun, 0, ninjakun, ninjakun, driver_device, 0, ROT0, "UPL (Taito license)", "Ninjakun Majou no Bouken", GAME_SUPPORTS_SAVE )
-GAME( 1985, pkunwar, 0, pkunwar, pkunwar, nova2001_state, pkunwar, ROT0, "UPL", "Penguin-Kun Wars (US)", GAME_SUPPORTS_SAVE )
-GAME( 1985, pkunwarj, pkunwar, pkunwar, pkunwar, nova2001_state, pkunwar, ROT0, "UPL", "Penguin-Kun Wars (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1985, raiders5, 0, raiders5, raiders5, nova2001_state, raiders5, ROT0, "UPL", "Raiders5", GAME_SUPPORTS_SAVE )
-GAME( 1985, raiders5t, raiders5, raiders5, raiders5, nova2001_state, raiders5, ROT0, "UPL (Taito license)", "Raiders5 (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1983, nova2001, 0, nova2001, nova2001, driver_device, 0, ROT0, "UPL", "Nova 2001 (Japan)", 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 )
+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/nsm.c b/src/mame/drivers/nsm.c
index 85f753aa8fb..6dd64bd7cc5 100644
--- a/src/mame/drivers/nsm.c
+++ b/src/mame/drivers/nsm.c
@@ -153,4 +153,4 @@ ROM_END
/ The Games (1985)
/-------------------------------------------------------------------*/
-GAME(1985, firebird, 0, nsm, nsm, driver_device, 0, ROT0, "NSM", "Hot Fire Birds", GAME_NOT_WORKING | GAME_MECHANICAL)
+GAME(1985, firebird, 0, nsm, nsm, driver_device, 0, ROT0, "NSM", "Hot Fire Birds", MACHINE_NOT_WORKING | MACHINE_MECHANICAL)
diff --git a/src/mame/drivers/nsmpoker.c b/src/mame/drivers/nsmpoker.c
index 6da21cc479a..e4bb63a585f 100644
--- a/src/mame/drivers/nsmpoker.c
+++ b/src/mame/drivers/nsmpoker.c
@@ -458,4 +458,4 @@ ROM_END
*************************/
/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS */
-GAME( 198?, nsmpoker, 0, nsmpoker, nsmpoker, driver_device, 0, ROT0, "NSM", "NSM Poker (TMS9995)", GAME_NO_SOUND | GAME_NOT_WORKING )
+GAME( 198?, nsmpoker, 0, nsmpoker, nsmpoker, driver_device, 0, ROT0, "NSM", "NSM Poker (TMS9995)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/nss.c b/src/mame/drivers/nss.c
index e462d4f58be..fa0cecd8ce6 100644
--- a/src/mame/drivers/nss.c
+++ b/src/mame/drivers/nss.c
@@ -1059,16 +1059,16 @@ 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", GAME_IS_BIOS_ROOT )
-GAME( 1992, nss_actr, nss, nss, snes, nss_state, nss, ROT0, "Enix", "Act Raiser (Nintendo Super System)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND )
-GAME( 1992, nss_adam, nss, nss, snes, nss_state, nss, ROT0, "Ocean", "The Addams Family (Nintendo Super System)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND )
-GAME( 1992, nss_aten, nss, nss, snes, nss_state, nss, ROT0, "Absolute Entertainment Inc.", "David Crane's Amazing Tennis (Nintendo Super System)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
-GAME( 1992, nss_con3, nss, nss, snes, nss_state, nss, ROT0, "Konami", "Contra 3: The Alien Wars (Nintendo Super System)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
-GAME( 1992, nss_lwep, nss, nss, snes, nss_state, nss, ROT0, "Ocean", "Lethal Weapon (Nintendo Super System)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
-GAME( 1992, nss_ncaa, nss, nss, snes, nss_state, nss, ROT0, "Sculptured Software Inc.", "NCAA Basketball (Nintendo Super System)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
-GAME( 1992, nss_rob3, nss, nss, snes, nss_state, nss, ROT0, "Ocean", "Robocop 3 (Nintendo Super System)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
-GAME( 1992, nss_skin, nss, nss, snes, nss_state, nss, ROT0, "Irem", "Skins Game (Nintendo Super System)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) // can't start
-GAME( 1992, nss_ssoc, nss, nss, snes, nss_state, nss, ROT0, "Human Inc.", "Super Soccer (Nintendo Super System)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
-GAME( 1991, nss_smw, nss, nss, snes, nss_state, nss, ROT0, "Nintendo", "Super Mario World (Nintendo Super System)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
-GAME( 1991, nss_fzer, nss, nss, snes, nss_state, nss, ROT0, "Nintendo", "F-Zero (Nintendo Super System)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
-GAME( 1991, nss_sten, nss, nss, snes, nss_state, nss, ROT0, "Nintendo", "Super Tennis (Nintendo Super System)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
+GAME( 199?, nss, 0, nss, snes, snes_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 )
+GAME( 1992, nss_con3, nss, nss, snes, nss_state, nss, ROT0, "Konami", "Contra 3: The Alien Wars (Nintendo Super System)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
+GAME( 1992, nss_lwep, nss, nss, snes, nss_state, nss, ROT0, "Ocean", "Lethal Weapon (Nintendo Super System)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
+GAME( 1992, nss_ncaa, nss, nss, snes, nss_state, nss, ROT0, "Sculptured Software Inc.", "NCAA Basketball (Nintendo Super System)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
+GAME( 1992, nss_rob3, nss, nss, snes, nss_state, nss, ROT0, "Ocean", "Robocop 3 (Nintendo Super System)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
+GAME( 1992, nss_skin, nss, nss, snes, nss_state, nss, ROT0, "Irem", "Skins Game (Nintendo Super System)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // can't start
+GAME( 1992, nss_ssoc, nss, nss, snes, nss_state, nss, ROT0, "Human Inc.", "Super Soccer (Nintendo Super System)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
+GAME( 1991, nss_smw, nss, nss, snes, nss_state, nss, ROT0, "Nintendo", "Super Mario World (Nintendo Super System)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
+GAME( 1991, nss_fzer, nss, nss, snes, nss_state, nss, ROT0, "Nintendo", "F-Zero (Nintendo Super System)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
+GAME( 1991, nss_sten, nss, nss, snes, nss_state, nss, ROT0, "Nintendo", "Super Tennis (Nintendo Super System)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/nwk-tr.c b/src/mame/drivers/nwk-tr.c
index 84bd7385d7a..4cc5c9c581b 100644
--- a/src/mame/drivers/nwk-tr.c
+++ b/src/mame/drivers/nwk-tr.c
@@ -991,9 +991,9 @@ ROM_END
/*****************************************************************************/
-GAME( 1998, racingj, 0, nwktr, nwktr, nwktr_state, nwktr, ROT0, "Konami", "Racing Jam (JAC)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND )
-GAME( 1999, racingj2, racingj, nwktr, nwktr, nwktr_state, nwktr, ROT0, "Konami", "Racing Jam: Chapter 2 (EAE)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND )
-GAME( 1999, racingj2j, racingj, nwktr, nwktr, nwktr_state, nwktr, ROT0, "Konami", "Racing Jam: Chapter 2 (JAE)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND )
-GAME( 1998, thrilld, 0, thrilld, nwktr, nwktr_state, nwktr, ROT0, "Konami", "Thrill Drive (JAE)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, thrilldb, thrilld, thrilld, nwktr, nwktr_state, nwktr, ROT0, "Konami", "Thrill Drive (JAB)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, thrilldae, thrilld, thrilld, nwktr, nwktr_state, nwktr, ROT0, "Konami", "Thrill Drive (EAA)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_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 )
diff --git a/src/mame/drivers/nycaptor.c b/src/mame/drivers/nycaptor.c
index b2d060762fe..df2b1fe7583 100644
--- a/src/mame/drivers/nycaptor.c
+++ b/src/mame/drivers/nycaptor.c
@@ -743,7 +743,7 @@ void nycaptor_state::machine_start()
membank("bank1")->configure_entries(0, 2, memregion("maincpu")->base() + 0x10000, 0x4000);
else
membank("bank1")->configure_entries(0, 4, memregion("maincpu")->base() + 0x10000, 0x4000);
-
+
save_item(NAME(m_generic_control_reg));
save_item(NAME(m_sound_nmi_enable));
save_item(NAME(m_pending_nmi));
@@ -1349,8 +1349,8 @@ DRIVER_INIT_MEMBER(nycaptor_state,colt)
m_gametype = 2;
}
-GAME( 1985, nycaptor, 0, nycaptor, nycaptor, nycaptor_state, nycaptor, ROT0, "Taito", "N.Y. Captor", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1986, cyclshtg, 0, cyclshtg, cyclshtg, nycaptor_state, cyclshtg, ROT90, "Taito", "Cycle Shooting", GAME_NOT_WORKING | GAME_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", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1986, colt, nycaptor, bronx, colt, nycaptor_state, colt, ROT0, "bootleg", "Colt", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_WRONG_COLORS | GAME_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.c b/src/mame/drivers/nyny.c
index 940f30fc34a..b400cb64137 100644
--- a/src/mame/drivers/nyny.c
+++ b/src/mame/drivers/nyny.c
@@ -84,8 +84,6 @@
#define AUDIO_CPU_2_CLOCK AUDIO_2_MASTER_CLOCK
-#define NUM_PENS 8
-
class nyny_state : public driver_device
{
public:
@@ -100,6 +98,7 @@ public:
m_audiocpu2(*this, "audio2"),
m_ic48_1(*this, "ic48_1"),
m_mc6845(*this, "crtc"),
+ m_palette(*this, "palette"),
m_pia1(*this, "pia1"),
m_pia2(*this, "pia2") { }
@@ -121,10 +120,10 @@ public:
required_device<cpu_device> m_audiocpu2;
required_device<ttl74123_device> m_ic48_1;
required_device<mc6845_device> m_mc6845;
+ required_device<palette_device> m_palette;
required_device<pia6821_device> m_pia1;
required_device<pia6821_device> m_pia2;
- pen_t m_pens[NUM_PENS];
DECLARE_WRITE8_MEMBER(audio_1_command_w);
DECLARE_WRITE8_MEMBER(audio_1_answer_w);
DECLARE_WRITE8_MEMBER(audio_2_command_w);
@@ -143,7 +142,6 @@ public:
DECLARE_WRITE8_MEMBER(ic48_1_74123_output_changed);
inline void shift_star_generator( );
- MC6845_BEGIN_UPDATE(crtc_begin_update);
MC6845_UPDATE_ROW(crtc_update_row);
MC6845_END_UPDATE(crtc_end_update);
};
@@ -248,16 +246,6 @@ WRITE_LINE_MEMBER(nyny_state::flipscreen_w)
}
-MC6845_BEGIN_UPDATE( nyny_state::crtc_begin_update )
-{
- /* create the pens */
- for (offs_t i = 0; i < NUM_PENS; i++)
- {
- m_pens[i] = rgb_t(pal1bit(i >> 0), pal1bit(i >> 1), pal1bit(i >> 2));
- }
-}
-
-
MC6845_UPDATE_ROW( nyny_state::crtc_update_row )
{
UINT8 x = 0;
@@ -307,7 +295,7 @@ MC6845_UPDATE_ROW( nyny_state::crtc_update_row )
else
color = bit2 ? color2 : 0;
- bitmap.pix32(y, x) = m_pens[color];
+ bitmap.pix32(y, x) = m_palette->pen_color(color);
x += 1;
}
@@ -333,7 +321,7 @@ MC6845_END_UPDATE( nyny_state::crtc_end_update )
for (int x = cliprect.min_x; x <= cliprect.max_x; x++)
{
/* check if the star status */
- if (m_star_enable && (bitmap.pix32(y, x) == m_pens[0]) &&
+ if (m_star_enable && (bitmap.pix32(y, x) == m_palette->pen_color(0)) &&
((m_star_shift_reg & 0x80ff) == 0x00ff) &&
(((y & 0x01) ^ m_flipscreen) ^ (((x & 0x08) >> 3) ^ m_flipscreen)))
{
@@ -341,7 +329,7 @@ MC6845_END_UPDATE( nyny_state::crtc_end_update )
((m_star_shift_reg & 0x0400) >> 9) | /* G */
((m_star_shift_reg & 0x1000) >> 10); /* B */
- bitmap.pix32(y, x) = m_pens[color];
+ bitmap.pix32(y, x) = m_palette->pen_color(color);
}
if (delay_counter == 0)
@@ -609,10 +597,11 @@ static MACHINE_CONFIG_START( nyny, nyny_state )
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 256, 0, 256, 256, 0, 256) /* temporary, CRTC will configure screen */
MCFG_SCREEN_UPDATE_DEVICE("crtc", mc6845_device, screen_update)
+ MCFG_PALETTE_ADD_3BIT_RGB("palette")
+
MCFG_MC6845_ADD("crtc", MC6845, "screen", CRTC_CLOCK)
MCFG_MC6845_SHOW_BORDER_AREA(false)
MCFG_MC6845_CHAR_WIDTH(8)
- MCFG_MC6845_BEGIN_UPDATE_CB(nyny_state, crtc_begin_update)
MCFG_MC6845_UPDATE_ROW_CB(nyny_state, crtc_update_row)
MCFG_MC6845_END_UPDATE_CB(nyny_state, crtc_end_update)
MCFG_MC6845_OUT_DE_CB(WRITELINE(nyny_state, display_enable_changed))
@@ -737,6 +726,6 @@ ROM_END
*
*************************************/
-GAME( 1980, nyny, 0, nyny, nyny, driver_device, 0, ROT270, "Sigma Enterprises Inc.", "New York! New York!", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, nynyg, nyny, nyny, nyny, driver_device, 0, ROT270, "Sigma Enterprises Inc. (Gottlieb license)", "New York! New York! (Gottlieb)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, warcadia,nyny, nyny, nyny, driver_device, 0, ROT270, "Sigma Enterprises Inc.", "Waga Seishun no Arcadia", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/ob68k1a.c b/src/mame/drivers/ob68k1a.c
index 183584a650d..e28b6234825 100644
--- a/src/mess/drivers/ob68k1a.c
+++ b/src/mame/drivers/ob68k1a.c
@@ -289,4 +289,4 @@ ROM_END
//**************************************************************************
// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS
-COMP( 1982, ob68k1a, 0, 0, ob68k1a, ob68k1a, driver_device, 0, "Omnibyte", "OB68K1A", GAME_NO_SOUND_HW )
+COMP( 1982, ob68k1a, 0, 0, ob68k1a, ob68k1a, driver_device, 0, "Omnibyte", "OB68K1A", MACHINE_NO_SOUND_HW )
diff --git a/src/mess/drivers/octopus.c b/src/mame/drivers/octopus.c
index 53797e12add..7e9ce91967e 100644
--- a/src/mess/drivers/octopus.c
+++ b/src/mame/drivers/octopus.c
@@ -195,4 +195,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1986, octopus, 0, 0, octopus, octopus, driver_device, 0, "Digital Microsystems", "LSI Octopus", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/odyssey2.c b/src/mame/drivers/odyssey2.c
index 58b95335b24..fdd98f3b815 100644
--- a/src/mess/drivers/odyssey2.c
+++ b/src/mame/drivers/odyssey2.c
@@ -828,6 +828,6 @@ 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", GAME_IMPERFECT_GRAPHICS )
-COMP( 1983, jopac, odyssey2, 0, g7400, odyssey2, odyssey2_state, odyssey2, "Brandt", "Jopac JO7400", GAME_IMPERFECT_GRAPHICS )
-COMP( 1983, odyssey3, odyssey2, 0, odyssey3, odyssey2, odyssey2_state, odyssey2, "Magnavox", "Odyssey 3 Command Center (prototype)", GAME_IMPERFECT_GRAPHICS )
+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 )
diff --git a/src/mame/drivers/ohmygod.c b/src/mame/drivers/ohmygod.c
index 98ecfad260a..ce3040bd926 100644
--- a/src/mame/drivers/ohmygod.c
+++ b/src/mame/drivers/ohmygod.c
@@ -397,5 +397,5 @@ DRIVER_INIT_MEMBER(ohmygod_state,naname)
}
-GAME( 1993, ohmygod, 0, ohmygod, ohmygod, ohmygod_state, ohmygod, ROT0, "Atlus", "Oh My God! (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1994, naname, 0, ohmygod, naname, ohmygod_state, naname, ROT0, "Atlus", "Naname de Magic! (Japan)", GAME_NO_COCKTAIL | GAME_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.c b/src/mame/drivers/ojankohs.c
index 0f3ddc16da2..f9d1ca50faa 100644
--- a/src/mame/drivers/ojankohs.c
+++ b/src/mame/drivers/ojankohs.c
@@ -1058,8 +1058,8 @@ ROM_START( ojankoc )
ROM_END
-GAME( 1986, ojankoc, 0, ojankoc, ojankoc, driver_device, 0, ROT0, "V-System Co.", "Ojanko Club (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1986, ojankoy, 0, ojankoy, ojankoy, driver_device, 0, ROT0, "V-System Co.", "Ojanko Yakata (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1987, ojanko2, 0, ojankoy, ojankoy, driver_device, 0, ROT0, "V-System Co.", "Ojanko Yakata 2bankan (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1987, ccasino, 0, ccasino, ccasino, driver_device, 0, ROT0, "V-System Co.", "Chinese Casino [BET] (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1988, ojankohs, 0, ojankohs, ojankohs, driver_device, 0, ROT0, "V-System Co.", "Ojanko High School (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1986, ojankoc, 0, ojankoc, ojankoc, driver_device, 0, ROT0, "V-System Co.", "Ojanko Club (Japan)", 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 )
diff --git a/src/mess/drivers/okean240.c b/src/mame/drivers/okean240.c
index 16a7ede8d3b..8fc87a52848 100644
--- a/src/mess/drivers/okean240.c
+++ b/src/mame/drivers/okean240.c
@@ -533,6 +533,6 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 1986, okean240, 0, 0, okean240, okean240, okean240_state, okean240, "<unknown>", "Okeah-240", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 1986, okean240a, okean240,0, okean240a, okean240a, okean240_state, okean240, "<unknown>", "Ocean-240 with fdd", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 1986, okean240t, okean240,0, okean240t, okean240, okean240_state, okean240, "<unknown>", "Ocean-240 Test Rom", GAME_NO_SOUND)
+COMP( 1986, okean240, 0, 0, okean240, okean240, okean240_state, okean240, "<unknown>", "Okeah-240", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
+COMP( 1986, okean240a, okean240,0, okean240a, okean240a, okean240_state, okean240, "<unknown>", "Ocean-240 with fdd", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
+COMP( 1986, okean240t, okean240,0, okean240t, okean240, okean240_state, okean240, "<unknown>", "Ocean-240 Test Rom", MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/olibochu.c b/src/mame/drivers/olibochu.c
index 2e741a6d062..a06d9b71154 100644
--- a/src/mame/drivers/olibochu.c
+++ b/src/mame/drivers/olibochu.c
@@ -75,7 +75,6 @@ public:
required_shared_ptr<UINT8> m_colorram;
required_shared_ptr<UINT8> m_spriteram;
required_shared_ptr<UINT8> m_spriteram2;
-// UINT8 * m_paletteram; // currently this uses generic palette handling
/* video-related */
tilemap_t *m_bg_tilemap;
@@ -529,4 +528,4 @@ ROM_END
-GAME( 1981, olibochu, 0, olibochu, olibochu, driver_device, 0, ROT270, "Irem / GDI", "Oli-Boo-Chu", GAME_WRONG_COLORS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1981, olibochu, 0, olibochu, olibochu, driver_device, 0, ROT270, "Irem / GDI", "Oli-Boo-Chu", MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/omegrace.c b/src/mame/drivers/omegrace.c
index 8f01df08dfd..7f7ef74044f 100644
--- a/src/mame/drivers/omegrace.c
+++ b/src/mame/drivers/omegrace.c
@@ -620,6 +620,6 @@ DRIVER_INIT_MEMBER(omegrace_state,omegrace)
*
*************************************/
-GAMEL(1981, omegrace, 0, omegrace, omegrace, omegrace_state, omegrace, ROT0, "Midway", "Omega Race (set 1)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE, layout_omegrace )
-GAMEL(1981, omegrace2, omegrace, omegrace, omegrace, omegrace_state, omegrace, ROT0, "Midway", "Omega Race (set 2)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE, layout_omegrace )
-GAMEL(1981, deltrace, omegrace, omegrace, omegrace, omegrace_state, omegrace, ROT0, "bootleg (Allied Leisure)", "Delta Race", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE, layout_omegrace )
+GAMEL(1981, omegrace, 0, omegrace, omegrace, omegrace_state, omegrace, ROT0, "Midway", "Omega Race (set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE, layout_omegrace )
+GAMEL(1981, omegrace2, omegrace, omegrace, omegrace, omegrace_state, omegrace, ROT0, "Midway", "Omega Race (set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE, layout_omegrace )
+GAMEL(1981, deltrace, omegrace, omegrace, omegrace, omegrace_state, omegrace, ROT0, "bootleg (Allied Leisure)", "Delta Race", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE, layout_omegrace )
diff --git a/src/mess/drivers/ondra.c b/src/mame/drivers/ondra.c
index 7631a89b702..7631a89b702 100644
--- a/src/mess/drivers/ondra.c
+++ b/src/mame/drivers/ondra.c
diff --git a/src/mame/drivers/oneshot.c b/src/mame/drivers/oneshot.c
index 5f282a41a76..e6b0fee887d 100644
--- a/src/mame/drivers/oneshot.c
+++ b/src/mame/drivers/oneshot.c
@@ -483,6 +483,6 @@ ROM_END
-GAME( 1995, maddonna, 0, maddonna, maddonna, driver_device, 0, ROT0, "Tuning", "Mad Donna (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1995, maddonnb, maddonna, maddonna, maddonna, driver_device, 0, ROT0, "Tuning", "Mad Donna (set 2)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1996, oneshot, 0, oneshot, oneshot , driver_device, 0, ROT0, "Promat", "One Shot One Kill", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/onetwo.c b/src/mame/drivers/onetwo.c
index 517c5b84c0d..4d53e4323de 100644
--- a/src/mame/drivers/onetwo.c
+++ b/src/mame/drivers/onetwo.c
@@ -428,5 +428,5 @@ ROM_END
*
*************************************/
-GAME( 1997, onetwo, 0, onetwo, onetwo, driver_device, 0, ROT0, "Barko", "One + Two", GAME_SUPPORTS_SAVE )
-GAME( 1997, onetwoe, onetwo, onetwo, onetwo, driver_device, 0, ROT0, "Barko", "One + Two (earlier)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/onyx.c b/src/mame/drivers/onyx.c
index 2dff610ef4d..85d02013975 100644
--- a/src/mess/drivers/onyx.c
+++ b/src/mame/drivers/onyx.c
@@ -166,4 +166,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND_HW )
+COMP( 1982, c8002, 0, 0, c8002, c8002, driver_device, 0, "Onyx", "C8002", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW )
diff --git a/src/mame/drivers/opwolf.c b/src/mame/drivers/opwolf.c
index 488424434b9..5b24eda3ffb 100644
--- a/src/mame/drivers/opwolf.c
+++ b/src/mame/drivers/opwolf.c
@@ -981,8 +981,8 @@ DRIVER_INIT_MEMBER(opwolf_state,opwolfb)
/* year rom parent machine inp init */
-GAME( 1987, opwolf, 0, opwolf, opwolf, opwolf_state, opwolf, ROT0, "Taito Corporation Japan", "Operation Wolf (World, set 1)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1987, opwolfa, opwolf, opwolf, opwolf, opwolf_state, opwolf, ROT0, "Taito Corporation Japan", "Operation Wolf (World, set 2)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1987, opwolfj, opwolf, opwolf, opwolfu, opwolf_state, opwolf, ROT0, "Taito Corporation", "Operation Wolf (Japan)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1987, opwolfu, opwolf, opwolf, opwolfu, opwolf_state, opwolf, ROT0, "Taito America Corporation", "Operation Wolf (US)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1987, opwolfb, opwolf, opwolfb, opwolfb, opwolf_state, opwolfb, ROT0, "bootleg (Bear Corporation Korea)", "Operation Bear (bootleg of Operation Wolf)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/orao.c b/src/mame/drivers/orao.c
index 83fa8642b6a..04090619ef8 100644
--- a/src/mess/drivers/orao.c
+++ b/src/mame/drivers/orao.c
@@ -14,7 +14,7 @@
#include "emu.h"
#include "cpu/m6502/m6502.h"
-#include "sound/dac.h"
+#include "sound/speaker.h"
#include "sound/wave.h"
#include "includes/orao.h"
#include "imagedev/cassette.h"
@@ -34,129 +34,129 @@ ADDRESS_MAP_END
/* Input ports */
static INPUT_PORTS_START( orao )
- PORT_START("LINE0")
+ PORT_START("LINE.0")
PORT_BIT(0x0F, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT))
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP))
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN))
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT))
- PORT_START("LINE1")
+ PORT_START("LINE.1")
PORT_BIT(0x0F, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13)
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Control") PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(KEYCODE_RCONTROL)
PORT_BIT(0xC0, IP_ACTIVE_LOW, IPT_UNUSED)
- PORT_START("LINE2")
+ PORT_START("LINE.2")
PORT_BIT(0x0F, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F1") PORT_CODE(KEYCODE_F1) PORT_CHAR(UCHAR_MAMEKEY(F1))
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F2") PORT_CODE(KEYCODE_F2) PORT_CHAR(UCHAR_MAMEKEY(F2))
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F3") PORT_CODE(KEYCODE_F3) PORT_CHAR(UCHAR_MAMEKEY(F3))
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F4") PORT_CODE(KEYCODE_F4) PORT_CHAR(UCHAR_MAMEKEY(F4))
- PORT_START("LINE3")
+ PORT_START("LINE.3")
PORT_BIT(0x0F, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ')
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Shift") PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1)
PORT_BIT(0xC0, IP_ACTIVE_LOW, IPT_UNUSED)
- PORT_START("LINE4")
+ PORT_START("LINE.4")
PORT_BIT(0x0F, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_R) PORT_CHAR('R')
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Z) PORT_CHAR('Z')
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_T) PORT_CHAR('T')
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&')
- PORT_START("LINE5")
+ PORT_START("LINE.5")
PORT_BIT(0x0F, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%')
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$')
PORT_BIT(0xC0, IP_ACTIVE_LOW, IPT_UNUSED)
- PORT_START("LINE6")
+ PORT_START("LINE.6")
PORT_BIT(0x0F, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_O) PORT_CHAR('O')
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_I) PORT_CHAR('I')
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_U) PORT_CHAR('U')
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'')
- PORT_START("LINE7")
+ PORT_START("LINE.7")
PORT_BIT(0x0F, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(')
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')')
PORT_BIT(0xC0, IP_ACTIVE_LOW, IPT_UNUSED)
- PORT_START("LINE8")
+ PORT_START("LINE.8")
PORT_BIT(0x0F, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_E) PORT_CHAR('E')
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Q) PORT_CHAR('Q')
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_W) PORT_CHAR('W')
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!')
- PORT_START("LINE9")
+ PORT_START("LINE.9")
PORT_BIT(0x0F, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('"')
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#')
PORT_BIT(0xC0, IP_ACTIVE_LOW, IPT_UNUSED)
- PORT_START("LINE10")
+ PORT_START("LINE.10")
PORT_BIT(0x0F, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_L) PORT_CHAR('L')
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_J) PORT_CHAR('J')
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_K) PORT_CHAR('K')
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_M) PORT_CHAR('M')
- PORT_START("LINE11")
+ PORT_START("LINE.11")
PORT_BIT(0x0F, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<')
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>')
PORT_BIT(0xC0, IP_ACTIVE_LOW, IPT_UNUSED)
- PORT_START("LINE12")
+ PORT_START("LINE.12")
PORT_BIT(0x0F, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_D) PORT_CHAR('D')
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_A) PORT_CHAR('A')
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_S) PORT_CHAR('S')
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Y) PORT_CHAR('Y')
- PORT_START("LINE13")
+ PORT_START("LINE.13")
PORT_BIT(0x0F, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_X) PORT_CHAR('X')
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_C) PORT_CHAR('C')
PORT_BIT(0xC0, IP_ACTIVE_LOW, IPT_UNUSED)
- PORT_START("LINE14")
+ PORT_START("LINE.14")
PORT_BIT(0x0F, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F) PORT_CHAR('F')
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_H) PORT_CHAR('H')
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_G) PORT_CHAR('G')
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_N) PORT_CHAR('N')
- PORT_START("LINE15")
+ PORT_START("LINE.15")
PORT_BIT(0x0F, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_B) PORT_CHAR('B')
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_V) PORT_CHAR('V')
PORT_BIT(0xC0, IP_ACTIVE_LOW, IPT_UNUSED)
- PORT_START("LINE16")
+ PORT_START("LINE.16")
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Ch") PORT_CODE(KEYCODE_COLON)
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Cj") PORT_CODE(KEYCODE_QUOTE)
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Zh") PORT_CODE(KEYCODE_SLASH)
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_BACKSLASH2) PORT_CHAR(':') PORT_CHAR('*')
- PORT_START("LINE17")
+ PORT_START("LINE.17")
PORT_BIT(0x0F, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Del") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8)
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('^') PORT_CHAR('@')
PORT_BIT(0xC0, IP_ACTIVE_LOW, IPT_UNUSED)
- PORT_START("LINE18")
+ PORT_START("LINE.18")
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_P) PORT_CHAR('P')
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Dj") PORT_CODE(KEYCODE_CLOSEBRACE)
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Sh") PORT_CODE(KEYCODE_OPENBRACE)
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR(';') PORT_CHAR('+')
- PORT_START("LINE19")
+ PORT_START("LINE.19")
PORT_BIT(0x0F, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('=')
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_0) PORT_CHAR('0')
@@ -183,8 +183,8 @@ static MACHINE_CONFIG_START( orao, orao_state )
/* audio hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
- MCFG_SOUND_ADD("dac", DAC, 0)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 8.00)
+ MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
diff --git a/src/mame/drivers/orbit.c b/src/mame/drivers/orbit.c
index accc0b71a59..ee9af4fd8af 100644
--- a/src/mame/drivers/orbit.c
+++ b/src/mame/drivers/orbit.c
@@ -361,4 +361,4 @@ ROM_END
*
*************************************/
-GAME( 1978, orbit, 0, orbit, orbit, driver_device, 0, 0, "Atari", "Orbit", GAME_SUPPORTS_SAVE )
+GAME( 1978, orbit, 0, orbit, orbit, driver_device, 0, 0, "Atari", "Orbit", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/oric.c b/src/mame/drivers/oric.c
index 5ef4b1a19de..5748b412c0b 100644
--- a/src/mess/drivers/oric.c
+++ b/src/mame/drivers/oric.c
@@ -49,6 +49,7 @@ public:
oric_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
+ m_palette(*this, "palette"),
m_psg(*this, "ay8912"),
m_centronics(*this, "centronics"),
m_cent_data_out(*this, "cent_data_out"),
@@ -81,6 +82,7 @@ public:
protected:
required_device<cpu_device> m_maincpu;
+ required_device<palette_device> m_palette;
required_device<ay8910_device> m_psg;
required_device<centronics_device> m_centronics;
required_device<output_latch_device> m_cent_data_out;
@@ -200,17 +202,6 @@ ADDRESS_MAP_END
UINT32 oric_state::screen_update_oric(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- static const UINT32 colors[8] = {
- 0x000000,
- 0xff0000,
- 0x00ff00,
- 0xffff00,
- 0x0000ff,
- 0xff00ff,
- 0x00ffff,
- 0xffffff
- };
-
bool blink_state = m_blink_counter & 0x20;
m_blink_counter = (m_blink_counter + 1) & 0x3f;
@@ -219,8 +210,8 @@ UINT32 oric_state::screen_update_oric(screen_device &screen, bitmap_rgb32 &bitma
for(int y=0; y<224; y++) {
// Line attributes and current colors
UINT8 lattr = 0;
- UINT32 fgcol = colors[7];
- UINT32 bgcol = colors[0];
+ UINT32 fgcol = m_palette->pen_color(7);
+ UINT32 bgcol = m_palette->pen_color(0);
UINT32 *p = &bitmap.pix32(y);
@@ -251,9 +242,9 @@ UINT32 oric_state::screen_update_oric(screen_device &screen, bitmap_rgb32 &bitma
if(!(ch & 0x60)) {
pat = 0x00;
switch(ch & 0x18) {
- case 0x00: fgcol = colors[ch & 7]; break;
+ case 0x00: fgcol = m_palette->pen_color(ch & 7); break;
case 0x08: lattr = ch & 7; break;
- case 0x10: bgcol = colors[ch & 7]; break;
+ case 0x10: bgcol = m_palette->pen_color(ch & 7); break;
case 0x18: pattr = ch & 7; break;
}
}
@@ -784,6 +775,8 @@ static MACHINE_CONFIG_START( oric, oric_state )
MCFG_SCREEN_UPDATE_DRIVER(oric_state, screen_update_oric)
MCFG_SCREEN_VBLANK_DRIVER(oric_state, vblank_w)
+ MCFG_PALETTE_ADD_3BIT_RGB("palette")
+
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
@@ -954,5 +947,5 @@ ROM_END
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)", GAME_UNOFFICIAL)
+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 )
diff --git a/src/mess/drivers/orion.c b/src/mame/drivers/orion.c
index ac3d9ab8430..ac3d9ab8430 100644
--- a/src/mess/drivers/orion.c
+++ b/src/mame/drivers/orion.c
diff --git a/src/mess/drivers/osbexec.c b/src/mame/drivers/osbexec.c
index e5889c40fe2..0318dfa31a0 100644
--- a/src/mess/drivers/osbexec.c
+++ b/src/mame/drivers/osbexec.c
@@ -578,4 +578,4 @@ ROM_START( osbexec )
ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 1982, osbexec, 0, 0, osbexec, osbexec, osbexec_state, osbexec, "Osborne", "Executive", GAME_NOT_WORKING )
+COMP( 1982, osbexec, 0, 0, osbexec, osbexec, osbexec_state, osbexec, "Osborne", "Executive", MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/osborne1.c b/src/mame/drivers/osborne1.c
index 4910ee5e0cc..4910ee5e0cc 100644
--- a/src/mess/drivers/osborne1.c
+++ b/src/mame/drivers/osborne1.c
diff --git a/src/mess/drivers/osi.c b/src/mame/drivers/osi.c
index 48359d9ccf9..01e59360901 100644
--- a/src/mess/drivers/osi.c
+++ b/src/mame/drivers/osi.c
@@ -901,8 +901,8 @@ 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)", GAME_NOT_WORKING)
-//COMP( 1980, sb2m600c, 0, 0, osi600c, osi600, driver_device, 0, "Ohio Scientific", "Superboard II Model 600 (Rev. C)", GAME_NOT_WORKING)
-COMP( 1980, c1p, sb2m600b, 0, c1p, osi600, c1p_state, c1p, "Ohio Scientific", "Challenger 1P Series 2", GAME_NOT_WORKING)
-COMP( 1980, c1pmf, sb2m600b, 0, c1pmf, osi600, c1p_state, c1p, "Ohio Scientific", "Challenger 1P MF Series 2", GAME_NOT_WORKING)
-COMP( 1979, uk101, sb2m600b, 0, uk101, uk101, driver_device, 0, "Compukit", "UK101", GAME_NOT_WORKING | GAME_NO_SOUND_HW)
+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)
diff --git a/src/mame/drivers/othello.c b/src/mame/drivers/othello.c
index 9e47911eef7..dd5d720ea14 100644
--- a/src/mame/drivers/othello.c
+++ b/src/mame/drivers/othello.c
@@ -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)", GAME_WRONG_COLORS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1984, othello, 0, othello, othello, driver_device, 0, ROT0, "Success", "Othello (version 3.0)", MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/othunder.c b/src/mame/drivers/othunder.c
index 631b3a368c2..0e4bd82eef0 100644
--- a/src/mame/drivers/othunder.c
+++ b/src/mame/drivers/othunder.c
@@ -11,7 +11,7 @@ David Graves
Nicola Salmoria. Thanks to Richard Bush and the Raine team, whose open
source was very helpful in many areas particularly the sprites.)
- *****
+*************************************************************************
Operation Thunderbolt
Taito, 1988
@@ -22,36 +22,43 @@ PCB Layout
K1100381A
J1100166A MAIN PCB
|-----------------------------------------------------------------------|
-| VOL VOL YM3016 B67-13.40 16MHz 24MHz |
-| |------| PAL |
-| |TAITO | Z80 |
-| |TC0140| 6264 26.686MHz 6116 6116 |
-| |SYT | 6116 6116 |
-| |------| YM2610 6116 6116 |
+| VOL VOL TC0310FAM YM3016 B67-13.40 16MHz 24MHz PAL |
+| TL074 |------|TC0310FAM TL074 |
+| MB3735 MB3735|TAITO | Z80 |
+| |TC0140| 6264.46 26.686MHz 6116 6116 |
+| |SYT | 6116 6116 |
+| |------| YM2610 6116 6116 |
| ADC0808 B67-08.67 6116 6116 |
-| B67-07.44 |------| |
-|J B67-06.66 |TAITO | |------| |
-|A |------| |TC0020| |TAITO | |
-|M |TAITO | 62256 62256 |VAR | |TC0050| |
-|M |TC0220| |------| |------| |VDZ | |
-|A |IOC | |TAITO | |------| |
-| |------| |TC0100| 6116 6116 |
-| |SCN | |------| |
+| MB3771 B67-07.44 |------| |
+|2 B67-06.66 |TAITO | |------| |
+|8 |------| |TC0020| |TAITO | |
+|| |TAITO | 62256.57 62256.55 |VAR | |TC0050| |
+|W |TC0220| |------| |------| |VDZ | |
+|A |IOC | |TAITO | B67-05.43 |------| |
+|Y |------| |TC0100| 6116.56 |
+| |SCN | 6116.54 |------| |
| DSWA DSWB |------| B67-05.43 |TAITO | |
| |TC0050| |
-| |------| |VDZ | |
+| 93C46 |------| |VDZ | |
| |------| B67-23.64 |TAITO | |----| |------| B67-04.4 |
| |TAITO | |TC0320| | 6 | |
| 555 |TC0110| B67-20.63 |OBR | | 8 | PAL |------| B67-03.3 |
| |PCR | |------| | 0 | |TAITO | |
-| |------| B67-15.62 62256 | 0 | PAL |TC0050| B67-02.2 |
-| | 0 | |VDZ | |
-| 6264 B67-14.61 62256 |----| PAL |------| B67-01.1 |
+| |------| B67-15.62 62256.52 | 0 | PAL |TC0050| B67-02.2 |
+| 6264.73 6264.74 | 0 | |VDZ | |
+| TC0070RGB B67-14.61 62256.51 |----| PAL |------| B67-01.1 |
|-----------------------------------------------------------------------|
Notes:
68000 running at 12.000MHz [24/2]
Z80 running at 4.000MHz [24/6]
YM2610 running at 8.000MHz [16/2]
+ 62256.51 & 52 - Main program 68000 work RAM
+ 6264.46 - Sound program Z80 work RAM
+ 62256.55 & 57 - Background RAM, tied to TC0100SCN
+ 6116.56 & 54 - Sprite attribute/enable RAM, tied to TC0320OBR
+ Other 6116 RAM - Sprite RAM, connected to TC0020VAR & TC0050VDZ
+ 6264.73 & 74 - Color RAM
+
Taito Custom ICs -
TC0220IOC
TC0110PCR
@@ -60,7 +67,49 @@ Notes:
TC0320OBR
TC0020VAR
TC0050VDZ (x3)
-
+ TC0070RGB (ceramic module)
+ TC0310FAM (ceramic module)
+ VSync: 60.0552Hz
+ HSync: 15.4938kHz
+
+ Note: The hardware outputs reversed video because the cabinet uses a mirror.
+ The video can't be flipped/reversed with the DIPs, it's fixed in hardware.
+
+ PCB edge connector is 28-way non-JAMMA.
+ The gun is NOT a light gun, it uses two 5k-ohm potentiometers for the X-Y position
+
+ Solder | Parts
+ -------+-------
+ Ground | 1 Ground
+ Ground | 2 Ground
+ +5v | 3 +5v
+ +5v | 4 +5v
+ -5v | 5 -5v
+ 12v | 6 12v
+ Key | 7 Key
+ - L Speaker | 8 + L Speaker
+ - R Speaker | 9 + R Speaker
+ |10
+ |11
+ 1 P Start |12
+ 2 P Start |13
+ 1 P Bomb |14
+ 1 P Trigger |15 2 P Bomb
+ 2 P Trigger |16 Service Credit
+ Coin B |17 Coin A
+ Coin Counter B |18 Coin Counter A
+ |19
+ 2 P Gun Solenoid |20 1 P Gun Solenoid
+ Video Green |21 Video Red
+ Video Sync |22 Video Blue
+ 2 P Gun X Position |23 Ground
+ 2 P Gun Y Position |24 1 P Gun X Position
+ |25 1 P Gun Y Position
+ |26
+ Ground |27 Ground
+ Ground |28 Ground
+
+*************************************************************************
Operation Thunderbolt operates on hardware very similar to the Taito Z
system, in particular the game Spacegun. The lightgun hardware in these
@@ -714,31 +763,31 @@ MACHINE_CONFIG_END
ROM_START( othunder )
ROM_REGION( 0x80000, "maincpu", 0 ) /* 512K for 68000 code */
- ROM_LOAD16_BYTE( "b67-20.63", 0x00000, 0x20000, CRC(21439ea2) SHA1(d5b5a194e9698cf43513c0d56146772e8132ab07) )
- ROM_LOAD16_BYTE( "b67-23.64", 0x00001, 0x20000, CRC(789e9daa) SHA1(15bb0eec68aeea0b9f55889566338c9ce0ac9b5e) )
- ROM_LOAD16_BYTE( "b67-14.61", 0x40000, 0x20000, CRC(7f3dd724) SHA1(2f2eeae0ee31e20082237b9a947c6848771eb73c) )
- ROM_LOAD16_BYTE( "b67-15.62", 0x40001, 0x20000, CRC(e84f62d0) SHA1(3b4a55a14dee7d592467fde9a75bde64deabd27d) )
+ ROM_LOAD16_BYTE( "b67-20.ic63", 0x00000, 0x20000, CRC(21439ea2) SHA1(d5b5a194e9698cf43513c0d56146772e8132ab07) )
+ ROM_LOAD16_BYTE( "b67-23.ic64", 0x00001, 0x20000, CRC(789e9daa) SHA1(15bb0eec68aeea0b9f55889566338c9ce0ac9b5e) )
+ ROM_LOAD16_BYTE( "b67-14.ic61", 0x40000, 0x20000, CRC(7f3dd724) SHA1(2f2eeae0ee31e20082237b9a947c6848771eb73c) )
+ ROM_LOAD16_BYTE( "b67-15.ic62", 0x40001, 0x20000, CRC(e84f62d0) SHA1(3b4a55a14dee7d592467fde9a75bde64deabd27d) )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */
- ROM_LOAD( "b67-13.40", 0x00000, 0x10000, CRC(2936b4b1) SHA1(39b41643464dd89e456ab6eb15a0ff0aef30afde) )
+ ROM_LOAD( "b67-13.ic40", 0x00000, 0x10000, CRC(2936b4b1) SHA1(39b41643464dd89e456ab6eb15a0ff0aef30afde) )
ROM_REGION( 0x80000, "gfx1", 0 )
- ROM_LOAD( "b67-06.66", 0x00000, 0x80000, CRC(b9a38d64) SHA1(7ae8165b444d9da6ccdbc4a769535bcbb6738aaa) ) /* SCN */
+ ROM_LOAD( "b67-06.ic66", 0x00000, 0x80000, CRC(b9a38d64) SHA1(7ae8165b444d9da6ccdbc4a769535bcbb6738aaa) ) /* SCN */
ROM_REGION( 0x200000, "gfx2", 0 )
- ROM_LOAD32_BYTE( "b67-01", 0x00000, 0x80000, CRC(81ad9acb) SHA1(d9ad3f6332c6ca6b9872da57526a8158a3cf5b2f) ) /* OBJ: each rom has 1 bitplane, forming 16x8 tiles */
- ROM_LOAD32_BYTE( "b67-02", 0x00001, 0x80000, CRC(c20cd2fb) SHA1(b015e1fe167e19826aa451b45cd143d66a6db83c) )
- ROM_LOAD32_BYTE( "b67-03", 0x00002, 0x80000, CRC(bc9019ed) SHA1(7eddc83d71be97ce6637e6b35c226d58e6c39c3f) )
- ROM_LOAD32_BYTE( "b67-04", 0x00003, 0x80000, CRC(2af4c8af) SHA1(b2ae7aad0c59ffc368811f4bd5546dbb6860f9a9) )
+ ROM_LOAD32_BYTE( "b67-01.ic1", 0x00000, 0x80000, CRC(81ad9acb) SHA1(d9ad3f6332c6ca6b9872da57526a8158a3cf5b2f) ) /* OBJ: each rom has 1 bitplane, forming 16x8 tiles */
+ ROM_LOAD32_BYTE( "b67-02.ic2", 0x00001, 0x80000, CRC(c20cd2fb) SHA1(b015e1fe167e19826aa451b45cd143d66a6db83c) )
+ ROM_LOAD32_BYTE( "b67-03.ic3", 0x00002, 0x80000, CRC(bc9019ed) SHA1(7eddc83d71be97ce6637e6b35c226d58e6c39c3f) )
+ ROM_LOAD32_BYTE( "b67-04.ic4", 0x00003, 0x80000, CRC(2af4c8af) SHA1(b2ae7aad0c59ffc368811f4bd5546dbb6860f9a9) )
ROM_REGION16_LE( 0x80000, "user1", 0 )
- ROM_LOAD16_WORD( "b67-05.43", 0x00000, 0x80000, CRC(9593e42b) SHA1(54b5538c302a1734ff4b752ab87a8c45d5c6b23d) ) /* index used to create 64x64 sprites on the fly */
+ ROM_LOAD16_WORD( "b67-05.ic43", 0x00000, 0x80000, CRC(9593e42b) SHA1(54b5538c302a1734ff4b752ab87a8c45d5c6b23d) ) /* index used to create 64x64 sprites on the fly */
ROM_REGION( 0x80000, "ymsnd", 0 ) /* ADPCM samples */
- ROM_LOAD( "b67-08", 0x00000, 0x80000, CRC(458f41fb) SHA1(acca7c95acd1ae7a1cc51fb7fe644ad6d00ff5ac) )
+ ROM_LOAD( "b67-08.ic67", 0x00000, 0x80000, CRC(458f41fb) SHA1(acca7c95acd1ae7a1cc51fb7fe644ad6d00ff5ac) )
ROM_REGION( 0x80000, "ymsnd.deltat", 0 ) /* Delta-T samples */
- ROM_LOAD( "b67-07", 0x00000, 0x80000, CRC(4f834357) SHA1(f34705ce64870a8b24ec2639505079cc031fb719) )
+ ROM_LOAD( "b67-07.ic44", 0x00000, 0x80000, CRC(4f834357) SHA1(f34705ce64870a8b24ec2639505079cc031fb719) )
ROM_REGION( 0x0800, "plds", 0 )
ROM_LOAD( "plhs18p8b-b67-09.ic15", 0x0000, 0x0149, CRC(62035487) SHA1(5d9538ea9eabff324d274772b1e1fc9a9aec9100) )
@@ -747,36 +796,36 @@ ROM_START( othunder )
ROM_LOAD( "pal20l8b-b67-10.ic33", 0x0600, 0x0144, CRC(4ced09c7) SHA1(519e6152cc5e4cb3ec24c4dc09101dddf22988aa) )
ROM_REGION16_BE( 0x80, "eeprom", 0 )
- ROM_LOAD16_WORD( "eeprom-othunder.bin", 0x0000, 0x0080, CRC(3729b844) SHA1(f6bb41d293d1e47214f8b2d147991404f3278ebf) )
+ ROM_LOAD16_WORD( "93c46_eeprom-othunder.ic86", 0x0000, 0x0080, CRC(3729b844) SHA1(f6bb41d293d1e47214f8b2d147991404f3278ebf) )
ROM_END
ROM_START( othunderu )
ROM_REGION( 0x80000, "maincpu", 0 ) /* 512K for 68000 code */
- ROM_LOAD16_BYTE( "b67-20-1.63", 0x00000, 0x20000, CRC(851a453b) SHA1(48b8c379e78cd79463f1e24dc23816a97cf819b8) )
- ROM_LOAD16_BYTE( "b67-22-1.64", 0x00001, 0x20000, CRC(19480dc0) SHA1(8bbc982c89f0878e7639330970df5aa93ecbb083) )
- ROM_LOAD16_BYTE( "b67-14.61", 0x40000, 0x20000, CRC(7f3dd724) SHA1(2f2eeae0ee31e20082237b9a947c6848771eb73c) )
- ROM_LOAD16_BYTE( "b67-15.62", 0x40001, 0x20000, CRC(e84f62d0) SHA1(3b4a55a14dee7d592467fde9a75bde64deabd27d) )
+ ROM_LOAD16_BYTE( "b67-20-1.ic63", 0x00000, 0x20000, CRC(851a453b) SHA1(48b8c379e78cd79463f1e24dc23816a97cf819b8) )
+ ROM_LOAD16_BYTE( "b67-22-1.ic64", 0x00001, 0x20000, CRC(19480dc0) SHA1(8bbc982c89f0878e7639330970df5aa93ecbb083) )
+ ROM_LOAD16_BYTE( "b67-14.ic61", 0x40000, 0x20000, CRC(7f3dd724) SHA1(2f2eeae0ee31e20082237b9a947c6848771eb73c) )
+ ROM_LOAD16_BYTE( "b67-15.ic62", 0x40001, 0x20000, CRC(e84f62d0) SHA1(3b4a55a14dee7d592467fde9a75bde64deabd27d) )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */
- ROM_LOAD( "b67-13.40", 0x00000, 0x10000, CRC(2936b4b1) SHA1(39b41643464dd89e456ab6eb15a0ff0aef30afde) )
+ ROM_LOAD( "b67-13.ic40", 0x00000, 0x10000, CRC(2936b4b1) SHA1(39b41643464dd89e456ab6eb15a0ff0aef30afde) )
ROM_REGION( 0x80000, "gfx1", 0 )
- ROM_LOAD( "b67-06.66", 0x00000, 0x80000, CRC(b9a38d64) SHA1(7ae8165b444d9da6ccdbc4a769535bcbb6738aaa) ) /* SCN */
+ ROM_LOAD( "b67-06.ic66", 0x00000, 0x80000, CRC(b9a38d64) SHA1(7ae8165b444d9da6ccdbc4a769535bcbb6738aaa) ) /* SCN */
ROM_REGION( 0x200000, "gfx2", 0 )
- ROM_LOAD32_BYTE( "b67-01", 0x00000, 0x80000, CRC(81ad9acb) SHA1(d9ad3f6332c6ca6b9872da57526a8158a3cf5b2f) ) /* OBJ: each rom has 1 bitplane, forming 16x8 tiles */
- ROM_LOAD32_BYTE( "b67-02", 0x00001, 0x80000, CRC(c20cd2fb) SHA1(b015e1fe167e19826aa451b45cd143d66a6db83c) )
- ROM_LOAD32_BYTE( "b67-03", 0x00002, 0x80000, CRC(bc9019ed) SHA1(7eddc83d71be97ce6637e6b35c226d58e6c39c3f) )
- ROM_LOAD32_BYTE( "b67-04", 0x00003, 0x80000, CRC(2af4c8af) SHA1(b2ae7aad0c59ffc368811f4bd5546dbb6860f9a9) )
+ ROM_LOAD32_BYTE( "b67-01.ic1", 0x00000, 0x80000, CRC(81ad9acb) SHA1(d9ad3f6332c6ca6b9872da57526a8158a3cf5b2f) ) /* OBJ: each rom has 1 bitplane, forming 16x8 tiles */
+ ROM_LOAD32_BYTE( "b67-02.ic2", 0x00001, 0x80000, CRC(c20cd2fb) SHA1(b015e1fe167e19826aa451b45cd143d66a6db83c) )
+ ROM_LOAD32_BYTE( "b67-03.ic3", 0x00002, 0x80000, CRC(bc9019ed) SHA1(7eddc83d71be97ce6637e6b35c226d58e6c39c3f) )
+ ROM_LOAD32_BYTE( "b67-04.ic4", 0x00003, 0x80000, CRC(2af4c8af) SHA1(b2ae7aad0c59ffc368811f4bd5546dbb6860f9a9) )
ROM_REGION16_LE( 0x80000, "user1", 0 )
- ROM_LOAD16_WORD( "b67-05.43", 0x00000, 0x80000, CRC(9593e42b) SHA1(54b5538c302a1734ff4b752ab87a8c45d5c6b23d) ) /* index used to create 64x64 sprites on the fly */
+ ROM_LOAD16_WORD( "b67-05.ic43", 0x00000, 0x80000, CRC(9593e42b) SHA1(54b5538c302a1734ff4b752ab87a8c45d5c6b23d) ) /* index used to create 64x64 sprites on the fly */
ROM_REGION( 0x80000, "ymsnd", 0 ) /* ADPCM samples */
- ROM_LOAD( "b67-08", 0x00000, 0x80000, CRC(458f41fb) SHA1(acca7c95acd1ae7a1cc51fb7fe644ad6d00ff5ac) )
+ ROM_LOAD( "b67-08.ic67", 0x00000, 0x80000, CRC(458f41fb) SHA1(acca7c95acd1ae7a1cc51fb7fe644ad6d00ff5ac) )
ROM_REGION( 0x80000, "ymsnd.deltat", 0 ) /* Delta-T samples */
- ROM_LOAD( "b67-07", 0x00000, 0x80000, CRC(4f834357) SHA1(f34705ce64870a8b24ec2639505079cc031fb719) )
+ ROM_LOAD( "b67-07.ic44", 0x00000, 0x80000, CRC(4f834357) SHA1(f34705ce64870a8b24ec2639505079cc031fb719) )
ROM_REGION( 0x0800, "plds", 0 )
ROM_LOAD( "plhs18p8b-b67-09.ic15", 0x0000, 0x0149, CRC(62035487) SHA1(5d9538ea9eabff324d274772b1e1fc9a9aec9100) )
@@ -785,36 +834,36 @@ ROM_START( othunderu )
ROM_LOAD( "pal20l8b-b67-10.ic33", 0x0600, 0x0144, CRC(4ced09c7) SHA1(519e6152cc5e4cb3ec24c4dc09101dddf22988aa) )
ROM_REGION16_BE( 0x80, "eeprom", 0 )
- ROM_LOAD16_WORD( "eeprom-othunder.bin", 0x0000, 0x0080, CRC(3729b844) SHA1(f6bb41d293d1e47214f8b2d147991404f3278ebf) )
+ ROM_LOAD16_WORD( "93c46_eeprom-othunder.ic86", 0x0000, 0x0080, CRC(3729b844) SHA1(f6bb41d293d1e47214f8b2d147991404f3278ebf) )
ROM_END
ROM_START( othunderuo )
ROM_REGION( 0x80000, "maincpu", 0 ) /* 512K for 68000 code */
- ROM_LOAD16_BYTE( "b67-20.63", 0x00000, 0x20000, CRC(21439ea2) SHA1(d5b5a194e9698cf43513c0d56146772e8132ab07) )
- ROM_LOAD16_BYTE( "b67-22.64", 0x00001, 0x20000, CRC(0f99ad3c) SHA1(dd6c9e822470ca867ec01e642443a871e879bae5) )
- ROM_LOAD16_BYTE( "b67-14.61", 0x40000, 0x20000, CRC(7f3dd724) SHA1(2f2eeae0ee31e20082237b9a947c6848771eb73c) )
- ROM_LOAD16_BYTE( "b67-15.62", 0x40001, 0x20000, CRC(e84f62d0) SHA1(3b4a55a14dee7d592467fde9a75bde64deabd27d) )
+ ROM_LOAD16_BYTE( "b67-20.ic63", 0x00000, 0x20000, CRC(21439ea2) SHA1(d5b5a194e9698cf43513c0d56146772e8132ab07) )
+ ROM_LOAD16_BYTE( "b67-22.ic64", 0x00001, 0x20000, CRC(0f99ad3c) SHA1(dd6c9e822470ca867ec01e642443a871e879bae5) )
+ ROM_LOAD16_BYTE( "b67-14.ic61", 0x40000, 0x20000, CRC(7f3dd724) SHA1(2f2eeae0ee31e20082237b9a947c6848771eb73c) )
+ ROM_LOAD16_BYTE( "b67-15.ic62", 0x40001, 0x20000, CRC(e84f62d0) SHA1(3b4a55a14dee7d592467fde9a75bde64deabd27d) )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */
- ROM_LOAD( "b67-13.40", 0x00000, 0x10000, CRC(2936b4b1) SHA1(39b41643464dd89e456ab6eb15a0ff0aef30afde) )
+ ROM_LOAD( "b67-13.ic40", 0x00000, 0x10000, CRC(2936b4b1) SHA1(39b41643464dd89e456ab6eb15a0ff0aef30afde) )
ROM_REGION( 0x80000, "gfx1", 0 )
- ROM_LOAD( "b67-06.66", 0x00000, 0x80000, CRC(b9a38d64) SHA1(7ae8165b444d9da6ccdbc4a769535bcbb6738aaa) ) /* SCN */
+ ROM_LOAD( "b67-06.ic66", 0x00000, 0x80000, CRC(b9a38d64) SHA1(7ae8165b444d9da6ccdbc4a769535bcbb6738aaa) ) /* SCN */
ROM_REGION( 0x200000, "gfx2", 0 )
- ROM_LOAD32_BYTE( "b67-01", 0x00000, 0x80000, CRC(81ad9acb) SHA1(d9ad3f6332c6ca6b9872da57526a8158a3cf5b2f) ) /* OBJ: each rom has 1 bitplane, forming 16x8 tiles */
- ROM_LOAD32_BYTE( "b67-02", 0x00001, 0x80000, CRC(c20cd2fb) SHA1(b015e1fe167e19826aa451b45cd143d66a6db83c) )
- ROM_LOAD32_BYTE( "b67-03", 0x00002, 0x80000, CRC(bc9019ed) SHA1(7eddc83d71be97ce6637e6b35c226d58e6c39c3f) )
- ROM_LOAD32_BYTE( "b67-04", 0x00003, 0x80000, CRC(2af4c8af) SHA1(b2ae7aad0c59ffc368811f4bd5546dbb6860f9a9) )
+ ROM_LOAD32_BYTE( "b67-01.ic1", 0x00000, 0x80000, CRC(81ad9acb) SHA1(d9ad3f6332c6ca6b9872da57526a8158a3cf5b2f) ) /* OBJ: each rom has 1 bitplane, forming 16x8 tiles */
+ ROM_LOAD32_BYTE( "b67-02.ic2", 0x00001, 0x80000, CRC(c20cd2fb) SHA1(b015e1fe167e19826aa451b45cd143d66a6db83c) )
+ ROM_LOAD32_BYTE( "b67-03.ic3", 0x00002, 0x80000, CRC(bc9019ed) SHA1(7eddc83d71be97ce6637e6b35c226d58e6c39c3f) )
+ ROM_LOAD32_BYTE( "b67-04.ic4", 0x00003, 0x80000, CRC(2af4c8af) SHA1(b2ae7aad0c59ffc368811f4bd5546dbb6860f9a9) )
ROM_REGION16_LE( 0x80000, "user1", 0 )
- ROM_LOAD16_WORD( "b67-05.43", 0x00000, 0x80000, CRC(9593e42b) SHA1(54b5538c302a1734ff4b752ab87a8c45d5c6b23d) ) /* index used to create 64x64 sprites on the fly */
+ ROM_LOAD16_WORD( "b67-05.ic43", 0x00000, 0x80000, CRC(9593e42b) SHA1(54b5538c302a1734ff4b752ab87a8c45d5c6b23d) ) /* index used to create 64x64 sprites on the fly */
ROM_REGION( 0x80000, "ymsnd", 0 ) /* ADPCM samples */
- ROM_LOAD( "b67-08", 0x00000, 0x80000, CRC(458f41fb) SHA1(acca7c95acd1ae7a1cc51fb7fe644ad6d00ff5ac) )
+ ROM_LOAD( "b67-08.ic67", 0x00000, 0x80000, CRC(458f41fb) SHA1(acca7c95acd1ae7a1cc51fb7fe644ad6d00ff5ac) )
ROM_REGION( 0x80000, "ymsnd.deltat", 0 ) /* Delta-T samples */
- ROM_LOAD( "b67-07", 0x00000, 0x80000, CRC(4f834357) SHA1(f34705ce64870a8b24ec2639505079cc031fb719) )
+ ROM_LOAD( "b67-07.ic44", 0x00000, 0x80000, CRC(4f834357) SHA1(f34705ce64870a8b24ec2639505079cc031fb719) )
ROM_REGION( 0x0800, "plds", 0 )
ROM_LOAD( "plhs18p8b-b67-09.ic15", 0x0000, 0x0149, CRC(62035487) SHA1(5d9538ea9eabff324d274772b1e1fc9a9aec9100) )
@@ -823,36 +872,36 @@ ROM_START( othunderuo )
ROM_LOAD( "pal20l8b-b67-10.ic33", 0x0600, 0x0144, CRC(4ced09c7) SHA1(519e6152cc5e4cb3ec24c4dc09101dddf22988aa) )
ROM_REGION16_BE( 0x80, "eeprom", 0 )
- ROM_LOAD16_WORD( "eeprom-othunder.bin", 0x0000, 0x0080, CRC(3729b844) SHA1(f6bb41d293d1e47214f8b2d147991404f3278ebf) )
+ ROM_LOAD16_WORD( "93c46_eeprom-othunder.ic86", 0x0000, 0x0080, CRC(3729b844) SHA1(f6bb41d293d1e47214f8b2d147991404f3278ebf) )
ROM_END
ROM_START( othunderj )
ROM_REGION( 0x80000, "maincpu", 0 ) /* 512K for 68000 code */
- ROM_LOAD16_BYTE( "b67-20.63", 0x00000, 0x20000, CRC(21439ea2) SHA1(d5b5a194e9698cf43513c0d56146772e8132ab07) )
- ROM_LOAD16_BYTE( "b67-21.64", 0x00001, 0x20000, CRC(9690fc86) SHA1(4e695554fc9cc91c5f8cff95dc290333bb56d571) )
- ROM_LOAD16_BYTE( "b67-14.61", 0x40000, 0x20000, CRC(7f3dd724) SHA1(2f2eeae0ee31e20082237b9a947c6848771eb73c) )
- ROM_LOAD16_BYTE( "b67-15.62", 0x40001, 0x20000, CRC(e84f62d0) SHA1(3b4a55a14dee7d592467fde9a75bde64deabd27d) )
+ ROM_LOAD16_BYTE( "b67-20.ic63", 0x00000, 0x20000, CRC(21439ea2) SHA1(d5b5a194e9698cf43513c0d56146772e8132ab07) )
+ ROM_LOAD16_BYTE( "b67-21.ic64", 0x00001, 0x20000, CRC(9690fc86) SHA1(4e695554fc9cc91c5f8cff95dc290333bb56d571) )
+ ROM_LOAD16_BYTE( "b67-14.ic61", 0x40000, 0x20000, CRC(7f3dd724) SHA1(2f2eeae0ee31e20082237b9a947c6848771eb73c) )
+ ROM_LOAD16_BYTE( "b67-15.ic62", 0x40001, 0x20000, CRC(e84f62d0) SHA1(3b4a55a14dee7d592467fde9a75bde64deabd27d) )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* sound cpu */
- ROM_LOAD( "b67-13.40", 0x00000, 0x10000, CRC(2936b4b1) SHA1(39b41643464dd89e456ab6eb15a0ff0aef30afde) )
+ ROM_LOAD( "b67-13.ic40", 0x00000, 0x10000, CRC(2936b4b1) SHA1(39b41643464dd89e456ab6eb15a0ff0aef30afde) )
ROM_REGION( 0x80000, "gfx1", 0 )
- ROM_LOAD( "b67-06.66", 0x00000, 0x80000, CRC(b9a38d64) SHA1(7ae8165b444d9da6ccdbc4a769535bcbb6738aaa) ) /* SCN */
+ ROM_LOAD( "b67-06.ic66", 0x00000, 0x80000, CRC(b9a38d64) SHA1(7ae8165b444d9da6ccdbc4a769535bcbb6738aaa) ) /* SCN */
ROM_REGION( 0x200000, "gfx2", 0 )
- ROM_LOAD32_BYTE( "b67-01", 0x00000, 0x80000, CRC(81ad9acb) SHA1(d9ad3f6332c6ca6b9872da57526a8158a3cf5b2f) ) /* OBJ: each rom has 1 bitplane, forming 16x8 tiles */
- ROM_LOAD32_BYTE( "b67-02", 0x00001, 0x80000, CRC(c20cd2fb) SHA1(b015e1fe167e19826aa451b45cd143d66a6db83c) )
- ROM_LOAD32_BYTE( "b67-03", 0x00002, 0x80000, CRC(bc9019ed) SHA1(7eddc83d71be97ce6637e6b35c226d58e6c39c3f) )
- ROM_LOAD32_BYTE( "b67-04", 0x00003, 0x80000, CRC(2af4c8af) SHA1(b2ae7aad0c59ffc368811f4bd5546dbb6860f9a9) )
+ ROM_LOAD32_BYTE( "b67-01.ic1", 0x00000, 0x80000, CRC(81ad9acb) SHA1(d9ad3f6332c6ca6b9872da57526a8158a3cf5b2f) ) /* OBJ: each rom has 1 bitplane, forming 16x8 tiles */
+ ROM_LOAD32_BYTE( "b67-02.ic2", 0x00001, 0x80000, CRC(c20cd2fb) SHA1(b015e1fe167e19826aa451b45cd143d66a6db83c) )
+ ROM_LOAD32_BYTE( "b67-03.ic3", 0x00002, 0x80000, CRC(bc9019ed) SHA1(7eddc83d71be97ce6637e6b35c226d58e6c39c3f) )
+ ROM_LOAD32_BYTE( "b67-04.ic4", 0x00003, 0x80000, CRC(2af4c8af) SHA1(b2ae7aad0c59ffc368811f4bd5546dbb6860f9a9) )
ROM_REGION16_LE( 0x80000, "user1", 0 )
- ROM_LOAD16_WORD( "b67-05.43", 0x00000, 0x80000, CRC(9593e42b) SHA1(54b5538c302a1734ff4b752ab87a8c45d5c6b23d) ) /* index used to create 64x64 sprites on the fly */
+ ROM_LOAD16_WORD( "b67-05.ic43", 0x00000, 0x80000, CRC(9593e42b) SHA1(54b5538c302a1734ff4b752ab87a8c45d5c6b23d) ) /* index used to create 64x64 sprites on the fly */
ROM_REGION( 0x80000, "ymsnd", 0 ) /* ADPCM samples */
- ROM_LOAD( "b67-08", 0x00000, 0x80000, CRC(458f41fb) SHA1(acca7c95acd1ae7a1cc51fb7fe644ad6d00ff5ac) )
+ ROM_LOAD( "b67-08.ic67", 0x00000, 0x80000, CRC(458f41fb) SHA1(acca7c95acd1ae7a1cc51fb7fe644ad6d00ff5ac) )
ROM_REGION( 0x80000, "ymsnd.deltat", 0 ) /* Delta-T samples */
- ROM_LOAD( "b67-07", 0x00000, 0x80000, CRC(4f834357) SHA1(f34705ce64870a8b24ec2639505079cc031fb719) )
+ ROM_LOAD( "b67-07.ic44", 0x00000, 0x80000, CRC(4f834357) SHA1(f34705ce64870a8b24ec2639505079cc031fb719) )
ROM_REGION( 0x0800, "plds", 0 )
ROM_LOAD( "plhs18p8b-b67-09.ic15", 0x0000, 0x0149, CRC(62035487) SHA1(5d9538ea9eabff324d274772b1e1fc9a9aec9100) )
@@ -861,12 +910,12 @@ ROM_START( othunderj )
ROM_LOAD( "pal20l8b-b67-10.ic33", 0x0600, 0x0144, CRC(4ced09c7) SHA1(519e6152cc5e4cb3ec24c4dc09101dddf22988aa) )
ROM_REGION16_BE( 0x80, "eeprom", 0 )
- ROM_LOAD16_WORD( "eeprom-othunder.bin", 0x0000, 0x0080, CRC(3729b844) SHA1(f6bb41d293d1e47214f8b2d147991404f3278ebf) )
+ ROM_LOAD16_WORD( "93c46_eeprom-othunder.ic86", 0x0000, 0x0080, CRC(3729b844) SHA1(f6bb41d293d1e47214f8b2d147991404f3278ebf) )
ROM_END
-GAME( 1988, othunder, 0, othunder, othunder, driver_device, 0, ORIENTATION_FLIP_X, "Taito Corporation Japan", "Operation Thunderbolt (World)", GAME_SUPPORTS_SAVE )
-GAME( 1988, othunderu, othunder, othunder, othundu, driver_device, 0, ORIENTATION_FLIP_X, "Taito America Corporation", "Operation Thunderbolt (US)", GAME_SUPPORTS_SAVE )
-GAME( 1988, othunderuo, othunder, othunder, othundu, driver_device, 0, ORIENTATION_FLIP_X, "Taito America Corporation", "Operation Thunderbolt (US, older)", GAME_SUPPORTS_SAVE )
-GAME( 1988, othunderj, othunder, othunder, othundrj, driver_device, 0, ORIENTATION_FLIP_X, "Taito Corporation", "Operation Thunderbolt (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1988, othunder, 0, 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)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, othunderuo, othunder, othunder, othundu, driver_device, 0, ORIENTATION_FLIP_X, "Taito America Corporation", "Operation Thunderbolt (US, older)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, othunderj, othunder, othunder, othundrj, driver_device, 0, ORIENTATION_FLIP_X, "Taito Corporation", "Operation Thunderbolt (Japan)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/overdriv.c b/src/mame/drivers/overdriv.c
index 8892e90febb..a6110058799 100644
--- a/src/mame/drivers/overdriv.c
+++ b/src/mame/drivers/overdriv.c
@@ -475,6 +475,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)", GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE, layout_overdriv )
-GAMEL( 1990, overdriva, overdriv, overdriv, overdriv, driver_device, 0, ROT90, "Konami", "Over Drive (set 2)", GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE, layout_overdriv )
-GAMEL( 1990, overdrivb, overdriv, overdriv, overdriv, driver_device, 0, ROT90, "Konami", "Over Drive (set 3)", GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE, layout_overdriv )
+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 )
+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 )
+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 )
diff --git a/src/mess/drivers/p112.c b/src/mame/drivers/p112.c
index ada25de1983..30b81997663 100644
--- a/src/mess/drivers/p112.c
+++ b/src/mame/drivers/p112.c
@@ -125,4 +125,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1996, p112, 0, 0, p112, p112, driver_device, 0, "Dave Brooks", "P112", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/p2000t.c b/src/mame/drivers/p2000t.c
index 303092f96a1..303092f96a1 100644
--- a/src/mess/drivers/p2000t.c
+++ b/src/mame/drivers/p2000t.c
diff --git a/src/mess/drivers/p8k.c b/src/mame/drivers/p8k.c
index 3c2e15982b9..c4f326f76c7 100644
--- a/src/mess/drivers/p8k.c
+++ b/src/mame/drivers/p8k.c
@@ -591,5 +591,5 @@ 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)", GAME_NOT_WORKING)
-COMP( 1989, p8000_16, p8000, 0, p8k_16, p8k, driver_device, 0, "EAW electronic Treptow", "P8000 (16bit Board)", GAME_NOT_WORKING)
+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)
diff --git a/src/mame/drivers/pachifev.c b/src/mame/drivers/pachifev.c
index 1c625bb22ce..a1c60b15de9 100644
--- a/src/mame/drivers/pachifev.c
+++ b/src/mame/drivers/pachifev.c
@@ -384,4 +384,4 @@ ROM_START( pachifev )
ROM_END
-GAME( 1983, pachifev, 0, pachifev, pachifev, driver_device, 0, ROT270, "Sanki Denshi Kogyo", "Pachifever", GAME_IMPERFECT_SOUND )
+GAME( 1983, pachifev, 0, pachifev, pachifev, driver_device, 0, ROT270, "Sanki Denshi Kogyo", "Pachifever", MACHINE_IMPERFECT_SOUND )
diff --git a/src/mame/drivers/pacland.c b/src/mame/drivers/pacland.c
index 2f42c13574d..acc515b1554 100644
--- a/src/mame/drivers/pacland.c
+++ b/src/mame/drivers/pacland.c
@@ -635,8 +635,8 @@ ROM_END
-GAME( 1984, pacland, 0, pacland, pacland, driver_device, 0, ROT0, "Namco", "Pac-Land (World)", GAME_SUPPORTS_SAVE )
-GAME( 1984, paclandj, pacland, pacland, pacland, driver_device, 0, ROT0, "Namco", "Pac-Land (Japan new)", GAME_SUPPORTS_SAVE )
-GAME( 1984, paclandjo, pacland, pacland, pacland, driver_device, 0, ROT0, "Namco", "Pac-Land (Japan old)", GAME_SUPPORTS_SAVE )
-GAME( 1984, paclandjo2,pacland, pacland, pacland, driver_device, 0, ROT0, "Namco", "Pac-Land (Japan older)", GAME_SUPPORTS_SAVE )
-GAME( 1984, paclandm, pacland, pacland, pacland, driver_device, 0, ROT0, "Namco (Bally Midway license)", "Pac-Land (Midway)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/pacman.c b/src/mame/drivers/pacman.c
index 7c6b1cd941e..415c6088b9d 100644
--- a/src/mame/drivers/pacman.c
+++ b/src/mame/drivers/pacman.c
@@ -5077,6 +5077,40 @@ ROM_START( crush2 )
ROM_LOAD( "82s126.3m", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
ROM_END
+ROM_START( crushrlf )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+
+ ROM_LOAD( "pin1cc_6e.bin", 0x0400, 0x0400, CRC(65e469cf) SHA1(baeb5ba0ca0d78bca07f7830269f9c079f36d425) )
+ ROM_CONTINUE(0x0000,0x0400)
+ ROM_LOAD( "pin5cc_6k.bin", 0x0c00, 0x0400, CRC(15f0415b) SHA1(90c663387a81ad206874a531d9fe631ac0175975) )
+ ROM_CONTINUE(0x0800,0x0400)
+ ROM_LOAD( "pin2cc_6f.bin", 0x1400, 0x0400, CRC(653f726d) SHA1(3121315cf3e8be86d29687f29fc514e29dc64a02) )
+ ROM_CONTINUE(0x1000,0x400)
+ ROM_LOAD( "pin6cc_6m.bin", 0x1c00, 0x0400, CRC(4536ea5b) SHA1(6e0b22dd05a76644b13f1c71f771d686cd411eea) )
+ ROM_CONTINUE(0x1800,0x400)
+ ROM_LOAD( "pin3cc_6h.bin", 0x2400, 0x0400, CRC(55e15863) SHA1(bcbf4e5a268739c906e5c400e639e0e055799d47) )
+ ROM_CONTINUE(0x2000,0x400)
+ ROM_LOAD( "pin7cc_6n.bin", 0x2c00, 0x0400, CRC(409111ec) SHA1(ba98cfc1cce8627d11fda4954c3776d0b90cb584) )
+ ROM_CONTINUE(0x2800,0x400)
+ ROM_LOAD( "pin4cc_6j.bin", 0x3400, 0x0400, CRC(4fc4b582) SHA1(cb73b5f9171ba493afdfced0baeef9bb6bdb428d) )
+ ROM_CONTINUE(0x3000,0x400)
+ ROM_LOAD( "pin8cc_6p.bin", 0x3c00, 0x0400, CRC(0d97a047) SHA1(d0024a87a7530246bfbef7d1603b599e2f168973) )
+ ROM_CONTINUE(0x3800,0x400)
+
+ ROM_REGION( 0x2000, "gfx1", 0 )
+ ROM_LOAD( "pin9cc_5e.bin", 0x0000, 0x0800, CRC(b6551507) SHA1(a544e6afda0dd1bea526cb94b9c456d923054698))
+ ROM_LOAD( "pin11cc_5h.bin", 0x0800, 0x0800, CRC(e129d76a) SHA1(c9256795c6d0929ade1f24b372dadc2a2b88d897))
+ ROM_LOAD( "pin10cc_5f.bin", 0x1000, 0x0800, CRC(d106da36) SHA1(a086e4874edf2f1a8bc945bed0e51424d92beaf2))
+ ROM_LOAD( "pin12cc_5j.bin", 0x1800, 0x0800, CRC(d35d1caf) SHA1(65dd7861e05651485626465dc97215fed58db551) )
+
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "82s123.7f", 0x0000, 0x0020, CRC(2fc650bd) SHA1(8d0268dee78e47c712202b0ec4f1f51109b1f2a5) )
+ ROM_LOAD( "2s140.4a", 0x0020, 0x0100, CRC(63efb927) SHA1(5c144a613fc4960a1dfd7ead89e7fee258a63171) )
+
+ ROM_REGION( 0x0200, "namco", 0 ) /* sound PROMs */
+ ROM_LOAD( "82s126.1m", 0x0000, 0x0100, CRC(a9cc86bf) SHA1(bbcec0570aeceb582ff8238a4bc8546a23430081) )
+ ROM_LOAD( "82s126.3m", 0x0100, 0x0100, CRC(77245b66) SHA1(0c4d0bee858b97632411c440bea6948a74759746) ) /* timing - not used */
+ROM_END
ROM_START( crush3 )
ROM_REGION( 0x10000, "maincpu", 0 )
@@ -6814,136 +6848,137 @@ 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)", GAME_SUPPORTS_SAVE )
-GAME( 1980, puckmanb, puckman, pacman, pacman, driver_device, 0, ROT90, "bootleg", "Puck Man (bootleg set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1980, puckmanf, puckman, pacman, pacman, driver_device, 0, ROT90, "hack", "Puck Man (speedup hack)", GAME_SUPPORTS_SAVE )
-GAME( 1980, puckmanh, puckman, pacman, pacman, driver_device, 0, ROT90, "bootleg (Falcom?)", "Puck Man (bootleg set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1980, pacman, puckman, pacman, pacman, driver_device, 0, ROT90, "Namco (Midway license)", "Pac-Man (Midway)", GAME_SUPPORTS_SAVE )
-GAME( 1980, pacmanf, puckman, pacman, pacman, driver_device, 0, ROT90, "hack", "Pac-Man (Midway, speedup hack)", GAME_SUPPORTS_SAVE )
-GAME( 1981, puckmod, puckman, pacman, pacman, driver_device, 0, ROT90, "Namco", "Puck Man (Japan set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1981, pacmod, puckman, pacman, pacman, driver_device, 0, ROT90, "Namco (Midway license)", "Pac-Man (Midway, harder)", GAME_SUPPORTS_SAVE )
-GAME( 1981, pacmanjpm,puckman, pacman, pacman, driver_device, 0, ROT90, "bootleg (JPM)", "Pac-Man (JPM bootleg)", GAME_SUPPORTS_SAVE ) // aka 'Muncher', UK bootleg, JPM later made fruit machines etc.
-GAME( 1980, newpuc2, puckman, pacman, pacman, driver_device, 0, ROT90, "hack", "Newpuc2 (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1980, newpuc2b, puckman, pacman, pacman, driver_device, 0, ROT90, "hack", "Newpuc2 (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1980, newpuckx, puckman, pacman, pacman, driver_device, 0, ROT90, "hack", "New Puck-X", GAME_SUPPORTS_SAVE )
-GAME( 1981, pacheart, puckman, pacman, pacman, driver_device, 0, ROT90, "hack", "Pac-Man (Hearts)", GAME_SUPPORTS_SAVE )
-GAME( 198?, bucaner, puckman, pacman, pacman, driver_device, 0, ROT90, "hack", "Buccaneer", GAME_SUPPORTS_SAVE )
-GAME( 1981, hangly, puckman, pacman, pacman, driver_device, 0, ROT90, "hack", "Hangly-Man (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1981, hangly2, puckman, pacman, pacman, driver_device, 0, ROT90, "hack", "Hangly-Man (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1981, hangly3, puckman, pacman, pacman, driver_device, 0, ROT90, "hack", "Hangly-Man (set 3)", GAME_SUPPORTS_SAVE )
-GAME( 1981, popeyeman,puckman, pacman, pacman, driver_device, 0, ROT90, "hack", "Popeye-Man", GAME_SUPPORTS_SAVE )
-GAME( 1980, pacuman, puckman, pacman, pacuman, driver_device, 0, ROT90, "bootleg (Recreativos Franco S.A.)", "Pacu-Man (Spanish bootleg of Puck Man)", GAME_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", GAME_SUPPORTS_SAVE )
-GAME( 1982, joyman, puckman, pacman, pacman, driver_device, 0, ROT90, "hack", "Joyman", GAME_SUPPORTS_SAVE )
-GAME( 1982, ctrpllrp, puckman, pacman, pacman, driver_device, 0, ROT90, "hack", "Caterpillar Pacman Hack", GAME_SUPPORTS_SAVE )
-GAME( 1981, piranha, puckman, piranha, mspacman, pacman_state, eyes, ROT90, "GL (US Billiards license)", "Piranha", GAME_SUPPORTS_SAVE )
-GAME( 1981, piranhao, puckman, piranha, mspacman, pacman_state, eyes, ROT90, "GL (US Billiards license)", "Piranha (older)", GAME_SUPPORTS_SAVE )
-GAME( 1981, abscam, puckman, piranha, mspacman, pacman_state, eyes, ROT90, "GL (US Billiards license)", "Abscam", GAME_SUPPORTS_SAVE )
-GAME( 1981, piranhah, puckman, pacman, mspacman, driver_device, 0, ROT90, "hack", "Piranha (hack)", GAME_SUPPORTS_SAVE )
-
-GAME( 1982, pacplus, 0, pacman, pacman, pacman_state, pacplus, ROT90, "Namco (Midway license)", "Pac-Man Plus", GAME_SUPPORTS_SAVE )
-
-GAME( 1981, mspacman, 0, mspacman, mspacman, pacman_state, mspacman, ROT90, "Midway / General Computer Corporation", "Ms. Pac-Man", GAME_SUPPORTS_SAVE )
-GAME( 1981, mspacmnf, mspacman, mspacman, mspacman, pacman_state, mspacman, ROT90, "hack", "Ms. Pac-Man (speedup hack)", GAME_SUPPORTS_SAVE )
-GAME( 1981, mspacmat, mspacman, mspacman, mspacman, pacman_state, mspacman, ROT90, "hack", "Ms. Pac Attack", GAME_SUPPORTS_SAVE )
-GAME( 1989, msheartb, mspacman, mspacman, mspacman, pacman_state, mspacman, ROT90, "hack (Two-Bit Score)", "Ms. Pac-Man Heart Burn", GAME_SUPPORTS_SAVE )
-GAME( 1981, mspacmancr,mspacman,mspacman, mspacman, pacman_state, mspacman, ROT90, "bootleg", "Ms. Pac-Man (bootleg on Crush Roller Hardware)", GAME_SUPPORTS_SAVE )
-GAME( 1981, mspacmab, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "bootleg", "Ms. Pac-Man (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1981, mspacmbe, mspacman, woodpek, mspacman, pacman_state, mspacmbe, ROT90, "bootleg", "Ms. Pac-Man (bootleg, encrypted)", GAME_SUPPORTS_SAVE )
-GAME( 1981, mspacii, mspacman, woodpek, mspacman, pacman_state, mspacii, ROT90, "bootleg (Orca)", "Ms. Pac-Man II (Orca bootleg set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1981, mspacii2, mspacman, woodpek, mspacman, pacman_state, mspacii, ROT90, "bootleg (Orca)", "Ms. Pac-Man II (Orca bootleg set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1981, pacgal, mspacman, woodpek, mspacman, driver_device, 0, ROT90, "hack", "Pac-Gal", GAME_SUPPORTS_SAVE )
-GAME( 1981, mspacpls, mspacman, woodpek, mspacpls, driver_device, 0, ROT90, "hack", "Ms. Pac-Man Plus", GAME_SUPPORTS_SAVE )
-GAME( 1992, mschamp, mspacman, mschamp, mschamp, pacman_state, mschamp, ROT90, "hack", "Ms. Pacman Champion Edition / Zola-Puc Gal", GAME_SUPPORTS_SAVE ) /* Rayglo version */
-GAME( 1995, mschamps, mspacman, mschamp, mschamp, pacman_state, mschamp, ROT90, "hack", "Ms. Pacman Champion Edition / Super Zola-Puc Gal", GAME_SUPPORTS_SAVE )
+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, 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, 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 )
+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( 1982, pacplus, 0, pacman, pacman, pacman_state, pacplus, ROT90, "Namco (Midway license)", "Pac-Man Plus", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1981, mspacman, 0, mspacman, mspacman, pacman_state, mspacman, ROT90, "Midway / General Computer Corporation", "Ms. Pac-Man", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, mspacmnf, mspacman, mspacman, mspacman, pacman_state, mspacman, ROT90, "hack", "Ms. Pac-Man (speedup hack)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, mspacmat, mspacman, mspacman, mspacman, pacman_state, mspacman, ROT90, "hack", "Ms. Pac Attack", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, msheartb, mspacman, mspacman, mspacman, pacman_state, mspacman, ROT90, "hack (Two-Bit Score)", "Ms. Pac-Man Heart Burn", 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)", 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", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, mspacpls, mspacman, woodpek, mspacpls, driver_device, 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)", GAME_SUPPORTS_SAVE )
-GAME( 1992, mspacmanbgd,mspacman,woodpek, mspacman, driver_device, 0, ROT90, "bootleg (Datamat)", "Miss Pukman ('Made in Greece' Datamat bootleg)", GAME_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)", GAME_SUPPORTS_SAVE ) //
-GAME( 1991, mspacmanbcc,mspacman,woodpek, mspacman, driver_device, 0, ROT90, "bootleg (Tecnausa)", "Come-Cocos (Ms. Pac-Man) ('Made in Greece' Tecnausa bootleg)", GAME_SUPPORTS_SAVE ) // ^ same PCB, also dated 1991, distributed by Tecnausa
-GAME( 198?, pacmansp, puckman, pacman, pacmansp, driver_device, 0, ROT90, "bootleg", "Puck Man (Spanish, 'Made in Greece' bootleg)", GAME_SUPPORTS_SAVE ) // probably a further conversion of the mspacmanbg bootleg, still has some MS Pacman code + extra features
+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( 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( 1991, clubpacm, 0, woodpek, mspacman, driver_device, 0, ROT90, "Miky SRL", "Club Pacman / Lambada (Argentina)", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
+GAME( 1991, clubpacm, 0, woodpek, mspacman, driver_device, 0, ROT90, "Miky SRL", "Club Pacman / Lambada (Argentina)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
-GAME( 1985, jumpshot, 0, pacman, jumpshot, pacman_state, jumpshot, ROT90, "Bally Midway", "Jump Shot", GAME_SUPPORTS_SAVE )
-GAME( 1985, jumpshotp,jumpshot, pacman, jumpshotp,pacman_state, jumpshot, ROT90, "Bally Midway", "Jump Shot Engineering Sample", GAME_SUPPORTS_SAVE )
+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 )
-GAME( 1985, shootbul, 0, pacman, shootbul, pacman_state, jumpshot, ROT90, "Bally Midway", "Shoot the Bull", GAME_SUPPORTS_SAVE )
+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)", GAME_SUPPORTS_SAVE )
-GAME( 1981, crush2, crush, pacman, maketrax, driver_device, 0, ROT90, "Alpha Denshi Co. / Kural Esco Electric, Ltd.", "Crush Roller (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1981, crush3, crush, pacman, maketrax, pacman_state, eyes, ROT90, "Alpha Denshi Co. / Kural Electric, Ltd.", "Crush Roller (set 3)", GAME_SUPPORTS_SAVE )
-GAME( 1981, crush4, crush, crush4, crush4, driver_device, 0, ROT90, "Alpha Denshi Co. / Kural TWT", "Crush Roller (set 4)", GAME_SUPPORTS_SAVE )
-GAME( 1981, maketrax, crush, pacmanp, maketrax, pacman_state, maketrax, ROT270, "Alpha Denshi Co. / Kural (Williams license)", "Make Trax (US set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1981, maketrxb, crush, pacmanp, maketrax, pacman_state, maketrax, ROT270, "Alpha Denshi Co. / Kural (Williams license)", "Make Trax (US set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1981, korosuke, crush, pacmanp, korosuke, pacman_state, korosuke, ROT90, "Alpha Denshi Co. / Kural Electric, Ltd.", "Korosuke Roller (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1981, crushbl, crush, pacman, maketrax, driver_device, 0, ROT90, "bootleg", "Crush Roller (bootleg set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1981, crushbl2, crush, pacmanp, mbrush, pacman_state, maketrax, ROT90, "bootleg", "Crush Roller (bootleg set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1981, crushbl3, crush, pacmanp, mbrush, pacman_state, maketrax, ROT90, "bootleg", "Crush Roller (bootleg set 3)", GAME_SUPPORTS_SAVE )
-GAME( 1981, crushs, crush, crushs, crushs, driver_device, 0, ROT90, "bootleg (Sidam)", "Crush Roller (bootleg set 4)", GAME_SUPPORTS_SAVE ) // Sidam PCB, no Sidam text
-GAME( 1981, mbrush, crush, pacmanp, mbrush, pacman_state, maketrax, ROT90, "bootleg", "Magic Brush (bootleg of Crush Roller)", GAME_SUPPORTS_SAVE )
-GAME( 1981, paintrlr, crush, pacman, paintrlr, driver_device, 0, ROT90, "bootleg", "Paint Roller (bootleg of Crush Roller)", GAME_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, crush3, crush, pacman, maketrax, pacman_state, eyes, ROT90, "Alpha Denshi Co. / Kural Electric, Ltd.", "Crush Roller (set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, crush4, crush, crush4, crush4, driver_device, 0, ROT90, "Alpha Denshi Co. / Kural TWT", "Crush Roller (set 4)", 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 )
+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, 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, mbrush, crush, pacmanp, mbrush, pacman_state, maketrax, ROT90, "bootleg", "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( 1982, eyes, 0, pacman, eyes, pacman_state, eyes, ROT90, "Techstar (Rock-Ola license)", "Eyes (US set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1982, eyes2, eyes, pacman, eyes, pacman_state, eyes, ROT90, "Techstar (Rock-Ola license)", "Eyes (US set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1982, eyesb, eyes, pacman, eyes, pacman_state, eyes, ROT90, "bootleg", "Eyes (bootleg set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1982, eyeszac, eyes, pacman, eyes, pacman_state, eyes, ROT90, "Techstar (Zaccaria license)", "Eyes (Italy)", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING ) // bad dump
-GAME( 1982, eyeszacb, eyes, pacman, eyes, driver_device, 0, ROT90, "bootleg", "Eyes (bootleg set 2, decrypted)", GAME_SUPPORTS_SAVE ) // based on Zaccaria version
+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( 1983, mrtnt, 0, pacman, mrtnt, pacman_state, eyes, ROT90, "Techstar (Telko license)", "Mr. TNT", GAME_SUPPORTS_SAVE )
-GAME( 1983, gorkans, mrtnt, pacman, mrtnt, driver_device, 0, ROT90, "Techstar", "Gorkans", GAME_SUPPORTS_SAVE )
+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( 1985, lizwiz, 0, woodpek, lizwiz, driver_device, 0, ROT90, "Techstar (Sunn license)", "Lizard Wizard", GAME_SUPPORTS_SAVE )
+GAME( 1985, lizwiz, 0, woodpek, lizwiz, driver_device, 0, ROT90, "Techstar (Sunn license)", "Lizard Wizard", MACHINE_SUPPORTS_SAVE )
-GAME( 1983, eggor, 0, pacman, mrtnt, pacman_state, eyes, ROT90, "Telko", "Eggor", GAME_WRONG_COLORS | GAME_IMPERFECT_SOUND | GAME_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", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+GAME( 1983, birdiy, 0, birdiy, birdiy, driver_device, 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)", GAME_SUPPORTS_SAVE )
-GAME( 1981, woodpeca, woodpeck, woodpek, woodpek, pacman_state, woodpek, ROT90, "Amenip", "Woodpecker (set 2)", GAME_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 )
-GAME( 1981, nmouse, 0, nmouse, nmouse, pacman_state, eyes, ROT90, "Amenip (Palcom Queen River)", "Naughty Mouse (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1981, nmouseb, nmouse, nmouse, nmouse, pacman_state, eyes, ROT90, "Amenip Nova Games Ltd.", "Naughty Mouse (set 2)", GAME_SUPPORTS_SAVE )
+GAME( 1981, nmouse, 0, nmouse, nmouse, pacman_state, eyes, ROT90, "Amenip (Palcom Queen River)", "Naughty Mouse (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, nmouseb, nmouse, nmouse, nmouse, pacman_state, eyes, ROT90, "Amenip Nova Games Ltd.", "Naughty Mouse (set 2)", MACHINE_SUPPORTS_SAVE )
-GAME( 1982, ponpoko, 0, woodpek, ponpoko, pacman_state, ponpoko, ROT0, "Sigma Enterprises Inc.", "Ponpoko", GAME_SUPPORTS_SAVE )
-GAME( 1982, ponpokov, ponpoko, woodpek, ponpoko, pacman_state, ponpoko, ROT0, "Sigma Enterprises Inc. (Venture Line license)", "Ponpoko (Venture Line)", GAME_SUPPORTS_SAVE )
-GAME( 1982, candory, ponpoko, woodpek, ponpoko, pacman_state, ponpoko, ROT0, "bootleg", "Candory (Ponpoko bootleg with Mario)", GAME_SUPPORTS_SAVE )
+GAME( 1982, ponpoko, 0, woodpek, ponpoko, pacman_state, ponpoko, ROT0, "Sigma Enterprises Inc.", "Ponpoko", MACHINE_SUPPORTS_SAVE )
+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", GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE )
-GAME( 1982, alibabab, alibaba, alibaba, alibaba, driver_device, 0, ROT90, "bootleg", "Mustafa and 40 Thieves (bootleg)", GAME_UNEMULATED_PROTECTION | GAME_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, dremshpr, 0, dremshpr, dremshpr, driver_device, 0, ROT270, "Sanritsu", "Dream Shopper", GAME_SUPPORTS_SAVE )
+GAME( 1982, dremshpr, 0, dremshpr, dremshpr, driver_device, 0, ROT270, "Sanritsu", "Dream Shopper", MACHINE_SUPPORTS_SAVE )
-GAME( 1983, vanvan, 0, vanvan, vanvan, driver_device, 0, ROT270, "Sanritsu", "Van-Van Car", GAME_SUPPORTS_SAVE )
-GAME( 1983, vanvank, vanvan, vanvan, vanvank, driver_device, 0, ROT270, "Sanritsu (Karateco license?)", "Van-Van Car (Karateco set 1)", GAME_SUPPORTS_SAVE ) // or bootleg?
-GAME( 1983, vanvanb, vanvan, vanvan, vanvank, driver_device, 0, ROT270, "Sanritsu (Karateco license?)", "Van-Van Car (Karateco set 2)", GAME_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, bwcasino, 0, acitya, bwcasino, driver_device, 0, ROT90, "Epos Corporation", "Boardwalk Casino", GAME_SUPPORTS_SAVE )
-GAME( 1983, acitya, bwcasino, acitya, acitya, driver_device, 0, ROT90, "Epos Corporation", "Atlantic City Action", GAME_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, theglobp, suprglob, theglobp, theglobp, driver_device, 0, ROT90, "Epos Corporation", "The Glob (Pac-Man hardware)", GAME_SUPPORTS_SAVE )
-GAME( 1983, sprglobp, suprglob, theglobp, theglobp, driver_device, 0, ROT90, "Epos Corporation", "Super Glob (Pac-Man hardware)", GAME_SUPPORTS_SAVE )
-GAME( 1983, sprglbpg, suprglob, pacman, theglobp, driver_device, 0, ROT90, "bootleg", "Super Glob (Pac-Man hardware) (German bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1984, beastf, suprglob, theglobp, theglobp, driver_device, 0, ROT90, "Epos Corporation", "Beastie Feastie", GAME_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( 1983, sprglbpg, suprglob, pacman, theglobp, driver_device, 0, ROT90, "bootleg", "Super Glob (Pac-Man hardware) (German bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, beastf, suprglob, theglobp, theglobp, driver_device, 0, ROT90, "Epos Corporation", "Beastie Feastie", MACHINE_SUPPORTS_SAVE )
-GAME( 1984, drivfrcp, 0, drivfrcp, drivfrcp, pacman_state, drivfrcp, ROT90, "Shinkai Inc. (Magic Electronics Inc. license)", "Driving Force (Pac-Man conversion)", GAME_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 )
-GAME( 1985, 8bpm, 8ballact, 8bpm, 8bpm, pacman_state, 8bpm, ROT90, "Seatongrove Ltd (Magic Electronics USA license)", "Eight Ball Action (Pac-Man conversion)", GAME_SUPPORTS_SAVE )
+GAME( 1985, 8bpm, 8ballact, 8bpm, 8bpm, pacman_state, 8bpm, ROT90, "Seatongrove Ltd (Magic Electronics USA license)", "Eight Ball Action (Pac-Man conversion)", MACHINE_SUPPORTS_SAVE )
-GAME( 1985, porky, 0, porky, porky, pacman_state, porky, ROT90, "Shinkai Inc. (Magic Electronics Inc. license)", "Porky", GAME_SUPPORTS_SAVE )
+GAME( 1985, porky, 0, porky, porky, pacman_state, porky, ROT90, "Shinkai Inc. (Magic Electronics Inc. license)", "Porky", MACHINE_SUPPORTS_SAVE )
-GAME( 1986, rocktrv2, 0, rocktrv2, rocktrv2, pacman_state, rocktrv2, ROT90, "Triumph Software Inc.", "MTV Rock-N-Roll Trivia (Part 2)", GAME_SUPPORTS_SAVE )
+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", GAME_SUPPORTS_SAVE )
+GAME( 1986, bigbucks, 0, bigbucks, bigbucks, driver_device, 0, ROT90, "Dynasoft Inc.", "Big Bucks", MACHINE_SUPPORTS_SAVE )
-GAME( 1983, numcrash, 0, woodpek, numcrash, driver_device, 0, ROT90, "Hanshin Goraku", "Number Crash", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
+GAME( 1983, numcrash, 0, woodpek, numcrash, driver_device, 0, ROT90, "Hanshin Goraku", "Number Crash", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
-GAME( 198?, cannonbp, 0, pacman, cannonbp, pacman_state, cannonbp, ROT90, "Novomatic", "Cannon Ball (Pac-Man Hardware)", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
+GAME( 198?, 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)", GAME_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)", GAME_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)", GAME_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)", GAME_SUPPORTS_SAVE ) // different conversion?
+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?
diff --git a/src/mess/drivers/palm.c b/src/mame/drivers/palm.c
index acfa35740a5..8ed4c93a6c8 100644
--- a/src/mess/drivers/palm.c
+++ b/src/mame/drivers/palm.c
@@ -5,7 +5,7 @@
drivers/palm.c
Palm (MC68328) emulation
- Driver by MooglyGuy
+ Driver by Ryan Holtz
Additional bug fixing by R. Belmont
@@ -484,21 +484,21 @@ static MACHINE_CONFIG_DERIVED( palmvx, palm )
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", GAME_SUPPORTS_SAVE | GAME_NO_SOUND )
-COMP( 1996, pilot5k, pilot1k, 0, pilot5k, palm, driver_device, 0, "U.S. Robotics", "Pilot 5000", GAME_SUPPORTS_SAVE | GAME_NO_SOUND )
-COMP( 1997, palmpers, pilot1k, 0, pilot5k, palm, driver_device, 0, "U.S. Robotics", "Palm Pilot Personal", GAME_SUPPORTS_SAVE | GAME_NO_SOUND )
-COMP( 1997, palmpro, pilot1k, 0, palmpro, palm, driver_device, 0, "U.S. Robotics", "Palm Pilot Pro", GAME_SUPPORTS_SAVE | GAME_NO_SOUND )
-COMP( 1998, palmiii, pilot1k, 0, palmiii, palm, driver_device, 0, "3Com", "Palm III", GAME_SUPPORTS_SAVE | GAME_NO_SOUND )
-COMP( 1998, palmiiic, pilot1k, 0, palmiii, palm, driver_device, 0, "Palm Inc", "Palm IIIc", GAME_NOT_WORKING )
-COMP( 2000, palmm100, pilot1k, 0, palmiii, palm, driver_device, 0, "Palm Inc", "Palm m100", GAME_NOT_WORKING )
-COMP( 2000, palmm130, pilot1k, 0, palmiii, palm, driver_device, 0, "Palm Inc", "Palm m130", GAME_NOT_WORKING )
-COMP( 2001, palmm505, pilot1k, 0, palmiii, palm, driver_device, 0, "Palm Inc", "Palm m505", GAME_NOT_WORKING )
-COMP( 2001, palmm515, pilot1k, 0, palmiii, palm, driver_device, 0, "Palm Inc", "Palm m515", GAME_NOT_WORKING )
-COMP( 1999, palmv, pilot1k, 0, palmv, palm, driver_device, 0, "3Com", "Palm V", GAME_NOT_WORKING )
-COMP( 1999, palmvx, pilot1k, 0, palmvx, palm, driver_device, 0, "Palm Inc", "Palm Vx", GAME_NOT_WORKING )
-COMP( 2001, visor, pilot1k, 0, palmvx, palm, driver_device, 0, "Handspring", "Visor Edge", GAME_NOT_WORKING )
-COMP( 19??, spt1500, pilot1k, 0, palmvx, palm, driver_device, 0, "Symbol", "SPT 1500", GAME_NOT_WORKING )
-COMP( 19??, spt1700, pilot1k, 0, palmvx, palm, driver_device, 0, "Symbol", "SPT 1700", GAME_NOT_WORKING )
-COMP( 19??, spt1740, pilot1k, 0, palmvx, palm, driver_device, 0, "Symbol", "SPT 1740", GAME_NOT_WORKING )
+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 )
#include "palm_dbg.inc"
diff --git a/src/mess/drivers/palm_dbg.inc b/src/mame/drivers/palm_dbg.inc
index d02f6117574..d02f6117574 100644
--- a/src/mess/drivers/palm_dbg.inc
+++ b/src/mame/drivers/palm_dbg.inc
diff --git a/src/mess/drivers/palmz22.c b/src/mame/drivers/palmz22.c
index 1e3798927a8..7228d55d288 100644
--- a/src/mess/drivers/palmz22.c
+++ b/src/mame/drivers/palmz22.c
@@ -335,4 +335,4 @@ ROM_START( palmz22 )
ROM_LOAD( "palmz22.bin", 0, 0x2100000, CRC(6d0320b3) SHA1(99297975fdad44faf69cc6eaf0fa2560d5579a4d) )
ROM_END
-COMP(2005, palmz22, 0, 0, palmz22, palmz22, palmz22_state, palmz22, "Palm", "Palm Z22", GAME_NO_SOUND)
+COMP(2005, palmz22, 0, 0, palmz22, palmz22, palmz22_state, palmz22, "Palm", "Palm Z22", MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/pandoras.c b/src/mame/drivers/pandoras.c
index 3a2a9f13020..d00b436de6e 100644
--- a/src/mame/drivers/pandoras.c
+++ b/src/mame/drivers/pandoras.c
@@ -403,4 +403,4 @@ ROM_START( pandoras )
ROM_END
-GAME( 1984, pandoras, 0, pandoras, pandoras, driver_device, 0, ROT90, "Konami / Interlogic", "Pandora's Palace", GAME_SUPPORTS_SAVE )
+GAME( 1984, pandoras, 0, pandoras, pandoras, driver_device, 0, ROT90, "Konami / Interlogic", "Pandora's Palace", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/pangofun.c b/src/mame/drivers/pangofun.c
index f0b90a4cde9..e3bd5d8c181 100644
--- a/src/mame/drivers/pangofun.c
+++ b/src/mame/drivers/pangofun.c
@@ -222,4 +222,4 @@ DRIVER_INIT_MEMBER(pangofun_state,pangofun)
{
}
-GAME( 1995, pangofun, 0, pangofun, pangofun, pangofun_state, pangofun, ROT0, "InfoCube", "Pango Fun (Italy)", GAME_NOT_WORKING|GAME_NO_SOUND )
+GAME( 1995, pangofun, 0, pangofun, pangofun, pangofun_state, pangofun, ROT0, "InfoCube", "Pango Fun (Italy)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/panicr.c b/src/mame/drivers/panicr.c
index bd3fcca783e..0914c162be7 100644
--- a/src/mame/drivers/panicr.c
+++ b/src/mame/drivers/panicr.c
@@ -830,5 +830,5 @@ DRIVER_INIT_MEMBER(panicr_state,panicr)
}
-GAME( 1986, panicr, 0, panicr, panicr, panicr_state, panicr, ROT270, "Seibu Kaihatsu (Taito license)", "Panic Road (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1986, panicrg, panicr, panicr, panicr, panicr_state, panicr, ROT270, "Seibu Kaihatsu (Tuning license)", "Panic Road (Germany)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+GAME( 1986, panicr, 0, panicr, panicr, panicr_state, panicr, ROT270, "Seibu Kaihatsu (Taito license)", "Panic Road (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1986, panicrg, panicr, panicr, panicr, panicr_state, panicr, ROT270, "Seibu Kaihatsu (Tuning license)", "Panic Road (Germany)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/paradise.c b/src/mame/drivers/paradise.c
index c78d0adec2b..07dd95971ab 100644
--- a/src/mame/drivers/paradise.c
+++ b/src/mame/drivers/paradise.c
@@ -1308,14 +1308,14 @@ DRIVER_INIT_MEMBER(paradise_state,torus)
***************************************************************************/
-GAME( 1994, paradise, 0, paradise, paradise, paradise_state, paradise, ROT90, "Yun Sung", "Paradise (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1994, paradisea, paradise, paradise, paradise, paradise_state, paradise, ROT90, "Yun Sung", "Paradise (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1994, paradisee, paradise, paradise, paradise, paradise_state, paradise, ROT90, "Yun Sung (Escape license)", "Paradise (Escape)", GAME_SUPPORTS_SAVE )
-GAME( 199?, paradlx, 0, paradise, paradise, paradise_state, paradise, ROT90, "Yun Sung", "Paradise Deluxe", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) // year not shown, but should be >=1994
-GAME( 199?, para2dx, 0, paradise, para2dx, paradise_state, paradise, ROT90, "Yun Sung", "Paradise 2 Deluxe", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) // year not shown, but should be >=1994
-GAME( 1995, tgtball, 0, tgtball, tgtball, paradise_state, tgtball, ROT0, "Yun Sung", "Target Ball (Nude)", GAME_SUPPORTS_SAVE )
-GAME( 1995, tgtballa, tgtball, tgtball, tgtball, paradise_state, tgtball, ROT0, "Yun Sung", "Target Ball", GAME_SUPPORTS_SAVE )
-GAME( 1996, penky, 0, penky, penky, paradise_state, tgtball, ROT0, "Yun Sung", "Penky", GAME_SUPPORTS_SAVE )
-GAME( 1996, torus, 0, torus, torus, paradise_state, torus, ROT90, "Yun Sung", "Torus", GAME_SUPPORTS_SAVE )
-GAME( 1998, madball, 0, madball, madball, paradise_state, tgtball, ROT0, "Yun Sung", "Mad Ball V2.0", GAME_SUPPORTS_SAVE )
-GAME( 1997, madballn, madball, madball, madball, paradise_state, tgtball, ROT0, "Yun Sung", "Mad Ball V2.0 (With Nudity)", GAME_SUPPORTS_SAVE )
+GAME( 1994, paradise, 0, paradise, paradise, paradise_state, paradise, ROT90, "Yun Sung", "Paradise (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, paradisea, paradise, paradise, paradise, paradise_state, paradise, ROT90, "Yun Sung", "Paradise (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, paradisee, paradise, paradise, paradise, paradise_state, paradise, ROT90, "Yun Sung (Escape license)", "Paradise (Escape)", MACHINE_SUPPORTS_SAVE )
+GAME( 199?, paradlx, 0, paradise, paradise, paradise_state, paradise, ROT90, "Yun Sung", "Paradise Deluxe", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // year not shown, but should be >=1994
+GAME( 199?, para2dx, 0, paradise, para2dx, paradise_state, paradise, ROT90, "Yun Sung", "Paradise 2 Deluxe", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // year not shown, but should be >=1994
+GAME( 1995, tgtball, 0, tgtball, tgtball, paradise_state, tgtball, ROT0, "Yun Sung", "Target Ball (Nude)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, tgtballa, tgtball, tgtball, tgtball, paradise_state, tgtball, ROT0, "Yun Sung", "Target Ball", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, penky, 0, penky, penky, paradise_state, tgtball, ROT0, "Yun Sung", "Penky", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, torus, 0, torus, torus, paradise_state, torus, ROT90, "Yun Sung", "Torus", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, madball, 0, madball, madball, paradise_state, tgtball, ROT0, "Yun Sung", "Mad Ball V2.0", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, madballn, madball, madball, madball, paradise_state, tgtball, ROT0, "Yun Sung", "Mad Ball V2.0 (With Nudity)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/paranoia.c b/src/mame/drivers/paranoia.c
index 6cf11b6de02..3e0fe691587 100644
--- a/src/mame/drivers/paranoia.c
+++ b/src/mame/drivers/paranoia.c
@@ -51,15 +51,15 @@ public:
paranoia_state(const machine_config &mconfig, device_type type, const char *tag)
: pce_common_state(mconfig, type, tag) { }
- DECLARE_WRITE8_MEMBER(paranoia_8085_d000_w);
- DECLARE_READ8_MEMBER(paranoia_z80_io_01_r);
- DECLARE_READ8_MEMBER(paranoia_z80_io_02_r);
- DECLARE_WRITE8_MEMBER(paranoia_z80_io_17_w);
- DECLARE_WRITE8_MEMBER(paranoia_z80_io_37_w);
- DECLARE_WRITE8_MEMBER(paranoia_i8155_a_w);
- DECLARE_WRITE8_MEMBER(paranoia_i8155_b_w);
- DECLARE_WRITE8_MEMBER(paranoia_i8155_c_w);
- DECLARE_WRITE_LINE_MEMBER(paranoia_i8155_timer_out);
+ DECLARE_WRITE8_MEMBER(i8085_d000_w);
+ DECLARE_READ8_MEMBER(z80_io_01_r);
+ DECLARE_READ8_MEMBER(z80_io_02_r);
+ DECLARE_WRITE8_MEMBER(z80_io_17_w);
+ DECLARE_WRITE8_MEMBER(z80_io_37_w);
+ DECLARE_WRITE8_MEMBER(i8155_a_w);
+ DECLARE_WRITE8_MEMBER(i8155_b_w);
+ DECLARE_WRITE8_MEMBER(i8155_c_w);
+ DECLARE_WRITE_LINE_MEMBER(i8155_timer_out);
};
@@ -90,7 +90,7 @@ static ADDRESS_MAP_START( pce_io , AS_IO, 8, paranoia_state )
AM_RANGE( 0x00, 0x03) AM_DEVREADWRITE( "huc6270", huc6270_device, read, write )
ADDRESS_MAP_END
-WRITE8_MEMBER(paranoia_state::paranoia_8085_d000_w)
+WRITE8_MEMBER(paranoia_state::i8085_d000_w)
{
//logerror( "D000 (8085) write %02x\n", data );
}
@@ -99,7 +99,7 @@ static ADDRESS_MAP_START(paranoia_8085_map, AS_PROGRAM, 8, paranoia_state )
AM_RANGE( 0x0000, 0x7fff) AM_ROM
AM_RANGE( 0x8000, 0x80ff) AM_DEVREADWRITE("i8155", i8155_device, memory_r, memory_w)
AM_RANGE( 0x8100, 0x8107) AM_DEVREADWRITE("i8155", i8155_device, io_r, io_w)
- AM_RANGE( 0xd000, 0xd000) AM_WRITE(paranoia_8085_d000_w )
+ AM_RANGE( 0xd000, 0xd000) AM_WRITE(i8085_d000_w )
AM_RANGE( 0xe000, 0xe1ff) AM_RAM
ADDRESS_MAP_END
@@ -112,48 +112,48 @@ static ADDRESS_MAP_START(paranoia_z80_map, AS_PROGRAM, 8, paranoia_state )
AM_RANGE( 0x7000, 0x73ff) AM_RAM
ADDRESS_MAP_END
-READ8_MEMBER(paranoia_state::paranoia_z80_io_01_r)
+READ8_MEMBER(paranoia_state::z80_io_01_r)
{
return 0;
}
-READ8_MEMBER(paranoia_state::paranoia_z80_io_02_r)
+READ8_MEMBER(paranoia_state::z80_io_02_r)
{
return 0;
}
-WRITE8_MEMBER(paranoia_state::paranoia_z80_io_17_w)
+WRITE8_MEMBER(paranoia_state::z80_io_17_w)
{
}
-WRITE8_MEMBER(paranoia_state::paranoia_z80_io_37_w)
+WRITE8_MEMBER(paranoia_state::z80_io_37_w)
{
}
static ADDRESS_MAP_START(paranoia_z80_io_map, AS_IO, 8, paranoia_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE( 0x01, 0x01 ) AM_READ(paranoia_z80_io_01_r )
- AM_RANGE( 0x02, 0x02 ) AM_READ(paranoia_z80_io_02_r )
- AM_RANGE( 0x17, 0x17 ) AM_WRITE(paranoia_z80_io_17_w )
- AM_RANGE( 0x37, 0x37 ) AM_WRITE(paranoia_z80_io_37_w )
+ AM_RANGE( 0x01, 0x01 ) AM_READ(z80_io_01_r )
+ AM_RANGE( 0x02, 0x02 ) AM_READ(z80_io_02_r )
+ AM_RANGE( 0x17, 0x17 ) AM_WRITE(z80_io_17_w )
+ AM_RANGE( 0x37, 0x37 ) AM_WRITE(z80_io_37_w )
ADDRESS_MAP_END
-WRITE8_MEMBER(paranoia_state::paranoia_i8155_a_w)
+WRITE8_MEMBER(paranoia_state::i8155_a_w)
{
//logerror("i8155 Port A: %02X\n", data);
}
-WRITE8_MEMBER(paranoia_state::paranoia_i8155_b_w)
+WRITE8_MEMBER(paranoia_state::i8155_b_w)
{
//logerror("i8155 Port B: %02X\n", data);
}
-WRITE8_MEMBER(paranoia_state::paranoia_i8155_c_w)
+WRITE8_MEMBER(paranoia_state::i8155_c_w)
{
//logerror("i8155 Port C: %02X\n", data);
}
-WRITE_LINE_MEMBER(paranoia_state::paranoia_i8155_timer_out)
+WRITE_LINE_MEMBER(paranoia_state::i8155_timer_out)
{
//m_subcpu->set_input_line(I8085_RST55_LINE, state ? CLEAR_LINE : ASSERT_LINE );
//logerror("Timer out %d\n", state);
@@ -175,10 +175,10 @@ static MACHINE_CONFIG_START( paranoia, paranoia_state )
MCFG_CPU_IO_MAP(paranoia_z80_io_map)
MCFG_DEVICE_ADD("i8155", I8155, 1000000 /*?*/)
- MCFG_I8155_OUT_PORTA_CB(WRITE8(paranoia_state, paranoia_i8155_a_w))
- MCFG_I8155_OUT_PORTB_CB(WRITE8(paranoia_state, paranoia_i8155_b_w))
- MCFG_I8155_OUT_PORTC_CB(WRITE8(paranoia_state, paranoia_i8155_c_w))
- MCFG_I8155_OUT_TIMEROUT_CB(WRITELINE(paranoia_state, paranoia_i8155_timer_out))
+ MCFG_I8155_OUT_PORTA_CB(WRITE8(paranoia_state, i8155_a_w))
+ MCFG_I8155_OUT_PORTB_CB(WRITE8(paranoia_state, i8155_b_w))
+ MCFG_I8155_OUT_PORTC_CB(WRITE8(paranoia_state, i8155_c_w))
+ MCFG_I8155_OUT_TIMEROUT_CB(WRITELINE(paranoia_state, i8155_timer_out))
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -217,4 +217,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", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
+GAME( 1990, paranoia, 0, paranoia, paranoia, pce_common_state, pce_common, ROT0, "Naxat Soft", "Paranoia", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/parodius.c b/src/mame/drivers/parodius.c
index 4813de1347a..da90e5be579 100644
--- a/src/mame/drivers/parodius.c
+++ b/src/mame/drivers/parodius.c
@@ -375,7 +375,7 @@ ROM_END
***************************************************************************/
-GAME( 1990, parodius, 0, parodius, parodius, driver_device, 0, ROT0, "Konami", "Parodius DA! (World, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1990, parodiuse, parodius, parodius, parodius, driver_device, 0, ROT0, "Konami", "Parodius DA! (World, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1990, parodiusj, parodius, parodius, parodius, driver_device, 0, ROT0, "Konami", "Parodius DA! (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1990, parodiusa, parodius, parodius, parodius, driver_device, 0, ROT0, "Konami", "Parodius DA! (Asia)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/partner.c b/src/mame/drivers/partner.c
index 224f17fc2a3..942b7ddc9ec 100644
--- a/src/mess/drivers/partner.c
+++ b/src/mame/drivers/partner.c
@@ -239,4 +239,4 @@ 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", GAME_NOT_WORKING)
+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.c b/src/mame/drivers/pasha2.c
index fa41ba6a6fa..8d81ed4695f 100644
--- a/src/mame/drivers/pasha2.c
+++ b/src/mame/drivers/pasha2.c
@@ -489,4 +489,4 @@ DRIVER_INIT_MEMBER(pasha2_state,pasha2)
membank("bank1")->set_base(memregion("user2")->base());
}
-GAME( 1998, pasha2, 0, pasha2, pasha2, pasha2_state, pasha2, ROT0, "Dong Sung", "Pasha Pasha 2", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1998, pasha2, 0, pasha2, pasha2, pasha2_state, pasha2, ROT0, "Dong Sung", "Pasha Pasha 2", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/paso1600.c b/src/mame/drivers/paso1600.c
index 1d11668095d..91fa7f170ae 100644
--- a/src/mess/drivers/paso1600.c
+++ b/src/mame/drivers/paso1600.c
@@ -347,4 +347,4 @@ 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" , GAME_NOT_WORKING|GAME_NO_SOUND)
+COMP ( 198?,paso1600, 0, 0, paso1600, paso1600, driver_device, 0, "Toshiba", "Pasopia 1600" , MACHINE_NOT_WORKING|MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/pasogo.c b/src/mame/drivers/pasogo.c
index 52b9bf2be29..14bb688d280 100644
--- a/src/mess/drivers/pasogo.c
+++ b/src/mame/drivers/pasogo.c
@@ -573,4 +573,4 @@ ROM_START( pasogo )
ROM_END
// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS
-CONS( 1996, pasogo, 0, 0, pasogo, pasogo, driver_device, 0, "KOEI", "PasoGo", GAME_NO_SOUND|GAME_NOT_WORKING)
+CONS( 1996, pasogo, 0, 0, pasogo, pasogo, driver_device, 0, "KOEI", "PasoGo", MACHINE_NO_SOUND|MACHINE_NOT_WORKING)
diff --git a/src/mess/drivers/pasopia.c b/src/mame/drivers/pasopia.c
index 03efd9d0dfb..03a27a2d2fb 100644
--- a/src/mess/drivers/pasopia.c
+++ b/src/mame/drivers/pasopia.c
@@ -356,4 +356,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1986, pasopia, 0, 0, pasopia, pasopia, pasopia_state, pasopia, "Toshiba", "Pasopia", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/pasopia7.c b/src/mame/drivers/pasopia7.c
index 270f8a1a7d9..926b4401a1a 100644
--- a/src/mess/drivers/pasopia7.c
+++ b/src/mame/drivers/pasopia7.c
@@ -115,7 +115,6 @@ public:
DECLARE_DRIVER_INIT(p7_raster);
virtual void machine_reset();
DECLARE_VIDEO_START(pasopia7);
- DECLARE_PALETTE_INIT(p7_raster);
DECLARE_PALETTE_INIT(p7_lcd);
UINT32 screen_update_pasopia7(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
@@ -889,14 +888,6 @@ void pasopia7_state::machine_reset()
m_nmi_reset |= 4;
}
-PALETTE_INIT_MEMBER(pasopia7_state,p7_raster)
-{
- int i;
-
- for( i = 0; i < 8; i++)
- palette.set_pen_color(i, pal1bit(i >> 1), pal1bit(i >> 2), pal1bit(i >> 0));
-}
-
/* TODO: palette values are mostly likely to be wrong in there */
PALETTE_INIT_MEMBER(pasopia7_state,p7_lcd)
{
@@ -979,8 +970,7 @@ static MACHINE_CONFIG_DERIVED( p7_raster, p7_base )
MCFG_VIDEO_START_OVERRIDE(pasopia7_state,pasopia7)
MCFG_SCREEN_UPDATE_DRIVER(pasopia7_state, screen_update_pasopia7)
- MCFG_PALETTE_ADD("palette", 8)
- MCFG_PALETTE_INIT_OWNER(pasopia7_state,p7_raster)
+ MCFG_PALETTE_ADD_3BIT_BRG("palette")
MCFG_GFXDECODE_ADD("gfxdecode", "palette", pasopia7 )
MCFG_MC6845_ADD("crtc", H46505, "screen", VDP_CLOCK) /* unknown clock, hand tuned to get ~60 fps */
@@ -1072,5 +1062,5 @@ DRIVER_INIT_MEMBER(pasopia7_state,p7_lcd)
/* Driver */
-COMP( 1983, pasopia7, 0, 0, p7_raster, pasopia7, pasopia7_state, p7_raster, "Toshiba", "Pasopia 7 (Raster)", GAME_NOT_WORKING )
-COMP( 1983, pasopia7lcd, pasopia7, 0, p7_lcd, pasopia7, pasopia7_state, p7_lcd, "Toshiba", "Pasopia 7 (LCD)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS )
+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 )
diff --git a/src/mame/drivers/pass.c b/src/mame/drivers/pass.c
index 1b2896ba61b..dc4a83ef6b0 100644
--- a/src/mame/drivers/pass.c
+++ b/src/mame/drivers/pass.c
@@ -293,4 +293,4 @@ ROM_START( pass )
ROM_END
-GAME( 1992, pass, 0, pass, pass, driver_device, 0, ROT0, "Oksan", "Pass", GAME_SUPPORTS_SAVE )
+GAME( 1992, pass, 0, pass, pass, driver_device, 0, ROT0, "Oksan", "Pass", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/pastelg.c b/src/mame/drivers/pastelg.c
index 13620d59f5d..2de48e4493f 100644
--- a/src/mame/drivers/pastelg.c
+++ b/src/mame/drivers/pastelg.c
@@ -565,6 +565,6 @@ ROM_END
-GAME( 1985, pastelg, 0, pastelg, pastelg, driver_device, 0, ROT0, "Nichibutsu", "Pastel Gal (Japan 851224)", GAME_SUPPORTS_SAVE )
-GAME( 1985, threeds, 0, threeds, threeds, driver_device, 0, ROT0, "Nichibutsu", "Three Ds - Three Dealers Casino House", GAME_SUPPORTS_SAVE )
-GAME( 1985, galds, threeds, threeds, galds, driver_device, 0, ROT0, "Nihon System Corp.", "Gals Ds - Three Dealers Casino House (bootleg?)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/pb1000.c b/src/mame/drivers/pb1000.c
index fb15a0b912d..44cbb6f0d73 100644
--- a/src/mess/drivers/pb1000.c
+++ b/src/mame/drivers/pb1000.c
@@ -566,6 +566,6 @@ 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", GAME_NOT_WORKING)
-COMP( 1989, pb2000c, 0, 0, pb2000c, pb2000c, driver_device, 0, "Casio", "PB-2000c", GAME_NOT_WORKING)
-COMP( 1989, ai1000, pb2000c, 0, pb2000c, pb2000c, driver_device, 0, "Casio", "AI-1000", GAME_NOT_WORKING)
+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)
diff --git a/src/mame/drivers/pbaction.c b/src/mame/drivers/pbaction.c
index 5e28dda1937..a62ddc0b6db 100644
--- a/src/mame/drivers/pbaction.c
+++ b/src/mame/drivers/pbaction.c
@@ -524,8 +524,8 @@ DRIVER_INIT_MEMBER(pbaction_state,pbactio4)
-GAME( 1985, pbaction, 0, pbaction, pbaction, driver_device, 0, ROT90, "Tehkan", "Pinball Action (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1985, pbaction2, pbaction, pbaction, pbaction, driver_device, 0, ROT90, "Tehkan", "Pinball Action (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1985, pbaction3, pbaction, pbactionx, pbaction, pbaction_state, pbactio3, ROT90, "Tehkan", "Pinball Action (set 3, encrypted)", GAME_SUPPORTS_SAVE )
-GAME( 1985, pbaction4, pbaction, pbactionx, pbaction, pbaction_state, pbactio4, ROT90, "Tehkan", "Pinball Action (set 4, encrypted)", GAME_SUPPORTS_SAVE )
-GAME( 1985, pbaction5, pbaction, pbactionx, pbaction, pbaction_state, pbactio4, ROT90, "Tehkan", "Pinball Action (set 5, encrypted)", GAME_SUPPORTS_SAVE )
+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, pbaction3, pbaction, pbactionx, pbaction, pbaction_state, pbactio3, ROT90, "Tehkan", "Pinball Action (set 3, encrypted)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, pbaction4, pbaction, pbactionx, pbaction, pbaction_state, pbactio4, ROT90, "Tehkan", "Pinball Action (set 4, encrypted)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, pbaction5, pbaction, pbactionx, pbaction, pbaction_state, pbactio4, ROT90, "Tehkan", "Pinball Action (set 5, encrypted)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/pc.c b/src/mame/drivers/pc.c
index 90d74109e2c..e362880ef0c 100644
--- a/src/mess/drivers/pc.c
+++ b/src/mame/drivers/pc.c
@@ -450,26 +450,26 @@ ROM_END
***************************************************************************/
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
-COMP( 1984, dgone, ibm5150, 0, pccga, pccga, driver_device, 0, "Data General", "Data General/One" , GAME_NOT_WORKING)/* CGA, 2x 3.5" disk drives */
+COMP( 1984, dgone, ibm5150, 0, pccga, 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" , GAME_NOT_WORKING)
-COMP( 1987, pc10iii, ibm5150, 0, pccga, pccga, driver_device, 0, "Commodore Business Machines", "Commodore PC-10 III" , GAME_NOT_WORKING)
+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", GAME_NOT_WORKING)
-COMP( 1989, mk88, ibm5150, 0, mk88, pccga, driver_device, 0, "<unknown>", "MK-88", GAME_NOT_WORKING)
-COMP( 1991, poisk2, ibm5150, 0, poisk2, pccga, driver_device, 0, "<unknown>", "Poisk-2", GAME_NOT_WORKING)
-COMP( 1990, mc1702, ibm5150, 0, pccga, pccga, driver_device, 0, "<unknown>", "Elektronika MC-1702", GAME_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, "<unknown>", "MK-88", MACHINE_NOT_WORKING)
+COMP( 1991, poisk2, ibm5150, 0, poisk2, pccga, driver_device, 0, "<unknown>", "Poisk-2", MACHINE_NOT_WORKING)
+COMP( 1990, mc1702, ibm5150, 0, pccga, pccga, driver_device, 0, "<unknown>", "Elektronika MC-1702", MACHINE_NOT_WORKING)
COMP( 1987, zdsupers, ibm5150, 0, zenith, pccga, driver_device, 0, "Zenith Data Systems", "SuperSport", 0)
-COMP( 198?, olivm15, ibm5150, 0, pccga, pccga, driver_device, 0, "Olivetti", "M15", GAME_NOT_WORKING | GAME_NO_SOUND) // is this a pc clone or not?
+COMP( 198?, olivm15, ibm5150, 0, pccga, pccga, driver_device, 0, "Olivetti", "M15", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) // is this a pc clone or not?
-COMP( 1983, ibm5550, ibm5150, 0, ibm5550, pccga, driver_device, 0, "International Business Machines", "IBM 5550", GAME_NOT_WORKING)
+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", GAME_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", GAME_NOT_WORKING)
-COMP( 198?, mbc16, ibm5150, 0, pccga, pccga, driver_device, 0, "Sanyo", "MBC-16" , GAME_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( 198?, ataripc3, ibm5150, 0, pccga, pccga, driver_device, 0, "Atari", "PC-3" , GAME_NOT_WORKING)
-COMP( 1989, ssam88s, ibm5150, 0, pccga, pccga, driver_device, 0, "Samsung", "Samtron 88S" , GAME_NOT_WORKING)
+COMP( 198?, ataripc3, ibm5150, 0, pccga, pccga, driver_device, 0, "Atari", "PC-3" , MACHINE_NOT_WORKING)
+COMP( 1989, ssam88s, ibm5150, 0, pccga, pccga, driver_device, 0, "Samsung", "Samtron 88S" , MACHINE_NOT_WORKING)
diff --git a/src/mess/drivers/pc100.c b/src/mame/drivers/pc100.c
index d1be0220f18..5c23a8f1934 100644
--- a/src/mess/drivers/pc100.c
+++ b/src/mame/drivers/pc100.c
@@ -72,7 +72,6 @@ public:
m_beeper(*this, "beeper"),
m_rtc(*this, "rtc"),
m_palette(*this, "palette"),
- m_palram(*this, "palram"),
m_kanji_rom(*this, "kanji"),
m_vram(*this, "vram"),
m_rtc_portc(0)
@@ -83,7 +82,6 @@ public:
required_device<beep_device> m_beeper;
required_device<msm58321_device> m_rtc;
required_device<palette_device> m_palette;
- required_shared_ptr<UINT16> m_palram;
required_region_ptr<UINT16> m_kanji_rom;
required_region_ptr<UINT16> m_vram;
@@ -94,7 +92,6 @@ public:
DECLARE_READ8_MEMBER(pc100_key_r);
DECLARE_WRITE8_MEMBER(pc100_output_w);
DECLARE_WRITE8_MEMBER(pc100_tc_w);
- DECLARE_WRITE16_MEMBER(pc100_paletteram_w);
DECLARE_READ8_MEMBER(pc100_shift_r);
DECLARE_WRITE8_MEMBER(pc100_shift_w);
DECLARE_READ8_MEMBER(pc100_vs_vreg_r);
@@ -246,27 +243,11 @@ WRITE8_MEMBER( pc100_state::pc100_tc_w )
machine().device<upd765a_device>("upd765")->tc_w(data & 0x40);
}
-WRITE16_MEMBER( pc100_state::pc100_paletteram_w )
-{
- COMBINE_DATA(&m_palram[offset]);
-
- {
- int r,g,b;
-
- r = (m_palram[offset] >> 0) & 7;
- g = (m_palram[offset] >> 3) & 7;
- b = (m_palram[offset] >> 6) & 7;
-
- m_palette->set_pen_color(offset, pal3bit(r),pal3bit(g),pal3bit(b));
- }
-}
-
READ8_MEMBER( pc100_state::pc100_shift_r )
{
return m_crtc.shift;
}
-
WRITE8_MEMBER( pc100_state::pc100_shift_w )
{
m_crtc.shift = data & 0xf;
@@ -316,7 +297,7 @@ static ADDRESS_MAP_START(pc100_io, AS_IO, 16, pc100_state)
AM_RANGE(0x38, 0x39) AM_WRITE8(pc100_crtc_addr_w,0x00ff) //crtc address reg
AM_RANGE(0x3a, 0x3b) AM_WRITE8(pc100_crtc_data_w,0x00ff) //crtc data reg
AM_RANGE(0x3c, 0x3f) AM_READWRITE8(pc100_vs_vreg_r,pc100_vs_vreg_w,0x00ff) //crtc vertical start position
- AM_RANGE(0x40, 0x5f) AM_RAM_WRITE(pc100_paletteram_w) AM_SHARE("palram")
+ AM_RANGE(0x40, 0x5f) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
// AM_RANGE(0x60, 0x61) crtc command (16-bit wide)
AM_RANGE(0x80, 0x81) AM_READWRITE(pc100_kanji_r,pc100_kanji_w)
AM_RANGE(0x82, 0x83) AM_WRITENOP //kanji-related?
@@ -514,7 +495,7 @@ static MACHINE_CONFIG_START( pc100, pc100_state )
MCFG_GFXDECODE_ADD("gfxdecode", "palette", pc100)
MCFG_PALETTE_ADD("palette", 16)
-// MCFG_PALETTE_INIT(black_and_white)
+ MCFG_PALETTE_FORMAT(xxxxxxxBBBGGGRRR)
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -536,4 +517,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 198?, pc100, 0, 0, pc100, pc100, driver_device, 0, "NEC", "PC-100", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/pc1500.c b/src/mame/drivers/pc1500.c
index 449927a40a9..6f91939c9c5 100644
--- a/src/mess/drivers/pc1500.c
+++ b/src/mame/drivers/pc1500.c
@@ -295,4 +295,4 @@ ROM_START( pc1500 )
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", GAME_NOT_WORKING | GAME_NO_SOUND )
+COMP( 198?, pc1500, 0, 0, pc1500, pc1500, driver_device, 0, "Sharp", "Pocket Computer 1500", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mess/drivers/pc1512.c b/src/mame/drivers/pc1512.c
index 9bb0cdc52fc..3c8ba9d2bb9 100644
--- a/src/mess/drivers/pc1512.c
+++ b/src/mame/drivers/pc1512.c
@@ -1504,11 +1504,11 @@ ROM_END
//**************************************************************************
// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS
-COMP( 1986, pc1512, 0, 0, pc1512, pc1512, driver_device, 0, "Amstrad plc", "PC1512 SD", GAME_SUPPORTS_SAVE )
-COMP( 1986, pc1512dd, pc1512, 0, pc1512dd, pc1512, driver_device, 0, "Amstrad plc", "PC1512 DD", GAME_SUPPORTS_SAVE )
-COMP( 1986, pc1512hd10, pc1512, 0, pc1512hd, pc1512, driver_device, 0, "Amstrad plc", "PC1512 HD10", GAME_SUPPORTS_SAVE )
-COMP( 1986, pc1512hd20, pc1512, 0, pc1512hd, pc1512, driver_device, 0, "Amstrad plc", "PC1512 HD20", GAME_SUPPORTS_SAVE )
-COMP( 1987, pc1640, 0, 0, pc1640, pc1640, driver_device, 0, "Amstrad plc", "PC1640 SD", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-COMP( 1987, pc1640dd, pc1640, 0, pc1640dd, pc1640, driver_device, 0, "Amstrad plc", "PC1640 DD", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-COMP( 1987, pc1640hd20, pc1640, 0, pc1640hd, pc1640, driver_device, 0, "Amstrad plc", "PC1640 HD20", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-COMP( 1987, pc1640hd30, pc1640, 0, pc1640hd, pc1640, driver_device, 0, "Amstrad plc", "PC1640 HD30", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/pc2000.c b/src/mame/drivers/pc2000.c
index a8537b96e6a..e52336577f0 100644
--- a/src/mess/drivers/pc2000.c
+++ b/src/mame/drivers/pc2000.c
@@ -1013,19 +1013,19 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
-COMP( 1988, pc1000, 0, 0, misterx, pc1000, driver_device, 0, "Video Technology", "PreComputer 1000", GAME_NOT_WORKING)
-COMP( 1988, misterx, 0, 0, misterx, pc1000, driver_device, 0, "Video Technology / Yeno", "MisterX", GAME_NOT_WORKING)
-COMP( 1993, pc2000, 0, 0, pc2000, pc2000, driver_device, 0, "Video Technology", "PreComputer 2000", GAME_NOT_WORKING)
-COMP( 1993, gl2000, 0, 0, gl2000, pc2000, driver_device, 0, "Video Technology", "Genius Leader 2000", GAME_NOT_WORKING)
-COMP( 1994, gl2000c, gl2000, 0, gl2000, pc2000, driver_device, 0, "Video Technology", "Genius Leader 2000 Compact", GAME_NOT_WORKING)
-COMP( 1995, gl2000p, gl2000, 0, gl2000, pc2000, driver_device, 0, "Video Technology", "Genius Leader 2000 Plus", GAME_NOT_WORKING)
-COMP( 1996, gl3000s, 0, 0, gl3000s, gl3000s,driver_device, 0, "Video Technology", "Genius Leader 3000S (Germany)", GAME_NOT_WORKING)
-COMP( 1994, gl4000, 0, 0, gl4000, pc2000, driver_device, 0, "Video Technology", "Genius Leader 4000 Quadro (Germany)", GAME_NOT_WORKING)
-COMP( 1996, gl4004, 0, 0, gl4000, pc2000, driver_device, 0, "Video Technology", "Genius Leader 4004 Quadro L (Germany)", GAME_NOT_WORKING)
-COMP( 1997, gl5000, 0, 0, pc2000, pc2000, driver_device, 0, "Video Technology", "Genius Leader 5000 (Germany)", GAME_IS_SKELETON)
-COMP( 1997, gl5005x, 0, 0, pc2000, pc2000, driver_device, 0, "Video Technology", "Genius Leader 5005X (Germany)", GAME_IS_SKELETON)
-COMP( 1997, glpn, 0, 0, gl4000, pc2000, driver_device, 0, "Video Technology", "Genius Leader Power Notebook (Germany)", GAME_IS_SKELETON)
-COMP( 1998, gmtt , 0, 0, gl4000, pc2000, driver_device, 0, "Video Technology", "Genius Master Table Top (Germany)", GAME_IS_SKELETON)
-COMP( 2001, gbs5505x, 0, 0, pc2000, pc2000, driver_device, 0, "Video Technology", "Genius BrainStation 5505X (Germany)", GAME_IS_SKELETON)
-COMP( 1993, gln, 0, 0, pc2000, pc2000, driver_device, 0, "Video Technology", "Genius Leader Notebook", GAME_IS_SKELETON)
-COMP( 1999, lexipcm, 0, 0, pc2000, pc2000, driver_device, 0, "Lexibook", "LexiPC Mega 2000 (Germany)", GAME_IS_SKELETON)
+COMP( 1988, pc1000, 0, 0, misterx, 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( 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)
diff --git a/src/mess/drivers/pc4.c b/src/mame/drivers/pc4.c
index dc993fa4e4b..014feebe6cb 100644
--- a/src/mess/drivers/pc4.c
+++ b/src/mame/drivers/pc4.c
@@ -247,4 +247,4 @@ ROM_START( pc4 )
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", GAME_NOT_WORKING )
+COMP( 1990, pc4, 0, 0, pc4, pc4, driver_device, 0, "Laser Computer", "Laser PC4", MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/pc6001.c b/src/mame/drivers/pc6001.c
index e560e9e1a6d..aadd261c5b0 100644
--- a/src/mess/drivers/pc6001.c
+++ b/src/mame/drivers/pc6001.c
@@ -1343,7 +1343,7 @@ WRITE8_MEMBER(pc6001_state::pc6001m2_vram_bank_w)
visarea.set(0, (320) - 1, 0, (y_height) - 1);
- machine().first_screen()->configure(320, 240, visarea, machine().first_screen()->frame_period().attoseconds);
+ machine().first_screen()->configure(320, 240, visarea, machine().first_screen()->frame_period().attoseconds());
}
}
@@ -2469,8 +2469,8 @@ ROM_START( pc6001sr )
ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 1981, pc6001, 0, 0, pc6001, pc6001, driver_device, 0, "Nippon Electronic Company", "PC-6001 (Japan)", GAME_NOT_WORKING )
-COMP( 1981, pc6001a, pc6001, 0, pc6001, pc6001, driver_device, 0, "Nippon Electronic Company", "PC-6001A (US)", GAME_NOT_WORKING ) // This version is also known as the NEC Trek
-COMP( 1983, pc6001mk2,pc6001, 0, pc6001m2, pc6001, driver_device, 0, "Nippon Electronic Company", "PC-6001mkII (Japan)", GAME_NOT_WORKING )
-COMP( 1983, pc6601, pc6001, 0, pc6601, pc6001, driver_device, 0, "Nippon Electronic Company", "PC-6601 (Japan)", GAME_NOT_WORKING )
-COMP( 1984, pc6001sr, pc6001, 0, pc6001sr, pc6001, driver_device, 0, "Nippon Electronic Company", "PC-6001mkIISR (Japan)", GAME_NOT_WORKING )
+COMP( 1981, pc6001, 0, 0, pc6001, pc6001, driver_device, 0, "Nippon Electronic Company", "PC-6001 (Japan)", MACHINE_NOT_WORKING )
+COMP( 1981, pc6001a, pc6001, 0, pc6001, pc6001, driver_device, 0, "Nippon Electronic Company", "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, "Nippon Electronic Company", "PC-6001mkII (Japan)", MACHINE_NOT_WORKING )
+COMP( 1983, pc6601, pc6001, 0, pc6601, pc6001, driver_device, 0, "Nippon Electronic Company", "PC-6601 (Japan)", MACHINE_NOT_WORKING )
+COMP( 1984, pc6001sr, pc6001, 0, pc6001sr, pc6001, driver_device, 0, "Nippon Electronic Company", "PC-6001mkIISR (Japan)", MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/pc8001.c b/src/mame/drivers/pc8001.c
index e5f1f5b8b47..fd95aa724b6 100644
--- a/src/mess/drivers/pc8001.c
+++ b/src/mame/drivers/pc8001.c
@@ -597,5 +597,5 @@ ROM_END
/* System Drivers */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 1979, pc8001, 0, 0, pc8001, pc8001, driver_device, 0, "Nippon Electronic Company", "PC-8001", GAME_NOT_WORKING )
-COMP( 1983, pc8001mk2, pc8001, 0, pc8001mk2, pc8001, driver_device, 0, "Nippon Electronic Company", "PC-8001mkII", GAME_NOT_WORKING )
+COMP( 1979, pc8001, 0, 0, pc8001, pc8001, driver_device, 0, "Nippon Electronic Company", "PC-8001", MACHINE_NOT_WORKING )
+COMP( 1983, pc8001mk2, pc8001, 0, pc8001mk2, pc8001, driver_device, 0, "Nippon Electronic Company", "PC-8001mkII", MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/pc8401a.c b/src/mame/drivers/pc8401a.c
index 05e8eec5ba8..0f5ccc2a0c0 100644
--- a/src/mess/drivers/pc8401a.c
+++ b/src/mame/drivers/pc8401a.c
@@ -672,6 +672,6 @@ ROM_END
/* System Drivers */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
-COMP( 1984, pc8401a, 0, 0, pc8401a, pc8401a, driver_device, 0, "Nippon Electronic Company", "PC-8401A-LS", GAME_NOT_WORKING | GAME_NO_SOUND)
-//COMP( 1984, pc8401bd, pc8401a,0, pc8401a, pc8401a, driver_device, 0, "Nippon Electronic Company", "PC-8401BD", GAME_NOT_WORKING)
-COMP( 1985, pc8500, 0, 0, pc8500, pc8401a, driver_device, 0, "Nippon Electronic Company", "PC-8500", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1984, pc8401a, 0, 0, pc8401a, pc8401a, driver_device, 0, "Nippon Electronic Company", "PC-8401A-LS", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
+//COMP( 1984, pc8401bd, pc8401a,0, pc8401a, pc8401a, driver_device, 0, "Nippon Electronic Company", "PC-8401BD", MACHINE_NOT_WORKING)
+COMP( 1985, pc8500, 0, 0, pc8500, pc8401a, driver_device, 0, "Nippon Electronic Company", "PC-8500", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/pc8801.c b/src/mame/drivers/pc8801.c
index 9954abcf0c1..9d2a6e58c99 100644
--- a/src/mess/drivers/pc8801.c
+++ b/src/mame/drivers/pc8801.c
@@ -2951,21 +2951,21 @@ ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
-COMP( 1981, pc8801, 0, 0, pc8801, pc88sr, driver_device, 0, "Nippon Electronic Company", "PC-8801", GAME_NOT_WORKING )
-COMP( 1983, pc8801mk2, pc8801, 0, pc8801, pc88sr, driver_device, 0, "Nippon Electronic Company", "PC-8801mkII", GAME_NOT_WORKING )
-COMP( 1985, pc8801mk2sr, pc8801, 0, pc8801, pc88sr, driver_device, 0, "Nippon Electronic Company", "PC-8801mkIISR", GAME_NOT_WORKING )
-//COMP( 1985, pc8801mk2tr, pc8801, 0, pc8801, pc88sr, driver_device, 0, "Nippon Electronic Company", "PC-8801mkIITR", GAME_NOT_WORKING )
-COMP( 1985, pc8801mk2fr, pc8801, 0, pc8801, pc88sr, driver_device, 0, "Nippon Electronic Company", "PC-8801mkIIFR", GAME_NOT_WORKING )
-COMP( 1985, pc8801mk2mr, pc8801, 0, pc8801, pc88sr, driver_device, 0, "Nippon Electronic Company", "PC-8801mkIIMR", GAME_NOT_WORKING )
-
-//COMP( 1986, pc8801fh, 0, 0, pc8801, pc88sr, driver_device, 0, "Nippon Electronic Company", "PC-8801FH", GAME_NOT_WORKING )
-COMP( 1986, pc8801mh, pc8801, 0, pc8801fh, pc88sr, driver_device, 0, "Nippon Electronic Company", "PC-8801MH", GAME_NOT_WORKING )
-COMP( 1987, pc8801fa, pc8801, 0, pc8801fh, pc88sr, driver_device, 0, "Nippon Electronic Company", "PC-8801FA", GAME_NOT_WORKING )
-COMP( 1987, pc8801ma, pc8801, 0, pc8801ma, pc88sr, driver_device, 0, "Nippon Electronic Company", "PC-8801MA", GAME_NOT_WORKING )
-//COMP( 1988, pc8801fe, pc8801, 0, pc8801, pc88sr, driver_device, 0, "Nippon Electronic Company", "PC-8801FE", GAME_NOT_WORKING )
-COMP( 1988, pc8801ma2, pc8801, 0, pc8801ma, pc88sr, driver_device, 0, "Nippon Electronic Company", "PC-8801MA2", GAME_NOT_WORKING )
-//COMP( 1989, pc8801fe2, pc8801, 0, pc8801, pc88sr, driver_device, 0, "Nippon Electronic Company", "PC-8801FE2", GAME_NOT_WORKING )
-COMP( 1989, pc8801mc, pc8801, 0, pc8801mc, pc88sr, driver_device, 0, "Nippon Electronic Company", "PC-8801MC", GAME_NOT_WORKING )
-
-//COMP( 1989, pc98do, 0, 0, pc88va, pc88sr, driver_device, 0, "Nippon Electronic Company", "PC-98DO", GAME_NOT_WORKING )
-//COMP( 1990, pc98dop, 0, 0, pc88va, pc88sr, driver_device, 0, "Nippon Electronic Company", "PC-98DO+", GAME_NOT_WORKING )
+COMP( 1981, pc8801, 0, 0, pc8801, pc88sr, driver_device, 0, "Nippon Electronic Company", "PC-8801", MACHINE_NOT_WORKING )
+COMP( 1983, pc8801mk2, pc8801, 0, pc8801, pc88sr, driver_device, 0, "Nippon Electronic Company", "PC-8801mkII", MACHINE_NOT_WORKING )
+COMP( 1985, pc8801mk2sr, pc8801, 0, pc8801, pc88sr, driver_device, 0, "Nippon Electronic Company", "PC-8801mkIISR", MACHINE_NOT_WORKING )
+//COMP( 1985, pc8801mk2tr, pc8801, 0, pc8801, pc88sr, driver_device, 0, "Nippon Electronic Company", "PC-8801mkIITR", MACHINE_NOT_WORKING )
+COMP( 1985, pc8801mk2fr, pc8801, 0, pc8801, pc88sr, driver_device, 0, "Nippon Electronic Company", "PC-8801mkIIFR", MACHINE_NOT_WORKING )
+COMP( 1985, pc8801mk2mr, pc8801, 0, pc8801, pc88sr, driver_device, 0, "Nippon Electronic Company", "PC-8801mkIIMR", MACHINE_NOT_WORKING )
+
+//COMP( 1986, pc8801fh, 0, 0, pc8801, pc88sr, driver_device, 0, "Nippon Electronic Company", "PC-8801FH", MACHINE_NOT_WORKING )
+COMP( 1986, pc8801mh, pc8801, 0, pc8801fh, pc88sr, driver_device, 0, "Nippon Electronic Company", "PC-8801MH", MACHINE_NOT_WORKING )
+COMP( 1987, pc8801fa, pc8801, 0, pc8801fh, pc88sr, driver_device, 0, "Nippon Electronic Company", "PC-8801FA", MACHINE_NOT_WORKING )
+COMP( 1987, pc8801ma, pc8801, 0, pc8801ma, pc88sr, driver_device, 0, "Nippon Electronic Company", "PC-8801MA", MACHINE_NOT_WORKING )
+//COMP( 1988, pc8801fe, pc8801, 0, pc8801, pc88sr, driver_device, 0, "Nippon Electronic Company", "PC-8801FE", MACHINE_NOT_WORKING )
+COMP( 1988, pc8801ma2, pc8801, 0, pc8801ma, pc88sr, driver_device, 0, "Nippon Electronic Company", "PC-8801MA2", MACHINE_NOT_WORKING )
+//COMP( 1989, pc8801fe2, pc8801, 0, pc8801, pc88sr, driver_device, 0, "Nippon Electronic Company", "PC-8801FE2", MACHINE_NOT_WORKING )
+COMP( 1989, pc8801mc, pc8801, 0, pc8801mc, pc88sr, driver_device, 0, "Nippon Electronic Company", "PC-8801MC", MACHINE_NOT_WORKING )
+
+//COMP( 1989, pc98do, 0, 0, pc88va, pc88sr, driver_device, 0, "Nippon Electronic Company", "PC-98DO", MACHINE_NOT_WORKING )
+//COMP( 1990, pc98dop, 0, 0, pc88va, pc88sr, driver_device, 0, "Nippon Electronic Company", "PC-98DO+", MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/pc88va.c b/src/mame/drivers/pc88va.c
index 0a46c53522e..8999e56b864 100644
--- a/src/mess/drivers/pc88va.c
+++ b/src/mame/drivers/pc88va.c
@@ -1914,6 +1914,6 @@ ROM_END
-COMP( 1987, pc88va, 0, 0, pc88va, pc88va, driver_device, 0, "Nippon Electronic Company", "PC-88VA", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 1988, pc88va2, pc88va, 0, pc88va, pc88va, driver_device, 0, "Nippon Electronic Company", "PC-88VA2", GAME_NOT_WORKING | GAME_NO_SOUND )
-//COMP( 1988, pc88va3, pc88va, 0, pc88va, pc88va, driver_device, 0, "Nippon Electronic Company", "PC-88VA3", GAME_NOT_WORKING )
+COMP( 1987, pc88va, 0, 0, pc88va, pc88va, driver_device, 0, "Nippon Electronic Company", "PC-88VA", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
+COMP( 1988, pc88va2, pc88va, 0, pc88va, pc88va, driver_device, 0, "Nippon Electronic Company", "PC-88VA2", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+//COMP( 1988, pc88va3, pc88va, 0, pc88va, pc88va, driver_device, 0, "Nippon Electronic Company", "PC-88VA3", MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/pc9801.c b/src/mame/drivers/pc9801.c
index cb6337de5b1..739cbe37a10 100644
--- a/src/mess/drivers/pc9801.c
+++ b/src/mame/drivers/pc9801.c
@@ -2215,7 +2215,7 @@ static ADDRESS_MAP_START( pc9801ux_io, AS_IO, 16, pc9801_state )
ADDRESS_MAP_END
static ADDRESS_MAP_START( pc9801rs_map, AS_PROGRAM, 16, pc9801_state )
- AM_RANGE(0x0d8000, 0x0d9fff) AM_ROM AM_REGION("ide",0)
+// AM_RANGE(0x0d8000, 0x0d9fff) AM_ROM AM_REGION("ide",0)
AM_RANGE(0x0da000, 0x0dbfff) AM_RAM // ide ram
AM_RANGE(0xee0000, 0xefffff) AM_READ8(pc9801rs_ipl_r, 0xffff)
AM_RANGE(0xfe0000, 0xffffff) AM_READ8(pc9801rs_ipl_r, 0xffff)
@@ -2421,7 +2421,7 @@ static ADDRESS_MAP_START( pc9821_map, AS_PROGRAM, 32, pc9801_state )
AM_RANGE(0x000a4000, 0x000a4fff) AM_READWRITE8(pc9801rs_knjram_r, pc9801rs_knjram_w, 0xffffffff)
AM_RANGE(0x000a8000, 0x000bffff) AM_READWRITE16(grcg_gvram_r, grcg_gvram_w, 0xffffffff)
AM_RANGE(0x000cc000, 0x000cdfff) AM_ROM AM_REGION("sound_bios",0) //sound BIOS
- AM_RANGE(0x000d8000, 0x000d9fff) AM_ROM AM_REGION("ide",0)
+// AM_RANGE(0x000d8000, 0x000d9fff) AM_ROM AM_REGION("ide",0)
AM_RANGE(0x000da000, 0x000dbfff) AM_RAM // ide ram
AM_RANGE(0x000e0000, 0x000e7fff) AM_READWRITE16(grcg_gvram0_r,grcg_gvram0_w, 0xffffffff)
AM_RANGE(0x000e0000, 0x000fffff) AM_READ8(pc9801rs_ipl_r, 0xffffffff)
@@ -2689,6 +2689,9 @@ static INPUT_PORTS_START( pc9801rs )
PORT_MODIFY("ROM_LOAD")
PORT_BIT( 0x03, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_CONFNAME( 0x04, 0x04, "Load IDE BIOS" )
+ PORT_CONFSETTING( 0x00, DEF_STR( Yes ) )
+ PORT_CONFSETTING( 0x04, DEF_STR( No ) )
// PORT_START("SOUND_CONFIG")
// PORT_CONFNAME( 0x01, 0x00, "Sound Type" )
@@ -3121,6 +3124,11 @@ MACHINE_RESET_MEMBER(pc9801_state,pc9801rs)
m_keyb_press = 0xff; // temp kludge, for PC-9821 booting
// m_has_opna = ioport("SOUND_CONFIG")->read() & 1;
m_maincpu->set_input_line(INPUT_LINE_A20, m_gate_a20);
+
+ if(!(ioport("ROM_LOAD")->read() & 4))
+ m_maincpu->space(AS_PROGRAM).install_rom(0xd8000, 0xd9fff, memregion("ide")->base());
+ else
+ m_maincpu->space(AS_PROGRAM).install_rom(0xd8000, 0xd9fff, memregion("ide")->base() + 0x2000);
}
MACHINE_RESET_MEMBER(pc9801_state,pc9821)
@@ -3432,12 +3440,11 @@ MACHINE_CONFIG_END
/* took from "raw" memory dump, uncomment ROM_FILL if you want to play with it */
#define LOAD_IDE_ROM \
- ROM_REGION( 0x2000, "ide", ROMREGION_ERASEFF ) \
+ ROM_REGION( 0x4000, "ide", ROMREGION_ERASEVAL(0xcb) ) \
ROM_LOAD( "d8000.rom", 0x0000, 0x2000, BAD_DUMP CRC(5dda57cc) SHA1(d0dead41c5b763008a4d777aedddce651eb6dcbb) ) \
ROM_IGNORE( 0x2000 ) \
ROM_IGNORE( 0x2000 ) \
- ROM_IGNORE( 0x2000 ) \
- ROM_FILL( 0x0000, 0x2000, 0xcb )
+ ROM_IGNORE( 0x2000 )
// all of these are half size :/
#define LOAD_KANJI_ROMS \
@@ -3860,20 +3867,20 @@ DRIVER_INIT_MEMBER(pc9801_state,pc9801_kanji)
}
/* Genuine dumps */
-COMP( 1983, pc9801f, 0, 0, pc9801, pc9801, pc9801_state, pc9801_kanji, "Nippon Electronic Company", "PC-9801F", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND)
+COMP( 1983, pc9801f, 0, 0, pc9801, pc9801, pc9801_state, pc9801_kanji, "Nippon Electronic Company", "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, "Nippon Electronic Company", "PC-9801RS", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND) //TODO: not sure about the exact model
-COMP( 1985, pc9801vm, pc9801ux,0, pc9801vm, pc9801rs, pc9801_state, pc9801_kanji, "Nippon Electronic Company", "PC-9801VM", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND)
-COMP( 1987, pc9801ux, 0 ,0, pc9801ux, pc9801rs, pc9801_state, pc9801_kanji, "Nippon Electronic Company", "PC-9801UX", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND)
-COMP( 1988, pc9801rx, pc9801rs,0, pc9801rs, pc9801rs, pc9801_state, pc9801_kanji, "Nippon Electronic Company", "PC-9801RX", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND)
-COMP( 1993, pc9801bx2, pc9801rs,0, pc9801bx2,pc9801rs, pc9801_state, pc9801_kanji, "Nippon Electronic Company", "PC-9801BX2/U2", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND)
-COMP( 1994, pc9821, 0, 0, pc9821, pc9821, pc9801_state, pc9801_kanji, "Nippon Electronic Company", "PC-9821 (98MATE)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND) //TODO: not sure about the exact model
-COMP( 1993, pc9821as, pc9821, 0, pc9821, pc9821, pc9801_state, pc9801_kanji, "Nippon Electronic Company", "PC-9821 (98MATE A)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND)
-COMP( 1993, pc9821ap2, pc9821, 0, pc9821ap2,pc9821, pc9801_state, pc9801_kanji, "Nippon Electronic Company", "PC-9821AP2/U8W (98MATE A)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND)
-COMP( 1994, pc9821xs, pc9821, 0, pc9821, pc9821, pc9801_state, pc9801_kanji, "Nippon Electronic Company", "PC-9821 (98MATE Xs)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND)
-COMP( 1994, pc9821ce2, pc9821, 0, pc9821, pc9821, pc9801_state, pc9801_kanji, "Nippon Electronic Company", "PC-9821 (98MULTi Ce2)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND)
-COMP( 1994, pc9821ne, pc9821, 0, pc9821, pc9821, pc9801_state, pc9801_kanji, "Nippon Electronic Company", "PC-9821 (98NOTE)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND)
-COMP( 1994, pc486mu, pc9821, 0, pc9821, pc9821, pc9801_state, pc9801_kanji, "Epson", "PC-486MU", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 1998, pc9821v13, pc9821, 0, pc9821, pc9821, pc9801_state, pc9801_kanji, "Nippon Electronic Company", "PC-9821 (98MATE VALUESTAR 13)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND)
-COMP( 1998, pc9821v20, pc9821, 0, pc9821v20,pc9821, pc9801_state, pc9801_kanji, "Nippon Electronic Company", "PC-9821 (98MATE VALUESTAR 20)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND)
+COMP( 1989, pc9801rs, 0 ,0, pc9801rs, pc9801rs, pc9801_state, pc9801_kanji, "Nippon Electronic Company", "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, "Nippon Electronic Company", "PC-9801VM", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
+COMP( 1987, pc9801ux, 0 ,0, pc9801ux, pc9801rs, pc9801_state, pc9801_kanji, "Nippon Electronic Company", "PC-9801UX", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
+COMP( 1988, pc9801rx, pc9801rs,0, pc9801rs, pc9801rs, pc9801_state, pc9801_kanji, "Nippon Electronic Company", "PC-9801RX", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
+COMP( 1993, pc9801bx2, pc9801rs,0, pc9801bx2,pc9801rs, pc9801_state, pc9801_kanji, "Nippon Electronic Company", "PC-9801BX2/U2", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
+COMP( 1994, pc9821, 0, 0, pc9821, pc9821, pc9801_state, pc9801_kanji, "Nippon Electronic Company", "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, "Nippon Electronic Company", "PC-9821 (98MATE A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
+COMP( 1993, pc9821ap2, pc9821, 0, pc9821ap2,pc9821, pc9801_state, pc9801_kanji, "Nippon Electronic Company", "PC-9821AP2/U8W (98MATE A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
+COMP( 1994, pc9821xs, pc9821, 0, pc9821, pc9821, pc9801_state, pc9801_kanji, "Nippon Electronic Company", "PC-9821 (98MATE Xs)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
+COMP( 1994, pc9821ce2, pc9821, 0, pc9821, pc9821, pc9801_state, pc9801_kanji, "Nippon Electronic Company", "PC-9821 (98MULTi Ce2)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
+COMP( 1994, pc9821ne, pc9821, 0, pc9821, pc9821, pc9801_state, pc9801_kanji, "Nippon Electronic Company", "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, "Nippon Electronic Company", "PC-9821 (98MATE VALUESTAR 13)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
+COMP( 1998, pc9821v20, pc9821, 0, pc9821v20,pc9821, pc9801_state, pc9801_kanji, "Nippon Electronic Company", "PC-9821 (98MATE VALUESTAR 20)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
diff --git a/src/mame/drivers/pcat_dyn.c b/src/mame/drivers/pcat_dyn.c
index c0f9eedc008..f56d161178c 100644
--- a/src/mame/drivers/pcat_dyn.c
+++ b/src/mame/drivers/pcat_dyn.c
@@ -167,5 +167,5 @@ DRIVER_INIT_MEMBER(pcat_dyn_state,pcat_dyn)
{
}
-GAME( 1995, toursol, 0, pcat_dyn, pcat_dyn, pcat_dyn_state, pcat_dyn, ROT0, "Dynamo", "Tournament Solitaire (V1.06, 08/03/95)", GAME_NOT_WORKING|GAME_NO_SOUND )
-GAME( 1995, toursol1, toursol, pcat_dyn, pcat_dyn, pcat_dyn_state, pcat_dyn, ROT0, "Dynamo", "Tournament Solitaire (V1.04, 06/22/95)", GAME_NOT_WORKING|GAME_NO_SOUND )
+GAME( 1995, toursol, 0, pcat_dyn, pcat_dyn, pcat_dyn_state, pcat_dyn, ROT0, "Dynamo", "Tournament Solitaire (V1.06, 08/03/95)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND )
+GAME( 1995, toursol1, toursol, pcat_dyn, pcat_dyn, pcat_dyn_state, pcat_dyn, ROT0, "Dynamo", "Tournament Solitaire (V1.04, 06/22/95)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/pcat_nit.c b/src/mame/drivers/pcat_nit.c
index 50fe4ebe7a3..71819791584 100644
--- a/src/mame/drivers/pcat_nit.c
+++ b/src/mame/drivers/pcat_nit.c
@@ -417,9 +417,9 @@ DRIVER_INIT_MEMBER(pcat_nit_state,pcat_nit)
machine().device<nvram_device>("nvram")->set_base(m_banked_nvram, 0x2000);
}
-GAME( 1993, streetg, 0, pcat_nit, pcat_nit, pcat_nit_state, pcat_nit, ROT0, "New Image Technologies", "Street Games (Revision 4)", GAME_NOT_WORKING|GAME_NO_SOUND )
-GAME( 1993, streetgr3, streetg, pcat_nit, pcat_nit, pcat_nit_state, pcat_nit, ROT0, "New Image Technologies", "Street Games (Revision 3)", GAME_NOT_WORKING|GAME_NO_SOUND )
-GAME( 1993, streetg2, 0, pcat_nit, pcat_nit, pcat_nit_state, pcat_nit, ROT0, "New Image Technologies", "Street Games II (Revision 7C)", GAME_NO_SOUND ) // Street Games II+, 10-0007-07 083194
-GAME( 1993, streetg2r5, streetg2, pcat_nit, pcat_nit, pcat_nit_state, pcat_nit, ROT0, "New Image Technologies", "Street Games II (Revision 5)", GAME_NO_SOUND )
-GAME( 1994, bonanza, 0, bonanza, pcat_nit, pcat_nit_state, pcat_nit, ROT0, "New Image Technologies", "Touchstar Bonanza (Revision 3)", GAME_NO_SOUND ) // Bonanza 10-0018-03 090894
-GAME( 1994, bonanzar2, bonanza, bonanza, pcat_nit, pcat_nit_state, pcat_nit, ROT0, "New Image Technologies", "Touchstar Bonanza (Revision 2)", GAME_NO_SOUND ) // Bonanza 10-0018-02 081794
+GAME( 1993, streetg, 0, pcat_nit, pcat_nit, pcat_nit_state, pcat_nit, ROT0, "New Image Technologies", "Street Games (Revision 4)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND )
+GAME( 1993, streetgr3, streetg, pcat_nit, pcat_nit, pcat_nit_state, pcat_nit, ROT0, "New Image Technologies", "Street Games (Revision 3)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND )
+GAME( 1993, streetg2, 0, pcat_nit, pcat_nit, pcat_nit_state, pcat_nit, ROT0, "New Image Technologies", "Street Games II (Revision 7C)", MACHINE_NO_SOUND ) // Street Games II+, 10-0007-07 083194
+GAME( 1993, streetg2r5, streetg2, pcat_nit, pcat_nit, pcat_nit_state, pcat_nit, ROT0, "New Image Technologies", "Street Games II (Revision 5)", MACHINE_NO_SOUND )
+GAME( 1994, bonanza, 0, bonanza, pcat_nit, pcat_nit_state, pcat_nit, ROT0, "New Image Technologies", "Touchstar Bonanza (Revision 3)", MACHINE_NO_SOUND ) // Bonanza 10-0018-03 090894
+GAME( 1994, bonanzar2, bonanza, bonanza, pcat_nit, pcat_nit_state, pcat_nit, ROT0, "New Image Technologies", "Touchstar Bonanza (Revision 2)", MACHINE_NO_SOUND ) // Bonanza 10-0018-02 081794
diff --git a/src/mess/drivers/pcd.c b/src/mame/drivers/pcd.c
index 06f3565e543..8930cc3ed6d 100644
--- a/src/mess/drivers/pcd.c
+++ b/src/mame/drivers/pcd.c
@@ -4,7 +4,7 @@
Siemens PC-D
- Skeleton driver
+ For PC-X HDD should have 306,4,9 chs at 1024Bps or 18 at 512Bps
***************************************************************************/
@@ -17,10 +17,11 @@
#include "machine/wd_fdc.h"
#include "machine/mc146818.h"
#include "machine/pcd_kbd.h"
+#include "video/pcd.h"
#include "sound/speaker.h"
-#include "video/scn2674.h"
#include "formats/pc_dsk.h"
#include "bus/scsi/omti5100.h"
+#include "bus/rs232/rs232.h"
//**************************************************************************
// TYPE DEFINITIONS
@@ -37,14 +38,11 @@ public:
m_speaker(*this, "speaker"),
m_fdc(*this, "fdc"),
m_rtc(*this, "rtc"),
- m_crtc(*this, "crtc"),
- m_palette(*this, "palette"),
- m_gfxdecode(*this, "gfxdecode"),
m_scsi(*this, "scsi"),
m_scsi_data_out(*this, "scsi_data_out"),
m_scsi_data_in(*this, "scsi_data_in"),
- m_vram(*this, "vram"),
- m_charram(8*1024)
+ m_ram(*this, "ram"),
+ m_req_hack(NULL)
{ }
DECLARE_READ8_MEMBER( irq_callback );
@@ -59,17 +57,16 @@ public:
DECLARE_WRITE8_MEMBER( stat_w );
DECLARE_READ8_MEMBER( led_r );
DECLARE_WRITE8_MEMBER( led_w );
- DECLARE_READ8_MEMBER( detect_r );
- DECLARE_WRITE8_MEMBER( detect_w );
DECLARE_READ16_MEMBER( dskctl_r );
DECLARE_WRITE16_MEMBER( dskctl_w );
- DECLARE_READ8_MEMBER( mcu_r );
- DECLARE_WRITE8_MEMBER( mcu_w );
+
DECLARE_READ8_MEMBER( scsi_r );
DECLARE_WRITE8_MEMBER( scsi_w );
- DECLARE_WRITE8_MEMBER( vram_sw_w );
- DECLARE_WRITE16_MEMBER( vram_w );
- SCN2674_DRAW_CHARACTER_MEMBER(display_pixels);
+ DECLARE_READ16_MEMBER( mmu_r );
+ DECLARE_WRITE16_MEMBER( mmu_w );
+ DECLARE_READ16_MEMBER( mem_r );
+ DECLARE_WRITE16_MEMBER( mem_w );
+
DECLARE_FLOPPY_FORMATS( floppy_formats );
DECLARE_WRITE_LINE_MEMBER(write_scsi_bsy);
DECLARE_WRITE_LINE_MEMBER(write_scsi_cd);
@@ -90,18 +87,22 @@ private:
required_device<speaker_sound_device> m_speaker;
required_device<wd2793_t> m_fdc;
required_device<mc146818_device> m_rtc;
- required_device<scn2674_device> m_crtc;
- required_device<palette_device> m_palette;
- required_device<gfxdecode_device> m_gfxdecode;
required_device<SCSI_PORT_DEVICE> m_scsi;
required_device<output_latch_device> m_scsi_data_out;
required_device<input_buffer_device> m_scsi_data_in;
- required_shared_ptr<UINT16> m_vram;
- dynamic_buffer m_charram;
- UINT8 m_stat, m_led, m_vram_sw;
+ required_device<ram_device> m_ram;
+ UINT8 m_stat, m_led;
int m_msg, m_bsy, m_io, m_cd, m_req, m_rst;
emu_timer *m_req_hack;
UINT16 m_dskctl;
+ struct {
+ UINT16 ctl;
+ UINT16 regs[1024];
+ int type;
+ bool sc;
+ } m_mmu;
+
+ void check_scsi_irq();
};
@@ -109,19 +110,6 @@ private:
// MACHINE EMULATION
//**************************************************************************
-static const gfx_layout pcd_charlayout =
-{
- 8, 14, /* 8 x 14 characters */
- 512, /* 512 characters */
- 1, /* 1 bits per pixel */
- { 0 }, /* no bitplanes */
- /* x offsets */
- { 0, 1, 2, 3, 4, 5, 6, 7 },
- /* y offsets */
- { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8 },
- 8*16
-};
-
void pcd_state::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
{
// TODO: remove this hack
@@ -131,8 +119,9 @@ void pcd_state::device_timer(emu_timer &timer, device_timer_id id, int param, vo
void pcd_state::machine_start()
{
- m_gfxdecode->set_gfx(0, global_alloc(gfx_element(machine().device<palette_device>("palette"), pcd_charlayout, &m_charram[0], 0, 1, 0)));
m_req_hack = timer_alloc();
+ save_item(NAME(m_mmu.ctl));
+ save_item(NAME(m_mmu.regs));
}
void pcd_state::machine_reset()
@@ -140,8 +129,13 @@ void pcd_state::machine_reset()
m_stat = 0;
m_led = 0;
m_dskctl = 0;
- m_vram_sw = 1;
m_rst = 0;
+ m_mmu.ctl = 0;
+ m_mmu.sc = false;
+ if(ioport("mmu"))
+ m_mmu.type = ioport("mmu")->read();
+ else
+ m_mmu.type = 0;
}
READ8_MEMBER( pcd_state::irq_callback )
@@ -157,23 +151,8 @@ TIMER_DEVICE_CALLBACK_MEMBER( pcd_state::timer0_tick )
WRITE_LINE_MEMBER( pcd_state::i186_timer1_w )
{
- m_speaker->level_w(state);
-}
-
-WRITE16_MEMBER( pcd_state::vram_w )
-{
- if(m_vram_sw)
- COMBINE_DATA(&m_vram[offset]);
- else if(mem_mask & 0xff)
- {
- m_charram[offset & 0x1fff] = data;
- m_gfxdecode->gfx(0)->mark_dirty(offset/16);
- }
-}
-
-WRITE8_MEMBER( pcd_state::vram_sw_w )
-{
- m_vram_sw = data & 1;
+ if(m_dskctl & 0x20)
+ m_speaker->level_w(state);
}
READ8_MEMBER( pcd_state::nmi_io_r )
@@ -181,7 +160,7 @@ READ8_MEMBER( pcd_state::nmi_io_r )
if(space.debugger_access())
return 0;
logerror("%s: unmapped %s %04x\n", machine().describe_context(), space.name(), offset);
- m_stat |= 8;
+ m_stat |= 0xfd;
m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
return 0;
}
@@ -191,7 +170,7 @@ WRITE8_MEMBER( pcd_state::nmi_io_w )
if(space.debugger_access())
return;
logerror("%s: unmapped %s %04x\n", machine().describe_context(), space.name(), offset);
- m_stat |= 8;
+ m_stat |= 0xfd;
m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
}
@@ -217,24 +196,6 @@ WRITE8_MEMBER( pcd_state::stat_w )
m_stat &= ~data;
}
-READ8_MEMBER( pcd_state::detect_r )
-{
- return 0;
-}
-
-WRITE8_MEMBER( pcd_state::detect_w )
-{
-}
-
-READ8_MEMBER( pcd_state::mcu_r )
-{
- return 0x20;
-}
-
-WRITE8_MEMBER( pcd_state::mcu_w )
-{
-}
-
READ16_MEMBER( pcd_state::dskctl_r )
{
return m_dskctl;
@@ -262,6 +223,7 @@ WRITE16_MEMBER( pcd_state::dskctl_w )
floppy1->mon_w(!(m_dskctl & 4));
floppy1->ss_w((m_dskctl & 8) != 0);
}
+ m_fdc->dden_w((m_dskctl & 0x10) ? 1 : 0);
}
READ8_MEMBER( pcd_state::led_r )
@@ -281,22 +243,33 @@ WRITE8_MEMBER( pcd_state::led_w )
m_led = data;
}
-SCN2674_DRAW_CHARACTER_MEMBER(pcd_state::display_pixels)
+READ16_MEMBER( pcd_state::mmu_r )
{
- if(lg)
+ UINT16 data = m_mmu.regs[((m_mmu.ctl & 0x1f) << 5) | ((offset >> 2) & 0x1f)];
+ //logerror("%s: mmu read %04x %04x\n", machine().describe_context(), (offset << 1) + 0x8000, data);
+ if(!offset)
+ return m_mmu.ctl;
+ else if((offset >= 0x200) && (offset < 0x300) && !(offset & 3))
+ return (data << 4) | (data >> 12) | (m_mmu.sc && (offset == 0x200) ? 0xc0 : 0);
+ else if(offset == 0x400)
{
- UINT16 data = m_vram[address];
- data = (data >> 8) | (data << 8);
- for(int i = 0; i < 16; i++)
- bitmap.pix32(y, x + i) = m_palette->pen((data & (1 << (15 - i))) ? 1 : 0);
+ m_mmu.sc = false;
+ m_pic1->ir0_w(CLEAR_LINE);
}
- else
+ return 0;
+}
+
+WRITE16_MEMBER( pcd_state::mmu_w )
+{
+ //logerror("%s: mmu write %04x %04x\n", machine().describe_context(), (offset << 1) + 0x8000, data);
+ if(!offset)
+ m_mmu.ctl = data;
+ else if((offset >= 0x200) && (offset < 0x300) && !(offset & 3))
+ m_mmu.regs[((m_mmu.ctl & 0x1f) << 5) | ((offset >> 2) & 0x1f)] = (data >> 4) | (data << 12);
+ else if(offset == 0x400)
{
- UINT8 data = m_charram[(m_vram[address] & 0xff) * 16 + linecount];
- if(cursor && blink)
- data = 0xff;
- for(int i = 0; i < 8; i++)
- bitmap.pix32(y, x + i) = m_palette->pen((data & (1 << (7 - i))) ? 1 : 0);
+ m_mmu.sc = true;
+ m_pic1->ir0_w(ASSERT_LINE);
}
}
@@ -329,11 +302,7 @@ WRITE8_MEMBER(pcd_state::scsi_w)
case 0:
m_scsi_data_out->write(data);
m_scsi->write_ack(1);
- if(m_cd)
- {
- m_maincpu->drq0_w(0);
- m_req_hack->adjust(attotime::never);
- }
+ m_maincpu->drq0_w(0);
break;
case 1:
if(data & 4)
@@ -358,6 +327,11 @@ WRITE8_MEMBER(pcd_state::scsi_w)
}
}
+void pcd_state::check_scsi_irq()
+{
+ m_pic1->ir5_w(m_io && m_cd && m_req);
+}
+
WRITE_LINE_MEMBER(pcd_state::write_scsi_bsy)
{
m_bsy = state ? 1 : 0;
@@ -366,10 +340,14 @@ WRITE_LINE_MEMBER(pcd_state::write_scsi_bsy)
WRITE_LINE_MEMBER(pcd_state::write_scsi_cd)
{
m_cd = state ? 1 : 0;
+ check_scsi_irq();
}
WRITE_LINE_MEMBER(pcd_state::write_scsi_io)
{
m_io = state ? 1 : 0;
+ if(state)
+ m_scsi_data_out->write(0);
+ check_scsi_irq();
}
WRITE_LINE_MEMBER(pcd_state::write_scsi_msg)
{
@@ -393,15 +371,63 @@ WRITE_LINE_MEMBER(pcd_state::write_scsi_req)
}
}
else
+ {
+ if(m_req_hack) // this might be called before machine_start
+ m_req_hack->adjust(attotime::never);
m_scsi->write_ack(0);
+ }
+ check_scsi_irq();
+}
+
+WRITE16_MEMBER(pcd_state::mem_w)
+{
+ UINT16 *ram = (UINT16 *)m_ram->pointer();
+ if((m_mmu.ctl & 0x20) && m_mmu.type)
+ {
+ UINT16 reg;
+ if(m_mmu.type == 2)
+ reg = m_mmu.regs[((offset >> 10) & 0xff) | ((m_mmu.ctl & 0x18) << 5)];
+ else
+ reg = m_mmu.regs[((offset >> 10) & 0x7f) | ((m_mmu.ctl & 0x1c) << 5)];
+ if(!reg && !space.debugger_access())
+ {
+ offset <<= 1;
+ logerror("%s: Null mmu entry %06x\n", machine().describe_context(), offset);
+ nmi_io_w(space, offset, data, mem_mask);
+ return;
+ }
+ offset = ((reg << 3) & 0x7fc00) | (offset & 0x3ff);
+ }
+ COMBINE_DATA(&ram[offset]);
+}
+
+READ16_MEMBER(pcd_state::mem_r)
+{
+ UINT16 *ram = (UINT16 *)m_ram->pointer();
+ if((m_mmu.ctl & 0x20) && m_mmu.type)
+ {
+ UINT16 reg;
+ if(m_mmu.type == 2)
+ reg = m_mmu.regs[((offset >> 10) & 0xff) | ((m_mmu.ctl & 0x18) << 5)];
+ else
+ reg = m_mmu.regs[((offset >> 10) & 0x7f) | ((m_mmu.ctl & 0x1c) << 5)];
+ if(!reg && !space.debugger_access())
+ {
+ offset <<= 1;
+ logerror("%s: Null mmu entry %06x\n", machine().describe_context(), offset);
+ return nmi_io_r(space, offset, mem_mask);
+ }
+ offset = ((reg << 3) & 0x7fc00) | (offset & 0x3ff);
+ }
+ return ram[offset];
}
+
//**************************************************************************
// ADDRESS MAPS
//**************************************************************************
static ADDRESS_MAP_START( pcd_map, AS_PROGRAM, 16, pcd_state )
- AM_RANGE(0x00000, 0x7ffff) AM_RAM // fixed 512k for now
- AM_RANGE(0xf0000, 0xf7fff) AM_READONLY AM_WRITE(vram_w) AM_SHARE("vram")
+ AM_RANGE(0x00000, 0x7ffff) AM_READWRITE(mem_r, mem_w)
AM_RANGE(0xfc000, 0xfffff) AM_ROM AM_REGION("bios", 0)
AM_RANGE(0x00000, 0xfffff) AM_READWRITE8(nmi_io_r, nmi_io_w, 0xffff)
ADDRESS_MAP_END
@@ -418,18 +444,20 @@ static ADDRESS_MAP_START( pcd_io, AS_IO, 16, pcd_state )
AM_RANGE(0xf900, 0xf903) AM_DEVREADWRITE8("fdc", wd2793_t, 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, 0xf98f) AM_DEVWRITE8("crtc", scn2674_device, write, 0x00ff)
- AM_RANGE(0xf980, 0xf98f) AM_DEVREAD8("crtc", scn2674_device, read, 0xff00)
- AM_RANGE(0xf9a0, 0xf9a1) AM_WRITE8(vram_sw_w, 0x00ff)
- AM_RANGE(0xf9b0, 0xf9b3) AM_READWRITE8(mcu_r, mcu_w, 0x00ff) // 8741 comms
+ AM_RANGE(0xf980, 0xf9bf) AM_DEVICE("video", pcdx_video_device, map)
AM_RANGE(0xf9c0, 0xf9c3) AM_DEVREADWRITE8("usart1",mc2661_device,read,write,0xffff) // UARTs
AM_RANGE(0xf9d0, 0xf9d3) AM_DEVREADWRITE8("usart2",mc2661_device,read,write,0xffff)
AM_RANGE(0xf9e0, 0xf9e3) AM_DEVREADWRITE8("usart3",mc2661_device,read,write,0xffff)
// AM_RANGE(0xfa00, 0xfa7f) // pcs4-n (peripheral chip select)
- AM_RANGE(0xfb00, 0xfb01) AM_READWRITE8(detect_r, detect_w, 0xff00) // expansion card detection?
AM_RANGE(0xfb00, 0xffff) AM_READWRITE8(nmi_io_r, nmi_io_w, 0xffff)
ADDRESS_MAP_END
+static ADDRESS_MAP_START( pcx_io, AS_IO, 16, pcd_state )
+ ADDRESS_MAP_UNMAP_HIGH
+ AM_RANGE(0x8000, 0x8fff) AM_READWRITE(mmu_r, mmu_w)
+ AM_RANGE(0xfb00, 0xfb01) AM_READWRITE8(nmi_io_r, nmi_io_w, 0xff00)
+ AM_IMPORT_FROM(pcd_io)
+ADDRESS_MAP_END
//**************************************************************************
// MACHINE DRIVERS
@@ -444,6 +472,14 @@ FLOPPY_FORMATS_MEMBER( pcd_state::floppy_formats )
FLOPPY_PC_FORMAT
FLOPPY_FORMATS_END
+static INPUT_PORTS_START(pcx)
+ PORT_START("mmu")
+ PORT_CONFNAME(0x03, 0x00, "MMU Type")
+ PORT_CONFSETTING(0x00, "None")
+ PORT_CONFSETTING(0x01, "SINIX 1.0")
+ PORT_CONFSETTING(0x02, "SINIX 1.2")
+INPUT_PORTS_END
+
static MACHINE_CONFIG_START( pcd, pcd_state )
MCFG_CPU_ADD("maincpu", I80186, XTAL_16MHz)
MCFG_CPU_PROGRAM_MAP(pcd_map)
@@ -451,19 +487,15 @@ static MACHINE_CONFIG_START( pcd, pcd_state )
MCFG_80186_TMROUT1_HANDLER(WRITELINE(pcd_state, i186_timer1_w))
MCFG_80186_IRQ_SLAVE_ACK(READ8(pcd_state, irq_callback))
- MCFG_CPU_ADD("graphics", I8741, XTAL_16MHz/2)
- MCFG_DEVICE_DISABLE()
-
MCFG_TIMER_DRIVER_ADD_PERIODIC("timer0_tick", pcd_state, timer0_tick, attotime::from_hz(XTAL_16MHz / 24)) // adjusted to pass post
MCFG_PIC8259_ADD("pic1", DEVWRITELINE("maincpu", i80186_cpu_device, int0_w), VCC, NULL)
MCFG_PIC8259_ADD("pic2", DEVWRITELINE("maincpu", i80186_cpu_device, int1_w), VCC, NULL)
-#if 0
+ MCFG_DEVICE_ADD("video", PCD_VIDEO, 0)
+
MCFG_RAM_ADD(RAM_TAG)
- MCFG_RAM_DEFAULT_SIZE("256K")
- MCFG_RAM_EXTRA_OPTIONS("512K,1M")
-#endif
+ MCFG_RAM_DEFAULT_SIZE("1M")
// nvram
MCFG_NVRAM_ADD_1FILL("nvram")
@@ -482,6 +514,7 @@ static MACHINE_CONFIG_START( pcd, pcd_state )
MCFG_DEVICE_ADD("usart1", MC2661, XTAL_4_9152MHz)
MCFG_MC2661_RXRDY_HANDLER(DEVWRITELINE("pic1", pic8259_device, ir3_w))
MCFG_MC2661_TXRDY_HANDLER(DEVWRITELINE("pic1", pic8259_device, ir3_w))
+ MCFG_MC2661_TXD_HANDLER(DEVWRITELINE("rs232_1", rs232_port_device, write_txd))
MCFG_DEVICE_ADD("usart2", MC2661, XTAL_4_9152MHz)
MCFG_MC2661_RXRDY_HANDLER(DEVWRITELINE("pic1", pic8259_device, ir2_w))
//MCFG_MC2661_TXRDY_HANDLER(DEVWRITELINE("pic1", pic8259_device, ir2_w)) // this gets stuck high causing the keyboard to not work
@@ -489,30 +522,24 @@ static MACHINE_CONFIG_START( pcd, pcd_state )
MCFG_DEVICE_ADD("usart3", MC2661, XTAL_4_9152MHz)
MCFG_MC2661_RXRDY_HANDLER(DEVWRITELINE("pic1", pic8259_device, ir4_w))
MCFG_MC2661_TXRDY_HANDLER(DEVWRITELINE("pic1", pic8259_device, ir4_w))
+ MCFG_MC2661_TXD_HANDLER(DEVWRITELINE("rs232_2", rs232_port_device, write_txd))
+
+ MCFG_RS232_PORT_ADD("rs232_1", default_rs232_devices, NULL)
+ MCFG_RS232_RXD_HANDLER(DEVWRITELINE("usart1", mc2661_device, rx_w))
+ MCFG_RS232_PORT_ADD("rs232_2", default_rs232_devices, NULL)
+ MCFG_RS232_RXD_HANDLER(DEVWRITELINE("usart3", mc2661_device, rx_w))
// sound hardware
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
- // video hardware
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_SIZE(640, 350)
- MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 349)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_UPDATE_DEVICE("crtc", scn2674_device, screen_update)
-
- MCFG_GFXDECODE_ADD("gfxdecode", "palette", empty)
- MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette")
-
- MCFG_SCN2674_VIDEO_ADD("crtc", 0, NULL);
- MCFG_SCN2674_TEXT_CHARACTER_WIDTH(8)
- MCFG_SCN2674_GFX_CHARACTER_WIDTH(16)
- MCFG_SCN2674_DRAW_CHARACTER_CALLBACK_OWNER(pcd_state, display_pixels)
-
// rtc
MCFG_MC146818_ADD("rtc", XTAL_32_768kHz)
MCFG_MC146818_IRQ_HANDLER(DEVWRITELINE("pic1", pic8259_device, ir7_w))
+ MCFG_MC146818_BINARY(true)
+ MCFG_MC146818_EPOCH(1900)
+ MCFG_MC146818_24_12(true)
MCFG_DEVICE_ADD("keyboard", PCD_KEYBOARD, 0)
MCFG_PCD_KEYBOARD_OUT_TX_HANDLER(DEVWRITELINE("usart2", mc2661_device, rx_w))
@@ -530,6 +557,19 @@ static MACHINE_CONFIG_START( pcd, pcd_state )
MCFG_SCSIDEV_ADD("scsi:1", "harddisk", OMTI5100, SCSI_ID_0)
MACHINE_CONFIG_END
+MACHINE_CONFIG_DERIVED(pcx, pcd)
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_IO_MAP(pcx_io)
+
+ MCFG_DEVICE_REPLACE("video", PCX_VIDEO, 0)
+ MCFG_PCX_VIDEO_TXD_HANDLER(DEVWRITELINE("keyboard", pcd_keyboard_device, t0_w))
+
+ MCFG_DEVICE_MODIFY("keyboard")
+ MCFG_PCD_KEYBOARD_OUT_TX_HANDLER(DEVWRITELINE("video", pcx_video_device, rx_w))
+
+ MCFG_DEVICE_MODIFY("usart2")
+ MCFG_MC2661_TXD_HANDLER(NULL)
+MACHINE_CONFIG_END
//**************************************************************************
// ROM DEFINITIONS
@@ -543,15 +583,21 @@ ROM_START( pcd )
ROM_SYSTEM_BIOS(1, "v3", "V3 GS4") // from mainboard SYBAC S26361-D359 V3 GS4
ROMX_LOAD("361d0359.d42", 0x0001, 0x2000, CRC(5b4461e4) SHA1(db6756aeabb2e6d3921dc7571a5bed3497b964bf), ROM_SKIP(1) | ROM_BIOS(2))
ROMX_LOAD("361d0359.d43", 0x0000, 0x2000, CRC(71c3189d) SHA1(e8dd6c632bfc833074d3a833ea7f59bb5460f313), ROM_SKIP(1) | ROM_BIOS(2))
-
- // gfx card (scn2674 with 8741), to be moved
- ROM_REGION(0x400, "graphics", 0)
- ROM_LOAD("s36361-d321-v1.bin", 0x000, 0x400, CRC(69baeb2a) SHA1(98b9cd0f38c51b4988a3aed0efcf004bedd115ff))
ROM_END
+ROM_START( pcx )
+ ROM_REGION(0x4000, "bios", 0)
+ ROM_SYSTEM_BIOS(0, "v2", "V2 GS") // from mainboard SYBAC S26361-D359 V2 GS
+ ROMX_LOAD("s26361-d359.d42", 0x0001, 0x2000, CRC(e20244dd) SHA1(0ebc5ddb93baacd9106f1917380de58aac64fe73), ROM_SKIP(1) | ROM_BIOS(1))
+ ROMX_LOAD("s26361-d359.d43", 0x0000, 0x2000, CRC(e03db2ec) SHA1(fcae8b0c9e7543706817b0a53872826633361fda), ROM_SKIP(1) | ROM_BIOS(1))
+ ROM_SYSTEM_BIOS(1, "v3", "V3 GS4") // from mainboard SYBAC S26361-D359 V3 GS4
+ ROMX_LOAD("361d0359.d42", 0x0001, 0x2000, CRC(5b4461e4) SHA1(db6756aeabb2e6d3921dc7571a5bed3497b964bf), ROM_SKIP(1) | ROM_BIOS(2))
+ ROMX_LOAD("361d0359.d43", 0x0000, 0x2000, CRC(71c3189d) SHA1(e8dd6c632bfc833074d3a833ea7f59bb5460f313), ROM_SKIP(1) | ROM_BIOS(2))
+ROM_END
//**************************************************************************
// GAME DRIVERS
//**************************************************************************
-COMP( 1984, pcd, 0, 0, pcd, 0, driver_device, 0, "Siemens", "PC-D", GAME_NOT_WORKING )
+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 )
diff --git a/src/mess/drivers/pce.c b/src/mame/drivers/pce.c
index f5db1edda7c..9153ec14c0b 100644
--- a/src/mess/drivers/pce.c
+++ b/src/mame/drivers/pce.c
@@ -69,7 +69,7 @@ Super System Card:
/* todo: alternate forms of input (multitap, mouse, etc.) */
static INPUT_PORTS_START( pce )
- PORT_START("JOY_P1")
+ PORT_START("JOY_P.0")
/* II is left of I on the original pad so we map them in reverse order */
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Button I") PORT_PLAYER(1) PORT_CONDITION("JOY_TYPE", 0x0003, EQUALS, 0x0000)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Button II") PORT_PLAYER(1) PORT_CONDITION("JOY_TYPE", 0x0003, EQUALS, 0x0000)
@@ -80,7 +80,7 @@ static INPUT_PORTS_START( pce )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1) PORT_CONDITION("JOY_TYPE", 0x0003, EQUALS, 0x0000)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1) PORT_CONDITION("JOY_TYPE", 0x0003, EQUALS, 0x0000)
- PORT_START("JOY_P2")
+ PORT_START("JOY_P.1")
/* II is left of I on the original pad so we map them in reverse order */
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P2 Button I") PORT_PLAYER(2) PORT_CONDITION("JOY_TYPE", 0x000c, EQUALS, 0x0000)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P2 Button II") PORT_PLAYER(2) PORT_CONDITION("JOY_TYPE", 0x000c, EQUALS, 0x0000)
@@ -91,7 +91,7 @@ static INPUT_PORTS_START( pce )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) PORT_CONDITION("JOY_TYPE", 0x000c, EQUALS, 0x0000)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) PORT_CONDITION("JOY_TYPE", 0x000c, EQUALS, 0x0000)
- PORT_START("JOY_P3")
+ PORT_START("JOY_P.2")
/* II is left of I on the original pad so we map them in reverse order */
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P3 Button I") PORT_PLAYER(3) PORT_CONDITION("JOY_TYPE", 0x0030, EQUALS, 0x0000)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P3 Button II") PORT_PLAYER(3) PORT_CONDITION("JOY_TYPE", 0x0030, EQUALS, 0x0000)
@@ -102,7 +102,7 @@ static INPUT_PORTS_START( pce )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(3) PORT_CONDITION("JOY_TYPE", 0x0030, EQUALS, 0x0000)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(3) PORT_CONDITION("JOY_TYPE", 0x0030, EQUALS, 0x0000)
- PORT_START("JOY_P4")
+ PORT_START("JOY_P.3")
/* II is left of I on the original pad so we map them in reverse order */
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P4 Button I") PORT_PLAYER(4) PORT_CONDITION("JOY_TYPE", 0x00c0, EQUALS, 0x0000)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P4 Button II") PORT_PLAYER(4) PORT_CONDITION("JOY_TYPE", 0x00c0, EQUALS, 0x0000)
@@ -113,7 +113,7 @@ static INPUT_PORTS_START( pce )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(4) PORT_CONDITION("JOY_TYPE", 0x00c0, EQUALS, 0x0000)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(4) PORT_CONDITION("JOY_TYPE", 0x00c0, EQUALS, 0x0000)
- PORT_START("JOY_P5")
+ PORT_START("JOY_P.4")
/* II is left of I on the original pad so we map them in reverse order */
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P5 Button I") PORT_PLAYER(5) PORT_CONDITION("JOY_TYPE", 0x0300, EQUALS, 0x0000)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P5 Button II") PORT_PLAYER(5) PORT_CONDITION("JOY_TYPE", 0x0300, EQUALS, 0x0000)
@@ -124,7 +124,7 @@ static INPUT_PORTS_START( pce )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(5) PORT_CONDITION("JOY_TYPE", 0x0300, EQUALS, 0x0000)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(5) PORT_CONDITION("JOY_TYPE", 0x0300, EQUALS, 0x0000)
- PORT_START("JOY6B_P1")
+ PORT_START("JOY6B_P.0")
/* II is left of I on the original pad so we map them in reverse order */
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Button I") PORT_PLAYER(1) PORT_CONDITION("JOY_TYPE", 0x0003, EQUALS, 0x0002)
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 Button II") PORT_PLAYER(1) PORT_CONDITION("JOY_TYPE", 0x0003, EQUALS, 0x0002)
@@ -140,7 +140,7 @@ static INPUT_PORTS_START( pce )
PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("P1 Button VI") PORT_PLAYER(1) PORT_CONDITION("JOY_TYPE", 0x0003, EQUALS, 0x0002)
PORT_BIT( 0xf000, IP_ACTIVE_HIGH,IPT_UNUSED ) //6-button pad header
- PORT_START("JOY6B_P2") /* Player 2 controls */
+ PORT_START("JOY6B_P.1") /* Player 2 controls */
/* II is left of I on the original pad so we map them in reverse order */
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P2 Button I") PORT_PLAYER(2) PORT_CONDITION("JOY_TYPE", 0x000c, EQUALS, 0x0008)
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P2 Button II") PORT_PLAYER(2) PORT_CONDITION("JOY_TYPE", 0x000c, EQUALS, 0x0008)
@@ -156,7 +156,7 @@ static INPUT_PORTS_START( pce )
PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("P2 Button VI") PORT_PLAYER(2) PORT_CONDITION("JOY_TYPE", 0x000c, EQUALS, 0x0008)
PORT_BIT( 0xf000, IP_ACTIVE_HIGH,IPT_UNUSED ) //6-button pad header
- PORT_START("JOY6B_P3") /* Player 3 controls */
+ PORT_START("JOY6B_P.2") /* Player 3 controls */
/* II is left of I on the original pad so we map them in reverse order */
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P3 Button I") PORT_PLAYER(3) PORT_CONDITION("JOY_TYPE", 0x0030, EQUALS, 0x0020)
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P3 Button II") PORT_PLAYER(3) PORT_CONDITION("JOY_TYPE", 0x0030, EQUALS, 0x0020)
@@ -172,7 +172,7 @@ static INPUT_PORTS_START( pce )
PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("P3 Button VI") PORT_PLAYER(3) PORT_CONDITION("JOY_TYPE", 0x0030, EQUALS, 0x0020)
PORT_BIT( 0xf000, IP_ACTIVE_HIGH,IPT_UNUSED ) //6-button pad header
- PORT_START("JOY6B_P4") /* Player 4 controls */
+ PORT_START("JOY6B_P.3") /* Player 4 controls */
/* II is left of I on the original pad so we map them in reverse order */
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P4 Button I") PORT_PLAYER(4) PORT_CONDITION("JOY_TYPE", 0x00c0, EQUALS, 0x0080)
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P4 Button II") PORT_PLAYER(4) PORT_CONDITION("JOY_TYPE", 0x00c0, EQUALS, 0x0080)
@@ -188,7 +188,7 @@ static INPUT_PORTS_START( pce )
PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("P3 Button VI") PORT_PLAYER(4) PORT_CONDITION("JOY_TYPE", 0x00c0, EQUALS, 0x0080)
PORT_BIT( 0xf000, IP_ACTIVE_HIGH,IPT_UNUSED ) //6-button pad header
- PORT_START("JOY6B_P5") /* Player 5 controls */
+ PORT_START("JOY6B_P.4") /* Player 5 controls */
/* II is left of I on the original pad so we map them in reverse order */
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P5 Button I") PORT_PLAYER(5) PORT_CONDITION("JOY_TYPE", 0x0300, EQUALS, 0x0200)
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P5 Button II") PORT_PLAYER(5) PORT_CONDITION("JOY_TYPE", 0x0300, EQUALS, 0x0200)
@@ -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, "Nippon Electronic Company", "PC Engine", GAME_IMPERFECT_SOUND)
-CONS( 1989, tg16, pce, 0, tg16, pce, pce_state, tg16, "Nippon Electronic Company", "TurboGrafx 16", GAME_IMPERFECT_SOUND)
-CONS( 1989, sgx, pce, 0, sgx, pce, pce_state, sgx, "Nippon Electronic Company", "SuperGrafx", GAME_IMPERFECT_SOUND)
+CONS( 1987, pce, 0, 0, pce, pce, pce_state, mess_pce, "Nippon Electronic Company", "PC Engine", MACHINE_IMPERFECT_SOUND)
+CONS( 1989, tg16, pce, 0, tg16, pce, pce_state, tg16, "Nippon Electronic Company", "TurboGrafx 16", MACHINE_IMPERFECT_SOUND)
+CONS( 1989, sgx, pce, 0, sgx, pce, pce_state, sgx, "Nippon Electronic Company", "SuperGrafx", MACHINE_IMPERFECT_SOUND)
diff --git a/src/mess/drivers/pce220.c b/src/mame/drivers/pce220.c
index 25442dd2205..3edaa42e745 100644
--- a/src/mess/drivers/pce220.c
+++ b/src/mame/drivers/pce220.c
@@ -1045,5 +1045,5 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 1991, pce220, 0, 0, pce220, pce220, driver_device, 0, "Sharp", "PC-E220", GAME_NOT_WORKING )
-COMP( 2001, pcg850v, 0, 0, pcg850v, pcg850v, driver_device, 0, "Sharp", "PC-G850V", GAME_NOT_WORKING )
+COMP( 1991, pce220, 0, 0, pce220, pce220, driver_device, 0, "Sharp", "PC-E220", MACHINE_NOT_WORKING )
+COMP( 2001, pcg850v, 0, 0, pcg850v, pcg850v, driver_device, 0, "Sharp", "PC-G850V", MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/pcfx.c b/src/mame/drivers/pcfx.c
index 72b2374f5db..d2faa292087 100644
--- a/src/mess/drivers/pcfx.c
+++ b/src/mame/drivers/pcfx.c
@@ -527,5 +527,5 @@ ROM_END
***************************************************************************/
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-CONS( 1994, pcfx, 0, 0, pcfx, pcfx, driver_device, 0, "Nippon Electronic Company", "PC-FX", GAME_NOT_WORKING | GAME_NO_SOUND )
-CONS( 199?, pcfxga, pcfx, 0, pcfx, pcfx, driver_device, 0, "Nippon Electronic Company", "PC-FX/GA (PC ISA Card)", GAME_NOT_WORKING | GAME_NO_SOUND )
+CONS( 1994, pcfx, 0, 0, pcfx, pcfx, driver_device, 0, "Nippon Electronic Company", "PC-FX", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+CONS( 199?, pcfxga, pcfx, 0, pcfx, pcfx, driver_device, 0, "Nippon Electronic Company", "PC-FX/GA (PC ISA Card)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/pcktgal.c b/src/mame/drivers/pcktgal.c
index 2e0a7bf2cc9..3a34210d516 100644
--- a/src/mame/drivers/pcktgal.c
+++ b/src/mame/drivers/pcktgal.c
@@ -212,7 +212,7 @@ void pcktgal_state::machine_start()
membank("bank1")->configure_entries(0, 2, memregion("maincpu")->base() + 0x4000, 0xc000);
membank("bank2")->configure_entries(0, 2, memregion("maincpu")->base() + 0x6000, 0xc000);
membank("bank3")->configure_entries(0, 2, memregion("audiocpu")->base() + 0x10000, 0x4000);
-
+
save_item(NAME(m_msm5205next));
save_item(NAME(m_toggle));
}
@@ -442,9 +442,9 @@ DRIVER_INIT_MEMBER(pcktgal_state,pcktgal)
/***************************************************************************/
-GAME( 1987, pcktgal, 0, pcktgal, pcktgal, pcktgal_state, pcktgal, ROT0, "Data East Corporation", "Pocket Gal (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1987, pcktgalb, pcktgal, bootleg, pcktgal, driver_device, 0, ROT0, "bootleg", "Pocket Gal (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1989, pcktgal2, pcktgal, pcktgal2,pcktgal, pcktgal_state, pcktgal, ROT0, "Data East Corporation", "Pocket Gal 2 (English)", GAME_SUPPORTS_SAVE )
-GAME( 1989, pcktgal2j,pcktgal, pcktgal2,pcktgal, pcktgal_state, pcktgal, ROT0, "Data East Corporation", "Pocket Gal 2 (Japanese)", GAME_SUPPORTS_SAVE )
-GAME( 1989, spool3, pcktgal, pcktgal2,pcktgal, pcktgal_state, pcktgal, ROT0, "Data East Corporation", "Super Pool III (English)", GAME_SUPPORTS_SAVE )
-GAME( 1990, spool3i, pcktgal, pcktgal2,pcktgal, pcktgal_state, pcktgal, ROT0, "Data East Corporation (I-Vics license)", "Super Pool III (I-Vics)", GAME_SUPPORTS_SAVE )
+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( 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 )
+GAME( 1990, spool3i, pcktgal, pcktgal2,pcktgal, pcktgal_state, pcktgal, ROT0, "Data East Corporation (I-Vics license)", "Super Pool III (I-Vics)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/pcm.c b/src/mame/drivers/pcm.c
index ee4024b4b02..ee4024b4b02 100644
--- a/src/mess/drivers/pcm.c
+++ b/src/mame/drivers/pcm.c
diff --git a/src/mess/drivers/pcw.c b/src/mame/drivers/pcw.c
index 27ac2a0fcd4..9af7f2fccd6 100644
--- a/src/mess/drivers/pcw.c
+++ b/src/mame/drivers/pcw.c
@@ -1396,8 +1396,8 @@ 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", GAME_NOT_WORKING)
-COMP( 1985, pcw8512, pcw8256, 0, pcw8512, pcw, pcw_state, pcw, "Amstrad plc", "PCW8512", GAME_NOT_WORKING)
-COMP( 1987, pcw9256, pcw8256, 0, pcw8256, pcw, pcw_state, pcw, "Amstrad plc", "PCW9256", GAME_NOT_WORKING)
-COMP( 1987, pcw9512, pcw8256, 0, pcw9512, pcw, pcw_state, pcw, "Amstrad plc", "PCW9512 (+)", GAME_NOT_WORKING)
-COMP( 1993, pcw10, pcw8256, 0, pcw8512, pcw, pcw_state, pcw, "Amstrad plc", "PCW10", GAME_NOT_WORKING)
+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/mess/drivers/pcw16.c b/src/mame/drivers/pcw16.c
index e4e5d7915c1..109624be06c 100644
--- a/src/mess/drivers/pcw16.c
+++ b/src/mame/drivers/pcw16.c
@@ -1091,4 +1091,4 @@ ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
-COMP( 1995, pcw16, 0, 0, pcw16, pcw16, driver_device, 0, "Amstrad plc", "PcW16", GAME_NOT_WORKING )
+COMP( 1995, pcw16, 0, 0, pcw16, pcw16, driver_device, 0, "Amstrad plc", "PcW16", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/pcxt.c b/src/mame/drivers/pcxt.c
index 016f4820b4e..9704b0d8db8 100644
--- a/src/mame/drivers/pcxt.c
+++ b/src/mame/drivers/pcxt.c
@@ -807,5 +807,5 @@ DRIVER_INIT_MEMBER(pcxt_state,tetriskr)
//...
}
-GAME( 1990, filetto, 0, filetto, filetto, pcxt_state, filetto, ROT0, "Novarmatic", "Filetto (v1.05 901009)",GAME_IMPERFECT_SOUND )
-GAME( 1988?,tetriskr, 0, tetriskr, tetriskr, pcxt_state, tetriskr, ROT0, "bootleg", "Tetris (bootleg of Mirrorsoft PC-XT Tetris version)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
+GAME( 1990, filetto, 0, filetto, filetto, pcxt_state, filetto, ROT0, "Novarmatic", "Filetto (v1.05 901009)",MACHINE_IMPERFECT_SOUND )
+GAME( 1988?,tetriskr, 0, tetriskr, tetriskr, pcxt_state, tetriskr, ROT0, "bootleg", "Tetris (bootleg of Mirrorsoft PC-XT Tetris version)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/pda600.c b/src/mame/drivers/pda600.c
index 3dcb83840ba..a3e8f3d453e 100644
--- a/src/mess/drivers/pda600.c
+++ b/src/mame/drivers/pda600.c
@@ -235,4 +235,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1993, pda600, 0, 0, pda600, pda600, driver_device, 0, "Amstrad plc", "PenPad PDA 600", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/pdp1.c b/src/mame/drivers/pdp1.c
index 66ec3979cfb..f3827cf61b1 100644
--- a/src/mess/drivers/pdp1.c
+++ b/src/mame/drivers/pdp1.c
@@ -166,7 +166,7 @@ static INPUT_PORTS_START( pdp1 )
rightmost one: maybe they were used to set the margin (I don't have the
manual for the typewriter). */
- PORT_START("TWR0") /* 6: typewriter codes 00-17 */
+ PORT_START("TWR.0") /* 6: typewriter codes 00-17 */
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("(Space)") PORT_CODE(KEYCODE_SPACE)
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1 \"") PORT_CODE(KEYCODE_1)
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2 '") PORT_CODE(KEYCODE_2)
@@ -178,7 +178,7 @@ static INPUT_PORTS_START( pdp1 )
PORT_BIT(0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("8 >") PORT_CODE(KEYCODE_8)
PORT_BIT(0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("9 (up arrow)") PORT_CODE(KEYCODE_9)
- PORT_START("TWR1") /* 7: typewriter codes 20-37 */
+ PORT_START("TWR.1") /* 7: typewriter codes 20-37 */
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("0 (right arrow)") PORT_CODE(KEYCODE_0)
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("/ ?") PORT_CODE(KEYCODE_SLASH)
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("S") PORT_CODE(KEYCODE_S)
@@ -192,7 +192,7 @@ static INPUT_PORTS_START( pdp1 )
PORT_BIT(0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(", =") PORT_CODE(KEYCODE_COMMA)
PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Tab Key") PORT_CODE(KEYCODE_TAB)
- PORT_START("TWR2") /* 8: typewriter codes 40-57 */
+ PORT_START("TWR.2") /* 8: typewriter codes 40-57 */
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("(non-spacing middle dot) _") PORT_CODE(KEYCODE_QUOTE)
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J)
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("K") PORT_CODE(KEYCODE_K)
@@ -208,7 +208,7 @@ static INPUT_PORTS_START( pdp1 )
PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("(non-spacing overstrike) |") PORT_CODE(KEYCODE_OPENBRACE)
PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("( [") PORT_CODE(KEYCODE_MINUS)
- PORT_START("TWR3") /* 9: typewriter codes 60-77 */
+ PORT_START("TWR.3") /* 9: typewriter codes 60-77 */
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_A)
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B)
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C)
@@ -485,9 +485,8 @@ static pdp1_reset_param_t pdp1_reset_param =
void pdp1_state::machine_reset()
{
- int cfg;
+ int cfg = m_cfg->read();
- cfg = ioport("CFG")->read();
pdp1_reset_param.extend_support = (cfg >> pdp1_config_extend_bit) & pdp1_config_extend_mask;
pdp1_reset_param.hw_mul_div = (cfg >> pdp1_config_hw_mul_div_bit) & pdp1_config_hw_mul_div_mask;
pdp1_reset_param.type_20_sbs = (cfg >> pdp1_config_type_20_sbs_bit) & pdp1_config_type_20_sbs_mask;
@@ -1598,7 +1597,7 @@ static void iot_dra(device_t *device, int op2, int nac, int mb, int *io, int ac)
{
pdp1_state *state = device->machine().driver_data<pdp1_state>();
(*io) = (state->m_parallel_drum.rotation_timer->elapsed() *
- (ATTOSECONDS_PER_SECOND / (PARALLEL_DRUM_WORD_TIME.as_attoseconds()))).seconds & 0007777;
+ (ATTOSECONDS_PER_SECOND / (PARALLEL_DRUM_WORD_TIME.as_attoseconds()))).seconds() & 0007777;
/* set parity error and timing error... */
}
@@ -1618,7 +1617,7 @@ static void iot_dra(device_t *device, int op2, int nac, int mb, int *io, int ac)
*/
static void iot_011(device_t *device, int op2, int nac, int mb, int *io, int ac)
{
- int key_state = device->machine().root_device().ioport("SPACEWAR")->read();
+ int key_state = device->machine().driver_data<pdp1_state>()->read_spacewar();
int reply;
@@ -1701,12 +1700,11 @@ void pdp1_state::pdp1_keyboard()
int typewriter_keys[4];
int typewriter_transitions;
- static const char *const twrnames[] = { "TWR0", "TWR1", "TWR2", "TWR3" };
for (i=0; i<4; i++)
{
- typewriter_keys[i] = ioport(twrnames[i])->read();
+ typewriter_keys[i] = m_twr[i]->read();
}
for (i=0; i<4; i++)
@@ -1734,11 +1732,9 @@ void pdp1_state::pdp1_keyboard()
void pdp1_state::pdp1_lightpen()
{
int x_delta, y_delta;
- int current_state;
+ int current_state = m_io_lightpen->read();
- m_lightpen.active = (ioport("CFG")->read() >> pdp1_config_lightpen_bit) & pdp1_config_lightpen_mask;
-
- current_state = ioport("LIGHTPEN")->read();
+ m_lightpen.active = (m_cfg->read() >> pdp1_config_lightpen_bit) & pdp1_config_lightpen_mask;
/* update pen down state */
m_lightpen.down = m_lightpen.active && (current_state & pdp1_lightpen_down);
@@ -1760,8 +1756,8 @@ void pdp1_state::pdp1_lightpen()
m_old_lightpen = current_state;
/* update pen position */
- x_delta = ioport("LIGHTX")->read();
- y_delta = ioport("LIGHTY")->read();
+ x_delta = m_lightx->read();
+ y_delta = m_lighty->read();
if (x_delta >= 0x80)
x_delta -= 0x100;
@@ -1797,10 +1793,10 @@ INTERRUPT_GEN_MEMBER(pdp1_state::pdp1_interrupt)
int ta_transitions;
- m_maincpu->set_state_int(PDP1_SS, ioport("SENSE")->read());
+ m_maincpu->set_state_int(PDP1_SS, m_sense->read());
/* read new state of control keys */
- control_keys = ioport("CSW")->read();
+ control_keys = m_csw->read();
if (control_keys & pdp1_control)
{
@@ -1892,7 +1888,7 @@ INTERRUPT_GEN_MEMBER(pdp1_state::pdp1_interrupt)
/* handle test word keys */
- tw_keys = (ioport("TWDMSB")->read() << 16) | ioport("TWDLSB")->read();
+ tw_keys = (m_twdmsb->read() << 16) | m_twdlsb->read();
/* compute transitions */
tw_transitions = tw_keys & (~ m_old_tw_keys);
@@ -1905,7 +1901,7 @@ INTERRUPT_GEN_MEMBER(pdp1_state::pdp1_interrupt)
/* handle address keys */
- ta_keys = ioport("TSTADD")->read();
+ ta_keys = m_tstadd->read();
/* compute transitions */
ta_transitions = ta_keys & (~ m_old_ta_keys);
@@ -1980,4 +1976,4 @@ 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" , GAME_NO_SOUND_HW )
+COMP( 1961, pdp1, 0, 0, pdp1, pdp1, driver_device, 0, "Digital Equipment Corporation", "PDP-1" , MACHINE_NO_SOUND_HW )
diff --git a/src/mess/drivers/pdp11.c b/src/mame/drivers/pdp11.c
index 1a89a63220a..8aa53ba3f47 100644
--- a/src/mess/drivers/pdp11.c
+++ b/src/mame/drivers/pdp11.c
@@ -464,7 +464,7 @@ 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)", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( ????, pdp11ub2, pdp11ub, 0, pdp11ub2, pdp11, driver_device, 0, "Digital Equipment Corporation", "PDP-11 [Unibus](M9312)", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( ????, pdp11qb, pdp11ub, 0, pdp11qb, pdp11, driver_device, 0, "Digital Equipment Corporation", "PDP-11 [Q-BUS] (M7195 - MXV11)", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 1987, sms1000, pdp11ub, 0, pdp11qb, pdp11, driver_device, 0, "Scientific Micro Systems", "SMS-1000", GAME_IS_SKELETON )
+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 )
diff --git a/src/mess/drivers/pecom.c b/src/mame/drivers/pecom.c
index 7bb5ad07aec..7bb5ad07aec 100644
--- a/src/mess/drivers/pecom.c
+++ b/src/mame/drivers/pecom.c
diff --git a/src/mess/drivers/pegasus.c b/src/mame/drivers/pegasus.c
index d6d15b3fafd..47f09b1f0ac 100644
--- a/src/mess/drivers/pegasus.c
+++ b/src/mame/drivers/pegasus.c
@@ -577,5 +577,5 @@ 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", GAME_NO_SOUND_HW )
-COMP( 1981, pegasusm, pegasus, 0, pegasusm, pegasus, pegasus_state, pegasus, "Technosys", "Aamber Pegasus with RAM expansion unit", GAME_NO_SOUND_HW )
+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/mess/drivers/pencil2.c b/src/mame/drivers/pencil2.c
index bde1c817f9c..bde1c817f9c 100644
--- a/src/mess/drivers/pencil2.c
+++ b/src/mame/drivers/pencil2.c
diff --git a/src/mame/drivers/pengadvb.c b/src/mame/drivers/pengadvb.c
index e88fcc2b2e0..de6ca0e094a 100644
--- a/src/mame/drivers/pengadvb.c
+++ b/src/mame/drivers/pengadvb.c
@@ -341,4 +341,4 @@ ROM_START( pengadvb )
ROM_END
-GAME( 1988, pengadvb, 0, pengadvb, pengadvb, pengadvb_state, pengadvb, ROT0, "bootleg (Screen) / Konami", "Penguin Adventure (bootleg of MSX version)", GAME_SUPPORTS_SAVE )
+GAME( 1988, pengadvb, 0, pengadvb, pengadvb, pengadvb_state, pengadvb, ROT0, "bootleg (Screen) / Konami", "Penguin Adventure (bootleg of MSX version)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/pengo.c b/src/mame/drivers/pengo.c
index ab8838127a5..2a921f26e2b 100644
--- a/src/mame/drivers/pengo.c
+++ b/src/mame/drivers/pengo.c
@@ -749,11 +749,11 @@ DRIVER_INIT_MEMBER(pengo_state,penta)
*
*************************************/
-GAME( 1982, pengo, 0, pengo, pengo, pengo_state, pengo, ROT90, "Sega", "Pengo (set 1 rev c)", GAME_SUPPORTS_SAVE )
-GAME( 1982, pengo2, pengo, pengo, pengo, pengo_state, pengo, ROT90, "Sega", "Pengo (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1982, pengo2u, pengo, pengou, pengo, driver_device, 0, ROT90, "Sega", "Pengo (set 2 not encrypted)", GAME_SUPPORTS_SAVE )
-GAME( 1982, pengo3u, pengo, pengou, pengo, driver_device, 0, ROT90, "Sega", "Pengo (set 3 not encrypted)", GAME_SUPPORTS_SAVE )
-GAME( 1982, pengo4, pengo, pengo, pengo, pengo_state, pengo, ROT90, "Sega", "Pengo (set 4)", GAME_SUPPORTS_SAVE )
-GAME( 1982, pengob, pengo, pengo, pengo, pengo_state, penta, ROT90, "bootleg", "Pengo (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1982, penta, pengo, pengo, pengo, pengo_state, penta, ROT90, "bootleg (Grinbee Shouji)", "Penta", GAME_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)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+GAME( 1982, pengo, 0, pengo, pengo, pengo_state, pengo, ROT90, "Sega", "Pengo (set 1 rev c)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, pengo2, pengo, pengo, pengo, pengo_state, pengo, 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, pengo, pengo, pengo_state, pengo, 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 )
diff --git a/src/mess/drivers/pentagon.c b/src/mame/drivers/pentagon.c
index 61265e75ab4..61265e75ab4 100644
--- a/src/mess/drivers/pentagon.c
+++ b/src/mame/drivers/pentagon.c
diff --git a/src/mess/drivers/peoplepc.c b/src/mame/drivers/peoplepc.c
index 26216fd9d85..ce6041841d4 100644
--- a/src/mess/drivers/peoplepc.c
+++ b/src/mame/drivers/peoplepc.c
@@ -299,4 +299,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", GAME_NOT_WORKING|GAME_NO_SOUND)
+COMP( 198?, olypeopl, 0, 0, olypeopl, 0, driver_device, 0, "Olympia", "People PC", MACHINE_NOT_WORKING|MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/peplus.c b/src/mame/drivers/peplus.c
index 4ab389ab393..af60b1efb17 100644
--- a/src/mame/drivers/peplus.c
+++ b/src/mame/drivers/peplus.c
@@ -145,7 +145,7 @@ Super PE+
Data roms will not work with every Program rom. Incompatible combos report: Incompatible Data EPROM
X000055P is a good example, it works with 19 XP000xxx Program roms. Others may be as few as 2.
XMPnnnnn Multi-Poker Programs. Different options for each set, but all use the same XMnnnnnP data
- XMP00002 through XMP00006 & XMP00024 Use the XM000xxP Multi-Poker Data
+ XMP00002 through XMP00006, XMP00020 & XMP00024 Use the XM000xxP Multi-Poker Data
XMP00014, XMP00017 & XMP00030 Use the WING Board add-on and use the XnnnnnnP Poker Data (Not all are compatible!)
XMP00013, XMP00022 & XMP00026 Use the WING Board add-on & CG2346 + CAPX2346 for Spanish paytables
XMP00025 Uses the XM000xxP Multi-Poker Data roms and is for the International markets. Auto Hold always enabled.
@@ -1765,7 +1765,28 @@ PayTable Js+ 2PR 3K STR FL FH 4K SF RF (Bonus)
ROM_LOAD( "cap740.u50", 0x0000, 0x0100, CRC(6fe619c4) SHA1(49e43dafd010ce0fe9b2a63b96a4ddedcb933c6d) ) /* BPROM type DM74LS471 (compatible with N82S135N) verified */
ROM_END
-ROM_START( pepp0042 ) /* Normal board : 10's or Better (PP0042) - Auto Hold & Progressive */
+ROM_START( pepp0042 ) /* Normal board : 10's or Better (PP0042) */
+/*
+PayTable 10s+ 2PR 3K STR FL FH 4K SF RF (Bonus)
+----------------------------------------------------------
+ P7A 1 1 3 4 6 9 25 50 300 800
+ % Range: 86.8-88.8% Optimum: 90.8% Hit Frequency: 49.1%
+ Programs Available: PP0042, X000042P
+*/
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pp0042_979-a0c.u68", 0x00000, 0x10000, CRC(2f4f4e59) SHA1(ba74de70cf455f7e0b13d4757632d27af64a573b) ) /* Game Version: 979, Library Version: A0C */
+
+ ROM_REGION( 0x020000, "gfx1", 0 )
+ ROM_LOAD( "mro-cg740.u72", 0x00000, 0x8000, CRC(72667f6c) SHA1(89843f472cc0329317cfc643c63bdfd11234b194) )
+ ROM_LOAD( "mgo-cg740.u73", 0x08000, 0x8000, CRC(7437254a) SHA1(bba166dece8af58da217796f81117d0b05752b87) )
+ ROM_LOAD( "mbo-cg740.u74", 0x10000, 0x8000, CRC(92e8c33e) SHA1(05344664d6fdd3f4205c50fa4ca76fc46c18cf8f) )
+ ROM_LOAD( "mxo-cg740.u75", 0x18000, 0x8000, CRC(ce4cbe0b) SHA1(4bafcd68be94a5deaae9661584fa0fc940b834bb) )
+
+ ROM_REGION( 0x100, "proms", 0 )
+ ROM_LOAD( "cap740.u50", 0x0000, 0x0100, CRC(6fe619c4) SHA1(49e43dafd010ce0fe9b2a63b96a4ddedcb933c6d) ) /* BPROM type DM74LS471 (compatible with N82S135N) verified */
+ROM_END
+
+ROM_START( pepp0042a ) /* Normal board : 10's or Better (PP0042) - Auto Hold & Progressive */
/*
PayTable 10s+ 2PR 3K STR FL FH 4K SF RF (Bonus)
----------------------------------------------------------
@@ -1870,6 +1891,71 @@ PayTable 10s+ 2PR 3K STR FL FH 4K SF RF (Bonus)
ROM_LOAD( "cap740.u50", 0x0000, 0x0100, CRC(6fe619c4) SHA1(49e43dafd010ce0fe9b2a63b96a4ddedcb933c6d) ) /* BPROM type DM74LS471 (compatible with N82S135N) verified */
ROM_END
+ROM_START( pepp0045a ) /* Normal board : 10's or Better (PP0045) */
+/*
+PayTable 10s+ 2PR 3K STR FL FH 4K SF RF (Bonus)
+----------------------------------------------------------
+ P8A 1 1 3 4 5 8 25 50 300 800
+ % Range: 84.6-86.6% Optimum: 88.6% Hit Frequency: 49.2%
+ Programs Available: PP0045, X000045P
+*/
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pp0045_a45-a74.u68", 0x00000, 0x10000, CRC(9c7cf6d7) SHA1(3da9829678b853d85146b66b40800257a8eaa151) ) /* Game Version: A45, Library Version: A74 */
+
+ ROM_REGION( 0x020000, "gfx1", 0 )
+ ROM_LOAD( "mro-cg1248.u72", 0x00000, 0x8000, CRC(4e2f9276) SHA1(25b84314e75408f9a057a89ac9154be7768813eb) ) /* Custom Gambler Downtown Reno card backs */
+ ROM_LOAD( "mgo-cg1248.u73", 0x08000, 0x8000, CRC(5ecfb257) SHA1(aebe9580434007cae52091eb1814ce201698a4b0) )
+ ROM_LOAD( "mbo-cg1248.u74", 0x10000, 0x8000, CRC(c4b84599) SHA1(e753537c4615b42aa726d19f19dfa934050ac54e) ) /* These graphics will work for many other standard poker sets */
+ ROM_LOAD( "mxo-cg1248.u75", 0x18000, 0x8000, CRC(ac2ddd3c) SHA1(ce76c77a3d8b5d71d272b9982d43a35e913b54de) ) /* However there is no support for Deuces Wild sets */
+
+ ROM_REGION( 0x100, "proms", 0 )
+ ROM_LOAD( "cap1248.u50", 0x0000, 0x0100, CRC(be238287) SHA1(9bfe601df8d3e40307c15a6b871e79f12fab3169) )
+ROM_END
+
+ROM_START( pepp0045b ) /* Normal board : 10's or Better (PP0045) */
+/*
+PayTable 10s+ 2PR 3K STR FL FH 4K SF RF (Bonus)
+----------------------------------------------------------
+ P8A 1 1 3 4 5 8 25 50 300 800
+ % Range: 84.6-86.6% Optimum: 88.6% Hit Frequency: 49.2%
+ Programs Available: PP0045, X000045P
+*/
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pp0045_a45-a74.u68", 0x00000, 0x10000, CRC(9c7cf6d7) SHA1(3da9829678b853d85146b66b40800257a8eaa151) ) /* Game Version: A45, Library Version: A74 */
+
+ ROM_REGION( 0x020000, "gfx1", 0 )
+ ROM_LOAD( "mro-cg1150.u72", 0x00000, 0x8000, CRC(91186809) SHA1(1fc91926cf854411738128cb82d1fce6a8f8c8fd) ) /* Custom Par-A-Dice Riverboat Casino card backs */
+ ROM_LOAD( "mgo-cg1150.u73", 0x08000, 0x8000, CRC(a1e66166) SHA1(6dfa3952636fb6cd24c725139624571ab279221c) )
+ ROM_LOAD( "mbo-cg1150.u74", 0x10000, 0x8000, CRC(8c2c3c0e) SHA1(fe1f1648ff7751e75b874db83f4ec5f54e95083e) ) /* These graphics will work for many other standard poker sets */
+ ROM_LOAD( "mxo-cg1150.u75", 0x18000, 0x8000, CRC(ece41352) SHA1(3c7afb98254c05ce139ca9675ecb415641552371) ) /* However there is no support for Deuces Wild sets */
+
+ ROM_REGION( 0x100, "proms", 0 )
+ ROM_LOAD( "cap1150.u50", 0x0000, 0x0100, NO_DUMP )
+ ROM_LOAD( "cap740.u50", 0x0000, 0x0100, CRC(6fe619c4) SHA1(49e43dafd010ce0fe9b2a63b96a4ddedcb933c6d) ) /* BPROM type DM74LS471 (compatible with N82S135N) verified */
+ROM_END
+
+ROM_START( pepp0045c ) /* Normal board : 10's or Better (PP0045) */
+/*
+PayTable 10s+ 2PR 3K STR FL FH 4K SF RF (Bonus)
+----------------------------------------------------------
+ P8A 1 1 3 4 5 8 25 50 300 800
+ % Range: 84.6-86.6% Optimum: 88.6% Hit Frequency: 49.2%
+ Programs Available: PP0045, X000045P
+*/
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pp0045_a45-a74.u68", 0x00000, 0x10000, CRC(9c7cf6d7) SHA1(3da9829678b853d85146b66b40800257a8eaa151) ) /* Game Version: A45, Library Version: A74 */
+
+ ROM_REGION( 0x020000, "gfx1", 0 )
+ ROM_LOAD( "mro-cg1072.u72", 0x00000, 0x8000, CRC(8e5cf3bf) SHA1(a8c2fde9105a37eddc218ae1476cdbfb0271e314) ) /* Custom Annie Oakely's Central City graphics */
+ ROM_LOAD( "mgo-cg1072.u73", 0x08000, 0x8000, CRC(a3c85c1b) SHA1(9b810c5779dde21db6da5bac5cf797bad65c2c1b) )
+ ROM_LOAD( "mbo-cg1072.u74", 0x10000, 0x8000, CRC(833371e1) SHA1(5d7a994aee61a751f89171885423276b86e872b6) ) /* These graphics will work for many other standard poker sets */
+ ROM_LOAD( "mxo-cg1072.u75", 0x18000, 0x8000, CRC(0df703b3) SHA1(2042251cc9c11687ff7fd920213a448974ff3050) ) /* However there is no support for Deuces Wild sets */
+
+ ROM_REGION( 0x100, "proms", 0 )
+ ROM_LOAD( "cap1072.u50", 0x0000, 0x0100, NO_DUMP )
+ ROM_LOAD( "cap740.u50", 0x0000, 0x0100, CRC(6fe619c4) SHA1(49e43dafd010ce0fe9b2a63b96a4ddedcb933c6d) ) /* BPROM type DM74LS471 (compatible with N82S135N) verified */
+ROM_END
+
ROM_START( pepp0046 ) /* Normal board : 10's or Better (PP0046) */
/*
PayTable 10s+ 2PR 3K STR FL FH 4K SF RF (Bonus)
@@ -2053,6 +2139,28 @@ PayTable 3K STR FL FH 4K SF 5K RF 4D RF (Bonus)
% Range: 90.8-92.8% Optimum: 94.8% Hit Frequency: 45.1%
Programs Available: PP0055, X000055P, PP0723
*/
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 10/23/95 @IGT L95-2432 */
+ ROM_LOAD( "pp0055_a47-a76.u68", 0x00000, 0x10000, CRC(adff06ea) SHA1(098409bd4474a69217e3cd17ee8c650005cc3e17) ) /* Game Version: A47, Library Version: A76 */
+
+ ROM_REGION( 0x020000, "gfx1", 0 )
+ ROM_LOAD( "mro-cg1276.u72", 0x00000, 0x8000, CRC(9ebc89f2) SHA1(983ace4a9269dea1ddc6b9837df0f0db6b2a1c91) ) /* Custom Skyline Casino card backs */
+ ROM_LOAD( "mgo-cg1276.u73", 0x08000, 0x8000, CRC(dc7ae9a0) SHA1(64384138a6eeb7adb27951fe9e8527f708872efb) )
+ ROM_LOAD( "mbo-cg1276.u74", 0x10000, 0x8000, CRC(145b39ad) SHA1(cea3835428f609c5830fc35e5ade63762f71954c) )
+ ROM_LOAD( "mxo-cg1276.u75", 0x18000, 0x8000, CRC(35e32287) SHA1(0cbea6f413c7cf76e343d9f7250fd6fcd87f6df9) )
+
+ ROM_REGION( 0x100, "proms", 0 )
+ ROM_LOAD( "cap1276.u50", 0x0000, 0x0100, CRC(4ce5aef5) SHA1(e9a9f358aedeb9ed917162eafd6ffade66d460e8) )
+ROM_END
+
+ROM_START( pepp0055c ) /* Normal board : Deuces Wild Poker (PP0055) */
+/*
+ w/D w/oD
+PayTable 3K STR FL FH 4K SF 5K RF 4D RF (Bonus)
+------------------------------------------------------------
+ P32A 1 2 2 3 4 10 15 25 200 250 800
+ % Range: 90.8-92.8% Optimum: 94.8% Hit Frequency: 45.1%
+ Programs Available: PP0055, X000055P, PP0723
+*/
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "pp0055_600-550.u68", 0x00000, 0x8000, CRC(3c00285e) SHA1(b9028de6962619e438ef927f8223e04dde5c7f87) ) /* Game Version: 600, Library Version: 550, Video Lib Ver: 550 */
ROM_RELOAD( 0x08000, 0x8000) /* 32K version built using earlier gaming libraries */
@@ -2421,8 +2529,8 @@ PayTable Js+ 2PR 3K STR FL FH 4K SF RF (Bonus)
ROM_REGION( 0x020000, "gfx1", 0 )
ROM_LOAD( "mro-cg864.u72", 0x00000, 0x8000, CRC(f4ac28b9) SHA1(35c8a603120f35bd92905e0491e9ae5cd201e13f) ) /* 09/13/89 @ IGT L89-1706 */
ROM_LOAD( "mgo-cg864.u73", 0x08000, 0x8000, CRC(da8efcb9) SHA1(942c6b613074c52f6ed1c2fce78d46ef0f221c48) ) /* Custom Mirage casino card backs */
- ROM_LOAD( "mbo-cg864.u74", 0x10000, 0x8000, CRC(d48ac9cd) SHA1(a62d6c1daf199856aa1777d1d99fe81399215e36) )
- ROM_LOAD( "mxo-cg864.u75", 0x18000, 0x8000, CRC(04f81245) SHA1(055271c6c502fad3be5f2d694a94f96bf3176404) )
+ ROM_LOAD( "mbo-cg864.u74", 0x10000, 0x8000, CRC(d48ac9cd) SHA1(a62d6c1daf199856aa1777d1d99fe81399215e36) ) /* These graphics will work for many other standard poker sets */
+ ROM_LOAD( "mxo-cg864.u75", 0x18000, 0x8000, CRC(04f81245) SHA1(055271c6c502fad3be5f2d694a94f96bf3176404) ) /* However there is no support for Deuces Wild sets */
ROM_REGION( 0x100, "proms", 0 )
ROM_LOAD( "cap864.u50", 0x0000, 0x0100, CRC(c80e5743) SHA1(edf4e5a68905cc566077613d856bc90b8136a227) ) /* BPROM type DM74LS471 (compatible with N82S135N) verified */
@@ -2662,18 +2770,21 @@ PayTable Js+ 2PR 3K STR FL FH 4K 4K 4A SF RF (Bonus)
P77A 1 2 3 4 5 8 25 40 80 50 250 800
% Range: 95.2-97.2% Optimum: 99.2% Hit Frequency: 45.5%
Programs Available: PP0158, X000158P
+
+NOTE: This set also found with CG2003+CAP904
+
*/
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "pp0158_a46-a75.u68", 0x00000, 0x10000, CRC(5976cd19) SHA1(6a461ea9ddf78dffa3cf8b65903ebf3127f23d45) ) /* Game Version: A46, Library Version: A75, Video Lib ver A0Y */
ROM_REGION( 0x020000, "gfx1", 0 )
- ROM_LOAD( "mro-cg2003.u72", 0x00000, 0x8000, CRC(0d425f48) SHA1(b60aaf3f4bd76f75f72f6e8dda724bdf795cb521) ) /* 08/30/94 @ IGT L95-0145 */
- ROM_LOAD( "mgo-cg2003.u73", 0x08000, 0x8000, CRC(add0afc4) SHA1(0519bf2f36cb67140933b2c533e625544f27d16b) )
- ROM_LOAD( "mbo-cg2003.u74", 0x10000, 0x8000, CRC(8649dec0) SHA1(0024d3a8fd85279552910b14b69b225bda93957f) )
- ROM_LOAD( "mxo-cg2003.u75", 0x18000, 0x8000, CRC(904631cd) SHA1(d280a2f16b51a04b3f601db3535980a765c60e6f) )
+ ROM_LOAD( "mro-cg1047.u72", 0x00000, 0x8000, CRC(a299d058) SHA1(ed090bacac07c4cf85eacc80f15489b4c18b33d3) ) /* Custom Skyline Casino card backs */
+ ROM_LOAD( "mgo-cg1047.u73", 0x08000, 0x8000, CRC(d9aa8951) SHA1(c42a256368871a38ceaca8b66256e235dbe2adad) )
+ ROM_LOAD( "mbo-cg1047.u74", 0x10000, 0x8000, CRC(5051fb59) SHA1(159559d6e40287e34b1538c51e779d22b910710d) ) /* These graphics will work for many other standard poker sets */
+ ROM_LOAD( "mxo-cg1047.u75", 0x18000, 0x8000, CRC(2f86cf5a) SHA1(0a271f3d2353303fbab80c61fec8e2dda877c42b) ) /* For Deuces Wild sets use CG1276 + CAP1276 */
ROM_REGION( 0x100, "proms", 0 )
- ROM_LOAD( "cap904.u50", 0x0000, 0x0100, CRC(0eec8336) SHA1(a6585c978dbc2f4f3818e3a5b92f8c28be23c4c0) ) /* BPROM type N82S135N verified */
+ ROM_LOAD( "cap1046.u50", 0x0000, 0x0100, CRC(883fa6a4) SHA1(76aa42912d3180dc0466be95f30d6d760996713b) ) /* Uses CAP1046 as stated or really CAP1047?? */
ROM_END
ROM_START( pepp0158b ) /* Normal board : 4 of a Kind Bonus Poker (PP0158) - 04/16/94 @ IGT L94-1044 */
@@ -3919,6 +4030,29 @@ PayTable As 2P 3K STR FL FH 4K SF RF 5K RF (Bonus)
ROM_LOAD( "cap740.u50", 0x0000, 0x0100, CRC(6fe619c4) SHA1(49e43dafd010ce0fe9b2a63b96a4ddedcb933c6d) ) /* BPROM type DM74LS471 (compatible with N82S135N) verified */
ROM_END
+ROM_START( pepp0430 ) /* Normal board : Deuces Joker Wild Poker (PP0430) */
+/*
+ With w/o w/o With
+ Wild JKR Wild JKR
+PayTable 3K STR FL FH 4K SF 5K RF 4D RF 4D (Bonus)
+---------------------------------------------------------------------
+ P73N 1 2 3 3 3 5 8 10 25 800 1000 2000
+ % Range: 93.2-95.2% Optimum: 97.2% Hit Frequency: 50.5%
+ Programs Available: PP0430, X000430P
+*/
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pp0430_a0v-a2d.u68", 0x00000, 0x10000, CRC(afcc183a) SHA1(613608b27b730445379ee9312a625085dba942ae) ) /* Game Version: A0V, Library Version: A2D */
+
+ ROM_REGION( 0x020000, "gfx1", 0 )
+ ROM_LOAD( "mro-cg1215.u72", 0x00000, 0x8000, CRC(425f57be) SHA1(6d53ae86bec7189a35671a7f691e101a2ed4d8c4) ) /* 06/09/93 @ IGT L93-1585 */
+ ROM_LOAD( "mgo-cg1215.u73", 0x08000, 0x8000, CRC(0f66cd94) SHA1(9ac0cd01aca87e045c4fd6045ed907a092d6b2ee) )
+ ROM_LOAD( "mbo-cg1215.u74", 0x10000, 0x8000, CRC(10f89e44) SHA1(cdc34970b0325a24cfd5c187a4b4dbf42be8fc93) )
+ ROM_LOAD( "mxo-cg1215.u75", 0x18000, 0x8000, CRC(73c24e43) SHA1(f09beaf374ad371db2701767ce6ac5bdb13c445a) )
+
+ ROM_REGION( 0x100, "proms", 0 )
+ ROM_LOAD( "cap1215.u50", 0x0000, 0x0100, CRC(294b7b10) SHA1(a405a4b8547b713c5c02dacb19e7354095a7b584) )
+ROM_END
+
ROM_START( pepp0431 ) /* Normal board : Deuces Joker Wild Poker (PP0431) - Multi Regional / Multi Currency - Tournament Mode capable */
/*
With w/o w/o With
@@ -4134,6 +4268,28 @@ PayTable As 2P 3K STR FL FH 4K SF RF 5K RF (Bonus)
ROM_LOAD( "cap740.u50", 0x0000, 0x0100, CRC(6fe619c4) SHA1(49e43dafd010ce0fe9b2a63b96a4ddedcb933c6d) ) /* BPROM type DM74LS471 (compatible with N82S135N) verified */
ROM_END
+ROM_START( pepp0459 ) /* Normal board : Joker Poker (PP0459) */
+/*
+ w/J w/oJ
+PayTable Ks+ 2P 3K STR FL FH 4K SF RF 5K RF (Bonus)
+----------------------------------------------------------------
+ P17A 1 1 2 3 4 5 20 40 100 200 500 800
+ % Range: 91.5-92.5% Optimum: 95.5% Hit Frequency: 44.7%
+ Programs Available: PP0459, X000459P & PP0428 - Non Double-up Only
+*/
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pp0459_979-a0c.u68", 0x00000, 0x10000, CRC(46182faf) SHA1(2ae8b78babd0ee348ae37c0738017a8353eca60c) ) /* Game Version: 979, Library Version: A0c */
+
+ ROM_REGION( 0x020000, "gfx1", 0 )
+ ROM_LOAD( "mro-cg2004.u72", 0x00000, 0x8000, CRC(e5e40ea5) SHA1(e0d9e50b30cc0c25c932b2bf444990df1fb2c38c) ) /* 08/31/94 @ IGT L95-0146 */
+ ROM_LOAD( "mgo-cg2004.u73", 0x08000, 0x8000, CRC(12607f1e) SHA1(248e1ecee4e735f5943c50f8c350ca95b81509a7) )
+ ROM_LOAD( "mbo-cg2004.u74", 0x10000, 0x8000, CRC(78c3fb9f) SHA1(2b9847c511888de507a008dec981778ca4dbcd6c) ) /* Supersedes CG740 */
+ ROM_LOAD( "mxo-cg2004.u75", 0x18000, 0x8000, CRC(5aaa4480) SHA1(353c4ce566c944406fce21f2c5045c856ef7a609) )
+
+ ROM_REGION( 0x100, "proms", 0 )
+ ROM_LOAD( "cap740.u50", 0x0000, 0x0100, CRC(6fe619c4) SHA1(49e43dafd010ce0fe9b2a63b96a4ddedcb933c6d) ) /* BPROM type DM74LS471 (compatible with N82S135N) verified */
+ROM_END
+
ROM_START( pepp0467 ) /* Normal board : Uknown Bonus Poker (PP0467) */
/*
PayTable Js+ 2P 3K STR FL FH 4K ?? SF RF (Bonus)
@@ -4316,7 +4472,7 @@ PayTable Js+ 2PR 3K STR FL FH 4K 4K 4A SF RF (Bonus)
Programs Available: PP0515, X000515P & PP0539 - Non Double-up Only
*/
ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "pp0515_a0n-a23.u68", 0x00000, 0x10000, CRC(76389889) SHA1(992fb7d3f296d1cecab75ab4cf13fff1b7a5cc11) ) /* Game Version: A0N, Library Version: A23, Video Lib ver: A0Y */
+ ROM_LOAD( "pp0515_a46-a75.u68", 0x00000, 0x10000, CRC(ad76895d) SHA1(cb82ad7b05e8962076ceed9e3aa6ead867e95539) ) /* Game Version: A46, Library Version: A75, Video Lib ver: A0Y */
ROM_REGION( 0x020000, "gfx1", 0 )
ROM_LOAD( "mro-cg2003.u72", 0x00000, 0x8000, CRC(0d425f48) SHA1(b60aaf3f4bd76f75f72f6e8dda724bdf795cb521) ) /* 08/30/94 @ IGT L95-0145 */
@@ -4338,7 +4494,7 @@ PayTable Js+ 2PR 3K STR FL FH 4K 4K 4A SF RF (Bonus)
Programs Available: PP0515, X000515P & PP0539 - Non Double-up Only
*/
ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "pp0515_989-974.u68", 0x00000, 0x10000, CRC(bc9654ab) SHA1(ecf2401bfbfcfa22354cde517cf425a8db8ea961) ) /* Game Version: 989, Library Version: 974, Video Lib ver: A0Y */
+ ROM_LOAD( "pp0515_a0n-a23.u68", 0x00000, 0x10000, CRC(76389889) SHA1(992fb7d3f296d1cecab75ab4cf13fff1b7a5cc11) ) /* Game Version: A0N, Library Version: A23, Video Lib ver: A0Y */
ROM_REGION( 0x020000, "gfx1", 0 )
ROM_LOAD( "mro-cg2003.u72", 0x00000, 0x8000, CRC(0d425f48) SHA1(b60aaf3f4bd76f75f72f6e8dda724bdf795cb521) ) /* 08/30/94 @ IGT L95-0145 */
@@ -4360,6 +4516,28 @@ PayTable Js+ 2PR 3K STR FL FH 4K 4K 4A SF RF (Bonus)
Programs Available: PP0515, X000515P & PP0539 - Non Double-up Only
*/
ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pp0515_989-974.u68", 0x00000, 0x10000, CRC(bc9654ab) SHA1(ecf2401bfbfcfa22354cde517cf425a8db8ea961) ) /* Game Version: 989, Library Version: 974, Video Lib ver: A0Y */
+
+ ROM_REGION( 0x020000, "gfx1", 0 )
+ ROM_LOAD( "mro-cg2003.u72", 0x00000, 0x8000, CRC(0d425f48) SHA1(b60aaf3f4bd76f75f72f6e8dda724bdf795cb521) ) /* 08/30/94 @ IGT L95-0145 */
+ ROM_LOAD( "mgo-cg2003.u73", 0x08000, 0x8000, CRC(add0afc4) SHA1(0519bf2f36cb67140933b2c533e625544f27d16b) )
+ ROM_LOAD( "mbo-cg2003.u74", 0x10000, 0x8000, CRC(8649dec0) SHA1(0024d3a8fd85279552910b14b69b225bda93957f) )
+ ROM_LOAD( "mxo-cg2003.u75", 0x18000, 0x8000, CRC(904631cd) SHA1(d280a2f16b51a04b3f601db3535980a765c60e6f) )
+
+ ROM_REGION( 0x100, "proms", 0 )
+ ROM_LOAD( "cap904.u50", 0x0000, 0x0100, CRC(0eec8336) SHA1(a6585c978dbc2f4f3818e3a5b92f8c28be23c4c0) ) /* BPROM type N82S135N verified */
+ROM_END
+
+ROM_START( pepp0515c ) /* Normal board : Double Bonus Poker (PP0515) */
+/*
+ 5-K 2-4
+PayTable Js+ 2PR 3K STR FL FH 4K 4K 4A SF RF (Bonus)
+-----------------------------------------------------------------
+ P324A 1 1 3 5 7 10 50 80 160 50 250 800
+ % Range: 96.2-98.2% Optimum: 100.2% Hit Frequency: 43.3%
+ Programs Available: PP0515, X000515P & PP0539 - Non Double-up Only
+*/
+ ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "pp0515_813-824.u68", 0x00000, 0x10000, CRC(6c06b0ea) SHA1(7907d10d7290080c33e46c9644f24d1d2fc6b3ff) ) /* Game Version: 813, Library Version: 824 */
ROM_REGION( 0x020000, "gfx1", 0 )
@@ -4382,7 +4560,7 @@ PayTable Js+ 2PR 3K STR FL FH 4K 4K 4A SF RF (Bonus)
Programs Available: PP0516, X000516P & PP0540 - Non Double-up Only
*/
ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "pp0516_a46-a75.u68", 0x00000, 0x10000, CRC(6e226711) SHA1(71930ec43c4b75ca50971242be79459976882546) ) /* Game Version: A46, Library Version: A75 */
+ ROM_LOAD( "pp0516_a46-a75.u68", 0x00000, 0x10000, CRC(6e226711) SHA1(71930ec43c4b75ca50971242be79459976882546) ) /* Game Version: A46, Library Version: A75, Video Lib ver: A0Y */
ROM_REGION( 0x020000, "gfx1", 0 )
ROM_LOAD( "mro-cg2003.u72", 0x00000, 0x8000, CRC(0d425f48) SHA1(b60aaf3f4bd76f75f72f6e8dda724bdf795cb521) ) /* 08/30/94 @ IGT L95-0145 */
@@ -4580,7 +4758,31 @@ PayTable 2P 3K STR FL FH 4K SF RF 5K RF (Bonus)
Programs Available: PP0550, X000550P
*/
ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "pp0585_a6k-a9g.u68", 0x00000, 0x10000, CRC(1de4ee32) SHA1(0e06a43e7e3988cc2fddd1a57af724f5421d2ca4) ) /* Game Version: A6K, Library Version: A9G */
+ ROM_LOAD( "pp0550_a6k-a9g.u68", 0x00000, 0x10000, CRC(1de4ee32) SHA1(0e06a43e7e3988cc2fddd1a57af724f5421d2ca4) ) /* Game Version: A6K, Library Version: A9G */
+
+ ROM_REGION( 0x020000, "gfx1", 0 )
+ ROM_LOAD( "mro-cg2004.u72", 0x00000, 0x8000, CRC(e5e40ea5) SHA1(e0d9e50b30cc0c25c932b2bf444990df1fb2c38c) ) /* 08/31/94 @ IGT L95-0146 */
+ ROM_LOAD( "mgo-cg2004.u73", 0x08000, 0x8000, CRC(12607f1e) SHA1(248e1ecee4e735f5943c50f8c350ca95b81509a7) )
+ ROM_LOAD( "mbo-cg2004.u74", 0x10000, 0x8000, CRC(78c3fb9f) SHA1(2b9847c511888de507a008dec981778ca4dbcd6c) ) /* Supersedes CG740 */
+ ROM_LOAD( "mxo-cg2004.u75", 0x18000, 0x8000, CRC(5aaa4480) SHA1(353c4ce566c944406fce21f2c5045c856ef7a609) )
+
+ ROM_REGION( 0x100, "proms", 0 )
+ ROM_LOAD( "cap904.u50", 0x0000, 0x0100, CRC(0eec8336) SHA1(a6585c978dbc2f4f3818e3a5b92f8c28be23c4c0) ) /* BPROM type N82S135N verified */
+ROM_END
+
+ROM_START( pepp0555 ) /* Normal board : Standard Draw Poker (PP0555) */
+/*
+PayTable Js+ 2PR 3K STR FL FH 4K SF RF (Bonus)
+---------------------------------------------------------
+ CA 1 2 3 4 6 9 25 50 250 800
+ % Range: 95.5-97.5% Optimum: 99.5% Hit Frequency: 45.5%
+ Programs Available: PP0132, PP0447, PP0555, X000447P
+
+Internally the program reports a 99.40% return.
+
+*/
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pp0555_966-991.u68", 0x00000, 0x10000, CRC(d3e125d3) SHA1(035141511bf19eeb4d0012f456a9f75140e6c308) ) /* Game Version: 966, Library Version: 991 */
ROM_REGION( 0x020000, "gfx1", 0 )
ROM_LOAD( "mro-cg2004.u72", 0x00000, 0x8000, CRC(e5e40ea5) SHA1(e0d9e50b30cc0c25c932b2bf444990df1fb2c38c) ) /* 08/31/94 @ IGT L95-0146 */
@@ -5529,6 +5731,20 @@ ROM_START( pebe0014a ) /* Normal board : Blackjack (BE0014) English / Spanish -
ROM_LOAD( "cap707.u50", 0x0000, 0x0100, CRC(9851ba36) SHA1(5a0a43c1e212ae8c173102ede9c57a3d95752f99) )
ROM_END
+ROM_START( peke0004 ) /* Normal board : Keno 1-10 Spot (KE0004) */
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "ke0004_566-a17.u68", 0x00000, 0x10000, CRC(dd3b8a70) SHA1(8e402fea9f2e055be309ba24f518b3b513d39ce8) ) /* Game Version: 566, Library Version: A17 */
+
+ ROM_REGION( 0x020000, "gfx1", 0 )
+ ROM_LOAD( "mro-cg1273.u72", 0x00000, 0x8000, CRC(650f4af8) SHA1(e37d1d8c17924d21958420b5a94f12a415409091) )
+ ROM_LOAD( "mgo-cg1273.u73", 0x08000, 0x8000, CRC(e20d65de) SHA1(e78192314ce4864dd02c39f72d8d1c4bc70bb95e) )
+ ROM_LOAD( "mbo-cg1273.u74", 0x10000, 0x8000, CRC(61744af9) SHA1(1ab2a2b84dc1869fbb23e028c826490d39512ce7) )
+ ROM_LOAD( "mxo-cg1273.u75", 0x18000, 0x8000, CRC(fee165ed) SHA1(26f2c35f091a496bb61789c701795eabb3e5735e) )
+
+ ROM_REGION( 0x100, "proms", 0 )
+ ROM_LOAD( "cap1267.u50", 0x0000, 0x0100, CRC(7051db57) SHA1(76751a3cc47d506983205decb07e99ca0c178a42) )
+ROM_END
+
ROM_START( peke0017 ) /* Normal board : Keno 1-10 Spot (KE0017) */
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "ke0017_560-a07.u68", 0x00000, 0x08000, CRC(a0f70116) SHA1(15808cd3245e2e5934f3365f95590da0be552e8b) ) /* Game Version: 560, Library Version: A07 */
@@ -5544,8 +5760,36 @@ ROM_START( peke0017 ) /* Normal board : Keno 1-10 Spot (KE0017) */
ROM_LOAD( "cap1016.u50", 0x0000, 0x0100, CRC(12e1be25) SHA1(501487bc729eb80fcf9e61705d3546de5e0d7cde) )
ROM_END
+ROM_START( peke1006 ) /* Normal board : Keno 1-10 Spot (KE1006) - Payout 87.61%, Paytable 87-C */
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "ke1006_590-a77.u68", 0x00000, 0x10000, CRC(5f2a9aac) SHA1(67d24e376d0dcea30d68c3019919e02261c38d7d) ) /* Game Version: 590, Library Version: A77 */
+
+ ROM_REGION( 0x020000, "gfx1", 0 )
+ ROM_LOAD( "mro-cg1267.u72", 0x00000, 0x8000, CRC(16498b57) SHA1(9c22726299af7204c4be1c6d8afc4c1b512ad918) )
+ ROM_LOAD( "mgo-cg1267.u73", 0x08000, 0x8000, CRC(80847c5a) SHA1(8422cd13a91c3c462af5efcfca8615e7eeaa2e52) )
+ ROM_LOAD( "mbo-cg1267.u74", 0x10000, 0x8000, CRC(ce7af8a7) SHA1(38675122c764b8fa9260246ea99ac0f0750da277) )
+ ROM_LOAD( "mxo-cg1267.u75", 0x18000, 0x8000, CRC(a4394303) SHA1(30a07028de35f74cc4fb776b0505ca743c8d7b5b) )
+
+ ROM_REGION( 0x100, "proms", 0 )
+ ROM_LOAD( "cap1267.u50", 0x0000, 0x0100, CRC(7051db57) SHA1(76751a3cc47d506983205decb07e99ca0c178a42) )
+ROM_END
+
ROM_START( peke1012 ) /* Normal board : Keno 1-10 Spot (KE1012) - Payout 90.27%, Paytable 90-P */
ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "ke1012_582-a77.u68", 0x00000, 0x10000, CRC(87f696ba) SHA1(de6cc7ff799218ae6fb75521243534484ef4b9a8) ) /* Game Version: 582, Library Version: A77 */
+
+ ROM_REGION( 0x020000, "gfx1", 0 )
+ ROM_LOAD( "mro-cg1267.u72", 0x00000, 0x8000, CRC(16498b57) SHA1(9c22726299af7204c4be1c6d8afc4c1b512ad918) )
+ ROM_LOAD( "mgo-cg1267.u73", 0x08000, 0x8000, CRC(80847c5a) SHA1(8422cd13a91c3c462af5efcfca8615e7eeaa2e52) )
+ ROM_LOAD( "mbo-cg1267.u74", 0x10000, 0x8000, CRC(ce7af8a7) SHA1(38675122c764b8fa9260246ea99ac0f0750da277) )
+ ROM_LOAD( "mxo-cg1267.u75", 0x18000, 0x8000, CRC(a4394303) SHA1(30a07028de35f74cc4fb776b0505ca743c8d7b5b) )
+
+ ROM_REGION( 0x100, "proms", 0 )
+ ROM_LOAD( "cap1267.u50", 0x0000, 0x0100, CRC(7051db57) SHA1(76751a3cc47d506983205decb07e99ca0c178a42) )
+ROM_END
+
+ROM_START( peke1012a ) /* Normal board : Keno 1-10 Spot (KE1012) - Payout 90.27%, Paytable 90-P */
+ ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "ke1012_576-a3u.u68", 0x00000, 0x10000, CRC(470e8c10) SHA1(f8a65a3a73477e9e9d2f582eeefa93b470497dfa) ) /* Game Version: 576, Library Version: A3U */
ROM_REGION( 0x020000, "gfx1", 0 )
@@ -5560,6 +5804,20 @@ ROM_END
ROM_START( peke1013 ) /* Normal board : Keno 2-10 Spot (KE1013) - Payout 91.97%, Paytable 91-D */
ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "ke1013_686-a8r.u68", 0x00000, 0x10000, CRC(97ae2ee7) SHA1(df680ff46320e21a352406e2eaf92003f86434a4) ) /* Game Version: 686, Library Version: A8R */
+
+ ROM_REGION( 0x020000, "gfx1", 0 )
+ ROM_LOAD( "mro-cg1267.u72", 0x00000, 0x8000, CRC(16498b57) SHA1(9c22726299af7204c4be1c6d8afc4c1b512ad918) )
+ ROM_LOAD( "mgo-cg1267.u73", 0x08000, 0x8000, CRC(80847c5a) SHA1(8422cd13a91c3c462af5efcfca8615e7eeaa2e52) )
+ ROM_LOAD( "mbo-cg1267.u74", 0x10000, 0x8000, CRC(ce7af8a7) SHA1(38675122c764b8fa9260246ea99ac0f0750da277) )
+ ROM_LOAD( "mxo-cg1267.u75", 0x18000, 0x8000, CRC(a4394303) SHA1(30a07028de35f74cc4fb776b0505ca743c8d7b5b) )
+
+ ROM_REGION( 0x100, "proms", 0 )
+ ROM_LOAD( "cap1267.u50", 0x0000, 0x0100, CRC(7051db57) SHA1(76751a3cc47d506983205decb07e99ca0c178a42) )
+ROM_END
+
+ROM_START( peke1013a ) /* Normal board : Keno 2-10 Spot (KE1013) - Payout 91.97%, Paytable 91-D */
+ ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "ke1013_590-a77.u68", 0x00000, 0x10000, CRC(3b178f94) SHA1(c601150a728d750b73f949ba6e2d2979c4c4be2e) ) /* Game Version: 590, Library Version: A77 */
ROM_REGION( 0x020000, "gfx1", 0 )
@@ -6230,7 +6488,7 @@ PayTable 3K STR FL FH 4K SF 5K RF 4D RF (Bonus)
ROM_LOAD( "x000055p.u66", 0x00000, 0x10000, CRC(e06819df) SHA1(36590c4588b8036908e63714fbb3e77d23e60eae) ) /* Deuces Wild Poker */
ROM_REGION( 0x020000, "gfx1", 0 )
- ROM_LOAD( "mro-cg2389.u77", 0x00000, 0x8000, CRC(912d639f) SHA1(f66f5db847816754c4f1fbeb1171c4e6c1331039) ) /* The Wild Wild West Casino card backs */
+ ROM_LOAD( "mro-cg2389.u77", 0x00000, 0x8000, CRC(912d639f) SHA1(f66f5db847816754c4f1fbeb1171c4e6c1331039) ) /* Custom The Wild Wild West Casino card backs */
ROM_LOAD( "mgo-cg2389.u78", 0x08000, 0x8000, CRC(87de1a4e) SHA1(4f8524eba297771d3292dd2fca9008546d0e3066) )
ROM_LOAD( "mbo-cg2389.u79", 0x10000, 0x8000, CRC(7c248712) SHA1(4c2cfd7f46fa757438706095137ccf230c30f3a4) )
ROM_LOAD( "mxo-cg2389.u80", 0x18000, 0x8000, CRC(4fdb7daf) SHA1(131d0a5c33f75f859522a4307c0e23273d5d4cb6) )
@@ -6256,13 +6514,13 @@ PayTable 3K STR FL FH 4K SF 5K RF 4D RF (Bonus)
ROM_LOAD( "x000055p.u66", 0x00000, 0x10000, CRC(e06819df) SHA1(36590c4588b8036908e63714fbb3e77d23e60eae) ) /* Deuces Wild Poker */
ROM_REGION( 0x020000, "gfx1", 0 )
- ROM_LOAD( "mro-cg2185.u77", 0x00000, 0x8000, CRC(7e64bd1a) SHA1(e988a380ee58078bf5bdc7747e83aed1393cfad8) ) /* 07/10/95 @ IGT L95-1506 */
- ROM_LOAD( "mgo-cg2185.u78", 0x08000, 0x8000, CRC(d4127893) SHA1(75039c45ba6fd171a66876c91abc3191c7feddfc) )
- ROM_LOAD( "mbo-cg2185.u79", 0x10000, 0x8000, CRC(17dba955) SHA1(5f77379c88839b3a04e235e4fb0120c77e17b60e) )
- ROM_LOAD( "mxo-cg2185.u80", 0x18000, 0x8000, CRC(583eb3b1) SHA1(4a2952424969917fb1594698a779fe5a1e99bff5) )
+ ROM_LOAD( "mro-cg2354.u77", 0x00000, 0x8000, CRC(e7913f01) SHA1(43b99f347f0566949cad4172bdf1462dbc2ad860) ) /* Custom Sunset Station Hotel-Casino card backs */
+ ROM_LOAD( "mgo-cg2354.u78", 0x08000, 0x8000, CRC(317381b8) SHA1(196794335a7a85fd50f4e0da00ceb5ba6a93b36c) )
+ ROM_LOAD( "mbo-cg2354.u79", 0x10000, 0x8000, CRC(ccc643fa) SHA1(9ca9b35f2eed46824d11a8a3b937eb1b2afb639c) )
+ ROM_LOAD( "mxo-cg2354.u80", 0x18000, 0x8000, CRC(b06a49b8) SHA1(822ab7e53247e27feecbe96491bef0efea05212d) )
ROM_REGION( 0x200, "proms", 0 )
- ROM_LOAD( "capx1321.u43", 0x0000, 0x0200, CRC(4b57569f) SHA1(fa29c0f627e7ce79951ec6dadec114864144f37d) )
+ ROM_LOAD( "capx2354.u43", 0x0000, 0x0200, CRC(c16e03ed) SHA1(59c0e98b40353e012f2dc2ce25dd46433449e8cc) )
ROM_END
ROM_START( pex0055pf ) /* Superboard : Deuces Wild Poker (X000055P+XP000040) */
@@ -6987,6 +7245,31 @@ PayTable 3K STR FL FH 4K SF 5K RF 4D RF (Bonus)
ROM_LOAD( "capx1321.u43", 0x0000, 0x0200, CRC(4b57569f) SHA1(fa29c0f627e7ce79951ec6dadec114864144f37d) )
ROM_END
+ROM_START( pex0426p ) /* Superboard : Joker Poker (X000426P+XP000038) */
+/*
+ w/J w/oJ
+PayTable Ks+ 2P 3K STR FL FH 4K SF RF 5K RF (Bonus)
+----------------------------------------------------------------
+ YD 1 1 1 3 5 7 15 50 100 200 400 940
+ % Range: 92.7-94.7% Optimum: 96.7% Hit Frequency: 44.1%
+ Programs Available: PP0426, X000426P
+*/
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "xp000038.u67", 0x00000, 0x10000, CRC(8707ab9e) SHA1(3e00a2ad8017e1495c6d6fe900d0efa68a1772b8) ) /* 09/05/95 @ IGT L95-2452 */
+
+ ROM_REGION( 0x10000, "user1", 0 )
+ ROM_LOAD( "x000426p.u66", 0x00000, 0x10000, CRC(84a7a946) SHA1(e1e8ff3f16b0c51f723afba35d8f2b1a1451fa22) ) /* Joker Poker */
+
+ ROM_REGION( 0x020000, "gfx1", 0 )
+ ROM_LOAD( "mro-cg2185.u77", 0x00000, 0x8000, CRC(7e64bd1a) SHA1(e988a380ee58078bf5bdc7747e83aed1393cfad8) ) /* 07/10/95 @ IGT L95-1506 */
+ ROM_LOAD( "mgo-cg2185.u78", 0x08000, 0x8000, CRC(d4127893) SHA1(75039c45ba6fd171a66876c91abc3191c7feddfc) )
+ ROM_LOAD( "mbo-cg2185.u79", 0x10000, 0x8000, CRC(17dba955) SHA1(5f77379c88839b3a04e235e4fb0120c77e17b60e) )
+ ROM_LOAD( "mxo-cg2185.u80", 0x18000, 0x8000, CRC(583eb3b1) SHA1(4a2952424969917fb1594698a779fe5a1e99bff5) )
+
+ ROM_REGION( 0x200, "proms", 0 )
+ ROM_LOAD( "capx1321.u43", 0x0000, 0x0200, CRC(4b57569f) SHA1(fa29c0f627e7ce79951ec6dadec114864144f37d) )
+ROM_END
+
ROM_START( pex0430p ) /* Superboard : Dueces Joker Wild Poker (X000430P+XP000079) */
/*
With w/o w/o With
@@ -7849,7 +8132,7 @@ PayTable Js+ 2PR 3K STR FL FH 4K 4K 4A SF RF (Bonus)
% Range: 93.8-95.8% Optimum: 97.8% Hit Frequency: 44.5%
Programs Available: X002024P
-NOTE: Same as X000516P, except MAX Coin (set to 5) CANNOT be changed
+NOTE: Same as X000516P, except MAX Coin (set to 5) CANNOT be changed - NJ jurisdiction
*/
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "xp000038.u67", 0x00000, 0x10000, CRC(8707ab9e) SHA1(3e00a2ad8017e1495c6d6fe900d0efa68a1772b8) ) /* 09/05/95 @ IGT L95-2452 */
@@ -8589,6 +8872,33 @@ SA$ - Sequential ACE$ pays the same as RF
ROM_LOAD( "capx2172.u43", 0x0000, 0x0200, CRC(c9b4f1da) SHA1(c911da564cfb33218441de0f91e67a02191d76c2) ) /* Philips N82S147N */
ROM_END
+ROM_START( pex2179p ) /* Superboard : Double Bonus Poker (X002179P+XP000119) */
+/*
+ 5-K 2-4
+PayTable Js+ 2PR 3K STR FL FH 4K 4K 4A SF RF (Bonus)
+-----------------------------------------------------------------
+ P435A 1 1 3 4 5 8 50 80 160 50 250 800
+ % Range: 90.2-92.2% Optimum: 94.2% Hit Frequency: 45.1%
+ Programs Available: X002179P
+
+NOTE: Same as X000726P, except MAX Coin (set to 5) CANNOT be changed - NJ jurisdiction
+*/
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "xp000119.u67", 0x00000, 0x10000, CRC(f3e7b14c) SHA1(b225900afca61740e842743453346aaa7ed34687) )
+
+ ROM_REGION( 0x10000, "user1", 0 )
+ ROM_LOAD( "x002179p.u66", 0x00000, 0x10000, CRC(8bdbdb31) SHA1(4ce2a652fd14b830f4d56883358f5dcb9fd29e36) ) /* Double Bonus Poker */
+
+ ROM_REGION( 0x020000, "gfx1", 0 )
+ ROM_LOAD( "mro-cg2185.u77", 0x00000, 0x8000, CRC(7e64bd1a) SHA1(e988a380ee58078bf5bdc7747e83aed1393cfad8) ) /* 07/10/95 @ IGT L95-1506 */
+ ROM_LOAD( "mgo-cg2185.u78", 0x08000, 0x8000, CRC(d4127893) SHA1(75039c45ba6fd171a66876c91abc3191c7feddfc) )
+ ROM_LOAD( "mbo-cg2185.u79", 0x10000, 0x8000, CRC(17dba955) SHA1(5f77379c88839b3a04e235e4fb0120c77e17b60e) )
+ ROM_LOAD( "mxo-cg2185.u80", 0x18000, 0x8000, CRC(583eb3b1) SHA1(4a2952424969917fb1594698a779fe5a1e99bff5) )
+
+ ROM_REGION( 0x200, "proms", 0 )
+ ROM_LOAD( "capx1321.u43", 0x0000, 0x0200, CRC(4b57569f) SHA1(fa29c0f627e7ce79951ec6dadec114864144f37d) )
+ROM_END
+
ROM_START( pex2180p ) /* Superboard : Double Bonus Poker (X002180P+XP000038) */
/*
5-K 2-4
@@ -8597,6 +8907,8 @@ PayTable Js+ 2PR 3K STR FL FH 4K 4K 4A SF RF (Bonus)
P437A 1 1 3 4 5 6 50 80 160 50 250 800
% Range: 88.0-90.0% Optimum: 92.0% Hit Frequency: 45.1%
Programs Available: X002180P
+
+NOTE: Same as X000728P, except MAX Coin (set to 5) CANNOT be changed - NJ jurisdiction
*/
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "xp000038.u67", 0x00000, 0x10000, CRC(8707ab9e) SHA1(3e00a2ad8017e1495c6d6fe900d0efa68a1772b8) ) /* 09/05/95 @ IGT L95-2452 */
@@ -8939,6 +9251,43 @@ Designed and co-created by Best Bet Products
ROM_LOAD( "capx1321.u43", 0x0000, 0x0200, CRC(4b57569f) SHA1(fa29c0f627e7ce79951ec6dadec114864144f37d) ) /* Wrong!! Should be CAPX2325 */
ROM_END
+ROM_START( pex2287p ) /* Superboard : Pay the Aces NO Faces Bonus (X002287P+XP000057) */
+/*
+
+ 5-K 2-4
+PayTable Js+ 2PR 3K STR FL FH 4K 4K 4A SF RF (Bonus)
+------------------------------------------------------------------
+ ???? 1 1 2 4 5 8 25 40 80 50 250 800
+ % Range: 94.4-96.4% Optimum: 98.4% Hit Frequency: ??.?%
+ Programs Available: X002287P
+
+Bonus "Dealt" payouts per Coin bet are:
+ Dealt Royal Flush ..... 1000
+ Dealt 1 Ace no Faces ..... 1
+ Dealt 2 Aces no Faces ..... 2
+ Dealt 3 Aces no Faces ..... 50
+ Dealt 4 Aces no Faces ..... 1500
+
+Designed and co-created by Best Bet Products
+
+*/
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "xp000057.u67", 0x00000, 0x10000, CRC(a1186020) SHA1(d42823aac1cb16521ecc0a09cba694374642cff7) )
+
+ ROM_REGION( 0x10000, "user1", 0 )
+ ROM_LOAD( "x002287p.u66", 0x00000, 0x10000, CRC(f5a8f485) SHA1(4bf9ad2a75acd5445e97661efe8a39ceb8b97549) ) /* Pay the Acse NO Faces Bonus */
+
+ ROM_REGION( 0x020000, "gfx1", 0 )
+ ROM_LOAD( "mro-cg2325.u77", 0x00000, 0x8000, CRC(ae53d1f6) SHA1(bf28b8f784d6683bb352944b88d0b646d7313efd) )
+ ROM_LOAD( "mgo-cg2325.u78", 0x08000, 0x8000, CRC(a637679e) SHA1(4cb24f1f907ae482419981cac49af19ca1cdbc99) )
+ ROM_LOAD( "mbo-cg2325.u79", 0x10000, 0x8000, CRC(4a179b6d) SHA1(2ed51ed85444b939bbd48344f18fa97c146438ff) )
+ ROM_LOAD( "mxo-cg2325.u80", 0x18000, 0x8000, CRC(afae8fd5) SHA1(7c6380f21fe8444234ada8d88a46d3a4f1623b29) )
+
+ ROM_REGION( 0x200, "proms", 0 )
+ ROM_LOAD( "capx2325.u43", 0x0000, 0x0200, NO_DUMP )
+ ROM_LOAD( "capx1321.u43", 0x0000, 0x0200, CRC(4b57569f) SHA1(fa29c0f627e7ce79951ec6dadec114864144f37d) ) /* Wrong!! Should be CAPX2325 */
+ROM_END
+
ROM_START( pex2297p ) /* Superboard : Jackpot Poker (X002297P+XP000053) */
/*
PayTable Js+ 2PR 3K STR FL FH 4K SF RF (Bonus)
@@ -9941,7 +10290,7 @@ Double Bonus Poker P325A 97.80%
ROM_LOAD( "mgo-cg2174.u78", 0x08000, 0x8000, CRC(cc46adb0) SHA1(6065aa5dcb9091ad80e499c7ee6dc629e79c865a) )
ROM_LOAD( "mbo-cg2174.u79", 0x10000, 0x8000, CRC(7291a0c8) SHA1(1068f35e6ef5fd88c584922860231840a90fb623) )
ROM_LOAD( "mxo-cg2174.u80", 0x18000, 0x8000, CRC(14f9480c) SHA1(59323f9fc5995277aea86d088893b6eb95b4e89b) )
-
+
ROM_REGION( 0x200, "proms", 0 )
ROM_LOAD( "capx2174.u43", 0x0000, 0x0200, CRC(50bdad55) SHA1(958d463c7effb3457c1f9c44c9b7822339c04e8b) )
ROM_END
@@ -10032,6 +10381,35 @@ Double Bonus Poker P323A 99.10%
ROM_LOAD( "capx2174.u43", 0x0000, 0x0200, CRC(50bdad55) SHA1(958d463c7effb3457c1f9c44c9b7822339c04e8b) )
ROM_END
+ROM_START( pexm006pa ) /* Superboard : Multi-Poker (XM00006P) - Bonus Poker, Bonus Poker Dlx, Deuces Wild Poker, Jacks or Better & Dbl Bonus Poker */
+/*
+Combined average payout percent: 99.04%
+
+Game Type PayTable Payout
+-------------------------------------
+Bonus Poker P77A 99.20%
+Bonus Poker Deluxe P200A 98.50%
+Deuces Wild Poker P62A 98.90%
+Jacks or Better CA 99.50%
+Double Bonus Poker P323A 99.10%
+*/
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "xmp00002.u67", 0x00000, 0x10000, CRC(d5624ac8) SHA1(6b778b0e7ddb81123c6038920b3447e05a0556b2) ) /* 09/07/95 @ IGT L95-2183 - Linkable Progressive */
+ /* Also known to be found with XMP00003, XMP00006, XMP00020 or XMP00024 programs */
+
+ ROM_REGION( 0x10000, "user1", 0 )
+ ROM_LOAD( "xm00006p.u66", 0x00000, 0x10000, CRC(b464ee79) SHA1(8768e52c66881c8f327055124ff31bcad79fd027) ) /* 03/08/96 @ IGT NV */
+
+ ROM_REGION( 0x020000, "gfx1", 0 )
+ ROM_LOAD( "mro-cg2294.u77", 0x00000, 0x8000, CRC(2f707abc) SHA1(3ed14b165cc1c6ad1a0c8ceddbe6d10666de7a1e) ) /* Custom The Orleans graphics */
+ ROM_LOAD( "mgo-cg2294.u78", 0x08000, 0x8000, CRC(3dc48f1a) SHA1(d0c4861eba3f37064c6a1b62488764e18a762461) ) /* Compatible with XM00001P, XM00002P, XM00003P & XM00006P */
+ ROM_LOAD( "mbo-cg2294.u79", 0x10000, 0x8000, CRC(ce8aebdb) SHA1(0c08561016aeadee95e843299cccff3114d839e2) )
+ ROM_LOAD( "mxo-cg2294.u80", 0x18000, 0x8000, CRC(5fba4c90) SHA1(259359b11af9a554364ae90989a23fc2c848d16c) )
+
+ ROM_REGION( 0x200, "proms", 0 )
+ ROM_LOAD( "capx2294.u43", 0x0000, 0x0200, CRC(641b72c0) SHA1(22f940defceee579fce8547c3469765be730ec56) )
+ROM_END
+
ROM_START( pexm007p ) /* Superboard : Multi-Poker (XM00007P) - Bonus Poker, Dbl Dbl Bonus Poker, Deuces Wild Poker, Dbl Bonus Poker & Jacks or Better */
/*
Combined average payout percent: 97.38%
@@ -10438,18 +10816,22 @@ GAMEL(1987, pepp0009, pepp0002, peplus, peplus_poker, peplus_state, nonplus,
GAMEL(1987, pepp0010, pepp0002, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0010) Standard Draw Poker", 0, layout_pe_poker )
GAMEL(1987, pepp0014, pepp0002, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0014) Standard Draw Poker (International)", 0, layout_pe_poker )
GAMEL(1987, pepp0014a, pepp0002, peplus, peplus_poker, peplus_state, nonplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0014) Standard Draw Poker", 0, layout_pe_poker )
-GAMEL(1987, pepp0021, pepp0002, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0021) Standard Draw Poker", GAME_NOT_WORKING, layout_pe_poker) /* Progressive with link ONLY */
+GAMEL(1987, pepp0021, pepp0002, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0021) Standard Draw Poker", MACHINE_NOT_WORKING, layout_pe_poker) /* Progressive with link ONLY */
GAMEL(1987, pepp0023, pepp0002, peplus, peplus_poker, peplus_state, nonplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0023) 10's or Better", 0, layout_pe_poker )
GAMEL(1987, pepp0038, pepp0002, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0038) Standard Draw Poker", 0, layout_pe_poker )
GAMEL(1987, pepp0040, pepp0002, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0040) Standard Draw Poker (set 1)", 0, layout_pe_poker )
GAMEL(1987, pepp0040a, pepp0002, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0040) Standard Draw Poker (set 2)", 0, layout_pe_poker )
GAMEL(1987, pepp0040b, pepp0002, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0040) Standard Draw Poker (International)", 0, layout_pe_poker )
GAMEL(1987, pepp0041, pepp0002, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0041) Standard Draw Poker", 0, layout_pe_poker )
-GAMEL(1987, pepp0042, pepp0002, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0042) 10's or Better", 0, layout_pe_poker )
+GAMEL(1987, pepp0042, pepp0002, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0042) 10's or Better (set 1)", 0, layout_pe_poker )
+GAMEL(1987, pepp0042a, pepp0002, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0042) 10's or Better (set 2)", 0, layout_pe_poker )
GAMEL(1987, pepp0043, pepp0002, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0043) 10's or Better", 0, layout_pe_poker )
GAMEL(1987, pepp0043a, pepp0002, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0043) 10's or Better (International, set 1)",0, layout_pe_poker )
GAMEL(1987, pepp0043b, pepp0002, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0043) 10's or Better (International, set 2)",0, layout_pe_poker )
GAMEL(1987, pepp0045, pepp0002, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0045) 10's or Better", 0, layout_pe_poker )
+GAMEL(1987, pepp0045a, pepp0002, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0045) 10's or Better (Gambler Downtown Reno)", 0, layout_pe_poker )
+GAMEL(1987, pepp0045b, pepp0002, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0045) 10's or Better (Par-A-Dice Riverboat Casino)", MACHINE_WRONG_COLORS, layout_pe_poker ) /* CAP1150 not dumped */
+GAMEL(1987, pepp0045c, pepp0002, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0045) 10's or Better (Annie Oakley's Central City)", MACHINE_WRONG_COLORS, layout_pe_poker ) /* CAP1072 not dumped */
GAMEL(1987, pepp0046, pepp0002, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0046) 10's or Better (set 1)", 0, layout_pe_poker )
GAMEL(1987, pepp0046a, pepp0002, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0046) 10's or Better (International)",0, layout_pe_poker )
GAMEL(1987, pepp0046b, pepp0002, peplus, peplus_poker, peplus_state, nonplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0046) 10's or Better (set 2)", 0, layout_pe_poker )
@@ -10458,7 +10840,8 @@ GAMEL(1987, pepp0051, pepp0053, peplus, peplus_poker, peplus_state, nonplus,
GAMEL(1987, pepp0053, 0, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0053) Joker Poker (Aces or Better)", 0, layout_pe_poker )
GAMEL(1987, pepp0055, 0, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0055) Deuces Wild Poker (set 1)", 0, layout_pe_poker )
GAMEL(1987, pepp0055a, pepp0055, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0055) Deuces Wild Poker (set 2)", 0, layout_pe_poker )
-GAMEL(1987, pepp0055b, pepp0055, peplus, peplus_poker, peplus_state, nonplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0055) Deuces Wild Poker (set 3)", 0, layout_pe_poker )
+GAMEL(1987, pepp0055b, pepp0055, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0055) Deuces Wild Poker (set 2, Skyline Casino)", 0, layout_pe_poker )
+GAMEL(1987, pepp0055c, pepp0055, peplus, peplus_poker, peplus_state, nonplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0055) Deuces Wild Poker (set 3)", 0, layout_pe_poker )
GAMEL(1987, pepp0057, pepp0055, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0057) Deuces Wild Poker (set 1)", 0, layout_pe_poker )
GAMEL(1987, pepp0057a, pepp0055, peplus, peplus_poker, peplus_state, nonplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0057) Deuces Wild Poker (set 2)", 0, layout_pe_poker )
GAMEL(1987, pepp0059, pepp0002, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0059) Two Pair or Better (set 1)", 0, layout_pe_poker )
@@ -10485,7 +10868,7 @@ GAMEL(1987, pepp0130, 0, peplus, peplus_poker, peplus_state, peplus,
GAMEL(1987, pepp0132, pepp0002, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0132) Standard Draw Poker", 0, layout_pe_poker )
GAMEL(1987, pepp0150, pepp0002, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0150) Standard Draw Poker", 0, layout_pe_poker )
GAMEL(1987, pepp0158, 0, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0158) 4 of a Kind Bonus Poker (set 1)", 0, layout_pe_poker )
-GAMEL(1987, pepp0158a, pepp0158, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0158) 4 of a Kind Bonus Poker (set 2)", 0, layout_pe_poker )
+GAMEL(1987, pepp0158a, pepp0158, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0158) 4 of a Kind Bonus Poker (set 2, Skyline Casino)", 0, layout_pe_poker )
GAMEL(1987, pepp0158b, pepp0158, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0158) 4 of a Kind Bonus Poker (set 3)", 0, layout_pe_poker )
GAMEL(1987, pepp0158c, pepp0158, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0158) 4 of a Kind Bonus Poker (set 4)", 0, layout_pe_poker )
GAMEL(1987, pepp0158d, pepp0158, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0158) 4 of a Kind Bonus Poker (set 5)", 0, layout_pe_poker )
@@ -10542,6 +10925,7 @@ GAMEL(1987, pepp0426, pepp0053, peplus, peplus_poker, peplus_state, peplus,
GAMEL(1987, pepp0428, pepp0053, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0428) Joker Poker", 0, layout_pe_poker )
GAMEL(1987, pepp0429, pepp0053, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0429) Joker Poker (Aces or Better, set 1)", 0, layout_pe_poker )
GAMEL(1987, pepp0429a, pepp0053, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0429) Joker Poker (Aces or Better, set 2)", 0, layout_pe_poker )
+GAMEL(1987, pepp0430, pepp0127, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0430) Deuces Joker Wild Poker", 0, layout_pe_poker )
GAMEL(1987, pepp0431, pepp0127, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0431) Deuces Joker Wild Poker (International)", 0, layout_pe_poker )
GAMEL(1987, pepp0434, 0, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0434) Bonus Poker Deluxe", 0, layout_pe_poker )
GAMEL(1987, pepp0447, pepp0002, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0447) Standard Draw Poker (set 1)", 0, layout_pe_poker )
@@ -10553,6 +10937,7 @@ GAMEL(1987, pepp0454, pepp0434, peplus, peplus_poker, peplus_state, peplus,
GAMEL(1987, pepp0455, pepp0053, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0455) Joker Poker", 0, layout_pe_poker )
GAMEL(1987, pepp0467, pepp0158, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0467) 4 of a Kind Bonus Poker", 0, layout_pe_poker )
GAMEL(1987, pepp0458, pepp0053, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0458) Joker Poker (Aces or Better)", 0, layout_pe_poker )
+GAMEL(1987, pepp0459, pepp0053, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0459) Joker Poker", 0, layout_pe_poker )
GAMEL(1985, pepp0488, pepp0002, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0488) Standard Draw Poker (Arizona Charlie's)", 0, layout_pe_poker )
GAMEL(1987, pepp0508, 0, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0508) Loose Deuce Deuces Wild! Poker",0, layout_pe_poker )
GAMEL(1987, pepp0509, pepp0002, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0509) Standard Draw Poker", 0, layout_pe_poker )
@@ -10563,6 +10948,7 @@ GAMEL(1987, pepp0514b, pepp0514, peplus, peplus_poker, peplus_state, peplus,
GAMEL(1987, pepp0515, pepp0514, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0515) Double Bonus Poker (set 1)", 0, layout_pe_poker )
GAMEL(1987, pepp0515a, pepp0514, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0515) Double Bonus Poker (set 2)", 0, layout_pe_poker )
GAMEL(1987, pepp0515b, pepp0514, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0515) Double Bonus Poker (set 3)", 0, layout_pe_poker )
+GAMEL(1987, pepp0515c, pepp0514, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0515) Double Bonus Poker (set 4)", 0, layout_pe_poker )
GAMEL(1987, pepp0516, pepp0514, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0516) Double Bonus Poker (set 1)", 0, layout_pe_poker )
GAMEL(1987, pepp0516a, pepp0514, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0516) Double Bonus Poker (set 2)", 0, layout_pe_poker )
GAMEL(1987, pepp0516b, pepp0514, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0516) Double Bonus Poker (International)", 0, layout_pe_poker )
@@ -10573,6 +10959,7 @@ GAMEL(1987, pepp0540, pepp0514, peplus, peplus_poker, peplus_state, peplus,
GAMEL(1987, pepp0542, 0, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0542) One Eyed Jacks Wild Poker (CG2243)", 0, layout_pe_poker )
GAMEL(1987, pepp0542a, pepp0542, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0542) One Eyed Jacks Wild Poker (CG2020)", 0, layout_pe_poker )
GAMEL(1987, pepp0550, pepp0053, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0550) Joker Poker (Two Pair or Better)", 0, layout_pe_poker )
+GAMEL(1987, pepp0555, pepp0002, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0555) Standard Draw Poker", 0, layout_pe_poker )
GAMEL(1987, pepp0568, pepp0053, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0568) Joker Poker", 0, layout_pe_poker )
GAMEL(1987, pepp0585, pepp0002, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0585) Standard Draw Poker", 0, layout_pe_poker )
GAMEL(1987, pepp0713, pepp0434, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0713) Bonus Poker Deluxe", 0, layout_pe_poker )
@@ -10585,9 +10972,9 @@ GAMEL(1987, pepp0757, pepp0250, peplus, peplus_poker, peplus_state, peplus,
GAMEL(1987, pepp0760, pepp0250, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0760) Double Down Stud Poker", 0, layout_pe_poker )
GAMEL(1987, pepp0763, pepp0158, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0763) 4 of a Kind Bonus Poker", 0, layout_pe_poker )
GAMEL(1987, pepp0764, pepp0158, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0764) 4 of a Kind Bonus Poker", 0, layout_pe_poker )
-GAMEL(1987, pepp0775, 0, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0775) Royal Deuces Poker??", GAME_IMPERFECT_GRAPHICS, layout_pe_poker ) /* Wrong CG graphics & CAP */
+GAMEL(1987, pepp0775, 0, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0775) Royal Deuces Poker??", MACHINE_IMPERFECT_GRAPHICS, layout_pe_poker ) /* Wrong CG graphics & CAP */
GAMEL(1987, pepp0812, pepp0127, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0812) Deuces Joker Wild Poker", 0, layout_pe_poker )
-GAMEL(1987, pepp0816, 0, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0816) Treasure Chest Poker", GAME_IMPERFECT_GRAPHICS, layout_pe_poker ) /* Wrong CG graphics & CAP - Missing "Bonus" at MAX Bet for 4 of a Kind & Treasure Chest graphics */
+GAMEL(1987, pepp0816, 0, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PP0816) Treasure Chest Poker", MACHINE_IMPERFECT_GRAPHICS, layout_pe_poker ) /* Wrong CG graphics & CAP - Missing "Bonus" at MAX Bet for 4 of a Kind & Treasure Chest graphics */
/* Normal board : International Poker */
GAMEL(1987, peip0028, 0, peplus, peplus_poker, peplus_state, nonplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (IP0028) Joker Poker - French", 0, layout_pe_poker )
@@ -10612,17 +10999,21 @@ GAMEL(1987, peip0118, peip0031, peplus, peplus_poker, peplus_state, nonplus,
GAMEL(1987, peip0120, peip0031, peplus, peplus_poker, peplus_state, nonplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (IP0120) Standard Draw Poker - French", 0, layout_pe_poker )
/* Normal board : Multi-Game - Player's Choice - Some sets require a printer (not yet supported) */
-GAMEL(1994, pemg0183, 0, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Montana Choice (MG0183) Multi-Game", GAME_NOT_WORKING, layout_pe_poker) /* Needs printer support */
-GAMEL(1994, pemg0252, 0, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Choice (MG0252) Multi-Game", GAME_NOT_WORKING, layout_pe_poker) /* Needs printer support */
+GAMEL(1994, pemg0183, 0, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Montana Choice (MG0183) Multi-Game", MACHINE_NOT_WORKING, layout_pe_poker) /* Needs printer support */
+GAMEL(1994, pemg0252, 0, peplus, peplus_poker, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Choice (MG0252) Multi-Game", MACHINE_NOT_WORKING, layout_pe_poker) /* Needs printer support */
/* Normal board : Blackjack */
GAMEL(1994, pebe0014, 0, peplus, peplus_bjack, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (BE0014) Blackjack", 0, layout_pe_bjack )
-GAMEL(1994, pebe0014a, pebe0014, peplus, peplus_bjack, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (BE0014) Blackjack (International English/Spanish)", GAME_IMPERFECT_GRAPHICS, layout_pe_bjack ) /* Needs CG1339 graphics roms */
+GAMEL(1994, pebe0014a, pebe0014, peplus, peplus_bjack, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (BE0014) Blackjack (International English/Spanish)", MACHINE_IMPERFECT_GRAPHICS, layout_pe_bjack ) /* Needs CG1339 graphics roms */
/* Normal board : Keno */
-GAMEL(1994, peke0017, 0, peplus, peplus_keno, peplus_state, nonplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (KE0017) Keno", GAME_NOT_WORKING, layout_pe_keno )
-GAMEL(1994, peke1012, 0, peplus, peplus_keno, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (KE1012) Keno", 0, layout_pe_keno )
-GAMEL(1994, peke1013, peke1012, peplus, peplus_keno, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (KE1013) Keno", 0, layout_pe_keno )
+GAMEL(1994, peke0004, 0, peplus, peplus_keno, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (KE0004) Keno", MACHINE_NOT_WORKING, layout_pe_keno )
+GAMEL(1994, peke0017, peke0004, peplus, peplus_keno, peplus_state, nonplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (KE0017) Keno", MACHINE_NOT_WORKING, layout_pe_keno )
+GAMEL(1994, peke1006, 0, peplus, peplus_keno, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (KE1006) Keno", 0, layout_pe_keno )
+GAMEL(1994, peke1012, peke1006, peplus, peplus_keno, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (KE1012) Keno (set 1)", 0, layout_pe_keno )
+GAMEL(1994, peke1012a, peke1006, peplus, peplus_keno, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (KE1012) Keno (set 2)", 0, layout_pe_keno )
+GAMEL(1994, peke1013, peke1006, peplus, peplus_keno, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (KE1013) Keno (set 1)", 0, layout_pe_keno )
+GAMEL(1994, peke1013a, peke1006, peplus, peplus_keno, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (KE1013) Keno (set 2)", 0, layout_pe_keno )
/* Normal board : Slots machine */
GAMEL(1996, peps0014, 0, peplus, peplus_slots, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PS0014) Super Joker Slots", 0, layout_pe_slots )
@@ -10631,9 +11022,9 @@ GAMEL(1996, peps0022, peps0021, peplus, peplus_slots, peplus_state, peplus,
GAMEL(1996, peps0042, 0, peplus, peplus_slots, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PS0042) Double Diamond Slots", 0, layout_pe_slots )
GAMEL(1996, peps0043, peps0042, peplus, peplus_slots, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PS0043) Double Diamond Slots", 0, layout_pe_slots )
GAMEL(1996, peps0045, peps0021, peplus, peplus_slots, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PS0045) Red White & Blue Slots", 0, layout_pe_slots )
-GAMEL(1996, peps0047, 0, peplus, peplus_slots, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PS0047) Wild Cherry Slots", GAME_NOT_WORKING, layout_pe_slots ) /* Needs MxO-CG1004.Uxx graphics roms redumped */
+GAMEL(1996, peps0047, 0, peplus, peplus_slots, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PS0047) Wild Cherry Slots", MACHINE_NOT_WORKING, layout_pe_slots ) /* Needs MxO-CG1004.Uxx graphics roms redumped */
GAMEL(1996, peps0090, 0, peplus, peplus_slots, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PS0090) Gold, Silver & Bronze Slots", 0, layout_pe_slots )
-GAMEL(1996, peps0092, peps0047, peplus, peplus_slots, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PS0092) Wild Cherry Slots", GAME_NOT_WORKING, layout_pe_slots ) /* Needs MxO-CG1004.Uxx graphics roms redumped */
+GAMEL(1996, peps0092, peps0047, peplus, peplus_slots, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PS0092) Wild Cherry Slots", MACHINE_NOT_WORKING, layout_pe_slots ) /* Needs MxO-CG1004.Uxx graphics roms redumped */
GAMEL(1996, peps0206, peps0021, peplus, peplus_slots, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PS0206) Red White & Blue Slots", 0, layout_pe_slots )
GAMEL(1996, peps0207, peps0021, peplus, peplus_slots, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PS0207) Red White & Blue Slots", 0, layout_pe_slots )
GAMEL(1996, peps0296, 0, peplus, peplus_slots, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PS0296) Haywire Slots", 0, layout_pe_slots )
@@ -10645,7 +11036,7 @@ GAMEL(1996, peps0372, peps0366, peplus, peplus_slots, peplus_state, peplus,
GAMEL(1996, peps0373, peps0366, peplus, peplus_slots, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PS0373) Double Diamond Deluxe Slots", 0, layout_pe_slots )
GAMEL(1996, peps0426, 0, peplus, peplus_slots, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PS0426) Sizzling Sevens Slots", 0, layout_pe_slots )
GAMEL(1996, peps0581, peps0021, peplus, peplus_slots, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PS0581) Red White & Blue Slots", 0, layout_pe_slots )
-GAMEL(1996, peps0615, 0, peplus, peplus_slots, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PS0615) Chaos Slots", GAME_WRONG_COLORS, layout_pe_slots ) /* CAP2246 not dumped */
+GAMEL(1996, peps0615, 0, peplus, peplus_slots, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PS0615) Chaos Slots", MACHINE_WRONG_COLORS, layout_pe_slots ) /* CAP2246 not dumped */
GAMEL(1996, peps0631, peps0021, peplus, peplus_slots, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PS0631) Red White & Blue Slots", 0, layout_pe_slots )
GAMEL(1996, peps0716, 0, peplus, peplus_slots, peplus_state, peplus, ROT0, "IGT - International Game Technology", "Player's Edge Plus (PS0716) River Gambler Slots", 0, layout_pe_slots )
@@ -10661,10 +11052,10 @@ GAMEL(1995, pex0053p, 0, peplus, peplus_poker, peplus_state, peplussb,
GAMEL(1995, pex0054p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X000054P+XP000038) Deuces Wild Poker", 0, layout_pe_poker )
GAMEL(1995, pex0055p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X000055P+XP000019) Deuces Wild Poker", 0, layout_pe_poker )
GAMEL(1995, pex0055pa, pex0055p, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X000055P+XP000022) Deuces Wild Poker (The Orleans)", 0, layout_pe_poker )
-GAMEL(1995, pex0055pb, pex0055p, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X000055P+XP000023) Deuces Wild Poker (The Fun Ships)", GAME_WRONG_COLORS, layout_pe_poker ) /* CAPX2399 not dumped */
+GAMEL(1995, pex0055pb, pex0055p, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X000055P+XP000023) Deuces Wild Poker (The Fun Ships)", MACHINE_WRONG_COLORS, layout_pe_poker ) /* CAPX2399 not dumped */
GAMEL(1995, pex0055pc, pex0055p, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X000055P+XP000028) Deuces Wild Poker (Horseshoe)", 0, layout_pe_poker )
-GAMEL(1995, pex0055pd, pex0055p, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X000055P+XP000035) Deuces Wild Poker (The Wild Wild West Casino)", GAME_WRONG_COLORS, layout_pe_poker ) /* CAPX2389 not dumped */
-GAMEL(1995, pex0055pe, pex0055p, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X000055P+XP000038) Deuces Wild Poker", 0, layout_pe_poker )
+GAMEL(1995, pex0055pd, pex0055p, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X000055P+XP000035) Deuces Wild Poker (The Wild Wild West Casino)", MACHINE_WRONG_COLORS, layout_pe_poker ) /* CAPX2389 not dumped */
+GAMEL(1995, pex0055pe, pex0055p, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X000055P+XP000038) Deuces Wild Poker (Sunset Station Hotel-Casino)", 0, layout_pe_poker )
GAMEL(1995, pex0055pf, pex0055p, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X000055P+XP000040) Deuces Wild Poker", 0, layout_pe_poker )
GAMEL(1995, pex0055pg, pex0055p, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X000055P+XP000053) Deuces Wild Poker", 0, layout_pe_poker )
GAMEL(1995, pex0055ph, pex0055p, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X000055P+XP000055) Deuces Wild Poker", 0, layout_pe_poker )
@@ -10694,6 +11085,7 @@ GAMEL(1995, pex0242p, 0, peplus, peplus_poker, peplus_state, peplussb,
GAMEL(1995, pex0265p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X000265P+XP000038) 4 of a Kind Bonus Poker", 0, layout_pe_poker )
GAMEL(1995, pex0291p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X000291P+XP000053) Deuces Wild Poker", 0, layout_pe_poker )
GAMEL(1995, pex0417p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X000417P+XP000053) Deuces Wild Poker", 0, layout_pe_poker )
+GAMEL(1995, pex0426p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X000426P+XP000038) Joker Poker", 0, layout_pe_poker )
GAMEL(1995, pex0430p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X000430P+XP000079) Dueces Joker Wild Poker", 0,layout_pe_poker )
GAMEL(1995, pex0434p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X000434P+XP000038) Bonus Poker Deluxe", 0, layout_pe_poker )
GAMEL(1995, pex0447p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X000447P+XP000038) Standard Draw Poker", 0, layout_pe_poker )
@@ -10705,7 +11097,7 @@ GAMEL(1995, pex0455p, 0, peplus, peplus_poker, peplus_state, peplussb,
GAMEL(1995, pex0458p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X000458P+XP000038) Joker Poker (Aces or Better)", 0, layout_pe_poker )
GAMEL(1995, pex0459p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X000459P+XP000038) Joker Poker", 0, layout_pe_poker )
GAMEL(1995, pex0459pa, pex0459p, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X000459P+XP000155) Joker Poker", 0, layout_pe_poker )
-GAMEL(1995, pex0489p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X000489P+XP000038) Double Down Stud Deuces Wild Poker", GAME_NOT_WORKING, layout_pe_poker ) /* Needs unknown PE+ GAME POKER program to run */
+GAMEL(1995, pex0489p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X000489P+XP000038) Double Down Stud Deuces Wild Poker", MACHINE_NOT_WORKING, layout_pe_poker ) /* Needs unknown PE+ GAME POKER program to run */
GAMEL(1995, pex0508p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X000508P+XP000038) Loose Deuce Deuces Wild! Poker", 0, layout_pe_poker )
GAMEL(1995, pex0514p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X000514P+XP000038) Double Bonus Poker", 0, layout_pe_poker )
GAMEL(1995, pex0515p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X000515P+XP000038) Double Bonus Poker", 0, layout_pe_poker )
@@ -10755,8 +11147,9 @@ GAMEL(1995, pex2121p, 0, peplus, peplus_poker, peplus_state, peplussb,
GAMEL(1995, pex2121pa, pex2121p, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X002121P+XP000037) Standard Draw Poker", 0,layout_pe_poker )
GAMEL(1995, pex2150p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X002150P+XP000038) 4 of a Kind Bonus Poker", 0,layout_pe_poker )
GAMEL(1995, pex2172p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X002172P+XP000112) Ace$ Bonus Poker", 0, layout_pe_poker )
-GAMEL(1995, pex2172pa, pex2172p, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X002172P+XP000112) Ace$ Bonus Poker (The Fun Ships)", GAME_WRONG_COLORS, layout_pe_poker ) /* CAPX2399 not dumped */
+GAMEL(1995, pex2172pa, pex2172p, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X002172P+XP000112) Ace$ Bonus Poker (The Fun Ships)", MACHINE_WRONG_COLORS, layout_pe_poker ) /* CAPX2399 not dumped */
GAMEL(1995, pex2173p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X002173P+XP000038) Ace$ Bonus Poker", 0, layout_pe_poker )
+GAMEL(1995, pex2179p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X002179P+XP000119) Double Bonus Poker", 0, layout_pe_poker )
GAMEL(1995, pex2180p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X002180P+XP000038) Double Bonus Poker", 0, layout_pe_poker )
GAMEL(1995, pex2241p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X002241P+XP000079) 4 of a Kind Bonus Poker", 0,layout_pe_poker )
GAMEL(1995, pex2244p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X002244P+XP000079) Double Bonus Poker", 0, layout_pe_poker )
@@ -10770,6 +11163,7 @@ GAMEL(1995, pex2275p, 0, peplus, peplus_poker, peplus_state, peplussb,
GAMEL(1995, pex2276p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X002276P+XP000055) Black Jack Bonus Poker", 0, layout_pe_poker )
GAMEL(1995, pex2283p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X002283P+XP000057) Dealt Deuces Wild Bonus Poker", 0, layout_pe_poker ) /* Undumped color CAPX2325 but should have correct colors anyways */
GAMEL(1995, pex2284p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X002284P+XP000057) Barbaric Decues Wild Bonus Poker", 0, layout_pe_poker ) /* Undumped color CAPX2325 but should have correct colors anyways */
+GAMEL(1995, pex2287p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X002287P+XP000057) Pay the Aces NO Faces Bonus Poker", 0, layout_pe_poker ) /* Undumped color CAPX2325 but should have correct colors anyways */
GAMEL(1995, pex2297p, 0, peplus, peplus_poker, peplus_state, pepluss64,ROT0, "IGT - International Game Technology", "Player's Edge Plus (X002297P+XP000053) Jackpot Poker", 0, layout_pe_poker )
GAMEL(1995, pex2302p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X002302P+XP000038) Bonus Poker Deluxe", 0, layout_pe_poker )
GAMEL(1995, pex2303p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X002303P+XP000112) White Hot Aces Poker", 0, layout_pe_poker )
@@ -10788,7 +11182,7 @@ GAMEL(1995, pex2420p, 0, peplus, peplus_poker, peplus_state, peplussb,
GAMEL(1995, pex2421p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X002421P+XP000064) Deuces Wild Bonus Poker - French", 0, layout_pe_poker )
GAMEL(1995, pex2440p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X002440P+XP000053) Deuces Wild Poker", 0, layout_pe_poker )
GAMEL(1995, pex2461p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X002461P+XP000055) Joker Poker (Two Pair or Better)", 0, layout_pe_poker )
-GAMEL(1995, pex2474p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X002474P+XP000038) Double Double Bonus Plus", GAME_NOT_WORKING, layout_pe_poker ) /* Needs unknown PE+ GAME POKER program to run */
+GAMEL(1995, pex2474p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X002474P+XP000038) Double Double Bonus Plus", MACHINE_NOT_WORKING, layout_pe_poker ) /* Needs unknown PE+ GAME POKER program to run */
GAMEL(1995, pex2478p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X002478P+XP000154) Joker Poker - French", 0, layout_pe_poker )
GAMEL(1995, pex2479p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X002479P+XP000154) Joker Poker - French", 0, layout_pe_poker )
GAMEL(1995, pex2480p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X002480P+XP000154) Joker Poker (Aces or Better) - French", 0, layout_pe_poker )
@@ -10813,9 +11207,10 @@ GAMEL(1995, pexm003p, pexm001p, peplus, peplus_poker, peplus_state, peplussb,
GAMEL(1995, pexm004p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (XM00004P+XMP00002) Multi-Poker", 0, layout_pe_poker )
GAMEL(1995, pexm005p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (XM00005P+XMP00004) Multi-Poker", 0, layout_pe_poker )
GAMEL(1995, pexm006p, pexm001p, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (XM00006P+XMP00020) Multi-Poker", 0, layout_pe_poker )
+GAMEL(1995, pexm006pa, pexm001p, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (XM00006P+XMP00002) Multi-Poker (The Orleans)", 0, layout_pe_poker )
GAMEL(1995, pexm007p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (XM00007P+XMP00006) Multi-Poker", 0, layout_pe_poker )
GAMEL(1995, pexm008p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (XM00008P+XMP00006) Multi-Poker", 0, layout_pe_poker )
-GAMEL(1995, pexm009p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (XM00009P+XMP00002) Multi-Poker", GAME_IMPERFECT_GRAPHICS, layout_pe_poker ) /* Needs unknown CG2??? graphics roms for correct MENU game banners */
+GAMEL(1995, pexm009p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (XM00009P+XMP00002) Multi-Poker", MACHINE_IMPERFECT_GRAPHICS, layout_pe_poker ) /* Needs unknown CG2??? graphics roms for correct MENU game banners */
GAMEL(1995, pexm013p, 0, peplus, peplus_poker, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (XM00013P+XMP00025) Multi-Poker", 0, layout_pe_poker )
/* Superboard : Multi-Poker (Wingboard) */
@@ -10831,4 +11226,4 @@ GAMEL(1995, pexmp030a, pexmp030, peplus, peplus_poker, peplus_state, peplussbw,
GAMEL(1997, pex0838s, 0, peplus, peplus_slots, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X000838S+XS000002) Five Times Pay Slots", 0, layout_pe_slots )
GAMEL(1997, pex0841s, pex0838s, peplus, peplus_slots, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X000841S+XS000002) Five Times Pay Slots", 0, layout_pe_slots )
GAMEL(1997, pex0998s, 0, peplus, peplus_slots, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X000998S+XS000006) Triple Triple Diamond Slots", 0, layout_pe_slots )
-GAMEL(1997, pex1087s, 0, peplus, peplus_slots, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X001087S+XS000006) Double Double Diamond Slots", GAME_WRONG_COLORS, layout_pe_slots ) /* CAPX2415 not dumped */
+GAMEL(1997, pex1087s, 0, peplus, peplus_slots, peplus_state, peplussb, ROT0, "IGT - International Game Technology", "Player's Edge Plus (X001087S+XS000006) Double Double Diamond Slots", MACHINE_WRONG_COLORS, layout_pe_slots ) /* CAPX2415 not dumped */
diff --git a/src/mess/drivers/pes.c b/src/mame/drivers/pes.c
index 12e96461a04..f80cb743f21 100644
--- a/src/mess/drivers/pes.c
+++ b/src/mame/drivers/pes.c
@@ -282,4 +282,4 @@ ROM_END
******************************************************************************/
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 1987, pes, 0, 0, pes, pes, pes_state, pes, "Pacific Educational Systems", "VPU-01 Speech box", GAME_NOT_WORKING )
+COMP( 1987, pes, 0, 0, pes, pes, pes_state, pes, "Pacific Educational Systems", "VPU-01 Speech box", MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/pet.c b/src/mame/drivers/pet.c
index e056012f179..f8bb9a06933 100644
--- a/src/mess/drivers/pet.c
+++ b/src/mame/drivers/pet.c
@@ -833,6 +833,15 @@ INPUT_PORTS_END
//-------------------------------------------------
+// INPUT_PORTS( petb_fr )
+//-------------------------------------------------
+
+INPUT_PORTS_START( petb_fr )
+ PORT_INCLUDE( petb )
+INPUT_PORTS_END
+
+
+//-------------------------------------------------
// INPUT_PORTS( petb_se )
//-------------------------------------------------
@@ -2296,6 +2305,23 @@ ROM_END
//-------------------------------------------------
+// ROM( cbm8032_fr )
+//-------------------------------------------------
+
+ROM_START( cbm8032_fr )
+ ROM_REGION( 0x7000, M6502_TAG, 0 )
+ ROM_LOAD( "901465-23.ud10", 0x2000, 0x1000, CRC(ae3deac0) SHA1(975ee25e28ff302879424587e5fb4ba19f403adc) ) // BASIC 4
+ ROM_LOAD( "901465-20.ud9", 0x3000, 0x1000, CRC(0fc17b9c) SHA1(242f98298931d21eaacb55fe635e44b7fc192b0a) ) // BASIC 4
+ ROM_LOAD( "901465-21.ud8", 0x4000, 0x1000, CRC(36d91855) SHA1(1bb236c72c726e8fb029c68f9bfa5ee803faf0a8) ) // BASIC 4
+ ROM_LOAD( "8032_editor_80c_fr_a1ab.ud7", 0x5000, 0x1000, CRC(4d3d9918) SHA1(eedac298a201a28ad86a5939b569a46f9f12c16f) )
+ ROM_LOAD( "901465-22.ud6", 0x6000, 0x1000, CRC(cc5298a1) SHA1(96a0fa56e0c937da92971d9c99d504e44e898806) ) // Kernal
+
+ ROM_REGION( 0x1000, "charom", 0 )
+ ROM_LOAD( "8032_chargen_80c_fr_b9c1.ua3", 0x0000, 0x1000, CRC(d7424620) SHA1(e74c0eabb921d4a34032b57a7ee61ce61ec8a10c) )
+ROM_END
+
+
+//-------------------------------------------------
// ROM( cbm8032_se )
//-------------------------------------------------
@@ -2557,37 +2583,38 @@ ROM_END
//**************************************************************************
// 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", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
-COMP( 1977, pet20018, pet2001, 0, pet20018, pet, driver_device, 0, "Commodore Business Machines", "PET 2001-8", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
-COMP( 1979, pet2001n, 0, 0, pet2001n8, pet, driver_device, 0, "Commodore Business Machines", "PET 2001-N8", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
-COMP( 1979, pet2001n16, pet2001n, 0, pet2001n16, pet, driver_device, 0, "Commodore Business Machines", "PET 2001-N16", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
-COMP( 1979, pet2001n32, pet2001n, 0, pet2001n32, pet, driver_device, 0, "Commodore Business Machines", "PET 2001-N32", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
-COMP( 1979, cbm3008, pet2001n, 0, cbm3008, pet, driver_device, 0, "Commodore Business Machines", "CBM 3008", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
-COMP( 1979, cbm3016, pet2001n, 0, cbm3016, pet, driver_device, 0, "Commodore Business Machines", "CBM 3016", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
-COMP( 1979, cbm3032, pet2001n, 0, cbm3032, pet, driver_device, 0, "Commodore Business Machines", "CBM 3032", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
-COMP( 1979, pet2001b, 0, 0, pet2001b8, petb, driver_device, 0, "Commodore Business Machines", "PET 2001-B8", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
-COMP( 1979, pet2001b16, pet2001b, 0, pet2001b16, petb, driver_device, 0, "Commodore Business Machines", "PET 2001-B16", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
-COMP( 1979, pet2001b32, pet2001b, 0, pet2001b32, petb, driver_device, 0, "Commodore Business Machines", "PET 2001-B32", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
-COMP( 1979, cbm3032b, pet2001b, 0, cbm3032b, petb, driver_device, 0, "Commodore Business Machines", "CBM 3032B", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
-COMP( 1980, pet4016, 0, 0, pet4016, pet, driver_device, 0, "Commodore Business Machines", "PET 4016", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
-COMP( 1980, pet4032, pet4016, 0, pet4032, pet, driver_device, 0, "Commodore Business Machines", "PET 4032", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
-COMP( 1980, pet4032f, pet4016, 0, pet4032f, pet, driver_device, 0, "Commodore Business Machines", "PET 4032 (Fat 40)", GAME_SUPPORTS_SAVE )
-COMP( 1980, cbm4016, pet4016, 0, cbm4016, pet, driver_device, 0, "Commodore Business Machines", "CBM 4016", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
-COMP( 1980, cbm4032, pet4016, 0, cbm4032, pet, driver_device, 0, "Commodore Business Machines", "CBM 4032", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
-COMP( 1980, cbm4032f, pet4016, 0, cbm4032f, pet, driver_device, 0, "Commodore Business Machines", "CBM 4032 (Fat 40)", GAME_SUPPORTS_SAVE )
-COMP( 1980, pet4032b, 0, 0, pet4032b, petb, driver_device, 0, "Commodore Business Machines", "PET 4032B", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
-COMP( 1980, cbm4032b, pet4032b, 0, cbm4032b, petb, driver_device, 0, "Commodore Business Machines", "CBM 4032B", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
-COMP( 1980, pet8032, 0, 0, pet8032, petb, driver_device, 0, "Commodore Business Machines", "PET 8032", GAME_SUPPORTS_SAVE )
-COMP( 1981, cbm8032, pet8032, 0, pet8032, petb, driver_device, 0, "Commodore Business Machines", "CBM 8032", GAME_SUPPORTS_SAVE )
-COMP( 1981, cbm8032_de, pet8032, 0, pet8032, petb_de, driver_device, 0, "Commodore Business Machines", "CBM 8032 (Germany)", GAME_SUPPORTS_SAVE )
-COMP( 1981, cbm8032_se, pet8032, 0, pet8032, petb_se, driver_device, 0, "Commodore Business Machines", "CBM 8032 (Sweden/Finland)", GAME_SUPPORTS_SAVE )
-COMP( 1981, superpet, pet8032, 0, superpet, petb, driver_device, 0, "Commodore Business Machines", "SuperPET SP-9000", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-COMP( 1981, mmf9000, pet8032, 0, superpet, petb, driver_device, 0, "Commodore Business Machines", "MicroMainFrame 9000", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-COMP( 1981, mmf9000_se, pet8032, 0, superpet, petb_se, driver_device, 0, "Commodore Business Machines", "MicroMainFrame 9000 (Sweden/Finland)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-COMP( 1981, cbm8096, pet8032, 0, cbm8096, petb, driver_device, 0, "Commodore Business Machines", "CBM 8096", GAME_SUPPORTS_SAVE )
-COMP( 1984, cbm8296, 0, 0, cbm8296, petb, driver_device, 0, "Commodore Business Machines", "CBM 8296", GAME_SUPPORTS_SAVE )
-COMP( 1984, cbm8296ed, cbm8296, 0, cbm8296d, petb, driver_device, 0, "Commodore Business Machines", "CBM 8296 ExecuDesk", GAME_SUPPORTS_SAVE )
-COMP( 1984, cbm8296d, cbm8296, 0, cbm8296d, petb, driver_device, 0, "Commodore Business Machines", "CBM 8296-D", GAME_SUPPORTS_SAVE )
-COMP( 1984, cbm8296d_de,cbm8296, 0, cbm8296d, petb_de, driver_device, 0, "Commodore Business Machines", "CBM 8296-D (Germany)", GAME_SUPPORTS_SAVE )
-COMP( 1984, cbm8296gd, cbm8296, 0, cbm8296d, petb, driver_device, 0, "Commodore Business Machines", "CBM 8296GD", GAME_SUPPORTS_SAVE )
-COMP( 1984, cbm8296dgv_de,cbm8296, 0, cbm8296d, petb, driver_device, 0, "Commodore Business Machines", "CBM 8296-D GV? (Germany)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/peyper.c b/src/mame/drivers/peyper.c
index 7e1bfa9ba75..544d1903f42 100644
--- a/src/mame/drivers/peyper.c
+++ b/src/mame/drivers/peyper.c
@@ -828,13 +828,13 @@ ROM_START(wolfman)
ROM_END
-GAME( 1985, odin, 0, peyper, odin_dlx, peyper_state, odin, ROT0, "Peyper", "Odin", GAME_MECHANICAL)
-GAME( 1985, odin_dlx, 0, peyper, odin_dlx, peyper_state, odin, ROT0, "Sonic", "Odin De Luxe", GAME_MECHANICAL)
-GAME( 1986, solarwap, 0, peyper, solarwap, peyper_state, peyper, ROT0, "Sonic", "Solar Wars (Sonic)", GAME_MECHANICAL)
-GAME( 1986, gamatros, 0, peyper, solarwap, peyper_state, peyper, ROT0, "Sonic", "Gamatron (Sonic)", GAME_IS_SKELETON_MECHANICAL)
-GAME( 1987, poleposn, 0, peyper, poleposn, peyper_state, peyper, ROT0, "Sonic", "Pole Position (Sonic)", GAME_MECHANICAL)
-GAME( 1987, sonstwar, 0, peyper, sonstwar, peyper_state, peyper, ROT0, "Sonic", "Star Wars (Sonic, set 1)", GAME_MECHANICAL)
-GAME( 1987, sonstwr2, sonstwar, peyper, sonstwar, peyper_state, peyper, ROT0, "Sonic", "Star Wars (Sonic, set 2)", GAME_MECHANICAL)
-GAME( 1987, wolfman, 0, peyper, wolfman, peyper_state, wolfman, ROT0, "Peyper", "Wolf Man", GAME_MECHANICAL)
-GAME( 1986, nemesisp, 0, peyper, wolfman, peyper_state, wolfman, ROT0, "Peyper", "Nemesis", GAME_MECHANICAL)
-GAME( 1987, odisea, 0, peyper, odisea, peyper_state, wolfman, ROT0, "Peyper", "Odisea Paris-Dakar", GAME_MECHANICAL)
+GAME( 1985, odin, 0, peyper, odin_dlx, peyper_state, odin, ROT0, "Peyper", "Odin", MACHINE_MECHANICAL)
+GAME( 1985, odin_dlx, 0, peyper, odin_dlx, peyper_state, odin, ROT0, "Sonic", "Odin De Luxe", MACHINE_MECHANICAL)
+GAME( 1986, solarwap, 0, peyper, solarwap, peyper_state, peyper, ROT0, "Sonic", "Solar Wars (Sonic)", MACHINE_MECHANICAL)
+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)
+GAME( 1987, sonstwar, 0, peyper, sonstwar, peyper_state, peyper, ROT0, "Sonic", "Star Wars (Sonic, set 1)", MACHINE_MECHANICAL)
+GAME( 1987, sonstwr2, sonstwar, peyper, sonstwar, peyper_state, peyper, ROT0, "Sonic", "Star Wars (Sonic, set 2)", MACHINE_MECHANICAL)
+GAME( 1987, wolfman, 0, peyper, wolfman, peyper_state, wolfman, ROT0, "Peyper", "Wolf Man", MACHINE_MECHANICAL)
+GAME( 1986, nemesisp, 0, peyper, wolfman, peyper_state, wolfman, ROT0, "Peyper", "Nemesis", MACHINE_MECHANICAL)
+GAME( 1987, odisea, 0, peyper, odisea, peyper_state, wolfman, ROT0, "Peyper", "Odisea Paris-Dakar", MACHINE_MECHANICAL)
diff --git a/src/mame/drivers/pgm.c b/src/mame/drivers/pgm.c
index 1700ced8b18..b8a74f70d20 100644
--- a/src/mame/drivers/pgm.c
+++ b/src/mame/drivers/pgm.c
@@ -580,24 +580,24 @@ ROM_START( orlegend )
ROM_REGION( 0x800000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
PGM_VIDEO_BIOS
- ROM_LOAD( "t0100.rom", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
+ ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
ROM_REGION( 0x1800000, "sprcol", 0 ) /* Sprite Colour Data */
- ROM_LOAD( "a0100.rom", 0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) )
- ROM_LOAD( "a0101.rom", 0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) )
- ROM_LOAD( "a0102.rom", 0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) )
- ROM_LOAD( "a0103.rom", 0x0c00000, 0x400000, CRC(4460a3fd) SHA1(cbebdb65c17605853f7d0b298018dd8801a25a58) )
- ROM_LOAD( "a0104.rom", 0x1000000, 0x400000, CRC(5f8abb56) SHA1(6c1ddc0309862a141aa0c0f63b641aec9257aaee) )
- ROM_LOAD( "a0105.rom", 0x1400000, 0x400000, CRC(a17a7147) SHA1(44eeb43c6b0ebb829559a20ae357383fbdeecd82) )
+ ROM_LOAD( "a0100.u5", 0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) )
+ ROM_LOAD( "a0101.u6", 0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) )
+ ROM_LOAD( "a0102.u7", 0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) )
+ ROM_LOAD( "a0103.u8", 0x0c00000, 0x400000, CRC(4460a3fd) SHA1(cbebdb65c17605853f7d0b298018dd8801a25a58) )
+ ROM_LOAD( "a0104.u11", 0x1000000, 0x400000, CRC(5f8abb56) SHA1(6c1ddc0309862a141aa0c0f63b641aec9257aaee) )
+ ROM_LOAD( "a0105.u12", 0x1400000, 0x400000, CRC(a17a7147) SHA1(44eeb43c6b0ebb829559a20ae357383fbdeecd82) )
ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
- ROM_LOAD( "b0100.rom", 0x0000000, 0x400000, CRC(69d2e48c) SHA1(5b5f759007264c07b3b39be8e03a713698e1fc2a) )
- ROM_LOAD( "b0101.rom", 0x0400000, 0x400000, CRC(0d587bf3) SHA1(5347828b0a6e4ddd7a263663d2c2604407e4d49c) )
- ROM_LOAD( "b0102.rom", 0x0800000, 0x400000, CRC(43823c1e) SHA1(e10a1a9a81b51b11044934ff702e35d8d7ab1b08) )
+ ROM_LOAD( "b0100.u9", 0x0000000, 0x400000, CRC(69d2e48c) SHA1(5b5f759007264c07b3b39be8e03a713698e1fc2a) )
+ ROM_LOAD( "b0101.u10", 0x0400000, 0x400000, CRC(0d587bf3) SHA1(5347828b0a6e4ddd7a263663d2c2604407e4d49c) )
+ ROM_LOAD( "b0102.u15", 0x0800000, 0x400000, CRC(43823c1e) SHA1(e10a1a9a81b51b11044934ff702e35d8d7ab1b08) )
ROM_REGION( 0x600000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
PGM_AUDIO_BIOS
- ROM_LOAD( "m0100.rom", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
+ ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
ROM_END
ROM_START( orlegende )
@@ -607,24 +607,24 @@ ROM_START( orlegende )
ROM_REGION( 0x800000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
PGM_VIDEO_BIOS
- ROM_LOAD( "t0100.rom", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
+ ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
ROM_REGION( 0x1800000, "sprcol", 0 ) /* Sprite Colour Data */
- ROM_LOAD( "a0100.rom", 0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) )
- ROM_LOAD( "a0101.rom", 0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) )
- ROM_LOAD( "a0102.rom", 0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) )
- ROM_LOAD( "a0103.rom", 0x0c00000, 0x400000, CRC(4460a3fd) SHA1(cbebdb65c17605853f7d0b298018dd8801a25a58) )
- ROM_LOAD( "a0104.rom", 0x1000000, 0x400000, CRC(5f8abb56) SHA1(6c1ddc0309862a141aa0c0f63b641aec9257aaee) )
- ROM_LOAD( "a0105.rom", 0x1400000, 0x400000, CRC(a17a7147) SHA1(44eeb43c6b0ebb829559a20ae357383fbdeecd82) )
+ ROM_LOAD( "a0100.u5", 0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) )
+ ROM_LOAD( "a0101.u6", 0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) )
+ ROM_LOAD( "a0102.u7", 0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) )
+ ROM_LOAD( "a0103.u8", 0x0c00000, 0x400000, CRC(4460a3fd) SHA1(cbebdb65c17605853f7d0b298018dd8801a25a58) )
+ ROM_LOAD( "a0104.u11", 0x1000000, 0x400000, CRC(5f8abb56) SHA1(6c1ddc0309862a141aa0c0f63b641aec9257aaee) )
+ ROM_LOAD( "a0105.u12", 0x1400000, 0x400000, CRC(a17a7147) SHA1(44eeb43c6b0ebb829559a20ae357383fbdeecd82) )
ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
- ROM_LOAD( "b0100.rom", 0x0000000, 0x400000, CRC(69d2e48c) SHA1(5b5f759007264c07b3b39be8e03a713698e1fc2a) )
- ROM_LOAD( "b0101.rom", 0x0400000, 0x400000, CRC(0d587bf3) SHA1(5347828b0a6e4ddd7a263663d2c2604407e4d49c) )
- ROM_LOAD( "b0102.rom", 0x0800000, 0x400000, CRC(43823c1e) SHA1(e10a1a9a81b51b11044934ff702e35d8d7ab1b08) )
+ ROM_LOAD( "b0100.u9", 0x0000000, 0x400000, CRC(69d2e48c) SHA1(5b5f759007264c07b3b39be8e03a713698e1fc2a) )
+ ROM_LOAD( "b0101.u10", 0x0400000, 0x400000, CRC(0d587bf3) SHA1(5347828b0a6e4ddd7a263663d2c2604407e4d49c) )
+ ROM_LOAD( "b0102.u15", 0x0800000, 0x400000, CRC(43823c1e) SHA1(e10a1a9a81b51b11044934ff702e35d8d7ab1b08) )
ROM_REGION( 0x600000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
PGM_AUDIO_BIOS
- ROM_LOAD( "m0100.rom", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
+ ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
ROM_END
ROM_START( orlegendc )
@@ -634,24 +634,24 @@ ROM_START( orlegendc )
ROM_REGION( 0x800000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
PGM_VIDEO_BIOS
- ROM_LOAD( "t0100.rom", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
+ ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
ROM_REGION( 0x1800000, "sprcol", 0 ) /* Sprite Colour Data */
- ROM_LOAD( "a0100.rom", 0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) )
- ROM_LOAD( "a0101.rom", 0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) )
- ROM_LOAD( "a0102.rom", 0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) )
- ROM_LOAD( "a0103.rom", 0x0c00000, 0x400000, CRC(4460a3fd) SHA1(cbebdb65c17605853f7d0b298018dd8801a25a58) )
- ROM_LOAD( "a0104.rom", 0x1000000, 0x400000, CRC(5f8abb56) SHA1(6c1ddc0309862a141aa0c0f63b641aec9257aaee) )
- ROM_LOAD( "a0105.rom", 0x1400000, 0x400000, CRC(a17a7147) SHA1(44eeb43c6b0ebb829559a20ae357383fbdeecd82) )
+ ROM_LOAD( "a0100.u5", 0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) )
+ ROM_LOAD( "a0101.u6", 0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) )
+ ROM_LOAD( "a0102.u7", 0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) )
+ ROM_LOAD( "a0103.u8", 0x0c00000, 0x400000, CRC(4460a3fd) SHA1(cbebdb65c17605853f7d0b298018dd8801a25a58) )
+ ROM_LOAD( "a0104.u11", 0x1000000, 0x400000, CRC(5f8abb56) SHA1(6c1ddc0309862a141aa0c0f63b641aec9257aaee) )
+ ROM_LOAD( "a0105.u12", 0x1400000, 0x400000, CRC(a17a7147) SHA1(44eeb43c6b0ebb829559a20ae357383fbdeecd82) )
ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
- ROM_LOAD( "b0100.rom", 0x0000000, 0x400000, CRC(69d2e48c) SHA1(5b5f759007264c07b3b39be8e03a713698e1fc2a) )
- ROM_LOAD( "b0101.rom", 0x0400000, 0x400000, CRC(0d587bf3) SHA1(5347828b0a6e4ddd7a263663d2c2604407e4d49c) )
- ROM_LOAD( "b0102.rom", 0x0800000, 0x400000, CRC(43823c1e) SHA1(e10a1a9a81b51b11044934ff702e35d8d7ab1b08) )
+ ROM_LOAD( "b0100.u9", 0x0000000, 0x400000, CRC(69d2e48c) SHA1(5b5f759007264c07b3b39be8e03a713698e1fc2a) )
+ ROM_LOAD( "b0101.u10", 0x0400000, 0x400000, CRC(0d587bf3) SHA1(5347828b0a6e4ddd7a263663d2c2604407e4d49c) )
+ ROM_LOAD( "b0102.u15", 0x0800000, 0x400000, CRC(43823c1e) SHA1(e10a1a9a81b51b11044934ff702e35d8d7ab1b08) )
ROM_REGION( 0x600000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
PGM_AUDIO_BIOS
- ROM_LOAD( "m0100.rom", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
+ ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
ROM_END
ROM_START( orlegendca )
@@ -661,24 +661,24 @@ ROM_START( orlegendca )
ROM_REGION( 0x800000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
PGM_VIDEO_BIOS
- ROM_LOAD( "t0100.rom", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
+ ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
ROM_REGION( 0x1800000, "sprcol", 0 ) /* Sprite Colour Data */
- ROM_LOAD( "a0100.rom", 0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) )
- ROM_LOAD( "a0101.rom", 0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) )
- ROM_LOAD( "a0102.rom", 0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) )
- ROM_LOAD( "a0103.rom", 0x0c00000, 0x400000, CRC(4460a3fd) SHA1(cbebdb65c17605853f7d0b298018dd8801a25a58) )
- ROM_LOAD( "a0104.rom", 0x1000000, 0x400000, CRC(5f8abb56) SHA1(6c1ddc0309862a141aa0c0f63b641aec9257aaee) )
- ROM_LOAD( "a0105.rom", 0x1400000, 0x400000, CRC(a17a7147) SHA1(44eeb43c6b0ebb829559a20ae357383fbdeecd82) )
+ ROM_LOAD( "a0100.u5", 0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) )
+ ROM_LOAD( "a0101.u6", 0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) )
+ ROM_LOAD( "a0102.u7", 0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) )
+ ROM_LOAD( "a0103.u8", 0x0c00000, 0x400000, CRC(4460a3fd) SHA1(cbebdb65c17605853f7d0b298018dd8801a25a58) )
+ ROM_LOAD( "a0104.u11", 0x1000000, 0x400000, CRC(5f8abb56) SHA1(6c1ddc0309862a141aa0c0f63b641aec9257aaee) )
+ ROM_LOAD( "a0105.u12", 0x1400000, 0x400000, CRC(a17a7147) SHA1(44eeb43c6b0ebb829559a20ae357383fbdeecd82) )
ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
- ROM_LOAD( "b0100.rom", 0x0000000, 0x400000, CRC(69d2e48c) SHA1(5b5f759007264c07b3b39be8e03a713698e1fc2a) )
- ROM_LOAD( "b0101.rom", 0x0400000, 0x400000, CRC(0d587bf3) SHA1(5347828b0a6e4ddd7a263663d2c2604407e4d49c) )
- ROM_LOAD( "b0102.rom", 0x0800000, 0x400000, CRC(43823c1e) SHA1(e10a1a9a81b51b11044934ff702e35d8d7ab1b08) )
+ ROM_LOAD( "b0100.u9", 0x0000000, 0x400000, CRC(69d2e48c) SHA1(5b5f759007264c07b3b39be8e03a713698e1fc2a) )
+ ROM_LOAD( "b0101.u10", 0x0400000, 0x400000, CRC(0d587bf3) SHA1(5347828b0a6e4ddd7a263663d2c2604407e4d49c) )
+ ROM_LOAD( "b0102.u15", 0x0800000, 0x400000, CRC(43823c1e) SHA1(e10a1a9a81b51b11044934ff702e35d8d7ab1b08) )
ROM_REGION( 0x600000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
PGM_AUDIO_BIOS
- ROM_LOAD( "m0100.rom", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
+ ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
ROM_END
@@ -691,7 +691,6 @@ PGM system
IGS PCB NO-0134-1
IGS PCB NO-0135
-
OLV111CH.U11 [b80ddd3c]
OLV111CH.U6 [5fb86373]
OLV111CH.U7 [6ee79faf]
@@ -699,7 +698,6 @@ OLV111CH.U9 [83cf09c8]
T0100.U8
-
A0100.U5
A0101.U6
A0102.U7
@@ -725,24 +723,24 @@ ROM_START( orlegend111c )
ROM_REGION( 0x800000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
PGM_VIDEO_BIOS
- ROM_LOAD( "t0100.rom", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
+ ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
ROM_REGION( 0x1800000, "sprcol", 0 ) /* Sprite Colour Data */
- ROM_LOAD( "a0100.rom", 0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) )
- ROM_LOAD( "a0101.rom", 0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) )
- ROM_LOAD( "a0102.rom", 0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) )
- ROM_LOAD( "a0103.rom", 0x0c00000, 0x400000, CRC(4460a3fd) SHA1(cbebdb65c17605853f7d0b298018dd8801a25a58) )
- ROM_LOAD( "a0104.rom", 0x1000000, 0x400000, CRC(5f8abb56) SHA1(6c1ddc0309862a141aa0c0f63b641aec9257aaee) )
- ROM_LOAD( "a0105.rom", 0x1400000, 0x400000, CRC(a17a7147) SHA1(44eeb43c6b0ebb829559a20ae357383fbdeecd82) )
+ ROM_LOAD( "a0100.u5", 0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) )
+ ROM_LOAD( "a0101.u6", 0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) )
+ ROM_LOAD( "a0102.u7", 0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) )
+ ROM_LOAD( "a0103.u8", 0x0c00000, 0x400000, CRC(4460a3fd) SHA1(cbebdb65c17605853f7d0b298018dd8801a25a58) )
+ ROM_LOAD( "a0104.u11", 0x1000000, 0x400000, CRC(5f8abb56) SHA1(6c1ddc0309862a141aa0c0f63b641aec9257aaee) )
+ ROM_LOAD( "a0105.u12", 0x1400000, 0x400000, CRC(a17a7147) SHA1(44eeb43c6b0ebb829559a20ae357383fbdeecd82) )
ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
- ROM_LOAD( "b0100.rom", 0x0000000, 0x400000, CRC(69d2e48c) SHA1(5b5f759007264c07b3b39be8e03a713698e1fc2a) )
- ROM_LOAD( "b0101.rom", 0x0400000, 0x400000, CRC(0d587bf3) SHA1(5347828b0a6e4ddd7a263663d2c2604407e4d49c) )
- ROM_LOAD( "b0102.rom", 0x0800000, 0x400000, CRC(43823c1e) SHA1(e10a1a9a81b51b11044934ff702e35d8d7ab1b08) )
+ ROM_LOAD( "b0100.u9", 0x0000000, 0x400000, CRC(69d2e48c) SHA1(5b5f759007264c07b3b39be8e03a713698e1fc2a) )
+ ROM_LOAD( "b0101.u10", 0x0400000, 0x400000, CRC(0d587bf3) SHA1(5347828b0a6e4ddd7a263663d2c2604407e4d49c) )
+ ROM_LOAD( "b0102.u15", 0x0800000, 0x400000, CRC(43823c1e) SHA1(e10a1a9a81b51b11044934ff702e35d8d7ab1b08) )
ROM_REGION( 0x600000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
PGM_AUDIO_BIOS
- ROM_LOAD( "m0100.rom", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
+ ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
ROM_END
@@ -750,30 +748,60 @@ ROM_START( orlegend111t )
ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
PGM_68K_BIOS
ROM_LOAD16_BYTE( "olv111tw.u6", 0x100001, 0x080000, CRC(b205a733) SHA1(33f4c9162e36be4957004f80593f94fc33b163f8) )
- ROM_LOAD16_BYTE( "olv111tw.u8", 0x100000, 0x080000, CRC(6d9d29b4) SHA1(29a18de7e5b58c2f3125d6dc9cc8a8186180e956) )
+ ROM_LOAD16_BYTE( "olv111tw.u9", 0x100000, 0x080000, CRC(6d9d29b4) SHA1(29a18de7e5b58c2f3125d6dc9cc8a8186180e956) )
ROM_LOAD16_BYTE( "olv111tw.u7", 0x200001, 0x080000, CRC(27628e87) SHA1(a0effd83dc57ac72ba4f110737a075705d78e798) )
- ROM_LOAD16_BYTE( "olv111tw.u9", 0x200000, 0x080000, CRC(23f33bc9) SHA1(f24490370d40d905afe8b716a3953b4e9f0aada4) )
+ ROM_LOAD16_BYTE( "olv111tw.u11", 0x200000, 0x080000, CRC(23f33bc9) SHA1(f24490370d40d905afe8b716a3953b4e9f0aada4) )
+
+ ROM_REGION( 0x800000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
+ PGM_VIDEO_BIOS
+ ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
+
+ ROM_REGION( 0x1800000, "sprcol", 0 ) /* Sprite Colour Data */
+ ROM_LOAD( "a0100.u5", 0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) )
+ ROM_LOAD( "a0101.u6", 0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) )
+ ROM_LOAD( "a0102.u7", 0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) )
+ ROM_LOAD( "a0103.u8", 0x0c00000, 0x400000, CRC(4460a3fd) SHA1(cbebdb65c17605853f7d0b298018dd8801a25a58) )
+ ROM_LOAD( "a0104.u11", 0x1000000, 0x400000, CRC(5f8abb56) SHA1(6c1ddc0309862a141aa0c0f63b641aec9257aaee) )
+ ROM_LOAD( "a0105.u12", 0x1400000, 0x400000, CRC(a17a7147) SHA1(44eeb43c6b0ebb829559a20ae357383fbdeecd82) )
+
+ ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
+ ROM_LOAD( "b0100.u9", 0x0000000, 0x400000, CRC(69d2e48c) SHA1(5b5f759007264c07b3b39be8e03a713698e1fc2a) )
+ ROM_LOAD( "b0101.u10", 0x0400000, 0x400000, CRC(0d587bf3) SHA1(5347828b0a6e4ddd7a263663d2c2604407e4d49c) )
+ ROM_LOAD( "b0102.u15", 0x0800000, 0x400000, CRC(43823c1e) SHA1(e10a1a9a81b51b11044934ff702e35d8d7ab1b08) )
+
+ ROM_REGION( 0x600000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
+ PGM_AUDIO_BIOS
+ ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
+ROM_END
+
+ROM_START( orlegend111k )
+ ROM_REGION( 0x600000, "maincpu", 0 ) /* 68000 Code */
+ PGM_68K_BIOS
+ ROM_LOAD16_BYTE( "olv111ko.u6", 0x100001, 0x080000, CRC(1ff35baa) SHA1(f6791cc37ea468d0154b0e31a99f6f33a74bca81) )
+ ROM_LOAD16_BYTE( "olv111ko.u9", 0x100000, 0x080000, CRC(87b6d202) SHA1(32828166a645158630f79e7d493a2774e69bc265) )
+ ROM_LOAD16_BYTE( "olv111ko.u7", 0x200001, 0x080000, CRC(27628e87) SHA1(a0effd83dc57ac72ba4f110737a075705d78e798) )
+ ROM_LOAD16_BYTE( "olv111ko.u11", 0x200000, 0x080000, CRC(23f33bc9) SHA1(f24490370d40d905afe8b716a3953b4e9f0aada4) )
ROM_REGION( 0x800000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
PGM_VIDEO_BIOS
- ROM_LOAD( "t0100.rom", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
+ ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
ROM_REGION( 0x1800000, "sprcol", 0 ) /* Sprite Colour Data */
- ROM_LOAD( "a0100.rom", 0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) )
- ROM_LOAD( "a0101.rom", 0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) )
- ROM_LOAD( "a0102.rom", 0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) )
- ROM_LOAD( "a0103.rom", 0x0c00000, 0x400000, CRC(4460a3fd) SHA1(cbebdb65c17605853f7d0b298018dd8801a25a58) )
- ROM_LOAD( "a0104.rom", 0x1000000, 0x400000, CRC(5f8abb56) SHA1(6c1ddc0309862a141aa0c0f63b641aec9257aaee) )
- ROM_LOAD( "a0105.rom", 0x1400000, 0x400000, CRC(a17a7147) SHA1(44eeb43c6b0ebb829559a20ae357383fbdeecd82) )
+ ROM_LOAD( "a0100.u5", 0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) )
+ ROM_LOAD( "a0101.u6", 0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) )
+ ROM_LOAD( "a0102.u7", 0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) )
+ ROM_LOAD( "a0103.u8", 0x0c00000, 0x400000, CRC(4460a3fd) SHA1(cbebdb65c17605853f7d0b298018dd8801a25a58) )
+ ROM_LOAD( "a0104.u11", 0x1000000, 0x400000, CRC(5f8abb56) SHA1(6c1ddc0309862a141aa0c0f63b641aec9257aaee) )
+ ROM_LOAD( "a0105.u12", 0x1400000, 0x400000, CRC(a17a7147) SHA1(44eeb43c6b0ebb829559a20ae357383fbdeecd82) )
ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
- ROM_LOAD( "b0100.rom", 0x0000000, 0x400000, CRC(69d2e48c) SHA1(5b5f759007264c07b3b39be8e03a713698e1fc2a) )
- ROM_LOAD( "b0101.rom", 0x0400000, 0x400000, CRC(0d587bf3) SHA1(5347828b0a6e4ddd7a263663d2c2604407e4d49c) )
- ROM_LOAD( "b0102.rom", 0x0800000, 0x400000, CRC(43823c1e) SHA1(e10a1a9a81b51b11044934ff702e35d8d7ab1b08) )
+ ROM_LOAD( "b0100.u9", 0x0000000, 0x400000, CRC(69d2e48c) SHA1(5b5f759007264c07b3b39be8e03a713698e1fc2a) )
+ ROM_LOAD( "b0101.u10", 0x0400000, 0x400000, CRC(0d587bf3) SHA1(5347828b0a6e4ddd7a263663d2c2604407e4d49c) )
+ ROM_LOAD( "b0102.u15", 0x0800000, 0x400000, CRC(43823c1e) SHA1(e10a1a9a81b51b11044934ff702e35d8d7ab1b08) )
ROM_REGION( 0x600000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
PGM_AUDIO_BIOS
- ROM_LOAD( "m0100.rom", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
+ ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
ROM_END
/*
@@ -785,7 +813,6 @@ PGM system
IGS PCB NO-0134-2
IGS PCB NO-0135
-
OLV105KO.U11 [40ae4d9e]
OLV105KO.U6 [b86703fe]
OLV105KO.U7 [5712facc]
@@ -793,7 +820,6 @@ OLV105KO.U9 [5a108e39]
T0100.U8
-
A0100.U5
A0101.U6
A0102.U7
@@ -819,24 +845,24 @@ ROM_START( orlegend105k )
ROM_REGION( 0x800000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
PGM_VIDEO_BIOS
- ROM_LOAD( "t0100.rom", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
+ ROM_LOAD( "t0100.u8", 0x180000, 0x400000, CRC(61425e1e) SHA1(20753b86fc12003cfd763d903f034dbba8010b32) )
ROM_REGION( 0x1800000, "sprcol", 0 ) /* Sprite Colour Data */
- ROM_LOAD( "a0100.rom", 0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) )
- ROM_LOAD( "a0101.rom", 0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) )
- ROM_LOAD( "a0102.rom", 0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) )
- ROM_LOAD( "a0103.rom", 0x0c00000, 0x400000, CRC(4460a3fd) SHA1(cbebdb65c17605853f7d0b298018dd8801a25a58) )
- ROM_LOAD( "a0104.rom", 0x1000000, 0x400000, CRC(5f8abb56) SHA1(6c1ddc0309862a141aa0c0f63b641aec9257aaee) )
- ROM_LOAD( "a0105.rom", 0x1400000, 0x400000, CRC(a17a7147) SHA1(44eeb43c6b0ebb829559a20ae357383fbdeecd82) )
+ ROM_LOAD( "a0100.u5", 0x0000000, 0x400000, CRC(8b3bd88a) SHA1(42db3a60c6ba9d83ebe2008c8047d094027f65a7) )
+ ROM_LOAD( "a0101.u6", 0x0400000, 0x400000, CRC(3b9e9644) SHA1(5b95ec1d25c3bc3504c93547f5adb5ce24376405) )
+ ROM_LOAD( "a0102.u7", 0x0800000, 0x400000, CRC(069e2c38) SHA1(9bddca8c2f5bd80f4abe4e1f062751736dc151dd) )
+ ROM_LOAD( "a0103.u8", 0x0c00000, 0x400000, CRC(4460a3fd) SHA1(cbebdb65c17605853f7d0b298018dd8801a25a58) )
+ ROM_LOAD( "a0104.u11", 0x1000000, 0x400000, CRC(5f8abb56) SHA1(6c1ddc0309862a141aa0c0f63b641aec9257aaee) )
+ ROM_LOAD( "a0105.u12", 0x1400000, 0x400000, CRC(a17a7147) SHA1(44eeb43c6b0ebb829559a20ae357383fbdeecd82) )
ROM_REGION( 0x1000000, "sprmask", 0 ) /* Sprite Masks + Colour Indexes */
- ROM_LOAD( "b0100.rom", 0x0000000, 0x400000, CRC(69d2e48c) SHA1(5b5f759007264c07b3b39be8e03a713698e1fc2a) )
- ROM_LOAD( "b0101.rom", 0x0400000, 0x400000, CRC(0d587bf3) SHA1(5347828b0a6e4ddd7a263663d2c2604407e4d49c) )
- ROM_LOAD( "b0102.rom", 0x0800000, 0x400000, CRC(43823c1e) SHA1(e10a1a9a81b51b11044934ff702e35d8d7ab1b08) )
+ ROM_LOAD( "b0100.u9", 0x0000000, 0x400000, CRC(69d2e48c) SHA1(5b5f759007264c07b3b39be8e03a713698e1fc2a) )
+ ROM_LOAD( "b0101.u10", 0x0400000, 0x400000, CRC(0d587bf3) SHA1(5347828b0a6e4ddd7a263663d2c2604407e4d49c) )
+ ROM_LOAD( "b0102.u15", 0x0800000, 0x400000, CRC(43823c1e) SHA1(e10a1a9a81b51b11044934ff702e35d8d7ab1b08) )
ROM_REGION( 0x600000, "ics", 0 ) /* Samples - (8 bit mono 11025Hz) - */
PGM_AUDIO_BIOS
- ROM_LOAD( "m0100.rom", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
+ ROM_LOAD( "m0100.u1", 0x400000, 0x200000, CRC(e5c36c83) SHA1(50c6f66770e8faa3df349f7d68c407a7ad021716) )
ROM_END
/*
@@ -3180,9 +3206,7 @@ ROM_START( dmnfrnt )
ROM_LOAD( "dmnfrnt_igs027a.bin", 0x000000, 0x04000, NO_DUMP )
ROM_REGION( 0x800000, "user1", 0 ) /* Protection Data (encrypted external ARM data, internal missing) */
- /* one of these is probably a bad dump, it should be obvious once progress is made because the external rom is checksummed by the internal one */
- ROM_LOAD( "v105_32m.u26", 0x000000, 0x400000, CRC(d200ee63) SHA1(3128c27c5f5a4361d31e7b4bb006de631b3a228c) )
- ROM_LOAD( "chinese-v105.u62", 0x000000, 0x400000, CRC(c798c2ef) SHA1(91e364c33b935293fa765ca521cdb67ac45ec70f) )
+ ROM_LOAD( "v105_32m.u26", 0x000000, 0x400000, CRC(c798c2ef) SHA1(91e364c33b935293fa765ca521cdb67ac45ec70f) )
ROM_REGION( 0xc00000, "tiles", 0 ) /* 8x8 Text Tiles + 32x32 BG Tiles */
PGM_VIDEO_BIOS
@@ -4171,52 +4195,53 @@ DRIVER_INIT_MEMBER(pgm_state,pgm)
/*** GAME ********************************************************************/
-GAME( 1997, pgm, 0, pgm, pgm, pgm_state, pgm, ROT0, "IGS", "PGM (Polygame Master) System BIOS", GAME_IS_BIOS_ROOT )
+GAME( 1997, pgm, 0, pgm, pgm, pgm_state, pgm, ROT0, "IGS", "PGM (Polygame Master) System BIOS", MACHINE_IS_BIOS_ROOT )
/* -----------------------------------------------------------------------------------------------------------------------
Working (at least one set of the game is fully working)
-----------------------------------------------------------------------------------------------------------------------*/
// the version numbering on these is a mess... date strings from ROM (and in some cases even those are missing..)
-GAME( 1997, orlegend, pgm, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. 126)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // V0001 01/14/98 18:16:38 - runs as World
-GAME( 1997, orlegende, orlegend, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. 112)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // V0001 07/14/97 11:19:45 - runs as World
-GAME( 1997, orlegendc, orlegend, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. 112, Chinese Board)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // V0001 05/05/97 10:08:21 - runs as World, Korea, China
-GAME( 1997, orlegendca, orlegend, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. ???, Chinese Board)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // V0001 04/02/97 13:35:43 - runs as HongKong, China, China
-GAME( 1997, orlegend111c, orlegend, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. 111, Chinese Board)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // V0001 no date! - runs as HongKong, China, China
-GAME( 1997, orlegend111t, orlegend, pgm_asic3, orlegendt,pgm_asic3_state, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. 111, Taiwanese Board)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )// V0001 no date! - needs a different protection sequence
-GAME( 1997, orlegend105k, orlegend, pgm_asic3, orld105k, pgm_asic3_state, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. 105, Korean Board)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // V0000 no date! - runs as Korea
-
-GAME( 1997, drgw2, pgm, pgm_012_025_drgw2, pgm, pgm_012_025_state, drgw2, ROT0, "IGS", "Dragon World II (ver. 110X, Export)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1997, dw2v100x, drgw2, pgm_012_025_drgw2, pgm, pgm_012_025_state, dw2v100x, ROT0, "IGS", "Dragon World II (ver. 100X, Export)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1997, drgw2j, drgw2, pgm_012_025_drgw2, pgm, pgm_012_025_state, drgw2j, ROT0, "IGS", "Chuugokuryuu II (ver. 100J, Japan)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1997, drgw2c, drgw2, pgm_012_025_drgw2, pgm, pgm_012_025_state, drgw2c, ROT0, "IGS", "Zhong Guo Long II (ver. 100C, China)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1997, drgw2hk, drgw2, pgm_012_025_drgw2, pgm, pgm_012_025_state, drgw2hk, ROT0, "IGS", "Dragon World II (ver. 100H, Hong Kong [Hokg Kong])", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE | GAME_NOT_WORKING ) // correct title? (region is shown as Hokg Kong, Dragon World 3 is the same)
-
-GAME( 1998, killbld, pgm, pgm_022_025_killbld, killbld, pgm_022_025_state, killbld, ROT0, "IGS", "The Killing Blade (ver. 109, Chinese Board)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) /* region provided by protection device */
-GAME( 1998, killbld104, killbld, pgm_022_025_killbld, killbld, pgm_022_025_state, killbld, ROT0, "IGS", "The Killing Blade (ver. 104)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) /* region provided by protection device */
+GAME( 1997, orlegend, pgm, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. 126)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // V0001 01/14/98 18:16:38 - runs as World
+GAME( 1997, orlegende, orlegend, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. 112)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // V0001 07/14/97 11:19:45 - runs as World
+GAME( 1997, orlegendc, orlegend, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. 112, Chinese Board)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // V0001 05/05/97 10:08:21 - runs as World, Korea, China
+GAME( 1997, orlegendca, orlegend, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. ???, Chinese Board)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // V0001 04/02/97 13:35:43 - runs as HongKong, China, China
+GAME( 1997, orlegend111c, orlegend, pgm_asic3, orlegend, pgm_asic3_state, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. 111, Chinese Board)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // V0001 no date! - runs as HongKong, China, China
+GAME( 1997, orlegend111t, orlegend, pgm_asic3, orlegendt,pgm_asic3_state, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. 111, Taiwanese Board)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )// V0001 no date! - needs a different protection sequence
+GAME( 1997, orlegend111k, orlegend, pgm_asic3, orlegendk,pgm_asic3_state, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. 111, Korean Board)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // not checked
+GAME( 1997, orlegend105k, orlegend, pgm_asic3, orlegendk,pgm_asic3_state, orlegend, ROT0, "IGS", "Oriental Legend / Xi You Shi E Zhuan (ver. 105, Korean Board)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // V0000 no date! - runs as Korea
+
+GAME( 1997, drgw2, pgm, pgm_012_025_drgw2, pgm, pgm_012_025_state, drgw2, ROT0, "IGS", "Dragon World II (ver. 110X, Export)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1997, dw2v100x, drgw2, pgm_012_025_drgw2, pgm, pgm_012_025_state, dw2v100x, ROT0, "IGS", "Dragon World II (ver. 100X, Export)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1997, drgw2j, drgw2, pgm_012_025_drgw2, pgm, pgm_012_025_state, drgw2j, ROT0, "IGS", "Chuugokuryuu II (ver. 100J, Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1997, drgw2c, drgw2, pgm_012_025_drgw2, pgm, pgm_012_025_state, drgw2c, ROT0, "IGS", "Zhong Guo Long II (ver. 100C, China)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1997, drgw2hk, drgw2, pgm_012_025_drgw2, pgm, pgm_012_025_state, drgw2hk, ROT0, "IGS", "Dragon World II (ver. 100H, Hong Kong [Hokg Kong])", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // correct title? (region is shown as Hokg Kong, Dragon World 3 is the same)
+
+GAME( 1998, killbld, pgm, pgm_022_025_killbld, killbld, pgm_022_025_state, killbld, ROT0, "IGS", "The Killing Blade (ver. 109, Chinese Board)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) /* region provided by protection device */
+GAME( 1998, killbld104, killbld, pgm_022_025_killbld, killbld, pgm_022_025_state, killbld, ROT0, "IGS", "The Killing Blade (ver. 104)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) /* region provided by protection device */
// these seem playable but the DMA mode transfering 68k code to RAM is not emulated so there could still be problems
// when set to Japan it has the extra subtitle and so gets referred to as Dragon World 3 Special / Chuugokuryuu 3 Special. The earliest versions seem to only contain the code for the Japanese region, presumably the support for other regions was added later.
-GAME( 1998, drgw3, pgm, pgm_022_025_dw3, dw3, pgm_022_025_state, drgw3, ROT0, "IGS", "Dragon World 3 / Chuugokuryuu 3 Special (ver. 106)", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) /* region provided by protection device */
-GAME( 1998, drgw3105, drgw3, pgm_022_025_dw3, dw3, pgm_022_025_state, drgw3, ROT0, "IGS", "Dragon World 3 / Chuugokuryuu 3 Special (ver. 105)", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) /* region provided by protection device */
-GAME( 1998, drgw3103, drgw3, pgm_022_025_dw3, dw3, pgm_022_025_state, drgw3, ROT0, "IGS", "Chuugokuryuu 3 Special (Japan, ver. 103)", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // Japan only, has an extra game mode option!
-GAME( 1998, drgw3100, drgw3, pgm_022_025_dw3, dw3j,pgm_022_025_state, drgw3, ROT0, "IGS", "Chuugokuryuu 3 Special (Japan, ver. 100)", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // ^
+GAME( 1998, drgw3, pgm, pgm_022_025_dw3, dw3, pgm_022_025_state, drgw3, ROT0, "IGS", "Dragon World 3 / Chuugokuryuu 3 Special (ver. 106)", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) /* region provided by protection device */
+GAME( 1998, drgw3105, drgw3, pgm_022_025_dw3, dw3, pgm_022_025_state, drgw3, ROT0, "IGS", "Dragon World 3 / Chuugokuryuu 3 Special (ver. 105)", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) /* region provided by protection device */
+GAME( 1998, drgw3103, drgw3, pgm_022_025_dw3, dw3, pgm_022_025_state, drgw3, ROT0, "IGS", "Chuugokuryuu 3 Special (Japan, ver. 103)", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // Japan only, has an extra game mode option!
+GAME( 1998, drgw3100, drgw3, pgm_022_025_dw3, dw3j,pgm_022_025_state, drgw3, ROT0, "IGS", "Chuugokuryuu 3 Special (Japan, ver. 100)", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // ^
-GAME( 1998, dwex, pgm, pgm_022_025_dw3, dw3, pgm_022_025_state, drgw3, ROT0, "IGS", "Dragon World 3 EX (ver. 100)", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) /* region provided by protection device */
+GAME( 1998, dwex, pgm, pgm_022_025_dw3, dw3, pgm_022_025_state, drgw3, ROT0, "IGS", "Dragon World 3 EX (ver. 100)", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) /* region provided by protection device */
// region provided by internal ARM rom
-GAME( 1999, photoy2k, pgm, pgm_arm_type1, photoy2k, pgm_arm_type1_state, photoy2k, ROT0, "IGS", "Photo Y2K (ver. 105)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) /* region provided by protection device */
-GAME( 1999, photoy2k104, photoy2k, pgm_arm_type1, photoy2k, pgm_arm_type1_state, photoy2k, ROT0, "IGS", "Photo Y2K (ver. 104)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) /* region provided by protection device */
-GAME( 1999, photoy2k102, photoy2k, pgm_arm_type1, photoy2k, pgm_arm_type1_state, photoy2k, ROT0, "IGS", "Photo Y2K (ver. 102, Japanese Board)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) /* region provided by protection device */
+GAME( 1999, photoy2k, pgm, pgm_arm_type1, photoy2k, pgm_arm_type1_state, photoy2k, ROT0, "IGS", "Photo Y2K (ver. 105)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) /* region provided by protection device */
+GAME( 1999, photoy2k104, photoy2k, pgm_arm_type1, photoy2k, pgm_arm_type1_state, photoy2k, ROT0, "IGS", "Photo Y2K (ver. 104)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) /* region provided by protection device */
+GAME( 1999, photoy2k102, photoy2k, pgm_arm_type1, photoy2k, pgm_arm_type1_state, photoy2k, ROT0, "IGS", "Photo Y2K (ver. 102, Japanese Board)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) /* region provided by protection device */
// region provided by internal ARM rom
-GAME( 1999, kovsh, pgm, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "IGS", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (ver. 104, CN)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 68k: SANGO EX V104 03/24/00 11:15:25, ARM: China internal ROM
-GAME( 1999, kovsh103, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "IGS", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (ver. 103, CN)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 68k: SANGO EX V103 01/18/00 17:37:12, ARM: China internal ROM
-GAME( 1999, kovsh102, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "IGS", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (ver. 102, CN)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 68k: SANGO EX V102 12/23/99 15:17:57, ARM: China internal ROM
-GAME( 1999, kovsh101, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "IGS", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (ver. 101, CN)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 68k: SANGO EX V101 12/20/99 10:59:05, ARM: China internal ROM
-GAME( 1999, kovsh100, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "IGS", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (ver. 100, CN)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 68k: SANGO EX V100 12/06/99 13:36:04, ARM: China internal ROM
+GAME( 1999, kovsh, pgm, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "IGS", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (ver. 104, CN)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 68k: SANGO EX V104 03/24/00 11:15:25, ARM: China internal ROM
+GAME( 1999, kovsh103, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "IGS", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (ver. 103, CN)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 68k: SANGO EX V103 01/18/00 17:37:12, ARM: China internal ROM
+GAME( 1999, kovsh102, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "IGS", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (ver. 102, CN)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 68k: SANGO EX V102 12/23/99 15:17:57, ARM: China internal ROM
+GAME( 1999, kovsh101, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "IGS", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (ver. 101, CN)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 68k: SANGO EX V101 12/20/99 10:59:05, ARM: China internal ROM
+GAME( 1999, kovsh100, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovsh, ROT0, "IGS", "Knights of Valour Super Heroes / Sangoku Senki Super Heroes (ver. 100, CN)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 68k: SANGO EX V100 12/06/99 13:36:04, ARM: China internal ROM
// nasty modern asian bootleg of Knights of Valour Super Heroes with characters ripped from SNK's The King of Fighters series!
-GAME( 1999, kovqhsgs, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovqhsgs, ROT0, "bootleg", "Knights of Valour: Quan Huang San Guo Special / Sangoku Senki: Quan Huang San Guo Special (ver. 303CN)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1999, kovqhsgs, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovqhsgs, ROT0, "bootleg", "Knights of Valour: Quan Huang San Guo Special / Sangoku Senki: Quan Huang San Guo Special (ver. 303CN)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
@@ -4224,148 +4249,148 @@ GAME( 1999, kovqhsgs, kovsh, pgm_arm_type1, kovsh, pgm_arm_type1_sta
// region provided by internal ARM rom
-GAME( 2000, kov2, pgm, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2, ROT0, "IGS", "Knights of Valour 2 / Sangoku Senki 2 (ver. 107, 102, 100HK)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 05/10/01 14:24:08 V107 (Ext. Arm V102, Int. Arm V100HK)
-GAME( 2000, kov2106, kov2, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2, ROT0, "IGS", "Knights of Valour 2 / Sangoku Senki 2 (ver. 106, 102, 100HK)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 02/27/01 13:26:46 V106 (Ext. Arm V102, Int. Arm V100HK)
-GAME( 2000, kov2103, kov2, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2, ROT0, "IGS", "Knights of Valour 2 / Sangoku Senki 2 (ver. 103, 101, 100HK)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 12/28/00 15:09:31 V103 (Ext. Arm V101, Int. Arm V100HK)
-GAME( 2000, kov2102, kov2, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2, ROT0, "IGS", "Knights of Valour 2 / Sangoku Senki 2 (ver. 102, 101, 100HK)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 12/14/00 10:33:36 V102 (Ext. Arm V101, Int. Arm V100HK)
-GAME( 2000, kov2101, kov2, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2, ROT0, "IGS", "Knights of Valour 2 / Sangoku Senki 2 (ver. 101, 101, 100HK)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 11/29/00 11:03:08 V100 (Ext. Arm V100, Int. Arm V100HK)
-GAME( 2000, kov2100, kov2, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2, ROT0, "IGS", "Knights of Valour 2 / Sangoku Senki 2 (ver. 100, 100, 100HK)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 11/29/00 11:03:08 V100 (Ext. Arm V100, Int. Arm V100HK)
+GAME( 2000, kov2, pgm, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2, ROT0, "IGS", "Knights of Valour 2 / Sangoku Senki 2 (ver. 107, 102, 100HK)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 05/10/01 14:24:08 V107 (Ext. Arm V102, Int. Arm V100HK)
+GAME( 2000, kov2106, kov2, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2, ROT0, "IGS", "Knights of Valour 2 / Sangoku Senki 2 (ver. 106, 102, 100HK)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 02/27/01 13:26:46 V106 (Ext. Arm V102, Int. Arm V100HK)
+GAME( 2000, kov2103, kov2, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2, ROT0, "IGS", "Knights of Valour 2 / Sangoku Senki 2 (ver. 103, 101, 100HK)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 12/28/00 15:09:31 V103 (Ext. Arm V101, Int. Arm V100HK)
+GAME( 2000, kov2102, kov2, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2, ROT0, "IGS", "Knights of Valour 2 / Sangoku Senki 2 (ver. 102, 101, 100HK)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 12/14/00 10:33:36 V102 (Ext. Arm V101, Int. Arm V100HK)
+GAME( 2000, kov2101, kov2, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2, ROT0, "IGS", "Knights of Valour 2 / Sangoku Senki 2 (ver. 101, 101, 100HK)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 11/29/00 11:03:08 V100 (Ext. Arm V100, Int. Arm V100HK)
+GAME( 2000, kov2100, kov2, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2, ROT0, "IGS", "Knights of Valour 2 / Sangoku Senki 2 (ver. 100, 100, 100HK)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 11/29/00 11:03:08 V100 (Ext. Arm V100, Int. Arm V100HK)
// region provided by internal ARM rom (we only have a China internal ROM)
-GAME( 2001, kov2p, pgm, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "IGS", "Knights of Valour 2 Plus - Nine Dragons / Sangoku Senki 2 Plus - Nine Dragons (ver. M205XX, 200, 100CN)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 04/25/02 17:48:27 M205XX
-GAME( 2001, kov2p204, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "IGS", "Knights of Valour 2 Plus - Nine Dragons / Sangoku Senki 2 Plus - Nine Dragons (ver. M204XX, 200, 100CN)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 08/28/01 09:11:49 M204XX
-GAME( 2001, kov2p202, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "IGS", "Knights of Valour 2 Plus - Nine Dragons / Sangoku Senki 2 Plus - Nine Dragons (ver. M202XX, 200, 100CN)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 07/09/01 11:03:50 M202XX
+GAME( 2001, kov2p, pgm, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "IGS", "Knights of Valour 2 Plus - Nine Dragons / Sangoku Senki 2 Plus - Nine Dragons (ver. M205XX, 200, 100CN)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 04/25/02 17:48:27 M205XX
+GAME( 2001, kov2p204, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "IGS", "Knights of Valour 2 Plus - Nine Dragons / Sangoku Senki 2 Plus - Nine Dragons (ver. M204XX, 200, 100CN)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 08/28/01 09:11:49 M204XX
+GAME( 2001, kov2p202, kov2p, pgm_arm_type2, kov2, pgm_arm_type2_state, kov2p, ROT0, "IGS", "Knights of Valour 2 Plus - Nine Dragons / Sangoku Senki 2 Plus - Nine Dragons (ver. M202XX, 200, 100CN)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 07/09/01 11:03:50 M202XX
// region provided by internal ARM rom
-GAME( 2001, martmast, pgm, pgm_arm_type2, martmast, pgm_arm_type2_state, martmast, ROT0, "IGS", "Martial Masters (ver. 104, 102, 102US)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 68k V104, Ext Arm 102, Int Arm 102US
-GAME( 2001, martmastc, martmast, pgm_arm_type2, martmast, pgm_arm_type2_state, martmast, ROT0, "IGS", "Martial Masters (ver. 104, 102, 101CN)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 68k V104, Ext Arm 102, Int Arm 101CN
-GAME( 2001, martmastc102, martmast, pgm_arm_type2, martmast, pgm_arm_type2_state, martmast, ROT0, "IGS", "Martial Masters (ver. 102, 101, 101CN)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 68k V102, Ext Arm 101, Int Arm 101CN
+GAME( 2001, martmast, pgm, pgm_arm_type2, martmast, pgm_arm_type2_state, martmast, ROT0, "IGS", "Martial Masters (ver. 104, 102, 102US)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 68k V104, Ext Arm 102, Int Arm 102US
+GAME( 2001, martmastc, martmast, pgm_arm_type2, martmast, pgm_arm_type2_state, martmast, ROT0, "IGS", "Martial Masters (ver. 104, 102, 101CN)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 68k V104, Ext Arm 102, Int Arm 101CN
+GAME( 2001, martmastc102, martmast, pgm_arm_type2, martmast, pgm_arm_type2_state, martmast, ROT0, "IGS", "Martial Masters (ver. 102, 101, 101CN)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 68k V102, Ext Arm 101, Int Arm 101CN
// region provided by internal ARM rom
-GAME( 2001, ddp2, pgm, pgm_arm_type2, pgm, pgm_arm_type2_state, ddp2, ROT270, "IGS", "DoDonPachi II - Bee Storm (World, ver. 102)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2001, ddp2101, ddp2, pgm_arm_type2, pgm, pgm_arm_type2_state, ddp2, ROT270, "IGS", "DoDonPachi II - Bee Storm (World, ver. 101)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2001, ddp2100, ddp2, pgm_arm_type2, pgm, pgm_arm_type2_state, ddp2, ROT270, "IGS", "DoDonPachi II - Bee Storm (World, ver. 100)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2001, ddp2hk, ddp2, pgm_arm_type2, pgm, pgm_arm_type2_state, ddp2, ROT270, "IGS", "DoDonPachi II - Bee Storm (Hong Kong, ver. 102)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2001, ddp2101hk, ddp2, pgm_arm_type2, pgm, pgm_arm_type2_state, ddp2, ROT270, "IGS", "DoDonPachi II - Bee Storm (Hong Kong, ver. 101)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2001, ddp2100hk, ddp2, pgm_arm_type2, pgm, pgm_arm_type2_state, ddp2, ROT270, "IGS", "DoDonPachi II - Bee Storm (Hong Kong, ver. 100)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2001, ddp2k, ddp2, pgm_arm_type2, pgm, pgm_arm_type2_state, ddp2, ROT270, "IGS", "DoDonPachi II - Bee Storm (Korea, ver. 102)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2001, ddp2101k, ddp2, pgm_arm_type2, pgm, pgm_arm_type2_state, ddp2, ROT270, "IGS", "DoDonPachi II - Bee Storm (Korea, ver. 101)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2001, ddp2100k, ddp2, pgm_arm_type2, pgm, pgm_arm_type2_state, ddp2, ROT270, "IGS", "DoDonPachi II - Bee Storm (Korea, ver. 100)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2001, ddp2j, ddp2, pgm_arm_type2, pgm, pgm_arm_type2_state, ddp2, ROT270, "IGS", "DoDonPachi II - Bee Storm (Japan, ver. 102)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2001, ddp2101j, ddp2, pgm_arm_type2, pgm, pgm_arm_type2_state, ddp2, ROT270, "IGS", "DoDonPachi II - Bee Storm (Japan, ver. 101)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2001, ddp2100j, ddp2, pgm_arm_type2, pgm, pgm_arm_type2_state, ddp2, ROT270, "IGS", "DoDonPachi II - Bee Storm (Japan, ver. 100)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2001, ddp2t, ddp2, pgm_arm_type2, pgm, pgm_arm_type2_state, ddp2, ROT270, "IGS", "DoDonPachi II - Bee Storm (Taiwan, ver. 102)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2001, ddp2101t, ddp2, pgm_arm_type2, pgm, pgm_arm_type2_state, ddp2, ROT270, "IGS", "DoDonPachi II - Bee Storm (Taiwan, ver. 101)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2001, ddp2100t, ddp2, pgm_arm_type2, pgm, pgm_arm_type2_state, ddp2, ROT270, "IGS", "DoDonPachi II - Bee Storm (Taiwan, ver. 100)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2001, ddp2c, ddp2, pgm_arm_type2, pgm, pgm_arm_type2_state, ddp2, ROT270, "IGS", "DoDonPachi II - Bee Storm (China, ver. 102)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2001, ddp2101c, ddp2, pgm_arm_type2, pgm, pgm_arm_type2_state, ddp2, ROT270, "IGS", "DoDonPachi II - Bee Storm (China, ver. 101)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2001, ddp2100c, ddp2, pgm_arm_type2, pgm, pgm_arm_type2_state, ddp2, ROT270, "IGS", "DoDonPachi II - Bee Storm (China, ver. 100)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 2001, ddp2, pgm, pgm_arm_type2, pgm, pgm_arm_type2_state, ddp2, ROT270, "IGS", "DoDonPachi II - Bee Storm (World, ver. 102)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2001, ddp2101, ddp2, pgm_arm_type2, pgm, pgm_arm_type2_state, ddp2, ROT270, "IGS", "DoDonPachi II - Bee Storm (World, ver. 101)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2001, ddp2100, ddp2, pgm_arm_type2, pgm, pgm_arm_type2_state, ddp2, ROT270, "IGS", "DoDonPachi II - Bee Storm (World, ver. 100)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2001, ddp2hk, ddp2, pgm_arm_type2, pgm, pgm_arm_type2_state, ddp2, ROT270, "IGS", "DoDonPachi II - Bee Storm (Hong Kong, ver. 102)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2001, ddp2101hk, ddp2, pgm_arm_type2, pgm, pgm_arm_type2_state, ddp2, ROT270, "IGS", "DoDonPachi II - Bee Storm (Hong Kong, ver. 101)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2001, ddp2100hk, ddp2, pgm_arm_type2, pgm, pgm_arm_type2_state, ddp2, ROT270, "IGS", "DoDonPachi II - Bee Storm (Hong Kong, ver. 100)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2001, ddp2k, ddp2, pgm_arm_type2, pgm, pgm_arm_type2_state, ddp2, ROT270, "IGS", "DoDonPachi II - Bee Storm (Korea, ver. 102)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2001, ddp2101k, ddp2, pgm_arm_type2, pgm, pgm_arm_type2_state, ddp2, ROT270, "IGS", "DoDonPachi II - Bee Storm (Korea, ver. 101)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2001, ddp2100k, ddp2, pgm_arm_type2, pgm, pgm_arm_type2_state, ddp2, ROT270, "IGS", "DoDonPachi II - Bee Storm (Korea, ver. 100)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2001, ddp2j, ddp2, pgm_arm_type2, pgm, pgm_arm_type2_state, ddp2, ROT270, "IGS", "DoDonPachi II - Bee Storm (Japan, ver. 102)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2001, ddp2101j, ddp2, pgm_arm_type2, pgm, pgm_arm_type2_state, ddp2, ROT270, "IGS", "DoDonPachi II - Bee Storm (Japan, ver. 101)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2001, ddp2100j, ddp2, pgm_arm_type2, pgm, pgm_arm_type2_state, ddp2, ROT270, "IGS", "DoDonPachi II - Bee Storm (Japan, ver. 100)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2001, ddp2t, ddp2, pgm_arm_type2, pgm, pgm_arm_type2_state, ddp2, ROT270, "IGS", "DoDonPachi II - Bee Storm (Taiwan, ver. 102)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2001, ddp2101t, ddp2, pgm_arm_type2, pgm, pgm_arm_type2_state, ddp2, ROT270, "IGS", "DoDonPachi II - Bee Storm (Taiwan, ver. 101)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2001, ddp2100t, ddp2, pgm_arm_type2, pgm, pgm_arm_type2_state, ddp2, ROT270, "IGS", "DoDonPachi II - Bee Storm (Taiwan, ver. 100)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2001, ddp2c, ddp2, pgm_arm_type2, pgm, pgm_arm_type2_state, ddp2, ROT270, "IGS", "DoDonPachi II - Bee Storm (China, ver. 102)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2001, ddp2101c, ddp2, pgm_arm_type2, pgm, pgm_arm_type2_state, ddp2, ROT270, "IGS", "DoDonPachi II - Bee Storm (China, ver. 101)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2001, ddp2100c, ddp2, pgm_arm_type2, pgm, pgm_arm_type2_state, ddp2, ROT270, "IGS", "DoDonPachi II - Bee Storm (China, ver. 100)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
// japan region only? service mode calls it Dragon World 2001 so I'm leaving that title in the description
-GAME( 2001, dw2001, pgm, pgm_arm_type2, dw2001, pgm_arm_type2_state, dw2001, ROT0, "IGS", "Chuugokuryuu 2001 [Dragon World 2001] (V100?, Japan)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 02/21/01 16:05:16
+GAME( 2001, dw2001, pgm, pgm_arm_type2, dw2001, pgm_arm_type2_state, dw2001, ROT0, "IGS", "Chuugokuryuu 2001 [Dragon World 2001] (V100?, Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 02/21/01 16:05:16
// japan region only? service mode calls it Dragon World Pretty Chance so I'm leaving that title in the description
-GAME( 2001, dwpc, pgm, pgm_arm_type2, dw2001, pgm_arm_type2_state, dwpc, ROT0, "IGS", "Chuugokuryuu Pretty Chance [Dragon World Pretty Chance] (V101, Japan)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 09/26/01 10:23:26
+GAME( 2001, dwpc, pgm, pgm_arm_type2, dw2001, pgm_arm_type2_state, dwpc, ROT0, "IGS", "Chuugokuryuu Pretty Chance [Dragon World Pretty Chance] (V101, Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 09/26/01 10:23:26
// we bypass the internal ARM rom on these, ideally it should still be dumped tho! the region screens show a blank string where the internal ROM revision would otherwise be displayed
// ARM version strings don't match 100% with labels... for 68k ROMs I'm using the build time / date stamp from near the start of the rom, there are some slightly different time stamps later
-GAME( 2002, dmnfrnt, pgm, pgm_arm_type3, pgm, pgm_arm_type3_state, dmnfrnt, ROT0, "IGS", "Demon Front (68k label V105, ROM M105XX 08/05/02) (ARM label V105, ROM 08/05/02 S105XX)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 68k time: 10:24:11 ARM time: 10:33:23
-GAME( 2002, dmnfrntb, dmnfrnt, pgm_arm_type3, pgm, pgm_arm_type3_state, dmnfrnt, ROT0, "IGS", "Demon Front (68k label V103, ROM M103XX 07/05/02) (ARM label V103, ROM 07/05/02 S103XX)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 68k time: 14:43:13 ARM time: 11:04:24
-GAME( 2002, dmnfrnta, dmnfrnt, pgm_arm_type3, pgm, pgm_arm_type3_state, dmnfrnt, ROT0, "IGS", "Demon Front (68k label V102, ROM M102XX 06/19/02) (ARM label V102, ROM 05/24/02 S101XX)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 68k time: 13:44:08 ARM time: 13:04:31 (from the strings it looks like V102 only upgraded the 68k ROM)
-GAME( 2002, dmnfrntpcb, dmnfrnt, pgm_arm_type3, pgm, pgm_arm_type3_state, dmnfrnt, ROT0, "IGS", "Demon Front (68k label V107KR, ROM M107KR 11/03/03) (ARM label V106KR, ROM 10/16/03 S106KR) (JAMMA PCB)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // works but reports version mismatch (wants internal rom version and region to match external?)
+GAME( 2002, dmnfrnt, pgm, pgm_arm_type3, pgm, pgm_arm_type3_state, dmnfrnt, ROT0, "IGS", "Demon Front (68k label V105, ROM M105XX 08/05/02) (ARM label V105, ROM 08/05/02 S105XX)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 68k time: 10:24:11 ARM time: 10:33:23
+GAME( 2002, dmnfrntb, dmnfrnt, pgm_arm_type3, pgm, pgm_arm_type3_state, dmnfrnt, ROT0, "IGS", "Demon Front (68k label V103, ROM M103XX 07/05/02) (ARM label V103, ROM 07/05/02 S103XX)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 68k time: 14:43:13 ARM time: 11:04:24
+GAME( 2002, dmnfrnta, dmnfrnt, pgm_arm_type3, pgm, pgm_arm_type3_state, dmnfrnt, ROT0, "IGS", "Demon Front (68k label V102, ROM M102XX 06/19/02) (ARM label V102, ROM 05/24/02 S101XX)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // 68k time: 13:44:08 ARM time: 13:04:31 (from the strings it looks like V102 only upgraded the 68k ROM)
+GAME( 2002, dmnfrntpcb, dmnfrnt, pgm_arm_type3, pgm, pgm_arm_type3_state, dmnfrnt, ROT0, "IGS", "Demon Front (68k label V107KR, ROM M107KR 11/03/03) (ARM label V106KR, ROM 10/16/03 S106KR) (JAMMA PCB)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // works but reports version mismatch (wants internal rom version and region to match external?)
/* these don't use an External ARM rom, and don't have any weak internal functions which would allow the internal ROM to be read out */
-GAME( 2002, ddpdoj, 0, pgm_arm_type1_cave, pgm, pgm_arm_type1_state, ddp3, ROT270, "Cave (AMI license)", "DoDonPachi Dai-Ou-Jou V101 (2002.04.05.Master Ver)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // is there a v101 without the . after 05?
-GAME( 2002, ddpdoja, ddpdoj, pgm_arm_type1_cave, pgm, pgm_arm_type1_state, ddp3, ROT270, "Cave (AMI license)", "DoDonPachi Dai-Ou-Jou V100 (2002.04.05.Master Ver)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2002, ddpdojb, ddpdoj, pgm_arm_type1_cave, pgm, pgm_arm_type1_state, ddp3, ROT270, "Cave (AMI license)", "DoDonPachi Dai-Ou-Jou (2002.04.05 Master Ver)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2002, ddpdojblk, ddpdoj, pgm_arm_type1_cave, pgm, pgm_arm_type1_state, ddp3, ROT270, "Cave (AMI license)", "DoDonPachi Dai-Ou-Jou (2002.10.07.Black Ver)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // Displays "2002.04.05.Master Ver" (old) or "2002.10.07.Black Ver" (new)
-GAME( 2002, ddpdojblka, ddpdoj, pgm_arm_type1_cave, pgm, pgm_arm_type1_state, ddp3, ROT270, "Cave (AMI license)", "DoDonPachi Dai-Ou-Jou (2002.10.07 Black Ver)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // Displays "2002.04.05.Master Ver" (old) or "2002.10.07 Black Ver" (new)
+GAME( 2002, ddpdoj, 0, pgm_arm_type1_cave, pgm, pgm_arm_type1_state, ddp3, ROT270, "Cave (AMI license)", "DoDonPachi Dai-Ou-Jou V101 (2002.04.05.Master Ver)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // is there a v101 without the . after 05?
+GAME( 2002, ddpdoja, ddpdoj, pgm_arm_type1_cave, pgm, pgm_arm_type1_state, ddp3, ROT270, "Cave (AMI license)", "DoDonPachi Dai-Ou-Jou V100 (2002.04.05.Master Ver)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2002, ddpdojb, ddpdoj, pgm_arm_type1_cave, pgm, pgm_arm_type1_state, ddp3, ROT270, "Cave (AMI license)", "DoDonPachi Dai-Ou-Jou (2002.04.05 Master Ver)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2002, ddpdojblk, ddpdoj, pgm_arm_type1_cave, pgm, pgm_arm_type1_state, ddp3, ROT270, "Cave (AMI license)", "DoDonPachi Dai-Ou-Jou (2002.10.07.Black Ver)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // Displays "2002.04.05.Master Ver" (old) or "2002.10.07.Black Ver" (new)
+GAME( 2002, ddpdojblka, ddpdoj, pgm_arm_type1_cave, pgm, pgm_arm_type1_state, ddp3, ROT270, "Cave (AMI license)", "DoDonPachi Dai-Ou-Jou (2002.10.07 Black Ver)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // Displays "2002.04.05.Master Ver" (old) or "2002.10.07 Black Ver" (new)
// the exact text of the 'version' shows which revision of the game it is; the newest has 2 '.' symbols in the string, the oldest, none.
-GAME( 2002, ket, 0, pgm_arm_type1_cave, pgm, pgm_arm_type1_state, ket, ROT270, "Cave (AMI license)", "Ketsui: Kizuna Jigoku Tachi (2003/01/01. Master Ver.)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2002, keta, ket, pgm_arm_type1_cave, pgm, pgm_arm_type1_state, ket, ROT270, "Cave (AMI license)", "Ketsui: Kizuna Jigoku Tachi (2003/01/01 Master Ver.)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2002, ketb, ket, pgm_arm_type1_cave, pgm, pgm_arm_type1_state, ket, ROT270, "Cave (AMI license)", "Ketsui: Kizuna Jigoku Tachi (2003/01/01 Master Ver)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 2002, ket, 0, pgm_arm_type1_cave, pgm, pgm_arm_type1_state, ket, ROT270, "Cave (AMI license)", "Ketsui: Kizuna Jigoku Tachi (2003/01/01. Master Ver.)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2002, keta, ket, pgm_arm_type1_cave, pgm, pgm_arm_type1_state, ket, ROT270, "Cave (AMI license)", "Ketsui: Kizuna Jigoku Tachi (2003/01/01 Master Ver.)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2002, ketb, ket, pgm_arm_type1_cave, pgm, pgm_arm_type1_state, ket, ROT270, "Cave (AMI license)", "Ketsui: Kizuna Jigoku Tachi (2003/01/01 Master Ver)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 2003, espgal, 0, pgm_arm_type1_cave, pgm, pgm_arm_type1_state, espgal, ROT270, "Cave (AMI license)", "Espgaluda (2003/10/15 Master Ver)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 2003, espgal, 0, pgm_arm_type1_cave, pgm, pgm_arm_type1_state, espgal, ROT270, "Cave (AMI license)", "Espgaluda (2003/10/15 Master Ver)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
// protection simulated, but should be correct
-GAME( 1999, puzzli2, pgm, pgm_arm_type1_sim, puzzli2, pgm_arm_type1_state, puzzli2, ROT0, "IGS", "Puzzli 2 (ver. 100)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // ROM label is V100 ( V0001, 11/22/99 09:27:58 in program ROM )
-GAME( 2001, puzzli2s, puzzli2, pgm_arm_type1_sim, puzzli2, pgm_arm_type1_state, puzzli2, ROT0, "IGS", "Puzzli 2 Super (ver. 200)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // ( V200, 12/28/01 12:53:34 in program ROM )
+GAME( 1999, puzzli2, pgm, pgm_arm_type1_sim, puzzli2, pgm_arm_type1_state, puzzli2, ROT0, "IGS", "Puzzli 2 (ver. 100)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // ROM label is V100 ( V0001, 11/22/99 09:27:58 in program ROM )
+GAME( 2001, puzzli2s, puzzli2, pgm_arm_type1_sim, puzzli2, pgm_arm_type1_state, puzzli2, ROT0, "IGS", "Puzzli 2 Super (ver. 200)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // ( V200, 12/28/01 12:53:34 in program ROM )
-GAME( 2005, killbldp, pgm, pgm_arm_type3, pgm, pgm_arm_type3_state, killbldp, ROT0, "IGS", "The Killing Blade Plus (China, ver. 300)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) /* using internal rom from bootleg */
+GAME( 2005, killbldp, pgm, pgm_arm_type3, pgm, pgm_arm_type3_state, killbldp, ROT0, "IGS", "The Killing Blade Plus (China, ver. 300)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) /* using internal rom from bootleg */
// we're using a partial dump of the internal rom (sans the execute only area) with handcrafted startup code..
// all 3 68k roms still have V100 strings, but are clearly different builds, there don't appear to be build string dates in them. Two of the external ARM roms are marked V100 but are different builds, the single PCB v100 appears to be a later revision than the cart V100 as it shares the internal ROM with the V107 cart version, the v100 cart has a different internal ROM
-GAME( 2003, theglad, pgm, pgm_arm_type3, theglad, pgm_arm_type3_state, theglad, ROT0, "IGS", "The Gladiator / Road of the Sword / Shen Jian (M68k label V101) (ARM label V107, ROM 06/06/03 SHEN JIAN V107)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // ARM time: 16:17:27
-GAME( 2003, theglad101, theglad, pgm_arm_type3, theglad, pgm_arm_type3_state, theglad, ROT0, "IGS", "The Gladiator / Road of the Sword / Shen Jian (M68k label V100) (ARM label V101, ROM 03/13/03 SHEN JIAN)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // ARM time: 14:06:44
+GAME( 2003, theglad, pgm, pgm_arm_type3, theglad, pgm_arm_type3_state, theglad, ROT0, "IGS", "The Gladiator / Road of the Sword / Shen Jian (M68k label V101) (ARM label V107, ROM 06/06/03 SHEN JIAN V107)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // ARM time: 16:17:27
+GAME( 2003, theglad101, theglad, pgm_arm_type3, theglad, pgm_arm_type3_state, theglad, ROT0, "IGS", "The Gladiator / Road of the Sword / Shen Jian (M68k label V100) (ARM label V101, ROM 03/13/03 SHEN JIAN)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // ARM time: 14:06:44
// the v100 68k ROM on this is older than the v101 set, this set also uses a different internal ROM to everything else, must be a very early release, maybe pre v100 proto with v100 strings?
-GAME( 2003, theglad100, theglad, pgm_arm_type3, theglad, pgm_arm_type3_state, theglada, ROT0, "IGS", "The Gladiator / Road of the Sword / Shen Jian (M68k label V100) (ARM label V100, ROM 01/16/03 SHEN JIAN)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) /* need correct internal rom of IGS027A - we currently patch the one we have */ // ARM time: 10:39:25
+GAME( 2003, theglad100, theglad, pgm_arm_type3, theglad, pgm_arm_type3_state, theglada, ROT0, "IGS", "The Gladiator / Road of the Sword / Shen Jian (M68k label V100) (ARM label V100, ROM 01/16/03 SHEN JIAN)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) /* need correct internal rom of IGS027A - we currently patch the one we have */ // ARM time: 10:39:25
// newer than ARM V100 Cart, older than ARM V101 Cart, same 68k rom as V101 Cart.
-GAME( 2003, thegladpcb, theglad, pgm_arm_type3, pgm, pgm_arm_type3_state, theglad, ROT0, "IGS", "The Gladiator / Road of the Sword / Shen Jian (M68k label V100) (ARM label V100, ROM 02/25/03 SHEN JIAN) (Japan, JAMMA PCB)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )// ARM time: 16:32:21 // PCB version only released in Japan?
+GAME( 2003, thegladpcb, theglad, pgm_arm_type3, pgm, pgm_arm_type3_state, theglad, ROT0, "IGS", "The Gladiator / Road of the Sword / Shen Jian (M68k label V100) (ARM label V100, ROM 02/25/03 SHEN JIAN) (Japan, JAMMA PCB)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )// ARM time: 16:32:21 // PCB version only released in Japan?
-GAME( 2005, svg, pgm, pgm_arm_type3, svg, pgm_arm_type3_state, svg, ROT0, "IGS / Idea Factory", "S.V.G. - Spectral vs Generation (M68k label V200) (ARM label V200, ROM 10/11/05 S.V.G V201)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // ARM label was 200, but it's code rev 201? // ARM time: 10:07:20
-GAME( 2005, svgtw, svg, pgm_arm_type3, svgtw,pgm_arm_type3_state, svgpcb, ROT0, "IGS / Idea Factory", "S.V.G. - Spectral vs Generation (M68k label V101TW) (ARM label V101TW, ROM 06/20/05 S.V.G V100)", GAME_NOT_WORKING ) // 68k label was 101 but it's same as v100
-GAME( 2005, svgpcb, svg, pgm_arm_type3, svg, pgm_arm_type3_state, svgpcb, ROT0, "IGS / Idea Factory", "S.V.G. - Spectral vs Generation (M68k label V100JP) (ARM label V100JP, ROM 05/12/05 S.V.G V100) (Japan, JAMMA PCB)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )// ARM time: 15:31:35 // PCB version only released in Japan?
+GAME( 2005, svg, pgm, pgm_arm_type3, svg, pgm_arm_type3_state, svg, ROT0, "IGS / Idea Factory", "S.V.G. - Spectral vs Generation (M68k label V200) (ARM label V200, ROM 10/11/05 S.V.G V201)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // ARM label was 200, but it's code rev 201? // ARM time: 10:07:20
+GAME( 2005, svgtw, svg, pgm_arm_type3, svgtw,pgm_arm_type3_state, svgpcb, ROT0, "IGS / Idea Factory", "S.V.G. - Spectral vs Generation (M68k label V101TW) (ARM label V101TW, ROM 06/20/05 S.V.G V100)", MACHINE_NOT_WORKING ) // 68k label was 101 but it's same as v100
+GAME( 2005, svgpcb, svg, pgm_arm_type3, svg, pgm_arm_type3_state, svgpcb, ROT0, "IGS / Idea Factory", "S.V.G. - Spectral vs Generation (M68k label V100JP) (ARM label V100JP, ROM 05/12/05 S.V.G V100) (Japan, JAMMA PCB)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )// ARM time: 15:31:35 // PCB version only released in Japan?
-GAME( 2004, happy6, pgm, pgm_arm_type3, happy6, pgm_arm_type3_state, happy6, ROT0, "IGS", "Happy 6-in-1 (ver. 102CN)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2004, happy6101, happy6, pgm_arm_type3, happy6, pgm_arm_type3_state, happy6, ROT0, "IGS", "Happy 6-in-1 (ver. 101CN)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 2004, happy6, pgm, pgm_arm_type3, happy6, pgm_arm_type3_state, happy6, ROT0, "IGS", "Happy 6-in-1 (ver. 102CN)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 2004, happy6101, happy6, pgm_arm_type3, happy6, pgm_arm_type3_state, happy6, ROT0, "IGS", "Happy 6-in-1 (ver. 101CN)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
/* -----------------------------------------------------------------------------------------------------------------------
Partially Working, playable, but some imperfections
-----------------------------------------------------------------------------------------------------------------------*/
-GAME( 1998, olds, pgm, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "IGS", "Oriental Legend Special / Xi You Shi E Zhuan Super (ver. 101, Korean Board)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE ) /* region provided by protection device */
-GAME( 1998, olds100, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "IGS", "Oriental Legend Special / Xi You Shi E Zhuan Super (ver. 100, set 1)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE ) /* region provided by protection device */
-GAME( 1998, olds100a, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "IGS", "Oriental Legend Special / Xi You Shi E Zhuan Super (ver. 100, set 2)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE ) /* region provided by protection device */
+GAME( 1998, olds, pgm, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "IGS", "Oriental Legend Special / Xi You Shi E Zhuan Super (ver. 101, Korean Board)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) /* region provided by protection device */
+GAME( 1998, olds100, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "IGS", "Oriental Legend Special / Xi You Shi E Zhuan Super (ver. 100, set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) /* region provided by protection device */
+GAME( 1998, olds100a, olds, pgm_028_025_ol, olds, pgm_028_025_state, olds, ROT0, "IGS", "Oriental Legend Special / Xi You Shi E Zhuan Super (ver. 100, set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) /* region provided by protection device */
// This version was specially made for a Chinese online gaming company. While it may not be entirely suitable for MAME, it can give some insight into how protection should work.
-GAME( 1998, olds103t, olds, pgm, pgm, pgm_state, pgm, ROT0, "bootleg", "Oriental Legend Special / Xi You Shi E Zhuan Super (ver. 103, China, Tencent) (unprotected)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1998, olds103t, olds, pgm, pgm, pgm_state, pgm, ROT0, "bootleg", "Oriental Legend Special / Xi You Shi E Zhuan Super (ver. 103, China, Tencent) (unprotected)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1999, kov, pgm, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "IGS", "Knights of Valour / Sangoku Senki (ver. 117)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE ) /* need internal rom of IGS027A */ // V0008 04/27/99 10:33:33
-GAME( 1999, kov115, kov, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "IGS", "Knights of Valour / Sangoku Senki (ver. 115)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE ) /* need internal rom of IGS027A */ // V0006 02/22/99 11:53:18
-GAME( 1999, kov100, kov, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "IGS", "Knights of Valour / Sangoku Senki (ver. 100, Japanese Board)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE ) /* need internal rom of IGS027A */ // V0002 01/31/99 01:54:16
+GAME( 1999, kov, pgm, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "IGS", "Knights of Valour / Sangoku Senki (ver. 117)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */ // V0008 04/27/99 10:33:33
+GAME( 1999, kov115, kov, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "IGS", "Knights of Valour / Sangoku Senki (ver. 115)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */ // V0006 02/22/99 11:53:18
+GAME( 1999, kov100, kov, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "IGS", "Knights of Valour / Sangoku Senki (ver. 100, Japanese Board)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */ // V0002 01/31/99 01:54:16
-GAME( 1999, kovplus, pgm, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "IGS", "Knights of Valour Plus / Sangoku Senki Plus (ver. 119, set 1)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
-GAME( 1999, kovplusa, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "IGS", "Knights of Valour Plus / Sangoku Senki Plus (ver. 119, set 2)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
+GAME( 1999, kovplus, pgm, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "IGS", "Knights of Valour Plus / Sangoku Senki Plus (ver. 119, set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
+GAME( 1999, kovplusa, kovplus, pgm_arm_type1_sim, sango, pgm_arm_type1_state, kov, ROT0, "IGS", "Knights of Valour Plus / Sangoku Senki Plus (ver. 119, set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
// modified title screen is only visible for china region, so use that by default. Character select portraits don't seem quite right (different protection?)
-GAME( 1999, kovsgqyz, kovplus, pgm_arm_type1_sim, sango_ch, pgm_arm_type1_state, kovboot, ROT0, "bootleg", "Knights of Valour: SanGuo QunYingZhuan / Sangoku Senki: SanGuo QunYingZhuan (bootleg, set 1)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
-GAME( 1999, kovsgqyza, kovplus, pgm_arm_type1_sim, sango_ch, pgm_arm_type1_state, kovboot, ROT0, "bootleg", "Knights of Valour: SanGuo QunYingZhuan / Sangoku Senki: SanGuo QunYingZhuan (bootleg, set 2)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
-GAME( 1999, kovsgqyzb, kovplus, pgm_arm_type1_sim, sango_ch, pgm_arm_type1_state, kovboot, ROT0, "bootleg", "Knights of Valour: SanGuo QunYingZhuan / Sangoku Senki: SanGuo QunYingZhuan (bootleg, set 3)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
+GAME( 1999, kovsgqyz, kovplus, pgm_arm_type1_sim, sango_ch, pgm_arm_type1_state, kovboot, ROT0, "bootleg", "Knights of Valour: SanGuo QunYingZhuan / Sangoku Senki: SanGuo QunYingZhuan (bootleg, set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
+GAME( 1999, kovsgqyza, kovplus, pgm_arm_type1_sim, sango_ch, pgm_arm_type1_state, kovboot, ROT0, "bootleg", "Knights of Valour: SanGuo QunYingZhuan / Sangoku Senki: SanGuo QunYingZhuan (bootleg, set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
+GAME( 1999, kovsgqyzb, kovplus, pgm_arm_type1_sim, sango_ch, pgm_arm_type1_state, kovboot, ROT0, "bootleg", "Knights of Valour: SanGuo QunYingZhuan / Sangoku Senki: SanGuo QunYingZhuan (bootleg, set 3)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
/* -----------------------------------------------------------------------------------------------------------------------
NOT Working (mostly due to needing internal protection roms dumped)
-----------------------------------------------------------------------------------------------------------------------*/
-GAME( 1999, puzlstar, pgm, pgm_arm_type1_sim, pstar, pgm_arm_type1_state, pstar, ROT0, "IGS", "Puzzle Star (ver. 100MG)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
+GAME( 1999, puzlstar, pgm, pgm_arm_type1_sim, pstar, pgm_arm_type1_state, pstar, ROT0, "IGS", "Puzzle Star (ver. 100MG)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
-GAME( 2001, py2k2, pgm, pgm_arm_type1_sim, py2k2, pgm_arm_type1_state, py2k2, ROT0, "IGS", "Photo Y2K 2", GAME_NOT_WORKING ) /* need internal rom of IGS027A */
-GAME( 2004, pgm3in1, pgm, pgm_arm_type1_sim, py2k2, pgm_arm_type1_state, pgm3in1, ROT0, "IGS", "Photo Y2K 2 (Flash 3-in-1)", GAME_NOT_WORKING ) /* need internal rom of IGS027A */
+GAME( 2001, py2k2, pgm, pgm_arm_type1_sim, py2k2, pgm_arm_type1_state, py2k2, ROT0, "IGS", "Photo Y2K 2", MACHINE_NOT_WORKING ) /* need internal rom of IGS027A */
+GAME( 2004, pgm3in1, pgm, pgm_arm_type1_sim, py2k2, pgm_arm_type1_state, pgm3in1, ROT0, "IGS", "Photo Y2K 2 (Flash 3-in-1)", MACHINE_NOT_WORKING ) /* need internal rom of IGS027A */
/* Games below this point are known to have an 'execute only' internal ROM area covering an area at the start of the internal ROM. This can't be read when running code from either internal or external ROM space. */
// simulation doesn't seem 100%
-GAME( 2004, oldsplus, pgm, pgm_arm_type1_sim, oldsplus, pgm_arm_type1_state, oldsplus, ROT0, "IGS", "Oriental Legend Special Plus / Xi You Shi E Zhuan Super Plus", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
+GAME( 2004, oldsplus, pgm, pgm_arm_type1_sim, oldsplus, pgm_arm_type1_state, oldsplus, ROT0, "IGS", "Oriental Legend Special Plus / Xi You Shi E Zhuan Super Plus", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
// we use the kovsh ARM rom for this, itercepting commands and changing them to match it, doesn't seem 100% correct tho so I'm leaving it as NOT WORKING; for example the ARM rom supplies addresses of Z80 music data sections, which have moved causing incorrect music, some damage rates could be different too.
// the game logo remains stuck on the screen during gameplay, but videos of the original board suggest this happens on real hardware as well
// if the internal ROM can't be extracted (likely case, execute only area and NO chance of custom code execution at all due to lack of external ROM) then a reference simulator should probably be written based on the actual
// kovsh code, tweaked based on tests done with this specific board to catch any different behaviors. These all seem to be for China only, they don't work as expected when set to other regions.
-GAME( 2004, kovshp, pgm, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovshp, ROT0, "IGS", "Knights of Valour Super Heroes Plus / Sangoku Senki Super Heroes Plus (ver. 101)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
-GAME( 2004, kovshpa, kovshp, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovshp, ROT0, "IGS", "Knights of Valour Super Heroes Plus / Sangoku Senki Super Heroes Plus (ver. 100)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
+GAME( 2004, kovshp, pgm, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovshp, ROT0, "IGS", "Knights of Valour Super Heroes Plus / Sangoku Senki Super Heroes Plus (ver. 101)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
+GAME( 2004, kovshpa, kovshp, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovshp, ROT0, "IGS", "Knights of Valour Super Heroes Plus / Sangoku Senki Super Heroes Plus (ver. 100)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
// Seems to be an earlier version, uses same PCB as kovsh.
-GAME( 1999, kovytzy, pgm, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovshp, ROT0, "IGS", "Knights of Valour: Yi Tong Zhong Yuan / Sangoku Senki: Yi Tong Zhong Yuan (ver. 201, China)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
+GAME( 1999, kovytzy, pgm, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovshp, ROT0, "IGS", "Knights of Valour: Yi Tong Zhong Yuan / Sangoku Senki: Yi Tong Zhong Yuan (ver. 201, China)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
// this bootleg is very close to kovshp
-GAME( 2004, kovshxas, kovshp, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovshxas, ROT0, "bootleg", "Knights of Valour: Aoshi Sanguo / Sangoku Senki: Aoshi Sanguo (ver. 202CN)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
+GAME( 2004, kovshxas, kovshp, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovshxas, ROT0, "bootleg", "Knights of Valour: Aoshi Sanguo / Sangoku Senki: Aoshi Sanguo (ver. 202CN)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
// these should be bootlegs of kovshp, but have further command changes in their ARMs and have a lot of code shuffled around, bootlegs of a different revision?
-GAME( 2004, kovlsqh, kovshp, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovlsqh2, ROT0, "bootleg", "Knights of Valour: Luan Shi Quan Huang / Sangoku Senki: Luan Shi Quan Huang (ver. 200CN)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
-GAME( 2004, kovlsqh2, kovshp, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovlsqh2, ROT0, "bootleg", "Knights of Valour: Luan Shi Quan Huang 2 / Sangoku Senki: Luan Shi Quan Huang 2 (ver. 200CN)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
-GAME( 2004, kovlsjb, kovshp, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovlsqh2, ROT0, "bootleg", "Knights of Valour: Luan Shi Jie Ba / Sangoku Senki: Luan Shi Jie Ba (ver. 200CN, set 1)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
-GAME( 2004, kovlsjba, kovshp, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovlsqh2, ROT0, "bootleg", "Knights of Valour: Luan Shi Jie Ba / Sangoku Senki: Luan Shi Jie Ba (ver. 200CN, set 2)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
+GAME( 2004, kovlsqh, kovshp, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovlsqh2, ROT0, "bootleg", "Knights of Valour: Luan Shi Quan Huang / Sangoku Senki: Luan Shi Quan Huang (ver. 200CN)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
+GAME( 2004, kovlsqh2, kovshp, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovlsqh2, ROT0, "bootleg", "Knights of Valour: Luan Shi Quan Huang 2 / Sangoku Senki: Luan Shi Quan Huang 2 (ver. 200CN)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
+GAME( 2004, kovlsjb, kovshp, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovlsqh2, ROT0, "bootleg", "Knights of Valour: Luan Shi Jie Ba / Sangoku Senki: Luan Shi Jie Ba (ver. 200CN, set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
+GAME( 2004, kovlsjba, kovshp, pgm_arm_type1, kovsh, pgm_arm_type1_state, kovlsqh2, ROT0, "bootleg", "Knights of Valour: Luan Shi Jie Ba / Sangoku Senki: Luan Shi Jie Ba (ver. 200CN, set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) /* need internal rom of IGS027A */
diff --git a/src/mame/drivers/pgm2.c b/src/mame/drivers/pgm2.c
index 626d19f7889..4b695bc6e1b 100644
--- a/src/mame/drivers/pgm2.c
+++ b/src/mame/drivers/pgm2.c
@@ -547,20 +547,20 @@ DRIVER_INIT_MEMBER(pgm2_state,kov3)
/* PGM2 */
-GAME( 2007, orleg2, 0, pgm2, pgm2, pgm2_state, orleg2, ROT0, "IGS", "Oriental Legend 2 (V104, China)", GAME_IS_SKELETON )
-GAME( 2007, orleg2o, orleg2, pgm2, pgm2, pgm2_state, orleg2, ROT0, "IGS", "Oriental Legend 2 (V103, China)", GAME_IS_SKELETON )
-GAME( 2007, orleg2oa, orleg2, pgm2, pgm2, pgm2_state, orleg2, ROT0, "IGS", "Oriental Legend 2 (V101, China)", GAME_IS_SKELETON )
+GAME( 2007, orleg2, 0, pgm2, pgm2, pgm2_state, orleg2, ROT0, "IGS", "Oriental Legend 2 (V104, China)", MACHINE_IS_SKELETON )
+GAME( 2007, orleg2o, orleg2, pgm2, pgm2, pgm2_state, orleg2, ROT0, "IGS", "Oriental Legend 2 (V103, China)", MACHINE_IS_SKELETON )
+GAME( 2007, orleg2oa, orleg2, pgm2, pgm2, pgm2_state, orleg2, ROT0, "IGS", "Oriental Legend 2 (V101, China)", MACHINE_IS_SKELETON )
// should be earlier verisons too.
-GAME( 2008, kov2nl, 0, pgm2, pgm2, pgm2_state, kov2nl, ROT0, "IGS", "Knights of Valour 2 New Legend (V302, China)", GAME_IS_SKELETON )
-GAME( 2008, kov2nlo, kov2nl, pgm2, pgm2, pgm2_state, kov2nl, ROT0, "IGS", "Knights of Valour 2 New Legend (V301, China)", GAME_IS_SKELETON )
-GAME( 2008, kov2nloa, kov2nl, pgm2, pgm2, pgm2_state, kov2nl, ROT0, "IGS", "Knights of Valour 2 New Legend (V300, Taiwan)", GAME_IS_SKELETON )
+GAME( 2008, kov2nl, 0, pgm2, pgm2, pgm2_state, kov2nl, ROT0, "IGS", "Knights of Valour 2 New Legend (V302, China)", MACHINE_IS_SKELETON )
+GAME( 2008, kov2nlo, kov2nl, pgm2, pgm2, pgm2_state, kov2nl, ROT0, "IGS", "Knights of Valour 2 New Legend (V301, China)", MACHINE_IS_SKELETON )
+GAME( 2008, kov2nloa, kov2nl, pgm2, pgm2, pgm2_state, kov2nl, ROT0, "IGS", "Knights of Valour 2 New Legend (V300, Taiwan)", MACHINE_IS_SKELETON )
// should be earlier verisons too.
-GAME( 2010, ddpdojh, 0, pgm2, pgm2, pgm2_state, ddpdojh, ROT270, "IGS", "Dodonpachi Daioujou Tamashii (V201, China)", GAME_IS_SKELETON )
+GAME( 2010, ddpdojh, 0, pgm2, pgm2, pgm2_state, ddpdojh, ROT270, "IGS", "Dodonpachi Daioujou Tamashii (V201, China)", MACHINE_IS_SKELETON )
// should be earlier verisons too.
-GAME( 2011, kov3, 0, pgm2, pgm2, pgm2_state, kov3, ROT0, "IGS", "Knights of Valour 3 (V102, China)", GAME_IS_SKELETON )
+GAME( 2011, kov3, 0, pgm2, pgm2, pgm2_state, kov3, ROT0, "IGS", "Knights of Valour 3 (V102, China)", MACHINE_IS_SKELETON )
// should be earlier verisons too.
// The King of Fighters '98 - Ultimate Match - Hero
diff --git a/src/mess/drivers/phc25.c b/src/mame/drivers/phc25.c
index b58c20fda4f..861f8589201 100644
--- a/src/mess/drivers/phc25.c
+++ b/src/mame/drivers/phc25.c
@@ -380,5 +380,5 @@ 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)", GAME_NO_SOUND )
-COMP( 1983, phc25j, phc25, 0, ntsc, phc25j, driver_device, 0, "Sanyo", "PHC-25 (Japan)", GAME_NO_SOUND )
+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 )
diff --git a/src/mame/drivers/phoenix.c b/src/mame/drivers/phoenix.c
index bb38cdcf8a4..d6d8d1ca4d1 100644
--- a/src/mame/drivers/phoenix.c
+++ b/src/mame/drivers/phoenix.c
@@ -876,6 +876,29 @@ ROM_START( vautour )
ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) /* palette high bits */
ROM_END
+ROM_START( vautourza )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "1.e1", 0x0000, 0x0800, CRC(cd2807ee) SHA1(79b9769f212d25b9ccb5124e2aa632c964c14a0b) )
+ ROM_LOAD( "2.f1", 0x0800, 0x0800, CRC(3699b11a) SHA1(7122685cbfcd75898eaa68f8c5bf87c11df59a3b) )
+ ROM_LOAD( "3.h1", 0x1000, 0x0800, CRC(cbbb8839) SHA1(b7f449374cac111081559e39646f973e7e99fd64) )
+ ROM_LOAD( "4.j1", 0x1800, 0x0800, CRC(106262eb) SHA1(1e52ca66ea3542d86f2604f5aadc854ffe22fd89) )
+ ROM_LOAD( "5.k1", 0x2000, 0x0800, CRC(1a1ce0d0) SHA1(c2825eef5d461e16ca2172daff94b3751be2f4dc) )
+ ROM_LOAD( "6.h1", 0x2800, 0x0800, CRC(1fcac707) SHA1(ea10a1c94d8cf49391a4d393ccef56ae3b9458b1) )
+ ROM_LOAD( "7.m1", 0x3000, 0x0800, CRC(805ec2e8) SHA1(7e56fc9990eb99512078e2b1e2874fb33b0aa05c) )
+ ROM_LOAD( "8.n1", 0x3800, 0x0800, CRC(1edebb45) SHA1(2fdf061ee600e27a6ed512ea61a8d78307a7fb8a) )
+
+ ROM_REGION( 0x1000, "bgtiles", 0 )
+ ROM_LOAD( "10.h2", 0x0000, 0x0800, CRC(3c7e623f) SHA1(e7ff5fc371664af44785c079e92eeb2d8530187b) )
+ ROM_LOAD( "9.j2", 0x0800, 0x0800, CRC(59916d3b) SHA1(71aec70a8e096ed1f0c2297b3ae7dca1b8ecc38d) )
+
+ ROM_REGION( 0x1000, "fgtiles", 0 )
+ ROM_LOAD( "12.h4", 0x0000, 0x0800, CRC(8eff75c9) SHA1(d38a0e0c02ba680984dd8748a3c45ac55f81f127) )
+ ROM_LOAD( "11.j4", 0x0800, 0x0800, CRC(369e7476) SHA1(599d2fc3b298060d746e95c20a089ad37f685d5b) )
+
+ ROM_REGION( 0x0200, "proms", 0 )
+ ROM_LOAD( "82s135.m9", 0x0100, 0x0100, CRC(c68a49bc) SHA1(1a015b89ac0622e73bcebd76cf5132830fe0bfc1) ) /* expanded in init (upper nibbles are the ic40 data, lower nibbles ic41 data) */
+ROM_END
+
ROM_START( falconz )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "f45.bin", 0x0000, 0x0800, CRC(9158b43b) SHA1(222cbcfb3f95d09bb90148813541c2613d8b7e1c) )
@@ -998,6 +1021,31 @@ ROM_START( avefenixrf )
ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) /* palette high bits */
ROM_END
+
+ROM_START( avefenixl )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "01_ic45.a1", 0x0000, 0x0800, CRC(2c53998c) SHA1(6adaea6c88ebbbbf11d78bbbb35c4ed2f4e7e531) )
+ ROM_LOAD( "02_ic46.a2", 0x0800, 0x0800, CRC(fea2435c) SHA1(f02bf68074dbfcfa259b98d16a8d942ddd71409a) )
+ ROM_LOAD( "03_ic47.a3", 0x1000, 0x0800, CRC(cbbb8839) SHA1(b7f449374cac111081559e39646f973e7e99fd64) )
+ ROM_LOAD( "04_ic48.a4", 0x1800, 0x0800, CRC(90a02a45) SHA1(ec3033100d5ed21948bba9fca8754fb6d725d83d) )
+ ROM_LOAD( "05_ic49.a5", 0x2000, 0x0800, CRC(74b1cf66) SHA1(38f9915b239c30f45567e165e9320558f1197ff9) )
+ ROM_LOAD( "06_ic50.a6", 0x2800, 0x0800, CRC(ac5e9ec1) SHA1(0402e5241d99759d804291998efd43f37ce99917) )
+ ROM_LOAD( "07_ic51.a7", 0x3000, 0x0800, CRC(2eab35b4) SHA1(849bf8273317cc869bdd67e50c68399ee8ece81d) )
+ ROM_LOAD( "08_ic52.a8", 0x3800, 0x0800, CRC(f15c439d) SHA1(6b80276b4ddc9989adb2981f018d5c9c55b06430) )
+
+ ROM_REGION( 0x1000, "bgtiles", 0 )
+ ROM_LOAD( "11_ic23.d3", 0x0000, 0x0800, CRC(3c7e623f) SHA1(e7ff5fc371664af44785c079e92eeb2d8530187b) )
+ ROM_LOAD( "12_ic24.d4", 0x0800, 0x0800, CRC(59916d3b) SHA1(71aec70a8e096ed1f0c2297b3ae7dca1b8ecc38d) )
+
+ ROM_REGION( 0x1000, "fgtiles", 0 )
+ ROM_LOAD( "09_ic39.b3", 0x0000, 0x0800, CRC(bb0525ed) SHA1(86db1c7584fb3846bfd47535e1585eeb7fbbb1fe) )
+ ROM_LOAD( "10_ic40.b4", 0x0800, 0x0800, CRC(4178aa4f) SHA1(5350f8f62cc7c223c38008bc83140b7a19147d81) )
+
+ ROM_REGION( 0x0200, "proms", 0 )
+ ROM_LOAD( "mmi6301.ic40", 0x0000, 0x0100, CRC(79350b25) SHA1(57411be4c1d89677f7919ae295446da90612c8a8) ) /* palette low bits */
+ ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) /* palette high bits */
+ROM_END
+
ROM_START( griffon )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "griffon0.a5", 0x0000, 0x0800, CRC(c0f73929) SHA1(3cecf8341a5674165d2cae9b22ea5db26a9597de) )
@@ -1073,6 +1121,30 @@ ROM_START( phoenixs )
ROM_LOAD( "mmi6301.ic41", 0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) /* palette high bits */
ROM_END
+ROM_START( phoenixass )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "ic45.bin", 0x0000, 0x0800, CRC(5b8c55a8) SHA1(839c1ca9766f730ec3accd48db70f6429a9c3362) )
+ ROM_LOAD( "ic46.bin", 0x0800, 0x0800, CRC(dbc942fa) SHA1(9fe224e6ced407289dfa571468259a021d942b7d) )
+ ROM_LOAD( "ic47.bin", 0x1000, 0x0800, CRC(cbbb8839) SHA1(b7f449374cac111081559e39646f973e7e99fd64) )
+ ROM_LOAD( "ic48.bin", 0x1800, 0x0800, CRC(1e2e2fc7) SHA1(b181411d1f7c11ee27e4410d20bd509b21dd7242) )
+ ROM_LOAD( "ic49.bin", 0x2000, 0x0800, CRC(1a1ce0d0) SHA1(c2825eef5d461e16ca2172daff94b3751be2f4dc) )
+ ROM_LOAD( "ic50.bin", 0x2800, 0x0800, CRC(ac5e9ec1) SHA1(0402e5241d99759d804291998efd43f37ce99917) )
+ ROM_LOAD( "ic51.bin", 0x3000, 0x0800, CRC(2eab35b4) SHA1(849bf8273317cc869bdd67e50c68399ee8ece81d) )
+ ROM_LOAD( "ic52.bin", 0x3800, 0x0800, CRC(15a02d87) SHA1(df69d99747dd8b42187e4a4258edfae8e89663d0) )
+
+ ROM_REGION( 0x1000, "bgtiles", 0 )
+ ROM_LOAD( "ic23.bin", 0x0000, 0x0800, CRC(3c7e623f) SHA1(e7ff5fc371664af44785c079e92eeb2d8530187b) )
+ ROM_LOAD( "ic24.bin", 0x0800, 0x0800, CRC(59916d3b) SHA1(71aec70a8e096ed1f0c2297b3ae7dca1b8ecc38d) )
+
+ ROM_REGION( 0x1000, "fgtiles", 0 )
+ ROM_LOAD( "ic39.bin", 0x0000, 0x0800, CRC(bb0525ed) SHA1(86db1c7584fb3846bfd47535e1585eeb7fbbb1fe) )
+ ROM_LOAD( "ic40.bin", 0x0800, 0x0800, CRC(4178aa4f) SHA1(5350f8f62cc7c223c38008bc83140b7a19147d81) )
+
+ ROM_REGION( 0x0200, "proms", 0 )
+ ROM_LOAD( "prom.41", 0x0000, 0x0100, CRC(7c9f2e00) SHA1(372293748b0d4254d2884bafe4f9f33fbf0c03a6) ) /* palette low bits */ // slightly different to other sets (note IC positions reversed)
+ ROM_LOAD( "prom.40", 0x0100, 0x0100, BAD_DUMP CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) ) /* palette high bits */ // was missing from PCB, marked as bad dump because it might also differ
+ROM_END
+
ROM_START( pleiads )
ROM_REGION( 0x10000, "maincpu", 0 )
@@ -1274,41 +1346,58 @@ DRIVER_INIT_MEMBER(phoenix_state,condor)
m_maincpu->space(AS_PROGRAM).install_read_port(0x5000, 0x5000, "DSW1");
}
+DRIVER_INIT_MEMBER(phoenix_state,vautourza)
+{
+ UINT8 *rgn = memregion("proms")->base();
+
+ // expand the 8-bit PROM into the same layout as the 4-bit PROMs used by most versions of the game
+ for (int i = 0; i < 0x100; i++)
+ {
+ rgn[i] = (rgn[i + 0x100] & 0xf0) >> 4;
+ rgn[i + 0x100] &= 0x0f;
+ }
+}
-
-GAME( 1980, phoenix, 0, phoenix, phoenix, driver_device, 0, ROT90, "Amstar", "Phoenix (Amstar)", GAME_SUPPORTS_SAVE )
-GAME( 1980, phoenixa, phoenix, phoenix, phoenixa, driver_device, 0, ROT90, "Amstar (Centuri license)", "Phoenix (Centuri, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1980, phoenixb, phoenix, phoenix, phoenixa, driver_device, 0, ROT90, "Amstar (Centuri license)", "Phoenix (Centuri, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1980, phoenixt, phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "Amstar (Taito license)", "Phoenix (Taito)", GAME_SUPPORTS_SAVE )
-GAME( 1980, phoenixj, phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "Amstar (Taito Japan license)", "Phoenix (Taito Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1980, phoenix3, phoenix, phoenix, phoenix3, driver_device, 0, ROT90, "bootleg (T.P.N.)", "Phoenix (T.P.N. bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1980, phoenixdal,phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "bootleg (D&L)", "Phoenix (D&L bootleg)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1981, condor, phoenix, condor, condor, phoenix_state, condor, ROT90, "bootleg", "Condor (bootleg of Phoenix)", GAME_SUPPORTS_SAVE )
+/*** Phoenix (& clones) ***/
+GAME( 1980, phoenix, 0, phoenix, phoenix, driver_device, 0, ROT90, "Amstar", "Phoenix (Amstar)", 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_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( 1981, condor, phoenix, condor, condor, phoenix_state, condor, ROT90, "bootleg", "Condor (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)", GAME_SUPPORTS_SAVE )
-GAME( 1980, vautour, phoenix, phoenix, phoenixt, driver_device, 0, ROT90, "bootleg (Jeutel)", "Vautour (bootleg of Phoenix) (8085A CPU)", GAME_SUPPORTS_SAVE )
-GAME( 1980, falconz, phoenix, condor, falconz, driver_device, 0, ROT90, "bootleg", "Falcon (bootleg of Phoenix) (Z80 CPU)", GAME_SUPPORTS_SAVE )
-GAME( 1980, vautourz, phoenix, condor, condor, phoenix_state, condor, ROT90, "bootleg", "Vautour (bootleg of Phoenix) (Z80 CPU)", GAME_SUPPORTS_SAVE )
+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", "Falcon (bootleg of Phoenix) (Z80 CPU)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, vautourz, phoenix, condor, condor, phoenix_state, condor, ROT90, "bootleg", "Vautour (bootleg of Phoenix) (Z80 CPU)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, vautourza,phoenix, condor , phoenixt,phoenix_state, vautourza,ROT90, "bootleg (Jeutel)", "Vautour (bootleg of Phoenix) (Z80 CPU, single PROM)", MACHINE_SUPPORTS_SAVE )
+
// fenix is an italian bootleg based on vautourz
-GAME( 1980, fenix, phoenix, condor, condor, phoenix_state, condor, ROT90, "bootleg", "Fenix (bootleg of Phoenix)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1980, griffon, phoenix, condor, condor, phoenix_state, condor, ROT90, "bootleg (Videotron)", "Griffon (bootleg of Phoenix)", GAME_SUPPORTS_SAVE )
+GAME( 1980, fenix, phoenix, condor, condor, phoenix_state, condor, ROT90, "bootleg", "Fenix (bootleg of Phoenix)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1980, griffon, phoenix, condor, condor, phoenix_state, condor, ROT90, "bootleg (Videotron)", "Griffon (bootleg of Phoenix)", 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)", GAME_SUPPORTS_SAVE )
+GAME( 1981, nextfase, phoenix, phoenix, nextfase, driver_device, 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 (Spanish bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1980, avefenix, phoenix, phoenix, phoenix, driver_device, 0, ROT90, "bootleg (Video Game)", "Ave Fenix (Electrogame, Spanish bootleg of Phoenix)", GAME_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)", GAME_SUPPORTS_SAVE )
-
-GAME( 1981, pleiads, 0, pleiads, pleiads, driver_device, 0, ROT90, "Tehkan", "Pleiads (Tehkan)", GAME_IMPERFECT_COLORS )
-GAME( 1981, pleiadsb2,pleiads, pleiads, pleiads, driver_device, 0, ROT90, "bootleg (ESG)", "Pleiads (bootleg set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1981, pleiadbl, pleiads, pleiads, pleiadbl, driver_device, 0, ROT90, "bootleg", "Pleiads (bootleg set 1)", GAME_IMPERFECT_COLORS )
-GAME( 1981, pleiadce, pleiads, pleiads, pleiadce, driver_device, 0, ROT90, "Tehkan (Centuri license)", "Pleiads (Centuri)", GAME_IMPERFECT_COLORS )
-GAME( 1981, pleiadsi, pleiads, pleiads, pleiadce, driver_device, 0, ROT90, "bootleg? (Irecsa)", "Pleiads (Irecsa)", GAME_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)", GAME_SUPPORTS_SAVE ) // colours match PCB (but are ugly)
-GAME( 1981, capitol, pleiads, phoenix, capitol, driver_device, 0, ROT90, "bootleg? (Universal Video Spiel)", "Capitol", GAME_IMPERFECT_COLORS )
-
-GAME( 1982, survival, 0, survival, survival, driver_device, 0, ROT90, "Rock-Ola", "Survival", GAME_IMPERFECT_COLORS )
+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 )
+
+/*** 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, 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 )
+
+/*** Others ***/
+GAME( 1982, survival, 0, survival, survival, driver_device, 0, ROT90, "Rock-Ola", "Survival", MACHINE_IMPERFECT_COLORS )
diff --git a/src/mame/drivers/photon2.c b/src/mame/drivers/photon2.c
index 09a8a33b76e..6f327d4833d 100644
--- a/src/mame/drivers/photon2.c
+++ b/src/mame/drivers/photon2.c
@@ -21,27 +21,32 @@ public:
photon2_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_maincpu(*this,"maincpu"),
- m_spectrum_video_ram(*this, "spectrum_vram"),
- m_speaker(*this, "speaker"){ }
+ m_speaker(*this, "speaker"),
+ m_spectrum_video_ram(*this, "spectrum_vram") { }
required_device<cpu_device> m_maincpu;
+ required_device<speaker_sound_device> m_speaker;
+
required_shared_ptr<UINT8> m_spectrum_video_ram;
+
int m_spectrum_frame_number;
int m_spectrum_flash_invert;
UINT8 m_spectrum_port_fe;
UINT8 m_nmi_enable;
- DECLARE_WRITE8_MEMBER(photon2_membank_w);
- DECLARE_READ8_MEMBER(photon2_fe_r);
- DECLARE_WRITE8_MEMBER(photon2_fe_w);
- DECLARE_WRITE8_MEMBER(photon2_misc_w);
- virtual void machine_reset();
+ DECLARE_WRITE8_MEMBER(membank_w);
+ DECLARE_READ8_MEMBER(fe_r);
+ DECLARE_WRITE8_MEMBER(fe_w);
+ DECLARE_WRITE8_MEMBER(misc_w);
+
+ virtual void machine_start();
virtual void video_start();
DECLARE_PALETTE_INIT(photon2);
+
UINT32 screen_update_spectrum(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void screen_eof_spectrum(screen_device &screen, bool state);
+
TIMER_DEVICE_CALLBACK_MEMBER(spec_interrupt_hack);
- required_device<speaker_sound_device> m_speaker;
};
@@ -100,6 +105,10 @@ void photon2_state::video_start()
{
m_spectrum_frame_number = 0;
m_spectrum_flash_invert = 0;
+
+ save_item(NAME(m_spectrum_frame_number));
+ save_item(NAME(m_spectrum_flash_invert));
+ save_item(NAME(m_spectrum_port_fe));
}
#if 0
@@ -187,7 +196,7 @@ UINT32 photon2_state::screen_update_spectrum(screen_device &screen, bitmap_ind16
*
*************************************/
-WRITE8_MEMBER(photon2_state::photon2_membank_w)
+WRITE8_MEMBER(photon2_state::membank_w)
{
int bank = 0;
if (data == 0)
@@ -207,21 +216,21 @@ WRITE8_MEMBER(photon2_state::photon2_membank_w)
logerror( "Unknown banking write: %02X\n", data);
}
- membank("bank1")->set_base(memregion("maincpu")->base() + 0x4000*bank );
+ membank("mainbank")->set_entry(bank);
}
-READ8_MEMBER(photon2_state::photon2_fe_r)
+READ8_MEMBER(photon2_state::fe_r)
{
return 0xff;
}
-WRITE8_MEMBER(photon2_state::photon2_fe_w)
+WRITE8_MEMBER(photon2_state::fe_w)
{
m_spectrum_port_fe = data;
m_speaker->level_w(BIT(data,4));
}
-WRITE8_MEMBER(photon2_state::photon2_misc_w)
+WRITE8_MEMBER(photon2_state::misc_w)
{
m_nmi_enable = !BIT(data,5);
}
@@ -233,7 +242,7 @@ WRITE8_MEMBER(photon2_state::photon2_misc_w)
*************************************/
static ADDRESS_MAP_START (spectrum_mem, AS_PROGRAM, 8, photon2_state )
- AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1")
+ AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("mainbank")
AM_RANGE(0x4000, 0x5aff) AM_RAM AM_SHARE("spectrum_vram")
AM_RANGE(0x5b00, 0xffff) AM_RAM
ADDRESS_MAP_END
@@ -241,11 +250,11 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START (spectrum_io, AS_IO, 8, photon2_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x1f, 0x1f) AM_READ_PORT("JOY")
- AM_RANGE(0x5b, 0x5b) AM_READ_PORT("COIN") AM_WRITE(photon2_misc_w)
- AM_RANGE(0x7a, 0x7a) AM_WRITE(photon2_membank_w)
+ AM_RANGE(0x5b, 0x5b) AM_READ_PORT("COIN") AM_WRITE(misc_w)
+ AM_RANGE(0x7a, 0x7a) AM_WRITE(membank_w)
AM_RANGE(0x7b, 0x7b) AM_WRITENOP // unknown write
- AM_RANGE(0x7e, 0x7e) AM_WRITE(photon2_membank_w)
- AM_RANGE(0xfe, 0xfe) AM_READWRITE(photon2_fe_r, photon2_fe_w)
+ AM_RANGE(0x7e, 0x7e) AM_WRITE(membank_w)
+ AM_RANGE(0xfe, 0xfe) AM_READWRITE(fe_r, fe_w)
ADDRESS_MAP_END
/*************************************
@@ -316,9 +325,12 @@ TIMER_DEVICE_CALLBACK_MEMBER(photon2_state::spec_interrupt_hack)
}
}
-void photon2_state::machine_reset()
+void photon2_state::machine_start()
{
- membank("bank1")->set_base(memregion("maincpu")->base());
+ membank("mainbank")->configure_entries(0, 4, memregion("maincpu")->base(), 0x4000);
+ membank("mainbank")->set_entry(0);
+
+ save_item(NAME(m_nmi_enable));
}
static MACHINE_CONFIG_START( photon2, photon2_state )
@@ -383,6 +395,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')", 0 ) // originals (c)1983 ACG / Ultimate
-GAME( 19??, black, 0, photon2, black, driver_device, 0, ROT0, "bootleg", "Czernyj Korabl (Arcade bootleg of ZX Spectrum 'Blackbeard')", 0 ) // 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')", 0 ) // original (c)1987 BEAM software
+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
diff --git a/src/mame/drivers/photoply.c b/src/mame/drivers/photoply.c
index 3f966706c44..d1a0a758a2d 100644
--- a/src/mame/drivers/photoply.c
+++ b/src/mame/drivers/photoply.c
@@ -153,4 +153,4 @@ DRIVER_INIT_MEMBER(photoply_state,photoply)
{
}
-GAME( 199?, photoply, 0, photoply, photoply, photoply_state, photoply, ROT0, "Funworld", "Photo Play 2000 (v2.01)", GAME_NOT_WORKING|GAME_NO_SOUND )
+GAME( 199?, photoply, 0, photoply, photoply, photoply_state, photoply, ROT0, "Funworld", "Photo Play 2000 (v2.01)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND )
diff --git a/src/mess/drivers/phunsy.c b/src/mame/drivers/phunsy.c
index ce2f031bf32..20ba34c3f49 100644
--- a/src/mess/drivers/phunsy.c
+++ b/src/mame/drivers/phunsy.c
@@ -395,4 +395,4 @@ ROM_END
/* Driver */
/* 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", GAME_NOT_WORKING )
+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.c b/src/mame/drivers/piggypas.c
new file mode 100644
index 00000000000..d9f8c9bdd63
--- /dev/null
+++ b/src/mame/drivers/piggypas.c
@@ -0,0 +1,244 @@
+// license:BSD-3-Clause
+// copyright-holders:David Haywood
+/*
+
+Piggy Pass
+
+hw platform unknown
+game details unknown
+
+*/
+
+#include "emu.h"
+#include "cpu/mcs51/mcs51.h"
+#include "machine/ticket.h"
+#include "sound/okim6295.h"
+#include "video/hd44780.h"
+
+#include "piggypas.lh"
+
+class piggypas_state : public driver_device
+{
+public:
+ piggypas_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
+ m_ticket(*this, "ticket")
+ { }
+
+ virtual void machine_start();
+ virtual void machine_reset();
+ DECLARE_WRITE8_MEMBER(ctrl_w);
+ DECLARE_WRITE8_MEMBER(mcs51_tx_callback);
+ DECLARE_INPUT_CHANGED_MEMBER(ball_sensor);
+ DECLARE_CUSTOM_INPUT_MEMBER(ticket_r);
+
+ required_device<mcs51_cpu_device> m_maincpu;
+ required_device<ticket_dispenser_device> m_ticket;
+ UINT8 m_ctrl;
+ UINT8 m_digit_idx;
+};
+
+
+
+WRITE8_MEMBER(piggypas_state::ctrl_w)
+{
+ if ((m_ctrl ^ data) & m_ctrl & 0x04)
+ m_digit_idx = 0;
+
+ m_ticket->write(space, 0, (data & 0x40) ? 0x80 : 0);
+
+ m_ctrl = data;
+}
+
+WRITE8_MEMBER(piggypas_state::mcs51_tx_callback)
+{
+ output_set_digit_value(m_digit_idx++, BITSWAP8(data,7,6,4,3,2,1,0,5) & 0x7f);
+}
+
+static ADDRESS_MAP_START( piggypas_map, AS_PROGRAM, 8, piggypas_state )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( piggypas_io, AS_IO, 8, piggypas_state )
+ AM_RANGE(0x0000, 0x07ff) AM_RAM
+
+ AM_RANGE(0x1000, 0x1000) AM_DEVREADWRITE("oki", okim6295_device, read, write)
+
+ AM_RANGE(0x0800, 0x0800) AM_READ_PORT("IN1")
+ AM_RANGE(0x0801, 0x0801) AM_WRITE(ctrl_w)
+ AM_RANGE(0x0802, 0x0802) AM_READ_PORT("IN0")
+
+ AM_RANGE(0x1800, 0x1801) AM_DEVWRITE("hd44780", hd44780_device, write)
+ AM_RANGE(0x1802, 0x1803) AM_DEVREAD("hd44780", hd44780_device, read)
+
+ AM_RANGE(MCS51_PORT_P3, MCS51_PORT_P3) AM_READ_PORT("IN2")
+ADDRESS_MAP_END
+
+
+INPUT_CHANGED_MEMBER(piggypas_state::ball_sensor)
+{
+ m_maincpu->set_input_line(1, newval ? CLEAR_LINE : ASSERT_LINE);
+}
+
+CUSTOM_INPUT_MEMBER(piggypas_state::ticket_r)
+{
+ return m_ticket->line_r();
+}
+
+static INPUT_PORTS_START( piggypas )
+ PORT_START("IN0")
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_COIN3)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_START1)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_COIN4)
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_SPECIAL) PORT_CUSTOM_MEMBER(DEVICE_SELF, piggypas_state, ticket_r, NULL)
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_COIN2)
+ PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Gate sensor") PORT_CODE(KEYCODE_G)
+ PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_UNUSED)
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_COIN1)
+
+ PORT_START("IN1")
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Decrease") PORT_CODE(KEYCODE_DOWN)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Exit") PORT_CODE(KEYCODE_E)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Last") PORT_CODE(KEYCODE_LEFT)
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Run") PORT_CODE(KEYCODE_R)
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Increase") PORT_CODE(KEYCODE_UP)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Enter") PORT_CODE(KEYCODE_ENTER)
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Next") PORT_CODE(KEYCODE_RIGHT)
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_SERVICE) PORT_NAME("Program")
+
+ PORT_START("IN2")
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_CHANGED_MEMBER(DEVICE_SELF, piggypas_state, ball_sensor, 0) // ball sensor
+INPUT_PORTS_END
+
+
+
+void piggypas_state::machine_start()
+{
+ m_maincpu->i8051_set_serial_tx_callback(WRITE8_DELEGATE(piggypas_state, mcs51_tx_callback));
+}
+
+void piggypas_state::machine_reset()
+{
+ m_digit_idx = 0;
+}
+
+static HD44780_PIXEL_UPDATE(piggypas_pixel_update)
+{
+ if (pos < 8)
+ bitmap.pix16(y, (line * 8 + pos) * 6 + x) = state;
+}
+
+static MACHINE_CONFIG_START( piggypas, piggypas_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", I8031, 8000000) // unknown variant
+ MCFG_CPU_PROGRAM_MAP(piggypas_map)
+ MCFG_CPU_IO_MAP(piggypas_io)
+// MCFG_CPU_VBLANK_INT_DRIVER("screen", piggypas_state, irq0_line_hold)
+
+ MCFG_SCREEN_ADD("screen", LCD)
+ MCFG_SCREEN_REFRESH_RATE(50)
+ MCFG_SCREEN_UPDATE_DEVICE("hd44780", hd44780_device, screen_update)
+ MCFG_SCREEN_SIZE(16*6, 8)
+ MCFG_SCREEN_VISIBLE_AREA(0, 16*6-1, 0, 8-1)
+ MCFG_SCREEN_PALETTE("palette")
+
+ MCFG_PALETTE_ADD("palette", 2)
+ MCFG_DEFAULT_LAYOUT(layout_piggypas)
+
+ MCFG_HD44780_ADD("hd44780")
+ MCFG_HD44780_LCD_SIZE(1, 16)
+ MCFG_HD44780_PIXEL_UPDATE_CB(piggypas_pixel_update)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+
+ MCFG_OKIM6295_ADD("oki", 1000000, OKIM6295_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)
+MACHINE_CONFIG_END
+
+
+
+ROM_START( piggypas )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "pigypass.u6", 0x00000, 0x10000, CRC(c8dc4e26) SHA1(f9643945f84fe2679742922abf5a92b77bf59e4c) )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "pigypass.u14", 0x00000, 0x40000, CRC(855504c1) SHA1(dfe91943057fa66798c8395348cf703cb11468d2) )
+ROM_END
+
+
+ROM_START( hoopshot )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "hoopshot.u6", 0x00000, 0x08000, CRC(fa8ae8aa) SHA1(2266a775fba7c8f8e3e24441aca6c4b89a6d1ec7) )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "hoopshot.u14", 0x00000, 0x40000, CRC(748462b5) SHA1(ccb8f1dbb6471b134c1e97699383c3ef139c42c3) )
+ROM_END
+
+
+
+ROM_START( rndrndqs )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "round.u6", 0x00000, 0x08000, CRC(3eb64b10) SHA1(66051cdd6be33f4f7249be1c8d56e5e43c838163) )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "round.u14", 0x00000, 0x40000, CRC(36d1c07a) SHA1(3c978d4d03d8dbf79e1afe7dc46209d9ac4d3cc3) )
+ROM_END
+
+ROM_START( fidlstix )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "fiddle.u6", 0x00000, 0x08000, CRC(48125bf1) SHA1(5772fe3c0987fc6b2508da5efe3c4c3c179b76a1) )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "fiddle.u14", 0x00000, 0x40000, CRC(baf4e1cd) SHA1(ae153f832cbd188e9f3f357a1a1f68cc8264d346) )
+ROM_END
+
+// bad dump of program rom
+ROM_START( jackbean )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "beanstlk.u6", 0x00000, 0x10000, BAD_DUMP CRC(127c4d6c) SHA1(c864293f42e81a1b8e5dcb12abc1c0019853792e) )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "beanstlk.u14", 0x00000, 0x40000, CRC(e33ef0a3) SHA1(337ce3d0c901b0b3241d76601eaad6e3e2724e1a) )
+ROM_END
+
+// bad dump of program rom
+ROM_START( dumpump )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "dump-ump.u6", 0x00000, 0x08000, BAD_DUMP CRC(410fc27e) SHA1(d9505c11f4844b9b58c12b3ff6b860357a4be75e))
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "dump-ump.u14", 0x00000, 0x20000, CRC(08bc7bb5) SHA1(2355783ec614d8f4e1dca3cb415a97a28411157b))
+ROM_END
+
+// bad dump of program rom
+ROM_START( 3lilpigs )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "3-pigs.u6", 0x00000, 0x10000, BAD_DUMP CRC(1db9d754) SHA1(9b1db9c9bb155ebb5509970476b20b9dda6d3021) )
+
+ ROM_REGION( 0x40000, "oki", 0 )
+ ROM_LOAD( "3-pigs.u14", 0x00000, 0x40000, CRC(62eb76e2) SHA1(c4cad241dedf2c290f9bf80038415fe39b3ce17d) )
+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 )
+// 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 )
+// 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 )
+// 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 )
+// 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 )
+// bad dump, so version unknown
+GAME( 199?, dumpump, 0, piggypas, piggypas, driver_device, 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 )
diff --git a/src/mess/drivers/pimps.c b/src/mame/drivers/pimps.c
index 6b1e95ff247..633aa870ac0 100644
--- a/src/mess/drivers/pimps.c
+++ b/src/mame/drivers/pimps.c
@@ -111,4 +111,4 @@ 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.", GAME_NO_SOUND_HW)
+COMP( 197?, pimps, 0, 0, pimps, pimps, driver_device, 0, "Henry Colford", "P.I.M.P.S.", MACHINE_NO_SOUND_HW)
diff --git a/src/mame/drivers/pinball2k.c b/src/mame/drivers/pinball2k.c
index be631967fd5..37666de9a8c 100644
--- a/src/mame/drivers/pinball2k.c
+++ b/src/mame/drivers/pinball2k.c
@@ -199,7 +199,7 @@ void pinball2k_state::draw_framebuffer(bitmap_rgb32 &bitmap, const rectangle &cl
m_frame_height = height;
visarea.set(0, width - 1, 0, height - 1);
- m_screen->configure(width, height * 262 / 240, visarea, m_screen->frame_period().attoseconds);
+ m_screen->configure(width, height * 262 / 240, visarea, m_screen->frame_period().attoseconds());
}
if (m_disp_ctrl_reg[DC_OUTPUT_CFG] & 0x1) // 8-bit mode
@@ -696,6 +696,6 @@ ROM_END
/*****************************************************************************/
-GAME( 1999, swe1pb, 0 , mediagx, mediagx, pinball2k_state, pinball2k, ROT0, "Midway", "Pinball 2000: Star Wars Episode 1", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL )
-GAME( 1999, rfmpb, 0 , mediagx, mediagx, pinball2k_state, pinball2k, ROT0, "Midway", "Pinball 2000: Revenge From Mars (rev. 1)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL )
-GAME( 1999, rfmpbr2, rfmpb , mediagx, mediagx, pinball2k_state, pinball2k, ROT0, "Midway", "Pinball 2000: Revenge From Mars (rev. 2)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL )
+GAME( 1999, swe1pb, 0 , mediagx, mediagx, pinball2k_state, pinball2k, ROT0, "Midway", "Pinball 2000: Star Wars Episode 1", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL )
+GAME( 1999, rfmpb, 0 , mediagx, mediagx, pinball2k_state, pinball2k, ROT0, "Midway", "Pinball 2000: Revenge From Mars (rev. 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL )
+GAME( 1999, rfmpbr2, rfmpb , mediagx, mediagx, pinball2k_state, pinball2k, ROT0, "Midway", "Pinball 2000: Revenge From Mars (rev. 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL )
diff --git a/src/mame/drivers/pingpong.c b/src/mame/drivers/pingpong.c
index afc0c923417..a8446aa2f4d 100644
--- a/src/mame/drivers/pingpong.c
+++ b/src/mame/drivers/pingpong.c
@@ -609,4 +609,4 @@ 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)", GAME_IMPERFECT_GRAPHICS )
+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.c b/src/mame/drivers/pinkiri8.c
index cb4adde9baa..365f47b74c4 100644
--- a/src/mame/drivers/pinkiri8.c
+++ b/src/mame/drivers/pinkiri8.c
@@ -181,11 +181,11 @@ void pinkiri8_state::draw_background(bitmap_ind16 &bitmap, const rectangle &clip
void pinkiri8_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- int game_type_hack = 0;
+ int MACHINE_TYPE_hack = 0;
int col_bank;
gfx_element *gfx = m_gfxdecode->gfx(0);
- if (!strcmp(machine().system().name,"janshi")) game_type_hack = 1;
+ if (!strcmp(machine().system().name,"janshi")) MACHINE_TYPE_hack = 1;
//popmessage("%02x",m_janshi_crtc_regs[0x0a]);
col_bank = (m_janshi_crtc_regs[0x0a] & 0x40) >> 6;
@@ -248,7 +248,7 @@ void pinkiri8_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec
}
// hacks!
- if (game_type_hack==1) // janshi
+ if (MACHINE_TYPE_hack==1) // janshi
{
if (spr_offs<0x400)
{
@@ -1214,6 +1214,6 @@ 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", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
-GAME( 1994, ronjan, 0, pinkiri8, ronjan, pinkiri8_state, ronjan, ROT0, "Wing Co., Ltd", "Ron Jan (Super)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING ) // 'SUPER' flashes in the middle of the screen
-GAME( 1994, pinkiri8, 0, pinkiri8, pinkiri8, driver_device, 0, ROT0, "Alta", "Pinkiri 8", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
+GAME( 1992, janshi, 0, pinkiri8, janshi, driver_device, 0, ROT0, "Eagle", "Janshi", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING )
+GAME( 1994, ronjan, 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 )
diff --git a/src/mess/drivers/pipbug.c b/src/mame/drivers/pipbug.c
index cb579256947..c6050fb81cf 100644
--- a/src/mess/drivers/pipbug.c
+++ b/src/mame/drivers/pipbug.c
@@ -179,4 +179,4 @@ 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", GAME_NO_SOUND_HW )
+COMP( 1979, pipbug, 0, 0, pipbug, pipbug, driver_device, 0, "Signetics", "PIPBUG", MACHINE_NO_SOUND_HW )
diff --git a/src/mame/drivers/pipedrm.c b/src/mame/drivers/pipedrm.c
index 7b5a8890b0b..c349cadd7de 100644
--- a/src/mame/drivers/pipedrm.c
+++ b/src/mame/drivers/pipedrm.c
@@ -938,9 +938,9 @@ DRIVER_INIT_MEMBER(pipedrm_state,hatris)
*
*************************************/
-GAME( 1990, pipedrm, 0, pipedrm, pipedrm, pipedrm_state, pipedrm, ROT0, "Video System Co.", "Pipe Dream (World)", GAME_SUPPORTS_SAVE )
-GAME( 1990, pipedrmu, pipedrm, pipedrm, pipedrm, pipedrm_state, pipedrm, ROT0, "Video System Co.", "Pipe Dream (US)", GAME_SUPPORTS_SAVE )
-GAME( 1990, pipedrmj, pipedrm, pipedrm, pipedrm, pipedrm_state, pipedrm, ROT0, "Video System Co.", "Pipe Dream (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1990, pipedrmt, pipedrm, pipedrm, pipedrm, pipedrm_state, pipedrm, ROT0, "Video System Co.", "Pipe Dream (Taiwan)", GAME_SUPPORTS_SAVE )
-GAME( 1990, hatris, 0, hatris, hatris, pipedrm_state, hatris, ROT0, "Video System Co.", "Hatris (US)", GAME_SUPPORTS_SAVE )
-GAME( 1990, hatrisj, hatris, hatris, hatris, pipedrm_state, hatris, ROT0, "Video System Co.", "Hatris (Japan)", GAME_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 )
diff --git a/src/mame/drivers/pipeline.c b/src/mame/drivers/pipeline.c
index dae7a111319..c46934f1b4b 100644
--- a/src/mame/drivers/pipeline.c
+++ b/src/mame/drivers/pipeline.c
@@ -445,4 +445,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", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1990, pipeline, 0, pipeline, pipeline, driver_device, 0, ROT0, "Daehyun Electronics", "Pipeline", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/pirates.c b/src/mame/drivers/pirates.c
index 95b96c7dcac..4399e47b6a6 100644
--- a/src/mame/drivers/pirates.c
+++ b/src/mame/drivers/pirates.c
@@ -446,5 +446,5 @@ DRIVER_INIT_MEMBER(pirates_state,genix)
/* GAME */
-GAME( 1994, pirates, 0, pirates, pirates, pirates_state, pirates, 0, "NIX", "Pirates", GAME_SUPPORTS_SAVE )
-GAME( 1994, genix, 0, pirates, pirates, pirates_state, genix, 0, "NIX", "Genix Family", GAME_SUPPORTS_SAVE )
+GAME( 1994, pirates, 0, pirates, pirates, pirates_state, pirates, 0, "NIX", "Pirates", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, genix, 0, pirates, pirates, pirates_state, genix, 0, "NIX", "Genix Family", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/pitagjr.c b/src/mame/drivers/pitagjr.c
index a68c684452e..79f3b5b1957 100644
--- a/src/mess/drivers/pitagjr.c
+++ b/src/mame/drivers/pitagjr.c
@@ -229,4 +229,4 @@ 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", GAME_IS_SKELETON)
+COMP( 199?, pitagjr, 0, 0, pitajr, pitajr, driver_device, 0, "VTech", "Pitagorin Junior", MACHINE_IS_SKELETON)
diff --git a/src/mame/drivers/pitnrun.c b/src/mame/drivers/pitnrun.c
index 32eb823e68b..1b33f532e49 100644
--- a/src/mame/drivers/pitnrun.c
+++ b/src/mame/drivers/pitnrun.c
@@ -333,5 +333,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)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1984, pitnruna, pitnrun, pitnrun, pitnrun, driver_device, 0, ROT90, "Taito Corporation", "Pit & Run - F-1 Race (set 2)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/pk8000.c b/src/mame/drivers/pk8000.c
index c567a0756af..ca833cf9f8e 100644
--- a/src/mess/drivers/pk8000.c
+++ b/src/mame/drivers/pk8000.c
@@ -410,4 +410,4 @@ ROM_END
/* 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, "<unknown>", "PK8002 Elf", GAME_NOT_WORKING)
+COMP( 1987, pk8002, vesta, 0, pk8000, pk8000, driver_device, 0, "<unknown>", "PK8002 Elf", MACHINE_NOT_WORKING)
diff --git a/src/mess/drivers/pk8020.c b/src/mame/drivers/pk8020.c
index 1b8e83ef527..1b8e83ef527 100644
--- a/src/mess/drivers/pk8020.c
+++ b/src/mame/drivers/pk8020.c
diff --git a/src/mame/drivers/pkscram.c b/src/mame/drivers/pkscram.c
index 1c7a1d17ba0..7000cd25b5c 100644
--- a/src/mame/drivers/pkscram.c
+++ b/src/mame/drivers/pkscram.c
@@ -342,4 +342,4 @@ ROM_START( pkscram )
ROM_END
-GAME( 1993, pkscram, 0, pkscramble, pkscramble, driver_device, 0, ROT0, "Cosmo Electronics Corporation", "PK Scramble", GAME_SUPPORTS_SAVE)
+GAME( 1993, pkscram, 0, pkscramble, pkscramble, driver_device, 0, ROT0, "Cosmo Electronics Corporation", "PK Scramble", MACHINE_SUPPORTS_SAVE)
diff --git a/src/mame/drivers/pktgaldx.c b/src/mame/drivers/pktgaldx.c
index 7dd4af0c82b..f1f55c249af 100644
--- a/src/mame/drivers/pktgaldx.c
+++ b/src/mame/drivers/pktgaldx.c
@@ -482,6 +482,6 @@ DRIVER_INIT_MEMBER(pktgaldx_state,pktgaldx)
deco102_decrypt_cpu((UINT16 *)memregion("maincpu")->base(), m_decrypted_opcodes, 0x80000, 0x42ba, 0x00, 0x00);
}
-GAME( 1992, pktgaldx, 0, pktgaldx, pktgaldx, pktgaldx_state, pktgaldx, ROT0, "Data East Corporation", "Pocket Gal Deluxe (Euro v3.00)", GAME_SUPPORTS_SAVE )
-GAME( 1993, pktgaldxj, pktgaldx, pktgaldx, pktgaldx, pktgaldx_state, pktgaldx, ROT0, "Data East Corporation (Nihon System license)", "Pocket Gal Deluxe (Japan v3.00)", GAME_SUPPORTS_SAVE )
-GAME( 1992, pktgaldxb, pktgaldx, pktgaldb, pktgaldx, driver_device, 0, ROT0, "bootleg", "Pocket Gal Deluxe (Euro v3.00, bootleg)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/plan80.c b/src/mame/drivers/plan80.c
index 240e924f138..b0a75765ce8 100644
--- a/src/mess/drivers/plan80.c
+++ b/src/mame/drivers/plan80.c
@@ -262,4 +262,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+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.c b/src/mame/drivers/play_1.c
index d18eef05a25..e41a9069a33 100644
--- a/src/mame/drivers/play_1.c
+++ b/src/mame/drivers/play_1.c
@@ -99,8 +99,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, play_1_state, play_1, ROT0, "Playmatic", "Big Town", GAME_IS_SKELETON_MECHANICAL)
-GAME(1978, chance, 0, play_1, play_1, play_1_state, play_1, ROT0, "Playmatic", "Chance", GAME_IS_SKELETON_MECHANICAL)
-GAME(1978, lastlap, 0, play_1, play_1, play_1_state, play_1, ROT0, "Playmatic", "Last Lap", GAME_IS_SKELETON_MECHANICAL)
-GAME(1978, spcgambl, 0, play_1, play_1, play_1_state, play_1, ROT0, "Playmatic", "Space Gambler", GAME_IS_SKELETON_MECHANICAL)
-GAME(1979, party, 0, play_1, play_1, play_1_state, play_1, ROT0, "Playmatic", "Party", GAME_IS_SKELETON_MECHANICAL)
+GAME(1978, bigtown, 0, play_1, play_1, play_1_state, play_1, ROT0, "Playmatic", "Big Town", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1978, chance, 0, play_1, play_1, play_1_state, play_1, ROT0, "Playmatic", "Chance", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1978, lastlap, 0, play_1, play_1, play_1_state, play_1, ROT0, "Playmatic", "Last Lap", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1978, spcgambl, 0, play_1, play_1, play_1_state, play_1, ROT0, "Playmatic", "Space Gambler", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1979, party, 0, play_1, play_1, play_1_state, play_1, ROT0, "Playmatic", "Party", MACHINE_IS_SKELETON_MECHANICAL)
diff --git a/src/mame/drivers/play_2.c b/src/mame/drivers/play_2.c
index 2a54e12a962..1c9c56b13fc 100644
--- a/src/mame/drivers/play_2.c
+++ b/src/mame/drivers/play_2.c
@@ -242,11 +242,11 @@ ROM_END
// ??/87 Skill Flight
-GAME(1979, antar, 0, play_2, play_2, play_2_state, play_2, ROT0, "Playmatic", "Antar (set 1)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1979, antar2, antar, play_2, play_2, play_2_state, play_2, ROT0, "Playmatic", "Antar (set 2)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1980, evlfight, 0, play_2, play_2, play_2_state, play_2, ROT0, "Playmatic", "Evil Fight", GAME_IS_SKELETON_MECHANICAL)
-GAME(1980, attack, 0, play_2, play_2, play_2_state, play_2, ROT0, "Playmatic", "Attack", GAME_IS_SKELETON_MECHANICAL)
-GAME(1980, blkfever, 0, play_2, play_2, play_2_state, play_2, ROT0, "Playmatic", "Black Fever", GAME_IS_SKELETON_MECHANICAL)
-GAME(1982, cerberup, 0, play_2, play_2, play_2_state, play_2, ROT0, "Playmatic", "Cerberus (Pinball)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1985, madrace, 0, play_2, play_2, play_2_state, play_2, ROT0, "Playmatic", "Mad Race", GAME_IS_SKELETON_MECHANICAL)
-GAME(1980, zira, 0, play_2, play_2, play_2_state, play_2, ROT0, "Playmatic", "Zira", GAME_IS_SKELETON_MECHANICAL)
+GAME(1979, antar, 0, play_2, play_2, play_2_state, play_2, ROT0, "Playmatic", "Antar (set 1)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1979, antar2, antar, play_2, play_2, play_2_state, play_2, ROT0, "Playmatic", "Antar (set 2)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1980, evlfight, 0, play_2, play_2, play_2_state, play_2, ROT0, "Playmatic", "Evil Fight", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1980, attack, 0, play_2, play_2, play_2_state, play_2, ROT0, "Playmatic", "Attack", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1980, blkfever, 0, play_2, play_2, play_2_state, play_2, ROT0, "Playmatic", "Black Fever", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1982, cerberup, 0, play_2, play_2, play_2_state, play_2, ROT0, "Playmatic", "Cerberus (Pinball)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1985, madrace, 0, play_2, play_2, play_2_state, play_2, ROT0, "Playmatic", "Mad Race", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1980, zira, 0, play_2, play_2, play_2_state, play_2, ROT0, "Playmatic", "Zira", MACHINE_IS_SKELETON_MECHANICAL)
diff --git a/src/mame/drivers/play_3.c b/src/mame/drivers/play_3.c
index 49a355e3819..d34aacffb2a 100644
--- a/src/mame/drivers/play_3.c
+++ b/src/mame/drivers/play_3.c
@@ -95,5 +95,5 @@ ROM_START(megaatona)
ROM_RELOAD(0xe000, 0x1000)
ROM_END
-GAME(1983, megaaton, 0, play_3, play_3, play_3_state, play_3, ROT0, "Playmatic", "Meg-Aaton", GAME_IS_SKELETON_MECHANICAL)
-GAME(1983, megaatona, megaaton, play_3, play_3, play_3_state, play_3, ROT0, "Playmatic", "Meg-Aaton (alternate set)", GAME_IS_SKELETON_MECHANICAL)
+GAME(1983, megaaton, 0, play_3, play_3, play_3_state, play_3, ROT0, "Playmatic", "Meg-Aaton", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1983, megaatona, megaaton, play_3, play_3, play_3_state, play_3, ROT0, "Playmatic", "Meg-Aaton (alternate set)", MACHINE_IS_SKELETON_MECHANICAL)
diff --git a/src/mame/drivers/play_5.c b/src/mame/drivers/play_5.c
index 31ebc820228..a4d84400ebc 100644
--- a/src/mame/drivers/play_5.c
+++ b/src/mame/drivers/play_5.c
@@ -282,14 +282,14 @@ ROM_START(trailer)
ROM_RELOAD(0xe000, 0x0800)
ROM_END
-GAME(1982, spain82, 0, play_5, play_5, play_5_state, play_5, ROT0, "Playmatic", "Spain '82", GAME_IS_SKELETON_MECHANICAL)
-GAME(1984, nautilus, 0, play_5, play_5, play_5_state, play_5, ROT0, "Playmatic", "Nautilus", GAME_IS_SKELETON_MECHANICAL)
-GAME(1984, theraid, 0, play_5, play_5, play_5_state, play_5, ROT0, "Playmatic", "The Raid", GAME_IS_SKELETON_MECHANICAL)
-GAME(1984, ufo_x, 0, play_5, play_5, play_5_state, play_5, ROT0, "Playmatic", "UFO-X", GAME_IS_SKELETON_MECHANICAL)
-GAME(1984, kz26, 0, play_5, play_5, play_5_state, play_5, ROT0, "Playmatic", "KZ-26", GAME_IS_SKELETON_MECHANICAL)
-GAME(1985, rock2500, 0, play_5, play_5, play_5_state, play_5, ROT0, "Playmatic", "Rock 2500", GAME_IS_SKELETON_MECHANICAL)
-GAME(1985, starfirp, 0, play_5, play_5, play_5_state, play_5, ROT0, "Playmatic", "Star Fire", GAME_IS_SKELETON_MECHANICAL)
-GAME(1985, starfirpa, starfirp, play_5, play_5, play_5_state, play_5, ROT0, "Playmatic", "Star Fire (alternate set)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1985, trailer, 0, play_5, play_5, play_5_state, play_5, ROT0, "Playmatic", "Trailer", GAME_IS_SKELETON_MECHANICAL)
-GAME(1986, fldragon, 0, play_5, play_5, play_5_state, play_5, ROT0, "Playmatic", "Flash Dragon", GAME_IS_SKELETON_MECHANICAL)
-GAME(1987, sklflite, 0, play_5, play_5, play_5_state, play_5, ROT0, "Playmatic", "Skill Flight (Playmatic)", GAME_IS_SKELETON_MECHANICAL)
+GAME(1982, spain82, 0, play_5, play_5, play_5_state, play_5, ROT0, "Playmatic", "Spain '82", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1984, nautilus, 0, play_5, play_5, play_5_state, play_5, ROT0, "Playmatic", "Nautilus", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1984, theraid, 0, play_5, play_5, play_5_state, play_5, ROT0, "Playmatic", "The Raid", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1984, ufo_x, 0, play_5, play_5, play_5_state, play_5, ROT0, "Playmatic", "UFO-X", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1984, kz26, 0, play_5, play_5, play_5_state, play_5, ROT0, "Playmatic", "KZ-26", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1985, rock2500, 0, play_5, play_5, play_5_state, play_5, ROT0, "Playmatic", "Rock 2500", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1985, starfirp, 0, play_5, play_5, play_5_state, play_5, ROT0, "Playmatic", "Star Fire", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1985, starfirpa, starfirp, play_5, play_5, play_5_state, play_5, ROT0, "Playmatic", "Star Fire (alternate set)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1985, trailer, 0, play_5, play_5, play_5_state, play_5, ROT0, "Playmatic", "Trailer", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1986, fldragon, 0, play_5, play_5, play_5_state, play_5, ROT0, "Playmatic", "Flash Dragon", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1987, sklflite, 0, play_5, play_5, play_5_state, play_5, ROT0, "Playmatic", "Skill Flight (Playmatic)", MACHINE_IS_SKELETON_MECHANICAL)
diff --git a/src/mame/drivers/playch10.c b/src/mame/drivers/playch10.c
index 5a72bf8defd..8d008f2bf17 100644
--- a/src/mame/drivers/playch10.c
+++ b/src/mame/drivers/playch10.c
@@ -1638,7 +1638,7 @@ ROM_END
/* A dummy driver, so that the bios can be debugged, and to serve as */
/* parent for the other drivers, so that we do not have to include */
/* them in every zip file */
-GAME( 1986, playch10, 0, playch10, playch10, playch10_state, playch10, ROT0, "Nintendo of America", "PlayChoice-10 BIOS", GAME_IS_BIOS_ROOT )
+GAME( 1986, playch10, 0, playch10, playch10, playch10_state, playch10, ROT0, "Nintendo of America", "PlayChoice-10 BIOS", MACHINE_IS_BIOS_ROOT )
/******************************************************************************/
@@ -1669,7 +1669,7 @@ GAME( 1984, pc_golf, playch10, playch10, playch10, playch10_state, playch10, RO
GAME( 1985, pc_kngfu, playch10, playch10, playch10, playch10_state, playch10, ROT0, "Irem (Nintendo license)", "Kung Fu (PlayChoice-10)", 0 )
GAME( 1985, pc_smb, playch10, playch10, playch10, playch10_state, playch10, ROT0, "Nintendo", "Super Mario Bros. (PlayChoice-10)", 0 )
GAME( 1986, pc_vball, playch10, playch10, playch10, playch10_state, playch10, ROT0, "Nintendo", "Volley Ball (PlayChoice-10)", 0 )
-GAME( 1987, pc_1942, playch10, playch10, playch10, playch10_state, pc_hrz, ROT0, "Capcom", "1942 (PlayChoice-10)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1987, pc_1942, playch10, playch10, playch10, playch10_state, pc_hrz, ROT0, "Capcom", "1942 (PlayChoice-10)", MACHINE_IMPERFECT_GRAPHICS )
/* Gun Games */
GAME( 1984, pc_duckh, playch10, playch10, playc10g, playch10_state, pc_gun, ROT0, "Nintendo", "Duck Hunt (PlayChoice-10)", 0 )
@@ -1698,7 +1698,7 @@ GAME( 1986, pc_mtoid, playch10, playch10, playch10, playch10_state, pcdboard_2,
GAME( 1987, pc_radrc, playch10, playch10, playch10, playch10_state, pcdboard, ROT0, "Square", "Rad Racer (PlayChoice-10)", 0 )
/* E-Board Games */
-GAME( 1987, pc_miket, playch10, playchnv, playch10, playch10_state, pceboard, ROT0, "Nintendo", "Mike Tyson's Punch-Out!! (PlayChoice-10)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1987, pc_miket, playch10, playchnv, playch10, playch10_state, pceboard, ROT0, "Nintendo", "Mike Tyson's Punch-Out!! (PlayChoice-10)", MACHINE_IMPERFECT_GRAPHICS )
/* F-Board Games */
GAME( 1987, pc_rcpam, playch10, playch10, playch10, playch10_state, pcfboard, ROT0, "Rare", "R.C. Pro-Am (PlayChoice-10)", 0 )
@@ -1707,7 +1707,7 @@ GAME( 1988, pc_ddrgn, playch10, playch10, playch10, playch10_state, pcfboard, RO
GAME( 1989, pc_ngaid, playch10, playch10, playch10, playch10_state, pcfboard, ROT0, "Tecmo (Nintendo of America license)", "Ninja Gaiden (PlayChoice-10)", 0 )
GAME( 1989, pc_tmnt, playch10, playch10, playch10, playch10_state, pcfboard, ROT0, "Konami (Nintendo of America license)", "Teenage Mutant Ninja Turtles (PlayChoice-10)", 0 )
GAME( 1989, pc_ftqst, playch10, playch10, playch10, playch10_state, pcfboard, ROT0, "Sunsoft (Nintendo of America license)", "Uncle Fester's Quest: The Addams Family (PlayChoice-10)", 0 )
-GAME( 1989, pc_bstar, playch10, playch10, playch10, playch10_state, pcfboard_2, ROT0, "SNK (Nintendo of America license)", "Baseball Stars: Be a Champ! (PlayChoice-10)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1989, pc_bstar, playch10, playch10, playch10, playch10_state, pcfboard_2, ROT0, "SNK (Nintendo of America license)", "Baseball Stars: Be a Champ! (PlayChoice-10)", MACHINE_IMPERFECT_GRAPHICS )
GAME( 1989, pc_tbowl, playch10, playch10, playch10, playch10_state, pcfboard, ROT0, "Tecmo (Nintendo of America license)", "Tecmo Bowl (PlayChoice-10)", 0 )
GAME( 1990, pc_virus, pc_drmro, playch10, playch10, playch10_state, virus, ROT0, "Nintendo", "Virus (Dr. Mario prototype, PlayChoice-10)", 0 )
GAME( 1990, pc_drmro, playch10, playch10, playch10, playch10_state, pcfboard, ROT0, "Nintendo", "Dr. Mario (PlayChoice-10)", 0 )
@@ -1727,10 +1727,10 @@ GAME( 1991, pc_pwbld, playch10, playch10, playch10, playch10_state, pcgboard, RO
GAME( 1991, pc_rkats, playch10, playch10, playch10, playch10_state, pcgboard, ROT0, "Atlus (Nintendo of America license)", "Rockin' Kats (PlayChoice-10)", 0 )
/* variant with 4 screen mirror */
GAME( 1990, pc_radr2, playch10, playch10, playch10, playch10_state, pcgboard_type2, ROT0, "Square (Nintendo of America license)", "Rad Racer II (PlayChoice-10)", 0 )
-GAME( 1985, pc_gntlt, playch10, playch10, playch10, playch10_state, pcgboard_type2, ROT0, "Atari / Tengen (Nintendo of America license)", "Gauntlet (PlayChoice-10)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1985, pc_gntlt, playch10, playch10, playch10, playch10_state, pcgboard_type2, ROT0, "Atari / Tengen (Nintendo of America license)", "Gauntlet (PlayChoice-10)", MACHINE_IMPERFECT_GRAPHICS )
/* H-Board Games */
-GAME( 1988, pc_pinbt, playch10, playch10_hboard, playch10, playch10_state, pchboard, ROT0, "Rare (Nintendo of America license)", "PinBot (PlayChoice-10)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1988, pc_pinbt, playch10, playch10_hboard, playch10, playch10_state, pchboard, ROT0, "Rare (Nintendo of America license)", "PinBot (PlayChoice-10)", MACHINE_IMPERFECT_GRAPHICS )
/* i-Board Games */
GAME( 1989, pc_cshwk, playch10, playch10, playch10, playch10_state, pciboard, ROT0, "Rare (Nintendo of America license)", "Captain Sky Hawk (PlayChoice-10)", 0 )
diff --git a/src/mame/drivers/playmark.c b/src/mame/drivers/playmark.c
index b63e207c5c8..b378aa5feaa 100644
--- a/src/mame/drivers/playmark.c
+++ b/src/mame/drivers/playmark.c
@@ -2059,14 +2059,14 @@ DRIVER_INIT_MEMBER(playmark_state,pic_decode)
-GAME( 1995, bigtwin, 0, bigtwin, bigtwin, playmark_state, pic_decode, ROT0, "Playmark", "Big Twin", GAME_SUPPORTS_SAVE )
-GAME( 1995, bigtwinb, bigtwin, bigtwinb, bigtwinb, playmark_state, pic_decode, ROT0, "Playmark", "Big Twin (No Girls Conversion)", GAME_SUPPORTS_SAVE )
-GAME( 1995, wbeachvl, 0, wbeachvl, wbeachvl, driver_device, 0, ROT0, "Playmark", "World Beach Volley (set 1)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1995, wbeachvl2, wbeachvl, wbeachvl, wbeachvl, driver_device, 0, ROT0, "Playmark", "World Beach Volley (set 2)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1995, wbeachvl3, wbeachvl, wbeachvl, wbeachvl, driver_device, 0, ROT0, "Playmark", "World Beach Volley (set 3)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1996, excelsr, 0, excelsr, excelsr, playmark_state, pic_decode, ROT0, "Playmark", "Excelsior (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1996, excelsra, excelsr, excelsr, excelsr, playmark_state, pic_decode, ROT0, "Playmark", "Excelsior (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1994, hrdtimes, 0, hrdtimes, hrdtimes, driver_device, 0, ROT0, "Playmark", "Hard Times (set 1)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1994, hrdtimesa, hrdtimes, hrdtimes, hrdtimes, driver_device, 0, ROT0, "Playmark", "Hard Times (set 2)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1995, hotmind, 0, hotmind, hotmind, playmark_state, pic_decode, ROT0, "Playmark", "Hot Mind (Hard Times hardware)", GAME_SUPPORTS_SAVE )
-GAME( 1996, luckboomh, luckboom, luckboomh, luckboomh, playmark_state, pic_decode, ROT0, "Playmark", "Lucky Boom (Hard Times hardware)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+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_NO_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1995, wbeachvl2, wbeachvl, wbeachvl, wbeachvl, driver_device, 0, ROT0, "Playmark", "World Beach Volley (set 2)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1995, wbeachvl3, wbeachvl, wbeachvl, wbeachvl, driver_device, 0, ROT0, "Playmark", "World Beach Volley (set 3)", MACHINE_NO_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( 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/mess/drivers/plus4.c b/src/mame/drivers/plus4.c
index c902cf303a6..03924846402 100644
--- a/src/mess/drivers/plus4.c
+++ b/src/mame/drivers/plus4.c
@@ -1118,12 +1118,12 @@ ROM_END
//**************************************************************************
// 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)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-COMP( 1984, c232, c264, 0, c232, plus4, driver_device, 0, "Commodore Business Machines", "Commodore 232 (Prototype)", GAME_SUPPORTS_SAVE )
-COMP( 1984, v364, c264, 0, v364, plus4, driver_device, 0, "Commodore Business Machines", "Commodore V364 (Prototype)", GAME_SUPPORTS_SAVE )
-COMP( 1984, plus4, c264, 0, plus4n, plus4, driver_device, 0, "Commodore Business Machines", "Plus/4 (NTSC)", GAME_SUPPORTS_SAVE )
-COMP( 1984, plus4p, c264, 0, plus4p, plus4, driver_device, 0, "Commodore Business Machines", "Plus/4 (PAL)", GAME_SUPPORTS_SAVE )
-COMP( 1984, c16, c264, 0, c16n, c16, driver_device, 0, "Commodore Business Machines", "Commodore 16 (NTSC)", GAME_SUPPORTS_SAVE )
-COMP( 1984, c16p, c264, 0, c16p, c16, driver_device, 0, "Commodore Business Machines", "Commodore 16 (PAL)", GAME_SUPPORTS_SAVE )
-COMP( 1984, c16_hu, c264, 0, c16p, c16, driver_device, 0, "Commodore Business Machines", "Commodore 16 (Hungary)", GAME_SUPPORTS_SAVE )
-COMP( 1984, c116, c264, 0, c16p, c16, driver_device, 0, "Commodore Business Machines", "Commodore 116", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/pluto5.c b/src/mame/drivers/pluto5.c
index 8297dd458c6..07f28fed208 100644
--- a/src/mame/drivers/pluto5.c
+++ b/src/mame/drivers/pluto5.c
@@ -855,117 +855,117 @@ DRIVER_INIT_MEMBER(pluto5_state,hb)
#endif
}
-GAME( 200?, hb_cr ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Cash Raker (Qps) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_cra ,hb_cr, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Cash Raker (Qps) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_crb ,hb_cr, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Cash Raker (Qps) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 200?, hb_bar7 ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "Fairgames","Bar Seven (Fairgames) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_bar7a ,hb_bar7, pluto5, pluto5, pluto5_state, hb, ROT0, "Fairgames","Bar Seven (Fairgames) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 200?, hb_bigx ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "JPM","Big X (JPM) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_bigxa ,hb_bigx, pluto5, pluto5, pluto5_state, hb, ROT0, "JPM","Big X (JPM) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_bigxb ,hb_bigx, pluto5, pluto5, pluto5_state, hb, ROT0, "JPM","Big X (JPM) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_bigxc ,hb_bigx, pluto5, pluto5, pluto5_state, hb, ROT0, "JPM","Big X (JPM) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_bigxd ,hb_bigx, pluto5, pluto5, pluto5_state, hb, ROT0, "JPM","Big X (JPM) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 200?, hb_ccow ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Cash Cow (Qps) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_ccowa ,hb_ccow, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Cash Cow (Qps) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_ccowb ,hb_ccow, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Cash Cow (Qps) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 200?, hb_cashc ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Cash Crusade (Qps) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_cashca ,hb_cashc, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Cash Crusade (Qps) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_cashcb ,hb_cashc, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Cash Crusade (Qps) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 200?, hb_cashx ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "Fairgames","Cash X (Fairgames) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_cashxa ,hb_cashx, pluto5, pluto5, pluto5_state, hb, ROT0, "Fairgames","Cash X (Fairgames) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 200?, hb_cwf ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "Fairgames","Cherry Win Falls (Fairgames) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_cwfa ,hb_cwf, pluto5, pluto5, pluto5_state, hb, ROT0, "Fairgames","Cherry Win Falls (Fairgames) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 200?, hb_dac ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Dough & Arrow Club (Qps, set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_daca ,hb_dac, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Dough & Arrow Club (Qps, set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_dacb ,hb_dac, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Dough & Arrow Club (Qps, set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_dacc ,hb_dac, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Dough & Arrow Club (Qps, set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_dacd ,hb_dac, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Dough & Arrow Club (Qps, set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_dace ,hb_dac, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Dough & Arrow Club (Qps, set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_dacf ,hb_dac, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Dough & Arrow Club (Qps, set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_dacg ,hb_dac, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Dough & Arrow Club (Qps, set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_dacz ,hb_dac, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Dough & Arrow Club (Qps, set 9)", GAME_IS_SKELETON_MECHANICAL ) // bad dump
-
-GAME( 200?, hb_frtcl ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Fruitopia Club (Qps) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_frtcla ,hb_frtcl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Fruitopia Club (Qps) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_frtclb ,hb_frtcl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Fruitopia Club (Qps) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_frtclc ,hb_frtcl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Fruitopia Club (Qps) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_frtcld ,hb_frtcl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Fruitopia Club (Qps) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_frtcle ,hb_frtcl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Fruitopia Club (Qps) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_frtclf ,hb_frtcl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Fruitopia Club (Qps) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_frtclg ,hb_frtcl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Fruitopia Club (Qps) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_frtclh ,hb_frtcl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Fruitopia Club (Qps) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_frtcli ,hb_frtcl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Fruitopia Club (Qps) (set 10)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_frtclj ,hb_frtcl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Fruitopia Club (Qps) (set 11)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_frtclk ,hb_frtcl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Fruitopia Club (Qps) (set 12)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_frtcll ,hb_frtcl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Fruitopia Club (Qps) (set 13)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_frtclm ,hb_frtcl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Fruitopia Club (Qps) (set 14)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_frtcln ,hb_frtcl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Fruitopia Club (Qps) (set 15)", GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 200?, hb_gpal ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Golden Palace (Qps) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_gpala ,hb_gpal, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Golden Palace (Qps) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_gpalb ,hb_gpal, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Golden Palace (Qps) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_gpalc ,hb_gpal, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Golden Palace (Qps) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_gpald ,hb_gpal, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Golden Palace (Qps) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_gpale ,hb_gpal, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Golden Palace (Qps) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_gpalf ,hb_gpal, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Golden Palace (Qps) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_gpalg ,hb_gpal, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Golden Palace (Qps) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_gpalh ,hb_gpal, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Golden Palace (Qps) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_gpali ,hb_gpal, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Golden Palace (Qps) (set 10)", GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 200?, hb_gldpl ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps / Mazooma","Golden Palace (Qps / Mazooma) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_gldpla ,hb_gldpl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps / Mazooma","Golden Palace (Qps / Mazooma) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 200?, hb_gldwn ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "Fairgames","Golden Winner (Fairgames) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_gldwna ,hb_gldwn, pluto5, pluto5, pluto5_state, hb, ROT0, "Fairgames","Golden Winner (Fairgames) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 200?, hb_jailb ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Jail Break (Qps) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_jailba ,hb_jailb, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Jail Break (Qps) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 200?, hb_jkrwl ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "Fairgames","Jokers Wild (Fairgames) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_jkrwla ,hb_jkrwl, pluto5, pluto5, pluto5_state, hb, ROT0, "Fairgames","Jokers Wild (Fairgames) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 200?, hb_mrmon ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Mr. Money (Qps) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_mrmona ,hb_mrmon, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Mr. Money (Qps) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_mrmonb ,hb_mrmon, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Mr. Money (Qps) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_mrmonc ,hb_mrmon, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Mr. Money (Qps) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 200?, hb_rhv ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Red Hot Voucher (Qps) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_rhva ,hb_rhv, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Red Hot Voucher (Qps) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 200?, hb_ringb ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "JPM","Ring A Bell (JPM) (set 1)", GAME_IS_SKELETON_MECHANICAL ) // this game might be on Astra hardware, bigger roms, and a game of this name is known to exist there
-GAME( 200?, hb_ringba ,hb_ringb, pluto5, pluto5, pluto5_state, hb, ROT0, "JPM","Ring A Bell (JPM) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_ringbb ,hb_ringb, pluto5, pluto5, pluto5_state, hb, ROT0, "JPM","Ring A Bell (JPM) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_ringbc ,hb_ringb, pluto5, pluto5, pluto5_state, hb, ROT0, "JPM","Ring A Bell (JPM) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_ringbd ,hb_ringb, pluto5, pluto5, pluto5_state, hb, ROT0, "JPM","Ring A Bell (JPM) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_ringbe ,hb_ringb, pluto5, pluto5, pluto5_state, hb, ROT0, "JPM","Ring A Bell (JPM) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 200?, hb_rckrl ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Rock 'n' Roll (Qps) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_rckrla ,hb_rckrl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Rock 'n' Roll (Qps) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_rckrlb ,hb_rckrl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Rock 'n' Roll (Qps) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_rckrlc ,hb_rckrl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Rock 'n' Roll (Qps) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_rckrld ,hb_rckrl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Rock 'n' Roll (Qps) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_rckrle ,hb_rckrl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Rock 'n' Roll (Qps) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_rckrlf ,hb_rckrl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Rock 'n' Roll (Qps) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_rckrlg ,hb_rckrl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Rock 'n' Roll (Qps) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 200?, hb_ydd ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Yabba-Dabba-Dough (Qps) (set 1)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_ydda ,hb_ydd, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Yabba-Dabba-Dough (Qps) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 200?, hb_hotst ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "JPM?","Hot Stuff (JPM?) (set 1)", GAME_IS_SKELETON_MECHANICAL ) // was in a Barcrest MPU5 set, but I doubt it is
-GAME( 200?, hb_hotsta ,hb_hotst, pluto5, pluto5, pluto5_state, hb, ROT0, "JPM?","Hot Stuff (JPM?) (set 2)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_hotstb ,hb_hotst, pluto5, pluto5, pluto5_state, hb, ROT0, "JPM?","Hot Stuff (JPM?) (set 3)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_hotstc ,hb_hotst, pluto5, pluto5, pluto5_state, hb, ROT0, "JPM?","Hot Stuff (JPM?) (set 4)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_hotstd ,hb_hotst, pluto5, pluto5, pluto5_state, hb, ROT0, "JPM?","Hot Stuff (JPM?) (set 5)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_hotste ,hb_hotst, pluto5, pluto5, pluto5_state, hb, ROT0, "JPM?","Hot Stuff (JPM?) (set 6)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_hotstf ,hb_hotst, pluto5, pluto5, pluto5_state, hb, ROT0, "JPM?","Hot Stuff (JPM?) (set 7)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_hotstg ,hb_hotst, pluto5, pluto5, pluto5_state, hb, ROT0, "JPM?","Hot Stuff (JPM?) (set 8)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 200?, hb_hotsth ,hb_hotst, pluto5, pluto5, pluto5_state, hb, ROT0, "JPM?","Hot Stuff (JPM?) (set 9)", GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 200?, hb_medal ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps", "Medallion Job (Qps)", GAME_IS_SKELETON_MECHANICAL ) // was in an IMPACT set, strings indicate it's the same game, rebuild for this HW I guess
+GAME( 200?, hb_cr ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Cash Raker (Qps) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_cra ,hb_cr, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Cash Raker (Qps) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_crb ,hb_cr, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Cash Raker (Qps) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 200?, hb_bar7 ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "Fairgames","Bar Seven (Fairgames) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_bar7a ,hb_bar7, pluto5, pluto5, pluto5_state, hb, ROT0, "Fairgames","Bar Seven (Fairgames) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 200?, hb_bigx ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "JPM","Big X (JPM) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_bigxa ,hb_bigx, pluto5, pluto5, pluto5_state, hb, ROT0, "JPM","Big X (JPM) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_bigxb ,hb_bigx, pluto5, pluto5, pluto5_state, hb, ROT0, "JPM","Big X (JPM) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_bigxc ,hb_bigx, pluto5, pluto5, pluto5_state, hb, ROT0, "JPM","Big X (JPM) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_bigxd ,hb_bigx, pluto5, pluto5, pluto5_state, hb, ROT0, "JPM","Big X (JPM) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 200?, hb_ccow ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Cash Cow (Qps) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_ccowa ,hb_ccow, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Cash Cow (Qps) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_ccowb ,hb_ccow, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Cash Cow (Qps) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 200?, hb_cashc ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Cash Crusade (Qps) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_cashca ,hb_cashc, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Cash Crusade (Qps) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_cashcb ,hb_cashc, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Cash Crusade (Qps) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 200?, hb_cashx ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "Fairgames","Cash X (Fairgames) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_cashxa ,hb_cashx, pluto5, pluto5, pluto5_state, hb, ROT0, "Fairgames","Cash X (Fairgames) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 200?, hb_cwf ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "Fairgames","Cherry Win Falls (Fairgames) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_cwfa ,hb_cwf, pluto5, pluto5, pluto5_state, hb, ROT0, "Fairgames","Cherry Win Falls (Fairgames) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 200?, hb_dac ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Dough & Arrow Club (Qps, set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_daca ,hb_dac, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Dough & Arrow Club (Qps, set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_dacb ,hb_dac, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Dough & Arrow Club (Qps, set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_dacc ,hb_dac, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Dough & Arrow Club (Qps, set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_dacd ,hb_dac, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Dough & Arrow Club (Qps, set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_dace ,hb_dac, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Dough & Arrow Club (Qps, set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_dacf ,hb_dac, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Dough & Arrow Club (Qps, set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_dacg ,hb_dac, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Dough & Arrow Club (Qps, set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_dacz ,hb_dac, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Dough & Arrow Club (Qps, set 9)", MACHINE_IS_SKELETON_MECHANICAL ) // bad dump
+
+GAME( 200?, hb_frtcl ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Fruitopia Club (Qps) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_frtcla ,hb_frtcl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Fruitopia Club (Qps) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_frtclb ,hb_frtcl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Fruitopia Club (Qps) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_frtclc ,hb_frtcl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Fruitopia Club (Qps) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_frtcld ,hb_frtcl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Fruitopia Club (Qps) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_frtcle ,hb_frtcl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Fruitopia Club (Qps) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_frtclf ,hb_frtcl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Fruitopia Club (Qps) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_frtclg ,hb_frtcl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Fruitopia Club (Qps) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_frtclh ,hb_frtcl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Fruitopia Club (Qps) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_frtcli ,hb_frtcl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Fruitopia Club (Qps) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_frtclj ,hb_frtcl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Fruitopia Club (Qps) (set 11)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_frtclk ,hb_frtcl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Fruitopia Club (Qps) (set 12)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_frtcll ,hb_frtcl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Fruitopia Club (Qps) (set 13)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_frtclm ,hb_frtcl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Fruitopia Club (Qps) (set 14)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_frtcln ,hb_frtcl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Fruitopia Club (Qps) (set 15)", MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 200?, hb_gpal ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Golden Palace (Qps) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_gpala ,hb_gpal, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Golden Palace (Qps) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_gpalb ,hb_gpal, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Golden Palace (Qps) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_gpalc ,hb_gpal, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Golden Palace (Qps) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_gpald ,hb_gpal, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Golden Palace (Qps) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_gpale ,hb_gpal, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Golden Palace (Qps) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_gpalf ,hb_gpal, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Golden Palace (Qps) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_gpalg ,hb_gpal, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Golden Palace (Qps) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_gpalh ,hb_gpal, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Golden Palace (Qps) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_gpali ,hb_gpal, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Golden Palace (Qps) (set 10)", MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 200?, hb_gldpl ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps / Mazooma","Golden Palace (Qps / Mazooma) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_gldpla ,hb_gldpl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps / Mazooma","Golden Palace (Qps / Mazooma) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 200?, hb_gldwn ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "Fairgames","Golden Winner (Fairgames) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_gldwna ,hb_gldwn, pluto5, pluto5, pluto5_state, hb, ROT0, "Fairgames","Golden Winner (Fairgames) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 200?, hb_jailb ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Jail Break (Qps) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_jailba ,hb_jailb, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Jail Break (Qps) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 200?, hb_jkrwl ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "Fairgames","Jokers Wild (Fairgames) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_jkrwla ,hb_jkrwl, pluto5, pluto5, pluto5_state, hb, ROT0, "Fairgames","Jokers Wild (Fairgames) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 200?, hb_mrmon ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Mr. Money (Qps) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_mrmona ,hb_mrmon, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Mr. Money (Qps) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_mrmonb ,hb_mrmon, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Mr. Money (Qps) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_mrmonc ,hb_mrmon, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Mr. Money (Qps) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 200?, hb_rhv ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Red Hot Voucher (Qps) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_rhva ,hb_rhv, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Red Hot Voucher (Qps) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 200?, hb_ringb ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "JPM","Ring A Bell (JPM) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) // this game might be on Astra hardware, bigger roms, and a game of this name is known to exist there
+GAME( 200?, hb_ringba ,hb_ringb, pluto5, pluto5, pluto5_state, hb, ROT0, "JPM","Ring A Bell (JPM) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_ringbb ,hb_ringb, pluto5, pluto5, pluto5_state, hb, ROT0, "JPM","Ring A Bell (JPM) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_ringbc ,hb_ringb, pluto5, pluto5, pluto5_state, hb, ROT0, "JPM","Ring A Bell (JPM) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_ringbd ,hb_ringb, pluto5, pluto5, pluto5_state, hb, ROT0, "JPM","Ring A Bell (JPM) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_ringbe ,hb_ringb, pluto5, pluto5, pluto5_state, hb, ROT0, "JPM","Ring A Bell (JPM) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 200?, hb_rckrl ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Rock 'n' Roll (Qps) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_rckrla ,hb_rckrl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Rock 'n' Roll (Qps) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_rckrlb ,hb_rckrl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Rock 'n' Roll (Qps) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_rckrlc ,hb_rckrl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Rock 'n' Roll (Qps) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_rckrld ,hb_rckrl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Rock 'n' Roll (Qps) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_rckrle ,hb_rckrl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Rock 'n' Roll (Qps) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_rckrlf ,hb_rckrl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Rock 'n' Roll (Qps) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_rckrlg ,hb_rckrl, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Rock 'n' Roll (Qps) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 200?, hb_ydd ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Yabba-Dabba-Dough (Qps) (set 1)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_ydda ,hb_ydd, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps","Yabba-Dabba-Dough (Qps) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 200?, hb_hotst ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "JPM?","Hot Stuff (JPM?) (set 1)", MACHINE_IS_SKELETON_MECHANICAL ) // was in a Barcrest MPU5 set, but I doubt it is
+GAME( 200?, hb_hotsta ,hb_hotst, pluto5, pluto5, pluto5_state, hb, ROT0, "JPM?","Hot Stuff (JPM?) (set 2)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_hotstb ,hb_hotst, pluto5, pluto5, pluto5_state, hb, ROT0, "JPM?","Hot Stuff (JPM?) (set 3)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_hotstc ,hb_hotst, pluto5, pluto5, pluto5_state, hb, ROT0, "JPM?","Hot Stuff (JPM?) (set 4)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_hotstd ,hb_hotst, pluto5, pluto5, pluto5_state, hb, ROT0, "JPM?","Hot Stuff (JPM?) (set 5)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_hotste ,hb_hotst, pluto5, pluto5, pluto5_state, hb, ROT0, "JPM?","Hot Stuff (JPM?) (set 6)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_hotstf ,hb_hotst, pluto5, pluto5, pluto5_state, hb, ROT0, "JPM?","Hot Stuff (JPM?) (set 7)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_hotstg ,hb_hotst, pluto5, pluto5, pluto5_state, hb, ROT0, "JPM?","Hot Stuff (JPM?) (set 8)", MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 200?, hb_hotsth ,hb_hotst, pluto5, pluto5, pluto5_state, hb, ROT0, "JPM?","Hot Stuff (JPM?) (set 9)", MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 200?, hb_medal ,0, pluto5, pluto5, pluto5_state, hb, ROT0, "Qps", "Medallion Job (Qps)", MACHINE_IS_SKELETON_MECHANICAL ) // was in an IMPACT set, strings indicate it's the same game, rebuild for this HW I guess
diff --git a/src/mame/drivers/plygonet.c b/src/mame/drivers/plygonet.c
index eceb82dbefd..a2e66a140bc 100644
--- a/src/mame/drivers/plygonet.c
+++ b/src/mame/drivers/plygonet.c
@@ -290,20 +290,6 @@ READ32_MEMBER(polygonet_state::network_r)
}
-WRITE32_MEMBER(polygonet_state::plygonet_palette_w)
-{
- int r,g,b;
-
- COMBINE_DATA(&m_generic_paletteram_32[offset]);
-
- r = (m_generic_paletteram_32[offset] >>16) & 0xff;
- g = (m_generic_paletteram_32[offset] >> 8) & 0xff;
- b = (m_generic_paletteram_32[offset] >> 0) & 0xff;
-
- m_palette->set_pen_color(offset,rgb_t(r,g,b));
-}
-
-
/**********************************************************************************/
/******* DSP56k maps *******/
/**********************************************************************************/
@@ -479,7 +465,7 @@ WRITE16_MEMBER(polygonet_state::dsp56k_ram_bank04_write)
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 32, polygonet_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
- AM_RANGE(0x200000, 0x21ffff) AM_RAM_WRITE(plygonet_palette_w) AM_SHARE("paletteram")
+ AM_RANGE(0x200000, 0x21ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x400000, 0x40001f) AM_DEVREADWRITE16("k053936", k053936_device, ctrl_r, ctrl_w, 0xffffffff)
AM_RANGE(0x440000, 0x440fff) AM_READWRITE(polygonet_roz_ram_r, polygonet_roz_ram_w)
AM_RANGE(0x480000, 0x480003) AM_READ8(polygonet_inputs_r, 0xffffffff)
@@ -644,6 +630,7 @@ static MACHINE_CONFIG_START( plygonet, polygonet_state )
MCFG_SCREEN_PALETTE("palette")
MCFG_PALETTE_ADD("palette", 32768)
+ MCFG_PALETTE_FORMAT(XRGB)
MCFG_DEVICE_ADD("k053936", K053936, 0)
@@ -784,5 +771,5 @@ ROM_START( polynetw )
ROM_END
/* ROM parent machine inp init */
-GAME( 1993, plygonet, 0, plygonet, polygonet, polygonet_state, polygonet, ROT90, "Konami", "Polygonet Commanders (ver UAA)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1993, polynetw, 0, plygonet, polynetw, polygonet_state, polygonet, ROT90, "Konami", "Poly-Net Warriors (ver JAA)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/pm68k.c b/src/mame/drivers/pm68k.c
index e6175cc91af..8aac2f9f853 100644
--- a/src/mess/drivers/pm68k.c
+++ b/src/mame/drivers/pm68k.c
@@ -101,4 +101,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND_HW )
+COMP( 198?, pm68k, 0, 0, pm68k, pm68k, driver_device, 0, "Callan Data Systems", "PM68K", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW )
diff --git a/src/mess/drivers/pmd85.c b/src/mame/drivers/pmd85.c
index a41910f5067..ce1189c9592 100644
--- a/src/mess/drivers/pmd85.c
+++ b/src/mame/drivers/pmd85.c
@@ -182,6 +182,36 @@ I/O ports
#include "formats/pmd_cas.h"
#include "machine/ram.h"
+
+//**************************************************************************
+// VIDEO EMULATION
+//**************************************************************************
+
+UINT32 pmd85_state::screen_update_pmd85(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+{
+ for (int y = 0; y < 256; y++)
+ {
+ // address of current line in PMD-85 video memory
+ UINT8 *line = m_ram->pointer() + 0xc000 + 0x40 * y;
+
+ for (int x = 0; x < 288/6; x++)
+ {
+ int pen = BIT(line[x], 7) ? 1 : 2;
+
+ bitmap.pix16(y, x * 6 + 0) = BIT(line[x], 0) ? pen : 0;
+ bitmap.pix16(y, x * 6 + 1) = BIT(line[x], 1) ? pen : 0;
+ bitmap.pix16(y, x * 6 + 2) = BIT(line[x], 2) ? pen : 0;
+ bitmap.pix16(y, x * 6 + 3) = BIT(line[x], 3) ? pen : 0;
+ bitmap.pix16(y, x * 6 + 4) = BIT(line[x], 4) ? pen : 0;
+ bitmap.pix16(y, x * 6 + 5) = BIT(line[x], 5) ? pen : 0;
+ }
+
+ }
+
+ return 0;
+}
+
+
/* I/O ports */
static ADDRESS_MAP_START( pmd85_io_map, AS_IO, 8, pmd85_state )
@@ -578,8 +608,7 @@ static MACHINE_CONFIG_START( pmd85, pmd85_state )
MCFG_SCREEN_UPDATE_DRIVER(pmd85_state, screen_update_pmd85)
MCFG_SCREEN_PALETTE("palette")
- MCFG_PALETTE_ADD("palette", sizeof (pmd85_palette) / 3)
- MCFG_PALETTE_INIT_OWNER(pmd85_state, pmd85)
+ MCFG_PALETTE_ADD_MONOCHROME_GREEN_HIGHLIGHT("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -781,4 +810,4 @@ COMP( 1988, pmd853, pmd851, 0, pmd853, pmd85, pmd85_state, pmd853, "Tesl
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)" , GAME_NOT_WORKING)
+COMP( 1989, c2717pmd,pmd851, 0, c2717, pmd85, pmd85_state, c2717, "Zbrojovka Brno", "Consul 2717 (with PMD-32)" , MACHINE_NOT_WORKING)
diff --git a/src/mess/drivers/pmi80.c b/src/mame/drivers/pmi80.c
index a90e258dcc9..8c41f5cd083 100644
--- a/src/mess/drivers/pmi80.c
+++ b/src/mame/drivers/pmi80.c
@@ -172,4 +172,4 @@ 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", GAME_NO_SOUND_HW)
+COMP( 1982, pmi80, 0, 0, pmi80, pmi80, driver_device, 0, "Tesla", "PMI-80", MACHINE_NO_SOUND_HW)
diff --git a/src/mame/drivers/pntnpuzl.c b/src/mame/drivers/pntnpuzl.c
index 0a7687f256e..32f1f571fe2 100644
--- a/src/mame/drivers/pntnpuzl.c
+++ b/src/mame/drivers/pntnpuzl.c
@@ -374,4 +374,4 @@ DRIVER_INIT_MEMBER(pntnpuzl_state,pip)
}
-GAME( 199?, pntnpuzl, 0, pntnpuzl, pntnpuzl, pntnpuzl_state, pip, ROT90, "Century?", "Paint & Puzzle",GAME_NO_SOUND|GAME_NOT_WORKING )
+GAME( 199?, pntnpuzl, 0, pntnpuzl, pntnpuzl, pntnpuzl_state, pip, ROT90, "Century?", "Paint & Puzzle",MACHINE_NO_SOUND|MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/pocketc.c b/src/mame/drivers/pocketc.c
index a41ac7f2d62..4a2dd453bc9 100644
--- a/src/mess/drivers/pocketc.c
+++ b/src/mame/drivers/pocketc.c
@@ -966,23 +966,23 @@ ROM_END
/* 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", GAME_NOT_WORKING | GAME_NO_SOUND )
-COMP( 1982, pc1250, 0, 0, pc1250, pc1251, pc1251_state, pc1251, "Sharp", "Pocket Computer 1250", GAME_NO_SOUND)
-COMP( 1982, pc1251, pc1250, 0, pc1251, pc1251, pc1251_state, pc1251, "Sharp", "Pocket Computer 1251", GAME_NO_SOUND)
-COMP( 1982, pc1255, pc1250, 0, pc1255, pc1251, pc1251_state, pc1251, "Sharp", "Pocket Computer 1255", GAME_NO_SOUND)
-COMP( 1983, trs80pc3, pc1250, 0, pc1251, pc1251, pc1251_state, pc1251, "Tandy Radio Shack", "TRS-80 Pocket Computer PC-3", GAME_NO_SOUND)
+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", GAME_NOT_WORKING | GAME_NO_SOUND )
-COMP( 1982, pc1261, pc1260, 0, pc1261, pc1251, pc1251_state, pc1251, "Sharp", "Pocket Computer 1261/1262", GAME_NOT_WORKING | GAME_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", GAME_NO_SOUND )
-COMP( 198?, pc1450, 0, 0, pc1350, pc1350, driver_device, 0, "Sharp", "Pocket Computer 1450", GAME_NOT_WORKING | GAME_NO_SOUND )
+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 )
-COMP( 1983, pc1401, 0, 0, pc1401, pc1401, pc1401_state, pc1401, "Sharp", "Pocket Computer 1401", GAME_NO_SOUND)
-COMP( 1984, pc1402, pc1401, 0, pc1402, pc1401, pc1401_state, pc1401, "Sharp", "Pocket Computer 1402", GAME_NO_SOUND)
-COMP( 198?, pc1360, pc1401, 0, pc1401, pc1401, pc1401_state, pc1401, "Sharp", "Pocket Computer 1360", GAME_NOT_WORKING | GAME_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", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 198?, pc1403h, pc1403, 0, pc1403h,pc1403, pc1403_state, pc1403, "Sharp", "Pocket Computer 1403H", GAME_NOT_WORKING | GAME_NO_SOUND)
+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/mess/drivers/pockstat.c b/src/mame/drivers/pockstat.c
index e3b636b832d..be1276b4e0e 100644
--- a/src/mess/drivers/pockstat.c
+++ b/src/mame/drivers/pockstat.c
@@ -5,8 +5,8 @@
Sony PocketStation
05/2009 Skeleton driver written.
- 11/2009 Initial bring-up commenced by Harmony.
- 11/2009 Playable state achieved by Harmony.
+ 11/2009 Initial bring-up commenced by Ryan Holtz.
+ 11/2009 Playable state achieved by Ryan Holtz.
PocketStation games were dowloaded from PS1 games into flash RAM after
the unit had been inserted in the memory card slot, and so this should
@@ -1014,4 +1014,4 @@ 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", GAME_SUPPORTS_SAVE )
+CONS( 1999, pockstat, 0, 0, pockstat, pockstat, driver_device, 0, "Sony Computer Entertainment Inc", "Sony PocketStation", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/poisk1.c b/src/mame/drivers/poisk1.c
index fce63ee23ac..fce63ee23ac 100644
--- a/src/mess/drivers/poisk1.c
+++ b/src/mame/drivers/poisk1.c
diff --git a/src/mess/drivers/pokemini.c b/src/mame/drivers/pokemini.c
index 98977a85c5a..65c63fabe0b 100644
--- a/src/mess/drivers/pokemini.c
+++ b/src/mame/drivers/pokemini.c
@@ -1795,4 +1795,4 @@ ROM_START( pokemini )
ROM_END
-CONS( 2001, pokemini, 0, 0, pokemini, pokemini, driver_device, 0, "Nintendo", "Pokemon Mini", GAME_NO_SOUND )
+CONS( 2001, pokemini, 0, 0, pokemini, pokemini, driver_device, 0, "Nintendo", "Pokemon Mini", MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/poker72.c b/src/mame/drivers/poker72.c
index 3b90523609a..15062b51944 100644
--- a/src/mame/drivers/poker72.c
+++ b/src/mame/drivers/poker72.c
@@ -412,4 +412,4 @@ DRIVER_INIT_MEMBER(poker72_state,poker72)
rom[0x4a9] = 0x28;
}
-GAME( 1995, poker72, 0, poker72, poker72, poker72_state, poker72, ROT0, "Extrema Systems International Ltd.", "Poker Monarch (v2.50)", GAME_NOT_WORKING ) // actually unknown, was marked 'slot 72 poker' Manufacturers logo and 'Lucky Boy' gfx in rom..
+GAME( 1995, poker72, 0, poker72, poker72, poker72_state, poker72, ROT0, "Extrema Systems International Ltd.", "Poker Monarch (v2.50)", MACHINE_NOT_WORKING ) // actually unknown, was marked 'slot 72 poker' Manufacturers logo and 'Lucky Boy' gfx in rom..
diff --git a/src/mame/drivers/polepos.c b/src/mame/drivers/polepos.c
index 513b0baf9f6..48d1da026d4 100644
--- a/src/mame/drivers/polepos.c
+++ b/src/mame/drivers/polepos.c
@@ -2146,4 +2146,4 @@ GAME( 1982, topracern, polepos, topracern, topracern, polepos_state, topracer
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, topracern, polepos_state, topracern, ROT0, "bootleg", "Gran Premio F1 (Italian bootleg of Pole Position II)", GAME_IMPERFECT_COLORS | GAME_IMPERFECT_SOUND ) // should have italian voices
+GAME( 1984, polepos2bi, polepos2, polepos2bi, topracern, polepos_state, topracern, ROT0, "bootleg", "Gran Premio F1 (Italian bootleg of Pole Position II)", MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND ) // should have italian voices
diff --git a/src/mess/drivers/poly.c b/src/mame/drivers/poly.c
index 2dfa11de7ce..0ae7749316b 100644
--- a/src/mess/drivers/poly.c
+++ b/src/mame/drivers/poly.c
@@ -226,4 +226,4 @@ 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", GAME_NOT_WORKING )
+COMP( 1981, poly1, 0, 0, poly, poly, driver_device, 0, "Polycorp", "Poly-1 Educational Computer", MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/poly88.c b/src/mame/drivers/poly88.c
index 10de186fd15..79905bc2eea 100644
--- a/src/mess/drivers/poly88.c
+++ b/src/mame/drivers/poly88.c
@@ -227,4 +227,4 @@ ROM_END
/* 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",GAME_NOT_WORKING)
+COMP( 1977, poly8813,poly88,0, poly8813, poly88, poly88_state, poly88, "PolyMorphic Systems", "Poly-8813",MACHINE_NOT_WORKING)
diff --git a/src/mess/drivers/poly880.c b/src/mame/drivers/poly880.c
index f94cdd898ea..26917bcd25e 100644
--- a/src/mess/drivers/poly880.c
+++ b/src/mame/drivers/poly880.c
@@ -285,4 +285,4 @@ 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", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW)
+COMP( 1983, poly880, 0, 0, poly880, poly880, driver_device, 0, "VEB Polytechnik", "Poly-Computer 880", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW)
diff --git a/src/mame/drivers/pong.c b/src/mame/drivers/pong.c
index 4e29ead9ada..1aeb83144a2 100644
--- a/src/mame/drivers/pong.c
+++ b/src/mame/drivers/pong.c
@@ -490,7 +490,7 @@ ROM_START( pongd ) /* dummy to satisfy game entry*/
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
ROM_END
-GAME( 1972, pong, 0, pong, pong, driver_device, 0, ROT0, "Atari", "Pong (Rev E) external [TTL]", GAME_SUPPORTS_SAVE)
-GAME( 1972, pongf, 0, pongf, pong, driver_device, 0, ROT0, "Atari", "Pong (Rev E) [TTL]", GAME_SUPPORTS_SAVE )
-GAME( 1974, pongd, 0, pongd, pongd, driver_device, 0, ROT0, "Atari", "Pong Doubles [TTL]", GAME_SUPPORTS_SAVE )
-GAMEL( 1976, breakout, 0, breakout, breakout, driver_device, 0, ROT90, "Atari", "Breakout [TTL]", GAME_SUPPORTS_SAVE, layout_breakout)
+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( 1974, 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)
diff --git a/src/mame/drivers/poolshrk.c b/src/mame/drivers/poolshrk.c
index b8794ba80bc..3a49c79601b 100644
--- a/src/mame/drivers/poolshrk.c
+++ b/src/mame/drivers/poolshrk.c
@@ -41,7 +41,7 @@ DRIVER_INIT_MEMBER(poolshrk_state,poolshrk)
pSprite += 4;
}
}
-
+
save_item(NAME(m_da_latch));
}
@@ -257,4 +257,4 @@ ROM_START( poolshrk )
ROM_END
-GAME( 1977, poolshrk, 0, poolshrk, poolshrk, poolshrk_state, poolshrk, 0, "Atari", "Poolshark", GAME_SUPPORTS_SAVE )
+GAME( 1977, poolshrk, 0, poolshrk, poolshrk, poolshrk_state, poolshrk, 0, "Atari", "Poolshark", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/pooyan.c b/src/mame/drivers/pooyan.c
index cb58a6b75ff..074a514be71 100644
--- a/src/mame/drivers/pooyan.c
+++ b/src/mame/drivers/pooyan.c
@@ -300,6 +300,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", GAME_SUPPORTS_SAVE )
-GAME( 1982, pooyans, pooyan, pooyan, pooyan, driver_device, 0, ROT90, "Konami (Stern Electronics license)", "Pooyan (Stern Electronics)", GAME_SUPPORTS_SAVE )
-GAME( 1982, pootan, pooyan, pooyan, pooyan, driver_device, 0, ROT90, "bootleg", "Pootan", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/popeye.c b/src/mame/drivers/popeye.c
index 6ec651e3bed..84025e84edd 100644
--- a/src/mame/drivers/popeye.c
+++ b/src/mame/drivers/popeye.c
@@ -703,8 +703,8 @@ DRIVER_INIT_MEMBER(popeye_state,popeye)
}
-GAME( 1981, skyskipr, 0, skyskipr, skyskipr, popeye_state, skyskipr, ROT0, "Nintendo", "Sky Skipper", GAME_SUPPORTS_SAVE )
-GAME( 1982, popeye, 0, popeye, popeye, popeye_state, popeye, ROT0, "Nintendo", "Popeye (revision D)", GAME_SUPPORTS_SAVE )
-GAME( 1982, popeyeu, popeye, popeye, popeye, popeye_state, popeye, ROT0, "Nintendo", "Popeye (revision D not protected)", GAME_SUPPORTS_SAVE )
-GAME( 1982, popeyef, popeye, popeye, popeyef, popeye_state, popeye, ROT0, "Nintendo", "Popeye (revision F)", GAME_SUPPORTS_SAVE )
-GAME( 1982, popeyebl, popeye, popeyebl, popeye, driver_device, 0, ROT0, "bootleg", "Popeye (bootleg)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/popobear.c b/src/mame/drivers/popobear.c
index aa404b1ff16..0aa82847141 100644
--- a/src/mame/drivers/popobear.c
+++ b/src/mame/drivers/popobear.c
@@ -677,4 +677,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", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+GAME( 2000, popobear, 0, popobear, popobear, driver_device, 0, ROT0, "BMC", "PoPo Bear", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/popper.c b/src/mame/drivers/popper.c
index abc901da1fa..42a79abdfe9 100644
--- a/src/mame/drivers/popper.c
+++ b/src/mame/drivers/popper.c
@@ -404,4 +404,4 @@ ROM_END
*
*************************************/
-GAME( 1983, popper, 0, popper, popper, driver_device, 0, ROT90, "Omori Electric Co., Ltd.", "Popper", GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE )
+GAME( 1983, popper, 0, popper, popper, driver_device, 0, ROT90, "Omori Electric Co., Ltd.", "Popper", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/portfoli.c b/src/mame/drivers/portfoli.c
index 8824d61dda9..1cbbc30fc57 100644
--- a/src/mess/drivers/portfoli.c
+++ b/src/mame/drivers/portfoli.c
@@ -926,4 +926,4 @@ ROM_END
//**************************************************************************
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 1989, pofo, 0, 0, portfolio, portfolio, driver_device, 0, "Atari", "Portfolio", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+COMP( 1989, pofo, 0, 0, portfolio, portfolio, driver_device, 0, "Atari", "Portfolio", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/portrait.c b/src/mame/drivers/portrait.c
index c55df3885fc..0317c520079 100644
--- a/src/mame/drivers/portrait.c
+++ b/src/mame/drivers/portrait.c
@@ -382,5 +382,5 @@ ROM_END
-GAME( 1983, portrait, 0, portrait, portrait, driver_device, 0, ROT270, "Olympia", "Portraits (set 1)", GAME_NO_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
-GAME( 1983, portraita,portrait, portrait, portrait, driver_device, 0, ROT270, "Olympia", "Portraits (set 2)", GAME_NO_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/potgoldu.c b/src/mame/drivers/potgoldu.c
index b83c25b6725..a76d72cddc6 100644
--- a/src/mame/drivers/potgoldu.c
+++ b/src/mame/drivers/potgoldu.c
@@ -105,4 +105,4 @@ ROM_START( potgoldu )
ROM_END
-GAME( 200?, potgoldu, 0, potgold, potgold, driver_device, 0, ROT0, "U.S. Games Inc.", "Pot O' Gold (U.S. Games, v400x?)", GAME_IS_SKELETON | GAME_NO_SOUND )
+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 )
diff --git a/src/mame/drivers/powerbal.c b/src/mame/drivers/powerbal.c
index 434a7604c74..dbdf096117e 100644
--- a/src/mame/drivers/powerbal.c
+++ b/src/mame/drivers/powerbal.c
@@ -702,6 +702,6 @@ DRIVER_INIT_MEMBER(powerbal_state,magicstk)
*************************/
/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS */
-GAME( 1994, powerbal, 0, powerbal, powerbal, powerbal_state, powerbal, ROT0, "Playmark", "Power Balls", GAME_SUPPORTS_SAVE )
-GAME( 1995, magicstk, 0, magicstk, magicstk, powerbal_state, magicstk, ROT0, "Playmark", "Magic Sticks", GAME_SUPPORTS_SAVE )
-GAME( 1995, hotminda, hotmind, magicstk, hotminda, powerbal_state, magicstk, ROT0, "Playmark", "Hot Mind (adjustable prize)", GAME_SUPPORTS_SAVE )
+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.c b/src/mame/drivers/powerins.c
index 5d9d1d59986..256666a030f 100644
--- a/src/mame/drivers/powerins.c
+++ b/src/mame/drivers/powerins.c
@@ -674,7 +674,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)", GAME_SUPPORTS_SAVE )
-GAME( 1993, powerinsj, powerins, powerins, powerinj, driver_device, 0, ROT0, "Atlus", "Gouketsuji Ichizoku (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1993, powerinsa, powerins, powerinsa, powerins, driver_device, 0, ROT0, "bootleg", "Power Instinct (USA, bootleg set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1993, powerinsb, powerins, powerinsb, powerins, driver_device, 0, ROT0, "bootleg", "Power Instinct (USA, bootleg set 2)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/pp01.c b/src/mame/drivers/pp01.c
index 13f6bf63fa0..3ebde2d08ce 100644
--- a/src/mess/drivers/pp01.c
+++ b/src/mame/drivers/pp01.c
@@ -273,4 +273,4 @@ 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", GAME_NOT_WORKING )
+COMP( 198?, pp01, 0, 0, pp01, pp01, driver_device, 0, "ZVT", "PP-01", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/ppmast93.c b/src/mame/drivers/ppmast93.c
index c4e83f0433e..b17d4c9d704 100644
--- a/src/mame/drivers/ppmast93.c
+++ b/src/mame/drivers/ppmast93.c
@@ -424,4 +424,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", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/prehisle.c b/src/mame/drivers/prehisle.c
index ea6ee403a8d..7a384a033cb 100644
--- a/src/mame/drivers/prehisle.c
+++ b/src/mame/drivers/prehisle.c
@@ -205,10 +205,10 @@ static MACHINE_CONFIG_START( prehisle, prehisle_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(32*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
+ // the screen parameters are guessed but should be accurate. They
+ // give a theoretical refresh rate of 59.1856Hz while the measured
+ // rate on a snk68.c with very similar hardware board is 59.16Hz.
+ MCFG_SCREEN_RAW_PARAMS(XTAL_24MHz/4, 384, 0, 256, 264, 16, 240)
MCFG_SCREEN_UPDATE_DRIVER(prehisle_state, screen_update_prehisle)
MCFG_SCREEN_PALETTE("palette")
@@ -345,7 +345,7 @@ ROM_END
/******************************************************************************/
-GAME( 1989, prehisle, 0, prehisle, prehisle, driver_device, 0, ROT0, "SNK", "Prehistoric Isle in 1930 (World)", GAME_SUPPORTS_SAVE )
-GAME( 1989, prehisleu,prehisle, prehisle, prehisle, driver_device, 0, ROT0, "SNK", "Prehistoric Isle in 1930 (US)", GAME_SUPPORTS_SAVE )
-GAME( 1989, prehislek,prehisle, prehisle, prehisle, driver_device, 0, ROT0, "SNK (Victor license)", "Prehistoric Isle in 1930 (Korea)", GAME_SUPPORTS_SAVE )
-GAME( 1989, gensitou, prehisle, prehisle, prehisle, driver_device, 0, ROT0, "SNK", "Genshi-Tou 1930's", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/prestige.c b/src/mame/drivers/prestige.c
index 751769cecc2..18049ff3952 100644
--- a/src/mess/drivers/prestige.c
+++ b/src/mame/drivers/prestige.c
@@ -854,28 +854,40 @@ ROM_START( gl6600cx )
ROM_LOAD( "54-06400-00.u1", 0x000000, 0x200000, CRC(b05cd075) SHA1(b1d9eb02ca56350eb9e89518db89c0a2a845ebd8))
ROM_END
+ROM_START( gkidabc )
+ ROM_REGION( 0x20000, "maincpu", 0 )
+ ROM_LOAD("27-5730-00.bin", 0x00000, 0x20000, CRC(64664708) SHA1(74212c2dec1caa41dbc933b50f857904a8ac623b))
+ROM_END
+
+ROM_START( cars2lap )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD("n25s16.u6", 0x00000, 0x200000, CRC(ec1ba96e) SHA1(51b8844ae77adf20f74f268d380d268c9ce19785))
+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)", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 1994, glscolor, glcolor, 0, glcolor, glcolor, driver_device, 0, "VTech", "Genius Leader Super Color (Germany)", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 1996, glmcolor, 0, 0, glmcolor, glmcolor, driver_device, 0, "VTech", "Genius Leader Magic Color (Germany)", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 1997, gl6000sl, 0, 0, gl6000sl, prestige, driver_device, 0, "VTech", "Genius Leader 6000SL (Germany)", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 1998, gl7007sl, 0, 0, gl7007sl, prestige, driver_device, 0, "VTech", "Genius Leader 7007SL (Germany)", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 1998, prestige, 0, 0, prestige, prestige, driver_device, 0, "VTech", "PreComputer Prestige Elite", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 1999, gwnf, 0, 0, prestige, prestige, driver_device, 0, "VTech", "Genius Winner Notebook Fun (Germany)", GAME_NOT_WORKING | GAME_NO_SOUND)
+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( 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, 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)
// 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)", GAME_IS_SKELETON)
-COMP( 1993, gjmovie, 0, 0, gjmovie, prestige, driver_device, 0, "VTech", "Genius Junior Movie (Germany)", GAME_IS_SKELETON)
-COMP( 1996, gjrstar, 0, 0, prestige, prestige, driver_device, 0, "VTech", "Genius Junior Redstar(Germany)", GAME_IS_SKELETON)
-COMP( 1996, gjrstar2, gjrstar, 0, prestige, prestige, driver_device, 0, "VTech", "Genius Junior Redstar 2 (Germany)", GAME_IS_SKELETON)
-COMP( 1998, gjrstar3, 0, 0, prestige, prestige, driver_device, 0, "VTech", "Genius Junior Redstar 3 (Germany)", GAME_IS_SKELETON)
-COMP( 1998, gj5000, 0, 0, prestige, prestige, driver_device, 0, "VTech", "Genius Junior 5000 (Germany)", GAME_IS_SKELETON)
+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)
// 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)", GAME_IS_SKELETON)
+COMP( 1999, gl6600cx, 0, 0, prestige, prestige, driver_device, 0, "VTech", "Genius Leader 6600CX (Germany)", MACHINE_IS_SKELETON)
diff --git a/src/mess/drivers/primo.c b/src/mame/drivers/primo.c
index 506ddd91264..65e40039316 100644
--- a/src/mess/drivers/primo.c
+++ b/src/mame/drivers/primo.c
@@ -379,4 +379,4 @@ COMP ( 1984, primoa64, primoa32, 0, primoa64, primo, primo_state, primo64, "
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" , GAME_NOT_WORKING)
+COMP ( 1984, primoc64, primoa32, 0, primoc64, primo, primo_state, primo64, "Microkey", "Primo C-64" , MACHINE_NOT_WORKING)
diff --git a/src/mess/drivers/pro80.c b/src/mame/drivers/pro80.c
index 9e209936a63..051a6da3a34 100644
--- a/src/mess/drivers/pro80.c
+++ b/src/mame/drivers/pro80.c
@@ -168,4 +168,4 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 1981, pro80, 0, 0, pro80, pro80, driver_device, 0, "Protec", "Pro-80", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1981, pro80, 0, 0, pro80, pro80, driver_device, 0, "Protec", "Pro-80", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/proconn.c b/src/mame/drivers/proconn.c
index b907aee0b7f..2b7fca581c5 100644
--- a/src/mame/drivers/proconn.c
+++ b/src/mame/drivers/proconn.c
@@ -1276,142 +1276,142 @@ DRIVER_INIT_MEMBER(proconn_state,proconn)
{
}
-GAME( 199?, pr_lday ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "'L' Of A Day (Project) (Cash set) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_ldaya ,pr_lday ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "'L' Of A Day (Project) (Token set) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_5xcsh ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "5x Cash (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_7hvn ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_7hvna ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (10GBP Jackpot) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_7hvnb ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (20p 6GBP Jackpot Version 114) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_7hvnc ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (10p 3GBP Jackpot Version 380) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_7hvnd ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (5p 3GBP Jackpot Version 105) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_7hvne ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (set 6) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_7hvnf ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (set 7) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_7hvng ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (set 8) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_7hvnh ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (set 9) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_7hvni ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (set 10) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_7hvnj ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (set 11) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_7hvnk ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (set 12) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_7hvnl ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (set 13) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_7hvnm ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (set 14) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_7hvnn ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (set 15) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_7hvno ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (set 16) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_7hvnp ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (set 17) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_7hvnq ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (set 18) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_7hvnr ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (set 19) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_7hvns ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (set 20) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_7hvnt ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (set 21) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_7hvnu ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (set 22) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, pr_alwy9 ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"PCP" , "Always Nine (Pcp) (set 1) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_alwy9a ,pr_alwy9 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"PCP" , "Always Nine (Pcp) (set 2) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_barbl ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Bars & Bells (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_batls ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Battleships (Project) (set 1) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_batlsa ,pr_batls ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Battleships (Project) (set 2) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_batlsb ,pr_batls ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Battleships (Project) (set 3) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_btwar ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Beat The Warden (Project) (set 1) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_btwara ,pr_btwar ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Beat The Warden (Project) (set 2) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_btwarb ,pr_btwar ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Beat The Warden (Project) (set 3) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_bigdp ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Big Dipper (Project) (set 1) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_bigdpa ,pr_bigdp ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Big Dipper (Project) (set 2) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_bulls ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Bullseye (Project) (set 1) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_bullsa ,pr_bulls ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Bullseye (Project) (set 2) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_bullsb ,pr_bulls ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Bullseye (Project) (set 3) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_bulbn ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Bully's Big Night (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_bulbna ,pr_bulbn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Bully's Big Night (Project) (set 1) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_bulbnb ,pr_bulbn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Bully's Big Night (Project) (set 2) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_buljp ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Bully's Jackpot (Project) (set 1) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_buljpa ,pr_buljp ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Bully's Jackpot (Project) (set 2) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_cashb ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Cash Back (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_cas7 ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Casino Jackpot 7s (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_chico ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Chico the Bandit (Project) (set 1) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_chicoa ,pr_chico ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Chico the Bandit (Project) (set 2) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_chicob ,pr_chico ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Chico the Bandit (Project) (set 3) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_coolm ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Cool Million (Project) (set 1) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_coolma ,pr_coolm ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Cool Million (Project) (set 2) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_coolmb ,pr_coolm ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Cool Million (Project) (set 3) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_crz77 ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Crazy 777s (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_crzbr ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Crazy Bars (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_supbr ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"PCP", "Super Bars (PCP) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, pr_coyot ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"PCP" , "Crazy Coyote (Pcp) (10p) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_coyota ,pr_coyot ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"PCP" , "Crazy Coyote (Pcp) (20p) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, pr_crzpy ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Crazy Pays (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_dblup ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Double Up (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_fire ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Fircecracker (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_flshc ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Flash The Cash (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_ftwhl ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Fortune Wheel (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_funrn ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Fun On The Run (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_gogld ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Go For Gold (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_gldnl ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Golden Nile (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_gldng ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Golden Nugget (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_gdft ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Good Fortune (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_happy ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Happy Days (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_heato ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "The Heat Is On (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_hiclm ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Hi Climber (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_hit6 ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Hit The Six (Project) (set 1) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_hit6a ,pr_hit6 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Hit The Six (Project) (set 2) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_hit6b ,pr_hit6 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Hit The Six (Project) (set 3) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_hotcs ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Hot Cash (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_hotsp ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Hot Spots (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_jkpt7 ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Jackpot 7's (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_jkrwd ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Jokers Wild (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_jumpj ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Jumping Jacks (Project) (set 1) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_jumpja ,pr_jumpj ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Jumping Jacks (Project) (set 2) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_medl ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Medalist (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_megmn ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Mega Money (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_nudxs ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Nudge XS (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_qksht ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Maygay", "Quickshot (Maygay) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_rags ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Rags To Riches (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_reflx ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Reflex (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_roadr ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Road Riot (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_roll ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "The Roll (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_sevab ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Seven's Above (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_sevml ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Sevens & Melons (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_theme ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Theme Park (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_ttrai ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Treasure Trail (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_trpx ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Triple X (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1999, pr_trktr ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Trick or Treat (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 1999, pr_trktp ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Trick or Treat (Protocol?) (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_walls ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Wall Street (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_whlft ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Wheel Of Fortune (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_wldkn ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Wild Kings (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_nifty ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Nifty Fifty (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_upnun ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Up & Under (Project) (PROCONN)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_sptb ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Pcp", "Simply the Best (Pcp) (PROCONN?)",GAME_IS_SKELETON_MECHANICAL ) // not 100% sure this belongs here
+GAME( 199?, pr_lday ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "'L' Of A Day (Project) (Cash set) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_ldaya ,pr_lday ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "'L' Of A Day (Project) (Token set) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_5xcsh ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "5x Cash (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_7hvn ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_7hvna ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (10GBP Jackpot) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_7hvnb ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (20p 6GBP Jackpot Version 114) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_7hvnc ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (10p 3GBP Jackpot Version 380) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_7hvnd ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (5p 3GBP Jackpot Version 105) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_7hvne ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (set 6) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_7hvnf ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (set 7) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_7hvng ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (set 8) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_7hvnh ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (set 9) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_7hvni ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (set 10) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_7hvnj ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (set 11) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_7hvnk ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (set 12) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_7hvnl ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (set 13) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_7hvnm ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (set 14) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_7hvnn ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (set 15) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_7hvno ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (set 16) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_7hvnp ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (set 17) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_7hvnq ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (set 18) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_7hvnr ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (set 19) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_7hvns ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (set 20) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_7hvnt ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (set 21) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_7hvnu ,pr_7hvn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "777 Heaven (Project) (set 22) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, pr_alwy9 ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"PCP" , "Always Nine (Pcp) (set 1) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_alwy9a ,pr_alwy9 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"PCP" , "Always Nine (Pcp) (set 2) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_barbl ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Bars & Bells (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_batls ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Battleships (Project) (set 1) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_batlsa ,pr_batls ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Battleships (Project) (set 2) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_batlsb ,pr_batls ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Battleships (Project) (set 3) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_btwar ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Beat The Warden (Project) (set 1) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_btwara ,pr_btwar ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Beat The Warden (Project) (set 2) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_btwarb ,pr_btwar ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Beat The Warden (Project) (set 3) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_bigdp ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Big Dipper (Project) (set 1) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_bigdpa ,pr_bigdp ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Big Dipper (Project) (set 2) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_bulls ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Bullseye (Project) (set 1) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_bullsa ,pr_bulls ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Bullseye (Project) (set 2) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_bullsb ,pr_bulls ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Bullseye (Project) (set 3) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_bulbn ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Bully's Big Night (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_bulbna ,pr_bulbn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Bully's Big Night (Project) (set 1) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_bulbnb ,pr_bulbn ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Bully's Big Night (Project) (set 2) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_buljp ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Bully's Jackpot (Project) (set 1) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_buljpa ,pr_buljp ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Bully's Jackpot (Project) (set 2) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_cashb ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Cash Back (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_cas7 ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Casino Jackpot 7s (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_chico ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Chico the Bandit (Project) (set 1) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_chicoa ,pr_chico ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Chico the Bandit (Project) (set 2) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_chicob ,pr_chico ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Chico the Bandit (Project) (set 3) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_coolm ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Cool Million (Project) (set 1) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_coolma ,pr_coolm ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Cool Million (Project) (set 2) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_coolmb ,pr_coolm ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Cool Million (Project) (set 3) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_crz77 ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Crazy 777s (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_crzbr ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Crazy Bars (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_supbr ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"PCP", "Super Bars (PCP) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, pr_coyot ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"PCP" , "Crazy Coyote (Pcp) (10p) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_coyota ,pr_coyot ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"PCP" , "Crazy Coyote (Pcp) (20p) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, pr_crzpy ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Crazy Pays (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_dblup ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Double Up (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_fire ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Fircecracker (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_flshc ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Flash The Cash (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_ftwhl ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Fortune Wheel (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_funrn ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Fun On The Run (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_gogld ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Go For Gold (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_gldnl ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Golden Nile (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_gldng ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Golden Nugget (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_gdft ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Good Fortune (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_happy ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Happy Days (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_heato ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "The Heat Is On (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_hiclm ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Hi Climber (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_hit6 ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Hit The Six (Project) (set 1) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_hit6a ,pr_hit6 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Hit The Six (Project) (set 2) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_hit6b ,pr_hit6 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Hit The Six (Project) (set 3) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_hotcs ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Hot Cash (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_hotsp ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Hot Spots (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_jkpt7 ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Jackpot 7's (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_jkrwd ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Jokers Wild (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_jumpj ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Jumping Jacks (Project) (set 1) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_jumpja ,pr_jumpj ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Jumping Jacks (Project) (set 2) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_medl ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Medalist (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_megmn ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Mega Money (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_nudxs ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Nudge XS (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_qksht ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Maygay", "Quickshot (Maygay) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_rags ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Rags To Riches (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_reflx ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Reflex (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_roadr ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Road Riot (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_roll ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "The Roll (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_sevab ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Seven's Above (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_sevml ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Sevens & Melons (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_theme ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Theme Park (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_ttrai ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Treasure Trail (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_trpx ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Triple X (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1999, pr_trktr ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Trick or Treat (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 1999, pr_trktp ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Trick or Treat (Protocol?) (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_walls ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Wall Street (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_whlft ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Wheel Of Fortune (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_wldkn ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Wild Kings (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_nifty ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Nifty Fifty (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_upnun ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Project", "Up & Under (Project) (PROCONN)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_sptb ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Pcp", "Simply the Best (Pcp) (PROCONN?)",MACHINE_IS_SKELETON_MECHANICAL ) // not 100% sure this belongs here
// Some of these are PC98 hardware.. I don't know how / if that differs
-GAME( 199?, pr_bears ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Bear Streak (set 1) (Coinworld)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_bearsa ,pr_bears ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Bear Streak (set 2) (Coinworld)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_bearsb ,pr_bears ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Bear Streak (set 3) (Coinworld)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_bearx ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Bear X (Version 2.3) (Coinworld)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_bearxa ,pr_bearx ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Bear X (Version 2.2) (Coinworld)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_bearxb ,pr_bearx ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Bear X (Version 1.3) (Coinworld)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_bearxc ,pr_bearx ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Bear X (20p set 1) (Coinworld)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_bearxd ,pr_bearx ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Bear X (20p set 2) (Coinworld)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_bearxe ,pr_bearx ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Bear X (10p set 1) (Coinworld)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_bearxf ,pr_bearx ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Bear X (10p set 2) (Coinworld)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_bearxg ,pr_bearx ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Bear X (10p set 3) (Coinworld)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_bearxh ,pr_bearx ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Bear X (10p set 4?) (Coinworld)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_bearxi ,pr_bearx ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Bear X (10p set 5) (Coinworld)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_bearxj ,pr_bearx ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Bear X (code 813) (Coinworld)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_bearxk ,pr_bearx ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Bear X (8GBP Token?) (Coinworld)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_bearxl ,pr_bearx ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Bear X (Version 41) (Coinworld)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_bearxlp ,pr_bearx ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Bear X (Version 41, Protocol) (Coinworld)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_bearxm ,pr_bearx ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Bear X (Version 31) (Coinworld)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, pr_fspot ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Fun Spot (Version 4.1) (Coinworld)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_fspota ,pr_fspot ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Fun Spot (Version 3.1) (Coinworld)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_fspotb ,pr_fspot ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Fun Spot (Version 2.1, set 1) (Coinworld)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_fspotc ,pr_fspot ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Fun Spot (Version 2.1, 20p stake, 82%) (Coinworld)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_fspotd ,pr_fspot ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Fun Spot (Version 2.1, 7 button) (Coinworld)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_fspote ,pr_fspot ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Fun Spot (Version 1.1, set 1) (Coinworld)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_fspotf ,pr_fspot ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Fun Spot (Version 1.1, 20p stake, 82%) (Coinworld)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_fspotg ,pr_fspot ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Fun Spot (Version 1.1, 6 button) (Coinworld)",GAME_IS_SKELETON_MECHANICAL )
-
-GAME( 199?, pr_gnuc ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Golden Nugget (Version 2.2) (Coinworld)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_gnuca ,pr_gnuc ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Golden Nugget (Version 1.2) (Coinworld)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_magln ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Magic Lines (Version 2.1) (Coinworld)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_maglna ,pr_magln ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Magic Lines (Version 1.1) (Coinworld)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_wnstk ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Winning Streak (Version 1.1) (Coinworld)",GAME_IS_SKELETON_MECHANICAL )
-GAME( 199?, pr_swop ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Ace", "Swop It (Ace)",GAME_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_bears ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Bear Streak (set 1) (Coinworld)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_bearsa ,pr_bears ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Bear Streak (set 2) (Coinworld)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_bearsb ,pr_bears ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Bear Streak (set 3) (Coinworld)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_bearx ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Bear X (Version 2.3) (Coinworld)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_bearxa ,pr_bearx ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Bear X (Version 2.2) (Coinworld)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_bearxb ,pr_bearx ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Bear X (Version 1.3) (Coinworld)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_bearxc ,pr_bearx ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Bear X (20p set 1) (Coinworld)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_bearxd ,pr_bearx ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Bear X (20p set 2) (Coinworld)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_bearxe ,pr_bearx ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Bear X (10p set 1) (Coinworld)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_bearxf ,pr_bearx ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Bear X (10p set 2) (Coinworld)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_bearxg ,pr_bearx ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Bear X (10p set 3) (Coinworld)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_bearxh ,pr_bearx ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Bear X (10p set 4?) (Coinworld)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_bearxi ,pr_bearx ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Bear X (10p set 5) (Coinworld)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_bearxj ,pr_bearx ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Bear X (code 813) (Coinworld)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_bearxk ,pr_bearx ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Bear X (8GBP Token?) (Coinworld)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_bearxl ,pr_bearx ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Bear X (Version 41) (Coinworld)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_bearxlp ,pr_bearx ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Bear X (Version 41, Protocol) (Coinworld)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_bearxm ,pr_bearx ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Bear X (Version 31) (Coinworld)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, pr_fspot ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Fun Spot (Version 4.1) (Coinworld)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_fspota ,pr_fspot ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Fun Spot (Version 3.1) (Coinworld)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_fspotb ,pr_fspot ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Fun Spot (Version 2.1, set 1) (Coinworld)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_fspotc ,pr_fspot ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Fun Spot (Version 2.1, 20p stake, 82%) (Coinworld)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_fspotd ,pr_fspot ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Fun Spot (Version 2.1, 7 button) (Coinworld)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_fspote ,pr_fspot ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Fun Spot (Version 1.1, set 1) (Coinworld)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_fspotf ,pr_fspot ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Fun Spot (Version 1.1, 20p stake, 82%) (Coinworld)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_fspotg ,pr_fspot ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Fun Spot (Version 1.1, 6 button) (Coinworld)",MACHINE_IS_SKELETON_MECHANICAL )
+
+GAME( 199?, pr_gnuc ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Golden Nugget (Version 2.2) (Coinworld)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_gnuca ,pr_gnuc ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Golden Nugget (Version 1.2) (Coinworld)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_magln ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Magic Lines (Version 2.1) (Coinworld)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_maglna ,pr_magln ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Magic Lines (Version 1.1) (Coinworld)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_wnstk ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Coinworld", "Winning Streak (Version 1.1) (Coinworld)",MACHINE_IS_SKELETON_MECHANICAL )
+GAME( 199?, pr_swop ,0 ,proconn ,proconn , proconn_state,proconn ,ROT0 ,"Ace", "Swop It (Ace)",MACHINE_IS_SKELETON_MECHANICAL )
diff --git a/src/mess/drivers/prof180x.c b/src/mame/drivers/prof180x.c
index 39ecd968d0a..7668ef88445 100644
--- a/src/mess/drivers/prof180x.c
+++ b/src/mame/drivers/prof180x.c
@@ -325,5 +325,5 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND )
-COMP( 1992, prof181x, prof180x,0, prof180x, prof180x, driver_device, 0, "Conitec Datensysteme", "PROF-181X", GAME_NOT_WORKING | GAME_NO_SOUND )
+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 )
diff --git a/src/mess/drivers/prof80.c b/src/mame/drivers/prof80.c
index 70f762127f0..c8e21f4d8fc 100644
--- a/src/mess/drivers/prof80.c
+++ b/src/mame/drivers/prof80.c
@@ -563,4 +563,4 @@ ROM_END
//**************************************************************************
// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS
-COMP( 1984, prof80, 0, 0, prof80, prof80, driver_device, 0, "Conitec Datensysteme", "PROF-80", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1984, prof80, 0, 0, prof80, prof80, driver_device, 0, "Conitec Datensysteme", "PROF-80", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/progolf.c b/src/mame/drivers/progolf.c
index 55f5a6b3088..8bb8b7a707c 100644
--- a/src/mame/drivers/progolf.c
+++ b/src/mame/drivers/progolf.c
@@ -514,6 +514,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)", GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+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 )
// 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)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/proteus3.c b/src/mame/drivers/proteus3.c
new file mode 100644
index 00000000000..dabf6d29957
--- /dev/null
+++ b/src/mame/drivers/proteus3.c
@@ -0,0 +1,408 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+/******************************************************************************
+
+ Proteus III computer.
+
+ 2015-10-02 Skeleton [Robbbert]
+
+ Chips:
+ 6800 @ 894kHz
+ 6850 (TTY keyboard interface)
+ 6850 (Cassette interface)
+ 6820 (PIA for Keyboard and video
+ 6844 DMA
+ MC14411 baud rate generator
+ CRT96364 CRTC @1008kHz
+
+ There's an undumped 74S287 prom (M24) in the video section.
+ It converts ascii control codes into the crtc control codes
+
+ Schematic has lots of errors and omissions.
+
+ Like many systems of the time, the cassette is grossly over-complicated,
+ using 12 chips for a standard Kansas-city interface. Speed = 600 baud.
+
+ To use the serial keyboard, type in the command: PORT#1
+ and to go back to the parallel keyboard type in: PORT#0
+
+ The Basic seems rather buggy and does odd things from time to time.
+ bios 0 doesn't seem to have any way to backspace and type over
+ bios 0 is the only one to have the EDIT command, although no idea how
+ to use it.
+ bios 2 is from a compatible system called "Micro Systemes 1", from the
+ same company.
+
+ To Do:
+ - Cassette (coded but too unreliable to be considered working)
+ - Add support for k7 cassette files.
+ - Need software
+ - Need missing PROM, so that all the CRTC controls can be emulated
+ - Keyboard may have its own CPU etc, but no info available.
+ - Missing buttons: BYE, PANIC, SPEED, HERE-IS. Could be more.
+ - Should be able to type in some low-res graphics from the keyboard, not implemented.
+
+******************************************************************************/
+
+#include "emu.h"
+#include "cpu/m6800/m6800.h"
+#include "machine/6821pia.h"
+#include "machine/6850acia.h"
+#include "machine/clock.h"
+#include "machine/keyboard.h"
+#include "imagedev/cassette.h"
+#include "sound/wave.h"
+#include "bus/rs232/rs232.h"
+
+
+class proteus3_state : public driver_device
+{
+public:
+ proteus3_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_acia1(*this, "acia1")
+ , m_acia2(*this, "acia2")
+ , m_cass(*this, "cassette")
+ { }
+
+ DECLARE_WRITE_LINE_MEMBER(ca2_w);
+ DECLARE_WRITE8_MEMBER(video_w);
+ DECLARE_WRITE8_MEMBER(kbd_put);
+ DECLARE_WRITE_LINE_MEMBER(acia1_txdata_w);
+ DECLARE_WRITE_LINE_MEMBER(acia1_clock_w);
+ DECLARE_WRITE_LINE_MEMBER(acia2_clock_w);
+ TIMER_DEVICE_CALLBACK_MEMBER(timer_c);
+ TIMER_DEVICE_CALLBACK_MEMBER(timer_p);
+ UINT32 screen_update_proteus3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+
+private:
+ UINT8 m_video_data;
+ UINT8 m_flashcnt;
+ UINT16 m_curs_pos;
+ UINT8 *m_p_chargen;
+ UINT8 *m_p_videoram;
+ UINT8 m_cass_data[4];
+ bool m_cass_state;
+ bool m_cassold;
+ UINT8 m_clockcnt;
+ virtual void machine_reset();
+ required_device<cpu_device> m_maincpu;
+ required_device<pia6821_device> m_pia;
+ required_device<acia6850_device> m_acia1; // cassette uart
+ required_device<acia6850_device> m_acia2; // tty keyboard uart
+ required_device<cassette_image_device> m_cass;
+};
+
+
+
+
+/******************************************************************************
+ Address Maps
+******************************************************************************/
+
+static ADDRESS_MAP_START(proteus3_mem, AS_PROGRAM, 8, proteus3_state)
+ ADDRESS_MAP_UNMAP_HIGH
+ AM_RANGE(0x0000, 0x7fff) AM_RAM
+ AM_RANGE(0x8004, 0x8007) AM_DEVREADWRITE("pia", pia6821_device, read, write)
+ AM_RANGE(0x8008, 0x8008) AM_DEVREADWRITE("acia1", acia6850_device, status_r, control_w) // cassette
+ AM_RANGE(0x8009, 0x8009) AM_DEVREADWRITE("acia1", acia6850_device, data_r, data_w)
+ AM_RANGE(0x8010, 0x8010) AM_DEVREADWRITE("acia2", acia6850_device, status_r, control_w) // serial keyboard
+ AM_RANGE(0x8011, 0x8011) AM_DEVREADWRITE("acia2", acia6850_device, data_r, data_w) // never writes data
+ AM_RANGE(0xc000, 0xffff) AM_ROM
+ADDRESS_MAP_END
+
+
+/******************************************************************************
+ Input Ports
+******************************************************************************/
+
+static INPUT_PORTS_START(proteus3)
+INPUT_PORTS_END
+
+WRITE8_MEMBER( proteus3_state::kbd_put )
+{
+ if (data == 0x08)
+ data = 0x0f; // take care of backspace (bios 1 and 2)
+ m_pia->portb_w(data);
+ m_pia->cb1_w(1);
+ m_pia->cb1_w(0);
+}
+
+WRITE_LINE_MEMBER( proteus3_state::acia2_clock_w )
+{
+ m_acia2->write_txc(state);
+ m_acia2->write_rxc(state);
+}
+
+/******************************************************************************
+ Cassette
+******************************************************************************/
+TIMER_DEVICE_CALLBACK_MEMBER( proteus3_state::timer_c )
+{
+ m_cass_data[3]++;
+
+ if (m_cass_state != m_cassold)
+ {
+ m_cass_data[3] = 0;
+ m_cassold = m_cass_state;
+ }
+
+ if (m_cass_state)
+ m_cass->output(BIT(m_cass_data[3], 0) ? -1.0 : +1.0); // 2400Hz
+ else
+ m_cass->output(BIT(m_cass_data[3], 1) ? -1.0 : +1.0); // 1200Hz
+}
+
+TIMER_DEVICE_CALLBACK_MEMBER( proteus3_state::timer_p )
+{
+ /* cassette - turn 1200/2400Hz to a bit */
+ m_cass_data[1]++;
+ UINT8 cass_ws = (m_cass->input() > +0.01) ? 1 : 0;
+
+ if (cass_ws != m_cass_data[0])
+ {
+ m_cass_data[0] = cass_ws;
+ m_acia1->write_rxd((m_cass_data[1] < 12) ? 1 : 0);
+ m_cass_data[1] = 0;
+ }
+}
+
+WRITE_LINE_MEMBER( proteus3_state::acia1_txdata_w )
+{
+ m_cass_state = state;
+}
+
+WRITE_LINE_MEMBER( proteus3_state::acia1_clock_w )
+{
+ m_clockcnt++;
+ m_acia1->write_txc(BIT(m_clockcnt, 0)); // divide by 16 selected in the acia
+ if ((m_clockcnt & 0x0f) == 0x04)
+ m_acia1->write_rxc(BIT(m_clockcnt, 4)); // divide by 1 selected
+}
+
+
+/******************************************************************************
+ Video
+******************************************************************************/
+WRITE8_MEMBER( proteus3_state::video_w )
+{
+ m_video_data = data;
+}
+
+WRITE_LINE_MEMBER( proteus3_state::ca2_w )
+{
+ if (state)
+ {
+ switch(m_video_data)
+ {
+ case 0x0a: // Line Feed
+ if (m_curs_pos > 959) // on bottom line?
+ {
+ memmove(m_p_videoram, m_p_videoram+64, 960); // scroll
+ memset(m_p_videoram+960, 0x20, 64); // blank bottom line
+ }
+ else
+ m_curs_pos += 64;
+ break;
+ case 0x0d: // Carriage Return
+ m_curs_pos &= 0x3c0;
+ break;
+ case 0x0c: // CLS
+ m_curs_pos = 0; // home cursor
+ memset(m_p_videoram, 0x20, 1024); // clear screen
+ break;
+ case 0x0f: // Cursor Left
+ if (m_curs_pos)
+ m_curs_pos--;
+ break;
+ case 0x7f: // Erase character under cursor
+ m_p_videoram[m_curs_pos] = 0x20;
+ break;
+ default: // If a displayable character, show it
+ if ((m_video_data > 0x1f) && (m_video_data < 0x7f))
+ {
+ m_p_videoram[m_curs_pos] = m_video_data;
+ m_curs_pos++;
+ if (m_curs_pos > 1023) // have we run off the bottom?
+ {
+ m_curs_pos -= 64;
+ memmove(m_p_videoram, m_p_videoram+64, 960); // scroll
+ memset(m_p_videoram+960, 0x20, 64); // blank bottom line
+ }
+ }
+ }
+ }
+}
+
+UINT32 proteus3_state::screen_update_proteus3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+{
+ UINT8 y,ra,chr,gfx;
+ UINT16 sy=0,ma=0,x;
+ m_flashcnt++;
+
+ for(y = 0; y < 16; y++ )
+ {
+ for (ra = 0; ra < 12; ra++)
+ {
+ UINT16 *p = &bitmap.pix16(sy++);
+
+ for (x = ma; x < ma + 64; x++)
+ {
+ gfx = 0;
+ if (ra < 8)
+ {
+ chr = m_p_videoram[x]; // get char in videoram
+ gfx = m_p_chargen[(chr<<3) | ra]; // get dot pattern in chargen
+ }
+ else
+ if ((ra == 9) && (m_curs_pos == x) && BIT(m_flashcnt, 4))
+ gfx = 0xff;
+
+ /* Display a scanline of a character */
+ *p++ = BIT(gfx, 0);
+ *p++ = BIT(gfx, 1);
+ *p++ = BIT(gfx, 2);
+ *p++ = BIT(gfx, 3);
+ *p++ = BIT(gfx, 4);
+ *p++ = BIT(gfx, 5);
+ *p++ = BIT(gfx, 6);
+ *p++ = BIT(gfx, 7);
+ }
+ }
+ ma+=64;
+ }
+ return 0;
+}
+
+
+/* F4 Character Displayer */
+static const gfx_layout charlayout =
+{
+ 8, 8, /* 8 x 8 characters */
+ 128, /* 128 characters */
+ 1, /* 1 bits per pixel */
+ { 0 }, /* no bitplanes */
+ /* x offsets */
+ { 7, 6, 5, 4, 3, 2, 1, 0 },
+ /* y offsets */
+ { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
+ 8*8 /* every char takes 8 bytes */
+};
+
+static GFXDECODE_START( proteus3 )
+ GFXDECODE_ENTRY( "chargen", 0, charlayout, 0, 1 )
+GFXDECODE_END
+
+
+void proteus3_state::machine_reset()
+{
+ m_p_chargen = memregion("chargen")->base();
+ m_p_videoram = memregion("vram")->base();
+ m_curs_pos = 0;
+ m_cass_data[0] = m_cass_data[1] = m_cass_data[2] = m_cass_data[3] = 0;
+ m_cass_state = 1;
+ m_cassold = 1;
+ m_acia1->write_rxd(1);
+}
+
+
+/******************************************************************************
+ Machine Drivers
+******************************************************************************/
+
+static MACHINE_CONFIG_START( proteus3, proteus3_state )
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", M6800, XTAL_3_579545MHz) /* Divided by 4 internally */
+ MCFG_CPU_PROGRAM_MAP(proteus3_mem)
+
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(50)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(200))
+ MCFG_SCREEN_SIZE(64*8, 16*12)
+ MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 16*12-1)
+ MCFG_SCREEN_UPDATE_DRIVER(proteus3_state, screen_update_proteus3)
+ MCFG_SCREEN_PALETTE("palette")
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", proteus3)
+ MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette")
+
+ /* Devices */
+ MCFG_DEVICE_ADD("pia", PIA6821, 0)
+ MCFG_PIA_WRITEPA_HANDLER(WRITE8(proteus3_state, video_w))
+ MCFG_PIA_CA2_HANDLER(WRITELINE(proteus3_state, ca2_w))
+ MCFG_PIA_IRQB_HANDLER(DEVWRITELINE("maincpu", m6800_cpu_device, irq_line))
+ MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0)
+ MCFG_GENERIC_KEYBOARD_CB(WRITE8(proteus3_state, kbd_put))
+
+ /* cassette */
+ MCFG_DEVICE_ADD ("acia1", ACIA6850, 0)
+ MCFG_ACIA6850_TXD_HANDLER(WRITELINE(proteus3_state, acia1_txdata_w))
+ MCFG_DEVICE_ADD("acia1_clock", CLOCK, 9600) // this controls cassette baud rate
+ MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(proteus3_state, acia1_clock_w))
+ MCFG_CASSETTE_ADD("cassette")
+ MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_PLAY | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED)
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_c", proteus3_state, timer_c, attotime::from_hz(4800))
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_p", proteus3_state, timer_p, attotime::from_hz(40000))
+
+ // optional tty keyboard
+ MCFG_DEVICE_ADD ("acia2", ACIA6850, 0)
+ MCFG_ACIA6850_TXD_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_txd))
+ MCFG_ACIA6850_RTS_HANDLER(DEVWRITELINE("rs232", rs232_port_device, write_rts))
+ MCFG_RS232_PORT_ADD("rs232", default_rs232_devices, "keyboard")
+ MCFG_RS232_RXD_HANDLER(DEVWRITELINE("acia2", acia6850_device, write_rxd))
+ MCFG_RS232_CTS_HANDLER(DEVWRITELINE("acia2", acia6850_device, write_cts))
+ MCFG_DEVICE_ADD("acia2_clock", CLOCK, 153600/8)
+ MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(proteus3_state, acia2_clock_w))
+MACHINE_CONFIG_END
+
+
+
+/******************************************************************************
+ ROM Definitions
+******************************************************************************/
+
+ROM_START(proteus3)
+ ROM_REGION(0x10000, "maincpu", 0)
+ ROM_SYSTEM_BIOS( 0, "14k", "14k BASIC")
+ ROMX_LOAD( "bas1.bin", 0xc800, 0x0800, CRC(016bf2d6) SHA1(89605dbede3b6fd101ee0548e5c545a0824fcfd3), ROM_BIOS(1) )
+ ROMX_LOAD( "bas2.bin", 0xd000, 0x0800, CRC(39d3e543) SHA1(dd0fe220e3c2a48ce84936301311cbe9f1597ca7), ROM_BIOS(1) )
+ ROMX_LOAD( "bas3.bin", 0xd800, 0x0800, CRC(3a41617d) SHA1(175406f4732389e226bc50d27ada39e6ea48de34), ROM_BIOS(1) )
+ ROMX_LOAD( "bas4.bin", 0xe000, 0x0800, CRC(ee9d77ee) SHA1(f7e60a1ab88a3accc8ffdc545657c071934d09d2), ROM_BIOS(1) )
+ ROMX_LOAD( "bas5.bin", 0xe800, 0x0800, CRC(bd81bb34) SHA1(6325735e5750a9536e63b67048f74711fae1fa42), ROM_BIOS(1) )
+ ROMX_LOAD( "bas6.bin", 0xf000, 0x0800, CRC(60cd006b) SHA1(28354f78490da1eb5116cbbc43eaca0670f7f398), ROM_BIOS(1) )
+ ROMX_LOAD( "bas7.bin", 0xf800, 0x0800, CRC(84c3dc22) SHA1(8fddba61b5f0270ca2daef32ab5edfd60300c776), ROM_BIOS(1) )
+ ROM_FILL( 0xc000, 1, 0 ) // if c000 isn't 0 it assumes a rom is there and jumps to it
+
+ ROM_SYSTEM_BIOS( 1, "8k", "8k BASIC")
+ ROMX_LOAD( "proteus3_basic8k.m0", 0xe000, 0x2000, CRC(7d9111c2) SHA1(3c032c9c7f87d22a1a9819b3b812be84404d2ad2), ROM_BIOS(2) )
+ ROM_RELOAD( 0xc000, 0x2000 )
+
+ ROM_SYSTEM_BIOS( 2, "8kms", "8k Micro-Systemes BASIC")
+ ROMX_LOAD( "ms1_basic8k.bin", 0xe000, 0x2000, CRC(b5476e28) SHA1(c8c2366d549b2645c740be4ab4237e05c3cab4a9), ROM_BIOS(3) )
+ ROM_RELOAD( 0xc000, 0x2000 )
+
+ ROM_REGION(0x400, "chargen", 0)
+ ROM_LOAD( "proteus3_font.m25", 0x0200, 0x0100, CRC(6a3a30a5) SHA1(ab39bf09722928483e497b87ac2dbd870828893b) )
+ ROM_CONTINUE( 0x100, 0x100 )
+ ROM_CONTINUE( 0x300, 0x100 )
+ ROM_CONTINUE( 0x000, 0x100 )
+
+ ROM_REGION(0x400, "vram", ROMREGION_ERASE00)
+
+ ROM_REGION(0x0800, "user1", 0) // roms not used yet
+ // Proteus III - pbug F800-FFFF, expects RAM at F000-F7FF
+ ROM_LOAD( "proteus3_pbug.bin", 0x0000, 0x0800, CRC(1118694d) SHA1(2dfc08d405e8f2936f5b0bd1c4007995151abbba) )
+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)
diff --git a/src/mame/drivers/psattack.c b/src/mame/drivers/psattack.c
index 3444ba5f5e6..4f78aceb8ad 100644
--- a/src/mame/drivers/psattack.c
+++ b/src/mame/drivers/psattack.c
@@ -216,4 +216,4 @@ DRIVER_INIT_MEMBER(psattack_state,psattack)
{
}
-GAME( 2004, psattack, 0, psattack, psattack, psattack_state, psattack, ROT0, "Uniana", "P's Attack", GAME_IS_SKELETON )
+GAME( 2004, psattack, 0, psattack, psattack, psattack_state, psattack, ROT0, "Uniana", "P's Attack", MACHINE_IS_SKELETON )
diff --git a/src/mame/drivers/pse.c b/src/mame/drivers/pse.c
index a1408b00c3c..16375d94db5 100644
--- a/src/mame/drivers/pse.c
+++ b/src/mame/drivers/pse.c
@@ -169,6 +169,6 @@ ROM_END
*/
-GAME( 1977, dpatrol, 0, pse, 0, driver_device, 0, ROT0, "Project Support Engineering", "Desert Patrol [TTL]", GAME_IS_SKELETON )
-//GAME( 1976, knightar, 0, pse, 0, driver_device, 0, ROT0, "Project Support Engineering", "Knights in Armor [TTL]", GAME_IS_SKELETON )
-//GAME( 1978, gametree, 0, pse, 0, driver_device, 0, ROT0, "Project Support Engineering", "Game Tree [TTL]", GAME_IS_SKELETON )
+GAME( 1977, dpatrol, 0, pse, 0, driver_device, 0, ROT0, "Project Support Engineering", "Desert Patrol [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( 1978, gametree, 0, pse, 0, driver_device, 0, ROT0, "Project Support Engineering", "Game Tree [TTL]", MACHINE_IS_SKELETON )
diff --git a/src/mame/drivers/psikyo.c b/src/mame/drivers/psikyo.c
index 6e1a6698924..d00b3fc596b 100644
--- a/src/mame/drivers/psikyo.c
+++ b/src/mame/drivers/psikyo.c
@@ -1992,22 +1992,22 @@ DRIVER_INIT_MEMBER(psikyo_state,s1945bl)
***************************************************************************/
-GAME( 1993, samuraia, 0, sngkace, samuraia, psikyo_state, sngkace, ROT270, "Psikyo", "Samurai Aces (World)", GAME_SUPPORTS_SAVE ) // Banpresto?
-GAME( 1993, sngkace, samuraia, sngkace, sngkace, psikyo_state, sngkace, ROT270, "Psikyo", "Sengoku Ace (Japan)", GAME_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)", MACHINE_SUPPORTS_SAVE ) // Banpresto?
-GAME( 1994, gunbird, 0, gunbird, gunbird, psikyo_state, gunbird, ROT270, "Psikyo", "Gunbird (World)", GAME_SUPPORTS_SAVE )
-GAME( 1994, gunbirdk, gunbird, gunbird, gunbirdj, psikyo_state, gunbird, ROT270, "Psikyo", "Gunbird (Korea)", GAME_SUPPORTS_SAVE )
-GAME( 1994, gunbirdj, gunbird, gunbird, gunbirdj, psikyo_state, gunbird, ROT270, "Psikyo", "Gunbird (Japan)", GAME_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", GAME_SUPPORTS_SAVE )
-GAME( 1994, btlkroadk, btlkroad,gunbird, btlkroad, psikyo_state, gunbird, ROT0, "Psikyo", "Battle K-Road (Korean PCB)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1995, s1945a, s1945, s1945, s1945a, psikyo_state, s1945a, ROT270, "Psikyo", "Strikers 1945 (Japan / World)", GAME_SUPPORTS_SAVE ) // Region dip - 0x0f=Japan, anything else=World
-GAME( 1995, s1945j, s1945, s1945, s1945j, psikyo_state, s1945j, ROT270, "Psikyo", "Strikers 1945 (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1995, s1945jn, s1945, gunbird, s1945j, psikyo_state, s1945jn, ROT270, "Psikyo", "Strikers 1945 (Japan, unprotected)", GAME_SUPPORTS_SAVE )
-GAME( 1995, s1945k, s1945, s1945, s1945j, psikyo_state, s1945, ROT270, "Psikyo", "Strikers 1945 (Korea)", GAME_SUPPORTS_SAVE )
-GAME( 1995, s1945bl, s1945, s1945bl, s1945bl, psikyo_state, s1945bl, ROT270, "bootleg","Strikers 1945 (Hong Kong, bootleg)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1996, tengaij, tengai, s1945, tengaij, psikyo_state, tengai, ROT0, "Psikyo", "Sengoku Blade: Sengoku Ace Episode II / Tengai", GAME_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.c b/src/mame/drivers/psikyo4.c
index e2fb6d99d12..17e0224ef35 100644
--- a/src/mame/drivers/psikyo4.c
+++ b/src/mame/drivers/psikyo4.c
@@ -910,11 +910,11 @@ 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)", GAME_SUPPORTS_SAVE )
-GAME( 1998, hgkairak, 0, ps4big, hotgmck, driver_device, 0, ROT0, "Psikyo", "Taisen Hot Gimmick Kairakuten (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1999, hotgmck3, 0, ps4big, hotgmck, driver_device, 0, ROT0, "Psikyo", "Taisen Hot Gimmick 3 Digital Surfing (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 2000, hotgm4ev, 0, ps4big, hotgmck, driver_device, 0, ROT0, "Psikyo", "Taisen Hot Gimmick 4 Ever (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 2001, hotgmcki, 0, ps4big, hotgmck, driver_device, 0, ROT0, "Psikyo", "Mahjong Hot Gimmick Integral (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 2000, loderndf, 0, ps4small, loderndf, driver_device, 0, ROT0, "Psikyo", "Lode Runner - The Dig Fight (ver. B)", GAME_SUPPORTS_SAVE )
-GAME( 2000, loderndfa,loderndf, ps4small, loderndf, driver_device, 0, ROT0, "Psikyo", "Lode Runner - The Dig Fight (ver. A)", GAME_SUPPORTS_SAVE )
-GAME( 2000, hotdebut, 0, ps4small, hotdebut, driver_device, 0, ROT0, "MOSS / Psikyo", "Quiz de Idol! Hot Debut (Japan)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/psikyosh.c b/src/mame/drivers/psikyosh.c
index 083a653e68d..ef28a63b065 100644
--- a/src/mame/drivers/psikyosh.c
+++ b/src/mame/drivers/psikyosh.c
@@ -541,7 +541,7 @@ static INPUT_PORTS_START( common )
PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_SERVICE1 )
PORT_SERVICE_NO_TOGGLE( 0x00000020, IP_ACTIVE_LOW )
- PORT_DIPNAME( 0x00000040, 0x00000040, "Debug" ) /* Debug stuff. Resets EEPROM? */
+ PORT_DIPNAME( 0x00000040, 0x00000040, "Tilt (Enables Debug Mode)" ) /* Debug stuff. Resets EEPROM? */
PORT_DIPSETTING( 0x00000040, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_UNKNOWN )
@@ -654,13 +654,9 @@ static INPUT_PORTS_START( s1945iii ) /* Different Region again */
PORT_BIT( 0x10000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read)
INPUT_PORTS_END
-static INPUT_PORTS_START( dragnblz ) /* Security requires bit high */
+static INPUT_PORTS_START( dragnblz )
PORT_INCLUDE( common )
-
- PORT_MODIFY("INPUTS")
- PORT_DIPNAME( 0x00000040, 0x00000000, "Debug" ) /* Must be HIGH (Or Security Error), so can perform test */
- PORT_DIPSETTING( 0x00000040, DEF_STR( Off ) )
- PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
+ /* If Debug is LOW then you can perform rom test and EEPROM security check is skipped, EEPROM doesn't reset */
PORT_START("JP4") /* jumper pads on the PCB */
PORT_DIPNAME( 0x03000000, 0x01000000, DEF_STR( Region ) )
@@ -710,7 +706,7 @@ static INPUT_PORTS_START( mjgtaste )
PORT_BIT( 0x00000010, IP_ACTIVE_LOW, IPT_SERVICE1 )
PORT_SERVICE_NO_TOGGLE( 0x00000020, IP_ACTIVE_LOW )
- PORT_DIPNAME( 0x00000040, 0x00000040, "Debug" ) /* Debug stuff. Resets EEPROM? */
+ PORT_DIPNAME( 0x00000040, 0x00000040, "Tilt (Enables Debug Mode)" ) /* Debug stuff. Resets EEPROM? */
PORT_DIPSETTING( 0x00000040, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00000000, DEF_STR( On ) )
@@ -1022,7 +1018,7 @@ ROM_START( dragnblz )
ROM_LOAD( "snd0.u52", 0x000000, 0x200000, CRC(7fd1b225) SHA1(6aa61021ada51393bbb34fd1aea00b8feccc8197) )
ROM_REGION( 0x100, "eeprom", 0 )
- ROM_LOAD( "eeprom-dragnblz.bin", 0x0000, 0x0100, CRC(70a8a3a6) SHA1(80ded1fce090b87b8c8b56f4fb74ef4e751b51d2) )
+ ROM_LOAD16_WORD_SWAP( "eeprom-dragnblz.u44", 0x0000, 0x0100, CRC(46e85da9) SHA1(673cf974fd23a20e6bfa7b2b234206d550011f54) )
ROM_END
/*
@@ -1098,7 +1094,7 @@ ROM_START( mjgtaste )
ROM_LOAD( "snd0.u52", 0x000000, 0x400000, CRC(0179f018) SHA1(16ae63e021230356777342ed902e02407a1a1b82) )
ROM_REGION( 0x100, "eeprom", 0 )
- ROM_LOAD( "eeprom-mjgtaste.bin", 0x0000, 0x0100, CRC(bbf7cfae) SHA1(34a36d5c4d273fc2a081a8f4062b45ee873eef09) )
+ ROM_LOAD16_WORD_SWAP( "eeprom-mjgtaste.u44", 0x0000, 0x0100, CRC(d35586f2) SHA1(ce26a82d760f87dccfc15468ac3d24efc258648d) )
ROM_END
ROM_START( tgm2 )
@@ -1192,19 +1188,19 @@ DRIVER_INIT_MEMBER(psikyosh_state,mjgtaste)
/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME FLAGS */
/* ps3-v1 */
-GAME( 1997, soldivid, 0, psikyo3v1, soldivid, psikyosh_state, ps3, ROT0, "Psikyo", "Sol Divide - The Sword Of Darkness", GAME_SUPPORTS_SAVE )
-GAME( 1997, s1945ii, 0, psikyo3v1, s1945ii, psikyosh_state, ps3, ROT270, "Psikyo", "Strikers 1945 II", GAME_SUPPORTS_SAVE )
-GAME( 1998, daraku, 0, psikyo3v1, daraku, psikyosh_state, ps3, ROT0, "Psikyo", "Daraku Tenshi - The Fallen Angels", GAME_SUPPORTS_SAVE )
-GAME( 1998, sbomber, 0, psikyo3v1, sbomberb, psikyosh_state, ps3, ROT270, "Psikyo", "Space Bomber (ver. B)", GAME_SUPPORTS_SAVE )
-GAME( 1998, sbombera, sbomber, psikyo3v1, sbomberb, psikyosh_state, ps3, ROT270, "Psikyo", "Space Bomber", GAME_SUPPORTS_SAVE )
+GAME( 1997, soldivid, 0, psikyo3v1, soldivid, psikyosh_state, ps3, ROT0, "Psikyo", "Sol Divide - The Sword Of Darkness", 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", GAME_SUPPORTS_SAVE )
-GAME( 1999, s1945iii, 0, psikyo5, s1945iii, psikyosh_state, ps5, ROT270, "Psikyo", "Strikers 1945 III (World) / Strikers 1999 (Japan)", GAME_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", GAME_SUPPORTS_SAVE )
-GAME( 2000, tgm2, 0, psikyo5_240, tgm2, psikyosh_state, ps5, ROT0, "Arika", "Tetris the Absolute The Grand Master 2", GAME_SUPPORTS_SAVE )
-GAME( 2000, tgm2p, tgm2, psikyo5_240, tgm2, psikyosh_state, ps5, ROT0, "Arika", "Tetris the Absolute The Grand Master 2 Plus", GAME_SUPPORTS_SAVE )
-GAME( 2001, gnbarich, 0, psikyo5, gnbarich, psikyosh_state, ps5, ROT270, "Psikyo", "Gunbarich", GAME_SUPPORTS_SAVE )
-GAME( 2002, mjgtaste, 0, psikyo5, mjgtaste, psikyosh_state, mjgtaste, ROT0, "Psikyo", "Mahjong G-Taste", GAME_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/mess/drivers/psion.c b/src/mame/drivers/psion.c
index effe246f0f2..741df4c3585 100644
--- a/src/mess/drivers/psion.c
+++ b/src/mame/drivers/psion.c
@@ -783,14 +783,14 @@ 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", GAME_NOT_WORKING)
-COMP( 1986, psioncm, 0, 0, psioncm, psion, driver_device, 0, "Psion", "Organiser II CM", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS)
-COMP( 1986, psionla, psioncm, 0, psionla, psion, driver_device, 0, "Psion", "Organiser II LA", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS)
-COMP( 1986, psionxp, psioncm, 0, psionla, psion, driver_device, 0, "Psion", "Organiser II XP", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS)
-COMP( 1986, psionp200, psioncm, 0, psionp350, psion, driver_device, 0, "Psion", "Organiser II P200", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS)
-COMP( 1986, psionp350, psioncm, 0, psionp350, psion, driver_device, 0, "Psion", "Organiser II P350", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS)
-COMP( 1986, psionlam, psioncm, 0, psionlam, psion, driver_device, 0, "Psion", "Organiser II LAM", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS)
-COMP( 1989, psionlz, 0, 0, psionlz, psion, driver_device, 0, "Psion", "Organiser II LZ", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS)
-COMP( 1989, psionlz64, psionlz, 0, psionlz, psion, driver_device, 0, "Psion", "Organiser II LZ64", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS)
-COMP( 1989, psionlz64s, psionlz, 0, psionlz, psion, driver_device, 0, "Psion", "Organiser II LZ64S", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS)
-COMP( 1989, psionp464, psionlz, 0, psionlz, psion, driver_device, 0, "Psion", "Organiser II P464", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS)
+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)
diff --git a/src/mess/drivers/psx.c b/src/mame/drivers/psx.c
index 0cf0318d43f..17f3d904a93 100644
--- a/src/mess/drivers/psx.c
+++ b/src/mame/drivers/psx.c
@@ -17,7 +17,6 @@
#include "imagedev/chd_cd.h"
#include "sound/spu.h"
#include "debugger.h"
-#include <zlib.h>
#include "machine/psxcd.h"
#include "bus/psx/ctlrport.h"
@@ -302,7 +301,7 @@ 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)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-CONS( 1995, pse, psj, 0, pse, 0, driver_device, 0, "Sony Computer Entertainment Inc", "Sony PlayStation (Europe)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-CONS( 1995, psu, psj, 0, psu, 0, driver_device, 0, "Sony Computer Entertainment Inc", "Sony PlayStation (USA)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-CONS( 1995, psa, psj, 0, psj, 0, driver_device, 0, "Sony Computer Entertainment Inc", "Sony PlayStation (Asia-Pacific)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
+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 )
diff --git a/src/mame/drivers/psychic5.c b/src/mame/drivers/psychic5.c
index c4201cd0c01..63353a90ef9 100644
--- a/src/mame/drivers/psychic5.c
+++ b/src/mame/drivers/psychic5.c
@@ -952,6 +952,6 @@ ROM_START( bombsa )
ROM_END
-GAME( 1987, psychic5, 0, psychic5, psychic5, driver_device, 0, ROT270, "Jaleco / NMK", "Psychic 5 (World)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1988, bombsa, 0, bombsa, bombsa, driver_device, 0, ROT270, "Jaleco", "Bombs Away", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
+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", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/pt68k4.c b/src/mame/drivers/pt68k4.c
index 0546a94c4fa..4a24667e873 100644
--- a/src/mess/drivers/pt68k4.c
+++ b/src/mame/drivers/pt68k4.c
@@ -487,5 +487,5 @@ 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", GAME_SUPPORTS_SAVE )
-COMP( 1990, pt68k4, 0, 0, pt68k4, pt68k4, driver_device, 0, "Peripheral Technology", "PT68K4", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/ptcsol.c b/src/mame/drivers/ptcsol.c
index bf3afcb02fd..bf3afcb02fd 100644
--- a/src/mess/drivers/ptcsol.c
+++ b/src/mame/drivers/ptcsol.c
diff --git a/src/mame/drivers/pturn.c b/src/mame/drivers/pturn.c
index 4971c2c04a8..a30db4e081e 100644
--- a/src/mame/drivers/pturn.c
+++ b/src/mame/drivers/pturn.c
@@ -572,4 +572,4 @@ DRIVER_INIT_MEMBER(pturn_state,pturn)
*/
}
-GAME( 1984, pturn, 0, pturn, pturn, pturn_state, pturn, ROT90, "Jaleco", "Parallel Turn", GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE )
+GAME( 1984, pturn, 0, pturn, pturn, pturn_state, pturn, ROT90, "Jaleco", "Parallel Turn", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/puckpkmn.c b/src/mame/drivers/puckpkmn.c
index 80149889308..e68e01cb1fd 100644
--- a/src/mame/drivers/puckpkmn.c
+++ b/src/mame/drivers/puckpkmn.c
@@ -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, "<unknown>", "Jue Zhan Tian Huang", GAME_IMPERFECT_SOUND )
+GAME( 2000, jzth, 0, jzth, jzth, md_boot_state, puckpkmn, ROT0, "<unknown>", "Jue Zhan Tian Huang", MACHINE_IMPERFECT_SOUND )
diff --git a/src/mess/drivers/pulsar.c b/src/mame/drivers/pulsar.c
index 609e17013e8..b44cc9c8e6a 100644
--- a/src/mess/drivers/pulsar.c
+++ b/src/mame/drivers/pulsar.c
@@ -260,4 +260,4 @@ 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", GAME_NO_SOUND_HW)
+COMP( 1981, pulsarlb, 0, 0, pulsar, pulsar, pulsar_state, pulsar, "Pulsar", "Little Big Board", MACHINE_NO_SOUND_HW)
diff --git a/src/mess/drivers/pv1000.c b/src/mame/drivers/pv1000.c
index 636a2fd328d..7ba26775c81 100644
--- a/src/mess/drivers/pv1000.c
+++ b/src/mame/drivers/pv1000.c
@@ -175,7 +175,6 @@ public:
required_shared_ptr<UINT8> m_p_videoram;
virtual void machine_start();
virtual void machine_reset();
- DECLARE_PALETTE_INIT(pv1000);
UINT32 screen_update_pv1000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TIMER_CALLBACK_MEMBER(d65010_irq_on_cb);
TIMER_CALLBACK_MEMBER(d65010_irq_off_cb);
@@ -304,13 +303,6 @@ static INPUT_PORTS_START( pv1000 )
INPUT_PORTS_END
-PALETTE_INIT_MEMBER(pv1000_state, pv1000)
-{
- for (int i = 0; i < 8; i++)
- palette.set_pen_color(i, pal1bit(i >> 2), pal1bit(i >> 1), pal1bit(i >> 0));
-}
-
-
DEVICE_IMAGE_LOAD_MEMBER( pv1000_state, pv1000_cart )
{
UINT32 size = m_cart->common_get_size("rom");
@@ -462,8 +454,7 @@ static MACHINE_CONFIG_START( pv1000, pv1000_state )
MCFG_SCREEN_UPDATE_DRIVER(pv1000_state, screen_update_pv1000)
MCFG_SCREEN_PALETTE("palette")
- MCFG_PALETTE_ADD( "palette", 8 )
- MCFG_PALETTE_INIT_OWNER(pv1000_state, pv1000)
+ MCFG_PALETTE_ADD_3BIT_BGR("palette")
MCFG_GFXDECODE_ADD("gfxdecode", "palette", pv1000 )
@@ -488,4 +479,4 @@ 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", GAME_SUPPORTS_SAVE )
+CONS( 1983, pv1000, 0, 0, pv1000, pv1000, driver_device, 0, "Casio", "PV-1000", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/pv2000.c b/src/mame/drivers/pv2000.c
index 64432acb994..a0084f36143 100644
--- a/src/mess/drivers/pv2000.c
+++ b/src/mame/drivers/pv2000.c
@@ -425,4 +425,4 @@ 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", GAME_NOT_WORKING )
+CONS( 1983, pv2000, 0, 0, pv2000, pv2000, driver_device, 0, "Casio", "PV-2000", MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/pv9234.c b/src/mame/drivers/pv9234.c
index 102ef4521f3..339492d7874 100644
--- a/src/mess/drivers/pv9234.c
+++ b/src/mame/drivers/pv9234.c
@@ -167,4 +167,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+SYST( 1997, pv9234, 0, 0, pv9234, pv9234, driver_device, 0, "Scientific Atlanta", "PowerVu D9234", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/pve500.c b/src/mame/drivers/pve500.c
index 6b7ae2ac1e0..9bc202d51e1 100644
--- a/src/mess/drivers/pve500.c
+++ b/src/mame/drivers/pve500.c
@@ -438,4 +438,4 @@ ROM_START( pve500 )
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", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS)
+COMP( 1995, pve500, 0, 0, pve500, pve500, pve500_state, pve500, "SONY", "PVE-500", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS)
diff --git a/src/mess/drivers/px4.c b/src/mame/drivers/px4.c
index 7a07a87e46a..7a07a87e46a 100644
--- a/src/mess/drivers/px4.c
+++ b/src/mame/drivers/px4.c
diff --git a/src/mess/drivers/px8.c b/src/mame/drivers/px8.c
index 2e797174b5b..9557c46c2a9 100644
--- a/src/mess/drivers/px8.c
+++ b/src/mame/drivers/px8.c
@@ -835,4 +835,4 @@ ROM_END
***************************************************************************/
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 1984, px8, 0, 0, px8, px8, driver_device, 0, "Epson", "PX-8", GAME_NOT_WORKING )
+COMP( 1984, px8, 0, 0, px8, px8, driver_device, 0, "Epson", "PX-8", MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/pyl601.c b/src/mame/drivers/pyl601.c
index 3073d635e20..3073d635e20 100644
--- a/src/mess/drivers/pyl601.c
+++ b/src/mame/drivers/pyl601.c
diff --git a/src/mame/drivers/pyson.c b/src/mame/drivers/pyson.c
index dfc36d4f31f..b4c51157db2 100644
--- a/src/mame/drivers/pyson.c
+++ b/src/mame/drivers/pyson.c
@@ -250,6 +250,6 @@ ROM_START( wswe2k3 )
ROM_END
-GAME(2002, pyson, 0, pyson, pyson, driver_device, 0, ROT0, "Konami", "Konami Pyson BIOS", GAME_IS_SKELETON|GAME_IS_BIOS_ROOT)
-GAME(2002, wswe, pyson, pyson, pyson, driver_device, 0, ROT0, "Konami", "World Soccer Winning Eleven Arcade Game Style", GAME_IS_SKELETON)
-GAME(2003, wswe2k3, pyson, pyson, pyson, driver_device, 0, ROT0, "Konami", "World Soccer Winning Eleven Arcade Game 2003", GAME_IS_SKELETON)
+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)
diff --git a/src/mame/drivers/pzletime.c b/src/mame/drivers/pzletime.c
index 943a10aef0c..72d5e3ac1ed 100644
--- a/src/mame/drivers/pzletime.c
+++ b/src/mame/drivers/pzletime.c
@@ -46,7 +46,6 @@ public:
required_shared_ptr<UINT16> m_mid_videoram;
required_shared_ptr<UINT16> m_txt_videoram;
required_shared_ptr<UINT16> m_spriteram;
-// UINT16 * m_paletteram; // currently this uses generic palette handling
/* video-related */
tilemap_t *m_mid_tilemap;
@@ -400,4 +399,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)", GAME_SUPPORTS_SAVE )
+GAME( 199?, pzletime, 0, pzletime, pzletime, driver_device, 0, ROT0, "Elettronica Video-Games S.R.L.", "Puzzle Time (prototype)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/qix.c b/src/mame/drivers/qix.c
index 8f8ba532c8d..366bfe84094 100644
--- a/src/mame/drivers/qix.c
+++ b/src/mame/drivers/qix.c
@@ -1006,98 +1006,98 @@ ROM_START( kram3 )
ROM_END
-ROM_START( zookeep )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "za12", 0x8000, 0x1000, CRC(4e40d8dc) SHA1(dd7923dcb55a2a1ae0f2029caf5a8904a9ebe8b1) )
- ROM_LOAD( "za13", 0x9000, 0x1000, CRC(eebd5248) SHA1(ebe7f8c436bfefa4236f603fbcbd38d2f4cfd2bd) )
- ROM_LOAD( "za14", 0xa000, 0x1000, CRC(fab43297) SHA1(daa5a780bc9f171da0f6db5319b1519caa09c6c9) )
- ROM_LOAD( "za15", 0xb000, 0x1000, CRC(ef8cd67c) SHA1(f3a2e12ccfa45eb77c2a6e0d9cc0601b99273fd3) )
- ROM_LOAD( "za16", 0xc000, 0x1000, CRC(ccfc15bc) SHA1(56ac6e89825fcde9cf7aeb5d0765a02f5474174a) )
- ROM_LOAD( "za17", 0xd000, 0x1000, CRC(358013f4) SHA1(dd3fae69bf460f89c71e7c78d229dd86605c5950) )
- ROM_LOAD( "za18", 0xe000, 0x1000, CRC(37886afe) SHA1(a0cc902b2d253466e21c4fbf9d3339069fe79ebe) )
- ROM_LOAD( "za19", 0xf000, 0x1000, CRC(bbfb30d9) SHA1(bc6bd5525b159bee7b08b6967cd3088b7bd10fee) )
-
- ROM_REGION( 0x12000, "videocpu", 0 )
- ROM_LOAD( "za5", 0x0a000, 0x1000, CRC(dc0c3cbd) SHA1(8335cd91bbacc680a3a98a5242d4cb5a6f61b2b5) )
- ROM_LOAD( "za3", 0x10000, 0x1000, CRC(cc4d0aee) SHA1(05c0025e96b432088b46100051a2c780e46b7457) )
- ROM_LOAD( "za6", 0x0b000, 0x1000, CRC(27c787dd) SHA1(1142790d875573d0c39d846aba4b06946fd2bc88) )
- ROM_LOAD( "za4", 0x11000, 0x1000, CRC(ec3b10b1) SHA1(44303ab923d776052ca4d2d09a6a4315d67adc4b) )
-
- ROM_LOAD( "za7", 0x0c000, 0x1000, CRC(1479f480) SHA1(bd0e9eead0f1213eb3b9653c73257bc704346ab0) )
- ROM_LOAD( "za8", 0x0d000, 0x1000, CRC(4c96cdb2) SHA1(67e506462317d882c4e5c2e16318411d4958ac63) )
- ROM_LOAD( "za9", 0x0e000, 0x1000, CRC(a4f7d9e0) SHA1(a958b4d305bb397aa46d8fdab9dc7e472237ca11) )
- ROM_LOAD( "za10", 0x0f000, 0x1000, CRC(05df1a5a) SHA1(30797838c25cca038023c188cd9fa45277c4190d) )
-
- ROM_REGION( 0x10000, "audiocpu", 0 )
- ROM_LOAD( "za25", 0xd000, 0x1000, CRC(779b8558) SHA1(7312e63c23d92c9c52e93cc445a718bc8fe35a0a) )
- ROM_LOAD( "za26", 0xe000, 0x1000, CRC(60a810ce) SHA1(d97e5acea0ef1c208f8e5e95024c83dd6bc9b028) )
- ROM_LOAD( "za27", 0xf000, 0x1000, CRC(99ed424e) SHA1(e4e543dcb77f153aeb78904d11b95381d039299e) )
-
- ROM_REGION( 0x0800, "mcu", 0 )
+ROM_START( zookeep ) // note on the zookeeper boardset Taito USA made very sure that every ROM has the same name as the socket it is in!
+ ROM_REGION( 0x10000, "maincpu", 0 ) // roms on the 'SDU board'
+ ROM_LOAD( "za12.u12", 0x8000, 0x1000, CRC(4e40d8dc) SHA1(dd7923dcb55a2a1ae0f2029caf5a8904a9ebe8b1) )
+ ROM_LOAD( "za13.u13", 0x9000, 0x1000, CRC(eebd5248) SHA1(ebe7f8c436bfefa4236f603fbcbd38d2f4cfd2bd) )
+ ROM_LOAD( "za14.u14", 0xa000, 0x1000, CRC(fab43297) SHA1(daa5a780bc9f171da0f6db5319b1519caa09c6c9) )
+ ROM_LOAD( "za15.u15", 0xb000, 0x1000, CRC(ef8cd67c) SHA1(f3a2e12ccfa45eb77c2a6e0d9cc0601b99273fd3) )
+ ROM_LOAD( "za16.u16", 0xc000, 0x1000, CRC(ccfc15bc) SHA1(56ac6e89825fcde9cf7aeb5d0765a02f5474174a) )
+ ROM_LOAD( "za17.u17", 0xd000, 0x1000, CRC(358013f4) SHA1(dd3fae69bf460f89c71e7c78d229dd86605c5950) )
+ ROM_LOAD( "za18.u18", 0xe000, 0x1000, CRC(37886afe) SHA1(a0cc902b2d253466e21c4fbf9d3339069fe79ebe) )
+ ROM_LOAD( "za19.u19", 0xf000, 0x1000, CRC(bbfb30d9) SHA1(bc6bd5525b159bee7b08b6967cd3088b7bd10fee) )
+
+ ROM_REGION( 0x12000, "videocpu", 0 ) // roms on the 08-00112-001 'video rom expansion' PCB
+ ROM_LOAD( "za5.u5", 0x0a000, 0x1000, CRC(dc0c3cbd) SHA1(8335cd91bbacc680a3a98a5242d4cb5a6f61b2b5) )
+ ROM_LOAD( "za3.u3", 0x10000, 0x1000, CRC(cc4d0aee) SHA1(05c0025e96b432088b46100051a2c780e46b7457) )
+ ROM_LOAD( "za6.u6", 0x0b000, 0x1000, CRC(27c787dd) SHA1(1142790d875573d0c39d846aba4b06946fd2bc88) )
+ ROM_LOAD( "za4.u4", 0x11000, 0x1000, CRC(ec3b10b1) SHA1(44303ab923d776052ca4d2d09a6a4315d67adc4b) )
+
+ ROM_LOAD( "za7.u7", 0x0c000, 0x1000, CRC(1479f480) SHA1(bd0e9eead0f1213eb3b9653c73257bc704346ab0) )
+ ROM_LOAD( "za8.u8", 0x0d000, 0x1000, CRC(4c96cdb2) SHA1(67e506462317d882c4e5c2e16318411d4958ac63) )
+ ROM_LOAD( "za9.u9", 0x0e000, 0x1000, CRC(a4f7d9e0) SHA1(a958b4d305bb397aa46d8fdab9dc7e472237ca11) )
+ ROM_LOAD( "za10.u10", 0x0f000, 0x1000, CRC(05df1a5a) SHA1(30797838c25cca038023c188cd9fa45277c4190d) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) // roms on the 'SDU board'
+ ROM_LOAD( "za25.u25", 0xd000, 0x1000, CRC(779b8558) SHA1(7312e63c23d92c9c52e93cc445a718bc8fe35a0a) )
+ ROM_LOAD( "za26.u26", 0xe000, 0x1000, CRC(60a810ce) SHA1(d97e5acea0ef1c208f8e5e95024c83dd6bc9b028) )
+ ROM_LOAD( "za27.u27", 0xf000, 0x1000, CRC(99ed424e) SHA1(e4e543dcb77f153aeb78904d11b95381d039299e) )
+
+ ROM_REGION( 0x0800, "mcu", 0 ) // mc68705p3, this is on its own pcb between the coin inputs and the main pcb
ROM_LOAD( "za_coin.bin", 0x0000, 0x0800, CRC(364d3557) SHA1(049d0759750c576187053306e07984b1e5877df7) )
ROM_END
ROM_START( zookeep2 )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "za12", 0x8000, 0x1000, CRC(4e40d8dc) SHA1(dd7923dcb55a2a1ae0f2029caf5a8904a9ebe8b1) )
- ROM_LOAD( "za13", 0x9000, 0x1000, CRC(eebd5248) SHA1(ebe7f8c436bfefa4236f603fbcbd38d2f4cfd2bd) )
- ROM_LOAD( "za14", 0xa000, 0x1000, CRC(fab43297) SHA1(daa5a780bc9f171da0f6db5319b1519caa09c6c9) )
- ROM_LOAD( "za15", 0xb000, 0x1000, CRC(ef8cd67c) SHA1(f3a2e12ccfa45eb77c2a6e0d9cc0601b99273fd3) )
- ROM_LOAD( "za16", 0xc000, 0x1000, CRC(ccfc15bc) SHA1(56ac6e89825fcde9cf7aeb5d0765a02f5474174a) )
- ROM_LOAD( "za17", 0xd000, 0x1000, CRC(358013f4) SHA1(dd3fae69bf460f89c71e7c78d229dd86605c5950) )
- ROM_LOAD( "za18", 0xe000, 0x1000, CRC(37886afe) SHA1(a0cc902b2d253466e21c4fbf9d3339069fe79ebe) )
- ROM_LOAD( "za19.red", 0xf000, 0x1000, CRC(ec01760e) SHA1(169ab9d3a0abe325d960f9ed358258b3d6fcd4be) )
-
- ROM_REGION( 0x12000, "videocpu", 0 )
- ROM_LOAD( "za5", 0x0a000, 0x1000, CRC(dc0c3cbd) SHA1(8335cd91bbacc680a3a98a5242d4cb5a6f61b2b5) )
- ROM_LOAD( "za3", 0x10000, 0x1000, CRC(cc4d0aee) SHA1(05c0025e96b432088b46100051a2c780e46b7457) )
- ROM_LOAD( "za6", 0x0b000, 0x1000, CRC(27c787dd) SHA1(1142790d875573d0c39d846aba4b06946fd2bc88) )
- ROM_LOAD( "za4", 0x11000, 0x1000, CRC(ec3b10b1) SHA1(44303ab923d776052ca4d2d09a6a4315d67adc4b) )
-
- ROM_LOAD( "za7", 0x0c000, 0x1000, CRC(1479f480) SHA1(bd0e9eead0f1213eb3b9653c73257bc704346ab0) )
- ROM_LOAD( "za8", 0x0d000, 0x1000, CRC(4c96cdb2) SHA1(67e506462317d882c4e5c2e16318411d4958ac63) )
- ROM_LOAD( "za9", 0x0e000, 0x1000, CRC(a4f7d9e0) SHA1(a958b4d305bb397aa46d8fdab9dc7e472237ca11) )
- ROM_LOAD( "za10", 0x0f000, 0x1000, CRC(05df1a5a) SHA1(30797838c25cca038023c188cd9fa45277c4190d) )
-
- ROM_REGION( 0x10000, "audiocpu", 0 )
- ROM_LOAD( "za25", 0xd000, 0x1000, CRC(779b8558) SHA1(7312e63c23d92c9c52e93cc445a718bc8fe35a0a) )
- ROM_LOAD( "za26", 0xe000, 0x1000, CRC(60a810ce) SHA1(d97e5acea0ef1c208f8e5e95024c83dd6bc9b028) )
- ROM_LOAD( "za27", 0xf000, 0x1000, CRC(99ed424e) SHA1(e4e543dcb77f153aeb78904d11b95381d039299e) )
-
- ROM_REGION( 0x0800, "mcu", 0 )
+ ROM_REGION( 0x10000, "maincpu", 0 ) // roms on the 'SDU board'
+ ROM_LOAD( "za12.u12", 0x8000, 0x1000, CRC(4e40d8dc) SHA1(dd7923dcb55a2a1ae0f2029caf5a8904a9ebe8b1) )
+ ROM_LOAD( "za13.u13", 0x9000, 0x1000, CRC(eebd5248) SHA1(ebe7f8c436bfefa4236f603fbcbd38d2f4cfd2bd) )
+ ROM_LOAD( "za14.u14", 0xa000, 0x1000, CRC(fab43297) SHA1(daa5a780bc9f171da0f6db5319b1519caa09c6c9) )
+ ROM_LOAD( "za15.u15", 0xb000, 0x1000, CRC(ef8cd67c) SHA1(f3a2e12ccfa45eb77c2a6e0d9cc0601b99273fd3) )
+ ROM_LOAD( "za16.u16", 0xc000, 0x1000, CRC(ccfc15bc) SHA1(56ac6e89825fcde9cf7aeb5d0765a02f5474174a) )
+ ROM_LOAD( "za17.u17", 0xd000, 0x1000, CRC(358013f4) SHA1(dd3fae69bf460f89c71e7c78d229dd86605c5950) )
+ ROM_LOAD( "za18.u18", 0xe000, 0x1000, CRC(37886afe) SHA1(a0cc902b2d253466e21c4fbf9d3339069fe79ebe) )
+ ROM_LOAD( "za19.red.u19", 0xf000, 0x1000, CRC(ec01760e) SHA1(169ab9d3a0abe325d960f9ed358258b3d6fcd4be) ) // ?updated? rom?
+
+ ROM_REGION( 0x12000, "videocpu", 0 ) // roms on the 08-00112-001 'video rom expansion' PCB
+ ROM_LOAD( "za5.u5", 0x0a000, 0x1000, CRC(dc0c3cbd) SHA1(8335cd91bbacc680a3a98a5242d4cb5a6f61b2b5) )
+ ROM_LOAD( "za3.u3", 0x10000, 0x1000, CRC(cc4d0aee) SHA1(05c0025e96b432088b46100051a2c780e46b7457) )
+ ROM_LOAD( "za6.u6", 0x0b000, 0x1000, CRC(27c787dd) SHA1(1142790d875573d0c39d846aba4b06946fd2bc88) )
+ ROM_LOAD( "za4.u4", 0x11000, 0x1000, CRC(ec3b10b1) SHA1(44303ab923d776052ca4d2d09a6a4315d67adc4b) )
+
+ ROM_LOAD( "za7.u7", 0x0c000, 0x1000, CRC(1479f480) SHA1(bd0e9eead0f1213eb3b9653c73257bc704346ab0) )
+ ROM_LOAD( "za8.u8", 0x0d000, 0x1000, CRC(4c96cdb2) SHA1(67e506462317d882c4e5c2e16318411d4958ac63) )
+ ROM_LOAD( "za9.u9", 0x0e000, 0x1000, CRC(a4f7d9e0) SHA1(a958b4d305bb397aa46d8fdab9dc7e472237ca11) )
+ ROM_LOAD( "za10.u10", 0x0f000, 0x1000, CRC(05df1a5a) SHA1(30797838c25cca038023c188cd9fa45277c4190d) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) // roms on the 'SDU board'
+ ROM_LOAD( "za25.u25", 0xd000, 0x1000, CRC(779b8558) SHA1(7312e63c23d92c9c52e93cc445a718bc8fe35a0a) )
+ ROM_LOAD( "za26.u26", 0xe000, 0x1000, CRC(60a810ce) SHA1(d97e5acea0ef1c208f8e5e95024c83dd6bc9b028) )
+ ROM_LOAD( "za27.u27", 0xf000, 0x1000, CRC(99ed424e) SHA1(e4e543dcb77f153aeb78904d11b95381d039299e) )
+
+ ROM_REGION( 0x0800, "mcu", 0 ) // mc68705p3, this is on its own pcb between the coin inputs and the main pcb
ROM_LOAD( "za_coin.bin", 0x0000, 0x0800, CRC(364d3557) SHA1(049d0759750c576187053306e07984b1e5877df7) )
ROM_END
ROM_START( zookeep3 )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "za12", 0x8000, 0x1000, CRC(4e40d8dc) SHA1(dd7923dcb55a2a1ae0f2029caf5a8904a9ebe8b1) )
- ROM_LOAD( "za13", 0x9000, 0x1000, CRC(eebd5248) SHA1(ebe7f8c436bfefa4236f603fbcbd38d2f4cfd2bd) )
- ROM_LOAD( "za14", 0xa000, 0x1000, CRC(fab43297) SHA1(daa5a780bc9f171da0f6db5319b1519caa09c6c9) )
- ROM_LOAD( "za15", 0xb000, 0x1000, CRC(ef8cd67c) SHA1(f3a2e12ccfa45eb77c2a6e0d9cc0601b99273fd3) )
- ROM_LOAD( "za16", 0xc000, 0x1000, CRC(ccfc15bc) SHA1(56ac6e89825fcde9cf7aeb5d0765a02f5474174a) )
- ROM_LOAD( "za17", 0xd000, 0x1000, CRC(358013f4) SHA1(dd3fae69bf460f89c71e7c78d229dd86605c5950) )
- ROM_LOAD( "za18", 0xe000, 0x1000, CRC(37886afe) SHA1(a0cc902b2d253466e21c4fbf9d3339069fe79ebe) )
- ROM_LOAD( "za19", 0xf000, 0x1000, CRC(bbfb30d9) SHA1(bc6bd5525b159bee7b08b6967cd3088b7bd10fee) )
-
- ROM_REGION( 0x12000, "videocpu", 0 )
- ROM_LOAD( "za5", 0x0a000, 0x1000, CRC(dc0c3cbd) SHA1(8335cd91bbacc680a3a98a5242d4cb5a6f61b2b5) )
- ROM_LOAD( "za3", 0x10000, 0x1000, CRC(cc4d0aee) SHA1(05c0025e96b432088b46100051a2c780e46b7457) )
- ROM_LOAD( "za6", 0x0b000, 0x1000, CRC(27c787dd) SHA1(1142790d875573d0c39d846aba4b06946fd2bc88) )
- ROM_LOAD( "za4", 0x11000, 0x1000, CRC(ec3b10b1) SHA1(44303ab923d776052ca4d2d09a6a4315d67adc4b) )
-
- ROM_LOAD( "za7", 0x0c000, 0x1000, CRC(1479f480) SHA1(bd0e9eead0f1213eb3b9653c73257bc704346ab0) )
- ROM_LOAD( "za8", 0x0d000, 0x1000, CRC(4c96cdb2) SHA1(67e506462317d882c4e5c2e16318411d4958ac63) )
- ROM_LOAD( "zv35.9", 0x0e000, 0x1000, CRC(d14123b7) SHA1(5d35bffd2203225937bb83598ffdc31a46a1dbca) )
- ROM_LOAD( "zv36.10", 0x0f000, 0x1000, CRC(23705777) SHA1(952cd8d9ee00268bff2022b2428b1dbfab061254) )
-
- ROM_REGION( 0x10000, "audiocpu", 0 )
- ROM_LOAD( "za25", 0xd000, 0x1000, CRC(779b8558) SHA1(7312e63c23d92c9c52e93cc445a718bc8fe35a0a) )
- ROM_LOAD( "za26", 0xe000, 0x1000, CRC(60a810ce) SHA1(d97e5acea0ef1c208f8e5e95024c83dd6bc9b028) )
- ROM_LOAD( "za27", 0xf000, 0x1000, CRC(99ed424e) SHA1(e4e543dcb77f153aeb78904d11b95381d039299e) )
-
- ROM_REGION( 0x0800, "mcu", 0 )
+ ROM_REGION( 0x10000, "maincpu", 0 ) // roms on the 'SDU board'
+ ROM_LOAD( "za12.u12", 0x8000, 0x1000, CRC(4e40d8dc) SHA1(dd7923dcb55a2a1ae0f2029caf5a8904a9ebe8b1) )
+ ROM_LOAD( "za13.u13", 0x9000, 0x1000, CRC(eebd5248) SHA1(ebe7f8c436bfefa4236f603fbcbd38d2f4cfd2bd) )
+ ROM_LOAD( "za14.u14", 0xa000, 0x1000, CRC(fab43297) SHA1(daa5a780bc9f171da0f6db5319b1519caa09c6c9) )
+ ROM_LOAD( "za15.u15", 0xb000, 0x1000, CRC(ef8cd67c) SHA1(f3a2e12ccfa45eb77c2a6e0d9cc0601b99273fd3) )
+ ROM_LOAD( "za16.u16", 0xc000, 0x1000, CRC(ccfc15bc) SHA1(56ac6e89825fcde9cf7aeb5d0765a02f5474174a) )
+ ROM_LOAD( "za17.u17", 0xd000, 0x1000, CRC(358013f4) SHA1(dd3fae69bf460f89c71e7c78d229dd86605c5950) )
+ ROM_LOAD( "za18.u18", 0xe000, 0x1000, CRC(37886afe) SHA1(a0cc902b2d253466e21c4fbf9d3339069fe79ebe) )
+ ROM_LOAD( "za19.u19", 0xf000, 0x1000, CRC(bbfb30d9) SHA1(bc6bd5525b159bee7b08b6967cd3088b7bd10fee) )
+
+ ROM_REGION( 0x12000, "videocpu", 0 ) // roms on the 08-00112-001 'video rom expansion' PCB
+ ROM_LOAD( "za5.u5", 0x0a000, 0x1000, CRC(dc0c3cbd) SHA1(8335cd91bbacc680a3a98a5242d4cb5a6f61b2b5) )
+ ROM_LOAD( "za3.u3", 0x10000, 0x1000, CRC(cc4d0aee) SHA1(05c0025e96b432088b46100051a2c780e46b7457) )
+ ROM_LOAD( "za6.u6", 0x0b000, 0x1000, CRC(27c787dd) SHA1(1142790d875573d0c39d846aba4b06946fd2bc88) )
+ ROM_LOAD( "za4.u4", 0x11000, 0x1000, CRC(ec3b10b1) SHA1(44303ab923d776052ca4d2d09a6a4315d67adc4b) )
+
+ ROM_LOAD( "za7.u7", 0x0c000, 0x1000, CRC(1479f480) SHA1(bd0e9eead0f1213eb3b9653c73257bc704346ab0) )
+ ROM_LOAD( "za8.u8", 0x0d000, 0x1000, CRC(4c96cdb2) SHA1(67e506462317d882c4e5c2e16318411d4958ac63) )
+ ROM_LOAD( "zv35.9.u9", 0x0e000, 0x1000, CRC(d14123b7) SHA1(5d35bffd2203225937bb83598ffdc31a46a1dbca) )
+ ROM_LOAD( "zv36.10.u10", 0x0f000, 0x1000, CRC(23705777) SHA1(952cd8d9ee00268bff2022b2428b1dbfab061254) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) // roms on the 'SDU board'
+ ROM_LOAD( "za25.u25", 0xd000, 0x1000, CRC(779b8558) SHA1(7312e63c23d92c9c52e93cc445a718bc8fe35a0a) )
+ ROM_LOAD( "za26.u26", 0xe000, 0x1000, CRC(60a810ce) SHA1(d97e5acea0ef1c208f8e5e95024c83dd6bc9b028) )
+ ROM_LOAD( "za27.u27", 0xf000, 0x1000, CRC(99ed424e) SHA1(e4e543dcb77f153aeb78904d11b95381d039299e) )
+
+ ROM_REGION( 0x0800, "mcu", 0 ) // mc68705p3, this is on its own pcb between the coin inputs and the main pcb
ROM_LOAD( "za_coin.bin", 0x0000, 0x0800, CRC(364d3557) SHA1(049d0759750c576187053306e07984b1e5877df7) )
ROM_END
@@ -1449,20 +1449,20 @@ DRIVER_INIT_MEMBER(qix_state,slither)
*
*************************************/
-GAME( 1981, qix, 0, qix, qix, driver_device, 0, ROT270, "Taito America Corporation", "Qix (Rev 2)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1981, qixb, qix, qix, qix, driver_device, 0, ROT270, "Taito America Corporation", "Qix (set 2, larger roms)", GAME_SUPPORTS_SAVE )
-GAME( 1981, qixo, qix, qix, qix, driver_device, 0, ROT270, "Taito America Corporation", "Qix (set 3, earlier)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1981, sdungeon, 0, mcu, sdungeon, driver_device, 0, ROT270, "Taito America Corporation", "Space Dungeon", GAME_SUPPORTS_SAVE )
-GAMEL(1982, elecyoyo, 0, mcu, elecyoyo, driver_device, 0, ROT270, "Taito America Corporation", "The Electric Yo-Yo (set 1)", GAME_SUPPORTS_SAVE, layout_elecyoyo )
-GAMEL(1982, elecyoyo2,elecyoyo, mcu, elecyoyo, driver_device, 0, ROT270, "Taito America Corporation", "The Electric Yo-Yo (set 2)", GAME_SUPPORTS_SAVE, layout_elecyoyo )
-GAME( 1982, kram, 0, mcu, kram, driver_device, 0, ROT0, "Taito America Corporation", "Kram (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1982, kram2, kram, mcu, kram, driver_device, 0, ROT0, "Taito America Corporation", "Kram (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1982, kram3, kram, kram3, kram, qix_state, kram3, ROT0, "Taito America Corporation", "Kram (encrypted)", GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE )
-GAME( 1982, zookeep, 0, zookeep, zookeep, qix_state, zookeep, ROT0, "Taito America Corporation", "Zoo Keeper (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1982, zookeep2, zookeep, zookeep, zookeep, qix_state, zookeep, ROT0, "Taito America Corporation", "Zoo Keeper (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1982, zookeep3, zookeep, zookeep, zookeep, qix_state, zookeep, ROT0, "Taito America Corporation", "Zoo Keeper (set 3)", GAME_SUPPORTS_SAVE )
-GAME( 1982, slither, 0, slither, slither, qix_state, slither, ROT270, "Century II", "Slither (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1982, slithera, slither, slither, slither, qix_state, slither, ROT270, "Century II", "Slither (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1984, complexx, 0, qix, complexx, driver_device, 0, ROT270, "Taito America Corporation", "Complex X", GAME_SUPPORTS_SAVE )
+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
+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 )
diff --git a/src/mess/drivers/ql.c b/src/mame/drivers/ql.c
index dfb19dbecb7..e8749cb6695 100644
--- a/src/mess/drivers/ql.c
+++ b/src/mame/drivers/ql.c
@@ -1139,14 +1139,14 @@ ROM_END
//**************************************************************************
// 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)", GAME_SUPPORTS_SAVE )
-COMP( 1985, ql_us, ql, 0, ql_ntsc, ql, driver_device, 0, "Sinclair Research Ltd", "QL (USA)", GAME_SUPPORTS_SAVE )
-COMP( 1985, ql_es, ql, 0, ql, ql_es, driver_device, 0, "Sinclair Research Ltd", "QL (Spain)", GAME_SUPPORTS_SAVE )
-COMP( 1985, ql_fr, ql, 0, ql, ql_fr, driver_device, 0, "Sinclair Research Ltd", "QL (France)", GAME_NOT_WORKING )
-COMP( 1985, ql_de, ql, 0, ql, ql_de, driver_device, 0, "Sinclair Research Ltd", "QL (Germany)", GAME_SUPPORTS_SAVE )
-COMP( 1985, ql_it, ql, 0, ql, ql_it, driver_device, 0, "Sinclair Research Ltd", "QL (Italy)", GAME_SUPPORTS_SAVE )
-COMP( 1985, ql_se, ql, 0, ql, ql_se, driver_device, 0, "Sinclair Research Ltd", "QL (Sweden)", GAME_NOT_WORKING )
-COMP( 1985, ql_dk, ql, 0, ql, ql_dk, driver_device, 0, "Sinclair Research Ltd", "QL (Denmark)", GAME_NOT_WORKING )
-COMP( 1985, ql_gr, ql, 0, ql, ql, driver_device, 0, "Sinclair Research Ltd", "QL (Greece)", GAME_SUPPORTS_SAVE )
-COMP( 1984, tonto, 0, 0, opd, ql, driver_device, 0, "British Telecom Business Systems", "Merlin M1800 Tonto", GAME_NOT_WORKING )
-//COMP( 1986, megaopd,tonto, 0, megaopd, ql, driver_device, 0, "International Computer Limited", "MegaOPD (USA)", GAME_NOT_WORKING )
+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 )
diff --git a/src/mess/drivers/qtsbc.c b/src/mame/drivers/qtsbc.c
index b73201b765b..a79b75fd8ad 100644
--- a/src/mess/drivers/qtsbc.c
+++ b/src/mame/drivers/qtsbc.c
@@ -98,4 +98,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 19??, qtsbc, 0, 0, qtsbc, qtsbc, driver_device, 0, "Computer Systems Inc.", "QT SBC +2/4", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/quakeat.c b/src/mame/drivers/quakeat.c
index d3f752cc2a8..01aadd16139 100644
--- a/src/mame/drivers/quakeat.c
+++ b/src/mame/drivers/quakeat.c
@@ -147,4 +147,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)", GAME_IS_SKELETON )
+GAME( 1998, quake, 0, quake, quake, driver_device, 0, ROT0, "Lazer-Tron / iD Software", "Quake Arcade Tournament (Release Beta 2)", MACHINE_IS_SKELETON )
diff --git a/src/mame/drivers/quantum.c b/src/mame/drivers/quantum.c
index d9ea1c7b4ac..59c9bde6e6f 100644
--- a/src/mame/drivers/quantum.c
+++ b/src/mame/drivers/quantum.c
@@ -12,6 +12,9 @@
Known bugs:
* none at this time
+NOTE: The Atari 136002-125 PROM in the sets below wasn't dumped from an actual
+ Quantum PCB. It is assumed all Atari 136002-125 PROMs are the same data.
+
****************************************************************************
Memory map
@@ -333,7 +336,10 @@ ROM_START( quantum )
ROM_LOAD16_BYTE( "136016.110", 0x010001, 0x002000, CRC(acb50363) SHA1(9efa9ca88efdd2d5e212bd537903892b67b4fe53) )
/* AVG PROM */
ROM_REGION( 0x100, "user1", 0 )
- ROM_LOAD( "136002-125.6h", 0x0000, 0x0100, BAD_DUMP CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
+ ROM_LOAD( "136002-125.6h", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
+
+ ROM_REGION( 0x200, "plds", 0 )
+ ROM_LOAD( "cf2038n.1b", 0x0000, 0x00eb, CRC(b372fa4f) SHA1(a60b51849e9f691b412ae4c4afc834ff93d8a30f) ) /* Original chip is a 82S153, schematics refer to this chip as 137290-001 */
ROM_END
@@ -351,7 +357,10 @@ ROM_START( quantum1 )
ROM_LOAD16_BYTE( "136016.110", 0x010001, 0x002000, CRC(acb50363) SHA1(9efa9ca88efdd2d5e212bd537903892b67b4fe53) )
/* AVG PROM */
ROM_REGION( 0x100, "user1", 0 )
- ROM_LOAD( "136002-125.6h", 0x0000, 0x0100, BAD_DUMP CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
+ ROM_LOAD( "136002-125.6h", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
+
+ ROM_REGION( 0x200, "plds", 0 )
+ ROM_LOAD( "cf2038n.1b", 0x0000, 0x00eb, CRC(b372fa4f) SHA1(a60b51849e9f691b412ae4c4afc834ff93d8a30f) ) /* Original chip is a 82S153, schematics refer to this chip as 137290-001 */
ROM_END
@@ -369,7 +378,10 @@ ROM_START( quantump )
ROM_LOAD16_BYTE( "quantump.3l", 0x010001, 0x002000, CRC(e19de844) SHA1(cb4f9d80807b26d6b95405b2d830799984667f54) )
/* AVG PROM */
ROM_REGION( 0x100, "user1", 0 )
- ROM_LOAD( "136002-125.6h", 0x0000, 0x0100, BAD_DUMP CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
+ ROM_LOAD( "136002-125.6h", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) )
+
+ ROM_REGION( 0x200, "plds", 0 )
+ ROM_LOAD( "cf2038n.1b", 0x0000, 0x00eb, CRC(b372fa4f) SHA1(a60b51849e9f691b412ae4c4afc834ff93d8a30f) ) /* Original chip is a 82S153, schematics refer to this chip as 137290-001 */
ROM_END
@@ -380,6 +392,6 @@ ROM_END
*
*************************************/
-GAME( 1982, quantum, 0, quantum, quantum, driver_device, 0, ROT270, "General Computer Corporation (Atari license)", "Quantum (rev 2)", GAME_SUPPORTS_SAVE )
-GAME( 1982, quantum1, quantum, quantum, quantum, driver_device, 0, ROT270, "General Computer Corporation (Atari license)", "Quantum (rev 1)", GAME_SUPPORTS_SAVE )
-GAME( 1982, quantump, quantum, quantum, quantum, driver_device, 0, ROT270, "General Computer Corporation (Atari license)", "Quantum (prototype)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/quasar.c b/src/mame/drivers/quasar.c
index 92cdc363797..75819f076a3 100644
--- a/src/mame/drivers/quasar.c
+++ b/src/mame/drivers/quasar.c
@@ -408,5 +408,5 @@ ROM_START( quasara )
ROM_END
-GAME( 1980, quasar, 0, quasar, quasar, driver_device, 0, ROT90, "Zaccaria / Zelco", "Quasar (set 1)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, quasara, quasar, quasar, quasar, driver_device, 0, ROT90, "Zaccaria / Zelco", "Quasar (set 2)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/queen.c b/src/mame/drivers/queen.c
index 81c3f8b47b8..d6899a3d04d 100644
--- a/src/mame/drivers/queen.c
+++ b/src/mame/drivers/queen.c
@@ -308,4 +308,4 @@ ROM_START( queen )
ROM_END
-GAME( 2002?, queen, 0, queen, at_keyboard, driver_device, 0, ROT0, "STG", "Queen?", GAME_IS_SKELETON )
+GAME( 2002?, queen, 0, queen, at_keyboard, driver_device, 0, ROT0, "STG", "Queen?", MACHINE_IS_SKELETON )
diff --git a/src/mame/drivers/quizdna.c b/src/mame/drivers/quizdna.c
index c760cdd0976..14394cdd58c 100644
--- a/src/mame/drivers/quizdna.c
+++ b/src/mame/drivers/quizdna.c
@@ -565,6 +565,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)", GAME_SUPPORTS_SAVE )
-GAME( 1992, quizdna, 0, quizdna, quizdna, driver_device, 0, ROT0, "Face", "Quiz DNA no Hanran (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1992, gekiretu, 0, gekiretu, gekiretu, driver_device, 0, ROT0, "Face", "Quiz Gekiretsu Scramble (Japan)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/quizo.c b/src/mame/drivers/quizo.c
index e96929e0f2b..cdd9aea3836 100644
--- a/src/mame/drivers/quizo.c
+++ b/src/mame/drivers/quizo.c
@@ -276,5 +276,5 @@ DRIVER_INIT_MEMBER(quizo_state,quizo)
save_item(NAME(m_port70));
}
-GAME( 1985, quizo, 0, quizo, quizo, quizo_state, quizo, ROT0, "Seoul Coin Corp.", "Quiz Olympic (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1985, quizoa, quizo, quizo, quizo, quizo_state, quizo, ROT0, "Seoul Coin Corp.", "Quiz Olympic (set 2)", GAME_SUPPORTS_SAVE )
+GAME( 1985, quizo, 0, quizo, quizo, quizo_state, quizo, ROT0, "Seoul Coin Corp.", "Quiz Olympic (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, quizoa, quizo, quizo, quizo, quizo_state, quizo, ROT0, "Seoul Coin Corp.", "Quiz Olympic (set 2)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/quizpani.c b/src/mame/drivers/quizpani.c
index 0bde30d62a3..4c1f412a4c4 100644
--- a/src/mame/drivers/quizpani.c
+++ b/src/mame/drivers/quizpani.c
@@ -244,4 +244,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", GAME_SUPPORTS_SAVE )
+GAME( 1993, quizpani, 0, quizpani, quizpani, driver_device, 0, ROT0, "NMK", "Quiz Panicuru Fantasy", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/quizpun2.c b/src/mame/drivers/quizpun2.c
index 3b667d7ae9e..ec8e446456a 100644
--- a/src/mame/drivers/quizpun2.c
+++ b/src/mame/drivers/quizpun2.c
@@ -609,5 +609,5 @@ ROM_START( quizpun )
ROM_END
-GAME( 1988, quizpun, 0, quizpun2, quizpun2, driver_device, 0, ROT270, "Space Computer", "Quiz Punch", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION )
-GAME( 1989, quizpun2, 0, quizpun2, quizpun2, driver_device, 0, ROT270, "Space Computer", "Quiz Punch 2", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION )
+GAME( 1988, quizpun, 0, quizpun2, quizpun2, driver_device, 0, ROT270, "Space Computer", "Quiz Punch", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION )
+GAME( 1989, quizpun2, 0, quizpun2, quizpun2, driver_device, 0, ROT270, "Space Computer", "Quiz Punch 2", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION )
diff --git a/src/mame/drivers/quizshow.c b/src/mame/drivers/quizshow.c
index 46a6cdbf77a..a0fd5d5cda1 100644
--- a/src/mame/drivers/quizshow.c
+++ b/src/mame/drivers/quizshow.c
@@ -452,4 +452,4 @@ DRIVER_INIT_MEMBER(quizshow_state,quizshow)
}
-GAMEL( 1976, quizshow, 0, quizshow, quizshow, quizshow_state, quizshow, ROT0, "Atari (Kee Games)", "Quiz Show", GAME_NOT_WORKING, layout_quizshow )
+GAMEL( 1976, quizshow, 0, quizshow, quizshow, quizshow_state, quizshow, ROT0, "Atari (Kee Games)", "Quiz Show", MACHINE_NOT_WORKING, layout_quizshow )
diff --git a/src/mess/drivers/qx10.c b/src/mame/drivers/qx10.c
index 58050c4055f..c69fe705e72 100644
--- a/src/mess/drivers/qx10.c
+++ b/src/mame/drivers/qx10.c
@@ -784,4 +784,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND )
+COMP( 1983, qx10, 0, 0, qx10, qx10, driver_device, 0, "Epson", "QX-10", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/r2dtank.c b/src/mame/drivers/r2dtank.c
index d58974a108b..527660d0424 100644
--- a/src/mame/drivers/r2dtank.c
+++ b/src/mame/drivers/r2dtank.c
@@ -43,8 +43,6 @@ RAM = 4116 (x11)
#include "machine/nvram.h"
-#define NUM_PENS (8)
-
#define LOG_AUDIO_COMM (0)
#define MAIN_CPU_MASTER_CLOCK (11200000)
@@ -59,6 +57,7 @@ public:
m_videoram(*this, "videoram"),
m_colorram(*this, "colorram"),
m_maincpu(*this, "maincpu"),
+ m_palette(*this, "palette"),
m_audiocpu(*this, "audiocpu") { }
required_shared_ptr<UINT8> m_videoram;
@@ -66,7 +65,7 @@ public:
UINT8 m_flipscreen;
UINT32 m_ttl74123_output;
UINT8 m_AY8910_selected;
- pen_t m_pens[NUM_PENS];
+
DECLARE_READ8_MEMBER(audio_command_r);
DECLARE_WRITE8_MEMBER(audio_command_w);
DECLARE_READ8_MEMBER(audio_answer_r);
@@ -81,9 +80,11 @@ public:
DECLARE_WRITE8_MEMBER(pia_comp_w);
virtual void machine_start();
DECLARE_WRITE8_MEMBER(ttl74123_output_changed);
- MC6845_BEGIN_UPDATE(crtc_begin_update);
+
MC6845_UPDATE_ROW(crtc_update_row);
+
required_device<cpu_device> m_maincpu;
+ required_device<palette_device> m_palette;
required_device<cpu_device> m_audiocpu;
};
@@ -257,16 +258,6 @@ WRITE_LINE_MEMBER(r2dtank_state::flipscreen_w)
}
-MC6845_BEGIN_UPDATE( r2dtank_state::crtc_begin_update )
-{
- /* create the pens */
- for (offs_t i = 0; i < NUM_PENS; i++)
- {
- m_pens[i] = rgb_t(pal1bit(i >> 2), pal1bit(i >> 1), pal1bit(i >> 0));
- }
-}
-
-
MC6845_UPDATE_ROW( r2dtank_state::crtc_update_row )
{
UINT8 x = 0;
@@ -302,7 +293,7 @@ MC6845_UPDATE_ROW( r2dtank_state::crtc_update_row )
}
color = bit ? fore_color : 0;
- bitmap.pix32(y, x) = m_pens[color];
+ bitmap.pix32(y, x) = m_palette->pen_color(color);
x = x + 1;
}
@@ -457,10 +448,11 @@ static MACHINE_CONFIG_START( r2dtank, r2dtank_state )
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 256, 0, 256, 256, 0, 256) /* temporary, CRTC will configure screen */
MCFG_SCREEN_UPDATE_DEVICE("crtc", mc6845_device, screen_update)
+ MCFG_PALETTE_ADD_3BIT_BGR("palette")
+
MCFG_MC6845_ADD("crtc", MC6845, "screen", CRTC_CLOCK)
MCFG_MC6845_SHOW_BORDER_AREA(false)
MCFG_MC6845_CHAR_WIDTH(8)
- MCFG_MC6845_BEGIN_UPDATE_CB(r2dtank_state, crtc_begin_update)
MCFG_MC6845_UPDATE_ROW_CB(r2dtank_state, crtc_update_row)
MCFG_MC6845_OUT_DE_CB(WRITELINE(r2dtank_state, display_enable_changed))
@@ -530,4 +522,4 @@ ROM_END
*
*************************************/
-GAME( 1980, r2dtank, 0, r2dtank, r2dtank, driver_device, 0, ROT270, "Sigma Enterprises Inc.", "R2D Tank", GAME_SUPPORTS_SAVE)
+GAME( 1980, r2dtank, 0, r2dtank, r2dtank, driver_device, 0, ROT270, "Sigma Enterprises Inc.", "R2D Tank", MACHINE_SUPPORTS_SAVE)
diff --git a/src/mame/drivers/r2dx_v33.c b/src/mame/drivers/r2dx_v33.c
index dc859ecd187..27561bbe8e5 100644
--- a/src/mame/drivers/r2dx_v33.c
+++ b/src/mame/drivers/r2dx_v33.c
@@ -1072,16 +1072,16 @@ ROM_END
// newer PCB, with V33 CPU and COPD3 protection, but weak sound hardware. - was marked as Raiden DX New in the rom dump, but boots as Raiden 2 New version, the rom contains both
// is there a switching method? for now I've split it into 2 sets with different EEPROM, the game checks that on startup and runs different code depending on what it finds
-GAME( 1996, r2dx_v33, 0, rdx_v33, rdx_v33, r2dx_v33_state, rdx_v33, ROT270, "Seibu Kaihatsu", "Raiden II New / Raiden DX (newer V33 PCB) (Raiden DX EEPROM)", GAME_SUPPORTS_SAVE)
-GAME( 1996, r2dx_v33_r2, r2dx_v33, rdx_v33, rdx_v33, r2dx_v33_state, rdx_v33, ROT270, "Seibu Kaihatsu", "Raiden II New / Raiden DX (newer V33 PCB) (Raiden II EEPROM)", GAME_SUPPORTS_SAVE)
+GAME( 1996, r2dx_v33, 0, rdx_v33, rdx_v33, r2dx_v33_state, rdx_v33, ROT270, "Seibu Kaihatsu", "Raiden II New / Raiden DX (newer V33 PCB) (Raiden DX EEPROM)", MACHINE_SUPPORTS_SAVE)
+GAME( 1996, r2dx_v33_r2, r2dx_v33, rdx_v33, rdx_v33, r2dx_v33_state, rdx_v33, ROT270, "Seibu Kaihatsu", "Raiden II New / Raiden DX (newer V33 PCB) (Raiden II EEPROM)", MACHINE_SUPPORTS_SAVE)
// 'V33 system type_b' - uses V33 CPU, COPX-D3 external protection rom, but still has the proper sound system, DSW for settings
-GAME( 1997, nzeroteam, zeroteam, nzerotea, nzerotea, r2dx_v33_state, nzerotea, ROT0, "Seibu Kaihatsu (Haoyunlai Trading Company license)", "New Zero Team (V33 SYSTEM TYPE_B hardware)", GAME_SUPPORTS_SAVE) // license text translated from title screen
+GAME( 1997, nzeroteam, zeroteam, nzerotea, nzerotea, r2dx_v33_state, nzerotea, ROT0, "Seibu Kaihatsu (Haoyunlai Trading Company license)", "New Zero Team (V33 SYSTEM TYPE_B hardware)", MACHINE_SUPPORTS_SAVE) // license text translated from title screen
// 'V33 SYSTEM TYPE_C' - uses V33 CPU, basically the same board as TYPE_C VER2
// there is a version of New Zero Team on "V33 SYSTEM TYPE_C" board with EEPROM rather than dipswitches like Zero Team 2000
// 'V33 SYSTEM TYPE_C VER2' - uses V33 CPU, COPX-D3 external protection rom, but still has the proper sound system, unencrypted sprites, EEPROM for settings. PCB also seen without 'VER2', looks the same
-GAME( 2000, zerotm2k, zeroteam, zerotm2k, zerotm2k, r2dx_v33_state, zerotm2k, ROT0, "Seibu Kaihatsu", "Zero Team 2000", GAME_SUPPORTS_SAVE)
+GAME( 2000, zerotm2k, zeroteam, zerotm2k, zerotm2k, r2dx_v33_state, zerotm2k, ROT0, "Seibu Kaihatsu", "Zero Team 2000", MACHINE_SUPPORTS_SAVE)
// there is also a 'Raiden 2 2000' on unknown hardware.
diff --git a/src/mame/drivers/rabbit.c b/src/mame/drivers/rabbit.c
index ba102963da0..7cbd81cc68d 100644
--- a/src/mame/drivers/rabbit.c
+++ b/src/mame/drivers/rabbit.c
@@ -981,4 +981,4 @@ ROM_START( rabbit )
ROM_END
-GAME( 1997, rabbit, 0, rabbit, rabbit, rabbit_state, rabbit, ROT0, "Aorn / Electronic Arts", "Rabbit (Asia 3/6)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // somewhat playable
+GAME( 1997, rabbit, 0, rabbit, rabbit, rabbit_state, rabbit, ROT0, "Aorn / Electronic Arts", "Rabbit (Asia 3/6)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // somewhat playable
diff --git a/src/mess/drivers/radio86.c b/src/mame/drivers/radio86.c
index c1b08bed357..c1b08bed357 100644
--- a/src/mess/drivers/radio86.c
+++ b/src/mame/drivers/radio86.c
diff --git a/src/mame/drivers/raiden.c b/src/mame/drivers/raiden.c
index dcc96275db7..97b74c6c947 100644
--- a/src/mame/drivers/raiden.c
+++ b/src/mame/drivers/raiden.c
@@ -635,16 +635,16 @@ DRIVER_INIT_MEMBER(raiden_state,raidenu)
/***************************************************************************/
/* Same PCB, differ by region byte(s) */
-GAME( 1990, raiden, 0, raidene, raiden, raiden_state, raiden, ROT270, "Seibu Kaihatsu", "Raiden (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1990, raidena, raiden, raidene, raiden, raiden_state, raiden, ROT270, "Seibu Kaihatsu", "Raiden (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1990, raidenu, raiden, raidene, raiden, raiden_state, raiden, ROT270, "Seibu Kaihatsu (Fabtek license)", "Raiden (US set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1990, raident, raiden, raidene, raiden, raiden_state, raiden, ROT270, "Seibu Kaihatsu (Liang HWA Electronics license)", "Raiden (Taiwan)", GAME_SUPPORTS_SAVE )
+GAME( 1990, raiden, 0, raidene, raiden, raiden_state, raiden, ROT270, "Seibu Kaihatsu", "Raiden (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, raidena, raiden, raidene, raiden, raiden_state, raiden, ROT270, "Seibu Kaihatsu", "Raiden (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, raidenu, raiden, raidene, raiden, raiden_state, raiden, ROT270, "Seibu Kaihatsu (Fabtek license)", "Raiden (US set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, raident, raiden, raidene, raiden, raiden_state, raiden, ROT270, "Seibu Kaihatsu (Liang HWA Electronics license)", "Raiden (Taiwan)", MACHINE_SUPPORTS_SAVE )
/* Same as above, but the sound CPU code is not encrypted */
-GAME( 1990, raidenk, raiden, raiden, raiden, raiden_state, raidenk, ROT270, "Seibu Kaihatsu (IBL Corporation license)", "Raiden (Korea)", GAME_SUPPORTS_SAVE )
+GAME( 1990, raidenk, raiden, raiden, raiden, raiden_state, raidenk, ROT270, "Seibu Kaihatsu (IBL Corporation license)", "Raiden (Korea)", MACHINE_SUPPORTS_SAVE )
/* Alternate hardware; SEI8904 + SEI9008 PCBs. Main & Sub CPU code not encrypted */
-GAME( 1990, raidenua, raiden, raidenu, raiden, raiden_state, raidenu, ROT270, "Seibu Kaihatsu (Fabtek license)", "Raiden (US set 2)", GAME_SUPPORTS_SAVE )
+GAME( 1990, raidenua, raiden, raidenu, raiden, raiden_state, raidenu, ROT270, "Seibu Kaihatsu (Fabtek license)", "Raiden (US set 2)", MACHINE_SUPPORTS_SAVE )
/* Alternate hardware. Main, Sub & Sound CPU code not encrypted - could possibly be a bootleg?? It also sports Seibu custom CRTC. */
-GAME( 1990, raidenb, raiden, raidenb, raiden, driver_device, 0, ROT270, "Seibu Kaihatsu", "Raiden (set 3)", GAME_SUPPORTS_SAVE )
+GAME( 1990, raidenb, raiden, raidenb, raiden, driver_device, 0, ROT270, "Seibu Kaihatsu", "Raiden (set 3)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/raiden2.c b/src/mame/drivers/raiden2.c
index 7b708654064..888a9663a10 100644
--- a/src/mame/drivers/raiden2.c
+++ b/src/mame/drivers/raiden2.c
@@ -3053,39 +3053,39 @@ DRIVER_INIT_MEMBER(raiden2_state,zeroteam)
/* GAME DRIVERS */
// rev numbers at end of the line just indicate which sets are the same code revisions (just a region byte change), they don't reflect the actual order of release
-GAME( 1993, raiden2, 0, raiden2, raiden2, raiden2_state, raiden2, ROT270, "Seibu Kaihatsu (Fabtek license)", "Raiden II (US, set 1)", GAME_SUPPORTS_SAVE ) // rev 1
-GAME( 1993, raiden2u, raiden2, raiden2, raiden2, raiden2_state, raiden2, ROT270, "Seibu Kaihatsu (Fabtek license)", "Raiden II (US, set 2)", GAME_SUPPORTS_SAVE ) // ?
-GAME( 1993, raiden2hk, raiden2, raiden2, raiden2, raiden2_state, raiden2, ROT270, "Seibu Kaihatsu (Metrotainment license)", "Raiden II (Hong Kong)", GAME_SUPPORTS_SAVE ) // rev 1
-GAME( 1993, raiden2sw, raiden2, raiden2, raiden2, raiden2_state, raiden2, ROT270, "Seibu Kaihatsu", "Raiden II (Switzerland)", GAME_SUPPORTS_SAVE ) // rev 1
-GAME( 1993, raiden2j, raiden2, raiden2, raiden2, raiden2_state, raiden2, ROT270, "Seibu Kaihatsu", "Raiden II (Japan)", GAME_SUPPORTS_SAVE ) // rev 1
-GAME( 1993, raiden2i, raiden2, raiden2, raiden2, raiden2_state, raiden2, ROT270, "Seibu Kaihatsu", "Raiden II (Italy)", GAME_SUPPORTS_SAVE ) // rev 2
-GAME( 1993, raiden2nl, raiden2, raiden2, raiden2, raiden2_state, raiden2, ROT270, "Seibu Kaihatsu", "Raiden II (Holland)", GAME_SUPPORTS_SAVE )
-GAME( 1993, raiden2f, raiden2, raiden2, raiden2, raiden2_state, raiden2, ROT270, "Seibu Kaihatsu", "Raiden II (France)", GAME_SUPPORTS_SAVE )
-
-GAME( 1993, raiden2e, raiden2, raiden2, raiden2, raiden2_state, raiden2, ROT270, "Seibu Kaihatsu", "Raiden II (easy version, Korea?)", GAME_SUPPORTS_SAVE ) // rev 3 (Region 0x04) - Korea?, if regions are the same as RDX, no license or region message tho
-GAME( 1993, raiden2ea, raiden2, raiden2, raiden2, raiden2_state, raiden2, ROT270, "Seibu Kaihatsu", "Raiden II (easy version, Japan?)", GAME_SUPPORTS_SAVE ) // rev 4 (Region 0x00) - Should be Japan, but the easy sets have no 'FOR USE IN JAPAN ONLY' display even when region is 00
-GAME( 1993, raiden2eu, raiden2, raiden2, raiden2, raiden2_state, raiden2, ROT270, "Seibu Kaihatsu (Fabtek license)", "Raiden II (easy version, US set 2)", GAME_SUPPORTS_SAVE ) // ^
-GAME( 1993, raiden2eua, raiden2, raiden2, raiden2, raiden2_state, raiden2, ROT270, "Seibu Kaihatsu (Fabtek license)", "Raiden II (easy version, US set 1)", GAME_SUPPORTS_SAVE ) // rev 3 and 4 mix?
-GAME( 1993, raiden2g, raiden2, raiden2, raiden2, raiden2_state, raiden2, ROT270, "Seibu Kaihatsu (Tuning license)", "Raiden II (easy version, Germany)", GAME_SUPPORTS_SAVE )
-
-GAME( 1993, raiden2dx, raiden2, raidendx, raiden2, raiden2_state, raidendx, ROT270, "Seibu Kaihatsu", "Raiden II (harder, Raiden DX hardware)", GAME_SUPPORTS_SAVE )
-
-GAME( 1994, raidendx, 0, raidendx, raidendx, raiden2_state, raidendx, ROT270, "Seibu Kaihatsu", "Raiden DX (UK)", GAME_SUPPORTS_SAVE )
-GAME( 1994, raidendxa1, raidendx, raidendx, raidendx, raiden2_state, raidendx, ROT270, "Seibu Kaihatsu (Metrotainment license)", "Raiden DX (Hong Kong, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1994, raidendxa2, raidendx, raidendx, raidendx, raiden2_state, raidendx, ROT270, "Seibu Kaihatsu (Metrotainment license)", "Raiden DX (Hong Kong, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1994, raidendxk, raidendx, raidendx, raidendx, raiden2_state, raidendx, ROT270, "Seibu Kaihatsu", "Raiden DX (Korea)", GAME_SUPPORTS_SAVE )
-GAME( 1994, raidendxu, raidendx, raidendx, raidendx, raiden2_state, raidendx, ROT270, "Seibu Kaihatsu (Fabtek license)", "Raiden DX (US)", GAME_SUPPORTS_SAVE )
-GAME( 1994, raidendxg, raidendx, raidendx, raidendx, raiden2_state, raidendx, ROT270, "Seibu Kaihatsu (Tuning license)", "Raiden DX (Germany)", GAME_SUPPORTS_SAVE )
-GAME( 1994, raidendxnl, raidendx, raidendx, raidendx, raiden2_state, raidendx, ROT270, "Seibu Kaihatsu", "Raiden DX (Holland)", GAME_SUPPORTS_SAVE )
-GAME( 1994, raidendxj, raidendx, raidendx, raidendx, raiden2_state, raidendx, ROT270, "Seibu Kaihatsu", "Raiden DX (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1994, raidendxch, raidendx, raidendx, raidendx, raiden2_state, raidendx, ROT270, "Seibu Kaihatsu (Ideal International Development Corp license) ", "Raiden DX (China)", GAME_SUPPORTS_SAVE )
-
-GAME( 1993, zeroteam, 0, zeroteam, zeroteam, raiden2_state, zeroteam, ROT0, "Seibu Kaihatsu (Fabtek license)", "Zero Team USA (US)", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
-GAME( 1993, zeroteama, zeroteam, zeroteam, zeroteam, raiden2_state, zeroteam, ROT0, "Seibu Kaihatsu", "Zero Team (Japan?, earlier?)", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
-GAME( 1993, zeroteamb, zeroteam, zeroteam, zeroteam, raiden2_state, zeroteam, ROT0, "Seibu Kaihatsu", "Zero Team (Japan?, later batteryless)", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING ) // reprograms the sprite decrypt data of the SEI251 on every boot, like raiden2 does. hack?
-GAME( 1993, zeroteamc, zeroteam, zeroteam, zeroteam, raiden2_state, zeroteam, ROT0, "Seibu Kaihatsu (Liang Hwa license)", "Zero Team (Taiwan)", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
-GAME( 1993, zeroteamd, zeroteam, zeroteam, zeroteam, raiden2_state, zeroteam, ROT0, "Seibu Kaihatsu (Dream Soft license)", "Zero Team (Korea)", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
-GAME( 1993, zeroteams, zeroteam, zeroteam, zeroteam, raiden2_state, zeroteam, ROT0, "Seibu Kaihatsu", "Zero Team Selection", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
-GAME( 1993, zeroteamsr, zeroteam, zeroteam, zeroteam, raiden2_state, zeroteam, ROT0, "Seibu Kaihatsu", "Zero Team Suicide Revival Kit", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING ) // reprograms the sprite decrypt data of the SEI251 only, no game code
-
-GAME( 1995, xsedae, 0, xsedae, xsedae, raiden2_state, xsedae, ROT0, "Dream Island", "X Se Dae Quiz (Korea)", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
+GAME( 1993, raiden2, 0, raiden2, raiden2, raiden2_state, raiden2, ROT270, "Seibu Kaihatsu (Fabtek license)", "Raiden II (US, set 1)", MACHINE_SUPPORTS_SAVE ) // rev 1
+GAME( 1993, raiden2u, raiden2, raiden2, raiden2, raiden2_state, raiden2, ROT270, "Seibu Kaihatsu (Fabtek license)", "Raiden II (US, set 2)", MACHINE_SUPPORTS_SAVE ) // ?
+GAME( 1993, raiden2hk, raiden2, raiden2, raiden2, raiden2_state, raiden2, ROT270, "Seibu Kaihatsu (Metrotainment license)", "Raiden II (Hong Kong)", MACHINE_SUPPORTS_SAVE ) // rev 1
+GAME( 1993, raiden2sw, raiden2, raiden2, raiden2, raiden2_state, raiden2, ROT270, "Seibu Kaihatsu", "Raiden II (Switzerland)", MACHINE_SUPPORTS_SAVE ) // rev 1
+GAME( 1993, raiden2j, raiden2, raiden2, raiden2, raiden2_state, raiden2, ROT270, "Seibu Kaihatsu", "Raiden II (Japan)", MACHINE_SUPPORTS_SAVE ) // rev 1
+GAME( 1993, raiden2i, raiden2, raiden2, raiden2, raiden2_state, raiden2, ROT270, "Seibu Kaihatsu", "Raiden II (Italy)", MACHINE_SUPPORTS_SAVE ) // rev 2
+GAME( 1993, raiden2nl, raiden2, raiden2, raiden2, raiden2_state, raiden2, ROT270, "Seibu Kaihatsu", "Raiden II (Holland)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, raiden2f, raiden2, raiden2, raiden2, raiden2_state, raiden2, ROT270, "Seibu Kaihatsu", "Raiden II (France)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1993, raiden2e, raiden2, raiden2, raiden2, raiden2_state, raiden2, ROT270, "Seibu Kaihatsu", "Raiden II (easy version, Korea?)", MACHINE_SUPPORTS_SAVE ) // rev 3 (Region 0x04) - Korea?, if regions are the same as RDX, no license or region message tho
+GAME( 1993, raiden2ea, raiden2, raiden2, raiden2, raiden2_state, raiden2, ROT270, "Seibu Kaihatsu", "Raiden II (easy version, Japan?)", MACHINE_SUPPORTS_SAVE ) // rev 4 (Region 0x00) - Should be Japan, but the easy sets have no 'FOR USE IN JAPAN ONLY' display even when region is 00
+GAME( 1993, raiden2eu, raiden2, raiden2, raiden2, raiden2_state, raiden2, ROT270, "Seibu Kaihatsu (Fabtek license)", "Raiden II (easy version, US set 2)", MACHINE_SUPPORTS_SAVE ) // ^
+GAME( 1993, raiden2eua, raiden2, raiden2, raiden2, raiden2_state, raiden2, ROT270, "Seibu Kaihatsu (Fabtek license)", "Raiden II (easy version, US set 1)", MACHINE_SUPPORTS_SAVE ) // rev 3 and 4 mix?
+GAME( 1993, raiden2g, raiden2, raiden2, raiden2, raiden2_state, raiden2, ROT270, "Seibu Kaihatsu (Tuning license)", "Raiden II (easy version, Germany)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1993, raiden2dx, raiden2, raidendx, raiden2, raiden2_state, raidendx, ROT270, "Seibu Kaihatsu", "Raiden II (harder, Raiden DX hardware)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1994, raidendx, 0, raidendx, raidendx, raiden2_state, raidendx, ROT270, "Seibu Kaihatsu", "Raiden DX (UK)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, raidendxa1, raidendx, raidendx, raidendx, raiden2_state, raidendx, ROT270, "Seibu Kaihatsu (Metrotainment license)", "Raiden DX (Hong Kong, set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, raidendxa2, raidendx, raidendx, raidendx, raiden2_state, raidendx, ROT270, "Seibu Kaihatsu (Metrotainment license)", "Raiden DX (Hong Kong, set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, raidendxk, raidendx, raidendx, raidendx, raiden2_state, raidendx, ROT270, "Seibu Kaihatsu", "Raiden DX (Korea)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, raidendxu, raidendx, raidendx, raidendx, raiden2_state, raidendx, ROT270, "Seibu Kaihatsu (Fabtek license)", "Raiden DX (US)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, raidendxg, raidendx, raidendx, raidendx, raiden2_state, raidendx, ROT270, "Seibu Kaihatsu (Tuning license)", "Raiden DX (Germany)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, raidendxnl, raidendx, raidendx, raidendx, raiden2_state, raidendx, ROT270, "Seibu Kaihatsu", "Raiden DX (Holland)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, raidendxj, raidendx, raidendx, raidendx, raiden2_state, raidendx, ROT270, "Seibu Kaihatsu", "Raiden DX (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, raidendxch, raidendx, raidendx, raidendx, raiden2_state, raidendx, ROT270, "Seibu Kaihatsu (Ideal International Development Corp license) ", "Raiden DX (China)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1993, zeroteam, 0, zeroteam, zeroteam, raiden2_state, zeroteam, ROT0, "Seibu Kaihatsu (Fabtek license)", "Zero Team USA (US)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
+GAME( 1993, zeroteama, zeroteam, zeroteam, zeroteam, raiden2_state, zeroteam, ROT0, "Seibu Kaihatsu", "Zero Team (Japan?, earlier?)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
+GAME( 1993, zeroteamb, zeroteam, zeroteam, zeroteam, raiden2_state, zeroteam, ROT0, "Seibu Kaihatsu", "Zero Team (Japan?, later batteryless)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // reprograms the sprite decrypt data of the SEI251 on every boot, like raiden2 does. hack?
+GAME( 1993, zeroteamc, zeroteam, zeroteam, zeroteam, raiden2_state, zeroteam, ROT0, "Seibu Kaihatsu (Liang Hwa license)", "Zero Team (Taiwan)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
+GAME( 1993, zeroteamd, zeroteam, zeroteam, zeroteam, raiden2_state, zeroteam, ROT0, "Seibu Kaihatsu (Dream Soft license)", "Zero Team (Korea)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
+GAME( 1993, zeroteams, zeroteam, zeroteam, zeroteam, raiden2_state, zeroteam, ROT0, "Seibu Kaihatsu", "Zero Team Selection", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
+GAME( 1993, zeroteamsr, zeroteam, zeroteam, zeroteam, raiden2_state, zeroteam, ROT0, "Seibu Kaihatsu", "Zero Team Suicide Revival Kit", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // reprograms the sprite decrypt data of the SEI251 only, no game code
+
+GAME( 1995, xsedae, 0, xsedae, xsedae, raiden2_state, xsedae, ROT0, "Dream Island", "X Se Dae Quiz (Korea)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/rainbow.c b/src/mame/drivers/rainbow.c
index b548f2b98bd..aab93ed3d0f 100644
--- a/src/mame/drivers/rainbow.c
+++ b/src/mame/drivers/rainbow.c
@@ -1,977 +1,2465 @@
-// license:BSD-3-Clause
-// copyright-holders:Mike Coates
-/***************************************************************************
-
-Rainbow Islands (c) Taito 1987 + Jumping
-===============
-
-driver by Mike Coates
-
-c-chip enhanced by Robert Gallagher, with many thanks to Tormod Tjaberg for providing
-his PCB for dumping/collecting the c-chip data from Rainbow Islands Extra.
-
- ***
-
-Rainbow Islands & Rainbow Islands Extra
-Taito, 1987
-
-PCB Layout
-----------
-
-MAIN PCB
-J1100128A
-K1100277A
-|----------------------------------------------------|
-| MB3735 Z80 B22-14.43 16MHz DIP28 DIP28 |
-| YM2151 5563 |
-|VOL PC060HA B22-05.33 B22-01.2 |
-| 4556 TL074 YM3012 |-------| |
-|Y 6116 6116 |TAITO | 43256 |
-| |PC080SN| |
-|J TC0070RGB 2018 |-------| |-------| 43256 |
-|A 2018 |TAITO | |
-|M PC050CM 2018 |PC0900J| B22-02.5 |
-|M 2018 |-------| B22-13.6 |
-|A B22-12.7 |
-| TC0030CMD 12MHz 3771|
-| 26.686MHz B39-02.20 B22-01.19 |
-| 68000 B39-04.22 B39-03.21 |
-| B22-07.56 B22-06.41 B22-04.24 B22-03.23 |
-| DSWB DSWA 8464 8464 |
-|----------------------------------------------------|
-Notes:
- 68000 - clock 8.000MHz [16/2]
- Z80 - clock 4.000MHz [16/4]
- YM2151 - clock 4.000MHz [16/4]
- 6116 - 2kx8 SRAM (color RAM)
- 43256 - 32kx8 SRAM (tile RAM)
- 8464 - 8kx8 SRAM (68000 work RAM)
- 5563 - 8kx8 SRAM (Z80 work RAM)
- 2018 - 2kx8 SRAM (sprite RAM)
- 4556 - NEC uPC4556 dual operational amplifier IC (DIP8)
- TL074 - Texas Instruments TL074 low noise j-fet quad operational amplifier (DIP14)
- YM3012 - Yamaha YM3012 2-channel serial input floating DAC (DIP16)
- MB3735 - Fujitsu MB3735 20 watt BTL audio power amplifier (SIP9)
- PC080SN - Taito custom tilemap generator IC (connected to 43256 SRAM)
- PC0900J - Taito custom sprite generator IC (connected to 2018 SRAM)
- PC060HA - Taito custom IC (sound-related)
- TC0030CMD - Taito custom C-Chip marked 'TC0030CMD, clock input 12.000MHz on pin 20
- - For Rainbow Islands with sticker 'B22-15' at IC53
- - For Rainbow Islands Extra with sticker 'B39-05' at IC53
- TC0070RGB - Taito custom ceramic module RGB mixer IC
- PC050CM - Taito custom ceramic module (input related functions)
- 3771 - Fujitsu MB3771 master reset IC (DIP8)
- Y - 3 pin connector for 2nd speaker output
- DIP28 - unpopulated DIP28 socket(s)
-
- ROMs -
- |----------------------------------------------------------------------|
- | Common to Rainbow Islands and Rainbow Islands Extra |
- |--------------|---------------|---------------|-----------------------|
- | 234000 | 23C1000 | 27C512 | PALs |
- |--------------|---------------|---------------|-----------------------|
- | B22-01.2 | B22-03.23 | B22-12.7 | B22-05.33 (PAL16L8) |
- | B22-02.5 | B22-04.24 | B22-13.6 | B22-06.41 (PAL16L8) |
- | | | B22-14.43 | B22-07.56 (PAL20L8) |
- |--------------|---------------|---------------|-----------------------|
- |---------------------------------------|------------------------------|
- | Used only on Rainbow Islands Extra | Used only on Rainbow Islands |
- |--------------|------------------------|--------------|---------------|
- | 27C512 | C-Chip | 27C512 | C-Chip |
- |--------------|------------------------|--------------|---------------|
- | B39-01.19 | B39-05.53 | B22-10.19 | B22-15.53 |
- | B39-02.20 | | B22-11.20 | |
- | B39-03.21 | | B22-08.21 | |
- | B39-04.22 | | B22-09.22 | |
- |--------------|------------------------|--------------|---------------|
-
- Measurements
- ------------
- XTAL1 - 26.68599MHz
- XTAL2 - 16.00000MHz
- XTAL3 - 12.00000MHz
- VSync - 60.0559Hz
- HSync - 15.6745kHz
-
-Notes on Rainbow Islands romsets by Robert Gallagher
-----------------------------------------------------
-
-There are 3 code segments that differ between Rainbow Islands old and new
-version. They are all related to secret rooms;
-
- The first code segment is entered at the start of a secret room.
-
-
- rbislando rbisland
- $55EE lea $C01308,a0 $55EE lea $C00B08,a0
- move.w #$13,d0 bsr $561C
- $55F8 move.w #$15fa,2(a0) lea $C00D08,a0
- move.w #$15fa,6(a0) bsr $561C
- move.w #$15fa,$102(a0) lea $C00F08,a0
- move.w #$15fa,$106(a0) bsr $561C
- adda.l #8,a0 lea $C01108,a0
- dbf d0,$55F8 bsr $561C
- rts $561C lea $C01308,a0
- move.w #$13,d0
- ...
-
- The next code segment fixes the bonus related to entering ALL 10 Secret rooms.
- In Rainbow Islands, If you enter the last secret room, you receive a 10,000,000
- point bonus. If you have entered all 10 secret rooms, you receive a 50,000,000 point
- bonus. (BUG THAT'S NOT A BUG - the games says 1,000,000 and 5,000,000, but the code gives
- you 10mil and 50mil)
- The counter is in $10D05C.b, the (rbislando) romset never increments this counter, making
- it impossible to achieve.
-
- $56A2 cmpi.w #$31,$11c6(a5) $56CA addi.b #1,$105C(a5) ;increment the secret room count
- bne cmpi.w #$31,$11c6(a5) ;is it round 49 (50)?
- bne
-
- The final change fixes a Secret room bug that was noted by Stefan Jokisch.
- In (rbislando) it is possible to scroll the screen inside a secret room.
- You can walk right off the top of the screen, and scroll the 'next' secret
- room into view. This is fixed in (rbisland) with the following code;
-
- $5F06 move.b #1,d0 $5F34 tst.b $11c4(a5) ; in secret room?
- jsr $1736 bne $600A ; exit this routine, which is getting
- move.b #1,d0 ; the room height from c-chip bank 1
- jsr $1736 ; which we don't need
- ...
- $600A rts
-
- The (jumping) bootleg is based on the (rbislando) roms.
-
-Notes on Rainbow Islands Extra by Robert Gallagher
---------------------------------------------------
- In Rainbow Islands Extra, there are more changes than just the differing enemies/rounds.
-
- In RIE if you end a level with the same 2 digits in your score as xxxx220, you will receive
- items at the "GOAL IN" worth 3000 points each (instead of 500pts) as:
-
- 00 = french fries
- 11 = neopolaton ice cream
- 22 = creme caramel
- 33 = hamburgers
- 44 = cake slice
- 55 = iced bun
- 66 = mug of beer
- 77 = hotdog on a stick
- 88 = vanilla ice cream
- 99 = blue popsicle
-
- There are two other possibilities:
- moneybags - worth 500pts if you don't have double digits, or worth 3000 points if you do (any)
- if you got the 'Money Coin' powerup in a secret room.
- hearts - worth 10,000 each, this is based on a timer in 0x0010DBA4 && 128 == 0, making this a
- 1 in 128 chance.
-
-
- The items received in 'Secret Room' are not the same as Rainbow Islands. They are based on
- the LAST diamond you collect in the round before entering. That is; you must still collect
- the 7 diamonds in order, Red, Orange, Yellow... to enter a secret room, however, AFTER completing
- this, you can still collect diamonds. If you collect (last), you get:
-
- Red - Book of Continues - this allows you to continue after world 7
- Orange - Money Bag - this will make a 100,000pt Money bag fall from the sky on every round.
- it will also make all fruit at 'GOAL IN' into money bags.
- Yellow - Key - when taken, this will show the Secret room code completely for about 8 seconds.
- Green - Protection Fairy, gives you the protection fairy for about 8 seconds at the beginning
- of each round, or after you die. (NOT perm. like RI, code at $C528 in RIE handles this,
- and is distinctly different from the code at $BC8C in RI)
- Blue - Yellow Potion, gives you perm. fast rainbow power
- Indigo - Red Potion, gives you perm. 2X rainbow power
- Violet - Shoes, gives you perm. fast feet.
-
- Unlike the secret rooms in Rainbow Islands, in Rainbow Islands Extra, only 2 letters of the code
- for that room are revealed. The first letter, and the second letter will corespond to the last
- diamond collected before entering the secret room. (You can see this with the coloured hearts
- that remain). The idea is that you must enter the secret room 7X to get the full code, making the
- game harder. Otherwise, collecting a yellow diamond will give you the 'key' to the room, and reveal
- the code for about 5 seconds.
-
- In the secret rooms of RIE there is an added bonus; If you exit the room without collecting the
- power-up item, you will receive a 1,000,000pt bonus. The text in the room in Japanese reads:
- "KYOUKA-SOUBI WO TORAZUNI DERUTO 1000000 TEN HAIRUYO !!"
-
- If you enter all 10 secret rooms in Rainbow Islands Extra, and do NOT collect the powerups in
- _any_ of the rooms, you will receive "SPECIAL BIG BONUS !! 50000000 PTS."
-
- If you enter all 10 secret rooms, and do NOT collect the bubble-rainbow power in secret room 10,
- (though you may collect them in others) you will receive "SPECIAL BIG BONUS !! 10000000 PTS."
-
- If you collect the bubble-rainbow power in secret room 10, you will receive "ALL ROOM CLEAR
- 5000000" bonus instead.
-
- In Rainbow Islands Extra (as in Rainbow Islands), if you collect 2 of any colour 'cane'...
- (canes are collected for collecting 7 of one colour of diamond, WITHOUT 'complete' happening, or
- if 'complete', you must collect 7 of the same colour diamond within one round. (the diamond
- counters are reset to one at the beginning of each round once 'complete' has occurred).
- ...you will receive a 'Potion' (not Rainbow powerup potions)
- of the appropriate colour. Once collected, you will receive a
- 100,000pts. large fruit item at 'GOAL IN' for that round. Although the code for this is present in
- Rainbow Islands, it is rarely seen. This is not a result of poor emulation, but rather poor coding;
- In both RI and RIE, there are tables that indicate which special item is deserved, and what actions
- are required to earn them. (the number of times the event must occur).
- In both RI and RIE, you receive a special item for every 3rd enemy you kill as:
- 1. Shoes
- 2. Red Potion
- 3. Yellow Potion
- 4. Red Potion
- 5. Crystal Ball
- 6. Yellow star
- 7. Red Star
- 8. - Special item - depending on what you deserve.
-
- The Special item table can be found at $ADC0 in RI, and $B5E8 in RIE. This table is checked in
- linear fashion until a special item requirement is met.
- items 24/25/26 are: Blue Ring/Violet Ring/Red Ring.
- To get these items you collect: Red Potion/Yellow Potion/Shoes. (note that each potion collect =+2)
- In Rainbow Islands, this table shows that we need only collect:
- 3 red potions (but each one counts as +2 if you created it, or +1 if you 'found' it in a level),
- 3 yellow potions ""
- 3 red shoes (only count as one)
- The 'canes', and 'potions' occur -after- these entries (cane index 27-33, potion index 34-40)
- So the reason that you (rarely!) see the canes, and hence the potions in RI, is because you will
- almost ALWAYS satisfy at least one of these requirements: 2 RED potions are given before 1 'special'
- In Rainbow Islands Extra however, the canes are more common. This is because the index shows that
- we need to collect 12/12/12 of the above before we can get the rings.
-
- One more condition has been added to RIE regards this;
- if _no_ special item has been earned, you will receive a Potion that is the same colour as the
- LAST diamond you have collected in the round.
-
-
-
-Bugs in Jumping
----------------
-
-The bootleggers didn't defeat the protection completely: Secret
-rooms are broken, some dying enemy sprites have obviously wrong
-graphics, monsters are falling through platforms etc.
-
-
-Secret rooms in Rainbow Islands
--------------------------------
-
-Getting the small diamonds in order (red through to purple) opens
-a secret door in the boss room. The trick is to turn an enemy into
-a diamond of a specific color: It depends on its x position and
-direction. There is a cheat code at the top of each secret room
-that can be entered on the copyright screen:
-
- L -> left
- R -> right
- J -> jump
- B -> rainbow
- S -> start
-
- | regular | extra
- --------------+------------+------------
- Fast Feet | BLRBJSBJ | SLLSRJRR
- Red Potion | RJSBJLBR | JLSSSBRJ
- Yellow Potion | SSSLLRRS | BRSLJSLJ
- Hint A | BJBJBJRS | BJBJBJRS
- Hint B | LJLSLBLS | LJLSLBLS
- Continue | LBSJRLJL | LJLRSJJJ
- Money Bags | RRLLBBJS | LLSBRRJB
- Money + Cont | RRRRSBSJ | RSJRLBRS
- Hint C | SJBLRJSR | SJBLRJSR
- 100M Counter | SRBJSLSB | BBSSJJJJ
- Hint D | N/A | BBJJRLSL
- Hint E | N/A | LRSLRSJR
- Hint F | N/A | SBJLSBRR
-
-
-
-Stephh's notes (based on the game M68000 code and some tests) :
-
-1) 'rbisland*'
-
- - Region stored at 0x02fffe.w
- - Sets :
- * 'rbisland' : region = 0x0000
- * 'rbislando' : region = 0x0000
- * 'rbislande' : region = 0x0000
- - Possible regions :
- * 0x0000 : Japan
- * 0x0001 : US
- * 0x0002 : World
- * 0x0003 : US, licensed to ROMSTAR
- * 0x0004 : licensed to PHOENIX ELECTRONICS CO.
- - Coinage relies on "Coin Mode" Dip Switch (code at 0x0030fc) :
- * "Mode A" uses TAITO_COINAGE_JAPAN_OLD
- * "Mode B" uses TAITO_COINAGE_WORLD
-
-
-2) 'jumping'
-
- - Region stored at 0x02fffe.w
- - Sets :
- * 'jumping' : region = 0x0000
- - If you change the region, you'll notice that the copyright strings
- haven't been correcly erased !
- - Some Dip Switches have no effect due to code at 0x000850;
- this means the following things :
- * always upright cabinet
- * screen never flipped
- * impossible to enter the "test mode"
- * always English language
-
-***************************************************************************/
+// license:GPL-2.0+
+// copyright-holders:Miodrag Milanovic,Karl-Ludwig Deisenhofer
+/***************************************************************************************************
+DEC Rainbow 100
+Driver-in-progress by R. Belmont and Miodrag Milanovic.
+Portions (2013 - 2015) by Karl-Ludwig Deisenhofer (Floppy, ClikClok RTC, NVRAM, DIPs, hard disk).
+
+STATE AS OF APRIL 2015
+----------------------
+Driver is based entirely on the DEC-100 'B' variant (DEC-190 and DEC-100 A models are treated as clones).
+While this is OK for the compatible -190, it doesn't do justice to ancient '100 A' hardware.
+RBCONVERT.ZIP has details on how model 'A' differs from version B.
+
+Issues with this driver:
+
+(1) Keyboard emulation incomplete (fatal; inhibits the system from booting with ERROR 50).
+
+Serial ports do not work, so serial communication failure (ERROR 60) and ERROR 40 (serial
+printer interface) result. Unfortunately the BIOS tests all three serial interfaces in line.
+
+(2) while DOS 3 and UCSD systems (fort_sys, pas_sys) + diag disks boot, CPM 2.x and DOS 2.x die
+in secondary boot loader with a RESTORE (seek track 0) when track 2 sector 1 should be loaded.
+
+Writing files to floppy is next to impossible on both CPM 1.x and DOS 3 (these two OS boot
+with keyboard workarounds enabled). File deletion works, so few bytes pass.
+
+(3) heavy system interaction stalls the driver. Start one of the torture tests on the diag.disk
+and see what happens (system interaction, Z80, about any test except the video / CRT tests).
+
+(4) arbitration chip (E11; in 100-A schematics or E13 in -B) should be dumped.
+It is a 6308 OTP ROM (2048 bit, 256 x 8) used as a lookup table (LUT) with the address pins (A)
+used as inputs and the data pins (D) as output.
+
+Plays a role in DMA access to lower memory (limited to 64 K; Extended communication option only).
+Arbiter is also involved in refresh and shared memory contention (affects Z80/8088 CPU cycles).
+
+=> INPUTS on E13 (PC-100 B):
+
+SH5 RF SH REQ H -> Pin 19 (A7) shared memory request / refresh ?
+ 1K -> +5 V -> Pin 18 (A6) < UNUSED >
+SH 2 BDL ACK (L) -> Pin 17 (A5) BUNDLE OPTION: IRQ acknowledged
+SH 2 NONSHRCYC H -> Pin 5 (A4) unshared memory cycle is in progress
+SH 2 PRECHARGE H -> Pin 4 (A3)
+SH 2 SHMUX 88 ENB -> Pin 3 (A2) shared memory
+SH2 DO REFRESH H -> Pin 2 (A1) indicates that extended memory must be refreshed -> on J6 as (L)
+SH10 BDL REQ (L) -> Pin 1 (A0) BUNDLE OPTION wishes to use shared memory
+
+
+UPGRADES WORTH EMULATING:
+- SHOULD BE IMPLEMENTED AS SLOT DEVICES (for now, DIP settings affect 'system_parameter_r' only and are disabled):
+
+* Color graphics option (uses NEC upd7220 GDC). REFERENCE: Programmer's Reference: AA-AE36A-TV.
+Either 384 x 240 x 16 or 800 x 240 x 4 colors (out of 4096). 8 ? 64 K video RAM. Pallette limited to 4 colors on 100-A.
+Graphics output is independent from monochrome output.
+
+* Extended communication option (occupies BUNDLE_OPTION 1 + 2) REFERENCE: AA-V172A-TV + Addendum AV-Y890A-TV.
+Two ports, a high-speed RS-422 half-duplex interface (port A) + lower-speed RS-423 full/half-duplex interface
+with modem control (port B). A 5 Mhz. 8237 DMA controller transfers data into and out of shared memory (not: optional RAM).
+
+Uses SHRAM, SHMA, BDL SH WR L, NONSHARED CYCLE. Implementation requires DMA and arbitration logic (dump of E11/E13 ?).
+Can't be added if RD51 hard disk controller present (J4 + J5). For programming info see NEWCOM1.DOC (-> RBETECDOC.ZIP).
+
+
+* ( NO DUMP YET ) PC character set. Enhances Code Blue emulation. Simple CHARACTER ROM replacement?
+
+* ( NO DUMP YET ) TCS / Technical Character Set ('$95 from DEC, for Rainbow 100, 100B, 100+ ; separate docs available')
+ Source: price list of a DEC reseller. Possibly identical to http://vt100.net/charsets/technical.html
+
+* 8087 Numerical Data Coprocessor daughterboard. REFERENCE: EK-PCNDP-IN-PRE
+Daughterboard, to be plugged into the expansion port where the memory expansion card usually sits (J6).
+If a memory adapter board is present, it has to be plugged into a connector atop the 8087 copro board.
+The 8088 is put into the CPU socket on the coprocessor board.
+SOFTWARE: MATH test on 'Design Maturity Diagnostics'; AutoCad, TurboPascal and Fortran.
+
+* Suitable Solutions TURBOW286: 12 Mhz, 68-pin, low power AMD N80L286-12 and WAYLAND/EDSUN EL286-88-10-B ( 80286 to 8088 Processor Signal Converter )
+plus DC 7174 or DT 7174 (barely readable). Add-on card, replaces main 8088 cpu (via ribbon cable). Patched V5.03 BOOT ROM labeled 'TBSS1.3 - 3ED4'.
+
+* NEC_V20 (requires modded BOOT ROM because of - at least 2 - hard coded timing loops):
+100A: 100B/100+: 100B+ ALTERNATE RECOMMENDATION (fixes RAM size auto-detection problems when V20 is in place.
+Tested on a 30+ year old live machine. Your mileage may vary)
+
+Location Data Location Data Loc.|Data
+.... .. .... .. ------------------ 00C6 46 [ increases 'wait for Z80' from approx. 27,5 ms (old value 40) to 30,5 ms ]
+.... .. .... .. ------------------ 0303 00 [ disable CHECKSUM ]
+043F 64 072F 64 <-----------------> 072F 73 [ increases minimum cycle time from 2600 (64) to 3000 ms (73) ]
+067D 20 0B36 20 <-----------------> 0B36 20 [ USE A VALUE OF 20 FOR THE NEC - as in the initial patch! CHANGES CAUSE VFR-ERROR 10 ]
+1FFE 2B 3FFE 1B (BIOS CHECKSUM)
+1FFF 70 3FFF 88 (BIOS CHECKSUM)
+
+--------------------------------------------------------------
+Meaning of Diagnostics LEDs (from PC100ESV1.PDF found, e.g.,
+on ftp://ftp.update.uu.se/pub/rainbow/doc/rainbow-docs/
+
+Internal Diagnostic Messages F
+Msg Message Lights Display A
+No. * = on o = off T
+..........................................- = on or off A
+..........................................1 2 3 4 5 6 7 L
+--------------------------------------------------------------
+.1 Main Board (Video) o * * o * o * Yes
+.2 Main Board* (unsolicited interrupt) * * * * o * o Yes
+.3 Drive A or B (index) o o * o o * *
+.4 Drive A or B (motor) * * o o o * *
+.5 Drive A or B (seek) o * o o o * *
+.6 Drive A or B (read) * o o o o * *
+.7 Drive A or B (restore) o * * o o * *
+.8 Drive A or B (step) * o * o o * *
+.9 System Load incomplete+ (System Load) o o o o o o o
+10 Main Board (video, vfr) * * * o * o * Yes
+11 System Load incomplete+ (Boot Load) o o o o o o o
+12 Drive A or B (not ready) o o o o o * *
+13 Keyboard * * o * o * o Yes
+14 Main Board (nvm data) * * * * o * *
+15 (no msg. 15 in that table)
+16 Interrupts off* * * * o o o o Cond.
+17 Main Board (video RAM) * * * o * * o Yes
+18 Main Board (Z80 crc) * * * * o o * Yes
+19 Main Board RAM (0-64K) - - - * * o * Yes
+20 Main Board (unsolicited int., Z80) * * * o o o * Yes
+21 Drive Not Ready+ o o o o o o o
+22 Remove Card or Diskette o * * o o o *
+23 Non-System Diskette+ o o o o o o o
+24 new memory size = nnnK o o o o o o o
+25 Set Up Defaults stored o o o o o o o
+26 Main Board (RAM arbitration) * * * o * o o Yes
+27 Main Board (RAM option) - - - * * o o
+28 RX50 controller board * * * o o * *
+29 Main Board* (Z80 response) * * * * o o o
+30 Main Board (ROM crc, ROM 0) * * * * * * * Yes
+31 Main Board (ROM crc, ROM 1) * * * * * * o Yes
+- Main Board (ROM crc, ROM 2) * * * o * * * Yes
+33 Main Board (contention) o o o o o * o Yes
+40 Main Board (printer port) * o * * o * o
+50 Main Board (keyboard port) o o * * o * o Yes
+60 Main Board (comm port) o * * * o * o
+--------------------------------------------------------------
+* These errors can occur at any time because the circuits
+are monitored constantly
++ These messages may occur during power-up if auto boot is
+selected
+
+PCB layout
+==========
+
+DEC-100 model B
+= part no.70-19974-02 according to document EK-RB100-TM_001
+
+PCB # 5416206 / 5016205-01C1:
+
+7-6-5-4 |3-2-1
+DIAGNOSTIC-LEDs |J3 | |J2 | |J1 |
+|------|----8088|Z80-|--|VIDEO|-|PRINTER|-|SERIAL|----|
+| 2 x 64 K |/KBD.| !!!!!|
+| R A M NEC D7201C |P|!W90!|
+| |O|!!!!!|
+| [W6] ROM 1 INTEL 8088 |W| |
+| (23-020e5-00) |E| |
+| |R| |
+| ...J5.. BOOT ROM 0 ...J4... =J8 |
+| (23-022e5-00) |
+| ...J6... |
+| [W5] |
+| |
+| INTEL 8251A ZILOG Z 80A |
+| [W18] |
+| A 4x 74 LS 244 |
+| M S [W15] |
+| 9 - DEC-DC011 74 LS 245 |
+| 1 R [W14] |
+| 2 A [W13] |
+| 8 M CHARGEN.- |
+| ROM (4K) ...J7... | ...J9 = RX50 |
+| |
+|-------------PCB# 5416206 / 5016205-01C1-------------|
+
+CONNECTORS ("J"):
+ ...J5... ...J4... both: RD51 controller (hard disk)
+ ...J5... ...J4... both: EXTENDED COMM. controller
+
+ ...J6... is the MEMORY OPTION connector (52 pin)
+ ...J7... is the GRAPHICS OPTION connector (40 pin)
+ ...J9... RX50 FLOPPY CONTROLLER (40 pin; REQUIRED)
+
+JUMPERS (labeled "W"):
+ W5 + W6 are out when 16K x 8 EPROMS are used
+/ W5 + W6 installed => 32 K x 8 EPROMs (pin 27 = A14)
+
+W13, W14, W15, W18 = for manufacturing tests.
+=> W13 - W15 affect diagnostic read register (port $0a)
+=> W18 pulls DSR to ground and affects 8251A - port $11 (bit 7)
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!! DO NOT SHORT JUMPER / CONNECTOR [W90] ON LIVE HARDWARE !!
+!! !!
+!! WARNING: CIRCUIT DAMAGE could occur if this jumper is !!
+!! set by end users. See PDF document AA-V523A-TV. !!
+!! !!
+!! W90 connects to pin 2 (Voltage Bias on PWR connector J8)!!
+!! and is designed FOR ===> FACTORY TESTS OF THE PSU <=== !!
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+WIRE CONNECTORS - SEEN ON SCHEMATICS - NOT PRESENT ON DEC-100 B (-A only?):
+W16 pulls J2 printer port pin 1 to GND when set (chassis to logical GND).
+W17 pulls J1 serial port pin 1 to GND when set (chassis to logical GND).
+****************************************************************************/
+
+// ---------------------------------------------------------------------------
+// WORKAROUNDS:
+// (1) FORCE LOGO: - not valid for 100-A ROM -
+//#define FORCE_RAINBOW_B_LOGO
+
+// (2) KEYBOARD_WORKAROUND : also requires FORCE...LOGO (and preliminary headers)
+//#define KEYBOARD_WORKAROUND
+//#define KBD_DELAY 8 // (debounce delay)
+// ---------------------------------------------------------------------------
+
+
+// Define standard and maximum RAM sizes (A, then B model):
+//#define BOARD_RAM 0x0ffff // 64 K base RAM (100-A)
+//#define END_OF_RAM 0xcffff // very last byte (100-A) DO NOT CHANGE.
+
+// DEC-100-B probes until a 'flaky' area is found (BOOT ROM around F400:0E04).
+// It is no longer possible to key in the RAM size from within the 100-B BIOS.
+#define BOARD_RAM 0x1ffff // 128 K base RAM (100-B)
+#define END_OF_RAM 0xdffff // very last byte (100-B) DO NOT CHANGE.
+
+// ----------------------------------------------------------------------------------------------
#include "emu.h"
+#include "cpu/i86/i86.h"
#include "cpu/z80/z80.h"
-#include "cpu/m68000/m68000.h"
-#include "includes/taitoipt.h"
-#include "audio/taitosnd.h"
-#include "sound/2203intf.h"
-#include "sound/2151intf.h"
-#include "includes/rainbow.h"
+#include "video/vtvideo.h"
+#include "machine/wd_fdc.h"
+#include "formats/rx50_dsk.h"
+#include "formats/pc_dsk.h" // PC Formats (TESTING)
+#include "imagedev/flopdrv.h"
+#include "imagedev/harddriv.h"
+#include "machine/wd2010.h"
-WRITE16_MEMBER(rbisland_state::jumping_sound_w)
+#include "machine/i8251.h"
+#include "machine/clock.h"
+#include "machine/dec_lk201.h"
+#include "machine/nvram.h"
+
+#include "machine/ds1315.h"
+
+#include "rainbow.lh" // BEZEL - LAYOUT with LEDs for diag 1-7, keyboard 8-11 and floppy 20-23
+
+#define LK201_TAG "lk201"
+#define FD1793_TAG "fd1793x"
+
+#define INVALID_DRIVE 255
+#define MAX_FLOPPIES 4
+
+class rainbow_state : public driver_device
+{
+public:
+ rainbow_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
+
+#ifdef KEYBOARD_WORKAROUND
+#include "./m_kbd1.c"
+#endif
+
+
+ m_inp1(*this, "W13"),
+ m_inp2(*this, "W14"),
+ m_inp3(*this, "W15"),
+ m_inp4(*this, "W18"),
+ m_inp5(*this, "HARD DISK PRESENT"), // DO NOT CHANGE ORDER (also: COMMUNICATION EXTENSION)
+ m_inp6(*this, "FLOPPY CONTROLLER"), // DO NOT CHANGE ORDER
+ m_inp7(*this, "GRAPHICS OPTION"), // DO NOT CHANGE ORDER
+ m_inp8(*this, "MEMORY PRESENT"), // DO NOT CHANGE ORDER
+ m_inp9(*this, "MONITOR TYPE"),
+ m_inp10(*this, "J17"),
+ m_inp11(*this, "CLIKCLOK"),
+ m_inp12(*this, "WATCHDOG"),
+
+ m_crtc(*this, "vt100_video"),
+ m_i8088(*this, "maincpu"),
+ m_z80(*this, "subcpu"),
+ m_fdc(*this, FD1793_TAG),
+
+ m_hdc(*this, "hdc"),
+
+ m_kbd8251(*this, "kbdser"),
+ m_lk201(*this, LK201_TAG),
+ m_p_ram(*this, "p_ram"),
+
+ m_p_vol_ram(*this, "vol_ram"),
+ m_p_nvram(*this, "nvram"),
+
+ m_shared(*this, "sh_ram"),
+
+ m_rtc(*this, "rtc")
+ {
+ }
+
+ DECLARE_READ8_MEMBER(read_video_ram_r);
+ DECLARE_WRITE_LINE_MEMBER(clear_video_interrupt);
+ //DECLARE_WRITE8_MEMBER(hd_status_10C_w); // MHFU DISABLE REGISTER (W)
+
+ DECLARE_READ8_MEMBER(diagnostic_r);
+ DECLARE_WRITE8_MEMBER(diagnostic_w);
+
+ DECLARE_READ8_MEMBER(comm_control_r);
+ DECLARE_WRITE8_MEMBER(comm_control_w);
+
+ DECLARE_READ8_MEMBER(share_z80_r);
+ DECLARE_WRITE8_MEMBER(share_z80_w);
+
+ // 'RD51' MFM CONTROLLER (WD1010) *************************************
+ DECLARE_READ8_MEMBER(hd_status_60_r); // TRI STATE DATA PORT (R/W)
+ DECLARE_WRITE8_MEMBER(hd_status_60_w);
+
+ DECLARE_READ8_MEMBER(hd_status_68_r); // EXTRA REGISTER 0x68 (R/W 8088)
+ DECLARE_WRITE8_MEMBER(hd_status_68_w);
+
+ DECLARE_READ8_MEMBER(hd_status_69_r); // EXTRA REGISTER 0x69 (R/- 8088)
+
+ DECLARE_WRITE_LINE_MEMBER(bundle_irq);
+ DECLARE_WRITE_LINE_MEMBER(hdc_bdrq); // BUFFER DATA REQUEST (FROM WD)
+ DECLARE_WRITE_LINE_MEMBER(hdc_bcr); // BUFFER COUNTER RESET (FROM WD)
+
+ DECLARE_WRITE_LINE_MEMBER(hdc_step);
+ DECLARE_WRITE_LINE_MEMBER(hdc_direction);
+
+ DECLARE_WRITE_LINE_MEMBER(hdc_read_sector);
+ DECLARE_WRITE_LINE_MEMBER(hdc_write_sector);
+
+ DECLARE_READ_LINE_MEMBER(hdc_drive_ready);
+ DECLARE_READ_LINE_MEMBER(hdc_write_fault);
+
+ DECLARE_READ8_MEMBER(i8088_latch_r);
+ DECLARE_WRITE8_MEMBER(i8088_latch_w);
+ DECLARE_READ8_MEMBER(z80_latch_r);
+ DECLARE_WRITE8_MEMBER(z80_latch_w);
+
+ DECLARE_WRITE8_MEMBER(z80_diskdiag_read_w);
+ DECLARE_WRITE8_MEMBER(z80_diskdiag_write_w);
+
+ DECLARE_READ8_MEMBER(z80_generalstat_r);
+
+ DECLARE_READ8_MEMBER(z80_diskstatus_r);
+ DECLARE_WRITE8_MEMBER(z80_diskcontrol_w);
+
+ DECLARE_READ8_MEMBER(system_parameter_r);
+
+ DECLARE_WRITE_LINE_MEMBER(kbd_tx);
+ DECLARE_WRITE_LINE_MEMBER(kbd_rxready_w);
+ DECLARE_WRITE_LINE_MEMBER(kbd_txready_w);
+
+ DECLARE_WRITE_LINE_MEMBER(irq_hi_w);
+
+ DECLARE_READ8_MEMBER(rtc_reset);
+ DECLARE_READ8_MEMBER(rtc_enable);
+ DECLARE_READ8_MEMBER(rtc_r);
+
+ DECLARE_READ8_MEMBER(rtc_reset2);
+ DECLARE_READ8_MEMBER(rtc_enable2);
+ DECLARE_READ8_MEMBER(rtc_r2);
+
+ DECLARE_READ8_MEMBER(rtc_w);
+
+
+#ifdef KEYBOARD_WORKAROUND
+#include "./port9x_Ax.c"
+#endif
+ UINT32 screen_update_rainbow(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ INTERRUPT_GEN_MEMBER(vblank_irq);
+
+ DECLARE_WRITE_LINE_MEMBER(write_keyboard_clock);
+ TIMER_DEVICE_CALLBACK_MEMBER(motor_tick);
+
+ DECLARE_FLOPPY_FORMATS(floppy_formats);
+protected:
+ virtual void machine_start();
+
+private:
+ enum
+ { // LOWEST PRIORITY
+ // Mnemonic - - - - - - TYPE ADDRESS - Source
+ // [1][0] [1][0] <= Depends on DTR(L) output of keyboard PUSART (on Rainbow-100 B)
+ IRQ_8088_MAILBOX = 0, // 27/A7 9C/29C - [built-in] Interrupt from Z80A
+ IRQ_8088_KBD, // 26/A6 98/298 - [built-in] KEYBOARD Interrupt - 8251A
+ IRQ_BDL_INTR_L, // 25/A5 94/294 - [ext. BUNDLE OPTION] Hard disk or Extended communication IRQ (no DMA)
+ // IRQ_COMM_PTR_INTR_L, // 24/A4 90/290 - [built-in 7201] Communication/Printer interrupt
+ // IRQ_DMAC_INTR_L, // 23/A3 8C/28C - [ext. COMM.BOARD only] - external DMA Controller (8237) interrupt
+ // IRQ_GRF_INTR_L, // 22/A2 88/288 - [ext. COLOR GRAPHICS]
+ // IRQ_BDL_INTR_1L, // 21/A1 84/284 - [ext. COMM.BOARD only]
+ IRQ_8088_VBL, // 20/A0 80/280 - [built-in DC012] - VERT INTR L (= schematics)
+ IRQ_8088_NMI // 02/02 08/08 - [external MEMORY EXTENSION] - PARITY ERROR L
+ }; // HIGHEST PRIORITY
+
+
+#ifdef KEYBOARD_WORKAROUND
+#include "./m_kbd2.c"
+#endif
+
+ required_ioport m_inp1;
+ required_ioport m_inp2;
+ required_ioport m_inp3;
+ required_ioport m_inp4;
+ required_ioport m_inp5;
+ required_ioport m_inp6;
+ required_ioport m_inp7;
+ required_ioport m_inp8;
+ required_ioport m_inp9;
+ required_ioport m_inp10;
+ required_ioport m_inp11;
+ required_ioport m_inp12;
+ required_device<rainbow_video_device> m_crtc;
+ required_device<cpu_device> m_i8088;
+ required_device<cpu_device> m_z80;
+
+ required_device<fd1793_t> m_fdc;
+ optional_device<wd2010_device> m_hdc;
+
+ required_device<i8251_device> m_kbd8251;
+ required_device<lk201_device> m_lk201;
+ required_shared_ptr<UINT8> m_p_ram;
+ required_shared_ptr<UINT8> m_p_vol_ram;
+ required_shared_ptr<UINT8> m_p_nvram;
+ required_shared_ptr<UINT8> m_shared;
+
+ optional_device<ds1315_device> m_rtc;
+
+ void raise_8088_irq(int ref);
+ void lower_8088_irq(int ref);
+
+ void update_8088_irqs();
+
+ void update_bundle_irq(); // RD51 or COMM.OPTION!
+ int do_write_sector();
+ void hdc_buffer_counter_reset();
+ void hdc_reset();
+
+ hard_disk_file *rainbow_hdc_file(int ref);
+
+ bool m_SCREEN_BLANK;
+
+ int INT88, INTZ80;
+
+ bool m_zflip; // Z80 alternate memory map with A15 inverted
+ bool m_z80_halted;
+ int m_z80_diskcontrol; // retains values needed for status register
+
+ bool m_kbd_tx_ready, m_kbd_rx_ready;
+ int m_KBD;
+
+ int m_beep_counter;
+ int MOTOR_DISABLE_counter;
+
+ int COLD_BOOT;
+ UINT8 m_diagnostic;
+
+ UINT8 m_z80_private[0x800]; // Z80 private 2K
+ UINT8 m_z80_mailbox, m_8088_mailbox;
+
+ void update_kbd_irq();
+ virtual void machine_reset();
+
+ int m_unit;
+ floppy_image_device *m_floppy;
+
+ int m_irq_high;
+ UINT32 m_irq_mask;
+
+ int m_bdl_irq;
+ int m_hdc_buf_offset;
+
+ bool m_hdc_index_latch;
+ bool m_hdc_step_latch;
+ int m_hdc_direction;
+ bool m_hdc_track0;
+ bool m_hdc_write_gate;
+
+ bool m_hdc_drive_ready;
+ bool m_hdc_write_fault;
+
+ UINT8 m_hdc_buffer[2048];
+};
+
+// initially only RX50IMG_FORMAT, FLOPPY_TD0_FORMAT, (IMD + PC : TESTING !!)
+FLOPPY_FORMATS_MEMBER(rainbow_state::floppy_formats)
+FLOPPY_RX50IMG_FORMAT,
+FLOPPY_TD0_FORMAT,
+FLOPPY_IMD_FORMAT,
+FLOPPY_PC_FORMAT
+FLOPPY_FORMATS_END
+
+// initially only : SLOT_INTERFACE("525qd", FLOPPY_525_SSQD)
+static SLOT_INTERFACE_START(rainbow_floppies)
+SLOT_INTERFACE("525qd0", FLOPPY_525_SSQD)
+SLOT_INTERFACE("525qd1", FLOPPY_525_SSQD)
+SLOT_INTERFACE("525qd2", FLOPPY_525_SSQD)
+SLOT_INTERFACE("525qd3", FLOPPY_525_SSQD)
+SLOT_INTERFACE_END
+// testing: SLOT_INTERFACE("35ssdd", FLOPPY_35_SSDD)
+
+void rainbow_state::machine_start()
{
- if (ACCESSING_BITS_0_7)
+ MOTOR_DISABLE_counter = 2; // soon resets drv.LEDs
+ COLD_BOOT = 1;
+
+ m_SCREEN_BLANK = false;
+
+ save_item(NAME(m_z80_private));
+ save_item(NAME(m_z80_mailbox));
+ save_item(NAME(m_8088_mailbox));
+ save_item(NAME(m_zflip));
+ save_item(NAME(m_kbd_tx_ready));
+ save_item(NAME(m_kbd_rx_ready));
+ save_item(NAME(m_irq_high));
+ save_item(NAME(m_irq_mask));
+
+#ifdef FORCE_RAINBOW_B_LOGO
+ UINT8 *rom = memregion("maincpu")->base();
+
+ rom[0xf4000 + 0x364a] = 2 + 8; // 2 :set ; 4 : reset, 8 : set for 0xf4363 ( 0363 WAIT_FOR_BIT3__loc_35E )
+
+ rom[0xf4000 + 0x0363] = 0x90;
+ rom[0xf4000 + 0x0364] = 0x90;
+
+ // If bit 2 = 1 (Efff9), then a keyboard powerup is necessary (=> will lock up in current state)
+ rom[0xf4000 + 0x3638] = 0x80; // OR instead of TEST
+ rom[0xf4000 + 0x3639] = 0x0f; // OR instead of TEST
+ rom[0xf4000 + 0x363a] = 0x08; // 04 => 08
+
+ rom[0xf4000 + 0x363b] = 0xeb; // COND => JMPS
+
+ if (rom[0xf4174] == 0x75)
{
- m_jumping_latch = data & 0xff; /*M68000 writes .b to $400007*/
- m_audiocpu->set_input_line(0, HOLD_LINE);
+ rom[0xf4174] = 0xeb; // jmps RAINBOW100_LOGO__loc_33D
+ rom[0xf4175] = 0x08;
}
+
+ if (rom[0xf4000 + 0x3ffc] == 0x31) // 100-B
+ rom[0xf4384] = 0xeb; // JMPS => BOOT80
+
+ if (rom[0xf4000 + 0x3ffc] == 0x35) // v5.05
+ rom[0xf437b] = 0xeb;
+
+ //TEST-DEBUG: always reset NVM to defaults (!)
+ //rom[0x3d6c] = 0x90;
+ //rom[0x3d6d] = 0x90;
+#endif
+
+#ifdef KEYBOARD_WORKAROUND
+#include "./rainbow_keyboard0.c"
+#endif
}
+static ADDRESS_MAP_START(rainbow8088_map, AS_PROGRAM, 8, rainbow_state)
+ADDRESS_MAP_UNMAP_HIGH
+AM_RANGE(0x00000, 0x0ffff) AM_RAM AM_SHARE("sh_ram")
+AM_RANGE(0x10000, END_OF_RAM) AM_RAM
-/***************************************************************************
- MEMORY STRUCTURES
-***************************************************************************/
+// There is a 2212 (256 x 4 bit) NVRAM from 0xed000 to 0xed0ff (*)
+// shadowed at $ec000 - $ecfff and from $ed100 - $edfff.
+
+// (*) ED000 - ED0FF is the area the DEC-100-B BIOS accesses and checks
+
+// - Specs say that the CPU has direct access to volatile RAM only.
+// So NVRAM is hidden and loads & saves are triggered within the
+// 'diagnostic_w' handler (similar to real hardware).
+
+// - Address bits 8-12 are ignored (-> AM_MIRROR).
+AM_RANGE(0xed000, 0xed0ff) AM_RAM AM_SHARE("vol_ram") AM_MIRROR(0x1f00)
+AM_RANGE(0xed100, 0xed1ff) AM_RAM AM_SHARE("nvram")
+
+AM_RANGE(0xee000, 0xeffff) AM_RAM AM_SHARE("p_ram")
+AM_RANGE(0xf0000, 0xfffff) AM_ROM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START(rainbow8088_io, AS_IO, 8, rainbow_state)
+ADDRESS_MAP_UNMAP_HIGH
+//ADDRESS_MAP_GLOBAL_MASK(0xff)
+ADDRESS_MAP_GLOBAL_MASK(0x1ff)
+AM_RANGE(0x00, 0x00) AM_READWRITE(i8088_latch_r, i8088_latch_w)
+
+// 0x02 Communication status / control register (8088)
+AM_RANGE(0x02, 0x02) AM_READWRITE(comm_control_r, comm_control_w)
+
+AM_RANGE(0x04, 0x04) AM_DEVWRITE("vt100_video", rainbow_video_device, dc011_w)
+
+// TODO: unmapped [06] : Communication bit rates (see page 21 of PC 100 SPEC)
+
+AM_RANGE(0x08, 0x08) AM_READ(system_parameter_r)
+
+AM_RANGE(0x0a, 0x0a) AM_READWRITE(diagnostic_r, diagnostic_w)
+
+AM_RANGE(0x0c, 0x0c) AM_DEVWRITE("vt100_video", rainbow_video_device, dc012_w)
+
+// TODO: unmapped [0e] : PRINTER BIT RATE REGISTER (WO)
+
+AM_RANGE(0x10, 0x10) AM_DEVREADWRITE("kbdser", i8251_device, data_r, data_w)
+AM_RANGE(0x11, 0x11) AM_DEVREADWRITE("kbdser", i8251_device, status_r, control_w)
+
+// ===========================================================
+// There are 4 select lines for Option Select 1 to 4
+// Option Select ------------------- Bundle Option Present
+// 1 2 3 4: BDL PRES (L):
+// X X o o Communication Option----- X
+// o X o o RD51 hard disk controller X --------- (X = SELECT)
+// ===========================================================
+// 0x20 -> 0x2f ***** EXTENDED COMM. OPTION / Option Select 1.
+// See boot rom @1EA6: 0x27 (<- RESET EXTENDED COMM OPTION )
+// ===========================================================
+// 0x30 -> 0x3f ***** Option Select 3
+// ===========================================================
+// 0x40 COMMUNICATIONS DATA REGISTER (MPSC)
+// 0x41 PRINTER DATA REGISTER (MPSC)
+// 0x42 COMMUNICATIONS CONTROL / STATUS REGISTER (MPSC)
+// 0x43 PRINTER CONTROL / STATUS REGISTER (MPSC)
+// ===========================================================
+// 0x50 - 0x57 ***** COLOR GRAPHICS OPTION:
+// 50h Graphics option software reset. Any write to this
+// port also resynchronizes the read/modify/write memory
+// cycles of the Graphics Option to those of the GDC (*)
+// * see boot ROM @1EB4/8
+// 51h Data written to this port is loaded into the area
+// selected by the previous write to port 53h.
+
+// 52h Data written to this port is loaded into the Write Buffer.
+
+// 53h Data written to this port provides address selection
+// for indirect addressing (see Indirect Register).
+
+// 54h Data written to this port is loaded into the low-order
+// byte of the Write Mask.
+
+// 55h Data written to this port is loaded into the high-order
+// byte of the Write Mask.
+
+// 56h Data written to this port is loaded into the GDC's FIFO
+// Buffer and flagged as a parameter.
+// ===========================================================
+// 0x60 -> 0x6f ***** EXTENDED COMM. OPTION / Option Select 2.
+// ===========================================================
+// 0x60 -> 0x6f ***** RD51 HD. CONTROLLER / Option Select 2.
+AM_RANGE(0x60, 0x67) AM_DEVREADWRITE("hdc", wd2010_device, read, write)
+AM_RANGE(0x68, 0x68) AM_READWRITE(hd_status_68_r, hd_status_68_w)
+AM_RANGE(0x69, 0x69) AM_READ(hd_status_69_r)
+// ===========================================================
+// THE RD51 CONTROLLER:
+// - WD1010AL - 00 (WDC '83)
+// + 2 K x 8 SRAM (SY2128-4 or Japan 8328) 21-17872-01
+// + 74(L)Sxxx glue logic (drive/head select, buffers etc.)
+// + 10 Mhz Quartz (/2)
+// SERVICE JUMPERS (not to be removed for normal operation):
+// JUMPER "W1" : bridge between 10 Mhz master clock and board
+// JUMPER "W2" : bridges SYNC within Read Data Circuit
+// JUMPER "W3" : bridges 'drive read data' (from hard disk)
+// Later RD51 boards (> '83 week 28 ?) have no jumpers at all.
+// ===========================================================
+// DEC RD TYPE (MByte) CYL ---- HEADS ---- MODEL (typical)
+// DEC RD50 (5 Mbyte): 153 cyl. 4 heads -- ST506
+// DEC RD51(10 Mbyte); 306 cyl. 4 heads -- ST412
+// DEC RD31(20 Mbyte); 615 cyl. 4 heads -- ST225
+// DEC RD52(32 Mbyte); 512 cyl. 8 heads -- Q540 [!]
+// DEC RD32(40 Mbyte); 820 cyl. 6 heads -- ST251 [!]
+// DEC RD53(67 Mbyte); 1024 cyl.8 heads -- 1325 [!]
+// [!] More than 4 heads. Prepare with WUTIL and / or DSKPREP.
+
+// SIZE RESTRICTIONS
+// * HARDWARE:
+// WD1010 controller has a built-in limit of 8 heads / 1024 cylinders.
+// * BOOT LOADERS:
+// - the DEC boot loader (and FDISK from DOS 3.10) initially allowed a maximum hard disc size of 20 MB.
+// - the custom boot loader that comes with 'WUTIL 3.2' allows 117 MB and 8 surfaces.
+// * SOFTWARE:
+// - MS-DOS 2 allows a maximum partition size of 16 MB (sizes > 15 MB are incompatible to DOS 3)
+// [ no more than 4 partitions of 8 MB size on one hard disk possible ]
+// - MS-DOS 3 - and Concurrent CPM - have a global 32 MB (1024 cylinder) limit
+// - a CP/M-86-80 partition can have up to 8 MB (all CP/M partitions together must not exceed 10 MB)
+// ===========================================================
+// 0x70 -> 0x7f ***** Option Select 4
+// ===========================================================
+// 0x10c
+AM_RANGE(0x10c, 0x10c) AM_DEVWRITE("vt100_video", rainbow_video_device, dc012_w)
+
+
+#ifdef KEYBOARD_WORKAROUND
+#include "./am_range_9x_Ax.c"
+#endif
-static ADDRESS_MAP_START( rbisland_map, AS_PROGRAM, 16, rbisland_state )
- AM_RANGE(0x000000, 0x07ffff) AM_ROM
- AM_RANGE(0x10c000, 0x10ffff) AM_RAM /* main RAM */
- AM_RANGE(0x200000, 0x200fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
- AM_RANGE(0x201000, 0x203fff) AM_RAM /* r/w in initial checks */
- AM_RANGE(0x390000, 0x390003) AM_READ_PORT("DSWA")
- AM_RANGE(0x3a0000, 0x3a0001) AM_WRITE(rbisland_spritectrl_w)
- AM_RANGE(0x3b0000, 0x3b0003) AM_READ_PORT("DSWB")
- AM_RANGE(0x3c0000, 0x3c0003) AM_WRITENOP /* written very often, watchdog? */
- AM_RANGE(0x3e0000, 0x3e0001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_device, master_port_w, 0x00ff)
- AM_RANGE(0x3e0002, 0x3e0003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, master_comm_r, master_comm_w, 0x00ff)
- AM_RANGE(0x800000, 0x8007ff) AM_READWRITE(rbisland_cchip_ram_r,rbisland_cchip_ram_w)
- AM_RANGE(0x800802, 0x800803) AM_READWRITE(rbisland_cchip_ctrl_r,rbisland_cchip_ctrl_w)
- AM_RANGE(0x800c00, 0x800c01) AM_WRITE(rbisland_cchip_bank_w)
- AM_RANGE(0xc00000, 0xc0ffff) AM_DEVREADWRITE("pc080sn", pc080sn_device, word_r, word_w)
- AM_RANGE(0xc20000, 0xc20003) AM_DEVWRITE("pc080sn", pc080sn_device, yscroll_word_w)
- AM_RANGE(0xc40000, 0xc40003) AM_DEVWRITE("pc080sn", pc080sn_device, xscroll_word_w)
- AM_RANGE(0xc50000, 0xc50003) AM_DEVWRITE("pc080sn", pc080sn_device, ctrl_word_w)
- AM_RANGE(0xd00000, 0xd03fff) AM_DEVREADWRITE("pc090oj", pc090oj_device, word_r, word_w) /* sprite ram + other stuff */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( jumping_map, AS_PROGRAM, 16, rbisland_state )
- AM_RANGE(0x000000, 0x09ffff) AM_ROM
- AM_RANGE(0x10c000, 0x10ffff) AM_RAM /* main RAM */
- AM_RANGE(0x200000, 0x200fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
- AM_RANGE(0x201000, 0x203fff) AM_RAM /* r/w in initial checks */
- AM_RANGE(0x400000, 0x400001) AM_READ_PORT("DSWA")
- AM_RANGE(0x400002, 0x400003) AM_READ_PORT("DSWB")
- AM_RANGE(0x401000, 0x401001) AM_READ_PORT("401001")
- AM_RANGE(0x401002, 0x401003) AM_READ_PORT("401003")
- AM_RANGE(0x3a0000, 0x3a0001) AM_WRITE(jumping_spritectrl_w)
- AM_RANGE(0x3c0000, 0x3c0001) AM_WRITENOP /* watchdog? */
- AM_RANGE(0x400006, 0x400007) AM_WRITE(jumping_sound_w)
- AM_RANGE(0x420000, 0x420001) AM_READNOP /* read, but result not used */
- AM_RANGE(0x430000, 0x430003) AM_DEVWRITE("pc080sn", pc080sn_device, yscroll_word_w)
- AM_RANGE(0x440000, 0x4407ff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x800000, 0x80ffff) AM_WRITENOP /* original c-chip location (not used) */
- AM_RANGE(0xc00000, 0xc0ffff) AM_DEVREADWRITE("pc080sn", pc080sn_device, word_r, word_w)
- AM_RANGE(0xc20000, 0xc20003) AM_WRITENOP /* seems it is a leftover from rbisland: scroll y written here too */
- AM_RANGE(0xc40000, 0xc40003) AM_DEVWRITE("pc080sn", pc080sn_device, xscroll_word_w)
- AM_RANGE(0xd00000, 0xd01fff) AM_RAM /* original spriteram location, needed for Attract Mode */
+static ADDRESS_MAP_START(rainbowz80_mem, AS_PROGRAM, 8, rainbow_state)
+ADDRESS_MAP_UNMAP_HIGH
+AM_RANGE(0x0000, 0xffff) AM_READWRITE(share_z80_r, share_z80_w)
ADDRESS_MAP_END
+static ADDRESS_MAP_START(rainbowz80_io, AS_IO, 8, rainbow_state)
+ADDRESS_MAP_UNMAP_HIGH
+ADDRESS_MAP_GLOBAL_MASK(0xff)
+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)
+
+// 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)
+ADDRESS_MAP_END
-/**********************************************************
- SOUND
+/* Input ports */
+
+/* DIP switches */
+static INPUT_PORTS_START(rainbow100b_in)
+
+#ifdef KEYBOARD_WORKAROUND
+#include "./rainbow_ipt.c"
+#endif
+PORT_START("MONITOR TYPE")
+PORT_DIPNAME(0x03, 0x03, "MONOCHROME MONITOR")
+PORT_DIPSETTING(0x01, "WHITE")
+PORT_DIPSETTING(0x02, "GREEN")
+PORT_DIPSETTING(0x03, "AMBER")
+
+// MEMORY, FLOPPY, BUNDLE, GRAPHICS affect 'system_parameter_r':
+PORT_START("MEMORY PRESENT")
+PORT_DIPNAME(0xF0000, 0x20000, "MEMORY PRESENT")
+PORT_DIPSETTING(0x10000, "64 K (MINIMUM ON 100-A)") // see BOARD_RAM
+PORT_DIPSETTING(0x20000, "128 K (MINIMUM ON 100-B)")
+PORT_DIPSETTING(0x30000, "192 K (w. MEMORY OPTION)")
+PORT_DIPSETTING(0x40000, "256 K (w. MEMORY OPTION)")
+PORT_DIPSETTING(0x50000, "320 K (100-B MEMORY OPTION)")
+PORT_DIPSETTING(0x60000, "384 K (100-B MEMORY OPTION)")
+PORT_DIPSETTING(0x70000, "448 K (100-B MEMORY OPTION)")
+PORT_DIPSETTING(0x80000, "512 K (100-B MEMORY OPTION)")
+PORT_DIPSETTING(0x90000, "576 K (100-B MEMORY OPTION)")
+PORT_DIPSETTING(0xA0000, "640 K (100-B MEMORY OPTION)")
+PORT_DIPSETTING(0xB0000, "704 K (100-B MEMORY OPTION)")
+PORT_DIPSETTING(0xC0000, "768 K (100-B MEMORY OPTION)")
+PORT_DIPSETTING(0xD0000, "832 K (100-B MEMORY OPTION)") // see END_OF_RAM
+PORT_DIPSETTING(0xE0000, "896 K (100-B MAX. MEMORY)")
+
+PORT_START("FLOPPY CONTROLLER") // floppy controller is not optional
+PORT_DIPNAME(0x01, 0x01, "FLOPPY CONTROLLER") PORT_TOGGLE
+PORT_DIPSETTING(0x01, DEF_STR(On))
+
+// EXT.COMM.card -or- RD51 HD. controller (marketed later).
+PORT_START("HARD DISK PRESENT") // BUNDLE_OPTION
+PORT_DIPNAME(0x01, 0x00, "HARD DISK PRESENT") PORT_TOGGLE
+PORT_DIPSETTING(0x00, DEF_STR(Off))
+PORT_DIPSETTING(0x01, DEF_STR(On))
+
+PORT_START("CLIKCLOK") // DS1315 RTC
+PORT_DIPNAME(0x01, 0x00, "REAL TIME CLOCK (CLIKCLOK)") PORT_TOGGLE
+PORT_DIPSETTING(0x00, DEF_STR(Off))
+PORT_DIPSETTING(0x01, DEF_STR(On))
+
+PORT_START("GRAPHICS OPTION") // NEC COLOR GRAPHICS not implemented yet
+PORT_DIPNAME(0x00, 0x00, "GRAPHICS OPTION") PORT_TOGGLE
+PORT_DIPSETTING(0x00, DEF_STR(Off))
+PORT_DIPSETTING(0x01, DEF_STR(On))
+
+// W13 - W18 are used for factory tests and affect the boot process -
+PORT_START("W13")
+PORT_DIPNAME(0x02, 0x02, "W13 (FACTORY TEST A, LEAVE OFF)") PORT_TOGGLE
+PORT_DIPSETTING(0x02, DEF_STR(Off))
+PORT_DIPSETTING(0x00, DEF_STR(On))
+
+PORT_START("W14")
+PORT_DIPNAME(0x04, 0x04, "W14 (FACTORY TEST B, LEAVE OFF)") PORT_TOGGLE
+PORT_DIPSETTING(0x04, DEF_STR(Off))
+PORT_DIPSETTING(0x00, DEF_STR(On))
+PORT_START("W15")
+PORT_DIPNAME(0x08, 0x08, "W15 (FACTORY TEST C, LEAVE OFF)") PORT_TOGGLE
+PORT_DIPSETTING(0x08, DEF_STR(Off))
+PORT_DIPSETTING(0x00, DEF_STR(On))
+
+PORT_START("W18") // DSR = 1 when switch is OFF - see i8251.c
+PORT_DIPNAME(0x01, 0x00, "W18 (FACTORY TEST D, LEAVE OFF) (8251A: DSR)") PORT_TOGGLE
+PORT_DIPSETTING(0x00, DEF_STR(Off))
+PORT_DIPSETTING(0x01, DEF_STR(On))
+PORT_WRITE_LINE_DEVICE_MEMBER("kbdser", i8251_device, write_dsr)
+
+// J17 jumper on FDC controller board shifts drive select (experimental) -
+PORT_START("J17")
+PORT_DIPNAME(0x02, 0x00, "J17 DRIVE SELECT (A => C and B => D)") PORT_TOGGLE
+PORT_DIPSETTING(0x00, DEF_STR(Off))
+PORT_DIPSETTING(0x02, DEF_STR(On))
+
+PORT_START("WATCHDOG")
+PORT_DIPNAME(0x01, 0x01, "WATCHDOG ENABLED (MHFU)") PORT_TOGGLE
+PORT_DIPSETTING(0x00, DEF_STR(Off))
+PORT_DIPSETTING(0x01, DEF_STR(On))
- Rainbow uses a YM2151 and YM3012
- Jumping uses two YM2203's
-***********************************************************/
+INPUT_PORTS_END
-WRITE8_MEMBER(rbisland_state::bankswitch_w)
+void rainbow_state::machine_reset()
{
- membank("bank1")->set_entry(data & 3);
+ /* configure RAM */
+ address_space &program = machine().device<cpu_device>("maincpu")->space(AS_PROGRAM);
+ if (m_inp8->read() < END_OF_RAM)
+ {
+ program.unmap_readwrite(m_inp8->read(), END_OF_RAM);
+ }
+ // BIOS can't handle soft resets (would trigger ERROR 16).
+ // As a fallback, execute a hard reboot!
+ if (COLD_BOOT == 2)
+ { // FIXME: ask for confirmation (via UI ?)
+ device().machine().schedule_hard_reset();
+ }
+
+ /* *****************************************************************************************************************
+ Suitable Solutions ClikClok (one of the more compatible battery backed real time clocks)
+
+ DESCRIPTION: plugs into NVRAM chip socket on a 100-A and into one of the (EP)ROM sockets on the 100-B
+ ............ (there is a socket on the ClikClok for the NVRAM / EPROM chip).
+
+ DS1315 phantom clock. No address space needed (-> IRQs must be disabled to block ROM accesses during reads).
+
+ DRIVERS: 'rbclik.zip' DOS and CP/M binaries plus source from DEC employee; Reads & displays times. Y2K READY.
+ + 'newclk.arc' (Suitable Solutions; sets time and date; uses FE000 and up). 2 digit year here.
+
+ TODO: obtain hardware / check address decoders. Access logic here is derived from Vincent Esser's source.
+ *****************************************************************************************************************/
+
+ // * Reset RTC to a defined state *
+ #define RTC_RESET 0xFC104 // read $FC104 or mirror $FE104
+ program.install_read_handler(RTC_RESET, RTC_RESET, 0, 0, read8_delegate(FUNC(rainbow_state::rtc_reset), this));
+ program.install_read_handler(RTC_RESET + 0x2000, RTC_RESET + 0x2000, 0, 0, read8_delegate(FUNC(rainbow_state::rtc_reset2), this));
+
+ // A magic pattern enables reads or writes (-> RTC_WRITE_DATA_0 / RTC_WRITE_DATA_1)
+ // 64 bits read from two alternating addresses (see DS1315.C)
+ #define RTC_PATTERN_0 0xFC100 // MIRROR: FE100
+ #define RTC_PATTERN_1 0xFC101 // MIRROR: FE101
+ program.install_read_handler(RTC_PATTERN_0, RTC_PATTERN_1, 0, 0, read8_delegate(FUNC(rainbow_state::rtc_enable), this));
+ program.install_read_handler(RTC_PATTERN_0 + 0x2000, RTC_PATTERN_1 + 0x2000, 0, 0, read8_delegate(FUNC(rainbow_state::rtc_enable2), this));
+
+ // * Read actual time/date from ClikClok *
+ #define RTC_READ_DATA 0xFC004 // Single byte - delivers one bit (if RTC enabled). MIRROR: FE004
+ program.install_read_handler(RTC_READ_DATA, RTC_READ_DATA, 0, 0, read8_delegate(FUNC(rainbow_state::rtc_r), this));
+ program.install_read_handler(RTC_READ_DATA + 0x2000, RTC_READ_DATA + 0x2000, 0, 0, read8_delegate(FUNC(rainbow_state::rtc_r2), this));
+
+ // * Secretly transmit data to RTC (set time / date) * Works only if magic pattern enabled RTC. Look ma, no writes!
+ #define RTC_WRITE_DATA_0 0xFE000
+ #define RTC_WRITE_DATA_1 0xFE001
+ program.install_read_handler(RTC_WRITE_DATA_0, RTC_WRITE_DATA_1, 0, 0, read8_delegate(FUNC(rainbow_state::rtc_w), this));
+
+ m_rtc->chip_reset();
+ // *********************************** / DS1315 'PHANTOM CLOCK' IMPLEMENTATION FOR 'DEC-100-B' ***************************************
+
+
+ if (COLD_BOOT == 1)
+ {
+ COLD_BOOT = 2;
+ m_crtc->MHFU(-100); // reset MHFU counter
+ }
+
+ // *********** HARD DISK CONTROLLER...
+ if (m_inp5->read() == 0x01) // ...PRESENT?
+ {
+ // Install 8088 read / write handler
+ address_space &io = machine().device<cpu_device>("maincpu")->space(AS_IO);
+ io.unmap_readwrite(0x60, 0x60);
+ io.install_read_handler(0x60, 0x60, read8_delegate(FUNC(rainbow_state::hd_status_60_r), this));
+ io.install_write_handler(0x60, 0x60, write8_delegate(FUNC(rainbow_state::hd_status_60_w), this));
+
+ hdc_reset();
+ m_hdc_drive_ready = true;
+ m_hdc_write_fault = false;
+
+ hard_disk_file *local_hard_disk;
+ local_hard_disk = rainbow_hdc_file(0); // one hard disk for now.
+
+ output_set_value("led1", 0);
+ if (local_hard_disk)
+ {
+ hard_disk_info *info;
+ if ( (info = hard_disk_get_info(local_hard_disk)) )
+ {
+ output_set_value("led1", 1);
+
+ UINT32 max_sector = (info->cylinders) * (info->heads) * (info->sectors);
+ printf("\n%u MB HARD DISK: HEADS (1..8 OK) = %d / CYL. (151..1024 OK) = %d / SPT. (16 OK) = %d / SECTOR_BYTES (128..1024 OK) = %d\n", max_sector * 512 / 1000000,
+ info->heads, info->cylinders, info->sectors, info->sectorbytes);
+ }
+ }
+ }
+
+ // *********** FLOPPY DISK CONTROLLER
+ m_unit = INVALID_DRIVE;
+ m_fdc->reset();
+ m_fdc->set_floppy(NULL);
+ m_fdc->dden_w(0);
+
+ m_z80->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
+ m_z80_halted = true;
+ m_zflip = true;
+
+ INTZ80 = false;
+ INT88 = false;
+
+ m_kbd_tx_ready = m_kbd_rx_ready = false;
+ m_kbd8251->write_cts(1);
+ m_KBD = 0;
+
+ m_irq_high = 0;
+
+ // RESET ALL LEDs
+ output_set_value("led1", 1);
+ output_set_value("led2", 1);
+ output_set_value("led3", 1);
+ output_set_value("led4", 1);
+ output_set_value("led5", 1);
+ output_set_value("led6", 1);
+ output_set_value("led7", 1);
+
+ // GREEN KEYBOARD LEDs (1 = on, 0 = off):
+ output_set_value("led_wait", 0); // led8
+ output_set_value("led_compose", 0); // led9
+ output_set_value("led_lock", 0); // led10
+ output_set_value("led_hold", 0); // led11
+
+ m_irq_mask = 0;
}
-READ8_MEMBER(rbisland_state::jumping_latch_r)
+#ifdef KEYBOARD_WORKAROUND
+#include "./rainbow_keyboard2.c"
+#endif
+
+UINT32 rainbow_state::screen_update_rainbow(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- return m_jumping_latch;
+/*
+ // Suppress display when accessing floppy (switch to 'smooth scroll' when working with DOS, please)!
+ if (MOTOR_DISABLE_counter) // IF motor running...
+ {
+ if (m_p_vol_ram[0x84] == 0x00) // IF jump scroll
+ return 0;
+ }
+*/
+ m_crtc->palette_select(m_inp9->read());
+
+ if (m_SCREEN_BLANK)
+ m_crtc->video_blanking(bitmap, cliprect);
+ else
+ m_crtc->video_update(bitmap, cliprect);
+ return 0;
}
+// Interrupt handling and arbitration. See 3.1.3.8 OF PC-100 spec.
+void rainbow_state::update_8088_irqs()
+{
+ static const int vectors[] = { 0x27, 0x26, 0x25, 0x20 };
-static ADDRESS_MAP_START( rbisland_sound_map, AS_PROGRAM, 8, rbisland_state )
- AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
- AM_RANGE(0x8000, 0x8fff) AM_RAM
- AM_RANGE(0x9000, 0x9001) AM_DEVREADWRITE("ymsnd", ym2151_device,read,write)
- AM_RANGE(0x9002, 0x9100) AM_READNOP
- AM_RANGE(0xa000, 0xa000) AM_DEVWRITE("tc0140syt", tc0140syt_device, slave_port_w)
- AM_RANGE(0xa001, 0xa001) AM_DEVREADWRITE("tc0140syt", tc0140syt_device, slave_comm_r, slave_comm_w)
-ADDRESS_MAP_END
+ if (m_irq_mask != 0)
+ {
+ for (int i = 0; i < IRQ_8088_NMI; i++)
+ {
+ if (m_irq_mask & (1 << i))
+ {
+ m_i8088->set_input_line_and_vector(INPUT_LINE_INT0, ASSERT_LINE, vectors[i] | m_irq_high);
+ break;
+ }
+ }
+ }
+ else
+ {
+ m_i8088->set_input_line(INPUT_LINE_INT0, CLEAR_LINE);
+ }
+}
-static ADDRESS_MAP_START( jumping_sound_map, AS_PROGRAM, 8, rbisland_state )
- AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0x8000, 0x8fff) AM_RAM
- AM_RANGE(0xb000, 0xb001) AM_DEVREADWRITE("ym1", ym2203_device, read, write)
- AM_RANGE(0xb400, 0xb401) AM_DEVREADWRITE("ym2", ym2203_device, read, write)
- AM_RANGE(0xb800, 0xb800) AM_READ(jumping_latch_r)
- AM_RANGE(0xbc00, 0xbc00) AM_WRITENOP /* looks like a bankswitch, but sound works with or without it */
- AM_RANGE(0xc000, 0xffff) AM_ROM
-ADDRESS_MAP_END
+void rainbow_state::raise_8088_irq(int ref)
+{
+ m_irq_mask |= (1 << ref);
+ update_8088_irqs();
+}
+void rainbow_state::lower_8088_irq(int ref)
+{
+ m_irq_mask &= ~(1 << ref);
+ update_8088_irqs();
+}
-/***********************************************************
- INPUT PORTS, DIPs
-***********************************************************/
-
-static INPUT_PORTS_START( rbisland_generic )
- PORT_START("DSWA")
- TAITO_MACHINE_COCKTAIL
- PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) )
- PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x00)
- PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x00)
- PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x80)
- PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x00)
- PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x80)
- PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x00)
- PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x80)
- PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x80)
- PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) )
- PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x80)
- PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x80)
- PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x80)
- PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x80)
- PORT_DIPSETTING( 0xc0, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x00)
- PORT_DIPSETTING( 0x80, DEF_STR( 1C_3C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x00)
- PORT_DIPSETTING( 0x40, DEF_STR( 1C_4C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x00)
- PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x00)
-
- PORT_START("DSWB")
- TAITO_DIFFICULTY
- PORT_DIPNAME( 0x04, 0x04, DEF_STR( Bonus_Life ) )
- PORT_DIPSETTING( 0x04, "100k 1000k" )
- PORT_DIPSETTING( 0x00, DEF_STR( None ) )
- PORT_DIPNAME( 0x08, 0x08, "Complete Bonus" )
- PORT_DIPSETTING( 0x08, "1 Up" )
- PORT_DIPSETTING( 0x00, "100k" )
- PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) )
- PORT_DIPSETTING( 0x10, "1" )
- PORT_DIPSETTING( 0x00, "2" )
- PORT_DIPSETTING( 0x30, "3" )
- PORT_DIPSETTING( 0x20, "4" )
- PORT_DIPNAME( 0x40, 0x00, DEF_STR( Language ) )
- PORT_DIPSETTING( 0x00, DEF_STR( English ) )
- PORT_DIPSETTING( 0x40, DEF_STR( Japanese ) )
- PORT_DIPNAME( 0x80, 0x80, "Coin Mode" )
- PORT_DIPSETTING( 0x80, "Mode A (Japan)" ) /* Mode A is TAITO_COINAGE_JAPAN_OLD */
- PORT_DIPSETTING( 0x00, "Mode B (World)" ) /* Mode B is TAITO_COINAGE_WORLD */
-INPUT_PORTS_END
+// Only Z80 * private SRAM * is wait state free
+// (= fast enough to allow proper I/O to the floppy)
-static INPUT_PORTS_START( rbisland )
- PORT_INCLUDE(rbisland_generic)
-
- /* 0x390000 -> 0x10cfc2 ($fc2,A5) : DSWA */
-
- /* 0x3b0000 -> 0x10cfc4 ($fc4,A5) : DSWB */
-
- PORT_START("800007")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 )
-
- PORT_START("800009")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("80000B")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 )
-
- PORT_START("80000D")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
-INPUT_PORTS_END
+// Shared memory is contended by refresh, concurrent
+// 8088 accesses and arbitration logic (DMA).
+READ8_MEMBER(rainbow_state::share_z80_r)
+{
+ if (m_zflip)
+ {
+ if (offset < 0x8000)
+ {
+ return m_shared[offset + 0x8000];
+ }
+ else if (offset < 0x8800)
+ {
+ return m_z80_private[offset & 0x7ff]; // SRAM
+ }
+
+ return m_shared[offset ^ 0x8000];
+ }
+ else
+ {
+ if (offset < 0x800)
+ {
+ return m_z80_private[offset]; // SRAM
+ }
+
+ return m_shared[offset];
+ }
+}
+
+WRITE8_MEMBER(rainbow_state::share_z80_w)
+{
+ if (m_zflip)
+ {
+ if (offset < 0x8000)
+ {
+ m_shared[offset + 0x8000] = data;
+ return; // [!]
+ }
+ else if (offset < 0x8800)
+ {
+ m_z80_private[offset & 0x7ff] = data; // SRAM
+ return; // [!]
+ }
+
+ m_shared[offset ^ 0x8000] = data;
+ }
+ else
+ {
+ if (offset < 0x800)
+ m_z80_private[offset] = data; // SRAM
+ else
+ m_shared[offset] = data;
+ }
+ return;
+}
-static INPUT_PORTS_START( jumping )
- PORT_INCLUDE(rbisland_generic)
-
- /* 0x400000 -> 0x10cfc2 ($fc2,A5) */
- PORT_MODIFY("DSWA")
- PORT_DIPUNUSED( 0x01, IP_ACTIVE_LOW ) /* see notes */
- PORT_DIPUNUSED( 0x02, IP_ACTIVE_LOW ) /* see notes */
- PORT_DIPUNUSED( 0x04, IP_ACTIVE_LOW ) /* see notes */
-
- /* 0x400002 -> 0x10cfc4 ($fc4,A5) */
- PORT_MODIFY("DSWB")
- PORT_DIPUNUSED( 0x40, IP_ACTIVE_LOW ) /* see notes */
-
- PORT_START("401001")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
-
- PORT_START("401003")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 )
- PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 )
- PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY
-INPUT_PORTS_END
+// ------------------------ClikClok (for model B; DS1315) ---------------------------------
+#define RTC_RESET_MACRO m_rtc->chip_reset(); \
+ UINT8 *rom = memregion("maincpu")->base();
-/**************************************************************
- GFX DECODING
-**************************************************************/
+#define RTC_ENABLE_MACRO \
+ if (m_inp11->read() == 0x01) \
+ { \
+ if (offset & 1) \
+ m_rtc->read_1(space, 0); \
+ else \
+ m_rtc->read_0(space, 0); \
+ } \
+ UINT8 *rom = memregion("maincpu")->base();
-static const gfx_layout tilelayout =
+#define RTC_READ_MACRO \
+ if (m_rtc->chip_enable() && (m_inp11->read() == 0x01)) \
+ return (m_rtc->read_data(space, 0) & 0x01); \
+ UINT8 *rom = memregion("maincpu")->base();
+
+// *********** RTC RESET **************
+READ8_MEMBER(rainbow_state::rtc_reset)
{
- 8,8, /* 8*8 tiles */
- RGN_FRAC(1,1),
- 4, /* 4 bits per pixel */
- { 0, 1, 2, 3 },
- { 8, 12, 0, 4, 24, 28, 16, 20 },
- { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 },
- 32*8 /* every tile takes 32 consecutive bytes */
-};
+ RTC_RESET_MACRO
+ return rom[RTC_RESET];
+}
-static const gfx_layout spritelayout =
+READ8_MEMBER(rainbow_state::rtc_reset2)
{
- 16,16, /* 16*16 sprites */
- RGN_FRAC(1,1),
- 4, /* 4 bits per pixel */
- { 0, 1, 2, 3 },
- { 8, 12, 0, 4, 24, 28, 16, 20, 40, 44, 32, 36, 56, 60, 48, 52 },
- { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64,
- 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 },
- 128*8 /* every sprite takes 128 consecutive bytes */
-};
+ RTC_RESET_MACRO
+ return rom[RTC_RESET + 0x2000];
+}
-static GFXDECODE_START( rbisland )
- GFXDECODE_ENTRY( "gfx2", 0x000000, spritelayout, 0, 0x80 ) /* OBJ 16x16 */
- GFXDECODE_ENTRY( "gfx1", 0x000000, tilelayout, 0, 0x80 ) /* SCR 8x8 */
-GFXDECODE_END
+// *********** RTC ENABLE **************
+READ8_MEMBER(rainbow_state::rtc_enable)
+{
+ RTC_ENABLE_MACRO
+ return rom[RTC_PATTERN_0 + offset];
+}
+READ8_MEMBER(rainbow_state::rtc_enable2)
+{
+ RTC_ENABLE_MACRO
+ return rom[RTC_PATTERN_0 + offset + 0x2000];
+}
-static const gfx_layout jumping_tilelayout =
+// ** READ single bit from RTC (or ROM) **
+READ8_MEMBER(rainbow_state::rtc_r)
{
- 8,8, /* 8*8 tiles */
- 16384, /* 16384 tiles */
- 4, /* 4 bits per pixel */
- { 0, 0x20000*8, 0x40000*8, 0x60000*8 },
- { 0, 1, 2, 3, 4, 5, 6, 7 },
- { 0, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
- 8*8 /* every tile takes 8 consecutive bytes */
-};
+ RTC_READ_MACRO
+ return rom[RTC_READ_DATA];
+}
-static const gfx_layout jumping_spritelayout =
+READ8_MEMBER(rainbow_state::rtc_r2)
{
- 16,16, /* 16*16 sprites */
- 5120, /* 5120 sprites */
- 4, /* 4 bits per pixel */
- { 0x78000*8,0x50000*8,0x28000*8,0 },
- { 0, 1, 2, 3, 4, 5, 6, 7, 8*16+0, 8*16+1, 8*16+2, 8*16+3, 8*16+4, 8*16+5, 8*16+6, 8*16+7 },
- { 0, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 },
- 32*8 /* every sprite takes 32 consecutive bytes */
-};
+ RTC_READ_MACRO
+ return rom[RTC_READ_DATA + 0x2000];
+}
-static GFXDECODE_START( jumping )
- GFXDECODE_ENTRY( "gfx2", 0, jumping_spritelayout, 0, 0x80 ) /* OBJ 16x16 */
- GFXDECODE_ENTRY( "gfx1", 0, jumping_tilelayout, 0, 0x80 ) /* SCR 8x8 */
-GFXDECODE_END
+// Transfer data to DS1315 (read operation; data in offset):
+// (always return ROM char to prevent potential IRQ issues)
+READ8_MEMBER(rainbow_state::rtc_w)
+{
+ if (m_rtc->chip_enable() && (m_inp11->read() == 0x01))
+ m_rtc->write_data(space, offset & 0x01);
+
+ UINT8 *rom = memregion("maincpu")->base();
+ return rom[RTC_WRITE_DATA_0 + offset];
+}
+// ------------------------/ ClikClok (for model B; DS1315) ---------------------------------
-/***********************************************************
- MACHINE DRIVERS
-***********************************************************/
+// ---------------------------- RD51 HARD DISK CONTROLLER ----------------------------------
+static const int SECTOR_SIZES[4] = { 256, 512, 1024, 128 };
-void rbisland_state::machine_start()
+#define RD51_MAX_HEAD 8
+#define RD51_MAX_CYLINDER 1024
+#define RD51_SECTORS_PER_TRACK 16
+
+void rainbow_state::hdc_reset()
{
+// printf(">> HARD DISC CONTROLLER RESET <<\n");
+ logerror(">> HARD DISC CONTROLLER RESET <<\n");
+
+ m_hdc->reset(); // NEW HDC
+
+ m_bdl_irq = 0;
+ update_bundle_irq(); // reset INTRQ
+
+ m_hdc_buf_offset = 0;
+ m_hdc_direction = 0;
+
+ m_hdc->buffer_ready(false);
+ m_hdc_write_gate = false;
+
+ m_hdc_step_latch = false;
+ m_hdc_index_latch = false;
+
+ m_hdc_track0 = true; // set true to avoid stepping
}
-static MACHINE_CONFIG_START( rbisland, rbisland_state )
+// Return 'hard_disk_file' object for harddisk 1 (fixed).
+// < NULL if geometry is insane or other errors occured >
+hard_disk_file *(rainbow_state::rainbow_hdc_file(int drv))
+{
+ m_hdc_drive_ready = false;
- /* basic machine hardware */
- MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz/2) /* verified on pcb */
- MCFG_CPU_PROGRAM_MAP(rbisland_map)
- MCFG_CPU_VBLANK_INT_DRIVER("screen", rbisland_state, irq4_line_hold)
+ if (m_inp5->read() != 0x01) // ...PRESENT?
+ return NULL;
- MCFG_CPU_ADD("audiocpu", Z80, XTAL_16MHz/4) /* verified on pcb */
- MCFG_CPU_PROGRAM_MAP(rbisland_sound_map)
+ if (drv != 0)
+ return NULL;
- MCFG_QUANTUM_TIME(attotime::from_hz(600)) /* 10 CPU slices per frame - enough for the sound CPU to read all commands */
+ harddisk_image_device *img = NULL;
+ img = dynamic_cast<harddisk_image_device *>(machine().device(subtag("harddisk1").c_str()));
+ if (!img)
+ return NULL;
- /* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(40*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(rbisland_state, screen_update_rainbow)
- MCFG_SCREEN_PALETTE("palette")
+ if (!img->exists())
+ return NULL;
- MCFG_GFXDECODE_ADD("gfxdecode", "palette", rbisland)
- MCFG_PALETTE_ADD("palette", 2048)
- MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
+ hard_disk_file *file = img->get_hard_disk_file();
+ hard_disk_info *info = hard_disk_get_info(file);
- MCFG_DEVICE_ADD("pc080sn", PC080SN, 0)
- MCFG_PC080SN_GFX_REGION(1)
- MCFG_PC080SN_GFXDECODE("gfxdecode")
- MCFG_PC080SN_PALETTE("palette")
+ // ALWAYS 16 SECTORS / TRACK.
+ // CYLINDERS: 151 (~ 5 MB) to 1024 (max. cylinders on WD1010 controller)
+ if (((info->sectors == RD51_SECTORS_PER_TRACK)) &&
+ ((info->heads >= 1) && (info->heads <= RD51_MAX_HEAD)) && // HEADS WITHIN 1...8
+ ((info->cylinders > 150) && (info->cylinders <= RD51_MAX_CYLINDER))
+ )
+ {
+ m_hdc_drive_ready = true;
+ return file; // HAS SANE GEOMETRY
+ }
+ else
+ {
+ UINT32 max_sector = info->cylinders * info->heads * info->sectors;
+ printf("%u MB HARD DISK: HEADS (1..8 OK) = %d / CYL. (151..1024 OK) = %d / SPT. (16 OK) = %d / SECTOR_BYTES (128..1024 OK) = %d\n", max_sector * 512 / 1000000,
+ info->heads, info->cylinders, info->sectors, info->sectorbytes);
- MCFG_DEVICE_ADD("pc090oj", PC090OJ, 0)
- MCFG_PC090OJ_GFXDECODE("gfxdecode")
- MCFG_PC090OJ_PALETTE("palette")
+ printf("\n <<< === REJECTED = (SANITY CHECK FAILED) === >>> \n");
+ return NULL;
+ }
+}
- /* sound hardware */
- MCFG_SPEAKER_STANDARD_MONO("mono")
+// LBA sector from CHS
+static UINT32 get_and_print_lbasector(hard_disk_info *info, UINT16 cylinder, UINT8 head, UINT8 sector_number)
+{
+ if (info == NULL)
+ return 0;
- MCFG_YM2151_ADD("ymsnd", XTAL_16MHz/4) /* verified on pcb */
- MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
- MCFG_YM2151_PORT_WRITE_HANDLER(WRITE8(rbisland_state,bankswitch_w))
- MCFG_SOUND_ROUTE(0, "mono", 0.50)
- MCFG_SOUND_ROUTE(1, "mono", 0.50)
+ // LBA_ADDRESS = (C * HEADS + H) * NUMBER_SECTORS + (S - 1)
+ UINT32 lbasector = (double)cylinder * info->heads; // LBA : ( x 4 )
+ lbasector += head;
+ lbasector *= info->sectors; // LBA : ( x 16 )
+ lbasector += (sector_number - 1); // + (sector number - 1)
- MCFG_DEVICE_ADD("tc0140syt", TC0140SYT, 0)
- MCFG_TC0140SYT_MASTER_CPU("maincpu")
- MCFG_TC0140SYT_SLAVE_CPU("audiocpu")
-MACHINE_CONFIG_END
+ logerror(" CYLINDER %u - HEAD %u - SECTOR NUMBER %u (LBA-SECTOR %u) ", cylinder, head, sector_number, lbasector);
+ return lbasector;
+}
+// READ SECTOR (on BCS 1 -> 0 transition)
+WRITE_LINE_MEMBER(rainbow_state::hdc_read_sector)
+{
+ static int last_state;
+ int read_status = 1;
-/* Jumping: The PCB has 2 Xtals, 18.432MHz and 24MHz */
-static MACHINE_CONFIG_START( jumping, rbisland_state )
+ if (!m_hdc_write_gate) // do not read when WRITE GATE is on
+ {
+ UINT8 SDH = (m_hdc->read(space(AS_PROGRAM), 0x06));
+ int drv = (SDH & (8 + 16)) >> 3; // get DRIVE from SDH register
+
+ if ( (state == 0) && (last_state == 1) && (drv == 0) )
+ {
+ read_status = 2;
+
+ logerror("\nTRYING TO READ");
+ output_set_value("led1", 0);
+
+ int hi = (m_hdc->read(space(AS_PROGRAM), 0x05)) & 0x07;
+ UINT16 cylinder = (m_hdc->read(space(AS_PROGRAM), 0x04)) | (hi << 8);
+ UINT8 sector_number = m_hdc->read(space(AS_PROGRAM), 0x03);
+
+ hard_disk_file *local_hard_disk;
+ local_hard_disk = rainbow_hdc_file(0); // one hard disk for now.
+
+ if (local_hard_disk)
+ {
+ read_status = 3;
+
+ hard_disk_info *info;
+ if ( (info = hard_disk_get_info(local_hard_disk)) )
+ {
+ read_status = 4;
+ output_set_value("led1", 1);
+
+ // Pointer to info + C + H + S
+ UINT32 lbasector = get_and_print_lbasector(info, cylinder, SDH & 0x07, sector_number);
+
+ if ((cylinder <= info->cylinders) && // filter invalid ranges
+ (SECTOR_SIZES[(SDH >> 5) & 0x03] == info->sectorbytes) // may not vary in image!
+ )
+ {
+ read_status = 5;
+ if( hard_disk_read(local_hard_disk, lbasector, m_hdc_buffer) ) // accepts LBA sector (UINT32) !
+ {
+ read_status = 0;
+ logerror("...success!\n");
+ }
+ }
+ }
+ m_hdc_buf_offset = 0;
+ m_hdc->buffer_ready(true);
+ } // if valid (..)
+
+ if (read_status != 0)
+ {
+ logerror("...** READ FAILED WITH STATUS %u ** (CYLINDER %u - HEAD %u - SECTOR # %u - SECTOR_SIZE %u ) ***\n",
+ read_status, cylinder, SDH & 0x07, sector_number, SECTOR_SIZES[(SDH >> 5) & 0x03]
+ ) ;
+ }
+
+ } // (on BCS 1 -> 0)
+
+ } // do not read when WRITE GATE is on
+
+ last_state = state;
+}
- /* basic machine hardware */
- MCFG_CPU_ADD("maincpu", M68000, XTAL_18_432MHz/2) /* verified on pcb */
- MCFG_CPU_PROGRAM_MAP(jumping_map)
- MCFG_CPU_VBLANK_INT_DRIVER("screen", rbisland_state, irq4_line_hold)
- MCFG_CPU_ADD("audiocpu", Z80, XTAL_24MHz/4) /* verified on pcb */
- MCFG_CPU_PROGRAM_MAP(jumping_sound_map)
+// WRITE SECTOR
+// ...IF WRITE_GATE (WG) TRANSITS FROM 1 -> 0
- MCFG_QUANTUM_TIME(attotime::from_hz(600)) /* 10 CPU slices per frame - enough unless otherwise */
+// NO PROVISIONS for sector sizes != 512 or MULTIPLE DRIVES (> 0) !!!
+WRITE_LINE_MEMBER(rainbow_state::hdc_write_sector)
+{
+ int success = 0;
+ static int wg_last;
+ if (state == 0)
+ m_hdc_write_gate = false;
+ else
+ m_hdc_write_gate = true;
- /* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_SIZE(40*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_DRIVER(rbisland_state, screen_update_jumping)
- MCFG_SCREEN_PALETTE("palette")
+ int drv = ((m_hdc->read(space(AS_PROGRAM), 0x06)) & (8 + 16)) >> 3; // get DRIVE from SDH register
- MCFG_GFXDECODE_ADD("gfxdecode", "palette", jumping)
- MCFG_PALETTE_ADD("palette", 2048)
- MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
+ if (((state == 0) && (wg_last == 1)) // Check correct state transition and DRIVE 0 ....
+ && (drv == 0)
+ )
+ {
+ output_set_value("led1", 0); // (1 = OFF ) =HARD DISK ACTIVITY =
+ MOTOR_DISABLE_counter = 20;
+
+ if (rainbow_hdc_file(0) != NULL)
+ {
+ success = do_write_sector();
+ if (success < 88)
+ logerror("! SECTOR WRITE (or FORMAT) FAULT ! ERROR CODE %i.\n", success);
+
+ m_hdc_buf_offset = 0;
+ m_hdc->buffer_ready(false);
+ }
+
+ // CHD WRITE FAILURES or UNMOUNTED HARDDSIK TRIGGER A PERMANENT ERROR.
+ if (success < 50)
+ m_hdc_write_fault = true; // reset only by HDC RESET!
+ }
- MCFG_VIDEO_START_OVERRIDE(rbisland_state,jumping)
+ wg_last = state; // remember state
+}
- MCFG_DEVICE_ADD("pc080sn", PC080SN, 0)
- MCFG_PC080SN_GFX_REGION(1)
- MCFG_PC080SN_YINVERT(1)
- MCFG_PC080SN_GFXDECODE("gfxdecode")
- MCFG_PC080SN_PALETTE("palette")
- /* sound hardware */
- MCFG_SPEAKER_STANDARD_MONO("mono")
+// Initiated by 'hdc_write_sector' (below)
+// - in turn invoked by a WG: 1 -> 0 transit.
+// STATUS CODES:
+// 0 = DEFAULT ERROR (no HARD DISK FILE ?)
+// 10 = CHD WRITE FAILURE (?)
- MCFG_SOUND_ADD("ym1", YM2203, XTAL_24MHz/8) /* verified on pcb */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
+// 50 = SANITY CHECK FAILED (cylinder limit / <> 512 sectors?)
- MCFG_SOUND_ADD("ym2", YM2203, XTAL_24MHz/8) /* verified on pcb */
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
-MACHINE_CONFIG_END
+// 88 = (LOW LEVEL) WRITE/FORMAT (sector_count != 1 IGNORED)
+// 99 = SUCCESS : SECTOR WRITTEN
-/* Imnoe PCB uses 16MHz CPU crystal instead of 18.432 for CPU */
-static MACHINE_CONFIG_DERIVED( jumpingi, jumping )
- MCFG_CPU_REPLACE("maincpu", M68000, XTAL_16MHz/2) /* verified on pcb */
- MCFG_CPU_PROGRAM_MAP(jumping_map)
- MCFG_CPU_VBLANK_INT_DRIVER("screen", rbisland_state, irq4_line_hold)
-MACHINE_CONFIG_END
+// * RELIES * ON THE FACT THAT THERE WILL BE NO MULTI SECTOR TRANSFERS (!)
+int rainbow_state::do_write_sector()
+{
+ int feedback = 0; // no error
+ output_set_value("led1", 0); // ON
-/***************************************************************************
- DRIVERS
-***************************************************************************/
-
-ROM_START( rbisland )
- ROM_REGION( 0x80000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "b22-10-1.19", 0x00000, 0x10000, CRC(e34a50ca) SHA1(17a92cd7182db1e18000b1ae689758fcfd70fe16) )
- ROM_LOAD16_BYTE( "b22-11-1.20", 0x00001, 0x10000, CRC(6a31a093) SHA1(1e99ae47811c0d3774d138dab02ac50bc1b92173) )
- ROM_LOAD16_BYTE( "b22-08-1.21", 0x20000, 0x10000, CRC(15d6e17a) SHA1(7b0339180239e75adf1437aee276b652a1bfee51) )
- ROM_LOAD16_BYTE( "b22-09-1.22", 0x20001, 0x10000, CRC(454e66bc) SHA1(54d57dee90da04101f4b1473770b38001d63230f) )
- ROM_LOAD16_BYTE( "b22-03.23", 0x40000, 0x20000, CRC(3ebb0fb8) SHA1(1b41b305623d121255eb70cb992e4d9da13abd82) )
- ROM_LOAD16_BYTE( "b22-04.24", 0x40001, 0x20000, CRC(91625e7f) SHA1(765afd973d9b82bb496b04beca284bf2769d6e6f) )
-
- ROM_REGION( 0x10000, "cchip", 0 )
- ROM_LOAD( "cchip_b22-15.53", 0x00000, 0x10000, NO_DUMP )
-
- ROM_REGION( 0x1c000, "audiocpu", 0 )
- ROM_LOAD( "b22-14.43", 0x00000, 0x4000, CRC(113c1a5b) SHA1(effa2adf54a6be78b2d4baf3a47529342fb0d895) )
- ROM_CONTINUE( 0x10000, 0xc000 )
-
- ROM_REGION( 0x80000, "gfx1", 0 )
- ROM_LOAD( "b22-01.2", 0x00000, 0x80000, CRC(b76c9168) SHA1(e924be0c8294b930488bb04583784254a840a52e) ) /* tiles */
-
- ROM_REGION( 0xa0000, "gfx2", 0 )
- ROM_LOAD( "b22-02.5", 0x00000, 0x80000, CRC(1b87ecf0) SHA1(37a463184f4064fe0565367236e289d57639614c) ) /* sprites */
- ROM_LOAD16_BYTE( "b22-12.7", 0x80000, 0x10000, CRC(67a76dc6) SHA1(626ee684eb3ea859c695ffe03344ccaa442da4af) )
- ROM_LOAD16_BYTE( "b22-13.6", 0x80001, 0x10000, CRC(2fda099f) SHA1(a1e27a4497f6733608be924d69d965b19f725b99) )
-ROM_END
+ hard_disk_file *local_hard_disk;
+ local_hard_disk = rainbow_hdc_file(0); // one hard disk for now.
-ROM_START( rbislando )
- ROM_REGION( 0x80000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "b22-10.19", 0x00000, 0x10000, CRC(3b013495) SHA1(fc89f401a80b9bde174df8a257bb7fad4937c838) )
- ROM_LOAD16_BYTE( "b22-11.20", 0x00001, 0x10000, CRC(80041a3d) SHA1(619d71a2bef5fd898a15d37d8016850f832428c3) )
- ROM_LOAD16_BYTE( "b22-08.21", 0x20000, 0x10000, CRC(962fb845) SHA1(1c5581e697902ee5cde0fb841ef05eade04a901b) )
- ROM_LOAD16_BYTE( "b22-09.22", 0x20001, 0x10000, CRC(f43efa27) SHA1(f92bcdbe9bbc1c200946c10605846bb406d8e963) )
- ROM_LOAD16_BYTE( "b22-03.23", 0x40000, 0x20000, CRC(3ebb0fb8) SHA1(1b41b305623d121255eb70cb992e4d9da13abd82) )
- ROM_LOAD16_BYTE( "b22-04.24", 0x40001, 0x20000, CRC(91625e7f) SHA1(765afd973d9b82bb496b04beca284bf2769d6e6f) )
-
- ROM_REGION( 0x10000, "cchip", 0 )
- ROM_LOAD( "cchip_b22-15.53", 0x00000, 0x10000, NO_DUMP )
-
- ROM_REGION( 0x1c000, "audiocpu", 0 )
- ROM_LOAD( "b22-14.43", 0x00000, 0x4000, CRC(113c1a5b) SHA1(effa2adf54a6be78b2d4baf3a47529342fb0d895) )
- ROM_CONTINUE( 0x10000, 0xc000 )
-
- ROM_REGION( 0x80000, "gfx1", 0 )
- ROM_LOAD( "b22-01.2", 0x00000, 0x80000, CRC(b76c9168) SHA1(e924be0c8294b930488bb04583784254a840a52e) ) /* tiles */
-
- ROM_REGION( 0xa0000, "gfx2", 0 )
- ROM_LOAD( "b22-02.5", 0x00000, 0x80000, CRC(1b87ecf0) SHA1(37a463184f4064fe0565367236e289d57639614c) ) /* sprites */
- ROM_LOAD16_BYTE( "b22-12.7", 0x80000, 0x10000, CRC(67a76dc6) SHA1(626ee684eb3ea859c695ffe03344ccaa442da4af) )
- ROM_LOAD16_BYTE( "b22-13.6", 0x80001, 0x10000, CRC(2fda099f) SHA1(a1e27a4497f6733608be924d69d965b19f725b99) )
-ROM_END
+ if (local_hard_disk)
+ {
+ hard_disk_info *info;
+ if ( (info = hard_disk_get_info(local_hard_disk)) )
+ {
+ feedback = 10;
+ logerror("\n* TRYING TO WRITE * ");
+ output_set_value("led1", 1); // OFF
+
+ UINT8 SDH = (m_hdc->read(space(AS_PROGRAM), 0x06));
+
+ int hi = (m_hdc->read(space(AS_PROGRAM), 0x05)) & 0x07;
+ UINT16 cylinder = (m_hdc->read(space(AS_PROGRAM), 0x04)) | (hi << 8);
+
+ int sector_number = m_hdc->read(space(AS_PROGRAM), 0x03);
+ int sector_count = m_hdc->read(space(AS_PROGRAM), 0x02); // (1 = single sector)
+
+ if (!((cylinder <= info->cylinders) && // filter invalid cylinders
+ (SECTOR_SIZES[(SDH >> 5) & 0x03] == info->sectorbytes) // 512, may not vary
+ ))
+ {
+ logerror("...*** SANITY CHECK FAILED (CYLINDER %u vs. info->cylinders %u - - SECTOR_SIZE %u vs. info->sectorbytes %u) ***\n",
+ cylinder, info->cylinders, SECTOR_SIZES[(SDH >> 5) & 0x03], info->sectorbytes
+ );
+ return 50;
+ }
+ // Pointer to info + C + H + S
+ UINT32 lbasector = get_and_print_lbasector(info, cylinder, SDH & 0x07, sector_number);
+
+ if (sector_count != 1) // ignore all SECTOR_COUNTS != 1
+ {
+ logerror(" - ** IGNORED (SECTOR_COUNT !=1) **\n");
+ return 88; // BAIL OUT
+ }
+
+ if (hard_disk_write(local_hard_disk, lbasector, m_hdc_buffer)) // accepts LBA sector (UINT32) !
+ {
+ logerror("...success! ****\n");
+ feedback = 99;
+ }
+ else
+ {
+ logerror("...FAILURE **** \n");
+ }
+
+ } // IF 'info' not NULL
+ } // IF hard disk present
+
+ return feedback;
+}
-ROM_START( rbislande )
- ROM_REGION( 0x80000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "b39-01.19", 0x00000, 0x10000, CRC(50690880) SHA1(88cd8739eaa6e4e5988be225c31d2a6605173d39) )
- ROM_LOAD16_BYTE( "b39-02.20", 0x00001, 0x10000, CRC(4dead71f) SHA1(03e9df33fc8fc64d6eeb1c3a763acac00b10c071) )
- ROM_LOAD16_BYTE( "b39-03.21", 0x20000, 0x10000, CRC(4a4cb785) SHA1(6ba7de3901a001cbb31713664ccb68b943a5578f) )
- ROM_LOAD16_BYTE( "b39-04.22", 0x20001, 0x10000, CRC(4caa53bd) SHA1(302c668b77de41ffef96a3ca9d94877b4affc466) )
- ROM_LOAD16_BYTE( "b22-03.23", 0x40000, 0x20000, CRC(3ebb0fb8) SHA1(1b41b305623d121255eb70cb992e4d9da13abd82) )
- ROM_LOAD16_BYTE( "b22-04.24", 0x40001, 0x20000, CRC(91625e7f) SHA1(765afd973d9b82bb496b04beca284bf2769d6e6f) )
-
- ROM_REGION( 0x10000, "cchip", 0 )
- ROM_LOAD( "cchip_b39-05.53", 0x00000, 0x10000, NO_DUMP )
-
- ROM_REGION( 0x1c000, "audiocpu", 0 )
- ROM_LOAD( "b22-14.43", 0x00000, 0x4000, CRC(113c1a5b) SHA1(effa2adf54a6be78b2d4baf3a47529342fb0d895) )
- ROM_CONTINUE( 0x10000, 0xc000 )
-
- ROM_REGION( 0x80000, "gfx1", 0 )
- ROM_LOAD( "b22-01.2", 0x00000, 0x80000, CRC(b76c9168) SHA1(e924be0c8294b930488bb04583784254a840a52e) ) /* tiles */
-
- ROM_REGION( 0xa0000, "gfx2", 0 )
- ROM_LOAD( "b22-02.5", 0x00000, 0x80000, CRC(1b87ecf0) SHA1(37a463184f4064fe0565367236e289d57639614c) ) /* sprites */
- ROM_LOAD16_BYTE( "b22-12.7", 0x80000, 0x10000, CRC(67a76dc6) SHA1(626ee684eb3ea859c695ffe03344ccaa442da4af) )
- ROM_LOAD16_BYTE( "b22-13.6", 0x80001, 0x10000, CRC(2fda099f) SHA1(a1e27a4497f6733608be924d69d965b19f725b99) )
-ROM_END
-ROM_START( jumping )
- ROM_REGION( 0xa0000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "6.h4", 0x00000, 0x10000, CRC(3fab6b31) SHA1(57803478949cb62f7eab2ef9be08b13aa2237dbc) )
- ROM_LOAD16_BYTE( "10.h8", 0x00001, 0x10000, CRC(8c878827) SHA1(4a54a217b7c442305c3ce9298aa36ae225382444) )
- ROM_LOAD16_BYTE( "5.i4", 0x20000, 0x10000, CRC(443492cf) SHA1(fc3809d784d611df4fd446ca2443eebdf4f0bfd7) )
- ROM_LOAD16_BYTE( "9.i8", 0x20001, 0x10000, CRC(ed33bae1) SHA1(24ade29f3fdd45aa772ccf9c046294baa6eae7a2) )
- ROM_LOAD16_BYTE( "4.bin", 0x40000, 0x10000, CRC(00bf8a91) SHA1(973868eef99b1bcfa60e1b22a18946aa3edefad3) ) // 4+3 == b22-03.23
- ROM_LOAD16_BYTE( "8.bin", 0x40001, 0x10000, CRC(e3d7a844) SHA1(9559b38f2017de0c93ed82ca7dccfb046fff39f9) ) // 8+7 == b22-04.24
- ROM_LOAD16_BYTE( "3.bin", 0x60000, 0x10000, CRC(a3ab61c6) SHA1(5cf82d1aa1f548fb3c243c625e4ff52c8714bacc) ) // ^
- ROM_LOAD16_BYTE( "7.bin", 0x60001, 0x10000, CRC(c1c4c701) SHA1(4dd751418ee0f8ae766e2fe47f752d0758d7d682) ) // ^
- ROM_LOAD16_BYTE( "2.f89", 0x80001, 0x10000, CRC(0810d327) SHA1(fe91ac02e617bde413dc8a20b7cbcaf3e20aeb28) ) /* c-chip substitute */
-
- ROM_REGION( 0x14000, "audiocpu", 0 )
- ROM_LOAD( "jb1_cd67", 0x00000, 0x8000, CRC(8527c00e) SHA1(86e3824caca39aca4ca4df63bb4474adacfc4c53) )
- ROM_CONTINUE( 0x10000, 0x4000 )
- ROM_CONTINUE( 0x0c000, 0x4000 )
-
- ROM_REGION( 0x80000, "gfx1", 0 )
- ROM_LOAD( "17.ic8", 0x00000, 0x10000, CRC(65b76309) SHA1(1e345726e137f4c56d4bf239651c986fd53a16c3) ) /* tiles */
- ROM_LOAD( "18.ic7", 0x10000, 0x10000, CRC(43a94283) SHA1(d6a05cbc7b996a8e7f1520563f6fada9a59021a4) )
- ROM_LOAD( "15.ic10", 0x20000, 0x10000, CRC(e61933fb) SHA1(02bc0e1a7a3ce9e15fb83b28ce8fafb0b8d80ebd) )
- ROM_LOAD( "16.ic9", 0x30000, 0x10000, CRC(ed031eb2) SHA1(905be4d890ff7bb8a4d8ad85b2a11483fb4d67eb) )
- ROM_LOAD( "13.ic12", 0x40000, 0x10000, CRC(312700ca) SHA1(c79edc9c25f364d0afd79aaa21cfe2fe46044314) )
- ROM_LOAD( "14.ic11", 0x50000, 0x10000, CRC(de3b0b88) SHA1(14b8871821e4c0abbb9967c5aa282cf4e67884fe) )
- ROM_LOAD( "11.ic14", 0x60000, 0x10000, CRC(9fdc6c8e) SHA1(ff4e1a98dc982bce2f9d235cac62c7166f477f64) )
- ROM_LOAD( "12.ic13", 0x70000, 0x10000, CRC(06226492) SHA1(834280ec49e61a0c9c6b6fe2033e1b20bd1bffbf) )
-
- ROM_REGION( 0xa0000, "gfx2", ROMREGION_INVERT )
- ROM_LOAD( "jb2_ic62", 0x00000, 0x10000, CRC(8548db6c) SHA1(675cd301259d5ed16098a38ac58b27b5ccd91264) ) /* sprites */
- ROM_LOAD( "jb2_ic61", 0x10000, 0x10000, CRC(37c5923b) SHA1(c83ef45564c56ef62d7019aecbd79dccc671deee) )
- ROM_LOAD( "jb2_ic60", 0x20000, 0x08000, CRC(662a2f1e) SHA1(1c5e8b1f0623e64faf9cd60f9653fc5957191a9b) )
- ROM_LOAD( "jb2_ic78", 0x28000, 0x10000, CRC(925865e1) SHA1(457de50bc03e8b949ac7d46ae4188201e87574a8) )
- ROM_LOAD( "jb2_ic77", 0x38000, 0x10000, CRC(b09695d1) SHA1(e6d315f9befb7b47f42668d573a1102e52d78aea) )
- ROM_LOAD( "jb2_ic76", 0x48000, 0x08000, CRC(41937743) SHA1(890c832a7cf87e6fe749d4824b02d57e10872bdf) )
- ROM_LOAD( "jb2_ic93", 0x50000, 0x10000, CRC(f644eeab) SHA1(9d45e9dfb08e8c90b4b10f5dc383fa4732161a81) )
- ROM_LOAD( "jb2_ic92", 0x60000, 0x10000, CRC(3fbccd33) SHA1(137880a564573db1f9e6de5c730af6709ca301f3) )
- ROM_LOAD( "jb2_ic91", 0x70000, 0x08000, CRC(d886c014) SHA1(9327c332c98a81451e9e0624344d2601ef06e490) )
- ROM_LOAD( "jb2_i121", 0x78000, 0x10000, CRC(93df1e4d) SHA1(b100d265b973254ec9cd44b6c32f62b4bac3b732) )
- ROM_LOAD( "jb2_i120", 0x88000, 0x10000, CRC(7c4e893b) SHA1(eceecb38554157ee24d228a2c722dad750a6a07d) )
- ROM_LOAD( "jb2_i119", 0x98000, 0x08000, CRC(7e1d58d8) SHA1(d586a018c3ec3e6e6a39992170d324361e03c68a) )
-
- ROM_REGION( 0x200, "pals", 0 )
- ROM_LOAD( "jumping-pal16r6.bin", 0x000, 0x104, CRC(12e9a7b8) SHA1(a0ce8b6083c9adfcb4bdbca87f63a01f292525f3) )
- ROM_LOAD( "jumping-pal20l8.bin", 0x000, 0x144, CRC(76944f81) SHA1(ab78e4e157ffdc13aea5dc360268b2640e60d19c) )
- ROM_LOAD( "pal16l8a.ic51.bin", 0x000, 0x104, CRC(c1e6cb8f) SHA1(9908e62bb9b806047b7a344bb62334bd696b9fc8) ) // z80 address decoder?
-ROM_END
-ROM_START( jumpinga )
- ROM_REGION( 0xa0000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "6.h4", 0x00000, 0x10000, CRC(3fab6b31) SHA1(57803478949cb62f7eab2ef9be08b13aa2237dbc) )
- ROM_LOAD16_BYTE( "10.h8", 0x00001, 0x10000, CRC(8c878827) SHA1(4a54a217b7c442305c3ce9298aa36ae225382444) )
- ROM_LOAD16_BYTE( "seyutu_5.i4", 0x20000, 0x10000, CRC(25f19b71) SHA1(538f9a510cf73581b5ec01befdba7dfb02032c66) )
- ROM_LOAD16_BYTE( "seyutu_9.i8", 0x20001, 0x10000, CRC(9c94f260) SHA1(aa963acacbf11480d0ddc3b99fc839414970c043) )
- ROM_LOAD16_BYTE( "4.bin", 0x40000, 0x10000, CRC(00bf8a91) SHA1(973868eef99b1bcfa60e1b22a18946aa3edefad3) ) // 4+3 == b22-03.23
- ROM_LOAD16_BYTE( "8.bin", 0x40001, 0x10000, CRC(e3d7a844) SHA1(9559b38f2017de0c93ed82ca7dccfb046fff39f9) ) // 8+7 == b22-04.24
- ROM_LOAD16_BYTE( "3.bin", 0x60000, 0x10000, CRC(a3ab61c6) SHA1(5cf82d1aa1f548fb3c243c625e4ff52c8714bacc) ) // ^
- ROM_LOAD16_BYTE( "7.bin", 0x60001, 0x10000, CRC(c1c4c701) SHA1(4dd751418ee0f8ae766e2fe47f752d0758d7d682) ) // ^
- ROM_LOAD16_BYTE( "2.f89", 0x80001, 0x10000, CRC(0810d327) SHA1(fe91ac02e617bde413dc8a20b7cbcaf3e20aeb28) ) /* c-chip substitute */
-
- ROM_REGION( 0x14000, "audiocpu", 0 )
- ROM_LOAD( "jb1_cd67", 0x00000, 0x8000, CRC(8527c00e) SHA1(86e3824caca39aca4ca4df63bb4474adacfc4c53) )
- ROM_CONTINUE( 0x10000, 0x4000 )
- ROM_CONTINUE( 0x0c000, 0x4000 )
-
- ROM_REGION( 0x80000, "gfx1", 0 )
- ROM_LOAD( "17.ic8", 0x00000, 0x10000, CRC(65b76309) SHA1(1e345726e137f4c56d4bf239651c986fd53a16c3) ) /* tiles */
- ROM_LOAD( "18.ic7", 0x10000, 0x10000, CRC(43a94283) SHA1(d6a05cbc7b996a8e7f1520563f6fada9a59021a4) )
- ROM_LOAD( "15.ic10", 0x20000, 0x10000, CRC(e61933fb) SHA1(02bc0e1a7a3ce9e15fb83b28ce8fafb0b8d80ebd) )
- ROM_LOAD( "16.ic9", 0x30000, 0x10000, CRC(ed031eb2) SHA1(905be4d890ff7bb8a4d8ad85b2a11483fb4d67eb) )
- ROM_LOAD( "13.ic12", 0x40000, 0x10000, CRC(312700ca) SHA1(c79edc9c25f364d0afd79aaa21cfe2fe46044314) )
- ROM_LOAD( "14.ic11", 0x50000, 0x10000, CRC(de3b0b88) SHA1(14b8871821e4c0abbb9967c5aa282cf4e67884fe) )
- ROM_LOAD( "11.ic14", 0x60000, 0x10000, CRC(9fdc6c8e) SHA1(ff4e1a98dc982bce2f9d235cac62c7166f477f64) )
- ROM_LOAD( "12.ic13", 0x70000, 0x10000, CRC(06226492) SHA1(834280ec49e61a0c9c6b6fe2033e1b20bd1bffbf) )
-
- ROM_REGION( 0xa0000, "gfx2", ROMREGION_INVERT )
- ROM_LOAD( "jb2_ic62", 0x00000, 0x10000, CRC(8548db6c) SHA1(675cd301259d5ed16098a38ac58b27b5ccd91264) ) /* sprites */
- ROM_LOAD( "20.bin", 0x10000, 0x10000, CRC(89b3d8ee) SHA1(8491de6e8292e58b9a8696be15827bcb1ea42845) ) // dumped multiple times, always the same
- ROM_LOAD( "jb2_ic60", 0x20000, 0x08000, CRC(662a2f1e) SHA1(1c5e8b1f0623e64faf9cd60f9653fc5957191a9b) )
- ROM_LOAD( "jb2_ic78", 0x28000, 0x10000, CRC(925865e1) SHA1(457de50bc03e8b949ac7d46ae4188201e87574a8) )
- ROM_LOAD( "jb2_ic77", 0x38000, 0x10000, CRC(b09695d1) SHA1(e6d315f9befb7b47f42668d573a1102e52d78aea) )
- ROM_LOAD( "jb2_ic76", 0x48000, 0x08000, CRC(41937743) SHA1(890c832a7cf87e6fe749d4824b02d57e10872bdf) )
- ROM_LOAD( "jb2_ic93", 0x50000, 0x10000, CRC(f644eeab) SHA1(9d45e9dfb08e8c90b4b10f5dc383fa4732161a81) )
- ROM_LOAD( "jb2_ic92", 0x60000, 0x10000, CRC(3fbccd33) SHA1(137880a564573db1f9e6de5c730af6709ca301f3) )
- ROM_LOAD( "jb2_ic91", 0x70000, 0x08000, CRC(d886c014) SHA1(9327c332c98a81451e9e0624344d2601ef06e490) )
- ROM_LOAD( "jb2_i121", 0x78000, 0x10000, CRC(93df1e4d) SHA1(b100d265b973254ec9cd44b6c32f62b4bac3b732) )
- ROM_LOAD( "jb2_i120", 0x88000, 0x10000, CRC(7c4e893b) SHA1(eceecb38554157ee24d228a2c722dad750a6a07d) )
- ROM_LOAD( "jb2_i119", 0x98000, 0x08000, CRC(7e1d58d8) SHA1(d586a018c3ec3e6e6a39992170d324361e03c68a) )
-
- ROM_REGION( 0x200, "pals", 0 )
- ROM_LOAD( "jumping-pal16r6.bin", 0x000, 0x104, CRC(12e9a7b8) SHA1(a0ce8b6083c9adfcb4bdbca87f63a01f292525f3) )
- ROM_LOAD( "jumping-pal20l8.bin", 0x000, 0x144, CRC(76944f81) SHA1(ab78e4e157ffdc13aea5dc360268b2640e60d19c) )
- ROM_LOAD( "pal16l8a.ic51.bin", 0x000, 0x104, CRC(c1e6cb8f) SHA1(9908e62bb9b806047b7a344bb62334bd696b9fc8) ) // z80 address decoder?
-ROM_END
+READ8_MEMBER(rainbow_state::hd_status_60_r)
+{
+ int data = m_hdc_buffer[m_hdc_buf_offset];
+ //logerror("HARD DISK DISK BUFFER: READ offset %04x | data = %02x\n", m_hdc_buf_offset, data); // ! DO NOT CHANGE ORDER !
-/* red 'Imnoe' PCB */
-ROM_START( jumpingi )
- ROM_REGION( 0xa0000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "05.IC3", 0x00000, 0x20000, CRC(69ac4af4) SHA1(39055573e412e2591f7a68f9fee5919528529544) )
- ROM_LOAD16_BYTE( "03.IC6", 0x00001, 0x20000, CRC(38975cdc) SHA1(23c02a4574a95904805d5f458c06c77c14d11c14) )
- ROM_LOAD16_BYTE( "06.IC2", 0x40000, 0x20000, CRC(3ebb0fb8) SHA1(1b41b305623d121255eb70cb992e4d9da13abd82) ) // b22-03.23
- ROM_LOAD16_BYTE( "04.IC5", 0x40001, 0x20000, CRC(91625e7f) SHA1(765afd973d9b82bb496b04beca284bf2769d6e6f) ) // b22-04.24
- ROM_LOAD16_BYTE( "02", 0x80001, 0x10000, CRC(0810d327) SHA1(fe91ac02e617bde413dc8a20b7cbcaf3e20aeb28) ) /* c-chip substitute */
-
- ROM_REGION( 0x14000, "audiocpu", 0 )
- ROM_LOAD( "01.IC53", 0x00000, 0x8000, CRC(8527c00e) SHA1(86e3824caca39aca4ca4df63bb4474adacfc4c53) )
- ROM_CONTINUE( 0x10000, 0x4000 )
- ROM_CONTINUE( 0x0c000, 0x4000 )
-
- ROM_REGION( 0x80000, "gfx1", 0 )
- ROM_LOAD( "13.IC8", 0x00000, 0x10000, CRC(65b76309) SHA1(1e345726e137f4c56d4bf239651c986fd53a16c3) ) /* tiles */
- ROM_LOAD( "14.IC7", 0x10000, 0x10000, CRC(43a94283) SHA1(d6a05cbc7b996a8e7f1520563f6fada9a59021a4) )
- ROM_LOAD( "11.IC10", 0x20000, 0x10000, CRC(e61933fb) SHA1(02bc0e1a7a3ce9e15fb83b28ce8fafb0b8d80ebd) )
- ROM_LOAD( "12.IC9", 0x30000, 0x10000, CRC(ed031eb2) SHA1(905be4d890ff7bb8a4d8ad85b2a11483fb4d67eb) )
- ROM_LOAD( "09.IC12", 0x40000, 0x10000, CRC(312700ca) SHA1(c79edc9c25f364d0afd79aaa21cfe2fe46044314) )
- ROM_LOAD( "10.IC11", 0x50000, 0x10000, CRC(de3b0b88) SHA1(14b8871821e4c0abbb9967c5aa282cf4e67884fe) )
- ROM_LOAD( "07.IC14", 0x60000, 0x10000, CRC(9fdc6c8e) SHA1(ff4e1a98dc982bce2f9d235cac62c7166f477f64) )
- ROM_LOAD( "08.IC13", 0x70000, 0x10000, CRC(06226492) SHA1(834280ec49e61a0c9c6b6fe2033e1b20bd1bffbf) )
-
- ROM_REGION( 0xa0000, "gfx2", ROMREGION_INVERT )
- ROM_LOAD( "15.IC62", 0x00000, 0x10000, CRC(8548db6c) SHA1(675cd301259d5ed16098a38ac58b27b5ccd91264) ) /* sprites */
- ROM_LOAD( "19.IC61", 0x10000, 0x10000, CRC(89b3d8ee) SHA1(8491de6e8292e58b9a8696be15827bcb1ea42845) )
- ROM_LOAD( "23.IC60", 0x20000, 0x08000, CRC(662a2f1e) SHA1(1c5e8b1f0623e64faf9cd60f9653fc5957191a9b) )
- ROM_LOAD( "16.IC78", 0x28000, 0x10000, CRC(925865e1) SHA1(457de50bc03e8b949ac7d46ae4188201e87574a8) )
- ROM_LOAD( "20.IC77", 0x38000, 0x10000, CRC(b09695d1) SHA1(e6d315f9befb7b47f42668d573a1102e52d78aea) )
- ROM_LOAD( "24.IC76", 0x48000, 0x08000, CRC(41937743) SHA1(890c832a7cf87e6fe749d4824b02d57e10872bdf) )
- ROM_LOAD( "17.IC93", 0x50000, 0x10000, CRC(f644eeab) SHA1(9d45e9dfb08e8c90b4b10f5dc383fa4732161a81) )
- ROM_LOAD( "21.IC92", 0x60000, 0x10000, CRC(16e1b0ff) SHA1(1467a317d07a447d01113e6b6b9f5aca30cb0dcb) )
- ROM_LOAD( "25.IC91", 0x70000, 0x08000, CRC(d886c014) SHA1(9327c332c98a81451e9e0624344d2601ef06e490) )
- ROM_LOAD( "18.IC121", 0x78000, 0x10000, CRC(93df1e4d) SHA1(b100d265b973254ec9cd44b6c32f62b4bac3b732) )
- ROM_LOAD( "22.IC120", 0x88000, 0x10000, CRC(7c4e893b) SHA1(eceecb38554157ee24d228a2c722dad750a6a07d) )
- ROM_LOAD( "26.IC119", 0x98000, 0x08000, CRC(7e1d58d8) SHA1(d586a018c3ec3e6e6a39992170d324361e03c68a) )
-
- ROM_REGION( 0x200, "pals", 0 )
- ROM_LOAD( "JP2.IC56", 0x000, 0x104, CRC(12e9a7b8) SHA1(a0ce8b6083c9adfcb4bdbca87f63a01f292525f3) ) // PAL16R6A-2CN
- ROM_LOAD( "JP1.IC13", 0x000, 0x144, CRC(76944f81) SHA1(ab78e4e157ffdc13aea5dc360268b2640e60d19c) ) // PAL20L8A-2CNS
- ROM_LOAD( "JP3.IC51", 0x000, 0x104, CRC(c1e6cb8f) SHA1(9908e62bb9b806047b7a344bb62334bd696b9fc8) ) // PAL16L8A-2CN z80 address decoder?
-ROM_END
+ m_hdc_buf_offset = (m_hdc_buf_offset + 1);
+ if (m_hdc_buf_offset >= 1024) // 1 K enforced by controller
+ {
+ m_hdc_buf_offset = 0;
+ m_hdc->buffer_ready(true);
+ }
+ return data;
+}
-DRIVER_INIT_MEMBER(rbisland_state,rbisland)
+WRITE8_MEMBER(rainbow_state::hd_status_60_w)
{
- UINT8 *ROM = memregion("audiocpu")->base();
+ //logerror("HARD DISK BUFFER: WRITE offset %04x | data = %02x\n", m_hdc_buf_offset, data);
- membank("bank1")->configure_entries(0, 4, &ROM[0xc000], 0x4000);
+ m_hdc_buffer[m_hdc_buf_offset] = data;
+ m_hdc_buf_offset = (m_hdc_buf_offset + 1);
- rbisland_cchip_init(0);
+ if (m_hdc_buf_offset >= 1024) // 1 K enforced by controller
+ {
+ m_hdc_buf_offset = 0;
+ m_hdc->buffer_ready(true);
+ }
}
-DRIVER_INIT_MEMBER(rbisland_state,rbislande)
+
+// Secondary Command / Status Registers(68H) is...
+// (A) a write - only register for commands
+// (B) a read - only register for status signals
+// Holds the status of the following signals:
+// - 3 hard-wired controller module identification bits.
+// - signals from the WD1010 chip,
+// - disk drive(latched status signals)
+READ8_MEMBER(rainbow_state::hd_status_68_r)
{
- UINT8 *ROM = memregion("audiocpu")->base();
+ // (*) Bits 5-7 : HARD WIRED IDENTIFICATION BITS, bits 5+7 = 1 and bit 6 = 0 (= 101 f?r RD51 module)
+ int data = 0xe0; // 111 gives DRIVE NOT READY (when W is pressed on boot screen)
+ if ((m_inp5->read() == 0x01) && (rainbow_hdc_file(0) != NULL))
+ data = 0xa0; // A0 : OK, DRIVE IS READY (!)
+
+ int my_offset = 0x07;
+ int stat = m_hdc->read(space, my_offset);
+ logerror("(x68) WD1010 register %04x (STATUS) read, result : %04x\n", my_offset, stat);
+
+ // NOTE: SEEK COMPLETE IS CURRENTLY HARD WIRED / NOT FULLY EMULATED -
+ // Bit 4 : SEEK COMPLETE: This status bit indicates that the disk drive positioned the R/W heads over the desired track on the disk surface.
+
+ // (ALT.TEXT): "Seek Complete - When this signal from the disk drive goes low(0), it indicates that the R /W heads settled on the correct track.
+ // Writing is inhibited until this signal goes low(0). Seek complete is high(1) during normal seek operation.
+ if (stat & 16) // SEEK COMPLETE (bit 4)?
+ data |= 16;
+
+ // Bit 3 : DIRECTION : This bit indicates the direction the read/write heads in the disk
+ // drive will move when the WD1010 chip issues step pulse(s). When high(1), the R / W heads will move toward the spindle.
+ // When low (0), the heads will move away from the spindle, towards track O.
+ if (m_hdc_direction)
+ data |= 8;
+
+ // Bit 2 : LATCHED STEP PULSE: This status bit from the step pulse latch indicates if the WD1010
+ // chip issued a step pulse since the last time the 8088 processor cleared the step pulse latch.
+ if (m_hdc_step_latch)
+ data |= 4;
+
+ // Bit 1 : LATCHED INDEX : This status bit from the index latch indicates if the disk drive
+ // encountered an index mark since the last time the 8088 processor cleared the index latch.
+ if (m_hdc_index_latch)
+ data |= 2;
+
+ // Bit 0 : CTRL BUSY : indicates that the WD 1010 chip is accessing the sector buffer. When this bit is set,
+ // the 8088 cannot access the WD 1010 registers.
+ if (stat & 128) // BUSY (bit 7)?
+ data |= 1;
+
+ return data;
+}
+
+
+// 68 (WRITE): Secondary Command Registers (68H) - - ERKL?RUNG: "write-only register for commands"
+// - see TABLE 4.8 (4-24)
+WRITE8_MEMBER(rainbow_state::hd_status_68_w)
+{
+ // Bit 4-7 : --- not used / reserved
+
+ // Bit 3 : CLEAR STEP LATCH : This bit BAD<3>H clears out the step pulse latch. The step pulse
+ //latch is set every time the WD1010 chip issues a step pulse.The output of the step pulse latch is sent to the secondary status register.
+ if (data & 0x08)
+ m_hdc_step_latch = false;
+
+ // Bit 2 : CLEAR INDEX LATCH : This bit BAD<2>H clears out the index latch. The index latch is
+ //set when the disk drive senses the index position on the disk.The index latch output is sent to the secondary status register.
+ if (data & 0x04)
+ m_hdc_index_latch = false;
+
+ // * Bit 1 : SOFTWARE INITIALIZE: The BAD<I>H bit sets this bit. This bit, when set, initializes the
+ // controller. The controller cannot be accessed for 7 microseconds(us) after the 8088 issues the software initialize.
+ if (data & 0x02)
+ hdc_reset();
+
+ // * Bit 0 : SET BUFFER READY : READ SECTOR command: this bit, when set, tells the WDI010 chip that the sector buffer was emptied which would then end the
+ // command. WRITE SECTOR / FORMAT CMD: bit tells the WD1010 that the sector buffer now contains valid data for transfer to the disk drive.
+
+ // * SET BY BIOS: 2 : (WD1010 IRQ based transfer operation?) @ 0810
+ // 1 : see @ 088D after 'READ_SECTOR_OK'
+ if (data & 0x01)
+ {
+ logerror(">> HARD DISC * SET BUFFER READY * <<\n");
+
+ output_set_value("led1", 0); // 1 = OFF (One of the CPU LEDs as DRIVE LED) = HARD DISK ACTIVITY =
+ MOTOR_DISABLE_counter = 20;
+
+ m_hdc->buffer_ready(true);
+ }
+}
+
+
+/*
+/ READ ONLY REGISTER (HEX 69)
+
+The drive status register at I/O address 69H is a read-only register
+that monitors the status of control and error signals to/from the disk drive.
+
+0 Drive Select - high (1) indicates that the controller module is selecting the drive.
- membank("bank1")->configure_entries(0, 4, &ROM[0xc000], 0x4000);
+1-3 Head Select - These 3 bits are the binary head address of the R/W head
+selected for the current read/write operation. The RD51 drive has 4 heads.
- rbisland_cchip_init(1);
+4 Write Gate - The WDlOI0 chip asserts this bit high (1) to inform the 8088 of
+data being written on the disk. Signal also enables write current in disk drive.
+
+5 Drive Write Fault - The disk drive asserts this bit high (1) to indicate that a condition
+exists at the drive that may cause improper writing on the disk.
+Inhibits further writing until the error is corrected (.. until RESET?) [Bavarese]
+
+6 Drive Ready - When the disk drive together with SEEK COMPLETE asserts this
+bit high (1), it indicates that the drive is ready to read, write, or
+seek. When this bit is low (0), all reading, writing, and seeking are
+inhibited.
+
+7 Track 0 - The disk drive sets this bit high (1) when the R/W heads are
+positioned over cylinder 0 (the data track furthest away from the spindle).
+*/
+READ8_MEMBER(rainbow_state::hd_status_69_r)
+{
+ int HS = m_hdc->read(space, 0x06) & (1 + 2 + 4); // SDH bits 0-2 = HEAD #
+ logerror("(x69 READ) %i = HEAD SELECT WD1010\n", HS);
+
+ UINT8 data = (HS << 1);
+
+ // DRIVE SELECT: 2 bits in SDH register of WDx010 could address 4 drives.
+ // External circuit supports 1 drive here (DRIVE 0 selected or deselected)
+ int DRV = ((m_hdc->read(space, 0x06) >> 3) & 0x01); // 0x03 gives error R6 with DIAG.DISK
+ if (DRV == 0)
+ {
+ logerror("(x69 READ) %i = _DRIVE # 0_ SELECT! \n", DRV);
+ data |= 1;
+ }
+
+ if (m_hdc_write_gate) // WRITE GATE (cached here)
+ data |= 16;
+
+ if (m_hdc_write_fault)
+ data |= 32;
+
+ if (m_hdc_drive_ready)
+ data |= 64;
+
+ // Fake TRACK 0 signal (normally FROM DRIVE)
+ m_hdc_track0 = false; // Set a default
+
+ int stat1 = m_hdc->read(space, 0x04); // CYL LO
+ int stat2 = m_hdc->read(space, 0x05); // CYL HI
+ if ((stat1 == 0) && (stat2 == 0))
+ m_hdc_track0 = true;
+
+ if (m_hdc_track0)
+ {
+ data |= 128;
+ logerror("(x69 READ) TRACK 00 detected\n");
+ }
+
+ return data;
+}
+
+// TREAT SIGNALS FROM / TO CONTROLLER
+WRITE_LINE_MEMBER(rainbow_state::hdc_step)
+{
+ m_hdc_step_latch = true;
+
+ output_set_value("led1", 0); // 1 = OFF (One of the CPU LEDs as DRIVE LED) = HARD DISK ACTIVITY =
+ MOTOR_DISABLE_counter = 20;
+}
+
+WRITE_LINE_MEMBER(rainbow_state::hdc_direction)
+{
+ m_hdc_direction = state; // (0 = OUT)
+}
+
+READ_LINE_MEMBER(rainbow_state::hdc_drive_ready)
+{
+ return m_hdc_drive_ready;
+}
+
+READ_LINE_MEMBER(rainbow_state::hdc_write_fault)
+{
+ return m_hdc_write_fault;
}
-DRIVER_INIT_MEMBER(rbisland_state,jumping)
+// Buffer counter reset when BCR goes from 0 -> 1
+WRITE_LINE_MEMBER(rainbow_state::hdc_bcr)
{
- m_jumping_latch = 0;
- save_item(NAME(m_jumping_latch));
+ static int bcr_state;
+ if ((bcr_state == 0) && (state == 1))
+ hdc_buffer_counter_reset();
+ bcr_state = state;
}
+void rainbow_state::hdc_buffer_counter_reset()
+{
+ m_hdc->buffer_ready(false);
+ m_hdc_buf_offset = 0;
+}
+
+// DATA REQUEST - When high (..) initiates data transfers
+// to or from the sector buffer. On a READ, this signal
+// goes high AFTER the sector buffer is filled.
+
+// On a WRITE / FORMAT command, signal goes high when the WD1010
+// chip is READY TO ACCESS the information in the sector buffer.
+WRITE_LINE_MEMBER(rainbow_state::hdc_bdrq)
+{
+ static int old_state;
+
+ logerror("BDRQ - BUFFER DATA REQUEST OBTAINED: %u\n", state);
+ if ((state == 1) && (old_state == 0))
+ {
+ hdc_buffer_counter_reset();
+
+ m_bdl_irq = state;
+ update_bundle_irq(); // TRIGGER AN INTERRUPT
+ }
+ old_state = state;
+}
+// ---------------------------- / RD51 HARD DISK CONTROLLER ----------------------------------
+
+
+// IRQ service for both RD51 and COMM. OPTION
+void rainbow_state::update_bundle_irq()
+{
+ if (m_bdl_irq == 0)
+ {
+ lower_8088_irq(IRQ_BDL_INTR_L);
+
+ if (m_inp5->read() == 0x01)
+ hdc_buffer_counter_reset();
+ }
+ else
+ {
+ raise_8088_irq(IRQ_BDL_INTR_L);
+ }
+}
+
+WRITE_LINE_MEMBER(rainbow_state::bundle_irq)
+{
+ m_bdl_irq = state;
+ update_bundle_irq();
+}
+
+
+
+READ8_MEMBER(rainbow_state::system_parameter_r)
+{
+#ifdef FORCE_RAINBOW_B_LOGO
+
+ // WORKAROUND: Initialize NVRAM + VOLATILE RAM with DEFAULTS + correct RAM SIZE !
+ int test = (m_inp8->read() >> 16) - 2; // 0 = 128 K (!)
+ if (test >= 0)
+ {
+ m_p_vol_ram[0xdb] = test;
+ m_p_nvram[0xdb] = test;
+ }
+
+ // NVRAM @ 0x89 : AUTO RPT(0 = OFF 1 = ON)
+ m_p_nvram[0x89] = 0; // AUTO REPEAT ON (1 would be DETRIMENTAL TO "SET-UP" (80/132 + 50/60 Hz) with KEYBOARD_WORKAROUND (!)
+#endif
+
+
+ /* Info about option boards is in bits 0 - 3:
+ SYSTEM PARAMETER INFORMATION: see AA-P308A-TV page 92 section 14.0
+ Bundle card (1) | Floppy (2) | Graphics (4) | Memory option (8)
+ 0 1 2 3 4 5 6 7
+ B F G M
+ (bit SET means NOT present; 4-7 reserved )
+
+ B : no separation between the 2 available 'bundle cards' (HD controller / COMM.OPTION) ?
+
+ M : old RAM extension (128 / 192 K ?) detected with OPTION_PRESENT bit, newer models 'by presence'.
+ BIOS uses a seperate IRQ vector for RAM board detection (at least on a 100-B).
+ */
+ return (((m_inp5->read() == 1) ? 0 : 1) |
+ ((m_inp6->read() == 1) ? 0 : 2) |
+ ((m_inp7->read() == 1) ? 0 : 4) |
+ ((m_inp8->read() > BOARD_RAM) ? 0 : 8)
+ // 16 | 32 | 64 | 128 // to be verified.
+ );
+}
+
+READ8_MEMBER(rainbow_state::comm_control_r)
+{
+ /* [02] COMMUNICATIONS STATUS REGISTER - PAGE 154 (**** READ **** )
+ Used to read status of SERIAL port, IRQ line of each CPU, and MHFU logic enable signal.
+
+ // What the specs says on how MHFU detection is disabled:
+ // 1. by first disabling interrupts with CLI
+ // 2. by writing 0x00 to port 0x10C (handled by a 8088 write handler)
+ // MHFU is re-enabled by writing to 0x0c (or 'automatically after STI') <-- when under BIOS control ?
+ */
+ int data = 0;
+ if (COLD_BOOT == 2)
+ data = 0; // During boot phase 2, never enable MHFU (prevents errors).
+ else
+ {
+ data = m_crtc->MHFU(1);
+ }
+ return (((data) ? 0x00 : 0x20) | // // (L) status of MHFU flag => bit pos.5
+ ((INT88) ? 0x00 : 0x40) | // (L)
+ ((INTZ80) ? 0x00 : 0x80) // (L)
+ );
+}
+
+WRITE8_MEMBER(rainbow_state::comm_control_w)
+{
+ /* Communication control register of -COMM- port (when written):
+
+ 8088 LEDs:
+ 5 7 6 4 <- BIT POSITION
+ D6 -D5-D4-D3 <- INTERNAL LED NUMBER (DEC PDF)
+ -4--5--6--7- <- NUMBERS EMBOSSED ON BACK OF PLASTIC HOUSING (see error chart)
+ */
+ output_set_value("led4", BIT(data, 5)); // LED "D6"
+ output_set_value("led5", BIT(data, 7)); // LED "D5"
+ output_set_value("led6", BIT(data, 6)); // LED "D4"
+ output_set_value("led7", BIT(data, 4)); // LED "D3"
+
+ // printf("%02x to COMM.CONTROL REGISTER\n", data);
+}
+
+
+
+// 8088 writes to port 0x00 (interrupts Z80)
+// See page 133 (4-34)
+WRITE8_MEMBER(rainbow_state::i8088_latch_w)
+{
+ // printf("%02x to Z80 mailbox\n", data);
+
+ // The interrupt vector address(F7H) placed on the bus is hardwired into the Z80A interrupt vector encoder.
+ // The F7H interrupt vector address causes the Z80A processor to perform an RST 30 instruction in
+ // interrupt mode 0
+ m_z80->set_input_line_and_vector(0, ASSERT_LINE, 0xf7);
+ m_z80_mailbox = data;
+
+ INTZ80 = true; //
+}
+
+// Z80 reads port 0x00
+// See page 134 (4-35)
+READ8_MEMBER(rainbow_state::z80_latch_r)
+{
+ // printf("Read %02x from Z80 mailbox\n", m_z80_mailbox);
+ m_z80->set_input_line(0, CLEAR_LINE);
+
+ INTZ80 = false;
+ return m_z80_mailbox;
+}
+
+// Z80 writes to port 0x00 (interrupts 8088)
+// See page 134 (4-35)
+WRITE8_MEMBER(rainbow_state::z80_latch_w)
+{
+ // printf("%02x to 8088 mailbox\n", data);
+ raise_8088_irq(IRQ_8088_MAILBOX);
+ m_8088_mailbox = data;
+
+ INT88 = true;
+}
+
+// 8088 reads port 0x00. See page 133 (4-34)
+READ8_MEMBER(rainbow_state::i8088_latch_r)
+{
+ // printf("Read %02x from 8088 mailbox\n", m_8088_mailbox);
+ lower_8088_irq(IRQ_8088_MAILBOX);
+
+ INT88 = false;
+ return m_8088_mailbox;
+}
+
+// (Z80) : WRITE to 0x20
+WRITE8_MEMBER(rainbow_state::z80_diskdiag_read_w)
+{
+ m_zflip = true;
+}
+
+// (Z80) : PORT 21H * WRITE *
+WRITE8_MEMBER(rainbow_state::z80_diskdiag_write_w)
+{
+ /* Z80 LEDs:
+ 4 5 6 <- bit #
+ D11 D10 -D9 <- INTERNAL LED NUMBER (see PDF)
+ -1 --2-- 3 <- NUMBERS EMBOSSED ON BACK OF PLASTIC HOUSING (see error chart)
+ */
+ output_set_value("led1", BIT(data, 4)); // LED "D11"
+ output_set_value("led2", BIT(data, 5)); // LED "D10"
+ output_set_value("led3", BIT(data, 6)); // LED "D9"
+
+ m_zflip = false;
+}
+
+// (Z80) : PORT 21H _READ_
+READ8_MEMBER(rainbow_state::z80_generalstat_r)
+{
+ /*
+ General / diag.status register Z80 / see page 157 (table 4-18).
+ ---- BITS FROM RX50 CONTROLLER CARD:
+ D7 : STEP L : reflects status of STEP signal _FROM FDC_
+ (when this 2us output pulse is low, the stepper will move into DIR)
+ D6 : WRITE GATE L :reflects status of WRITE GATE signal _FROM FDC_
+ (asserted low before data can be written on the diskette)
+ D5 : TR00: reflects status of TRACK 0 signal (= 1) * from the disk drive *
+ D4 : DIR L: reflects status of DIRECTION signal * FROM FDC * to disk
+ (when low, the head will step towards the center)
+ D3 : READY L: reflects status of READY L signal * from the disk drive *
+ (low active, asserts when disk is inserted and door is closed)
+ ---- BITS BELOW FROM MAINBOARD:
+ D2 : INT88 L: (bit reads the INT88 bit sent by Z80 to interrupt 8088)
+ D1 : INTZ80 L: (bit reads the INTZ80 bit sent by 8088 to interrupt Z80)
+ D0 : ZFLIP L: (read from the diagnostic control register of Z80A)
+ */
+ static int last_track;
+
+ int track = 0;
+ int fdc_step = 0;
+ int fdc_ready = 0;
+ int tk00 = 0;
+ int fdc_write_gate = 0;
+ int last_dir = 0;
+
+ printf("\nFLOPPY %02d - ", m_unit); // TEST-DEBUG
+
+ // Attempt to block invalid accesses
+ if (m_unit != INVALID_DRIVE)
+ {
+ track = m_fdc->track_r(space, 0);
+ if (track != last_track)
+ fdc_step = 1; // calculate STEP (sic)
+ last_track = track;
+
+ if (!m_floppy->ready_r()) // weird (see wd_fdc)
+ fdc_ready = 1;
+
+ if (fdc_ready)
+ fdc_write_gate = 1; // * FAKE * WRITE GATE !
+
+ // "valid only when drive is selected" !
+ if (!m_floppy->trk00_r()) // weird (see wd_fdc)
+ tk00 = 1;
+
+ if (last_track > track)
+ last_dir = 1; // correct?
+ else
+ last_dir = 0;
+
+ if (fdc_ready == 1)
+ printf(" RDY:1 "); // TEST-DEBUG
+ else
+ printf(" RDY:0 "); // TEST-DEBUG
+
+ if (fdc_step == 1)
+ printf(" STP:1 "); // TEST-DEBUG
+ else
+ printf(" STP:0 "); // TEST-DEBUG
+
+ if (tk00 == 0)
+ printf(" TK00=0 "); // TEST-DEBUG
+ else
+ printf(" TK00=1 "); // TEST-DEBUG
+
+ }
+
+ int data = (
+ ((fdc_step) ? 0x00 : 0x80) |
+ ((fdc_write_gate) ? 0x00 : 0x40) |
+ ((tk00) ? 0x20 : 0x00) | // ***** ALL LOW ACTIVE - EXCEPT tk00 :
+ ((last_dir) ? 0x00 : 0x10) |
+ ((fdc_ready) ? 0x00 : 0x08) |
+ ((INT88) ? 0x00 : 0x04) |
+ ((INTZ80) ? 0x00 : 0x02) |
+ ((m_zflip) ? 0x00 : 0x01)
+ );
+
+ return data;
+}
+
+
+
+// (Z80) : PORT 40H _READ_
+// 40H diskette status Register **** READ ONLY *** ( 4-60 of TM100.pdf )
+READ8_MEMBER(rainbow_state::z80_diskstatus_r)
+{
+ int track = 0;
+
+ // AND 00111011 - return what was WRITTEN to D5-D3, D1, D0 previously
+ // (except D7,D6,D2)
+ int data = m_z80_diskcontrol & 0x3b;
+
+ // -DOES NOT WORK HERE- Attempt to block invalid accesses
+ if (m_unit != INVALID_DRIVE)
+ {
+ // D7: DRQ: reflects status of DATA REQUEST signal from FDC.
+ // '1' indicates that FDC has read data OR requires new write data.
+ data |= m_fdc->drq_r() ? 0x80 : 0x00;
+
+ // D6: IRQ: indicates INTERRUPT REQUEST signal from FDC. Indicates that a
+ // status bit has changed. Set to 1 at the completion of any
+ // command (.. see page 207 or 5-25).
+ data |= m_fdc->intrq_r() ? 0x40 : 0x00;
+
+ // D5: SIDE 0H: status of side select signal at J2 + J3 of RX50 controller.
+ // For 1 sided drives, this bit will always read low (0).
+
+ // D4: MOTOR 1 ON L: 0 = indicates MOTOR 1 ON bit is set in drive control reg.
+ // D3: MOTOR 0 ON L: 0 = indicates MOTOR 0 ON bit is set in drive "
+
+ track = m_fdc->track_r(space, 0);
+
+ // Print HEX track number
+ static UINT8 bcd2hex[] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71 };
+ // 0...9 ,A (0x77), b (0x7c), C (0x39) , d (0x5e), E (0x79), F (0x71)
+ output_set_digit_value(0, bcd2hex[(track >> 4) & 0x0f]);
+ output_set_digit_value(1, bcd2hex[(track - ((track >> 4) << 4)) & 0x0f]);
+ }
+
+ // D2: TG43 L : 0 = INDICATES TRACK > 43 SIGNAL FROM FDC TO DISK DRIVE.
+ if (track > 43)
+ data = data & (255 - 4);
+ else
+ data = data | 4;
+
+ // D1: DS1 H: reflect status of bits 0 and 1 form disk.control reg.
+ // D0: DS0 H: "
+ return data;
+}
+
+// (Z80) : PORT 40H * WRITE *
+// NOTE: routine will accept invalid drive letters...
+WRITE8_MEMBER(rainbow_state::z80_diskcontrol_w)
+{
+ int selected_drive = INVALID_DRIVE;
+ static const char *names[] = { FD1793_TAG ":0", FD1793_TAG ":1", FD1793_TAG ":2", FD1793_TAG ":3" };
+
+ int drive = 0;
+ if (m_inp10->read() && ((data & 3) < 2))
+ drive = (data & 1) + 2;
+ else
+ drive = data & 3;
+
+ floppy_connector *con = NULL;
+ if (drive < MAX_FLOPPIES)
+ con = machine().device<floppy_connector>(names[drive]);
+
+ if (con)
+ {
+ m_floppy = con->get_device();
+ if (m_floppy)
+ selected_drive = drive;
+ //printf("%i <- SELECTED DRIVE...\n", m_unit);
+ }
+
+ if (selected_drive == INVALID_DRIVE)
+ {
+ printf("(m_unit = %i) ** SELECTED DRIVE ** INVALID. (selected drive = %i)\n", m_unit, selected_drive);
+ m_unit = INVALID_DRIVE;
+ m_floppy = NULL;
+ }
+
+ if (m_floppy != NULL)
+ {
+ m_fdc->set_floppy(m_floppy); // Sets new _image device_
+ if (!m_floppy->exists())
+ {
+ m_floppy = NULL;
+ printf("(m_unit = %i) SELECTED IMAGE *** DOES NOT EXIST *** (selected drive = %i)\n", m_unit, selected_drive);
+ selected_drive = INVALID_DRIVE;
+ //m_unit = INVALID_DRIVE;
+ }
+ else
+ {
+ m_floppy->ss_w((data & 20) ? 1 : 0); // RX50 board in Rainbow has 'side select'
+ m_floppy->set_rpm(300.);
+ }
+ }
+
+ output_set_value("driveled0", (selected_drive == 0) ? 1 : 0);
+ output_set_value("driveled1", (selected_drive == 1) ? 1 : 0);
+
+ output_set_value("driveled2", (selected_drive == 2) ? 1 : 0);
+ output_set_value("driveled3", (selected_drive == 3) ? 1 : 0);
+
+ if (selected_drive < 4)
+ {
+ m_unit = selected_drive;
+
+ if (MOTOR_DISABLE_counter == 0) // "one shot"
+ MOTOR_DISABLE_counter = 20;
+
+ // FORCE_READY = 0 : assert DRIVE READY on FDC (diagnostic override; USED BY BIOS!)
+ bool force_ready = ((data & 4) == 0) ? true : false;
+ m_fdc->set_force_ready(force_ready);
+ }
+
+ int enable_start = 0;
+ int disable_start = 2; // set defaults
+
+ if (m_unit == INVALID_DRIVE)
+ {
+ printf("\n**** INVALID DRIVE ****");
+ data = (data & (255 - 3)) | m_unit;
+
+ data = data & (255 - 8); // MOTOR 0 OFF
+ data = data & (255 - 16); // MOTOR 1 OFF
+ }
+ else
+ {
+ data = (data & (255 - 3)) | m_unit;
+
+ if (m_unit < 2)
+ {
+ data = data | 8; // MOTOR 0 (for A or B)
+ }
+ else
+ {
+ data = data | 16; // MOTOR 1 (for C or D)
+ enable_start = 2;
+ disable_start = 4;
+ }
+
+ // RX-50 has head A and head B (1 for each of the 2 disk slots in a RX-50).
+ // Assume the other one is switched off -
+ for (int f_num = 0; f_num < MAX_FLOPPIES; f_num++)
+ {
+ floppy_connector *con = machine().device<floppy_connector>(names[f_num]);
+ floppy_image_device *tmp_floppy = con->get_device();
+
+ tmp_floppy->mon_w(ASSERT_LINE);
+ if ((f_num >= enable_start) && (f_num < disable_start))
+ tmp_floppy->mon_w(CLEAR_LINE); // enable
+ }
+
+ }
+
+ m_z80_diskcontrol = data;
+}
+// --------- END OF Z80 --------------------
+
+READ8_MEMBER(rainbow_state::read_video_ram_r)
+{
+ return m_p_ram[offset];
+}
+
+
+// **************************************************
+// VIDEO INTERRUPT HANDLING
+// **************************************************
+
+INTERRUPT_GEN_MEMBER(rainbow_state::vblank_irq)
+{
+ raise_8088_irq(IRQ_8088_VBL);
+ m_crtc->notify_vblank(true);
+}
+
+
+WRITE_LINE_MEMBER(rainbow_state::clear_video_interrupt)
+{
+ lower_8088_irq(IRQ_8088_VBL);
+ m_crtc->notify_vblank(false);
+}
+
+// Reflects bits from 'diagnostic_w', except test jumpers
+READ8_MEMBER(rainbow_state::diagnostic_r) // 8088 (port 0A READ). Fig.4-29 + table 4-15
+{
+ return ((m_diagnostic & (0xf1)) | // MASK 0xf1 = 11110001
+ (m_inp1->read() |
+ m_inp2->read() |
+ m_inp3->read()
+ )
+ );
+}
+
+
+WRITE8_MEMBER(rainbow_state::diagnostic_w) // 8088 (port 0A WRITTEN). Fig.4-28 + table 4-15
+{
+ // printf("%02x to diag port (PC=%x)\n", data, space.device().safe_pc());
+ m_SCREEN_BLANK = (data & 2) ? false : true;
+
+ // ZRESET (high at powerup)
+ if (!(data & 1))
+ {
+ m_z80->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
+ m_z80_halted = true;
+ }
+
+ if ((data & 1) && (m_z80_halted))
+ {
+ m_zflip = true;
+ m_z80_halted = false;
+
+ m_z80->set_input_line(INPUT_LINE_HALT, CLEAR_LINE);
+ m_z80->reset();
+ }
+
+ if ((m_diagnostic & 1) && !(data & 1))
+ {
+ printf("\nFDC ** RESET **");
+ m_fdc->reset();
+ }
+
+ if (!(m_diagnostic & 1) && (data & 1))
+ {
+ printf("\nFDC RESTORE");
+ m_fdc->soft_reset(); // See formatter description p.197 or 5-13
+ }
+
+ // MISSING BITS (* not vital for normal operation, see diag.disk) -
+ // BIT 2: GRF VID SEL (0 = system module; 1 = graphics option)
+ // BIT 3: PARITY TEST (1 = enables parity test on memory option board)
+ // * BIT 4: DIAG LOOPBACK (0 at power-up; 1 directs RX50 and DC12 output to printer port)
+ // * BIT 5: PORT LOOPBACK (1 enables loopback for COMM, PRINTER, KEYBOARD ports)
+
+ /* 2.1.7.3 DIAGNOSTIC LOOPBACK Maintenance Bit - The DIAGNOSTIC LOOPBACK bit is a
+ maintenance bit that is cleared on power - up.This bit, when set to 1,
+ allows the floppy data separator and the serial video output to be tested
+ through the use of the printer port. The following table shows how signals are routed.
+
+ DIAGNOSTIC LOOPBACK = 0 DIAGNOSTIC LOOPBACK = 1 SIGNAL INPUT
+ SIGNAL SOURCE SIGNAL SOURCE TO
+ FROM FROM
+ PRT RDATA(J2) VIDEO OUT PRT RXD(7201)
+ PRT RXTXC 500 KHZ PRT RXTXC(7201)
+ MASTER CLK 250 KHZ VIDEO CLK(DCO11)
+ FLOPPY RAW DATA PRT TXD(7201) FLOPPY DATA SEPARATOR
+
+ During Diagnostic Loopback, the - TEST input of the 8088 is connected to the
+ interrupt output of the MPSC.Thus, using the 8088's WAIT instruction in a
+ polled I / O loop, the diagnostic firmware will be able to keep up with the
+ 500 Kb data rate on the MPSC.
+ */
+ if (data & 16)
+ {
+ printf("\nWARNING: UNEMULATED DIAG LOOPBACK (directs RX50 and DC12 output to printer port) ****");
+ }
+
+ if (data & 32)
+ {
+ /* BIT 5: PORT LOOPBACK (1 enables loopback for COMM, PRINTER, KEYBOARD ports)
+ 2.1.7.2. of AA-V523A-TV (PDF Mar83) says how the signals are routed:
+ port_loopback_0 | port_loopback_1 SIGNAL INPUT TO
+ COMM RCV DATA.......COMM TXD..........COMM_RXD
+ PRT RCV DATA.......KBD TXD...........PRT RDATA
+ KBD RCV DATA.......PRT TXD...........KBD RXD
+ */
+ printf("\nWARNING: UNEMULATED PORT LOOPBACK (COMM, PRINTER, KEYBOARD ports) ****");
+ }
+
+ // BIT 6: Transfer data from volatile memory to NVM (PROGRAM: 1 => 0 BIT 6)
+ if (!(data & 0x40) && (m_diagnostic & 0x40))
+ memcpy(m_p_nvram, m_p_vol_ram, 256);
+
+ // BIT 7: Transfer data from NVM to volatile memory (RECALL 0 => 1 BIT 7)
+ if ((data & 0x80) && !(m_diagnostic & 0x80))
+ memcpy(m_p_vol_ram, m_p_nvram, 256);
+
+ m_diagnostic = data;
+}
+
+
+// KEYBOARD
+void rainbow_state::update_kbd_irq()
+{
+#ifndef KEYBOARD_WORKAROUND
+ if ((m_kbd_rx_ready) || (m_kbd_tx_ready))
+ {
+ raise_8088_irq(IRQ_8088_KBD);
+ }
+ else
+ {
+ lower_8088_irq(IRQ_8088_KBD);
+ }
+#endif
+}
+
+WRITE_LINE_MEMBER(rainbow_state::kbd_tx)
+{
+ // printf("%02x to keyboard\n", state);
+ m_lk201->rx_w(state);
+}
+
+WRITE_LINE_MEMBER(rainbow_state::kbd_rxready_w)
+{
+ // printf("rxready %d\n", state);
+ m_kbd_rx_ready = (state == 1) ? true : false;
+ update_kbd_irq();
+}
+
+WRITE_LINE_MEMBER(rainbow_state::kbd_txready_w)
+{
+ // printf("8251 txready %d\n", state);
+ m_kbd_tx_ready = (state == 1) ? true : false;
+ update_kbd_irq();
+}
+
+WRITE_LINE_MEMBER(rainbow_state::write_keyboard_clock)
+{
+ m_kbd8251->write_txc(state);
+ m_kbd8251->write_rxc(state);
+}
+
+TIMER_DEVICE_CALLBACK_MEMBER(rainbow_state::motor_tick)
+{
+ m_hdc_index_latch = true; // HDC drive index signal (not working ?)
+
+ if (MOTOR_DISABLE_counter)
+ MOTOR_DISABLE_counter--;
+
+ if (MOTOR_DISABLE_counter < 2)
+ {
+ output_set_value("driveled0", 0); // DRIVE 0 (A)
+ output_set_value("driveled1", 0); // DRIVE 1 (B)
+ output_set_value("driveled2", 0); // DRIVE 2 (C)
+ output_set_value("driveled3", 0); // DRIVE 3 (D)
+
+ output_set_value("led1", 1); // 1 = OFF (One of the CPU LEDs as DRIVE LED)
+ }
+
+ if (m_crtc->MHFU(1)) // MHFU * flag * enabled ?
+ {
+ int data = m_crtc->MHFU(-1); // increment MHFU, return new value
+
+ // MHFU gets active if the 8088 has not acknowledged a video processor interrupt within approx. 108 milliseconds.
+ // Timer reset by 2 sources : the VERT INT L from the DC012, or the MHFU ENB L from the enable flip - flop.
+
+ if ( data > 480 ) // longer than needed. Better than an instant "INTERRUPT 16"
+ {
+ for (int i = 0; i < 9; i++)
+ printf("\nWATCHDOG TRIPPED *** NOW RESET MACHINE ***\n");
+
+ m_crtc->MHFU(-100); // -100 : Enable MHFU flag
+
+ if (m_inp12->read() == 0x01) // DIP for watchdog set?
+ {
+ COLD_BOOT = 0; // massive foulup (no recovery)
+ device().machine().schedule_soft_reset(); // FFFF:0
+ }
+ }
+ }
+
+ if (m_beep_counter > 0)
+ m_beep_counter--;
+}
+
+// on 100-B, DTR from the keyboard 8051 controls bit 7 of IRQ vectors
+WRITE_LINE_MEMBER(rainbow_state::irq_hi_w)
+{
+ m_irq_high = (state == ASSERT_LINE) ? 0x80 : 0;
+ //logerror("%i = m_irq_high\n", m_irq_high);
+}
+
+/* F4 Character Displayer */
+static const gfx_layout rainbow_charlayout =
+{
+ 8, 10, /* 8 x 16 characters */
+ 256, /* 256 characters */
+ 1, /* 1 bits per pixel */
+ { 0 }, /* no bitplanes */
+ /* x offsets */
+ { 0, 1, 2, 3, 4, 5, 6, 7 },
+ /* y offsets */
+ { 15 * 8, 0 * 8, 1 * 8, 2 * 8, 3 * 8, 4 * 8, 5 * 8, 6 * 8, 7 * 8, 8 * 8 },
+ 8 * 16 /* every char takes 16 bytes */
+};
+
+static GFXDECODE_START(rainbow)
+GFXDECODE_ENTRY("chargen", 0x0000, rainbow_charlayout, 0, 1)
+GFXDECODE_END
+
+
+static MACHINE_CONFIG_START(rainbow, rainbow_state)
+MCFG_DEFAULT_LAYOUT(layout_rainbow)
+
+/* basic machine hardware */
+MCFG_CPU_ADD("maincpu", I8088, XTAL_24_0734MHz / 5)
+MCFG_CPU_PROGRAM_MAP(rainbow8088_map)
+MCFG_CPU_IO_MAP(rainbow8088_io)
+MCFG_CPU_VBLANK_INT_DRIVER("screen", rainbow_state, vblank_irq)
+
+MCFG_CPU_ADD("subcpu", Z80, XTAL_24_0734MHz / 6)
+MCFG_CPU_PROGRAM_MAP(rainbowz80_mem)
+MCFG_CPU_IO_MAP(rainbowz80_io)
+
+/* video hardware */
+MCFG_SCREEN_ADD("screen", RASTER)
+MCFG_SCREEN_REFRESH_RATE(60)
+MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
+MCFG_SCREEN_SIZE(132 * 10, 49 * 10)
+MCFG_SCREEN_VISIBLE_AREA(0, 80 * 10 - 1, 0, 48 * 10 - 1)
+MCFG_SCREEN_UPDATE_DRIVER(rainbow_state, screen_update_rainbow)
+MCFG_SCREEN_PALETTE("vt100_video:palette")
+MCFG_GFXDECODE_ADD("gfxdecode", "vt100_video:palette", rainbow)
+
+MCFG_DEVICE_ADD("vt100_video", RAINBOW_VIDEO, 0)
+MCFG_VT_SET_SCREEN("screen")
+MCFG_VT_CHARGEN("chargen")
+MCFG_VT_VIDEO_RAM_CALLBACK(READ8(rainbow_state, read_video_ram_r))
+MCFG_VT_VIDEO_CLEAR_VIDEO_INTERRUPT_CALLBACK(WRITELINE(rainbow_state, clear_video_interrupt))
+
+MCFG_FD1793_ADD(FD1793_TAG, XTAL_24_0734MHz / 24) // no separate 1 Mhz quartz
+//MCFG_WD_FDC_FORCE_READY
+MCFG_FLOPPY_DRIVE_ADD(FD1793_TAG ":0", rainbow_floppies, "525qd0", rainbow_state::floppy_formats)
+MCFG_FLOPPY_DRIVE_ADD(FD1793_TAG ":1", rainbow_floppies, "525qd1", rainbow_state::floppy_formats)
+MCFG_FLOPPY_DRIVE_ADD(FD1793_TAG ":2", rainbow_floppies, "525qd2", rainbow_state::floppy_formats)
+MCFG_FLOPPY_DRIVE_ADD(FD1793_TAG ":3", rainbow_floppies, "525qd3", rainbow_state::floppy_formats)
+MCFG_SOFTWARE_LIST_ADD("flop_list", "rainbow")
+
+
+/// ********************************* HARD DISK CONTROLLER *****************************************
+MCFG_DEVICE_ADD("hdc", WD2010, 5000000) // 10 Mhz quartz on controller (divided by 2 for WCLK)
+MCFG_WD2010_OUT_INTRQ_CB(WRITELINE(rainbow_state, bundle_irq)) // FIRST IRQ SOURCE (OR'ed with DRQ)
+MCFG_WD2010_OUT_BDRQ_CB(WRITELINE(rainbow_state, hdc_bdrq)) // BUFFER DATA REQUEST
+
+// SIGNALS -FROM- WD CONTROLLER:
+MCFG_WD2010_OUT_BCS_CB(WRITELINE(rainbow_state, hdc_read_sector)) // Problem: OUT_BCS_CB = WRITE8 ... (!)
+MCFG_WD2010_OUT_BCR_CB(WRITELINE(rainbow_state, hdc_bcr)) // BUFFER COUNTER RESET (pulses)
+
+MCFG_WD2010_OUT_WG_CB(WRITELINE(rainbow_state, hdc_write_sector)) // WRITE GATE
+MCFG_WD2010_OUT_STEP_CB(WRITELINE(rainbow_state, hdc_step)) // STEP PULSE
+MCFG_WD2010_OUT_DIRIN_CB(WRITELINE(rainbow_state, hdc_direction))
+
+MCFG_WD2010_IN_WF_CB(READLINE(rainbow_state, hdc_write_fault)) // WRITE FAULT (set to GND if not serviced)
+
+MCFG_WD2010_IN_DRDY_CB(READLINE(rainbow_state, hdc_drive_ready)) // DRIVE_READY (set to VCC if not serviced)
+MCFG_WD2010_IN_SC_CB(VCC) // SEEK COMPLETE (set to VCC if not serviced)
+
+// CURRENTLY NOT EVALUATED WITHIN 'WD2010':
+MCFG_WD2010_IN_TK000_CB(VCC)
+MCFG_WD2010_IN_INDEX_CB(VCC)
+
+MCFG_HARDDISK_ADD("harddisk1")
+/// ******************************** / HARD DISK CONTROLLER ****************************************
+
+MCFG_DS1315_ADD("rtc") // DS1315 (ClikClok for DEC-100 B) * OPTIONAL *
+
+MCFG_DEVICE_ADD("kbdser", I8251, 0)
+MCFG_I8251_TXD_HANDLER(WRITELINE(rainbow_state, kbd_tx))
+MCFG_I8251_DTR_HANDLER(WRITELINE(rainbow_state, irq_hi_w))
+MCFG_I8251_RXRDY_HANDLER(WRITELINE(rainbow_state, kbd_rxready_w))
+MCFG_I8251_TXRDY_HANDLER(WRITELINE(rainbow_state, kbd_txready_w))
+
+MCFG_DEVICE_ADD(LK201_TAG, LK201, 0)
+MCFG_LK201_TX_HANDLER(DEVWRITELINE("kbdser", i8251_device, write_rxd))
+
+MCFG_DEVICE_ADD("keyboard_clock", CLOCK, 4800 * 16) // 8251 is set to /16 on the clock input
+MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(rainbow_state, write_keyboard_clock))
+
+MCFG_TIMER_DRIVER_ADD_PERIODIC("motor", rainbow_state, motor_tick, attotime::from_hz(60))
+
+MCFG_NVRAM_ADD_0FILL("nvram")
+MACHINE_CONFIG_END
+
+//----------------------------------------------------------------------------------------
+// 'Rainbow 100-A' (system module 70-19974-00, PSU H7842-A)
+// - first generation hardware (introduced May '82) with ROM 04.03.11
+// - inability to boot from hard disc (mind the inadequate PSU)
+//----------------------------------------------------------------------------------------
+// AVAILABLE RAM: 64 K on board (versus 128 K on model 'B').
+
+// Two compatible memory expansions were sold by DEC:
+// (PCIXX-AA) : 64 K (usable on either Rainbow 100-A or 100-B) *
+// (PCIXX-AB) : 192 K ( " ) *
+// Totals to 256 K on a 100-A, while the RAM limit appears to be 832 K.
+
+// * DEC changed the way signals are handled on J6 (memory connector) later:
+// "Whether a PC100-A or PC100-B memory module is installed on the PC100-B system module
+// affects the functions the signals on 5 pins (29, 30, 32, 43, and 47) of the J6 connector
+// will perform." (from 'EK-RB100_TM_001 Addendum for PC100-A_PC100-B Dec.84' page 120).
+//----------------------------------------------------------------------------------------
+// KNOWN DIFFERENCES TO 100-B:
+// - cannot control bit 7 of IRQ vector (prevents DOS > 2.01 from booting on unmodified hardware)
+// - 4 color palette with graphics option (instead of 16 colors on later models)
+// - smaller ROMs (3 x 2764) with fewer routines (no documented way to beep...)
+// - socketed NVRAM chip: X2212D 8238AES
+ROM_START(rainbow100a)
+ROM_REGION(0x100000, "maincpu", 0)
+
+ROM_LOAD("23-176e4-00.bin", 0xFA000, 0x2000, NO_DUMP) // ROM (FA000-FBFFF) (E89) 8 K
+ROM_LOAD("23-177e4-00.bin", 0xFC000, 0x2000, NO_DUMP) // ROM (FC000-FDFFF) (E90) 8 K
+
+// SOCKETED LANGUAGE ROM (E91) with 1 single localization per ROM -
+ROM_LOAD("23-092e4-00.bin", 0xFE000, 0x2000, NO_DUMP) // ROM (FE000-FFFFF) (E91) 8 K - English (?)
+// See also MP-01491-00 - PC100A FIELD MAINTENANCE SET. Appendix A of EK-RB100 Rainbow
+// Technical Manual Addendum f.100A and 100B (Dec.84) lists 15 localizations / part numbers
+
+ROM_REGION(0x1000, "chargen", 0) // [E98] 2732 (4 K) EPROM
+ROM_LOAD("23-020e3-00.bin", 0x0000, 0x1000, CRC(1685e452) SHA1(bc299ff1cb74afcededf1a7beb9001188fdcf02f))
+ROM_END
+
+//----------------------------------------------------------------------------------------
+// ROM definition for 100-B (system module 70-19974-02, PSU H7842-D)
+// Built until ~ May 1986 (from MP-01491-00)
+// - 32 K ROM (version 5.03)
+// - 128 K base and 896 K max. mem.
+ROM_START(rainbow)
+ROM_REGION(0x100000, "maincpu", 0)
+
+// Note that the 'Field Maintenance Print Set 1984' also lists alternate revision 'A1' with
+// 23-063e3-00 (for chargen) and '23-074e5-00' / '23-073e5-00' for E5-01 / E5-02.
+
+// Part numbers 22E5, 20E5 and 37E3 verified to match revision "B" (FCC ID : A0994Q - PC100 - B).
+
+// BOOT ROM
+ROM_LOAD("23-022e5-00.bin", 0xf0000, 0x4000, CRC(9d1332b4) SHA1(736306d2a36bd44f95a39b36ebbab211cc8fea6e))
+ROM_RELOAD(0xf4000, 0x4000)
+
+// LANGUAGE ROM
+ROM_LOAD("23-020e5-00.bin", 0xf8000, 0x4000, CRC(8638712f) SHA1(8269b0d95dc6efbe67d500dac3999df4838625d8)) // German, French, English
+//ROM_LOAD( "23-015e5-00.bin", 0xf8000, 0x4000, NO_DUMP) // Dutch, French, English
+//ROM_LOAD( "23-016e5-00.bin", 0xf8000, 0x4000, NO_DUMP) // Finish, Swedish, English
+//ROM_LOAD( "23-017e5-00.bin", 0xf8000, 0x4000, NO_DUMP) // Danish, Norwegian, English
+//ROM_LOAD( "23-018e5-00.bin", 0xf8000, 0x4000, NO_DUMP) // Spanish, Italian, English
+ROM_RELOAD(0xfc000, 0x4000)
+
+// CHARACTER GENERATOR (E3-03)
+ROM_REGION(0x1000, "chargen", 0)
+ROM_LOAD("23-037e3.bin", 0x0000, 0x1000, CRC(1685e452) SHA1(bc299ff1cb74afcededf1a7beb9001188fdcf02f))
+ROM_END
+
+//----------------------------------------------------------------------------------------
+// 'Rainbow 190 B' (announced March 1985) is identical to 100-B, with alternate ROM v5.05.
+// According to an article in Wall Street Journal it came with a 10 MB HD and 640 K RAM.
+
+// All programs not dependent on specific ROM addresses should work. A first glance:
+// - jump tables (F4000-F40083 and FC000-FC004D) were not extended
+// - absolute addresses of some internal routines have changed (affects BOOT 2.x / 3.x dual boot)
+
+// A Readme from January 1985 mentions 'recent ROM changes for MASS 11' (a VAX word processor).
+// It is *likely* that the sole differences between 5.05 and 5.03 affect terminal emulation.
+
+// FIXME: ROM names are * made up *.
+// Someone who knows the DEC naming conventions should correct them -
+ROM_START(rainbow190)
+ROM_REGION(0x100000, "maincpu", 0)
+ROM_LOAD("dec190rom0.bin", 0xf0000, 0x4000, CRC(fac191d2) SHA1(4aff5b1e031d3b5eafc568b23e68235270bb34de))
+ROM_RELOAD(0xf4000, 0x4000)
+ROM_LOAD("dec190rom1.bin", 0xf8000, 0x4000, CRC(5ce59632) SHA1(d29793f7014c57a4e7cb77bbf6e84f9113635ed2))
+
+ROM_RELOAD(0xfc000, 0x4000)
+ROM_REGION(0x1000, "chargen", 0)
+ROM_LOAD("chargen.bin", 0x0000, 0x1000, CRC(1685e452) SHA1(bc299ff1cb74afcededf1a7beb9001188fdcf02f))
+ROM_END
+//----------------------------------------------------------------------------------------
+
+/* Driver */
-GAME( 1987, rbisland, 0, rbisland, rbisland, rbisland_state, rbisland, ROT0, "Taito Corporation", "Rainbow Islands (new version)", GAME_SUPPORTS_SAVE )
-GAME( 1987, rbislando, rbisland, rbisland, rbisland, rbisland_state, rbisland, ROT0, "Taito Corporation", "Rainbow Islands (old version)", GAME_SUPPORTS_SAVE )
-GAME( 1988, rbislande, rbisland, rbisland, rbisland, rbisland_state, rbislande, ROT0, "Taito Corporation", "Rainbow Islands (Extra)", GAME_SUPPORTS_SAVE )
-GAME( 1989, jumping, rbisland, jumping, jumping, rbisland_state, jumping, ROT0, "bootleg", "Jumping (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1988, jumpinga, rbisland, jumping, jumping, rbisland_state, jumping, ROT0, "bootleg (Seyutu)", "Jumping (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1988, jumpingi, rbisland, jumpingi, jumping, rbisland_state, jumping, ROT0, "bootleg (Seyutu)", "Jumping (set 3, Imnoe PCB)", GAME_SUPPORTS_SAVE )
+/* 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_NOT_WORKING | 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)
diff --git a/src/mame/drivers/rallyx.c b/src/mame/drivers/rallyx.c
index d3b7c8e2ac4..c9556c7e0bf 100644
--- a/src/mame/drivers/rallyx.c
+++ b/src/mame/drivers/rallyx.c
@@ -1398,20 +1398,20 @@ ROM_END
*
*************************************/
-GAME( 1980, rallyx, 0, rallyx, rallyx, driver_device, 0, ROT0, "Namco", "Rally X (32k Ver.?)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, rallyxa, rallyx, rallyx, rallyx, driver_device, 0, ROT0, "Namco", "Rally X", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, rallyxm, rallyx, rallyx, rallyx, driver_device, 0, ROT0, "Namco (Midway license)", "Rally X (Midway)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, rallyxmr, rallyx, rallyx, rallyx, driver_device, 0, ROT0, "bootleg (Model Racing)", "Rally X (Model Racing bootleg)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1981, nrallyx, 0, rallyx, nrallyx, driver_device, 0, ROT0, "Namco", "New Rally X", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1981, nrallyxb, nrallyx, rallyx, nrallyx, driver_device, 0, ROT0, "Namco", "New Rally X (bootleg?)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1981, jungler, 0, jungler, jungler, driver_device, 0, ROT90, "Konami", "Jungler", GAME_SUPPORTS_SAVE )
-GAME( 1981, junglers, jungler, jungler, jungler, driver_device, 0, ROT90, "Konami (Stern Electronics license)", "Jungler (Stern Electronics)", GAME_SUPPORTS_SAVE )
-GAME( 1982, jackler, jungler, jungler, jungler, driver_device, 0, ROT90, "bootleg", "Jackler (Jungler bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1982, savanna, jungler, jungler, jungler, driver_device, 0, ROT90, "bootleg (Olympia)", "Savanna (Jungler bootleg)", GAME_SUPPORTS_SAVE ) // or licensed from Konami?
-GAME( 1982, tactcian, 0, tactcian, tactcian, driver_device, 0, ROT90, "Konami (Sega license)", "Tactician (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1981, tactcian2,tactcian, tactcian, tactcian, driver_device, 0, ROT90, "Konami (Sega license)", "Tactician (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1982, locomotn, 0, locomotn, locomotn, driver_device, 0, ROT90, "Konami (Centuri license)", "Loco-Motion", GAME_SUPPORTS_SAVE )
-GAME( 1982, gutangtn, locomotn, locomotn, locomotn, driver_device, 0, ROT90, "Konami (Sega license)", "Guttang Gottong", GAME_SUPPORTS_SAVE )
-GAME( 1982, cottong, locomotn, locomotn, locomotn, driver_device, 0, ROT90, "bootleg", "Cotocoto Cottong", GAME_SUPPORTS_SAVE )
-GAME( 1982, locoboot, locomotn, locomotn, locomotn, driver_device, 0, ROT90, "bootleg", "Loco-Motion (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1983, commsega, 0, commsega, commsega, driver_device, 0, ROT90, "Sega", "Commando (Sega)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/rambo.c b/src/mame/drivers/rambo.c
new file mode 100644
index 00000000000..a1fcf25b781
--- /dev/null
+++ b/src/mame/drivers/rambo.c
@@ -0,0 +1,227 @@
+// license:GPL-2.0+
+// copyright-holders:Felipe Sanches
+/*
+ RAMBo (RepRap Arduino-compatible Mother Board) by UltiMachine
+ for controlling desktop 3d printers
+ http://reprap.org/wiki/Rambo
+
+ driver by Felipe Correa da Silva Sanches <fsanches@metamaquina.com.br>
+
+ This driver is based on the schematics of the version 1.1b:
+ http://reprap.org/mediawiki/images/7/75/Rambo1-1-schematic.png
+
+ 3d printers currently supported by this driver:
+ * Metam??quina 2
+
+ 3d printers known to use this board:
+ * TODO: list them all here
+*/
+
+#include "emu.h"
+#include "cpu/avr8/avr8.h"
+
+#define MASTER_CLOCK 16000000
+
+#define LOG_PORTS 0
+
+/****************************************************\
+* I/O devices *
+\****************************************************/
+
+class rambo_state : public driver_device
+{
+public:
+ rambo_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu")
+ {
+ }
+
+ UINT8 m_port_a;
+ UINT8 m_port_b;
+ UINT8 m_port_c;
+ UINT8 m_port_d;
+ UINT8 m_port_e;
+ UINT8 m_port_f;
+ UINT8 m_port_g;
+ UINT8 m_port_h;
+ UINT8 m_port_j;
+ UINT8 m_port_k;
+ UINT8 m_port_l;
+ required_device<avr8_device> m_maincpu;
+
+ DECLARE_READ8_MEMBER(port_r);
+ DECLARE_WRITE8_MEMBER(port_w);
+
+ DECLARE_DRIVER_INIT(rambo);
+ virtual void machine_start();
+ virtual void machine_reset();
+};
+
+void rambo_state::machine_start()
+{
+}
+
+READ8_MEMBER(rambo_state::port_r)
+{
+ switch( offset )
+ {
+ case AVR8_IO_PORTA:
+ {
+#if LOG_PORTS
+ printf("[%08X] Port A READ \n", m_maincpu->m_shifted_pc);
+#endif
+ return m_port_a;
+ }
+ default:
+ break;
+ }
+ return 0;
+}
+
+WRITE8_MEMBER(rambo_state::port_w)
+{
+ switch( offset )
+ {
+ case AVR8_IO_PORTA:
+ {
+ if (data == m_port_a) break;
+
+#if LOG_PORTS
+ UINT8 old_port_a = m_port_a;
+ UINT8 changed = data ^ old_port_a;
+#endif
+ m_port_a = data;
+ break;
+ }
+ default:
+ break;
+ }
+}
+
+/****************************************************\
+* Address maps *
+\****************************************************/
+
+static ADDRESS_MAP_START( rambo_prg_map, AS_PROGRAM, 8, rambo_state )
+ AM_RANGE(0x0000, 0x1FFFF) AM_ROM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( rambo_data_map, AS_DATA, 8, rambo_state )
+ AM_RANGE(0x0200, 0x21FF) AM_RAM /* ATMEGA2560 Internal SRAM */
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( rambo_io_map, AS_IO, 8, rambo_state )
+ AM_RANGE(AVR8_IO_PORTA, AVR8_IO_PORTL) AM_READWRITE( port_r, port_w )
+ADDRESS_MAP_END
+
+/****************************************************\
+* Machine definition *
+\****************************************************/
+
+DRIVER_INIT_MEMBER(rambo_state, rambo)
+{
+}
+
+void rambo_state::machine_reset()
+{
+ m_port_a = 0;
+ m_port_b = 0;
+ m_port_c = 0;
+ m_port_d = 0;
+ m_port_e = 0;
+ m_port_f = 0;
+ m_port_g = 0;
+ m_port_h = 0;
+ m_port_j = 0;
+ m_port_k = 0;
+ m_port_l = 0;
+}
+
+static MACHINE_CONFIG_START( rambo, rambo_state )
+
+ MCFG_CPU_ADD("maincpu", ATMEGA2560, MASTER_CLOCK)
+ MCFG_CPU_PROGRAM_MAP(rambo_prg_map)
+ MCFG_CPU_DATA_MAP(rambo_data_map)
+ MCFG_CPU_IO_MAP(rambo_io_map)
+
+ MCFG_CPU_AVR8_EEPROM("eeprom")
+ MCFG_CPU_AVR8_LFUSE(0xFF)
+ MCFG_CPU_AVR8_HFUSE(0xDA)
+ MCFG_CPU_AVR8_EFUSE(0xF4)
+ MCFG_CPU_AVR8_LOCK(0x0F)
+
+ /*TODO: Add an ATMEGA32U2 for USB-Serial communications */
+ /*TODO: Emulate the AD5206 digipot */
+ /*TODO: Emulate the A4982 stepper motor drivers and instantiate 5 of these here
+ for controlling the X, Y, Z, E1 (and optionally E2) motors */
+ /*TODO: Simulate the heating elements */
+ /*TODO: Implement the thermistor measurements */
+MACHINE_CONFIG_END
+
+ROM_START( metamaq2 )
+ ROM_REGION( 0x20000, "maincpu", 0 )
+ ROM_DEFAULT_BIOS("20131015")
+
+ ROM_SYSTEM_BIOS( 0, "20130619", "June 19th, 2013" )
+ /* SOURCE(https://github.com/Metamaquina/Repetier-Firmware/tree/MM2_2013_06_19) */
+ ROMX_LOAD("repetier-fw-metamaquina2-2013-06-19.bin", 0x0000, 0x1000e, CRC(4279b178) SHA1(e4d3c9d6421287c980639c2df32d07b754adc8fc), ROM_BIOS(1))
+
+ ROM_SYSTEM_BIOS( 1, "20130624", "June 24th, 2013" )
+ /* SOURCE(https://github.com/Metamaquina/Repetier-Firmware/tree/MM2_RC2_RAMBo_rev10e_2013_06_24) */
+ ROMX_LOAD("repetier-fw-metamaquina2-2013-06-24_mm2rc2_rambo_rev10e.bin", 0x0000, 0xcebc, CRC(82400a3c) SHA1(0781ce29406ce69b63edb93d776b9c081bed841e), ROM_BIOS(2))
+
+ ROM_SYSTEM_BIOS( 2, "20130625", "June 25th, 2013" )
+ /* SOURCE(https://github.com/Metamaquina/Repetier-Firmware/tree/MM2_2013_06_25) */
+ ROMX_LOAD("repetier-fw-metamaquina2-2013-06-25.bin", 0x0000, 0x10076, CRC(e7e4db38) SHA1(0c307bb0a0ee4e9d38253936e7030d0efb3c1845), ROM_BIOS(3))
+
+ ROM_SYSTEM_BIOS( 3, "20130709", "July 9th, 2013" )
+ /* SOURCE(https://github.com/Metamaquina/Repetier-Firmware/tree/MM2_2013_07_09) */
+ ROMX_LOAD("repetier-fw-metamaquina2-2013-07-09.bin", 0x0000, 0x10078, CRC(9a45509f) SHA1(3a2e6516b45cc0ea1aef039335b02208847aaebf), ROM_BIOS(4))
+
+ ROM_SYSTEM_BIOS( 4, "20130712", "July 12th, 2013" )
+ /* SOURCE(https://github.com/Metamaquina/Repetier-Firmware/tree/MM2_2013_07_12) */
+ ROMX_LOAD("repetier-fw-metamaquina2-2013-07-12.bin", 0x0000, 0x10184, CRC(9aeac87c) SHA1(c1441096553c214c12a34da87fa42cc3f0eaf74d), ROM_BIOS(5))
+
+ ROM_SYSTEM_BIOS( 5, "20130717", "July 17th, 2013" )
+ /* SOURCE(https://github.com/Metamaquina/Repetier-Firmware/tree/MM2_2013_07_17) */
+ ROMX_LOAD("repetier-fw-metamaquina2-2013-07-17.bin", 0x0000, 0x10180, CRC(7c053ed0) SHA1(7abeabcbfdb411b6e681e2d0c9398c40b142f76b), ROM_BIOS(6))
+
+ ROM_SYSTEM_BIOS( 6, "20130806", "August 6th, 2013" )
+ /* SOURCE(https://github.com/Metamaquina/Repetier-Firmware/tree/MM2_2013_08_06) */
+ ROMX_LOAD("repetier-fw-metamaquina2-2013-08-06.bin", 0x0000, 0x1017e, CRC(6aaf5a14) SHA1(93cebee8ab9eda9d81e70504b407268a198577f0), ROM_BIOS(7))
+
+ ROM_SYSTEM_BIOS( 7, "20130809", "August 9th, 2013" )
+ /* SOURCE(https://github.com/Metamaquina/Repetier-Firmware/tree/MM2_2013_08_09) */
+ ROMX_LOAD("repetier-fw-metamaquina2-2013-08-09.bin", 0x0000, 0x1018a, CRC(ee53a011) SHA1(666d09fe69220a172528fe8d1c358e3ddaaa743a), ROM_BIOS(8))
+
+ ROM_SYSTEM_BIOS( 8, "20130822", "August 22nd, 2013" )
+ /* SOURCE(https://github.com/Metamaquina/Repetier-Firmware/tree/MM2_2013_08_22) */
+ ROMX_LOAD("repetier-fw-metamaquina2-2013-08-22.bin", 0x0000, 0x1018a, CRC(70a5a3c9) SHA1(20e52ea7bf40e71020b815b9fb6385d880677927), ROM_BIOS(9))
+
+ ROM_SYSTEM_BIOS( 9, "20130913", "September 13th, 2013" )
+ /* source code for this one is unavailable as it was an unreleased internal development build */
+ ROMX_LOAD("repetier-fw-metamaquina2-2013-09-13-devel.bin", 0x0000, 0x101bc, CRC(5e7c7933) SHA1(5b9bfe919daf705ad7a9a2de3cf4c51e3338ec47), ROM_BIOS(10))
+
+ ROM_SYSTEM_BIOS( 10, "20130920", "September 20th, 2013" )
+ /* SOURCE(https://github.com/Metamaquina/Repetier-Firmware/tree/MM2_2013_09_20) */
+ ROMX_LOAD("repetier-fw-metamaquina2-2013-09-20.bin", 0x0000, 0x10384, CRC(48378e58) SHA1(513f0a0c65219875cc467420cc091e3489b58919), ROM_BIOS(11))
+
+ ROM_SYSTEM_BIOS( 11, "20131015", "October 15th, 2013" )
+ /* SOURCE(https://github.com/Metamaquina/Repetier-Firmware/tree/MM2_2013_10_15) */
+ ROMX_LOAD("repetier-fw-metamaquina2-2013-10-15.bin", 0x0000, 0x102c8, CRC(520134bd) SHA1(dfe2251aad06972f237eb4920ce14ccb32da5af0), ROM_BIOS(12))
+
+ /*Arduino MEGA bootloader */
+ /* This is marked as a BAD_DUMP because we're not sure this is the bootloader we're actually using.
+ This is inherited from the Replicator 1 driver.
+ A proper dump would be good.
+ Also, it is not clear whether there's any difference in the bootloader
+ between the ATMEGA1280 and the ATMEGA2560 MCUs */
+ ROM_LOAD( "atmegaboot_168_atmega1280.bin", 0x1f000, 0x0f16, BAD_DUMP CRC(c041f8db) SHA1(d995ebf360a264cccacec65f6dc0c2257a3a9224) )
+
+ /* on-die 4kbyte eeprom */
+ 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)
diff --git a/src/mame/drivers/rampart.c b/src/mame/drivers/rampart.c
index 39d055fe4e1..014a1c1177d 100644
--- a/src/mame/drivers/rampart.c
+++ b/src/mame/drivers/rampart.c
@@ -492,6 +492,6 @@ DRIVER_INIT_MEMBER(rampart_state,rampart)
*
*************************************/
-GAME( 1990, rampart, 0, rampart, rampart, rampart_state, rampart, ROT0, "Atari Games", "Rampart (Trackball)", GAME_SUPPORTS_SAVE )
-GAME( 1990, rampart2p,rampart, rampart, ramprt2p, rampart_state, rampart, ROT0, "Atari Games", "Rampart (Joystick)", GAME_SUPPORTS_SAVE )
-GAME( 1990, rampartj, rampart, rampart, rampartj, rampart_state, rampart, ROT0, "Atari Games", "Rampart (Japan, Joystick)", GAME_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.c b/src/mame/drivers/ramtek.c
index 89fc8a9ecab..4b874a420c7 100644
--- a/src/mame/drivers/ramtek.c
+++ b/src/mame/drivers/ramtek.c
@@ -135,68 +135,71 @@ MACHINE_CONFIG_END
***************************************************************************/
-ROM_START( bballrmt )
+ROM_START( vollyrmt )
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
ROM_REGION( 0x0020, "roms", ROMREGION_ERASE00 )
- ROM_LOAD( "ramtek.a1", 0x0000, 0x0020, CRC(3d505672) SHA1(aba7d80f97f2a1584ffee4e3bde2501b267e071b) )
- ROM_LOAD( "ramtek.a3", 0x0000, 0x0020, CRC(bb2c75a0) SHA1(809d48dfdc966c3aff7498b0c866707796dc646b) )
- ROM_LOAD( "ramtek.a4", 0x0000, 0x0020, CRC(3e449889) SHA1(ddba70b0e9721b60f4846397517b59e900be9dc6) )
- ROM_LOAD( "ramtek.f8", 0x0000, 0x0020, CRC(205bf9a1) SHA1(3014d226d8afebc6a52e5adb84f1846dd1c0b01c) )
- ROM_LOAD( "ramtek.h1", 0x0000, 0x0020, CRC(5d13db19) SHA1(384822aaf55423c7c8736d86c6376f3eab44a5a3) )
- ROM_LOAD( "ramtek.h2", 0x0000, 0x0020, CRC(24d8716c) SHA1(152dae056ced91723059f2debfd0e132383a80c6) )
- ROM_LOAD( "ramtek.h6", 0x0000, 0x0020, CRC(0ead8f9f) SHA1(d84a203221e3bd669ed301643450c6f86bf0f790) )
- ROM_LOAD( "ramtek.h7", 0x0000, 0x0020, CRC(cd19c9ff) SHA1(d9867db0b1b1023d9fb6440b9d20f8417e1da6a7) )
- ROM_LOAD( "ramtek.j9", 0x0000, 0x0020, CRC(4b86eb32) SHA1(07823d59d658911ba4b96ceb87e1f8dc7b27180d) )
- ROM_LOAD( "ramtek.j10", 0x0000, 0x0020, CRC(9e825d0c) SHA1(20c18d152d0b9135cd1fefd62b8bf58d03023529) )
+ ROM_LOAD( "ramtek2.e0", 0x0000, 0x0020, CRC(205bf9a1) SHA1(3014d226d8afebc6a52e5adb84f1846dd1c0b01c) )
ROM_END
-
-// The board number for Clean Sweep is 501082, and the letter to the right would be the revision letter (A, B, C, D).
-// Ramtek had revisions A, B, C, D, noted with a sticker that shows the letter for each specific revision.
-// Revisions A,B,C have been dumped and rom content is the same (only diff is the location of some chips on the rev B pcb)
-ROM_START( cleanswp )
+ROM_START( hockyrmt )
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
ROM_REGION( 0x0020, "roms", ROMREGION_ERASE00 )
- ROM_LOAD( "501075.c6", 0x0000, 0x0020, CRC(be02b5f5) SHA1(f1c616a73c6c2915ea3d0252543b0806704ab2e9) ) // shape of paddle
- ROM_LOAD( "501076.d7", 0x0000, 0x0020, CRC(be40b153) SHA1(07fb64ea8caee601e3e3bd6c69beea619dd0489d) ) // ball control memory
- ROM_LOAD( "501074.k3", 0x0000, 0x0020, CRC(515a34ba) SHA1(471ca9d99851591ff11a87d18b88871edd7fd268) ) // number character generation
+ ROM_LOAD( "ramtek5.g9", 0x0000, 0x0020, CRC(205bf9a1) SHA1(3014d226d8afebc6a52e5adb84f1846dd1c0b01c) )
ROM_END
-// Knockout - believed to be Knockout - XTAL is 10.733 MHz
-/* contains 4 proms (soldered in) labelled :
-5H - 55030604
-9C - 500399
-4B - 550306-02
-3B - 550306-03
-2B - 550306-01 */
-
-ROM_START( ramtek3 ) // maybe Hockey?
+ROM_START( soccrrmt ) // Soccer, missing a ROM
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
ROM_REGION( 0x0020, "roms", ROMREGION_ERASE00 )
ROM_LOAD( "ramtek3.g8", 0x0000, 0x0020, CRC(f14416f8) SHA1(413f051c73f05c3c5c2ec1dd8620e03c43835e10) )
+ ROM_LOAD( "ramtek3.b3", 0x0000, 0x0020, NO_DUMP)
ROM_END
-
-ROM_START( vollyrmt )
+ROM_START( wipeormt )
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
ROM_REGION( 0x0020, "roms", ROMREGION_ERASE00 )
- ROM_LOAD( "ramtek2.e0", 0x0000, 0x0020, CRC(205bf9a1) SHA1(3014d226d8afebc6a52e5adb84f1846dd1c0b01c) )
- // an alt dump exists for this rom labeled as ramtek5.g9 ... was it used on two different PCBs?
+ ROM_LOAD( "ramtek6.a4", 0x0000, 0x0020, CRC(205bf9a1) SHA1(3014d226d8afebc6a52e5adb84f1846dd1c0b01c) )
+ ROM_LOAD( "ramtek6.g7", 0x0000, 0x0020, CRC(215437e1) SHA1(635f98d8a890b3ddb72a2f764ef007b5f40fcd7f) )
ROM_END
+// The board number for Clean Sweep is 501082, and the letter to the right would be the revision letter (A, B, C, D).
+// Ramtek had revisions A, B, C, D, noted with a sticker that shows the letter for each specific revision.
+// Revisions A,B,C have been dumped and rom content is the same (only diff is the location of some chips on the rev B pcb)
+ROM_START( cleanswp )
+ ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
-ROM_START( wipeormt )
+ ROM_REGION( 0x0020, "roms", ROMREGION_ERASE00 )
+ ROM_LOAD( "501075.c6", 0x0000, 0x0020, CRC(be02b5f5) SHA1(f1c616a73c6c2915ea3d0252543b0806704ab2e9) ) // shape of paddle
+ ROM_LOAD( "501076.d7", 0x0000, 0x0020, CRC(be40b153) SHA1(07fb64ea8caee601e3e3bd6c69beea619dd0489d) ) // ball control memory
+ ROM_LOAD( "501074.k3", 0x0000, 0x0020, CRC(515a34ba) SHA1(471ca9d99851591ff11a87d18b88871edd7fd268) ) // number character generation
+ROM_END
+
+ROM_START( bballrmt )
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 )
ROM_REGION( 0x0020, "roms", ROMREGION_ERASE00 )
- ROM_LOAD( "ramtek6.a4", 0x0000, 0x0020, CRC(205bf9a1) SHA1(3014d226d8afebc6a52e5adb84f1846dd1c0b01c) )
- ROM_LOAD( "ramtek6.g7", 0x0000, 0x0020, CRC(215437e1) SHA1(635f98d8a890b3ddb72a2f764ef007b5f40fcd7f) )
+ ROM_LOAD( "ramtek.a1", 0x0000, 0x0020, CRC(3d505672) SHA1(aba7d80f97f2a1584ffee4e3bde2501b267e071b) )
+ ROM_LOAD( "ramtek.a3", 0x0000, 0x0020, CRC(bb2c75a0) SHA1(809d48dfdc966c3aff7498b0c866707796dc646b) )
+ ROM_LOAD( "ramtek.a4", 0x0000, 0x0020, CRC(3e449889) SHA1(ddba70b0e9721b60f4846397517b59e900be9dc6) )
+ ROM_LOAD( "ramtek.f8", 0x0000, 0x0020, CRC(205bf9a1) SHA1(3014d226d8afebc6a52e5adb84f1846dd1c0b01c) )
+ ROM_LOAD( "ramtek.h1", 0x0000, 0x0020, CRC(5d13db19) SHA1(384822aaf55423c7c8736d86c6376f3eab44a5a3) )
+ ROM_LOAD( "ramtek.h2", 0x0000, 0x0020, CRC(24d8716c) SHA1(152dae056ced91723059f2debfd0e132383a80c6) )
+ ROM_LOAD( "ramtek.h6", 0x0000, 0x0020, CRC(0ead8f9f) SHA1(d84a203221e3bd669ed301643450c6f86bf0f790) )
+ ROM_LOAD( "ramtek.h7", 0x0000, 0x0020, CRC(cd19c9ff) SHA1(d9867db0b1b1023d9fb6440b9d20f8417e1da6a7) )
+ ROM_LOAD( "ramtek.j9", 0x0000, 0x0020, CRC(4b86eb32) SHA1(07823d59d658911ba4b96ceb87e1f8dc7b27180d) )
+ ROM_LOAD( "ramtek.j10", 0x0000, 0x0020, CRC(9e825d0c) SHA1(20c18d152d0b9135cd1fefd62b8bf58d03023529) )
ROM_END
+// Knockout - believed to be Knockout - XTAL is 10.733 MHz
+/* contains 4 proms (soldered in) labelled :
+5H - 55030604
+9C - 500399
+4B - 550306-02
+3B - 550306-03
+2B - 550306-01 */
/***************************************************************************
@@ -239,12 +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]", GAME_IS_SKELETON )
-GAME( 1974, wipeormt, 0, ramtek, 0, driver_device, 0, ROT0, "Ramtek", "Wipeout (Ramtek) [TTL]", GAME_IS_SKELETON )
-GAME( 1974, bballrmt, 0, ramtek, 0, driver_device, 0, ROT0, "Ramtek", "Baseball (Ramtek) [TTL]", GAME_IS_SKELETON )
-GAME( 1974, cleanswp, 0, ramtek, 0, driver_device, 0, ROT0, "Ramtek", "Clean Sweep [TTL]", GAME_IS_SKELETON )
-GAME( 1975, trivia, 0, ramtek, 0, driver_device, 0, ROT0, "Ramtek", "Trivia (Rev B) [TTL]", GAME_IS_SKELETON )
-
-GAME( 197?, ramtek3, 0, ramtek, 0, driver_device, 0, ROT0, "Ramtek", "unknown Ramtek Game (Maybe Hockey?) [TTL]", GAME_IS_SKELETON )
+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 )
diff --git a/src/mame/drivers/rastan.c b/src/mame/drivers/rastan.c
index e7924ca8269..0c7e2273550 100644
--- a/src/mame/drivers/rastan.c
+++ b/src/mame/drivers/rastan.c
@@ -638,12 +638,12 @@ ROM_START( rastsagaa )
ROM_END
/* Newer revised code base */
-GAME( 1987, rastan, 0, rastan, rastan, driver_device, 0, ROT0, "Taito Corporation Japan", "Rastan (World Rev 1)", GAME_SUPPORTS_SAVE )
-GAME( 1987, rastana, rastan, rastan, rastsaga, driver_device, 0, ROT0, "Taito Corporation Japan", "Rastan (World)", GAME_SUPPORTS_SAVE )
-GAME( 1987, rastanu, rastan, rastan, rastsaga, driver_device, 0, ROT0, "Taito America Corporation", "Rastan (US Rev 1)", GAME_SUPPORTS_SAVE )
-GAME( 1987, rastanua, rastan, rastan, rastsaga, driver_device, 0, ROT0, "Taito America Corporation", "Rastan (US)", GAME_SUPPORTS_SAVE )
+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 )
/* Based on earliest code base */
-GAME( 1987, rastanub, rastan, rastan, rastsaga, driver_device, 0, ROT0, "Taito America Corporation", "Rastan (US, Earlier code base)", GAME_SUPPORTS_SAVE )
-GAME( 1987, rastsaga, rastan, rastan, rastsaga, driver_device, 0, ROT0, "Taito Corporation", "Rastan Saga (Japan Rev 1)", GAME_SUPPORTS_SAVE )
-GAME( 1987, rastsagaa, rastan, rastan, rastsaga, driver_device, 0, ROT0, "Taito Corporation", "Rastan Saga (Japan)", GAME_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, rastsaga, rastan, rastan, rastsaga, driver_device, 0, ROT0, "Taito Corporation", "Rastan Saga (Japan Rev 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, rastsagaa, rastan, rastan, rastsaga, driver_device, 0, ROT0, "Taito Corporation", "Rastan Saga (Japan)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/rastersp.c b/src/mame/drivers/rastersp.c
index a7397db632c..efd9ed6d8c2 100644
--- a/src/mame/drivers/rastersp.c
+++ b/src/mame/drivers/rastersp.c
@@ -955,4 +955,4 @@ 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)", GAME_NOT_WORKING )
+GAME( 1997, fbcrazy, 0, rastersp, rotr, driver_device, 0, ROT0, "BFM", "Football Crazy (Video Quiz)", MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/ravens.c b/src/mame/drivers/ravens.c
index 995860708d5..e122ab12f72 100644
--- a/src/mess/drivers/ravens.c
+++ b/src/mame/drivers/ravens.c
@@ -384,5 +384,5 @@ 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", GAME_NO_SOUND_HW )
-COMP( 1985, ravens2, ravens, 0, ravens2, ravens, driver_device, 0, "Joseph Glagla and Dieter Feiler", "Ravensburger Selbstbaucomputer V2.0", GAME_NO_SOUND_HW )
+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 )
diff --git a/src/mame/drivers/rbisland.c b/src/mame/drivers/rbisland.c
new file mode 100644
index 00000000000..922e7f48dad
--- /dev/null
+++ b/src/mame/drivers/rbisland.c
@@ -0,0 +1,977 @@
+// license:BSD-3-Clause
+// copyright-holders:Mike Coates
+/***************************************************************************
+
+Rainbow Islands (c) Taito 1987 + Jumping
+===============
+
+driver by Mike Coates
+
+c-chip enhanced by Robert Gallagher, with many thanks to Tormod Tjaberg for providing
+his PCB for dumping/collecting the c-chip data from Rainbow Islands Extra.
+
+ ***
+
+Rainbow Islands & Rainbow Islands Extra
+Taito, 1987
+
+PCB Layout
+----------
+
+MAIN PCB
+J1100128A
+K1100277A
+|----------------------------------------------------|
+| MB3735 Z80 B22-14.43 16MHz DIP28 DIP28 |
+| YM2151 5563 |
+|VOL PC060HA B22-05.33 B22-01.2 |
+| 4556 TL074 YM3012 |-------| |
+|Y 6116 6116 |TAITO | 43256 |
+| |PC080SN| |
+|J TC0070RGB 2018 |-------| |-------| 43256 |
+|A 2018 |TAITO | |
+|M PC050CM 2018 |PC0900J| B22-02.5 |
+|M 2018 |-------| B22-13.6 |
+|A B22-12.7 |
+| TC0030CMD 12MHz 3771|
+| 26.686MHz B39-02.20 B22-01.19 |
+| 68000 B39-04.22 B39-03.21 |
+| B22-07.56 B22-06.41 B22-04.24 B22-03.23 |
+| DSWB DSWA 8464 8464 |
+|----------------------------------------------------|
+Notes:
+ 68000 - clock 8.000MHz [16/2]
+ Z80 - clock 4.000MHz [16/4]
+ YM2151 - clock 4.000MHz [16/4]
+ 6116 - 2kx8 SRAM (color RAM)
+ 43256 - 32kx8 SRAM (tile RAM)
+ 8464 - 8kx8 SRAM (68000 work RAM)
+ 5563 - 8kx8 SRAM (Z80 work RAM)
+ 2018 - 2kx8 SRAM (sprite RAM)
+ 4556 - NEC uPC4556 dual operational amplifier IC (DIP8)
+ TL074 - Texas Instruments TL074 low noise j-fet quad operational amplifier (DIP14)
+ YM3012 - Yamaha YM3012 2-channel serial input floating DAC (DIP16)
+ MB3735 - Fujitsu MB3735 20 watt BTL audio power amplifier (SIP9)
+ PC080SN - Taito custom tilemap generator IC (connected to 43256 SRAM)
+ PC0900J - Taito custom sprite generator IC (connected to 2018 SRAM)
+ PC060HA - Taito custom IC (sound-related)
+ TC0030CMD - Taito custom C-Chip marked 'TC0030CMD, clock input 12.000MHz on pin 20
+ - For Rainbow Islands with sticker 'B22-15' at IC53
+ - For Rainbow Islands Extra with sticker 'B39-05' at IC53
+ TC0070RGB - Taito custom ceramic module RGB mixer IC
+ PC050CM - Taito custom ceramic module (input related functions)
+ 3771 - Fujitsu MB3771 master reset IC (DIP8)
+ Y - 3 pin connector for 2nd speaker output
+ DIP28 - unpopulated DIP28 socket(s)
+
+ ROMs -
+ |----------------------------------------------------------------------|
+ | Common to Rainbow Islands and Rainbow Islands Extra |
+ |--------------|---------------|---------------|-----------------------|
+ | 234000 | 23C1000 | 27C512 | PALs |
+ |--------------|---------------|---------------|-----------------------|
+ | B22-01.2 | B22-03.23 | B22-12.7 | B22-05.33 (PAL16L8) |
+ | B22-02.5 | B22-04.24 | B22-13.6 | B22-06.41 (PAL16L8) |
+ | | | B22-14.43 | B22-07.56 (PAL20L8) |
+ |--------------|---------------|---------------|-----------------------|
+ |---------------------------------------|------------------------------|
+ | Used only on Rainbow Islands Extra | Used only on Rainbow Islands |
+ |--------------|------------------------|--------------|---------------|
+ | 27C512 | C-Chip | 27C512 | C-Chip |
+ |--------------|------------------------|--------------|---------------|
+ | B39-01.19 | B39-05.53 | B22-10.19 | B22-15.53 |
+ | B39-02.20 | | B22-11.20 | |
+ | B39-03.21 | | B22-08.21 | |
+ | B39-04.22 | | B22-09.22 | |
+ |--------------|------------------------|--------------|---------------|
+
+ Measurements
+ ------------
+ XTAL1 - 26.68599MHz
+ XTAL2 - 16.00000MHz
+ XTAL3 - 12.00000MHz
+ VSync - 60.0559Hz
+ HSync - 15.6745kHz
+
+Notes on Rainbow Islands romsets by Robert Gallagher
+----------------------------------------------------
+
+There are 3 code segments that differ between Rainbow Islands old and new
+version. They are all related to secret rooms;
+
+ The first code segment is entered at the start of a secret room.
+
+
+ rbislando rbisland
+ $55EE lea $C01308,a0 $55EE lea $C00B08,a0
+ move.w #$13,d0 bsr $561C
+ $55F8 move.w #$15fa,2(a0) lea $C00D08,a0
+ move.w #$15fa,6(a0) bsr $561C
+ move.w #$15fa,$102(a0) lea $C00F08,a0
+ move.w #$15fa,$106(a0) bsr $561C
+ adda.l #8,a0 lea $C01108,a0
+ dbf d0,$55F8 bsr $561C
+ rts $561C lea $C01308,a0
+ move.w #$13,d0
+ ...
+
+ The next code segment fixes the bonus related to entering ALL 10 Secret rooms.
+ In Rainbow Islands, If you enter the last secret room, you receive a 10,000,000
+ point bonus. If you have entered all 10 secret rooms, you receive a 50,000,000 point
+ bonus. (BUG THAT'S NOT A BUG - the games says 1,000,000 and 5,000,000, but the code gives
+ you 10mil and 50mil)
+ The counter is in $10D05C.b, the (rbislando) romset never increments this counter, making
+ it impossible to achieve.
+
+ $56A2 cmpi.w #$31,$11c6(a5) $56CA addi.b #1,$105C(a5) ;increment the secret room count
+ bne cmpi.w #$31,$11c6(a5) ;is it round 49 (50)?
+ bne
+
+ The final change fixes a Secret room bug that was noted by Stefan Jokisch.
+ In (rbislando) it is possible to scroll the screen inside a secret room.
+ You can walk right off the top of the screen, and scroll the 'next' secret
+ room into view. This is fixed in (rbisland) with the following code;
+
+ $5F06 move.b #1,d0 $5F34 tst.b $11c4(a5) ; in secret room?
+ jsr $1736 bne $600A ; exit this routine, which is getting
+ move.b #1,d0 ; the room height from c-chip bank 1
+ jsr $1736 ; which we don't need
+ ...
+ $600A rts
+
+ The (jumping) bootleg is based on the (rbislando) roms.
+
+Notes on Rainbow Islands Extra by Robert Gallagher
+--------------------------------------------------
+ In Rainbow Islands Extra, there are more changes than just the differing enemies/rounds.
+
+ In RIE if you end a level with the same 2 digits in your score as xxxx220, you will receive
+ items at the "GOAL IN" worth 3000 points each (instead of 500pts) as:
+
+ 00 = french fries
+ 11 = neopolaton ice cream
+ 22 = creme caramel
+ 33 = hamburgers
+ 44 = cake slice
+ 55 = iced bun
+ 66 = mug of beer
+ 77 = hotdog on a stick
+ 88 = vanilla ice cream
+ 99 = blue popsicle
+
+ There are two other possibilities:
+ moneybags - worth 500pts if you don't have double digits, or worth 3000 points if you do (any)
+ if you got the 'Money Coin' powerup in a secret room.
+ hearts - worth 10,000 each, this is based on a timer in 0x0010DBA4 && 128 == 0, making this a
+ 1 in 128 chance.
+
+
+ The items received in 'Secret Room' are not the same as Rainbow Islands. They are based on
+ the LAST diamond you collect in the round before entering. That is; you must still collect
+ the 7 diamonds in order, Red, Orange, Yellow... to enter a secret room, however, AFTER completing
+ this, you can still collect diamonds. If you collect (last), you get:
+
+ Red - Book of Continues - this allows you to continue after world 7
+ Orange - Money Bag - this will make a 100,000pt Money bag fall from the sky on every round.
+ it will also make all fruit at 'GOAL IN' into money bags.
+ Yellow - Key - when taken, this will show the Secret room code completely for about 8 seconds.
+ Green - Protection Fairy, gives you the protection fairy for about 8 seconds at the beginning
+ of each round, or after you die. (NOT perm. like RI, code at $C528 in RIE handles this,
+ and is distinctly different from the code at $BC8C in RI)
+ Blue - Yellow Potion, gives you perm. fast rainbow power
+ Indigo - Red Potion, gives you perm. 2X rainbow power
+ Violet - Shoes, gives you perm. fast feet.
+
+ Unlike the secret rooms in Rainbow Islands, in Rainbow Islands Extra, only 2 letters of the code
+ for that room are revealed. The first letter, and the second letter will corespond to the last
+ diamond collected before entering the secret room. (You can see this with the coloured hearts
+ that remain). The idea is that you must enter the secret room 7X to get the full code, making the
+ game harder. Otherwise, collecting a yellow diamond will give you the 'key' to the room, and reveal
+ the code for about 5 seconds.
+
+ In the secret rooms of RIE there is an added bonus; If you exit the room without collecting the
+ power-up item, you will receive a 1,000,000pt bonus. The text in the room in Japanese reads:
+ "KYOUKA-SOUBI WO TORAZUNI DERUTO 1000000 TEN HAIRUYO !!"
+
+ If you enter all 10 secret rooms in Rainbow Islands Extra, and do NOT collect the powerups in
+ _any_ of the rooms, you will receive "SPECIAL BIG BONUS !! 50000000 PTS."
+
+ If you enter all 10 secret rooms, and do NOT collect the bubble-rainbow power in secret room 10,
+ (though you may collect them in others) you will receive "SPECIAL BIG BONUS !! 10000000 PTS."
+
+ If you collect the bubble-rainbow power in secret room 10, you will receive "ALL ROOM CLEAR
+ 5000000" bonus instead.
+
+ In Rainbow Islands Extra (as in Rainbow Islands), if you collect 2 of any colour 'cane'...
+ (canes are collected for collecting 7 of one colour of diamond, WITHOUT 'complete' happening, or
+ if 'complete', you must collect 7 of the same colour diamond within one round. (the diamond
+ counters are reset to one at the beginning of each round once 'complete' has occurred).
+ ...you will receive a 'Potion' (not Rainbow powerup potions)
+ of the appropriate colour. Once collected, you will receive a
+ 100,000pts. large fruit item at 'GOAL IN' for that round. Although the code for this is present in
+ Rainbow Islands, it is rarely seen. This is not a result of poor emulation, but rather poor coding;
+ In both RI and RIE, there are tables that indicate which special item is deserved, and what actions
+ are required to earn them. (the number of times the event must occur).
+ In both RI and RIE, you receive a special item for every 3rd enemy you kill as:
+ 1. Shoes
+ 2. Red Potion
+ 3. Yellow Potion
+ 4. Red Potion
+ 5. Crystal Ball
+ 6. Yellow star
+ 7. Red Star
+ 8. - Special item - depending on what you deserve.
+
+ The Special item table can be found at $ADC0 in RI, and $B5E8 in RIE. This table is checked in
+ linear fashion until a special item requirement is met.
+ items 24/25/26 are: Blue Ring/Violet Ring/Red Ring.
+ To get these items you collect: Red Potion/Yellow Potion/Shoes. (note that each potion collect =+2)
+ In Rainbow Islands, this table shows that we need only collect:
+ 3 red potions (but each one counts as +2 if you created it, or +1 if you 'found' it in a level),
+ 3 yellow potions ""
+ 3 red shoes (only count as one)
+ The 'canes', and 'potions' occur -after- these entries (cane index 27-33, potion index 34-40)
+ So the reason that you (rarely!) see the canes, and hence the potions in RI, is because you will
+ almost ALWAYS satisfy at least one of these requirements: 2 RED potions are given before 1 'special'
+ In Rainbow Islands Extra however, the canes are more common. This is because the index shows that
+ we need to collect 12/12/12 of the above before we can get the rings.
+
+ One more condition has been added to RIE regards this;
+ if _no_ special item has been earned, you will receive a Potion that is the same colour as the
+ LAST diamond you have collected in the round.
+
+
+
+Bugs in Jumping
+---------------
+
+The bootleggers didn't defeat the protection completely: Secret
+rooms are broken, some dying enemy sprites have obviously wrong
+graphics, monsters are falling through platforms etc.
+
+
+Secret rooms in Rainbow Islands
+-------------------------------
+
+Getting the small diamonds in order (red through to purple) opens
+a secret door in the boss room. The trick is to turn an enemy into
+a diamond of a specific color: It depends on its x position and
+direction. There is a cheat code at the top of each secret room
+that can be entered on the copyright screen:
+
+ L -> left
+ R -> right
+ J -> jump
+ B -> rainbow
+ S -> start
+
+ | regular | extra
+ --------------+------------+------------
+ Fast Feet | BLRBJSBJ | SLLSRJRR
+ Red Potion | RJSBJLBR | JLSSSBRJ
+ Yellow Potion | SSSLLRRS | BRSLJSLJ
+ Hint A | BJBJBJRS | BJBJBJRS
+ Hint B | LJLSLBLS | LJLSLBLS
+ Continue | LBSJRLJL | LJLRSJJJ
+ Money Bags | RRLLBBJS | LLSBRRJB
+ Money + Cont | RRRRSBSJ | RSJRLBRS
+ Hint C | SJBLRJSR | SJBLRJSR
+ 100M Counter | SRBJSLSB | BBSSJJJJ
+ Hint D | N/A | BBJJRLSL
+ Hint E | N/A | LRSLRSJR
+ Hint F | N/A | SBJLSBRR
+
+
+
+Stephh's notes (based on the game M68000 code and some tests) :
+
+1) 'rbisland*'
+
+ - Region stored at 0x02fffe.w
+ - Sets :
+ * 'rbisland' : region = 0x0000
+ * 'rbislando' : region = 0x0000
+ * 'rbislande' : region = 0x0000
+ - Possible regions :
+ * 0x0000 : Japan
+ * 0x0001 : US
+ * 0x0002 : World
+ * 0x0003 : US, licensed to ROMSTAR
+ * 0x0004 : licensed to PHOENIX ELECTRONICS CO.
+ - Coinage relies on "Coin Mode" Dip Switch (code at 0x0030fc) :
+ * "Mode A" uses TAITO_COINAGE_JAPAN_OLD
+ * "Mode B" uses TAITO_COINAGE_WORLD
+
+
+2) 'jumping'
+
+ - Region stored at 0x02fffe.w
+ - Sets :
+ * 'jumping' : region = 0x0000
+ - If you change the region, you'll notice that the copyright strings
+ haven't been correcly erased !
+ - Some Dip Switches have no effect due to code at 0x000850;
+ this means the following things :
+ * always upright cabinet
+ * screen never flipped
+ * impossible to enter the "test mode"
+ * always English language
+
+***************************************************************************/
+
+#include "emu.h"
+#include "cpu/z80/z80.h"
+#include "cpu/m68000/m68000.h"
+#include "includes/taitoipt.h"
+#include "audio/taitosnd.h"
+#include "sound/2203intf.h"
+#include "sound/2151intf.h"
+#include "includes/rbisland.h"
+
+
+
+WRITE16_MEMBER(rbisland_state::jumping_sound_w)
+{
+ if (ACCESSING_BITS_0_7)
+ {
+ m_jumping_latch = data & 0xff; /*M68000 writes .b to $400007*/
+ m_audiocpu->set_input_line(0, HOLD_LINE);
+ }
+}
+
+
+/***************************************************************************
+ MEMORY STRUCTURES
+***************************************************************************/
+
+static ADDRESS_MAP_START( rbisland_map, AS_PROGRAM, 16, rbisland_state )
+ AM_RANGE(0x000000, 0x07ffff) AM_ROM
+ AM_RANGE(0x10c000, 0x10ffff) AM_RAM /* main RAM */
+ AM_RANGE(0x200000, 0x200fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
+ AM_RANGE(0x201000, 0x203fff) AM_RAM /* r/w in initial checks */
+ AM_RANGE(0x390000, 0x390003) AM_READ_PORT("DSWA")
+ AM_RANGE(0x3a0000, 0x3a0001) AM_WRITE(rbisland_spritectrl_w)
+ AM_RANGE(0x3b0000, 0x3b0003) AM_READ_PORT("DSWB")
+ AM_RANGE(0x3c0000, 0x3c0003) AM_WRITENOP /* written very often, watchdog? */
+ AM_RANGE(0x3e0000, 0x3e0001) AM_READNOP AM_DEVWRITE8("tc0140syt", tc0140syt_device, master_port_w, 0x00ff)
+ AM_RANGE(0x3e0002, 0x3e0003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, master_comm_r, master_comm_w, 0x00ff)
+ AM_RANGE(0x800000, 0x8007ff) AM_READWRITE(rbisland_cchip_ram_r,rbisland_cchip_ram_w)
+ AM_RANGE(0x800802, 0x800803) AM_READWRITE(rbisland_cchip_ctrl_r,rbisland_cchip_ctrl_w)
+ AM_RANGE(0x800c00, 0x800c01) AM_WRITE(rbisland_cchip_bank_w)
+ AM_RANGE(0xc00000, 0xc0ffff) AM_DEVREADWRITE("pc080sn", pc080sn_device, word_r, word_w)
+ AM_RANGE(0xc20000, 0xc20003) AM_DEVWRITE("pc080sn", pc080sn_device, yscroll_word_w)
+ AM_RANGE(0xc40000, 0xc40003) AM_DEVWRITE("pc080sn", pc080sn_device, xscroll_word_w)
+ AM_RANGE(0xc50000, 0xc50003) AM_DEVWRITE("pc080sn", pc080sn_device, ctrl_word_w)
+ AM_RANGE(0xd00000, 0xd03fff) AM_DEVREADWRITE("pc090oj", pc090oj_device, word_r, word_w) /* sprite ram + other stuff */
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( jumping_map, AS_PROGRAM, 16, rbisland_state )
+ AM_RANGE(0x000000, 0x09ffff) AM_ROM
+ AM_RANGE(0x10c000, 0x10ffff) AM_RAM /* main RAM */
+ AM_RANGE(0x200000, 0x200fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
+ AM_RANGE(0x201000, 0x203fff) AM_RAM /* r/w in initial checks */
+ AM_RANGE(0x400000, 0x400001) AM_READ_PORT("DSWA")
+ AM_RANGE(0x400002, 0x400003) AM_READ_PORT("DSWB")
+ AM_RANGE(0x401000, 0x401001) AM_READ_PORT("401001")
+ AM_RANGE(0x401002, 0x401003) AM_READ_PORT("401003")
+ AM_RANGE(0x3a0000, 0x3a0001) AM_WRITE(jumping_spritectrl_w)
+ AM_RANGE(0x3c0000, 0x3c0001) AM_WRITENOP /* watchdog? */
+ AM_RANGE(0x400006, 0x400007) AM_WRITE(jumping_sound_w)
+ AM_RANGE(0x420000, 0x420001) AM_READNOP /* read, but result not used */
+ AM_RANGE(0x430000, 0x430003) AM_DEVWRITE("pc080sn", pc080sn_device, yscroll_word_w)
+ AM_RANGE(0x440000, 0x4407ff) AM_RAM AM_SHARE("spriteram")
+ AM_RANGE(0x800000, 0x80ffff) AM_WRITENOP /* original c-chip location (not used) */
+ AM_RANGE(0xc00000, 0xc0ffff) AM_DEVREADWRITE("pc080sn", pc080sn_device, word_r, word_w)
+ AM_RANGE(0xc20000, 0xc20003) AM_WRITENOP /* seems it is a leftover from rbisland: scroll y written here too */
+ AM_RANGE(0xc40000, 0xc40003) AM_DEVWRITE("pc080sn", pc080sn_device, xscroll_word_w)
+ AM_RANGE(0xd00000, 0xd01fff) AM_RAM /* original spriteram location, needed for Attract Mode */
+ADDRESS_MAP_END
+
+
+/**********************************************************
+ SOUND
+
+ Rainbow uses a YM2151 and YM3012
+ Jumping uses two YM2203's
+***********************************************************/
+
+WRITE8_MEMBER(rbisland_state::bankswitch_w)
+{
+ membank("bank1")->set_entry(data & 3);
+}
+
+READ8_MEMBER(rbisland_state::jumping_latch_r)
+{
+ return m_jumping_latch;
+}
+
+
+static ADDRESS_MAP_START( rbisland_sound_map, AS_PROGRAM, 8, rbisland_state )
+ AM_RANGE(0x0000, 0x3fff) AM_ROM
+ AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
+ AM_RANGE(0x8000, 0x8fff) AM_RAM
+ AM_RANGE(0x9000, 0x9001) AM_DEVREADWRITE("ymsnd", ym2151_device,read,write)
+ AM_RANGE(0x9002, 0x9100) AM_READNOP
+ AM_RANGE(0xa000, 0xa000) AM_DEVWRITE("tc0140syt", tc0140syt_device, slave_port_w)
+ AM_RANGE(0xa001, 0xa001) AM_DEVREADWRITE("tc0140syt", tc0140syt_device, slave_comm_r, slave_comm_w)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( jumping_sound_map, AS_PROGRAM, 8, rbisland_state )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0x8fff) AM_RAM
+ AM_RANGE(0xb000, 0xb001) AM_DEVREADWRITE("ym1", ym2203_device, read, write)
+ AM_RANGE(0xb400, 0xb401) AM_DEVREADWRITE("ym2", ym2203_device, read, write)
+ AM_RANGE(0xb800, 0xb800) AM_READ(jumping_latch_r)
+ AM_RANGE(0xbc00, 0xbc00) AM_WRITENOP /* looks like a bankswitch, but sound works with or without it */
+ AM_RANGE(0xc000, 0xffff) AM_ROM
+ADDRESS_MAP_END
+
+
+/***********************************************************
+ INPUT PORTS, DIPs
+***********************************************************/
+
+static INPUT_PORTS_START( rbisland_generic )
+ PORT_START("DSWA")
+ TAITO_MACHINE_COCKTAIL
+ PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x00)
+ PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x00)
+ PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x80)
+ PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x00)
+ PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x80)
+ PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x00)
+ PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x80)
+ PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x80)
+ PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x80)
+ PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x80)
+ PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x80)
+ PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x80)
+ PORT_DIPSETTING( 0xc0, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x00)
+ PORT_DIPSETTING( 0x80, DEF_STR( 1C_3C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x00)
+ PORT_DIPSETTING( 0x40, DEF_STR( 1C_4C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x00)
+ PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) ) PORT_CONDITION("DSWB",0x80,EQUALS,0x00)
+
+ PORT_START("DSWB")
+ TAITO_DIFFICULTY
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Bonus_Life ) )
+ PORT_DIPSETTING( 0x04, "100k 1000k" )
+ PORT_DIPSETTING( 0x00, DEF_STR( None ) )
+ PORT_DIPNAME( 0x08, 0x08, "Complete Bonus" )
+ PORT_DIPSETTING( 0x08, "1 Up" )
+ PORT_DIPSETTING( 0x00, "100k" )
+ PORT_DIPNAME( 0x30, 0x30, DEF_STR( Lives ) )
+ PORT_DIPSETTING( 0x10, "1" )
+ PORT_DIPSETTING( 0x00, "2" )
+ PORT_DIPSETTING( 0x30, "3" )
+ PORT_DIPSETTING( 0x20, "4" )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Language ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( English ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( Japanese ) )
+ PORT_DIPNAME( 0x80, 0x80, "Coin Mode" )
+ PORT_DIPSETTING( 0x80, "Mode A (Japan)" ) /* Mode A is TAITO_COINAGE_JAPAN_OLD */
+ PORT_DIPSETTING( 0x00, "Mode B (World)" ) /* Mode B is TAITO_COINAGE_WORLD */
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( rbisland )
+ PORT_INCLUDE(rbisland_generic)
+
+ /* 0x390000 -> 0x10cfc2 ($fc2,A5) : DSWA */
+
+ /* 0x3b0000 -> 0x10cfc4 ($fc4,A5) : DSWB */
+
+ PORT_START("800007")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE1 )
+
+ PORT_START("800009")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("80000B")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON1 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON2 )
+
+ PORT_START("80000D")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_COCKTAIL
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_COCKTAIL
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
+INPUT_PORTS_END
+
+static INPUT_PORTS_START( jumping )
+ PORT_INCLUDE(rbisland_generic)
+
+ /* 0x400000 -> 0x10cfc2 ($fc2,A5) */
+ PORT_MODIFY("DSWA")
+ PORT_DIPUNUSED( 0x01, IP_ACTIVE_LOW ) /* see notes */
+ PORT_DIPUNUSED( 0x02, IP_ACTIVE_LOW ) /* see notes */
+ PORT_DIPUNUSED( 0x04, IP_ACTIVE_LOW ) /* see notes */
+
+ /* 0x400002 -> 0x10cfc4 ($fc4,A5) */
+ PORT_MODIFY("DSWB")
+ PORT_DIPUNUSED( 0x40, IP_ACTIVE_LOW ) /* see notes */
+
+ PORT_START("401001")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("401003")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 )
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_2WAY
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_2WAY
+INPUT_PORTS_END
+
+
+/**************************************************************
+ GFX DECODING
+**************************************************************/
+
+static const gfx_layout tilelayout =
+{
+ 8,8, /* 8*8 tiles */
+ RGN_FRAC(1,1),
+ 4, /* 4 bits per pixel */
+ { 0, 1, 2, 3 },
+ { 8, 12, 0, 4, 24, 28, 16, 20 },
+ { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 },
+ 32*8 /* every tile takes 32 consecutive bytes */
+};
+
+static const gfx_layout spritelayout =
+{
+ 16,16, /* 16*16 sprites */
+ RGN_FRAC(1,1),
+ 4, /* 4 bits per pixel */
+ { 0, 1, 2, 3 },
+ { 8, 12, 0, 4, 24, 28, 16, 20, 40, 44, 32, 36, 56, 60, 48, 52 },
+ { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64,
+ 8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 },
+ 128*8 /* every sprite takes 128 consecutive bytes */
+};
+
+static GFXDECODE_START( rbisland )
+ GFXDECODE_ENTRY( "gfx2", 0x000000, spritelayout, 0, 0x80 ) /* OBJ 16x16 */
+ GFXDECODE_ENTRY( "gfx1", 0x000000, tilelayout, 0, 0x80 ) /* SCR 8x8 */
+GFXDECODE_END
+
+
+static const gfx_layout jumping_tilelayout =
+{
+ 8,8, /* 8*8 tiles */
+ 16384, /* 16384 tiles */
+ 4, /* 4 bits per pixel */
+ { 0, 0x20000*8, 0x40000*8, 0x60000*8 },
+ { 0, 1, 2, 3, 4, 5, 6, 7 },
+ { 0, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
+ 8*8 /* every tile takes 8 consecutive bytes */
+};
+
+static const gfx_layout jumping_spritelayout =
+{
+ 16,16, /* 16*16 sprites */
+ 5120, /* 5120 sprites */
+ 4, /* 4 bits per pixel */
+ { 0x78000*8,0x50000*8,0x28000*8,0 },
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8*16+0, 8*16+1, 8*16+2, 8*16+3, 8*16+4, 8*16+5, 8*16+6, 8*16+7 },
+ { 0, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 },
+ 32*8 /* every sprite takes 32 consecutive bytes */
+};
+
+static GFXDECODE_START( jumping )
+ GFXDECODE_ENTRY( "gfx2", 0, jumping_spritelayout, 0, 0x80 ) /* OBJ 16x16 */
+ GFXDECODE_ENTRY( "gfx1", 0, jumping_tilelayout, 0, 0x80 ) /* SCR 8x8 */
+GFXDECODE_END
+
+
+/***********************************************************
+ MACHINE DRIVERS
+***********************************************************/
+
+void rbisland_state::machine_start()
+{
+}
+
+static MACHINE_CONFIG_START( rbisland, rbisland_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz/2) /* verified on pcb */
+ MCFG_CPU_PROGRAM_MAP(rbisland_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", rbisland_state, irq4_line_hold)
+
+ MCFG_CPU_ADD("audiocpu", Z80, XTAL_16MHz/4) /* verified on pcb */
+ MCFG_CPU_PROGRAM_MAP(rbisland_sound_map)
+
+ MCFG_QUANTUM_TIME(attotime::from_hz(600)) /* 10 CPU slices per frame - enough for the sound CPU to read all commands */
+
+
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
+ MCFG_SCREEN_SIZE(40*8, 32*8)
+ MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
+ MCFG_SCREEN_UPDATE_DRIVER(rbisland_state, screen_update_rainbow)
+ MCFG_SCREEN_PALETTE("palette")
+
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", rbisland)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
+
+ MCFG_DEVICE_ADD("pc080sn", PC080SN, 0)
+ MCFG_PC080SN_GFX_REGION(1)
+ MCFG_PC080SN_GFXDECODE("gfxdecode")
+ MCFG_PC080SN_PALETTE("palette")
+
+ MCFG_DEVICE_ADD("pc090oj", PC090OJ, 0)
+ MCFG_PC090OJ_GFXDECODE("gfxdecode")
+ MCFG_PC090OJ_PALETTE("palette")
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+
+ MCFG_YM2151_ADD("ymsnd", XTAL_16MHz/4) /* verified on pcb */
+ MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
+ MCFG_YM2151_PORT_WRITE_HANDLER(WRITE8(rbisland_state,bankswitch_w))
+ MCFG_SOUND_ROUTE(0, "mono", 0.50)
+ MCFG_SOUND_ROUTE(1, "mono", 0.50)
+
+ MCFG_DEVICE_ADD("tc0140syt", TC0140SYT, 0)
+ MCFG_TC0140SYT_MASTER_CPU("maincpu")
+ MCFG_TC0140SYT_SLAVE_CPU("audiocpu")
+MACHINE_CONFIG_END
+
+
+/* Jumping: The PCB has 2 Xtals, 18.432MHz and 24MHz */
+static MACHINE_CONFIG_START( jumping, rbisland_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", M68000, XTAL_18_432MHz/2) /* verified on pcb */
+ MCFG_CPU_PROGRAM_MAP(jumping_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", rbisland_state, irq4_line_hold)
+
+ MCFG_CPU_ADD("audiocpu", Z80, XTAL_24MHz/4) /* verified on pcb */
+ MCFG_CPU_PROGRAM_MAP(jumping_sound_map)
+
+ MCFG_QUANTUM_TIME(attotime::from_hz(600)) /* 10 CPU slices per frame - enough unless otherwise */
+
+
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
+ MCFG_SCREEN_SIZE(40*8, 32*8)
+ MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
+ MCFG_SCREEN_UPDATE_DRIVER(rbisland_state, screen_update_jumping)
+ MCFG_SCREEN_PALETTE("palette")
+
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", jumping)
+ MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
+
+ MCFG_VIDEO_START_OVERRIDE(rbisland_state,jumping)
+
+ MCFG_DEVICE_ADD("pc080sn", PC080SN, 0)
+ MCFG_PC080SN_GFX_REGION(1)
+ MCFG_PC080SN_YINVERT(1)
+ MCFG_PC080SN_GFXDECODE("gfxdecode")
+ MCFG_PC080SN_PALETTE("palette")
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+
+ MCFG_SOUND_ADD("ym1", YM2203, XTAL_24MHz/8) /* verified on pcb */
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
+
+ MCFG_SOUND_ADD("ym2", YM2203, XTAL_24MHz/8) /* verified on pcb */
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
+MACHINE_CONFIG_END
+
+/* Imnoe PCB uses 16MHz CPU crystal instead of 18.432 for CPU */
+static MACHINE_CONFIG_DERIVED( jumpingi, jumping )
+ MCFG_CPU_REPLACE("maincpu", M68000, XTAL_16MHz/2) /* verified on pcb */
+ MCFG_CPU_PROGRAM_MAP(jumping_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", rbisland_state, irq4_line_hold)
+MACHINE_CONFIG_END
+
+/***************************************************************************
+ DRIVERS
+***************************************************************************/
+
+ROM_START( rbisland )
+ ROM_REGION( 0x80000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "b22-10-1.19", 0x00000, 0x10000, CRC(e34a50ca) SHA1(17a92cd7182db1e18000b1ae689758fcfd70fe16) )
+ ROM_LOAD16_BYTE( "b22-11-1.20", 0x00001, 0x10000, CRC(6a31a093) SHA1(1e99ae47811c0d3774d138dab02ac50bc1b92173) )
+ ROM_LOAD16_BYTE( "b22-08-1.21", 0x20000, 0x10000, CRC(15d6e17a) SHA1(7b0339180239e75adf1437aee276b652a1bfee51) )
+ ROM_LOAD16_BYTE( "b22-09-1.22", 0x20001, 0x10000, CRC(454e66bc) SHA1(54d57dee90da04101f4b1473770b38001d63230f) )
+ ROM_LOAD16_BYTE( "b22-03.23", 0x40000, 0x20000, CRC(3ebb0fb8) SHA1(1b41b305623d121255eb70cb992e4d9da13abd82) )
+ ROM_LOAD16_BYTE( "b22-04.24", 0x40001, 0x20000, CRC(91625e7f) SHA1(765afd973d9b82bb496b04beca284bf2769d6e6f) )
+
+ ROM_REGION( 0x10000, "cchip", 0 )
+ ROM_LOAD( "cchip_b22-15.53", 0x00000, 0x10000, NO_DUMP )
+
+ ROM_REGION( 0x1c000, "audiocpu", 0 )
+ ROM_LOAD( "b22-14.43", 0x00000, 0x4000, CRC(113c1a5b) SHA1(effa2adf54a6be78b2d4baf3a47529342fb0d895) )
+ ROM_CONTINUE( 0x10000, 0xc000 )
+
+ ROM_REGION( 0x80000, "gfx1", 0 )
+ ROM_LOAD( "b22-01.2", 0x00000, 0x80000, CRC(b76c9168) SHA1(e924be0c8294b930488bb04583784254a840a52e) ) /* tiles */
+
+ ROM_REGION( 0xa0000, "gfx2", 0 )
+ ROM_LOAD( "b22-02.5", 0x00000, 0x80000, CRC(1b87ecf0) SHA1(37a463184f4064fe0565367236e289d57639614c) ) /* sprites */
+ ROM_LOAD16_BYTE( "b22-12.7", 0x80000, 0x10000, CRC(67a76dc6) SHA1(626ee684eb3ea859c695ffe03344ccaa442da4af) )
+ ROM_LOAD16_BYTE( "b22-13.6", 0x80001, 0x10000, CRC(2fda099f) SHA1(a1e27a4497f6733608be924d69d965b19f725b99) )
+ROM_END
+
+ROM_START( rbislando )
+ ROM_REGION( 0x80000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "b22-10.19", 0x00000, 0x10000, CRC(3b013495) SHA1(fc89f401a80b9bde174df8a257bb7fad4937c838) )
+ ROM_LOAD16_BYTE( "b22-11.20", 0x00001, 0x10000, CRC(80041a3d) SHA1(619d71a2bef5fd898a15d37d8016850f832428c3) )
+ ROM_LOAD16_BYTE( "b22-08.21", 0x20000, 0x10000, CRC(962fb845) SHA1(1c5581e697902ee5cde0fb841ef05eade04a901b) )
+ ROM_LOAD16_BYTE( "b22-09.22", 0x20001, 0x10000, CRC(f43efa27) SHA1(f92bcdbe9bbc1c200946c10605846bb406d8e963) )
+ ROM_LOAD16_BYTE( "b22-03.23", 0x40000, 0x20000, CRC(3ebb0fb8) SHA1(1b41b305623d121255eb70cb992e4d9da13abd82) )
+ ROM_LOAD16_BYTE( "b22-04.24", 0x40001, 0x20000, CRC(91625e7f) SHA1(765afd973d9b82bb496b04beca284bf2769d6e6f) )
+
+ ROM_REGION( 0x10000, "cchip", 0 )
+ ROM_LOAD( "cchip_b22-15.53", 0x00000, 0x10000, NO_DUMP )
+
+ ROM_REGION( 0x1c000, "audiocpu", 0 )
+ ROM_LOAD( "b22-14.43", 0x00000, 0x4000, CRC(113c1a5b) SHA1(effa2adf54a6be78b2d4baf3a47529342fb0d895) )
+ ROM_CONTINUE( 0x10000, 0xc000 )
+
+ ROM_REGION( 0x80000, "gfx1", 0 )
+ ROM_LOAD( "b22-01.2", 0x00000, 0x80000, CRC(b76c9168) SHA1(e924be0c8294b930488bb04583784254a840a52e) ) /* tiles */
+
+ ROM_REGION( 0xa0000, "gfx2", 0 )
+ ROM_LOAD( "b22-02.5", 0x00000, 0x80000, CRC(1b87ecf0) SHA1(37a463184f4064fe0565367236e289d57639614c) ) /* sprites */
+ ROM_LOAD16_BYTE( "b22-12.7", 0x80000, 0x10000, CRC(67a76dc6) SHA1(626ee684eb3ea859c695ffe03344ccaa442da4af) )
+ ROM_LOAD16_BYTE( "b22-13.6", 0x80001, 0x10000, CRC(2fda099f) SHA1(a1e27a4497f6733608be924d69d965b19f725b99) )
+ROM_END
+
+ROM_START( rbislande )
+ ROM_REGION( 0x80000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "b39-01.19", 0x00000, 0x10000, CRC(50690880) SHA1(88cd8739eaa6e4e5988be225c31d2a6605173d39) )
+ ROM_LOAD16_BYTE( "b39-02.20", 0x00001, 0x10000, CRC(4dead71f) SHA1(03e9df33fc8fc64d6eeb1c3a763acac00b10c071) )
+ ROM_LOAD16_BYTE( "b39-03.21", 0x20000, 0x10000, CRC(4a4cb785) SHA1(6ba7de3901a001cbb31713664ccb68b943a5578f) )
+ ROM_LOAD16_BYTE( "b39-04.22", 0x20001, 0x10000, CRC(4caa53bd) SHA1(302c668b77de41ffef96a3ca9d94877b4affc466) )
+ ROM_LOAD16_BYTE( "b22-03.23", 0x40000, 0x20000, CRC(3ebb0fb8) SHA1(1b41b305623d121255eb70cb992e4d9da13abd82) )
+ ROM_LOAD16_BYTE( "b22-04.24", 0x40001, 0x20000, CRC(91625e7f) SHA1(765afd973d9b82bb496b04beca284bf2769d6e6f) )
+
+ ROM_REGION( 0x10000, "cchip", 0 )
+ ROM_LOAD( "cchip_b39-05.53", 0x00000, 0x10000, NO_DUMP )
+
+ ROM_REGION( 0x1c000, "audiocpu", 0 )
+ ROM_LOAD( "b22-14.43", 0x00000, 0x4000, CRC(113c1a5b) SHA1(effa2adf54a6be78b2d4baf3a47529342fb0d895) )
+ ROM_CONTINUE( 0x10000, 0xc000 )
+
+ ROM_REGION( 0x80000, "gfx1", 0 )
+ ROM_LOAD( "b22-01.2", 0x00000, 0x80000, CRC(b76c9168) SHA1(e924be0c8294b930488bb04583784254a840a52e) ) /* tiles */
+
+ ROM_REGION( 0xa0000, "gfx2", 0 )
+ ROM_LOAD( "b22-02.5", 0x00000, 0x80000, CRC(1b87ecf0) SHA1(37a463184f4064fe0565367236e289d57639614c) ) /* sprites */
+ ROM_LOAD16_BYTE( "b22-12.7", 0x80000, 0x10000, CRC(67a76dc6) SHA1(626ee684eb3ea859c695ffe03344ccaa442da4af) )
+ ROM_LOAD16_BYTE( "b22-13.6", 0x80001, 0x10000, CRC(2fda099f) SHA1(a1e27a4497f6733608be924d69d965b19f725b99) )
+ROM_END
+
+ROM_START( jumping )
+ ROM_REGION( 0xa0000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "6.h4", 0x00000, 0x10000, CRC(3fab6b31) SHA1(57803478949cb62f7eab2ef9be08b13aa2237dbc) )
+ ROM_LOAD16_BYTE( "10.h8", 0x00001, 0x10000, CRC(8c878827) SHA1(4a54a217b7c442305c3ce9298aa36ae225382444) )
+ ROM_LOAD16_BYTE( "5.i4", 0x20000, 0x10000, CRC(443492cf) SHA1(fc3809d784d611df4fd446ca2443eebdf4f0bfd7) )
+ ROM_LOAD16_BYTE( "9.i8", 0x20001, 0x10000, CRC(ed33bae1) SHA1(24ade29f3fdd45aa772ccf9c046294baa6eae7a2) )
+ ROM_LOAD16_BYTE( "4.bin", 0x40000, 0x10000, CRC(00bf8a91) SHA1(973868eef99b1bcfa60e1b22a18946aa3edefad3) ) // 4+3 == b22-03.23
+ ROM_LOAD16_BYTE( "8.bin", 0x40001, 0x10000, CRC(e3d7a844) SHA1(9559b38f2017de0c93ed82ca7dccfb046fff39f9) ) // 8+7 == b22-04.24
+ ROM_LOAD16_BYTE( "3.bin", 0x60000, 0x10000, CRC(a3ab61c6) SHA1(5cf82d1aa1f548fb3c243c625e4ff52c8714bacc) ) // ^
+ ROM_LOAD16_BYTE( "7.bin", 0x60001, 0x10000, CRC(c1c4c701) SHA1(4dd751418ee0f8ae766e2fe47f752d0758d7d682) ) // ^
+ ROM_LOAD16_BYTE( "2.f89", 0x80001, 0x10000, CRC(0810d327) SHA1(fe91ac02e617bde413dc8a20b7cbcaf3e20aeb28) ) /* c-chip substitute */
+
+ ROM_REGION( 0x14000, "audiocpu", 0 )
+ ROM_LOAD( "jb1_cd67", 0x00000, 0x8000, CRC(8527c00e) SHA1(86e3824caca39aca4ca4df63bb4474adacfc4c53) )
+ ROM_CONTINUE( 0x10000, 0x4000 )
+ ROM_CONTINUE( 0x0c000, 0x4000 )
+
+ ROM_REGION( 0x80000, "gfx1", 0 )
+ ROM_LOAD( "17.ic8", 0x00000, 0x10000, CRC(65b76309) SHA1(1e345726e137f4c56d4bf239651c986fd53a16c3) ) /* tiles */
+ ROM_LOAD( "18.ic7", 0x10000, 0x10000, CRC(43a94283) SHA1(d6a05cbc7b996a8e7f1520563f6fada9a59021a4) )
+ ROM_LOAD( "15.ic10", 0x20000, 0x10000, CRC(e61933fb) SHA1(02bc0e1a7a3ce9e15fb83b28ce8fafb0b8d80ebd) )
+ ROM_LOAD( "16.ic9", 0x30000, 0x10000, CRC(ed031eb2) SHA1(905be4d890ff7bb8a4d8ad85b2a11483fb4d67eb) )
+ ROM_LOAD( "13.ic12", 0x40000, 0x10000, CRC(312700ca) SHA1(c79edc9c25f364d0afd79aaa21cfe2fe46044314) )
+ ROM_LOAD( "14.ic11", 0x50000, 0x10000, CRC(de3b0b88) SHA1(14b8871821e4c0abbb9967c5aa282cf4e67884fe) )
+ ROM_LOAD( "11.ic14", 0x60000, 0x10000, CRC(9fdc6c8e) SHA1(ff4e1a98dc982bce2f9d235cac62c7166f477f64) )
+ ROM_LOAD( "12.ic13", 0x70000, 0x10000, CRC(06226492) SHA1(834280ec49e61a0c9c6b6fe2033e1b20bd1bffbf) )
+
+ ROM_REGION( 0xa0000, "gfx2", ROMREGION_INVERT )
+ ROM_LOAD( "jb2_ic62", 0x00000, 0x10000, CRC(8548db6c) SHA1(675cd301259d5ed16098a38ac58b27b5ccd91264) ) /* sprites */
+ ROM_LOAD( "jb2_ic61", 0x10000, 0x10000, CRC(37c5923b) SHA1(c83ef45564c56ef62d7019aecbd79dccc671deee) )
+ ROM_LOAD( "jb2_ic60", 0x20000, 0x08000, CRC(662a2f1e) SHA1(1c5e8b1f0623e64faf9cd60f9653fc5957191a9b) )
+ ROM_LOAD( "jb2_ic78", 0x28000, 0x10000, CRC(925865e1) SHA1(457de50bc03e8b949ac7d46ae4188201e87574a8) )
+ ROM_LOAD( "jb2_ic77", 0x38000, 0x10000, CRC(b09695d1) SHA1(e6d315f9befb7b47f42668d573a1102e52d78aea) )
+ ROM_LOAD( "jb2_ic76", 0x48000, 0x08000, CRC(41937743) SHA1(890c832a7cf87e6fe749d4824b02d57e10872bdf) )
+ ROM_LOAD( "jb2_ic93", 0x50000, 0x10000, CRC(f644eeab) SHA1(9d45e9dfb08e8c90b4b10f5dc383fa4732161a81) )
+ ROM_LOAD( "jb2_ic92", 0x60000, 0x10000, CRC(3fbccd33) SHA1(137880a564573db1f9e6de5c730af6709ca301f3) )
+ ROM_LOAD( "jb2_ic91", 0x70000, 0x08000, CRC(d886c014) SHA1(9327c332c98a81451e9e0624344d2601ef06e490) )
+ ROM_LOAD( "jb2_i121", 0x78000, 0x10000, CRC(93df1e4d) SHA1(b100d265b973254ec9cd44b6c32f62b4bac3b732) )
+ ROM_LOAD( "jb2_i120", 0x88000, 0x10000, CRC(7c4e893b) SHA1(eceecb38554157ee24d228a2c722dad750a6a07d) )
+ ROM_LOAD( "jb2_i119", 0x98000, 0x08000, CRC(7e1d58d8) SHA1(d586a018c3ec3e6e6a39992170d324361e03c68a) )
+
+ ROM_REGION( 0x200, "pals", 0 )
+ ROM_LOAD( "jumping-pal16r6.bin", 0x000, 0x104, CRC(12e9a7b8) SHA1(a0ce8b6083c9adfcb4bdbca87f63a01f292525f3) )
+ ROM_LOAD( "jumping-pal20l8.bin", 0x000, 0x144, CRC(76944f81) SHA1(ab78e4e157ffdc13aea5dc360268b2640e60d19c) )
+ ROM_LOAD( "pal16l8a.ic51.bin", 0x000, 0x104, CRC(c1e6cb8f) SHA1(9908e62bb9b806047b7a344bb62334bd696b9fc8) ) // z80 address decoder?
+ROM_END
+
+ROM_START( jumpinga )
+ ROM_REGION( 0xa0000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "6.h4", 0x00000, 0x10000, CRC(3fab6b31) SHA1(57803478949cb62f7eab2ef9be08b13aa2237dbc) )
+ ROM_LOAD16_BYTE( "10.h8", 0x00001, 0x10000, CRC(8c878827) SHA1(4a54a217b7c442305c3ce9298aa36ae225382444) )
+ ROM_LOAD16_BYTE( "seyutu_5.i4", 0x20000, 0x10000, CRC(25f19b71) SHA1(538f9a510cf73581b5ec01befdba7dfb02032c66) )
+ ROM_LOAD16_BYTE( "seyutu_9.i8", 0x20001, 0x10000, CRC(9c94f260) SHA1(aa963acacbf11480d0ddc3b99fc839414970c043) )
+ ROM_LOAD16_BYTE( "4.bin", 0x40000, 0x10000, CRC(00bf8a91) SHA1(973868eef99b1bcfa60e1b22a18946aa3edefad3) ) // 4+3 == b22-03.23
+ ROM_LOAD16_BYTE( "8.bin", 0x40001, 0x10000, CRC(e3d7a844) SHA1(9559b38f2017de0c93ed82ca7dccfb046fff39f9) ) // 8+7 == b22-04.24
+ ROM_LOAD16_BYTE( "3.bin", 0x60000, 0x10000, CRC(a3ab61c6) SHA1(5cf82d1aa1f548fb3c243c625e4ff52c8714bacc) ) // ^
+ ROM_LOAD16_BYTE( "7.bin", 0x60001, 0x10000, CRC(c1c4c701) SHA1(4dd751418ee0f8ae766e2fe47f752d0758d7d682) ) // ^
+ ROM_LOAD16_BYTE( "2.f89", 0x80001, 0x10000, CRC(0810d327) SHA1(fe91ac02e617bde413dc8a20b7cbcaf3e20aeb28) ) /* c-chip substitute */
+
+ ROM_REGION( 0x14000, "audiocpu", 0 )
+ ROM_LOAD( "jb1_cd67", 0x00000, 0x8000, CRC(8527c00e) SHA1(86e3824caca39aca4ca4df63bb4474adacfc4c53) )
+ ROM_CONTINUE( 0x10000, 0x4000 )
+ ROM_CONTINUE( 0x0c000, 0x4000 )
+
+ ROM_REGION( 0x80000, "gfx1", 0 )
+ ROM_LOAD( "17.ic8", 0x00000, 0x10000, CRC(65b76309) SHA1(1e345726e137f4c56d4bf239651c986fd53a16c3) ) /* tiles */
+ ROM_LOAD( "18.ic7", 0x10000, 0x10000, CRC(43a94283) SHA1(d6a05cbc7b996a8e7f1520563f6fada9a59021a4) )
+ ROM_LOAD( "15.ic10", 0x20000, 0x10000, CRC(e61933fb) SHA1(02bc0e1a7a3ce9e15fb83b28ce8fafb0b8d80ebd) )
+ ROM_LOAD( "16.ic9", 0x30000, 0x10000, CRC(ed031eb2) SHA1(905be4d890ff7bb8a4d8ad85b2a11483fb4d67eb) )
+ ROM_LOAD( "13.ic12", 0x40000, 0x10000, CRC(312700ca) SHA1(c79edc9c25f364d0afd79aaa21cfe2fe46044314) )
+ ROM_LOAD( "14.ic11", 0x50000, 0x10000, CRC(de3b0b88) SHA1(14b8871821e4c0abbb9967c5aa282cf4e67884fe) )
+ ROM_LOAD( "11.ic14", 0x60000, 0x10000, CRC(9fdc6c8e) SHA1(ff4e1a98dc982bce2f9d235cac62c7166f477f64) )
+ ROM_LOAD( "12.ic13", 0x70000, 0x10000, CRC(06226492) SHA1(834280ec49e61a0c9c6b6fe2033e1b20bd1bffbf) )
+
+ ROM_REGION( 0xa0000, "gfx2", ROMREGION_INVERT )
+ ROM_LOAD( "jb2_ic62", 0x00000, 0x10000, CRC(8548db6c) SHA1(675cd301259d5ed16098a38ac58b27b5ccd91264) ) /* sprites */
+ ROM_LOAD( "20.bin", 0x10000, 0x10000, CRC(89b3d8ee) SHA1(8491de6e8292e58b9a8696be15827bcb1ea42845) ) // dumped multiple times, always the same
+ ROM_LOAD( "jb2_ic60", 0x20000, 0x08000, CRC(662a2f1e) SHA1(1c5e8b1f0623e64faf9cd60f9653fc5957191a9b) )
+ ROM_LOAD( "jb2_ic78", 0x28000, 0x10000, CRC(925865e1) SHA1(457de50bc03e8b949ac7d46ae4188201e87574a8) )
+ ROM_LOAD( "jb2_ic77", 0x38000, 0x10000, CRC(b09695d1) SHA1(e6d315f9befb7b47f42668d573a1102e52d78aea) )
+ ROM_LOAD( "jb2_ic76", 0x48000, 0x08000, CRC(41937743) SHA1(890c832a7cf87e6fe749d4824b02d57e10872bdf) )
+ ROM_LOAD( "jb2_ic93", 0x50000, 0x10000, CRC(f644eeab) SHA1(9d45e9dfb08e8c90b4b10f5dc383fa4732161a81) )
+ ROM_LOAD( "jb2_ic92", 0x60000, 0x10000, CRC(3fbccd33) SHA1(137880a564573db1f9e6de5c730af6709ca301f3) )
+ ROM_LOAD( "jb2_ic91", 0x70000, 0x08000, CRC(d886c014) SHA1(9327c332c98a81451e9e0624344d2601ef06e490) )
+ ROM_LOAD( "jb2_i121", 0x78000, 0x10000, CRC(93df1e4d) SHA1(b100d265b973254ec9cd44b6c32f62b4bac3b732) )
+ ROM_LOAD( "jb2_i120", 0x88000, 0x10000, CRC(7c4e893b) SHA1(eceecb38554157ee24d228a2c722dad750a6a07d) )
+ ROM_LOAD( "jb2_i119", 0x98000, 0x08000, CRC(7e1d58d8) SHA1(d586a018c3ec3e6e6a39992170d324361e03c68a) )
+
+ ROM_REGION( 0x200, "pals", 0 )
+ ROM_LOAD( "jumping-pal16r6.bin", 0x000, 0x104, CRC(12e9a7b8) SHA1(a0ce8b6083c9adfcb4bdbca87f63a01f292525f3) )
+ ROM_LOAD( "jumping-pal20l8.bin", 0x000, 0x144, CRC(76944f81) SHA1(ab78e4e157ffdc13aea5dc360268b2640e60d19c) )
+ ROM_LOAD( "pal16l8a.ic51.bin", 0x000, 0x104, CRC(c1e6cb8f) SHA1(9908e62bb9b806047b7a344bb62334bd696b9fc8) ) // z80 address decoder?
+ROM_END
+
+/* red 'Imnoe' PCB */
+ROM_START( jumpingi )
+ ROM_REGION( 0xa0000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "05.IC3", 0x00000, 0x20000, CRC(69ac4af4) SHA1(39055573e412e2591f7a68f9fee5919528529544) )
+ ROM_LOAD16_BYTE( "03.IC6", 0x00001, 0x20000, CRC(38975cdc) SHA1(23c02a4574a95904805d5f458c06c77c14d11c14) )
+ ROM_LOAD16_BYTE( "06.IC2", 0x40000, 0x20000, CRC(3ebb0fb8) SHA1(1b41b305623d121255eb70cb992e4d9da13abd82) ) // b22-03.23
+ ROM_LOAD16_BYTE( "04.IC5", 0x40001, 0x20000, CRC(91625e7f) SHA1(765afd973d9b82bb496b04beca284bf2769d6e6f) ) // b22-04.24
+ ROM_LOAD16_BYTE( "02", 0x80001, 0x10000, CRC(0810d327) SHA1(fe91ac02e617bde413dc8a20b7cbcaf3e20aeb28) ) /* c-chip substitute */
+
+ ROM_REGION( 0x14000, "audiocpu", 0 )
+ ROM_LOAD( "01.IC53", 0x00000, 0x8000, CRC(8527c00e) SHA1(86e3824caca39aca4ca4df63bb4474adacfc4c53) )
+ ROM_CONTINUE( 0x10000, 0x4000 )
+ ROM_CONTINUE( 0x0c000, 0x4000 )
+
+ ROM_REGION( 0x80000, "gfx1", 0 )
+ ROM_LOAD( "13.IC8", 0x00000, 0x10000, CRC(65b76309) SHA1(1e345726e137f4c56d4bf239651c986fd53a16c3) ) /* tiles */
+ ROM_LOAD( "14.IC7", 0x10000, 0x10000, CRC(43a94283) SHA1(d6a05cbc7b996a8e7f1520563f6fada9a59021a4) )
+ ROM_LOAD( "11.IC10", 0x20000, 0x10000, CRC(e61933fb) SHA1(02bc0e1a7a3ce9e15fb83b28ce8fafb0b8d80ebd) )
+ ROM_LOAD( "12.IC9", 0x30000, 0x10000, CRC(ed031eb2) SHA1(905be4d890ff7bb8a4d8ad85b2a11483fb4d67eb) )
+ ROM_LOAD( "09.IC12", 0x40000, 0x10000, CRC(312700ca) SHA1(c79edc9c25f364d0afd79aaa21cfe2fe46044314) )
+ ROM_LOAD( "10.IC11", 0x50000, 0x10000, CRC(de3b0b88) SHA1(14b8871821e4c0abbb9967c5aa282cf4e67884fe) )
+ ROM_LOAD( "07.IC14", 0x60000, 0x10000, CRC(9fdc6c8e) SHA1(ff4e1a98dc982bce2f9d235cac62c7166f477f64) )
+ ROM_LOAD( "08.IC13", 0x70000, 0x10000, CRC(06226492) SHA1(834280ec49e61a0c9c6b6fe2033e1b20bd1bffbf) )
+
+ ROM_REGION( 0xa0000, "gfx2", ROMREGION_INVERT )
+ ROM_LOAD( "15.IC62", 0x00000, 0x10000, CRC(8548db6c) SHA1(675cd301259d5ed16098a38ac58b27b5ccd91264) ) /* sprites */
+ ROM_LOAD( "19.IC61", 0x10000, 0x10000, CRC(89b3d8ee) SHA1(8491de6e8292e58b9a8696be15827bcb1ea42845) )
+ ROM_LOAD( "23.IC60", 0x20000, 0x08000, CRC(662a2f1e) SHA1(1c5e8b1f0623e64faf9cd60f9653fc5957191a9b) )
+ ROM_LOAD( "16.IC78", 0x28000, 0x10000, CRC(925865e1) SHA1(457de50bc03e8b949ac7d46ae4188201e87574a8) )
+ ROM_LOAD( "20.IC77", 0x38000, 0x10000, CRC(b09695d1) SHA1(e6d315f9befb7b47f42668d573a1102e52d78aea) )
+ ROM_LOAD( "24.IC76", 0x48000, 0x08000, CRC(41937743) SHA1(890c832a7cf87e6fe749d4824b02d57e10872bdf) )
+ ROM_LOAD( "17.IC93", 0x50000, 0x10000, CRC(f644eeab) SHA1(9d45e9dfb08e8c90b4b10f5dc383fa4732161a81) )
+ ROM_LOAD( "21.IC92", 0x60000, 0x10000, CRC(16e1b0ff) SHA1(1467a317d07a447d01113e6b6b9f5aca30cb0dcb) )
+ ROM_LOAD( "25.IC91", 0x70000, 0x08000, CRC(d886c014) SHA1(9327c332c98a81451e9e0624344d2601ef06e490) )
+ ROM_LOAD( "18.IC121", 0x78000, 0x10000, CRC(93df1e4d) SHA1(b100d265b973254ec9cd44b6c32f62b4bac3b732) )
+ ROM_LOAD( "22.IC120", 0x88000, 0x10000, CRC(7c4e893b) SHA1(eceecb38554157ee24d228a2c722dad750a6a07d) )
+ ROM_LOAD( "26.IC119", 0x98000, 0x08000, CRC(7e1d58d8) SHA1(d586a018c3ec3e6e6a39992170d324361e03c68a) )
+
+ ROM_REGION( 0x200, "pals", 0 )
+ ROM_LOAD( "JP2.IC56", 0x000, 0x104, CRC(12e9a7b8) SHA1(a0ce8b6083c9adfcb4bdbca87f63a01f292525f3) ) // PAL16R6A-2CN
+ ROM_LOAD( "JP1.IC13", 0x000, 0x144, CRC(76944f81) SHA1(ab78e4e157ffdc13aea5dc360268b2640e60d19c) ) // PAL20L8A-2CNS
+ ROM_LOAD( "JP3.IC51", 0x000, 0x104, CRC(c1e6cb8f) SHA1(9908e62bb9b806047b7a344bb62334bd696b9fc8) ) // PAL16L8A-2CN z80 address decoder?
+ROM_END
+
+DRIVER_INIT_MEMBER(rbisland_state,rbisland)
+{
+ UINT8 *ROM = memregion("audiocpu")->base();
+
+ membank("bank1")->configure_entries(0, 4, &ROM[0xc000], 0x4000);
+
+ rbisland_cchip_init(0);
+}
+
+DRIVER_INIT_MEMBER(rbisland_state,rbislande)
+{
+ UINT8 *ROM = memregion("audiocpu")->base();
+
+ membank("bank1")->configure_entries(0, 4, &ROM[0xc000], 0x4000);
+
+ rbisland_cchip_init(1);
+}
+
+DRIVER_INIT_MEMBER(rbisland_state,jumping)
+{
+ m_jumping_latch = 0;
+ save_item(NAME(m_jumping_latch));
+}
+
+
+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 )
diff --git a/src/mame/drivers/rbmk.c b/src/mame/drivers/rbmk.c
index 43117d672e6..97234424477 100644
--- a/src/mame/drivers/rbmk.c
+++ b/src/mame/drivers/rbmk.c
@@ -605,4 +605,4 @@ ROM_START( rbmk )
ROM_END
-GAME( 1998, rbmk, 0, rbmk, rbmk, driver_device,0, ROT0, "GMS", "Real Battle Mahjong King", GAME_NOT_WORKING )
+GAME( 1998, rbmk, 0, rbmk, rbmk, driver_device,0, ROT0, "GMS", "Real Battle Mahjong King", MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/rc759.c b/src/mame/drivers/rc759.c
index 175ea21037c..aa69efb9dd2 100644
--- a/src/mess/drivers/rc759.c
+++ b/src/mame/drivers/rc759.c
@@ -472,7 +472,7 @@ static ADDRESS_MAP_START( rc759_io, AS_IO, 16, rc759_state )
AM_RANGE(0x056, 0x057) AM_NOP // in reality, access to sound and rtc is a bit more involved
AM_RANGE(0x05a, 0x05b) AM_DEVWRITE8("snd", sn76489a_device, write, 0x00ff)
AM_RANGE(0x05c, 0x05d) AM_READWRITE8(rtc_r, rtc_w, 0x00ff)
-// AM_RANGE(0x060, 0x06f) AM_WRITE8(crt_control_w, 0x00ff)
+// AM_RANGE(0x060, 0x06f) AM_WRITE8(crt_control_w, 0x00ff)
AM_RANGE(0x070, 0x077) AM_MIRROR(0x08) AM_DEVREADWRITE8("ppi", i8255_device, read, write, 0x00ff)
AM_RANGE(0x080, 0x0ff) AM_READWRITE8(nvram_r, nvram_w, 0x00ff)
// AM_RANGE(0x100, 0x101) net
@@ -487,12 +487,12 @@ static ADDRESS_MAP_START( rc759_io, AS_IO, 16, rc759_state )
// AM_RANGE(0x28d, 0x28d) external printer control
AM_RANGE(0x28e, 0x28f) AM_READWRITE8(floppy_ack_r, floppy_reserve_w, 0x00ff)
AM_RANGE(0x290, 0x291) AM_WRITE8(floppy_release_w, 0x00ff)
-// AM_RANGE(0x292, 0x293) AM_READWRITE8(printer_ack_r, printer_reserve_w, 0x00ff)
-// AM_RANGE(0x294, 0x295) AM_WRITE8(printer_release_w, 0x00ff)
+// AM_RANGE(0x292, 0x293) AM_READWRITE8(printer_ack_r, printer_reserve_w, 0x00ff)
+// AM_RANGE(0x294, 0x295) AM_WRITE8(printer_release_w, 0x00ff)
AM_RANGE(0x300, 0x30f) AM_DEVREADWRITE8("isbx", isbx_slot_device, mcs0_r, mcs0_w, 0x00ff)
AM_RANGE(0x310, 0x31f) AM_DEVREADWRITE8("isbx", isbx_slot_device, mcs1_r, mcs1_w, 0x00ff)
-// AM_RANGE(0x320, 0x321) isbx dma ack
-// AM_RANGE(0x330, 0x331) isbx tc
+// AM_RANGE(0x320, 0x321) isbx dma ack
+// AM_RANGE(0x330, 0x331) isbx tc
ADDRESS_MAP_END
@@ -554,8 +554,8 @@ static MACHINE_CONFIG_START( rc759, rc759_state )
MCFG_I82730_SINT_HANDLER(DEVWRITELINE("pic", pic8259_device, ir4_w))
// keyboard
- MCFG_DEVICE_ADD("keyb", GENERIC_KEYBOARD, 0)
- MCFG_GENERIC_KEYBOARD_CB(WRITE8(rc759_state, keyb_put))
+ MCFG_DEVICE_ADD("keyb", GENERIC_KEYBOARD, 0)
+ MCFG_GENERIC_KEYBOARD_CB(WRITE8(rc759_state, keyb_put))
// cassette
MCFG_CASSETTE_ADD("cas")
@@ -584,8 +584,8 @@ static MACHINE_CONFIG_START( rc759, rc759_state )
// floppy disk controller
MCFG_WD2797_ADD("fdc", 1000000)
-// MCFG_WD_FDC_INTRQ_CALLBACK(DEVWRITELINE("pic", pic8259_device, ir0_w))
-// MCFG_WD_FDC_DRQ_CALLBACK(DEVWRITELINE("maincpu", i80186_cpu_device, drq1_w))
+// MCFG_WD_FDC_INTRQ_CALLBACK(DEVWRITELINE("pic", pic8259_device, ir0_w))
+// MCFG_WD_FDC_DRQ_CALLBACK(DEVWRITELINE("maincpu", i80186_cpu_device, drq1_w))
// floppy drives
MCFG_FLOPPY_DRIVE_ADD("fdc:0", rc759_floppies, "hd", floppy_image_device::default_floppy_formats)
@@ -614,4 +614,4 @@ ROM_END
// SYSTEM DRIVERS
//**************************************************************************
-COMP( 1984, rc759, 0, 0, rc759, rc759, driver_device, 0, "Regnecentralen", "RC759 Piccoline", GAME_NOT_WORKING | GAME_NO_SOUND )
+COMP( 1984, rc759, 0, 0, rc759, rc759, driver_device, 0, "Regnecentralen", "RC759 Piccoline", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/rcorsair.c b/src/mame/drivers/rcorsair.c
index 6d8cf8a880f..5616cc2f62a 100644
--- a/src/mame/drivers/rcorsair.c
+++ b/src/mame/drivers/rcorsair.c
@@ -177,4 +177,4 @@ ROM_START( rcorsair )
ROM_END
-GAME( 1984, rcorsair, 0, rcorsair, inports, driver_device, 0, ROT90, "Nakasawa", "Red Corsair", GAME_IS_SKELETON )
+GAME( 1984, rcorsair, 0, rcorsair, inports, driver_device, 0, ROT90, "Nakasawa", "Red Corsair", MACHINE_IS_SKELETON )
diff --git a/src/mame/drivers/rd100.c b/src/mame/drivers/rd100.c
new file mode 100644
index 00000000000..12f9ac627b2
--- /dev/null
+++ b/src/mame/drivers/rd100.c
@@ -0,0 +1,115 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+/********************************************************************************
+
+ Data RD100
+
+ 2015-10-02 Skeleton [Robbbert]
+
+ Nothing is known about this system, except that it uses a 6809 CPU.
+ No manuals, schematic or circuit description have been found.
+
+*********************************************************************************/
+
+#include "emu.h"
+#include "cpu/m6809/m6809.h"
+
+
+
+class rd100_state : public driver_device
+{
+public:
+ rd100_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ { }
+
+ DECLARE_DRIVER_INIT(rd100);
+ DECLARE_MACHINE_RESET(rd100);
+ UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+
+private:
+ required_device<cpu_device> m_maincpu;
+};
+
+
+static ADDRESS_MAP_START( rd100_mem, AS_PROGRAM, 8, rd100_state )
+ ADDRESS_MAP_UNMAP_HIGH
+ AM_RANGE(0x0000, 0x87ff) AM_RAM
+ AM_RANGE(0x8800, 0xffff) AM_ROM AM_REGION("roms", 0x800)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( rd100_io, AS_IO, 8, rd100_state )
+ADDRESS_MAP_END
+
+/* Input ports */
+static INPUT_PORTS_START( rd100 )
+INPUT_PORTS_END
+
+UINT32 rd100_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
+{
+// for (int y = 0; y < 32*8; y++)
+// {
+// offs_t offset = (y / 8) * 128;
+
+// for (int sx = 0; sx < 64; sx++)
+// {
+// UINT8 code = m_video_ram[offset++];
+// UINT8 attr = m_video_ram[offset++];
+
+// offs_t char_offs = ((code & 0x7f) << 3) | (y & 0x07);
+// if (BIT(code, 7)) char_offs = ((code & 0x7f) << 3) | ((y >> 1) & 0x07);
+
+// UINT8 data = m_char_rom->base()[char_offs];
+
+// rgb_t fg = m_palette->pen_color(attr & 0x07);
+// rgb_t bg = m_palette->pen_color((attr >> 3) & 0x07);
+
+// for (int x = 0; x < 6; x++)
+// {
+// bitmap.pix32(y, (sx * 6) + x) = BIT(data, 7) ? fg : bg;
+
+// data <<= 1;
+// }
+// }
+// }
+
+ return 0;
+}
+
+DRIVER_INIT_MEMBER( rd100_state, rd100 )
+{
+}
+
+MACHINE_RESET_MEMBER( rd100_state, rd100 )
+{
+}
+
+static MACHINE_CONFIG_START( rd100, rd100_state )
+ // basic machine hardware
+ MCFG_CPU_ADD("maincpu",M6809E, XTAL_4MHz) // freq unknown
+ MCFG_CPU_PROGRAM_MAP(rd100_mem)
+ MCFG_CPU_IO_MAP(rd100_io)
+
+ MCFG_MACHINE_RESET_OVERRIDE(rd100_state, rd100)
+
+ // video hardware
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(250))
+ MCFG_SCREEN_UPDATE_DRIVER(rd100_state, screen_update)
+ MCFG_SCREEN_SIZE(64*6, 32*8)
+ MCFG_SCREEN_VISIBLE_AREA(0, 64*6-1, 0, 32*8-1)
+ MCFG_PALETTE_ADD_MONOCHROME_GREEN("palette")
+ //MCFG_GFXDECODE_ADD("gfxdecode", "palette", rd100)
+MACHINE_CONFIG_END
+
+ROM_START( rd100 )
+ ROM_REGION( 0x8000, "roms", 0 )
+ ROM_LOAD( "pak3-01.bin", 0x0000, 0x8000, CRC(cf5bbf01) SHA1(0673f4048d700b84c30781af23fbeabe0b994306) )
+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 )
diff --git a/src/mess/drivers/rd110.c b/src/mame/drivers/rd110.c
index b897513665f..2be9e6d7c11 100644
--- a/src/mess/drivers/rd110.c
+++ b/src/mame/drivers/rd110.c
@@ -275,4 +275,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", GAME_NOT_WORKING|GAME_NO_SOUND )
+CONS( 1988, d110, 0, 0, d110, d110, driver_device, 0, "Roland", "D110", MACHINE_NOT_WORKING|MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/re900.c b/src/mame/drivers/re900.c
index 05978293d3c..d959a351444 100644
--- a/src/mame/drivers/re900.c
+++ b/src/mame/drivers/re900.c
@@ -449,5 +449,5 @@ DRIVER_INIT_MEMBER(re900_state,re900)
*************************/
/* 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", GAME_SUPPORTS_SAVE, layout_re900)
-GAME ( 1994, bs94 , 0, bs94, bs94 , driver_device, 0, ROT0, "Entretenimientos GEMINIS", "Buena Suerte '94", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/realbrk.c b/src/mame/drivers/realbrk.c
index 5f1d4344a16..759493227f9 100644
--- a/src/mame/drivers/realbrk.c
+++ b/src/mame/drivers/realbrk.c
@@ -1275,13 +1275,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)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+GAME( 1998, pkgnsh, 0, pkgnsh, pkgnsh, driver_device, 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)", GAME_IMPERFECT_GRAPHICS | GAME_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, realbrk, 0, realbrk, realbrk, driver_device, 0, ROT0, "Nakanihon", "Billiard Academy Real Break (Europe)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1998, realbrko, realbrk, realbrk, realbrk, driver_device, 0, ROT0, "Nakanihon", "Billiard Academy Real Break (Europe, older)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1998, realbrkj, realbrk, realbrk, realbrk, driver_device, 0, ROT0, "Nakanihon", "Billiard Academy Real Break (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1998, realbrkk, realbrk, realbrk, realbrk, driver_device, 0, ROT0, "Nakanihon", "Billiard Academy Real Break (Korea)", GAME_IMPERFECT_GRAPHICS | GAME_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( 2004, dai2kaku, 0, dai2kaku, dai2kaku, driver_device, 0, ROT0, "SystemBit", "Dai-Dai-Kakumei (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_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 )
diff --git a/src/mame/drivers/redalert.c b/src/mame/drivers/redalert.c
index 33a3ff6667f..469e3253fc0 100644
--- a/src/mame/drivers/redalert.c
+++ b/src/mame/drivers/redalert.c
@@ -538,7 +538,7 @@ ROM_END
*
*************************************/
-GAME( 1981, panther, 0, panther, panther, driver_device, 0, ROT270, "Irem", "Panther", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1981, redalert, 0, redalert, redalert, driver_device, 0, ROT270, "Irem (GDI license)", "Red Alert", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1981, ww3, redalert, ww3, redalert, driver_device, 0, ROT270, "Irem", "WW III", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1981, demoneye, 0, demoneye, demoneye, driver_device, 0, ROT270, "Irem", "Demoneye-X", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/redclash.c b/src/mame/drivers/redclash.c
index 23722c1e9f8..f2d64bccf56 100644
--- a/src/mame/drivers/redclash.c
+++ b/src/mame/drivers/redclash.c
@@ -584,9 +584,9 @@ DRIVER_INIT_MEMBER(ladybug_state,redclash)
}
-GAME( 1980, zerohour, 0, zerohour, zerohour, ladybug_state, redclash, ROT270, "Universal", "Zero Hour (set 1)", GAME_NO_SOUND | GAME_WRONG_COLORS | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1980, zerohoura, zerohour, zerohour, zerohour, ladybug_state, redclash, ROT270, "Universal", "Zero Hour (set 2)", GAME_NO_SOUND | GAME_WRONG_COLORS | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1980, zerohouri, zerohour, zerohour, zerohour, ladybug_state, redclash, ROT270, "bootleg (Inder SA)", "Zero Hour (Inder)", GAME_NO_SOUND | GAME_WRONG_COLORS | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1981, redclash, 0, redclash, redclash, ladybug_state, redclash, ROT270, "Tehkan", "Red Clash (set 1)", GAME_NO_SOUND | GAME_WRONG_COLORS | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1981, redclasha, redclash, redclash, redclash, ladybug_state, redclash, ROT270, "Tehkan", "Red Clash (set 2)", GAME_NO_SOUND | GAME_WRONG_COLORS | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1981, redclashk, redclash, redclash, redclash, ladybug_state, redclash, ROT270, "Tehkan (Kaneko license)", "Red Clash (Kaneko)", GAME_NO_SOUND | GAME_WRONG_COLORS | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+GAME( 1980, zerohour, 0, zerohour, zerohour, ladybug_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, ladybug_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, ladybug_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, ladybug_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, ladybug_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, ladybug_state, redclash, ROT270, "Tehkan (Kaneko license)", "Red Clash (Kaneko)", MACHINE_NO_SOUND | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/renegade.c b/src/mame/drivers/renegade.c
index b81148e7a19..ae0fe66898d 100644
--- a/src/mame/drivers/renegade.c
+++ b/src/mame/drivers/renegade.c
@@ -1013,6 +1013,6 @@ ROM_END
-GAME( 1986, renegade, 0, renegade, renegade, renegade_state, renegade, ROT0, "Technos Japan (Taito America license)", "Renegade (US)", GAME_SUPPORTS_SAVE )
-GAME( 1986, kuniokun, renegade, renegade, renegade, renegade_state, kuniokun, ROT0, "Technos Japan", "Nekketsu Kouha Kunio-kun (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1986, kuniokunb, renegade, kuniokunb, renegade, renegade_state, kuniokunb, ROT0, "bootleg", "Nekketsu Kouha Kunio-kun (Japan bootleg)", GAME_SUPPORTS_SAVE )
+GAME( 1986, renegade, 0, renegade, renegade, renegade_state, renegade, ROT0, "Technos Japan (Taito America license)", "Renegade (US)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, kuniokun, renegade, renegade, renegade, renegade_state, kuniokun, ROT0, "Technos Japan", "Nekketsu Kouha Kunio-kun (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, kuniokunb, renegade, kuniokunb, renegade, renegade_state, kuniokunb, ROT0, "bootleg", "Nekketsu Kouha Kunio-kun (Japan bootleg)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/replicator.c b/src/mame/drivers/replicator.c
new file mode 100644
index 00000000000..032e2246f8d
--- /dev/null
+++ b/src/mame/drivers/replicator.c
@@ -0,0 +1,727 @@
+// license:GPL-2.0+
+// copyright-holders:Felipe Sanches
+/*
+ Replicator 1 desktop 3d printer
+
+ driver by Felipe Correa da Silva Sanches <fsanches@metamaquina.com.br>
+
+ Changelog:
+
+ 2013 DEC 28 [Felipe Sanches]:
+ * LCD now works. We can see the firmware boot screen :-)
+
+ 2013 DEC 24 [Felipe Sanches]:
+ * declaration of internal EEPROM
+
+ 2013 DEC 18 [Felipe Sanches]:
+ * Initial driver skeleton
+*/
+
+// TODO:
+// * figure out what's wrong with the keypad inputs (interface seems to be blocked in the first screen)
+// * fix avr8 timer/counter #0 (toggle OC0B) and #5 (overflow interrupt "Microsecond timer") so that we get the buzzer to work
+// * figure-out correct size of internal EEPROM
+// * emulate an SD Card
+// * implement avr8 WDR (watchdog reset) opcode
+
+#include "emu.h"
+#include "cpu/avr8/avr8.h"
+#include "video/hd44780.h"
+#include "rendlay.h"
+#include "debugger.h"
+#include "sound/dac.h"
+
+#define MASTER_CLOCK 16000000
+#define LOG_PORTS 0
+
+//Port A bits:
+//Bit 0 unused
+//Bit 1 unused
+#define A_AXIS_DIR (1 << 2)
+#define A_AXIS_STEP (1 << 3)
+#define A_AXIS_EN (1 << 4)
+#define A_AXIS_POT (1 << 5)
+#define B_AXIS_DIR (1 << 6)
+#define B_AXIS_STEP (1 << 7)
+
+//Port B bits:
+#define SD_CS (1 << 0)
+#define SCK_1280 (1 << 1)
+#define MOSI_1280 (1 << 2)
+#define MISO_1280 (1 << 3)
+#define EX2_PWR_CHECK (1 << 4)
+#define EX2_HEAT (1 << 5)
+#define EX2_FAN (1 << 6)
+#define BLINK (1 << 7)
+
+//Port C bits:
+#define EX2_1280 (1 << 0)
+#define EX1_1280 (1 << 1)
+#define LCD_CLK (1 << 2)
+#define LCD_DATA (1 << 3)
+#define LCD_STROBE (1 << 4)
+#define RLED (1 << 5)
+#define GLED (1 << 6)
+#define DETECT (1 << 7)
+
+//Port D bits:
+#define PORTD_SCL (1 << 0)
+#define PORTD_SDA (1 << 1)
+#define EX_RX_1280 (1 << 2)
+#define EX_TX_1280 (1 << 3)
+//Bit 4 unused
+//Bit 5 unused
+//Bit 6 unused
+//Bit 7 unused
+
+//Port E bits:
+#define RX_1280 (1 << 0)
+#define TX_1280 (1 << 1)
+#define THERMO_SCK (1 << 2)
+#define THERMO_CS1 (1 << 3)
+#define THERMO_CS2 (1 << 4)
+#define THERMO_DO (1 << 5)
+//Bit 6 unused
+//Bit 7 unused
+
+//Port F bits:
+#define X_AXIS_DIR (1 << 0)
+#define X_AXIS_STEP (1 << 1)
+#define X_AXIS_EN (1 << 2)
+#define X_AXIS_POT (1 << 3)
+#define Y_AXIS_DIR (1 << 4)
+#define Y_AXIS_STEP (1 << 5)
+#define Y_AXIS_EN (1 << 6)
+#define Y_AXIS_POT (1 << 7)
+
+//Port G bits:
+#define EX4_1280 (1 << 0)
+#define EX3_1280 (1 << 1)
+#define B_AXIS_EN (1 << 2)
+//Bit 3 unused
+#define CUTOFF_SR_CHECK (1 << 4)
+#define BUZZ (1 << 5)
+//Bit 6 unused
+//Bit 7 unused
+
+//Port H bits:
+#define CUTOFF_TEST (1 << 0)
+#define CUTOFF_RESET (1 << 1)
+#define EX1_PWR_CHECK (1 << 2)
+#define EX1_HEAT (1 << 3)
+#define EX1_FAN (1 << 4)
+#define SD_WP (1 << 5)
+#define SD_CD (1 << 6)
+//Bit 7 unused
+
+//Port J bits:
+#define BUTTON_CENTER (1 << 0)
+#define BUTTON_RIGHT (1 << 1)
+#define BUTTON_LEFT (1 << 2)
+#define BUTTON_DOWN (1 << 3)
+#define BUTTON_UP (1 << 4)
+#define POTS_SCL (1 << 5)
+#define B_AXIS_POT (1 << 6)
+//Bit 7 unused
+
+//Port K bits:
+#define Z_AXIS_DIR (1 << 0)
+#define Z_AXIS_STEP (1 << 1)
+#define Z_AXIS_EN (1 << 2)
+#define Z_AXIS_POT (1 << 3)
+#define EX7_1280 (1 << 4)
+#define EX6_1280 (1 << 5)
+#define EX5_1280 (1 << 6)
+#define HBP_THERM (1 << 7)
+
+//Port L bits:
+#define X_MIN (1 << 0)
+#define X_MAX (1 << 1)
+#define Y_MIN (1 << 2)
+#define Y_MAX (1 << 3)
+#define HBP (1 << 4)
+#define EXTRA_FET (1 << 5)
+#define Z_MIN (1 << 6)
+#define Z_MAX (1 << 7)
+
+/****************************************************\
+* I/O devices *
+\****************************************************/
+
+class replicator_state : public driver_device
+{
+public:
+ replicator_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
+ m_lcdc(*this, "hd44780"),
+ m_dac(*this, "dac")
+ {
+ }
+
+ virtual void machine_start();
+
+ UINT8 m_port_a;
+ UINT8 m_port_b;
+ UINT8 m_port_c;
+ UINT8 m_port_d;
+ UINT8 m_port_e;
+ UINT8 m_port_f;
+ UINT8 m_port_g;
+ UINT8 m_port_h;
+ UINT8 m_port_j;
+ UINT8 m_port_k;
+ UINT8 m_port_l;
+
+ UINT8 shift_register_value;
+
+ required_device<avr8_device> m_maincpu;
+ required_device<hd44780_device> m_lcdc;
+ required_device<dac_device> m_dac;
+
+ DECLARE_READ8_MEMBER(port_r);
+ DECLARE_WRITE8_MEMBER(port_w);
+ DECLARE_DRIVER_INIT(replicator);
+ virtual void machine_reset();
+ DECLARE_PALETTE_INIT(replicator);
+};
+
+void replicator_state::machine_start()
+{
+}
+
+READ8_MEMBER(replicator_state::port_r)
+{
+ switch( offset )
+ {
+ case AVR8_IO_PORTA:
+ {
+#if LOG_PORTS
+ printf("[%08X] Port A READ (A-axis signals + B-axis STEP&DIR)\n", m_maincpu->m_shifted_pc);
+#endif
+ return 0x00;
+ }
+ case AVR8_IO_PORTB:
+ {
+#if LOG_PORTS
+ printf("[%08X] Port B READ (SD-CS; 1280-MISO/MOSI/SCK; EX2-FAN/HEAT/PWR-CHECK; BLINK)\n", m_maincpu->m_shifted_pc);
+#endif
+ return 0x00;
+ }
+ case AVR8_IO_PORTC:
+ {
+#if LOG_PORTS
+ printf("[%08X] Port C READ (1280-EX1/EX2; LCD-signals; R&G-LED; DETECT)\n", m_maincpu->m_shifted_pc);
+#endif
+ return DETECT; //indicated that the Interface board is present.
+ }
+ case AVR8_IO_PORTD:
+ {
+#if LOG_PORTS
+ printf("[%08X] Port D READ (SDA/SCL; 1280-EX-TX/RX)\n", m_maincpu->m_shifted_pc);
+#endif
+ return 0x00;
+ }
+ case AVR8_IO_PORTE:
+ {
+#if LOG_PORTS
+ printf("[%08X] Port E READ (1280-TX/RX; THERMO-signals)\n", m_maincpu->m_shifted_pc);
+#endif
+ return 0x00;
+ }
+ case AVR8_IO_PORTF:
+ {
+#if LOG_PORTS
+ printf("[%08X] Port F READ (X-axis & Y-axis signals)\n", m_maincpu->m_shifted_pc);
+#endif
+ return 0x00;
+ }
+ case AVR8_IO_PORTG:
+ {
+#if LOG_PORTS
+ printf("[%08X] Port G READ (BUZZ; Cutoff-sr-check; B-axis EN; 1280-EX3/EX4)\n", m_maincpu->m_shifted_pc);
+#endif
+ return 0x00;
+ }
+ case AVR8_IO_PORTH:
+ {
+#if LOG_PORTS
+ printf("[%08X] Port H READ (cuttoff-text/reset; EX1-FAN/HEAT/PWR-CHECK; SD-CD/SD-WP)\n", m_maincpu->m_shifted_pc);
+#endif
+ return 0x00;
+ }
+ case AVR8_IO_PORTJ:
+ {
+#if LOG_PORTS
+ printf("[%08X] Port J READ (Interface buttons; POTS-SCL; B-axis-POT)\n", m_maincpu->m_shifted_pc);
+#endif
+ return ioport("keypad")->read();
+ }
+ case AVR8_IO_PORTK:
+ {
+#if LOG_PORTS
+ printf("[%08X] Port K READ (Z-axis signals; HBP-THERM; 1280-EX5/6/7)\n", m_maincpu->m_shifted_pc);
+#endif
+ return 0x00;
+ }
+ case AVR8_IO_PORTL:
+ {
+#if LOG_PORTS
+ printf("[%08X] Port L READ (HBP; EXTRA-FET; X-MIN/MAX; Y-MIN/MAX; Z-MIN/MAX)\n", m_maincpu->m_shifted_pc);
+#endif
+ return 0x00;
+ }
+ }
+ return 0;
+}
+
+WRITE8_MEMBER(replicator_state::port_w)
+{
+ switch( offset )
+ {
+ case AVR8_IO_PORTA:
+ {
+ if (data == m_port_a) break;
+#if LOG_PORTS
+ UINT8 old_port_a = m_port_a;
+ UINT8 changed = data ^ old_port_a;
+
+ printf("[%08X] ", m_maincpu->m_shifted_pc);
+ if(changed & A_AXIS_DIR) printf("[A] A_AXIS_DIR: %s\n", data & A_AXIS_DIR ? "HIGH" : "LOW");
+ if(changed & A_AXIS_STEP) printf("[A] A_AXIS_STEP: %s\n", data & A_AXIS_STEP ? "HIGH" : "LOW");
+ if(changed & A_AXIS_EN) printf("[A] A_AXIS_EN: %s\n", data & A_AXIS_EN ? "HIGH" : "LOW");
+ if(changed & A_AXIS_POT) printf("[A] A_AXIS_POT: %s\n", data & A_AXIS_POT ? "HIGH" : "LOW");
+ if(changed & B_AXIS_DIR) printf("[A] B_AXIS_DIR: %s\n", data & B_AXIS_DIR ? "HIGH" : "LOW");
+ if(changed & B_AXIS_STEP) printf("[A] B_AXIS_STEP: %s\n", data & B_AXIS_STEP ? "HIGH" : "LOW");
+#endif
+ m_port_a = data;
+ break;
+ }
+ case AVR8_IO_PORTB:
+ {
+ if (data == m_port_b) break;
+#if LOG_PORTS
+ UINT8 old_port_b = m_port_b;
+ UINT8 changed = data ^ old_port_b;
+
+ printf("[%08X] ", m_maincpu->m_shifted_pc);
+ if(changed & SD_CS) printf("[B] SD Card Chip Select: %s\n", data & SD_CS ? "HIGH" : "LOW");
+ if(changed & SCK_1280) printf("[B] 1280-SCK: %s\n", data & SCK_1280 ? "HIGH" : "LOW");
+ if(changed & MOSI_1280) printf("[B] 1280-MOSI: %s\n", data & MOSI_1280 ? "HIGH" : "LOW");
+ if(changed & MISO_1280) printf("[B] 1280-MISO: %s\n", data & MISO_1280 ? "HIGH" : "LOW");
+ if(changed & EX2_PWR_CHECK) printf("[B] EX2-PWR-CHECK: %s\n", data & EX2_PWR_CHECK ? "HIGH" : "LOW");
+ if(changed & EX2_HEAT) printf("[B] EX2_HEAT: %s\n", data & EX2_HEAT ? "HIGH" : "LOW");
+ if(changed & EX2_FAN) printf("[B] EX2_FAN: %s\n", data & EX2_FAN ? "HIGH" : "LOW");
+ if(changed & BLINK) printf("[B] BLINK: %s\n", data & BLINK ? "HIGH" : "LOW");
+#endif
+ m_port_b = data;
+ break;
+ }
+ case AVR8_IO_PORTC:
+ {
+ if (data == m_port_c) break;
+
+ UINT8 old_port_c = m_port_c;
+ UINT8 changed = data ^ old_port_c;
+#if LOG_PORTS
+ printf("[%08X] ", m_maincpu->m_shifted_pc);
+ if(changed & EX2_1280) printf("[C] EX2_1280: %s\n", data & EX2_1280 ? "HIGH" : "LOW");
+ if(changed & EX1_1280) printf("[C] EX1_1280: %s\n", data & EX1_1280 ? "HIGH" : "LOW");
+ if(changed & LCD_CLK) printf("[C] LCD_CLK: %s\n", data & LCD_CLK ? "HIGH" : "LOW");
+ if(changed & LCD_DATA) printf("[C] LCD_DATA: %s\n", data & LCD_DATA ? "HIGH" : "LOW");
+ if(changed & LCD_STROBE) printf("[C] LCD_STROBE: %s\n", data & LCD_STROBE ? "HIGH" : "LOW");
+ if(changed & RLED) printf("[C] RLED: %s\n", data & RLED ? "HIGH" : "LOW");
+ if(changed & GLED) printf("[C] GLED: %s\n", data & GLED ? "HIGH" : "LOW");
+ if(changed & DETECT) printf("[C] DETECT: %s\n", data & DETECT ? "HIGH" : "LOW");
+#endif
+ if (changed & LCD_CLK){
+ /* The LCD is interfaced by an 8-bit shift register (74HC4094). */
+ if (data & LCD_CLK){//CLK positive edge
+ shift_register_value = (shift_register_value << 1) | ((data & LCD_DATA) >> 3);
+ //printf("[%08X] ", m_maincpu->m_shifted_pc);
+ //printf("[C] LCD CLK positive edge. shift_register=0x%02X\n", shift_register_value);
+ }
+ }
+
+ if(changed & LCD_STROBE){
+ if (data & LCD_STROBE){ //STROBE positive edge
+ bool RS = (shift_register_value >> 1) & 1;
+ bool RW = (shift_register_value >> 2) & 1;
+ bool enable = (shift_register_value >> 3) & 1;
+ UINT8 lcd_data = shift_register_value & 0xF0;
+
+ if (enable && RW==0){
+ if (RS==0){
+ m_lcdc->control_write(space, 0, lcd_data);
+ } else {
+ m_lcdc->data_write(space, 0, lcd_data);
+ }
+ }
+ }
+ }
+ m_port_c = data;
+
+ break;
+ }
+ case AVR8_IO_PORTD:
+ {
+ if (data == m_port_d) break;
+#if LOG_PORTS
+ UINT8 old_port_d = m_port_d;
+ UINT8 changed = data ^ old_port_d;
+
+ printf("[%08X] ", m_maincpu->m_shifted_pc);
+ if(changed & PORTD_SCL) printf("[D] PORTD_SCL: %s\n", data & PORTD_SCL ? "HIGH" : "LOW");
+ if(changed & PORTD_SDA) printf("[D] PORTD_SDA: %s\n", data & PORTD_SDA ? "HIGH" : "LOW");
+ if(changed & EX_RX_1280) printf("[D] EX_RX_1280: %s\n", data & EX_RX_1280 ? "HIGH" : "LOW");
+ if(changed & EX_TX_1280) printf("[D] EX_TX_1280: %s\n", data & EX_TX_1280 ? "HIGH" : "LOW");
+#endif
+ m_port_d = data;
+ break;
+ }
+ case AVR8_IO_PORTE:
+ {
+ if (data == m_port_e) break;
+#if LOG_PORTS
+ UINT8 old_port_e = m_port_e;
+ UINT8 changed = data ^ old_port_e;
+
+ printf("[%08X] ", m_maincpu->m_shifted_pc);
+ if(changed & RX_1280) printf("[E] 1280-RX: %s\n", data & RX_1280 ? "HIGH" : "LOW");
+ if(changed & TX_1280) printf("[E] 1280-TX: %s\n", data & TX_1280 ? "HIGH" : "LOW");
+ if(changed & THERMO_SCK) printf("[E] THERMO-SCK: %s\n", data & THERMO_SCK ? "HIGH" : "LOW");
+ if(changed & THERMO_CS1) printf("[E] THERMO-CS1: %s\n", data & THERMO_CS1 ? "HIGH" : "LOW");
+ if(changed & THERMO_CS2) printf("[E] THERMO-CS2: %s\n", data & THERMO_CS2 ? "HIGH" : "LOW");
+ if(changed & THERMO_DO) printf("[E] THERMO-DO: %s\n", data & THERMO_DO ? "HIGH" : "LOW");
+#endif
+ m_port_e = data;
+ break;
+ }
+ case AVR8_IO_PORTF:
+ {
+ if (data == m_port_f) break;
+#if LOG_PORTS
+ UINT8 old_port_f = m_port_f;
+ UINT8 changed = data ^ old_port_f;
+
+ printf("[%08X] ", m_maincpu->m_shifted_pc);
+ if(changed & X_AXIS_DIR) printf("[F] X_AXIS_DIR: %s\n", data & X_AXIS_DIR ? "HIGH" : "LOW");
+ if(changed & X_AXIS_STEP) printf("[F] X_AXIS_STEP: %s\n", data & X_AXIS_STEP ? "HIGH" : "LOW");
+ if(changed & X_AXIS_EN) printf("[F] X_AXIS_EN: %s\n", data & X_AXIS_EN ? "HIGH" : "LOW");
+ if(changed & X_AXIS_POT) printf("[F] X_AXIS_POT: %s\n", data & X_AXIS_POT ? "HIGH" : "LOW");
+ if(changed & Y_AXIS_DIR) printf("[F] Y_AXIS_DIR: %s\n", data & Y_AXIS_DIR ? "HIGH" : "LOW");
+ if(changed & Y_AXIS_STEP) printf("[F] Y_AXIS_STEP: %s\n", data & Y_AXIS_STEP ? "HIGH" : "LOW");
+ if(changed & Y_AXIS_EN) printf("[F] Y_AXIS_EN: %s\n", data & Y_AXIS_EN ? "HIGH" : "LOW");
+ if(changed & Y_AXIS_POT) printf("[F] Y_AXIS_POT: %s\n", data & Y_AXIS_POT ? "HIGH" : "LOW");
+#endif
+ m_port_f = data;
+ break;
+ }
+ case AVR8_IO_PORTG:
+ {
+ if (data == m_port_g) break;
+
+ UINT8 old_port_g = m_port_g;
+ UINT8 changed = data ^ old_port_g;
+
+#if LOG_PORTS
+ printf("[%08X] ", m_maincpu->m_shifted_pc);
+ if(changed & EX4_1280) printf("[G] EX4_1280: %s\n", data & EX4_1280 ? "HIGH" : "LOW");
+ if(changed & EX3_1280) printf("[G] EX3_1280: %s\n", data & EX3_1280 ? "HIGH" : "LOW");
+ if(changed & B_AXIS_EN) printf("[G] B_AXIS_EN: %s\n", data & B_AXIS_EN ? "HIGH" : "LOW");
+ if(changed & CUTOFF_SR_CHECK) printf("[G] CUTOFF_SR_CHECK: %s\n", data & CUTOFF_SR_CHECK ? "HIGH" : "LOW");
+ if(changed & BUZZ) printf("[G] BUZZ: %s\n", data & BUZZ ? "HIGH" : "LOW");
+#endif
+
+ if(changed & BUZZ){
+ /* FIX-ME: What is the largest sample value allowed?
+ I'm using 0x3F based on what I see in src/mame/drivers/craft.c
+ But as the method is called "write_unsigned8", I guess we could have samples with values up to 0xFF, right?
+ Anyway... With the 0x3F value we'll get a sound that is not so loud, which may be less annoying... :-)
+ */
+ UINT8 audio_sample = (data & BUZZ) ? 0x3F : 0;
+ m_dac->write_unsigned8(audio_sample << 1);
+ }
+
+ m_port_g = data;
+ break;
+ }
+ case AVR8_IO_PORTH:
+ {
+ if (data == m_port_h) break;
+#if LOG_PORTS
+ UINT8 old_port_h = m_port_h;
+ UINT8 changed = data ^ old_port_h;
+
+ printf("[%08X] ", m_maincpu->m_shifted_pc);
+ if(changed & CUTOFF_TEST) printf("[H] CUTOFF_TEST: %s\n", data & CUTOFF_TEST ? "HIGH" : "LOW");
+ if(changed & CUTOFF_RESET) printf("[H] CUTOFF_RESET: %s\n", data & CUTOFF_RESET ? "HIGH" : "LOW");
+ if(changed & EX1_PWR_CHECK) printf("[H] EX1_PWR_CHECK: %s\n", data & EX1_PWR_CHECK ? "HIGH" : "LOW");
+ if(changed & EX1_HEAT) printf("[H] EX1_HEAT: %s\n", data & EX1_HEAT ? "HIGH" : "LOW");
+ if(changed & EX1_FAN) printf("[H] EX1_FAN: %s\n", data & EX1_FAN ? "HIGH" : "LOW");
+ if(changed & SD_WP) printf("[H] SD_WP: %s\n", data & SD_WP ? "HIGH" : "LOW");
+ if(changed & SD_CD) printf("[H] SD_CD: %s\n", data & SD_CD ? "HIGH" : "LOW");
+#endif
+ m_port_h = data;
+ break;
+ }
+ case AVR8_IO_PORTJ:
+ {
+ if (data == m_port_j) break;
+#if LOG_PORTS
+ UINT8 old_port_j = m_port_j;
+ UINT8 changed = data ^ old_port_j;
+
+ printf("[%08X] ", m_maincpu->m_shifted_pc);
+ if(changed & BUTTON_CENTER) printf("[J] BUTTON_CENTER: %s\n", data & BUTTON_CENTER ? "HIGH" : "LOW");
+ if(changed & BUTTON_RIGHT) printf("[J] BUTTON_RIGHT: %s\n", data & BUTTON_RIGHT ? "HIGH" : "LOW");
+ if(changed & BUTTON_LEFT) printf("[J] BUTTON_LEFT: %s\n", data & BUTTON_LEFT ? "HIGH" : "LOW");
+ if(changed & BUTTON_DOWN) printf("[J] BUTTON_DOWN: %s\n", data & BUTTON_DOWN ? "HIGH" : "LOW");
+ if(changed & BUTTON_UP) printf("[J] BUTTON_UP: %s\n", data & BUTTON_UP ? "HIGH" : "LOW");
+ if(changed & POTS_SCL) printf("[J] POTS_SCL: %s\n", data & POTS_SCL ? "HIGH" : "LOW");
+ if(changed & B_AXIS_POT) printf("[J] B_AXIS_POT: %s\n", data & B_AXIS_POT ? "HIGH" : "LOW");
+#endif
+ m_port_j = data;
+ break;
+ }
+ case AVR8_IO_PORTK:
+ {
+ if (data == m_port_k) break;
+#if LOG_PORTS
+ UINT8 old_port_k = m_port_k;
+ UINT8 changed = data ^ old_port_k;
+
+ printf("[%08X] ", m_maincpu->m_shifted_pc);
+ if(changed & Z_AXIS_DIR) printf("[K] Z_AXIS_DIR: %s\n", data & Z_AXIS_DIR ? "HIGH" : "LOW");
+ if(changed & Z_AXIS_STEP) printf("[K] Z_AXIS_STEP: %s\n", data & Z_AXIS_STEP ? "HIGH" : "LOW");
+ if(changed & Z_AXIS_EN) printf("[K] Z_AXIS_EN: %s\n", data & Z_AXIS_EN ? "HIGH" : "LOW");
+ if(changed & Z_AXIS_POT) printf("[K] Z_AXIS_POT: %s\n", data & Z_AXIS_POT ? "HIGH" : "LOW");
+ if(changed & EX7_1280) printf("[K] EX7_1280: %s\n", data & EX7_1280 ? "HIGH" : "LOW");
+ if(changed & EX6_1280) printf("[K] EX6_1280: %s\n", data & EX6_1280 ? "HIGH" : "LOW");
+ if(changed & EX5_1280) printf("[K] EX5_1280: %s\n", data & EX5_1280 ? "HIGH" : "LOW");
+ if(changed & HBP_THERM) printf("[K] HBP_THERM: %s\n", data & HBP_THERM ? "HIGH" : "LOW");
+#endif
+ m_port_k = data;
+ break;
+ }
+ case AVR8_IO_PORTL:
+ {
+ if (data == m_port_l) break;
+#if LOG_PORTS
+ UINT8 old_port_l = m_port_l;
+ UINT8 changed = data ^ old_port_l;
+
+ printf("[%08X] ", m_maincpu->m_shifted_pc);
+ if(changed & X_MIN) printf("[L] X_MIN: %s\n", data & X_MIN ? "HIGH" : "LOW");
+ if(changed & X_MAX) printf("[L] X_MAX: %s\n", data & X_MAX ? "HIGH" : "LOW");
+ if(changed & Y_MIN) printf("[L] Y_MIN: %s\n", data & Y_MIN ? "HIGH" : "LOW");
+ if(changed & Y_MAX) printf("[L] Y_MAX: %s\n", data & Y_MAX ? "HIGH" : "LOW");
+ if(changed & HBP) printf("[L] HBP: %s\n", data & HBP ? "HIGH" : "LOW");
+ if(changed & EXTRA_FET) printf("[L] EXTRA_FET: %s\n", data & EXTRA_FET ? "HIGH" : "LOW");
+ if(changed & Z_MIN) printf("[L] Z_MIN: %s\n", data & Z_MIN ? "HIGH" : "LOW");
+ if(changed & Z_MAX) printf("[L] Z_MAX: %s\n", data & Z_MAX ? "HIGH" : "LOW");
+#endif
+ m_port_l = data;
+ break;
+ }
+ }
+}
+
+/****************************************************\
+* Address maps *
+\****************************************************/
+
+static ADDRESS_MAP_START( replicator_prg_map, AS_PROGRAM, 8, replicator_state )
+ AM_RANGE(0x0000, 0x1FFFF) AM_ROM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( replicator_data_map, AS_DATA, 8, replicator_state )
+ AM_RANGE(0x0200, 0x21FF) AM_RAM /* ATMEGA1280 Internal SRAM */
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( replicator_io_map, AS_IO, 8, replicator_state )
+ AM_RANGE(AVR8_IO_PORTA, AVR8_IO_PORTL) AM_READWRITE( port_r, port_w )
+ADDRESS_MAP_END
+
+/****************************************************\
+* Input ports *
+\****************************************************/
+
+static INPUT_PORTS_START( replicator )
+ PORT_START("keypad")
+ PORT_BIT(0x00000001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("CENTER") PORT_CODE(KEYCODE_M)
+ PORT_BIT(0x00000002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("RIGHT") PORT_CODE(KEYCODE_D)
+ PORT_BIT(0x00000004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("LEFT") PORT_CODE(KEYCODE_A)
+ PORT_BIT(0x00000008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("DOWN") PORT_CODE(KEYCODE_S)
+ PORT_BIT(0x00000010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("UP") PORT_CODE(KEYCODE_W)
+INPUT_PORTS_END
+
+/****************************************************\
+* Machine definition *
+\****************************************************/
+
+DRIVER_INIT_MEMBER(replicator_state, replicator)
+{
+}
+
+void replicator_state::machine_reset()
+{
+ shift_register_value = 0;
+ m_port_a = 0;
+ m_port_b = 0;
+ m_port_c = 0;
+ m_port_d = 0;
+ m_port_e = 0;
+ m_port_f = 0;
+ m_port_g = 0;
+ m_port_h = 0;
+ m_port_j = 0;
+ m_port_k = 0;
+ m_port_l = 0;
+}
+
+PALETTE_INIT_MEMBER(replicator_state, replicator)
+{
+//These colors were picked with the color picker in Inkscape, based on a photo of the LCD used in the Replicator 1 3d printer:
+ palette.set_pen_color(0, rgb_t(0xCA, 0xE7, 0xEB));
+ palette.set_pen_color(1, rgb_t(0x78, 0xAB, 0xA8));
+}
+
+static const gfx_layout hd44780_charlayout =
+{
+ 5, 8, /* 5 x 8 characters */
+ 256, /* 256 characters */
+ 1, /* 1 bits per pixel */
+ { 0 }, /* no bitplanes */
+ { 3, 4, 5, 6, 7},
+ { 0, 8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8},
+ 8*8 /* 8 bytes */
+};
+
+static GFXDECODE_START( replicator )
+ GFXDECODE_ENTRY( "hd44780:cgrom", 0x0000, hd44780_charlayout, 0, 1 )
+GFXDECODE_END
+
+static MACHINE_CONFIG_START( replicator, replicator_state )
+
+ MCFG_CPU_ADD("maincpu", ATMEGA1280, MASTER_CLOCK)
+ MCFG_CPU_PROGRAM_MAP(replicator_prg_map)
+ MCFG_CPU_DATA_MAP(replicator_data_map)
+ MCFG_CPU_IO_MAP(replicator_io_map)
+
+ MCFG_CPU_AVR8_EEPROM("eeprom")
+ MCFG_CPU_AVR8_LFUSE(0xFF)
+ MCFG_CPU_AVR8_HFUSE(0xDA)
+ MCFG_CPU_AVR8_EFUSE(0xF4)
+ MCFG_CPU_AVR8_LOCK(0x0F)
+
+ /*TODO: Add an ATMEGA8U2 for USB-Serial communications */
+
+ /* video hardware */
+ MCFG_SCREEN_ADD("screen", LCD)
+ MCFG_SCREEN_REFRESH_RATE(50)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
+ MCFG_SCREEN_UPDATE_DEVICE("hd44780", hd44780_device, screen_update)
+ MCFG_SCREEN_SIZE(120, 18*2) //4x20 chars
+ MCFG_SCREEN_VISIBLE_AREA(0, 120-1, 0, 18*2-1)
+ MCFG_SCREEN_PALETTE("palette")
+
+ MCFG_PALETTE_ADD("palette", 2)
+ MCFG_PALETTE_INIT_OWNER(replicator_state, replicator)
+ MCFG_GFXDECODE_ADD("gfxdecode", "palette", replicator)
+ MCFG_DEFAULT_LAYOUT(layout_lcd)
+
+ MCFG_HD44780_ADD("hd44780")
+ MCFG_HD44780_LCD_SIZE(4, 20)
+
+ /* sound hardware */
+ /* A piezo is connected to the PORT G bit 5 (OC0B pin driven by Timer/Counter #4) */
+ MCFG_SPEAKER_STANDARD_MONO("buzzer")
+ MCFG_SOUND_ADD("dac", DAC, 0)
+ MCFG_SOUND_ROUTE(0, "buzzer", 1.00)
+
+MACHINE_CONFIG_END
+
+ROM_START( replica1 )
+ ROM_REGION( 0x20000, "maincpu", 0 )
+ ROM_DEFAULT_BIOS("v750")
+
+ /* Version 5.1 release:
+ - Initial firmware release
+ */
+ ROM_SYSTEM_BIOS( 0, "v51", "V 5.1" )
+ ROMX_LOAD("mighty-mb40-v5.1.bin", 0x0000, 0x10b90, CRC(20d65cd1) SHA1(da18c3eb5a29a6bc1eecd92eaae6063fe29d0305), ROM_BIOS(1))
+
+ /* Version 5.2 release:
+ - Nozzle Tolerance added to EEPROM
+ - Updated onboard menus
+ - X,Y calibration tool added
+ */
+ ROM_SYSTEM_BIOS( 1, "v52", "V 5.2" )
+ ROMX_LOAD("mighty-mb40-v5.2.bin", 0x0000, 0x126c4, CRC(555e47cf) SHA1(9d24a3dbeddce16669bb4d29c3366220ddf15d2a), ROM_BIOS(2))
+
+ /* Version 5.5 release:
+ - Acceleration added to motor motion
+ - Digipot updates
+ */
+ ROM_SYSTEM_BIOS( 2, "v55", "V 5.5" )
+ ROMX_LOAD("mighty-mb40-v5.5.bin", 0x0000, 0x1a420, CRC(9327d7e4) SHA1(d734ba2bda12f50ec3ac0035ab11591909d9edde), ROM_BIOS(3))
+
+ /* Version 6.2.0 release:
+ - Bug fix release to firmware 6.0
+ - Addresses wavy print issue above 1cm
+ - Left extruder prints with makerware.
+ */
+ ROM_SYSTEM_BIOS( 3, "v620", "V 6.2.0" )
+ ROMX_LOAD("mighty_one_v6.2.0.bin", 0x0000, 0x1cf54, CRC(00df6f48) SHA1(db05afc2e1ebc104fb04753634a911187e396556), ROM_BIOS(4))
+
+ /* Version 7.0.0 release:
+ - Major upgrade to Stepper Motor Smoothness (via Sailfish team)
+ - X3G format introduced
+ - Heaters default to leaving 'preheat' on more of the time
+ */
+ ROM_SYSTEM_BIOS( 4, "v700", "V 7.0.0" )
+ ROMX_LOAD("mighty_one_v7.0.0.bin", 0x0000, 0x1cb52, CRC(aa2a5fcf) SHA1(934e642b0b2d007689249680bad03c9255ae016a), ROM_BIOS(5))
+
+ /* Version 7.2.0 release:
+ - Removes support for S3G files
+ - X3G is the recognized format
+ - Minor bug fixes
+ */
+ ROM_SYSTEM_BIOS( 5, "v720", "V 7.2.0" )
+ ROMX_LOAD("mighty_one_v7.2.0.bin", 0x0000, 0x1cb80, CRC(5e546706) SHA1(ed4aaf7522d5a5beea7eb69bf2c85d7a89f8f188), ROM_BIOS(6))
+
+ /* Version 7.3.0 release:
+ - Pause at Z Height
+ - Elapsed time displays during prints
+ - Minor bug fixes
+ */
+ ROM_SYSTEM_BIOS( 6, "v730", "V 7.3.0" )
+ ROMX_LOAD("mighty_one_v7.3.0.bin", 0x0000, 0x1d738, CRC(71811ff5) SHA1(6728ea600ab3ff4b589adca90b0d700d9b70bd18), ROM_BIOS(7))
+
+ /* Version 7.4.0 (bugfix) release:
+ - Fixes issues with Z Pause and elapsed print time
+ */
+ ROM_SYSTEM_BIOS( 7, "v740", "V 7.4.0" )
+ ROMX_LOAD("mighty_one_v7.4.0.bin", 0x0000, 0x1b9e2, CRC(97b05a27) SHA1(76ca2c9c1db2e006e501c3177a8a1aa693dda0f9), ROM_BIOS(8))
+
+ /* Version 7.5.0 (bugfix) release:
+ - Fixes issue with Heat Hold
+ */
+ ROM_SYSTEM_BIOS( 8, "v750", "V 7.5.0" )
+ ROMX_LOAD("mighty_one_v7.5.0.bin", 0x0000, 0x1b9c4, CRC(169d6709) SHA1(62b5aacd1bc46969042aea7a50531ec467a4ff1f), ROM_BIOS(9))
+
+ /* Sailfish firmware image - Metam??quina experimental build v7.5.0 */
+ ROM_SYSTEM_BIOS( 9, "v750mm", "V 7.5.0 - Metam??quina" )
+ ROMX_LOAD("mighty_one_v7.5.0.mm.bin", 0x0000, 0x1ef9a, CRC(0d36d9e7) SHA1(a53899775b4c4eea87b6903758ebb75f06710a69), ROM_BIOS(10))
+
+
+ /*Arduino MEGA bootloader */
+ ROM_LOAD( "atmegaboot_168_atmega1280.bin", 0x1f000, 0x0f16, CRC(c041f8db) SHA1(d995ebf360a264cccacec65f6dc0c2257a3a9224) )
+
+ /* on-die 4kbyte eeprom */
+ 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)
diff --git a/src/mame/drivers/retofinv.c b/src/mame/drivers/retofinv.c
index 7153e7ff8db..a4376a6f082 100644
--- a/src/mame/drivers/retofinv.c
+++ b/src/mame/drivers/retofinv.c
@@ -526,6 +526,6 @@ ROM_END
-GAME( 1985, retofinv, 0, retofinv, retofinv, driver_device, 0, ROT90, "Taito Corporation", "Return of the Invaders", GAME_SUPPORTS_SAVE )
-GAME( 1985, retofinv1,retofinv, retofinb, retofinv, driver_device, 0, ROT90, "bootleg", "Return of the Invaders (bootleg set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1985, retofinv2,retofinv, retofinb, retofin2, driver_device, 0, ROT90, "bootleg", "Return of the Invaders (bootleg set 2)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/rex6000.c b/src/mame/drivers/rex6000.c
index 4ed55504c86..ee428f58fc1 100644
--- a/src/mess/drivers/rex6000.c
+++ b/src/mame/drivers/rex6000.c
@@ -718,5 +718,5 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 2000, rex6000, 0, 0, rex6000, rex6000, driver_device, 0, "Xircom / Intel", "REX 6000", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 2000, ds2, rex6000, 0, rex6000, rex6000, driver_device, 0, "Citizen", "DataSlim 2", GAME_NOT_WORKING | GAME_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)
diff --git a/src/mame/drivers/rgum.c b/src/mame/drivers/rgum.c
index d48c065bf03..bf4a5fd8e85 100644
--- a/src/mame/drivers/rgum.c
+++ b/src/mame/drivers/rgum.c
@@ -292,4 +292,4 @@ ROM_START( rgum )
ROM_END
-GAME( 199?, rgum, 0, rgum, rgum, driver_device, 0, ROT0, "<unknown>", "Royal Gum (Italy)", GAME_NOT_WORKING | GAME_NO_SOUND )
+GAME( 199?, rgum, 0, rgum, rgum, driver_device, 0, ROT0, "<unknown>", "Royal Gum (Italy)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mess/drivers/riscpc.c b/src/mame/drivers/riscpc.c
index 1e65d2ca534..4bddb03c55f 100644
--- a/src/mess/drivers/riscpc.c
+++ b/src/mame/drivers/riscpc.c
@@ -186,7 +186,7 @@ void riscpc_state::vidc20_dynamic_screen_change()
visarea.min_y = (m_vidc20_vert_reg[VBSR] & 0x1fff);
visarea.max_y = (m_vidc20_vert_reg[VBER] & 0x1fff)-1;
- machine().first_screen()->configure(hblank_period, vblank_period, visarea, machine().first_screen()->frame_period().attoseconds );
+ machine().first_screen()->configure(hblank_period, vblank_period, visarea, machine().first_screen()->frame_period().attoseconds() );
logerror("VIDC20: successfully changed the screen to:\n Display Size = %d x %d\n Border Size %d x %d\n Cycle Period %d x %d\n",
(m_vidc20_horz_reg[HDER]-m_vidc20_horz_reg[HDSR]),(m_vidc20_vert_reg[VDER]-m_vidc20_vert_reg[VDSR]),
(m_vidc20_horz_reg[HBER]-m_vidc20_horz_reg[HBSR]),(m_vidc20_vert_reg[VBER]-m_vidc20_vert_reg[VBSR]),
@@ -946,9 +946,9 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND )
-COMP( 1994, rpc700, rpc600, 0, rpc700, a7000, driver_device, 0, "Acorn", "Risc PC 700", GAME_NOT_WORKING | GAME_NO_SOUND )
-COMP( 1995, a7000, rpc600, 0, a7000, a7000, driver_device, 0, "Acorn", "Archimedes A7000", GAME_NOT_WORKING | GAME_NO_SOUND )
-COMP( 1997, a7000p, rpc600, 0, a7000p, a7000, driver_device, 0, "Acorn", "Archimedes A7000+", GAME_NOT_WORKING | GAME_NO_SOUND )
-COMP( 1997, sarpc, rpc600, 0, sarpc, a7000, driver_device, 0, "Acorn", "StrongARM Risc PC", GAME_NOT_WORKING | GAME_NO_SOUND )
-COMP( 1997, sarpc_j233, rpc600, 0, sarpc_j233, a7000, driver_device, 0, "Acorn", "J233 StrongARM Risc PC", GAME_NOT_WORKING | GAME_NO_SOUND )
+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 )
diff --git a/src/mame/drivers/rltennis.c b/src/mame/drivers/rltennis.c
index b12e6a8d9a7..20e858041ad 100644
--- a/src/mame/drivers/rltennis.c
+++ b/src/mame/drivers/rltennis.c
@@ -231,4 +231,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", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+GAME( 1993, rltennis, 0, rltennis, rltennis, driver_device, 0, ROT0, "TCH", "Reality Tennis", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/rm380z.c b/src/mame/drivers/rm380z.c
index 5c9ee061081..659ec0dbe31 100644
--- a/src/mess/drivers/rm380z.c
+++ b/src/mame/drivers/rm380z.c
@@ -176,4 +176,4 @@ ROM_END
/* Driver */
-COMP(1978, rm380z, 0, 0, rm380z, rm380z, driver_device, 0, "Research Machines", "RM-380Z", GAME_NO_SOUND_HW)
+COMP(1978, rm380z, 0, 0, rm380z, rm380z, driver_device, 0, "Research Machines", "RM-380Z", MACHINE_NO_SOUND_HW)
diff --git a/src/mame/drivers/rmhaihai.c b/src/mame/drivers/rmhaihai.c
index d2ed9512576..3fda02ffb19 100644
--- a/src/mame/drivers/rmhaihai.c
+++ b/src/mame/drivers/rmhaihai.c
@@ -696,8 +696,8 @@ DRIVER_INIT_MEMBER(rmhaihai_state,rmhaihai)
}
-GAME( 1985, rmhaihai, 0, rmhaihai, rmhaihai, rmhaihai_state, rmhaihai, ROT0, "Alba", "Real Mahjong Haihai (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1985, rmhaihib, rmhaihai, rmhaihai, rmhaihib, rmhaihai_state, rmhaihai, ROT0, "Alba", "Real Mahjong Haihai [BET] (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1986, rmhaijin, 0, rmhaihai, rmhaihai, rmhaihai_state, rmhaihai, ROT0, "Alba", "Real Mahjong Haihai Jinji Idou Hen (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1986, rmhaisei, 0, rmhaisei, rmhaihai, rmhaihai_state, rmhaihai, ROT0, "Visco", "Real Mahjong Haihai Seichouhen (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1987, themj, 0, themj, rmhaihai, rmhaihai_state, rmhaihai, ROT0, "Visco", "The Mah-jong (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1985, rmhaihai, 0, rmhaihai, rmhaihai, rmhaihai_state, rmhaihai, ROT0, "Alba", "Real Mahjong Haihai (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, rmhaihib, rmhaihai, rmhaihai, rmhaihib, rmhaihai_state, rmhaihai, ROT0, "Alba", "Real Mahjong Haihai [BET] (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, rmhaijin, 0, rmhaihai, rmhaihai, rmhaihai_state, rmhaihai, ROT0, "Alba", "Real Mahjong Haihai Jinji Idou Hen (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, rmhaisei, 0, rmhaisei, rmhaihai, rmhaihai_state, rmhaihai, ROT0, "Visco", "Real Mahjong Haihai Seichouhen (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, themj, 0, themj, rmhaihai, rmhaihai_state, rmhaihai, ROT0, "Visco", "The Mah-jong (Japan)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/rmnimbus.c b/src/mame/drivers/rmnimbus.c
index 94a34ff7b6f..94a34ff7b6f 100644
--- a/src/mess/drivers/rmnimbus.c
+++ b/src/mame/drivers/rmnimbus.c
diff --git a/src/mess/drivers/rmt32.c b/src/mame/drivers/rmt32.c
index 65729d57f77..9579adc778c 100644
--- a/src/mess/drivers/rmt32.c
+++ b/src/mame/drivers/rmt32.c
@@ -434,5 +434,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", GAME_NOT_WORKING|GAME_NO_SOUND )
-CONS( 1989, cm32l, 0, 0, mt32, mt32, driver_device, 0, "Roland", "CM32L", GAME_NOT_WORKING|GAME_NO_SOUND )
+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 )
diff --git a/src/mame/drivers/rockrage.c b/src/mame/drivers/rockrage.c
index 5e7c407e614..49d255e190d 100644
--- a/src/mame/drivers/rockrage.c
+++ b/src/mame/drivers/rockrage.c
@@ -234,8 +234,6 @@ void rockrage_state::machine_start()
void rockrage_state::machine_reset()
{
m_vreg = 0;
- m_layer_colorbase[0] = 0x00;
- m_layer_colorbase[1] = 0x10;
}
static MACHINE_CONFIG_START( rockrage, rockrage_state )
@@ -380,6 +378,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)", GAME_SUPPORTS_SAVE )
-GAME( 1986, rockragea, rockrage, rockrage, rockrage, driver_device, 0, ROT0, "Konami", "Rock'n Rage (prototype?)", GAME_SUPPORTS_SAVE )
-GAME( 1986, rockragej, rockrage, rockrage, rockrage, driver_device, 0, ROT0, "Konami", "Koi no Hotrock (Japan)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/rocnrope.c b/src/mame/drivers/rocnrope.c
index cd39c4af89e..4823bc6d7fb 100644
--- a/src/mame/drivers/rocnrope.c
+++ b/src/mame/drivers/rocnrope.c
@@ -344,10 +344,11 @@ ROM_START( ropeman )
ROM_LOAD( "pal10l8.6g", 0x0000, 0x0001, NO_DUMP )
ROM_REGION( 0x01D6, "pals_daughterbd", 0 ) /* N82S153's located on the daughterboard of the cpu/video board */
- ROM_LOAD( "n82s153.pal1.bin", 0x0000, 0x00EB, CRC(baebe804) SHA1(c2e084b4df8a5c6d12cc34106583b532cd7a697b) ) /* Signetics N82S153 */
- ROM_LOAD( "n82s153.pal2.bin", 0x00EB, 0x00EB, CRC(a0e1b7a0) SHA1(7c3ce1a286bef69830a5e67a85965fe71f7ee283) ) /* Signetics N82S153 */
+ ROM_LOAD( "n82s153.pal1.bin", 0x0000, 0x00eb, CRC(baebe804) SHA1(c2e084b4df8a5c6d12cc34106583b532cd7a697b) ) /* Signetics N82S153 */
+ ROM_LOAD( "n82s153.pal2.bin", 0x00eb, 0x00eb, CRC(a0e1b7a0) SHA1(7c3ce1a286bef69830a5e67a85965fe71f7ee283) ) /* Signetics N82S153 */
ROM_END
+
/*************************************
*
* Driver initialization
@@ -356,11 +357,7 @@ ROM_END
DRIVER_INIT_MEMBER(rocnrope_state,rocnrope)
{
- memregion("maincpu")->base()[0x703d] = 0x98^0x88; /* fix one instruction */
-}
-
-DRIVER_INIT_MEMBER(rocnrope_state,rocnropk)
-{
+ memregion("maincpu")->base()[0x703d] = 0x98^0x22; // HACK: fix one instruction
}
@@ -370,6 +367,6 @@ DRIVER_INIT_MEMBER(rocnrope_state,rocnropk)
*
*************************************/
-GAME( 1983, rocnrope, 0, rocnrope, rocnrope, rocnrope_state, rocnrope, ROT270, "Konami", "Roc'n Rope", GAME_SUPPORTS_SAVE )
-GAME( 1983, rocnropek,rocnrope, rocnrope, rocnrope, rocnrope_state, rocnropk, ROT270, "Konami / Kosuka", "Roc'n Rope (Kosuka)", GAME_SUPPORTS_SAVE )
-GAME( 1983, ropeman, rocnrope, rocnrope, rocnrope, rocnrope_state, rocnrope, ROT270, "bootleg", "Ropeman (bootleg of Roc'n Rope)", GAME_SUPPORTS_SAVE )
+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, 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.c b/src/mame/drivers/rohga.c
index 8f423eb1ea8..4114bf30579 100644
--- a/src/mame/drivers/rohga.c
+++ b/src/mame/drivers/rohga.c
@@ -1760,19 +1760,19 @@ DRIVER_INIT_MEMBER(rohga_state,schmeisr)
deco74_decrypt_gfx(machine(), "gfx2");
}
-GAME( 1991, rohga, 0, rohga, rohga, rohga_state, rohga, ROT0, "Data East Corporation", "Rohga Armor Force (Asia/Europe v5.0)", GAME_SUPPORTS_SAVE )
-GAME( 1991, rohga1, rohga, rohga, rohga, rohga_state, rohga, ROT0, "Data East Corporation", "Rohga Armor Force (Asia/Europe v3.0 set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1991, rohga2, rohga, rohga, rohga, rohga_state, rohga, ROT0, "Data East Corporation", "Rohga Armor Force (Asia/Europe v3.0 set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1991, rohgah, rohga, rohga, rohga, rohga_state, rohga, ROT0, "Data East Corporation", "Rohga Armor Force (Hong Kong v3.0)", GAME_SUPPORTS_SAVE )
-GAME( 1991, rohgau, rohga, rohga, rohga, rohga_state, rohga, ROT0, "Data East Corporation", "Rohga Armor Force (US v1.0)", GAME_SUPPORTS_SAVE )
-GAME( 1991, wolffang, rohga, rohga, rohga, rohga_state, rohga, ROT0, "Data East Corporation", "Wolf Fang -Kuhga 2001- (Japan)", GAME_SUPPORTS_SAVE )
-
-GAME( 1992, wizdfire, 0, wizdfire, wizdfire, rohga_state, wizdfire, ROT0, "Data East Corporation", "Wizard Fire (Over Sea v2.1)", GAME_SUPPORTS_SAVE )
-GAME( 1992, wizdfireu, wizdfire, wizdfire, wizdfire, rohga_state, wizdfire, ROT0, "Data East Corporation", "Wizard Fire (US v1.1)", GAME_SUPPORTS_SAVE )
-GAME( 1992, darkseal2, wizdfire, wizdfire, wizdfire, rohga_state, wizdfire, ROT0, "Data East Corporation", "Dark Seal 2 (Japan v2.1)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-
-GAME( 1992, nitrobal, 0, nitrobal, nitrobal, rohga_state, nitrobal, ROT270, "Data East Corporation", "Nitro Ball (World, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1992, nitrobala, nitrobal, nitrobal, nitrobal, rohga_state, nitrobal, ROT270, "Data East Corporation", "Nitro Ball (World, set 2)", GAME_SUPPORTS_SAVE ) // was marked 'US' but doesn't seem to have a 'Winners Don't Use Drugs' screen, so unlikely
-GAME( 1992, gunball, nitrobal, nitrobal, nitrobal, rohga_state, nitrobal, ROT270, "Data East Corporation", "Gun Ball (Japan)", GAME_SUPPORTS_SAVE )
-
-GAME( 1993, schmeisr, 0, schmeisr, schmeisr, rohga_state, schmeisr, ROT0, "Hot-B", "Schmeiser Robo (Japan)", GAME_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 )
+GAME( 1992, darkseal2, wizdfire, wizdfire, wizdfire, rohga_state, wizdfire, ROT0, "Data East Corporation", "Dark Seal 2 (Japan v2.1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+
+GAME( 1992, nitrobal, 0, nitrobal, nitrobal, rohga_state, nitrobal, ROT270, "Data East Corporation", "Nitro Ball (World, set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, nitrobala, nitrobal, nitrobal, nitrobal, rohga_state, nitrobal, ROT270, "Data East Corporation", "Nitro Ball (World, set 2)", MACHINE_SUPPORTS_SAVE ) // was marked 'US' but doesn't seem to have a 'Winners Don't Use Drugs' screen, so unlikely
+GAME( 1992, gunball, nitrobal, nitrobal, nitrobal, rohga_state, nitrobal, ROT270, "Data East Corporation", "Gun Ball (Japan)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1993, schmeisr, 0, schmeisr, schmeisr, rohga_state, schmeisr, ROT0, "Hot-B", "Schmeiser Robo (Japan)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/rollerg.c b/src/mame/drivers/rollerg.c
index 909d8624871..c2fccbef616 100644
--- a/src/mame/drivers/rollerg.c
+++ b/src/mame/drivers/rollerg.c
@@ -340,5 +340,5 @@ ROM_END
***************************************************************************/
-GAME( 1991, rollerg, 0, rollerg, rollerg, driver_device, 0, ROT0, "Konami", "Rollergames (US)", GAME_SUPPORTS_SAVE )
-GAME( 1991, rollergj, rollerg, rollerg, rollerg, driver_device, 0, ROT0, "Konami", "Rollergames (Japan)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/rollext.c b/src/mame/drivers/rollext.c
new file mode 100644
index 00000000000..a8cc03480f8
--- /dev/null
+++ b/src/mame/drivers/rollext.c
@@ -0,0 +1,366 @@
+// license:BSD-3-Clause
+// copyright-holders:Ville Linde
+/*
+ Rolling Extreme
+ Gaelco, 1999
+
+ PCB Layout
+ ----------
+
+ REF.991015
+ |--------------------------------------------------|
+ |TL074 TDA1543 LP61256 ROE.45 ROE.58 |
+ | |
+ |TL074 TDA1543 LP61256 ROE.47 ROE.60 |-|
+ | | |DB9
+ | |--------| KM4216C258 KM4216C258 |-|
+ | |ALTERA | |
+ | LP61256 |FLEX | KM4216C258 KM4216C258 |
+ | LP61256 |EPF10K50| |
+ |-| LP61256 |--------| KM4216C258 KM4216C258 |
+ | |2444CS CY2308 |
+ | | |--------| KM4216C258 KM4216C258 |
+ | | L4955 |ALTERA | |
+ | | |FLEX | |------------| |
+ | |LED1 |EPF10K100 |CHIP EXPRESS|KM4216C258 |
+ | |LED2 60MHz |--------| |D3PLUS-4 | |
+ |-| |----------| |T2032-01 |KM4216C258 |
+ | |DSP | |N9G1554 | |
+ | |TMS320C82 | |9939 CA TWN | |
+ | |GGP60 | |------------| |
+ | |1997 TI | 93C66 |
+ | |----------| |-------| |-|
+ | ROE.17 |ALTERA | 90MHz | |DB9
+ |K4S643232-TC80 |MAX |KM718V895T-72 |-|
+ | ROE.18 ROE.38|EPM7160| |
+ |K4S643232-TC80 |-------| |
+ |--------------------------------------------------|
+*/
+
+/*
+
+ MP Interrupts:
+
+ External Interrupt 1: 0x4003ef78
+ External Interrupt 2: -
+ External Interrupt 3: 0x40041d30
+ Memory Fault: 0x40043ae8
+
+ PP0 Interrupts:
+ Task: 0x400010a0 / 0x400001a0
+
+ PP1 Interrupts:
+ Task: 0x4004c6e8
+
+
+ Memory locations:
+
+ [0x00000084] PP0 busy flag?
+ [0x00000090] PP0 fifo write pointer?
+ [0x00000094] PP0 fifo read pointer?
+ [0x00000320] 2000000-TCOUNT in XINT3 handler
+ [0x01010668] copied from (word)0xb0000004 in XINT3 handler
+
+
+ Texture ROM decode:
+
+ {ic45} {ic47} {ic58} {ic60}
+ [2,0][0,0] [2,1][0,1] [3,0][1,0] [3,1][1,1]
+
+*/
+
+#include "emu.h"
+#include "cpu/tms32082/tms32082.h"
+
+class rollext_state : public driver_device
+{
+public:
+ rollext_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
+ m_palette_ram(*this, "palette_ram"),
+ m_texture_mask(*this, "texture_mask"),
+ m_disp_ram(*this, "disp_ram")
+ {
+ }
+
+ required_device<cpu_device> m_maincpu;
+ required_shared_ptr<UINT32> m_palette_ram;
+ required_shared_ptr<UINT32> m_texture_mask;
+ required_shared_ptr<UINT32> m_disp_ram;
+
+ DECLARE_READ32_MEMBER(a0000000_r);
+ DECLARE_WRITE32_MEMBER(a0000000_w);
+ DECLARE_READ32_MEMBER(b0000000_r);
+
+ UINT8 *m_texture;
+
+ void draw_line(bitmap_rgb32 &bitmap, const rectangle &visarea, int v1x, int v1y, int v2x, int v2y);
+
+ INTERRUPT_GEN_MEMBER(vblank_interrupt);
+ DECLARE_DRIVER_INIT(rollext);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
+ void preprocess_texture_data();
+ UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+};
+
+
+
+void rollext_state::preprocess_texture_data()
+{
+ UINT8 *rom = (UINT8*)memregion("texture")->base();
+
+ for (int j=0; j < 16384; j+=2)
+ {
+ for (int i=0; i < 2048; i+=4)
+ {
+ m_texture[((j+0) * 2048) + i + 1] = *rom++;
+ m_texture[((j+1) * 2048) + i + 1] = *rom++;
+ m_texture[((j+0) * 2048) + i + 0] = *rom++;
+ m_texture[((j+1) * 2048) + i + 0] = *rom++;
+ m_texture[((j+0) * 2048) + i + 3] = *rom++;
+ m_texture[((j+1) * 2048) + i + 3] = *rom++;
+ m_texture[((j+0) * 2048) + i + 2] = *rom++;
+ m_texture[((j+1) * 2048) + i + 2] = *rom++;
+ }
+ }
+}
+
+void rollext_state::draw_line(bitmap_rgb32 &bitmap, const rectangle &visarea, int v1x, int v1y, int v2x, int v2y)
+{
+ int dx = (v2x - v1x);
+ int dy = (v2y - v1y);
+
+ int x1 = v1x;
+ int y1 = v1y;
+
+ if (v1x < visarea.min_x || v1x > visarea.max_x ||
+ v1y < visarea.min_y || v1y > visarea.max_y ||
+ v2x < visarea.min_x || v2x > visarea.max_x ||
+ v2y < visarea.min_y || v2y > visarea.max_x)
+ return;
+
+ if (dx > dy)
+ {
+ int x = x1;
+ for (int i=0; i < abs(dx); i++)
+ {
+ int y = y1 + (dy * (float)(x - x1) / (float)(dx));
+
+ if (x >= 0 && x < 512 && y >= 0 && y < 384)
+ {
+ UINT32 *fb = &bitmap.pix32(y);
+ fb[x] = 0xffffffff;
+ }
+
+ x++;
+ }
+ }
+ else
+ {
+ int y = y1;
+ for (int i=0; i < abs(dy); i++)
+ {
+ int x = x1 + (dx * (float)(y - y1) / (float)(dy));
+
+ if (x >= 0 && x < 512 && y >= 0 && y < 384)
+ {
+ UINT32 *fb = &bitmap.pix32(y);
+ fb[x] = 0xffffffff;
+ }
+
+ y++;
+ }
+ }
+}
+
+void rollext_state::video_start()
+{
+ m_texture = auto_alloc_array(machine(), UINT8, 0x2000000);
+
+ preprocess_texture_data();
+}
+
+UINT32 rollext_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
+{
+ bitmap.fill(0xff000000, cliprect);
+
+#if 0
+ UINT16 *pal = (UINT16*)&m_palette_ram[0];
+
+ int palnum = 31;
+ // 24,25,31 for basic font
+ // 29 = trees
+
+ int ii=0;
+ for (int j=0; j < 384; j++)
+ {
+ UINT32 *fb = &bitmap.pix32(j);
+ for (int i=0; i < 512; i++)
+ {
+ UINT8 p = m_texture[ii++];
+
+ UINT16 rgb = pal[(palnum * 256) + BYTE_XOR_BE(p)];
+ int r = ((rgb >> 10) & 0x1f) << 3;
+ int g = ((rgb >> 5) & 0x1f) << 3;
+ int b = (rgb & 0x1f) << 3;
+
+ fb[i] = 0xff000000 | (r << 16) | (g << 8) | b;
+ }
+ ii += 1536;
+ }
+#endif
+
+ int num = m_disp_ram[0xffffc/4];
+
+ for (int i=0; i < num; i++)
+ {
+ int ii = i * 0x60;
+
+ int x[4];
+ int y[4];
+
+ for (int j=0; j < 4; j++)
+ {
+ UINT32 ix = m_disp_ram[(ii + (j*0x10) + 0x4) / 4];
+ UINT32 iy = m_disp_ram[(ii + (j*0x10) + 0xc) / 4];
+
+ x[j] = (int)((u2f(ix) / 2.0f) + 256.0f);
+ y[j] = (int)((u2f(iy) / 2.0f) + 192.0f);
+ }
+
+
+ draw_line(bitmap, cliprect, x[0], y[0], x[1], y[1]);
+ draw_line(bitmap, cliprect, x[1], y[1], x[2], y[2]);
+ draw_line(bitmap, cliprect, x[3], y[3], x[2], y[2]);
+ draw_line(bitmap, cliprect, x[0], y[0], x[3], y[3]);
+
+ }
+
+ m_disp_ram[0xffffc/4] = 0;
+
+
+ return 0;
+}
+
+
+READ32_MEMBER(rollext_state::a0000000_r)
+{
+ switch (offset)
+ {
+ case 0: // ??
+ {
+ UINT32 data = 0x20200;
+
+ //data |= ioport("INPUTS1")->read();
+ //data |= 0xfff7fff7;
+
+ return data;
+ }
+
+ case 1:
+ return 0xffffffff;
+ }
+
+ return 0xffffffff;
+}
+
+WRITE32_MEMBER(rollext_state::a0000000_w)
+{
+ // FPGA interface?
+}
+
+READ32_MEMBER(rollext_state::b0000000_r)
+{
+ switch (offset)
+ {
+ case 0: // ??
+ return 0xffff;
+ case 1: // ??
+ return 0;
+ }
+
+ return 0;
+}
+
+
+// Master Processor memory map
+static ADDRESS_MAP_START(memmap, AS_PROGRAM, 32, rollext_state)
+ AM_RANGE(0x40000000, 0x40ffffff) AM_RAM AM_SHARE("main_ram")
+ AM_RANGE(0x60000000, 0x600fffff) AM_RAM AM_SHARE("disp_ram")
+ AM_RANGE(0x80000000, 0x8000ffff) AM_RAM AM_SHARE("palette_ram")
+ AM_RANGE(0x90000000, 0x9007ffff) AM_RAM AM_SHARE("texture_mask")
+ AM_RANGE(0xa0000000, 0xa00000ff) AM_READWRITE(a0000000_r, a0000000_w)
+ AM_RANGE(0xb0000000, 0xb0000007) AM_READ(b0000000_r)
+ AM_RANGE(0xc0000000, 0xc03fffff) AM_ROM AM_REGION("rom1", 0)
+ AM_RANGE(0xff000000, 0xffffffff) AM_RAM AM_REGION("rom0", 0)
+ADDRESS_MAP_END
+
+
+static INPUT_PORTS_START(rollext)
+
+ PORT_START("INPUTS1")
+ PORT_BIT( 0xfff7fff7, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_SERVICE_NO_TOGGLE( 0x00080008, IP_ACTIVE_LOW) /* Test Button */
+
+INPUT_PORTS_END
+
+
+void rollext_state::machine_reset()
+{
+}
+
+void rollext_state::machine_start()
+{
+}
+
+
+static MACHINE_CONFIG_START(rollext, rollext_state)
+ MCFG_CPU_ADD("maincpu", TMS32082_MP, 60000000)
+ MCFG_CPU_PROGRAM_MAP(memmap)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", rollext_state, vblank_interrupt)
+ MCFG_CPU_PERIODIC_INT_DRIVER(rollext_state, irq3_line_assert, 60)
+
+ MCFG_CPU_ADD("pp0", TMS32082_PP, 60000000)
+ MCFG_CPU_PROGRAM_MAP(memmap);
+
+ MCFG_QUANTUM_TIME(attotime::from_hz(100))
+
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
+ MCFG_SCREEN_SIZE(512, 384)
+ MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383)
+ MCFG_SCREEN_UPDATE_DRIVER(rollext_state, screen_update)
+MACHINE_CONFIG_END
+
+
+INTERRUPT_GEN_MEMBER(rollext_state::vblank_interrupt)
+{
+ m_maincpu->set_input_line(tms32082_mp_device::INPUT_X1, ASSERT_LINE);
+}
+
+DRIVER_INIT_MEMBER(rollext_state, rollext)
+{
+}
+
+
+ROM_START(rollext)
+ ROM_REGION32_BE(0x1000000, "rom0", 0)
+ ROM_LOAD64_DWORD_SWAP("roe.ic17", 0x000000, 0x800000, CRC(a52bf5a1) SHA1(5c35740e14978368ab1c72931a767fcb6f217edf))
+ ROM_LOAD64_DWORD_SWAP("roe.ic18", 0x000004, 0x800000, CRC(1a4e65d6) SHA1(69fc7747d8e64d0b397c676bebaedc9e6122fe89))
+
+ ROM_REGION32_BE(0x400000, "rom1", 0)
+ ROM_LOAD32_DWORD("roe.ic38", 0x000000, 0x400000, CRC(d9bcfb7c) SHA1(eda9870881732d4dc7cdacb65c6d40af3451dc9d))
+
+ ROM_REGION32_BE(0x2000000, "texture", 0) // Texture ROMs
+ ROM_LOAD32_BYTE("roe.ic45", 0x000000, 0x800000, CRC(0f7fe365) SHA1(ed50fd2b76840eac6ce394a0c748109f615b775a))
+ ROM_LOAD32_BYTE("roe.ic47", 0x000001, 0x800000, CRC(44d7ccee) SHA1(2fec682396e4cca704bd1237016acec0e7b4b428))
+ ROM_LOAD32_BYTE("roe.ic58", 0x000002, 0x800000, CRC(67ad4561) SHA1(56f41b4ebd827fec49902f377c5ed054c02d9e6c))
+ ROM_LOAD32_BYTE("roe.ic60", 0x000003, 0x800000, CRC(a64524af) SHA1(31bef17656ab025f90cd222d3d6d0cb62dee29ee))
+ROM_END
+
+
+GAME( 1999, rollext, 0, rollext, rollext, rollext_state, rollext, ROT0, "Gaelco", "ROLLing eX.tre.me", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/rollrace.c b/src/mame/drivers/rollrace.c
index 014fd775752..9b7137cd9bc 100644
--- a/src/mame/drivers/rollrace.c
+++ b/src/mame/drivers/rollrace.c
@@ -431,6 +431,6 @@ ROM_START( rollace2 )
ROM_END
-GAME( 1983, fightrol, 0, rollrace, rollrace, driver_device, 0, ROT270, "Kaneko (Taito license)", "Fighting Roller", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1983, rollace, fightrol, rollrace, rollrace, driver_device, 0, ROT270, "Kaneko (Williams license)", "Roller Aces (set 1)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1983, rollace2, fightrol, rollace2, rollrace, driver_device, 0, ROT90, "Kaneko (Williams license)", "Roller Aces (set 2)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/rotaryf.c b/src/mame/drivers/rotaryf.c
index ec53f6ae71c..ff74598e930 100644
--- a/src/mame/drivers/rotaryf.c
+++ b/src/mame/drivers/rotaryf.c
@@ -291,4 +291,4 @@ ROM_START( rotaryf )
ROM_END
-GAME( 1979, rotaryf, 0, rotaryf, rotaryf, driver_device, 0, ROT270, "Kasco", "Rotary Fighter", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1979, rotaryf, 0, rotaryf, rotaryf, driver_device, 0, ROT270, "Kasco", "Rotary Fighter", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/roul.c b/src/mame/drivers/roul.c
index c418eb6b8e5..909e63354e1 100644
--- a/src/mame/drivers/roul.c
+++ b/src/mame/drivers/roul.c
@@ -332,4 +332,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", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE, layout_roul )
+GAMEL( 1990, roul, 0, roul, roul, driver_device, 0, ROT0, "bootleg", "Super Lucky Roulette", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_roul )
diff --git a/src/mame/drivers/route16.c b/src/mame/drivers/route16.c
index 8d362e08ca5..b2510b66d56 100644
--- a/src/mame/drivers/route16.c
+++ b/src/mame/drivers/route16.c
@@ -572,6 +572,8 @@ static MACHINE_CONFIG_START( route16, route16_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) /* frames per second, vblank duration */
MCFG_SCREEN_UPDATE_DRIVER(route16_state, screen_update_route16)
+ MCFG_PALETTE_ADD_3BIT_RGB("palette")
+
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay8910", AY8910, 10000000/8)
@@ -599,7 +601,7 @@ static MACHINE_CONFIG_DERIVED( stratvox, route16 )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_DRIVER(route16_state, screen_update_stratvox)
+ MCFG_SCREEN_UPDATE_DRIVER(route16_state, screen_update_ttmahjng)
/* sound hardware */
MCFG_SOUND_MODIFY("ay8910")
@@ -654,6 +656,9 @@ static MACHINE_CONFIG_DERIVED( ttmahjng, route16 )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(route16_state, screen_update_ttmahjng)
+
+ MCFG_DEVICE_REMOVE("palette")
+ MCFG_PALETTE_ADD_3BIT_BGR("palette")
MACHINE_CONFIG_END
@@ -664,7 +669,28 @@ MACHINE_CONFIG_END
*
*************************************/
-ROM_START( route16 )
+ ROM_START( route16 )
+ ROM_REGION( 0x10000, "cpu1", 0 )
+ ROM_LOAD( "tvg54.a0", 0x0000, 0x0800, CRC(aef9ffc1) SHA1(178d23e4963336ded93c13cb17940a4ae98270c5) )
+ ROM_LOAD( "tvg55.a1", 0x0800, 0x0800, CRC(389bc077) SHA1(b0606f6e647e81ceae7148bda96bd4673a51e823) )
+ ROM_LOAD( "tvg56.a2", 0x1000, 0x0800, CRC(1065a468) SHA1(4a707a42fb5a718043c173cb98ff3523eb274ccc) )
+ ROM_LOAD( "tvg57.a3", 0x1800, 0x0800, CRC(0b1987f3) SHA1(9b8abd6ec1ae15ca0d5e4de6b8a7ebf6c929d767) )
+ ROM_LOAD( "tvg58.a4", 0x2000, 0x0800, CRC(f67d853a) SHA1(7479e84082e78f8670cc50858ce6a006d3063413) )
+ ROM_LOAD( "tvg59.a5", 0x2800, 0x0800, CRC(d85cf758) SHA1(5af21250ee44ab1a43b844ede5a777a3d33b78b5) )
+
+ ROM_REGION( 0x10000, "cpu2", 0 )
+ ROM_LOAD( "tvg60.b0", 0x0000, 0x0800, CRC(0f9588a7) SHA1(dfaffec4dbabd98cdc21a416bd2966d9d3ae6ad1) )
+ ROM_LOAD( "tvg61.b1", 0x0800, 0x0800, CRC(2b326cf9) SHA1(c6602a9440a982c39f5836c6ab72283b6f9241be) )
+ ROM_LOAD( "tvg62.b2", 0x1000, 0x0800, CRC(529cad13) SHA1(b533d20df1f2580e237c3d60bfe3483486ad9a48) )
+ ROM_LOAD( "tvg63.b3", 0x1800, 0x0800, CRC(3bd8b899) SHA1(bc0c7909dbf5ea85eba5a1bb815fdd98c3aa794e) )
+
+ ROM_REGION( 0x0200, "proms", 0 )
+ /* The upper 128 bytes are 0's, used by the hardware to blank the display */
+ ROM_LOAD( "mb7052.59", 0x0000, 0x0100, CRC(08793ef7) SHA1(bfc27aaf25d642cd57c0fbe73ab575853bd5f3ca) ) /* top bitmap */
+ ROM_LOAD( "mb7052.61", 0x0100, 0x0100, CRC(08793ef7) SHA1(bfc27aaf25d642cd57c0fbe73ab575853bd5f3ca) ) /* bottom bitmap */
+ROM_END
+
+ROM_START( route16c )
ROM_REGION( 0x10000, "cpu1", 0 )
ROM_LOAD( "route16.a0", 0x0000, 0x0800, CRC(8f9101bd) SHA1(b2c0156d41e295282387fb85fc272b031a6d1b64) )
ROM_LOAD( "route16.a1", 0x0800, 0x0800, CRC(389bc077) SHA1(b0606f6e647e81ceae7148bda96bd4673a51e823) )
@@ -706,7 +732,7 @@ ROM_START( route16a )
ROM_LOAD( "im5623.f12", 0x0100, 0x0100, CRC(08793ef7) SHA1(bfc27aaf25d642cd57c0fbe73ab575853bd5f3ca) ) /* bottom bitmap */
ROM_END
-ROM_START( route16b )
+ROM_START( route16bl )
ROM_REGION( 0x10000, "cpu1", 0 )
ROM_LOAD( "rt16.0", 0x0000, 0x0800, CRC(b1f0f636) SHA1(f21915ed40ebdf64970fb7e3cd8071ebfc4aa0b5) )
ROM_LOAD( "rt16.1", 0x0800, 0x0800, CRC(3ec52fe5) SHA1(451969b5caedd665231ef78cf262679d6d4c8507) )
@@ -727,6 +753,8 @@ ROM_START( route16b )
ROM_LOAD( "im5623.f12", 0x0100, 0x0100, CRC(08793ef7) SHA1(bfc27aaf25d642cd57c0fbe73ab575853bd5f3ca) ) /* bottom bitmap */
ROM_END
+
+
ROM_START( routex )
ROM_REGION( 0x10000, "cpu1", 0 )
ROM_LOAD( "routex01.a0", 0x0000, 0x0800, CRC(99b500e7) SHA1(2561c04a1425d7ac3309faf29fcfde63a0cda4da) )
@@ -933,6 +961,23 @@ READ8_MEMBER(route16_state::routex_prot_read)
DRIVER_INIT_MEMBER(route16_state,route16)
{
UINT8 *ROM = memregion("cpu1")->base();
+ /* TO DO : Replace these patches with simulation of the protection device */
+
+ /* patch the protection */
+ ROM[0x0105] = 0x00; /* jp nz,$4109 (nirvana) - NOP's in route16c */
+ ROM[0x0106] = 0x00;
+ ROM[0x0107] = 0x00;
+
+ ROM[0x072a] = 0x00; /* jp nz,$4238 (nirvana) */
+ ROM[0x072b] = 0x00;
+ ROM[0x072c] = 0x00;
+
+ DRIVER_INIT_CALL(route16c);
+}
+
+DRIVER_INIT_MEMBER(route16_state,route16c)
+{
+ UINT8 *ROM = memregion("cpu1")->base();
/* Is this actually a bootleg? some of the protection has
been removed */
@@ -953,7 +998,7 @@ DRIVER_INIT_MEMBER(route16_state,route16a)
/* patch the protection */
ROM[0x00e9] = 0x3a;
- ROM[0x0105] = 0x00; /* jp nz,$4109 (nirvana) - NOP's in route16 */
+ ROM[0x0105] = 0x00; /* jp nz,$4109 (nirvana) - NOP's in route16c */
ROM[0x0106] = 0x00;
ROM[0x0107] = 0x00;
@@ -968,20 +1013,25 @@ DRIVER_INIT_MEMBER(route16_state,route16a)
+
+
/*************************************
*
* Game drivers
*
*************************************/
-GAME( 1981, route16, 0, route16, route16, route16_state, route16, ROT270, "Tehkan / Sun Electronics (Centuri license)", "Route 16 (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1981, route16a, route16, route16, route16, route16_state, route16a, ROT270, "Tehkan / Sun Electronics (Centuri license)", "Route 16 (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1981, route16b, route16, route16, route16, driver_device, 0, ROT270, "bootleg", "Route 16 (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1981, routex, route16, routex, route16, driver_device, 0, ROT270, "bootleg", "Route X (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1980, speakres, 0, speakres, speakres, driver_device, 0, ROT270, "Sun Electronics", "Speak & Rescue", GAME_SUPPORTS_SAVE )
-GAME( 1980, speakresb,speakres, speakres, speakres, driver_device, 0, ROT270, "bootleg", "Speak & Rescue (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1980, stratvox, speakres, stratvox, stratvox, driver_device, 0, ROT270, "Sun Electronics (Taito license)", "Stratovox", GAME_SUPPORTS_SAVE )
-GAME( 1980, stratvoxb,speakres, stratvox, stratvox, driver_device, 0, ROT270, "bootleg", "Stratovox (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1980, spacecho, speakres, spacecho, spacecho, driver_device, 0, ROT270, "bootleg (Gayton Games)", "Space Echo (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1980, spacecho2,speakres, spacecho, spacecho, driver_device, 0, ROT270, "bootleg (Gayton Games)", "Space Echo (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1981, ttmahjng, 0, ttmahjng, ttmahjng, driver_device, 0, ROT0, "Taito", "T.T Mahjong", GAME_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, 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", 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( 1981, ttmahjng, 0, ttmahjng, ttmahjng, driver_device, 0, ROT0, "Taito", "T.T Mahjong", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/rowamet.c b/src/mame/drivers/rowamet.c
index 1e077b1b876..60e9874e6c2 100644
--- a/src/mame/drivers/rowamet.c
+++ b/src/mame/drivers/rowamet.c
@@ -242,4 +242,4 @@ ROM_END
/-------------------------------------------------------------------*/
-GAME(198?, heavymtl, 0, rowamet, rowamet, driver_device, 0, ROT0, "Rowamet", "Heavy Metal", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
+GAME(198?, heavymtl, 0, rowamet, rowamet, driver_device, 0, ROT0, "Rowamet", "Heavy Metal", MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND )
diff --git a/src/mame/drivers/royalmah.c b/src/mame/drivers/royalmah.c
index 8ba70c82847..0d49e09ae8c 100644
--- a/src/mame/drivers/royalmah.c
+++ b/src/mame/drivers/royalmah.c
@@ -3612,7 +3612,7 @@ ROM_START( tahjong )
ROM_LOAD( "s2.bin", 0x14000, 0x4000, CRC(fed42e7c) SHA1(31136dff07bd1883dc2d107823ba83a34abf003d) )
ROM_REGION( 0x0020, "proms", 0 )
- ROM_LOAD( "18s030n.6k", 0x0000, 0x0020, NO_DUMP )
+ ROM_LOAD( "18s030n.6k", 0x0000, 0x0020, CRC(c074c0f0) SHA1(b62519d1496ea366b0ea8ed657bd758ce93875ec) )
ROM_END
ROM_START( janputer )
@@ -4910,18 +4910,18 @@ GAME( 1981, royalmj, 0, royalmah, royalmah, driver_device, 0, R
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)", GAME_WRONG_COLORS ) // 1985 Jun. 17
+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 (Public Software Ltd. / Mes)", "New Double Bet Mahjong (bootleg of Janputer)", 0 ) // the original Janputer (Sanritsu) is not yet dumped
-GAME( 1984, janoh, 0, royalmah, royalmah, driver_device, 0, ROT0, "Toaplan", "Jan Oh (set 1)", GAME_NOT_WORKING )
-GAME( 1984, janoha, janoh, janoh, royalmah, driver_device, 0, ROT0, "Toaplan", "Jan Oh (set 2)", GAME_NOT_WORKING ) // this one is complete?
-GAME( 1985, jansou, 0, jansou, jansou, driver_device, 0, ROT0, "Dyna", "Jansou (set 1)", GAME_NOT_WORKING|GAME_NO_SOUND )
+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( 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)", GAME_NOT_WORKING )
-GAME( 1986, mjsenka, 0, royalmah, royalmah, driver_device, 0, ROT0, "Visco", "Mahjong Senka (Japan)", GAME_NOT_WORKING )
-GAME( 1986, mjyarou, 0, royalmah, royalmah, driver_device, 0, ROT0, "Visco / Video System", "Mahjong Yarou [BET] (Japan)", GAME_NOT_WORKING )
+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, royalmah, royalmah, driver_device, 0, ROT0, "Visco / Video System", "Mahjong Yarou [BET] (Japan)", MACHINE_NOT_WORKING )
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 )
@@ -4936,11 +4936,11 @@ GAME( 1990, mjifb, 0, mjifb, mjifb, driver_device, 0, R
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)", GAME_NOT_WORKING )
+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)", GAME_NOT_WORKING )
-GAME( 1995, mjtensin, 0, mjtensin, mjtensin, driver_device, 0, ROT0, "Dynax", "Mahjong Tensinhai (Japan)", GAME_NOT_WORKING )
+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( 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", GAME_NOT_WORKING )
-GAME( 1999, cafepara, 0, mjifb, mjifb, driver_device, 0, ROT0, "Techno-Top", "Mahjong Cafe Paradise", GAME_NOT_WORKING )
+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 )
diff --git a/src/mame/drivers/rpunch.c b/src/mame/drivers/rpunch.c
index 82271d573e0..e1307464550 100644
--- a/src/mame/drivers/rpunch.c
+++ b/src/mame/drivers/rpunch.c
@@ -833,12 +833,12 @@ DRIVER_INIT_MEMBER(rpunch_state,svolley)
*
*************************************/
-GAME( 1987, rabiolep, 0, rpunch, rabiolep, rpunch_state, rabiolep, ROT0, "V-System Co.", "Rabio Lepus (Japan)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1987, rpunch, rabiolep, rpunch, rpunch, rpunch_state, rabiolep, ROT0, "V-System Co. (Bally/Midway/Sente license)", "Rabbit Punch (US)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1989, svolley, 0, svolley, svolley, rpunch_state, svolley, ROT0, "V-System Co.", "Super Volleyball (Japan)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1989, svolleyk, svolley, svolley, svolley, rpunch_state, svolley, ROT0, "V-System Co.", "Super Volleyball (Korea)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1989, svolleyu, svolley, svolley, svolley, rpunch_state, svolley, ROT0, "V-System Co. (Data East license)", "Super Volleyball (US)", GAME_SUPPORTS_SAVE | GAME_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)", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING | GAME_NO_SOUND | GAME_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/mess/drivers/rsc55.c b/src/mame/drivers/rsc55.c
index 2e951714d1f..4d53cea0f17 100644
--- a/src/mess/drivers/rsc55.c
+++ b/src/mame/drivers/rsc55.c
@@ -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", GAME_NOT_WORKING|GAME_NO_SOUND )
+CONS( 1991, sc55, 0, 0, sc55, sc55, driver_device, 0, "Roland", "Sound Canvas SC-55", MACHINE_NOT_WORKING|MACHINE_NO_SOUND )
diff --git a/src/mess/drivers/rt1715.c b/src/mame/drivers/rt1715.c
index 87b20be4352..30b2a2e43cb 100644
--- a/src/mess/drivers/rt1715.c
+++ b/src/mame/drivers/rt1715.c
@@ -372,6 +372,6 @@ ROM_END
***************************************************************************/
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 1986, rt1715, 0, 0, rt1715, k7658, driver_device, 0, "Robotron", "Robotron PC-1715", GAME_NOT_WORKING | GAME_NO_SOUND_HW)
-COMP( 1986, rt1715lc, rt1715, 0, rt1715, k7658, driver_device, 0, "Robotron", "Robotron PC-1715 (latin/cyrillic)", GAME_NOT_WORKING | GAME_NO_SOUND_HW)
-COMP( 1986, rt1715w, rt1715, 0, rt1715w, k7658, driver_device, 0, "Robotron", "Robotron PC-1715W", GAME_NOT_WORKING | GAME_NO_SOUND_HW)
+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)
diff --git a/src/mame/drivers/runaway.c b/src/mame/drivers/runaway.c
index 2f572df016a..82580583d83 100644
--- a/src/mame/drivers/runaway.c
+++ b/src/mame/drivers/runaway.c
@@ -412,5 +412,5 @@ ROM_START( qwak )
ROM_END
-GAME( 1982, qwak, 0, qwak, qwak, driver_device, 0, ROT270, "Atari", "Qwak (prototype)", GAME_SUPPORTS_SAVE )
-GAME( 1982, runaway, 0, runaway, runaway, driver_device, 0, ROT0, "Atari", "Runaway (prototype)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/rungun.c b/src/mame/drivers/rungun.c
index 985b1c5acd8..190d33ff281 100644
--- a/src/mame/drivers/rungun.c
+++ b/src/mame/drivers/rungun.c
@@ -652,9 +652,9 @@ ROM_START( slmdunkj )
ROM_END
-GAME( 1993, rungun, 0, rng, rng, driver_device, 0, ROT0, "Konami", "Run and Gun (ver EAA 1993 10.8)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_COLORS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1993, runguna, rungun, rng, rng, driver_device, 0, ROT0, "Konami", "Run and Gun (ver EAA 1993 10.4)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_COLORS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1993, rungunb, rungun, rng, rng, driver_device, 0, ROT0, "Konami", "Run and Gun (ver EAA 1993 9.10, prototype?)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_COLORS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1993, rungunu, rungun, rng, rng, driver_device, 0, ROT0, "Konami", "Run and Gun (ver UAB 1993 10.12)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_COLORS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE | GAME_NOT_WORKING ) // runs twice as fast as it should, broken inputs!
-GAME( 1993, rungunua, rungun, rng, rng, driver_device, 0, ROT0, "Konami", "Run and Gun (ver UBA 1993 10.8)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_COLORS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE | GAME_NOT_WORKING ) // runs twice as fast as it should, broken inputs! broken attract!
-GAME( 1993, slmdunkj, rungun, rng, rng, driver_device, 0, ROT0, "Konami", "Slam Dunk (ver JAA 1993 10.8)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_COLORS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+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 | MACHINE_SUPPORTS_SAVE )
+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 | MACHINE_SUPPORTS_SAVE )
+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 | MACHINE_SUPPORTS_SAVE )
+GAME( 1993, rungunu, rungun, rng, rng, driver_device, 0, ROT0, "Konami", "Run and Gun (ver UAB 1993 10.12)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // runs twice as fast as it should, broken inputs!
+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 | MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // runs twice as fast as it should, broken inputs! broken attract!
+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 | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/rvoice.c b/src/mame/drivers/rvoice.c
index 38323a389e4..a91fa959943 100644
--- a/src/mess/drivers/rvoice.c
+++ b/src/mame/drivers/rvoice.c
@@ -402,4 +402,4 @@ ROM_END
******************************************************************************/
/* 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+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/mess/drivers/rx78.c b/src/mame/drivers/rx78.c
index be2f20e388b..be2f20e388b 100644
--- a/src/mess/drivers/rx78.c
+++ b/src/mame/drivers/rx78.c
diff --git a/src/mame/drivers/s11.c b/src/mame/drivers/s11.c
index 1a48378f04b..2b9ef22a0eb 100644
--- a/src/mame/drivers/s11.c
+++ b/src/mame/drivers/s11.c
@@ -676,16 +676,16 @@ ROM_START(shfin_l1)
ROM_REGION(0x10000, "bgcpu", ROMREGION_ERASEFF)
ROM_END
-GAME( 1986, grand_l4, 0, s11, s11, s11_state, s11, ROT0, "Williams", "Grand Lizard (L-4)", GAME_MECHANICAL | GAME_NOT_WORKING)
-GAME( 1986, hs_l4, 0, s11, s11, s11_state, s11, ROT0, "Williams", "High Speed (L-4)", GAME_MECHANICAL | GAME_NOT_WORKING)
-GAME( 1986, hs_l3, hs_l4, s11, s11, s11_state, s11, ROT0, "Williams", "High Speed (L-3)", GAME_MECHANICAL | GAME_NOT_WORKING)
-GAME( 1986, rdkng_l4, 0, s11, s11, s11_state, s11, ROT0, "Williams", "Road Kings (L-4)", GAME_MECHANICAL | GAME_NOT_WORKING)
-GAME( 1986, rdkng_l1, rdkng_l4, s11, s11, s11_state, s11, ROT0, "Williams", "Road Kings (L-1)", GAME_MECHANICAL | GAME_NOT_WORKING)
-GAME( 1986, rdkng_l2, rdkng_l4, s11, s11, s11_state, s11, ROT0, "Williams", "Road Kings (L-2)", GAME_MECHANICAL | GAME_NOT_WORKING)
-GAME( 1986, rdkng_l3, rdkng_l4, s11, s11, s11_state, s11, ROT0, "Williams", "Road Kings (L-3)", GAME_MECHANICAL | GAME_NOT_WORKING)
-
-GAME( 1986, tts_l2, 0, s11, s11, s11_state, s11, ROT0, "Williams", "Tic-Tac-Strike (Shuffle) (L-2)", GAME_MECHANICAL | GAME_NOT_WORKING | GAME_NO_SOUND)
-GAME( 1986, tts_l1, tts_l2, s11, s11, s11_state, s11, ROT0, "Williams", "Tic-Tac-Strike (Shuffle) (L-1)", GAME_MECHANICAL | GAME_NOT_WORKING | GAME_NO_SOUND)
-GAME( 1987, gmine_l2, 0, s11, s11, s11_state, s11, ROT0, "Williams", "Gold Mine (Shuffle) (L-2)", GAME_MECHANICAL | GAME_NOT_WORKING)
-GAME( 1987, tdawg_l1, 0, s11, s11, s11_state, s11, ROT0, "Williams", "Top Dawg (Shuffle) (L-1)", GAME_MECHANICAL | GAME_NOT_WORKING)
-GAME( 1987, shfin_l1, 0, s11, s11, s11_state, s11, ROT0, "Williams", "Shuffle Inn (Shuffle) (L-1)", GAME_MECHANICAL | GAME_NOT_WORKING)
+GAME( 1986, grand_l4, 0, s11, s11, s11_state, s11, ROT0, "Williams", "Grand Lizard (L-4)", 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)
diff --git a/src/mame/drivers/s11a.c b/src/mame/drivers/s11a.c
index 19f87e2b020..3846e84e087 100644
--- a/src/mame/drivers/s11a.c
+++ b/src/mame/drivers/s11a.c
@@ -429,13 +429,13 @@ 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", "F14 Tomcat (L-1)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1987, f14_p3, f14_l1, s11a, s11a, s11a_state, s11a, ROT0, "Williams", "F14 Tomcat (P-3)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1987, f14_p4, f14_l1, s11a, s11a, s11a_state, s11a, ROT0, "Williams", "F14 Tomcat (P-4)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1987, f14_p5, f14_l1, s11a, s11a, s11a_state, s11a, ROT0, "Williams", "F14 Tomcat (P-5)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1987, fire_l3, 0, s11a, s11a, s11a_state, s11a, ROT0, "Williams", "Fire! (L-3)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1987, milln_l3, 0, s11a, s11a, s11a_state, s11a, ROT0, "Williams", "Millionaire (L-3)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1986, pb_l5, 0, s11a, s11a, s11a_state, s11a, ROT0, "Williams", "Pin-Bot (L-5)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1986, pb_l2, pb_l5, s11a, s11a, s11a_state, s11a, ROT0, "Williams", "Pin-Bot (L-2)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1986, pb_l3, pb_l5, s11a, s11a, s11a_state, s11a, ROT0, "Williams", "Pin-Bot (L-3)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1986, pb_p4, pb_l5, s11a, s11a, s11a_state, s11a, ROT0, "Williams", "Pin-Bot (P-4)", GAME_IS_SKELETON_MECHANICAL)
+GAME(1987, f14_l1, 0, s11a, s11a, s11a_state, s11a, ROT0, "Williams", "F14 Tomcat (L-1)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1987, f14_p3, f14_l1, s11a, s11a, s11a_state, s11a, ROT0, "Williams", "F14 Tomcat (P-3)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1987, f14_p4, f14_l1, s11a, s11a, s11a_state, s11a, ROT0, "Williams", "F14 Tomcat (P-4)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1987, f14_p5, f14_l1, s11a, s11a, s11a_state, s11a, ROT0, "Williams", "F14 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, 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_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.c b/src/mame/drivers/s11b.c
index 815ebe333ea..d61ef8cd530 100644
--- a/src/mame/drivers/s11b.c
+++ b/src/mame/drivers/s11b.c
@@ -983,50 +983,50 @@ 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)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1989, bcats_l2, bcats_l5, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Bad Cats (LA-2)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1988, bnzai_l3, 0, s11b, s11b, s11b_state, s11b, ROT0, "Williams", "Banzai Run (L-3)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1988, bnzai_g3, bnzai_l3, s11b, s11b, s11b_state, s11b, ROT0, "Williams", "Banzai Run (L-3) Germany", GAME_IS_SKELETON_MECHANICAL)
-GAME(1988, bnzai_l1, bnzai_l3, s11b, s11b, s11b_state, s11b, ROT0, "Williams", "Banzai Run (L-1)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1988, bnzai_pa, bnzai_l3, s11b, s11b, s11b_state, s11b, ROT0, "Williams", "Banzai Run (P-A)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1987, bguns_l8, 0, s11b, s11b, s11b_state, s11b, ROT0, "Williams", "Big Guns (L-8)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1987, bguns_l7, bguns_l8, s11b, s11b, s11b_state, s11b, ROT0, "Williams", "Big Guns (L-7)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1987, bguns_la, bguns_l8, s11b, s11b, s11b_state, s11b, ROT0, "Williams", "Big Guns (L-A)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1987, bguns_p1, bguns_l8, s11b, s11b, s11b_state, s11b, ROT0, "Williams", "Big Guns (P-1)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1989, bk2k_l4, 0, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Black Knight 2000 (L-4)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1989, bk2k_lg1, bk2k_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Black Knight 2000 (LG-1)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1989, bk2k_lg3, bk2k_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Black Knight 2000 (LG-3)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1989, bk2k_pu1, bk2k_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Black Knight 2000 (PU-1)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1988, cycln_l5, 0, s11b, s11b, s11b_state, s11b, ROT0, "Williams", "Cyclone (L-5)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1988, cycln_l4, cycln_l5, s11b, s11b, s11b_state, s11b, ROT0, "Williams", "Cyclone (L-4)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1988, esha_la3, 0, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Earthshaker (LA-3)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1989, esha_ma3, esha_la3, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Earthshaker (Metallica) (LA-3)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1989, esha_pr4, esha_la3, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Earthshaker (Family version) (PR-4)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1988, esha_lg1, esha_la3, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Earthshaker (German) (LG-1)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1988, esha_lg2, esha_la3, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Earthshaker (German) (LG-2)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1988, esha_la1, esha_la3, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Earthshaker (LA-1)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1988, esha_pa1, esha_la3, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Earthshaker (Prototype) (PA-1)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1989, eatpm_l4, 0, s11b, s11b, s11b_state, s11b_invert, ROT0, "Bally", "Elvira and the Party Monsters (LA-4)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1989, eatpm_l1, eatpm_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Bally", "Elvira and the Party Monsters (LA-1)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1989, eatpm_l2, eatpm_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Bally", "Elvira and the Party Monsters (LA-2)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1989, eatpm_4g, eatpm_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Bally", "Elvira and the Party Monsters (LG-4)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1989, eatpm_4u, eatpm_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Bally", "Elvira and the Party Monsters (LU-4)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1989, eatpm_p7, eatpm_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Bally", "Elvira and the Party Monsters (PA-7)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1989, jokrz_l6, 0, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Jokerz! (L-6)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1989, jokrz_l3, jokrz_l6, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Jokerz! (L-3)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1989, mousn_l4, 0, s11b, s11b, s11b_state, s11b_invert, ROT0, "Bally", "Mousin' Around! (LA-4)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1989, mousn_l1, mousn_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Bally", "Mousin' Around! (LA-1)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1989, mousn_lu, mousn_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Bally", "Mousin' Around! (LU-1)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1989, mousn_lx, mousn_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Bally", "Mousin' Around! (LX-1)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1989, polic_l4, 0, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Police Force (LA-4)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1989, polic_l3, polic_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Police Force (LA-3)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1989, polic_l2, polic_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Police Force (LA-2)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1988, spstn_l5, 0, s11b, s11b, s11b_state, s11b, ROT0, "Williams", "Space Station (L-5)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1988, swrds_l2, 0, s11b, s11b, s11b_state, s11b, ROT0, "Williams", "Swords of Fury (L-2)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1988, taxi_l4, 0, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Taxi (Lola) (L-4)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1988, taxi_l3, taxi_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Taxi (Marilyn) (L-3)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1988, taxi_lg1, taxi_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Taxi (Marilyn) (L-1) Germany", GAME_IS_SKELETON_MECHANICAL)
-GAME(1989, tsptr_l3, 0, s11b, s11b, s11b_state, s11b_invert, ROT0, "Bally", "Transporter the Rescue (L-3)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1990, whirl_l3, 0, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Whirlwind (L-3)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1990, whirl_l2, whirl_l3, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Whirlwind (L-2)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1990, whirl_lg3, whirl_l3, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Whirlwind (LG-3)", GAME_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(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, 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, 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_lg1, taxi_l4, s11b, s11b, s11b_state, s11b_invert, ROT0, "Williams", "Taxi (Marilyn) (L-1) Germany", 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.c b/src/mame/drivers/s11c.c
index c77c95e590a..6d6f7f98ca8 100644
--- a/src/mame/drivers/s11c.c
+++ b/src/mame/drivers/s11c.c
@@ -527,28 +527,28 @@ ROM_START(strax_p7)
ROM_END
-GAME(1990, bbnny_l2, 0, s11c, s11c, s11c_state, s11c, ROT0, "Bally", "Bugs Bunny Birthday Ball (L-2)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1990, bbnny_lu, bbnny_l2, s11c, s11c, s11c_state, s11c, ROT0, "Bally", "Bugs Bunny Birthday Ball (LU-2) European", GAME_IS_SKELETON_MECHANICAL)
-GAME(1990, diner_l4, 0, s11c, s11c, s11c_state, s11c, ROT0, "Williams", "Diner (L-4)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1990, diner_l3, diner_l4, s11c, s11c, s11c_state, s11c, ROT0, "Williams", "Diner (L-3)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1990, diner_l1, diner_l4, s11c, s11c, s11c_state, s11c, ROT0, "Williams", "Diner (L-1) Europe", GAME_IS_SKELETON_MECHANICAL)
-GAME(1990, dd_l2, 0, s11c, s11c, s11c_state, s11c, ROT0, "Bally", "Dr. Dude (LA-2)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1990, dd_p6, dd_l2, s11c, s11c, s11c_state, s11c, ROT0, "Bally", "Dr. Dude (PA-6)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1990, pool_l7, 0, s11c, s11c, s11c_state, s11c, ROT0, "Bally", "Pool Sharks (LA-7)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1990, pool_l6, pool_l7, s11c, s11c, s11c_state, s11c, ROT0, "Bally", "Pool Sharks (LA-6)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1990, pool_l5, pool_l7, s11c, s11c, s11c_state, s11c, ROT0, "Bally", "Pool Sharks (LA-5)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1990, pool_le2, pool_l7, s11c, s11c, s11c_state, s11c, ROT0, "Bally", "Pool Sharks (LE-2)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1989, pool_p7, pool_l7, s11c, s11c, s11c_state, s11c, ROT0, "Bally", "Pool Sharks (PA-7)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1990, radcl_l1, 0, s11c, s11c, s11c_state, s11c, ROT0, "Bally", "Radical! (L-1)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1990, radcl_g1, radcl_l1, s11c, s11c, s11c_state, s11c, ROT0, "Bally", "Radical! (G-1)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1990, radcl_p3, radcl_l1, s11c, s11c, s11c_state, s11c, ROT0, "Bally", "Radical! (P-3)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1990, rvrbt_l3, 0, s11c, s11c, s11c_state, s11c, ROT0, "Williams", "Riverboat Gambler (L-3)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1990, rollr_l2, 0, s11c, s11c, s11c_state, s11c, ROT0, "Williams", "Rollergames (L-2)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1991, rollr_ex, rollr_l2, s11c, s11c, s11c_state, s11c, ROT0, "Williams", "Rollergames (EXPERIMENTAL)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1991, rollr_e1, rollr_l2, s11c, s11c, s11c_state, s11c, ROT0, "Williams", "Rollergames (PU-1)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1991, rollr_p2, rollr_l2, s11c, s11c, s11c_state, s11c, ROT0, "Williams", "Rollergames (PA-2 / PA-1 Sound)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1990, rollr_l3, rollr_l2, s11c, s11c, s11c_state, s11c, ROT0, "Williams", "Rollergames (LU-3) Europe", GAME_IS_SKELETON_MECHANICAL)
-GAME(1990, rollr_g3, rollr_l2, s11c, s11c, s11c_state, s11c, ROT0, "Williams", "Rollergames (LG-3) Germany", GAME_IS_SKELETON_MECHANICAL)
-GAME(1990, gs_l3, gs_l4, s11c, s11c, s11c_state, s11c, ROT0, "Bally", "The Bally Game Show (L-3)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1990, gs_l4, 0, s11c, s11c, s11c_state, s11c, ROT0, "Bally", "The Bally Game Show (L-4)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1990, strax_p7, 0, s11c, s11c, s11c_state, s11c, ROT0, "Williams", "Star Trax (domestic prototype)", GAME_IS_SKELETON_MECHANICAL)
+GAME(1990, bbnny_l2, 0, s11c, s11c, s11c_state, s11c, ROT0, "Bally", "Bugs Bunny Birthday Ball (L-2)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1990, bbnny_lu, bbnny_l2, s11c, s11c, s11c_state, s11c, ROT0, "Bally", "Bugs Bunny Birthday Ball (LU-2) European", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1990, diner_l4, 0, s11c, s11c, s11c_state, s11c, ROT0, "Williams", "Diner (L-4)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1990, diner_l3, diner_l4, s11c, s11c, s11c_state, s11c, ROT0, "Williams", "Diner (L-3)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1990, diner_l1, diner_l4, s11c, s11c, s11c_state, s11c, ROT0, "Williams", "Diner (L-1) Europe", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1990, dd_l2, 0, s11c, s11c, s11c_state, s11c, ROT0, "Bally", "Dr. Dude (LA-2)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1990, dd_p6, dd_l2, s11c, s11c, s11c_state, s11c, ROT0, "Bally", "Dr. Dude (PA-6)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1990, pool_l7, 0, s11c, s11c, s11c_state, s11c, ROT0, "Bally", "Pool Sharks (LA-7)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1990, pool_l6, pool_l7, s11c, s11c, s11c_state, s11c, ROT0, "Bally", "Pool Sharks (LA-6)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1990, pool_l5, pool_l7, s11c, s11c, s11c_state, s11c, ROT0, "Bally", "Pool Sharks (LA-5)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1990, pool_le2, pool_l7, s11c, s11c, s11c_state, s11c, ROT0, "Bally", "Pool Sharks (LE-2)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1989, pool_p7, pool_l7, s11c, s11c, s11c_state, s11c, ROT0, "Bally", "Pool Sharks (PA-7)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1990, radcl_l1, 0, s11c, s11c, s11c_state, s11c, ROT0, "Bally", "Radical! (L-1)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1990, radcl_g1, radcl_l1, s11c, s11c, s11c_state, s11c, ROT0, "Bally", "Radical! (G-1)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1990, radcl_p3, radcl_l1, s11c, s11c, s11c_state, s11c, ROT0, "Bally", "Radical! (P-3)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1990, rvrbt_l3, 0, s11c, s11c, s11c_state, s11c, ROT0, "Williams", "Riverboat Gambler (L-3)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1990, rollr_l2, 0, s11c, s11c, s11c_state, s11c, ROT0, "Williams", "Rollergames (L-2)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1991, rollr_ex, rollr_l2, s11c, s11c, s11c_state, s11c, ROT0, "Williams", "Rollergames (EXPERIMENTAL)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1991, rollr_e1, rollr_l2, s11c, s11c, s11c_state, s11c, ROT0, "Williams", "Rollergames (PU-1)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1991, rollr_p2, rollr_l2, s11c, s11c, s11c_state, s11c, ROT0, "Williams", "Rollergames (PA-2 / PA-1 Sound)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1990, rollr_l3, rollr_l2, s11c, s11c, s11c_state, s11c, ROT0, "Williams", "Rollergames (LU-3) Europe", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1990, rollr_g3, rollr_l2, s11c, s11c, s11c_state, s11c, ROT0, "Williams", "Rollergames (LG-3) Germany", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1990, gs_l3, gs_l4, s11c, s11c, s11c_state, s11c, ROT0, "Bally", "The Bally Game Show (L-3)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1990, gs_l4, 0, s11c, s11c, s11c_state, s11c, ROT0, "Bally", "The Bally Game Show (L-4)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1990, strax_p7, 0, s11c, s11c, s11c_state, s11c, ROT0, "Williams", "Star Trax (domestic prototype)", MACHINE_IS_SKELETON_MECHANICAL)
diff --git a/src/mame/drivers/s3.c b/src/mame/drivers/s3.c
index 13e7f620afa..9f28c5a0d08 100644
--- a/src/mame/drivers/s3.c
+++ b/src/mame/drivers/s3.c
@@ -578,10 +578,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)", GAME_MECHANICAL )
-GAME( 1977, lucky_l1, 0, s3, s3, driver_device, 0, ROT0, "Williams", "Lucky Seven (L-1)", GAME_MECHANICAL )
-GAME( 1978, wldcp_l1, 0, s3a, s3, driver_device, 0, ROT0, "Williams", "World Cup Soccer (L-1)", GAME_MECHANICAL )
-GAME( 1978, cntct_l1, 0, s3a, s3, driver_device, 0, ROT0, "Williams", "Contact (L-1)", GAME_MECHANICAL )
-GAME( 1978, disco_l1, 0, s3a, s3, driver_device, 0, ROT0, "Williams", "Disco Fever (L-1)", GAME_MECHANICAL )
-GAME( 1978, phnix_l1, 0, s3a, s3, driver_device, 0, ROT0, "Williams", "Phoenix (L-1)", GAME_MECHANICAL )
-GAME( 1978, pkrno_l1, 0, s3a, s3, driver_device, 0, ROT0, "Williams", "Pokerino (L-1)", GAME_MECHANICAL )
+GAME( 1977, httip_l1, 0, s3, s3, driver_device, 0, ROT0, "Williams", "Hot Tip (L-1)", MACHINE_MECHANICAL )
+GAME( 1977, lucky_l1, 0, s3, s3, driver_device, 0, ROT0, "Williams", "Lucky Seven (L-1)", MACHINE_MECHANICAL )
+GAME( 1978, wldcp_l1, 0, s3a, s3, driver_device, 0, ROT0, "Williams", "World Cup Soccer (L-1)", MACHINE_MECHANICAL )
+GAME( 1978, cntct_l1, 0, s3a, s3, driver_device, 0, ROT0, "Williams", "Contact (L-1)", MACHINE_MECHANICAL )
+GAME( 1978, disco_l1, 0, s3a, s3, driver_device, 0, ROT0, "Williams", "Disco Fever (L-1)", MACHINE_MECHANICAL )
+GAME( 1978, phnix_l1, 0, s3a, s3, driver_device, 0, ROT0, "Williams", "Phoenix (L-1)", MACHINE_MECHANICAL )
+GAME( 1978, pkrno_l1, 0, s3a, s3, driver_device, 0, ROT0, "Williams", "Pokerino (L-1)", MACHINE_MECHANICAL )
diff --git a/src/mame/drivers/s4.c b/src/mame/drivers/s4.c
index 58cee921efc..4cb5a9a156a 100644
--- a/src/mame/drivers/s4.c
+++ b/src/mame/drivers/s4.c
@@ -678,20 +678,20 @@ ROM_START(tstrk_l1)
ROM_END
-GAME( 1979, flash_l2, 0, s4a, s4, driver_device, 0, ROT0, "Williams", "Flash (L-2)", GAME_MECHANICAL )
-GAME( 1979, flash_l1, flash_l2, s4a, s4, driver_device, 0, ROT0, "Williams", "Flash (L-1)", GAME_MECHANICAL )
-GAME( 1979, flash_t1, flash_l2, s4a, s4, driver_device, 0, ROT0, "Williams", "Flash (T-1) Ted Estes", GAME_MECHANICAL )
-GAME( 1978, trizn_l1, 0, s4a, s4, driver_device, 0, ROT0, "Williams", "Tri Zone (L-1)", GAME_MECHANICAL )
-GAME( 1978, trizn_t1, trizn_l1, s4a, s4, driver_device, 0, ROT0, "Williams", "Tri Zone (T-1)", GAME_MECHANICAL )
-GAME( 1979, tmwrp_l2, 0, s4a, s4, driver_device, 0, ROT0, "Williams", "Time Warp (L-2)", GAME_MECHANICAL )
-GAME( 1979, tmwrp_t2, tmwrp_l2, s4a, s4, driver_device, 0, ROT0, "Williams", "Time Warp (T-2)", GAME_MECHANICAL )
-GAME( 1979, stlwr_l2, 0, s4a, s4, driver_device, 0, ROT0, "Williams", "Stellar Wars (L-2)", GAME_MECHANICAL )
-
-GAME( 1978, pomp_l1, 0, s4a, s4, driver_device, 0, ROT0, "Williams", "Pompeii (Shuffle) (L-1)", GAME_MECHANICAL | GAME_NOT_WORKING)
-GAME( 1978, arist_l1, 0, s4a, s4, driver_device, 0, ROT0, "Williams", "Aristocrat (Shuffle) (L-1)", GAME_MECHANICAL | GAME_NOT_WORKING)
-GAME( 1978, topaz_l1, 0, s4a, s4, driver_device, 0, ROT0, "Williams", "Topaz (Shuffle) (L-1)", GAME_MECHANICAL | GAME_NOT_WORKING)
-GAME( 1979, taurs_l1, 0, s4a, s4, driver_device, 0, ROT0, "Williams", "Taurus (Shuffle) (L-1)", GAME_MECHANICAL | GAME_NOT_WORKING)
-GAME( 1979, kingt_l1, 0, s4a, s4, driver_device, 0, ROT0, "Williams", "King Tut (Shuffle) (L-1)", GAME_MECHANICAL | GAME_NOT_WORKING)
-GAME( 1980, omni_l1, 0, s4a, s4, driver_device, 0, ROT0, "Williams", "Omni (Shuffle) (L-1)", GAME_MECHANICAL | GAME_NOT_WORKING | GAME_NO_SOUND)
-GAME( 1983, bstrk_l1, 0, s4, s4, driver_device, 0, ROT0, "Williams", "Big Strike (Shuffle) (L-1)", GAME_MECHANICAL | GAME_NOT_WORKING | GAME_NO_SOUND)
-GAME( 1983, tstrk_l1, 0, s4, s4, driver_device, 0, ROT0, "Williams", "Triple Strike (Shuffle) (L-1)", GAME_MECHANICAL | GAME_NOT_WORKING | GAME_NO_SOUND)
+GAME( 1979, flash_l2, 0, s4a, s4, driver_device, 0, ROT0, "Williams", "Flash (L-2)", MACHINE_MECHANICAL )
+GAME( 1979, flash_l1, flash_l2, s4a, s4, driver_device, 0, ROT0, "Williams", "Flash (L-1)", MACHINE_MECHANICAL )
+GAME( 1979, flash_t1, flash_l2, s4a, s4, driver_device, 0, ROT0, "Williams", "Flash (T-1) Ted Estes", MACHINE_MECHANICAL )
+GAME( 1978, trizn_l1, 0, s4a, s4, driver_device, 0, ROT0, "Williams", "Tri Zone (L-1)", MACHINE_MECHANICAL )
+GAME( 1978, trizn_t1, trizn_l1, s4a, s4, driver_device, 0, ROT0, "Williams", "Tri Zone (T-1)", MACHINE_MECHANICAL )
+GAME( 1979, tmwrp_l2, 0, s4a, s4, driver_device, 0, ROT0, "Williams", "Time Warp (L-2)", MACHINE_MECHANICAL )
+GAME( 1979, tmwrp_t2, tmwrp_l2, s4a, s4, driver_device, 0, ROT0, "Williams", "Time Warp (T-2)", MACHINE_MECHANICAL )
+GAME( 1979, stlwr_l2, 0, s4a, s4, driver_device, 0, ROT0, "Williams", "Stellar Wars (L-2)", MACHINE_MECHANICAL )
+
+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)
diff --git a/src/mame/drivers/s6.c b/src/mame/drivers/s6.c
index ab2908b0ad5..e47b7da9b3f 100644
--- a/src/mame/drivers/s6.c
+++ b/src/mame/drivers/s6.c
@@ -634,15 +634,15 @@ ROM_START(frpwr_l2)
ROM_END
-GAME( 1979, lzbal_l2, 0, s6, s6, s6_state, s6, ROT0, "Williams", "Laser Ball (L-2)", GAME_MECHANICAL )
-GAME( 1980, lzbal_t2, lzbal_l2, s6, s6, s6_state, s6, ROT0, "Williams", "Laser Ball (T-2)", GAME_MECHANICAL )
-GAME( 1980, scrpn_l1, 0, s6, s6, s6_state, s6, ROT0, "Williams", "Scorpion (L-1)", GAME_MECHANICAL )
-GAME( 1980, scrpn_t1, scrpn_l1, s6, s6, s6_state, s6, ROT0, "Williams", "Scorpion (T-1)", GAME_MECHANICAL )
-GAME( 1979, blkou_l1, 0, s6, s6, s6_state, s6, ROT0, "Williams", "Blackout (L-1)", GAME_MECHANICAL )
-GAME( 1979, blkou_t1, blkou_l1, s6, s6, s6_state, s6, ROT0, "Williams", "Blackout (T-1)", GAME_MECHANICAL )
-GAME( 1979, blkou_f1, blkou_l1, s6, s6, s6_state, s6, ROT0, "Williams", "Blackout (L-1, French Speech)", GAME_MECHANICAL )
-GAME( 1979, grgar_l1, 0, s6, s6, s6_state, s6, ROT0, "Williams", "Gorgar (L-1)", GAME_MECHANICAL )
-GAME( 1979, grgar_t1, grgar_l1, s6, s6, s6_state, s6, ROT0, "Williams", "Gorgar (T-1)", GAME_MECHANICAL )
-GAME( 1980, frpwr_l6, 0, s6, s6, s6_state, s6, ROT0, "Williams", "Firepower (L-6)", GAME_MECHANICAL | GAME_NOT_WORKING | GAME_NO_SOUND)
-GAME( 1980, frpwr_t6, frpwr_l6, s6, s6, s6_state, s6, ROT0, "Williams", "Firepower (T-6)", GAME_MECHANICAL | GAME_NOT_WORKING | GAME_NO_SOUND)
-GAME( 1980, frpwr_l2, frpwr_l6, s6, s6, s6_state, s6, ROT0, "Williams", "Firepower (L-2)", GAME_MECHANICAL | GAME_NOT_WORKING | GAME_NO_SOUND)
+GAME( 1979, lzbal_l2, 0, s6, s6, s6_state, s6, ROT0, "Williams", "Laser Ball (L-2)", MACHINE_MECHANICAL )
+GAME( 1980, lzbal_t2, lzbal_l2, s6, s6, s6_state, s6, ROT0, "Williams", "Laser Ball (T-2)", MACHINE_MECHANICAL )
+GAME( 1980, scrpn_l1, 0, s6, s6, s6_state, s6, ROT0, "Williams", "Scorpion (L-1)", MACHINE_MECHANICAL )
+GAME( 1980, scrpn_t1, scrpn_l1, s6, s6, s6_state, s6, ROT0, "Williams", "Scorpion (T-1)", MACHINE_MECHANICAL )
+GAME( 1979, blkou_l1, 0, s6, s6, s6_state, s6, ROT0, "Williams", "Blackout (L-1)", MACHINE_MECHANICAL )
+GAME( 1979, blkou_t1, blkou_l1, s6, s6, s6_state, s6, ROT0, "Williams", "Blackout (T-1)", MACHINE_MECHANICAL )
+GAME( 1979, blkou_f1, blkou_l1, s6, s6, s6_state, s6, ROT0, "Williams", "Blackout (L-1, French Speech)", MACHINE_MECHANICAL )
+GAME( 1979, grgar_l1, 0, s6, s6, s6_state, s6, ROT0, "Williams", "Gorgar (L-1)", MACHINE_MECHANICAL )
+GAME( 1979, grgar_t1, grgar_l1, s6, s6, s6_state, s6, ROT0, "Williams", "Gorgar (T-1)", MACHINE_MECHANICAL )
+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.c b/src/mame/drivers/s6a.c
index 60fa4b123e3..f04eff01f57 100644
--- a/src/mame/drivers/s6a.c
+++ b/src/mame/drivers/s6a.c
@@ -502,7 +502,7 @@ ROM_START(alpok_f6)
ROM_END
-GAME(1980,algar_l1, 0, s6a, s6a, s6a_state, s6a, ROT0, "Williams", "Algar (L-1)", GAME_MECHANICAL )
-GAME(1980,alpok_l6, 0, s6a, s6a, s6a_state, s6a, ROT0, "Williams", "Alien Poker (L-6)", GAME_MECHANICAL )
-GAME(1980,alpok_l2, alpok_l6,s6a, s6a, s6a_state, s6a, ROT0, "Williams", "Alien Poker (L-2)", GAME_MECHANICAL )
-GAME(1980,alpok_f6, alpok_l6,s6a, s6a, s6a_state, s6a, ROT0, "Williams", "Alien Poker (L-6 French speech)", GAME_MECHANICAL )
+GAME(1980,algar_l1, 0, s6a, s6a, s6a_state, s6a, ROT0, "Williams", "Algar (L-1)", MACHINE_MECHANICAL )
+GAME(1980,alpok_l6, 0, s6a, s6a, s6a_state, s6a, ROT0, "Williams", "Alien Poker (L-6)", MACHINE_MECHANICAL )
+GAME(1980,alpok_l2, alpok_l6,s6a, s6a, s6a_state, s6a, ROT0, "Williams", "Alien Poker (L-2)", MACHINE_MECHANICAL )
+GAME(1980,alpok_f6, alpok_l6,s6a, s6a, s6a_state, s6a, ROT0, "Williams", "Alien Poker (L-6 French speech)", MACHINE_MECHANICAL )
diff --git a/src/mame/drivers/s7.c b/src/mame/drivers/s7.c
index 41f81000a1b..9cda2347363 100644
--- a/src/mame/drivers/s7.c
+++ b/src/mame/drivers/s7.c
@@ -835,26 +835,26 @@ ROM_END
-GAME( 1980, bk_l4, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Black Knight (L-4)", GAME_MECHANICAL )
-GAME( 1980, bk_f4, bk_l4, s7, s7, s7_state, s7, ROT0, "Williams", "Black Knight (L-4, French speech)", GAME_MECHANICAL )
-GAME( 1980, bk_l3, bk_l4, s7, s7, s7_state, s7, ROT0, "Williams", "Black Knight (L-3)", GAME_MECHANICAL )
-GAME( 1980, csmic_l1, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Cosmic Gunfight (L-1)", GAME_MECHANICAL )
-GAME( 1981, jngld_l2, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Jungle Lord (L-2)", GAME_MECHANICAL )
-GAME( 1981, jngld_l1, jngld_l2, s7, s7, s7_state, s7, ROT0, "Williams", "Jungle Lord (L-1)", GAME_MECHANICAL )
-GAME( 1981, pharo_l2, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Pharaoh (L-2)", GAME_MECHANICAL )
-GAME( 1981, solar_l2, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Solar Fire (L-2)", GAME_MECHANICAL | GAME_NOT_WORKING | GAME_NO_SOUND)
-GAME( 1982, thund_p1, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Thunderball (P-1)", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
-GAME( 1982, thund_p2, thund_p1, s7, s7, s7_state, s7, ROT0, "Williams", "Thunderball (P-2)", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
-GAME( 1982, thund_p3, thund_p1, s7, s7, s7_state, s7, ROT0, "Williams", "Thunderball (P-3)", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
-GAME( 1981, hypbl_l4, 0, s7, s7, s7_state, s7, ROT0, "Williams", "HyperBall (L-4)", GAME_MECHANICAL | GAME_NOT_WORKING )
-GAME( 1981, hypbl_l2, hypbl_l4, s7, s7, s7_state, s7, ROT0, "Williams", "HyperBall (L-2)", GAME_MECHANICAL | GAME_NOT_WORKING )
-GAME( 1981, barra_l1, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Barracora (L-1)", GAME_MECHANICAL | GAME_NOT_WORKING | GAME_NO_SOUND)
-GAME( 1982, vrkon_l1, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Varkon (L-1)", GAME_MECHANICAL )
-GAME( 1982, tmfnt_l5, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Time Fantasy (L-5)", GAME_MECHANICAL )
-GAME( 1982, wrlok_l3, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Warlok (L-3)", GAME_MECHANICAL )
-GAME( 1982, dfndr_l4, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Defender (L-4)", GAME_MECHANICAL )
-GAME( 1983, jst_l2, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Joust (L-2)", GAME_MECHANICAL | GAME_NOT_WORKING )
-GAME( 1983, jst_l1, jst_l2, s7, s7, s7_state, s7, ROT0, "Williams", "Joust (L-1)", GAME_MECHANICAL | GAME_NOT_WORKING )
-GAME( 1983, lsrcu_l2, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Laser Cue (L-2)", GAME_MECHANICAL )
-GAME( 1983, fpwr2_l2, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Firepower II (L-2)", GAME_MECHANICAL )
-GAME( 1984, strlt_l1, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Star Light (L-1)", GAME_MECHANICAL )
+GAME( 1980, bk_l4, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Black Knight (L-4)", MACHINE_MECHANICAL )
+GAME( 1980, bk_f4, bk_l4, s7, s7, s7_state, s7, ROT0, "Williams", "Black Knight (L-4, French speech)", MACHINE_MECHANICAL )
+GAME( 1980, bk_l3, bk_l4, s7, s7, s7_state, s7, ROT0, "Williams", "Black Knight (L-3)", MACHINE_MECHANICAL )
+GAME( 1980, csmic_l1, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Cosmic Gunfight (L-1)", MACHINE_MECHANICAL )
+GAME( 1981, jngld_l2, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Jungle Lord (L-2)", MACHINE_MECHANICAL )
+GAME( 1981, jngld_l1, jngld_l2, s7, s7, s7_state, s7, ROT0, "Williams", "Jungle Lord (L-1)", MACHINE_MECHANICAL )
+GAME( 1981, pharo_l2, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Pharaoh (L-2)", MACHINE_MECHANICAL )
+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_IMPERFECT_SOUND )
+GAME( 1982, thund_p2, thund_p1, s7, s7, s7_state, s7, ROT0, "Williams", "Thunderball (P-2)", MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND )
+GAME( 1982, thund_p3, thund_p1, s7, s7, s7_state, s7, ROT0, "Williams", "Thunderball (P-3)", MACHINE_MECHANICAL | 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_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 )
+GAME( 1982, tmfnt_l5, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Time Fantasy (L-5)", MACHINE_MECHANICAL )
+GAME( 1982, wrlok_l3, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Warlok (L-3)", MACHINE_MECHANICAL )
+GAME( 1982, dfndr_l4, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Defender (L-4)", MACHINE_MECHANICAL )
+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 )
+GAME( 1983, fpwr2_l2, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Firepower II (L-2)", MACHINE_MECHANICAL )
+GAME( 1984, strlt_l1, 0, s7, s7, s7_state, s7, ROT0, "Williams", "Star Light (L-1)", MACHINE_MECHANICAL )
diff --git a/src/mame/drivers/s8.c b/src/mame/drivers/s8.c
index c9fbf1d1a31..e5a663572d3 100644
--- a/src/mame/drivers/s8.c
+++ b/src/mame/drivers/s8.c
@@ -385,5 +385,5 @@ ROM_START(pfevr_p3)
ROM_END
-GAME(1984,pfevr_l2, 0, s8, s8, s8_state, s8, ROT0, "Williams", "Pennant Fever (L-2)", GAME_MECHANICAL)
-GAME(1984,pfevr_p3, pfevr_l2, s8, s8, s8_state, s8, ROT0, "Williams", "Pennant Fever (P-3)", GAME_MECHANICAL)
+GAME(1984,pfevr_l2, 0, s8, s8, s8_state, s8, ROT0, "Williams", "Pennant Fever (L-2)", MACHINE_MECHANICAL)
+GAME(1984,pfevr_p3, pfevr_l2, s8, s8, s8_state, s8, ROT0, "Williams", "Pennant Fever (P-3)", MACHINE_MECHANICAL)
diff --git a/src/mame/drivers/s8a.c b/src/mame/drivers/s8a.c
index 8baaa712bea..846c65170c0 100644
--- a/src/mame/drivers/s8a.c
+++ b/src/mame/drivers/s8a.c
@@ -348,4 +348,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", GAME_MECHANICAL )
+GAME(1984,scrzy_l1, 0, s8a, s8a, s8a_state, s8a, ROT0, "Williams", "Still Crazy", MACHINE_MECHANICAL )
diff --git a/src/mame/drivers/s9.c b/src/mame/drivers/s9.c
index 50cc24077ee..6f0dda53133 100644
--- a/src/mame/drivers/s9.c
+++ b/src/mame/drivers/s9.c
@@ -496,12 +496,12 @@ ROM_START(alcat_l7)
ROM_END
-GAME( 1983, ratrc_l1, 0, s9, s9, s9_state, s9, ROT0, "Williams", "Rat Race (L-1)", GAME_MECHANICAL | GAME_NOT_WORKING)
-GAME( 1985, sorcr_l1, sorcr_l2, s9, s9, s9_state, s9, ROT0, "Williams", "Sorcerer (L-1)", GAME_MECHANICAL )
-GAME( 1985, sorcr_l2, 0, s9, s9, s9_state, s9, ROT0, "Williams", "Sorcerer (L-2)", GAME_MECHANICAL )
-GAME( 1984, sshtl_l7, 0, s9, s9, s9_state, s9, ROT0, "Williams", "Space Shuttle (L-7)", GAME_MECHANICAL )
-GAME( 1985, comet_l4, comet_l5, s9, s9, s9_state, s9, ROT0, "Williams", "Comet (L-4)", GAME_MECHANICAL)
-GAME( 1985, comet_l5, 0, s9, s9, s9_state, s9, ROT0, "Williams", "Comet (L-5)", GAME_MECHANICAL)
-GAME( 1984, szone_l5, 0, s9, s9, s9_state, s9, ROT0, "Williams", "Strike Zone (Shuffle) (L-5)", GAME_MECHANICAL | GAME_NOT_WORKING)
-GAME( 1984, szone_l2, szone_l5, s9, s9, s9_state, s9, ROT0, "Williams", "Strike Zone (Shuffle) (L-2)", GAME_MECHANICAL | GAME_NOT_WORKING)
-GAME( 1985, alcat_l7, 0, s9, s9, s9_state, s9, ROT0, "Williams", "Alley Cats (Shuffle) (L-7)", GAME_MECHANICAL | GAME_NOT_WORKING | GAME_NO_SOUND)
+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 )
+GAME( 1985, sorcr_l2, 0, s9, s9, s9_state, s9, ROT0, "Williams", "Sorcerer (L-2)", MACHINE_MECHANICAL )
+GAME( 1984, sshtl_l7, 0, s9, s9, s9_state, s9, ROT0, "Williams", "Space Shuttle (L-7)", MACHINE_MECHANICAL )
+GAME( 1985, comet_l4, comet_l5, s9, s9, s9_state, s9, ROT0, "Williams", "Comet (L-4)", MACHINE_MECHANICAL)
+GAME( 1985, comet_l5, 0, s9, s9, s9_state, s9, ROT0, "Williams", "Comet (L-5)", MACHINE_MECHANICAL)
+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)
diff --git a/src/mess/drivers/sacstate.c b/src/mame/drivers/sacstate.c
index 25425d88ffc..ac86d563934 100644
--- a/src/mess/drivers/sacstate.c
+++ b/src/mame/drivers/sacstate.c
@@ -155,4 +155,4 @@ 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", GAME_NO_SOUND_HW)
+COMP( 1973, sacstate, 0, 0, sacstate, sacstate, driver_device, 0, "SacState", "SacState 8008", MACHINE_NO_SOUND_HW)
diff --git a/src/mame/drivers/safarir.c b/src/mame/drivers/safarir.c
index e2290583c3a..f04a846576d 100644
--- a/src/mame/drivers/safarir.c
+++ b/src/mame/drivers/safarir.c
@@ -498,5 +498,5 @@ ROM_END
*
*************************************/
-GAME( 1979, safarir, 0, safarir, safarir, driver_device, 0, ROT90, "SNK (Taito license)", "Safari Rally (World)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
-GAME( 1979, safarirj, safarir, safarir, safarir, driver_device, 0, ROT90, "SNK", "Safari Rally (Japan)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
+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 )
diff --git a/src/mess/drivers/sage2.c b/src/mame/drivers/sage2.c
index e95fad61555..6ba6993a153 100644
--- a/src/mess/drivers/sage2.c
+++ b/src/mame/drivers/sage2.c
@@ -566,4 +566,4 @@ DRIVER_INIT_MEMBER(sage2_state,sage2)
//**************************************************************************
// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS
-COMP( 1982, sage2, 0, 0, sage2, sage2, sage2_state, sage2, "Sage Technology", "Sage II", GAME_NOT_WORKING | GAME_NO_SOUND )
+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.c b/src/mame/drivers/sam.c
index ab6d7fbcba2..7053c7b955a 100644
--- a/src/mame/drivers/sam.c
+++ b/src/mame/drivers/sam.c
@@ -1066,213 +1066,213 @@ ROM_START(wpt_1400l)
ROM_LOAD( "wpt1400l.bin", 0x0000, 0x1c7072c, CRC(00eff09c) SHA1(847203d4d2ce8d11a5403374f2d5b6dda8458bc9))
ROM_END
-GAME( 2009, 24_130 ,24_150, sam, sam, driver_device, 0, ROT0, "Stern", "24 v1.30", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2009, 24_140 ,24_150, sam, sam, driver_device, 0, ROT0, "Stern", "24 v1.40", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2009, 24_144 ,24_150, sam, sam, driver_device, 0, ROT0, "Stern", "24 v1.44", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2009, 24_150 ,0, sam, sam, driver_device, 0, ROT0, "Stern", "24 v1.50", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2008, bdk_130 ,bdk_294, sam, sam, driver_device, 0, ROT0, "Stern", "Batman - The Dark Knight v1.30", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2008, bdk_150 ,bdk_294, sam, sam, driver_device, 0, ROT0, "Stern", "Batman - The Dark Knight v1.50", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2008, bdk_160 ,bdk_294, sam, sam, driver_device, 0, ROT0, "Stern", "Batman - The Dark Knight v1.60", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2008, bdk_200 ,bdk_294, sam, sam, driver_device, 0, ROT0, "Stern", "Batman - The Dark Knight v2.00", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2008, bdk_210 ,bdk_294, sam, sam, driver_device, 0, ROT0, "Stern", "Batman - The Dark Knight v2.10", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2008, bdk_220 ,bdk_294, sam, sam, driver_device, 0, ROT0, "Stern", "Batman - The Dark Knight v2.20", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2008, bdk_290 ,bdk_294, sam, sam, driver_device, 0, ROT0, "Stern", "Batman - The Dark Knight v2.90", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2008, bdk_294 ,0, sam, sam, driver_device, 0, ROT0, "Stern", "Batman - The Dark Knight v2.94", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
+GAME( 2009, 24_130 ,24_150, sam, sam, driver_device, 0, ROT0, "Stern", "24 v1.30", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2009, 24_140 ,24_150, sam, sam, driver_device, 0, ROT0, "Stern", "24 v1.40", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2009, 24_144 ,24_150, sam, sam, driver_device, 0, ROT0, "Stern", "24 v1.44", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2009, 24_150 ,0, sam, sam, driver_device, 0, ROT0, "Stern", "24 v1.50", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2008, bdk_130 ,bdk_294, sam, sam, driver_device, 0, ROT0, "Stern", "Batman - The Dark Knight v1.30", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2008, bdk_150 ,bdk_294, sam, sam, driver_device, 0, ROT0, "Stern", "Batman - The Dark Knight v1.50", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2008, bdk_160 ,bdk_294, sam, sam, driver_device, 0, ROT0, "Stern", "Batman - The Dark Knight v1.60", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2008, bdk_200 ,bdk_294, sam, sam, driver_device, 0, ROT0, "Stern", "Batman - The Dark Knight v2.00", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2008, bdk_210 ,bdk_294, sam, sam, driver_device, 0, ROT0, "Stern", "Batman - The Dark Knight v2.10", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2008, bdk_220 ,bdk_294, sam, sam, driver_device, 0, ROT0, "Stern", "Batman - The Dark Knight v2.20", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2008, bdk_290 ,bdk_294, sam, sam, driver_device, 0, ROT0, "Stern", "Batman - The Dark Knight v2.90", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2008, bdk_294 ,0, sam, sam, driver_device, 0, ROT0, "Stern", "Batman - The Dark Knight v2.94", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
// 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", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2010, bbh_150 ,bbh_160, sam, sam, driver_device, 0, ROT0, "Stern", "Big Buck Hunter Pro v1.50", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2010, bbh_160 ,0, sam, sam, driver_device, 0, ROT0, "Stern", "Big Buck Hunter Pro v1.60", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2008, csi_102 ,csi_240, sam, sam, driver_device, 0, ROT0, "Stern", "C.S.I. v1.02", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2008, csi_103 ,csi_240, sam, sam, driver_device, 0, ROT0, "Stern", "C.S.I. v1.03", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2008, csi_104 ,csi_240, sam, sam, driver_device, 0, ROT0, "Stern", "C.S.I. v1.04", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2008, csi_200 ,csi_240, sam, sam, driver_device, 0, ROT0, "Stern", "C.S.I. v2.00", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2008, csi_210 ,csi_240, sam, sam, driver_device, 0, ROT0, "Stern", "C.S.I. v2.10", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2008, csi_230 ,csi_240, sam, sam, driver_device, 0, ROT0, "Stern", "C.S.I. v2.30", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2008, csi_240 ,0, sam, sam, driver_device, 0, ROT0, "Stern", "C.S.I. v2.40", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, fg_1000af ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v10.0 (English,French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, fg_1000ag ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v10.0 (English,German)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, fg_1000ai ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v10.0 (English,Italian)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, fg_1000al ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v10.0 (English,Spanish)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, fg_110af ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v11.0 (English,French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, fg_110ag ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v11.0 (English,German)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, fg_110ai ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v11.0 (English,Italian)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, fg_110al ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v11.0 (English,Spanish)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, fg_120af ,0, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v12.0 (English,French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, fg_120ag ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v12.0 (English,German)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, fg_120ai ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v12.0 (English,Italian)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, fg_120al ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v12.0 (English,Spanish)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, fg_300ai ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v3.0 (English,Italian)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, fg_400a ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v4.0 (English)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, fg_400ag ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v4.0 (English,German)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, fg_700af ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v7.0 (English,French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, fg_700al ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v7.0 (English,Spanish)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, fg_800al ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v8.0 (English,Spanish)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2010, im2_100 ,im2_140, sam, sam, driver_device, 0, ROT0, "Stern", "Iron Man 2 v1.00", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2010, im2_110 ,im2_140, sam, sam, driver_device, 0, ROT0, "Stern", "Iron Man 2 v1.10", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2010, im2_120 ,im2_140, sam, sam, driver_device, 0, ROT0, "Stern", "Iron Man 2 v1.20", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2010, im2_140 ,0, sam, sam, driver_device, 0, ROT0, "Stern", "Iron Man 2 v1.40", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2008, indy_113a ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.13", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2008, indy_113f ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.13 (French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2008, indy_113g ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.13 (German)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2008, indy_113i ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.13 (Italian)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2008, indy_113l ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.13 (Spanish)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2008, indy_114a ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.14", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2008, indy_114f ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.14 (French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2008, indy_114g ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.14 (German)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2008, indy_114i ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.14 (Italian)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2008, indy_114l ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.14 (Spanish)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2008, indy_116a ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.16", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2008, indy_116f ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.16 (French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2008, indy_116g ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.16 (German)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2008, indy_116i ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.16 (Italian)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2008, indy_116l ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.16 (Spanish)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2008, indy_210 ,0, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v2.10", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2008, indy_210f ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v2.10 (French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
+GAME( 2010, bbh_140 ,bbh_160, sam, sam, driver_device, 0, ROT0, "Stern", "Big Buck Hunter Pro v1.40", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2010, bbh_150 ,bbh_160, sam, sam, driver_device, 0, ROT0, "Stern", "Big Buck Hunter Pro v1.50", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2010, bbh_160 ,0, sam, sam, driver_device, 0, ROT0, "Stern", "Big Buck Hunter Pro v1.60", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2008, csi_102 ,csi_240, sam, sam, driver_device, 0, ROT0, "Stern", "C.S.I. v1.02", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2008, csi_103 ,csi_240, sam, sam, driver_device, 0, ROT0, "Stern", "C.S.I. v1.03", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2008, csi_104 ,csi_240, sam, sam, driver_device, 0, ROT0, "Stern", "C.S.I. v1.04", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2008, csi_200 ,csi_240, sam, sam, driver_device, 0, ROT0, "Stern", "C.S.I. v2.00", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2008, csi_210 ,csi_240, sam, sam, driver_device, 0, ROT0, "Stern", "C.S.I. v2.10", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2008, csi_230 ,csi_240, sam, sam, driver_device, 0, ROT0, "Stern", "C.S.I. v2.30", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2008, csi_240 ,0, sam, sam, driver_device, 0, ROT0, "Stern", "C.S.I. v2.40", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, fg_1000af ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v10.0 (English,French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, fg_1000ag ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v10.0 (English,German)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, fg_1000ai ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v10.0 (English,Italian)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, fg_1000al ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v10.0 (English,Spanish)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, fg_110af ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v11.0 (English,French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, fg_110ag ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v11.0 (English,German)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, fg_110ai ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v11.0 (English,Italian)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, fg_110al ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v11.0 (English,Spanish)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, fg_120af ,0, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v12.0 (English,French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, fg_120ag ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v12.0 (English,German)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, fg_120ai ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v12.0 (English,Italian)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, fg_120al ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v12.0 (English,Spanish)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, fg_300ai ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v3.0 (English,Italian)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, fg_400a ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v4.0 (English)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, fg_400ag ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v4.0 (English,German)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, fg_700af ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v7.0 (English,French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, fg_700al ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v7.0 (English,Spanish)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, fg_800al ,fg_120af, sam, sam, driver_device, 0, ROT0, "Stern", "Family Guy v8.0 (English,Spanish)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2010, im2_100 ,im2_140, sam, sam, driver_device, 0, ROT0, "Stern", "Iron Man 2 v1.00", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2010, im2_110 ,im2_140, sam, sam, driver_device, 0, ROT0, "Stern", "Iron Man 2 v1.10", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2010, im2_120 ,im2_140, sam, sam, driver_device, 0, ROT0, "Stern", "Iron Man 2 v1.20", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2010, im2_140 ,0, sam, sam, driver_device, 0, ROT0, "Stern", "Iron Man 2 v1.40", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2008, indy_113a ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.13", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2008, indy_113f ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.13 (French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2008, indy_113g ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.13 (German)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2008, indy_113i ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.13 (Italian)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2008, indy_113l ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.13 (Spanish)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2008, indy_114a ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.14", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2008, indy_114f ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.14 (French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2008, indy_114g ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.14 (German)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2008, indy_114i ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.14 (Italian)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2008, indy_114l ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.14 (Spanish)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2008, indy_116a ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.16", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2008, indy_116f ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.16 (French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2008, indy_116g ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.16 (German)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2008, indy_116i ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.16 (Italian)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2008, indy_116l ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v1.16 (Spanish)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2008, indy_210 ,0, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v2.10", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2008, indy_210f ,indy_210, sam, sam, driver_device, 0, ROT0, "Stern", "Indiana Jones v2.10 (French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
// 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", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2009, nba_600 ,nba_802, sam, sam, driver_device, 0, ROT0, "Stern", "NBA v6.00", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2009, nba_700 ,nba_802, sam, sam, driver_device, 0, ROT0, "Stern", "NBA v7.00", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2009, nba_801 ,nba_802, sam, sam, driver_device, 0, ROT0, "Stern", "NBA v8.01", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2009, nba_802 ,0, sam, sam, driver_device, 0, ROT0, "Stern", "NBA v8.02", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, potc_110af ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v1.10 (English,French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, potc_110ai ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v1.10 (English,Italian)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, potc_110gf ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v1.10 (German,French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
+GAME( 2009, nba_500 ,nba_802, sam, sam, driver_device, 0, ROT0, "Stern", "NBA v5.00", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2009, nba_600 ,nba_802, sam, sam, driver_device, 0, ROT0, "Stern", "NBA v6.00", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2009, nba_700 ,nba_802, sam, sam, driver_device, 0, ROT0, "Stern", "NBA v7.00", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2009, nba_801 ,nba_802, sam, sam, driver_device, 0, ROT0, "Stern", "NBA v8.01", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2009, nba_802 ,0, sam, sam, driver_device, 0, ROT0, "Stern", "NBA v8.02", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, potc_110af ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v1.10 (English,French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, potc_110ai ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v1.10 (English,Italian)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, potc_110gf ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v1.10 (German,French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
// 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)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
+GAME( 2006, potc_111as ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v1.11 (English,Spanish)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
// 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)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, potc_113ai ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v1.13 (English,Italian)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, potc_113as ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v1.13 (English,Spanish)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, potc_113gf ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v1.13 (German,French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
+GAME( 2006, potc_113af ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v1.13 (English,French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, potc_113ai ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v1.13 (English,Italian)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, potc_113as ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v1.13 (English,Spanish)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, potc_113gf ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v1.13 (German,French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
// 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)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, potc_115ai ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v1.15 (English,Italian)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, potc_115as ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v1.15 (English,Spanish)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, potc_115gf ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v1.15 (German,French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
+GAME( 2006, potc_115af ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v1.15 (English,French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, potc_115ai ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v1.15 (English,Italian)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, potc_115as ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v1.15 (English,Spanish)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, potc_115gf ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v1.15 (German,French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
// 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)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, potc_300ai ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v3.00 (English,Italian)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, potc_300as ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v3.00 (English,Spanish)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, potc_300gf ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v3.00 (German,French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, potc_400af ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v4.00 (English,French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, potc_400ai ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v4.00 (English,Italian)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, potc_400as ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v4.00 (English,Spanish)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, potc_400gf ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v4.00 (German,French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
+GAME( 2007, potc_300af ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v3.00 (English,French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, potc_300ai ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v3.00 (English,Italian)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, potc_300as ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v3.00 (English,Spanish)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, potc_300gf ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v3.00 (German,French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, potc_400af ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v4.00 (English,French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, potc_400ai ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v4.00 (English,Italian)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, potc_400as ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v4.00 (English,Spanish)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, potc_400gf ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v4.00 (German,French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
// 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)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, potc_600ai ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v6.00 (English,Italian)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, potc_600as ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v6.00 (English,Spanish)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, potc_600gf ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v6.00 (German,French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2008, sh_141 ,0, sam, sam, driver_device, 0, ROT0, "Stern", "Shrek v1.41", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, skc_090 ,skc_105, sam, sam, driver_device, 0, ROT0, "Stern", "Simpsons Kooky Carnival (Redemption) v0.90 New Jersey", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
+GAME( 2007, potc_600 ,0, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v6.00 (English,French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, potc_600ai ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v6.00 (English,Italian)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, potc_600as ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v6.00 (English,Spanish)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, potc_600gf ,potc_600, sam, sam, driver_device, 0, ROT0, "Stern", "Pirates of the Caribbean v6.00 (German,French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2008, sh_141 ,0, sam, sam, driver_device, 0, ROT0, "Stern", "Shrek v1.41", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, skc_090 ,skc_105, sam, sam, driver_device, 0, ROT0, "Stern", "Simpsons Kooky Carnival (Redemption) v0.90 New Jersey", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
// 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", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
+GAME( 2006, skc_103 ,skc_105, sam, sam, driver_device, 0, ROT0, "Stern", "Simpsons Kooky Carnival (Redemption) v1.03", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
// 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", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, sman_130ef ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.30 (English,French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, sman_130ei ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.30 (English,Italian)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, sman_130es ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.30 (English,Spanish)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, sman_130gf ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.30 (German,French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, sman_140e ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.40", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, sman_140ef ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.40 (English,French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, sman_140ei ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.40 (English,Italian)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, sman_140es ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.40 (English,Spanish)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, sman_140gf ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.40 (German,French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, sman_142e ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.42", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, sman_160e ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.60", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, sman_160ef ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.60 (English,French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, sman_160ei ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.60 (English,Italian)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, sman_160es ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.60 (English,Spanish)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, sman_160gf ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.60 (German,French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, sman_170e ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.70", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, sman_170ef ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.70 (English,French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, sman_170ei ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.70 (English,Italian)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, sman_170es ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.70 (English,Spanish)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, sman_170gf ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.70 (German,French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, sman_190e ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.90", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, sman_190ef ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.90 (English,French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, sman_190ei ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.90 (English,Italian)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, sman_190es ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.90 (English,Spanish)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, sman_190gf ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.90 (German,French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, sman_192e ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.92", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, sman_192ef ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.92 (English,French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, sman_192ei ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.92 (English,Italian)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, sman_192es ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.92 (English,Spanish)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, sman_192gf ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.92 (German,French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, sman_200e ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v2.00", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, sman_210e ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v2.10", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, sman_210f ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v2.10 (French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, sman_210ei ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v2.10 (English,Italian)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, sman_210es ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v2.10 (English,Spanish)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, sman_210gf ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v2.10 (German,French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, sman_220e ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v2.20", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, sman_230e ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v2.30", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, sman_240 ,0, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v2.40", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, wof_100a ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v1.0", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, wof_200a ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v2.0", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, wof_200f ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v2.0 (French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, wof_200g ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v2.0 (German)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, wof_200i ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v2.0 (Italian)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, wof_300a ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v3.0", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, wof_300f ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v3.0 (French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, wof_300g ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v3.0 (German)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, wof_300i ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v3.0 (Italian)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, wof_300l ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v3.0 (Spanish)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, wof_400a ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v4.0", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, wof_400f ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v4.0 (French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, wof_400g ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v4.0 (German)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, wof_400i ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v4.0 (Italian)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, wof_400l ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v4.0 (Spanish)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, wof_500a ,0, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v5.0", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, wof_500f ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v5.0 (French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, wof_500g ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v5.0 (German)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, wof_500i ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v5.0 (Italian)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2007, wof_500l ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v5.0 (Spanish)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_103a ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.03", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_105a ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.05", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_106a ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.06", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_106f ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.06 (French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_106g ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.06 (German)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_106i ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.06 (Italian)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_106l ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.06 (Spanish)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
+GAME( 2006, skc_105 ,0, sam, sam, driver_device, 0, ROT0, "Stern", "Simpsons Kooky Carnival (Redemption) v1.05", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, sman_130ef ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.30 (English,French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, sman_130ei ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.30 (English,Italian)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, sman_130es ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.30 (English,Spanish)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, sman_130gf ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.30 (German,French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, sman_140e ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.40", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, sman_140ef ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.40 (English,French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, sman_140ei ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.40 (English,Italian)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, sman_140es ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.40 (English,Spanish)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, sman_140gf ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.40 (German,French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, sman_142e ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.42", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, sman_160e ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.60", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, sman_160ef ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.60 (English,French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, sman_160ei ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.60 (English,Italian)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, sman_160es ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.60 (English,Spanish)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, sman_160gf ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.60 (German,French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, sman_170e ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.70", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, sman_170ef ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.70 (English,French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, sman_170ei ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.70 (English,Italian)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, sman_170es ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.70 (English,Spanish)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, sman_170gf ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.70 (German,French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, sman_190e ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.90", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, sman_190ef ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.90 (English,French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, sman_190ei ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.90 (English,Italian)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, sman_190es ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.90 (English,Spanish)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, sman_190gf ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.90 (German,French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, sman_192e ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.92", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, sman_192ef ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.92 (English,French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, sman_192ei ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.92 (English,Italian)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, sman_192es ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.92 (English,Spanish)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, sman_192gf ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v1.92 (German,French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, sman_200e ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v2.00", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, sman_210e ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v2.10", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, sman_210f ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v2.10 (French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, sman_210ei ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v2.10 (English,Italian)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, sman_210es ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v2.10 (English,Spanish)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, sman_210gf ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v2.10 (German,French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, sman_220e ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v2.20", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, sman_230e ,sman_240, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v2.30", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, sman_240 ,0, sam, sam, driver_device, 0, ROT0, "Stern", "Spider-Man v2.40", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, wof_100a ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v1.0", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, wof_200a ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v2.0", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, wof_200f ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v2.0 (French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, wof_200g ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v2.0 (German)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, wof_200i ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v2.0 (Italian)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, wof_300a ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v3.0", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, wof_300f ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v3.0 (French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, wof_300g ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v3.0 (German)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, wof_300i ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v3.0 (Italian)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, wof_300l ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v3.0 (Spanish)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, wof_400a ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v4.0", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, wof_400f ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v4.0 (French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, wof_400g ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v4.0 (German)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, wof_400i ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v4.0 (Italian)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, wof_400l ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v4.0 (Spanish)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, wof_500a ,0, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v5.0", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, wof_500f ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v5.0 (French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, wof_500g ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v5.0 (German)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, wof_500i ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v5.0 (Italian)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2007, wof_500l ,wof_500a, sam, sam, driver_device, 0, ROT0, "Stern", "Wheel of Fortune v5.0 (Spanish)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_103a ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.03", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_105a ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.05", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_106a ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.06", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_106f ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.06 (French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_106g ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.06 (German)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_106i ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.06 (Italian)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_106l ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.06 (Spanish)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
// 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", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_108f ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.08 (French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_108g ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.08 (German)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_108i ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.08 (Italian)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_108l ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.08 (Spanish)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_109a ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.09", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_109f ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.09 (French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_109f2 ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.09 (French)(alt)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_109g ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.09 (German)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_109i ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.09 (Italian)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_109l ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.09 (Spanish)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_111a ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.11", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_111af ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.11 (English,French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_111ai ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.11 (English,Italian)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_111al ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.11 (English,Spanish)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_111f ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.11 (French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_111g ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.11 (German)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_111gf ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.11 (German,French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_111i ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.11 (Italian)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_111l ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.11 (Spanish)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_112a ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.12", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_112af ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.12 (English,French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_112ai ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.12 (English,Italian)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_112al ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.12 (English,Spanish)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_112f ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.12 (French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_112g ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.12 (German)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_112gf ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.12 (German,French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_112i ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.12 (Italian)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_112l ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.12 (Spanish)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_1400 ,0, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v14.00", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_1400af ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v14.00 (English,French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_1400ai ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v14.00 (English,Italian)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_1400al ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v14.00 (English,Spanish)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_1400f ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v14.00 (French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_1400g ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v14.00 (German)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_1400gf ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v14.00 (German,French)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_1400i ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v14.00 (Italian)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
-GAME( 2006, wpt_1400l ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v14.00 (Spanish)", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL)
+GAME( 2006, wpt_108a ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.08", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_108f ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.08 (French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_108g ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.08 (German)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_108i ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.08 (Italian)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_108l ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.08 (Spanish)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_109a ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.09", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_109f ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.09 (French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_109f2 ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.09 (French)(alt)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_109g ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.09 (German)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_109i ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.09 (Italian)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_109l ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.09 (Spanish)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_111a ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.11", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_111af ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.11 (English,French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_111ai ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.11 (English,Italian)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_111al ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.11 (English,Spanish)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_111f ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.11 (French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_111g ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.11 (German)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_111gf ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.11 (German,French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_111i ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.11 (Italian)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_111l ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.11 (Spanish)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_112a ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.12", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_112af ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.12 (English,French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_112ai ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.12 (English,Italian)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_112al ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.12 (English,Spanish)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_112f ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.12 (French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_112g ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.12 (German)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_112gf ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.12 (German,French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_112i ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.12 (Italian)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_112l ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v1.12 (Spanish)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_1400 ,0, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v14.00", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_1400af ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v14.00 (English,French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_1400ai ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v14.00 (English,Italian)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_1400al ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v14.00 (English,Spanish)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_1400f ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v14.00 (French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_1400g ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v14.00 (German)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_1400gf ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v14.00 (German,French)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_1400i ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v14.00 (Italian)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
+GAME( 2006, wpt_1400l ,wpt_1400, sam, sam, driver_device, 0, ROT0, "Stern", "World Poker Tour v14.00 (Spanish)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL)
diff --git a/src/mess/drivers/samcoupe.c b/src/mame/drivers/samcoupe.c
index 7c96130e3a7..e6262e1d0ff 100644
--- a/src/mess/drivers/samcoupe.c
+++ b/src/mame/drivers/samcoupe.c
@@ -31,16 +31,11 @@
#
/* components */
#include "cpu/z80/z80.h"
-#include "machine/wd_fdc.h"
-#include "machine/msm6242.h"
#include "sound/saa1099.h"
-#include "sound/speaker.h"
/* devices */
-#include "imagedev/cassette.h"
#include "formats/tzx_cas.h"
#include "formats/coupedsk.h"
-#include "machine/ram.h"
/***************************************************************************
CONSTANTS
@@ -78,23 +73,21 @@ void samcoupe_state::device_timer(emu_timer &timer, device_timer_id id, int para
READ8_MEMBER(samcoupe_state::samcoupe_disk_r)
{
- wd1772_t *fdc = machine().device<wd1772_t>("wd1772");
-
/* drive and side is encoded into bit 5 and 3 */
- floppy_connector *con = machine().device<floppy_connector>(BIT(offset, 4) ? "wd1772:1" : "wd1772:0");
+ floppy_connector *con = (BIT(offset, 4) ? m_wd1772_1 : m_wd1772_0);
floppy_image_device *floppy = con ? con->get_device() : 0;
if(floppy)
floppy->ss_w(BIT(offset, 2));
- fdc->set_floppy(floppy);
+ m_fdc->set_floppy(floppy);
/* bit 1 and 2 select the controller register */
switch (offset & 0x03)
{
- case 0: return fdc->status_r();
- case 1: return fdc->track_r();
- case 2: return fdc->sector_r();
- case 3: return fdc->data_r();
+ case 0: return m_fdc->status_r();
+ case 1: return m_fdc->track_r();
+ case 2: return m_fdc->sector_r();
+ case 3: return m_fdc->data_r();
}
return 0xff;
@@ -102,23 +95,21 @@ READ8_MEMBER(samcoupe_state::samcoupe_disk_r)
WRITE8_MEMBER(samcoupe_state::samcoupe_disk_w)
{
- wd1772_t *fdc = machine().device<wd1772_t>("wd1772");
-
/* drive and side is encoded into bit 5 and 3 */
- floppy_connector *con = machine().device<floppy_connector>(BIT(offset, 4) ? "wd1772:1" : "wd1772:0");
+ floppy_connector *con = (BIT(offset, 4) ? m_wd1772_1 : m_wd1772_0);
floppy_image_device *floppy = con ? con->get_device() : 0;
if(floppy)
floppy->ss_w(BIT(offset, 2));
- fdc->set_floppy(floppy);
+ m_fdc->set_floppy(floppy);
/* bit 1 and 2 select the controller register */
switch (offset & 0x03)
{
- case 0: fdc->cmd_w(data); break;
- case 1: fdc->track_w(data); break;
- case 2: fdc->sector_w(data); break;
- case 3: fdc->data_w(data); break;
+ case 0: m_fdc->cmd_w(data); break;
+ case 1: m_fdc->track_w(data); break;
+ case 2: m_fdc->sector_w(data); break;
+ case 3: m_fdc->data_w(data); break;
}
}
@@ -156,14 +147,14 @@ READ8_MEMBER(samcoupe_state::samcoupe_status_r)
UINT8 data = 0xe0;
/* bit 5-7, keyboard input */
- if (!BIT(offset, 8)) data &= ioport("keyboard_row_fe")->read() & 0xe0;
- if (!BIT(offset, 9)) data &= ioport("keyboard_row_fd")->read() & 0xe0;
- if (!BIT(offset, 10)) data &= ioport("keyboard_row_fb")->read() & 0xe0;
- if (!BIT(offset, 11)) data &= ioport("keyboard_row_f7")->read() & 0xe0;
- if (!BIT(offset, 12)) data &= ioport("keyboard_row_ef")->read() & 0xe0;
- if (!BIT(offset, 13)) data &= ioport("keyboard_row_df")->read() & 0xe0;
- if (!BIT(offset, 14)) data &= ioport("keyboard_row_bf")->read() & 0xe0;
- if (!BIT(offset, 15)) data &= ioport("keyboard_row_7f")->read() & 0xe0;
+ if (!BIT(offset, 8)) data &= m_keyboard_row_fe->read() & 0xe0;
+ if (!BIT(offset, 9)) data &= m_keyboard_row_fd->read() & 0xe0;
+ if (!BIT(offset, 10)) data &= m_keyboard_row_fb->read() & 0xe0;
+ if (!BIT(offset, 11)) data &= m_keyboard_row_f7->read() & 0xe0;
+ if (!BIT(offset, 12)) data &= m_keyboard_row_ef->read() & 0xe0;
+ if (!BIT(offset, 13)) data &= m_keyboard_row_df->read() & 0xe0;
+ if (!BIT(offset, 14)) data &= m_keyboard_row_bf->read() & 0xe0;
+ if (!BIT(offset, 15)) data &= m_keyboard_row_7f->read() & 0xe0;
/* bit 0-4, interrupt source */
data |= m_status;
@@ -231,18 +222,18 @@ READ8_MEMBER(samcoupe_state::samcoupe_keyboard_r)
UINT8 data = 0x1f;
/* bit 0-4, keyboard input */
- if (!BIT(offset, 8)) data &= ioport("keyboard_row_fe")->read() & 0x1f;
- if (!BIT(offset, 9)) data &= ioport("keyboard_row_fd")->read() & 0x1f;
- if (!BIT(offset, 10)) data &= ioport("keyboard_row_fb")->read() & 0x1f;
- if (!BIT(offset, 11)) data &= ioport("keyboard_row_f7")->read() & 0x1f;
- if (!BIT(offset, 12)) data &= ioport("keyboard_row_ef")->read() & 0x1f;
- if (!BIT(offset, 13)) data &= ioport("keyboard_row_df")->read() & 0x1f;
- if (!BIT(offset, 14)) data &= ioport("keyboard_row_bf")->read() & 0x1f;
- if (!BIT(offset, 15)) data &= ioport("keyboard_row_7f")->read() & 0x1f;
+ if (!BIT(offset, 8)) data &= m_keyboard_row_fe->read() & 0x1f;
+ if (!BIT(offset, 9)) data &= m_keyboard_row_fd->read() & 0x1f;
+ if (!BIT(offset, 10)) data &= m_keyboard_row_fb->read() & 0x1f;
+ if (!BIT(offset, 11)) data &= m_keyboard_row_f7->read() & 0x1f;
+ if (!BIT(offset, 12)) data &= m_keyboard_row_ef->read() & 0x1f;
+ if (!BIT(offset, 13)) data &= m_keyboard_row_df->read() & 0x1f;
+ if (!BIT(offset, 14)) data &= m_keyboard_row_bf->read() & 0x1f;
+ if (!BIT(offset, 15)) data &= m_keyboard_row_7f->read() & 0x1f;
if (offset == 0xff00)
{
- data &= ioport("keyboard_row_ff")->read() & 0x1f;
+ data &= m_keyboard_row_ff->read() & 0x1f;
/* if no key has been pressed, return the mouse state */
if (data == 0x1f)
diff --git a/src/mame/drivers/sandscrp.c b/src/mame/drivers/sandscrp.c
index e59cf0b2482..d6c2d6059d4 100644
--- a/src/mame/drivers/sandscrp.c
+++ b/src/mame/drivers/sandscrp.c
@@ -585,6 +585,6 @@ ROM_START( sandscrpb ) /* Different rev PCB */
ROM_END
-GAME( 1992, sandscrp, 0, sandscrp, sandscrp, driver_device, 0, ROT90, "Face", "Sand Scorpion", GAME_SUPPORTS_SAVE )
-GAME( 1992, sandscrpa, sandscrp, sandscrp, sandscrp, driver_device, 0, ROT90, "Face", "Sand Scorpion (Earlier)", GAME_SUPPORTS_SAVE )
-GAME( 1992, sandscrpb, sandscrp, sandscrp, sandscrp, driver_device, 0, ROT90, "Face", "Sand Scorpion (Chinese Title Screen, Revised Hardware)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/sangho.c b/src/mame/drivers/sangho.c
index ae13e716046..28f281c2a28 100644
--- a/src/mame/drivers/sangho.c
+++ b/src/mame/drivers/sangho.c
@@ -55,15 +55,37 @@ class sangho_state : public driver_device
{
public:
sangho_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_v9958(*this, "v9958") ,
- m_maincpu(*this, "maincpu") { }
+ : driver_device(mconfig, type, tag)
+ , m_v9958(*this, "v9958")
+ , m_maincpu(*this, "maincpu")
+ , m_region_user1(*this, "user1")
+ , m_bank1(*this, "bank1")
+ , m_bank2(*this, "bank2")
+ , m_bank3(*this, "bank3")
+ , m_bank4(*this, "bank4")
+ , m_bank5(*this, "bank5")
+ , m_bank6(*this, "bank6")
+ , m_bank7(*this, "bank7")
+ , m_bank8(*this, "bank8")
+ { }
UINT8* m_ram;
UINT8 m_sexyboom_bank[8];
UINT8 m_pzlestar_mem_bank;
UINT8 m_pzlestar_rom_bank;
required_device<v9958_device> m_v9958;
+ required_device<cpu_device> m_maincpu;
+ required_memory_region m_region_user1;
+ required_memory_bank m_bank1;
+ required_memory_bank m_bank2;
+ required_memory_bank m_bank3;
+ required_memory_bank m_bank4;
+ required_memory_bank m_bank5;
+ required_memory_bank m_bank6;
+ required_memory_bank m_bank7;
+ required_memory_bank m_bank8;
+ UINT8 m_sec_slot[4];
+
DECLARE_WRITE8_MEMBER(pzlestar_bank_w);
DECLARE_WRITE8_MEMBER(pzlestar_mem_bank_w);
DECLARE_READ8_MEMBER(pzlestar_mem_bank_r);
@@ -72,12 +94,9 @@ public:
virtual void machine_start();
DECLARE_MACHINE_RESET(pzlestar);
DECLARE_MACHINE_RESET(sexyboom);
- TIMER_DEVICE_CALLBACK_MEMBER(sangho_interrupt);
void pzlestar_map_banks();
void sexyboom_map_bank(int bank);
DECLARE_WRITE_LINE_MEMBER(msx_vdp_interrupt);
- required_device<cpu_device> m_maincpu;
- UINT8 m_sec_slot[4];
DECLARE_READ8_MEMBER(sec_slot_r);
DECLARE_WRITE8_MEMBER(sec_slot_w);
};
@@ -97,15 +116,15 @@ void sangho_state::pzlestar_map_banks()
switch(slot_select)
{
case 0:
- m_maincpu->space(AS_PROGRAM).install_read_bank(0x0000, 0x3fff, "bank1");
- m_maincpu->space(AS_PROGRAM).install_write_bank(0x0000, 0x3fff, "bank5");
- membank("bank1")->set_base(m_ram);
- membank("bank5")->set_base(m_ram);
+ m_maincpu->space(AS_PROGRAM).install_read_bank(0x0000, 0x3fff, m_bank1);
+ m_maincpu->space(AS_PROGRAM).install_write_bank(0x0000, 0x3fff, m_bank5);
+ m_bank1->set_base(m_ram);
+ m_bank5->set_base(m_ram);
break;
case 2:
- m_maincpu->space(AS_PROGRAM).install_read_bank(0x0000, 0x3fff, "bank1");
+ m_maincpu->space(AS_PROGRAM).install_read_bank(0x0000, 0x3fff, m_bank1);
m_maincpu->space(AS_PROGRAM).unmap_write(0x0000, 0x3fff);
- membank("bank1")->set_base(memregion("user1")->base()+ 0x10000);
+ m_bank1->set_base(m_region_user1->base()+ 0x10000);
break;
case 1:
case 3:
@@ -119,20 +138,20 @@ void sangho_state::pzlestar_map_banks()
switch(slot_select)
{
case 0:
- m_maincpu->space(AS_PROGRAM).install_read_bank(0x4000, 0x7fff, "bank2");
- m_maincpu->space(AS_PROGRAM).install_write_bank(0x4000, 0x7fff, "bank6");
- membank("bank2")->set_base(m_ram + 0x4000);
- membank("bank6")->set_base(m_ram + 0x4000);
+ m_maincpu->space(AS_PROGRAM).install_read_bank(0x4000, 0x7fff, m_bank2);
+ m_maincpu->space(AS_PROGRAM).install_write_bank(0x4000, 0x7fff, m_bank6);
+ m_bank2->set_base(m_ram + 0x4000);
+ m_bank6->set_base(m_ram + 0x4000);
break;
case 2:
- m_maincpu->space(AS_PROGRAM).install_read_bank(0x4000, 0x7fff, "bank2");
+ m_maincpu->space(AS_PROGRAM).install_read_bank(0x4000, 0x7fff, m_bank2);
m_maincpu->space(AS_PROGRAM).unmap_write(0x4000, 0x7fff);
- membank("bank2")->set_base(memregion("user1")->base()+ 0x18000);
+ m_bank2->set_base(m_region_user1->base()+ 0x18000);
break;
case 3:
- m_maincpu->space(AS_PROGRAM).install_read_bank(0x4000, 0x7fff, "bank2");
+ m_maincpu->space(AS_PROGRAM).install_read_bank(0x4000, 0x7fff, m_bank2);
m_maincpu->space(AS_PROGRAM).unmap_write(0x4000, 0x7fff);
- membank("bank2")->set_base(memregion("user1")->base()+ 0x20000 + (m_pzlestar_rom_bank*0x8000) + 0x4000);
+ m_bank2->set_base(m_region_user1->base()+ 0x20000 + (m_pzlestar_rom_bank*0x8000) + 0x4000);
break;
case 1:
m_maincpu->space(AS_PROGRAM).unmap_read(0x4000, 0x7fff);
@@ -145,15 +164,15 @@ void sangho_state::pzlestar_map_banks()
switch(slot_select)
{
case 0:
- m_maincpu->space(AS_PROGRAM).install_read_bank(0x8000, 0xbfff, "bank3");
- m_maincpu->space(AS_PROGRAM).install_write_bank(0x8000, 0xbfff, "bank7");
- membank("bank3")->set_base(m_ram + 0x8000);
- membank("bank7")->set_base(m_ram + 0x8000);
+ m_maincpu->space(AS_PROGRAM).install_read_bank(0x8000, 0xbfff, m_bank3);
+ m_maincpu->space(AS_PROGRAM).install_write_bank(0x8000, 0xbfff, m_bank7);
+ m_bank3->set_base(m_ram + 0x8000);
+ m_bank7->set_base(m_ram + 0x8000);
break;
case 3:
- m_maincpu->space(AS_PROGRAM).install_read_bank(0x8000, 0xbfff, "bank3");
+ m_maincpu->space(AS_PROGRAM).install_read_bank(0x8000, 0xbfff, m_bank3);
m_maincpu->space(AS_PROGRAM).unmap_write(0x8000, 0xbfff);
- membank("bank3")->set_base(memregion("user1")->base()+ 0x20000 + (m_pzlestar_rom_bank*0x8000));
+ m_bank3->set_base(m_region_user1->base()+ 0x20000 + (m_pzlestar_rom_bank*0x8000));
break;
case 1:
case 2:
@@ -167,10 +186,10 @@ void sangho_state::pzlestar_map_banks()
switch(slot_select)
{
case 0:
- m_maincpu->space(AS_PROGRAM).install_read_bank(0xc000, 0xffff, "bank4");
- m_maincpu->space(AS_PROGRAM).install_write_bank(0xc000, 0xffff, "bank8");
- membank("bank4")->set_base(m_ram + 0xc000);
- membank("bank8")->set_base(m_ram + 0xc000);
+ m_maincpu->space(AS_PROGRAM).install_read_bank(0xc000, 0xffff, m_bank4);
+ m_maincpu->space(AS_PROGRAM).install_write_bank(0xc000, 0xffff, m_bank8);
+ m_bank4->set_base(m_ram + 0xc000);
+ m_bank8->set_base(m_ram + 0xc000);
break;
case 1:
case 2:
@@ -204,38 +223,36 @@ READ8_MEMBER(sangho_state::pzlestar_mem_bank_r)
void sangho_state::sexyboom_map_bank(int bank)
{
- UINT8 banknum, banktype;
- char read_bank_name[6], write_bank_name[6];
+ memory_bank *read_bank[4] = { m_bank1, m_bank2, m_bank3, m_bank4 };
+ memory_bank *write_bank[4] = { m_bank5, m_bank6, m_bank7, m_bank8 };
- banknum = m_sexyboom_bank[bank*2];
- banktype = m_sexyboom_bank[bank*2 + 1];
- sprintf(read_bank_name, "bank%d", bank+1);
- sprintf(write_bank_name, "bank%d", bank+1+4);
+ UINT8 banknum = m_sexyboom_bank[bank*2];
+ UINT8 banktype = m_sexyboom_bank[bank*2 + 1];
if (banktype == 0)
{
if (banknum & 0x80)
{
// ram
- membank(read_bank_name)->set_base(&m_ram[(banknum & 0x7f) * 0x4000]);
- m_maincpu->space(AS_PROGRAM).install_write_bank(bank*0x4000, (bank+1)*0x4000 - 1, write_bank_name );
- membank(write_bank_name)->set_base(&m_ram[(banknum & 0x7f) * 0x4000]);
+ read_bank[bank]->set_base(&m_ram[(banknum & 0x7f) * 0x4000]);
+ m_maincpu->space(AS_PROGRAM).install_write_bank(bank*0x4000, (bank+1)*0x4000 - 1, write_bank[bank] );
+ write_bank[bank]->set_base(&m_ram[(banknum & 0x7f) * 0x4000]);
}
else
{
// rom 0
- membank(read_bank_name)->set_base(memregion("user1")->base()+0x4000*banknum);
+ read_bank[bank]->set_base(m_region_user1->base()+0x4000*banknum);
m_maincpu->space(AS_PROGRAM).unmap_write(bank*0x4000, (bank+1)*0x4000 - 1);
}
}
else if (banktype == 0x82)
{
- membank(read_bank_name)->set_base(memregion("user1")->base()+0x20000+banknum*0x4000);
+ read_bank[bank]->set_base(m_region_user1->base()+0x20000+banknum*0x4000);
m_maincpu->space(AS_PROGRAM).unmap_write(bank*0x4000, (bank+1)*0x4000 - 1);
}
else if (banktype == 0x80)
{
- membank(read_bank_name)->set_base(memregion("user1")->base()+0x120000+banknum*0x4000);
+ read_bank[bank]->set_base(m_region_user1->base()+0x120000+banknum*0x4000);
m_maincpu->space(AS_PROGRAM).unmap_write(bank*0x4000, (bank+1)*0x4000 - 1);
}
else
@@ -438,35 +455,16 @@ WRITE_LINE_MEMBER(sangho_state::msx_vdp_interrupt)
m_maincpu->set_input_line(0, (state ? HOLD_LINE : CLEAR_LINE));
}
-TIMER_DEVICE_CALLBACK_MEMBER(sangho_state::sangho_interrupt)
-{
- int scanline = param;
-
- if((scanline % 2) == 0)
- {
- m_v9958->interrupt();
- }
-}
-
static MACHINE_CONFIG_START( pzlestar, sangho_state )
MCFG_CPU_ADD("maincpu", Z80,8000000) // ?
MCFG_CPU_PROGRAM_MAP(sangho_map)
MCFG_CPU_IO_MAP(pzlestar_io_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", sangho_state, sangho_interrupt, "screen", 0, 1)
- MCFG_V9958_ADD("v9958", "screen", 0x20000)
+ MCFG_V9958_ADD("v9958", "screen", 0x20000, XTAL_21_4772MHz) // typical 9958 clock, not verified
MCFG_V99X8_INTERRUPT_CALLBACK(WRITELINE(sangho_state,msx_vdp_interrupt))
-
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_UPDATE_DEVICE("v9958", v9958_device, screen_update)
- MCFG_SCREEN_SIZE(512 + 32, (212 + 28) * 2)
- MCFG_SCREEN_VISIBLE_AREA(0, 512 + 32 - 1, 0, (212 + 28) * 2 - 1)
- MCFG_SCREEN_PALETTE("v9958:palette")
+ MCFG_V99X8_SCREEN_ADD_NTSC("screen", "v9958", XTAL_21_4772MHz)
MCFG_MACHINE_RESET_OVERRIDE(sangho_state,pzlestar)
@@ -482,19 +480,10 @@ static MACHINE_CONFIG_START( sexyboom, sangho_state )
MCFG_CPU_ADD("maincpu", Z80,8000000) // ?
MCFG_CPU_PROGRAM_MAP(sangho_map)
MCFG_CPU_IO_MAP(sexyboom_io_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", sangho_state, sangho_interrupt, "screen", 0, 1)
- MCFG_V9958_ADD("v9958", "screen", 0x20000)
+ MCFG_V9958_ADD("v9958", "screen", 0x20000, XTAL_21_4772MHz) // typical 9958 clock, not verified
MCFG_V99X8_INTERRUPT_CALLBACK(WRITELINE(sangho_state,msx_vdp_interrupt))
-
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_UPDATE_DEVICE("v9958", v9958_device, screen_update)
- MCFG_SCREEN_SIZE(512 + 32, (212 + 28) * 2)
- MCFG_SCREEN_VISIBLE_AREA(0, 512 + 32 - 1, 0, (212 + 28) * 2 - 1)
- MCFG_SCREEN_PALETTE("v9958:palette")
+ MCFG_V99X8_SCREEN_ADD_NTSC("screen", "v9958", XTAL_21_4772MHz)
MCFG_MACHINE_RESET_OVERRIDE(sangho_state,sexyboom)
@@ -546,12 +535,12 @@ ROM_END
DRIVER_INIT_MEMBER(sangho_state,pzlestar)
{
- UINT8 *ROM = memregion("user1")->base();
+ UINT8 *ROM = m_region_user1->base();
/* patch nasty looping check, related to sound? */
ROM[0x12ca7] = 0x00;
ROM[0x12ca8] = 0x00;
}
-GAME( 1991, pzlestar, 0, pzlestar, pzlestar, sangho_state, pzlestar, ROT270, "Sang Ho Soft", "Puzzle Star (Sang Ho Soft)", GAME_IMPERFECT_COLORS | GAME_IMPERFECT_SOUND )
+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 )
diff --git a/src/mess/drivers/sapi1.c b/src/mame/drivers/sapi1.c
index 9b300ce4500..732baca6c3e 100644
--- a/src/mess/drivers/sapi1.c
+++ b/src/mame/drivers/sapi1.c
@@ -664,8 +664,8 @@ 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", GAME_NO_SOUND_HW)
-COMP( 1985, sapizps2, sapi1, 0, sapi2, sapi1, driver_device, 0, "Tesla", "SAPI-1 ZPS 2", GAME_NO_SOUND_HW)
-COMP( 1985, sapizps3, sapi1, 0, sapi3, sapi1, sapi1_state, sapizps3, "Tesla", "SAPI-1 ZPS 3", GAME_NOT_WORKING | GAME_NO_SOUND_HW)
-COMP( 1985, sapizps3a,sapi1, 0, sapi3a, sapi1, sapi1_state, sapizps3a, "Tesla", "SAPI-1 ZPS 3 (terminal)", GAME_NOT_WORKING | GAME_NO_SOUND_HW)
-COMP( 1985, sapizps3b,sapi1, 0, sapi3b, sapi1, sapi1_state, sapizps3b, "Tesla", "SAPI-1 ZPS 3 (6845)", GAME_NOT_WORKING | GAME_NO_SOUND_HW)
+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)
diff --git a/src/mess/drivers/saturn.c b/src/mame/drivers/saturn.c
index b3ffd671ea3..c28e60051f4 100644
--- a/src/mess/drivers/saturn.c
+++ b/src/mame/drivers/saturn.c
@@ -897,8 +897,8 @@ ROM_START(hisaturn)
ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-CONS( 1994, saturn, 0, 0, saturnus, saturn, sat_console_state, saturnus, "Sega", "Saturn (USA)", GAME_NOT_WORKING )
-CONS( 1994, saturnjp, saturn, 0, saturnjp, saturn, sat_console_state, saturnjp, "Sega", "Saturn (Japan)", GAME_NOT_WORKING )
-CONS( 1994, saturneu, saturn, 0, saturneu, saturn, sat_console_state, saturneu, "Sega", "Saturn (PAL)", GAME_NOT_WORKING )
-CONS( 1995, vsaturn, saturn, 0, saturnjp, saturn, sat_console_state, saturnjp, "JVC", "V-Saturn", GAME_NOT_WORKING )
-CONS( 1995, hisaturn, saturn, 0, saturnjp, saturn, sat_console_state, saturnjp, "Hitachi", "HiSaturn", GAME_NOT_WORKING )
+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 )
+CONS( 1995, vsaturn, saturn, 0, saturnjp, saturn, sat_console_state, saturnjp, "JVC", "V-Saturn", MACHINE_NOT_WORKING )
+CONS( 1995, hisaturn, saturn, 0, saturnjp, saturn, sat_console_state, saturnjp, "Hitachi", "HiSaturn", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/sauro.c b/src/mame/drivers/sauro.c
index cea50455739..b9df15c4f61 100644
--- a/src/mame/drivers/sauro.c
+++ b/src/mame/drivers/sauro.c
@@ -584,9 +584,9 @@ DRIVER_INIT_MEMBER(sauro_state,tecfri)
RAM[0xe000] = 1;
}
-GAME( 1987, sauro, 0, sauro, tecfri, sauro_state, tecfri, ROT0, "Tecfri", "Sauro", GAME_SUPPORTS_SAVE )
-GAME( 1987, saurop, sauro, sauro, tecfri, sauro_state, tecfri, ROT0, "Tecfri (Philko license)", "Sauro (Philko license)", GAME_SUPPORTS_SAVE )
-GAME( 1987, saurorr, sauro, sauro, tecfri, sauro_state, tecfri, ROT0, "Tecfri (Recreativos Real S.A. license)","Sauro (Recreativos Real S.A. license)", GAME_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, trckydoc, 0, trckydoc, tecfri, sauro_state, tecfri, ROT0, "Tecfri", "Tricky Doc (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1987, trckydoca,trckydoc, trckydoc, trckydoca, sauro_state, tecfri, ROT0, "Tecfri", "Tricky Doc (set 2)", GAME_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/mess/drivers/savia84.c b/src/mame/drivers/savia84.c
index 6e06c4fd377..99949af89cd 100644
--- a/src/mess/drivers/savia84.c
+++ b/src/mame/drivers/savia84.c
@@ -198,4 +198,4 @@ 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", GAME_NO_SOUND_HW)
+COMP( 1984, savia84, 0, 0, savia84, savia84, driver_device, 0, "JT Hyan", "Savia 84", MACHINE_NO_SOUND_HW)
diff --git a/src/mame/drivers/savquest.c b/src/mame/drivers/savquest.c
index d6d1ad550a7..b34f8a84a95 100644
--- a/src/mame/drivers/savquest.c
+++ b/src/mame/drivers/savquest.c
@@ -850,4 +850,4 @@ ROM_START( savquest )
ROM_END
-GAME(1999, savquest, 0, savquest, savquest, driver_device, 0, ROT0, "Interactive Light", "Savage Quest", GAME_IS_SKELETON)
+GAME(1999, savquest, 0, savquest, savquest, driver_device, 0, ROT0, "Interactive Light", "Savage Quest", MACHINE_IS_SKELETON)
diff --git a/src/mame/drivers/sbasketb.c b/src/mame/drivers/sbasketb.c
index 707d2be2c77..44a075468ea 100644
--- a/src/mame/drivers/sbasketb.c
+++ b/src/mame/drivers/sbasketb.c
@@ -405,7 +405,7 @@ DRIVER_INIT_MEMBER(sbasketb_state,sbasketb)
{
}
-GAME( 1984, sbasketb, 0, sbasketb, sbasketb, sbasketb_state, sbasketb, ROT90, "Konami", "Super Basketball (version I, encrypted)", GAME_SUPPORTS_SAVE )
-GAME( 1984, sbasketh, sbasketb, sbasketbu, sbasketb, driver_device, 0, ROT90, "Konami", "Super Basketball (version H, unprotected)", GAME_SUPPORTS_SAVE )
-GAME( 1984, sbasketg, sbasketb, sbasketb, sbasketb, sbasketb_state, sbasketb, ROT90, "Konami", "Super Basketball (version G, encrypted)", GAME_SUPPORTS_SAVE )
-GAME( 1984, sbaskete, sbasketb, sbasketb, sbasketb, sbasketb_state, sbasketb, ROT90, "Konami", "Super Basketball (version E, encrypted)", GAME_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, 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 )
diff --git a/src/mess/drivers/sbc6510.c b/src/mame/drivers/sbc6510.c
index 026c93f6ffb..c345c2e9ede 100644
--- a/src/mess/drivers/sbc6510.c
+++ b/src/mame/drivers/sbc6510.c
@@ -323,4 +323,4 @@ 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", GAME_NOT_WORKING )
+COMP( 2009, sbc6510, 0, 0, sbc6510, sbc6510, driver_device, 0, "Josip Perusanec", "SBC6510", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/sbowling.c b/src/mame/drivers/sbowling.c
index ee2d6004428..5067e9ed9a5 100644
--- a/src/mame/drivers/sbowling.c
+++ b/src/mame/drivers/sbowling.c
@@ -100,7 +100,7 @@ static void plot_pixel_sbw(bitmap_ind16 *tmpbitmap, int x, int y, int col, int f
y = 255-y;
x = 247-x;
}
-
+
tmpbitmap->pix16(y, x) = col;
}
@@ -443,4 +443,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", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1982, sbowling, 0, sbowling, sbowling, driver_device, 0, ROT90, "Taito Corporation", "Strike Bowling", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/sbrain.c b/src/mame/drivers/sbrain.c
index 8c2660f3d88..6c760eee0fe 100644
--- a/src/mess/drivers/sbrain.c
+++ b/src/mame/drivers/sbrain.c
@@ -373,4 +373,4 @@ ROM_START( sbrain )
ROM_LOAD( "c10_char.bin", 0x0000, 0x2000, BAD_DUMP CRC(cb530b6f) SHA1(95590bbb433db9c4317f535723b29516b9b9fcbf))
ROM_END
-COMP( 1981, sbrain, 0, 0, sbrain, sbrain, sbrain_state, sbrain, "Intertec", "Superbrain", GAME_NOT_WORKING )
+COMP( 1981, sbrain, 0, 0, sbrain, sbrain, sbrain_state, sbrain, "Intertec", "Superbrain", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/sbrkout.c b/src/mame/drivers/sbrkout.c
index 630d7908fb5..33b8e1d5a10 100644
--- a/src/mame/drivers/sbrkout.c
+++ b/src/mame/drivers/sbrkout.c
@@ -702,7 +702,7 @@ ROM_END
*
*************************************/
-GAMEL( 1978, sbrkout, 0, sbrkout, sbrkout, driver_device, 0, ROT270, "Atari", "Super Breakout (rev 04)", GAME_SUPPORTS_SAVE, layout_sbrkout )
-GAMEL( 1978, sbrkout3, sbrkout, sbrkout, sbrkout, driver_device, 0, ROT270, "Atari", "Super Breakout (rev 03)", GAME_SUPPORTS_SAVE, layout_sbrkout )
-GAMEL( 1978, sbrkoutc, sbrkout, sbrkout, sbrkoutc, driver_device, 0, ROT270, "Atari", "Super Breakout (Canyon and Vertical Breakout, prototype)", GAME_SUPPORTS_SAVE, layout_sbrkout )
-GAMEL( 1978, sbrkoutct, sbrkout, sbrkoutct, sbrkoutct, driver_device, 0, ROT270, "Atari", "Super Breakout (Cocktail, prototype)", GAME_SUPPORTS_SAVE, layout_sbrkout )
+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 )
diff --git a/src/mame/drivers/sbugger.c b/src/mame/drivers/sbugger.c
index de62f1914a8..21c5f6747b0 100644
--- a/src/mame/drivers/sbugger.c
+++ b/src/mame/drivers/sbugger.c
@@ -276,5 +276,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)", GAME_NOT_WORKING | GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
-GAME( 1981, sbuggera, sbugger, sbugger, sbugger, driver_device, 0, ROT270, "Game-A-Tron", "Space Bugger (set 2)", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/sc1.c b/src/mame/drivers/sc1.c
index 23676b9f822..18a8d05dda4 100644
--- a/src/mess/drivers/sc1.c
+++ b/src/mame/drivers/sc1.c
@@ -197,4 +197,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND )
+COMP( 1989, sc1, 0, 0, sc1, sc1, driver_device, 0, "VEB Mikroelektronik Erfurt", "Schachcomputer SC1", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mess/drivers/sc2.c b/src/mame/drivers/sc2.c
index 88b538f6a17..2eb3455c1f7 100644
--- a/src/mess/drivers/sc2.c
+++ b/src/mame/drivers/sc2.c
@@ -235,4 +235,4 @@ 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", GAME_SUPPORTS_SAVE)
+COMP( 1981, sc2, 0, 0, sc2, sc2, driver_device, 0, "VEB Mikroelektronik Erfurt", "Schachcomputer SC2", MACHINE_SUPPORTS_SAVE)
diff --git a/src/mame/drivers/scobra.c b/src/mame/drivers/scobra.c
index 3d79366c04a..08c51b55cef 100644
--- a/src/mame/drivers/scobra.c
+++ b/src/mame/drivers/scobra.c
@@ -199,6 +199,74 @@ static ADDRESS_MAP_START( mimonkey_map, AS_PROGRAM, 8, scobra_state )
AM_RANGE(0xc000, 0xffff) AM_ROM
ADDRESS_MAP_END
+// weird address map like anteateruk in galaxian.c (also a free enterprise set)
+static ADDRESS_MAP_START( rescuefe_map, AS_PROGRAM, 8, scobra_state )
+ AM_RANGE(0x0000, 0x05ff) AM_ROM
+ AM_RANGE(0x0600, 0x0fff) AM_RAM // sets stack here
+ AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE(galaxold_videoram_w) AM_SHARE("videoram")
+ AM_RANGE(0x1400, 0x143f) AM_RAM_WRITE(galaxold_attributesram_w) AM_SHARE("attributesram")
+ AM_RANGE(0x1440, 0x145f) AM_RAM AM_SHARE("spriteram")
+ AM_RANGE(0x1460, 0x147f) AM_RAM AM_SHARE("bulletsram")
+ AM_RANGE(0x1480, 0x14ff) AM_RAM
+
+ AM_RANGE(0x4400, 0x5dff) AM_ROM
+ AM_RANGE(0x5e00, 0x6bff) AM_ROM // some right?
+
+ AM_RANGE(0x8200, 0x93ff) AM_ROM // wrong? (maybe some correct?)
+
+ AM_RANGE(0xa600, 0xa6ff) AM_ROM // wrong (taunt string) jumps to around a600 so something must map in this area?
+
+ AM_RANGE(0xEA01, 0xEA01) AM_WRITE(galaxold_nmi_enable_w)
+ AM_RANGE(0xEA93, 0xEA93) AM_WRITE(scrambold_background_enable_w)
+ AM_RANGE(0xEA86, 0xEA86) AM_WRITE(galaxold_flip_screen_x_w)
+ AM_RANGE(0xEA87, 0xEA87) AM_WRITE(galaxold_flip_screen_y_w)
+
+ // does it have a real ppi8255?
+ AM_RANGE(0xC190, 0xC193) AM_DEVREAD("ppi8255_0", i8255_device, read) // ?
+ AM_RANGE(0xC160, 0xC163) AM_DEVREAD("ppi8255_0", i8255_device, read) // ?
+
+ AM_RANGE(0xC4Ac, 0xC4AF) AM_DEVREAD("ppi8255_1", i8255_device, read) // ?
+
+ AM_RANGE(0xc180, 0xc183) AM_DEVWRITE("ppi8255_0", i8255_device, write) // correct based on main set?
+ AM_RANGE(0xc220, 0xc223) AM_DEVWRITE("ppi8255_1", i8255_device, write) // ^
+
+ // addresses below are WRONG, just moved to keep things out the way while the rom mapping is figured out
+// AM_RANGE(0xf802, 0xf802) AM_WRITE(galaxold_coin_counter_w)
+// AM_RANGE(0xf000, 0xf000) AM_READ(watchdog_reset_r)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( minefldfe_map, AS_PROGRAM, 8, scobra_state )
+ AM_RANGE(0x0000, 0x0bff) AM_ROM // ok
+ AM_RANGE(0x0c00, 0x0c3f) AM_RAM_WRITE(galaxold_attributesram_w) AM_SHARE("attributesram") // ok
+ AM_RANGE(0x0c40, 0x0c5f) AM_RAM AM_SHARE("spriteram") // ok
+ AM_RANGE(0x0c60, 0x0c7f) AM_RAM AM_SHARE("bulletsram") // ok
+ AM_RANGE(0x0c80, 0x17ff) AM_RAM
+
+ AM_RANGE(0x2200, 0x3fff) AM_ROM // ok
+ AM_RANGE(0x5800, 0x6dff) AM_ROM
+ AM_RANGE(0x8a00, 0x91ff) AM_ROM
+
+ AM_RANGE(0x4200, 0x45ff) AM_RAM_WRITE(galaxold_videoram_w) AM_SHARE("videoram") // ok
+
+ AM_RANGE(0x7621, 0x7621) AM_WRITE(galaxold_nmi_enable_w) // a801
+ AM_RANGE(0x7673, 0x7673) AM_WRITE(scrambold_background_enable_w) // a083
+ AM_RANGE(0x7704, 0x7704) AM_WRITE(galaxold_stars_enable_w) // a804
+ AM_RANGE(0x7616, 0x7616) AM_WRITE(galaxold_flip_screen_x_w) // a806
+ AM_RANGE(0x7617, 0x7617) AM_WRITE(galaxold_flip_screen_y_w) // a807
+
+ AM_RANGE(0x4C00, 0x4C03) AM_MIRROR(0x00fc) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write)
+ AM_RANGE(0x4B00, 0x4B03) AM_MIRROR(0x00fc) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write)
+
+
+
+
+ AM_RANGE(0x1D98, 0x1D98) AM_READ(watchdog_reset_r) // 0xb000
+
+
+ // addresses below are WRONG, just moved to keep things out the way while the rom mapping is figured out
+ AM_RANGE(0xf802, 0xf802) AM_WRITE(galaxold_coin_counter_w)
+ADDRESS_MAP_END
+
READ8_MEMBER(scobra_state::scobra_soundram_r)
{
@@ -534,6 +602,61 @@ static INPUT_PORTS_START( minefld )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
+// doesn't seem to have a 'starting level' dipswitch, probably has difficult tho?
+static INPUT_PORTS_START( minefldfe )
+ PORT_START("IN0")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_UP ) PORT_8WAY // fire up
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) // bomb
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) PORT_8WAY
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT ) PORT_8WAY
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
+
+ PORT_START("IN1")
+ PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x02, 0x00, DEF_STR( Demo_Sounds ) ) // also credit sound!
+ PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_RIGHT ) PORT_8WAY
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_LEFT ) PORT_8WAY
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 )
+
+ PORT_START("IN2")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_DOWN ) PORT_8WAY // fire down
+ PORT_DIPNAME( 0x02, 0x00, DEF_STR( Coinage ) )
+ PORT_DIPSETTING( 0x00, "Coin A 1/1 Coin B 1/10" )
+ PORT_DIPSETTING( 0x02, "Coin A 2/1 Coin B 1/3" )
+ PORT_DIPNAME( 0x0c, 0x08, DEF_STR( Lives ) )
+ PORT_DIPSETTING( 0x0c, "2" )
+ PORT_DIPSETTING( 0x08, "3" )
+ PORT_DIPSETTING( 0x04, "4" )
+ PORT_DIPSETTING( 0x00, "5" )
+
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_UP ) PORT_8WAY // move up
+ PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_DOWN ) PORT_8WAY // move down
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+INPUT_PORTS_END
+
static INPUT_PORTS_START( hustler )
PORT_START("IN0")
@@ -711,6 +834,17 @@ static MACHINE_CONFIG_DERIVED( rescue, type1 )
MCFG_VIDEO_START_OVERRIDE(scobra_state,rescue)
MACHINE_CONFIG_END
+static MACHINE_CONFIG_DERIVED( rescuefe, rescue )
+ /* basic machine hardware */
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(rescuefe_map)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( rescueb, rescue )
+ MCFG_DEVICE_MODIFY("ppi8255_1")
+ MCFG_I8255_IN_PORTC_CB(READ8(scobra_state, rescueb_a002_r)) // protection? must return 0xfc or the game jumps to 0x00
+MACHINE_CONFIG_END
+
static MACHINE_CONFIG_DERIVED( minefld, type1 )
@@ -725,6 +859,11 @@ static MACHINE_CONFIG_DERIVED( minefld, type1 )
MCFG_VIDEO_START_OVERRIDE(scobra_state,minefld)
MACHINE_CONFIG_END
+static MACHINE_CONFIG_DERIVED( minefldfe, minefld )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(minefldfe_map)
+MACHINE_CONFIG_END
+
static MACHINE_CONFIG_DERIVED( mimonkey, type1 )
@@ -1061,6 +1200,199 @@ ROM_START( minefld )
ROM_LOAD( "minefld.clr", 0x0000, 0x0020, CRC(1877368e) SHA1(5850e03debe572f72abd91c756c0f8613018a962) )
ROM_END
+/*
+
+This is a bootleg by Free Enterprise Games.
+The host board is common Scramble hardware.
+There is a small sub-board containing a Z80, the 3 'sub' eproms, a 2kx8 SRAM and an unknown
+DIP24 chip by AMD(C)1979. I'm sure there is some obfuscation going on with this sub board.
+There's a taunt in one of the EPROMs telling people they won't be able to copy it and get
+it working ;-)
+There are 2 GFX ROMs on the main board and 2 program ROMs and a color PROM.
+There's also another small sub board plugged in at position 5L and 5M replacing 2 logic chips
+with 8 logic chips and it's also wired to various logic chips on the main board.
+The games are possibly Minefield and Scramble together on one board although both boards could
+be running different games.
+One board is missing the 2 sound ROMs (possibly on purpose, don't know)
+Both are missing the top sound PCB.
+
+*/
+
+/* the 'Minefield' shop shows a Logicshop copyright, and a phone number with a Great Yarmouth area code
+ which seems to indicate the following manufacturer / operator.
+
+ The Logicshop (Great Yarmouth)
+ Caesar's Arcade
+ Beach Rd
+ Hemsby
+ Great Yarmouth
+ Norfolk
+ NR29 4HS
+
+*/
+
+
+ROM_START( minefldfe )
+ ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF )
+ ROM_LOAD( "sub-1.bin", 0x0000, 0x0c00, CRC(0511df9f) SHA1(e4b93e70a070a8f42442c8329478b98cba387971) ) // all used
+ ROM_CONTINUE(0x2200, 0x1400)
+ ROM_LOAD( "sub-2.bin", 0x3600, 0x0a00, CRC(00205e04) SHA1(f8e8399a1aaa548ae2448ebc96fb3e68625f9260) ) //
+ ROM_CONTINUE(0x5800, 0x1600)
+ ROM_LOAD( "sub-3.bin", 0x8a00, 0x0800, CRC(98c05d8d) SHA1(9c89504421df754bb0228ca08c7bfae5f6dc3e91) ) // all used
+
+ ROM_REGION( 0x10000, "audiocpu", ROMREGION_ERASEFF )
+ ROM_LOAD( "snd.2l", 0x0000, 0x0800, CRC(8bef736b) SHA1(c5c7ce9c40e6fe60a4914b6bbd646ba6853c9043) )
+ ROM_LOAD( "snd.2m", 0x0800, 0x0800, CRC(f67b3f97) SHA1(bb15f95eab6594508b5c02af60ed9fff3abd23ee) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "gfx.5f", 0x0000, 0x0800, CRC(8b5e187a) SHA1(3afd348a2ade9fc01fd1fc6a5ce9b148e0a1ead1) )
+ ROM_LOAD( "gfx.5h", 0x0800, 0x0800, CRC(4b7e1fbc) SHA1(334c09f380a3750874c4bef8e987112e7a50fdbd) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "82s123.6e", 0x0000, 0x0020, CRC(1877368e) SHA1(5850e03debe572f72abd91c756c0f8613018a962) )
+ROM_END
+
+/*
+
+notes about missing code in rescuefe - where is this??
+
+the first part of 0xa600 - 0xa643 should be a set of jumps
+based on the replaced code, setting 'a' them jumping
+elsewhere (probably directly after the table)
+
+547C: CD 00 A6 call $A600
+is
+1E34: 3E 00 ld a,$00
+1E36: CD 50 09 call $0950
+
+4FA2: CD 03 A6 call $A603
+is
+18D7: 3E 01 ld a,$01
+18D9: CD 50 09 call $0950
+
+48CF: CD 07 A6 call $A607
+is
+11F6: 3E 02 ld a,$02
+11F8: CD 50 09 call $0950
+
+640B: CD 0B A6 call $A60B
+is
+2EBD: 3E 03 ld a,$03
+2EBF: CD 50 09 call $0950
+
+// there's no ld a,0x04? anywhere in the original code
+// so next entry is 0x05
+
+58CB: CD 0F A6 call $A60F
+is
+2296: 3E 05 ld a,$05
+2298: CD 50 09 call $0950
+
+49DB: CD 13 A6 call $A613
+is
+1304: 3E 06 ld a,$06
+1306: CD 50 09 call $0950
+
+5FA9: CD 17 A6 call $A617
+is
+2A35: 3E 07 ld a,$07
+2A37: CD 50 09 call $0950
+
+
+5834: F5 push af
+5835: CD 1B A6 call $A61B
+5838: F1 pop af
+is inserted, replaces nothing?!
+elsewhere, as expected we have
+
+5DA9: CD 1B A6 call $A61B
+is
+281C: 3E 08 ld a,$08
+281E: CD 50 09 call $0950
+
+5E45: CD 1F A6 call $A61F
+is
+28CB: 3E 09 ld a,$09
+28CD: CD 50 09 call $0950
+
+
+51B8: CD 23 A6 call $A623
+is
+1B0A: 3E 0A ld a,$0A
+1B0C: CD 50 09 call $0950
+
+4FE4: CD 27 A6 call $A627
+is
+1930: 3E 0B ld a,$0B
+1932: CD 50 09 call $0950
+
+4A51: CD 2B A6 call $A62B
+is
+137C: 3E 0C ld a,$0C
+137E: CD 50 09 call $0950
+
+4648: CD 2F A6 call $A62F
+is
+0E6D: 3E 0D ld a,$0D
+0E6F: CD 50 09 call $0950
+
+516D: CD 33 A6 call $A633
+is
+1ABC: 3E 0E ld a,$0E
+1ABE: CD 50 09 call $0950
+
+5476: CD 37 A6 call $A637
+is
+1E2C: 3E 0F ld a,$0F
+1E2E: CD 50 09 call $0950
+
+4DD3: CD 3B A6 call $A63B
+is
+1704: 3E 10 ld a,$10
+1706: CD 50 09 call $0950
+
+4AF0: CD 3F A6 call $A63F
+is
+141D: 3E 11 ld a,$11
+141F: CD 50 09 call $0950
+
+I imagine the a643 - A664 area is the code that was originally at 0x950
+
+479F: CD 65 A6 call $A665 << call to bigger function
+is
+0FE2: CD EB 0F call $0FEB << call to bigger function
+
+so $a665 - $a69a is probably the code from 0x0feb
+
+
+44EC: CD 9B A6 call $A69B << call to bigger function
+is
+0D0D: CD D2 10 call $10D2 << call to bigger function
+
+and 0xa69b - 0xa??? is the code from 0x10d2
+
+*/
+
+ROM_START( rescuefe )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "sub-1.bin", 0x0000, 0x0600, CRC(7a6e813e) SHA1(5f9fff576f6a8d8e09f11404ca49b1011d17fa36) ) // correct?
+ ROM_CONTINUE( 0x4400, 0x1a00 ) // seems to be correct at least for the majority of blocks
+ ROM_LOAD( "sub-2.bin", 0x5e00, 0x0e00, CRC(28fcec83) SHA1(f2b2b2c8f65450b627587cf5f16620b95d7fe4e2) ) // correct at least mapping of 6903?
+ ROM_CONTINUE(0x8200, 0x1200) // some of this seems to be in the right place
+ ROM_LOAD( "sub-3.bin", 0xa000, 0x0800, CRC(6fbeb239) SHA1(cb81719e8bb6b99ad4e46d9404c61c09db8475c3) ) // strange size, contains nothing except a taunt message which seems to be cut off at the start??
+
+ ROM_REGION( 0x10000, "audiocpu", ROMREGION_ERASEFF ) // audio CPU code was missing, assuming the same as regular Rescue due to sound code on the minefield bootleg matching.
+ ROM_LOAD( "rb15csnd.2l", 0x0000, 0x0800, CRC(8b24bf17) SHA1(cc49fef3c629c12f1a7eb9886fdc2df4b08f4b37) )
+ ROM_LOAD( "rb15dsnd.2m", 0x0800, 0x0800, CRC(d96e4fb3) SHA1(8bb023c7c668f93d2333d648fc3cefdbd66f92db) )
+
+ ROM_REGION( 0x1000, "gfx1", 0 )
+ ROM_LOAD( "gfx.5f", 0x0000, 0x0800, CRC(60f49e88) SHA1(92ea21715b2d4d28a0509a31b35b43354be7b75f) )
+ ROM_LOAD( "gfx.5h", 0x0800, 0x0800, CRC(9486e09e) SHA1(a8c2b48a3a2633c2eae19bb40299c4da1499c15c) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "82s123.6e", 0x0000, 0x0020, CRC(40c6bcbd) SHA1(cb0c058eadc37eba4b1a99be095da81a14099d8d) )
+ROM_END
+
ROM_START( hustler )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "hustler.1", 0x0000, 0x1000, CRC(94479a3e) SHA1(ea3a1a3f6bee3d35a6a0fb0ba689a25f6b919e5d) )
@@ -1232,26 +1564,28 @@ ROM_START( mimonsco )
ROM_END
-GAME( 1981, stratgyx, 0, stratgyx, stratgyx, scramble_state, stratgyx, ROT0, "Konami", "Strategy X", GAME_SUPPORTS_SAVE )
-GAME( 1981, stratgys, stratgyx, stratgyx, stratgyx, scramble_state, stratgyx, ROT0, "Konami (Stern Electronics license)", "Strategy X (Stern Electronics)", GAME_SUPPORTS_SAVE )
-GAME( 1982, strongx, stratgyx, stratgyx, stratgyx, scramble_state, stratgyx, ROT0, "bootleg", "Strong X", GAME_SUPPORTS_SAVE )
+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( 1982, darkplnt, 0, darkplnt, darkplnt, scramble_state, darkplnt, ROT180, "Stern Electronics", "Dark Planet", GAME_SUPPORTS_SAVE )
+GAME( 1982, darkplnt, 0, darkplnt, darkplnt, scramble_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)", GAME_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, rescue, 0, rescue, rescue, scramble_state, rescue, ROT90, "Stern Electronics", "Rescue", GAME_SUPPORTS_SAVE )
-GAME( 1982, rescueb, rescue, rescue, rescue, scramble_state, rescue, ROT90, "bootleg (Videl Games)", "Rescue (bootleg)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1982, aponow, rescue, rescue, rescue, scramble_state, rescue, ROT90, "bootleg", "Apocaljpse Now (bootleg of Rescue)", GAME_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( 1983, minefld, 0, minefld, minefld, scramble_state, minefld, ROT90, "Stern Electronics", "Minefield", GAME_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( 1981, hustler, 0, hustler, hustler, scramble_state, hustler, ROT90, "Konami", "Video Hustler", GAME_SUPPORTS_SAVE )
-GAME( 1981, hustlerd, hustler, hustler, hustler, scramble_state, hustlerd, ROT90, "Konami (Dynamo Games license)", "Video Hustler (Dynamo Games)", GAME_SUPPORTS_SAVE )
-GAME( 1981, billiard, hustler, hustler, hustler, scramble_state, billiard, ROT90, "bootleg", "The Billiards (Video Hustler bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1981, hustlerb, hustler, hustlerb, hustler, driver_device, 0, ROT90, "bootleg (Digimatic)", "Video Hustler (bootleg, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1981, hustlerb2, hustler, hustler, hustler, scramble_state, hustlerd, ROT90, "bootleg", "Fatsy Gambler (Video Hustler bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1981, hustlerb4, hustler, hustlerb4, hustler, driver_device, 0, ROT90, "bootleg", "Video Hustler (bootleg, set 2)", GAME_SUPPORTS_SAVE )
+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( 1982, mimonkey, 0, mimonkey, mimonkey, scramble_state, mimonkey, ROT90, "Universal Video Games", "Mighty Monkey", GAME_SUPPORTS_SAVE )
-GAME( 1982, mimonsco, mimonkey, mimonkey, mimonsco, scramble_state, mimonsco, ROT90, "bootleg", "Mighty Monkey (bootleg on Super Cobra hardware)", GAME_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 )
diff --git a/src/mess/drivers/scorpion.c b/src/mame/drivers/scorpion.c
index de840193ade..897cd6ff054 100644
--- a/src/mess/drivers/scorpion.c
+++ b/src/mame/drivers/scorpion.c
@@ -371,7 +371,7 @@ 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", GAME_NOT_WORKING )
-COMP( 1998, kay1024, spec128, 0, scorpion, spec_plus, driver_device, 0, "NEMO", "Kay 1024", GAME_NOT_WORKING )
-COMP( 19??, quorum, spec128, 0, quorum, spec_plus, driver_device, 0, "<unknown>", "Quorum", GAME_NOT_WORKING )
-COMP( 19??, bestzx, spec128, 0, scorpion, spec_plus, driver_device, 0, "<unknown>", "BestZX", GAME_NOT_WORKING )
+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, "<unknown>", "Quorum", MACHINE_NOT_WORKING )
+COMP( 19??, bestzx, spec128, 0, scorpion, spec_plus, driver_device, 0, "<unknown>", "BestZX", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/scotrsht.c b/src/mame/drivers/scotrsht.c
index df6a73bb89f..56a8c98d332 100644
--- a/src/mame/drivers/scotrsht.c
+++ b/src/mame/drivers/scotrsht.c
@@ -242,4 +242,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", GAME_SUPPORTS_SAVE )
+GAME( 1985, scotrsht, 0, scotrsht, scotrsht, driver_device, 0, ROT90,"Konami", "Scooter Shooter", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/scramble.c b/src/mame/drivers/scramble.c
index ad73e39448f..27f277f0cae 100644
--- a/src/mame/drivers/scramble.c
+++ b/src/mame/drivers/scramble.c
@@ -191,7 +191,7 @@ static ADDRESS_MAP_START( newsin7_map, AS_PROGRAM, 8, scramble_state )
AM_RANGE(0x5080, 0x50ff) AM_RAM
AM_RANGE(0x6800, 0x6800) AM_WRITE(galaxold_coin_counter_1_w)
AM_RANGE(0x6801, 0x6801) AM_WRITE(galaxold_stars_enable_w)
- AM_RANGE(0x6802, 0x6802) AM_WRITE(galaxold_nmi_enable_w)
+ //AM_RANGE(0x6802, 0x6802) AM_WRITE(galaxold_nmi_enable_w)
AM_RANGE(0x6808, 0x6808) AM_WRITE(galaxold_coin_counter_0_w)
AM_RANGE(0x6809, 0x6809) AM_WRITE(galaxold_flip_screen_x_w)
AM_RANGE(0x680b, 0x680b) AM_WRITE(galaxold_flip_screen_y_w)
@@ -412,7 +412,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( harem_sound_map, AS_PROGRAM, 8, scramble_state )
AM_RANGE(0x0000, 0x2fff) AM_ROM
- AM_RANGE(0x6000, 0x6000) AM_READNOP
+ AM_RANGE(0x6000, 0x6000) AM_READ(harem_digitalker_intr_r)
AM_RANGE(0x8000, 0x83ff) AM_RAM
AM_RANGE(0xa000, 0xafff) AM_WRITE(scramble_filter_w)
ADDRESS_MAP_END
@@ -420,7 +420,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( harem_sound_io_map, AS_IO, 8, scramble_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- // ports->speech?:
+ // ports->speech:
AM_RANGE(0x04, 0x04) AM_DEVWRITE("8910.3", ay8910_device, address_w)
AM_RANGE(0x08, 0x08) AM_DEVREADWRITE("8910.3", ay8910_device, data_r, data_w)
// same as scramble:
@@ -1451,13 +1451,14 @@ static MACHINE_CONFIG_DERIVED( newsin7, scramble )
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(newsin7_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", scramble_state, irq0_line_hold) // newsin7a has a corrupt opcode at 0x67, the irq routine instead of NMI avoids it by jumping to 0x68 after doing some other things, probably intentional. newsin7 has this fixed, maybe a bootleg?
/* video hardware */
MCFG_GFXDECODE_MODIFY("gfxdecode", newsin7)
MCFG_PALETTE_MODIFY("palette")
MCFG_PALETTE_ENTRIES(32+64+2+0) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */
MCFG_PALETTE_INIT_OWNER(scramble_state,galaxold)
- MCFG_VIDEO_START_OVERRIDE(scramble_state,scrambold)
+ MCFG_VIDEO_START_OVERRIDE(scramble_state,newsin7)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( mrkougar, scramble )
@@ -1688,11 +1689,14 @@ static MACHINE_CONFIG_DERIVED( harem, scramble )
MCFG_VIDEO_START_OVERRIDE(scramble_state,harem)
- /* sound hardware */
+ /* extra AY8910 with I/O ports */
MCFG_SOUND_ADD("8910.3", AY8910, 14318000/8)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.16)
- MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(scramble_state, harem_portA_w)) // Port A write
- MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(scramble_state, harem_portB_w)) // Port B write
+ MCFG_AY8910_PORT_A_WRITE_CB(DEVWRITE8("digitalker", digitalker_device, digitalker_data_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(scramble_state, harem_digitalker_control_w))
+
+ MCFG_DIGITALKER_ADD("digitalker", 4000000)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.16)
MACHINE_CONFIG_END
/***************************************************************************
@@ -1899,6 +1903,28 @@ ROM_START( newsin7 )
ROM_LOAD( "newsin.6", 0x0000, 0x0020, CRC(5cf2cd8d) SHA1(0c85737add75545ab11aaf64fe37c7bd078308c9) )
ROM_END
+ROM_START( newsin7a )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "epr2732-1.u26", 0x0000, 0x1000, CRC(67bd4b05) SHA1(a3e397fe0b9baba48fa876c9cf53319f5c7c73f6) )
+ ROM_LOAD( "epr2732-2.u56", 0x1000, 0x1000, CRC(93ac59de) SHA1(8eed2bab741ca3d0deeeaede22547ebe90b46a46) )
+ ROM_LOAD( "epr2732-3.u69", 0x2000, 0x1000, CRC(6a778d95) SHA1(bf94017f06e7029a8a70e7b7ae741f7eac9d3e07) )
+ ROM_LOAD( "epr2732-4.u98", 0x3000, 0x1000, CRC(7f351640) SHA1(5db70661c75f125eb531e84df66d0127c29cb821) )
+ ROM_LOAD( "epr2732-5.u114", 0xa000, 0x1000, CRC(06275d59) SHA1(a5a5436c0b014af06181eeb044d8c4e3188414ea) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "epr2716.u39", 0x0000, 0x0800, CRC(d88489a2) SHA1(ab10fd4862129824301a0a847de298f1826aa03e) )
+ ROM_LOAD( "epr2716.u51", 0x0800, 0x0800, CRC(b154a7af) SHA1(91ca28b2530f22786ff581e5710b40f0cf99f516) )
+ ROM_LOAD( "epr2716.u78", 0x1000, 0x0800, CRC(7ade709b) SHA1(bda1401172139cd6e3e03424c56e4f59e5afebd5) ) /* u78 socket was empty, using the newsin7 one */
+
+ ROM_REGION( 0x3000, "gfx1", 0 )
+ ROM_LOAD( "epr2732-7.db", 0x2000, 0x1000, CRC(6bc5d64f) SHA1(4f52224a4d5294a7487a1fc55eba13cf0b5fb6af) )
+ ROM_LOAD( "epr2732-6.u133", 0x1000, 0x1000, CRC(0c5b895a) SHA1(994ad7f051b30a3045ffc08ac8d9d7092fbadef3) )
+ ROM_LOAD( "epr2732-8.db", 0x0000, 0x1000, CRC(6b87adff) SHA1(c0943832e498ab04978b11b163ba951d4a7e2e60) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "prom.u59", 0x0000, 0x0020, CRC(16cb5f4e) SHA1(36753611808d245d4f3ee55f71394297dd2afc09) ) /* Slightly different color prom */
+ROM_END
+
ROM_START( mrkougar )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "2732-7.bin", 0x0000, 0x1000, CRC(fd060ffb) SHA1(b3bee6fe879f13f3178bef3b2dff3041e698f061) )
@@ -2161,6 +2187,32 @@ ROM_START( mimonscr )
ROM_LOAD( "c01s.6e", 0x0000, 0x0020, CRC(4e3caeab) SHA1(a25083c3e36d28afdefe4af6e6d4f3155e303625) )
ROM_END
+
+ROM_START( mimonscra )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "1.c2", 0x0000, 0x1000, CRC(cfff26f3) SHA1(6e611e370ce5a93099bdcdb3b34b86c9c6d49180) )
+ ROM_LOAD( "2.e2", 0x1000, 0x1000, CRC(1fca805f) SHA1(eb85d3c08b141d8bd85da38936a5fafcdd2ff709) )
+ ROM_LOAD( "3.f2", 0x2000, 0x1000, CRC(24ce1ce3) SHA1(ae5ba6913cabab2152bf48c0c0d5983ecbe5c700) )
+ ROM_LOAD( "4.h2", 0x3000, 0x1000, CRC(c83fb639) SHA1(38ddd80b25cc0707b9e53396c322fe731ea8bc3e) )
+ ROM_LOAD( "5.j2", 0xc000, 0x1000, CRC(a9f12dfc) SHA1(c279e3ac84194cc83642a2c330fd869eaae8f063) )
+ ROM_LOAD( "6.l2", 0xd000, 0x1000, CRC(e492a40c) SHA1(d01d6f9c18821fd8c7ed11d65d13bd0c9595881f) )
+ ROM_LOAD( "7.m2", 0xe000, 0x1000, CRC(5339928d) SHA1(7c28516fb7d762e2f77d0ed3dc56a57d0213dbf9) )
+ ROM_LOAD( "8.p2", 0xf000, 0x1000, CRC(0b9915b8) SHA1(bb5155eede699d0b612cae458499bd245ab44b4d) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "2732.c5", 0x0000, 0x1000, CRC(5995f24b) SHA1(e3cad71006346e6ca6579c09e65195718687dca1) )
+ ROM_LOAD( "2732.d5", 0x1000, 0x1000, CRC(35ed0f96) SHA1(5aaacae5c2acf97540b72491f71ea823f5eeae1a) )
+
+ ROM_REGION( 0x4000, "gfx1", 0 )
+ ROM_LOAD( "top.g5", 0x0000, 0x1000, CRC(f73a8412) SHA1(9baf4336cceb9b039372b0a1c733910aeab5ec6d) )
+ ROM_LOAD( "bottom.g5", 0x1000, 0x1000, CRC(3828c9db) SHA1(eaf9e81c803ad2be6c2db3104f07f80788378286) )
+ ROM_LOAD( "top.f5", 0x2000, 0x1000, CRC(9e0e9289) SHA1(79d412dbceb364bc798feda658b15792feb63338) )
+ ROM_LOAD( "bottom.f5", 0x3000, 0x1000, CRC(92085b0c) SHA1(a791703fa9f17e42450c871d902430fc3c6b10ef) )
+
+ ROM_REGION( 0x0020, "proms", 0 )
+ ROM_LOAD( "mb7051.e6", 0x0000, 0x0020, CRC(4e3caeab) SHA1(a25083c3e36d28afdefe4af6e6d4f3155e303625) )
+ROM_END
+
ROM_START( ad2083 )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "ad0.10o", 0x0000, 0x2000, CRC(4d34325a) SHA1(4a0eb1cd94382c44ab2642d734d3da9025872eba) )
@@ -2218,7 +2270,7 @@ ROM_START( harem ) /* Main PCB version simular to Scorpion (also developed by I.
ROM_LOAD( "harem_sound1.ic12", 0x0000, 0x2000, CRC(b54799dd) SHA1(b6aeb010257cba48a52afd33b4f8031c7d99550c) )
ROM_LOAD( "harem_sound2.ic13", 0x2000, 0x1000, CRC(2d5573a4) SHA1(1fdcd99d89e078509634742b2116a35bb199fe4b) )
- ROM_REGION( 0x2000, "unknown", 0 ) // DigiTalker ROM (same exact sound PCB as Scorpion (galdrv.c))
+ ROM_REGION( 0x2000, "digitalker", 0 ) // DigiTalker ROM (same exact sound PCB as Scorpion (galaxian.c))
ROM_LOAD( "harem_h1+h2.ic25", 0x0000, 0x2000, CRC(279f923a) SHA1(166b1b625997766f0de7cc18af52c42268022fcb) )
ROM_REGION( 0x4000, "gfx1", 0 )
@@ -2230,42 +2282,44 @@ ROM_START( harem ) /* Main PCB version simular to Scorpion (also developed by I.
ROM_END
-GAME( 1982, triplep, 0, triplep, triplep, scramble_state, scramble_ppi, ROT90, "K.K. International", "Triple Punch (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1982, triplepa, triplep, triplep, triplep, scramble_state, scramble_ppi, ROT90, "K.K. International", "Triple Punch (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1982, knockout, triplep, triplep, triplep, scramble_state, scramble_ppi, ROT90, "bootleg? (KKK)", "Knock Out!! (bootleg?)", GAME_SUPPORTS_SAVE )
+GAME( 1982, triplep, 0, triplep, triplep, scramble_state, scramble_ppi, ROT90, "K.K. International", "Triple Punch (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, triplepa, triplep, triplep, triplep, scramble_state, scramble_ppi, ROT90, "K.K. International", "Triple Punch (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, knockout, triplep, triplep, triplep, scramble_state, scramble_ppi, ROT90, "bootleg? (KKK)", "Knock Out!! (bootleg?)", MACHINE_SUPPORTS_SAVE )
-GAME( 1981, mariner, 0, mariner, scramble, scramble_state, mariner, ROT90, "Amenip", "Mariner", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
-GAME( 1981, 800fath, mariner, mariner, 800fath, scramble_state, mariner, ROT90, "Amenip (US Billiards Inc. license)", "800 Fathoms", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
+GAME( 1981, mariner, 0, mariner, scramble, scramble_state, mariner, ROT90, "Amenip", "Mariner", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
+GAME( 1981, 800fath, mariner, mariner, 800fath, scramble_state, mariner, ROT90, "Amenip (US Billiards Inc. license)", "800 Fathoms", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
-GAME( 1981, ckongs, ckong, ckongs, ckongs, scramble_state, ckongs, ROT90, "bootleg", "Crazy Kong (Scramble hardware)", GAME_SUPPORTS_SAVE )
+GAME( 1981, ckongs, ckong, ckongs, ckongs, scramble_state, ckongs, ROT90, "bootleg", "Crazy Kong (Scramble hardware)", MACHINE_SUPPORTS_SAVE )
-GAME( 1981, mars, 0, mars, mars, scramble_state, mars, ROT90, "Artic", "Mars", GAME_SUPPORTS_SAVE )
+GAME( 1981, mars, 0, mars, mars, scramble_state, mars, ROT90, "Artic", "Mars", MACHINE_SUPPORTS_SAVE )
-GAME( 1982, devilfsh, 0, devilfsh, devilfsh, scramble_state, devilfsh, ROT90, "Artic", "Devil Fish", GAME_SUPPORTS_SAVE )
+GAME( 1982, devilfsh, 0, devilfsh, devilfsh, scramble_state, devilfsh, ROT90, "Artic", "Devil Fish", MACHINE_SUPPORTS_SAVE )
-GAME( 1983, newsin7, 0, newsin7, newsin7, scramble_state, mars, ROT90, "ATW USA, Inc.", "New Sinbad 7", GAME_SUPPORTS_SAVE )
+GAME( 1983, newsin7, 0, newsin7, newsin7, scramble_state, mars, ROT90, "ATW USA, Inc.", "New Sinbad 7 (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, newsin7a, newsin7, newsin7, newsin7, scramble_state, newsin7a, ROT90, "ATW USA, Inc", "New Sinbad 7 (set 2)", MACHINE_SUPPORTS_SAVE )
-GAME( 1984, mrkougar, 0, mrkougar, mrkougar, scramble_state, mrkougar, ROT90, "ATW", "Mr. Kougar", GAME_SUPPORTS_SAVE )
-GAME( 1983, mrkougar2,mrkougar, mrkougar, mrkougar, scramble_state, mrkougar, ROT90, "ATW", "Mr. Kougar (earlier)", GAME_SUPPORTS_SAVE )
-GAME( 1983, mrkougb, mrkougar, mrkougb, mrkougar, scramble_state, mrkougb, ROT90, "bootleg", "Mr. Kougar (bootleg set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1983, mrkougb2, mrkougar, mrkougb, mrkougar, scramble_state, mrkougb, ROT90, "bootleg", "Mr. Kougar (bootleg set 2)", GAME_SUPPORTS_SAVE )
+GAME( 1984, mrkougar, 0, mrkougar, mrkougar, scramble_state, mrkougar, ROT90, "ATW", "Mr. Kougar", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, mrkougar2,mrkougar, mrkougar, mrkougar, scramble_state, mrkougar, ROT90, "ATW", "Mr. Kougar (earlier)", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, mrkougb, mrkougar, mrkougb, mrkougar, scramble_state, mrkougb, ROT90, "bootleg", "Mr. Kougar (bootleg set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, mrkougb2, mrkougar, mrkougb, mrkougar, scramble_state, mrkougb, ROT90, "bootleg", "Mr. Kougar (bootleg set 2)", MACHINE_SUPPORTS_SAVE )
-GAME( 1982, hotshock, 0, hotshock, hotshock, scramble_state, hotshock, ROT90, "E.G. Felaco (Domino license)", "Hot Shocker", GAME_SUPPORTS_SAVE )
-GAME( 1982, hotshockb,hotshock, hotshock, hotshock, scramble_state, hotshock, ROT90, "E.G. Felaco", "Hot Shocker (early revision?)", GAME_SUPPORTS_SAVE ) // has "Dudley presents" (protagonist of the game), instead of Domino
+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, "<unknown>", "Conqueror", GAME_NOT_WORKING )
+GAME( 198?, conquer, 0, hotshock, hotshock, driver_device, 0, ROT90, "<unknown>", "Conqueror", MACHINE_NOT_WORKING )
-GAME( 1983, hunchbks, hunchbak, hunchbks, hunchbks, scramble_state, scramble_ppi, ROT90, "Century Electronics", "Hunchback (Scramble hardware)", GAME_SUPPORTS_SAVE )
-GAME( 1983, hunchbks2,hunchbak, hunchbks, hunchbks, scramble_state, scramble_ppi, ROT90, "bootleg (Sig)", "Hunchback (Scramble hardware, bootleg)", GAME_SUPPORTS_SAVE )
+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 )
-GAME( 1984, hncholms, huncholy, hncholms, hncholms, scramble_state, scramble_ppi, ROT90, "Century Electronics / Seatongrove Ltd", "Hunchback Olympic (Scramble hardware)", GAME_SUPPORTS_SAVE )
+GAME( 1984, hncholms, huncholy, hncholms, hncholms, scramble_state, scramble_ppi, ROT90, "Century Electronics / Seatongrove Ltd", "Hunchback Olympic (Scramble hardware)", MACHINE_SUPPORTS_SAVE )
-GAME( 1983, cavelon, 0, cavelon, cavelon, scramble_state, cavelon, ROT90, "Jetsoft", "Cavelon", GAME_SUPPORTS_SAVE )
+GAME( 1983, cavelon, 0, cavelon, cavelon, scramble_state, cavelon, ROT90, "Jetsoft", "Cavelon", MACHINE_SUPPORTS_SAVE )
-GAME( 1982, mimonscr, mimonkey, mimonscr, mimonscr, scramble_state, mimonscr, ROT90, "bootleg", "Mighty Monkey (bootleg on Scramble hardware)", GAME_SUPPORTS_SAVE )
+GAME( 1982, mimonscr, mimonkey, mimonscr, mimonscr, scramble_state, mimonscr, ROT90, "bootleg", "Mighty Monkey (bootleg on Scramble hardware)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, mimonscra,mimonkey, mimonscr, mimonscr, scramble_state, mimonscr, ROT90, "bootleg (Kaina Games)","Mighty Monkey (Kaina Games, bootleg on Scramble hardware)", MACHINE_SUPPORTS_SAVE )
-GAME( 1983, ad2083, 0, ad2083, ad2083, scramble_state, ad2083, ROT90, "Midcoin", "A. D. 2083", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
+GAME( 1983, ad2083, 0, ad2083, ad2083, scramble_state, ad2083, ROT90, "Midcoin", "A. D. 2083", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
-GAME( 1981, turpins, turtles, turpins, turpins, driver_device, 0, ROT90, "bootleg", "Turpin (bootleg on Scramble hardware)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE ) // haven't hooked up the sound CPU yet
+GAME( 1981, turpins, turtles, turpins, turpins, driver_device, 0, ROT90, "bootleg", "Turpin (bootleg on Scramble hardware)", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE ) // haven't hooked up the sound CPU yet
-GAME( 1983, harem, 0, harem, harem, scramble_state, harem, ROT90, "I.G.R.", "Harem", GAME_IMPERFECT_COLORS | GAME_IMPERFECT_SOUND ) // colors, missing speech?
+GAME( 1983, harem, 0, harem, harem, scramble_state, harem, ROT90, "I.G.R.", "Harem", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/scregg.c b/src/mame/drivers/scregg.c
index 811b8333a1b..652ebcbfacc 100644
--- a/src/mame/drivers/scregg.c
+++ b/src/mame/drivers/scregg.c
@@ -421,7 +421,7 @@ DRIVER_INIT_MEMBER(scregg_state,rockduck)
}
-GAME( 1983, dommy, 0, dommy, scregg, driver_device, 0, ROT270, "Technos Japan", "Dommy", GAME_SUPPORTS_SAVE )
-GAME( 1983, scregg, 0, scregg, scregg, driver_device, 0, ROT270, "Technos Japan", "Scrambled Egg", GAME_SUPPORTS_SAVE )
-GAME( 1983, eggs, scregg, scregg, scregg, driver_device, 0, ROT270, "Technos Japan (Universal USA license)", "Eggs (USA)", GAME_SUPPORTS_SAVE )
-GAME( 1983, rockduck, 0, scregg, rockduck, scregg_state, rockduck, ROT270, "Datel SAS", "Rock Duck (prototype?)", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
+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, rockduck, 0, scregg, rockduck, scregg_state, rockduck, ROT270, "Datel SAS", "Rock Duck (prototype?)", MACHINE_WRONG_COLORS | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/scv.c b/src/mame/drivers/scv.c
index 98d21b82846..20101807b25 100644
--- a/src/mess/drivers/scv.c
+++ b/src/mame/drivers/scv.c
@@ -715,5 +715,5 @@ 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", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-CONS( 198?, scv_pal, scv, 0, scv_pal, scv, driver_device, 0, "Yeno", "Super Cassette Vision (PAL)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/sderby.c b/src/mame/drivers/sderby.c
index cd4908f442a..c055079212f 100644
--- a/src/mame/drivers/sderby.c
+++ b/src/mame/drivers/sderby.c
@@ -941,6 +941,6 @@ ROM_END
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 )
-GAMEL( 1997, croupier, 0, pmroulet, pmroulet, driver_device, 0, ROT0, "Playmark", "Croupier (Playmark Roulette v.20.05)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING, layout_pmroulet )
-GAMEL( 1997, croupiera, croupier, pmroulet, pmroulet, driver_device, 0, ROT0, "Playmark", "Croupier (Playmark Roulette v.09.04)", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING, layout_pmroulet )
+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 )
diff --git a/src/mess/drivers/sdk80.c b/src/mame/drivers/sdk80.c
index 240bb0cfc49..25a51ac2002 100644
--- a/src/mess/drivers/sdk80.c
+++ b/src/mame/drivers/sdk80.c
@@ -19,6 +19,11 @@ S Substitute memory locations
X Examine registers
Please note this rom set boots into BASIC, not monitor.
+All commands must be in upper case.
+To correct a mistake, use DEL not Backspace. It will print a \ to indicate
+a removed character.
+
+No known manual or schematic of the video board.
****************************************************************************/
@@ -29,9 +34,9 @@ Please note this rom set boots into BASIC, not monitor.
#include "bus/rs232/rs232.h"
//#include "machine/ay31015.h"
-#define I8251A_TAG "usart"
-#define I8251A_BAUD_TAG "usart_baud"
-#define RS232_TAG "rs232"
+#define I8251A_TAG "usart"
+#define I8251A_BAUD_TAG "usart_baud"
+#define RS232_TAG "rs232"
class sdk80_state : public driver_device
{
@@ -124,6 +129,15 @@ WRITE_LINE_MEMBER( sdk80_state::usart_clock_tick )
}
}
+static DEVICE_INPUT_DEFAULTS_START( terminal ) // set up terminal to default to 4800
+ DEVICE_INPUT_DEFAULTS( "RS232_RXBAUD", 0xff, RS232_BAUD_4800 )
+ DEVICE_INPUT_DEFAULTS( "RS232_TXBAUD", 0xff, RS232_BAUD_4800 )
+ DEVICE_INPUT_DEFAULTS( "RS232_STARTBITS", 0xff, RS232_STARTBITS_1 )
+ DEVICE_INPUT_DEFAULTS( "RS232_DATABITS", 0xff, RS232_DATABITS_8 )
+ DEVICE_INPUT_DEFAULTS( "RS232_PARITY", 0xff, RS232_PARITY_NONE )
+ DEVICE_INPUT_DEFAULTS( "RS232_STOPBITS", 0xff, RS232_STOPBITS_1 )
+DEVICE_INPUT_DEFAULTS_END
+
static MACHINE_CONFIG_START( sdk80, sdk80_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", I8080A, XTAL_18_432MHz/9)
@@ -135,9 +149,10 @@ static MACHINE_CONFIG_START( sdk80, sdk80_state )
MCFG_I8251_DTR_HANDLER(DEVWRITELINE(RS232_TAG, rs232_port_device, write_dtr))
MCFG_I8251_RTS_HANDLER(DEVWRITELINE(RS232_TAG, rs232_port_device, write_rts))
- MCFG_RS232_PORT_ADD(RS232_TAG, default_rs232_devices, "null_modem")
+ MCFG_RS232_PORT_ADD(RS232_TAG, default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(DEVWRITELINE(I8251A_TAG, i8251_device, write_rxd))
MCFG_RS232_DSR_HANDLER(DEVWRITELINE(I8251A_TAG, i8251_device, write_dsr))
+ MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("terminal", terminal)
MCFG_DEVICE_ADD("usart_clock", CLOCK, XTAL_18_432MHz/60)
MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(sdk80_state, usart_clock_tick))
@@ -145,43 +160,41 @@ static MACHINE_CONFIG_START( sdk80, sdk80_state )
/* video hardware */
// 96364 crt controller
-// MCFG_SCREEN_ADD("screen", RASTER)
-// MCFG_SCREEN_REFRESH_RATE(60)
+// MCFG_SCREEN_ADD("screen", RASTER)
+// MCFG_SCREEN_REFRESH_RATE(60)
/* Video is blanked for 70 out of 262 scanlines per refresh cycle.
Each scanline is composed of 65 character times, 40 of which
are visible, and each character time is 7 dot times; a dot time
is 2 cycles of the fundamental 14.31818 MHz oscillator. The
total blanking time is about 4450 microseconds. */
-// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC((int) (70 * 65 * 7 * 2 / 14.31818)))
+// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC((int) (70 * 65 * 7 * 2 / 14.31818)))
/* It would be nice if we could implement some sort of display
overscan here. */
-// MCFG_SCREEN_SIZE(40 * 7, 24 * 8)
-// MCFG_SCREEN_VISIBLE_AREA(0, 40 * 7 - 1, 0, 24 * 8 - 1)
-// MCFG_SCREEN_UPDATE_DRIVER(sdk80_state, screen_update)
-// MCFG_SCREEN_PALETTE("palette")
+// MCFG_SCREEN_SIZE(40 * 7, 24 * 8)
+// MCFG_SCREEN_VISIBLE_AREA(0, 40 * 7 - 1, 0, 24 * 8 - 1)
+// MCFG_SCREEN_UPDATE_DRIVER(sdk80_state, screen_update)
+// MCFG_SCREEN_PALETTE("palette")
-// MCFG_GFXDECODE_ADD("gfxdecode", "palette", sdk80)
+// MCFG_GFXDECODE_ADD("gfxdecode", "palette", sdk80)
-// MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette")
+// MCFG_PALETTE_ADD_BLACK_AND_WHITE("palette")
// Video board UART
-// MCFG_DEVICE_ADD( "hd6402", AY31015, 0 )
-// MCFG_AY31015_TX_CLOCK(( XTAL_16MHz / 16 ) / 256)
-// MCFG_AY31015_RX_CLOCK(( XTAL_16MHz / 16 ) / 256)
-// MCFG_AY51013_READ_SI_CB(READ8(sdk80_state, nascom1_hd6402_si))
-// MCFG_AY51013_WRITE_SO_CB(WRITE8(sdk80_state, nascom1_hd6402_so))
+// MCFG_DEVICE_ADD( "hd6402", AY31015, 0 )
+// MCFG_AY31015_TX_CLOCK(( XTAL_16MHz / 16 ) / 256)
+// MCFG_AY31015_RX_CLOCK(( XTAL_16MHz / 16 ) / 256)
+// MCFG_AY51013_READ_SI_CB(READ8(sdk80_state, nascom1_hd6402_si))
+// MCFG_AY51013_WRITE_SO_CB(WRITE8(sdk80_state, nascom1_hd6402_so))
/* Devices */
-// MCFG_DEVICE_ADD("i8279", I8279, 3100000) // based on divider
-// MCFG_I8279_OUT_IRQ_CB(INPUTLINE("maincpu", I8085_RST55_LINE)) // irq
-// MCFG_I8279_OUT_SL_CB(WRITE8(sdk80_state, scanlines_w)) // scan SL lines
-// MCFG_I8279_OUT_DISP_CB(WRITE8(sdk80_state, digit_w)) // display A&B
-// MCFG_I8279_IN_RL_CB(READ8(sdk80_state, kbd_r)) // kbd RL lines
-// MCFG_I8279_IN_SHIFT_CB(VCC) // Shift key
-// MCFG_I8279_IN_CTRL_CB(VCC)
-
- //MCFG_DEVICE_ADD("terminal", GENERIC_TERMINAL, 0)
- //MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(sdk80_state, kbd_put))
+// MCFG_DEVICE_ADD("i8279", I8279, 3100000) // based on divider
+// MCFG_I8279_OUT_IRQ_CB(INPUTLINE("maincpu", I8085_RST55_LINE)) // irq
+// MCFG_I8279_OUT_SL_CB(WRITE8(sdk80_state, scanlines_w)) // scan SL lines
+// MCFG_I8279_OUT_DISP_CB(WRITE8(sdk80_state, digit_w)) // display A&B
+// MCFG_I8279_IN_RL_CB(READ8(sdk80_state, kbd_r)) // kbd RL lines
+// MCFG_I8279_IN_SHIFT_CB(VCC) // Shift key
+// MCFG_I8279_IN_CTRL_CB(VCC)
+
MACHINE_CONFIG_END
/* ROM definition */
@@ -195,7 +208,11 @@ ROM_START( sdk80 )
/* 512-byte Signetics 2513 character generator ROM at location D2-D3 */
ROM_REGION(0x0200, "gfx1",0)
ROM_LOAD("s2513.d2", 0x0000, 0x0200, CRC(a7e567fc) SHA1(b18aae0a2d4f92f5a7e22640719bbc4652f3f4ee))
+
+ /* 256x4 PROM located on the video board, schematic location P7, to be moved into separate device later */
+ ROM_REGION( 0x0120, "proms", 0 )
+ ROM_LOAD( "6300__d7.p7", 0x0020, 0x0100, CRC(3eb3a8e4) SHA1(19097b5f60d1030f8b82d9f1d3a241f93e5c75d6) )
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", GAME_NO_SOUND_HW | GAME_NOT_WORKING )
+COMP( 1975, sdk80, 0, 0, sdk80, sdk80, driver_device, 0, "Intel", "SDK-80", MACHINE_NO_SOUND_HW )
diff --git a/src/mess/drivers/sdk85.c b/src/mame/drivers/sdk85.c
index 7eccae8bc42..8438add6efe 100644
--- a/src/mess/drivers/sdk85.c
+++ b/src/mame/drivers/sdk85.c
@@ -142,4 +142,4 @@ 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", GAME_NO_SOUND_HW)
+COMP( 1977, sdk85, 0, 0, sdk85, sdk85, driver_device, 0, "Intel", "SDK-85", MACHINE_NO_SOUND_HW)
diff --git a/src/mess/drivers/sdk86.c b/src/mame/drivers/sdk86.c
index 72f144c2eae..c895211950a 100644
--- a/src/mess/drivers/sdk86.c
+++ b/src/mame/drivers/sdk86.c
@@ -209,4 +209,4 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 1979, sdk86, 0, 0, sdk86, sdk86, driver_device, 0, "Intel", "SDK-86", GAME_NO_SOUND_HW)
+COMP( 1979, sdk86, 0, 0, sdk86, sdk86, driver_device, 0, "Intel", "SDK-86", MACHINE_NO_SOUND_HW)
diff --git a/src/mame/drivers/seabattl.c b/src/mame/drivers/seabattl.c
index 809b84a40d0..763bbaadaa9 100644
--- a/src/mame/drivers/seabattl.c
+++ b/src/mame/drivers/seabattl.c
@@ -566,5 +566,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)", GAME_IMPERFECT_COLORS | GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND, layout_seabattl )
-GAMEL(1980, seabattla, seabattl, seabattl, seabattl, driver_device, 0, ROT0, "Zaccaria", "Sea Battle (set 2)", GAME_IMPERFECT_COLORS | GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND | GAME_NOT_WORKING, layout_seabattl ) // incomplete dump
+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
diff --git a/src/mame/drivers/sealy.c b/src/mame/drivers/sealy.c
index 8d1ff2e0fa6..00edc0730f2 100644
--- a/src/mame/drivers/sealy.c
+++ b/src/mame/drivers/sealy.c
@@ -135,4 +135,4 @@ ROM_START( crzyddz )
ROM_END
-GAME( 2004?, crzyddz, 0, sealy, sealy, driver_device, 0, ROT0, "Sealy", "Crazy Dou Di Zhu", GAME_IS_SKELETON )
+GAME( 2004?, crzyddz, 0, sealy, sealy, driver_device, 0, ROT0, "Sealy", "Crazy Dou Di Zhu", MACHINE_IS_SKELETON )
diff --git a/src/mame/drivers/seattle.c b/src/mame/drivers/seattle.c
index 6fd125ec12f..6f09430432c 100644
--- a/src/mame/drivers/seattle.c
+++ b/src/mame/drivers/seattle.c
@@ -1802,6 +1802,7 @@ static ADDRESS_MAP_START( seattle_map, AS_PROGRAM, 32, seattle_state )
AM_RANGE(0x17900000, 0x17900003) AM_READWRITE(status_leds_r, status_leds_w)
AM_RANGE(0x17f00000, 0x17f00003) AM_RAM_WRITE(asic_reset_w) AM_SHARE("asic_reset")
AM_RANGE(0x1fc00000, 0x1fc7ffff) AM_ROM AM_REGION("user1", 0) AM_SHARE("rombase")
+ AM_RANGE(0x1fd00000, 0x1fdfffff) AM_ROM AM_REGION("update", 0)
ADDRESS_MAP_END
@@ -2755,6 +2756,8 @@ ROM_START( wg3dh )
ROM_REGION32_LE( 0x80000, "user1", 0 ) /* Boot Code Version L1.2 (10/8/96) */
ROM_LOAD( "wg3dh_12.u32", 0x000000, 0x80000, CRC(15e4cea2) SHA1(72c0db7dc53ce645ba27a5311b5ce803ad39f131) )
+ ROM_REGION32_LE( 0x100000, "update", ROMREGION_ERASEFF )
+
DISK_REGION( "ide:0:hdd:image" ) /* Hard Drive Version 1.3 (Guts 10/15/96, Main 10/15/96) */
DISK_IMAGE( "wg3dh", 0, SHA1(4fc6f25d7f043d9bcf8743aa8df1d9be3cbc375b) )
@@ -2767,6 +2770,8 @@ ROM_START( mace )
ROM_REGION32_LE( 0x80000, "user1", 0 ) /* Boot Code Version 1.0ce 7/2/97 */
ROM_LOAD( "mace10ce.u32", 0x000000, 0x80000, CRC(7a50b37e) SHA1(33788835f84a9443566c80bee9f20a1691490c6d) )
+ ROM_REGION32_LE( 0x100000, "update", ROMREGION_ERASEFF )
+
DISK_REGION( "ide:0:hdd:image" ) /* Hard Drive Version 1.0B 6/10/97 (Guts 7/2/97, Main 7/2/97) */
DISK_IMAGE( "mace", 0, SHA1(96ec8d3ff5dd894e21aa81403bcdbeba44bb97ea) )
@@ -2779,6 +2784,8 @@ ROM_START( macea )
ROM_REGION32_LE( 0x80000, "user1", 0 ) /* Boot Code Version ??? 5/7/97 */
ROM_LOAD( "maceboot.u32", 0x000000, 0x80000, CRC(effe3ebc) SHA1(7af3ca3580d6276ffa7ab8b4c57274e15ee6bcbb) )
+ ROM_REGION32_LE( 0x100000, "update", ROMREGION_ERASEFF )
+
DISK_REGION( "ide:0:hdd:image" ) /* Hard Drive Version 1.0a (Guts 6/9/97, Main 5/12/97) */
DISK_IMAGE( "macea", 0, BAD_DUMP SHA1(9bd4a60627915d71932cab24f89c48ea21f4c1cb) )
@@ -2791,6 +2798,8 @@ ROM_START( sfrush )
ROM_REGION32_LE( 0x80000, "user1", 0 ) /* Boot Code Version L1.0 */
ROM_LOAD( "hdboot.u32", 0x000000, 0x80000, CRC(39a35f1b) SHA1(c46d83448399205d38e6e41dd56abbc362254254) )
+ ROM_REGION32_LE( 0x100000, "update", ROMREGION_ERASEFF )
+
ROM_REGION32_LE( 0x200000, "cageboot", 0 ) /* TMS320C31 boot ROM Version L1.0 */
ROM_LOAD32_BYTE( "sndboot.u69", 0x000000, 0x080000, CRC(7e52cdc7) SHA1(f735063e19d2ca672cef6d761a2a47df272e8c59) )
@@ -2809,6 +2818,8 @@ ROM_START( sfrushrk )
ROM_REGION32_LE( 0x80000, "user1", 0 ) /* Boot Code */
ROM_LOAD( "boot.bin", 0x000000, 0x080000, CRC(0555b3cf) SHA1(a48abd6d06a26f4f9b6c52d8c0af6095b6be57fd) )
+ ROM_REGION32_LE( 0x100000, "update", ROMREGION_ERASEFF )
+
ROM_REGION32_LE( 0x200000, "cageboot", 0 ) /* TMS320C31 boot ROM */
ROM_LOAD32_BYTE( "audboot.bin", 0x000000, 0x080000, CRC(c70c060d) SHA1(dd014bd13efdf5adc5450836bd4650351abefc46) )
@@ -2827,6 +2838,8 @@ ROM_START( calspeed )
ROM_REGION32_LE( 0x80000, "user1", 0 ) /* Boot Code Version 1.2 (2/18/98) */
ROM_LOAD( "caspd1_2.u32", 0x000000, 0x80000, CRC(0a235e4e) SHA1(b352f10fad786260b58bd344b5002b6ea7aaf76d) )
+ ROM_REGION32_LE( 0x100000, "update", ROMREGION_ERASEFF )
+
DISK_REGION( "ide:0:hdd:image" ) /* Release version 2.1a (4/17/98) (Guts 1.25 4/17/98, Main 4/17/98) */
DISK_IMAGE( "calspeed", 0, SHA1(08d411c591d4b8bbdd6437ea80d01c4cec8516f8) )
@@ -2834,11 +2847,25 @@ ROM_START( calspeed )
ROM_LOAD16_BYTE( "sound102.u95", 0x000000, 0x8000, CRC(bec7d3ae) SHA1(db80aa4a645804a4574b07b9f34dec6b6b64190d) )
ROM_END
-
ROM_START( calspeeda )
ROM_REGION32_LE( 0x80000, "user1", 0 ) /* Boot Code Version 1.2 (2/18/98) */
ROM_LOAD( "caspd1_2.u32", 0x000000, 0x80000, CRC(0a235e4e) SHA1(b352f10fad786260b58bd344b5002b6ea7aaf76d) )
+ ROM_REGION32_LE( 0x100000, "update", ROMREGION_ERASEFF )
+
+ DISK_REGION( "ide:0:hdd:image" ) /* Release version 1.0r8a (4/10/98) (Guts 4/10/98, Main 4/10/98) */
+ DISK_IMAGE( "cs_10r8a", 0, SHA1(ba4e7589740e0647938c81c5082bb71d8826bad4) )
+
+ ROM_REGION16_LE( 0x10000, "dcs", 0 ) /* ADSP-2115 data Version 1.02 */
+ ROM_LOAD16_BYTE( "sound102.u95", 0x000000, 0x8000, CRC(bec7d3ae) SHA1(db80aa4a645804a4574b07b9f34dec6b6b64190d) )
+ROM_END
+
+ROM_START( calspeedb )
+ ROM_REGION32_LE( 0x80000, "user1", 0 ) /* Boot Code Version 1.2 (2/18/98) */
+ ROM_LOAD( "caspd1_2.u32", 0x000000, 0x80000, CRC(0a235e4e) SHA1(b352f10fad786260b58bd344b5002b6ea7aaf76d) )
+
+ ROM_REGION32_LE( 0x100000, "update", ROMREGION_ERASEFF )
+
DISK_REGION( "ide:0:hdd:image" ) /* Release version 1.0r7a (3/4/98) (Guts 3/3/98, Main 1/19/98) */
DISK_IMAGE( "calspeda", 0, SHA1(6b1c3a7530195ef7309b06a651b01c8b3ece92c6) )
@@ -2847,10 +2874,15 @@ ROM_START( calspeeda )
ROM_END
+
+
+
ROM_START( vaportrx )
ROM_REGION32_LE( 0x80000, "user1", 0 )
ROM_LOAD( "vtrxboot.bin", 0x000000, 0x80000, CRC(ee487a6c) SHA1(fb9efda85047cf615f24f7276a9af9fd542f3354) )
+ ROM_REGION32_LE( 0x100000, "update", ROMREGION_ERASEFF )
+
DISK_REGION( "ide:0:hdd:image" )
DISK_IMAGE( "vaportrx", 0, SHA1(fe53ca7643d2ed2745086abb7f2243c69678cab1) )
@@ -2863,6 +2895,8 @@ ROM_START( vaportrxp )
ROM_REGION32_LE( 0x80000, "user1", 0 )
ROM_LOAD( "vtrxboot.bin", 0x000000, 0x80000, CRC(ee487a6c) SHA1(fb9efda85047cf615f24f7276a9af9fd542f3354) )
+ ROM_REGION32_LE( 0x100000, "update", ROMREGION_ERASEFF )
+
DISK_REGION( "ide:0:hdd:image" ) /* Guts: Apr 10 1998 11:03:14 Main: Apr 10 1998 11:27:44 */
DISK_IMAGE( "vaportrp", 0, SHA1(6c86637c442ebd6994eee8c0ae0dce343c35dbe9) )
@@ -2875,6 +2909,8 @@ ROM_START( biofreak )
ROM_REGION16_LE( 0x10000, "dcs", 0 ) /* ADSP-2115 data Version 1.02 */
ROM_LOAD16_BYTE( "sound102.u95", 0x000000, 0x8000, CRC(bec7d3ae) SHA1(db80aa4a645804a4574b07b9f34dec6b6b64190d) )
+ ROM_REGION32_LE( 0x100000, "update", ROMREGION_ERASEFF )
+
ROM_REGION32_LE( 0x80000, "user1", 0 ) /* Seattle System Boot ROM Version 0.1i Apr 14 1997 14:52:53 */
ROM_LOAD( "biofreak.u32", 0x000000, 0x80000, CRC(cefa00bb) SHA1(7e171610ede1e8a448fb8d175f9cb9e7d549de28) )
@@ -2887,6 +2923,8 @@ ROM_START( blitz )
ROM_REGION16_LE( 0x10000, "dcs", 0 ) /* ADSP-2115 data Version 1.02 */
ROM_LOAD16_BYTE( "sound102.u95", 0x000000, 0x8000, CRC(bec7d3ae) SHA1(db80aa4a645804a4574b07b9f34dec6b6b64190d) )
+ ROM_REGION32_LE( 0x100000, "update", ROMREGION_ERASEFF )
+
ROM_REGION32_LE( 0x80000, "user1", 0 ) /* Boot Code Version 1.2 */
ROM_LOAD( "blitz1_2.u32", 0x000000, 0x80000, CRC(38dbecf5) SHA1(7dd5a5b3baf83a7f8f877ff4cd3f5e8b5201b36f) )
@@ -2899,6 +2937,8 @@ ROM_START( blitz11 )
ROM_REGION16_LE( 0x10000, "dcs", 0 ) /* ADSP-2115 data Version 1.02 */
ROM_LOAD16_BYTE( "sound102.u95", 0x000000, 0x8000, CRC(bec7d3ae) SHA1(db80aa4a645804a4574b07b9f34dec6b6b64190d) )
+ ROM_REGION32_LE( 0x100000, "update", ROMREGION_ERASEFF )
+
ROM_REGION32_LE( 0x80000, "user1", 0 ) /* Boot Code Version 1.1 */
ROM_LOAD( "blitz1_1.u32", 0x000000, 0x80000, CRC(8163ce02) SHA1(89b432d8879052f6c5534ee49599f667f50a010f) )
@@ -2911,6 +2951,8 @@ ROM_START( blitz99 )
ROM_REGION16_LE( 0x10000, "dcs", 0 ) /* ADSP-2115 data Version 1.02 */
ROM_LOAD16_BYTE( "sound102.u95", 0x000000, 0x8000, CRC(bec7d3ae) SHA1(db80aa4a645804a4574b07b9f34dec6b6b64190d) )
+ ROM_REGION32_LE( 0x100000, "update", ROMREGION_ERASEFF )
+
ROM_REGION32_LE( 0x80000, "user1", 0 ) /* Boot Code Version 1.0 */
ROM_LOAD( "bltz9910.u32", 0x000000, 0x80000, CRC(777119b2) SHA1(40d255181c2f3a787919c339e83593fd506779a5) )
@@ -2918,11 +2960,29 @@ ROM_START( blitz99 )
DISK_IMAGE( "blitz99", 0, SHA1(19877e26ffce81dd525031e9e2b4f83ff982e2d9) )
ROM_END
+ROM_START( blitz99a )
+ ROM_REGION16_LE( 0x10000, "dcs", 0 ) /* ADSP-2115 data Version 1.02 */
+ ROM_LOAD16_BYTE( "sound102.u95", 0x000000, 0x8000, CRC(bec7d3ae) SHA1(db80aa4a645804a4574b07b9f34dec6b6b64190d) )
+
+ ROM_REGION32_LE( 0x80000, "user1", 0 ) /* Boot Code Version 1.0 */
+ ROM_LOAD( "bltz9910.u32", 0x000000, 0x80000, CRC(777119b2) SHA1(40d255181c2f3a787919c339e83593fd506779a5) )
+
+ ROM_REGION32_LE( 0x100000, "update", ROMREGION_ERASEFF ) // to use this rom run with -bios up130 and go into TEST mode to update.
+ ROM_SYSTEM_BIOS( 0, "noupdate", "No Update Rom" )
+ ROM_SYSTEM_BIOS( 1, "up130", "Update to 1.30" )
+ ROMX_LOAD( "rev.-1.3.u33", 0x000000, 0x100000, CRC(0a0fde5a) SHA1(1edb671c66819f634a9f1daa35331a99b2bda01a), ROM_BIOS(2) )
+
+ DISK_REGION( "ide:0:hdd:image" ) /* Hard Drive Version 1.30 */
+ DISK_IMAGE( "blitz99a", 0, SHA1(43f834727ce01d7a63b482fc28cbf292477fc6f2) )
+ROM_END
+
ROM_START( blitz2k )
ROM_REGION16_LE( 0x10000, "dcs", 0 ) /* ADSP-2115 data Version 1.02 */
ROM_LOAD16_BYTE( "sound102.u95", 0x000000, 0x8000, CRC(bec7d3ae) SHA1(db80aa4a645804a4574b07b9f34dec6b6b64190d) )
+ ROM_REGION32_LE( 0x100000, "update", ROMREGION_ERASEFF )
+
ROM_REGION32_LE( 0x80000, "user1", 0 ) /* Boot Code Version 1.4 */
ROM_LOAD( "bltz2k14.u32", 0x000000, 0x80000, CRC(ac4f0051) SHA1(b8125c17370db7bfd9b783230b4ef3d5b22a2025) )
@@ -2935,6 +2995,8 @@ ROM_START( carnevil )
ROM_REGION16_LE( 0x10000, "dcs", 0 ) /* ADSP-2115 data Version 1.02 */
ROM_LOAD16_BYTE( "sound102.u95", 0x000000, 0x8000, CRC(bec7d3ae) SHA1(db80aa4a645804a4574b07b9f34dec6b6b64190d) )
+ ROM_REGION32_LE( 0x100000, "update", ROMREGION_ERASEFF )
+
ROM_REGION32_LE( 0x80000, "user1", 0 ) /* Boot Rom Version 1.9 */
ROM_LOAD( "carnevil1_9.u32", 0x000000, 0x80000, CRC(82c07f2e) SHA1(fa51c58022ce251c53bad12fc6ffadb35adb8162) )
@@ -2947,6 +3009,8 @@ ROM_START( carnevil1 )
ROM_REGION16_LE( 0x10000, "dcs", 0 ) /* ADSP-2115 data Version 1.02 */
ROM_LOAD16_BYTE( "sound102.u95", 0x000000, 0x8000, CRC(bec7d3ae) SHA1(db80aa4a645804a4574b07b9f34dec6b6b64190d) )
+ ROM_REGION32_LE( 0x100000, "update", ROMREGION_ERASEFF )
+
ROM_REGION32_LE( 0x80000, "user1", 0 ) /* Boot Rom Version 1.9 */
ROM_LOAD( "carnevil1_9.u32", 0x000000, 0x80000, CRC(82c07f2e) SHA1(fa51c58022ce251c53bad12fc6ffadb35adb8162) )
@@ -2959,8 +3023,22 @@ ROM_START( hyprdriv )
ROM_REGION16_LE( 0x10000, "dcs", 0 ) /* ADSP-2115 data Version 1.02 */
ROM_LOAD16_BYTE( "seattle.snd", 0x000000, 0x8000, BAD_DUMP CRC(bec7d3ae) SHA1(db80aa4a645804a4574b07b9f34dec6b6b64190d) )
- ROM_REGION32_LE( 0x80000, "user1", 0 ) /* Boot Rom Version 9. */
- ROM_LOAD( "hyprdrve.u32", 0x000000, 0x80000, CRC(3e18cb80) SHA1(b18cc4253090ee1d65d72a7ec0c426ed08c4f238) )
+ ROM_REGION32_LE( 0x100000, "update", ROMREGION_ERASEFF )
+ ROM_SYSTEM_BIOS( 0, "noupdate", "No Update Rom" )
+ ROM_SYSTEM_BIOS( 1, "update", "Unknown Update" )
+ ROMX_LOAD( "hyperdrive1.2.u33", 0x000000, 0x100000, CRC(fcc922fb) SHA1(7bfa4f0614f561ba77ad2dc7d776af2c3e84b7e7), ROM_BIOS(2) )
+ /* it's either an update to 1.40, or an older version, either way we can't use it with the drive we have, it reports the following
+
+ 'Valid Update Rom Detected'
+ 'Processing Rom'
+ 'Rom is Wrong Revision Level'
+ 'Operation Failure'
+
+ */
+
+ ROM_REGION32_LE( 0x80000, "user1", 0 )
+ ROM_LOAD( "hyperdrive1.1.u32", 0x000000, 0x80000, CRC(3120991e) SHA1(8e47888a5a23c9d3c0d0c64497e1cfb4e46c2cd6) ) /* Boot Rom Version 2. */ // doesn't work, maybe for older drive?
+ ROM_LOAD( "hyprdrve.u32", 0x000000, 0x80000, CRC(3e18cb80) SHA1(b18cc4253090ee1d65d72a7ec0c426ed08c4f238) ) /* Boot Rom Version 9. */
DISK_REGION( "ide:0:hdd:image" ) /* Version 1.40 Oct 23 1998 15:16:00 */
DISK_IMAGE( "hyprdriv", 0, SHA1(8cfa343797575b32f46cc24150024be48963a03e) )
@@ -3136,22 +3214,27 @@ DRIVER_INIT_MEMBER(seattle_state,hyprdriv)
*************************************/
/* Atari */
-GAME( 1996, wg3dh, 0, wg3dh, wg3dh, seattle_state, wg3dh, ROT0, "Atari Games", "Wayne Gretzky's 3D Hockey", GAME_SUPPORTS_SAVE )
-GAME( 1996, mace, 0, mace, mace, seattle_state, mace, ROT0, "Atari Games", "Mace: The Dark Age (boot ROM 1.0ce, HDD 1.0b)", GAME_SUPPORTS_SAVE )
-GAME( 1997, macea, mace, mace, mace, seattle_state, mace, ROT0, "Atari Games", "Mace: The Dark Age (HDD 1.0a)", GAME_SUPPORTS_SAVE )
-GAME( 1996, sfrush, 0, sfrush, sfrush, seattle_state, sfrush, ROT0, "Atari Games", "San Francisco Rush", GAME_SUPPORTS_SAVE )
-GAME( 1996, sfrushrk, 0, sfrushrk, sfrushrk, seattle_state, sfrushrk, ROT0, "Atari Games", "San Francisco Rush: The Rock", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1998, calspeed, 0, calspeed, calspeed, seattle_state, calspeed, ROT0, "Atari Games", "California Speed (Version 2.1a, 4/17/98)", GAME_SUPPORTS_SAVE )
-GAME( 1998, calspeeda,calspeed, calspeed, calspeed, seattle_state, calspeed, ROT0, "Atari Games", "California Speed (Version 1.0r7a 3/4/98)", GAME_SUPPORTS_SAVE )
-GAME( 1998, vaportrx, 0, vaportrx, vaportrx, seattle_state, vaportrx, ROT0, "Atari Games", "Vapor TRX", GAME_SUPPORTS_SAVE )
-GAME( 1998, vaportrxp,vaportrx, vaportrx, vaportrx, seattle_state, vaportrx, ROT0, "Atari Games", "Vapor TRX (prototype)", GAME_SUPPORTS_SAVE )
+GAME( 1996, wg3dh, 0, wg3dh, wg3dh, seattle_state, wg3dh, ROT0, "Atari Games", "Wayne Gretzky's 3D Hockey", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, mace, 0, mace, mace, seattle_state, mace, ROT0, "Atari Games", "Mace: The Dark Age (boot ROM 1.0ce, HDD 1.0b)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, macea, mace, mace, mace, seattle_state, mace, ROT0, "Atari Games", "Mace: The Dark Age (HDD 1.0a)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, sfrush, 0, sfrush, sfrush, seattle_state, sfrush, ROT0, "Atari Games", "San Francisco Rush", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, sfrushrk, 0, sfrushrk, sfrushrk, seattle_state, sfrushrk, ROT0, "Atari Games", "San Francisco Rush: The Rock", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1998, calspeed, 0, calspeed, calspeed, seattle_state, calspeed, ROT0, "Atari Games", "California Speed (Version 2.1a Apr 17 1998, GUTS 1.25 Apr 17 1998 / MAIN Apr 17 1998)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, calspeeda,calspeed, calspeed, calspeed, seattle_state, calspeed, ROT0, "Atari Games", "California Speed (Version 1.0r8 Mar 10 1998, GUTS Mar 10 1998 / MAIN Mar 10 1998)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, calspeedb,calspeed, calspeed, calspeed, seattle_state, calspeed, ROT0, "Atari Games", "California Speed (Version 1.0r7a Mar 4 1998, GUTS Mar 3 1998 / MAIN Jan 19 1998)", MACHINE_SUPPORTS_SAVE )
+
+
+
+GAME( 1998, vaportrx, 0, vaportrx, vaportrx, seattle_state, vaportrx, ROT0, "Atari Games", "Vapor TRX", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, vaportrxp,vaportrx, vaportrx, vaportrx, seattle_state, vaportrx, ROT0, "Atari Games", "Vapor TRX (prototype)", MACHINE_SUPPORTS_SAVE )
/* Midway */
-GAME( 1997, biofreak, 0, biofreak, biofreak, seattle_state, biofreak, ROT0, "Midway Games", "BioFreaks (prototype)", GAME_SUPPORTS_SAVE )
-GAME( 1997, blitz, 0, blitz, blitz, seattle_state, blitz, ROT0, "Midway Games", "NFL Blitz (boot ROM 1.2)", GAME_SUPPORTS_SAVE )
-GAME( 1997, blitz11, blitz, blitz, blitz, seattle_state, blitz, ROT0, "Midway Games", "NFL Blitz (boot ROM 1.1)", GAME_SUPPORTS_SAVE )
-GAME( 1998, blitz99, 0, blitz99, blitz99, seattle_state, blitz99, ROT0, "Midway Games", "NFL Blitz '99", GAME_SUPPORTS_SAVE )
-GAME( 1999, blitz2k, 0, blitz2k, blitz99, seattle_state, blitz2k, ROT0, "Midway Games", "NFL Blitz 2000 Gold Edition", GAME_SUPPORTS_SAVE )
-GAME( 1998, carnevil, 0, carnevil, carnevil, seattle_state, carnevil, ROT0, "Midway Games", "CarnEvil (v1.0.3)", GAME_SUPPORTS_SAVE )
-GAME( 1998, carnevil1,carnevil, carnevil, carnevil, seattle_state, carnevil, ROT0, "Midway Games", "CarnEvil (v1.0.1)", GAME_SUPPORTS_SAVE )
-GAME( 1998, hyprdriv, 0, hyprdriv, hyprdriv, seattle_state, hyprdriv, ROT0, "Midway Games", "Hyperdrive", GAME_SUPPORTS_SAVE )
+GAME( 1997, biofreak, 0, biofreak, biofreak, seattle_state, biofreak, ROT0, "Midway Games", "BioFreaks (prototype)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, blitz, 0, blitz, blitz, seattle_state, blitz, ROT0, "Midway Games", "NFL Blitz (boot ROM 1.2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, blitz11, blitz, blitz, blitz, seattle_state, blitz, ROT0, "Midway Games", "NFL Blitz (boot ROM 1.1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, blitz99, 0, blitz99, blitz99, seattle_state, blitz99, ROT0, "Midway Games", "NFL Blitz '99 (ver 1.30, Sep 22 1998)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, blitz99a, blitz99, blitz99, blitz99, seattle_state, blitz99, ROT0, "Midway Games", "NFL Blitz '99 (ver 1.2, Aug 28 1998)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, blitz2k, 0, blitz2k, blitz99, seattle_state, blitz2k, ROT0, "Midway Games", "NFL Blitz 2000 Gold Edition (ver 1.2, Sep 22 1999)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, carnevil, 0, carnevil, carnevil, seattle_state, carnevil, ROT0, "Midway Games", "CarnEvil (v1.0.3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, carnevil1,carnevil, carnevil, carnevil, seattle_state, carnevil, ROT0, "Midway Games", "CarnEvil (v1.0.1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, hyprdriv, 0, hyprdriv, hyprdriv, seattle_state, hyprdriv, ROT0, "Midway Games", "Hyperdrive", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/seattle.c b/src/mame/drivers/seattlecmp.c
index 12097b5a403..4c590f22642 100644
--- a/src/mess/drivers/seattle.c
+++ b/src/mame/drivers/seattlecmp.c
@@ -124,4 +124,4 @@ 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", GAME_NO_SOUND_HW)
+COMP( 1986, seattle, 0, 0, seattle, seattle, driver_device, 0, "Seattle Computer", "SCP-300F", MACHINE_NO_SOUND_HW)
diff --git a/src/mame/drivers/segac2.c b/src/mame/drivers/segac2.c
index 0b5aa9676a6..b77bcc53289 100644
--- a/src/mame/drivers/segac2.c
+++ b/src/mame/drivers/segac2.c
@@ -25,6 +25,7 @@
1990 Thunder Force AC Sega / Technosoft 317-0172 C2
1990 Borench Sega 317-0173 C2
1991 Twin Squash Sega 317-0193 C2
+ 1991 Waku Waku Sonic Patrol Car Sega 317-0140 C2
1992 Ribbit! Sega 317-0178 C2
1992 Puyo Puyo Sega / Compile 317-0203 C2 171-5992A
1992 Tant-R (Japan) Sega 317-0211 C2
@@ -883,6 +884,53 @@ static INPUT_PORTS_START( twinsqua )
INPUT_PORTS_END
+static INPUT_PORTS_START( soniccar )
+ PORT_INCLUDE( systemc_generic )
+
+ PORT_MODIFY("P1")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) // siren
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 ) // jump
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON4 ) // turbo
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_RIGHT ) // 'winker' (a left/right joystick)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICKLEFT_LEFT )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_RIGHT ) // steering (it's a wheel on the control panel, but just seems to send left/right signals)
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICKRIGHT_LEFT )
+
+ PORT_MODIFY("P2")
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_MODIFY("SERVICE")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_SERVICE_NO_TOGGLE( 0x04, IP_ACTIVE_LOW )
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON3 ) // accel
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_MODIFY("DSW")
+ PORT_DIPNAME( 0x03, 0x03, "Demo Sound Interval" ) PORT_DIPLOCATION("SW2:1,2")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x01, "Every 4 Minutes" )
+ PORT_DIPSETTING( 0x02, "Every 2 Minutes" )
+ PORT_DIPSETTING( 0x03, DEF_STR( On ) )
+ PORT_DIPNAME( 0x04, 0x04, "Lighting Time" ) PORT_DIPLOCATION("SW2:3")
+ PORT_DIPSETTING( 0x04, "Advertise & Playtime" )
+ PORT_DIPSETTING( 0x00, "Playtime Only" )
+ PORT_DIPNAME( 0x08, 0x08, "Light" ) PORT_DIPLOCATION("SW2:4")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, "Screen Display" ) PORT_DIPLOCATION("SW2:5")
+ PORT_DIPSETTING( 0x10, "Insert 100-400 Yen" )
+ PORT_DIPSETTING( 0x00, "Insert Money" )
+ //"SW2:6" unused
+ //"SW2:7" unused
+ //"SW2:7" unused
+INPUT_PORTS_END
+
+
static INPUT_PORTS_START( ribbit )
PORT_INCLUDE( systemc_generic )
@@ -1578,6 +1626,16 @@ ROM_START( twinsqua ) /* Twin Squash (c)1991 Sega */
ROM_END
+ROM_START( soniccar ) /* Waku Waku Sonic Patrol Car (c)1991 Sega - 834-8401 SONIC PATCAR (EMP5032 labeled 317-0140) */
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "epr-14369.ic32", 0x000000, 0x040000, CRC(2ea4c9a3) SHA1(92ee27c93bd1cbb99c88af39f5f227a8cadfb13c) )
+ ROM_LOAD16_BYTE( "epr-14395.ic31", 0x000001, 0x040000, CRC(39622e18) SHA1(b7093c6d86e429e9721a0e1fd781231dc4342b31) )
+
+ ROM_REGION( 0x040000, "upd", 0 )
+ ROM_LOAD( "epr-14394.ic4", 0x000000, 0x040000, CRC(476e30dd) SHA1(c9d381160c58b05763ea286a53c7ca6de074fda2) )
+ROM_END
+
+
ROM_START( ribbit ) /* Ribbit (c)1991 Sega */
ROM_REGION( 0x200000, "maincpu", 0 )
ROM_LOAD16_BYTE( "epr-13833.ic32", 0x000000, 0x040000, CRC(5347f8ce) SHA1(b95b99536157edfbf0d74a42f64235f47dca7ee1) )
@@ -2278,9 +2336,11 @@ GAME( 1990, tfrceacb, tfrceac, segac2, tfrceac, segac2_state, tfrceacb, ROT0,
GAME( 1990, borench, 0, segac2, borench, segac2_state, borench, ROT0, "Sega", "Borench (set 1)", 0 )
GAME( 1990, borencha, borench, segac2, borench, segac2_state, borench, ROT0, "Sega", "Borench (set 2)", 0 )
+GAME( 1991, ribbit, 0, segac2, ribbit, segac2_state, ribbit, ROT0, "Sega", "Ribbit!", 0 )
+
GAME( 1991, twinsqua, 0, segac2, twinsqua, segac2_state, twinsqua, ROT0, "Sega", "Twin Squash", 0 )
-GAME( 1991, ribbit, 0, segac2, ribbit, segac2_state, ribbit, ROT0, "Sega", "Ribbit!", 0 )
+GAME( 1991, soniccar, 0, segac2, soniccar, segac2_state, bloxeedc, ROT0, "Sega", "Waku Waku Sonic Patrol Car", 0 )
GAME( 1992, puyo, 0, segac2, puyo, segac2_state, puyo, ROT0, "Compile / Sega", "Puyo Puyo (World)", 0 )
GAME( 1992, puyobl, puyo, segac2, puyo, segac2_state, puyo, ROT0, "bootleg", "Puyo Puyo (World, bootleg)", 0 )
@@ -2308,7 +2368,7 @@ GAME( 1994, puyopuy2, 0, segac2, puyopuy2, segac2_state, puyopuy2, ROT0,
GAME( 1994, zunkyou, 0, segac2, zunkyou, segac2_state, zunkyou, ROT0, "Sega", "Zunzunkyou No Yabou (Japan)", 0 )
/* Atlus Print Club 'Games' (C-2 Hardware, might not be possible to support them because they use camera + printer, really just put here for reference) */
-GAME( 1995, pclubj, 0, segac2, pclub, segac2_state, pclub, ROT0, "Atlus", "Print Club (Japan Vol.1)", GAME_NOT_WORKING )
-GAME( 1995, pclubjv2, pclubj, segac2, pclubjv2, segac2_state, pclubjv2, ROT0, "Atlus", "Print Club (Japan Vol.2)", GAME_NOT_WORKING )
-GAME( 1996, pclubjv4, pclubj, segac2, pclubjv2, segac2_state, pclubjv4, ROT0, "Atlus", "Print Club (Japan Vol.4)", GAME_NOT_WORKING )
-GAME( 1996, pclubjv5, pclubj, segac2, pclubjv2, segac2_state, pclubjv5, ROT0, "Atlus", "Print Club (Japan Vol.5)", GAME_NOT_WORKING )
+GAME( 1995, pclubj, 0, segac2, pclub, segac2_state, pclub, ROT0, "Atlus", "Print Club (Japan Vol.1)", MACHINE_NOT_WORKING )
+GAME( 1995, pclubjv2, pclubj, segac2, pclubjv2, segac2_state, pclubjv2, ROT0, "Atlus", "Print Club (Japan Vol.2)", MACHINE_NOT_WORKING )
+GAME( 1996, pclubjv4, pclubj, segac2, pclubjv2, segac2_state, pclubjv4, ROT0, "Atlus", "Print Club (Japan Vol.4)", MACHINE_NOT_WORKING )
+GAME( 1996, pclubjv5, pclubj, segac2, pclubjv2, segac2_state, pclubjv5, ROT0, "Atlus", "Print Club (Japan Vol.5)", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/segacoin.c b/src/mame/drivers/segacoin.c
index 080fcb7000c..aac1d5a2969 100644
--- a/src/mame/drivers/segacoin.c
+++ b/src/mame/drivers/segacoin.c
@@ -139,4 +139,4 @@ ROM_START( westdrm )
ROM_END
-GAME (1992, westdrm, 0, westdrm, westdrm, driver_device, 0, ROT0, "Sega", "Western Dream", GAME_IS_SKELETON_MECHANICAL )
+GAME (1992, westdrm, 0, westdrm, westdrm, driver_device, 0, ROT0, "Sega", "Western Dream", MACHINE_IS_SKELETON_MECHANICAL )
diff --git a/src/mame/drivers/segae.c b/src/mame/drivers/segae.c
index e02daa3d88d..794d4715bf1 100644
--- a/src/mame/drivers/segae.c
+++ b/src/mame/drivers/segae.c
@@ -1111,10 +1111,10 @@ DRIVER_INIT_MEMBER(systeme_state, fantzn2)
// YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR,COMPANY,FULLNAME,FLAGS
-GAME( 1985, hangonjr, 0, systeme, hangonjr, systeme_state, hangonjr, ROT0, "Sega", "Hang-On Jr.", GAME_SUPPORTS_SAVE )
-GAME( 1986, transfrm, 0, systeme, transfrm, driver_device, 0, ROT0, "Sega", "Transformer", GAME_SUPPORTS_SAVE )
-GAME( 1986, astrofl, transfrm, systemex, transfrm, systeme_state, astrofl, ROT0, "Sega", "Astro Flash (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1986, ridleofp, 0, systeme, ridleofp, systeme_state, ridleofp, ROT90, "Sega / Nasco", "Riddle of Pythagoras (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1987, opaopa, 0, systemeb, opaopa, systeme_state, opaopa, ROT0, "Sega", "Opa Opa (MC-8123, 317-0042)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1988, tetrisse, 0, systeme, tetrisse, driver_device, 0, ROT0, "Sega", "Tetris (Japan, System E)", GAME_SUPPORTS_SAVE )
+GAME( 1985, hangonjr, 0, systeme, hangonjr, systeme_state, hangonjr, 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, transfrm, systeme_state, astrofl, ROT0, "Sega", "Astro Flash (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, ridleofp, 0, systeme, ridleofp, systeme_state, ridleofp, 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 )
diff --git a/src/mame/drivers/segag80r.c b/src/mame/drivers/segag80r.c
index 490bee85605..4b3d4c86657 100644
--- a/src/mame/drivers/segag80r.c
+++ b/src/mame/drivers/segag80r.c
@@ -1629,21 +1629,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)", GAME_IMPERFECT_SOUND )
-GAME( 1981, astrob2, astrob, astrob, astrob2, segag80r_state, astrob, ROT270, "Sega", "Astro Blaster (version 2)", GAME_IMPERFECT_SOUND )
-GAME( 1981, astrob2a, astrob, astrob, astrob2, segag80r_state, astrob, ROT270, "Sega", "Astro Blaster (version 2a)", GAME_IMPERFECT_SOUND )
-GAME( 1981, astrob1, astrob, astrob, astrob, segag80r_state, astrob, ROT270, "Sega", "Astro Blaster (version 1)", GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_SOUND )
-GAME( 1981, 005, 0, 005, 005, segag80r_state, 005, ROT270, "Sega", "005", GAME_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)", GAME_IMPERFECT_SOUND )
-GAME( 1981, spaceod2, spaceod, spaceod, spaceod, segag80r_state, spaceod, ROT270, "Sega", "Space Odyssey (version 1)", GAME_IMPERFECT_SOUND )
-GAME( 1982, monsterb, 0, monsterb, monsterb, segag80r_state, monsterb, ROT270, "Sega", "Monster Bash", GAME_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)", GAME_IMPERFECT_SOUND )
-GAME( 1983, pignewt, 0, pignewt, pignewt, segag80r_state, pignewt, ROT270, "Sega", "Pig Newton (version C)", GAME_IMPERFECT_SOUND )
-GAME( 1983, pignewta, pignewt, pignewt, pignewta, segag80r_state, pignewt, ROT270, "Sega", "Pig Newton (version A)", GAME_IMPERFECT_SOUND )
+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, 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.c b/src/mame/drivers/segag80v.c
index 3637e1401ec..6bbbf9cb348 100644
--- a/src/mame/drivers/segag80v.c
+++ b/src/mame/drivers/segag80v.c
@@ -1384,14 +1384,14 @@ 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)", GAME_IMPERFECT_SOUND )
-GAME( 1981, elim2a, elim2, elim2, elim2, segag80v_state, elim2, ORIENTATION_FLIP_Y, "Gremlin", "Eliminator (2 Players, set 2)", GAME_IMPERFECT_SOUND )
-GAME( 1981, elim2c, elim2, elim2, elim2c, segag80v_state, elim2, ORIENTATION_FLIP_Y, "Gremlin", "Eliminator (2 Players, cocktail)", GAME_IMPERFECT_SOUND )
-GAME( 1981, elim4, elim2, elim2, elim4, segag80v_state, elim4, ORIENTATION_FLIP_Y, "Gremlin", "Eliminator (4 Players)", GAME_IMPERFECT_SOUND )
-GAME( 1981, elim4p, elim2, elim2, elim4, segag80v_state, elim4, ORIENTATION_FLIP_Y, "Gremlin", "Eliminator (4 Players, prototype)", GAME_IMPERFECT_SOUND )
-GAME( 1981, spacfury, 0, spacfury, spacfury, segag80v_state, spacfury, ORIENTATION_FLIP_Y, "Sega", "Space Fury (revision C)", GAME_IMPERFECT_SOUND )
-GAME( 1981, spacfurya, spacfury, spacfury, spacfury, segag80v_state, spacfury, ORIENTATION_FLIP_Y, "Sega", "Space Fury (revision A)", GAME_IMPERFECT_SOUND )
-GAME( 1981, spacfuryb, spacfury, spacfury, spacfury, segag80v_state, spacfury, ORIENTATION_FLIP_Y, "Sega", "Space Fury (revision B)", GAME_IMPERFECT_SOUND )
-GAME( 1982, zektor, 0, zektor, zektor, segag80v_state, zektor, ORIENTATION_FLIP_Y, "Sega", "Zektor (revision B)", GAME_IMPERFECT_SOUND )
-GAME( 1982, tacscan, 0, tacscan, tacscan, segag80v_state, tacscan, ORIENTATION_FLIP_X ^ ROT270, "Sega", "Tac/Scan", GAME_IMPERFECT_SOUND )
-GAME( 1982, startrek, 0, startrek, startrek, segag80v_state, startrek, ORIENTATION_FLIP_Y, "Sega", "Star Trek", GAME_IMPERFECT_SOUND )
+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.c b/src/mame/drivers/segahang.c
index fdd896e745c..da4ae8fee9c 100644
--- a/src/mame/drivers/segahang.c
+++ b/src/mame/drivers/segahang.c
@@ -459,7 +459,9 @@ static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 16, segahang_state )
AM_RANGE(0x07c000, 0x07ffff) AM_RAM AM_SHARE("subram")
ADDRESS_MAP_END
-
+static ADDRESS_MAP_START( fd1094_decrypted_opcodes_map, AS_DECRYPTED_OPCODES, 16, segahang_state )
+ AM_RANGE(0x00000, 0xfffff) AM_ROMBANK("fd1094_decrypted_opcodes")
+ADDRESS_MAP_END
//**************************************************************************
// SOUND CPU ADDRESS MAPS
@@ -825,6 +827,13 @@ static MACHINE_CONFIG_DERIVED( enduror_base, sharrier_base )
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", segahang_state, irq4_line_hold)
MACHINE_CONFIG_END
+static MACHINE_CONFIG_DERIVED( endurord_base, sharrier_base )
+
+ // basic machine hardware
+ MCFG_CPU_REPLACE("maincpu", M68000, MASTER_CLOCK_10MHz)
+ MCFG_CPU_PROGRAM_MAP(sharrier_map)
+ MCFG_DEVICE_VBLANK_INT_DRIVER("screen", segahang_state, irq4_line_hold)
+MACHINE_CONFIG_END
static MACHINE_CONFIG_FRAGMENT( sound_board_2203 )
@@ -938,6 +947,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( shangonro, shangupb )
MCFG_CPU_REPLACE("subcpu", FD1094, 10000000)
MCFG_CPU_PROGRAM_MAP(sub_map)
+ MCFG_CPU_DECRYPTED_OPCODES_MAP(fd1094_decrypted_opcodes_map)
MACHINE_CONFIG_END
@@ -962,6 +972,14 @@ static MACHINE_CONFIG_DERIVED( enduror1, enduror_base )
MCFG_FRAGMENT_ADD(sound_board_2203)
MACHINE_CONFIG_END
+static MACHINE_CONFIG_DERIVED( endurord, endurord_base )
+ MCFG_FRAGMENT_ADD(sound_board_2151)
+MACHINE_CONFIG_END
+
+
+static MACHINE_CONFIG_DERIVED( enduror1d, endurord_base )
+ MCFG_FRAGMENT_ADD(sound_board_2203)
+MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( endurobl, sharrier_base )
MCFG_CPU_MODIFY("maincpu")
@@ -1519,6 +1537,72 @@ ROM_START( enduror )
ROM_LOAD( "317-0013a.key", 0x0000, 0x2000, CRC(295e6737) SHA1(2eff36f1f24db1154cf970d4c9fd481ae4f9a57c) )
ROM_END
+ROM_START( endurord )
+ ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-7640a.ic97", 0x00000, 0x8000, CRC(f52fd496) SHA1(a23d0ac897a65b7688cce701b43b23d873c6c82f) )
+ ROM_LOAD16_BYTE( "bootleg_epr-7636a.ic84", 0x00001, 0x8000, CRC(666136b3) SHA1(c68d196f9e3748394e737f0298834715f4e0c5af) )
+ ROM_LOAD16_BYTE( "bootleg_epr-7641.ic98", 0x10000, 0x8000, CRC(2153154a) SHA1(145d8ed59812d26ca412a01ae77cd7872adaba5a) )
+ ROM_LOAD16_BYTE( "bootleg_epr-7637.ic85", 0x10001, 0x8000, CRC(0a97992c) SHA1(7a6fc8c575637107ed07a30f6f0f8cb8877cbb43) )
+ ROM_LOAD16_BYTE( "bootleg_epr-7642.ic99", 0x20000, 0x8000, CRC(f6391091) SHA1(3160b342b6447cccf67c932c7c1a42354cdfb058) )
+ ROM_LOAD16_BYTE( "bootleg_epr-7638.ic86", 0x20001, 0x8000, CRC(79b367d7) SHA1(e901036b1b9fac460415d513837c8f852f7750b0) )
+
+ ROM_REGION( 0x40000, "subcpu", 0 ) // second 68000 CPU
+ ROM_LOAD16_BYTE("epr-7634a.ic54", 0x0000, 0x8000, CRC(aec83731) SHA1(3fe2d0f1a8806b850836741d664c07754a701459) )
+ ROM_LOAD16_BYTE("epr-7635a.ic67", 0x0001, 0x8000, CRC(b2fce96f) SHA1(9d6c1a7c2bdbf86430b849a5f6c6fdb5595dc91c) )
+
+ ROM_REGION( 0x18000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-7644.ic31", 0x00000, 0x08000, CRC(e7a4ff90) SHA1(06d18470019041e32be9a969870cd995de626cd6) )
+ ROM_LOAD( "epr-7645.ic46", 0x08000, 0x08000, CRC(4caa0095) SHA1(a24c741cdca0542e462f17ff94f132c62710e198) )
+ ROM_LOAD( "epr-7646.ic60", 0x10000, 0x08000, CRC(7e432683) SHA1(c8249b23fce77eb456166161c2d9aa34309efe31) )
+
+ ROM_REGION32_LE( 0x100000, "sprites", 0 ) // sprites
+ ROM_LOAD32_BYTE( "epr-7678.ic36", 0x00000, 0x8000, CRC(9fb5e656) SHA1(264b0ad017eb0fc7e0b542e6dd160ba964c100fd) )
+ ROM_LOAD32_BYTE( "epr-7670.ic28", 0x00001, 0x8000, CRC(dbbe2f6e) SHA1(310797a61f91d6866e728e0da3b30828e06d1b52) )
+ ROM_LOAD32_BYTE( "epr-7662.ic18", 0x00002, 0x8000, CRC(cb0c13c5) SHA1(856d1234fd8f8146e20fe6c65c0a535b7b7512cd) )
+ ROM_LOAD32_BYTE( "epr-7654.1c8", 0x00003, 0x8000, CRC(2db6520d) SHA1(d16739e84316b4bd26963b729208169bbf01f499) )
+ ROM_LOAD32_BYTE( "epr-7677.ic35", 0x20000, 0x8000, CRC(7764765b) SHA1(62543130816c084d292f229a15b3ce1305c99bb3) )
+ ROM_LOAD32_BYTE( "epr-7669.ic27", 0x20001, 0x8000, CRC(f9525faa) SHA1(fbe2f67a9baee069dbca26a669d0a263bcca0d09) )
+ ROM_LOAD32_BYTE( "epr-7661.ic17", 0x20002, 0x8000, CRC(fe93a79b) SHA1(591025a371a451c9cddc8c7480c9841a18bb9a7f) )
+ ROM_LOAD32_BYTE( "epr-7653.ic7", 0x20003, 0x8000, CRC(46a52114) SHA1(d646ab03c1985953401619457d03072833edc6c7) )
+ ROM_LOAD32_BYTE( "epr-7676.ic34", 0x40000, 0x8000, CRC(2e42e0d4) SHA1(508f6f89e681b59272884ba129a5c6ffa1b6ba05) )
+ ROM_LOAD32_BYTE( "epr-7668.ic26", 0x40001, 0x8000, CRC(e115ce33) SHA1(1af591bc1567b89d0de399e4a02d896fba938bab) )
+ ROM_LOAD32_BYTE( "epr-7660.ic16", 0x40002, 0x8000, CRC(86dfbb68) SHA1(a05ac16fbe3aaf34dd46229d4b71fc1f72a3a556) )
+ ROM_LOAD32_BYTE( "epr-7652.ic6", 0x40003, 0x8000, CRC(2880cfdb) SHA1(94b78d78d82c324ca108970d8689f1d6b2ca8a24) )
+ ROM_LOAD32_BYTE( "epr-7675.ic33", 0x60000, 0x8000, CRC(05cd2d61) SHA1(51688a5a9bc4da3f88ce162ff30affe8c6d3d0c8) )
+ ROM_LOAD32_BYTE( "epr-7667.ic25", 0x60001, 0x8000, CRC(923bde9d) SHA1(7722a7fdbf45f862f1011d1afae8dedd5885bf52) )
+ ROM_LOAD32_BYTE( "epr-7659.ic15", 0x60002, 0x8000, CRC(629dc8ce) SHA1(4af2a53678890b02922dee54f7cd3c5550001572) )
+ ROM_LOAD32_BYTE( "epr-7651.ic5", 0x60003, 0x8000, CRC(d7902bad) SHA1(f4872d1a42dcf7d5dbdbc1233606a706b39478d7) )
+ ROM_LOAD32_BYTE( "epr-7674.ic32", 0x80000, 0x8000, CRC(1a129acf) SHA1(ebaa60ccedc95c58af3ce99105b924b303827f6e) )
+ ROM_LOAD32_BYTE( "epr-7666.ic24", 0x80001, 0x8000, CRC(23697257) SHA1(19453b14e8e6789e4c48a80d1b83dbaf37fbdceb) )
+ ROM_LOAD32_BYTE( "epr-7658.ic14", 0x80002, 0x8000, CRC(1677f24f) SHA1(4786996cc8a04344e82ec9be7c4e7c8a005914a3) )
+ ROM_LOAD32_BYTE( "epr-7650.ic4", 0x80003, 0x8000, CRC(642635ec) SHA1(e42bbae178e9a139325633e8c85a606c91e39e36) )
+ ROM_LOAD32_BYTE( "epr-7673.ic31", 0xa0000, 0x8000, CRC(82602394) SHA1(d714f397f33a52429f394fc4c403d39be7911ccf) )
+ ROM_LOAD32_BYTE( "epr-7665.ic23", 0xa0001, 0x8000, CRC(12d77607) SHA1(5b5d25646336a8ceae449d5b7a6b70372d81dd8b) )
+ ROM_LOAD32_BYTE( "epr-7657.ic13", 0xa0002, 0x8000, CRC(8158839c) SHA1(f22081caf11d6b57488c969b5935cd4686e11197) )
+ ROM_LOAD32_BYTE( "epr-7649.ic3", 0xa0003, 0x8000, CRC(4edba14c) SHA1(db0aab94de50f8f9501b7afd2fff70fb0a6b2b36) )
+ ROM_LOAD32_BYTE( "epr-7672.ic30", 0xc0000, 0x8000, CRC(d11452f7) SHA1(f68183053005a26c0014050592bad6d63325895e) )
+ ROM_LOAD32_BYTE( "epr-7664.ic22", 0xc0001, 0x8000, CRC(0df2cfad) SHA1(d62d12922be921967da37fbc624aaed72c4a2a98) )
+ ROM_LOAD32_BYTE( "epr-7656.ic12", 0xc0002, 0x8000, CRC(6c741272) SHA1(ccaedda1436ddc339377e610d51e13726bb6c7eb) )
+ ROM_LOAD32_BYTE( "epr-7648.ic2", 0xc0003, 0x8000, CRC(983ea830) SHA1(9629476a300ba711893775ca94dce81a00afd246) )
+ ROM_LOAD32_BYTE( "epr-7671.ic29", 0xe0000, 0x8000, CRC(b0c7fdc6) SHA1(c9e0993fed36526e0e46ab2da9413af24b96cae8) )
+ ROM_LOAD32_BYTE( "epr-7663.ic21", 0xe0001, 0x8000, CRC(2b0b8f08) SHA1(14aa1e6866f1c23c9ff271e8f216f6ecc21601ab) )
+ ROM_LOAD32_BYTE( "epr-7655.ic11", 0xe0002, 0x8000, CRC(3433fe7b) SHA1(636449a0707d6629bf6ea503cfb52ad24af1c017) )
+ ROM_LOAD32_BYTE( "epr-7647.ic1", 0xe0003, 0x8000, CRC(2e7fbec0) SHA1(a59ec5fc3341833671fb948cd21b47f3a49db538) )
+
+ ROM_REGION( 0x8000, "gfx3", 0 ) // road gfx
+ ROM_LOAD( "epr-7633.ic1", 0x0000, 0x8000, CRC(6f146210) SHA1(2f58f0c3563b434ed02700b9ca1545a696a5716e) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-7682.rom", 0x00000, 0x8000, CRC(c4efbf48) SHA1(2bcbc4757d98f291fcaec467abc36158b3f59be3) )
+
+ ROM_REGION( 0x20000, "pcm", 0 ) // Sega PCM sound data
+ ROM_LOAD( "epr-7681.rom", 0x00000, 0x8000, CRC(bc0c4d12) SHA1(3de71bde4c23e3c31984f20fc4bc7e221354c56f) )
+ ROM_LOAD( "epr-7680.rom", 0x10000, 0x8000, CRC(627b3c8c) SHA1(806fe7dce619ad19c09178061be4607d2beba14d) )
+
+ ROM_REGION( 0x2000, "sprites:zoom", 0 ) // zoom table
+ ROM_LOAD( "epr-6844.ic123", 0x0000, 0x2000, CRC(e3ec7bd6) SHA1(feec0fe664e16fac0fde61cf64b401b9b0575323) )
+ROM_END
+
//*************************************************************************************************************************
// Enduro Racer
// CPU: FD1089B (317-0013A)
@@ -1599,6 +1683,73 @@ ROM_START( enduror1 )
ROM_LOAD( "317-0013a.key", 0x0000, 0x2000, CRC(295e6737) SHA1(2eff36f1f24db1154cf970d4c9fd481ae4f9a57c) )
ROM_END
+ROM_START( enduror1d )
+ ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-7630.ic97", 0x00000, 0x8000, CRC(b041e995) SHA1(b3ece0cc0538700052b0b1c693f38210d2121e3d) )
+ ROM_LOAD16_BYTE( "bootleg_epr-7629.ic84", 0x00001, 0x8000, CRC(db4eff5f) SHA1(829658355046cf45c70c6ed442b9af1823da6e94) )
+ ROM_LOAD16_BYTE( "bootleg_epr-7641.ic98", 0x10000, 0x8000, CRC(2153154a) SHA1(145d8ed59812d26ca412a01ae77cd7872adaba5a) )
+ ROM_LOAD16_BYTE( "bootleg_epr-7637.ic85", 0x10001, 0x8000, CRC(0a97992c) SHA1(7a6fc8c575637107ed07a30f6f0f8cb8877cbb43) )
+ ROM_LOAD16_BYTE( "bootleg_epr-7642.ic99", 0x20000, 0x8000, CRC(f6391091) SHA1(3160b342b6447cccf67c932c7c1a42354cdfb058) )
+ ROM_LOAD16_BYTE( "bootleg_epr-7638.ic86", 0x20001, 0x8000, CRC(79b367d7) SHA1(e901036b1b9fac460415d513837c8f852f7750b0) )
+
+ ROM_REGION( 0x40000, "subcpu", 0 ) // second 68000 CPU
+ ROM_LOAD16_BYTE("epr-7634.ic54", 0x0000, 0x8000, CRC(3e07fd32) SHA1(7acb9e9712ecfe928c421c84dece783e75077746) )
+ ROM_LOAD16_BYTE("epr-7635.ic67", 0x0001, 0x8000, CRC(22f762ab) SHA1(70fa87da76c714db7213c42128a0b6a27644a1d4) )
+
+ ROM_REGION( 0x18000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-7644.ic31", 0x00000, 0x08000, CRC(e7a4ff90) SHA1(06d18470019041e32be9a969870cd995de626cd6) )
+ ROM_LOAD( "epr-7645.ic46", 0x08000, 0x08000, CRC(4caa0095) SHA1(a24c741cdca0542e462f17ff94f132c62710e198) )
+ ROM_LOAD( "epr-7646.ic60", 0x10000, 0x08000, CRC(7e432683) SHA1(c8249b23fce77eb456166161c2d9aa34309efe31) )
+
+ ROM_REGION32_LE( 0x100000, "sprites", 0 ) // sprites
+ ROM_LOAD32_BYTE( "epr-7678.ic36", 0x00000, 0x8000, CRC(9fb5e656) SHA1(264b0ad017eb0fc7e0b542e6dd160ba964c100fd) )
+ ROM_LOAD32_BYTE( "epr-7670.ic28", 0x00001, 0x8000, CRC(dbbe2f6e) SHA1(310797a61f91d6866e728e0da3b30828e06d1b52) )
+ ROM_LOAD32_BYTE( "epr-7662.ic18", 0x00002, 0x8000, CRC(cb0c13c5) SHA1(856d1234fd8f8146e20fe6c65c0a535b7b7512cd) )
+ ROM_LOAD32_BYTE( "epr-7654.1c8", 0x00003, 0x8000, CRC(2db6520d) SHA1(d16739e84316b4bd26963b729208169bbf01f499) )
+ ROM_LOAD32_BYTE( "epr-7677.ic35", 0x20000, 0x8000, CRC(7764765b) SHA1(62543130816c084d292f229a15b3ce1305c99bb3) )
+ ROM_LOAD32_BYTE( "epr-7669.ic27", 0x20001, 0x8000, CRC(f9525faa) SHA1(fbe2f67a9baee069dbca26a669d0a263bcca0d09) )
+ ROM_LOAD32_BYTE( "epr-7661.ic17", 0x20002, 0x8000, CRC(fe93a79b) SHA1(591025a371a451c9cddc8c7480c9841a18bb9a7f) )
+ ROM_LOAD32_BYTE( "epr-7653.ic7", 0x20003, 0x8000, CRC(46a52114) SHA1(d646ab03c1985953401619457d03072833edc6c7) )
+ ROM_LOAD32_BYTE( "epr-7676.ic34", 0x40000, 0x8000, CRC(2e42e0d4) SHA1(508f6f89e681b59272884ba129a5c6ffa1b6ba05) )
+ ROM_LOAD32_BYTE( "epr-7668.ic26", 0x40001, 0x8000, CRC(e115ce33) SHA1(1af591bc1567b89d0de399e4a02d896fba938bab) )
+ ROM_LOAD32_BYTE( "epr-7660.ic16", 0x40002, 0x8000, CRC(86dfbb68) SHA1(a05ac16fbe3aaf34dd46229d4b71fc1f72a3a556) )
+ ROM_LOAD32_BYTE( "epr-7652.ic6", 0x40003, 0x8000, CRC(2880cfdb) SHA1(94b78d78d82c324ca108970d8689f1d6b2ca8a24) )
+ ROM_LOAD32_BYTE( "epr-7675.ic33", 0x60000, 0x8000, CRC(05cd2d61) SHA1(51688a5a9bc4da3f88ce162ff30affe8c6d3d0c8) )
+ ROM_LOAD32_BYTE( "epr-7667.ic25", 0x60001, 0x8000, CRC(923bde9d) SHA1(7722a7fdbf45f862f1011d1afae8dedd5885bf52) )
+ ROM_LOAD32_BYTE( "epr-7659.ic15", 0x60002, 0x8000, CRC(629dc8ce) SHA1(4af2a53678890b02922dee54f7cd3c5550001572) )
+ ROM_LOAD32_BYTE( "epr-7651.ic5", 0x60003, 0x8000, CRC(d7902bad) SHA1(f4872d1a42dcf7d5dbdbc1233606a706b39478d7) )
+ ROM_LOAD32_BYTE( "epr-7674.ic32", 0x80000, 0x8000, CRC(1a129acf) SHA1(ebaa60ccedc95c58af3ce99105b924b303827f6e) )
+ ROM_LOAD32_BYTE( "epr-7666.ic24", 0x80001, 0x8000, CRC(23697257) SHA1(19453b14e8e6789e4c48a80d1b83dbaf37fbdceb) )
+ ROM_LOAD32_BYTE( "epr-7658.ic14", 0x80002, 0x8000, CRC(1677f24f) SHA1(4786996cc8a04344e82ec9be7c4e7c8a005914a3) )
+ ROM_LOAD32_BYTE( "epr-7650.ic4", 0x80003, 0x8000, CRC(642635ec) SHA1(e42bbae178e9a139325633e8c85a606c91e39e36) )
+ ROM_LOAD32_BYTE( "epr-7673.ic31", 0xa0000, 0x8000, CRC(82602394) SHA1(d714f397f33a52429f394fc4c403d39be7911ccf) )
+ ROM_LOAD32_BYTE( "epr-7665.ic23", 0xa0001, 0x8000, CRC(12d77607) SHA1(5b5d25646336a8ceae449d5b7a6b70372d81dd8b) )
+ ROM_LOAD32_BYTE( "epr-7657.ic13", 0xa0002, 0x8000, CRC(8158839c) SHA1(f22081caf11d6b57488c969b5935cd4686e11197) )
+ ROM_LOAD32_BYTE( "epr-7649.ic3", 0xa0003, 0x8000, CRC(4edba14c) SHA1(db0aab94de50f8f9501b7afd2fff70fb0a6b2b36) )
+ ROM_LOAD32_BYTE( "epr-7672.ic30", 0xc0000, 0x8000, CRC(d11452f7) SHA1(f68183053005a26c0014050592bad6d63325895e) )
+ ROM_LOAD32_BYTE( "epr-7664.ic22", 0xc0001, 0x8000, CRC(0df2cfad) SHA1(d62d12922be921967da37fbc624aaed72c4a2a98) )
+ ROM_LOAD32_BYTE( "epr-7656.ic12", 0xc0002, 0x8000, CRC(6c741272) SHA1(ccaedda1436ddc339377e610d51e13726bb6c7eb) )
+ ROM_LOAD32_BYTE( "epr-7648.ic2", 0xc0003, 0x8000, CRC(983ea830) SHA1(9629476a300ba711893775ca94dce81a00afd246) )
+ ROM_LOAD32_BYTE( "epr-7671.ic29", 0xe0000, 0x8000, CRC(b0c7fdc6) SHA1(c9e0993fed36526e0e46ab2da9413af24b96cae8) )
+ ROM_LOAD32_BYTE( "epr-7663.ic21", 0xe0001, 0x8000, CRC(2b0b8f08) SHA1(14aa1e6866f1c23c9ff271e8f216f6ecc21601ab) )
+ ROM_LOAD32_BYTE( "epr-7655.ic11", 0xe0002, 0x8000, CRC(3433fe7b) SHA1(636449a0707d6629bf6ea503cfb52ad24af1c017) )
+ ROM_LOAD32_BYTE( "epr-7647.ic1", 0xe0003, 0x8000, CRC(2e7fbec0) SHA1(a59ec5fc3341833671fb948cd21b47f3a49db538) )
+
+ ROM_REGION( 0x8000, "gfx3", 0 ) // road gfx
+ ROM_LOAD( "epr-7633.ic1", 0x0000, 0x8000, CRC(6f146210) SHA1(2f58f0c3563b434ed02700b9ca1545a696a5716e) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-7765.ic73", 0x00000, 0x4000, CRC(81c82fc9) SHA1(99eae7edc62d719993c46a703f9daaf332e236e9) )
+ ROM_LOAD( "epr-7764.ic72", 0x04000, 0x4000, CRC(755bfdad) SHA1(2942f3da5a45a3ac7bba6a73142663fd975f4379) )
+
+ ROM_REGION( 0x20000, "pcm", 0 ) // Sega PCM sound data
+ ROM_LOAD( "epr-7762.ic5", 0x00000, 0x8000, CRC(bc0c4d12) SHA1(3de71bde4c23e3c31984f20fc4bc7e221354c56f) )
+ ROM_LOAD( "epr-7763.ic6", 0x08000, 0x8000, CRC(627b3c8c) SHA1(806fe7dce619ad19c09178061be4607d2beba14d) )
+
+ ROM_REGION( 0x2000, "sprites:zoom", 0 ) // zoom table
+ ROM_LOAD( "epr-6844.ic123", 0x0000, 0x2000, CRC(e3ec7bd6) SHA1(feec0fe664e16fac0fde61cf64b401b9b0575323) )
+ROM_END
+
//*************************************************************************************************************************
// Enduro Racer (bootleg)
// CPU: 68000
@@ -1813,11 +1964,18 @@ DRIVER_INIT_MEMBER(segahang_state,endurob2)
GAME( 1985, hangon, 0, hangon, hangon, segahang_state,generic, ROT0, "Sega", "Hang-On (Rev A)", 0 )
GAME( 1985, hangon1, hangon, hangon, hangon, segahang_state,generic, ROT0, "Sega", "Hang-On", 0 )
GAME( 1985, hangon2, hangon, hangon, hangon2, segahang_state,generic, ROT0, "Sega", "Hang-On (ride-on)", 0 )
+
GAME( 1987, shangonro, shangon, shangonro,shangonro, segahang_state,generic, ROT0, "Sega", "Super Hang-On (ride-on, Japan, FD1094 317-0038)", 0 )
GAME( 1992, shangonrb, shangon, shangupb, shangupb, segahang_state,generic, ROT0, "bootleg", "Super Hang-On (bootleg)", 0 )
+
GAME( 1985, sharrier, 0, sharrier, sharrier, segahang_state,sharrier,ROT0, "Sega", "Space Harrier (Rev A, 8751 315-5163A)", 0 )
GAME( 1985, sharrier1, sharrier, sharrier, sharrier, segahang_state,sharrier,ROT0, "Sega", "Space Harrier (8751 315-5163)", 0 )
-GAME( 1986, enduror, 0, enduror, enduror, segahang_state,enduror, ROT0, "Sega", "Enduro Racer (YM2151, FD1089B 317-0013A)", 0 )
-GAME( 1986, enduror1, enduror, enduror1, enduror, segahang_state,enduror, ROT0, "Sega", "Enduro Racer (YM2203, FD1089B 317-0013A)", 0 )
+
+GAME( 1986, enduror, 0, enduror, enduror, segahang_state,enduror, ROT0, "Sega", "Enduro Racer (YM2151) (FD1089B 317-0013A)", 0 )
+GAME( 1986, enduror1, enduror, enduror1, enduror, segahang_state,enduror, ROT0, "Sega", "Enduro Racer (YM2203) (FD1089B 317-0013A)", 0 )
GAME( 1986, endurobl, enduror, endurobl, enduror, segahang_state,endurobl,ROT0, "bootleg", "Enduro Racer (bootleg set 1)", 0 )
-GAME( 1986, endurob2, enduror, endurob2, enduror, segahang_state,endurob2,ROT0, "bootleg", "Enduro Racer (bootleg set 2)", GAME_NOT_WORKING )
+GAME( 1986, endurob2, enduror, endurob2, enduror, segahang_state,endurob2,ROT0, "bootleg", "Enduro Racer (bootleg set 2)", MACHINE_NOT_WORKING )
+
+
+GAME( 1986, endurord, enduror, endurord, enduror, segahang_state,enduror, ROT0, "bootleg", "Enduro Racer (YM2151) (bootleg of FD1089B 317-0013A set)", 0 )
+GAME( 1986, enduror1d, enduror, enduror1d, enduror, segahang_state,enduror, ROT0, "bootleg", "Enduro Racer (YM2203) (bootleg of FD1089B 317-0013A set)", 0 )
diff --git a/src/mame/drivers/segajw.c b/src/mame/drivers/segajw.c
index e438b9ea47b..db2ff6f2738 100644
--- a/src/mame/drivers/segajw.c
+++ b/src/mame/drivers/segajw.c
@@ -446,4 +446,4 @@ ROM_START( segajw )
ROM_END
-GAMEL( 1991, segajw, 0, segajw, segajw, driver_device, 0, ROT0, "Sega", "Golden Poker Series \"Joker's Wild\" (Rev. B)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE, layout_segajw ) // TODO: correct title
+GAMEL( 1991, segajw, 0, segajw, segajw, driver_device, 0, ROT0, "Sega", "Golden Poker Series \"Joker's Wild\" (Rev. B)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE, layout_segajw ) // TODO: correct title
diff --git a/src/mame/drivers/segald.c b/src/mame/drivers/segald.c
index d22e40cc01d..6d063e7a18b 100644
--- a/src/mame/drivers/segald.c
+++ b/src/mame/drivers/segald.c
@@ -606,9 +606,9 @@ 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", GAME_NOT_WORKING|GAME_NO_SOUND)
-GAME( 1983, astronp, astron, astron, astron, segald_state, astron, ROT0, "Sega", "Astron Belt (Pioneer LDV1000)", GAME_NOT_WORKING|GAME_NO_SOUND)
-GAME( 1983, cobraseg, astron, astron, astron, segald_state, astron, ROT0, "Sega", "Cobra Command (Sega LaserDisc Hardware)", GAME_NOT_WORKING|GAME_NO_SOUND)
-GAME( 1983, galaxyr, 0, astron, astron, segald_state, astron, ROT0, "Sega", "Galaxy Ranger", GAME_NOT_WORKING|GAME_NO_SOUND)
-GAME( 1983, galaxyrp, galaxyr, astron, astron, segald_state, astron, ROT0, "Sega", "Galaxy Ranger (Pioneer LDV1000)", GAME_NOT_WORKING|GAME_NO_SOUND)
-GAME( 1983, sblazerp, galaxyr, astron, astron, segald_state, astron, ROT0, "Sega", "Star Blazer (Pioneer LDV1000)", GAME_NOT_WORKING|GAME_NO_SOUND)
+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)
diff --git a/src/mame/drivers/segam1.c b/src/mame/drivers/segam1.c
index a39ada35922..7eeaefa19bd 100644
--- a/src/mame/drivers/segam1.c
+++ b/src/mame/drivers/segam1.c
@@ -108,4 +108,4 @@ ROM_START( bingpty )
// 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)", GAME_NOT_WORKING | GAME_NO_SOUND )
+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 )
diff --git a/src/mame/drivers/segaorun.c b/src/mame/drivers/segaorun.c
index 7181c1a848c..776da18eae8 100644
--- a/src/mame/drivers/segaorun.c
+++ b/src/mame/drivers/segaorun.c
@@ -897,7 +897,9 @@ static ADDRESS_MAP_START( outrun_map, AS_PROGRAM, 16, segaorun_state )
AM_RANGE(0x500000, 0x507fff) AM_RAM AM_SHARE("workram")
ADDRESS_MAP_END
-
+static ADDRESS_MAP_START( decrypted_opcodes_map, AS_DECRYPTED_OPCODES, 16, segaorun_state )
+ AM_RANGE(0x00000, 0xfffff) AM_ROMBANK("fd1094_decrypted_opcodes")
+ADDRESS_MAP_END
//**************************************************************************
// SECOND CPU MEMORY MAP
@@ -1229,6 +1231,7 @@ static MACHINE_CONFIG_DERIVED( outrun_fd1094, outrun )
// basic machine hardware
MCFG_CPU_REPLACE("maincpu", FD1094, MASTER_CLOCK/4)
MCFG_CPU_PROGRAM_MAP(outrun_map)
+ MCFG_CPU_DECRYPTED_OPCODES_MAP(decrypted_opcodes_map)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( outrun_fd1089a, outrun )
@@ -1868,6 +1871,58 @@ ROM_START( shangon3 )
ROM_LOAD( "317-0034.key", 0x0000, 0x2000, CRC(263ca773) SHA1(8e80d69d61cf54fd02b0ca59dd397fa60c713f3d) )
ROM_END
+ROM_START( shangon3d )
+ ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-10789.133", 0x000000, 0x10000, CRC(9ec9b552) SHA1(0806acfdd1bc7711c90d608dd1383cc06902bfd5) )
+ ROM_LOAD16_BYTE( "bootleg_epr-10788.118", 0x000001, 0x10000, CRC(693821c4) SHA1(be020570480670fefb29cc4ec57497f4c6c9d425) )
+ ROM_LOAD16_BYTE( "bootleg_epr-10637a.132", 0x020000, 0x10000, CRC(a67a65b5) SHA1(b36503ea45aa852dd72f30461e009056e766f555) )
+ ROM_LOAD16_BYTE( "bootleg_epr-10635a.117", 0x020001, 0x10000, CRC(689961b9) SHA1(3f7cb83abd93f68be4168d2115d4dcab0487d1ef) )
+
+ ROM_REGION( 0x60000, "subcpu", 0 ) // second 68000 CPU
+ ROM_LOAD16_BYTE( "epr-10792.76", 0x00000, 0x10000, CRC(16299d25) SHA1(b14d5feef3e6889320d51ffca36801f4c9c4d5f8) )
+ ROM_LOAD16_BYTE( "epr-10790.58", 0x00001, 0x10000, CRC(2246cbc1) SHA1(c192b1ddf4c848adb564c7c87d5413d62ed650d7) )
+ ROM_LOAD16_BYTE( "epr-10793.75", 0x20000, 0x10000, CRC(d9525427) SHA1(cdb24db9f7a293f20fd8becc4afe84fd6abd678a) )
+ ROM_LOAD16_BYTE( "epr-10791.57", 0x20001, 0x10000, CRC(5faf4cbe) SHA1(41659a961e6469d9233849c3c587cd5a0a141344) )
+
+ ROM_REGION( 0x18000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-10652.54", 0x00000, 0x08000, CRC(260286f9) SHA1(dc7c8d2c6ef924a937328685eed19bda1c8b1819) )
+ ROM_LOAD( "epr-10651.55", 0x08000, 0x08000, CRC(c609ee7b) SHA1(c6dacf81cbfe7e5df1f9a967cf571be1dcf1c429) )
+ ROM_LOAD( "epr-10650.56", 0x10000, 0x08000, CRC(b236a403) SHA1(af02b8122794c083a66f2ab35d2c73b84b2df0be) )
+
+ ROM_REGION16_BE( 0x0e0000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "epr-10675.8", 0x000001, 0x010000, CRC(d6ac012b) SHA1(305023b1a0a9d84cfc081ffc2ad7578b53d562f2) )
+ ROM_LOAD16_BYTE( "epr-10682.16", 0x000000, 0x010000, CRC(d9d83250) SHA1(f8ca3197edcdf53643a5b335c3c044ddc1310cd4) )
+ ROM_LOAD16_BYTE( "epr-10676.7", 0x020001, 0x010000, CRC(25ebf2c5) SHA1(abcf673ae4e280417dd9f46d18c0ec7c0e4802ae) )
+ ROM_LOAD16_BYTE( "epr-10683.15", 0x020000, 0x010000, CRC(6365d2e9) SHA1(688e2ba194e859f86cd3486c2575ebae257e975a) )
+ ROM_LOAD16_BYTE( "epr-10677.6", 0x040001, 0x010000, CRC(8a57b8d6) SHA1(df1a31559dd2d1e7c2c9d800bf97526bdf3e84e6) )
+ ROM_LOAD16_BYTE( "epr-10684.14", 0x040000, 0x010000, CRC(3aff8910) SHA1(4b41a49a7f02363424e814b37edce9a7a44a112e) )
+ ROM_LOAD16_BYTE( "epr-10678.5", 0x060001, 0x010000, CRC(af473098) SHA1(a2afaba1cbf672949dc50e407b46d7e9ae183774) )
+ ROM_LOAD16_BYTE( "epr-10685.13", 0x060000, 0x010000, CRC(80bafeef) SHA1(f01bcf65485e60f34e533295a896fca0b92e5b14) )
+ ROM_LOAD16_BYTE( "epr-10679.4", 0x080001, 0x010000, CRC(03bc4878) SHA1(548fc58bcc620204e30fa12fa4c4f0a3f6a1e4c0) )
+ ROM_LOAD16_BYTE( "epr-10686.12", 0x080000, 0x010000, CRC(274b734e) SHA1(906fa528659bc17c9b4744cec52f7096711adce8) )
+ ROM_LOAD16_BYTE( "epr-10680.3", 0x0a0001, 0x010000, CRC(9f0677ed) SHA1(5964642b70bfad418da44f2d91476f887b021f74) )
+ ROM_LOAD16_BYTE( "epr-10687.11", 0x0a0000, 0x010000, CRC(508a4701) SHA1(d17aea2aadc2e2cd65d81bf91feb3ef6923d5c0b) )
+ ROM_LOAD16_BYTE( "epr-10681.2", 0x0c0001, 0x010000, CRC(b176ea72) SHA1(7ec0eb0f13398d014c2e235773ded00351edb3e2) )
+ ROM_LOAD16_BYTE( "epr-10688.10", 0x0c0000, 0x010000, CRC(42fcd51d) SHA1(0eacb3527dc21746e5b901fcac83f2764a0f9e2c) )
+
+ ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx
+ ROM_LOAD( "epr-10642.47", 0x0000, 0x8000, CRC(7836bcc3) SHA1(26f308bf96224311ddf685799d7aa29aac42dd2f) )
+ // socket IC11 not populated
+
+ ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-10649a.88", 0x0000, 0x08000, CRC(bf38330f) SHA1(3d825bb02ef5a9f5c4fcaa71b3735e7f8e47f178) )
+
+ ROM_REGION( 0x40000, "pcm", ROMREGION_ERASEFF ) // sound PCM data
+ ROM_LOAD( "epr-10643.66", 0x00000, 0x08000, CRC(06f55364) SHA1(fd685795e12541e3d0059d383fab293b3980d247) )
+ ROM_RELOAD( 0x08000, 0x08000 )
+ ROM_LOAD( "epr-10644.67", 0x10000, 0x08000, CRC(b41d541d) SHA1(28bbfa5edaa4a5901c74074354ba6f14d8f42ff6) )
+ ROM_RELOAD( 0x18000, 0x08000 )
+ ROM_LOAD( "epr-10645.68", 0x20000, 0x08000, CRC(a60dabff) SHA1(bbef0fb0d7837cc7efc866226bfa2bd7fab06459) )
+ ROM_RELOAD( 0x28000, 0x08000 )
+ ROM_LOAD( "epr-10646.69", 0x30000, 0x08000, CRC(473cc411) SHA1(04ca2d047eb59581cd5d76e0ac6eca8b19eef497) )
+ ROM_RELOAD( 0x38000, 0x08000 )
+ROM_END
+
//*************************************************************************************************************************
// Super Hangon
// CPU: FD1089B (317-0034)
@@ -1937,10 +1992,10 @@ ROM_END
//
ROM_START( shangon1 )
ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code - protected
- ROM_LOAD16_BYTE( "ic133", 0x000000, 0x10000, CRC(e52721fe) SHA1(21f0aa14d0cbda3d762bca86efe089646031aef5) ) // All EPR numbers for this main CPU version are unknown
- ROM_LOAD16_BYTE( "ic118", 0x000001, 0x10000, BAD_DUMP CRC(5fee09f6) SHA1(b97a08ba75d8c617aceff2b03c1f2bfcb16181ef) )
- ROM_LOAD16_BYTE( "ic132", 0x020000, 0x10000, CRC(5d55d65f) SHA1(d02d76b98d74746b078b0f49f0320b8be48e4c47) )
- ROM_LOAD16_BYTE( "ic117", 0x020001, 0x10000, CRC(b967e8c3) SHA1(00224b337b162daff03bbfabdcf8541025220d46) )
+ ROM_LOAD16_BYTE( "epr-10636.133", 0x000000, 0x10000, CRC(e52721fe) SHA1(21f0aa14d0cbda3d762bca86efe089646031aef5) )
+ ROM_LOAD16_BYTE( "epr-10634.118", 0x000001, 0x10000, CRC(08feca97) SHA1(011aa59155d77150ed3a5c3a3b031c699736d262) )
+ ROM_LOAD16_BYTE( "epr-10637.132", 0x020000, 0x10000, CRC(5d55d65f) SHA1(d02d76b98d74746b078b0f49f0320b8be48e4c47) )
+ ROM_LOAD16_BYTE( "epr-10635.117", 0x020001, 0x10000, CRC(b967e8c3) SHA1(00224b337b162daff03bbfabdcf8541025220d46) )
ROM_REGION( 0x60000, "subcpu", 0 ) // second 68000 CPU
ROM_LOAD16_BYTE( "epr-10640.76", 0x00000, 0x10000, CRC(02be68db) SHA1(8c9f98ee49db54ee53b721ecf53f91737ae6cd73) )
@@ -2108,6 +2163,54 @@ ROM_START( toutrun )
ROM_LOAD( "opr-12306.71", 0x50000, 0x10000, CRC(e49249fd) SHA1(ff36e4dba4e9d3d354e3dd528edeb50ad9c18ee4) )
ROM_END
+ROM_START( toutrund )
+ ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-12513.133", 0x000000, 0x10000, CRC(a1881cea) SHA1(f04291475d603a4558ebeeeaa45b03761c9c0e68) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12512.118", 0x000001, 0x10000, CRC(5e9d788b) SHA1(189dfcdfbd20ed69d861858632b50aa97826d1a9) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12515.132", 0x020000, 0x10000, CRC(fd432e2d) SHA1(dfef4f1f8ac5f7d8e905dc95daddbfd299257aa1) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12514.117", 0x020001, 0x10000, CRC(faf00bd6) SHA1(1e35fa02826a5680926d5d3d1cc83b09d4e170bf) )
+ ROM_LOAD16_BYTE( "epr-12293.131", 0x040000, 0x10000, CRC(f4321eea) SHA1(64334acc82c14bb58b7d51719f34fd81cfb9fc6b) )
+ ROM_LOAD16_BYTE( "epr-12292.116", 0x040001, 0x10000, CRC(51d98af0) SHA1(6e7115706bfafb687faa23d55d4a8c8e498a4df2) )
+
+ ROM_REGION( 0x60000, "subcpu", 0 ) // second 68000 CPU
+ ROM_LOAD16_BYTE( "opr-12295.76", 0x000000, 0x10000, CRC(d43a3a84) SHA1(362c98f62c205b6b40b7e8a4ba107745b547b984) )
+ ROM_LOAD16_BYTE( "opr-12294.58", 0x000001, 0x10000, CRC(27cdcfd3) SHA1(4fe57db95b109ab1bb1326789e06a3d3aac311cc) )
+ ROM_LOAD16_BYTE( "opr-12297.75", 0x020000, 0x10000, CRC(1d9b5677) SHA1(fb6e33acc43fbc7a8d7ac44045439ecdf794fdeb) )
+ ROM_LOAD16_BYTE( "opr-12296.57", 0x020001, 0x10000, CRC(0a513671) SHA1(4c13ca3a6f0aa9d06ed80798b466cca0c966a265) )
+
+ ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "opr-12323.102", 0x00000, 0x10000, CRC(4de43a6f) SHA1(68909338e1f192ac2699c8a8d24c3f46502dd019) )
+ ROM_LOAD( "opr-12324.103", 0x10000, 0x10000, CRC(24607a55) SHA1(69033f2281cd42e88233c23d809b73607fe54853) )
+ ROM_LOAD( "opr-12325.104", 0x20000, 0x10000, CRC(1405137a) SHA1(367db88d36852e35c5e839f692be5ea8c8e072d2) )
+
+ ROM_REGION32_LE( 0x100000, "sprites", 0 ) // sprites
+ // Video BD 837-6906-2, Mask Roms twice the size as EPR/OPR counterparts
+ ROM_LOAD32_BYTE( "mpr-12336.9", 0x00000, 0x20000, CRC(dda465c7) SHA1(83acc12a387b004986f084f25964c15a9f88a41a) )
+ ROM_LOAD32_BYTE( "mpr-12337.10", 0x00001, 0x20000, CRC(828233d1) SHA1(d73a200af4245d590e1fd3ac436723f99cc50452) )
+ ROM_LOAD32_BYTE( "mpr-12338.11", 0x00002, 0x20000, CRC(46b4b5f4) SHA1(afeb2e5ac6792edafe7328993fe8dfcd4bce1924) )
+ ROM_LOAD32_BYTE( "mpr-12339.12", 0x00003, 0x20000, CRC(0d7e3bab) SHA1(fdb603df55785ded593daf591ddd90f8f24e0d47) )
+ ROM_LOAD32_BYTE( "mpr-12364.13", 0x80000, 0x20000, CRC(a4b83e65) SHA1(966d8c163cef0842abff54e1dba3f15248e73f68) )
+ ROM_LOAD32_BYTE( "mpr-12365.14", 0x80001, 0x20000, CRC(4a80b2a9) SHA1(14b4fe71e102622a73c8dc0dbd0013cbbe6fcf9d) )
+ ROM_LOAD32_BYTE( "mpr-12366.15", 0x80002, 0x20000, CRC(385cb3ab) SHA1(fec6d80d488bfe26524fa3a48b195a45a073e481) )
+ ROM_LOAD32_BYTE( "mpr-12367.16", 0x80003, 0x20000, CRC(4930254a) SHA1(00f24be3bf02b143fa554f4d32e283bdac79af6a) )
+
+ ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx (2 identical roms, 1 for each road)
+ ROM_LOAD( "epr-12299.47", 0x0000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) // Manual shows both as EPR-12298
+ ROM_LOAD( "epr-12298.11", 0x8000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-12300.88", 0x00000, 0x10000, CRC(e8ff7011) SHA1(6eaf3aea507007ea31d507ed7825d905f4b8e7ab) )
+
+ ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // sound PCM data
+ ROM_LOAD( "opr-12301.66", 0x00000, 0x10000, CRC(6e78ad15) SHA1(c31ddf434b459cd1a381d2a028beabddd4ed10d2) )
+ ROM_LOAD( "opr-12302.67", 0x10000, 0x10000, CRC(e72928af) SHA1(40e0b178958cfe97c097fe9d82b5de54bc27a29f) )
+ ROM_LOAD( "opr-12303.68", 0x20000, 0x10000, CRC(8384205c) SHA1(c1f9d52bc587eab5a97867198e9aa7c19e973429) )
+ ROM_LOAD( "opr-12304.69", 0x30000, 0x10000, CRC(e1762ac3) SHA1(855f06c082a17d90857e6efa3cf95b0eda0e634d) )
+ ROM_LOAD( "opr-12305.70", 0x40000, 0x10000, CRC(ba9ce677) SHA1(056781f92450c902e1d279a02bda28337815cba9) )
+ ROM_LOAD( "opr-12306.71", 0x50000, 0x10000, CRC(e49249fd) SHA1(ff36e4dba4e9d3d354e3dd528edeb50ad9c18ee4) )
+ROM_END
+
+
//*************************************************************************************************************************
// Turbo Outrun Japan (Out Run upgrade set)
// CPU: FD1094 (317-0117)
@@ -2165,6 +2268,54 @@ ROM_START( toutrunj )
ROM_LOAD( "opr-12306.71", 0x50000, 0x10000, CRC(e49249fd) SHA1(ff36e4dba4e9d3d354e3dd528edeb50ad9c18ee4) )
ROM_END
+
+ROM_START( toutrunjd )
+ ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-12509.133", 0x000000, 0x10000, CRC(6bd28e3e) SHA1(084af152d0579ea2abffe3dfdc5ecec8ad9c824c) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12508.118", 0x000001, 0x10000, CRC(e059ec88) SHA1(ed0c1ed74e920b434ec6c25863a01576495b5f37) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12511.132", 0x020000, 0x10000, CRC(fd432e2d) SHA1(dfef4f1f8ac5f7d8e905dc95daddbfd299257aa1) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12510.117", 0x020001, 0x10000, CRC(faf00bd6) SHA1(1e35fa02826a5680926d5d3d1cc83b09d4e170bf) )
+ ROM_LOAD16_BYTE( "epr-12293.131", 0x040000, 0x10000, CRC(f4321eea) SHA1(64334acc82c14bb58b7d51719f34fd81cfb9fc6b) )
+ ROM_LOAD16_BYTE( "epr-12292.116", 0x040001, 0x10000, CRC(51d98af0) SHA1(6e7115706bfafb687faa23d55d4a8c8e498a4df2) )
+
+ ROM_REGION( 0x60000, "subcpu", 0 ) // second 68000 CPU
+ ROM_LOAD16_BYTE( "opr-12295.76", 0x000000, 0x10000, CRC(d43a3a84) SHA1(362c98f62c205b6b40b7e8a4ba107745b547b984) )
+ ROM_LOAD16_BYTE( "opr-12294.58", 0x000001, 0x10000, CRC(27cdcfd3) SHA1(4fe57db95b109ab1bb1326789e06a3d3aac311cc) )
+ ROM_LOAD16_BYTE( "opr-12297.75", 0x020000, 0x10000, CRC(1d9b5677) SHA1(fb6e33acc43fbc7a8d7ac44045439ecdf794fdeb) )
+ ROM_LOAD16_BYTE( "opr-12296.57", 0x020001, 0x10000, CRC(0a513671) SHA1(4c13ca3a6f0aa9d06ed80798b466cca0c966a265) )
+
+ ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "opr-12323.102", 0x00000, 0x10000, CRC(4de43a6f) SHA1(68909338e1f192ac2699c8a8d24c3f46502dd019) )
+ ROM_LOAD( "opr-12324.103", 0x10000, 0x10000, CRC(24607a55) SHA1(69033f2281cd42e88233c23d809b73607fe54853) )
+ ROM_LOAD( "opr-12325.104", 0x20000, 0x10000, CRC(1405137a) SHA1(367db88d36852e35c5e839f692be5ea8c8e072d2) )
+
+ ROM_REGION32_LE( 0x100000, "sprites", 0 ) // sprites
+ // Video BD 837-6906-2, Mask Roms twice the size as EPR/OPR counterparts
+ ROM_LOAD32_BYTE( "mpr-12336.9", 0x00000, 0x20000, CRC(dda465c7) SHA1(83acc12a387b004986f084f25964c15a9f88a41a) )
+ ROM_LOAD32_BYTE( "mpr-12337.10", 0x00001, 0x20000, CRC(828233d1) SHA1(d73a200af4245d590e1fd3ac436723f99cc50452) )
+ ROM_LOAD32_BYTE( "mpr-12338.11", 0x00002, 0x20000, CRC(46b4b5f4) SHA1(afeb2e5ac6792edafe7328993fe8dfcd4bce1924) )
+ ROM_LOAD32_BYTE( "mpr-12339.12", 0x00003, 0x20000, CRC(0d7e3bab) SHA1(fdb603df55785ded593daf591ddd90f8f24e0d47) )
+ ROM_LOAD32_BYTE( "mpr-12364.13", 0x80000, 0x20000, CRC(a4b83e65) SHA1(966d8c163cef0842abff54e1dba3f15248e73f68) )
+ ROM_LOAD32_BYTE( "mpr-12365.14", 0x80001, 0x20000, CRC(4a80b2a9) SHA1(14b4fe71e102622a73c8dc0dbd0013cbbe6fcf9d) )
+ ROM_LOAD32_BYTE( "mpr-12366.15", 0x80002, 0x20000, CRC(385cb3ab) SHA1(fec6d80d488bfe26524fa3a48b195a45a073e481) )
+ ROM_LOAD32_BYTE( "mpr-12367.16", 0x80003, 0x20000, CRC(4930254a) SHA1(00f24be3bf02b143fa554f4d32e283bdac79af6a) )
+
+ ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx (2 identical roms, 1 for each road)
+ ROM_LOAD( "epr-12299.47", 0x0000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) // Manual shows both as EPR-12298
+ ROM_LOAD( "epr-12298.11", 0x8000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-12300.88", 0x00000, 0x10000, CRC(e8ff7011) SHA1(6eaf3aea507007ea31d507ed7825d905f4b8e7ab) )
+
+ ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // sound PCM data
+ ROM_LOAD( "opr-12301.66", 0x00000, 0x10000, CRC(6e78ad15) SHA1(c31ddf434b459cd1a381d2a028beabddd4ed10d2) )
+ ROM_LOAD( "opr-12302.67", 0x10000, 0x10000, CRC(e72928af) SHA1(40e0b178958cfe97c097fe9d82b5de54bc27a29f) )
+ ROM_LOAD( "opr-12303.68", 0x20000, 0x10000, CRC(8384205c) SHA1(c1f9d52bc587eab5a97867198e9aa7c19e973429) )
+ ROM_LOAD( "opr-12304.69", 0x30000, 0x10000, CRC(e1762ac3) SHA1(855f06c082a17d90857e6efa3cf95b0eda0e634d) )
+ ROM_LOAD( "opr-12305.70", 0x40000, 0x10000, CRC(ba9ce677) SHA1(056781f92450c902e1d279a02bda28337815cba9) )
+ ROM_LOAD( "opr-12306.71", 0x50000, 0x10000, CRC(e49249fd) SHA1(ff36e4dba4e9d3d354e3dd528edeb50ad9c18ee4) )
+ROM_END
+
//*************************************************************************************************************************
// Turbo Outrun (Cockpit version)
// CPU: FD1094 (317-0107)
@@ -2232,6 +2383,60 @@ ROM_START( toutrun3 )
ROM_LOAD( "opr-12306.71", 0x50000, 0x10000, CRC(e49249fd) SHA1(ff36e4dba4e9d3d354e3dd528edeb50ad9c18ee4) )
ROM_END
+ROM_START( toutrun3d )
+ ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-12410.133", 0x000000, 0x10000, CRC(8e716903) SHA1(6a5c168097623c97358fc5dd8e205cf61932d3e9) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12409.118", 0x000001, 0x10000, CRC(675d4dd8) SHA1(e74dc3c21196baac94c41e844b2a9054842ae863) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12412.132", 0x020000, 0x10000, CRC(89da477c) SHA1(f854a48d96539d87d2417d936bd6bec1b7ea32fd) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12411.117", 0x020001, 0x10000, CRC(285837ee) SHA1(186fff13cd50af504c0dc0296af96dfa24d0d32e) )
+ ROM_LOAD16_BYTE( "epr-12293.131", 0x040000, 0x10000, CRC(f4321eea) SHA1(64334acc82c14bb58b7d51719f34fd81cfb9fc6b) )
+ ROM_LOAD16_BYTE( "epr-12292.116", 0x040001, 0x10000, CRC(51d98af0) SHA1(6e7115706bfafb687faa23d55d4a8c8e498a4df2) )
+
+ ROM_REGION( 0x60000, "subcpu", 0 ) // second 68000 CPU
+ ROM_LOAD16_BYTE( "opr-12295.76", 0x000000, 0x10000, CRC(d43a3a84) SHA1(362c98f62c205b6b40b7e8a4ba107745b547b984) )
+ ROM_LOAD16_BYTE( "opr-12294.58", 0x000001, 0x10000, CRC(27cdcfd3) SHA1(4fe57db95b109ab1bb1326789e06a3d3aac311cc) )
+ ROM_LOAD16_BYTE( "opr-12297.75", 0x020000, 0x10000, CRC(1d9b5677) SHA1(fb6e33acc43fbc7a8d7ac44045439ecdf794fdeb) )
+ ROM_LOAD16_BYTE( "opr-12296.57", 0x020001, 0x10000, CRC(0a513671) SHA1(4c13ca3a6f0aa9d06ed80798b466cca0c966a265) )
+
+ ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "opr-12323.102", 0x00000, 0x10000, CRC(4de43a6f) SHA1(68909338e1f192ac2699c8a8d24c3f46502dd019) )
+ ROM_LOAD( "opr-12324.103", 0x10000, 0x10000, CRC(24607a55) SHA1(69033f2281cd42e88233c23d809b73607fe54853) )
+ ROM_LOAD( "opr-12325.104", 0x20000, 0x10000, CRC(1405137a) SHA1(367db88d36852e35c5e839f692be5ea8c8e072d2) )
+
+ ROM_REGION32_LE( 0x100000, "sprites", 0 ) // sprites
+ ROM_LOAD32_BYTE( "opr-12307.9", 0x00000, 0x10000, CRC(437dcf09) SHA1(0022ee4d1c3698f77271e570cef98a8a1e5c5d6a) )
+ ROM_LOAD32_BYTE( "opr-12308.10", 0x00001, 0x10000, CRC(0de70cc2) SHA1(c03f8f8cda72daf64af2878bf254840ac6dd17eb) )
+ ROM_LOAD32_BYTE( "opr-12309.11", 0x00002, 0x10000, CRC(deb8c242) SHA1(c05d8ced4eafae52c4795fb1471cd66f5903d1aa) )
+ ROM_LOAD32_BYTE( "opr-12310.12", 0x00003, 0x10000, CRC(45cf157e) SHA1(5d0be2a374a53ea1fe0ba2bf9b2173e96de1eb51) )
+ ROM_LOAD32_BYTE( "opr-12311.13", 0x40000, 0x10000, CRC(ae2bd639) SHA1(64bb60ae7e3f87fbbce00106ba65c4e6fc1af0e4) )
+ ROM_LOAD32_BYTE( "opr-12312.14", 0x40001, 0x10000, CRC(626000e7) SHA1(4a7f9e76dd76a3dc56b8257149bc94be3f4f2e87) )
+ ROM_LOAD32_BYTE( "opr-12313.15", 0x40002, 0x10000, CRC(52870c37) SHA1(3a6836a46d94c0f9115800d206410252a1134c57) )
+ ROM_LOAD32_BYTE( "opr-12314.16", 0x40003, 0x10000, CRC(40c461ea) SHA1(7bed8f24112dc3c827fd087138fcf2700092aa59) )
+ ROM_LOAD32_BYTE( "opr-12315.17", 0x80000, 0x10000, CRC(3ff9a3a3) SHA1(0d90fe2669d03bd07a0d3b05934201778e28d54c) )
+ ROM_LOAD32_BYTE( "opr-12316.18", 0x80001, 0x10000, CRC(8a1e6dc8) SHA1(32f09ec504c2b6772815bad7380a2f738f11746a) )
+ ROM_LOAD32_BYTE( "opr-12317.19", 0x80002, 0x10000, CRC(77e382d4) SHA1(5b7912069a46043b7be989d82436add85497d318) )
+ ROM_LOAD32_BYTE( "opr-12318.20", 0x80003, 0x10000, CRC(d1afdea9) SHA1(813eccc88d5046992be5b5a0618d32127d16e30b) )
+ ROM_LOAD32_BYTE( "opr-12319.25", 0xc0000, 0x10000, CRC(df23baf9) SHA1(f9611391bb3b3b92203fa9f6dd461e3a6e863622) )
+ ROM_LOAD32_BYTE( "opr-12320.22", 0xc0001, 0x10000, CRC(7931e446) SHA1(9f2161a689ebad61f6653942e23d9c2bc6170d4a) )
+ ROM_LOAD32_BYTE( "opr-12321.23", 0xc0002, 0x10000, CRC(830bacd4) SHA1(5a4816969437ee1edca5845006c0b8e9ba365491) )
+ ROM_LOAD32_BYTE( "opr-12322.24", 0xc0003, 0x10000, CRC(8b812492) SHA1(bf1f9e059c093c0991c7caf1b01c739ed54b8357) )
+
+ ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx (2 identical roms, 1 for each road)
+ ROM_LOAD( "epr-12299.47", 0x0000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) // Manual shows both as EPR-12298
+ ROM_LOAD( "epr-12298.11", 0x8000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-12300.88", 0x00000, 0x10000, CRC(e8ff7011) SHA1(6eaf3aea507007ea31d507ed7825d905f4b8e7ab) )
+
+ ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // sound PCM data
+ ROM_LOAD( "opr-12301.66", 0x00000, 0x10000, CRC(6e78ad15) SHA1(c31ddf434b459cd1a381d2a028beabddd4ed10d2) )
+ ROM_LOAD( "opr-12302.67", 0x10000, 0x10000, CRC(e72928af) SHA1(40e0b178958cfe97c097fe9d82b5de54bc27a29f) )
+ ROM_LOAD( "opr-12303.68", 0x20000, 0x10000, CRC(8384205c) SHA1(c1f9d52bc587eab5a97867198e9aa7c19e973429) )
+ ROM_LOAD( "opr-12304.69", 0x30000, 0x10000, CRC(e1762ac3) SHA1(855f06c082a17d90857e6efa3cf95b0eda0e634d) )
+ ROM_LOAD( "opr-12305.70", 0x40000, 0x10000, CRC(ba9ce677) SHA1(056781f92450c902e1d279a02bda28337815cba9) )
+ ROM_LOAD( "opr-12306.71", 0x50000, 0x10000, CRC(e49249fd) SHA1(ff36e4dba4e9d3d354e3dd528edeb50ad9c18ee4) )
+ROM_END
+
//*************************************************************************************************************************
// Turbo Outrun (Cockpit version)
// CPU: FD1094 (317-0106)
@@ -2299,6 +2504,61 @@ ROM_START( toutrun2 )
ROM_LOAD( "opr-12306.71", 0x50000, 0x10000, CRC(e49249fd) SHA1(ff36e4dba4e9d3d354e3dd528edeb50ad9c18ee4) )
ROM_END
+
+ROM_START( toutrun2d )
+ ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-12397.133", 0x000000, 0x10000, CRC(815ec9af) SHA1(94128ae06630bcfc21194c5113894c775e07d766) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12396.118", 0x000001, 0x10000, CRC(84484188) SHA1(211b7e8bffa9490da321fc28bfe3ee4f4f368742) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12399.132", 0x020000, 0x10000, CRC(27ef9e5d) SHA1(65eac53884583fe247ba5c9fab0bade27673526a) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12398.117", 0x020001, 0x10000, CRC(6da9f13b) SHA1(383ea9d1d068a2c2d7b57202576628286c1496c8) )
+ ROM_LOAD16_BYTE( "epr-12293.131", 0x040000, 0x10000, CRC(f4321eea) SHA1(64334acc82c14bb58b7d51719f34fd81cfb9fc6b) )
+ ROM_LOAD16_BYTE( "epr-12292.116", 0x040001, 0x10000, CRC(51d98af0) SHA1(6e7115706bfafb687faa23d55d4a8c8e498a4df2) )
+
+ ROM_REGION( 0x60000, "subcpu", 0 ) // second 68000 CPU
+ ROM_LOAD16_BYTE( "opr-12295.76", 0x000000, 0x10000, CRC(d43a3a84) SHA1(362c98f62c205b6b40b7e8a4ba107745b547b984) )
+ ROM_LOAD16_BYTE( "opr-12294.58", 0x000001, 0x10000, CRC(27cdcfd3) SHA1(4fe57db95b109ab1bb1326789e06a3d3aac311cc) )
+ ROM_LOAD16_BYTE( "opr-12297.75", 0x020000, 0x10000, CRC(1d9b5677) SHA1(fb6e33acc43fbc7a8d7ac44045439ecdf794fdeb) )
+ ROM_LOAD16_BYTE( "opr-12296.57", 0x020001, 0x10000, CRC(0a513671) SHA1(4c13ca3a6f0aa9d06ed80798b466cca0c966a265) )
+
+ ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "opr-12323.102", 0x00000, 0x10000, CRC(4de43a6f) SHA1(68909338e1f192ac2699c8a8d24c3f46502dd019) )
+ ROM_LOAD( "opr-12324.103", 0x10000, 0x10000, CRC(24607a55) SHA1(69033f2281cd42e88233c23d809b73607fe54853) )
+ ROM_LOAD( "opr-12325.104", 0x20000, 0x10000, CRC(1405137a) SHA1(367db88d36852e35c5e839f692be5ea8c8e072d2) )
+
+ ROM_REGION32_LE( 0x100000, "sprites", 0 ) // sprites
+ ROM_LOAD32_BYTE( "opr-12307.9", 0x00000, 0x10000, CRC(437dcf09) SHA1(0022ee4d1c3698f77271e570cef98a8a1e5c5d6a) )
+ ROM_LOAD32_BYTE( "opr-12308.10", 0x00001, 0x10000, CRC(0de70cc2) SHA1(c03f8f8cda72daf64af2878bf254840ac6dd17eb) )
+ ROM_LOAD32_BYTE( "opr-12309.11", 0x00002, 0x10000, CRC(deb8c242) SHA1(c05d8ced4eafae52c4795fb1471cd66f5903d1aa) )
+ ROM_LOAD32_BYTE( "opr-12310.12", 0x00003, 0x10000, CRC(45cf157e) SHA1(5d0be2a374a53ea1fe0ba2bf9b2173e96de1eb51) )
+ ROM_LOAD32_BYTE( "opr-12311.13", 0x40000, 0x10000, CRC(ae2bd639) SHA1(64bb60ae7e3f87fbbce00106ba65c4e6fc1af0e4) )
+ ROM_LOAD32_BYTE( "opr-12312.14", 0x40001, 0x10000, CRC(626000e7) SHA1(4a7f9e76dd76a3dc56b8257149bc94be3f4f2e87) )
+ ROM_LOAD32_BYTE( "opr-12313.15", 0x40002, 0x10000, CRC(52870c37) SHA1(3a6836a46d94c0f9115800d206410252a1134c57) )
+ ROM_LOAD32_BYTE( "opr-12314.16", 0x40003, 0x10000, CRC(40c461ea) SHA1(7bed8f24112dc3c827fd087138fcf2700092aa59) )
+ ROM_LOAD32_BYTE( "opr-12315.17", 0x80000, 0x10000, CRC(3ff9a3a3) SHA1(0d90fe2669d03bd07a0d3b05934201778e28d54c) )
+ ROM_LOAD32_BYTE( "opr-12316.18", 0x80001, 0x10000, CRC(8a1e6dc8) SHA1(32f09ec504c2b6772815bad7380a2f738f11746a) )
+ ROM_LOAD32_BYTE( "opr-12317.19", 0x80002, 0x10000, CRC(77e382d4) SHA1(5b7912069a46043b7be989d82436add85497d318) )
+ ROM_LOAD32_BYTE( "opr-12318.20", 0x80003, 0x10000, CRC(d1afdea9) SHA1(813eccc88d5046992be5b5a0618d32127d16e30b) )
+ ROM_LOAD32_BYTE( "opr-12319.25", 0xc0000, 0x10000, CRC(df23baf9) SHA1(f9611391bb3b3b92203fa9f6dd461e3a6e863622) )
+ ROM_LOAD32_BYTE( "opr-12320.22", 0xc0001, 0x10000, CRC(7931e446) SHA1(9f2161a689ebad61f6653942e23d9c2bc6170d4a) )
+ ROM_LOAD32_BYTE( "opr-12321.23", 0xc0002, 0x10000, CRC(830bacd4) SHA1(5a4816969437ee1edca5845006c0b8e9ba365491) )
+ ROM_LOAD32_BYTE( "opr-12322.24", 0xc0003, 0x10000, CRC(8b812492) SHA1(bf1f9e059c093c0991c7caf1b01c739ed54b8357) )
+
+ ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx (2 identical roms, 1 for each road)
+ ROM_LOAD( "epr-12299.47", 0x0000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) // Manual shows both as EPR-12298
+ ROM_LOAD( "epr-12298.11", 0x8000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-12300.88", 0x00000, 0x10000, CRC(e8ff7011) SHA1(6eaf3aea507007ea31d507ed7825d905f4b8e7ab) )
+
+ ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // sound PCM data
+ ROM_LOAD( "opr-12301.66", 0x00000, 0x10000, CRC(6e78ad15) SHA1(c31ddf434b459cd1a381d2a028beabddd4ed10d2) )
+ ROM_LOAD( "opr-12302.67", 0x10000, 0x10000, CRC(e72928af) SHA1(40e0b178958cfe97c097fe9d82b5de54bc27a29f) )
+ ROM_LOAD( "opr-12303.68", 0x20000, 0x10000, CRC(8384205c) SHA1(c1f9d52bc587eab5a97867198e9aa7c19e973429) )
+ ROM_LOAD( "opr-12304.69", 0x30000, 0x10000, CRC(e1762ac3) SHA1(855f06c082a17d90857e6efa3cf95b0eda0e634d) )
+ ROM_LOAD( "opr-12305.70", 0x40000, 0x10000, CRC(ba9ce677) SHA1(056781f92450c902e1d279a02bda28337815cba9) )
+ ROM_LOAD( "opr-12306.71", 0x50000, 0x10000, CRC(e49249fd) SHA1(ff36e4dba4e9d3d354e3dd528edeb50ad9c18ee4) )
+ROM_END
+
//*************************************************************************************************************************
// Turbo Outrun (White cockpit/sitdown Deluxe version)
// CPU: FD1094 (317-0109)
@@ -2432,6 +2692,61 @@ ROM_START( toutrunj1 )
ROM_LOAD( "epr-12306.ic71", 0x50000, 0x10000, CRC(e49249fd) SHA1(ff36e4dba4e9d3d354e3dd528edeb50ad9c18ee4) )
ROM_END
+
+ROM_START( toutrunj1d )
+ ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-12289.133", 0x000000, 0x10000, CRC(bcdb64ae) SHA1(731d232d0c705d0caf6c01c721f58c48c166d131) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12288.118", 0x000001, 0x10000, CRC(58051f8d) SHA1(f2763359fb4f71b5dca05fe7291b1dc070361744) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12291.132", 0x020000, 0x10000, CRC(0f00d22c) SHA1(6629508b228334dd3836f81bbb3a8dcb07343e95) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12290.117", 0x020001, 0x10000, CRC(da4a77ac) SHA1(758e5ca9d66436bd64acc8297f46f23b37a982e1) )
+ ROM_LOAD16_BYTE( "epr-12293.ic131", 0x040000, 0x10000, CRC(f4321eea) SHA1(64334acc82c14bb58b7d51719f34fd81cfb9fc6b) )
+ ROM_LOAD16_BYTE( "epr-12292.ic116", 0x040001, 0x10000, CRC(51d98af0) SHA1(6e7115706bfafb687faa23d55d4a8c8e498a4df2) )
+
+ ROM_REGION( 0x60000, "subcpu", 0 ) // second 68000 CPU
+ ROM_LOAD16_BYTE( "epr-12295.ic76", 0x000000, 0x10000, CRC(d43a3a84) SHA1(362c98f62c205b6b40b7e8a4ba107745b547b984) )
+ ROM_LOAD16_BYTE( "epr-12294.ic58", 0x000001, 0x10000, CRC(27cdcfd3) SHA1(4fe57db95b109ab1bb1326789e06a3d3aac311cc) )
+ ROM_LOAD16_BYTE( "epr-12297.ic75", 0x020000, 0x10000, CRC(1d9b5677) SHA1(fb6e33acc43fbc7a8d7ac44045439ecdf794fdeb) )
+ ROM_LOAD16_BYTE( "epr-12296.ic57", 0x020001, 0x10000, CRC(0a513671) SHA1(4c13ca3a6f0aa9d06ed80798b466cca0c966a265) )
+
+ ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-12323.ic102", 0x00000, 0x10000, CRC(4de43a6f) SHA1(68909338e1f192ac2699c8a8d24c3f46502dd019) )
+ ROM_LOAD( "epr-12324.ic103", 0x10000, 0x10000, CRC(24607a55) SHA1(69033f2281cd42e88233c23d809b73607fe54853) )
+ ROM_LOAD( "epr-12325.ic104", 0x20000, 0x10000, CRC(1405137a) SHA1(367db88d36852e35c5e839f692be5ea8c8e072d2) )
+
+ ROM_REGION32_LE( 0x100000, "sprites", 0 ) // sprites
+ ROM_LOAD32_BYTE( "epr-12307.ic9", 0x00000, 0x10000, CRC(437dcf09) SHA1(0022ee4d1c3698f77271e570cef98a8a1e5c5d6a) )
+ ROM_LOAD32_BYTE( "epr-12308.ic10", 0x00001, 0x10000, CRC(0de70cc2) SHA1(c03f8f8cda72daf64af2878bf254840ac6dd17eb) )
+ ROM_LOAD32_BYTE( "epr-12309.ic11", 0x00002, 0x10000, CRC(deb8c242) SHA1(c05d8ced4eafae52c4795fb1471cd66f5903d1aa) )
+ ROM_LOAD32_BYTE( "epr-12310.ic12", 0x00003, 0x10000, CRC(45cf157e) SHA1(5d0be2a374a53ea1fe0ba2bf9b2173e96de1eb51) )
+ ROM_LOAD32_BYTE( "epr-12311.ic13", 0x40000, 0x10000, CRC(ae2bd639) SHA1(64bb60ae7e3f87fbbce00106ba65c4e6fc1af0e4) )
+ ROM_LOAD32_BYTE( "epr-12312.ic14", 0x40001, 0x10000, CRC(626000e7) SHA1(4a7f9e76dd76a3dc56b8257149bc94be3f4f2e87) )
+ ROM_LOAD32_BYTE( "epr-12313.ic15", 0x40002, 0x10000, CRC(52870c37) SHA1(3a6836a46d94c0f9115800d206410252a1134c57) )
+ ROM_LOAD32_BYTE( "epr-12314.ic16", 0x40003, 0x10000, CRC(40c461ea) SHA1(7bed8f24112dc3c827fd087138fcf2700092aa59) )
+ ROM_LOAD32_BYTE( "epr-12315.ic17", 0x80000, 0x10000, CRC(3ff9a3a3) SHA1(0d90fe2669d03bd07a0d3b05934201778e28d54c) )
+ ROM_LOAD32_BYTE( "epr-12316.ic18", 0x80001, 0x10000, CRC(8a1e6dc8) SHA1(32f09ec504c2b6772815bad7380a2f738f11746a) )
+ ROM_LOAD32_BYTE( "epr-12317.ic19", 0x80002, 0x10000, CRC(77e382d4) SHA1(5b7912069a46043b7be989d82436add85497d318) )
+ ROM_LOAD32_BYTE( "epr-12318.ic20", 0x80003, 0x10000, CRC(d1afdea9) SHA1(813eccc88d5046992be5b5a0618d32127d16e30b) )
+ ROM_LOAD32_BYTE( "epr-12319.ic21", 0xc0000, 0x10000, CRC(df23baf9) SHA1(f9611391bb3b3b92203fa9f6dd461e3a6e863622) )
+ ROM_LOAD32_BYTE( "epr-12320.ic22", 0xc0001, 0x10000, CRC(7931e446) SHA1(9f2161a689ebad61f6653942e23d9c2bc6170d4a) )
+ ROM_LOAD32_BYTE( "epr-12321.ic23", 0xc0002, 0x10000, CRC(830bacd4) SHA1(5a4816969437ee1edca5845006c0b8e9ba365491) )
+ ROM_LOAD32_BYTE( "epr-12322.ic24", 0xc0003, 0x10000, CRC(8b812492) SHA1(bf1f9e059c093c0991c7caf1b01c739ed54b8357) )
+
+ ROM_REGION( 0x10000, "gfx3", 0 ) // road gfx (2 identical roms, 1 for each road)
+ ROM_LOAD( "epr-12298.ic47", 0x0000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) ) // Both are EPR-12298
+ ROM_LOAD( "epr-12298.ic28", 0x8000, 0x8000, CRC(fc9bc41b) SHA1(9af73e096253cf2c4f283f227530110a4b37fcee) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-12300.ic88", 0x00000, 0x10000, CRC(e8ff7011) SHA1(6eaf3aea507007ea31d507ed7825d905f4b8e7ab) )
+
+ ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // sound PCM data
+ ROM_LOAD( "epr-12301.ic66", 0x00000, 0x10000, CRC(6e78ad15) SHA1(c31ddf434b459cd1a381d2a028beabddd4ed10d2) )
+ ROM_LOAD( "epr-12302.ic67", 0x10000, 0x10000, CRC(e72928af) SHA1(40e0b178958cfe97c097fe9d82b5de54bc27a29f) )
+ ROM_LOAD( "epr-12303.ic68", 0x20000, 0x10000, CRC(8384205c) SHA1(c1f9d52bc587eab5a97867198e9aa7c19e973429) )
+ ROM_LOAD( "epr-12304.ic69", 0x30000, 0x10000, CRC(e1762ac3) SHA1(855f06c082a17d90857e6efa3cf95b0eda0e634d) )
+ ROM_LOAD( "epr-12305.ic70", 0x40000, 0x10000, CRC(ba9ce677) SHA1(056781f92450c902e1d279a02bda28337815cba9) )
+ ROM_LOAD( "epr-12306.ic71", 0x50000, 0x10000, CRC(e49249fd) SHA1(ff36e4dba4e9d3d354e3dd528edeb50ad9c18ee4) )
+ROM_END
+
//**************************************************************************
// CONFIGURATION
//**************************************************************************
@@ -2526,17 +2841,29 @@ DRIVER_INIT_MEMBER(segaorun_state,shangon)
GAMEL(1986, outrun, 0, outrun, outrun, segaorun_state,outrun, ROT0, "Sega", "Out Run (sitdown/upright, Rev B)", 0, layout_outrun ) // Upright/Sitdown determined by dipswitch settings
GAMEL(1986, outrunra, outrun, outrun, outrun, segaorun_state,outrun, ROT0, "Sega", "Out Run (sitdown/upright, Rev A)", 0, layout_outrun ) // Upright/Sitdown determined by dipswitch settings
GAMEL(1986, outrundx, outrun, outrun, outrundx, segaorun_state,outrun, ROT0, "Sega", "Out Run (deluxe sitdown)", 0, layout_outrun )
-GAMEL(1986, outrundxj, outrun, outrun_fd1089a, outrundx, segaorun_state,outrun, ROT0, "Sega", "Out Run (Japan, deluxe sitdown, FD1089A 317-0019)", 0, layout_outrun ) // No Japanese text, different course order
+GAMEL(1986, outrundxj, outrun, outrun_fd1089a, outrundx, segaorun_state,outrun, ROT0, "Sega", "Out Run (Japan, deluxe sitdown) (FD1089A 317-0019)", 0, layout_outrun ) // No Japanese text, different course order
GAMEL(1986, outrundxa, outrun, outrundx, outrundx, segaorun_state,outrun, ROT0, "Sega", "Out Run (deluxe sitdown earlier version)", 0, layout_outrun )
GAMEL(1986, outrunb, outrun, outrun, outrun, segaorun_state,outrunb, ROT0, "bootleg", "Out Run (bootleg)", 0, layout_outrun )
-GAME( 1987, shangon, 0, shangon, shangon, segaorun_state,shangon, ROT0, "Sega", "Super Hang-On (sitdown/upright, unprotected)", 0 )
-GAME( 1987, shangon3, shangon, shangon_fd1089b, shangon, segaorun_state,shangon, ROT0, "Sega", "Super Hang-On (sitdown/upright, FD1089B 317-0034)", 0 )
-GAME( 1987, shangon2, shangon, shangon_fd1089b, shangon, segaorun_state,shangon, ROT0, "Sega", "Super Hang-On (mini ride-on, Rev A, FD1089B 317-0034)", 0 )
-GAME( 1987, shangon1, shangon, shangon_fd1089b, shangon, segaorun_state,shangon, ROT0, "Sega", "Super Hang-On (mini ride-on?, FD1089B 317-0034)", GAME_NOT_WORKING ) // bad program rom
+
+GAME( 1987, shangon, 0, shangon, shangon, segaorun_state,shangon, ROT0, "Sega", "Super Hang-On (sitdown/upright) (unprotected)", 0 )
+GAME( 1987, shangon3, shangon, shangon_fd1089b, shangon, segaorun_state,shangon, ROT0, "Sega", "Super Hang-On (sitdown/upright) (FD1089B 317-0034)", 0 )
+GAME( 1987, shangon2, shangon, shangon_fd1089b, shangon, segaorun_state,shangon, ROT0, "Sega", "Super Hang-On (mini ride-on, Rev A) (FD1089B 317-0034)", 0 )
+GAME( 1987, shangon1, shangon, shangon_fd1089b, shangon, segaorun_state,shangon, ROT0, "Sega", "Super Hang-On (mini ride-on) (FD1089B 317-0034)", 0 )
GAME( 1991, shangonle, shangon, shangon, shangon, segaorun_state,shangon, ROT0, "Sega", "Limited Edition Hang-On", 0 )
-GAMEL(1989, toutrun, 0, outrun_fd1094, toutrun, segaorun_state,outrun, ROT0, "Sega", "Turbo Out Run (Out Run upgrade, FD1094 317-0118)", 0, layout_outrun ) // Cabinet determined by dipswitch settings
-GAMEL(1989, toutrunj, toutrun, outrun_fd1094, toutrun, segaorun_state,outrun, ROT0, "Sega", "Turbo Out Run (Japan, Out Run upgrade, FD1094 317-0117)", 0, layout_outrun ) // Cabinet determined by dipswitch settings
-GAMEL(1989, toutrun3, toutrun, outrun_fd1094, toutrunc, segaorun_state,outrun, ROT0, "Sega", "Turbo Out Run (cockpit, FD1094 317-0107)", 0, layout_outrun )
-GAMEL(1989, toutrun2, toutrun, outrun_fd1094, toutrunct,segaorun_state,outrun, ROT0, "Sega", "Turbo Out Run (cockpit, FD1094 317-0106)", 0, layout_outrun )
-GAMEL(1989, toutrun1, toutrun, outrun_fd1094, toutrunm, segaorun_state,outrun, ROT0, "Sega", "Turbo Out Run (deluxe cockpit, FD1094 317-0109)", 0, layout_outrun )
-GAMEL(1989, toutrunj1, toutrun, outrun_fd1094, toutrunct,segaorun_state,outrun, ROT0, "Sega", "Turbo Out Run (Japan, cockpit, FD1094 317-0101)", 0, layout_outrun )
+
+GAMEL(1989, toutrun, 0, outrun_fd1094, toutrun, segaorun_state,outrun, ROT0, "Sega", "Turbo Out Run (Out Run upgrade) (FD1094 317-0118)", 0, layout_outrun ) // Cabinet determined by dipswitch settings
+GAMEL(1989, toutrunj, toutrun, outrun_fd1094, toutrun, segaorun_state,outrun, ROT0, "Sega", "Turbo Out Run (Japan, Out Run upgrade) (FD1094 317-0117)", 0, layout_outrun ) // Cabinet determined by dipswitch settings
+GAMEL(1989, toutrun3, toutrun, outrun_fd1094, toutrunc, segaorun_state,outrun, ROT0, "Sega", "Turbo Out Run (cockpit) (FD1094 317-0107)", 0, layout_outrun )
+GAMEL(1989, toutrun2, toutrun, outrun_fd1094, toutrunct,segaorun_state,outrun, ROT0, "Sega", "Turbo Out Run (cockpit) (FD1094 317-0106)", 0, layout_outrun )
+GAMEL(1989, toutrun1, toutrun, outrun_fd1094, toutrunm, segaorun_state,outrun, ROT0, "Sega", "Turbo Out Run (deluxe cockpit) (FD1094 317-0109)", 0, layout_outrun )
+GAMEL(1989, toutrunj1, toutrun, outrun_fd1094, toutrunct,segaorun_state,outrun, ROT0, "Sega", "Turbo Out Run (Japan, cockpit) (FD1094 317-0101)", 0, layout_outrun )
+
+// decrypted bootlegs
+GAMEL(1989, toutrund, toutrun, outrun, toutrun, segaorun_state,outrun, ROT0, "bootleg", "Turbo Out Run (Out Run upgrade) (bootleg of FD1094 317-0118 set)", 0, layout_outrun ) // Cabinet determined by dipswitch settings
+GAMEL(1989, toutrunjd, toutrun, outrun, toutrun, segaorun_state,outrun, ROT0, "bootleg", "Turbo Out Run (Japan, Out Run upgrade) (bootleg of FD1094 317-0117 set)", 0, layout_outrun ) // Cabinet determined by dipswitch settings
+GAMEL(1989, toutrun3d, toutrun, outrun, toutrunc, segaorun_state,outrun, ROT0, "bootleg", "Turbo Out Run (cockpit) (bootleg of FD1094 317-0107 set)", 0, layout_outrun )
+GAMEL(1989, toutrunj1d,toutrun, outrun, toutrunct,segaorun_state,outrun, ROT0, "bootleg", "Turbo Out Run (Japan, cockpit) (bootleg of FD1094 317-0101 set)", 0, layout_outrun )
+GAMEL(1989, toutrun2d, toutrun, outrun, toutrunct,segaorun_state,outrun, ROT0, "bootleg", "Turbo Out Run (cockpit) (bootleg of FD1094 317-0106 set)", 0, layout_outrun )
+
+
+GAME( 1987, shangon3d, shangon, shangon, shangon, segaorun_state,shangon, ROT0, "bootleg", "Super Hang-On (sitdown/upright) (bootleg of FD1089B 317-0034 set)", 0 )
diff --git a/src/mess/drivers/segapico.c b/src/mame/drivers/segapico.c
index 8c4c1c5215f..8cf04bc03a5 100644
--- a/src/mess/drivers/segapico.c
+++ b/src/mame/drivers/segapico.c
@@ -119,7 +119,7 @@ C = MB3514 / 9325 M36
#include "emu.h"
#include "includes/md_cons.h"
-#include "sound/upd7759.h"
+#include "sound/315-5641.h"
#define PICO_PENX 1
@@ -130,14 +130,19 @@ class pico_base_state : public md_cons_state
public:
pico_base_state(const machine_config &mconfig, device_type type, const char *tag)
: md_cons_state(mconfig, type, tag),
- m_upd7759(*this, "7759") { }
+ m_sega_315_5641_pcm(*this, "315_5641"),
+ m_io_page(*this, "PAGE"),
+ m_io_pad(*this, "PAD"),
+ m_io_penx(*this, "PENX"),
+ m_io_peny(*this, "PENY")
+ { }
- optional_device<upd7759_device> m_upd7759;
+ optional_device<sega_315_5641_pcm_device> m_sega_315_5641_pcm;
- ioport_port *m_io_page;
- ioport_port *m_io_pad;
- ioport_port *m_io_penx;
- ioport_port *m_io_peny;
+ required_ioport m_io_page;
+ required_ioport m_io_pad;
+ required_ioport m_io_penx;
+ required_ioport m_io_peny;
UINT8 m_page_register;
@@ -171,13 +176,13 @@ UINT16 pico_base_state::pico_read_penpos(int pen)
switch (pen)
{
case PICO_PENX:
- penpos = m_io_penx->read_safe(0);
+ penpos = m_io_penx->read();
penpos |= 0x6;
penpos = penpos * 320 / 255;
penpos += 0x3d;
break;
case PICO_PENY:
- penpos = m_io_peny->read_safe(0);
+ penpos = m_io_peny->read();
penpos |= 0x6;
penpos = penpos * 251 / 255;
penpos += 0x1fc;
@@ -197,7 +202,7 @@ READ16_MEMBER(pico_base_state::pico_68k_io_read )
retdata = m_version_hi_nibble;
break;
case 1:
- retdata = m_io_pad->read_safe(0);
+ retdata = m_io_pad->read();
break;
/*
@@ -230,7 +235,7 @@ READ16_MEMBER(pico_base_state::pico_68k_io_read )
either page 5 or page 6 is often unused.
*/
{
- UINT8 tmp = m_io_page->read_safe(0);
+ UINT8 tmp = m_io_page->read();
if (tmp == 2 && m_page_register != 0x3f)
{
m_page_register <<= 1;
@@ -246,14 +251,18 @@ READ16_MEMBER(pico_base_state::pico_68k_io_read )
case 8: // toy story 2 checks this for 0x3f (is that 'empty'?)
/* Returns free bytes left in the PCM FIFO buffer */
- retdata = 0x3f;
+ retdata = m_sega_315_5641_pcm->get_fifo_space();
break;
case 9:
/*
For reads, if bit 15 is cleared, it means PCM is 'busy' or
something like that, as games sometimes wait for it to become 1.
*/
- return (m_upd7759->busy_r()^1) << 15;
+ // return (m_upd7759->busy_r()^1) << 15;
+ // The BUSY bit stays 1 as long as some PCM sound is playing.
+ // SMPS drivers check 800012 [byte] and clear the "prevent music PCM" byte when the READY bit gets set.
+ // If this is done incorrectly, the voices in Sonic Gameworld (J) are muted by the music's PCM drums.
+ return m_sega_315_5641_pcm->busy_r() << 15;
case 7:
@@ -274,7 +283,7 @@ READ16_MEMBER(pico_base_state::pico_68k_io_read )
WRITE_LINE_MEMBER(pico_base_state::sound_cause_irq)
{
// printf("sound irq\n");
- /* upd7759 callback */
+ /* sega_315_5641_pcm callback */
m_maincpu->set_input_line(3, HOLD_LINE);
}
@@ -284,14 +293,44 @@ WRITE16_MEMBER(pico_base_state::pico_68k_io_write )
switch (offset)
{
+ case 0x10/2:
+ if (mem_mask & 0xFF00)
+ m_sega_315_5641_pcm->port_w(space, 0, (data >> 8) & 0xFF);
+ if (mem_mask & 0x00FF)
+ m_sega_315_5641_pcm->port_w(space, 0, (data >> 0) & 0xFF);
+ break;
case 0x12/2: // guess
- m_upd7759->reset_w(0);
- m_upd7759->start_w(0);
- m_upd7759->reset_w(1);
- m_upd7759->start_w(1);
+ // Note about uPD7759 lines:
+ // reset line: 1 - normal, 1->0 - reset chip, 0 - playback disabled
+ // start line: 0->1 - start playback
+ if (mem_mask & 0xFF00)
+ {
+ // I assume that:
+ // value 8000 resets the FIFO? (always used with low reset line)
+ // value 0800 maps to the uPD7759's reset line (0 = reset, 1 = normal)
+ // value 4000 maps to the uPD7759's start line (0->1 = start)
+ m_sega_315_5641_pcm->reset_w((data >> 8) & 0x08);
+ m_sega_315_5641_pcm->start_w((data >> 8) & 0x40);
+ if (data & 0x4000)
+ {
+ // Somewhere between "Reset Off" and the first sample data,
+ // we need to send a few commands to make the sample stream work.
+ // Doing that when rising the "start" line seems to work fine.
+ m_sega_315_5641_pcm->port_w(space, 0, 0xFF); // "Last Sample" value (must be >= 0x10)
+ m_sega_315_5641_pcm->port_w(space, 0, 0x00); // Dummy 1
+ m_sega_315_5641_pcm->port_w(space, 0, 0x00); // Addr MSB
+ m_sega_315_5641_pcm->port_w(space, 0, 0x00); // Addr LSB
+ }
+ }
- if (mem_mask&0x00ff) m_upd7759->port_w(space,0,data&0xff);
- if (mem_mask&0xff00) m_upd7759->port_w(space,0,(data>>8)&0xff);
+
+ /*m_sega_315_5641_pcm->reset_w(0);
+ m_sega_315_5641_pcm->start_w(0);
+ m_sega_315_5641_pcm->reset_w(1);
+ m_sega_315_5641_pcm->start_w(1);
+
+ if (mem_mask&0x00ff) m_sega_315_5641_pcm->port_w(space,0,data&0xff);
+ if (mem_mask&0xff00) m_sega_315_5641_pcm->port_w(space,0,(data>>8)&0xff);*/
break;
}
@@ -336,11 +375,6 @@ SLOT_INTERFACE_END
MACHINE_START_MEMBER(pico_state,pico)
{
- m_io_page = ioport("PAGE");
- m_io_pad = ioport("PAD");
- m_io_penx = ioport("PENX");
- m_io_peny = ioport("PENY");
-
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7fffff, read16_delegate(FUNC(base_md_cart_slot_device::read),(base_md_cart_slot_device*)m_picocart), write16_delegate(FUNC(base_md_cart_slot_device::write),(base_md_cart_slot_device*)m_picocart));
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa13000, 0xa130ff, read16_delegate(FUNC(base_md_cart_slot_device::read_a13),(base_md_cart_slot_device*)m_picocart), write16_delegate(FUNC(base_md_cart_slot_device::write_a13),(base_md_cart_slot_device*)m_picocart));
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa15000, 0xa150ff, read16_delegate(FUNC(base_md_cart_slot_device::read_a15),(base_md_cart_slot_device*)m_picocart), write16_delegate(FUNC(base_md_cart_slot_device::write_a15),(base_md_cart_slot_device*)m_picocart));
@@ -356,6 +390,7 @@ static MACHINE_CONFIG_START( pico, pico_state )
MCFG_CPU_PROGRAM_MAP(pico_mem)
MCFG_DEVICE_REMOVE("genesis_snd_z80")
+ MCFG_DEVICE_REMOVE("ymsnd")
MCFG_MACHINE_START_OVERRIDE( pico_state, pico )
MCFG_MACHINE_RESET_OVERRIDE( pico_base_state, ms_megadriv )
@@ -363,10 +398,10 @@ static MACHINE_CONFIG_START( pico, pico_state )
MCFG_PICO_CARTRIDGE_ADD("picoslot", pico_cart, NULL)
MCFG_SOFTWARE_LIST_ADD("cart_list","pico")
- MCFG_SOUND_ADD("7759", UPD7759, UPD7759_STANDARD_CLOCK)
+ MCFG_SOUND_ADD("315_5641", SEGA_315_5641_PCM, UPD7759_STANDARD_CLOCK*2)
MCFG_UPD7759_DRQ_CALLBACK(WRITELINE(pico_state,sound_cause_irq))
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.48)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.48)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.16)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.16)
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( picopal, pico_state )
@@ -376,6 +411,7 @@ static MACHINE_CONFIG_START( picopal, pico_state )
MCFG_CPU_PROGRAM_MAP(pico_mem)
MCFG_DEVICE_REMOVE("genesis_snd_z80")
+ MCFG_DEVICE_REMOVE("ymsnd")
MCFG_MACHINE_START_OVERRIDE( pico_state, pico )
MCFG_MACHINE_RESET_OVERRIDE( pico_base_state, ms_megadriv )
@@ -383,10 +419,10 @@ static MACHINE_CONFIG_START( picopal, pico_state )
MCFG_PICO_CARTRIDGE_ADD("picoslot", pico_cart, NULL)
MCFG_SOFTWARE_LIST_ADD("cart_list","pico")
- MCFG_SOUND_ADD("7759", UPD7759, UPD7759_STANDARD_CLOCK)
+ MCFG_SOUND_ADD("315_5641", SEGA_315_5641_PCM, UPD7759_STANDARD_CLOCK*2)
MCFG_UPD7759_DRQ_CALLBACK(WRITELINE(pico_state,sound_cause_irq))
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.48)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.48)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.16)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.16)
MACHINE_CONFIG_END
@@ -432,9 +468,9 @@ DRIVER_INIT_MEMBER(pico_base_state, picoj)
}
-CONS( 1994, pico, 0, 0, picopal, pico, pico_base_state, pico, "Sega", "Pico (Europe, PAL)", GAME_NOT_WORKING)
-CONS( 1994, picou, pico, 0, pico, pico, pico_base_state, picou, "Sega", "Pico (USA, NTSC)", GAME_NOT_WORKING)
-CONS( 1993, picoj, pico, 0, pico, pico, pico_base_state, picoj, "Sega", "Pico (Japan, NTSC)", GAME_NOT_WORKING)
+CONS( 1994, pico, 0, 0, picopal, pico, pico_base_state, pico, "Sega", "Pico (Europe, PAL)", MACHINE_NOT_WORKING)
+CONS( 1994, picou, pico, 0, pico, pico, pico_base_state, picou, "Sega", "Pico (USA, NTSC)", MACHINE_NOT_WORKING)
+CONS( 1993, picoj, pico, 0, pico, pico, pico_base_state, picoj, "Sega", "Pico (Japan, NTSC)", MACHINE_NOT_WORKING)
/*
@@ -547,20 +583,15 @@ SLOT_INTERFACE_END
MACHINE_START_MEMBER(copera_state,copera)
{
- m_io_page = ioport("PAGE");
- m_io_pad = ioport("PAD");
- m_io_penx = ioport("PENX");
- m_io_peny = ioport("PENY");
-
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7fffff, read16_delegate(FUNC(base_md_cart_slot_device::read),(base_md_cart_slot_device*)m_picocart), write16_delegate(FUNC(base_md_cart_slot_device::write),(base_md_cart_slot_device*)m_picocart));
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa13000, 0xa130ff, read16_delegate(FUNC(base_md_cart_slot_device::read_a13),(base_md_cart_slot_device*)m_picocart), write16_delegate(FUNC(base_md_cart_slot_device::write_a13),(base_md_cart_slot_device*)m_picocart));
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa15000, 0xa150ff, read16_delegate(FUNC(base_md_cart_slot_device::read_a15),(base_md_cart_slot_device*)m_picocart), write16_delegate(FUNC(base_md_cart_slot_device::write_a15),(base_md_cart_slot_device*)m_picocart));
m_maincpu->space(AS_PROGRAM).install_write_handler(0xa14000, 0xa14003, write16_delegate(FUNC(base_md_cart_slot_device::write_tmss_bank),(base_md_cart_slot_device*)m_picocart));
- m_upd7759->reset_w(0);
- m_upd7759->start_w(0);
- m_upd7759->reset_w(1);
- m_upd7759->start_w(1);
+ m_sega_315_5641_pcm->reset_w(0);
+ m_sega_315_5641_pcm->start_w(0);
+ m_sega_315_5641_pcm->reset_w(1);
+ m_sega_315_5641_pcm->start_w(1);
}
@@ -571,6 +602,7 @@ static MACHINE_CONFIG_START( copera, copera_state )
MCFG_CPU_PROGRAM_MAP(copera_mem)
MCFG_DEVICE_REMOVE("genesis_snd_z80")
+ MCFG_DEVICE_REMOVE("ymsnd")
MCFG_MACHINE_START_OVERRIDE( copera_state, copera )
MCFG_MACHINE_RESET_OVERRIDE( pico_base_state, ms_megadriv )
@@ -578,10 +610,10 @@ static MACHINE_CONFIG_START( copera, copera_state )
MCFG_COPERA_CARTRIDGE_ADD("coperaslot", copera_cart, NULL)
MCFG_SOFTWARE_LIST_ADD("cart_list","copera")
- MCFG_SOUND_ADD("7759", UPD7759, UPD7759_STANDARD_CLOCK)
+ MCFG_SOUND_ADD("315_5641", SEGA_315_5641_PCM, UPD7759_STANDARD_CLOCK)
MCFG_UPD7759_DRQ_CALLBACK(WRITELINE(copera_state,sound_cause_irq))
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.48)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.48)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.16)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.16)
MACHINE_CONFIG_END
@@ -591,4 +623,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", GAME_NOT_WORKING)
+CONS( 1993, copera, 0, 0, copera, pico, pico_base_state, picoj, "Yamaha / Sega", "Yamaha Mixt Book Player Copera", MACHINE_NOT_WORKING)
diff --git a/src/mame/drivers/segapm.c b/src/mame/drivers/segapm.c
new file mode 100644
index 00000000000..34d7488e8b3
--- /dev/null
+++ b/src/mame/drivers/segapm.c
@@ -0,0 +1,80 @@
+/* Sega Picture Magic (codename JANUS) */
+// http://segaretro.org/Sega_Picture_Magic
+
+// this uses a Sega 32X PCB (not in a 32X case) attached to a stripped down 68k based board rather than a full Genesis / Megadrive
+// it is likely the internal SH2 bios roms differ
+
+
+#include "emu.h"
+#include "cpu/m68000/m68000.h"
+
+
+class segapm_state : public driver_device
+{
+public:
+ segapm_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu")
+ { }
+
+ virtual void video_start();
+ UINT32 screen_update_segapm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ required_device<cpu_device> m_maincpu;
+};
+
+
+void segapm_state::video_start()
+{
+}
+
+UINT32 segapm_state::screen_update_segapm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+{
+ return 0;
+}
+
+
+
+static ADDRESS_MAP_START( segapm_map, AS_PROGRAM, 16, segapm_state )
+ AM_RANGE(0x000000, 0x07ffff) AM_ROM
+
+ // A15100
+
+ AM_RANGE(0xe00000, 0xe7ffff) AM_RAM
+
+ADDRESS_MAP_END
+
+static INPUT_PORTS_START( segapm )
+INPUT_PORTS_END
+
+
+
+
+static MACHINE_CONFIG_START( segapm, segapm_state )
+
+ MCFG_CPU_ADD("maincpu", M68000, 8000000) // ??
+ MCFG_CPU_PROGRAM_MAP(segapm_map)
+
+ // + 2 sh2s on 32x board
+
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
+ MCFG_SCREEN_SIZE(32*8, 32*8)
+ MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
+ MCFG_SCREEN_UPDATE_DRIVER(segapm_state, screen_update_segapm)
+ MCFG_SCREEN_PALETTE("palette")
+
+ MCFG_PALETTE_ADD("palette", 0x200)
+ MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
+MACHINE_CONFIG_END
+
+
+
+ROM_START( segapm ) // was more than one cartridge available? if so softlist them?
+ ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 Code */
+ ROM_LOAD( "picture magic boot cart (j) [!].bin", 0x00000, 0x80000, CRC(c9ab4e60) SHA1(9c4d4ab3e59c8acde86049a1ba3787aa03b549a3) ) // internal header is GOUSEI HENSYUU
+
+ // todo, sh2 bios roms etc.
+ROM_END
+
+GAME( 1996, segapm, 0, segapm, segapm, driver_device, 0, ROT0, "Sega", "Picture Magic", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/segas16a.c b/src/mame/drivers/segas16a.c
index 6313f3dee38..95bafa9e7c8 100644
--- a/src/mame/drivers/segas16a.c
+++ b/src/mame/drivers/segas16a.c
@@ -961,7 +961,9 @@ static ADDRESS_MAP_START( system16a_map, AS_PROGRAM, 16, segas16a_state )
AM_RANGE(0xc70000, 0xc73fff) AM_MIRROR(0x38c000) AM_RAM AM_SHARE("nvram")
ADDRESS_MAP_END
-
+static ADDRESS_MAP_START( decrypted_opcodes_map, AS_DECRYPTED_OPCODES, 16, segas16a_state )
+ AM_RANGE(0x00000, 0xfffff) AM_ROMBANK("fd1094_decrypted_opcodes")
+ADDRESS_MAP_END
//**************************************************************************
// SOUND CPU ADDRESS MAPS
@@ -1946,6 +1948,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( system16a_fd1094, system16a )
MCFG_CPU_REPLACE("maincpu", FD1094, 10000000)
MCFG_CPU_PROGRAM_MAP(system16a_map)
+ MCFG_CPU_DECRYPTED_OPCODES_MAP(decrypted_opcodes_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", segas16a_state, irq4_line_hold)
MACHINE_CONFIG_END
@@ -3125,6 +3128,46 @@ ROM_START( shinobi1 )
ROM_LOAD( "epr-11268.1", 0x0000, 0x8000, CRC(6d7966da) SHA1(90f55a99f784c21d7c135e630f4e8b1d4d043d66) )
ROM_END
+ROM_START( shinobi1d )
+ ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-11262.42", 0x000000, 0x10000, CRC(9a54a498) SHA1(34413767d09178f715be4147dfe48e3b1ef95021) )
+ ROM_LOAD16_BYTE( "bootleg_epr-11260.27", 0x000001, 0x10000, CRC(8f571c5f) SHA1(6264fad35ca7e6ae38a0a4c49a7aba16ddb8a0e2) )
+ ROM_LOAD16_BYTE( "epr-11263.43", 0x020000, 0x10000, CRC(a2a620bd) SHA1(f8b135ce14d6c5eac5e40ddfd5ad2f1e6f2bc7a6) )
+ ROM_LOAD16_BYTE( "epr-11261.25", 0x020001, 0x10000, CRC(a3ceda52) SHA1(97a1c52a162fb1d43b3f8f16613b70ce582a8d26) )
+
+ ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-11264.95", 0x00000, 0x10000, CRC(46627e7d) SHA1(66bb5b22a2100e7b9df303007a837bc2d52cf7ba) )
+ ROM_LOAD( "epr-11265.94", 0x10000, 0x10000, CRC(87d0f321) SHA1(885b38eaff2dcaeab4eeaa20cc8a2885d520abd6) )
+ ROM_LOAD( "epr-11266.93", 0x20000, 0x10000, CRC(efb4af87) SHA1(0b8a905023e1bc808fd2b1c3cfa3778cde79e659) )
+
+ ROM_REGION16_BE( 0x080000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "epr-11290.10", 0x00001, 0x08000, CRC(611f413a) SHA1(180f83216e2dfbfd77b0fb3be83c3042954d12df) )
+ ROM_CONTINUE( 0x40001, 0x08000 )
+ ROM_LOAD16_BYTE( "epr-11294.11", 0x00000, 0x08000, CRC(5eb00fc1) SHA1(97e02eee74f61fabcad2a9e24f1868cafaac1d51) )
+ ROM_CONTINUE( 0x40000, 0x08000 )
+ ROM_LOAD16_BYTE( "epr-11291.17", 0x10001, 0x08000, CRC(3c0797c0) SHA1(df18c7987281bd9379026c6cf7f96f6ae49fd7f9) )
+ ROM_CONTINUE( 0x50001, 0x08000 )
+ ROM_LOAD16_BYTE( "epr-11295.18", 0x10000, 0x08000, CRC(25307ef8) SHA1(91ffbe436f80d583524ee113a8b7c0cf5d8ab286) )
+ ROM_CONTINUE( 0x50000, 0x08000 )
+ ROM_LOAD16_BYTE( "epr-11292.23", 0x20001, 0x08000, CRC(c29ac34e) SHA1(b5e9b8c3233a7d6797f91531a0d9123febcf1660) )
+ ROM_CONTINUE( 0x60001, 0x08000 )
+ ROM_LOAD16_BYTE( "epr-11296.24", 0x20000, 0x08000, CRC(04a437f8) SHA1(ea5fed64443236e3404fab243761e60e2e48c84c) )
+ ROM_CONTINUE( 0x60000, 0x08000 )
+ ROM_LOAD16_BYTE( "epr-11293.29", 0x30001, 0x08000, CRC(41f41063) SHA1(5cc461e9738dddf9eea06831fce3702d94674163) )
+ ROM_CONTINUE( 0x70001, 0x08000 )
+ ROM_LOAD16_BYTE( "epr-11297.30", 0x30000, 0x08000, CRC(b6e1fd72) SHA1(eb86e4bf880bd1a1d9bcab3f2f2e917bcaa06172) )
+ ROM_CONTINUE( 0x70000, 0x08000 )
+
+ ROM_REGION( 0x20000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-11267.12", 0x0000, 0x8000, CRC(dd50b745) SHA1(52e1977569d3713ad864d607170c9a61cd059a65) )
+
+ ROM_REGION( 0x1000, "n7751", 0 ) // 4k for 7751 onboard ROM
+ ROM_LOAD( "7751.bin", 0x0000, 0x0400, CRC(6a9534fc) SHA1(67ad94674db5c2aab75785668f610f6f4eccd158) ) // 7751 - U34
+
+ ROM_REGION( 0x08000, "n7751data", 0 ) // 7751 sound data
+ ROM_LOAD( "epr-11268.1", 0x0000, 0x8000, CRC(6d7966da) SHA1(90f55a99f784c21d7c135e630f4e8b1d4d043d66) )
+ROM_END
+
//*************************************************************************************************************************
//*************************************************************************************************************************
@@ -3246,6 +3289,25 @@ ROM_START( tetris )
ROM_LOAD( "epr-12205.rom", 0x0000, 0x8000, CRC(6695dc99) SHA1(08123aa24c302bc9243329384bd9c2545a4d50c3) )
ROM_END
+ROM_START( tetrisd )
+ ROM_REGION( 0x40000, "maincpu", ROMREGION_ERASEFF ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-12201.rom", 0x000000, 0x8000, CRC(0b694740) SHA1(c480e14c36f063851732d0a5985a6c744fa96062) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12200.rom", 0x000001, 0x8000, CRC(343c0670) SHA1(cc0b7eeea411d533e973e71fe3121285e24869b0) )
+
+ ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-12202.rom", 0x00000, 0x10000, CRC(2f7da741) SHA1(51a685673b4a57a13818eca65d122230f20bd9a0) )
+ ROM_LOAD( "epr-12203.rom", 0x10000, 0x10000, CRC(a6e58ec5) SHA1(5a6c43c989768270e0ab61cfaa5ef86d4607fe20) )
+ ROM_LOAD( "epr-12204.rom", 0x20000, 0x10000, CRC(0ae98e23) SHA1(f067b81b85f9e03a6373c7c53ff52d5395b8a985) )
+
+ ROM_REGION16_BE( 0x10000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "epr-12169.b1", 0x00001, 0x8000, CRC(dacc6165) SHA1(87b1a7643e3630ff73b2b117752496e1ea5da23d) )
+ ROM_LOAD16_BYTE( "epr-12170.b5", 0x00000, 0x8000, CRC(87354e42) SHA1(e7fd55aee59b51d82cb9b619fbb815ad6839560c) )
+
+ ROM_REGION( 0x40000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-12205.rom", 0x0000, 0x8000, CRC(6695dc99) SHA1(08123aa24c302bc9243329384bd9c2545a4d50c3) )
+ROM_END
+
+
//*************************************************************************************************************************
// Tetris, Sega System 16A
// CPU: FD1094 (317-0093a)
@@ -3271,6 +3333,23 @@ ROM_START( tetris3 )
ROM_LOAD( "epr-12205.rom", 0x0000, 0x8000, CRC(6695dc99) SHA1(08123aa24c302bc9243329384bd9c2545a4d50c3) )
ROM_END
+ROM_START( tetris3d )
+ ROM_REGION( 0x40000, "maincpu", ROMREGION_ERASEFF ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-12201a.43", 0x000000, 0x8000, CRC(1d88bd84) SHA1(ddb05a131dea2df70abe197675175c231eb35b03) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12200a.26", 0x000001, 0x8000, CRC(1ba35f78) SHA1(2405597ad169d1cd0ef06e9c2c28e63e18e1f1b7) )
+
+ ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-12202.rom", 0x00000, 0x10000, CRC(2f7da741) SHA1(51a685673b4a57a13818eca65d122230f20bd9a0) )
+ ROM_LOAD( "epr-12203.rom", 0x10000, 0x10000, CRC(a6e58ec5) SHA1(5a6c43c989768270e0ab61cfaa5ef86d4607fe20) )
+ ROM_LOAD( "epr-12204.rom", 0x20000, 0x10000, CRC(0ae98e23) SHA1(f067b81b85f9e03a6373c7c53ff52d5395b8a985) )
+
+ ROM_REGION16_BE( 0x10000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "epr-12169.b1", 0x00001, 0x8000, CRC(dacc6165) SHA1(87b1a7643e3630ff73b2b117752496e1ea5da23d) )
+ ROM_LOAD16_BYTE( "epr-12170.b5", 0x00000, 0x8000, CRC(87354e42) SHA1(e7fd55aee59b51d82cb9b619fbb815ad6839560c) )
+
+ ROM_REGION( 0x40000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-12205.rom", 0x0000, 0x8000, CRC(6695dc99) SHA1(08123aa24c302bc9243329384bd9c2545a4d50c3) )
+ROM_END
//*************************************************************************************************************************
//*************************************************************************************************************************
@@ -3403,6 +3482,40 @@ ROM_START( wb31 )
ROM_LOAD( "epr-12089.bin", 0x0000, 0x8000, CRC(8321eb0b) SHA1(61cf95833c0aa38e35fc18db39d4ec74e4aaf01e) )
ROM_END
+ROM_START( wb31d )
+ ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr12084.bin", 0x000000, 0x10000, CRC(0cfe1b00) SHA1(b4e50bb0d677647a71c1d3adac9f955774e3fa0e) )
+ ROM_LOAD16_BYTE( "bootleg_epr12082.bin", 0x000001, 0x10000, CRC(9e324162) SHA1(49cbec212bec832722b4816e2186e6cb1c204b0e) )
+ ROM_LOAD16_BYTE( "epr-12085.bin", 0x020000, 0x10000, CRC(0962098b) SHA1(150fc439dd5e773bef706f058abdb4d2ec44e355) )
+ ROM_LOAD16_BYTE( "epr-12083.bin", 0x020001, 0x10000, CRC(3d631a8e) SHA1(4940ff6cf380fb914876ade39ea37f42b79bf11d) )
+
+ ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-12086.bin", 0x00000, 0x10000, CRC(45b949df) SHA1(84390d16da00b775988e5f6c20950cb2304b1a74) )
+ ROM_LOAD( "epr-12087.bin", 0x10000, 0x10000, CRC(6f0396b7) SHA1(0a340f2b58e5ecfe504197a8fd2111181e868a3e) )
+ ROM_LOAD( "epr-12088.bin", 0x20000, 0x10000, CRC(ba8c0749) SHA1(7d996c7a1ad249c06ef7ec9c87a83710c98005d3) )
+
+ ROM_REGION16_BE( 0x80000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "epr-12090.b1", 0x00001, 0x008000, CRC(aeeecfca) SHA1(496124b170a725ad863c741d4e021ab947511e4c) )
+ ROM_CONTINUE( 0x40001, 0x008000 )
+ ROM_LOAD16_BYTE( "epr-12094.b5", 0x00000, 0x008000, CRC(615e4927) SHA1(d23f164973afa770714e284a77ddf10f18cc596b) )
+ ROM_CONTINUE( 0x40000, 0x008000 )
+ ROM_LOAD16_BYTE( "epr-12091.b2", 0x10001, 0x008000, CRC(8409a243) SHA1(bcbb9510a6499d8147543d6befa5a49f4ac055d9) )
+ ROM_CONTINUE( 0x50001, 0x008000 )
+ ROM_LOAD16_BYTE( "epr-12095.b6", 0x10000, 0x008000, CRC(e774ec2c) SHA1(a4aa15ec7be5539a740ad02ff720458018dbc536) )
+ ROM_CONTINUE( 0x50000, 0x008000 )
+ ROM_LOAD16_BYTE( "epr-12092.b3", 0x20001, 0x008000, CRC(5c2f0d90) SHA1(e0fbc0f841e4607ad232931368b16e81440a75c4) )
+ ROM_CONTINUE( 0x60001, 0x008000 )
+ ROM_LOAD16_BYTE( "epr-12096.b7", 0x20000, 0x008000, CRC(0cd59d6e) SHA1(caf754a461feffafcfe7bfc6e89da76c4db257c5) )
+ ROM_CONTINUE( 0x60000, 0x008000 )
+ ROM_LOAD16_BYTE( "epr-12093.b4", 0x30001, 0x008000, CRC(4891e7bb) SHA1(1be04fcabe9bfa8cf746263a5bcca67902a021a0) )
+ ROM_CONTINUE( 0x70001, 0x008000 )
+ ROM_LOAD16_BYTE( "epr-12097.b8", 0x30000, 0x008000, CRC(e645902c) SHA1(497cfcf6c25cc2e042e16dbcb1963d2223def15a) )
+ ROM_CONTINUE( 0x70000, 0x008000 )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-12089.bin", 0x0000, 0x8000, CRC(8321eb0b) SHA1(61cf95833c0aa38e35fc18db39d4ec74e4aaf01e) )
+ROM_END
+
//*************************************************************************************************************************
// Wonder Boy III, Sega System 16A
// CPU: FD1089A (317-0086)
@@ -3444,6 +3557,39 @@ ROM_START( wb35 )
ROM_LOAD( "317-0086.key", 0x0000, 0x2000, BAD_DUMP CRC(ec480b80) SHA1(f0b1244ba290a59aa95f2f0262802487a505755c) )
ROM_END
+ROM_START( wb35d )
+ ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-12120.43", 0x000000, 0x10000, CRC(47e62031) SHA1(842e7aac5d2ed2b38c68e70b65494b6511900ee0) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12118.26", 0x000001, 0x10000, CRC(d2f74be8) SHA1(83414365b921b617406535f387e6722c14ad8e09) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12121.42", 0x020000, 0x10000, CRC(0962098b) SHA1(150fc439dd5e773bef706f058abdb4d2ec44e355) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12119.25", 0x020001, 0x10000, CRC(3d631a8e) SHA1(4940ff6cf380fb914876ade39ea37f42b79bf11d) )
+
+ ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-12086.95", 0x00000, 0x10000, CRC(45b949df) SHA1(84390d16da00b775988e5f6c20950cb2304b1a74) )
+ ROM_LOAD( "epr-12087.94", 0x10000, 0x10000, CRC(6f0396b7) SHA1(0a340f2b58e5ecfe504197a8fd2111181e868a3e) )
+ ROM_LOAD( "epr-12088.83", 0x20000, 0x10000, CRC(ba8c0749) SHA1(7d996c7a1ad249c06ef7ec9c87a83710c98005d3) )
+
+ ROM_REGION16_BE( 0x80000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "epr-12090.10", 0x00001, 0x008000, CRC(aeeecfca) SHA1(496124b170a725ad863c741d4e021ab947511e4c) )
+ ROM_CONTINUE( 0x40001, 0x008000 )
+ ROM_LOAD16_BYTE( "epr-12094.11", 0x00000, 0x008000, CRC(615e4927) SHA1(d23f164973afa770714e284a77ddf10f18cc596b) )
+ ROM_CONTINUE( 0x40000, 0x008000 )
+ ROM_LOAD16_BYTE( "epr-12091.17", 0x10001, 0x008000, CRC(8409a243) SHA1(bcbb9510a6499d8147543d6befa5a49f4ac055d9) )
+ ROM_CONTINUE( 0x50001, 0x008000 )
+ ROM_LOAD16_BYTE( "epr-12095.18", 0x10000, 0x008000, CRC(e774ec2c) SHA1(a4aa15ec7be5539a740ad02ff720458018dbc536) )
+ ROM_CONTINUE( 0x50000, 0x008000 )
+ ROM_LOAD16_BYTE( "epr-12092.23", 0x20001, 0x008000, CRC(5c2f0d90) SHA1(e0fbc0f841e4607ad232931368b16e81440a75c4) )
+ ROM_CONTINUE( 0x60001, 0x008000 )
+ ROM_LOAD16_BYTE( "epr-12096.24", 0x20000, 0x008000, CRC(0cd59d6e) SHA1(caf754a461feffafcfe7bfc6e89da76c4db257c5) )
+ ROM_CONTINUE( 0x60000, 0x008000 )
+ ROM_LOAD16_BYTE( "epr-12093.29", 0x30001, 0x008000, CRC(4891e7bb) SHA1(1be04fcabe9bfa8cf746263a5bcca67902a021a0) )
+ ROM_CONTINUE( 0x70001, 0x008000 )
+ ROM_LOAD16_BYTE( "epr-12097.30", 0x30000, 0x008000, CRC(e645902c) SHA1(497cfcf6c25cc2e042e16dbcb1963d2223def15a) )
+ ROM_CONTINUE( 0x70000, 0x008000 )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-12089.12", 0x0000, 0x8000, CRC(8321eb0b) SHA1(61cf95833c0aa38e35fc18db39d4ec74e4aaf01e) )
+ROM_END
//**************************************************************************
@@ -3588,36 +3734,57 @@ DRIVER_INIT_MEMBER(segas16a_state,sjryukoa)
// YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR,COMPANY,FULLNAME,FLAGS
// "Pre-System 16"
-GAME( 1986, bodyslam, 0, system16a_i8751, bodyslam, segas16a_state,generic, ROT0, "Sega", "Body Slam (8751 317-0015)", GAME_SUPPORTS_SAVE )
-GAME( 1986, dumpmtmt, bodyslam, system16a_i8751, bodyslam, segas16a_state,dumpmtmt, ROT0, "Sega", "Dump Matsumoto (Japan, 8751 317-0011a)", GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE )
-GAME( 1985, mjleague, 0, system16a, mjleague, segas16a_state,mjleague, ROT270, "Sega", "Major League", GAME_SUPPORTS_SAVE )
-GAME( 1986, quartet, 0, system16a_i8751, quartet, segas16a_state,quartet, ROT0, "Sega", "Quartet (Rev A, 8751 315-5194)", GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE )
-GAME( 1986, quarteta, quartet, system16a_i8751, quartet, segas16a_state,quartet, ROT0, "Sega", "Quartet (8751 315-5194)", GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE )
-GAME( 1986, quartet2, quartet, system16a_i8751, quart2, segas16a_state,generic, ROT0, "Sega", "Quartet 2 (8751 317-0010)", GAME_SUPPORTS_SAVE )
-GAME( 1986, quartet2a, quartet, system16a, quart2, segas16a_state,generic, ROT0, "Sega", "Quartet 2 (unprotected)", GAME_SUPPORTS_SAVE )
+GAME( 1986, bodyslam, 0, system16a_i8751, bodyslam, segas16a_state,generic, ROT0, "Sega", "Body Slam (8751 317-0015)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, dumpmtmt, bodyslam, system16a_i8751, bodyslam, segas16a_state,dumpmtmt, ROT0, "Sega", "Dump Matsumoto (Japan, 8751 317-0011a)", MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+
+GAME( 1985, mjleague, 0, system16a, mjleague, segas16a_state,mjleague, ROT270, "Sega", "Major League", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1986, quartet, 0, system16a_i8751, quartet, segas16a_state,quartet, ROT0, "Sega", "Quartet (Rev A, 8751 315-5194)", MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+
+GAME( 1986, quarteta, quartet, system16a_i8751, quartet, segas16a_state,quartet, ROT0, "Sega", "Quartet (8751 315-5194)", MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1986, quartet2, quartet, system16a_i8751, quart2, segas16a_state,generic, ROT0, "Sega", "Quartet 2 (8751 317-0010)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, quartet2a, quartet, system16a, quart2, segas16a_state,generic, ROT0, "Sega", "Quartet 2 (unprotected)", MACHINE_SUPPORTS_SAVE )
// System 16A
-GAME( 1987, aliensyn5, aliensyn, system16a_fd1089b, aliensyn, segas16a_state,generic, ROT0, "Sega", "Alien Syndrome (set 5, System 16A, FD1089B 317-0037)", GAME_SUPPORTS_SAVE )
-GAME( 1987, aliensyn2, aliensyn, system16a_fd1089a, aliensyn, segas16a_state,generic, ROT0, "Sega", "Alien Syndrome (set 2, System 16A, FD1089A 317-0033)", GAME_SUPPORTS_SAVE )
-GAME( 1987, aliensynjo, aliensyn, system16a_fd1089a, aliensynj, segas16a_state,generic, ROT0, "Sega", "Alien Syndrome (set 1, Japan, old, System 16A, FD1089A 317-0033)", GAME_SUPPORTS_SAVE )
-GAME( 1988, aceattaca, aceattac, system16a_fd1094, aceattaca, segas16a_state,aceattaca, ROT270, "Sega", "Ace Attacker (Japan, System 16A, FD1094 317-0060)", GAME_SUPPORTS_SAVE )
-GAME( 1986, afighter, 0, system16a_fd1089a_no7751, afighter, segas16a_state,generic, ROT270, "Sega", "Action Fighter (FD1089A 317-0018)", GAME_SUPPORTS_SAVE )
-GAME( 1986, alexkidd, 0, system16a, alexkidd, segas16a_state,generic, ROT0, "Sega", "Alex Kidd: The Lost Stars (set 2, unprotected)", GAME_SUPPORTS_SAVE )
-GAME( 1986, alexkidd1, alexkidd, system16a_fd1089a, alexkidd, segas16a_state,generic, ROT0, "Sega", "Alex Kidd: The Lost Stars (set 1, FD1089A 317-0021)", GAME_SUPPORTS_SAVE )
-GAME( 1986, fantzone, 0, system16a_no7751, fantzone, segas16a_state,generic, ROT0, "Sega", "Fantasy Zone (Rev A, unprotected)", GAME_SUPPORTS_SAVE )
-GAME( 1986, fantzone1, fantzone, system16a_no7751, fantzone, segas16a_state,generic, ROT0, "Sega", "Fantasy Zone (unprotected)", GAME_SUPPORTS_SAVE )
-GAME( 1986, fantzonep, fantzone, system16a_no7751p, fantzone, segas16a_state,fantzonep, ROT0, "Sega", "Fantasy Zone (317-5000)", GAME_SUPPORTS_SAVE )
-GAME( 1986, fantzonepr, fantzone, system16a_no7751, fantzone, segas16a_state,generic, ROT0, "Sega", "Fantasy Zone (prototype)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) // bad / missing gfx roms
-GAME( 1988, passsht16a, passsht, system16a_fd1094, passsht16a, segas16a_state,passsht16a, ROT270, "Sega", "Passing Shot (Japan, 4 Players, System 16A, FD1094 317-0071)", GAME_SUPPORTS_SAVE )
-GAME( 1987, sdi, 0, system16a_fd1089b_no7751, sdi, segas16a_state,sdi, ROT0, "Sega", "SDI - Strategic Defense Initiative (Japan, newer, System 16A, FD1089B 317-0027)", GAME_SUPPORTS_SAVE )
-GAME( 1987, sdia, sdi, system16a_fd1089b_no7751, sdi, segas16a_state,sdi, ROT0, "Sega", "SDI - Strategic Defense Initiative (Japan, old, System 16A, FD1089B 317-0027)", GAME_SUPPORTS_SAVE )
-GAME( 1987, shinobi, 0, system16a, shinobi, segas16a_state,generic, ROT0, "Sega", "Shinobi (set 6, System 16A, unprotected)", GAME_SUPPORTS_SAVE )
-GAME( 1987, shinobi1, shinobi, system16a_fd1094, shinobi, segas16a_state,generic, ROT0, "Sega", "Shinobi (set 1, System 16A, FD1094 317-0050)", GAME_SUPPORTS_SAVE )
-GAME( 1987, shinobls, shinobi, system16a, shinobi, segas16a_state,generic, ROT0, "bootleg (Star)", "Shinobi (Star bootleg, System 16A)", GAME_SUPPORTS_SAVE )
-GAME( 1987, shinoblb, shinobi, system16a, shinobi, segas16a_state,generic, ROT0, "bootleg (Beta)", "Shinobi (Beta bootleg)", GAME_SUPPORTS_SAVE ) // should have different sound hw? using original ATM
-GAME( 1987, sjryuko1, sjryuko, system16a_fd1089b, sjryuko, segas16a_state,sjryukoa, ROT0, "White Board", "Sukeban Jansi Ryuko (set 1, System 16A, FD1089B 317-5021)", GAME_SUPPORTS_SAVE )
-GAME( 1988, tetris, 0, system16a_fd1094_no7751, tetris, segas16a_state,generic, ROT0, "Sega", "Tetris (set 4, Japan, System 16A, FD1094 317-0093)", GAME_SUPPORTS_SAVE )
-GAME( 1988, tetris3, tetris, system16a_fd1094_no7751, tetris, segas16a_state,generic, ROT0, "Sega", "Tetris (set 3, Japan, System 16A, FD1094 317-0093a)", GAME_SUPPORTS_SAVE )
-GAME( 1987, timescan1, timescan, system16a_fd1089b, timescan, segas16a_state,generic, ROT270, "Sega", "Time Scanner (set 1, System 16A, FD1089B 317-0024)", GAME_SUPPORTS_SAVE )
-GAME( 1988, wb31, wb3, system16a_fd1094_no7751, wb3, segas16a_state,generic, ROT0, "Sega / Westone", "Wonder Boy III - Monster Lair (set 1, Japan, System 16A, FD1094 317-0084)", GAME_SUPPORTS_SAVE )
-GAME( 1988, wb35, wb3, system16a_fd1089a_no7751, wb3, segas16a_state,generic, ROT0, "Sega / Westone", "Wonder Boy III - Monster Lair (set 5, Japan, System 16A, FD1089A 317-0086)", GAME_SUPPORTS_SAVE )
+GAME( 1987, aliensyn5, aliensyn, system16a_fd1089b, aliensyn, segas16a_state,generic, ROT0, "Sega", "Alien Syndrome (set 5, System 16A, FD1089B 317-0037)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, aliensyn2, aliensyn, system16a_fd1089a, aliensyn, segas16a_state,generic, ROT0, "Sega", "Alien Syndrome (set 2, System 16A, FD1089A 317-0033)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, aliensynjo, aliensyn, system16a_fd1089a, aliensynj, segas16a_state,generic, ROT0, "Sega", "Alien Syndrome (set 1, Japan, old, System 16A, FD1089A 317-0033)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1988, aceattaca, aceattac, system16a_fd1094, aceattaca, segas16a_state,aceattaca, ROT270, "Sega", "Ace Attacker (Japan, System 16A, FD1094 317-0060)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1986, afighter, 0, system16a_fd1089a_no7751, afighter, segas16a_state,generic, ROT270, "Sega", "Action Fighter (FD1089A 317-0018)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1986, alexkidd, 0, system16a, alexkidd, segas16a_state,generic, ROT0, "Sega", "Alex Kidd: The Lost Stars (set 2, unprotected)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, alexkidd1, alexkidd, system16a_fd1089a, alexkidd, segas16a_state,generic, ROT0, "Sega", "Alex Kidd: The Lost Stars (set 1, FD1089A 317-0021)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1986, fantzone, 0, system16a_no7751, fantzone, segas16a_state,generic, ROT0, "Sega", "Fantasy Zone (Rev A, unprotected)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, fantzone1, fantzone, system16a_no7751, fantzone, segas16a_state,generic, ROT0, "Sega", "Fantasy Zone (unprotected)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, fantzonep, fantzone, system16a_no7751p, fantzone, segas16a_state,fantzonep, ROT0, "Sega", "Fantasy Zone (317-5000)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, fantzonepr, fantzone, system16a_no7751, fantzone, segas16a_state,generic, ROT0, "Sega", "Fantasy Zone (prototype)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // bad / missing gfx roms
+
+GAME( 1988, passsht16a, passsht, system16a_fd1094, passsht16a, segas16a_state,passsht16a, ROT270, "Sega", "Passing Shot (Japan, 4 Players, System 16A) (FD1094 317-0071)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1987, sdi, 0, system16a_fd1089b_no7751, sdi, segas16a_state,sdi, ROT0, "Sega", "SDI - Strategic Defense Initiative (Japan, newer, System 16A, FD1089B 317-0027)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, sdia, sdi, system16a_fd1089b_no7751, sdi, segas16a_state,sdi, ROT0, "Sega", "SDI - Strategic Defense Initiative (Japan, old, System 16A, FD1089B 317-0027)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1987, shinobi, 0, system16a, shinobi, segas16a_state,generic, ROT0, "Sega", "Shinobi (set 6, System 16A) (unprotected)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, shinobi1, shinobi, system16a_fd1094, shinobi, segas16a_state,generic, ROT0, "Sega", "Shinobi (set 1, System 16A) (FD1094 317-0050)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, shinobls, shinobi, system16a, shinobi, segas16a_state,generic, ROT0, "bootleg (Star)", "Shinobi (Star bootleg, System 16A)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, shinoblb, shinobi, system16a, shinobi, segas16a_state,generic, ROT0, "bootleg (Beta)", "Shinobi (Beta bootleg)", MACHINE_SUPPORTS_SAVE ) // should have different sound hw? using original ATM
+
+GAME( 1987, sjryuko1, sjryuko, system16a_fd1089b, sjryuko, segas16a_state,sjryukoa, ROT0, "White Board", "Sukeban Jansi Ryuko (set 1, System 16A, FD1089B 317-5021)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1988, tetris, 0, system16a_fd1094_no7751, tetris, segas16a_state,generic, ROT0, "Sega", "Tetris (set 4, Japan, System 16A) (FD1094 317-0093)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, tetris3, tetris, system16a_fd1094_no7751, tetris, segas16a_state,generic, ROT0, "Sega", "Tetris (set 3, Japan, System 16A) (FD1094 317-0093a)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1987, timescan1, timescan, system16a_fd1089b, timescan, segas16a_state,generic, ROT270, "Sega", "Time Scanner (set 1, System 16A, FD1089B 317-0024)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1988, wb31, wb3, system16a_fd1094_no7751, wb3, segas16a_state,generic, ROT0, "Sega / Westone", "Wonder Boy III - Monster Lair (set 1, Japan, System 16A) (FD1094 317-0084)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, wb35, wb3, system16a_fd1089a_no7751, wb3, segas16a_state,generic, ROT0, "Sega / Westone", "Wonder Boy III - Monster Lair (set 5, Japan, System 16A) (FD1089A 317-0086)", MACHINE_SUPPORTS_SAVE )
+
+
+GAME( 1988, wb31d, wb3, system16a_no7751, wb3, segas16a_state,generic, ROT0, "bootleg", "Wonder Boy III - Monster Lair (set 1, Japan, System 16A) (bootleg of FD1094 317-0084 set)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, wb35d, wb3, system16a_no7751, wb3, segas16a_state,generic, ROT0, "bootleg", "Wonder Boy III - Monster Lair (set 5, Japan, System 16A) (bootleg of FD1089A 317-0086 set)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, shinobi1d, shinobi, system16a, shinobi, segas16a_state,generic, ROT0, "bootleg", "Shinobi (set 1, System 16A) (bootleg of FD1094 317-0050 set)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, tetrisd, tetris, system16a_no7751, tetris, segas16a_state,generic, ROT0, "bootleg", "Tetris (set 4, Japan, System 16A) (bootleg of FD1094 317-0093 set)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, tetris3d, tetris, system16a_no7751, tetris, segas16a_state,generic, ROT0, "bootleg", "Tetris (set 3, Japan, System 16A) (bootleg of FD1094 317-0093a set)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/segas16b.c b/src/mame/drivers/segas16b.c
index 8c8955577d5..9d383175e6c 100644
--- a/src/mame/drivers/segas16b.c
+++ b/src/mame/drivers/segas16b.c
@@ -988,7 +988,10 @@ void segas16b_state::mapper_sound_w(UINT8 data)
m_soundcpu->set_input_line(0, HOLD_LINE);
}
-
+WRITE16_MEMBER( segas16b_state::sound_w16 )
+{
+ mapper_sound_w(data);
+}
//**************************************************************************
// MAIN CPU READ/WRITE HANDLERS
@@ -1714,6 +1717,9 @@ static ADDRESS_MAP_START( system16b_map, AS_PROGRAM, 16, segas16b_state )
AM_RANGE(0x500000, 0x503fff) AM_RAM AM_SHARE("workram")
ADDRESS_MAP_END
+static ADDRESS_MAP_START( decrypted_opcodes_map, AS_DECRYPTED_OPCODES, 16, segas16b_state )
+ AM_RANGE(0x00000, 0xfffff) AM_ROMBANK("fd1094_decrypted_opcodes")
+ADDRESS_MAP_END
static ADDRESS_MAP_START( system16c_map, AS_PROGRAM, 16, segas16b_state )
ADDRESS_MAP_UNMAP_HIGH
@@ -1728,6 +1734,33 @@ static ADDRESS_MAP_START( system16c_map, AS_PROGRAM, 16, segas16b_state )
AM_RANGE(0x500000, 0x53ffff) AM_RAM AM_SHARE("workram") // only change from system16b_map
ADDRESS_MAP_END
+static ADDRESS_MAP_START( system16b_bootleg_map, AS_PROGRAM, 16, segas16b_state )
+ AM_RANGE(0x000000, 0x03ffff) AM_ROM
+ AM_RANGE(0x200000, 0x23ffff) AM_RAM // used during startup for decompression
+ AM_RANGE(0x3f0000, 0x3fffff) AM_WRITE(rom_5704_bank_w)
+ AM_RANGE(0x400000, 0x40ffff) AM_DEVREADWRITE("segaic16vid", segaic16_video_device, tileram_r, tileram_w) AM_SHARE("tileram")
+ AM_RANGE(0x410000, 0x410fff) AM_DEVREADWRITE("segaic16vid", segaic16_video_device, textram_r, textram_w) AM_SHARE("textram")
+ AM_RANGE(0x440000, 0x4407ff) AM_RAM AM_SHARE("sprites")
+ AM_RANGE(0x840000, 0x840fff) AM_RAM_WRITE(paletteram_w) AM_SHARE("paletteram")
+ AM_RANGE(0xc40000, 0xc43fff) AM_READWRITE(bootleg_custom_io_r, bootleg_custom_io_w)
+ AM_RANGE(0x123406, 0x123407) AM_WRITE(sound_w16)
+ AM_RANGE(0xffc000, 0xffffff) AM_RAM AM_SHARE("workram")
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( decrypted_opcodes_map_x, AS_DECRYPTED_OPCODES, 16, segas16b_state )
+ ADDRESS_MAP_UNMAP_HIGH
+ AM_RANGE(0x000000, 0x03ffff) AM_ROM AM_SHARE("decrypted_opcodes")
+ADDRESS_MAP_END
+
+READ16_MEMBER(segas16b_state::bootleg_custom_io_r)
+{
+ return m_custom_io_r(space, offset, mem_mask);
+}
+
+WRITE16_MEMBER(segas16b_state::bootleg_custom_io_w)
+{
+ m_custom_io_w(space, offset, data,mem_mask);
+}
//**************************************************************************
@@ -3346,6 +3379,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( system16b_fd1094, system16b )
MCFG_CPU_REPLACE("maincpu", FD1094, MASTER_CLOCK_10MHz)
MCFG_CPU_PROGRAM_MAP(system16b_map)
+ MCFG_CPU_DECRYPTED_OPCODES_MAP(decrypted_opcodes_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", segas16b_state, irq4_line_hold)
MACHINE_CONFIG_END
@@ -3379,6 +3413,13 @@ static MACHINE_CONFIG_DERIVED( system16b_fd1094_5797, system16b_fd1094 )
MCFG_FRAGMENT_ADD(rom_5797_fragment)
MACHINE_CONFIG_END
+static MACHINE_CONFIG_DERIVED( system16b_split, system16b )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(system16b_bootleg_map)
+ MCFG_CPU_DECRYPTED_OPCODES_MAP(decrypted_opcodes_map_x)
+
+ MCFG_DEVICE_REMOVE("mapper")
+MACHINE_CONFIG_END
//**************************************************************************
@@ -3790,6 +3831,41 @@ ROM_START( altbeast5 )
ROM_LOAD( "opr-11673.a12", 0x30000, 0x20000, CRC(400c4a36) SHA1(de4bdfa91734410e0a7f6a16bf8336db172f458a) )
ROM_END
+ROM_START( altbeast5d )
+ ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-11742.a7", 0x000000, 0x20000, CRC(62c517e1) SHA1(8761f9177525c86f1c1db1c7a68e322159d382c9) )
+ ROM_LOAD16_BYTE( "bootleg_epr-11741.a5", 0x000001, 0x20000, CRC(5873f049) SHA1(bc201deeaff2b6ff86e58e5dfcb610cd301040e1) )
+
+ ROM_REGION( 0xc0000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-11722.a14", 0x00000, 0x10000, CRC(adaa8db5) SHA1(3262c98d13d08c333d16052cac841f44d2f99743) ) // plane 1
+ ROM_LOAD( "epr-11736.b14", 0x20000, 0x10000, CRC(e9ad5e89) SHA1(769628eee6e194a84aa8a3729f4e7d07dd3ba25c) )
+ ROM_LOAD( "epr-11723.a15", 0x40000, 0x10000, CRC(131a3f9a) SHA1(8182c3b8ce7a2f02b226cfa2081187593c9d0d0b) ) // plane 2
+ ROM_LOAD( "epr-11737.b15", 0x60000, 0x10000, CRC(2e420023) SHA1(3aa2c3b6fccafb4d53b6ab99b95181d3eed7c77f) )
+ ROM_LOAD( "epr-11724.a16", 0x80000, 0x10000, CRC(6f2ed50a) SHA1(55d0c4299e7240b0ef5316b48db7a158145c76ab) ) // plane 3
+ ROM_LOAD( "epr-11738.b16", 0xa0000, 0x10000, CRC(de3d6d02) SHA1(428811f21c68761022521a17fc4716f6e7214b20) )
+
+ ROM_REGION16_BE( 0x200000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "epr-11725.b1", 0x000001, 0x010000, CRC(f8b3684e) SHA1(3de2685cae5fb3c954b8440fafce313072747469) )
+ ROM_LOAD16_BYTE( "epr-11729.b5", 0x000000, 0x010000, CRC(ae3c2793) SHA1(c4f46861ea63ffa3c038a1ef931479b94e5382df) )
+ ROM_LOAD16_BYTE( "epr-11726.b2", 0x040001, 0x010000, CRC(3cce5419) SHA1(fccdbd6d05f5927272e7d6e5f997418d4fa2baf5) )
+ ROM_LOAD16_BYTE( "epr-11730.b6", 0x040000, 0x010000, CRC(3af62b55) SHA1(9f079af88aaf2447948c9ac01c6cbd1e79539704) )
+ ROM_LOAD16_BYTE( "epr-11727.b3", 0x080001, 0x010000, CRC(b0390078) SHA1(9035d9f45c67bdc802710018722943f5b63e8b5d) )
+ ROM_LOAD16_BYTE( "epr-11731.b7", 0x080000, 0x010000, CRC(2a87744a) SHA1(421b3926de046ddeddad05f65fc6b5078af28dbd) )
+ ROM_LOAD16_BYTE( "epr-11728.b4", 0x0c0001, 0x010000, CRC(f3a43fd8) SHA1(d42833ecd0c1920f1a6904d32c096f12d8622141) )
+ ROM_LOAD16_BYTE( "epr-11732.b8", 0x0c0000, 0x010000, CRC(2fb3e355) SHA1(960e0a66b23f79833b011ea35a5a412dffb47083) )
+ ROM_LOAD16_BYTE( "epr-11717.a1", 0x100001, 0x010000, CRC(676be0cb) SHA1(1e7d4c5f231992f111cc7885e97bc5a7267a5e89) )
+ ROM_LOAD16_BYTE( "epr-11733.b10", 0x100000, 0x010000, CRC(802cac94) SHA1(24e5aa74ce8b6c53c78cc33a41a473df3fbce639) )
+ ROM_LOAD16_BYTE( "epr-11718.a2", 0x140001, 0x010000, CRC(882864c2) SHA1(bd44bbdc13e5fd1b5c31c343da00a75b9dd90478) )
+ ROM_LOAD16_BYTE( "epr-11734.b11", 0x140000, 0x010000, CRC(76c704d2) SHA1(35b393071e29b8d122d3f904b923689a7dddc808) )
+ ROM_LOAD16_BYTE( "epr-11719.a3", 0x180001, 0x010000, CRC(339987f7) SHA1(b5650f8bdbd44510e84686b20daf70bc4a564f28) )
+ ROM_LOAD16_BYTE( "epr-11735.b12", 0x180000, 0x010000, CRC(4fe406aa) SHA1(7f068b81f35be4cc4785824ed524d28f201ff0a5) )
+
+ ROM_REGION( 0x50000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-11671.a10", 0x00000, 0x08000, CRC(2b71343b) SHA1(8a657f787de2b9d5161ed2c109642a148348af09) )
+ ROM_LOAD( "opr-11672.a11", 0x10000, 0x20000, CRC(bbd7f460) SHA1(bbc5c2219cb3a827d84062b19affd9780da2a3cf) )
+ ROM_LOAD( "opr-11673.a12", 0x30000, 0x20000, CRC(400c4a36) SHA1(de4bdfa91734410e0a7f6a16bf8336db172f458a) )
+ROM_END
+
//*************************************************************************************************************************
// Altered Beast, Sega System 16B
// CPU: 68000 + MC-8123B 317-0066
@@ -3880,6 +3956,41 @@ ROM_START( altbeastj3 )
ROM_LOAD( "opr-11673.a12", 0x30000, 0x20000, CRC(400c4a36) SHA1(de4bdfa91734410e0a7f6a16bf8336db172f458a) )
ROM_END
+ROM_START( altbeastj3d )
+ ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-11721.a7", 0x000000, 0x20000, CRC(b9c963a0) SHA1(c213cf5145f31083852ece94f1fbeaed6f054818) )
+ ROM_LOAD16_BYTE( "bootleg_epr-11720.a5", 0x000001, 0x20000, CRC(6a1e91fc) SHA1(8881b69902ae3812b354d94a0b4f430b1a013868) )
+
+ ROM_REGION( 0xc0000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-11722.a14", 0x00000, 0x10000, CRC(adaa8db5) SHA1(3262c98d13d08c333d16052cac841f44d2f99743) ) // plane 1
+ ROM_LOAD( "epr-11736.b14", 0x20000, 0x10000, CRC(e9ad5e89) SHA1(769628eee6e194a84aa8a3729f4e7d07dd3ba25c) )
+ ROM_LOAD( "epr-11723.a15", 0x40000, 0x10000, CRC(131a3f9a) SHA1(8182c3b8ce7a2f02b226cfa2081187593c9d0d0b) ) // plane 2
+ ROM_LOAD( "epr-11737.b15", 0x60000, 0x10000, CRC(2e420023) SHA1(3aa2c3b6fccafb4d53b6ab99b95181d3eed7c77f) )
+ ROM_LOAD( "epr-11724.a16", 0x80000, 0x10000, CRC(6f2ed50a) SHA1(55d0c4299e7240b0ef5316b48db7a158145c76ab) ) // plane 3
+ ROM_LOAD( "epr-11738.b16", 0xa0000, 0x10000, CRC(de3d6d02) SHA1(428811f21c68761022521a17fc4716f6e7214b20) )
+
+ ROM_REGION16_BE( 0x200000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "epr-11725.b1", 0x000001, 0x010000, CRC(f8b3684e) SHA1(3de2685cae5fb3c954b8440fafce313072747469) )
+ ROM_LOAD16_BYTE( "epr-11729.b5", 0x000000, 0x010000, CRC(ae3c2793) SHA1(c4f46861ea63ffa3c038a1ef931479b94e5382df) )
+ ROM_LOAD16_BYTE( "epr-11726.b2", 0x040001, 0x010000, CRC(3cce5419) SHA1(fccdbd6d05f5927272e7d6e5f997418d4fa2baf5) )
+ ROM_LOAD16_BYTE( "epr-11730.b6", 0x040000, 0x010000, CRC(3af62b55) SHA1(9f079af88aaf2447948c9ac01c6cbd1e79539704) )
+ ROM_LOAD16_BYTE( "epr-11727.b3", 0x080001, 0x010000, CRC(b0390078) SHA1(9035d9f45c67bdc802710018722943f5b63e8b5d) )
+ ROM_LOAD16_BYTE( "epr-11731.b7", 0x080000, 0x010000, CRC(2a87744a) SHA1(421b3926de046ddeddad05f65fc6b5078af28dbd) )
+ ROM_LOAD16_BYTE( "epr-11728.b4", 0x0c0001, 0x010000, CRC(f3a43fd8) SHA1(d42833ecd0c1920f1a6904d32c096f12d8622141) )
+ ROM_LOAD16_BYTE( "epr-11732.b8", 0x0c0000, 0x010000, CRC(2fb3e355) SHA1(960e0a66b23f79833b011ea35a5a412dffb47083) )
+ ROM_LOAD16_BYTE( "epr-11717.a1", 0x100001, 0x010000, CRC(676be0cb) SHA1(1e7d4c5f231992f111cc7885e97bc5a7267a5e89) )
+ ROM_LOAD16_BYTE( "epr-11733.b10", 0x100000, 0x010000, CRC(802cac94) SHA1(24e5aa74ce8b6c53c78cc33a41a473df3fbce639) )
+ ROM_LOAD16_BYTE( "epr-11718.a2", 0x140001, 0x010000, CRC(882864c2) SHA1(bd44bbdc13e5fd1b5c31c343da00a75b9dd90478) )
+ ROM_LOAD16_BYTE( "epr-11734.b11", 0x140000, 0x010000, CRC(76c704d2) SHA1(35b393071e29b8d122d3f904b923689a7dddc808) )
+ ROM_LOAD16_BYTE( "epr-11719.a3", 0x180001, 0x010000, CRC(339987f7) SHA1(b5650f8bdbd44510e84686b20daf70bc4a564f28) )
+ ROM_LOAD16_BYTE( "epr-11735.b12", 0x180000, 0x010000, CRC(4fe406aa) SHA1(7f068b81f35be4cc4785824ed524d28f201ff0a5) )
+
+ ROM_REGION( 0x50000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-11671.a10", 0x00000, 0x08000, CRC(2b71343b) SHA1(8a657f787de2b9d5161ed2c109642a148348af09) )
+ ROM_LOAD( "opr-11672.a11", 0x10000, 0x20000, CRC(bbd7f460) SHA1(bbc5c2219cb3a827d84062b19affd9780da2a3cf) )
+ ROM_LOAD( "opr-11673.a12", 0x30000, 0x20000, CRC(400c4a36) SHA1(de4bdfa91734410e0a7f6a16bf8336db172f458a) )
+ROM_END
+
//*************************************************************************************************************************
// Altered Beast, Sega System 16B
// CPU: 68000 + MC8123B (317-0066)
@@ -4001,7 +4112,8 @@ ROM_END
//*************************************************************************************************************************
// Aurail, Sega System 16B
// CPU: 68000
-// ROM Board type: 171-????
+// ROM Board type: 171-5704
+// Sega ID# for ROM board: 834-7702-06 AURAIL(ROM BD)
//
ROM_START( aurail )
ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
@@ -4044,7 +4156,7 @@ ROM_END
//*************************************************************************************************************************
// Aurail, Sega System 16B
// CPU: FD1089B (317-0168)
-// ROM Board type: 171-????
+// ROM Board type: 171-5704
//
ROM_START( aurail1 )
ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
@@ -4088,6 +4200,45 @@ ROM_START( aurail1 )
ROM_LOAD( "317-0168.key", 0x0000, 0x2000, CRC(bc2d1792) SHA1(e66d2582eb74ae35f27715fcc9df3e77aba67509) )
ROM_END
+ROM_START( aurail1d )
+ ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-13469.a7", 0x000000, 0x20000, CRC(75ef3eec) SHA1(40749dd33d6218c116de3555eae4667c10c50a6e) )
+ ROM_LOAD16_BYTE( "bootleg_epr-13468.a5", 0x000001, 0x20000, CRC(e46e4f55) SHA1(4be6a261f19ac0e14ca0b66c10f8af94bba27e63) )
+ ROM_LOAD16_BYTE( "epr-13447.a8", 0x040000, 0x20000, CRC(70a52167) SHA1(51512d4ee1e63902375b197cf04170744b099d88) )
+ ROM_LOAD16_BYTE( "epr-13445.a6", 0x040001, 0x20000, CRC(28dfc3dd) SHA1(b1d6d3e31a48062a91cc9b7b6ff68bfde0a3ea1c) )
+
+ ROM_REGION( 0xc0000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "mpr-13450.a14", 0x00000, 0x20000, CRC(0fc4a7a8) SHA1(b46b22a6b0ead19551e67abfb3304c52b02b8d29) ) // plane 1
+ ROM_LOAD( "mpr-13465.b14", 0x20000, 0x20000, CRC(e08135e0) SHA1(cd748f4a8f67f562174fa9c6edb966c77b488e75) )
+ ROM_LOAD( "mpr-13451.a15", 0x40000, 0x20000, CRC(1c49852f) SHA1(d08d6991c203400f685fada2445a22a7eceeee04) ) // plane 2
+ ROM_LOAD( "mpr-13466.b15", 0x60000, 0x20000, CRC(e14c6684) SHA1(f9b0d45e01a6df2b3875b493db9fa41bf37d79f0) )
+ ROM_LOAD( "mpr-13452.a16", 0x80000, 0x20000, CRC(047bde5e) SHA1(e759baedcbb637a6c14af461b8a492554cadc9e4) ) // plane 3
+ ROM_LOAD( "mpr-13467.b16", 0xa0000, 0x20000, CRC(6309fec4) SHA1(f90c9679bade3cfbaa7949e412410c29d5bfa4d3) )
+
+ ROM_REGION16_BE( 0x200000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "mpr-13453.b1", 0x000001, 0x020000, CRC(5fa0a9f8) SHA1(d9d67cc006a608d48e37aa89359f1a9403172b00) )
+ ROM_LOAD16_BYTE( "mpr-13457.b5", 0x000000, 0x020000, CRC(0d1b54da) SHA1(c7a6393f9e13adabe93b7a86aa7845c5f4d188f1) )
+ ROM_LOAD16_BYTE( "mpr-13454.b2", 0x040001, 0x020000, CRC(5f6b33b1) SHA1(5d397bdaa2c7a9ce82cc9134bfeb78418dc613b0) )
+ ROM_LOAD16_BYTE( "mpr-13458.b6", 0x040000, 0x020000, CRC(bad340c3) SHA1(e04ef028e44054d34831d3617c5a6348823cfebd) )
+ ROM_LOAD16_BYTE( "mpr-13455.b3", 0x080001, 0x020000, CRC(4e80520b) SHA1(8147793ee0023ac18f633d756ecc53aef1980e95) )
+ ROM_LOAD16_BYTE( "mpr-13459.b7", 0x080000, 0x020000, CRC(7e9165ac) SHA1(32114095f96fb0ae385c9bf31dd97a99ef182aaa) )
+ ROM_LOAD16_BYTE( "mpr-13456.b4", 0x0c0001, 0x020000, CRC(5733c428) SHA1(865203ebee9d98e67324c46915d8835d0289ee0c) )
+ ROM_LOAD16_BYTE( "mpr-13460.b8", 0x0c0000, 0x020000, CRC(66b8f9b3) SHA1(4bf003a9bed40673d88df51a314eb6bd10f0d039) )
+ ROM_LOAD16_BYTE( "mpr-13440.a1", 0x100001, 0x020000, CRC(4f370b2b) SHA1(66beb4264d569520d80f8915e1c1fddbf61efb21) )
+ ROM_LOAD16_BYTE( "mpr-13461.b10", 0x100000, 0x020000, CRC(f76014bf) SHA1(b44f0b6fb9dee927d81c62282aa946d8c35766ca) )
+ ROM_LOAD16_BYTE( "mpr-13441.a2", 0x140001, 0x020000, CRC(37cf9cb4) SHA1(f51cee874ad8a824462d2475a23e7016ef64c6b4) )
+ ROM_LOAD16_BYTE( "mpr-13462.b11", 0x140000, 0x020000, CRC(1061e7da) SHA1(bad3560f1ed6a5a79f4ecf85d3843b24ecf22d19) )
+ ROM_LOAD16_BYTE( "mpr-13442.a3", 0x180001, 0x020000, CRC(049698ef) SHA1(dca1a78f0156cfac9acbfb6e47eb3897b579d2ec) )
+ ROM_LOAD16_BYTE( "mpr-13463.b12", 0x180000, 0x020000, CRC(7dbcfbf1) SHA1(0b7be1de57f83b1213805489c6ebfc0f1e5fb4b0) )
+ ROM_LOAD16_BYTE( "mpr-13443.a4", 0x1c0001, 0x020000, CRC(77a8989e) SHA1(0ad0877a9814fb7c2fb79062a50b1f9ce9420768) )
+ ROM_LOAD16_BYTE( "mpr-13464.b13", 0x1c0000, 0x020000, CRC(551df422) SHA1(cf4cd2b66335853c7c6cce949e79c05e93a39666) )
+
+ ROM_REGION( 0x50000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-13448.a10", 0x00000, 0x08000, CRC(b5183fb9) SHA1(c8372b57fa486256d49dc5851d6b17c92de593fb) )
+ ROM_LOAD( "mpr-13449.a11", 0x10000, 0x20000, CRC(d3d9aaf9) SHA1(0fb3a8cb11033accceb3a43a691fb424cf8b9619) )
+ ROM_RELOAD( 0x30000, 0x20000 )
+ROM_END
+
//*************************************************************************************************************************
// Aurail, Sega System 16B
// CPU: FD1089A (317-0167)
@@ -4156,6 +4307,45 @@ ROM_START( aurailj )
ROM_END
+ROM_START( aurailjd )
+ ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-13446.a7", 0x000000, 0x20000, CRC(25221510) SHA1(8c461db9438bc785c5f81e3cb3bcea9adbd2be9c) )
+ ROM_LOAD16_BYTE( "bootleg_epr-13444.a5", 0x000001, 0x20000, CRC(56ba5356) SHA1(a8cf41f415776328b645a23f13999ff356284772))
+ ROM_LOAD16_BYTE( "epr-13447.a8", 0x040000, 0x20000, CRC(70a52167) SHA1(51512d4ee1e63902375b197cf04170744b099d88) )
+ ROM_LOAD16_BYTE( "epr-13445.a6", 0x040001, 0x20000, CRC(28dfc3dd) SHA1(b1d6d3e31a48062a91cc9b7b6ff68bfde0a3ea1c) )
+
+ ROM_REGION( 0xc0000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "mpr-13450.a14", 0x00000, 0x20000, CRC(0fc4a7a8) SHA1(b46b22a6b0ead19551e67abfb3304c52b02b8d29) ) // plane 1
+ ROM_LOAD( "mpr-13465.b14", 0x20000, 0x20000, CRC(e08135e0) SHA1(cd748f4a8f67f562174fa9c6edb966c77b488e75) )
+ ROM_LOAD( "mpr-13451.a15", 0x40000, 0x20000, CRC(1c49852f) SHA1(d08d6991c203400f685fada2445a22a7eceeee04) ) // plane 2
+ ROM_LOAD( "mpr-13466.b15", 0x60000, 0x20000, CRC(e14c6684) SHA1(f9b0d45e01a6df2b3875b493db9fa41bf37d79f0) )
+ ROM_LOAD( "mpr-13452.a16", 0x80000, 0x20000, CRC(047bde5e) SHA1(e759baedcbb637a6c14af461b8a492554cadc9e4) ) // plane 3
+ ROM_LOAD( "mpr-13467.b16", 0xa0000, 0x20000, CRC(6309fec4) SHA1(f90c9679bade3cfbaa7949e412410c29d5bfa4d3) )
+
+ ROM_REGION16_BE( 0x200000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "mpr-13453.b1", 0x000001, 0x020000, CRC(5fa0a9f8) SHA1(d9d67cc006a608d48e37aa89359f1a9403172b00) )
+ ROM_LOAD16_BYTE( "mpr-13457.b5", 0x000000, 0x020000, CRC(0d1b54da) SHA1(c7a6393f9e13adabe93b7a86aa7845c5f4d188f1) )
+ ROM_LOAD16_BYTE( "mpr-13454.b2", 0x040001, 0x020000, CRC(5f6b33b1) SHA1(5d397bdaa2c7a9ce82cc9134bfeb78418dc613b0) )
+ ROM_LOAD16_BYTE( "mpr-13458.b6", 0x040000, 0x020000, CRC(bad340c3) SHA1(e04ef028e44054d34831d3617c5a6348823cfebd) )
+ ROM_LOAD16_BYTE( "mpr-13455.b3", 0x080001, 0x020000, CRC(4e80520b) SHA1(8147793ee0023ac18f633d756ecc53aef1980e95) )
+ ROM_LOAD16_BYTE( "mpr-13459.b7", 0x080000, 0x020000, CRC(7e9165ac) SHA1(32114095f96fb0ae385c9bf31dd97a99ef182aaa) )
+ ROM_LOAD16_BYTE( "mpr-13456.b4", 0x0c0001, 0x020000, CRC(5733c428) SHA1(865203ebee9d98e67324c46915d8835d0289ee0c) )
+ ROM_LOAD16_BYTE( "mpr-13460.b8", 0x0c0000, 0x020000, CRC(66b8f9b3) SHA1(4bf003a9bed40673d88df51a314eb6bd10f0d039) )
+ ROM_LOAD16_BYTE( "mpr-13440.a1", 0x100001, 0x020000, CRC(4f370b2b) SHA1(66beb4264d569520d80f8915e1c1fddbf61efb21) )
+ ROM_LOAD16_BYTE( "mpr-13461.b10", 0x100000, 0x020000, CRC(f76014bf) SHA1(b44f0b6fb9dee927d81c62282aa946d8c35766ca) )
+ ROM_LOAD16_BYTE( "mpr-13441.a2", 0x140001, 0x020000, CRC(37cf9cb4) SHA1(f51cee874ad8a824462d2475a23e7016ef64c6b4) )
+ ROM_LOAD16_BYTE( "mpr-13462.b11", 0x140000, 0x020000, CRC(1061e7da) SHA1(bad3560f1ed6a5a79f4ecf85d3843b24ecf22d19) )
+ ROM_LOAD16_BYTE( "mpr-13442.a3", 0x180001, 0x020000, CRC(049698ef) SHA1(dca1a78f0156cfac9acbfb6e47eb3897b579d2ec) )
+ ROM_LOAD16_BYTE( "mpr-13463.b12", 0x180000, 0x020000, CRC(7dbcfbf1) SHA1(0b7be1de57f83b1213805489c6ebfc0f1e5fb4b0) )
+ ROM_LOAD16_BYTE( "mpr-13443.a4", 0x1c0001, 0x020000, CRC(77a8989e) SHA1(0ad0877a9814fb7c2fb79062a50b1f9ce9420768) )
+ ROM_LOAD16_BYTE( "mpr-13464.b13", 0x1c0000, 0x020000, CRC(551df422) SHA1(cf4cd2b66335853c7c6cce949e79c05e93a39666) )
+
+ ROM_REGION( 0x50000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-13448.a10", 0x00000, 0x08000, CRC(b5183fb9) SHA1(c8372b57fa486256d49dc5851d6b17c92de593fb) )
+ ROM_LOAD( "mpr-13449.a11", 0x10000, 0x20000, CRC(d3d9aaf9) SHA1(0fb3a8cb11033accceb3a43a691fb424cf8b9619) )
+ ROM_RELOAD( 0x30000, 0x20000 )
+ROM_END
+
//*************************************************************************************************************************
//*************************************************************************************************************************
//*************************************************************************************************************************
@@ -4190,6 +4380,31 @@ ROM_START( bayroute )
ROM_LOAD( "mpr-12461.a12", 0x30000, 0x20000, CRC(b03b8b46) SHA1(b0283ac377d464f3d9374a992192ec6c515a3c2f) )
ROM_END
+ROM_START( bayrouted )
+ ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-12517.a7", 0x000000, 0x20000, CRC(7e90b39d) SHA1(881af36ffa88b899fbe7a61f503158d5bd0a686e) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12516.a5", 0x000001, 0x20000, CRC(34afc1fd) SHA1(a78fa4e4f28566737588eace26c9236d8cf7a795) )
+ ROM_LOAD16_BYTE( "epr-12458.a8", 0x040000, 0x20000, CRC(e7c7476a) SHA1(7b724d76bdc1978ddf78489edfda14533905a360) )
+ ROM_LOAD16_BYTE( "epr-12456.a6", 0x040001, 0x20000, CRC(25dc2eaf) SHA1(dda300840b9a90bcce7be16ff1904a7a0456c396) )
+
+ ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "opr-12462.a14", 0x00000, 0x10000, CRC(a19943b5) SHA1(95cd95223ea76677227b807a7c4eff120e690d37) )
+ ROM_LOAD( "opr-12463.a15", 0x10000, 0x10000, CRC(62f8200d) SHA1(a5a0035249f339396b33f8a908d393777e8951c4) )
+ ROM_LOAD( "opr-12464.a16", 0x20000, 0x10000, CRC(c8c59703) SHA1(3a4f45b88990d27c55ddfde5fc93496954868200) )
+
+ ROM_REGION16_BE( 0x80000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "mpr-12465.b1", 0x00001, 0x20000, CRC(11d61b45) SHA1(01678e07ffcafb8c161b52763f2183dc281c7578) )
+ ROM_LOAD16_BYTE( "mpr-12467.b5", 0x00000, 0x20000, CRC(c3b4e4c0) SHA1(2d8dbea5278b3fac03c7ad8749f931d36cc8f341) )
+ ROM_LOAD16_BYTE( "mpr-12466.b2", 0x40001, 0x20000, CRC(a57f236f) SHA1(c83219cdfcee10a4fdffcbf410808f161a2b1aef) )
+ ROM_LOAD16_BYTE( "mpr-12468.b6", 0x40000, 0x20000, CRC(d89c77de) SHA1(0e903bf57a7515291dda7e11bdef982a1417043a) )
+
+ ROM_REGION( 0x50000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-12459.a10", 0x00000, 0x08000, CRC(3e1d29d0) SHA1(fe3d985983e5132e8a26a02a3f2d8d420cbf1a49) )
+ ROM_LOAD( "mpr-12460.a11", 0x10000, 0x20000, CRC(0bae570d) SHA1(05fa4a3405666342ab66e696a7344cca97569f19) )
+ ROM_LOAD( "mpr-12461.a12", 0x30000, 0x20000, CRC(b03b8b46) SHA1(b0283ac377d464f3d9374a992192ec6c515a3c2f) )
+ROM_END
+
+
//*************************************************************************************************************************
// Bay Route, Sega System 16B
// CPU: FD1094 (317-0115)
@@ -4222,6 +4437,30 @@ ROM_START( bayroutej )
ROM_LOAD( "mpr-12461.a12", 0x30000, 0x20000, CRC(b03b8b46) SHA1(b0283ac377d464f3d9374a992192ec6c515a3c2f) )
ROM_END
+ROM_START( bayroutejd )
+ ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-12457.a7", 0x000000, 0x20000, CRC(43e9011c) SHA1(b688c43f6774276bd9800474473ea94de3038cbc) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12455.a5", 0x000001, 0x20000, CRC(8f56ae92) SHA1(be5f97023b7718006ae30cf38912a3c8a5183701) )
+ ROM_LOAD16_BYTE( "epr-12458.a8", 0x040000, 0x20000, CRC(e7c7476a) SHA1(7b724d76bdc1978ddf78489edfda14533905a360) )
+ ROM_LOAD16_BYTE( "epr-12456.a6", 0x040001, 0x20000, CRC(25dc2eaf) SHA1(dda300840b9a90bcce7be16ff1904a7a0456c396) )
+
+ ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "opr-12462.a14", 0x00000, 0x10000, CRC(a19943b5) SHA1(95cd95223ea76677227b807a7c4eff120e690d37) )
+ ROM_LOAD( "opr-12463.a15", 0x10000, 0x10000, CRC(62f8200d) SHA1(a5a0035249f339396b33f8a908d393777e8951c4) )
+ ROM_LOAD( "opr-12464.a16", 0x20000, 0x10000, CRC(c8c59703) SHA1(3a4f45b88990d27c55ddfde5fc93496954868200) )
+
+ ROM_REGION16_BE( 0x80000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "mpr-12465.b1", 0x00001, 0x20000, CRC(11d61b45) SHA1(01678e07ffcafb8c161b52763f2183dc281c7578) )
+ ROM_LOAD16_BYTE( "mpr-12467.b5", 0x00000, 0x20000, CRC(c3b4e4c0) SHA1(2d8dbea5278b3fac03c7ad8749f931d36cc8f341) )
+ ROM_LOAD16_BYTE( "mpr-12466.b2", 0x40001, 0x20000, CRC(a57f236f) SHA1(c83219cdfcee10a4fdffcbf410808f161a2b1aef) )
+ ROM_LOAD16_BYTE( "mpr-12468.b6", 0x40000, 0x20000, CRC(d89c77de) SHA1(0e903bf57a7515291dda7e11bdef982a1417043a) )
+
+ ROM_REGION( 0x50000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-12459.a10", 0x00000, 0x08000, CRC(3e1d29d0) SHA1(fe3d985983e5132e8a26a02a3f2d8d420cbf1a49) )
+ ROM_LOAD( "mpr-12460.a11", 0x10000, 0x20000, CRC(0bae570d) SHA1(05fa4a3405666342ab66e696a7344cca97569f19) )
+ ROM_LOAD( "mpr-12461.a12", 0x30000, 0x20000, CRC(b03b8b46) SHA1(b0283ac377d464f3d9374a992192ec6c515a3c2f) )
+ROM_END
+
//*************************************************************************************************************************
// Bay Route, Sega System 16B
// CPU: 68000
@@ -4309,6 +4548,35 @@ ROM_START( bullet )
ROM_END
+ROM_START( bulletd )
+ ROM_REGION( 0x30000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-11010.a4", 0x000000, 0x08000, CRC(c4b7cb63) SHA1(c35fceab2a03f23d9690432a582064d12de950f6) )
+ ROM_LOAD16_BYTE( "bootleg_epr-11007.a1", 0x000001, 0x08000, CRC(2afa84c5) SHA1(97f74ba4b9f83314c9e1f61afe7db3d7fa7a9935))
+ ROM_LOAD16_BYTE( "epr-11011.a5", 0x010000, 0x08000, CRC(7f446b9f) SHA1(0b92ab100c13bdcdd0f770da5da5e19cb79afde1) )
+ ROM_LOAD16_BYTE( "epr-11008.a2", 0x010001, 0x08000, CRC(34824d3b) SHA1(7a3134a71ad176b8a08a919c0acb75ae1e05743b) )
+ ROM_LOAD16_BYTE( "epr-11012.a6", 0x020000, 0x08000, CRC(3992f159) SHA1(50686b394693ab01cbd159ae661f326c8eee50b8) )
+ ROM_LOAD16_BYTE( "epr-11009.a3", 0x020001, 0x08000, CRC(df199999) SHA1(2669e923aa4f1bedc788401f44ad19c318658f00) )
+
+ ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-10994.b9", 0x00000, 0x10000, CRC(3035468a) SHA1(778366815a2a74188d72d64c5e1e95215bc4ca81) )
+ ROM_LOAD( "epr-10995.b10", 0x10000, 0x10000, CRC(6b97aff1) SHA1(323bafe43a703476f6f4e68b46ec86bb9152f88e) )
+ ROM_LOAD( "epr-10996.b11", 0x20000, 0x10000, CRC(501bddd6) SHA1(545273b1b874b3e68d23b0dcae81c8531bd98756) )
+
+ ROM_REGION16_BE( 0x80000, "sprites", ROMREGION_ERASE00 ) // sprites
+ ROM_LOAD16_BYTE( "epr-10999.b1", 0x00001, 0x010000, CRC(119f0008) SHA1(6a39b537bb58ea19ed3b0322ebca37e6574289fd) )
+ ROM_LOAD16_BYTE( "epr-11003.b5", 0x00000, 0x010000, CRC(2f429089) SHA1(08bf9d9c15fafbcb26604ff30be367ecf25404b2) )
+ ROM_LOAD16_BYTE( "epr-11000.b2", 0x20001, 0x010000, CRC(f5482bbe) SHA1(d8482ba73622798b15e78ab2c123d0fd4c33480a) )
+ ROM_LOAD16_BYTE( "epr-11004.b6", 0x20000, 0x010000, CRC(8c886df0) SHA1(348f9111fe45fc94cb32b101d0a1a6a39ef1ec50) )
+ ROM_LOAD16_BYTE( "epr-11001.b3", 0x40001, 0x010000, CRC(65ea71e0) SHA1(79224c445ceaa1d13a3616e58e9d4eb595e920cb) )
+ ROM_LOAD16_BYTE( "epr-11005.b7", 0x40000, 0x010000, CRC(ea2f9d50) SHA1(db62584591d62780f81de651869bc74a61363793) )
+ ROM_LOAD16_BYTE( "epr-11002.b4", 0x60001, 0x010000, CRC(9e25042b) SHA1(cb0e20ca8ca1c42ad2a95b83ea8711b7ad8e42f5) )
+ ROM_LOAD16_BYTE( "epr-11006.b8", 0x60000, 0x010000, CRC(6b7384f2) SHA1(5201e3b5e4aeb4bc8f5b3ba3d8a9ffb3705eccf4) )
+
+ ROM_REGION( 0x50000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-10997.a7", 0x00000, 0x8000, CRC(5dd9cab5) SHA1(b9b27bbdc19feacb83cc5b33a74d910d86ac8f33) )
+ ROM_LOAD( "epr-10998.a8", 0x10000, 0x8000, CRC(f971a817) SHA1(502c95638e4fd5f87e5fc837cb44b39a5d62f4e4) )
+ROM_END
+
//*************************************************************************************************************************
//*************************************************************************************************************************
//*************************************************************************************************************************
@@ -4357,6 +4625,44 @@ ROM_START( cotton )
ROM_LOAD( "opr-13893.a11", 0x10000, 0x20000, CRC(384233df) SHA1(dfdf94697587a5ee45e97700f3741be54b90742b) )
ROM_END
+ROM_START( cottond )
+ ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-13921a.a7", 0x000000, 0x20000, CRC(92947867) SHA1(6d5f1be45690bacac7093b442ed99c4de56d73a4))
+ ROM_LOAD16_BYTE( "bootleg_epr-13919a.a5", 0x000001, 0x20000, CRC(30f131fb) SHA1(5b35b4691d2436e82be3079634d8f7f259e46450) )
+ ROM_LOAD16_BYTE( "bootleg_epr-13922a.a8", 0x040000, 0x20000, CRC(f0f75329) SHA1(e223b3b6e15ead11f93e353ddce5227f8b362d2e) )
+ ROM_LOAD16_BYTE( "bootleg_epr-13920a.a6", 0x040001, 0x20000, CRC(a3721aab) SHA1(bfcd8e564f06520e51c61418246ef06e4a0036d7) )
+
+ ROM_REGION( 0xc0000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "opr-13862.a14", 0x00000, 0x20000, CRC(a47354b6) SHA1(ce52813b245f1d491a134d4bd5ab074e71d20129) )
+ ROM_LOAD( "opr-13877.b14", 0x20000, 0x20000, CRC(d38424b5) SHA1(884ca190936aee2d2cac86491d4d0cdf4a45efe5) )
+ ROM_LOAD( "opr-13863.a15", 0x40000, 0x20000, CRC(8c990026) SHA1(07b4510936376c171f3b31d87ac6154361eb0cbc) )
+ ROM_LOAD( "opr-13878.b15", 0x60000, 0x20000, CRC(21c15b8a) SHA1(690d92420ec5465885e0f4870419992961420e33) )
+ ROM_LOAD( "opr-13864.a16", 0x80000, 0x20000, CRC(d2b175bf) SHA1(897b7c794d0e7229ea5e9a682f64266a947a818f) )
+ ROM_LOAD( "opr-13879.b16", 0xa0000, 0x20000, CRC(b9d62531) SHA1(e8c5e7b93339c00f75a3b66ce18f7838255577be) )
+
+ ROM_REGION16_BE( 0x200000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "opr-13869.b5", 0x000000, 0x20000, CRC(ab4b3468) SHA1(3071654a295152d609d2c2c1d4153b5ba3f174d5) )
+ ROM_LOAD16_BYTE( "opr-13865.b1", 0x000001, 0x20000, CRC(7024f404) SHA1(4b2f9cdfdd97218797a3e386106e53f713b8650d) )
+ ROM_LOAD16_BYTE( "opr-13870.b6", 0x040000, 0x20000, CRC(69b41ac3) SHA1(4c5a85e5a5ca9f8260557d4e97eb091dd857d63a) )
+ ROM_LOAD16_BYTE( "opr-13866.b2", 0x040001, 0x20000, CRC(6169bba4) SHA1(a24a418ee7cd0c1109870a2e7a91e430671897ed) )
+ ROM_LOAD16_BYTE( "opr-13871.b7", 0x080000, 0x20000, CRC(0801cf02) SHA1(3007bbbce2f327f4700e78e2b8672f4482189cd7) )
+ ROM_LOAD16_BYTE( "opr-13867.b3", 0x080001, 0x20000, CRC(b014f02d) SHA1(46f5ed0b44cee03a6aec9ec57b506bb15bf35e47) )
+ ROM_LOAD16_BYTE( "opr-13872.b8", 0x0c0000, 0x20000, CRC(f066f315) SHA1(bbeb24daaded994240d0cdb5cec2e662b677cb75) )
+ ROM_LOAD16_BYTE( "opr-13868.b4", 0x0c0001, 0x20000, CRC(e62a7cd6) SHA1(1e6d06345f7b6cef2e887d9b9cd45e0155140c5e) )
+ ROM_LOAD16_BYTE( "opr-13873.b10",0x100000, 0x20000, CRC(1bd145f3) SHA1(4744ffe9fbda453785345b46eb61b56730048f42) )
+ ROM_LOAD16_BYTE( "opr-13852.a1", 0x100001, 0x20000, CRC(943aba8b) SHA1(d0dd1665a8d9495a92ae4e35d6b15b966e8d43cd) )
+ ROM_LOAD16_BYTE( "opr-13874.b11",0x140000, 0x20000, CRC(4fd59bff) SHA1(2b4630e49b60593d668fe34d8faf712ac6928c14) )
+ ROM_LOAD16_BYTE( "opr-13853.a2", 0x140001, 0x20000, CRC(7ea93200) SHA1(8e2d8cd48a12306772653f25bddc99ad0597a698) )
+ ROM_LOAD16_BYTE( "opr-13894.b12",0x180000, 0x20000, CRC(e3d0bee2) SHA1(503a78123ca9d6f3405972bca281dcdaba929c99) )
+ ROM_LOAD16_BYTE( "opr-13891.a3", 0x180001, 0x20000, CRC(c6b3c414) SHA1(0f0d936e77eb483be8865e8d968d78260e88ca99) )
+ ROM_LOAD16_BYTE( "opr-13876.b13",0x1c0000, 0x20000, CRC(1c5ffad8) SHA1(13e5886ceece564cc71ba7f43a26d2b1782ccfc8) )
+ ROM_LOAD16_BYTE( "opr-13855.a4", 0x1c0001, 0x20000, CRC(856f3ee2) SHA1(72346d887ff9738ebe93acb2e3f8cd80d494621e) )
+
+ ROM_REGION( 0x50000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-13892.a10", 0x00000, 0x08000, CRC(fdfbe6ad) SHA1(9ebb94889c0e96e6af9cdced084804ca98612d61) )
+ ROM_LOAD( "opr-13893.a11", 0x10000, 0x20000, CRC(384233df) SHA1(dfdf94697587a5ee45e97700f3741be54b90742b) )
+ROM_END
+
//*************************************************************************************************************************
// Cotton, Sega System 16B
// CPU: FD1094 (317-0180T) // T could be wrong, it was handwritten
@@ -4403,6 +4709,44 @@ ROM_START( cottonu )
ROM_LOAD( "opr-13893.a11", 0x10000, 0x20000, CRC(384233df) SHA1(dfdf94697587a5ee45e97700f3741be54b90742b) )
ROM_END
+ROM_START( cottonud )
+ ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_cotton.a7", 0x000000, 0x20000, CRC(f6b585ca) SHA1(9ed3641f0a8112dfc34394ad78fc9981a1d16fe3) )
+ ROM_LOAD16_BYTE( "bootleg_cotton.a5", 0x000001, 0x20000, CRC(6b328522) SHA1(f7284297ef4521c864310f19ca6e147d01a28087) )
+ ROM_LOAD16_BYTE( "bootleg_cotton.a8", 0x040000, 0x20000, CRC(f9147b71) SHA1(f0604b536c6fcb8a0caf3d7d60add8a754acd9c7) )
+ ROM_LOAD16_BYTE( "bootleg_cotton.a6", 0x040001, 0x20000, CRC(10365de4) SHA1(5662d0e3c9a05d1c40a27877e7b902adc81eec6f) )
+
+ ROM_REGION( 0xc0000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "opr-13862.a14", 0x00000, 0x20000, CRC(a47354b6) SHA1(ce52813b245f1d491a134d4bd5ab074e71d20129) )
+ ROM_LOAD( "opr-13877.b14", 0x20000, 0x20000, CRC(d38424b5) SHA1(884ca190936aee2d2cac86491d4d0cdf4a45efe5) )
+ ROM_LOAD( "opr-13863.a15", 0x40000, 0x20000, CRC(8c990026) SHA1(07b4510936376c171f3b31d87ac6154361eb0cbc) )
+ ROM_LOAD( "opr-13878.b15", 0x60000, 0x20000, CRC(21c15b8a) SHA1(690d92420ec5465885e0f4870419992961420e33) )
+ ROM_LOAD( "opr-13864.a16", 0x80000, 0x20000, CRC(d2b175bf) SHA1(897b7c794d0e7229ea5e9a682f64266a947a818f) )
+ ROM_LOAD( "opr-13879.b16", 0xa0000, 0x20000, CRC(b9d62531) SHA1(e8c5e7b93339c00f75a3b66ce18f7838255577be) )
+
+ ROM_REGION16_BE( 0x200000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "opr-13869.b5", 0x000000, 0x20000, CRC(ab4b3468) SHA1(3071654a295152d609d2c2c1d4153b5ba3f174d5) )
+ ROM_LOAD16_BYTE( "opr-13865.b1", 0x000001, 0x20000, CRC(7024f404) SHA1(4b2f9cdfdd97218797a3e386106e53f713b8650d) )
+ ROM_LOAD16_BYTE( "opr-13870.b6", 0x040000, 0x20000, CRC(69b41ac3) SHA1(4c5a85e5a5ca9f8260557d4e97eb091dd857d63a) )
+ ROM_LOAD16_BYTE( "opr-13866.b2", 0x040001, 0x20000, CRC(6169bba4) SHA1(a24a418ee7cd0c1109870a2e7a91e430671897ed) )
+ ROM_LOAD16_BYTE( "opr-13871.b7", 0x080000, 0x20000, CRC(0801cf02) SHA1(3007bbbce2f327f4700e78e2b8672f4482189cd7) )
+ ROM_LOAD16_BYTE( "opr-13867.b3", 0x080001, 0x20000, CRC(b014f02d) SHA1(46f5ed0b44cee03a6aec9ec57b506bb15bf35e47) )
+ ROM_LOAD16_BYTE( "opr-13872.b8", 0x0c0000, 0x20000, CRC(f066f315) SHA1(bbeb24daaded994240d0cdb5cec2e662b677cb75) )
+ ROM_LOAD16_BYTE( "opr-13868.b4", 0x0c0001, 0x20000, CRC(e62a7cd6) SHA1(1e6d06345f7b6cef2e887d9b9cd45e0155140c5e) )
+ ROM_LOAD16_BYTE( "opr-13873.b10",0x100000, 0x20000, CRC(1bd145f3) SHA1(4744ffe9fbda453785345b46eb61b56730048f42) )
+ ROM_LOAD16_BYTE( "opr-13852.a1", 0x100001, 0x20000, CRC(943aba8b) SHA1(d0dd1665a8d9495a92ae4e35d6b15b966e8d43cd) )
+ ROM_LOAD16_BYTE( "opr-13874.b11",0x140000, 0x20000, CRC(4fd59bff) SHA1(2b4630e49b60593d668fe34d8faf712ac6928c14) )
+ ROM_LOAD16_BYTE( "opr-13853.a2", 0x140001, 0x20000, CRC(7ea93200) SHA1(8e2d8cd48a12306772653f25bddc99ad0597a698) )
+ ROM_LOAD16_BYTE( "opr-13894.b12",0x180000, 0x20000, CRC(e3d0bee2) SHA1(503a78123ca9d6f3405972bca281dcdaba929c99) )
+ ROM_LOAD16_BYTE( "opr-13891.a3", 0x180001, 0x20000, CRC(c6b3c414) SHA1(0f0d936e77eb483be8865e8d968d78260e88ca99) )
+ ROM_LOAD16_BYTE( "opr-13876.b13",0x1c0000, 0x20000, CRC(1c5ffad8) SHA1(13e5886ceece564cc71ba7f43a26d2b1782ccfc8) )
+ ROM_LOAD16_BYTE( "opr-13855.a4", 0x1c0001, 0x20000, CRC(856f3ee2) SHA1(72346d887ff9738ebe93acb2e3f8cd80d494621e) )
+
+ ROM_REGION( 0x50000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-13892.a10", 0x00000, 0x08000, CRC(fdfbe6ad) SHA1(9ebb94889c0e96e6af9cdced084804ca98612d61) )
+ ROM_LOAD( "opr-13893.a11", 0x10000, 0x20000, CRC(384233df) SHA1(dfdf94697587a5ee45e97700f3741be54b90742b) )
+ROM_END
+
//*************************************************************************************************************************
// Cotton (Japan), Sega System 16B
// CPU: FD1094 (317-0179B)
@@ -4450,6 +4794,44 @@ ROM_START( cottonj )
ROM_LOAD( "opr-13061.a11", 0x10000, 0x20000, CRC(4d21153f) SHA1(173ddd9633f255c39ca508c37d0562e374704e7b) )
ROM_END
+ROM_START( cottonjd )
+ ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-13858b.a7", 0x000000, 0x20000, CRC(739acf3b) SHA1(640fa874c9759773ad7b297c5a583ad8859677a6) )
+ ROM_LOAD16_BYTE( "bootleg_epr-13856b.a5", 0x000001, 0x20000, CRC(19597b1f) SHA1(8569b07a10aeae5a75077111eb4d1b3b7fa17974) )
+ ROM_LOAD16_BYTE( "bootleg_epr-13859b.a8", 0x040000, 0x20000, CRC(10548c39) SHA1(0d040f360926e4e80b182b978dc2fa99ecbe22fb) )
+ ROM_LOAD16_BYTE( "bootleg_epr-13857b.a6", 0x040001, 0x20000, CRC(6d289f3e) SHA1(9f5601b18b7edf72a5872fed748f00691fd6af0b) )
+
+ ROM_REGION( 0xc0000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "opr-13862.a14", 0x00000, 0x20000, CRC(a47354b6) SHA1(ce52813b245f1d491a134d4bd5ab074e71d20129) )
+ ROM_LOAD( "opr-13877.b14", 0x20000, 0x20000, CRC(d38424b5) SHA1(884ca190936aee2d2cac86491d4d0cdf4a45efe5) )
+ ROM_LOAD( "opr-13863.a15", 0x40000, 0x20000, CRC(8c990026) SHA1(07b4510936376c171f3b31d87ac6154361eb0cbc) )
+ ROM_LOAD( "opr-13878.b15", 0x60000, 0x20000, CRC(21c15b8a) SHA1(690d92420ec5465885e0f4870419992961420e33) )
+ ROM_LOAD( "opr-13864.a16", 0x80000, 0x20000, CRC(d2b175bf) SHA1(897b7c794d0e7229ea5e9a682f64266a947a818f) )
+ ROM_LOAD( "opr-13879.b16", 0xa0000, 0x20000, CRC(b9d62531) SHA1(e8c5e7b93339c00f75a3b66ce18f7838255577be) )
+
+ ROM_REGION16_BE( 0x200000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "opr-13869.b5", 0x000000, 0x20000, CRC(ab4b3468) SHA1(3071654a295152d609d2c2c1d4153b5ba3f174d5) )
+ ROM_LOAD16_BYTE( "opr-13865.b1", 0x000001, 0x20000, CRC(7024f404) SHA1(4b2f9cdfdd97218797a3e386106e53f713b8650d) )
+ ROM_LOAD16_BYTE( "opr-13870.b6", 0x040000, 0x20000, CRC(69b41ac3) SHA1(4c5a85e5a5ca9f8260557d4e97eb091dd857d63a) )
+ ROM_LOAD16_BYTE( "opr-13866.b2", 0x040001, 0x20000, CRC(6169bba4) SHA1(a24a418ee7cd0c1109870a2e7a91e430671897ed) )
+ ROM_LOAD16_BYTE( "opr-13871.b7", 0x080000, 0x20000, CRC(0801cf02) SHA1(3007bbbce2f327f4700e78e2b8672f4482189cd7) )
+ ROM_LOAD16_BYTE( "opr-13867.b3", 0x080001, 0x20000, CRC(b014f02d) SHA1(46f5ed0b44cee03a6aec9ec57b506bb15bf35e47) )
+ ROM_LOAD16_BYTE( "opr-13872.b8", 0x0c0000, 0x20000, CRC(f066f315) SHA1(bbeb24daaded994240d0cdb5cec2e662b677cb75) )
+ ROM_LOAD16_BYTE( "opr-13868.b4", 0x0c0001, 0x20000, CRC(e62a7cd6) SHA1(1e6d06345f7b6cef2e887d9b9cd45e0155140c5e) )
+ ROM_LOAD16_BYTE( "opr-13873.b10",0x100000, 0x20000, CRC(1bd145f3) SHA1(4744ffe9fbda453785345b46eb61b56730048f42) )
+ ROM_LOAD16_BYTE( "opr-13852.a1", 0x100001, 0x20000, CRC(943aba8b) SHA1(d0dd1665a8d9495a92ae4e35d6b15b966e8d43cd) )
+ ROM_LOAD16_BYTE( "opr-13874.b11",0x140000, 0x20000, CRC(4fd59bff) SHA1(2b4630e49b60593d668fe34d8faf712ac6928c14) )
+ ROM_LOAD16_BYTE( "opr-13853.a2", 0x140001, 0x20000, CRC(7ea93200) SHA1(8e2d8cd48a12306772653f25bddc99ad0597a698) )
+ ROM_LOAD16_BYTE( "opr-13875.b12",0x180000, 0x20000, CRC(6a66868d) SHA1(60961a8b1f193d0b08c1906f4a79123fa0db443a) )
+ ROM_LOAD16_BYTE( "opr-13854.a3", 0x180001, 0x20000, CRC(1c942190) SHA1(514fac5cc7362e9e3168c84975c8fe0e34bb4471) )
+ ROM_LOAD16_BYTE( "opr-13876.b13",0x1c0000, 0x20000, CRC(1c5ffad8) SHA1(13e5886ceece564cc71ba7f43a26d2b1782ccfc8) )
+ ROM_LOAD16_BYTE( "opr-13855.a4", 0x1c0001, 0x20000, CRC(856f3ee2) SHA1(72346d887ff9738ebe93acb2e3f8cd80d494621e) )
+
+ ROM_REGION( 0x50000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-13860.a10", 0x00000, 0x08000, CRC(6a57b027) SHA1(8f9de548df203605bb4ab9eececf09739b55adf1) )
+ ROM_LOAD( "opr-13061.a11", 0x10000, 0x20000, CRC(4d21153f) SHA1(173ddd9633f255c39ca508c37d0562e374704e7b) )
+ROM_END
+
//*************************************************************************************************************************
// Cotton (Japan), Sega System 16B
// CPU: FD1094 (317-0179A)
@@ -4498,6 +4880,43 @@ ROM_START( cottonja )
ROM_LOAD( "opr-13061.a11", 0x10000, 0x20000, CRC(4d21153f) SHA1(173ddd9633f255c39ca508c37d0562e374704e7b) )
ROM_END
+ROM_START( cottonjad )
+ ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-13858a.a7", 0x000000, 0x20000, CRC(f048fba4) SHA1(8e4343dc48012ae90c593f73f096de50a46ee62d) )
+ ROM_LOAD16_BYTE( "bootleg_epr-13856a.a5", 0x000001, 0x20000, CRC(04f5bbe1) SHA1(77dfb0cb15b8711c7efdd2ca9a6a03613eb83950) )
+ ROM_LOAD16_BYTE( "bootleg_epr-13859a.a8", 0x040000, 0x20000, CRC(fc259bef) SHA1(078d744b9647d816b0b018de2370a1ed1010103b) )
+ ROM_LOAD16_BYTE( "bootleg_epr-13857a.a6", 0x040001, 0x20000, CRC(e191e939) SHA1(49d3365940e6a236f816ebf584684fa2617d5858) )
+
+ ROM_REGION( 0xc0000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "opr-13862.a14", 0x00000, 0x20000, CRC(a47354b6) SHA1(ce52813b245f1d491a134d4bd5ab074e71d20129) )
+ ROM_LOAD( "opr-13877.b14", 0x20000, 0x20000, CRC(d38424b5) SHA1(884ca190936aee2d2cac86491d4d0cdf4a45efe5) )
+ ROM_LOAD( "opr-13863.a15", 0x40000, 0x20000, CRC(8c990026) SHA1(07b4510936376c171f3b31d87ac6154361eb0cbc) )
+ ROM_LOAD( "opr-13878.b15", 0x60000, 0x20000, CRC(21c15b8a) SHA1(690d92420ec5465885e0f4870419992961420e33) )
+ ROM_LOAD( "opr-13864.a16", 0x80000, 0x20000, CRC(d2b175bf) SHA1(897b7c794d0e7229ea5e9a682f64266a947a818f) )
+ ROM_LOAD( "opr-13879.b16", 0xa0000, 0x20000, CRC(b9d62531) SHA1(e8c5e7b93339c00f75a3b66ce18f7838255577be) )
+
+ ROM_REGION16_BE( 0x200000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "opr-13869.b5", 0x000000, 0x20000, CRC(ab4b3468) SHA1(3071654a295152d609d2c2c1d4153b5ba3f174d5) )
+ ROM_LOAD16_BYTE( "opr-13865.b1", 0x000001, 0x20000, CRC(7024f404) SHA1(4b2f9cdfdd97218797a3e386106e53f713b8650d) )
+ ROM_LOAD16_BYTE( "opr-13870.b6", 0x040000, 0x20000, CRC(69b41ac3) SHA1(4c5a85e5a5ca9f8260557d4e97eb091dd857d63a) )
+ ROM_LOAD16_BYTE( "opr-13866.b2", 0x040001, 0x20000, CRC(6169bba4) SHA1(a24a418ee7cd0c1109870a2e7a91e430671897ed) )
+ ROM_LOAD16_BYTE( "opr-13871.b7", 0x080000, 0x20000, CRC(0801cf02) SHA1(3007bbbce2f327f4700e78e2b8672f4482189cd7) )
+ ROM_LOAD16_BYTE( "opr-13867.b3", 0x080001, 0x20000, CRC(b014f02d) SHA1(46f5ed0b44cee03a6aec9ec57b506bb15bf35e47) )
+ ROM_LOAD16_BYTE( "opr-13872.b8", 0x0c0000, 0x20000, CRC(f066f315) SHA1(bbeb24daaded994240d0cdb5cec2e662b677cb75) )
+ ROM_LOAD16_BYTE( "opr-13868.b4", 0x0c0001, 0x20000, CRC(e62a7cd6) SHA1(1e6d06345f7b6cef2e887d9b9cd45e0155140c5e) )
+ ROM_LOAD16_BYTE( "opr-13873.b10",0x100000, 0x20000, CRC(1bd145f3) SHA1(4744ffe9fbda453785345b46eb61b56730048f42) )
+ ROM_LOAD16_BYTE( "opr-13852.a1", 0x100001, 0x20000, CRC(943aba8b) SHA1(d0dd1665a8d9495a92ae4e35d6b15b966e8d43cd) )
+ ROM_LOAD16_BYTE( "opr-13874.b11",0x140000, 0x20000, CRC(4fd59bff) SHA1(2b4630e49b60593d668fe34d8faf712ac6928c14) )
+ ROM_LOAD16_BYTE( "opr-13853.a2", 0x140001, 0x20000, CRC(7ea93200) SHA1(8e2d8cd48a12306772653f25bddc99ad0597a698) )
+ ROM_LOAD16_BYTE( "opr-13875.b12",0x180000, 0x20000, CRC(6a66868d) SHA1(60961a8b1f193d0b08c1906f4a79123fa0db443a) )
+ ROM_LOAD16_BYTE( "opr-13854.a3", 0x180001, 0x20000, CRC(1c942190) SHA1(514fac5cc7362e9e3168c84975c8fe0e34bb4471) )
+ ROM_LOAD16_BYTE( "opr-13876.b13",0x1c0000, 0x20000, CRC(1c5ffad8) SHA1(13e5886ceece564cc71ba7f43a26d2b1782ccfc8) )
+ ROM_LOAD16_BYTE( "opr-13855.a4", 0x1c0001, 0x20000, CRC(856f3ee2) SHA1(72346d887ff9738ebe93acb2e3f8cd80d494621e) )
+
+ ROM_REGION( 0x50000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-13860.a10", 0x00000, 0x08000, CRC(6a57b027) SHA1(8f9de548df203605bb4ab9eececf09739b55adf1) )
+ ROM_LOAD( "opr-13061.a11", 0x10000, 0x20000, CRC(4d21153f) SHA1(173ddd9633f255c39ca508c37d0562e374704e7b) )
+ROM_END
//*************************************************************************************************************************
//*************************************************************************************************************************
@@ -4684,6 +5103,28 @@ ROM_START( ddux )
ROM_LOAD( "epr-11916.a10", 0x0000, 0x8000, CRC(7ab541cf) SHA1(feb88022ca1796d020e53e95ad345159bd415530) )
ROM_END
+ROM_START( dduxd )
+ ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-11191.a7", 0x000000, 0x20000, CRC(7721eeba) SHA1(7c11250f0061a9b508b05c5cdcc8594dcc694564) )
+ ROM_LOAD16_BYTE( "bootleg_epr-11190.a5", 0x000001, 0x20000, CRC(5ee350cd) SHA1(aac5b0fc477aada539f57d6c343f6f1f7f176a04) )
+ ROM_LOAD16_BYTE( "epr-11915.a8", 0x040000, 0x20000, CRC(d8ed3132) SHA1(a9d5ad8f79fb635cc234a99fad398688a5f15926) )
+ ROM_LOAD16_BYTE( "epr-11913.a6", 0x040001, 0x20000, CRC(30c6cb92) SHA1(2e17c74eeb37c9731fc2e365cc0114f7383c0106) )
+
+ ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "mpr-11917.a14", 0x00000, 0x10000, CRC(6f772190) SHA1(e68dc78785a1cb0da362efc8c4a088ccc580bd6e) )
+ ROM_LOAD( "mpr-11918.a15", 0x10000, 0x10000, CRC(c731db95) SHA1(b3b9cbd772f7bfd35355bcb2a7c0801b61eaf19f) )
+ ROM_LOAD( "mpr-11919.a16", 0x20000, 0x10000, CRC(64d5a491) SHA1(686151c9a58f524f786f52c03f086cdaa5728233) )
+
+ ROM_REGION16_BE( 0x100000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "mpr-11920.b1", 0x00001, 0x020000, CRC(e5d1e3cd) SHA1(d8c0f40dab00f1b09f6d018597fd45147f9ca3f6) )
+ ROM_LOAD16_BYTE( "mpr-11922.b5", 0x00000, 0x020000, CRC(70b0c4dd) SHA1(b67acab0c6a0f5051fc3fcda2476b8834f65b376) )
+ ROM_LOAD16_BYTE( "mpr-11921.b2", 0x40001, 0x020000, CRC(61d2358c) SHA1(216fd295ff9d56976f9b1c465a48806be843dd04) )
+ ROM_LOAD16_BYTE( "mpr-11923.b6", 0x40000, 0x020000, CRC(c9ffe47d) SHA1(fd6dc3781c6e7d1734a9f4a8e4a9c44cfc091e0a) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-11916.a10", 0x0000, 0x8000, CRC(7ab541cf) SHA1(feb88022ca1796d020e53e95ad345159bd415530) )
+ROM_END
+
//*************************************************************************************************************************
// Dynamite Dux (Japan), Sega System 16B
// CPU: FD1094 (317-0094)
@@ -4717,6 +5158,28 @@ ROM_START( dduxj )
ROM_LOAD( "epr-11916.a10", 0x0000, 0x8000, CRC(7ab541cf) SHA1(feb88022ca1796d020e53e95ad345159bd415530) )
ROM_END
+ROM_START( dduxjd )
+ ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-11914.a7", 0x000000, 0x20000, CRC(8d52572d) SHA1(4d6b7d8a460b338623db1aeb9860a523bac3eea9) )
+ ROM_LOAD16_BYTE( "bootleg_epr-11912.a5", 0x000001, 0x20000, CRC(811ceee9) SHA1(23aba750d0e8e5008f3bcab0d1f2d99478e1902e) )
+ ROM_LOAD16_BYTE( "epr-11915.a8", 0x040000, 0x20000, CRC(d8ed3132) SHA1(a9d5ad8f79fb635cc234a99fad398688a5f15926) )
+ ROM_LOAD16_BYTE( "epr-11913.a6", 0x040001, 0x20000, CRC(30c6cb92) SHA1(2e17c74eeb37c9731fc2e365cc0114f7383c0106) )
+
+ ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "mpr-11917.a14", 0x00000, 0x10000, CRC(6f772190) SHA1(e68dc78785a1cb0da362efc8c4a088ccc580bd6e) )
+ ROM_LOAD( "mpr-11918.a15", 0x10000, 0x10000, CRC(c731db95) SHA1(b3b9cbd772f7bfd35355bcb2a7c0801b61eaf19f) )
+ ROM_LOAD( "mpr-11919.a16", 0x20000, 0x10000, CRC(64d5a491) SHA1(686151c9a58f524f786f52c03f086cdaa5728233) )
+
+ ROM_REGION16_BE( 0x100000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "mpr-11920.b1", 0x00001, 0x020000, CRC(e5d1e3cd) SHA1(d8c0f40dab00f1b09f6d018597fd45147f9ca3f6) )
+ ROM_LOAD16_BYTE( "mpr-11922.b5", 0x00000, 0x020000, CRC(70b0c4dd) SHA1(b67acab0c6a0f5051fc3fcda2476b8834f65b376) )
+ ROM_LOAD16_BYTE( "mpr-11921.b2", 0x40001, 0x020000, CRC(61d2358c) SHA1(216fd295ff9d56976f9b1c465a48806be843dd04) )
+ ROM_LOAD16_BYTE( "mpr-11923.b6", 0x40000, 0x020000, CRC(c9ffe47d) SHA1(fd6dc3781c6e7d1734a9f4a8e4a9c44cfc091e0a) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-11916.a10", 0x0000, 0x8000, CRC(7ab541cf) SHA1(feb88022ca1796d020e53e95ad345159bd415530) )
+ROM_END
+
//*************************************************************************************************************************
// Dynamite Dux (8751 version), Sega System 16B
//
@@ -4760,8 +5223,8 @@ ROM_END
//
ROM_START( eswat )
ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
- ROM_LOAD16_BYTE( "epr-12659.bin", 0x000000, 0x40000, CRC(c5ab2db9) SHA1(5c7ded9a39e03d1f438cff1574b614295c8ebeef) )
- ROM_LOAD16_BYTE( "epr-12658.bin", 0x000001, 0x40000, CRC(af40bd71) SHA1(3d7422d5c95fd2cbf1ac4916cc8c625a53391eea) )
+ ROM_LOAD16_BYTE( "epr-12659.a2", 0x000000, 0x40000, CRC(c5ab2db9) SHA1(5c7ded9a39e03d1f438cff1574b614295c8ebeef) )
+ ROM_LOAD16_BYTE( "epr-12658.a1", 0x000001, 0x40000, CRC(af40bd71) SHA1(3d7422d5c95fd2cbf1ac4916cc8c625a53391eea) )
ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
ROM_LOAD( "317-0130.key", 0x0000, 0x2000, CRC(ba7b717b) SHA1(7a5cef9f525d8b5e4199a94f6ba5e960ab44eb0c) )
@@ -4790,6 +5253,35 @@ ROM_START( eswat )
ROM_LOAD( "mpr-12616.a11", 0x10000, 0x40000, CRC(254347c2) SHA1(bf2d83a69a5be375c7e42e9f7d6e65c1095a354c) )
ROM_END
+ROM_START( eswatd )
+ ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-12659.a2", 0x000000, 0x40000, CRC(3157f69d) SHA1(69d55a9876c680225a1694a3f77bc0265eb2b612) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12658.a1", 0x000001, 0x40000, CRC(0feb544b) SHA1(ed9190bb207f4d1b41242cfd56e67ec5a236422b) )
+
+ ROM_REGION( 0xc0000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "mpr-12624.b11", 0x00000, 0x40000, CRC(375a5ec4) SHA1(42b9116bdc0e0a5b1dd667ac1856b4c2252829ba) )
+ ROM_LOAD( "mpr-12625.b12", 0x40000, 0x40000, CRC(3b8c757e) SHA1(0b66e8446d059a12e47e2a6fe8f0a333245bb95c) )
+ ROM_LOAD( "mpr-12626.b13", 0x80000, 0x40000, CRC(3efca25c) SHA1(0d866bf53a16b52719f73081e933f4db27d72ece) )
+
+ ROM_REGION16_BE( 0x1c0000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "mpr-12618.b1", 0x000001, 0x20000, CRC(0d1530bf) SHA1(bb8626cd98761c1c20cee117d00315c85621ba6a) )
+ ROM_CONTINUE( 0x100001, 0x20000 )
+ ROM_LOAD16_BYTE( "mpr-12621.b4", 0x000000, 0x20000, CRC(18ff0799) SHA1(5417223378aef16ee2b4f438d1f8f11a23fe7265) )
+ ROM_CONTINUE( 0x100000, 0x20000 )
+ ROM_LOAD16_BYTE( "mpr-12619.b2", 0x040001, 0x20000, CRC(32069246) SHA1(4913009bc72bf4f8b171b14fe06457f5784cab15) )
+ ROM_CONTINUE( 0x140001, 0x20000 )
+ ROM_LOAD16_BYTE( "mpr-12622.b5", 0x040000, 0x20000, CRC(a3dfe436) SHA1(640ccc552114d403f35d441574d2f3e4f1d4a8f9) )
+ ROM_CONTINUE( 0x140000, 0x20000 )
+ ROM_LOAD16_BYTE( "mpr-12620.b3", 0x080001, 0x20000, CRC(f6b096e0) SHA1(695ad1adbdc29f4d614645867e16de038cf92709) )
+ ROM_CONTINUE( 0x180001, 0x20000 )
+ ROM_LOAD16_BYTE( "mpr-12623.b6", 0x080000, 0x20000, CRC(6773fef6) SHA1(91e646ea447be02254d060daf255d26afe0cc79e) )
+ ROM_CONTINUE( 0x180000, 0x20000 )
+
+ ROM_REGION( 0x90000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-12617.a13", 0x00000, 0x08000, CRC(7efecf23) SHA1(2b87af7cfaab5942a3f7b38c987fcba01d3475ab) )
+ ROM_LOAD( "mpr-12616.a11", 0x10000, 0x40000, CRC(254347c2) SHA1(bf2d83a69a5be375c7e42e9f7d6e65c1095a354c) )
+ROM_END
+
//*************************************************************************************************************************
// E-Swat (US), Sega System 16B
// CPU: FD1094 (317-0129)
@@ -4828,6 +5320,35 @@ ROM_START( eswatu )
ROM_LOAD( "mpr-12616.a11", 0x10000, 0x40000, CRC(254347c2) SHA1(bf2d83a69a5be375c7e42e9f7d6e65c1095a354c) )
ROM_END
+ROM_START( eswatud )
+ ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-12657.a2", 0x000000, 0x40000, CRC(85b42ecc) SHA1(fccd1f841c47b85214ccc1662855133086719db0) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12656.a1", 0x000001, 0x40000, CRC(0509949f) SHA1(bf94f745cf733ae1c35e139f71145b45df270a0e) )
+
+ ROM_REGION( 0xc0000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "mpr-12624.b11", 0x00000, 0x40000, CRC(375a5ec4) SHA1(42b9116bdc0e0a5b1dd667ac1856b4c2252829ba) )
+ ROM_LOAD( "mpr-12625.b12", 0x40000, 0x40000, CRC(3b8c757e) SHA1(0b66e8446d059a12e47e2a6fe8f0a333245bb95c) )
+ ROM_LOAD( "mpr-12626.b13", 0x80000, 0x40000, CRC(3efca25c) SHA1(0d866bf53a16b52719f73081e933f4db27d72ece) )
+
+ ROM_REGION16_BE( 0x1c0000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "mpr-12618.b1", 0x000001, 0x20000, CRC(0d1530bf) SHA1(bb8626cd98761c1c20cee117d00315c85621ba6a) )
+ ROM_CONTINUE( 0x100001, 0x20000 )
+ ROM_LOAD16_BYTE( "mpr-12621.b4", 0x000000, 0x20000, CRC(18ff0799) SHA1(5417223378aef16ee2b4f438d1f8f11a23fe7265) )
+ ROM_CONTINUE( 0x100000, 0x20000 )
+ ROM_LOAD16_BYTE( "mpr-12619.b2", 0x040001, 0x20000, CRC(32069246) SHA1(4913009bc72bf4f8b171b14fe06457f5784cab15) )
+ ROM_CONTINUE( 0x140001, 0x20000 )
+ ROM_LOAD16_BYTE( "mpr-12622.b5", 0x040000, 0x20000, CRC(a3dfe436) SHA1(640ccc552114d403f35d441574d2f3e4f1d4a8f9) )
+ ROM_CONTINUE( 0x140000, 0x20000 )
+ ROM_LOAD16_BYTE( "mpr-12620.b3", 0x080001, 0x20000, CRC(f6b096e0) SHA1(695ad1adbdc29f4d614645867e16de038cf92709) )
+ ROM_CONTINUE( 0x180001, 0x20000 )
+ ROM_LOAD16_BYTE( "mpr-12623.b6", 0x080000, 0x20000, CRC(6773fef6) SHA1(91e646ea447be02254d060daf255d26afe0cc79e) )
+ ROM_CONTINUE( 0x180000, 0x20000 )
+
+ ROM_REGION( 0x90000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-12617.a13", 0x00000, 0x08000, CRC(7efecf23) SHA1(2b87af7cfaab5942a3f7b38c987fcba01d3475ab) )
+ ROM_LOAD( "mpr-12616.a11", 0x10000, 0x40000, CRC(254347c2) SHA1(bf2d83a69a5be375c7e42e9f7d6e65c1095a354c) )
+ROM_END
+
//*************************************************************************************************************************
// E-Swat (Japan), Sega System 16B
// CPU: FD1094 (317-0128)
@@ -4868,6 +5389,36 @@ ROM_START( eswatj )
ROM_LOAD( "mpr-12616.a11", 0x10000, 0x40000, CRC(254347c2) SHA1(bf2d83a69a5be375c7e42e9f7d6e65c1095a354c) )
ROM_END
+ROM_START( eswatjd )
+ ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-12615.a2", 0x000000, 0x40000, CRC(5103480e) SHA1(a6f206c65bf146575ac5eef10efdc382f987d836) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12614.a1", 0x000001, 0x40000, CRC(51f404a5) SHA1(f5b19432a47d4dc268c4d6a275f5b7caecd0f259) )
+
+ ROM_REGION( 0xc0000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "mpr-12624.b11", 0x00000, 0x40000, CRC(375a5ec4) SHA1(42b9116bdc0e0a5b1dd667ac1856b4c2252829ba) )
+ ROM_LOAD( "mpr-12625.b12", 0x40000, 0x40000, CRC(3b8c757e) SHA1(0b66e8446d059a12e47e2a6fe8f0a333245bb95c) )
+ ROM_LOAD( "mpr-12626.b13", 0x80000, 0x40000, CRC(3efca25c) SHA1(0d866bf53a16b52719f73081e933f4db27d72ece) )
+
+ ROM_REGION16_BE( 0x1c0000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "mpr-12618.b1", 0x000001, 0x20000, CRC(0d1530bf) SHA1(bb8626cd98761c1c20cee117d00315c85621ba6a) )
+ ROM_CONTINUE( 0x100001, 0x20000 )
+ ROM_LOAD16_BYTE( "mpr-12621.b4", 0x000000, 0x20000, CRC(18ff0799) SHA1(5417223378aef16ee2b4f438d1f8f11a23fe7265) )
+ ROM_CONTINUE( 0x100000, 0x20000 )
+ ROM_LOAD16_BYTE( "mpr-12619.b2", 0x040001, 0x20000, CRC(32069246) SHA1(4913009bc72bf4f8b171b14fe06457f5784cab15) )
+ ROM_CONTINUE( 0x140001, 0x20000 )
+ ROM_LOAD16_BYTE( "mpr-12622.b5", 0x040000, 0x20000, CRC(a3dfe436) SHA1(640ccc552114d403f35d441574d2f3e4f1d4a8f9) )
+ ROM_CONTINUE( 0x140000, 0x20000 )
+ ROM_LOAD16_BYTE( "mpr-12620.b3", 0x080001, 0x20000, CRC(f6b096e0) SHA1(695ad1adbdc29f4d614645867e16de038cf92709) )
+ ROM_CONTINUE( 0x180001, 0x20000 )
+ ROM_LOAD16_BYTE( "mpr-12623.b6", 0x080000, 0x20000, CRC(6773fef6) SHA1(91e646ea447be02254d060daf255d26afe0cc79e) )
+ ROM_CONTINUE( 0x180000, 0x20000 )
+
+ ROM_REGION( 0x90000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-12617.a13", 0x00000, 0x08000, CRC(7efecf23) SHA1(2b87af7cfaab5942a3f7b38c987fcba01d3475ab) )
+ ROM_LOAD( "mpr-12616.a11", 0x10000, 0x40000, CRC(254347c2) SHA1(bf2d83a69a5be375c7e42e9f7d6e65c1095a354c) )
+ROM_END
+
+
//*************************************************************************************************************************
// E-Swat (Japan), Sega System 16B
// CPU: FD1094 (317-0131)
@@ -4911,7 +5462,40 @@ ROM_START( eswatj1 )
ROM_LOAD( "mpr-12687.a12", 0x30000, 0x20000, CRC(9e87571f) SHA1(3b2ce36fdd53cbd41e345a3914f07bcf0f1d72cb) )
ROM_END
+ROM_START( eswatj1d )
+ ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-12683.a7", 0x00000, 0x20000, CRC(4f9d7a85) SHA1(4436a80b98b3856631d30d2ec320eaf9fb51c91b) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12681.a5", 0x00001, 0x20000, CRC(3e113af2) SHA1(77c8d1f36e404ac991c51e2cb37b5ee67580f937) )
+ ROM_LOAD16_BYTE( "epr-12684.a8", 0x40000, 0x20000, CRC(2e5b866b) SHA1(c2dd0601914d1013bff98406c3c46a6b95ab4995) )
+ ROM_LOAD16_BYTE( "epr-12682.a6", 0x40001, 0x20000, CRC(8e1f57d2) SHA1(48567bf2b6bf667d5fb1b8b4d9fa53073ded316f) )
+ ROM_REGION( 0xc0000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-12688.a14", 0x00000, 0x20000, CRC(12f898db) SHA1(f5848a52d75d6204c6b9687fa9146aaec2d56097) )
+ ROM_LOAD( "epr-12700.b14", 0x20000, 0x10000, CRC(37a721c7) SHA1(eb687a386d2edc2df0fe1225e70f81363e936a23) )
+ ROM_LOAD( "epr-12689.a15", 0x40000, 0x20000, CRC(339746d0) SHA1(084a567d5b747c2fc085c5033f56407d6b46faef) )
+ ROM_LOAD( "epr-12701.b15", 0x60000, 0x10000, CRC(703bf496) SHA1(0b4d9b7967b4c5704b60218b143a3d1b3ea5fb79) )
+ ROM_LOAD( "epr-12690.a16", 0x80000, 0x20000, CRC(33cf7a55) SHA1(405ed634c393f42544c1fe39c9cfd372f08c3fac) )
+ ROM_LOAD( "epr-12702.b16", 0xa0000, 0x10000, CRC(70b70211) SHA1(6192720031713920aa6ac4ff01d39fe148c12ff0) )
+
+ ROM_REGION16_BE( 0x200000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "epr-12694.b5", 0x000000, 0x20000, CRC(10a27526) SHA1(8299d4888d5d7530d864d7e33f264efe66272b44) )
+ ROM_LOAD16_BYTE( "epr-12691.b1", 0x000001, 0x20000, CRC(2ff5cb9e) SHA1(2468a928515640e1bdd651aaadcbc918661c3312) )
+ ROM_LOAD16_BYTE( "epr-12695.b6", 0x040000, 0x20000, CRC(ba3ba6fd) SHA1(799e9899630d417fc508af22e04c7c2526a88ee1) )
+ ROM_LOAD16_BYTE( "epr-12692.b2", 0x040001, 0x20000, CRC(01b2e832) SHA1(6b7aa350498c54a9fac54fee1e65fcada4284fd6) )
+ ROM_LOAD16_BYTE( "epr-12696.b7", 0x080000, 0x20000, CRC(54b51ca4) SHA1(2f477885500ac4c0875ae956d574334332e225b6) )
+ ROM_LOAD16_BYTE( "epr-12693.b3", 0x080001, 0x20000, CRC(d12ef57a) SHA1(e0d6d350ce20d84f12df3ab777b9aaa40b906339) )
+ ROM_LOAD16_BYTE( "epr-12678.a1", 0x100001, 0x20000, CRC(a8afd649) SHA1(f1474533b001f71a18a75bfeb65c6cf66505c63d) )
+ ROM_LOAD16_BYTE( "epr-12697.b10",0x100000, 0x20000, CRC(6ac4cbfb) SHA1(84b00eff7ee0d702d31850074d7107a2ab2d5c08) )
+ ROM_LOAD16_BYTE( "epr-12679.a2", 0x140001, 0x20000, CRC(b4c4a2ab) SHA1(7507204ac7dc6167da93d5e8645ca1ad87f88d3e) )
+ ROM_LOAD16_BYTE( "epr-12698.b11",0x140000, 0x20000, CRC(99784b36) SHA1(7ba41d4a4434f2157ce78a701cbe3d9584dd2ab6) )
+ ROM_LOAD16_BYTE( "epr-12680.a3", 0x180001, 0x20000, CRC(f321452c) SHA1(cdccd8facc2941745f05fba25ad7d76b445eb873) )
+ ROM_LOAD16_BYTE( "epr-12699.b12",0x180000, 0x20000, CRC(ac329586) SHA1(98994f41ee2f0fa5cd800f565b277ba21f2bb0c3) )
+
+ ROM_REGION( 0x90000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-12685.a10", 0x00000, 0x08000, CRC(5d0c16d7) SHA1(7ab13376c2a1da0566689ccbc258f94d1f4de487) )
+ ROM_LOAD( "mpr-12686.a11", 0x10000, 0x20000, CRC(f451705e) SHA1(2b3d1b3ffbc6ba2285c4141e6fd3447252a31c8b) )
+ ROM_LOAD( "mpr-12687.a12", 0x30000, 0x20000, CRC(9e87571f) SHA1(3b2ce36fdd53cbd41e345a3914f07bcf0f1d72cb) )
+ROM_END
//*************************************************************************************************************************
//*************************************************************************************************************************
//*************************************************************************************************************************
@@ -4955,6 +5539,38 @@ ROM_START( exctleag )
ROM_END
+ROM_START( exctleagd )
+ ROM_REGION( 0x60000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-11939.a4", 0x00000, 0x10000, CRC(42db9082) SHA1(3ac03ad9dc9b5554b0e4ded4520f957e7dc4bf6e))
+ ROM_LOAD16_BYTE( "bootleg_epr-11936.a1", 0x00001, 0x10000, CRC(8a0c126c) SHA1(8770ab22b06829ad3441c54cdc3211991fe6299b) )
+ ROM_LOAD16_BYTE( "bootleg_epr-11940.a5", 0x20000, 0x10000, CRC(e490bb47) SHA1(cc6c05b86149f2fa180c67d351df06571b48f3c8) )
+ ROM_LOAD16_BYTE( "bootleg_epr-11937.a2", 0x20001, 0x10000, CRC(f1c07e10) SHA1(844da4f2cf5b084e833a834dd70e584d69f15d33) )
+ ROM_LOAD16_BYTE( "epr-11941.a6", 0x40000, 0x10000, CRC(4df2d451) SHA1(644541b20e034a0149117874021c158bd3759e35) )
+ ROM_LOAD16_BYTE( "epr-11938.a3", 0x40001, 0x10000, CRC(07c08d47) SHA1(47d3445cfa2514918206cd29a203837a9f434b42) )
+
+ ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-11942.b09", 0x00000, 0x10000, CRC(eb70e827) SHA1(0617b4411a90087c277354c3653fe994bc4fc580) )
+ ROM_LOAD( "epr-11943.b10", 0x10000, 0x10000, CRC(d97c8982) SHA1(3e604af1771caba3aa213796c4a0812a5e352580) )
+ ROM_LOAD( "epr-11944.b11", 0x20000, 0x10000, CRC(a75cae80) SHA1(17c148a33b09b5403e68f5d96e506545c2ced206) )
+
+ ROM_REGION16_BE( 0x80000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "epr-11950.b1", 0x00001, 0x10000, CRC(af497849) SHA1(c5fdca8d3b1d83e3d377a49ecdc0fc53714afc09) )
+ ROM_LOAD16_BYTE( "epr-11954.b5", 0x00000, 0x10000, CRC(5fa2106c) SHA1(2f2620fa52d07667dff4720fea32a6615d99e522) )
+ ROM_LOAD16_BYTE( "epr-11951.b2", 0x20001, 0x10000, CRC(c04fa974) SHA1(b1a4fb8522126113d7857d559f169f09c5f51a13) )
+ ROM_LOAD16_BYTE( "epr-11955.b6", 0x20000, 0x10000, CRC(86a0c368) SHA1(ab8d6ab5c571121bf9c5d40727b1ef385a033845) )
+ ROM_LOAD16_BYTE( "epr-11952.b3", 0x40001, 0x10000, CRC(e64a9761) SHA1(e16b3a30165710abc11ab0f358cb7ef875cc672c) )
+ ROM_LOAD16_BYTE( "epr-11956.b7", 0x40000, 0x10000, CRC(aff5c2fa) SHA1(1ec76193f2abf3547fa610761147436548beccbc) )
+ ROM_LOAD16_BYTE( "epr-11953.b4", 0x60001, 0x10000, CRC(4cae3999) SHA1(22089e43a5e2e4fe672015366154e24ad38d3c19) )
+ ROM_LOAD16_BYTE( "epr-11957.b8", 0x60000, 0x10000, CRC(218f835b) SHA1(bfef3ec45665a5921c095da34701528d4d4e0e3a) )
+
+ ROM_REGION( 0x50000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-11945.a7", 0x00000, 0x8000, CRC(c2a83012) SHA1(b3de8af803497438aa3e110a9c608ac290f7d1e8) )
+ ROM_LOAD( "epr-11140.a8", 0x10000, 0x8000, CRC(b297371b) SHA1(4e787aa9ee2aeab4da30237644421df407b684a5) )
+ ROM_LOAD( "epr-11141.a9", 0x20000, 0x8000, CRC(19756aa6) SHA1(81597e17b848f6a41f5fb117296e7508297815e4) )
+ ROM_LOAD( "epr-11142.a10", 0x30000, 0x8000, CRC(25d26c66) SHA1(2485afb859f84a9cc90b2091e9ae4eef263f42b3) )
+ ROM_LOAD( "epr-11143.a11", 0x40000, 0x8000, CRC(848b7b77) SHA1(8903a39f8f0ffb4ce32117d33282876196516c30) )
+ROM_END
+
//*************************************************************************************************************************
//*************************************************************************************************************************
//*************************************************************************************************************************
@@ -5009,6 +5625,24 @@ ROM_START( fpoint )
ROM_LOAD( "epr-12592.a10", 0x0000, 0x8000, CRC(9a8c11bb) SHA1(399f8e9bdd7aaa4d25817fa9cd4bbf413e5baebe) )
ROM_END
+ROM_START( fpointd )
+ ROM_REGION( 0x20000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-12599b.a4", 0x000000, 0x10000, CRC(f5102d28) SHA1(5353e66a3c510ea394025162abe9a04c6122b19b) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12598b.a1", 0x000001, 0x10000, CRC(5335558c) SHA1(508cd878cb9653c0169532002b5e4ee0a7de98b9))
+
+ ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "opr-12593.a14", 0x00000, 0x10000, CRC(cc0582d8) SHA1(92c7d125a6dcb9c5e6e7bd92a5bf3008385ed487) )
+ ROM_LOAD( "opr-12594.a15", 0x10000, 0x10000, CRC(8bfc4815) SHA1(08d28b65e5024c592a9a289b270774ef5c553cbf) )
+ ROM_LOAD( "opr-12595.a16", 0x20000, 0x10000, CRC(5b18d60b) SHA1(8e9c81635dcefa52d1cf53c2937ae560191b5202) )
+
+ ROM_REGION16_BE( 0x20000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "opr-12596.b1", 0x00001, 0x10000, CRC(4a4041f3) SHA1(4c52b30223d8aa80ccdbb196098cb17e64ad6583) )
+ ROM_LOAD16_BYTE( "opr-12597.b5", 0x00000, 0x10000, CRC(6961e676) SHA1(7639d2da086b57a9a8d6100fdacf40d97d7c4772) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-12592.a10", 0x0000, 0x8000, CRC(9a8c11bb) SHA1(399f8e9bdd7aaa4d25817fa9cd4bbf413e5baebe) )
+ROM_END
+
//*************************************************************************************************************************
// Flash Point, Sega System 16B
// CPU: FD1094 (317-0127A)
@@ -5054,6 +5688,23 @@ ROM_START( fpoint1 )
ROM_LOAD( "epr-12592.a10", 0x0000, 0x8000, CRC(9a8c11bb) SHA1(399f8e9bdd7aaa4d25817fa9cd4bbf413e5baebe) )
ROM_END
+ROM_START( fpoint1d )
+ ROM_REGION( 0x20000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-12591b.a7", 0x000000, 0x10000, CRC(f778e067) SHA1(91b941bdeedbf037228c526cc9a9bfc926404bd6) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12590b.a5", 0x000001, 0x10000, CRC(e6e2f2cc) SHA1(6f7fecf7ce4e48bbfe91f02eb876e668c7f2fc67) )
+
+ ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "opr-12593.a14", 0x00000, 0x10000, CRC(cc0582d8) SHA1(92c7d125a6dcb9c5e6e7bd92a5bf3008385ed487) )
+ ROM_LOAD( "opr-12594.a15", 0x10000, 0x10000, CRC(8bfc4815) SHA1(08d28b65e5024c592a9a289b270774ef5c553cbf) )
+ ROM_LOAD( "opr-12595.a16", 0x20000, 0x10000, CRC(5b18d60b) SHA1(8e9c81635dcefa52d1cf53c2937ae560191b5202) )
+
+ ROM_REGION16_BE( 0x20000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "opr-12596.b1", 0x00001, 0x10000, CRC(4a4041f3) SHA1(4c52b30223d8aa80ccdbb196098cb17e64ad6583) )
+ ROM_LOAD16_BYTE( "opr-12597.b5", 0x00000, 0x10000, CRC(6961e676) SHA1(7639d2da086b57a9a8d6100fdacf40d97d7c4772) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-12592.a10", 0x0000, 0x8000, CRC(9a8c11bb) SHA1(399f8e9bdd7aaa4d25817fa9cd4bbf413e5baebe) )
+ROM_END
//*************************************************************************************************************************
//*************************************************************************************************************************
@@ -5133,6 +5784,35 @@ ROM_START( goldnaxeu )
ROM_LOAD( "mpr-12384.ic6", 0x10000, 0x20000, CRC(6218d8e7) SHA1(5a745c750efb4a61716f99befb7ed14cc84e9973) )
ROM_END
+ROM_START( goldnaxeud )
+ ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-12543.ic2", 0x00000, 0x40000, CRC(e3089080) SHA1(4e46c1a84f4d599e9f43b3009f24a2856e24615d) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12542.ic1", 0x00001, 0x40000, CRC(1e84364b) SHA1(46515ff47db08cd7d01c1857c1533bb278bdd89a) )
+
+ ROM_REGION( 0x60000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-12385.ic19", 0x00000, 0x20000, CRC(b8a4e7e0) SHA1(9b36f50209d45a835ded53eb045f63c649b02fc9) )
+ ROM_LOAD( "epr-12386.ic20", 0x20000, 0x20000, CRC(25d7d779) SHA1(2de14a76a5176d5abc7e7f7f723146c620927610) )
+ ROM_LOAD( "epr-12387.ic21", 0x40000, 0x20000, CRC(c7fcadf3) SHA1(5f0fd600a75a02749935af21e1e0d2c714c6417e) )
+
+ ROM_REGION16_BE( 0x1c0000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "mpr-12378.ic9", 0x000001, 0x20000, CRC(119e5a82) SHA1(261ed2bc4ebac7142e2ecca9f03c91242e792a98) )
+ ROM_CONTINUE( 0x100001, 0x20000 )
+ ROM_LOAD16_BYTE( "mpr-12379.ic12", 0x000000, 0x20000, CRC(1a0e8c57) SHA1(674f1ae7db632876fff346e76786801ae19d9799) )
+ ROM_CONTINUE( 0x100000, 0x20000 )
+ ROM_LOAD16_BYTE( "mpr-12380.ic10", 0x040001, 0x20000, CRC(bb2c0853) SHA1(3f3b546d078f22d787c93ee74d9ad3a6e84383ac) )
+ ROM_CONTINUE( 0x140001, 0x20000 )
+ ROM_LOAD16_BYTE( "mpr-12381.ic13", 0x040000, 0x20000, CRC(81ba6ecc) SHA1(7f59e4d86a192b97e92729371b78c3f1c784a0b5) )
+ ROM_CONTINUE( 0x140000, 0x20000 )
+ ROM_LOAD16_BYTE( "mpr-12382.ic11", 0x080001, 0x20000, CRC(81601c6f) SHA1(604bc5613c6c734a06860303ba36d61bb54508a0) )
+ ROM_CONTINUE( 0x180001, 0x20000 )
+ ROM_LOAD16_BYTE( "mpr-12383.ic14", 0x080000, 0x20000, CRC(5dbacf7a) SHA1(236866fb94672b13cbb2cb479324e61de87eeb34) )
+ ROM_CONTINUE( 0x180000, 0x20000 )
+
+ ROM_REGION( 0x90000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-12390.ic8", 0x00000, 0x08000, CRC(399fc5f5) SHA1(6f290b36dc71ff4759598e2a9c185a8945a3c9e7) )
+ ROM_LOAD( "mpr-12384.ic6", 0x10000, 0x20000, CRC(6218d8e7) SHA1(5a745c750efb4a61716f99befb7ed14cc84e9973) )
+ROM_END
+
//*************************************************************************************************************************
// Golden Axe (Japan), Sega System 16B
// CPU: FD1094 (317-0121)
@@ -5174,6 +5854,37 @@ ROM_START( goldnaxej )
ROM_LOAD( "mpr-12384.a11", 0x10000, 0x20000, CRC(6218d8e7) SHA1(5a745c750efb4a61716f99befb7ed14cc84e9973) )
ROM_END
+ROM_START( goldnaxejd )
+ ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-12540.a7", 0x00000, 0x20000, CRC(601bb784) SHA1(eb6eea4d3b54ac59a82de76e5e5d8f4b60d34cf4) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12539.a5", 0x00001, 0x20000, CRC(c76c0969) SHA1(d6b4902e7ed8a936dfe7aba8f242668269ce1059) )
+ ROM_LOAD16_BYTE( "epr-12521.a8", 0x40000, 0x20000, CRC(5001d713) SHA1(68cf3f48d6e440e5b800503a211adda02107d956) )
+ ROM_LOAD16_BYTE( "epr-12519.a6", 0x40001, 0x20000, CRC(4438ca8e) SHA1(0af53d64f06abf41f4c46540d28d5f008a4835a3) )
+
+ ROM_REGION( 0x60000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-12385.a14", 0x00000, 0x20000, CRC(b8a4e7e0) SHA1(9b36f50209d45a835ded53eb045f63c649b02fc9) )
+ ROM_LOAD( "epr-12386.a15", 0x20000, 0x20000, CRC(25d7d779) SHA1(2de14a76a5176d5abc7e7f7f723146c620927610) )
+ ROM_LOAD( "epr-12387.a16", 0x40000, 0x20000, CRC(c7fcadf3) SHA1(5f0fd600a75a02749935af21e1e0d2c714c6417e) )
+
+ ROM_REGION16_BE( 0x1c0000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "mpr-12378.b1", 0x000001, 0x20000, CRC(119e5a82) SHA1(261ed2bc4ebac7142e2ecca9f03c91242e792a98) )
+ ROM_CONTINUE( 0x100001, 0x20000 )
+ ROM_LOAD16_BYTE( "mpr-12379.b5", 0x000000, 0x20000, CRC(1a0e8c57) SHA1(674f1ae7db632876fff346e76786801ae19d9799) )
+ ROM_CONTINUE( 0x100000, 0x20000 )
+ ROM_LOAD16_BYTE( "mpr-12380.b2", 0x040001, 0x20000, CRC(bb2c0853) SHA1(3f3b546d078f22d787c93ee74d9ad3a6e84383ac) )
+ ROM_CONTINUE( 0x140001, 0x20000 )
+ ROM_LOAD16_BYTE( "mpr-12381.b6", 0x040000, 0x20000, CRC(81ba6ecc) SHA1(7f59e4d86a192b97e92729371b78c3f1c784a0b5) )
+ ROM_CONTINUE( 0x140000, 0x20000 )
+ ROM_LOAD16_BYTE( "mpr-12382.b3", 0x080001, 0x20000, CRC(81601c6f) SHA1(604bc5613c6c734a06860303ba36d61bb54508a0) )
+ ROM_CONTINUE( 0x180001, 0x20000 )
+ ROM_LOAD16_BYTE( "mpr-12383.b7", 0x080000, 0x20000, CRC(5dbacf7a) SHA1(236866fb94672b13cbb2cb479324e61de87eeb34) )
+ ROM_CONTINUE( 0x180000, 0x20000 )
+
+ ROM_REGION( 0x50000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-12390.a10", 0x00000, 0x08000, CRC(399fc5f5) SHA1(6f290b36dc71ff4759598e2a9c185a8945a3c9e7) )
+ ROM_LOAD( "mpr-12384.a11", 0x10000, 0x20000, CRC(6218d8e7) SHA1(5a745c750efb4a61716f99befb7ed14cc84e9973) )
+ROM_END
+
//*************************************************************************************************************************
// Golden Axe (World), Sega System 16B
// CPU: FD1094 (317-0120)
@@ -5215,6 +5926,37 @@ ROM_START( goldnaxe3 )
ROM_LOAD( "mpr-12384.a11", 0x10000, 0x20000, CRC(6218d8e7) SHA1(5a745c750efb4a61716f99befb7ed14cc84e9973) )
ROM_END
+ROM_START( goldnaxe3d )
+ ROM_REGION( 0x80000, "maincpu", 0) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-12525.a7", 0x00000, 0x20000, CRC(f8dbae51) SHA1(4831bf5f9ca087c4b2f2446fee31a5090901784d) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12524.a5", 0x00001, 0x20000, CRC(908e4159) SHA1(666297a7a67f6fbaadbb237b10e8c854f91e4280) )
+ ROM_LOAD16_BYTE( "epr-12521.a8", 0x40000, 0x20000, CRC(5001d713) SHA1(68cf3f48d6e440e5b800503a211adda02107d956) )
+ ROM_LOAD16_BYTE( "epr-12519.a6", 0x40001, 0x20000, CRC(4438ca8e) SHA1(0af53d64f06abf41f4c46540d28d5f008a4835a3) )
+
+ ROM_REGION( 0x60000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-12385.a14", 0x00000, 0x20000, CRC(b8a4e7e0) SHA1(9b36f50209d45a835ded53eb045f63c649b02fc9) )
+ ROM_LOAD( "epr-12386.a15", 0x20000, 0x20000, CRC(25d7d779) SHA1(2de14a76a5176d5abc7e7f7f723146c620927610) )
+ ROM_LOAD( "epr-12387.a16", 0x40000, 0x20000, CRC(c7fcadf3) SHA1(5f0fd600a75a02749935af21e1e0d2c714c6417e) )
+
+ ROM_REGION16_BE( 0x1c0000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "mpr-12378.b1", 0x000001, 0x20000, CRC(119e5a82) SHA1(261ed2bc4ebac7142e2ecca9f03c91242e792a98) )
+ ROM_CONTINUE( 0x100001, 0x20000 )
+ ROM_LOAD16_BYTE( "mpr-12379.b5", 0x000000, 0x20000, CRC(1a0e8c57) SHA1(674f1ae7db632876fff346e76786801ae19d9799) )
+ ROM_CONTINUE( 0x100000, 0x20000 )
+ ROM_LOAD16_BYTE( "mpr-12380.b2", 0x040001, 0x20000, CRC(bb2c0853) SHA1(3f3b546d078f22d787c93ee74d9ad3a6e84383ac) )
+ ROM_CONTINUE( 0x140001, 0x20000 )
+ ROM_LOAD16_BYTE( "mpr-12381.b6", 0x040000, 0x20000, CRC(81ba6ecc) SHA1(7f59e4d86a192b97e92729371b78c3f1c784a0b5) )
+ ROM_CONTINUE( 0x140000, 0x20000 )
+ ROM_LOAD16_BYTE( "mpr-12382.b3", 0x080001, 0x20000, CRC(81601c6f) SHA1(604bc5613c6c734a06860303ba36d61bb54508a0) )
+ ROM_CONTINUE( 0x180001, 0x20000 )
+ ROM_LOAD16_BYTE( "mpr-12383.b7", 0x080000, 0x20000, CRC(5dbacf7a) SHA1(236866fb94672b13cbb2cb479324e61de87eeb34) )
+ ROM_CONTINUE( 0x180000, 0x20000 )
+
+ ROM_REGION( 0x50000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-12390.a10", 0x00000, 0x08000, CRC(399fc5f5) SHA1(6f290b36dc71ff4759598e2a9c185a8945a3c9e7) )
+ ROM_LOAD( "mpr-12384.a11", 0x10000, 0x20000, CRC(6218d8e7) SHA1(5a745c750efb4a61716f99befb7ed14cc84e9973) )
+ROM_END
+
//*************************************************************************************************************************
// Golden Axe (Japan), Sega System 16B
// CPU: 68000 + i8751 (317-0112)
@@ -5293,6 +6035,34 @@ ROM_START( goldnaxe1 )
ROM_LOAD( "mpr-12384.ic6", 0x10000, 0x20000, CRC(6218d8e7) SHA1(5a745c750efb4a61716f99befb7ed14cc84e9973) )
ROM_END
+ROM_START( goldnaxe1d )
+ ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-12389.ic2", 0x00000, 0x40000, CRC(0c443d5e) SHA1(3229a811700b6edf58dd98f9ecf93862104229c8) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12388.ic1", 0x00001, 0x40000, CRC(841d70ed) SHA1(b095039c68da86e5757c04b3a4d65785d30c3dbb) )
+
+ ROM_REGION( 0x60000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-12385.ic19", 0x00000, 0x20000, CRC(b8a4e7e0) SHA1(9b36f50209d45a835ded53eb045f63c649b02fc9) )
+ ROM_LOAD( "epr-12386.ic20", 0x20000, 0x20000, CRC(25d7d779) SHA1(2de14a76a5176d5abc7e7f7f723146c620927610) )
+ ROM_LOAD( "epr-12387.ic21", 0x40000, 0x20000, CRC(c7fcadf3) SHA1(5f0fd600a75a02749935af21e1e0d2c714c6417e) )
+
+ ROM_REGION16_BE( 0x1c0000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "mpr-12378.ic9", 0x000001, 0x20000, CRC(119e5a82) SHA1(261ed2bc4ebac7142e2ecca9f03c91242e792a98) )
+ ROM_CONTINUE( 0x100001, 0x20000 )
+ ROM_LOAD16_BYTE( "mpr-12379.ic12", 0x000000, 0x20000, CRC(1a0e8c57) SHA1(674f1ae7db632876fff346e76786801ae19d9799) )
+ ROM_CONTINUE( 0x100000, 0x20000 )
+ ROM_LOAD16_BYTE( "mpr-12380.ic10", 0x040001, 0x20000, CRC(bb2c0853) SHA1(3f3b546d078f22d787c93ee74d9ad3a6e84383ac) )
+ ROM_CONTINUE( 0x140001, 0x20000 )
+ ROM_LOAD16_BYTE( "mpr-12381.ic13", 0x040000, 0x20000, CRC(81ba6ecc) SHA1(7f59e4d86a192b97e92729371b78c3f1c784a0b5) )
+ ROM_CONTINUE( 0x140000, 0x20000 )
+ ROM_LOAD16_BYTE( "mpr-12382.ic11", 0x080001, 0x20000, CRC(81601c6f) SHA1(604bc5613c6c734a06860303ba36d61bb54508a0) )
+ ROM_CONTINUE( 0x180001, 0x20000 )
+ ROM_LOAD16_BYTE( "mpr-12383.ic14", 0x080000, 0x20000, CRC(5dbacf7a) SHA1(236866fb94672b13cbb2cb479324e61de87eeb34) )
+ ROM_CONTINUE( 0x180000, 0x20000 )
+
+ ROM_REGION( 0x90000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-12390.ic8", 0x00000, 0x08000, CRC(399fc5f5) SHA1(6f290b36dc71ff4759598e2a9c185a8945a3c9e7) )
+ ROM_LOAD( "mpr-12384.ic6", 0x10000, 0x20000, CRC(6218d8e7) SHA1(5a745c750efb4a61716f99befb7ed14cc84e9973) )
+ROM_END
//*************************************************************************************************************************
//*************************************************************************************************************************
@@ -5391,6 +6161,45 @@ ROM_START( hwchampj )
ROM_LOAD( "pls153.bin", 0x0000, 0x00eb, CRC(39b47212) SHA1(432b47aee5ecbf08a8a6dc2f8379c816feb86328) )
ROM_END
+ROM_START( hwchampjd )
+ ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-11152.a7", 0x000000, 0x20000, CRC(3672978a) SHA1(3cc0601d16243566ee1eb45d3c204f0e8c4370cc) )
+ ROM_LOAD16_BYTE( "bootleg_epr-11153.a5", 0x000001, 0x20000, CRC(804b65bc) SHA1(0d1ed6cf07cb77c9220f22fb3dcfe8b666cfb357) )
+
+ ROM_REGION( 0xc0000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-11202.a14", 0x00000, 0x20000, CRC(7c94ede3) SHA1(66e75c2eec5b507b67706eae718de621246cbdc8) )
+ ROM_LOAD( "epr-11213.b14", 0x20000, 0x20000, CRC(aeaaa9d8) SHA1(6b7e5320f515c1c35445d3320b3edaef911191e1) )
+ ROM_LOAD( "epr-11203.a15", 0x40000, 0x20000, CRC(327754f7) SHA1(57dc9830d9d63d5b843faca326c2714a580c8b38) )
+ ROM_LOAD( "epr-11214.b15", 0x60000, 0x20000, CRC(63a82afa) SHA1(a02bbb6dd84cdf7cdab8e738c6927f5b1e3fcad5) )
+ ROM_LOAD( "epr-11204.a16", 0x80000, 0x20000, CRC(dfc4cd33) SHA1(880af38b6a3cb52220e7b4f0999cfafade0535f9) )
+ ROM_LOAD( "epr-11215.b16", 0xA0000, 0x20000, CRC(5b8494a8) SHA1(9e3f09f4037a007b6a188dd81ec8f9c635e87650) )
+
+ ROM_REGION16_BE( 0x200000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "epr-11205.b1", 0x000001, 0x010000, CRC(fc098a13) SHA1(b4a6e00d4765265bad170dabf0b2a4a58e063b16) )
+ ROM_CONTINUE( 0x020001, 0x010000 )
+ ROM_LOAD16_BYTE( "epr-11209.b5", 0x000000, 0x010000, CRC(5db934a8) SHA1(ba7cc93025af71ad2674b1376b61afbb7ae910ff) )
+ ROM_CONTINUE( 0x020000, 0x010000 )
+ ROM_LOAD16_BYTE( "epr-11206.b2", 0x040001, 0x010000, CRC(1f27ee74) SHA1(a60d50a4f501623187c067a3c17bff49151ca3b2) )
+ ROM_CONTINUE( 0x060001, 0x010000 )
+ ROM_LOAD16_BYTE( "epr-11210.b6", 0x040000, 0x010000, CRC(8a6a5cf1) SHA1(28b22aa326682ef3b54891dda7aa9a432da12a4d) )
+ ROM_CONTINUE( 0x060000, 0x010000 )
+ ROM_LOAD16_BYTE( "epr-11207.b3", 0x080001, 0x010000, CRC(c0b2ba82) SHA1(30349c86a99bbe3dfb423027ad534a9333e27679) )
+ ROM_CONTINUE( 0x0a0001, 0x010000 )
+ ROM_LOAD16_BYTE( "epr-11211.b7", 0x080000, 0x010000, CRC(d6c7917b) SHA1(8b313a5634c14f4c90bfa9f9616d600283f72768) )
+ ROM_CONTINUE( 0x0a0000, 0x010000 )
+ ROM_LOAD16_BYTE( "epr-11208.b4", 0x0c0001, 0x010000, CRC(35c9e44b) SHA1(2de32cb684c46d1169d8afcb0d3058d08e452a49) )
+ ROM_CONTINUE( 0x0e0001, 0x010000 )
+ ROM_LOAD16_BYTE( "epr-11212.b8", 0x0c0000, 0x010000, CRC(57e8f9d2) SHA1(1804677820d05a421120660f91e3a5f1df1e6a8d) )
+ ROM_CONTINUE( 0x0e0000, 0x010000 )
+
+ ROM_REGION( 0x50000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-11154.a10", 0x00000, 0x08000, CRC(65791275) SHA1(4fc0dca24411845a3a63282089fad756dedd12d6) )
+ ROM_LOAD( "epr-11200.a11", 0x10000, 0x20000, CRC(5c41a68a) SHA1(a7357adf3bd777669a8a506f31374615dfbad932) )
+ ROM_LOAD( "epr-11201.a12", 0x30000, 0x20000, CRC(9a993120) SHA1(0c1ad7568b727e86926b3442e24840de81864dff) )
+
+ ROM_REGION( 0x0100, "plds", 0 )
+ ROM_LOAD( "pls153.bin", 0x0000, 0x00eb, CRC(39b47212) SHA1(432b47aee5ecbf08a8a6dc2f8379c816feb86328) )
+ROM_END
//*************************************************************************************************************************
//*************************************************************************************************************************
@@ -5435,6 +6244,40 @@ ROM_START( mvp )
ROM_LOAD( "epr-13001.a11", 0x10000, 0x40000, CRC(e8cace8c) SHA1(5f47b935d927f2aa5f7a5f6dc52f5380baebe1bb) )
ROM_END
+ROM_START( mvpd )
+ ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-13000.a2", 0x000000, 0x40000, CRC(fa72e415) SHA1(2ab8c2239f05b5df4dbff3c283f90e4e7ddf612d) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12999.a1", 0x000001, 0x40000, CRC(0af75927) SHA1(9984c7c2ab957c05d6a15e9287bd8653261f1806) )
+
+ ROM_REGION( 0xc0000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-13011.b11", 0x00000, 0x40000, CRC(1cb871fc) SHA1(d20a46e538d57b25d78faa7deb9c11519b4111d3) )
+ ROM_LOAD( "epr-13012.b12", 0x40000, 0x40000, CRC(b75e6821) SHA1(a2b049995755d79a136a4b4b0dc78d902c5b9eed) )
+ ROM_LOAD( "epr-13013.b13", 0x80000, 0x40000, CRC(f1944a3c) SHA1(db59cadb435c26f3a957bd4996a083fa30c8bbd0) )
+
+ ROM_REGION16_BE( 0x200000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "epr-13003.b1", 0x000001, 0x20000, CRC(21424151) SHA1(156e15eee9ff7122c30a42bfec0b307073b7a375) )
+ ROM_CONTINUE( 0x100001, 0x20000 )
+ ROM_LOAD16_BYTE( "epr-13006.b4", 0x000000, 0x20000, CRC(2e9afd2f) SHA1(7fe0929e70e061878065fab2d26309066d14c038) )
+ ROM_CONTINUE( 0x100000, 0x20000 )
+ ROM_LOAD16_BYTE( "epr-13004.b2", 0x040001, 0x20000, CRC(0aa09dd3) SHA1(0cd58d29efa714e52c494ee1ec8a0e90c0a03e3c) )
+ ROM_CONTINUE( 0x140001, 0x20000 )
+ ROM_LOAD16_BYTE( "epr-13007.b5", 0x040000, 0x20000, CRC(55c8605b) SHA1(6c81e5f9bcd61f6e67c87ea5b25a8fe1ee50f14d) )
+ ROM_CONTINUE( 0x140000, 0x20000 )
+ ROM_LOAD16_BYTE( "epr-13005.b3", 0x080001, 0x20000, CRC(c899c810) SHA1(a251cfd8f99f2c2f98585cc9ba1d86f08b2eca51) )
+ ROM_CONTINUE( 0x180001, 0x20000 )
+ ROM_LOAD16_BYTE( "epr-13008.b6", 0x080000, 0x20000, CRC(b3d46dfc) SHA1(27a5c58d5fd974fbbb12b535a49aa7fb3f7d3f6a) )
+ ROM_CONTINUE( 0x180000, 0x20000 )
+ ROM_LOAD16_BYTE( "epr-13009.b7", 0x0c0001, 0x20000, CRC(126d2e37) SHA1(91317d3bcc4f918a8607cc0c383181c3641ebccf) )
+ ROM_CONTINUE( 0x1c0001, 0x20000 )
+ ROM_LOAD16_BYTE( "epr-13010.b8", 0x0c0000, 0x20000, CRC(df37c567) SHA1(05c959e379a3e20fe5e70912410e3bae4db13905) )
+ ROM_CONTINUE( 0x1c0000, 0x20000 )
+
+ ROM_REGION( 0x90000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-13002.a13", 0x00000, 0x08000, CRC(1b6e1515) SHA1(1816d48dcb1bfd819a2cfa55fb51e1ca04ad4feb) )
+ ROM_LOAD( "epr-13001.a11", 0x10000, 0x40000, CRC(e8cace8c) SHA1(5f47b935d927f2aa5f7a5f6dc52f5380baebe1bb) )
+ROM_END
+
+
//*************************************************************************************************************************
// MVP (Japan), Sega System 16B
// CPU: FD1094 (317-0142)
@@ -5478,6 +6321,41 @@ ROM_START( mvpj )
ROM_LOAD( "epr-12970.a11", 0x10000, 0x20000, CRC(8f7d7657) SHA1(c8d7ef4b227ed73b8f7b98104818cba3e3015933) )
ROM_END
+ROM_START( mvpjd )
+ ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-12967.a7", 0x00000, 0x20000, CRC(7eb52b77) SHA1(5da8e381bad5dba6b83da86908dd7d8c81bc98e6) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12965.a5", 0x00001, 0x20000, CRC(62c961b0) SHA1(211d4c8df62c6418472c62b99b5aff98ab331f3c) )
+ ROM_LOAD16_BYTE( "epr-12968.a8", 0x40000, 0x20000, CRC(91c772ac) SHA1(e656faa794e6df9c7e4adaf44fba721753cbb16d) )
+ ROM_LOAD16_BYTE( "epr-12966.a6", 0x40001, 0x20000, CRC(39365a79) SHA1(91bdb2e2776416c258be35156888304be973ac21) )
+
+ ROM_REGION( 0xc0000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-12971.a14", 0x00000, 0x20000, CRC(245dcd1f) SHA1(e0f2683798292236931014eece808a47ccc2309b) )
+ ROM_LOAD( "epr-12983.b14", 0x20000, 0x20000, CRC(f3570fc9) SHA1(3a3f100a6d0cb48f340dadc7d61e50fd8f99bb15) )
+ ROM_LOAD( "epr-12972.a15", 0x40000, 0x20000, CRC(ff7c4278) SHA1(55b4d0a2e81c8e9afb61d1f1b51c2af2f7fec088) )
+ ROM_LOAD( "epr-12984.b15", 0x60000, 0x20000, CRC(d37d1876) SHA1(5411edf1812f6643da1de670993baa6b66b8560b) )
+ ROM_LOAD( "epr-12973.a16", 0x80000, 0x20000, CRC(8dc9b9ea) SHA1(048e129874c6ee9f34c5ee1722b8dffa6db8841c) )
+ ROM_LOAD( "epr-12985.b16", 0xa0000, 0x20000, CRC(e3f33a8a) SHA1(e7bcc882dcfa926040d0e3e0df54ed924a6b146a) )
+
+ ROM_REGION16_BE( 0x200000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "epr-12977.b5", 0x000000, 0x20000, CRC(b9eb9762) SHA1(dfcf607b2bc3c742770936a5476335506d778a2d) )
+ ROM_LOAD16_BYTE( "epr-12974.b1", 0x000001, 0x20000, CRC(e1da5597) SHA1(55e1e0948896f2afbb3b967847a341ee5afac751) )
+ ROM_LOAD16_BYTE( "epr-12978.b6", 0x040000, 0x20000, CRC(014b5442) SHA1(ab6273bd5107c837f33d31ba5e7efce752ee3649) )
+ ROM_LOAD16_BYTE( "epr-12975.b2", 0x040001, 0x20000, CRC(364d51d1) SHA1(ca9cd9b6dca70206a72fbeb088131f2f0b994a3b) )
+ ROM_LOAD16_BYTE( "epr-12979.b7", 0x080000, 0x20000, CRC(20f603f8) SHA1(9838450b933c2847a28447424b569da61bb31e77) )
+ ROM_LOAD16_BYTE( "epr-12976.b3", 0x080001, 0x20000, CRC(43b549c0) SHA1(6fb2d5f4140ed88f9548f9b52bfbc2a29e086d70) )
+ ROM_LOAD16_BYTE( "epr-12962.a1", 0x100001, 0x20000, CRC(9b678da3) SHA1(5b76602e4ca558e95e1b90ff2d198fe2c90c52ee) )
+ ROM_LOAD16_BYTE( "epr-12980.b10",0x100000, 0x20000, CRC(883b792a) SHA1(9ce2655b6f77352142c6af4fd9f83f141dab942f) )
+ ROM_LOAD16_BYTE( "epr-12963.a2", 0x140001, 0x20000, CRC(8870f95a) SHA1(f504df78c74d957006de573e272d93901094f292) )
+ ROM_LOAD16_BYTE( "epr-12981.b11",0x140000, 0x20000, CRC(48636cb0) SHA1(4f47ea9213821de4ec3b197cc233d7d94ed79cf9) )
+ // not 100% sure these 2 go here or at 0x0c0000 (where are they used?)
+ ROM_LOAD16_BYTE( "epr-12964.a3", 0x180001, 0x20000, CRC(f9148c5d) SHA1(217d3527eded0a0332e11d09b84268b28600e6de) )
+ ROM_LOAD16_BYTE( "epr-12982.b12",0x180000, 0x20000, CRC(c4453292) SHA1(1540e0819d21adf0e950f9dc2f2a706b5973935d) )
+
+ ROM_REGION( 0x90000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-12969.a10", 0x00000, 0x08000, CRC(ec621893) SHA1(39fe8e7a05ca43ebf9689f5faf1487064aa43263) )
+ ROM_LOAD( "epr-12970.a11", 0x10000, 0x20000, CRC(8f7d7657) SHA1(c8d7ef4b227ed73b8f7b98104818cba3e3015933) )
+ROM_END
+
//*************************************************************************************************************************
//*************************************************************************************************************************
@@ -5522,6 +6400,32 @@ ROM_START( passsht )
ROM_LOAD( "epr-11861.a11", 0x40000, 0x08000, CRC(38b54a71) SHA1(68ec4ef5b115844214ff2213be1ce6678904fbd2) )
ROM_END
+ROM_START( passshtd )
+ ROM_REGION( 0x20000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-11871.a4", 0x000000, 0x10000, CRC(f009c017) SHA1(27824264dc4d0cb20209f8fad7af620fa6df268c) )
+ ROM_LOAD16_BYTE( "bootleg_epr-11870.a1", 0x000001, 0x10000, CRC(9cd5f12f) SHA1(5a282a891980534a41e5b61e5f36ba93fc183418) )
+
+ ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "opr-11854.b9", 0x00000, 0x10000, CRC(d31c0b6c) SHA1(610d04988da70c30300cc5614817eda9d2204f39) )
+ ROM_LOAD( "opr-11855.b10", 0x10000, 0x10000, CRC(b78762b4) SHA1(d594ef846bd7fed8da91a89906b39c1a2867a1fe) )
+ ROM_LOAD( "opr-11856.b11", 0x20000, 0x10000, CRC(ea49f666) SHA1(36ccd32cdcbb7fcc300628bb59c220ec3c324d82) )
+
+ ROM_REGION16_BE( 0x60000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "opr-11862.b1", 0x00001, 0x10000, CRC(b6e94727) SHA1(0838e034f1f10d9cd1312c8c94b5c57387c0c271) )
+ ROM_LOAD16_BYTE( "opr-11865.b5", 0x00000, 0x10000, CRC(17e8d5d5) SHA1(ac1074b0a705be13c6e3391441e6cfec1d2b3f8a) )
+ ROM_LOAD16_BYTE( "opr-11863.b2", 0x20001, 0x10000, CRC(3e670098) SHA1(2cfc83f4294be30cd868738886ac546bd8489962) )
+ ROM_LOAD16_BYTE( "opr-11866.b6", 0x20000, 0x10000, CRC(50eb71cc) SHA1(463b4917ca19c7f4ad2c2845caa104d5e4a2dda3) )
+ ROM_LOAD16_BYTE( "opr-11864.b3", 0x40001, 0x10000, CRC(05733ca8) SHA1(1dbc7c99450ebe6a9fd8c0244fd3cb38b74984ef) )
+ ROM_LOAD16_BYTE( "opr-11867.b7", 0x40000, 0x10000, CRC(81e49697) SHA1(a70fa409e3555ad6c8f28930a7026fdf2deb8c65) )
+
+ ROM_REGION( 0x50000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-11857.a7", 0x00000, 0x08000, CRC(789edc06) SHA1(8c89c94e503513c287807d187de78a7fbd75a7cf) )
+ ROM_LOAD( "epr-11858.a8", 0x10000, 0x08000, CRC(08ab0018) SHA1(0685f80a7d403208c9cfffea3f2035324f3924fe) )
+ ROM_LOAD( "epr-11859.a9", 0x20000, 0x08000, CRC(8673e01b) SHA1(e79183ab30e683fdf61ced2e9dbe010567c324cb) )
+ ROM_LOAD( "epr-11860.a10", 0x30000, 0x08000, CRC(10263746) SHA1(1f981fb185c6a9795208ecdcfba36cf892a99ed5) )
+ ROM_LOAD( "epr-11861.a11", 0x40000, 0x08000, CRC(38b54a71) SHA1(68ec4ef5b115844214ff2213be1ce6678904fbd2) )
+ROM_END
+
//*************************************************************************************************************************
// Passing Shot (World, 4 Players), Sega System 16B
// CPU: FD1094 No. 317-0074
@@ -5529,8 +6433,8 @@ ROM_END
//
ROM_START( passshta )
ROM_REGION( 0x20000, "maincpu", 0 ) // 68000 code
- ROM_LOAD16_BYTE( "8.4a", 0x000000, 0x10000, CRC(b84dc139) SHA1(6cd65a62bf092d8c4785ad8b2618c77d2cfca8e0) ) // no epr# on chips
- ROM_LOAD16_BYTE( "5.1a", 0x000001, 0x10000, CRC(effe29df) SHA1(e9274454257fb28519be70cefa04157115c5e29c) ) // no epr# on chips
+ ROM_LOAD16_BYTE( "8.a4", 0x000000, 0x10000, CRC(b84dc139) SHA1(6cd65a62bf092d8c4785ad8b2618c77d2cfca8e0) ) // no epr# on chips
+ ROM_LOAD16_BYTE( "5.a1", 0x000001, 0x10000, CRC(effe29df) SHA1(e9274454257fb28519be70cefa04157115c5e29c) ) // no epr# on chips
ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
ROM_LOAD( "317-0074.key", 0x0000, 0x2000, CRC(71bd232d) SHA1(59825414e373b0fb367d6fbac1e82ad4bd6817f1) )
@@ -5556,6 +6460,32 @@ ROM_START( passshta )
ROM_LOAD( "epr-11861.a11", 0x40000, 0x08000, CRC(38b54a71) SHA1(68ec4ef5b115844214ff2213be1ce6678904fbd2) )
ROM_END
+ROM_START( passshtad )
+ ROM_REGION( 0x20000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_8.a4", 0x000000, 0x10000, CRC(6d63bf18) SHA1(a58d90e866d54911e736fbb07d39e3d1be8ac7cd) )
+ ROM_LOAD16_BYTE( "bootleg_5.a1", 0x000001, 0x10000, CRC(fd4d0419) SHA1(30293f78758826c5ddf551085a52ea8bebc391e8) )
+
+ ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "opr-11854.b9", 0x00000, 0x10000, CRC(d31c0b6c) SHA1(610d04988da70c30300cc5614817eda9d2204f39) )
+ ROM_LOAD( "opr-11855.b10", 0x10000, 0x10000, CRC(b78762b4) SHA1(d594ef846bd7fed8da91a89906b39c1a2867a1fe) )
+ ROM_LOAD( "opr-11856.b11", 0x20000, 0x10000, CRC(ea49f666) SHA1(36ccd32cdcbb7fcc300628bb59c220ec3c324d82) )
+
+ ROM_REGION16_BE( 0x60000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "opr-11862.b1", 0x00001, 0x10000, CRC(b6e94727) SHA1(0838e034f1f10d9cd1312c8c94b5c57387c0c271) )
+ ROM_LOAD16_BYTE( "opr-11865.b5", 0x00000, 0x10000, CRC(17e8d5d5) SHA1(ac1074b0a705be13c6e3391441e6cfec1d2b3f8a) )
+ ROM_LOAD16_BYTE( "opr-11863.b2", 0x20001, 0x10000, CRC(3e670098) SHA1(2cfc83f4294be30cd868738886ac546bd8489962) )
+ ROM_LOAD16_BYTE( "opr-11866.b6", 0x20000, 0x10000, CRC(50eb71cc) SHA1(463b4917ca19c7f4ad2c2845caa104d5e4a2dda3) )
+ ROM_LOAD16_BYTE( "opr-11864.b3", 0x40001, 0x10000, CRC(05733ca8) SHA1(1dbc7c99450ebe6a9fd8c0244fd3cb38b74984ef) )
+ ROM_LOAD16_BYTE( "opr-11867.b7", 0x40000, 0x10000, CRC(81e49697) SHA1(a70fa409e3555ad6c8f28930a7026fdf2deb8c65) )
+
+ ROM_REGION( 0x50000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-11857.a7", 0x00000, 0x08000, CRC(789edc06) SHA1(8c89c94e503513c287807d187de78a7fbd75a7cf) )
+ ROM_LOAD( "epr-11858.a8", 0x10000, 0x08000, CRC(08ab0018) SHA1(0685f80a7d403208c9cfffea3f2035324f3924fe) )
+ ROM_LOAD( "epr-11859.a9", 0x20000, 0x08000, CRC(8673e01b) SHA1(e79183ab30e683fdf61ced2e9dbe010567c324cb) )
+ ROM_LOAD( "epr-11860.a10", 0x30000, 0x08000, CRC(10263746) SHA1(1f981fb185c6a9795208ecdcfba36cf892a99ed5) )
+ ROM_LOAD( "epr-11861.a11", 0x40000, 0x08000, CRC(38b54a71) SHA1(68ec4ef5b115844214ff2213be1ce6678904fbd2) )
+ROM_END
+
//*************************************************************************************************************************
// Passing Shot (Japan, 4 Players), Sega System 16B
// CPU: FD1094 No. 317-0070
@@ -5597,6 +6527,33 @@ ROM_START( passshtj )
ROM_LOAD( "epr-11861.a11", 0x40000, 0x08000, CRC(38b54a71) SHA1(68ec4ef5b115844214ff2213be1ce6678904fbd2) )
ROM_END
+
+ROM_START( passshtjd )
+ ROM_REGION( 0x20000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-11853.a4", 0x000000, 0x10000, CRC(af289531) SHA1(5b02add14a3b75efa0fca0de8c5b5f88d3ef276e) )
+ ROM_LOAD16_BYTE( "bootleg_epr-11852.a1", 0x000001, 0x10000, CRC(ce765977) SHA1(86b47d7701f33f8371e54ad0b076a207f1922de0) )
+
+ ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "opr-11854.b9", 0x00000, 0x10000, CRC(d31c0b6c) SHA1(610d04988da70c30300cc5614817eda9d2204f39) )
+ ROM_LOAD( "opr-11855.b10", 0x10000, 0x10000, CRC(b78762b4) SHA1(d594ef846bd7fed8da91a89906b39c1a2867a1fe) )
+ ROM_LOAD( "opr-11856.b11", 0x20000, 0x10000, CRC(ea49f666) SHA1(36ccd32cdcbb7fcc300628bb59c220ec3c324d82) )
+
+ ROM_REGION16_BE( 0x60000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "opr-11862.b1", 0x00001, 0x10000, CRC(b6e94727) SHA1(0838e034f1f10d9cd1312c8c94b5c57387c0c271) )
+ ROM_LOAD16_BYTE( "opr-11865.b5", 0x00000, 0x10000, CRC(17e8d5d5) SHA1(ac1074b0a705be13c6e3391441e6cfec1d2b3f8a) )
+ ROM_LOAD16_BYTE( "opr-11863.b2", 0x20001, 0x10000, CRC(3e670098) SHA1(2cfc83f4294be30cd868738886ac546bd8489962) )
+ ROM_LOAD16_BYTE( "opr-11866.b6", 0x20000, 0x10000, CRC(50eb71cc) SHA1(463b4917ca19c7f4ad2c2845caa104d5e4a2dda3) )
+ ROM_LOAD16_BYTE( "opr-11864.b3", 0x40001, 0x10000, CRC(05733ca8) SHA1(1dbc7c99450ebe6a9fd8c0244fd3cb38b74984ef) )
+ ROM_LOAD16_BYTE( "opr-11867.b7", 0x40000, 0x10000, CRC(81e49697) SHA1(a70fa409e3555ad6c8f28930a7026fdf2deb8c65) )
+
+ ROM_REGION( 0x50000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-11857.a7", 0x00000, 0x08000, CRC(789edc06) SHA1(8c89c94e503513c287807d187de78a7fbd75a7cf) )
+ ROM_LOAD( "epr-11858.a8", 0x10000, 0x08000, CRC(08ab0018) SHA1(0685f80a7d403208c9cfffea3f2035324f3924fe) )
+ ROM_LOAD( "epr-11859.a9", 0x20000, 0x08000, CRC(8673e01b) SHA1(e79183ab30e683fdf61ced2e9dbe010567c324cb) )
+ ROM_LOAD( "epr-11860.a10", 0x30000, 0x08000, CRC(10263746) SHA1(1f981fb185c6a9795208ecdcfba36cf892a99ed5) )
+ ROM_LOAD( "epr-11861.a11", 0x40000, 0x08000, CRC(38b54a71) SHA1(68ec4ef5b115844214ff2213be1ce6678904fbd2) )
+ROM_END
+
//*************************************************************************************************************************
// Center Court (World, 4 Players - Prototype / Location Test), Sega System 16B
// CPU: 68000 + MC8123 (handwritten label "CENTER COURT 7/13 - '88")
@@ -5715,6 +6672,27 @@ ROM_START( ryukyu )
ROM_END
+ROM_START( ryukyud )
+ ROM_REGION( 0x20000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-13348.a7", 0x00000, 0x10000, CRC(3a96bdcd) SHA1(5097a5d022eb046826c9e06f61db2c482306abeb) )
+ ROM_LOAD16_BYTE( "bootleg_epr-13347.a5", 0x00001, 0x10000, CRC(99fddef0) SHA1(e05a1b50430a22c2425e7cf8903aeb4f24140cae) )
+
+ ROM_REGION( 0x60000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "opr-13351.a14", 0x00000, 0x20000, CRC(a68a4e6d) SHA1(ee3e317c7184b41af5dd383d41f7be3eebff0d04) )
+ ROM_LOAD( "opr-13352.a15", 0x20000, 0x20000, CRC(5e5531e4) SHA1(e8e16b35f7985e6cdd77353ca5235db518914744) )
+ ROM_LOAD( "opr-13353.a16", 0x40000, 0x20000, CRC(6d23dfd8) SHA1(21266340290b9854cee0b62fc107cc2981519a80) )
+
+ ROM_REGION16_BE( 0x80000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "opr-13354.b1", 0x00001, 0x20000, CRC(f07aad99) SHA1(71759525a5b7fe76d112cec93984f0f89cadbc00) )
+ ROM_LOAD16_BYTE( "opr-13356.b5", 0x00000, 0x20000, CRC(5498290b) SHA1(b3115b636d8cb6ecac22d5264b7961e3b807cf04) )
+ ROM_LOAD16_BYTE( "opr-13355.b2", 0x40001, 0x20000, CRC(67890019) SHA1(165c6a32f305273396ec0e9499e00329caadc484) )
+ ROM_LOAD16_BYTE( "opr-13357.b6", 0x40000, 0x20000, CRC(f9e7cf03) SHA1(2258111499c79443faf84fb0495007016282bb3c) )
+
+ ROM_REGION( 0x50000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-13349.a10", 0x00000, 0x08000, CRC(b83183f8) SHA1(9d6127f51c04a16bb2637dc9992b843b94613c2b) )
+ ROM_LOAD( "opr-13350.a11", 0x10000, 0x20000, CRC(3c59a658) SHA1(2cef13ee9e666bb850fe6c6e6954d7b75df665a9) )
+ROM_END
+
//*************************************************************************************************************************
//*************************************************************************************************************************
//*************************************************************************************************************************
@@ -5819,6 +6797,178 @@ ROM_START( sdibl )
ROM_END
+
+ROM_START(sdibl2)
+ ROM_REGION16_BE(0x40000, "maincpu", 0) // 68000 data
+ ROM_LOAD16_BYTE("de1", 0x00000, 0x08000, CRC(56f6fd26) SHA1(15ca2567102f931329163b76a2be4cf8fb634cc4) )
+ ROM_LOAD16_BYTE("do1", 0x00001, 0x08000, CRC(549c759f) SHA1(253b544fd4353d4ca81ccd60488f6eb810ed84b1) )
+ ROM_LOAD16_BYTE("de2", 0x10000, 0x08000, CRC(b0a9ad05) SHA1(f413b306c8bc51718fbb459efff8357dde5b5a85) )
+ ROM_LOAD16_BYTE("do2", 0x10001, 0x08000, CRC(54b7ec04) SHA1(5c94566dca6ca53949702569bccd8a73d9becb60) )
+ ROM_LOAD16_BYTE("de3", 0x20000, 0x08000, CRC(8ee2c287) SHA1(8ed98334dab51c2eab8e1ff0724abc1f819dc8c2) )
+ ROM_LOAD16_BYTE("do3", 0x20001, 0x08000, CRC(193e4231) SHA1(14fecfab010641b83e5b24d0e8003bc0de35e1c8) )
+
+ ROM_REGION16_BE(0x40000, "maincpux", 0) // 68000 code
+ ROM_LOAD16_BYTE("pe1", 0x00000, 0x08000, CRC(f0a190c0) SHA1(f8438017cb3e3a59042283bdb63bb53514ab6cf5) )
+ ROM_LOAD16_BYTE("po1", 0x00001, 0x08000, CRC(f68c4d0e) SHA1(123f0422b7f764d05d34e98aa16c8c99fed21f80) )
+ ROM_LOAD16_BYTE("pe2", 0x10000, 0x08000, CRC(109c9afd) SHA1(8bba819fc46d4927dfffc7a6a69292623299a987) )
+ ROM_LOAD16_BYTE("po2", 0x10001, 0x08000, CRC(6d614e76) SHA1(82b7730a640ddde6529a7449d3c43fa1592abac1) )
+ ROM_LOAD16_BYTE("pe3", 0x20000, 0x08000, CRC(589e2cfe) SHA1(b5052bab9e890d923ec99205393d3301ac80f1cd) )
+ ROM_LOAD16_BYTE("po3", 0x20001, 0x08000, CRC(57ba57b2) SHA1(32a1f37844425f42155573a617ce26f8c1954440) )
+
+ ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-10772.b9", 0x00000, 0x10000, CRC(182b6301) SHA1(bb6f1174f82611c801d2b4b7d3596bf71619e8a1) )
+ ROM_LOAD( "epr-10773.b10", 0x10000, 0x10000, CRC(8f7129a2) SHA1(094a4065597d8d51fb2232546df1de9043fea731) )
+ ROM_LOAD( "epr-10774.b11", 0x20000, 0x10000, CRC(4409411f) SHA1(84fd7128e8440d96b0384ae3c391a59bd37ecf9d) )
+
+ ROM_REGION16_BE( 0x60000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "10760.b1", 0x00001, 0x010000, CRC(70de327b) SHA1(11dde9cefd993f5fb02baf5809fae6c1176a58a1) )
+ ROM_LOAD16_BYTE( "10763.b5", 0x00000, 0x010000, CRC(99ec5cb5) SHA1(933a2216a2c772fc82499c739457865b1c75cdb8) )
+ ROM_LOAD16_BYTE( "10761.b2", 0x20001, 0x010000, CRC(4e80f80d) SHA1(d168235bdf09317545c999676a4adf015df32366) )
+ ROM_LOAD16_BYTE( "10764.b6", 0x20000, 0x010000, CRC(602da5d5) SHA1(d32cdde7d86c4561e7bfa547d7d7995ce9a43c24) )
+ ROM_LOAD16_BYTE( "10762.b3", 0x40001, 0x010000, CRC(464b5f78) SHA1(b730964a54e6a63fa5b7cc2cbf9ec0ab650626d5) )
+ ROM_LOAD16_BYTE( "10765.b7", 0x40000, 0x010000, CRC(0a73a057) SHA1(7f31124c67541a245e069e5b6aac59935d99a9a9) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "a7.rom", 0x0000, 0x8000, CRC(793f9f7f) SHA1(9e4fde376db9e99a83eb2fc734c6721c122ba9af) )
+ROM_END
+
+ROM_START(sdibl3)
+ ROM_REGION16_BE(0x40000, "maincpu", 0) // 68000 data
+ ROM_LOAD16_BYTE("de1a", 0x00000, 0x08000, CRC(3908c6a0) SHA1(36ee48a993c55806982443364bd9d3372a801e63) )
+ ROM_LOAD16_BYTE("do1a", 0x00001, 0x08000, CRC(cd7b7750) SHA1(4b19e845d17146ee755ec1151f6dafed464e6dfc) )
+ ROM_LOAD16_BYTE("de2a", 0x10000, 0x08000, CRC(f45f6935) SHA1(0b3edbec4701ff9beabacf20f0204adb185a03d1) )
+ ROM_LOAD16_BYTE("do2a", 0x10001, 0x08000, CRC(d3d3efaa) SHA1(751a92287ebb26fcb27d27c95b5e37a8d6497117) )
+ ROM_LOAD16_BYTE("de3", 0x20000, 0x08000, CRC(8ee2c287) SHA1(8ed98334dab51c2eab8e1ff0724abc1f819dc8c2) )
+ ROM_LOAD16_BYTE("do3", 0x20001, 0x08000, CRC(193e4231) SHA1(14fecfab010641b83e5b24d0e8003bc0de35e1c8) )
+
+ ROM_REGION16_BE(0x40000, "maincpux", 0) // 68000 code
+ ROM_LOAD16_BYTE("pe1a", 0x00000, 0x08000, CRC(e4d8f399) SHA1(5f331d9d29f352eca2533a48a26e479aa5bf0acd) )
+ ROM_LOAD16_BYTE("po1a", 0x00001, 0x08000, CRC(910f9532) SHA1(e718f6e4960d8b4772e5f100ba7c7df2eb2b8cb9) )
+ ROM_LOAD16_BYTE("pe2a", 0x10000, 0x08000, CRC(76a261b1) SHA1(b6cd6ef27f76a8f794fe0adf1bec41ec00d3cf3b) )
+ ROM_LOAD16_BYTE("po2a", 0x10001, 0x08000, CRC(2cd18da8) SHA1(ba72b28011555647ad487841b3949146a90ef2d2) )
+ ROM_LOAD16_BYTE("pe3a", 0x20000, 0x08000, CRC(19120b62) SHA1(3e0aef2c694cb51477348ddafa0e6ce6df960f0e) )
+ ROM_LOAD16_BYTE("po3a", 0x20001, 0x08000, CRC(4dce4361) SHA1(0e1f5b5af7ade8e3b54a5a18b94b6e9a24e0a328) )
+
+ ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-10772.b9", 0x00000, 0x10000, CRC(182b6301) SHA1(bb6f1174f82611c801d2b4b7d3596bf71619e8a1) )
+ ROM_LOAD( "epr-10773.b10", 0x10000, 0x10000, CRC(8f7129a2) SHA1(094a4065597d8d51fb2232546df1de9043fea731) )
+ ROM_LOAD( "epr-10774.b11", 0x20000, 0x10000, CRC(4409411f) SHA1(84fd7128e8440d96b0384ae3c391a59bd37ecf9d) )
+
+ ROM_REGION16_BE( 0x60000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "10760.b1", 0x00001, 0x010000, CRC(70de327b) SHA1(11dde9cefd993f5fb02baf5809fae6c1176a58a1) )
+ ROM_LOAD16_BYTE( "10763.b5", 0x00000, 0x010000, CRC(99ec5cb5) SHA1(933a2216a2c772fc82499c739457865b1c75cdb8) )
+ ROM_LOAD16_BYTE( "10761.b2", 0x20001, 0x010000, CRC(4e80f80d) SHA1(d168235bdf09317545c999676a4adf015df32366) )
+ ROM_LOAD16_BYTE( "10764.b6", 0x20000, 0x010000, CRC(602da5d5) SHA1(d32cdde7d86c4561e7bfa547d7d7995ce9a43c24) )
+ ROM_LOAD16_BYTE( "10762.b3", 0x40001, 0x010000, CRC(464b5f78) SHA1(b730964a54e6a63fa5b7cc2cbf9ec0ab650626d5) )
+ ROM_LOAD16_BYTE( "10765.b7", 0x40000, 0x010000, CRC(0a73a057) SHA1(7f31124c67541a245e069e5b6aac59935d99a9a9) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "a7.rom", 0x0000, 0x8000, CRC(793f9f7f) SHA1(9e4fde376db9e99a83eb2fc734c6721c122ba9af) )
+ROM_END
+
+ROM_START(sdibl4)
+ ROM_REGION16_BE(0x40000, "maincpu", 0) // 68000 data
+ ROM_LOAD16_BYTE("de1b", 0x00000, 0x08000, CRC(8045bfd1) SHA1(42e84f6f0f23ee3176727cb127a8a2192ec395f0) )
+ ROM_LOAD16_BYTE("do1b", 0x00001, 0x08000, CRC(8f86f2ad) SHA1(66694460769af9034e8c48739707b68624ea1e20) )
+ ROM_LOAD16_BYTE("de2b", 0x10000, 0x08000, CRC(1b284afd) SHA1(8064a8949ad5c42dcb358c7668ae296e423b0ff6) )
+ ROM_LOAD16_BYTE("do2b", 0x10001, 0x08000, CRC(8c979a2b) SHA1(fbc2694a424e0df9e0b3f2db84257903d4de1c34) )
+ ROM_LOAD16_BYTE("de3", 0x20000, 0x08000, CRC(8ee2c287) SHA1(8ed98334dab51c2eab8e1ff0724abc1f819dc8c2) )
+ ROM_LOAD16_BYTE("do3", 0x20001, 0x08000, CRC(193e4231) SHA1(14fecfab010641b83e5b24d0e8003bc0de35e1c8) )
+
+ ROM_REGION16_BE(0x40000, "maincpux", 0) // 68000 code
+ ROM_LOAD16_BYTE("pe1b", 0x00000, 0x08000, CRC(aba84f5e) SHA1(bc94a383c167c422c1e1d230dd6485bf84d7e897) )
+ ROM_LOAD16_BYTE("po1b", 0x00001, 0x08000, CRC(249278a3) SHA1(7178937fbe6ccf96b5c2a11f450651fdd4cce282) )
+ ROM_LOAD16_BYTE("pe2b", 0x10000, 0x08000, CRC(480d4379) SHA1(dad57296a995513814edd9210e6d54161b13e7e3) )
+ ROM_LOAD16_BYTE("po2b", 0x10001, 0x08000, CRC(f27eae0b) SHA1(7cb9735bffe8a8962f6272722fcbf187f47d1832) )
+ ROM_LOAD16_BYTE("pe3a", 0x20000, 0x08000, CRC(19120b62) SHA1(3e0aef2c694cb51477348ddafa0e6ce6df960f0e) )
+ ROM_LOAD16_BYTE("po3a", 0x20001, 0x08000, CRC(4dce4361) SHA1(0e1f5b5af7ade8e3b54a5a18b94b6e9a24e0a328) )
+
+ ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-10772.b9", 0x00000, 0x10000, CRC(182b6301) SHA1(bb6f1174f82611c801d2b4b7d3596bf71619e8a1) )
+ ROM_LOAD( "epr-10773.b10", 0x10000, 0x10000, CRC(8f7129a2) SHA1(094a4065597d8d51fb2232546df1de9043fea731) )
+ ROM_LOAD( "epr-10774.b11", 0x20000, 0x10000, CRC(4409411f) SHA1(84fd7128e8440d96b0384ae3c391a59bd37ecf9d) )
+
+ ROM_REGION16_BE( 0x60000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "10760.b1", 0x00001, 0x010000, CRC(70de327b) SHA1(11dde9cefd993f5fb02baf5809fae6c1176a58a1) )
+ ROM_LOAD16_BYTE( "10763.b5", 0x00000, 0x010000, CRC(99ec5cb5) SHA1(933a2216a2c772fc82499c739457865b1c75cdb8) )
+ ROM_LOAD16_BYTE( "10761.b2", 0x20001, 0x010000, CRC(4e80f80d) SHA1(d168235bdf09317545c999676a4adf015df32366) )
+ ROM_LOAD16_BYTE( "10764.b6", 0x20000, 0x010000, CRC(602da5d5) SHA1(d32cdde7d86c4561e7bfa547d7d7995ce9a43c24) )
+ ROM_LOAD16_BYTE( "10762.b3", 0x40001, 0x010000, CRC(464b5f78) SHA1(b730964a54e6a63fa5b7cc2cbf9ec0ab650626d5) )
+ ROM_LOAD16_BYTE( "10765.b7", 0x40000, 0x010000, CRC(0a73a057) SHA1(7f31124c67541a245e069e5b6aac59935d99a9a9) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "a7.rom", 0x0000, 0x8000, CRC(793f9f7f) SHA1(9e4fde376db9e99a83eb2fc734c6721c122ba9af) )
+ROM_END
+
+ROM_START(sdibl5)
+ ROM_REGION(0x40000, "maincpu", 0) // 68000 data
+ ROM_LOAD16_BYTE("de1c", 0x00000, 0x08000, CRC(3e3d4cc1) SHA1(5a72da8ad074123fccdc8760d599a404c862d355) )
+ ROM_LOAD16_BYTE("do1c", 0x00001, 0x08000, CRC(a71ad68c) SHA1(6c5056304f1e84be6362a03b4d066658a343eead) )
+ ROM_LOAD16_BYTE("de2c", 0x10000, 0x08000, CRC(770bbec5) SHA1(2ece8e4f9cc5f5de6d30e16edfdcc93715a5cb30) )
+ ROM_LOAD16_BYTE("do2c", 0x10001, 0x08000, CRC(0f1f339f) SHA1(c8e9f5965cd3a4f4b494357db8e17d54a29e0ed0) )
+ ROM_LOAD16_BYTE("de3", 0x20000, 0x08000, CRC(8ee2c287) SHA1(8ed98334dab51c2eab8e1ff0724abc1f819dc8c2) )
+ ROM_LOAD16_BYTE("do3", 0x20001, 0x08000, CRC(193e4231) SHA1(14fecfab010641b83e5b24d0e8003bc0de35e1c8) )
+
+ ROM_REGION16_BE(0x40000, "maincpux", 0) // 68000 code
+ ROM_LOAD16_BYTE("pe1c", 0x00000, 0x08000, CRC(d7d444d5) SHA1(8db101540f2559cf92291ad35da22f9e71c2bdee) )
+ ROM_LOAD16_BYTE("po1c", 0x00001, 0x08000, CRC(1bc879dd) SHA1(217e5eab23d38141ae4db0de0a245fdb8bbc1cce) )
+ ROM_LOAD16_BYTE("pe2c", 0x10000, 0x08000, CRC(5cd1bfc8) SHA1(17eb1244bac1b51c55c517207e11f8c72055e3c2) )
+ ROM_LOAD16_BYTE("po2c", 0x10001, 0x08000, CRC(b404d1be) SHA1(9d68c47c2feeea6e6f827eaf3f179018ebc3779b) )
+ ROM_LOAD16_BYTE("pe3a", 0x20000, 0x08000, CRC(19120b62) SHA1(3e0aef2c694cb51477348ddafa0e6ce6df960f0e) )
+ ROM_LOAD16_BYTE("po3a", 0x20001, 0x08000, CRC(4dce4361) SHA1(0e1f5b5af7ade8e3b54a5a18b94b6e9a24e0a328) )
+
+ ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-10772.b9", 0x00000, 0x10000, CRC(182b6301) SHA1(bb6f1174f82611c801d2b4b7d3596bf71619e8a1) )
+ ROM_LOAD( "epr-10773.b10", 0x10000, 0x10000, CRC(8f7129a2) SHA1(094a4065597d8d51fb2232546df1de9043fea731) )
+ ROM_LOAD( "epr-10774.b11", 0x20000, 0x10000, CRC(4409411f) SHA1(84fd7128e8440d96b0384ae3c391a59bd37ecf9d) )
+
+ ROM_REGION16_BE( 0x60000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "10760.b1", 0x00001, 0x010000, CRC(70de327b) SHA1(11dde9cefd993f5fb02baf5809fae6c1176a58a1) )
+ ROM_LOAD16_BYTE( "10763.b5", 0x00000, 0x010000, CRC(99ec5cb5) SHA1(933a2216a2c772fc82499c739457865b1c75cdb8) )
+ ROM_LOAD16_BYTE( "10761.b2", 0x20001, 0x010000, CRC(4e80f80d) SHA1(d168235bdf09317545c999676a4adf015df32366) )
+ ROM_LOAD16_BYTE( "10764.b6", 0x20000, 0x010000, CRC(602da5d5) SHA1(d32cdde7d86c4561e7bfa547d7d7995ce9a43c24) )
+ ROM_LOAD16_BYTE( "10762.b3", 0x40001, 0x010000, CRC(464b5f78) SHA1(b730964a54e6a63fa5b7cc2cbf9ec0ab650626d5) )
+ ROM_LOAD16_BYTE( "10765.b7", 0x40000, 0x010000, CRC(0a73a057) SHA1(7f31124c67541a245e069e5b6aac59935d99a9a9) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "a7.rom", 0x0000, 0x8000, CRC(793f9f7f) SHA1(9e4fde376db9e99a83eb2fc734c6721c122ba9af) )
+ROM_END
+
+ROM_START(sdibl6)
+ ROM_REGION(0x40000, "maincpu", 0) // 68000 data
+ ROM_LOAD16_BYTE("de1c", 0x00000, 0x08000, CRC(3e3d4cc1) SHA1(5a72da8ad074123fccdc8760d599a404c862d355) )
+ ROM_LOAD16_BYTE("do1c", 0x00001, 0x08000, CRC(a71ad68c) SHA1(6c5056304f1e84be6362a03b4d066658a343eead) )
+ ROM_LOAD16_BYTE("de2c", 0x10000, 0x08000, CRC(770bbec5) SHA1(2ece8e4f9cc5f5de6d30e16edfdcc93715a5cb30) )
+ ROM_LOAD16_BYTE("do2c", 0x10001, 0x08000, CRC(0f1f339f) SHA1(c8e9f5965cd3a4f4b494357db8e17d54a29e0ed0) )
+ ROM_LOAD16_BYTE("de3", 0x20000, 0x08000, CRC(8ee2c287) SHA1(8ed98334dab51c2eab8e1ff0724abc1f819dc8c2) )
+ ROM_LOAD16_BYTE("do3", 0x20001, 0x08000, CRC(193e4231) SHA1(14fecfab010641b83e5b24d0e8003bc0de35e1c8) )
+
+ ROM_REGION16_BE(0x40000, "maincpux", 0) // 68000 code
+ ROM_LOAD16_BYTE("pe1d", 0x00000, 0x08000, CRC(c8b9e556) SHA1(e7b6945b8dc9a70b04f30ac947df9375d570c640) )
+ ROM_LOAD16_BYTE("po1d", 0x00001, 0x08000, CRC(38eaeeb1) SHA1(e65dbedeb2c0f1de3dddcb9a13b3f8310af12f5f) )
+ ROM_LOAD16_BYTE("pe2c", 0x10000, 0x08000, CRC(5cd1bfc8) SHA1(17eb1244bac1b51c55c517207e11f8c72055e3c2) )
+ ROM_LOAD16_BYTE("po2c", 0x10001, 0x08000, CRC(b404d1be) SHA1(9d68c47c2feeea6e6f827eaf3f179018ebc3779b) )
+ ROM_LOAD16_BYTE("pe3a", 0x20000, 0x08000, CRC(19120b62) SHA1(3e0aef2c694cb51477348ddafa0e6ce6df960f0e) )
+ ROM_LOAD16_BYTE("po3d", 0x20001, 0x08000, CRC(b1e5c2f1) SHA1(81922293fb7b765f173d1bf4b2f763edec6a3305) )
+
+ ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-10772.b9", 0x00000, 0x10000, CRC(182b6301) SHA1(bb6f1174f82611c801d2b4b7d3596bf71619e8a1) )
+ ROM_LOAD( "epr-10773.b10", 0x10000, 0x10000, CRC(8f7129a2) SHA1(094a4065597d8d51fb2232546df1de9043fea731) )
+ ROM_LOAD( "epr-10774.b11", 0x20000, 0x10000, CRC(4409411f) SHA1(84fd7128e8440d96b0384ae3c391a59bd37ecf9d) )
+
+ ROM_REGION16_BE( 0x60000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "10760.b1", 0x00001, 0x010000, CRC(70de327b) SHA1(11dde9cefd993f5fb02baf5809fae6c1176a58a1) )
+ ROM_LOAD16_BYTE( "10763.b5", 0x00000, 0x010000, CRC(99ec5cb5) SHA1(933a2216a2c772fc82499c739457865b1c75cdb8) )
+ ROM_LOAD16_BYTE( "10761.b2", 0x20001, 0x010000, CRC(4e80f80d) SHA1(d168235bdf09317545c999676a4adf015df32366) )
+ ROM_LOAD16_BYTE( "10764.b6", 0x20000, 0x010000, CRC(602da5d5) SHA1(d32cdde7d86c4561e7bfa547d7d7995ce9a43c24) )
+ ROM_LOAD16_BYTE( "10762.b3", 0x40001, 0x010000, CRC(464b5f78) SHA1(b730964a54e6a63fa5b7cc2cbf9ec0ab650626d5) )
+ ROM_LOAD16_BYTE( "10765.b7", 0x40000, 0x010000, CRC(0a73a057) SHA1(7f31124c67541a245e069e5b6aac59935d99a9a9) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "a7.rom", 0x0000, 0x8000, CRC(793f9f7f) SHA1(9e4fde376db9e99a83eb2fc734c6721c122ba9af) )
+ROM_END
+
+
//*************************************************************************************************************************
//*************************************************************************************************************************
//*************************************************************************************************************************
@@ -5953,6 +7103,34 @@ ROM_START( shinobi2 )
ROM_LOAD( "epr-11289.a9", 0x20000, 0x8000, CRC(e5a4cf30) SHA1(d1982da7a550c11ab2253f5d64ac6ab847da0a04) )
ROM_END
+ROM_START( shinobi2d )
+ ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-11282.a4", 0x00000, 0x10000, CRC(b930399d) SHA1(955ff2948e1990463631b0bc5c7f5275384236cc) )
+ ROM_LOAD16_BYTE( "bootleg_epr-11280.a1", 0x00001, 0x10000, CRC(343f4c46) SHA1(2cf5d00462ad85ae9a2e16d59171c8ab85e10f49) )
+ ROM_LOAD16_BYTE( "epr-11283.a5", 0x20000, 0x10000, CRC(9d46e707) SHA1(37ab25b3b37365c9f45837bfb6ec80652691dd4c) )
+ ROM_LOAD16_BYTE( "epr-11281.a2", 0x20001, 0x10000, CRC(7961d07e) SHA1(38cbdab35f901532c0ad99ad0083513abd2ff182) )
+
+ ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-11284.b9", 0x00000, 0x10000, CRC(5f62e163) SHA1(03f008745a1af84142ada647acf3601049f43ad5) )
+ ROM_LOAD( "epr-11285.b10", 0x10000, 0x10000, CRC(75f8fbc9) SHA1(29072edcd583af60ec66b4c8bb82b179a3751edf) )
+ ROM_LOAD( "epr-11286.b11", 0x20000, 0x10000, CRC(06508bb9) SHA1(57c9036123ec8e35d0275ab6eaff25a16aa203d4) )
+
+ ROM_REGION16_BE( 0x80000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "epr-11290.b1", 0x00001, 0x10000, CRC(611f413a) SHA1(180f83216e2dfbfd77b0fb3be83c3042954d12df) )
+ ROM_LOAD16_BYTE( "epr-11294.b5", 0x00000, 0x10000, CRC(5eb00fc1) SHA1(97e02eee74f61fabcad2a9e24f1868cafaac1d51) )
+ ROM_LOAD16_BYTE( "epr-11291.b2", 0x20001, 0x10000, CRC(3c0797c0) SHA1(df18c7987281bd9379026c6cf7f96f6ae49fd7f9) )
+ ROM_LOAD16_BYTE( "epr-11295.b6", 0x20000, 0x10000, CRC(25307ef8) SHA1(91ffbe436f80d583524ee113a8b7c0cf5d8ab286) )
+ ROM_LOAD16_BYTE( "epr-11292.b3", 0x40001, 0x10000, CRC(c29ac34e) SHA1(b5e9b8c3233a7d6797f91531a0d9123febcf1660) )
+ ROM_LOAD16_BYTE( "epr-11296.b7", 0x40000, 0x10000, CRC(04a437f8) SHA1(ea5fed64443236e3404fab243761e60e2e48c84c) )
+ ROM_LOAD16_BYTE( "epr-11293.b4", 0x60001, 0x10000, CRC(41f41063) SHA1(5cc461e9738dddf9eea06831fce3702d94674163) )
+ ROM_LOAD16_BYTE( "epr-11297.b8", 0x60000, 0x10000, CRC(b6e1fd72) SHA1(eb86e4bf880bd1a1d9bcab3f2f2e917bcaa06172) )
+
+ ROM_REGION( 0x50000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-11287.a7", 0x00000, 0x8000, CRC(e8cccd42) SHA1(39cbf9298540b9d5a26f47fcf6c9b89b6cead6c9) )
+ ROM_LOAD( "epr-11288.a8", 0x10000, 0x8000, CRC(c8df8460) SHA1(0aeb41a493df155edb5f600f53ec43b798927dff) )
+ ROM_LOAD( "epr-11289.a9", 0x20000, 0x8000, CRC(e5a4cf30) SHA1(d1982da7a550c11ab2253f5d64ac6ab847da0a04) )
+ROM_END
+
//*************************************************************************************************************************
//*************************************************************************************************************************
@@ -6006,6 +7184,33 @@ ROM_START( sonicbom )
ROM_LOAD( "epr-11349.a9", 0x20000, 0x8000, CRC(8e4b6204) SHA1(ec0a2812b4726b5ff236f2fbb63fd2dd13cf4935) )
ROM_END
+ROM_START( sonicbomd )
+ ROM_REGION( 0x040000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-11342.a4", 0x000000, 0x10000, CRC(089158ef) SHA1(25c2685a39a0341dcb59f55dd0b5c7a7b8ee70d4) )
+ ROM_LOAD16_BYTE( "bootleg_epr-11340.a1", 0x000001, 0x10000, CRC(253cbd27) SHA1(72dd84ce85fe651747477153b0bbaa870d3166f8) )
+ ROM_LOAD16_BYTE( "epr-11343.a5", 0x020000, 0x10000, CRC(edfeb7d4) SHA1(0f703e028f9ca9f3c4f5563f3c65ec9b938074a5) )
+ ROM_LOAD16_BYTE( "epr-11341.a2", 0x020001, 0x10000, CRC(0338f771) SHA1(a1a2928eb3f9826733bad54bbf17f622d9307285) )
+
+ ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "opr-11344.b9", 0x00000, 0x10000, CRC(59a9f940) SHA1(b1c13cfa9609a22cbe047ee39681ccf8d0b3cf9c) )
+ ROM_LOAD( "opr-11345.b10", 0x10000, 0x10000, CRC(b44c068b) SHA1(05e875dc418aef12fc48d1df44f680249f6952de) )
+ ROM_LOAD( "opr-11346.b11", 0x20000, 0x10000, CRC(e5ada66c) SHA1(7e8e34ea909848d0d1b1fcccf628bf9ec169ae9b) )
+
+ ROM_REGION16_BE( 0x80000, "sprites", ROMREGION_ERASE00 ) // sprites
+ ROM_LOAD16_BYTE( "opr-11350.b1", 0x00001, 0x010000, CRC(525ba1df) SHA1(e35487c8bf4009a767e54258d9a55056d13ba02a) )
+ ROM_LOAD16_BYTE( "opr-11354.b5", 0x00000, 0x010000, CRC(793fa3ac) SHA1(14d5a71667b4745d5b556cc15334dd9bff8de93f) )
+ ROM_LOAD16_BYTE( "opr-11351.b2", 0x20001, 0x010000, CRC(63b1f1ca) SHA1(1f19a3af099d4a6ad196968b0a3c17a11384e474) )
+ ROM_LOAD16_BYTE( "opr-11355.b6", 0x20000, 0x010000, CRC(fe0fa332) SHA1(15ea820f87399e35b798969d3800614701a61161) )
+ ROM_LOAD16_BYTE( "opr-11352.b3", 0x40001, 0x010000, CRC(047fa4b0) SHA1(d6c6f920a71db7734000cb64f3001145c4e05c6e) )
+ ROM_LOAD16_BYTE( "opr-11356.b7", 0x40000, 0x010000, CRC(aea3c39d) SHA1(2a4f01463b3f29c8d6858c3e99ef70ac548598b4) )
+ ROM_LOAD16_BYTE( "opr-11353.b4", 0x60001, 0x010000, CRC(4e0791f8) SHA1(3278bfd478a2fdbcf2d641268c9ca4ccd5a5bd2f) )
+ ROM_LOAD16_BYTE( "opr-11357.b8", 0x60000, 0x010000, CRC(a7c5ea41) SHA1(405e6ebd2cff22179de70fd31fae5ff967fbaf63) )
+
+ ROM_REGION( 0x50000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-11347.a7", 0x00000, 0x8000, CRC(b41f0ced) SHA1(946b58c0f5b4541fac93add065916319302fe5e0) )
+ ROM_LOAD( "epr-11348.a8", 0x10000, 0x8000, CRC(89924588) SHA1(9b97da0f562c5faaf12e0f3f8943cdb4fe7a9d24) )
+ ROM_LOAD( "epr-11349.a9", 0x20000, 0x8000, CRC(8e4b6204) SHA1(ec0a2812b4726b5ff236f2fbb63fd2dd13cf4935) )
+ROM_END
//*************************************************************************************************************************
//*************************************************************************************************************************
@@ -6129,6 +7334,24 @@ ROM_START( tetris2 )
ROM_LOAD( "epr-12168.a7", 0x0000, 0x8000, CRC(bd9ba01b) SHA1(fafa7dc36cc057a50ae4cdf7a35f3594292336f4) )
ROM_END
+ROM_START( tetris2d )
+ ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-12193.a7", 0x000000, 0x10000, CRC(e8c59f9d) SHA1(88aa9c7868b914e5cbd3fc0def5d61d5d5c37d21) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12192.a5", 0x000001, 0x10000, CRC(8ff44f5f) SHA1(a590d695c7d802ad7afe77990dd15775c03c727a) )
+
+ ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-12165.b9", 0x00000, 0x10000, CRC(62640221) SHA1(c311d3847a981d0e1609f9b3d80481565d32d78c) )
+ ROM_LOAD( "epr-12166.b10", 0x10000, 0x10000, CRC(9abd183b) SHA1(621b017cb34973f9227be383e26b5cd41aea9422) )
+ ROM_LOAD( "epr-12167.b11", 0x20000, 0x10000, CRC(2495fd4e) SHA1(2db94ead9223a67238a97e724668076fc43e5534) )
+
+ ROM_REGION16_BE( 0x020000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "epr-12194.b1", 0x00001, 0x10000, CRC(2fb38880) SHA1(0e1b601bbda78d1887951c1f7e752531c281bc83) ) // 28 pin Fujitsu MB831000 MASK rom
+ ROM_LOAD16_BYTE( "epr-12195.b5", 0x00000, 0x10000, CRC(d6a02cba) SHA1(d80000f92e754e89c6ca7b7273feab448fc9a061) ) // 28 pin Fujitsu MB831000 MASK rom
+
+ ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-12168.a7", 0x0000, 0x8000, CRC(bd9ba01b) SHA1(fafa7dc36cc057a50ae4cdf7a35f3594292336f4) )
+ROM_END
+
//*************************************************************************************************************************
// Tetris, Sega System 16B
// CPU: FD1094 (317-0091)
@@ -6168,6 +7391,23 @@ ROM_START( tetris1 )
ROM_LOAD( "epr-12168.a7", 0x0000, 0x8000, CRC(bd9ba01b) SHA1(fafa7dc36cc057a50ae4cdf7a35f3594292336f4) )
ROM_END
+ROM_START( tetris1d )
+ ROM_REGION( 0x10000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-12163.a1", 0x000001, 0x08000, CRC(451ea7a1) SHA1(2a787277cc2cb6112c2958de639ea92cc52115eb) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12164.a4", 0x000000, 0x08000, CRC(39469b3d) SHA1(6cdac33a80f0ea16ac7990af7079ffe276d60cb8) )
+
+ ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-12165.b9", 0x00000, 0x10000, CRC(62640221) SHA1(c311d3847a981d0e1609f9b3d80481565d32d78c) )
+ ROM_LOAD( "epr-12166.b10", 0x10000, 0x10000, CRC(9abd183b) SHA1(621b017cb34973f9227be383e26b5cd41aea9422) )
+ ROM_LOAD( "epr-12167.b11", 0x20000, 0x10000, CRC(2495fd4e) SHA1(2db94ead9223a67238a97e724668076fc43e5534) )
+
+ ROM_REGION16_BE( 0x10000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "epr-12169.b1", 0x0001, 0x8000, CRC(dacc6165) SHA1(87b1a7643e3630ff73b2b117752496e1ea5da23d) )
+ ROM_LOAD16_BYTE( "epr-12170.b5", 0x0000, 0x8000, CRC(87354e42) SHA1(e7fd55aee59b51d82cb9b619fbb815ad6839560c) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-12168.a7", 0x0000, 0x8000, CRC(bd9ba01b) SHA1(fafa7dc36cc057a50ae4cdf7a35f3594292336f4) )
+ROM_END
//*************************************************************************************************************************
//*************************************************************************************************************************
@@ -6383,6 +7623,30 @@ ROM_START( wb34 )
ROM_LOAD( "epr-12127.a10", 0x0000, 0x8000, CRC(0bb901bb) SHA1(c81b198df8e3b0ec568032c76addf0d1a1711194) )
ROM_END
+ROM_START( wb34d )
+ ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-12131.a7", 0x000000, 0x20000, CRC(64e864b1) SHA1(35ff3c2e9a53391ab7be9e2b479bb6ee3fc86600) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12128.a5", 0x000001, 0x20000, CRC(1b0fdaec) SHA1(41de62e185a75009fbb96d5c434d29321af29b4e) )
+
+ ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-12124.a14", 0x00000, 0x10000, CRC(dacefb6f) SHA1(789a5a99ad9419aee9da5397bcea34452ea8b4b3) )
+ ROM_LOAD( "epr-12125.a15", 0x10000, 0x10000, CRC(9fc36df7) SHA1(b39ccc687489e9781181197505fc78aa5cf7ea55) )
+ ROM_LOAD( "epr-12126.a16", 0x20000, 0x10000, CRC(a693fd94) SHA1(38e5446f41b6793a8e4134fdd92b02b86e3589f7) )
+
+ ROM_REGION16_BE( 0x100000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "epr-12090.b1", 0x00001, 0x010000, CRC(aeeecfca) SHA1(496124b170a725ad863c741d4e021ab947511e4c) )
+ ROM_LOAD16_BYTE( "epr-12094.b5", 0x00000, 0x010000, CRC(615e4927) SHA1(d23f164973afa770714e284a77ddf10f18cc596b) )
+ ROM_LOAD16_BYTE( "epr-12091.b2", 0x40001, 0x010000, CRC(8409a243) SHA1(bcbb9510a6499d8147543d6befa5a49f4ac055d9) )
+ ROM_LOAD16_BYTE( "epr-12095.b6", 0x40000, 0x010000, CRC(e774ec2c) SHA1(a4aa15ec7be5539a740ad02ff720458018dbc536) )
+ ROM_LOAD16_BYTE( "epr-12092.b3", 0x80001, 0x010000, CRC(5c2f0d90) SHA1(e0fbc0f841e4607ad232931368b16e81440a75c4) )
+ ROM_LOAD16_BYTE( "epr-12096.b7", 0x80000, 0x010000, CRC(0cd59d6e) SHA1(caf754a461feffafcfe7bfc6e89da76c4db257c5) )
+ ROM_LOAD16_BYTE( "epr-12093.b4", 0xc0001, 0x010000, CRC(4891e7bb) SHA1(1be04fcabe9bfa8cf746263a5bcca67902a021a0) )
+ ROM_LOAD16_BYTE( "epr-12097.b8", 0xc0000, 0x010000, CRC(e645902c) SHA1(497cfcf6c25cc2e042e16dbcb1963d2223def15a) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-12127.a10", 0x0000, 0x8000, CRC(0bb901bb) SHA1(c81b198df8e3b0ec568032c76addf0d1a1711194) )
+ROM_END
+
//*************************************************************************************************************************
// Wonder Boy III, Sega System 16B
// CPU: FD1094 (317-0089)
@@ -6415,6 +7679,30 @@ ROM_START( wb33 )
ROM_LOAD( "epr-12127.a10", 0x0000, 0x8000, CRC(0bb901bb) SHA1(c81b198df8e3b0ec568032c76addf0d1a1711194) )
ROM_END
+ROM_START( wb33d )
+ ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-12137.a7", 0x000000, 0x20000, CRC(18a898af) SHA1(4614fab9f27bdfefc0c402edbac454c517b78c2f) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12136.a5", 0x000001, 0x20000, CRC(e3d21248) SHA1(6d146a0c9a5b1f8cb0d2770b2c272fafe58360c0))
+
+ ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-12124.a14", 0x00000, 0x10000, CRC(dacefb6f) SHA1(789a5a99ad9419aee9da5397bcea34452ea8b4b3) )
+ ROM_LOAD( "epr-12125.a15", 0x10000, 0x10000, CRC(9fc36df7) SHA1(b39ccc687489e9781181197505fc78aa5cf7ea55) )
+ ROM_LOAD( "epr-12126.a16", 0x20000, 0x10000, CRC(a693fd94) SHA1(38e5446f41b6793a8e4134fdd92b02b86e3589f7) )
+
+ ROM_REGION16_BE( 0x100000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "epr-12090.b1", 0x00001, 0x010000, CRC(aeeecfca) SHA1(496124b170a725ad863c741d4e021ab947511e4c) )
+ ROM_LOAD16_BYTE( "epr-12094.b5", 0x00000, 0x010000, CRC(615e4927) SHA1(d23f164973afa770714e284a77ddf10f18cc596b) )
+ ROM_LOAD16_BYTE( "epr-12091.b2", 0x40001, 0x010000, CRC(8409a243) SHA1(bcbb9510a6499d8147543d6befa5a49f4ac055d9) )
+ ROM_LOAD16_BYTE( "epr-12095.b6", 0x40000, 0x010000, CRC(e774ec2c) SHA1(a4aa15ec7be5539a740ad02ff720458018dbc536) )
+ ROM_LOAD16_BYTE( "epr-12092.b3", 0x80001, 0x010000, CRC(5c2f0d90) SHA1(e0fbc0f841e4607ad232931368b16e81440a75c4) )
+ ROM_LOAD16_BYTE( "epr-12096.b7", 0x80000, 0x010000, CRC(0cd59d6e) SHA1(caf754a461feffafcfe7bfc6e89da76c4db257c5) )
+ ROM_LOAD16_BYTE( "epr-12093.b4", 0xc0001, 0x010000, CRC(4891e7bb) SHA1(1be04fcabe9bfa8cf746263a5bcca67902a021a0) )
+ ROM_LOAD16_BYTE( "epr-12097.b8", 0xc0000, 0x010000, CRC(e645902c) SHA1(497cfcf6c25cc2e042e16dbcb1963d2223def15a) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-12127.a10", 0x0000, 0x8000, CRC(0bb901bb) SHA1(c81b198df8e3b0ec568032c76addf0d1a1711194) )
+ROM_END
+
//*************************************************************************************************************************
// Wonder Boy III, Sega System 16B
// CPU: FD1094 (317-0085)
@@ -6462,6 +7750,32 @@ ROM_START( wb32 )
ROM_LOAD( "epr-12127.a7", 0x0000, 0x8000, CRC(0bb901bb) SHA1(c81b198df8e3b0ec568032c76addf0d1a1711194) )
ROM_END
+ROM_START( wb32d )
+ ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-12098.a1", 0x000001, 0x10000, CRC(41a46e75) SHA1(6053aada74be9bf26893f73384a2a52f2bf5561e) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12100.a4", 0x000000, 0x10000, CRC(15e3117e) SHA1(ec03366ab36371e568ece13fa4ef3fd4dbf121a3) )
+ ROM_LOAD16_BYTE( "epr-12099.a2", 0x020001, 0x10000, CRC(3e243b45) SHA1(2a079553d1b61aaf18025847570003b79c8d6edf) )
+ ROM_LOAD16_BYTE( "epr-12101.a5", 0x020000, 0x10000, CRC(6146492b) SHA1(93515578a6ccf770944fea86d2f3200fa08f5075) )
+
+
+ ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-12124.b9", 0x00000, 0x10000, CRC(dacefb6f) SHA1(789a5a99ad9419aee9da5397bcea34452ea8b4b3) )
+ ROM_LOAD( "epr-12125.b10", 0x10000, 0x10000, CRC(9fc36df7) SHA1(b39ccc687489e9781181197505fc78aa5cf7ea55) )
+ ROM_LOAD( "epr-12126.b11", 0x20000, 0x10000, CRC(a693fd94) SHA1(38e5446f41b6793a8e4134fdd92b02b86e3589f7) )
+
+ ROM_REGION16_BE( 0x80000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "epr-12090.b1", 0x00001, 0x010000, CRC(aeeecfca) SHA1(496124b170a725ad863c741d4e021ab947511e4c) )
+ ROM_LOAD16_BYTE( "epr-12094.b5", 0x00000, 0x010000, CRC(615e4927) SHA1(d23f164973afa770714e284a77ddf10f18cc596b) )
+ ROM_LOAD16_BYTE( "epr-12091.b2", 0x20001, 0x010000, CRC(8409a243) SHA1(bcbb9510a6499d8147543d6befa5a49f4ac055d9) )
+ ROM_LOAD16_BYTE( "epr-12095.b6", 0x20000, 0x010000, CRC(e774ec2c) SHA1(a4aa15ec7be5539a740ad02ff720458018dbc536) )
+ ROM_LOAD16_BYTE( "epr-12092.b3", 0x40001, 0x010000, CRC(5c2f0d90) SHA1(e0fbc0f841e4607ad232931368b16e81440a75c4) )
+ ROM_LOAD16_BYTE( "epr-12096.b7", 0x40000, 0x010000, CRC(0cd59d6e) SHA1(caf754a461feffafcfe7bfc6e89da76c4db257c5) )
+ ROM_LOAD16_BYTE( "epr-12093.b4", 0x60001, 0x010000, CRC(4891e7bb) SHA1(1be04fcabe9bfa8cf746263a5bcca67902a021a0) )
+ ROM_LOAD16_BYTE( "epr-12097.b8", 0x60000, 0x010000, CRC(e645902c) SHA1(497cfcf6c25cc2e042e16dbcb1963d2223def15a) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-12127.a7", 0x0000, 0x8000, CRC(0bb901bb) SHA1(c81b198df8e3b0ec568032c76addf0d1a1711194) )
+ROM_END
//*************************************************************************************************************************
//*************************************************************************************************************************
@@ -6564,6 +7878,38 @@ ROM_START( wrestwar2 )
ROM_LOAD( "mpr-12149.a12", 0x30000, 0x20000, CRC(d6617b19) SHA1(aa36d257eaa52c8c871a39aaa2f29c203525dbaf) )
ROM_END
+ROM_START( wrestwar2d )
+ ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-12370.a7", 0x00000, 0x20000, CRC(f4d09243) SHA1(7b11e5606bde0f48af42184a4e01b14a7760c2bc) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12369.a5", 0x00001, 0x20000, CRC(d5f5e59a) SHA1(f4a47acf2118877e5627d4511b47ae6723838221) )
+ ROM_LOAD16_BYTE( "epr-12146.a8", 0x40000, 0x20000, CRC(b77ba665) SHA1(b6a01ca857b5127ebb763f18cd4123185a7765a6) )
+ ROM_LOAD16_BYTE( "epr-12144.a6", 0x40001, 0x20000, CRC(ddf075cb) SHA1(5d887f0d5786fa62757c593d937bba6f150c1b12) )
+
+ ROM_REGION( 0x60000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "mpr-12150.a14", 0x00000, 0x20000, CRC(6a821ab9) SHA1(e69f7e534835d4c820746ffc3ad76c3b7bb9b02e) )
+ ROM_LOAD( "mpr-12151.a15", 0x20000, 0x20000, CRC(2b1a0751) SHA1(8cb1027ef3728f5bdfdb5e2df0f0421f743cdc0a) )
+ ROM_LOAD( "mpr-12152.a16", 0x40000, 0x20000, CRC(f6e190fe) SHA1(4c8b334fb22c449d8d00c8f49f5eccbe008e244f) )
+
+ ROM_REGION16_BE( 0x180000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "mpr-12153.b1", 0x000001, 0x20000, CRC(ffa7d368) SHA1(e5663ef1cbe8ab27be0919a3cd78d9a7747bbac6) )
+ ROM_LOAD16_BYTE( "mpr-12157.b5", 0x000000, 0x20000, CRC(8d7794c1) SHA1(ace87970cfa02ab8200173622633d0d70ef7aa9e) )
+ ROM_LOAD16_BYTE( "mpr-12154.b2", 0x040001, 0x20000, CRC(0ed343f2) SHA1(951bd616e63c5fe0aa3f387c9c12153b4f29675f) )
+ ROM_LOAD16_BYTE( "mpr-12158.b6", 0x040000, 0x20000, CRC(99458d58) SHA1(87020267610c5784e066bb4e3551852d27b4cf61) )
+ ROM_LOAD16_BYTE( "mpr-12155.b3", 0x080001, 0x20000, CRC(3087104d) SHA1(9ad0ea2b580820443c576cbb95d57467e32ea7b5) )
+ ROM_LOAD16_BYTE( "mpr-12159.b7", 0x080000, 0x20000, CRC(abcf9bed) SHA1(4f755cfd0304e877b798c31de50e15995f8c4edf) )
+ ROM_LOAD16_BYTE( "opr-12156.b4", 0x0c0001, 0x20000, CRC(41b6068b) SHA1(c1f1f51c4e0f4320cef7821bccac5b0c9e915d9b) )
+ ROM_LOAD16_BYTE( "opr-12160.b8", 0x0c0000, 0x20000, CRC(97eac164) SHA1(2bb62e6d8b2d662e9b31aa8d238a51af7c7905e8) )
+ ROM_LOAD16_BYTE( "opr-12141.a1", 0x100001, 0x20000, CRC(260311c5) SHA1(6b52b671252aef992c0546468c44b722bdb6a649) )
+ ROM_LOAD16_BYTE( "opr-12161.b10", 0x100000, 0x20000, CRC(35a4b1b1) SHA1(c3b8ba708f9f2822e48e52ea74d7e96f08182ac4) )
+ ROM_LOAD16_BYTE( "opr-12142.a2", 0x140001, 0x10000, CRC(12e38a5c) SHA1(05558a370b4e8100d2fa5e700a5ab76771ff7729) )
+ ROM_LOAD16_BYTE( "opr-12162.b11", 0x140000, 0x10000, CRC(fa06fd24) SHA1(20a578b82a75fe96a230c91645108fdc8b5bae21) )
+
+ ROM_REGION( 0x50000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-12147.a10", 0x00000, 0x08000, CRC(c3609607) SHA1(2e0acb775c60851bf0b2037b91b07ead061d5862) )
+ ROM_LOAD( "mpr-12148.a11", 0x10000, 0x20000, CRC(fb9a7f29) SHA1(7ba79c18ab4e586be2deccd78e4479d55eb75a7e) )
+ ROM_LOAD( "mpr-12149.a12", 0x30000, 0x20000, CRC(d6617b19) SHA1(aa36d257eaa52c8c871a39aaa2f29c203525dbaf) )
+ROM_END
+
//*************************************************************************************************************************
// Wrestle War, Sega System 16B
// CPU: FD1094 (317-0090)
@@ -6605,6 +7951,38 @@ ROM_START( wrestwar1 )
ROM_END
+ROM_START( wrestwar1d )
+ ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-12145.a7", 0x00000, 0x20000, CRC(6a50d373) SHA1(bc4ff28f02a326ca535251cc59399149e625b266) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12143.a5", 0x00001, 0x20000, CRC(02e24543) SHA1(f659b2f9cf4195e42b5f3761a6a3fd4e0b36346e) )
+ ROM_LOAD16_BYTE( "epr-12146.a8", 0x40000, 0x20000, CRC(b77ba665) SHA1(b6a01ca857b5127ebb763f18cd4123185a7765a6) )
+ ROM_LOAD16_BYTE( "epr-12144.a6", 0x40001, 0x20000, CRC(ddf075cb) SHA1(5d887f0d5786fa62757c593d937bba6f150c1b12) )
+
+ ROM_REGION( 0x60000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "mpr-12150.a14", 0x00000, 0x20000, CRC(6a821ab9) SHA1(e69f7e534835d4c820746ffc3ad76c3b7bb9b02e) )
+ ROM_LOAD( "mpr-12151.a15", 0x20000, 0x20000, CRC(2b1a0751) SHA1(8cb1027ef3728f5bdfdb5e2df0f0421f743cdc0a) )
+ ROM_LOAD( "mpr-12152.a16", 0x40000, 0x20000, CRC(f6e190fe) SHA1(4c8b334fb22c449d8d00c8f49f5eccbe008e244f) )
+
+ ROM_REGION16_BE( 0x180000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "mpr-12153.b1", 0x000001, 0x20000, CRC(ffa7d368) SHA1(e5663ef1cbe8ab27be0919a3cd78d9a7747bbac6) )
+ ROM_LOAD16_BYTE( "mpr-12157.b5", 0x000000, 0x20000, CRC(8d7794c1) SHA1(ace87970cfa02ab8200173622633d0d70ef7aa9e) )
+ ROM_LOAD16_BYTE( "mpr-12154.b2", 0x040001, 0x20000, CRC(0ed343f2) SHA1(951bd616e63c5fe0aa3f387c9c12153b4f29675f) )
+ ROM_LOAD16_BYTE( "mpr-12158.b6", 0x040000, 0x20000, CRC(99458d58) SHA1(87020267610c5784e066bb4e3551852d27b4cf61) )
+ ROM_LOAD16_BYTE( "mpr-12155.b3", 0x080001, 0x20000, CRC(3087104d) SHA1(9ad0ea2b580820443c576cbb95d57467e32ea7b5) )
+ ROM_LOAD16_BYTE( "mpr-12159.b7", 0x080000, 0x20000, CRC(abcf9bed) SHA1(4f755cfd0304e877b798c31de50e15995f8c4edf) )
+ ROM_LOAD16_BYTE( "opr-12156.b4", 0x0c0001, 0x20000, CRC(41b6068b) SHA1(c1f1f51c4e0f4320cef7821bccac5b0c9e915d9b) )
+ ROM_LOAD16_BYTE( "opr-12160.b8", 0x0c0000, 0x20000, CRC(97eac164) SHA1(2bb62e6d8b2d662e9b31aa8d238a51af7c7905e8) )
+ ROM_LOAD16_BYTE( "opr-12141.a1", 0x100001, 0x20000, CRC(260311c5) SHA1(6b52b671252aef992c0546468c44b722bdb6a649) )
+ ROM_LOAD16_BYTE( "opr-12161.b10", 0x100000, 0x20000, CRC(35a4b1b1) SHA1(c3b8ba708f9f2822e48e52ea74d7e96f08182ac4) )
+ ROM_LOAD16_BYTE( "opr-12142.a2", 0x140001, 0x10000, CRC(12e38a5c) SHA1(05558a370b4e8100d2fa5e700a5ab76771ff7729) )
+ ROM_LOAD16_BYTE( "opr-12162.b11", 0x140000, 0x10000, CRC(fa06fd24) SHA1(20a578b82a75fe96a230c91645108fdc8b5bae21) )
+
+ ROM_REGION( 0x50000, "soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-12147.a10", 0x00000, 0x08000, CRC(c3609607) SHA1(2e0acb775c60851bf0b2037b91b07ead061d5862) )
+ ROM_LOAD( "mpr-12148.a11", 0x10000, 0x20000, CRC(fb9a7f29) SHA1(7ba79c18ab4e586be2deccd78e4479d55eb75a7e) )
+ ROM_LOAD( "mpr-12149.a12", 0x30000, 0x20000, CRC(d6617b19) SHA1(aa36d257eaa52c8c871a39aaa2f29c203525dbaf) )
+ROM_END
+
//*************************************************************************************************************************
//*************************************************************************************************************************
//*************************************************************************************************************************
@@ -6858,8 +8236,13 @@ DRIVER_INIT_MEMBER(segas16b_state,sdi_5358_small)
{
DRIVER_INIT_CALL(generic_5358_small);
m_custom_io_r = read16_delegate(FUNC(segas16b_state::sdi_custom_io_r), this);
+
+ UINT8 *rom = memregion("maincpux")->base();
+ if (rom)
+ memcpy(m_decrypted_opcodes, rom, 0x30000);
}
+
DRIVER_INIT_MEMBER(segas16b_state,defense_5358_small)
{
DRIVER_INIT_CALL(generic_5358_small);
@@ -6924,80 +8307,80 @@ GAME( 1987, aliensyn7, aliensyn, system16b_mc8123, aliensyn, segas16b_state,
GAME( 1987, aliensyn3, aliensyn, system16b_fd1089a, aliensyn, segas16b_state,generic_5358_small, ROT0, "Sega", "Alien Syndrome (set 3, System 16B, FD1089A 317-0033)", 0 )
GAME( 1987, aliensynj, aliensyn, system16b_fd1089a, aliensynj,segas16b_state,generic_5358_small, ROT0, "Sega", "Alien Syndrome (set 6, Japan, new, System 16B, FD1089A 317-0033)", 0 )
-GAME( 1988, altbeast, 0, system16b_i8751, altbeast, segas16b_state,altbeast_5521, ROT0, "Sega", "Altered Beast (set 8, 8751 317-0078)", 0 )
-GAME( 1988, altbeastj, altbeast, system16b_i8751, altbeast, segas16b_state,altbeasj_5521, ROT0, "Sega", "Juuouki (set 7, Japan, 8751 317-0077)", 0 )
-GAME( 1988, altbeast6, altbeast, system16b_i8751, altbeast, segas16b_state,altbeas5_5521, ROT0, "Sega", "Altered Beast (set 6, 8751 317-0076)", 0 )
-GAME( 1988, altbeast5, altbeast, system16b_fd1094, altbeast, segas16b_state,generic_5521, ROT0, "Sega", "Altered Beast (set 5, FD1094 317-0069)", 0 )
-GAME( 1988, altbeast4, altbeast, system16b_mc8123, altbeast, segas16b_state,altbeas4_5521, ROT0, "Sega", "Altered Beast (set 4, MC-8123B 317-0066)", 0 )
-GAME( 1988, altbeastj3, altbeast, system16b_fd1094, altbeast, segas16b_state,generic_5521, ROT0, "Sega", "Juuouki (set 3, Japan, FD1094 317-0068)", 0 )
-GAME( 1988, altbeast2, altbeast, system16b_mc8123, altbeast, segas16b_state,altbeas4_5521, ROT0, "Sega", "Altered Beast (set 2, MC-8123B 317-0066)", 0 )
-GAME( 1988, altbeastj1, altbeast, system16b_fd1094, altbeast, segas16b_state,generic_5521, ROT0, "Sega", "Juuouki (set 1, Japan, FD1094 317-0065)", 0 )
+GAME( 1988, altbeast, 0, system16b_i8751, altbeast, segas16b_state,altbeast_5521, ROT0, "Sega", "Altered Beast (set 8) (8751 317-0078)", 0 )
+GAME( 1988, altbeastj, altbeast, system16b_i8751, altbeast, segas16b_state,altbeasj_5521, ROT0, "Sega", "Juuouki (set 7, Japan) (8751 317-0077)", 0 )
+GAME( 1988, altbeast6, altbeast, system16b_i8751, altbeast, segas16b_state,altbeas5_5521, ROT0, "Sega", "Altered Beast (set 6) (8751 317-0076)", 0 )
+GAME( 1988, altbeast5, altbeast, system16b_fd1094, altbeast, segas16b_state,generic_5521, ROT0, "Sega", "Altered Beast (set 5) (FD1094 317-0069)", 0 )
+GAME( 1988, altbeast4, altbeast, system16b_mc8123, altbeast, segas16b_state,altbeas4_5521, ROT0, "Sega", "Altered Beast (set 4) (MC-8123B 317-0066)", 0 )
+GAME( 1988, altbeastj3, altbeast, system16b_fd1094, altbeast, segas16b_state,generic_5521, ROT0, "Sega", "Juuouki (set 3, Japan) (FD1094 317-0068)", 0 )
+GAME( 1988, altbeast2, altbeast, system16b_mc8123, altbeast, segas16b_state,altbeas4_5521, ROT0, "Sega", "Altered Beast (set 2) (MC-8123B 317-0066)", 0 )
+GAME( 1988, altbeastj1, altbeast, system16b_fd1094, altbeast, segas16b_state,generic_5521, ROT0, "Sega", "Juuouki (set 1, Japan) (FD1094 317-0065)", 0 )
-GAME( 1990, aurail, 0, system16b, aurail, segas16b_state,generic_5704, ROT0, "Sega / Westone", "Aurail (set 3, US, unprotected)", 0 )
-GAME( 1990, aurail1, aurail, system16b_fd1089b, aurail, segas16b_state,generic_5704, ROT0, "Sega / Westone", "Aurail (set 2, World, FD1089B 317-0168)", 0 )
-GAME( 1990, aurailj, aurail, system16b_fd1089a, aurail, segas16b_state,generic_5704, ROT0, "Sega / Westone", "Aurail (set 1, Japan, FD1089A 317-0167)", 0 )
+GAME( 1990, aurail, 0, system16b, aurail, segas16b_state,generic_5704, ROT0, "Sega / Westone", "Aurail (set 3, US) (unprotected)", 0 )
+GAME( 1990, aurail1, aurail, system16b_fd1089b, aurail, segas16b_state,generic_5704, ROT0, "Sega / Westone", "Aurail (set 2, World) (FD1089B 317-0168)", 0 )
+GAME( 1990, aurailj, aurail, system16b_fd1089a, aurail, segas16b_state,generic_5704, ROT0, "Sega / Westone", "Aurail (set 1, Japan) (FD1089A 317-0167)", 0 )
-GAME( 1989, bayroute, 0, system16b_fd1094, bayroute, segas16b_state,generic_5704, ROT0, "Sunsoft / Sega", "Bay Route (set 3, World, FD1094 317-0116)", 0 )
-GAME( 1989, bayroutej, bayroute, system16b_fd1094, bayroute, segas16b_state,generic_5704, ROT0, "Sunsoft / Sega", "Bay Route (set 2, Japan, FD1094 317-0115)", 0 )
-GAME( 1989, bayroute1, bayroute, system16b, bayroute, segas16b_state,generic_5358, ROT0, "Sunsoft / Sega", "Bay Route (set 1, US, unprotected)", 0 )
+GAME( 1989, bayroute, 0, system16b_fd1094, bayroute, segas16b_state,generic_5704, ROT0, "Sunsoft / Sega", "Bay Route (set 3, World) (FD1094 317-0116)", 0 )
+GAME( 1989, bayroutej, bayroute, system16b_fd1094, bayroute, segas16b_state,generic_5704, ROT0, "Sunsoft / Sega", "Bay Route (set 2, Japan) (FD1094 317-0115)", 0 )
+GAME( 1989, bayroute1, bayroute, system16b, bayroute, segas16b_state,generic_5358, ROT0, "Sunsoft / Sega", "Bay Route (set 1, US) (unprotected)", 0 )
GAME( 1987, bullet, 0, system16b_fd1094, bullet, segas16b_state,generic_5358_small, ROT0, "Sega", "Bullet (FD1094 317-0041)", 0 )
// Charon
-GAME( 1991, cotton, 0, system16b_fd1094, cotton, segas16b_state,generic_5704, ROT0, "Success / Sega", "Cotton (set 4, World, FD1094 317-0181a)", 0 )
-GAME( 1991, cottonu, cotton, system16b_fd1094, cotton, segas16b_state,generic_5704, ROT0, "Success / Sega", "Cotton (set 3, US, FD1094 317-0180)", 0 )
-GAME( 1991, cottonj, cotton, system16b_fd1094, cotton, segas16b_state,generic_5704, ROT0, "Success / Sega", "Cotton (set 2, Japan, Rev B, FD1094 317-0179b)", 0 )
-GAME( 1991, cottonja, cotton, system16b_fd1094, cotton, segas16b_state,generic_5704, ROT0, "Success / Sega", "Cotton (set 1, Japan, Rev A, FD1094 317-0179a)", 0 )
+GAME( 1991, cotton, 0, system16b_fd1094, cotton, segas16b_state,generic_5704, ROT0, "Success / Sega", "Cotton (set 4, World) (FD1094 317-0181a)", 0 )
+GAME( 1991, cottonu, cotton, system16b_fd1094, cotton, segas16b_state,generic_5704, ROT0, "Success / Sega", "Cotton (set 3, US) (FD1094 317-0180)", 0 )
+GAME( 1991, cottonj, cotton, system16b_fd1094, cotton, segas16b_state,generic_5704, ROT0, "Success / Sega", "Cotton (set 2, Japan, Rev B) (FD1094 317-0179b)", 0 )
+GAME( 1991, cottonja, cotton, system16b_fd1094, cotton, segas16b_state,generic_5704, ROT0, "Success / Sega", "Cotton (set 1, Japan, Rev A) (FD1094 317-0179a)", 0 )
-GAME( 1988, ddux, 0, system16b_fd1094, ddux, segas16b_state,generic_5521, ROT0, "Sega", "Dynamite Dux (set 3, World, FD1094 317-0096)", 0 )
-GAME( 1988, dduxj, ddux, system16b_fd1094, ddux, segas16b_state,generic_5521, ROT0, "Sega", "Dynamite Dux (set 2, Japan, FD1094 317-0094)", 0 )
-GAME( 1988, ddux1, ddux, system16b_i8751, ddux, segas16b_state,ddux_5704, ROT0, "Sega", "Dynamite Dux (set 1, 8751 317-0095)", 0 )
+GAME( 1988, ddux, 0, system16b_fd1094, ddux, segas16b_state,generic_5521, ROT0, "Sega", "Dynamite Dux (set 3, World) (FD1094 317-0096)", 0 )
+GAME( 1988, dduxj, ddux, system16b_fd1094, ddux, segas16b_state,generic_5521, ROT0, "Sega", "Dynamite Dux (set 2, Japan) (FD1094 317-0094)", 0 )
+GAME( 1988, ddux1, ddux, system16b_i8751, ddux, segas16b_state,ddux_5704, ROT0, "Sega", "Dynamite Dux (set 1) (8751 317-0095)", 0 )
GAME( 1987, dunkshot, 0, system16b_fd1089a, dunkshot, segas16b_state,dunkshot_5358_small,ROT0, "Sega", "Dunk Shot (Rev C, FD1089A 317-0022)", 0 )
GAME( 1987, dunkshota, dunkshot, system16b_fd1089a, dunkshot, segas16b_state,dunkshot_5358_small,ROT0, "Sega", "Dunk Shot (Rev A, FD1089A 317-0022)", 0 )
GAME( 1986, dunkshoto, dunkshot, system16b_fd1089a, dunkshot, segas16b_state,dunkshot_5358_small,ROT0, "Sega", "Dunk Shot (FD1089A 317-0022)", 0 )
-GAME( 1989, eswat, 0, system16b_fd1094_5797,eswat, segas16b_state,generic_5797, ROT0, "Sega", "E-Swat - Cyber Police (set 4, World, FD1094 317-0130)", 0 )
-GAME( 1989, eswatu, eswat, system16b_fd1094_5797,eswat, segas16b_state,generic_5797, ROT0, "Sega", "E-Swat - Cyber Police (set 3, US, FD1094 317-0129)", 0 )
-GAME( 1989, eswatj, eswat, system16b_fd1094_5797,eswat, segas16b_state,generic_5797, ROT0, "Sega", "E-Swat - Cyber Police (set 2, Japan, FD1094 317-0128)", 0 )
-GAME( 1989, eswatj1, eswat, system16b_fd1094, eswat, segas16b_state,generic_5704, ROT0, "Sega", "E-Swat - Cyber Police (set 1, Japan, FD1094 317-0131)", 0 )
+GAME( 1989, eswat, 0, system16b_fd1094_5797,eswat, segas16b_state,generic_5797, ROT0, "Sega", "E-Swat - Cyber Police (set 4, World) (FD1094 317-0130)", 0 )
+GAME( 1989, eswatu, eswat, system16b_fd1094_5797,eswat, segas16b_state,generic_5797, ROT0, "Sega", "E-Swat - Cyber Police (set 3, US) (FD1094 317-0129)", 0 )
+GAME( 1989, eswatj, eswat, system16b_fd1094_5797,eswat, segas16b_state,generic_5797, ROT0, "Sega", "E-Swat - Cyber Police (set 2, Japan) (FD1094 317-0128)", 0 )
+GAME( 1989, eswatj1, eswat, system16b_fd1094, eswat, segas16b_state,generic_5704, ROT0, "Sega", "E-Swat - Cyber Police (set 1, Japan) (FD1094 317-0131)", 0 )
GAME( 1988, exctleag, 0, system16b_fd1094, exctleag, segas16b_state,exctleag_5358, ROT0, "Sega", "Excite League (FD1094 317-0079)", 0 )
-GAME( 1989, fpoint, 0, system16b_fd1094, fpoint, segas16b_state,generic_5358, ROT0, "Sega", "Flash Point (set 2, Japan, FD1094 317-0127A)", 0 )
-GAME( 1989, fpoint1, fpoint, system16b_fd1094, fpoint, segas16b_state,generic_5704, ROT0, "Sega", "Flash Point (set 1, Japan, FD1094 317-0127A)", 0 )
+GAME( 1989, fpoint, 0, system16b_fd1094, fpoint, segas16b_state,generic_5358, ROT0, "Sega", "Flash Point (set 2, Japan) (FD1094 317-0127A)", 0 )
+GAME( 1989, fpoint1, fpoint, system16b_fd1094, fpoint, segas16b_state,generic_5704, ROT0, "Sega", "Flash Point (set 1, Japan) (FD1094 317-0127A)", 0 )
-GAME( 1989, goldnaxe, 0, system16b_i8751_5797,goldnaxe, segas16b_state,goldnaxe_5797, ROT0, "Sega", "Golden Axe (set 6, US, 8751 317-123A)", 0 )
-GAME( 1989, goldnaxeu, goldnaxe, system16b_fd1094_5797,goldnaxe,segas16b_state,generic_5797, ROT0, "Sega", "Golden Axe (set 5, US, FD1094 317-0122)", 0 )
-GAME( 1989, goldnaxej, goldnaxe, system16b_fd1094, goldnaxe, segas16b_state,generic_5704, ROT0, "Sega", "Golden Axe (set 4, Japan, FD1094 317-0121)", 0 )
-GAME( 1989, goldnaxe3, goldnaxe, system16b_fd1094, goldnaxe, segas16b_state,generic_5704, ROT0, "Sega", "Golden Axe (set 3, World, FD1094 317-0120)", 0)
-GAME( 1989, goldnaxe2, goldnaxe, system16b_i8751, goldnaxe, segas16b_state,goldnaxe_5704, ROT0, "Sega", "Golden Axe (set 2, US, 8751 317-0112)", 0 )
-GAME( 1989, goldnaxe1, goldnaxe, system16b_fd1094_5797,goldnaxe,segas16b_state,generic_5797, ROT0, "Sega", "Golden Axe (set 1, World, FD1094 317-0110)", 0 )
+GAME( 1989, goldnaxe, 0, system16b_i8751_5797,goldnaxe, segas16b_state,goldnaxe_5797, ROT0, "Sega", "Golden Axe (set 6, US) (8751 317-123A)", 0 )
+GAME( 1989, goldnaxeu, goldnaxe, system16b_fd1094_5797,goldnaxe,segas16b_state,generic_5797, ROT0, "Sega", "Golden Axe (set 5, US) (FD1094 317-0122)", 0 )
+GAME( 1989, goldnaxej, goldnaxe, system16b_fd1094, goldnaxe, segas16b_state,generic_5704, ROT0, "Sega", "Golden Axe (set 4, Japan) (FD1094 317-0121)", 0 )
+GAME( 1989, goldnaxe3, goldnaxe, system16b_fd1094, goldnaxe, segas16b_state,generic_5704, ROT0, "Sega", "Golden Axe (set 3, World) (FD1094 317-0120)", 0)
+GAME( 1989, goldnaxe2, goldnaxe, system16b_i8751, goldnaxe, segas16b_state,goldnaxe_5704, ROT0, "Sega", "Golden Axe (set 2, US) (8751 317-0112)", 0 )
+GAME( 1989, goldnaxe1, goldnaxe, system16b_fd1094_5797,goldnaxe,segas16b_state,generic_5797, ROT0, "Sega", "Golden Axe (set 1, World) (FD1094 317-0110)", 0 )
GAME( 1987, hwchamp, 0, system16b, hwchamp, segas16b_state,hwchamp_5521, ROT0, "Sega", "Heavyweight Champ", 0 )
-GAME( 1987, hwchampj, hwchamp, system16b_fd1094, hwchamp, segas16b_state,hwchamp_5521, ROT0, "Sega", "Heavyweight Champ (Japan, FD1094 317-0046)", 0 )
+GAME( 1987, hwchampj, hwchamp, system16b_fd1094, hwchamp, segas16b_state,hwchamp_5521, ROT0, "Sega", "Heavyweight Champ (Japan) (FD1094 317-0046)", 0 )
-GAME( 1989, mvp, 0, system16b_fd1094_5797,mvp, segas16b_state,generic_5797, ROT0, "Sega", "MVP (set 2, US, FD1094 317-0143)", 0 )
-GAME( 1989, mvpj, mvp, system16b_fd1094, mvp, segas16b_state,generic_5704, ROT0, "Sega", "MVP (set 1, Japan, FD1094 317-0142)", 0 )
+GAME( 1989, mvp, 0, system16b_fd1094_5797,mvp, segas16b_state,generic_5797, ROT0, "Sega", "MVP (set 2, US) (FD1094 317-0143)", 0 )
+GAME( 1989, mvpj, mvp, system16b_fd1094, mvp, segas16b_state,generic_5704, ROT0, "Sega", "MVP (set 1, Japan) (FD1094 317-0142)", 0 )
-GAME( 1988, passsht, 0, system16b_fd1094, passsht, segas16b_state,generic_5358, ROT270, "Sega", "Passing Shot (World, 2 Players, FD1094 317-0080)", 0 )
-GAME( 1988, passshta, passsht, system16b_fd1094, passshtj, segas16b_state,passshtj_5358, ROT270, "Sega", "Passing Shot (World, 4 Players, FD1094 317-0074)", 0 )
-GAME( 1988, passshtj, passsht, system16b_fd1094, passshtj, segas16b_state,passshtj_5358, ROT270, "Sega", "Passing Shot (Japan, 4 Players, FD1094 317-0070)", 0 )
-GAME( 1988, cencourt, passsht, system16b_mc8123, cencourt, segas16b_state,cencourt_5358, ROT270, "Sega", "Center Court (World, 4 Players, prototype, MC-8123B)", 0 )
+GAME( 1988, passsht, 0, system16b_fd1094, passsht, segas16b_state,generic_5358, ROT270, "Sega", "Passing Shot (World, 2 Players) (FD1094 317-0080)", 0 )
+GAME( 1988, passshta, passsht, system16b_fd1094, passshtj, segas16b_state,passshtj_5358, ROT270, "Sega", "Passing Shot (World, 4 Players) (FD1094 317-0074)", 0 )
+GAME( 1988, passshtj, passsht, system16b_fd1094, passshtj, segas16b_state,passshtj_5358, ROT270, "Sega", "Passing Shot (Japan, 4 Players) (FD1094 317-0070)", 0 )
+GAME( 1988, cencourt, passsht, system16b_mc8123, cencourt, segas16b_state,cencourt_5358, ROT270, "Sega", "Center Court (World, 4 Players, prototype) (MC-8123B)", 0 )
GAME( 1991, riotcity, 0, system16b, riotcity, segas16b_state,generic_5704, ROT0, "Sega / Westone", "Riot City (Japan)", 0 )
-GAME( 1990, ryukyu, 0, system16b_fd1094, ryukyu, segas16b_state,generic_5704, ROT0, "Success / Sega", "RyuKyu (Japan, FD1094 317-5023)", 0 )
+GAME( 1990, ryukyu, 0, system16b_fd1094, ryukyu, segas16b_state,generic_5704, ROT0, "Success / Sega", "RyuKyu (Japan) (FD1094 317-5023)", 0 )
GAME( 1987, defense, sdi, system16b_fd1089a, sdi, segas16b_state,defense_5358_small, ROT0, "Sega", "Defense (System 16B, FD1089A 317-0028)", 0 )
GAME( 1987, sdib, sdi, system16b_fd1089a, sdi, segas16b_state,defense_5358_small, ROT0, "Sega", "SDI - Strategic Defense Initiative (System 16B, FD1089A 317-0028)", 0 )
-GAME( 1987, sdibl, sdi, system16b, sdi, segas16b_state,sdi_5358_small, ROT0, "bootleg", "SDI - Strategic Defense Initiative (bootleg)", 0 )
+GAME( 1987, sdibl, sdi, system16b, sdi, segas16b_state,sdi_5358_small, ROT0, "bootleg", "SDI - Strategic Defense Initiative (bootleg, original hardware)", 0 ) // seems to be a bootleg of an older version of the game than any supported original sets
-GAME( 1987, shinobi5, shinobi, system16b, shinobi, segas16b_state,generic_5521, ROT0, "Sega", "Shinobi (set 5, System 16B, unprotected)", 0 )
-GAME( 1987, shinobi4, shinobi, system16b_mc8123, shinobi, segas16b_state,shinobi4_5521, ROT0, "Sega", "Shinobi (set 4, System 16B, MC-8123B 317-0054)", 0 )
-GAME( 1987, shinobi3, shinobi, system16b_mc8123, shinobi, segas16b_state,shinobi3_5358, ROT0, "Sega", "Shinobi (set 3, System 16B, MC-8123B 317-0054)", 0 )
-GAME( 1987, shinobi2, shinobi, system16b_fd1094, shinobi, segas16b_state,generic_5358, ROT0, "Sega", "Shinobi (set 2, System 16B, FD1094 317-0049)", 0 )
+GAME( 1987, shinobi5, shinobi, system16b, shinobi, segas16b_state,generic_5521, ROT0, "Sega", "Shinobi (set 5, System 16B) (unprotected)", 0 )
+GAME( 1987, shinobi4, shinobi, system16b_mc8123, shinobi, segas16b_state,shinobi4_5521, ROT0, "Sega", "Shinobi (set 4, System 16B) (MC-8123B 317-0054)", 0 )
+GAME( 1987, shinobi3, shinobi, system16b_mc8123, shinobi, segas16b_state,shinobi3_5358, ROT0, "Sega", "Shinobi (set 3, System 16B) (MC-8123B 317-0054)", 0 )
+GAME( 1987, shinobi2, shinobi, system16b_fd1094, shinobi, segas16b_state,generic_5358, ROT0, "Sega", "Shinobi (set 2, System 16B) (FD1094 317-0049)", 0 )
GAME( 1987, sonicbom, 0, system16b_fd1094, sonicbom, segas16b_state,generic_5358, ROT270, "Sega", "Sonic Boom (FD1094 317-0053)", 0 )
@@ -7005,24 +8388,24 @@ GAME( 1988, sjryuko, 0, system16b_fd1089b, sjryuko, segas16b_state,
GAME( 1987, suprleag, 0, system16b_fd1094, exctleag, segas16b_state,exctleag_5358, ROT0, "Sega", "Super League (FD1094 317-0045)", 0 )
-GAME( 1988, tetris2, tetris, system16b_fd1094, tetris, segas16b_state,generic_5704, ROT0, "Sega", "Tetris (set 2, Japan, System 16B, FD1094 317-0092)", 0 )
-GAME( 1988, tetris1, tetris, system16b_fd1094, tetris, segas16b_state,generic_5358_small, ROT0, "Sega", "Tetris (set 1, Japan, System 16B, FD1094 317-0091)", 0 )
+GAME( 1988, tetris2, tetris, system16b_fd1094, tetris, segas16b_state,generic_5704, ROT0, "Sega", "Tetris (set 2, Japan, System 16B) (FD1094 317-0092)", 0 )
+GAME( 1988, tetris1, tetris, system16b_fd1094, tetris, segas16b_state,generic_5358_small, ROT0, "Sega", "Tetris (set 1, Japan, System 16B) (FD1094 317-0091)", 0 )
GAME( 1987, timescan, 0, system16b, timescan, segas16b_state,timescan_5358_small, ROT270, "Sega", "Time Scanner (set 2, System 16B)", 0 )
GAME( 1994, toryumon, 0, system16b_5797, toryumon, segas16b_state,generic_5797, ROT0, "Sega", "Toryumon", 0 )
-GAME( 1989, tturf, 0, system16b_i8751, tturf, segas16b_state,tturf_5704, ROT0, "Sega / Sunsoft", "Tough Turf (set 2, Japan, 8751 317-0104)", 0 )
-GAME( 1989, tturfu, tturf, system16b_i8751, tturf, segas16b_state,generic_5358, ROT0, "Sega / Sunsoft", "Tough Turf (set 1, US, 8751 317-0099)", 0)
+GAME( 1989, tturf, 0, system16b_i8751, tturf, segas16b_state,tturf_5704, ROT0, "Sega / Sunsoft", "Tough Turf (set 2, Japan) (8751 317-0104)", 0 )
+GAME( 1989, tturfu, tturf, system16b_i8751, tturf, segas16b_state,generic_5358, ROT0, "Sega / Sunsoft", "Tough Turf (set 1, US) (8751 317-0099)", 0)
-GAME( 1988, wb3, 0, system16b_i8751, wb3, segas16b_state,wb3_5704, ROT0, "Sega / Westone", "Wonder Boy III - Monster Lair (set 6, World, System 16B, 8751 317-0098)", 0 )
-GAME( 1988, wb34, wb3, system16b_fd1094, wb3, segas16b_state,generic_5704, ROT0, "Sega / Westone", "Wonder Boy III - Monster Lair (set 4, Japan, System 16B, FD1094 317-0087)", 0 )
-GAME( 1988, wb33, wb3, system16b_fd1094, wb3, segas16b_state,generic_5704, ROT0, "Sega / Westone", "Wonder Boy III - Monster Lair (set 3, World, System 16B, FD1094 317-0089)", 0 )
-GAME( 1988, wb32, wb3, system16b_fd1094, wb3, segas16b_state,generic_5358, ROT0, "Sega / Westone", "Wonder Boy III - Monster Lair (set 2, Japan, System 16B, FD1094 317-0085)", 0 )
+GAME( 1988, wb3, 0, system16b_i8751, wb3, segas16b_state,wb3_5704, ROT0, "Sega / Westone", "Wonder Boy III - Monster Lair (set 6, World, System 16B) (8751 317-0098)", 0 )
+GAME( 1988, wb34, wb3, system16b_fd1094, wb3, segas16b_state,generic_5704, ROT0, "Sega / Westone", "Wonder Boy III - Monster Lair (set 4, Japan, System 16B) (FD1094 317-0087)", 0 )
+GAME( 1988, wb33, wb3, system16b_fd1094, wb3, segas16b_state,generic_5704, ROT0, "Sega / Westone", "Wonder Boy III - Monster Lair (set 3, World, System 16B) (FD1094 317-0089)", 0 )
+GAME( 1988, wb32, wb3, system16b_fd1094, wb3, segas16b_state,generic_5358, ROT0, "Sega / Westone", "Wonder Boy III - Monster Lair (set 2, Japan, System 16B) (FD1094 317-0085)", 0 )
-GAME( 1989, wrestwar, 0, system16b_i8751, wrestwar, segas16b_state,generic_5704, ROT270, "Sega", "Wrestle War (set 3, World, 8751 317-0103)", 0 )
-GAME( 1989, wrestwar2, wrestwar, system16b_fd1094, wrestwar, segas16b_state,generic_5704, ROT270, "Sega", "Wrestle War (set 2, World, FD1094 317-0102)", 0 )
-GAME( 1989, wrestwar1, wrestwar, system16b_fd1094, wrestwar, segas16b_state,generic_5704, ROT270, "Sega", "Wrestle War (set 1, Japan, FD1094 317-0090)", 0 )
+GAME( 1989, wrestwar, 0, system16b_i8751, wrestwar, segas16b_state,generic_5704, ROT270, "Sega", "Wrestle War (set 3, World) (8751 317-0103)", 0 )
+GAME( 1989, wrestwar2, wrestwar, system16b_fd1094, wrestwar, segas16b_state,generic_5704, ROT270, "Sega", "Wrestle War (set 2, World) (FD1094 317-0102)", 0 )
+GAME( 1989, wrestwar1, wrestwar, system16b_fd1094, wrestwar, segas16b_state,generic_5704, ROT270, "Sega", "Wrestle War (set 1, Japan) (FD1094 317-0090)", 0 )
// Extra RAM, dubbed by M2 as 'System 16C'
GAME( 2008, fantzn2x, 0, system16c, fz2, segas16b_state,generic_5704, ROT0, "Sega / M2", "Fantasy Zone II - The Tears of Opa-Opa (System 16C version)", 0 ) // The 1987 copyright date shown ingame is false
@@ -7035,8 +8418,77 @@ GAME( 2008, fantzoneta, fantzone, system16b, fantzoneta,segas16b_state
GAME( 1990, atomicp, 0, atomicp, atomicp, segas16b_state,generic_korean, ROT0, "Philko", "Atomic Point (Korea)", 0) // korean clone board..
GAME( 1990, snapper, 0, atomicp, snapper, segas16b_state,snapper, ROT0, "Philko", "Snapper (Korea)", 0) // korean clone board..
+// decrypted bootleg / 'suicide repair' sets
+
+GAME( 1987, shinobi2d, shinobi, system16b, shinobi, segas16b_state,generic_5358, ROT0, "bootleg", "Shinobi (set 2, System 16B) (bootleg of FD1094 317-0049 set)", 0 )
+
+GAME( 1989, fpointd, fpoint, system16b, fpoint, segas16b_state,generic_5358, ROT0, "bootleg", "Flash Point (set 2, Japan) (bootleg of FD1094 317-0127A set)", 0 )
+GAME( 1989, fpoint1d, fpoint, system16b, fpoint, segas16b_state,generic_5704, ROT0, "bootleg", "Flash Point (set 1, Japan) (bootleg of FD1094 317-0127A set)", 0 )
+
+GAME( 1988, tetris2d, tetris, system16b, tetris, segas16b_state,generic_5704, ROT0, "bootleg", "Tetris (set 2, Japan, System 16B) (bootleg of FD1094 317-0092 set)", 0 )
+GAME( 1988, tetris1d, tetris, system16b, tetris, segas16b_state,generic_5358_small, ROT0, "bootleg", "Tetris (set 1, Japan, System 16B) (bootleg of FD1094 317-0091 set)", 0 )
+
+GAME( 1988, dduxd, ddux, system16b, ddux, segas16b_state,generic_5521, ROT0, "bootleg", "Dynamite Dux (set 3, World) (bootleg of FD1094 317-0096 set)", 0 )
+GAME( 1988, dduxjd, ddux, system16b, ddux, segas16b_state,generic_5521, ROT0, "bootleg", "Dynamite Dux (set 2, Japan) (bootleg of FD1094 317-0094 set)", 0 )
+
+GAME( 1988, altbeast5d, altbeast, system16b, altbeast, segas16b_state,generic_5521, ROT0, "bootleg", "Altered Beast (set 5) (bootleg of FD1094 317-0069 set)", 0 )
+GAME( 1988, altbeastj3d,altbeast, system16b, altbeast, segas16b_state,generic_5521, ROT0, "bootleg", "Juuouki (set 3, Japan) (bootleg of FD1094 317-0068 set)", 0 )
+
+GAME( 1990, aurail1d, aurail, system16b, aurail, segas16b_state,generic_5704, ROT0, "bootleg", "Aurail (set 2, World) (bootleg of FD1089B 317-0168 set)", 0 )
+GAME( 1990, aurailjd, aurail, system16b, aurail, segas16b_state,generic_5704, ROT0, "bootleg", "Aurail (set 1, Japan) (bootleg of FD1089A 317-0167 set)", 0 )
+
+GAME( 1989, mvpd, mvp, system16b_5797,mvp, segas16b_state,generic_5797, ROT0, "bootleg", "MVP (set 2, US) (bootleg of FD1094 317-0143 set)", 0 )
+GAME( 1989, mvpjd, mvp, system16b, mvp, segas16b_state,generic_5704, ROT0, "bootleg", "MVP (set 1, Japan) (bootleg of FD1094 317-0142 set)", 0 )
+
+GAME( 1991, cottond, cotton, system16b, cotton, segas16b_state,generic_5704, ROT0, "bootleg", "Cotton (set 4, World) (bootleg of FD1094 317-0181a set)", 0 )
+GAME( 1991, cottonud, cotton, system16b, cotton, segas16b_state,generic_5704, ROT0, "bootleg", "Cotton (set 3, US) (bootleg of FD1094 317-0180 set)", 0 )
+GAME( 1991, cottonjad, cotton, system16b, cotton, segas16b_state,generic_5704, ROT0, "bootleg", "Cotton (set 1, Japan, Rev A) (bootleg of FD1094 317-0179a set)", 0 )
+GAME( 1991, cottonjd, cotton, system16b, cotton, segas16b_state,generic_5704, ROT0, "bootleg", "Cotton (set 2, Japan, Rev B) (bootleg of FD1094 317-0179b set)", 0 )
+GAME( 1989, bayrouted, bayroute, system16b, bayroute, segas16b_state,generic_5704, ROT0, "bootleg", "Bay Route (set 3, World) (bootleg of FD1094 317-0116 set)", 0 )
+GAME( 1989, bayroutejd, bayroute, system16b, bayroute, segas16b_state,generic_5704, ROT0, "bootleg", "Bay Route (set 2, Japan) (bootleg of FD1094 317-0115 set)", 0 )
+
+GAME( 1988, exctleagd, exctleag, system16b, exctleag, segas16b_state,exctleag_5358, ROT0, "bootleg", "Excite League (bootleg of FD1094 317-0079 set)", 0 )
+
+GAME( 1987, sonicbomd, sonicbom, system16b, sonicbom, segas16b_state,generic_5358, ROT270, "bootleg", "Sonic Boom (bootleg of FD1094 317-0053 set)", 0 )
+
+GAME( 1990, ryukyud, ryukyu, system16b, ryukyu, segas16b_state,generic_5704, ROT0, "bootleg", "RyuKyu (Japan) (bootleg of FD1094 317-5023 set)", 0 )
+
+GAME( 1987, hwchampjd, hwchamp, system16b, hwchamp, segas16b_state,hwchamp_5521, ROT0, "bootleg", "Heavyweight Champ (Japan) (bootleg of FD1094 317-0046 set)", 0 )
+
+GAME( 1987, bulletd, bullet, system16b, bullet, segas16b_state,generic_5358_small, ROT0, "bootleg", "Bullet (bootleg of FD1094 317-0041 set)", 0 )
+
+GAME( 1989, eswatd, eswat, system16b_5797,eswat, segas16b_state,generic_5797, ROT0, "bootleg", "E-Swat - Cyber Police (set 4, World) (bootleg of FD1094 317-0130 set)", 0 )
+GAME( 1989, eswatud, eswat, system16b_5797,eswat, segas16b_state,generic_5797, ROT0, "bootleg", "E-Swat - Cyber Police (set 3, US) (bootleg of FD1094 317-0129 set)", 0 )
+GAME( 1989, eswatjd, eswat, system16b_5797,eswat, segas16b_state,generic_5797, ROT0, "bootleg", "E-Swat - Cyber Police (set 2, Japan) (bootleg of FD1094 317-0128 set)", 0 )
+GAME( 1989, eswatj1d, eswat, system16b, eswat, segas16b_state,generic_5704, ROT0, "bootleg", "E-Swat - Cyber Police (set 1, Japan) (bootleg of FD1094 317-0131 set)", 0 )
+
+
+GAME( 1989, goldnaxeud, goldnaxe, system16b_5797,goldnaxe,segas16b_state,generic_5797, ROT0, "bootleg", "Golden Axe (set 5, US) (bootleg of FD1094 317-0122 set)", 0 )
+GAME( 1989, goldnaxe3d, goldnaxe, system16b, goldnaxe, segas16b_state,generic_5704, ROT0, "bootleg", "Golden Axe (set 3, World) (bootleg of FD1094 317-0120 set)", 0)
+GAME( 1989, goldnaxe1d, goldnaxe, system16b_5797,goldnaxe,segas16b_state,generic_5797, ROT0, "bootleg", "Golden Axe (set 1, World) (bootleg of FD1094 317-0110 set)", 0 )
+GAME( 1989, goldnaxejd, goldnaxe, system16b, goldnaxe, segas16b_state,generic_5704, ROT0, "bootleg", "Golden Axe (set 4, Japan) (bootleg of FD1094 317-0121 set)", 0 )
+
+
+GAME( 1988, passshtd, passsht, system16b, passsht, segas16b_state,generic_5358, ROT270, "bootleg", "Passing Shot (World, 2 Players) (bootleg of FD1094 317-0080 set)", 0 )
+GAME( 1988, passshtad, passsht, system16b, passshtj, segas16b_state,passshtj_5358, ROT270, "bootleg", "Passing Shot (World, 4 Players) (bootleg of FD1094 317-0074 set)", 0 )
+GAME( 1988, passshtjd, passsht, system16b, passshtj, segas16b_state,passshtj_5358, ROT270, "bootleg", "Passing Shot (Japan, 4 Players) (bootleg of FD1094 317-0070 set)", 0 )
+
+GAME( 1988, wb34d, wb3, system16b, wb3, segas16b_state,generic_5704, ROT0, "bootleg", "Wonder Boy III - Monster Lair (set 4, Japan, System 16B) (bootleg of FD1094 317-0087 set)", 0 )
+GAME( 1988, wb33d, wb3, system16b, wb3, segas16b_state,generic_5704, ROT0, "bootleg", "Wonder Boy III - Monster Lair (set 3, World, System 16B) (bootleg of FD1094 317-0089 set)", 0 )
+GAME( 1988, wb32d, wb3, system16b, wb3, segas16b_state,generic_5358, ROT0, "bootleg", "Wonder Boy III - Monster Lair (set 2, Japan, System 16B) (bootleg of FD1094 317-0085 set)", 0 )
+
+GAME( 1989, wrestwar2d, wrestwar, system16b, wrestwar, segas16b_state,generic_5704, ROT270, "bootleg", "Wrestle War (set 2, World) (bootleg of FD1094 317-0102 set)", 0 )
+GAME( 1989, wrestwar1d, wrestwar, system16b, wrestwar, segas16b_state,generic_5704, ROT270, "bootleg", "Wrestle War (set 1, Japan) (bootleg of FD1094 317-0090 set)", 0 )
+
+// bootlegs with split code/data, no memory mapper
+GAME( 1987, sdibl2, sdi, system16b_split, sdi, segas16b_state,sdi_5358_small, ROT0, "bootleg", "SDI - Strategic Defense Initiative (bootleg, set 1)", 0 ) // 0x5230
+GAME( 1987, sdibl3, sdi, system16b_split, sdi, segas16b_state,sdi_5358_small, ROT0, "bootleg", "SDI - Strategic Defense Initiative (bootleg, set 2)", 0 ) // ^
+GAME( 1987, sdibl4, sdi, system16b_split, sdi, segas16b_state,sdi_5358_small, ROT0, "bootleg", "SDI - Strategic Defense Initiative (bootleg, set 3)", 0 ) // ^
+GAME( 1987, sdibl5, sdi, system16b_split, sdi, segas16b_state,sdi_5358_small, ROT0, "bootleg", "SDI - Strategic Defense Initiative (bootleg, set 4)", 0 )
+GAME( 1987, sdibl6, sdi, system16b_split, sdi, segas16b_state,sdi_5358_small, ROT0, "bootleg", "SDI - Strategic Defense Initiative (bootleg, set 5)", 0 )
+
// ISG 'Selection Master' Type 2006 hardware
@@ -7065,10 +8517,7 @@ removed.
#define ISGSM_MAIN_BANK "mainbank"
-WRITE16_MEMBER( isgsm_state::sound_w16 )
-{
- mapper_sound_w(data);
-}
+
WRITE16_MEMBER( isgsm_state::cart_addr_high_w )
{
@@ -7551,7 +9000,7 @@ ROM_END
// YEAR, NAME, PARENT, MACHINE,INPUT, INIT, MONITOR, COMPANY, FULLNAME, FLAGS
-GAME( 2006, isgsm, 0, isgsm, isgsm, isgsm_state,isgsm, ROT0, "bootleg (ISG)", "ISG Selection Master Type 2006 BIOS", GAME_IS_BIOS_ROOT )
+GAME( 2006, isgsm, 0, isgsm, isgsm, isgsm_state,isgsm, ROT0, "bootleg (ISG)", "ISG Selection Master Type 2006 BIOS", MACHINE_IS_BIOS_ROOT )
/* 01 */ // ?? unknown
/* 02 */ GAME( 2006, tetrbx, isgsm, isgsm, tetrbx, isgsm_state,tetrbx, ROT0, "bootleg (ISG)", "Tetris / Bloxeed (Korean System 16 bootleg) (ISG Selection Master Type 2006)", 0 )
diff --git a/src/mame/drivers/segas18.c b/src/mame/drivers/segas18.c
index 609a0509227..3983dbc8098 100644
--- a/src/mame/drivers/segas18.c
+++ b/src/mame/drivers/segas18.c
@@ -522,7 +522,9 @@ static ADDRESS_MAP_START( system18_map, AS_PROGRAM, 16, segas18_state )
AM_RANGE(0x500000, 0x503fff) AM_RAM AM_SHARE("workram")
ADDRESS_MAP_END
-
+static ADDRESS_MAP_START( decrypted_opcodes_map, AS_DECRYPTED_OPCODES, 16, segas18_state )
+ AM_RANGE(0x00000, 0xfffff) AM_ROMBANK("fd1094_decrypted_opcodes")
+ADDRESS_MAP_END
/*************************************
*
@@ -1262,16 +1264,34 @@ static MACHINE_CONFIG_DERIVED( system18_fd1094, system18 )
// basic machine hardware
MCFG_CPU_REPLACE("maincpu", FD1094, 10000000)
MCFG_CPU_PROGRAM_MAP(system18_map)
+ MCFG_CPU_DECRYPTED_OPCODES_MAP(decrypted_opcodes_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", segas18_state, irq4_line_hold)
MACHINE_CONFIG_END
-static MACHINE_CONFIG_DERIVED( lghost, system18_fd1094 )
+static MACHINE_CONFIG_DERIVED( lghost_fd1094, system18_fd1094 )
// basic machine hardware
MCFG_DEVICE_MODIFY("io")
MCFG_315_5296_OUT_PORTC_CB(WRITE8(segas18_state, lghost_gun_recoil_w))
MACHINE_CONFIG_END
+static MACHINE_CONFIG_DERIVED( lghost, system18 )
+
+ // basic machine hardware
+ MCFG_DEVICE_MODIFY("io")
+ MCFG_315_5296_OUT_PORTC_CB(WRITE8(segas18_state, lghost_gun_recoil_w))
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( system18_i8751, system18 )
+
+ // basic machine hardware
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_VBLANK_INT_REMOVE()
+
+ MCFG_CPU_ADD("mcu", I8751, 8000000)
+ MCFG_CPU_IO_MAP(mcu_io_map)
+ MCFG_DEVICE_VBLANK_INT_DRIVER("screen", segas18_state, irq0_line_hold)
+MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( system18_fd1094_i8751, system18_fd1094 )
@@ -1365,6 +1385,33 @@ ROM_START( astorm3 )
ROM_LOAD( "epr-13078.bin", 0x190000, 0x40000, CRC(15684dc5) SHA1(595051006de24f791dae937584e502ff2fa31d9c) )
ROM_END
+ROM_START( astorm3d )
+ ROM_REGION( 0x080000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-13165.a6", 0x000000, 0x40000, CRC(2a0dbff5) SHA1(c58f999e0362ec88f2596cd8dbb405af64c90209) )
+ ROM_LOAD16_BYTE( "bootleg_epr-13164.a5", 0x000001, 0x40000, CRC(f981a183) SHA1(5077a28ece7f2284e6fb98243776a5e64745303c) )
+
+ ROM_REGION( 0xc0000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-13073.bin", 0x00000, 0x40000, CRC(df5d0a61) SHA1(79ad71de348f280bad847566c507b7a31f022292) )
+ ROM_LOAD( "epr-13074.bin", 0x40000, 0x40000, CRC(787afab8) SHA1(a119042bb2dad54e9733bfba4eaab0ac5fc0f9e7) )
+ ROM_LOAD( "epr-13075.bin", 0x80000, 0x40000, CRC(4e01b477) SHA1(4178ce4a87ea427c3b0195e64acef6cddfb3485f) )
+
+ ROM_REGION16_BE( 0x200000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "mpr-13082.bin", 0x000001, 0x40000, CRC(a782b704) SHA1(ba15bdfbc267b8d86f03e5310ce60846ff846de3) )
+ ROM_LOAD16_BYTE( "mpr-13089.bin", 0x000000, 0x40000, CRC(2a4227f0) SHA1(47284dce8f896f8e8eace9c20302842cacb479c1) )
+ ROM_LOAD16_BYTE( "mpr-13081.bin", 0x080001, 0x40000, CRC(eb510228) SHA1(4cd387b160ec7050e1300ebe708853742169e643) )
+ ROM_LOAD16_BYTE( "mpr-13088.bin", 0x080000, 0x40000, CRC(3b6b4c55) SHA1(970495c54b3e1893ee8060f6ca1338c2cbbd1074) )
+ ROM_LOAD16_BYTE( "mpr-13080.bin", 0x100001, 0x40000, CRC(e668eefb) SHA1(d4a087a238b4d3ac2d23fe148d6a73018e348a89) )
+ ROM_LOAD16_BYTE( "mpr-13087.bin", 0x100000, 0x40000, CRC(2293427d) SHA1(4fd07763ff060afd594e3f64fa4750577f56c80e) )
+ ROM_LOAD16_BYTE( "epr-13079.bin", 0x180001, 0x40000, CRC(de9221ed) SHA1(5e2e434d1aa547be1e5652fc906d2e18c5122023) )
+ ROM_LOAD16_BYTE( "epr-13086.bin", 0x180000, 0x40000, CRC(8c9a71c4) SHA1(40b774765ac888792aad46b6351a24b7ef40d2dc) )
+
+ ROM_REGION( 0x210000, "soundcpu", ROMREGION_ERASEFF ) // sound CPU
+ ROM_LOAD( "epr-13083.bin", 0x010000, 0x20000, CRC(5df3af20) SHA1(e49105fcfd5bf37d14bd760f6adca5ce2412883d) )
+ ROM_LOAD( "epr-13076.bin", 0x090000, 0x40000, CRC(94e6c76e) SHA1(f99e58a9bf372c41af211bd9b9ea3ac5b924c6ed) )
+ ROM_LOAD( "epr-13077.bin", 0x110000, 0x40000, CRC(e2ec0d8d) SHA1(225b0d223b7282cba7710300a877fb4a2c6dbabb) )
+ ROM_LOAD( "epr-13078.bin", 0x190000, 0x40000, CRC(15684dc5) SHA1(595051006de24f791dae937584e502ff2fa31d9c) )
+ROM_END
+
/**************************************************************************************************************************
Alien Storm (3 players US version), Sega System 18
CPU: FD1094 (317-0147)
@@ -1399,6 +1446,34 @@ ROM_START( astormu )
ROM_LOAD( "epr-13078.bin", 0x190000, 0x40000, CRC(15684dc5) SHA1(595051006de24f791dae937584e502ff2fa31d9c) )
ROM_END
+ROM_START( astormud )
+ ROM_REGION( 0x080000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-13095.a6", 0x000000, 0x40000, CRC(a29b1eea) SHA1(ff34ab6806a4aea3519cefe06c8b85962bd9942d) )
+ ROM_LOAD16_BYTE( "bootleg_epr-13094.a5", 0x000001, 0x40000, CRC(81f4c6b6) SHA1(c2c69b281a90635746c76d285b2a8342151a1cd5) )
+
+ ROM_REGION( 0xc0000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-13073.bin", 0x00000, 0x40000, CRC(df5d0a61) SHA1(79ad71de348f280bad847566c507b7a31f022292) )
+ ROM_LOAD( "epr-13074.bin", 0x40000, 0x40000, CRC(787afab8) SHA1(a119042bb2dad54e9733bfba4eaab0ac5fc0f9e7) )
+ ROM_LOAD( "epr-13075.bin", 0x80000, 0x40000, CRC(4e01b477) SHA1(4178ce4a87ea427c3b0195e64acef6cddfb3485f) )
+
+ ROM_REGION16_BE( 0x200000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "mpr-13082.bin", 0x000001, 0x40000, CRC(a782b704) SHA1(ba15bdfbc267b8d86f03e5310ce60846ff846de3) )
+ ROM_LOAD16_BYTE( "mpr-13089.bin", 0x000000, 0x40000, CRC(2a4227f0) SHA1(47284dce8f896f8e8eace9c20302842cacb479c1) )
+ ROM_LOAD16_BYTE( "mpr-13081.bin", 0x080001, 0x40000, CRC(eb510228) SHA1(4cd387b160ec7050e1300ebe708853742169e643) )
+ ROM_LOAD16_BYTE( "mpr-13088.bin", 0x080000, 0x40000, CRC(3b6b4c55) SHA1(970495c54b3e1893ee8060f6ca1338c2cbbd1074) )
+ ROM_LOAD16_BYTE( "mpr-13080.bin", 0x100001, 0x40000, CRC(e668eefb) SHA1(d4a087a238b4d3ac2d23fe148d6a73018e348a89) )
+ ROM_LOAD16_BYTE( "mpr-13087.bin", 0x100000, 0x40000, CRC(2293427d) SHA1(4fd07763ff060afd594e3f64fa4750577f56c80e) )
+ ROM_LOAD16_BYTE( "epr-13079.bin", 0x180001, 0x40000, CRC(de9221ed) SHA1(5e2e434d1aa547be1e5652fc906d2e18c5122023) )
+ ROM_LOAD16_BYTE( "epr-13086.bin", 0x180000, 0x40000, CRC(8c9a71c4) SHA1(40b774765ac888792aad46b6351a24b7ef40d2dc) )
+
+ ROM_REGION( 0x210000, "soundcpu", ROMREGION_ERASEFF ) // sound CPU
+ ROM_LOAD( "epr-13083.bin", 0x010000, 0x20000, CRC(5df3af20) SHA1(e49105fcfd5bf37d14bd760f6adca5ce2412883d) )
+ ROM_LOAD( "epr-13076.bin", 0x090000, 0x40000, CRC(94e6c76e) SHA1(f99e58a9bf372c41af211bd9b9ea3ac5b924c6ed) )
+ ROM_LOAD( "epr-13077.bin", 0x110000, 0x40000, CRC(e2ec0d8d) SHA1(225b0d223b7282cba7710300a877fb4a2c6dbabb) )
+ ROM_LOAD( "epr-13078.bin", 0x190000, 0x40000, CRC(15684dc5) SHA1(595051006de24f791dae937584e502ff2fa31d9c) )
+ROM_END
+
+
/**************************************************************************************************************************
Alien Storm, Sega System 18
CPU: FD1094 (317-0146)
@@ -1434,6 +1509,33 @@ ROM_START( astormj )
ROM_LOAD( "epr-13078.bin", 0x190000, 0x40000, CRC(15684dc5) SHA1(595051006de24f791dae937584e502ff2fa31d9c) )
ROM_END
+ROM_START( astormjd )
+ ROM_REGION( 0x080000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-13085.a6", 0x000000, 0x40000, CRC(c0d7f3c2) SHA1(1123f0d4cf25c3ee82a57212d9ffee49667c9f84) )
+ ROM_LOAD16_BYTE( "bootleg_epr-13084.a5", 0x000001, 0x40000, CRC(006635f0) SHA1(7b4fce33151c7cfe5a33065a5b33ff678bac933c) )
+
+ ROM_REGION( 0xc0000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-13073.bin", 0x00000, 0x40000, CRC(df5d0a61) SHA1(79ad71de348f280bad847566c507b7a31f022292) )
+ ROM_LOAD( "epr-13074.bin", 0x40000, 0x40000, CRC(787afab8) SHA1(a119042bb2dad54e9733bfba4eaab0ac5fc0f9e7) )
+ ROM_LOAD( "epr-13075.bin", 0x80000, 0x40000, CRC(4e01b477) SHA1(4178ce4a87ea427c3b0195e64acef6cddfb3485f) )
+
+ ROM_REGION16_BE( 0x200000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "mpr-13082.bin", 0x000001, 0x40000, CRC(a782b704) SHA1(ba15bdfbc267b8d86f03e5310ce60846ff846de3) )
+ ROM_LOAD16_BYTE( "mpr-13089.bin", 0x000000, 0x40000, CRC(2a4227f0) SHA1(47284dce8f896f8e8eace9c20302842cacb479c1) )
+ ROM_LOAD16_BYTE( "mpr-13081.bin", 0x080001, 0x40000, CRC(eb510228) SHA1(4cd387b160ec7050e1300ebe708853742169e643) )
+ ROM_LOAD16_BYTE( "mpr-13088.bin", 0x080000, 0x40000, CRC(3b6b4c55) SHA1(970495c54b3e1893ee8060f6ca1338c2cbbd1074) )
+ ROM_LOAD16_BYTE( "mpr-13080.bin", 0x100001, 0x40000, CRC(e668eefb) SHA1(d4a087a238b4d3ac2d23fe148d6a73018e348a89) )
+ ROM_LOAD16_BYTE( "mpr-13087.bin", 0x100000, 0x40000, CRC(2293427d) SHA1(4fd07763ff060afd594e3f64fa4750577f56c80e) )
+ ROM_LOAD16_BYTE( "epr-13079.bin", 0x180001, 0x40000, CRC(de9221ed) SHA1(5e2e434d1aa547be1e5652fc906d2e18c5122023) )
+ ROM_LOAD16_BYTE( "epr-13086.bin", 0x180000, 0x40000, CRC(8c9a71c4) SHA1(40b774765ac888792aad46b6351a24b7ef40d2dc) )
+
+ ROM_REGION( 0x210000, "soundcpu", ROMREGION_ERASEFF ) // sound CPU
+ ROM_LOAD( "epr-13083b.bin", 0x010000, 0x20000, CRC(169b4b5f) SHA1(bb3dfc4aff939df5ad04cf3ecb8e7de366097743) )
+ ROM_LOAD( "epr-13076.bin", 0x090000, 0x40000, CRC(94e6c76e) SHA1(f99e58a9bf372c41af211bd9b9ea3ac5b924c6ed) )
+ ROM_LOAD( "epr-13077.bin", 0x110000, 0x40000, CRC(e2ec0d8d) SHA1(225b0d223b7282cba7710300a877fb4a2c6dbabb) )
+ ROM_LOAD( "epr-13078.bin", 0x190000, 0x40000, CRC(15684dc5) SHA1(595051006de24f791dae937584e502ff2fa31d9c) )
+ROM_END
+
/**************************************************************************************************************************
**************************************************************************************************************************
@@ -1443,26 +1545,43 @@ ROM_END
ROM Board: 171-5874B
*/
ROM_START( bloxeed )
- ROM_REGION( 0x40000, "maincpu", 0 ) // 68000 code
- ROM_LOAD16_BYTE( "epr-12911.a6", 0x000000, 0x20000, CRC(a481581a)SHA1(5ce5a0a082622919d2fe0e7d52ec807b2e2c25a2) )
- ROM_LOAD16_BYTE( "epr-12910.a5", 0x000001, 0x20000, CRC(dd1bc3bf)SHA1(c0d79862a349ea4dac103c17325633c5dd4a93d1) )
+ ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "epr-12911.a6", 0x000000, 0x20000, CRC(a481581a) SHA1(5ce5a0a082622919d2fe0e7d52ec807b2e2c25a2) )
+ ROM_LOAD16_BYTE( "epr-12910.a5", 0x000001, 0x20000, CRC(dd1bc3bf) SHA1(c0d79862a349ea4dac103c17325633c5dd4a93d1) )
ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
- ROM_LOAD( "317-0139.key", 0x0000, 0x2000, CRC(9aae84cb)SHA1(806515d61ecacb260b2b5e5fe023b494d35ce315) )
+ ROM_LOAD( "317-0139.key", 0x0000, 0x2000, CRC(9aae84cb) SHA1(806515d61ecacb260b2b5e5fe023b494d35ce315) )
ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
- ROM_LOAD( "opr-12884.b1", 0x00000, 0x10000, CRC(e024aa33)SHA1(d734be240cd05031aaadf9735c0b1b00e8e6d4cb) )
- ROM_LOAD( "opr-12885.b2", 0x10000, 0x10000, CRC(8041b814)SHA1(29fa49ba9a73eed07865a86ea774e2c6a60aed5b) )
- ROM_LOAD( "opr-12886.b3", 0x20000, 0x10000, CRC(de32285e)SHA1(8994dc128d6a23763e5fcfca1868b336d4aa0a21) )
+ ROM_LOAD( "opr-12884.b1", 0x00000, 0x10000, CRC(e024aa33) SHA1(d734be240cd05031aaadf9735c0b1b00e8e6d4cb) )
+ ROM_LOAD( "opr-12885.b2", 0x10000, 0x10000, CRC(8041b814) SHA1(29fa49ba9a73eed07865a86ea774e2c6a60aed5b) )
+ ROM_LOAD( "opr-12886.b3", 0x20000, 0x10000, CRC(de32285e) SHA1(8994dc128d6a23763e5fcfca1868b336d4aa0a21) )
ROM_REGION( 0x20000, "sprites", 0 ) // sprites
- ROM_LOAD16_BYTE( "opr-12891.a11", 0x00001, 0x10000, CRC(90d31a8c)SHA1(1747652a5109ce65add197cf06535f2463a99fdc) )
- ROM_LOAD16_BYTE( "opr-12887.b11", 0x00000, 0x10000, CRC(f0c0f49d)SHA1(7ecd591265165f3149241e2ceb5059faab88360f) )
+ ROM_LOAD16_BYTE( "opr-12891.a11", 0x00001, 0x10000, CRC(90d31a8c) SHA1(1747652a5109ce65add197cf06535f2463a99fdc) )
+ ROM_LOAD16_BYTE( "opr-12887.b11", 0x00000, 0x10000, CRC(f0c0f49d) SHA1(7ecd591265165f3149241e2ceb5059faab88360f) )
ROM_REGION( 0x210000, "soundcpu", ROMREGION_ERASEFF ) // sound CPU
- ROM_LOAD( "epr-12888.a4", 0x010000, 0x20000, CRC(6f2fc63c)SHA1(3cce22c8f80013f05b5a2d36c42a61a81e4d6cbd) )
+ ROM_LOAD( "epr-12888.a4", 0x010000, 0x20000, CRC(6f2fc63c) SHA1(3cce22c8f80013f05b5a2d36c42a61a81e4d6cbd) )
ROM_END
+ROM_START( bloxeedd )
+ ROM_REGION( 0x40000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "bootleg_epr-12911.a6", 0x000000, 0x20000, CRC(2d634453) SHA1(7a17084057c89d581125b7823c04219a3fb599a5))
+ ROM_LOAD16_BYTE( "bootleg_epr-12910.a5", 0x000001, 0x20000, CRC(e6d2e9cc) SHA1(3ee269bce104d0da9a2eb0d42a07924f60f4d3a8) )
+
+ ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "opr-12884.b1", 0x00000, 0x10000, CRC(e024aa33) SHA1(d734be240cd05031aaadf9735c0b1b00e8e6d4cb) )
+ ROM_LOAD( "opr-12885.b2", 0x10000, 0x10000, CRC(8041b814) SHA1(29fa49ba9a73eed07865a86ea774e2c6a60aed5b) )
+ ROM_LOAD( "opr-12886.b3", 0x20000, 0x10000, CRC(de32285e) SHA1(8994dc128d6a23763e5fcfca1868b336d4aa0a21) )
+
+ ROM_REGION( 0x20000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "opr-12891.a11", 0x00001, 0x10000, CRC(90d31a8c) SHA1(1747652a5109ce65add197cf06535f2463a99fdc) )
+ ROM_LOAD16_BYTE( "opr-12887.b11", 0x00000, 0x10000, CRC(f0c0f49d) SHA1(7ecd591265165f3149241e2ceb5059faab88360f) )
+
+ ROM_REGION( 0x210000, "soundcpu", ROMREGION_ERASEFF ) // sound CPU
+ ROM_LOAD( "epr-12888.a4", 0x010000, 0x20000, CRC(6f2fc63c) SHA1(3cce22c8f80013f05b5a2d36c42a61a81e4d6cbd) )
+ROM_END
/**************************************************************************************************************************
**************************************************************************************************************************
@@ -1503,6 +1622,32 @@ ROM_START( cltchitr )
ROM_LOAD( "epr-13791.c5", 0x110000, 0x80000, CRC(35c16d80) SHA1(7ed04600748c5efb63e25f066daa163e9c0d8038) )
ROM_END
+ROM_START( cltchitrd )
+ ROM_REGION( 0x100000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-13794.a4", 0x00000, 0x40000, CRC(b15de2c5) SHA1(06bbd1de3429a9543ebe69895f2c485feaf54187) )
+ ROM_LOAD16_BYTE( "bootleg_epr-13795.a6", 0x00001, 0x40000, CRC(8fc7e524) SHA1(8c55cbb952e4b6aef51b9bd417f842284cb76663) )
+ ROM_LOAD16_BYTE( "epr-13784.a5", 0x80000, 0x40000, CRC(80c8180d) SHA1(80e72ab7d97714009fd31b3d50176af84b0dcdb7) )
+ ROM_LOAD16_BYTE( "epr-13786.a7", 0x80001, 0x40000, CRC(3095dac0) SHA1(20edce74b6f2a82a3865613e601a0e212615d0e4) )
+
+ ROM_REGION( 0x180000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "mpr-13773.c1", 0x000000, 0x80000, CRC(3fc600e5) SHA1(8bec4ecf6a4e4b38d13133960036a5a4800a668e) )
+ ROM_LOAD( "mpr-13774.c2", 0x080000, 0x80000, CRC(2411a824) SHA1(0e383ccc4e0830ffb395d5102e2950610c147007) )
+ ROM_LOAD( "mpr-13775.c3", 0x100000, 0x80000, CRC(cf527bf6) SHA1(1f9cf1f0e92709f0465dc97ebbdaa715a419f7a7) )
+
+ ROM_REGION16_BE( 0x600000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "mpr-13779.c10", 0x000001, 0x80000, CRC(c707f416) SHA1(e6a9d89849f7f1c303a3ca29a629f81397945a2d) )
+ ROM_LOAD16_BYTE( "mpr-13787.a10", 0x000000, 0x80000, CRC(f05c68c6) SHA1(b6a0535b6c734a0c89fdb6506c32ffe6ab3aa8cd) )
+ ROM_LOAD16_BYTE( "mpr-13780.c11", 0x200001, 0x80000, CRC(a4c341e0) SHA1(15a0b5a42b56465a7b7df98968cc2ed177ce6f59) )
+ ROM_LOAD16_BYTE( "mpr-13788.a11", 0x200000, 0x80000, CRC(0106fea6) SHA1(e16e2a469ecbbc704021dee6264db30aa0898368) )
+ ROM_LOAD16_BYTE( "mpr-13781.c12", 0x400001, 0x80000, CRC(f33b13af) SHA1(d3eb64dcf12d532454bf3cd6c86528c0f11ee316) )
+ ROM_LOAD16_BYTE( "mpr-13789.a12", 0x400000, 0x80000, CRC(09ba8835) SHA1(72e83dd1793a7f4b2b881e71f262493e3d4992b3) )
+
+ ROM_REGION( 0x210000, "soundcpu", ROMREGION_ERASEFF ) // sound CPU
+ ROM_LOAD( "epr-13793.c7", 0x010000, 0x80000, CRC(a3d31944) SHA1(44d17aa0598eacfac4b12c8955fd1067ca09abbd) )
+ ROM_LOAD( "epr-13792.c6", 0x090000, 0x80000, CRC(808f9695) SHA1(d50677d20083ad56dbf0864db05f76f93a4e9eba) )
+ ROM_LOAD( "epr-13791.c5", 0x110000, 0x80000, CRC(35c16d80) SHA1(7ed04600748c5efb63e25f066daa163e9c0d8038) )
+ROM_END
+
/**************************************************************************************************************************
Clutch Hitter, Sega System 18
CPU: FD1094 (317-0175)
@@ -1541,6 +1686,36 @@ ROM_START( cltchitrj )
ROM_LOAD( "epr-13776.c5", 0x110000, 0x80000, CRC(282ac9fe) SHA1(4f54d93779c35c036d7c85fce6736df80f3bbe33) )
ROM_END
+ROM_START( cltchitrjd )
+ ROM_REGION( 0x100000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-13783.a4", 0x00000, 0x40000, CRC(dafd48af) SHA1(5be2d1f4c75426f3d41cbb43d63b1eceae8c3d57) )
+ ROM_LOAD16_BYTE( "bootleg_epr-13796.a6", 0x00001, 0x40000, CRC(219aae33) SHA1(2dc9c32cfd82abc9f4855459ea427f05a299d596) )
+ ROM_LOAD16_BYTE( "epr-13785.a5", 0x80000, 0x40000, CRC(09714762) SHA1(c75c88b1c313e172fdb7f9a570d57be38f959b2b) )
+ ROM_LOAD16_BYTE( "epr-13797.a7", 0x80001, 0x40000, CRC(361ade9f) SHA1(a7fd48c55695fd322d0456ff7dc2d2b2bc3e561b) )
+
+ ROM_REGION( 0x180000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "mpr-13773.c1", 0x000000, 0x80000, CRC(3fc600e5) SHA1(8bec4ecf6a4e4b38d13133960036a5a4800a668e) )
+ ROM_LOAD( "mpr-13774.c2", 0x080000, 0x80000, CRC(2411a824) SHA1(0e383ccc4e0830ffb395d5102e2950610c147007) )
+ ROM_LOAD( "mpr-13775.c3", 0x100000, 0x80000, CRC(cf527bf6) SHA1(1f9cf1f0e92709f0465dc97ebbdaa715a419f7a7) )
+
+ ROM_REGION16_BE( 0x800000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "mpr-13779.c10", 0x000001, 0x80000, CRC(c707f416) SHA1(e6a9d89849f7f1c303a3ca29a629f81397945a2d) )
+ ROM_LOAD16_BYTE( "mpr-13787.a10", 0x000000, 0x80000, CRC(f05c68c6) SHA1(b6a0535b6c734a0c89fdb6506c32ffe6ab3aa8cd) )
+ ROM_LOAD16_BYTE( "mpr-13780.c11", 0x200001, 0x80000, CRC(a4c341e0) SHA1(15a0b5a42b56465a7b7df98968cc2ed177ce6f59) )
+ ROM_LOAD16_BYTE( "mpr-13788.a11", 0x200000, 0x80000, CRC(0106fea6) SHA1(e16e2a469ecbbc704021dee6264db30aa0898368) )
+ ROM_LOAD16_BYTE( "mpr-13781.c12", 0x400001, 0x80000, CRC(f33b13af) SHA1(d3eb64dcf12d532454bf3cd6c86528c0f11ee316) )
+ ROM_LOAD16_BYTE( "mpr-13789.a12", 0x400000, 0x80000, CRC(09ba8835) SHA1(72e83dd1793a7f4b2b881e71f262493e3d4992b3) )
+ // extra gfx roms??*/
+ ROM_LOAD16_BYTE( "epr-13782.c13", 0x600001, 0x40000, CRC(73790852) SHA1(891345cb8ce4b04bd293ee9bac9b1b9940d6bcb2) )
+ ROM_LOAD16_BYTE( "epr-13790.a13", 0x600000, 0x40000, CRC(23849101) SHA1(1aeb0fefb6688dfd841bd7d0b17ffdfce69f1dd9) )
+
+ ROM_REGION( 0x210000, "soundcpu", ROMREGION_ERASEFF ) // sound CPU
+ // another copy in different set is epr-13778.b7 - 9c54c038
+ ROM_LOAD( "epr-13778.c7", 0x010000, 0x20000, CRC(35e86146) SHA1(9be82165dc12d5f32ef26f37ea02b29e3621893f) )
+ ROM_LOAD( "epr-13777.c6", 0x090000, 0x80000, CRC(d1524782) SHA1(121c5804927ed686ea50d5d81d0226e041f50f6f) )
+ ROM_LOAD( "epr-13776.c5", 0x110000, 0x80000, CRC(282ac9fe) SHA1(4f54d93779c35c036d7c85fce6736df80f3bbe33) )
+ROM_END
+
/**************************************************************************************************************************
**************************************************************************************************************************
@@ -1581,6 +1756,35 @@ ROM_START( ddcrew )
ROM_LOAD( "epr-14130.c4", 0x190000, 0x80000, CRC(948f34a1) SHA1(d4c6728d5eea06cee6ac15a34ec8cccb4cc4b982) )
ROM_END
+ROM_START( ddcrewd )
+ ROM_REGION( 0x100000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-14160.a4", 0x00000, 0x40000, CRC(22a6c8e3) SHA1(a4ed9b776b1c61fb6ac158534084152b364d214d) )
+ ROM_LOAD16_BYTE( "bootleg_epr-14161.a6", 0x00001, 0x40000, CRC(d9eaba00) SHA1(39d88d7ea22dce3456185aa2c4f2440c798a42d8) )
+ ROM_LOAD16_BYTE( "mpr-14139.a5", 0x80000, 0x40000, CRC(06c31531) SHA1(d084cb72bf83578b34e959bb60a0695faf4161f8) )
+ ROM_LOAD16_BYTE( "mpr-14141.a7", 0x80001, 0x40000, CRC(080a494b) SHA1(64522dccbf6ed856ab80aa185454183df87d7ae9) )
+
+ ROM_REGION( 0xc0000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-14127.c1", 0x00000, 0x40000, CRC(2228cd88) SHA1(5774bb6a401c3da05c5f3c9d3996b20bb3713cb2) )
+ ROM_LOAD( "epr-14128.c2", 0x40000, 0x40000, CRC(edba8e10) SHA1(25a2833ead4ca363802ddc2eb97c40976502921a) )
+ ROM_LOAD( "epr-14129.c3", 0x80000, 0x40000, CRC(e8ecc305) SHA1(a26d0c5c7826cd315f8b2c27e5a503a2a7b535c4) )
+
+ ROM_REGION16_BE( 0x800000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "mpr-14134.c10", 0x000001, 0x80000, CRC(4fda6a4b) SHA1(a9e582e494ab967e8f3ccf4d5844bb8ef889928c) )
+ ROM_LOAD16_BYTE( "mpr-14142.a10", 0x000000, 0x80000, CRC(3cbf1f2a) SHA1(80b6b006936740087786acd538e28aca85fa6894) )
+ ROM_LOAD16_BYTE( "mpr-14135.c11", 0x200001, 0x80000, CRC(e9c74876) SHA1(aff9d071e77f01c6937188bf67be38fa898343e6) )
+ ROM_LOAD16_BYTE( "mpr-14143.a11", 0x200000, 0x80000, CRC(59022c31) SHA1(5e1409fe0f29284dc6a3ffacf69b761aae09f132) )
+ ROM_LOAD16_BYTE( "mpr-14136.c12", 0x400001, 0x80000, CRC(720d9858) SHA1(8ebcb8b3e9555ca48b28908d47dcbbd654398b6f) )
+ ROM_LOAD16_BYTE( "mpr-14144.a12", 0x400000, 0x80000, CRC(7775fdd4) SHA1(a03cac039b400b651a4bf2167a8f2338f488ce26) )
+ ROM_LOAD16_BYTE( "epr-14137.c13", 0x600001, 0x80000, CRC(846c4265) SHA1(58d0c213d085fb4dee18b7aefb05087d9d522950) )
+ ROM_LOAD16_BYTE( "epr-14145.a13", 0x600000, 0x80000, CRC(0e76c797) SHA1(9a44dc948e84e5acac36e80105c2349ee78e6cfa) )
+
+ ROM_REGION( 0x210000, "soundcpu", ROMREGION_ERASEFF ) // sound CPU
+ ROM_LOAD( "epr-14133.c7", 0x010000, 0x20000, CRC(cff96665) SHA1(b4dc7f1a03415ebebdb99a82ae89328c345e7678) )
+ ROM_LOAD( "mpr-14132.c6", 0x090000, 0x80000, CRC(1fae0220) SHA1(8414c74318ea915816c6b67801ac7c8c3fc905f9) )
+ ROM_LOAD( "mpr-14131.c5", 0x110000, 0x80000, CRC(be5a7d0b) SHA1(c2c598b0cf711273fdd568f3401375e9772c1d61) )
+ ROM_LOAD( "epr-14130.c4", 0x190000, 0x80000, CRC(948f34a1) SHA1(d4c6728d5eea06cee6ac15a34ec8cccb4cc4b982) )
+ROM_END
+
/**************************************************************************************************************************
D.D. Crew, Sega System 18
CPU: FD1094 (317-0186)
@@ -1618,6 +1822,35 @@ ROM_START( ddcrewu )
ROM_LOAD( "epr-14130.c4", 0x190000, 0x80000, CRC(948f34a1) SHA1(d4c6728d5eea06cee6ac15a34ec8cccb4cc4b982) )
ROM_END
+ROM_START( ddcrewud )
+ ROM_REGION( 0x100000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-14152.a4", 0x00000, 0x40000, CRC(41b782d0) SHA1(b84ebbe65b9b2aed0599a3309ff5afbdd40e3c13) )
+ ROM_LOAD16_BYTE( "bootleg_epr-14153.a6", 0x00001, 0x40000, CRC(48070486) SHA1(2cac94337eff256b05d614a960dc2c9cd707fe28) )
+ ROM_LOAD16_BYTE( "mpr-14139.a5", 0x80000, 0x40000, CRC(06c31531) SHA1(d084cb72bf83578b34e959bb60a0695faf4161f8) )
+ ROM_LOAD16_BYTE( "mpr-14141.a7", 0x80001, 0x40000, CRC(080a494b) SHA1(64522dccbf6ed856ab80aa185454183df87d7ae9) )
+
+ ROM_REGION( 0xc0000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-14127.c1", 0x00000, 0x40000, CRC(2228cd88) SHA1(5774bb6a401c3da05c5f3c9d3996b20bb3713cb2) )
+ ROM_LOAD( "epr-14128.c2", 0x40000, 0x40000, CRC(edba8e10) SHA1(25a2833ead4ca363802ddc2eb97c40976502921a) )
+ ROM_LOAD( "epr-14129.c3", 0x80000, 0x40000, CRC(e8ecc305) SHA1(a26d0c5c7826cd315f8b2c27e5a503a2a7b535c4) )
+
+ ROM_REGION16_BE( 0x800000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "mpr-14134.c10", 0x000001, 0x80000, CRC(4fda6a4b) SHA1(a9e582e494ab967e8f3ccf4d5844bb8ef889928c) )
+ ROM_LOAD16_BYTE( "mpr-14142.a10", 0x000000, 0x80000, CRC(3cbf1f2a) SHA1(80b6b006936740087786acd538e28aca85fa6894) )
+ ROM_LOAD16_BYTE( "mpr-14135.c11", 0x200001, 0x80000, CRC(e9c74876) SHA1(aff9d071e77f01c6937188bf67be38fa898343e6) )
+ ROM_LOAD16_BYTE( "mpr-14143.a11", 0x200000, 0x80000, CRC(59022c31) SHA1(5e1409fe0f29284dc6a3ffacf69b761aae09f132) )
+ ROM_LOAD16_BYTE( "mpr-14136.c12", 0x400001, 0x80000, CRC(720d9858) SHA1(8ebcb8b3e9555ca48b28908d47dcbbd654398b6f) )
+ ROM_LOAD16_BYTE( "mpr-14144.a12", 0x400000, 0x80000, CRC(7775fdd4) SHA1(a03cac039b400b651a4bf2167a8f2338f488ce26) )
+ ROM_LOAD16_BYTE( "epr-14137.c13", 0x600001, 0x80000, CRC(846c4265) SHA1(58d0c213d085fb4dee18b7aefb05087d9d522950) )
+ ROM_LOAD16_BYTE( "epr-14145.a13", 0x600000, 0x80000, CRC(0e76c797) SHA1(9a44dc948e84e5acac36e80105c2349ee78e6cfa) )
+
+ ROM_REGION( 0x210000, "soundcpu", ROMREGION_ERASEFF ) // sound CPU
+ ROM_LOAD( "epr-14133.c7", 0x010000, 0x20000, CRC(cff96665) SHA1(b4dc7f1a03415ebebdb99a82ae89328c345e7678) )
+ ROM_LOAD( "mpr-14132.c6", 0x090000, 0x80000, CRC(1fae0220) SHA1(8414c74318ea915816c6b67801ac7c8c3fc905f9) )
+ ROM_LOAD( "mpr-14131.c5", 0x110000, 0x80000, CRC(be5a7d0b) SHA1(c2c598b0cf711273fdd568f3401375e9772c1d61) )
+ ROM_LOAD( "epr-14130.c4", 0x190000, 0x80000, CRC(948f34a1) SHA1(d4c6728d5eea06cee6ac15a34ec8cccb4cc4b982) )
+ROM_END
+
/**************************************************************************************************************************
D.D. Crew, Sega System 18
CPU: FD1094 (317-0184)
@@ -1655,6 +1888,36 @@ ROM_START( ddcrew2 )
ROM_LOAD( "epr-14130.c4", 0x190000, 0x80000, CRC(948f34a1) SHA1(d4c6728d5eea06cee6ac15a34ec8cccb4cc4b982) )
ROM_END
+ROM_START( ddcrew2d )
+ ROM_REGION( 0x100000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-14148.a4", 0x00000, 0x40000, CRC(f3ddb3b9) SHA1(493ad0330362e7244927ee36587fab9634925ee1) )
+ ROM_LOAD16_BYTE( "bootleg_epr-14149.a6", 0x00001, 0x40000, CRC(98a83ee1) SHA1(33e37becccf63d6005e901d38418c003834e469f) )
+ ROM_LOAD16_BYTE( "mpr-14139.a5", 0x80000, 0x40000, CRC(06c31531) SHA1(d084cb72bf83578b34e959bb60a0695faf4161f8) )
+ ROM_LOAD16_BYTE( "mpr-14141.a7", 0x80001, 0x40000, CRC(080a494b) SHA1(64522dccbf6ed856ab80aa185454183df87d7ae9) )
+
+ ROM_REGION( 0xc0000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-14127.c1", 0x00000, 0x40000, CRC(2228cd88) SHA1(5774bb6a401c3da05c5f3c9d3996b20bb3713cb2) )
+ ROM_LOAD( "epr-14128.c2", 0x40000, 0x40000, CRC(edba8e10) SHA1(25a2833ead4ca363802ddc2eb97c40976502921a) )
+ ROM_LOAD( "epr-14129.c3", 0x80000, 0x40000, CRC(e8ecc305) SHA1(a26d0c5c7826cd315f8b2c27e5a503a2a7b535c4) )
+
+ ROM_REGION16_BE( 0x800000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "mpr-14134.c10", 0x000001, 0x80000, CRC(4fda6a4b) SHA1(a9e582e494ab967e8f3ccf4d5844bb8ef889928c) )
+ ROM_LOAD16_BYTE( "mpr-14142.a10", 0x000000, 0x80000, CRC(3cbf1f2a) SHA1(80b6b006936740087786acd538e28aca85fa6894) )
+ ROM_LOAD16_BYTE( "mpr-14135.c11", 0x200001, 0x80000, CRC(e9c74876) SHA1(aff9d071e77f01c6937188bf67be38fa898343e6) )
+ ROM_LOAD16_BYTE( "mpr-14143.a11", 0x200000, 0x80000, CRC(59022c31) SHA1(5e1409fe0f29284dc6a3ffacf69b761aae09f132) )
+ ROM_LOAD16_BYTE( "mpr-14136.c12", 0x400001, 0x80000, CRC(720d9858) SHA1(8ebcb8b3e9555ca48b28908d47dcbbd654398b6f) )
+ ROM_LOAD16_BYTE( "mpr-14144.a12", 0x400000, 0x80000, CRC(7775fdd4) SHA1(a03cac039b400b651a4bf2167a8f2338f488ce26) )
+ ROM_LOAD16_BYTE( "epr-14137.c13", 0x600001, 0x80000, CRC(846c4265) SHA1(58d0c213d085fb4dee18b7aefb05087d9d522950) )
+ ROM_LOAD16_BYTE( "epr-14145.a13", 0x600000, 0x80000, CRC(0e76c797) SHA1(9a44dc948e84e5acac36e80105c2349ee78e6cfa) )
+
+ ROM_REGION( 0x210000, "soundcpu", ROMREGION_ERASEFF ) // sound CPU
+ ROM_LOAD( "epr-14133.c7", 0x010000, 0x20000, CRC(cff96665) SHA1(b4dc7f1a03415ebebdb99a82ae89328c345e7678) )
+ ROM_LOAD( "mpr-14132.c6", 0x090000, 0x80000, CRC(1fae0220) SHA1(8414c74318ea915816c6b67801ac7c8c3fc905f9) )
+ ROM_LOAD( "mpr-14131.c5", 0x110000, 0x80000, CRC(be5a7d0b) SHA1(c2c598b0cf711273fdd568f3401375e9772c1d61) )
+ ROM_LOAD( "epr-14130.c4", 0x190000, 0x80000, CRC(948f34a1) SHA1(d4c6728d5eea06cee6ac15a34ec8cccb4cc4b982) )
+ROM_END
+
+
/**************************************************************************************************************************
D.D. Crew, Sega System 18
CPU: FD1094 (317-0187)
@@ -1693,6 +1956,36 @@ ROM_START( ddcrew1 )
ROM_LOAD( "epr-14130.c4", 0x190000, 0x80000, CRC(948f34a1) SHA1(d4c6728d5eea06cee6ac15a34ec8cccb4cc4b982) )
ROM_END
+ROM_START( ddcrew1d )
+ ROM_REGION( 0x100000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-14154.a4", 0x00000, 0x40000, CRC(95749c77) SHA1(fdb924e0bb104326ba2e72e76b91d1fcc500aac0) )
+ ROM_LOAD16_BYTE( "bootleg_epr-14155.a6", 0x00001, 0x40000, CRC(bef3c932) SHA1(f74f114aedafdace6ec51c4d3fa80a1b411b1543) )
+ ROM_LOAD16_BYTE( "mpr-14139.a5", 0x80000, 0x40000, CRC(06c31531) SHA1(d084cb72bf83578b34e959bb60a0695faf4161f8) )
+ ROM_LOAD16_BYTE( "mpr-14141.a7", 0x80001, 0x40000, CRC(080a494b) SHA1(64522dccbf6ed856ab80aa185454183df87d7ae9) )
+
+ ROM_REGION( 0xc0000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-14127.c1", 0x00000, 0x40000, CRC(2228cd88) SHA1(5774bb6a401c3da05c5f3c9d3996b20bb3713cb2) )
+ ROM_LOAD( "epr-14128.c2", 0x40000, 0x40000, CRC(edba8e10) SHA1(25a2833ead4ca363802ddc2eb97c40976502921a) )
+ ROM_LOAD( "epr-14129.c3", 0x80000, 0x40000, CRC(e8ecc305) SHA1(a26d0c5c7826cd315f8b2c27e5a503a2a7b535c4) )
+
+ ROM_REGION16_BE( 0x800000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "mpr-14134.c10", 0x000001, 0x80000, CRC(4fda6a4b) SHA1(a9e582e494ab967e8f3ccf4d5844bb8ef889928c) )
+ ROM_LOAD16_BYTE( "mpr-14142.a10", 0x000000, 0x80000, CRC(3cbf1f2a) SHA1(80b6b006936740087786acd538e28aca85fa6894) )
+ ROM_LOAD16_BYTE( "mpr-14135.c11", 0x200001, 0x80000, CRC(e9c74876) SHA1(aff9d071e77f01c6937188bf67be38fa898343e6) )
+ ROM_LOAD16_BYTE( "mpr-14143.a11", 0x200000, 0x80000, CRC(59022c31) SHA1(5e1409fe0f29284dc6a3ffacf69b761aae09f132) )
+ ROM_LOAD16_BYTE( "mpr-14136.c12", 0x400001, 0x80000, CRC(720d9858) SHA1(8ebcb8b3e9555ca48b28908d47dcbbd654398b6f) )
+ ROM_LOAD16_BYTE( "mpr-14144.a12", 0x400000, 0x80000, CRC(7775fdd4) SHA1(a03cac039b400b651a4bf2167a8f2338f488ce26) )
+ ROM_LOAD16_BYTE( "epr-14137.c13", 0x600001, 0x80000, CRC(846c4265) SHA1(58d0c213d085fb4dee18b7aefb05087d9d522950) )
+ ROM_LOAD16_BYTE( "epr-14145.a13", 0x600000, 0x80000, CRC(0e76c797) SHA1(9a44dc948e84e5acac36e80105c2349ee78e6cfa) )
+
+ ROM_REGION( 0x210000, "soundcpu", ROMREGION_ERASEFF ) // sound CPU
+ ROM_LOAD( "epr-14133.c7", 0x010000, 0x20000, CRC(cff96665) SHA1(b4dc7f1a03415ebebdb99a82ae89328c345e7678) )
+ ROM_LOAD( "mpr-14132.c6", 0x090000, 0x80000, CRC(1fae0220) SHA1(8414c74318ea915816c6b67801ac7c8c3fc905f9) )
+ ROM_LOAD( "mpr-14131.c5", 0x110000, 0x80000, CRC(be5a7d0b) SHA1(c2c598b0cf711273fdd568f3401375e9772c1d61) )
+ ROM_LOAD( "epr-14130.c4", 0x190000, 0x80000, CRC(948f34a1) SHA1(d4c6728d5eea06cee6ac15a34ec8cccb4cc4b982) )
+ROM_END
+
+
/**************************************************************************************************************************
D.D. Crew, Sega System 18
CPU: FD1094 (317-0185)
@@ -1730,6 +2023,36 @@ ROM_START( ddcrewj )
ROM_LOAD( "epr-14130.c4", 0x190000, 0x80000, CRC(948f34a1) SHA1(d4c6728d5eea06cee6ac15a34ec8cccb4cc4b982) )
ROM_END
+
+ROM_START( ddcrewjd )
+ ROM_REGION( 0x100000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-14150.a4", 0x00000, 0x40000, CRC(1f267de5) SHA1(24b5683c427ea8a56906d8246807e6be2ec8dbe6) )
+ ROM_LOAD16_BYTE( "bootleg_epr-14151.a6", 0x00001, 0x40000, CRC(35074062) SHA1(a9b657a550c652a62096d396f7eccf8a0888b482))
+ ROM_LOAD16_BYTE( "mpr-14139.a5", 0x80000, 0x40000, CRC(06c31531) SHA1(d084cb72bf83578b34e959bb60a0695faf4161f8) )
+ ROM_LOAD16_BYTE( "mpr-14141.a7", 0x80001, 0x40000, CRC(080a494b) SHA1(64522dccbf6ed856ab80aa185454183df87d7ae9) )
+
+ ROM_REGION( 0xc0000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-14127.c1", 0x00000, 0x40000, CRC(2228cd88) SHA1(5774bb6a401c3da05c5f3c9d3996b20bb3713cb2) )
+ ROM_LOAD( "epr-14128.c2", 0x40000, 0x40000, CRC(edba8e10) SHA1(25a2833ead4ca363802ddc2eb97c40976502921a) )
+ ROM_LOAD( "epr-14129.c3", 0x80000, 0x40000, CRC(e8ecc305) SHA1(a26d0c5c7826cd315f8b2c27e5a503a2a7b535c4) )
+
+ ROM_REGION16_BE( 0x800000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "mpr-14134.c10", 0x000001, 0x80000, CRC(4fda6a4b) SHA1(a9e582e494ab967e8f3ccf4d5844bb8ef889928c) )
+ ROM_LOAD16_BYTE( "mpr-14142.a10", 0x000000, 0x80000, CRC(3cbf1f2a) SHA1(80b6b006936740087786acd538e28aca85fa6894) )
+ ROM_LOAD16_BYTE( "mpr-14135.c11", 0x200001, 0x80000, CRC(e9c74876) SHA1(aff9d071e77f01c6937188bf67be38fa898343e6) )
+ ROM_LOAD16_BYTE( "mpr-14143.a11", 0x200000, 0x80000, CRC(59022c31) SHA1(5e1409fe0f29284dc6a3ffacf69b761aae09f132) )
+ ROM_LOAD16_BYTE( "mpr-14136.c12", 0x400001, 0x80000, CRC(720d9858) SHA1(8ebcb8b3e9555ca48b28908d47dcbbd654398b6f) )
+ ROM_LOAD16_BYTE( "mpr-14144.a12", 0x400000, 0x80000, CRC(7775fdd4) SHA1(a03cac039b400b651a4bf2167a8f2338f488ce26) )
+ ROM_LOAD16_BYTE( "epr-14137.c13", 0x600001, 0x80000, CRC(846c4265) SHA1(58d0c213d085fb4dee18b7aefb05087d9d522950) )
+ ROM_LOAD16_BYTE( "epr-14145.a13", 0x600000, 0x80000, CRC(0e76c797) SHA1(9a44dc948e84e5acac36e80105c2349ee78e6cfa) )
+
+ ROM_REGION( 0x210000, "soundcpu", ROMREGION_ERASEFF ) // sound CPU
+ ROM_LOAD( "epr-14133.c7", 0x010000, 0x20000, CRC(cff96665) SHA1(b4dc7f1a03415ebebdb99a82ae89328c345e7678) )
+ ROM_LOAD( "mpr-14132.c6", 0x090000, 0x80000, CRC(1fae0220) SHA1(8414c74318ea915816c6b67801ac7c8c3fc905f9) )
+ ROM_LOAD( "mpr-14131.c5", 0x110000, 0x80000, CRC(be5a7d0b) SHA1(c2c598b0cf711273fdd568f3401375e9772c1d61) )
+ ROM_LOAD( "epr-14130.c4", 0x190000, 0x80000, CRC(948f34a1) SHA1(d4c6728d5eea06cee6ac15a34ec8cccb4cc4b982) )
+ROM_END
+
/**************************************************************************************************************************
D.D. Crew, Sega System 18
CPU: FD1094 (317-0182 for 2P version, 317-0185 for 4P version, 317-0188 for 3P version)
@@ -1768,6 +2091,35 @@ ROM_START( ddcrewj2 )
ROM_LOAD( "epr-14130.c4", 0x190000, 0x80000, CRC(948f34a1) SHA1(d4c6728d5eea06cee6ac15a34ec8cccb4cc4b982) )
ROM_END
+ROM_START( ddcrewj2d )
+ ROM_REGION( 0x100000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-14138.a4", 0x00000, 0x40000, CRC(1a586bb2) SHA1(897f7b73a5099752980fe81a190cfac959481c1e) )
+ ROM_LOAD16_BYTE( "bootleg_epr-14140.a6", 0x00001, 0x40000, CRC(43e030ae) SHA1(4c145709a726b2180801f65a0d68022ff6f0c619) )
+ ROM_LOAD16_BYTE( "mpr-14139.a5", 0x80000, 0x40000, CRC(06c31531) SHA1(d084cb72bf83578b34e959bb60a0695faf4161f8) )
+ ROM_LOAD16_BYTE( "mpr-14141.a7", 0x80001, 0x40000, CRC(080a494b) SHA1(64522dccbf6ed856ab80aa185454183df87d7ae9) )
+
+
+ ROM_REGION( 0xc0000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-14127.c1", 0x00000, 0x40000, CRC(2228cd88) SHA1(5774bb6a401c3da05c5f3c9d3996b20bb3713cb2) )
+ ROM_LOAD( "epr-14128.c2", 0x40000, 0x40000, CRC(edba8e10) SHA1(25a2833ead4ca363802ddc2eb97c40976502921a) )
+ ROM_LOAD( "epr-14129.c3", 0x80000, 0x40000, CRC(e8ecc305) SHA1(a26d0c5c7826cd315f8b2c27e5a503a2a7b535c4) )
+
+ ROM_REGION16_BE( 0x800000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "mpr-14134.c10", 0x000001, 0x80000, CRC(4fda6a4b) SHA1(a9e582e494ab967e8f3ccf4d5844bb8ef889928c) )
+ ROM_LOAD16_BYTE( "mpr-14142.a10", 0x000000, 0x80000, CRC(3cbf1f2a) SHA1(80b6b006936740087786acd538e28aca85fa6894) )
+ ROM_LOAD16_BYTE( "mpr-14135.c11", 0x200001, 0x80000, CRC(e9c74876) SHA1(aff9d071e77f01c6937188bf67be38fa898343e6) )
+ ROM_LOAD16_BYTE( "mpr-14143.a11", 0x200000, 0x80000, CRC(59022c31) SHA1(5e1409fe0f29284dc6a3ffacf69b761aae09f132) )
+ ROM_LOAD16_BYTE( "mpr-14136.c12", 0x400001, 0x80000, CRC(720d9858) SHA1(8ebcb8b3e9555ca48b28908d47dcbbd654398b6f) )
+ ROM_LOAD16_BYTE( "mpr-14144.a12", 0x400000, 0x80000, CRC(7775fdd4) SHA1(a03cac039b400b651a4bf2167a8f2338f488ce26) )
+ ROM_LOAD16_BYTE( "epr-14137.c13", 0x600001, 0x80000, CRC(846c4265) SHA1(58d0c213d085fb4dee18b7aefb05087d9d522950) )
+ ROM_LOAD16_BYTE( "epr-14145.a13", 0x600000, 0x80000, CRC(0e76c797) SHA1(9a44dc948e84e5acac36e80105c2349ee78e6cfa) )
+
+ ROM_REGION( 0x210000, "soundcpu", ROMREGION_ERASEFF ) // sound CPU
+ ROM_LOAD( "epr-14133.c7", 0x010000, 0x20000, CRC(cff96665) SHA1(b4dc7f1a03415ebebdb99a82ae89328c345e7678) )
+ ROM_LOAD( "mpr-14132.c6", 0x090000, 0x80000, CRC(1fae0220) SHA1(8414c74318ea915816c6b67801ac7c8c3fc905f9) )
+ ROM_LOAD( "mpr-14131.c5", 0x110000, 0x80000, CRC(be5a7d0b) SHA1(c2c598b0cf711273fdd568f3401375e9772c1d61) )
+ ROM_LOAD( "epr-14130.c4", 0x190000, 0x80000, CRC(948f34a1) SHA1(d4c6728d5eea06cee6ac15a34ec8cccb4cc4b982) )
+ROM_END
/**************************************************************************************************************************
**************************************************************************************************************************
@@ -1811,6 +2163,36 @@ ROM_START( desertbr )
ROM_LOAD( "mpr-14784.c4", 0x190000, 0x80000, CRC(073878e4) SHA1(eff08080d06a16fccf4876e42b389fef599cceba) )
ROM_END
+ROM_START( desertbrd )
+ ROM_REGION( 0x200000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-14802.a4", 0x000000, 0x80000, CRC(af74af1c) SHA1(42048fc8042816886a5f7e05f195ee9ee9af9c04) )
+ ROM_LOAD16_BYTE( "bootleg_epr-14902.a6", 0x000001, 0x80000, CRC(c883404b) SHA1(e11bb91fc1280158d3b524d598ee87d72e6efe03) )
+ ROM_LOAD16_BYTE( "epr-14793.a5", 0x100000, 0x80000, CRC(dc9d7af3) SHA1(1fc1fedc1a4beed94cece268d0bb4bf62eeb407c) )
+ ROM_LOAD16_BYTE( "epr-14795.a7", 0x100001, 0x80000, CRC(7e5bf7d9) SHA1(32ac68ee423a34e0f1bedc8765e03f40e01c3af1) )
+
+ ROM_REGION( 0x300000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "mpr-14781.c1", 0x000000, 0x100000, CRC(c4f7d7aa) SHA1(3c69dd7a26efccd7111ef33dfa6e8b738095c0bf) )
+ ROM_LOAD( "mpr-14782.c2", 0x100000, 0x100000, CRC(ccc98d05) SHA1(b89594bbfff45e3b4fe433aeeaf8b4073c2cabb5) )
+ ROM_LOAD( "mpr-14783.c3", 0x200000, 0x100000, CRC(ef202bec) SHA1(b557092f8a3e1c9889d34588344c6dd2c6f06731) )
+
+ ROM_REGION16_BE( 0x800000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "mpr-14788.c10", 0x000001, 0x100000, CRC(b5b05536) SHA1(f8fde7ebca38c0a6f6a864c17771aa155e6fc30d) )
+ ROM_LOAD16_BYTE( "mpr-14796.a10", 0x000000, 0x100000, CRC(c033220a) SHA1(279d3ef62b41d2c6a18ce1217a549402a874638b) )
+ ROM_LOAD16_BYTE( "mpr-14789.c11", 0x200001, 0x100000, CRC(0f9bcb97) SHA1(c15ab3ece596c54e1c4d8e8a755473609334e8ba) )
+ ROM_LOAD16_BYTE( "mpr-14797.a11", 0x200000, 0x100000, CRC(4c301cc9) SHA1(8aea8af0b078b81d1054331b273568b1b903531b) )
+ ROM_LOAD16_BYTE( "mpr-14790.c12", 0x400001, 0x100000, CRC(6a07ac27) SHA1(0558b662c7965c5b74cbc552423194a8facbc092) )
+ ROM_LOAD16_BYTE( "mpr-14798.a12", 0x400000, 0x100000, CRC(50634625) SHA1(f4baaebdb1f850e92ca865e103fbca68cdb0de0f) )
+ ROM_LOAD16_BYTE( "mpr-14791.c13", 0x600001, 0x100000, CRC(a4ae352b) SHA1(dc814e1c2e167e191cd43fa554ff8ee974d47152) )
+ ROM_LOAD16_BYTE( "mpr-14799.a13", 0x600000, 0x100000, CRC(aeb7b025) SHA1(9ce2a9a46176a110c8d2e77deb3d8b9b69b902fa) )
+
+ ROM_REGION( 0x210000, "soundcpu", ROMREGION_ERASEFF ) // sound CPU
+ ROM_LOAD( "epr-14787.c7", 0x010000, 0x40000, CRC(cc6feec7) SHA1(31cc243178b98681a52500a485d74ed9e1274888) )
+ ROM_LOAD( "mpr-14786.c6", 0x090000, 0x80000, CRC(cc8349f2) SHA1(9f00d8ea372b70ba44a90dab497deadcc5be3dab) )
+ ROM_LOAD( "mpr-14785.c5", 0x110000, 0x80000, CRC(7babba13) SHA1(190cd9ea0f73272e0df34bbdfd8e0035f9e9b0b0) )
+ ROM_LOAD( "mpr-14784.c4", 0x190000, 0x80000, CRC(073878e4) SHA1(eff08080d06a16fccf4876e42b389fef599cceba) )
+ROM_END
+
+
/**************************************************************************************************************************
Desert Breaker, Sega System 18
@@ -1852,6 +2234,36 @@ ROM_START( desertbrj )
ROM_END
+ROM_START( desertbrjd )
+ ROM_REGION( 0x200000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "bootleg_epr-14792.a4", 0x000000, 0x80000, CRC(fd8ed26d) SHA1(db5a9a68a05d03db7a1fe60a281310a0d38a86ed) )
+ ROM_LOAD16_BYTE( "bootleg_epr-14794.a6", 0x000001, 0x80000, CRC(399f167d) SHA1(ee2d8cb1f6725b38f038e0021317e11b79ce81f0) )
+ ROM_LOAD16_BYTE( "epr-14793.a5", 0x100000, 0x80000, CRC(dc9d7af3) SHA1(1fc1fedc1a4beed94cece268d0bb4bf62eeb407c) )
+ ROM_LOAD16_BYTE( "epr-14795.a7", 0x100001, 0x80000, CRC(7e5bf7d9) SHA1(32ac68ee423a34e0f1bedc8765e03f40e01c3af1) )
+
+ ROM_REGION( 0x300000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "mpr-14781.c1", 0x000000, 0x100000, CRC(c4f7d7aa) SHA1(3c69dd7a26efccd7111ef33dfa6e8b738095c0bf) )
+ ROM_LOAD( "mpr-14782.c2", 0x100000, 0x100000, CRC(ccc98d05) SHA1(b89594bbfff45e3b4fe433aeeaf8b4073c2cabb5) )
+ ROM_LOAD( "mpr-14783.c3", 0x200000, 0x100000, CRC(ef202bec) SHA1(b557092f8a3e1c9889d34588344c6dd2c6f06731) )
+
+ ROM_REGION16_BE( 0x800000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "mpr-14788.c10", 0x000001, 0x100000, CRC(b5b05536) SHA1(f8fde7ebca38c0a6f6a864c17771aa155e6fc30d) )
+ ROM_LOAD16_BYTE( "mpr-14796.a10", 0x000000, 0x100000, CRC(c033220a) SHA1(279d3ef62b41d2c6a18ce1217a549402a874638b) )
+ ROM_LOAD16_BYTE( "mpr-14789.c11", 0x200001, 0x100000, CRC(0f9bcb97) SHA1(c15ab3ece596c54e1c4d8e8a755473609334e8ba) )
+ ROM_LOAD16_BYTE( "mpr-14797.a11", 0x200000, 0x100000, CRC(4c301cc9) SHA1(8aea8af0b078b81d1054331b273568b1b903531b) )
+ ROM_LOAD16_BYTE( "mpr-14790.c12", 0x400001, 0x100000, CRC(6a07ac27) SHA1(0558b662c7965c5b74cbc552423194a8facbc092) )
+ ROM_LOAD16_BYTE( "mpr-14798.a12", 0x400000, 0x100000, CRC(50634625) SHA1(f4baaebdb1f850e92ca865e103fbca68cdb0de0f) )
+ ROM_LOAD16_BYTE( "mpr-14791.c13", 0x600001, 0x100000, CRC(a4ae352b) SHA1(dc814e1c2e167e191cd43fa554ff8ee974d47152) )
+ ROM_LOAD16_BYTE( "mpr-14799.a13", 0x600000, 0x100000, CRC(aeb7b025) SHA1(9ce2a9a46176a110c8d2e77deb3d8b9b69b902fa) )
+
+ ROM_REGION( 0x210000, "soundcpu", ROMREGION_ERASEFF ) // sound CPU
+ ROM_LOAD( "epr-14787.c7", 0x010000, 0x40000, CRC(cc6feec7) SHA1(31cc243178b98681a52500a485d74ed9e1274888) )
+ ROM_LOAD( "mpr-14786.c6", 0x090000, 0x80000, CRC(cc8349f2) SHA1(9f00d8ea372b70ba44a90dab497deadcc5be3dab) )
+ ROM_LOAD( "mpr-14785.c5", 0x110000, 0x80000, CRC(7babba13) SHA1(190cd9ea0f73272e0df34bbdfd8e0035f9e9b0b0) )
+ ROM_LOAD( "mpr-14784.c4", 0x190000, 0x80000, CRC(073878e4) SHA1(eff08080d06a16fccf4876e42b389fef599cceba) )
+ROM_END
+
+
/**************************************************************************************************************************
**************************************************************************************************************************
**************************************************************************************************************************
@@ -1931,6 +2343,36 @@ ROM_START( lghost )
ROM_LOAD( "mpr-13418.c4", 0x190000, 0x40000, CRC(0732594d) SHA1(9fbeae29f1a31d136ddc9a49c786b2a08a523e0d) )
ROM_END
+ROM_START( lghostd )
+ ROM_REGION( 0x100000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-13429.a4", 0x00000, 0x40000, CRC(3d641671) SHA1(68941985c19732b073363fa1eb3848b78e31bc05) )
+ ROM_LOAD16_BYTE( "bootleg_epr-13430.a6", 0x00001, 0x40000, CRC(f0ba14be) SHA1(a771ec7ca9f7087ed990d6565cce5c15d08766a4) )
+ ROM_LOAD16_BYTE( "epr-13411.a5", 0x80000, 0x40000, CRC(5160167b) SHA1(3d176a18c7527b1e485f10b144bb4db1b945e709) )
+ ROM_LOAD16_BYTE( "epr-13413.a7", 0x80001, 0x40000, CRC(656b3bd8) SHA1(db81d4ae3138308dce1e3db7a859f1d63c4ff815) )
+
+ ROM_REGION( 0xc0000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-13414.c1", 0x00000, 0x40000, CRC(dada2419) SHA1(f6ffd02d75232a09ea83fd199e5e30b2773b0cf5) )
+ ROM_LOAD( "epr-13415.c2", 0x40000, 0x40000, CRC(bbb62c48) SHA1(7a4c5bd11b73a92deece72b55627f48ac167acd6) )
+ ROM_LOAD( "epr-13416.c3", 0x80000, 0x40000, CRC(1d11dbae) SHA1(331aa49c6b38d32ec33184dbd0851888463ddbc7) )
+
+ ROM_REGION16_BE( 0x800000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "epr-13603.a10", 0x000000, 0x80000, CRC(5350a94e) SHA1(47e99803cab4b508feb51069c940d6c824d6961d) )
+ ROM_LOAD16_BYTE( "epr-13604.c10", 0x000001, 0x80000, CRC(4009c8e5) SHA1(97f513d312f4c90f8bffdf797afa3749779989a5) )
+ ROM_LOAD16_BYTE( "mpr-13421.a11", 0x200000, 0x80000, CRC(2fc75890) SHA1(9f97f07dba3b978df8eb357894168ad74f151d30) )
+ ROM_LOAD16_BYTE( "mpr-13424.c11", 0x200001, 0x80000, CRC(fb98d920) SHA1(cebdebe88902e96c631df6053ac2589f794da155) )
+ ROM_LOAD16_BYTE( "mpr-13422.a12", 0x400000, 0x80000, CRC(48a0754d) SHA1(9fead9f8319593adb4bddaaa4d053b21ca726009) )
+ ROM_LOAD16_BYTE( "mpr-13425.c12", 0x400001, 0x80000, CRC(f8252589) SHA1(5a1ed24296d0609393e53df3ee585a366da4ee46) )
+ ROM_LOAD16_BYTE( "mpr-13423.a13", 0x600000, 0x80000, CRC(335bbc9d) SHA1(78793335b2f8a1bb05809259521db193c17c9b98) )
+ ROM_LOAD16_BYTE( "mpr-13426.c13", 0x600001, 0x80000, CRC(5cfb1e25) SHA1(1dd57475604f339e58bf946e17ae0dc5cf4a3dba) )
+
+ ROM_REGION( 0x210000, "soundcpu", ROMREGION_ERASEFF ) // sound CPU
+ ROM_LOAD( "epr-13417.c7", 0x010000, 0x20000, CRC(cd7beb49) SHA1(2435ce000f1eefdd06b27ea93e22fd82c0e999d2) )
+ // these seem best 3 from the different sized dumps
+ ROM_LOAD( "mpr-13420.c6", 0x090000, 0x40000, CRC(3de0dee4) SHA1(31833684df5a34d5e9ef04f2ab42355b8e9cbb45) )
+ ROM_LOAD( "mpr-13419.c5", 0x110000, 0x40000, CRC(e7021b0a) SHA1(82e390fac63965d4f80ae01758c19ae951c39475) )
+ ROM_LOAD( "mpr-13418.c4", 0x190000, 0x40000, CRC(0732594d) SHA1(9fbeae29f1a31d136ddc9a49c786b2a08a523e0d) )
+ROM_END
+
/**************************************************************************************************************************
Laser Ghost, Sega System 18
CPU: FD1094 (317-0165)
@@ -1972,6 +2414,37 @@ ROM_START( lghostu )
ROM_END
+ROM_START( lghostud )
+ ROM_REGION( 0x100000, "maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-13427.a4", 0x00000, 0x40000, CRC(8e9e092e) SHA1(3751a5d74d729f72d34b881bede34b6029ab7f95) )
+ ROM_LOAD16_BYTE( "bootleg_epr-13428.a6", 0x00001, 0x40000, CRC(346d4ba3) SHA1(d020bc1456843abc3a4132ea212c3e8140bfd4d2) )
+ ROM_LOAD16_BYTE( "epr-13411.a5", 0x80000, 0x40000, CRC(5160167b) SHA1(3d176a18c7527b1e485f10b144bb4db1b945e709) )
+ ROM_LOAD16_BYTE( "epr-13413.a7", 0x80001, 0x40000, CRC(656b3bd8) SHA1(db81d4ae3138308dce1e3db7a859f1d63c4ff815) )
+
+ ROM_REGION( 0xc0000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-13414.c1", 0x00000, 0x40000, CRC(dada2419) SHA1(f6ffd02d75232a09ea83fd199e5e30b2773b0cf5) )
+ ROM_LOAD( "epr-13415.c2", 0x40000, 0x40000, CRC(bbb62c48) SHA1(7a4c5bd11b73a92deece72b55627f48ac167acd6) )
+ ROM_LOAD( "epr-13416.c3", 0x80000, 0x40000, CRC(1d11dbae) SHA1(331aa49c6b38d32ec33184dbd0851888463ddbc7) )
+
+ ROM_REGION16_BE( 0x800000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "epr-13603.a10", 0x000000, 0x80000, CRC(5350a94e) SHA1(47e99803cab4b508feb51069c940d6c824d6961d) )
+ ROM_LOAD16_BYTE( "epr-13604.c10", 0x000001, 0x80000, CRC(4009c8e5) SHA1(97f513d312f4c90f8bffdf797afa3749779989a5) )
+ ROM_LOAD16_BYTE( "mpr-13421.a11", 0x200000, 0x80000, CRC(2fc75890) SHA1(9f97f07dba3b978df8eb357894168ad74f151d30) )
+ ROM_LOAD16_BYTE( "mpr-13424.c11", 0x200001, 0x80000, CRC(fb98d920) SHA1(cebdebe88902e96c631df6053ac2589f794da155) )
+ ROM_LOAD16_BYTE( "mpr-13422.a12", 0x400000, 0x80000, CRC(48a0754d) SHA1(9fead9f8319593adb4bddaaa4d053b21ca726009) )
+ ROM_LOAD16_BYTE( "mpr-13425.c12", 0x400001, 0x80000, CRC(f8252589) SHA1(5a1ed24296d0609393e53df3ee585a366da4ee46) )
+ ROM_LOAD16_BYTE( "mpr-13423.a13", 0x600000, 0x80000, CRC(335bbc9d) SHA1(78793335b2f8a1bb05809259521db193c17c9b98) )
+ ROM_LOAD16_BYTE( "mpr-13426.c13", 0x600001, 0x80000, CRC(5cfb1e25) SHA1(1dd57475604f339e58bf946e17ae0dc5cf4a3dba) )
+
+ ROM_REGION( 0x210000, "soundcpu", ROMREGION_ERASEFF ) // sound CPU
+ ROM_LOAD( "epr-13417.c7", 0x010000, 0x20000, CRC(cd7beb49) SHA1(2435ce000f1eefdd06b27ea93e22fd82c0e999d2) )
+ // these seem best 3 from the different sized dumps
+ ROM_LOAD( "mpr-13420.c6", 0x090000, 0x40000, CRC(3de0dee4) SHA1(31833684df5a34d5e9ef04f2ab42355b8e9cbb45) )
+ ROM_LOAD( "mpr-13419.c5", 0x110000, 0x40000, CRC(e7021b0a) SHA1(82e390fac63965d4f80ae01758c19ae951c39475) )
+ ROM_LOAD( "mpr-13418.c4", 0x190000, 0x40000, CRC(0732594d) SHA1(9fbeae29f1a31d136ddc9a49c786b2a08a523e0d) )
+ROM_END
+
+
/**************************************************************************************************************************
**************************************************************************************************************************
**************************************************************************************************************************
@@ -2012,6 +2485,37 @@ ROM_START( mwalk )
ROM_LOAD( "315-5437.ic4", 0x00000, 0x1000, CRC(4bf63bc1) SHA1(2766ab30b466b079febb30c488adad9ea56813f7) )
ROM_END
+ROM_START( mwalkd )
+ ROM_REGION( 0x80000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "bootleg_epr-13235.a6", 0x000000, 0x40000, CRC(9973f6c3) SHA1(e6267361e808499fcd1c49af6243596b7ebe434d) )
+ ROM_LOAD16_BYTE( "bootleg_epr-13234.a5", 0x000001, 0x40000, CRC(ef5098e9) SHA1(2bd17e07477d0f31bddc7e0f53e3447065913072) )
+
+ ROM_REGION( 0xc0000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "mpr-13216.b1", 0x00000, 0x40000, CRC(862d2c03) SHA1(3c5446d702a639b62a602c6d687f9875d8450218) )
+ ROM_LOAD( "mpr-13217.b2", 0x40000, 0x40000, CRC(7d1ac3ec) SHA1(8495357304f1df135bba77ef3b96e79a883b8ff0) )
+ ROM_LOAD( "mpr-13218.b3", 0x80000, 0x40000, CRC(56d3393c) SHA1(50a2d065060692c9ecaa56046a781cb21d93e554) )
+
+ ROM_REGION16_BE( 0x200000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "mpr-13224.b11", 0x000001, 0x40000, CRC(c59f107b) SHA1(10fa60fca6e34eda277c483bb1c0e81bb88c8a47) )
+ ROM_LOAD16_BYTE( "mpr-13231.a11", 0x000000, 0x40000, CRC(a5e96346) SHA1(a854f4dd5dc16975373255110fdb8ab3d121b1af) )
+ ROM_LOAD16_BYTE( "mpr-13223.b10", 0x080001, 0x40000, CRC(364f60ff) SHA1(9ac887ec0b2e32b504b7c6a5f3bb1ce3fe41a15a) )
+ ROM_LOAD16_BYTE( "mpr-13230.a10", 0x080000, 0x40000, CRC(9550091f) SHA1(bb6e898f7b540e130fd338c10f74609a7604cef4) )
+ ROM_LOAD16_BYTE( "mpr-13222.b9", 0x100001, 0x40000, CRC(523df3ed) SHA1(2e496125e75decd674c3a08404fbdb53791a965d) )
+ ROM_LOAD16_BYTE( "mpr-13229.a9", 0x100000, 0x40000, CRC(f40dc45d) SHA1(e9468cef428f52ecdf6837c6d9a9fea934e7676c) )
+ ROM_LOAD16_BYTE( "epr-13221.b8", 0x180001, 0x40000, CRC(9ae7546a) SHA1(5413b0131881b0b32bac8de51da9a299835014bb) )
+ ROM_LOAD16_BYTE( "epr-13228.a8", 0x180000, 0x40000, CRC(de3786be) SHA1(2279bb390aa3efab9aeee0a643e5cb6a4f5933b6) )
+
+ ROM_REGION( 0x210000, "soundcpu", ROMREGION_ERASEFF ) // sound CPU
+ ROM_LOAD( "epr-13225.a4", 0x010000, 0x20000, CRC(56c2e82b) SHA1(d5755a1bb6e889d274dc60e883d4d65f12fdc877) )
+ ROM_LOAD( "mpr-13219.b4", 0x090000, 0x40000, CRC(19e2061f) SHA1(2dcf1718a43dab4da53b4f67722664e70ddd2169) )
+ ROM_LOAD( "mpr-13220.b5", 0x110000, 0x40000, CRC(58d4d9ce) SHA1(725e73a656845b02702ef131b4c0aa2a73cdd02e) )
+ ROM_LOAD( "mpr-13249.b6", 0x190000, 0x40000, CRC(623edc5d) SHA1(c32d9f818d40f311877fbe6532d9e95b6045c3c4) )
+
+ ROM_REGION( 0x10000, "mcu", 0 ) // protection MCU
+ ROM_LOAD( "315-5437.ic4", 0x00000, 0x1000, CRC(4bf63bc1) SHA1(2766ab30b466b079febb30c488adad9ea56813f7) )
+ROM_END
+
+
/**************************************************************************************************************************
Moonwalker, Sega System 18
CPU: FD1094 (317-0158)
@@ -2050,6 +2554,36 @@ ROM_START( mwalku )
ROM_LOAD( "315-5437.ic4", 0x00000, 0x1000, CRC(4bf63bc1) SHA1(2766ab30b466b079febb30c488adad9ea56813f7) )
ROM_END
+ROM_START( mwalkud )
+ ROM_REGION( 0x80000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "bootleg_epr-13233.a6", 0x000000, 0x40000, CRC(b34fe725) SHA1(9d656b68ba758fba9739413cf404ee9b1471fd68) )
+ ROM_LOAD16_BYTE( "bootleg_epr-13232.a5", 0x000001, 0x40000, CRC(0d100fd4) SHA1(8c09c00dcb11fac2c7226e4fcc36b25458ccccff) )
+
+ ROM_REGION( 0xc0000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "mpr-13216.b1", 0x00000, 0x40000, CRC(862d2c03) SHA1(3c5446d702a639b62a602c6d687f9875d8450218) )
+ ROM_LOAD( "mpr-13217.b2", 0x40000, 0x40000, CRC(7d1ac3ec) SHA1(8495357304f1df135bba77ef3b96e79a883b8ff0) )
+ ROM_LOAD( "mpr-13218.b3", 0x80000, 0x40000, CRC(56d3393c) SHA1(50a2d065060692c9ecaa56046a781cb21d93e554) )
+
+ ROM_REGION16_BE( 0x200000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "mpr-13224.b11", 0x000001, 0x40000, CRC(c59f107b) SHA1(10fa60fca6e34eda277c483bb1c0e81bb88c8a47) )
+ ROM_LOAD16_BYTE( "mpr-13231.a11", 0x000000, 0x40000, CRC(a5e96346) SHA1(a854f4dd5dc16975373255110fdb8ab3d121b1af) )
+ ROM_LOAD16_BYTE( "mpr-13223.b10", 0x080001, 0x40000, CRC(364f60ff) SHA1(9ac887ec0b2e32b504b7c6a5f3bb1ce3fe41a15a) )
+ ROM_LOAD16_BYTE( "mpr-13230.a10", 0x080000, 0x40000, CRC(9550091f) SHA1(bb6e898f7b540e130fd338c10f74609a7604cef4) )
+ ROM_LOAD16_BYTE( "mpr-13222.b9", 0x100001, 0x40000, CRC(523df3ed) SHA1(2e496125e75decd674c3a08404fbdb53791a965d) )
+ ROM_LOAD16_BYTE( "mpr-13229.a9", 0x100000, 0x40000, CRC(f40dc45d) SHA1(e9468cef428f52ecdf6837c6d9a9fea934e7676c) )
+ ROM_LOAD16_BYTE( "epr-13221.b8", 0x180001, 0x40000, CRC(9ae7546a) SHA1(5413b0131881b0b32bac8de51da9a299835014bb) )
+ ROM_LOAD16_BYTE( "epr-13228.a8", 0x180000, 0x40000, CRC(de3786be) SHA1(2279bb390aa3efab9aeee0a643e5cb6a4f5933b6) )
+
+ ROM_REGION( 0x210000, "soundcpu", ROMREGION_ERASEFF ) // sound CPU
+ ROM_LOAD( "epr-13225.a4", 0x010000, 0x20000, CRC(56c2e82b) SHA1(d5755a1bb6e889d274dc60e883d4d65f12fdc877) )
+ ROM_LOAD( "mpr-13219.b4", 0x090000, 0x40000, CRC(19e2061f) SHA1(2dcf1718a43dab4da53b4f67722664e70ddd2169) )
+ ROM_LOAD( "mpr-13220.b5", 0x110000, 0x40000, CRC(58d4d9ce) SHA1(725e73a656845b02702ef131b4c0aa2a73cdd02e) )
+ ROM_LOAD( "mpr-13249.b6", 0x190000, 0x40000, CRC(623edc5d) SHA1(c32d9f818d40f311877fbe6532d9e95b6045c3c4) )
+
+ ROM_REGION( 0x10000, "mcu", 0 ) // protection MCU
+ ROM_LOAD( "315-5437.ic4", 0x00000, 0x1000, CRC(4bf63bc1) SHA1(2766ab30b466b079febb30c488adad9ea56813f7) )
+ROM_END
+
/**************************************************************************************************************************
Moonwalker, Sega System 18
CPU: FD1094 (317-0157, version uses i8751(315-5437) known to be exist)
@@ -2089,6 +2623,36 @@ ROM_START( mwalkj )
ROM_LOAD( "315-5437.ic4", 0x00000, 0x1000, BAD_DUMP CRC(4bf63bc1) SHA1(2766ab30b466b079febb30c488adad9ea56813f7) )
ROM_END
+ROM_START( mwalkjd )
+ ROM_REGION( 0x80000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "bootleg_epr-13227.a6", 0x000000, 0x40000, CRC(d8e00521) SHA1(a53cdf7e359b25527f4a39ae1a5d0a461ac73242) )
+ ROM_LOAD16_BYTE( "bootleg_epr-13226.a5", 0x000001, 0x40000, CRC(cb0ba822) SHA1(c2db762525e7cc65a7272e7a732ba9e3cee29c5d) )
+
+ ROM_REGION( 0xc0000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "mpr-13216.b1", 0x00000, 0x40000, CRC(862d2c03) SHA1(3c5446d702a639b62a602c6d687f9875d8450218) )
+ ROM_LOAD( "mpr-13217.b2", 0x40000, 0x40000, CRC(7d1ac3ec) SHA1(8495357304f1df135bba77ef3b96e79a883b8ff0) )
+ ROM_LOAD( "mpr-13218.b3", 0x80000, 0x40000, CRC(56d3393c) SHA1(50a2d065060692c9ecaa56046a781cb21d93e554) )
+
+ ROM_REGION16_BE( 0x200000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "mpr-13224.b11", 0x000001, 0x40000, CRC(c59f107b) SHA1(10fa60fca6e34eda277c483bb1c0e81bb88c8a47) )
+ ROM_LOAD16_BYTE( "mpr-13231.a11", 0x000000, 0x40000, CRC(a5e96346) SHA1(a854f4dd5dc16975373255110fdb8ab3d121b1af) )
+ ROM_LOAD16_BYTE( "mpr-13223.b10", 0x080001, 0x40000, CRC(364f60ff) SHA1(9ac887ec0b2e32b504b7c6a5f3bb1ce3fe41a15a) )
+ ROM_LOAD16_BYTE( "mpr-13230.a10", 0x080000, 0x40000, CRC(9550091f) SHA1(bb6e898f7b540e130fd338c10f74609a7604cef4) )
+ ROM_LOAD16_BYTE( "mpr-13222.b9", 0x100001, 0x40000, CRC(523df3ed) SHA1(2e496125e75decd674c3a08404fbdb53791a965d) )
+ ROM_LOAD16_BYTE( "mpr-13229.a9", 0x100000, 0x40000, CRC(f40dc45d) SHA1(e9468cef428f52ecdf6837c6d9a9fea934e7676c) )
+ ROM_LOAD16_BYTE( "epr-13221.b8", 0x180001, 0x40000, CRC(9ae7546a) SHA1(5413b0131881b0b32bac8de51da9a299835014bb) )
+ ROM_LOAD16_BYTE( "epr-13228.a8", 0x180000, 0x40000, CRC(de3786be) SHA1(2279bb390aa3efab9aeee0a643e5cb6a4f5933b6) )
+
+ ROM_REGION( 0x210000, "soundcpu", ROMREGION_ERASEFF ) // sound CPU
+ ROM_LOAD( "epr-13225.a4", 0x010000, 0x20000, CRC(56c2e82b) SHA1(d5755a1bb6e889d274dc60e883d4d65f12fdc877) )
+ ROM_LOAD( "mpr-13219.b4", 0x090000, 0x40000, CRC(19e2061f) SHA1(2dcf1718a43dab4da53b4f67722664e70ddd2169) )
+ ROM_LOAD( "mpr-13220.b5", 0x110000, 0x40000, CRC(58d4d9ce) SHA1(725e73a656845b02702ef131b4c0aa2a73cdd02e) )
+ ROM_LOAD( "mpr-13249.b6", 0x190000, 0x40000, CRC(623edc5d) SHA1(c32d9f818d40f311877fbe6532d9e95b6045c3c4) )
+
+ ROM_REGION( 0x10000, "mcu", 0 ) // protection MCU
+ // not verified if mcu is the same as the other sets..
+ ROM_LOAD( "315-5437.ic4", 0x00000, 0x1000, BAD_DUMP CRC(4bf63bc1) SHA1(2766ab30b466b079febb30c488adad9ea56813f7) )
+ROM_END
/**************************************************************************************************************************
**************************************************************************************************************************
@@ -2251,6 +2815,32 @@ ROM_START( wwallyj )
ROM_LOAD( "mpr-14722.c4", 0x190000, 0x80000, CRC(1bd081f8) SHA1(e5b0b5d8334486f813d7c430bb7fce3f69605a21) )
ROM_END
+ROM_START( wwallyjd )
+ ROM_REGION( 0x80000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "bootleg_epr-14730b.a4", 0x000000, 0x40000, CRC(1d46f791) SHA1(5bfffd108254db69e582a4e4c1012b9c9e223830) )
+ ROM_LOAD16_BYTE( "bootleg_epr-14731b.a6", 0x000001, 0x40000, CRC(a0f6325e) SHA1(a952d08c3d2324425db9d959e4e43f0c7024165b) )
+
+ ROM_REGION( 0x0c0000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "mpr-14719.c1", 0x000000, 0x40000, CRC(8b58c743) SHA1(ee50baa184d68558d62d1817b2b9c138226ed25a) )
+ ROM_LOAD( "mpr-14720.c2", 0x040000, 0x40000, CRC(f96d19f4) SHA1(e350b551db8d01062397cd9a0c952a7b5dbf3fe6) )
+ ROM_LOAD( "mpr-14721.c3", 0x080000, 0x40000, CRC(c4ced91d) SHA1(4c8a070959ca10e2dddf407ddbba212415d78727) )
+
+ ROM_REGION16_BE( 0x500000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "mpr-14726.c10", 0x000001, 0x100000, CRC(7213d1d3) SHA1(b70346a1dd3aa112bc696a7f4dd9ca908c3e5afa) )
+ ROM_LOAD16_BYTE( "mpr-14732.a10", 0x000000, 0x100000, CRC(04ced549) SHA1(59fd6510f0e14613d830ac6527f12ccc0b9351a5) )
+ ROM_LOAD16_BYTE( "mpr-14727.c11", 0x200001, 0x100000, CRC(3b74e0f0) SHA1(40432dbbbf75dae1e5e32b7cc2c4884f5e9e3bf5) )
+ ROM_LOAD16_BYTE( "mpr-14733.a11", 0x200000, 0x100000, CRC(6da0444f) SHA1(80c32895af19bda3277376fdbd1c163f0ed25665) )
+ ROM_LOAD16_BYTE( "mpr-14728.c12", 0x400001, 0x080000, CRC(5b921587) SHA1(2779dc658bb7a51f2399af5a6463ccb2dd388e88) )
+ ROM_LOAD16_BYTE( "mpr-14734.a12", 0x400000, 0x080000, CRC(6f3f5ed9) SHA1(01972c8bd5bfde58715bc0adc7dea73bf6350a26) )
+
+ ROM_REGION( 0x210000, "soundcpu", ROMREGION_ERASEFF ) // sound CPU
+ ROM_LOAD( "epr-14725.c7", 0x010000, 0x20000, CRC(2b29684f) SHA1(b83962a4f475f9b3e79d4f7ff577b170c4043156) )
+ ROM_LOAD( "mpr-14724.c6", 0x090000, 0x80000, CRC(47cbea86) SHA1(c70d1fed2912c7c05223ce0bb0941706f957295f) )
+ ROM_LOAD( "mpr-14723.c5", 0x110000, 0x80000, CRC(bc5adc27) SHA1(09405002b940a3d3eb0f1258f37af51e0b7581b9) )
+ ROM_LOAD( "mpr-14722.c4", 0x190000, 0x80000, CRC(1bd081f8) SHA1(e5b0b5d8334486f813d7c430bb7fce3f69605a21) )
+ROM_END
+
+
/**************************************************************************************************************************
Wally wo Sagase! (Where's Wally?), Sega System 18
CPU: FD1094 317-0197A
@@ -2284,6 +2874,32 @@ ROM_START( wwallyja )
ROM_LOAD( "mpr-14722.c4", 0x190000, 0x80000, CRC(1bd081f8) SHA1(e5b0b5d8334486f813d7c430bb7fce3f69605a21) )
ROM_END
+ROM_START( wwallyjad )
+ ROM_REGION( 0x80000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "bootleg_epr-14730a.a4", 0x000000, 0x40000, CRC(0d9fb6df) SHA1(ea9c6ff545e31a8269c2e23620582e95817dac60))
+ ROM_LOAD16_BYTE( "bootleg_epr-14731a.a6", 0x000001, 0x40000, CRC(b88c140d) SHA1(407ded758caf76644d728e046d94b464fa03ca02) )
+
+ ROM_REGION( 0x0c0000, "gfx1", 0 ) // tiles
+ ROM_LOAD( "mpr-14719.c1", 0x000000, 0x40000, CRC(8b58c743) SHA1(ee50baa184d68558d62d1817b2b9c138226ed25a) )
+ ROM_LOAD( "mpr-14720.c2", 0x040000, 0x40000, CRC(f96d19f4) SHA1(e350b551db8d01062397cd9a0c952a7b5dbf3fe6) )
+ ROM_LOAD( "mpr-14721.c3", 0x080000, 0x40000, CRC(c4ced91d) SHA1(4c8a070959ca10e2dddf407ddbba212415d78727) )
+
+ ROM_REGION16_BE( 0x500000, "sprites", 0 ) // sprites
+ ROM_LOAD16_BYTE( "mpr-14726.c10", 0x000001, 0x100000, CRC(7213d1d3) SHA1(b70346a1dd3aa112bc696a7f4dd9ca908c3e5afa) )
+ ROM_LOAD16_BYTE( "mpr-14732.a10", 0x000000, 0x100000, CRC(04ced549) SHA1(59fd6510f0e14613d830ac6527f12ccc0b9351a5) )
+ ROM_LOAD16_BYTE( "mpr-14727.c11", 0x200001, 0x100000, CRC(3b74e0f0) SHA1(40432dbbbf75dae1e5e32b7cc2c4884f5e9e3bf5) )
+ ROM_LOAD16_BYTE( "mpr-14733.a11", 0x200000, 0x100000, CRC(6da0444f) SHA1(80c32895af19bda3277376fdbd1c163f0ed25665) )
+ ROM_LOAD16_BYTE( "mpr-14728.c12", 0x400001, 0x080000, CRC(5b921587) SHA1(2779dc658bb7a51f2399af5a6463ccb2dd388e88) )
+ ROM_LOAD16_BYTE( "mpr-14734.a12", 0x400000, 0x080000, CRC(6f3f5ed9) SHA1(01972c8bd5bfde58715bc0adc7dea73bf6350a26) )
+
+ ROM_REGION( 0x210000, "soundcpu", ROMREGION_ERASEFF ) // sound CPU
+ ROM_LOAD( "epr-14725.c7", 0x010000, 0x20000, CRC(2b29684f) SHA1(b83962a4f475f9b3e79d4f7ff577b170c4043156) )
+ ROM_LOAD( "mpr-14724.c6", 0x090000, 0x80000, CRC(47cbea86) SHA1(c70d1fed2912c7c05223ce0bb0941706f957295f) )
+ ROM_LOAD( "mpr-14723.c5", 0x110000, 0x80000, CRC(bc5adc27) SHA1(09405002b940a3d3eb0f1258f37af51e0b7581b9) )
+ ROM_LOAD( "mpr-14722.c4", 0x190000, 0x80000, CRC(1bd081f8) SHA1(e5b0b5d8334486f813d7c430bb7fce3f69605a21) )
+ROM_END
+
+
/*************************************
*
@@ -2346,30 +2962,71 @@ DRIVER_INIT_MEMBER(segas18_state,wwally)
*************************************/
// YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR, COMPANY, FULLNAME, FLAGS
-GAME( 1990, astorm, 0, system18_fd1094, astorm2p, segas18_state, generic_5874, ROT0, "Sega", "Alien Storm (World, 2 Players, FD1094 317-0154)", 0 )
-GAME( 1990, astorm3, astorm, system18_fd1094, astorm, segas18_state, generic_5874, ROT0, "Sega", "Alien Storm (World, 3 Players, FD1094 317-0148)", 0 )
-GAME( 1990, astormu, astorm, system18_fd1094, astorm, segas18_state, generic_5874, ROT0, "Sega", "Alien Storm (US, 3 Players, FD1094 317-0147)", 0 )
-GAME( 1990, astormj, astorm, system18_fd1094, astorm2p, segas18_state, generic_5874, ROT0, "Sega", "Alien Storm (Japan, 2 Players, FD1094 317-0146)", 0 )
-GAME( 1989, bloxeed, 0, system18_fd1094, bloxeed, segas18_state, generic_5874, ROT0, "Sega", "Bloxeed (Japan, FD1094 317-0139)", 0 )
-GAME( 1991, cltchitr, 0, system18_fd1094, cltchitr, segas18_state, generic_5987, ROT0, "Sega", "Clutch Hitter (US, FD1094 317-0176)", 0 )
-GAME( 1991, cltchitrj, cltchitr, system18_fd1094, cltchitr, segas18_state, generic_5987, ROT0, "Sega", "Clutch Hitter (Japan, FD1094 317-0175)", 0 )
-GAME( 1992, desertbr, 0, system18_fd1094, desertbr, segas18_state, generic_5987, ROT270, "Sega", "Desert Breaker (World, FD1094 317-0196)", 0 )
-GAME( 1992, desertbrj, desertbr, system18_fd1094, desertbr, segas18_state, generic_5987, ROT270, "Sega", "Desert Breaker (Japan, FD1094 317-0194)", 0 )
-GAME( 1991, ddcrew, 0, system18_fd1094, ddcrew3p, segas18_state, ddcrew, ROT0, "Sega", "D. D. Crew (World, 3 Players, FD1094 317-0190)", 0 )
-GAME( 1991, ddcrewu, ddcrew, system18_fd1094, ddcrew, segas18_state, ddcrew, ROT0, "Sega", "D. D. Crew (US, 4 Players, FD1094 317-0186)", 0 )
-GAME( 1991, ddcrew2, ddcrew, system18_fd1094, ddcrew2p, segas18_state, ddcrew, ROT0, "Sega", "D. D. Crew (World, 2 Players, FD1094 317-0184)", 0 )
-GAME( 1991, ddcrew1, ddcrew, system18_fd1094, ddcrew, segas18_state, ddcrew, ROT0, "Sega", "D. D. Crew (World, 4 Players, FD1094 317-0187)", 0 )
-GAME( 1991, ddcrewj, ddcrew, system18_fd1094, ddcrew, segas18_state, ddcrew, ROT0, "Sega", "D. D. Crew (Japan, 4 Players, FD1094 317-0185)", 0 )
-GAME( 1991, ddcrewj2, ddcrew, system18_fd1094, ddcrew2p, segas18_state, ddcrew, ROT0, "Sega", "D. D. Crew (Japan, 2 Players, FD1094 317-0182)", 0 )
+GAME( 1990, astorm, 0, system18_fd1094, astorm2p, segas18_state, generic_5874, ROT0, "Sega", "Alien Storm (World, 2 Players) (FD1094 317-0154)", 0 )
+GAME( 1990, astorm3, astorm, system18_fd1094, astorm, segas18_state, generic_5874, ROT0, "Sega", "Alien Storm (World, 3 Players) (FD1094 317-0148)", 0 )
+GAME( 1990, astormu, astorm, system18_fd1094, astorm, segas18_state, generic_5874, ROT0, "Sega", "Alien Storm (US, 3 Players) (FD1094 317-0147)", 0 )
+GAME( 1990, astormj, astorm, system18_fd1094, astorm2p, segas18_state, generic_5874, ROT0, "Sega", "Alien Storm (Japan, 2 Players) (FD1094 317-0146)", 0 )
+
+GAME( 1989, bloxeed, 0, system18_fd1094, bloxeed, segas18_state, generic_5874, ROT0, "Sega", "Bloxeed (Japan) (FD1094 317-0139)", 0 )
+
+GAME( 1991, cltchitr, 0, system18_fd1094, cltchitr, segas18_state, generic_5987, ROT0, "Sega", "Clutch Hitter (US) (FD1094 317-0176)", 0 )
+GAME( 1991, cltchitrj, cltchitr, system18_fd1094, cltchitr, segas18_state, generic_5987, ROT0, "Sega", "Clutch Hitter (Japan) (FD1094 317-0175)", 0 )
+
+GAME( 1992, desertbr, 0, system18_fd1094, desertbr, segas18_state, generic_5987, ROT270, "Sega", "Desert Breaker (World) (FD1094 317-0196)", 0 )
+GAME( 1992, desertbrj, desertbr, system18_fd1094, desertbr, segas18_state, generic_5987, ROT270, "Sega", "Desert Breaker (Japan) (FD1094 317-0194)", 0 )
+
+GAME( 1991, ddcrew, 0, system18_fd1094, ddcrew3p, segas18_state, ddcrew, ROT0, "Sega", "D. D. Crew (World, 3 Players) (FD1094 317-0190)", 0 )
+GAME( 1991, ddcrewu, ddcrew, system18_fd1094, ddcrew, segas18_state, ddcrew, ROT0, "Sega", "D. D. Crew (US, 4 Players) (FD1094 317-0186)", 0 )
+GAME( 1991, ddcrew2, ddcrew, system18_fd1094, ddcrew2p, segas18_state, ddcrew, ROT0, "Sega", "D. D. Crew (World, 2 Players) (FD1094 317-0184)", 0 )
+GAME( 1991, ddcrew1, ddcrew, system18_fd1094, ddcrew, segas18_state, ddcrew, ROT0, "Sega", "D. D. Crew (World, 4 Players) (FD1094 317-0187)", 0 )
+GAME( 1991, ddcrewj, ddcrew, system18_fd1094, ddcrew, segas18_state, ddcrew, ROT0, "Sega", "D. D. Crew (Japan, 4 Players) (FD1094 317-0185)", 0 )
+GAME( 1991, ddcrewj2, ddcrew, system18_fd1094, ddcrew2p, segas18_state, ddcrew, ROT0, "Sega", "D. D. Crew (Japan, 2 Players) (FD1094 317-0182)", 0 )
+
GAME( 1991, hamaway, 0, system18, hamaway, segas18_state, hamaway, ROT90, "Sega / Santos", "Hammer Away (Japan, prototype)", 0 )
-GAME( 1990, lghost, 0, lghost, lghost, segas18_state, lghost, ROT0, "Sega", "Laser Ghost (World, FD1094 317-0166)", 0 )
-GAME( 1990, lghostu, lghost, lghost, lghost, segas18_state, lghost, ROT0, "Sega", "Laser Ghost (US, FD1094 317-0165)", 0 )
-GAME( 1990, mwalk, 0, system18_fd1094_i8751,mwalk, segas18_state, generic_5874, ROT0, "Sega", "Michael Jackson's Moonwalker (World, FD1094/8751 317-0159)", 0 )
-GAME( 1990, mwalku, mwalk, system18_fd1094_i8751,mwalka, segas18_state, generic_5874, ROT0, "Sega", "Michael Jackson's Moonwalker (US, FD1094/8751 317-0158)", 0 )
-GAME( 1990, mwalkj, mwalk, system18_fd1094_i8751,mwalk, segas18_state, generic_5874, ROT0, "Sega", "Michael Jackson's Moonwalker (Japan, FD1094/8751 317-0157)", 0 )
-GAME( 1989, pontoon, 0, system18_fd1094, shdancer, segas18_state, generic_5874, ROT0, "Sega", "Pontoon (FD1094 317-0153)", GAME_NOT_WORKING ) // satellite/networked gambling game?
+
+GAME( 1990, lghost, 0, lghost_fd1094, lghost, segas18_state, lghost, ROT0, "Sega", "Laser Ghost (World) (FD1094 317-0166)", 0 )
+GAME( 1990, lghostu, lghost, lghost_fd1094, lghost, segas18_state, lghost, ROT0, "Sega", "Laser Ghost (US) (FD1094 317-0165)", 0 )
+
+GAME( 1990, mwalk, 0, system18_fd1094_i8751,mwalk, segas18_state, generic_5874, ROT0, "Sega", "Michael Jackson's Moonwalker (World) (FD1094/8751 317-0159)", 0 )
+GAME( 1990, mwalku, mwalk, system18_fd1094_i8751,mwalka, segas18_state, generic_5874, ROT0, "Sega", "Michael Jackson's Moonwalker (US) (FD1094/8751 317-0158)", 0 )
+GAME( 1990, mwalkj, mwalk, system18_fd1094_i8751,mwalk, segas18_state, generic_5874, ROT0, "Sega", "Michael Jackson's Moonwalker (Japan) (FD1094/8751 317-0157)", 0 )
+
+GAME( 1989, pontoon, 0, system18_fd1094, shdancer, segas18_state, generic_5874, ROT0, "Sega", "Pontoon (FD1094 317-0153)", MACHINE_NOT_WORKING ) // satellite/networked gambling game?
+
GAME( 1989, shdancer, 0, system18, shdancer, segas18_state, generic_shad, ROT0, "Sega", "Shadow Dancer (World)", 0 )
GAME( 1989, shdancerj, shdancer, system18, shdancer, segas18_state, generic_shad, ROT0, "Sega", "Shadow Dancer (Japan)", 0 )
GAME( 1989, shdancer1, shdancer, system18, shdancer, segas18_state, generic_shad, ROT0, "Sega", "Shadow Dancer (US)", 0 )
-GAME( 1992, wwallyj, 0, system18_fd1094, wwally, segas18_state, wwally, ROT0, "Sega", "Wally wo Sagase! (rev B, Japan, FD1094 317-0197B)", 0 ) // the roms do contain an english logo so maybe there is a world / us set too
-GAME( 1992, wwallyja, wwallyj, system18_fd1094, wwally, segas18_state, wwally, ROT0, "Sega", "Wally wo Sagase! (rev A, Japan, FD1094 317-0197A)", 0 )
+
+GAME( 1992, wwallyj, 0, system18_fd1094, wwally, segas18_state, wwally, ROT0, "Sega", "Wally wo Sagase! (rev B, Japan) (FD1094 317-0197B)", 0 ) // the roms do contain an english logo so maybe there is a world / us set too
+GAME( 1992, wwallyja, wwallyj, system18_fd1094, wwally, segas18_state, wwally, ROT0, "Sega", "Wally wo Sagase! (rev A, Japan) (FD1094 317-0197A)", 0 )
+
+// decrypted bootleg sets
+
+GAME( 1990, astorm3d, astorm, system18, astorm, segas18_state, generic_5874, ROT0, "bootleg", "Alien Storm (World, 3 Players) (bootleg of FD1094 317-0148 set)", 0 )
+GAME( 1990, astormud, astorm, system18, astorm, segas18_state, generic_5874, ROT0, "bootleg", "Alien Storm (US, 3 Players) (bootleg of FD1094 317-0147 set)", 0 )
+GAME( 1990, astormjd, astorm, system18, astorm2p, segas18_state, generic_5874, ROT0, "bootleg", "Alien Storm (Japan, 2 Players) (bootleg of FD1094 317-0146 set)", 0 )
+
+GAME( 1989, bloxeedd, bloxeed, system18, bloxeed, segas18_state, generic_5874, ROT0, "bootleg", "Bloxeed (Japan) (bootleg of FD1094 317-0139 set)", 0 )
+
+GAME( 1991, cltchitrd, cltchitr, system18, cltchitr, segas18_state, generic_5987, ROT0, "bootleg", "Clutch Hitter (US) (bootleg of FD1094 317-0176 set)", 0 )
+GAME( 1991, cltchitrjd, cltchitr, system18, cltchitr, segas18_state, generic_5987, ROT0, "bootleg", "Clutch Hitter (Japan) (bootleg of FD1094 317-0175 set)", 0 )
+
+GAME( 1992, desertbrd, desertbr, system18, desertbr, segas18_state, generic_5987, ROT270, "bootleg", "Desert Breaker (World) (bootleg of FD1094 317-0196 set)", 0 )
+GAME( 1992, desertbrjd, desertbr, system18, desertbr, segas18_state, generic_5987, ROT270, "bootleg", "Desert Breaker (Japan) (bootleg of FD1094 317-0194 set)", 0 )
+
+GAME( 1991, ddcrewd, ddcrew, system18, ddcrew3p, segas18_state, ddcrew, ROT0, "bootleg", "D. D. Crew (World, 3 Players) (bootleg of FD1094 317-0190 set)", 0 )
+GAME( 1991, ddcrewud, ddcrew, system18, ddcrew, segas18_state, ddcrew, ROT0, "bootleg", "D. D. Crew (US, 4 Players) (bootleg of FD1094 317-0186 set)", 0 )
+GAME( 1991, ddcrew2d, ddcrew, system18, ddcrew2p, segas18_state, ddcrew, ROT0, "bootleg", "D. D. Crew (World, 2 Players) (bootleg of FD1094 317-0184 set)", 0 )
+GAME( 1991, ddcrew1d, ddcrew, system18, ddcrew, segas18_state, ddcrew, ROT0, "bootleg", "D. D. Crew (World, 4 Players) (bootleg of FD1094 317-0187 set)", 0 )
+GAME( 1991, ddcrewjd, ddcrew, system18, ddcrew, segas18_state, ddcrew, ROT0, "bootleg", "D. D. Crew (Japan, 4 Players) (bootleg of FD1094 317-0185 set)", 0 )
+GAME( 1991, ddcrewj2d, ddcrew, system18, ddcrew2p, segas18_state, ddcrew, ROT0, "bootleg", "D. D. Crew (Japan, 2 Players) (bootleg of FD1094 317-0182 set)", 0 )
+
+GAME( 1990, lghostd, lghost, lghost, lghost, segas18_state, lghost, ROT0, "bootleg", "Laser Ghost (World) (bootleg of FD1094 317-0166 set)", 0 )
+GAME( 1990, lghostud, lghost, lghost, lghost, segas18_state, lghost, ROT0, "bootleg", "Laser Ghost (US) (bootleg of FD1094 317-0165 set)", 0 )
+
+GAME( 1990, mwalkd, mwalk, system18_i8751,mwalk, segas18_state, generic_5874, ROT0, "bootleg", "Michael Jackson's Moonwalker (World) (bootleg of FD1094/8751 317-0159)", 0 )
+GAME( 1990, mwalkud, mwalk, system18_i8751,mwalka, segas18_state, generic_5874, ROT0, "bootleg", "Michael Jackson's Moonwalker (US) (bootleg of FD1094/8751 317-0158)", 0 )
+GAME( 1990, mwalkjd, mwalk, system18_i8751,mwalk, segas18_state, generic_5874, ROT0, "bootleg", "Michael Jackson's Moonwalker (Japan) (bootleg of FD1094/8751 317-0157 set)", 0 )
+
+GAME( 1992, wwallyjd, wwallyj, system18, wwally, segas18_state, wwally, ROT0, "bootleg", "Wally wo Sagase! (rev B, Japan) (bootleg of FD1094 317-0197B set)", 0 )
+GAME( 1992, wwallyjad, wwallyj, system18, wwally, segas18_state, wwally, ROT0, "bootleg", "Wally wo Sagase! (rev A, Japan) (bootleg of FD1094 317-0197A set)", 0 )
diff --git a/src/mame/drivers/segas24.c b/src/mame/drivers/segas24.c
index c7f49105306..7a3a5f76a51 100644
--- a/src/mame/drivers/segas24.c
+++ b/src/mame/drivers/segas24.c
@@ -1245,7 +1245,9 @@ static ADDRESS_MAP_START( system24_cpu2_map, AS_PROGRAM, 16, segas24_state )
AM_RANGE(0xf80000, 0xfbffff) AM_MIRROR(0x040000) AM_RAM AM_SHARE("share1")
ADDRESS_MAP_END
-
+static ADDRESS_MAP_START( decrypted_opcodes_map, AS_DECRYPTED_OPCODES, 16, segas24_state )
+ AM_RANGE(0x00000, 0xfffff) AM_ROMBANK("fd1094_decrypted_opcodes")
+ADDRESS_MAP_END
/*************************************
*
@@ -1963,6 +1965,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( system24_floppy_fd1094, system24_floppy )
MCFG_CPU_REPLACE("subcpu", FD1094, MASTER_CLOCK/2)
MCFG_CPU_PROGRAM_MAP(system24_cpu2_map)
+ MCFG_CPU_DECRYPTED_OPCODES_MAP(decrypted_opcodes_map)
MACHINE_CONFIG_END
@@ -2479,19 +2482,19 @@ DRIVER_INIT_MEMBER(segas24_state,roughrac)
/* 01 */GAME( 1988, hotrodja, hotrod, system24_floppy, hotrodj, segas24_state, hotrod, ROT0, "Sega", "Hot Rod (Japan, 4 Players, Floppy Based, Rev B)", 0 )
/* 02 */GAME( 1988, sspirits, 0, system24_floppy, sspirits, segas24_state, sspirits, ROT270, "Sega", "Scramble Spirits (World, Floppy Based)", 0 )
/* 02 */GAME( 1988, sspiritj, sspirits, system24_floppy, sspirits, segas24_state, sspiritj, ROT270, "Sega", "Scramble Spirits (Japan, Floppy DS3-5000-02-REV-A Based)", 0 )
-/* 02 */GAME( 1988, sspirtfc, sspirits, system24_floppy_fd1094, sspirits, segas24_state, sspirits, ROT270, "Sega", "Scramble Spirits (World, Floppy Based, FD1094 317-0058-02c)", GAME_NOT_WORKING ) /* MISSING disk image */
+/* 02 */GAME( 1988, sspirtfc, sspirits, system24_floppy_fd1094, sspirits, segas24_state, sspirits, ROT270, "Sega", "Scramble Spirits (World, Floppy Based, FD1094 317-0058-02c)", MACHINE_NOT_WORKING ) /* MISSING disk image */
/* 03 */GAME( 1988, gground, 0, system24_floppy_fd1094, gground, segas24_state, gground, ROT270, "Sega", "Gain Ground (World, 3 Players, Floppy Based, FD1094 317-0058-03d Rev A)", 0 )
/* 03 */GAME( 1988, ggroundj, gground, system24_floppy_fd1094, gground, segas24_state, gground, ROT270, "Sega", "Gain Ground (Japan, 2 Players, Floppy Based, FD1094 317-0058-03b)", 0 )
-/* 04 */GAME( 1989, crkdown, 0, system24_floppy_fd1094, crkdown, segas24_state, crkdown, ROT0, "Sega", "Crack Down (World, Floppy Based, FD1094 317-0058-04c)", GAME_IMPERFECT_GRAPHICS ) // clipping probs / solid layer probs? (radar display)
-/* 04 */GAME( 1989, crkdownu, crkdown, system24_floppy_fd1094, crkdown, segas24_state, crkdown, ROT0, "Sega", "Crack Down (US, Floppy Based, FD1094 317-0058-04d)", GAME_IMPERFECT_GRAPHICS ) // clipping probs / solid layer probs? (radar display)
-/* 04 */GAME( 1989, crkdownj, crkdown, system24_floppy_fd1094, crkdown, segas24_state, crkdown, ROT0, "Sega", "Crack Down (Japan, Floppy Based, FD1094 317-0058-04b Rev A)", GAME_IMPERFECT_GRAPHICS ) // clipping probs / solid layer probs? (radar display)
+/* 04 */GAME( 1989, crkdown, 0, system24_floppy_fd1094, crkdown, segas24_state, crkdown, ROT0, "Sega", "Crack Down (World, Floppy Based, FD1094 317-0058-04c)", MACHINE_IMPERFECT_GRAPHICS ) // clipping probs / solid layer probs? (radar display)
+/* 04 */GAME( 1989, crkdownu, crkdown, system24_floppy_fd1094, crkdown, segas24_state, crkdown, ROT0, "Sega", "Crack Down (US, Floppy Based, FD1094 317-0058-04d)", MACHINE_IMPERFECT_GRAPHICS ) // clipping probs / solid layer probs? (radar display)
+/* 04 */GAME( 1989, crkdownj, crkdown, system24_floppy_fd1094, crkdown, segas24_state, crkdown, ROT0, "Sega", "Crack Down (Japan, Floppy Based, FD1094 317-0058-04b Rev A)", MACHINE_IMPERFECT_GRAPHICS ) // clipping probs / solid layer probs? (radar display)
/* 05 */GAME( 1989, sgmast, 0, system24_floppy_fd1094, sgmast, segas24_state, sgmast, ROT0, "Sega", "Super Masters Golf (World?, Floppy Based, FD1094 317-0058-05d?)", 0 )
-/* 05 */GAME( 1989, sgmastc, sgmast, system24_floppy_fd1094, sgmast, segas24_state, sgmast, ROT0, "Sega", "Jumbo Ozaki Super Masters Golf (World, Floppy Based, FD1094 317-0058-05c)", GAME_IMPERFECT_GRAPHICS ) // some gfx offset / colour probs?
-/* 05 */GAME( 1989, sgmastj, sgmast, system24_floppy_fd1094, sgmastj, segas24_state, sgmast, ROT0, "Sega", "Jumbo Ozaki Super Masters Golf (Japan, Floppy Based, FD1094 317-0058-05b)", GAME_IMPERFECT_GRAPHICS ) // some gfx offset / colour probs?
+/* 05 */GAME( 1989, sgmastc, sgmast, system24_floppy_fd1094, sgmast, segas24_state, sgmast, ROT0, "Sega", "Jumbo Ozaki Super Masters Golf (World, Floppy Based, FD1094 317-0058-05c)", MACHINE_IMPERFECT_GRAPHICS ) // some gfx offset / colour probs?
+/* 05 */GAME( 1989, sgmastj, sgmast, system24_floppy_fd1094, sgmastj, segas24_state, sgmast, ROT0, "Sega", "Jumbo Ozaki Super Masters Golf (Japan, Floppy Based, FD1094 317-0058-05b)", MACHINE_IMPERFECT_GRAPHICS ) // some gfx offset / colour probs?
/* 06 */GAME( 1990, roughrac, 0, system24_floppy_fd1094, roughrac, segas24_state, roughrac, ROT0, "Sega", "Rough Racer (Japan, Floppy Based, FD1094 317-0058-06b)", 0 )
/* 07 */GAME( 1990, bnzabros, 0, system24_floppy, bnzabros, segas24_state, bnzabros, ROT0, "Sega", "Bonanza Bros (US, Floppy DS3-5000-07d? Based)", 0 )
/* 07 */GAME( 1990, bnzabrosj, bnzabros, system24_floppy, bnzabros, segas24_state, bnzabros, ROT0, "Sega", "Bonanza Bros (Japan, Floppy DS3-5000-07b Based)", 0 )
-/* 08 */GAME( 1991, qsww, 0, system24_floppy_fd1094, qsww, segas24_state, qsww, ROT0, "Sega", "Quiz Syukudai wo Wasuremashita (Japan, Floppy Based, FD1094 317-0058-08b)", GAME_IMPERFECT_GRAPHICS ) // wrong bg colour on title
+/* 08 */GAME( 1991, qsww, 0, system24_floppy_fd1094, qsww, segas24_state, qsww, ROT0, "Sega", "Quiz Syukudai wo Wasuremashita (Japan, Floppy Based, FD1094 317-0058-08b)", MACHINE_IMPERFECT_GRAPHICS ) // wrong bg colour on title
/* 09 */GAME( 1991, dcclubfd, dcclub, system24_floppy_fd1094, dcclub, segas24_state, dcclubfd, ROT0, "Sega", "Dynamic Country Club (US, Floppy Based, FD1094 317-0058-09d)", 0 )
// YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR,COMPANY,FULLNAME,FLAGS
diff --git a/src/mame/drivers/segas32.c b/src/mame/drivers/segas32.c
index 7c509fd6302..88e7fce9b3c 100644
--- a/src/mame/drivers/segas32.c
+++ b/src/mame/drivers/segas32.c
@@ -296,6 +296,35 @@ IC Type 27C2048 27C2048 27C4200 27C4200 27C1000 27C160 27C160
Stadium Cross EPR15093 EPR15094 EPR15018 EPR15019 EPR15192 EPR15020 EPR15021 EPR15022 EPR15023 EPR15024 EPR15025 EPR15026 EPR15027 EPR15028 EPR15029 EPR15031 EPR15032 -
+System 32 Multi COMM board
+--------------------------
+
+SEGA 1992 837-8792
+sticker: 837-9016-03
+|--------------------------------------------------------|
+| CN3 CN4 |
+| |
+| 32MHz JP1(1-2) |
+| Z80 MB89374 MB89237A MB8421 |
+| |
+| JP2(1-2) |
+| EPR-15033.IC17 |
+| JP3(2-3) |
+| JP4(1-2) |
+| 8464 GAL16V8 GAL16V8 |
+| (315-5610) (315-5506) |
+| CN1 CN2 |
+| CN8 CN9 |
+|--------------------------------------------------------|
+EPR-15033 - AM27C100 EPROM found on Stadium Cross
+ MB89374 - Fujitsu MB89374 Data Link Controller. Clock input 8MHz [32/4]
+ MB89237A - Fujitsu MB89237A DMA Controller
+ 8464 - Fujitsu MB8464 8k x8 SRAM
+ CN8 - TX connector
+ CN9 - RX connector
+ CN1-4 - Joins to Main Board. Connections on top allow plugging in the ROM PCB
+
+
*********************************************************************************************
@@ -2486,7 +2515,7 @@ static MACHINE_CONFIG_FRAGMENT( system32 )
MCFG_RF5C68_ADD("rfsnd", RFC_CLOCK/4)
MCFG_SOUND_ROUTE(0, "lspeaker", 0.55)
MCFG_SOUND_ROUTE(1, "rspeaker", 0.55)
-
+
MCFG_S32COMM_ADD("s32comm")
MACHINE_CONFIG_END
@@ -2572,7 +2601,7 @@ static MACHINE_CONFIG_FRAGMENT( multi32 )
MCFG_SOUND_ADD("sega", MULTIPCM, MASTER_CLOCK/4)
MCFG_SOUND_ROUTE(1, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(0, "rspeaker", 1.0)
-
+
MCFG_S32COMM_ADD("s32comm")
MACHINE_CONFIG_END
@@ -5237,7 +5266,7 @@ void segas32_state::init_f1lap(void)
m_system32_prot_vblank = &segas32_state::f1lap_fd1149_vblank;
m_sw1_output = &segas32_state::f1lap_sw1_output;
-
+
m_s32comm->set_linktype(15612); // EPR-15612
}
@@ -5303,7 +5332,7 @@ void segas32_state::init_radr(void)
segas32_common_init(read16_delegate(FUNC(segas32_state::analog_custom_io_r),this), write16_delegate(FUNC(segas32_state::analog_custom_io_w),this));
m_sw1_output = &segas32_state::radm_sw1_output;
m_sw2_output = &segas32_state::radr_sw2_output;
-
+
m_s32comm->set_linktype(14084); // EPR-14084
}
@@ -5374,77 +5403,77 @@ void segas32_state::init_titlef(void)
*
*************************************/
-GAME( 1992, arescue, 0, sega_system32_dual_direct, arescue, segas32_new_state, arescue, ROT0, "Sega", "Air Rescue (US)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1992, arescuej, arescue, sega_system32_dual_direct, arescue, segas32_new_state, arescue, ROT0, "Sega", "Air Rescue (Japan)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1992, arescue, 0, sega_system32_dual_direct, arescue, segas32_new_state, arescue, ROT0, "Sega", "Air Rescue (US)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1992, arescuej, arescue, sega_system32_dual_direct, arescue, segas32_new_state, arescue, ROT0, "Sega", "Air Rescue (Japan)", MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1993, alien3, 0, sega_system32, alien3, segas32_new_state, alien3, ROT0, "Sega", "Alien3: The Gun (World)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1993, alien3u, alien3, sega_system32, alien3, segas32_new_state, alien3, ROT0, "Sega", "Alien3: The Gun (US)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1993, alien3, 0, sega_system32, alien3, segas32_new_state, alien3, ROT0, "Sega", "Alien3: The Gun (World)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1993, alien3u, alien3, sega_system32, alien3, segas32_new_state, alien3, ROT0, "Sega", "Alien3: The Gun (US)", MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1991, arabfgt, 0, sega_system32, arabfgt, segas32_new_state, arabfgt, ROT0, "Sega", "Arabian Fight (World)", GAME_IMPERFECT_GRAPHICS ) /* Released in 03.1992 */
-GAME( 1991, arabfgtu, arabfgt, sega_system32, arabfgtu, segas32_new_state, arabfgt, ROT0, "Sega", "Arabian Fight (US)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1991, arabfgtj, arabfgt, sega_system32, arabfgt, segas32_new_state, arabfgt, ROT0, "Sega", "Arabian Fight (Japan)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1991, arabfgt, 0, sega_system32, arabfgt, segas32_new_state, arabfgt, ROT0, "Sega", "Arabian Fight (World)", MACHINE_IMPERFECT_GRAPHICS ) /* Released in 03.1992 */
+GAME( 1991, arabfgtu, arabfgt, sega_system32, arabfgtu, segas32_new_state, arabfgt, ROT0, "Sega", "Arabian Fight (US)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1991, arabfgtj, arabfgt, sega_system32, arabfgt, segas32_new_state, arabfgt, ROT0, "Sega", "Arabian Fight (Japan)", MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1992, brival, 0, sega_system32, brival, segas32_new_state, brival, ROT0, "Sega", "Burning Rival (World)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1992, brivalj, brival, sega_system32, brival, segas32_new_state, brival, ROT0, "Sega", "Burning Rival (Japan)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1992, brival, 0, sega_system32, brival, segas32_new_state, brival, ROT0, "Sega", "Burning Rival (World)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1992, brivalj, brival, sega_system32, brival, segas32_new_state, brival, ROT0, "Sega", "Burning Rival (Japan)", MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1992, darkedge, 0, sega_system32, darkedge, segas32_new_state, darkedge, ROT0, "Sega", "Dark Edge (World)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1992, darkedgej, darkedge, sega_system32, darkedge, segas32_new_state, darkedge, ROT0, "Sega", "Dark Edge (Japan)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1992, darkedge, 0, sega_system32, darkedge, segas32_new_state, darkedge, ROT0, "Sega", "Dark Edge (World)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1992, darkedgej, darkedge, sega_system32, darkedge, segas32_new_state, darkedge, ROT0, "Sega", "Dark Edge (Japan)", MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1994, dbzvrvs, 0, sega_system32, dbzvrvs, segas32_new_state, dbzvrvs, ROT0, "Sega / Banpresto", "Dragon Ball Z V.R.V.S. (Japan)", GAME_IMPERFECT_GRAPHICS)
+GAME( 1994, dbzvrvs, 0, sega_system32, dbzvrvs, segas32_new_state, dbzvrvs, ROT0, "Sega / Banpresto", "Dragon Ball Z V.R.V.S. (Japan)", MACHINE_IMPERFECT_GRAPHICS)
-GAME( 1991, f1en, 0, sega_system32_dual_direct, f1en, segas32_new_state, f1en, ROT0, "Sega", "F1 Exhaust Note (World)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1991, f1enu, f1en, sega_system32_dual_direct, f1en, segas32_new_state, f1en, ROT0, "Sega", "F1 Exhaust Note (US)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1991, f1enj, f1en, sega_system32_dual_direct, f1en, segas32_new_state, f1en, ROT0, "Sega", "F1 Exhaust Note (Japan)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1991, f1en, 0, sega_system32_dual_direct, f1en, segas32_new_state, f1en, ROT0, "Sega", "F1 Exhaust Note (World)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1991, f1enu, f1en, sega_system32_dual_direct, f1en, segas32_new_state, f1en, ROT0, "Sega", "F1 Exhaust Note (US)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1991, f1enj, f1en, sega_system32_dual_direct, f1en, segas32_new_state, f1en, ROT0, "Sega", "F1 Exhaust Note (Japan)", MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1993, f1lap, 0, sega_system32, f1lap, segas32_new_state, f1lap, ROT0, "Sega", "F1 Super Lap (World)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1993, f1lapj, f1lap, sega_system32, f1lap, segas32_new_state, f1lap, ROT0, "Sega", "F1 Super Lap (Japan)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1993, f1lap, 0, sega_system32, f1lap, segas32_new_state, f1lap, ROT0, "Sega", "F1 Super Lap (World)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1993, f1lapj, f1lap, sega_system32, f1lap, segas32_new_state, f1lap, ROT0, "Sega", "F1 Super Lap (Japan)", MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1992, ga2, 0, sega_system32_v25, ga2, segas32_new_state, ga2, ROT0, "Sega", "Golden Axe: The Revenge of Death Adder (World)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1992, ga2u, ga2, sega_system32_v25, ga2u, segas32_new_state, ga2, ROT0, "Sega", "Golden Axe: The Revenge of Death Adder (US)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1992, ga2j, ga2, sega_system32_v25, ga2, segas32_new_state, ga2, ROT0, "Sega", "Golden Axe: The Revenge of Death Adder (Japan)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1992, ga2, 0, sega_system32_v25, ga2, segas32_new_state, ga2, ROT0, "Sega", "Golden Axe: The Revenge of Death Adder (World)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1992, ga2u, ga2, sega_system32_v25, ga2u, segas32_new_state, ga2, ROT0, "Sega", "Golden Axe: The Revenge of Death Adder (US)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1992, ga2j, ga2, sega_system32_v25, ga2, segas32_new_state, ga2, ROT0, "Sega", "Golden Axe: The Revenge of Death Adder (Japan)", MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1992, holo, 0, sega_system32, holo, segas32_new_state, holo, ORIENTATION_FLIP_Y, "Sega", "Holosseum (US)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1992, holo, 0, sega_system32, holo, segas32_new_state, holo, ORIENTATION_FLIP_Y, "Sega", "Holosseum (US)", MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1993, jpark, 0, sega_system32, jpark, segas32_new_state, jpark, ROT0, "Sega", "Jurassic Park (World)", GAME_IMPERFECT_GRAPHICS ) /* Released in 02.1994 */
-GAME( 1993, jparkj, jpark, sega_system32, jpark, segas32_new_state, jpark, ROT0, "Sega", "Jurassic Park (Japan, Rev A, Deluxe)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1993, jparkja, jpark, sega_system32, jpark, segas32_new_state, jpark, ROT0, "Sega", "Jurassic Park (Japan, Deluxe)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1993, jparkjc, jpark, sega_system32, jpark, segas32_new_state, jpark, ROT0, "Sega", "Jurassic Park (Japan, Rev A, Conversion)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1993, jpark, 0, sega_system32, jpark, segas32_new_state, jpark, ROT0, "Sega", "Jurassic Park (World)", MACHINE_IMPERFECT_GRAPHICS ) /* Released in 02.1994 */
+GAME( 1993, jparkj, jpark, sega_system32, jpark, segas32_new_state, jpark, ROT0, "Sega", "Jurassic Park (Japan, Rev A, Deluxe)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1993, jparkja, jpark, sega_system32, jpark, segas32_new_state, jpark, ROT0, "Sega", "Jurassic Park (Japan, Deluxe)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1993, jparkjc, jpark, sega_system32, jpark, segas32_new_state, jpark, ROT0, "Sega", "Jurassic Park (Japan, Rev A, Conversion)", MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1994, kokoroj2, 0, sega_system32, radr, segas32_new_state, radr, ROT0, "Sega", "Kokoroji 2", GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING) /* uses an Audio CD */
+GAME( 1994, kokoroj2, 0, sega_system32, radr, segas32_new_state, radr, ROT0, "Sega", "Kokoroji 2", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING) /* uses an Audio CD */
-GAME( 1990, radm, 0, sega_system32, radm, segas32_new_state, radm, ROT0, "Sega", "Rad Mobile (World)", GAME_IMPERFECT_GRAPHICS ) /* Released in 02.1991 */
-GAME( 1990, radmu, radm, sega_system32, radm, segas32_new_state, radm, ROT0, "Sega", "Rad Mobile (US)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1990, radm, 0, sega_system32, radm, segas32_new_state, radm, ROT0, "Sega", "Rad Mobile (World)", MACHINE_IMPERFECT_GRAPHICS ) /* Released in 02.1991 */
+GAME( 1990, radmu, radm, sega_system32, radm, segas32_new_state, radm, ROT0, "Sega", "Rad Mobile (US)", MACHINE_IMPERFECT_GRAPHICS )
-GAMEL(1991, radr, 0, sega_system32, radr, segas32_new_state, radr, ROT0, "Sega", "Rad Rally (World)", GAME_IMPERFECT_GRAPHICS, layout_radr )
-GAMEL(1991, radru, radr, sega_system32, radr, segas32_new_state, radr, ROT0, "Sega", "Rad Rally (US)", GAME_IMPERFECT_GRAPHICS, layout_radr )
-GAMEL(1991, radrj, radr, sega_system32, radr, segas32_new_state, radr, ROT0, "Sega", "Rad Rally (Japan)", GAME_IMPERFECT_GRAPHICS, layout_radr )
+GAMEL(1991, radr, 0, sega_system32, radr, segas32_new_state, radr, ROT0, "Sega", "Rad Rally (World)", MACHINE_IMPERFECT_GRAPHICS, layout_radr )
+GAMEL(1991, radru, radr, sega_system32, radr, segas32_new_state, radr, ROT0, "Sega", "Rad Rally (US)", MACHINE_IMPERFECT_GRAPHICS, layout_radr )
+GAMEL(1991, radrj, radr, sega_system32, radr, segas32_new_state, radr, ROT0, "Sega", "Rad Rally (Japan)", MACHINE_IMPERFECT_GRAPHICS, layout_radr )
-GAMEL(1995, slipstrm, 0, sega_system32, slipstrm, segas32_new_state, slipstrm, ROT0, "Capcom", "Slip Stream (Brazil 950515)", GAME_IMPERFECT_GRAPHICS, layout_radr )
-GAMEL(1995, slipstrmh, slipstrm, sega_system32, slipstrm, segas32_new_state, slipstrm, ROT0, "Capcom", "Slip Stream (Hispanic 950515)", GAME_IMPERFECT_GRAPHICS, layout_radr )
+GAMEL(1995, slipstrm, 0, sega_system32, slipstrm, segas32_new_state, slipstrm, ROT0, "Capcom", "Slip Stream (Brazil 950515)", MACHINE_IMPERFECT_GRAPHICS, layout_radr )
+GAMEL(1995, slipstrmh, slipstrm, sega_system32, slipstrm, segas32_new_state, slipstrm, ROT0, "Capcom", "Slip Stream (Hispanic 950515)", MACHINE_IMPERFECT_GRAPHICS, layout_radr )
-GAME( 1992, sonic, 0, sega_system32, sonic, segas32_new_state, sonic, ROT0, "Sega", "SegaSonic The Hedgehog (Japan, rev. C)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1992, sonicp, sonic, sega_system32, sonic, segas32_new_state, sonicp, ROT0, "Sega", "SegaSonic The Hedgehog (Japan, prototype)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1992, sonic, 0, sega_system32, sonic, segas32_new_state, sonic, ROT0, "Sega", "SegaSonic The Hedgehog (Japan, rev. C)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1992, sonicp, sonic, sega_system32, sonic, segas32_new_state, sonicp, ROT0, "Sega", "SegaSonic The Hedgehog (Japan, prototype)", MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1991, spidman, 0, sega_system32, spidman, segas32_new_state, spidman, ROT0, "Sega", "Spider-Man: The Videogame (World)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1991, spidmanu, spidman, sega_system32, spidmanu, segas32_new_state, spidman, ROT0, "Sega", "Spider-Man: The Videogame (US)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1991, spidmanj, spidman, sega_system32, spidman, segas32_new_state, spidman, ROT0, "Sega", "Spider-Man: The Videogame (Japan)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1991, spidman, 0, sega_system32, spidman, segas32_new_state, spidman, ROT0, "Sega", "Spider-Man: The Videogame (World)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1991, spidmanu, spidman, sega_system32, spidmanu, segas32_new_state, spidman, ROT0, "Sega", "Spider-Man: The Videogame (US)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1991, spidmanj, spidman, sega_system32, spidman, segas32_new_state, spidman, ROT0, "Sega", "Spider-Man: The Videogame (Japan)", MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1994, svf, 0, sega_system32, svf, segas32_new_state, svf, ROT0, "Sega", "Super Visual Football: European Sega Cup", GAME_IMPERFECT_GRAPHICS )
-GAME( 1994, svs, svf, sega_system32, svf, segas32_new_state, svf, ROT0, "Sega", "Super Visual Soccer: Sega Cup (US)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1994, jleague, svf, sega_system32, svf, segas32_new_state, jleague, ROT0, "Sega", "The J.League 1994 (Japan)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1994, svf, 0, sega_system32, svf, segas32_new_state, svf, ROT0, "Sega", "Super Visual Football: European Sega Cup", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1994, svs, svf, sega_system32, svf, segas32_new_state, svf, ROT0, "Sega", "Super Visual Soccer: Sega Cup (US)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1994, jleague, svf, sega_system32, svf, segas32_new_state, jleague, ROT0, "Sega", "The J.League 1994 (Japan)", MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1994, harddunk, 0, sega_multi32, harddunk, segas32_new_state, harddunk, ROT0, "Sega", "Hard Dunk (World)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1994, harddunkj, harddunk, sega_multi32, harddunk, segas32_new_state, harddunk, ROT0, "Sega", "Hard Dunk (Japan)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1994, harddunk, 0, sega_multi32, harddunk, segas32_new_state, harddunk, ROT0, "Sega", "Hard Dunk (World)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1994, harddunkj, harddunk, sega_multi32, harddunk, segas32_new_state, harddunk, ROT0, "Sega", "Hard Dunk (Japan)", MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1992, orunners, 0, sega_multi32, orunners, segas32_new_state, orunners, ROT0, "Sega", "OutRunners (World)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1992, orunnersu, orunners, sega_multi32, orunners, segas32_new_state, orunners, ROT0, "Sega", "OutRunners (US)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1992, orunnersj, orunners, sega_multi32, orunners, segas32_new_state, orunners, ROT0, "Sega", "OutRunners (Japan)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1992, orunners, 0, sega_multi32, orunners, segas32_new_state, orunners, ROT0, "Sega", "OutRunners (World)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1992, orunnersu, orunners, sega_multi32, orunners, segas32_new_state, orunners, ROT0, "Sega", "OutRunners (US)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1992, orunnersj, orunners, sega_multi32, orunners, segas32_new_state, orunners, ROT0, "Sega", "OutRunners (Japan)", MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1992, scross, 0, sega_multi32, scross, segas32_new_state, scross, ROT0, "Sega", "Stadium Cross (World)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1992, scrossa, scross, sega_multi32, scross, segas32_new_state, scross, ROT0, "Sega", "Stadium Cross (World, alt)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1992, scrossu, scross, sega_multi32, scross, segas32_new_state, scross, ROT0, "Sega", "Stadium Cross (US)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1992, scross, 0, sega_multi32, scross, segas32_new_state, scross, ROT0, "Sega", "Stadium Cross (World)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1992, scrossa, scross, sega_multi32, scross, segas32_new_state, scross, ROT0, "Sega", "Stadium Cross (World, alt)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1992, scrossu, scross, sega_multi32, scross, segas32_new_state, scross, ROT0, "Sega", "Stadium Cross (US)", MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1992, titlef, 0, sega_multi32, titlef, segas32_new_state, titlef, ROT0, "Sega", "Title Fight (World)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1992, titlefu, titlef, sega_multi32, titlef, segas32_new_state, titlef, ROT0, "Sega", "Title Fight (US)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1992, titlefj, titlef, sega_multi32, titlef, segas32_new_state, titlef, ROT0, "Sega", "Title Fight (Japan)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1992, titlef, 0, sega_multi32, titlef, segas32_new_state, titlef, ROT0, "Sega", "Title Fight (World)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1992, titlefu, titlef, sega_multi32, titlef, segas32_new_state, titlef, ROT0, "Sega", "Title Fight (US)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1992, titlefj, titlef, sega_multi32, titlef, segas32_new_state, titlef, ROT0, "Sega", "Title Fight (Japan)", MACHINE_IMPERFECT_GRAPHICS )
diff --git a/src/mame/drivers/segasp.c b/src/mame/drivers/segasp.c
index ad1a6163d28..ea4482ec04a 100644
--- a/src/mame/drivers/segasp.c
+++ b/src/mame/drivers/segasp.c
@@ -535,9 +535,9 @@ ROM_START( tetgiano )
ROM_END
-#define GAME_FLAGS (GAME_NO_SOUND|GAME_NOT_WORKING)
+#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 | GAME_IS_BIOS_ROOT )
+GAME( 2004, segasp, 0, segasp, segasp, driver_device, 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 )
diff --git a/src/mame/drivers/segaufo.c b/src/mame/drivers/segaufo.c
index f77b60e3e6e..c73f27938b7 100644
--- a/src/mame/drivers/segaufo.c
+++ b/src/mame/drivers/segaufo.c
@@ -904,10 +904,10 @@ ROM_START( ufo800 )
ROM_END
-GAMEL( 1991, newufo, 0, newufo, newufo, driver_device, 0, ROT0, "Sega", "New UFO Catcher (standard)", GAME_MECHANICAL | GAME_SUPPORTS_SAVE, layout_newufo )
-GAMEL( 1991, newufo_sonic, newufo, newufo, newufo, driver_device, 0, ROT0, "Sega", "New UFO Catcher (Sonic The Hedgehog)", GAME_MECHANICAL | GAME_SUPPORTS_SAVE, layout_newufo )
-GAMEL( 1991, newufo_nfl, newufo, newufo, newufo, driver_device, 0, ROT0, "Sega", "New UFO Catcher (Team NFL)", GAME_MECHANICAL | GAME_SUPPORTS_SAVE, layout_newufo )
-GAMEL( 1991, newufo_xmas, newufo, newufo, newufo, driver_device, 0, ROT0, "Sega", "New UFO Catcher (Christmas season ROM kit)", GAME_MECHANICAL | GAME_SUPPORTS_SAVE, layout_newufo )
-GAMEL( 1991, ufomini, 0, ufomini, ufomini, driver_device, 0, ROT0, "Sega", "UFO Catcher Mini", GAME_MECHANICAL | GAME_SUPPORTS_SAVE, layout_ufomini )
-GAMEL( 1996, ufo21, 0, ufo21, ufo21, driver_device, 0, ROT0, "Sega", "UFO Catcher 21", GAME_MECHANICAL | GAME_SUPPORTS_SAVE, layout_ufo21 )
-GAMEL( 1998, ufo800, 0, ufo800, ufo800, driver_device, 0, ROT0, "Sega", "UFO Catcher 800", GAME_MECHANICAL | GAME_SUPPORTS_SAVE, layout_ufo800 )
+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 )
diff --git a/src/mame/drivers/segaxbd.c b/src/mame/drivers/segaxbd.c
index 39aacf89ee2..0e0f69bc86d 100644
--- a/src/mame/drivers/segaxbd.c
+++ b/src/mame/drivers/segaxbd.c
@@ -270,6 +270,152 @@ ROMs:
#include "sound/segapcm.h"
#include "includes/segaipt.h"
+const device_type SEGA_XBD_PCB = &device_creator<segaxbd_state>;
+
+segaxbd_state::segaxbd_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : device_t(mconfig, SEGA_XBD_PCB, "Sega System 32 PCB", tag, owner, clock, "segas32_pcb", __FILE__),
+ m_maincpu(*this, "maincpu"),
+ m_subcpu(*this, "subcpu"),
+ m_soundcpu(*this, "soundcpu"),
+ m_soundcpu2(*this, "soundcpu2"),
+ m_mcu(*this, "mcu"),
+ m_cmptimer_1(*this, "cmptimer_main"),
+ m_sprites(*this, "sprites"),
+ m_segaic16vid(*this, "segaic16vid"),
+ m_segaic16road(*this, "segaic16road"),
+ m_road_priority(1),
+ m_scanline_timer(NULL),
+ m_timer_irq_state(0),
+ m_vblank_irq_state(0),
+ m_loffire_sync(NULL),
+ m_lastsurv_mux(0),
+ m_paletteram(*this, "paletteram"),
+ m_gprider_hack(false),
+ m_palette_entries(0),
+ m_screen(*this, "screen"),
+ m_palette(*this, "palette")
+{
+ memset(m_adc_reverse, 0, sizeof(m_adc_reverse));
+ memset(m_iochip_regs, 0, sizeof(m_iochip_regs));
+ palette_init();
+ memset(m_latched_value, 0, sizeof(m_latched_value));
+ memset(m_latch_read, 0, sizeof(m_latch_read));
+}
+
+
+void segaxbd_state::device_start()
+{
+ if(!m_segaic16road->started())
+ throw device_missing_dependencies();
+
+ // point globals to allocated memory regions
+ m_segaic16road->segaic16_roadram_0 = reinterpret_cast<UINT16 *>(memshare("roadram")->ptr());
+
+ video_start();
+
+ // allocate a scanline timer
+ m_scanline_timer = timer_alloc(TID_SCANLINE);
+
+ // reset the custom handlers and other pointers
+ m_iochip_custom_io_w[0][3] = iowrite_delegate(FUNC(segaxbd_state::generic_iochip0_lamps_w), this);
+
+
+ // save state
+ save_item(NAME(m_timer_irq_state));
+ save_item(NAME(m_vblank_irq_state));
+ save_item(NAME(m_iochip_regs[0]));
+ save_item(NAME(m_iochip_regs[1]));
+ save_item(NAME(m_lastsurv_mux));
+}
+
+void segaxbd_state::device_reset()
+{
+ m_segaic16vid->tilemap_reset(*m_screen);
+
+ // hook the RESET line, which resets CPU #1
+ m_maincpu->set_reset_callback(write_line_delegate(FUNC(segaxbd_state::m68k_reset_callback),this));
+
+ // start timers to track interrupts
+ m_scanline_timer->adjust(m_screen->time_until_pos(1), 1);
+}
+
+
+class segaxbd_new_state : public driver_device
+{
+public:
+ segaxbd_new_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag),
+ m_mainpcb(*this, "mainpcb")
+ {
+ }
+
+ required_device<segaxbd_state> m_mainpcb;
+
+ // game-specific driver init
+ DECLARE_DRIVER_INIT(generic);
+ DECLARE_DRIVER_INIT(aburner2);
+ DECLARE_DRIVER_INIT(lastsurv);
+ DECLARE_DRIVER_INIT(loffire);
+ DECLARE_DRIVER_INIT(smgp);
+ DECLARE_DRIVER_INIT(rascot);
+ DECLARE_DRIVER_INIT(gprider);
+
+};
+
+class segaxbd_new_state_double : public segaxbd_new_state
+{
+public:
+ segaxbd_new_state_double(const machine_config &mconfig, device_type type, const char *tag)
+ : segaxbd_new_state(mconfig, type, tag),
+ m_subpcb(*this, "subpcb")
+ {
+ for (int i = 0; i < 0x800; i++)
+ {
+ shareram[i] = 0x0000;
+ }
+ rampage1 = 0x0000;
+ rampage2 = 0x0000;
+ }
+
+ required_device<segaxbd_state> m_subpcb;
+
+ DECLARE_READ16_MEMBER(shareram1_r) {
+ if (offset < 0x10) {
+ int address = (rampage1 << 4) + offset;
+ return shareram[address];
+ }
+ return 0xffff;
+ }
+ DECLARE_WRITE16_MEMBER(shareram1_w) {
+ if (offset < 0x10) {
+ int address = (rampage1 << 4) + offset;
+ COMBINE_DATA(&shareram[address]);
+ } else if (offset == 0x10) {
+ rampage1 = data & 0x00FF;
+ }
+ }
+ DECLARE_READ16_MEMBER(shareram2_r) {
+ if (offset < 0x10) {
+ int address = (rampage2 << 4) + offset;
+ return shareram[address];
+ }
+ return 0xffff;
+ }
+ DECLARE_WRITE16_MEMBER(shareram2_w) {
+ if (offset < 0x10) {
+ int address = (rampage2 << 4) + offset;
+ COMBINE_DATA(&shareram[address]);
+ } else if (offset == 0x10) {
+ rampage2 = data & 0x007F;
+ }
+ }
+
+ DECLARE_DRIVER_INIT(gprider_double);
+
+ UINT16 shareram[0x800];
+ UINT16 rampage1;
+ UINT16 rampage2;
+};
//**************************************************************************
// CONSTANTS
@@ -635,22 +781,6 @@ READ8_MEMBER( segaxbd_state::sound_data_r )
//**************************************************************************
//-------------------------------------------------
-// machine_reset - reset the state of the machine
-//-------------------------------------------------
-
-void segaxbd_state::machine_reset()
-{
- m_segaic16vid->tilemap_reset(*m_screen);
-
- // hook the RESET line, which resets CPU #1
- m_maincpu->set_reset_callback(write_line_delegate(FUNC(segaxbd_state::m68k_reset_callback),this));
-
- // start timers to track interrupts
- m_scanline_timer->adjust(m_screen->time_until_pos(1), 1);
-}
-
-
-//-------------------------------------------------
// device_timer - handle device timers
//-------------------------------------------------
@@ -865,6 +995,88 @@ WRITE_LINE_MEMBER(segaxbd_state::m68k_reset_callback)
}
+//-------------------------------------------------
+// palette_init - precompute weighted RGB values
+// for each input value 0-31
+//-------------------------------------------------
+
+void segaxbd_state::palette_init()
+{
+ //
+ // Color generation details
+ //
+ // Each color is made up of 5 bits, connected through one or more resistors like so:
+ //
+ // Bit 0 = 1 x 3.9K ohm
+ // Bit 1 = 1 x 2.0K ohm
+ // Bit 2 = 1 x 1.0K ohm
+ // Bit 3 = 2 x 1.0K ohm
+ // Bit 4 = 4 x 1.0K ohm
+ //
+ // Another data bit is connected by a tristate buffer to the color output through a
+ // 470 ohm resistor. The buffer allows the resistor to have no effect (tristate),
+ // halve brightness (pull-down) or double brightness (pull-up). The data bit source
+ // is bit 15 of each color RAM entry.
+ //
+
+ // compute weight table for regular palette entries
+ static const int resistances_normal[6] = { 3900, 2000, 1000, 1000/2, 1000/4, 0 };
+ double weights_normal[6];
+ compute_resistor_weights(0, 255, -1.0,
+ 6, resistances_normal, weights_normal, 0, 0,
+ 0, NULL, NULL, 0, 0,
+ 0, NULL, NULL, 0, 0);
+
+ // compute weight table for shadow/hilight palette entries
+ static const int resistances_sh[6] = { 3900, 2000, 1000, 1000/2, 1000/4, 470 };
+ double weights_sh[6];
+ compute_resistor_weights(0, 255, -1.0,
+ 6, resistances_sh, weights_sh, 0, 0,
+ 0, NULL, NULL, 0, 0,
+ 0, NULL, NULL, 0, 0);
+
+ // compute R, G, B for each weight
+ for (int value = 0; value < 32; value++)
+ {
+ int i4 = (value >> 4) & 1;
+ int i3 = (value >> 3) & 1;
+ int i2 = (value >> 2) & 1;
+ int i1 = (value >> 1) & 1;
+ int i0 = (value >> 0) & 1;
+ m_palette_normal[value] = combine_6_weights(weights_normal, i0, i1, i2, i3, i4, 0);
+ m_palette_shadow[value] = combine_6_weights(weights_sh, i0, i1, i2, i3, i4, 0);
+ m_palette_hilight[value] = combine_6_weights(weights_sh, i0, i1, i2, i3, i4, 1);
+ }
+}
+
+
+//-------------------------------------------------
+// paletteram_w - handle writes to palette RAM
+//-------------------------------------------------
+
+WRITE16_MEMBER( segaxbd_state::paletteram_w )
+{
+ // compute the number of entries
+ if (m_palette_entries == 0)
+ m_palette_entries = memshare("paletteram")->bytes() / 2;
+
+ // get the new value
+ UINT16 newval = m_paletteram[offset];
+ COMBINE_DATA(&newval);
+ m_paletteram[offset] = newval;
+
+ // byte 0 byte 1
+ // sBGR BBBB GGGG RRRR
+ // x000 4321 4321 4321
+ int r = ((newval >> 12) & 0x01) | ((newval << 1) & 0x1e);
+ int g = ((newval >> 13) & 0x01) | ((newval >> 3) & 0x1e);
+ int b = ((newval >> 14) & 0x01) | ((newval >> 7) & 0x1e);
+
+ // normal colors
+ m_palette->set_pen_color(offset + 0 * m_palette_entries, m_palette_normal[r], m_palette_normal[g], m_palette_normal[b]);
+ m_palette->set_pen_color(offset + 1 * m_palette_entries, m_palette_shadow[r], m_palette_shadow[g], m_palette_shadow[b]);
+ m_palette->set_pen_color(offset + 2 * m_palette_entries, m_palette_hilight[r], m_palette_hilight[g], m_palette_hilight[b]);
+}
//**************************************************************************
// MAIN CPU ADDRESS MAPS
@@ -901,7 +1113,9 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, segaxbd_state )
AM_RANGE(0x3fc000, 0x3fffff) AM_RAM AM_SHARE("backup2")
ADDRESS_MAP_END
-
+static ADDRESS_MAP_START( decrypted_opcodes_map, AS_DECRYPTED_OPCODES, 16, segaxbd_state )
+ AM_RANGE(0x00000, 0xfffff) AM_ROMBANK("fd1094_decrypted_opcodes")
+ADDRESS_MAP_END
//**************************************************************************
// SUB CPU ADDRESS MAPS
@@ -1027,15 +1241,15 @@ ADDRESS_MAP_END
//**************************************************************************
static INPUT_PORTS_START( xboard_generic )
- PORT_START("IO0PORTA")
+ PORT_START("mainpcb:IO0PORTA")
PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SPECIAL ) // /INTR of ADC0804
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("IO0PORTB")
+ PORT_START("mainpcb:IO0PORTB")
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_START("IO1PORTA")
+ PORT_START("mainpcb:IO1PORTA")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) // button? not used by any game we have
PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
@@ -1045,13 +1259,13 @@ static INPUT_PORTS_START( xboard_generic )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
- PORT_START("IO1PORTB")
+ PORT_START("mainpcb:IO1PORTB")
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_START("IO1PORTC")
+ PORT_START("mainpcb:IO1PORTC")
SEGA_COINAGE_LOC(SWA)
- PORT_START("IO1PORTD")
+ PORT_START("mainpcb:IO1PORTD")
PORT_DIPUNUSED_DIPLOC( 0x01, IP_ACTIVE_LOW, "SWB:1" )
PORT_DIPUNUSED_DIPLOC( 0x02, IP_ACTIVE_LOW, "SWB:2" )
PORT_DIPUNUSED_DIPLOC( 0x04, IP_ACTIVE_LOW, "SWB:3" )
@@ -1071,11 +1285,11 @@ INPUT_PORTS_END
static INPUT_PORTS_START( aburner )
PORT_INCLUDE( xboard_generic )
- PORT_MODIFY("IO1PORTA")
+ PORT_MODIFY("mainpcb:IO1PORTA")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Vulcan")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Missile")
- PORT_MODIFY("IO1PORTD")
+ PORT_MODIFY("mainpcb:IO1PORTD")
PORT_DIPNAME( 0x03, 0x01, "Cabinet Type" ) PORT_DIPLOCATION("SWB:1,2")
PORT_DIPSETTING( 0x03, "Moving Deluxe" )
PORT_DIPSETTING( 0x02, "Moving Standard" )
@@ -1100,19 +1314,19 @@ static INPUT_PORTS_START( aburner )
PORT_DIPSETTING( 0x40, DEF_STR( Hard ) )
PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) )
- PORT_START("ADC0") // stick X
+ PORT_START("mainpcb:ADC0") // stick X
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x20,0xe0) PORT_SENSITIVITY(100) PORT_KEYDELTA(4)
- PORT_START("ADC1") // stick Y
+ PORT_START("mainpcb:ADC1") // stick Y
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0x40,0xc0) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE
- PORT_START("ADC2") // throttle
+ PORT_START("mainpcb:ADC2") // throttle
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Z ) PORT_SENSITIVITY(100) PORT_KEYDELTA(79)
- PORT_START("ADC3") // motor Y
+ PORT_START("mainpcb:ADC3") // motor Y
PORT_BIT( 0xff, (0xb0+0x50)/2, IPT_SPECIAL )
- PORT_START("ADC4") // motor X
+ PORT_START("mainpcb:ADC4") // motor X
PORT_BIT( 0xff, (0xb0+0x50)/2, IPT_SPECIAL )
INPUT_PORTS_END
@@ -1120,7 +1334,7 @@ INPUT_PORTS_END
static INPUT_PORTS_START( aburner2 )
PORT_INCLUDE( aburner )
- PORT_MODIFY("IO1PORTD")
+ PORT_MODIFY("mainpcb:IO1PORTD")
PORT_DIPNAME( 0x03, 0x01, "Cabinet Type" ) PORT_DIPLOCATION("SWB:1,2")
PORT_DIPSETTING( 0x03, "Moving Deluxe" )
PORT_DIPSETTING( 0x02, "Moving Standard" )
@@ -1148,11 +1362,11 @@ INPUT_PORTS_END
static INPUT_PORTS_START( thndrbld )
PORT_INCLUDE( xboard_generic )
- PORT_MODIFY("IO1PORTA")
+ PORT_MODIFY("mainpcb:IO1PORTA")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Cannon")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Missile")
- PORT_MODIFY("IO1PORTD")
+ PORT_MODIFY("mainpcb:IO1PORTD")
PORT_DIPNAME( 0x01, 0x01, "Cabinet Type" ) PORT_DIPLOCATION("SWB:1")
PORT_DIPSETTING( 0x01, "Econ Upright" )
PORT_DIPSETTING( 0x00, "Mini Upright" ) // see note about inputs below
@@ -1180,13 +1394,13 @@ static INPUT_PORTS_START( thndrbld )
// On the "Standing" cabinet, the joystick Y axis is reversed.
// On the "Mini Upright" cabinet, the inputs conform to After Burner II:
// the X axis is (un-)reversed, and the throttle and Y axis switch places
- PORT_START("ADC0") // stick X
+ PORT_START("mainpcb:ADC0") // stick X
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x01,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE
- PORT_START("ADC1") // "slottle"
+ PORT_START("mainpcb:ADC1") // "slottle"
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Z ) PORT_SENSITIVITY(100) PORT_KEYDELTA(79)
- PORT_START("ADC2") // stick Y
+ PORT_START("mainpcb:ADC2") // stick Y
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0x01,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(4)
INPUT_PORTS_END
@@ -1194,7 +1408,7 @@ INPUT_PORTS_END
static INPUT_PORTS_START( thndrbd1 )
PORT_INCLUDE( thndrbld )
- PORT_MODIFY("IO1PORTD")
+ PORT_MODIFY("mainpcb:IO1PORTD")
PORT_DIPNAME( 0x01, 0x01, "Cabinet Type" ) PORT_DIPLOCATION("SWB:1")
PORT_DIPSETTING( 0x01, "Deluxe" )
PORT_DIPSETTING( 0x00, "Standing" ) // see note about inputs above
@@ -1234,33 +1448,33 @@ static const ioport_value lastsurv_position_table[] =
static INPUT_PORTS_START( lastsurv )
PORT_INCLUDE( xboard_generic )
- PORT_MODIFY("IO1PORTA")
+ PORT_MODIFY("mainpcb:IO1PORTA")
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 )
- PORT_START("MUX0")
+ PORT_START("mainpcb:MUX0")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
PORT_BIT( 0xf0, 0xf0 ^ 0x40, IPT_POSITIONAL ) PORT_PLAYER(2) PORT_POSITIONS(8) PORT_REMAP_TABLE(lastsurv_position_table) PORT_WRAPS PORT_SENSITIVITY(1) PORT_KEYDELTA(10) PORT_CENTERDELTA(0) PORT_CODE_DEC(KEYCODE_Q) PORT_CODE_INC(KEYCODE_W)
- PORT_START("MUX1")
+ PORT_START("mainpcb:MUX1")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
PORT_BIT( 0xf0, 0xf0 ^ 0x40, IPT_POSITIONAL ) PORT_PLAYER(1) PORT_POSITIONS(8) PORT_REMAP_TABLE(lastsurv_position_table) PORT_WRAPS PORT_SENSITIVITY(1) PORT_KEYDELTA(10) PORT_CENTERDELTA(0) PORT_CODE_DEC(KEYCODE_Z) PORT_CODE_INC(KEYCODE_X)
- PORT_START("MUX2")
+ PORT_START("mainpcb:MUX2")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
PORT_BIT( 0x0e, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("MUX3")
+ PORT_START("mainpcb:MUX3")
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_MODIFY("IO1PORTD")
+ PORT_MODIFY("mainpcb:IO1PORTD")
PORT_DIPNAME( 0x03, 0x03, "I.D. No" ) PORT_DIPLOCATION("SWB:1,2")
PORT_DIPSETTING( 0x03, "1" )
PORT_DIPSETTING( 0x02, "2" )
@@ -1288,21 +1502,21 @@ INPUT_PORTS_END
static INPUT_PORTS_START( loffire )
PORT_INCLUDE( xboard_generic )
- PORT_MODIFY("IO1PORTA")
+ PORT_MODIFY("mainpcb:IO1PORTA")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE2 )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 )
PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNKNOWN )
- PORT_MODIFY("IO1PORTB")
+ PORT_MODIFY("mainpcb:IO1PORTB")
PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
- PORT_MODIFY("IO1PORTD")
+ PORT_MODIFY("mainpcb:IO1PORTD")
PORT_DIPNAME( 0x01, 0x00, DEF_STR( Language ) ) PORT_DIPLOCATION("SWB:1")
PORT_DIPSETTING( 0x01, DEF_STR( Japanese ) )
PORT_DIPSETTING( 0x00, DEF_STR( English ) )
@@ -1327,16 +1541,16 @@ static INPUT_PORTS_START( loffire )
PORT_DIPSETTING( 0x80, DEF_STR( Single ) )
PORT_DIPSETTING( 0x00, "Twin" )
- PORT_START("ADC0")
+ PORT_START("mainpcb:ADC0")
PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_SENSITIVITY(50) PORT_KEYDELTA(5)
- PORT_START("ADC1")
+ PORT_START("mainpcb:ADC1")
PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_SENSITIVITY(50) PORT_KEYDELTA(5)
- PORT_START("ADC2")
+ PORT_START("mainpcb:ADC2")
PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) PORT_PLAYER(2)
- PORT_START("ADC3")
+ PORT_START("mainpcb:ADC3")
PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) PORT_PLAYER(2)
INPUT_PORTS_END
@@ -1344,11 +1558,11 @@ INPUT_PORTS_END
static INPUT_PORTS_START( rachero )
PORT_INCLUDE( xboard_generic )
- PORT_MODIFY("IO1PORTA")
+ PORT_MODIFY("mainpcb:IO1PORTA")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Move to Center")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Suicide")
- PORT_MODIFY("IO1PORTD")
+ PORT_MODIFY("mainpcb:IO1PORTD")
PORT_DIPNAME( 0x01, 0x01, "Credits" ) PORT_DIPLOCATION("SWB:1")
PORT_DIPSETTING( 0x01, "1 to Start, 1 to Continue" )
PORT_DIPSETTING( 0x00, "2 to Start, 1 to Continue" )
@@ -1369,13 +1583,13 @@ static INPUT_PORTS_START( rachero )
PORT_DIPSETTING( 0x80, DEF_STR( Hard ) )
PORT_DIPSETTING( 0x00, DEF_STR( Very_Hard ) )
- PORT_START("ADC0") // steering
+ PORT_START("mainpcb:ADC0") // steering
PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x20,0xe0) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE
- PORT_START("ADC1") // gas pedal
+ PORT_START("mainpcb:ADC1") // gas pedal
PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20)
- PORT_START("ADC2") // brake
+ PORT_START("mainpcb:ADC2") // brake
PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_SENSITIVITY(100) PORT_KEYDELTA(40)
INPUT_PORTS_END
@@ -1383,11 +1597,11 @@ INPUT_PORTS_END
static INPUT_PORTS_START( smgp )
PORT_INCLUDE( xboard_generic )
- PORT_MODIFY("IO1PORTA")
+ PORT_MODIFY("mainpcb:IO1PORTA")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Shift Down") PORT_CODE(KEYCODE_A)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Shift Up") PORT_CODE(KEYCODE_Z)
- PORT_MODIFY("IO1PORTD")
+ PORT_MODIFY("mainpcb:IO1PORTD")
PORT_DIPNAME( 0x07, 0x07, "Machine ID" ) PORT_DIPLOCATION("SWB:1,2,3")
PORT_DIPSETTING( 0x07, "1" )
PORT_DIPSETTING( 0x06, "2" )
@@ -1412,13 +1626,13 @@ static INPUT_PORTS_START( smgp )
PORT_DIPSETTING( 0x40, DEF_STR( Upright ) )
// PORT_DIPSETTING( 0x00, "Deluxe" )
- PORT_START("ADC0") // steering
+ PORT_START("mainpcb:ADC0") // steering
PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x38,0xc8) PORT_SENSITIVITY(100) PORT_KEYDELTA(4)
- PORT_START("ADC1") // gas pedal
+ PORT_START("mainpcb:ADC1") // gas pedal
PORT_BIT( 0xff, 0x38, IPT_PEDAL ) PORT_MINMAX(0x38,0xb8) PORT_SENSITIVITY(100) PORT_KEYDELTA(20)
- PORT_START("ADC2") // brake
+ PORT_START("mainpcb:ADC2") // brake
PORT_BIT( 0xff, 0x28, IPT_PEDAL2 ) PORT_MINMAX(0x28,0xa8) PORT_SENSITIVITY(100) PORT_KEYDELTA(40)
INPUT_PORTS_END
@@ -1426,10 +1640,10 @@ INPUT_PORTS_END
static INPUT_PORTS_START( abcop )
PORT_INCLUDE( xboard_generic )
- PORT_MODIFY("IO1PORTA")
+ PORT_MODIFY("mainpcb:IO1PORTA")
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Jump")
- PORT_MODIFY("IO1PORTD")
+ PORT_MODIFY("mainpcb:IO1PORTD")
PORT_DIPNAME( 0x01, 0x01, "Credits" ) PORT_DIPLOCATION("SWB:1")
PORT_DIPSETTING( 0x01, "1 to Start, 1 to Continue" )
PORT_DIPSETTING( 0x00, "2 to Start, 1 to Continue" )
@@ -1450,49 +1664,127 @@ static INPUT_PORTS_START( abcop )
PORT_DIPSETTING( 0x80, DEF_STR( Hard ) )
PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) )
- PORT_START("ADC0") // steering
+ PORT_START("mainpcb:ADC0") // steering
PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x20,0xe0) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE
- PORT_START("ADC1") // accelerator
+ PORT_START("mainpcb:ADC1") // accelerator
PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20)
INPUT_PORTS_END
static INPUT_PORTS_START( gprider )
- PORT_INCLUDE( xboard_generic )
+ PORT_START("mainpcb:IO0PORTA")
+ PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SPECIAL ) // /INTR of ADC0804
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_MODIFY("IO1PORTA")
+ PORT_START("mainpcb:IO0PORTB")
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("mainpcb:IO1PORTA")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) // button? not used by any game we have
+ PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Shift Down") PORT_CODE(KEYCODE_A)
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Shift Up") PORT_CODE(KEYCODE_Z)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
+
+ PORT_START("mainpcb:IO1PORTB")
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("mainpcb:IO1PORTC")
+ SEGA_COINAGE_LOC(SWA)
- PORT_MODIFY("IO1PORTD")
+ PORT_START("mainpcb:IO1PORTD")
PORT_DIPNAME( 0x03, 0x02, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:1,2")
PORT_DIPSETTING( 0x03, "Ride On" )
PORT_DIPSETTING( 0x02, DEF_STR( Upright ) )
// PORT_DIPSETTING( 0x01, DEF_STR( Unused ) )
// PORT_DIPSETTING( 0x00, DEF_STR( Unused ) )
+ PORT_DIPUNUSED_DIPLOC( 0x04, IP_ACTIVE_LOW, "SWB:3" )
PORT_DIPNAME( 0x08, 0x08, "ID No." ) PORT_DIPLOCATION("SWB:4")
PORT_DIPSETTING( 0x08, "Main" ) // Player 1 (Blue)
PORT_DIPSETTING( 0x00, "Slave" ) // Player 2 (Red)
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:5")
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x10, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC( 0x20, IP_ACTIVE_LOW, "SWB:6" )
PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:7,8")
PORT_DIPSETTING( 0x80, DEF_STR( Easy ) )
PORT_DIPSETTING( 0xc0, DEF_STR( Normal ) )
PORT_DIPSETTING( 0x40, DEF_STR( Hard ) )
PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) )
- PORT_START("ADC0") // steering
+ PORT_START("mainpcb:ADC0") // steering
PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x01,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(4)
- PORT_START("ADC1") // gas pedal
+ PORT_START("mainpcb:ADC1") // gas pedal
PORT_BIT( 0xff, 0x10, IPT_PEDAL ) PORT_MINMAX(0x10,0xef) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_REVERSE
- PORT_START("ADC2") // brake
+ PORT_START("mainpcb:ADC2") // brake
PORT_BIT( 0xff, 0x10, IPT_PEDAL2 ) PORT_MINMAX(0x10,0xef) PORT_SENSITIVITY(100) PORT_KEYDELTA(40) PORT_REVERSE
INPUT_PORTS_END
+static INPUT_PORTS_START( gprider_double )
+ PORT_INCLUDE( gprider )
+
+ PORT_START("subpcb:IO0PORTA")
+ PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SPECIAL ) // /INTR of ADC0804
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_START("subpcb:IO0PORTB")
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("subpcb:IO1PORTA")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) // button? not used by any game we have
+ PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE2 )
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Shift Down") PORT_CODE(KEYCODE_W) PORT_PLAYER(2)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Shift Up") PORT_CODE(KEYCODE_S) PORT_PLAYER(2)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN4 )
+
+ PORT_START("subpcb:IO1PORTB")
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("subpcb:IO1PORTC")
+ SEGA_COINAGE_LOC(SWA)
+
+ PORT_START("subpcb:IO1PORTD")
+ PORT_DIPNAME( 0x03, 0x02, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:1,2")
+ PORT_DIPSETTING( 0x03, "Ride On" )
+ PORT_DIPSETTING( 0x02, DEF_STR( Upright ) )
+// PORT_DIPSETTING( 0x01, DEF_STR( Unused ) )
+// PORT_DIPSETTING( 0x00, DEF_STR( Unused ) )
+ PORT_DIPUNUSED_DIPLOC( 0x04, IP_ACTIVE_LOW, "SWB:3" )
+ PORT_DIPNAME( 0x08, 0x00, "ID No." ) PORT_DIPLOCATION("SWB:4")
+ PORT_DIPSETTING( 0x08, "Main" ) // Player 1 (Blue)
+ PORT_DIPSETTING( 0x00, "Slave" ) // Player 2 (Red)
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:5")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( On ) )
+ PORT_DIPUNUSED_DIPLOC( 0x20, IP_ACTIVE_LOW, "SWB:6" )
+ PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:7,8")
+ PORT_DIPSETTING( 0x80, DEF_STR( Easy ) )
+ PORT_DIPSETTING( 0xc0, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( Hard ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) )
+
+ PORT_START("subpcb:ADC0") // steering
+ PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x01,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_PLAYER(2)
+
+ PORT_START("subpcb:ADC1") // gas pedal
+ PORT_BIT( 0xff, 0x10, IPT_PEDAL ) PORT_MINMAX(0x10,0xef) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_REVERSE PORT_PLAYER(2)
+
+ PORT_START("subpcb:ADC2") // brake
+ PORT_BIT( 0xff, 0x10, IPT_PEDAL2 ) PORT_MINMAX(0x10,0xef) PORT_SENSITIVITY(100) PORT_KEYDELTA(40) PORT_REVERSE PORT_PLAYER(2)
+
+INPUT_PORTS_END
+
static INPUT_PORTS_START( rascot )
PORT_INCLUDE( xboard_generic )
@@ -1515,7 +1807,7 @@ GFXDECODE_END
// GENERIC MACHINE DRIVERS
//**************************************************************************
-static MACHINE_CONFIG_START( xboard, segaxbd_state )
+static MACHINE_CONFIG_FRAGMENT( xboard )
// basic machine hardware
MCFG_CPU_ADD("maincpu", M68000, MASTER_CLOCK/4)
@@ -1555,6 +1847,8 @@ static MACHINE_CONFIG_START( xboard, segaxbd_state )
MCFG_SEGA_XBOARD_SPRITES_ADD("sprites")
MCFG_SEGAIC16VID_ADD("segaic16vid")
MCFG_SEGAIC16VID_GFXDECODE("gfxdecode")
+ MCFG_VIDEO_SET_SCREEN("screen")
+
MCFG_SEGAIC16_ROAD_ADD("segaic16road")
// sound hardware
@@ -1571,18 +1865,63 @@ static MACHINE_CONFIG_START( xboard, segaxbd_state )
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
MACHINE_CONFIG_END
-static MACHINE_CONFIG_DERIVED( xboard_fd1094, xboard )
+const device_type SEGA_XBD_REGULAR_DEVICE = &device_creator<segaxbd_regular_state>;
+
+segaxbd_regular_state::segaxbd_regular_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : segaxbd_state(mconfig, tag, owner, clock)
+{
+}
+
+machine_config_constructor segaxbd_regular_state::device_mconfig_additions() const
+{
+ return MACHINE_CONFIG_NAME( xboard );
+}
+
+static MACHINE_CONFIG_START( sega_xboard, segaxbd_new_state )
+ MCFG_DEVICE_ADD("mainpcb", SEGA_XBD_REGULAR_DEVICE, 0)
+MACHINE_CONFIG_END
+
+
+static MACHINE_CONFIG_FRAGMENT( xboard_fd1094 )
+
+ MCFG_FRAGMENT_ADD( xboard )
+
MCFG_CPU_REPLACE("maincpu", FD1094, MASTER_CLOCK/4)
MCFG_CPU_PROGRAM_MAP(main_map)
+ MCFG_CPU_DECRYPTED_OPCODES_MAP(decrypted_opcodes_map)
+MACHINE_CONFIG_END
+
+const device_type SEGA_XBD_FD1094_DEVICE = &device_creator<segaxbd_fd1094_state>;
+
+segaxbd_fd1094_state::segaxbd_fd1094_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : segaxbd_state(mconfig, tag, owner, clock)
+{
+}
+
+machine_config_constructor segaxbd_fd1094_state::device_mconfig_additions() const
+{
+ 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)
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)
+
+ //MCFG_QUANTUM_PERFECT_CPU("mainpcb:maincpu") // doesn't help..
+MACHINE_CONFIG_END
//**************************************************************************
// GAME-SPECIFIC MACHINE DRIVERS
//**************************************************************************
-static MACHINE_CONFIG_DERIVED( lastsurv_fd1094, xboard_fd1094 )
+static MACHINE_CONFIG_FRAGMENT( lastsurv_fd1094 )
+
+ MCFG_FRAGMENT_ADD( xboard_fd1094 )
// basic machine hardware
// TODO: network board
@@ -1594,7 +1933,56 @@ static MACHINE_CONFIG_DERIVED( lastsurv_fd1094, xboard_fd1094 )
MCFG_SOUND_ROUTE(1, "lspeaker", 0.43)
MACHINE_CONFIG_END
-static MACHINE_CONFIG_DERIVED( smgp_fd1094, xboard_fd1094 )
+const device_type SEGA_XBD_LASTSURV_FD1094_DEVICE = &device_creator<segaxbd_lastsurv_fd1094_state>;
+
+segaxbd_lastsurv_fd1094_state::segaxbd_lastsurv_fd1094_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : segaxbd_state(mconfig, tag, owner, clock)
+{
+}
+
+machine_config_constructor segaxbd_lastsurv_fd1094_state::device_mconfig_additions() const
+{
+ 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)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_FRAGMENT( lastsurv )
+
+ MCFG_FRAGMENT_ADD( xboard )
+
+ // basic machine hardware
+ // TODO: network board
+
+ // sound hardware - ym2151 stereo is reversed
+ MCFG_SOUND_MODIFY("ymsnd")
+ MCFG_SOUND_ROUTES_RESET()
+ MCFG_SOUND_ROUTE(0, "rspeaker", 0.43)
+ MCFG_SOUND_ROUTE(1, "lspeaker", 0.43)
+MACHINE_CONFIG_END
+
+const device_type SEGA_XBD_LASTSURV_DEVICE = &device_creator<segaxbd_lastsurv_state>;
+
+segaxbd_lastsurv_state::segaxbd_lastsurv_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : segaxbd_state(mconfig, tag, owner, clock)
+{
+}
+
+machine_config_constructor segaxbd_lastsurv_state::device_mconfig_additions() const
+{
+ return MACHINE_CONFIG_NAME( lastsurv );
+}
+
+static MACHINE_CONFIG_START( sega_lastsurv, segaxbd_new_state )
+ MCFG_DEVICE_ADD("mainpcb", SEGA_XBD_LASTSURV_DEVICE, 0)
+MACHINE_CONFIG_END
+
+
+
+static MACHINE_CONFIG_FRAGMENT( smgp_fd1094 )
+ MCFG_FRAGMENT_ADD( xboard_fd1094 )
// basic machine hardware
MCFG_CPU_ADD("soundcpu2", Z80, SOUND_CLOCK/4)
@@ -1618,7 +2006,68 @@ static MACHINE_CONFIG_DERIVED( smgp_fd1094, xboard_fd1094 )
MCFG_SOUND_ROUTE(1, "rearright", 1.0)
MACHINE_CONFIG_END
-static MACHINE_CONFIG_DERIVED( rascot, xboard )
+const device_type SEGA_XBD_SMGP_FD1094_DEVICE = &device_creator<segaxbd_smgp_fd1094_state>;
+
+segaxbd_smgp_fd1094_state::segaxbd_smgp_fd1094_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : segaxbd_state(mconfig, tag, owner, clock)
+{
+}
+
+machine_config_constructor segaxbd_smgp_fd1094_state::device_mconfig_additions() const
+{
+ 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)
+MACHINE_CONFIG_END
+
+
+
+static MACHINE_CONFIG_FRAGMENT( smgp )
+ MCFG_FRAGMENT_ADD( xboard )
+
+ // basic machine hardware
+ MCFG_CPU_ADD("soundcpu2", Z80, SOUND_CLOCK/4)
+ MCFG_CPU_PROGRAM_MAP(smgp_sound2_map)
+ MCFG_CPU_IO_MAP(smgp_sound2_portmap)
+
+ MCFG_CPU_ADD("commcpu", Z80, XTAL_16MHz/2) // Z80E
+ MCFG_CPU_PROGRAM_MAP(smgp_comm_map)
+ MCFG_CPU_IO_MAP(smgp_comm_portmap)
+
+ MCFG_CPU_ADD("motorcpu", Z80, XTAL_16MHz/2) // not verified
+ MCFG_CPU_PROGRAM_MAP(smgp_airdrive_map)
+ MCFG_CPU_IO_MAP(smgp_airdrive_portmap)
+
+ // sound hardware
+ MCFG_SPEAKER_STANDARD_STEREO("rearleft", "rearright")
+
+ MCFG_SEGAPCM_ADD("pcm2", SOUND_CLOCK/4)
+ MCFG_SEGAPCM_BANK(BANK_512)
+ MCFG_SOUND_ROUTE(0, "rearleft", 1.0)
+ MCFG_SOUND_ROUTE(1, "rearright", 1.0)
+MACHINE_CONFIG_END
+
+const device_type SEGA_XBD_SMGP_DEVICE = &device_creator<segaxbd_smgp_state>;
+
+segaxbd_smgp_state::segaxbd_smgp_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : segaxbd_state(mconfig, tag, owner, clock)
+{
+}
+
+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)
+MACHINE_CONFIG_END
+
+
+static MACHINE_CONFIG_FRAGMENT( rascot )
+ MCFG_FRAGMENT_ADD( xboard )
// basic machine hardware
MCFG_CPU_MODIFY("soundcpu")
@@ -1626,6 +2075,21 @@ static MACHINE_CONFIG_DERIVED( rascot, xboard )
MCFG_CPU_IO_MAP(rascot_z80_portmap)
MACHINE_CONFIG_END
+const device_type SEGA_XBD_RASCOT_DEVICE = &device_creator<segaxbd_rascot_state>;
+
+segaxbd_rascot_state::segaxbd_rascot_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
+ : segaxbd_state(mconfig, tag, owner, clock)
+{
+}
+
+machine_config_constructor segaxbd_rascot_state::device_mconfig_additions() const
+{
+ return MACHINE_CONFIG_NAME( rascot );
+}
+
+static MACHINE_CONFIG_START( sega_rascot, segaxbd_new_state )
+ MCFG_DEVICE_ADD("mainpcb", SEGA_XBD_RASCOT_DEVICE, 0)
+MACHINE_CONFIG_END
//**************************************************************************
@@ -1665,20 +2129,20 @@ MACHINE_CONFIG_END
// EPR-10929.13
//
ROM_START( aburner )
- ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "epr-10940.58", 0x00000, 0x20000, CRC(4d132c4e) SHA1(007af52167c369177b86fc0f8b007ebceba2a30c) )
ROM_LOAD16_BYTE( "epr-10941.63", 0x00001, 0x20000, CRC(136ea264) SHA1(606ac67db53a6002ed1bd71287aed2e3e720cdf4) )
- ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
+ ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
ROM_LOAD16_BYTE( "epr-10927.20", 0x00000, 0x20000, CRC(66d36757) SHA1(c7f6d653fb6bfd629bb62057010d41f3ccfccc4d) )
ROM_LOAD16_BYTE( "epr-10928.29", 0x00001, 0x20000, CRC(7c01d40b) SHA1(d95b4702a9c813db8bc24c8cd7e0933cbe54a573) )
- ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
ROM_LOAD( "epr-10926.154", 0x00000, 0x10000, CRC(ed8bd632) SHA1(d5bbd5e257ebef8cfb3baf5fa530b189d9cddb57) )
ROM_LOAD( "epr-10925.153", 0x10000, 0x10000, CRC(4ef048cc) SHA1(3b386b3bfa600f114dbc19796bb6864a88ff4562) )
ROM_LOAD( "epr-10924.152", 0x20000, 0x10000, CRC(50c15a6d) SHA1(fc202cc583fc6804647abc884fdf332e72ea3100) )
- ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
ROM_LOAD32_BYTE( "mpr-10932.90", 0x000000, 0x20000, CRC(cc0821d6) SHA1(22e84419a585209bbda1466d2180504c316a9b7f) ) // First 8 roms are MPR, the rest are EPR
ROM_LOAD32_BYTE( "mpr-10934.94", 0x000001, 0x20000, CRC(4a51b1fa) SHA1(2eed018a5a1e935bb72b6f440a794466a1397dc5) )
ROM_LOAD32_BYTE( "mpr-10936.98", 0x000002, 0x20000, CRC(ada70d64) SHA1(ba6203b0fdb4c4998b7be5b446eb8354751d553a) )
@@ -1696,13 +2160,13 @@ ROM_START( aburner )
ROM_LOAD32_BYTE( "epr-10948.101", 0x180002, 0x20000, CRC(64284761) SHA1(9594c671900f7f49d8fb965bc17b4380ce2c68d5) )
ROM_LOAD32_BYTE( "epr-10949.105", 0x180003, 0x20000, CRC(d8437d92) SHA1(480291358c3d197645d7bd149bdfe5d41071d52d) )
- ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
+ ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
ROM_LOAD( "epr-10922.40", 0x000000, 0x10000, CRC(b49183d4) SHA1(71d87bfbce858049ccde9597ab15575b3cdba892) )
- ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
ROM_LOAD( "epr-10923.17", 0x00000, 0x10000, CRC(6888eb8f) SHA1(8f8fffb214842a5d356e33f5a97099bc6407384f) )
- ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
ROM_LOAD( "mpr-10931.11", 0x00000, 0x20000, CRC(9209068f) SHA1(01f3dda1c066d00080c55f2c86c506b6b2407f98) )
ROM_LOAD( "mpr-10930.12", 0x20000, 0x20000, CRC(6493368b) SHA1(328aff19ff1d1344e9115f519d3962390c4e5ba4) )
ROM_LOAD( "epr-10929.13", 0x40000, 0x20000, CRC(6c07c78d) SHA1(3868b1824f43e4f2b4fbcd9274bfb3000c889d12) )
@@ -1716,20 +2180,20 @@ ROM_END
// CPU: 68000 (317-????)
//
ROM_START( aburner2 )
- ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "epr-11107.58", 0x00000, 0x20000, CRC(6d87bab7) SHA1(ab34fe78f1f216037b3e3dca3e61f1b31c05cedf) )
ROM_LOAD16_BYTE( "epr-11108.63", 0x00001, 0x20000, CRC(202a3e1d) SHA1(cf2018bbad366de4b222eae35942636ca68aa581) )
- ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
+ ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
ROM_LOAD16_BYTE( "epr-11109.20", 0x00000, 0x20000, CRC(85a0fe07) SHA1(5a3a8fda6cb4898cfece4ec865b81b9b60f9ad55) )
ROM_LOAD16_BYTE( "epr-11110.29", 0x00001, 0x20000, CRC(f3d6797c) SHA1(17487b89ddbfbcc32a0b52268259f1c8d10fd0b2) )
- ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
ROM_LOAD( "epr-11115.154", 0x00000, 0x10000, CRC(e8e32921) SHA1(30a96e6b514a475c778296228ba5b6fb96b211b0) )
ROM_LOAD( "epr-11114.153", 0x10000, 0x10000, CRC(2e97f633) SHA1(074125c106dd00785903b2e10cd7e28d5036eb60) )
ROM_LOAD( "epr-11113.152", 0x20000, 0x10000, CRC(36058c8c) SHA1(52befe6c6c53f10b6fd4971098abc8f8d3eef9d4) )
- ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
ROM_LOAD32_BYTE( "mpr-10932.90", 0x000000, 0x20000, CRC(cc0821d6) SHA1(22e84419a585209bbda1466d2180504c316a9b7f) ) // First 8 roms are MPR, the rest are EPR
ROM_LOAD32_BYTE( "mpr-10934.94", 0x000001, 0x20000, CRC(4a51b1fa) SHA1(2eed018a5a1e935bb72b6f440a794466a1397dc5) )
ROM_LOAD32_BYTE( "mpr-10936.98", 0x000002, 0x20000, CRC(ada70d64) SHA1(ba6203b0fdb4c4998b7be5b446eb8354751d553a) )
@@ -1747,13 +2211,13 @@ ROM_START( aburner2 )
ROM_LOAD32_BYTE( "epr-11118.101", 0x180002, 0x20000, CRC(8f38540b) SHA1(1fdfb157d1aca96cb635bd3d64f94545eb88c133) )
ROM_LOAD32_BYTE( "epr-11119.105", 0x180003, 0x20000, CRC(d0343a8e) SHA1(8c0c0addb6dfd0ea04c3900a9f7f7c731ca6e9ea) )
- ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
+ ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
ROM_LOAD( "epr-10922.40", 0x000000, 0x10000, CRC(b49183d4) SHA1(71d87bfbce858049ccde9597ab15575b3cdba892) )
- ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
ROM_LOAD( "epr-11112.17", 0x00000, 0x10000, CRC(d777fc6d) SHA1(46ce1c3875437044c0a172960d560d6acd6eaa92) )
- ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
ROM_LOAD( "mpr-10931.11", 0x00000, 0x20000, CRC(9209068f) SHA1(01f3dda1c066d00080c55f2c86c506b6b2407f98) )
ROM_LOAD( "mpr-10930.12", 0x20000, 0x20000, CRC(6493368b) SHA1(328aff19ff1d1344e9115f519d3962390c4e5ba4) )
ROM_LOAD( "epr-11102.13", 0x40000, 0x20000, CRC(6c07c78d) SHA1(3868b1824f43e4f2b4fbcd9274bfb3000c889d12) )
@@ -1765,20 +2229,20 @@ ROM_END
// Sega Game ID #: 834-6335-04 AFTER BURNER
//
ROM_START( aburner2g )
- ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "epr-11173a.58", 0x00000, 0x20000, CRC(cbf480f4) SHA1(f5bab7b2889cdd3f3f2a3e9edd3f17b4d2a5b8a9) )
ROM_LOAD16_BYTE( "epr-11174a.63", 0x00001, 0x20000, CRC(ed7cba77) SHA1(e81f24fa93329ad25150eada7717cce55fa3887d) )
- ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
+ ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
ROM_LOAD16_BYTE( "epr-11109.20", 0x00000, 0x20000, CRC(85a0fe07) SHA1(5a3a8fda6cb4898cfece4ec865b81b9b60f9ad55) )
ROM_LOAD16_BYTE( "epr-11110.29", 0x00001, 0x20000, CRC(f3d6797c) SHA1(17487b89ddbfbcc32a0b52268259f1c8d10fd0b2) )
- ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
ROM_LOAD( "epr-11115.154", 0x00000, 0x10000, CRC(e8e32921) SHA1(30a96e6b514a475c778296228ba5b6fb96b211b0) )
ROM_LOAD( "epr-11114.153", 0x10000, 0x10000, CRC(2e97f633) SHA1(074125c106dd00785903b2e10cd7e28d5036eb60) )
ROM_LOAD( "epr-11113.152", 0x20000, 0x10000, CRC(36058c8c) SHA1(52befe6c6c53f10b6fd4971098abc8f8d3eef9d4) )
- ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
ROM_LOAD32_BYTE( "mpr-10932.90", 0x000000, 0x20000, CRC(cc0821d6) SHA1(22e84419a585209bbda1466d2180504c316a9b7f) ) // First 8 roms are MPR, the rest are EPR
ROM_LOAD32_BYTE( "mpr-10934.94", 0x000001, 0x20000, CRC(4a51b1fa) SHA1(2eed018a5a1e935bb72b6f440a794466a1397dc5) )
ROM_LOAD32_BYTE( "mpr-10936.98", 0x000002, 0x20000, CRC(ada70d64) SHA1(ba6203b0fdb4c4998b7be5b446eb8354751d553a) )
@@ -1796,13 +2260,13 @@ ROM_START( aburner2g )
ROM_LOAD32_BYTE( "epr-11118.101", 0x180002, 0x20000, CRC(8f38540b) SHA1(1fdfb157d1aca96cb635bd3d64f94545eb88c133) )
ROM_LOAD32_BYTE( "epr-11119.105", 0x180003, 0x20000, CRC(d0343a8e) SHA1(8c0c0addb6dfd0ea04c3900a9f7f7c731ca6e9ea) )
- ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
+ ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
ROM_LOAD( "epr-10922.40", 0x000000, 0x10000, CRC(b49183d4) SHA1(71d87bfbce858049ccde9597ab15575b3cdba892) )
- ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
ROM_LOAD( "epr-11112.17", 0x00000, 0x10000, CRC(d777fc6d) SHA1(46ce1c3875437044c0a172960d560d6acd6eaa92) )
- ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
ROM_LOAD( "mpr-10931.11", 0x00000, 0x20000, CRC(9209068f) SHA1(01f3dda1c066d00080c55f2c86c506b6b2407f98) ) // There is known to exist German Sample roms
ROM_LOAD( "mpr-10930.12", 0x20000, 0x20000, CRC(6493368b) SHA1(328aff19ff1d1344e9115f519d3962390c4e5ba4) )
ROM_LOAD( "epr-10929.13", 0x40000, 0x20000, CRC(6c07c78d) SHA1(3868b1824f43e4f2b4fbcd9274bfb3000c889d12) )
@@ -1817,7 +2281,7 @@ ROM_END
// Sega game ID# 834-7218-02
//
ROM_START( loffire )
- ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "epr-12849.58", 0x000000, 0x20000, CRC(61cfd2fe) SHA1(b47ae9cdf741574ab9128dd3556b1ef35e81a149) )
ROM_LOAD16_BYTE( "epr-12850.63", 0x000001, 0x20000, CRC(14598f2a) SHA1(13a51529ed32acefd733d9f638621c3e023dbd6d) )
@@ -1831,21 +2295,67 @@ ROM_START( loffire )
// Nicola Salmoria
//
- ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
+ ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 ) // decryption key
ROM_LOAD( "317-0136.key", 0x0000, 0x2000, BAD_DUMP CRC(344bfe0c) SHA1(f6bb8045b46f90f8abadf1dc2e1ae1d7cef9c810) )
- ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
+ ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
+ ROM_LOAD16_BYTE( "epr-12804.20", 0x000000, 0x20000, CRC(b853480e) SHA1(de0889e99251da7ea50316282ebf6f434cc2db11) )
+ ROM_LOAD16_BYTE( "epr-12805.29", 0x000001, 0x20000, CRC(4a7200c3) SHA1(3e6febed36a55438e0d24441b68f2b7952791584) )
+ ROM_LOAD16_BYTE( "epr-12802.21", 0x040000, 0x20000, CRC(d746bb39) SHA1(08dc8cf565997c7e52329961bf7a229a15900cff) )
+ ROM_LOAD16_BYTE( "epr-12803.30", 0x040001, 0x20000, CRC(c1d9e751) SHA1(98b3d0b3b31702f6234b5fea2b82d512fc5d3ad2) )
+
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
+ ROM_LOAD( "opr-12791.154", 0x00000, 0x10000, CRC(acfa69ba) SHA1(353c43dda6c2282a785646b0a58c90cfd173cd7b) )
+ ROM_LOAD( "opr-12792.153", 0x10000, 0x10000, CRC(e506723c) SHA1(d04dc29686fe348f8f715d14c027de0e508c770f) )
+ ROM_LOAD( "opr-12793.152", 0x20000, 0x10000, CRC(0ce8cce3) SHA1(1a6b1af2b0b9e8240e681f7b15e9d08595753fe6) )
+
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
+ ROM_LOAD32_BYTE( "epr-12787.90", 0x000000, 0x20000, CRC(6431a3a6) SHA1(63a732b7dfd2b83fe7684d47fea26063c4ece099) )
+ ROM_LOAD32_BYTE( "epr-12788.94", 0x000001, 0x20000, CRC(1982a0ce) SHA1(e4756f31b0094e0e9ddb2df53a5c938ac5559230) )
+ ROM_LOAD32_BYTE( "epr-12789.98", 0x000002, 0x20000, CRC(97d03274) SHA1(b4b9921db53949bc8e91f8a2992e89c172fe8893) )
+ ROM_LOAD32_BYTE( "epr-12790.102", 0x000003, 0x20000, CRC(816e76e6) SHA1(34d2a662af96f40f40a77497cbc0a3374fe9a34f) )
+ ROM_LOAD32_BYTE( "epr-12783.91", 0x080000, 0x20000, CRC(c13feea9) SHA1(c0c3097903079deec22b0f8de76927f7570ac0f6) )
+ ROM_LOAD32_BYTE( "epr-12784.95", 0x080001, 0x20000, CRC(39b94c65) SHA1(4deae3bf7bb4e04b011d23292a0c68471758e7ec) )
+ ROM_LOAD32_BYTE( "epr-12785.99", 0x080002, 0x20000, CRC(05ed0059) SHA1(b7404a0f4f15ffdbd08673683cea22340de3f5f9) )
+ ROM_LOAD32_BYTE( "epr-12786.103", 0x080003, 0x20000, CRC(a4123165) SHA1(024597dcfbd3be932626b84dbd6e7d38a7a0195d) )
+ ROM_LOAD32_BYTE( "epr-12779.92", 0x100000, 0x20000, CRC(ae58af7c) SHA1(8c57f2d0b6584dd606afc5ecff039479e5068420) )
+ ROM_LOAD32_BYTE( "epr-12780.96", 0x100001, 0x20000, CRC(ee670c1e) SHA1(8a9e0808d40e210abf6c49ef5c0774d8c0d6602b) )
+ ROM_LOAD32_BYTE( "epr-12781.100", 0x100002, 0x20000, CRC(538f6bc5) SHA1(4f294ef0aa9c7e2ac7e92518d938f0870f2e46d1) )
+ ROM_LOAD32_BYTE( "epr-12782.104", 0x100003, 0x20000, CRC(5acc34f7) SHA1(ef27ab818f50e59a122b9fc65b13442d9fee307c) )
+ ROM_LOAD32_BYTE( "epr-12775.93", 0x180000, 0x20000, CRC(693056ec) SHA1(82d10d960441811b9369295bbb60fa7bfc5457a3) )
+ ROM_LOAD32_BYTE( "epr-12776.97", 0x180001, 0x20000, CRC(61efbdfd) SHA1(67f267e0673c64ce77669826ea1d11cb79d0ccc1) )
+ ROM_LOAD32_BYTE( "epr-12777.101", 0x180002, 0x20000, CRC(29d5b953) SHA1(0c932a67e2aecffa7a1dbaa587c96214e1a2cc7f) )
+ ROM_LOAD32_BYTE( "epr-12778.105", 0x180003, 0x20000, CRC(2fb68e07) SHA1(8685e72aed115cbc9c6c7511217996a573b30d16) )
+
+ ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
+ // none
+
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-12798.17", 0x00000, 0x10000, CRC(0587738d) SHA1(24c79b0c73616d5532a49a2c9121dfabe3a80c7d) )
+
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_LOAD( "epr-12799.11", 0x00000, 0x20000, CRC(bc60181c) SHA1(3c89161348db7cafb5636ab4eaba91fbd3541f90) )
+ ROM_LOAD( "epr-12800.12", 0x20000, 0x20000, CRC(1158c1a3) SHA1(e1d664a203eed5a0130b39ced7bea8328f06f107) )
+ ROM_LOAD( "epr-12801.13", 0x40000, 0x20000, CRC(2d6567c4) SHA1(542be9d8e91cf2df18d95f4e259cfda0560697cb) )
+ROM_END
+
+ROM_START( loffired )
+ ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-12849.58", 0x000000, 0x20000, CRC(dfd1ab45) SHA1(dac358b6f50999deaed422578c2dcdfb492c81c9) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12850.63", 0x000001, 0x20000, CRC(90889ae9) SHA1(254f8934e8a0329e28a38c71c4bd628ef7237ca8) )
+
+ ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
ROM_LOAD16_BYTE( "epr-12804.20", 0x000000, 0x20000, CRC(b853480e) SHA1(de0889e99251da7ea50316282ebf6f434cc2db11) )
ROM_LOAD16_BYTE( "epr-12805.29", 0x000001, 0x20000, CRC(4a7200c3) SHA1(3e6febed36a55438e0d24441b68f2b7952791584) )
ROM_LOAD16_BYTE( "epr-12802.21", 0x040000, 0x20000, CRC(d746bb39) SHA1(08dc8cf565997c7e52329961bf7a229a15900cff) )
ROM_LOAD16_BYTE( "epr-12803.30", 0x040001, 0x20000, CRC(c1d9e751) SHA1(98b3d0b3b31702f6234b5fea2b82d512fc5d3ad2) )
- ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
ROM_LOAD( "opr-12791.154", 0x00000, 0x10000, CRC(acfa69ba) SHA1(353c43dda6c2282a785646b0a58c90cfd173cd7b) )
ROM_LOAD( "opr-12792.153", 0x10000, 0x10000, CRC(e506723c) SHA1(d04dc29686fe348f8f715d14c027de0e508c770f) )
ROM_LOAD( "opr-12793.152", 0x20000, 0x10000, CRC(0ce8cce3) SHA1(1a6b1af2b0b9e8240e681f7b15e9d08595753fe6) )
- ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
ROM_LOAD32_BYTE( "epr-12787.90", 0x000000, 0x20000, CRC(6431a3a6) SHA1(63a732b7dfd2b83fe7684d47fea26063c4ece099) )
ROM_LOAD32_BYTE( "epr-12788.94", 0x000001, 0x20000, CRC(1982a0ce) SHA1(e4756f31b0094e0e9ddb2df53a5c938ac5559230) )
ROM_LOAD32_BYTE( "epr-12789.98", 0x000002, 0x20000, CRC(97d03274) SHA1(b4b9921db53949bc8e91f8a2992e89c172fe8893) )
@@ -1863,13 +2373,13 @@ ROM_START( loffire )
ROM_LOAD32_BYTE( "epr-12777.101", 0x180002, 0x20000, CRC(29d5b953) SHA1(0c932a67e2aecffa7a1dbaa587c96214e1a2cc7f) )
ROM_LOAD32_BYTE( "epr-12778.105", 0x180003, 0x20000, CRC(2fb68e07) SHA1(8685e72aed115cbc9c6c7511217996a573b30d16) )
- ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
+ ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
// none
- ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
ROM_LOAD( "epr-12798.17", 0x00000, 0x10000, CRC(0587738d) SHA1(24c79b0c73616d5532a49a2c9121dfabe3a80c7d) )
- ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
ROM_LOAD( "epr-12799.11", 0x00000, 0x20000, CRC(bc60181c) SHA1(3c89161348db7cafb5636ab4eaba91fbd3541f90) )
ROM_LOAD( "epr-12800.12", 0x20000, 0x20000, CRC(1158c1a3) SHA1(e1d664a203eed5a0130b39ced7bea8328f06f107) )
ROM_LOAD( "epr-12801.13", 0x40000, 0x20000, CRC(2d6567c4) SHA1(542be9d8e91cf2df18d95f4e259cfda0560697cb) )
@@ -1881,25 +2391,25 @@ ROM_END
// Sega game ID# 834-7218-01
//
ROM_START( loffireu )
- ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "epr-12847a.58", 0x000000, 0x20000, CRC(c50eb4ed) SHA1(18a46c97aec2fefd160338c1760b6ee367dcb57f) )
ROM_LOAD16_BYTE( "epr-12848a.63", 0x000001, 0x20000, CRC(f8ff8640) SHA1(193bb8f42f3c5011ad1fbf87215f012de5e950fb) )
- ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
+ ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 ) // decryption key
ROM_LOAD( "317-0135.key", 0x0000, 0x2000, CRC(c53ad019) SHA1(7e6dc2b35ebfeefb507d4d03f5a59574944177d1) )
- ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
+ ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
ROM_LOAD16_BYTE( "epr-12804.20", 0x000000, 0x20000, CRC(b853480e) SHA1(de0889e99251da7ea50316282ebf6f434cc2db11) )
ROM_LOAD16_BYTE( "epr-12805.29", 0x000001, 0x20000, CRC(4a7200c3) SHA1(3e6febed36a55438e0d24441b68f2b7952791584) )
ROM_LOAD16_BYTE( "epr-12802.21", 0x040000, 0x20000, CRC(d746bb39) SHA1(08dc8cf565997c7e52329961bf7a229a15900cff) )
ROM_LOAD16_BYTE( "epr-12803.30", 0x040001, 0x20000, CRC(c1d9e751) SHA1(98b3d0b3b31702f6234b5fea2b82d512fc5d3ad2) )
- ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
ROM_LOAD( "opr-12791.154", 0x00000, 0x10000, CRC(acfa69ba) SHA1(353c43dda6c2282a785646b0a58c90cfd173cd7b) )
ROM_LOAD( "opr-12792.153", 0x10000, 0x10000, CRC(e506723c) SHA1(d04dc29686fe348f8f715d14c027de0e508c770f) )
ROM_LOAD( "opr-12793.152", 0x20000, 0x10000, CRC(0ce8cce3) SHA1(1a6b1af2b0b9e8240e681f7b15e9d08595753fe6) )
- ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
ROM_LOAD32_BYTE( "epr-12787.90", 0x000000, 0x20000, CRC(6431a3a6) SHA1(63a732b7dfd2b83fe7684d47fea26063c4ece099) )
ROM_LOAD32_BYTE( "epr-12788.94", 0x000001, 0x20000, CRC(1982a0ce) SHA1(e4756f31b0094e0e9ddb2df53a5c938ac5559230) )
ROM_LOAD32_BYTE( "epr-12789.98", 0x000002, 0x20000, CRC(97d03274) SHA1(b4b9921db53949bc8e91f8a2992e89c172fe8893) )
@@ -1917,13 +2427,59 @@ ROM_START( loffireu )
ROM_LOAD32_BYTE( "epr-12777.101", 0x180002, 0x20000, CRC(29d5b953) SHA1(0c932a67e2aecffa7a1dbaa587c96214e1a2cc7f) )
ROM_LOAD32_BYTE( "epr-12778.105", 0x180003, 0x20000, CRC(2fb68e07) SHA1(8685e72aed115cbc9c6c7511217996a573b30d16) )
- ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
+ ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
// none
- ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
ROM_LOAD( "epr-12798.17", 0x00000, 0x10000, CRC(0587738d) SHA1(24c79b0c73616d5532a49a2c9121dfabe3a80c7d) )
- ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_LOAD( "epr-12799.11", 0x00000, 0x20000, CRC(bc60181c) SHA1(3c89161348db7cafb5636ab4eaba91fbd3541f90) )
+ ROM_LOAD( "epr-12800.12", 0x20000, 0x20000, CRC(1158c1a3) SHA1(e1d664a203eed5a0130b39ced7bea8328f06f107) )
+ ROM_LOAD( "epr-12801.13", 0x40000, 0x20000, CRC(2d6567c4) SHA1(542be9d8e91cf2df18d95f4e259cfda0560697cb) )
+ROM_END
+
+ROM_START( loffireud )
+ ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-12847a.58", 0x000000, 0x20000, CRC(74d270d0) SHA1(88819b4a4b49e4f02fdb4a617e2548a82ce7e835) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12848a.63", 0x000001, 0x20000, CRC(7f27e058) SHA1(98401f992e4feb9141dc802edaaaa09eedfa8817) )
+
+ ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
+ ROM_LOAD16_BYTE( "epr-12804.20", 0x000000, 0x20000, CRC(b853480e) SHA1(de0889e99251da7ea50316282ebf6f434cc2db11) )
+ ROM_LOAD16_BYTE( "epr-12805.29", 0x000001, 0x20000, CRC(4a7200c3) SHA1(3e6febed36a55438e0d24441b68f2b7952791584) )
+ ROM_LOAD16_BYTE( "epr-12802.21", 0x040000, 0x20000, CRC(d746bb39) SHA1(08dc8cf565997c7e52329961bf7a229a15900cff) )
+ ROM_LOAD16_BYTE( "epr-12803.30", 0x040001, 0x20000, CRC(c1d9e751) SHA1(98b3d0b3b31702f6234b5fea2b82d512fc5d3ad2) )
+
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
+ ROM_LOAD( "opr-12791.154", 0x00000, 0x10000, CRC(acfa69ba) SHA1(353c43dda6c2282a785646b0a58c90cfd173cd7b) )
+ ROM_LOAD( "opr-12792.153", 0x10000, 0x10000, CRC(e506723c) SHA1(d04dc29686fe348f8f715d14c027de0e508c770f) )
+ ROM_LOAD( "opr-12793.152", 0x20000, 0x10000, CRC(0ce8cce3) SHA1(1a6b1af2b0b9e8240e681f7b15e9d08595753fe6) )
+
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
+ ROM_LOAD32_BYTE( "epr-12787.90", 0x000000, 0x20000, CRC(6431a3a6) SHA1(63a732b7dfd2b83fe7684d47fea26063c4ece099) )
+ ROM_LOAD32_BYTE( "epr-12788.94", 0x000001, 0x20000, CRC(1982a0ce) SHA1(e4756f31b0094e0e9ddb2df53a5c938ac5559230) )
+ ROM_LOAD32_BYTE( "epr-12789.98", 0x000002, 0x20000, CRC(97d03274) SHA1(b4b9921db53949bc8e91f8a2992e89c172fe8893) )
+ ROM_LOAD32_BYTE( "epr-12790.102", 0x000003, 0x20000, CRC(816e76e6) SHA1(34d2a662af96f40f40a77497cbc0a3374fe9a34f) )
+ ROM_LOAD32_BYTE( "epr-12783.91", 0x080000, 0x20000, CRC(c13feea9) SHA1(c0c3097903079deec22b0f8de76927f7570ac0f6) )
+ ROM_LOAD32_BYTE( "epr-12784.95", 0x080001, 0x20000, CRC(39b94c65) SHA1(4deae3bf7bb4e04b011d23292a0c68471758e7ec) )
+ ROM_LOAD32_BYTE( "epr-12785.99", 0x080002, 0x20000, CRC(05ed0059) SHA1(b7404a0f4f15ffdbd08673683cea22340de3f5f9) )
+ ROM_LOAD32_BYTE( "epr-12786.103", 0x080003, 0x20000, CRC(a4123165) SHA1(024597dcfbd3be932626b84dbd6e7d38a7a0195d) )
+ ROM_LOAD32_BYTE( "epr-12779.92", 0x100000, 0x20000, CRC(ae58af7c) SHA1(8c57f2d0b6584dd606afc5ecff039479e5068420) )
+ ROM_LOAD32_BYTE( "epr-12780.96", 0x100001, 0x20000, CRC(ee670c1e) SHA1(8a9e0808d40e210abf6c49ef5c0774d8c0d6602b) )
+ ROM_LOAD32_BYTE( "epr-12781.100", 0x100002, 0x20000, CRC(538f6bc5) SHA1(4f294ef0aa9c7e2ac7e92518d938f0870f2e46d1) )
+ ROM_LOAD32_BYTE( "epr-12782.104", 0x100003, 0x20000, CRC(5acc34f7) SHA1(ef27ab818f50e59a122b9fc65b13442d9fee307c) )
+ ROM_LOAD32_BYTE( "epr-12775.93", 0x180000, 0x20000, CRC(693056ec) SHA1(82d10d960441811b9369295bbb60fa7bfc5457a3) )
+ ROM_LOAD32_BYTE( "epr-12776.97", 0x180001, 0x20000, CRC(61efbdfd) SHA1(67f267e0673c64ce77669826ea1d11cb79d0ccc1) )
+ ROM_LOAD32_BYTE( "epr-12777.101", 0x180002, 0x20000, CRC(29d5b953) SHA1(0c932a67e2aecffa7a1dbaa587c96214e1a2cc7f) )
+ ROM_LOAD32_BYTE( "epr-12778.105", 0x180003, 0x20000, CRC(2fb68e07) SHA1(8685e72aed115cbc9c6c7511217996a573b30d16) )
+
+ ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
+ // none
+
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-12798.17", 0x00000, 0x10000, CRC(0587738d) SHA1(24c79b0c73616d5532a49a2c9121dfabe3a80c7d) )
+
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
ROM_LOAD( "epr-12799.11", 0x00000, 0x20000, CRC(bc60181c) SHA1(3c89161348db7cafb5636ab4eaba91fbd3541f90) )
ROM_LOAD( "epr-12800.12", 0x20000, 0x20000, CRC(1158c1a3) SHA1(e1d664a203eed5a0130b39ced7bea8328f06f107) )
ROM_LOAD( "epr-12801.13", 0x40000, 0x20000, CRC(2d6567c4) SHA1(542be9d8e91cf2df18d95f4e259cfda0560697cb) )
@@ -1935,28 +2491,28 @@ ROM_END
// Sega game ID# 834-7218
//
ROM_START( loffirej )
- ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
// repaired using data from the loffire set since they are mostly identical
// when decrypted, they pass the rom check so are assumed to be ok but double
// checking them when possible never hurts
ROM_LOAD16_BYTE( "epr-12794.58", 0x000000, 0x20000, CRC(1e588992) SHA1(fe7107e83c12643e7d22fd4b4cd0c7bcff0d84c3) )
ROM_LOAD16_BYTE( "epr-12795.63", 0x000001, 0x20000, CRC(d43d7427) SHA1(ecbd425bab6aa65ffbd441d6a0936ac055d5f06d) )
- ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
+ ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 ) // decryption key
ROM_LOAD( "317-0134.key", 0x0000, 0x2000, CRC(732626d4) SHA1(75ed7ca417758dd62afb4edbb9daee754932c392) )
- ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
+ ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
ROM_LOAD16_BYTE( "epr-12804.20", 0x000000, 0x20000, CRC(b853480e) SHA1(de0889e99251da7ea50316282ebf6f434cc2db11) )
ROM_LOAD16_BYTE( "epr-12805.29", 0x000001, 0x20000, CRC(4a7200c3) SHA1(3e6febed36a55438e0d24441b68f2b7952791584) )
ROM_LOAD16_BYTE( "epr-12802.21", 0x040000, 0x20000, CRC(d746bb39) SHA1(08dc8cf565997c7e52329961bf7a229a15900cff) )
ROM_LOAD16_BYTE( "epr-12803.30", 0x040001, 0x20000, CRC(c1d9e751) SHA1(98b3d0b3b31702f6234b5fea2b82d512fc5d3ad2) )
- ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
ROM_LOAD( "opr-12791.154", 0x00000, 0x10000, CRC(acfa69ba) SHA1(353c43dda6c2282a785646b0a58c90cfd173cd7b) )
ROM_LOAD( "opr-12792.153", 0x10000, 0x10000, CRC(e506723c) SHA1(d04dc29686fe348f8f715d14c027de0e508c770f) )
ROM_LOAD( "opr-12793.152", 0x20000, 0x10000, CRC(0ce8cce3) SHA1(1a6b1af2b0b9e8240e681f7b15e9d08595753fe6) )
- ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
ROM_LOAD32_BYTE( "epr-12787.90", 0x000000, 0x20000, CRC(6431a3a6) SHA1(63a732b7dfd2b83fe7684d47fea26063c4ece099) )
ROM_LOAD32_BYTE( "epr-12788.94", 0x000001, 0x20000, CRC(1982a0ce) SHA1(e4756f31b0094e0e9ddb2df53a5c938ac5559230) )
ROM_LOAD32_BYTE( "epr-12789.98", 0x000002, 0x20000, CRC(97d03274) SHA1(b4b9921db53949bc8e91f8a2992e89c172fe8893) )
@@ -1974,18 +2530,63 @@ ROM_START( loffirej )
ROM_LOAD32_BYTE( "epr-12777.101", 0x180002, 0x20000, CRC(29d5b953) SHA1(0c932a67e2aecffa7a1dbaa587c96214e1a2cc7f) )
ROM_LOAD32_BYTE( "epr-12778.105", 0x180003, 0x20000, CRC(2fb68e07) SHA1(8685e72aed115cbc9c6c7511217996a573b30d16) )
- ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
+ ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
// none
- ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
ROM_LOAD( "epr-12798.17", 0x00000, 0x10000, CRC(0587738d) SHA1(24c79b0c73616d5532a49a2c9121dfabe3a80c7d) )
- ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
ROM_LOAD( "epr-12799.11", 0x00000, 0x20000, CRC(bc60181c) SHA1(3c89161348db7cafb5636ab4eaba91fbd3541f90) )
ROM_LOAD( "epr-12800.12", 0x20000, 0x20000, CRC(1158c1a3) SHA1(e1d664a203eed5a0130b39ced7bea8328f06f107) )
ROM_LOAD( "epr-12801.13", 0x40000, 0x20000, CRC(2d6567c4) SHA1(542be9d8e91cf2df18d95f4e259cfda0560697cb) )
ROM_END
+ROM_START( loffirejd )
+ ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-12794.58", 0x000000, 0x20000, CRC(795f110d) SHA1(1592c618d21932490555c5fdf376429dfae00a95) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12795.63", 0x000001, 0x20000, CRC(87c52aaa) SHA1(179d735966e46dc2e9d61047038224699c1956ed) )
+
+ ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
+ ROM_LOAD16_BYTE( "epr-12804.20", 0x000000, 0x20000, CRC(b853480e) SHA1(de0889e99251da7ea50316282ebf6f434cc2db11) )
+ ROM_LOAD16_BYTE( "epr-12805.29", 0x000001, 0x20000, CRC(4a7200c3) SHA1(3e6febed36a55438e0d24441b68f2b7952791584) )
+ ROM_LOAD16_BYTE( "epr-12802.21", 0x040000, 0x20000, CRC(d746bb39) SHA1(08dc8cf565997c7e52329961bf7a229a15900cff) )
+ ROM_LOAD16_BYTE( "epr-12803.30", 0x040001, 0x20000, CRC(c1d9e751) SHA1(98b3d0b3b31702f6234b5fea2b82d512fc5d3ad2) )
+
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
+ ROM_LOAD( "opr-12791.154", 0x00000, 0x10000, CRC(acfa69ba) SHA1(353c43dda6c2282a785646b0a58c90cfd173cd7b) )
+ ROM_LOAD( "opr-12792.153", 0x10000, 0x10000, CRC(e506723c) SHA1(d04dc29686fe348f8f715d14c027de0e508c770f) )
+ ROM_LOAD( "opr-12793.152", 0x20000, 0x10000, CRC(0ce8cce3) SHA1(1a6b1af2b0b9e8240e681f7b15e9d08595753fe6) )
+
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
+ ROM_LOAD32_BYTE( "epr-12787.90", 0x000000, 0x20000, CRC(6431a3a6) SHA1(63a732b7dfd2b83fe7684d47fea26063c4ece099) )
+ ROM_LOAD32_BYTE( "epr-12788.94", 0x000001, 0x20000, CRC(1982a0ce) SHA1(e4756f31b0094e0e9ddb2df53a5c938ac5559230) )
+ ROM_LOAD32_BYTE( "epr-12789.98", 0x000002, 0x20000, CRC(97d03274) SHA1(b4b9921db53949bc8e91f8a2992e89c172fe8893) )
+ ROM_LOAD32_BYTE( "epr-12790.102", 0x000003, 0x20000, CRC(816e76e6) SHA1(34d2a662af96f40f40a77497cbc0a3374fe9a34f) )
+ ROM_LOAD32_BYTE( "epr-12783.91", 0x080000, 0x20000, CRC(c13feea9) SHA1(c0c3097903079deec22b0f8de76927f7570ac0f6) )
+ ROM_LOAD32_BYTE( "epr-12784.95", 0x080001, 0x20000, CRC(39b94c65) SHA1(4deae3bf7bb4e04b011d23292a0c68471758e7ec) )
+ ROM_LOAD32_BYTE( "epr-12785.99", 0x080002, 0x20000, CRC(05ed0059) SHA1(b7404a0f4f15ffdbd08673683cea22340de3f5f9) )
+ ROM_LOAD32_BYTE( "epr-12786.103", 0x080003, 0x20000, CRC(a4123165) SHA1(024597dcfbd3be932626b84dbd6e7d38a7a0195d) )
+ ROM_LOAD32_BYTE( "epr-12779.92", 0x100000, 0x20000, CRC(ae58af7c) SHA1(8c57f2d0b6584dd606afc5ecff039479e5068420) )
+ ROM_LOAD32_BYTE( "epr-12780.96", 0x100001, 0x20000, CRC(ee670c1e) SHA1(8a9e0808d40e210abf6c49ef5c0774d8c0d6602b) )
+ ROM_LOAD32_BYTE( "epr-12781.100", 0x100002, 0x20000, CRC(538f6bc5) SHA1(4f294ef0aa9c7e2ac7e92518d938f0870f2e46d1) )
+ ROM_LOAD32_BYTE( "epr-12782.104", 0x100003, 0x20000, CRC(5acc34f7) SHA1(ef27ab818f50e59a122b9fc65b13442d9fee307c) )
+ ROM_LOAD32_BYTE( "epr-12775.93", 0x180000, 0x20000, CRC(693056ec) SHA1(82d10d960441811b9369295bbb60fa7bfc5457a3) )
+ ROM_LOAD32_BYTE( "epr-12776.97", 0x180001, 0x20000, CRC(61efbdfd) SHA1(67f267e0673c64ce77669826ea1d11cb79d0ccc1) )
+ ROM_LOAD32_BYTE( "epr-12777.101", 0x180002, 0x20000, CRC(29d5b953) SHA1(0c932a67e2aecffa7a1dbaa587c96214e1a2cc7f) )
+ ROM_LOAD32_BYTE( "epr-12778.105", 0x180003, 0x20000, CRC(2fb68e07) SHA1(8685e72aed115cbc9c6c7511217996a573b30d16) )
+
+ ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
+ // none
+
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-12798.17", 0x00000, 0x10000, CRC(0587738d) SHA1(24c79b0c73616d5532a49a2c9121dfabe3a80c7d) )
+
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_LOAD( "epr-12799.11", 0x00000, 0x20000, CRC(bc60181c) SHA1(3c89161348db7cafb5636ab4eaba91fbd3541f90) )
+ ROM_LOAD( "epr-12800.12", 0x20000, 0x20000, CRC(1158c1a3) SHA1(e1d664a203eed5a0130b39ced7bea8328f06f107) )
+ ROM_LOAD( "epr-12801.13", 0x40000, 0x20000, CRC(2d6567c4) SHA1(542be9d8e91cf2df18d95f4e259cfda0560697cb) )
+ROM_END
//*************************************************************************************************************************
//*************************************************************************************************************************
@@ -1996,27 +2597,75 @@ ROM_END
// GAME BD NO. 834-6493-03 (Uses "MPR" mask roms) or 834-6493-05 (Uses "EPR" eproms)
//
ROM_START( thndrbld )
- ROM_REGION( 0x100000, "maincpu", 0 ) // 68000 code
+ ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "epr-11405.ic58", 0x000000, 0x20000, CRC(e057dd5a) SHA1(4c032db4752dfb44dba3def5ee5377fffd94b79c) )
ROM_LOAD16_BYTE( "epr-11406.ic63", 0x000001, 0x20000, CRC(c6b994b8) SHA1(098b2ae30c4aafea35222369d60f8e89f87639eb) )
ROM_LOAD16_BYTE( "epr-11306.ic57", 0x040000, 0x20000, CRC(4b95f2b4) SHA1(9e0ff898a2af05c35db3551e52c7485748698c28) )
ROM_LOAD16_BYTE( "epr-11307.ic62", 0x040001, 0x20000, CRC(2d6833e4) SHA1(b39a744370014237121f0010d18897e63f7058cf) )
- ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
+ ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 ) // decryption key
ROM_LOAD( "317-0056.key", 0x0000, 0x2000, CRC(b40cd2c5) SHA1(865e70bce4f55f6702960d6eaa780b7b1f880e41) )
- ROM_REGION( 0x100000, "subcpu", 0 ) // 2nd 68000 code
+ ROM_REGION( 0x100000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
+ ROM_LOAD16_BYTE( "epr-11390.ic20", 0x000000, 0x20000, CRC(ed988fdb) SHA1(b809b0b7dabd5cb29f5387522c6dfb993d1d0271) )
+ ROM_LOAD16_BYTE( "epr-11391.ic29", 0x000001, 0x20000, CRC(12523bc1) SHA1(54635d6c4cc97cf4148dcac3bb2056fc414252f7) )
+ ROM_LOAD16_BYTE( "epr-11310.ic21", 0x040000, 0x20000, CRC(5d9fa02c) SHA1(0ca71e35cf9740e38a52960f7d1ef96e7e1dda94) )
+ ROM_LOAD16_BYTE( "epr-11311.ic30", 0x040001, 0x20000, CRC(483de21b) SHA1(871f0e856dcc81dcef1d9846261b3c011fa26dde) )
+
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-11314.ic154", 0x00000, 0x10000, CRC(d4f954a9) SHA1(93ee8cf8fcf4e1d0dd58329bba9b594431193449) )
+ ROM_LOAD( "epr-11315.ic153", 0x10000, 0x10000, CRC(35813088) SHA1(ea1ec982d1509efb26e7b6a150825a6a905efed9) )
+ ROM_LOAD( "epr-11316.ic152", 0x20000, 0x10000, CRC(84290dff) SHA1(c13fb6ef12a991f79a95072f953a02b5c992aa2d) )
+
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
+ ROM_LOAD32_BYTE( "epr-11323.ic90", 0x000000, 0x20000, CRC(27e40735) SHA1(284ddb88efe741fb78199ea619c9b230ee689803) )
+ ROM_LOAD32_BYTE( "epr-11322.ic94", 0x000001, 0x20000, CRC(10364d74) SHA1(393b19a972b5d8817ffd438f13ded73cd58ebe56) )
+ ROM_LOAD32_BYTE( "epr-11321.ic98", 0x000002, 0x20000, CRC(8e738f58) SHA1(9f2dceebf01e582cf60f072ae411000d8503894b) )
+ ROM_LOAD32_BYTE( "epr-11320.ic102", 0x000003, 0x20000, CRC(a95c76b8) SHA1(cda62f3c25b9414a523c2fc5d109031ed560069e) )
+ ROM_LOAD32_BYTE( "epr-11327.ic91", 0x080000, 0x20000, CRC(deae90f1) SHA1(c73c23bab949041242302cec13d653dcc71bb944) )
+ ROM_LOAD32_BYTE( "epr-11326.ic95", 0x080001, 0x20000, CRC(29198403) SHA1(3ecf315a0e6b3ed5005f8bdcb2e2a884c8b176c7) )
+ ROM_LOAD32_BYTE( "epr-11325.ic99", 0x080002, 0x20000, CRC(b9e98ae9) SHA1(c4932e2590b10d54fa8ded94593dc4203fccc60d) )
+ ROM_LOAD32_BYTE( "epr-11324.ic103", 0x080003, 0x20000, CRC(9742b552) SHA1(922032264d469e943dfbcaaf57464efc638fcf73) )
+ ROM_LOAD32_BYTE( "epr-11331.ic92", 0x100000, 0x20000, CRC(3a2c042e) SHA1(c296ff222d156d3bdcb42bef321831f502830fd6) )
+ ROM_LOAD32_BYTE( "epr-11330.ic96", 0x100001, 0x20000, CRC(aa7c70c5) SHA1(b6fea17392b7821b8b3bba78002f9c1604f09edc) )
+ ROM_LOAD32_BYTE( "epr-11329.ic100", 0x100002, 0x20000, CRC(31b20257) SHA1(7ce10a94bce67b2d15d7b576b0f7d47389dc8948) )
+ ROM_LOAD32_BYTE( "epr-11328.ic104", 0x100003, 0x20000, CRC(da39e89c) SHA1(526549ce9112754c82743552eeebec63fe7ad968) )
+ ROM_LOAD32_BYTE( "epr-11395.ic93", 0x180000, 0x20000, CRC(90775579) SHA1(15a86071a105da40ec9c0c0074e342231fc030d0) ) //
+ ROM_LOAD32_BYTE( "epr-11394.ic97", 0x180001, 0x20000, CRC(5f2783be) SHA1(424510153a91902901f321f39738a862d6fba8e7) ) // different numbers?
+ ROM_LOAD32_BYTE( "epr-11393.ic101", 0x180002, 0x20000, CRC(525e2e1d) SHA1(6fd09f775e7e6cad8078513d1af0a8ff40fb1360) ) // replaced from original rev?
+ ROM_LOAD32_BYTE( "epr-11392.ic105", 0x180003, 0x20000, CRC(b4a382f7) SHA1(c03a05ba521f654db1a9c5f5717b7a15e5a29d4e) ) //
+
+ ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // Road Data
+ ROM_LOAD( "epr-11313.ic29", 0x00000, 0x10000, CRC(6a56c4c3) SHA1(c1b8023cb2ba4e96be052031c24b6ae424225c71) )
+
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-11396.ic17", 0x00000, 0x10000, CRC(d37b54a4) SHA1(c230fe7241a1f13ca13506d1492f348f506c40a7) )
+
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_LOAD( "epr-11317.ic11", 0x00000, 0x20000, CRC(d4e7ac1f) SHA1(ec5d6e4949938adf56e5613801ae56ff2c3dede5) )
+ ROM_LOAD( "epr-11318.ic12", 0x20000, 0x20000, CRC(70d3f02c) SHA1(391aac2bc5673e06150de27e19c7c6359da8ca82) )
+ ROM_LOAD( "epr-11319.ic13", 0x40000, 0x20000, CRC(50d9242e) SHA1(a106371bf680c3088ec61f07fc5c4ce467973c15) )
+ROM_END
+
+ROM_START( thndrbldd )
+ ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-11405.ic58", 0x000000, 0x20000, CRC(1642fd59) SHA1(92b95d97b1eef770983c993d357e06ecf6a2b29c) )
+ ROM_LOAD16_BYTE( "bootleg_epr-11406.ic63", 0x000001, 0x20000, CRC(aa87dd75) SHA1(4c61dfef69a68d9cab8fed0d2cbb28b751319049) )
+ ROM_LOAD16_BYTE( "epr-11306.ic57", 0x040000, 0x20000, CRC(4b95f2b4) SHA1(9e0ff898a2af05c35db3551e52c7485748698c28) )
+ ROM_LOAD16_BYTE( "epr-11307.ic62", 0x040001, 0x20000, CRC(2d6833e4) SHA1(b39a744370014237121f0010d18897e63f7058cf) )
+
+ ROM_REGION( 0x100000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
ROM_LOAD16_BYTE( "epr-11390.ic20", 0x000000, 0x20000, CRC(ed988fdb) SHA1(b809b0b7dabd5cb29f5387522c6dfb993d1d0271) )
ROM_LOAD16_BYTE( "epr-11391.ic29", 0x000001, 0x20000, CRC(12523bc1) SHA1(54635d6c4cc97cf4148dcac3bb2056fc414252f7) )
ROM_LOAD16_BYTE( "epr-11310.ic21", 0x040000, 0x20000, CRC(5d9fa02c) SHA1(0ca71e35cf9740e38a52960f7d1ef96e7e1dda94) )
ROM_LOAD16_BYTE( "epr-11311.ic30", 0x040001, 0x20000, CRC(483de21b) SHA1(871f0e856dcc81dcef1d9846261b3c011fa26dde) )
- ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
ROM_LOAD( "epr-11314.ic154", 0x00000, 0x10000, CRC(d4f954a9) SHA1(93ee8cf8fcf4e1d0dd58329bba9b594431193449) )
ROM_LOAD( "epr-11315.ic153", 0x10000, 0x10000, CRC(35813088) SHA1(ea1ec982d1509efb26e7b6a150825a6a905efed9) )
ROM_LOAD( "epr-11316.ic152", 0x20000, 0x10000, CRC(84290dff) SHA1(c13fb6ef12a991f79a95072f953a02b5c992aa2d) )
- ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
ROM_LOAD32_BYTE( "epr-11323.ic90", 0x000000, 0x20000, CRC(27e40735) SHA1(284ddb88efe741fb78199ea619c9b230ee689803) )
ROM_LOAD32_BYTE( "epr-11322.ic94", 0x000001, 0x20000, CRC(10364d74) SHA1(393b19a972b5d8817ffd438f13ded73cd58ebe56) )
ROM_LOAD32_BYTE( "epr-11321.ic98", 0x000002, 0x20000, CRC(8e738f58) SHA1(9f2dceebf01e582cf60f072ae411000d8503894b) )
@@ -2034,13 +2683,13 @@ ROM_START( thndrbld )
ROM_LOAD32_BYTE( "epr-11393.ic101", 0x180002, 0x20000, CRC(525e2e1d) SHA1(6fd09f775e7e6cad8078513d1af0a8ff40fb1360) ) // replaced from original rev?
ROM_LOAD32_BYTE( "epr-11392.ic105", 0x180003, 0x20000, CRC(b4a382f7) SHA1(c03a05ba521f654db1a9c5f5717b7a15e5a29d4e) ) //
- ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // Road Data
+ ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // Road Data
ROM_LOAD( "epr-11313.ic29", 0x00000, 0x10000, CRC(6a56c4c3) SHA1(c1b8023cb2ba4e96be052031c24b6ae424225c71) )
- ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
ROM_LOAD( "epr-11396.ic17", 0x00000, 0x10000, CRC(d37b54a4) SHA1(c230fe7241a1f13ca13506d1492f348f506c40a7) )
- ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
ROM_LOAD( "epr-11317.ic11", 0x00000, 0x20000, CRC(d4e7ac1f) SHA1(ec5d6e4949938adf56e5613801ae56ff2c3dede5) )
ROM_LOAD( "epr-11318.ic12", 0x20000, 0x20000, CRC(70d3f02c) SHA1(391aac2bc5673e06150de27e19c7c6359da8ca82) )
ROM_LOAD( "epr-11319.ic13", 0x40000, 0x20000, CRC(50d9242e) SHA1(a106371bf680c3088ec61f07fc5c4ce467973c15) )
@@ -2053,24 +2702,24 @@ ROM_END
// GAME BD NO. 834-6493-03 (Uses "MPR" mask roms) or 834-6493-05 (Uses "EPR" eproms)
//
ROM_START( thndrbld1 )
- ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "epr-11304.ic58", 0x000000, 0x20000, CRC(a90630ef) SHA1(8f29e020119b2243b1c95e15546af1773327ae85) ) // patched?
ROM_LOAD16_BYTE( "epr-11305.ic63", 0x000001, 0x20000, CRC(9ba3ef61) SHA1(f75748b37ce35b0ef881804f73417643068dfbb2) ) // patched?
ROM_LOAD16_BYTE( "epr-11306.ic57", 0x040000, 0x20000, CRC(4b95f2b4) SHA1(9e0ff898a2af05c35db3551e52c7485748698c28) )
ROM_LOAD16_BYTE( "epr-11307.ic62", 0x040001, 0x20000, CRC(2d6833e4) SHA1(b39a744370014237121f0010d18897e63f7058cf) )
- ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
+ ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
ROM_LOAD16_BYTE( "epr-11308.ic20", 0x00000, 0x20000, CRC(7956c238) SHA1(4608225cfd6ea3d38317cbe970f26a5fc2f8e320) )
ROM_LOAD16_BYTE( "epr-11309.ic29", 0x00001, 0x20000, CRC(c887f620) SHA1(644c47cc2cf75cbe489ea084c13c59d94631e83f) )
ROM_LOAD16_BYTE( "epr-11310.ic21", 0x040000, 0x20000, CRC(5d9fa02c) SHA1(0ca71e35cf9740e38a52960f7d1ef96e7e1dda94) )
ROM_LOAD16_BYTE( "epr-11311.ic30", 0x040001, 0x20000, CRC(483de21b) SHA1(871f0e856dcc81dcef1d9846261b3c011fa26dde) )
- ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
ROM_LOAD( "epr-11314.ic154", 0x00000, 0x10000, CRC(d4f954a9) SHA1(93ee8cf8fcf4e1d0dd58329bba9b594431193449) )
ROM_LOAD( "epr-11315.ic153", 0x10000, 0x10000, CRC(35813088) SHA1(ea1ec982d1509efb26e7b6a150825a6a905efed9) )
ROM_LOAD( "epr-11316.ic152", 0x20000, 0x10000, CRC(84290dff) SHA1(c13fb6ef12a991f79a95072f953a02b5c992aa2d) )
- ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
ROM_LOAD32_BYTE( "epr-11323.ic90", 0x000000, 0x20000, CRC(27e40735) SHA1(284ddb88efe741fb78199ea619c9b230ee689803) )
ROM_LOAD32_BYTE( "epr-11322.ic94", 0x000001, 0x20000, CRC(10364d74) SHA1(393b19a972b5d8817ffd438f13ded73cd58ebe56) )
ROM_LOAD32_BYTE( "epr-11321.ic98", 0x000002, 0x20000, CRC(8e738f58) SHA1(9f2dceebf01e582cf60f072ae411000d8503894b) )
@@ -2088,13 +2737,13 @@ ROM_START( thndrbld1 )
ROM_LOAD32_BYTE( "epr-11333.ic101", 0x180002, 0x20000, CRC(05a2333f) SHA1(70f213945fa7fe056fe17a02558638e87f2c001e) )
ROM_LOAD32_BYTE( "epr-11332.ic105", 0x180003, 0x20000, CRC(dc089ec6) SHA1(d72390c45138a507e79af112addbc015560fc248) )
- ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // Road Data
+ ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // Road Data
ROM_LOAD( "epr-11313.ic29", 0x00000, 0x10000, CRC(6a56c4c3) SHA1(c1b8023cb2ba4e96be052031c24b6ae424225c71) )
- ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
ROM_LOAD( "epr-11312.ic17", 0x00000, 0x10000, CRC(3b974ed2) SHA1(cf18a2d0f01643c747a884bf00e5b7037ba2e64a) )
- ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
ROM_LOAD( "epr-11317.ic11", 0x00000, 0x20000, CRC(d4e7ac1f) SHA1(ec5d6e4949938adf56e5613801ae56ff2c3dede5) )
ROM_LOAD( "epr-11318.ic12", 0x20000, 0x20000, CRC(70d3f02c) SHA1(391aac2bc5673e06150de27e19c7c6359da8ca82) )
ROM_LOAD( "epr-11319.ic13", 0x40000, 0x20000, CRC(50d9242e) SHA1(a106371bf680c3088ec61f07fc5c4ce467973c15) )
@@ -2108,27 +2757,27 @@ ROM_END
// CPU: FD1094 (317-0083)
//
ROM_START( lastsurv )
- ROM_REGION( 0x100000, "maincpu", 0 ) // 68000 code
+ ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "epr-12046.ic58", 0x000000, 0x20000, CRC(f94f3a1a) SHA1(f509cbccb1f36ce52ed3e44d4d7b31a047050700) )
ROM_LOAD16_BYTE( "epr-12047.ic63", 0x000001, 0x20000, CRC(1b45c116) SHA1(c46ad622a145baea52d918537fa43a2009ed0cca) )
ROM_LOAD16_BYTE( "epr-12048.ic57", 0x040000, 0x20000, CRC(648e38ca) SHA1(e5f7fd42f49dbbddd1a812a04d8b95c1a73e640b) )
ROM_LOAD16_BYTE( "epr-12049.ic62", 0x040001, 0x20000, CRC(6c5c4753) SHA1(6834542005bc8cad7918ae17d3764306d7f9a959) )
- ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
+ ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 ) // decryption key
ROM_LOAD( "317-0083.key", 0x0000, 0x2000, CRC(dca0b9cc) SHA1(77510804d36d486ffa1e0bb5b0a36d43adc63415) )
- ROM_REGION( 0x100000, "subcpu", 0 ) // 2nd 68000 code
+ ROM_REGION( 0x100000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
ROM_LOAD16_BYTE( "epr-12050.ic20", 0x000000, 0x20000, CRC(985a0f36) SHA1(bd0a93aa16565c8338db0c67b031bfa409bce5a9) )
ROM_LOAD16_BYTE( "epr-12051.ic29", 0x000001, 0x20000, CRC(f967d5a8) SHA1(16d742da755b5b7c3c3a9f6b4baaf242e5e54441) )
ROM_LOAD16_BYTE( "epr-12052.ic21", 0x040000, 0x20000, CRC(9f7a424d) SHA1(b8c2d3aa08ba71f08f2c1f403edac16bf4334184) )
ROM_LOAD16_BYTE( "epr-12053.ic30", 0x040001, 0x20000, CRC(efcf30f6) SHA1(55cd42c78f117995a89844529386ae3d11c718c1) )
- ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
ROM_LOAD( "epr-12055.ic154", 0x00000, 0x10000, CRC(150014a4) SHA1(9fbab916ee903c541f61014e137ccecd071b5c3a) )
ROM_LOAD( "epr-12056.ic153", 0x10000, 0x10000, CRC(3cd4c306) SHA1(b0f178688870c67936a15383024c392072e3bc66) )
ROM_LOAD( "epr-12057.ic152", 0x20000, 0x10000, CRC(37e91770) SHA1(69e26f4d3c4ebfaf0225a9b1c60038595929ef05) )
- ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
ROM_LOAD32_BYTE( "mpr-12064.ic90", 0x000000, 0x20000, CRC(84562a69) SHA1(815189a65065def213ef171fe40a44a455dfe75a) )
ROM_LOAD32_BYTE( "mpr-12063.ic94", 0x000001, 0x20000, CRC(d163727c) SHA1(50ed2b401e107a359874dad5d86eec788f5504eb) )
ROM_LOAD32_BYTE( "mpr-12062.ic98", 0x000002, 0x20000, CRC(6b57833b) SHA1(1d70894c81a4cd39f43067701a598d2c4fbffa58) )
@@ -2146,18 +2795,65 @@ ROM_START( lastsurv )
ROM_LOAD32_BYTE( "epr-12074.ic101", 0x180002, 0x20000, CRC(ee6cbb73) SHA1(c68d825ded83dd06ba7b816622db3d57631b4fcc) )
ROM_LOAD32_BYTE( "epr-12073.ic105", 0x180003, 0x20000, CRC(167e6342) SHA1(2f87074d6821a974cbb137ca2bec28fafc0df46f) )
- ROM_REGION( 0x20000, "gfx3", ROMREGION_ERASE00 ) // Road Data
+ ROM_REGION( 0x20000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // Road Data
// none
- ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
ROM_LOAD( "epr-12054.ic17", 0x00000, 0x10000, CRC(e9b39216) SHA1(142764b40b4db69ff08d28338d1b12b1dd1ed0a0) )
- ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
ROM_LOAD( "epr-12058.ic11", 0x00000, 0x20000, CRC(4671cb46) SHA1(03ecaa4409a5b86a558313d4ccfb2334f79cff17) )
ROM_LOAD( "epr-12059.ic12", 0x20000, 0x20000, CRC(8c99aff4) SHA1(818418e4e92f601b09fcaa0979802a2c2c85b435) )
ROM_LOAD( "epr-12060.ic13", 0x40000, 0x20000, CRC(7ed382b3) SHA1(c87306d1b9edb8b4b97aee4af1317526750e2da2) )
ROM_END
+ROM_START( lastsurvd )
+ ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-12046.ic58", 0x000000, 0x20000, CRC(ddef5278) SHA1(0efb4c6280f8127406d55461983137bac8f2a2c8) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12047.ic63", 0x000001, 0x20000, CRC(3981a891) SHA1(b25a37e2a3e55f1ee370ca99e406959fb1db13d6) )
+ ROM_LOAD16_BYTE( "epr-12048.ic57", 0x040000, 0x20000, CRC(648e38ca) SHA1(e5f7fd42f49dbbddd1a812a04d8b95c1a73e640b) )
+ ROM_LOAD16_BYTE( "epr-12049.ic62", 0x040001, 0x20000, CRC(6c5c4753) SHA1(6834542005bc8cad7918ae17d3764306d7f9a959) )
+
+ ROM_REGION( 0x100000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
+ ROM_LOAD16_BYTE( "epr-12050.ic20", 0x000000, 0x20000, CRC(985a0f36) SHA1(bd0a93aa16565c8338db0c67b031bfa409bce5a9) )
+ ROM_LOAD16_BYTE( "epr-12051.ic29", 0x000001, 0x20000, CRC(f967d5a8) SHA1(16d742da755b5b7c3c3a9f6b4baaf242e5e54441) )
+ ROM_LOAD16_BYTE( "epr-12052.ic21", 0x040000, 0x20000, CRC(9f7a424d) SHA1(b8c2d3aa08ba71f08f2c1f403edac16bf4334184) )
+ ROM_LOAD16_BYTE( "epr-12053.ic30", 0x040001, 0x20000, CRC(efcf30f6) SHA1(55cd42c78f117995a89844529386ae3d11c718c1) )
+
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-12055.ic154", 0x00000, 0x10000, CRC(150014a4) SHA1(9fbab916ee903c541f61014e137ccecd071b5c3a) )
+ ROM_LOAD( "epr-12056.ic153", 0x10000, 0x10000, CRC(3cd4c306) SHA1(b0f178688870c67936a15383024c392072e3bc66) )
+ ROM_LOAD( "epr-12057.ic152", 0x20000, 0x10000, CRC(37e91770) SHA1(69e26f4d3c4ebfaf0225a9b1c60038595929ef05) )
+
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
+ ROM_LOAD32_BYTE( "mpr-12064.ic90", 0x000000, 0x20000, CRC(84562a69) SHA1(815189a65065def213ef171fe40a44a455dfe75a) )
+ ROM_LOAD32_BYTE( "mpr-12063.ic94", 0x000001, 0x20000, CRC(d163727c) SHA1(50ed2b401e107a359874dad5d86eec788f5504eb) )
+ ROM_LOAD32_BYTE( "mpr-12062.ic98", 0x000002, 0x20000, CRC(6b57833b) SHA1(1d70894c81a4cd39f43067701a598d2c4fbffa58) )
+ ROM_LOAD32_BYTE( "mpr-12061.ic102", 0x000003, 0x20000, CRC(8907d5ba) SHA1(f4f9a19f3c27ef02314e59294a9658e2b20d52e0) )
+ ROM_LOAD32_BYTE( "epr-12068.ic91", 0x080000, 0x20000, CRC(8b12d342) SHA1(0356a413c2438e9c6c660454f03c0e24c6325f6b) )
+ ROM_LOAD32_BYTE( "epr-12067.ic95", 0x080001, 0x20000, CRC(1a1cdd89) SHA1(cd725aa450efa60ecc7d4111d0690cb441633935) )
+ ROM_LOAD32_BYTE( "epr-12066.ic99", 0x080002, 0x20000, CRC(a91d16b5) SHA1(501ddedf79130979c90c72882c2d96f5fd01adea) )
+ ROM_LOAD32_BYTE( "epr-12065.ic103", 0x080003, 0x20000, CRC(f4ce14c6) SHA1(42221ee03f363e94bf7b6de0bd89172525500412) )
+ ROM_LOAD32_BYTE( "epr-12072.ic92", 0x100000, 0x20000, CRC(222064c8) SHA1(a3914f8dabd8a3d99eaf4e03fa45e177c9f30666) )
+ ROM_LOAD32_BYTE( "epr-12071.ic96", 0x100001, 0x20000, CRC(a329b78c) SHA1(33b1f27dcc5ac36fdfd7374e1edda4fc31421126) )
+ ROM_LOAD32_BYTE( "epr-12070.ic100", 0x100002, 0x20000, CRC(97cc6706) SHA1(9160f100bd85f9c8b774e27a5d68e1c513111a61) )
+ ROM_LOAD32_BYTE( "epr-12069.ic104", 0x100003, 0x20000, CRC(2c3ba66e) SHA1(087fbf9d17f38b06b134088d89965c8d17dd5846) )
+ ROM_LOAD32_BYTE( "epr-12076.ic93", 0x180000, 0x20000, CRC(24f628e1) SHA1(abbc22282c7a9df203a8c589ddf08413d67392b1) )
+ ROM_LOAD32_BYTE( "epr-12075.ic97", 0x180001, 0x20000, CRC(69b3507f) SHA1(c447ceb38b473a3f65847471ef6de559e6ecce4a) )
+ ROM_LOAD32_BYTE( "epr-12074.ic101", 0x180002, 0x20000, CRC(ee6cbb73) SHA1(c68d825ded83dd06ba7b816622db3d57631b4fcc) )
+ ROM_LOAD32_BYTE( "epr-12073.ic105", 0x180003, 0x20000, CRC(167e6342) SHA1(2f87074d6821a974cbb137ca2bec28fafc0df46f) )
+
+ ROM_REGION( 0x20000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // Road Data
+ // none
+
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-12054.ic17", 0x00000, 0x10000, CRC(e9b39216) SHA1(142764b40b4db69ff08d28338d1b12b1dd1ed0a0) )
+
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_LOAD( "epr-12058.ic11", 0x00000, 0x20000, CRC(4671cb46) SHA1(03ecaa4409a5b86a558313d4ccfb2334f79cff17) )
+ ROM_LOAD( "epr-12059.ic12", 0x20000, 0x20000, CRC(8c99aff4) SHA1(818418e4e92f601b09fcaa0979802a2c2c85b435) )
+ ROM_LOAD( "epr-12060.ic13", 0x40000, 0x20000, CRC(7ed382b3) SHA1(c87306d1b9edb8b4b97aee4af1317526750e2da2) )
+ROM_END
//*************************************************************************************************************************
//*************************************************************************************************************************
@@ -2166,25 +2862,25 @@ ROM_END
// CPU: FD1094 (317-0144)
//
ROM_START( rachero )
- ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "epr-13129.ic58", 0x00000, 0x20000,CRC(ad9f32e7) SHA1(dbcb3436782bee88dcac05d4f59c97f170a7387d) )
ROM_LOAD16_BYTE( "epr-13130.ic63", 0x00001, 0x20000,CRC(6022777b) SHA1(965c76565d740be3355c4b403a1629cffb9fcd78) )
ROM_LOAD16_BYTE( "epr-12855.ic57", 0x40000, 0x20000,CRC(cecf1e73) SHA1(3f8631379f32dbfda7720ef345276f9be23ada06) )
ROM_LOAD16_BYTE( "epr-12856.ic62", 0x40001, 0x20000,CRC(da900ebb) SHA1(595ed65248185ddf8666b3f30ad6329162116448) )
- ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
+ ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 ) // decryption key
ROM_LOAD( "317-0144.key", 0x0000, 0x2000, CRC(8740bbff) SHA1(de96e606c04a09258b966532fb01a6b4d4db86a6) )
- ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
+ ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
ROM_LOAD16_BYTE( "epr-12857.ic20", 0x00000, 0x20000, CRC(8a2328cc) SHA1(c34498428ddfb3eeb986f4153a6165a685d8fc8a) )
ROM_LOAD16_BYTE( "epr-12858.ic29", 0x00001, 0x20000, CRC(38a248b7) SHA1(a17672123665403c1c56fedab6c8abf44b1131f9) )
- ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
ROM_LOAD( "epr-12879.ic154", 0x00000, 0x10000, CRC(c1a9de7a) SHA1(2425456a9d4ba92e1f2da6c2f164a6d5a5dee7c7) )
ROM_LOAD( "epr-12880.ic153", 0x10000, 0x10000, CRC(27ff04a5) SHA1(b554a6e060f4803100be8efa52977b503eb0f31d) )
ROM_LOAD( "epr-12881.ic152", 0x20000, 0x10000, CRC(72f14491) SHA1(b7a6cbd08470a5edda77cdd0337abd502c4905fd) )
- ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
ROM_LOAD32_BYTE( "epr-12872.ic90", 0x000000, 0x20000, CRC(68d56139) SHA1(b5f32edbda10c31d52f90defea2bae226676069f) )
ROM_LOAD32_BYTE( "epr-12873.ic94", 0x000001, 0x20000, CRC(3d3ec450) SHA1(ac96ad8c7b365478bd1e5826a073e242f1208247) )
ROM_LOAD32_BYTE( "epr-12874.ic98", 0x000002, 0x20000, CRC(7d6bde23) SHA1(88b12ec6386cdad60b0028b72033a0037a0cdbdb) )
@@ -2202,18 +2898,63 @@ ROM_START( rachero )
ROM_LOAD32_BYTE( "epr-12862.ic101", 0x180002, 0x20000, CRC(7d4c3b05) SHA1(4e25a077b403549c681c5047912d0e28f4c07720) )
ROM_LOAD32_BYTE( "epr-12863.ic105", 0x180003, 0x20000, CRC(85095053) SHA1(f93194ecc0300956280cc0515b3e3ba2c9f71364) )
- ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // ground data
+ ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // ground data
// none
- ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
ROM_LOAD( "epr-12859.ic17", 0x00000, 0x10000, CRC(d57881da) SHA1(75b7f331ea8c2e33d6236e0c8fc8dabe5eef8160) )
- ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
ROM_LOAD( "epr-12876.ic11", 0x00000, 0x20000, CRC(f72a34a0) SHA1(28f7d077c24352557da3a91a7e49b0c5b79f2a2e) )
ROM_LOAD( "epr-12877.ic12", 0x20000, 0x20000, CRC(18c1b6d2) SHA1(860cbb96999ab76c40ce96996bba70c42d845abc) )
ROM_LOAD( "epr-12878.ic13", 0x40000, 0x20000, CRC(7c212c15) SHA1(360b332d2fb32d88949ff8b357a863ffaaca39c2) )
ROM_END
+ROM_START( racherod )
+ ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-13129.ic58", 0x00000, 0x20000, CRC(82ee7312) SHA1(4d011529b538885bbc3bb1cb23048b785d3be318) )
+ ROM_LOAD16_BYTE( "bootleg_epr-13130.ic63", 0x00001, 0x20000, CRC(53fb8649) SHA1(8b66d6e2018f92c7c992944ed5d4a685d9f13a6d) )
+ ROM_LOAD16_BYTE( "epr-12855.ic57", 0x40000, 0x20000,CRC(cecf1e73) SHA1(3f8631379f32dbfda7720ef345276f9be23ada06) )
+ ROM_LOAD16_BYTE( "epr-12856.ic62", 0x40001, 0x20000,CRC(da900ebb) SHA1(595ed65248185ddf8666b3f30ad6329162116448) )
+
+ ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
+ ROM_LOAD16_BYTE( "epr-12857.ic20", 0x00000, 0x20000, CRC(8a2328cc) SHA1(c34498428ddfb3eeb986f4153a6165a685d8fc8a) )
+ ROM_LOAD16_BYTE( "epr-12858.ic29", 0x00001, 0x20000, CRC(38a248b7) SHA1(a17672123665403c1c56fedab6c8abf44b1131f9) )
+
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-12879.ic154", 0x00000, 0x10000, CRC(c1a9de7a) SHA1(2425456a9d4ba92e1f2da6c2f164a6d5a5dee7c7) )
+ ROM_LOAD( "epr-12880.ic153", 0x10000, 0x10000, CRC(27ff04a5) SHA1(b554a6e060f4803100be8efa52977b503eb0f31d) )
+ ROM_LOAD( "epr-12881.ic152", 0x20000, 0x10000, CRC(72f14491) SHA1(b7a6cbd08470a5edda77cdd0337abd502c4905fd) )
+
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
+ ROM_LOAD32_BYTE( "epr-12872.ic90", 0x000000, 0x20000, CRC(68d56139) SHA1(b5f32edbda10c31d52f90defea2bae226676069f) )
+ ROM_LOAD32_BYTE( "epr-12873.ic94", 0x000001, 0x20000, CRC(3d3ec450) SHA1(ac96ad8c7b365478bd1e5826a073e242f1208247) )
+ ROM_LOAD32_BYTE( "epr-12874.ic98", 0x000002, 0x20000, CRC(7d6bde23) SHA1(88b12ec6386cdad60b0028b72033a0037a0cdbdb) )
+ ROM_LOAD32_BYTE( "epr-12875.ic102", 0x000003, 0x20000, CRC(e33092bf) SHA1(31e211e25adac0a98befb459093f23c905fbc1e6) )
+ ROM_LOAD32_BYTE( "epr-12868.ic91", 0x080000, 0x20000, CRC(96289583) SHA1(4d37e67860bc0e6ef69f0a0775c28f6f2fd6875e) )
+ ROM_LOAD32_BYTE( "epr-12869.ic95", 0x080001, 0x20000, CRC(2ef0de02) SHA1(11ee3d77df2cddd3156da52e50565505f95f4cd4) )
+ ROM_LOAD32_BYTE( "epr-12870.ic99", 0x080002, 0x20000, CRC(c76630e1) SHA1(7b76e4819990e147639d6b930b17b6fa10df191c) )
+ ROM_LOAD32_BYTE( "epr-12871.ic103", 0x080003, 0x20000, CRC(23401b1a) SHA1(eaf465ffda84bdb83cc85daf781275bada396aab) )
+ ROM_LOAD32_BYTE( "epr-12864.ic92", 0x100000, 0x20000, CRC(77d6cff4) SHA1(1e625204801d03369311844efb26d22216253ac4) )
+ ROM_LOAD32_BYTE( "epr-12865.ic96", 0x100001, 0x20000, CRC(1e7e685b) SHA1(532fe361357383aa9dada833cbe31716c58001e5) )
+ ROM_LOAD32_BYTE( "epr-12866.ic100", 0x100002, 0x20000, CRC(fdf31329) SHA1(9c229a0f9d8b8114acfe4f17b45a9b8640560b3e) )
+ ROM_LOAD32_BYTE( "epr-12867.ic104", 0x100003, 0x20000, CRC(b25e37fd) SHA1(fef5bfe4690b3203b83fd565d883b2c63f439633) )
+ ROM_LOAD32_BYTE( "epr-12860.ic93", 0x180000, 0x20000, CRC(86b64119) SHA1(d39aedad0f05e500e33af888126bd2fc22539141) )
+ ROM_LOAD32_BYTE( "epr-12861.ic97", 0x180001, 0x20000, CRC(bccff19b) SHA1(32c3f7802a12be02a114b78cd898c46fcb1c0a61) )
+ ROM_LOAD32_BYTE( "epr-12862.ic101", 0x180002, 0x20000, CRC(7d4c3b05) SHA1(4e25a077b403549c681c5047912d0e28f4c07720) )
+ ROM_LOAD32_BYTE( "epr-12863.ic105", 0x180003, 0x20000, CRC(85095053) SHA1(f93194ecc0300956280cc0515b3e3ba2c9f71364) )
+
+ ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // ground data
+ // none
+
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-12859.ic17", 0x00000, 0x10000, CRC(d57881da) SHA1(75b7f331ea8c2e33d6236e0c8fc8dabe5eef8160) )
+
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_LOAD( "epr-12876.ic11", 0x00000, 0x20000, CRC(f72a34a0) SHA1(28f7d077c24352557da3a91a7e49b0c5b79f2a2e) )
+ ROM_LOAD( "epr-12877.ic12", 0x20000, 0x20000, CRC(18c1b6d2) SHA1(860cbb96999ab76c40ce96996bba70c42d845abc) )
+ ROM_LOAD( "epr-12878.ic13", 0x40000, 0x20000, CRC(7c212c15) SHA1(360b332d2fb32d88949ff8b357a863ffaaca39c2) )
+ROM_END
//*************************************************************************************************************************
//*************************************************************************************************************************
@@ -2264,23 +3005,23 @@ ROM_END
// Ep12587.14
//
ROM_START( smgp )
- ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "epr-12563b.58", 0x00000, 0x20000, CRC(baf1f333) SHA1(f91a7a311237b9940a44b815716d4226a7ae1e8b) )
ROM_LOAD16_BYTE( "epr-12564b.63", 0x00001, 0x20000, CRC(b5191af0) SHA1(d6fb19552e4816eefe751907ec55a2e07ad24879) )
- ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
+ ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 ) // decryption key
ROM_LOAD( "317-0126a.key", 0x0000, 0x2000, CRC(2abc1982) SHA1(cc4c36e6ba52431df17c6e36ba08d3a89be7b7e7) )
- ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
+ ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
ROM_LOAD16_BYTE( "epr-12576a.20", 0x00000, 0x20000, CRC(2c9599c1) SHA1(79206f38c2976bd9299ed37bf62ac26dd3fba801) )
ROM_LOAD16_BYTE( "epr-12577a.29", 0x00001, 0x20000, CRC(abf9a50b) SHA1(e367b305cd45900aae4849af4904543f05456dc6) )
- ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
ROM_LOAD( "epr-12429.154", 0x00000, 0x10000, CRC(5851e614) SHA1(3dc97237ede2c6125e92ea6efc68a748d0ec69be) )
ROM_LOAD( "epr-12430.153", 0x10000, 0x10000, CRC(05e00134) SHA1(8baaa80815d5dabd38dc8600e357975b96d23b95) )
ROM_LOAD( "epr-12431.152", 0x20000, 0x10000, CRC(35572f4a) SHA1(d66456ecf7b59f81736fb873c553926b56bb3977))
- ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
ROM_LOAD32_BYTE( "mpr-12425.90", 0x000000, 0x20000, CRC(14bf2a15) SHA1(84db3ac09e4a8fe470ac051d8d5de1814b48bc72) )
ROM_LOAD32_BYTE( "mpr-12426.94", 0x000001, 0x20000, CRC(28b60dc0) SHA1(ad69d449434853445a076319a55a29014217a100) )
ROM_LOAD32_BYTE( "mpr-12427.98", 0x000002, 0x20000, CRC(0a367928) SHA1(bcb558b7c23906397e66a7f046b09eb5036c0888) )
@@ -2298,29 +3039,87 @@ ROM_START( smgp )
ROM_LOAD32_BYTE( "epr-12611.101", 0x180002, 0x20000, CRC(bd5c6ab0) SHA1(7632dc4daa8eabe74769369856a8ba451e5bd420) ) // these differ from japan set
ROM_LOAD32_BYTE( "epr-12612.105", 0x180003, 0x20000, CRC(ac86e890) SHA1(7720c1c8df6de5de50254e97772c15161b796031) ) //
- ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
+ ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
// none??
- ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
ROM_LOAD( "epr-12436.17", 0x00000, 0x10000, CRC(16ec5f0a) SHA1(307b7388b5c36fd4bc2a61f7941db44858e03c5c) )
- ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
ROM_LOAD( "mpr-12437.11", 0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
ROM_LOAD( "mpr-12438.12", 0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
ROM_LOAD( "mpr-12439.13", 0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // not used in deluxe
- ROM_REGION( 0x10000, "soundcpu2", 0 ) // z80 on extra sound board
+ ROM_REGION( 0x10000, "mainpcb:soundcpu2", 0 ) // z80 on extra sound board
ROM_LOAD( "epr-12535.8", 0x00000, 0x10000, CRC(80453597) SHA1(d3fee7bb4a8964f5cf1cdae80fc3dde06c947839) ) // taken from deluxe cabinet dump
- ROM_REGION( 0x80000, "pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
+ ROM_REGION( 0x80000, "mainpcb:pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
ROM_LOAD( "mpr-12437.20", 0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) ) // taken from deluxe cabinet dump
ROM_LOAD( "mpr-12438.21", 0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) ) // "
ROM_LOAD( "mpr-12439.22", 0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // "
- ROM_REGION( 0x10000, "commcpu", 0 ) // z80 on network board
+ ROM_REGION( 0x10000, "mainpcb:commcpu", 0 ) // z80 on network board
ROM_LOAD( "epr-12587.14", 0x00000, 0x08000, CRC(2afe648b) SHA1(b5bf86f3acbcc23c136185110acecf2c971294fa) )
- ROM_REGION( 0x10000, "motorcpu", 0 ) // z80 on air board
+ ROM_REGION( 0x10000, "mainpcb:motorcpu", 0 ) // z80 on air board
+ ROM_LOAD( "epr-12505.8", 0x00000, 0x08000, CRC(5020788a) SHA1(ed6d1dfb8b6a62d17469e3d09a5b5b864c6b486c) ) // taken from deluxe cabinet dump
+ROM_END
+
+ROM_START( smgpd )
+ ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-12563b.58", 0x00000, 0x20000, CRC(af30e3cd) SHA1(b05a4f8be701fada6d55a042079f4b2067b52cb2) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12564b.63", 0x00001, 0x20000, CRC(eb7cadfe) SHA1(58c2d05cd21795c1d5d603179decc3b861ef438f) )
+
+ ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
+ ROM_LOAD16_BYTE( "epr-12576a.20", 0x00000, 0x20000, CRC(2c9599c1) SHA1(79206f38c2976bd9299ed37bf62ac26dd3fba801) )
+ ROM_LOAD16_BYTE( "epr-12577a.29", 0x00001, 0x20000, CRC(abf9a50b) SHA1(e367b305cd45900aae4849af4904543f05456dc6) )
+
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-12429.154", 0x00000, 0x10000, CRC(5851e614) SHA1(3dc97237ede2c6125e92ea6efc68a748d0ec69be) )
+ ROM_LOAD( "epr-12430.153", 0x10000, 0x10000, CRC(05e00134) SHA1(8baaa80815d5dabd38dc8600e357975b96d23b95) )
+ ROM_LOAD( "epr-12431.152", 0x20000, 0x10000, CRC(35572f4a) SHA1(d66456ecf7b59f81736fb873c553926b56bb3977))
+
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
+ ROM_LOAD32_BYTE( "mpr-12425.90", 0x000000, 0x20000, CRC(14bf2a15) SHA1(84db3ac09e4a8fe470ac051d8d5de1814b48bc72) )
+ ROM_LOAD32_BYTE( "mpr-12426.94", 0x000001, 0x20000, CRC(28b60dc0) SHA1(ad69d449434853445a076319a55a29014217a100) )
+ ROM_LOAD32_BYTE( "mpr-12427.98", 0x000002, 0x20000, CRC(0a367928) SHA1(bcb558b7c23906397e66a7f046b09eb5036c0888) )
+ ROM_LOAD32_BYTE( "mpr-12428.102", 0x000003, 0x20000, CRC(efa80ad5) SHA1(9bc7c3fb60cc076f29a0af487d58e5b48f1c4b06) )
+ ROM_LOAD32_BYTE( "mpr-12421.91", 0x080000, 0x20000, CRC(25f46140) SHA1(ea75e364cf52636d100158f79be627e36da8c327) )
+ ROM_LOAD32_BYTE( "mpr-12422.95", 0x080001, 0x20000, CRC(cb51c8f6) SHA1(5af56ae1916c3212b8d5b9e4bccbbe1916694f89) )
+ ROM_LOAD32_BYTE( "mpr-12423.99", 0x080002, 0x20000, CRC(0be9818e) SHA1(637a8201416e73d53f7e2502ea0a5277e43c167d) )
+ ROM_LOAD32_BYTE( "mpr-12424.103", 0x080003, 0x20000, CRC(0ce00dfc) SHA1(3b1990977ec7ad4c3bea66527707cff2cd8d5a98) )
+ ROM_LOAD32_BYTE( "mpr-12417.92", 0x100000, 0x20000, CRC(a806eabf) SHA1(1a61a2135d92b42ee131fd3240bc8a17a96696ab) )
+ ROM_LOAD32_BYTE( "mpr-12418.96", 0x100001, 0x20000, CRC(ed1a0f2b) SHA1(1aa87292ca0465fa129d6be81d95dbb77332ecab) )
+ ROM_LOAD32_BYTE( "mpr-12419.100", 0x100002, 0x20000, CRC(ce4568cb) SHA1(1ed66e74ce94d41593b498827d9cc243f775d4ba) )
+ ROM_LOAD32_BYTE( "mpr-12420.104", 0x100003, 0x20000, CRC(679442eb) SHA1(f88ef0219497f955d8db6783f3636dad52928f46) )
+ ROM_LOAD32_BYTE( "epr-12609.93", 0x180000, 0x20000, CRC(a867812f) SHA1(f8950bf794b6c2ec767ffff837d28917b636dbe7) ) //
+ ROM_LOAD32_BYTE( "epr-12610.97", 0x180001, 0x20000, CRC(53b99417) SHA1(ab72d35c88695c777d24c5557e5d3ea2d446e51b) ) //
+ ROM_LOAD32_BYTE( "epr-12611.101", 0x180002, 0x20000, CRC(bd5c6ab0) SHA1(7632dc4daa8eabe74769369856a8ba451e5bd420) ) // these differ from japan set
+ ROM_LOAD32_BYTE( "epr-12612.105", 0x180003, 0x20000, CRC(ac86e890) SHA1(7720c1c8df6de5de50254e97772c15161b796031) ) //
+
+ ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
+ // none??
+
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-12436.17", 0x00000, 0x10000, CRC(16ec5f0a) SHA1(307b7388b5c36fd4bc2a61f7941db44858e03c5c) )
+
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_LOAD( "mpr-12437.11", 0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
+ ROM_LOAD( "mpr-12438.12", 0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
+ ROM_LOAD( "mpr-12439.13", 0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // not used in deluxe
+
+ ROM_REGION( 0x10000, "mainpcb:soundcpu2", 0 ) // z80 on extra sound board
+ ROM_LOAD( "epr-12535.8", 0x00000, 0x10000, CRC(80453597) SHA1(d3fee7bb4a8964f5cf1cdae80fc3dde06c947839) ) // taken from deluxe cabinet dump
+
+ ROM_REGION( 0x80000, "mainpcb:pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
+ ROM_LOAD( "mpr-12437.20", 0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) ) // taken from deluxe cabinet dump
+ ROM_LOAD( "mpr-12438.21", 0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) ) // "
+ ROM_LOAD( "mpr-12439.22", 0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // "
+
+ ROM_REGION( 0x10000, "mainpcb:commcpu", 0 ) // z80 on network board
+ ROM_LOAD( "epr-12587.14", 0x00000, 0x08000, CRC(2afe648b) SHA1(b5bf86f3acbcc23c136185110acecf2c971294fa) )
+
+ ROM_REGION( 0x10000, "mainpcb:motorcpu", 0 ) // z80 on air board
ROM_LOAD( "epr-12505.8", 0x00000, 0x08000, CRC(5020788a) SHA1(ed6d1dfb8b6a62d17469e3d09a5b5b864c6b486c) ) // taken from deluxe cabinet dump
ROM_END
@@ -2330,23 +3129,81 @@ ROM_END
//
// this set contained only prg roms
ROM_START( smgp6 )
- ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "epr-12563a.58", 0x00000, 0x20000, CRC(2e64b10e) SHA1(2be1ffb3120e4af6a61880e2a2602db07a73f373) )
ROM_LOAD16_BYTE( "epr-12564a.63", 0x00001, 0x20000, CRC(5baba3e7) SHA1(37194d5a4d3ee48a276f6aeb35b2f20a7661caa2) )
- ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
+ ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 ) // decryption key
ROM_LOAD( "317-0126a.key", 0x0000, 0x2000, CRC(2abc1982) SHA1(cc4c36e6ba52431df17c6e36ba08d3a89be7b7e7) )
- ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
+ ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
+ ROM_LOAD16_BYTE( "epr-12576a.20", 0x00000, 0x20000, CRC(2c9599c1) SHA1(79206f38c2976bd9299ed37bf62ac26dd3fba801) )
+ ROM_LOAD16_BYTE( "epr-12577a.29", 0x00001, 0x20000, CRC(abf9a50b) SHA1(e367b305cd45900aae4849af4904543f05456dc6) )
+
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-12429.154", 0x00000, 0x10000, CRC(5851e614) SHA1(3dc97237ede2c6125e92ea6efc68a748d0ec69be) )
+ ROM_LOAD( "epr-12430.153", 0x10000, 0x10000, CRC(05e00134) SHA1(8baaa80815d5dabd38dc8600e357975b96d23b95) )
+ ROM_LOAD( "epr-12431.152", 0x20000, 0x10000, CRC(35572f4a) SHA1(d66456ecf7b59f81736fb873c553926b56bb3977))
+
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
+ ROM_LOAD32_BYTE( "mpr-12425.90", 0x000000, 0x20000, CRC(14bf2a15) SHA1(84db3ac09e4a8fe470ac051d8d5de1814b48bc72) )
+ ROM_LOAD32_BYTE( "mpr-12426.94", 0x000001, 0x20000, CRC(28b60dc0) SHA1(ad69d449434853445a076319a55a29014217a100) )
+ ROM_LOAD32_BYTE( "mpr-12427.98", 0x000002, 0x20000, CRC(0a367928) SHA1(bcb558b7c23906397e66a7f046b09eb5036c0888) )
+ ROM_LOAD32_BYTE( "mpr-12428.102", 0x000003, 0x20000, CRC(efa80ad5) SHA1(9bc7c3fb60cc076f29a0af487d58e5b48f1c4b06) )
+ ROM_LOAD32_BYTE( "mpr-12421.91", 0x080000, 0x20000, CRC(25f46140) SHA1(ea75e364cf52636d100158f79be627e36da8c327) )
+ ROM_LOAD32_BYTE( "mpr-12422.95", 0x080001, 0x20000, CRC(cb51c8f6) SHA1(5af56ae1916c3212b8d5b9e4bccbbe1916694f89) )
+ ROM_LOAD32_BYTE( "mpr-12423.99", 0x080002, 0x20000, CRC(0be9818e) SHA1(637a8201416e73d53f7e2502ea0a5277e43c167d) )
+ ROM_LOAD32_BYTE( "mpr-12424.103", 0x080003, 0x20000, CRC(0ce00dfc) SHA1(3b1990977ec7ad4c3bea66527707cff2cd8d5a98) )
+ ROM_LOAD32_BYTE( "mpr-12417.92", 0x100000, 0x20000, CRC(a806eabf) SHA1(1a61a2135d92b42ee131fd3240bc8a17a96696ab) )
+ ROM_LOAD32_BYTE( "mpr-12418.96", 0x100001, 0x20000, CRC(ed1a0f2b) SHA1(1aa87292ca0465fa129d6be81d95dbb77332ecab) )
+ ROM_LOAD32_BYTE( "mpr-12419.100", 0x100002, 0x20000, CRC(ce4568cb) SHA1(1ed66e74ce94d41593b498827d9cc243f775d4ba) )
+ ROM_LOAD32_BYTE( "mpr-12420.104", 0x100003, 0x20000, CRC(679442eb) SHA1(f88ef0219497f955d8db6783f3636dad52928f46) )
+ ROM_LOAD32_BYTE( "epr-12609.93", 0x180000, 0x20000, CRC(a867812f) SHA1(f8950bf794b6c2ec767ffff837d28917b636dbe7) ) //
+ ROM_LOAD32_BYTE( "epr-12610.97", 0x180001, 0x20000, CRC(53b99417) SHA1(ab72d35c88695c777d24c5557e5d3ea2d446e51b) ) //
+ ROM_LOAD32_BYTE( "epr-12611.101", 0x180002, 0x20000, CRC(bd5c6ab0) SHA1(7632dc4daa8eabe74769369856a8ba451e5bd420) ) // these differ from japan set
+ ROM_LOAD32_BYTE( "epr-12612.105", 0x180003, 0x20000, CRC(ac86e890) SHA1(7720c1c8df6de5de50254e97772c15161b796031) ) //
+
+ ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
+ // none??
+
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-12436.17", 0x00000, 0x10000, CRC(16ec5f0a) SHA1(307b7388b5c36fd4bc2a61f7941db44858e03c5c) )
+
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_LOAD( "mpr-12437.11", 0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
+ ROM_LOAD( "mpr-12438.12", 0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
+ ROM_LOAD( "mpr-12439.13", 0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // not used in deluxe
+
+ ROM_REGION( 0x10000, "mainpcb:soundcpu2", 0 ) // z80 on extra sound board
+ ROM_LOAD( "epr-12535.8", 0x00000, 0x10000, CRC(80453597) SHA1(d3fee7bb4a8964f5cf1cdae80fc3dde06c947839) ) // taken from deluxe cabinet dump
+
+ ROM_REGION( 0x80000, "mainpcb:pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
+ ROM_LOAD( "mpr-12437.20", 0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) ) // taken from deluxe cabinet dump
+ ROM_LOAD( "mpr-12438.21", 0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) ) // "
+ ROM_LOAD( "mpr-12439.22", 0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // "
+
+ ROM_REGION( 0x10000, "mainpcb:commcpu", 0 ) // z80 on network board
+ ROM_LOAD( "epr-12587.14", 0x00000, 0x08000, CRC(2afe648b) SHA1(b5bf86f3acbcc23c136185110acecf2c971294fa) ) // taken from twin cabinet dump
+
+ ROM_REGION( 0x10000, "mainpcb:motorcpu", 0 ) // z80 on air board
+ ROM_LOAD( "epr-12505.8", 0x00000, 0x08000, CRC(5020788a) SHA1(ed6d1dfb8b6a62d17469e3d09a5b5b864c6b486c) ) // taken from deluxe cabinet dump
+ROM_END
+
+ROM_START( smgp6d )
+ ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-12563a.58", 0x00000, 0x20000, CRC(3ba5a1f0) SHA1(52ac3568f35a68afb458fe8d1f4c20029052100f) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12564a.63", 0x00001, 0x20000, CRC(05ce14e9) SHA1(abc65f85b9d8710ef88c336df6584c194364dce5) )
+
+ ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
ROM_LOAD16_BYTE( "epr-12576a.20", 0x00000, 0x20000, CRC(2c9599c1) SHA1(79206f38c2976bd9299ed37bf62ac26dd3fba801) )
ROM_LOAD16_BYTE( "epr-12577a.29", 0x00001, 0x20000, CRC(abf9a50b) SHA1(e367b305cd45900aae4849af4904543f05456dc6) )
- ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
ROM_LOAD( "epr-12429.154", 0x00000, 0x10000, CRC(5851e614) SHA1(3dc97237ede2c6125e92ea6efc68a748d0ec69be) )
ROM_LOAD( "epr-12430.153", 0x10000, 0x10000, CRC(05e00134) SHA1(8baaa80815d5dabd38dc8600e357975b96d23b95) )
ROM_LOAD( "epr-12431.152", 0x20000, 0x10000, CRC(35572f4a) SHA1(d66456ecf7b59f81736fb873c553926b56bb3977))
- ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
ROM_LOAD32_BYTE( "mpr-12425.90", 0x000000, 0x20000, CRC(14bf2a15) SHA1(84db3ac09e4a8fe470ac051d8d5de1814b48bc72) )
ROM_LOAD32_BYTE( "mpr-12426.94", 0x000001, 0x20000, CRC(28b60dc0) SHA1(ad69d449434853445a076319a55a29014217a100) )
ROM_LOAD32_BYTE( "mpr-12427.98", 0x000002, 0x20000, CRC(0a367928) SHA1(bcb558b7c23906397e66a7f046b09eb5036c0888) )
@@ -2364,29 +3221,29 @@ ROM_START( smgp6 )
ROM_LOAD32_BYTE( "epr-12611.101", 0x180002, 0x20000, CRC(bd5c6ab0) SHA1(7632dc4daa8eabe74769369856a8ba451e5bd420) ) // these differ from japan set
ROM_LOAD32_BYTE( "epr-12612.105", 0x180003, 0x20000, CRC(ac86e890) SHA1(7720c1c8df6de5de50254e97772c15161b796031) ) //
- ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
+ ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
// none??
- ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
ROM_LOAD( "epr-12436.17", 0x00000, 0x10000, CRC(16ec5f0a) SHA1(307b7388b5c36fd4bc2a61f7941db44858e03c5c) )
- ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
ROM_LOAD( "mpr-12437.11", 0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
ROM_LOAD( "mpr-12438.12", 0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
ROM_LOAD( "mpr-12439.13", 0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // not used in deluxe
- ROM_REGION( 0x10000, "soundcpu2", 0 ) // z80 on extra sound board
+ ROM_REGION( 0x10000, "mainpcb:soundcpu2", 0 ) // z80 on extra sound board
ROM_LOAD( "epr-12535.8", 0x00000, 0x10000, CRC(80453597) SHA1(d3fee7bb4a8964f5cf1cdae80fc3dde06c947839) ) // taken from deluxe cabinet dump
- ROM_REGION( 0x80000, "pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
+ ROM_REGION( 0x80000, "mainpcb:pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
ROM_LOAD( "mpr-12437.20", 0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) ) // taken from deluxe cabinet dump
ROM_LOAD( "mpr-12438.21", 0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) ) // "
ROM_LOAD( "mpr-12439.22", 0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // "
- ROM_REGION( 0x10000, "commcpu", 0 ) // z80 on network board
+ ROM_REGION( 0x10000, "mainpcb:commcpu", 0 ) // z80 on network board
ROM_LOAD( "epr-12587.14", 0x00000, 0x08000, CRC(2afe648b) SHA1(b5bf86f3acbcc23c136185110acecf2c971294fa) ) // taken from twin cabinet dump
- ROM_REGION( 0x10000, "motorcpu", 0 ) // z80 on air board
+ ROM_REGION( 0x10000, "mainpcb:motorcpu", 0 ) // z80 on air board
ROM_LOAD( "epr-12505.8", 0x00000, 0x08000, CRC(5020788a) SHA1(ed6d1dfb8b6a62d17469e3d09a5b5b864c6b486c) ) // taken from deluxe cabinet dump
ROM_END
@@ -2446,23 +3303,81 @@ ROM_END
// Ep12505.8
//
ROM_START( smgp5 )
- ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "epr-12563.58", 0x00000, 0x20000, CRC(6d7325ae) SHA1(bf88ceddc49dab5b439080d5bf0e7e084a79546c) )
ROM_LOAD16_BYTE( "epr-12564.63", 0x00001, 0x20000, CRC(adfbf921) SHA1(f3321e03dc37b14db065b85d63e321810e4ea797) )
- ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
+ ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 ) // decryption key
ROM_LOAD( "317-0126.key", 0x0000, 0x2000, CRC(4d917996) SHA1(17232c0e35d439a12db3d966064cf00104088903) )
- ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
+ ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
+ ROM_LOAD16_BYTE( "epr-12576.20", 0x00000, 0x20000, CRC(23266b26) SHA1(240b9bf198fd2975851e769766566ec4e8379f87) )
+ ROM_LOAD16_BYTE( "epr-12577.29", 0x00001, 0x20000, CRC(d5b53211) SHA1(b11f5c5094eb7ea9578f15489b00d8bbac1edee6) )
+
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-12429.154", 0x00000, 0x10000, CRC(5851e614) SHA1(3dc97237ede2c6125e92ea6efc68a748d0ec69be) )
+ ROM_LOAD( "epr-12430.153", 0x10000, 0x10000, CRC(05e00134) SHA1(8baaa80815d5dabd38dc8600e357975b96d23b95) )
+ ROM_LOAD( "epr-12431.152", 0x20000, 0x10000, CRC(35572f4a) SHA1(d66456ecf7b59f81736fb873c553926b56bb3977))
+
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
+ ROM_LOAD32_BYTE( "mpr-12425.90", 0x000000, 0x20000, CRC(14bf2a15) SHA1(84db3ac09e4a8fe470ac051d8d5de1814b48bc72) )
+ ROM_LOAD32_BYTE( "mpr-12426.94", 0x000001, 0x20000, CRC(28b60dc0) SHA1(ad69d449434853445a076319a55a29014217a100) )
+ ROM_LOAD32_BYTE( "mpr-12427.98", 0x000002, 0x20000, CRC(0a367928) SHA1(bcb558b7c23906397e66a7f046b09eb5036c0888) )
+ ROM_LOAD32_BYTE( "mpr-12428.102", 0x000003, 0x20000, CRC(efa80ad5) SHA1(9bc7c3fb60cc076f29a0af487d58e5b48f1c4b06) )
+ ROM_LOAD32_BYTE( "mpr-12421.91", 0x080000, 0x20000, CRC(25f46140) SHA1(ea75e364cf52636d100158f79be627e36da8c327) )
+ ROM_LOAD32_BYTE( "mpr-12422.95", 0x080001, 0x20000, CRC(cb51c8f6) SHA1(5af56ae1916c3212b8d5b9e4bccbbe1916694f89) )
+ ROM_LOAD32_BYTE( "mpr-12423.99", 0x080002, 0x20000, CRC(0be9818e) SHA1(637a8201416e73d53f7e2502ea0a5277e43c167d) )
+ ROM_LOAD32_BYTE( "mpr-12424.103", 0x080003, 0x20000, CRC(0ce00dfc) SHA1(3b1990977ec7ad4c3bea66527707cff2cd8d5a98) )
+ ROM_LOAD32_BYTE( "mpr-12417.92", 0x100000, 0x20000, CRC(a806eabf) SHA1(1a61a2135d92b42ee131fd3240bc8a17a96696ab) )
+ ROM_LOAD32_BYTE( "mpr-12418.96", 0x100001, 0x20000, CRC(ed1a0f2b) SHA1(1aa87292ca0465fa129d6be81d95dbb77332ecab) )
+ ROM_LOAD32_BYTE( "mpr-12419.100", 0x100002, 0x20000, CRC(ce4568cb) SHA1(1ed66e74ce94d41593b498827d9cc243f775d4ba) )
+ ROM_LOAD32_BYTE( "mpr-12420.104", 0x100003, 0x20000, CRC(679442eb) SHA1(f88ef0219497f955d8db6783f3636dad52928f46) )
+ ROM_LOAD32_BYTE( "epr-12413.93", 0x180000, 0x20000, CRC(2f1693df) SHA1(ba1e654a1b5fae661b0dae4a8ed04ff50fb546a2) )
+ ROM_LOAD32_BYTE( "epr-12414.97", 0x180001, 0x20000, CRC(c78f3d45) SHA1(665750907ed11c89c2ea5c410eac2808445131ae) )
+ ROM_LOAD32_BYTE( "epr-12415.101", 0x180002, 0x20000, CRC(6080e9ed) SHA1(eb1b871453f76e6a65d20fa9d4bddc1c9f940b4d) )
+ ROM_LOAD32_BYTE( "epr-12416.105", 0x180003, 0x20000, CRC(6f1f2769) SHA1(d00d26cd1052d4b46c432b6b69cb2d83179d52a6) )
+
+ ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
+ // none??
+
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-12436.17", 0x00000, 0x10000, CRC(16ec5f0a) SHA1(307b7388b5c36fd4bc2a61f7941db44858e03c5c) )
+
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_LOAD( "mpr-12437.11", 0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
+ ROM_LOAD( "mpr-12438.12", 0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
+ ROM_LOAD( "mpr-12439.13", 0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // not used in deluxe
+
+ ROM_REGION( 0x10000, "mainpcb:soundcpu2", 0 ) // z80 on extra sound board
+ ROM_LOAD( "epr-12535.8", 0x00000, 0x10000, CRC(80453597) SHA1(d3fee7bb4a8964f5cf1cdae80fc3dde06c947839) )
+
+ ROM_REGION( 0x80000, "mainpcb:pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
+ ROM_LOAD( "mpr-12437.20", 0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
+ ROM_LOAD( "mpr-12438.21", 0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
+ ROM_LOAD( "mpr-12439.22", 0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) )
+
+ ROM_REGION( 0x10000, "mainpcb:commcpu", 0 ) // z80 on network board
+ ROM_LOAD( "epr-12587.14", 0x00000, 0x08000, CRC(2afe648b) SHA1(b5bf86f3acbcc23c136185110acecf2c971294fa) ) // taken from twin cabinet dump
+
+ ROM_REGION( 0x10000, "mainpcb:motorcpu", 0 ) // z80 on air board
+ ROM_LOAD( "epr-12505.8", 0x00000, 0x08000, CRC(5020788a) SHA1(ed6d1dfb8b6a62d17469e3d09a5b5b864c6b486c) )
+ROM_END
+
+ROM_START( smgp5d )
+ ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-12563.58", 0x00000, 0x20000, CRC(6c7f0549) SHA1(a9beed12e204acc5bf45dded9b3d4d1643b83a94) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12564.63", 0x00001, 0x20000, CRC(c2b3a219) SHA1(d9299d2a0a93404f18148e9d2bd2d57cd043b67b) )
+
+ ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
ROM_LOAD16_BYTE( "epr-12576.20", 0x00000, 0x20000, CRC(23266b26) SHA1(240b9bf198fd2975851e769766566ec4e8379f87) )
ROM_LOAD16_BYTE( "epr-12577.29", 0x00001, 0x20000, CRC(d5b53211) SHA1(b11f5c5094eb7ea9578f15489b00d8bbac1edee6) )
- ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
ROM_LOAD( "epr-12429.154", 0x00000, 0x10000, CRC(5851e614) SHA1(3dc97237ede2c6125e92ea6efc68a748d0ec69be) )
ROM_LOAD( "epr-12430.153", 0x10000, 0x10000, CRC(05e00134) SHA1(8baaa80815d5dabd38dc8600e357975b96d23b95) )
ROM_LOAD( "epr-12431.152", 0x20000, 0x10000, CRC(35572f4a) SHA1(d66456ecf7b59f81736fb873c553926b56bb3977))
- ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
ROM_LOAD32_BYTE( "mpr-12425.90", 0x000000, 0x20000, CRC(14bf2a15) SHA1(84db3ac09e4a8fe470ac051d8d5de1814b48bc72) )
ROM_LOAD32_BYTE( "mpr-12426.94", 0x000001, 0x20000, CRC(28b60dc0) SHA1(ad69d449434853445a076319a55a29014217a100) )
ROM_LOAD32_BYTE( "mpr-12427.98", 0x000002, 0x20000, CRC(0a367928) SHA1(bcb558b7c23906397e66a7f046b09eb5036c0888) )
@@ -2480,29 +3395,29 @@ ROM_START( smgp5 )
ROM_LOAD32_BYTE( "epr-12415.101", 0x180002, 0x20000, CRC(6080e9ed) SHA1(eb1b871453f76e6a65d20fa9d4bddc1c9f940b4d) )
ROM_LOAD32_BYTE( "epr-12416.105", 0x180003, 0x20000, CRC(6f1f2769) SHA1(d00d26cd1052d4b46c432b6b69cb2d83179d52a6) )
- ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
+ ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
// none??
- ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
ROM_LOAD( "epr-12436.17", 0x00000, 0x10000, CRC(16ec5f0a) SHA1(307b7388b5c36fd4bc2a61f7941db44858e03c5c) )
- ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
ROM_LOAD( "mpr-12437.11", 0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
ROM_LOAD( "mpr-12438.12", 0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
ROM_LOAD( "mpr-12439.13", 0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // not used in deluxe
- ROM_REGION( 0x10000, "soundcpu2", 0 ) // z80 on extra sound board
+ ROM_REGION( 0x10000, "mainpcb:soundcpu2", 0 ) // z80 on extra sound board
ROM_LOAD( "epr-12535.8", 0x00000, 0x10000, CRC(80453597) SHA1(d3fee7bb4a8964f5cf1cdae80fc3dde06c947839) )
- ROM_REGION( 0x80000, "pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
+ ROM_REGION( 0x80000, "mainpcb:pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
ROM_LOAD( "mpr-12437.20", 0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
ROM_LOAD( "mpr-12438.21", 0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
ROM_LOAD( "mpr-12439.22", 0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) )
- ROM_REGION( 0x10000, "commcpu", 0 ) // z80 on network board
+ ROM_REGION( 0x10000, "mainpcb:commcpu", 0 ) // z80 on network board
ROM_LOAD( "epr-12587.14", 0x00000, 0x08000, CRC(2afe648b) SHA1(b5bf86f3acbcc23c136185110acecf2c971294fa) ) // taken from twin cabinet dump
- ROM_REGION( 0x10000, "motorcpu", 0 ) // z80 on air board
+ ROM_REGION( 0x10000, "mainpcb:motorcpu", 0 ) // z80 on air board
ROM_LOAD( "epr-12505.8", 0x00000, 0x08000, CRC(5020788a) SHA1(ed6d1dfb8b6a62d17469e3d09a5b5b864c6b486c) )
ROM_END
@@ -2511,23 +3426,23 @@ ROM_END
// CPU: FD1094 (317-0125a)
//
ROM_START( smgpu )
- ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "epr-12561c.58", 0x00000, 0x20000, CRC(a5b0f3fe) SHA1(17103e56f822fdb52e72f597c01415ed375aa102) )
ROM_LOAD16_BYTE( "epr-12562c.63", 0x00001, 0x20000, CRC(799e55f4) SHA1(2e02cdc63bda47b087c81021018287cfa961c083) )
- ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
+ ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 ) // decryption key
ROM_LOAD( "317-0125a.key", 0x0000, 0x2000, CRC(3ecdb120) SHA1(c484198e4509d79214e78d4a47e9a7e339f7a2ed) )
- ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
+ ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
ROM_LOAD16_BYTE( "epr-12574a.20", 0x00000, 0x20000, CRC(f8b5c38b) SHA1(0184d5a1b71fb42d33dbaaad99d2c0fbc5750e7e) )
ROM_LOAD16_BYTE( "epr-12575a.29", 0x00001, 0x20000, CRC(248b1d17) SHA1(22f1e0d0d698abdf0cb1954f1f6382432a12c186) )
- ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
ROM_LOAD( "epr-12429.154", 0x00000, 0x10000, CRC(5851e614) SHA1(3dc97237ede2c6125e92ea6efc68a748d0ec69be) )
ROM_LOAD( "epr-12430.153", 0x10000, 0x10000, CRC(05e00134) SHA1(8baaa80815d5dabd38dc8600e357975b96d23b95) )
ROM_LOAD( "epr-12431.152", 0x20000, 0x10000, CRC(35572f4a) SHA1(d66456ecf7b59f81736fb873c553926b56bb3977))
- ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
ROM_LOAD32_BYTE( "mpr-12425.90", 0x000000, 0x20000, CRC(14bf2a15) SHA1(84db3ac09e4a8fe470ac051d8d5de1814b48bc72) )
ROM_LOAD32_BYTE( "mpr-12426.94", 0x000001, 0x20000, CRC(28b60dc0) SHA1(ad69d449434853445a076319a55a29014217a100) )
ROM_LOAD32_BYTE( "mpr-12427.98", 0x000002, 0x20000, CRC(0a367928) SHA1(bcb558b7c23906397e66a7f046b09eb5036c0888) )
@@ -2545,29 +3460,87 @@ ROM_START( smgpu )
ROM_LOAD32_BYTE( "epr-12611.101", 0x180002, 0x20000, CRC(bd5c6ab0) SHA1(7632dc4daa8eabe74769369856a8ba451e5bd420) ) // these differ from japan set
ROM_LOAD32_BYTE( "epr-12612.105", 0x180003, 0x20000, CRC(ac86e890) SHA1(7720c1c8df6de5de50254e97772c15161b796031) ) //
- ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
+ ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
// none??
- ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
ROM_LOAD( "epr-12436.17", 0x00000, 0x10000, CRC(16ec5f0a) SHA1(307b7388b5c36fd4bc2a61f7941db44858e03c5c) )
- ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
ROM_LOAD( "mpr-12437.11", 0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
ROM_LOAD( "mpr-12438.12", 0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
ROM_LOAD( "mpr-12439.13", 0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // not used in deluxe
- ROM_REGION( 0x10000, "soundcpu2", 0 ) // z80 on extra sound board
+ ROM_REGION( 0x10000, "mainpcb:soundcpu2", 0 ) // z80 on extra sound board
ROM_LOAD( "epr-12535.8", 0x00000, 0x10000, CRC(80453597) SHA1(d3fee7bb4a8964f5cf1cdae80fc3dde06c947839) ) // taken from deluxe cabinet dump
- ROM_REGION( 0x80000, "pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
+ ROM_REGION( 0x80000, "mainpcb:pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
ROM_LOAD( "mpr-12437.20", 0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) ) // taken from deluxe cabinet dump
ROM_LOAD( "mpr-12438.21", 0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) ) // "
ROM_LOAD( "mpr-12439.22", 0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // "
- ROM_REGION( 0x10000, "commcpu", 0 ) // z80 on network board
+ ROM_REGION( 0x10000, "mainpcb:commcpu", 0 ) // z80 on network board
ROM_LOAD( "epr-12587.14", 0x00000, 0x08000, CRC(2afe648b) SHA1(b5bf86f3acbcc23c136185110acecf2c971294fa) ) // taken from twin cabinet dump
- ROM_REGION( 0x10000, "motorcpu", 0 ) // z80 on air board
+ ROM_REGION( 0x10000, "mainpcb:motorcpu", 0 ) // z80 on air board
+ ROM_LOAD( "epr-12505.8", 0x00000, 0x08000, CRC(5020788a) SHA1(ed6d1dfb8b6a62d17469e3d09a5b5b864c6b486c) ) // taken from deluxe cabinet dump
+ROM_END
+
+ROM_START( smgpud )
+ ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-12561c.58", 0x00000, 0x20000, CRC(7053e379) SHA1(742e80e2ec2dedae1d6ba64fc563707790a30606) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12562c.63", 0x00001, 0x20000, CRC(db848e75) SHA1(0750c981a70a2cc5dfae6ce27598865847ff3156) )
+
+ ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
+ ROM_LOAD16_BYTE( "epr-12574a.20", 0x00000, 0x20000, CRC(f8b5c38b) SHA1(0184d5a1b71fb42d33dbaaad99d2c0fbc5750e7e) )
+ ROM_LOAD16_BYTE( "epr-12575a.29", 0x00001, 0x20000, CRC(248b1d17) SHA1(22f1e0d0d698abdf0cb1954f1f6382432a12c186) )
+
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-12429.154", 0x00000, 0x10000, CRC(5851e614) SHA1(3dc97237ede2c6125e92ea6efc68a748d0ec69be) )
+ ROM_LOAD( "epr-12430.153", 0x10000, 0x10000, CRC(05e00134) SHA1(8baaa80815d5dabd38dc8600e357975b96d23b95) )
+ ROM_LOAD( "epr-12431.152", 0x20000, 0x10000, CRC(35572f4a) SHA1(d66456ecf7b59f81736fb873c553926b56bb3977))
+
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
+ ROM_LOAD32_BYTE( "mpr-12425.90", 0x000000, 0x20000, CRC(14bf2a15) SHA1(84db3ac09e4a8fe470ac051d8d5de1814b48bc72) )
+ ROM_LOAD32_BYTE( "mpr-12426.94", 0x000001, 0x20000, CRC(28b60dc0) SHA1(ad69d449434853445a076319a55a29014217a100) )
+ ROM_LOAD32_BYTE( "mpr-12427.98", 0x000002, 0x20000, CRC(0a367928) SHA1(bcb558b7c23906397e66a7f046b09eb5036c0888) )
+ ROM_LOAD32_BYTE( "mpr-12428.102", 0x000003, 0x20000, CRC(efa80ad5) SHA1(9bc7c3fb60cc076f29a0af487d58e5b48f1c4b06) )
+ ROM_LOAD32_BYTE( "mpr-12421.91", 0x080000, 0x20000, CRC(25f46140) SHA1(ea75e364cf52636d100158f79be627e36da8c327) )
+ ROM_LOAD32_BYTE( "mpr-12422.95", 0x080001, 0x20000, CRC(cb51c8f6) SHA1(5af56ae1916c3212b8d5b9e4bccbbe1916694f89) )
+ ROM_LOAD32_BYTE( "mpr-12423.99", 0x080002, 0x20000, CRC(0be9818e) SHA1(637a8201416e73d53f7e2502ea0a5277e43c167d) )
+ ROM_LOAD32_BYTE( "mpr-12424.103", 0x080003, 0x20000, CRC(0ce00dfc) SHA1(3b1990977ec7ad4c3bea66527707cff2cd8d5a98) )
+ ROM_LOAD32_BYTE( "mpr-12417.92", 0x100000, 0x20000, CRC(a806eabf) SHA1(1a61a2135d92b42ee131fd3240bc8a17a96696ab) )
+ ROM_LOAD32_BYTE( "mpr-12418.96", 0x100001, 0x20000, CRC(ed1a0f2b) SHA1(1aa87292ca0465fa129d6be81d95dbb77332ecab) )
+ ROM_LOAD32_BYTE( "mpr-12419.100", 0x100002, 0x20000, CRC(ce4568cb) SHA1(1ed66e74ce94d41593b498827d9cc243f775d4ba) )
+ ROM_LOAD32_BYTE( "mpr-12420.104", 0x100003, 0x20000, CRC(679442eb) SHA1(f88ef0219497f955d8db6783f3636dad52928f46) )
+ ROM_LOAD32_BYTE( "epr-12609.93", 0x180000, 0x20000, CRC(a867812f) SHA1(f8950bf794b6c2ec767ffff837d28917b636dbe7) ) //
+ ROM_LOAD32_BYTE( "epr-12610.97", 0x180001, 0x20000, CRC(53b99417) SHA1(ab72d35c88695c777d24c5557e5d3ea2d446e51b) ) //
+ ROM_LOAD32_BYTE( "epr-12611.101", 0x180002, 0x20000, CRC(bd5c6ab0) SHA1(7632dc4daa8eabe74769369856a8ba451e5bd420) ) // these differ from japan set
+ ROM_LOAD32_BYTE( "epr-12612.105", 0x180003, 0x20000, CRC(ac86e890) SHA1(7720c1c8df6de5de50254e97772c15161b796031) ) //
+
+ ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
+ // none??
+
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-12436.17", 0x00000, 0x10000, CRC(16ec5f0a) SHA1(307b7388b5c36fd4bc2a61f7941db44858e03c5c) )
+
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_LOAD( "mpr-12437.11", 0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
+ ROM_LOAD( "mpr-12438.12", 0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
+ ROM_LOAD( "mpr-12439.13", 0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // not used in deluxe
+
+ ROM_REGION( 0x10000, "mainpcb:soundcpu2", 0 ) // z80 on extra sound board
+ ROM_LOAD( "epr-12535.8", 0x00000, 0x10000, CRC(80453597) SHA1(d3fee7bb4a8964f5cf1cdae80fc3dde06c947839) ) // taken from deluxe cabinet dump
+
+ ROM_REGION( 0x80000, "mainpcb:pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
+ ROM_LOAD( "mpr-12437.20", 0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) ) // taken from deluxe cabinet dump
+ ROM_LOAD( "mpr-12438.21", 0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) ) // "
+ ROM_LOAD( "mpr-12439.22", 0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // "
+
+ ROM_REGION( 0x10000, "mainpcb:commcpu", 0 ) // z80 on network board
+ ROM_LOAD( "epr-12587.14", 0x00000, 0x08000, CRC(2afe648b) SHA1(b5bf86f3acbcc23c136185110acecf2c971294fa) ) // taken from twin cabinet dump
+
+ ROM_REGION( 0x10000, "mainpcb:motorcpu", 0 ) // z80 on air board
ROM_LOAD( "epr-12505.8", 0x00000, 0x08000, CRC(5020788a) SHA1(ed6d1dfb8b6a62d17469e3d09a5b5b864c6b486c) ) // taken from deluxe cabinet dump
ROM_END
@@ -2577,23 +3550,81 @@ ROM_END
//
// very first US version with demo sound on by default
ROM_START( smgpu1 )
- ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "epr-12561b.58", 0x00000, 0x20000, CRC(80a32655) SHA1(fe1ffa8af9f1ca175ba90b24a0853329b08d19af) )
ROM_LOAD16_BYTE( "epr-12562b.63", 0x00001, 0x20000, CRC(d525f2a8) SHA1(f3241e11485c7428cd9f081ec6768fda39ae3250) )
- ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
+ ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 ) // decryption key
ROM_LOAD( "317-0125a.key", 0x0000, 0x2000, CRC(3ecdb120) SHA1(c484198e4509d79214e78d4a47e9a7e339f7a2ed) )
- ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
+ ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
+ ROM_LOAD16_BYTE( "epr-12574a.20", 0x00000, 0x20000, CRC(f8b5c38b) SHA1(0184d5a1b71fb42d33dbaaad99d2c0fbc5750e7e) )
+ ROM_LOAD16_BYTE( "epr-12575a.29", 0x00001, 0x20000, CRC(248b1d17) SHA1(22f1e0d0d698abdf0cb1954f1f6382432a12c186) )
+
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-12429.154", 0x00000, 0x10000, CRC(5851e614) SHA1(3dc97237ede2c6125e92ea6efc68a748d0ec69be) )
+ ROM_LOAD( "epr-12430.153", 0x10000, 0x10000, CRC(05e00134) SHA1(8baaa80815d5dabd38dc8600e357975b96d23b95) )
+ ROM_LOAD( "epr-12431.152", 0x20000, 0x10000, CRC(35572f4a) SHA1(d66456ecf7b59f81736fb873c553926b56bb3977))
+
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
+ ROM_LOAD32_BYTE( "mpr-12425.90", 0x000000, 0x20000, CRC(14bf2a15) SHA1(84db3ac09e4a8fe470ac051d8d5de1814b48bc72) )
+ ROM_LOAD32_BYTE( "mpr-12426.94", 0x000001, 0x20000, CRC(28b60dc0) SHA1(ad69d449434853445a076319a55a29014217a100) )
+ ROM_LOAD32_BYTE( "mpr-12427.98", 0x000002, 0x20000, CRC(0a367928) SHA1(bcb558b7c23906397e66a7f046b09eb5036c0888) )
+ ROM_LOAD32_BYTE( "mpr-12428.102", 0x000003, 0x20000, CRC(efa80ad5) SHA1(9bc7c3fb60cc076f29a0af487d58e5b48f1c4b06) )
+ ROM_LOAD32_BYTE( "mpr-12421.91", 0x080000, 0x20000, CRC(25f46140) SHA1(ea75e364cf52636d100158f79be627e36da8c327) )
+ ROM_LOAD32_BYTE( "mpr-12422.95", 0x080001, 0x20000, CRC(cb51c8f6) SHA1(5af56ae1916c3212b8d5b9e4bccbbe1916694f89) )
+ ROM_LOAD32_BYTE( "mpr-12423.99", 0x080002, 0x20000, CRC(0be9818e) SHA1(637a8201416e73d53f7e2502ea0a5277e43c167d) )
+ ROM_LOAD32_BYTE( "mpr-12424.103", 0x080003, 0x20000, CRC(0ce00dfc) SHA1(3b1990977ec7ad4c3bea66527707cff2cd8d5a98) )
+ ROM_LOAD32_BYTE( "mpr-12417.92", 0x100000, 0x20000, CRC(a806eabf) SHA1(1a61a2135d92b42ee131fd3240bc8a17a96696ab) )
+ ROM_LOAD32_BYTE( "mpr-12418.96", 0x100001, 0x20000, CRC(ed1a0f2b) SHA1(1aa87292ca0465fa129d6be81d95dbb77332ecab) )
+ ROM_LOAD32_BYTE( "mpr-12419.100", 0x100002, 0x20000, CRC(ce4568cb) SHA1(1ed66e74ce94d41593b498827d9cc243f775d4ba) )
+ ROM_LOAD32_BYTE( "mpr-12420.104", 0x100003, 0x20000, CRC(679442eb) SHA1(f88ef0219497f955d8db6783f3636dad52928f46) )
+ ROM_LOAD32_BYTE( "epr-12609.93", 0x180000, 0x20000, CRC(a867812f) SHA1(f8950bf794b6c2ec767ffff837d28917b636dbe7) ) //
+ ROM_LOAD32_BYTE( "epr-12610.97", 0x180001, 0x20000, CRC(53b99417) SHA1(ab72d35c88695c777d24c5557e5d3ea2d446e51b) ) //
+ ROM_LOAD32_BYTE( "epr-12611.101", 0x180002, 0x20000, CRC(bd5c6ab0) SHA1(7632dc4daa8eabe74769369856a8ba451e5bd420) ) // these differ from japan set
+ ROM_LOAD32_BYTE( "epr-12612.105", 0x180003, 0x20000, CRC(ac86e890) SHA1(7720c1c8df6de5de50254e97772c15161b796031) ) //
+
+ ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
+ // none??
+
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-12436.17", 0x00000, 0x10000, CRC(16ec5f0a) SHA1(307b7388b5c36fd4bc2a61f7941db44858e03c5c) )
+
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_LOAD( "mpr-12437.11", 0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
+ ROM_LOAD( "mpr-12438.12", 0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
+ ROM_LOAD( "mpr-12439.13", 0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // not used in deluxe
+
+ ROM_REGION( 0x10000, "mainpcb:soundcpu2", 0 ) // z80 on extra sound board
+ ROM_LOAD( "epr-12535.8", 0x00000, 0x10000, CRC(80453597) SHA1(d3fee7bb4a8964f5cf1cdae80fc3dde06c947839) ) // taken from deluxe cabinet dump
+
+ ROM_REGION( 0x80000, "mainpcb:pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
+ ROM_LOAD( "mpr-12437.20", 0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) ) // taken from deluxe cabinet dump
+ ROM_LOAD( "mpr-12438.21", 0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) ) // "
+ ROM_LOAD( "mpr-12439.22", 0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // "
+
+ ROM_REGION( 0x10000, "mainpcb:commcpu", 0 ) // z80 on network board
+ ROM_LOAD( "epr-12587.14", 0x00000, 0x08000, CRC(2afe648b) SHA1(b5bf86f3acbcc23c136185110acecf2c971294fa) ) // taken from twin cabinet dump
+
+ ROM_REGION( 0x10000, "mainpcb:motorcpu", 0 ) // z80 on air board
+ ROM_LOAD( "epr-12505.8", 0x00000, 0x08000, CRC(5020788a) SHA1(ed6d1dfb8b6a62d17469e3d09a5b5b864c6b486c) ) // taken from deluxe cabinet dump
+ROM_END
+
+ROM_START( smgpu1d )
+ ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-12561.58", 0x00000, 0x20000, CRC(554036d2) SHA1(7f82c8e96342f5b01209e0fcf56bafbb06d06458) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12562.63", 0x00001, 0x20000, CRC(773f2929) SHA1(aff10b08ed4cf1505228d8f2a785e71eeaea4089) )
+
+ ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
ROM_LOAD16_BYTE( "epr-12574a.20", 0x00000, 0x20000, CRC(f8b5c38b) SHA1(0184d5a1b71fb42d33dbaaad99d2c0fbc5750e7e) )
ROM_LOAD16_BYTE( "epr-12575a.29", 0x00001, 0x20000, CRC(248b1d17) SHA1(22f1e0d0d698abdf0cb1954f1f6382432a12c186) )
- ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
ROM_LOAD( "epr-12429.154", 0x00000, 0x10000, CRC(5851e614) SHA1(3dc97237ede2c6125e92ea6efc68a748d0ec69be) )
ROM_LOAD( "epr-12430.153", 0x10000, 0x10000, CRC(05e00134) SHA1(8baaa80815d5dabd38dc8600e357975b96d23b95) )
ROM_LOAD( "epr-12431.152", 0x20000, 0x10000, CRC(35572f4a) SHA1(d66456ecf7b59f81736fb873c553926b56bb3977))
- ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
ROM_LOAD32_BYTE( "mpr-12425.90", 0x000000, 0x20000, CRC(14bf2a15) SHA1(84db3ac09e4a8fe470ac051d8d5de1814b48bc72) )
ROM_LOAD32_BYTE( "mpr-12426.94", 0x000001, 0x20000, CRC(28b60dc0) SHA1(ad69d449434853445a076319a55a29014217a100) )
ROM_LOAD32_BYTE( "mpr-12427.98", 0x000002, 0x20000, CRC(0a367928) SHA1(bcb558b7c23906397e66a7f046b09eb5036c0888) )
@@ -2611,29 +3642,29 @@ ROM_START( smgpu1 )
ROM_LOAD32_BYTE( "epr-12611.101", 0x180002, 0x20000, CRC(bd5c6ab0) SHA1(7632dc4daa8eabe74769369856a8ba451e5bd420) ) // these differ from japan set
ROM_LOAD32_BYTE( "epr-12612.105", 0x180003, 0x20000, CRC(ac86e890) SHA1(7720c1c8df6de5de50254e97772c15161b796031) ) //
- ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
+ ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
// none??
- ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
ROM_LOAD( "epr-12436.17", 0x00000, 0x10000, CRC(16ec5f0a) SHA1(307b7388b5c36fd4bc2a61f7941db44858e03c5c) )
- ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
ROM_LOAD( "mpr-12437.11", 0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
ROM_LOAD( "mpr-12438.12", 0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
ROM_LOAD( "mpr-12439.13", 0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // not used in deluxe
- ROM_REGION( 0x10000, "soundcpu2", 0 ) // z80 on extra sound board
+ ROM_REGION( 0x10000, "mainpcb:soundcpu2", 0 ) // z80 on extra sound board
ROM_LOAD( "epr-12535.8", 0x00000, 0x10000, CRC(80453597) SHA1(d3fee7bb4a8964f5cf1cdae80fc3dde06c947839) ) // taken from deluxe cabinet dump
- ROM_REGION( 0x80000, "pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
+ ROM_REGION( 0x80000, "mainpcb:pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
ROM_LOAD( "mpr-12437.20", 0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) ) // taken from deluxe cabinet dump
ROM_LOAD( "mpr-12438.21", 0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) ) // "
ROM_LOAD( "mpr-12439.22", 0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // "
- ROM_REGION( 0x10000, "commcpu", 0 ) // z80 on network board
+ ROM_REGION( 0x10000, "mainpcb:commcpu", 0 ) // z80 on network board
ROM_LOAD( "epr-12587.14", 0x00000, 0x08000, CRC(2afe648b) SHA1(b5bf86f3acbcc23c136185110acecf2c971294fa) ) // taken from twin cabinet dump
- ROM_REGION( 0x10000, "motorcpu", 0 ) // z80 on air board
+ ROM_REGION( 0x10000, "mainpcb:motorcpu", 0 ) // z80 on air board
ROM_LOAD( "epr-12505.8", 0x00000, 0x08000, CRC(5020788a) SHA1(ed6d1dfb8b6a62d17469e3d09a5b5b864c6b486c) ) // taken from deluxe cabinet dump
ROM_END
@@ -2685,23 +3716,81 @@ ROM_END
// IC152: epr-12431.152 (27C512 EPROM)
//
ROM_START( smgpu2 )
- ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "epr-12561a.58", 0x00000, 0x20000, CRC(e505eb89) SHA1(bfb9a7a8b13ae454a92349e57215562477cd2cd2) )
ROM_LOAD16_BYTE( "epr-12562a.63", 0x00001, 0x20000, CRC(c3af4215) SHA1(c46829e08d5492515de5d3269b0e899705d0b108) )
- ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
+ ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 ) // decryption key
ROM_LOAD( "317-0125a.key", 0x0000, 0x2000, CRC(3ecdb120) SHA1(c484198e4509d79214e78d4a47e9a7e339f7a2ed) )
- ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
+ ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
+ ROM_LOAD16_BYTE( "epr-12574a.20", 0x00000, 0x20000, CRC(f8b5c38b) SHA1(0184d5a1b71fb42d33dbaaad99d2c0fbc5750e7e) )
+ ROM_LOAD16_BYTE( "epr-12575a.29", 0x00001, 0x20000, CRC(248b1d17) SHA1(22f1e0d0d698abdf0cb1954f1f6382432a12c186) )
+
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-12429.154", 0x00000, 0x10000, CRC(5851e614) SHA1(3dc97237ede2c6125e92ea6efc68a748d0ec69be) )
+ ROM_LOAD( "epr-12430.153", 0x10000, 0x10000, CRC(05e00134) SHA1(8baaa80815d5dabd38dc8600e357975b96d23b95) )
+ ROM_LOAD( "epr-12431.152", 0x20000, 0x10000, CRC(35572f4a) SHA1(d66456ecf7b59f81736fb873c553926b56bb3977))
+
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
+ ROM_LOAD32_BYTE( "mpr-12425.90", 0x000000, 0x20000, CRC(14bf2a15) SHA1(84db3ac09e4a8fe470ac051d8d5de1814b48bc72) )
+ ROM_LOAD32_BYTE( "mpr-12426.94", 0x000001, 0x20000, CRC(28b60dc0) SHA1(ad69d449434853445a076319a55a29014217a100) )
+ ROM_LOAD32_BYTE( "mpr-12427.98", 0x000002, 0x20000, CRC(0a367928) SHA1(bcb558b7c23906397e66a7f046b09eb5036c0888) )
+ ROM_LOAD32_BYTE( "mpr-12428.102", 0x000003, 0x20000, CRC(efa80ad5) SHA1(9bc7c3fb60cc076f29a0af487d58e5b48f1c4b06) )
+ ROM_LOAD32_BYTE( "mpr-12421.91", 0x080000, 0x20000, CRC(25f46140) SHA1(ea75e364cf52636d100158f79be627e36da8c327) )
+ ROM_LOAD32_BYTE( "mpr-12422.95", 0x080001, 0x20000, CRC(cb51c8f6) SHA1(5af56ae1916c3212b8d5b9e4bccbbe1916694f89) )
+ ROM_LOAD32_BYTE( "mpr-12423.99", 0x080002, 0x20000, CRC(0be9818e) SHA1(637a8201416e73d53f7e2502ea0a5277e43c167d) )
+ ROM_LOAD32_BYTE( "mpr-12424.103", 0x080003, 0x20000, CRC(0ce00dfc) SHA1(3b1990977ec7ad4c3bea66527707cff2cd8d5a98) )
+ ROM_LOAD32_BYTE( "mpr-12417.92", 0x100000, 0x20000, CRC(a806eabf) SHA1(1a61a2135d92b42ee131fd3240bc8a17a96696ab) )
+ ROM_LOAD32_BYTE( "mpr-12418.96", 0x100001, 0x20000, CRC(ed1a0f2b) SHA1(1aa87292ca0465fa129d6be81d95dbb77332ecab) )
+ ROM_LOAD32_BYTE( "mpr-12419.100", 0x100002, 0x20000, CRC(ce4568cb) SHA1(1ed66e74ce94d41593b498827d9cc243f775d4ba) )
+ ROM_LOAD32_BYTE( "mpr-12420.104", 0x100003, 0x20000, CRC(679442eb) SHA1(f88ef0219497f955d8db6783f3636dad52928f46) )
+ ROM_LOAD32_BYTE( "epr-12609.93", 0x180000, 0x20000, CRC(a867812f) SHA1(f8950bf794b6c2ec767ffff837d28917b636dbe7) ) //
+ ROM_LOAD32_BYTE( "epr-12610.97", 0x180001, 0x20000, CRC(53b99417) SHA1(ab72d35c88695c777d24c5557e5d3ea2d446e51b) ) //
+ ROM_LOAD32_BYTE( "epr-12611.101", 0x180002, 0x20000, CRC(bd5c6ab0) SHA1(7632dc4daa8eabe74769369856a8ba451e5bd420) ) // these differ from japan set
+ ROM_LOAD32_BYTE( "epr-12612.105", 0x180003, 0x20000, CRC(ac86e890) SHA1(7720c1c8df6de5de50254e97772c15161b796031) ) //
+
+ ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
+ // none??
+
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-12436.17", 0x00000, 0x10000, CRC(16ec5f0a) SHA1(307b7388b5c36fd4bc2a61f7941db44858e03c5c) )
+
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_LOAD( "mpr-12437.11", 0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
+ ROM_LOAD( "mpr-12438.12", 0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
+ ROM_LOAD( "mpr-12439.13", 0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // not used in deluxe
+
+ ROM_REGION( 0x10000, "mainpcb:soundcpu2", 0 ) // z80 on extra sound board
+ ROM_LOAD( "epr-12535.8", 0x00000, 0x10000, CRC(80453597) SHA1(d3fee7bb4a8964f5cf1cdae80fc3dde06c947839) ) // taken from deluxe cabinet dump
+
+ ROM_REGION( 0x80000, "mainpcb:pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
+ ROM_LOAD( "mpr-12437.20", 0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) ) // taken from deluxe cabinet dump
+ ROM_LOAD( "mpr-12438.21", 0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) ) // "
+ ROM_LOAD( "mpr-12439.22", 0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // "
+
+ ROM_REGION( 0x10000, "mainpcb:commcpu", 0 ) // z80 on network board
+ ROM_LOAD( "epr-12587.14", 0x00000, 0x08000, CRC(2afe648b) SHA1(b5bf86f3acbcc23c136185110acecf2c971294fa) )
+
+ ROM_REGION( 0x10000, "mainpcb:motorcpu", 0 ) // z80 on air board
+ ROM_LOAD( "epr-12505.8", 0x00000, 0x08000, CRC(5020788a) SHA1(ed6d1dfb8b6a62d17469e3d09a5b5b864c6b486c) ) // taken from deluxe cabinet dump
+ROM_END
+
+ROM_START( smgpu2d )
+ ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-12561a.58", 0x00000, 0x20000, CRC(30e6fb0e) SHA1(7cb079f7a1160e08a01ceebbcb528fb19bd3e5fb) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12562a.63", 0x00001, 0x20000, CRC(61b59994) SHA1(e8bbac96321f85a170e4cddbe0c66bc7e21024f0) )
+
+ ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
ROM_LOAD16_BYTE( "epr-12574a.20", 0x00000, 0x20000, CRC(f8b5c38b) SHA1(0184d5a1b71fb42d33dbaaad99d2c0fbc5750e7e) )
ROM_LOAD16_BYTE( "epr-12575a.29", 0x00001, 0x20000, CRC(248b1d17) SHA1(22f1e0d0d698abdf0cb1954f1f6382432a12c186) )
- ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
ROM_LOAD( "epr-12429.154", 0x00000, 0x10000, CRC(5851e614) SHA1(3dc97237ede2c6125e92ea6efc68a748d0ec69be) )
ROM_LOAD( "epr-12430.153", 0x10000, 0x10000, CRC(05e00134) SHA1(8baaa80815d5dabd38dc8600e357975b96d23b95) )
ROM_LOAD( "epr-12431.152", 0x20000, 0x10000, CRC(35572f4a) SHA1(d66456ecf7b59f81736fb873c553926b56bb3977))
- ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
ROM_LOAD32_BYTE( "mpr-12425.90", 0x000000, 0x20000, CRC(14bf2a15) SHA1(84db3ac09e4a8fe470ac051d8d5de1814b48bc72) )
ROM_LOAD32_BYTE( "mpr-12426.94", 0x000001, 0x20000, CRC(28b60dc0) SHA1(ad69d449434853445a076319a55a29014217a100) )
ROM_LOAD32_BYTE( "mpr-12427.98", 0x000002, 0x20000, CRC(0a367928) SHA1(bcb558b7c23906397e66a7f046b09eb5036c0888) )
@@ -2719,29 +3808,29 @@ ROM_START( smgpu2 )
ROM_LOAD32_BYTE( "epr-12611.101", 0x180002, 0x20000, CRC(bd5c6ab0) SHA1(7632dc4daa8eabe74769369856a8ba451e5bd420) ) // these differ from japan set
ROM_LOAD32_BYTE( "epr-12612.105", 0x180003, 0x20000, CRC(ac86e890) SHA1(7720c1c8df6de5de50254e97772c15161b796031) ) //
- ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
+ ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
// none??
- ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
ROM_LOAD( "epr-12436.17", 0x00000, 0x10000, CRC(16ec5f0a) SHA1(307b7388b5c36fd4bc2a61f7941db44858e03c5c) )
- ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
ROM_LOAD( "mpr-12437.11", 0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
ROM_LOAD( "mpr-12438.12", 0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
ROM_LOAD( "mpr-12439.13", 0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // not used in deluxe
- ROM_REGION( 0x10000, "soundcpu2", 0 ) // z80 on extra sound board
+ ROM_REGION( 0x10000, "mainpcb:soundcpu2", 0 ) // z80 on extra sound board
ROM_LOAD( "epr-12535.8", 0x00000, 0x10000, CRC(80453597) SHA1(d3fee7bb4a8964f5cf1cdae80fc3dde06c947839) ) // taken from deluxe cabinet dump
- ROM_REGION( 0x80000, "pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
+ ROM_REGION( 0x80000, "mainpcb:pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
ROM_LOAD( "mpr-12437.20", 0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) ) // taken from deluxe cabinet dump
ROM_LOAD( "mpr-12438.21", 0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) ) // "
ROM_LOAD( "mpr-12439.22", 0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // "
- ROM_REGION( 0x10000, "commcpu", 0 ) // z80 on network board
+ ROM_REGION( 0x10000, "mainpcb:commcpu", 0 ) // z80 on network board
ROM_LOAD( "epr-12587.14", 0x00000, 0x08000, CRC(2afe648b) SHA1(b5bf86f3acbcc23c136185110acecf2c971294fa) )
- ROM_REGION( 0x10000, "motorcpu", 0 ) // z80 on air board
+ ROM_REGION( 0x10000, "mainpcb:motorcpu", 0 ) // z80 on air board
ROM_LOAD( "epr-12505.8", 0x00000, 0x08000, CRC(5020788a) SHA1(ed6d1dfb8b6a62d17469e3d09a5b5b864c6b486c) ) // taken from deluxe cabinet dump
ROM_END
@@ -2750,23 +3839,23 @@ ROM_END
// CPU: FD1094 (317-0124a)
//
ROM_START( smgpj )
- ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "epr-12432b.58", 0x00000, 0x20000, CRC(c1a29db1) SHA1(0122d366899f98f7a60b0c9bddeece7995cebf83) )
ROM_LOAD16_BYTE( "epr-12433b.63", 0x00001, 0x20000, CRC(97199eb1) SHA1(3baccf8159821d4b4d5caedf5eb691f07372be93) )
- ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
+ ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 ) // decryption key
ROM_LOAD( "317-0124a.key", 0x0000, 0x2000, CRC(022a8a16) SHA1(4fd80105cb85ccba77cf1e76a21d6e245d5d2e7d) )
- ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
+ ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
ROM_LOAD16_BYTE( "epr-12441a.20", 0x00000, 0x20000, CRC(2c9599c1) SHA1(79206f38c2976bd9299ed37bf62ac26dd3fba801) )
ROM_LOAD16_BYTE( "epr-12442a.29", 0x00001, 0x20000, CRC(77a5ec16) SHA1(b8cf6a3f12689d89bbdd9fb39d1cb7d1a3c10602) )
- ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
ROM_LOAD( "epr-12429.154", 0x00000, 0x10000, CRC(5851e614) SHA1(3dc97237ede2c6125e92ea6efc68a748d0ec69be) )
ROM_LOAD( "epr-12430.153", 0x10000, 0x10000, CRC(05e00134) SHA1(8baaa80815d5dabd38dc8600e357975b96d23b95) )
ROM_LOAD( "epr-12431.152", 0x20000, 0x10000, CRC(35572f4a) SHA1(d66456ecf7b59f81736fb873c553926b56bb3977))
- ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
ROM_LOAD32_BYTE( "mpr-12425.90", 0x000000, 0x20000, CRC(14bf2a15) SHA1(84db3ac09e4a8fe470ac051d8d5de1814b48bc72) )
ROM_LOAD32_BYTE( "mpr-12426.94", 0x000001, 0x20000, CRC(28b60dc0) SHA1(ad69d449434853445a076319a55a29014217a100) )
ROM_LOAD32_BYTE( "mpr-12427.98", 0x000002, 0x20000, CRC(0a367928) SHA1(bcb558b7c23906397e66a7f046b09eb5036c0888) )
@@ -2784,54 +3873,114 @@ ROM_START( smgpj )
ROM_LOAD32_BYTE( "epr-12415.101", 0x180002, 0x20000, CRC(6080e9ed) SHA1(eb1b871453f76e6a65d20fa9d4bddc1c9f940b4d) )
ROM_LOAD32_BYTE( "epr-12416.105", 0x180003, 0x20000, CRC(6f1f2769) SHA1(d00d26cd1052d4b46c432b6b69cb2d83179d52a6) )
- ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
+ ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
// none??
- ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
ROM_LOAD( "epr-12436.17", 0x00000, 0x10000, CRC(16ec5f0a) SHA1(307b7388b5c36fd4bc2a61f7941db44858e03c5c) )
- ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
ROM_LOAD( "mpr-12437.11", 0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
ROM_LOAD( "mpr-12438.12", 0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
ROM_LOAD( "mpr-12439.13", 0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // not used in deluxe
- ROM_REGION( 0x10000, "soundcpu2", 0 ) // z80 on extra sound board
+ ROM_REGION( 0x10000, "mainpcb:soundcpu2", 0 ) // z80 on extra sound board
ROM_LOAD( "epr-12535.8", 0x00000, 0x10000, CRC(80453597) SHA1(d3fee7bb4a8964f5cf1cdae80fc3dde06c947839) ) // taken from deluxe cabinet dump
- ROM_REGION( 0x80000, "pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
+ ROM_REGION( 0x80000, "mainpcb:pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
ROM_LOAD( "mpr-12437.20", 0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) ) // taken from deluxe cabinet dump
ROM_LOAD( "mpr-12438.21", 0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) ) // "
ROM_LOAD( "mpr-12439.22", 0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // "
- ROM_REGION( 0x10000, "commcpu", 0 ) // z80 on network board
+ ROM_REGION( 0x10000, "mainpcb:commcpu", 0 ) // z80 on network board
ROM_LOAD( "epr-12587.14", 0x00000, 0x08000, CRC(2afe648b) SHA1(b5bf86f3acbcc23c136185110acecf2c971294fa) ) // taken from twin cabinet dump
- ROM_REGION( 0x10000, "motorcpu", 0 ) // z80 on air board
+ ROM_REGION( 0x10000, "mainpcb:motorcpu", 0 ) // z80 on air board
ROM_LOAD( "epr-12505.8", 0x00000, 0x08000, CRC(5020788a) SHA1(ed6d1dfb8b6a62d17469e3d09a5b5b864c6b486c) ) // taken from deluxe cabinet dump
ROM_END
+
+ROM_START( smgpjd )
+ ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-12432b.58", 0x00000, 0x20000, CRC(1c46c4de) SHA1(32711dfb8209317c6c2fc0fbb8f04b907123a4dc) )
+ ROM_LOAD16_BYTE( "bootleg_epr-12433b.63", 0x00001, 0x20000, CRC(ae8a4942) SHA1(53f52e6431353d611ac6a3520af053f955b79b37))
+
+ ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
+ ROM_LOAD16_BYTE( "epr-12441a.20", 0x00000, 0x20000, CRC(2c9599c1) SHA1(79206f38c2976bd9299ed37bf62ac26dd3fba801) )
+ ROM_LOAD16_BYTE( "epr-12442a.29", 0x00001, 0x20000, CRC(77a5ec16) SHA1(b8cf6a3f12689d89bbdd9fb39d1cb7d1a3c10602) )
+
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-12429.154", 0x00000, 0x10000, CRC(5851e614) SHA1(3dc97237ede2c6125e92ea6efc68a748d0ec69be) )
+ ROM_LOAD( "epr-12430.153", 0x10000, 0x10000, CRC(05e00134) SHA1(8baaa80815d5dabd38dc8600e357975b96d23b95) )
+ ROM_LOAD( "epr-12431.152", 0x20000, 0x10000, CRC(35572f4a) SHA1(d66456ecf7b59f81736fb873c553926b56bb3977))
+
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
+ ROM_LOAD32_BYTE( "mpr-12425.90", 0x000000, 0x20000, CRC(14bf2a15) SHA1(84db3ac09e4a8fe470ac051d8d5de1814b48bc72) )
+ ROM_LOAD32_BYTE( "mpr-12426.94", 0x000001, 0x20000, CRC(28b60dc0) SHA1(ad69d449434853445a076319a55a29014217a100) )
+ ROM_LOAD32_BYTE( "mpr-12427.98", 0x000002, 0x20000, CRC(0a367928) SHA1(bcb558b7c23906397e66a7f046b09eb5036c0888) )
+ ROM_LOAD32_BYTE( "mpr-12428.102", 0x000003, 0x20000, CRC(efa80ad5) SHA1(9bc7c3fb60cc076f29a0af487d58e5b48f1c4b06) )
+ ROM_LOAD32_BYTE( "mpr-12421.91", 0x080000, 0x20000, CRC(25f46140) SHA1(ea75e364cf52636d100158f79be627e36da8c327) )
+ ROM_LOAD32_BYTE( "mpr-12422.95", 0x080001, 0x20000, CRC(cb51c8f6) SHA1(5af56ae1916c3212b8d5b9e4bccbbe1916694f89) )
+ ROM_LOAD32_BYTE( "mpr-12423.99", 0x080002, 0x20000, CRC(0be9818e) SHA1(637a8201416e73d53f7e2502ea0a5277e43c167d) )
+ ROM_LOAD32_BYTE( "mpr-12424.103", 0x080003, 0x20000, CRC(0ce00dfc) SHA1(3b1990977ec7ad4c3bea66527707cff2cd8d5a98) )
+ ROM_LOAD32_BYTE( "mpr-12417.92", 0x100000, 0x20000, CRC(a806eabf) SHA1(1a61a2135d92b42ee131fd3240bc8a17a96696ab) )
+ ROM_LOAD32_BYTE( "mpr-12418.96", 0x100001, 0x20000, CRC(ed1a0f2b) SHA1(1aa87292ca0465fa129d6be81d95dbb77332ecab) )
+ ROM_LOAD32_BYTE( "mpr-12419.100", 0x100002, 0x20000, CRC(ce4568cb) SHA1(1ed66e74ce94d41593b498827d9cc243f775d4ba) )
+ ROM_LOAD32_BYTE( "mpr-12420.104", 0x100003, 0x20000, CRC(679442eb) SHA1(f88ef0219497f955d8db6783f3636dad52928f46) )
+ ROM_LOAD32_BYTE( "epr-12413.93", 0x180000, 0x20000, CRC(2f1693df) SHA1(ba1e654a1b5fae661b0dae4a8ed04ff50fb546a2) )
+ ROM_LOAD32_BYTE( "epr-12414.97", 0x180001, 0x20000, CRC(c78f3d45) SHA1(665750907ed11c89c2ea5c410eac2808445131ae) )
+ ROM_LOAD32_BYTE( "epr-12415.101", 0x180002, 0x20000, CRC(6080e9ed) SHA1(eb1b871453f76e6a65d20fa9d4bddc1c9f940b4d) )
+ ROM_LOAD32_BYTE( "epr-12416.105", 0x180003, 0x20000, CRC(6f1f2769) SHA1(d00d26cd1052d4b46c432b6b69cb2d83179d52a6) )
+
+ ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
+ // none??
+
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-12436.17", 0x00000, 0x10000, CRC(16ec5f0a) SHA1(307b7388b5c36fd4bc2a61f7941db44858e03c5c) )
+
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_LOAD( "mpr-12437.11", 0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
+ ROM_LOAD( "mpr-12438.12", 0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
+ ROM_LOAD( "mpr-12439.13", 0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // not used in deluxe
+
+ ROM_REGION( 0x10000, "mainpcb:soundcpu2", 0 ) // z80 on extra sound board
+ ROM_LOAD( "epr-12535.8", 0x00000, 0x10000, CRC(80453597) SHA1(d3fee7bb4a8964f5cf1cdae80fc3dde06c947839) ) // taken from deluxe cabinet dump
+
+ ROM_REGION( 0x80000, "mainpcb:pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
+ ROM_LOAD( "mpr-12437.20", 0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) ) // taken from deluxe cabinet dump
+ ROM_LOAD( "mpr-12438.21", 0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) ) // "
+ ROM_LOAD( "mpr-12439.22", 0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // "
+
+ ROM_REGION( 0x10000, "mainpcb:commcpu", 0 ) // z80 on network board
+ ROM_LOAD( "epr-12587.14", 0x00000, 0x08000, CRC(2afe648b) SHA1(b5bf86f3acbcc23c136185110acecf2c971294fa) ) // taken from twin cabinet dump
+
+ ROM_REGION( 0x10000, "mainpcb:motorcpu", 0 ) // z80 on air board
+ ROM_LOAD( "epr-12505.8", 0x00000, 0x08000, CRC(5020788a) SHA1(ed6d1dfb8b6a62d17469e3d09a5b5b864c6b486c) ) // taken from deluxe cabinet dump
+ROM_END
+
+
//*************************************************************************************************************************
// Super Monaco GP, Sega X-board
// CPU: FD1094 (317-0124a)
//
ROM_START( smgpja )
- ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "epr-12432a.58", 0x00000, 0x20000, CRC(22517672) SHA1(db9ac40e83e9786bc9dad70f62c2080d3df694ee) )
ROM_LOAD16_BYTE( "epr-12433a.63", 0x00001, 0x20000, CRC(a46b5d13) SHA1(3a7de5cb6f3e6d726f0ea886a87125dedc6f849f) )
- ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
+ ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 ) // decryption key
ROM_LOAD( "317-0124a.key", 0x0000, 0x2000, CRC(022a8a16) SHA1(4fd80105cb85ccba77cf1e76a21d6e245d5d2e7d) )
- ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
+ ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
ROM_LOAD16_BYTE( "epr-12441a.20", 0x00000, 0x20000, CRC(2c9599c1) SHA1(79206f38c2976bd9299ed37bf62ac26dd3fba801) )
ROM_LOAD16_BYTE( "epr-12442a.29", 0x00001, 0x20000, CRC(77a5ec16) SHA1(b8cf6a3f12689d89bbdd9fb39d1cb7d1a3c10602) )
- ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
ROM_LOAD( "epr-12429.154", 0x00000, 0x10000, CRC(5851e614) SHA1(3dc97237ede2c6125e92ea6efc68a748d0ec69be) )
ROM_LOAD( "epr-12430.153", 0x10000, 0x10000, CRC(05e00134) SHA1(8baaa80815d5dabd38dc8600e357975b96d23b95) )
ROM_LOAD( "epr-12431.152", 0x20000, 0x10000, CRC(35572f4a) SHA1(d66456ecf7b59f81736fb873c553926b56bb3977))
- ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
ROM_LOAD32_BYTE( "mpr-12425.90", 0x000000, 0x20000, CRC(14bf2a15) SHA1(84db3ac09e4a8fe470ac051d8d5de1814b48bc72) )
ROM_LOAD32_BYTE( "mpr-12426.94", 0x000001, 0x20000, CRC(28b60dc0) SHA1(ad69d449434853445a076319a55a29014217a100) )
ROM_LOAD32_BYTE( "mpr-12427.98", 0x000002, 0x20000, CRC(0a367928) SHA1(bcb558b7c23906397e66a7f046b09eb5036c0888) )
@@ -2849,29 +3998,29 @@ ROM_START( smgpja )
ROM_LOAD32_BYTE( "epr-12415.101", 0x180002, 0x20000, CRC(6080e9ed) SHA1(eb1b871453f76e6a65d20fa9d4bddc1c9f940b4d) )
ROM_LOAD32_BYTE( "epr-12416.105", 0x180003, 0x20000, CRC(6f1f2769) SHA1(d00d26cd1052d4b46c432b6b69cb2d83179d52a6) )
- ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
+ ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
// none??
- ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
ROM_LOAD( "epr-12436.17", 0x00000, 0x10000, CRC(16ec5f0a) SHA1(307b7388b5c36fd4bc2a61f7941db44858e03c5c) )
- ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
ROM_LOAD( "mpr-12437.11", 0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
ROM_LOAD( "mpr-12438.12", 0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
ROM_LOAD( "mpr-12439.13", 0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // not used in deluxe
- ROM_REGION( 0x10000, "soundcpu2", 0 ) // z80 on extra sound board
+ ROM_REGION( 0x10000, "mainpcb:soundcpu2", 0 ) // z80 on extra sound board
ROM_LOAD( "epr-12535.8", 0x00000, 0x10000, CRC(80453597) SHA1(d3fee7bb4a8964f5cf1cdae80fc3dde06c947839) ) // taken from deluxe cabinet dump
- ROM_REGION( 0x80000, "pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
+ ROM_REGION( 0x80000, "mainpcb:pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
ROM_LOAD( "mpr-12437.20", 0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) ) // taken from deluxe cabinet dump
ROM_LOAD( "mpr-12438.21", 0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) ) // "
ROM_LOAD( "mpr-12439.22", 0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // "
- ROM_REGION( 0x10000, "commcpu", 0 ) // z80 on network board
+ ROM_REGION( 0x10000, "mainpcb:commcpu", 0 ) // z80 on network board
ROM_LOAD( "epr-12587.14", 0x00000, 0x08000, CRC(2afe648b) SHA1(b5bf86f3acbcc23c136185110acecf2c971294fa) ) // taken from twin cabinet dump
- ROM_REGION( 0x10000, "motorcpu", 0 ) // z80 on air board
+ ROM_REGION( 0x10000, "mainpcb:motorcpu", 0 ) // z80 on air board
ROM_LOAD( "epr-12505.8", 0x00000, 0x08000, CRC(5020788a) SHA1(ed6d1dfb8b6a62d17469e3d09a5b5b864c6b486c) ) // taken from deluxe cabinet dump
ROM_END
@@ -2883,25 +4032,25 @@ ROM_END
// CPU: FD1094 (317-0169b)
//
ROM_START( abcop )
- ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "epr-13568b.ic58", 0x00000, 0x20000, CRC(f88db35b) SHA1(7d85c1194a2aa08427333d2ffc2a8d4f7e1beff0) )
ROM_LOAD16_BYTE( "epr-13556b.ic63", 0x00001, 0x20000, CRC(337bf32e) SHA1(dafb9d9b3baf79ca76355278e8a14294f186790a) )
ROM_LOAD16_BYTE( "epr-13559.ic57", 0x40000, 0x20000, CRC(4588bf19) SHA1(6a8b3d4450ac0bc41b46e6a4e1b44d82112fcd64) )
ROM_LOAD16_BYTE( "epr-13558.ic62", 0x40001, 0x20000, CRC(11259ed4) SHA1(e7de174a0bdb1d1111e5e419f1d501ab5be1d32d) )
- ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
+ ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 ) // decryption key
ROM_LOAD( "317-0169b.key", 0x0000, 0x2000, CRC(058da36e) SHA1(ab3f68a90725063c68fc5d0f8dbece1f8940dc7d) )
- ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
+ ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
ROM_LOAD16_BYTE( "epr-13566.ic20", 0x00000, 0x20000, CRC(22e52f32) SHA1(c67a4ccb88becc58dddcbfea0a1ac2017f7b2929) )
ROM_LOAD16_BYTE( "epr-13565.ic29", 0x00001, 0x20000, CRC(a21784bd) SHA1(b40ba0ef65bbfe514625253f6aeec14bf4bcf08c) )
- ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
ROM_LOAD( "opr-13553.ic154", 0x00000, 0x10000, CRC(8c418837) SHA1(e325db39fae768865e20d2cd1ee2b91a9b0165f5) )
ROM_LOAD( "opr-13554.ic153", 0x10000, 0x10000, CRC(4e3df9f0) SHA1(8b481c2cd25c58612ac8ac3ffb7eeae9ca247d2e) )
ROM_LOAD( "opr-13555.ic152", 0x20000, 0x10000, CRC(6c4a1d42) SHA1(6c37b045b21173f1e2f7bd19d01c00979b8107fb) )
- ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
ROM_LOAD32_BYTE( "opr-13552.ic90", 0x000000, 0x20000, CRC(cc2cf706) SHA1(ad39c22e652ebcd90ffb5e17ae35985645f93c71) )
ROM_LOAD32_BYTE( "opr-13551.ic94", 0x000001, 0x20000, CRC(d6f276c1) SHA1(9ec68157ea460e09ef4b69aa8ea17687dc47ea59) )
ROM_LOAD32_BYTE( "opr-13550.ic98", 0x000002, 0x20000, CRC(f16518dd) SHA1(a5f1785cd28f03069cb238ac92c6afb5a26cbd37) )
@@ -2919,13 +4068,59 @@ ROM_START( abcop )
ROM_LOAD32_BYTE( "opr-13538.ic101", 0x180002, 0x20000, CRC(bf9a4586) SHA1(6013dee83375d72d262c8c04c2e668afea2e216c) )
ROM_LOAD32_BYTE( "opr-13537.ic105", 0x180003, 0x20000, CRC(fa14ed3e) SHA1(d684496ade2517696a56c1423dd4686d283c133f) )
- ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // ground data
+ ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // ground data
ROM_LOAD( "opr-13564.ic40", 0x00000, 0x10000, CRC(e70ba138) SHA1(85eb6618f408642227056d278f10dec8dcc5a80d) )
- ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
ROM_LOAD( "epr-13560.ic17", 0x00000, 0x10000, CRC(83050925) SHA1(118710e5789c7999bb7326df4d7bd207cbffdfd4) )
- ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_LOAD( "opr-13563.ic11", 0x00000, 0x20000, CRC(4083e74f) SHA1(e48c7ce0aa3406af0bbf79c169a8157693c97041) )
+ ROM_LOAD( "opr-13562.ic12", 0x20000, 0x20000, CRC(3cc3968f) SHA1(d25647f6a3fa939ba30e03e7334362ef0749b23a) )
+ ROM_LOAD( "opr-13561.ic13", 0x40000, 0x20000, CRC(80a7c02a) SHA1(7e8c1b9ba270d8657dbe90ed8be2e4b6463e5928) )
+ROM_END
+
+ROM_START( abcopd )
+ ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr13568b.ic58", 0x00000, 0x20000, CRC(3c367a01) SHA1(ddb37a399a67818c5b14c4fac1f25d0e660a7b0f) )
+ ROM_LOAD16_BYTE( "bootleg_epr13556b.ic63", 0x00001, 0x20000, CRC(1078246e) SHA1(3490f46c1f52d41f96fb449bdcee5fbec871aaca) )
+ ROM_LOAD16_BYTE( "epr-13559.ic57", 0x40000, 0x20000, CRC(4588bf19) SHA1(6a8b3d4450ac0bc41b46e6a4e1b44d82112fcd64) )
+ ROM_LOAD16_BYTE( "epr-13558.ic62", 0x40001, 0x20000, CRC(11259ed4) SHA1(e7de174a0bdb1d1111e5e419f1d501ab5be1d32d) )
+
+ ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
+ ROM_LOAD16_BYTE( "epr-13566.ic20", 0x00000, 0x20000, CRC(22e52f32) SHA1(c67a4ccb88becc58dddcbfea0a1ac2017f7b2929) )
+ ROM_LOAD16_BYTE( "epr-13565.ic29", 0x00001, 0x20000, CRC(a21784bd) SHA1(b40ba0ef65bbfe514625253f6aeec14bf4bcf08c) )
+
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
+ ROM_LOAD( "opr-13553.ic154", 0x00000, 0x10000, CRC(8c418837) SHA1(e325db39fae768865e20d2cd1ee2b91a9b0165f5) )
+ ROM_LOAD( "opr-13554.ic153", 0x10000, 0x10000, CRC(4e3df9f0) SHA1(8b481c2cd25c58612ac8ac3ffb7eeae9ca247d2e) )
+ ROM_LOAD( "opr-13555.ic152", 0x20000, 0x10000, CRC(6c4a1d42) SHA1(6c37b045b21173f1e2f7bd19d01c00979b8107fb) )
+
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
+ ROM_LOAD32_BYTE( "opr-13552.ic90", 0x000000, 0x20000, CRC(cc2cf706) SHA1(ad39c22e652ebcd90ffb5e17ae35985645f93c71) )
+ ROM_LOAD32_BYTE( "opr-13551.ic94", 0x000001, 0x20000, CRC(d6f276c1) SHA1(9ec68157ea460e09ef4b69aa8ea17687dc47ea59) )
+ ROM_LOAD32_BYTE( "opr-13550.ic98", 0x000002, 0x20000, CRC(f16518dd) SHA1(a5f1785cd28f03069cb238ac92c6afb5a26cbd37) )
+ ROM_LOAD32_BYTE( "opr-13549.ic102", 0x000003, 0x20000, CRC(cba407a7) SHA1(e7684d3b40baa6d832b887fd85ad67fbad8aa7de) )
+ ROM_LOAD32_BYTE( "opr-13548.ic91", 0x080000, 0x20000, CRC(080fd805) SHA1(e729565815a3a37462cfee460b7392d2f08e96e5) )
+ ROM_LOAD32_BYTE( "opr-13547.ic95", 0x080001, 0x20000, CRC(42d4dd68) SHA1(6ae1f3585ebb20fd2908456d6fa41a893261277e) )
+ ROM_LOAD32_BYTE( "opr-13546.ic99", 0x080002, 0x20000, CRC(ca6fbf3d) SHA1(49c3516d87f1546fa7efe785fc5c064d90b1cb8e) )
+ ROM_LOAD32_BYTE( "opr-13545.ic103", 0x080003, 0x20000, CRC(c9e58dd2) SHA1(ace2e1630d8df2454183ffdbe26d8cb6d199e940) )
+ ROM_LOAD32_BYTE( "opr-13544.ic92", 0x100000, 0x20000, CRC(9c1436d9) SHA1(5156e1b5c7461f6dc0d449b86b6b72153b290a4c) )
+ ROM_LOAD32_BYTE( "opr-13543.ic96", 0x100001, 0x20000, CRC(2c1c8f0e) SHA1(19c9fd4272a3db18381f435ed6cd01f994c655e7) )
+ ROM_LOAD32_BYTE( "opr-13542.ic100", 0x100002, 0x20000, CRC(01fd52b8) SHA1(b4ab13c7b2b2ffcfdab37d8e4855d5ef8823f1cc) )
+ ROM_LOAD32_BYTE( "opr-13541.ic104", 0x100003, 0x20000, CRC(a45c547b) SHA1(d93aaa850d14a7699a1b0411e823088a9bce7553) )
+ ROM_LOAD32_BYTE( "opr-13540.ic93", 0x180000, 0x20000, CRC(84b42ab0) SHA1(d24ba7fe23463fc5813ef26e0395951559d6d162) )
+ ROM_LOAD32_BYTE( "opr-13539.ic97", 0x180001, 0x20000, CRC(cd6e524f) SHA1(e6df2552a84b2da95301486379c78679b0297634) )
+ ROM_LOAD32_BYTE( "opr-13538.ic101", 0x180002, 0x20000, CRC(bf9a4586) SHA1(6013dee83375d72d262c8c04c2e668afea2e216c) )
+ ROM_LOAD32_BYTE( "opr-13537.ic105", 0x180003, 0x20000, CRC(fa14ed3e) SHA1(d684496ade2517696a56c1423dd4686d283c133f) )
+
+ ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // ground data
+ ROM_LOAD( "opr-13564.ic40", 0x00000, 0x10000, CRC(e70ba138) SHA1(85eb6618f408642227056d278f10dec8dcc5a80d) )
+
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-13560.ic17", 0x00000, 0x10000, CRC(83050925) SHA1(118710e5789c7999bb7326df4d7bd207cbffdfd4) )
+
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
ROM_LOAD( "opr-13563.ic11", 0x00000, 0x20000, CRC(4083e74f) SHA1(e48c7ce0aa3406af0bbf79c169a8157693c97041) )
ROM_LOAD( "opr-13562.ic12", 0x20000, 0x20000, CRC(3cc3968f) SHA1(d25647f6a3fa939ba30e03e7334362ef0749b23a) )
ROM_LOAD( "opr-13561.ic13", 0x40000, 0x20000, CRC(80a7c02a) SHA1(7e8c1b9ba270d8657dbe90ed8be2e4b6463e5928) )
@@ -2936,25 +4131,71 @@ ROM_END
// CPU: FD1094 (317-0169b)
//
ROM_START( abcopj )
- ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "epr-13557b.ic58", 0x00000, 0x20000, CRC(554e106a) SHA1(3166957ded67c82d4710bdd20eb88006e14c6a3e) )
ROM_LOAD16_BYTE( "epr-13556b.ic63", 0x00001, 0x20000, CRC(337bf32e) SHA1(dafb9d9b3baf79ca76355278e8a14294f186790a) )
ROM_LOAD16_BYTE( "epr-13559.ic57", 0x40000, 0x20000, CRC(4588bf19) SHA1(6a8b3d4450ac0bc41b46e6a4e1b44d82112fcd64) )
ROM_LOAD16_BYTE( "epr-13558.ic62", 0x40001, 0x20000, CRC(11259ed4) SHA1(e7de174a0bdb1d1111e5e419f1d501ab5be1d32d) )
- ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
+ ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 ) // decryption key
ROM_LOAD( "317-0169b.key", 0x0000, 0x2000, CRC(058da36e) SHA1(ab3f68a90725063c68fc5d0f8dbece1f8940dc7d) )
- ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
+ ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
+ ROM_LOAD16_BYTE( "epr-13566.ic20", 0x00000, 0x20000, CRC(22e52f32) SHA1(c67a4ccb88becc58dddcbfea0a1ac2017f7b2929) )
+ ROM_LOAD16_BYTE( "epr-13565.ic29", 0x00001, 0x20000, CRC(a21784bd) SHA1(b40ba0ef65bbfe514625253f6aeec14bf4bcf08c) )
+
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
+ ROM_LOAD( "opr-13553.ic154", 0x00000, 0x10000, CRC(8c418837) SHA1(e325db39fae768865e20d2cd1ee2b91a9b0165f5) )
+ ROM_LOAD( "opr-13554.ic153", 0x10000, 0x10000, CRC(4e3df9f0) SHA1(8b481c2cd25c58612ac8ac3ffb7eeae9ca247d2e) )
+ ROM_LOAD( "opr-13555.ic152", 0x20000, 0x10000, CRC(6c4a1d42) SHA1(6c37b045b21173f1e2f7bd19d01c00979b8107fb) )
+
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
+ ROM_LOAD32_BYTE( "opr-13552.ic90", 0x000000, 0x20000, CRC(cc2cf706) SHA1(ad39c22e652ebcd90ffb5e17ae35985645f93c71) )
+ ROM_LOAD32_BYTE( "opr-13551.ic94", 0x000001, 0x20000, CRC(d6f276c1) SHA1(9ec68157ea460e09ef4b69aa8ea17687dc47ea59) )
+ ROM_LOAD32_BYTE( "opr-13550.ic98", 0x000002, 0x20000, CRC(f16518dd) SHA1(a5f1785cd28f03069cb238ac92c6afb5a26cbd37) )
+ ROM_LOAD32_BYTE( "opr-13549.ic102", 0x000003, 0x20000, CRC(cba407a7) SHA1(e7684d3b40baa6d832b887fd85ad67fbad8aa7de) )
+ ROM_LOAD32_BYTE( "opr-13548.ic91", 0x080000, 0x20000, CRC(080fd805) SHA1(e729565815a3a37462cfee460b7392d2f08e96e5) )
+ ROM_LOAD32_BYTE( "opr-13547.ic95", 0x080001, 0x20000, CRC(42d4dd68) SHA1(6ae1f3585ebb20fd2908456d6fa41a893261277e) )
+ ROM_LOAD32_BYTE( "opr-13546.ic99", 0x080002, 0x20000, CRC(ca6fbf3d) SHA1(49c3516d87f1546fa7efe785fc5c064d90b1cb8e) )
+ ROM_LOAD32_BYTE( "opr-13545.ic103", 0x080003, 0x20000, CRC(c9e58dd2) SHA1(ace2e1630d8df2454183ffdbe26d8cb6d199e940) )
+ ROM_LOAD32_BYTE( "opr-13544.ic92", 0x100000, 0x20000, CRC(9c1436d9) SHA1(5156e1b5c7461f6dc0d449b86b6b72153b290a4c) )
+ ROM_LOAD32_BYTE( "opr-13543.ic96", 0x100001, 0x20000, CRC(2c1c8f0e) SHA1(19c9fd4272a3db18381f435ed6cd01f994c655e7) )
+ ROM_LOAD32_BYTE( "opr-13542.ic100", 0x100002, 0x20000, CRC(01fd52b8) SHA1(b4ab13c7b2b2ffcfdab37d8e4855d5ef8823f1cc) )
+ ROM_LOAD32_BYTE( "opr-13541.ic104", 0x100003, 0x20000, CRC(a45c547b) SHA1(d93aaa850d14a7699a1b0411e823088a9bce7553) )
+ ROM_LOAD32_BYTE( "opr-13540.ic93", 0x180000, 0x20000, CRC(84b42ab0) SHA1(d24ba7fe23463fc5813ef26e0395951559d6d162) )
+ ROM_LOAD32_BYTE( "opr-13539.ic97", 0x180001, 0x20000, CRC(cd6e524f) SHA1(e6df2552a84b2da95301486379c78679b0297634) )
+ ROM_LOAD32_BYTE( "opr-13538.ic101", 0x180002, 0x20000, CRC(bf9a4586) SHA1(6013dee83375d72d262c8c04c2e668afea2e216c) )
+ ROM_LOAD32_BYTE( "opr-13537.ic105", 0x180003, 0x20000, CRC(fa14ed3e) SHA1(d684496ade2517696a56c1423dd4686d283c133f) )
+
+ ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // ground data
+ ROM_LOAD( "opr-13564.ic40", 0x00000, 0x10000, CRC(e70ba138) SHA1(85eb6618f408642227056d278f10dec8dcc5a80d) )
+
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-13560.ic17", 0x00000, 0x10000, CRC(83050925) SHA1(118710e5789c7999bb7326df4d7bd207cbffdfd4) )
+
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_LOAD( "opr-13563.ic11", 0x00000, 0x20000, CRC(4083e74f) SHA1(e48c7ce0aa3406af0bbf79c169a8157693c97041) )
+ ROM_LOAD( "opr-13562.ic12", 0x20000, 0x20000, CRC(3cc3968f) SHA1(d25647f6a3fa939ba30e03e7334362ef0749b23a) )
+ ROM_LOAD( "opr-13561.ic13", 0x40000, 0x20000, CRC(80a7c02a) SHA1(7e8c1b9ba270d8657dbe90ed8be2e4b6463e5928) )
+ROM_END
+
+ROM_START( abcopjd )
+ ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "bootleg_epr-13557b.ic58", 0x00000, 0x20000, CRC(91f5d930) SHA1(8e3a4645b64b71cafa43bba3fd167dea494d7748) )
+ ROM_LOAD16_BYTE( "bootleg_epr-13556b.ic63", 0x00001, 0x20000, CRC(1078246e) SHA1(3490f46c1f52d41f96fb449bdcee5fbec871aaca) )
+ ROM_LOAD16_BYTE( "epr-13559.ic57", 0x40000, 0x20000, CRC(4588bf19) SHA1(6a8b3d4450ac0bc41b46e6a4e1b44d82112fcd64) )
+ ROM_LOAD16_BYTE( "epr-13558.ic62", 0x40001, 0x20000, CRC(11259ed4) SHA1(e7de174a0bdb1d1111e5e419f1d501ab5be1d32d) )
+
+ ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
ROM_LOAD16_BYTE( "epr-13566.ic20", 0x00000, 0x20000, CRC(22e52f32) SHA1(c67a4ccb88becc58dddcbfea0a1ac2017f7b2929) )
ROM_LOAD16_BYTE( "epr-13565.ic29", 0x00001, 0x20000, CRC(a21784bd) SHA1(b40ba0ef65bbfe514625253f6aeec14bf4bcf08c) )
- ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
ROM_LOAD( "opr-13553.ic154", 0x00000, 0x10000, CRC(8c418837) SHA1(e325db39fae768865e20d2cd1ee2b91a9b0165f5) )
ROM_LOAD( "opr-13554.ic153", 0x10000, 0x10000, CRC(4e3df9f0) SHA1(8b481c2cd25c58612ac8ac3ffb7eeae9ca247d2e) )
ROM_LOAD( "opr-13555.ic152", 0x20000, 0x10000, CRC(6c4a1d42) SHA1(6c37b045b21173f1e2f7bd19d01c00979b8107fb) )
- ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
ROM_LOAD32_BYTE( "opr-13552.ic90", 0x000000, 0x20000, CRC(cc2cf706) SHA1(ad39c22e652ebcd90ffb5e17ae35985645f93c71) )
ROM_LOAD32_BYTE( "opr-13551.ic94", 0x000001, 0x20000, CRC(d6f276c1) SHA1(9ec68157ea460e09ef4b69aa8ea17687dc47ea59) )
ROM_LOAD32_BYTE( "opr-13550.ic98", 0x000002, 0x20000, CRC(f16518dd) SHA1(a5f1785cd28f03069cb238ac92c6afb5a26cbd37) )
@@ -2972,13 +4213,13 @@ ROM_START( abcopj )
ROM_LOAD32_BYTE( "opr-13538.ic101", 0x180002, 0x20000, CRC(bf9a4586) SHA1(6013dee83375d72d262c8c04c2e668afea2e216c) )
ROM_LOAD32_BYTE( "opr-13537.ic105", 0x180003, 0x20000, CRC(fa14ed3e) SHA1(d684496ade2517696a56c1423dd4686d283c133f) )
- ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // ground data
+ ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // ground data
ROM_LOAD( "opr-13564.ic40", 0x00000, 0x10000, CRC(e70ba138) SHA1(85eb6618f408642227056d278f10dec8dcc5a80d) )
- ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
ROM_LOAD( "epr-13560.ic17", 0x00000, 0x10000, CRC(83050925) SHA1(118710e5789c7999bb7326df4d7bd207cbffdfd4) )
- ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
ROM_LOAD( "opr-13563.ic11", 0x00000, 0x20000, CRC(4083e74f) SHA1(e48c7ce0aa3406af0bbf79c169a8157693c97041) )
ROM_LOAD( "opr-13562.ic12", 0x20000, 0x20000, CRC(3cc3968f) SHA1(d25647f6a3fa939ba30e03e7334362ef0749b23a) )
ROM_LOAD( "opr-13561.ic13", 0x40000, 0x20000, CRC(80a7c02a) SHA1(7e8c1b9ba270d8657dbe90ed8be2e4b6463e5928) )
@@ -2993,26 +4234,76 @@ ROM_END
// Custom Chip 315-5304 (IC 127)
// IC BD Number: 834-7626-03 (roms are "MPR") / 834-7626-05 (roms are "EPR")
//
+ROM_START( gpriders )
+ ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "epr-13409.ic58", 0x00000, 0x20000, CRC(9abb81b6) SHA1(f6308f3ec99ee66677e86f6a915e4dff8557d25f) )
+ ROM_LOAD16_BYTE( "epr-13408.ic63", 0x00001, 0x20000, CRC(8e410e97) SHA1(2021d738064e57d175b59ba053d9ee35ed4516c8) )
+
+ ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 ) // decryption key
+ ROM_LOAD( "317-0163.key", 0x0000, 0x2000, CRC(c1d4d207) SHA1(c35b0a49fb6a1e0e9a1c087f0ccd190ad5c2bb2c) )
+
+ ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
+ ROM_LOAD16_BYTE( "epr-13395.ic20", 0x00000, 0x20000,CRC(d6ccfac7) SHA1(9287ab08600163a0d9bd33618c629f99391316bd) )
+ ROM_LOAD16_BYTE( "epr-13394.ic29", 0x00001, 0x20000,CRC(914a55ec) SHA1(84fe1df12478990418b46b6800425e5599e9eff9) )
+ ROM_LOAD16_BYTE( "epr-13393.ic21", 0x40000, 0x20000,CRC(08d023cc) SHA1(d008d57e494f484a1a84896065d53fb9b1d8d60e) )
+ ROM_LOAD16_BYTE( "epr-13392.ic30", 0x40001, 0x20000,CRC(f927cd42) SHA1(67eab328c1fb878fe3d086d0639f5051b135a037) )
+
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-13383.ic154", 0x00000, 0x10000, CRC(24f897a7) SHA1(68ba17067d90f07bb5a549017be4773b33ae81d0) )
+ ROM_LOAD( "epr-13384.ic153", 0x10000, 0x10000, CRC(fe8238bd) SHA1(601910bd86536e6b08f5308b298c8f01fa60f233) )
+ ROM_LOAD( "epr-13385.ic152", 0x20000, 0x10000, CRC(6df1b995) SHA1(5aab19b87a9ef162c30ccf5974cb795e37dba91f) )
+
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
+ ROM_LOAD32_BYTE( "epr-13382.ic90", 0x000000, 0x20000, CRC(01dac209) SHA1(4c6b03308193c472f6cdbcede306f8ce6db0cc4b) )
+ ROM_LOAD32_BYTE( "epr-13381.ic94", 0x000001, 0x20000, CRC(3a50d931) SHA1(9d9cb1793f3b8f562ce0ea49f2afeef099f20859) )
+ ROM_LOAD32_BYTE( "epr-13380.ic98", 0x000002, 0x20000, CRC(ad1024c8) SHA1(86e941424b2e2e00940886e5daed640a78ed7403) )
+ ROM_LOAD32_BYTE( "epr-13379.ic102", 0x000003, 0x20000, CRC(1ac17625) SHA1(7aefd382041dd3f97936ecb8738a3f2c9780c58f) )
+ ROM_LOAD32_BYTE( "epr-13378.ic91", 0x080000, 0x20000, CRC(50c9b867) SHA1(dd9702b369ea8abd50da22ce721b7040428e9d4b) )
+ ROM_LOAD32_BYTE( "epr-13377.ic95", 0x080001, 0x20000, CRC(9b12f5c0) SHA1(2060420611b3354974c49bc80f556f945512570b) )
+ ROM_LOAD32_BYTE( "epr-13376.ic99", 0x080002, 0x20000, CRC(449ac518) SHA1(0438a72e53a7889d39ea7e2530e49a2594d97e90) )
+ ROM_LOAD32_BYTE( "epr-13375.ic103", 0x080003, 0x20000, CRC(5489a9ff) SHA1(c458cb55d957edae340535f54189438296f3ec2f) )
+ ROM_LOAD32_BYTE( "epr-13374.ic92", 0x100000, 0x20000, CRC(6a319e4f) SHA1(d9f92b15f4baa14745048073205add35b7d42d27) )
+ ROM_LOAD32_BYTE( "epr-13373.ic96", 0x100001, 0x20000, CRC(eca5588b) SHA1(11def0c293868193d457958fe7459fd8c31dbd2b) )
+ ROM_LOAD32_BYTE( "epr-13372.ic100", 0x100002, 0x20000, CRC(0b45a433) SHA1(82fa2b208eaf70b70524681fbc3ec70085e70d83) )
+ ROM_LOAD32_BYTE( "epr-13371.ic104", 0x100003, 0x20000, CRC(b68f4cff) SHA1(166f2a685cbc230c098fdc1646b6e632dd2b09dd) )
+ ROM_LOAD32_BYTE( "epr-13370.ic93", 0x180000, 0x20000, CRC(78276620) SHA1(2c4505c57a1e765f9cfd48fb1637d67d199a2f1d) )
+ ROM_LOAD32_BYTE( "epr-13369.ic97", 0x180001, 0x20000, CRC(8625bf0f) SHA1(0ae70bc0d54e25eecf4a11cf0600225dca35914d) )
+ ROM_LOAD32_BYTE( "epr-13368.ic101", 0x180002, 0x20000, CRC(0f50716c) SHA1(eb4c7f47e11c58fe0d58f67e6dafabc6291eabb8) )
+ ROM_LOAD32_BYTE( "epr-13367.ic105", 0x180003, 0x20000, CRC(4b1bb51f) SHA1(17fd5ac9e18dd6097a015e9d7b6815826f9c53f1) )
+
+ ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
+ // none??
+
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-13388.ic17", 0x00000, 0x10000, CRC(706581e4) SHA1(51c9dbf2bf0d6b8826de24cd33596f5c95136870) )
+
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_LOAD( "epr-13391.ic11", 0x00000, 0x20000, CRC(8c30c867) SHA1(0d735291b1311890938f8a1143fae6af9feb2a69) )
+ ROM_LOAD( "epr-13390.ic12", 0x20000, 0x20000, CRC(8c93cd05) SHA1(bb08094abac6c104eddf14f634e9791f03122946) )
+ ROM_LOAD( "epr-13389.ic13", 0x40000, 0x20000, CRC(4e4c758e) SHA1(181750dfcdd6d5b28b063c980c251991163d9474) )
+ROM_END
+
+// Twin setup
ROM_START( gprider )
- ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "epr-13409.ic58", 0x00000, 0x20000, CRC(9abb81b6) SHA1(f6308f3ec99ee66677e86f6a915e4dff8557d25f) )
ROM_LOAD16_BYTE( "epr-13408.ic63", 0x00001, 0x20000, CRC(8e410e97) SHA1(2021d738064e57d175b59ba053d9ee35ed4516c8) )
- ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
+ ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 ) // decryption key
ROM_LOAD( "317-0163.key", 0x0000, 0x2000, CRC(c1d4d207) SHA1(c35b0a49fb6a1e0e9a1c087f0ccd190ad5c2bb2c) )
- ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
+ ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
ROM_LOAD16_BYTE( "epr-13395.ic20", 0x00000, 0x20000,CRC(d6ccfac7) SHA1(9287ab08600163a0d9bd33618c629f99391316bd) )
ROM_LOAD16_BYTE( "epr-13394.ic29", 0x00001, 0x20000,CRC(914a55ec) SHA1(84fe1df12478990418b46b6800425e5599e9eff9) )
ROM_LOAD16_BYTE( "epr-13393.ic21", 0x40000, 0x20000,CRC(08d023cc) SHA1(d008d57e494f484a1a84896065d53fb9b1d8d60e) )
ROM_LOAD16_BYTE( "epr-13392.ic30", 0x40001, 0x20000,CRC(f927cd42) SHA1(67eab328c1fb878fe3d086d0639f5051b135a037) )
- ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
ROM_LOAD( "epr-13383.ic154", 0x00000, 0x10000, CRC(24f897a7) SHA1(68ba17067d90f07bb5a549017be4773b33ae81d0) )
ROM_LOAD( "epr-13384.ic153", 0x10000, 0x10000, CRC(fe8238bd) SHA1(601910bd86536e6b08f5308b298c8f01fa60f233) )
ROM_LOAD( "epr-13385.ic152", 0x20000, 0x10000, CRC(6df1b995) SHA1(5aab19b87a9ef162c30ccf5974cb795e37dba91f) )
- ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
ROM_LOAD32_BYTE( "epr-13382.ic90", 0x000000, 0x20000, CRC(01dac209) SHA1(4c6b03308193c472f6cdbcede306f8ce6db0cc4b) )
ROM_LOAD32_BYTE( "epr-13381.ic94", 0x000001, 0x20000, CRC(3a50d931) SHA1(9d9cb1793f3b8f562ce0ea49f2afeef099f20859) )
ROM_LOAD32_BYTE( "epr-13380.ic98", 0x000002, 0x20000, CRC(ad1024c8) SHA1(86e941424b2e2e00940886e5daed640a78ed7403) )
@@ -3030,44 +4321,189 @@ ROM_START( gprider )
ROM_LOAD32_BYTE( "epr-13368.ic101", 0x180002, 0x20000, CRC(0f50716c) SHA1(eb4c7f47e11c58fe0d58f67e6dafabc6291eabb8) )
ROM_LOAD32_BYTE( "epr-13367.ic105", 0x180003, 0x20000, CRC(4b1bb51f) SHA1(17fd5ac9e18dd6097a015e9d7b6815826f9c53f1) )
- ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
+ ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
// none??
- ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
ROM_LOAD( "epr-13388.ic17", 0x00000, 0x10000, CRC(706581e4) SHA1(51c9dbf2bf0d6b8826de24cd33596f5c95136870) )
- ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_LOAD( "epr-13391.ic11", 0x00000, 0x20000, CRC(8c30c867) SHA1(0d735291b1311890938f8a1143fae6af9feb2a69) )
+ ROM_LOAD( "epr-13390.ic12", 0x20000, 0x20000, CRC(8c93cd05) SHA1(bb08094abac6c104eddf14f634e9791f03122946) )
+ ROM_LOAD( "epr-13389.ic13", 0x40000, 0x20000, CRC(4e4c758e) SHA1(181750dfcdd6d5b28b063c980c251991163d9474) )
+
+ ROM_REGION( 0x80000, "subpcb:maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "epr-13409.ic58", 0x00000, 0x20000, CRC(9abb81b6) SHA1(f6308f3ec99ee66677e86f6a915e4dff8557d25f) )
+ ROM_LOAD16_BYTE( "epr-13408.ic63", 0x00001, 0x20000, CRC(8e410e97) SHA1(2021d738064e57d175b59ba053d9ee35ed4516c8) )
+
+ ROM_REGION( 0x2000, "subpcb:maincpu:key", 0 ) // decryption key
+ ROM_LOAD( "317-0163.key", 0x0000, 0x2000, CRC(c1d4d207) SHA1(c35b0a49fb6a1e0e9a1c087f0ccd190ad5c2bb2c) )
+
+ ROM_REGION( 0x80000, "subpcb:subcpu", 0 ) // 2nd 68000 code
+ ROM_LOAD16_BYTE( "epr-13395.ic20", 0x00000, 0x20000,CRC(d6ccfac7) SHA1(9287ab08600163a0d9bd33618c629f99391316bd) )
+ ROM_LOAD16_BYTE( "epr-13394.ic29", 0x00001, 0x20000,CRC(914a55ec) SHA1(84fe1df12478990418b46b6800425e5599e9eff9) )
+ ROM_LOAD16_BYTE( "epr-13393.ic21", 0x40000, 0x20000,CRC(08d023cc) SHA1(d008d57e494f484a1a84896065d53fb9b1d8d60e) )
+ ROM_LOAD16_BYTE( "epr-13392.ic30", 0x40001, 0x20000,CRC(f927cd42) SHA1(67eab328c1fb878fe3d086d0639f5051b135a037) )
+
+ ROM_REGION( 0x30000, "subpcb:gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-13383.ic154", 0x00000, 0x10000, CRC(24f897a7) SHA1(68ba17067d90f07bb5a549017be4773b33ae81d0) )
+ ROM_LOAD( "epr-13384.ic153", 0x10000, 0x10000, CRC(fe8238bd) SHA1(601910bd86536e6b08f5308b298c8f01fa60f233) )
+ ROM_LOAD( "epr-13385.ic152", 0x20000, 0x10000, CRC(6df1b995) SHA1(5aab19b87a9ef162c30ccf5974cb795e37dba91f) )
+
+ ROM_REGION32_LE( 0x200000, "subpcb:sprites", 0 ) // sprites
+ ROM_LOAD32_BYTE( "epr-13382.ic90", 0x000000, 0x20000, CRC(01dac209) SHA1(4c6b03308193c472f6cdbcede306f8ce6db0cc4b) )
+ ROM_LOAD32_BYTE( "epr-13381.ic94", 0x000001, 0x20000, CRC(3a50d931) SHA1(9d9cb1793f3b8f562ce0ea49f2afeef099f20859) )
+ ROM_LOAD32_BYTE( "epr-13380.ic98", 0x000002, 0x20000, CRC(ad1024c8) SHA1(86e941424b2e2e00940886e5daed640a78ed7403) )
+ ROM_LOAD32_BYTE( "epr-13379.ic102", 0x000003, 0x20000, CRC(1ac17625) SHA1(7aefd382041dd3f97936ecb8738a3f2c9780c58f) )
+ ROM_LOAD32_BYTE( "epr-13378.ic91", 0x080000, 0x20000, CRC(50c9b867) SHA1(dd9702b369ea8abd50da22ce721b7040428e9d4b) )
+ ROM_LOAD32_BYTE( "epr-13377.ic95", 0x080001, 0x20000, CRC(9b12f5c0) SHA1(2060420611b3354974c49bc80f556f945512570b) )
+ ROM_LOAD32_BYTE( "epr-13376.ic99", 0x080002, 0x20000, CRC(449ac518) SHA1(0438a72e53a7889d39ea7e2530e49a2594d97e90) )
+ ROM_LOAD32_BYTE( "epr-13375.ic103", 0x080003, 0x20000, CRC(5489a9ff) SHA1(c458cb55d957edae340535f54189438296f3ec2f) )
+ ROM_LOAD32_BYTE( "epr-13374.ic92", 0x100000, 0x20000, CRC(6a319e4f) SHA1(d9f92b15f4baa14745048073205add35b7d42d27) )
+ ROM_LOAD32_BYTE( "epr-13373.ic96", 0x100001, 0x20000, CRC(eca5588b) SHA1(11def0c293868193d457958fe7459fd8c31dbd2b) )
+ ROM_LOAD32_BYTE( "epr-13372.ic100", 0x100002, 0x20000, CRC(0b45a433) SHA1(82fa2b208eaf70b70524681fbc3ec70085e70d83) )
+ ROM_LOAD32_BYTE( "epr-13371.ic104", 0x100003, 0x20000, CRC(b68f4cff) SHA1(166f2a685cbc230c098fdc1646b6e632dd2b09dd) )
+ ROM_LOAD32_BYTE( "epr-13370.ic93", 0x180000, 0x20000, CRC(78276620) SHA1(2c4505c57a1e765f9cfd48fb1637d67d199a2f1d) )
+ ROM_LOAD32_BYTE( "epr-13369.ic97", 0x180001, 0x20000, CRC(8625bf0f) SHA1(0ae70bc0d54e25eecf4a11cf0600225dca35914d) )
+ ROM_LOAD32_BYTE( "epr-13368.ic101", 0x180002, 0x20000, CRC(0f50716c) SHA1(eb4c7f47e11c58fe0d58f67e6dafabc6291eabb8) )
+ ROM_LOAD32_BYTE( "epr-13367.ic105", 0x180003, 0x20000, CRC(4b1bb51f) SHA1(17fd5ac9e18dd6097a015e9d7b6815826f9c53f1) )
+
+ ROM_REGION( 0x10000, "subpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
+ // none??
+
+ ROM_REGION( 0x10000, "subpcb:soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-13388.ic17", 0x00000, 0x10000, CRC(706581e4) SHA1(51c9dbf2bf0d6b8826de24cd33596f5c95136870) )
+
+ ROM_REGION( 0x80000, "subpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
ROM_LOAD( "epr-13391.ic11", 0x00000, 0x20000, CRC(8c30c867) SHA1(0d735291b1311890938f8a1143fae6af9feb2a69) )
ROM_LOAD( "epr-13390.ic12", 0x20000, 0x20000, CRC(8c93cd05) SHA1(bb08094abac6c104eddf14f634e9791f03122946) )
ROM_LOAD( "epr-13389.ic13", 0x40000, 0x20000, CRC(4e4c758e) SHA1(181750dfcdd6d5b28b063c980c251991163d9474) )
ROM_END
+
//*************************************************************************************************************************
// GP Rider (US), Sega X-board
// CPU: FD1094 (317-0162)
// Custom Chip 315-5304 (IC 127)
// IC BD Number: 834-7626-01 (roms are "MPR") / 834-7626-04 (roms are "EPR")
//
+ROM_START( gpriderus )
+ ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "epr-13407.ic58", 0x00000, 0x20000, CRC(03553ebd) SHA1(041a71a2dce2ad56360f500cb11e29a629020160) )
+ ROM_LOAD16_BYTE( "epr-13406.ic63", 0x00001, 0x20000, CRC(122c711f) SHA1(2bcc51347e771a7e7f770e68b24d82497d24aa2e) )
+
+ ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 ) // decryption key
+ ROM_LOAD( "317-0162.key", 0x0000, 0x2000, CRC(8067de53) SHA1(e8cd1dfbad94856c6bd51569557667e72f0a5dd4) )
+
+ ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
+ ROM_LOAD16_BYTE( "epr-13395.ic20", 0x00000, 0x20000,CRC(d6ccfac7) SHA1(9287ab08600163a0d9bd33618c629f99391316bd) )
+ ROM_LOAD16_BYTE( "epr-13394.ic29", 0x00001, 0x20000,CRC(914a55ec) SHA1(84fe1df12478990418b46b6800425e5599e9eff9) )
+ ROM_LOAD16_BYTE( "epr-13393.ic21", 0x40000, 0x20000,CRC(08d023cc) SHA1(d008d57e494f484a1a84896065d53fb9b1d8d60e) )
+ ROM_LOAD16_BYTE( "epr-13392.ic30", 0x40001, 0x20000,CRC(f927cd42) SHA1(67eab328c1fb878fe3d086d0639f5051b135a037) )
+
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-13383.ic154", 0x00000, 0x10000, CRC(24f897a7) SHA1(68ba17067d90f07bb5a549017be4773b33ae81d0) )
+ ROM_LOAD( "epr-13384.ic153", 0x10000, 0x10000, CRC(fe8238bd) SHA1(601910bd86536e6b08f5308b298c8f01fa60f233) )
+ ROM_LOAD( "epr-13385.ic152", 0x20000, 0x10000, CRC(6df1b995) SHA1(5aab19b87a9ef162c30ccf5974cb795e37dba91f) )
+
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
+ ROM_LOAD32_BYTE( "epr-13382.ic90", 0x000000, 0x20000, CRC(01dac209) SHA1(4c6b03308193c472f6cdbcede306f8ce6db0cc4b) )
+ ROM_LOAD32_BYTE( "epr-13381.ic94", 0x000001, 0x20000, CRC(3a50d931) SHA1(9d9cb1793f3b8f562ce0ea49f2afeef099f20859) )
+ ROM_LOAD32_BYTE( "epr-13380.ic98", 0x000002, 0x20000, CRC(ad1024c8) SHA1(86e941424b2e2e00940886e5daed640a78ed7403) )
+ ROM_LOAD32_BYTE( "epr-13379.ic102", 0x000003, 0x20000, CRC(1ac17625) SHA1(7aefd382041dd3f97936ecb8738a3f2c9780c58f) )
+ ROM_LOAD32_BYTE( "epr-13378.ic91", 0x080000, 0x20000, CRC(50c9b867) SHA1(dd9702b369ea8abd50da22ce721b7040428e9d4b) )
+ ROM_LOAD32_BYTE( "epr-13377.ic95", 0x080001, 0x20000, CRC(9b12f5c0) SHA1(2060420611b3354974c49bc80f556f945512570b) )
+ ROM_LOAD32_BYTE( "epr-13376.ic99", 0x080002, 0x20000, CRC(449ac518) SHA1(0438a72e53a7889d39ea7e2530e49a2594d97e90) )
+ ROM_LOAD32_BYTE( "epr-13375.ic103", 0x080003, 0x20000, CRC(5489a9ff) SHA1(c458cb55d957edae340535f54189438296f3ec2f) )
+ ROM_LOAD32_BYTE( "epr-13374.ic92", 0x100000, 0x20000, CRC(6a319e4f) SHA1(d9f92b15f4baa14745048073205add35b7d42d27) )
+ ROM_LOAD32_BYTE( "epr-13373.ic96", 0x100001, 0x20000, CRC(eca5588b) SHA1(11def0c293868193d457958fe7459fd8c31dbd2b) )
+ ROM_LOAD32_BYTE( "epr-13372.ic100", 0x100002, 0x20000, CRC(0b45a433) SHA1(82fa2b208eaf70b70524681fbc3ec70085e70d83) )
+ ROM_LOAD32_BYTE( "epr-13371.ic104", 0x100003, 0x20000, CRC(b68f4cff) SHA1(166f2a685cbc230c098fdc1646b6e632dd2b09dd) )
+ ROM_LOAD32_BYTE( "epr-13370.ic93", 0x180000, 0x20000, CRC(78276620) SHA1(2c4505c57a1e765f9cfd48fb1637d67d199a2f1d) )
+ ROM_LOAD32_BYTE( "epr-13369.ic97", 0x180001, 0x20000, CRC(8625bf0f) SHA1(0ae70bc0d54e25eecf4a11cf0600225dca35914d) )
+ ROM_LOAD32_BYTE( "epr-13368.ic101", 0x180002, 0x20000, CRC(0f50716c) SHA1(eb4c7f47e11c58fe0d58f67e6dafabc6291eabb8) )
+ ROM_LOAD32_BYTE( "epr-13367.ic105", 0x180003, 0x20000, CRC(4b1bb51f) SHA1(17fd5ac9e18dd6097a015e9d7b6815826f9c53f1) )
+
+ ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
+ // none??
+
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-13388.ic17", 0x00000, 0x10000, CRC(706581e4) SHA1(51c9dbf2bf0d6b8826de24cd33596f5c95136870) )
+
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_LOAD( "epr-13391.ic11", 0x00000, 0x20000, CRC(8c30c867) SHA1(0d735291b1311890938f8a1143fae6af9feb2a69) )
+ ROM_LOAD( "epr-13390.ic12", 0x20000, 0x20000, CRC(8c93cd05) SHA1(bb08094abac6c104eddf14f634e9791f03122946) )
+ ROM_LOAD( "epr-13389.ic13", 0x40000, 0x20000, CRC(4e4c758e) SHA1(181750dfcdd6d5b28b063c980c251991163d9474) )
+ROM_END
+
+// twin setup
ROM_START( gprideru )
- ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "epr-13407.ic58", 0x00000, 0x20000, CRC(03553ebd) SHA1(041a71a2dce2ad56360f500cb11e29a629020160) )
+ ROM_LOAD16_BYTE( "epr-13406.ic63", 0x00001, 0x20000, CRC(122c711f) SHA1(2bcc51347e771a7e7f770e68b24d82497d24aa2e) )
+
+ ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 ) // decryption key
+ ROM_LOAD( "317-0162.key", 0x0000, 0x2000, CRC(8067de53) SHA1(e8cd1dfbad94856c6bd51569557667e72f0a5dd4) )
+
+ ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
+ ROM_LOAD16_BYTE( "epr-13395.ic20", 0x00000, 0x20000,CRC(d6ccfac7) SHA1(9287ab08600163a0d9bd33618c629f99391316bd) )
+ ROM_LOAD16_BYTE( "epr-13394.ic29", 0x00001, 0x20000,CRC(914a55ec) SHA1(84fe1df12478990418b46b6800425e5599e9eff9) )
+ ROM_LOAD16_BYTE( "epr-13393.ic21", 0x40000, 0x20000,CRC(08d023cc) SHA1(d008d57e494f484a1a84896065d53fb9b1d8d60e) )
+ ROM_LOAD16_BYTE( "epr-13392.ic30", 0x40001, 0x20000,CRC(f927cd42) SHA1(67eab328c1fb878fe3d086d0639f5051b135a037) )
+
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-13383.ic154", 0x00000, 0x10000, CRC(24f897a7) SHA1(68ba17067d90f07bb5a549017be4773b33ae81d0) )
+ ROM_LOAD( "epr-13384.ic153", 0x10000, 0x10000, CRC(fe8238bd) SHA1(601910bd86536e6b08f5308b298c8f01fa60f233) )
+ ROM_LOAD( "epr-13385.ic152", 0x20000, 0x10000, CRC(6df1b995) SHA1(5aab19b87a9ef162c30ccf5974cb795e37dba91f) )
+
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
+ ROM_LOAD32_BYTE( "epr-13382.ic90", 0x000000, 0x20000, CRC(01dac209) SHA1(4c6b03308193c472f6cdbcede306f8ce6db0cc4b) )
+ ROM_LOAD32_BYTE( "epr-13381.ic94", 0x000001, 0x20000, CRC(3a50d931) SHA1(9d9cb1793f3b8f562ce0ea49f2afeef099f20859) )
+ ROM_LOAD32_BYTE( "epr-13380.ic98", 0x000002, 0x20000, CRC(ad1024c8) SHA1(86e941424b2e2e00940886e5daed640a78ed7403) )
+ ROM_LOAD32_BYTE( "epr-13379.ic102", 0x000003, 0x20000, CRC(1ac17625) SHA1(7aefd382041dd3f97936ecb8738a3f2c9780c58f) )
+ ROM_LOAD32_BYTE( "epr-13378.ic91", 0x080000, 0x20000, CRC(50c9b867) SHA1(dd9702b369ea8abd50da22ce721b7040428e9d4b) )
+ ROM_LOAD32_BYTE( "epr-13377.ic95", 0x080001, 0x20000, CRC(9b12f5c0) SHA1(2060420611b3354974c49bc80f556f945512570b) )
+ ROM_LOAD32_BYTE( "epr-13376.ic99", 0x080002, 0x20000, CRC(449ac518) SHA1(0438a72e53a7889d39ea7e2530e49a2594d97e90) )
+ ROM_LOAD32_BYTE( "epr-13375.ic103", 0x080003, 0x20000, CRC(5489a9ff) SHA1(c458cb55d957edae340535f54189438296f3ec2f) )
+ ROM_LOAD32_BYTE( "epr-13374.ic92", 0x100000, 0x20000, CRC(6a319e4f) SHA1(d9f92b15f4baa14745048073205add35b7d42d27) )
+ ROM_LOAD32_BYTE( "epr-13373.ic96", 0x100001, 0x20000, CRC(eca5588b) SHA1(11def0c293868193d457958fe7459fd8c31dbd2b) )
+ ROM_LOAD32_BYTE( "epr-13372.ic100", 0x100002, 0x20000, CRC(0b45a433) SHA1(82fa2b208eaf70b70524681fbc3ec70085e70d83) )
+ ROM_LOAD32_BYTE( "epr-13371.ic104", 0x100003, 0x20000, CRC(b68f4cff) SHA1(166f2a685cbc230c098fdc1646b6e632dd2b09dd) )
+ ROM_LOAD32_BYTE( "epr-13370.ic93", 0x180000, 0x20000, CRC(78276620) SHA1(2c4505c57a1e765f9cfd48fb1637d67d199a2f1d) )
+ ROM_LOAD32_BYTE( "epr-13369.ic97", 0x180001, 0x20000, CRC(8625bf0f) SHA1(0ae70bc0d54e25eecf4a11cf0600225dca35914d) )
+ ROM_LOAD32_BYTE( "epr-13368.ic101", 0x180002, 0x20000, CRC(0f50716c) SHA1(eb4c7f47e11c58fe0d58f67e6dafabc6291eabb8) )
+ ROM_LOAD32_BYTE( "epr-13367.ic105", 0x180003, 0x20000, CRC(4b1bb51f) SHA1(17fd5ac9e18dd6097a015e9d7b6815826f9c53f1) )
+
+ ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
+ // none??
+
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-13388.ic17", 0x00000, 0x10000, CRC(706581e4) SHA1(51c9dbf2bf0d6b8826de24cd33596f5c95136870) )
+
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_LOAD( "epr-13391.ic11", 0x00000, 0x20000, CRC(8c30c867) SHA1(0d735291b1311890938f8a1143fae6af9feb2a69) )
+ ROM_LOAD( "epr-13390.ic12", 0x20000, 0x20000, CRC(8c93cd05) SHA1(bb08094abac6c104eddf14f634e9791f03122946) )
+ ROM_LOAD( "epr-13389.ic13", 0x40000, 0x20000, CRC(4e4c758e) SHA1(181750dfcdd6d5b28b063c980c251991163d9474) )
+
+ ROM_REGION( 0x80000, "subpcb:maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "epr-13407.ic58", 0x00000, 0x20000, CRC(03553ebd) SHA1(041a71a2dce2ad56360f500cb11e29a629020160) )
ROM_LOAD16_BYTE( "epr-13406.ic63", 0x00001, 0x20000, CRC(122c711f) SHA1(2bcc51347e771a7e7f770e68b24d82497d24aa2e) )
- ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
+ ROM_REGION( 0x2000, "subpcb:maincpu:key", 0 ) // decryption key
ROM_LOAD( "317-0162.key", 0x0000, 0x2000, CRC(8067de53) SHA1(e8cd1dfbad94856c6bd51569557667e72f0a5dd4) )
- ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
+ ROM_REGION( 0x80000, "subpcb:subcpu", 0 ) // 2nd 68000 code
ROM_LOAD16_BYTE( "epr-13395.ic20", 0x00000, 0x20000,CRC(d6ccfac7) SHA1(9287ab08600163a0d9bd33618c629f99391316bd) )
ROM_LOAD16_BYTE( "epr-13394.ic29", 0x00001, 0x20000,CRC(914a55ec) SHA1(84fe1df12478990418b46b6800425e5599e9eff9) )
ROM_LOAD16_BYTE( "epr-13393.ic21", 0x40000, 0x20000,CRC(08d023cc) SHA1(d008d57e494f484a1a84896065d53fb9b1d8d60e) )
ROM_LOAD16_BYTE( "epr-13392.ic30", 0x40001, 0x20000,CRC(f927cd42) SHA1(67eab328c1fb878fe3d086d0639f5051b135a037) )
- ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_REGION( 0x30000, "subpcb:gfx1", 0 ) // tiles
ROM_LOAD( "epr-13383.ic154", 0x00000, 0x10000, CRC(24f897a7) SHA1(68ba17067d90f07bb5a549017be4773b33ae81d0) )
ROM_LOAD( "epr-13384.ic153", 0x10000, 0x10000, CRC(fe8238bd) SHA1(601910bd86536e6b08f5308b298c8f01fa60f233) )
ROM_LOAD( "epr-13385.ic152", 0x20000, 0x10000, CRC(6df1b995) SHA1(5aab19b87a9ef162c30ccf5974cb795e37dba91f) )
- ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
+ ROM_REGION32_LE( 0x200000, "subpcb:sprites", 0 ) // sprites
ROM_LOAD32_BYTE( "epr-13382.ic90", 0x000000, 0x20000, CRC(01dac209) SHA1(4c6b03308193c472f6cdbcede306f8ce6db0cc4b) )
ROM_LOAD32_BYTE( "epr-13381.ic94", 0x000001, 0x20000, CRC(3a50d931) SHA1(9d9cb1793f3b8f562ce0ea49f2afeef099f20859) )
ROM_LOAD32_BYTE( "epr-13380.ic98", 0x000002, 0x20000, CRC(ad1024c8) SHA1(86e941424b2e2e00940886e5daed640a78ed7403) )
@@ -3085,13 +4521,13 @@ ROM_START( gprideru )
ROM_LOAD32_BYTE( "epr-13368.ic101", 0x180002, 0x20000, CRC(0f50716c) SHA1(eb4c7f47e11c58fe0d58f67e6dafabc6291eabb8) )
ROM_LOAD32_BYTE( "epr-13367.ic105", 0x180003, 0x20000, CRC(4b1bb51f) SHA1(17fd5ac9e18dd6097a015e9d7b6815826f9c53f1) )
- ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
+ ROM_REGION( 0x10000, "subpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
// none??
- ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_REGION( 0x10000, "subpcb:soundcpu", 0 ) // sound CPU
ROM_LOAD( "epr-13388.ic17", 0x00000, 0x10000, CRC(706581e4) SHA1(51c9dbf2bf0d6b8826de24cd33596f5c95136870) )
- ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_REGION( 0x80000, "subpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
ROM_LOAD( "epr-13391.ic11", 0x00000, 0x20000, CRC(8c30c867) SHA1(0d735291b1311890938f8a1143fae6af9feb2a69) )
ROM_LOAD( "epr-13390.ic12", 0x20000, 0x20000, CRC(8c93cd05) SHA1(bb08094abac6c104eddf14f634e9791f03122946) )
ROM_LOAD( "epr-13389.ic13", 0x40000, 0x20000, CRC(4e4c758e) SHA1(181750dfcdd6d5b28b063c980c251991163d9474) )
@@ -3103,26 +4539,26 @@ ROM_END
// Custom Chip 315-5304 (IC 127)
// IC BD Number: 834-7626-01 (roms are "MPR") / 834-7626-04 (roms are "EPR")
//
-ROM_START( gpriderj )
- ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ROM_START( gpriderjs )
+ ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "epr-13387.ic58", 0x00000, 0x20000, CRC(a1e8b2c5) SHA1(22b70a9074263af808bb9dffee29cbcff7e304e3) )
ROM_LOAD16_BYTE( "epr-13386.ic63", 0x00001, 0x20000, CRC(d8be9e66) SHA1(d81c03b08fd6b971554b94e0adac131a1dcf3248) )
- ROM_REGION( 0x2000, "maincpu:key", 0 ) // decryption key
+ ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 ) // decryption key
ROM_LOAD( "317-0161.key", 0x0000, 0x2000, CRC(e38ddc16) SHA1(d1f7f261320cbc605b4f7e5a9c28f49af5471d87) )
- ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
+ ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
ROM_LOAD16_BYTE( "epr-13395.ic20", 0x00000, 0x20000,CRC(d6ccfac7) SHA1(9287ab08600163a0d9bd33618c629f99391316bd) )
ROM_LOAD16_BYTE( "epr-13394.ic29", 0x00001, 0x20000,CRC(914a55ec) SHA1(84fe1df12478990418b46b6800425e5599e9eff9) )
ROM_LOAD16_BYTE( "epr-13393.ic21", 0x40000, 0x20000,CRC(08d023cc) SHA1(d008d57e494f484a1a84896065d53fb9b1d8d60e) )
ROM_LOAD16_BYTE( "epr-13392.ic30", 0x40001, 0x20000,CRC(f927cd42) SHA1(67eab328c1fb878fe3d086d0639f5051b135a037) )
- ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
ROM_LOAD( "epr-13383.ic154", 0x00000, 0x10000, CRC(24f897a7) SHA1(68ba17067d90f07bb5a549017be4773b33ae81d0) )
ROM_LOAD( "epr-13384.ic153", 0x10000, 0x10000, CRC(fe8238bd) SHA1(601910bd86536e6b08f5308b298c8f01fa60f233) )
ROM_LOAD( "epr-13385.ic152", 0x20000, 0x10000, CRC(6df1b995) SHA1(5aab19b87a9ef162c30ccf5974cb795e37dba91f) )
- ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
ROM_LOAD32_BYTE( "epr-13382.ic90", 0x000000, 0x20000, CRC(01dac209) SHA1(4c6b03308193c472f6cdbcede306f8ce6db0cc4b) )
ROM_LOAD32_BYTE( "epr-13381.ic94", 0x000001, 0x20000, CRC(3a50d931) SHA1(9d9cb1793f3b8f562ce0ea49f2afeef099f20859) )
ROM_LOAD32_BYTE( "epr-13380.ic98", 0x000002, 0x20000, CRC(ad1024c8) SHA1(86e941424b2e2e00940886e5daed640a78ed7403) )
@@ -3140,18 +4576,114 @@ ROM_START( gpriderj )
ROM_LOAD32_BYTE( "epr-13368.ic101", 0x180002, 0x20000, CRC(0f50716c) SHA1(eb4c7f47e11c58fe0d58f67e6dafabc6291eabb8) )
ROM_LOAD32_BYTE( "epr-13367.ic105", 0x180003, 0x20000, CRC(4b1bb51f) SHA1(17fd5ac9e18dd6097a015e9d7b6815826f9c53f1) )
- ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
+ ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
// none??
- ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
ROM_LOAD( "epr-13388.ic17", 0x00000, 0x10000, CRC(706581e4) SHA1(51c9dbf2bf0d6b8826de24cd33596f5c95136870) )
- ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
ROM_LOAD( "epr-13391.ic11", 0x00000, 0x20000, CRC(8c30c867) SHA1(0d735291b1311890938f8a1143fae6af9feb2a69) )
ROM_LOAD( "epr-13390.ic12", 0x20000, 0x20000, CRC(8c93cd05) SHA1(bb08094abac6c104eddf14f634e9791f03122946) )
ROM_LOAD( "epr-13389.ic13", 0x40000, 0x20000, CRC(4e4c758e) SHA1(181750dfcdd6d5b28b063c980c251991163d9474) )
ROM_END
+// twin setup
+ROM_START( gpriderj )
+ ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "epr-13387.ic58", 0x00000, 0x20000, CRC(a1e8b2c5) SHA1(22b70a9074263af808bb9dffee29cbcff7e304e3) )
+ ROM_LOAD16_BYTE( "epr-13386.ic63", 0x00001, 0x20000, CRC(d8be9e66) SHA1(d81c03b08fd6b971554b94e0adac131a1dcf3248) )
+
+ ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 ) // decryption key
+ ROM_LOAD( "317-0161.key", 0x0000, 0x2000, CRC(e38ddc16) SHA1(d1f7f261320cbc605b4f7e5a9c28f49af5471d87) )
+
+ ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
+ ROM_LOAD16_BYTE( "epr-13395.ic20", 0x00000, 0x20000,CRC(d6ccfac7) SHA1(9287ab08600163a0d9bd33618c629f99391316bd) )
+ ROM_LOAD16_BYTE( "epr-13394.ic29", 0x00001, 0x20000,CRC(914a55ec) SHA1(84fe1df12478990418b46b6800425e5599e9eff9) )
+ ROM_LOAD16_BYTE( "epr-13393.ic21", 0x40000, 0x20000,CRC(08d023cc) SHA1(d008d57e494f484a1a84896065d53fb9b1d8d60e) )
+ ROM_LOAD16_BYTE( "epr-13392.ic30", 0x40001, 0x20000,CRC(f927cd42) SHA1(67eab328c1fb878fe3d086d0639f5051b135a037) )
+
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-13383.ic154", 0x00000, 0x10000, CRC(24f897a7) SHA1(68ba17067d90f07bb5a549017be4773b33ae81d0) )
+ ROM_LOAD( "epr-13384.ic153", 0x10000, 0x10000, CRC(fe8238bd) SHA1(601910bd86536e6b08f5308b298c8f01fa60f233) )
+ ROM_LOAD( "epr-13385.ic152", 0x20000, 0x10000, CRC(6df1b995) SHA1(5aab19b87a9ef162c30ccf5974cb795e37dba91f) )
+
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
+ ROM_LOAD32_BYTE( "epr-13382.ic90", 0x000000, 0x20000, CRC(01dac209) SHA1(4c6b03308193c472f6cdbcede306f8ce6db0cc4b) )
+ ROM_LOAD32_BYTE( "epr-13381.ic94", 0x000001, 0x20000, CRC(3a50d931) SHA1(9d9cb1793f3b8f562ce0ea49f2afeef099f20859) )
+ ROM_LOAD32_BYTE( "epr-13380.ic98", 0x000002, 0x20000, CRC(ad1024c8) SHA1(86e941424b2e2e00940886e5daed640a78ed7403) )
+ ROM_LOAD32_BYTE( "epr-13379.ic102", 0x000003, 0x20000, CRC(1ac17625) SHA1(7aefd382041dd3f97936ecb8738a3f2c9780c58f) )
+ ROM_LOAD32_BYTE( "epr-13378.ic91", 0x080000, 0x20000, CRC(50c9b867) SHA1(dd9702b369ea8abd50da22ce721b7040428e9d4b) )
+ ROM_LOAD32_BYTE( "epr-13377.ic95", 0x080001, 0x20000, CRC(9b12f5c0) SHA1(2060420611b3354974c49bc80f556f945512570b) )
+ ROM_LOAD32_BYTE( "epr-13376.ic99", 0x080002, 0x20000, CRC(449ac518) SHA1(0438a72e53a7889d39ea7e2530e49a2594d97e90) )
+ ROM_LOAD32_BYTE( "epr-13375.ic103", 0x080003, 0x20000, CRC(5489a9ff) SHA1(c458cb55d957edae340535f54189438296f3ec2f) )
+ ROM_LOAD32_BYTE( "epr-13374.ic92", 0x100000, 0x20000, CRC(6a319e4f) SHA1(d9f92b15f4baa14745048073205add35b7d42d27) )
+ ROM_LOAD32_BYTE( "epr-13373.ic96", 0x100001, 0x20000, CRC(eca5588b) SHA1(11def0c293868193d457958fe7459fd8c31dbd2b) )
+ ROM_LOAD32_BYTE( "epr-13372.ic100", 0x100002, 0x20000, CRC(0b45a433) SHA1(82fa2b208eaf70b70524681fbc3ec70085e70d83) )
+ ROM_LOAD32_BYTE( "epr-13371.ic104", 0x100003, 0x20000, CRC(b68f4cff) SHA1(166f2a685cbc230c098fdc1646b6e632dd2b09dd) )
+ ROM_LOAD32_BYTE( "epr-13370.ic93", 0x180000, 0x20000, CRC(78276620) SHA1(2c4505c57a1e765f9cfd48fb1637d67d199a2f1d) )
+ ROM_LOAD32_BYTE( "epr-13369.ic97", 0x180001, 0x20000, CRC(8625bf0f) SHA1(0ae70bc0d54e25eecf4a11cf0600225dca35914d) )
+ ROM_LOAD32_BYTE( "epr-13368.ic101", 0x180002, 0x20000, CRC(0f50716c) SHA1(eb4c7f47e11c58fe0d58f67e6dafabc6291eabb8) )
+ ROM_LOAD32_BYTE( "epr-13367.ic105", 0x180003, 0x20000, CRC(4b1bb51f) SHA1(17fd5ac9e18dd6097a015e9d7b6815826f9c53f1) )
+
+ ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
+ // none??
+
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-13388.ic17", 0x00000, 0x10000, CRC(706581e4) SHA1(51c9dbf2bf0d6b8826de24cd33596f5c95136870) )
+
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_LOAD( "epr-13391.ic11", 0x00000, 0x20000, CRC(8c30c867) SHA1(0d735291b1311890938f8a1143fae6af9feb2a69) )
+ ROM_LOAD( "epr-13390.ic12", 0x20000, 0x20000, CRC(8c93cd05) SHA1(bb08094abac6c104eddf14f634e9791f03122946) )
+ ROM_LOAD( "epr-13389.ic13", 0x40000, 0x20000, CRC(4e4c758e) SHA1(181750dfcdd6d5b28b063c980c251991163d9474) )
+
+ ROM_REGION( 0x80000, "subpcb:maincpu", 0 ) // 68000 code
+ ROM_LOAD16_BYTE( "epr-13387.ic58", 0x00000, 0x20000, CRC(a1e8b2c5) SHA1(22b70a9074263af808bb9dffee29cbcff7e304e3) )
+ ROM_LOAD16_BYTE( "epr-13386.ic63", 0x00001, 0x20000, CRC(d8be9e66) SHA1(d81c03b08fd6b971554b94e0adac131a1dcf3248) )
+
+ ROM_REGION( 0x2000, "subpcb:maincpu:key", 0 ) // decryption key
+ ROM_LOAD( "317-0161.key", 0x0000, 0x2000, CRC(e38ddc16) SHA1(d1f7f261320cbc605b4f7e5a9c28f49af5471d87) )
+
+ ROM_REGION( 0x80000, "subpcb:subcpu", 0 ) // 2nd 68000 code
+ ROM_LOAD16_BYTE( "epr-13395.ic20", 0x00000, 0x20000,CRC(d6ccfac7) SHA1(9287ab08600163a0d9bd33618c629f99391316bd) )
+ ROM_LOAD16_BYTE( "epr-13394.ic29", 0x00001, 0x20000,CRC(914a55ec) SHA1(84fe1df12478990418b46b6800425e5599e9eff9) )
+ ROM_LOAD16_BYTE( "epr-13393.ic21", 0x40000, 0x20000,CRC(08d023cc) SHA1(d008d57e494f484a1a84896065d53fb9b1d8d60e) )
+ ROM_LOAD16_BYTE( "epr-13392.ic30", 0x40001, 0x20000,CRC(f927cd42) SHA1(67eab328c1fb878fe3d086d0639f5051b135a037) )
+
+ ROM_REGION( 0x30000, "subpcb:gfx1", 0 ) // tiles
+ ROM_LOAD( "epr-13383.ic154", 0x00000, 0x10000, CRC(24f897a7) SHA1(68ba17067d90f07bb5a549017be4773b33ae81d0) )
+ ROM_LOAD( "epr-13384.ic153", 0x10000, 0x10000, CRC(fe8238bd) SHA1(601910bd86536e6b08f5308b298c8f01fa60f233) )
+ ROM_LOAD( "epr-13385.ic152", 0x20000, 0x10000, CRC(6df1b995) SHA1(5aab19b87a9ef162c30ccf5974cb795e37dba91f) )
+
+ ROM_REGION32_LE( 0x200000, "subpcb:sprites", 0 ) // sprites
+ ROM_LOAD32_BYTE( "epr-13382.ic90", 0x000000, 0x20000, CRC(01dac209) SHA1(4c6b03308193c472f6cdbcede306f8ce6db0cc4b) )
+ ROM_LOAD32_BYTE( "epr-13381.ic94", 0x000001, 0x20000, CRC(3a50d931) SHA1(9d9cb1793f3b8f562ce0ea49f2afeef099f20859) )
+ ROM_LOAD32_BYTE( "epr-13380.ic98", 0x000002, 0x20000, CRC(ad1024c8) SHA1(86e941424b2e2e00940886e5daed640a78ed7403) )
+ ROM_LOAD32_BYTE( "epr-13379.ic102", 0x000003, 0x20000, CRC(1ac17625) SHA1(7aefd382041dd3f97936ecb8738a3f2c9780c58f) )
+ ROM_LOAD32_BYTE( "epr-13378.ic91", 0x080000, 0x20000, CRC(50c9b867) SHA1(dd9702b369ea8abd50da22ce721b7040428e9d4b) )
+ ROM_LOAD32_BYTE( "epr-13377.ic95", 0x080001, 0x20000, CRC(9b12f5c0) SHA1(2060420611b3354974c49bc80f556f945512570b) )
+ ROM_LOAD32_BYTE( "epr-13376.ic99", 0x080002, 0x20000, CRC(449ac518) SHA1(0438a72e53a7889d39ea7e2530e49a2594d97e90) )
+ ROM_LOAD32_BYTE( "epr-13375.ic103", 0x080003, 0x20000, CRC(5489a9ff) SHA1(c458cb55d957edae340535f54189438296f3ec2f) )
+ ROM_LOAD32_BYTE( "epr-13374.ic92", 0x100000, 0x20000, CRC(6a319e4f) SHA1(d9f92b15f4baa14745048073205add35b7d42d27) )
+ ROM_LOAD32_BYTE( "epr-13373.ic96", 0x100001, 0x20000, CRC(eca5588b) SHA1(11def0c293868193d457958fe7459fd8c31dbd2b) )
+ ROM_LOAD32_BYTE( "epr-13372.ic100", 0x100002, 0x20000, CRC(0b45a433) SHA1(82fa2b208eaf70b70524681fbc3ec70085e70d83) )
+ ROM_LOAD32_BYTE( "epr-13371.ic104", 0x100003, 0x20000, CRC(b68f4cff) SHA1(166f2a685cbc230c098fdc1646b6e632dd2b09dd) )
+ ROM_LOAD32_BYTE( "epr-13370.ic93", 0x180000, 0x20000, CRC(78276620) SHA1(2c4505c57a1e765f9cfd48fb1637d67d199a2f1d) )
+ ROM_LOAD32_BYTE( "epr-13369.ic97", 0x180001, 0x20000, CRC(8625bf0f) SHA1(0ae70bc0d54e25eecf4a11cf0600225dca35914d) )
+ ROM_LOAD32_BYTE( "epr-13368.ic101", 0x180002, 0x20000, CRC(0f50716c) SHA1(eb4c7f47e11c58fe0d58f67e6dafabc6291eabb8) )
+ ROM_LOAD32_BYTE( "epr-13367.ic105", 0x180003, 0x20000, CRC(4b1bb51f) SHA1(17fd5ac9e18dd6097a015e9d7b6815826f9c53f1) )
+
+ ROM_REGION( 0x10000, "subpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
+ // none??
+
+ ROM_REGION( 0x10000, "subpcb:soundcpu", 0 ) // sound CPU
+ ROM_LOAD( "epr-13388.ic17", 0x00000, 0x10000, CRC(706581e4) SHA1(51c9dbf2bf0d6b8826de24cd33596f5c95136870) )
+
+ ROM_REGION( 0x80000, "subpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_LOAD( "epr-13391.ic11", 0x00000, 0x20000, CRC(8c30c867) SHA1(0d735291b1311890938f8a1143fae6af9feb2a69) )
+ ROM_LOAD( "epr-13390.ic12", 0x20000, 0x20000, CRC(8c93cd05) SHA1(bb08094abac6c104eddf14f634e9791f03122946) )
+ ROM_LOAD( "epr-13389.ic13", 0x40000, 0x20000, CRC(4e4c758e) SHA1(181750dfcdd6d5b28b063c980c251991163d9474) )
+ROM_END
//*************************************************************************************************************************
//*************************************************************************************************************************
@@ -3160,33 +4692,33 @@ ROM_END
// and we only have the ROMs for one of those parts..
//
ROM_START( rascot )
- ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
+ ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
ROM_LOAD16_BYTE( "epr-13965a.ic58", 0x00000, 0x20000, CRC(7eacdfb3) SHA1(fad23352d9c5e266ad9f7fe3ccbd29b5b912b90b) )
ROM_LOAD16_BYTE( "epr-13694a.ic63", 0x00001, 0x20000, CRC(15b86498) SHA1(ccb57063ca53347b5f771b0d7ceaeb9cd50d246a) ) // 13964a?
- ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
+ ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
ROM_LOAD16_BYTE( "epr-13967.ic20", 0x00000, 0x20000, CRC(3b92e2b8) SHA1(5d456d7d6fa540709facda1fd8813707ebfd99d8) )
ROM_LOAD16_BYTE( "epr-13966.ic29", 0x00001, 0x20000, CRC(eaa644e1) SHA1(b9cc171523995f5120ea7b9748af2f8de697b933) )
- ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
+ ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
ROM_LOAD( "epr-13961", 0x00000, 0x10000, CRC(68038629) SHA1(fbe8605840331096c5156d695772e5f36b2e131a) )
ROM_LOAD( "epr-13962", 0x10000, 0x10000, CRC(7d7605bc) SHA1(20d3a7116807db7c831e285233d8c67317980e4a) )
ROM_LOAD( "epr-13963", 0x20000, 0x10000, CRC(f3376b65) SHA1(36b9292518a112409d03b97ea048b7ab22734841) )
- ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
+ ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
ROM_LOAD32_BYTE( "epr-13960", 0x000000, 0x20000, CRC(b974128d) SHA1(14450615b3a10b1de6d098a282f80f80c98c34b8) )
ROM_LOAD32_BYTE( "epr-13959", 0x000001, 0x20000, CRC(db245b22) SHA1(301b7caea7a3b42ab1ab21894ad61b8b14ef1e7c) )
ROM_LOAD32_BYTE( "epr-13958", 0x000002, 0x20000, CRC(7803a027) SHA1(ff659da334e4440a6de9be43dde9dfa21dae5f14) )
ROM_LOAD32_BYTE( "epr-13957", 0x000003, 0x20000, CRC(6d50fb54) SHA1(d21462c30a5555980b964930ddef4dc1963e1d8e) )
- ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
+ ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
// none??
- ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
+ ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
// is this really a sound rom, or a terminal / link rom? accesses unexpected addresses
ROM_LOAD( "epr-14221a", 0x00000, 0x10000, CRC(0d429ac4) SHA1(9cd4c7e858874f372eb3e409ba37964f1ebf07d5) )
- ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
+ ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
// none??
ROM_END
@@ -3197,60 +4729,48 @@ ROM_END
//**************************************************************************
//-------------------------------------------------
-// init_generic - common initialization
-//-------------------------------------------------
-
-DRIVER_INIT_MEMBER(segaxbd_state,generic)
-{
- // allocate a scanline timer
- m_scanline_timer = timer_alloc(TID_SCANLINE);
-
- // reset the custom handlers and other pointers
- m_iochip_custom_io_w[0][3] = iowrite_delegate(FUNC(segaxbd_state::generic_iochip0_lamps_w), this);
-
- // point globals to allocated memory regions
- m_segaic16road->segaic16_roadram_0 = reinterpret_cast<UINT16 *>(memshare("roadram")->ptr());
-
- // save state
- save_item(NAME(m_timer_irq_state));
- save_item(NAME(m_vblank_irq_state));
- save_item(NAME(m_iochip_regs[0]));
- save_item(NAME(m_iochip_regs[1]));
- save_item(NAME(m_lastsurv_mux));
-}
-
-
-//-------------------------------------------------
// init_* - game-specific initialization
//-------------------------------------------------
-DRIVER_INIT_MEMBER(segaxbd_state,aburner2)
+void segaxbd_state::install_aburner2(void)
{
- DRIVER_INIT_CALL(generic);
m_road_priority = 0;
m_iochip_custom_io_r[0][0] = ioread_delegate(FUNC(segaxbd_state::aburner2_iochip0_motor_r), this);
m_iochip_custom_io_w[0][1] = iowrite_delegate(FUNC(segaxbd_state::aburner2_iochip0_motor_w), this);
}
-DRIVER_INIT_MEMBER(segaxbd_state,lastsurv)
+DRIVER_INIT_MEMBER(segaxbd_new_state,aburner2)
+{
+ m_mainpcb->install_aburner2();
+}
+
+void segaxbd_state::install_lastsurv(void)
{
- DRIVER_INIT_CALL(generic);
m_iochip_custom_io_r[1][1] = ioread_delegate(FUNC(segaxbd_state::lastsurv_iochip1_port_r), this);
m_iochip_custom_io_w[0][3] = iowrite_delegate(FUNC(segaxbd_state::lastsurv_iochip0_muxer_w), this);
}
-DRIVER_INIT_MEMBER(segaxbd_state,loffire)
+DRIVER_INIT_MEMBER(segaxbd_new_state,lastsurv)
+{
+ m_mainpcb->install_lastsurv();
+}
+
+void segaxbd_state::install_loffire(void)
{
- DRIVER_INIT_CALL(generic);
m_adc_reverse[1] = m_adc_reverse[3] = true;
// install sync hack on core shared memory
m_loffire_sync = m_maincpu->space(AS_PROGRAM).install_write_handler(0x29c000, 0x29c011, write16_delegate(FUNC(segaxbd_state::loffire_sync0_w), this));
}
-DRIVER_INIT_MEMBER(segaxbd_state,smgp)
+
+DRIVER_INIT_MEMBER(segaxbd_new_state,loffire)
+{
+ m_mainpcb->install_loffire();
+}
+
+void segaxbd_state::install_smgp(void)
{
- DRIVER_INIT_CALL(generic);
m_iochip_custom_io_r[0][0] = ioread_delegate(FUNC(segaxbd_state::smgp_iochip0_motor_r), this);
m_iochip_custom_io_w[0][1] = iowrite_delegate(FUNC(segaxbd_state::smgp_iochip0_motor_w), this);
@@ -3258,27 +4778,44 @@ DRIVER_INIT_MEMBER(segaxbd_state,smgp)
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2f0000, 0x2f3fff, read16_delegate(FUNC(segaxbd_state::smgp_excs_r), this), write16_delegate(FUNC(segaxbd_state::smgp_excs_w), this));
}
-DRIVER_INIT_MEMBER(segaxbd_state,rascot)
+DRIVER_INIT_MEMBER(segaxbd_new_state,smgp)
{
- DRIVER_INIT_CALL(generic);
+ m_mainpcb->install_smgp();
+}
+DRIVER_INIT_MEMBER(segaxbd_new_state,rascot)
+{
// patch out bootup link test
- UINT16 *rom = reinterpret_cast<UINT16 *>(memregion("subcpu")->base());
+ UINT16 *rom = reinterpret_cast<UINT16 *>(memregion("mainpcb:subcpu")->base());
rom[0xb78/2] = 0x601e; // subrom checksum test
rom[0x57e/2] = 0x4e71;
rom[0x5d0/2] = 0x6008;
rom[0x606/2] = 0x4e71;
// map /EXCS space
- m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0f0000, 0x0f3fff, read16_delegate(FUNC(segaxbd_state::rascot_excs_r), this), write16_delegate(FUNC(segaxbd_state::rascot_excs_w), this));
+ m_mainpcb->m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0f0000, 0x0f3fff, read16_delegate(FUNC(segaxbd_state::rascot_excs_r), (segaxbd_state*)m_mainpcb), write16_delegate(FUNC(segaxbd_state::rascot_excs_w), (segaxbd_state*)m_mainpcb));
}
-DRIVER_INIT_MEMBER(segaxbd_state,gprider)
+void segaxbd_state::install_gprider(void)
{
- DRIVER_INIT_CALL(generic);
m_gprider_hack = true;
+
}
+DRIVER_INIT_MEMBER(segaxbd_new_state,gprider)
+{
+ m_mainpcb->install_gprider();
+}
+
+
+DRIVER_INIT_MEMBER(segaxbd_new_state_double,gprider_double)
+{
+ m_mainpcb->install_gprider();
+ m_subpcb->install_gprider();
+
+ m_mainpcb->m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2F0000, 0x2F003f, read16_delegate(FUNC(segaxbd_new_state_double::shareram1_r), this), write16_delegate(FUNC(segaxbd_new_state_double::shareram1_w), this));
+ m_subpcb->m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2F0000, 0x2F003f, read16_delegate(FUNC(segaxbd_new_state_double::shareram2_r), this), write16_delegate(FUNC(segaxbd_new_state_double::shareram2_w), this));
+}
//**************************************************************************
@@ -3286,27 +4823,66 @@ DRIVER_INIT_MEMBER(segaxbd_state,gprider)
//**************************************************************************
// YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR,COMPANY,FULLNAME,FLAGS
-GAME( 1987, aburner2, 0, xboard, aburner2, segaxbd_state, aburner2, ROT0, "Sega", "After Burner II", 0 )
-GAME( 1987, aburner2g,aburner2, xboard, aburner2, segaxbd_state, aburner2, ROT0, "Sega", "After Burner II (German)", 0 )
-GAME( 1987, aburner, aburner2, xboard, aburner, segaxbd_state, aburner2, ROT0, "Sega", "After Burner", 0 )
-GAME( 1987, thndrbld, 0, xboard_fd1094, thndrbld, segaxbd_state, generic, ROT0, "Sega", "Thunder Blade (upright, FD1094 317-0056)", 0 )
-GAME( 1987, thndrbld1,thndrbld, xboard, thndrbd1, segaxbd_state, generic, ROT0, "Sega", "Thunder Blade (deluxe/standing, unprotected)", 0 )
-GAME( 1989, lastsurv, 0, lastsurv_fd1094,lastsurv, segaxbd_state, lastsurv, ROT0, "Sega", "Last Survivor (Japan, FD1094 317-0083)", 0 )
-GAME( 1989, loffire, 0, xboard_fd1094, loffire, segaxbd_state, loffire, ROT0, "Sega", "Line of Fire / Bakudan Yarou (World, FD1094 317-0136)", 0 )
-GAME( 1989, loffireu, loffire, xboard_fd1094, loffire, segaxbd_state, loffire, ROT0, "Sega", "Line of Fire / Bakudan Yarou (US, FD1094 317-0135)", 0 )
-GAME( 1989, loffirej, loffire, xboard_fd1094, loffire, segaxbd_state, loffire, ROT0, "Sega", "Line of Fire / Bakudan Yarou (Japan, FD1094 317-0134)", 0 )
-GAME( 1989, rachero, 0, xboard_fd1094, rachero, segaxbd_state, generic, ROT0, "Sega", "Racing Hero (FD1094 317-0144)", 0 )
-GAME( 1989, smgp, 0, smgp_fd1094, smgp, segaxbd_state, smgp, ROT0, "Sega", "Super Monaco GP (World, Rev B, FD1094 317-0126a)", 0 )
-GAME( 1989, smgp6, smgp, smgp_fd1094, smgp, segaxbd_state, smgp, ROT0, "Sega", "Super Monaco GP (World, Rev A, FD1094 317-0126a)", 0 )
-GAME( 1989, smgp5, smgp, smgp_fd1094, smgp, segaxbd_state, smgp, ROT0, "Sega", "Super Monaco GP (World, FD1094 317-0126)", 0 )
-GAME( 1989, smgpu, smgp, smgp_fd1094, smgp, segaxbd_state, smgp, ROT0, "Sega", "Super Monaco GP (US, Rev C, FD1094 317-0125a)", 0 )
-GAME( 1989, smgpu1, smgp, smgp_fd1094, smgp, segaxbd_state, smgp, ROT0, "Sega", "Super Monaco GP (US, Rev B, FD1094 317-0125a)", 0 )
-GAME( 1989, smgpu2, smgp, smgp_fd1094, smgp, segaxbd_state, smgp, ROT0, "Sega", "Super Monaco GP (US, Rev A, FD1094 317-0125a)", 0 )
-GAME( 1989, smgpj, smgp, smgp_fd1094, smgp, segaxbd_state, smgp, ROT0, "Sega", "Super Monaco GP (Japan, Rev B, FD1094 317-0124a)", 0 )
-GAME( 1989, smgpja, smgp, smgp_fd1094, smgp, segaxbd_state, smgp, ROT0, "Sega", "Super Monaco GP (Japan, Rev A, FD1094 317-0124a)", 0 )
-GAME( 1990, abcop, 0, xboard_fd1094, abcop, segaxbd_state, generic, ROT0, "Sega", "A.B. Cop (World, FD1094 317-0169b)", 0 )
-GAME( 1990, abcopj, abcop, xboard_fd1094, abcop, segaxbd_state, generic, ROT0, "Sega", "A.B. Cop (Japan, FD1094 317-0169b)", 0 )
-GAME( 1990, gprider, 0, xboard_fd1094, gprider, segaxbd_state, gprider, ROT0, "Sega", "GP Rider (World, FD1094 317-0163)", 0 )
-GAME( 1990, gprideru, gprider, xboard_fd1094, gprider, segaxbd_state, gprider, ROT0, "Sega", "GP Rider (US, FD1094 317-0162)", 0 )
-GAME( 1990, gpriderj, gprider, xboard_fd1094, gprider, segaxbd_state, gprider, ROT0, "Sega", "GP Rider (Japan, FD1094 317-0161)", 0 )
-GAME( 1991, rascot, 0, rascot, rascot, segaxbd_state, rascot, ROT0, "Sega", "Royal Ascot (Japan, terminal?)", GAME_NOT_WORKING | GAME_NO_SOUND )
+GAME( 1987, aburner2, 0, sega_xboard, aburner2, segaxbd_new_state, aburner2, ROT0, "Sega", "After Burner II", 0 )
+GAME( 1987, aburner2g,aburner2, sega_xboard, aburner2, segaxbd_new_state, aburner2, ROT0, "Sega", "After Burner II (German)", 0 )
+
+GAME( 1987, aburner, aburner2, sega_xboard, 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( 1989, lastsurv, 0, sega_lastsurv_fd1094,lastsurv, segaxbd_new_state, lastsurv, 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, 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 )
+GAME( 1989, smgp5, smgp, sega_smgp_fd1094, smgp, segaxbd_new_state, smgp, ROT0, "Sega", "Super Monaco GP (World) (FD1094 317-0126)", 0 )
+GAME( 1989, smgpu, smgp, sega_smgp_fd1094, smgp, segaxbd_new_state, smgp, ROT0, "Sega", "Super Monaco GP (US, Rev C) (FD1094 317-0125a)", 0 )
+GAME( 1989, smgpu1, smgp, sega_smgp_fd1094, smgp, segaxbd_new_state, smgp, ROT0, "Sega", "Super Monaco GP (US, Rev B) (FD1094 317-0125a)", 0 )
+GAME( 1989, smgpu2, smgp, sega_smgp_fd1094, smgp, segaxbd_new_state, smgp, ROT0, "Sega", "Super Monaco GP (US, Rev A) (FD1094 317-0125a)", 0 )
+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 )
+
+// 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 )
+
+// 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 )
+GAME( 1990, gprideru,gprider, sega_xboard_fd1094_double, gprider_double, segaxbd_new_state_double, gprider_double, ROT0, "Sega", "GP Rider (US, FD1094 317-0162) (Twin setup)", 0 )
+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 )
+
+// decrypted bootlegs
+
+GAME( 1987, thndrbldd, thndrbld,sega_xboard, thndrbld, driver_device, 0, ROT0, "Sega", "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, 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 )
+GAME( 1989, smgp5d, smgp, sega_smgp, smgp, segaxbd_new_state, smgp, ROT0, "bootleg", "Super Monaco GP (World) (bootleg of FD1094 317-0126 set)", 0 )
+GAME( 1989, smgpud, smgp, sega_smgp, smgp, segaxbd_new_state, smgp, ROT0, "bootleg", "Super Monaco GP (US, Rev C) (bootleg of FD1094 317-0125a set)", 0 )
+GAME( 1989, smgpu1d, smgp, sega_smgp, smgp, segaxbd_new_state, smgp, ROT0, "bootleg", "Super Monaco GP (US, Rev B) (bootleg of FD1094 317-0125a set)", 0 )
+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, segaxbd_new_state, lastsurv, 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( 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 )
+GAME( 1989, loffirejd, loffire, sega_xboard, loffire, segaxbd_new_state, loffire, ROT0, "bootleg", "Line of Fire / Bakudan Yarou (Japan) (bootleg of FD1094 317-0134 set)", 0 )
diff --git a/src/mame/drivers/segaybd.c b/src/mame/drivers/segaybd.c
index 42f99a0b35d..3769515e903 100644
--- a/src/mame/drivers/segaybd.c
+++ b/src/mame/drivers/segaybd.c
@@ -836,8 +836,8 @@ ADDRESS_MAP_END
/*
static ADDRESS_MAP_START( motor_portmap, AS_IO, 8, segaybd_state )
- ADDRESS_MAP_UNMAP_HIGH
- ADDRESS_MAP_GLOBAL_MASK(0xff)
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
ADDRESS_MAP_END
*/
@@ -1440,7 +1440,7 @@ static MACHINE_CONFIG_DERIVED( yboard_deluxe, yboard )
// basic machine hardware
MCFG_CPU_ADD("motorcpu", Z80, XTAL_16MHz/2 ) // 8 Mhz(guessed)
MCFG_CPU_PROGRAM_MAP(motor_map)
-// MCFG_CPU_IO_MAP(motor_portmap)
+// MCFG_CPU_IO_MAP(motor_portmap)
MACHINE_CONFIG_END
@@ -2763,23 +2763,23 @@ DRIVER_INIT_MEMBER(segaybd_state,rchase)
//**************************************************************************
// 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", GAME_SUPPORTS_SAVE )
-GAME( 1988, gforce2sd, gforce2, yboard_deluxe, gforce2, segaybd_state, gforce2, ROT0, "Sega", "Galaxy Force 2 (Super Deluxe unit)", GAME_SUPPORTS_SAVE )
-GAME( 1988, gforce2ja, gforce2, yboard, gforce2, segaybd_state, gforce2, ROT0, "Sega", "Galaxy Force 2 (Japan, Rev A)", GAME_SUPPORTS_SAVE )
-GAME( 1988, gforce2j, gforce2, yboard, gforce2, segaybd_state, gforce2, ROT0, "Sega", "Galaxy Force 2 (Japan)", GAME_SUPPORTS_SAVE )
-
-GAME( 1990, gloc, 0, yboard, gloc, segaybd_state, gloc, ROT0, "Sega", "G-LOC Air Battle (World)", GAME_SUPPORTS_SAVE )
-GAME( 1990, glocu, gloc, yboard, gloc, segaybd_state, gloc, ROT0, "Sega", "G-LOC Air Battle (US)", GAME_SUPPORTS_SAVE )
-GAME( 1990, glocr360, gloc, yboard, glocr360, segaybd_state, r360, ROT0, "Sega", "G-LOC R360", GAME_SUPPORTS_SAVE )
-
-GAMEL(1988, pdrift, 0, yboard, pdrift, segaybd_state, pdrift, ROT0, "Sega", "Power Drift (World, Rev A)", GAME_SUPPORTS_SAVE, layout_pdrift )
-GAMEL(1988, pdrifta, pdrift, yboard, pdrift, segaybd_state, pdrift, ROT0, "Sega", "Power Drift (World)", GAME_SUPPORTS_SAVE, layout_pdrift )
-GAMEL(1988, pdrifte, pdrift, yboard, pdrifte, segaybd_state, pdrift, ROT0, "Sega", "Power Drift (World, Earlier)", GAME_SUPPORTS_SAVE, layout_pdrift )
-GAMEL(1988, pdriftj, pdrift, yboard, pdriftj, segaybd_state, pdrift, ROT0, "Sega", "Power Drift (Japan)", GAME_SUPPORTS_SAVE, layout_pdrift )
-GAMEL(1988, pdriftl, pdrift, yboard_link, pdriftl, segaybd_state, pdrift, ROT0, "Sega", "Power Drift (Japan, Link Version)", GAME_SUPPORTS_SAVE|GAME_NOT_WORKING, layout_pdrift)
-
-GAME( 1991, rchase, 0, yboard, rchase, segaybd_state, rchase, ROT0, "Sega", "Rail Chase (World)", GAME_SUPPORTS_SAVE )
-GAME( 1991, rchasej, rchase, yboard, rchase, segaybd_state, rchase, ROT0, "Sega", "Rail Chase (Japan)", GAME_SUPPORTS_SAVE )
-
-GAME( 1991, strkfgtr, 0, yboard, strkfgtr, segaybd_state, gloc, ROT0, "Sega", "Strike Fighter (World)", GAME_SUPPORTS_SAVE )
-GAME( 1991, strkfgtrj, strkfgtr, yboard, strkfgtr, segaybd_state, gloc, ROT0, "Sega", "Strike Fighter (Japan)", GAME_SUPPORTS_SAVE )
+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 )
+
+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, pdrift, yboard_link, pdriftl, segaybd_state, pdrift, ROT0, "Sega", "Power Drift (Japan, Link Version)", MACHINE_SUPPORTS_SAVE|MACHINE_NOT_WORKING, 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, 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.c b/src/mame/drivers/seibuspi.c
index 55c4ed8f09d..85a8ddd99bb 100644
--- a/src/mame/drivers/seibuspi.c
+++ b/src/mame/drivers/seibuspi.c
@@ -3815,67 +3815,67 @@ ROM_END
/*****************************************************************************/
/* SPI */
-GAME( 1995, senkyu, 0, spi, spi_3button, seibuspi_state, senkyu, ROT0, "Seibu Kaihatsu", "Senkyu (Japan set 1)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1995, senkyua, senkyu, spi, spi_3button, seibuspi_state, senkyua, ROT0, "Seibu Kaihatsu", "Senkyu (Japan set 2)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1995, batlball, senkyu, spi, spi_3button, seibuspi_state, batlball, ROT0, "Seibu Kaihatsu (Tuning license)", "Battle Balls (Germany)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1995, batlballu, senkyu, spi, spi_3button, seibuspi_state, batlball, ROT0, "Seibu Kaihatsu (Fabtek license)", "Battle Balls (US)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1995, batlballa, senkyu, spi, spi_3button, seibuspi_state, batlball, ROT0, "Seibu Kaihatsu (Metrotainment license)", "Battle Balls (Hong Kong)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1995, batlballe, senkyu, spi, spi_3button, seibuspi_state, batlball, ROT0, "Seibu Kaihatsu (Metrotainment license)", "Battle Balls (Hong Kong, earlier)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-
-GAME( 1995, viprp1, 0, spi, spi_3button, seibuspi_state, viprp1, ROT270, "Seibu Kaihatsu", "Viper Phase 1 (New Version, World)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1995, viprp1k, viprp1, spi, spi_3button, seibuspi_state, viprp1, ROT270, "Seibu Kaihatsu (Dream Island license)", "Viper Phase 1 (New Version, Korea)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1995, viprp1u, viprp1, spi, spi_3button, seibuspi_state, viprp1o, ROT270, "Seibu Kaihatsu (Fabtek license)", "Viper Phase 1 (New Version, US set 1)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) /* New version, "=U.S.A=" seems part of title */
-GAME( 1995, viprp1ua, viprp1, spi, spi_3button, seibuspi_state, viprp1o, ROT270, "Seibu Kaihatsu (Fabtek license)", "Viper Phase 1 (New Version, US set 2)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) /* New version, "=U.S.A=" seems part of title */
-GAME( 1995, viprp1j, viprp1, spi, spi_3button, seibuspi_state, viprp1, ROT270, "Seibu Kaihatsu", "Viper Phase 1 (New Version, Japan)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1995, viprp1s, viprp1, spi, spi_3button, seibuspi_state, viprp1, ROT270, "Seibu Kaihatsu", "Viper Phase 1 (New Version, Switzerland)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) // counterintuitively this seems to be the oldest set of the game despite playing with the 'new version' rules, it has various typos not present in other sets eg. 'UPDATEING'
-GAME( 1995, viprp1h, viprp1, spi, spi_3button, seibuspi_state, viprp1, ROT270, "Seibu Kaihatsu", "Viper Phase 1 (New Version, Holland)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) // Code is the same as the above Switzerland set, just different region byte
-
-GAME( 1995, viprp1ot, viprp1, spi, spi_3button, seibuspi_state, viprp1, ROT270, "Seibu Kaihatsu (Tuning license)", "Viper Phase 1 (Germany)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1995, viprp1oj, viprp1, spi, spi_3button, seibuspi_state, viprp1o, ROT270, "Seibu Kaihatsu", "Viper Phase 1 (Japan)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1995, viprp1hk, viprp1, spi, spi_3button, seibuspi_state, viprp1, ROT270, "Seibu Kaihatsu (Metrotainment license)", "Viper Phase 1 (Hong Kong)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) /* "=HONG KONG=" seems part of title */
-
-GAME( 1996, ejanhs, 0, ejanhs, spi_ejanhs, seibuspi_state, ejanhs, ROT0, "Seibu Kaihatsu", "E-Jan High School (Japan)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
-
-GAME( 1996, rdft, 0, spi, spi_3button, seibuspi_state, rdft, ROT270, "Seibu Kaihatsu (Tuning license)", "Raiden Fighters (Germany)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, rdftj, rdft, spi, spi_3button, seibuspi_state, rdft, ROT270, "Seibu Kaihatsu", "Raiden Fighters (Japan set 1)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, rdftja, rdft, spi, spi_3button, seibuspi_state, rdft, ROT270, "Seibu Kaihatsu", "Raiden Fighters (Japan set 2)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, rdftjb, rdft, spi, spi_3button, seibuspi_state, rdft, ROT270, "Seibu Kaihatsu", "Raiden Fighters (Japan set 3)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, rdftu, rdft, spi, spi_3button, seibuspi_state, rdft, ROT270, "Seibu Kaihatsu (Fabtek license)", "Raiden Fighters (US)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, rdftam, rdft, spi, spi_3button, seibuspi_state, rdft, ROT270, "Seibu Kaihatsu (Metrotainment license)", "Raiden Fighters (Hong Kong)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, rdftadi, rdft, spi, spi_3button, seibuspi_state, rdft, ROT270, "Seibu Kaihatsu (Dream Island license)", "Raiden Fighters (Korea)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, rdftau, rdft, spi, spi_3button, seibuspi_state, rdft, ROT270, "Seibu Kaihatsu", "Raiden Fighters (Australia)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, rdftauge, rdft, spi, spi_3button, seibuspi_state, rdft, ROT270, "Seibu Kaihatsu (Tuning license)", "Raiden Fighters (Evaluation Software For Show, Germany)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, rdftit, rdft, spi, spi_3button, seibuspi_state, rdft, ROT270, "Seibu Kaihatsu", "Raiden Fighters (Italy)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, rdfta, rdft, spi, spi_3button, seibuspi_state, rdft, ROT270, "Seibu Kaihatsu", "Raiden Fighters (Austria)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-
-GAME( 1997, rdft2, 0, spi, spi_2button, seibuspi_state, rdft2, ROT270, "Seibu Kaihatsu (Tuning license)", "Raiden Fighters 2 - Operation Hell Dive (Germany)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1997, rdft2u, rdft2, spi, spi_2button, seibuspi_state, rdft2, ROT270, "Seibu Kaihatsu (Fabtek license)", "Raiden Fighters 2 - Operation Hell Dive (US)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1997, rdft2j, rdft2, spi, spi_2button, seibuspi_state, rdft2, ROT270, "Seibu Kaihatsu", "Raiden Fighters 2 - Operation Hell Dive (Japan set 1)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1997, rdft2ja, rdft2, spi, spi_2button, seibuspi_state, rdft2, ROT270, "Seibu Kaihatsu", "Raiden Fighters 2 - Operation Hell Dive (Japan set 2)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1997, rdft2a, rdft2, spi, spi_2button, seibuspi_state, rdft2, ROT270, "Seibu Kaihatsu (Metrotainment license)", "Raiden Fighters 2 - Operation Hell Dive (Hong Kong)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1997, rdft2aa, rdft2, spi, spi_2button, seibuspi_state, rdft2, ROT270, "Seibu Kaihatsu (Dream Island license)", "Raiden Fighters 2 - Operation Hell Dive (Korea)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1997, rdft2t, rdft2, spi, spi_2button, seibuspi_state, rdft2, ROT270, "Seibu Kaihatsu", "Raiden Fighters 2 - Operation Hell Dive (Taiwan)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-
-GAME( 1998, rfjet, 0, spi, spi_2button, seibuspi_state, rfjet, ROT270, "Seibu Kaihatsu (Tuning license)", "Raiden Fighters Jet (Germany)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, rfjetu, rfjet, spi, spi_2button, seibuspi_state, rfjet, ROT270, "Seibu Kaihatsu (Fabtek license)", "Raiden Fighters Jet (US)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, rfjetj, rfjet, spi, spi_2button, seibuspi_state, rfjet, ROT270, "Seibu Kaihatsu", "Raiden Fighters Jet (Japan)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, rfjeta, rfjet, spi, spi_2button, seibuspi_state, rfjet, ROT270, "Seibu Kaihatsu (Dream Island license)", "Raiden Fighters Jet (Korea)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, rfjett, rfjet, spi, spi_2button, seibuspi_state, rfjet, ROT270, "Seibu Kaihatsu", "Raiden Fighters Jet (Taiwan)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
+GAME( 1995, senkyu, 0, spi, spi_3button, seibuspi_state, senkyu, ROT0, "Seibu Kaihatsu", "Senkyu (Japan set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1995, senkyua, senkyu, spi, spi_3button, seibuspi_state, senkyua, ROT0, "Seibu Kaihatsu", "Senkyu (Japan set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1995, batlball, senkyu, spi, spi_3button, seibuspi_state, batlball, ROT0, "Seibu Kaihatsu (Tuning license)", "Battle Balls (Germany)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1995, batlballu, senkyu, spi, spi_3button, seibuspi_state, batlball, ROT0, "Seibu Kaihatsu (Fabtek license)", "Battle Balls (US)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1995, batlballa, senkyu, spi, spi_3button, seibuspi_state, batlball, ROT0, "Seibu Kaihatsu (Metrotainment license)", "Battle Balls (Hong Kong)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1995, batlballe, senkyu, spi, spi_3button, seibuspi_state, batlball, ROT0, "Seibu Kaihatsu (Metrotainment license)", "Battle Balls (Hong Kong, earlier)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+
+GAME( 1995, viprp1, 0, spi, spi_3button, seibuspi_state, viprp1, ROT270, "Seibu Kaihatsu", "Viper Phase 1 (New Version, World)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1995, viprp1k, viprp1, spi, spi_3button, seibuspi_state, viprp1, ROT270, "Seibu Kaihatsu (Dream Island license)", "Viper Phase 1 (New Version, Korea)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1995, viprp1u, viprp1, spi, spi_3button, seibuspi_state, viprp1o, ROT270, "Seibu Kaihatsu (Fabtek license)", "Viper Phase 1 (New Version, US set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* New version, "=U.S.A=" seems part of title */
+GAME( 1995, viprp1ua, viprp1, spi, spi_3button, seibuspi_state, viprp1o, ROT270, "Seibu Kaihatsu (Fabtek license)", "Viper Phase 1 (New Version, US set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* New version, "=U.S.A=" seems part of title */
+GAME( 1995, viprp1j, viprp1, spi, spi_3button, seibuspi_state, viprp1, ROT270, "Seibu Kaihatsu", "Viper Phase 1 (New Version, Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1995, viprp1s, viprp1, spi, spi_3button, seibuspi_state, viprp1, ROT270, "Seibu Kaihatsu", "Viper Phase 1 (New Version, Switzerland)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // counterintuitively this seems to be the oldest set of the game despite playing with the 'new version' rules, it has various typos not present in other sets eg. 'UPDATEING'
+GAME( 1995, viprp1h, viprp1, spi, spi_3button, seibuspi_state, viprp1, ROT270, "Seibu Kaihatsu", "Viper Phase 1 (New Version, Holland)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // Code is the same as the above Switzerland set, just different region byte
+
+GAME( 1995, viprp1ot, viprp1, spi, spi_3button, seibuspi_state, viprp1, ROT270, "Seibu Kaihatsu (Tuning license)", "Viper Phase 1 (Germany)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1995, viprp1oj, viprp1, spi, spi_3button, seibuspi_state, viprp1o, ROT270, "Seibu Kaihatsu", "Viper Phase 1 (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1995, viprp1hk, viprp1, spi, spi_3button, seibuspi_state, viprp1, ROT270, "Seibu Kaihatsu (Metrotainment license)", "Viper Phase 1 (Hong Kong)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) /* "=HONG KONG=" seems part of title */
+
+GAME( 1996, ejanhs, 0, ejanhs, spi_ejanhs, seibuspi_state, ejanhs, ROT0, "Seibu Kaihatsu", "E-Jan High School (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
+
+GAME( 1996, rdft, 0, spi, spi_3button, seibuspi_state, rdft, ROT270, "Seibu Kaihatsu (Tuning license)", "Raiden Fighters (Germany)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, rdftj, rdft, spi, spi_3button, seibuspi_state, rdft, ROT270, "Seibu Kaihatsu", "Raiden Fighters (Japan set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, rdftja, rdft, spi, spi_3button, seibuspi_state, rdft, ROT270, "Seibu Kaihatsu", "Raiden Fighters (Japan set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, rdftjb, rdft, spi, spi_3button, seibuspi_state, rdft, ROT270, "Seibu Kaihatsu", "Raiden Fighters (Japan set 3)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, rdftu, rdft, spi, spi_3button, seibuspi_state, rdft, ROT270, "Seibu Kaihatsu (Fabtek license)", "Raiden Fighters (US)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, rdftam, rdft, spi, spi_3button, seibuspi_state, rdft, ROT270, "Seibu Kaihatsu (Metrotainment license)", "Raiden Fighters (Hong Kong)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, rdftadi, rdft, spi, spi_3button, seibuspi_state, rdft, ROT270, "Seibu Kaihatsu (Dream Island license)", "Raiden Fighters (Korea)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, rdftau, rdft, spi, spi_3button, seibuspi_state, rdft, ROT270, "Seibu Kaihatsu", "Raiden Fighters (Australia)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, rdftauge, rdft, spi, spi_3button, seibuspi_state, rdft, ROT270, "Seibu Kaihatsu (Tuning license)", "Raiden Fighters (Evaluation Software For Show, Germany)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, rdftit, rdft, spi, spi_3button, seibuspi_state, rdft, ROT270, "Seibu Kaihatsu", "Raiden Fighters (Italy)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, rdfta, rdft, spi, spi_3button, seibuspi_state, rdft, ROT270, "Seibu Kaihatsu", "Raiden Fighters (Austria)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+
+GAME( 1997, rdft2, 0, spi, spi_2button, seibuspi_state, rdft2, ROT270, "Seibu Kaihatsu (Tuning license)", "Raiden Fighters 2 - Operation Hell Dive (Germany)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1997, rdft2u, rdft2, spi, spi_2button, seibuspi_state, rdft2, ROT270, "Seibu Kaihatsu (Fabtek license)", "Raiden Fighters 2 - Operation Hell Dive (US)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1997, rdft2j, rdft2, spi, spi_2button, seibuspi_state, rdft2, ROT270, "Seibu Kaihatsu", "Raiden Fighters 2 - Operation Hell Dive (Japan set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1997, rdft2ja, rdft2, spi, spi_2button, seibuspi_state, rdft2, ROT270, "Seibu Kaihatsu", "Raiden Fighters 2 - Operation Hell Dive (Japan set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1997, rdft2a, rdft2, spi, spi_2button, seibuspi_state, rdft2, ROT270, "Seibu Kaihatsu (Metrotainment license)", "Raiden Fighters 2 - Operation Hell Dive (Hong Kong)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1997, rdft2aa, rdft2, spi, spi_2button, seibuspi_state, rdft2, ROT270, "Seibu Kaihatsu (Dream Island license)", "Raiden Fighters 2 - Operation Hell Dive (Korea)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1997, rdft2t, rdft2, spi, spi_2button, seibuspi_state, rdft2, ROT270, "Seibu Kaihatsu", "Raiden Fighters 2 - Operation Hell Dive (Taiwan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+
+GAME( 1998, rfjet, 0, spi, spi_2button, seibuspi_state, rfjet, ROT270, "Seibu Kaihatsu (Tuning license)", "Raiden Fighters Jet (Germany)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, rfjetu, rfjet, spi, spi_2button, seibuspi_state, rfjet, ROT270, "Seibu Kaihatsu (Fabtek license)", "Raiden Fighters Jet (US)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, rfjetj, rfjet, spi, spi_2button, seibuspi_state, rfjet, ROT270, "Seibu Kaihatsu", "Raiden Fighters Jet (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, rfjeta, rfjet, spi, spi_2button, seibuspi_state, rfjet, ROT270, "Seibu Kaihatsu (Dream Island license)", "Raiden Fighters Jet (Korea)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, rfjett, rfjet, spi, spi_2button, seibuspi_state, rfjet, ROT270, "Seibu Kaihatsu", "Raiden Fighters Jet (Taiwan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
/* SXX2E */
-GAME( 1996, rdfts, rdft, sxx2e, sxx2e, seibuspi_state, rdft, ROT270, "Seibu Kaihatsu (Explorer System Corp. license)", "Raiden Fighters (Taiwan, single board)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
+GAME( 1996, rdfts, rdft, sxx2e, sxx2e, seibuspi_state, rdft, ROT270, "Seibu Kaihatsu (Explorer System Corp. license)", "Raiden Fighters (Taiwan, single board)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
/* SXX2F */
-GAME( 1997, rdft2us, rdft2, sxx2f, sxx2f, seibuspi_state, rdft2, ROT270, "Seibu Kaihatsu (Fabtek license)", "Raiden Fighters 2 - Operation Hell Dive (US, single board)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) // title screen shows small '.1'
+GAME( 1997, rdft2us, rdft2, sxx2f, sxx2f, seibuspi_state, rdft2, ROT270, "Seibu Kaihatsu (Fabtek license)", "Raiden Fighters 2 - Operation Hell Dive (US, single board)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // title screen shows small '.1'
/* SXX2G */
-GAME( 1999, rfjets, rfjet, sxx2g, sxx2f, seibuspi_state, rfjet, ROT270, "Seibu Kaihatsu", "Raiden Fighters Jet (US, single board)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) // has 1998-99 copyright + planes unlocked
-GAME( 1999, rfjetsa, rfjet, sxx2g, sxx2f, seibuspi_state, rfjet, ROT270, "Seibu Kaihatsu", "Raiden Fighters Jet (US, single board, test version?)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) // maybe test/proto? see notes at romdefs
+GAME( 1999, rfjets, rfjet, sxx2g, sxx2f, seibuspi_state, rfjet, ROT270, "Seibu Kaihatsu", "Raiden Fighters Jet (US, single board)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // has 1998-99 copyright + planes unlocked
+GAME( 1999, rfjetsa, rfjet, sxx2g, sxx2f, seibuspi_state, rfjet, ROT270, "Seibu Kaihatsu", "Raiden Fighters Jet (US, single board, test version?)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) // maybe test/proto? see notes at romdefs
/* SYS386I */
-GAME( 2000, rdft22kc, rdft2, sys386i, sys386i, seibuspi_state, rdft2, ROT270, "Seibu Kaihatsu", "Raiden Fighters 2 - Operation Hell Dive 2000 (China, SYS386I)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS )
-GAME( 2000, rfjet2kc, rfjet, sys386i, sys386i, seibuspi_state, rfjet, ROT270, "Seibu Kaihatsu", "Raiden Fighters Jet 2000 (China, SYS386I)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS )
+GAME( 2000, rdft22kc, rdft2, sys386i, sys386i, seibuspi_state, rdft2, ROT270, "Seibu Kaihatsu", "Raiden Fighters 2 - Operation Hell Dive 2000 (China, SYS386I)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 2000, rfjet2kc, rfjet, sys386i, sys386i, seibuspi_state, rfjet, ROT270, "Seibu Kaihatsu", "Raiden Fighters Jet 2000 (China, SYS386I)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_GRAPHICS )
/* SYS386F */
-GAME( 1999, ejsakura, 0, sys386f, sys386f, seibuspi_state, sys386f, ROT0, "Seibu Kaihatsu", "E-Jan Sakurasou (Japan, SYS386F V2.0)", GAME_SUPPORTS_SAVE )
-GAME( 1999, ejsakura12, ejsakura, sys386f, sys386f, seibuspi_state, sys386f, ROT0, "Seibu Kaihatsu", "E-Jan Sakurasou (Japan, SYS386F V1.2)", GAME_SUPPORTS_SAVE )
+GAME( 1999, ejsakura, 0, sys386f, sys386f, seibuspi_state, sys386f, ROT0, "Seibu Kaihatsu", "E-Jan Sakurasou (Japan, SYS386F V2.0)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, ejsakura12, ejsakura, sys386f, sys386f, seibuspi_state, sys386f, ROT0, "Seibu Kaihatsu", "E-Jan Sakurasou (Japan, SYS386F V1.2)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/seicross.c b/src/mame/drivers/seicross.c
index 380023ace2d..bec57aa0e14 100644
--- a/src/mame/drivers/seicross.c
+++ b/src/mame/drivers/seicross.c
@@ -596,9 +596,9 @@ DRIVER_INIT_MEMBER(seicross_state,friskytb)
}
-GAME( 1981, friskyt, 0, nvram, friskyt, driver_device, 0, ROT0, "Nichibutsu", "Frisky Tom (set 1)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1981, friskyta, friskyt, nvram, friskyt, driver_device, 0, ROT0, "Nichibutsu", "Frisky Tom (set 2)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1981, friskytb, friskyt, friskytb, friskyt, seicross_state, friskytb, ROT0, "Nichibutsu", "Frisky Tom (set 3, encrypted)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) // protection mcu runs encrypted opcodes
-GAME( 1982, radrad, 0, no_nvram, radrad, driver_device, 0, ROT0, "Nichibutsu USA", "Radical Radial", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1984, seicross, 0, no_nvram, seicross, driver_device, 0, ROT90, "Nichibutsu / Alice", "Seicross", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1984, sectrzon, seicross, no_nvram, seicross, driver_device, 0, ROT90, "Nichibutsu / Alice", "Sector Zone", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+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", 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 )
diff --git a/src/mess/drivers/selz80.c b/src/mame/drivers/selz80.c
index 8f0c4b0e93c..62a2692f574 100644
--- a/src/mess/drivers/selz80.c
+++ b/src/mame/drivers/selz80.c
@@ -198,5 +198,5 @@ 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", GAME_NO_SOUND_HW)
-COMP( 1988, dagz80, selz80, 0, dagz80, selz80, driver_device, 0, "DAG", "DAG Z80 Trainer", GAME_NO_SOUND_HW)
+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)
diff --git a/src/mame/drivers/sengokmj.c b/src/mame/drivers/sengokmj.c
index b1c691decb9..1771d9515a5 100644
--- a/src/mame/drivers/sengokmj.c
+++ b/src/mame/drivers/sengokmj.c
@@ -640,5 +640,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)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+GAME( 1991, sengokmj, 0, sengokmj, sengokmj, driver_device, 0, ROT0, "Sigma", "Sengoku Mahjong [BET] (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
/*Non-Bet Version?*/
diff --git a/src/mame/drivers/senjyo.c b/src/mame/drivers/senjyo.c
index decc626fc7d..4ccb8036ab1 100644
--- a/src/mame/drivers/senjyo.c
+++ b/src/mame/drivers/senjyo.c
@@ -118,28 +118,13 @@ WRITE8_MEMBER(senjyo_state::sound_cmd_w)
m_pio->strobe_a(1);
}
-WRITE8_MEMBER(senjyo_state::paletteram_w)
-{
- int r = (data << 2) & 0xC;
- int g = (data ) & 0xC;
- int b = (data >> 2) & 0xC;
- int i = (data >> 6) & 0x3;
-
- int rr = r|((r!=0)?i:0);
- int gg = g|((g!=0)?i:0);
- int bb = b|((b!=0)?i:0);
-
- m_generic_paletteram_8[offset] = data;
- m_palette->set_pen_color(offset, pal4bit(rr), pal4bit(gg), pal4bit(bb) );
-}
-
static ADDRESS_MAP_START( senjyo_map, AS_PROGRAM, 8, senjyo_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8fff) AM_RAM
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(fgvideoram_w) AM_SHARE("fgvideoram")
AM_RANGE(0x9400, 0x97ff) AM_RAM_WRITE(fgcolorram_w) AM_SHARE("fgcolorram")
AM_RANGE(0x9800, 0x987f) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x9c00, 0x9dff) AM_RAM_WRITE(paletteram_w) AM_SHARE("paletteram")
+ AM_RANGE(0x9c00, 0x9dff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x9e00, 0x9e1f) AM_RAM AM_SHARE("fgscroll")
AM_RANGE(0x9e20, 0x9e21) AM_RAM AM_SHARE("scrolly3")
/* AM_RANGE(0x9e22, 0x9e23) height of the layer (Senjyo only, fixed at 0x380) */
@@ -210,7 +195,7 @@ static ADDRESS_MAP_START( starforb_map, AS_PROGRAM, 8, senjyo_state )
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(fgvideoram_w) AM_SHARE("fgvideoram")
AM_RANGE(0x9400, 0x97ff) AM_RAM_WRITE(fgcolorram_w) AM_SHARE("fgcolorram")
AM_RANGE(0x9800, 0x987f) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x9c00, 0x9dff) AM_RAM_WRITE(paletteram_w) AM_SHARE("paletteram")
+ AM_RANGE(0x9c00, 0x9dff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
/* The format / use of the ram here is different on the bootleg */
AM_RANGE(0x9e20, 0x9e21) AM_RAM AM_SHARE("scrolly3")
AM_RANGE(0x9e25, 0x9e25) AM_RAM AM_SHARE("scrollx3")
@@ -588,11 +573,14 @@ static MACHINE_CONFIG_START( senjyo, senjyo_state )
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(senjyo_state, screen_update)
- MCFG_SCREEN_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", "palette", senjyo)
- MCFG_PALETTE_ADD_INIT_BLACK("palette", 512+2) /* 512 real palette + 2 for the radar */
+ MCFG_PALETTE_ADD_INIT_BLACK("palette", 512)
+ MCFG_PALETTE_FORMAT_CLASS(1, senjyo_state, IIBBGGRR)
+
+ MCFG_PALETTE_ADD("radar_palette", 2)
+ MCFG_PALETTE_INIT_OWNER(senjyo_state, radar)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -980,10 +968,10 @@ DRIVER_INIT_MEMBER(senjyo_state,senjyo)
}
-GAME( 1983, senjyo, 0, senjyo, senjyo, senjyo_state, senjyo, ROT90, "Tehkan", "Senjyo", GAME_SUPPORTS_SAVE )
-GAME( 1984, starforc, 0, senjyo, starforc, senjyo_state, starforc, ROT90, "Tehkan", "Star Force", GAME_SUPPORTS_SAVE )
-GAME( 1984, starforce,starforc, senjyox, starforc, senjyo_state, starfore, ROT90, "Tehkan", "Star Force (encrypted, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1984, starforcb,starforc, starforb,starforc, senjyo_state, starfore, ROT90, "bootleg", "Star Force (encrypted, bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1984, starforca,starforc, senjyox, starforc, senjyo_state, starfora, ROT90, "Tehkan", "Star Force (encrypted, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1985, megaforc, starforc, senjyo, starforc, senjyo_state, starforc, ROT90, "Tehkan (Video Ware license)", "Mega Force", GAME_SUPPORTS_SAVE )
-GAME( 1986, baluba, 0, senjyo, baluba, senjyo_state, starforc, ROT90, "Able Corp, Ltd.", "Baluba-louk no Densetsu (Japan)", GAME_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, 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, 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.c b/src/mame/drivers/seta.c
index 9f22097eb51..c39c0dcfc2f 100644
--- a/src/mame/drivers/seta.c
+++ b/src/mame/drivers/seta.c
@@ -90,6 +90,7 @@ P0-122A (SZR-001) 95 Zombie Raid American Sammy
Notes:
- The NEC D4701 used by Caliber 50 is a mouse interface IC (uPD4701c).
Of course it's used to control the spinner. DownTown probably has it as well.
+- jjsquawk is modified from jjsquawko so nuts don't fall from the trees shaken by white animal.
DIP Locations verified from manuals for:
- Zing Zing Zip
@@ -127,8 +128,7 @@ TODO:
the current area is right for it)
- crazyfgt: emulate protection & tickets, fix graphics glitches, find correct clocks,
level 2 interrupt should probably be triggered by the 3812 but sound tends to die that way.
-- jjsquawk: Nuts don't fall from the trees shaken by white animal.
- Player's shot sound is missing (not requested to X1-010?).
+- jjsquawk: Player's shot sound is missing (not requested to X1-010?).
Many sounds are wrong since MAME 0.62.
i.e.
all scene: when you beat enemies or yellow walking eggs
@@ -2226,7 +2226,9 @@ static ADDRESS_MAP_START( blockcarb_map, AS_PROGRAM, 16, seta_state )
AM_RANGE(0x500000, 0x500001) AM_READ_PORT("P1") // P1
AM_RANGE(0x500002, 0x500003) AM_READ_PORT("P2") // P2
AM_RANGE(0x500004, 0x500005) AM_READ_PORT("COINS") // Coins
-// AM_RANGE(0xa00000, 0xa03fff) AM_DEVREADWRITE("x1snd", x1_010_device, word_r, word_w) // Sound - not on this bootleg
+ AM_RANGE(0x500008, 0x500009) AM_DEVWRITE8("oki", okim6295_device, write, 0x00ff)
+ //AM_RANGE(0x50000c, 0x50000d) // ??
+ AM_RANGE(0xa00000, 0xa03fff) AM_NOP // Sound - not on this bootleg
AM_RANGE(0xb00000, 0xb003ff) AM_RAM AM_SHARE("paletteram") // Palette
AM_RANGE(0xc00000, 0xc03fff) AM_RAM AM_DEVREADWRITE("spritegen", seta001_device, spritecode_r16, spritecode_w16) // Sprites Code + X + Attr
/**/AM_RANGE(0xd00000, 0xd00001) AM_RAM // ? 0x4000
@@ -8044,6 +8046,7 @@ static MACHINE_CONFIG_START( blandia, seta_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
@@ -8081,6 +8084,7 @@ static MACHINE_CONFIG_START( blandiap, seta_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
@@ -8146,9 +8150,8 @@ MACHINE_CONFIG_END
static ADDRESS_MAP_START( blockcarb_sound_map, AS_PROGRAM, 8, seta_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0x8000, 0xdfff) AM_ROM
- AM_RANGE(0xe800, 0xe800) AM_READ(wiggie_soundlatch_r)
- AM_RANGE(0xf800, 0xffff) AM_RAM
+ AM_RANGE(0xd000, 0xdfff) AM_RAM
+ //AM_RANGE(0xf001, 0xf001) ??
ADDRESS_MAP_END
static ADDRESS_MAP_START( blockcarb_sound_portmap, AS_IO, 8, seta_state )
@@ -10621,6 +10624,34 @@ ROM_START( jjsquawk ) /* PCB stickered J.J. SQUAWKERS 9401- 1022 */
ROM_LOAD( "fe2001006.u70", 0x080000, 0x080000, CRC(9df1e478) SHA1(f41b55821187b417ad09e4a1f439c01a107d2674) )
ROM_END
+ROM_START( jjsquawko ) /* Official 93111A PCB missing version sticker */
+ ROM_REGION( 0x200000, "maincpu", 0 ) /* 68000 Code */
+ ROM_LOAD16_BYTE( "fe2001001.u3", 0x000000, 0x040000, CRC(921c9762) SHA1(bbc1fb95256f7eb2aa7ad23f38dbcdf502e7da8d) )
+ ROM_CONTINUE ( 0x100000, 0x040000 )
+ ROM_LOAD16_BYTE( "fe2001002.u4", 0x000001, 0x040000, CRC(0227a2be) SHA1(8ee0c39f84110865778564f803b4db11bfdfbad7) )
+ ROM_CONTINUE ( 0x100001, 0x040000 )
+
+ ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
+ ROM_LOAD( "fe2001009", 0x000000, 0x080000, CRC(27441cd3) SHA1(5867fc30c158e07f2d36ecab97b1d304383e6f35) ) /* These roms located on a plug-in PCB */
+ ROM_LOAD( "fe2001010", 0x080000, 0x080000, CRC(ca2b42c4) SHA1(9b99b6618fe44a6c29a255e89dab72a0a56214df) )
+ ROM_LOAD( "fe2001007", 0x100000, 0x080000, CRC(62c45658) SHA1(82b1ea138e8f4b4ade7e44b31843aa2023c9dd71) )
+ ROM_LOAD( "fe2001008", 0x180000, 0x080000, CRC(2690c57b) SHA1(b880ded7715dffe12c4fea7ad7cb9c5133b73250) )
+
+ ROM_REGION( 0x200000, "gfx2", 0 ) /* Layer 1 */
+ ROM_LOAD ( "fe2001011", 0x000000, 0x080000, CRC(98b9f4b4) SHA1(de96708aebb428ddc413c3649caaec80c0c155bd) ) /* This rom located on a plug-in PCB */
+ ROM_LOAD ( "fe2001012", 0x080000, 0x080000, CRC(d4aa916c) SHA1(d619d20c33f16ab06b529fc1717ad9b703acbabf) ) /* This rom located on a plug-in PCB */
+ ROM_LOAD16_BYTE( "fe2001003", 0x100000, 0x080000, CRC(a5a35caf) SHA1(da4bdb7f0b319f8ff972a552d0134a73e5ac1b87) )
+
+ ROM_REGION( 0x200000, "gfx3", 0 ) /* Layer 2 */
+ ROM_LOAD ( "fe2001014", 0x000000, 0x080000, CRC(274bbb48) SHA1(b8db632a9bbb7232d0b1debd67b3b453fd4989e6) ) /* This rom located on a plug-in PCB */
+ ROM_LOAD ( "fe2001013", 0x080000, 0x080000, CRC(51e29871) SHA1(9d33283bd9a3f57602a55cfc9fafa49edd0be8c5) ) /* This rom located on a plug-in PCB */
+ ROM_LOAD16_BYTE( "fe2001004", 0x100000, 0x080000, CRC(a235488e) SHA1(a45d02a4451defbef7fbdab15671955fab8ed76b) )
+
+ ROM_REGION( 0x100000, "x1snd", 0 ) /* Samples */
+ ROM_LOAD( "fe2001005.u69", 0x000000, 0x080000, CRC(d99f2879) SHA1(66e83a6bc9093d19c72bd8ef1ec0523cfe218250) )
+ ROM_LOAD( "fe2001006.u70", 0x080000, 0x080000, CRC(9df1e478) SHA1(f41b55821187b417ad09e4a1f439c01a107d2674) )
+ROM_END
+
ROM_START( jjsquawkb )
ROM_REGION( 0x200000, "maincpu", 0 ) /* 68000 Code */
ROM_LOAD16_WORD_SWAP( "3", 0x000000, 0x080000, CRC(afd5bd07) SHA1(eee231f596ce5cb9bbf41c7c9e18c11a399d7dfd) )
@@ -10647,7 +10678,7 @@ ROM_START( jjsquawkb )
ROM_LOAD( "1", 0x000000, 0x100000, CRC(181a55b8) SHA1(6fa404f85bad93cc15e80feb61d19bed84602b82) ) /* fe2001005.u69 + fe2001006.u70 from jjsquawk */
ROM_END
-ROM_START( jjsquawkb2 ) /* PCB was P0-078A, which was a Blandia board converted to JJ Squawkers. No labels on any of the ROMs */
+ROM_START( jjsquawkb2 ) /* PCB was P0-078A, which was a Blandia board converted to JJ Squawkers. No labels on any of the ROMs. Apparently based on jjsquawko set. */
ROM_REGION( 0x200000, "maincpu", 0 ) /* 68000 Code */
ROM_LOAD16_BYTE( "u3.3a", 0x000000, 0x040000, CRC(f94c913b) SHA1(de6e422c514c787897f8f41d7cd98acb0135c763) ) // 99.999619%
ROM_CONTINUE ( 0x100000, 0x040000 )
@@ -11599,21 +11630,21 @@ GAME( 1989, metafox, 0, metafox, metafox, seta_state, metafox, ROT27
/* 68000 */
-GAME( 198?, setaroul, 0, setaroul, setaroul, driver_device, 0, ROT270, "Visco", "Visco Roulette", GAME_NOT_WORKING ) // I can't see a title in the GFX roms. Press F2 twice to boot..
+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( 1989, drgnunit, 0, drgnunit, drgnunit, driver_device, 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( 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)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL ) // 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( 1994, wiggie, 0, wiggie, thunderl, seta_state, wiggie, ROT270, "Promat", "Wiggie Waggie", GAME_IMPERFECT_GRAPHICS ) // hack of Thunder & Lightning
-GAME( 1994, superbar, wiggie, superbar, thunderl, seta_state, wiggie, ROT270, "Promat", "Super Bar", GAME_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)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION )
-GAME( 1993, inttootea,jockeyc, inttoote, inttoote, seta_state, inttootea,ROT0, "Coinmaster", "International Toote II (World?)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION )
+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 )
@@ -11622,11 +11653,11 @@ GAME( 1991, stg, 0, drgnunit, stg, driver_device, 0, ROT
GAME( 1991, pairlove, 0, pairlove, pairlove, driver_device, 0, ROT270, "Athena", "Pairs Love", 0 )
-GAME( 1992, blandia, 0, blandia, blandia, seta_state, blandia, ROT0, "Allumer", "Blandia", GAME_IMPERFECT_GRAPHICS )
-GAME( 1992, blandiap, blandia, blandiap, blandia, driver_device, 0, ROT0, "Allumer", "Blandia (prototype)", GAME_IMPERFECT_GRAPHICS )
+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, 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)", GAME_NO_SOUND)
+GAME( 1992, blockcarb,blockcar, blockcarb,blockcar, driver_device, 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 )
@@ -11635,7 +11666,7 @@ GAME( 1992, neobattl, 0, umanclub, neobattl, driver_device, 0, ROT
GAME( 1992, umanclub, 0, umanclub, umanclub, driver_device, 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)", GAME_NOT_WORKING )
+GAME( 1992, zingzipbl,zingzip, zingzipbl,zingzip, driver_device, 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 )
@@ -11644,9 +11675,10 @@ GAME( 1993, daioha, daioh, daioh, daioh, driver_device, 0, ROT
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, jjsquawk, 0, jjsquawk, jjsquawk, driver_device, 0, ROT0, "Athena / Able", "J. J. Squawkers", GAME_IMPERFECT_SOUND )
-GAME( 1993, jjsquawkb,jjsquawk, jjsquawb, jjsquawk, driver_device, 0, ROT0, "bootleg", "J. J. Squawkers (bootleg)", GAME_IMPERFECT_SOUND )
-GAME( 1993, jjsquawkb2,jjsquawk,jjsquawk, jjsquawk, driver_device, 0, ROT0, "bootleg", "J. J. Squawkers (bootleg, Blandia Conversion)", GAME_IMPERFECT_SOUND )
+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( 1993, kamenrid, 0, kamenrid, kamenrid, driver_device, 0, ROT0, "Banpresto / Toei", "Masked Riders Club Battle Race", 0 )
@@ -11677,15 +11709,15 @@ GAME( 1994, orbs, 0, orbs, orbs, driver_device, 0, ROT
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, extdwnhl, 0, extdwnhl, extdwnhl, driver_device, 0, ROT0, "Sammy Industries Japan", "Extreme Downhill (v1.5)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1995, extdwnhl, 0, extdwnhl, extdwnhl, driver_device, 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, sokonuke, 0, extdwnhl, sokonuke, driver_device, 0, ROT0, "Sammy Industries", "Sokonuke Taisen Game (Japan)", GAME_IMPERFECT_SOUND )
+GAME( 1995, sokonuke, 0, extdwnhl, sokonuke, driver_device, 0, ROT0, "Sammy Industries", "Sokonuke Taisen Game (Japan)", MACHINE_IMPERFECT_SOUND )
-GAME( 1995, zombraid, 0, gundhara, zombraid, seta_state, zombraid, ROT0, "American Sammy", "Zombie Raid (9/28/95, US)", GAME_NO_COCKTAIL )
-GAME( 1995, zombraidp,zombraid, gundhara, zombraid, seta_state, zombraid, ROT0, "American Sammy", "Zombie Raid (9/28/95, US, prototype PCB)", GAME_NO_COCKTAIL ) // actual code is same as the released version
-GAME( 1995, zombraidpj,zombraid,gundhara, zombraid, seta_state, zombraid, ROT0, "Sammy Industries Co.,Ltd.", "Zombie Raid (9/28/95, Japan, prototype PCB)", GAME_NO_COCKTAIL ) // just 3 bytes different from above
+GAME( 1995, zombraid, 0, gundhara, zombraid, seta_state, zombraid, ROT0, "American Sammy", "Zombie Raid (9/28/95, US)", MACHINE_NO_COCKTAIL )
+GAME( 1995, zombraidp,zombraid, gundhara, 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
+GAME( 1995, zombraidpj,zombraid,gundhara, zombraid, seta_state, zombraid, ROT0, "Sammy Industries Co.,Ltd.", "Zombie Raid (9/28/95, Japan, prototype PCB)", MACHINE_NO_COCKTAIL ) // just 3 bytes different from above
-GAME( 1996, crazyfgt, 0, crazyfgt, crazyfgt, seta_state, crazyfgt, ROT0, "Subsino", "Crazy Fight", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
+GAME( 1996, crazyfgt, 0, crazyfgt, crazyfgt, seta_state, crazyfgt, ROT0, "Subsino", "Crazy Fight", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
diff --git a/src/mame/drivers/seta2.c b/src/mame/drivers/seta2.c
index 6fd3a1a44a7..6827df7fb95 100644
--- a/src/mame/drivers/seta2.c
+++ b/src/mame/drivers/seta2.c
@@ -2123,11 +2123,10 @@ static MACHINE_CONFIG_START( seta2, seta2_state )
MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
// sound hardware
- MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
+ MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("x1snd", X1_010, XTAL_50MHz/3) // clock?
- MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
- MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
@@ -3559,28 +3558,28 @@ 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", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, mj4simai, 0, mj4simai, mj4simai, driver_device, 0, ROT0, "Maboroshi Ware", "Wakakusamonogatari Mahjong Yonshimai (Japan)", GAME_NO_COCKTAIL )
-GAME( 1996, myangel, 0, myangel, myangel, driver_device, 0, ROT0, "MOSS / Namco", "Kosodate Quiz My Angel (Japan)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, myangel2, 0, myangel2, myangel2, driver_device, 0, ROT0, "MOSS / Namco", "Kosodate Quiz My Angel 2 (Japan)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, reelquak, 0, reelquak, reelquak, driver_device, 0, ROT0, "<unknown>", "Reel'N Quake! (Version 1.05)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
-GAME( 199?, endrichs, 0, reelquak, endrichs, driver_device, 0, ROT0, "E.N.Tiger", "Endless Riches (Ver 1.20)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
-GAME( 1999, pzlbowl, 0, pzlbowl, pzlbowl, driver_device, 0, ROT0, "MOSS / Nihon System", "Puzzle De Bowling (Japan)", GAME_NO_COCKTAIL )
-GAME( 2000, penbros, 0, penbros, penbros, driver_device, 0, ROT0, "Subsino", "Penguin Brothers (Japan)", GAME_NO_COCKTAIL )
-GAME( 2000, namcostr, 0, namcostr, funcube, driver_device, 0, ROT0, "Namco", "Namco Stars", GAME_NO_COCKTAIL | GAME_NOT_WORKING )
-GAME( 2000, deerhunt, 0, samshoot, deerhunt, driver_device, 0, ROT0, "Sammy USA Corporation", "Deer Hunting USA V4.3", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
-GAME( 2000, deerhunta,deerhunt, samshoot, deerhunt, driver_device, 0, ROT0, "Sammy USA Corporation", "Deer Hunting USA V4.2", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
-GAME( 2000, deerhuntb,deerhunt, samshoot, deerhunt, driver_device, 0, ROT0, "Sammy USA Corporation", "Deer Hunting USA V4.0", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
-GAME( 2000, deerhuntc,deerhunt, samshoot, deerhunt, driver_device, 0, ROT0, "Sammy USA Corporation", "Deer Hunting USA V3", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
-GAME( 2000, deerhuntd,deerhunt, samshoot, deerhunt, driver_device, 0, ROT0, "Sammy USA Corporation", "Deer Hunting USA V2", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
-GAME( 2000, deerhunte,deerhunt, samshoot, deerhunt, driver_device, 0, ROT0, "Sammy USA Corporation", "Deer Hunting USA V1", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
-GAME( 2001, turkhunt, 0, samshoot, turkhunt, driver_device, 0, ROT0, "Sammy USA Corporation", "Turkey Hunting USA V1.0", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
-GAME( 2001, wschamp, 0, samshoot, wschamp, driver_device, 0, ROT0, "Sammy USA Corporation", "Wing Shooting Championship V2.00", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
-GAME( 2001, wschampa, wschamp, samshoot, wschamp, driver_device, 0, ROT0, "Sammy USA Corporation", "Wing Shooting Championship V1.01", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
-GAME( 2001, wschampb, wschamp, samshoot, wschamp, driver_device, 0, ROT0, "Sammy USA Corporation", "Wing Shooting Championship V1.00", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
-GAME( 2002, trophyh, 0, samshoot, trophyh, driver_device, 0, ROT0, "Sammy USA Corporation", "Trophy Hunting - Bear & Moose V1.0", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS )
-GAME( 2000, funcube, 0, funcube, funcube, seta2_state, funcube, ROT0, "Namco", "Funcube (v1.5)", GAME_NO_COCKTAIL )
-GAME( 2001, funcube2, 0, funcube2, funcube, seta2_state, funcube2, ROT0, "Namco", "Funcube 2 (v1.1)", GAME_NO_COCKTAIL )
-GAME( 2001, funcube3, 0, funcube3, funcube, seta2_state, funcube3, ROT0, "Namco", "Funcube 3 (v1.1)", GAME_NO_COCKTAIL )
-GAME( 2001, funcube4, 0, funcube2, funcube, seta2_state, funcube2, ROT0, "Namco", "Funcube 4 (v1.0)", GAME_NO_COCKTAIL )
-GAME( 2002, funcube5, 0, funcube2, funcube, seta2_state, funcube2, ROT0, "Namco", "Funcube 5 (v1.0)", GAME_NO_COCKTAIL )
+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, "<unknown>", "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( 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, 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 )
diff --git a/src/mame/drivers/sf.c b/src/mame/drivers/sf.c
index 720dd96bad2..f1e63e78cc9 100644
--- a/src/mame/drivers/sf.c
+++ b/src/mame/drivers/sf.c
@@ -956,8 +956,8 @@ ROM_END
-GAME( 1987, sf, 0, sfus, sfus, driver_device, 0, ROT0, "Capcom", "Street Fighter (US, set 1)", GAME_SUPPORTS_SAVE ) // Shows Capcom copyright
-GAME( 1987, sfua, sf, sfjp, sfjp, driver_device, 0, ROT0, "Capcom", "Street Fighter (US, set 2) (protected)", GAME_SUPPORTS_SAVE ) // Shows Capcom USA copyright
-GAME( 1987, sfj, sf, sfjp, sfjp, driver_device, 0, ROT0, "Capcom", "Street Fighter (Japan) (protected)", GAME_SUPPORTS_SAVE )
-GAME( 1987, sfan, sf, sfan, sfan, driver_device, 0, ROT0, "Capcom", "Street Fighter (World, pneumatic buttons)", GAME_SUPPORTS_SAVE )
-GAME( 1987, sfp, sf, sfp, sfan, driver_device, 0, ROT0, "Capcom", "Street Fighter (prototype)", GAME_SUPPORTS_SAVE )
+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, 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 )
diff --git a/src/mame/drivers/sfbonus.c b/src/mame/drivers/sfbonus.c
index e2ca6d141be..59386a8300a 100644
--- a/src/mame/drivers/sfbonus.c
+++ b/src/mame/drivers/sfbonus.c
@@ -6337,13 +6337,13 @@ GAME( 200?, getrich, 0, sfbonus, newer1_reels3, sfbonus_state,
// no graphic / sound roms dumped for these sets, but functional program roms & descramble are in place
/* Version 4 is a multi-game that has New Fruit Bonus ?96 Special Edition Ver. 4, New Cherry ?96 Special Edition Ver. 4 or Skill Cherry ?97 Ver. 4 */
-GAME( 2006, version4, 0, sfbonus, amcoe1_reels3, sfbonus_state, version4, ROT0, "Amcoe", "Version 4 (Version 4.3R CGA)", GAME_NOT_WORKING)
-GAME( 2006, version4v, version4, sfbonus, amcoe1_reels3, sfbonus_state, version4v, ROT0, "Amcoe", "Version 4 (Version 4.3R Dual)", GAME_NOT_WORKING)
-GAME( 2006, version4d2, version4, sfbonus, amcoe1_reels3, sfbonus_state, version4d2, ROT0, "Amcoe", "Version 4 (Version 4.3E CGA)", GAME_NOT_WORKING)
-GAME( 2006, version4v2, version4, sfbonus, amcoe1_reels3, sfbonus_state, version4v2, ROT0, "Amcoe", "Version 4 (Version 4.3E Dual)", GAME_NOT_WORKING)
-GAME( 2006, version4d3, version4, sfbonus, amcoe1_reels3, sfbonus_state, version4, ROT0, "Amcoe", "Version 4 (Version 4.3LT CGA)", GAME_NOT_WORKING)
-GAME( 2006, version4v3, version4, sfbonus, amcoe1_reels3, sfbonus_state, version4v, ROT0, "Amcoe", "Version 4 (Version 4.3LT Dual)",GAME_NOT_WORKING)
-GAME( 2006, version4o, version4, sfbonus, amcoe1_reels3, sfbonus_state, version4, ROT0, "Amcoe", "Version 4 (Version 4.2R CGA)", GAME_NOT_WORKING)
+GAME( 2006, version4, 0, sfbonus, amcoe1_reels3, sfbonus_state, version4, ROT0, "Amcoe", "Version 4 (Version 4.3R CGA)", MACHINE_NOT_WORKING)
+GAME( 2006, version4v, version4, sfbonus, amcoe1_reels3, sfbonus_state, version4v, ROT0, "Amcoe", "Version 4 (Version 4.3R Dual)", MACHINE_NOT_WORKING)
+GAME( 2006, version4d2, version4, sfbonus, amcoe1_reels3, sfbonus_state, version4d2, ROT0, "Amcoe", "Version 4 (Version 4.3E CGA)", MACHINE_NOT_WORKING)
+GAME( 2006, version4v2, version4, sfbonus, amcoe1_reels3, sfbonus_state, version4v2, ROT0, "Amcoe", "Version 4 (Version 4.3E Dual)", MACHINE_NOT_WORKING)
+GAME( 2006, version4d3, version4, sfbonus, amcoe1_reels3, sfbonus_state, version4, ROT0, "Amcoe", "Version 4 (Version 4.3LT CGA)", MACHINE_NOT_WORKING)
+GAME( 2006, version4v3, version4, sfbonus, amcoe1_reels3, sfbonus_state, version4v, ROT0, "Amcoe", "Version 4 (Version 4.3LT Dual)",MACHINE_NOT_WORKING)
+GAME( 2006, version4o, version4, sfbonus, amcoe1_reels3, sfbonus_state, version4, ROT0, "Amcoe", "Version 4 (Version 4.2R CGA)", MACHINE_NOT_WORKING)
// Known sets but no roms dumped at all for these:
// Merry Circus
@@ -6352,4 +6352,4 @@ GAME( 2006, version4o, version4, sfbonus, amcoe1_reels3, sfbonus_state,
// ?? what is this
-GAME( 200?, amclink, 0, sfbonus, amcoe1_reels3, sfbonus_state, sfbonus_common, ROT0, "Amcoe", "Amcoe Link Control Box (Version 2.2)", GAME_NOT_WORKING)
+GAME( 200?, amclink, 0, sfbonus, amcoe1_reels3, sfbonus_state, sfbonus_common, ROT0, "Amcoe", "Amcoe Link Control Box (Version 2.2)", MACHINE_NOT_WORKING)
diff --git a/src/mame/drivers/sfcbox.c b/src/mame/drivers/sfcbox.c
index 6a1069a8c7a..713c8992b4b 100644
--- a/src/mame/drivers/sfcbox.c
+++ b/src/mame/drivers/sfcbox.c
@@ -571,8 +571,8 @@ ROM_START( pss64 )
ROM_END
-GAME( 1994, sfcbox, 0, sfcbox, snes, snes_state, snes, ROT0, "Nintendo", "Super Famicom Box BIOS", GAME_IS_BIOS_ROOT | GAME_NOT_WORKING )
-GAME( 1994, pss61, sfcbox, sfcbox, snes, snes_state, snes, ROT0, "Nintendo", "Super Mario Kart / Super Mario Collection / Star Fox (Super Famicom Box)", GAME_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)", GAME_NOT_WORKING )
-GAME( 1994, pss63, sfcbox, sfcbox, snes, snes_state, snes, ROT0, "Nintendo / BPS", "Super Donkey Kong / Super Tetris 2 + Bombliss (Super Famicom Box)", GAME_NOT_WORKING )
-GAME( 199?, pss64, sfcbox, sfcbox, snes, snes_state, snes, ROT0, "Nintendo / Hudson Soft", "Super Donkey Kong / Super Bomberman 2 (Super Famicom Box)", GAME_NOT_WORKING )
+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 )
diff --git a/src/mame/drivers/sfkick.c b/src/mame/drivers/sfkick.c
index cd6e4bbed66..563588635f4 100644
--- a/src/mame/drivers/sfkick.c
+++ b/src/mame/drivers/sfkick.c
@@ -65,9 +65,27 @@ class sfkick_state : public driver_device
public:
sfkick_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
- m_v9938(*this, "v9938"),
+ m_v9938(*this, "v9938"),
m_maincpu(*this, "maincpu"),
- m_soundcpu(*this, "soundcpu") { }
+ m_soundcpu(*this, "soundcpu"),
+ m_region_bios(*this, "bios"),
+ m_region_extrom(*this, "extrom"),
+ m_region_banked(*this, "banked"),
+ m_region_cartridge(*this, "cartridge"),
+ m_bank1(*this, "bank1"),
+ m_bank2(*this, "bank2"),
+ m_bank3(*this, "bank3"),
+ m_bank4(*this, "bank4"),
+ m_bank5(*this, "bank5"),
+ m_bank6(*this, "bank6"),
+ m_bank7(*this, "bank7"),
+ m_bank8(*this, "bank8"),
+ m_in0(*this, "IN0"),
+ m_in1(*this, "IN1"),
+ m_dial(*this, "DIAL"),
+ m_dsw1(*this, "DSW1"),
+ m_dsw2(*this, "DSW2")
+ { }
UINT8 *m_main_mem;
int m_bank_cfg;
@@ -83,22 +101,32 @@ public:
DECLARE_WRITE8_MEMBER(ppi_port_c_w);
DECLARE_DRIVER_INIT(sfkick);
virtual void machine_reset();
- TIMER_DEVICE_CALLBACK_MEMBER(sfkick_interrupt);
void sfkick_remap_banks();
void sfkick_bank_set(int num, int data);
DECLARE_WRITE_LINE_MEMBER(irqhandler);
DECLARE_WRITE_LINE_MEMBER(sfkick_vdp_interrupt);
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_soundcpu;
+ required_memory_region m_region_bios;
+ required_memory_region m_region_extrom;
+ required_memory_region m_region_banked;
+ required_memory_region m_region_cartridge;
+ required_memory_bank m_bank1;
+ required_memory_bank m_bank2;
+ required_memory_bank m_bank3;
+ required_memory_bank m_bank4;
+ required_memory_bank m_bank5;
+ required_memory_bank m_bank6;
+ required_memory_bank m_bank7;
+ required_memory_bank m_bank8;
+ required_ioport m_in0;
+ required_ioport m_in1;
+ required_ioport m_dial;
+ required_ioport m_dsw1;
+ required_ioport m_dsw2;
};
-#define MSX2_XBORDER_PIXELS 16
-#define MSX2_YBORDER_PIXELS 28
-#define MSX2_TOTAL_XRES_PIXELS 256 * 2 + (MSX2_XBORDER_PIXELS * 2)
-#define MSX2_TOTAL_YRES_PIXELS 212 * 2 + (MSX2_YBORDER_PIXELS * 2)
-#define MSX2_VISIBLE_XBORDER_PIXELS 8 * 2
-#define MSX2_VISIBLE_YBORDER_PIXELS 14 * 2
#define MASTER_CLOCK XTAL_21_4772MHz
@@ -106,11 +134,11 @@ READ8_MEMBER(sfkick_state::ppi_port_b_r)
{
switch(m_input_mux&0x0f)
{
- case 0: return ioport("IN0")->read();
- case 1: return ioport("IN1")->read();
- case 2: return BITSWAP8(ioport("DIAL")->read(),4,5,6,7,3,2,1,0);
- case 3: return ioport("DSW2")->read();
- case 4: return ioport("DSW1")->read();
+ case 0: return m_in0->read();
+ case 1: return m_in1->read();
+ case 2: return BITSWAP8(m_dial->read(),4,5,6,7,3,2,1,0);
+ case 3: return m_dsw2->read();
+ case 4: return m_dsw1->read();
}
return 0xff;
}
@@ -122,33 +150,33 @@ void sfkick_state::sfkick_remap_banks()
{
case 0: /* bios */
{
- UINT8 *mem = memregion("bios")->base();
- membank("bank1")->set_base(mem);
- membank("bank2")->set_base(mem+0x2000);
+ UINT8 *mem = m_region_bios->base();
+ m_bank1->set_base(mem);
+ m_bank2->set_base(mem+0x2000);
}
break;
case 1: /* ext rom */
{
- UINT8 *mem = memregion("extrom")->base();
- membank("bank1")->set_base(mem+0x4000);
- membank("bank2")->set_base(mem+0x6000);
+ UINT8 *mem = m_region_extrom->base();
+ m_bank1->set_base(mem+0x4000);
+ m_bank2->set_base(mem+0x6000);
}
break;
case 2: /* banked */
{
- UINT8 *mem = memregion("banked")->base();
- membank("bank1")->set_base(mem+0x2000*m_bank[0]);
- membank("bank2")->set_base(mem+0x2000*m_bank[1]);
+ UINT8 *mem = m_region_banked->base();
+ m_bank1->set_base(mem+0x2000*m_bank[0]);
+ m_bank2->set_base(mem+0x2000*m_bank[1]);
}
break;
case 3: /* unknown */
{
- UINT8 *mem = memregion("banked")->base();
- membank("bank1")->set_base(mem+0x18000);
- membank("bank2")->set_base(mem+0x18000);
+ UINT8 *mem = m_region_banked->base();
+ m_bank1->set_base(mem+0x18000);
+ m_bank2->set_base(mem+0x18000);
}
break;
}
@@ -158,26 +186,26 @@ void sfkick_state::sfkick_remap_banks()
{
case 0: /* bios - upper part */
{
- UINT8 *mem = memregion("bios")->base();
- membank("bank3")->set_base(mem+0x4000);
- membank("bank4")->set_base(mem+0x6000);
+ UINT8 *mem = m_region_bios->base();
+ m_bank3->set_base(mem+0x4000);
+ m_bank4->set_base(mem+0x6000);
}
break;
case 1: /* unknown */
case 3:
{
- UINT8 *mem = memregion("banked")->base();
- membank("bank3")->set_base(mem+0x18000);
- membank("bank4")->set_base(mem+0x18000);
+ UINT8 *mem = m_region_banked->base();
+ m_bank3->set_base(mem+0x18000);
+ m_bank4->set_base(mem+0x18000);
}
break;
case 2: /* banked */
{
- UINT8 *mem = memregion("banked")->base();
- membank("bank3")->set_base(mem+0x2000*m_bank[2]);
- membank("bank4")->set_base(mem+0x2000*m_bank[3]);
+ UINT8 *mem = m_region_banked->base();
+ m_bank3->set_base(mem+0x2000*m_bank[2]);
+ m_bank4->set_base(mem+0x2000*m_bank[3]);
}
break;
}
@@ -187,26 +215,26 @@ void sfkick_state::sfkick_remap_banks()
{
case 0: /* cartridge */
{
- UINT8 *mem = memregion("cartridge")->base();
- membank("bank5")->set_base(mem+0x4000);
- membank("bank6")->set_base(mem+0x6000);
+ UINT8 *mem = m_region_cartridge->base();
+ m_bank5->set_base(mem+0x4000);
+ m_bank6->set_base(mem+0x6000);
}
break;
case 1: /* unknown */
case 3:
{
- UINT8 *mem = memregion("banked")->base();
- membank("bank5")->set_base(mem+0x18000);
- membank("bank6")->set_base(mem+0x18000);
+ UINT8 *mem = m_region_banked->base();
+ m_bank5->set_base(mem+0x18000);
+ m_bank6->set_base(mem+0x18000);
}
break;
case 2: /* banked */
{
- UINT8 *mem = memregion("banked")->base();
- membank("bank5")->set_base(mem+0x2000*m_bank[4]);
- membank("bank6")->set_base(mem+0x2000*m_bank[5]);
+ UINT8 *mem = m_region_banked->base();
+ m_bank5->set_base(mem+0x2000*m_bank[4]);
+ m_bank6->set_base(mem+0x2000*m_bank[5]);
}
break;
}
@@ -217,24 +245,24 @@ void sfkick_state::sfkick_remap_banks()
case 0: /* unknown */
case 1:
{
- UINT8 *mem = memregion("banked")->base();
- membank("bank7")->set_base(mem+0x18000);
- membank("bank8")->set_base(mem+0x18000);
+ UINT8 *mem = m_region_banked->base();
+ m_bank7->set_base(mem+0x18000);
+ m_bank8->set_base(mem+0x18000);
}
break;
case 2: /* banked */
{
- UINT8 *mem = memregion("banked")->base();
- membank("bank7")->set_base(mem+0x2000*m_bank[6]);
- membank("bank8")->set_base(mem+0x2000*m_bank[7]);
+ UINT8 *mem = m_region_banked->base();
+ m_bank7->set_base(mem+0x2000*m_bank[6]);
+ m_bank8->set_base(mem+0x2000*m_bank[7]);
}
break;
case 3: /* RAM */
{
- membank("bank7")->set_base(m_main_mem);
- membank("bank8")->set_base(m_main_mem+0x2000);
+ m_bank7->set_base(m_main_mem);
+ m_bank8->set_base(m_main_mem+0x2000);
}
break;
}
@@ -447,11 +475,6 @@ void sfkick_state::machine_reset()
sfkick_remap_banks();
}
-TIMER_DEVICE_CALLBACK_MEMBER(sfkick_state::sfkick_interrupt)
-{
- m_v9938->interrupt();
-}
-
WRITE_LINE_MEMBER(sfkick_state::irqhandler)
{
m_soundcpu->set_input_line_and_vector(0, state ? ASSERT_LINE : CLEAR_LINE, 0xff);
@@ -462,7 +485,6 @@ static MACHINE_CONFIG_START( sfkick, sfkick_state )
MCFG_CPU_ADD("maincpu",Z80,MASTER_CLOCK/6)
MCFG_CPU_PROGRAM_MAP(sfkick_map)
MCFG_CPU_IO_MAP(sfkick_io_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", sfkick_state, sfkick_interrupt, "screen", 0, 1)
MCFG_QUANTUM_TIME(attotime::from_hz(60000))
@@ -470,16 +492,9 @@ static MACHINE_CONFIG_START( sfkick, sfkick_state )
MCFG_CPU_PROGRAM_MAP(sfkick_sound_map)
MCFG_CPU_IO_MAP(sfkick_sound_io_map)
- MCFG_V9938_ADD("v9938", "screen", 0x80000)
+ MCFG_V9938_ADD("v9938", "screen", 0x80000, MASTER_CLOCK)
MCFG_V99X8_INTERRUPT_CALLBACK(WRITELINE(sfkick_state,sfkick_vdp_interrupt))
-
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_UPDATE_DEVICE("v9938", v9938_device, screen_update)
- MCFG_SCREEN_SIZE(MSX2_TOTAL_XRES_PIXELS, MSX2_TOTAL_YRES_PIXELS)
- MCFG_SCREEN_VISIBLE_AREA(MSX2_XBORDER_PIXELS - MSX2_VISIBLE_XBORDER_PIXELS, MSX2_TOTAL_XRES_PIXELS - MSX2_XBORDER_PIXELS + MSX2_VISIBLE_XBORDER_PIXELS - 1, MSX2_YBORDER_PIXELS - MSX2_VISIBLE_YBORDER_PIXELS, MSX2_TOTAL_YRES_PIXELS - MSX2_YBORDER_PIXELS + MSX2_VISIBLE_YBORDER_PIXELS - 1)
- MCFG_SCREEN_PALETTE("v9938:palette")
+ MCFG_V99X8_SCREEN_ADD_NTSC("screen", "v9938", MASTER_CLOCK)
MCFG_DEVICE_ADD("ppi8255", I8255A, 0)
MCFG_I8255_OUT_PORTA_CB(WRITE8(sfkick_state, ppi_port_a_w))
diff --git a/src/mess/drivers/sg1000.c b/src/mame/drivers/sg1000.c
index e85e2d2fad8..4c5c7025d75 100644
--- a/src/mess/drivers/sg1000.c
+++ b/src/mame/drivers/sg1000.c
@@ -906,10 +906,10 @@ ROM_END
***************************************************************************/
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-CONS( 1983, sg1000, 0, 0, sg1000, sg1000, driver_device, 0, "Sega", "SG-1000", GAME_SUPPORTS_SAVE )
-CONS( 1984, sg1000m2, sg1000, 0, sc3000, sc3000, driver_device, 0, "Sega", "SG-1000 II", GAME_SUPPORTS_SAVE )
-COMP( 1983, sc3000, 0, sg1000, sc3000, sc3000, driver_device, 0, "Sega", "SC-3000", GAME_SUPPORTS_SAVE )
-COMP( 1983, sc3000h, sc3000, 0, sc3000, sc3000, driver_device, 0, "Sega", "SC-3000H", GAME_SUPPORTS_SAVE )
-COMP( 1983, sf7000, sc3000, 0, sf7000, sf7000, driver_device, 0, "Sega", "SC-3000/Super Control Station SF-7000", GAME_SUPPORTS_SAVE )
-CONS( 1984, omv1000, sg1000, 0, omv, omv, driver_device, 0, "Tsukuda Original", "Othello Multivision FG-1000", GAME_SUPPORTS_SAVE )
-CONS( 1984, omv2000, sg1000, 0, omv, omv, driver_device, 0, "Tsukuda Original", "Othello Multivision FG-2000", GAME_SUPPORTS_SAVE )
+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, omv, driver_device, 0, "Tsukuda Original", "Othello Multivision FG-1000", MACHINE_SUPPORTS_SAVE )
+CONS( 1984, omv2000, sg1000, 0, omv, omv, driver_device, 0, "Tsukuda Original", "Othello Multivision FG-2000", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/sgi_ip2.c b/src/mame/drivers/sgi_ip2.c
index ac6ade7de97..3e5c482be9c 100644
--- a/src/mess/drivers/sgi_ip2.c
+++ b/src/mame/drivers/sgi_ip2.c
@@ -5,7 +5,7 @@
drivers/sgi_ip2.c
SGI IRIS 3130 skeleton driver with some meat on its bones
- by Harmony
+ by Ryan Holtz
0x00000000 - ? RAM (?)
0x30000000 - 0x30017fff ROM (3x32k)
@@ -514,4 +514,4 @@ ROM_START( sgi_ip2 )
ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
-COMP( 1985, sgi_ip2, 0, 0, sgi_ip2, sgi_ip2, sgi_ip2_state, sgi_ip2, "Silicon Graphics Inc", "IRIS 3130 (IP2)", GAME_NOT_WORKING )
+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/mess/drivers/sgi_ip6.c b/src/mame/drivers/sgi_ip6.c
index 240ff551efd..fe1e1c78847 100644
--- a/src/mess/drivers/sgi_ip6.c
+++ b/src/mame/drivers/sgi_ip6.c
@@ -5,7 +5,7 @@
drivers/sgi_ip6.c
SGI 4D/PI IP6 family skeleton driver
- by Harmony
+ by Ryan Holtz
0x1fc00000 - 0x1fc3ffff ROM
@@ -266,4 +266,4 @@ ROM_START( sgi_ip6 )
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)", GAME_NOT_WORKING | GAME_NO_SOUND)
+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/mess/drivers/sh4robot.c b/src/mame/drivers/sh4robot.c
index 35f1364ce34..5ebe20f7530 100644
--- a/src/mess/drivers/sh4robot.c
+++ b/src/mame/drivers/sh4robot.c
@@ -90,4 +90,4 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT CONFIG COMPANY FULLNAME FLAGS */
-COMP( 20??, sh4robot, 0, 0, sh4robot, sh4robot, driver_device, 0, "<unknown>", "Robot", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 20??, sh4robot, 0, 0, sh4robot, sh4robot, driver_device, 0, "<unknown>", "Robot", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/shadfrce.c b/src/mame/drivers/shadfrce.c
index e32221a3c6c..fb61ade9b78 100644
--- a/src/mame/drivers/shadfrce.c
+++ b/src/mame/drivers/shadfrce.c
@@ -146,10 +146,6 @@ lev 7 : 0x7c : 0000 11d0 - just rte
#include "includes/shadfrce.h"
-#define MASTER_CLOCK XTAL_28MHz
-#define CPU_CLOCK MASTER_CLOCK / 2
-#define PIXEL_CLOCK MASTER_CLOCK / 4
-
WRITE16_MEMBER(shadfrce_state::flip_screen)
{
flip_screen_set(data & 0x01);
@@ -242,16 +238,16 @@ READ16_MEMBER(shadfrce_state::input_ports_r)
switch (offset)
{
case 0 :
- data = (ioport("P1")->read() & 0xff) | ((ioport("DSW2")->read() & 0xc0) << 6) | ((ioport("SYSTEM")->read() & 0x0f) << 8);
+ data = (m_io_p1->read() & 0xff) | ((m_io_dsw2->read() & 0xc0) << 6) | ((m_io_system->read() & 0x0f) << 8);
break;
case 1 :
- data = (ioport("P2")->read() & 0xff) | ((ioport("DSW2")->read() & 0x3f) << 8);
+ data = (m_io_p2->read() & 0xff) | ((m_io_dsw2->read() & 0x3f) << 8);
break;
case 2 :
- data = (ioport("EXTRA")->read() & 0xff) | ((ioport("DSW1")->read() & 0x3f) << 8);
+ data = (m_io_extra->read() & 0xff) | ((m_io_dsw1->read() & 0x3f) << 8);
break;
case 3 :
- data = (ioport("OTHER")->read() & 0xff) | ((ioport("DSW1")->read() & 0xc0) << 2) | ((ioport("MISC")->read() & 0x38) << 8) | (m_vblank << 8);
+ data = (m_io_other->read() & 0xff) | ((m_io_dsw1->read() & 0xc0) << 2) | ((m_io_misc->read() & 0x38) << 8) | (m_vblank << 8);
break;
}
@@ -450,7 +446,7 @@ static INPUT_PORTS_START( shadfrce )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* must be ACTIVE_LOW or 'shadfrcj' jumps to the end (code at 0x04902e) */
PORT_BIT( 0xeb, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START("DSW1") /* Fake IN6 (DIP1) */
+ PORT_START("DSW1") /*DSW1, not mapped directly */
PORT_DIPNAME( 0x01, 0x01, "Unused DIP 1-1" )
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
@@ -473,7 +469,7 @@ static INPUT_PORTS_START( shadfrce )
PORT_DIPSETTING( 0x40, DEF_STR( On ) )
PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
- PORT_START("DSW2") /* Fake IN7 (DIP2) */
+ PORT_START("DSW2") /* DSW2, not mapped directly */
PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) )
PORT_DIPSETTING( 0x01, DEF_STR( Easy ) )
PORT_DIPSETTING( 0x03, DEF_STR( Normal ) )
@@ -508,7 +504,7 @@ static const gfx_layout fg8x8x4_layout =
{ 0, 2, 4, 6 },
{ 1, 0, 8*8+1, 8*8+0, 16*8+1, 16*8+0, 24*8+1, 24*8+0 },
{ 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
- 32*8
+ 4*8*8
};
static const gfx_layout sp16x16x5_layout =
@@ -516,9 +512,9 @@ static const gfx_layout sp16x16x5_layout =
16,16,
RGN_FRAC(1,5),
5,
- { 0x800000*8, 0x600000*8, 0x400000*8, 0x200000*8, 0x000000*8 },
- { 0,1,2,3,4,5,6,7,16*8+0,16*8+1,16*8+2,16*8+3,16*8+4,16*8+5,16*8+6,16*8+7 },
- { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 8*8,9*8,10*8,11*8,12*8,13*8,14*8,15*8 },
+ { RGN_FRAC(4,5), RGN_FRAC(3,5), RGN_FRAC(2,5), RGN_FRAC(1,5), RGN_FRAC(0,5) },
+ { STEP8(0,1), STEP8(16*8,1) },
+ { STEP16(0,8) },
16*16
};
@@ -527,23 +523,23 @@ static const gfx_layout bg16x16x6_layout =
16,16,
RGN_FRAC(1,3),
6,
- { 0x000000*8+8, 0x000000*8+0, 0x100000*8+8, 0x100000*8+0, 0x200000*8+8, 0x200000*8+0 },
- { 0, 1, 2, 3, 4, 5, 6, 7,16*16+0,16*16+1,16*16+2,16*16+3,16*16+4,16*16+5,16*16+6,16*16+7 },
- { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16, 8*16,9*16,10*16,11*16,12*16,13*16,14*16,15*16 },
- 64*8
+ { RGN_FRAC(0,3)+8, RGN_FRAC(0,3), RGN_FRAC(1,3)+8, RGN_FRAC(1,3), RGN_FRAC(2,3)+8, RGN_FRAC(2,3) },
+ { STEP8(0,1), STEP8(16*16,1) },
+ { STEP16(0,16) },
+ 2*16*16
};
static GFXDECODE_START( shadfrce )
- GFXDECODE_ENTRY( "gfx1", 0, fg8x8x4_layout, 0x0000, 256 )
- GFXDECODE_ENTRY( "gfx2", 0, sp16x16x5_layout, 0x1000, 128 )
- GFXDECODE_ENTRY( "gfx3", 0, bg16x16x6_layout, 0x2000, 128 )
+ GFXDECODE_ENTRY( "chars", 0, fg8x8x4_layout, 0x0000, 256 )
+ GFXDECODE_ENTRY( "sprites", 0, sp16x16x5_layout, 0x1000, 128 )
+ GFXDECODE_ENTRY( "tiles", 0, bg16x16x6_layout, 0x2000, 128 )
GFXDECODE_END
/* Machine Driver Bits */
static MACHINE_CONFIG_START( shadfrce, shadfrce_state )
- MCFG_CPU_ADD("maincpu", M68000, CPU_CLOCK) /* verified on pcb */
+ MCFG_CPU_ADD("maincpu", M68000, XTAL_28MHz / 2) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(shadfrce_map)
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", shadfrce_state, scanline, "screen", 0, 1)
@@ -551,7 +547,7 @@ static MACHINE_CONFIG_START( shadfrce, shadfrce_state )
MCFG_CPU_PROGRAM_MAP(shadfrce_sound_map)
MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 432, 0, 320, 272, 8, 248) /* HTOTAL and VTOTAL are guessed */
+ MCFG_SCREEN_RAW_PARAMS(XTAL_28MHz / 4, 448, 0, 320, 272, 8, 248) /* HTOTAL and VTOTAL are guessed */
MCFG_SCREEN_UPDATE_DRIVER(shadfrce_state, screen_update)
MCFG_SCREEN_VBLANK_DRIVER(shadfrce_state, screen_eof)
MCFG_SCREEN_PALETTE("palette")
@@ -585,17 +581,17 @@ ROM_START( shadfrce )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */
ROM_LOAD( "32j10-0.42", 0x00000, 0x10000, CRC(65daf475) SHA1(7144332b2d17af8645e22e1926b33113db0d20e2) )
- ROM_REGION( 0x020000, "gfx1", 0 ) /* Chars */
+ ROM_REGION( 0x020000, "chars", 0 ) /* Chars */
ROM_LOAD( "32a11-0.55", 0x00000, 0x20000, CRC(cfaf5e77) SHA1(eab76e085f695c74cc868aaf95f04ff2acf66ee9) )
- ROM_REGION( 0xa00000, "gfx2", 0 ) /* Sprite Tiles */
+ ROM_REGION( 0xa00000, "sprites", 0 ) /* Sprite Tiles */
ROM_LOAD( "32j4-0.12", 0x000000, 0x200000, CRC(1ebea5b6) SHA1(35bd49dda9ad75326d45ffb10c87d83fc4f1b7a8) )
ROM_LOAD( "32j5-0.13", 0x200000, 0x200000, CRC(600026b5) SHA1(5641246300d7e20dcff1eae004647faaee6cd1c6) )
ROM_LOAD( "32j6-0.24", 0x400000, 0x200000, CRC(6cde8ebe) SHA1(750933798235951fe24b2e667c33f692612c0aa0) )
ROM_LOAD( "32j7-0.25", 0x600000, 0x200000, CRC(bcb37922) SHA1(f3eee73c8b9f4873a7f1cc42e334e7502eaee3c8) )
ROM_LOAD( "32j8-0.32", 0x800000, 0x200000, CRC(201bebf6) SHA1(c89d2895ea5b19daea1f88542419f4e10f437c73) )
- ROM_REGION( 0x300000, "gfx3", 0 ) /* BG Tiles */
+ ROM_REGION( 0x300000, "tiles", 0 ) /* BG Tiles */
ROM_LOAD( "32j1-0.4", 0x000000, 0x100000, CRC(f1cca740) SHA1(339079b95ca137e66b4f032ad67a0adf58cca100) )
ROM_LOAD( "32j2-0.5", 0x100000, 0x100000, CRC(5fac3e01) SHA1(20c30f4c76e303285ae37e596afe86aa4812c3b9) )
ROM_LOAD( "32j3-0.6", 0x200000, 0x100000, CRC(d297925e) SHA1(5bc4d37bf0dc54114884c816b94a64ef1ccfeda5) )
@@ -614,17 +610,17 @@ ROM_START( shadfrcej )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */
ROM_LOAD( "32j10-0.42", 0x00000, 0x10000, CRC(65daf475) SHA1(7144332b2d17af8645e22e1926b33113db0d20e2) )
- ROM_REGION( 0x020000, "gfx1", 0 ) /* Chars */
+ ROM_REGION( 0x020000, "chars", 0 ) /* Chars */
ROM_LOAD( "32j11-0.55", 0x00000, 0x20000, CRC(7252d993) SHA1(43f7de381841039aa290486aafb98e2cf3b8579b) )
- ROM_REGION( 0xa00000, "gfx2", 0 ) /* Sprite Tiles */
+ ROM_REGION( 0xa00000, "sprites", 0 ) /* Sprite Tiles */
ROM_LOAD( "32j4-0.12", 0x000000, 0x200000, CRC(1ebea5b6) SHA1(35bd49dda9ad75326d45ffb10c87d83fc4f1b7a8) )
ROM_LOAD( "32j5-0.13", 0x200000, 0x200000, CRC(600026b5) SHA1(5641246300d7e20dcff1eae004647faaee6cd1c6) )
ROM_LOAD( "32j6-0.24", 0x400000, 0x200000, CRC(6cde8ebe) SHA1(750933798235951fe24b2e667c33f692612c0aa0) )
ROM_LOAD( "32j7-0.25", 0x600000, 0x200000, CRC(bcb37922) SHA1(f3eee73c8b9f4873a7f1cc42e334e7502eaee3c8) )
ROM_LOAD( "32j8-0.32", 0x800000, 0x200000, CRC(201bebf6) SHA1(c89d2895ea5b19daea1f88542419f4e10f437c73) )
- ROM_REGION( 0x300000, "gfx3", 0 ) /* BG Tiles */
+ ROM_REGION( 0x300000, "tiles", 0 ) /* BG Tiles */
ROM_LOAD( "32j1-0.4", 0x000000, 0x100000, CRC(f1cca740) SHA1(339079b95ca137e66b4f032ad67a0adf58cca100) )
ROM_LOAD( "32j2-0.5", 0x100000, 0x100000, CRC(5fac3e01) SHA1(20c30f4c76e303285ae37e596afe86aa4812c3b9) )
ROM_LOAD( "32j3-0.6", 0x200000, 0x100000, CRC(d297925e) SHA1(5bc4d37bf0dc54114884c816b94a64ef1ccfeda5) )
@@ -643,17 +639,17 @@ ROM_START( shadfrcejv2 )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */
ROM_LOAD( "32j10-0.42", 0x00000, 0x10000, CRC(65daf475) SHA1(7144332b2d17af8645e22e1926b33113db0d20e2) )
- ROM_REGION( 0x020000, "gfx1", 0 ) /* Chars */
+ ROM_REGION( 0x020000, "chars", 0 ) /* Chars */
ROM_LOAD( "32j11-0.55", 0x00000, 0x20000, CRC(7252d993) SHA1(43f7de381841039aa290486aafb98e2cf3b8579b) )
- ROM_REGION( 0xa00000, "gfx2", 0 ) /* Sprite Tiles */
+ ROM_REGION( 0xa00000, "sprites", 0 ) /* Sprite Tiles */
ROM_LOAD( "32j4-0.12", 0x000000, 0x200000, CRC(1ebea5b6) SHA1(35bd49dda9ad75326d45ffb10c87d83fc4f1b7a8) )
ROM_LOAD( "32j5-0.13", 0x200000, 0x200000, CRC(600026b5) SHA1(5641246300d7e20dcff1eae004647faaee6cd1c6) )
ROM_LOAD( "32j6-0.24", 0x400000, 0x200000, CRC(6cde8ebe) SHA1(750933798235951fe24b2e667c33f692612c0aa0) )
ROM_LOAD( "32j7-0.25", 0x600000, 0x200000, CRC(bcb37922) SHA1(f3eee73c8b9f4873a7f1cc42e334e7502eaee3c8) )
ROM_LOAD( "32j8-0.32", 0x800000, 0x200000, CRC(201bebf6) SHA1(c89d2895ea5b19daea1f88542419f4e10f437c73) )
- ROM_REGION( 0x300000, "gfx3", 0 ) /* BG Tiles */
+ ROM_REGION( 0x300000, "tiles", 0 ) /* BG Tiles */
ROM_LOAD( "32j1-0.4", 0x000000, 0x100000, CRC(f1cca740) SHA1(339079b95ca137e66b4f032ad67a0adf58cca100) )
ROM_LOAD( "32j2-0.5", 0x100000, 0x100000, CRC(5fac3e01) SHA1(20c30f4c76e303285ae37e596afe86aa4812c3b9) )
ROM_LOAD( "32j3-0.6", 0x200000, 0x100000, CRC(d297925e) SHA1(5bc4d37bf0dc54114884c816b94a64ef1ccfeda5) )
@@ -663,6 +659,6 @@ ROM_START( shadfrcejv2 )
ROM_END
-GAME( 1993, shadfrce, 0, shadfrce, shadfrce, driver_device, 0, ROT0, "Technos Japan", "Shadow Force (US Version 2)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1993, shadfrcej, shadfrce, shadfrce, shadfrce, driver_device, 0, ROT0, "Technos Japan", "Shadow Force (Japan Version 3)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1993, shadfrcejv2, shadfrce, shadfrce, shadfrce, driver_device, 0, ROT0, "Technos Japan", "Shadow Force (Japan Version 2)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+GAME( 1993, shadfrce, 0, 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 3)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1993, shadfrcejv2, shadfrce, shadfrce, shadfrce, driver_device, 0, ROT0, "Technos Japan", "Shadow Force (Japan Version 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/shangha3.c b/src/mame/drivers/shangha3.c
index f578507952d..5b610aa7cce 100644
--- a/src/mame/drivers/shangha3.c
+++ b/src/mame/drivers/shangha3.c
@@ -726,8 +726,8 @@ DRIVER_INIT_MEMBER(shangha3_state,heberpop)
m_do_shadows = 0;
}
-GAME( 1993, shangha3, 0, shangha3, shangha3, shangha3_state, shangha3, ROT0, "Sunsoft", "Shanghai III (World)", GAME_SUPPORTS_SAVE )
-GAME( 1993, shangha3u, shangha3, shangha3, shangha3, shangha3_state, shangha3, ROT0, "Sunsoft", "Shanghai III (US)", GAME_SUPPORTS_SAVE )
-GAME( 1993, shangha3j, shangha3, shangha3, shangha3, shangha3_state, shangha3, ROT0, "Sunsoft", "Shanghai III (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1994, heberpop, 0, heberpop, heberpop, shangha3_state, heberpop, ROT0, "Sunsoft / Atlus", "Hebereke no Popoon (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1994, blocken, 0, blocken, blocken, shangha3_state, heberpop, ROT0, "Visco / KID", "Blocken (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+GAME( 1993, shangha3, 0, shangha3, shangha3, shangha3_state, shangha3, ROT0, "Sunsoft", "Shanghai III (World)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, shangha3u, shangha3, shangha3, shangha3, shangha3_state, shangha3, ROT0, "Sunsoft", "Shanghai III (US)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, shangha3j, shangha3, shangha3, shangha3, shangha3_state, shangha3, ROT0, "Sunsoft", "Shanghai III (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, heberpop, 0, heberpop, heberpop, shangha3_state, heberpop, ROT0, "Sunsoft / Atlus", "Hebereke no Popoon (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, blocken, 0, blocken, blocken, shangha3_state, heberpop, ROT0, "Visco / KID", "Blocken (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/shanghai.c b/src/mame/drivers/shanghai.c
index db6c841e2dc..aed79c8463b 100644
--- a/src/mame/drivers/shanghai.c
+++ b/src/mame/drivers/shanghai.c
@@ -690,8 +690,8 @@ ROM_END
-GAME( 1988, shanghai, 0, shanghai, shanghai, driver_device, 0, ROT0, "Sunsoft", "Shanghai (World)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1988, shanghaij, shanghai, shanghai, shanghai, driver_device, 0, ROT0, "Sunsoft", "Shanghai (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1989, shangha2, 0, shangha2, shangha2, driver_device, 0, ROT0, "Sunsoft", "Shanghai II (Japan, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1989, shangha2a, shangha2, shangha2, shangha2, driver_device, 0, ROT0, "Sunsoft", "Shanghai II (Japan, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1990, kothello, 0, kothello, kothello, driver_device, 0, ROT0, "Success", "Kyuukyoku no Othello", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/shangkid.c b/src/mame/drivers/shangkid.c
index 90e82122da0..4b9fa8a7f58 100644
--- a/src/mame/drivers/shangkid.c
+++ b/src/mame/drivers/shangkid.c
@@ -1003,10 +1003,10 @@ ROM_START( dynamski )
ROM_END
-GAME( 1984, dynamski, 0, dynamski, dynamski, driver_device, 0, ROT90, "Taiyo", "Dynamic Ski", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1984, chinhero, 0, chinhero, chinhero, shangkid_state, chinhero, ROT90, "Taiyo", "Chinese Hero", GAME_SUPPORTS_SAVE ) // by Nihon Game?
-GAME( 1984, chinhero2,chinhero, chinhero, chinhero, shangkid_state, chinhero, ROT90, "Taiyo", "Chinese Hero (older, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1984, chinhero3,chinhero, chinhero, chinhero, shangkid_state, chinhero, ROT90, "Taiyo", "Chinese Hero (older, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1984, chinherot,chinhero, chinhero, chinhero, shangkid_state, chinhero, ROT90, "Taiyo (Taito license)", "Chinese Heroe (Taito)", GAME_SUPPORTS_SAVE )
-GAME( 1985, shangkid, 0, shangkid, shangkid, shangkid_state, shangkid, ROT0, "Taiyo (Data East license)", "Shanghai Kid", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1985, hiryuken, shangkid, shangkid, shangkid, shangkid_state, shangkid, ROT0, "Taiyo (Taito license)", "Hokuha Syourin Hiryu no Ken", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/shaolins.c b/src/mame/drivers/shaolins.c
index 85e4adc3533..6774578e98b 100644
--- a/src/mame/drivers/shaolins.c
+++ b/src/mame/drivers/shaolins.c
@@ -337,6 +337,6 @@ ROM_END
/* YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR, COMPANY, FULLNAME, FLAGS */
-GAME( 1985, kicker, 0, shaolins, shaolins, driver_device, 0, ROT90, "Konami", "Kicker", GAME_SUPPORTS_SAVE )
-GAME( 1985, shaolins, kicker, shaolins, shaolins, driver_device, 0, ROT90, "Konami", "Shao-lin's Road (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1985, shaolinb, kicker, shaolins, shaolins, driver_device, 0, ROT90, "Konami", "Shao-lin's Road (set 2)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/shisen.c b/src/mame/drivers/shisen.c
index cc5b58b7125..3433fb52ab6 100644
--- a/src/mame/drivers/shisen.c
+++ b/src/mame/drivers/shisen.c
@@ -423,7 +423,7 @@ ROM_START( matchit )
/* no samples on this board */
ROM_END
-GAME( 1989, matchit, 0, shisen, matchit, driver_device, 0, ROT0, "Tamtex", "Match It", GAME_SUPPORTS_SAVE )
-GAME( 1989, shisen, matchit, shisen, shisen, driver_device, 0, ROT0, "Tamtex", "Shisensho - Joshiryo-Hen (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1989, sichuan2, matchit, shisen, shisen, driver_device, 0, ROT0, "hack", "Sichuan II (hack, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1989, sichuan2a,matchit, shisen, shisen, driver_device, 0, ROT0, "hack", "Sichuan II (hack, set 2)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/shootout.c b/src/mame/drivers/shootout.c
index 19dfa7ee3dc..cd74445a0b8 100644
--- a/src/mame/drivers/shootout.c
+++ b/src/mame/drivers/shootout.c
@@ -392,6 +392,6 @@ DRIVER_INIT_MEMBER(shootout_state,shootout)
}
-GAME( 1985, shootout, 0, shootout, shootout, shootout_state, shootout, ROT0, "Data East USA", "Shoot Out (US)", GAME_SUPPORTS_SAVE )
-GAME( 1985, shootoutj, shootout, shootouj, shootouj, shootout_state, shootout, ROT0, "Data East Corporation", "Shoot Out (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1985, shootoutb, shootout, shootouk, shootout, shootout_state, shootout, ROT0, "bootleg", "Shoot Out (Korean Bootleg)", GAME_SUPPORTS_SAVE )
+GAME( 1985, shootout, 0, shootout, shootout, shootout_state, shootout, ROT0, "Data East USA", "Shoot Out (US)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, shootoutj, shootout, shootouj, shootouj, shootout_state, shootout, ROT0, "Data East Corporation", "Shoot Out (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, shootoutb, shootout, shootouk, shootout, shootout_state, shootout, ROT0, "bootleg", "Shoot Out (Korean Bootleg)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/shougi.c b/src/mame/drivers/shougi.c
index 62986b55dd4..233719c97ed 100644
--- a/src/mame/drivers/shougi.c
+++ b/src/mame/drivers/shougi.c
@@ -498,5 +498,5 @@ ROM_END
-GAME( 1982, shougi, 0, shougi, shougi, driver_device, 0, ROT0, "Alpha Denshi Co.", "Shougi", GAME_SUPPORTS_SAVE )
-GAME( 1982, shougi2, shougi, shougi, shougi2, driver_device, 0, ROT0, "Alpha Denshi Co.", "Shougi 2", GAME_SUPPORTS_SAVE )
+GAME( 1982, shougi, 0, shougi, shougi, driver_device, 0, ROT0, "Alpha Denshi Co.", "Shougi", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, shougi2, shougi, shougi, shougi2, driver_device, 0, ROT0, "Alpha Denshi Co.", "Shougi 2", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/shtzone.c b/src/mame/drivers/shtzone.c
index 0dc37aff422..eb53191c264 100644
--- a/src/mame/drivers/shtzone.c
+++ b/src/mame/drivers/shtzone.c
@@ -120,4 +120,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", GAME_IS_SKELETON | GAME_NO_SOUND | GAME_NOT_WORKING | GAME_IS_BIOS_ROOT )
+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 )
diff --git a/src/mame/drivers/shuuz.c b/src/mame/drivers/shuuz.c
index 535c994d522..96098b00046 100644
--- a/src/mame/drivers/shuuz.c
+++ b/src/mame/drivers/shuuz.c
@@ -342,5 +342,5 @@ ROM_END
*
*************************************/
-GAME( 1990, shuuz, 0, shuuz, shuuz, driver_device, 0, ROT0, "Atari Games", "Shuuz (version 8.0)", GAME_SUPPORTS_SAVE )
-GAME( 1990, shuuz2, shuuz, shuuz, shuuz2, driver_device, 0, ROT0, "Atari Games", "Shuuz (version 7.1)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/sidearms.c b/src/mame/drivers/sidearms.c
index cdcfac70ddb..a7e55ea6081 100644
--- a/src/mame/drivers/sidearms.c
+++ b/src/mame/drivers/sidearms.c
@@ -1220,19 +1220,19 @@ DRIVER_INIT_MEMBER(sidearms_state,whizz)
// date string is at 0xaa2 in 'rom 03' it does not appear to be displayed
-GAME( 1986, sidearms, 0, sidearms, sidearms, sidearms_state, sidearms, ROT0, "Capcom", "Side Arms - Hyper Dyne (World, 861129)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1986, sidearmsu, sidearms, sidearms, sidearms, sidearms_state, sidearms, ROT0, "Capcom (Romstar license)", "Side Arms - Hyper Dyne (US, 861202)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1986, sidearmsur1,sidearms, sidearms, sidearms, sidearms_state, sidearms, ROT0, "Capcom (Romstar license)", "Side Arms - Hyper Dyne (US, 861128)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1986, sidearmsj, sidearms, sidearms, sidearms, sidearms_state, sidearms, ROT0, "Capcom", "Side Arms - Hyper Dyne (Japan, 861128)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-
-GAME( 1988, turtship, 0, turtship, turtship, sidearms_state, turtship, ROT0, "Philko (Sharp Image license)", "Turtle Ship (North America)", GAME_SUPPORTS_SAVE )
-GAME( 1988, turtshipj,turtship, turtship, turtship, sidearms_state, turtship, ROT0, "Philko (Pacific Games license)", "Turtle Ship (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1988, turtshipk,turtship, turtship, turtship, sidearms_state, turtship, ROT0, "Philko", "Turtle Ship (Korea)", GAME_SUPPORTS_SAVE )
-GAME( 1988, turtshipko,turtship, turtship, turtship, sidearms_state, turtship, ROT0, "Philko", "Turtle Ship (Korea, older)", GAME_SUPPORTS_SAVE )
-GAME( 1988, turtshipkn, turtship, turtship, turtship, sidearms_state, turtship, ROT0, "Philko", "Turtle Ship (Korea, 88/9)", GAME_SUPPORTS_SAVE )
-
-GAME( 1989, dyger, 0, turtship, dyger, sidearms_state, dyger, ROT270, "Philko", "Dyger (Korea set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1989, dygera, dyger, turtship, dyger, sidearms_state, dyger, ROT270, "Philko", "Dyger (Korea set 2)", GAME_SUPPORTS_SAVE )
-
-GAME( 1989, twinfalc, 0, whizz, whizz, sidearms_state, whizz, ROT0, "Philko (Poara Enterprises license)", "Twin Falcons", GAME_SUPPORTS_SAVE )
-GAME( 1989, whizz, twinfalc, whizz, whizz, sidearms_state, whizz, ROT0, "Philko", "Whizz", GAME_SUPPORTS_SAVE )
+GAME( 1986, sidearms, 0, sidearms, sidearms, sidearms_state, sidearms, ROT0, "Capcom", "Side Arms - Hyper Dyne (World, 861129)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1986, sidearmsu, sidearms, sidearms, sidearms, sidearms_state, sidearms, ROT0, "Capcom (Romstar license)", "Side Arms - Hyper Dyne (US, 861202)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1986, sidearmsur1,sidearms, sidearms, sidearms, sidearms_state, sidearms, ROT0, "Capcom (Romstar license)", "Side Arms - Hyper Dyne (US, 861128)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1986, sidearmsj, sidearms, sidearms, sidearms, sidearms_state, sidearms, ROT0, "Capcom", "Side Arms - Hyper Dyne (Japan, 861128)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+
+GAME( 1988, turtship, 0, turtship, turtship, sidearms_state, turtship, ROT0, "Philko (Sharp Image license)", "Turtle Ship (North America)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, turtshipj,turtship, turtship, turtship, sidearms_state, turtship, ROT0, "Philko (Pacific Games license)", "Turtle Ship (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, turtshipk,turtship, turtship, turtship, sidearms_state, turtship, ROT0, "Philko", "Turtle Ship (Korea)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, turtshipko,turtship, turtship, turtship, sidearms_state, turtship, ROT0, "Philko", "Turtle Ship (Korea, older)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, turtshipkn, turtship, turtship, turtship, sidearms_state, turtship, ROT0, "Philko", "Turtle Ship (Korea, 88/9)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1989, dyger, 0, turtship, dyger, sidearms_state, dyger, ROT270, "Philko", "Dyger (Korea set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, dygera, dyger, turtship, dyger, sidearms_state, dyger, ROT270, "Philko", "Dyger (Korea set 2)", MACHINE_SUPPORTS_SAVE )
+
+GAME( 1989, twinfalc, 0, whizz, whizz, sidearms_state, whizz, ROT0, "Philko (Poara Enterprises license)", "Twin Falcons", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, whizz, twinfalc, whizz, whizz, sidearms_state, whizz, ROT0, "Philko", "Whizz", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/sidepckt.c b/src/mame/drivers/sidepckt.c
index 9ac41e56c3b..10f4297bdca 100644
--- a/src/mame/drivers/sidepckt.c
+++ b/src/mame/drivers/sidepckt.c
@@ -512,6 +512,6 @@ DRIVER_INIT_MEMBER(sidepckt_state,sidepcktj)
}
-GAME( 1986, sidepckt, 0, sidepckt, sidepckt, sidepckt_state, sidepckt, ROT0, "Data East Corporation", "Side Pocket (World)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1986, sidepcktj, sidepckt, sidepckt, sidepcktj, sidepckt_state, sidepcktj, ROT0, "Data East Corporation", "Side Pocket (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1986, sidepcktb, sidepckt, sidepcktb, sidepcktb, driver_device, 0, ROT0, "bootleg", "Side Pocket (bootleg)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+GAME( 1986, sidepckt, 0, sidepckt, sidepckt, sidepckt_state, sidepckt, ROT0, "Data East Corporation", "Side Pocket (World)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1986, sidepcktj, sidepckt, sidepckt, sidepcktj, sidepckt_state, sidepcktj, ROT0, "Data East Corporation", "Side Pocket (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1986, sidepcktb, sidepckt, sidepcktb, sidepcktb, driver_device, 0, ROT0, "bootleg", "Side Pocket (bootleg)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/sigmab52.c b/src/mame/drivers/sigmab52.c
index 06e7e25efba..678cf59c976 100644
--- a/src/mame/drivers/sigmab52.c
+++ b/src/mame/drivers/sigmab52.c
@@ -708,7 +708,7 @@ DRIVER_INIT_MEMBER(sigmab52_state,jwildb52)
*************************/
/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS */
-GAMEL( 199?, jwildb52, 0, jwildb52, jwildb52, sigmab52_state, jwildb52, ROT0, "Sigma", "Joker's Wild (B52 system, set 1)", GAME_NOT_WORKING, layout_sigmab52 )
-GAMEL( 199?, jwildb52a, jwildb52, jwildb52, jwildb52, sigmab52_state, jwildb52, ROT0, "Sigma", "Joker's Wild (B52 system, set 2)", GAME_NOT_WORKING, layout_sigmab52 )
-GAMEL( 199?, jwildb52h, jwildb52, jwildb52, jwildb52, sigmab52_state, jwildb52, ROT0, "Sigma", "Joker's Wild (B52 system, Harrah's GFX)", GAME_NOT_WORKING, layout_sigmab52 )
-GAME ( 199?, s8waysfc, 0, jwildb52, s8waysfc, sigmab52_state, jwildb52, ROT0, "Sigma", "Super 8 Ways FC (Fruit combination)", GAME_NOT_WORKING )
+GAMEL( 199?, jwildb52, 0, jwildb52, jwildb52, sigmab52_state, jwildb52, ROT0, "Sigma", "Joker's Wild (B52 system, set 1)", MACHINE_NOT_WORKING, layout_sigmab52 )
+GAMEL( 199?, jwildb52a, jwildb52, jwildb52, jwildb52, sigmab52_state, jwildb52, ROT0, "Sigma", "Joker's Wild (B52 system, set 2)", MACHINE_NOT_WORKING, layout_sigmab52 )
+GAMEL( 199?, jwildb52h, jwildb52, jwildb52, jwildb52, sigmab52_state, jwildb52, ROT0, "Sigma", "Joker's Wild (B52 system, Harrah's GFX)", MACHINE_NOT_WORKING, layout_sigmab52 )
+GAME ( 199?, s8waysfc, 0, jwildb52, s8waysfc, sigmab52_state, jwildb52, ROT0, "Sigma", "Super 8 Ways FC (Fruit combination)", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/sigmab98.c b/src/mame/drivers/sigmab98.c
index f58d6092715..e3dcf2e55df 100644
--- a/src/mame/drivers/sigmab98.c
+++ b/src/mame/drivers/sigmab98.c
@@ -2924,9 +2924,9 @@ GAME( 1997, b3rinsya, 0, gegege, sigma_5b, sigmab98_state, b3rinsya, RO
GAME( 1997, pepsiman, 0, gegege, sigma_3b, sigmab98_state, pepsiman, ROT0, "Sigma", "PEPSI Man", 0 )
GAME( 1998, tbeastw2, 0, gegege, sigma_3b, sigmab98_state, tbeastw2, ROT0, "Sigma / Transformer Production Company / Takara", "Transformers Beast Wars II", 0 ) // 1997 in the rom
GAME( 1997, ucytokyu, 0, gegege, sigma_js, sigmab98_state, ucytokyu, ROT0, "Sigma", "Uchuu Tokkyuu Medalian", 0 ) // Banpresto + others in the ROM
-GAME( 2000, dashhero, 0, dashhero, sigma_1b, sigmab98_state, dashhero, ROT0, "Sigma", "Minna Ganbare! Dash Hero", GAME_NOT_WORKING ) // 1999 in the rom
+GAME( 2000, dashhero, 0, dashhero, sigma_1b, sigmab98_state, dashhero, ROT0, "Sigma", "Minna Ganbare! Dash Hero", MACHINE_NOT_WORKING ) // 1999 in the rom
// Sammy Medal Games:
-GAME( 2000, sammymdl, 0, sammymdl, sammymdl, sigmab98_state, animalc, ROT0, "Sammy", "Sammy Medal Game System Bios", GAME_IS_BIOS_ROOT )
+GAME( 2000, sammymdl, 0, sammymdl, sammymdl, sigmab98_state, animalc, ROT0, "Sammy", "Sammy Medal Game System Bios", MACHINE_IS_BIOS_ROOT )
GAME( 2000, animalc, sammymdl, animalc, sammymdl, sigmab98_state, animalc, ROT0, "Sammy", "Animal Catch", 0 )
GAME( 2000, itazuram, sammymdl, itazuram, sammymdl, sigmab98_state, itazuram, ROT0, "Sammy", "Itazura Monkey", 0 )
GAME( 2000, pyenaget, sammymdl, pyenaget, sammymdl, sigmab98_state, haekaka, ROT0, "Sammy", "Pye-nage Taikai", 0 )
diff --git a/src/mame/drivers/silkroad.c b/src/mame/drivers/silkroad.c
index d72dc4230c8..ed80f4eebdc 100644
--- a/src/mame/drivers/silkroad.c
+++ b/src/mame/drivers/silkroad.c
@@ -390,5 +390,5 @@ ROM_START( silkroada )
ROM_END
-GAME( 1999, silkroad, 0, silkroad, silkroad, driver_device, 0, ROT0, "Unico", "The Legend of Silkroad", GAME_SUPPORTS_SAVE )
-GAME( 1999, silkroada, silkroad, silkroad, silkroad, driver_device, 0, ROT0, "Unico", "The Legend of Silkroad (larger ROMs)", GAME_SUPPORTS_SAVE ) // same content but fewer GFX roms of a larger size
+GAME( 1999, silkroad, 0, silkroad, silkroad, driver_device, 0, ROT0, "Unico", "The Legend of Silkroad", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, silkroada, silkroad, silkroad, silkroad, driver_device, 0, ROT0, "Unico", "The Legend of Silkroad (larger ROMs)", MACHINE_SUPPORTS_SAVE ) // same content but fewer GFX roms of a larger size
diff --git a/src/mame/drivers/silvmil.c b/src/mame/drivers/silvmil.c
index 556c50f4af6..c30851cab3b 100644
--- a/src/mame/drivers/silvmil.c
+++ b/src/mame/drivers/silvmil.c
@@ -9,11 +9,17 @@
also very close to gotcha.c, which was also a Para
board.
- todo: refresh rate & audio balance
+ todo: refresh rate
verify dipswitches - difficulty & unknown dips
- verify clocks for Z80 & OKI6295
-OSC on the PCB are 12MHz, 14.31818MHz & 4.096MHz
+OSC on Silver Millennium are 12MHz, 14.31818MHz & 4.096MHz
+The above has been verified on two boards.
+
+OSC on World Puzzlove are 12MHz, 14.31818MHz & 4MHz
+OSC on Korean Puzzlove are 12MHz, 15MHz & 4MHz
+Only one example of each of these is known to exist so far.
+
+Very likely to be 'whatever crystals we had on hand which were close enough for the batch' situations.
*/
@@ -167,8 +173,6 @@ UINT32 silvmil_state::screen_update_silvmil(screen_device &screen, bitmap_ind16
}
-
-
static ADDRESS_MAP_START( silvmil_map, AS_PROGRAM, 16, silvmil_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
@@ -321,6 +325,23 @@ static INPUT_PORTS_START( puzzlove )
PORT_SERVICE_DIPLOC( 0x8000, IP_ACTIVE_LOW, "SW2:8" ) /* Verified */
INPUT_PORTS_END
+static INPUT_PORTS_START( puzzlovek )
+ PORT_INCLUDE(puzzlove)
+
+ PORT_MODIFY("DSW")
+ /* Korean rev has demo sound */
+ PORT_DIPNAME( 0x0001, 0x0000, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:1")
+ PORT_DIPSETTING( 0x0001, DEF_STR ( Off ) )
+ PORT_DIPSETTING( 0x0000, DEF_STR ( On ) )
+
+ /* Korean rev has slightly different difficulty settings */
+ PORT_DIPNAME( 0x0300, 0x0100, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:1,2")
+ PORT_DIPSETTING( 0x0300, DEF_STR( Easy ) ) /* Initial start time 35 secs */
+ PORT_DIPSETTING( 0x0200, DEF_STR( Very_Easy ) ) /* Initial start time 40 secs - Other in game effects?? */
+ PORT_DIPSETTING( 0x0100, DEF_STR( Hard ) ) /* Initial start time 30 secs - Other in game effects?? */
+ PORT_DIPSETTING( 0x0000, DEF_STR( Very_Hard ) ) /* Initial start time 30 secs - Other in game effects?? */
+INPUT_PORTS_END
+
static const gfx_layout tlayout =
@@ -368,16 +389,15 @@ static ADDRESS_MAP_START( silvmil_sound_map, AS_PROGRAM, 8, silvmil_state )
AM_RANGE(0xc00f, 0xc00f) AM_WRITENOP // ??
ADDRESS_MAP_END
-/* CLOCKS UNKNOWN! */
static MACHINE_CONFIG_START( silvmil, silvmil_state )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", M68000, XTAL_12MHz)
+ MCFG_CPU_ADD("maincpu", M68000, XTAL_12MHz) /* Verified */
MCFG_CPU_PROGRAM_MAP(silvmil_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", silvmil_state, irq6_line_hold)
- MCFG_CPU_ADD("audiocpu", Z80, XTAL_4_096MHz) // 4.096MHz or 3.579545MHz - Need to verify
+ MCFG_CPU_ADD("audiocpu", Z80, XTAL_4_096MHz) /* Verified */
MCFG_CPU_PROGRAM_MAP(silvmil_sound_map)
@@ -402,23 +422,37 @@ static MACHINE_CONFIG_START( silvmil, silvmil_state )
MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
MCFG_DECO_SPRITE_PALETTE("palette")
- MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
+ MCFG_SPEAKER_STANDARD_MONO("mono")
- MCFG_YM2151_ADD("ymsnd", XTAL_14_31818MHz/4)
+ MCFG_YM2151_ADD("ymsnd", XTAL_14_31818MHz/4) /* Verified */
MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
- MCFG_SOUND_ROUTE(0, "lspeaker", 0.50)
- MCFG_SOUND_ROUTE(1, "rspeaker", 0.50)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
- MCFG_OKIM6295_ADD("oki", XTAL_4_096MHz/4, OKIM6295_PIN7_HIGH) // Need to verify
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.2)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.2)
+ MCFG_OKIM6295_ADD("oki", XTAL_4_096MHz/4, OKIM6295_PIN7_HIGH) /* Verified */
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( puzzlove, silvmil )
+ MCFG_DEVICE_REMOVE("audiocpu")
+ MCFG_CPU_ADD("audiocpu", Z80, XTAL_4MHz) /* Verified */
+ MCFG_CPU_PROGRAM_MAP(silvmil_sound_map)
+
MCFG_DEVICE_MODIFY("spritegen")
MCFG_DECO_SPRITE_BOOTLEG_TYPE(1)
+
+ MCFG_DEVICE_REMOVE("oki")
+ MCFG_OKIM6295_ADD("oki", XTAL_4MHz/4, OKIM6295_PIN7_HIGH) /* Verified */
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( puzzlovek, puzzlove )
+ MCFG_DEVICE_REMOVE("ymsnd")
+ MCFG_YM2151_ADD("ymsnd", XTAL_15MHz/4) /* Verified */
+ MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
+
ROM_START( silvmil )
ROM_REGION( 0x100000, "maincpu", 0 ) /* 68k */
ROM_LOAD16_BYTE( "d-13_u3.bin", 0x00000, 0x40000, CRC(46106c59) SHA1(ab965c1ea9ce89a67875530d76ac2bde7fd13e13) )
@@ -499,6 +533,34 @@ ROM_START( puzzlove )
ROM_LOAD16_BYTE( "8.u56", 0x100001, 0x80000, CRC(037dcd3d) SHA1(fcdf604710518982e0b4acc81a56fa703d0c9407) )
ROM_END
+ROM_START( puzzlovek )
+ ROM_REGION( 0x100000, "maincpu", 0 ) /* 68k */
+ ROM_LOAD16_BYTE( "3.u3", 0x00000, 0x40000, CRC(28f403f0) SHA1(5f9fc18f705fe81f0dceaf2d62b6caffb0b0462e) ) // sldh
+ ROM_LOAD16_BYTE( "4.u2", 0x00001, 0x40000, CRC(809371b9) SHA1(6b2dc899a4e2cf4fca777f0ec4a08e636099e0d2) ) // sldh
+
+ ROM_REGION( 0x20000, "audiocpu", 0 ) /* z80 */
+ ROM_LOAD( "1.uz02", 0x00000, 0x20000, CRC(3077e7f3) SHA1(e2bf634a2166e1851486a801e74a7ec0d4599c28) )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* samples */
+ ROM_LOAD( "2.uz11", 0x00000, 0x40000, CRC(4c06ec68) SHA1(3cfca1c98e73c65a45b65d43e012c5529572c057) )
+
+ ROM_REGION( 0x100000, "gfx1", 0 )
+ ROM_LOAD16_BYTE( "10.u41", 0x000000, 0x20000, CRC(3f952c54) SHA1(1f18579ce98305d20ec0f4e216f8170a62b9c68b) ) // sldh
+ ROM_CONTINUE ( 0x080000,0x20000 )
+ ROM_CONTINUE ( 0x040000,0x20000 )
+ ROM_CONTINUE ( 0x0c0000,0x20000 )
+ ROM_LOAD16_BYTE( "9.u42", 0x000001, 0x20000, CRC(4f71ee93) SHA1(db0d00fa0f6c9b7bc638dcb50f041fb32827c7c4) ) // sldh
+ ROM_CONTINUE ( 0x080001,0x20000 )
+ ROM_CONTINUE ( 0x040001,0x20000 )
+ ROM_CONTINUE ( 0x0c0001,0x20000 )
+
+ ROM_REGION( 0x200000, "gfx2", 0 ) /* sprites */
+ ROM_LOAD16_BYTE( "5.u53", 0x000000, 0x80000, CRC(c5732995) SHA1(e7faecb19f4bdb103b782e38463d32b357ea63bc) ) // sldh
+ ROM_LOAD16_BYTE( "6.u54", 0x000001, 0x80000, CRC(a3b98fd1) SHA1(2b2b7c9df19882a0565e38504b73f56ea27d71ab) ) // sldh
+ ROM_LOAD16_BYTE( "7.u55", 0x100000, 0x80000, CRC(a4c73b48) SHA1(9f26af7b961c96cfd1c45f85f1d6dc4f364e3541) ) // sldh
+ ROM_LOAD16_BYTE( "8.u56", 0x100001, 0x80000, CRC(95b5f049) SHA1(1104dac1fbf6a894b7d8294b3f44a0edbf363157) ) // sldh
+ROM_END
+
void silvmil_state::tumblepb_gfx1_rearrange()
{
UINT8 *rom = memregion("gfx1")->base();
@@ -525,5 +587,6 @@ DRIVER_INIT_MEMBER(silvmil_state,silvmil)
tumblepb_gfx1_rearrange();
}
-GAME( 1995, silvmil, 0, silvmil, silvmil, silvmil_state, silvmil, ROT270, "Para", "Silver Millennium", GAME_SUPPORTS_SAVE )
-GAME( 1994, puzzlove, 0, puzzlove,puzzlove,silvmil_state, silvmil, ROT0, "Para", "PuzzLove", GAME_SUPPORTS_SAVE )
+GAME( 1995, silvmil, 0, silvmil, silvmil, silvmil_state, silvmil, ROT270, "Para", "Silver Millennium", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, puzzlove, 0, puzzlove, puzzlove, silvmil_state, silvmil, ROT0, "Para", "PuzzLove", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, puzzlovek, puzzlove, puzzlovek, puzzlovek, silvmil_state, silvmil, ROT0, "Para", "PuzzLove (Korea)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/simpl156.c b/src/mame/drivers/simpl156.c
index fecf10a306d..652952885c3 100644
--- a/src/mame/drivers/simpl156.c
+++ b/src/mame/drivers/simpl156.c
@@ -552,6 +552,27 @@ ROM_START( joemacra )
ROM_LOAD( "mbn03", 0x00000, 0x200000, CRC(70b71a2a) SHA1(45851b0692de73016fc9b913316001af4690534c) )
ROM_END
+ROM_START( joemacrj )
+ ROM_REGION( 0x80000, "maincpu", 0 ) /* DE156 code (encrypted) */
+ ROM_LOAD( "my00-.e1", 0x000000, 0x080000, CRC(2c184981) SHA1(976fbb554de96aa6405f6f64cd75b633439fe583) )
+
+ ROM_REGION( 0x100000, "gfx1", 0 ) // rebuilt with roms from other set
+ ROM_LOAD( "mbn00", 0x000000, 0x100000, CRC(11b2dac7) SHA1(71a50f606caddeb0ef266e2d3df9e429a4873f21) )
+
+ ROM_REGION( 0x100000, "gfx2", 0 )
+ ROM_LOAD16_BYTE( "mbn01", 0x000001, 0x080000, CRC(a3a37353) SHA1(c4509c8268afb647c20e71b42ae8ebd2bdf075e6) )
+ ROM_LOAD16_BYTE( "mbn02", 0x000000, 0x080000, CRC(aa2230c5) SHA1(43b7ac5c69cde1840a5255a8897e1c5d5f89fd7b) )
+
+ ROM_REGION( 0x80000, "okisfx", 0 ) /* Oki samples */
+ ROM_LOAD( "mbn04", 0x00000, 0x40000, CRC(dcbd4771) SHA1(2a1ab6b0fc372333c7eb17aab077fe1ca5ba1dea) )
+
+ ROM_REGION( 0x200000, "okimusic", 0 ) /* samples? (banked?) */
+ ROM_LOAD( "mbn03", 0x00000, 0x200000, CRC(70b71a2a) SHA1(45851b0692de73016fc9b913316001af4690534c) )
+
+ ROM_REGION16_BE( 0x80, "eeprom", 0 ) /* eeprom */
+ ROM_LOAD16_WORD( "jmrj_ak93c45.h3", 0x00, 0x80, CRC(31f17522) SHA1(88fc10ffa2e0e3887ebaeafc0b132507e4c77d0d) )
+ROM_END
+
/*
Chain Reaction
@@ -1094,15 +1115,16 @@ DRIVER_INIT_MEMBER(simpl156_state,osman)
}
/* Data East games running on the DE-0409-1 or DE-0491-1 PCB */
-GAME( 1994, joemacr, 0, joemacr, simpl156, simpl156_state, joemacr, ROT0, "Data East", "Joe & Mac Returns (World, Version 1.1, 1994.05.27)", GAME_SUPPORTS_SAVE ) /* bootleg board with genuine DECO parts */
-GAME( 1994, joemacra, joemacr, joemacr, simpl156, simpl156_state, joemacr, ROT0, "Data East", "Joe & Mac Returns (World, Version 1.0, 1994.05.19)", GAME_SUPPORTS_SAVE )
-GAME( 1995, chainrec, 0, chainrec, simpl156, simpl156_state, chainrec, ROT0, "Data East", "Chain Reaction (World, Version 2.2, 1995.09.25)", GAME_SUPPORTS_SAVE )
-GAME( 1995, magdrop, chainrec, magdrop, simpl156, simpl156_state, chainrec, ROT0, "Data East", "Magical Drop (Japan, Version 1.1, 1995.06.21)", GAME_SUPPORTS_SAVE )
-GAME( 1995, magdropp, chainrec, magdropp, simpl156, simpl156_state, chainrec, ROT0, "Data East", "Magical Drop Plus 1 (Japan, Version 2.1, 1995.09.12)", GAME_SUPPORTS_SAVE )
+GAME( 1994, joemacr, 0, joemacr, simpl156, simpl156_state, joemacr, ROT0, "Data East", "Joe & Mac Returns (World, Version 1.1, 1994.05.27)", MACHINE_SUPPORTS_SAVE ) /* bootleg board with genuine DECO parts */
+GAME( 1994, joemacra, joemacr, joemacr, simpl156, simpl156_state, joemacr, ROT0, "Data East", "Joe & Mac Returns (World, Version 1.0, 1994.05.19)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, joemacrj, joemacr, joemacr, simpl156, simpl156_state, joemacr, ROT0, "Data East", "Joe & Mac Returns (Japan, Version 1.2, 1994.06.06)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, chainrec, 0, chainrec, simpl156, simpl156_state, chainrec, ROT0, "Data East", "Chain Reaction (World, Version 2.2, 1995.09.25)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, magdrop, chainrec, magdrop, simpl156, simpl156_state, chainrec, ROT0, "Data East", "Magical Drop (Japan, Version 1.1, 1995.06.21)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, magdropp, chainrec, magdropp, simpl156, simpl156_state, chainrec, ROT0, "Data East", "Magical Drop Plus 1 (Japan, Version 2.1, 1995.09.12)", MACHINE_SUPPORTS_SAVE )
/* Mitchell games running on the DEC-22VO / MT5601-0 PCB */
-GAME( 1995, charlien, 0, mitchell156, simpl156, simpl156_state, charlien, ROT0, "Mitchell", "Charlie Ninja" , GAME_SUPPORTS_SAVE ) /* language in service mode */
-GAME( 1995, prtytime, 0, mitchell156, simpl156, simpl156_state, prtytime, ROT90, "Mitchell", "Party Time: Gonta the Diver II / Ganbare! Gonta!! 2 (World Release)", GAME_SUPPORTS_SAVE ) /* language in service mode */
-GAME( 1995, gangonta, prtytime, mitchell156, simpl156, simpl156_state, prtytime, ROT90, "Mitchell", "Ganbare! Gonta!! 2 / Party Time: Gonta the Diver II (Japan Release)", GAME_SUPPORTS_SAVE ) /* language in service mode */
-GAME( 1996, osman, 0, mitchell156, simpl156, simpl156_state, osman, ROT0, "Mitchell", "Osman (World)", GAME_SUPPORTS_SAVE )
-GAME( 1996, candance, osman, mitchell156, simpl156, simpl156_state, osman, ROT0, "Mitchell (Atlus license)", "Cannon Dancer (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1995, charlien, 0, mitchell156, simpl156, simpl156_state, charlien, ROT0, "Mitchell", "Charlie Ninja" , MACHINE_SUPPORTS_SAVE ) /* language in service mode */
+GAME( 1995, prtytime, 0, mitchell156, simpl156, simpl156_state, prtytime, ROT90, "Mitchell", "Party Time: Gonta the Diver II / Ganbare! Gonta!! 2 (World Release)", MACHINE_SUPPORTS_SAVE ) /* language in service mode */
+GAME( 1995, gangonta, prtytime, mitchell156, simpl156, simpl156_state, prtytime, ROT90, "Mitchell", "Ganbare! Gonta!! 2 / Party Time: Gonta the Diver II (Japan Release)", MACHINE_SUPPORTS_SAVE ) /* language in service mode */
+GAME( 1996, osman, 0, mitchell156, simpl156, simpl156_state, osman, ROT0, "Mitchell", "Osman (World)", MACHINE_SUPPORTS_SAVE )
+GAME( 1996, candance, osman, mitchell156, simpl156, simpl156_state, osman, ROT0, "Mitchell (Atlus license)", "Cannon Dancer (Japan)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/simple_st0016.c b/src/mame/drivers/simple_st0016.c
index 5b77cd72c2d..3cdcce45684 100644
--- a/src/mame/drivers/simple_st0016.c
+++ b/src/mame/drivers/simple_st0016.c
@@ -726,10 +726,10 @@ DRIVER_INIT_MEMBER(st0016_state,mayjisn2)
GAME( 1994, renju, 0, renju, renju, st0016_state, renju, ROT0, "Visco", "Renju Kizoku", 0)
GAME( 1996, nratechu, 0, st0016, nratechu, st0016_state, nratechu, ROT0, "Seta", "Neratte Chu", 0)
GAME( 1994, mayjisn2, 0, mayjinsn, mayjisn2, st0016_state, mayjisn2, ROT0, "Seta", "Mayjinsen 2", 0)
-GAME( 1995, koikois, 0, st0016, koikois, st0016_state, renju, ROT0, "Visco", "Koi Koi Shimasho", GAME_IMPERFECT_GRAPHICS)
+GAME( 1995, koikois, 0, st0016, koikois, st0016_state, renju, ROT0, "Visco", "Koi Koi Shimasho", MACHINE_IMPERFECT_GRAPHICS)
GAME( 2001, gostop, 0, st0016, gostop, st0016_state, renju, ROT0, "Visco", "Kankoku Hanafuda Go-Stop", 0)
/* Not working */
-GAME( 1994, mayjinsn, 0, mayjinsn, st0016, st0016_state, mayjinsn, ROT0, "Seta", "Mayjinsen",GAME_IMPERFECT_GRAPHICS|GAME_NOT_WORKING)
-GAME( 1994, dcrown, 0, st0016, renju, st0016_state, renju, ROT0, "Nippon Data Kiki", "Dream Crown (Set 1)", GAME_NOT_WORKING) // (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)", GAME_NOT_WORKING) // the Insert Coin text has been translated to English and no (c) is uploaded
+GAME( 1994, mayjinsn, 0, mayjinsn, st0016, st0016_state, mayjinsn, ROT0, "Seta", "Mayjinsen",MACHINE_IMPERFECT_GRAPHICS|MACHINE_NOT_WORKING)
+GAME( 1994, dcrown, 0, st0016, renju, st0016_state, renju, ROT0, "Nippon Data Kiki", "Dream Crown (Set 1)", MACHINE_NOT_WORKING) // (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) // the Insert Coin text has been translated to English and no (c) is uploaded
diff --git a/src/mame/drivers/simpsons.c b/src/mame/drivers/simpsons.c
index e0b7aa1a9f9..2bba8f13379 100644
--- a/src/mame/drivers/simpsons.c
+++ b/src/mame/drivers/simpsons.c
@@ -344,11 +344,10 @@ static MACHINE_CONFIG_START( simpsons, simpsons_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_RAW_PARAMS(XTAL_24MHz/3, 528, 112, 400, 256, 16, 240)
+// 6MHz dotclock is more realistic, however needs drawing updates. replace when ready
+// MCFG_SCREEN_RAW_PARAMS(XTAL_24MHz/4, 396, hbend, hbstart, 256, 16, 240)
MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
- MCFG_SCREEN_REFRESH_RATE(59.1856)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_SIZE(64*8, 32*8)
- MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
MCFG_SCREEN_UPDATE_DRIVER(simpsons_state, screen_update_simpsons)
MCFG_SCREEN_PALETTE("palette")
@@ -605,10 +604,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)", GAME_SUPPORTS_SAVE )
-GAME( 1991, simpsons4pa, simpsons, simpsons, simpsons, driver_device, 0, ROT0, "Konami", "The Simpsons (4 Players World, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1991, simpsons2p, simpsons, simpsons, simpsn2p, driver_device, 0, ROT0, "Konami", "The Simpsons (2 Players World, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1991, simpsons2p2, simpsons, simpsons, simpsons, driver_device, 0, ROT0, "Konami", "The Simpsons (2 Players World, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1991, simpsons2p3, simpsons, simpsons, simpsn2p, driver_device, 0, ROT0, "Konami", "The Simpsons (2 Players World, set 3)", GAME_SUPPORTS_SAVE )
-GAME( 1991, simpsons2pa, simpsons, simpsons, simpsn2p, driver_device, 0, ROT0, "Konami", "The Simpsons (2 Players Asia)", GAME_SUPPORTS_SAVE )
-GAME( 1991, simpsons2pj, simpsons, simpsons, simpsn2p, driver_device, 0, ROT0, "Konami", "The Simpsons (2 Players Japan)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/sitcom.c b/src/mame/drivers/sitcom.c
index dc0d2d9b57f..4f98a75a42d 100644
--- a/src/mess/drivers/sitcom.c
+++ b/src/mame/drivers/sitcom.c
@@ -132,4 +132,4 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 2002, sitcom, 0, 0, sitcom, sitcom, driver_device, 0, "San Bergmans & Izabella Malcolm", "Sitcom", GAME_NO_SOUND_HW)
+COMP( 2002, sitcom, 0, 0, sitcom, sitcom, driver_device, 0, "San Bergmans & Izabella Malcolm", "Sitcom", MACHINE_NO_SOUND_HW)
diff --git a/src/mame/drivers/skeetsht.c b/src/mame/drivers/skeetsht.c
index c9576a5d100..e3c95070960 100644
--- a/src/mame/drivers/skeetsht.c
+++ b/src/mame/drivers/skeetsht.c
@@ -293,5 +293,5 @@ ROM_END
*
*************************************/
-GAME( 1991, skeetsht, 0, skeetsht, skeetsht, driver_device, 0, ROT0, "Dynamo", "Skeet Shot", GAME_NOT_WORKING )
-GAME( 1991, popshot, 0, skeetsht, skeetsht, driver_device, 0, ROT0, "Dynamo", "Pop Shot (prototype)", GAME_NOT_WORKING )
+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 )
diff --git a/src/mame/drivers/skimaxx.c b/src/mame/drivers/skimaxx.c
index ad0b1cbf8aa..779def733ce 100644
--- a/src/mame/drivers/skimaxx.c
+++ b/src/mame/drivers/skimaxx.c
@@ -596,4 +596,4 @@ ROM_END
*
*************************************/
-GAME( 1996, skimaxx, 0, skimaxx, skimaxx, driver_device, 0, ROT0, "Kyle Hodgetts / ICE", "Skimaxx", GAME_IMPERFECT_GRAPHICS )
+GAME( 1996, skimaxx, 0, skimaxx, skimaxx, driver_device, 0, ROT0, "Kyle Hodgetts / ICE", "Skimaxx", MACHINE_IMPERFECT_GRAPHICS )
diff --git a/src/mame/drivers/skyarmy.c b/src/mame/drivers/skyarmy.c
index 56ba90f678a..78badeb7396 100644
--- a/src/mame/drivers/skyarmy.c
+++ b/src/mame/drivers/skyarmy.c
@@ -6,11 +6,11 @@
- Fixed Dip Switches and Inputs (after verification of the Z80 code)
- Updated memory map to partially handle screen flipping
- 05/01/2003 MooglyGuy/Ryan Holtz
+ 05/01/2003 Ryan Holtz
- Corrected second AY (shouldn't have been there)
- Added first AY's status read
- Added coinage DIP
- - What the hell are those unmapped port writes!? Not AY...
+ - What are those unmapped port writes!? Not AY...
2003.01.01. Tomasz Slanina
@@ -341,4 +341,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", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+GAME( 1982, skyarmy, 0, skyarmy, skyarmy, driver_device, 0, ROT90, "Shoei", "Sky Army", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/skydiver.c b/src/mame/drivers/skydiver.c
index ed00b43ff97..7da03aefadd 100644
--- a/src/mame/drivers/skydiver.c
+++ b/src/mame/drivers/skydiver.c
@@ -434,4 +434,4 @@ ROM_END
*
*************************************/
-GAMEL(1978, skydiver, 0, skydiver, skydiver, driver_device, 0, ROT0, "Atari", "Sky Diver", GAME_SUPPORTS_SAVE, layout_skydiver )
+GAMEL(1978, skydiver, 0, skydiver, skydiver, driver_device, 0, ROT0, "Atari", "Sky Diver", MACHINE_SUPPORTS_SAVE, layout_skydiver )
diff --git a/src/mame/drivers/skyfox.c b/src/mame/drivers/skyfox.c
index 5d88e459032..e0040ed1457 100644
--- a/src/mame/drivers/skyfox.c
+++ b/src/mame/drivers/skyfox.c
@@ -412,6 +412,6 @@ DRIVER_INIT_MEMBER(skyfox_state,skyfox)
}
-GAME( 1987, skyfox, 0, skyfox, skyfox, skyfox_state, skyfox, ROT90, "Jaleco (Nichibutsu USA license)", "Sky Fox", GAME_SUPPORTS_SAVE )
-GAME( 1987, exerizer, skyfox, skyfox, skyfox, skyfox_state, skyfox, ROT90, "Jaleco", "Exerizer (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1987, exerizerb, skyfox, skyfox, skyfox, skyfox_state, skyfox, ROT90, "bootleg", "Exerizer (bootleg)", GAME_SUPPORTS_SAVE )
+GAME( 1987, skyfox, 0, skyfox, skyfox, skyfox_state, skyfox, ROT90, "Jaleco (Nichibutsu USA license)", "Sky Fox", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, exerizer, skyfox, skyfox, skyfox, skyfox_state, skyfox, ROT90, "Jaleco", "Exerizer (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, exerizerb, skyfox, skyfox, skyfox, skyfox_state, skyfox, ROT90, "bootleg", "Exerizer (bootleg)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/skykid.c b/src/mame/drivers/skykid.c
index 9e20477e495..37172964a2d 100644
--- a/src/mame/drivers/skykid.c
+++ b/src/mame/drivers/skykid.c
@@ -637,11 +637,11 @@ DRIVER_INIT_MEMBER(skykid_state,skykid)
}
}
-GAME( 1984, drgnbstr, 0, skykid, drgnbstr, skykid_state, skykid, ROT0, "Namco", "Dragon Buster", GAME_SUPPORTS_SAVE )
-GAME( 1985, skykid, 0, skykid, skykid, skykid_state, skykid, ROT180, "Namco", "Sky Kid (new version)", GAME_SUPPORTS_SAVE ) /* Uses CUS63 aka 63a1 */
-GAME( 1985, skykido, skykid, skykid, skykid, skykid_state, skykid, ROT180, "Namco", "Sky Kid (old version)", GAME_SUPPORTS_SAVE ) /* Uses CUS63 aka 63a1 */
-GAME( 1985, skykidd, skykid, skykid, skykid, skykid_state, skykid, ROT180, "Namco", "Sky Kid (CUS60 version)", GAME_SUPPORTS_SAVE ) /* Uses CUS60 aka 60a1 */
+GAME( 1984, drgnbstr, 0, skykid, drgnbstr, skykid_state, skykid, ROT0, "Namco", "Dragon Buster", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, skykid, 0, skykid, skykid, skykid_state, skykid, ROT180, "Namco", "Sky Kid (new version)", MACHINE_SUPPORTS_SAVE ) /* Uses CUS63 aka 63a1 */
+GAME( 1985, skykido, skykid, skykid, skykid, skykid_state, skykid, ROT180, "Namco", "Sky Kid (old version)", MACHINE_SUPPORTS_SAVE ) /* Uses CUS63 aka 63a1 */
+GAME( 1985, skykidd, skykid, skykid, skykid, skykid_state, skykid, ROT180, "Namco", "Sky Kid (CUS60 version)", MACHINE_SUPPORTS_SAVE ) /* Uses CUS60 aka 60a1 */
// no license text is displayed but the PCB was licensed by Namco for production by Sipem (formerly Sidam) with Namco supplying the Custom chips (MCU etc.)
// the level select is handled in a much more user-friendly way in this set and the dip for it is inverted (although this is displayed incorrectly in the test mode)
-GAME( 1985, skykids, skykid, skykid, skykids, skykid_state, skykid, ROT180, "Namco (Sipem license)", "Sky Kid (Sipem)", GAME_SUPPORTS_SAVE ) /* Uses CUS63 aka 63a1 */
+GAME( 1985, skykids, skykid, skykid, skykids, skykid_state, skykid, ROT180, "Namco (Sipem license)", "Sky Kid (Sipem)", MACHINE_SUPPORTS_SAVE ) /* Uses CUS63 aka 63a1 */
diff --git a/src/mame/drivers/skylncr.c b/src/mame/drivers/skylncr.c
index 8692ce3351a..9eb3919b0e5 100644
--- a/src/mame/drivers/skylncr.c
+++ b/src/mame/drivers/skylncr.c
@@ -1670,7 +1670,7 @@ DRIVER_INIT_MEMBER(skylncr_state,skylncr)
/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS */
GAME( 1995, skylncr, 0, skylncr, skylncr, skylncr_state, skylncr, ROT0, "Bordun International", "Sky Lancer (Bordun, version U450C)", 0 )
GAME( 1995, butrfly, 0, skylncr, skylncr, skylncr_state, skylncr, ROT0, "Bordun International", "Butterfly Video Game (version U350C)", 0 )
-GAME( 1999, mbutrfly, 0, skylncr, skylncr, skylncr_state, skylncr, ROT0, "Bordun International", "Magical Butterfly (version U350C, encrypted)", GAME_NOT_WORKING )
+GAME( 1999, mbutrfly, 0, skylncr, skylncr, skylncr_state, skylncr, ROT0, "Bordun International", "Magical Butterfly (version U350C, encrypted)", MACHINE_NOT_WORKING )
GAME( 1995, madzoo, 0, skylncr, skylncr, skylncr_state, skylncr, ROT0, "Bordun International", "Mad Zoo (version U450C)", 0 )
GAME( 1995, leader, 0, skylncr, leader, skylncr_state, skylncr, ROT0, "bootleg", "Leader (version Z 2E, Greece)", 0 )
GAME( 199?, gallag50, 0, skylncr, gallag50, skylncr_state, skylncr, ROT0, "bootleg", "Gallag Video Game / Petalouda (Butterfly, x50)", 0 )
diff --git a/src/mame/drivers/skyraid.c b/src/mame/drivers/skyraid.c
index b54f049b4f5..dc11913cec0 100644
--- a/src/mame/drivers/skyraid.c
+++ b/src/mame/drivers/skyraid.c
@@ -275,4 +275,4 @@ ROM_START( skyraid )
ROM_END
-GAME( 1978, skyraid, 0, skyraid, skyraid, driver_device, 0, ORIENTATION_FLIP_Y, "Atari", "Sky Raider", GAME_IMPERFECT_COLORS )
+GAME( 1978, skyraid, 0, skyraid, skyraid, driver_device, 0, ORIENTATION_FLIP_Y, "Atari", "Sky Raider", MACHINE_IMPERFECT_COLORS )
diff --git a/src/mame/drivers/slapfght.c b/src/mame/drivers/slapfght.c
index 640041bf9e1..98f7578ac71 100644
--- a/src/mame/drivers/slapfght.c
+++ b/src/mame/drivers/slapfght.c
@@ -1969,23 +1969,23 @@ 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)", GAME_SUPPORTS_SAVE )
-GAME( 1985, perfrmanu, perfrman, perfrman, perfrman, driver_device, 0, ROT270, "Toaplan / Data East USA", "Performan (US)", GAME_SUPPORTS_SAVE )
-
-GAME( 1985, tigerh, 0, tigerh, tigerh, driver_device, 0, ROT270, "Toaplan / Taito America Corp.", "Tiger Heli (US)", GAME_SUPPORTS_SAVE )
-GAME( 1985, tigerhj, tigerh, tigerh, tigerh, driver_device, 0, ROT270, "Toaplan / Taito", "Tiger Heli (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1985, tigerhb1, tigerh, tigerhb1, tigerh, driver_device, 0, ROT270, "bootleg", "Tiger Heli (bootleg set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1985, tigerhb2, tigerh, tigerhb2, tigerh, driver_device, 0, ROT270, "bootleg", "Tiger Heli (bootleg set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1985, tigerhb3, tigerh, tigerhb2, tigerh, driver_device, 0, ROT270, "bootleg", "Tiger Heli (bootleg set 3)", GAME_SUPPORTS_SAVE )
-
-GAME( 1986, alcon, 0, slapfigh, slapfigh, slapfght_state, slapfigh, ROT270, "Toaplan / Taito America Corp.", "Alcon (US)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1986, slapfigh, alcon, slapfigh, slapfigh, slapfght_state, slapfigh, ROT270, "Toaplan / Taito", "Slap Fight (Japan set 1)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1986, slapfigha, alcon, slapfigh, slapfigh, slapfght_state, slapfigh, ROT270, "Toaplan / Taito", "Slap Fight (Japan set 2)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) /* MCU code not dumped */
-GAME( 1986, slapfighb1, alcon, slapfighb1, slapfigh, slapfght_state, slapfigh, ROT270, "bootleg", "Slap Fight (bootleg set 1)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1986, slapfighb2, alcon, slapfighb2, slapfigh, slapfght_state, slapfigh, ROT270, "bootleg", "Slap Fight (bootleg set 2)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) // England?
-GAME( 1986, slapfighb3, alcon, slapfighb2, slapfigh, slapfght_state, slapfigh, ROT270, "bootleg", "Slap Fight (bootleg set 3)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) // PCB labeled 'slap fighter'
-
-GAME( 1986, grdian, 0, getstar, getstar, slapfght_state, getstar, ROT0, "Toaplan / Taito America Corporation (Kitkorp license)", "Guardian (US)", GAME_SUPPORTS_SAVE )
-GAME( 1986, getstarj, grdian, getstar, getstarj, slapfght_state, getstarj, ROT0, "Toaplan / Taito", "Get Star (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1986, getstarb1, grdian, getstarb1, getstarj, slapfght_state, getstarb1, ROT0, "bootleg", "Get Star (bootleg set 1)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
-GAME( 1986, getstarb2, grdian, getstarb2, getstarb2, slapfght_state, getstarb2, ROT0, "bootleg", "Get Star (bootleg set 2)", GAME_SUPPORTS_SAVE )
+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( 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 )
+GAME( 1986, slapfigha, alcon, slapfigh, slapfigh, slapfght_state, slapfigh, ROT270, "Toaplan / Taito", "Slap Fight (Japan set 2)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) /* MCU code not dumped */
+GAME( 1986, slapfighb1, alcon, slapfighb1, slapfigh, slapfght_state, slapfigh, ROT270, "bootleg", "Slap Fight (bootleg set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
+GAME( 1986, slapfighb2, alcon, slapfighb2, slapfigh, slapfght_state, slapfigh, ROT270, "bootleg", "Slap Fight (bootleg set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) // England?
+GAME( 1986, slapfighb3, alcon, slapfighb2, slapfigh, slapfght_state, slapfigh, ROT270, "bootleg", "Slap Fight (bootleg set 3)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) // PCB labeled 'slap fighter'
+
+GAME( 1986, grdian, 0, getstar, getstar, slapfght_state, getstar, ROT0, "Toaplan / Taito America Corporation (Kitkorp license)", "Guardian (US)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, getstarj, grdian, getstar, getstarj, slapfght_state, getstarj, ROT0, "Toaplan / Taito", "Get Star (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, getstarb1, grdian, getstarb1, getstarj, slapfght_state, getstarb1, ROT0, "bootleg", "Get Star (bootleg set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
+GAME( 1986, getstarb2, grdian, getstarb2, getstarb2, slapfght_state, getstarb2, ROT0, "bootleg", "Get Star (bootleg set 2)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/slapshot.c b/src/mame/drivers/slapshot.c
index f804ae18664..3eeddfd1646 100644
--- a/src/mame/drivers/slapshot.c
+++ b/src/mame/drivers/slapshot.c
@@ -696,6 +696,6 @@ DRIVER_INIT_MEMBER(slapshot_state,slapshot)
}
}
-GAME( 1994, slapshot, 0, slapshot, slapshot, slapshot_state, slapshot, ROT0, "Taito Corporation", "Slap Shot (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1994, opwolf3, 0, opwolf3, opwolf3, slapshot_state, slapshot, ROT0, "Taito Corporation Japan", "Operation Wolf 3 (World)", GAME_SUPPORTS_SAVE )
-GAME( 1994, opwolf3u, opwolf3, opwolf3, opwolf3, slapshot_state, slapshot, ROT0, "Taito America Corporation", "Operation Wolf 3 (US)", GAME_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/mess/drivers/slc1.c b/src/mame/drivers/slc1.c
index 14f3631cc8b..14f3631cc8b 100644
--- a/src/mess/drivers/slc1.c
+++ b/src/mame/drivers/slc1.c
diff --git a/src/mame/drivers/sleic.c b/src/mame/drivers/sleic.c
index aa6f34671c3..3475e8e93b7 100644
--- a/src/mame/drivers/sleic.c
+++ b/src/mame/drivers/sleic.c
@@ -100,4 +100,4 @@ ROM_START(sleicpin)
ROM_LOAD("sp02-1_1.rom", 0x00000, 0x80000, CRC(0e4851a0) SHA1(0692ee2df0b560e2013db9c03fd27c6eb12e618d))
ROM_END
-GAME(1993, sleicpin, 0, sleic, sleic, sleic_state, sleic, ROT0, "Sleic", "Sleic Pin Ball", GAME_IS_SKELETON_MECHANICAL)
+GAME(1993, sleicpin, 0, sleic, sleic, sleic_state, sleic, ROT0, "Sleic", "Sleic Pin Ball", MACHINE_IS_SKELETON_MECHANICAL)
diff --git a/src/mess/drivers/slicer.c b/src/mame/drivers/slicer.c
index ee5327ff006..ca322b43001 100644
--- a/src/mess/drivers/slicer.c
+++ b/src/mame/drivers/slicer.c
@@ -140,4 +140,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", GAME_NO_SOUND)
+COMP( 1983, slicer, 0, 0, slicer, 0, driver_device, 0, "Slicer Computers", "Slicer", MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/sliver.c b/src/mame/drivers/sliver.c
index 19b37d5ee3d..1422b6f9467 100644
--- a/src/mame/drivers/sliver.c
+++ b/src/mame/drivers/sliver.c
@@ -515,4 +515,30 @@ ROM_START( sliver )
ROM_LOAD( "ka-12.bin", 0x100000, 0x80000, CRC(0901e142) SHA1(68ebd38beeedf53414a831c01813881feee33446) )
ROM_END
-GAME( 1996, sliver, 0, sliver, sliver, driver_device, 0, ROT0, "Hollow Corp", "Sliver", GAME_IMPERFECT_GRAPHICS )
+ROM_START( slivera )
+ ROM_REGION( 0x100000, "maincpu", 0 ) /* 68000 Code */
+ ROM_LOAD16_BYTE( "ka-4.bin", 0x00001, 0x20000, CRC(044d1046) SHA1(dd6da44e65dccae7e2ea0c72c3f8d1452ae8c9e2) )
+ ROM_LOAD16_BYTE( "ka-5.bin", 0x00000, 0x20000, CRC(c2e8b785) SHA1(84444495c4ecb8da50fef0998dbd9b4352f46582) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) /* 8031 */
+ ROM_LOAD( "ka-1.bin", 0x000000, 0x10000, CRC(56e616a2) SHA1(f8952aba62ae0410e300d99e95dc8b752543af1e) )
+
+ ROM_REGION( 0x180000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "ka-2.bin", 0x000000, 0x20000, CRC(3df96eb0) SHA1(ec3dfc29da08f6525a1c708839f83094a6784f72) )
+ ROM_LOAD( "ka-3.bin", 0x100000, 0x80000, CRC(33ee929c) SHA1(a652ad68c547248ef5fa1ed8006b7ac7aef76383) )
+
+ ROM_REGION( 0x200000, "user1", 0 ) /* Graphics (not tiles) */
+ ROM_LOAD16_BYTE( "ka-8.bin", 0x000000, 0x80000, CRC(dbfd7489) SHA1(4a7b07d041dce04a8d8d6688698164f988baefc9) )
+ ROM_LOAD16_BYTE( "ka-6.bin", 0x000001, 0x80000, CRC(bd182316) SHA1(a22db9f73a2865f59630183c14201aeede821642) )
+ ROM_LOAD16_BYTE( "ka-9.bin", 0x100000, 0x40000, CRC(71f044ba) SHA1(bd88bfaa0249de9fd8eb8bd25eae0126744a9046) )
+ ROM_LOAD16_BYTE( "ka-7.bin", 0x100001, 0x40000, CRC(1c5d6fb9) SHA1(372533264eb41a5f57b2a59eb039adb6334f36c5) )
+
+ ROM_REGION( 0x180000, "user2", 0 ) /* JPEG(!) compressed GFX */
+ ROM_LOAD( "ka-10.bin", 0x000000, 0x80000, CRC(639ad3ca) SHA1(d3c6a071aac62a3048e9f5bf2eb835619aa1a83b) )
+ ROM_LOAD( "ka-11.bin", 0x080000, 0x80000, CRC(47c05898) SHA1(51f7bb4ccaa5440a31aae9c02ed255243a3c8e22) )
+ // no rom 12 on PCB, played through the game and doesn't seem to be required for this gfx set, all girls present.
+ROM_END
+
+
+GAME( 1996, sliver, 0, sliver, sliver, driver_device, 0, ROT0, "Hollow Corp", "Sliver (set 1)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1996, slivera, sliver, sliver, sliver, driver_device, 0, ROT0, "Hollow Corp", "Sliver (set 2)", MACHINE_IMPERFECT_GRAPHICS )
diff --git a/src/mame/drivers/slotcarn.c b/src/mame/drivers/slotcarn.c
index 89ccc25e18e..c5f0726a886 100644
--- a/src/mame/drivers/slotcarn.c
+++ b/src/mame/drivers/slotcarn.c
@@ -702,5 +702,5 @@ ROM_END
**********************************************
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", GAME_NOT_WORKING )
-GAME( 1985, spielbud, 0, slotcarn, spielbud, driver_device, 0, ROT0, "ADP", "Spiel Bude (German)", GAME_NOT_WORKING )
+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 )
diff --git a/src/mess/drivers/sm1800.c b/src/mame/drivers/sm1800.c
index 9df4343464b..51e5648273c 100644
--- a/src/mess/drivers/sm1800.c
+++ b/src/mame/drivers/sm1800.c
@@ -198,4 +198,4 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( ????, sm1800, 0, 0, sm1800, sm1800, driver_device, 0, "<unknown>", "SM1800", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( ????, sm1800, 0, 0, sm1800, sm1800, driver_device, 0, "<unknown>", "SM1800", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/smc777.c b/src/mame/drivers/smc777.c
index 730ab4da19c..db6e3ec6f14 100644
--- a/src/mess/drivers/smc777.c
+++ b/src/mame/drivers/smc777.c
@@ -613,33 +613,33 @@ static ADDRESS_MAP_START( smc777_io, AS_IO, 8, smc777_state )
AM_RANGE(0x18, 0x19) AM_MIRROR(0xff00) AM_WRITE(mc6845_w)
AM_RANGE(0x1a, 0x1b) AM_MIRROR(0xff00) AM_READWRITE(key_r, key_w)
AM_RANGE(0x1c, 0x1c) AM_MIRROR(0xff00) AM_READWRITE(system_input_r, system_output_w)
-// AM_RANGE(0x1d, 0x1d) system and control read, printer strobe write
-// AM_RANGE(0x1e, 0x1f) rs232 irq control
+// AM_RANGE(0x1d, 0x1d) system and control read, printer strobe write
+// AM_RANGE(0x1e, 0x1f) rs232 irq control
AM_RANGE(0x20, 0x20) AM_MIRROR(0xff00) AM_READWRITE(display_reg_r, display_reg_w)
AM_RANGE(0x21, 0x21) AM_MIRROR(0xff00) AM_READWRITE(irq_mask_r, irq_mask_w)
-// AM_RANGE(0x22, 0x22) printer output data
+// AM_RANGE(0x22, 0x22) printer output data
AM_RANGE(0x23, 0x23) AM_MIRROR(0xff00) AM_WRITE(border_col_w)
-// AM_RANGE(0x24, 0x24) rtc write address
-// AM_RANGE(0x25, 0x25) rtc read
-// AM_RANGE(0x26, 0x26) rs232 #1
-// AM_RANGE(0x28, 0x2c) fdc #2
-// AM_RANGE(0x2d, 0x2f) rs232 #2
+// AM_RANGE(0x24, 0x24) rtc write address
+// AM_RANGE(0x25, 0x25) rtc read
+// AM_RANGE(0x26, 0x26) rs232 #1
+// AM_RANGE(0x28, 0x2c) fdc #2
+// AM_RANGE(0x2d, 0x2f) rs232 #2
AM_RANGE(0x30, 0x33) AM_MIRROR(0xff00) AM_READWRITE(fdc_r, fdc_w)
AM_RANGE(0x34, 0x34) AM_MIRROR(0xff00) AM_READWRITE(fdc_request_r, floppy_select_w)
-// AM_RANGE(0x35, 0x37) rs232 #3
-// AM_RANGE(0x38, 0x3b) cache disk unit
-// AM_RANGE(0x3c, 0x3d) rgb superimposer
-// AM_RANGE(0x40, 0x47) ieee-488
-// AM_RANGE(0x48, 0x4f) hdd (winchester)
+// AM_RANGE(0x35, 0x37) rs232 #3
+// AM_RANGE(0x38, 0x3b) cache disk unit
+// AM_RANGE(0x3c, 0x3d) rgb superimposer
+// AM_RANGE(0x40, 0x47) ieee-488
+// AM_RANGE(0x48, 0x4f) hdd (winchester)
AM_RANGE(0x51, 0x51) AM_MIRROR(0xff00) AM_READ_PORT("JOY_1P") AM_WRITE(color_mode_w)
AM_RANGE(0x52, 0x52) AM_MIRROR(0xff00) AM_MASK(0xffff) AM_WRITE(ramdac_w)
AM_RANGE(0x53, 0x53) AM_MIRROR(0xff00) AM_DEVWRITE("sn1", sn76489a_device, write)
-// AM_RANGE(0x54, 0x59) vrt controller
-// AM_RANGE(0x5a, 0x5b) ram banking
-// AM_RANGE(0x70, 0x70) auto-start rom
-// AM_RANGE(0x74, 0x74) ieee-488 rom
-// AM_RANGE(0x75, 0x75) vrt controller rom
-// AM_RANGE(0x7e, 0x7f) kanji rom
+// AM_RANGE(0x54, 0x59) vrt controller
+// AM_RANGE(0x5a, 0x5b) ram banking
+// AM_RANGE(0x70, 0x70) auto-start rom
+// AM_RANGE(0x74, 0x74) ieee-488 rom
+// AM_RANGE(0x75, 0x75) vrt controller rom
+// AM_RANGE(0x7e, 0x7f) kanji rom
AM_RANGE(0x80, 0xff) AM_MIRROR(0xff00) AM_MASK(0xffff) AM_READWRITE(fbuf_r, fbuf_w)
ADDRESS_MAP_END
@@ -1024,4 +1024,4 @@ 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", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND)
+COMP( 1983, smc777, 0, 0, smc777, smc777, driver_device, 0, "Sony", "SMC-777", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND)
diff --git a/src/mess/drivers/sms.c b/src/mame/drivers/sms.c
index bd7c6f37c8d..f93674b584c 100644
--- a/src/mess/drivers/sms.c
+++ b/src/mame/drivers/sms.c
@@ -17,12 +17,13 @@
- SIO interface for Game Gear (needs netplay, I guess)
- Support for other DE-9 compatible controllers, like the Mega Drive 6-Button
that has homebrew software support
- - Rapid button of Japanese Master System
- - Verify if disabling of the SN76489 PSG chip is possible on sms1krfm console
- - Keyboard support for Sega Mark III (sg1000m3 driver)
+ - Sega SK-1100 keyboard support for Sega Mark III (sg1000m3 driver)
- Link between two Mark III's through keyboard, supported by F-16 Fighting Falcon
- - Mark III expansion slot, used by keyboard and FM module
+ - Mark III expansion slot, used by keyboard and FM Sound Unit
+ - Verify if the SN76489 chip can be disabled on sg1000m3 and sms1krfm consoles
+ - Rapid button of smsj, sms1krfm and sms1kr consoles
- Software compatibility flags, by region and/or BIOS
+ - Samsung modem for Gam*Boy Securities Information Service System
- Sega Demo Unit II (kiosk expansion device)
- SMS 8 slot game changer (kiosk expansion device)
- SMS Disk System (floppy disk drive expansion device) - unreleased
@@ -1001,16 +1002,16 @@ ROM_END
***************************************************************************/
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
-CONS( 1985, sg1000m3, sms, 0, sg1000m3, sg1000m3, sms_state, sg1000m3, "Sega", "SG-1000 Mark III", GAME_SUPPORTS_SAVE )
-CONS( 1986, sms1, sms, 0, sms1_ntsc, sms1, sms_state, sms1, "Sega", "Master System I", GAME_SUPPORTS_SAVE )
-CONS( 1986, sms1pal, sms, 0, sms1_pal, sms1, sms_state, sms1, "Sega", "Master System I (PAL)" , GAME_SUPPORTS_SAVE )
-CONS( 1986, smssdisp, sms, 0, sms_sdisp, smssdisp, smssdisp_state, smssdisp, "Sega", "Master System Store Display Unit", GAME_SUPPORTS_SAVE )
-CONS( 1987, smsj, sms, 0, smsj, smsj, sms_state, smsj, "Sega", "Master System (Japan)", GAME_SUPPORTS_SAVE )
-CONS( 1990, sms, 0, 0, sms2_ntsc, sms, sms_state, sms1, "Sega", "Master System II", GAME_SUPPORTS_SAVE )
-CONS( 1990, smspal, sms, 0, sms2_pal, sms, sms_state, sms1, "Sega", "Master System II (PAL)", GAME_SUPPORTS_SAVE )
-CONS( 1989, sms1krfm, sms, 0, sms1_krfm, smsj, sms_state, sms1krfm, "Samsung", "Gam*Boy I - FM (Korea)", GAME_SUPPORTS_SAVE )
-CONS( 19??, sms1kr, sms, 0, sms1_kr, smsj, sms_state, sms1kr, "Samsung", "Gam*Boy I (Korea)", GAME_SUPPORTS_SAVE )
-CONS( 1991, smskr, sms, 0, sms2_kr, sms, sms_state, smskr, "Samsung", "Gam*Boy II (Korea)", GAME_SUPPORTS_SAVE )
-
-CONS( 1991, gamegear, 0, sms, gamegear, gg, sms_state, gamegear, "Sega", "Game Gear (Europe/America)", GAME_SUPPORTS_SAVE )
-CONS( 1990, gamegeaj, gamegear, 0, gamegear, gg, sms_state, gamegeaj, "Sega", "Game Gear (Japan)", GAME_SUPPORTS_SAVE )
+CONS( 1985, sg1000m3, sms, 0, sg1000m3, sg1000m3, sms_state, sg1000m3, "Sega", "SG-1000 Mark III", MACHINE_SUPPORTS_SAVE )
+CONS( 1986, sms1, sms, 0, sms1_ntsc, sms1, sms_state, sms1, "Sega", "Master System I", MACHINE_SUPPORTS_SAVE )
+CONS( 1986, sms1pal, sms, 0, sms1_pal, sms1, sms_state, sms1, "Sega", "Master System I (PAL)" , MACHINE_SUPPORTS_SAVE )
+CONS( 1986, smssdisp, sms, 0, sms_sdisp, smssdisp, smssdisp_state, smssdisp, "Sega", "Master System Store Display Unit", MACHINE_SUPPORTS_SAVE )
+CONS( 1987, smsj, sms, 0, smsj, smsj, sms_state, smsj, "Sega", "Master System (Japan)", MACHINE_SUPPORTS_SAVE )
+CONS( 1990, sms, 0, 0, sms2_ntsc, sms, sms_state, sms1, "Sega", "Master System II", MACHINE_SUPPORTS_SAVE )
+CONS( 1990, smspal, sms, 0, sms2_pal, sms, sms_state, sms1, "Sega", "Master System II (PAL)", MACHINE_SUPPORTS_SAVE )
+CONS( 1989, sms1krfm, sms, 0, sms1_krfm, smsj, sms_state, sms1krfm, "Samsung", "Gam*Boy I - FM (Korea)", MACHINE_SUPPORTS_SAVE )
+CONS( 19??, sms1kr, sms, 0, sms1_kr, smsj, sms_state, sms1kr, "Samsung", "Gam*Boy I (Korea)", MACHINE_SUPPORTS_SAVE )
+CONS( 1991, smskr, sms, 0, sms2_kr, sms, sms_state, smskr, "Samsung", "Gam*Boy II (Korea)", MACHINE_SUPPORTS_SAVE )
+
+CONS( 1991, gamegear, 0, sms, gamegear, gg, sms_state, gamegear, "Sega", "Game Gear (Europe/America)", MACHINE_SUPPORTS_SAVE )
+CONS( 1990, gamegeaj, gamegear, 0, gamegear, gg, sms_state, gamegeaj, "Sega", "Game Gear (Japan)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/smsmcorp.c b/src/mame/drivers/smsmcorp.c
index a99d68b16a2..783a68c2b2e 100644
--- a/src/mame/drivers/smsmcorp.c
+++ b/src/mame/drivers/smsmcorp.c
@@ -247,7 +247,6 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- DECLARE_PALETTE_INIT(smsmfg);
DECLARE_MACHINE_START(sureshot);
UINT32 screen_update_sms(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
@@ -472,16 +471,6 @@ UINT32 smsmfg_state::screen_update_sms(screen_device &screen, bitmap_ind16 &bitm
return 0;
}
-PALETTE_INIT_MEMBER(smsmfg_state, smsmfg)
-{
- int i;
-
- for (i = 0; i < 8; i++ )
- {
- palette.set_pen_color(i, rgb_t(pal1bit(i >> 2), pal1bit(i >> 1), pal1bit(i)));
- }
-}
-
/*************************************
*
* Memory maps
@@ -572,8 +561,7 @@ static MACHINE_CONFIG_START( sms, smsmfg_state )
MCFG_SCREEN_UPDATE_DRIVER(smsmfg_state, screen_update_sms)
MCFG_SCREEN_PALETTE("palette")
- MCFG_PALETTE_ADD("palette", 8)
- MCFG_PALETTE_INIT_OWNER(smsmfg_state, smsmfg)
+ MCFG_PALETTE_ADD_3BIT_BGR("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -919,7 +907,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)", GAME_SUPPORTS_SAVE ) /* Version Trivia-1-050185 */
-GAME( 1984, trvhanga, 0, sms, sms, driver_device, 0, ROT0, "SMS Manufacturing Corp.", "Trivia Hangup (question set 2)", GAME_NOT_WORKING ) /* Version Trivia-2-011586 */
-GAME( 1985, sureshot, 0, sureshot, sms, driver_device, 0, ROT0, "SMS Manufacturing Corp.", "Sure Shot", GAME_SUPPORTS_SAVE )
-GAME( 1985, secondch, 0, sureshot, sms, driver_device, 0, ROT0, "SMS Manufacturing Corp.", "Second Chance", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/snes.c b/src/mame/drivers/snes.c
index 7e5fd304f5b..0032bfbf997 100644
--- a/src/mess/drivers/snes.c
+++ b/src/mame/drivers/snes.c
@@ -1392,5 +1392,5 @@ 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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-CONS( 1991, snespal, snes, 0, snespal, snes, driver_device, 0, "Nintendo", "Super Nintendo Entertainment System (PAL)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/snesb.c b/src/mame/drivers/snesb.c
index 10aa371c1ba..43c045b249d 100644
--- a/src/mame/drivers/snesb.c
+++ b/src/mame/drivers/snesb.c
@@ -1097,9 +1097,9 @@ ROM_END
-GAME( 199?, kinstb, 0, kinstb, kinstb, snesb_state, kinstb, ROT0, "bootleg", "Killer Instinct (SNES bootleg)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, ffight2b, 0, ffight2b, ffight2b, snesb_state, ffight2b, ROT0, "bootleg", "Final Fight 2 (SNES bootleg)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, iron, 0, kinstb, iron, snesb_state, iron, ROT0, "bootleg", "Iron (SNES bootleg)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, denseib, 0, kinstb, denseib, snesb_state, denseib, ROT0, "bootleg", "Ghost Chaser Densei (SNES bootleg)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, sblast2b, 0, kinstb, sblast2b, snesb_state, sblast2b, ROT0, "bootleg", "Sonic Blast Man 2 Special Turbo (SNES bootleg)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS)
-GAME( 1996, endless, 0, kinstb, endless, snesb_state, endless, ROT0, "bootleg", "Gundam Wing: Endless Duel (SNES bootleg)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
+GAME( 199?, kinstb, 0, kinstb, kinstb, snesb_state, kinstb, ROT0, "bootleg", "Killer Instinct (SNES bootleg)", 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( 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 )
diff --git a/src/mame/drivers/snk6502.c b/src/mame/drivers/snk6502.c
index e93980ffcf6..42aada4d580 100644
--- a/src/mame/drivers/snk6502.c
+++ b/src/mame/drivers/snk6502.c
@@ -1587,21 +1587,21 @@ ROM_END
*
*************************************/
-GAME( 1980, sasuke, 0, sasuke, sasuke, driver_device, 0, ROT90, "SNK", "Sasuke vs. Commander", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1981, satansat, 0, satansat, satansat, driver_device, 0, ROT90, "SNK", "Satan of Saturn (set 1)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1981, satansata,satansat, satansat, satansat, driver_device, 0, ROT90, "SNK", "Satan of Saturn (set 2)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1981, zarzon, satansat, satansat, satansat, driver_device, 0, ROT90, "SNK (Taito America license)", "Zarzon", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1981, satansatind,satansat,satansat,satansat, driver_device, 0, ROT90, "bootleg (Inder S.A.)", "Satan of Saturn (Inder S.A., bootleg)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1981, vanguard, 0, vanguard, vanguard, driver_device, 0, ROT90, "SNK", "Vanguard (SNK)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1981, vanguardc,vanguard, vanguard, vanguard, driver_device, 0, ROT90, "SNK (Centuri license)", "Vanguard (Centuri)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1981, vanguardj,vanguard, vanguard, vanguard, driver_device, 0, ROT90, "SNK", "Vanguard (Japan)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1981, fantasy, 0, fantasy, fantasy, driver_device, 0, ROT90, "SNK", "Fantasy (World)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1981, fantasyu, fantasy, fantasy, fantasyu, driver_device, 0, ROT90, "SNK (Rock-Ola license)", "Fantasy (US)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1981, fantasyj, fantasy, fantasy, fantasyu, driver_device, 0, ROT90, "SNK", "Fantasy (Japan)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1982, pballoon, 0, pballoon, pballoon, driver_device, 0, ROT90, "SNK", "Pioneer Balloon", GAME_SUPPORTS_SAVE )
-GAME( 1982, pballoonr,pballoon, pballoon, pballoon, driver_device, 0, ROT90, "SNK (Rock-Ola license)", "Pioneer Balloon (Rock-Ola license)", GAME_SUPPORTS_SAVE )
-GAME( 1982, nibbler, 0, nibbler, nibbler, driver_device, 0, ROT90, "Rock-Ola", "Nibbler (rev 9)", GAME_SUPPORTS_SAVE )
-GAME( 1982, nibbler8, nibbler, nibbler, nibbler8, driver_device, 0, ROT90, "Rock-Ola", "Nibbler (rev 8)", GAME_SUPPORTS_SAVE )
-GAME( 1982, nibbler6, nibbler, nibbler, nibbler6, driver_device, 0, ROT90, "Rock-Ola", "Nibbler (rev 6)", GAME_SUPPORTS_SAVE )
-GAME( 1982, nibblerp, nibbler, nibbler, nibbler6, driver_device, 0, ROT90, "Rock-Ola", "Nibbler (Pioneer Balloon conversion)", GAME_SUPPORTS_SAVE )
-GAME( 1983, nibblero, nibbler, nibbler, nibbler8, driver_device, 0, ROT90, "Rock-Ola (Olympia license)", "Nibbler (Olympia - rev 8)", GAME_SUPPORTS_SAVE )
+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 (World)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+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, nibbler6, nibbler, nibbler, nibbler6, driver_device, 0, ROT90, "Rock-Ola", "Nibbler (rev 6)", 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 )
diff --git a/src/mame/drivers/snk68.c b/src/mame/drivers/snk68.c
index 351dde82014..42c43676a5c 100644
--- a/src/mame/drivers/snk68.c
+++ b/src/mame/drivers/snk68.c
@@ -1063,16 +1063,16 @@ ROM_END
/******************************************************************************/
-GAME( 1988, pow, 0, pow, pow, driver_device, 0, ROT0, "SNK", "P.O.W. - Prisoners of War (US version 1)", GAME_SUPPORTS_SAVE )
-GAME( 1988, powj, pow, pow, powj, driver_device, 0, ROT0, "SNK", "Datsugoku - Prisoners of War (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1989, streetsm, 0, pow, streetsm, driver_device, 0, ROT0, "SNK", "Street Smart (US version 2)", GAME_SUPPORTS_SAVE )
-GAME( 1989, streetsm1, streetsm, searchar, streetsm, driver_device, 0, ROT0, "SNK", "Street Smart (US version 1)", GAME_SUPPORTS_SAVE )
-GAME( 1989, streetsmw, streetsm, searchar, streetsj, driver_device, 0, ROT0, "SNK", "Street Smart (World version 1)", GAME_SUPPORTS_SAVE )
-GAME( 1989, streetsmj, streetsm, searchar, streetsj, driver_device, 0, ROT0, "SNK", "Street Smart (Japan version 1)", GAME_SUPPORTS_SAVE )
-GAME( 1989, ikari3, 0, searchar, ikari3, driver_device, 0, ROT0, "SNK", "Ikari III - The Rescue (World, 8-Way Joystick)", GAME_SUPPORTS_SAVE )
-GAME( 1989, ikari3u, ikari3, searchar, ikari3, driver_device, 0, ROT0, "SNK", "Ikari III - The Rescue (US, Rotary Joystick)", GAME_SUPPORTS_SAVE )
-GAME( 1989, ikari3j, ikari3, searchar, ikari3, driver_device, 0, ROT0, "SNK", "Ikari Three (Japan, Rotary Joystick)", GAME_SUPPORTS_SAVE )
-GAME( 1989, ikari3k, ikari3, searchar, ikari3, driver_device, 0, ROT0, "SNK", "Ikari Three (Korea, 8-Way Joystick)", GAME_SUPPORTS_SAVE )
-GAME( 1989, searchar, 0, searchar, searchar, driver_device, 0, ROT90, "SNK", "SAR - Search And Rescue (World)", GAME_SUPPORTS_SAVE )
-GAME( 1989, searcharu, searchar, searchar, searchar, driver_device, 0, ROT90, "SNK", "SAR - Search And Rescue (US)", GAME_SUPPORTS_SAVE )
-GAME( 1989, searcharj, searchar, searchar, searchar, driver_device, 0, ROT90, "SNK", "SAR - Search And Rescue (Japan)", GAME_SUPPORTS_SAVE )
+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, pow, 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 )
diff --git a/src/mame/drivers/snowbros.c b/src/mame/drivers/snowbros.c
index 0da2ca54e44..dc0d2c93b44 100644
--- a/src/mame/drivers/snowbros.c
+++ b/src/mame/drivers/snowbros.c
@@ -2703,45 +2703,45 @@ DRIVER_INIT_MEMBER(snowbros_state, hyperpac)
}
-GAME( 1990, snowbros, 0, snowbros, snowbros, driver_device, 0, ROT0, "Toaplan", "Snow Bros. - Nick & Tom (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1990, snowbrosa, snowbros, snowbros, snowbros, driver_device, 0, ROT0, "Toaplan", "Snow Bros. - Nick & Tom (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1990, snowbrosb, snowbros, snowbros, snowbros, driver_device, 0, ROT0, "Toaplan", "Snow Bros. - Nick & Tom (set 3)", GAME_SUPPORTS_SAVE )
-GAME( 1990, snowbrosc, snowbros, snowbros, snowbros, driver_device, 0, ROT0, "Toaplan", "Snow Bros. - Nick & Tom (set 4)", GAME_SUPPORTS_SAVE )
-GAME( 1990, snowbrosj, snowbros, snowbros, snowbroj, driver_device, 0, ROT0, "Toaplan", "Snow Bros. - Nick & Tom (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1990, snowbrosd, snowbros, snowbros, snowbroj, driver_device, 0, ROT0, "Toaplan (Dooyong license)", "Snow Bros. - Nick & Tom (Dooyong license)", GAME_SUPPORTS_SAVE )
-GAME( 1990, wintbob, snowbros, wintbob, snowbros, driver_device, 0, ROT0, "bootleg (Sakowa Project Korea)", "The Winter Bobble (bootleg of Snow Bros.)", GAME_SUPPORTS_SAVE )
-GAME( 1990, snowbroswb,snowbros, wintbob, snowbros, driver_device, 0, ROT0, "bootleg", "Snow Bros. - Nick & Tom (The Winter Bobble hardware bootleg)", GAME_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, 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( 1996, toto, 0, snowbros, snowbros, snowbros_state, toto, ROT0, "SoftClub", "Come Back Toto", GAME_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", GAME_SUPPORTS_SAVE )
-GAME( 1995, hyperpac, 0, semicom_mcu, hyperpac, snowbros_state, hyperpac, ROT0, "SemiCom", "Hyper Pacman", GAME_SUPPORTS_SAVE )
-GAME( 1995, hyperpacb,hyperpac, semicom, hyperpac, driver_device, 0, ROT0, "bootleg", "Hyper Pacman (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1996, cookbib2, 0, semiprot, cookbib2, snowbros_state, cookbib2, ROT0, "SemiCom", "Cookie & Bibi 2", GAME_SUPPORTS_SAVE )
-GAME( 1996, toppyrap, 0, semiprot, toppyrap, driver_device, 0, ROT0, "SemiCom", "Toppy & Rappy", GAME_SUPPORTS_SAVE )
-GAME( 1997, cookbib3, 0, semiprot, cookbib3, snowbros_state, cookbib3, ROT0, "SemiCom", "Cookie & Bibi 3", GAME_SUPPORTS_SAVE )
-GAME( 1997, pzlbreak, 0, semiprot, pzlbreak, snowbros_state, pzlbreak, ROT0, "SemiCom / Tirano", "Puzzle Break", GAME_SUPPORTS_SAVE )
-GAME( 1997, suhosong, 0, semiprot, suhosong, driver_device, 0, ROT0, "SemiCom", "Su Ho Seong", GAME_SUPPORTS_SAVE )
-GAME( 1997, twinkle, 0, semiprot, twinkle, driver_device, 0, ROT0, "SemiCom / Tirano", "Twinkle", GAME_SUPPORTS_SAVE )
-GAME( 1998, 3in1semi, 0, semiprot, moremore, snowbros_state, 3in1semi, ROT0, "SemiCom / XESS", "New HyperMan (3-in-1 with Cookie & Bibi & HyperMan)", GAME_SUPPORTS_SAVE )
-GAME( 1999, mcheonru, 0, semiprot, mcheonru, snowbros_state, 3in1semi, ROT0, "SemiCom / AceVer", "Ma Cheon Ru", GAME_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", GAME_SUPPORTS_SAVE )
-GAME( 1999, moremorp, 0, semiprot, moremore, snowbros_state, 3in1semi, ROT0, "SemiCom / Exit", "More More Plus", GAME_SUPPORTS_SAVE )
+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 )
// 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.)" , GAME_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", GAME_SUPPORTS_SAVE ) // based on snowbros code..
+GAME( 1995, honeydol, 0, honeydol, honeydol, driver_device, 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)", GAME_SUPPORTS_SAVE )
-GAME( 1995, twinadvk, twinadv, twinadv, twinadv, driver_device, 0, ROT0, "Barko Corp.", "Twin Adventure (Korea)", GAME_SUPPORTS_SAVE )
+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 )
// 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", GAME_IMPERFECT_SOUND | GAME_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", GAME_IMPERFECT_SOUND | GAME_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 )
diff --git a/src/mess/drivers/socrates.c b/src/mame/drivers/socrates.c
index fbc619e5023..ddf88ddc002 100644
--- a/src/mess/drivers/socrates.c
+++ b/src/mame/drivers/socrates.c
@@ -867,7 +867,7 @@ WRITE8_MEMBER( iqunlim_state::video_regs_w )
{
rectangle visarea = m_screen->visible_area();
visarea.set(0, (data & 0x02 ? 496 : 256) - 1, 0, 224 - 1);
- m_screen->configure(data & 0x02 ? 496 : 256 , 224, visarea, m_screen->frame_period().attoseconds);
+ m_screen->configure(data & 0x02 ? 496 : 256 , 224, visarea, m_screen->frame_period().attoseconds());
}
m_video_regs[offset] = data;
@@ -1578,10 +1578,10 @@ ROM_END
******************************************************************************/
/* 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", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND ) // English NTSC, no title copyright
-COMP( 1988, socratfc, socrates, 0, socrates, socrates, socrates_state, socrates, "Video Technology", "Socrates SAITOUT", GAME_NOT_WORKING | GAME_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", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND ) // German PAL, 1988 title copyright
+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)", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1991, iqunlimz, 0, 0, iqunlimz, iqunlimz, driver_device, 0, "Video Technology", "IQ Unlimited (Z80)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/softbox.c b/src/mame/drivers/softbox.c
index 38a05fdb0d0..5aebe330dd4 100644
--- a/src/mess/drivers/softbox.c
+++ b/src/mame/drivers/softbox.c
@@ -12,7 +12,7 @@
The SoftBox can be used as a standalone computer with an RS-232 terminal,
or as a PET/CBM peripheral. This is an emulation of the standalone mode.
- For the peripheral mode, see: src/emu/bus/ieee488/softbox.c.
+ For the peripheral mode, see: src/devices/bus/ieee488/softbox.c.
Using the Corvus hard disk
@@ -27,7 +27,7 @@
Start the SoftBox emulator with the floppy and hard disk images mounted:
- $ mess softbox -flop1 /path/to/softbox-distrib.d80 \
+ $ mame softbox -flop1 /path/to/softbox-distrib.d80 \
-hard1 /path/to/corvus10mb.chd
Before the Corvus can be used under CP/M, it must be prepared
@@ -78,7 +78,7 @@
The SoftBox supports 5, 10, and 20 MB hard disks. The distribution disk
is configured for 10 MB as explained above. To use other sizes, make
- a new image with CHDMAN. See the top of src/emu/machine/corvushd.h
+ a new image with CHDMAN. See the top of src/devices/machine/corvushd.h
for the parameters for the other drives.
After the image has been created and the SoftBox emulator started with
@@ -447,4 +447,4 @@ ROM_END
//**************************************************************************
// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS
-COMP( 1981, softbox, 0, 0, softbox, softbox, driver_device, 0, "Small Systems Engineering", "SoftBox", GAME_NO_SOUND_HW )
+COMP( 1981, softbox, 0, 0, softbox, softbox, driver_device, 0, "Small Systems Engineering", "SoftBox", MACHINE_NO_SOUND_HW )
diff --git a/src/mame/drivers/solomon.c b/src/mame/drivers/solomon.c
index 046e55e0278..26de2ecfbb8 100644
--- a/src/mame/drivers/solomon.c
+++ b/src/mame/drivers/solomon.c
@@ -301,5 +301,5 @@ ROM_END
-GAME( 1986, solomon, 0, solomon, solomon, driver_device, 0, ROT0, "Tecmo", "Solomon's Key (US)", GAME_SUPPORTS_SAVE )
-GAME( 1986, solomonj, solomon, solomon, solomon, driver_device, 0, ROT0, "Tecmo", "Solomon no Kagi (Japan)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/sonson.c b/src/mame/drivers/sonson.c
index 0011d8df1f8..ff280dd58a7 100644
--- a/src/mame/drivers/sonson.c
+++ b/src/mame/drivers/sonson.c
@@ -343,5 +343,5 @@ ROM_START( sonsonj )
ROM_END
-GAME( 1984, sonson, 0, sonson, sonson, driver_device, 0, ROT0, "Capcom", "Son Son", GAME_SUPPORTS_SAVE )
-GAME( 1984, sonsonj, sonson, sonson, sonson, driver_device, 0, ROT0, "Capcom", "Son Son (Japan)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/sorcerer.c b/src/mame/drivers/sorcerer.c
index c2e810de539..bff2e0820a2 100644
--- a/src/mess/drivers/sorcerer.c
+++ b/src/mame/drivers/sorcerer.c
@@ -199,112 +199,112 @@ static INPUT_PORTS_START(sorcerer)
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_CUSTOM) PORT_VBLANK("screen")
/* line 0 */
- PORT_START("X0")
+ PORT_START("X.0")
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Shift") PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1)
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Shift Lock") PORT_CODE(KEYCODE_CAPSLOCK) PORT_TOGGLE
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Control") PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(KEYCODE_RCONTROL) PORT_CHAR(UCHAR_SHIFT_2)
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Graphic") PORT_CODE(KEYCODE_F1)
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Stop") PORT_CODE(KEYCODE_ESC) PORT_CHAR(27)
/* line 1 */
- PORT_START("X1")
+ PORT_START("X.1")
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("(Sel)") PORT_CODE(KEYCODE_F2) PORT_CHAR(27)
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Skip") PORT_CODE(KEYCODE_TAB) PORT_CHAR(9)
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Space") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ')
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Repeat") PORT_CODE(KEYCODE_F4)
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Clear") PORT_CODE(KEYCODE_F5) PORT_CHAR(12)
/* line 2 */
- PORT_START("X2")
+ PORT_START("X.2")
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1") PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!')
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q) PORT_CHAR('Q') PORT_CHAR('q') PORT_CHAR(0x11)
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_A) PORT_CHAR('A') PORT_CHAR('a') PORT_CHAR(0x01)
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Z) PORT_CHAR('Z') PORT_CHAR('z') PORT_CHAR(0x1a)
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("X") PORT_CODE(KEYCODE_X) PORT_CHAR('X') PORT_CHAR('x') PORT_CHAR(0x18)
/* line 3 */
- PORT_START("X3")
+ PORT_START("X.3")
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2") PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('\"')
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("W") PORT_CODE(KEYCODE_W) PORT_CHAR('W') PORT_CHAR('w') PORT_CHAR(0x17)
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("S") PORT_CODE(KEYCODE_S) PORT_CHAR('S') PORT_CHAR('s') PORT_CHAR(0x13)
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D) PORT_CHAR('D') PORT_CHAR('d') PORT_CHAR(0x04)
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("C") PORT_CODE(KEYCODE_C) PORT_CHAR('C') PORT_CHAR('c') PORT_CHAR(0x03)
/* line 4 */
- PORT_START("X4")
+ PORT_START("X.4")
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3") PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#')
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4") PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$')
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E) PORT_CHAR('E') PORT_CHAR('e') PORT_CHAR(0x05)
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("R") PORT_CODE(KEYCODE_R) PORT_CHAR('R') PORT_CHAR('r') PORT_CHAR(0x12)
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F") PORT_CODE(KEYCODE_F) PORT_CHAR('F') PORT_CHAR('f') PORT_CHAR(0x06)
/* line 5 */
- PORT_START("X5")
+ PORT_START("X.5")
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5") PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%')
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("T") PORT_CODE(KEYCODE_T) PORT_CHAR('T') PORT_CHAR('t') PORT_CHAR(0x14)
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G") PORT_CODE(KEYCODE_G) PORT_CHAR('G') PORT_CHAR('g') PORT_CHAR(0x07)
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("V") PORT_CODE(KEYCODE_V) PORT_CHAR('V') PORT_CHAR('v') PORT_CHAR(0x16)
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B) PORT_CHAR('B') PORT_CHAR('b') PORT_CHAR(0x02)
/* line 6 */
- PORT_START("X6")
+ PORT_START("X.6")
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6") PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&')
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Y) PORT_CHAR('Y') PORT_CHAR('y') PORT_CHAR(0x19)
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_H) PORT_CHAR('H') PORT_CHAR('h') PORT_CHAR(0x08)
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("N") PORT_CODE(KEYCODE_N) PORT_CHAR('N') PORT_CHAR('n') PORT_CHAR(0x0e)
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("M") PORT_CODE(KEYCODE_M) PORT_CHAR('M') PORT_CHAR('m') PORT_CHAR(0x0d)
/* line 7 */
- PORT_START("X7")
+ PORT_START("X.7")
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7") PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'')
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("U") PORT_CODE(KEYCODE_U) PORT_CHAR('U') PORT_CHAR('u') PORT_CHAR(0x15)
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J) PORT_CHAR('J') PORT_CHAR('j') PORT_CHAR(0x0a)
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("I") PORT_CODE(KEYCODE_I) PORT_CHAR('I') PORT_CHAR('i') PORT_CHAR(0x09)
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("K") PORT_CODE(KEYCODE_K) PORT_CHAR('K') PORT_CHAR('k') PORT_CHAR(0x0b)
/* line 8 */
- PORT_START("X8")
+ PORT_START("X.8")
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8") PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(')
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9") PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')')
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("O") PORT_CODE(KEYCODE_O) PORT_CHAR('O') PORT_CHAR('o') PORT_CHAR(0x0f)
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("L") PORT_CODE(KEYCODE_L) PORT_CHAR('L') PORT_CHAR('l') PORT_CHAR(0x0c)
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(",") PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<')
/* line 9 */
- PORT_START("X9")
+ PORT_START("X.9")
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0) PORT_CHAR('0')
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("P") PORT_CODE(KEYCODE_P) PORT_CHAR('P') PORT_CHAR('p') PORT_CHAR(0x10)
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("; +") PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR('+')
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(". >") PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>')
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("/ ?") PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?')
/* line 10 */
- PORT_START("XA")
+ PORT_START("X.10")
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(": *") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(':') PORT_CHAR('*')
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("[ {") PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('[') PORT_CHAR('{')
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("] }") PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(']') PORT_CHAR('}')
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("@ `") PORT_CODE(KEYCODE_F7) PORT_CHAR('@') PORT_CHAR('`')
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\\ |") PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('\\') PORT_CHAR('|')
/* line 11 */
- PORT_START("XB")
+ PORT_START("X.11")
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("- =") PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('=')
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("^ ~") PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('^') PORT_CHAR('~')
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("LINE FEED") PORT_CODE(KEYCODE_F6) PORT_CHAR(10)
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("RETURN") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_CHAR(13)
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("_ Rub") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR('_') PORT_CHAR(8)
/* line 12 */
- PORT_START("XC")
+ PORT_START("X.12")
PORT_BIT(0x10, 0x10, IPT_UNUSED)
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("- (PAD)") PORT_CODE(KEYCODE_MINUS_PAD) PORT_CHAR(UCHAR_MAMEKEY(MINUS_PAD))
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("/ (PAD)") PORT_CODE(KEYCODE_SLASH_PAD)
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("* (PAD)") PORT_CODE(KEYCODE_ASTERISK)
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("+ (PAD)") PORT_CODE(KEYCODE_PLUS_PAD) PORT_CHAR(UCHAR_MAMEKEY(PLUS_PAD))
/* line 13 */
- PORT_START("XD")
+ PORT_START("X.13")
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7 (PAD)") PORT_CODE(KEYCODE_7_PAD) PORT_CHAR(UCHAR_MAMEKEY(7_PAD))
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8 (PAD)") PORT_CODE(KEYCODE_8_PAD) PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) PORT_CHAR(UCHAR_MAMEKEY(8_PAD))
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4 (PAD)") PORT_CODE(KEYCODE_4_PAD) PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) PORT_CHAR(UCHAR_MAMEKEY(4_PAD))
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1 (PAD)") PORT_CODE(KEYCODE_1_PAD) PORT_CHAR(UCHAR_MAMEKEY(1_PAD))
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0 (PAD)") PORT_CODE(KEYCODE_0_PAD) PORT_CHAR(UCHAR_MAMEKEY(0_PAD))
/* line 14 */
- PORT_START("XE")
+ PORT_START("X.14")
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9 (PAD)") PORT_CODE(KEYCODE_9_PAD) PORT_CHAR(UCHAR_MAMEKEY(9_PAD))
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6 (PAD)") PORT_CODE(KEYCODE_6_PAD) PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) PORT_CHAR(UCHAR_MAMEKEY(6_PAD))
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5 (PAD)") PORT_CODE(KEYCODE_5_PAD) PORT_CHAR(UCHAR_MAMEKEY(5_PAD))
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2 (PAD)") PORT_CODE(KEYCODE_2_PAD) PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) PORT_CHAR(UCHAR_MAMEKEY(2_PAD))
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(". (PAD)") PORT_CODE(KEYCODE_DEL_PAD) PORT_CHAR(UCHAR_MAMEKEY(DEL_PAD))
/* line 15 */
- PORT_START("XF")
+ PORT_START("X.15")
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3 (PAD)") PORT_CODE(KEYCODE_3_PAD) PORT_CHAR(UCHAR_MAMEKEY(3_PAD))
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("= (PAD)") PORT_CODE(KEYCODE_NUMLOCK)
PORT_BIT(0x04, 0x04, IPT_UNUSED)
diff --git a/src/mame/drivers/sothello.c b/src/mame/drivers/sothello.c
index 17d0684ed44..3c42c552d4c 100644
--- a/src/mame/drivers/sothello.c
+++ b/src/mame/drivers/sothello.c
@@ -53,7 +53,9 @@ public:
m_maincpu(*this, "maincpu"),
m_soundcpu(*this, "soundcpu"),
m_subcpu(*this, "sub"),
- m_msm(*this, "msm") { }
+ m_msm(*this, "msm"),
+ m_bank1(*this, "bank1")
+ { }
required_device<v9938_device> m_v9938;
@@ -78,7 +80,6 @@ public:
virtual void machine_reset();
TIMER_CALLBACK_MEMBER(subcpu_suspend);
TIMER_CALLBACK_MEMBER(subcpu_resume);
- TIMER_DEVICE_CALLBACK_MEMBER(sothello_interrupt);
DECLARE_WRITE_LINE_MEMBER(irqhandler);
DECLARE_WRITE_LINE_MEMBER(adpcm_int);
DECLARE_WRITE_LINE_MEMBER(sothello_vdp_interrupt);
@@ -87,11 +88,13 @@ public:
required_device<cpu_device> m_soundcpu;
required_device<cpu_device> m_subcpu;
required_device<msm5205_device> m_msm;
+ required_memory_bank m_bank1;
};
#define VDP_MEM 0x40000
+#define MAIN_CLOCK (XTAL_21_4772MHz)
#define MAINCPU_CLOCK (XTAL_21_4772MHz/6)
#define SOUNDCPU_CLOCK (XTAL_21_4772MHz/6)
#define YM_CLOCK (XTAL_21_4772MHz/12)
@@ -103,7 +106,7 @@ public:
void sothello_state::machine_start()
{
- membank("bank1")->configure_entries(0, 4, memregion("maincpu")->base() + 0x8000, 0x4000);
+ m_bank1->configure_entries(0, 4, memregion("maincpu")->base() + 0x8000, 0x4000);
}
WRITE8_MEMBER(sothello_state::bank_w)
@@ -116,7 +119,7 @@ WRITE8_MEMBER(sothello_state::bank_w)
case 4: bank=2; break;
case 8: bank=3; break;
}
- membank("bank1")->set_entry(bank);
+ m_bank1->set_entry(bank);
}
TIMER_CALLBACK_MEMBER(sothello_state::subcpu_suspend)
@@ -335,11 +338,6 @@ WRITE_LINE_MEMBER(sothello_state::sothello_vdp_interrupt)
m_maincpu->set_input_line(0, (state ? HOLD_LINE : CLEAR_LINE));
}
-TIMER_DEVICE_CALLBACK_MEMBER(sothello_state::sothello_interrupt)
-{
- m_v9938->interrupt();
-}
-
WRITE_LINE_MEMBER(sothello_state::adpcm_int)
{
/* only 4 bits are used */
@@ -357,7 +355,6 @@ static MACHINE_CONFIG_START( sothello, sothello_state )
MCFG_CPU_ADD("maincpu",Z80, MAINCPU_CLOCK)
MCFG_CPU_PROGRAM_MAP(maincpu_mem_map)
MCFG_CPU_IO_MAP(maincpu_io_map)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", sothello_state, sothello_interrupt, "screen", 0, 1)
MCFG_CPU_ADD("soundcpu",Z80, SOUNDCPU_CLOCK)
MCFG_CPU_PROGRAM_MAP(soundcpu_mem_map)
@@ -369,16 +366,9 @@ static MACHINE_CONFIG_START( sothello, sothello_state )
MCFG_QUANTUM_TIME(attotime::from_hz(600))
/* video hardware */
- MCFG_V9938_ADD("v9938", "screen", VDP_MEM)
+ MCFG_V9938_ADD("v9938", "screen", VDP_MEM, MAIN_CLOCK)
MCFG_V99X8_INTERRUPT_CALLBACK(WRITELINE(sothello_state,sothello_vdp_interrupt))
-
- MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_UPDATE_DEVICE("v9938", v9938_device, screen_update)
- MCFG_SCREEN_SIZE(512 + 32, (212 + 28) * 2)
- MCFG_SCREEN_VISIBLE_AREA(0, 512 + 32 - 1, 0, (212 + 28) * 2 - 1)
- MCFG_SCREEN_PALETTE("v9938:palette")
+ MCFG_V99X8_SCREEN_ADD_NTSC("screen", "v9938", MAIN_CLOCK)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/spacefb.c b/src/mame/drivers/spacefb.c
index 6dfb2178091..34af4522f99 100644
--- a/src/mame/drivers/spacefb.c
+++ b/src/mame/drivers/spacefb.c
@@ -604,12 +604,12 @@ ROM_END
*
*************************************/
-GAME( 1980, spacefb, 0, spacefb, spacefb, driver_device, 0, ROT270, "Nintendo", "Space Firebird (rev. 04-u)", GAME_IMPERFECT_COLORS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, spacefbe, spacefb, spacefb, spacefb, driver_device, 0, ROT270, "Nintendo", "Space Firebird (rev. 03-e set 1)", GAME_IMPERFECT_COLORS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, spacefbe2,spacefb, spacefb, spacefb, driver_device, 0, ROT270, "Nintendo", "Space Firebird (rev. 03-e set 2)", GAME_IMPERFECT_COLORS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, spacefba, spacefb, spacefb, spacefb, driver_device, 0, ROT270, "Nintendo", "Space Firebird (rev. 02-a)", GAME_IMPERFECT_COLORS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, spacefbg, spacefb, spacefb, spacefb, driver_device, 0, ROT270, "Nintendo (Gremlin license)", "Space Firebird (Gremlin)", GAME_IMPERFECT_COLORS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, spacebrd, spacefb, spacefb, spacefb, driver_device, 0, ROT270, "bootleg (Karateco)", "Space Bird (bootleg)", GAME_IMPERFECT_COLORS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, spacefbb, spacefb, spacefb, spacefb, driver_device, 0, ROT270, "bootleg", "Space Firebird (bootleg)", GAME_IMPERFECT_COLORS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, spacedem, spacefb, spacefb, spacedem, driver_device, 0, ROT270, "Nintendo (Fortrek license)", "Space Demon", GAME_IMPERFECT_COLORS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, starwarr, spacefb, spacefb, spacefb, driver_device, 0, ROT270, "bootleg? (Potomac Mortgage)", "Star Warrior", GAME_IMPERFECT_COLORS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/spaceg.c b/src/mame/drivers/spaceg.c
index a7ce8cf8662..e7b81a0ac7b 100644
--- a/src/mame/drivers/spaceg.c
+++ b/src/mame/drivers/spaceg.c
@@ -481,4 +481,4 @@ ROM_END
*
*************************************/
-GAME( 1979, spaceg, 0, spaceg, spaceg, driver_device, 0, ROT270, "Omori Electric Co., Ltd.", "Space Guerrilla", GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1979, spaceg, 0, spaceg, spaceg, driver_device, 0, ROT270, "Omori Electric Co., Ltd.", "Space Guerrilla", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/spbactn.c b/src/mame/drivers/spbactn.c
index e05ddd35483..c8060bdbfff 100644
--- a/src/mame/drivers/spbactn.c
+++ b/src/mame/drivers/spbactn.c
@@ -592,6 +592,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)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1991, spbactnj, spbactn, spbactn, spbactn, driver_device, 0, ROT90, "Tecmo", "Super Pinball Action (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1989, spbactnp, spbactn, spbactnp, spbactn, driver_device, 0, ROT90, "Tecmo", "Super Pinball Action (prototype)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // early proto, (c) date is 2 years earlier!
+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!
diff --git a/src/mess/drivers/spc1000.c b/src/mame/drivers/spc1000.c
index d8f49a029e6..e69561163c6 100644
--- a/src/mess/drivers/spc1000.c
+++ b/src/mame/drivers/spc1000.c
@@ -519,4 +519,4 @@ 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", GAME_NOT_WORKING )
+COMP( 1982, spc1000, 0, 0, spc1000, spc1000, driver_device, 0, "Samsung", "SPC-1000", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/spcforce.c b/src/mame/drivers/spcforce.c
index ec746d2f97b..e6fb1fd93be 100644
--- a/src/mame/drivers/spcforce.c
+++ b/src/mame/drivers/spcforce.c
@@ -119,6 +119,13 @@ static ADDRESS_MAP_START( spcforce_map, AS_PROGRAM, 8, spcforce_state )
AM_RANGE(0xa000, 0xa3ff) AM_RAM AM_SHARE("scrollram")
ADDRESS_MAP_END
+static ADDRESS_MAP_START( meteors_map, AS_PROGRAM, 8, spcforce_state )
+ AM_RANGE(0x700b, 0x700b) AM_WRITENOP
+ AM_RANGE(0x700d, 0x700d) AM_WRITE(irq_mask_w) // ??
+ AM_RANGE(0x700e, 0x700e) AM_WRITE(flip_screen_w) // irq mask isn't here, gets written too early causing the game to not boot, see startup code between sets
+ AM_IMPORT_FROM(spcforce_map)
+ADDRESS_MAP_END
+
static ADDRESS_MAP_START( spcforce_sound_map, AS_PROGRAM, 8, spcforce_state )
AM_RANGE(0x0000, 0x07ff) AM_ROM
ADDRESS_MAP_END
@@ -310,6 +317,11 @@ static MACHINE_CONFIG_START( spcforce, spcforce_state )
MCFG_SN76496_READY_HANDLER(WRITELINE(spcforce_state, write_sn3_ready))
MACHINE_CONFIG_END
+static MACHINE_CONFIG_DERIVED( meteors, spcforce )
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(meteors_map)
+MACHINE_CONFIG_END
+
/***************************************************************************
@@ -385,7 +397,31 @@ ROM_START( meteor )
ROM_LOAD( "bm2v", 0x2800, 0x0800, CRC(2858cf5c) SHA1(1313b4e4adda074499153e4a42bc2c6b41b0ec7e) )
ROM_END
+ROM_START( meteors )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "1hz1_2.1ab", 0x0000, 0x0800, CRC(86de2a63) SHA1(083a0d31f29bd9d68d240b23234645eeea57556d) )
+ ROM_LOAD( "2hz1_2.1cd", 0x0800, 0x0800, CRC(7ef2c421) SHA1(f01327748e5a2144744557cd3cef16c93076466c) )
+ ROM_LOAD( "3hz1_2.2ab", 0x1000, 0x0800, CRC(6d631f33) SHA1(4c69e3761d7db5ed6c8c23cc5e255cacfac6137f) )
+ ROM_LOAD( "4hz1_2.2cd", 0x1800, 0x0800, CRC(48cb5acc) SHA1(791f9ca0225465d7af8a2a61f617112570f529e6))
+ /*0x2000 empty */
+ ROM_LOAD( "6hz1_2.3cd", 0x2800, 0x0800, CRC(39541265) SHA1(e55eb6c826fb553123991577be4daa3c2aa236f6) )
+ ROM_LOAD( "7hz1_2.4ab", 0x3000, 0x0800, CRC(e718e807) SHA1(d8f3f66aea409c296785d66937b067f4b2c76ed4) )
+ ROM_LOAD( "mbv21_2.4cd", 0x3800, 0x0800, CRC(f805c3cd) SHA1(78eb13b99aae895742b34ed56bee9313d3643de1) )
+
+ ROM_REGION( 0x1000, "audiocpu", 0 ) /* sound MCU */
+ ROM_LOAD( "vms.10l", 0x0000, 0x0800, CRC(b14ccd57) SHA1(0349ec5d0ca7f98ffdd96d7bf01cf096fe547f7a))
+
+ ROM_REGION( 0x3000, "gfx1", 0 )
+ ROM_LOAD( "rm1h1_2.6st", 0x0000, 0x0800, CRC(409fef31) SHA1(7260e06fa654d54f3660712a63f8db8c28b872c9) )
+ ROM_LOAD( "rm2h1_2.7st", 0x0800, 0x0800, CRC(b3981251) SHA1(b6743d121a6b3ad8e8beebe1faff2678b89e7d16) )
+ ROM_LOAD( "gm1h1_2.6pr", 0x1000, 0x0800, CRC(0b85c282) SHA1(b264c92d4b2533c18ac7831491133170a2fd400b) )
+ ROM_LOAD( "gm2h1_2.7pr", 0x1800, 0x0800, CRC(0997d945) SHA1(16eba77b14c62b2a0ebea47a28d4d5d21d7a2234) )
+ ROM_LOAD( "bm1h1_2.6nm", 0x2000, 0x0800, CRC(f9501c8e) SHA1(483d3d4c3f9601d7fcbf263bba5bdc5529b13f70) )
+ ROM_LOAD( "bm2h1_2.7nm", 0x2800, 0x0800, CRC(2858cf5c) SHA1(1313b4e4adda074499153e4a42bc2c6b41b0ec7e) )
+ROM_END
+
-GAME( 1980, spcforce, 0, spcforce, spcforce, driver_device, 0, ROT270, "Venture Line", "Space Force (set 1)", GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE )
-GAME( 19??, spcforc2, spcforce, spcforce, spcforc2, driver_device, 0, ROT270, "bootleg? (Elcon)", "Space Force (set 2)", GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE )
-GAME( 1981, meteor, spcforce, spcforce, spcforc2, driver_device, 0, ROT270, "Venture Line", "Meteoroids", GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/spdodgeb.c b/src/mame/drivers/spdodgeb.c
index add856999d4..7ff0e8c902e 100644
--- a/src/mame/drivers/spdodgeb.c
+++ b/src/mame/drivers/spdodgeb.c
@@ -574,6 +574,6 @@ ROM_END
-GAME( 1987, spdodgeb, 0, spdodgeb, spdodgeb, driver_device, 0, ROT0, "Technos Japan", "Super Dodge Ball (US)", GAME_SUPPORTS_SAVE )
-GAME( 1987, nkdodge, spdodgeb, spdodgeb, spdodgeb, driver_device, 0, ROT0, "Technos Japan", "Nekketsu Koukou Dodgeball Bu (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1987, nkdodgeb, spdodgeb, spdodgeb, spdodgeb, driver_device, 0, ROT0, "bootleg", "Nekketsu Koukou Dodgeball Bu (Japan, bootleg)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/spec128.c b/src/mame/drivers/spec128.c
index 4b36e8ddae0..0c5161f65f4 100644
--- a/src/mess/drivers/spec128.c
+++ b/src/mame/drivers/spec128.c
@@ -361,4 +361,4 @@ ROM_END
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" , GAME_NOT_WORKING )
+COMP( 1992, hc2000, spec128, 0, spectrum_128, spec_plus, driver_device, 0, "ICE-Felix", "HC-2000" , MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/special.c b/src/mame/drivers/special.c
index e424042e466..fa5c6943602 100644
--- a/src/mess/drivers/special.c
+++ b/src/mame/drivers/special.c
@@ -592,8 +592,8 @@ ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
COMP( 1985, special, 0, 0, special, special, special_state, special, "<unknown>", "Specialist", 0 )
COMP( 1985, specialm, special, 0, specialm, special, special_state, special, "<unknown>", "Specialist M", 0 )
-COMP( 1985, pioner, special, 0, special, special, special_state, special, "<unknown>", "Pioner", GAME_NOT_WORKING )
-COMP( 1985, specialp, special, 0, specialp, specialp, special_state, special, "<unknown>", "Specialist + hires graph", GAME_NOT_WORKING )
+COMP( 1985, pioner, special, 0, special, special, special_state, special, "<unknown>", "Pioner", MACHINE_NOT_WORKING )
+COMP( 1985, specialp, special, 0, specialp, specialp, special_state, special, "<unknown>", "Specialist + hires graph", MACHINE_NOT_WORKING )
COMP( 1985, lik, special, 0, special, lik, special_state, special, "<unknown>", "Lik", 0 )
COMP( 1985, specimx, special, 0, specimx, specimx, driver_device, 0, "<unknown>", "Specialist MX", 0)
COMP( 1994, erik, special, 0, erik, special, special_state, erik, "<unknown>", "Erik", 0 )
diff --git a/src/mess/drivers/specpls3.c b/src/mame/drivers/specpls3.c
index e7a653c2c09..14e428533e6 100644
--- a/src/mess/drivers/specpls3.c
+++ b/src/mame/drivers/specpls3.c
@@ -455,7 +455,7 @@ ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
COMP( 1987, specpl2a, spec128, 0, spectrum_plus3, spec_plus, spectrum_state, plus2, "Amstrad plc", "ZX Spectrum +2a" , 0 )
COMP( 1987, specpls3, spec128, 0, spectrum_plus3, spec_plus, spectrum_state, plus3, "Amstrad plc", "ZX Spectrum +3" , 0 )
-COMP( 2000, specpl3e, spec128, 0, spectrum_plus3, spec_plus, spectrum_state, plus3, "Amstrad plc", "ZX Spectrum +3e" , GAME_UNOFFICIAL )
-COMP( 2002, sp3e8bit, spec128, 0, spectrum_plus3, spec_plus, spectrum_state, plus3, "Amstrad plc", "ZX Spectrum +3e 8bit IDE" , GAME_UNOFFICIAL )
-COMP( 2002, sp3eata, spec128, 0, spectrum_plus3, spec_plus, spectrum_state, plus3, "Amstrad plc", "ZX Spectrum +3e 8bit ZXATASP" , GAME_UNOFFICIAL )
-COMP( 2002, sp3ezcf, spec128, 0, spectrum_plus3, spec_plus, spectrum_state, plus3, "Amstrad plc", "ZX Spectrum +3e 8bit ZXCF" , GAME_UNOFFICIAL )
+COMP( 2000, specpl3e, spec128, 0, spectrum_plus3, spec_plus, spectrum_state, plus3, "Amstrad plc", "ZX Spectrum +3e" , MACHINE_UNOFFICIAL )
+COMP( 2002, sp3e8bit, spec128, 0, spectrum_plus3, spec_plus, spectrum_state, plus3, "Amstrad plc", "ZX Spectrum +3e 8bit IDE" , MACHINE_UNOFFICIAL )
+COMP( 2002, sp3eata, spec128, 0, spectrum_plus3, spec_plus, spectrum_state, plus3, "Amstrad plc", "ZX Spectrum +3e 8bit ZXATASP" , MACHINE_UNOFFICIAL )
+COMP( 2002, sp3ezcf, spec128, 0, spectrum_plus3, spec_plus, spectrum_state, plus3, "Amstrad plc", "ZX Spectrum +3e 8bit ZXCF" , MACHINE_UNOFFICIAL )
diff --git a/src/mame/drivers/spectra.c b/src/mame/drivers/spectra.c
index f7da8660725..7e42afb3b37 100644
--- a/src/mame/drivers/spectra.c
+++ b/src/mame/drivers/spectra.c
@@ -271,4 +271,4 @@ ROM_START(spectra)
ROM_END
-GAME(1979, spectra, 0, spectra, spectra, driver_device, 0, ROT0, "Valley", "Spectra IV", GAME_MECHANICAL )
+GAME(1979, spectra, 0, spectra, spectra, driver_device, 0, ROT0, "Valley", "Spectra IV", MACHINE_MECHANICAL )
diff --git a/src/mess/drivers/spectrum.c b/src/mame/drivers/spectrum.c
index 762dd3bb98c..5803b8a2d52 100644
--- a/src/mess/drivers/spectrum.c
+++ b/src/mame/drivers/spectrum.c
@@ -962,17 +962,17 @@ 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, "<unknown>", "ZX Spectrum 80K" , GAME_UNOFFICIAL)
-COMP( 1995, specide, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "<unknown>", "ZX Spectrum IDE" , GAME_UNOFFICIAL)
+COMP( 1987, spec80k, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "<unknown>", "ZX Spectrum 80K" , MACHINE_UNOFFICIAL)
+COMP( 1995, specide, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "<unknown>", "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" , GAME_NOT_WORKING)
+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)" , GAME_NOT_WORKING)
-COMP( 1988, cobra80, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "ITCI", "Cobra 80K (ITCI)" , GAME_NOT_WORKING)
+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
@@ -988,8 +988,8 @@ COMP( 1988, mistrum, spectrum, 0, spectrum, spectrum, spectrum_state
COMP( 1990, blitzs, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "<unknown>", "Blic" , 0) // no keyboard images found
COMP( 1990, byte, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "<unknown>", "Byte" , 0) // no keyboard images found
COMP( 199?, orizon, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "<unknown>", "Orizon-Micro" , 0) // no keyboard images found
-COMP( 1993, quorum48, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "<unknown>", "Kvorum 48K" , GAME_NOT_WORKING)
-COMP( 1993, magic6, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "<unknown>", "Magic 6" , GAME_NOT_WORKING) // keyboard should be spectrum, but image was not clear
+COMP( 1993, quorum48, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "<unknown>", "Kvorum 48K" , MACHINE_NOT_WORKING)
+COMP( 1993, magic6, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "<unknown>", "Magic 6" , MACHINE_NOT_WORKING) // keyboard should be spectrum, but image was not clear
COMP( 1990, compani1, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "<unknown>", "Kompanion 1" , 0) // no keyboard images found
COMP( 1990, spektrbk, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "<unknown>", "Spektr BK-001" , 0)
COMP( 1990, zvezda, spectrum, 0, spectrum, spectrum, spectrum_state, spectrum, "<unknown>", "Zvezda" , 0)
diff --git a/src/mame/drivers/speedatk.c b/src/mame/drivers/speedatk.c
index bacc84ac406..ddd38cf4ab1 100644
--- a/src/mame/drivers/speedatk.c
+++ b/src/mame/drivers/speedatk.c
@@ -356,4 +356,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)", GAME_SUPPORTS_SAVE )
+GAME( 1984, speedatk, 0, speedatk, speedatk, driver_device, 0, ROT0, "Seta Kikaku Corp.", "Speed Attack! (Japan)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/speedbal.c b/src/mame/drivers/speedbal.c
index e90c0d4a5a9..2768cd1b7fe 100644
--- a/src/mame/drivers/speedbal.c
+++ b/src/mame/drivers/speedbal.c
@@ -384,5 +384,5 @@ DRIVER_INIT_MEMBER(speedbal_state,musicbal)
-GAMEL( 1987, speedbal, 0, speedbal, speedbal, speedbal_state, speedbal, ROT270, "Tecfri / Desystem S.A.", "Speed Ball", GAME_SUPPORTS_SAVE, layout_speedbal )
-GAMEL( 1988, musicbal, 0, speedbal, musicbal, speedbal_state, musicbal, ROT270, "Tecfri / Desystem S.A.", "Music Ball", GAME_SUPPORTS_SAVE, layout_speedbal )
+GAMEL( 1987, speedbal, 0, speedbal, speedbal, speedbal_state, speedbal, ROT270, "Tecfri / Desystem S.A.", "Speed Ball", MACHINE_SUPPORTS_SAVE, layout_speedbal )
+GAMEL( 1988, musicbal, 0, speedbal, musicbal, speedbal_state, musicbal, ROT270, "Tecfri / Desystem S.A.", "Music Ball", MACHINE_SUPPORTS_SAVE, layout_speedbal )
diff --git a/src/mame/drivers/speedspn.c b/src/mame/drivers/speedspn.c
index f39fb3d350a..edbe1899df6 100644
--- a/src/mame/drivers/speedspn.c
+++ b/src/mame/drivers/speedspn.c
@@ -334,4 +334,4 @@ ROM_END
/*** GAME DRIVERS ************************************************************/
-GAME( 1994, speedspn, 0, speedspn, speedspn, driver_device, 0, ROT180, "TCH", "Speed Spin", GAME_SUPPORTS_SAVE )
+GAME( 1994, speedspn, 0, speedspn, speedspn, driver_device, 0, ROT180, "TCH", "Speed Spin", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/speglsht.c b/src/mame/drivers/speglsht.c
index 888d1d85197..25154bc5bef 100644
--- a/src/mame/drivers/speglsht.c
+++ b/src/mame/drivers/speglsht.c
@@ -449,4 +449,4 @@ DRIVER_INIT_MEMBER(speglsht_state,speglsht)
}
-GAME( 1994, speglsht, 0, speglsht, speglsht, speglsht_state, speglsht, ROT0, "Seta", "Super Eagle Shot", GAME_IMPERFECT_GRAPHICS )
+GAME( 1994, speglsht, 0, speglsht, speglsht, speglsht_state, speglsht, ROT0, "Seta", "Super Eagle Shot", MACHINE_IMPERFECT_GRAPHICS )
diff --git a/src/mame/drivers/spiders.c b/src/mame/drivers/spiders.c
index 3099ac1a1f7..28b2c2e331c 100644
--- a/src/mame/drivers/spiders.c
+++ b/src/mame/drivers/spiders.c
@@ -323,16 +323,6 @@ WRITE_LINE_MEMBER(spiders_state::flipscreen_w)
}
-MC6845_BEGIN_UPDATE( spiders_state::crtc_begin_update )
-{
- /* create the pens */
- for (offs_t i = 0; i < NUM_PENS; i++)
- {
- m_pens[i] = rgb_t(pal1bit(i >> 0), pal1bit(i >> 1), pal1bit(i >> 2));
- }
-}
-
-
MC6845_UPDATE_ROW( spiders_state::crtc_update_row )
{
UINT8 x = 0;
@@ -378,7 +368,7 @@ MC6845_UPDATE_ROW( spiders_state::crtc_update_row )
data3 = data3 >> 1;
}
- bitmap.pix32(y, x) = m_pens[color];
+ bitmap.pix32(y, x) = m_palette->pen_color(color);
x = x + 1;
}
@@ -578,10 +568,11 @@ static MACHINE_CONFIG_START( spiders, spiders_state )
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 256, 0, 256, 256, 0, 256) /* temporary, CRTC will configure screen */
MCFG_SCREEN_UPDATE_DEVICE("crtc", mc6845_device, screen_update)
+ MCFG_PALETTE_ADD_3BIT_RGB("palette")
+
MCFG_MC6845_ADD("crtc", MC6845, "screen", CRTC_CLOCK)
MCFG_MC6845_SHOW_BORDER_AREA(false)
MCFG_MC6845_CHAR_WIDTH(8)
- MCFG_MC6845_BEGIN_UPDATE_CB(spiders_state, crtc_begin_update)
MCFG_MC6845_UPDATE_ROW_CB(spiders_state, crtc_update_row)
MCFG_MC6845_OUT_DE_CB(WRITELINE(spiders_state, display_enable_changed))
@@ -723,7 +714,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)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE)
-GAME( 1981, spiders2, spiders, spiders, spiders, driver_device, 0, ROT270, "Sigma Enterprises Inc.", "Spiders (set 2)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE)
-GAME( 1981, spiders3, spiders, spiders, spiders, driver_device, 0, ROT270, "Sigma Enterprises Inc.", "Spiders (set 3)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE)
-GAME( 1981, spinner, spiders, spiders, spiders, driver_device, 0, ROT270, "bootleg", "Spinner", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE)
+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)
diff --git a/src/mame/drivers/spinb.c b/src/mame/drivers/spinb.c
index 9f8af0fdde6..dd95f8df964 100644
--- a/src/mame/drivers/spinb.c
+++ b/src/mame/drivers/spinb.c
@@ -848,8 +848,8 @@ ROM_START(vrnwrld)
ROM_LOAD("vws7ic27.rom", 0x100000, 0x80000, CRC(7335b29c) SHA1(4de6de09f069feecbad2e5ef50032e8d381ff9b1))
ROM_END
-GAME(1993, bushido, 0, spinb, spinb, spinb_state, game0, ROT0, "Inder/Spinball", "Bushido (set 1)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1993, bushidoa, bushido, spinb, spinb, spinb_state, game0, ROT0, "Inder/Spinball", "Bushido (set 2)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1995, mach2, 0, spinb, spinb, spinb_state, game0, ROT0, "Spinball", "Mach 2", GAME_IS_SKELETON_MECHANICAL)
-GAME(1996, jolypark, 0, spinb, spinb, spinb_state, game1, ROT0, "Spinball", "Jolly Park", GAME_IS_SKELETON_MECHANICAL)
-GAME(1996, vrnwrld, 0, vrnwrld, spinb, spinb_state, game2, ROT0, "Spinball", "Verne's World", GAME_IS_SKELETON_MECHANICAL)
+GAME(1993, bushido, 0, spinb, spinb, spinb_state, game0, ROT0, "Inder/Spinball", "Bushido (set 1)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1993, bushidoa, bushido, spinb, spinb, spinb_state, game0, ROT0, "Inder/Spinball", "Bushido (set 2)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1995, mach2, 0, spinb, spinb, spinb_state, game0, ROT0, "Spinball", "Mach 2", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1996, jolypark, 0, spinb, spinb, spinb_state, game1, ROT0, "Spinball", "Jolly Park", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1996, vrnwrld, 0, vrnwrld, spinb, spinb_state, game2, ROT0, "Spinball", "Verne's World", MACHINE_IS_SKELETON_MECHANICAL)
diff --git a/src/mame/drivers/splash.c b/src/mame/drivers/splash.c
index f890eaedb3d..17e6b6692d5 100644
--- a/src/mame/drivers/splash.c
+++ b/src/mame/drivers/splash.c
@@ -1371,12 +1371,12 @@ 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)", GAME_SUPPORTS_SAVE )
-GAME( 1992, splash10, splash, splash, splash, splash_state, splash10, ROT0, "Gaelco / OMK Software", "Splash! (Ver. 1.0 World)", GAME_SUPPORTS_SAVE )
-GAME( 1992, paintlad, splash, splash, splash, splash_state, splash, ROT0, "Gaelco / OMK Software", "Painted Lady (Splash) (Ver. 1.3 US)", GAME_SUPPORTS_SAVE )
-
-GAME( 1993, roldfrog, 0, roldfrog, splash, splash_state, roldfrog, ROT0, "Microhard", "The Return of Lady Frog (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1993, roldfroga,roldfrog, roldfrog, splash, splash_state, roldfrog, ROT0, "Microhard", "The Return of Lady Frog (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1995, rebus, 0, roldfrog, splash, splash_state, rebus, ROT0, "Microhard", "Rebus", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 199?, funystrp, 0, funystrp, funystrp, splash_state, funystrp, ROT0, "Microhard / MagicGames", "Funny Strip", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE )
-GAME( 199?, puckpepl, funystrp, funystrp, funystrp, splash_state, funystrp, ROT0, "Microhard", "Puck People", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_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( 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 )
diff --git a/src/mame/drivers/splus.c b/src/mame/drivers/splus.c
index a0562991942..7075b8c3372 100644
--- a/src/mame/drivers/splus.c
+++ b/src/mame/drivers/splus.c
@@ -40,6 +40,10 @@ public:
m_program_ram(*this, "program_ram"),
m_reel_ram(*this, "reel_ram"),
m_io_port(*this, "io_port"),
+ m_i10(*this, "I10"),
+ m_i20(*this, "I20"),
+ m_i30(*this, "I30"),
+ m_sensor(*this, "SENSOR"),
m_maincpu(*this, "maincpu"),
m_i2cmem(*this, "i2cmem")
{
@@ -71,6 +75,10 @@ public:
// IO Ports
required_shared_ptr<UINT8> m_io_port;
+ required_ioport m_i10;
+ required_ioport m_i20;
+ required_ioport m_i30;
+ required_ioport m_sensor;
// EEPROM States
int m_sda_dir;
@@ -389,7 +397,7 @@ READ8_MEMBER(splus_state::splus_serial_r)
break;
case 0x01: // Bank 10
// Test for Coin-In
- if ((ioport("SENSOR")->read_safe(0x00) & 0x01) == 0x01 && m_coin_state == 0) {
+ if ((m_sensor->read() & 0x01) == 0x01 && m_coin_state == 0) {
m_coin_state = 1; // Start Coin Cycle
m_last_cycles = m_maincpu->total_cycles();
#if DEBUG_OUTPUT
@@ -432,7 +440,7 @@ READ8_MEMBER(splus_state::splus_serial_r)
}
// Determine Door Optics
- if ((ioport("I10")->read_safe(0x08) & 0x08) == 0x08)
+ if ((m_i10->read() & 0x08) == 0x08)
door_optics = 0x08;
else
door_optics = (((m_bank20 >> 4) & 1) << 3); // Use Door Optics Transmitter
@@ -477,22 +485,22 @@ READ8_MEMBER(splus_state::splus_serial_r)
val = val | door_optics; // Door Optics Receiver
val = val | coin_out; // Hopper Coin OutR
val = val | 0x00; // Hopper Full
- val = val | (ioport("I10")->read_safe(0x40) & 0x40); // Handle/Spin Button
- val = val | (ioport("I10")->read_safe(0x80) & 0x80); // Jackpot Reset Key
+ val = val | (m_i10->read() & 0x40); // Handle/Spin Button
+ val = val | (m_i10->read() & 0x80); // Jackpot Reset Key
break;
case 0x02: // Bank 20
- val = val | (ioport("I20")->read_safe(0x01) & 0x01); // Bet One Credit
- val = val | (ioport("I20")->read_safe(0x02) & 0x02); // Play Max Credits
- val = val | (ioport("I20")->read_safe(0x04) & 0x04); // Cash Out
- val = val | (ioport("I20")->read_safe(0x08) & 0x08); // Change Request
+ val = val | (m_i20->read() & 0x01); // Bet One Credit
+ val = val | (m_i20->read() & 0x02); // Play Max Credits
+ val = val | (m_i20->read() & 0x04); // Cash Out
+ val = val | (m_i20->read() & 0x08); // Change Request
val = val | 0x00; // Reel Mechanism
- val = val | (ioport("I20")->read_safe(0x20) & 0x20); // Self Test Button
+ val = val | (m_i20->read() & 0x20); // Self Test Button
val = val | 0x40; // Card Cage
val = val | 0x80; // Bill Acceptor
break;
case 0x04: // Bank 30
// Reserved
- val = val | (ioport("I30")->read_safe(0x02) & 0x02); // Drop Door
+ val = val | (m_i30->read() & 0x02); // Drop Door
// Jackpot to Credit Key
// Reserved
// Reserved
@@ -715,4 +723,4 @@ ROM_END
*************************/
/* YEAR NAME PARENT MACHINE INPUT 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", GAME_NOT_WORKING, layout_splus )
+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.c b/src/mame/drivers/spoker.c
index cf0b886a33a..9761d57902e 100644
--- a/src/mame/drivers/spoker.c
+++ b/src/mame/drivers/spoker.c
@@ -732,6 +732,6 @@ DRIVER_INIT_MEMBER(spoker_state,3super8)
}
}
-GAME( 1993?, spk116it, 0, spoker, spoker, spoker_state, spk116it, ROT0, "IGS", "Super Poker (v116IT)", GAME_SUPPORTS_SAVE )
-GAME( 1993?, spk115it, spk116it, spoker, spoker, spoker_state, spk116it, ROT0, "IGS", "Super Poker (v115IT)", GAME_SUPPORTS_SAVE )
-GAME( 1993?, 3super8, spk116it, 3super8,3super8, spoker_state, 3super8, ROT0, "<unknown>", "3 Super 8 (Italy)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) //roms are badly dumped
+GAME( 1993?, spk116it, 0, spoker, spoker, spoker_state, spk116it, ROT0, "IGS", "Super Poker (v116IT)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993?, spk115it, spk116it, spoker, spoker, spoker_state, spk116it, ROT0, "IGS", "Super Poker (v115IT)", MACHINE_SUPPORTS_SAVE )
+GAME( 1993?, 3super8, spk116it, 3super8,3super8, spoker_state, 3super8, ROT0, "<unknown>", "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.c b/src/mame/drivers/spool99.c
index 876c15f37d6..38b859a0ffe 100644
--- a/src/mame/drivers/spool99.c
+++ b/src/mame/drivers/spool99.c
@@ -460,8 +460,8 @@ DRIVER_INIT_MEMBER(spool99_state,spool99)
-GAME( 1998, spool99, 0, spool99, spool99, spool99_state, spool99, ROT0, "Electronic Projects", "Super Pool 99 (Version 0.36)", GAME_SUPPORTS_SAVE )
-GAME( 1998, spool99a, spool99, spool99, spool99, spool99_state, spool99, ROT0, "Electronic Projects", "Super Pool 99 (Version 0.33)", GAME_SUPPORTS_SAVE )
-GAME( 1998, spool99b, spool99, spool99, spool99, spool99_state, spool99, ROT0, "Electronic Projects", "Super Pool 99 (Version 0.31)", GAME_SUPPORTS_SAVE )
-GAME( 1998, spool99c, spool99, spool99, spool99, spool99_state, spool99, ROT0, "Electronic Projects", "Super Pool 99 (Version 0.26)", GAME_SUPPORTS_SAVE )
-GAME( 1998, vcarn, 0, vcarn, spool99, spool99_state, spool99, ROT0, "Electronic Projects", "Video Carnival 1999 / Super Royal Card (Version 0.11)", GAME_SUPPORTS_SAVE ) //MAME screen says '98, PCB screen says '99?
+GAME( 1998, spool99, 0, spool99, spool99, spool99_state, spool99, ROT0, "Electronic Projects", "Super Pool 99 (Version 0.36)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, spool99a, spool99, spool99, spool99, spool99_state, spool99, ROT0, "Electronic Projects", "Super Pool 99 (Version 0.33)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, spool99b, spool99, spool99, spool99, spool99_state, spool99, ROT0, "Electronic Projects", "Super Pool 99 (Version 0.31)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, spool99c, spool99, spool99, spool99, spool99_state, spool99, ROT0, "Electronic Projects", "Super Pool 99 (Version 0.26)", MACHINE_SUPPORTS_SAVE )
+GAME( 1998, vcarn, 0, vcarn, spool99, spool99_state, spool99, ROT0, "Electronic Projects", "Video Carnival 1999 / Super Royal Card (Version 0.11)", MACHINE_SUPPORTS_SAVE ) //MAME screen says '98, PCB screen says '99?
diff --git a/src/mame/drivers/sprcros2.c b/src/mame/drivers/sprcros2.c
index 45b231384f8..ac9b81efa33 100644
--- a/src/mame/drivers/sprcros2.c
+++ b/src/mame/drivers/sprcros2.c
@@ -371,5 +371,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)", GAME_SUPPORTS_SAVE )
-GAME( 1986, sprcros2a,sprcros2, sprcros2, sprcros2, driver_device, 0, ROT0, "GM Shoji", "Super Cross II (Japan, set 2)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/sprint2.c b/src/mame/drivers/sprint2.c
index 833505e2026..db6bd8233a2 100644
--- a/src/mame/drivers/sprint2.c
+++ b/src/mame/drivers/sprint2.c
@@ -24,9 +24,9 @@
#include "includes/sprint2.h"
#include "sound/discrete.h"
-#define GAME_IS_SPRINT1 (m_game == 1)
-#define GAME_IS_SPRINT2 (m_game == 2)
-#define GAME_IS_DOMINOS (m_game == 3)
+#define MACHINE_IS_SPRINT1 (m_game == 1)
+#define MACHINE_IS_SPRINT2 (m_game == 2)
+#define MACHINE_IS_DOMINOS (m_game == 3)
DRIVER_INIT_MEMBER(sprint2_state,sprint1)
{
@@ -53,15 +53,15 @@ int sprint2_state::service_mode()
{
UINT8 v = ioport("INB")->read();
- if (GAME_IS_SPRINT1)
+ if (MACHINE_IS_SPRINT1)
{
return (v & 0x10) == 0;
}
- if (GAME_IS_SPRINT2)
+ if (MACHINE_IS_SPRINT2)
{
return (v & 0x04) == 0;
}
- if (GAME_IS_DOMINOS)
+ if (MACHINE_IS_DOMINOS)
{
return (v & 0x40) == 0;
}
@@ -74,7 +74,7 @@ INTERRUPT_GEN_MEMBER(sprint2_state::sprint2)
{
/* handle steering wheels */
- if (GAME_IS_SPRINT1 || GAME_IS_SPRINT2)
+ if (MACHINE_IS_SPRINT1 || MACHINE_IS_SPRINT2)
{
int i;
@@ -135,7 +135,7 @@ READ8_MEMBER(sprint2_state::sprint2_input_A_r)
{
UINT8 val = ioport("INA")->read();
- if (m_game == 2)// (GAME_IS_SPRINT2)
+ if (m_game == 2)// (MACHINE_IS_SPRINT2)
{
if (m_gear[0] == 1) val &= ~0x01;
if (m_gear[1] == 1) val &= ~0x02;
@@ -153,7 +153,7 @@ READ8_MEMBER(sprint2_state::sprint2_input_B_r)
{
UINT8 val = ioport("INB")->read();
- if (m_game == 1) // (GAME_IS_SPRINT1)
+ if (m_game == 1) // (MACHINE_IS_SPRINT1)
{
if (m_gear[0] == 1) val &= ~0x01;
if (m_gear[0] == 2) val &= ~0x02;
@@ -715,6 +715,6 @@ ROM_END
GAME( 1978, sprint1, 0, sprint1, sprint1, sprint2_state, sprint1, ROT0, "Atari (Kee Games)", "Sprint 1", 0 )
GAME( 1976, sprint2, sprint1, sprint2, sprint2, sprint2_state, sprint2, ROT0, "Atari (Kee Games)", "Sprint 2 (set 1)", 0 )
GAME( 1976, sprint2a, sprint1, sprint2, sprint2, sprint2_state, sprint2, ROT0, "Atari (Kee Games)", "Sprint 2 (set 2)", 0 )
-GAME( 1976, sprint2h, sprint1, sprint2, sprint2, sprint2_state, sprint2, ROT0, "hack", "Sprint 2 (color kit, Italy)", GAME_WRONG_COLORS ) // Italian hack, supposedly is color instead of b/w? how?
+GAME( 1976, sprint2h, sprint1, sprint2, sprint2, sprint2_state, sprint2, ROT0, "hack", "Sprint 2 (color kit, Italy)", MACHINE_WRONG_COLORS ) // Italian hack, supposedly is color instead of b/w? how?
GAME( 1977, dominos, 0, dominos, dominos, sprint2_state, dominos, ROT0, "Atari", "Dominos", 0 )
GAME( 1977, dominos4, dominos, dominos, dominos4,sprint2_state, dominos4,ROT0, "Atari", "Dominos 4 (Cocktail)", 0 )
diff --git a/src/mame/drivers/spy.c b/src/mame/drivers/spy.c
index 55927b2e8a4..a37a42d0bce 100644
--- a/src/mame/drivers/spy.c
+++ b/src/mame/drivers/spy.c
@@ -519,6 +519,7 @@ static MACHINE_CONFIG_START( spy, spy_state )
MCFG_DEVICE_ADD("k051960", K051960, 0)
MCFG_GFX_PALETTE("palette")
+ MCFG_K051960_SCREEN_TAG("screen")
MCFG_K051960_CB(spy_state, sprite_callback)
/* sound hardware */
@@ -601,5 +602,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)", GAME_SUPPORTS_SAVE )
-GAME( 1989, spyu, spy, spy, spy, driver_device, 0, ROT0, "Konami", "S.P.Y. - Special Project Y (US ver. M)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/squale.c b/src/mame/drivers/squale.c
new file mode 100644
index 00000000000..def2dd00257
--- /dev/null
+++ b/src/mame/drivers/squale.c
@@ -0,0 +1,99 @@
+// license:BSD-3-Clause
+// copyright-holders:Miodrag Milanovic
+/***************************************************************************
+
+ Apollo 7 Squale
+
+ PCB Ref Qty Manufacturer Ref Description / Datasheet
+ ============================================================================================
+ U1 1 EF6809P 8-BIT MICROPROCESSOR UNIT (MPU)
+ U2 1 27C32 / 27C64 EPROM
+ U72,U75 1 EF6821P PERIPHERAL INTERFACE ADAPTER (PIA)
+ U69 1 EF6850 ASYNCHRONOUS COMMUNICATIONS INTERFACE ADAPTER (ACIA)
+ U59 1 EF9365P GRAPHIC DISPLAY PROCESSOR (GDP)
+ U65 1 AY-3-8910A PROGRAMMABLE SOUND GENERATOR
+ U16,U17,U18,U19,
+ U20,U21,U22,U23 8 MK4564 65,536 x 1-BIT DYNAMIC RAM
+ U38,U39,U40,U41,
+ U42,U43,U44,U45,
+ U46,U47,U48,U49,
+ U50,U51,U52,U53 16 TMS4116 16,384-BIT DYNAMIC RAM
+ U68 1 EFB7510 SINGLE CHIP ASYNCHRONOUS FSK MODEM
+
+
+ Memory map
+ ==========
+
+ Periphiriques Adresses
+ =========================================================
+ EPROM 0xF100-0xFFFF
+ Extension Port 0xF080-0xF0FF
+ FREE 0xF070-0xF07F
+ AY-3-8910A 0xF060-0xF06F
+ ACIA EF6850 (Modem + K7) 0xF050-0xF05F
+ Restricted area 0xF04C-0xF04F
+ PIO EF6821 (Printer + Cartridge) 0xF048-0xF04B
+ PIO EF6821 (Keyboard) 0xF044-0xF047
+ FREE 0xF040-0xF043
+ VID_RD2 0xF030-0xF03F
+ VID_RD1 0xF020-0xF02F
+ REG1 0xF010-0xF01F
+ Video Controller EF9365 0xF000-0xF00F
+ System RAM 0x0000-0xEFFF
+
+
+ Notes:
+ 1) For 8KB versions of the monitor, the bank switching is done via bit 7 of REG1.
+ 2) VID_RD1 : [7..0] = I0,R0,G0,B0,I1,R1,G1,B1 (I=Intensity,R=Red,G=Green,B=Blue)
+ 3) VID_RD2 : [7..0] = I2,R2,G2,B2,I3,R3,G3,B3 (I=Intensity,R=Red,G=Green,B=Blue)
+ 3) REG1 : [7..0] = EPROM Bank,-,Modem,K7,I,R,G,B (I=Intensity,R=Red,V=Green,B=Blue)
+****************************************************************************/
+
+#include "emu.h"
+#include "cpu/m6809/m6809.h"
+
+class squale_state : public driver_device
+{
+public:
+ squale_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ { }
+
+private:
+ required_device<cpu_device> m_maincpu;
+};
+
+
+static ADDRESS_MAP_START(squale_mem, AS_PROGRAM, 8, squale_state)
+ ADDRESS_MAP_UNMAP_HIGH
+ AM_RANGE(0x0000,0xefff) AM_RAM
+ AM_RANGE(0xf100,0xffff) AM_ROM AM_REGION("maincpu", 0x100)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( squale_io, AS_IO, 8, squale_state)
+ ADDRESS_MAP_UNMAP_HIGH
+ADDRESS_MAP_END
+
+/* Input ports */
+static INPUT_PORTS_START( squale )
+INPUT_PORTS_END
+
+
+static MACHINE_CONFIG_START( squale, squale_state )
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu",M6809, XTAL_1MHz)
+ MCFG_CPU_PROGRAM_MAP(squale_mem)
+ MCFG_CPU_IO_MAP(squale_io)
+MACHINE_CONFIG_END
+
+/* ROM definition */
+ROM_START( squale )
+ ROM_REGION( 0x2000, "maincpu", 0 )
+ ROM_LOAD( "sqm2r1.bin", 0x0000, 0x2000, CRC(ed57c707) SHA1(c8bd33a6fb07fe7f881f2605ad867b7e82366bfc) )
+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_IS_SKELETON )
diff --git a/src/mame/drivers/srmp2.c b/src/mame/drivers/srmp2.c
index f3fb40cdd0d..fb37d80f5e8 100644
--- a/src/mame/drivers/srmp2.c
+++ b/src/mame/drivers/srmp2.c
@@ -1570,11 +1570,11 @@ ROM_END
-GAME( 1987, srmp1, 0, srmp2, srmp2, driver_device, 0, ROT0, "Seta", "Super Real Mahjong Part 1 (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1987, srmp2, 0, srmp2, srmp2, driver_device, 0, ROT0, "Seta", "Super Real Mahjong Part 2 (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1988, srmp3, 0, srmp3, srmp3, driver_device, 0, ROT0, "Seta", "Super Real Mahjong Part 3 (Japan)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1990, mjyuugi, 0, mjyuugi, mjyuugi, driver_device, 0, ROT0, "Visco", "Mahjong Yuugi (Japan set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1990, mjyuugia, mjyuugi, mjyuugi, mjyuugi, driver_device, 0, ROT0, "Visco", "Mahjong Yuugi (Japan set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1991, ponchin, 0, mjyuugi, ponchin, driver_device, 0, ROT0, "Visco", "Mahjong Pon Chin Kan (Japan set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1991, ponchina, ponchin, mjyuugi, ponchin, driver_device, 0, ROT0, "Visco", "Mahjong Pon Chin Kan (Japan set 2)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/srmp5.c b/src/mame/drivers/srmp5.c
index 14d281bdcd8..d63eb4182ee 100644
--- a/src/mame/drivers/srmp5.c
+++ b/src/mame/drivers/srmp5.c
@@ -619,4 +619,4 @@ DRIVER_INIT_MEMBER(srmp5_state,srmp5)
#endif
}
-GAME( 1994, srmp5, 0, srmp5, srmp5, srmp5_state, srmp5, ROT0, "Seta", "Super Real Mahjong P5", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+GAME( 1994, srmp5, 0, srmp5, srmp5, srmp5_state, srmp5, ROT0, "Seta", "Super Real Mahjong P5", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/srmp6.c b/src/mame/drivers/srmp6.c
index 89764b59105..05cc14bc010 100644
--- a/src/mame/drivers/srmp6.c
+++ b/src/mame/drivers/srmp6.c
@@ -730,4 +730,4 @@ ROM_END
Game driver(s)
***************************************************************************/
-GAME( 1995, srmp6, 0, srmp6, srmp6, driver_device, 0, ROT0, "Seta", "Super Real Mahjong P6 (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND)
+GAME( 1995, srmp6, 0, srmp6, srmp6, driver_device, 0, ROT0, "Seta", "Super Real Mahjong P6 (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND)
diff --git a/src/mame/drivers/srumbler.c b/src/mame/drivers/srumbler.c
index b6d438f66db..22811adddaa 100644
--- a/src/mame/drivers/srumbler.c
+++ b/src/mame/drivers/srumbler.c
@@ -466,7 +466,7 @@ ROM_END
-GAME( 1986, srumbler, 0, srumbler, srumbler, driver_device, 0, ROT270, "Capcom", "The Speed Rumbler (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1986, srumbler2, srumbler, srumbler, srumbler, driver_device, 0, ROT270, "Capcom", "The Speed Rumbler (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1986, srumbler3, srumbler, srumbler, srumbler, driver_device, 0, ROT270, "Capcom (Tecfri license)", "The Speed Rumbler (set 3)", GAME_SUPPORTS_SAVE )
-GAME( 1986, rushcrsh, srumbler, srumbler, srumbler, driver_device, 0, ROT270, "Capcom", "Rush & Crash (Japan)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/ssem.c b/src/mame/drivers/ssem.c
index 7e28ffc5b99..db4d1842cc3 100644
--- a/src/mess/drivers/ssem.c
+++ b/src/mame/drivers/ssem.c
@@ -3,7 +3,7 @@
/*
Manchester Small-Scale Experimental Machine (SSEM)
- Driver by MooglyGuy
+ Driver by Ryan Holtz
*/
@@ -11,6 +11,13 @@
#include "cpu/ssem/ssem.h"
#include "imagedev/snapquik.h"
+// for now, make buggy GCC/Mingw STFU about I64FMT
+#if (defined(__MINGW32__) && (__GNUC__ >= 5))
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wformat"
+#pragma GCC diagnostic ignored "-Wformat-extra-args"
+#endif
+
class ssem_state : public driver_device
{
public:
@@ -641,4 +648,8 @@ 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'", GAME_NO_SOUND_HW | GAME_SUPPORTS_SAVE )
+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 )
+
+#if (defined(__MINGW32__) && (__GNUC__ >= 5))
+#pragma GCC diagnostic pop
+#endif
diff --git a/src/mame/drivers/ssfindo.c b/src/mame/drivers/ssfindo.c
index 1ca320bb5ee..d9806b614fa 100644
--- a/src/mame/drivers/ssfindo.c
+++ b/src/mame/drivers/ssfindo.c
@@ -922,6 +922,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", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1999, ppcar, 0, ppcar, ppcar, ssfindo_state, ppcar, ROT0, "Icarus", "Pang Pang Car", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2001, tetfight,0, tetfight, tetfight, ssfindo_state, tetfight,ROT0, "Sego", "Tetris Fighters", GAME_NO_SOUND | GAME_NOT_WORKING | GAME_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/sshot.c b/src/mame/drivers/sshot.c
index ac7d432f47a..e15bea83951 100644
--- a/src/mame/drivers/sshot.c
+++ b/src/mame/drivers/sshot.c
@@ -395,5 +395,5 @@ ROM_START( gunchamps )
ROM_END
-GAME( 1979, sshot, 0, supershot, supershot, driver_device, 0, ROT0, "Model Racing", "Super Shot", GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND )
-GAMEL(1980, gunchamps, gunchamp, supershot, supershot, driver_device, 0, ROT0, "Model Racing", "Gun Champ (newer, Super Shot hardware)", GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND | GAME_NOT_WORKING, layout_gunchamps )
+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 )
diff --git a/src/mame/drivers/ssingles.c b/src/mame/drivers/ssingles.c
index d8893cb1f71..4dd959a9145 100644
--- a/src/mame/drivers/ssingles.c
+++ b/src/mame/drivers/ssingles.c
@@ -665,5 +665,5 @@ DRIVER_INIT_MEMBER(ssingles_state,ssingles)
save_item(NAME(m_colorram));
}
-GAME( 1983, ssingles, 0, ssingles, ssingles, ssingles_state, ssingles, ROT90, "Yachiyo Denki (Entertainment Enterprises, Ltd. license)", "Swinging Singles (US)", GAME_SUPPORTS_SAVE | GAME_WRONG_COLORS | GAME_IMPERFECT_SOUND )
-GAME( 1983, atamanot, 0, atamanot, ssingles, ssingles_state, ssingles, ROT90, "Yachiyo Denki / Uni Enterprize", "Computer Quiz Atama no Taisou (Japan)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION )
+GAME( 1983, ssingles, 0, ssingles, ssingles, ssingles_state, ssingles, ROT90, "Yachiyo Denki (Entertainment Enterprises, Ltd. license)", "Swinging Singles (US)", MACHINE_SUPPORTS_SAVE | MACHINE_WRONG_COLORS | MACHINE_IMPERFECT_SOUND )
+GAME( 1983, atamanot, 0, atamanot, ssingles, ssingles_state, ssingles, ROT90, "Yachiyo Denki / Uni Enterprize", "Computer Quiz Atama no Taisou (Japan)", MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION )
diff --git a/src/mame/drivers/sslam.c b/src/mame/drivers/sslam.c
index 2744f928dfa..0d6f13e65fd 100644
--- a/src/mame/drivers/sslam.c
+++ b/src/mame/drivers/sslam.c
@@ -930,6 +930,6 @@ DRIVER_INIT_MEMBER(sslam_state,powerbls)
}
-GAME( 1993, sslam, 0, sslam, sslam, sslam_state, sslam, ROT0, "Playmark", "Super Slam (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1993, sslama, sslam, sslam, sslam, sslam_state, sslam, ROT0, "Playmark", "Super Slam (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1994, powerbals,powerbal, powerbls, powerbls, sslam_state, powerbls, ROT0, "Playmark", "Power Balls (Super Slam conversion)", GAME_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( 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.c b/src/mame/drivers/ssozumo.c
index 85e56d284d2..470d92d6cf2 100644
--- a/src/mame/drivers/ssozumo.c
+++ b/src/mame/drivers/ssozumo.c
@@ -289,4 +289,4 @@ ROM_END
-GAME( 1984, ssozumo, 0, ssozumo, ssozumo, driver_device, 0, ROT270, "Technos Japan", "Syusse Oozumou (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1984, ssozumo, 0, ssozumo, ssozumo, driver_device, 0, ROT270, "Technos Japan", "Syusse Oozumou (Japan)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/sspeedr.c b/src/mame/drivers/sspeedr.c
index 39082b8efa6..a85b2103fc0 100644
--- a/src/mame/drivers/sspeedr.c
+++ b/src/mame/drivers/sspeedr.c
@@ -228,4 +228,4 @@ ROM_START( sspeedr )
ROM_END
-GAMEL( 1979, sspeedr, 0, sspeedr, sspeedr, driver_device, 0, ROT270, "Midway", "Super Speed Race", GAME_NO_SOUND, layout_sspeedr )
+GAMEL( 1979, sspeedr, 0, sspeedr, sspeedr, driver_device, 0, ROT270, "Midway", "Super Speed Race", MACHINE_NO_SOUND, layout_sspeedr )
diff --git a/src/mame/drivers/ssrj.c b/src/mame/drivers/ssrj.c
index a8b2eb7df31..202ce3aaddc 100644
--- a/src/mame/drivers/ssrj.c
+++ b/src/mame/drivers/ssrj.c
@@ -186,4 +186,4 @@ ROM_START( ssrj )
ROM_END
-GAME( 1985, ssrj, 0, ssrj, ssrj, driver_device, 0, ROT90, "Taito Corporation", "Super Speed Race Junior (Japan)", GAME_WRONG_COLORS | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/sstrangr.c b/src/mame/drivers/sstrangr.c
index bb3f265b9f3..e1db1d7b53e 100644
--- a/src/mame/drivers/sstrangr.c
+++ b/src/mame/drivers/sstrangr.c
@@ -13,18 +13,17 @@
#include "sstrangr.lh"
-#define NUM_PENS (8)
-
class sstrangr_state : public driver_device
{
public:
sstrangr_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
+ m_palette(*this, "palette"),
m_ram(*this, "ram") { }
required_device<cpu_device> m_maincpu;
-
+ optional_device<palette_device> m_palette;
required_shared_ptr<UINT8> m_ram;
UINT8 m_flip_screen;
@@ -86,32 +85,12 @@ UINT32 sstrangr_state::screen_update_sstrangr(screen_device &screen, bitmap_rgb3
return 0;
}
-
-static void get_pens(pen_t *pens)
-{
- offs_t i;
-
- for (i = 0; i < NUM_PENS; i++)
- {
- pens[i] = rgb_t(pal1bit(i >> 0), pal1bit(i >> 2), pal1bit(i >> 1));
- }
-}
-
-
UINT32 sstrangr_state::screen_update_sstrngr2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- pen_t pens[NUM_PENS];
- offs_t offs;
- UINT8 *color_map_base;
-
- get_pens(pens);
-
- color_map_base = &memregion("proms")->base()[m_flip_screen ? 0x0000 : 0x0200];
+ UINT8 *color_map_base = &memregion("proms")->base()[m_flip_screen ? 0x0000 : 0x0200];
- for (offs = 0; offs < 0x2000; offs++)
+ for (offs_t offs = 0; offs < 0x2000; offs++)
{
- int i;
-
UINT8 y = offs >> 5;
UINT8 x = offs << 3;
@@ -120,7 +99,7 @@ UINT32 sstrangr_state::screen_update_sstrngr2(screen_device &screen, bitmap_rgb3
UINT8 data = m_ram[offs];
UINT8 fore_color = color_map_base[color_address] & 0x07;
- for (i = 0; i < 8; i++)
+ for (int i = 0; i < 8; i++)
{
UINT8 color;
@@ -135,7 +114,7 @@ UINT32 sstrangr_state::screen_update_sstrngr2(screen_device &screen, bitmap_rgb3
data = data >> 1;
}
- bitmap.pix32(y, x) = pens[color];
+ bitmap.pix32(y, x) = m_palette->pen_color(color);
x = x + 1;
}
@@ -282,6 +261,7 @@ static MACHINE_CONFIG_DERIVED( sstrngr2, sstrangr )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(sstrangr_state, screen_update_sstrngr2)
+ MCFG_PALETTE_ADD_3BIT_RBG("palette")
MACHINE_CONFIG_END
@@ -308,5 +288,5 @@ ROM_START( sstrangr2 )
ROM_END
-GAMEL( 1978, sstrangr, 0, sstrangr, sstrangr, driver_device, 0, ROT270, "Yachiyo Electronics, Ltd.", "Space Stranger", GAME_NO_SOUND | GAME_SUPPORTS_SAVE, layout_sstrangr )
-GAME( 1979, sstrangr2,sstrangr, sstrngr2, sstrngr2, driver_device, 0, ROT270, "Yachiyo Electronics, Ltd.", "Space Stranger 2", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/ssv.c b/src/mame/drivers/ssv.c
index f9763456b9a..2ca54ab52d4 100644
--- a/src/mame/drivers/ssv.c
+++ b/src/mame/drivers/ssv.c
@@ -4712,58 +4712,58 @@ ROM_END
// year rom clone machine inputs init monitor manufacturer title flags
-GAME( 1993, dynagear, 0, dynagear, dynagear, ssv_state, dynagear, ROT0, "Sammy", "Dyna Gear", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+GAME( 1993, dynagear, 0, dynagear, dynagear, ssv_state, dynagear, ROT0, "Sammy", "Dyna Gear", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
-GAME( 1993, keithlcy, 0, keithlcy, keithlcy, ssv_state, keithlcy, ROT0, "Visco", "Dramatic Adventure Quiz Keith & Lucy (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+GAME( 1993, keithlcy, 0, keithlcy, keithlcy, ssv_state, keithlcy, ROT0, "Visco", "Dramatic Adventure Quiz Keith & Lucy (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
-GAME( 1993, srmp4, 0, srmp4, srmp4, ssv_state, srmp4, ROT0, "Seta", "Super Real Mahjong PIV (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1993, srmp4o, srmp4, srmp4, srmp4, ssv_state, srmp4, ROT0, "Seta", "Super Real Mahjong PIV (Japan, older set)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) // by the numbering of the program roms this should be older
+GAME( 1993, srmp4, 0, srmp4, srmp4, ssv_state, srmp4, ROT0, "Seta", "Super Real Mahjong PIV (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1993, srmp4o, srmp4, srmp4, srmp4, ssv_state, srmp4, ROT0, "Seta", "Super Real Mahjong PIV (Japan, older set)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // by the numbering of the program roms this should be older
-GAME( 1993, survarts, 0, survarts, survarts, ssv_state, survarts, ROT0, "Sammy", "Survival Arts (World)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1993, survartsu, survarts, survarts, survarts, ssv_state, survarts, ROT0, "American Sammy", "Survival Arts (USA)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1993, survartsj, survarts, survarts, survarts, ssv_state, survarts, ROT0, "Sammy", "Survival Arts (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+GAME( 1993, survarts, 0, survarts, survarts, ssv_state, survarts, ROT0, "Sammy", "Survival Arts (World)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1993, survartsu, survarts, survarts, survarts, ssv_state, survarts, ROT0, "American Sammy", "Survival Arts (USA)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1993, survartsj, survarts, survarts, survarts, ssv_state, survarts, ROT0, "Sammy", "Survival Arts (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
-GAME( 1994, drifto94, 0, drifto94, drifto94, ssv_state, drifto94, ROT0, "Visco", "Drift Out '94 - The Hard Order (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+GAME( 1994, drifto94, 0, drifto94, drifto94, ssv_state, drifto94, ROT0, "Visco", "Drift Out '94 - The Hard Order (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
-GAME( 1994, eaglshot, 0, eaglshot, eaglshot, ssv_state, eaglshot, ROT0, "Sammy", "Eagle Shot Golf", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+GAME( 1994, eaglshot, 0, eaglshot, eaglshot, ssv_state, eaglshot, ROT0, "Sammy", "Eagle Shot Golf", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
-GAME( 1995, hypreact, 0, hypreact, hypreact, ssv_state, hypreact, ROT0, "Sammy", "Mahjong Hyper Reaction (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+GAME( 1995, hypreact, 0, hypreact, hypreact, ssv_state, hypreact, ROT0, "Sammy", "Mahjong Hyper Reaction (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
-GAME( 1994, twineag2, 0, twineag2, twineag2, ssv_state, twineag2, ROT270, "Seta", "Twin Eagle II - The Rescue Mission", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+GAME( 1994, twineag2, 0, twineag2, twineag2, ssv_state, twineag2, ROT270, "Seta", "Twin Eagle II - The Rescue Mission", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
-GAME( 1995, gdfs, 0, gdfs, gdfs, ssv_state, gdfs, ROT0, "Banpresto", "Mobil Suit Gundam Final Shooting (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+GAME( 1995, gdfs, 0, gdfs, gdfs, ssv_state, gdfs, ROT0, "Banpresto", "Mobil Suit Gundam Final Shooting (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
-GAME( 1995, ultrax, 0, ultrax, ultrax, ssv_state, ultrax, ROT270, "Banpresto / Tsuburaya Productions", "Ultra X Weapons / Ultra Keibitai", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) // 95-01-30 13:27:15 on startup
-GAME( 1995, ultraxg, ultrax, ultrax, ultrax, ssv_state, ultrax, ROT270, "Banpresto / Tsuburaya Productions", "Ultra X Weapons / Ultra Keibitai (GAMEST review build)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) // 95-02-16 15:30:24 on startup (newer, but could have pause functionality due to being a review build so left as clone)
+GAME( 1995, ultrax, 0, ultrax, ultrax, ssv_state, ultrax, ROT270, "Banpresto / Tsuburaya Productions", "Ultra X Weapons / Ultra Keibitai", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // 95-01-30 13:27:15 on startup
+GAME( 1995, ultraxg, ultrax, ultrax, ultrax, ssv_state, ultrax, ROT270, "Banpresto / Tsuburaya Productions", "Ultra X Weapons / Ultra Keibitai (GAMEST review build)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // 95-02-16 15:30:24 on startup (newer, but could have pause functionality due to being a review build so left as clone)
-GAME( 1996, janjans1, 0, janjans1, janjans1, ssv_state, janjans1, ROT0, "Visco", "Lovely Pop Mahjong JangJang Shimasho (Japan)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+GAME( 1996, janjans1, 0, janjans1, janjans1, ssv_state, janjans1, ROT0, "Visco", "Lovely Pop Mahjong JangJang Shimasho (Japan)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
-GAME( 1996?, meosism, 0, meosism, meosism, ssv_state, meosism, ROT0, "Sammy", "Meosis Magic (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+GAME( 1996?, meosism, 0, meosism, meosism, ssv_state, meosism, ROT0, "Sammy", "Meosis Magic (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
-GAME( 1996, stmblade, 0, stmblade, stmblade, ssv_state, stmblade, ROT270, "Visco", "Storm Blade (US)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1996, stmbladej, stmblade, stmblade, stmblade, ssv_state, stmblade, ROT270, "Visco", "Storm Blade (Japan)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+GAME( 1996, stmblade, 0, stmblade, stmblade, ssv_state, stmblade, ROT270, "Visco", "Storm Blade (US)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1996, stmbladej, stmblade, stmblade, stmblade, ssv_state, stmblade, ROT270, "Visco", "Storm Blade (Japan)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
-GAME( 1997, hypreac2, 0, hypreac2, hypreac2, ssv_state, hypreac2, ROT0, "Sammy", "Mahjong Hyper Reaction 2 (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+GAME( 1997, hypreac2, 0, hypreac2, hypreac2, ssv_state, hypreac2, ROT0, "Sammy", "Mahjong Hyper Reaction 2 (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
-GAME( 1997, jsk, 0, jsk, jsk, ssv_state, jsk, ROT0, "Visco", "Joryuu Syougi Kyoushitsu (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+GAME( 1997, jsk, 0, jsk, jsk, ssv_state, jsk, ROT0, "Visco", "Joryuu Syougi Kyoushitsu (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
-GAME( 1997, koikois2, 0, janjans1, koikois2, ssv_state, janjans1, ROT0, "Visco", "Koi Koi Shimasho 2 - Super Real Hanafuda (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+GAME( 1997, koikois2, 0, janjans1, koikois2, ssv_state, janjans1, ROT0, "Visco", "Koi Koi Shimasho 2 - Super Real Hanafuda (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
-GAME( 1997, mslider, 0, mslider, mslider, ssv_state, mslider, ROT0, "Visco / Datt Japan", "Monster Slider (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+GAME( 1997, mslider, 0, mslider, mslider, ssv_state, mslider, ROT0, "Visco / Datt Japan", "Monster Slider (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
-GAME( 1997, srmp7, 0, srmp7, srmp7, ssv_state, srmp7, ROT0, "Seta", "Super Real Mahjong P7 (Japan)", GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1997, srmp7, 0, srmp7, srmp7, ssv_state, srmp7, ROT0, "Seta", "Super Real Mahjong P7 (Japan)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1998, ryorioh, 0, ryorioh, ryorioh, ssv_state, ryorioh, ROT0, "Visco", "Gourmet Battle Quiz Ryohrioh CooKing (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+GAME( 1998, ryorioh, 0, ryorioh, ryorioh, ssv_state, ryorioh, ROT0, "Visco", "Gourmet Battle Quiz Ryohrioh CooKing (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
-GAME( 1998, sxyreact, 0, sxyreact, sxyreact, ssv_state, sxyreact, ROT0, "Sammy", "Pachinko Sexy Reaction (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+GAME( 1998, sxyreact, 0, sxyreact, sxyreact, ssv_state, sxyreact, ROT0, "Sammy", "Pachinko Sexy Reaction (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
-GAME( 1999, sxyreac2, 0, sxyreac2, sxyreact, ssv_state, sxyreac2, ROT0, "Sammy", "Pachinko Sexy Reaction 2 (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+GAME( 1999, sxyreac2, 0, sxyreac2, sxyreact, ssv_state, sxyreac2, ROT0, "Sammy", "Pachinko Sexy Reaction 2 (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
-GAME( 1999, cairblad, 0, cairblad, cairblad, ssv_state, cairblad, ROT270, "Sammy", "Change Air Blade (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+GAME( 1999, cairblad, 0, cairblad, cairblad, ssv_state, cairblad, ROT270, "Sammy", "Change Air Blade (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
-GAME( 2000, janjans2, 0, janjans1, janjans2, ssv_state, janjans1, ROT0, "Visco", "Lovely Pop Mahjong JangJang Shimasho 2 (Japan)", GAME_NO_COCKTAIL | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+GAME( 2000, janjans2, 0, janjans1, janjans2, ssv_state, janjans1, ROT0, "Visco", "Lovely Pop Mahjong JangJang Shimasho 2 (Japan)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
-GAME( 2000, vasara, 0, vasara, vasara, ssv_state, vasara, ROT270, "Visco", "Vasara", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+GAME( 2000, vasara, 0, vasara, vasara, ssv_state, vasara, ROT270, "Visco", "Vasara", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
-GAME( 2001, vasara2, 0, vasara, vasara2, ssv_state, vasara, ROT270, "Visco", "Vasara 2 (set 1)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 2001, vasara2a, vasara2, vasara, vasara2, ssv_state, vasara, ROT270, "Visco", "Vasara 2 (set 2)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+GAME( 2001, vasara2, 0, vasara, vasara2, ssv_state, vasara, ROT270, "Visco", "Vasara 2 (set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 2001, vasara2a, vasara2, vasara, vasara2, ssv_state, vasara, ROT270, "Visco", "Vasara 2 (set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/ssystem3.c b/src/mame/drivers/ssystem3.c
index 4fe5a331cc5..03240af22b5 100644
--- a/src/mess/drivers/ssystem3.c
+++ b/src/mame/drivers/ssystem3.c
@@ -38,7 +38,6 @@ backup of playfield rom and picture/description of its board
#include "emu.h"
#include "includes/ssystem3.h"
-#include "machine/6522via.h"
#include "cpu/m6502/m6502.h"
#include "sound/dac.h"
@@ -60,7 +59,7 @@ void ssystem3_state::ssystem3_playfield_reset()
{
memset(&m_playfield, 0, sizeof(m_playfield));
m_playfield.signal=FALSE;
- // m_playfield.on=TRUE; //ioport("Configuration")->read()&1;
+ // m_playfield.on=TRUE; //m_configuration->read()&1;
}
void ssystem3_state::ssystem3_playfield_write(int reset, int signal)
@@ -91,7 +90,7 @@ void ssystem3_state::ssystem3_playfield_write(int reset, int signal)
if (d) m_playfield.data|=1<<(m_playfield.bit^7);
m_playfield.bit++;
if (m_playfield.bit==8) {
- logerror("%.4x playfield wrote %d %02x\n", (int)machine().device("maincpu")->safe_pc(), m_playfield.count, m_playfield.data);
+ logerror("%.4x playfield wrote %d %02x\n", (int)m_maincpu->pc(), m_playfield.count, m_playfield.data);
m_playfield.u.data[m_playfield.count]=m_playfield.data;
m_playfield.bit=0;
m_playfield.count=(m_playfield.count+1)%ARRAY_LENGTH(m_playfield.u.data);
@@ -110,7 +109,7 @@ void ssystem3_state::ssystem3_playfield_write(int reset, int signal)
void ssystem3_state::ssystem3_playfield_read(int *on, int *ready)
{
- *on=!(ioport("Configuration")->read()&1);
+ *on = !(m_configuration->read() & 1);
// *on=!m_playfield.on;
*ready=FALSE;
}
@@ -125,39 +124,39 @@ READ8_MEMBER(ssystem3_state::ssystem3_via_read_a)
{
UINT8 data=0xff;
#if 1 // time switch
- if (!(m_porta&0x10)) data&=ioport("matrix1")->read()|0xf1;
- if (!(m_porta&0x20)) data&=ioport("matrix2")->read()|0xf1;
- if (!(m_porta&0x40)) data&=ioport("matrix3")->read()|0xf1;
- if (!(m_porta&0x80)) data&=ioport("matrix4")->read()|0xf1;
+ if (!(m_porta&0x10)) data&=m_matrix[0]->read()|0xf1;
+ if (!(m_porta&0x20)) data&=m_matrix[1]->read()|0xf1;
+ if (!(m_porta&0x40)) data&=m_matrix[2]->read()|0xf1;
+ if (!(m_porta&0x80)) data&=m_matrix[3]->read()|0xf1;
#else
- if (!(m_porta&0x10)) data&=ioport("matrix1")->read()|0xf0;
- if (!(m_porta&0x20)) data&=ioport("matrix2")->read()|0xf0;
- if (!(m_porta&0x40)) data&=ioport("matrix3")->read()|0xf0;
- if (!(m_porta&0x80)) data&=ioport("matrix4")->read()|0xf0;
+ if (!(m_porta&0x10)) data&=m_matrix[0]->read()|0xf0;
+ if (!(m_porta&0x20)) data&=m_matrix[1]->read()|0xf0;
+ if (!(m_porta&0x40)) data&=m_matrix[2]->read()|0xf0;
+ if (!(m_porta&0x80)) data&=m_matrix[3]->read()|0xf0;
#endif
if (!(m_porta&1)) {
- if (!(ioport("matrix1")->read()&1)) data&=~0x10;
- if (!(ioport("matrix2")->read()&1)) data&=~0x20;
- if (!(ioport("matrix3")->read()&1)) data&=~0x40;
- if (!(ioport("matrix4")->read()&1)) data&=~0x80;
+ if (!(m_matrix[0]->read()&1)) data&=~0x10;
+ if (!(m_matrix[1]->read()&1)) data&=~0x20;
+ if (!(m_matrix[2]->read()&1)) data&=~0x40;
+ if (!(m_matrix[3]->read()&1)) data&=~0x80;
}
if (!(m_porta&2)) {
- if (!(ioport("matrix1")->read()&2)) data&=~0x10;
- if (!(ioport("matrix2")->read()&2)) data&=~0x20;
- if (!(ioport("matrix3")->read()&2)) data&=~0x40;
- if (!(ioport("matrix4")->read()&2)) data&=~0x80;
+ if (!(m_matrix[0]->read()&2)) data&=~0x10;
+ if (!(m_matrix[1]->read()&2)) data&=~0x20;
+ if (!(m_matrix[2]->read()&2)) data&=~0x40;
+ if (!(m_matrix[3]->read()&2)) data&=~0x80;
}
if (!(m_porta&4)) {
- if (!(ioport("matrix1")->read()&4)) data&=~0x10;
- if (!(ioport("matrix2")->read()&4)) data&=~0x20;
- if (!(ioport("matrix3")->read()&4)) data&=~0x40;
- if (!(ioport("matrix4")->read()&4)) data&=~0x80;
+ if (!(m_matrix[0]->read()&4)) data&=~0x10;
+ if (!(m_matrix[1]->read()&4)) data&=~0x20;
+ if (!(m_matrix[2]->read()&4)) data&=~0x40;
+ if (!(m_matrix[3]->read()&4)) data&=~0x80;
}
if (!(m_porta&8)) {
- if (!(ioport("matrix1")->read()&8)) data&=~0x10;
- if (!(ioport("matrix2")->read()&8)) data&=~0x20;
- if (!(ioport("matrix3")->read()&8)) data&=~0x40;
- if (!(ioport("matrix4")->read()&8)) data&=~0x80;
+ if (!(m_matrix[0]->read()&8)) data&=~0x10;
+ if (!(m_matrix[1]->read()&8)) data&=~0x20;
+ if (!(m_matrix[2]->read()&8)) data&=~0x40;
+ if (!(m_matrix[3]->read()&8)) data&=~0x80;
}
// logerror("%.4x via port a read %02x\n",(int)activecpu_get_pc(), data);
return data;
@@ -197,22 +196,21 @@ READ8_MEMBER(ssystem3_state::ssystem3_via_read_b)
WRITE8_MEMBER(ssystem3_state::ssystem3_via_write_b)
{
- ssystem3_playfield_write(data&1, data&8);
- ssystem3_lcd_write(data&4, data&2);
+ ssystem3_playfield_write(data & 1, data & 8);
+ ssystem3_lcd_write(data & 4, data & 2);
// TODO: figure out what this is trying to achieve
- via6522_device *via_0 = machine().device<via6522_device>("via6522_0");
- UINT8 d=ssystem3_via_read_b(space, 0, mem_mask)&~0x40;
- if (data&0x80) d|=0x40;
+ UINT8 d = ssystem3_via_read_b(space, 0, mem_mask) & ~0x40;
+ if (data & 0x80) d |= 0x40;
// d&=~0x8f;
- via_0->write_pb0((d>>0)&1);
- via_0->write_pb1((d>>1)&1);
- via_0->write_pb2((d>>2)&1);
- via_0->write_pb3((d>>3)&1);
- via_0->write_pb4((d>>4)&1);
- via_0->write_pb5((d>>5)&1);
- via_0->write_pb6((d>>6)&1);
- via_0->write_pb7((d>>7)&1);
+ m_via6522_0->write_pb0((d >> 0) & 1);
+ m_via6522_0->write_pb1((d >> 1) & 1);
+ m_via6522_0->write_pb2((d >> 2) & 1);
+ m_via6522_0->write_pb3((d >> 3) & 1);
+ m_via6522_0->write_pb4((d >> 4) & 1);
+ m_via6522_0->write_pb5((d >> 5) & 1);
+ m_via6522_0->write_pb6((d >> 6) & 1);
+ m_via6522_0->write_pb7((d >> 7) & 1);
}
DRIVER_INIT_MEMBER(ssystem3_state,ssystem3)
@@ -252,22 +250,22 @@ static INPUT_PORTS_START( ssystem3 )
//PORT_BIT(0x001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("NEW GAME") PORT_CODE(KEYCODE_F3) // seems to be direct wired to reset
// PORT_BIT(0x002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("?CLEAR") PORT_CODE(KEYCODE_F1)
// PORT_BIT(0x004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("?ENTER") PORT_CODE(KEYCODE_ENTER)
- PORT_START( "matrix1" )
+ PORT_START( "matrix.0" )
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("?1") PORT_CODE(KEYCODE_1_PAD)
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9 C SQ EP") PORT_CODE(KEYCODE_9)
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("ENTER?") PORT_CODE(KEYCODE_ENTER)
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0 C BOARD MD") PORT_CODE(KEYCODE_0)
- PORT_START( "matrix2" )
+ PORT_START( "matrix.1" )
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("?2") PORT_CODE(KEYCODE_2_PAD)
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6 F springer zeitvorgabe") PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_F)
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5 E laeufer ruecknahme") PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_E)
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CE interrupt") PORT_CODE(KEYCODE_BACKSPACE)
- PORT_START( "matrix3" )
+ PORT_START( "matrix.2" )
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("?3") PORT_CODE(KEYCODE_3_PAD)
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7 G bauer zugvorschlaege") PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_G)
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("4 D turm #") PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_D)
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1 A white") PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_A)
- PORT_START( "matrix4" )
+ PORT_START( "matrix.3" )
PORT_DIPNAME( 0x01, 0, "Time") PORT_CODE(KEYCODE_T) PORT_TOGGLE PORT_DIPSETTING( 0, DEF_STR(Off) ) PORT_DIPSETTING( 0x01, DEF_STR( On ) )
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8 H black") PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_H)
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("3 C dame #50") PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_C)
@@ -335,5 +333,5 @@ ROM_END
***************************************************************************/
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
-CONS( 1979, ssystem3, 0, 0, ssystem3, ssystem3, ssystem3_state, ssystem3, "NOVAG Industries Ltd", "Chess Champion Super System III", GAME_NOT_WORKING | GAME_NO_SOUND)
+CONS( 1979, ssystem3, 0, 0, ssystem3, ssystem3, ssystem3_state, ssystem3, "NOVAG Industries Ltd", "Chess Champion Super System III", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
//chess champion MK III in germany
diff --git a/src/mame/drivers/st_mp100.c b/src/mame/drivers/st_mp100.c
index 7e08ba6e4d5..9a661aa0f05 100644
--- a/src/mame/drivers/st_mp100.c
+++ b/src/mame/drivers/st_mp100.c
@@ -849,19 +849,19 @@ ROM_START(magic)
ROM_END
// chimes
-GAME(1977, pinball, 0, st_mp100, mp100, driver_device, 0, ROT0, "Stern", "Pinball", GAME_MECHANICAL)
-GAME(1977, stingray, 0, st_mp100, mp100, driver_device, 0, ROT0, "Stern", "Stingray", GAME_MECHANICAL)
-GAME(1978, stars, 0, st_mp100, mp100, driver_device, 0, ROT0, "Stern", "Stars", GAME_MECHANICAL)
-GAME(1978, memlane, 0, st_mp100, mp100, driver_device, 0, ROT0, "Stern", "Memory Lane", GAME_MECHANICAL)
+GAME(1977, pinball, 0, st_mp100, mp100, driver_device, 0, ROT0, "Stern", "Pinball", MACHINE_MECHANICAL)
+GAME(1977, stingray, 0, st_mp100, mp100, driver_device, 0, ROT0, "Stern", "Stingray", MACHINE_MECHANICAL)
+GAME(1978, stars, 0, st_mp100, mp100, driver_device, 0, ROT0, "Stern", "Stars", MACHINE_MECHANICAL)
+GAME(1978, memlane, 0, st_mp100, mp100, driver_device, 0, ROT0, "Stern", "Memory Lane", MACHINE_MECHANICAL)
// sound unit B-521
-GAME(1978, lectrono, 0, st_mp100, mp100, driver_device, 0, ROT0, "Stern", "Lectronamo", GAME_MECHANICAL | GAME_NO_SOUND )
-GAME(1978, wildfyre, 0, st_mp100, mp100, driver_device, 0, ROT0, "Stern", "Wildfyre", GAME_MECHANICAL | GAME_NO_SOUND )
-GAME(1978, nugent, 0, st_mp100, mp100, driver_device, 0, ROT0, "Stern", "Nugent", GAME_MECHANICAL | GAME_NO_SOUND )
-GAME(1979, dracula, 0, st_mp100, mp100, driver_device, 0, ROT0, "Stern", "Dracula (Pinball)", GAME_MECHANICAL | GAME_NO_SOUND )
+GAME(1978, lectrono, 0, st_mp100, mp100, driver_device, 0, ROT0, "Stern", "Lectronamo", MACHINE_MECHANICAL | MACHINE_NO_SOUND )
+GAME(1978, wildfyre, 0, st_mp100, mp100, driver_device, 0, ROT0, "Stern", "Wildfyre", MACHINE_MECHANICAL | MACHINE_NO_SOUND )
+GAME(1978, nugent, 0, st_mp100, mp100, driver_device, 0, ROT0, "Stern", "Nugent", MACHINE_MECHANICAL | MACHINE_NO_SOUND )
+GAME(1979, dracula, 0, st_mp100, mp100, driver_device, 0, ROT0, "Stern", "Dracula (Pinball)", MACHINE_MECHANICAL | MACHINE_NO_SOUND )
// different inputs
-GAME(1979, trident, 0, st_mp100, mp200, driver_device, 0, ROT0, "Stern", "Trident", GAME_MECHANICAL | GAME_NO_SOUND )
-GAME(1979, hothand, 0, st_mp100, mp200, driver_device, 0, ROT0, "Stern", "Hot Hand", GAME_MECHANICAL | GAME_NO_SOUND )
-GAME(1979, princess, 0, st_mp100, mp200, driver_device, 0, ROT0, "Stern", "Cosmic Princess", GAME_MECHANICAL | GAME_NO_SOUND )
-GAME(1979, magic, 0, st_mp100, mp200, driver_device, 0, ROT0, "Stern", "Magic", GAME_MECHANICAL | GAME_NO_SOUND )
+GAME(1979, trident, 0, st_mp100, mp200, driver_device, 0, ROT0, "Stern", "Trident", MACHINE_MECHANICAL | MACHINE_NO_SOUND )
+GAME(1979, hothand, 0, st_mp100, mp200, driver_device, 0, ROT0, "Stern", "Hot Hand", MACHINE_MECHANICAL | MACHINE_NO_SOUND )
+GAME(1979, princess, 0, st_mp100, mp200, driver_device, 0, ROT0, "Stern", "Cosmic Princess", MACHINE_MECHANICAL | MACHINE_NO_SOUND )
+GAME(1979, magic, 0, st_mp100, mp200, driver_device, 0, ROT0, "Stern", "Magic", MACHINE_MECHANICAL | MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/st_mp200.c b/src/mame/drivers/st_mp200.c
index 341dca0e7f5..014d8b0af06 100644
--- a/src/mame/drivers/st_mp200.c
+++ b/src/mame/drivers/st_mp200.c
@@ -917,31 +917,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)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1980, galaxypi, 0, st_mp200, mp200, st_mp200_state, st_mp202, ROT0, "Stern", "Galaxy", GAME_IS_SKELETON_MECHANICAL)
-GAME(1980, ali, 0, st_mp200, mp200, st_mp200_state, st_mp202, ROT0, "Stern", "Ali", GAME_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", GAME_IS_SKELETON_MECHANICAL)
-GAME(1980, cheetah, 0, st_mp200, mp200, st_mp200_state, st_mp200, ROT0, "Stern", "Cheetah", GAME_IS_SKELETON_MECHANICAL)
-GAME(1980, quicksil, 0, st_mp200, mp200, st_mp200_state, st_mp200, ROT0, "Stern", "Quicksilver", GAME_IS_SKELETON_MECHANICAL)
-GAME(1980, seawitch, 0, st_mp200, mp200, st_mp200_state, st_mp200, ROT0, "Stern", "Seawitch", GAME_IS_SKELETON_MECHANICAL)
-GAME(1980, nineball, 0, st_mp200, mp200, st_mp200_state, st_mp200, ROT0, "Stern", "Nine Ball", GAME_IS_SKELETON_MECHANICAL)
-GAME(1981, lightnin, 0, st_mp201, mp200, st_mp200_state, st_mp201, ROT0, "Stern", "Lightning", GAME_IS_SKELETON_MECHANICAL)
-GAME(1980, stargzr, 0, st_mp200, mp200, st_mp200_state, st_mp200, ROT0, "Stern", "Stargazer", GAME_IS_SKELETON_MECHANICAL)
-GAME(1981, spltsecp, 0, st_mp201, mp200, st_mp200_state, st_mp201, ROT0, "Stern", "Split Second (Pinball)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1981, catacomp, 0, st_mp201, mp200, st_mp200_state, st_mp201, ROT0, "Stern", "Catacomb (Pinball)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1982, dragfist, 0, st_mp200, mp200, st_mp200_state, st_mp200, ROT0, "Stern", "Dragonfist", GAME_IS_SKELETON_MECHANICAL)
-GAME(1984, lazrlord, 0, st_mp200, mp200, st_mp200_state, st_mp200, ROT0, "Stern", "Lazer Lord", GAME_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", GAME_IS_SKELETON_MECHANICAL)
-GAME(1981, freefall, 0, st_mp201, mp200, st_mp200_state, st_mp201, ROT0, "Stern", "Freefall", GAME_IS_SKELETON_MECHANICAL)
-GAME(1981, viperp, 0, st_mp200, mp200, st_mp200_state, st_mp200, ROT0, "Stern", "Viper (Pinball)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1981, ironmaid, 0, st_mp200, mp200, st_mp200_state, st_mp200, ROT0, "Stern", "Iron Maiden", GAME_IS_SKELETON_MECHANICAL)
-GAME(1982, orbitor1, 0, st_mp201, mp200, st_mp200_state, st_mp201, ROT0, "Stern", "Orbitor 1", GAME_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", GAME_IS_SKELETON_MECHANICAL)
-GAME(1978, blkshpsq, 0, st_mp200, mp200, st_mp200_state, st_mp202, ROT0, "Astro", "Black Sheep Squadron", GAME_IS_SKELETON_MECHANICAL)
-GAME(198?, st_game, 0, st_mp200, mp200, st_mp200_state, st_mp200, ROT0, "<unknown>", "unknown pinball game", GAME_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>", "unknown pinball game", MACHINE_IS_SKELETON_MECHANICAL)
diff --git a/src/mame/drivers/stactics.c b/src/mame/drivers/stactics.c
index 23a6b0661e0..2b556a6b752 100644
--- a/src/mame/drivers/stactics.c
+++ b/src/mame/drivers/stactics.c
@@ -347,4 +347,4 @@ ROM_END
*
*************************************/
-GAMEL( 1981, stactics, 0, stactics, stactics, driver_device, 0, ORIENTATION_FLIP_X, "Sega", "Space Tactics", GAME_NO_SOUND | GAME_SUPPORTS_SAVE, layout_stactics )
+GAMEL( 1981, stactics, 0, stactics, stactics, driver_device, 0, ORIENTATION_FLIP_X, "Sega", "Space Tactics", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE, layout_stactics )
diff --git a/src/mame/drivers/stadhero.c b/src/mame/drivers/stadhero.c
index 30a2e66d035..e8fc5e9a4e1 100644
--- a/src/mame/drivers/stadhero.c
+++ b/src/mame/drivers/stadhero.c
@@ -285,4 +285,4 @@ ROM_END
/******************************************************************************/
-GAME( 1988, stadhero, 0, stadhero, stadhero, driver_device, 0, ROT0, "Data East Corporation", "Stadium Hero (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1988, stadhero, 0, stadhero, stadhero, driver_device, 0, ROT0, "Data East Corporation", "Stadium Hero (Japan)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/starcrus.c b/src/mame/drivers/starcrus.c
index de3c7d087ab..71998e30cd5 100644
--- a/src/mame/drivers/starcrus.c
+++ b/src/mame/drivers/starcrus.c
@@ -189,4 +189,4 @@ ROM_START( starcrus )
ROM_END
-GAME( 1977, starcrus, 0, starcrus, starcrus, driver_device, 0, ROT0, "RamTek", "Star Cruiser", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1977, starcrus, 0, starcrus, starcrus, driver_device, 0, ROT0, "Ramtek", "Star Cruiser", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/starfire.c b/src/mame/drivers/starfire.c
index 82c9d43511c..8500218a862 100644
--- a/src/mame/drivers/starfire.c
+++ b/src/mame/drivers/starfire.c
@@ -473,7 +473,7 @@ DRIVER_INIT_MEMBER(starfire_state,fireone)
*
*************************************/
-GAME( 1979, starfire, 0, starfire, starfire, starfire_state, starfire, ROT0, "Exidy", "Star Fire (set 1)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1979, starfirea,starfire, starfire, starfire, starfire_state, starfire, ROT0, "Exidy", "Star Fire (set 2)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1979, fireone, 0, fireone, fireone, starfire_state, fireone, ROT0, "Exidy", "Fire One", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1979, starfir2, 0, starfire, starfire, starfire_state, starfire, ROT0, "Exidy", "Star Fire 2", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1979, starfire, 0, starfire, starfire, starfire_state, starfire, ROT0, "Exidy", "Star Fire (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1979, starfirea,starfire, starfire, starfire, starfire_state, starfire, ROT0, "Exidy", "Star Fire (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1979, fireone, 0, fireone, fireone, starfire_state, fireone, ROT0, "Exidy", "Fire One", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1979, starfir2, 0, starfire, starfire, starfire_state, starfire, ROT0, "Exidy", "Star Fire 2", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/starshp1.c b/src/mame/drivers/starshp1.c
index 22fce393d5c..60cefc0d6b0 100644
--- a/src/mame/drivers/starshp1.c
+++ b/src/mame/drivers/starshp1.c
@@ -393,5 +393,5 @@ ROM_START( starshpp )
ROM_END
-GAME( 1977, starshp1, 0, starshp1, starshp1, driver_device, 0, ORIENTATION_FLIP_X, "Atari", "Starship 1", GAME_IMPERFECT_SOUND )
-GAME( 1977, starshpp, starshp1, starshp1, starshp1, driver_device, 0, ORIENTATION_FLIP_X, "Atari", "Starship 1 (prototype?)", GAME_IMPERFECT_SOUND )
+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 )
diff --git a/src/mame/drivers/starwars.c b/src/mame/drivers/starwars.c
index 979d714f063..d0c9027ff1c 100644
--- a/src/mame/drivers/starwars.c
+++ b/src/mame/drivers/starwars.c
@@ -601,6 +601,6 @@ GAME( 1983, starwars1,starwars, starwars, starwars, starwars_state, starwars, RO
GAME( 1983, starwarso,starwars, starwars, starwars, starwars_state, starwars, ROT0, "Atari", "Star Wars (set 3)", 0 ) // oldest
// is there an even older starwars set with 136021-106.1m ?
-GAME( 1983, tomcatsw, tomcat, starwars, starwars, starwars_state, starwars, ROT0, "Atari", "TomCat (Star Wars hardware, prototype)", GAME_NO_SOUND )
+GAME( 1983, tomcatsw, tomcat, starwars, starwars, starwars_state, starwars, ROT0, "Atari", "TomCat (Star Wars hardware, prototype)", MACHINE_NO_SOUND )
GAME( 1985, esb, 0, starwars, esb, starwars_state, esb, ROT0, "Atari Games", "The Empire Strikes Back", 0 )
diff --git a/src/mame/drivers/statriv2.c b/src/mame/drivers/statriv2.c
index 8026f197c68..25456024294 100644
--- a/src/mame/drivers/statriv2.c
+++ b/src/mame/drivers/statriv2.c
@@ -1,9 +1,9 @@
// license:BSD-3-Clause
// copyright-holders:Angelo Salese, David Haywood, Ryan Holtz, Stephh, Pierpaolo Prazzoli, Roberto Fresca
/*****************************************************************
-* Status Triv Two driver by David Haywood, MooglyGuy, and Stephh *
-* Super Triv II driver by MooglyGuy *
-* Triv Quiz driver by MooglyGuy *
+* Status Triv Two driver by David Haywood, Ryan Holtz, and Stephh*
+* Super Triv II driver by Ryan Holtz *
+* Triv Quiz driver by Ryan Holtz *
* Triv Four driver by Pierpaolo Prazzoli *
* Super Triv III driver by Pierpaolo Prazzoli *
* Hangman driver by Pierpaolo Prazzoli *
@@ -13,7 +13,7 @@
* *
* All notes by David Haywood unless otherwise noted *
* *
-* Thanks to MooglyGuy for working out why statriv2 was crashing *
+* Thanks to Ryan Holtz for working out why statriv2 was crashing *
* in attract and fixing the questions so it actually asked more *
* than one per category. *
* *
@@ -1082,7 +1082,7 @@ DRIVER_INIT_MEMBER(statriv2_state,addr_lmhe)
* anyone can figure out a way to simplify the *
* formula I'm using, PLEASE DO SO! *
* *
- * - MooglyGuy *
+ * - Ryan Holtz*
* *
\***************************************************/
@@ -1125,16 +1125,16 @@ DRIVER_INIT_MEMBER(statriv2_state,laserdisc)
*
*************************************/
-GAME( 1981, statusbj, 0, statriv2, statusbj, driver_device, 0, ROT0, "Status Games", "Status Black Jack (V1.0c)", GAME_SUPPORTS_SAVE )
-GAME( 1981, funcsino, 0, funcsino, funcsino, driver_device, 0, ROT0, "Status Games", "Status Fun Casino (V1.3s)", GAME_SUPPORTS_SAVE )
-GAME( 1981, tripdraw, 0, statriv2, funcsino, driver_device, 0, ROT0, "Status Games", "Tripple Draw (V3.1 s)", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
-GAME( 1984, hangman, 0, statriv2, hangman, statriv2_state, addr_lmh, ROT0, "Status Games", "Hangman", GAME_SUPPORTS_SAVE )
-GAME( 1984, trivquiz, 0, statriv2, statriv2, statriv2_state, addr_lhx, ROT0, "Status Games", "Triv Quiz", GAME_SUPPORTS_SAVE )
-GAME( 1984, statriv2, 0, statriv2, statriv2, statriv2_state, addr_xlh, ROT0, "Status Games", "Triv Two", GAME_SUPPORTS_SAVE )
-GAME( 1985, statriv2v,statriv2, statriv2v, statriv2, statriv2_state, addr_xlh, ROT90,"Status Games", "Triv Two (Vertical)", GAME_SUPPORTS_SAVE )
-GAME( 1985, statriv4, 0, statriv2, statriv4, statriv2_state, addr_xhl, ROT0, "Status Games", "Triv Four", GAME_SUPPORTS_SAVE )
-GAME( 1985, sextriv, 0, statriv2, sextriv, statriv2_state, addr_lhx, ROT0, "Status Games", "Sex Triv", GAME_SUPPORTS_SAVE )
-GAME( 1985, quaquiz2, 0, statriv2, quaquiz2, statriv2_state, addr_lmh, ROT0, "Status Games", "Quadro Quiz II", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
-GAME( 1986, supertr2, 0, statriv2, supertr2, statriv2_state, addr_lmhe, ROT0, "Status Games", "Super Triv II", GAME_SUPPORTS_SAVE )
-GAME( 1988, supertr3, 0, statriv2, supertr2, statriv2_state, addr_lmh, ROT0, "Status Games", "Super Triv III", GAME_SUPPORTS_SAVE )
-GAME( 1990, cstripxi, 0, statriv2, funcsino, statriv2_state, laserdisc, ROT0, "Status Games", "Casino Strip XI", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
+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, 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( 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.c b/src/mame/drivers/stellafr.c
index 1a39ef52dfc..af12d541c47 100644
--- a/src/mame/drivers/stellafr.c
+++ b/src/mame/drivers/stellafr.c
@@ -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)", GAME_IS_SKELETON_MECHANICAL )
-GAME(199?, st_vulkn, 0, stellafr, stellafr, driver_device, 0, ROT0, "Stella", "Vulkan (Stella)", GAME_IS_SKELETON_MECHANICAL )
+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 )
diff --git a/src/mame/drivers/stfight.c b/src/mame/drivers/stfight.c
index 9a2d235754b..2b551a1212f 100644
--- a/src/mame/drivers/stfight.c
+++ b/src/mame/drivers/stfight.c
@@ -1043,12 +1043,12 @@ ROM_START( cshooter )
ROM_LOAD( "82s123.7a", 0x0800, 0x0020, CRC(93e2d292) SHA1(af8edd0cfe85f28ede9604cfaf4516d54e5277c9) ) // sprite color related? (not used)
ROM_END
-// Note: Marked GAME_IMPERFECT_SOUND due to YM2203 clock issue
-GAME( 1986, empcity, 0, stfight, stfight, stfight_state, empcity, ROT0, "Seibu Kaihatsu", "Empire City: 1931 (bootleg?)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1986, empcityu, empcity, stfight, stfight, stfight_state, stfight, ROT0, "Seibu Kaihatsu (Taito / Romstar license)", "Empire City: 1931 (US)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // different title logo
-GAME( 1986, empcityj, empcity, stfight, stfight, stfight_state, stfight, ROT0, "Seibu Kaihatsu (Taito license)", "Empire City: 1931 (Japan)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1986, empcityi, empcity, stfight, stfight, stfight_state, stfight, ROT0, "Seibu Kaihatsu (Eurobed license)", "Empire City: 1931 (Italy)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1986, stfight, empcity, stfight, stfight, stfight_state, stfight, ROT0, "Seibu Kaihatsu (Tuning license)", "Street Fight (Germany)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1986, stfighta, empcity, stfight, stfight, stfight_state, stfight, ROT0, "Seibu Kaihatsu", "Street Fight (bootleg?)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+// Note: Marked MACHINE_IMPERFECT_SOUND due to YM2203 clock issue
+GAME( 1986, empcity, 0, stfight, stfight, stfight_state, empcity, ROT0, "Seibu Kaihatsu", "Empire City: 1931 (bootleg?)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1986, empcityu, empcity, stfight, stfight, stfight_state, stfight, ROT0, "Seibu Kaihatsu (Taito / Romstar license)", "Empire City: 1931 (US)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // different title logo
+GAME( 1986, empcityj, empcity, stfight, stfight, stfight_state, stfight, ROT0, "Seibu Kaihatsu (Taito license)", "Empire City: 1931 (Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1986, empcityi, empcity, stfight, stfight, stfight_state, stfight, ROT0, "Seibu Kaihatsu (Eurobed license)", "Empire City: 1931 (Italy)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1986, stfight, empcity, stfight, stfight, stfight_state, stfight, ROT0, "Seibu Kaihatsu (Tuning license)", "Street Fight (Germany)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1986, stfighta, empcity, stfight, stfight, stfight_state, stfight, ROT0, "Seibu Kaihatsu", "Street Fight (bootleg?)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
/* Cross Shooter runs on a slightly modified PCB, with a different text tilemap and gfx blobs (see also cshooter.c) */
-GAME( 1987, cshooter, 0, cshooter,cshooter, stfight_state, cshooter,ROT270,"Seibu Kaihatsu (Taito license)", "Cross Shooter (not encrypted)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
+GAME( 1987, cshooter, 0, cshooter,cshooter, stfight_state, cshooter,ROT270,"Seibu Kaihatsu (Taito license)", "Cross Shooter (not encrypted)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/stlforce.c b/src/mame/drivers/stlforce.c
index 35c08ade4e6..102eb722f59 100644
--- a/src/mame/drivers/stlforce.c
+++ b/src/mame/drivers/stlforce.c
@@ -372,6 +372,6 @@ DRIVER_INIT_MEMBER(stlforce_state,twinbrat)
}
-GAME( 1994, stlforce, 0, stlforce, stlforce, stlforce_state, stlforce, ROT0, "Electronic Devices Italy / Ecogames S.L. Spain", "Steel Force", GAME_SUPPORTS_SAVE )
-GAME( 1995, twinbrat, 0, twinbrat, stlforce, stlforce_state, twinbrat, ROT0, "Elettronica Video-Games S.R.L.", "Twin Brats (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1995, twinbrata,twinbrat, twinbrat, stlforce, stlforce_state, twinbrat, ROT0, "Elettronica Video-Games S.R.L.", "Twin Brats (set 2)", GAME_SUPPORTS_SAVE )
+GAME( 1994, stlforce, 0, stlforce, stlforce, stlforce_state, stlforce, ROT0, "Electronic Devices Italy / Ecogames S.L. Spain", "Steel Force", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, twinbrat, 0, twinbrat, stlforce, stlforce_state, twinbrat, ROT0, "Elettronica Video-Games S.R.L.", "Twin Brats (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1995, twinbrata,twinbrat, twinbrat, stlforce, stlforce_state, twinbrat, ROT0, "Elettronica Video-Games S.R.L.", "Twin Brats (set 2)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/stratos.c b/src/mame/drivers/stratos.c
index bd8fd20083e..3ad13837193 100644
--- a/src/mess/drivers/stratos.c
+++ b/src/mame/drivers/stratos.c
@@ -367,4 +367,4 @@ ROM_START( stratos )
ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
-CONS( 1986, stratos, 0, 0, stratos, stratos, stratos_state, stratos, "Saitek", "Kasparov Stratos Chess Computer", GAME_NO_SOUND)
+CONS( 1986, stratos, 0, 0, stratos, stratos, stratos_state, stratos, "Saitek", "Kasparov Stratos Chess Computer", MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/strnskil.c b/src/mame/drivers/strnskil.c
index 9a4becfbef8..33335cf6d58 100644
--- a/src/mame/drivers/strnskil.c
+++ b/src/mame/drivers/strnskil.c
@@ -543,7 +543,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", GAME_SUPPORTS_SAVE )
-GAME( 1984, guiness, strnskil, strnskil, strnskil, driver_device, 0, ROT0, "Sun Electronics", "The Guiness (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1984, banbam, 0, banbam, banbam, strnskil_state, banbam, ROT0, "Sun Electronics", "BanBam", GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE )
-GAME( 1984, pettanp, banbam, strnskil, banbam, strnskil_state, pettanp, ROT0, "Sun Electronics", "Pettan Pyuu (Japan)", GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/studio2.c b/src/mame/drivers/studio2.c
index 6c731019253..46efbaf963b 100644
--- a/src/mess/drivers/studio2.c
+++ b/src/mame/drivers/studio2.c
@@ -749,11 +749,11 @@ DRIVER_INIT_MEMBER(studio2_state,studio2)
/* Game Drivers */
// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS
-CONS( 1977, studio2, 0, 0, studio2, studio2, studio2_state, studio2, "RCA", "Studio II", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-CONS( 1978, visicom, studio2,0, visicom, studio2, studio2_state, studio2, "Toshiba", "Visicom COM-100 (Japan)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-CONS( 1978, mpt02, studio2,0, mpt02, studio2, studio2_state, studio2, "Soundic", "Victory MPT-02 Home TV Programmer (Austria)", GAME_SUPPORTS_SAVE )
-CONS( 1978, mpt02h, studio2,0, mpt02, studio2, studio2_state, studio2, "Hanimex", "MPT-02 Jeu TV Programmable (France)", GAME_SUPPORTS_SAVE )
-CONS( 1978, mtc9016, studio2,0, mpt02, studio2, studio2_state, studio2, "Mustang", "9016 Telespiel Computer (Germany)", GAME_SUPPORTS_SAVE )
-CONS( 1978, shmc1200, studio2,0, mpt02, studio2, studio2_state, studio2, "Sheen", "M1200 Micro Computer (Australia)", GAME_SUPPORTS_SAVE )
-CONS( 1978, cm1200, studio2,0, mpt02, studio2, studio2_state, studio2, "Conic", "M-1200 (?)", GAME_SUPPORTS_SAVE )
-CONS( 1978, apollo80, studio2,0, mpt02, studio2, studio2_state, studio2, "Academy", "Apollo 80 (Germany)", GAME_SUPPORTS_SAVE )
+CONS( 1977, studio2, 0, 0, studio2, studio2, studio2_state, studio2, "RCA", "Studio II", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+CONS( 1978, visicom, studio2,0, visicom, studio2, studio2_state, studio2, "Toshiba", "Visicom COM-100 (Japan)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+CONS( 1978, mpt02, studio2,0, mpt02, studio2, studio2_state, studio2, "Soundic", "Victory MPT-02 Home TV Programmer (Austria)", MACHINE_SUPPORTS_SAVE )
+CONS( 1978, mpt02h, studio2,0, mpt02, studio2, studio2_state, studio2, "Hanimex", "MPT-02 Jeu TV Programmable (France)", MACHINE_SUPPORTS_SAVE )
+CONS( 1978, mtc9016, studio2,0, mpt02, studio2, studio2_state, studio2, "Mustang", "9016 Telespiel Computer (Germany)", MACHINE_SUPPORTS_SAVE )
+CONS( 1978, shmc1200, studio2,0, mpt02, studio2, studio2_state, studio2, "Sheen", "M1200 Micro Computer (Australia)", MACHINE_SUPPORTS_SAVE )
+CONS( 1978, cm1200, studio2,0, mpt02, studio2, studio2_state, studio2, "Conic", "M-1200 (?)", MACHINE_SUPPORTS_SAVE )
+CONS( 1978, apollo80, studio2,0, mpt02, studio2, studio2_state, studio2, "Academy", "Apollo 80 (Germany)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/stuntair.c b/src/mame/drivers/stuntair.c
index 941c66ccb76..3a4313187d3 100644
--- a/src/mame/drivers/stuntair.c
+++ b/src/mame/drivers/stuntair.c
@@ -577,4 +577,4 @@ ROM_START( stuntair )
ROM_END
-GAME( 1983, stuntair, 0, stuntair, stuntair, driver_device, 0, ROT90, "Nuova Videotron", "Stunt Air", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_COLORS | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
+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 )
diff --git a/src/mame/drivers/stv.c b/src/mame/drivers/stv.c
index 1daf5ceb818..bcb83622df3 100644
--- a/src/mame/drivers/stv.c
+++ b/src/mame/drivers/stv.c
@@ -3039,88 +3039,88 @@ ROM_START( pclb2elk ) // set to 1p
ROM_END
-GAME( 1996, stvbios, 0, stv_slot, stv, stv_state, stv, ROT0, "Sega", "ST-V Bios", GAME_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
/* Playable */
-GAME( 1998, astrass, stvbios, stv_5881, stv6b, stv_state, astrass, ROT0, "Sunsoft", "Astra SuperStars (J 980514 V1.002)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1995, bakubaku, stvbios, stv, stv, stv_state, stv, ROT0, "Sega", "Baku Baku Animal (J 950407 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, batmanfr, stvbios, batmanfr, stv, stv_state, batmanfr, ROT0, "Acclaim", "Batman Forever (JUE 960507 V1.000)", GAME_NO_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, colmns97, stvbios, stv, stv, stv_state, colmns97, ROT0, "Sega", "Columns '97 (JET 961209 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, cotton2, stvbios, stv, stv, stv_state, cotton2, ROT0, "Success", "Cotton 2 (JUET 970902 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1998, cottonbm, stvbios, stv, stv, stv_state, cottonbm, ROT0, "Success", "Cotton Boomerang (JUET 980709 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1995, critcrsh, stvbios, stv, critcrsh, stv_state, critcrsh, ROT0, "Sega", "Critter Crusher (EA 951204 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1999, danchih, stvbios, stv, stvmp, stv_state, danchih, ROT0, "Altron (Tecmo license)", "Danchi de Hanafuda (J 990607 V1.400)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 2000, danchiq, stvbios, stv, stv, stv_state, danchiq, ROT0, "Altron", "Danchi de Quiz Okusan Yontaku Desuyo! (J 001128 V1.200)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, diehard, stvbios, stv, stv, stv_state, diehard, ROT0, "Sega", "Die Hard Arcade (UET 960515 V1.000)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, dnmtdeka, diehard, stv, stv, stv_state, dnmtdeka, ROT0, "Sega", "Dynamite Deka (J 960515 V1.000)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1995, ejihon, stvbios, stv, stv, stv_state, stv, ROT0, "Sega", "Ejihon Tantei Jimusyo (J 950613 V1.000)", GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1999, ffreveng, stvbios, stv_5881, stv, stv_state, ffreveng, ROT0, "Capcom", "Final Fight Revenge (JUET 990714 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1995, fhboxers, stvbios, stv, stv, stv_state, fhboxers, ROT0, "Sega", "Funky Head Boxers (JUETBKAL 951218 V1.000)", GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1994, gaxeduel, stvbios, stv, stv6b, stv_state, gaxeduel, ROT0, "Sega", "Golden Axe - The Duel (JUETL 950117 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS)
-GAME( 1998, grdforce, stvbios, stv, stv, stv_state, grdforce, ROT0, "Success", "Guardian Force (JUET 980318 V0.105)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1998, groovef, stvbios, stv, stv6b, stv_state, groovef, ROT0, "Atlus", "Groove on Fight - Gouketsuji Ichizoku 3 (J 970416 V1.001)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, hanagumi, stvbios, stv, stv, stv_state, hanagumi, ROT0, "Sega", "Sakura Taisen - Hanagumi Taisen Columns (J 971007 V1.010)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, introdon, stvbios, stv, stv, stv_state, stv, ROT0, "Sunsoft / Success", "Karaoke Quiz Intro Don Don! (J 960213 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1995, kiwames, stvbios, stv, stvmp, stv_state, stvmp, ROT0, "Athena", "Pro Mahjong Kiwame S (J 951020 V1.208)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, maruchan, stvbios, stv, stv, stv_state, maruchan, ROT0, "Sega / Toyosuisan", "Maru-Chan de Goo! (J 971216 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, mausuke, stvbios, stv, stv, stv_state, mausuke, ROT0, "Data East", "Mausuke no Ojama the World (J 960314 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1998, myfairld, stvbios, stv, myfairld, stv_state, stvmp, ROT0, "Micronet", "Virtual Mahjong 2 - My Fair Lady (J 980608 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1998, othellos, stvbios, stv, stv, stv_state, othellos, ROT0, "Success", "Othello Shiyouyo (J 980423 V1.002)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1995, pblbeach, stvbios, stv, stv, stv_state, pblbeach, ROT0, "T&E Soft", "Pebble Beach - The Great Shot (JUE 950913 V0.990)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, prikura, stvbios, stv, stv, stv_state, prikura, ROT0, "Atlus", "Princess Clara Daisakusen (J 960910 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, puyosun, stvbios, stv, stv, stv_state, puyosun, ROT0, "Compile", "Puyo Puyo Sun (J 961115 V0.001)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1998, rsgun, stvbios, stv_5881, stv, stv_state, rsgun, ROT0, "Treasure", "Radiant Silvergun (JUET 980523 V1.000)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, sasissu, stvbios, stv, stv, stv_state, sasissu, ROT0, "Sega", "Taisen Tanto-R Sashissu!! (J 980216 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1999, sanjeon, sasissu, stv, stv, stv_state, sanjeon, ROT0, "Sega / Deniam", "DaeJeon! SanJeon SuJeon (AJTUE 990412 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, seabass, stvbios, stv, stv, stv_state, seabass, ROT0, "A wave inc. (Able license)", "Sea Bass Fishing (JUET 971110 V0.001)", GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, shienryu, stvbios, stv, stv, stv_state, shienryu, ROT270, "Warashi", "Shienryu (JUET 961226 V1.000)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, sss, stvbios, stv_5881, stv, stv_state, sss, ROT0, "Capcom / Cave / Victor", "Steep Slope Sliders (JUET 981110 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1995, sandor, stvbios, stv, stv, stv_state, sandor, ROT0, "Sega", "Puzzle & Action: Sando-R (J 951114 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, thunt, sandor, stv, stv, stv_state, thunt, ROT0, "Sega", "Puzzle & Action: Treasure Hunt (JUET 970901 V2.00E)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, thuntk, sandor, stv, stv, stv_state, sandor, ROT0, "Sega / Deniam", "Puzzle & Action: BoMulEul Chajara (JUET 970125 V2.00K)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1998, twcup98, stvbios, stv_5881, stv, stv_state, twcup98, ROT0, "Tecmo", "Tecmo World Cup '98 (JUET 980410 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1995, smleague, stvbios, stv, stv, stv_state, smleague, ROT0, "Sega", "Super Major League (U 960108 V1.000)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1995, finlarch, smleague,stv, stv, stv_state, finlarch, ROT0, "Sega", "Final Arch (J 950714 V1.001)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, sokyugrt, stvbios, stv, stv, stv_state, sokyugrt, ROT0, "Raizing / Eighting", "Soukyugurentai / Terra Diver (JUET 960821 V1.000)", GAME_IMPERFECT_SOUND | GAME_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)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, vfkids, stvbios, stv, stv, stv_state, stv, ROT0, "Sega", "Virtua Fighter Kids (JUET 960319 V0.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, vmahjong, stvbios, stv, myfairld, stv_state, stvmp, ROT0, "Micronet", "Virtual Mahjong (J 961214 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, winterht, stvbios, stv, stv, stv_state, winterht, ROT0, "Sega", "Winter Heat (JUET 971012 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, znpwfv, stvbios, stv, stv, stv_state, znpwfv, ROT0, "Sega", "Zen Nippon Pro-Wrestling Featuring Virtua (J 971123 V1.000)", GAME_IMPERFECT_SOUND | GAME_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_NO_SOUND | 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( 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, ffreveng, stvbios, stv_5881, stv, stv_state, ffreveng, ROT0, "Capcom", "Final Fight Revenge (JUET 990714 V1.000)", 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( 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( 1998, twcup98, stvbios, stv_5881, stv, stv_state, twcup98, ROT0, "Tecmo", "Tecmo World Cup '98 (JUET 980410 V1.000)", 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, myfairld, 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 )
/* Unemulated printer / camera devices */
-GAME( 1998, stress, stvbios, stv, stv, stv_state, stv, ROT0, "Sega", "Stress Busters (J 981020 V1.000)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1997, nclubv3, stvbios, stv, stv, stv_state, nameclv3, ROT0, "Sega", "Name Club Ver.3 (J 970723 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
-GAME( 1997, pclub2, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 (U 970921 V1.000)", GAME_NOT_WORKING )
-GAME( 1999, pclub2fc, pclub2, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 Felix The Cat (Rev. A) (J 970415 V1.100)", GAME_NOT_WORKING )
-GAME( 1997, pclb297w, pclub2, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 '97 Winter Ver (J 971017 V1.100)", GAME_NOT_WORKING )
-GAME( 1997, pclub298, pclub2, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 '98 Spring Ver (J 971017 V1.100)", GAME_NOT_WORKING )
-GAME( 1998, pclb298a, pclub2, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 '98 Autumn Ver (J 980827 V1.000)", GAME_NOT_WORKING )
-GAME( 1999, pclubor, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club Goukakenran (J 991104 V1.000)", GAME_NOT_WORKING )
-GAME( 1999, pclubol, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club Olive (J 980717 V1.000)", GAME_NOT_WORKING )
-GAME( 1999, pclub2v3, pclub2, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 Vol. 3 (U 990310 V1.000)", GAME_NOT_WORKING )
-GAME( 1999, pclubpok, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club Pokemon B (U 991126 V1.000)", GAME_NOT_WORKING )
-GAME( 1997, pclub2kc, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club Kome Kome Club (J 970203 V1.000)", GAME_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)", GAME_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( 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 )
+GAME( 1997, pclub2, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 (U 970921 V1.000)", MACHINE_NOT_WORKING )
+GAME( 1999, pclub2fc, pclub2, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 Felix The Cat (Rev. A) (J 970415 V1.100)", MACHINE_NOT_WORKING )
+GAME( 1997, pclb297w, pclub2, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 '97 Winter Ver (J 971017 V1.100)", MACHINE_NOT_WORKING )
+GAME( 1997, pclub298, pclub2, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 '98 Spring Ver (J 971017 V1.100)", MACHINE_NOT_WORKING )
+GAME( 1998, pclb298a, pclub2, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 '98 Autumn Ver (J 980827 V1.000)", 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( 1999, pclub2v3, pclub2, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club 2 Vol. 3 (U 990310 V1.000)", MACHINE_NOT_WORKING )
+GAME( 1999, pclubpok, stvbios, stv, stv, stv_state, stv, ROT0, "Atlus", "Print Club Pokemon B (U 991126 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, 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 )
/* Doing something.. but not enough yet */
-GAME( 1995, vfremix, stvbios, stv, stv, stv_state, vfremix, ROT0, "Sega", "Virtua Fighter Remix (JUETBKAL 950428 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
-GAME( 1996, decathlt, stvbios, stv_5838, stv, stv_state, decathlt, ROT0, "Sega", "Decathlete (JUET 960709 V1.001)", GAME_NO_SOUND | GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION )
-GAME( 1996, decathlto, decathlt,stv_5838, stv, stv_state, decathlt, ROT0, "Sega", "Decathlete (JUET 960424 V1.000)", GAME_NO_SOUND | GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION )
+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 )
/* Gives I/O errors */
-GAME( 1996, magzun, stvbios, stv, stv, stv_state, magzun, ROT0, "Sega", "Magical Zunou Power (J 961031 V1.000)", GAME_NOT_WORKING )
-GAME( 1997, techbowl, stvbios, stv, stv, stv_state, stv, ROT0, "Sega", "Technical Bowling (J 971212 V1.000)", GAME_NOT_WORKING )
-GAME( 1999, micrombc, stvbios, stv, stv, stv_state, stv, ROT0, "Sega", "Microman Battle Charge (J 990326 V1.000)", GAME_NOT_WORKING )
+GAME( 1996, magzun, stvbios, stv, stv, stv_state, magzun, ROT0, "Sega", "Magical Zunou Power (J 961031 V1.000)", MACHINE_NOT_WORKING )
+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 )
/* CD games */
-GAME( 1995, sfish2, 0, stv, stv, stv_state, stv, ROT0, "Sega", "Sport Fishing 2 (UET 951106 V1.10e)", GAME_NO_SOUND | GAME_NOT_WORKING )
-GAME( 1995, sfish2j, sfish2, stv, stv, stv_state, stv, ROT0, "Sega", "Sport Fishing 2 (J 951201 V1.100)", GAME_NO_SOUND | GAME_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.c b/src/mame/drivers/su2000.c
index cd97731ff87..8d4b5840855 100644
--- a/src/mame/drivers/su2000.c
+++ b/src/mame/drivers/su2000.c
@@ -295,4 +295,4 @@ ROM_START( su2000 )
*
*************************************/
-GAME( 1993, su2000, 0, su2000, pc_keyboard, driver_device, 0, ROT0, "Virtuality", "SU2000", GAME_IS_BIOS_ROOT | GAME_NOT_WORKING | GAME_NO_SOUND )
+GAME( 1993, su2000, 0, su2000, pc_keyboard, driver_device, 0, ROT0, "Virtuality", "SU2000", MACHINE_IS_BIOS_ROOT | MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/sub.c b/src/mame/drivers/sub.c
index 9051bed619a..3282059da41 100644
--- a/src/mame/drivers/sub.c
+++ b/src/mame/drivers/sub.c
@@ -508,4 +508,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)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+GAME( 1985, sub, 0, sub, sub, driver_device, 0, ROT270, "Sigma Enterprises Inc.", "Submarine (Sigma)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/subs.c b/src/mame/drivers/subs.c
index 084e535be58..e0420d3ca23 100644
--- a/src/mame/drivers/subs.c
+++ b/src/mame/drivers/subs.c
@@ -252,4 +252,4 @@ ROM_END
*
*************************************/
-GAME( 1977, subs, 0, subs, subs, driver_device, 0, ROT0, "Atari", "Subs", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1977, subs, 0, subs, subs, driver_device, 0, ROT0, "Atari", "Subs", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/subsino.c b/src/mame/drivers/subsino.c
index 5e817695658..e84595b1302 100644
--- a/src/mame/drivers/subsino.c
+++ b/src/mame/drivers/subsino.c
@@ -3915,4 +3915,4 @@ GAMEL( 1995, victor6b, victor6, sharkpy, victor6b, subsino_state, sharkpye,
GAMEL( 1996, smoto20, 0, srider, smoto20, subsino_state, smoto20, ROT0, "Subsino", "Super Rider (Italy, v2.0)", 0, layout_smoto )
GAMEL( 1996, smoto16, smoto20, srider, smoto16, subsino_state, smoto16, ROT0, "Subsino", "Super Moto (Italy, v1.6)", 0, layout_smoto )
-GAME ( 1996, mtrainnv, mtrain, mtrainnv, stisub, subsino_state, mtrainnv, ROT0, "Subsino", "Magic Train (Clear NVRAM ROM?)", GAME_NOT_WORKING )
+GAME ( 1996, mtrainnv, mtrain, mtrainnv, stisub, subsino_state, mtrainnv, ROT0, "Subsino", "Magic Train (Clear NVRAM ROM?)", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/subsino2.c b/src/mame/drivers/subsino2.c
index 62cdd9b56ba..a521bc00b92 100644
--- a/src/mame/drivers/subsino2.c
+++ b/src/mame/drivers/subsino2.c
@@ -2723,5 +2723,5 @@ GAME( 1996, wtrnymph, 0, mtrain, wtrnymph, subsino2_state, wtrnymph, RO
GAME( 1998, expcard, 0, expcard, expcard, subsino2_state, expcard, ROT0, "American Alpha", "Express Card / Top Card (Ver. 1.5)", 0 )
GAME( 1998, saklove, 0, saklove, saklove, subsino2_state, saklove, ROT0, "Subsino", "Ying Hua Lian 2.0 (China, Ver. 1.02)", 0 )
GAME( 1999, xtrain, 0, xtrain, xtrain, subsino2_state, xtrain, ROT0, "Subsino", "X-Train (Ver. 1.3)", 0 )
-GAME( 1999, bishjan, 0, bishjan, bishjan, subsino2_state, bishjan, ROT0, "Subsino", "Bishou Jan (Japan, Ver. 2.03)", GAME_NO_SOUND )
+GAME( 1999, bishjan, 0, bishjan, bishjan, subsino2_state, bishjan, ROT0, "Subsino", "Bishou Jan (Japan, Ver. 2.03)", MACHINE_NO_SOUND )
GAME( 2006, xplan, 0, xplan, xplan, subsino2_state, xplan, ROT0, "Subsino", "X-Plan (Ver. 1.01)", 0 )
diff --git a/src/mame/drivers/summit.c b/src/mame/drivers/summit.c
index ddc3f36d70f..2f7191175a9 100644
--- a/src/mame/drivers/summit.c
+++ b/src/mame/drivers/summit.c
@@ -345,4 +345,4 @@ ROM_START( pushover )
ROM_END
-GAME( 1981, pushover, 0, summit, summit, driver_device, 0, ROT270, "Summit Coin", "Push Over (Summit Coin)", GAME_NOT_WORKING|GAME_NO_SOUND|GAME_WRONG_COLORS )
+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 )
diff --git a/src/mame/drivers/sumt8035.c b/src/mame/drivers/sumt8035.c
index 7b91746793f..9de2d25a847 100644
--- a/src/mame/drivers/sumt8035.c
+++ b/src/mame/drivers/sumt8035.c
@@ -256,5 +256,5 @@ ROM_START( sm_ultng )
ROM_END
-GAME( 1981, sm_ngacc, 0, summit, summit, driver_device, 0, ROT270, "Summit Coin", "Nudge Accumulator (Summit Coin)", GAME_IS_SKELETON_MECHANICAL )
-GAME( 1981, sm_ultng, 0, summit, summit, driver_device, 0, ROT270, "Summit Coin", "Ultimate Nudge (Summit Coin)", GAME_IS_SKELETON_MECHANICAL )
+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 )
diff --git a/src/mess/drivers/sun1.c b/src/mame/drivers/sun1.c
index 5cb2e1b0071..df26989dbaa 100644
--- a/src/mess/drivers/sun1.c
+++ b/src/mame/drivers/sun1.c
@@ -167,4 +167,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1982, sun1, 0, 0, sun1, sun1, driver_device, 0, "Sun Microsystems", "Sun-1", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/sun2.c b/src/mame/drivers/sun2.c
index 6af3c1dcd53..ec1ddabc5d6 100644
--- a/src/mess/drivers/sun2.c
+++ b/src/mame/drivers/sun2.c
@@ -132,5 +132,5 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 1984, sun2_50, 0, 0, sun2, sun2, driver_device, 0, "Sun Microsystems", "Sun 2/50", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 1984, sun2_120, 0, 0, sun2, sun2, driver_device, 0, "Sun Microsystems", "Sun 2/120", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1984, sun2_50, 0, 0, sun2, sun2, driver_device, 0, "Sun Microsystems", "Sun 2/50", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
+COMP( 1984, sun2_120, 0, 0, sun2, sun2, driver_device, 0, "Sun Microsystems", "Sun 2/120", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/sun3.c b/src/mame/drivers/sun3.c
index d87c8151e7d..88cb36d8bbf 100644
--- a/src/mess/drivers/sun3.c
+++ b/src/mame/drivers/sun3.c
@@ -966,12 +966,12 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 198?, sun3_50, 0, 0, sun3, sun3, driver_device, 0, "Sun Microsystems", "Sun 3/50", GAME_NOT_WORKING | GAME_NO_SOUND) // Model 25
-COMP( 198?, sun3_60, 0, 0, sun3, sun3, driver_device, 0, "Sun Microsystems", "Sun 3/60", GAME_NOT_WORKING | GAME_NO_SOUND) // Ferrari
-COMP( 198?, sun3_110, 0, 0, sun3, sun3, driver_device, 0, "Sun Microsystems", "Sun 3/110", GAME_NOT_WORKING | GAME_NO_SOUND) // Prism
-COMP( 198?, sun3_150, 0, 0, sun3, sun3, driver_device, 0, "Sun Microsystems", "Sun 3/75/140/150/160/180", GAME_NOT_WORKING | GAME_NO_SOUND) // AKA Carrera
-COMP( 198?, sun3_260, 0, 0, sun3, sun3, driver_device, 0, "Sun Microsystems", "Sun 3/260/280", GAME_NOT_WORKING | GAME_NO_SOUND) // Prism
-COMP( 198?, sun3_e, 0, 0, sun3, sun3, driver_device, 0, "Sun Microsystems", "Sun 3/E", GAME_NOT_WORKING | GAME_NO_SOUND) // Polaris
-
-COMP( 198?, sun3_80, 0, 0, sun3_80, sun3, driver_device, 0, "Sun Microsystems", "Sun 3x/80", GAME_NOT_WORKING | GAME_NO_SOUND) // Hydra
-COMP( 198?, sun3_460, 0, 0, sun3_460, sun3, driver_device, 0, "Sun Microsystems", "Sun 3x/460/470/480", GAME_NOT_WORKING | GAME_NO_SOUND) // Pegasus
+COMP( 198?, sun3_50, 0, 0, sun3, sun3, driver_device, 0, "Sun Microsystems", "Sun 3/50", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) // Model 25
+COMP( 198?, sun3_60, 0, 0, sun3, 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( 198?, 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, sun3, sun3, driver_device, 0, "Sun Microsystems", "Sun 3/260/280", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) // Prism
+COMP( 198?, sun3_e, 0, 0, sun3, sun3, driver_device, 0, "Sun Microsystems", "Sun 3/E", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) // Polaris
+
+COMP( 198?, sun3_80, 0, 0, sun3_80, sun3, driver_device, 0, "Sun Microsystems", "Sun 3x/80", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) // Hydra
+COMP( 198?, sun3_460, 0, 0, sun3_460, sun3, driver_device, 0, "Sun Microsystems", "Sun 3x/460/470/480", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) // Pegasus
diff --git a/src/mess/drivers/sun4.c b/src/mame/drivers/sun4.c
index 78ca589a858..140fddc9307 100644
--- a/src/mess/drivers/sun4.c
+++ b/src/mame/drivers/sun4.c
@@ -585,11 +585,11 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 198?, sun4_300, 0, 0, sun4, sun4, driver_device, 0, "Sun Microsystems", "Sun 4/3x0", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 198?, sun4_40, sun4_300,0, sun4, sun4, driver_device, 0, "Sun Microsystems", "SPARCstation IPC (Sun 4/40)", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 198?, sun4_50, sun4_300,0, sun4, sun4, driver_device, 0, "Sun Microsystems", "SPARCstation IPX (Sun 4/50)", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 198?, sun4_20, sun4_300,0, sun4, sun4, driver_device, 0, "Sun Microsystems", "SPARCstation SLC (Sun 4/20)", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 198?, sun4_60, sun4_300,0, sun4, sun4, driver_device, 0, "Sun Microsystems", "SPARCstation 1 (Sun 4/60)", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 198?, sun4_75, sun4_300,0, sun4, sun4, driver_device, 0, "Sun Microsystems", "SPARCstation 2 (Sun 4/75)", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 198?, sun_s10, sun4_300,0, sun4, sun4, driver_device, 0, "Sun Microsystems", "SPARCstation 10 (Sun S10)", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 198?, sun_s20, sun4_300,0, sun4, sun4, driver_device, 0, "Sun Microsystems", "SPARCstation 20", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 198?, sun4_300, 0, 0, sun4, sun4, driver_device, 0, "Sun Microsystems", "Sun 4/3x0", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
+COMP( 198?, sun4_40, sun4_300,0, sun4, sun4, driver_device, 0, "Sun Microsystems", "SPARCstation IPC (Sun 4/40)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
+COMP( 198?, sun4_50, sun4_300,0, sun4, sun4, driver_device, 0, "Sun Microsystems", "SPARCstation IPX (Sun 4/50)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
+COMP( 198?, sun4_20, sun4_300,0, sun4, sun4, driver_device, 0, "Sun Microsystems", "SPARCstation SLC (Sun 4/20)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
+COMP( 198?, sun4_60, sun4_300,0, sun4, sun4, driver_device, 0, "Sun Microsystems", "SPARCstation 1 (Sun 4/60)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
+COMP( 198?, sun4_75, sun4_300,0, sun4, sun4, driver_device, 0, "Sun Microsystems", "SPARCstation 2 (Sun 4/75)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
+COMP( 198?, sun_s10, sun4_300,0, sun4, sun4, driver_device, 0, "Sun Microsystems", "SPARCstation 10 (Sun S10)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
+COMP( 198?, sun_s20, sun4_300,0, sun4, sun4, driver_device, 0, "Sun Microsystems", "SPARCstation 20", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/suna16.c b/src/mame/drivers/suna16.c
index 7c54ef5b637..fd90aebce16 100644
--- a/src/mame/drivers/suna16.c
+++ b/src/mame/drivers/suna16.c
@@ -296,8 +296,8 @@ ADDRESS_MAP_END
MACHINE_START_MEMBER(suna16_state, bssoccer)
{
- membank("bank1")->configure_entries(0, 8, memregion("pcm1")->base() + 0x1000, 0x10000);
- membank("bank2")->configure_entries(0, 8, memregion("pcm2")->base() + 0x1000, 0x10000);
+ m_bank1->configure_entries(0, 8, memregion("pcm1")->base() + 0x1000, 0x10000);
+ m_bank2->configure_entries(0, 8, memregion("pcm2")->base() + 0x1000, 0x10000);
}
/* Bank Switching */
@@ -306,16 +306,14 @@ WRITE8_MEMBER(suna16_state::bssoccer_pcm_1_bankswitch_w)
{
const int bank = data & 7;
if (bank & ~7) logerror("CPU#2 PC %06X - ROM bank unknown bits: %02X\n", space.device().safe_pc(), data);
- printf("%d %d\n", 1, bank);
- membank("bank1")->set_entry(bank);
+ m_bank1->set_entry(bank);
}
WRITE8_MEMBER(suna16_state::bssoccer_pcm_2_bankswitch_w)
{
const int bank = data & 7;
if (bank & ~7) logerror("CPU#3 PC %06X - ROM bank unknown bits: %02X\n", space.device().safe_pc(), data);
- printf("%d %d\n", 2, bank);
- membank("bank2")->set_entry(bank);
+ m_bank2->set_entry(bank);
}
@@ -380,7 +378,7 @@ WRITE8_MEMBER(suna16_state::uballoon_pcm_1_bankswitch_w)
{
const int bank = data & 1;
if (bank & ~1) logerror("CPU#2 PC %06X - ROM bank unknown bits: %02X\n", space.device().safe_pc(), data);
- membank("bank1")->set_entry(bank);
+ m_bank1->set_entry(bank);
}
/* Memory maps: Yes, *no* RAM */
@@ -400,7 +398,7 @@ ADDRESS_MAP_END
MACHINE_START_MEMBER(suna16_state,uballoon)
{
- membank("bank1")->configure_entries(0, 2, memregion("pcm1")->base() + 0x400, 0x10000);
+ m_bank1->configure_entries(0, 2, memregion("pcm1")->base() + 0x400, 0x10000);
save_item(NAME(m_prot));
}
@@ -1367,8 +1365,8 @@ ROM_END
***************************************************************************/
-GAME( 1994, bestbest, 0, bestbest, bestbest, driver_device, 0, ROT0, "SunA", "Best Of Best", GAME_SUPPORTS_SAVE )
-GAME( 1994, sunaq, 0, sunaq, sunaq, driver_device, 0, ROT0, "SunA", "SunA Quiz 6000 Academy (940620-6)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1996, bssoccera, bssoccer, bssoccer, bssoccer, driver_device, 0, ROT0, "SunA (Unico license)", "Back Street Soccer (KRB-0032A PCB)", GAME_SUPPORTS_SAVE )
-GAME( 1996, uballoon, 0, uballoon, uballoon, driver_device, 0, ROT0, "SunA (Unico license)", "Ultra Balloon", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/suna8.c b/src/mame/drivers/suna8.c
index 6c587027dae..0a34955cf34 100644
--- a/src/mame/drivers/suna8.c
+++ b/src/mame/drivers/suna8.c
@@ -27,8 +27,10 @@ Notes:
- hardhea2: in test mode press P1&P2 button 2 to see a picture of each level
- Rough Ranger default dipswitch settings are based on the settings listed in
- the Sharp Image licensed Rough Ranger manaul / NOTICE sheet dated 8-5-88
-- starfigh video: http://youtu.be/SIwV7wjvnHM -> missing starfield effect!
+ the Sharp Image licensed Rough Ranger manual / NOTICE sheet dated 8-5-88
+- rranger video: http://www.nicovideo.jp/watch/sm15788808 (not perfect: fireball masking, lev. 5; masking/missing legs, lev. 10)
+- hardhead video: https://youtu.be/zamQvXr9_xs
+- starfigh video: http://youtu.be/SIwV7wjvnHM (missing starfield effect!)
- brickzn video: http://youtu.be/yfU1C7A3iZI (recorded from v6.0, Joystick version)
***************************************************************************/
@@ -1885,7 +1887,7 @@ static MACHINE_CONFIG_START( hardhead, suna8_state )
MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
MCFG_PALETTE_ENDIANNESS(ENDIANNESS_BIG)
- MCFG_VIDEO_START_OVERRIDE(suna8_state,suna8_textdim12)
+ MCFG_VIDEO_START_OVERRIDE(suna8_state,suna8_text)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1918,7 +1920,7 @@ static MACHINE_CONFIG_START( rranger, suna8_state )
MCFG_CPU_ADD("maincpu", Z80, SUNA8_MASTER_CLOCK / 4) /* ? */
MCFG_CPU_PROGRAM_MAP(rranger_map)
MCFG_CPU_IO_MAP(rranger_io_map)
-// MCFG_CPU_DECRYPTED_OPCODES_MAP(decrypted_opcodes_map)
+// MCFG_CPU_DECRYPTED_OPCODES_MAP(decrypted_opcodes_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", suna8_state, irq0_line_hold) /* IRQ & NMI ! */
MCFG_CPU_ADD("audiocpu", Z80, SUNA8_MASTER_CLOCK / 8) /* verified on pcb */
@@ -1939,7 +1941,7 @@ static MACHINE_CONFIG_START( rranger, suna8_state )
MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
MCFG_PALETTE_ENDIANNESS(ENDIANNESS_BIG)
- MCFG_VIDEO_START_OVERRIDE(suna8_state,suna8_textdim8)
+ MCFG_VIDEO_START_OVERRIDE(suna8_state,suna8_text)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2282,6 +2284,72 @@ ROM_START( hardheadb )
ROM_LOAD( "p14", 0x0000, 0x8000, CRC(41314ac1) SHA1(1ac9213b0ac4ce9fe6256e93875672e128a5d069) )
ROM_END
+/***************************************************************************
+
+Roms for Hard Head from Suna Electronics '88
+
+The Main Board --->
+
+2 x Z80
+1 x AY-3-8910A
+1 x Yamaha YM3812
+1 x Xtal 24.000 Mhz
+
+One of the Z80 is attached in a daughter board... with discrete circuits
+and 3 pals...
+
+Look at the daughter board:
+
+|-------------------------------------------------------------------|
+| |--------| |---------------| |
+| | 74LS74 | | PAL 16L8A-2CN | |
+| |--------| |------Green----| |
+| |---------| |
+| |--------| | 74LS244 | |---------------| |
+| | 74LS74 | |---------| |-------------------| | PAL 16L8A-2CN | |
+| |--------| | Zilog Z80 | |------Blue-----| |
+| |-------------------| |
+| |--------| |---------| |---------------| |
+| | 74LS74 | | 74LS244 | | PAL 16L8A-2CN | |
+| |--------| |---------| |------Red------| |
+| |
+| |--------| |--------| |
+| | 74LS00 | | 74LS08 | |
+| |--------| |--------| |
+| |
+|-------------------------------------------------------------------|
+
+***************************************************************************/
+
+ROM_START( hardheadb2 )
+ ROM_REGION( 0x48000+0x8000, "maincpu", 0 ) /* Main Z80 Code */
+ ROM_LOAD( "9_1.6l", 0x00000, 0x8000, CRC(750e6aee) SHA1(ec8f61a1a3d95ef0e3748968f6da73e972763493) ) // = 1_27512.l6 [1/2] (hardheadb) 1988,9,14 (already decrypted)
+ ROM_RELOAD( 0x48000, 0x8000 ) // remove protection patches at 83a, 85c, 881 (79 c9 -> b9 c8) to pass rom test
+ ROM_LOAD( "10_2.6k", 0x10000, 0x8000, CRC(8fcc1248) SHA1(5da0b7dc63f7bc00e81e9e5bac02ee6b0076ffaa) ) // = 2_27256.k6 (pop_hh)
+ ROM_LOAD( "11_3.6j", 0x18000, 0x8000, CRC(42c3264a) SHA1(cdad7953a2da1eccbe5abd55b7a8898c25f39f56) )
+ ROM_LOAD( "12_4.6h", 0x20000, 0x8000, CRC(acf85bcf) SHA1(70e8e4682ff738b0881bbcf84decb2a04946f675) )
+ ROM_LOAD( "3_7.7l", 0x28000, 0x8000, CRC(ee0ae9cc) SHA1(e188fb19e600f646a741685ba811309827f0f331) ) // ~ p7 77.603149%
+ ROM_LOAD( "4_8.7k", 0x30000, 0x8000, CRC(177ed8cd) SHA1(ac2c7c6fe84f892d60e6ed17b93a3b95c2b561e2) ) // ~ 8_27256.k8 (pop_hh) 97.894287%
+ ROM_LOAD( "5_9.7j", 0x38000, 0x8000, CRC(e4eea730) SHA1(be0a05cc31c55aa84f393024fe08a7cae1554db7) )
+ ROM_LOAD( "6_10.7h", 0x40000, 0x8000, CRC(84fc6574) SHA1(ab33e6c656f25e65bb08d0a2689693df83cab43d) ) // = 10_27256.i8 (pop_hh)
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound Z80 Code */
+ ROM_LOAD( "2_13.9h", 0x00000, 0x8000, CRC(1b20e5ec) SHA1(b943a9666536b357434f3e7140df959d3c78908b) ) // ~ p13 79.528809%
+
+ ROM_REGION( 0x40000, "gfx1", ROMREGION_INVERT ) /* Sprites */
+ ROM_LOAD( "13_5.6d", 0x00000, 0x8000, CRC(e9aa6fba) SHA1(f286727541f08b136a7d45e13975652bdc8fd663) ) // = p5
+ ROM_RELOAD( 0x08000, 0x8000 )
+ ROM_LOAD( "14_6.6a", 0x10000, 0x8000, CRC(ae24b92a) SHA1(8f7b1180b8762548853ca0c53d7913cfe17acc48) )
+ ROM_RELOAD( 0x18000, 0x8000 )
+ ROM_LOAD( "7_11.7d", 0x20000, 0x8000, CRC(3751b99d) SHA1(dc4082e481a79f0389e59b4b38698df8f7b94053) ) // = 11_27256.d8 (pop_hh)
+ ROM_RELOAD( 0x28000, 0x8000 )
+ ROM_LOAD( "8_12.7a", 0x30000, 0x8000, CRC(9582e6db) SHA1(a2b34d740e07bd35a3184365e7f3ab7476075d70) ) // = p12
+ ROM_RELOAD( 0x38000, 0x8000 )
+
+ ROM_REGION( 0x8000, "samples", 0 ) /* Samples */
+ ROM_LOAD( "1_14.11m", 0x00000, 0x8000, CRC(41314ac1) SHA1(1ac9213b0ac4ce9fe6256e93875672e128a5d069) ) // = p14
+ROM_END
+
ROM_START( pop_hh )
ROM_REGION( 0x48000+0x8000, "maincpu", 0 ) /* Main Z80 Code */
ROM_LOAD( "1_27512.l6", 0x48000, 0x8000, CRC(bb4aa9ac) SHA1(da6310a1034cf610139d74fc30dd13e5fbd1d8dd) ) // 1988,9,14 (already decrypted)
@@ -2921,22 +2989,23 @@ DRIVER_INIT_MEMBER(suna8_state,suna8)
m_bank1->configure_entries(0, 16, memregion("maincpu")->base() + 0x10000, 0x4000);
}
-GAME( 1988, sranger, 0, rranger, rranger, suna8_state, suna8, ROT0, "SunA", "Super Ranger (v2.0)", 0 )
-GAME( 1988, rranger, sranger, rranger, rranger, suna8_state, suna8, ROT0, "SunA (Sharp Image license)", "Rough Ranger (v2.0)", 0 )
-GAME( 1988, rrangerb, sranger, rranger, rranger, suna8_state, suna8, ROT0, "bootleg", "Rough Ranger (v2.0, bootleg)", 0 )
-GAME( 1988, srangero, sranger, rranger, rranger, suna8_state, suna8, ROT0, "SunA", "Super Ranger (older)", 0 )
-GAME( 1988, srangern, sranger, rranger, rranger, suna8_state, suna8, ROT0, "SunA (NOVA license)", "Super Ranger (older, NOVA license)", 0 )
-GAME( 1988, srangerw, sranger, rranger, rranger, suna8_state, suna8, ROT0, "SunA (WDK license)", "Super Ranger (older, WDK license)", 0 )
-GAME( 1988, srangerb, sranger, rranger, rranger, suna8_state, suna8, ROT0, "bootleg (NYWA)", "Super Ranger (older, bootleg)", 0 )
+GAME( 1988, sranger, 0, rranger, rranger, suna8_state, suna8, ROT0, "SunA", "Super Ranger (v2.0)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1988, rranger, sranger, rranger, rranger, suna8_state, suna8, ROT0, "SunA (Sharp Image license)", "Rough Ranger (v2.0)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1988, rrangerb, sranger, rranger, rranger, suna8_state, suna8, ROT0, "bootleg", "Rough Ranger (v2.0, bootleg)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1988, srangero, sranger, rranger, rranger, suna8_state, suna8, ROT0, "SunA", "Super Ranger (older)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1988, srangern, sranger, rranger, rranger, suna8_state, suna8, ROT0, "SunA (NOVA license)", "Super Ranger (older, NOVA license)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1988, srangerw, sranger, rranger, rranger, suna8_state, suna8, ROT0, "SunA (WDK license)", "Super Ranger (older, WDK license)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1988, srangerb, sranger, rranger, rranger, suna8_state, suna8, ROT0, "bootleg (NYWA)", "Super Ranger (older, bootleg)", MACHINE_IMPERFECT_GRAPHICS )
GAME( 1988, hardhead, 0, hardhead, hardhead, suna8_state, hardhead, ROT0, "SunA", "Hard Head", 0 )
-GAME( 1988, hardheadb, hardhead, hardhead, hardhead, suna8_state, hardhedb, ROT0, "bootleg", "Hard Head (bootleg)", 0 )
+GAME( 1988, hardheadb, hardhead, hardhead, hardhead, suna8_state, hardhedb, ROT0, "bootleg", "Hard Head (bootleg, set 1)", 0 )
+GAME( 1988, hardheadb2,hardhead, hardhead, hardhead, suna8_state, hardhedb, ROT0, "bootleg", "Hard Head (bootleg, set 2)", MACHINE_NOT_WORKING )
GAME( 1988, pop_hh, hardhead, hardhead, hardhead, suna8_state, hardhedb, ROT0, "bootleg", "Popper (Hard Head bootleg)", 0 )
GAME( 1989, sparkman, 0, sparkman, sparkman, suna8_state, sparkman, ROT0, "SunA", "Spark Man (v2.0, set 1)", 0 )
GAME( 1989, sparkmana, sparkman, sparkman, sparkman, suna8_state, sparkman, ROT0, "SunA", "Spark Man (v2.0, set 2)", 0 )
-GAME( 1990, starfigh, 0, starfigh, starfigh, suna8_state, starfigh, ROT90, "SunA", "Star Fighter (v1)", GAME_IMPERFECT_GRAPHICS )
+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 )
diff --git a/src/mame/drivers/supbtime.c b/src/mame/drivers/supbtime.c
index ff86afe9aca..c2cc30185b2 100644
--- a/src/mame/drivers/supbtime.c
+++ b/src/mame/drivers/supbtime.c
@@ -505,7 +505,7 @@ ROM_END
/******************************************************************************/
-GAME( 1990, supbtime, 0, supbtime, supbtime, driver_device, 0, ROT0, "Data East Corporation", "Super Burger Time (World, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1990, supbtimea,supbtime, supbtime, supbtime, driver_device, 0, ROT0, "Data East Corporation", "Super Burger Time (World, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1990, supbtimej,supbtime, supbtime, supbtime, driver_device, 0, ROT0, "Data East Corporation", "Super Burger Time (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1991, chinatwn, 0, chinatwn, chinatwn, driver_device, 0, ROT0, "Data East Corporation", "China Town (Japan)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/supdrapo.c b/src/mame/drivers/supdrapo.c
index 01fe7220c43..5013bb4c3fe 100644
--- a/src/mame/drivers/supdrapo.c
+++ b/src/mame/drivers/supdrapo.c
@@ -605,6 +605,6 @@ ROM_END
**********************************************************************/
/* 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)", GAME_SUPPORTS_SAVE )
-GAME( 1983, supdrapoa, supdrapo, supdrapo, supdrapo, driver_device, 0, ROT90, "Valadon Automation / Jeutel", "Super Draw Poker (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1983, supdrapob, supdrapo, supdrapo, supdrapo, driver_device, 0, ROT90, "bootleg", "Super Draw Poker (bootleg)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/supduck.c b/src/mame/drivers/supduck.c
index a95ca3b7521..56ae254dccf 100644
--- a/src/mame/drivers/supduck.c
+++ b/src/mame/drivers/supduck.c
@@ -510,4 +510,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", GAME_SUPPORTS_SAVE )
+GAME( 1992, supduck, 0, supduck, supduck, driver_device, 0, ROT0, "Comad", "Super Duck", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/super6.c b/src/mame/drivers/super6.c
index 0a6e9b90b67..687598f89f8 100644
--- a/src/mess/drivers/super6.c
+++ b/src/mame/drivers/super6.c
@@ -570,4 +570,4 @@ ROM_END
//**************************************************************************
// 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", GAME_NOT_WORKING | GAME_NO_SOUND_HW )
+COMP( 1983, super6, 0, 0, super6, super6, driver_device, 0, "Advanced Digital Corporation", "Super Six", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW )
diff --git a/src/mess/drivers/super80.c b/src/mame/drivers/super80.c
index 2cf1e75c8e8..2c6b069e4bf 100644
--- a/src/mess/drivers/super80.c
+++ b/src/mame/drivers/super80.c
@@ -840,7 +840,9 @@ static MACHINE_CONFIG_DERIVED( super80r, super80v )
MCFG_WD2793_ADD("fdc", XTAL_2MHz)
MCFG_WD_FDC_DRQ_CALLBACK(DEVWRITELINE("dma", z80dma_device, rdy_w))
MCFG_FLOPPY_DRIVE_ADD("fdc:0", super80_floppies, "525dd", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", super80_floppies, "525dd", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
MACHINE_CONFIG_END
/**************************** ROMS *****************************************************************/
@@ -962,7 +964,7 @@ ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME */
COMP( 1981, super80, 0, 0, super80, super80, super80_state, super80, "Dick Smith Electronics", "Super-80 (V1.2)" , 0)
COMP( 1981, super80d, super80, 0, super80d, super80d, super80_state, super80, "Dick Smith Electronics", "Super-80 (V2.2)" , 0)
-COMP( 1981, super80e, super80, 0, super80e, super80d, super80_state, super80, "Dick Smith Electronics", "Super-80 (El Graphix 4)" , GAME_UNOFFICIAL)
-COMP( 1981, super80m, super80, 0, super80m, super80m, super80_state, super80, "Dick Smith Electronics", "Super-80 (with colour)" , GAME_UNOFFICIAL)
-COMP( 1981, super80r, super80, 0, super80r, super80r, super80_state, super80, "Dick Smith Electronics", "Super-80 (with VDUEB)" , GAME_UNOFFICIAL)
-COMP( 1981, super80v, super80, 0, super80v, super80v, super80_state, super80, "Dick Smith Electronics", "Super-80 (with enhanced VDUEB)" , GAME_UNOFFICIAL)
+COMP( 1981, super80e, super80, 0, super80e, super80d, super80_state, super80, "Dick Smith Electronics", "Super-80 (El Graphix 4)" , MACHINE_UNOFFICIAL)
+COMP( 1981, super80m, super80, 0, super80m, super80m, super80_state, super80, "Dick Smith Electronics", "Super-80 (with colour)" , MACHINE_UNOFFICIAL)
+COMP( 1981, super80r, super80, 0, super80r, super80r, super80_state, super80, "Dick Smith Electronics", "Super-80 (with VDUEB)" , MACHINE_UNOFFICIAL)
+COMP( 1981, super80v, super80, 0, super80v, super80v, super80_state, super80, "Dick Smith Electronics", "Super-80 (with enhanced VDUEB)" , MACHINE_UNOFFICIAL)
diff --git a/src/mess/drivers/supercon.c b/src/mame/drivers/supercon.c
index 9c39262fa6f..7c286f6b4c2 100644
--- a/src/mess/drivers/supercon.c
+++ b/src/mame/drivers/supercon.c
@@ -22,7 +22,6 @@
#include "emu.h"
#include "cpu/m6502/m6502.h"
#include "sound/beep.h"
-#include "supercon.lh"
class supercon_state : public driver_device
@@ -785,14 +784,11 @@ INPUT_PORTS_END
/* Machine driver */
static MACHINE_CONFIG_START( supercon, supercon_state )
+
/* basic machine hardware */
MCFG_CPU_ADD("maincpu",M6502,MAIN_CLOCK)
MCFG_CPU_PROGRAM_MAP(supercon_mem)
-
- /* video hardware */
- MCFG_DEFAULT_LAYOUT(layout_supercon)
-
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("beeper", BEEP, 0)
@@ -812,4 +808,4 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-CONS( 1983, supercon, 0, 0, supercon, supercon, supercon_state, supercon, "Novag", "SuperConstellation", GAME_SUPPORTS_SAVE)
+CONS( 1983, supercon, 0, 0, supercon, supercon, supercon_state, supercon, "Novag", "SuperConstellation", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
diff --git a/src/mame/drivers/supercrd.c b/src/mame/drivers/supercrd.c
index 25b060f50ea..d76082e7266 100644
--- a/src/mame/drivers/supercrd.c
+++ b/src/mame/drivers/supercrd.c
@@ -509,5 +509,5 @@ 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)", GAME_NOT_WORKING )
-GAME( 1992, fruitstr, 0, supercrd, supercrd, driver_device, 0, ROT0, "Fun World", "Fruit Star (encrypted)", GAME_NOT_WORKING )
+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 )
diff --git a/src/mame/drivers/superdq.c b/src/mame/drivers/superdq.c
index 95d4b91ad7d..29af8380c18 100644
--- a/src/mame/drivers/superdq.c
+++ b/src/mame/drivers/superdq.c
@@ -413,6 +413,6 @@ ROM_END
*
*************************************/
-GAME( 1984, superdq, 0, superdq, superdq, driver_device, 0, ROT0, "Universal", "Super Don Quix-ote (Long Scenes)", GAME_NOT_WORKING )
-GAME( 1984, superdqs, superdq, superdq, superdq, driver_device, 0, ROT0, "Universal", "Super Don Quix-ote (Short Scenes)", GAME_NOT_WORKING )
-GAME( 1984, superdqa, superdq, superdq, superdq, driver_device, 0, ROT0, "Universal", "Super Don Quix-ote (Short Scenes, Alt)", GAME_NOT_WORKING )
+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 )
diff --git a/src/mame/drivers/superqix.c b/src/mame/drivers/superqix.c
index 38b394520a0..8db24ee5ed0 100644
--- a/src/mame/drivers/superqix.c
+++ b/src/mame/drivers/superqix.c
@@ -941,7 +941,7 @@ static MACHINE_CONFIG_START( pbillian, superqix_state )
MCFG_GFXDECODE_ADD("gfxdecode", "palette", pbillian)
MCFG_PALETTE_ADD("palette", 512)
- MCFG_PALETTE_FORMAT(BBGGRRII)
+ MCFG_PALETTE_FORMAT_CLASS(1, superqix_state, BBGGRRII)
MCFG_VIDEO_START_OVERRIDE(superqix_state,pbillian)
@@ -980,7 +980,7 @@ static MACHINE_CONFIG_START( hotsmash, superqix_state )
MCFG_GFXDECODE_ADD("gfxdecode", "palette", pbillian)
MCFG_PALETTE_ADD("palette", 512)
- MCFG_PALETTE_FORMAT(BBGGRRII)
+ MCFG_PALETTE_FORMAT_CLASS(1, superqix_state, BBGGRRII)
MCFG_VIDEO_START_OVERRIDE(superqix_state,pbillian)
@@ -1023,7 +1023,7 @@ static MACHINE_CONFIG_START( sqix, superqix_state )
MCFG_GFXDECODE_ADD("gfxdecode", "palette", sqix)
MCFG_PALETTE_ADD("palette", 256)
- MCFG_PALETTE_FORMAT(BBGGRRII)
+ MCFG_PALETTE_FORMAT_CLASS(1, superqix_state, BBGGRRII)
MCFG_VIDEO_START_OVERRIDE(superqix_state,superqix)
@@ -1071,7 +1071,7 @@ static MACHINE_CONFIG_START( sqixbl, superqix_state )
MCFG_GFXDECODE_ADD("gfxdecode", "palette", sqix)
MCFG_PALETTE_ADD("palette", 256)
- MCFG_PALETTE_FORMAT(BBGGRRII)
+ MCFG_PALETTE_FORMAT_CLASS(1, superqix_state, BBGGRRII)
MCFG_VIDEO_START_OVERRIDE(superqix_state,superqix)
@@ -1329,12 +1329,12 @@ DRIVER_INIT_MEMBER(superqix_state,perestro)
-GAME( 1986, pbillian, 0, pbillian, pbillian, driver_device, 0, ROT0, "Kaneko / Taito", "Prebillian", GAME_SUPPORTS_SAVE )
-GAME( 1987, hotsmash, 0, hotsmash, hotsmash, driver_device, 0, ROT90, "Kaneko / Taito", "Vs. Hot Smash", GAME_SUPPORTS_SAVE )
-GAME( 1987, sqix, 0, sqix, superqix, superqix_state, sqix, ROT90, "Kaneko / Taito", "Super Qix (World, Rev 2)", GAME_SUPPORTS_SAVE )
-GAME( 1987, sqixr1, sqix, sqix, superqix, superqix_state, sqix, ROT90, "Kaneko / Taito", "Super Qix (World, Rev 1)", GAME_SUPPORTS_SAVE )
-GAME( 1987, sqixu, sqix, sqixu, superqix, driver_device, 0, ROT90, "Kaneko / Taito (Romstar License)", "Super Qix (US)", GAME_SUPPORTS_SAVE )
-GAME( 1987, sqixb1, sqix, sqix, superqix, superqix_state, sqixa, ROT90, "bootleg", "Super Qix (bootleg set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1987, sqixb2, sqix, sqixbl, superqix, driver_device, 0, ROT90, "bootleg", "Super Qix (bootleg set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1994, perestro, 0, sqixbl, superqix, superqix_state, perestro, ROT90, "Promat", "Perestroika Girls", GAME_SUPPORTS_SAVE )
-GAME( 1993, perestrof,perestro, sqixbl, superqix, superqix_state, perestro, ROT90, "Promat (Fuuki license)", "Perestroika Girls (Fuuki license)", GAME_SUPPORTS_SAVE )
+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, sqix, ROT90, "Kaneko / Taito", "Super Qix (World, Rev 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, sqixr1, sqix, sqix, superqix, superqix_state, sqix, ROT90, "Kaneko / Taito", "Super Qix (World, Rev 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, sqixu, sqix, sqixu, superqix, driver_device, 0, ROT90, "Kaneko / Taito (Romstar License)", "Super Qix (US)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, sqixb1, sqix, sqix, superqix, superqix_state, sqixa, ROT90, "bootleg", "Super Qix (bootleg set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, sqixb2, sqix, sqixbl, superqix, driver_device, 0, ROT90, "bootleg", "Super Qix (bootleg set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, perestro, 0, sqixbl, superqix, superqix_state, perestro, ROT90, "Promat", "Perestroika Girls", MACHINE_SUPPORTS_SAVE )
+GAME( 1993, perestrof,perestro, sqixbl, superqix, superqix_state, perestro, ROT90, "Promat (Fuuki license)", "Perestroika Girls (Fuuki license)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/superslave.c b/src/mame/drivers/superslave.c
index bb6fbdcdde2..440edac81de 100644
--- a/src/mess/drivers/superslave.c
+++ b/src/mame/drivers/superslave.c
@@ -408,4 +408,4 @@ ROM_END
//**************************************************************************
// 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", GAME_NOT_WORKING | GAME_NO_SOUND_HW )
+COMP( 1983, superslv, 0, 0, superslave, superslave, driver_device, 0, "Advanced Digital Corporation", "Super Slave", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW )
diff --git a/src/mame/drivers/superwng.c b/src/mame/drivers/superwng.c
index e7a5f7aa3a5..8957c433e4c 100644
--- a/src/mame/drivers/superwng.c
+++ b/src/mame/drivers/superwng.c
@@ -522,4 +522,4 @@ ROM_START( superwng )
ROM_END
-GAME( 1985, superwng, 0, superwng, superwng, driver_device, 0, ROT90, "Wing", "Super Wing", GAME_NOT_WORKING | GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE ) // crashes after bonus stage, see notes, bad rom?
+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?
diff --git a/src/mess/drivers/supracan.c b/src/mame/drivers/supracan.c
index 5cbaf6d19a3..c3062922dc7 100644
--- a/src/mess/drivers/supracan.c
+++ b/src/mame/drivers/supracan.c
@@ -7,7 +7,7 @@
-------------------
Preliminary driver by Angelo Salese
- Improvements by Harmony
+ Improvements by Ryan Holtz
*******************************************************************************
@@ -149,7 +149,6 @@ public:
DECLARE_READ16_MEMBER(video_r);
DECLARE_WRITE16_MEMBER(video_w);
DECLARE_WRITE16_MEMBER(vram_w);
- DECLARE_WRITE16_MEMBER(paletteram_w);
acan_dma_regs_t m_acan_dma_regs;
acan_sprdma_regs_t m_acan_sprdma_regs;
@@ -1644,7 +1643,7 @@ WRITE16_MEMBER( supracan_state::video_w )
rectangle visarea = machine().first_screen()->visible_area();
visarea.set(0, ((m_video_flags & 0x100) ? 320 : 256) - 1, 8, 232 - 1);
- machine().first_screen()->configure(348, 256, visarea, machine().first_screen()->frame_period().attoseconds);
+ machine().first_screen()->configure(348, 256, visarea, machine().first_screen()->frame_period().attoseconds());
}
break;
case 0x0a/2:
@@ -1925,4 +1924,4 @@ 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", GAME_NO_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
+CONS( 1995, supracan, 0, 0, supracan, supracan, driver_device, 0, "Funtech Entertainment", "Super A'Can", MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/suprgolf.c b/src/mame/drivers/suprgolf.c
index df8c48ba4de..89d4a801cf7 100644
--- a/src/mame/drivers/suprgolf.c
+++ b/src/mame/drivers/suprgolf.c
@@ -636,5 +636,5 @@ DRIVER_INIT_MEMBER(suprgolf_state,suprgolf)
ROM[0x6d72+(0x4000*3)-0x4000] = 0x20; //patch ROM check
}
-GAME( 1989, suprgolf, 0, suprgolf, suprgolf, suprgolf_state, suprgolf, ROT0, "Nasco", "Super Crowns Golf (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1989, albatross, suprgolf, suprgolf, suprgolf, driver_device, 0, ROT0, "Nasco", "Albatross (US Prototype?)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL| GAME_SUPPORTS_SAVE )
+GAME( 1989, suprgolf, 0, 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 )
diff --git a/src/mame/drivers/suprloco.c b/src/mame/drivers/suprloco.c
index 7ac0c12c437..223db7b3dc9 100644
--- a/src/mame/drivers/suprloco.c
+++ b/src/mame/drivers/suprloco.c
@@ -325,5 +325,5 @@ DRIVER_INIT_MEMBER(suprloco_state,suprloco)
-GAME( 1982, suprloco, 0, suprloco, suprloco, suprloco_state, suprloco, ROT0, "Sega", "Super Locomotive (Rev.A)", GAME_SUPPORTS_SAVE )
-GAME( 1982, suprlocoo, suprloco, suprloco, suprloco, suprloco_state, suprloco, ROT0, "Sega", "Super Locomotive", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/suprnova.c b/src/mame/drivers/suprnova.c
index a23bfd8e7b1..54bd8276cfe 100644
--- a/src/mame/drivers/suprnova.c
+++ b/src/mame/drivers/suprnova.c
@@ -1740,49 +1740,49 @@ ROM_END
/***** GAME DRIVERS *****/
-GAME( 1996, skns, 0, skns, skns, driver_device, 0, ROT0, "Kaneko", "Super Kaneko Nova System BIOS", GAME_IS_BIOS_ROOT )
+GAME( 1996, skns, 0, skns, skns, driver_device, 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)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, galpani4k, galpani4, sknsk, cyvern, skns_state, galpani4, ROT0, "Kaneko", "Gals Panic 4 (Korea)", GAME_IMPERFECT_GRAPHICS )
+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 )
// 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", GAME_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)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, galpanisj, galpanis, sknsj, galpanis, skns_state, galpanis, ROT0, "Kaneko", "Gals Panic S - Extra Edition (Japan)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, galpanisk, galpanis, sknsk, galpanis, skns_state, galpanis, ROT0, "Kaneko", "Gals Panic S - Extra Edition (Korea)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1997, galpanis, skns, sknse, galpanis, skns_state, galpanis, ROT0, "Kaneko", "Gals Panic S - Extra Edition (Europe)", 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", GAME_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)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, sengekisj, sengekis, sknsj, skns, skns_state, sengekij, ROT90, "Kaneko / Warashi", "Sengeki Striker (Japan)", GAME_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, sknsa, vblokbrk, skns_state, sarukani, ROT0, "Kaneko / Mediaworks", "VS Block Breaker (Asia)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1997, sarukani, vblokbrk, sknsj, vblokbrk, skns_state, sarukani, ROT0, "Kaneko / Mediaworks", "Saru-Kani-Hamu-Zou (Japan)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1997, vblokbrk, skns, 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)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1998, cyvernj, cyvern, sknsj, cyvern, skns_state, cyvern, ROT90, "Kaneko", "Cyvern (Japan)", GAME_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)", GAME_IMPERFECT_GRAPHICS ) // Same speed up as US version
-GAME( 1998, puzzloope, puzzloop, sknse, puzzloop, skns_state, puzzloope, ROT0, "Mitchell", "Puzz Loop (Europe, v0.93)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1998, puzzloopj, puzzloop, sknsj, puzzloop, skns_state, puzzloopj, ROT0, "Mitchell", "Puzz Loop (Japan)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1998, puzzloopa, puzzloop, sknsa, puzzloop, skns_state, puzzloopa, ROT0, "Mitchell", "Puzz Loop (Asia)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1998, puzzloopk, puzzloop, sknsk, puzzloop, skns_state, puzzloopu, ROT0, "Mitchell", "Puzz Loop (Korea)", GAME_IMPERFECT_GRAPHICS ) // Same speed up as US version
-GAME( 1998, puzzloopu, puzzloop, sknsu, puzzloop, skns_state, puzzloopu, ROT0, "Mitchell", "Puzz Loop (USA)", GAME_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 )
+GAME( 1998, puzzloopj, puzzloop, sknsj, puzzloop, skns_state, puzzloopj, ROT0, "Mitchell", "Puzz Loop (Japan)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1998, puzzloopa, puzzloop, sknsa, puzzloop, skns_state, puzzloopa, ROT0, "Mitchell", "Puzz Loop (Asia)", MACHINE_IMPERFECT_GRAPHICS )
+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)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1998, ryourano, ryouran, sknsj, skns_1p, skns_state, ryouran, ROT0, "Electro Design", "VS Mahjong Otome Ryouran (set 2)", GAME_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, sknsj, galpanis, skns_state, galpans2, ROT0, "Kaneko", "Gals Panic S2 (Japan)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1999, galpans2a, galpans2, sknsa, galpanis, skns_state, galpans2, ROT0, "Kaneko", "Gals Panic S2 (Asia)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1999, galpansu, galpans2, sknsk, galpanis, skns_state, galpans2, ROT0, "Kaneko", "Gals Panic SU (Korea)", GAME_IMPERFECT_GRAPHICS ) // official or hack?
+GAME( 1999, galpans2, skns, sknsj, galpanis, skns_state, galpans2, ROT0, "Kaneko", "Gals Panic S2 (Japan)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1999, galpans2a, galpans2, sknsa, galpanis, skns_state, galpans2, ROT0, "Kaneko", "Gals Panic S2 (Asia)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1999, galpansu, galpans2, sknsk, galpanis, skns_state, galpans2, ROT0, "Kaneko", "Gals Panic SU (Korea)", MACHINE_IMPERFECT_GRAPHICS ) // official or hack?
-GAME( 1999, panicstr, skns, sknsj, galpanis, skns_state, panicstr, ROT0, "Kaneko", "Panic Street (Japan)", GAME_IMPERFECT_GRAPHICS )
+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)", GAME_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", GAME_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)", GAME_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)", GAME_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.c b/src/mame/drivers/suprridr.c
index 98b114908b9..4072f9dbfac 100644
--- a/src/mame/drivers/suprridr.c
+++ b/src/mame/drivers/suprridr.c
@@ -429,4 +429,4 @@ ROM_END
*
*************************************/
-GAME( 1983, suprridr, 0, suprridr, suprridr, driver_device, 0, ROT90, "Taito Corporation (Venture Line license)", "Super Rider", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1983, suprridr, 0, suprridr, suprridr, driver_device, 0, ROT90, "Taito Corporation (Venture Line license)", "Super Rider", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/suprslam.c b/src/mame/drivers/suprslam.c
index 1afd0a09fb3..92d63b4de0d 100644
--- a/src/mame/drivers/suprslam.c
+++ b/src/mame/drivers/suprslam.c
@@ -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", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/surpratk.c b/src/mame/drivers/surpratk.c
index 0c9b5108fc6..ad65d4db4ab 100644
--- a/src/mame/drivers/surpratk.c
+++ b/src/mame/drivers/surpratk.c
@@ -265,6 +265,6 @@ ROM_END
***************************************************************************/
-GAME( 1990, suratk, 0, surpratk, surpratk, driver_device, 0, ROT0, "Konami", "Surprise Attack (World ver. K)", GAME_SUPPORTS_SAVE )
-GAME( 1990, suratka, suratk, surpratk, surpratk, driver_device, 0, ROT0, "Konami", "Surprise Attack (Asia ver. L)", GAME_SUPPORTS_SAVE )
-GAME( 1990, suratkj, suratk, surpratk, surpratk, driver_device, 0, ROT0, "Konami", "Surprise Attack (Japan ver. M)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/sv8000.c b/src/mame/drivers/sv8000.c
index 95e5c09dfc5..95e5c09dfc5 100644
--- a/src/mess/drivers/sv8000.c
+++ b/src/mame/drivers/sv8000.c
diff --git a/src/mess/drivers/svi318.c b/src/mame/drivers/svi318.c
index e09a8bf7daf..746820d902a 100644
--- a/src/mess/drivers/svi318.c
+++ b/src/mame/drivers/svi318.c
@@ -532,9 +532,9 @@ ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 1983, svi318, 0, 0, svi318, svi318, svi318_state, svi318, "Spectravideo", "SVI-318 (PAL)", GAME_SUPPORTS_SAVE )
-COMP( 1983, svi318n, svi318, 0, svi318n, svi318, svi318_state, svi318, "Spectravideo", "SVI-318 (NTSC)", GAME_SUPPORTS_SAVE )
-COMP( 1983, svi328, svi318, 0, svi328, svi328, svi318_state, svi318, "Spectravideo", "SVI-328 (PAL)", GAME_SUPPORTS_SAVE )
-COMP( 1983, svi328n, svi318, 0, svi328n, svi328, svi318_state, svi318, "Spectravideo", "SVI-328 (NTSC)", GAME_SUPPORTS_SAVE )
-COMP( 1983, sv328p80, svi318, 0, svi328_806, svi328, svi318_state, svi328_806, "Spectravideo", "SVI-328 (PAL) + SVI-806 80 column card", GAME_SUPPORTS_SAVE )
-COMP( 1983, sv328n80, svi318, 0, svi328n_806, svi328, svi318_state, svi328_806, "Spectravideo", "SVI-328 (NTSC) + SVI-806 80 column card", GAME_SUPPORTS_SAVE )
+COMP( 1983, svi318, 0, 0, svi318, svi318, svi318_state, svi318, "Spectravideo", "SVI-318 (PAL)", MACHINE_SUPPORTS_SAVE )
+COMP( 1983, svi318n, svi318, 0, svi318n, svi318, svi318_state, svi318, "Spectravideo", "SVI-318 (NTSC)", MACHINE_SUPPORTS_SAVE )
+COMP( 1983, svi328, svi318, 0, svi328, svi328, svi318_state, svi318, "Spectravideo", "SVI-328 (PAL)", MACHINE_SUPPORTS_SAVE )
+COMP( 1983, svi328n, svi318, 0, svi328n, svi328, svi318_state, svi318, "Spectravideo", "SVI-328 (NTSC)", MACHINE_SUPPORTS_SAVE )
+COMP( 1983, sv328p80, svi318, 0, svi328_806, svi328, svi318_state, svi328_806, "Spectravideo", "SVI-328 (PAL) + SVI-806 80 column card", MACHINE_SUPPORTS_SAVE )
+COMP( 1983, sv328n80, svi318, 0, svi328n_806, svi328, svi318_state, svi328_806, "Spectravideo", "SVI-328 (NTSC) + SVI-806 80 column card", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/svision.c b/src/mame/drivers/svision.c
index 931d4f391d4..931d4f391d4 100644
--- a/src/mess/drivers/svision.c
+++ b/src/mame/drivers/svision.c
diff --git a/src/mess/drivers/svmu.c b/src/mame/drivers/svmu.c
index 3ca6a8650e1..1e077c8211f 100644
--- a/src/mess/drivers/svmu.c
+++ b/src/mame/drivers/svmu.c
@@ -355,4 +355,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1998, svmu, 0, 0, svmu , svmu , driver_device, 0, "Sega", "Visual Memory Unit", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/swtpc.c b/src/mame/drivers/swtpc.c
index fca0da0adfb..cb2c032193c 100644
--- a/src/mess/drivers/swtpc.c
+++ b/src/mame/drivers/swtpc.c
@@ -132,4 +132,4 @@ 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", GAME_NO_SOUND)
+COMP( 1975, swtpc, 0, 0, swtpc, swtpc, driver_device, 0, "Southwest Technical Products Corporation", "SWTPC 6800", MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/swtpc09.c b/src/mame/drivers/swtpc09.c
index c45666f860c..e1237b55a06 100644
--- a/src/mess/drivers/swtpc09.c
+++ b/src/mame/drivers/swtpc09.c
@@ -259,7 +259,7 @@ 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", GAME_NO_SOUND_HW)
-COMP( 1980, swtpc09i, swtpc09, 0, swtpc09i, swtpc09, swtpc09_state, swtpc09i, "SWTPC", "swtpc S/09 Sbug + piaide", GAME_NOT_WORKING | GAME_NO_SOUND_HW)
-COMP( 1980, swtpc09u, swtpc09, 0, swtpc09, swtpc09, swtpc09_state, swtpc09u, "SWTPC", "swtpc S/09 UNIBug + DMF2", GAME_NO_SOUND_HW)
-COMP( 1980, swtpc09d3, swtpc09, 0, swtpc09d3, swtpc09, swtpc09_state, swtpc09d3, "SWTPC", "swtpc S/09 UNIBug + DMF3", GAME_NO_SOUND_HW)
+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/mess/drivers/sym1.c b/src/mame/drivers/sym1.c
index a302da4d0bb..a302da4d0bb 100644
--- a/src/mess/drivers/sym1.c
+++ b/src/mame/drivers/sym1.c
diff --git a/src/mess/drivers/sys2900.c b/src/mame/drivers/sys2900.c
index c12ba13a27b..9f71bb44bbb 100644
--- a/src/mess/drivers/sys2900.c
+++ b/src/mame/drivers/sys2900.c
@@ -143,4 +143,4 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 1981, sys2900, 0, 0, sys2900, sys2900, sys2900_state, sys2900, "Systems Group", "System 2900", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1981, sys2900, 0, 0, sys2900, sys2900, sys2900_state, sys2900, "Systems Group", "System 2900", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/systec.c b/src/mame/drivers/systec.c
index 6559cad254c..28848f3e2b9 100644
--- a/src/mess/drivers/systec.c
+++ b/src/mame/drivers/systec.c
@@ -120,4 +120,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP(19??, systec, 0, 0, systec, systec, driver_device, 0, "Systec", "Systec Z80", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/system1.c b/src/mame/drivers/system1.c
index 6cbaa042973..e110517de1f 100644
--- a/src/mame/drivers/system1.c
+++ b/src/mame/drivers/system1.c
@@ -47,6 +47,7 @@ bullfgt 6x8k 1x8k 6x8k 2x16k no ppi ???? 6069
thetogyu 3x16k 1x8k 6x8k 2x16k no pio 6073
spatter 3x16k 1x8k 6x8k 4x16k no pio 6394 6306
+spattera 3x16k 1x8k 6x8k 4x16k no pio 6599 6306
ssanchan 3x16k 1x8k 6x8k 4x16k no pio 6312
pitfall2 3x16k 1x8k 6x8k 2x16k no pio 6458(a) 6454
@@ -121,6 +122,18 @@ nobb 3x32k 1x16k 3x32k 4x32k yes
*******************************************************************************
+Spatter (315-5099)
+Sega 1984
+
+This game runs on Sega System 1 hardware.
+
+834-5583-12 SPATTER (sticker)
+834-5542 daughter board with 4 eproms (EPR6306, EPR6307, EPR6308, EPR6309)
+834-5540 daughter board with logic ICs
+315-5099 custom Z80 CPU w/security
+
+*******************************************************************************
+
Chop Lifter
Sega 1985
@@ -367,7 +380,7 @@ void system1_state::machine_start()
m_bank1->set_entry(0);
if (m_banked_decrypted_opcodes)
- {
+ {
m_bank0d->set_base(m_banked_decrypted_opcodes);
m_bank1d->configure_entries(0, numbanks, m_banked_decrypted_opcodes + 0x10000, 0x4000);
m_bank1d->set_entry(0);
@@ -734,7 +747,7 @@ static ADDRESS_MAP_START( system1_map, AS_PROGRAM, 8, system1_state )
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xcfff) AM_RAM AM_SHARE("ram")
AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(system1_paletteram_w) AM_SHARE("paletteram")
+ AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(system1_paletteram_w) AM_SHARE("palette")
AM_RANGE(0xe000, 0xefff) AM_READWRITE(system1_videoram_r, system1_videoram_w)
AM_RANGE(0xf000, 0xf3ff) AM_READWRITE(system1_mixer_collision_r, system1_mixer_collision_w)
AM_RANGE(0xf400, 0xf7ff) AM_WRITE(system1_mixer_collision_reset_w)
@@ -747,7 +760,7 @@ static ADDRESS_MAP_START( decrypted_opcodes_map, AS_DECRYPTED_OPCODES, 8, system
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xcfff) AM_RAM AM_SHARE("ram")
AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(system1_paletteram_w) AM_SHARE("paletteram")
+ AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(system1_paletteram_w) AM_SHARE("palette")
ADDRESS_MAP_END
static ADDRESS_MAP_START( banked_decrypted_opcodes_map, AS_DECRYPTED_OPCODES, 8, system1_state )
@@ -755,7 +768,7 @@ static ADDRESS_MAP_START( banked_decrypted_opcodes_map, AS_DECRYPTED_OPCODES, 8,
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1d")
AM_RANGE(0xc000, 0xcfff) AM_RAM AM_SHARE("ram")
AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(system1_paletteram_w) AM_SHARE("paletteram")
+ AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(system1_paletteram_w) AM_SHARE("palette")
ADDRESS_MAP_END
/* same as normal System 1 except address map is shuffled (RAM/collision are swapped) */
@@ -767,7 +780,7 @@ static ADDRESS_MAP_START( nobo_map, AS_PROGRAM, 8, system1_state )
AM_RANGE(0xc800, 0xcbff) AM_READWRITE(system1_sprite_collision_r, system1_sprite_collision_w)
AM_RANGE(0xcc00, 0xcfff) AM_WRITE(system1_sprite_collision_reset_w)
AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(system1_paletteram_w) AM_SHARE("paletteram")
+ AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(system1_paletteram_w) AM_SHARE("palette")
AM_RANGE(0xe000, 0xefff) AM_READWRITE(system1_videoram_r, system1_videoram_w)
AM_RANGE(0xf000, 0xffff) AM_RAM AM_SHARE("ram")
ADDRESS_MAP_END
@@ -2160,6 +2173,7 @@ static MACHINE_CONFIG_START( sys1ppi, system1_state )
MCFG_GFXDECODE_ADD("gfxdecode", "palette", system1)
MCFG_PALETTE_ADD("palette", 2048)
+ MCFG_PALETTE_FORMAT(BBGGGRRR)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2808,7 +2822,7 @@ ROM_END
ROM_START( spattera )
ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "epr-6597.116", 0x0000, 0x4000, BAD_DUMP CRC(be80384d) SHA1(9e1f5807492b98c3f36a5b80466dcb2a1f1fead8) ) /* encrypted */ // consistent read, but fails ingame ROM check on PCB
+ ROM_LOAD( "epr-6597.116", 0x0000, 0x4000, CRC(fb928b9d) SHA1(0a9bede7a147009b9ebb8a0b73681359da665982) ) /* encrypted */
ROM_LOAD( "epr-6598.109", 0x4000, 0x4000, CRC(5dff037a) SHA1(8e6f6b75a89609ab0498d317c11e6d653343ffbe) ) /* encrypted */
ROM_LOAD( "epr-6599.96", 0x8000, 0x4000, CRC(7ba9de5b) SHA1(f18542c95e8241433ed995c213924ad1ce03cd5b) )
@@ -4958,6 +4972,34 @@ DRIVER_INIT_MEMBER(system1_state,spatter)
sega_decode(m_maincpu_region->base(), m_decrypted_opcodes, 0x8000, convtable);
}
+DRIVER_INIT_MEMBER(system1_state,spattera)
+{
+ static const UINT8 convtable[32][4] =
+ {
+ /* opcode data address */
+ /* A B C D A B C D */
+ { 0xa0,0xa8,0x20,0x28 }, { 0x80,0xa0,0x00,0x20 }, /* ...0...0...0...0 */
+ { 0x20,0x28,0x00,0x08 }, { 0x20,0x28,0x00,0x08 }, /* ...0...0...0...1 */
+ { 0xa0,0xa8,0x20,0x28 }, { 0x08,0x28,0x00,0x20 }, /* ...0...0...1...0 */
+ { 0x88,0x08,0xa8,0x28 }, { 0x88,0x08,0xa8,0x28 }, /* ...0...0...1...1 */
+ { 0xa0,0xa8,0x20,0x28 }, { 0x20,0x28,0x00,0x08 }, /* ...0...1...0...0 */
+ { 0x28,0xa8,0x20,0xa0 }, { 0x20,0x28,0x00,0x08 }, /* ...0...1...0...1 */
+ { 0xa0,0xa8,0x20,0x28 }, { 0x08,0x28,0x00,0x20 }, /* ...0...1...1...0 */
+ { 0x88,0x08,0xa8,0x28 }, { 0x88,0x08,0xa8,0x28 }, /* ...0...1...1...1 */
+ { 0x28,0xa8,0x20,0xa0 }, { 0xa0,0xa8,0x20,0x28 }, /* ...1...0...0...0 */
+ { 0x88,0x08,0xa8,0x28 }, { 0x80,0xa0,0x00,0x20 }, /* ...1...0...0...1 */
+ { 0x28,0xa8,0x20,0xa0 }, { 0x08,0x28,0x00,0x20 }, /* ...1...0...1...0 */
+ { 0x28,0xa8,0x20,0xa0 }, { 0x80,0xa0,0x00,0x20 }, /* ...1...0...1...1 */
+ { 0x20,0x28,0x00,0x08 }, { 0x20,0x28,0x00,0x08 }, /* ...1...1...0...0 */
+ { 0x88,0x08,0xa8,0x28 }, { 0x20,0x28,0x00,0x08 }, /* ...1...1...0...1 */
+ { 0x08,0x28,0x00,0x20 }, { 0x80,0xa0,0x00,0x20 }, /* ...1...1...1...0 */
+ { 0x08,0x28,0x00,0x20 }, { 0x88,0x08,0xa8,0x28 } /* ...1...1...1...1 */
+ };
+
+ DRIVER_INIT_CALL(bank00);
+ sega_decode(m_maincpu_region->base(), m_decrypted_opcodes, 0x8000, convtable);
+}
+
DRIVER_INIT_MEMBER(system1_state,pitfall2)
{
static const UINT8 convtable[32][4] =
@@ -5588,84 +5630,84 @@ DRIVER_INIT_MEMBER(system1_state,shtngmst)
*************************************/
/* PPI-based System 1 */
-GAME( 1983, starjack, 0, sys1ppis, starjack, system1_state, bank00, ROT270, "Sega", "Star Jacker (Sega)", GAME_SUPPORTS_SAVE )
-GAME( 1983, starjacks, starjack, sys1ppis, starjacks, system1_state, bank00, ROT270, "Sega (Stern Electronics license)", "Star Jacker (Stern Electronics)", GAME_SUPPORTS_SAVE )
-GAME( 1983, upndown, 0, sys1ppix, upndown, system1_state, nprinces, ROT270, "Sega", "Up'n Down (315-5030)", GAME_SUPPORTS_SAVE )
-GAME( 1983, upndownu, upndown, sys1ppi, upndown, system1_state, bank00, ROT270, "Sega", "Up'n Down (not encrypted)", GAME_SUPPORTS_SAVE )
-GAME( 1983, regulus, 0, sys1ppix, regulus, system1_state, regulus, ROT270, "Sega", "Regulus (315-5033, Rev A.)", GAME_SUPPORTS_SAVE )
-GAME( 1983, reguluso, regulus, sys1ppix, reguluso, system1_state, regulus, ROT270, "Sega", "Regulus (315-5033)", GAME_SUPPORTS_SAVE )
-GAME( 1983, regulusu, regulus, sys1ppi, regulus, system1_state, bank00, ROT270, "Sega", "Regulus (not encrypted)", GAME_SUPPORTS_SAVE )
-GAME( 1984, mrviking, 0, sys1ppisx, mrviking, system1_state, mrviking, ROT270, "Sega", "Mister Viking (315-5041)", GAME_SUPPORTS_SAVE )
-GAME( 1984, mrvikingj, mrviking, sys1ppisx, mrvikingj, system1_state, mrviking, ROT270, "Sega", "Mister Viking (315-5041, Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1984, swat, 0, sys1ppix, swat, system1_state, swat, ROT270, "Coreland / Sega", "SWAT (315-5048)", GAME_SUPPORTS_SAVE )
-GAME( 1984, flickyo, flicky, sys1ppix, flicky, system1_state, flicky, ROT0, "Sega", "Flicky (64k Version, System 1, 315-5051, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1984, flickys1, flicky, sys1ppix, flickys1, system1_state, flicky, ROT0, "Sega", "Flicky (64k Version, System 1, 315-5051, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1984, wmatch, 0, sys1ppisx, wmatch, system1_state, wmatch, ROT270, "Sega", "Water Match (315-5064)", GAME_SUPPORTS_SAVE )
-GAME( 1984, bullfgt, 0, sys1ppix, bullfgt, system1_state, bullfgtj, ROT0, "Coreland / Sega", "Bullfight (315-5065)", GAME_SUPPORTS_SAVE )
-GAME( 1985, nprinces, seganinj, sys1ppix, seganinj, system1_state, flicky, ROT0, "bootleg?", "Ninja Princess (315-5051, 64k Ver. bootleg?)", GAME_SUPPORTS_SAVE )
-GAME( 1985, nprincesu, seganinj, sys1ppi, seganinj, system1_state, bank00, ROT0, "Sega", "Ninja Princess (64k Ver. not encrypted)", GAME_SUPPORTS_SAVE )
-GAME( 1986, wboy2, wboy, sys1ppix, wboy, system1_state, wboy2, ROT0, "Escape (Sega license)", "Wonder Boy (set 2, 315-5178)", GAME_SUPPORTS_SAVE )
-GAME( 1986, wboy2u, wboy, sys1ppi, wboy, system1_state, bank00, ROT0, "Escape (Sega license)", "Wonder Boy (set 2, not encrypted)", GAME_SUPPORTS_SAVE )
-GAME( 1986, wbdeluxe, wboy, sys1ppi, wbdeluxe, system1_state, bank00, ROT0, "Escape (Sega license)", "Wonder Boy Deluxe", GAME_SUPPORTS_SAVE )
-GAME( 1986, nob, 0, nobm, nob, system1_state, nob, ROT270, "Coreland / Data East Corporation", "Noboranka (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1986, nobb, nob, nob, nob, system1_state, nobb, ROT270, "bootleg (Game Electronics)", "Noboranka (Japan, bootleg)", GAME_SUPPORTS_SAVE )
+GAME( 1983, starjack, 0, sys1ppis, starjack, system1_state, bank00, ROT270, "Sega", "Star Jacker (Sega)", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, starjacks, starjack, sys1ppis, starjacks, system1_state, bank00, ROT270, "Sega (Stern Electronics license)", "Star Jacker (Stern Electronics)", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, upndown, 0, sys1ppix, upndown, system1_state, nprinces, ROT270, "Sega", "Up'n Down (315-5030)", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, upndownu, upndown, sys1ppi, upndown, system1_state, bank00, ROT270, "Sega", "Up'n Down (not encrypted)", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, regulus, 0, sys1ppix, regulus, system1_state, regulus, ROT270, "Sega", "Regulus (315-5033, Rev A.)", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, reguluso, regulus, sys1ppix, reguluso, system1_state, regulus, ROT270, "Sega", "Regulus (315-5033)", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, regulusu, regulus, sys1ppi, regulus, system1_state, bank00, ROT270, "Sega", "Regulus (not encrypted)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, mrviking, 0, sys1ppisx, mrviking, system1_state, mrviking, ROT270, "Sega", "Mister Viking (315-5041)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, mrvikingj, mrviking, sys1ppisx, mrvikingj, system1_state, mrviking, ROT270, "Sega", "Mister Viking (315-5041, Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, swat, 0, sys1ppix, swat, system1_state, swat, ROT270, "Coreland / Sega", "SWAT (315-5048)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, flickyo, flicky, sys1ppix, flicky, system1_state, flicky, ROT0, "Sega", "Flicky (64k Version, System 1, 315-5051, set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, flickys1, flicky, sys1ppix, flickys1, system1_state, flicky, ROT0, "Sega", "Flicky (64k Version, System 1, 315-5051, set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, wmatch, 0, sys1ppisx, wmatch, system1_state, wmatch, ROT270, "Sega", "Water Match (315-5064)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, bullfgt, 0, sys1ppix, bullfgt, system1_state, bullfgtj, ROT0, "Coreland / Sega", "Bullfight (315-5065)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, nprinces, seganinj, sys1ppix, seganinj, system1_state, flicky, ROT0, "bootleg?", "Ninja Princess (315-5051, 64k Ver. bootleg?)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, nprincesu, seganinj, sys1ppi, seganinj, system1_state, bank00, ROT0, "Sega", "Ninja Princess (64k Ver. not encrypted)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, wboy2, wboy, sys1ppix, wboy, system1_state, wboy2, ROT0, "Escape (Sega license)", "Wonder Boy (set 2, 315-5178)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, wboy2u, wboy, sys1ppi, wboy, system1_state, bank00, ROT0, "Escape (Sega license)", "Wonder Boy (set 2, not encrypted)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, wbdeluxe, wboy, sys1ppi, wbdeluxe, system1_state, bank00, ROT0, "Escape (Sega license)", "Wonder Boy Deluxe", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, nob, 0, nobm, nob, system1_state, nob, ROT270, "Coreland / Data East Corporation", "Noboranka (Japan)", MACHINE_SUPPORTS_SAVE )
+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, flicky, system1_state, flicky, ROT0, "Sega", "Flicky (128k Version, System 2, 315-5051)", GAME_SUPPORTS_SAVE )
-GAME( 1984, flickys2, flicky, sys1pio, flickys2, system1_state, bank00, ROT0, "Sega", "Flicky (128k Version, System 2, not encrypted)", GAME_SUPPORTS_SAVE )
-GAME( 1984, thetogyu, bullfgt, sys1piox, bullfgt, system1_state, bullfgtj, ROT0, "Coreland / Sega", "The Togyu (315-5065, Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1984, spatter, 0, sys1piosx, spatter, system1_state, spatter, ROT0, "Sega", "Spatter (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1984, spattera, spatter, sys1piosx, spatter, system1_state, spatter, ROT0, "Sega", "Spatter (315-5099)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1984, ssanchan, spatter, sys1piosx, spatter, system1_state, spatter, ROT0, "Sega", "Sanrin San Chan (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1985, pitfall2, 0, sys1piox, pitfall2, system1_state, pitfall2, ROT0, "Sega", "Pitfall II (315-5093)", GAME_SUPPORTS_SAVE )
-GAME( 1985, pitfall2a, pitfall2, sys1piox, pitfall2, system1_state, pitfall2, ROT0, "Sega", "Pitfall II (315-5093, Flicky Conversion)", GAME_SUPPORTS_SAVE )
-GAME( 1985, pitfall2u, pitfall2, sys1pio, pitfall2u, system1_state, bank00, ROT0, "Sega", "Pitfall II (not encrypted)", GAME_SUPPORTS_SAVE )
-GAME( 1985, seganinj, 0, sys1piox, seganinj, system1_state, seganinj, ROT0, "Sega", "Sega Ninja (315-5102)", GAME_SUPPORTS_SAVE )
-GAME( 1985, seganinju, seganinj, sys1pio, seganinj, system1_state, bank00, ROT0, "Sega", "Sega Ninja (not encrypted)", GAME_SUPPORTS_SAVE )
-GAME( 1985, ninja, seganinj, sys1piox, seganinj, system1_state, seganinj, ROT0, "Sega", "Ninja (315-5102)", GAME_SUPPORTS_SAVE )
-GAME( 1985, nprinceso, seganinj, sys1piox, seganinj, system1_state, nprinces, ROT0, "Sega", "Ninja Princess (315-5098, 128k Ver.)", GAME_SUPPORTS_SAVE )
-GAME( 1985, nprincesb, seganinj, sys1piox, seganinj, system1_state, flicky, ROT0, "bootleg?", "Ninja Princess (315-5051?, 128k Ver. bootleg?)", GAME_SUPPORTS_SAVE )
-GAME( 1985, imsorry, 0, sys1piox, imsorry, system1_state, imsorry, ROT0, "Coreland / Sega", "I'm Sorry (315-5110, US)", GAME_SUPPORTS_SAVE )
-GAME( 1985, imsorryj, imsorry, sys1piox, imsorry, system1_state, imsorry, ROT0, "Coreland / Sega", "Gonbee no I'm Sorry (315-5110, Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1985, teddybb, 0, sys1piox, teddybb, system1_state, teddybb, ROT0, "Sega", "TeddyBoy Blues (315-5115, New Ver.)", GAME_SUPPORTS_SAVE )
-GAME( 1985, teddybbo, teddybb, sys1piox, teddybb, system1_state, teddybb, ROT0, "Sega", "TeddyBoy Blues (315-5115, Old Ver.)", GAME_SUPPORTS_SAVE )
-GAME( 1985, teddybbobl, teddybb, sys1piox, teddybb, system1_state, teddybb, ROT0, "bootleg", "TeddyBoy Blues (Old Ver. bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1985, myhero, 0, sys1pio, myhero, system1_state, bank00, ROT0, "Coreland / Sega", "My Hero (US, not encrypted)", GAME_SUPPORTS_SAVE )
-GAME( 1985, sscandal, myhero, sys1piox, myhero, system1_state, myheroj, ROT0, "Coreland / Sega", "Seishun Scandal (315-5132, Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1985, myherok, myhero, sys1piox, myhero, system1_state, myherok, ROT0, "Coreland / Sega", "My Hero (Korea)", GAME_SUPPORTS_SAVE )
-GAME( 1985, 4dwarrio, 0, sys1piox, 4dwarrio, system1_state, 4dwarrio, ROT0, "Coreland / Sega", "4-D Warriors (315-5162)", GAME_SUPPORTS_SAVE )
-GAME( 1986, raflesia, 0, sys1piox, raflesia, system1_state, 4dwarrio, ROT270, "Coreland / Sega", "Rafflesia (315-5162)", GAME_SUPPORTS_SAVE )
-GAME( 1986, wboy, 0, sys1piox, wboy, system1_state, wboy, ROT0, "Escape (Sega license)", "Wonder Boy (set 1, 315-5177)", GAME_SUPPORTS_SAVE )
-GAME( 1986, wboyo, wboy, sys1piox, wboy, system1_state, wboyo, ROT0, "Escape (Sega license)", "Wonder Boy (set 1, 315-5135)", GAME_SUPPORTS_SAVE )
-GAME( 1986, wboy3, wboy, sys1piox, wboy3, system1_state, wboyo, ROT0, "Escape (Sega license)", "Wonder Boy (set 3, 315-5135)", GAME_SUPPORTS_SAVE )
-GAME( 1986, wboy4, wboy, sys1piox, wboy, system1_state, 4dwarrio, ROT0, "Escape (Sega license)", "Wonder Boy (315-5162, 4-D Warriors Conversion)", GAME_SUPPORTS_SAVE )
-GAME( 1986, wboyu, wboy, sys1pio, wboyu, system1_state, bank00, ROT0, "Escape (Sega license)", "Wonder Boy (prototype?)", GAME_SUPPORTS_SAVE ) // appears to be a very early / unfinished version.
-GAME( 1986, wboy5, wboy, sys1piox, wboy3, system1_state, wboyo, ROT0, "bootleg", "Wonder Boy (set 5, bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1986, wboyub, wboy, sys1piox, wboy, system1_state, wboyo, ROT0, "bootleg", "Wonder Boy (US bootleg)", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
-GAME( 1987, blockgal, 0, sys1piox, blockgal, system1_state, blockgal, ROT90, "Sega / Vic Tokai","Block Gal (MC-8123B, 317-0029)", GAME_SUPPORTS_SAVE)
+GAME( 1984, flicky, 0, sys1piox, flicky, system1_state, flicky, ROT0, "Sega", "Flicky (128k Version, System 2, 315-5051)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, flickys2, flicky, sys1pio, flickys2, system1_state, bank00, ROT0, "Sega", "Flicky (128k Version, System 2, not encrypted)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, thetogyu, bullfgt, sys1piox, bullfgt, system1_state, bullfgtj, ROT0, "Coreland / Sega", "The Togyu (315-5065, Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, spatter, 0, sys1piosx, spatter, system1_state, spatter, ROT0, "Sega", "Spatter (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, spattera, spatter, sys1piosx, spatter, system1_state, spattera, ROT0, "Sega", "Spatter (315-5099)", MACHINE_SUPPORTS_SAVE )
+GAME( 1984, ssanchan, spatter, sys1piosx, spatter, system1_state, spatter, ROT0, "Sega", "Sanrin San Chan (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, pitfall2, 0, sys1piox, pitfall2, system1_state, pitfall2, ROT0, "Sega", "Pitfall II (315-5093)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, pitfall2a, pitfall2, sys1piox, pitfall2, system1_state, pitfall2, 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, seganinj, system1_state, seganinj, 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, ninja, seganinj, sys1piox, seganinj, system1_state, seganinj, ROT0, "Sega", "Ninja (315-5102)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, nprinceso, seganinj, sys1piox, seganinj, system1_state, nprinces, ROT0, "Sega", "Ninja Princess (315-5098, 128k Ver.)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, nprincesb, seganinj, sys1piox, seganinj, system1_state, flicky, ROT0, "bootleg?", "Ninja Princess (315-5051?, 128k Ver. bootleg?)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, imsorry, 0, sys1piox, imsorry, system1_state, imsorry, ROT0, "Coreland / Sega", "I'm Sorry (315-5110, US)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, imsorryj, imsorry, sys1piox, imsorry, system1_state, imsorry, ROT0, "Coreland / Sega", "Gonbee no I'm Sorry (315-5110, Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, teddybb, 0, sys1piox, teddybb, system1_state, teddybb, ROT0, "Sega", "TeddyBoy Blues (315-5115, New Ver.)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, teddybbo, teddybb, sys1piox, teddybb, system1_state, teddybb, ROT0, "Sega", "TeddyBoy Blues (315-5115, Old Ver.)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, teddybbobl, teddybb, sys1piox, teddybb, system1_state, teddybb, 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, myhero, system1_state, myheroj, ROT0, "Coreland / Sega", "Seishun Scandal (315-5132, Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, myherok, myhero, sys1piox, myhero, system1_state, myherok, ROT0, "Coreland / Sega", "My Hero (Korea)", MACHINE_SUPPORTS_SAVE )
+GAME( 1985, 4dwarrio, 0, sys1piox, 4dwarrio, system1_state, 4dwarrio, ROT0, "Coreland / Sega", "4-D Warriors (315-5162)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, raflesia, 0, sys1piox, raflesia, system1_state, 4dwarrio, ROT270, "Coreland / Sega", "Rafflesia (315-5162)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, wboy, 0, sys1piox, wboy, system1_state, wboy, ROT0, "Escape (Sega license)", "Wonder Boy (set 1, 315-5177)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, wboyo, wboy, sys1piox, wboy, system1_state, wboyo, ROT0, "Escape (Sega license)", "Wonder Boy (set 1, 315-5135)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, wboy3, wboy, sys1piox, wboy3, system1_state, wboyo, ROT0, "Escape (Sega license)", "Wonder Boy (set 3, 315-5135)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, wboy4, wboy, sys1piox, wboy, system1_state, 4dwarrio, 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, wboy3, system1_state, wboyo, ROT0, "bootleg", "Wonder Boy (set 5, bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, wboyub, wboy, sys1piox, wboy, system1_state, wboyo, ROT0, "bootleg", "Wonder Boy (US bootleg)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
+GAME( 1987, blockgal, 0, sys1piox, 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, hvymetal, system1_state, hvymetal, ROT0, "Sega", "Heavy Metal (315-5135)", GAME_SUPPORTS_SAVE )
-GAME( 1986, gardia, 0, sys1piox, gardia, system1_state, gardia, ROT270, "Coreland / Sega", "Gardia (317-0006)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE)
-GAME( 1986, brain, 0, sys1pio, brain, system1_state, bank44, ROT0, "Coreland / Sega", "Brain", GAME_SUPPORTS_SAVE )
+GAME( 1985, hvymetal, 0, sys1piox, hvymetal, system1_state, hvymetal, ROT0, "Sega", "Heavy Metal (315-5135)", MACHINE_SUPPORTS_SAVE )
+GAME( 1986, gardia, 0, sys1piox, gardia, system1_state, gardia, 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)", GAME_SUPPORTS_SAVE )
-GAME( 1985, chopliftu, choplift, sys2row, choplift, system1_state, bank0c, ROT0, "Sega (licensed from Dan Gorlin)", "Choplifter (unprotected)", GAME_SUPPORTS_SAVE )
-GAME( 1985, chopliftbl, choplift, sys2row, choplift, system1_state, bank0c, ROT0, "bootleg", "Choplifter (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1985, shtngmst, 0, sys2m, shtngmst, system1_state, shtngmst, ROT0, "Sega", "Shooting Master (8751 315-5159)", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
-GAME( 1985, shtngmste, shtngmst, sys2m, shtngmst, system1_state, shtngmst, ROT0, "Sega / EVG", "Shooting Master (EVG, 8751 315-5159a)", GAME_SUPPORTS_SAVE )
-GAME( 1986, gardiab, gardia, sys2x, gardia, system1_state, gardiab, ROT270, "bootleg", "Gardia (317-0007?, bootleg)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1986, wboysys2, wboy, sys2x, wboysys2, system1_state, wboysys2, ROT0, "Escape (Sega license)", "Wonder Boy (system 2)", GAME_SUPPORTS_SAVE )
-GAME( 1987, tokisens, 0, sys2, tokisens, system1_state, bank0c, ROT90, "Sega", "Toki no Senshi - Chrono Soldier", GAME_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)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1987, wbmljb, wbml, sys2xb, wbml, system1_state, bootsys2, ROT0, "bootleg", "Wonder Boy in Monster Land (Japan bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1987, wbmlb, wbml, sys2xb, wbml, system1_state, bootsys2, ROT0, "bootleg", "Wonder Boy in Monster Land (English bootleg set 1)", GAME_SUPPORTS_SAVE)
-GAME( 1987, wbmlbg, wbml, sys2xb, wbml, system1_state, bootsys2, ROT0, "bootleg (Galaxy Electronics)", "Wonder Boy in Monster Land (English bootleg set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1987, wbmlbge, wbml, sys2xb, wbml, system1_state, bootsys2, ROT0, "bootleg (Gecas)", "Wonder Boy in Monster Land (English bootleg set 3)", GAME_SUPPORTS_SAVE )
-GAME( 2009, wbmlvc, wbml, sys2xb, wbml, system1_state, bootsys2, ROT0, "Sega", "Wonder Boy in Monster Land (English, Virtual Console)", GAME_SUPPORTS_SAVE )
-GAME( 1987, dakkochn, 0, sys2xb, dakkochn, system1_state, dakkochn, ROT0, "White Board", "DakkoChan House (MC-8123B, 317-5014)", GAME_SUPPORTS_SAVE )
-GAME( 1987, blockgalb, blockgal, sys2x, blockgal, system1_state, bootleg, ROT90, "bootleg", "Block Gal (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1988, ufosensi, 0, sys2rowxb, ufosensi, system1_state, ufosensi, ROT0, "Sega", "Ufo Senshi Yohko Chan (MC-8123, 317-0064)", GAME_SUPPORTS_SAVE )
-GAME( 1988, ufosensib, ufosensi, sys2rowxb, ufosensi, system1_state, bootsys2, ROT0, "bootleg", "Ufo Senshi Yohko Chan (bootleg, not encrypted)", GAME_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, sys2x, gardia, system1_state, gardiab, ROT270, "bootleg", "Gardia (317-0007?, bootleg)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1986, wboysys2, wboy, sys2x, wboysys2, system1_state, wboysys2, ROT0, "Escape (Sega license)", "Wonder Boy (system 2)", 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, sys2xb, wbml, system1_state, bootsys2, ROT0, "bootleg", "Wonder Boy in Monster Land (Japan bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, wbmlb, wbml, sys2xb, wbml, system1_state, bootsys2, ROT0, "bootleg", "Wonder Boy in Monster Land (English bootleg set 1)", MACHINE_SUPPORTS_SAVE)
+GAME( 1987, wbmlbg, wbml, sys2xb, wbml, system1_state, bootsys2, ROT0, "bootleg (Galaxy Electronics)", "Wonder Boy in Monster Land (English bootleg set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, wbmlbge, wbml, sys2xb, wbml, system1_state, bootsys2, ROT0, "bootleg (Gecas)", "Wonder Boy in Monster Land (English bootleg set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 2009, wbmlvc, wbml, sys2xb, wbml, system1_state, bootsys2, ROT0, "Sega", "Wonder Boy in Monster Land (English, Virtual Console)", 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, sys2rowxb, ufosensi, system1_state, bootsys2, ROT0, "bootleg", "Ufo Senshi Yohko Chan (bootleg, not encrypted)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/system16.c b/src/mame/drivers/system16.c
index 2c0723f6f18..9d5bb80a0fa 100644
--- a/src/mame/drivers/system16.c
+++ b/src/mame/drivers/system16.c
@@ -97,6 +97,7 @@
#include "sound/2612intf.h"
#include "sound/rf5c68.h"
#include "video/segaic16.h"
+#include "sound/2203intf.h"
#define SHADOW_COLORS_MULTIPLIER 3
@@ -118,6 +119,15 @@ WRITE16_MEMBER(segas1x_bootleg_state::sound_command_nmi_w)
}
}
+WRITE16_MEMBER(segas1x_bootleg_state::sound_command_irq_w)
+{
+ if (ACCESSING_BITS_0_7)
+ {
+ soundlatch_byte_w(space, 0, data & 0xff);
+ m_soundcpu->set_input_line(0, HOLD_LINE);
+ }
+}
+
static ADDRESS_MAP_START( shinobib_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
@@ -127,7 +137,10 @@ static ADDRESS_MAP_START( shinobib_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0x412000, 0x412fff) AM_RAM AM_SHARE("bg1_tileram")
AM_RANGE(0x440000, 0x440fff) AM_RAM AM_SHARE("sprites")
AM_RANGE(0x840000, 0x840fff) AM_RAM_WRITE(paletteram_w) AM_SHARE("paletteram")
- AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sound_command_nmi_w)
+// AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sound_command_irq_w)
+ AM_RANGE(0xC42006, 0xC42007) AM_WRITE(sound_command_irq_w)
+
+ AM_RANGE(0xC44000, 0xC44001) AM_READNOP
AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE")
AM_RANGE(0xc41002, 0xc41003) AM_READ_PORT("P1")
AM_RANGE(0xc41006, 0xc41007) AM_READ_PORT("P2")
@@ -146,15 +159,6 @@ ADDRESS_MAP_END
/***************************************************************************/
-WRITE16_MEMBER(segas1x_bootleg_state::sound_command_w)
-{
- if (ACCESSING_BITS_0_7)
- {
- soundlatch_byte_w(space, 0, data & 0xff);
- m_soundcpu->set_input_line(0, HOLD_LINE);
- }
-}
-
WRITE16_MEMBER(segas1x_bootleg_state::sys16_coinctrl_w)
{
if (ACCESSING_BITS_0_7)
@@ -187,7 +191,7 @@ static ADDRESS_MAP_START( passshtb_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE")
AM_RANGE(0xc42002, 0xc42003) AM_READ_PORT("DSW1")
AM_RANGE(0xc42000, 0xc42001) AM_READ_PORT("DSW2")
- AM_RANGE(0xc42006, 0xc42007) AM_WRITE(sound_command_w)
+ AM_RANGE(0xc42006, 0xc42007) AM_WRITE(sound_command_irq_w)
AM_RANGE(0xc46000, 0xc46001) AM_WRITE(s16a_bootleg_bgscrolly_w)
AM_RANGE(0xc46002, 0xc46003) AM_WRITE(s16a_bootleg_bgscrollx_w)
AM_RANGE(0xc46004, 0xc46005) AM_WRITE(s16a_bootleg_fgscrolly_w)
@@ -265,7 +269,7 @@ static ADDRESS_MAP_START( passht4b_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0xc41006, 0xc41007) AM_READ(passht4b_io3_r)
AM_RANGE(0xc42000, 0xc42001) AM_READ_PORT("DSW2")
AM_RANGE(0xc42002, 0xc42003) AM_READ_PORT("DSW1")
- AM_RANGE(0xc42006, 0xc42007) AM_WRITE(sound_command_w)
+ AM_RANGE(0xc42006, 0xc42007) AM_WRITE(sound_command_irq_w)
AM_RANGE(0xc43000, 0xc43001) AM_READ_PORT("P1") // test mode only
AM_RANGE(0xc43002, 0xc43003) AM_READ_PORT("P2")
AM_RANGE(0xc43004, 0xc43005) AM_READ_PORT("P3")
@@ -313,7 +317,7 @@ static ADDRESS_MAP_START( wb3bbl_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0xc41004, 0xc41005) AM_READ_PORT("P2")
AM_RANGE(0xc42000, 0xc42001) AM_READ_PORT("DSW2")
AM_RANGE(0xc42002, 0xc42003) AM_READ_PORT("DSW1")
- AM_RANGE(0xc42006, 0xc42007) AM_WRITE(sound_command_w)
+ AM_RANGE(0xc42006, 0xc42007) AM_WRITE(sound_command_irq_w)
AM_RANGE(0xC44000, 0xC44001) AM_WRITENOP
AM_RANGE(0xc46000, 0xc46001) AM_WRITE(s16a_bootleg_bgscrolly_w)
AM_RANGE(0xc46002, 0xc46003) AM_WRITE(s16a_bootleg_bgscrollx_w)
@@ -424,6 +428,24 @@ ADDRESS_MAP_END
/*******************************************************************************/
+static ADDRESS_MAP_START(shinobi_datsu_sound_map, AS_PROGRAM, 8, segas1x_bootleg_state )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+
+ AM_RANGE(0xe000, 0xe001) AM_DEVREADWRITE("ym1", ym2203_device, read, write)
+ AM_RANGE(0xe400, 0xe401) AM_DEVREADWRITE("ym2", ym2203_device, read, write)
+ AM_RANGE(0xe800, 0xe800) AM_READ(soundlatch_byte_r)
+
+ AM_RANGE(0xf800, 0xffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( shinobi_datsu_sound_io, AS_IO, 8, segas1x_bootleg_state )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
+ADDRESS_MAP_END
+
+
+
+/*******************************************************************************/
+
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, segas1x_bootleg_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xe800, 0xe800) AM_READ(soundlatch_byte_r)
@@ -504,7 +526,7 @@ static ADDRESS_MAP_START( bayroute_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0x901000, 0x901001) AM_READ_PORT("SERVICE")
AM_RANGE(0x902002, 0x902003) AM_READ_PORT("DSW1")
AM_RANGE(0x902000, 0x902001) AM_READ_PORT("DSW2")
- AM_RANGE(0xff0006, 0xff0007) AM_WRITE(sound_command_w)
+ AM_RANGE(0xff0006, 0xff0007) AM_WRITE(sound_command_irq_w)
AM_RANGE(0xff0020, 0xff003f) AM_WRITENOP // config regs
ADDRESS_MAP_END
#endif
@@ -691,7 +713,7 @@ static ADDRESS_MAP_START( bayrouteb2_map, AS_PROGRAM, 16, segas1x_bootleg_state
AM_RANGE(0x800000, 0x800fff) AM_RAM_WRITE(paletteram_w) AM_SHARE("paletteram")
AM_RANGE(0x900000, 0x900001) AM_READ_PORT("DSW1")
AM_RANGE(0x900002, 0x900003) AM_READ_PORT("DSW2")
- AM_RANGE(0x900006, 0x900007) AM_WRITE(sound_command_w)
+ AM_RANGE(0x900006, 0x900007) AM_WRITE(sound_command_irq_w)
AM_RANGE(0x901000, 0x901001) AM_READ_PORT("SERVICE") AM_WRITE(sys16_coinctrl_w)
AM_RANGE(0x901002, 0x901003) AM_READ_PORT("P1")
AM_RANGE(0x901006, 0x901007) AM_READ_PORT("P2")
@@ -705,7 +727,7 @@ static ADDRESS_MAP_START( dduxbl_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0x440000, 0x440fff) AM_RAM AM_SHARE("sprites")
AM_RANGE(0x840000, 0x840fff) AM_RAM_WRITE(paletteram_w) AM_SHARE("paletteram")
AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sys16_coinctrl_w)
- AM_RANGE(0xc40006, 0xc40007) AM_WRITE(sound_command_w)
+ AM_RANGE(0xc40006, 0xc40007) AM_WRITE(sound_command_irq_w)
AM_RANGE(0xc41002, 0xc41003) AM_READ_PORT("P1")
AM_RANGE(0xc41004, 0xc41005) AM_READ_PORT("P2")
AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE")
@@ -825,7 +847,7 @@ static ADDRESS_MAP_START( fpointbl_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0x410000, 0x410fff) AM_RAM_WRITE(sys16_textram_w) AM_SHARE("textram")
AM_RANGE(0x440000, 0x440fff) AM_RAM AM_SHARE("sprites")
- AM_RANGE(0x600006, 0x600007) AM_WRITE(sound_command_w)
+ AM_RANGE(0x600006, 0x600007) AM_WRITE(sound_command_irq_w)
AM_RANGE(0x601000, 0x601001) AM_READ_PORT("SERVICE")
AM_RANGE(0x601002, 0x601003) AM_READ_PORT("P1")
AM_RANGE(0x601004, 0x601005) AM_READ_PORT("P2")
@@ -879,7 +901,7 @@ static ADDRESS_MAP_START( eswatbl_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE")
AM_RANGE(0xc42002, 0xc42003) AM_READ_PORT("DSW1")
AM_RANGE(0xc42000, 0xc42001) AM_READ_PORT("DSW2")
- AM_RANGE(0xc42006, 0xc42007) AM_WRITE(sound_command_w)
+ AM_RANGE(0xc42006, 0xc42007) AM_WRITE(sound_command_irq_w)
AM_RANGE(0xc80000, 0xc80001) AM_WRITENOP
AM_RANGE(0xffc000, 0xffffff) AM_RAM // work ram
ADDRESS_MAP_END
@@ -906,7 +928,7 @@ static ADDRESS_MAP_START( tetrisbl_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0xc41006, 0xc41007) AM_READ_PORT("P2")
AM_RANGE(0xc42000, 0xc42001) AM_READ_PORT("DSW2")
AM_RANGE(0xc42002, 0xc42003) AM_READ_PORT("DSW1")
- AM_RANGE(0xc42006, 0xc42007) AM_WRITE(sound_command_w)
+ AM_RANGE(0xc42006, 0xc42007) AM_WRITE(sound_command_irq_w)
AM_RANGE(0xc43034, 0xc43035) AM_WRITENOP
AM_RANGE(0xc80000, 0xc80001) AM_NOP
AM_RANGE(0xffc000, 0xffffff) AM_RAM // work ram
@@ -943,7 +965,7 @@ static ADDRESS_MAP_START( beautyb_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE")
AM_RANGE(0xc41002, 0xc41003) AM_READ_PORT("P1")
AM_RANGE(0xc41004, 0xc41005) AM_READ_PORT("P2")
- AM_RANGE(0xc42006, 0xc42007) AM_WRITE(sound_command_w)
+ AM_RANGE(0xc42006, 0xc42007) AM_WRITE(sound_command_irq_w)
AM_RANGE(0xc40000, 0xc40001) AM_WRITENOP
AM_RANGE(0xc80000, 0xc80001) AM_WRITENOP // vblank irq ack
@@ -963,7 +985,7 @@ static ADDRESS_MAP_START( tturfbl_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0x600000, 0x600001) AM_WRITE(sys16_coinctrl_w)
AM_RANGE(0x600000, 0x600001) AM_READ_PORT("DSW2")
AM_RANGE(0x600002, 0x600003) AM_READ_PORT("DSW1")
- AM_RANGE(0x600006, 0x600007) AM_WRITE(sound_command_w)
+ AM_RANGE(0x600006, 0x600007) AM_WRITE(sound_command_irq_w)
AM_RANGE(0x601000, 0x601001) AM_READ_PORT("SERVICE")
AM_RANGE(0x601002, 0x601003) AM_READ_PORT("P1")
AM_RANGE(0x601004, 0x601005) AM_READ_PORT("P2")
@@ -1083,14 +1105,6 @@ ADDRESS_MAP_END
***************************************************************************/
-WRITE16_MEMBER(segas1x_bootleg_state::sound_command_irq_w)
-{
- if (ACCESSING_BITS_0_7)
- {
- soundlatch_byte_w(space, 0, data & 0xff);
- m_soundcpu->set_input_line(0, HOLD_LINE);
- }
-}
static ADDRESS_MAP_START( shdancbl_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
@@ -2016,16 +2030,12 @@ GFXDECODE_END
*************************************/
/* System 16A/B Bootlegs */
-static MACHINE_CONFIG_START( system16, segas1x_bootleg_state )
+static MACHINE_CONFIG_START( system16_base, segas1x_bootleg_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M68000, 10000000)
MCFG_CPU_VBLANK_INT_DRIVER("screen", segas1x_bootleg_state, sys16_interrupt)
- MCFG_CPU_ADD("soundcpu", Z80, 4000000)
- MCFG_CPU_PROGRAM_MAP(sound_map)
- MCFG_CPU_IO_MAP(sound_io_map)
-
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -2039,6 +2049,13 @@ static MACHINE_CONFIG_START( system16, segas1x_bootleg_state )
MCFG_PALETTE_ADD("palette", 2048*SHADOW_COLORS_MULTIPLIER)
MCFG_VIDEO_START_OVERRIDE(segas1x_bootleg_state,system16)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( system16, system16_base )
+
+ MCFG_CPU_ADD("soundcpu", Z80, 4000000)
+ MCFG_CPU_PROGRAM_MAP(sound_map)
+ MCFG_CPU_IO_MAP(sound_io_map)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
@@ -2048,7 +2065,6 @@ static MACHINE_CONFIG_START( system16, segas1x_bootleg_state )
MCFG_SOUND_ROUTE(1, "rspeaker", 0.32)
MACHINE_CONFIG_END
-
WRITE_LINE_MEMBER(segas1x_bootleg_state::sound_cause_nmi)
{
/* upd7759 callback */
@@ -2094,8 +2110,7 @@ static MACHINE_CONFIG_FRAGMENT( system16_datsu_sound )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.80)
MACHINE_CONFIG_END
-
-static MACHINE_CONFIG_DERIVED( shinobib, system16 )
+static MACHINE_CONFIG_DERIVED( shinobi_datsu, system16_base )
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
@@ -2107,8 +2122,33 @@ static MACHINE_CONFIG_DERIVED( shinobib, system16 )
MCFG_VIDEO_START_OVERRIDE(segas1x_bootleg_state, s16a_bootleg_shinobi )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(segas1x_bootleg_state, screen_update_s16a_bootleg)
+
+ MCFG_CPU_ADD("soundcpu", Z80, 4000000)
+ MCFG_CPU_PERIODIC_INT_DRIVER(segas1x_bootleg_state, nmi_line_pulse, 3000) // or from the YM2203?
+ MCFG_CPU_PROGRAM_MAP(shinobi_datsu_sound_map)
+ MCFG_CPU_IO_MAP(shinobi_datsu_sound_io)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+
+ // 2x YM2203C, one at U57, one at U56
+ MCFG_SOUND_ADD("ym1", YM2203, 4000000)
+// MCFG_YM2203_IRQ_HANDLER(WRITELINE(segas1x_bootleg_state, datsu_irq_handler))
+ MCFG_SOUND_ROUTE(0, "mono", 0.50)
+ MCFG_SOUND_ROUTE(1, "mono", 0.50)
+ MCFG_SOUND_ROUTE(2, "mono", 0.50)
+ MCFG_SOUND_ROUTE(3, "mono", 0.80)
+
+ MCFG_SOUND_ADD("ym2", YM2203, 4000000)
+ MCFG_SOUND_ROUTE(0, "mono", 0.50)
+// MCFG_YM2203_IRQ_HANDLER(WRITELINE(segas1x_bootleg_state, datsu_irq_handler))
+ MCFG_SOUND_ROUTE(1, "mono", 0.50)
+ MCFG_SOUND_ROUTE(2, "mono", 0.50)
+ MCFG_SOUND_ROUTE(3, "mono", 0.80)
+
MACHINE_CONFIG_END
+
static MACHINE_CONFIG_DERIVED( passshtb, system16_7759 )
/* basic machine hardware */
@@ -2431,6 +2471,32 @@ ROM_START( shinobld )
ROM_LOAD( "16.bin", 0x0000, 0x10000, CRC(52c8364e) SHA1(01d30b82f92498d155d2e31d43d58dff0285cce3) )
ROM_END
+ROM_START( shinoblda )
+ ROM_REGION( 0x040000, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_BYTE( "12.bin", 0x000001, 0x10000, CRC(68c91fd5) SHA1(54dc1d26711c73b30cbb5387dde27ba21cc102f4) ) // sldh
+ ROM_LOAD16_BYTE( "14.bin", 0x000000, 0x10000, CRC(9e887c80) SHA1(798a3dc499ef14b362bc37ff91b247e367f42ab9) ) // sldh
+ ROM_LOAD16_BYTE( "13.bin", 0x020001, 0x10000, CRC(c4334bcd) SHA1(ea1dd23ca6fbf632d8e10bbb9ced6515a69bd14a) )
+ ROM_LOAD16_BYTE( "15.bin", 0x020000, 0x10000, CRC(b70a6ec1) SHA1(79db41c36d6a053bcdc355b46b19ae938a7755a9) )
+
+ ROM_REGION( 0x30000, "gfx1", ROMREGION_INVERT ) /* tiles */
+ ROM_LOAD( "9.bin", 0x00000, 0x10000, CRC(565e11c6) SHA1(e063400b3d0470b932d75da0be9cd4b446189dea) )
+ ROM_LOAD( "10.bin", 0x10000, 0x10000, CRC(7cc40b6c) SHA1(ffad7eef7ab2ff9a2e49a8d71b5785a61fa3c675) )
+ ROM_LOAD( "11.bin", 0x20000, 0x10000, CRC(0f6c7b1c) SHA1(defc76592c285b3396e89a3cff7a73f3a948117f) )
+
+ ROM_REGION16_BE( 0x080000, "sprites", ROMREGION_ERASEFF ) /* sprites */
+ ROM_LOAD16_BYTE( "5.bin", 0x00001, 0x10000, CRC(611f413a) SHA1(180f83216e2dfbfd77b0fb3be83c3042954d12df) )
+ ROM_LOAD16_BYTE( "3.bin", 0x00000, 0x10000, CRC(5eb00fc1) SHA1(97e02eee74f61fabcad2a9e24f1868cafaac1d51) )
+ ROM_LOAD16_BYTE( "8.bin", 0x20001, 0x10000, CRC(3c0797c0) SHA1(df18c7987281bd9379026c6cf7f96f6ae49fd7f9) )
+ ROM_LOAD16_BYTE( "2.bin", 0x20000, 0x10000, CRC(25307ef8) SHA1(91ffbe436f80d583524ee113a8b7c0cf5d8ab286) )
+ ROM_LOAD16_BYTE( "6.bin", 0x40001, 0x10000, CRC(c29ac34e) SHA1(b5e9b8c3233a7d6797f91531a0d9123febcf1660) )
+ ROM_LOAD16_BYTE( "4.bin", 0x40000, 0x10000, CRC(04a437f8) SHA1(ea5fed64443236e3404fab243761e60e2e48c84c) )
+ ROM_LOAD16_BYTE( "7.bin", 0x60001, 0x10000, CRC(41f41063) SHA1(5cc461e9738dddf9eea06831fce3702d94674163) )
+ ROM_LOAD16_BYTE( "1.bin", 0x60000, 0x10000, CRC(b6e1fd72) SHA1(eb86e4bf880bd1a1d9bcab3f2f2e917bcaa06172) )
+
+ ROM_REGION( 0x10000, "soundcpu", 0 ) /* sound CPU + data */
+ ROM_LOAD( "16.bin", 0x0000, 0x10000, CRC(52c8364e) SHA1(01d30b82f92498d155d2e31d43d58dff0285cce3) )
+ROM_END
+
/* Passing Shot Bootleg is a decrypted version of Passing Shot Japanese (passshtj). It has been heavily modified */
ROM_START( passshtb )
ROM_REGION( 0x020000, "maincpu", 0 ) /* 68000 code */
@@ -3702,32 +3768,36 @@ DRIVER_INIT_MEMBER(segas1x_bootleg_state,astormbl)
*************************************/
/* System 16A based bootlegs (less complex tilemap system) */
-GAME( 1987, shinobld, shinobi, shinobib, shinobi, segas1x_bootleg_state, shinobl, ROT0, "bootleg (Datsu)", "Shinobi (Datsu bootleg)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND )
-GAME( 1988, passshtb, passsht, passshtb, passsht, segas1x_bootleg_state, passsht, ROT270, "bootleg", "Passing Shot (2 Players) (bootleg)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1988, passht4b, passsht, passsht4b, passht4b, segas1x_bootleg_state, shinobl, ROT270, "bootleg", "Passing Shot (4 Players) (bootleg)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND )
-GAME( 1988, wb3bbl, wb3, wb3bb, wb3b, segas1x_bootleg_state, wb3bbl, ROT0, "bootleg", "Wonder Boy III - Monster Lair (bootleg)", GAME_NOT_WORKING )
-GAME( 1988, wb3bble, wb3, wb3bb, wb3b, segas1x_bootleg_state, wb3bbl, ROT0, "bootleg", "Wonder Boy III - Monster Lair (encrypted bootleg)", GAME_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_NO_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_NO_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_NO_SOUND )
+GAME( 1988, wb3bbl, wb3, wb3bb, wb3b, segas1x_bootleg_state, wb3bbl, ROT0, "bootleg", "Wonder Boy III - Monster Lair (bootleg)", MACHINE_NOT_WORKING )
+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)", GAME_NO_SOUND | GAME_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)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
-GAME( 1989, goldnaxeb1, goldnaxe, goldnaxeb1, goldnaxe, segas1x_bootleg_state, goldnaxeb1, ROT0, "bootleg", "Golden Axe (encrypted bootleg)", GAME_NOT_WORKING|GAME_NO_SOUND )
-GAME( 1989, goldnaxeb2, goldnaxe, goldnaxeb2, goldnaxe, segas1x_bootleg_state, goldnaxeb2, ROT0, "bootleg", "Golden Axe (bootleg)", GAME_NOT_WORKING|GAME_NO_SOUND )
-GAME( 1989, tturfbl, tturf, tturfbl, tturf, segas1x_bootleg_state, tturfbl, ROT0, "bootleg (Datsu)", "Tough Turf (Datsu bootleg)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1989, dduxbl, ddux, dduxbl, ddux, segas1x_bootleg_state, dduxbl, ROT0, "bootleg (Datsu)", "Dynamite Dux (Datsu bootleg)", GAME_NOT_WORKING )
-GAME( 1988, altbeastbl, altbeast, tetrisbl, tetris, segas1x_bootleg_state, altbeastbl, ROT0, "bootleg (Datsu)", "Altered Beast (Datsu bootleg)", GAME_NOT_WORKING )
-GAME( 1989, eswatbl, eswat, eswatbl, eswat, segas1x_bootleg_state, eswatbl, ROT0, "bootleg", "E-Swat - Cyber Police (bootleg)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND )
-GAME( 1989, fpointbl, fpoint, fpointbl, fpointbl, segas1x_bootleg_state, fpointbl, ROT0, "bootleg (Datsu)", "Flash Point (World, bootleg)", GAME_NOT_WORKING )
-GAME( 1989, fpointbj, fpoint, fpointbl, fpointbl, segas1x_bootleg_state, fpointbl, ROT0, "bootleg (Datsu)", "Flash Point (Japan, bootleg)", GAME_NOT_WORKING )
+GAME( 1989, bayrouteb1, bayroute, bayrouteb1, bayroute, segas1x_bootleg_state, bayrouteb1, ROT0, "bootleg (Datsu)", "Bay Route (encrypted, protected bootleg)", MACHINE_NO_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_NO_SOUND )
+GAME( 1989, goldnaxeb2, goldnaxe, goldnaxeb2, goldnaxe, segas1x_bootleg_state, goldnaxeb2, ROT0, "bootleg", "Golden Axe (bootleg)", MACHINE_NOT_WORKING|MACHINE_NO_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, tetrisbl, tetris, segas1x_bootleg_state, altbeastbl, ROT0, "bootleg (Datsu)", "Altered Beast (Datsu bootleg)", MACHINE_NOT_WORKING )
+GAME( 1989, eswatbl, eswat, eswatbl, eswat, segas1x_bootleg_state, eswatbl, ROT0, "bootleg", "E-Swat - Cyber Police (bootleg)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
+GAME( 1989, fpointbl, fpoint, fpointbl, fpointbl, segas1x_bootleg_state, fpointbl, ROT0, "bootleg (Datsu)", "Flash Point (World, bootleg)", MACHINE_NOT_WORKING )
+GAME( 1989, fpointbj, fpoint, fpointbl, fpointbl, segas1x_bootleg_state, fpointbl, ROT0, "bootleg (Datsu)", "Flash Point (Japan, bootleg)", MACHINE_NOT_WORKING )
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", GAME_NO_SOUND | GAME_NOT_WORKING )
-GAME( 1991, iqpipe, 0, beautyb, tetris, segas1x_bootleg_state, beautyb, ROT0, "AMT", "IQ Pipe", GAME_NO_SOUND | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1990, astormb2, astorm, astormbl, astormbl, segas1x_bootleg_state, astormbl, ROT0, "bootleg", "Alien Storm (bootleg, set 2)", GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND )
-GAME( 1990, mwalkbl, mwalk, mwalkbl, mwalkbl, segas1x_bootleg_state, mwalkbl, ROT0, "bootleg", "Michael Jackson's Moonwalker (bootleg)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1989, shdancbl, shdancer, shdancbl, shdancbl, segas1x_bootleg_state, shdancbl, ROT0, "bootleg", "Shadow Dancer (bootleg, set 1)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1989, shdancbla, shdancer, shdancbla, shdancbl, segas1x_bootleg_state, shdancbl, ROT0, "bootleg", "Shadow Dancer (bootleg, set 2)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
+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 )
diff --git a/src/mame/drivers/tagteam.c b/src/mame/drivers/tagteam.c
index e0abaacd8af..520aaf9c623 100644
--- a/src/mame/drivers/tagteam.c
+++ b/src/mame/drivers/tagteam.c
@@ -312,5 +312,5 @@ ROM_END
-GAME( 1983, bigprowr, 0, tagteam, bigprowr, driver_device, 0, ROT270, "Technos Japan", "The Big Pro Wrestling!", GAME_SUPPORTS_SAVE )
-GAME( 1983, tagteam, bigprowr, tagteam, tagteam, driver_device, 0, ROT270, "Technos Japan (Data East license)", "Tag Team Wrestling", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/tail2nos.c b/src/mame/drivers/tail2nos.c
index d38fa7706fc..7a327e589a8 100644
--- a/src/mame/drivers/tail2nos.c
+++ b/src/mame/drivers/tail2nos.c
@@ -345,6 +345,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", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1989, sformula, tail2nos, tail2nos, tail2nos, driver_device, 0, ROT90, "V-System Co.", "Super Formula (Japan, set 1)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1989, sformulaa,tail2nos, tail2nos, tail2nos, driver_device, 0, ROT90, "V-System Co.", "Super Formula (Japan, set 2)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) // No Japan warning, but Japanese version
+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
diff --git a/src/mame/drivers/taito.c b/src/mame/drivers/taito.c
index d93feee16a8..195a829314f 100644
--- a/src/mame/drivers/taito.c
+++ b/src/mame/drivers/taito.c
@@ -966,50 +966,50 @@ ROM_START(mrblkz80)
ROM_END
// no sound
-GAME(198?, taitest, 0, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Taito Test Fixture", GAME_MECHANICAL )
+GAME(198?, taitest, 0, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Taito Test Fixture", MACHINE_MECHANICAL )
// dac (sintetizador)
-GAME(1979, shock, 0, shock, taito, taito_state, taito, ROT0, "Taito do Brasil", "Shock", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
-GAME(1980, obaoba, 0, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Oba-Oba (set 1)", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
-GAME(1980, obaoba1, obaoba, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Oba-Oba (set 2)", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
-GAME(1980, drakor, 0, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Drakor", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
-GAME(1980, meteort, 0, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Meteor (Taito)", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
-GAME(1981, sureshop, 0, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Sure Shot (Pinball)", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
-GAME(1981, cosmic, 0, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Cosmic", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
-GAME(1982, gemini2k, 0, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Gemini 2000 (set 1)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1982, gemini2k1, gemini2k, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Gemini 2000 (set 2)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1982, vortexp, 0, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Vortex (Pinball)", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
-GAME(1982, zarza, 0, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Zarza (set 1)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1982, zarza1, zarza, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Zarza (set 2)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1982, sharkt, 0, taito2, taito, taito_state, taito, ROT0, "Taito do Brasil", "Shark (Taito)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1982, stest, 0, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Speed Test", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
-GAME(1982, lunelle, 0, taito2, taito, taito_state, taito, ROT0, "Taito do Brasil", "Lunelle", GAME_IS_SKELETON_MECHANICAL)
-GAME(1980, rally, 0, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Rally", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
+GAME(1979, shock, 0, shock, taito, taito_state, taito, ROT0, "Taito do Brasil", "Shock", MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND )
+GAME(1980, obaoba, 0, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Oba-Oba (set 1)", MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND )
+GAME(1980, obaoba1, obaoba, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Oba-Oba (set 2)", MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND )
+GAME(1980, drakor, 0, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Drakor", MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND )
+GAME(1980, meteort, 0, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Meteor (Taito)", MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND )
+GAME(1981, sureshop, 0, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Sure Shot (Pinball)", MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND )
+GAME(1981, cosmic, 0, taito, taito, taito_state, taito, ROT0, "Taito do Brasil", "Cosmic", MACHINE_MECHANICAL | 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_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_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_IMPERFECT_SOUND )
// dac and vox (sintevox)
-GAME(1981, fireact, 0, taito4, taito, taito_state, taito, ROT0, "Taito do Brasil", "Fire Action", GAME_IS_SKELETON_MECHANICAL)
-GAME(1981, cavnegro, 0, taito4, taito, taito_state, taito, ROT0, "Taito do Brasil", "Cavaleiro Negro (set 1)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1981, cavnegro1, cavnegro, taito4, taito, taito_state, taito, ROT0, "Taito do Brasil", "Cavaleiro Negro (set 2)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1981, cavnegro2, cavnegro, taito4, taito, taito_state, taito, ROT0, "Taito do Brasil", "Cavaleiro Negro (set 3)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1981, ladylukt, 0, taito4, taito, taito_state, taito, ROT0, "Taito do Brasil", "Lady Luck (Taito)", GAME_MECHANICAL | GAME_NO_SOUND )
-GAME(198?, vegast, ladylukt, taito4, taito, taito_state, taito, ROT0, "Taito do Brasil", "Vegas (Taito)", GAME_MECHANICAL | GAME_NO_SOUND )
-GAME(1982, titan, 0, taito4, taito, taito_state, taito, ROT0, "Taito do Brasil", "Titan (set 1)", GAME_MECHANICAL | GAME_NO_SOUND )
-GAME(1982, titan1, titan, taito4, taito, taito_state, taito, ROT0, "Taito do Brasil", "Titan (set 2)", GAME_MECHANICAL | GAME_NO_SOUND )
-GAME(1982, hawkman, 0, taito4, taito, taito_state, taito, ROT0, "Taito do Brasil", "Hawkman (set 1)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1982, hawkman1, hawkman, taito4, taito, taito_state, taito, ROT0, "Taito do Brasil", "Hawkman (set 2)", GAME_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_NO_SOUND )
+GAME(198?, vegast, ladylukt, taito4, taito, taito_state, taito, ROT0, "Taito do Brasil", "Vegas (Taito)", MACHINE_MECHANICAL | MACHINE_NO_SOUND )
+GAME(1982, titan, 0, taito4, taito, taito_state, taito, ROT0, "Taito do Brasil", "Titan (set 1)", MACHINE_MECHANICAL | MACHINE_NO_SOUND )
+GAME(1982, titan1, titan, taito4, taito, taito_state, taito, ROT0, "Taito do Brasil", "Titan (set 2)", MACHINE_MECHANICAL | 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", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
-GAME(198?, voleybal, 0, taito5, taito, taito_state, taito, ROT0, "Taito do Brasil", "Voley Ball", GAME_IS_SKELETON_MECHANICAL)
-GAME(1984, mrblack, 0, taito5, taito, taito_state, taito, ROT0, "Taito do Brasil", "Mr. Black (set 1)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1985, mrblack1, mrblack, taito5, taito, taito_state, taito, ROT0, "Taito do Brasil", "Mr. Black (set 2)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1985, sshuttle, 0, taito5, taito, taito_state, taito, ROT0, "Taito do Brasil", "Space Shuttle (Taito) (set 1)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1985, sshuttle1, sshuttle, taito5, taito, taito_state, taito, ROT0, "Taito do Brasil", "Space Shuttle (Taito) (set 2)", GAME_IS_SKELETON_MECHANICAL)
-GAME(198?, polar, 0, taito5, taito, taito_state, taito, ROT0, "Taito do Brasil", "Polar Explorer", GAME_IS_SKELETON_MECHANICAL)
+GAME(1982, snake, 0, taito5, taito, taito_state, taito, ROT0, "Taito do Brasil", "Snake Machine", MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND )
+GAME(198?, voleybal, 0, taito5, taito, taito_state, taito, ROT0, "Taito do Brasil", "Voley Ball", 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)
// dac, vox and ay
-GAME(1982, gork, 0, taito6, taito, taito_state, taito, ROT0, "Taito do Brasil", "Gork", GAME_MECHANICAL | GAME_NO_SOUND )
-GAME(198?, fireactd, 0, taito6, taito, taito_state, taito, ROT0, "Taito do Brasil", "Fire Action Deluxe", GAME_IS_SKELETON_MECHANICAL)
+GAME(1982, gork, 0, taito6, taito, taito_state, taito, ROT0, "Taito do Brasil", "Gork", MACHINE_MECHANICAL | 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)", GAME_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.c b/src/mame/drivers/taito_b.c
index e7e2f38e0df..768ea171221 100644
--- a/src/mame/drivers/taito_b.c
+++ b/src/mame/drivers/taito_b.c
@@ -3213,7 +3213,7 @@ ROM_START( hiticej ) /* 2 Player version */
ROM_LOAD( "pal16r4b-c59-07.61", 0x600, 0x104, CRC(cf64bd95) SHA1(5acada8bd6da40b5342bdd7ec494ee0e615492f0) )
ROM_END
-ROM_START( rambo3 )
+ROM_START( rambo3 ) /* all of the following roms should most likely have the names "B93-xx" rather than "ramb3-xx" */
ROM_REGION( 0x80000, "maincpu", 0 ) /* 512k for 68000 code */
ROM_LOAD16_BYTE( "ramb3-11.bin", 0x00000, 0x20000, CRC(1cc42247) SHA1(e5a226a0016ec329fc23046c426c6303e452ef1d) )
ROM_LOAD16_BYTE( "ramb3-14.bin", 0x00001, 0x20000, CRC(7d917c21) SHA1(2850c46d6bdabfb76c40a7dc78ebc14b69ce95c9) )
@@ -3686,52 +3686,52 @@ 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)", GAME_SUPPORTS_SAVE )
-GAME( 1989, masterwu, masterw, masterw, masterwu, taitob_state, taito_b, ROT270, "Taito America Corporation", "Master of Weapon (US)", GAME_SUPPORTS_SAVE )
-GAME( 1989, masterwj, masterw, masterw, masterwj, taitob_state, taito_b, ROT270, "Taito Corporation", "Master of Weapon (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1989, yukiwo, masterw, masterw, yukiwo, taitob_state, taito_b, ROT270, "Taito Corporation Japan", "Yukiwo (World, prototype)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1988, nastarw, nastar, rastsag2, nastarw, taitob_state, taito_b, ROT0, "Taito America Corporation", "Nastar Warrior (US)", GAME_SUPPORTS_SAVE )
-GAME( 1988, rastsag2, nastar, rastsag2, rastsag2, taitob_state, taito_b, ROT0, "Taito Corporation", "Rastan Saga 2 (Japan)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1989, rambo3u, rambo3, rambo3, rambo3u, taitob_state, taito_b, ROT0, "Taito America Corporation", "Rambo III (US)", GAME_SUPPORTS_SAVE )
-GAME( 1989, rambo3p, rambo3, rambo3p, rambo3p, taitob_state, taito_b, ROT0, "Taito Europe Corporation", "Rambo III (Europe, Proto?)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1989, crimecu, crimec, crimec, crimecu, taitob_state, taito_b, ROT0, "Taito America Corporation", "Crime City (US)", GAME_SUPPORTS_SAVE )
-GAME( 1989, crimecj, crimec, crimec, crimecj, taitob_state, taito_b, ROT0, "Taito Corporation", "Crime City (Japan)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1988, tetrista, tetris, tetrista, tetrist, taitob_state, taito_b, ROT0, "Sega", "Tetris (Japan, Taito B-System, Master of Weapon Conversion Kit)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1989, viofightu,viofight,viofight, viofightu, taitob_state, taito_b, ROT0, "Taito America Corporation", "Violence Fight (US)", GAME_SUPPORTS_SAVE )
-GAME( 1989, viofightj,viofight,viofight, viofightj, taitob_state, taito_b, ROT0, "Taito Corporation", "Violence Fight (Japan)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1990, ashuraj, ashura, ashura, ashuraj, taitob_state, taito_b, ROT270, "Taito Corporation", "Ashura Blaster (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1990, ashurau, ashura, ashura, ashurau, taitob_state, taito_b, ROT270, "Taito America Corporation", "Ashura Blaster (US)", GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1990, hiticej, hitice, hitice, hiticej, taitob_state, taito_b, ROT0, "Taito Corporation (licensed from Midway)", "Hit the Ice (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_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, 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", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1992, silentdj, silentd, silentd, silentdj, taitob_state, taito_b, ROT0, "Taito Corporation", "Silent Dragon (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1992, silentdu, silentd, silentd, silentdu, taitob_state, taito_b, ROT0, "Taito America Corporation", "Silent Dragon (US)", GAME_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)", GAME_SUPPORTS_SAVE )
+GAME( 1993, ryujin, 0, ryujin, ryujin, taitob_state, taito_b, ROT270, "Taito Corporation", "Ryu Jin (Japan)", MACHINE_SUPPORTS_SAVE )
-GAME( 1993, qzshowby, 0, qzshowby, qzshowby, taitob_state, taito_b, ROT0, "Taito Corporation", "Quiz Sekai wa SHOW by shobai (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1993, qzshowby, 0, qzshowby, qzshowby, taitob_state, taito_b, ROT0, "Taito Corporation", "Quiz Sekai wa SHOW by shobai (Japan)", MACHINE_SUPPORTS_SAVE )
-GAME( 1994, pbobble, 0, pbobble, pbobble, taitob_state, taito_b, ROT0, "Taito Corporation", "Puzzle Bobble (Japan, B-System)", GAME_SUPPORTS_SAVE )
+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)", GAME_SUPPORTS_SAVE )
-GAME( 1994, spacedxj, spacedx, spacedx, pbobble, taitob_state, taito_b, ROT0, "Taito Corporation", "Space Invaders DX (Japan, v2.1)", GAME_SUPPORTS_SAVE )
-GAME( 1994, spacedxo, spacedx, spacedxo, spacedxo, taitob_state, taito_b, ROT0, "Taito Corporation", "Space Invaders DX (Japan, v2.0)", GAME_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 )
/*
Sonic Blast Man is a ticket dispensing game.
(Japanese version however does not dispense them, only US does - try the "sbm_patch" in the machine_config).
@@ -3739,5 +3739,5 @@ 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 (Japan)", GAME_SUPPORTS_SAVE | GAME_MECHANICAL )
-GAME( 1994, realpunc, 0, realpunc, realpunc, taitob_state, taito_b, ROT0, "Taito Corporation Japan", "Real Puncher", GAME_SUPPORTS_SAVE | GAME_MECHANICAL )
+GAME( 1990, sbm, 0, 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.c b/src/mame/drivers/taito_f2.c
index 80a69da57db..11394f81503 100644
--- a/src/mame/drivers/taito_f2.c
+++ b/src/mame/drivers/taito_f2.c
@@ -5550,92 +5550,92 @@ DRIVER_INIT_MEMBER(taitof2_state,driveout)
}
-GAME( 1988, finalb, 0, finalb, finalb, taitof2_state, finalb, ROT0, "Taito Corporation Japan", "Final Blow (World)", GAME_SUPPORTS_SAVE )
-GAME( 1988, finalbu, finalb, finalb, finalbu, taitof2_state, finalb, ROT0, "Taito America Corporation", "Final Blow (US)", GAME_SUPPORTS_SAVE )
-GAME( 1988, finalbj, finalb, finalb, finalbj, taitof2_state, finalb, ROT0, "Taito Corporation", "Final Blow (Japan)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1989, dondokodu, dondokod, dondokod, dondokodu, driver_device, 0, ROT0, "Taito America Corporation", "Don Doko Don (US)", GAME_SUPPORTS_SAVE )
-GAME( 1989, dondokodj, dondokod, dondokod, dondokodj, driver_device, 0, ROT0, "Taito Corporation", "Don Doko Don (Japan)", GAME_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, megablst, 0, megab, megab, driver_device, 0, ROT0, "Taito Corporation Japan", "Mega Blast (World)", GAME_SUPPORTS_SAVE )
-GAME( 1989, megablstu, megablst, megab, megabu, driver_device, 0, ROT0, "Taito America Corporation", "Mega Blast (US)", GAME_SUPPORTS_SAVE )
-GAME( 1989, megablstj, megablst, megab, megabj, driver_device, 0, ROT0, "Taito Corporation", "Mega Blast (Japan)", GAME_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( 1990, thundfox, 0, thundfox, thundfox, driver_device, 0, ROT0, "Taito Corporation Japan", "Thunder Fox (World)", GAME_SUPPORTS_SAVE )
-GAME( 1990, thundfoxu, thundfox, thundfox, thundfoxu, driver_device, 0, ROT0, "Taito America Corporation", "Thunder Fox (US)", GAME_SUPPORTS_SAVE )
-GAME( 1990, thundfoxj, thundfox, thundfox, thundfoxj, driver_device, 0, ROT0, "Taito Corporation", "Thunder Fox (Japan)", GAME_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( 1989, cameltry, 0, cameltry, cameltry, taitof2_state, cameltry, ROT0, "Taito America Corporation", "Cameltry (US, YM2610)", GAME_SUPPORTS_SAVE )
-GAME( 1989, cameltryj, cameltry, cameltry, cameltryj, taitof2_state, cameltry, ROT0, "Taito Corporation", "Cameltry (Japan, YM2610)", GAME_SUPPORTS_SAVE )
-GAME( 1989, cameltrya, cameltry, cameltrya, cameltry, taitof2_state, cameltry, ROT0, "Taito America Corporation", "Cameltry (World, YM2203 + M6295)", GAME_SUPPORTS_SAVE )
-GAME( 1989, cameltryau, cameltry, cameltrya, cameltry, taitof2_state, cameltry, ROT0, "Taito America Corporation", "Cameltry (US, YM2203 + M6295)", GAME_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)", GAME_SUPPORTS_SAVE )
+GAME( 1990, qtorimon, 0, qtorimon, qtorimon, driver_device, 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)", GAME_SUPPORTS_SAVE )
-GAME( 1990, liquidku, liquidk, liquidk, liquidku, driver_device, 0, ROT0, "Taito America Corporation", "Liquid Kids (US)", GAME_SUPPORTS_SAVE )
-GAME( 1990, mizubaku, liquidk, liquidk, mizubaku, driver_device, 0, ROT0, "Taito Corporation", "Mizubaku Daibouken (Japan)", GAME_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, quizhq, 0, quizhq, quizhq, driver_device, 0, ROT0, "Taito Corporation", "Quiz H.Q. (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1990, quizhq, 0, quizhq, quizhq, driver_device, 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)", GAME_SUPPORTS_SAVE )
-GAME( 1990, ssia, ssi, ssi, ssi, driver_device, 0, ROT270, "Taito Corporation Japan", "Super Space Invaders '91 (World)", GAME_SUPPORTS_SAVE )
-GAME( 1990, majest12, ssi, ssi, majest12, driver_device, 0, ROT270, "Taito Corporation", "Majestic Twelve - The Space Invaders Part IV (Japan)", GAME_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, majest12, ssi, ssi, majest12, driver_device, 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)", GAME_SUPPORTS_SAVE )
-GAME( 1990, gunfrontj, gunfront, gunfront, gunfrontj, driver_device, 0, ROT270, "Taito Corporation", "Gun Frontier (Japan)", GAME_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, growl, 0, growl, growl, driver_device, 0, ROT0, "Taito Corporation Japan", "Growl (World, Rev 1)", GAME_SUPPORTS_SAVE )
-GAME( 1990, growla, growl, growl, growl, driver_device, 0, ROT0, "Taito Corporation Japan", "Growl (World)", GAME_SUPPORTS_SAVE )
-GAME( 1990, growlu, growl, growl, growlu, driver_device, 0, ROT0, "Taito America Corporation", "Growl (US)", GAME_SUPPORTS_SAVE )
-GAME( 1990, runark, growl, growl, runark, driver_device, 0, ROT0, "Taito Corporation", "Runark (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1990, growlp, growl, growl, growl, driver_device, 0, ROT0, "Taito Corporation Japan", "Growl (World, prototype)", GAME_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, mjnquest, 0, mjnquest, mjnquest, taitof2_state, mjnquest, ROT0, "Taito Corporation", "Mahjong Quest (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1990, mjnquestb, mjnquest, mjnquest, mjnquest, taitof2_state, mjnquest, ROT0, "Taito Corporation", "Mahjong Quest (No Nudity)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1990, hthero, footchmp, hthero, hthero, driver_device, 0, ROT0, "Taito Corporation", "Hat Trick Hero (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1992, euroch92, footchmp, footchmp, footchmp, driver_device, 0, ROT0, "Taito Corporation Japan", "Euro Champ '92 (World)", GAME_SUPPORTS_SAVE )
-GAME( 1992, footchmpbl, footchmp, footchmpbl,footchmpbl, driver_device,0, ROT0, "bootleg", "Football Champ (World) (bootleg)", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING ) // very different hw register etc.
+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, koshien, 0, koshien, koshien, driver_device, 0, ROT0, "Taito Corporation", "Ah Eikou no Koshien (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1990, koshien, 0, koshien, koshien, driver_device, 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)", GAME_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, ninjak, 0, ninjak, ninjak, driver_device, 0, ROT0, "Taito Corporation Japan", "The Ninja Kids (World)", GAME_SUPPORTS_SAVE )
-GAME( 1990, ninjaku, ninjak, ninjak, ninjaku, driver_device, 0, ROT0, "Taito America Corporation", "The Ninja Kids (US)", GAME_SUPPORTS_SAVE )
-GAME( 1990, ninjakj, ninjak, ninjak, ninjakj, driver_device, 0, ROT0, "Taito Corporation", "The Ninja Kids (Japan)", GAME_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( 1991, solfigtr, 0, solfigtr, solfigtr, driver_device, 0, ROT0, "Taito Corporation Japan", "Solitary Fighter (World)", GAME_SUPPORTS_SAVE )
+GAME( 1991, solfigtr, 0, solfigtr, solfigtr, driver_device, 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)", GAME_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, pulirula, 0, pulirula, pulirula, driver_device, 0, ROT0, "Taito Corporation Japan", "PuLiRuLa (World)", GAME_SUPPORTS_SAVE )
-GAME( 1991, pulirulaj, pulirula, pulirula, pulirulaj, driver_device, 0, ROT0, "Taito Corporation", "PuLiRuLa (Japan)", GAME_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, metalb, 0, metalb, metalb, driver_device, 0, ROT0, "Taito Corporation Japan", "Metal Black (World)", GAME_SUPPORTS_SAVE )
-GAME( 1991, metalbj, metalb, metalb, metalbj, driver_device, 0, ROT0, "Taito Corporation", "Metal Black (Japan)", GAME_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, qzchikyu, 0, qzchikyu, qzchikyu, driver_device, 0, ROT0, "Taito Corporation", "Quiz Chikyu Bouei Gun (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1991, qzchikyu, 0, qzchikyu, qzchikyu, driver_device, 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", GAME_SUPPORTS_SAVE )
+GAME( 1992, yesnoj, 0, yesnoj, yesnoj, driver_device, 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)", GAME_SUPPORTS_SAVE )
-GAME( 1992, deadconxj, deadconx, deadconxj, deadconxj, driver_device, 0, ROT0, "Taito Corporation", "Dead Connection (Japan)", GAME_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, dinorex, 0, dinorex, dinorex, driver_device, 0, ROT0, "Taito Corporation Japan", "Dino Rex (World)", GAME_SUPPORTS_SAVE )
-GAME( 1992, dinorexu, dinorex, dinorex, dinorexu, driver_device, 0, ROT0, "Taito America Corporation", "Dino Rex (US)", GAME_SUPPORTS_SAVE )
-GAME( 1992, dinorexj, dinorex, dinorex, dinorexj, driver_device, 0, ROT0, "Taito Corporation", "Dino Rex (Japan)", GAME_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, qjinsei, 0, qjinsei, qjinsei, driver_device, 0, ROT0, "Taito Corporation", "Quiz Jinsei Gekijoh (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1992, qjinsei, 0, qjinsei, qjinsei, driver_device, 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)", GAME_SUPPORTS_SAVE )
+GAME( 1993, qcrayon, 0, qcrayon, qcrayon, driver_device, 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)", GAME_SUPPORTS_SAVE )
+GAME( 1993, qcrayon2, 0, qcrayon2, qcrayon2, driver_device, 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)", GAME_SUPPORTS_SAVE )
-GAME( 1991, driftoutj, driftout, driftout, driftout, driver_device, 0, ROT270, "Visco", "Drift Out (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1991, driveout, driftout, driveout, driftout, taitof2_state, driveout, ROT270, "bootleg", "Drive Out (bootleg)", GAME_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 )
diff --git a/src/mame/drivers/taito_f3.c b/src/mame/drivers/taito_f3.c
index a1b87821dab..e95f6ea1786 100644
--- a/src/mame/drivers/taito_f3.c
+++ b/src/mame/drivers/taito_f3.c
@@ -45,14 +45,12 @@
CUSTOM_INPUT_MEMBER(taito_f3_state::f3_analog_r)
{
- const char *tag = (const char *)param;
- UINT32 ipt = 0;
-
- ipt = ((ioport(tag)->read() & 0xf)<<12) | ((ioport(tag)->read() & 0xff0)>>4);
-
- return ipt;
+ int num = (FPTR)param;
+ int data = m_dial[num]->read();
+ return ((data & 0xf)<<12) | ((data & 0xff0)>>4);
}
+
CUSTOM_INPUT_MEMBER(taito_f3_state::f3_coin_r)
{
int num = (FPTR)param;
@@ -61,12 +59,10 @@ CUSTOM_INPUT_MEMBER(taito_f3_state::f3_coin_r)
READ32_MEMBER(taito_f3_state::f3_control_r)
{
- static const char *const iptnames[] = { "IN0", "IN1", "AN0", "AN1", "IN2", "IN3" };
-
- if (offset < 6)
- return ioport(iptnames[offset])->read();
+ if (offset<6)
+ return m_input[offset]->read();
+ else logerror("CPU #0 PC %06x: warning - read unmapped control address %06x\n", space.device().safe_pc(), offset);
- logerror("CPU #0 PC %06x: warning - read unmapped control address %06x\n", space.device().safe_pc(), offset);
return 0xffffffff;
}
@@ -212,9 +208,15 @@ ADDRESS_MAP_END
/******************************************************************************/
+CUSTOM_INPUT_MEMBER( taito_f3_state::eeprom_read )
+{
+ return m_eepromin->read();
+}
+
+
static INPUT_PORTS_START( f3 )
/* MSW: Test switch, coins, eeprom access, LSW: Player Buttons, Start, Tilt, Service */
- PORT_START("IN0")
+ PORT_START("IN.0")
PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(1)
@@ -231,11 +233,11 @@ static INPUT_PORTS_START( f3 )
PORT_BIT( 0x00002000, IP_ACTIVE_LOW, IPT_START2 )
PORT_BIT( 0x00004000, IP_ACTIVE_LOW, IPT_START3 )
PORT_BIT( 0x00008000, IP_ACTIVE_LOW, IPT_START4 )
- PORT_BIT( 0x00ff0000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, driver_device,custom_port_read, "EEPROMIN")
- PORT_BIT( 0xff000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, driver_device,custom_port_read, "EEPROMIN")
+ PORT_BIT( 0x00ff0000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, taito_f3_state,eeprom_read, (void *)0)
+ PORT_BIT( 0xff000000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, taito_f3_state,eeprom_read, (void *)0)
/* MSW: Coin counters/lockouts are readable, LSW: Joysticks (Player 1 & 2) */
- PORT_START("IN1")
+ PORT_START("IN.1")
PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
@@ -248,7 +250,7 @@ static INPUT_PORTS_START( f3 )
PORT_BIT( 0xffff0000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, taito_f3_state,f3_coin_r, (void *)0)
/* Player 3 & 4 fire buttons (Player 2 top fire buttons in Kaiser Knuckle) */
- PORT_START("IN2")
+ PORT_START("IN.4")
PORT_BIT( 0x000000ff, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
@@ -261,7 +263,7 @@ static INPUT_PORTS_START( f3 )
PORT_BIT( 0xffff0000, IP_ACTIVE_LOW, IPT_UNKNOWN )
/* Player 3 & 4 joysticks (Player 1 top fire buttons in Kaiser Knuckle) */
- PORT_START("IN3")
+ PORT_START("IN.5")
PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(3)
PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(3)
PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(3)
@@ -274,13 +276,13 @@ static INPUT_PORTS_START( f3 )
PORT_BIT( 0xffff0000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, taito_f3_state,f3_coin_r, (void *)1)
/* Analog control 1 */
- PORT_START("AN0")
- PORT_BIT( 0x0000ffff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, taito_f3_state,f3_analog_r, "DIAL1")
+ PORT_START("IN.2")
+ PORT_BIT( 0x0000ffff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, taito_f3_state,f3_analog_r, (void*)0)
PORT_BIT( 0xffff0000, IP_ACTIVE_LOW, IPT_UNKNOWN )
/* Analog control 2 */
- PORT_START("AN1")
- PORT_BIT( 0x0000ffff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, taito_f3_state,f3_analog_r, "DIAL2")
+ PORT_START("IN.3")
+ PORT_BIT( 0x0000ffff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, taito_f3_state,f3_analog_r, (void *)1)
PORT_BIT( 0xffff0000, IP_ACTIVE_LOW, IPT_UNKNOWN )
/* These are not read directly, but through PORT_CUSTOMs above */
@@ -294,10 +296,10 @@ static INPUT_PORTS_START( f3 )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN4 )
- PORT_START("DIAL1")
+ PORT_START("DIAL.0")
PORT_BIT( 0xfff, 0x000, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(25) PORT_CODE_DEC(KEYCODE_Z) PORT_CODE_INC(KEYCODE_X) PORT_PLAYER(1)
- PORT_START("DIAL2")
+ PORT_START("DIAL.1")
PORT_BIT( 0xfff, 0x000, IPT_DIAL ) PORT_SENSITIVITY(25) PORT_KEYDELTA(25) PORT_CODE_DEC(KEYCODE_N) PORT_CODE_INC(KEYCODE_M) PORT_PLAYER(2)
PORT_START( "EEPROMOUT" )
@@ -309,17 +311,17 @@ INPUT_PORTS_END
static INPUT_PORTS_START( kn )
PORT_INCLUDE( f3 )
- PORT_MODIFY("IN0")
+ PORT_MODIFY("IN.0")
PORT_BIT( 0x00000008, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x00000080, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_MODIFY("IN2")
+ PORT_MODIFY("IN.4")
PORT_BIT( 0x00000100, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(2)
PORT_BIT( 0x00000200, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(2)
PORT_BIT( 0x00000400, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(2)
PORT_BIT( 0x0000f800, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_MODIFY("IN3")
+ PORT_MODIFY("IN.5")
PORT_BIT( 0x00000001, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1)
PORT_BIT( 0x00000002, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1)
PORT_BIT( 0x00000004, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1)
@@ -1935,8 +1937,43 @@ ROM_START( dariusgx )
ROM_LOAD16_BYTE("d87-02.bin", 0x400000, 0x200000, CRC(9250abae) SHA1(07cae8edbc3cca0a95022d9b40a5c18a55350b67) ) // CD CE CF D0
ROM_END
+
ROM_START( bublbob2 )
ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */
+ ROM_LOAD32_BYTE("d90-21.ic20", 0x000000, 0x40000, CRC(2a2b771a) SHA1(7f9bd768cf34069ca139261ebd8304325598fec6) )
+ ROM_LOAD32_BYTE("d90-20.ic19", 0x000001, 0x40000, CRC(f01f63b6) SHA1(cbdc8c6248a2c0c1bc77fdc28738f67ce9a6aec3) )
+ ROM_LOAD32_BYTE("d90-19.ic18", 0x000002, 0x40000, CRC(86eef19a) SHA1(9a389fefa280662843cafb68b5ae411e9348d34d) )
+ ROM_LOAD32_BYTE("d90-18.ic17", 0x000003, 0x40000, CRC(f5b8cdce) SHA1(cf6ce6638eebd7d2e1defdd48110cc3002109c5c) )
+
+ ROM_REGION(0x400000, "gfx1" , 0) /* Sprites */
+ ROM_LOAD16_BYTE("d90-03", 0x000000, 0x100000, CRC(6fa894a1) SHA1(7c33e6d41e8928029b92d66557a3712b51c49c67) )
+ ROM_LOAD16_BYTE("d90-02", 0x000001, 0x100000, CRC(5ab04ca2) SHA1(6d87e7ca3167ff81a041cfedbbed84d51da997de) )
+ ROM_LOAD ("d90-01", 0x300000, 0x100000, CRC(8aedb9e5) SHA1(fb49330f7985a829c9544ecfd0bc672494f29cf6) )
+ ROM_FILL ( 0x200000, 0x100000, 0 )
+
+ ROM_REGION(0x400000, "gfx2" , 0) /* Tiles */
+ ROM_LOAD16_BYTE("d90-08", 0x000000, 0x100000, CRC(25a4fb2c) SHA1(c8bf6fe2291c05386b32cd26bfcb379da756d7b5) )
+ ROM_LOAD16_BYTE("d90-07", 0x000001, 0x100000, CRC(b436b42d) SHA1(559827120273733147b260e0723054d926dbea5e) )
+ ROM_LOAD ("d90-06", 0x300000, 0x100000, CRC(166a72b8) SHA1(7f70b8c960794322e1dc88e6600a2d13d948d873) )
+ ROM_FILL ( 0x200000, 0x100000, 0 )
+
+ ROM_REGION(0x180000, "audiocpu", 0) /* sound CPU */
+ ROM_LOAD16_BYTE("d90-13.ic32", 0x100000, 0x40000, CRC(6762bd90) SHA1(771db0382bc8dab2caf13d0fc20648366c685829) )
+ ROM_LOAD16_BYTE("d90-14.ic33", 0x100001, 0x40000, CRC(8e33357e) SHA1(68b81693c22e6357e37244f2a416818a81338138) )
+
+ ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated
+ ROM_LOAD16_BYTE("d90-04", 0x000000, 0x200000, CRC(feee5fda) SHA1(b89354013ec4d34bcd51ecded412effa66dd2f2f) ) // C8 C9 CA CB
+ ROM_LOAD16_BYTE("d90-05", 0x400000, 0x200000, CRC(c192331f) SHA1(ebab05b3681c70b373bc06c1826be1cc397d3af7) ) // CC CD -std-
+
+ ROM_REGION( 0x1200, "plds", 0 )
+ ROM_LOAD("d77-14_palce16v8q-15.ic21.bin", 0x000, 0x117, CRC(2c798a1c) SHA1(e8ac31c3cd53eb61fedfd710c31356e8fa968cbc) )
+ ROM_LOAD("d77-12_palce16v8q-15.ic48.bin", 0x000, 0x117, CRC(b1cc6195) SHA1(629ef8416a2cb51fcbc48e5c306dd04c96902726) )
+ ROM_LOAD("d77-11_palce16v8q-15.ic37.bin", 0x000, 0x117, CRC(a733f0de) SHA1(6eec26043cedb3cae4efe93faa84a07327be468b) )
+ROM_END
+
+
+ROM_START( bublbob2o )
+ ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */
ROM_LOAD32_BYTE("d90-12", 0x000000, 0x40000, CRC(9e523996) SHA1(c49a426f9865f96e8021c8ed9a6ac094c5e586b1) )
ROM_LOAD32_BYTE("d90-11", 0x000001, 0x40000, CRC(edfdbb7f) SHA1(698ad631d5b13661645f2c5ccd3e4fbf0248053c) )
ROM_LOAD32_BYTE("d90-10", 0x000002, 0x40000, CRC(8e957d3d) SHA1(5db31e5788483b802592e1092bf98df51ff4b70e) )
@@ -1955,8 +1992,8 @@ ROM_START( bublbob2 )
ROM_FILL ( 0x200000, 0x100000, 0 )
ROM_REGION(0x180000, "audiocpu", 0) /* sound CPU */
- ROM_LOAD16_BYTE("d90-13", 0x100000, 0x40000, CRC(6762bd90) SHA1(771db0382bc8dab2caf13d0fc20648366c685829) )
- ROM_LOAD16_BYTE("d90-14", 0x100001, 0x40000, CRC(8e33357e) SHA1(68b81693c22e6357e37244f2a416818a81338138) )
+ ROM_LOAD16_BYTE("d90-13.ic32", 0x100000, 0x40000, CRC(6762bd90) SHA1(771db0382bc8dab2caf13d0fc20648366c685829) )
+ ROM_LOAD16_BYTE("d90-14.ic33", 0x100001, 0x40000, CRC(8e33357e) SHA1(68b81693c22e6357e37244f2a416818a81338138) )
ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated
ROM_LOAD16_BYTE("d90-04", 0x000000, 0x200000, CRC(feee5fda) SHA1(b89354013ec4d34bcd51ecded412effa66dd2f2f) ) // C8 C9 CA CB
@@ -2030,8 +2067,8 @@ ROM_START( bubsymphe )
ROM_FILL ( 0x200000, 0x100000, 0 )
ROM_REGION(0x180000, "audiocpu", 0) /* sound CPU */
- ROM_LOAD16_BYTE("d90-13", 0x100000, 0x40000, CRC(6762bd90) SHA1(771db0382bc8dab2caf13d0fc20648366c685829) )
- ROM_LOAD16_BYTE("d90-14", 0x100001, 0x40000, CRC(8e33357e) SHA1(68b81693c22e6357e37244f2a416818a81338138) )
+ ROM_LOAD16_BYTE("d90-13.ic32", 0x100000, 0x40000, CRC(6762bd90) SHA1(771db0382bc8dab2caf13d0fc20648366c685829) )
+ ROM_LOAD16_BYTE("d90-14.ic33", 0x100001, 0x40000, CRC(8e33357e) SHA1(68b81693c22e6357e37244f2a416818a81338138) )
ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated
ROM_LOAD16_BYTE("d90-04", 0x000000, 0x200000, CRC(feee5fda) SHA1(b89354013ec4d34bcd51ecded412effa66dd2f2f) ) // C8 C9 CA CB
@@ -2058,8 +2095,8 @@ ROM_START( bubsymphj )
ROM_FILL ( 0x200000, 0x100000, 0 )
ROM_REGION(0x180000, "audiocpu", 0) /* sound CPU */
- ROM_LOAD16_BYTE("d90-13", 0x100000, 0x40000, CRC(6762bd90) SHA1(771db0382bc8dab2caf13d0fc20648366c685829) )
- ROM_LOAD16_BYTE("d90-14", 0x100001, 0x40000, CRC(8e33357e) SHA1(68b81693c22e6357e37244f2a416818a81338138) )
+ ROM_LOAD16_BYTE("d90-13.ic32", 0x100000, 0x40000, CRC(6762bd90) SHA1(771db0382bc8dab2caf13d0fc20648366c685829) )
+ ROM_LOAD16_BYTE("d90-14.ic33", 0x100001, 0x40000, CRC(8e33357e) SHA1(68b81693c22e6357e37244f2a416818a81338138) )
ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated
ROM_LOAD16_BYTE("d90-04", 0x000000, 0x200000, CRC(feee5fda) SHA1(b89354013ec4d34bcd51ecded412effa66dd2f2f) ) // C8 C9 CA CB
@@ -2147,8 +2184,8 @@ ROM_START( bubsymphu )
ROM_FILL ( 0x200000, 0x100000, 0 )
ROM_REGION(0x180000, "audiocpu", 0) /* sound CPU */
- ROM_LOAD16_BYTE("d90-13", 0x100000, 0x40000, CRC(6762bd90) SHA1(771db0382bc8dab2caf13d0fc20648366c685829) )
- ROM_LOAD16_BYTE("d90-14", 0x100001, 0x40000, CRC(8e33357e) SHA1(68b81693c22e6357e37244f2a416818a81338138) )
+ ROM_LOAD16_BYTE("d90-13.ic32", 0x100000, 0x40000, CRC(6762bd90) SHA1(771db0382bc8dab2caf13d0fc20648366c685829) )
+ ROM_LOAD16_BYTE("d90-14.ic33", 0x100001, 0x40000, CRC(8e33357e) SHA1(68b81693c22e6357e37244f2a416818a81338138) )
ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated
ROM_LOAD16_BYTE("d90-04", 0x000000, 0x200000, CRC(feee5fda) SHA1(b89354013ec4d34bcd51ecded412effa66dd2f2f) ) // C8 C9 CA CB
@@ -4094,7 +4131,7 @@ GAME( 1992, ridingfu, ridingf, f3_224b, f3, taito_f3_state, ridingf, ROT0, "
GAME( 1992, gseeker, 0, f3_224b_eeprom, f3, taito_f3_state, gseeker, ROT90, "Taito Corporation Japan", "Grid Seeker: Project Storm Hammer (Ver 1.3O)", 0 )
GAME( 1992, gseekerj, gseeker, f3_224b_eeprom, f3, taito_f3_state, gseeker, ROT90, "Taito Corporation", "Grid Seeker: Project Storm Hammer (Ver 1.3J)", 0 )
GAME( 1992, gseekeru, gseeker, f3_224b_eeprom, f3, taito_f3_state, gseeker, ROT90, "Taito America Corporation", "Grid Seeker: Project Storm Hammer (Ver 1.3A)", 0 )
-GAME( 1992, commandw, 0, f3_224b, f3, taito_f3_state, commandw, ROT0, "Taito Corporation", "Command War - Super Special Battle & War Game (Ver 0.0J) (Prototype)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1992, commandw, 0, f3_224b, f3, taito_f3_state, commandw, ROT0, "Taito Corporation", "Command War - Super Special Battle & War Game (Ver 0.0J) (Prototype)", MACHINE_IMPERFECT_GRAPHICS )
/* Most of the football games share some GFX roms but shouldn't be considered clones unless they have the same Taito game code for the program roms */
GAME( 1993, cupfinal, 0, f3_224a, f3, taito_f3_state, cupfinal, ROT0, "Taito Corporation Japan", "Taito Cup Finals (Ver 1.0O 1993/02/28)", 0 )
GAME( 1993, hthero93, cupfinal, f3_224a, f3, taito_f3_state, cupfinal, ROT0, "Taito Corporation", "Hat Trick Hero '93 (Ver 1.0J 1993/02/28)", 0 )
@@ -4123,12 +4160,13 @@ GAME( 1994, dariusg, 0, f3, f3, taito_f3_state, dariusg, ROT0, "
GAME( 1994, dariusgj, dariusg, f3, f3, taito_f3_state, dariusg, ROT0, "Taito Corporation", "Darius Gaiden - Silver Hawk (Ver 2.5J 1994/09/19)", 0 )
GAME( 1994, dariusgu, dariusg, f3, f3, taito_f3_state, dariusg, ROT0, "Taito America Corporation", "Darius Gaiden - Silver Hawk (Ver 2.5A 1994/09/19)", 0 )
GAME( 1994, dariusgx, dariusg, f3, f3, taito_f3_state, dariusg, ROT0, "Taito Corporation", "Darius Gaiden - Silver Hawk Extra Version (Ver 2.7J 1995/03/06) (Official Hack)", 0 )
-GAME( 1994, bublbob2, 0, f3_224a, f3, taito_f3_state, bubsymph, ROT0, "Taito Corporation Japan", "Bubble Bobble II (Ver 2.5O 1994/10/05)", 0 )
+GAME( 1994, bublbob2, 0, f3_224a, f3, taito_f3_state, bubsymph, ROT0, "Taito Corporation Japan", "Bubble Bobble II (Ver 2.6O 1994/12/16)", 0 )
+GAME( 1994, bublbob2o,bublbob2, f3_224a, f3, taito_f3_state, bubsymph, ROT0, "Taito Corporation Japan", "Bubble Bobble II (Ver 2.5O 1994/10/05)", 0 )
GAME( 1994, bublbob2p,bublbob2, f3_224a, f3, taito_f3_state, bubsymph, ROT0, "Taito Corporation Japan", "Bubble Bobble II (Ver 0.0J 1993/12/13, prototype)", 0 )
GAME( 1994, bubsymphe,bublbob2, f3_224a, f3, taito_f3_state, bubsymph, ROT0, "Taito Corporation Japan", "Bubble Symphony (Ver 2.5O 1994/10/05)", 0 )
GAME( 1994, bubsymphu,bublbob2, f3_224a, f3, taito_f3_state, bubsymph, ROT0, "Taito America Corporation", "Bubble Symphony (Ver 2.5A 1994/10/05)", 0 )
GAME( 1994, bubsymphj,bublbob2, f3_224a, f3, taito_f3_state, bubsymph, ROT0, "Taito Corporation", "Bubble Symphony (Ver 2.5J 1994/10/05)", 0 )
-GAME( 1994, bubsymphb,bublbob2, bubsympb,f3, taito_f3_state, bubsympb, ROT0, "bootleg", "Bubble Symphony (bootleg with OKI6295)", GAME_NOT_WORKING ) // backgrounds don't display
+GAME( 1994, bubsymphb,bublbob2, bubsympb,f3, taito_f3_state, bubsympb, ROT0, "bootleg", "Bubble Symphony (bootleg with OKI6295)", MACHINE_NOT_WORKING ) // backgrounds don't display
GAME( 1994, spcinvdj, spacedx, f3, f3, taito_f3_state, spcinvdj, ROT0, "Taito Corporation", "Space Invaders DX (Ver 2.6J 1994/09/14) (F3 Version)", 0 )
GAME( 1994, pwrgoal, 0, f3_224a, f3, taito_f3_state, hthero95, ROT0, "Taito Corporation Japan", "Taito Power Goal (Ver 2.5O 1994/11/03)", 0 )
GAME( 1994, hthero95, pwrgoal, f3_224a, f3, taito_f3_state, hthero95, ROT0, "Taito Corporation", "Hat Trick Hero '95 (Ver 2.5J 1994/11/03)", 0 )
diff --git a/src/mame/drivers/taito_h.c b/src/mame/drivers/taito_h.c
index c6940176889..7100746e031 100644
--- a/src/mame/drivers/taito_h.c
+++ b/src/mame/drivers/taito_h.c
@@ -1055,10 +1055,10 @@ 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)", GAME_SUPPORTS_SAVE )
-GAME( 1988, syvalionp, syvalion,syvalion, syvalionp,driver_device, 0, ROT0, "Taito Corporation", "Syvalion (World, prototype)", GAME_SUPPORTS_SAVE )
-GAME( 1988, recordbr, 0, recordbr, recordbr, driver_device, 0, ROT0, "Taito Corporation Japan", "Recordbreaker (World)", GAME_SUPPORTS_SAVE )
-GAME( 1988, gogold, recordbr, recordbr, gogold, driver_device, 0, ROT0, "Taito Corporation", "Go For The Gold (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1988, tetristh, tetris, tetristh, tetristh, driver_device, 0, ROT0, "Sega", "Tetris (Japan, Taito H-System)", GAME_SUPPORTS_SAVE )
-GAME( 1990, dleague, 0, dleague, dleague, driver_device, 0, ROT0, "Taito America Corporation", "Dynamite League (US)", GAME_SUPPORTS_SAVE )
-GAME( 1990, dleaguej, dleague, dleague, dleaguej, driver_device, 0, ROT0, "Taito Corporation", "Dynamite League (Japan)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/taito_l.c b/src/mame/drivers/taito_l.c
index ed0ca9d6bf9..8d6e6e97aa8 100644
--- a/src/mame/drivers/taito_l.c
+++ b/src/mame/drivers/taito_l.c
@@ -2589,9 +2589,9 @@ GAME( 1988, raimaisjo, raimais, raimais, raimaisj, driver_device, 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( 1989, champwr, 0, champwr, champwr, driver_device, 0, ROT0, "Taito Corporation Japan", "Champion Wrestler (World)", GAME_IMPERFECT_SOUND )
-GAME( 1989, champwru, champwr, champwr, champwru, driver_device, 0, ROT0, "Taito America Corporation", "Champion Wrestler (US)", GAME_IMPERFECT_SOUND )
-GAME( 1989, champwrj, champwr, champwr, champwrj, driver_device, 0, ROT0, "Taito Corporation", "Champion Wrestler (Japan)", GAME_IMPERFECT_SOUND )
+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( 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 )
@@ -2623,6 +2623,6 @@ GAME( 1992, plgirls, 0, cachat, plgirls, driver_device, 0,
GAME( 1992, lagirl, plgirls, cachat, plgirls, driver_device, 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)", GAME_IMPERFECT_GRAPHICS ) // bootleg hardware (regular Z80 etc. instead of TC0090LVC, but acts almost the same - scroll offset problems)
+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( 1990, evilston, 0, evilston, evilston, driver_device, 0, ROT270, "Spacy Industrial, Ltd.", "Evil Stone", GAME_IMPERFECT_SOUND ) // not Taito PCB, just uses TC0090LVC
+GAME( 1990, evilston, 0, evilston, evilston, driver_device, 0, ROT270, "Spacy Industrial, Ltd.", "Evil Stone", MACHINE_IMPERFECT_SOUND ) // not Taito PCB, just uses TC0090LVC
diff --git a/src/mame/drivers/taito_o.c b/src/mame/drivers/taito_o.c
index 4ae6f880c5c..263ff71afcd 100644
--- a/src/mame/drivers/taito_o.c
+++ b/src/mame/drivers/taito_o.c
@@ -285,4 +285,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", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
+GAME( 1989, parentj, 0, parentj, parentj, driver_device, 0, ROT0, "Taito", "Parent Jack", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/taito_x.c b/src/mame/drivers/taito_x.c
index 46bf1bb2e65..78a1a582a2a 100644
--- a/src/mame/drivers/taito_x.c
+++ b/src/mame/drivers/taito_x.c
@@ -965,7 +965,7 @@ static MACHINE_CONFIG_START( ballbros, taitox_state )
MCFG_PALETTE_ADD("palette", 2048)
MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
- MCFG_VIDEO_START_OVERRIDE(taitox_state,seta_no_layers)
+ MCFG_VIDEO_START_OVERRIDE(taitox_state, kyustrkr_no_layers)
/* sound hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/taito_z.c b/src/mame/drivers/taito_z.c
index 2e641b04db5..bc2652c33c8 100644
--- a/src/mame/drivers/taito_z.c
+++ b/src/mame/drivers/taito_z.c
@@ -5392,46 +5392,46 @@ DRIVER_INIT_MEMBER(taitoz_state,bshark)
-GAMEL(1987, contcirc, 0, contcirc, contcirc, taitoz_state, taitoz, ROT0, "Taito Corporation Japan", "Continental Circus (World)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE, layout_contcirc )
-GAMEL(1987, contcircu, contcirc, contcirc, contcrcu, taitoz_state, taitoz, ROT0, "Taito America Corporation", "Continental Circus (US set 1)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE, layout_contcirc )
-GAMEL(1987, contcircua, contcirc, contcirc, contcrcj, taitoz_state, taitoz, ROT0, "Taito America Corporation", "Continental Circus (US set 2)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE, layout_contcirc )
-GAMEL(1987, contcircj , contcirc, contcirc, contcrcj, taitoz_state, taitoz, ROT0, "Taito Corporation", "Continental Circus (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE, layout_contcirc )
-
-GAMEL(1988, chasehq, 0, chasehq, chasehq, taitoz_state, taitoz, ROT0, "Taito Corporation Japan", "Chase H.Q. (World)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE, layout_contcirc )
-GAMEL(1988, chasehqj, chasehq, chasehq, chasehqj, taitoz_state, taitoz, ROT0, "Taito Corporation", "Chase H.Q. (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE, layout_contcirc )
-GAMEL(1988, chasehqju, chasehq, chasehq, chasehq, taitoz_state, taitoz, ROT0, "Taito Corporation", "Chase H.Q. (Japan, upright?)", GAME_IMPERFECT_GRAPHICS | GAME_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)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE, layout_contcirc )
-
-GAME( 1988, enforce, 0, enforce, enforce, taitoz_state, taitoz, ROT0, "Taito Corporation Japan", "Enforce (World)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1988, enforcej, enforce, enforce, enforcej, taitoz_state, taitoz, ROT0, "Taito Corporation", "Enforce (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1988, enforceja, enforce, enforce, enforceja,taitoz_state, taitoz, ROT0, "Taito Corporation", "Enforce (Japan, Analog Controls)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-
-GAME( 1989, bshark, 0, bshark, bshark, taitoz_state, bshark, ORIENTATION_FLIP_X, "Taito Corporation Japan", "Battle Shark (World)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1989, bsharku, bshark, bshark, bsharku, taitoz_state, bshark, ORIENTATION_FLIP_X, "Taito America Corporation", "Battle Shark (US)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1989, bsharkj, bshark, bshark, bsharkj, taitoz_state, bshark, ORIENTATION_FLIP_X, "Taito Corporation", "Battle Shark (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1989, bsharkjjs, bshark, bsharkjjs,bsharkjjs, taitoz_state,bshark, ORIENTATION_FLIP_X, "Taito Corporation", "Battle Shark (Japan, Joystick)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-
-GAMEL(1989, sci, 0, sci, sci, taitoz_state, taitoz, ROT0, "Taito Corporation Japan", "Special Criminal Investigation (World set 1)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE, layout_contcirc )
-GAMEL(1989, scia, sci, sci, sci, taitoz_state, taitoz, ROT0, "Taito Corporation Japan", "Special Criminal Investigation (World set 2)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE, layout_contcirc )
-GAMEL(1989, scij, sci, sci, scij, taitoz_state, taitoz, ROT0, "Taito Corporation", "Special Criminal Investigation (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE, layout_contcirc )
-GAMEL(1989, sciu, sci, sci, sciu, taitoz_state, taitoz, ROT0, "Taito America Corporation", "Special Criminal Investigation (US)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE, layout_contcirc )
-GAMEL(1991, scin, sci, sci, sci, taitoz_state, taitoz, ROT0, "hack (Negro Torino)", "Super Special Criminal Investigation (Negro Torino hack)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE, layout_contcirc )
-
-GAME( 1989, nightstr, 0, nightstr, nightstr, taitoz_state, taitoz, ROT0, "Taito Corporation Japan", "Night Striker (World)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1989, nightstrj, nightstr, nightstr, nghtstrj, taitoz_state, taitoz, ROT0, "Taito Corporation", "Night Striker (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1989, nightstru, nightstr, nightstr, nghtstru, taitoz_state, taitoz, ROT0, "Taito America Corporation", "Night Striker (US)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-
-GAME( 1990, aquajack, 0, aquajack, aquajack, taitoz_state, taitoz, ROT0, "Taito Corporation Japan", "Aqua Jack (World)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1990, aquajacku, aquajack, aquajack, aquajack, taitoz_state, taitoz, ROT0, "Taito America Corporation", "Aqua Jack (US)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1990, aquajackj, aquajack, aquajack, aquajckj, taitoz_state, taitoz, ROT0, "Taito Corporation", "Aqua Jack (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-
-GAME( 1990, spacegun, 0, spacegun, spacegun, taitoz_state, bshark, ORIENTATION_FLIP_X, "Taito Corporation Japan", "Space Gun (World)", GAME_SUPPORTS_SAVE )
-GAME( 1990, spacegunj, spacegun, spacegun, spacegnj, taitoz_state, bshark, ORIENTATION_FLIP_X, "Taito Corporation", "Space Gun (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1990, spacegunu, spacegun, spacegun, spacegnu, taitoz_state, bshark, ORIENTATION_FLIP_X, "Taito America Corporation", "Space Gun (US)", GAME_SUPPORTS_SAVE )
-
-GAMEL(1991, dblaxle, 0, dblaxle, dblaxle, taitoz_state, taitoz, ROT0, "Taito America Corporation", "Double Axle (US)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE, layout_dblaxle )
-GAMEL(1991, dblaxleu, dblaxle, dblaxle, dblaxle, taitoz_state, taitoz, ROT0, "Taito America Corporation", "Double Axle (US, earlier)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE, layout_dblaxle )
-GAMEL(1991, pwheelsj, dblaxle, dblaxle, pwheelsj, taitoz_state, taitoz, ROT0, "Taito Corporation", "Power Wheels (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE, layout_dblaxle )
-
-GAMEL(1991, racingb, 0, racingb, racingb, taitoz_state, taitoz, ROT0, "Taito Corporation Japan", "Racing Beat (World)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE, layout_dblaxle )
-GAMEL(1991, racingbj, racingb, racingb, racingb, taitoz_state, taitoz, ROT0, "Taito Corporation", "Racing Beat (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE, layout_dblaxle )
+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 )
+
+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 )
+
+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( 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 )
+
+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 )
diff --git a/src/mame/drivers/taitoair.c b/src/mame/drivers/taitoair.c
index 55a61decafe..95e1fcdcec9 100644
--- a/src/mame/drivers/taitoair.c
+++ b/src/mame/drivers/taitoair.c
@@ -184,15 +184,14 @@ perhaps? The two writes seem to take only two values.
****************************************************************************/
/*!
- @todo - Framebuffer DMA requires palette switch to be selected dynamically, see at first stage Course Select in Top Landing.
+ @todo - Framebuffer DMA requires palette switch to be selected dynamically, see at first stage Course Select in Top Landing.
My gut feeling is that 3d poly fill operation actually copies to internal buffer then a DMA op actually do the buffer-to-screen copy, including gradiation ROZ too;
- - Air Inferno: missing landing monitor camera (blackened);
- - Air Inferno: missing 3d HUD graphics;
- - Air Inferno: Expert course has wrong 3d geometry;
- - Air Inferno: Almost surely crashing during replay has missing smoke effect, looks quit odd atm.
- - Top Landing: Night stages might have wrong priority for stars-above-sea;
- - Input limiters / analog thresholds for both games;
- - Special thanks to syq for being a cunt.
+ - Air Inferno: missing landing monitor camera (blackened);
+ - Air Inferno: missing 3d HUD graphics;
+ - Air Inferno: Expert course has wrong 3d geometry;
+ - Air Inferno: Almost surely crashing during replay has missing smoke effect, looks quite odd atm.
+ - Top Landing: Night stages might have wrong priority for stars-above-sea;
+ - Input limiters / analog thresholds for both games;
*/
#include "emu.h"
@@ -345,19 +344,19 @@ WRITE8_MEMBER(taitoair_state::sound_bankswitch_w)
}
/*!
- @brief Framebuffer DMA control
- @regs [0] x--- ---- ---- ---- copy framebuffer to the screen
- [0] --x- ---- ---- ---- unknown, used on POST test
- [0] 1001 1111 1111 1111 used by Air Inferno after erase op, erase -> copy?
- [0] 0001 1111 1111 1111 erase op?
- [1] xxxx xxxx xxxx xxxx fill value? 0xffff by Top Landing, 0x0000 Air Inferno
- [2] (unused)
- [3] both games uses 0xb7, most likely a register setting.
+ @brief Framebuffer DMA control
+ @regs [0] x--- ---- ---- ---- copy framebuffer to the screen
+ [0] --x- ---- ---- ---- unknown, used on POST test
+ [0] 1001 1111 1111 1111 used by Air Inferno after erase op, erase -> copy?
+ [0] 0001 1111 1111 1111 erase op?
+ [1] xxxx xxxx xxxx xxxx fill value? 0xffff by Top Landing, 0x0000 Air Inferno
+ [2] (unused)
+ [3] both games uses 0xb7, most likely a register setting.
*/
WRITE16_MEMBER(taitoair_state::dma_regs_w)
-{
+{
printf("%08x %04x\n",offset,data);
-
+
if(offset == 0 && ACCESSING_BITS_8_15)
{
if(data == 0x1fff)
@@ -481,7 +480,7 @@ READ16_MEMBER(taitoair_state::dsp_muldiv_1_r)
{
if(m_dsp_muldiv_c_1 == 0)
return 0xffff; /**< @todo true value? */
-
+
return m_dsp_muldiv_a_1*m_dsp_muldiv_b_1/m_dsp_muldiv_c_1;
}
@@ -504,7 +503,7 @@ READ16_MEMBER(taitoair_state::dsp_muldiv_2_r)
{
if(m_dsp_muldiv_c_2 == 0)
return 0xffff; /**< @todo true value? */
-
+
return m_dsp_muldiv_a_2*m_dsp_muldiv_b_2/m_dsp_muldiv_c_2;
}
@@ -960,6 +959,6 @@ 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)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1990, ainferno, 0, airsys, ainferno, driver_device, 0, ROT0, "Taito America Corporation", "Air Inferno (US)", GAME_NOT_WORKING )
-GAME( 1990, ainfernoj,ainferno, airsys, ainferno, driver_device, 0, ROT0, "Taito Corporation Japan", "Air Inferno (Japan)", GAME_NOT_WORKING )
+GAME( 1988, topland, 0, airsys, topland, driver_device, 0, ROT0, "Taito Corporation Japan", "Top Landing (World)", 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 )
diff --git a/src/mame/drivers/taitogn.c b/src/mame/drivers/taitogn.c
index d71f4ab4384..4a5badc9961 100644
--- a/src/mame/drivers/taitogn.c
+++ b/src/mame/drivers/taitogn.c
@@ -1080,35 +1080,35 @@ 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, taitogn, 0, coh3002t, coh3002t, driver_device, 0, ROT0, "Taito", "Taito GNET", GAME_IS_BIOS_ROOT )
-
-GAME( 1998, chaoshea, taitogn, coh3002t, coh3002t, driver_device, 0, ROT0, "Taito", "Chaos Heat (V2.09O)", GAME_IMPERFECT_SOUND )
-GAME( 1998, chaosheaj,chaoshea, coh3002t, coh3002t, driver_device, 0, ROT0, "Taito", "Chaos Heat (V2.08J)", GAME_IMPERFECT_SOUND )
-GAME( 1998, raycris, taitogn, coh3002t, coh3002t, driver_device, 0, ROT0, "Taito", "Ray Crisis (V2.03J)", GAME_IMPERFECT_SOUND )
-GAME( 1999, spuzbobl, taitogn, coh3002t, coh3002t, driver_device, 0, ROT0, "Taito", "Super Puzzle Bobble (V2.05O)", GAME_IMPERFECT_SOUND )
-GAME( 1999, spuzboblj,spuzbobl, coh3002t, coh3002t, driver_device, 0, ROT0, "Taito", "Super Puzzle Bobble (V2.04J)", GAME_IMPERFECT_SOUND )
-GAME( 1999, gobyrc, taitogn, coh3002t, coh3002t, driver_device, 0, ROT0, "Taito", "Go By RC (V2.03O)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND ) // analog controls, needs mcu emulation
-GAME( 1999, rcdego, gobyrc, coh3002t, coh3002t, driver_device, 0, ROT0, "Taito", "RC De Go (V2.03J)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND ) // "
-GAME( 1999, flipmaze, taitogn, coh3002t, coh3002t, driver_device, 0, ROT0, "MOSS / Taito", "Flip Maze (V2.04J)", GAME_IMPERFECT_SOUND )
-GAME( 2001, shikigam, taitogn, coh3002t, coh3002t, driver_device, 0, ROT270, "Alfa System / Taito", "Shikigami no Shiro (V2.03J)", GAME_IMPERFECT_SOUND )
-GAME( 2003, sianniv, taitogn, coh3002t, coh3002t, driver_device, 0, ROT270, "Taito", "Space Invaders Anniversary (V2.02J)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND ) // IRQ at the wrong time
-GAME( 2003, kollon, taitogn, coh3002t, coh3002t, driver_device, 0, ROT0, "Taito", "Kollon (V2.04J)", GAME_IMPERFECT_SOUND )
-GAME( 2003, kollonc, kollon, coh3002t, coh3002t, driver_device, 0, ROT0, "Taito", "Kollon (V2.04JC)", GAME_IMPERFECT_SOUND )
+GAME( 1997, taitogn, 0, coh3002t, coh3002t, driver_device, 0, ROT0, "Taito", "Taito GNET", MACHINE_IS_BIOS_ROOT )
+
+GAME( 1998, chaoshea, taitogn, coh3002t, coh3002t, driver_device, 0, ROT0, "Taito", "Chaos Heat (V2.09O)", MACHINE_IMPERFECT_SOUND )
+GAME( 1998, chaosheaj,chaoshea, coh3002t, coh3002t, driver_device, 0, ROT0, "Taito", "Chaos Heat (V2.08J)", MACHINE_IMPERFECT_SOUND )
+GAME( 1998, raycris, taitogn, coh3002t, coh3002t, driver_device, 0, ROT0, "Taito", "Ray Crisis (V2.03J)", MACHINE_IMPERFECT_SOUND )
+GAME( 1999, spuzbobl, taitogn, coh3002t, coh3002t, driver_device, 0, ROT0, "Taito", "Super Puzzle Bobble (V2.05O)", MACHINE_IMPERFECT_SOUND )
+GAME( 1999, spuzboblj,spuzbobl, coh3002t, coh3002t, driver_device, 0, ROT0, "Taito", "Super Puzzle Bobble (V2.04J)", MACHINE_IMPERFECT_SOUND )
+GAME( 1999, gobyrc, taitogn, coh3002t, coh3002t, driver_device, 0, ROT0, "Taito", "Go By RC (V2.03O)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // analog controls, needs mcu emulation
+GAME( 1999, rcdego, gobyrc, coh3002t, coh3002t, driver_device, 0, ROT0, "Taito", "RC De Go (V2.03J)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND ) // "
+GAME( 1999, flipmaze, taitogn, coh3002t, coh3002t, driver_device, 0, ROT0, "MOSS / Taito", "Flip Maze (V2.04J)", MACHINE_IMPERFECT_SOUND )
+GAME( 2001, shikigam, taitogn, coh3002t, coh3002t, driver_device, 0, ROT270, "Alfa System / Taito", "Shikigami no Shiro (V2.03J)", MACHINE_IMPERFECT_SOUND )
+GAME( 2003, sianniv, taitogn, coh3002t, 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, taitogn, coh3002t, coh3002t, driver_device, 0, ROT0, "Taito", "Kollon (V2.04J)", MACHINE_IMPERFECT_SOUND )
+GAME( 2003, kollonc, kollon, coh3002t, coh3002t, driver_device, 0, ROT0, "Taito", "Kollon (V2.04JC)", MACHINE_IMPERFECT_SOUND )
GAME( 1999, otenamih, taitogn, coh3002t, coh3002t, taitogn_state, coh3002t_nz, ROT0, "Success", "Otenami Haiken (V2.04J)", 0 )
GAME( 2005, otenamhf, taitogn, coh3002t, coh3002t, taitogn_state, coh3002t_nz, ROT0, "Success / Warashi", "Otenami Haiken Final (V2.07JC)", 0 )
-GAME( 2000, psyvaria, taitogn, coh3002t, coh3002t, driver_device, 0, ROT270, "Success", "Psyvariar -Medium Unit- (V2.04J)", GAME_IMPERFECT_SOUND )
-GAME( 2000, psyvarrv, taitogn, coh3002t, coh3002t, driver_device, 0, ROT270, "Success", "Psyvariar -Revision- (V2.04J)", GAME_IMPERFECT_SOUND )
+GAME( 2000, psyvaria, taitogn, coh3002t, coh3002t, driver_device, 0, ROT270, "Success", "Psyvariar -Medium Unit- (V2.04J)", MACHINE_IMPERFECT_SOUND )
+GAME( 2000, psyvarrv, taitogn, coh3002t, coh3002t, driver_device, 0, ROT270, "Success", "Psyvariar -Revision- (V2.04J)", MACHINE_IMPERFECT_SOUND )
GAME( 2000, zokuoten, taitogn, coh3002t, coh3002t, taitogn_state, coh3002t_nz, ROT0, "Success", "Zoku Otenamihaiken (V2.03J)", 0 ) // boots the soundcpu without any valid code, causing an infinite NMI loop (currently circumvented)
GAME( 2004, zooo, taitogn, coh3002t, coh3002t, taitogn_state, coh3002t_nz, ROT0, "Success", "Zooo (V2.01J)", 0 )
-GAME( 1999, mahjngoh, taitogn, coh3002t_mp, coh3002t_mp, driver_device, 0, ROT0, "Warashi / Mahjong Kobo / Taito", "Mahjong Oh (V2.06J)", GAME_IMPERFECT_SOUND )
-GAME( 2001, usagi, taitogn, coh3002t_mp, coh3002t_mp, driver_device, 0, ROT0, "Warashi / Mahjong Kobo / Taito", "Usagi (V2.02J)", GAME_IMPERFECT_SOUND )
-GAME( 2000, soutenry, taitogn, coh3002t, coh3002t, driver_device, 0, ROT0, "Warashi", "Soutenryu (V2.07J)", GAME_IMPERFECT_SOUND )
-GAME( 2000, shanghss, taitogn, coh3002t, coh3002t, driver_device, 0, ROT0, "Warashi", "Shanghai Shoryu Sairin (V2.03J)", GAME_IMPERFECT_SOUND )
-GAME( 2002, shangtou, taitogn, coh3002t, coh3002t, driver_device, 0, ROT0, "Warashi / Sunsoft / Taito", "Shanghai Sangokuhai Tougi (Ver 2.01J)", GAME_IMPERFECT_SOUND )
+GAME( 1999, mahjngoh, taitogn, coh3002t_mp, coh3002t_mp, driver_device, 0, ROT0, "Warashi / Mahjong Kobo / Taito", "Mahjong Oh (V2.06J)", MACHINE_IMPERFECT_SOUND )
+GAME( 2001, usagi, taitogn, coh3002t_mp, coh3002t_mp, driver_device, 0, ROT0, "Warashi / Mahjong Kobo / Taito", "Usagi (V2.02J)", MACHINE_IMPERFECT_SOUND )
+GAME( 2000, soutenry, taitogn, coh3002t, coh3002t, driver_device, 0, ROT0, "Warashi", "Soutenryu (V2.07J)", MACHINE_IMPERFECT_SOUND )
+GAME( 2000, shanghss, taitogn, coh3002t, coh3002t, driver_device, 0, ROT0, "Warashi", "Shanghai Shoryu Sairin (V2.03J)", MACHINE_IMPERFECT_SOUND )
+GAME( 2002, shangtou, taitogn, coh3002t, coh3002t, driver_device, 0, ROT0, "Warashi / Sunsoft / Taito", "Shanghai Sangokuhai Tougi (Ver 2.01J)", MACHINE_IMPERFECT_SOUND )
-GAME( 2001, nightrai, taitogn, coh3002t, coh3002t, driver_device, 0, ROT0, "Takumi", "Night Raid (V2.03J)", GAME_IMPERFECT_SOUND )
-GAME( 2001, otenki, taitogn, coh3002t, coh3002t, driver_device, 0, ROT0, "Takumi", "Otenki Kororin (V2.01J)", GAME_IMPERFECT_SOUND )
+GAME( 2001, nightrai, taitogn, coh3002t, coh3002t, driver_device, 0, ROT0, "Takumi", "Night Raid (V2.03J)", MACHINE_IMPERFECT_SOUND )
+GAME( 2001, otenki, taitogn, coh3002t, coh3002t, driver_device, 0, ROT0, "Takumi", "Otenki Kororin (V2.01J)", MACHINE_IMPERFECT_SOUND )
-GAME( 2002, xiistag, taitogn, coh3002t, coh3002t, driver_device, 0, ROT270, "Triangle Service", "XII Stag (V2.01J)", GAME_IMPERFECT_SOUND )
+GAME( 2002, xiistag, taitogn, coh3002t, coh3002t, driver_device, 0, ROT270, "Triangle Service", "XII Stag (V2.01J)", MACHINE_IMPERFECT_SOUND )
diff --git a/src/mame/drivers/taitojc.c b/src/mame/drivers/taitojc.c
index d12c37d6e33..55688916979 100644
--- a/src/mame/drivers/taitojc.c
+++ b/src/mame/drivers/taitojc.c
@@ -1930,16 +1930,16 @@ ROM_START( dangcurv )
ROM_END
-GAME( 1995, dangcurv, 0, taitojc, dangcurv, taitojc_state, dangcurv, ROT0, "Taito", "Dangerous Curves (Ver 2.2 J)", GAME_NOT_WORKING ) // DANGEROUS CURVES VER 2.2 J 1995.07.20 17:45
-GAME( 1995, landgear, 0, taitojc, landgear, taitojc_state, taitojc, ROT0, "Taito", "Landing Gear (Ver 4.2 O)", GAME_IMPERFECT_GRAPHICS ) // LANDING GEAR VER 4.2 O Feb 8 1996 09:46:22
-GAME( 1995, landgearj, landgear, taitojc, landgear, taitojc_state, taitojc, ROT0, "Taito", "Landing Gear (Ver 4.2 J)", GAME_IMPERFECT_GRAPHICS ) // LANDING GEAR VER 4.2 J Feb 8 1996 09:46:22
-GAME( 1995, landgeara, landgear, taitojc, landgear, taitojc_state, taitojc, ROT0, "Taito", "Landing Gear (Ver 3.1 O)", GAME_IMPERFECT_GRAPHICS ) // LANDING GEAR VER 3.1 O Feb 8 1996 09:46:22
-GAME( 1995, landgearja,landgear, taitojc, landgear, taitojc_state, taitojc, ROT0, "Taito", "Landing Gear (Ver 3.0 J)", GAME_IMPERFECT_GRAPHICS ) // LANDING GEAR VER 3.0 J Feb 8 1996 09:46:22
-GAME( 1996, sidebs, 0, taitojc, sidebs, taitojc_state, taitojc, ROT0, "Taito", "Side by Side (Ver 2.7 J)", GAME_IMPERFECT_GRAPHICS ) // SIDE BY SIDE VER 2.7 J 1996/10/11 14:54:10
-GAME( 1996, sidebsja, sidebs, taitojc, sidebs, taitojc_state, taitojc, ROT0, "Taito", "Side by Side (Ver 2.5 J)", GAME_IMPERFECT_GRAPHICS ) // SIDE BY SIDE VER 2.5 J 1996/ 6/20 18:13:14
-GAMEL(1996, dendego, 0, dendego, dendego, taitojc_state, taitojc, ROT0, "Taito", "Densha de GO! (Ver 2.2 J)", GAME_IMPERFECT_GRAPHICS, layout_dendego ) // DENSYA DE GO VER 2.2 J 1997/ 2/ 4 12:00:28
-GAMEL(1996, dendegox, dendego, dendego, dendego, taitojc_state, taitojc, ROT0, "Taito", "Densha de GO! EX (Ver 2.4 J)", GAME_IMPERFECT_GRAPHICS, layout_dendego ) // DENSYA DE GO VER 2.4 J 1997/ 4/18 13:38:34
-GAME( 1997, sidebs2, 0, taitojc, sidebs, taitojc_state, taitojc, ROT0, "Taito", "Side by Side 2 (Ver 2.6 A)", GAME_IMPERFECT_GRAPHICS ) // SIDE BY SIDE2 VER 2.6 A 1997/ 6/19 09:39:22
-GAME( 1997, sidebs2j, sidebs2, taitojc, sidebs, taitojc_state, taitojc, ROT0, "Taito", "Side by Side 2 Evoluzione (Ver 2.4 J)", GAME_IMPERFECT_GRAPHICS ) // SIDE BY SIDE2 VER 2.4 J 1997/ 5/26 13:06:37
-GAMEL(1998, dendego2, 0, dendego, dendego, taitojc_state, dendego2, ROT0, "Taito", "Densha de GO! 2 Kousoku-hen (Ver 2.5 J)", GAME_IMPERFECT_GRAPHICS, layout_dendego ) // DENSYA DE GO2 VER 2.5 J 1998/ 3/ 2 15:30:55
-GAMEL(1998, dendego23k,dendego2, dendego, dendego, taitojc_state, dendego2, ROT0, "Taito", "Densha de GO! 2 Kousoku-hen 3000-bandai (Ver 2.20 J)", GAME_IMPERFECT_GRAPHICS, layout_dendego ) // DENSYA DE GO! 2 3000 VER 2.20 J 1998/ 7/15 17:42:38
+GAME( 1995, dangcurv, 0, taitojc, dangcurv, taitojc_state, dangcurv, ROT0, "Taito", "Dangerous Curves (Ver 2.2 J)", MACHINE_NOT_WORKING ) // DANGEROUS CURVES VER 2.2 J 1995.07.20 17:45
+GAME( 1995, landgear, 0, taitojc, landgear, taitojc_state, taitojc, ROT0, "Taito", "Landing Gear (Ver 4.2 O)", MACHINE_IMPERFECT_GRAPHICS ) // LANDING GEAR VER 4.2 O Feb 8 1996 09:46:22
+GAME( 1995, landgearj, landgear, taitojc, landgear, taitojc_state, taitojc, ROT0, "Taito", "Landing Gear (Ver 4.2 J)", MACHINE_IMPERFECT_GRAPHICS ) // LANDING GEAR VER 4.2 J Feb 8 1996 09:46:22
+GAME( 1995, landgeara, landgear, taitojc, landgear, taitojc_state, taitojc, ROT0, "Taito", "Landing Gear (Ver 3.1 O)", MACHINE_IMPERFECT_GRAPHICS ) // LANDING GEAR VER 3.1 O Feb 8 1996 09:46:22
+GAME( 1995, landgearja,landgear, taitojc, landgear, taitojc_state, taitojc, ROT0, "Taito", "Landing Gear (Ver 3.0 J)", MACHINE_IMPERFECT_GRAPHICS ) // LANDING GEAR VER 3.0 J Feb 8 1996 09:46:22
+GAME( 1996, sidebs, 0, taitojc, sidebs, taitojc_state, taitojc, ROT0, "Taito", "Side by Side (Ver 2.7 J)", MACHINE_IMPERFECT_GRAPHICS ) // SIDE BY SIDE VER 2.7 J 1996/10/11 14:54:10
+GAME( 1996, sidebsja, sidebs, taitojc, sidebs, taitojc_state, taitojc, ROT0, "Taito", "Side by Side (Ver 2.5 J)", MACHINE_IMPERFECT_GRAPHICS ) // SIDE BY SIDE VER 2.5 J 1996/ 6/20 18:13:14
+GAMEL(1996, dendego, 0, dendego, dendego, taitojc_state, taitojc, ROT0, "Taito", "Densha de GO! (Ver 2.2 J)", MACHINE_IMPERFECT_GRAPHICS, layout_dendego ) // DENSYA DE GO VER 2.2 J 1997/ 2/ 4 12:00:28
+GAMEL(1996, dendegox, dendego, dendego, dendego, taitojc_state, taitojc, ROT0, "Taito", "Densha de GO! EX (Ver 2.4 J)", MACHINE_IMPERFECT_GRAPHICS, layout_dendego ) // DENSYA DE GO VER 2.4 J 1997/ 4/18 13:38:34
+GAME( 1997, sidebs2, 0, taitojc, sidebs, taitojc_state, taitojc, ROT0, "Taito", "Side by Side 2 (Ver 2.6 A)", MACHINE_IMPERFECT_GRAPHICS ) // SIDE BY SIDE2 VER 2.6 A 1997/ 6/19 09:39:22
+GAME( 1997, sidebs2j, sidebs2, taitojc, sidebs, taitojc_state, taitojc, ROT0, "Taito", "Side by Side 2 Evoluzione (Ver 2.4 J)", MACHINE_IMPERFECT_GRAPHICS ) // SIDE BY SIDE2 VER 2.4 J 1997/ 5/26 13:06:37
+GAMEL(1998, dendego2, 0, dendego, dendego, taitojc_state, dendego2, ROT0, "Taito", "Densha de GO! 2 Kousoku-hen (Ver 2.5 J)", MACHINE_IMPERFECT_GRAPHICS, layout_dendego ) // DENSYA DE GO2 VER 2.5 J 1998/ 3/ 2 15:30:55
+GAMEL(1998, dendego23k,dendego2, dendego, dendego, taitojc_state, dendego2, ROT0, "Taito", "Densha de GO! 2 Kousoku-hen 3000-bandai (Ver 2.20 J)", MACHINE_IMPERFECT_GRAPHICS, layout_dendego ) // DENSYA DE GO! 2 3000 VER 2.20 J 1998/ 7/15 17:42:38
diff --git a/src/mame/drivers/taitopjc.c b/src/mame/drivers/taitopjc.c
index db656c9ba9a..00404766e0c 100644
--- a/src/mame/drivers/taitopjc.c
+++ b/src/mame/drivers/taitopjc.c
@@ -587,4 +587,4 @@ ROM_START( optiger )
// TODO: There are 6 PALs in total on the main PCB.
ROM_END
-GAME( 1998, optiger, 0, taitopjc, taitopjc, taitopjc_state, optiger, ROT0, "Taito", "Operation Tiger", GAME_NOT_WORKING | GAME_NO_SOUND )
+GAME( 1998, optiger, 0, taitopjc, taitopjc, taitopjc_state, optiger, ROT0, "Taito", "Operation Tiger", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/taitosj.c b/src/mame/drivers/taitosj.c
index 1d5ec5916c7..b86595aa6a6 100644
--- a/src/mame/drivers/taitosj.c
+++ b/src/mame/drivers/taitosj.c
@@ -2752,27 +2752,27 @@ DRIVER_INIT_MEMBER(taitosj_state,junglhbr)
m_maincpu->space(AS_PROGRAM).install_write_handler(0x9000, 0xbfff, write8_delegate(FUNC(taitosj_state::junglhbr_characterram_w),this));
}
-GAME( 1981, spaceskr, 0, nomcu, spaceskr, taitosj_state, taitosj, ROT0, "Taito Corporation", "Space Seeker", GAME_SUPPORTS_SAVE )
-GAME( 1981, spacecr, 0, nomcu, spacecr, taitosj_state, spacecr, ROT90, "Taito Corporation", "Space Cruiser", GAME_SUPPORTS_SAVE )
-GAME( 1982, junglek, 0, nomcu, junglek, taitosj_state, taitosj, ROT180, "Taito Corporation", "Jungle King (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1982, junglekas,junglek, nomcu, junglek, taitosj_state, taitosj, ROT180, "Taito Corporation", "Jungle King (alternate sound)", GAME_SUPPORTS_SAVE )
-GAME( 1982, junglekj2,junglek, nomcu, junglek, taitosj_state, taitosj, ROT180, "Taito Corporation", "Jungle King (Japan, earlier)", GAME_SUPPORTS_SAVE )
-GAME( 1982, jungleh, junglek, nomcu, junglek, taitosj_state, taitosj, ROT180, "Taito America Corporation", "Jungle Hunt (US)", GAME_SUPPORTS_SAVE )
-GAME( 1983, junglehbr,junglek, nomcu, junglek, taitosj_state, junglhbr,ROT180, "Taito do Brasil", "Jungle Hunt (Brazil)", GAME_SUPPORTS_SAVE )
-GAME( 1982, piratpet, junglek, nomcu, piratpet, taitosj_state, taitosj, ROT180, "Taito America Corporation", "Pirate Pete", GAME_SUPPORTS_SAVE )
-GAME( 1982, jungleby, junglek, nomcu, junglek, taitosj_state, taitosj, ROT180, "bootleg", "Jungle Boy (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1982, alpine, 0, nomcu, alpine, taitosj_state, alpine, ROT270, "Taito Corporation", "Alpine Ski (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1982, alpinea, alpine, nomcu, alpinea, taitosj_state, alpinea, ROT270, "Taito Corporation", "Alpine Ski (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1982, timetunl, 0, nomcu, timetunl, taitosj_state, taitosj, ROT0, "Taito Corporation", "Time Tunnel", GAME_SUPPORTS_SAVE )
-GAME( 1982, wwestern, 0, nomcu, wwestern, taitosj_state, taitosj, ROT270, "Taito Corporation", "Wild Western (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1982, wwestern1,wwestern, nomcu, wwestern, taitosj_state, taitosj, ROT270, "Taito Corporation", "Wild Western (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1982, frontlin, 0, mcu, frontlin, taitosj_state, taitosj, ROT270, "Taito Corporation", "Front Line", GAME_SUPPORTS_SAVE )
-GAME( 1983, elevator, 0, mcu, elevator, taitosj_state, taitosj, ROT0, "Taito Corporation", "Elevator Action", GAME_SUPPORTS_SAVE )
-GAME( 1983, elevatorb,elevator, nomcu, elevator, taitosj_state, taitosj, ROT0, "bootleg", "Elevator Action (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1983, tinstar, 0, mcu, tinstar, taitosj_state, taitosj, ROT0, "Taito Corporation", "The Tin Star (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1983, tinstar2, tinstar, mcu, tinstar, taitosj_state, taitosj, ROT0, "Taito Corporation", "The Tin Star (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1983, waterski, 0, nomcu, waterski, taitosj_state, taitosj, ROT270, "Taito Corporation", "Water Ski", GAME_SUPPORTS_SAVE )
-GAME( 1983, bioatack, 0, nomcu, bioatack, taitosj_state, taitosj, ROT270, "Taito Corporation (Fox Video Games license)", "Bio Attack", GAME_SUPPORTS_SAVE )
-GAME( 1984, sfposeid, 0, mcu, sfposeid, taitosj_state, taitosj, ROT0, "Taito Corporation", "Sea Fighter Poseidon", GAME_SUPPORTS_SAVE )
-GAME( 1983, hwrace, 0, nomcu, hwrace, taitosj_state, taitosj, ROT270, "Taito Corporation", "High Way Race", GAME_SUPPORTS_SAVE )
-GAME( 1984, kikstart, 0, kikstart, kikstart, taitosj_state, taitosj, ROT0, "Taito Corporation", "Kick Start - Wheelie King", GAME_SUPPORTS_SAVE )
+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( 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, 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 )
+GAME( 1982, frontlin, 0, mcu, frontlin, taitosj_state, taitosj, ROT270, "Taito Corporation", "Front Line", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, elevator, 0, mcu, elevator, taitosj_state, taitosj, ROT0, "Taito Corporation", "Elevator Action", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, elevatorb,elevator, nomcu, elevator, taitosj_state, taitosj, ROT0, "bootleg", "Elevator Action (bootleg)", 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( 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.c b/src/mame/drivers/taitottl.c
index c1327509c02..eb9c8cfe5f0 100644
--- a/src/mame/drivers/taitottl.c
+++ b/src/mame/drivers/taitottl.c
@@ -7,29 +7,29 @@
Game Name(s) Part #'s Data PROM/ROM Chip Numbers
----------------------------------------------------------------+--------------+---------+---------------------------------------
- Astro Race (11/1973) (clone of Atari's Space Race) UNKNOWN
Anti-Aircraft (1975) (clone of Atari's Anti-Aircraft) YES
+ Astro Race (11/1973) (clone of Atari's Space Race) UNKNOWN
Attack (09/1976) UNKNOWN
Attack UFO (08/1974) UNKNOWN
Avenger (??/1976) (clone of Electra's Avenger) YES
- Ball Park/TT Ball Park (??/1974) (clone of Midway's Ball Park) YES
- Basketball (04/1974) (clone of Midway's TV Basketball) YES
- Bombs Away (??/1977) (clone of Meadows' Bombs Away) YES
+ Ball Park/TT Ball Park (??/1974) (clone of Midway's Ball Park) YES
+ Basketball (04/1974) (clone of Midway's TV Basketball) NO
+ Bombs Away (??/1977) (clone of Meadows' Bombs Away) YES
Cisco/Fisco 400 (04/1977) UNKNOWN
Clean Sweep (??/1976) (clone of Ramtek's Clean Sweep) YES
Clean Sweep II (??/1976) (clone of Ramtek's Clean Sweep) YES
Crashing Race (06/1976) (clone of Atari's Crash'n Score?) UNKNOWN
Cross Fire (08/1977) (clone of PSE's Bazooka) YES
- Davis Cup (12/1973) (clone of Atari's Coupe Davis / Pong Doubles?) UNKNOWN
+ Davis Cup (12/1973) (clone of Atari's Coupe Davis / Pong Doubles?) NO
Dead Heat (??/1975) UNKNOWN
Elepong (07/1973) UNKNOWN
- Flying Fortress (??/1977) (clone of Electra's Flying Fortress?) UNKNOWN
+ Flying Fortress (??/1977) (clone of Electra's Flying Fortress?) YES
Flying Fortress II (06/1977) UNKNOWN
Gunman (10/1977) YES 8 x 32bytes (or 11? )
Interceptor (03/1976) UNKNOWN
Missile-X (??/1977) YES 10 - (5 x 512bytes, 5x32bytes)
Pro Hockey (11/1973) UNKNOWN
- Road Champion (04/1977) (clone of Williams' Road Champion?) UNKNOWN
+ Road Champion (04/1977) (clone of Williams' Road Champion?) YES
Road Champion S (06/1977) UNKNOWN
Soccer (11/1973) UNKNOWN
Soccer DX (??/1977) UNKNOWN
@@ -274,9 +274,9 @@ ROM_START( zzblock )
ROM_END
-GAME( 1977, gunman, 0, taitottl, 0, driver_device, 0, ROT0, "Taito", "Gunman [TTL]", GAME_IS_SKELETON )
-GAME( 1977, bazooka, 0, taitottl, 0, driver_device, 0, ROT0, "Project Support Engineering", "Bazooka [TTL]", GAME_IS_SKELETON ) // clone of Taito Cross Fire - or is Cross Fire a clone of PSE Bazooka?
-GAME( 1977, bazookabr, bazooka, taitottl, 0, driver_device, 0, ROT0, "Taito do Brasil", "Bazooka (Brazil) [TTL]", GAME_IS_SKELETON )
-GAME( 1977, missilex, 0, taitottl, 0, driver_device, 0, ROT0, "Taito", "Missile-X [TTL]", GAME_IS_SKELETON )
-GAME( 1977, ttblock, 0, taitottl, 0, driver_device, 0, ROT0, "Taito", "T.T. Block [TTL]", GAME_IS_SKELETON )
-GAME( 1979, zzblock, 0, taitottl, 0, driver_device, 0, ROT0, "Taito", "Zun Zun Block [TTL]", GAME_IS_SKELETON )
+GAME( 1977, gunman, 0, taitottl, 0, driver_device, 0, ROT0, "Taito", "Gunman [TTL]", MACHINE_IS_SKELETON )
+GAME( 1977, bazooka, 0, taitottl, 0, driver_device, 0, ROT0, "Project Support Engineering", "Bazooka [TTL]", MACHINE_IS_SKELETON ) // clone of Taito Cross Fire - or is Cross Fire a clone of PSE Bazooka?
+GAME( 1977, bazookabr, bazooka, taitottl, 0, driver_device, 0, ROT0, "Taito do Brasil", "Bazooka (Brazil) [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 )
diff --git a/src/mame/drivers/taitotx.c b/src/mame/drivers/taitotx.c
index a0aa73ee43a..8f0d40b46cf 100644
--- a/src/mame/drivers/taitotx.c
+++ b/src/mame/drivers/taitotx.c
@@ -307,18 +307,18 @@ ROM_START( trbwtchs )
ROM_END
-GAME( 2004, chaosbrk, 0, taito_type_x, taito_type_x, driver_device, 0, ROT0, "Taito Corporation", "Chaos Breaker (v2.02J)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 2004, gwinggen, 0, taito_type_x, taito_type_x, driver_device, 0, ROT0, "Takumi Corporation", "Giga Wing Generations (v2.02J)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 2005, homura, 0, taito_type_x, taito_type_x, driver_device, 0, ROT0, "SKonec Entertainment", "Homura (v2.04J)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 2005, hotgmkmp, 0, taito_type_x, taito_type_x, driver_device, 0, ROT0, "XNauts", "Taisen Hot Gimmick Mix Party", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 2005, raiden3, 0, taito_type_x, taito_type_x, driver_device, 0, ROT0, "MOSS / Seibu Kaihatsu", "Raiden III (v2.01J)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 2005, spicaadv, 0, taito_type_x, taito_type_x, driver_device, 0, ROT0, "Taito Corporation", "Spica Adventure (v2.03J)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 2005, usagiol, 0, taito_type_x, taito_type_x, driver_device, 0, ROT0, "Taito Corporation/Warashi", "Usagi Online (v2.04J)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 2006, shikiga3, 0, taito_type_x, taito_type_x, driver_device, 0, ROT0, "Alfa System/SKonec Entertainment", "Shikigami no Shiro III (v2.06J)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 2007, raiden4, 0, taito_type_x, taito_type_x, driver_device, 0, ROT0, "MOSS / Seibu Kaihatsu", "Raiden IV (v1.00J)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 2008, kof98um, 0, taito_type_x, taito_type_x, driver_device, 0, ROT0, "SNK", "The King of Fighters '98: Ultimate Match (v1.00)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 2008, trbwtchs, 0, taito_type_x, taito_type_x, driver_device, 0, ROT0, "Adventure Planning Service/Studio SiestA", "Trouble Witches AC (v1.00J)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 2009, goketsuj, 0, taito_type_x, taito_type_x, driver_device, 0, ROT0, "Atlus", "Goketsuji Ichizoku: Matsuri Senzo Kuyou (v200906230)", GAME_NOT_WORKING | GAME_NO_SOUND )
+GAME( 2004, chaosbrk, 0, taito_type_x, taito_type_x, driver_device, 0, ROT0, "Taito Corporation", "Chaos Breaker (v2.02J)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 2004, gwinggen, 0, taito_type_x, taito_type_x, driver_device, 0, ROT0, "Takumi Corporation", "Giga Wing Generations (v2.02J)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 2005, homura, 0, taito_type_x, taito_type_x, driver_device, 0, ROT0, "SKonec Entertainment", "Homura (v2.04J)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 2005, hotgmkmp, 0, taito_type_x, taito_type_x, driver_device, 0, ROT0, "XNauts", "Taisen Hot Gimmick Mix Party", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 2005, raiden3, 0, taito_type_x, taito_type_x, driver_device, 0, ROT0, "MOSS / Seibu Kaihatsu", "Raiden III (v2.01J)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 2005, spicaadv, 0, taito_type_x, taito_type_x, driver_device, 0, ROT0, "Taito Corporation", "Spica Adventure (v2.03J)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 2005, usagiol, 0, taito_type_x, taito_type_x, driver_device, 0, ROT0, "Taito Corporation/Warashi", "Usagi Online (v2.04J)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 2006, shikiga3, 0, taito_type_x, taito_type_x, driver_device, 0, ROT0, "Alfa System/SKonec Entertainment", "Shikigami no Shiro III (v2.06J)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 2007, raiden4, 0, taito_type_x, taito_type_x, driver_device, 0, ROT0, "MOSS / Seibu Kaihatsu", "Raiden IV (v1.00J)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 2008, kof98um, 0, taito_type_x, taito_type_x, driver_device, 0, ROT0, "SNK", "The King of Fighters '98: Ultimate Match (v1.00)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 2008, trbwtchs, 0, taito_type_x, taito_type_x, driver_device, 0, ROT0, "Adventure Planning Service/Studio SiestA", "Trouble Witches AC (v1.00J)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 2009, goketsuj, 0, taito_type_x, taito_type_x, driver_device, 0, ROT0, "Atlus", "Goketsuji Ichizoku: Matsuri Senzo Kuyou (v200906230)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
// Type X+
@@ -339,7 +339,7 @@ ROM_START( wontmuch )
ROM_END
-GAME( 2006, wontmuch, 0, taito_type_x, taito_type_x, driver_device, 0, ROT0, "Capcom", "Won!Tertainment Music Channel (v1.00)", GAME_NOT_WORKING | GAME_NO_SOUND )
+GAME( 2006, wontmuch, 0, taito_type_x, taito_type_x, driver_device, 0, ROT0, "Capcom", "Won!Tertainment Music Channel (v1.00)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
// Type X2
@@ -365,5 +365,5 @@ ROM_START( samspsen )
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)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 2008, samspsen, 0, taito_type_x, taito_type_x, driver_device, 0, ROT0, "SNK Playmore", "Samurai Spirits Sen (v1.00)", GAME_NOT_WORKING | GAME_NO_SOUND )
+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 )
diff --git a/src/mame/drivers/taitotz.c b/src/mame/drivers/taitotz.c
index 0ef77c8a859..3d8829db0a5 100644
--- a/src/mame/drivers/taitotz.c
+++ b/src/mame/drivers/taitotz.c
@@ -2950,11 +2950,11 @@ 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", GAME_NO_SOUND|GAME_NOT_WORKING|GAME_IS_BIOS_ROOT)
-GAME( 1999, landhigh, taitotz, landhigh, landhigh, taitotz_state, landhigh, ROT0, "Taito", "Landing High Japan", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 1999, batlgear, taitotz, taitotz, batlgr2, taitotz_state, batlgear, ROT0, "Taito", "Battle Gear", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 1999, pwrshovl, taitotz, taitotz, pwrshovl, taitotz_state, pwrshovl, ROT0, "Taito", "Power Shovel ni Norou!! - Power Shovel Simulator", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 2000, batlgr2, taitotz, taitotz, batlgr2, taitotz_state, batlgr2, ROT0, "Taito", "Battle Gear 2 (v2.04J)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 2000, batlgr2a, batlgr2, taitotz, batlgr2, taitotz_state, batlgr2a, ROT0, "Taito", "Battle Gear 2 (v2.01J)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 2000, styphp, taitotz, taitotz, styphp, taitotz_state, styphp, ROT0, "Taito", "Stunt Typhoon Plus", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 2002, raizpin, taitotz, taitotz, taitotz, taitotz_state, raizpin, ROT0, "Taito", "Raizin Ping Pong", GAME_NOT_WORKING | GAME_NO_SOUND )
+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", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 1999, batlgear, taitotz, taitotz, batlgr2, taitotz_state, batlgear, ROT0, "Taito", "Battle Gear", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 1999, pwrshovl, taitotz, taitotz, pwrshovl, taitotz_state, pwrshovl, ROT0, "Taito", "Power Shovel ni Norou!! - Power Shovel Simulator", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+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", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 2002, raizpin, taitotz, taitotz, taitotz, taitotz_state, raizpin, ROT0, "Taito", "Raizin Ping Pong", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/taitowlf.c b/src/mame/drivers/taitowlf.c
index 33b134ebcbe..24f8d5ef1be 100644
--- a/src/mame/drivers/taitowlf.c
+++ b/src/mame/drivers/taitowlf.c
@@ -446,4 +446,4 @@ ROM_END
/*****************************************************************************/
-GAME(1997, pf2012, 0, taitowlf, pc_keyboard, taitowlf_state, taitowlf, ROT0, "Taito", "Psychic Force 2012", GAME_NOT_WORKING | GAME_NO_SOUND)
+GAME(1997, pf2012, 0, taitowlf, pc_keyboard, taitowlf_state, taitowlf, ROT0, "Taito", "Psychic Force 2012", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/tamag1.c b/src/mame/drivers/tamag1.c
index 4488a63c2c5..7b0a73509a5 100644
--- a/src/mess/drivers/tamag1.c
+++ b/src/mame/drivers/tamag1.c
@@ -167,4 +167,4 @@ ROM_START( tama )
ROM_END
-CONS( 1997, tama, 0, 0, tama, tama, driver_device, 0, "Bandai", "Tamagotchi (USA)", GAME_SUPPORTS_SAVE )
+CONS( 1997, tama, 0, 0, tama, tama, driver_device, 0, "Bandai", "Tamagotchi (USA)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/tandy1t.c b/src/mame/drivers/tandy1t.c
index d770b3f8c72..d770b3f8c72 100644
--- a/src/mess/drivers/tandy1t.c
+++ b/src/mame/drivers/tandy1t.c
diff --git a/src/mess/drivers/tandy2k.c b/src/mame/drivers/tandy2k.c
index 0d968645f03..1b6c2447295 100644
--- a/src/mess/drivers/tandy2k.c
+++ b/src/mame/drivers/tandy2k.c
@@ -362,8 +362,11 @@ UINT32 tandy2k_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap,
for (int sx = 0; sx < 80; sx++)
{
offs_t addr = m_ram->size() - 0x1400 + (((y / 16) * 80) + sx) * 2;
- UINT8 vidla = program.read_word(addr);
- UINT8 data = m_char_ram[(vidla << 4) | cgra];
+ UINT16 vidla = program.read_word(addr);
+ UINT8 attr = vidla >> 8;
+ UINT8 data = m_char_ram[((vidla & 0xff) << 4) | cgra];
+ if(attr & 0x80)
+ data = ~data;
for (int x = 0; x < 8; x++)
{
@@ -904,5 +907,5 @@ 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", GAME_NOT_WORKING )
-COMP( 1983, tandy2khd, tandy2k, 0, tandy2k_hd, tandy2k, driver_device, 0, "Tandy Radio Shack", "Tandy 2000HD", GAME_NOT_WORKING )
+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 )
diff --git a/src/mame/drivers/tank8.c b/src/mame/drivers/tank8.c
index 86971793027..80ac03680c2 100644
--- a/src/mame/drivers/tank8.c
+++ b/src/mame/drivers/tank8.c
@@ -13,7 +13,7 @@ Atari Tank 8 driver
-void tank8_state::tank8_set_collision(int index)
+void tank8_state::set_collision(int index)
{
m_maincpu->set_input_line(0, ASSERT_LINE);
@@ -27,40 +27,40 @@ void tank8_state::machine_reset()
}
-READ8_MEMBER(tank8_state::tank8_collision_r)
+READ8_MEMBER(tank8_state::collision_r)
{
return m_collision_index;
}
-WRITE8_MEMBER(tank8_state::tank8_lockout_w)
+WRITE8_MEMBER(tank8_state::lockout_w)
{
coin_lockout_w(machine(), offset, ~data & 1);
}
-WRITE8_MEMBER(tank8_state::tank8_int_reset_w)
+WRITE8_MEMBER(tank8_state::int_reset_w)
{
m_collision_index &= ~0x3f;
m_maincpu->set_input_line(0, CLEAR_LINE);
}
-WRITE8_MEMBER(tank8_state::tank8_crash_w)
+WRITE8_MEMBER(tank8_state::crash_w)
{
m_discrete->write(space, TANK8_CRASH_EN, data);
}
-WRITE8_MEMBER(tank8_state::tank8_explosion_w)
+WRITE8_MEMBER(tank8_state::explosion_w)
{
m_discrete->write(space, TANK8_EXPLOSION_EN, data);
}
-WRITE8_MEMBER(tank8_state::tank8_bugle_w)
+WRITE8_MEMBER(tank8_state::bugle_w)
{
m_discrete->write(space, TANK8_BUGLE_EN, data);
}
-WRITE8_MEMBER(tank8_state::tank8_bug_w)
+WRITE8_MEMBER(tank8_state::bug_w)
{
/* D0 and D1 determine the on/off time off the square wave */
switch(data & 3) {
@@ -84,12 +84,12 @@ WRITE8_MEMBER(tank8_state::tank8_bug_w)
}
-WRITE8_MEMBER(tank8_state::tank8_attract_w)
+WRITE8_MEMBER(tank8_state::attract_w)
{
m_discrete->write(space, TANK8_ATTRACT_EN, data);
}
-WRITE8_MEMBER(tank8_state::tank8_motor_w)
+WRITE8_MEMBER(tank8_state::motor_w)
{
m_discrete->write(space, NODE_RELATIVE(TANK8_MOTOR1_EN, offset), data);
}
@@ -99,7 +99,7 @@ static ADDRESS_MAP_START( tank8_cpu_map, AS_PROGRAM, 8, tank8_state )
AM_RANGE(0x0400, 0x17ff) AM_ROM
AM_RANGE(0xf800, 0xffff) AM_ROM
- AM_RANGE(0x1c00, 0x1c00) AM_READ(tank8_collision_r)
+ AM_RANGE(0x1c00, 0x1c00) AM_READ(collision_r)
AM_RANGE(0x1c01, 0x1c01) AM_READ_PORT("P1")
AM_RANGE(0x1c02, 0x1c02) AM_READ_PORT("P2")
@@ -114,20 +114,20 @@ static ADDRESS_MAP_START( tank8_cpu_map, AS_PROGRAM, 8, tank8_state )
AM_RANGE(0x1c0b, 0x1c0b) AM_READ_PORT("RC")
AM_RANGE(0x1c0f, 0x1c0f) AM_READ_PORT("VBLANK")
- AM_RANGE(0x1800, 0x1bff) AM_WRITE(tank8_video_ram_w) AM_SHARE("video_ram")
+ AM_RANGE(0x1800, 0x1bff) AM_WRITE(video_ram_w) AM_SHARE("video_ram")
AM_RANGE(0x1c00, 0x1c0f) AM_WRITEONLY AM_SHARE("pos_h_ram")
AM_RANGE(0x1c10, 0x1c1f) AM_WRITEONLY AM_SHARE("pos_v_ram")
AM_RANGE(0x1c20, 0x1c2f) AM_WRITEONLY AM_SHARE("pos_d_ram")
- AM_RANGE(0x1c30, 0x1c37) AM_WRITE(tank8_lockout_w)
- AM_RANGE(0x1d00, 0x1d00) AM_WRITE(tank8_int_reset_w)
- AM_RANGE(0x1d01, 0x1d01) AM_WRITE(tank8_crash_w)
- AM_RANGE(0x1d02, 0x1d02) AM_WRITE(tank8_explosion_w)
- AM_RANGE(0x1d03, 0x1d03) AM_WRITE(tank8_bugle_w)
- AM_RANGE(0x1d04, 0x1d04) AM_WRITE(tank8_bug_w)
+ AM_RANGE(0x1c30, 0x1c37) AM_WRITE(lockout_w)
+ AM_RANGE(0x1d00, 0x1d00) AM_WRITE(int_reset_w)
+ AM_RANGE(0x1d01, 0x1d01) AM_WRITE(crash_w)
+ AM_RANGE(0x1d02, 0x1d02) AM_WRITE(explosion_w)
+ AM_RANGE(0x1d03, 0x1d03) AM_WRITE(bugle_w)
+ AM_RANGE(0x1d04, 0x1d04) AM_WRITE(bug_w)
AM_RANGE(0x1d05, 0x1d05) AM_WRITEONLY AM_SHARE("team")
- AM_RANGE(0x1d06, 0x1d06) AM_WRITE(tank8_attract_w)
- AM_RANGE(0x1e00, 0x1e07) AM_WRITE(tank8_motor_w)
+ AM_RANGE(0x1d06, 0x1d06) AM_WRITE(attract_w)
+ AM_RANGE(0x1e00, 0x1e07) AM_WRITE(motor_w)
ADDRESS_MAP_END
@@ -339,8 +339,8 @@ static MACHINE_CONFIG_START( tank8, tank8_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(30 * 1000000 / 15681))
MCFG_SCREEN_SIZE(512, 524)
MCFG_SCREEN_VISIBLE_AREA(16, 495, 0, 463)
- MCFG_SCREEN_UPDATE_DRIVER(tank8_state, screen_update_tank8)
- MCFG_SCREEN_VBLANK_DRIVER(tank8_state, screen_eof_tank8)
+ MCFG_SCREEN_UPDATE_DRIVER(tank8_state, screen_update)
+ MCFG_SCREEN_VBLANK_DRIVER(tank8_state, screen_eof)
MCFG_SCREEN_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", "palette", tank8)
@@ -480,8 +480,8 @@ DRIVER_INIT_MEMBER(tank8_state,decode)
}
-GAME( 1976, tank8, 0, tank8, tank8, driver_device, 0, ROT0, "Atari (Kee Games)", "Tank 8 (set 1)", 0)
-GAME( 1976, tank8a, tank8, tank8, tank8, tank8_state, decode, ROT0, "Atari (Kee Games)", "Tank 8 (set 2)", GAME_NOT_WORKING )
-GAME( 1976, tank8b, tank8, tank8, tank8, tank8_state, decode, ROT0, "Atari (Kee Games)", "Tank 8 (set 3)", GAME_NOT_WORKING )
-GAME( 1976, tank8c, tank8, tank8, tank8, driver_device, 0, ROT0, "Atari (Kee Games)", "Tank 8 (set 4)", GAME_NOT_WORKING )
-GAME( 1976, tank8d, tank8, tank8, tank8, driver_device, 0, ROT0, "Atari (Kee Games)", "Tank 8 (set 5)", GAME_NOT_WORKING )
+GAME( 1976, tank8, 0, tank8, tank8, driver_device, 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 )
diff --git a/src/mame/drivers/tankbatt.c b/src/mame/drivers/tankbatt.c
index 5262770ab94..4757c1469da 100644
--- a/src/mame/drivers/tankbatt.c
+++ b/src/mame/drivers/tankbatt.c
@@ -345,5 +345,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", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, tankbattb, tankbatt, tankbatt, tankbatt, driver_device, 0, ROT90, "bootleg", "Tank Battalion (bootleg)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/tankbust.c b/src/mame/drivers/tankbust.c
index 5f2cd454eeb..7775c80d6d4 100644
--- a/src/mame/drivers/tankbust.c
+++ b/src/mame/drivers/tankbust.c
@@ -417,4 +417,4 @@ ROM_START( tankbust )
ROM_END
-GAME( 1985, tankbust, 0, tankbust, tankbust, driver_device, 0, ROT90, "Valadon Automation", "Tank Busters", GAME_SUPPORTS_SAVE )
+GAME( 1985, tankbust, 0, tankbust, tankbust, driver_device, 0, ROT90, "Valadon Automation", "Tank Busters", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/taotaido.c b/src/mame/drivers/taotaido.c
index ce6ac51e3f4..5f4585f3048 100644
--- a/src/mame/drivers/taotaido.c
+++ b/src/mame/drivers/taotaido.c
@@ -470,6 +470,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)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1993, taotaidoa,taotaido, taotaido, taotaido6,driver_device, 0, ROT0, "Video System Co.", "Tao Taido (6 button version)", GAME_NO_COCKTAIL | GAME_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)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/tapatune.c b/src/mame/drivers/tapatune.c
index f2e0978f2d8..ee7c6ef7930 100644
--- a/src/mame/drivers/tapatune.c
+++ b/src/mame/drivers/tapatune.c
@@ -584,11 +584,50 @@ ROM_START( srockbwl )
ROM_END
+/*
+
+Smart Toss 'Em
+
+romset was marked "Smart Toss 'em"
+
+one of the roms contains the string
+
+SMART INDUSTRIES SMARTBALL V2.0
+
+a reference to Smart Toss 'em can be found at
+http://www.museumofplay.org/online-collections/22/67/109.17072
+
+also contains
+
+"Creative Electronics Software"
+
+*/
+
+
+ROM_START( smartoss )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "s-tossem.u8", 0x0000, 0x10000,CRC(ce07c837) SHA1(5a474cc9d3163385a3dac6da935bc77af67ac85a) )
+
+ ROM_REGION( 0x1000000, "bsmt", 0 )
+ ROM_LOAD( "s-tossem.u16", 0x000000, 0x20000, CRC(633222dc) SHA1(f95713902920737c9d20aafbdeb975daf98c7078) )
+ ROM_CONTINUE( 0x040000, 0x20000 )
+ ROM_CONTINUE( 0x080000, 0x20000 )
+ ROM_CONTINUE( 0x0c0000, 0x20000 )
+ // U21 is not populated?
+
+ // for a different sub-board maybe? or banked CPU data?
+ ROM_REGION( 0x40000, "unkdata", 0 )
+ ROM_LOAD( "s-tossem.u27", 0x0000, 0x40000, CRC(703d19b7) SHA1(75641d885885a67bd66afa38577c7907fa505b0b) )
+ROM_END
+
/*************************************
*
* Game driver(s)
*
*************************************/
-GAME(1994, tapatune, 0, tapatune, tapatune, driver_device, 0, ROT0, "Moloney Manufacturing Inc. / Creative Electronics and Software", "Tap a Tune", GAME_SUPPORTS_SAVE )
-GAME(1994, srockbwl, 0, tapatune_base, tapatune, driver_device, 0, ROT0, "Bromley", "Super Rock and Bowl (V1.1)", GAME_IS_SKELETON_MECHANICAL | GAME_SUPPORTS_SAVE )
+GAME(1994, tapatune, 0, tapatune, tapatune, driver_device, 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 )
diff --git a/src/mame/drivers/targeth.c b/src/mame/drivers/targeth.c
index f9a0402d163..518346d2b55 100644
--- a/src/mame/drivers/targeth.c
+++ b/src/mame/drivers/targeth.c
@@ -235,5 +235,5 @@ ROM_START( targetha )
ROM_LOAD( "targeth.c3", 0x0c0000, 0x080000, CRC(d4c771df) SHA1(7cc0a86ef6aa3d26ab8f19d198f62112bf012870) )
ROM_END
-GAME( 1994, targeth, 0, targeth, targeth, driver_device, 0, ROT0, "Gaelco", "Target Hits (ver 1.1)", GAME_UNEMULATED_PROTECTION )
-GAME( 1994, targetha, targeth, targeth, targeth, driver_device, 0, ROT0, "Gaelco", "Target Hits (ver 1.0)", GAME_UNEMULATED_PROTECTION )
+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 )
diff --git a/src/mame/drivers/tasman.c b/src/mame/drivers/tasman.c
index 3f19ee4d6cf..bf46c41665e 100644
--- a/src/mame/drivers/tasman.c
+++ b/src/mame/drivers/tasman.c
@@ -183,7 +183,7 @@ static ADDRESS_MAP_START( kongambl_map, AS_PROGRAM, 32, kongambl_state )
AM_RANGE(0x440000, 0x443fff) AM_RAM // OBJ RAM
- AM_RANGE(0x460000, 0x47ffff) AM_RAM_WRITE(konamigx_palette_w) AM_SHARE("paletteram")
+ AM_RANGE(0x460000, 0x47ffff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x4b001c, 0x4b001f) AM_WRITENOP
@@ -590,7 +590,8 @@ static MACHINE_CONFIG_START( kongambl, kongambl_state )
MCFG_SCREEN_UPDATE_DRIVER(kongambl_state, screen_update_kongambl)
MCFG_SCREEN_PALETTE("palette")
- MCFG_PALETTE_ADD("palette", 0x8000)
+ MCFG_PALETTE_ADD("palette", 32768)
+ MCFG_PALETTE_FORMAT(XRGB)
MCFG_VIDEO_START_OVERRIDE(kongambl_state,kongambl)
@@ -750,8 +751,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)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 199?, moneybnk, 0, kongambl, kongambl, driver_device, 0, ROT0, "Konami", "Money In The Bank (NSW, Australia)", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 199?, dragsphr, 0, kongambl, kongambl, driver_device, 0, ROT0, "Konami", "Dragon Sphere", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 199?, ivorytsk, 0, kongambl, kongambl, driver_device, 0, ROT0, "Konami", "Ivory Tusk", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 199?, vikingt, 0, kongambl, kongambl, driver_device, 0, ROT0, "Konami", "Viking Treasure", GAME_NOT_WORKING | GAME_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, 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 )
diff --git a/src/mame/drivers/tatsumi.c b/src/mame/drivers/tatsumi.c
index 97514dfd5db..192e4e1ec0c 100644
--- a/src/mame/drivers/tatsumi.c
+++ b/src/mame/drivers/tatsumi.c
@@ -1432,9 +1432,9 @@ DRIVER_INIT_MEMBER(tatsumi_state,cyclwarr)
/* http://www.tatsu-mi.co.jp/game/trace/index.html */
/* ** 1987 grayout - Gray Out (not dumped yet) */
-GAME( 1988, apache3, 0, apache3, apache3, tatsumi_state, apache3, ROT0, "Tatsumi", "Apache 3", GAME_IMPERFECT_GRAPHICS )
-GAME( 1988, apache3a, apache3, apache3, apache3, tatsumi_state, apache3, ROT0, "Tatsumi (Kana Corporation license)", "Apache 3 (Kana Corporation license)", GAME_IMPERFECT_GRAPHICS )
-GAMEL(1989, roundup5, 0, roundup5, roundup5, tatsumi_state, roundup5, ROT0, "Tatsumi", "Round Up 5 - Super Delta Force", GAME_IMPERFECT_GRAPHICS, layout_roundup5 )
-GAME( 1991, cyclwarr, 0, cyclwarr, cyclwarr, tatsumi_state, cyclwarr, ROT0, "Tatsumi", "Cycle Warriors (rev C)", GAME_IMPERFECT_GRAPHICS ) // Rev C & B CPU code
-GAME( 1991, cyclwarra, cyclwarr, cyclwarr, cyclwarb, tatsumi_state, cyclwarr, ROT0, "Tatsumi", "Cycle Warriors (rev B)", GAME_IMPERFECT_GRAPHICS ) // Rev B & A CPU code
-GAME( 1992, bigfight, 0, bigfight, bigfight, tatsumi_state, cyclwarr, ROT0, "Tatsumi", "Big Fight - Big Trouble In The Atlantic Ocean", GAME_IMPERFECT_GRAPHICS )
+GAME( 1988, apache3, 0, apache3, apache3, tatsumi_state, apache3, ROT0, "Tatsumi", "Apache 3", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1988, apache3a, apache3, apache3, apache3, tatsumi_state, apache3, ROT0, "Tatsumi (Kana Corporation license)", "Apache 3 (Kana Corporation license)", MACHINE_IMPERFECT_GRAPHICS )
+GAMEL(1989, roundup5, 0, roundup5, roundup5, tatsumi_state, roundup5, ROT0, "Tatsumi", "Round Up 5 - Super Delta Force", MACHINE_IMPERFECT_GRAPHICS, layout_roundup5 )
+GAME( 1991, cyclwarr, 0, cyclwarr, cyclwarr, tatsumi_state, cyclwarr, ROT0, "Tatsumi", "Cycle Warriors (rev C)", MACHINE_IMPERFECT_GRAPHICS ) // Rev C & B CPU code
+GAME( 1991, cyclwarra, cyclwarr, cyclwarr, cyclwarb, tatsumi_state, cyclwarr, ROT0, "Tatsumi", "Cycle Warriors (rev B)", MACHINE_IMPERFECT_GRAPHICS ) // Rev B & A CPU code
+GAME( 1992, bigfight, 0, bigfight, bigfight, tatsumi_state, cyclwarr, ROT0, "Tatsumi", "Big Fight - Big Trouble In The Atlantic Ocean", MACHINE_IMPERFECT_GRAPHICS )
diff --git a/src/mame/drivers/tattack.c b/src/mame/drivers/tattack.c
index 366e3c9f433..186ade3a0dc 100644
--- a/src/mame/drivers/tattack.c
+++ b/src/mame/drivers/tattack.c
@@ -278,4 +278,4 @@ DRIVER_INIT_MEMBER(tattack_state,tattack)
}
-GAME( 198?, tattack, 0, tattack, tattack, tattack_state, tattack, ROT270, "Shonan", "Time Attacker", GAME_NO_SOUND | GAME_IMPERFECT_COLORS | GAME_NOT_WORKING)
+GAME( 198?, tattack, 0, tattack, tattack, tattack_state, tattack, ROT270, "Shonan", "Time Attacker", MACHINE_NO_SOUND | MACHINE_IMPERFECT_COLORS | MACHINE_NOT_WORKING)
diff --git a/src/mess/drivers/tavernie.c b/src/mame/drivers/tavernie.c
index 06a4efcbfc8..c1ea74dc14d 100644
--- a/src/mess/drivers/tavernie.c
+++ b/src/mame/drivers/tavernie.c
@@ -373,6 +373,7 @@ static MACHINE_CONFIG_DERIVED( ivg09, cpu09 )
MCFG_FD1795_ADD("fdc", XTAL_8MHz / 8)
MCFG_FLOPPY_DRIVE_ADD("fdc:0", ifd09_floppies, "525dd", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
MACHINE_CONFIG_END
/* ROM definition */
@@ -396,5 +397,5 @@ 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", GAME_NOT_WORKING )
-COMP( 1983, ivg09, cpu09, 0, ivg09, ivg09, driver_device, 0, "C. Tavernier", "CPU09 with IVG09 and IFD09", GAME_NOT_WORKING )
+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 )
diff --git a/src/mame/drivers/taxidriv.c b/src/mame/drivers/taxidriv.c
index bac03070b22..eca1c1200df 100644
--- a/src/mame/drivers/taxidriv.c
+++ b/src/mame/drivers/taxidriv.c
@@ -445,4 +445,4 @@ ROM_START( taxidriv )
ROM_END
-GAME( 1984, taxidriv, 0, taxidriv, taxidriv, driver_device, 0, ROT90, "Graphic Techno", "Taxi Driver", GAME_IMPERFECT_GRAPHICS | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+GAME( 1984, taxidriv, 0, taxidriv, taxidriv, driver_device, 0, ROT90, "Graphic Techno", "Taxi Driver", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/tb303.c b/src/mame/drivers/tb303.c
index 6f8536a636b..841aa375aed 100644
--- a/src/mess/drivers/tb303.c
+++ b/src/mame/drivers/tb303.c
@@ -9,7 +9,8 @@
* 3*uPD444C 1024x4 Static CMOS SRAM
* board is packed with discrete components
- x
+ TODO:
+ - still too much to list here
***************************************************************************/
@@ -27,7 +28,7 @@ public:
{ }
required_device<timer_device> m_t3_off_timer;
-
+
UINT8 m_ram[0xc00];
UINT16 m_ram_address;
bool m_ram_ce;
@@ -35,12 +36,12 @@ public:
DECLARE_WRITE8_MEMBER(ram_w);
DECLARE_READ8_MEMBER(ram_r);
+ DECLARE_WRITE8_MEMBER(strobe_w);
void refresh_ram();
- DECLARE_WRITE8_MEMBER(led_w);
DECLARE_WRITE8_MEMBER(switch_w);
- DECLARE_WRITE8_MEMBER(strobe_w);
DECLARE_READ8_MEMBER(input_r);
+ void update_leds();
TIMER_DEVICE_CALLBACK_MEMBER(t3_clock);
TIMER_DEVICE_CALLBACK_MEMBER(t3_off);
@@ -81,6 +82,8 @@ TIMER_DEVICE_CALLBACK_MEMBER(tb303_state::t3_clock)
***************************************************************************/
+// external ram
+
void tb303_state::refresh_ram()
{
// MCU E2,E3 goes through a 4556 IC(pin 14,13) to one of uPD444 _CE:
@@ -94,7 +97,7 @@ void tb303_state::refresh_ram()
case 2: hi = 1; break;
case 3: hi = 2; break;
}
-
+
if (m_ram_ce)
{
// _WE must be high(read mode) for address transitions
@@ -103,9 +106,6 @@ void tb303_state::refresh_ram()
else
m_ram[m_ram_address] = m_port[NEC_UCOM4_PORTC];
}
-
- // to switchboard pin 19-22
- //..
}
WRITE8_MEMBER(tb303_state::ram_w)
@@ -114,7 +114,7 @@ WRITE8_MEMBER(tb303_state::ram_w)
// MCU D,F,E: RAM address
m_port[offset] = data;
refresh_ram();
-
+
// MCU D,F01: pitch data
//..
}
@@ -128,26 +128,45 @@ READ8_MEMBER(tb303_state::ram_r)
return 0;
}
-WRITE8_MEMBER(tb303_state::led_w)
-{
- // MCU G: leds state
- display_matrix(4, 4, data, m_inp_mux);
-}
-
-WRITE8_MEMBER(tb303_state::switch_w)
-{
- // MCU H: input/led mux
- m_inp_mux = data;
-}
-
WRITE8_MEMBER(tb303_state::strobe_w)
{
// MCU I0: RAM _WE
m_ram_we = (data & 1) ? false : true;
refresh_ram();
-
+
// MCU I1: pitch data latch strobe
// MCU I2: gate signal
+
+ m_port[offset] = data;
+}
+
+
+// switch board
+
+void tb303_state::update_leds()
+{
+ // 4*4 LED matrix from port G/H:
+ /*
+ 0.0 D204 1.0 D211 2.0 D217 3.0 D205
+ 0.1 D206 1.1 D213 2.1 D218 3.1 D207
+ 0.2 D208 1.2 D215 2.2 D220 3.2 D210
+ 0.3 D209 1.3 D216 2.3 D221 3.3 D212
+ */
+ display_matrix(4, 4, m_port[NEC_UCOM4_PORTG], m_port[NEC_UCOM4_PORTH]);
+
+ // todo: battery led
+ // todo: 4 more leds(see top-left part)
+}
+
+WRITE8_MEMBER(tb303_state::switch_w)
+{
+ // MCU G: leds state
+ // MCU H: input/led mux
+ if (offset == NEC_UCOM4_PORTH)
+ m_inp_mux = data = data ^ 0xf;
+
+ m_port[offset] = data;
+ update_leds();
}
READ8_MEMBER(tb303_state::input_r)
@@ -234,13 +253,13 @@ INPUT_PORTS_END
void tb303_state::machine_start()
{
hh_ucom4_state::machine_start();
-
+
// zerofill
memset(m_ram, 0, sizeof(m_ram));
m_ram_address = 0;
m_ram_ce = false;
m_ram_we = false;
-
+
// register for savestates
save_item(NAME(m_ram));
save_item(NAME(m_ram_address));
@@ -259,7 +278,7 @@ static MACHINE_CONFIG_START( tb303, tb303_state )
MCFG_UCOM4_WRITE_D_CB(WRITE8(tb303_state, ram_w))
MCFG_UCOM4_WRITE_E_CB(WRITE8(tb303_state, ram_w))
MCFG_UCOM4_WRITE_F_CB(WRITE8(tb303_state, ram_w))
- MCFG_UCOM4_WRITE_G_CB(WRITE8(tb303_state, led_w))
+ MCFG_UCOM4_WRITE_G_CB(WRITE8(tb303_state, switch_w))
MCFG_UCOM4_WRITE_H_CB(WRITE8(tb303_state, switch_w))
MCFG_UCOM4_WRITE_I_CB(WRITE8(tb303_state, strobe_w))
@@ -286,8 +305,8 @@ MACHINE_CONFIG_END
ROM_START( tb303 )
ROM_REGION( 0x0800, "maincpu", 0 )
- ROM_LOAD( "d650c-133.ic8", 0x0000, 0x0800, CRC(0805b37a) SHA1(9a0c1891b56446535cef66a11b8366e1b22cc23f) )
+ ROM_LOAD( "d650c-133.ic8", 0x0000, 0x0800, CRC(268a8d8b) SHA1(7a4236b2bc9a5cd4c80c63ca1a193e03becfcb4c) )
ROM_END
-CONS( 1982, tb303, 0, 0, tb303, tb303, driver_device, 0, "Roland", "TB-303", GAME_NOT_WORKING | GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
+CONS( 1982, tb303, 0, 0, tb303, tb303, driver_device, 0, "Roland", "TB-303", MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/tbowl.c b/src/mame/drivers/tbowl.c
index 252944a9d36..2f8a08eb6c6 100644
--- a/src/mame/drivers/tbowl.c
+++ b/src/mame/drivers/tbowl.c
@@ -704,6 +704,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)", GAME_SUPPORTS_SAVE )
-GAME( 1987, tbowlp, tbowl, tbowl, tbowl, driver_device, 0, ROT0, "Tecmo", "Tecmo Bowl (World, prototype?)", GAME_SUPPORTS_SAVE ) // or early version, handwritten labels
-GAME( 1987, tbowlj, tbowl, tbowl, tbowlj, driver_device, 0, ROT0, "Tecmo", "Tecmo Bowl (Japan)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/tcl.c b/src/mame/drivers/tcl.c
index 48a5b93c25f..d46c084de8f 100644
--- a/src/mame/drivers/tcl.c
+++ b/src/mame/drivers/tcl.c
@@ -198,4 +198,4 @@ DRIVER_INIT_MEMBER(tcl_state,tcl)
}
}
-GAME( 1995, tcl, 0, tcl, tcl, tcl_state, tcl, ROT0, "Uniwang", "Taiwan Chess Legend", GAME_NOT_WORKING )
+GAME( 1995, tcl, 0, tcl, tcl, tcl_state, tcl, ROT0, "Uniwang", "Taiwan Chess Legend", MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/tdv2324.c b/src/mame/drivers/tdv2324.c
index 2597c11dd85..62eafe4951a 100644
--- a/src/mess/drivers/tdv2324.c
+++ b/src/mame/drivers/tdv2324.c
@@ -346,4 +346,4 @@ ROM_END
//**************************************************************************
// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS
-COMP( 1983, tdv2324, 0, 0, tdv2324, tdv2324, driver_device, 0, "Tandberg", "TDV 2324", GAME_NOT_WORKING|GAME_NO_SOUND)
+COMP( 1983, tdv2324, 0, 0, tdv2324, tdv2324, driver_device, 0, "Tandberg", "TDV 2324", MACHINE_NOT_WORKING|MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/tec1.c b/src/mame/drivers/tec1.c
index bfd701676f9..bfd701676f9 100644
--- a/src/mess/drivers/tec1.c
+++ b/src/mame/drivers/tec1.c
diff --git a/src/mame/drivers/techno.c b/src/mame/drivers/techno.c
index bee745584e2..c862fb96d02 100644
--- a/src/mame/drivers/techno.c
+++ b/src/mame/drivers/techno.c
@@ -265,4 +265,4 @@ ROM_START(xforce)
// 5 x 27256 roms are undumped
ROM_END
-GAME(1987, xforce, 0, techno, techno, driver_device, 0, ROT0, "Tecnoplay", "X Force", GAME_IS_SKELETON_MECHANICAL)
+GAME(1987, xforce, 0, techno, techno, driver_device, 0, ROT0, "Tecnoplay", "X Force", MACHINE_IS_SKELETON_MECHANICAL)
diff --git a/src/mame/drivers/tecmo.c b/src/mame/drivers/tecmo.c
index f4fb5eb02dd..c5ad0dcde06 100644
--- a/src/mame/drivers/tecmo.c
+++ b/src/mame/drivers/tecmo.c
@@ -1100,11 +1100,11 @@ DRIVER_INIT_MEMBER(tecmo_state,backfirt)
-GAME( 1986, rygar, 0, rygar, rygar, tecmo_state, rygar, ROT0, "Tecmo", "Rygar (US set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1986, rygar2, rygar, rygar, rygar, tecmo_state, rygar, ROT0, "Tecmo", "Rygar (US set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1986, rygar3, rygar, rygar, rygar, tecmo_state, rygar, ROT0, "Tecmo", "Rygar (US set 3 Old Version)", GAME_SUPPORTS_SAVE )
-GAME( 1986, rygarj, rygar, rygar, rygar, tecmo_state, rygar, ROT0, "Tecmo", "Argus no Senshi (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1987, gemini, 0, gemini, gemini, tecmo_state, gemini, ROT90, "Tecmo", "Gemini Wing (Japan)", GAME_SUPPORTS_SAVE ) /* Japan regional warning screen */
-GAME( 1988, silkworm, 0, silkworm, silkworm, tecmo_state, silkworm, ROT0, "Tecmo", "Silk Worm (World)", GAME_SUPPORTS_SAVE ) /* No regional "Warning, if you are playing ..." screen */
-GAME( 1988, silkwormj, silkworm, silkworm, silkworm, tecmo_state, silkworm, ROT0, "Tecmo", "Silk Worm (Japan)", GAME_SUPPORTS_SAVE ) /* Japan regional warning screen */
-GAME( 1988, backfirt, 0, backfirt, backfirt, tecmo_state, backfirt, ROT0, "Tecmo", "Back Fire (Tecmo, bootleg)", GAME_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( 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.c b/src/mame/drivers/tecmo16.c
index 0d3f78accdd..9ef5e52641b 100644
--- a/src/mame/drivers/tecmo16.c
+++ b/src/mame/drivers/tecmo16.c
@@ -631,7 +631,7 @@ ROM_END
/******************************************************************************/
-GAME( 1992, fstarfrc, 0, fstarfrc, fstarfrc, driver_device, 0, ROT90, "Tecmo", "Final Star Force (US)", GAME_SUPPORTS_SAVE )
-GAME( 1992, fstarfrcj, fstarfrc, fstarfrc, fstarfrc, driver_device, 0, ROT90, "Tecmo", "Final Star Force (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1992, riot, 0, riot, riot, driver_device, 0, ROT0, "NMK", "Riot", GAME_SUPPORTS_SAVE )
-GAME( 1995, ginkun, 0, ginkun, ginkun, driver_device, 0, ROT0, "Tecmo", "Ganbare Ginkun", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/tecmosys.c b/src/mame/drivers/tecmosys.c
index 5523017fe33..063dfa796c9 100644
--- a/src/mame/drivers/tecmosys.c
+++ b/src/mame/drivers/tecmosys.c
@@ -666,6 +666,6 @@ DRIVER_INIT_MEMBER(tecmosys_state,tkdensha)
prot_init(2);
}
-GAME( 1995, deroon, 0, deroon, deroon, tecmosys_state, deroon, ROT0, "Tecmo", "Deroon DeroDero", GAME_SUPPORTS_SAVE )
-GAME( 1996, tkdensho, 0, deroon, deroon, tecmosys_state, tkdensho, ROT0, "Tecmo", "Toukidenshou - Angel Eyes (VER. 960614)", GAME_SUPPORTS_SAVE )
-GAME( 1996, tkdenshoa, tkdensho, deroon, deroon, tecmosys_state, tkdensha, ROT0, "Tecmo", "Toukidenshou - Angel Eyes (VER. 960427)", GAME_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/mess/drivers/tecnbras.c b/src/mame/drivers/tecnbras.c
index bce720d7a98..5e1b7870e38 100644
--- a/src/mess/drivers/tecnbras.c
+++ b/src/mame/drivers/tecnbras.c
@@ -130,4 +130,4 @@ ROM_START( tecnbras )
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)", GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND)
+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.c b/src/mame/drivers/tehkanwc.c
index f478f24f02c..ca761fcd478 100644
--- a/src/mame/drivers/tehkanwc.c
+++ b/src/mame/drivers/tehkanwc.c
@@ -892,8 +892,8 @@ ROM_END
-GAME( 1985, tehkanwc, 0, tehkanwc, tehkanwc, driver_device, 0, ROT0, "Tehkan", "Tehkan World Cup (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1985, tehkanwcb, tehkanwc, tehkanwc, tehkanwc, driver_device, 0, ROT0, "Tehkan", "Tehkan World Cup (set 2, bootleg?)", GAME_SUPPORTS_SAVE )
-GAME( 1985, tehkanwcc, tehkanwc, tehkanwc, tehkanwc, driver_device, 0, ROT0, "bootleg", "Tehkan World Cup (set 3, bootleg)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // aka 'World Cup 85', different inputs?
-GAMEL(1985, gridiron, 0, tehkanwc, gridiron, driver_device, 0, ROT0, "Tehkan", "Gridiron Fight", GAME_SUPPORTS_SAVE, layout_gridiron )
-GAME( 1986, teedoff, 0, tehkanwc, teedoff, tehkanwc_state, teedoff, ROT90, "Tecmo", "Tee'd Off (Japan)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/tek405x.c b/src/mame/drivers/tek405x.c
index 9c3e1c09523..767d5399d8d 100644
--- a/src/mess/drivers/tek405x.c
+++ b/src/mame/drivers/tek405x.c
@@ -1247,6 +1247,6 @@ ROM_END
//**************************************************************************
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 1975, tek4051, 0, 0, tek4051, tek4051, driver_device, 0, "Tektronix", "Tektronix 4051", GAME_NOT_WORKING )
-COMP( 1978, tek4052a, tek4051, 0, tek4052, tek4051, driver_device, 0, "Tektronix", "Tektronix 4052A", GAME_NOT_WORKING )
-//COMP( 1979, tek4054, tek4051, 0, tek4054, tek4054, driver_device, 0, "Tektronix", "Tektronix 4054", GAME_NOT_WORKING )
+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 )
diff --git a/src/mess/drivers/tek410x.c b/src/mame/drivers/tek410x.c
index 75a18d5f1f6..df28dd8d8e7 100644
--- a/src/mess/drivers/tek410x.c
+++ b/src/mame/drivers/tek410x.c
@@ -144,5 +144,5 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND )
-COMP( 1983, tek4109a, tek4107a, 0, tek4109a, tek4107a, driver_device, 0, "Tektronix", "Tektronix 4109A", GAME_NOT_WORKING | GAME_NO_SOUND )
+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 )
diff --git a/src/mame/drivers/tempest.c b/src/mame/drivers/tempest.c
index 0e00a004672..507d01a6e0b 100644
--- a/src/mame/drivers/tempest.c
+++ b/src/mame/drivers/tempest.c
@@ -857,9 +857,9 @@ ROM_END
*
*************************************/
-GAME( 1980, tempest, 0, tempest, tempest, driver_device, 0, ROT270, "Atari", "Tempest (rev 3, Revised Hardware)", GAME_SUPPORTS_SAVE )
-GAME( 1980, tempest3, tempest, tempest, tempest, driver_device, 0, ROT270, "Atari", "Tempest (rev 3)", GAME_SUPPORTS_SAVE )
-GAME( 1980, tempest2, tempest, tempest, tempest, driver_device, 0, ROT270, "Atari", "Tempest (rev 2)", GAME_SUPPORTS_SAVE )
-GAME( 1980, tempest1, tempest, tempest, tempest, driver_device, 0, ROT270, "Atari", "Tempest (rev 1)", GAME_SUPPORTS_SAVE )
-GAME( 1980, tempest1r, tempest, tempest, tempest, driver_device, 0, ROT270, "Atari", "Tempest (rev 1, Revised Hardware)", GAME_SUPPORTS_SAVE )
-GAME( 1980, temptube, tempest, tempest, tempest, driver_device, 0, ROT270, "hack (Duncan Brown)", "Tempest Tubes", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/terak.c b/src/mame/drivers/terak.c
index 0866eb8de08..7ffa92684b6 100644
--- a/src/mess/drivers/terak.c
+++ b/src/mame/drivers/terak.c
@@ -117,4 +117,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( ????, terak, 0, 0, terak, terak, driver_device, 0, "Terak", "Terak 8510A", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/terracre.c b/src/mame/drivers/terracre.c
index 76fbefa2e0f..dab4575a2b8 100644
--- a/src/mame/drivers/terracre.c
+++ b/src/mame/drivers/terracre.c
@@ -953,12 +953,12 @@ DRIVER_INIT_MEMBER(terracre_state,horekid)
}
/* YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR, COMPANY, FULLNAME, FLAGS */
-GAME( 1985, terracre, 0, ym3526, terracre, driver_device, 0, ROT270, "Nichibutsu", "Terra Cresta (YM3526 set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1985, terracreo,terracre, ym3526, terracre, driver_device, 0, ROT270, "Nichibutsu", "Terra Cresta (YM3526 set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1985, terracrea,terracre, ym3526, terracre, driver_device, 0, ROT270, "Nichibutsu", "Terra Cresta (YM3526 set 3)", GAME_SUPPORTS_SAVE )
-GAME( 1985, terracren,terracre, ym2203, terracre, driver_device, 0, ROT270, "Nichibutsu", "Terra Cresta (YM2203)", GAME_SUPPORTS_SAVE )
-GAME( 1986, amazon, 0, amazon, amazon, terracre_state, amazon, ROT270, "Nichibutsu", "Soldier Girl Amazon", GAME_SUPPORTS_SAVE )
-GAME( 1986, amatelas, amazon, amazon, amazon, terracre_state, amatelas, ROT270, "Nichibutsu", "Sei Senshi Amatelass", GAME_SUPPORTS_SAVE )
-GAME( 1987, horekid, 0, amazon, horekid, terracre_state, horekid, ROT270, "Nichibutsu", "Kid no Hore Hore Daisakusen", GAME_SUPPORTS_SAVE )
-GAME( 1987, horekidb, horekid, amazon, horekid, terracre_state, horekid, ROT270, "bootleg", "Kid no Hore Hore Daisakusen (bootleg)", GAME_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))", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/test_t400.c b/src/mame/drivers/test_t400.c
index e52f28bc1ad..b577d3c77a4 100644
--- a/src/mess/drivers/test_t400.c
+++ b/src/mame/drivers/test_t400.c
@@ -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", GAME_NO_SOUND_HW )
-COMP( 2008, test420, test410, 0, test_t420, 0, driver_device, 0, "T400 uController project", "T420 test suite", GAME_NO_SOUND_HW )
+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 )
diff --git a/src/mame/drivers/tetrisp2.c b/src/mame/drivers/tetrisp2.c
index 079e5bb0a43..8982a7657f5 100644
--- a/src/mame/drivers/tetrisp2.c
+++ b/src/mame/drivers/tetrisp2.c
@@ -2269,23 +2269,23 @@ ROM_END
***************************************************************************/
-GAME( 1997, tetrisp2, 0, tetrisp2, tetrisp2, driver_device, 0, ROT0, "Jaleco / The Tetris Company", "Tetris Plus 2 (World)", GAME_SUPPORTS_SAVE )
-GAME( 1997, tetrisp2j, tetrisp2, tetrisp2, tetrisp2j, driver_device,0, ROT0, "Jaleco / The Tetris Company", "Tetris Plus 2 (Japan, V2.2)", GAME_SUPPORTS_SAVE )
-GAME( 1997, tetrisp2ja,tetrisp2, tetrisp2, tetrisp2j, driver_device,0, ROT0, "Jaleco / The Tetris Company", "Tetris Plus 2 (Japan, V2.1)", GAME_SUPPORTS_SAVE )
+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, nndmseal, 0, nndmseal, nndmseal, tetrisp2_state, rockn, ROT0 | ORIENTATION_FLIP_X, "I'Max / Jaleco", "Nandemo Seal Iinkai", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
-GAME( 1997, nndmseala,nndmseal, nndmseal, nndmseal, tetrisp2_state, rockn, ROT0 | ORIENTATION_FLIP_X, "I'Max / Jaleco", "Nandemo Seal Iinkai (Astro Boy ver.)", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
+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)", GAME_SUPPORTS_SAVE )
-GAME( 1999, rockna, rockn, rockn, rockn, tetrisp2_state, rockn1, ROT270, "Jaleco", "Rock'n Tread (Japan, alternate)", GAME_SUPPORTS_SAVE )
-GAME( 1999, rockn2, 0, rockn2, rockn, tetrisp2_state, rockn2, ROT270, "Jaleco", "Rock'n Tread 2 (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1999, rocknms, 0, rocknms, rocknms, tetrisp2_state, rocknms, ROT0, "Jaleco", "Rock'n MegaSession (Japan)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS )
-GAME( 1999, rockn3, 0, rockn2, rockn, tetrisp2_state, rockn3, ROT270, "Jaleco", "Rock'n 3 (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 2000, rockn4, 0, rockn2, rockn, tetrisp2_state, rockn3, ROT270, "Jaleco / PCCWJ", "Rock'n 4 (Japan, prototype)", GAME_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 )
// Undumped:
// - Stepping Stage <- the original Game
// - Stepping Stage 2 Supreme
// Dumped (partly):
-GAME( 1999, stepstag, 0, stepstag, stepstag, stepstag_state, stepstag, ROT0, "Jaleco", "Stepping Stage Special", GAME_NO_SOUND| GAME_NOT_WORKING)
-GAME( 1999, step3, 0, stepstag, stepstag, stepstag_state, stepstag, ROT0, "Jaleco", "Stepping 3 Superior", GAME_NO_SOUND| GAME_NOT_WORKING)
+GAME( 1999, stepstag, 0, stepstag, stepstag, stepstag_state, stepstag, ROT0, "Jaleco", "Stepping Stage Special", MACHINE_NO_SOUND| MACHINE_NOT_WORKING)
+GAME( 1999, step3, 0, stepstag, stepstag, stepstag_state, stepstag, ROT0, "Jaleco", "Stepping 3 Superior", MACHINE_NO_SOUND| MACHINE_NOT_WORKING)
diff --git a/src/mame/drivers/tgtpanic.c b/src/mame/drivers/tgtpanic.c
index 96fb1712799..76bef4167b3 100644
--- a/src/mame/drivers/tgtpanic.c
+++ b/src/mame/drivers/tgtpanic.c
@@ -181,4 +181,4 @@ ROM_END
*
*************************************/
-GAME( 1996, tgtpanic, 0, tgtpanic, tgtpanic, driver_device, 0, ROT0, "Konami", "Target Panic", GAME_NO_SOUND_HW | GAME_SUPPORTS_SAVE )
+GAME( 1996, tgtpanic, 0, tgtpanic, tgtpanic, driver_device, 0, ROT0, "Konami", "Target Panic", MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/thayers.c b/src/mame/drivers/thayers.c
index 5d6fbda845d..009bcd4e436 100644
--- a/src/mame/drivers/thayers.c
+++ b/src/mame/drivers/thayers.c
@@ -835,5 +835,5 @@ 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)", GAME_NOT_WORKING | GAME_NO_SOUND, layout_dlair)
-GAMEL( 1984, thayersa, thayers, thayers, thayers, driver_device, 0, ROT0, "RDI Video Systems", "Thayer's Quest (set 2)", GAME_NOT_WORKING | GAME_NO_SOUND, layout_dlair)
+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_dlair)
+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_dlair)
diff --git a/src/mame/drivers/thedealr.c b/src/mame/drivers/thedealr.c
index c67f752bdf6..827a3af6d52 100644
--- a/src/mame/drivers/thedealr.c
+++ b/src/mame/drivers/thedealr.c
@@ -4,13 +4,13 @@
The Dealer (Visco Games)
- Driver by Luca Elia
- This game runs on Seta Hardware
+ Driver by Luca Elia
+ This game runs on Seta Hardware
P0-040A PCB:
R65C02P2 x 2
- X0-009 (Intel 8742 MCU?)
+ X0-009 (Intel 8742 MCU)
X1-001
X1-002
@@ -94,7 +94,7 @@ UINT32 thedealr_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap
{
bitmap.fill(0x1f0, cliprect);
- m_seta001->set_bg_yoffsets( 0x11+1, -0x10 ); // + is up (down with flip)
+ m_seta001->set_bg_yoffsets( 0x11+1, -0x10 ); // + is up (down with flip)
m_seta001->set_fg_yoffsets( -0x12+1, -0x01 );
m_seta001->draw_sprites(screen, bitmap, cliprect, 0x1000, 1);
@@ -110,7 +110,7 @@ void thedealr_state::screen_eof(screen_device &screen, bool state)
/***************************************************************************
- IOX (i8742 MCU?) Simulation
+ IOX (i8742 MCU) Simulation
***************************************************************************/
@@ -120,11 +120,11 @@ void thedealr_state::screen_eof(screen_device &screen, bool state)
void thedealr_state::iox_reset()
{
- m_iox_status = 0x00;
- m_iox_ret = 0x00;
- m_iox_cmd = 0xff;
- m_iox_leds = 0x00;
- m_iox_coins = 0x00;
+ m_iox_status = 0x00;
+ m_iox_ret = 0x00;
+ m_iox_cmd = 0xff;
+ m_iox_leds = 0x00;
+ m_iox_coins = 0x00;
}
MACHINE_RESET_MEMBER(thedealr_state,thedealr)
@@ -150,19 +150,19 @@ WRITE8_MEMBER(thedealr_state::iox_w)
switch (m_iox_cmd)
{
- case 0x20: // leds
+ case 0x20: // leds
m_iox_leds = data;
- set_led_status(machine(), 0, data & 0x01); // bet
- set_led_status(machine(), 1, data & 0x02); // deal
+ set_led_status(machine(), 0, data & 0x01); // bet
+ set_led_status(machine(), 1, data & 0x02); // deal
set_led_status(machine(), 2, data & 0x04);
set_led_status(machine(), 3, data & 0x08);
- set_led_status(machine(), 4, data & 0x10); // hold 1-5?
+ set_led_status(machine(), 4, data & 0x10); // hold 1-5?
set_led_status(machine(), 5, data & 0x20);
set_led_status(machine(), 6, data & 0x40);
set_led_status(machine(), 7, data & 0x80);
break;
- case 0x40: // coin counters
+ case 0x40: // coin counters
m_iox_coins = data;
coin_counter_w(machine(), 0, (~data) & 0x02); // coin1 or service coin
coin_counter_w(machine(), 1, (~data) & 0x04); // coupon
@@ -177,7 +177,7 @@ WRITE8_MEMBER(thedealr_state::iox_w)
break;
}
-// popmessage("LED: %02X COIN: %02X", m_iox_leds, m_iox_coins);
+// popmessage("LED: %02X COIN: %02X", m_iox_leds, m_iox_coins);
}
else
{
@@ -186,7 +186,7 @@ WRITE8_MEMBER(thedealr_state::iox_w)
switch (m_iox_cmd)
{
- case 0x01: // inputs?
+ case 0x01: // inputs?
{
UINT16 buttons = ioport("IOX")->read();
m_iox_ret = 0;
@@ -202,30 +202,30 @@ WRITE8_MEMBER(thedealr_state::iox_w)
break;
}
-// case 0x04: // ? at boot
+// case 0x04: // ? at boot
- case 0x08: // return iox version
+ case 0x08: // return iox version
m_iox_ret = 0x54;
m_iox_status |= IOX_OUT_FULL;
break;
- case 0x20: // leds
+ case 0x20: // leds
m_iox_status |= IOX_WAITDATA;
break;
- case 0x40: // coin counters
+ case 0x40: // coin counters
m_iox_status |= IOX_WAITDATA;
break;
- case 0x80: // store param?
+ case 0x80: // store param?
m_iox_status |= IOX_WAITDATA;
break;
- case 0x81: // store param?
+ case 0x81: // store param?
m_iox_status |= IOX_WAITDATA;
break;
- case 0xff: // reset
+ case 0xff: // reset
iox_reset();
break;
@@ -262,18 +262,18 @@ WRITE8_MEMBER(thedealr_state::unk_w)
// bit 2 - ? 0 during game
// bit 3 - ? 1 during game
// bit 7 - ? 0 during game
-// popmessage("UNK %02x", data);
+// popmessage("UNK %02x", data);
}
static ADDRESS_MAP_START( thedealr, AS_PROGRAM, 8, thedealr_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram")
- AM_RANGE(0x2000, 0x2000) AM_RAM // w ff at boot (after clearing commram)
+ AM_RANGE(0x2000, 0x2000) AM_RAM // w ff at boot (after clearing commram)
- AM_RANGE(0x2400, 0x2400) AM_READ(irq_ack_r) // r = irq ack.
- AM_RANGE(0x2400, 0x2400) AM_WRITE(unk_w) // w = ?
+ AM_RANGE(0x2400, 0x2400) AM_READ(irq_ack_r) // r = irq ack.
+ AM_RANGE(0x2400, 0x2400) AM_WRITE(unk_w) // w = ?
- AM_RANGE(0x2800, 0x2800) AM_READ_PORT("COINS") AM_WRITENOP // rw
+ AM_RANGE(0x2800, 0x2800) AM_READ_PORT("COINS") AM_WRITENOP // rw
AM_RANGE(0x2801, 0x2801) AM_READ_PORT("DSW4")
AM_RANGE(0x2c00, 0x2c00) AM_READ_PORT("DSW3")
@@ -281,8 +281,8 @@ static ADDRESS_MAP_START( thedealr, AS_PROGRAM, 8, thedealr_state )
AM_RANGE(0x3400, 0x3400) AM_READWRITE(iox_r, iox_w)
AM_RANGE(0x3401, 0x3401) AM_READ(iox_status_r)
- AM_RANGE(0x3000, 0x3000) AM_RAM // rw, comm in test mode
- AM_RANGE(0x3001, 0x3001) AM_RAM // rw, ""
+ AM_RANGE(0x3000, 0x3000) AM_RAM // rw, comm in test mode
+ AM_RANGE(0x3001, 0x3001) AM_RAM // rw, ""
AM_RANGE(0x3800, 0x3bff) AM_RAM AM_SHARE("commram")
@@ -375,7 +375,7 @@ static INPUT_PORTS_START( thedealr )
Switches 7 & 8 control the payout as follows:
Off/Off Off/On On/Off On/On Notes
- ---------------------------------------------------------------------------------------------
+ ---------------------------------------------------------------------------------------------
Jackpot MB 5000 5000 5000 2000 Ryl Flush bonus at Max Bet
Jackpot 2500 2500 2500 1000 Ryl Flush bonus at 5 coins + 500 (or 200) per coin up to Max Bet
Mini JP 1500 1500 1000 500 Str Flush bonus at Max Bet
@@ -444,7 +444,7 @@ Fever Mode:
3 of a Kind winning hand Jacks or higher enters Fever Mode
You start with a pair of your 3 of a Kind cards & you draw 3 cards each hand.
Jacks through Kings get 5 Fever Mode Draws
- Aces get 15 Fever Mode Draws
+ Aces get 15 Fever Mode Draws
*/
PORT_DIPNAME( 0x20, 0x20, "Fever Mode" ) PORT_DIPLOCATION("SW3:6")
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
@@ -455,12 +455,12 @@ Fever Mode:
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_START("DSW4")
- PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW4:7" ) // X in service mode
- PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW4:8" ) // ""
+ PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW4:7" ) // X in service mode
+ PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW4:8" ) // ""
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION("SW4:1")
PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
- PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW4:2" ) // "Excess switch time" error
+ PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW4:2" ) // "Excess switch time" error
PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW4:3" )
PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW4:4" )
PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW4:5" )
@@ -522,11 +522,11 @@ TIMER_DEVICE_CALLBACK_MEMBER(thedealr_state::thedealr_interrupt)
static MACHINE_CONFIG_START( thedealr, thedealr_state )
// basic machine hardware
- MCFG_CPU_ADD("maincpu", R65C02, XTAL_16MHz/8) // 2 MHz?
+ MCFG_CPU_ADD("maincpu", R65C02, XTAL_16MHz/8) // 2 MHz?
MCFG_CPU_PROGRAM_MAP(thedealr)
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", thedealr_state, thedealr_interrupt, "screen", 0, 1)
- MCFG_CPU_ADD("subcpu", R65C02, XTAL_16MHz/8) // 2 MHz?
+ MCFG_CPU_ADD("subcpu", R65C02, XTAL_16MHz/8) // 2 MHz?
MCFG_CPU_PROGRAM_MAP(thedealr_sub)
MCFG_CPU_VBLANK_INT_DRIVER("screen", thedealr_state, nmi_line_pulse)
@@ -555,7 +555,7 @@ static MACHINE_CONFIG_START( thedealr, thedealr_state )
// sound hardware
MCFG_SPEAKER_STANDARD_MONO("mono")
- MCFG_SOUND_ADD("aysnd", YM2149, XTAL_16MHz/8) // 2 MHz?
+ MCFG_SOUND_ADD("aysnd", YM2149, XTAL_16MHz/8) // 2 MHz?
MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW2"))
MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW1"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
@@ -574,6 +574,10 @@ ROM_START( thedealr )
ROM_REGION( 0x10000, "subcpu", 0 )
ROM_LOAD( "xb3_002", 0x00000, 0x10000, CRC(53a37fa4) SHA1(2adfea2dd08f298cda885bc72606d03f8af886a0) )
+ // To do: hook up
+ ROM_REGION( 0x0800, "iocpu", 0 )
+ ROM_LOAD( "x0-009", 0x0000, 0x0800, CRC(e8b86d5a) SHA1(ad12e8f4411c30cd691792c6b0b3429db786d8b5) )
+
ROM_REGION( 0x100000, "gfx1", 0 )
ROM_LOAD( "xb0-002-w45.u42", 0x00000, 0x80000, CRC(41ec6a57) SHA1(d3f0508d5f4054fd2b0ee5227325a95fd1272aad) )
ROM_LOAD( "xb0-001-w44.u41", 0x80000, 0x80000, CRC(bdaca555) SHA1(5ae1dc1514993fd804a101182735d5fb6815f720) )
@@ -583,4 +587,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)", GAME_SUPPORTS_SAVE )
+GAME( 1988?, thedealr, 0, thedealr, thedealr, driver_device, 0, ROT0, "Visco Games", "The Dealer (Visco)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/thedeep.c b/src/mame/drivers/thedeep.c
index 98d1e8bbbdb..e999027842b 100644
--- a/src/mame/drivers/thedeep.c
+++ b/src/mame/drivers/thedeep.c
@@ -543,5 +543,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)", GAME_SUPPORTS_SAVE )
-GAME( 1988, rundeep, thedeep,thedeep, thedeep, driver_device, 0, ROT270, "bootleg (Cream)", "Run Deep", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/thepit.c b/src/mame/drivers/thepit.c
index 3c97b080057..d1416cbd947 100644
--- a/src/mame/drivers/thepit.c
+++ b/src/mame/drivers/thepit.c
@@ -1259,32 +1259,32 @@ DRIVER_INIT_MEMBER(thepit_state,rtriv)
}
-GAME( 1981, roundup, 0, thepit, roundup, driver_device, 0, ROT90, "Taito Corporation (Amenip/Centuri license)", "Round-Up", GAME_SUPPORTS_SAVE )
-GAME( 1981, fitter, roundup, thepit, fitter, driver_device, 0, ROT90, "Taito Corporation", "Fitter", GAME_SUPPORTS_SAVE )
-GAME( 1981, fitterbl, roundup, thepit, fitter, driver_device, 0, ROT90, "bootleg", "Fitter (bootleg of Round-Up)", GAME_SUPPORTS_SAVE )
-GAME( 1981, ttfitter, roundup, thepit, fitter, driver_device, 0, ROT90, "Taito Corporation", "T.T. Fitter (Japan)", GAME_SUPPORTS_SAVE )
+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( 1982, thepit, 0, thepit, thepit, driver_device, 0, ROT90, "Zilec Electronics", "The Pit", GAME_SUPPORTS_SAVE ) // AW == Andy Walker
-GAME( 1982, thepitu1, thepit, thepit, thepit, driver_device, 0, ROT90, "Zilec Electronics (Centuri license)", "The Pit (US set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1982, thepitu2, thepit, thepit, thepit, driver_device, 0, ROT90, "Zilec Electronics (Centuri license)", "The Pit (US set 2)", GAME_SUPPORTS_SAVE ) // Bally PCB
-GAME( 1982, thepitj, thepit, thepit, thepit, driver_device, 0, ROT90, "Zilec Electronics (Taito license)", "The Pit (Japan)", GAME_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, dockman, 0, intrepid, dockman, driver_device, 0, ROT90, "Taito Corporation", "Dock Man", GAME_SUPPORTS_SAVE )
-GAME( 1982, portman, dockman, intrepid, dockman, driver_device, 0, ROT90, "Taito Corporation (Nova Games Ltd. license)", "Port Man", GAME_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, suprmous, 0, suprmous, suprmous, driver_device, 0, ROT90, "Taito Corporation", "Super Mouse", GAME_SUPPORTS_SAVE )
-GAME( 1982, funnymou, suprmous, suprmous, suprmous, driver_device, 0, ROT90, "Taito Corporation (Chuo Co. Ltd license)", "Funny Mouse (Japan)", GAME_SUPPORTS_SAVE ) // Taito PCB
+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, machomou, 0, suprmous, suprmous, driver_device, 0, ROT90, "Techstar", "Macho Mouse", GAME_SUPPORTS_SAVE )
+GAME( 1982, machomou, 0, suprmous, suprmous, driver_device, 0, ROT90, "Techstar", "Macho Mouse", MACHINE_SUPPORTS_SAVE )
-GAME( 1982, desertdn, 0, desertdn, desertdn, driver_device, 0, ROT0, "Video Optics", "Desert Dan", GAME_SUPPORTS_SAVE )
+GAME( 1982, desertdn, 0, desertdn, desertdn, driver_device, 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)", GAME_SUPPORTS_SAVE )
-GAME( 1983, intrepid2,intrepid, intrepid, intrepid, driver_device, 0, ROT90, "Nova Games Ltd.", "Intrepid (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1984, intrepidb,intrepid, intrepid, intrepid, driver_device, 0, ROT90, "bootleg (Elsys)", "Intrepid (Elsys bootleg, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1984, intrepidb3,intrepid,intrepid, intrepid, driver_device, 0, ROT90, "bootleg (Elsys)", "Intrepid (Elsys bootleg, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1984, intrepidb2,intrepid,intrepid, intrepid, driver_device, 0, ROT90, "bootleg (Loris)", "Intrepid (Loris bootleg)", GAME_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( 1984, zaryavos, 0, intrepid, intrepid, driver_device, 0, ROT90, "Nova Games of Canada", "Zarya Vostoka", GAME_NOT_WORKING | GAME_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( 198?, rtriv, 0, intrepid, rtriv, thepit_state, rtriv, ROT90, "Romar", "Romar Triv", GAME_WRONG_COLORS | GAME_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/mess/drivers/thomson.c b/src/mame/drivers/thomson.c
index 663dbaf3140..33112623a19 100644
--- a/src/mess/drivers/thomson.c
+++ b/src/mame/drivers/thomson.c
@@ -304,8 +304,7 @@ static ADDRESS_MAP_START ( to7, AS_PROGRAM, 8, thomson_state )
AM_RANGE ( 0x0000, 0x3fff ) AM_READ_BANK ( THOM_CART_BANK ) AM_WRITE(to7_cartridge_w ) /* 4 * 16 KB */
AM_RANGE ( 0x4000, 0x5fff ) AM_READ_BANK ( THOM_VRAM_BANK ) AM_WRITE(to7_vram_w )
AM_RANGE ( 0x6000, 0x7fff ) AM_RAMBANK ( THOM_BASE_BANK ) /* 1 * 8 KB */
- AM_RANGE ( 0x8000, 0xbfff ) AM_NOP /* 16 KB (for extension) */
- AM_RANGE ( 0xc000, 0xdfff ) AM_NOP /* 8 KB (for extension) */
+ AM_RANGE ( 0x8000, 0xdfff ) AM_RAMBANK ( THOM_RAM_BANK ) /* 16 or 24 KB (for extension) */
AM_RANGE ( 0xe000, 0xe7bf ) AM_ROMBANK ( THOM_FLOP_BANK )
AM_RANGE ( 0xe7c0, 0xe7c7 ) AM_DEVREADWRITE("mc6846", mc6846_device, read, write)
AM_RANGE ( 0xe7c8, 0xe7cb ) AM_DEVREADWRITE( "pia_0", pia6821_device, read_alt, write_alt )
@@ -480,10 +479,10 @@ INPUT_PORTS_END
static INPUT_PORTS_START ( to7_keyboard )
- PORT_START ( "keyboard_0" )
+ PORT_START ( "keyboard.0" )
KEY ( 0, "Shift", LSHIFT ) PORT_CODE ( KEYCODE_RSHIFT ) PORT_CHAR(UCHAR_SHIFT_1)
PORT_BIT ( 0xfe, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START ( "keyboard_1" )
+ PORT_START ( "keyboard.1" )
KEY ( 0, "W", W ) PORT_CHAR('W')
KEY ( 1, UTF8_UP, UP ) PORT_CHAR(UCHAR_MAMEKEY(UP))
KEY ( 2, "C \303\247", C ) PORT_CHAR('C')
@@ -492,7 +491,7 @@ static INPUT_PORTS_START ( to7_keyboard )
KEY ( 5, "Control", LCONTROL ) PORT_CHAR(UCHAR_MAMEKEY(LCONTROL))
KEY ( 6, "Accent", END ) PORT_CHAR(UCHAR_MAMEKEY(END))
KEY ( 7, "Stop", TAB ) PORT_CHAR(27)
- PORT_START ( "keyboard_2" )
+ PORT_START ( "keyboard.2" )
KEY ( 0, "X", X ) PORT_CHAR('X')
KEY ( 1, UTF8_LEFT, LEFT ) PORT_CHAR(UCHAR_MAMEKEY(LEFT))
KEY ( 2, "V", V ) PORT_CHAR('V')
@@ -501,7 +500,7 @@ static INPUT_PORTS_START ( to7_keyboard )
KEY ( 5, "A", A ) PORT_CHAR('A')
KEY ( 6, "+ ;", EQUALS ) PORT_CHAR('+') PORT_CHAR(';')
KEY ( 7, "1 !", 1 ) PORT_CHAR('1') PORT_CHAR('!')
- PORT_START ( "keyboard_3" )
+ PORT_START ( "keyboard.3" )
KEY ( 0, "Space Caps-Lock", SPACE ) PORT_CHAR(' ') PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK))
KEY ( 1, UTF8_DOWN, DOWN ) PORT_CHAR(UCHAR_MAMEKEY(DOWN))
KEY ( 2, "B", B ) PORT_CHAR('B')
@@ -510,7 +509,7 @@ static INPUT_PORTS_START ( to7_keyboard )
KEY ( 5, "Z \305\223", Z) PORT_CHAR('Z')
KEY ( 6, "- =", MINUS ) PORT_CHAR('-') PORT_CHAR('=')
KEY ( 7, "2 \" \302\250", 2 ) PORT_CHAR('2') PORT_CHAR('"')
- PORT_START ( "keyboard_4" )
+ PORT_START ( "keyboard.4" )
KEY ( 0, "@ \342\206\221", TILDE ) PORT_CHAR('@')
KEY ( 1, UTF8_RIGHT, RIGHT ) PORT_CHAR(UCHAR_MAMEKEY(RIGHT))
KEY ( 2, "M", M ) PORT_CHAR('M')
@@ -519,7 +518,7 @@ static INPUT_PORTS_START ( to7_keyboard )
KEY ( 5, "E", E ) PORT_CHAR('E')
KEY ( 6, "0 \140", 0 ) PORT_CHAR('0') PORT_CHAR( 0140 )
KEY ( 7, "3 #", 3 ) PORT_CHAR('3') PORT_CHAR('#')
- PORT_START ( "keyboard_5" )
+ PORT_START ( "keyboard.5" )
KEY ( 0, ". >", STOP ) PORT_CHAR('.') PORT_CHAR('>')
KEY ( 1, "Home", HOME ) PORT_CHAR(UCHAR_MAMEKEY(HOME))
KEY ( 2, "L", L ) PORT_CHAR('L')
@@ -528,7 +527,7 @@ static INPUT_PORTS_START ( to7_keyboard )
KEY ( 5, "R", R ) PORT_CHAR('R')
KEY ( 6, "9 )", 9 ) PORT_CHAR('9') PORT_CHAR(')')
KEY ( 7, "4 $", 4 ) PORT_CHAR('4') PORT_CHAR('$')
- PORT_START ( "keyboard_6" )
+ PORT_START ( "keyboard.6" )
KEY ( 0, ", <", COMMA ) PORT_CHAR(',') PORT_CHAR('<')
KEY ( 1, "Insert", INSERT ) PORT_CHAR(UCHAR_MAMEKEY(INSERT))
KEY ( 2, "K", K ) PORT_CHAR('K')
@@ -537,7 +536,7 @@ static INPUT_PORTS_START ( to7_keyboard )
KEY ( 5, "T", T ) PORT_CHAR('T')
KEY ( 6, "8 (", 8 ) PORT_CHAR('8') PORT_CHAR('(')
KEY ( 7, "5 %", 5 ) PORT_CHAR('5') PORT_CHAR('%')
- PORT_START ( "keyboard_7" )
+ PORT_START ( "keyboard.7" )
KEY ( 0, "N", N ) PORT_CHAR('N')
KEY ( 1, "Delete", DEL ) PORT_CHAR(8)
KEY ( 2, "J \305\222", J ) PORT_CHAR('J')
@@ -548,8 +547,8 @@ static INPUT_PORTS_START ( to7_keyboard )
KEY ( 7, "6 &", 6 ) PORT_CHAR('6') PORT_CHAR('&')
/* unused */
- PORT_START ( "keyboard_8" )
- PORT_START ( "keyboard_9" )
+ PORT_START ( "keyboard.8" )
+ PORT_START ( "keyboard.9" )
INPUT_PORTS_END
@@ -859,15 +858,15 @@ ROM_END
static INPUT_PORTS_START ( to770 )
PORT_INCLUDE ( to7 )
- PORT_MODIFY ( "keyboard_1" )
+ PORT_MODIFY ( "keyboard.1" )
KEY ( 2, "C \302\250 \303\247", C ) PORT_CHAR('C')
- PORT_MODIFY ( "keyboard_4" )
+ PORT_MODIFY ( "keyboard.4" )
KEY ( 6, "0 \140 \303\240", 0 ) PORT_CHAR('0') PORT_CHAR( 0140 )
- PORT_MODIFY ( "keyboard_5" )
+ PORT_MODIFY ( "keyboard.5" )
KEY ( 6, "9 ) \303\247", 9 ) PORT_CHAR('9') PORT_CHAR(')')
- PORT_MODIFY ( "keyboard_6" )
+ PORT_MODIFY ( "keyboard.6" )
KEY ( 6, "8 ( \303\271", 8 ) PORT_CHAR('8') PORT_CHAR('(')
- PORT_MODIFY ( "keyboard_7" )
+ PORT_MODIFY ( "keyboard.7" )
KEY ( 6, "7 ' \303\250 \302\264", 7 ) PORT_CHAR('7') PORT_CHAR('\'')
KEY ( 7, "6 & \303\251", 6 ) PORT_CHAR('6') PORT_CHAR('&')
@@ -877,26 +876,26 @@ INPUT_PORTS_END
static INPUT_PORTS_START ( to770a )
PORT_INCLUDE ( to770 )
- PORT_MODIFY ( "keyboard_1" )
+ PORT_MODIFY ( "keyboard.1" )
KEY ( 0, "Z", Z ) PORT_CHAR('Z')
- PORT_MODIFY ( "keyboard_2" )
+ PORT_MODIFY ( "keyboard.2" )
KEY ( 3, "A", A ) PORT_CHAR('A')
KEY ( 4, "/ ?", QUOTE ) PORT_CHAR('/') PORT_CHAR('?')
KEY ( 5, "Q", Q ) PORT_CHAR('Q')
- PORT_MODIFY ( "keyboard_3" )
+ PORT_MODIFY ( "keyboard.3" )
KEY ( 4, "* :", SLASH ) PORT_CHAR('*') PORT_CHAR(':')
KEY ( 5, "W", W) PORT_CHAR('W')
- PORT_MODIFY ( "keyboard_4" )
+ PORT_MODIFY ( "keyboard.4" )
KEY ( 0, ". >", STOP ) PORT_CHAR('.') PORT_CHAR('>')
KEY ( 2, "@ \342\206\221", TILDE ) PORT_CHAR('@') PORT_CHAR('^')
KEY ( 6, "0 \302\243 \302\260 \140", 0 ) PORT_CHAR('0') PORT_CHAR( 0140 )
- PORT_MODIFY ( "keyboard_5" )
+ PORT_MODIFY ( "keyboard.5" )
KEY ( 0, ", <", COMMA ) PORT_CHAR(',') PORT_CHAR('<')
KEY ( 6, "9 ) \303\261", 9 ) PORT_CHAR('9') PORT_CHAR(')')
- PORT_MODIFY ( "keyboard_6" )
+ PORT_MODIFY ( "keyboard.6" )
KEY ( 0, "M", M ) PORT_CHAR('M')
KEY ( 6, "8 ( \303\274", 8 ) PORT_CHAR('8') PORT_CHAR('(')
- PORT_MODIFY ( "keyboard_7" )
+ PORT_MODIFY ( "keyboard.7" )
KEY ( 6, "7 ' \303\266 \302\264", 7 ) PORT_CHAR('7') PORT_CHAR('\'')
KEY ( 7, "6 & \303\244", 6 ) PORT_CHAR('6') PORT_CHAR('&')
@@ -1062,7 +1061,7 @@ ROM_END
static INPUT_PORTS_START ( mo5 )
PORT_INCLUDE ( to770 )
- PORT_MODIFY ( "keyboard_0" )
+ PORT_MODIFY ( "keyboard.0" )
KEY ( 1, "BASIC", RCONTROL) PORT_CHAR(UCHAR_MAMEKEY(RCONTROL))
PORT_BIT ( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED )
@@ -1072,24 +1071,24 @@ INPUT_PORTS_END
static INPUT_PORTS_START ( mo5e )
PORT_INCLUDE ( mo5 )
- PORT_MODIFY ( "keyboard_1" )
+ PORT_MODIFY ( "keyboard.1" )
KEY ( 0, "Z", Z ) PORT_CHAR('Z')
- PORT_MODIFY ( "keyboard_2" )
+ PORT_MODIFY ( "keyboard.2" )
KEY ( 3, "A", A ) PORT_CHAR('A')
KEY ( 5, "Q", Q ) PORT_CHAR('Q')
- PORT_MODIFY ( "keyboard_3" )
+ PORT_MODIFY ( "keyboard.3" )
KEY ( 5, "W", W) PORT_CHAR('W')
- PORT_MODIFY ( "keyboard_4" )
+ PORT_MODIFY ( "keyboard.4" )
KEY ( 0, ". >", STOP ) PORT_CHAR('.') PORT_CHAR('>')
KEY ( 2, "@ \342\206\221", TILDE ) PORT_CHAR('@') PORT_CHAR('^')
KEY ( 6, "0 \302\243 \302\260 \140", 0 ) PORT_CHAR('0') PORT_CHAR( 0140 )
- PORT_MODIFY ( "keyboard_5" )
+ PORT_MODIFY ( "keyboard.5" )
KEY ( 0, ", <", COMMA ) PORT_CHAR(',') PORT_CHAR('<')
KEY ( 6, "9 ) \303\261", 9 ) PORT_CHAR('9') PORT_CHAR(')')
- PORT_MODIFY ( "keyboard_6" )
+ PORT_MODIFY ( "keyboard.6" )
KEY ( 0, "M", M ) PORT_CHAR('M')
KEY ( 6, "8 ( \303\274", 8 ) PORT_CHAR('8') PORT_CHAR('(')
- PORT_MODIFY ( "keyboard_7" )
+ PORT_MODIFY ( "keyboard.7" )
KEY ( 6, "7 ' \303\266 \302\264", 7 ) PORT_CHAR('7') PORT_CHAR('\'')
KEY ( 7, "6 & \303\244", 6 ) PORT_CHAR('6') PORT_CHAR('&')
@@ -1298,7 +1297,7 @@ ROM_END
/* ------------ inputs ------------ */
static INPUT_PORTS_START ( to9_keyboard )
- PORT_START ( "keyboard_0" )
+ PORT_START ( "keyboard.0" )
KEY ( 0, "F2 F7", F2 ) PORT_CHAR(UCHAR_MAMEKEY(F2)) PORT_CHAR(UCHAR_MAMEKEY(F7))
KEY ( 1, "_ 6", 6 ) PORT_CHAR('_') PORT_CHAR('6')
KEY ( 2, "Y", Y ) PORT_CHAR('Y')
@@ -1307,7 +1306,7 @@ static INPUT_PORTS_START ( to9_keyboard )
KEY ( 5, UTF8_RIGHT, RIGHT ) PORT_CHAR(UCHAR_MAMEKEY(RIGHT))
KEY ( 6, "Home Clear", HOME ) PORT_CHAR(UCHAR_MAMEKEY(HOME)) PORT_CHAR(UCHAR_MAMEKEY(ESC))
KEY ( 7, "N", N ) PORT_CHAR('N')
- PORT_START ( "keyboard_1" )
+ PORT_START ( "keyboard.1" )
KEY ( 0, "F3 F8", F3 ) PORT_CHAR(UCHAR_MAMEKEY(F3)) PORT_CHAR(UCHAR_MAMEKEY(F8))
KEY ( 1, "( 5", 5 ) PORT_CHAR('(') PORT_CHAR('5')
KEY ( 2, "T", T ) PORT_CHAR('T')
@@ -1316,7 +1315,7 @@ static INPUT_PORTS_START ( to9_keyboard )
KEY ( 5, UTF8_LEFT, LEFT ) PORT_CHAR(UCHAR_MAMEKEY(LEFT))
KEY ( 6, "Insert", INSERT ) PORT_CHAR(UCHAR_MAMEKEY(INSERT))
KEY ( 7, "B \302\264", B ) PORT_CHAR('B')
- PORT_START ( "keyboard_2" )
+ PORT_START ( "keyboard.2" )
KEY ( 0, "F4 F9", F4 ) PORT_CHAR(UCHAR_MAMEKEY(F4)) PORT_CHAR(UCHAR_MAMEKEY(F9))
KEY ( 1, "' 4", 4 ) PORT_CHAR('\'') PORT_CHAR('4')
KEY ( 2, "R", R ) PORT_CHAR('R')
@@ -1325,7 +1324,7 @@ static INPUT_PORTS_START ( to9_keyboard )
KEY ( 5, "Keypad 1", 1_PAD ) PORT_CHAR(UCHAR_MAMEKEY(1_PAD))
KEY ( 6, "Delete Backspace", DEL ) PORT_CHAR(8) PORT_CHAR(UCHAR_MAMEKEY(BACKSPACE))
KEY ( 7, "V", V ) PORT_CHAR('V')
- PORT_START ( "keyboard_3" )
+ PORT_START ( "keyboard.3" )
KEY ( 0, "F5 F10", F5 ) PORT_CHAR(UCHAR_MAMEKEY(F5)) PORT_CHAR(UCHAR_MAMEKEY(F10))
KEY ( 1, "\" 3", 3 ) PORT_CHAR('"') PORT_CHAR('3')
KEY ( 2, "E", E ) PORT_CHAR('E')
@@ -1334,7 +1333,7 @@ static INPUT_PORTS_START ( to9_keyboard )
KEY ( 5, "Keypad 4", 4_PAD ) PORT_CHAR(UCHAR_MAMEKEY(4_PAD))
KEY ( 6, "Keypad 0", 0_PAD ) PORT_CHAR(UCHAR_MAMEKEY(0_PAD))
KEY ( 7, "C \136", C ) PORT_CHAR('C')
- PORT_START ( "keyboard_4" )
+ PORT_START ( "keyboard.4" )
KEY ( 0, "F1 F6", F1 ) PORT_CHAR(UCHAR_MAMEKEY(F1)) PORT_CHAR(UCHAR_MAMEKEY(F6))
KEY ( 1, "\303\251 2", 2 ) PORT_CHAR( 0xe9 ) PORT_CHAR('2')
KEY ( 2, "Z", Z ) PORT_CHAR('Z')
@@ -1343,7 +1342,7 @@ static INPUT_PORTS_START ( to9_keyboard )
KEY ( 5, "Keypad 2", 2_PAD ) PORT_CHAR(UCHAR_MAMEKEY(2_PAD))
KEY ( 6, "Keypad .", DEL_PAD ) PORT_CHAR(UCHAR_MAMEKEY(DEL_PAD))
KEY ( 7, "X", X ) PORT_CHAR('X')
- PORT_START ( "keyboard_5" )
+ PORT_START ( "keyboard.5" )
KEY ( 0, "# @", TILDE ) PORT_CHAR('#') PORT_CHAR('@')
KEY ( 1, "* 1", 1 ) PORT_CHAR('*') PORT_CHAR('1')
KEY ( 2, "A \140", A ) PORT_CHAR('A')
@@ -1352,7 +1351,7 @@ static INPUT_PORTS_START ( to9_keyboard )
KEY ( 5, "Keypad 5", 5_PAD ) PORT_CHAR(UCHAR_MAMEKEY(5_PAD))
KEY ( 6, "Keypad 6", 6_PAD ) PORT_CHAR(UCHAR_MAMEKEY(6_PAD))
KEY ( 7, "W", W ) PORT_CHAR('W')
- PORT_START ( "keyboard_6" )
+ PORT_START ( "keyboard.6" )
KEY ( 0, "Stop", TAB ) PORT_CHAR(27)
KEY ( 1, "\303\250 7", 7 ) PORT_CHAR( 0xe8 ) PORT_CHAR('7')
KEY ( 2, "U", U ) PORT_CHAR('U')
@@ -1361,7 +1360,7 @@ static INPUT_PORTS_START ( to9_keyboard )
KEY ( 5, "Keypad 9", 9_PAD ) PORT_CHAR(UCHAR_MAMEKEY(9_PAD))
KEY ( 6, "Keypad Enter", ENTER_PAD ) PORT_CHAR(UCHAR_MAMEKEY(ENTER_PAD))
KEY ( 7, ", ?", COMMA ) PORT_CHAR(',') PORT_CHAR('?')
- PORT_START ( "keyboard_7" )
+ PORT_START ( "keyboard.7" )
KEY ( 0, "Control", LCONTROL ) PORT_CHAR(UCHAR_MAMEKEY(LCONTROL))
KEY ( 1, "! 8", 8 ) PORT_CHAR('!') PORT_CHAR('8')
KEY ( 2, "I", I ) PORT_CHAR('I')
@@ -1370,7 +1369,7 @@ static INPUT_PORTS_START ( to9_keyboard )
KEY ( 5, UTF8_DOWN, DOWN ) PORT_CHAR(UCHAR_MAMEKEY(DOWN))
KEY ( 6, "] }", BACKSLASH ) PORT_CHAR(']') PORT_CHAR('}')
KEY ( 7, "; .", STOP ) PORT_CHAR(';') PORT_CHAR('.')
- PORT_START ( "keyboard_8" )
+ PORT_START ( "keyboard.8" )
KEY ( 0, "Caps-Lock", CAPSLOCK ) PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK))
KEY ( 1, "\303\247 9", 9 ) PORT_CHAR( 0xe7 ) PORT_CHAR('9')
KEY ( 2, "O", O ) PORT_CHAR('O')
@@ -1379,7 +1378,7 @@ static INPUT_PORTS_START ( to9_keyboard )
KEY ( 5, "\303\271 %", COLON ) PORT_CHAR( 0xf9 ) PORT_CHAR('%')
KEY ( 6, "Enter", ENTER ) PORT_CHAR(13)
KEY ( 7, ": /", SLASH ) PORT_CHAR(':') PORT_CHAR('/')
- PORT_START ( "keyboard_9" )
+ PORT_START ( "keyboard.9" )
KEY ( 0, "Shift", LSHIFT ) PORT_CODE ( KEYCODE_RSHIFT ) PORT_CHAR(UCHAR_SHIFT_1)
KEY ( 1, "\303\240 0", 0 ) PORT_CHAR( 0xe0 ) PORT_CHAR('0')
KEY ( 2, "P", P ) PORT_CHAR('P')
@@ -1477,7 +1476,7 @@ static MACHINE_CONFIG_DERIVED( to9, to7 )
MACHINE_CONFIG_END
-COMP ( 1985, to9, 0, 0, to9, to9, driver_device, 0, "Thomson", "TO9", GAME_IMPERFECT_COLORS )
+COMP ( 1985, to9, 0, 0, to9, to9, driver_device, 0, "Thomson", "TO9", MACHINE_IMPERFECT_COLORS )
/******************************** TO8 ********************************
@@ -2015,7 +2014,7 @@ ROM_END
static INPUT_PORTS_START ( mo6_keyboard )
- PORT_START ( "keyboard_0" )
+ PORT_START ( "keyboard.0" )
KEY ( 0, "N", N ) PORT_CHAR('N')
KEY ( 1, ", ?", COMMA ) PORT_CHAR(',') PORT_CHAR('?')
KEY ( 2, "; .", STOP ) PORT_CHAR(';') PORT_CHAR('.')
@@ -2024,7 +2023,7 @@ static INPUT_PORTS_START ( mo6_keyboard )
KEY ( 5, "X", X ) PORT_CHAR('X')
KEY ( 6, "W", W ) PORT_CHAR('W')
KEY ( 7, "Shift", LSHIFT ) PORT_CODE ( KEYCODE_RSHIFT ) PORT_CHAR(UCHAR_SHIFT_1)
- PORT_START ( "keyboard_1" )
+ PORT_START ( "keyboard.1" )
KEY ( 0, "Delete Backspace", DEL ) PORT_CHAR(8) PORT_CHAR(UCHAR_MAMEKEY(BACKSPACE))
KEY ( 1, "Insert", INSERT ) PORT_CHAR(UCHAR_MAMEKEY(INSERT))
KEY ( 2, "> <", BACKSLASH2 ) PORT_CHAR('>') PORT_CHAR('<')
@@ -2033,7 +2032,7 @@ static INPUT_PORTS_START ( mo6_keyboard )
KEY ( 5, UTF8_LEFT, LEFT ) PORT_CHAR(UCHAR_MAMEKEY(LEFT))
KEY ( 6, UTF8_UP, UP ) PORT_CHAR(UCHAR_MAMEKEY(UP))
KEY ( 7, "BASIC", RCONTROL ) PORT_CHAR(UCHAR_MAMEKEY(RCONTROL))
- PORT_START ( "keyboard_2" )
+ PORT_START ( "keyboard.2" )
KEY ( 0, "J", J ) PORT_CHAR('J')
KEY ( 1, "K", K ) PORT_CHAR('K')
KEY ( 2, "L", L ) PORT_CHAR('L')
@@ -2042,7 +2041,7 @@ static INPUT_PORTS_START ( mo6_keyboard )
KEY ( 5, "V", V ) PORT_CHAR('V')
KEY ( 6, "C \136", C ) PORT_CHAR('C')
KEY ( 7, "Caps-Lock", CAPSLOCK ) PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK))
- PORT_START ( "keyboard_3" )
+ PORT_START ( "keyboard.3" )
KEY ( 0, "H \302\250", H ) PORT_CHAR('H')
KEY ( 1, "G", G ) PORT_CHAR('G')
KEY ( 2, "F", F ) PORT_CHAR('F')
@@ -2051,7 +2050,7 @@ static INPUT_PORTS_START ( mo6_keyboard )
KEY ( 5, "Q", Q ) PORT_CHAR('Q')
KEY ( 6, "Home Clear", HOME ) PORT_CHAR(UCHAR_MAMEKEY(HOME)) PORT_CHAR(UCHAR_MAMEKEY(ESC))
KEY ( 7, "F1 F6", F1 ) PORT_CHAR(UCHAR_MAMEKEY(F1)) PORT_CHAR(UCHAR_MAMEKEY(F6))
- PORT_START ( "keyboard_4" )
+ PORT_START ( "keyboard.4" )
KEY ( 0, "U", U ) PORT_CHAR('U')
KEY ( 1, "I", I ) PORT_CHAR('I')
KEY ( 2, "O", O ) PORT_CHAR('O')
@@ -2060,7 +2059,7 @@ static INPUT_PORTS_START ( mo6_keyboard )
KEY ( 5, "$ &", CLOSEBRACE ) PORT_CHAR('$') PORT_CHAR('&')
KEY ( 6, "Enter", ENTER ) PORT_CHAR(13)
KEY ( 7, "F2 F7", F2 ) PORT_CHAR(UCHAR_MAMEKEY(F2)) PORT_CHAR(UCHAR_MAMEKEY(F7))
- PORT_START ( "keyboard_5" )
+ PORT_START ( "keyboard.5" )
KEY ( 0, "Y", Y ) PORT_CHAR('Y')
KEY ( 1, "T", T ) PORT_CHAR('T')
KEY ( 2, "R", R ) PORT_CHAR('R')
@@ -2069,7 +2068,7 @@ static INPUT_PORTS_START ( mo6_keyboard )
KEY ( 5, "A \140", A ) PORT_CHAR('A')
KEY ( 6, "Control", LCONTROL ) PORT_CHAR(UCHAR_MAMEKEY(LCONTROL))
KEY ( 7, "F3 F8", F3 ) PORT_CHAR(UCHAR_MAMEKEY(F3)) PORT_CHAR(UCHAR_MAMEKEY(F8))
- PORT_START ( "keyboard_6" )
+ PORT_START ( "keyboard.6" )
KEY ( 0, "7 \303\250", 7 ) PORT_CHAR('7') PORT_CHAR( 0xe8 )
KEY ( 1, "8 !", 8 ) PORT_CHAR('8') PORT_CHAR('!')
KEY ( 2, "9 \303\247", 9 ) PORT_CHAR('9') PORT_CHAR( 0xe7 )
@@ -2078,7 +2077,7 @@ static INPUT_PORTS_START ( mo6_keyboard )
KEY ( 5, "= +", EQUALS ) PORT_CHAR('=') PORT_CHAR('+')
KEY ( 6, "Accent", END ) PORT_CHAR(UCHAR_MAMEKEY(END))
KEY ( 7, "F4 F9", F4 ) PORT_CHAR(UCHAR_MAMEKEY(F4)) PORT_CHAR(UCHAR_MAMEKEY(F9))
- PORT_START ( "keyboard_7" )
+ PORT_START ( "keyboard.7" )
KEY ( 0, "6 _", 6 ) PORT_CHAR('6') PORT_CHAR('_')
KEY ( 1, "5 (", 5 ) PORT_CHAR('5') PORT_CHAR('(')
KEY ( 2, "4 '", 4 ) PORT_CHAR('4') PORT_CHAR('\'')
@@ -2087,7 +2086,7 @@ static INPUT_PORTS_START ( mo6_keyboard )
KEY ( 5, "1 *", 1 ) PORT_CHAR('1') PORT_CHAR('*')
KEY ( 6, "Stop", TAB ) PORT_CHAR(27)
KEY ( 7, "F5 F10", F5 ) PORT_CHAR(UCHAR_MAMEKEY(F5)) PORT_CHAR(UCHAR_MAMEKEY(F10))
- PORT_START ( "keyboard_8" )
+ PORT_START ( "keyboard.8" )
KEY ( 0, "[ {", QUOTE ) PORT_CHAR('[') PORT_CHAR('{')
KEY ( 1, "] }", BACKSLASH ) PORT_CHAR(']') PORT_CHAR('}')
KEY ( 2, ") \302\260", MINUS ) PORT_CHAR(')') PORT_CHAR( 0xb0 )
@@ -2096,7 +2095,7 @@ static INPUT_PORTS_START ( mo6_keyboard )
PORT_BIT ( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED )
/* unused */
- PORT_START ( "keyboard_9" )
+ PORT_START ( "keyboard.9" )
INPUT_PORTS_END
@@ -2104,39 +2103,39 @@ INPUT_PORTS_END
static INPUT_PORTS_START ( pro128_keyboard )
PORT_INCLUDE ( mo6_keyboard )
- PORT_MODIFY ( "keyboard_0" )
+ PORT_MODIFY ( "keyboard.0" )
KEY ( 1, "M", M ) PORT_CHAR('M')
KEY ( 2, ", ;", COMMA ) PORT_CHAR(',') PORT_CHAR(';')
KEY ( 3, "[ {", QUOTE ) PORT_CHAR('[') PORT_CHAR('{')
KEY ( 6, "Z", Z ) PORT_CHAR('Z')
KEY ( 7, "Shift", LSHIFT ) PORT_CODE ( KEYCODE_RSHIFT ) PORT_CHAR(UCHAR_SHIFT_1)
- PORT_MODIFY ( "keyboard_1" )
+ PORT_MODIFY ( "keyboard.1" )
KEY ( 2, "- _", MINUS ) PORT_CHAR('-') PORT_CHAR('_')
- PORT_MODIFY ( "keyboard_2" )
+ PORT_MODIFY ( "keyboard.2" )
KEY ( 3, "\303\221", TILDE ) PORT_CHAR( 0xd1 )
- PORT_MODIFY ( "keyboard_3" )
+ PORT_MODIFY ( "keyboard.3" )
KEY ( 5, "A \140", A ) PORT_CHAR('A')
- PORT_MODIFY ( "keyboard_4" )
+ PORT_MODIFY ( "keyboard.4" )
KEY ( 4, ". :", STOP ) PORT_CHAR('.') PORT_CHAR(':')
KEY ( 5, "+ *", BACKSPACE ) PORT_CHAR('+') PORT_CHAR('*')
- PORT_MODIFY ( "keyboard_5" )
+ PORT_MODIFY ( "keyboard.5" )
KEY ( 4, "W", W ) PORT_CHAR('W')
KEY ( 5, "Q", Q ) PORT_CHAR('Q')
- PORT_MODIFY ( "keyboard_6" )
+ PORT_MODIFY ( "keyboard.6" )
KEY ( 0, "7 /", 7 ) PORT_CHAR('7') PORT_CHAR('/')
KEY ( 1, "8 (", 8 ) PORT_CHAR('8') PORT_CHAR('(')
KEY ( 2, "9 )", 9 ) PORT_CHAR('9') PORT_CHAR(')')
KEY ( 3, "0 =", 0 ) PORT_CHAR('0') PORT_CHAR('=')
KEY ( 4, "' \302\243", CLOSEBRACE ) PORT_CHAR('\'') PORT_CHAR( 0xa3 )
KEY ( 5, "] }", BACKSLASH ) PORT_CHAR(']') PORT_CHAR('}')
- PORT_MODIFY ( "keyboard_7" )
+ PORT_MODIFY ( "keyboard.7" )
KEY ( 0, "6 &", 6 ) PORT_CHAR('6') PORT_CHAR('&')
KEY ( 1, "5 %", 5 ) PORT_CHAR('5') PORT_CHAR('%')
KEY ( 2, "4 $", 4 ) PORT_CHAR('4') PORT_CHAR('$')
KEY ( 3, "3 \302\247", 3 ) PORT_CHAR('3') PORT_CHAR( 0xa7 )
KEY ( 4, "2 \"", 2 ) PORT_CHAR('2') PORT_CHAR('"')
KEY ( 5, "1 !", 1 ) PORT_CHAR('1') PORT_CHAR('!')
- PORT_MODIFY ( "keyboard_8" )
+ PORT_MODIFY ( "keyboard.8" )
KEY ( 0, "> <", BACKSLASH2 ) PORT_CHAR('>') PORT_CHAR('<')
KEY ( 1, "# \342\206\221", EQUALS ) PORT_CHAR('#') PORT_CHAR('^')
KEY ( 2, "\303\247 ?", COLON ) PORT_CHAR( 0xe7 ) PORT_CHAR('?')
@@ -2320,7 +2319,7 @@ ROM_END
static INPUT_PORTS_START ( mo5nr_keyboard )
- PORT_START ( "keyboard_0" )
+ PORT_START ( "keyboard.0" )
KEY ( 0, "N", N ) PORT_CHAR('N')
KEY ( 1, ", <", COMMA ) PORT_CHAR(',') PORT_CHAR('<')
KEY ( 2, ". >", STOP ) PORT_CHAR('.') PORT_CHAR('>')
@@ -2329,7 +2328,7 @@ static INPUT_PORTS_START ( mo5nr_keyboard )
KEY ( 5, "X", X ) PORT_CHAR('X')
KEY ( 6, "W", W ) PORT_CHAR('W')
KEY ( 7, "Shift", LSHIFT ) PORT_CODE ( KEYCODE_RSHIFT ) PORT_CHAR(UCHAR_SHIFT_1)
- PORT_START ( "keyboard_1" )
+ PORT_START ( "keyboard.1" )
KEY ( 0, "Delete Backspace", DEL ) PORT_CHAR(8) PORT_CHAR(UCHAR_MAMEKEY(BACKSPACE))
KEY ( 1, "Insert", INSERT ) PORT_CHAR(UCHAR_MAMEKEY(INSERT))
KEY ( 2, "Home", HOME ) PORT_CHAR(UCHAR_MAMEKEY(HOME))
@@ -2338,7 +2337,7 @@ static INPUT_PORTS_START ( mo5nr_keyboard )
KEY ( 5, UTF8_LEFT, LEFT ) PORT_CHAR(UCHAR_MAMEKEY(LEFT))
KEY ( 6, UTF8_UP, UP ) PORT_CHAR(UCHAR_MAMEKEY(UP))
KEY ( 7, "BASIC", RCONTROL )
- PORT_START ( "keyboard_2" )
+ PORT_START ( "keyboard.2" )
KEY ( 0, "J", J ) PORT_CHAR('J')
KEY ( 1, "K", K ) PORT_CHAR('K')
KEY ( 2, "L", L ) PORT_CHAR('L')
@@ -2347,7 +2346,7 @@ static INPUT_PORTS_START ( mo5nr_keyboard )
KEY ( 5, "V", V ) PORT_CHAR('V')
KEY ( 6, "C \136", C ) PORT_CHAR('C')
PORT_BIT ( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START ( "keyboard_3" )
+ PORT_START ( "keyboard.3" )
KEY ( 0, "H \302\250", H ) PORT_CHAR('H')
KEY ( 1, "G", G ) PORT_CHAR('G')
KEY ( 2, "F", F ) PORT_CHAR('F')
@@ -2356,7 +2355,7 @@ static INPUT_PORTS_START ( mo5nr_keyboard )
KEY ( 5, "Q", Q ) PORT_CHAR('Q')
KEY ( 6, "Clear", ESC ) PORT_CHAR(UCHAR_MAMEKEY(ESC))
PORT_BIT ( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START ( "keyboard_4" )
+ PORT_START ( "keyboard.4" )
KEY ( 0, "U", U ) PORT_CHAR('U')
KEY ( 1, "I", I ) PORT_CHAR('I')
KEY ( 2, "O", O ) PORT_CHAR('O')
@@ -2365,7 +2364,7 @@ static INPUT_PORTS_START ( mo5nr_keyboard )
KEY ( 5, "* :", QUOTE ) PORT_CHAR('*') PORT_CHAR(':')
KEY ( 6, "Enter", ENTER ) PORT_CHAR(13)
PORT_BIT ( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START ( "keyboard_5" )
+ PORT_START ( "keyboard.5" )
KEY ( 0, "Y", Y ) PORT_CHAR('Y')
KEY ( 1, "T", T ) PORT_CHAR('T')
KEY ( 2, "R", R ) PORT_CHAR('R')
@@ -2374,7 +2373,7 @@ static INPUT_PORTS_START ( mo5nr_keyboard )
KEY ( 5, "A \140", A ) PORT_CHAR('A')
KEY ( 6, "Control", LCONTROL ) PORT_CHAR(UCHAR_MAMEKEY(LCONTROL))
PORT_BIT ( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START ( "keyboard_6" )
+ PORT_START ( "keyboard.6" )
KEY ( 0, "7 ' \303\250", 7 ) PORT_CHAR('7') PORT_CHAR('\'' )
KEY ( 1, "8 ( \303\271", 8 ) PORT_CHAR('8') PORT_CHAR('(')
KEY ( 2, "9 ) \303\247", 9 ) PORT_CHAR('9') PORT_CHAR(')')
@@ -2383,7 +2382,7 @@ static INPUT_PORTS_START ( mo5nr_keyboard )
KEY ( 5, "+ ;", EQUALS ) PORT_CHAR('+') PORT_CHAR(';')
KEY ( 6, "Accent", END ) PORT_CHAR(UCHAR_MAMEKEY(END))
PORT_BIT ( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
- PORT_START ( "keyboard_7" )
+ PORT_START ( "keyboard.7" )
KEY ( 0, "6 & \303\251", 6 ) PORT_CHAR('6') PORT_CHAR('&')
KEY ( 1, "5 %", 5 ) PORT_CHAR('5') PORT_CHAR('%')
KEY ( 2, "4 $", 4 ) PORT_CHAR('4') PORT_CHAR('$')
@@ -2394,8 +2393,8 @@ static INPUT_PORTS_START ( mo5nr_keyboard )
PORT_BIT ( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
/* unused */
- PORT_START ( "keyboard_8" )
- PORT_START ( "keyboard_9" )
+ PORT_START ( "keyboard.8" )
+ PORT_START ( "keyboard.9" )
INPUT_PORTS_END
diff --git a/src/mame/drivers/thoop2.c b/src/mame/drivers/thoop2.c
index b29dde4e761..1d48c2c5bb7 100644
--- a/src/mame/drivers/thoop2.c
+++ b/src/mame/drivers/thoop2.c
@@ -231,4 +231,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", GAME_UNEMULATED_PROTECTION | GAME_NOT_WORKING )
+GAME( 1994, thoop2, 0, thoop2, thoop2, driver_device, 0, ROT0, "Gaelco", "TH Strikes Back", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/thunderx.c b/src/mame/drivers/thunderx.c
index 89b9124a30e..0149e610533 100644
--- a/src/mame/drivers/thunderx.c
+++ b/src/mame/drivers/thunderx.c
@@ -663,6 +663,7 @@ static MACHINE_CONFIG_START( scontra, thunderx_state )
MCFG_DEVICE_ADD("k051960", K051960, 0)
MCFG_GFX_PALETTE("palette")
+ MCFG_K051960_SCREEN_TAG("screen")
MCFG_K051960_CB(thunderx_state, sprite_callback)
/* sound hardware */
@@ -1029,12 +1030,12 @@ ROM_END
/***************************************************************************/
-GAME( 1988, scontra, 0, scontra, scontra, driver_device, 0, ROT90, "Konami", "Super Contra", GAME_SUPPORTS_SAVE )
-GAME( 1988, scontraj, scontra, scontra, scontra, driver_device, 0, ROT90, "Konami", "Super Contra (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1988, thunderx, 0, thunderx, thunderx, driver_device, 0, ROT0, "Konami", "Thunder Cross (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1988, thunderxa, thunderx, thunderx, thunderx, driver_device, 0, ROT0, "Konami", "Thunder Cross (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1988, thunderxb, thunderx, thunderx, thunderx, driver_device, 0, ROT0, "Konami", "Thunder Cross (set 3)", GAME_SUPPORTS_SAVE )
-GAME( 1988, thunderxj, thunderx, thunderx, thnderxj, driver_device, 0, ROT0, "Konami", "Thunder Cross (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1988, gbusters, 0, gbusters, gbusters, driver_device, 0, ROT90, "Konami", "Gang Busters (set 1)", GAME_SUPPORTS_SAVE ) /* N02 & J03 program roms */
-GAME( 1988, gbustersa, gbusters, gbusters, gbusters, driver_device, 0, ROT90, "Konami", "Gang Busters (set 2)", GAME_SUPPORTS_SAVE ) /* unknown region program roms */
-GAME( 1988, crazycop, gbusters, gbusters, gbusters, driver_device, 0, ROT90, "Konami", "Crazy Cop (Japan)", GAME_SUPPORTS_SAVE ) /* M02 & J03 program roms */
+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, thunderx, 0, thunderx, thunderx, driver_device, 0, ROT0, "Konami", "Thunder Cross (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, thunderxa, thunderx, thunderx, thunderx, driver_device, 0, ROT0, "Konami", "Thunder Cross (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, thunderxb, thunderx, thunderx, thunderx, driver_device, 0, ROT0, "Konami", "Thunder Cross (set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, thunderxj, thunderx, thunderx, thnderxj, driver_device, 0, 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 */
diff --git a/src/mess/drivers/ti630.c b/src/mame/drivers/ti630.c
index ac408a436d1..b92f03785d4 100644
--- a/src/mess/drivers/ti630.c
+++ b/src/mame/drivers/ti630.c
@@ -209,4 +209,4 @@ ROM_START( ti630 )
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", GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND)
+COMP( 1999, ti630, 0, 0, ti630, 0, ti630_state, ti630, "Intelbras", "TI630 telephone", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/ti74.c b/src/mame/drivers/ti74.c
index e0ca08460d5..4b2798ac3db 100644
--- a/src/mess/drivers/ti74.c
+++ b/src/mame/drivers/ti74.c
@@ -601,5 +601,5 @@ ROM_START( ti95 )
ROM_END
-COMP( 1985, ti74, 0, 0, ti74, ti74, driver_device, 0, "Texas Instruments", "TI-74 BASICALC", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
-COMP( 1986, ti95, 0, 0, ti95, ti95, driver_device, 0, "Texas Instruments", "TI-95 PROCALC", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
+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 )
diff --git a/src/mess/drivers/ti85.c b/src/mame/drivers/ti85.c
index aec5b91ce18..179149c33d6 100644
--- a/src/mess/drivers/ti85.c
+++ b/src/mame/drivers/ti85.c
@@ -918,14 +918,14 @@ ROM_START (ti84p)
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", GAME_NO_SOUND )
-COMP( 1992, ti85, 0, 0, ti85d, ti85, driver_device, 0, "Texas Instruments", "TI-85", GAME_NO_SOUND )
-COMP( 1993, ti82, 0, 0, ti82, ti82, driver_device, 0, "Texas Instruments", "TI-82", GAME_NO_SOUND )
-COMP( 1994, ti81v2, ti81, 0, ti81v2, ti81, driver_device, 0, "Texas Instruments", "TI-81 v2.0", GAME_NO_SOUND )
-COMP( 1996, ti83, 0, 0, ti83, ti83, driver_device, 0, "Texas Instruments", "TI-83", GAME_NO_SOUND )
-COMP( 1997, ti86, 0, 0, ti86, ti85, driver_device, 0, "Texas Instruments", "TI-86", GAME_NO_SOUND )
-COMP( 1998, ti73, 0, 0, ti73, ti82, driver_device, 0, "Texas Instruments", "TI-73", GAME_NO_SOUND )
-COMP( 1999, ti83p, 0, 0, ti83p, ti82, driver_device, 0, "Texas Instruments", "TI-83 Plus", GAME_NO_SOUND )
-COMP( 2001, ti83pse, 0, 0, ti83pse, ti82, driver_device, 0, "Texas Instruments", "TI-83 Plus Silver Edition", GAME_NO_SOUND )
-COMP( 2004, ti84p, 0, 0, ti84p, ti82, driver_device, 0, "Texas Instruments", "TI-84 Plus", GAME_NO_SOUND )
-COMP( 2004, ti84pse, 0, 0, ti84pse, ti82, driver_device, 0, "Texas Instruments", "TI-84 Plus Silver Edition", GAME_NO_SOUND )
+COMP( 1990, ti81, 0, 0, ti81, ti81, driver_device, 0, "Texas Instruments", "TI-81", MACHINE_NO_SOUND )
+COMP( 1992, ti85, 0, 0, ti85d, ti85, driver_device, 0, "Texas Instruments", "TI-85", MACHINE_NO_SOUND )
+COMP( 1993, ti82, 0, 0, ti82, ti82, driver_device, 0, "Texas Instruments", "TI-82", MACHINE_NO_SOUND )
+COMP( 1994, ti81v2, ti81, 0, ti81v2, ti81, driver_device, 0, "Texas Instruments", "TI-81 v2.0", MACHINE_NO_SOUND )
+COMP( 1996, ti83, 0, 0, ti83, ti83, driver_device, 0, "Texas Instruments", "TI-83", MACHINE_NO_SOUND )
+COMP( 1997, ti86, 0, 0, ti86, ti85, driver_device, 0, "Texas Instruments", "TI-86", MACHINE_NO_SOUND )
+COMP( 1998, ti73, 0, 0, ti73, ti82, driver_device, 0, "Texas Instruments", "TI-73", MACHINE_NO_SOUND )
+COMP( 1999, ti83p, 0, 0, ti83p, ti82, driver_device, 0, "Texas Instruments", "TI-83 Plus", MACHINE_NO_SOUND )
+COMP( 2001, ti83pse, 0, 0, ti83pse, ti82, driver_device, 0, "Texas Instruments", "TI-83 Plus Silver Edition", MACHINE_NO_SOUND )
+COMP( 2004, ti84p, 0, 0, ti84p, ti82, driver_device, 0, "Texas Instruments", "TI-84 Plus", MACHINE_NO_SOUND )
+COMP( 2004, ti84pse, 0, 0, ti84pse, ti82, driver_device, 0, "Texas Instruments", "TI-84 Plus Silver Edition", MACHINE_NO_SOUND )
diff --git a/src/mess/drivers/ti89.c b/src/mame/drivers/ti89.c
index 06588d94c29..9958d18ef83 100644
--- a/src/mess/drivers/ti89.c
+++ b/src/mame/drivers/ti89.c
@@ -668,8 +668,8 @@ 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", GAME_NO_SOUND)
-COMP( 1995, ti92, 0, 0, ti92, ti9x, driver_device, 0, "Texas Instruments", "TI-92", GAME_NO_SOUND)
-COMP( 1999, ti92p, 0, 0, ti92p, ti9x, driver_device, 0, "Texas Instruments", "TI-92 Plus", GAME_NO_SOUND)
-COMP( 2002, v200, 0, 0, v200, ti9x, driver_device, 0, "Texas Instruments", "Voyage 200 PLT",GAME_NO_SOUND)
-COMP( 2004, ti89t, 0, 0, ti89t, ti8x, driver_device, 0, "Texas Instruments", "TI-89 Titanium",GAME_NO_SOUND)
+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)
diff --git a/src/mess/drivers/ti990_10.c b/src/mame/drivers/ti990_10.c
index f7f3f9ff219..21c0fe33010 100644
--- a/src/mess/drivers/ti990_10.c
+++ b/src/mame/drivers/ti990_10.c
@@ -73,8 +73,8 @@ TODO :
#include "cpu/tms9900/ti990_10.h"
#include "sound/beep.h"
-#include "machine/ti99/990_hd.h"
-#include "machine/ti99/990_tap.h"
+#include "bus/ti99x/990_hd.h"
+#include "bus/ti99x/990_tap.h"
#include "video/911_vdt.h"
@@ -386,4 +386,4 @@ DRIVER_INIT_MEMBER(ti990_10_state,ti990_10)
}
/* 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" , GAME_NOT_WORKING )
+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/mess/drivers/ti990_4.c b/src/mame/drivers/ti990_4.c
index 382d345e4d7..b18fe23ff34 100644
--- a/src/mess/drivers/ti990_4.c
+++ b/src/mame/drivers/ti990_4.c
@@ -44,7 +44,7 @@ TODO:
#include "sound/beep.h"
#include "video/733_asr.h"
-#include "machine/ti99/990_dk.h"
+#include "bus/ti99x/990_dk.h"
class ti990_4_state : public driver_device
@@ -363,5 +363,5 @@ ROM_START(ti990_4v)
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" , GAME_NOT_WORKING | GAME_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" , GAME_NOT_WORKING | GAME_NO_SOUND )
+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/mess/drivers/ti99_2.c b/src/mame/drivers/ti99_2.c
index 41ed9ac2a7b..993b657f29b 100644
--- a/src/mess/drivers/ti99_2.c
+++ b/src/mame/drivers/ti99_2.c
@@ -412,5 +412,5 @@ ROM_END
/* 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)" , GAME_NOT_WORKING | GAME_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)" , GAME_NOT_WORKING | GAME_NO_SOUND )
+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/mess/drivers/ti99_4p.c b/src/mame/drivers/ti99_4p.c
index 637f7120900..7122ab40a05 100644
--- a/src/mess/drivers/ti99_4p.c
+++ b/src/mame/drivers/ti99_4p.c
@@ -44,9 +44,11 @@
#include "machine/tms9901.h"
#include "imagedev/cassette.h"
-#include "machine/ti99/videowrp.h"
+
+#include "bus/ti99x/videowrp.h"
+#include "bus/ti99x/joyport.h"
+
#include "bus/ti99_peb/peribox.h"
-#include "machine/ti99/joyport.h"
#define TMS9901_TAG "tms9901"
#define SGCPU_TAG "sgcpu"
@@ -99,7 +101,6 @@ public:
DECLARE_WRITE_LINE_MEMBER(alphaW);
virtual void machine_start();
DECLARE_MACHINE_RESET(ti99_4p);
- TIMER_DEVICE_CALLBACK_MEMBER(sgcpu_hblank_interrupt);
DECLARE_WRITE_LINE_MEMBER(set_tms9901_INT2_from_v9938);
@@ -848,10 +849,6 @@ MACHINE_RESET_MEMBER(ti99_4p_state,ti99_4p)
m_9901_int = 0x03; // INT2* and INT1* set to 1, i.e. inactive
}
-TIMER_DEVICE_CALLBACK_MEMBER(ti99_4p_state::sgcpu_hblank_interrupt)
-{
- machine().device<v9938_device>(VDP_TAG)->interrupt();
-}
/*
Machine description.
@@ -871,7 +868,6 @@ static MACHINE_CONFIG_START( ti99_4p_60hz, ti99_4p_state )
// painted. Accordingly, the full set of lines is refreshed at 30 Hz,
// not 60 Hz. This should be fixed in the v9938 emulation.
MCFG_TI_V9938_ADD(VIDEO_SYSTEM_TAG, 30, SCREEN_TAG, 2500, 512+32, (212+28)*2, ti99_4p_state, set_tms9901_INT2_from_v9938)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", ti99_4p_state, sgcpu_hblank_interrupt, SCREEN_TAG, 0, 1)
// tms9901
MCFG_DEVICE_ADD(TMS9901_TAG, TMS9901, 3000000)
diff --git a/src/mess/drivers/ti99_4x.c b/src/mame/drivers/ti99_4x.c
index c6ebe5ccf39..a90dc92aaf2 100644
--- a/src/mess/drivers/ti99_4x.c
+++ b/src/mame/drivers/ti99_4x.c
@@ -46,11 +46,12 @@
#include "machine/tms9901.h"
#include "imagedev/cassette.h"
-#include "machine/ti99/videowrp.h"
-#include "machine/ti99/datamux.h"
-#include "machine/ti99/grom.h"
-#include "machine/ti99/gromport.h"
-#include "machine/ti99/joyport.h"
+#include "bus/ti99x/videowrp.h"
+#include "bus/ti99x/datamux.h"
+#include "bus/ti99x/grom.h"
+#include "bus/ti99x/gromport.h"
+#include "bus/ti99x/joyport.h"
+
#include "bus/ti99_peb/peribox.h"
// Debugging
@@ -121,7 +122,6 @@ public:
// Interrupt triggers
DECLARE_INPUT_CHANGED_MEMBER( load_interrupt );
- TIMER_DEVICE_CALLBACK_MEMBER(ti99_4ev_hblank_interrupt);
private:
void set_keyboard_column(int number, int data);
@@ -1043,11 +1043,6 @@ MACHINE_CONFIG_END
replacing the console video processor.
*************************************************************************/
-TIMER_DEVICE_CALLBACK_MEMBER(ti99_4x_state::ti99_4ev_hblank_interrupt)
-{
- machine().device<v9938_device>(VDP_TAG)->interrupt();
-}
-
static MACHINE_CONFIG_START( ti99_4ev_60hz, ti99_4x_state )
/* CPU */
MCFG_TMS99xx_ADD("maincpu", TMS9900, 3000000, memmap, cru_map)
@@ -1065,7 +1060,6 @@ static MACHINE_CONFIG_START( ti99_4ev_60hz, ti99_4x_state )
// painted. Accordingly, the full set of lines is refreshed at 30 Hz,
// not 60 Hz. This should be fixed in the v9938 emulation.
MCFG_TI_V9938_ADD(VIDEO_SYSTEM_TAG, 30, SCREEN_TAG, 2500, 512+32, (212+28)*2, ti99_4x_state, video_interrupt_in)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", ti99_4x_state, ti99_4ev_hblank_interrupt, SCREEN_TAG, 0, 1)
/* Main board */
MCFG_DEVICE_ADD(TMS9901_TAG, TMS9901, 3000000)
diff --git a/src/mess/drivers/ti99_8.c b/src/mame/drivers/ti99_8.c
index 1e046c9ff1a..eeaacff3591 100644
--- a/src/mess/drivers/ti99_8.c
+++ b/src/mame/drivers/ti99_8.c
@@ -205,14 +205,13 @@ Known Issues (MZ, 2010-11-07)
#include "machine/tms9901.h"
#include "imagedev/cassette.h"
-#include "machine/ti99/videowrp.h"
-#include "machine/ti99/speech8.h"
+#include "bus/ti99x/998board.h"
+#include "bus/ti99x/videowrp.h"
+#include "bus/ti99x/grom.h"
+#include "bus/ti99x/gromport.h"
+#include "bus/ti99x/joyport.h"
#include "bus/ti99_peb/peribox.h"
-#include "machine/ti99/mapper8.h"
-#include "machine/ti99/grom.h"
-#include "machine/ti99/gromport.h"
-#include "machine/ti99/joyport.h"
// Debugging
#define TRACE_READY 0
@@ -1027,7 +1026,7 @@ static MACHINE_CONFIG_START( ti99_8, ti99_8_state )
MCFG_GROM_LIBRARY_ADD3(pascal3_grom, pascal3)
/* Devices */
- MCFG_DEVICE_ADD(SPEECH_TAG, TI99_SPEECH8, 0)
+ MCFG_DEVICE_ADD(SPEECH_TAG, SPEECH8, 0)
MCFG_SPEECH8_READY_CALLBACK(WRITELINE(ti99_8_state, console_ready_speech))
// Joystick port
diff --git a/src/mame/drivers/tiamc1.c b/src/mame/drivers/tiamc1.c
index 4dca20a1e68..7fcebb77877 100644
--- a/src/mame/drivers/tiamc1.c
+++ b/src/mame/drivers/tiamc1.c
@@ -329,7 +329,7 @@ ROM_START( bilyard )
ROM_LOAD( "03.6a", 0x06000, 0x2000, CRC(8bfc0b15) SHA1(221efdce516274d3b1d9009d11dc9ed6cd67ef12) )
ROM_END
-GAME( 1988, konek, 0, tiamc1, tiamc1, driver_device, 0, ROT0, "Terminal", "Konek-Gorbunok", GAME_SUPPORTS_SAVE )
-GAME( 1988, sosterm, 0, tiamc1, tiamc1, driver_device, 0, ROT0, "Terminal", "S.O.S.", GAME_SUPPORTS_SAVE )
-GAME( 1988, koroleva, 0, tiamc1, tiamc1, driver_device, 0, ROT0, "Terminal", "Snezhnaja Koroleva", GAME_SUPPORTS_SAVE )
-GAME( 1988, bilyard, 0, tiamc1, tiamc1, driver_device, 0, ROT0, "Terminal", "Billiard", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/ticalc1x.c b/src/mame/drivers/ticalc1x.c
index f59f0630c0a..f043f634f17 100644
--- a/src/mess/drivers/ticalc1x.c
+++ b/src/mame/drivers/ticalc1x.c
@@ -4,20 +4,20 @@
** subclass of hh_tms1k_state (includes/hh_tms1k.h, drivers/hh_tms1k.c) **
- Texas Instruments TMS1xxx/0970/0980 handheld calculators (mostly single-chip)
+ Texas Instruments TMS1xxx family handheld calculators (mostly single-chip)
Refer to their official manuals on how to use them.
TODO:
- MCU clocks are unknown where noted
- - lilprof78 equals-sign is always on
***************************************************************************/
#include "includes/hh_tms1k.h"
// internal artwork
+#include "dataman.lh"
#include "ti1270.lh"
#include "ti30.lh"
#include "tisr16.lh"
@@ -686,7 +686,7 @@ WRITE16_MEMBER(lilprof78_state::write_r)
m_display_state[y] = (r >> y & 1) ? o : 0;
// 3rd digit A/G(equals sign) is from O7
- m_display_state[3] = (m_o & 0x80) ? 0x41 : 0;
+ m_display_state[3] = (r && m_o & 0x80) ? 0x41 : 0;
// 6th digit is a custom 7seg for math symbols (see wizatron_state write_r)
m_display_state[6] = BITSWAP8(m_display_state[6],7,6,1,4,2,3,5,0);
@@ -768,12 +768,131 @@ MACHINE_CONFIG_END
/***************************************************************************
+ TI DataMan
+ * TMS1980 MCU labeled TMC1982NL. die labeled 1980A 82B
+ * 10-digit cyan VFD display(3 digits are custom)
+
+***************************************************************************/
+
+class dataman_state : public ticalc1x_state
+{
+public:
+ dataman_state(const machine_config &mconfig, device_type type, const char *tag)
+ : ticalc1x_state(mconfig, type, tag)
+ { }
+
+ void prepare_display();
+ DECLARE_WRITE16_MEMBER(write_o);
+ DECLARE_WRITE16_MEMBER(write_r);
+ DECLARE_READ8_MEMBER(read_k);
+};
+
+// handlers
+
+void dataman_state::prepare_display()
+{
+ // note the extra segment on R9
+ display_matrix_seg(8, 9, m_o | (m_r >> 2 & 0x80), m_r & 0x1ff, 0x7f);
+}
+
+WRITE16_MEMBER(dataman_state::write_r)
+{
+ // R0-R4: input mux
+ // R0-R8: select digit
+ // R9: =(equals sign) segment
+ m_r = m_inp_mux = data;
+ prepare_display();
+}
+
+WRITE16_MEMBER(dataman_state::write_o)
+{
+ // O0-O6: digit segments A-G
+ m_o = BITSWAP8(data,7,1,6,5,4,3,2,0) & 0x7f;
+ prepare_display();
+}
+
+READ8_MEMBER(dataman_state::read_k)
+{
+ // K: multiplexed inputs (note: the Vss row is always on)
+ return m_inp_matrix[5]->read() | read_inputs(5);
+}
+
+
+// config
+
+static INPUT_PORTS_START( dataman )
+ PORT_START("IN.0") // R0
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("=")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_M) PORT_NAME("Memory Bank")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_NAME("0")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_G) PORT_NAME("Go")
+
+ PORT_START("IN.1") // R1
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_PLUS_PAD) PORT_NAME("+")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("3")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("2")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("1")
+
+ PORT_START("IN.2") // R2
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_MINUS_PAD) PORT_NAME("-")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("6")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("5")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("4")
+
+ PORT_START("IN.3") // R3
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_ASTERISK) PORT_NAME(UTF8_MULTIPLY)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_NAME("9")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("8")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("7")
+
+ PORT_START("IN.4") // R4
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_SLASH_PAD) PORT_NAME(UTF8_DIVIDE)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_F) PORT_NAME("Force Out")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_N) PORT_NAME("Number Guesser")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_W) PORT_NAME("Wipe Out")
+
+ // note: even though power buttons are on the matrix, they are not CPU-controlled
+ PORT_START("IN.5") // Vss!
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_PGUP) PORT_CODE(KEYCODE_U) PORT_NAME("On/User Entry") PORT_CHANGED_MEMBER(DEVICE_SELF, hh_tms1k_state, power_button, (void *)true)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_PGDN) PORT_NAME("Off") PORT_CHANGED_MEMBER(DEVICE_SELF, hh_tms1k_state, power_button, (void *)false)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_SLASH) PORT_NAME("?")
+ 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 )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", TMS1980, 300000) // patent says 300kHz
+ MCFG_TMS1XXX_READ_K_CB(READ8(dataman_state, read_k))
+ MCFG_TMS1XXX_WRITE_O_CB(WRITE16(dataman_state, write_o))
+ MCFG_TMS1XXX_WRITE_R_CB(WRITE16(dataman_state, write_r))
+ MCFG_TMS1XXX_POWER_OFF_CB(WRITELINE(hh_tms1k_state, auto_power_off))
+
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
+ MCFG_DEFAULT_LAYOUT(layout_dataman)
+
+ /* no video! */
+
+ /* no sound! */
+MACHINE_CONFIG_END
+
+
+
+
+
+/***************************************************************************
+
Majestic-line calculators:
* TI-30(aka SR-40): TMS0980 MCU labeled TMC0981NL. die labeled 0980B-81F
* TI Programmer: TMS0980 MCU labeled ZA0675NL, JP0983AT. die labeled 0980B-83
* TI Business Analyst-I: TMS0980 MCU labeled TMC0982NL. die labeled 0980B-82F
* 9-digit 7seg LED display
+ Of note is a peripheral by Schoenherr, called the Braillotron. It acts as
+ a docking station to the TI-30, with an additional display made of magnetic
+ refreshable Braille cells. The TI-30 itself is slightly modified to wire
+ the original LED display to a 25-pin D-Sub connector.
+
***************************************************************************/
class majestic_state : public ticalc1x_state
@@ -1121,6 +1240,19 @@ ROM_START( lilprof78 )
ROM_END
+ROM_START( dataman )
+ ROM_REGION( 0x1000, "maincpu", 0 )
+ ROM_LOAD16_WORD( "tmc1982nl", 0x0000, 0x1000, CRC(3521f53f) SHA1(c46fe7fe20715fdf5aed65833fb867cfd3938062) ) // it matches with source code in patent US4340374
+
+ ROM_REGION( 1246, "maincpu:ipla", 0 )
+ ROM_LOAD( "tms0980_common1_instr.pla", 0, 1246, CRC(42db9a38) SHA1(2d127d98028ec8ec6ea10c179c25e447b14ba4d0) )
+ ROM_REGION( 2056, "maincpu:mpla", 0 )
+ ROM_LOAD( "tms1980_dataman_micro.pla", 0, 2056, CRC(b733b621) SHA1(7897d7db72c0c24555e58738a09ebe0f7f7689b0) )
+ ROM_REGION( 525, "maincpu:opla", 0 )
+ ROM_LOAD( "tms1980_dataman_output.pla", 0, 525, CRC(5fc6f451) SHA1(11475c785c34eab5b13c5dc67f413c709cd4bd4d) )
+ROM_END
+
+
ROM_START( ti30 )
ROM_REGION( 0x1000, "maincpu", 0 )
ROM_LOAD16_WORD( "tmc0981nl", 0x0000, 0x1000, CRC(41298a14) SHA1(06f654c70add4044a612d3a38b0c2831c188fd0c) )
@@ -1168,15 +1300,17 @@ ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */
-COMP( 1974, tisr16, 0, 0, tisr16, tisr16, driver_device, 0, "Texas Instruments", "SR-16", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
-COMP( 1975, tisr16ii, 0, 0, tisr16, tisr16ii, driver_device, 0, "Texas Instruments", "SR-16 II", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
-
-COMP( 1976, ti1270, 0, 0, ti1270, ti1270, driver_device, 0, "Texas Instruments", "TI-1270", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
-COMP( 1977, ti1000, 0, 0, ti1000, ti1000, driver_device, 0, "Texas Instruments", "TI-1000", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
-COMP( 1977, wizatron, 0, 0, wizatron, wizatron, driver_device, 0, "Texas Instruments", "Wiz-A-Tron", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
-COMP( 1976, lilprof, 0, 0, lilprof, lilprof, driver_device, 0, "Texas Instruments", "Little Professor (1976 version)", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
-COMP( 1978, lilprof78, lilprof, 0, lilprof78, lilprof78, driver_device, 0, "Texas Instruments", "Little Professor (1978 version)", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
-
-COMP( 1976, ti30, 0, 0, majestic, ti30, driver_device, 0, "Texas Instruments", "TI-30", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
-COMP( 1977, tiprog, 0, 0, majestic, tiprog, driver_device, 0, "Texas Instruments", "TI Programmer", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
-COMP( 1979, tibusan1, 0, 0, majestic, tibusan1, driver_device, 0, "Texas Instruments", "TI Business Analyst-I", GAME_SUPPORTS_SAVE | GAME_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( 1976, ti1270, 0, 0, ti1270, ti1270, driver_device, 0, "Texas Instruments", "TI-1270", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW )
+COMP( 1977, ti1000, 0, 0, ti1000, ti1000, driver_device, 0, "Texas Instruments", "TI-1000", 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, dataman, 0, 0, dataman, dataman, driver_device, 0, "Texas Instruments", "DataMan", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW )
+
+COMP( 1976, ti30, 0, 0, majestic, ti30, driver_device, 0, "Texas Instruments", "TI-30", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW )
+COMP( 1977, tiprog, 0, 0, majestic, tiprog, driver_device, 0, "Texas Instruments", "TI Programmer", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW )
+COMP( 1979, tibusan1, 0, 0, majestic, tibusan1, driver_device, 0, "Texas Instruments", "TI Business Analyst-I", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW )
diff --git a/src/mame/drivers/tigeroad.c b/src/mame/drivers/tigeroad.c
index 5e812b3fe1d..95f95c8ef68 100644
--- a/src/mame/drivers/tigeroad.c
+++ b/src/mame/drivers/tigeroad.c
@@ -1206,15 +1206,15 @@ GAME( 1987, toramich, tigeroad, toramich, toramich, driver_device, 0, ROT0, "Cap
GAME( 1987, tigeroadb,tigeroad, tigeroad, tigeroad, driver_device, 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", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION ) // collisions are wrong
+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 )
/* This Comad hardware is based around the F1 Dream design */
-GAME( 1990, pushman, 0, pushman, pushman, tigeroad_state, pushman, ROT0, "Comad", "Pushman (Korea, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1990, pushmana, pushman, pushman, pushman, tigeroad_state, pushman, ROT0, "Comad", "Pushman (Korea, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1990, pushmans, pushman, pushman, pushman, tigeroad_state, pushman, ROT0, "Comad (American Sammy license)", "Pushman (American Sammy license)", GAME_SUPPORTS_SAVE )
-GAME( 1990, pushmant, pushman, pushman, pushman, tigeroad_state, pushman, ROT0, "Comad (Top Tronic license)", "Pushman (Top Tronic license)", GAME_SUPPORTS_SAVE )
+GAME( 1990, pushman, 0, pushman, pushman, tigeroad_state, pushman, ROT0, "Comad", "Pushman (Korea, set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, pushmana, pushman, pushman, pushman, tigeroad_state, pushman, ROT0, "Comad", "Pushman (Korea, set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, pushmans, pushman, pushman, pushman, tigeroad_state, pushman, ROT0, "Comad (American Sammy license)", "Pushman (American Sammy license)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, pushmant, pushman, pushman, pushman, tigeroad_state, pushman, ROT0, "Comad (Top Tronic license)", "Pushman (Top Tronic license)", MACHINE_SUPPORTS_SAVE )
-GAME( 1991, bballs, 0, bballs, bballs, tigeroad_state, bballs, ROT0, "Comad", "Bouncing Balls", GAME_SUPPORTS_SAVE )
-GAME( 1991, bballsa, bballs, bballs, bballs, tigeroad_state, bballs, ROT0, "Comad", "Bouncing Balls (Adult)", GAME_SUPPORTS_SAVE )
+GAME( 1991, bballs, 0, bballs, bballs, tigeroad_state, bballs, ROT0, "Comad", "Bouncing Balls", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, bballsa, bballs, bballs, bballs, tigeroad_state, bballs, ROT0, "Comad", "Bouncing Balls (Adult)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/tiki100.c b/src/mame/drivers/tiki100.c
index b10d277eab5..e646a71af0f 100644
--- a/src/mess/drivers/tiki100.c
+++ b/src/mame/drivers/tiki100.c
@@ -14,83 +14,162 @@
TODO:
- - 3 expansion slots
- palette RAM should be written during HBLANK
- - DART clocks
- winchester hard disk
- analog/digital I/O
- light pen
- 8088 CPU card
- - 360KB floppy format
*/
#include "includes/tiki100.h"
-#include "bus/rs232/rs232.h"
/* Memory Banking */
-READ8_MEMBER( tiki100_state::gfxram_r )
+READ8_MEMBER( tiki100_state::mrq_r )
{
- UINT16 addr = (offset + (m_scroll << 7)) & TIKI100_VIDEORAM_MASK;
+ bool mdis = 1;
- return m_video_ram[addr];
+ UINT8 data = m_exp->mrq_r(space, offset, 0xff, mdis);
+
+ offs_t prom_addr = mdis << 5 | m_vire << 4 | m_rome << 3 | (offset >> 13);
+ UINT8 prom = m_prom->base()[prom_addr] ^ 0xff;
+
+ if (prom & ROM0)
+ {
+ data = m_rom->base()[offset & 0x3fff];
+ }
+
+ if (prom & ROM1)
+ {
+ data = m_rom->base()[0x2000 | (offset & 0x3fff)];
+ }
+
+ if (prom & VIR)
+ {
+ UINT16 addr = (offset + (m_scroll << 7)) & TIKI100_VIDEORAM_MASK;
+
+ data = m_video_ram[addr];
+ }
+
+ if (prom & RAM)
+ {
+ data = m_ram->pointer()[offset];
+ }
+
+ return data;
}
-WRITE8_MEMBER( tiki100_state::gfxram_w )
+WRITE8_MEMBER( tiki100_state::mrq_w )
{
- UINT16 addr = (offset + (m_scroll << 7)) & TIKI100_VIDEORAM_MASK;
+ bool mdis = 1;
+ offs_t prom_addr = mdis << 5 | m_vire << 4 | m_rome << 3 | (offset >> 13);
+ UINT8 prom = m_prom->base()[prom_addr] ^ 0xff;
- m_video_ram[addr] = data;
+ if (prom & VIR)
+ {
+ UINT16 addr = (offset + (m_scroll << 7)) & TIKI100_VIDEORAM_MASK;
+
+ m_video_ram[addr] = data;
+ }
+
+ if (prom & RAM)
+ {
+ m_ram->pointer()[offset] = data;
+ }
+
+ m_exp->mrq_w(space, offset, data);
}
-void tiki100_state::bankswitch()
+READ8_MEMBER( tiki100_state::iorq_r )
{
- address_space &program = m_maincpu->space(AS_PROGRAM);
+ UINT8 data = m_exp->iorq_r(space, offset, 0xff);
- if (m_vire)
+ switch ((offset & 0xff) >> 2)
{
- if (!m_rome)
+ case 0x00: // KEYS
+ data = keyboard_r(space, 0);
+ break;
+
+ case 0x01: // SERS
+ data = m_dart->cd_ba_r(space, offset & 0x03);
+ break;
+
+ case 0x02: // PARS
+ data = m_pio->read(space, offset & 0x03);
+ break;
+
+ case 0x04: // FLOP
+ data = m_fdc->read(space, offset & 0x03);
+ break;
+
+ case 0x05: // VIPS
+ switch (offset & 0x03)
{
- /* reserved */
- program.unmap_readwrite(0x0000, 0xffff);
+ case 3:
+ data = m_psg->data_r(space, 0);
+ break;
}
- else
- {
- /* GFXRAM, GFXRAM, RAM */
- program.install_readwrite_handler(0x0000, 0x7fff, READ8_DELEGATE(tiki100_state, gfxram_r), WRITE8_DELEGATE(tiki100_state, gfxram_w));
- program.install_readwrite_bank(0x8000, 0xffff, "bank3");
+ break;
- membank("bank1")->set_entry(BANK_VIDEO_RAM);
- membank("bank2")->set_entry(BANK_VIDEO_RAM);
- membank("bank3")->set_entry(BANK_RAM);
- }
+ case 0x06: // TIMS
+ data = m_ctc->read(space, offset & 0x03);
+ break;
}
- else
+
+ return data;
+}
+
+WRITE8_MEMBER( tiki100_state::iorq_w )
+{
+ m_exp->iorq_w(space, offset, data);
+
+ switch ((offset & 0xff) >> 2)
{
- if (!m_rome)
- {
- /* ROM, RAM, RAM */
- program.install_read_bank(0x0000, 0x3fff, "bank1");
- program.unmap_write(0x0000, 0x3fff);
- program.install_readwrite_bank(0x4000, 0x7fff, "bank2");
- program.install_readwrite_bank(0x8000, 0xffff, "bank3");
-
- membank("bank1")->set_entry(BANK_ROM);
- membank("bank2")->set_entry(BANK_RAM);
- membank("bank3")->set_entry(BANK_RAM);
- }
- else
+ case 0x00: // KEYS
+ keyboard_w(space, 0, data);
+ break;
+
+ case 0x01: // SERS
+ m_dart->cd_ba_w(space, offset & 0x03, data);
+ break;
+
+ case 0x02: // PARS
+ m_pio->write(space, offset & 0x03, data);
+ break;
+
+ case 0x03: // VIPB
+ video_mode_w(space, 0, data);
+ break;
+
+ case 0x04: // FLOP
+ m_fdc->write(space, offset & 0x03, data);
+ break;
+
+ case 0x05: // VIPS
+ switch (offset & 0x03)
{
- /* RAM, RAM, RAM */
- program.install_readwrite_bank(0x0000, 0x3fff, "bank1");
- program.install_readwrite_bank(0x4000, 0x7fff, "bank2");
- program.install_readwrite_bank(0x8000, 0xffff, "bank3");
-
- membank("bank1")->set_entry(BANK_RAM);
- membank("bank2")->set_entry(BANK_RAM);
- membank("bank3")->set_entry(BANK_RAM);
+ case 0: case 1:
+ palette_w(space, 0, data);
+ break;
+
+ case 2:
+ m_psg->address_w(space, 0, data);
+ break;
+
+ case 3:
+ m_psg->data_w(space, 0, data);
+ break;
}
+ break;
+
+ case 0x06: // TIMS
+ m_ctc->write(space, offset & 0x03, data);
+ break;
+
+ case 0x07: // SYL
+ system_w(space, 0, data);
+ break;
}
}
@@ -215,38 +294,18 @@ WRITE8_MEMBER( tiki100_state::system_w )
/* bankswitch */
m_rome = BIT(data, 2);
m_vire = BIT(data, 3);
-
- bankswitch();
}
/* Memory Maps */
static ADDRESS_MAP_START( tiki100_mem, AS_PROGRAM, 8, tiki100_state )
ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x0000, 0x3fff) AM_RAMBANK("bank1")
- AM_RANGE(0x4000, 0x7fff) AM_RAMBANK("bank2")
- AM_RANGE(0x8000, 0xffff) AM_RAMBANK("bank3")
+ AM_RANGE(0x0000, 0xffff) AM_READWRITE(mrq_r, mrq_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( tiki100_io, AS_IO, 8, tiki100_state )
ADDRESS_MAP_UNMAP_HIGH
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_MIRROR(0x03) AM_READWRITE(keyboard_r, keyboard_w)
- AM_RANGE(0x04, 0x07) AM_DEVREADWRITE(Z80DART_TAG, z80dart_device, cd_ba_r, cd_ba_w)
- AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE(Z80PIO_TAG, z80pio_device, read, write)
- AM_RANGE(0x0c, 0x0c) AM_MIRROR(0x03) AM_WRITE(video_mode_w)
- AM_RANGE(0x10, 0x13) AM_DEVREADWRITE(FD1797_TAG, fd1797_t, read, write)
- AM_RANGE(0x14, 0x14) AM_MIRROR(0x01) AM_WRITE(palette_w)
- AM_RANGE(0x16, 0x16) AM_DEVWRITE(AY8912_TAG, ay8910_device, address_w)
- AM_RANGE(0x17, 0x17) AM_DEVREADWRITE(AY8912_TAG, ay8910_device, data_r, data_w)
- AM_RANGE(0x18, 0x1b) AM_DEVREADWRITE(Z80CTC_TAG, z80ctc_device, read, write)
- AM_RANGE(0x1c, 0x1c) AM_MIRROR(0x03) AM_WRITE(system_w)
-// AM_RANGE(0x20, 0x27) AM_NOP // winchester controller
-// AM_RANGE(0x60, 0x6f) analog I/O (SINTEF)
-// AM_RANGE(0x60, 0x67) digital I/O (RVO)
-// AM_RANGE(0x70, 0x77) analog/digital I/O
-// AM_RANGE(0x78, 0x7b) light pen
-// AM_RANGE(0x7e, 0x7f) 8088/87 processor w/128KB RAM
+ AM_RANGE(0x0000, 0xffff) AM_READWRITE(iorq_r, iorq_w)
ADDRESS_MAP_END
/* Input Ports */
@@ -388,6 +447,11 @@ static INPUT_PORTS_START( tiki100 )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
+
+ PORT_START("ST")
+ PORT_CONFNAME( 0x01, 0x01, "DART TxCA")
+ PORT_CONFSETTING( 0x00, "BAR0" )
+ PORT_CONFSETTING( 0x01, "BAR2" )
INPUT_PORTS_END
/* Video */
@@ -545,16 +609,19 @@ TIMER_DEVICE_CALLBACK_MEMBER(tiki100_state::ctc_tick)
m_ctc->trg1(0);
}
-WRITE_LINE_MEMBER( tiki100_state::ctc_z0_w )
+WRITE_LINE_MEMBER( tiki100_state::bar0_w )
{
m_ctc->trg2(state);
m_dart->rxca_w(state);
- m_dart->txca_w(state);
+
+ if (!m_st) m_dart->txca_w(state);
}
-WRITE_LINE_MEMBER( tiki100_state::ctc_z2_w )
+WRITE_LINE_MEMBER( tiki100_state::bar2_w )
{
+ if (m_st) m_dart->txca_w(state);
+
m_ctc->trg3(state);
}
@@ -584,16 +651,24 @@ static const z80_daisy_config tiki100_daisy_chain[] =
{ Z80CTC_TAG },
{ Z80DART_TAG },
{ Z80PIO_TAG },
+ { "slot1" },
+ { "slot2" },
+ { "slot3" },
{ NULL }
};
-
-
TIMER_DEVICE_CALLBACK_MEMBER( tiki100_state::tape_tick )
{
m_pio->port_b_write((m_cassette->input() > 0.0) << 7);
}
+WRITE_LINE_MEMBER( tiki100_state::busrq_w )
+{
+ // since our Z80 has no support for BUSACK, we assume it is granted immediately
+ m_maincpu->set_input_line(Z80_INPUT_LINE_BUSRQ, state);
+ m_exp->busak_w(state);
+}
+
/* Machine Start */
void tiki100_state::machine_start()
@@ -601,20 +676,6 @@ void tiki100_state::machine_start()
/* allocate video RAM */
m_video_ram.allocate(TIKI100_VIDEORAM_SIZE);
- /* setup memory banking */
- UINT8 *ram = m_ram->pointer();
-
- membank("bank1")->configure_entry(BANK_ROM, m_rom->base());
- membank("bank1")->configure_entry(BANK_RAM, ram);
- membank("bank1")->configure_entry(BANK_VIDEO_RAM, m_video_ram);
-
- membank("bank2")->configure_entry(BANK_RAM, ram + 0x4000);
- membank("bank2")->configure_entry(BANK_VIDEO_RAM, m_video_ram + 0x4000);
-
- membank("bank3")->configure_entry(BANK_RAM, ram + 0x8000);
-
- bankswitch();
-
/* register for state saving */
save_item(NAME(m_rome));
save_item(NAME(m_vire));
@@ -622,6 +683,10 @@ void tiki100_state::machine_start()
save_item(NAME(m_mode));
save_item(NAME(m_palette_val));
save_item(NAME(m_keylatch));
+ save_item(NAME(m_centronics_ack));
+ save_item(NAME(m_centronics_busy));
+ save_item(NAME(m_centronics_perror));
+ save_item(NAME(m_st));
}
void tiki100_state::machine_reset()
@@ -629,6 +694,8 @@ void tiki100_state::machine_reset()
address_space &space = m_maincpu->space(AS_PROGRAM);
system_w(space, 0, 0);
+
+ m_st = m_st_io->read();
}
/* Machine Driver */
@@ -642,14 +709,19 @@ static MACHINE_CONFIG_START( tiki100, tiki100_state )
/* video hardware */
MCFG_SCREEN_ADD(SCREEN_TAG, RASTER)
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
+ MCFG_SCREEN_RAW_PARAMS(XTAL_20MHz, 1280, 0, 1024, 312, 0, 256)
MCFG_SCREEN_UPDATE_DRIVER(tiki100_state, screen_update)
- MCFG_SCREEN_SIZE(1024, 256)
- MCFG_SCREEN_VISIBLE_AREA(0, 1024-1, 0, 256-1)
-
MCFG_PALETTE_ADD("palette", 16)
- // pixel clock 20.01782 MHz
+
+ MCFG_TIKI100_BUS_ADD()
+ MCFG_TIKI100_BUS_IRQ_CALLBACK(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0))
+ MCFG_TIKI100_BUS_NMI_CALLBACK(INPUTLINE(Z80_TAG, INPUT_LINE_NMI))
+ MCFG_TIKI100_BUS_BUSRQ_CALLBACK(WRITELINE(tiki100_state, busrq_w))
+ MCFG_TIKI100_BUS_IN_MREQ_CALLBACK(READ8(tiki100_state, mrq_r))
+ MCFG_TIKI100_BUS_OUT_MREQ_CALLBACK(WRITE8(tiki100_state, mrq_w))
+ MCFG_TIKI100_BUS_SLOT_ADD("slot1", "8088")
+ MCFG_TIKI100_BUS_SLOT_ADD("slot2", "hdc")
+ MCFG_TIKI100_BUS_SLOT_ADD("slot3", NULL)
/* devices */
MCFG_Z80DART_ADD(Z80DART_TAG, XTAL_8MHz/4, 0, 0, 0, 0 )
@@ -670,9 +742,9 @@ static MACHINE_CONFIG_START( tiki100, tiki100_state )
MCFG_DEVICE_ADD(Z80CTC_TAG, Z80CTC, XTAL_8MHz/4)
MCFG_Z80CTC_INTR_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0))
- MCFG_Z80CTC_ZC0_CB(WRITELINE(tiki100_state, ctc_z0_w))
+ MCFG_Z80CTC_ZC0_CB(WRITELINE(tiki100_state, bar0_w))
MCFG_Z80CTC_ZC1_CB(DEVWRITELINE(Z80DART_TAG, z80dart_device, rxtxcb_w))
- MCFG_Z80CTC_ZC2_CB(WRITELINE(tiki100_state, ctc_z2_w))
+ MCFG_Z80CTC_ZC2_CB(WRITELINE(tiki100_state, bar2_w))
MCFG_TIMER_DRIVER_ADD_PERIODIC("ctc", tiki100_state, ctc_tick, attotime::from_hz(XTAL_8MHz/4))
@@ -718,15 +790,15 @@ MACHINE_CONFIG_END
/* ROMs */
ROM_START( kontiki )
- ROM_REGION( 0x10000, Z80_TAG, ROMREGION_ERASEFF )
+ ROM_REGION( 0x4000, Z80_TAG, ROMREGION_ERASEFF )
ROM_LOAD( "tikirom-1.30.u10", 0x0000, 0x2000, CRC(c482dcaf) SHA1(d140706bb7fc8b1fbb37180d98921f5bdda73cf9) )
- ROM_REGION( 0x100, "proms", 0 )
- ROM_LOAD( "63ls140.u4", 0x000, 0x100, NO_DUMP )
+ ROM_REGION( 0x100, "u4", 0 )
+ ROM_LOAD( "53ls140.u4", 0x000, 0x100, CRC(894b756f) SHA1(429e10de0e0e749246895801b18186ff514c12bc) )
ROM_END
ROM_START( tiki100 )
- ROM_REGION( 0x10000, Z80_TAG, ROMREGION_ERASEFF )
+ ROM_REGION( 0x4000, Z80_TAG, ROMREGION_ERASEFF )
ROM_DEFAULT_BIOS( "v203w" )
ROM_SYSTEM_BIOS( 0, "v135", "TIKI ROM v1.35" )
@@ -734,12 +806,12 @@ ROM_START( tiki100 )
ROM_SYSTEM_BIOS( 1, "v203w", "TIKI ROM v2.03 W" )
ROMX_LOAD( "tikirom-2.03w.u10", 0x0000, 0x2000, CRC(79662476) SHA1(96336633ecaf1b2190c36c43295ac9f785d1f83a), ROM_BIOS(2) )
- ROM_REGION( 0x100, "proms", 0 )
- ROM_LOAD( "63ls140.u4", 0x000, 0x100, NO_DUMP )
+ ROM_REGION( 0x100, "u4", 0 )
+ ROM_LOAD( "53ls140.u4", 0x000, 0x100, CRC(894b756f) SHA1(429e10de0e0e749246895801b18186ff514c12bc) )
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", GAME_SUPPORTS_SAVE )
-COMP( 1984, tiki100, kontiki, 0, tiki100, tiki100, driver_device, 0, "Tiki Data A/S", "TIKI 100", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/tim011.c b/src/mame/drivers/tim011.c
index bf727a5640e..005efa249a2 100644
--- a/src/mess/drivers/tim011.c
+++ b/src/mame/drivers/tim011.c
@@ -162,4 +162,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1987, tim011, 0, 0, tim011, tim011, driver_device, 0, "Mihajlo Pupin Institute", "TIM-011", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/tim100.c b/src/mame/drivers/tim100.c
index 48a8da85df8..212a2e60f39 100644
--- a/src/mess/drivers/tim100.c
+++ b/src/mame/drivers/tim100.c
@@ -165,4 +165,4 @@ ROM_START( tim100 )
ROM_END
/* Driver */
-COMP( 1985, tim100, 0, 0, tim100, tim100, driver_device, 0, "Mihajlo Pupin Institute", "TIM-100", GAME_IS_SKELETON)
+COMP( 1985, tim100, 0, 0, tim100, tim100, driver_device, 0, "Mihajlo Pupin Institute", "TIM-100", MACHINE_IS_SKELETON)
diff --git a/src/mame/drivers/timelimt.c b/src/mame/drivers/timelimt.c
index c9d5e766f65..6ab4f08e538 100644
--- a/src/mame/drivers/timelimt.c
+++ b/src/mame/drivers/timelimt.c
@@ -320,5 +320,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", GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE )
-GAME( 1984, progress, 0, timelimt, progress, driver_device, 0, ROT90, "Chuo Co. Ltd", "Progress", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/timeplt.c b/src/mame/drivers/timeplt.c
index 4032228bb3d..52df64370bd 100644
--- a/src/mame/drivers/timeplt.c
+++ b/src/mame/drivers/timeplt.c
@@ -695,12 +695,12 @@ ROM_END
*
*************************************/
-GAME( 1982, timeplt, 0, timeplt, timeplt, driver_device, 0, ROT90, "Konami", "Time Pilot", GAME_SUPPORTS_SAVE )
-GAME( 1982, timepltc, timeplt, timeplt, timeplt, driver_device, 0, ROT90, "Konami (Centuri license)", "Time Pilot (Centuri)", GAME_SUPPORTS_SAVE )
-GAME( 1982, timeplta, timeplt, timeplt, timeplt, driver_device, 0, ROT90, "Konami (Atari license)", "Time Pilot (Atari)", GAME_SUPPORTS_SAVE )
-GAME( 1982, spaceplt, timeplt, timeplt, timeplt, driver_device, 0, ROT90, "bootleg", "Space Pilot", GAME_SUPPORTS_SAVE )
+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( 1988, psurge, 0, psurge, psurge, driver_device, 0, ROT270, "Vision Electronics", "Power Surge", GAME_SUPPORTS_SAVE )
+GAME( 1988, psurge, 0, psurge, psurge, driver_device, 0, ROT270, "Vision Electronics", "Power Surge", MACHINE_SUPPORTS_SAVE )
-GAME( 1988, chkun, 0, chkun, chkun, driver_device, 0, ROT90, "Peni", "Chance Kun (Japan)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
-GAME( 1987, bikkuric, 0, bikkuric,bikkuric, driver_device,0, ROT90, "Peni", "Bikkuri Card (Japan)", GAME_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 )
diff --git a/src/mame/drivers/timetrv.c b/src/mame/drivers/timetrv.c
index fab96e8333e..0271b4041cb 100644
--- a/src/mame/drivers/timetrv.c
+++ b/src/mame/drivers/timetrv.c
@@ -185,4 +185,4 @@ ROM_START( timetrv )
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", GAME_NO_SOUND | GAME_NOT_WORKING )
+GAME( 1991, timetrv, 0, timetrv, timetrv, driver_device, 0, ROT0, "Virtual Image Productions (Sega license)", "Time Traveler", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/timex.c b/src/mame/drivers/timex.c
index 806b6887571..806b6887571 100644
--- a/src/mess/drivers/timex.c
+++ b/src/mame/drivers/timex.c
diff --git a/src/mess/drivers/tispeak.c b/src/mame/drivers/tispeak.c
index 78eb11da72d..2e66df4a007 100644
--- a/src/mess/drivers/tispeak.c
+++ b/src/mame/drivers/tispeak.c
@@ -1,15 +1,17 @@
// license:BSD-3-Clause
-// copyright-holders:hap, Jonathan Gevaryahu
+// copyright-holders:hap, Jonathan Gevaryahu, Sean Riddle
/***************************************************************************
** subclass of hh_tms1k_state (includes/hh_tms1k.h, drivers/hh_tms1k.c) **
- Texas Instruments 1st-gen. handheld speech devices,
+ Texas Instruments 1st-gen. handheld speech devices.
These devices, mostly edu-toys, are based around an MCU(TMS0270/TMS1100),
TMS51xx speech, and VSM ROM(s). Newer devices, such as Speak & Music,
are based around the TMP50C40 and belong in another driver, probably.
+ note: except for tntell, MAME external artwork is not required. But it
+ is objectively a large improvement.
----------------------------------------------------------------------------
@@ -21,7 +23,7 @@ Some of these may have pre-release bugs.
Speak & Spell: US4189779
Speak & Math: US4946391
- Touch & Tell: US4403965** (patent calls it "Speak & Seek")
+ Touch & Tell: US4403965, EP0048835A2 (patent calls it "Speak & Seek")
Language Translator: US4631748
@@ -33,32 +35,38 @@ above expectations. TI continued to manufacture many products for this line.
Speak & Spell (US), 1978
- MCU: TMC0271*
- - TMS51xx(1/2): 16KB TMC0351NL
- - TMS51xx(2/2): 16KB TMC0352NL
+ - TMS51xx: TMC0281
+ - VSM(1/2): 16KB TMC0351NL
+ - VSM(2/2): 16KB TMC0352NL
+ - VFD: NEC FIP8A5AR no. 3A
- notes: keyboard has buttons instead of cheap membrane
Speak & Spell (US), 1979
- MCU: TMC0271* (different from 1978 version)
- - TMS51xx(1/2): 16KB TMC0351N2L
- - TMS51xx(2/2): 16KB TMC0352N2L
+ - TMS51xx: TMC0281
+ - VSM(1/2): 16KB TMC0351N2L
+ - VSM(2/2): 16KB TMC0352N2L
- notes: fixed a funny bug with gibberish-talk when Module button is pressed
with no module inserted
Speak & Spell (US), 1980
- - MCU: TMC0271* (same as 1979 version)
- - TMS51xx: 16KB CD2350 (rev.A)
+ - MCU: same as 1979 version
+ - TMS51xx: TMC0281D
+ - VSM: 16KB CD2350(rev.A)
- notes: only 1 VSM, meaning much smaller internal vocabulary
Speak & Spell (Japan), 1980
- MCU: TMC0271* (assume same as US 1978 or 1979 version)
- - TMS51xx(1/2): 16KB CD2321
- - TMS51xx(2/2): 16KB CD2322
+ - TMS51xx: TMC0281
+ - VSM(1/2): 16KB CD2321
+ - VSM(2/2): 16KB CD2322
- notes: no local name for the product, words are in English but very low difficulty
Speak & Spell (UK), 1978
- MCU: TMC0271* (assume same as US 1978 version)
- - TMS51xx(1/2): 16KB CD2303
- - TMS51xx(2/2): 16KB CD2304
+ - TMS51xx: TMC0281
+ - VSM(1/2): 16KB CD2303
+ - VSM(2/2): 16KB CD2304
- notes: voice data was manually altered to give it a UK accent,
here's a small anecdote from developer:
"(...) I cannot bear to listen the product even now. I remember the
@@ -66,31 +74,36 @@ above expectations. TI continued to manufacture many products for this line.
Speak & Spell (UK), 1981
- MCU: TMC0271* (assume same as US 1979 version)
- - TMS51xx: 16KB CD62175
+ - TMS51xx: CD2801
+ - VSM: 16KB CD62175
+ - VFD: same as Speak & Math(!)
- notes: this one has a dedicated voice actor
Speak & Spell (France) "La Dictee Magique", 1980
- MCU: CD2702**
- - TMS51xx: 16KB CD2352
+ - TMS51xx: CD2801
+ - VSM: 16KB CD2352
Speak & Spell (Germany) "Buddy", 1980
- - MCU: CD2702** (same as French 1980 version)
- - TMS51xx(1/2): 16KB CD2345*
- - TMS51xx(2/2): 16KB CD2346*
+ - MCU & TMS51xx: same as French 1980 version
+ - VSM(1/2): 16KB CD2345*
+ - VSM(2/2): 16KB CD2346*
Speak & Spell (Italy) "Grillo Parlante", 1982
- - MCU: CD2702** (same as French 1980 version)
- - TMS51xx: 16KB? CD62190**
+ - MCU & TMS51xx: same as French 1980 version
+ - VSM: 16KB CD62190
+ - VFD: same as Speak & Math
+ - notes: it appears that TI ran out of original snspell VFDs in the early 80s?
Speak & Spell Compact (US), 1981
- MCU: CD8011**
- - TMS51xx: 16KB CD2354
- - TMS51xx: 16KB CD2354A (rev.A)
- - notes: no display, MCU is TMS1100 instead of TMS0270
+ - TMS51xx: TMC0281D
+ - VSM: 16KB CD2354, CD2354(rev.A)
+ - notes: no display, MCU is TMS1100 instead of TMS0270, overall similar to Touch & Tell
Speak & Spell Compact (UK) "Speak & Write", 1981
- - MCU: CD8011** (same as US 1981 version)
- - TMS51xx: 16KB CD62174 (rev.A)
+ - MCU & TMS51xx: same as US 1981 version
+ - VSM: 16KB CD62174(rev.A)
- notes: anecdotes from the developer, the same person working on the original UK version:
"We included a pencil and writing pad - it was now about 'writing'.",
and one about the welcome message:
@@ -103,34 +116,36 @@ Speak & Spell modules:
Note that they are interchangeable, eg. you can use a French module on a US Speak & Spell.
English:
- - Vowel Power: TMS51xx: 16KB CD2302
- - Number Stumpers 4-6: TMS51xx: 16KB CD2305
- - Number Stumpers 7-8: TMS51xx: 16KB CD2307 (rev.A)
- - Basic Builders: TMS51xx: 16KB CD2308
- - Mighty Verbs: TMS51xx: 16KB CD2309 (rev.B)
- - Homonym Heroes: TMS51xx: 16KB CD2310
- - Vowel Ventures: TMS51xx: 16KB CD2347 (rev.C)
- - Noun Endings: TMS51xx: 16KB CD2348
- - Magnificent Modifiers: TMS51xx: 16KB CD2349
- - E.T. Fantasy: TMS51xx: 16KB CD2360
+ - Vowel Power: VSM: 16KB CD2302
+ - Number Stumpers 4-6: VSM: 16KB CD2305
+ - Number Stumpers 7-8: VSM: 16KB CD2307(rev.A)
+ - Basic Builders: VSM: 16KB CD2308
+ - Mighty Verbs: VSM: 16KB CD2309(rev.B)
+ - Homonym Heroes: VSM: 16KB CD2310
+ - Vowel Ventures: VSM: 16KB CD2347(rev.C)
+ - Noun Endings: VSM: 16KB CD2348
+ - Magnificent Modifiers: VSM: 16KB CD2349
+ - E.T. Fantasy: VSM: 16KB CD2360
French:
- - No.1: Les Mots de Base: TMS51xx: 16KB CD2353 (1st release was called "Module No. 1 de Jacques Capelovici")
- - No.2: Les Mots Difficilies: TMS51xx: 16KB? CD62177*
- - No.3: Les Animaux Familiers: TMS51xx: 16KB? CD62047
- - No.4: Les Magasins De La Rue: TMS51xx: 16KB CD62048
- - No.5: Les Extra-Terrestres: TMS51xx: 16KB? CD62178*
+ - No.1: Les Mots de Base: VSM: 16KB CD2353 (1st release was called "Module No. 1 de Jacques Capelovici")
+ - No.2: Les Mots Difficilies: VSM: 16KB? CD62177*
+ - No.3: Les Animaux Familiers: VSM: 16KB? CD62047*
+ - No.4: Les Magasins De La Rue: VSM: 16KB CD62048
+ - No.5: Les Extra-Terrestres: VSM: 16KB? CD62178*
Italian:
- - Super Modulo: TMS51xx: 16KB? CD62313*
+ - Super Modulo: VSM: 16KB? CD62313*
Speak & Math:
Speak & Math (US), 1980 (renamed to "Speak & Maths" in UK, but is the same product)
- MCU: CD2704*
- - TMS51xx(1/2): 16KB CD2392
- - TMS51xx(2/2): 16KB CD2393
+ - TMS51xx: CD2801
+ - VSM(1/2): 16KB CD2392
+ - VSM(2/2): 16KB CD2393
+ - VFD: Futaba 9SY -02Z 7E
- notes: As with the Speak & Spell, the voice actor was a radio announcer.
However, the phrase "is greater than or less than" had to be added in a
hurry by one of the TI employees in a hurry, the day before a demo.
@@ -138,12 +153,14 @@ Speak & Math:
Speak & Math (US), 1986
- MCU: CD2708, labeled CD2708N2L (die labeled TMC0270F 2708A)
- - TMS51xx(1/2): 16KB CD2381
- - TMS51xx(2/2): 4KB CD2614
+ - TMS51xx: CD2801
+ - VSM(1/2): 16KB CD2381
+ - VSM(2/2): 4KB CD2614
Speak & Math 'Compact' (France) "Les Maths Magiques", 1986?
- MCU: CP3447-NL* (TMS1100?)
- - CD2801: 16KB? CD62173*
+ - TMS51xx: CD2801
+ - VSM: 16KB? CD62173*
- notes: this is not the same as "Le Calcul Magique", that's from a
series centered around a TMS50C40 instead of MCU+TMS51xx
@@ -152,57 +169,132 @@ Speak & Read:
Speak & Read (US), 1980
- MCU: CD2705, labeled CD2705B-N2L (die labeled TMC0270E 2705B) - 2nd revision?
- - TMS51xx(1/2): 16KB CD2394 (rev.A)
- - TMS51xx(2/2): 16KB CD2395 (rev.A)
+ - TMS51xx: CD2801
+ - VSM(1/2): 16KB CD2394(rev.A)
+ - VSM(2/2): 16KB CD2395(rev.A)
+ - VFD: same as Language Tutor, rightmost digit unused
Speak & Read modules:
English:
- - Sea Sights: TMS51xx: 16KB CD2396 (rev.A)
- - Who's Who at the Zoo: TMS51xx: 16KB CD2397
- - A Dog on a Log: TMS51xx: 16KB CD3534 (rev.A)
- - The Seal That Could Fly: TMS51xx: 16KB CD3535
- - A Ghost in the House: TMS51xx: 16KB CD3536*
- - On the Track: TMS51xx: 16KB CD3538
- - The Third Circle: TMS51xx: 16KB CD3539*
- - The Millionth Knight: TMS51xx: 16KB CD3540
+ - Sea Sights: VSM: 16KB CD2396(rev.A)
+ - Who's Who at the Zoo: VSM: 16KB CD2397
+ - A Dog on a Log: VSM: 16KB CD3534(rev.A)
+ - The Seal That Could Fly: VSM: 16KB CD3535
+ - A Ghost in the House: VSM: 16KB CD3536*
+ - On the Track: VSM: 16KB CD3538
+ - The Third Circle: VSM: 16KB CD3539*
+ - The Millionth Knight: VSM: 16KB CD3540
Touch & Tell:
Touch & Tell (US), 1981
- - MCU: CD8012**
- - TMS51xx: 4KB CD2610
+ - MCU: CD8012
+ - TMS51xx: CD2802
+ - VSM: 4KB CD2610
- notes: MCU is TMS1100 instead of TMS0270. CD8010 is seen in some devices
too, maybe an earlier version?
Touch & Tell (UK), 1981
- - MCU: ?* (assume same as US version)
- - TMS51xx: ?KB CD62170*
+ - MCU & TMS51xx: same as US version
+ - VSM: 16KB CD62170
Touch & Tell (France) "Le Livre Magique", 1981
- - MCU: ?* (assume same as US version)
- - TMS51xx: ?KB CD62171*
+ - MCU & TMS51xx: same as US version
+ - VSM: 16KB CD62171
Touch & Tell (Germany) "Tipp & Sprich", 1981
- - MCU: ?* (assume same as US version)
- - TMS51xx: ?KB CD62172*
+ - MCU & TMS51xx: same as US version
+ - VSM: ?KB CD62172*
Touch & Tell (Italy) "Libro Parlante", 1982
- - MCU: ?* (assume same as US version)
- - TMS51xx: ?KB CD62176*
+ - MCU & TMS51xx: same as US version
+ - VSM: ?KB CD62176*
+ Vocaid (US), 1982
+ - MCU & TMS51xx: same as Touch & Tell (US)
+ - VSM: 16KB CD2357
+ - notes: MCU is the same as in Touch & Tell, but instead of a toddler's toy,
+ you get a serious medical aid device for the voice-impaired. The PCB is
+ identical, it includes the edge connector for modules but no external slot.
Touch & Tell modules:
English:
- - Animal Friends: CD2802: 16KB CD2355
- - World of Transportation: CD2802: 16KB CD2361
- - Little Creatures: CD2802: 16KB CD2362
- - E.T.: CD2802: 16KB CD2363**
- - Alphabet Fun: TMS51xx: 4KB CD2611
- - Number Fun: TMS51xx: 4KB CD2612
- - All About Me: TMS51xx: 4KB CD2613
+ - Alphabet Fun: VSM: 4KB CD2611
+ - Animal Friends: VSM: 16KB CD2355
+ - Number Fun: VSM: 4KB CD2612*, CD2612(rev.A)
+ - All About Me: VSM: 4KB CD2613
+ - World of Transportation: VSM: 16KB CD2361
+ - Little Creatures: VSM: 16KB CD2362
+ - E.T.: VSM: 16KB CD2363
+
+Touch & Tell/Vocaid overlay reference:
+
+ tntell CD2610:
+ - 04: a - Colors
+ - 01: b - Objects
+ - 05: c - Shapes
+ - 09: d - Home Scene
+ tntelluk CD62170, tntellfr CD62171:
+ - see tntell
+ - see numfun(not A)
+ - see animalfr
+ - 08: ? - Clown Face
+ - 0B: ? - Body Parts
+ vocaid CD2357:
+ - 1C: 1 - Leisure
+ - 1E: 2 - Telephone
+ - 1B: 3 - Bedside
+ - 1D: 4 - Alphabet
+ alphabet CD2611:
+ - 0E: 1a - Alphabet A-M
+ - 0D: 1b - Alphabet N-Z
+ - 0C: 1c - Letter Jumble A-M
+ - 0B: 1d - Letter Jumble N-Z
+ animalfr CD2355:
+ - 0A: 2a - Farm Animals
+ - 0F: 2b - At The Farm
+ - 0E: 2c - Animal Babies
+ - 0D: 2d - In The Jungle
+ numfun CD2612:
+ - 02/0A(rev.A): 3a - Numbers 1-10
+ - 03/0F(rev.A): 3b - Numbers 11-30
+ - 07/0D(rev.A): 3c - How Many?
+ - 06/0E(rev.A): 3d - Hidden Numbers
+ aboutme CD2613:
+ - 0E: 4a - Clown Face
+ - 0B: 4b - Body Parts
+ - 0D: 4c - Things to Wear
+ - 0C: 4d - Just For Me
+ wot CD2361:
+ - 0A: 5a - On Land
+ - 0B: 5b - In The Air
+ - 0C: 5c - On The Water
+ - 0D: 5d - In Space
+ - 10: 5e - What Belongs Here?
+ - 11: 5f - How It Used To Be
+ - 12: 5g - Word Fun
+ - 13: 5h - In the Surprise Garage
+ lilcreat CD2362:
+ - 14: 6a - In The Park
+ - 15: 6b - In The Sea
+ - 16: 6c - In The Woods
+ - 17: 6d - Whose House?
+ - 18: 6e - Hide & Seek
+ - 1A: 6f - Who Is It?
+ - 19: 6g - But It's Not
+ - 1B: 6h - Word Fun
+ et CD2363:
+ - 0F: 7a - The Adventure On Earth I
+ - 10: 7b - The Adventure On Earth II
+ - 11: 7c - Fun And Friendship I
+ - 12: 7d - Fun And Friendship II
+ - 13: 7e - E.T. The Star I
+ - 14: 7f - E.T. The Star II
+ - 15: 7g - Do You Remember? I
+ - 16: 7h - Do You Remember? II
Language Tutor/Translator:
@@ -211,61 +303,36 @@ A later device, called Language Teacher, was released without speech hardware.
Language Tutor (US), 1978
- MCU: TMC0275*
+ - TMS51xx: CD2801
+ - VFD: NEC FIP10xxx?
- notes: external module is required (see below)
Language Tutor modules:
- - Ingles(1/4): TMS51xx: 16KB CD2311*
- - Ingles(2/4): TMS51xx: 16KB CD2312*
- - Ingles(3/4): TMS51xx: 16KB CD2313*
- - Ingles(4/4): TMS51xx: 16KB CD2314*
-
- - Spanish(1/4): TMS51xx: 16KB CD2315*
- - Spanish(2/4): TMS51xx: 16KB CD2316*
- - Spanish(3/4): TMS51xx: 16KB CD2317
- - Spanish(4/4): TMS51xx: 16KB CD2318
-
- - French(1/4): TMS51xx: 16KB CD2327
- - French(2/4): TMS51xx: 16KB CD2328
- - French(3/4): TMS51xx: 16KB CD2329
- - French(4/4): TMS51xx: 16KB CD2330
-
- - German(1/4): TMS51xx: 16KB CD2331
- - German(2/4): TMS51xx: 16KB CD2332
- - German(3/4): TMS51xx: 16KB CD2333
- - German(4/4): TMS51xx: 16KB CD2334
-
- - English(1/4): TMC0280: 16KB CD3526**
- - English(2/4): TMC0280: 16KB CD3527**
- - English(3/4): TMC0280: 16KB CD3528**
- - English(4/4): TMC0280: 16KB CD3529**
-
-
-Other devices:
-
- Vocaid (US), 1982
- - MCU: CD8012**
- - CD2802: 16KB CD2357
- - notes: MCU is the same as in Touch & Tell, but instead of a toddler's toy,
- you get a serious medical aid device for the voice-impaired.
+ - Ingles(1/4): VSM: 16KB CD2311
+ - Ingles(2/4): VSM: 16KB CD2312
+ - Ingles(3/4): VSM: 16KB CD2313
+ - Ingles(4/4): VSM: 16KB CD2314
- Spelling B (US), 1978
- - MCU: TMC0272*
- - ?: TMC1984* (what is this?)
- - notes: this line of toys (Spelling B, Mr. Challenger, Math Marvel) is calculator-sized,
- might have been aimed for older kids. Note that Math Marvel is a TMC1986, no speech.
+ - Spanish(1/4): VSM: 16KB CD2315
+ - Spanish(2/4): VSM: 16KB CD2316
+ - Spanish(3/4): VSM: 16KB CD2317
+ - Spanish(4/4): VSM: 16KB CD2318
- Spelling B (US), newer
- - MCU: TMC0274*
- - TMS51xx: ?KB TMC0355 CD2602*
+ - French(1/4): VSM: 16KB CD2327
+ - French(2/4): VSM: 16KB CD2328
+ - French(3/4): VSM: 16KB CD2329
+ - French(4/4): VSM: 16KB CD2330
- Spelling B (Germany) "Spelling ABC", 198?
- - MCU: TMC0274* (assume same as US version)
- - TMS51xx: ?KB TMC0355 CD2607*
+ - German(1/4): VSM: 16KB CD2331
+ - German(2/4): VSM: 16KB CD2332
+ - German(3/4): VSM: 16KB CD2333
+ - German(4/4): VSM: 16KB CD2334
- Mr. Challenger (US), 1980
- - MCU: TMC0273*
- - TMS51xx: ?KB TMC0355 CD2601*
+ - English(1/4): VSM: 16KB CD3526
+ - English(2/4): VSM: 16KB CD3527
+ - English(3/4): VSM: 16KB CD3528
+ - English(4/4): VSM: 16KB CD3529
----------------------------------------------------------------------------
@@ -285,7 +352,9 @@ Other devices:
// internal artwork
#include "lantutor.lh"
+#include "snmath.lh"
#include "snspell.lh"
+#include "tntell.lh" // keyboard overlay
// The master clock is a single stage RC oscillator into TMS5100 RCOSC:
// In an early 1979 Speak & Spell, C is 68pf, R is a 50kohm trimpot which is set to around 33.6kohm
@@ -307,27 +376,35 @@ public:
{ }
// devices
- required_device<tms5100_device> m_tms5100;
+ required_device<tms5110_device> m_tms5100;
required_device<tms6100_device> m_tms6100;
optional_device<generic_slot_device> m_cart;
+ DECLARE_INPUT_CHANGED_MEMBER(snspell_power_button);
+ void snspell_power_off();
+ void prepare_display();
+
+ DECLARE_READ8_MEMBER(snspell_read_k);
+ DECLARE_WRITE16_MEMBER(snmath_write_o);
+ DECLARE_WRITE16_MEMBER(snspell_write_o);
+ DECLARE_WRITE16_MEMBER(snspell_write_r);
+ DECLARE_WRITE16_MEMBER(lantutor_write_r);
+
+ DECLARE_READ8_MEMBER(tntell_read_k);
+ DECLARE_WRITE16_MEMBER(tntell_write_o);
+ DECLARE_WRITE16_MEMBER(tntell_write_r);
+
// cartridge
UINT32 m_cart_max_size;
UINT8* m_cart_base;
void init_cartridge();
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(tispeak_cartridge);
DECLARE_DRIVER_INIT(snspell);
+ DECLARE_DRIVER_INIT(tntell);
DECLARE_DRIVER_INIT(lantutor);
- DECLARE_READ8_MEMBER(snspell_read_k);
- DECLARE_WRITE16_MEMBER(snmath_write_o);
- DECLARE_WRITE16_MEMBER(snspell_write_o);
- DECLARE_WRITE16_MEMBER(snspell_write_r);
- DECLARE_WRITE16_MEMBER(lantutor_write_r);
-
- DECLARE_INPUT_CHANGED_MEMBER(snspell_power_button);
- void snspell_power_off();
- void prepare_display();
+ UINT8 m_overlay;
+ TIMER_DEVICE_CALLBACK_MEMBER(tntell_get_overlay);
protected:
virtual void machine_start();
@@ -352,6 +429,8 @@ void tispeak_state::machine_start()
void tispeak_state::init_cartridge()
{
+ m_overlay = 0;
+
if (m_cart != NULL && m_cart->exists())
{
std::string region_tag;
@@ -384,6 +463,12 @@ DRIVER_INIT_MEMBER(tispeak_state, snspell)
m_cart_base = memregion("tms6100")->base() + 0x8000;
}
+DRIVER_INIT_MEMBER(tispeak_state, tntell)
+{
+ m_cart_max_size = 0x4000;
+ m_cart_base = memregion("tms6100")->base() + 0x4000;
+}
+
DRIVER_INIT_MEMBER(tispeak_state, lantutor)
{
m_cart_max_size = 0x10000;
@@ -402,7 +487,8 @@ DRIVER_INIT_MEMBER(tispeak_state, lantutor)
void tispeak_state::prepare_display()
{
- display_matrix_seg(16, 16, m_o, (m_r & 0x8000) ? (m_r & 0x21ff) : 0, 0x3fff);
+ UINT16 gridmask = (m_display_decay[15][16] != 0) ? 0xffff : 0x8000;
+ display_matrix_seg(16+1, 16, m_plate | 0x10000, m_grid & gridmask, 0x3fff);
}
WRITE16_MEMBER(tispeak_state::snspell_write_r)
@@ -415,14 +501,16 @@ WRITE16_MEMBER(tispeak_state::snspell_write_r)
// R15: filament on
// other bits: MCU internal use
m_r = m_inp_mux = data;
+ m_grid = data & 0x81ff;
prepare_display();
}
WRITE16_MEMBER(tispeak_state::snspell_write_o)
{
// reorder opla to led14seg, plus DP as d14 and AP as d15:
+ // note: lantutor and snread VFD has an accent triangle instead of DP, and no AP
// E,D,C,G,B,A,I,M,L,K,N,J,[AP],H,F,[DP] (sidenote: TI KLMN = MAME MLNK)
- m_o = BITSWAP16(data,12,15,10,7,8,9,11,6,13,3,14,0,1,2,4,5);
+ m_plate = BITSWAP16(data,12,15,10,7,8,9,11,6,13,3,14,0,1,2,4,5);
prepare_display();
}
@@ -447,9 +535,9 @@ void tispeak_state::snspell_power_off()
WRITE16_MEMBER(tispeak_state::snmath_write_o)
{
- // reorder opla to led14seg, plus DP as d14 and AP as d15:
- // [DP],D,C,H,F,B,I,M,L,K,N,J,[AP],E,G,A (sidenote: TI KLMN = MAME MLNK)
- m_o = BITSWAP16(data,12,0,10,7,8,9,11,6,3,14,4,13,1,2,5,15);
+ // reorder opla to led14seg, plus DP as d14 and CT as d15:
+ // [DP],D,C,H,F,B,I,M,L,K,N,J,[CT],E,G,A (sidenote: TI KLMN = MAME MLNK)
+ m_plate = BITSWAP16(data,12,0,10,7,8,9,11,6,3,14,4,13,1,2,5,15);
prepare_display();
}
@@ -460,10 +548,67 @@ WRITE16_MEMBER(tispeak_state::lantutor_write_r)
{
// same as default, except R13 is used for an extra digit
m_r = m_inp_mux = data;
+ m_grid = data & 0xa1ff;
prepare_display();
}
+// tntell specific
+
+WRITE16_MEMBER(tispeak_state::tntell_write_r)
+{
+ // R10: CD2802 PDC pin
+ m_tms5100->pdc_w(data >> 10);
+
+ // R9: power-off request, on falling edge
+ if ((m_r >> 9 & 1) && !(data >> 9 & 1))
+ snspell_power_off();
+
+ // R0-R8: input mux
+ m_r = m_inp_mux = data;
+}
+
+WRITE16_MEMBER(tispeak_state::tntell_write_o)
+{
+ // O3210: CD2802 CTL8124
+ m_o = BITSWAP8(data,7,6,5,4,3,0,1,2);
+ m_tms5100->ctl_w(space, 0, m_o & 0xf);
+}
+
+READ8_MEMBER(tispeak_state::tntell_read_k)
+{
+ // multiplexed inputs (and K2 from on-button)
+ UINT8 k = m_inp_matrix[9]->read() | read_inputs(9);
+
+ // K4: CD2802 CTL1
+ if (m_tms5100->ctl_r(space, 0) & 1)
+ k |= 4;
+
+ // K8: overlay code from R5,O4-O7
+ if (((m_r >> 1 & 0x10) | (m_o >> 4 & 0xf)) & m_overlay)
+ k |= 8;
+
+ return k;
+}
+
+TIMER_DEVICE_CALLBACK_MEMBER(tispeak_state::tntell_get_overlay)
+{
+ // Each keyboard overlay insert has 5 holes, used by the game to determine
+ // which one is active(if any). If it matches with the internal ROM or
+ // external module, the game continues.
+ // 00 for none, 1F for diagnostics, see comment section above for a list
+
+ // try to get overlay code from artwork file(in decimal), otherwise pick the
+ // one that was selected in machine configuration
+ m_overlay = output_get_value("overlay_code") & 0x1f;
+ if (m_overlay == 0)
+ m_overlay = m_inp_matrix[10]->read();
+
+ for (int i = 0; i < 5; i++)
+ output_set_indexed_value("ol", i+1, m_overlay >> i & 1);
+}
+
+
/***************************************************************************
@@ -548,53 +693,53 @@ INPUT_PORTS_END
static INPUT_PORTS_START( snmath )
PORT_START("IN.0") // R0
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_NAME("0")
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("3")
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("6")
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_NAME("9")
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_DEL_PAD) PORT_NAME(".")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_NAME("0")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("3")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("6")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_NAME("9")
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_DEL_PAD) PORT_NAME(".")
PORT_START("IN.1") // R1
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("1")
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("4")
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("7")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("1")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("4")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_NAME("7")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("IN.2") // R2
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("2")
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("5")
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("8")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("2")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("5")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_NAME("8")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("IN.3") // R3
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("Enter")
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Q) PORT_NAME("Go")
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_PGDN) PORT_NAME("Off") // -> auto_power_off
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("Enter")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_Q) PORT_NAME("Go")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_PGDN) PORT_NAME("Off") // -> auto_power_off
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("IN.4") // R4
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("Clear")
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COMMA) PORT_NAME("<")
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_NAME(">")
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_W) PORT_NAME("Repeat")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("Clear")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_COMMA) PORT_NAME("<")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_STOP) PORT_NAME(">")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_W) PORT_NAME("Repeat")
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("IN.5") // R5
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_PLUS_PAD) PORT_NAME("+")
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS_PAD) PORT_NAME("-")
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ASTERISK) PORT_NAME(UTF8_MULTIPLY)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH_PAD) PORT_NAME(UTF8_DIVIDE) // /
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_E) PORT_NAME("Mix It")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_PLUS_PAD) PORT_NAME("+")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_MINUS_PAD) PORT_NAME("-")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_ASTERISK) PORT_NAME(UTF8_MULTIPLY)
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_SLASH_PAD) PORT_NAME(UTF8_DIVIDE) // /
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_E) PORT_NAME("Mix It")
PORT_START("IN.6") // R6
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_I) PORT_NAME("Number Stumper")
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_U) PORT_NAME("Write It")
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Y) PORT_NAME("Greater/Less")
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_T) PORT_NAME("Word Problems")
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_R) PORT_CODE(KEYCODE_PGUP) PORT_NAME("Solve It/On") PORT_CHANGED_MEMBER(DEVICE_SELF, tispeak_state, snspell_power_button, (void *)true)
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_I) PORT_NAME("Number Stumper")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_U) PORT_NAME("Write It")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_Y) PORT_NAME("Greater/Less")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_T) PORT_NAME("Word Problems")
+ PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_R) PORT_CODE(KEYCODE_PGUP) PORT_NAME("Solve It/On") PORT_CHANGED_MEMBER(DEVICE_SELF, tispeak_state, snspell_power_button, (void *)true)
PORT_START("IN.7")
PORT_BIT( 0x1f, IP_ACTIVE_HIGH, IPT_UNUSED )
@@ -650,6 +795,102 @@ static INPUT_PORTS_START( lantutor )
INPUT_PORTS_END
+static INPUT_PORTS_START( tntell )
+ PORT_START("IN.0") // R0
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_1) PORT_NAME("Grid 1-1")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_2) PORT_NAME("Grid 1-2")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_4) PORT_NAME("Grid 1-4")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_3) PORT_NAME("Grid 1-3")
+
+ PORT_START("IN.1") // R1
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_Q) PORT_NAME("Grid 2-1")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_W) PORT_NAME("Grid 2-2")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_R) PORT_NAME("Grid 2-4")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_E) PORT_NAME("Grid 2-3")
+
+ PORT_START("IN.2") // R2
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_A) PORT_NAME("Grid 3-1")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_S) PORT_NAME("Grid 3-2")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_F) PORT_NAME("Grid 3-4")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_D) PORT_NAME("Grid 3-3")
+
+ PORT_START("IN.3") // R3
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_Z) PORT_NAME("Grid 4-1")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_X) PORT_NAME("Grid 4-2")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_V) PORT_NAME("Grid 4-4")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_C) PORT_NAME("Grid 4-3")
+
+ PORT_START("IN.4") // R4
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_7) PORT_NAME("Grid 5-1")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_8) PORT_NAME("Grid 5-2")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_U) PORT_NAME("Grid 5-4")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_9) PORT_NAME("Grid 5-3")
+
+ PORT_START("IN.5") // R5
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_O) PORT_NAME("Grid 5-6")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_COMMA) PORT_NAME("Grid 6-5")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_I) PORT_NAME("Grid 5-5")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL ) // overlay code
+
+ PORT_START("IN.6") // R6
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_G) PORT_NAME("Grid 3-5")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_T) PORT_NAME("Grid 2-5")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_B) PORT_NAME("Grid 4-5")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_5) PORT_NAME("Grid 1-5")
+
+ PORT_START("IN.7") // R7
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_H) PORT_NAME("Grid 3-6")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_Y) PORT_NAME("Grid 2-6")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_N) PORT_NAME("Grid 4-6")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_6) PORT_NAME("Grid 1-6")
+
+ PORT_START("IN.8") // R8
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_J) PORT_CODE(KEYCODE_PGDN) PORT_NAME("Grid 6-1 (Off)") // -> auto_power_off
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_K) PORT_NAME("Grid 6-2")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_M) PORT_NAME("Grid 6-4")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_L) PORT_NAME("Grid 6-3")
+
+ PORT_START("IN.9") // Vss!
+ PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_STOP) PORT_CODE(KEYCODE_PGUP) PORT_NAME("Grid 6-6 (On)") PORT_CHANGED_MEMBER(DEVICE_SELF, tispeak_state, snspell_power_button, (void *)true)
+
+ PORT_START("IN.10")
+ PORT_CONFNAME( 0x1f, 0x04, "Overlay Code" ) // only if not provided by external artwork
+ PORT_CONFSETTING( 0x00, "00 (None)" )
+ PORT_CONFSETTING( 0x01, "01" )
+ PORT_CONFSETTING( 0x02, "02" )
+ PORT_CONFSETTING( 0x03, "03" )
+ PORT_CONFSETTING( 0x04, "04" )
+ PORT_CONFSETTING( 0x05, "05" )
+ PORT_CONFSETTING( 0x06, "06" )
+ PORT_CONFSETTING( 0x07, "07" )
+ PORT_CONFSETTING( 0x08, "08" )
+ PORT_CONFSETTING( 0x09, "09" )
+ PORT_CONFSETTING( 0x0a, "0A" )
+ PORT_CONFSETTING( 0x0b, "0B" )
+ PORT_CONFSETTING( 0x0c, "0C" )
+ PORT_CONFSETTING( 0x0d, "0D" )
+ PORT_CONFSETTING( 0x0e, "0E" )
+ PORT_CONFSETTING( 0x0f, "0F" )
+ PORT_CONFSETTING( 0x10, "10" )
+ PORT_CONFSETTING( 0x11, "11" )
+ PORT_CONFSETTING( 0x12, "12" )
+ PORT_CONFSETTING( 0x13, "13" )
+ PORT_CONFSETTING( 0x14, "14" )
+ PORT_CONFSETTING( 0x15, "15" )
+ PORT_CONFSETTING( 0x16, "16" )
+ PORT_CONFSETTING( 0x17, "17" )
+ PORT_CONFSETTING( 0x18, "18" )
+ PORT_CONFSETTING( 0x19, "19" )
+ PORT_CONFSETTING( 0x1a, "1A" )
+ PORT_CONFSETTING( 0x1b, "1B" )
+ PORT_CONFSETTING( 0x1c, "1C" )
+ PORT_CONFSETTING( 0x1d, "1D" )
+ PORT_CONFSETTING( 0x1e, "1E" )
+ PORT_CONFSETTING( 0x1f, "1F (Diagnostic)" )
+INPUT_PORTS_END
+
+
/***************************************************************************
@@ -657,6 +898,17 @@ INPUT_PORTS_END
***************************************************************************/
+static MACHINE_CONFIG_FRAGMENT( tms5110_route )
+
+ /* sound hardware */
+ MCFG_TMS5110_M0_CB(DEVWRITELINE("tms6100", tms6100_device, tms6100_m0_w))
+ MCFG_TMS5110_M1_CB(DEVWRITELINE("tms6100", tms6100_device, tms6100_m1_w))
+ MCFG_TMS5110_ADDR_CB(DEVWRITE8("tms6100", tms6100_device, tms6100_addr_w))
+ MCFG_TMS5110_DATA_CB(DEVREADLINE("tms6100", tms6100_device, tms6100_data_r))
+ MCFG_TMS5110_ROMCLK_CB(DEVWRITELINE("tms6100", tms6100_device, tms6100_romclock_w))
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
+MACHINE_CONFIG_END
+
static MACHINE_CONFIG_START( snmath, tispeak_state )
/* basic machine hardware */
@@ -665,12 +917,12 @@ static MACHINE_CONFIG_START( snmath, tispeak_state )
MCFG_TMS1XXX_WRITE_O_CB(WRITE16(tispeak_state, snmath_write_o))
MCFG_TMS1XXX_WRITE_R_CB(WRITE16(tispeak_state, snspell_write_r))
- MCFG_TMS0270_READ_CTL_CB(DEVREAD8("tms5100", tms5100_device, ctl_r))
- MCFG_TMS0270_WRITE_CTL_CB(DEVWRITE8("tms5100", tms5100_device, ctl_w))
- MCFG_TMS0270_WRITE_PDC_CB(DEVWRITELINE("tms5100", tms5100_device, pdc_w))
+ MCFG_TMS0270_READ_CTL_CB(DEVREAD8("tms5100", tms5110_device, ctl_r))
+ MCFG_TMS0270_WRITE_CTL_CB(DEVWRITE8("tms5100", tms5110_device, ctl_w))
+ MCFG_TMS0270_WRITE_PDC_CB(DEVWRITELINE("tms5100", tms5110_device, pdc_w))
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
- MCFG_DEFAULT_LAYOUT(layout_snspell) // max 9 digits
+ MCFG_DEFAULT_LAYOUT(layout_snmath)
/* no video! */
@@ -678,21 +930,19 @@ static MACHINE_CONFIG_START( snmath, tispeak_state )
MCFG_DEVICE_ADD("tms6100", TMS6100, MASTER_CLOCK/4)
MCFG_SPEAKER_STANDARD_MONO("mono")
- MCFG_SOUND_ADD("tms5100", TMS5100, MASTER_CLOCK)
- MCFG_TMS5110_M0_CB(DEVWRITELINE("tms6100", tms6100_device, tms6100_m0_w))
- MCFG_TMS5110_M1_CB(DEVWRITELINE("tms6100", tms6100_device, tms6100_m1_w))
- MCFG_TMS5110_ADDR_CB(DEVWRITE8("tms6100", tms6100_device, tms6100_addr_w))
- MCFG_TMS5110_DATA_CB(DEVREADLINE("tms6100", tms6100_device, tms6100_data_r))
- MCFG_TMS5110_ROMCLK_CB(DEVWRITELINE("tms6100", tms6100_device, tms6100_romclock_w))
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
+ MCFG_SOUND_ADD("tms5100", CD2801, MASTER_CLOCK)
+ MCFG_FRAGMENT_ADD(tms5110_route)
MACHINE_CONFIG_END
-static MACHINE_CONFIG_DERIVED( snspell, snmath )
+
+static MACHINE_CONFIG_DERIVED( sns_cd2801, snmath )
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
MCFG_TMS1XXX_WRITE_O_CB(WRITE16(tispeak_state, snspell_write_o))
+ MCFG_DEFAULT_LAYOUT(layout_snspell)
+
/* cartridge */
MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "snspell")
MCFG_GENERIC_EXTENSIONS("vsm")
@@ -701,12 +951,35 @@ static MACHINE_CONFIG_DERIVED( snspell, snmath )
MCFG_SOFTWARE_LIST_ADD("cart_list", "snspell")
MACHINE_CONFIG_END
+static MACHINE_CONFIG_DERIVED( sns_tmc0281, sns_cd2801 )
+
+ /* sound hardware */
+ MCFG_SOUND_REPLACE("tms5100", TMC0281, MASTER_CLOCK)
+ MCFG_FRAGMENT_ADD(tms5110_route)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( sns_tmc0281d, sns_cd2801 )
+
+ /* sound hardware */
+ MCFG_SOUND_REPLACE("tms5100", TMC0281D, MASTER_CLOCK)
+ MCFG_FRAGMENT_ADD(tms5110_route)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( sns_cd2801_m, sns_cd2801 )
+
+ /* basic machine hardware */
+ MCFG_DEFAULT_LAYOUT(layout_snmath)
+MACHINE_CONFIG_END
+
+
static MACHINE_CONFIG_DERIVED( snread, snmath )
/* basic machine hardware */
MCFG_CPU_MODIFY("maincpu")
MCFG_TMS1XXX_WRITE_O_CB(WRITE16(tispeak_state, snspell_write_o))
+ MCFG_DEFAULT_LAYOUT(layout_lantutor)
+
/* cartridge */
MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "snread")
MCFG_GENERIC_EXTENSIONS("vsm")
@@ -715,6 +988,7 @@ static MACHINE_CONFIG_DERIVED( snread, snmath )
MCFG_SOFTWARE_LIST_ADD("cart_list", "snread")
MACHINE_CONFIG_END
+
static MACHINE_CONFIG_DERIVED( lantutor, snmath )
/* basic machine hardware */
@@ -734,6 +1008,39 @@ static MACHINE_CONFIG_DERIVED( lantutor, snmath )
MACHINE_CONFIG_END
+static MACHINE_CONFIG_START( vocaid, tispeak_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", TMS1100, MASTER_CLOCK/2)
+ MCFG_TMS1XXX_READ_K_CB(READ8(tispeak_state, tntell_read_k))
+ MCFG_TMS1XXX_WRITE_O_CB(WRITE16(tispeak_state, tntell_write_o))
+ MCFG_TMS1XXX_WRITE_R_CB(WRITE16(tispeak_state, tntell_write_r))
+
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("ol_timer", tispeak_state, tntell_get_overlay, attotime::from_msec(50))
+ MCFG_DEFAULT_LAYOUT(layout_tntell)
+
+ /* no video! */
+
+ /* sound hardware */
+ MCFG_DEVICE_ADD("tms6100", TMS6100, MASTER_CLOCK/4)
+
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_SOUND_ADD("tms5100", CD2802, MASTER_CLOCK)
+ MCFG_FRAGMENT_ADD(tms5110_route)
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( tntell, vocaid )
+
+ /* cartridge */
+ MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "tntell")
+ MCFG_GENERIC_EXTENSIONS("vsm")
+ MCFG_GENERIC_LOAD(tispeak_state, tispeak_cartridge)
+
+ MCFG_SOFTWARE_LIST_ADD("cart_list", "tntell")
+MACHINE_CONFIG_END
+
+
/***************************************************************************
@@ -741,9 +1048,11 @@ MACHINE_CONFIG_END
***************************************************************************/
+#define rom_snspellp rom_snspell // until we have a correct dump
+
ROM_START( snspell )
ROM_REGION( 0x1000, "maincpu", 0 )
- ROM_LOAD( "us4189779_tmc0271", 0x0000, 0x1000, CRC(d3f5a37d) SHA1(f75ab617a6067d4d3a954a9f86126d2089554df8) ) // typed in from patent 4189779, verified by 2 sources
+ ROM_LOAD( "us4189779_tmc0271", 0x0000, 0x1000, CRC(d3f5a37d) SHA1(f75ab617a6067d4d3a954a9f86126d2089554df8) ) // typed in from patent US4189779, verified by 2 sources
ROM_REGION( 1246, "maincpu:ipla", 0 )
ROM_LOAD( "tms0980_common1_instr.pla", 0, 1246, CRC(42db9a38) SHA1(2d127d98028ec8ec6ea10c179c25e447b14ba4d0) )
@@ -835,7 +1144,7 @@ ROM_START( snspelljp )
ROM_LOAD( "cd2322.vsm", 0x4000, 0x4000, CRC(b6f4bba4) SHA1(65d686a9385b5ef3f080a5f47c6b2418bb9455b0) )
ROM_END
-ROM_START( ladictee )
+ROM_START( snspellfr )
ROM_REGION( 0x1000, "maincpu", 0 )
ROM_LOAD( "us4189779_tmc0271", 0x0000, 0x1000, BAD_DUMP CRC(d3f5a37d) SHA1(f75ab617a6067d4d3a954a9f86126d2089554df8) ) // placeholder, use the one we have
@@ -850,6 +1159,21 @@ ROM_START( ladictee )
ROM_LOAD( "cd2352.vsm", 0x0000, 0x4000, CRC(181a239e) SHA1(e16043766c385e152b7005c1c010be4c5fccdd9b) )
ROM_END
+ROM_START( snspellit )
+ ROM_REGION( 0x1000, "maincpu", 0 )
+ ROM_LOAD( "us4189779_tmc0271", 0x0000, 0x1000, BAD_DUMP CRC(d3f5a37d) SHA1(f75ab617a6067d4d3a954a9f86126d2089554df8) ) // placeholder, use the one we have
+
+ ROM_REGION( 1246, "maincpu:ipla", 0 )
+ ROM_LOAD( "tms0980_common1_instr.pla", 0, 1246, CRC(42db9a38) SHA1(2d127d98028ec8ec6ea10c179c25e447b14ba4d0) )
+ ROM_REGION( 2127, "maincpu:mpla", 0 )
+ ROM_LOAD( "tms0270_common1_micro.pla", 0, 2127, BAD_DUMP CRC(504b96bb) SHA1(67b691e7c0b97239410587e50e5182bf46475b43) ) // not verified
+ ROM_REGION( 1246, "maincpu:opla", 0 )
+ ROM_LOAD( "tms0270_tmc0271_output.pla", 0, 1246, BAD_DUMP CRC(9ebe12ab) SHA1(acb4e07ba26f2daca5f1c234885ac0371c7ce87f) ) // placeholder, use the one we have
+
+ ROM_REGION( 0xc000, "tms6100", ROMREGION_ERASEFF ) // uses only 1 rom, 8000-bfff = space reserved for cartridge
+ ROM_LOAD( "cd62190.vsm", 0x0000, 0x4000, CRC(63832002) SHA1(ea8124b2bf0f5908c5f1a56d60063f2468a10143) )
+ROM_END
+
ROM_START( snmath )
ROM_REGION( 0x1000, "maincpu", 0 )
@@ -862,7 +1186,7 @@ ROM_START( snmath )
ROM_REGION( 1246, "maincpu:opla", 0 )
ROM_LOAD( "tms0270_cd2708_output.pla", 0, 1246, CRC(1abad753) SHA1(53d20b519ed73ce248368047a056836afbe3cd46) )
- ROM_REGION( 0x8000, "tms6100", 0 )
+ ROM_REGION( 0x8000, "tms6100", ROMREGION_ERASEFF )
ROM_LOAD( "cd2381.vsm", 0x0000, 0x4000, CRC(f048dc81) SHA1(e97667d1002de40ab3d702c63b82311480032e0f) )
ROM_LOAD( "cd2614.vsm", 0x4000, 0x1000, CRC(11989074) SHA1(0e9cf906de9bcdf4acb425535dc442846fc48fa2) )
ROM_RELOAD( 0x5000, 0x1000 )
@@ -883,7 +1207,7 @@ ROM_START( snmathp )
ROM_REGION( 1246, "maincpu:opla", 0 )
ROM_LOAD( "tms0270_cd2708_output.pla", 0, 1246, BAD_DUMP CRC(1abad753) SHA1(53d20b519ed73ce248368047a056836afbe3cd46) ) // taken from cd2708, need to verify if it's same as cd2704
- ROM_REGION( 0x8000, "tms6100", 0 )
+ ROM_REGION( 0x8000, "tms6100", ROMREGION_ERASEFF )
ROM_LOAD( "cd2392.vsm", 0x0000, 0x4000, CRC(4ed2e920) SHA1(8896f29e25126c1e4d9a47c9a325b35dddecc61f) )
ROM_LOAD( "cd2393.vsm", 0x4000, 0x4000, CRC(571d5b5a) SHA1(83284755d9b77267d320b5b87fdc39f352433715) )
ROM_END
@@ -908,7 +1232,7 @@ ROM_END
ROM_START( lantutor )
ROM_REGION( 0x1000, "maincpu", 0 )
- ROM_LOAD( "us4631748_tmc0275", 0x0000, 0x1000, CRC(22818845) SHA1(1a84f15fb18ca66b1f2bf7491d76fbc56068984d) ) // extracted visually from patent 4631748, verified with source code
+ ROM_LOAD( "us4631748_tmc0275", 0x0000, 0x1000, CRC(22818845) SHA1(1a84f15fb18ca66b1f2bf7491d76fbc56068984d) ) // extracted visually from patent US4631748, verified with source code
ROM_REGION( 1246, "maincpu:ipla", 0 )
ROM_LOAD( "tms0980_common1_instr.pla", 0, 1246, CRC(42db9a38) SHA1(2d127d98028ec8ec6ea10c179c25e447b14ba4d0) )
@@ -921,19 +1245,95 @@ ROM_START( lantutor )
ROM_END
+ROM_START( tntell )
+ ROM_REGION( 0x0800, "maincpu", 0 )
+ ROM_LOAD( "cd8012", 0x0000, 0x0800, CRC(3d0fee24) SHA1(8b1b1df03d50ffe8adea59ece212dece5245fe86) )
+
+ ROM_REGION( 867, "maincpu:mpla", 0 )
+ ROM_LOAD( "tms1100_cd8012_micro.pla", 0, 867, CRC(46d936c8) SHA1(b0aad486a90a5dec7fd2fb07caa503be771f91c8) )
+ ROM_REGION( 365, "maincpu:opla", 0 )
+ ROM_LOAD( "tms1100_cd8012_output.pla", 0, 365, CRC(5ada9306) SHA1(a4140118dd535af45a691832530d55cd86a23510) )
+
+ ROM_REGION( 0x8000, "tms6100", ROMREGION_ERASEFF ) // 4000-7fff = space reserved for cartridge
+ ROM_LOAD( "cd2610.vsm", 0x0000, 0x1000, CRC(6db34e5a) SHA1(10fa5db20fdcba68034058e7194f35c90b9844e6) )
+ROM_END
+
+ROM_START( tntelluk )
+ ROM_REGION( 0x0800, "maincpu", 0 )
+ ROM_LOAD( "cd8012", 0x0000, 0x0800, CRC(3d0fee24) SHA1(8b1b1df03d50ffe8adea59ece212dece5245fe86) )
+
+ ROM_REGION( 867, "maincpu:mpla", 0 )
+ ROM_LOAD( "tms1100_cd8012_micro.pla", 0, 867, CRC(46d936c8) SHA1(b0aad486a90a5dec7fd2fb07caa503be771f91c8) )
+ ROM_REGION( 365, "maincpu:opla", 0 )
+ ROM_LOAD( "tms1100_cd8012_output.pla", 0, 365, CRC(5ada9306) SHA1(a4140118dd535af45a691832530d55cd86a23510) )
+
+ ROM_REGION( 0x8000, "tms6100", ROMREGION_ERASEFF ) // 4000-7fff = space reserved for cartridge
+ ROM_LOAD( "cd62170.vsm", 0x0000, 0x4000, CRC(6dc9d072) SHA1(9d2c9ff57c4f8fe69768666ffa41fcac649279ef) )
+ROM_END
+
+ROM_START( tntellfr )
+ ROM_REGION( 0x0800, "maincpu", 0 )
+ ROM_LOAD( "cd8012", 0x0000, 0x0800, CRC(3d0fee24) SHA1(8b1b1df03d50ffe8adea59ece212dece5245fe86) )
+
+ ROM_REGION( 867, "maincpu:mpla", 0 )
+ ROM_LOAD( "tms1100_cd8012_micro.pla", 0, 867, CRC(46d936c8) SHA1(b0aad486a90a5dec7fd2fb07caa503be771f91c8) )
+ ROM_REGION( 365, "maincpu:opla", 0 )
+ ROM_LOAD( "tms1100_cd8012_output.pla", 0, 365, CRC(5ada9306) SHA1(a4140118dd535af45a691832530d55cd86a23510) )
+
+ ROM_REGION( 0x8000, "tms6100", ROMREGION_ERASEFF ) // 4000-7fff = space reserved for cartridge
+ ROM_LOAD( "cd62171.vsm", 0x0000, 0x4000, CRC(cc26f7d1) SHA1(2b03e37b3bf3cbeca36980acfc45246dac706b83) )
+ROM_END
+
+ROM_START( tntellp )
+ ROM_REGION( 0x0800, "maincpu", 0 )
+ ROM_LOAD( "us4403965_cd1100", 0x0000, 0x0800, BAD_DUMP CRC(863a1c9e) SHA1(f2f9eb0ae17eedd4ef2b887b34601e75b4f6c720) ) // typed in from patent US4403965/EP0048835A2, may have errors
+
+ ROM_REGION( 867, "maincpu:mpla", 0 )
+ ROM_LOAD( "tms1100_cd8012_micro.pla", 0, 867, CRC(46d936c8) SHA1(b0aad486a90a5dec7fd2fb07caa503be771f91c8) ) // from cd8012, matches patent source code
+ ROM_REGION( 365, "maincpu:opla", 0 )
+ ROM_LOAD( "tms1100_us4403965_output.pla", 0, 365, CRC(66cfb3c3) SHA1(80a05e5d729518e1f35d8f26438f56e80ffbd003) )
+
+ ROM_REGION( 0x8000, "tms6100", ROMREGION_ERASEFF ) // 4000-7fff = space reserved for cartridge
+ ROM_LOAD( "cd2610.vsm", 0x0000, 0x1000, CRC(6db34e5a) SHA1(10fa5db20fdcba68034058e7194f35c90b9844e6) )
+ROM_END
+
+
+ROM_START( vocaid )
+ ROM_REGION( 0x0800, "maincpu", 0 )
+ ROM_LOAD( "cd8012", 0x0000, 0x0800, CRC(3d0fee24) SHA1(8b1b1df03d50ffe8adea59ece212dece5245fe86) )
+
+ ROM_REGION( 867, "maincpu:mpla", 0 )
+ ROM_LOAD( "tms1100_cd8012_micro.pla", 0, 867, CRC(46d936c8) SHA1(b0aad486a90a5dec7fd2fb07caa503be771f91c8) )
+ ROM_REGION( 365, "maincpu:opla", 0 )
+ ROM_LOAD( "tms1100_cd8012_output.pla", 0, 365, CRC(5ada9306) SHA1(a4140118dd535af45a691832530d55cd86a23510) )
+
+ ROM_REGION( 0x8000, "tms6100", ROMREGION_ERASEFF ) // same hw as tntell, but no external slot
+ ROM_LOAD( "cd2357.vsm", 0x0000, 0x4000, CRC(19c251fa) SHA1(8f8163069f32413379e7e1681ce6a4d0819d4ebc) )
+ROM_END
+
+
+
+/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */
+COMP( 1978, snspell, 0, 0, sns_tmc0281, snspell, tispeak_state, snspell, "Texas Instruments", "Speak & Spell (US, 1978 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // incomplete dump, uses patent MCU ROM
+COMP( 1978, snspellp, snspell, 0, sns_tmc0281, snspell, tispeak_state, snspell, "Texas Instruments", "Speak & Spell (US, patent)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
+COMP( 1979, snspella, snspell, 0, sns_tmc0281, snspell, tispeak_state, snspell, "Texas Instruments", "Speak & Spell (US, 1979 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // "
+COMP( 1980, snspellb, snspell, 0, sns_tmc0281d,snspell, tispeak_state, snspell, "Texas Instruments", "Speak & Spell (US, 1980 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // "
+COMP( 1978, snspelluk, snspell, 0, sns_tmc0281, snspell, tispeak_state, snspell, "Texas Instruments", "Speak & Spell (UK, 1978 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // "
+COMP( 1981, snspelluka, snspell, 0, sns_cd2801_m,snspell, tispeak_state, snspell, "Texas Instruments", "Speak & Spell (UK, 1981 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // "
+COMP( 1979, snspelljp, snspell, 0, sns_tmc0281, snspell, tispeak_state, snspell, "Texas Instruments", "Speak & Spell (Japan)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // "
+COMP( 1980, snspellfr, snspell, 0, sns_cd2801, snspell, tispeak_state, snspell, "Texas Instruments", "La Dictee Magique (France)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // doesn't work due to missing CD2702 MCU dump, German/Italian version has CD2702 too
+COMP( 1982, snspellit, snspell, 0, sns_cd2801_m,snspell, tispeak_state, snspell, "Texas Instruments", "Grillo Parlante (Italy)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // "
+
+COMP( 1986, snmath, 0, 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, 1980 version/patent)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
-/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */
-COMP( 1978, snspell, 0, 0, snspell, snspell, tispeak_state, snspell, "Texas Instruments", "Speak & Spell (US, 1978 version/patent)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
-COMP( 1979, snspella, snspell, 0, snspell, snspell, tispeak_state, snspell, "Texas Instruments", "Speak & Spell (US, 1979 version)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) // incomplete dump, uses patent MCU ROM
-COMP( 1980, snspellb, snspell, 0, snspell, snspell, tispeak_state, snspell, "Texas Instruments", "Speak & Spell (US, 1980 version)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) // incomplete dump, uses patent MCU ROM
-COMP( 1978, snspelluk, snspell, 0, snspell, snspell, tispeak_state, snspell, "Texas Instruments", "Speak & Spell (UK, 1978 version)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) // incomplete dump, uses patent MCU ROM
-COMP( 1981, snspelluka, snspell, 0, snspell, snspell, tispeak_state, snspell, "Texas Instruments", "Speak & Spell (UK, 1981 version)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) // incomplete dump, uses patent MCU ROM
-COMP( 1979, snspelljp, snspell, 0, snspell, snspell, tispeak_state, snspell, "Texas Instruments", "Speak & Spell (Japan)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) // incomplete dump, uses patent MCU ROM
-COMP( 1980, ladictee, snspell, 0, snspell, snspell, tispeak_state, snspell, "Texas Instruments", "La Dictee Magique (France)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) // doesn't work due to missing CD2702 MCU dump, German/Italian version has CD2702 too
+COMP( 1980, snread, 0, 0, snread, snread, tispeak_state, snspell, "Texas Instruments", "Speak & Read (US)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND )
-COMP( 1986, snmath, 0, 0, snmath, snmath, driver_device, 0, "Texas Instruments", "Speak & Math (US, 1986 version)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
-COMP( 1980, snmathp, snmath, 0, snmath, snmath, driver_device, 0, "Texas Instruments", "Speak & Math (US, 1980 version/patent)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
+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( 1980, snread, 0, 0, snread, snread, tispeak_state, snspell, "Texas Instruments", "Speak & Read (US)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
+COMP( 1981, tntell, 0, 0, tntell, tntell, tispeak_state, tntell, "Texas Instruments", "Touch & Tell (US, 1981 version)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_REQUIRES_ARTWORK ) // assume there is an older version too, with CD8010 MCU
+COMP( 1980, tntellp, tntell, 0, tntell, tntell, tispeak_state, tntell, "Texas Instruments", "Touch & Tell (patent)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | 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_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_REQUIRES_ARTWORK )
-COMP( 1979, lantutor, 0, 0, lantutor, lantutor, tispeak_state, lantutor, "Texas Instruments", "Language Tutor (patent)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
+COMP( 1982, vocaid, 0, 0, vocaid, tntell, driver_device, 0, "Texas Instruments", "Vocaid", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_SOUND | MACHINE_REQUIRES_ARTWORK )
diff --git a/src/mess/drivers/tk2000.c b/src/mame/drivers/tk2000.c
index 66874015335..6a5cd4a276c 100644
--- a/src/mess/drivers/tk2000.c
+++ b/src/mame/drivers/tk2000.c
@@ -605,4 +605,4 @@ ROM_START(tk2000)
ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
-COMP( 1984, tk2000, 0, 0, tk2000, tk2000, driver_device, 0, "Microdigital", "TK2000", GAME_NOT_WORKING )
+COMP( 1984, tk2000, 0, 0, tk2000, tk2000, driver_device, 0, "Microdigital", "TK2000", MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/tk80.c b/src/mame/drivers/tk80.c
index ad088299e77..c6b79cc7d54 100644
--- a/src/mess/drivers/tk80.c
+++ b/src/mame/drivers/tk80.c
@@ -337,8 +337,8 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
-COMP( 1976, tk80, 0, 0, tk80, tk80, driver_device, 0, "Nippon Electronic Company", "TK-80", GAME_NO_SOUND_HW)
-COMP( 1980, nectk85, tk80, 0, tk85, tk80, driver_device, 0, "Nippon Electronic Company", "TK-85", GAME_NO_SOUND_HW)
-COMP( 19??, nd80z, tk80, 0, nd80z, tk80, driver_device, 0, "Chunichi", "ND-80Z", GAME_NO_SOUND_HW)
-COMP( 19??, mikrolab, tk80, 0, mikrolab, mikrolab, driver_device, 0, "<unknown>", "Mikrolab KR580IK80", GAME_NO_SOUND_HW)
-COMP( 19??, ics8080, tk80, 0, ics8080, ics8080, driver_device, 0, "<unknown>", "ICS8080", GAME_NOT_WORKING | GAME_NO_SOUND_HW)
+COMP( 1976, tk80, 0, 0, tk80, tk80, driver_device, 0, "Nippon Electronic Company", "TK-80", MACHINE_NO_SOUND_HW)
+COMP( 1980, nectk85, tk80, 0, tk85, tk80, driver_device, 0, "Nippon Electronic Company", "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, "<unknown>", "Mikrolab KR580IK80", MACHINE_NO_SOUND_HW)
+COMP( 19??, ics8080, tk80, 0, ics8080, ics8080, driver_device, 0, "<unknown>", "ICS8080", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW)
diff --git a/src/mess/drivers/tk80bs.c b/src/mame/drivers/tk80bs.c
index 1c7290b262c..99d6f1f1db5 100644
--- a/src/mess/drivers/tk80bs.c
+++ b/src/mame/drivers/tk80bs.c
@@ -222,4 +222,4 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
-COMP( 1980, tk80bs, tk80, 0, tk80bs, tk80bs, driver_device, 0, "Nippon Electronic Company", "TK-80BS", GAME_NOT_WORKING | GAME_NO_SOUND_HW)
+COMP( 1980, tk80bs, tk80, 0, tk80bs, tk80bs, driver_device, 0, "Nippon Electronic Company", "TK-80BS", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW)
diff --git a/src/mess/drivers/tm990189.c b/src/mame/drivers/tm990189.c
index f6c778dd305..f6c778dd305 100644
--- a/src/mess/drivers/tm990189.c
+++ b/src/mame/drivers/tm990189.c
diff --git a/src/mame/drivers/tmaster.c b/src/mame/drivers/tmaster.c
index 162e2c49ecc..2d0ae72cf60 100644
--- a/src/mame/drivers/tmaster.c
+++ b/src/mame/drivers/tmaster.c
@@ -1860,5 +1860,5 @@ GAME( 1999, tm7kmna, tm7k, tmds1204, tm4k, driver_device, 0, ROT
GAME( 1999, tm7keval, tm7k, tmds1204, tm4k, driver_device, 0, ROT0, "Midway Games Inc.", "Touchmaster 7000 (v8.1X 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( 1998, galgbios, 0, galgames, galgames, tmaster_state, galgames, ROT0, "Creative Electronics & Software", "Galaxy Games (BIOS v1.90)", GAME_IS_BIOS_ROOT )
+GAME( 1998, galgbios, 0, galgames, galgames, tmaster_state, galgames, ROT0, "Creative Electronics & Software", "Galaxy Games (BIOS v1.90)", MACHINE_IS_BIOS_ROOT )
GAME( 1998, galgame2, galgbios, galgame2, galgames, tmaster_state, galgame2, ROT0, "Creative Electronics & Software / Namco", "Galaxy Games StarPak 2", 0 )
diff --git a/src/mess/drivers/tmc1800.c b/src/mame/drivers/tmc1800.c
index 9e2906ab171..728ec7ee446 100644
--- a/src/mess/drivers/tmc1800.c
+++ b/src/mame/drivers/tmc1800.c
@@ -878,7 +878,7 @@ 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", GAME_NOT_WORKING )
-COMP( 1977, osc1000b, tmc1800,0, osc1000b, tmc1800, driver_device, 0, "OSCOM Oy", "OSCOM 1000B", GAME_NOT_WORKING )
-COMP( 1980, tmc2000, 0, 0, tmc2000, tmc2000, driver_device, 0, "Telercas Oy", "Telmac 2000", GAME_SUPPORTS_SAVE )
-COMP( 1980, nano, tmc2000,0, nano, nano, driver_device, 0, "OSCOM Oy", "OSCOM Nano", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/tmc2000e.c b/src/mame/drivers/tmc2000e.c
index 343ee46a335..c3691141631 100644
--- a/src/mess/drivers/tmc2000e.c
+++ b/src/mame/drivers/tmc2000e.c
@@ -325,4 +325,4 @@ ROM_START( tmc2000e )
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", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
+COMP( 1980, tmc2000e, 0, 0, tmc2000e, tmc2000e, driver_device, 0, "Telercas Oy", "Telmac 2000E", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/tmc600.c b/src/mame/drivers/tmc600.c
index ae535ff3240..5b0f73c05dc 100644
--- a/src/mess/drivers/tmc600.c
+++ b/src/mame/drivers/tmc600.c
@@ -310,5 +310,5 @@ 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)", GAME_NOT_WORKING )
-COMP( 1982, tmc600s2, 0, 0, tmc600, tmc600, driver_device, 0, "Telercas Oy", "Telmac TMC-600 (Sarja II)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+//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 )
diff --git a/src/mame/drivers/tmmjprd.c b/src/mame/drivers/tmmjprd.c
index 8b536a1e30e..b5d44f56cca 100644
--- a/src/mame/drivers/tmmjprd.c
+++ b/src/mame/drivers/tmmjprd.c
@@ -887,5 +887,5 @@ ROM_START( tmpdoki )
ROM_END
-GAME( 1997, tmmjprd, 0, tmmjprd, tmmjprd, driver_device, 0, ROT0, "Media / Sonnet", "Tokimeki Mahjong Paradise - Dear My Love", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1998, tmpdoki, tmmjprd, tmpdoki, tmmjprd, driver_device, 0, ROT0, "Media / Sonnet", "Tokimeki Mahjong Paradise - Doki Doki Hen", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // missing gfx due to wrong roms?
+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?
diff --git a/src/mame/drivers/tmnt.c b/src/mame/drivers/tmnt.c
index 7dab98b981e..0d7c1c1ede7 100644
--- a/src/mame/drivers/tmnt.c
+++ b/src/mame/drivers/tmnt.c
@@ -1992,6 +1992,7 @@ static MACHINE_CONFIG_START( cuebrick, tmnt_state )
MCFG_DEVICE_ADD("k051960", K051960, 0)
MCFG_GFX_PALETTE("palette")
+ MCFG_K051960_SCREEN_TAG("screen")
MCFG_K051960_CB(tmnt_state, mia_sprite_callback)
MCFG_K051960_PLANEORDER(K051960_PLANEORDER_MIA)
@@ -2041,6 +2042,7 @@ static MACHINE_CONFIG_START( mia, tmnt_state )
MCFG_DEVICE_ADD("k051960", K051960, 0)
MCFG_GFX_PALETTE("palette")
+ MCFG_K051960_SCREEN_TAG("screen")
MCFG_K051960_CB(tmnt_state, mia_sprite_callback)
MCFG_K051960_PLANEORDER(K051960_PLANEORDER_MIA)
@@ -2103,6 +2105,7 @@ static MACHINE_CONFIG_START( tmnt, tmnt_state )
MCFG_DEVICE_ADD("k051960", K051960, 0)
MCFG_GFX_PALETTE("palette")
+ MCFG_K051960_SCREEN_TAG("screen")
MCFG_K051960_CB(tmnt_state, tmnt_sprite_callback)
MCFG_K051960_PLANEORDER(K051960_PLANEORDER_MIA)
@@ -2163,6 +2166,7 @@ static MACHINE_CONFIG_START( punkshot, tmnt_state )
MCFG_DEVICE_ADD("k051960", K051960, 0)
MCFG_GFX_PALETTE("palette")
+ MCFG_K051960_SCREEN_TAG("screen")
MCFG_K051960_CB(tmnt_state, punkshot_sprite_callback)
MCFG_K053251_ADD("k053251")
@@ -2632,6 +2636,7 @@ static MACHINE_CONFIG_START( thndrx2, tmnt_state )
MCFG_DEVICE_ADD("k051960", K051960, 0)
MCFG_GFX_PALETTE("palette")
+ MCFG_K051960_SCREEN_TAG("screen")
MCFG_K051960_CB(tmnt_state, thndrx2_sprite_callback)
MCFG_K053251_ADD("k053251")
@@ -4137,65 +4142,65 @@ DRIVER_INIT_MEMBER(tmnt_state,cuebrick)
}
// 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)", GAME_SUPPORTS_SAVE )
-
-GAME( 1989, mia, 0, mia, mia, tmnt_state, mia, ROT0, "Konami", "M.I.A. - Missing in Action (version T)", GAME_SUPPORTS_SAVE )
-GAME( 1989, mia2, mia, mia, mia, tmnt_state, mia, ROT0, "Konami", "M.I.A. - Missing in Action (version S)", GAME_SUPPORTS_SAVE )
-
-GAME( 1989, tmnt, 0, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Ninja Turtles (World 4 Players)", GAME_SUPPORTS_SAVE )
-GAME( 1989, tmntu, tmnt, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Ninja Turtles (US 4 Players, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1989, tmntua, tmnt, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Ninja Turtles (US 4 Players, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1989, tmht, tmnt, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Hero Turtles (UK 4 Players, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1989, tmhta, tmnt, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Hero Turtles (UK 4 Players, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1989, tmhtb, tmnt, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Hero Turtles (UK 4 Players, set 3)", GAME_SUPPORTS_SAVE )
-GAME( 1990, tmntj, tmnt, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Ninja Turtles (Japan 4 Players)", GAME_SUPPORTS_SAVE )
-GAME( 1989, tmht2p, tmnt, tmnt, tmnt2p, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Hero Turtles (UK 2 Players, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1989, tmht2pa, tmnt, tmnt, tmnt2p, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Hero Turtles (UK 2 Players, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1990, tmnt2pj, tmnt, tmnt, tmnt2p, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Ninja Turtles (Japan 2 Players)", GAME_SUPPORTS_SAVE )
-GAME( 1989, tmnt2po, tmnt, tmnt, tmnt2p, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Ninja Turtles (Oceania 2 Players)", GAME_SUPPORTS_SAVE )
-
-GAME( 1990, punkshot, 0, punkshot, punkshot, driver_device, 0, ROT0, "Konami", "Punk Shot (US 4 Players)", GAME_SUPPORTS_SAVE )
-GAME( 1990, punkshot2, punkshot, punkshot, punksht2, driver_device, 0, ROT0, "Konami", "Punk Shot (US 2 Players)", GAME_SUPPORTS_SAVE )
-GAME( 1990, punkshotj, punkshot, punkshot, punkshtj, driver_device, 0, ROT0, "Konami", "Punk Shot (Japan 2 Players)", GAME_SUPPORTS_SAVE )
-
-GAME( 1990, lgtnfght, 0, lgtnfght, lgtnfght, driver_device, 0, ROT90, "Konami", "Lightning Fighters (World)", GAME_SUPPORTS_SAVE )
-GAME( 1990, lgtnfghta, lgtnfght, lgtnfght, lgtnfght, driver_device, 0, ROT90, "Konami", "Lightning Fighters (Asia)", GAME_SUPPORTS_SAVE )
-GAME( 1990, lgtnfghtu, lgtnfght, lgtnfght, lgtnfght, driver_device, 0, ROT90, "Konami", "Lightning Fighters (US)", GAME_SUPPORTS_SAVE )
-GAME( 1990, trigon, lgtnfght, lgtnfght, trigon, driver_device, 0, ROT90, "Konami", "Trigon (Japan)", GAME_SUPPORTS_SAVE )
-
-GAME( 1991, blswhstl, 0, blswhstl, blswhstl, driver_device, 0, ROT90, "Konami", "Bells & Whistles (World, version L)", GAME_SUPPORTS_SAVE )
-GAME( 1991, blswhstla, blswhstl, blswhstl, blswhstl, driver_device, 0, ROT90, "Konami", "Bells & Whistles (Asia, version M)", GAME_SUPPORTS_SAVE )
-GAME( 1991, detatwin, blswhstl, blswhstl, blswhstl, driver_device, 0, ROT90, "Konami", "Detana!! Twin Bee (Japan, version J)", GAME_SUPPORTS_SAVE )
-
-GAME( 1991, glfgreat, 0, glfgreat, glfgreat, driver_device, 0, ROT0, "Konami", "Golfing Greats", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1991, glfgreatj, glfgreat, glfgreat, glfgreatj, driver_device, 0, ROT0, "Konami", "Golfing Greats (Japan)", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-
-GAME( 1991, tmnt2, 0, tmnt2, ssridr4p, driver_device, 0, ROT0, "Konami", "Teenage Mutant Ninja Turtles - Turtles in Time (4 Players ver UAA)", GAME_SUPPORTS_SAVE )
-GAME( 1991, tmnt2a, tmnt2, tmnt2, ssrid4ps, driver_device, 0, ROT0, "Konami", "Teenage Mutant Ninja Turtles - Turtles in Time (4 Players ver ADA)", GAME_SUPPORTS_SAVE )
-GAME( 1991, tmht22pe, tmnt2, tmnt2, ssriders, driver_device, 0, ROT0, "Konami", "Teenage Mutant Hero Turtles - Turtles in Time (2 Players ver EBA)", GAME_SUPPORTS_SAVE )
-GAME( 1991, tmnt22pu, tmnt2, tmnt2, ssriders, driver_device, 0, ROT0, "Konami", "Teenage Mutant Ninja Turtles - Turtles in Time (2 Players ver UDA)", GAME_SUPPORTS_SAVE )
-
-GAME( 1993, qgakumon, 0, tmnt2, qgakumon, driver_device, 0, ROT0, "Konami", "Quiz Gakumon no Susume (Japan ver. JA2 Type L)", GAME_SUPPORTS_SAVE )
-
-GAME( 1991, ssriders, 0, ssriders, ssridr4p, driver_device, 0, ROT0, "Konami", "Sunset Riders (4 Players ver EAC)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1991, ssriderseaa, ssriders, ssriders, ssrid4ps, driver_device, 0, ROT0, "Konami", "Sunset Riders (4 Players ver EAA)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1991, ssridersebd, ssriders, ssriders, ssriders, driver_device, 0, ROT0, "Konami", "Sunset Riders (2 Players ver EBD)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1991, ssridersebc, ssriders, ssriders, ssriders, driver_device, 0, ROT0, "Konami", "Sunset Riders (2 Players ver EBC)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1991, ssridersuda, ssriders, ssriders, ssrid4ps, driver_device, 0, ROT0, "Konami", "Sunset Riders (4 Players ver UDA)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1991, ssridersuac, ssriders, ssriders, ssridr4p, driver_device, 0, ROT0, "Konami", "Sunset Riders (4 Players ver UAC)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1991, ssridersuab, ssriders, ssriders, ssridr4p, driver_device, 0, ROT0, "Konami", "Sunset Riders (4 Players ver UAB)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1991, ssridersubc, ssriders, ssriders, ssriders, driver_device, 0, ROT0, "Konami", "Sunset Riders (2 Players ver UBC)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1991, ssridersadd, ssriders, ssriders, ssrid4ps, driver_device, 0, ROT0, "Konami", "Sunset Riders (4 Players ver ADD)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1991, ssridersabd, ssriders, ssriders, ssriders, driver_device, 0, ROT0, "Konami", "Sunset Riders (2 Players ver ABD)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1991, ssridersjad, ssriders, ssriders, ssrid4ps, driver_device, 0, ROT0, "Konami", "Sunset Riders (4 Players ver JAD)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1991, ssridersjac, ssriders, ssriders, ssrid4ps, driver_device, 0, ROT0, "Konami", "Sunset Riders (4 Players ver JAC)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1991, ssridersjbd, ssriders, ssriders, ssriders, driver_device, 0, ROT0, "Konami", "Sunset Riders (2 Players ver JBD)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1991, ssridersb, ssriders, sunsetbl, sunsetbl, driver_device, 0, ROT0, "bootleg","Sunset Riders (bootleg 4 Players ver ADD)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1991, ssriders2, ssriders, sunsetbl, sunsetbl, driver_device, 0, ROT0, "bootleg","Sunset Riders 2 (bootleg 4 Players ver ADD)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-
-GAME( 1991, thndrx2, 0, thndrx2, thndrx2, driver_device, 0, ROT0, "Konami", "Thunder Cross II (World)", GAME_SUPPORTS_SAVE )
-GAME( 1991, thndrx2a, thndrx2, thndrx2, thndrx2, driver_device, 0, ROT0, "Konami", "Thunder Cross II (Asia)", GAME_SUPPORTS_SAVE )
-GAME( 1991, thndrx2j, thndrx2, thndrx2, thndrx2, driver_device, 0, ROT0, "Konami", "Thunder Cross II (Japan)", GAME_SUPPORTS_SAVE )
-
-GAME( 1993, prmrsocr, 0, prmrsocr, prmrsocr, driver_device, 0, ROT0, "Konami", "Premier Soccer (ver EAB)", GAME_SUPPORTS_SAVE )
-GAME( 1993, prmrsocrj, prmrsocr, prmrsocr, prmrsocr, driver_device, 0, ROT0, "Konami", "Premier Soccer (ver JAB)", GAME_SUPPORTS_SAVE )
+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)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, tmntu, tmnt, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Ninja Turtles (US 4 Players, set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, tmntua, tmnt, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Ninja Turtles (US 4 Players, set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, tmht, tmnt, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Hero Turtles (UK 4 Players, set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, tmhta, tmnt, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Hero Turtles (UK 4 Players, set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, tmhtb, tmnt, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Hero Turtles (UK 4 Players, set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, tmntj, tmnt, tmnt, tmnt, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Ninja Turtles (Japan 4 Players)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, tmht2p, tmnt, tmnt, tmnt2p, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Hero Turtles (UK 2 Players, set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, tmht2pa, tmnt, tmnt, tmnt2p, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Hero Turtles (UK 2 Players, set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, tmnt2pj, tmnt, tmnt, tmnt2p, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Ninja Turtles (Japan 2 Players)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, tmnt2po, tmnt, tmnt, tmnt2p, tmnt_state, tmnt, ROT0, "Konami", "Teenage Mutant Ninja Turtles (Oceania 2 Players)", 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, 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, ssrid4ps, 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, ssrid4ps, driver_device, 0, ROT0, "Konami", "Sunset Riders (4 Players ver JAD)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
+GAME( 1991, ssridersjac, ssriders, ssriders, ssrid4ps, 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 )
diff --git a/src/mame/drivers/tmspoker.c b/src/mame/drivers/tmspoker.c
index 1e762438554..b3010bc8b52 100644
--- a/src/mame/drivers/tmspoker.c
+++ b/src/mame/drivers/tmspoker.c
@@ -642,4 +642,4 @@ DRIVER_INIT_MEMBER(tmspoker_state,bus)
*************************/
/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS */
-GAME( 198?, tmspoker, 0, tmspoker, tmspoker, tmspoker_state, bus, ROT0, "<unknown>", "unknown TMS9980 Poker Game", GAME_NO_SOUND | GAME_NOT_WORKING )
+GAME( 198?, tmspoker, 0, tmspoker, tmspoker, tmspoker_state, bus, ROT0, "<unknown>", "unknown TMS9980 Poker Game", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/tnzs.c b/src/mame/drivers/tnzs.c
index 0d4b7800206..7448c36aff2 100644
--- a/src/mame/drivers/tnzs.c
+++ b/src/mame/drivers/tnzs.c
@@ -675,8 +675,8 @@ READ8_MEMBER(tnzs_state::kageki_csport_r)
{
int dsw, dsw1, dsw2;
- dsw1 = ioport("DSWA")->read();
- dsw2 = ioport("DSWB")->read();
+ dsw1 = m_dswa->read();
+ dsw2 = m_dswb->read();
switch (m_kageki_csport_sel)
{
@@ -731,7 +731,7 @@ WRITE8_MEMBER(tnzs_state::kabukiz_sound_bank_w)
{
// to avoid the write when the sound chip is initialized
if (data != 0xff)
- membank("audiobank")->set_entry(data & 0x07);
+ m_audiobank->set_entry(data & 0x07);
}
WRITE8_MEMBER(tnzs_state::kabukiz_sample_w)
@@ -877,7 +877,7 @@ ADDRESS_MAP_END
WRITE8_MEMBER(tnzs_state::jpopnics_subbankswitch_w)
{
/* bits 0-1 select ROM bank */
- membank("subbank")->set_entry(data & 0x03);
+ m_subbank->set_entry(data & 0x03);
}
static ADDRESS_MAP_START( jpopnics_sub_map, AS_PROGRAM, 8, tnzs_state )
@@ -2195,7 +2195,7 @@ ROM_START( drtoppelj )
ROM_END
/* M6100309A PCB
- PO-0038A */
+ P0-0038A */
ROM_START( kageki )
ROM_REGION( 0x20000, "maincpu", 0 )
ROM_LOAD( "b35-16.11c", 0x00000, 0x10000, CRC(a4e6fd58) SHA1(7cfe5b3fa6c88cdab45719f5b58541270825ad30) ) /* US ver */
@@ -2495,14 +2495,14 @@ ROM_START( tnzsj )
ROM_LOAD( "b53-15.pal16l8a.subpcb.ic6.jed", 0x00000, 0x01000, NO_DUMP) // on sub pcb
ROM_END
-/* tnzs - old style PCB sets
+/* tnzs - old style PCB sets
The New Zealand Story
Taito, 1988
Taito ID: K1100356A
J1100156A
MAIN PCB
-Seta ID: PO-041A
+Seta ID: P0-041A
*/
/* This pcb is similar but not identical to the Chuka Taisen pcb above;
there is an M-chip i8742 (with Taito silkscreen) and no 3rd z80.
@@ -2694,38 +2694,38 @@ ROM_END
// YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR,COMPANY,FULLNAME,FLAGS
-GAME( 1987, plumppop, 0, drtoppel, plumppop, tnzs_state, plumpop, ROT0, "Taito Corporation", "Plump Pop (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1992, jpopnics, 0, jpopnics, jpopnics, driver_device, 0, ROT0, "Nics", "Jumping Pop (Nics, Korean hack of Plump Pop)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+GAME( 1987, plumppop, 0, drtoppel, plumppop, tnzs_state, plumpop, 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, arknoid2, extrmatn, tnzs_state, extrmatn, ROT270, "Taito Corporation Japan", "Extermination (World)", GAME_SUPPORTS_SAVE )
-GAME( 1987, extrmatnu, extrmatn, arknoid2, extrmatn, tnzs_state, extrmatn, ROT270, "Taito (World Games license)", "Extermination (US)", GAME_SUPPORTS_SAVE )
-GAME( 1987, extrmatnj, extrmatn, arknoid2, extrmatn, tnzs_state, extrmatn, ROT270, "Taito Corporation", "Extermination (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1987, extrmatn, 0, arknoid2, extrmatn, tnzs_state, extrmatn, ROT270, "Taito Corporation Japan", "Extermination (World)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, extrmatnu, extrmatn, arknoid2, extrmatn, tnzs_state, extrmatn, ROT270, "Taito (World Games license)", "Extermination (US)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, extrmatnj, extrmatn, arknoid2, extrmatn, tnzs_state, extrmatn, ROT270, "Taito Corporation", "Extermination (Japan)", MACHINE_SUPPORTS_SAVE )
-GAME( 1987, arknoid2, 0, arknoid2, arknoid2, tnzs_state, arknoid2, ROT270, "Taito Corporation Japan", "Arkanoid - Revenge of DOH (World)", GAME_SUPPORTS_SAVE )
-GAME( 1987, arknoid2u, arknoid2, arknoid2, arknid2u, tnzs_state, arknoid2, ROT270, "Taito America Corporation (Romstar license)", "Arkanoid - Revenge of DOH (US)", GAME_SUPPORTS_SAVE )
-GAME( 1987, arknoid2j, arknoid2, arknoid2, arknid2u, tnzs_state, arknoid2, ROT270, "Taito Corporation", "Arkanoid - Revenge of DOH (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1987, arknoid2b, arknoid2, arknoid2, arknid2u, tnzs_state, arknoid2, ROT270, "bootleg", "Arkanoid - Revenge of DOH (Japan bootleg)", GAME_SUPPORTS_SAVE )
+GAME( 1987, arknoid2, 0, arknoid2, arknoid2, tnzs_state, arknoid2, ROT270, "Taito Corporation Japan", "Arkanoid - Revenge of DOH (World)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, arknoid2u, arknoid2, arknoid2, arknid2u, tnzs_state, arknoid2, ROT270, "Taito America Corporation (Romstar license)", "Arkanoid - Revenge of DOH (US)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, arknoid2j, arknoid2, arknoid2, arknid2u, tnzs_state, arknoid2, ROT270, "Taito Corporation", "Arkanoid - Revenge of DOH (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1987, arknoid2b, arknoid2, arknoid2, arknid2u, tnzs_state, arknoid2, ROT270, "bootleg", "Arkanoid - Revenge of DOH (Japan bootleg)", MACHINE_SUPPORTS_SAVE )
-GAME( 1987, drtoppel, 0, drtoppel, drtoppel, tnzs_state, drtoppel, ROT90, "Kaneko / Taito Corporation Japan", "Dr. Toppel's Adventure (World)", GAME_SUPPORTS_SAVE ) /* Possible region hack */
-GAME( 1987, drtoppelu, drtoppel, drtoppel, drtopplu, tnzs_state, drtoppel, ROT90, "Kaneko / Taito America Corporation", "Dr. Toppel's Adventure (US)", GAME_SUPPORTS_SAVE ) /* Possible region hack */
-GAME( 1987, drtoppelj, drtoppel, drtoppel, drtopplu, tnzs_state, drtoppel, ROT90, "Kaneko / Taito Corporation", "Dr. Toppel's Tankentai (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1987, drtoppel, 0, drtoppel, drtoppel, tnzs_state, drtoppel, ROT90, "Kaneko / Taito Corporation Japan", "Dr. Toppel's Adventure (World)", MACHINE_SUPPORTS_SAVE ) /* Possible region hack */
+GAME( 1987, drtoppelu, drtoppel, drtoppel, drtopplu, tnzs_state, drtoppel, ROT90, "Kaneko / Taito America Corporation", "Dr. Toppel's Adventure (US)", MACHINE_SUPPORTS_SAVE ) /* Possible region hack */
+GAME( 1987, drtoppelj, drtoppel, drtoppel, drtopplu, tnzs_state, drtoppel, ROT90, "Kaneko / Taito Corporation", "Dr. Toppel's Tankentai (Japan)", MACHINE_SUPPORTS_SAVE )
-GAME( 1988, kageki, 0, kageki, kageki, tnzs_state, kageki, ROT90, "Kaneko / Taito America Corporation (Romstar license)", "Kageki (US)", GAME_SUPPORTS_SAVE )
-GAME( 1988, kagekij, kageki, kageki, kagekij, tnzs_state, kageki, ROT90, "Kaneko / Taito Corporation", "Kageki (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1992, kagekih, kageki, kageki, kageki, tnzs_state, kageki, ROT90, "hack", "Kageki (hack)", GAME_SUPPORTS_SAVE ) // date is hacked at least, might also be a Japan set hacked to show english
+GAME( 1988, kageki, 0, kageki, kageki, tnzs_state, kageki, ROT90, "Kaneko / Taito America Corporation (Romstar license)", "Kageki (US)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, kagekij, kageki, kageki, kagekij, tnzs_state, kageki, ROT90, "Kaneko / Taito Corporation", "Kageki (Japan)", MACHINE_SUPPORTS_SAVE )
+GAME( 1992, kagekih, kageki, kageki, kageki, tnzs_state, kageki, 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, chukatai, ROT0, "Taito Corporation Japan", "Chuka Taisen (World)", GAME_SUPPORTS_SAVE ) /* Possible region hack */
-GAME( 1988, chukataiu, chukatai, tnzs, chukatau, tnzs_state, chukatai, ROT0, "Taito America Corporation", "Chuka Taisen (US)", GAME_SUPPORTS_SAVE ) /* Possible region hack */
-GAME( 1988, chukataij, chukatai, tnzs, chukatau, tnzs_state, chukatai, ROT0, "Taito Corporation", "Chuka Taisen (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1988, chukatai, 0, tnzs, chukatai, tnzs_state, chukatai, ROT0, "Taito Corporation Japan", "Chuka Taisen (World)", MACHINE_SUPPORTS_SAVE ) /* Possible region hack */
+GAME( 1988, chukataiu, chukatai, tnzs, chukatau, tnzs_state, chukatai, ROT0, "Taito America Corporation", "Chuka Taisen (US)", MACHINE_SUPPORTS_SAVE ) /* Possible region hack */
+GAME( 1988, chukataij, chukatai, tnzs, chukatau, tnzs_state, chukatai, ROT0, "Taito Corporation", "Chuka Taisen (Japan)", MACHINE_SUPPORTS_SAVE )
-GAME( 1988, tnzs, 0, tnzsb, tnzs, tnzs_state, tnzsb, ROT0, "Taito Corporation Japan", "The NewZealand Story (World, new version) (newer PCB)", GAME_SUPPORTS_SAVE )
-GAME( 1988, tnzsj, tnzs, tnzsb, tnzsj, tnzs_state, tnzsb, ROT0, "Taito Corporation", "The NewZealand Story (Japan, new version) (newer PCB)", GAME_SUPPORTS_SAVE )
-GAME( 1988, tnzsjo, tnzs, tnzs, tnzsjo, tnzs_state, tnzs, ROT0, "Taito Corporation", "The NewZealand Story (Japan, old version) (older PCB)", GAME_SUPPORTS_SAVE )
-GAME( 1988, tnzso, tnzs, tnzs, tnzsop, tnzs_state, tnzs, ROT0, "Taito Corporation Japan", "The NewZealand Story (World, old version) (older PCB)", GAME_SUPPORTS_SAVE )
-GAME( 1988, tnzsop, tnzs, tnzs, tnzsop, tnzs_state, tnzs, ROT0, "Taito Corporation Japan", "The NewZealand Story (World, prototype?) (older PCB)", GAME_SUPPORTS_SAVE )
+GAME( 1988, tnzs, 0, tnzsb, tnzs, tnzs_state, tnzsb, ROT0, "Taito Corporation Japan", "The NewZealand Story (World, new version) (newer PCB)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, tnzsj, tnzs, tnzsb, tnzsj, tnzs_state, tnzsb, ROT0, "Taito Corporation", "The NewZealand Story (Japan, new version) (newer PCB)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, tnzsjo, tnzs, tnzs, tnzsjo, tnzs_state, tnzs, ROT0, "Taito Corporation", "The NewZealand Story (Japan, old version) (older PCB)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, tnzso, tnzs, tnzs, tnzsop, tnzs_state, tnzs, ROT0, "Taito Corporation Japan", "The NewZealand Story (World, old version) (older PCB)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, tnzsop, tnzs, tnzs, tnzsop, tnzs_state, tnzs, ROT0, "Taito Corporation Japan", "The NewZealand Story (World, prototype?) (older PCB)", MACHINE_SUPPORTS_SAVE )
-GAME( 1988, kabukiz, 0, kabukiz, kabukiz, tnzs_state, kabukiz, ROT0, "Kaneko / Taito Corporation Japan", "Kabuki-Z (World)", GAME_SUPPORTS_SAVE )
-GAME( 1988, kabukizj, kabukiz, kabukiz, kabukizj, tnzs_state, kabukiz, ROT0, "Kaneko / Taito Corporation", "Kabuki-Z (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1988, kabukiz, 0, kabukiz, kabukiz, tnzs_state, kabukiz, ROT0, "Kaneko / Taito Corporation Japan", "Kabuki-Z (World)", MACHINE_SUPPORTS_SAVE )
+GAME( 1988, kabukizj, kabukiz, kabukiz, kabukizj, tnzs_state, kabukiz, ROT0, "Kaneko / Taito Corporation", "Kabuki-Z (Japan)", MACHINE_SUPPORTS_SAVE )
-GAME( 1989, insectx, 0, insectx, insectx, tnzs_state, insectx, ROT0, "Taito Corporation Japan", "Insector X (World)", GAME_SUPPORTS_SAVE )
-GAME( 1989, insectxj, insectx, insectx, insectxj, tnzs_state, insectx, ROT0, "Taito Corporation", "Insector X (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1989, insectx, 0, insectx, insectx, tnzs_state, insectx, ROT0, "Taito Corporation Japan", "Insector X (World)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, insectxj, insectx, insectx, insectxj, tnzs_state, insectx, ROT0, "Taito Corporation", "Insector X (Japan)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/toaplan1.c b/src/mame/drivers/toaplan1.c
index 1998a201404..86fcbda739d 100644
--- a/src/mame/drivers/toaplan1.c
+++ b/src/mame/drivers/toaplan1.c
@@ -497,7 +497,7 @@ Stephh's and AWJ's notes (based on the games M68000 and Z80 code and some tests)
Most likely the board it came from was either bootlegged or repaired by someone
who used the wrong Z80 ROM and didn't notice or care that the sounds were wrong.
Because of this I've tagged the Z80 ROM as a BAD_DUMP and tagged this set with
- GAME_IMPERFECT_SOUND until the correct Z80 ROM is found and dumped.
+ MACHINE_IMPERFECT_SOUND until the correct Z80 ROM is found and dumped.
8) 'vimana' and "clones"
@@ -2860,17 +2860,17 @@ GAME( 1990, demonwld, 0, demonwld, demonwld, toaplan1_state, demonwld,
GAME( 1989, demonwld1, demonwld, demonwld, demonwld1, 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( 1990, fireshrk, 0, samesame, fireshrk, toaplan1_state, toaplan1, ROT270, "Toaplan", "Fire Shark", GAME_NO_SOUND )
-GAME( 1989, fireshrka, fireshrk, samesame, fireshrka, toaplan1_state, toaplan1, ROT270, "Toaplan", "Fire Shark (earlier)", GAME_NO_SOUND )
-GAME( 1990, fireshrkd, fireshrk, samesame, samesame2, toaplan1_state, toaplan1, ROT270, "Toaplan (Dooyong license)", "Fire Shark (Korea, set 1, easier)", GAME_NO_SOUND )
-GAME( 1990, fireshrkdh, fireshrk, samesame, samesame2, toaplan1_state, toaplan1, ROT270, "Toaplan (Dooyong license)", "Fire Shark (Korea, set 2, harder)", GAME_NO_SOUND )
-GAME( 1989, samesame, fireshrk, samesame, samesame, toaplan1_state, toaplan1, ROT270, "Toaplan", "Same! Same! Same! (1P set)", GAME_NO_SOUND )
-GAME( 1989, samesame2, fireshrk, samesame, samesame2, toaplan1_state, toaplan1, ROT270, "Toaplan", "Same! Same! Same! (2P set)", GAME_NO_SOUND )
+GAME( 1990, fireshrk, 0, samesame, fireshrk, toaplan1_state, toaplan1, ROT270, "Toaplan", "Fire Shark", MACHINE_NO_SOUND )
+GAME( 1989, fireshrka, fireshrk, samesame, fireshrka, toaplan1_state, toaplan1, ROT270, "Toaplan", "Fire Shark (earlier)", MACHINE_NO_SOUND )
+GAME( 1990, fireshrkd, fireshrk, samesame, samesame2, toaplan1_state, toaplan1, ROT270, "Toaplan (Dooyong license)", "Fire Shark (Korea, set 1, easier)", MACHINE_NO_SOUND )
+GAME( 1990, fireshrkdh, fireshrk, samesame, samesame2, toaplan1_state, toaplan1, ROT270, "Toaplan (Dooyong license)", "Fire Shark (Korea, set 2, harder)", MACHINE_NO_SOUND )
+GAME( 1989, samesame, fireshrk, samesame, samesame, toaplan1_state, toaplan1, ROT270, "Toaplan", "Same! Same! Same! (1P set)", MACHINE_NO_SOUND )
+GAME( 1989, samesame2, fireshrk, samesame, samesame2, toaplan1_state, toaplan1, ROT270, "Toaplan", "Same! Same! Same! (2P set)", MACHINE_NO_SOUND )
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)", GAME_IMPERFECT_SOUND ) // prototype?
-GAME( 1991, vimana, 0, vimana, vimana, toaplan1_state, vimana, ROT270, "Toaplan", "Vimana (World, set 1)", GAME_NO_SOUND )
-GAME( 1991, vimanan, vimana, vimana, vimanan, toaplan1_state, vimana, ROT270, "Toaplan", "Vimana (World, set 2)", GAME_NO_SOUND )
-GAME( 1991, vimanaj, vimana, vimana, vimanaj, toaplan1_state, vimana, ROT270, "Toaplan", "Vimana (Japan)", GAME_NO_SOUND )
+GAME( 1990, outzonec, outzone, outzone, outzonec, toaplan1_state, toaplan1, ROT270, "Toaplan", "Out Zone (oldest set)", MACHINE_IMPERFECT_SOUND ) // prototype?
+GAME( 1991, vimana, 0, vimana, vimana, toaplan1_state, vimana, ROT270, "Toaplan", "Vimana (World, set 1)", MACHINE_NO_SOUND )
+GAME( 1991, vimanan, vimana, vimana, vimanan, toaplan1_state, vimana, ROT270, "Toaplan", "Vimana (World, set 2)", MACHINE_NO_SOUND )
+GAME( 1991, vimanaj, vimana, vimana, vimanaj, toaplan1_state, vimana, ROT270, "Toaplan", "Vimana (Japan)", MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/toaplan2.c b/src/mame/drivers/toaplan2.c
index f704fde1ac2..90bea610ee6 100644
--- a/src/mame/drivers/toaplan2.c
+++ b/src/mame/drivers/toaplan2.c
@@ -1885,6 +1885,28 @@ static INPUT_PORTS_START( kbash )
// PORT_CONFSETTING( 0x00f0, DEF_STR( Unused ) )
INPUT_PORTS_END
+static INPUT_PORTS_START( kbashk )
+ PORT_INCLUDE( kbash )
+
+ PORT_MODIFY("JMPR")
+ PORT_CONFNAME( 0x00f0, 0x0000, DEF_STR( Region ) ) //PORT_CONFLOCATION("JP:!4,!3,!2,!1")
+ PORT_CONFSETTING( 0x0000, "Japan (Taito license)" ) // Taito license
+ PORT_CONFSETTING( 0x0010, DEF_STR( Unused ) )
+ PORT_CONFSETTING( 0x0020, DEF_STR( Unused ) )
+ PORT_CONFSETTING( 0x0030, DEF_STR( Korea ) )
+ PORT_CONFSETTING( 0x0040, DEF_STR( Hong_Kong ) )
+ PORT_CONFSETTING( 0x0050, DEF_STR( Taiwan ) )
+ PORT_CONFSETTING( 0x0060, DEF_STR( Southeast_Asia ) )
+ PORT_CONFSETTING( 0x0070, DEF_STR( Unused ) )
+ PORT_CONFSETTING( 0x0080, DEF_STR( Japan ) ) // no Taito license
+ PORT_CONFSETTING( 0x0090, DEF_STR( Unused ) )
+ PORT_CONFSETTING( 0x00a0, DEF_STR( Unused ) )
+ PORT_CONFSETTING( 0x00b0, DEF_STR( Korea ) )
+ PORT_CONFSETTING( 0x00c0, DEF_STR( Hong_Kong ))
+ PORT_CONFSETTING( 0x00d0, DEF_STR( Taiwan ))
+ PORT_CONFSETTING( 0x00e0, DEF_STR( Southeast_Asia ))
+ PORT_CONFSETTING( 0x00f0, DEF_STR( Unused ) )
+INPUT_PORTS_END
static INPUT_PORTS_START( kbash2 )
PORT_INCLUDE( kbash )
@@ -4135,7 +4157,25 @@ ROM_START( kbash )
ROM_LOAD( "tp023_7.bin", 0x00000, 0x40000, CRC(3732318f) SHA1(f0768459f5ad2dee53d408a0a5ae3a314864e667) )
ROM_END
+ROM_START( kbashk )
+ ROM_REGION( 0x080000, "maincpu", 0 ) /* Main 68K code */
+ ROM_LOAD16_WORD_SWAP( "tp023_01.u52", 0x000000, 0x080000, CRC(099aefbc) SHA1(8daa0deffe221e1bb5a8744ced18c23ad319ffd3) ) // same label as parent?
+
+ /* Secondary CPU is a Toaplan marked chip, (TS-004-Dash TOA PLAN) */
+ /* It's a NEC V25 (PLCC94) (encrypted) */
+ ROM_REGION( 0x8000, "audiocpu", 0 ) /* Sound CPU code */
+ ROM_LOAD( "tp023_02.bin", 0x0000, 0x8000, CRC(4cd882a1) SHA1(7199a5c384918f775f0815e09c46b2a58141814a) )
+
+ ROM_REGION( 0x800000, "gp9001", 0 )
+ ROM_LOAD( "tp023_3.bin", 0x000000, 0x200000, CRC(32ad508b) SHA1(e473489beaf649d3e5236770eb043327e309850c) )
+ ROM_LOAD( "tp023_5.bin", 0x200000, 0x200000, CRC(b84c90eb) SHA1(17a1531d884d9a9696d1b25d65f9155f02396e0e) )
+ ROM_LOAD( "tp023_4.bin", 0x400000, 0x200000, CRC(e493c077) SHA1(0edcfb70483ad07206695d9283031b85cd198a36) )
+ ROM_LOAD( "tp023_6.bin", 0x600000, 0x200000, CRC(9084b50a) SHA1(03b58278619524d2f09a4b1c152d5e057e792a56) )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM Samples */
+ ROM_LOAD( "tp023_7.bin", 0x00000, 0x40000, CRC(3732318f) SHA1(f0768459f5ad2dee53d408a0a5ae3a314864e667) )
+ROM_END
/*
Knuckle Bash 2
This is a hacked version of Knuckle Bash on bootleg/Korean/Chinese
@@ -5304,90 +5344,91 @@ ROM_END
// See list at top of file
// ( YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME FLAGS )
-GAME( 1991, tekipaki, 0, tekipaki, tekipaki, driver_device, 0, ROT0, "Toaplan", "Teki Paki", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1991, tekipaki, 0, tekipaki, tekipaki, driver_device, 0, ROT0, "Toaplan", "Teki Paki", MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
-GAME( 1991, ghox, 0, ghox, ghox, driver_device, 0, ROT270, "Toaplan", "Ghox (spinner)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1991, ghoxj, ghox, ghox, ghox, driver_device, 0, ROT270, "Toaplan", "Ghox (joystick)", GAME_NO_SOUND | GAME_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( 1992, dogyuun, 0, dogyuun, dogyuun, toaplan2_state, dogyuun, ROT270, "Toaplan", "Dogyuun", GAME_SUPPORTS_SAVE )
-GAME( 1992, dogyuuna, dogyuun, dogyuun, dogyuuna, toaplan2_state, dogyuun, ROT270, "Toaplan", "Dogyuun (older set)", GAME_SUPPORTS_SAVE )
-GAME( 1992, dogyuunt, dogyuun, dogyuun, dogyuunt, toaplan2_state, dogyuun, ROT270, "Toaplan", "Dogyuun (location test)", GAME_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", "Knuckle Bash", GAME_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( 1999, kbash2, 0, kbash2, kbash2, driver_device, 0, ROT0, "bootleg", "Knuckle Bash 2 (bootleg)", GAME_SUPPORTS_SAVE )
+GAME( 1999, kbash2, 0, kbash2, kbash2, driver_device, 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", GAME_SUPPORTS_SAVE )
+GAME( 1992, truxton2, 0, truxton2, truxton2, driver_device, 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)", GAME_SUPPORTS_SAVE )
-GAME( 1991, pipibibsa, pipibibs, pipibibs, pipibibs, driver_device, 0, ROT0, "Toaplan", "Pipi & Bibis / Whoopee!! (Z80 sound cpu, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1991, pipibibsp, pipibibs, pipibibs, pipibibsp, driver_device,0, ROT0, "Toaplan", "Pipi & Bibis / Whoopee!! (prototype)", GAME_SUPPORTS_SAVE )
-GAME( 1991, whoopee, pipibibs, tekipaki, whoopee, driver_device, 0, ROT0, "Toaplan", "Pipi & Bibis / Whoopee!! (Teki Paki hardware)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE ) // original Whoopee!! boards have a HD647180 instead of Z80
+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, pipibibsbl, pipibibs, pipibibsbl, pipibibsbl, toaplan2_state, pipibibsbl, ROT0, "bootleg (Ryouta Kikaku)", "Pipi & Bibis / Whoopee!! (bootleg)", GAME_SUPPORTS_SAVE )
+GAME( 1991, pipibibsbl, pipibibs, pipibibsbl, pipibibsbl, toaplan2_state, pipibibsbl, ROT0, "bootleg (Ryouta Kikaku)", "Pipi & Bibis / Whoopee!! (bootleg)", MACHINE_SUPPORTS_SAVE )
// 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)", GAME_SUPPORTS_SAVE )
-GAME( 1992, fixeightk, fixeight, fixeight, fixeight, toaplan2_state, fixeight, ROT270, "Toaplan", "FixEight (Korea)", GAME_SUPPORTS_SAVE )
-GAME( 1992, fixeighth, fixeight, fixeight, fixeight, toaplan2_state, fixeight, ROT270, "Toaplan", "FixEight (Hong Kong)", GAME_SUPPORTS_SAVE )
-GAME( 1992, fixeighttw, fixeight, fixeight, fixeight, toaplan2_state, fixeight, ROT270, "Toaplan", "FixEight (Taiwan)", GAME_SUPPORTS_SAVE )
-GAME( 1992, fixeighta, fixeight, fixeight, fixeight, toaplan2_state, fixeight, ROT270, "Toaplan", "FixEight (Southeast Asia)", GAME_SUPPORTS_SAVE )
-GAME( 1992, fixeightu, fixeight, fixeight, fixeight, toaplan2_state, fixeight, ROT270, "Toaplan", "FixEight (USA)", GAME_SUPPORTS_SAVE )
-GAME( 1992, fixeightj, fixeight, fixeight, fixeight, toaplan2_state, fixeight, ROT270, "Toaplan", "FixEight (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1992, fixeightt, fixeight, fixeight, fixeight, toaplan2_state, fixeight, ROT270, "Toaplan (Taito license)", "FixEight (Europe, Taito license)", GAME_SUPPORTS_SAVE )
-GAME( 1992, fixeightkt, fixeight, fixeight, fixeight, toaplan2_state, fixeight, ROT270, "Toaplan (Taito license)", "FixEight (Korea, Taito license)", GAME_SUPPORTS_SAVE )
-GAME( 1992, fixeightht, fixeight, fixeight, fixeight, toaplan2_state, fixeight, ROT270, "Toaplan (Taito license)", "FixEight (Hong Kong, Taito license)", GAME_SUPPORTS_SAVE )
-GAME( 1992, fixeighttwt,fixeight, fixeight, fixeight, toaplan2_state, fixeight, ROT270, "Toaplan (Taito license)", "FixEight (Taiwan, Taito license)", GAME_SUPPORTS_SAVE )
-GAME( 1992, fixeightat, fixeight, fixeight, fixeight, toaplan2_state, fixeight, ROT270, "Toaplan (Taito license)", "FixEight (Southeast Asia, Taito license)", GAME_SUPPORTS_SAVE )
-GAME( 1992, fixeightut, fixeight, fixeight, fixeight, toaplan2_state, fixeight, ROT270, "Toaplan (Taito license)", "FixEight (USA, Taito license)", GAME_SUPPORTS_SAVE )
-GAME( 1992, fixeightjt, fixeight, fixeight, fixeight, toaplan2_state, fixeight, ROT270, "Toaplan (Taito license)", "FixEight (Japan, Taito license)", GAME_SUPPORTS_SAVE )
-
-GAME( 1992, fixeightbl, fixeight, fixeightbl, fixeightbl, toaplan2_state, fixeightbl, ROT270, "bootleg", "FixEight (Korea, bootleg)", GAME_SUPPORTS_SAVE )
-
-GAME( 1992, grindstm, 0, vfive, grindstm, toaplan2_state, vfive, ROT270, "Toaplan", "Grind Stormer", GAME_SUPPORTS_SAVE )
-GAME( 1992, grindstma, grindstm, vfive, grindstma, toaplan2_state, vfive, ROT270, "Toaplan", "Grind Stormer (older set)", GAME_SUPPORTS_SAVE )
-GAME( 1993, vfive, grindstm, vfive, vfive, toaplan2_state, vfive, ROT270, "Toaplan", "V-Five (Japan)", GAME_SUPPORTS_SAVE )
-
-GAME( 1993, batsugun, 0, batsugun, batsugun, toaplan2_state, dogyuun, ROT270, "Toaplan", "Batsugun", GAME_SUPPORTS_SAVE )
-GAME( 1993, batsuguna, batsugun, batsugun, batsugun, toaplan2_state, dogyuun, ROT270, "Toaplan", "Batsugun (older set)", GAME_SUPPORTS_SAVE )
-GAME( 1993, batsugunsp, batsugun, batsugun, batsugun, toaplan2_state, dogyuun, ROT270, "Toaplan", "Batsugun - Special Version", GAME_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, 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", GAME_SUPPORTS_SAVE )
-GAME( 1998, snowbro2b, snowbro2, snowbro2, snowbro2, driver_device, 0, ROT0, "bootleg", "Snow Bros. 2 - With New Elves / Otenki Paradise (bootleg)", GAME_SUPPORTS_SAVE )
+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)" , GAME_SUPPORTS_SAVE ) // verified on two different PCBs
-GAME( 1993, sstrikera, sstriker, mahoudai, sstrikera, driver_device, 0, ROT270, "Raizing", "Sorcer Striker (set 2)" , GAME_SUPPORTS_SAVE ) // from Korean board
-GAME( 1993, mahoudai, sstriker, mahoudai, mahoudai, driver_device, 0, ROT270, "Raizing (Able license)", "Mahou Daisakusen (Japan)", GAME_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", GAME_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)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1996, bgareggahk, bgaregga, bgaregga, bgareggahk, toaplan2_state, bgaregga, ROT270, "Raizing / Eighting", "Battle Garegga (Austria / Hong Kong) (Sat Feb 3 1996)", GAME_SUPPORTS_SAVE )
-GAME( 1996, bgareggatw, bgaregga, bgaregga, bgareggatw, toaplan2_state, bgaregga, ROT270, "Raizing / Eighting", "Battle Garegga (Taiwan / Germany) (Thu Feb 1 1996)", GAME_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)" , GAME_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)" , GAME_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)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1996, bgareggabla,bgaregga, bgareggabl,bgareggacn, toaplan2_state,bgaregga, ROT270, "bootleg", "Lei Shen Zhuan Thunder Deity Biography (Chinese hack of Battle Garegga)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1998, batrideru, batrider, batrider, batrider, toaplan2_state, batrider, ROT270, "Raizing / Eighting", "Armed Police Batrider (USA) (Fri Feb 13 1998)", GAME_SUPPORTS_SAVE )
-GAME( 1998, batriderc, batrider, batrider, batrider, toaplan2_state, batrider, ROT270, "Raizing / Eighting", "Armed Police Batrider (China) (Fri Feb 13 1998)", GAME_SUPPORTS_SAVE )
-GAME( 1998, batriderj, batrider, batrider, batriderj, toaplan2_state, batrider, ROT270, "Raizing / Eighting", "Armed Police Batrider (Japan, B version) (Fri Feb 13 1998)", GAME_SUPPORTS_SAVE )
-GAME( 1998, batriderk, batrider, batrider, batrider, toaplan2_state, batrider, ROT270, "Raizing / Eighting", "Armed Police Batrider (Korea) (Fri Feb 13 1998)", GAME_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 )
// 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)", GAME_SUPPORTS_SAVE )
-GAME( 1998, batridert, batrider, batrider, batrider, toaplan2_state, batrider, ROT270, "Raizing / Eighting", "Armed Police Batrider (Taiwan) (Mon Dec 22 1997)", GAME_SUPPORTS_SAVE )
+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, 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)", GAME_SUPPORTS_SAVE )
-GAME( 1999, bbakraidc, bbakraid, bbakraid, bbakraid, toaplan2_state, bbakraid, ROT270, "Eighting", "Battle Bakraid - Unlimited Version (China) (Tue Jun 8 1999)", GAME_SUPPORTS_SAVE )
-GAME( 1999, bbakraidj, bbakraid, bbakraid, bbakraid, toaplan2_state, bbakraid, ROT270, "Eighting", "Battle Bakraid - Unlimited Version (Japan) (Tue Jun 8 1999)", GAME_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
-GAME( 1999, bbakraidja, bbakraid, bbakraid, bbakraid, toaplan2_state, bbakraid, ROT270, "Eighting", "Battle Bakraid (Japan) (Wed Apr 7 1999)", GAME_SUPPORTS_SAVE )
+GAME( 1999, bbakraidja, bbakraid, bbakraid, bbakraid, toaplan2_state, bbakraid, ROT270, "Eighting", "Battle Bakraid (Japan) (Wed Apr 7 1999)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/toki.c b/src/mame/drivers/toki.c
index aad35f84649..a334154c45f 100644
--- a/src/mame/drivers/toki.c
+++ b/src/mame/drivers/toki.c
@@ -853,15 +853,15 @@ DRIVER_INIT_MEMBER(toki_state,jujuba)
// these 2 are both unique revisions
-GAME( 1989, toki, 0, tokie, toki, toki_state, toki, ROT0, "TAD Corporation", "Toki (World, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1989, tokiu, toki, tokie, toki, toki_state, toki, ROT0, "TAD Corporation (Fabtek license)", "Toki (US, set 1)", GAME_SUPPORTS_SAVE )
+GAME( 1989, toki, 0, tokie, toki, toki_state, toki, ROT0, "TAD Corporation", "Toki (World, set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, tokiu, toki, tokie, toki, toki_state, toki, ROT0, "TAD Corporation (Fabtek license)", "Toki (US, set 1)", MACHINE_SUPPORTS_SAVE )
// these 3 are all the same revision, only the region byte differs
-GAME( 1989, tokia, toki, tokie, toki, toki_state, toki, ROT0, "TAD Corporation", "Toki (World, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1989, tokiua,toki, tokie, toki, toki_state, toki, ROT0, "TAD Corporation (Fabtek license)", "Toki (US, set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1989, juju, toki, tokie, toki, toki_state, toki, ROT0, "TAD Corporation", "JuJu Densetsu (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1989, tokia, toki, tokie, toki, toki_state, toki, ROT0, "TAD Corporation", "Toki (World, set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, tokiua,toki, tokie, toki, toki_state, toki, ROT0, "TAD Corporation (Fabtek license)", "Toki (US, set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, juju, toki, tokie, toki, toki_state, toki, ROT0, "TAD Corporation", "JuJu Densetsu (Japan)", MACHINE_SUPPORTS_SAVE )
-GAME( 1990, tokib, toki, tokib, tokib, toki_state, tokib, ROT0, "bootleg (Datsu)", "Toki (Datsu bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1990, jujub, toki, tokib, tokib, toki_state, tokib, ROT0, "bootleg (Playmark)", "JuJu Densetsu (Playmark bootleg)", GAME_SUPPORTS_SAVE )
+GAME( 1990, tokib, toki, tokib, tokib, toki_state, tokib, ROT0, "bootleg (Datsu)", "Toki (Datsu bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, jujub, toki, tokib, tokib, toki_state, tokib, ROT0, "bootleg (Playmark)", "JuJu Densetsu (Playmark bootleg)", MACHINE_SUPPORTS_SAVE )
/* Sound hardware seems to have been slightly modified, the coins are handled ok, but there is no music and bad sfx. Program roms have a slight bitswap, Flipscreen also seems to be ignored */
-GAME( 1989, jujuba, toki, tokic, toki, toki_state, jujuba, ROT180, "bootleg", "JuJu Densetsu (Japan, bootleg)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // bootleg of tokia/juju revison
+GAME( 1989, jujuba, toki, tokic, toki, toki_state, jujuba, ROT180, "bootleg", "JuJu Densetsu (Japan, bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // bootleg of tokia/juju revison
diff --git a/src/mame/drivers/tokyocop.c b/src/mame/drivers/tokyocop.c
index e5d6634be0f..d1b9584d16a 100644
--- a/src/mame/drivers/tokyocop.c
+++ b/src/mame/drivers/tokyocop.c
@@ -90,4 +90,4 @@ ROM_START(tokyocop)
ROM_END
-GAME( 2003, tokyocop, 0, tokyocop, tokyocop, driver_device, 0, ROT0, "Gaelco", "Tokyo Cop (Italy)", GAME_IS_SKELETON )
+GAME( 2003, tokyocop, 0, tokyocop, tokyocop, driver_device, 0, ROT0, "Gaelco", "Tokyo Cop (Italy)", MACHINE_IS_SKELETON )
diff --git a/src/mame/drivers/tomcat.c b/src/mame/drivers/tomcat.c
index 8c250b85954..de60c5f8bfc 100644
--- a/src/mame/drivers/tomcat.c
+++ b/src/mame/drivers/tomcat.c
@@ -454,4 +454,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)", GAME_SUPPORTS_SAVE )
+GAME( 1985, tomcat, 0, tomcat, tomcat, driver_device, 0, ROT0, "Atari", "TomCat (prototype)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/tonton.c b/src/mame/drivers/tonton.c
index 204d1bec059..0cf6f675911 100644
--- a/src/mame/drivers/tonton.c
+++ b/src/mame/drivers/tonton.c
@@ -35,8 +35,10 @@ class tonton_state : public driver_device
public:
tonton_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
- m_v9938(*this, "v9938") ,
- m_maincpu(*this, "maincpu") { }
+ m_v9938(*this, "v9938"),
+ m_maincpu(*this, "maincpu"),
+ m_hopper(*this, "hopper")
+ { }
required_device<v9938_device> m_v9938;
DECLARE_WRITE8_MEMBER(tonton_outport_w);
@@ -44,9 +46,9 @@ public:
DECLARE_WRITE8_MEMBER(ay_bout_w);
virtual void machine_start();
virtual void machine_reset();
- TIMER_DEVICE_CALLBACK_MEMBER(tonton_interrupt);
DECLARE_WRITE_LINE_MEMBER(tonton_vdp0_interrupt);
required_device<cpu_device> m_maincpu;
+ required_device<ticket_dispenser_device> m_hopper;
};
#define MAIN_CLOCK XTAL_21_4772MHz
@@ -57,15 +59,6 @@ public:
#define VDP_MEM 0x30000
-/* from MSX2 driver, may be not accurate for this HW */
-#define MSX2_XBORDER_PIXELS 16
-#define MSX2_YBORDER_PIXELS 28
-#define MSX2_TOTAL_XRES_PIXELS 256 * 2 + (MSX2_XBORDER_PIXELS * 2)
-#define MSX2_TOTAL_YRES_PIXELS 212 * 2 + (MSX2_YBORDER_PIXELS * 2)
-#define MSX2_VISIBLE_XBORDER_PIXELS 8 * 2
-#define MSX2_VISIBLE_YBORDER_PIXELS 14 * 2
-
-
/*************************************************
* Video Hardware *
*************************************************/
@@ -84,7 +77,7 @@ WRITE8_MEMBER(tonton_state::tonton_outport_w)
{
coin_counter_w(machine(), offset, data & 0x01);
coin_lockout_global_w(machine(), data & 0x02); /* Coin Lock */
- machine().device<ticket_dispenser_device>("hopper")->write(space, 0, (data & 0x02)); /* Hopper Motor */
+ m_hopper->write(space, 0, (data & 0x02)); /* Hopper Motor */
// if(data & 0xfe)
// logerror("%02x %02x\n",data,offset);
@@ -213,12 +206,6 @@ void tonton_state::machine_reset()
* R/W Handlers and Interrupt Routines *
*************************************************/
-TIMER_DEVICE_CALLBACK_MEMBER(tonton_state::tonton_interrupt)
-{
- m_v9938->interrupt();
-}
-
-
WRITE8_MEMBER(tonton_state::ay_aout_w)
{
logerror("AY8910: Port A out: %02X\n", data);
@@ -239,24 +226,14 @@ static MACHINE_CONFIG_START( tonton, tonton_state )
MCFG_CPU_ADD("maincpu",Z80, CPU_CLOCK) /* Guess. According to other MSX2 based gambling games */
MCFG_CPU_PROGRAM_MAP(tonton_map)
MCFG_CPU_IO_MAP(tonton_io)
- MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", tonton_state, tonton_interrupt, "screen", 0, 1)
MCFG_NVRAM_ADD_0FILL("nvram")
/* video hardware */
- MCFG_V9938_ADD("v9938", "screen", VDP_MEM)
+ MCFG_V9938_ADD("v9938", "screen", VDP_MEM, MAIN_CLOCK)
MCFG_V99X8_INTERRUPT_CALLBACK(WRITELINE(tonton_state,tonton_vdp0_interrupt))
-
- MCFG_SCREEN_ADD("screen",RASTER)
- MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
- MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
-
- MCFG_SCREEN_SIZE(MSX2_TOTAL_XRES_PIXELS, MSX2_TOTAL_YRES_PIXELS)
- MCFG_SCREEN_VISIBLE_AREA(MSX2_XBORDER_PIXELS - MSX2_VISIBLE_XBORDER_PIXELS, MSX2_TOTAL_XRES_PIXELS - MSX2_XBORDER_PIXELS + MSX2_VISIBLE_XBORDER_PIXELS - 1, MSX2_YBORDER_PIXELS - MSX2_VISIBLE_YBORDER_PIXELS, MSX2_TOTAL_YRES_PIXELS - MSX2_YBORDER_PIXELS + MSX2_VISIBLE_YBORDER_PIXELS - 1)
- MCFG_SCREEN_UPDATE_DEVICE("v9938", v9938_device, screen_update)
- MCFG_SCREEN_PALETTE("v9938:palette")
+ MCFG_V99X8_SCREEN_ADD_NTSC("screen", "v9938", MAIN_CLOCK)
MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(HOPPER_PULSE), TICKET_MOTOR_ACTIVE_LOW, TICKET_STATUS_ACTIVE_LOW )
diff --git a/src/mame/drivers/toobin.c b/src/mame/drivers/toobin.c
index 6a4d671835a..90d36d79ccd 100644
--- a/src/mame/drivers/toobin.c
+++ b/src/mame/drivers/toobin.c
@@ -581,9 +581,9 @@ ROM_END
*
*************************************/
-GAME( 1988, toobin, 0, toobin, toobin, driver_device, 0, ROT270, "Atari Games", "Toobin' (rev 3)", GAME_SUPPORTS_SAVE )
-GAME( 1988, toobine, toobin, toobin, toobin, driver_device, 0, ROT270, "Atari Games", "Toobin' (Europe, rev 3)", GAME_SUPPORTS_SAVE )
-GAME( 1988, toobing, toobin, toobin, toobin, driver_device, 0, ROT270, "Atari Games", "Toobin' (German, rev 3)", GAME_SUPPORTS_SAVE )
-GAME( 1988, toobin2, toobin, toobin, toobin, driver_device, 0, ROT270, "Atari Games", "Toobin' (rev 2)", GAME_SUPPORTS_SAVE )
-GAME( 1988, toobin2e, toobin, toobin, toobin, driver_device, 0, ROT270, "Atari Games", "Toobin' (Europe, rev 2)", GAME_SUPPORTS_SAVE )
-GAME( 1988, toobin1, toobin, toobin, toobin, driver_device, 0, ROT270, "Atari Games", "Toobin' (rev 1)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/topspeed.c b/src/mame/drivers/topspeed.c
index f080a163f34..496ee6a2bb1 100644
--- a/src/mame/drivers/topspeed.c
+++ b/src/mame/drivers/topspeed.c
@@ -775,6 +775,6 @@ ROM_START( fullthrl )
ROM_END
-GAMEL( 1987, topspeed, 0, topspeed, topspeed, driver_device, 0, ROT0, "Taito Corporation Japan", "Top Speed (World)", GAME_SUPPORTS_SAVE, layout_topspeed )
-GAMEL( 1987, topspeedu,topspeed, topspeed, fullthrl, driver_device, 0, ROT0, "Taito America Corporation (Romstar license)", "Top Speed (US)", GAME_SUPPORTS_SAVE, layout_topspeed )
-GAMEL( 1987, fullthrl, topspeed, topspeed, fullthrl, driver_device, 0, ROT0, "Taito Corporation", "Full Throttle (Japan)", GAME_SUPPORTS_SAVE, layout_topspeed )
+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 )
diff --git a/src/mame/drivers/toratora.c b/src/mame/drivers/toratora.c
index bf137ea0e21..8ecccd9086e 100644
--- a/src/mame/drivers/toratora.c
+++ b/src/mame/drivers/toratora.c
@@ -439,6 +439,44 @@ ROM_START( toratora )
ROM_LOAD( "tora.u11", 0xf800, 0x0800, CRC(55135d6f) SHA1(c48f180a9d6e894aafe87b2daf74e9a082f4600e) )
ROM_END
+/* Tora Tora? Game Plan?
+Etched in copper on top of board 20-00047C
+ 20-10051A
+
+Etched in copper on back of daughter board 20-00048C
+ 20-10052A
+
+ROM text showed TORA TOR* * was A with bit 7 set
+ 1980 GAME PLAN,INC
+
+and war stuff (PLANE, BOMB, SQUAD, etc)
+
+.u2 2716 handwritten sticker U-2
+.u9 2716 handwritten sticker U-9
+.u10 2716 handwritten sticker U-10
+.u11 2716 handwritten sticker U-11
+
+open 24 pin socket @ U1 and U3
+open 40 pin socket @ U42
+
+Main board
+crystal with 5 185 on the top
+5280 x8
+socketed ds8833 x2
+socketed ds8t28 x2
+
+Daughter board
+open 40 pin socket @ U3 @ U2
+76477 X2 */
+
+ROM_START( toratorab )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "1027.u1", 0x1000, 0x0800, BAD_DUMP CRC(413c743a) SHA1(a887dfaaee557327a1699bb424488b934dab8612) ) /* rom u1 is missing in this set, using the toratora one */
+ ROM_LOAD( "1027.u10", 0x1800, 0x0800, CRC(6a906292) SHA1(4ceff91b7dcd398e57cd19a91d2199c09cb37c39) )
+ ROM_LOAD( "1027.u2", 0x2000, 0x0800, CRC(c1331648) SHA1(379101c6c1b8dab3e043ece01579cc96f6bb18a9) )
+ ROM_LOAD( "1027.u9", 0x2800, 0x0800, CRC(59b021b5) SHA1(ea5a0c1f58c0e08231969ad161b79af6e1ae4431) )
+ ROM_LOAD( "1027.u11", 0xf800, 0x0800, CRC(336f6659) SHA1(ea1151db54b68316908874da6983d6de5c94c29e) )
+ROM_END
/*************************************
@@ -447,4 +485,5 @@ ROM_END
*
*************************************/
-GAME( 1980, toratora, 0, toratora, toratora, driver_device, 0, ROT90, "Game Plan", "Tora Tora (prototype?)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1980, toratora, 0, toratora, toratora, driver_device, 0, ROT90, "Game Plan", "Tora Tora (prototype?)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1980, toratorab,toratora, toratora, toratora, driver_device, 0, ROT90, "Game Plan", "Tora Tora (prototype?, set 2)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/tourtabl.c b/src/mame/drivers/tourtabl.c
index a89d312c37f..a1d79b07e6f 100644
--- a/src/mame/drivers/tourtabl.c
+++ b/src/mame/drivers/tourtabl.c
@@ -204,5 +204,5 @@ ROM_START( tourtab2 )
ROM_END
-GAME( 1978, tourtabl, 0, tourtabl, tourtabl, driver_device, 0, ROT0, "Atari", "Tournament Table (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1978, tourtab2, tourtabl, tourtabl, tourtabl, driver_device, 0, ROT0, "Atari", "Tournament Table (set 2)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/tourvis.c b/src/mame/drivers/tourvis.c
index a756d4f71dc..c173c002b7e 100644
--- a/src/mame/drivers/tourvis.c
+++ b/src/mame/drivers/tourvis.c
@@ -16,38 +16,67 @@
Known games:
+ 1943
Aero Blaster (label shows "Vol. 33") [dumped]
After Burner
- Bonk
+ Ankoku Densetu
+ Ballistix
+ Bomberman (label shows "Vol. 34")
Columns [dumped]
Cyber Core
+ Daisempuu
Dead Moon
+ Die Hard
+ Dodge Ball
Doraemon Meikyuu Daisakusen
+ Doramon II
Down Load
+ Dragon Spirit
Dungeon Explorer [dumped]
+ Final Blaster
Final Lap Twin [dumped]
Final Match Tennis
Formation Soccer [dumped]
Gomola Speed [dumped]
Jackie Chan [dumped]
+ Jinmu Densho
+ Kiki Kaikai
+ Legend Of Hero Tomna
Legendary Axe [dumped]
+ Liquid Kids
Mr. Heli
Out Run
+ Pac-Land
+ PC Denjin Punkic Cyborg
+ PC Genjin
PC Genjin 2 [dumped]
Power Eleven [dumped]
+ Power Golf
Power League IV [dumped]
Power Sports
+ Psycho Chaser
Puzzle Boy
Rastan Saga II [dumped]
Saigo no Nindou
+ Salamander
+ Shinobi
+ Side Arms
+ Skweek
Son Son II
Special Criminal Investigation [dumped]
Super Star Soldier (label shows "Vol. 30") [dumped]
Super Volley ball [dumped]
+ Tatsujin
+ Terra Cresta II
Thunder Blade [dumped]
+ Toy Shop Boys
+ Tricky
USA Pro Basketball [dumped]
+ Veigues
Vigilante
Volfied [dumped]
+ W-Ring
+ Xevious
_______________________________________________________________________________________________________________________________________________
| |
@@ -611,22 +640,22 @@ ROM_START(tvvolfd)
ROM_END
-GAME( 19??, tourvis, 0, tourvision, tourvision, pce_common_state, pce_common, ROT0, "bootleg (Tourvision)", "Tourvision PCE bootleg", GAME_IS_BIOS_ROOT | GAME_NOT_WORKING )
-GAME( 1988, tvlegaxe, tourvis, tourvision, tourvision, pce_common_state, pce_common, ROT0, "bootleg (Tourvision) / Victor Musical Industries, Inc.", "Makyo Densetsu - The Legenary Axe (Tourvision PCE bootleg)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
-GAME( 1989, tvflaptw, tourvis, tourvision, tourvision, pce_common_state, pce_common, ROT0, "bootleg (Tourvision) / Namco", "Final Lap Twin (Tourvision PCE bootleg)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
-GAME( 1989, tvusapb, tourvis, tourvision, tourvision, pce_common_state, pce_common, ROT0, "bootleg (Tourvision) / Aicom", "USA Pro Basketball (Tourvision PCE bootleg)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
-GAME( 1989, tvvolfd, tourvis, tourvision, tourvision, pce_common_state, pce_common, ROT0, "bootleg (Tourvision) / Taito", "Volfied (Tourvision PCE bootleg)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
-GAME( 1989, tvdunexp, tourvis, tourvision, tourvision, pce_common_state, pce_common, ROT0, "bootleg (Tourvision) / Hudson / Atlus", "Dungeon Explorer (Tourvision PCE bootleg)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
-GAME( 1990, tvablast, tourvis, tourvision, tourvision, pce_common_state, pce_common, ROT0, "bootleg (Tourvision) / Hudson / Kaneko", "Aero Blasters (Tourvision PCE bootleg)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
-GAME( 1990, tvfsoc90, tourvis, tourvision, tourvision, pce_common_state, pce_common, ROT0, "bootleg (Tourvision) / Human", "Formation Soccer - Human Cup '90 (Tourvision PCE bootleg)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
-GAME( 1990, tvgomola, tourvis, tourvision, tourvision, pce_common_state, pce_common, ROT0, "bootleg (Tourvision) / Human", "Gomola Speed (Tourvision PCE bootleg)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
-GAME( 1990, tvsssold, tourvis, tourvision, tourvision, pce_common_state, pce_common, ROT0, "bootleg (Tourvision) / Hudson / Kaneko", "Super Star Soldier (Tourvision PCE bootleg)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
-GAME( 1990, tvthbld, tourvis, tourvision, tourvision, pce_common_state, pce_common, ROT0, "bootleg (Tourvision) / Sega / NEC Avenue", "Thunder Blade (Tourvision PCE bootleg)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
-GAME( 1990, tvrs2, tourvis, tourvision, tourvision, pce_common_state, pce_common, ROT0, "bootleg (Tourvision) / Taito", "Rastan Saga II (Tourvision PCE bootleg)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
-GAME( 1990, tvsvball, tourvis, tourvision, tourvision, pce_common_state, pce_common, ROT0, "bootleg (Tourvision) / Video System", "Super Volley ball (Tourvision PCE bootleg)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
-GAME( 1991, tvcolumn, tourvis, tourvision, tourvision, pce_common_state, pce_common, ROT0, "bootleg (Tourvision) / Telenet Japan", "Columns (Tourvision PCE bootleg)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
-GAME( 1991, tvjchan, tourvis, tourvision, tourvision, pce_common_state, pce_common, ROT0, "bootleg (Tourvision) / Hudson", "Jackie Chan (Tourvision PCE bootleg)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
-GAME( 1991, tvpcgen2, tourvis, tourvision, tourvision, pce_common_state, pce_common, ROT0, "bootleg (Tourvision) / Hudson", "PC Genjin 2 - Pithecanthropus Computerurus (Tourvision PCE bootleg)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
-GAME( 1991, tvpow11, tourvis, tourvision, tourvision, pce_common_state, pce_common, ROT0, "bootleg (Tourvision) / Hudson", "Power Eleven (Tourvision PCE bootleg)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
-GAME( 1991, tvpwlg4, tourvis, tourvision, tourvision, pce_common_state, pce_common, ROT0, "bootleg (Tourvision) / Hudson", "Power League IV (Tourvision PCE bootleg)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
-GAME( 1991, tvsci, tourvis, tourvision, tourvision, pce_common_state, pce_common, ROT0, "bootleg (Tourvision) / Taito", "Special Criminal Investigation (Tourvision PCE bootleg)", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
+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( 1988, tvlegaxe, tourvis, tourvision, tourvision, pce_common_state, pce_common, ROT0, "bootleg (Tourvision) / Victor Musical Industries, Inc.", "Makyo Densetsu - The Legenary Axe (Tourvision PCE bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
+GAME( 1989, tvflaptw, tourvis, tourvision, tourvision, pce_common_state, pce_common, ROT0, "bootleg (Tourvision) / Namco", "Final Lap Twin (Tourvision PCE bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
+GAME( 1989, tvusapb, tourvis, tourvision, tourvision, pce_common_state, pce_common, ROT0, "bootleg (Tourvision) / Aicom", "USA Pro Basketball (Tourvision PCE bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
+GAME( 1989, tvvolfd, tourvis, tourvision, tourvision, pce_common_state, pce_common, ROT0, "bootleg (Tourvision) / Taito", "Volfied (Tourvision PCE bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
+GAME( 1989, tvdunexp, tourvis, tourvision, tourvision, pce_common_state, pce_common, ROT0, "bootleg (Tourvision) / Hudson / Atlus", "Dungeon Explorer (Tourvision PCE bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
+GAME( 1990, tvablast, tourvis, tourvision, tourvision, pce_common_state, pce_common, ROT0, "bootleg (Tourvision) / Hudson / Kaneko", "Aero Blasters (Tourvision PCE bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
+GAME( 1990, tvfsoc90, tourvis, tourvision, tourvision, pce_common_state, pce_common, ROT0, "bootleg (Tourvision) / Human", "Formation Soccer - Human Cup '90 (Tourvision PCE bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
+GAME( 1990, tvgomola, tourvis, tourvision, tourvision, pce_common_state, pce_common, ROT0, "bootleg (Tourvision) / Human", "Gomola Speed (Tourvision PCE bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
+GAME( 1990, tvsssold, tourvis, tourvision, tourvision, pce_common_state, pce_common, ROT0, "bootleg (Tourvision) / Hudson / Kaneko", "Super Star Soldier (Tourvision PCE bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
+GAME( 1990, tvthbld, tourvis, tourvision, tourvision, pce_common_state, pce_common, ROT0, "bootleg (Tourvision) / Sega / NEC Avenue", "Thunder Blade (Tourvision PCE bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
+GAME( 1990, tvrs2, tourvis, tourvision, tourvision, pce_common_state, pce_common, ROT0, "bootleg (Tourvision) / Taito", "Rastan Saga II (Tourvision PCE bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
+GAME( 1990, tvsvball, tourvis, tourvision, tourvision, pce_common_state, pce_common, ROT0, "bootleg (Tourvision) / Video System", "Super Volley ball (Tourvision PCE bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
+GAME( 1991, tvcolumn, tourvis, tourvision, tourvision, pce_common_state, pce_common, ROT0, "bootleg (Tourvision) / Telenet Japan", "Columns (Tourvision PCE bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
+GAME( 1991, tvjchan, tourvis, tourvision, tourvision, pce_common_state, pce_common, ROT0, "bootleg (Tourvision) / Hudson", "Jackie Chan (Tourvision PCE bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
+GAME( 1991, tvpcgen2, tourvis, tourvision, tourvision, pce_common_state, pce_common, ROT0, "bootleg (Tourvision) / Hudson", "PC Genjin 2 - Pithecanthropus Computerurus (Tourvision PCE bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
+GAME( 1991, tvpow11, tourvis, tourvision, tourvision, pce_common_state, pce_common, ROT0, "bootleg (Tourvision) / Hudson", "Power Eleven (Tourvision PCE bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
+GAME( 1991, tvpwlg4, tourvis, tourvision, tourvision, pce_common_state, pce_common, ROT0, "bootleg (Tourvision) / Hudson", "Power League IV (Tourvision PCE bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
+GAME( 1991, tvsci, tourvis, tourvision, tourvision, pce_common_state, pce_common, ROT0, "bootleg (Tourvision) / Taito", "Special Criminal Investigation (Tourvision PCE bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/tp84.c b/src/mame/drivers/tp84.c
index 237cdd5bfa6..2deb09d485e 100644
--- a/src/mame/drivers/tp84.c
+++ b/src/mame/drivers/tp84.c
@@ -438,6 +438,6 @@ ROM_START( tp84b )
ROM_END
-GAME( 1984, tp84, 0, tp84, tp84, driver_device, 0, ROT90, "Konami", "Time Pilot '84 (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1984, tp84a, tp84, tp84, tp84a, driver_device,0, ROT90, "Konami", "Time Pilot '84 (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1984, tp84b, tp84, tp84b, tp84, driver_device, 0, ROT90, "Konami", "Time Pilot '84 (set 3)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/trackfld.c b/src/mame/drivers/trackfld.c
index 2aa78acb812..1fa7fef0ab3 100644
--- a/src/mame/drivers/trackfld.c
+++ b/src/mame/drivers/trackfld.c
@@ -1168,9 +1168,62 @@ ROM_START( hyprolym ) /* GX361 */
ROM_LOAD( "c9_d15.bin", 0x0000, 0x2000, CRC(f546a56b) SHA1(caee3d8546eb7a75ce2a578c6a1a630246aec6b8) ) /* 361-d15.c09 */
ROM_END
+// main program code on this set is IDENTICAL to the original hyprolym
+// audio hardware is changed significantly
ROM_START( hyprolymb )
/* These ROM's are located on the CPU/Video Board */
ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code + 64k for decrypted opcodes */
+ ROM_LOAD( "blue.a1", 0x6000, 0x2000, CRC(82257fb7) SHA1(4a5038292e582d5c3b5f2d82b01c57ccb24f3095) )
+ ROM_LOAD( "2.a2", 0x8000, 0x2000, CRC(15b83099) SHA1(79827590d74f20c9a95723e06b05af2b15c34f5f) )
+ ROM_LOAD( "3.a4", 0xa000, 0x2000, CRC(2d6fc308) SHA1(1ff95384670e40d560703f2238998a8e154aa4cf) )
+ ROM_LOAD( "4.a5", 0xc000, 0x2000, CRC(d099b1e8) SHA1(0472991ad6caef41ec6b8ec8bf3d9d07584a57cc) )
+ ROM_LOAD( "5.a7", 0xe000, 0x2000, CRC(974ff815) SHA1(11512df2008a79ba44bbb84bd70885f187113211) )
+
+ /* These ROM's are located on the Sound Board */
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "c2_d13.bin", 0x0000, 0x2000, CRC(95bf79b6) SHA1(ea9135acd7ad162c19c5cdde356e69792d61b675) )
+
+ /* These ROM's are located on the Sound Board */
+ ROM_REGION( 0x10000, "adpcm", 0 ) /* 64k for the 6802 which plays ADPCM samples */
+ ROM_LOAD( "2764.1", 0x8000, 0x2000, CRC(a4cddeb8) SHA1(057981ad3b04239662bb19342e9ec14b0dab2351) )
+ ROM_LOAD( "2764.2", 0xa000, 0x2000, CRC(e9919365) SHA1(bd11d6e3ee2c6e698159c2768e315389d666107f) )
+ ROM_LOAD( "2764.3", 0xc000, 0x2000, CRC(c3ec42e1) SHA1(048a95726c4f031552e629c3788952c1bc5e7251) )
+ ROM_LOAD( "2764.4", 0xe000, 0x2000, CRC(76998389) SHA1(499189b0e20296af88712199b93b958655083608) )
+
+ /* These ROM's are located on the CPU/Video Board */
+ ROM_REGION( 0x8000, "gfx1", 0 )
+ ROM_LOAD( "6.a18", 0x0000, 0x2000, CRC(82e2185a) SHA1(1da9ea20e7af0b49c62fb39834a7ec686491af04) )
+ ROM_LOAD( "7.a19", 0x2000, 0x2000, CRC(800ff1f1) SHA1(33d73b18903e3e6bfb30f1a06db4b8105d4040d8) )
+ ROM_LOAD( "8.a21", 0x4000, 0x2000, CRC(d9faf183) SHA1(4448b6242790783d37acf50704d597af5878c2ab) )
+ ROM_LOAD( "9.a22", 0x6000, 0x2000, CRC(5886c802) SHA1(884a12a8f63600da4f23b29be6dbaacef37add20) )
+
+ /* These ROM's are located on the CPU/Video Board */
+ ROM_REGION( 0x6000, "gfx2", 0 )
+ ROM_LOAD( "12.h22", 0x0000, 0x2000, CRC(768bb63d) SHA1(effc46615c389245e5a4aac18292e1d764ff0e46) )
+ ROM_LOAD( "11.h21", 0x2000, 0x2000, CRC(3af0e2a8) SHA1(450f35fd7e45ecc88ee80bf57499b2e9f06f6487) )
+ ROM_LOAD( "10.h19", 0x4000, 0x2000, CRC(c2166a5c) SHA1(5ba25900e653ce4edcf35f1fbce758a327a715ce) )
+
+ /* These PROM's are located on the CPU/Video Board */
+ ROM_REGION( 0x0220, "proms", 0 )
+ ROM_LOAD( "361b16.e1", 0x0000, 0x0020, CRC(d55f30b5) SHA1(4d6a851f4886778307f75771645078b97ad55f5f) ) /* palette */
+ ROM_LOAD( "361b17.b15", 0x0020, 0x0100, CRC(d2ba4d32) SHA1(894b5cedf01ba9225a0d6215291857e455b84903) ) /* sprite lookup table */
+ ROM_LOAD( "361b18.f22", 0x0120, 0x0100, CRC(053e5861) SHA1(6740a62cf7b6938a4f936a2fed429704612060a5) ) /* char lookup table */
+
+ /* These PAL's are located on the CPU/Video Board */
+ ROM_REGION( 0x0400, "plds", 0 )
+ ROM_LOAD( "pal16l8.e4", 0x0000, 0x0104, CRC(641efc84) SHA1(d031b033d23d50a5f708f630945602e61d52d1e4) )
+ ROM_LOAD( "pal16l8.e6", 0x0200, 0x0104, CRC(122f23e6) SHA1(d178510843a46f043ecafaa44d95bb590ad67fb0) )
+ROM_END
+
+/*
+this set (which has been supported for longer than the above) has
+67F8: $F8 instead of $E8
+6D19: $F4 instead of $E4
+which differs from all other sets, is it an intentional change or a bad dump? (I can't find any reports of issues with this set)
+*/
+ROM_START( hyprolymba )
+ /* These ROM's are located on the CPU/Video Board */
+ ROM_REGION( 0x10000, "maincpu", 0 ) /* 64k for code + 64k for decrypted opcodes */
ROM_LOAD( "1.a1", 0x6000, 0x2000, CRC(9aee2d5a) SHA1(81f151459f1113b5f2f76ddc140bf86676f778e4) )
ROM_LOAD( "2.a2", 0x8000, 0x2000, CRC(15b83099) SHA1(79827590d74f20c9a95723e06b05af2b15c34f5f) )
ROM_LOAD( "3.a4", 0xa000, 0x2000, CRC(2d6fc308) SHA1(1ff95384670e40d560703f2238998a8e154aa4cf) )
@@ -1208,9 +1261,9 @@ ROM_START( hyprolymb )
ROM_LOAD( "361b18.f22", 0x0120, 0x0100, CRC(053e5861) SHA1(6740a62cf7b6938a4f936a2fed429704612060a5) ) /* char lookup table */
/* These PAL's are located on the CPU/Video Board */
- ROM_REGION( 0x0002, "plds", 0 )
- ROM_LOAD( "pal16l8.bin", 0x0000, 0x0001, NO_DUMP ) /* Located at 4E. */
- ROM_LOAD( "pal16l8.bin", 0x0000, 0x0001, NO_DUMP ) /* Located at 6E. */
+ ROM_REGION( 0x0400, "plds", 0 )
+ ROM_LOAD( "pal16l8.e4", 0x0000, 0x0104, CRC(641efc84) SHA1(d031b033d23d50a5f708f630945602e61d52d1e4) )
+ ROM_LOAD( "pal16l8.e6", 0x0200, 0x0104, CRC(122f23e6) SHA1(d178510843a46f043ecafaa44d95bb590ad67fb0) )
ROM_END
ROM_START( atlantol )
@@ -1426,6 +1479,16 @@ DRIVER_INIT_MEMBER(trackfld_state,trackfld)
{
}
+DRIVER_INIT_MEMBER(trackfld_state, trackfldnz)
+{
+ UINT8 *ROM = memregion("maincpu")->base();
+ int i;
+
+ /* decrypt program rom */
+ for (i = 0x6000; i < 0x10000; i++)
+ ROM[i] = BITSWAP8(ROM[i], 6, 7, 5, 4, 3, 2, 1, 0);
+}
+
DRIVER_INIT_MEMBER(trackfld_state,atlantol)
{
address_space &space = m_maincpu->space(AS_PROGRAM);
@@ -1488,14 +1551,19 @@ DRIVER_INIT_MEMBER(trackfld_state,wizzquiz)
}
-GAME( 1983, trackfld, 0, trackfld, trackfld, trackfld_state, trackfld, ROT0, "Konami", "Track & Field", GAME_SUPPORTS_SAVE )
-GAME( 1983, trackfldc, trackfld, trackfld, trackfld, trackfld_state, trackfld, ROT0, "Konami (Centuri license)", "Track & Field (Centuri)", GAME_SUPPORTS_SAVE )
-GAME( 1983, hyprolym, trackfld, trackfld, trackfld, trackfld_state, trackfld, ROT0, "Konami", "Hyper Olympic", GAME_SUPPORTS_SAVE )
-GAME( 1983, hyprolymb, trackfld, hyprolyb, trackfld, trackfld_state, trackfld, ROT0, "bootleg", "Hyper Olympic (bootleg)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1996, atlantol, trackfld, atlantol, atlantol, trackfld_state, atlantol, ROT0, "bootleg", "Atlant Olimpic", GAME_SUPPORTS_SAVE )
-GAME( 1982, trackfldnz,trackfld, trackfld, trackfld, trackfld_state, trackfld, ROT0, "bootleg? (Goldberg Enterprizes Inc.)", "Track & Field (NZ bootleg?)", GAME_NOT_WORKING)
-GAME( 1988, mastkin, 0, mastkin, mastkin, trackfld_state, mastkin, ROT0, "Du Tech", "The Masters of Kin", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
-GAME( 1985, wizzquiz, 0, wizzquiz, wizzquiz, trackfld_state, wizzquiz, ROT0, "Zilec-Zenitone (Konami license)", "Wizz Quiz (Konami version)", GAME_SUPPORTS_SAVE )
-GAME( 1985, wizzquiza, wizzquiz, wizzquiz, wizzquiz, trackfld_state, wizzquiz, ROT0, "Zilec-Zenitone", "Wizz Quiz (version 4)", GAME_SUPPORTS_SAVE )
-GAME( 1987, reaktor, 0, reaktor, reaktor, driver_device, 0, ROT90, "Zilec", "Reaktor (Track & Field conversion)", GAME_SUPPORTS_SAVE )
-GAME( 1985, yieartf, yiear, yieartf, yieartf, driver_device, 0, ROT0, "Konami", "Yie Ar Kung-Fu (GX361 conversion)", GAME_SUPPORTS_SAVE ) // the conversion looks of bootleg quality, but the code is clearly a very different revision to either original hardware set...
+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( 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( 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( 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/travrusa.c b/src/mame/drivers/travrusa.c
index e0a6d427eef..57886c62d35 100644
--- a/src/mame/drivers/travrusa.c
+++ b/src/mame/drivers/travrusa.c
@@ -326,7 +326,9 @@ static MACHINE_CONFIG_START( travrusa, travrusa_state )
MCFG_PALETTE_INIT_OWNER(travrusa_state, travrusa)
/* sound hardware */
- MCFG_FRAGMENT_ADD(m52_sound_c_audio)
+ //MCFG_FRAGMENT_ADD(m52_sound_c_audio)
+ MCFG_DEVICE_ADD("irem_audio", IREM_M52_SOUNDC_AUDIO, 0)
+
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( shtrider, travrusa )
@@ -357,7 +359,7 @@ ROM_START( travrusa )
ROM_LOAD( "zr1-6a.k3", 0x4000, 0x2000, CRC(e1b51383) SHA1(34f4476c1bcc28c53c8ffa7b614f443a329aae13) )
ROM_LOAD( "zr1-7.j3", 0x6000, 0x2000, CRC(85cd1a51) SHA1(7eb046514845cb9d2507ee24d1b2f7cc5402ac02) )
- ROM_REGION( 0x8000, "iremsound", 0 )
+ ROM_REGION( 0x8000, "irem_audio:iremsound", 0 )
ROM_LOAD( "mr10.1a", 0x7000, 0x1000, CRC(a02ad8a0) SHA1(aff80b506dbecabed2a36eb743693940f6a22d16) )
ROM_REGION( 0x06000, "gfx1", 0 )
@@ -384,7 +386,7 @@ ROM_START( travrusab )
ROM_LOAD( "at6.k3", 0x4000, 0x2000, CRC(baf87d80) SHA1(761d687ef3f3dde80a47f547d3c822704a2ac821) )
ROM_LOAD( "at7.h3", 0x6000, 0x2000, CRC(48091ebe) SHA1(6146af6f08053a5955d9b388d25bfbab7ad6b0e5) )
- ROM_REGION( 0x8000, "iremsound", 0 )
+ ROM_REGION( 0x8000, "irem_audio:iremsound", 0 )
ROM_LOAD( "11.a1", 0x7000, 0x1000, CRC(d2c0bc33) SHA1(3a52ae514daf985d297416301dac0ac6cbe671d7) )
ROM_REGION( 0x06000, "gfx1", 0 )
@@ -410,7 +412,7 @@ ROM_START( motorace )
ROM_LOAD( "mr2.3k", 0x4000, 0x2000, CRC(8a2374ec) SHA1(7159731f5ef2485e3c822e3e8e51e9583dd1c6bc) )
ROM_LOAD( "mr3.3j", 0x6000, 0x2000, CRC(2f04c341) SHA1(ae990d9d4abdd7d6ef9d21aa62125fe2e0067623) )
- ROM_REGION( 0x8000, "iremsound", 0 )
+ ROM_REGION( 0x8000, "irem_audio:iremsound", 0 )
ROM_LOAD( "mr10.1a", 0x7000, 0x1000, CRC(a02ad8a0) SHA1(aff80b506dbecabed2a36eb743693940f6a22d16) )
ROM_REGION( 0x06000, "gfx1", 0 )
@@ -470,7 +472,7 @@ ROM_START( mototour )
ROM_LOAD( "mt1-6.k3", 0x4000, 0x2000, CRC(efd325f2) SHA1(0862c0ec87f601b6c1cba2bd25e3186b6ad0c68e) )
ROM_LOAD( "mt1-7.j3", 0x6000, 0x2000, CRC(ab8a3a33) SHA1(e332b6e727083cf508ccec721ce42ccc3aa54e91) )
- ROM_REGION( 0x8000, "iremsound", 0 )
+ ROM_REGION( 0x8000, "irem_audio:iremsound", 0 )
ROM_LOAD( "snd.a1", 0x7000, 0x1000, CRC(a02ad8a0) SHA1(aff80b506dbecabed2a36eb743693940f6a22d16) ) // == mr10.1a
ROM_REGION( 0x06000, "gfx1", 0 )
@@ -498,7 +500,7 @@ ROM_START( shtrider )
ROM_LOAD( "sr03a.bin", 0x4000, 0x2000, CRC(3ade11b9) SHA1(70b9dbd510cf6192194acf6876856d4c19bdf279) )
ROM_LOAD( "sr04a.bin", 0x6000, 0x2000, CRC(02b96eaa) SHA1(ba4d61cf57142192684c45dd22720234d3521241) )
- ROM_REGION( 0x8000, "iremsound", 0 )
+ ROM_REGION( 0x8000, "irem_audio:iremsound", 0 )
ROM_LOAD( "sr11a.bin", 0x6000, 0x2000, CRC(a8396b76) SHA1(614151fb1d25930e9fee4ab290a63f8fe97adbe6) )
ROM_REGION( 0x06000, "gfx1", 0 )
@@ -525,7 +527,7 @@ ROM_START( shtridera )
ROM_LOAD( "3.bin", 0x4000, 0x2000, CRC(78d051cd) SHA1(e1dc2dcfc4af35bdd5245d23977e8640d81a43f1) )
ROM_LOAD( "4.bin", 0x6000, 0x2000, CRC(02b96eaa) SHA1(ba4d61cf57142192684c45dd22720234d3521241) )
- ROM_REGION( 0x8000, "iremsound", 0 )
+ ROM_REGION( 0x8000, "irem_audio:iremsound", 0 )
ROM_LOAD( "11.bin", 0x6000, 0x2000, CRC(a8396b76) SHA1(614151fb1d25930e9fee4ab290a63f8fe97adbe6) )
ROM_REGION( 0x06000, "gfx1", 0 )
@@ -552,7 +554,7 @@ ROM_START( shtriderb )
ROM_LOAD( "sr3.22.k3", 0x4000, 0x2000, CRC(44cab4cc) SHA1(9e87d88353c858c25fb4ff9528c3f369505ffd88) )
ROM_LOAD( "sr4.23.h3", 0x6000, 0x2000, CRC(02b96eaa) SHA1(ba4d61cf57142192684c45dd22720234d3521241) )
- ROM_REGION( 0x8000, "iremsound", 0 )
+ ROM_REGION( 0x8000, "irem_audio:iremsound", 0 )
ROM_LOAD( "sr11.7.a1", 0x6000, 0x2000, CRC(a8396b76) SHA1(614151fb1d25930e9fee4ab290a63f8fe97adbe6) )
ROM_REGION( 0x06000, "gfx1", 0 )
@@ -611,11 +613,11 @@ DRIVER_INIT_MEMBER(travrusa_state, shtridrb)
}
-GAME( 1983, travrusa, 0, travrusa, travrusa, driver_device, 0, ROT270, "Irem", "Traverse USA / Zippy Race", GAME_SUPPORTS_SAVE )
-GAME( 1983, travrusab,travrusa, travrusa, travrusa, driver_device, 0, ROT270, "bootleg (I.P.)", "Traverse USA (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1983, mototour, travrusa, travrusa, travrusa, driver_device, 0, ROT270, "Irem (Tecfri license)", "MotoTour / Zippy Race (Tecfri license)", GAME_SUPPORTS_SAVE )
-GAME( 1983, motorace, travrusa, travrusa, motorace, travrusa_state, motorace, ROT270, "Irem (Williams license)", "MotoRace USA", GAME_SUPPORTS_SAVE )
+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( 1985, shtrider, 0, shtrider, shtrider, driver_device, 0, ROT270|ORIENTATION_FLIP_X, "Seibu Kaihatsu", "Shot Rider", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1985, shtriderb,shtrider, shtriderb,shtrider, travrusa_state, shtridrb, ROT270|ORIENTATION_FLIP_X, "bootleg", "Shot Rider (bootleg)", GAME_SUPPORTS_SAVE ) // resets when you attempt to start a game?
+GAME( 1985, shtrider, 0, shtrider, shtrider, driver_device, 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/mess/drivers/tricep.c b/src/mame/drivers/tricep.c
index 09ea8f08847..728f8496177 100644
--- a/src/mess/drivers/tricep.c
+++ b/src/mame/drivers/tricep.c
@@ -91,4 +91,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1985, tricep, 0, 0, tricep, tricep, driver_device, 0, "Morrow Designs", "Tricep", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/triforce.c b/src/mame/drivers/triforce.c
index a6743767dad..4000e53268e 100644
--- a/src/mame/drivers/triforce.c
+++ b/src/mame/drivers/triforce.c
@@ -1020,73 +1020,73 @@ ROM_START( mkartag2a )
ROM_END
/* Main board */
-/*Triforce*/GAME( 2002, triforce, 0, triforcegd, triforce, driver_device, 0, ROT0, "Sega", "Triforce Bios", GAME_IS_SKELETON|GAME_IS_BIOS_ROOT )
+/*Triforce*/GAME( 2002, triforce, 0, triforcegd, triforce, driver_device, 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)", GAME_IS_SKELETON )
-/* 0002 */ GAME( 2002, vs2002ex, triforce, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Amusement Vision", "Virtua Striker 2002 (GDT-0002)", GAME_IS_SKELETON )
+/* 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 )
// 0003
-// 0004 GAME( 2003, fzeroaxo, fzeroax, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Amusement Vision / Nintendo", "F-Zero AX (GDT-0004)", GAME_IS_SKELETON )
-// 0004A GAME( 2003, fzeroaxa, fzeroax, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Amusement Vision / Nintendo", "F-Zero AX (Rev A) (GDT-0004A)", GAME_IS_SKELETON )
-// 0004B GAME( 2003, fzeroaxb, fzeroax, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Amusement Vision / Nintendo", "F-Zero AX (Rev B) (GDT-0004B)", GAME_IS_SKELETON )
-/* 0004C */ GAME( 2003, fzeroaxc, fzeroax, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Amusement Vision / Nintendo", "F-Zero AX (Rev C) (GDT-0004C)", GAME_IS_SKELETON )
-// 0004D GAME( 2003, fzeroaxd, fzeroax, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Amusement Vision / Nintendo", "F-Zero AX (Rev D) (GDT-0004D)", GAME_IS_SKELETON )
-/* 0004E */ GAME( 2003, fzeroax, triforce, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Amusement Vision / Nintendo", "F-Zero AX (Rev E) (GDT-0004E)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_IS_SKELETON )
-// 0006 GAME( 2003, avalonco, triforce, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon - The Wizard Master (client) (GDT-0006)", GAME_IS_SKELETON )
-// 0006A GAME( 2003, avalonca, triforce, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon - The Wizard Master (client) (Rev A) (GDT-0006A)", GAME_IS_SKELETON )
-// 0006B GAME( 2003, avaloncb, triforce, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon - The Wizard Master (client) (Rev B) (GDT-0006B)", GAME_IS_SKELETON )
-// 0006C GAME( 2003, avaloncc, triforce, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon - The Wizard Master (client) (Rev C) (GDT-0006C)", GAME_IS_SKELETON )
-// 0006D GAME( 2003, avaloncd, triforce, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon - The Wizard Master (client) (Rev D) (GDT-0006D)", GAME_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)", GAME_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)", GAME_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)", GAME_IS_SKELETON )
+// 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, triforce, 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, triforce, 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, triforce, 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, triforce, 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, triforce, 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 )
// 0007
-// 0008 GAME( 2003, gekpuryo, gekpurya, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Wow Entertainment", "Gekitou Pro Yakyuu Mizushima Shinji All Stars vs. Pro Yakyuu (GDT-0008)", GAME_IS_SKELETON )
-// 0008A GAME( 2003, gekpurya, gekpurya, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Wow Entertainment", "Gekitou Pro Yakyuu Mizushima Shinji All Stars vs. Pro Yakyuu (Rev A) (GDT-0008A)", GAME_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)", GAME_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)", GAME_IS_SKELETON )
-// 0009 GAME( 2004, avalns11, avalns13, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 1.? - ??? (server) (GDT-0009)", GAME_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)", GAME_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)", GAME_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)", GAME_IS_SKELETON )
-// 0010 GAME( 2004, avalnc11, avalnc13, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 1.? - ??? (client) (GDT-0010)", GAME_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)", GAME_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)", GAME_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)", GAME_IS_SKELETON )
-/* 0011 */ GAME( 2004, tfupdate, triforce, triforcegd, triforce, driver_device, 0, ROT0, "Sega", "Triforce DIMM Updater (GDT-0011)", GAME_IS_SKELETON )
+// 0008 GAME( 2003, gekpuryo, 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, gekpurya, 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 (GDT-0011)", MACHINE_IS_SKELETON )
// 0012
-// 0013 GAME( 2005, vs4jo, vs4j, triforcegd, triforce, driver_device, 0, ROT0, "Sega", "Virtua Striker 4 (Japan) (GDT-0013)", GAME_IS_SKELETON )
-// 0013A GAME( 2005, vs4ja, vs4j, triforcegd, triforce, driver_device, 0, ROT0, "Sega", "Virtua Striker 4 (Japan) (Rev A) (GDT-0013A)", GAME_IS_SKELETON )
-// 0013B GAME( 2005, vs4jb, vs4j, triforcegd, triforce, driver_device, 0, ROT0, "Sega", "Virtua Striker 4 (Japan) (Rev B) (GDT-0013B)", GAME_IS_SKELETON )
-// 0013C GAME( 2005, vs4jc, vs4j, triforcegd, triforce, driver_device, 0, ROT0, "Sega", "Virtua Striker 4 (Japan) (Rev C) (GDT-0013C)", GAME_IS_SKELETON )
-// 0013D GAME( 2005, vs4jd, vs4j, triforcegd, triforce, driver_device, 0, ROT0, "Sega", "Virtua Striker 4 (Japan) (Rev D) (GDT-0013D)", GAME_IS_SKELETON )
-/* 0013E */ GAME( 2005, vs4j, triforce, triforcegd, triforce, driver_device, 0, ROT0, "Sega", "Virtua Striker 4 (Japan) (Rev E) (GDT-0013E)", GAME_IS_SKELETON )
+// 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 )
// 0014
-/* 0015 */ GAME( 2004, vs4, triforce, triforcegd, triforce, driver_device, 0, ROT0, "Sega", "Virtua Striker 4 (Export) (GDT-0015)", GAME_IS_SKELETON )
-// 0016 GAME( 2004, aval20s, triforce, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 2.0 - Eutaxy and Commandment (server) (GDT-0016)", GAME_IS_SKELETON )
-// 0017 GAME( 2004, avalc20o, avalon20, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 2.0 - Eutaxy and Commandment (client) (GDT-0017)", GAME_IS_SKELETON )
-// 0017A GAME( 2004, avalc20a, avalon20, triforcegd, triforce, driver_device, 0, ROT0, "Sega / Hitmaker", "The Key Of Avalon 2.0 - Eutaxy and Commandment (client) (Rev A) (GDT-0017A)", GAME_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)", GAME_IS_SKELETON )
+/* 0015 */ GAME( 2004, vs4, triforce, triforcegd, triforce, driver_device, 0, ROT0, "Sega", "Virtua Striker 4 (Export) (GDT-0015)", MACHINE_IS_SKELETON )
+// 0016 GAME( 2004, aval20s, 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, avalc20o, 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, avalc20a, 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
// 0019
-// 0020 GAME( 2006, vs42k6o, vs42006, triforcegd, triforce, driver_device, 0, ROT0, "Sega", "Virtua Striker 4 Ver.2006 (Japan) (GDT-0020)", GAME_IS_SKELETON )
-// 0020A GAME( 2006, vs42k6a, vs42006, triforcegd, triforce, driver_device, 0, ROT0, "Sega", "Virtua Striker 4 Ver.2006 (Japan) (Rev A) (GDT-0020A)", GAME_IS_SKELETON )
-// 0020B GAME( 2006, vs42k6b, vs42006, triforcegd, triforce, driver_device, 0, ROT0, "Sega", "Virtua Striker 4 Ver.2006 (Japan) (Rev B) (GDT-0020B)", GAME_IS_SKELETON )
-// 0020C GAME( 2006, vs42k6c, vs42006, triforcegd, triforce, driver_device, 0, ROT0, "Sega", "Virtua Striker 4 Ver.2006 (Japan) (Rev C) (GDT-0020C)", GAME_IS_SKELETON )
-/* 0020D */ GAME( 2006, vs42006, triforce, triforcegd, triforce, driver_device, 0, ROT0, "Sega", "Virtua Striker 4 Ver.2006 (Japan) (Rev D) (GDT-0020D)", GAME_IS_SKELETON )
-/* 0021 */ GAME( 2006, vs42k6ex, triforce, triforcegd, triforce, driver_device, 0, ROT0, "Sega", "Virtua Striker 4 Ver.2006 (Export) (GDT-0021)", GAME_IS_SKELETON )
-// 0022 GAME( 2006, tcfboxo, tcfboxa, triforcegd, triforce, driver_device, 0, ROT0, "Sega", "Triforce Firmware Update For Compact Flash Box (GDT-0022)", GAME_IS_SKELETON )
-/* 0022A */ GAME( 2006, tcfboxa, triforce, triforcegd, triforce, driver_device, 0, ROT0, "Sega", "Triforce Firmware Update For Compact Flash Box (Rev A) (GDT-0022A)", GAME_IS_SKELETON )
+// 0020 GAME( 2006, vs42k6o, vs42006, triforcegd, triforce, driver_device, 0, ROT0, "Sega", "Virtua Striker 4 Ver.2006 (Japan) (GDT-0020)", MACHINE_IS_SKELETON )
+// 0020A GAME( 2006, vs42k6a, vs42006, triforcegd, triforce, driver_device, 0, ROT0, "Sega", "Virtua Striker 4 Ver.2006 (Japan) (Rev A) (GDT-0020A)", MACHINE_IS_SKELETON )
+// 0020B GAME( 2006, vs42k6b, vs42006, triforcegd, triforce, driver_device, 0, ROT0, "Sega", "Virtua Striker 4 Ver.2006 (Japan) (Rev B) (GDT-0020B)", MACHINE_IS_SKELETON )
+// 0020C GAME( 2006, vs42k6c, 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 (Rev A) (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 (MKA2 Ver.B)", GAME_IS_SKELETON )
-/* 14343-R4S0 */ GAME( 2007, mkartag2, triforce, triforce_base, triforce, driver_device, 0, ROT0, "Namco / Nintendo", "Mario Kart Arcade GP 2 (MK21 Ver.A)", GAME_IS_SKELETON )
-/* 14343-R4S0 */ GAME( 2007, mkartag2a,mkartag2, triforce_base, triforce, driver_device, 0, ROT0, "Namco / Nintendo", "Mario Kart Arcade GP 2 (MK21 Ver.A, alt dump)", GAME_IS_SKELETON )
+/* 14343-4T1 */ GAME( 2005, mkartagp, triforce, triforce_base, triforce, driver_device, 0, ROT0, "Namco / Nintendo", "Mario Kart Arcade GP (MKA2 Ver.B)", MACHINE_IS_SKELETON )
+/* 14343-R4S0 */ GAME( 2007, mkartag2, triforce, triforce_base, triforce, driver_device, 0, ROT0, "Namco / Nintendo", "Mario Kart Arcade GP 2 (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 (MK21 Ver.A, alt dump)", MACHINE_IS_SKELETON )
diff --git a/src/mame/drivers/triplhnt.c b/src/mame/drivers/triplhnt.c
index 63a772d8ae0..79371d00ea0 100644
--- a/src/mame/drivers/triplhnt.c
+++ b/src/mame/drivers/triplhnt.c
@@ -356,4 +356,4 @@ ROM_START( triplhnt )
ROM_END
-GAME( 1977, triplhnt, 0, triplhnt, triplhnt, triplhnt_state, triplhnt, 0, "Atari", "Triple Hunt", GAME_REQUIRES_ARTWORK )
+GAME( 1977, triplhnt, 0, triplhnt, triplhnt, triplhnt_state, triplhnt, 0, "Atari", "Triple Hunt", MACHINE_REQUIRES_ARTWORK )
diff --git a/src/mess/drivers/trs80.c b/src/mame/drivers/trs80.c
index 629b13e1467..8a9c0c3af24 100644
--- a/src/mess/drivers/trs80.c
+++ b/src/mame/drivers/trs80.c
@@ -604,7 +604,9 @@ static MACHINE_CONFIG_DERIVED( model1, trs80 ) // model I, level II
MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(trs80_state,trs80_fdc_intrq_w))
MCFG_FLOPPY_DRIVE_ADD("fdc:0", trs80_floppies, "sssd", trs80_state::floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", trs80_floppies, "sssd", trs80_state::floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("fdc:2", trs80_floppies, "", trs80_state::floppy_formats)
MCFG_FLOPPY_DRIVE_ADD("fdc:3", trs80_floppies, "", trs80_state::floppy_formats)
diff --git a/src/mess/drivers/trs80m2.c b/src/mame/drivers/trs80m2.c
index 3698a937458..57b2e20bcff 100644
--- a/src/mess/drivers/trs80m2.c
+++ b/src/mame/drivers/trs80m2.c
@@ -946,8 +946,8 @@ ROM_END
//**************************************************************************
// 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", GAME_NO_SOUND_HW | GAME_IMPERFECT_KEYBOARD )
-COMP( 1982, trs80m16, trs80m2, 0, trs80m16, trs80m2, driver_device, 0, "Tandy Radio Shack", "TRS-80 Model 16", GAME_NOT_WORKING | GAME_NO_SOUND_HW | GAME_IMPERFECT_KEYBOARD )
-//COMP( 1983, trs80m12, trs80m2, 0, trs80m16, trs80m2, driver_device, 0, "Tandy Radio Shack", "TRS-80 Model 12", GAME_NOT_WORKING | GAME_NO_SOUND_HW | GAME_IMPERFECT_KEYBOARD )
-//COMP( 1984, trs80m16b,trs80m2, 0, trs80m16, trs80m2, driver_device, 0, "Tandy Radio Shack", "TRS-80 Model 16B", GAME_NOT_WORKING | GAME_NO_SOUND_HW | GAME_IMPERFECT_KEYBOARD )
-//COMP( 1985, tandy6k, trs80m2, 0, tandy6k, trs80m2, driver_device, 0, "Tandy Radio Shack", "Tandy 6000 HD", GAME_NOT_WORKING | GAME_NO_SOUND_HW | GAME_IMPERFECT_KEYBOARD )
+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 )
diff --git a/src/mame/drivers/truco.c b/src/mame/drivers/truco.c
index 0cda2065fa6..602bb01d2dd 100644
--- a/src/mame/drivers/truco.c
+++ b/src/mame/drivers/truco.c
@@ -469,4 +469,4 @@ ROM_START( truco )
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", GAME_SUPPORTS_SAVE )
+GAME( 198?, truco, 0, truco, truco, driver_device, 0, ROT0, "Playtronic SRL", "Truco-Tron", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/trucocl.c b/src/mame/drivers/trucocl.c
index 6062415d8ac..3c0bfb376cc 100644
--- a/src/mame/drivers/trucocl.c
+++ b/src/mame/drivers/trucocl.c
@@ -199,4 +199,4 @@ DRIVER_INIT_MEMBER(trucocl_state,trucocl)
/******************************************************************************/
/* YEAR NAME PARENT MACHINE INPUT INIT MONITOR */
-GAME( 1991, trucocl, 0, trucocl, trucocl, trucocl_state, trucocl, ROT0, "Miky SRL", "Truco Clemente", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
+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.c b/src/mame/drivers/trvmadns.c
index 8674fe38d15..fdf3f241261 100644
--- a/src/mame/drivers/trvmadns.c
+++ b/src/mame/drivers/trvmadns.c
@@ -461,5 +461,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", GAME_WRONG_COLORS | GAME_NOT_WORKING )
-GAME( 1985, trvmadnsa, trvmadns, trvmadns, trvmadns, driver_device, 0, ROT0, "Thunderhead Inc.", "Trivia Madness - Series B Question set", GAME_WRONG_COLORS | GAME_NOT_WORKING )
+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 )
diff --git a/src/mame/drivers/trvquest.c b/src/mame/drivers/trvquest.c
index 5111de276c6..15f657e9c85 100644
--- a/src/mame/drivers/trvquest.c
+++ b/src/mame/drivers/trvquest.c
@@ -235,4 +235,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", GAME_SUPPORTS_SAVE )
+GAME( 1984, trvquest, 0, trvquest, trvquest, driver_device, 0, ROT90, "Sunn / Techstar", "Trivia Quest", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/tryout.c b/src/mame/drivers/tryout.c
index de23836e2b2..37ae3318f66 100644
--- a/src/mame/drivers/tryout.c
+++ b/src/mame/drivers/tryout.c
@@ -244,4 +244,4 @@ ROM_START( tryout )
ROM_LOAD( "ch14.bpr", 0x00000, 0x0020, CRC(8ce19925) SHA1(12f8f6022f1148b6ba1d019a34247452637063a7) )
ROM_END
-GAME( 1985, tryout, 0, tryout, tryout, driver_device, 0, ROT90, "Data East Corporation", "Pro Baseball Skill Tryout (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+GAME( 1985, tryout, 0, tryout, tryout, driver_device, 0, ROT90, "Data East Corporation", "Pro Baseball Skill Tryout (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/ts802.c b/src/mame/drivers/ts802.c
index 0c8dea9a3ca..19680c956cb 100644
--- a/src/mess/drivers/ts802.c
+++ b/src/mame/drivers/ts802.c
@@ -213,6 +213,7 @@ static MACHINE_CONFIG_START( ts802, ts802_state )
MCFG_FD1793_ADD("fdc", XTAL_4MHz / 2) // unknown clock
MCFG_FLOPPY_DRIVE_ADD("fdc:0", ts802_floppies, "525dd", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
MACHINE_CONFIG_END
/* ROM definition */
@@ -237,5 +238,5 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */
-COMP( 1982, ts802, 0, 0, ts802, ts802, ts802_state, ts802, "Televideo", "TS802", GAME_IS_SKELETON )
-COMP( 1982, ts802h, ts802, 0, ts802, ts802, ts802_state, ts802, "Televideo", "TS802H", GAME_IS_SKELETON )
+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/mess/drivers/ts803.c b/src/mame/drivers/ts803.c
index dd207f14ab9..4bcfc4922bd 100644
--- a/src/mess/drivers/ts803.c
+++ b/src/mame/drivers/ts803.c
@@ -65,4 +65,4 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */
-COMP( 19??, ts803h, 0, 0, ts803, ts803, driver_device, 0, "Televideo", "TS803H", GAME_IS_SKELETON )
+COMP( 19??, ts803h, 0, 0, ts803, ts803, driver_device, 0, "Televideo", "TS803H", MACHINE_IS_SKELETON )
diff --git a/src/mess/drivers/ts816.c b/src/mame/drivers/ts816.c
index e4efe68ad40..c9cfd795665 100644
--- a/src/mess/drivers/ts816.c
+++ b/src/mame/drivers/ts816.c
@@ -106,4 +106,4 @@ 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", GAME_IS_SKELETON )
+COMP( 1980, ts816, 0, 0, ts816, ts816, driver_device, 0, "Televideo", "TS816", MACHINE_IS_SKELETON )
diff --git a/src/mame/drivers/tsamurai.c b/src/mame/drivers/tsamurai.c
index 3f0d65bd87a..1fb49ea6bd8 100644
--- a/src/mame/drivers/tsamurai.c
+++ b/src/mame/drivers/tsamurai.c
@@ -1264,20 +1264,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", GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE )
-GAME( 1984, ringfgt, vsgongf, vsgongf, vsgongf, driver_device, 0, ROT90, "Kaneko (Taito license)", "Ring Fighter (set 1)", GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE )
-GAME( 1984, ringfgt2, vsgongf, vsgongf, vsgongf, driver_device, 0, ROT90, "Kaneko (Taito license)", "Ring Fighter (set 2)", GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE )
+GAME( 1984, vsgongf, 0, vsgongf, vsgongf, driver_device, 0, ROT90, "Kaneko", "VS Gong Fight", MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE )
+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( 1985, tsamurai, 0, tsamurai, tsamurai, driver_device, 0, ROT90, "Kaneko / Taito", "Samurai Nihon-Ichi (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1985, tsamurai2,tsamurai, tsamurai, tsamurai, driver_device, 0, ROT90, "Kaneko / Taito", "Samurai Nihon-Ichi (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1985, tsamuraih,tsamurai, tsamurai, tsamurai, driver_device, 0, ROT90, "bootleg", "Samurai Nihon-Ichi (bootleg, harder)", GAME_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, ladymstr, 0, tsamurai, ladymstr, driver_device, 0, ROT90, "Kaneko / Taito", "Lady Master of Kung Fu", GAME_SUPPORTS_SAVE )
-GAME( 1985, nunchaku, ladymstr, tsamurai, nunchaku, driver_device, 0, ROT90, "Kaneko / Taito", "Nunchackun", GAME_IMPERFECT_COLORS | GAME_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, yamagchi, 0, tsamurai, yamagchi, driver_device, 0, ROT90, "Kaneko / Taito", "Go Go Mr. Yamaguchi / Yuke Yuke Yamaguchi-kun", GAME_IMPERFECT_COLORS | GAME_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( 1986, m660, 0, m660, m660, driver_device, 0, ROT90, "Wood Place Inc. (Taito America Corporation license)", "Mission 660 (US)", GAME_SUPPORTS_SAVE )
-GAME( 1986, m660j, m660, m660, m660, driver_device, 0, ROT90, "Wood Place Inc. (Taito Corporation license)", "Mission 660 (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1986, m660b, m660, m660, m660, driver_device, 0, ROT90, "bootleg", "Mission 660 (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1986, alphaxz, m660, m660, m660, driver_device, 0, ROT90, "Ed Co. Ltd. (Wood Place Inc. license)", "The Alphax Z (Japan)", GAME_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 )
diff --git a/src/mess/drivers/tsispch.c b/src/mame/drivers/tsispch.c
index 686054fba66..4a1cc037fe8 100644
--- a/src/mess/drivers/tsispch.c
+++ b/src/mame/drivers/tsispch.c
@@ -544,5 +544,5 @@ ROM_START( prose2ko )
******************************************************************************/
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 1985, prose2k, 0, 0, prose2k, prose2k, tsispch_state, prose2k, "Telesensory Systems Inc/Speech Plus", "Prose 2000/2020 v3.4.1", GAME_NOT_WORKING | GAME_NO_SOUND )
-COMP( 1985, prose2ko, prose2k, 0, prose2k, prose2k, tsispch_state, prose2k, "Telesensory Systems Inc/Speech Plus", "Prose 2000/2020 v1.1", GAME_NOT_WORKING | GAME_NO_SOUND )
+COMP( 1985, 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( 1985, 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.c b/src/mame/drivers/ttchamp.c
index cf85d0a47e8..0c443252b26 100644
--- a/src/mame/drivers/ttchamp.c
+++ b/src/mame/drivers/ttchamp.c
@@ -31,7 +31,7 @@
_| 74LS244 74LS14N 74HC74 16MHz |D70116C-10 | |
|__________________________________________________|
-The PCB is Spanish and manufacured by Gamart.
+The PCB is Spanish and manufactured by Gamart.
Table tennis Championships by Gamart 1995
@@ -46,7 +46,7 @@ Rom files definition:
ttennis2/3 main program
ttennis1 adpcm data
ttennis4/5 graphics
-*there is a pic16c84 that i cannot dump because my programmer doesn't support it.
+*there is a pic16c84 that I cannot dump because my programmer doesn't support it.
Dumped by tirino73
@@ -59,7 +59,7 @@ Dumped by tirino73
- A bunch of spurious RAM writes to ROM area (genuine bug? left-overs?)
Notes
-I think the PIC is used to interface with battry backed RAM instead of an EEPROM,
+I think the PIC is used to interface with battery backed RAM instead of an EEPROM,
we currently simulate this as the PIC is read protected.
@@ -71,6 +71,7 @@ we currently simulate this as the PIC is read protected.
#include "sound/okim6295.h"
#include "machine/nvram.h"
+
class ttchamp_state : public driver_device
{
public:
@@ -79,37 +80,15 @@ public:
m_maincpu(*this, "maincpu"),
m_palette(*this, "palette") { }
- UINT16* m_peno_mainram;
+ required_device<cpu_device> m_maincpu;
+ required_device<palette_device> m_palette;
UINT16 m_paloff;
- DECLARE_WRITE16_MEMBER(paloff_w);
- DECLARE_WRITE16_MEMBER(pcup_prgbank_w);
- DECLARE_WRITE16_MEMBER(paldat_w);
-
- DECLARE_WRITE16_MEMBER(port10_w);
-
- DECLARE_WRITE16_MEMBER(port20_w);
- DECLARE_WRITE16_MEMBER(port62_w);
-
- DECLARE_READ16_MEMBER(port1e_r);
-
- DECLARE_READ16_MEMBER(ttchamp_pic_r);
- DECLARE_WRITE16_MEMBER(ttchamp_pic_w);
-
UINT16 m_port10;
UINT8 m_rombank;
-
- DECLARE_DRIVER_INIT(ttchamp);
-
- DECLARE_READ16_MEMBER(ttchamp_blit_start_r);
-
- DECLARE_READ16_MEMBER(ttchamp_mem_r);
- DECLARE_WRITE16_MEMBER(ttchamp_mem_w);
-
UINT16 m_videoram0[0x10000 / 2];
UINT16 m_videoram2[0x10000 / 2];
-
enum picmode
{
PIC_IDLE = 0,
@@ -118,8 +97,9 @@ public:
PIC_SET_WRITELATCH = 3,
PIC_SET_READLATCH = 4
- } picmodex;
+ };
+ picmode m_picmodex;
int m_pic_readaddr;
int m_pic_writeaddr;
@@ -133,35 +113,71 @@ public:
int m_spritesinit;
int m_spriteswidth;
int m_spritesaddr;
-
- virtual void machine_start();
UINT16* m_rom16;
UINT8* m_rom8;
+ DECLARE_WRITE16_MEMBER(paloff_w);
+ DECLARE_WRITE16_MEMBER(pcup_prgbank_w);
+ DECLARE_WRITE16_MEMBER(paldat_w);
+
+ DECLARE_WRITE16_MEMBER(port10_w);
+
+ DECLARE_WRITE16_MEMBER(port20_w);
+ DECLARE_WRITE16_MEMBER(port62_w);
+
+ DECLARE_READ16_MEMBER(port1e_r);
+
+ DECLARE_READ16_MEMBER(pic_r);
+ DECLARE_WRITE16_MEMBER(pic_w);
+
+ DECLARE_READ16_MEMBER(blit_start_r);
+
+ DECLARE_READ16_MEMBER(mem_r);
+ DECLARE_WRITE16_MEMBER(mem_w);
+
+ virtual void machine_start();
virtual void video_start();
- UINT32 screen_update_ttchamp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- INTERRUPT_GEN_MEMBER(ttchamp_irq);
- required_device<cpu_device> m_maincpu;
- required_device<palette_device> m_palette;
+
+ UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+
+ INTERRUPT_GEN_MEMBER(irq);
};
+ALLOW_SAVE_TYPE(ttchamp_state::picmode);
+
+
void ttchamp_state::machine_start()
{
m_rom16 = (UINT16*)memregion("maincpu")->base();
m_rom8 = memregion("maincpu")->base();
- picmodex = PIC_IDLE;
+ m_picmodex = PIC_IDLE;
m_bakram = auto_alloc_array(machine(), UINT8, 0x100);
machine().device<nvram_device>("backram")->set_base(m_bakram, 0x100);
+ save_item(NAME(m_paloff));
+ save_item(NAME(m_port10));
+ save_item(NAME(m_rombank));
+ save_item(NAME(m_videoram0));
+ save_item(NAME(m_videoram2));
+ save_item(NAME(m_picmodex));
+ save_item(NAME(m_pic_readaddr));
+ save_item(NAME(m_pic_writeaddr));
+ save_item(NAME(m_pic_latched));
+ save_item(NAME(m_pic_writelatched));
+ save_item(NAME(m_mainram));
+ save_item(NAME(m_spritesinit));
+ save_item(NAME(m_spriteswidth));
+ save_item(NAME(m_spritesaddr));
+
}
void ttchamp_state::video_start()
{
}
-UINT32 ttchamp_state::screen_update_ttchamp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+UINT32 ttchamp_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
logerror("update\n");
int y,x,count;
@@ -261,13 +277,13 @@ WRITE16_MEMBER(ttchamp_state::paldat_w)
m_palette->set_pen_color(m_paloff & 0x3ff,pal5bit(data>>0),pal5bit(data>>5),pal5bit(data>>10));
}
-READ16_MEMBER(ttchamp_state::ttchamp_pic_r)
+READ16_MEMBER(ttchamp_state::pic_r)
{
// printf("%06x: read from PIC (%04x)\n", space.device().safe_pc(),mem_mask);
- if (picmodex == PIC_SET_READLATCH)
+ if (m_picmodex == PIC_SET_READLATCH)
{
// printf("read data %02x from %02x\n", m_pic_latched, m_pic_readaddr);
- picmodex = PIC_IDLE;
+ m_picmodex = PIC_IDLE;
return m_pic_latched << 8;
@@ -276,29 +292,29 @@ READ16_MEMBER(ttchamp_state::ttchamp_pic_r)
}
-WRITE16_MEMBER(ttchamp_state::ttchamp_pic_w)
+WRITE16_MEMBER(ttchamp_state::pic_w)
{
-// printf("%06x: write to PIC %04x (%04x) (%d)\n", space.device().safe_pc(),data,mem_mask, picmodex);
- if (picmodex == PIC_IDLE)
+// printf("%06x: write to PIC %04x (%04x) (%d)\n", space.device().safe_pc(),data,mem_mask, m_picmodex);
+ if (m_picmodex == PIC_IDLE)
{
if (data == 0x11)
{
- picmodex = PIC_SET_READADDRESS;
+ m_picmodex = PIC_SET_READADDRESS;
// printf("state = SET_READADDRESS\n");
}
else if (data == 0x12)
{
- picmodex = PIC_SET_WRITELATCH;
+ m_picmodex = PIC_SET_WRITELATCH;
// printf("latch write data.. \n" );
}
else if (data == 0x20)
{
- picmodex = PIC_SET_WRITEADDRESS;
+ m_picmodex = PIC_SET_WRITEADDRESS;
// printf("state = PIC_SET_WRITEADDRESS\n");
}
else if (data == 0x21) // write latched data
{
- picmodex = PIC_IDLE;
+ m_picmodex = PIC_IDLE;
m_bakram[m_pic_writeaddr] = m_pic_writelatched;
// printf("wrote %02x to %02x\n", m_pic_writelatched, m_pic_writeaddr);
}
@@ -309,33 +325,33 @@ WRITE16_MEMBER(ttchamp_state::ttchamp_pic_w)
m_pic_latched = m_bakram[m_pic_readaddr>>1];
// printf("latch read data %02x from %02x\n",m_pic_latched, m_pic_readaddr );
- picmodex = PIC_SET_READLATCH; // waiting to read...
+ m_picmodex = PIC_SET_READLATCH; // waiting to read...
}
else
{
// printf("unknown\n");
}
}
- else if (picmodex == PIC_SET_READADDRESS)
+ else if (m_picmodex == PIC_SET_READADDRESS)
{
m_pic_readaddr = data;
- picmodex = PIC_IDLE;
+ m_picmodex = PIC_IDLE;
}
- else if (picmodex == PIC_SET_WRITEADDRESS)
+ else if (m_picmodex == PIC_SET_WRITEADDRESS)
{
m_pic_writeaddr = data;
- picmodex = PIC_IDLE;
+ m_picmodex = PIC_IDLE;
}
- else if (picmodex == PIC_SET_WRITELATCH)
+ else if (m_picmodex == PIC_SET_WRITELATCH)
{
m_pic_writelatched = data;
- picmodex = PIC_IDLE;
+ m_picmodex = PIC_IDLE;
}
}
-READ16_MEMBER(ttchamp_state::ttchamp_mem_r)
+READ16_MEMBER(ttchamp_state::mem_r)
{
// bits 0xf0 are used too, so this is likely wrong.
@@ -367,7 +383,7 @@ READ16_MEMBER(ttchamp_state::ttchamp_mem_r)
}
}
-WRITE16_MEMBER(ttchamp_state::ttchamp_mem_w)
+WRITE16_MEMBER(ttchamp_state::mem_w)
{
// this is very strange, we use the offset (address bits) not data bits to set values..
// I get the impression this might actually overlay the entire address range, including RAM and regular VRAM?
@@ -484,7 +500,7 @@ WRITE16_MEMBER(ttchamp_state::ttchamp_mem_w)
static ADDRESS_MAP_START( ttchamp_map, AS_PROGRAM, 16, ttchamp_state )
- AM_RANGE(0x00000, 0xfffff) AM_READWRITE(ttchamp_mem_r, ttchamp_mem_w)
+ AM_RANGE(0x00000, 0xfffff) AM_READWRITE(mem_r, mem_w)
ADDRESS_MAP_END
/* Re-use same parameters as before (one-shot) */
@@ -494,7 +510,7 @@ READ16_MEMBER(ttchamp_state::port1e_r)
return 0xff;
}
-READ16_MEMBER(ttchamp_state::ttchamp_blit_start_r)
+READ16_MEMBER(ttchamp_state::blit_start_r)
{
m_spritesinit = 1;
return 0xff;
@@ -533,7 +549,7 @@ static ADDRESS_MAP_START( ttchamp_io, AS_IO, 16, ttchamp_state )
AM_RANGE(0x0006, 0x0007) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
- AM_RANGE(0x0018, 0x0019) AM_READ(ttchamp_blit_start_r) // read before using bus write offset as blit parameters
+ AM_RANGE(0x0018, 0x0019) AM_READ(blit_start_r) // read before using bus write offset as blit parameters
AM_RANGE(0x001e, 0x001f) AM_READ(port1e_r) // read before some blit operations (but not all)
AM_RANGE(0x0008, 0x0009) AM_WRITE(paldat_w)
@@ -543,7 +559,7 @@ static ADDRESS_MAP_START( ttchamp_io, AS_IO, 16, ttchamp_state )
AM_RANGE(0x0020, 0x0021) AM_WRITE(port20_w)
- AM_RANGE(0x0034, 0x0035) AM_READWRITE(ttchamp_pic_r, ttchamp_pic_w)
+ AM_RANGE(0x0034, 0x0035) AM_READWRITE(pic_r, pic_w)
AM_RANGE(0x0062, 0x0063) AM_WRITE(port62_w)
@@ -616,7 +632,7 @@ static INPUT_PORTS_START(ttchamp)
INPUT_PORTS_END
-INTERRUPT_GEN_MEMBER(ttchamp_state::ttchamp_irq)/* right? */
+INTERRUPT_GEN_MEMBER(ttchamp_state::irq)/* right? */
{
device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
}
@@ -626,7 +642,7 @@ static MACHINE_CONFIG_START( ttchamp, ttchamp_state )
MCFG_CPU_ADD("maincpu", V30, 8000000)
MCFG_CPU_PROGRAM_MAP(ttchamp_map)
MCFG_CPU_IO_MAP(ttchamp_io)
- MCFG_CPU_VBLANK_INT_DRIVER("screen", ttchamp_state, ttchamp_irq)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", ttchamp_state, irq)
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -634,7 +650,7 @@ static MACHINE_CONFIG_START( ttchamp, ttchamp_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(1024,1024)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1)
- MCFG_SCREEN_UPDATE_DRIVER(ttchamp_state, screen_update_ttchamp)
+ MCFG_SCREEN_UPDATE_DRIVER(ttchamp_state, screen_update)
MCFG_SCREEN_PALETTE("palette")
MCFG_PALETTE_ADD("palette", 0x400)
@@ -676,10 +692,7 @@ ROM_START( ttchampa )
ROM_LOAD( "27c020.1", 0x000000, 0x040000, CRC(e2c4fe95) SHA1(da349035cc348db220a1e12b4c2a6021e2168425) )
ROM_END
-DRIVER_INIT_MEMBER(ttchamp_state,ttchamp)
-{
-}
// only the graphics differ between the two sets, code section is the same
-GAME( 1995, ttchamp, 0, ttchamp, ttchamp, ttchamp_state, ttchamp, ROT0, "Gamart", "Table Tennis Champions", 0 ) // this has various advertising boards, including 'Electronic Devices' and 'Deniam'
-GAME( 1995, ttchampa,ttchamp, ttchamp, ttchamp, ttchamp_state, ttchamp, ROT0, "Gamart (Palencia Elektronik license)", "Table Tennis Champions (Palencia Elektronik license)", 0 ) // this only has Palencia Elektronik advertising boards
+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
diff --git a/src/mame/drivers/tubep.c b/src/mame/drivers/tubep.c
index e38ff726676..5276b0b915f 100644
--- a/src/mame/drivers/tubep.c
+++ b/src/mame/drivers/tubep.c
@@ -1177,6 +1177,6 @@ ROM_END
*************************************/
/* year rom parent machine inp init */
-GAME( 1984, tubep, 0, tubep, tubep, driver_device, 0, ROT0, "Nichibutsu / Fujitek", "Tube Panic", GAME_SUPPORTS_SAVE )
-GAME( 1984, tubepb, tubep, tubepb, tubepb, driver_device, 0, ROT0, "bootleg", "Tube Panic (bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1984, rjammer, 0, rjammer, rjammer, driver_device, 0, ROT0, "Nichibutsu / Alice", "Roller Jammer", GAME_SUPPORTS_SAVE )
+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 )
+GAME( 1984, rjammer, 0, rjammer, rjammer, driver_device, 0, ROT0, "Nichibutsu / Alice", "Roller Jammer", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/tugboat.c b/src/mame/drivers/tugboat.c
index b5bef479cb2..8b14faf6273 100644
--- a/src/mame/drivers/tugboat.c
+++ b/src/mame/drivers/tugboat.c
@@ -3,7 +3,7 @@
/****************************************************************************
Tug Boat
-6502 hooked up + preliminary video by MooglyGuy
+6502 hooked up + preliminary video by Ryan Holtz
TODO:
- verify connections of the two PIAs. I only hooked up a couple of ports but
@@ -470,6 +470,6 @@ ROM_START( berenstn )
ROM_END
-GAME( 1982, tugboat, 0, tugboat, tugboat, driver_device, 0, ROT90, "Enter-Tech, Ltd.", "Tugboat", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1983, noahsark, 0, tugboat, noahsark, driver_device, 0, ROT90, "Enter-Tech, Ltd.", "Noah's Ark", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1984, berenstn, 0, tugboat, noahsark, driver_device, 0, ROT90, "Enter-Tech, Ltd.", "The Berenstain Bears in Big Paw's Cave", GAME_IMPERFECT_GRAPHICS | GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/tumbleb.c b/src/mame/drivers/tumbleb.c
index 767266ea44f..2bef5b2ff6d 100644
--- a/src/mame/drivers/tumbleb.c
+++ b/src/mame/drivers/tumbleb.c
@@ -3617,44 +3617,44 @@ DRIVER_INIT_MEMBER(tumbleb_state,dquizgo)
/******************************************************************************/
/* Misc 'bootleg' hardware - close to base Tumble Pop */
-GAME( 1991, tumbleb, tumblep, tumblepb, tumblepb, tumbleb_state, tumblepb, ROT0, "bootleg", "Tumble Pop (bootleg)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1991, tumbleb2, tumblep, tumbleb2, tumblepb, tumbleb_state, tumbleb2, ROT0, "bootleg", "Tumble Pop (bootleg with PIC)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // PIC is protected, sound simulation not 100%
-GAME( 1991, tumblepba, tumblep, tumblepb, tumblepb, tumbleb_state, tumblepba, ROT0, "bootleg (Playmark)", "Tumble Pop (Playmark bootleg)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE | GAME_NOT_WORKING ) // Playmark stickers on ROMs
+GAME( 1991, tumbleb, tumblep, tumblepb, tumblepb, tumbleb_state, tumblepb, ROT0, "bootleg", "Tumble Pop (bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1991, tumbleb2, tumblep, tumbleb2, tumblepb, tumbleb_state, tumbleb2, ROT0, "bootleg", "Tumble Pop (bootleg with PIC)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // PIC is protected, sound simulation not 100%
+GAME( 1991, tumblepba, tumblep, tumblepb, tumblepb, tumbleb_state, tumblepba, ROT0, "bootleg (Playmark)", "Tumble Pop (Playmark bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // Playmark stickers on ROMs
-GAME( 1993, jumpkids, 0, jumpkids, tumblepb, tumbleb_state, jumpkids, ROT0, "Comad", "Jump Kids", GAME_SUPPORTS_SAVE )
+GAME( 1993, jumpkids, 0, jumpkids, tumblepb, tumbleb_state, jumpkids, ROT0, "Comad", "Jump Kids", MACHINE_SUPPORTS_SAVE )
-GAME( 1994, pangpang, 0, pangpang, tumblepb, tumbleb_state, tumbleb2, ROT0, "Dong Gue La Mi Ltd.", "Pang Pang", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // PIC is protected, sound simulation not 100%
+GAME( 1994, pangpang, 0, pangpang, tumblepb, tumbleb_state, tumbleb2, ROT0, "Dong Gue La Mi Ltd.", "Pang Pang", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // PIC is protected, sound simulation not 100%
/* Misc 'bootleg' hardware - more changes from base hardware */
-GAME( 1994, suprtrio, 0, suprtrio, suprtrio, tumbleb_state, suprtrio, ROT0, "Gameace", "Super Trio", GAME_SUPPORTS_SAVE )
+GAME( 1994, suprtrio, 0, suprtrio, suprtrio, tumbleb_state, suprtrio, ROT0, "Gameace", "Super Trio", MACHINE_SUPPORTS_SAVE )
-GAME( 1996, fncywld, 0, fncywld, fncywld, tumbleb_state, fncywld, ROT0, "Unico", "Fancy World - Earth of Crisis" , GAME_SUPPORTS_SAVE ) // game says 1996, testmode 1995?
+GAME( 1996, fncywld, 0, fncywld, fncywld, tumbleb_state, fncywld, ROT0, "Unico", "Fancy World - Earth of Crisis" , MACHINE_SUPPORTS_SAVE ) // game says 1996, testmode 1995?
// Unico - Magic Purple almost certainly goes here
/* First Amusement / Mijin / SemiCom hardware (MCU protected) */
-GAME( 1994, metlsavr, 0, metlsavr, metlsavr, tumbleb_state, chokchok, ROT0, "First Amusement", "Metal Saver", GAME_SUPPORTS_SAVE )
+GAME( 1994, metlsavr, 0, metlsavr, metlsavr, tumbleb_state, chokchok, ROT0, "First Amusement", "Metal Saver", MACHINE_SUPPORTS_SAVE )
-GAME( 1994, magicbal, 0, metlsavr, magicbal, tumbleb_state, chokchok, ROT0, "SemiCom", "Magicball Fighting (Korea)", GAME_SUPPORTS_SAVE) // also still has the Metal Saver (c)1994 First Amusement tiles in the GFX
+GAME( 1994, magicbal, 0, metlsavr, magicbal, tumbleb_state, chokchok, ROT0, "SemiCom", "Magicball Fighting (Korea)", MACHINE_SUPPORTS_SAVE) // also still has the Metal Saver (c)1994 First Amusement tiles in the GFX
-GAME( 1995, chokchok, 0, chokchok, chokchok, tumbleb_state, chokchok, ROT0, "SemiCom", "Choky! Choky!", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+GAME( 1995, chokchok, 0, chokchok, chokchok, tumbleb_state, chokchok, ROT0, "SemiCom", "Choky! Choky!", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
-GAME( 1995, wlstar, 0, cookbib_mcu, wlstar, tumbleb_state, wlstar, ROT0, "Mijin", "Wonder League Star - Sok-Magicball Fighting (Korea)", GAME_SUPPORTS_SAVE ) // translates to 'Wonder League Star - Return of Magicball Fighting'
+GAME( 1995, wlstar, 0, cookbib_mcu, wlstar, tumbleb_state, wlstar, ROT0, "Mijin", "Wonder League Star - Sok-Magicball Fighting (Korea)", MACHINE_SUPPORTS_SAVE ) // translates to 'Wonder League Star - Return of Magicball Fighting'
-GAME( 1995, htchctch, 0, htchctch, htchctch, tumbleb_state, htchctch, ROT0, "SemiCom", "Hatch Catch" , GAME_SUPPORTS_SAVE ) // not 100% sure about gfx offsets
+GAME( 1995, htchctch, 0, htchctch, htchctch, tumbleb_state, htchctch, ROT0, "SemiCom", "Hatch Catch" , MACHINE_SUPPORTS_SAVE ) // not 100% sure about gfx offsets
-GAME( 1995, cookbib, 0, cookbib, cookbib, tumbleb_state, htchctch, ROT0, "SemiCom", "Cookie & Bibi (set 1)" , GAME_SUPPORTS_SAVE ) // not 100% sure about gfx offsets
-GAME( 1995, cookbiba, cookbib, cookbib, cookbib, tumbleb_state, htchctch, ROT0, "SemiCom", "Cookie & Bibi (set 2)" , GAME_SUPPORTS_SAVE )
+GAME( 1995, cookbib, 0, cookbib, cookbib, tumbleb_state, htchctch, ROT0, "SemiCom", "Cookie & Bibi (set 1)" , MACHINE_SUPPORTS_SAVE ) // not 100% sure about gfx offsets
+GAME( 1995, cookbiba, cookbib, cookbib, cookbib, tumbleb_state, htchctch, ROT0, "SemiCom", "Cookie & Bibi (set 2)" , MACHINE_SUPPORTS_SAVE )
-GAME( 1996, carket, 0, htchctch, carket, tumbleb_state, carket, ROT0, "SemiCom", "Carket Ball", GAME_SUPPORTS_SAVE )
+GAME( 1996, carket, 0, htchctch, carket, tumbleb_state, carket, ROT0, "SemiCom", "Carket Ball", MACHINE_SUPPORTS_SAVE )
-GAME( 1996, wondl96, 0, cookbib_mcu, wondl96, tumbleb_state, wondl96, ROT0, "SemiCom", "Wonder League '96 (Korea)", GAME_SUPPORTS_SAVE )
+GAME( 1996, wondl96, 0, cookbib_mcu, wondl96, tumbleb_state, wondl96, ROT0, "SemiCom", "Wonder League '96 (Korea)", MACHINE_SUPPORTS_SAVE )
-GAME( 1996, sdfight, 0, sdfight, sdfight, tumbleb_state, bcstory, ROT0, "SemiCom / Tirano", "SD Fighters (Korea)", GAME_SUPPORTS_SAVE )
+GAME( 1996, sdfight, 0, sdfight, sdfight, tumbleb_state, bcstory, ROT0, "SemiCom / Tirano", "SD Fighters (Korea)", MACHINE_SUPPORTS_SAVE )
-GAME( 1997, bcstry, 0, bcstory, bcstory, tumbleb_state, bcstory, ROT0, "SemiCom / Tirano", "B.C. Story (set 1)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) // gfx offsets?
-GAME( 1997, bcstrya, bcstry, bcstory, bcstory, tumbleb_state, bcstory, ROT0, "SemiCom / Tirano", "B.C. Story (set 2)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) // gfx offsets?
+GAME( 1997, bcstry, 0, bcstory, bcstory, tumbleb_state, bcstory, ROT0, "SemiCom / Tirano", "B.C. Story (set 1)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // gfx offsets?
+GAME( 1997, bcstrya, bcstry, bcstory, bcstory, tumbleb_state, bcstory, ROT0, "SemiCom / Tirano", "B.C. Story (set 2)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // gfx offsets?
-GAME( 1997, semibase, 0, semibase, semibase, tumbleb_state, bcstory, ROT0, "SemiCom / DMD", "MuHanSeungBu (SemiCom Baseball) (Korea)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )// sprite offsets..
+GAME( 1997, semibase, 0, semibase, semibase, tumbleb_state, bcstory, ROT0, "SemiCom / DMD", "MuHanSeungBu (SemiCom Baseball) (Korea)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )// sprite offsets..
-GAME( 1998, dquizgo, 0, cookbib, dquizgo, tumbleb_state, dquizgo, ROT0, "SemiCom / AceVer", "Date Quiz Go Go (Korea)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE ) // check layer offsets
+GAME( 1998, dquizgo, 0, cookbib, dquizgo, tumbleb_state, dquizgo, ROT0, "SemiCom / AceVer", "Date Quiz Go Go (Korea)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) // check layer offsets
diff --git a/src/mame/drivers/tumblep.c b/src/mame/drivers/tumblep.c
index a0f65b92830..ed7a0bbd561 100644
--- a/src/mame/drivers/tumblep.c
+++ b/src/mame/drivers/tumblep.c
@@ -396,6 +396,6 @@ DRIVER_INIT_MEMBER(tumblep_state,tumblep)
/******************************************************************************/
-GAME( 1991, tumblep, 0, tumblep, tumblep, tumblep_state, tumblep, ROT0, "Data East Corporation", "Tumble Pop (World)", GAME_SUPPORTS_SAVE )
-GAME( 1991, tumblepj, tumblep, tumblep, tumblep, tumblep_state, tumblep, ROT0, "Data East Corporation", "Tumble Pop (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1991, tumblep, 0, tumblep, tumblep, tumblep_state, tumblep, ROT0, "Data East Corporation", "Tumble Pop (World)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, tumblepj, tumblep, tumblep, tumblep, tumblep_state, tumblep, ROT0, "Data East Corporation", "Tumble Pop (Japan)", MACHINE_SUPPORTS_SAVE )
/* for bootlegs and games on similar hardware see tumbleb.c */
diff --git a/src/mame/drivers/tunhunt.c b/src/mame/drivers/tunhunt.c
index c242aa21258..cc567c6778e 100644
--- a/src/mame/drivers/tunhunt.c
+++ b/src/mame/drivers/tunhunt.c
@@ -392,5 +392,5 @@ ROM_END
*************************************/
/* rom parent machine inp init */
-GAME( 1979,tunhunt, 0, tunhunt, tunhunt, driver_device, 0, ORIENTATION_SWAP_XY, "Atari", "Tunnel Hunt", GAME_SUPPORTS_SAVE )
-GAME( 1981,tunhuntc, tunhunt, tunhunt, tunhunt, driver_device, 0, ORIENTATION_SWAP_XY, "Atari (Centuri license)", "Tunnel Hunt (Centuri)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/turbo.c b/src/mame/drivers/turbo.c
index c54f52d4310..66caf369ea4 100644
--- a/src/mame/drivers/turbo.c
+++ b/src/mame/drivers/turbo.c
@@ -1085,9 +1085,9 @@ ROM_END
ROM_START( turbob )
ROM_REGION( 0x6000, "maincpu", 0 )
// B revision label on 1st rom, A revision for 2nd / 3rd, 2nd rom was faulty, 3rd rom matched existing set, existing 2nd rom passes rom check.
- ROM_LOAD( "epr-1363_t5b.ic76", 0x0000, 0x2000, CRC(f7f28149) SHA1(08aec3edd6d756b14b2f10fe5abd22ac83c79fcc) ) /* CPU module stamped as 834-0128 */
- ROM_LOAD( "epr-1364_t5a.ic89", 0x2000, 0x2000, CRC(6a341693) SHA1(428927c4a14bf82225875012c255d25dcffaf2ab) )
- ROM_LOAD( "epr-1365_t5a.ic103", 0x4000, 0x2000, CRC(3b6b0dc8) SHA1(3ebfa3f9fabd444ee105591acb6984b6b3523725) )
+ ROM_LOAD( "epr-1363_t5b.ic76", 0x0000, 0x2000, CRC(f7f28149) SHA1(08aec3edd6d756b14b2f10fe5abd22ac83c79fcc) ) /* CPU module stamped as 834-0128 */
+ ROM_LOAD( "epr-1364_t5a.ic89", 0x2000, 0x2000, CRC(6a341693) SHA1(428927c4a14bf82225875012c255d25dcffaf2ab) )
+ ROM_LOAD( "epr-1365_t5a.ic103", 0x4000, 0x2000, CRC(3b6b0dc8) SHA1(3ebfa3f9fabd444ee105591acb6984b6b3523725) )
ROM_REGION( 0x20000, "sprites", 0 ) /* sprite data */
ROM_LOAD( "epr-1246.prom-ic84", 0x00000, 0x2000, CRC(555bfe9a) SHA1(1e56385475eeff044dcd9b44a154991d3efe995e) ) /* level 0 */
@@ -1192,8 +1192,8 @@ ROM_END
ROM_START( turbod )
ROM_REGION( 0x6000, "maincpu", 0 )
- // no letter on rom labels, numbered 1363-1365, possibly the original 1363-1365 revision? - service mode still shows the older EPR-1262 through EPR-1264 tho?
- ROM_LOAD( "1363.ic76", 0x0000, 0x2000, CRC(b6329a00) SHA1(02ca3d7703607bc0390a14d838fafb01a3e3cdef) ) /* CPU module stamped as 834-0128 */
+ // no letter on rom labels, numbered 1363-1365, possibly the original 1363-1365 revision? - service mode still shows the older EPR-1262 through EPR-1264 tho?
+ ROM_LOAD( "1363.ic76", 0x0000, 0x2000, CRC(b6329a00) SHA1(02ca3d7703607bc0390a14d838fafb01a3e3cdef) ) /* CPU module stamped as 834-0128 */
ROM_LOAD( "1364.ic89", 0x2000, 0x2000, CRC(3192f83b) SHA1(78dabb75e38f5f8331bfc43dce852a4c4397f874) )
ROM_LOAD( "1365.ic103", 0x4000, 0x2000, CRC(23a3303a) SHA1(bcc4ab9203060b4043d779b7a242abc583093dbb) )
@@ -1785,16 +1785,16 @@ DRIVER_INIT_MEMBER(turbo_state,buckrog_enc)
*
*************************************/
-GAMEL( 1981, turbo, 0, turbo, turbo, driver_device, 0, ROT270, "Sega", "Turbo (program 1513-1515)", GAME_IMPERFECT_SOUND , layout_turbo )
-GAMEL( 1981, turboa, turbo, turbo, turbo, turbo_state, turbo_enc, ROT270, "Sega", "Turbo (encrypted, program 1262-1264)", GAME_IMPERFECT_SOUND , layout_turbo )
-GAMEL( 1981, turbob, turbo, turbo, turbo, turbo_state, turbo_enc, ROT270, "Sega", "Turbo (encrypted, program 1363-1365 rev B)", GAME_IMPERFECT_SOUND , layout_turbo )
-GAMEL( 1981, turboc, turbo, turbo, turbo, turbo_state, turbo_enc, ROT270, "Sega", "Turbo (encrypted, program 1363-1365 rev A)", GAME_IMPERFECT_SOUND , layout_turbo )
-GAMEL( 1981, turbod, turbo, turbo, turbo, turbo_state, turbo_enc, ROT270, "Sega", "Turbo (encrypted, program 1363-1365)", GAME_IMPERFECT_SOUND , layout_turbo ) // but still reports 1262-1264 in the test mode?
-GAMEL( 1981, turbobl, turbo, turbo, turbo, driver_device, 0, ROT270, "bootleg", "Indianapolis (bootleg of Turbo)", GAME_IMPERFECT_SOUND , layout_turbo ) // decrypted bootleg of a 1262-1264 set
+GAMEL( 1981, turbo, 0, turbo, turbo, driver_device, 0, 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, driver_device, 0, 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", GAME_IMPERFECT_SOUND , layout_subroc3d )
+GAMEL( 1982, subroc3d, 0, subroc3d, subroc3d, driver_device, 0, ORIENTATION_FLIP_X, "Sega", "Subroc-3D", MACHINE_IMPERFECT_SOUND , layout_subroc3d )
-GAMEL( 1982, buckrog, 0, buckrog, buckrog, turbo_state, buckrog_enc, ROT0, "Sega", "Buck Rogers: Planet of Zoom", GAME_IMPERFECT_SOUND , layout_buckrog )
-GAMEL( 1982, buckrogn, buckrog, buckrogu, buckrog, driver_device, 0, ROT0, "Sega", "Buck Rogers: Planet of Zoom (not encrypted, set 1)", GAME_IMPERFECT_SOUND , layout_buckrog )
-GAMEL( 1982, buckrogn2,buckrog, buckrogu, buckrog, driver_device, 0, ROT0, "Sega", "Buck Rogers: Planet of Zoom (not encrypted, set 2)", GAME_IMPERFECT_SOUND , layout_buckrog )
-GAMEL( 1982, zoom909, buckrog, buckrog, buckrog, turbo_state, buckrog_enc, ROT0, "Sega", "Zoom 909", GAME_IMPERFECT_SOUND, layout_buckrog )
+GAMEL( 1982, buckrog, 0, buckrog, buckrog, turbo_state, buckrog_enc, 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, buckrog, buckrog, turbo_state, buckrog_enc, ROT0, "Sega", "Zoom 909", MACHINE_IMPERFECT_SOUND, layout_buckrog )
diff --git a/src/mame/drivers/tutankhm.c b/src/mame/drivers/tutankhm.c
index a0f9c730ca0..8a4d65e4753 100644
--- a/src/mame/drivers/tutankhm.c
+++ b/src/mame/drivers/tutankhm.c
@@ -118,7 +118,7 @@ WRITE8_MEMBER(tutankhm_state::tutankhm_coin_counter_w)
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, tutankhm_state )
AM_RANGE(0x0000, 0x7fff) AM_RAM AM_SHARE("videoram")
- AM_RANGE(0x8000, 0x800f) AM_MIRROR(0x00f0) AM_RAM AM_SHARE("paletteram")
+ AM_RANGE(0x8000, 0x800f) AM_MIRROR(0x00f0) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
AM_RANGE(0x8100, 0x8100) AM_MIRROR(0x000f) AM_RAM AM_SHARE("scroll")
AM_RANGE(0x8120, 0x8120) AM_MIRROR(0x000f) AM_READ(watchdog_reset_r)
AM_RANGE(0x8160, 0x8160) AM_MIRROR(0x000f) AM_READ_PORT("DSW2") /* DSW2 (inverted bits) */
@@ -237,6 +237,9 @@ static MACHINE_CONFIG_START( tutankhm, tutankhm_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) /* not sure about the visible area */
MCFG_SCREEN_UPDATE_DRIVER(tutankhm_state, screen_update_tutankhm)
+ MCFG_PALETTE_ADD("palette", 16)
+ MCFG_PALETTE_FORMAT(BBGGGRRR)
+
/* sound hardware */
MCFG_FRAGMENT_ADD(timeplt_sound)
MACHINE_CONFIG_END
@@ -316,5 +319,5 @@ ROM_END
*
*************************************/
-GAME( 1982, tutankhm, 0, tutankhm, tutankhm, driver_device, 0, ROT90, "Konami", "Tutankham", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS)
-GAME( 1982, tutankhms,tutankhm, tutankhm, tutankhm, driver_device, 0, ROT90, "Konami (Stern Electronics license)", "Tutankham (Stern Electronics)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_GRAPHICS)
+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)
diff --git a/src/mess/drivers/tutor.c b/src/mame/drivers/tutor.c
index 1978e64fdb0..1978e64fdb0 100644
--- a/src/mess/drivers/tutor.c
+++ b/src/mame/drivers/tutor.c
diff --git a/src/mess/drivers/tv950.c b/src/mame/drivers/tv950.c
index fe1cc3ad235..eeddfa630e9 100644
--- a/src/mess/drivers/tv950.c
+++ b/src/mame/drivers/tv950.c
@@ -67,4 +67,4 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS */
-COMP( 198?, tv950, 0, 0, tv950, tv950, driver_device, 0, "Televideo", "TV950", GAME_IS_SKELETON )
+COMP( 198?, tv950, 0, 0, tv950, tv950, driver_device, 0, "Televideo", "TV950", MACHINE_IS_SKELETON )
diff --git a/src/mess/drivers/tvc.c b/src/mame/drivers/tvc.c
index 682e1de9047..7199ef354e8 100644
--- a/src/mess/drivers/tvc.c
+++ b/src/mame/drivers/tvc.c
@@ -871,6 +871,6 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 1985, tvc64p, tvc64, 0, tvc, tvc, driver_device, 0, "Videoton", "TVC 64+", GAME_NOT_WORKING | GAME_NO_SOUND)
-COMP( 1985, tvc64pru, tvc64, 0, tvc, tvc64pru, driver_device, 0, "Videoton", "TVC 64+ (Russian)", GAME_NOT_WORKING | GAME_NO_SOUND)
+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)
diff --git a/src/mess/drivers/tvgame.c b/src/mame/drivers/tvgame.c
index 44ede341caf..44ede341caf 100644
--- a/src/mess/drivers/tvgame.c
+++ b/src/mame/drivers/tvgame.c
diff --git a/src/mame/drivers/twin16.c b/src/mame/drivers/twin16.c
index db0bfd2eaec..ca384c658a0 100644
--- a/src/mame/drivers/twin16.c
+++ b/src/mame/drivers/twin16.c
@@ -1269,18 +1269,18 @@ 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", GAME_SUPPORTS_SAVE )
-GAME( 1987, majuu, devilw, devilw, devilw, twin16_state, twin16, ROT0, "Konami", "Majuu no Ohkoku", GAME_SUPPORTS_SAVE )
-GAME( 1987, darkadv, devilw, devilw, darkadv, twin16_state, twin16, ROT0, "Konami", "Dark Adventure", GAME_SUPPORTS_SAVE )
-GAME( 1988, vulcan, 0, twin16, vulcan, twin16_state, twin16, ROT0, "Konami", "Vulcan Venture (New)", GAME_SUPPORTS_SAVE )
-GAME( 1988, vulcana, vulcan, twin16, vulcan, twin16_state, twin16, ROT0, "Konami", "Vulcan Venture (Old)", GAME_SUPPORTS_SAVE )
-GAME( 1988, vulcanb, vulcan, twin16, vulcan, twin16_state, twin16, ROT0, "Konami", "Vulcan Venture (Oldest)", GAME_SUPPORTS_SAVE )
-GAME( 1988, gradius2, vulcan, twin16, gradius2, twin16_state, twin16, ROT0, "Konami", "Gradius II - GOFER no Yabou (Japan New Ver.)", GAME_SUPPORTS_SAVE )
-GAME( 1988, gradius2a, vulcan, twin16, vulcan, twin16_state, twin16, ROT0, "Konami", "Gradius II - GOFER no Yabou (Japan Old Ver.)", GAME_SUPPORTS_SAVE )
-GAME( 1988, gradius2b, vulcan, twin16, vulcan, twin16_state, twin16, ROT0, "Konami", "Gradius II - GOFER no Yabou (Japan Older Ver.)", GAME_SUPPORTS_SAVE )
-
-GAME( 1988, fround, 0, fround, fround, fround_state, fround, ROT0, "Konami", "The Final Round (version M)", GAME_SUPPORTS_SAVE )
-GAME( 1988, froundl, fround, fround, fround, fround_state, fround, ROT0, "Konami", "The Final Round (version L)", GAME_SUPPORTS_SAVE )
-GAME( 1988, hpuncher, fround, twin16, fround, twin16_state, twin16, ROT0, "Konami", "Hard Puncher (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1989, miaj, mia, miaj, miaj, twin16_state, twin16, ROT0, "Konami", "M.I.A. - Missing in Action (version R) (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1989, cuebrickj, cuebrick, cuebrickj, cuebrickj, cuebrickj_state, cuebrickj, ROT0, "Konami", "Cue Brick (Japan)", GAME_SUPPORTS_SAVE )
+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/twinkle.c b/src/mame/drivers/twinkle.c
index bd2b4ac9d3c..1886a81481a 100644
--- a/src/mame/drivers/twinkle.c
+++ b/src/mame/drivers/twinkle.c
@@ -1329,20 +1329,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", GAME_IS_BIOS_ROOT )
-
-GAME( 1999, bmiidx, gq863, twinklex, twinklex, driver_device, 0, ROT0, "Konami", "beatmania IIDX (863 JAB)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
-GAME( 1999, bmiidxa, bmiidx, twinklex, twinklex, driver_device, 0, ROT0, "Konami", "beatmania IIDX (863 JAA)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
-GAME( 1999, bmiidxc, gq863, twinklex, twinklex, driver_device, 0, ROT0, "Konami", "beatmania IIDX with DDR 2nd Club Version (896 JAB)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
-GAME( 1999, bmiidxca, bmiidxc, twinklex, twinklex, driver_device, 0, ROT0, "Konami", "beatmania IIDX with DDR 2nd Club Version (896 JAA)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
-GAME( 1999, bmiidxs, gq863, twinklex, twinklex, driver_device, 0, ROT0, "Konami", "beatmania IIDX Substream (983 JAA)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_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)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
-GAME( 1999, bmiidx2, gq863, twinklei, twinklei, driver_device, 0, ROT0, "Konami", "beatmania IIDX 2nd style (GC985 JAA)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
-GAME( 2000, bmiidx3, gq863, twinklei, twinklei, driver_device, 0, ROT0, "Konami", "beatmania IIDX 3rd style (GC992 JAC)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
-GAME( 2000, bmiidx3a, bmiidx3, twinklei, twinklei, driver_device, 0, ROT0, "Konami", "beatmania IIDX 3rd style (GC992 JAA)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
-GAME( 2000, bmiidx4, gq863, twinklei, twinklei, driver_device, 0, ROT0, "Konami", "beatmania IIDX 4th style (GCA03 JAA)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
-GAME( 2001, bmiidx5, gq863, twinklei, twinklei, driver_device, 0, ROT0, "Konami", "beatmania IIDX 5th style (GCA17 JAA)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
-GAME( 2001, bmiidx6, gq863, twinklei, twinklei, driver_device, 0, ROT0, "Konami", "beatmania IIDX 6th style (GCB4U JAB)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
-GAME( 2001, bmiidx6a, bmiidx6, twinklei, twinklei, driver_device, 0, ROT0, "Konami", "beatmania IIDX 6th style (GCB4U JAA)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
-GAME( 2002, bmiidx7, gq863, twinklei, twinklei, driver_device, 0, ROT0, "Konami", "beatmania IIDX 7th style (GCB44 JAA)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
-GAME( 2002, bmiidx8, gq863, twinklei, twinklei, driver_device, 0, ROT0, "Konami", "beatmania IIDX 8th style (GCC44 JAA)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
+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 )
diff --git a/src/mame/drivers/twins.c b/src/mame/drivers/twins.c
index 7ef1ba2726f..24ad198daf3 100644
--- a/src/mame/drivers/twins.c
+++ b/src/mame/drivers/twins.c
@@ -620,7 +620,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)", GAME_SUPPORTS_SAVE )
-GAME( 1994, twinsa, twins, twinsa, twins, driver_device, 0, ROT0, "Electronic Devices", "Twins (set 2)", GAME_SUPPORTS_SAVE )
+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, spider, 0, spider, twins, driver_device, 0, ROT0, "Buena Vision", "Spider", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+GAME( 1994, spider, 0, spider, twins, driver_device, 0, ROT0, "Buena Vision", "Spider", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/tx0.c b/src/mame/drivers/tx0.c
index b00fcc1c714..d2a2865572e 100644
--- a/src/mess/drivers/tx0.c
+++ b/src/mame/drivers/tx0.c
@@ -125,7 +125,7 @@ static INPUT_PORTS_START( tx0 )
PORT_BIT( 0000002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle Switch Register Switch 16") PORT_CODE(KEYCODE_COMMA)
PORT_BIT( 0000001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Toggle Switch Register Switch 17") PORT_CODE(KEYCODE_STOP)
- PORT_START("TWR0") /* 3: typewriter codes 00-17 */
+ PORT_START("TWR.0") /* 3: typewriter codes 00-17 */
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E)
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("8") PORT_CODE(KEYCODE_8)
PORT_BIT(0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("| _") PORT_CODE(KEYCODE_SLASH)
@@ -140,7 +140,7 @@ static INPUT_PORTS_START( tx0 )
PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("U") PORT_CODE(KEYCODE_U)
PORT_BIT(0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2") PORT_CODE(KEYCODE_2)
- PORT_START("TWR1") /* 4: typewriter codes 20-37 */
+ PORT_START("TWR.1") /* 4: typewriter codes 20-37 */
PORT_BIT(0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(". )") PORT_CODE(KEYCODE_STOP)
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("D") PORT_CODE(KEYCODE_D)
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("5") PORT_CODE(KEYCODE_5)
@@ -156,7 +156,7 @@ static INPUT_PORTS_START( tx0 )
PORT_BIT(0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("- +") PORT_CODE(KEYCODE_MINUS)
PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("K") PORT_CODE(KEYCODE_K)
- PORT_START("TWR2") /* 5: typewriter codes 40-57 */
+ PORT_START("TWR.2") /* 5: typewriter codes 40-57 */
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("T") PORT_CODE(KEYCODE_T)
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Z)
PORT_BIT(0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Backspace") PORT_CODE(KEYCODE_BACKSPACE)
@@ -169,7 +169,7 @@ static INPUT_PORTS_START( tx0 )
PORT_BIT(0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("P") PORT_CODE(KEYCODE_P)
PORT_BIT(0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q)
- PORT_START("TWR3") /* 6: typewriter codes 60-77 */
+ PORT_START("TWR.3") /* 6: typewriter codes 60-77 */
PORT_BIT(0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("O") PORT_CODE(KEYCODE_O)
PORT_BIT(0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B)
PORT_BIT(0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("G") PORT_CODE(KEYCODE_G)
@@ -1408,11 +1408,10 @@ void tx0_state::tx0_keyboard()
int typewriter_transitions;
int charcode, lr;
- static const char *const twrnames[] = { "TWR0", "TWR1", "TWR2", "TWR3" };
for (i=0; i<4; i++)
{
- typewriter_keys[i] = ioport(twrnames[i])->read();
+ typewriter_keys[i] = m_twr[i]->read();
}
for (i=0; i<4; i++)
@@ -1428,7 +1427,7 @@ void tx0_state::tx0_keyboard()
previous LR */
lr = (1 << 17) | ((charcode & 040) << 10) | ((charcode & 020) << 8) | ((charcode & 010) << 6) | ((charcode & 004) << 4) | ((charcode & 002) << 2) | ((charcode & 001) << 1);
/* write modified LR */
- machine().device("maincpu")->state().set_state_int(TX0_LR, lr);
+ m_maincpu->set_state_int(TX0_LR, lr);
tx0_typewriter_drawchar(charcode); /* we want to echo input */
break;
}
@@ -1451,7 +1450,7 @@ INTERRUPT_GEN_MEMBER(tx0_state::tx0_interrupt)
/* read new state of control keys */
- control_keys = ioport("CSW")->read();
+ control_keys = m_csw->read();
if (control_keys & tx0_control)
{
@@ -1622,5 +1621,5 @@ 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)" , GAME_NO_SOUND_HW | GAME_NOT_WORKING)
-COMP( 1962, tx0_8kw, tx0_64kw, 0, tx0_8kw, tx0, tx0_state, tx0, "MIT", "TX-0 upgraded system (8 kWords of RAM)" , GAME_NO_SOUND_HW | GAME_NOT_WORKING)
+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.c b/src/mame/drivers/tx1.c
index 4300c9826e3..f573d8f06a0 100644
--- a/src/mame/drivers/tx1.c
+++ b/src/mame/drivers/tx1.c
@@ -1233,8 +1233,8 @@ ROM_END
*
*************************************/
-GAMEL( 1983, tx1, 0, tx1, tx1, driver_device, 0, ROT0, "Tatsumi (Atari/Namco/Taito license)", "TX-1 (World)", GAME_IMPERFECT_SOUND, layout_tx1 )
-GAMEL( 1983, tx1jb, tx1, tx1, tx1j, driver_device, 0, ROT0, "Tatsumi", "TX-1 (Japan rev. B)", GAME_IMPERFECT_SOUND, layout_tx1 )
-GAMEL( 1983, tx1jc, tx1, tx1, tx1j, driver_device, 0, ROT0, "Tatsumi", "TX-1 (Japan rev. C)", GAME_IMPERFECT_SOUND, layout_tx1 )
+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 )
diff --git a/src/mame/drivers/uapce.c b/src/mame/drivers/uapce.c
index 512b038c619..d0f565d2881 100644
--- a/src/mame/drivers/uapce.c
+++ b/src/mame/drivers/uapce.c
@@ -380,7 +380,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", GAME_IMPERFECT_SOUND )
-GAME( 1989, keith, 0, uapce, uapce, pce_common_state, pce_common, ROT0, "Hudson Soft", "Keith Courage In Alpha Zones", GAME_IMPERFECT_SOUND )
-GAME( 1989, aliencr, 0, uapce, uapce, pce_common_state, pce_common, ROT0, "Hudson Soft", "Alien Crush", GAME_IMPERFECT_SOUND )
-GAME( 1989, paclandp,0, uapce, uapce, pce_common_state, pce_common, ROT0, "Namco", "Pac-Land (United Amusements PC Engine)", GAME_IMPERFECT_SOUND )
+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 )
diff --git a/src/mess/drivers/uknc.c b/src/mame/drivers/uknc.c
index 4686ebff0c6..13b266ccb2b 100644
--- a/src/mess/drivers/uknc.c
+++ b/src/mame/drivers/uknc.c
@@ -58,12 +58,12 @@ UINT32 uknc_state::screen_update_uknc(screen_device &screen, bitmap_ind16 &bitma
static MACHINE_CONFIG_START( uknc, uknc_state )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", T11, 8000000)
- MCFG_T11_INITIAL_MODE(0x36ff) /* initial mode word has DAL15,14,11,8 pulled low */
+ MCFG_CPU_ADD("maincpu", K1801VM2, 8000000)
+ MCFG_T11_INITIAL_MODE(0x8000)
MCFG_CPU_PROGRAM_MAP(uknc_mem)
- MCFG_CPU_ADD("subcpu", T11, 6000000)
- MCFG_T11_INITIAL_MODE(0x36ff) /* initial mode word has DAL15,14,11,8 pulled low */
+ MCFG_CPU_ADD("subcpu", K1801VM2, 6000000)
+ MCFG_T11_INITIAL_MODE(0x8000)
MCFG_CPU_PROGRAM_MAP(uknc_sub_mem)
@@ -90,4 +90,4 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 1987, uknc, 0, 0, uknc, uknc, driver_device, 0, "<unknown>", "UKNC", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1987, uknc, 0, 0, uknc, uknc, driver_device, 0, "<unknown>", "UKNC", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/ultraman.c b/src/mame/drivers/ultraman.c
index 78ef2ee7a8f..93c6c67f7c6 100644
--- a/src/mame/drivers/ultraman.c
+++ b/src/mame/drivers/ultraman.c
@@ -200,6 +200,7 @@ static MACHINE_CONFIG_START( ultraman, ultraman_state )
MCFG_DEVICE_ADD("k051960", K051960, 0)
MCFG_GFX_PALETTE("palette")
+ MCFG_K051960_SCREEN_TAG("screen")
MCFG_K051960_CB(ultraman_state, sprite_callback)
MCFG_DEVICE_ADD("k051316_1", K051316, 0)
@@ -269,4 +270,4 @@ ROM_START( ultraman )
ROM_END
-GAME( 1991, ultraman, 0, ultraman, ultraman, driver_device, 0, ROT0, "Banpresto / Bandai", "Ultraman (Japan)", GAME_SUPPORTS_SAVE )
+GAME( 1991, ultraman, 0, ultraman, ultraman, driver_device, 0, ROT0, "Banpresto / Bandai", "Ultraman (Japan)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/undrfire.c b/src/mame/drivers/undrfire.c
index 57e1cb5a7e7..97d7d4fe49a 100644
--- a/src/mame/drivers/undrfire.c
+++ b/src/mame/drivers/undrfire.c
@@ -1156,6 +1156,6 @@ 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)", GAME_IMPERFECT_GRAPHICS, layout_cbombers )
-GAMEL(1994, cbombersj, cbombers, cbombers, cbombers, undrfire_state, cbombers, ROT0, "Taito Corporation", "Chase Bombers (Japan)", GAME_IMPERFECT_GRAPHICS, layout_cbombers )
-GAMEL(1994, cbombersp, cbombers, cbombers, cbombers, undrfire_state, cbombers, ROT0, "Taito Corporation", "Chase Bombers (Japan Prototype)", GAME_IMPERFECT_GRAPHICS, layout_cbombers )
+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/mess/drivers/unior.c b/src/mame/drivers/unior.c
index e3a612aa18c..e3013d53955 100644
--- a/src/mess/drivers/unior.c
+++ b/src/mame/drivers/unior.c
@@ -460,4 +460,4 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
-COMP( 19??, unior, radio86, 0, unior, unior, driver_device, 0, "<unknown>", "Unior", GAME_NOT_WORKING )
+COMP( 19??, unior, radio86, 0, unior, unior, driver_device, 0, "<unknown>", "Unior", MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/unistar.c b/src/mame/drivers/unistar.c
index 9d6bf243543..6fe5817fe7c 100644
--- a/src/mess/drivers/unistar.c
+++ b/src/mame/drivers/unistar.c
@@ -122,4 +122,4 @@ 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", GAME_IS_SKELETON )
+COMP( 198?, unistar, 0, 0, unistar, unistar, driver_device, 0, "Callan Data Systems", "Unistar 200 Terminal", MACHINE_IS_SKELETON )
diff --git a/src/mess/drivers/univac.c b/src/mame/drivers/univac.c
index 9e00fba122d..d26216c3bc5 100644
--- a/src/mess/drivers/univac.c
+++ b/src/mame/drivers/univac.c
@@ -211,4 +211,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1980, uts20, 0, 0, uts20, uts20, driver_device, 0, "Sperry Univac", "UTS-20", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/unixpc.c b/src/mame/drivers/unixpc.c
index 87899d29dcf..0372d6493d2 100644
--- a/src/mess/drivers/unixpc.c
+++ b/src/mame/drivers/unixpc.c
@@ -232,4 +232,4 @@ ROM_END
***************************************************************************/
// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS
-COMP( 1985, 3b1, 0, 0, unixpc, unixpc, driver_device, 0, "AT&T", "3B1", GAME_NOT_WORKING | GAME_NO_SOUND )
+COMP( 1985, 3b1, 0, 0, unixpc, unixpc, driver_device, 0, "AT&T", "3B1", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/unkfr.c b/src/mame/drivers/unkfr.c
index 4299196873d..296f58b3cbd 100644
--- a/src/mame/drivers/unkfr.c
+++ b/src/mame/drivers/unkfr.c
@@ -743,7 +743,7 @@ ROM_START( unkfra )
ROM_LOAD( "taker-over-008.bin", 0x0000, 0x008000, CRC(2dad1088) SHA1(b8bdf5bf4e0ef5bee44d1f7031b08e4e6a8ae5ca) )//looks a bit ACE ish, but no strings to make sure
ROM_END
-//GAME(19??, unkfr, 0, unkfr, unkfr, driver_device, 0, ROT0, "<unknown>", "Unknown Fruit Machine ROMs (set 1)", GAME_IS_SKELETON_MECHANICAL)
-//GAME(19??, unkfra, 0, unkfr, unkfr, driver_device, 0, ROT0, "<unknown>", "Unknown Fruit Machine ROMs (set 2)", GAME_IS_SKELETON_MECHANICAL)
+//GAME(19??, unkfr, 0, unkfr, unkfr, driver_device, 0, ROT0, "<unknown>", "Unknown Fruit Machine ROMs (set 1)", MACHINE_IS_SKELETON_MECHANICAL)
+//GAME(19??, unkfra, 0, unkfr, unkfr, driver_device, 0, ROT0, "<unknown>", "Unknown Fruit Machine ROMs (set 2)", MACHINE_IS_SKELETON_MECHANICAL)
#endif
diff --git a/src/mame/drivers/unkhorse.c b/src/mame/drivers/unkhorse.c
index 21584b91f23..920f5d3052d 100644
--- a/src/mame/drivers/unkhorse.c
+++ b/src/mame/drivers/unkhorse.c
@@ -48,7 +48,6 @@ public:
DECLARE_WRITE_LINE_MEMBER(timer_out);
virtual void machine_start();
- DECLARE_PALETTE_INIT(horse);
UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
@@ -67,13 +66,6 @@ void horse_state::machine_start()
***************************************************************************/
-PALETTE_INIT_MEMBER(horse_state, horse)
-{
- // palette is simply 3bpp
- for (int i = 0; i < 8; i++)
- palette.set_pen_color(i, pal1bit(i >> 2), pal1bit(i >> 1), pal1bit(i >> 0));
-}
-
UINT32 horse_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
for (int y = cliprect.min_y; y <= cliprect.max_y; y++)
@@ -223,8 +215,7 @@ static MACHINE_CONFIG_START( horse, horse_state )
MCFG_SCREEN_UPDATE_DRIVER(horse_state, screen_update)
MCFG_SCREEN_PALETTE("palette")
- MCFG_PALETTE_ADD("palette", 8)
- MCFG_PALETTE_INIT_OWNER(horse_state, horse)
+ MCFG_PALETTE_ADD_3BIT_BGR("palette")
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -252,4 +243,4 @@ ROM_START( unkhorse )
ROM_END
-GAME( 1981?, unkhorse, 0, horse, horse, driver_device, 0, ROT270, "<unknown>", "unknown Japanese horse gambling game", GAME_SUPPORTS_SAVE ) // copyright not shown, datecodes on pcb suggests early-1981
+GAME( 1981?, unkhorse, 0, horse, horse, driver_device, 0, ROT270, "<unknown>", "unknown Japanese horse gambling game", MACHINE_SUPPORTS_SAVE ) // copyright not shown, datecodes on pcb suggests early-1981
diff --git a/src/mame/drivers/upscope.c b/src/mame/drivers/upscope.c
index 81d972c5138..2e4d0b60eb6 100644
--- a/src/mame/drivers/upscope.c
+++ b/src/mame/drivers/upscope.c
@@ -361,4 +361,4 @@ DRIVER_INIT_MEMBER(upscope_state, upscope)
*
*************************************/
-GAME( 1986, upscope, 0, upscope, upscope, upscope_state, upscope, ORIENTATION_FLIP_X, "Grand Products", "Up Scope", GAME_IMPERFECT_SOUND )
+GAME( 1986, upscope, 0, upscope, upscope, upscope_state, upscope, ORIENTATION_FLIP_X, "Grand Products", "Up Scope", MACHINE_IMPERFECT_SOUND )
diff --git a/src/mame/drivers/usgames.c b/src/mame/drivers/usgames.c
index e1afbc65520..f391ff6d2a2 100644
--- a/src/mame/drivers/usgames.c
+++ b/src/mame/drivers/usgames.c
@@ -401,11 +401,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)", GAME_SUPPORTS_SAVE )
-GAME( 1988, superten, 0, usg32, usg83, driver_device, 0, ROT0, "U.S. Games", "Super Ten V8.3", GAME_SUPPORTS_SAVE )
-GAME( 1988, usg83x, superten, usg32, usg83, driver_device, 0, ROT0, "U.S. Games", "Super Ten V8.3X", GAME_SUPPORTS_SAVE ) /* "Experimental" version?? */
-GAME( 1988, usg82, superten, usg32, usg83, driver_device, 0, ROT0, "U.S. Games", "Super Ten V8.2" , GAME_SUPPORTS_SAVE )
-GAME( 1992, usgames, 0, usg185, usg83, driver_device, 0, ROT0, "U.S. Games", "Games V25.4X", GAME_SUPPORTS_SAVE )
-GAME( 1991, usg187c, usgames, usg185, usg83, driver_device, 0, ROT0, "U.S. Games", "Games V18.7C", GAME_SUPPORTS_SAVE )
-GAME( 1990, usg185, usgames, usg185, usg83, driver_device, 0, ROT0, "U.S. Games", "Games V18.5", GAME_SUPPORTS_SAVE )
-GAME( 1989, usg182, usgames, usg185, usg83, driver_device, 0, ROT0, "U.S. Games", "Games V18.2", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/ut88.c b/src/mame/drivers/ut88.c
index 029f929febe..029f929febe 100644
--- a/src/mess/drivers/ut88.c
+++ b/src/mame/drivers/ut88.c
diff --git a/src/mess/drivers/uzebox.c b/src/mame/drivers/uzebox.c
index 2193f129146..383e674be50 100644
--- a/src/mess/drivers/uzebox.c
+++ b/src/mame/drivers/uzebox.c
@@ -307,4 +307,4 @@ ROM_START( uzebox )
ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
-CONS(2010, uzebox, 0, 0, uzebox, uzebox, driver_device, 0, "Belogic", "Uzebox", GAME_IMPERFECT_SOUND | GAME_NOT_WORKING)
+CONS(2010, uzebox, 0, 0, uzebox, uzebox, driver_device, 0, "Belogic", "Uzebox", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING)
diff --git a/src/mess/drivers/v1050.c b/src/mame/drivers/v1050.c
index 09cd375fc23..8461bb815fc 100644
--- a/src/mess/drivers/v1050.c
+++ b/src/mame/drivers/v1050.c
@@ -1145,4 +1145,4 @@ 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", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE | GAME_NO_SOUND | GAME_IMPERFECT_KEYBOARD )
+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 )
diff --git a/src/mess/drivers/v6809.c b/src/mame/drivers/v6809.c
index be3572e17b7..1b408d95335 100644
--- a/src/mess/drivers/v6809.c
+++ b/src/mame/drivers/v6809.c
@@ -360,6 +360,7 @@ static MACHINE_CONFIG_START( v6809, v6809_state )
MCFG_MB8876_ADD("fdc", XTAL_16MHz / 16)
MCFG_FLOPPY_DRIVE_ADD("fdc:0", v6809_floppies, "525dd", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
MACHINE_CONFIG_END
/* ROM definition */
@@ -378,4 +379,4 @@ 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", GAME_NOT_WORKING )
+COMP( 1982, v6809, 0, 0, v6809, v6809, driver_device, 0, "Microkit", "Vegas 6809", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/vamphalf.c b/src/mame/drivers/vamphalf.c
index 87cdd763ad3..9ac27ab39f5 100644
--- a/src/mame/drivers/vamphalf.c
+++ b/src/mame/drivers/vamphalf.c
@@ -2986,27 +2986,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", GAME_SUPPORTS_SAVE )
-GAME( 1999, jmpbreak, 0, jmpbreak, common, vamphalf_state, jmpbreak, ROT0, "F2 System", "Jumping Break" , GAME_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)" , GAME_SUPPORTS_SAVE )
-GAME( 1999, luplup, suplup, suplup, common, vamphalf_state, luplup, ROT0, "Omega System", "Lup Lup Puzzle / Zhuan Zhuan Puzzle (version 3.0 / 990128)", GAME_SUPPORTS_SAVE )
-GAME( 1999, luplup29, suplup, suplup, common, vamphalf_state, luplup29, ROT0, "Omega System", "Lup Lup Puzzle / Zhuan Zhuan Puzzle (version 2.9 / 990108)", GAME_SUPPORTS_SAVE )
-GAME( 1999, puzlbang, suplup, suplup, common, vamphalf_state, puzlbang, ROT0, "Omega System", "Puzzle Bang Bang (Korea, version 2.9 / 990108)", GAME_SUPPORTS_SAVE )
-GAME( 1999, puzlbanga, suplup, suplup, common, vamphalf_state, puzlbang, ROT0, "Omega System", "Puzzle Bang Bang (Korea, version 2.8 / 990106)", GAME_SUPPORTS_SAVE )
-GAME( 1999, vamphalf, 0, vamphalf, common, vamphalf_state, vamphalf, ROT0, "Danbi / F2 System", "Vamf x1/2 (Europe)", GAME_SUPPORTS_SAVE )
-GAME( 1999, vamphalfk, vamphalf, vamphalf, common, vamphalf_state, vamphafk, ROT0, "Danbi / F2 System", "Vamp x1/2 (Korea)", GAME_SUPPORTS_SAVE )
-GAME( 2000, dquizgo2, 0, coolmini, common, vamphalf_state, dquizgo2, ROT0, "SemiCom", "Date Quiz Go Go Episode 2" , GAME_SUPPORTS_SAVE )
-GAME( 2000, misncrft, 0, misncrft, common, vamphalf_state, misncrft, ROT90, "Sun", "Mission Craft (version 2.7)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2000, misncrfta, misncrft, misncrft, common, vamphalf_state, misncrft, ROT90, "Sun", "Mission Craft (version 2.4)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2000, mrdig, 0, mrdig, common, vamphalf_state, mrdig, ROT0, "Sun", "Mr. Dig", GAME_SUPPORTS_SAVE )
-GAME( 2001, dtfamily, 0, coolmini, common, vamphalf_state, dtfamily, ROT0, "SemiCom", "Diet Family", GAME_SUPPORTS_SAVE )
-GAME( 2001, finalgdr, 0, finalgdr, finalgdr, vamphalf_state, finalgdr, ROT0, "SemiCom", "Final Godori (Korea, version 2.20.5915)", GAME_SUPPORTS_SAVE )
-GAME( 2001, mrkicker, 0, coolmini, common, vamphalf_state, mrkicker,ROT0, "SemiCom", "Mr. Kicker (F-E1-16-010 PCB)", GAME_SUPPORTS_SAVE )
-GAME( 2001, mrkickera, mrkicker, mrkickera,finalgdr, vamphalf_state, mrkickera, ROT0, "SemiCom", "Mr. Kicker (SEMICOM-003b PCB)", GAME_SUPPORTS_SAVE | GAME_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", GAME_SUPPORTS_SAVE )
-GAME( 2001, wivernwg, 0, wyvernwg, common, vamphalf_state, wyvernwg, ROT270, "SemiCom", "Wivern Wings", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2001, wyvernwg, wivernwg, wyvernwg, common, vamphalf_state, wyvernwg, ROT270, "SemiCom (Game Vision license)", "Wyvern Wings (set 1)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2001, wyvernwga, wivernwg, wyvernwg, common, vamphalf_state, wyvernwg, ROT270, "SemiCom (Game Vision license)", "Wyvern Wings (set 2)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 2001, aoh, 0, aoh, aoh, vamphalf_state, aoh, ROT0, "Unico", "Age Of Heroes - Silkroad 2 (v0.63 - 2001/02/07)", GAME_SUPPORTS_SAVE )
-GAME( 2001, boonggab, 0, boonggab, boonggab, vamphalf_state, boonggab, ROT270, "Taff System", "Boong-Ga Boong-Ga (Spank'em!)", GAME_SUPPORTS_SAVE )
-GAME( 199?, yorijori, 0, yorijori, common, vamphalf_state, yorijori, ROT0, "Golden Bell Entertainment", "Yori Jori Kuk Kuk", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_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.c b/src/mame/drivers/vaportra.c
index 4ea9921d1a9..4f30b993a32 100644
--- a/src/mame/drivers/vaportra.c
+++ b/src/mame/drivers/vaportra.c
@@ -847,7 +847,7 @@ DRIVER_INIT_MEMBER(vaportra_state,vaportra)
/******************************************************************************/
-GAME( 1989, vaportra, 0, vaportra, vaportra, vaportra_state, vaportra, ROT270, "Data East Corporation", "Vapor Trail - Hyper Offence Formation (World revision 1)", GAME_SUPPORTS_SAVE )
-GAME( 1989, vaportra3,vaportra, vaportra, vaportra, vaportra_state, vaportra, ROT270, "Data East Corporation", "Vapor Trail - Hyper Offence Formation (World revision 3?)", GAME_SUPPORTS_SAVE )
-GAME( 1989, vaportrau,vaportra, vaportra, vaportra, vaportra_state, vaportra, ROT270, "Data East USA", "Vapor Trail - Hyper Offence Formation (US)", GAME_SUPPORTS_SAVE )
-GAME( 1989, kuhga, vaportra, vaportra, vaportra, vaportra_state, vaportra, ROT270, "Data East Corporation", "Kuhga - Operation Code 'Vapor Trail' (Japan revision 3)", GAME_SUPPORTS_SAVE )
+GAME( 1989, vaportra, 0, vaportra, vaportra, vaportra_state, vaportra, ROT270, "Data East Corporation", "Vapor Trail - Hyper Offence Formation (World revision 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, vaportra3,vaportra, vaportra, vaportra, vaportra_state, vaportra, ROT270, "Data East Corporation", "Vapor Trail - Hyper Offence Formation (World revision 3?)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, vaportrau,vaportra, vaportra, vaportra, vaportra_state, vaportra, ROT270, "Data East USA", "Vapor Trail - Hyper Offence Formation (US)", MACHINE_SUPPORTS_SAVE )
+GAME( 1989, kuhga, vaportra, vaportra, vaportra, vaportra_state, vaportra, ROT270, "Data East Corporation", "Kuhga - Operation Code 'Vapor Trail' (Japan revision 3)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/vastar.c b/src/mame/drivers/vastar.c
index 105dc168696..f2f5b40fd54 100644
--- a/src/mame/drivers/vastar.c
+++ b/src/mame/drivers/vastar.c
@@ -649,8 +649,8 @@ ROM_START( pprobe )
ROM_END
-GAME( 1983, vastar, 0, vastar, vastar, driver_device, 0, ROT90, "Orca (Sesame Japan license)", "Vastar (set 1)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1983, vastar3, vastar, vastar, vastar, driver_device, 0, ROT90, "Orca (Sesame Japan license)", "Vastar (set 3)", GAME_SUPPORTS_SAVE )
-GAME( 1983, vastar4, vastar, vastar, vastar4,driver_device, 0, ROT90, "Orca (Sesame Japan license)", "Vastar (set 4)", GAME_SUPPORTS_SAVE )
-GAME( 1985, pprobe, 0, vastar, pprobe, driver_device, 0, ROT90, "Crux / Kyugo?", "Planet Probe (prototype?)", GAME_SUPPORTS_SAVE ) // has no Copyright, probably because Crux didn't have a trading name at this point?
+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?
diff --git a/src/mess/drivers/vax11.c b/src/mame/drivers/vax11.c
index d4e36a36ffd..acf6e607316 100644
--- a/src/mess/drivers/vax11.c
+++ b/src/mame/drivers/vax11.c
@@ -171,4 +171,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1984, vax785, 0, 0, vax11, vax11, driver_device, 0, "Digital Equipment Corporation", "VAX-11/785", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/vball.c b/src/mame/drivers/vball.c
index c3effdc0277..2522ed99919 100644
--- a/src/mame/drivers/vball.c
+++ b/src/mame/drivers/vball.c
@@ -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)", GAME_SUPPORTS_SAVE )
-GAME( 1988, vball2pj, vball, vball, vball2pj, driver_device, 0, ROT0, "Technos Japan", "U.S. Championship V'ball (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1988, vballb, vball, vball, vball, driver_device, 0, ROT0, "bootleg", "U.S. Championship V'ball (bootleg of US set)", GAME_SUPPORTS_SAVE )
-GAME( 1988, vball2pjb,vball, vball, vball, driver_device, 0, ROT0, "bootleg", "U.S. Championship V'ball (bootleg of Japan set)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/vboy.c b/src/mame/drivers/vboy.c
index 686f8f28d4d..897c592231c 100644
--- a/src/mess/drivers/vboy.c
+++ b/src/mame/drivers/vboy.c
@@ -1394,4 +1394,4 @@ 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", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND)
+CONS( 1995, vboy, 0, 0, vboy, vboy, driver_device, 0, "Nintendo", "Virtual Boy", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND)
diff --git a/src/mess/drivers/vc4000.c b/src/mame/drivers/vc4000.c
index 7eaf5302d6f..8e3c8d106fb 100644
--- a/src/mess/drivers/vc4000.c
+++ b/src/mame/drivers/vc4000.c
@@ -689,27 +689,27 @@ 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", GAME_IMPERFECT_GRAPHICS ) /* Germany, Austria, UK, Australia */
-CONS(1979, spc4000, vc4000, 0, vc4000, vc4000, driver_device, 0, "Grundig", "Super Play Computer 4000", GAME_IMPERFECT_GRAPHICS ) /* Germany, Austria */
-CONS(1979, cx3000tc, vc4000, 0, cx3000tc, vc4000, driver_device, 0, "Palson", "CX 3000 Tele Computer", GAME_IMPERFECT_GRAPHICS ) /* Spain */
-CONS(1979, tvc4000, vc4000, 0, vc4000, vc4000, driver_device, 0, "Koerting", "TVC-4000", GAME_IMPERFECT_GRAPHICS ) /* Argentina */
-CONS(1976, 1292apvs, 0, vc4000, vc4000, vc4000, driver_device, 0, "Radofin", "1292 Advanced Programmable Video System", GAME_IMPERFECT_GRAPHICS )/* Europe */
-CONS(1976, 1392apvs, 1292apvs, 0, vc4000, vc4000, driver_device, 0, "Radofin", "1392 Advanced Programmable Video System", GAME_IMPERFECT_GRAPHICS )/* Europe */
-CONS(1979, mpu1000, 1292apvs, 0, mpu1000, vc4000, driver_device, 0, "Acetronic", "MPU-1000", GAME_IMPERFECT_GRAPHICS ) /* Europe */
-CONS(1979, mpu2000, 1292apvs, 0, mpu1000, vc4000, driver_device, 0, "Acetronic", "MPU-2000", GAME_IMPERFECT_GRAPHICS ) /* Europe */
-CONS(1978, pp1292, 1292apvs, 0, vc4000, vc4000, driver_device, 0, "Audio Sonic", "PP-1292 Advanced Programmable Video System", GAME_IMPERFECT_GRAPHICS )/* Europe */
-CONS(1978, pp1392, 1292apvs, 0, vc4000, vc4000, driver_device, 0, "Audio Sonic", "PP-1392 Advanced Programmable Video System", GAME_IMPERFECT_GRAPHICS )/* Europe */
-CONS(1979, f1392, 1292apvs, 0, vc4000, vc4000, driver_device, 0, "Fountain", "Fountain 1392", GAME_IMPERFECT_GRAPHICS ) /* New Zealand */
-CONS(1979, fforce2, 1292apvs, 0, vc4000, vc4000, driver_device, 0, "Fountain", "Fountain Force 2", GAME_IMPERFECT_GRAPHICS ) /* New Zealand, Australia */
-CONS(1979, hmg1292, 1292apvs, 0, vc4000, vc4000, driver_device, 0, "Hanimex", "HMG 1292", GAME_IMPERFECT_GRAPHICS ) /* Europe */
-CONS(1979, hmg1392, 1292apvs, 0, vc4000, vc4000, driver_device, 0, "Hanimex", "HMG 1392", GAME_IMPERFECT_GRAPHICS ) /* Europe */
-CONS(1979, lnsy1392, 1292apvs, 0, vc4000, vc4000, driver_device, 0, "Lansay", "Lansay 1392", GAME_IMPERFECT_GRAPHICS ) /* Europe */
-CONS(1979, vc6000, 1292apvs, 0, vc4000, vc4000, driver_device, 0, "Prinztronic", "VC 6000", GAME_IMPERFECT_GRAPHICS ) /* UK */
-CONS(1979, database, 0, vc4000, database, vc4000, driver_device, 0, "Voltmace", "Voltmace Database", GAME_IMPERFECT_GRAPHICS ) /* UK */
-CONS(1979, vmdtbase, database, 0, database, vc4000, driver_device, 0, "Videomaster", "Videomaster Database Games-Computer", GAME_IMPERFECT_GRAPHICS )/* UK */
-CONS(1979, rwtrntcs, 0, vc4000, rwtrntcs, vc4000, driver_device, 0, "Rowtron", "Rowtron Television Computer System", GAME_IMPERFECT_GRAPHICS )/* UK */
-CONS(1979, telngtcs, rwtrntcs, 0, rwtrntcs, vc4000, driver_device, 0, "Teleng", "Teleng Television Computer System", GAME_IMPERFECT_GRAPHICS )/* UK */
-CONS(1979, krvnjvtv, 0, vc4000, vc4000, vc4000, driver_device, 0, "SOE", "OC Jeu Video TV Karvan", GAME_IMPERFECT_GRAPHICS ) /* France */
-CONS(1979, oc2000, krvnjvtv, 0, vc4000, vc4000, driver_device, 0, "SOE", "OC-2000", GAME_IMPERFECT_GRAPHICS ) /* France */
-CONS(1980, mpt05, 0, vc4000, vc4000, vc4000, driver_device, 0, "ITMC", "MPT-05", GAME_IMPERFECT_GRAPHICS ) /* France */
-CONS(1979, elektor, 0, 0, elektor, elektor, driver_device, 0, "Elektor", "Elektor TV Games Computer", GAME_IMPERFECT_GRAPHICS )
+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(1979, elektor, 0, 0, elektor, elektor, driver_device, 0, "Elektor", "Elektor TV Games Computer", MACHINE_IMPERFECT_GRAPHICS )
diff --git a/src/mame/drivers/vcombat.c b/src/mame/drivers/vcombat.c
index 59f2e785435..98818ffa0d2 100644
--- a/src/mame/drivers/vcombat.c
+++ b/src/mame/drivers/vcombat.c
@@ -679,5 +679,5 @@ ROM_START( shadfgtr )
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", GAME_NOT_WORKING )
-GAME( 1993, shadfgtr, 0, shadfgtr, shadfgtr, vcombat_state, shadfgtr, ROT0, "Dutech Inc.", "Shadow Fighters", GAME_NOT_WORKING )
+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/mess/drivers/vcs80.c b/src/mame/drivers/vcs80.c
index b4691f25af4..cd6e9512825 100644
--- a/src/mess/drivers/vcs80.c
+++ b/src/mame/drivers/vcs80.c
@@ -254,4 +254,4 @@ DRIVER_INIT_MEMBER(vcs80_state,vcs80)
/* System Drivers */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 1983, vcs80, 0, 0, vcs80, vcs80, vcs80_state, vcs80, "Eckhard Schiller", "VCS-80", GAME_SUPPORTS_SAVE | GAME_NO_SOUND)
+COMP( 1983, vcs80, 0, 0, vcs80, vcs80, vcs80_state, vcs80, "Eckhard Schiller", "VCS-80", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/vd.c b/src/mame/drivers/vd.c
index 3a8619aeab7..fa9336eae35 100644
--- a/src/mame/drivers/vd.c
+++ b/src/mame/drivers/vd.c
@@ -193,6 +193,6 @@ ROM_START(ator)
ROM_END
#endif
-//GAME(19??, ator, 0, vd, vd, driver_device, 0, ROT0, "Videodens", "Ator", GAME_IS_SKELETON_MECHANICAL)
-GAME(1986, break86, 0, vd, vd, driver_device, 0, ROT0, "Videodens", "Break '86", GAME_IS_SKELETON_MECHANICAL)
-GAME(1986, papillon, 0, vd, vd, driver_device, 0, ROT0, "Videodens", "Papillon", GAME_IS_SKELETON_MECHANICAL)
+//GAME(19??, ator, 0, vd, vd, driver_device, 0, ROT0, "Videodens", "Ator", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1986, break86, 0, vd, vd, driver_device, 0, ROT0, "Videodens", "Break '86", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1986, papillon, 0, vd, vd, driver_device, 0, ROT0, "Videodens", "Papillon", MACHINE_IS_SKELETON_MECHANICAL)
diff --git a/src/mess/drivers/vector06.c b/src/mame/drivers/vector06.c
index b283c590f51..8546573f221 100644
--- a/src/mess/drivers/vector06.c
+++ b/src/mame/drivers/vector06.c
@@ -33,7 +33,7 @@ ADDRESS_MAP_END
/* Input ports */
static INPUT_PORTS_START( vector06 )
- PORT_START("LINE0")
+ PORT_START("LINE.0")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Tab") PORT_CODE(KEYCODE_TAB)
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Del") PORT_CODE(KEYCODE_DEL)
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Enter") PORT_CODE(KEYCODE_ENTER)
@@ -42,7 +42,7 @@ static INPUT_PORTS_START( vector06 )
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Up") PORT_CODE(KEYCODE_UP)
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Right") PORT_CODE(KEYCODE_RIGHT)
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Down") PORT_CODE(KEYCODE_DOWN)
- PORT_START("LINE1")
+ PORT_START("LINE.1")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Home") PORT_CODE(KEYCODE_HOME)
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("PgUp") PORT_CODE(KEYCODE_PGUP)
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Esc") PORT_CODE(KEYCODE_ESC)
@@ -51,7 +51,7 @@ static INPUT_PORTS_START( vector06 )
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F3") PORT_CODE(KEYCODE_F3)
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F4") PORT_CODE(KEYCODE_F4)
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F5") PORT_CODE(KEYCODE_F5)
- PORT_START("LINE2")
+ PORT_START("LINE.2")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("0") PORT_CODE(KEYCODE_0)
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("1") PORT_CODE(KEYCODE_1)
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("2") PORT_CODE(KEYCODE_2)
@@ -60,7 +60,7 @@ static INPUT_PORTS_START( vector06 )
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("5") PORT_CODE(KEYCODE_5)
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6") PORT_CODE(KEYCODE_6)
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("7") PORT_CODE(KEYCODE_7)
- PORT_START("LINE3")
+ PORT_START("LINE.3")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("8") PORT_CODE(KEYCODE_8)
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("9") PORT_CODE(KEYCODE_9)
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("'") PORT_CODE(KEYCODE_INSERT)
@@ -69,7 +69,7 @@ static INPUT_PORTS_START( vector06 )
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("=") PORT_CODE(KEYCODE_EQUALS)
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(".") PORT_CODE(KEYCODE_STOP)
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("/") PORT_CODE(KEYCODE_SLASH)
- PORT_START("LINE4")
+ PORT_START("LINE.4")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("@") PORT_CODE(KEYCODE_QUOTE)
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("A") PORT_CODE(KEYCODE_A)
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B)
@@ -78,7 +78,7 @@ static INPUT_PORTS_START( vector06 )
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("E") PORT_CODE(KEYCODE_E)
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("F") PORT_CODE(KEYCODE_F)
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("G") PORT_CODE(KEYCODE_G)
- PORT_START("LINE5")
+ PORT_START("LINE.5")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_H)
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("I") PORT_CODE(KEYCODE_I)
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("J") PORT_CODE(KEYCODE_J)
@@ -87,7 +87,7 @@ static INPUT_PORTS_START( vector06 )
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("M") PORT_CODE(KEYCODE_M)
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("N") PORT_CODE(KEYCODE_N)
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("O") PORT_CODE(KEYCODE_O)
- PORT_START("LINE6")
+ PORT_START("LINE.6")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("P") PORT_CODE(KEYCODE_P)
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Q") PORT_CODE(KEYCODE_Q)
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("R") PORT_CODE(KEYCODE_R)
@@ -96,7 +96,7 @@ static INPUT_PORTS_START( vector06 )
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("U") PORT_CODE(KEYCODE_U)
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("V") PORT_CODE(KEYCODE_V)
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("W") PORT_CODE(KEYCODE_W)
- PORT_START("LINE7")
+ PORT_START("LINE.7")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("X") PORT_CODE(KEYCODE_X)
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Y)
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Z") PORT_CODE(KEYCODE_Z)
@@ -105,7 +105,7 @@ static INPUT_PORTS_START( vector06 )
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("]") PORT_CODE(KEYCODE_CLOSEBRACE)
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("~") PORT_CODE(KEYCODE_TILDE)
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Space") PORT_CODE(KEYCODE_SPACE)
- PORT_START("LINE8")
+ PORT_START("LINE.8")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_UNUSED)
@@ -227,7 +227,7 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 1987, vector06, 0, 0, vector06, vector06, driver_device, 0, "<unknown>", "Vector 06c", GAME_NOT_WORKING)
-COMP( 1987, vec1200, vector06, 0, vector06, vector06, driver_device, 0, "<unknown>", "Vector 1200", GAME_NOT_WORKING)
-COMP( 1987, pk6128c, vector06, 0, vector06, vector06, driver_device, 0, "<unknown>", "PK-6128c", GAME_NOT_WORKING)
-COMP( 1987, krista2, vector06, 0, vector06, vector06, driver_device, 0, "<unknown>", "Krista-2", GAME_NOT_WORKING)
+COMP( 1987, vector06, 0, 0, vector06, vector06, driver_device, 0, "<unknown>", "Vector 06c", MACHINE_NOT_WORKING)
+COMP( 1987, vec1200, vector06, 0, vector06, vector06, driver_device, 0, "<unknown>", "Vector 1200", MACHINE_NOT_WORKING)
+COMP( 1987, pk6128c, vector06, 0, vector06, vector06, driver_device, 0, "<unknown>", "PK-6128c", MACHINE_NOT_WORKING)
+COMP( 1987, krista2, vector06, 0, vector06, vector06, driver_device, 0, "<unknown>", "Krista-2", MACHINE_NOT_WORKING)
diff --git a/src/mess/drivers/vector4.c b/src/mame/drivers/vector4.c
index 6d2a1643831..52a1e8c5938 100644
--- a/src/mess/drivers/vector4.c
+++ b/src/mame/drivers/vector4.c
@@ -117,4 +117,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND )
+COMP( 19??, vector4, 0, 0, vector4, vector4, driver_device, 0, "Vector Graphics", "Vector 4", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/vectrex.c b/src/mame/drivers/vectrex.c
index 297f55cb28c..e8c5ff105d7 100644
--- a/src/mame/drivers/vectrex.c
+++ b/src/mame/drivers/vectrex.c
@@ -238,4 +238,4 @@ 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)
-GAME(1984, raaspec, 0, raaspec, raaspec, vectrex_state, vectrex, ROT270, "Roy Abel & Associates", "Spectrum I+", GAME_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.c b/src/mame/drivers/vega.c
index fe1ba7868c8..717a077053e 100644
--- a/src/mame/drivers/vega.c
+++ b/src/mame/drivers/vega.c
@@ -887,4 +887,4 @@ DRIVER_INIT_MEMBER(vega_state, vega)
membank("bank1")->configure_entries(0, 2, &ROM[0x1000], 0x800);
}
-GAME( 1982, vega, 0, vega, vega, vega_state, vega, ROT270, "Olympia", "Vega", GAME_NOT_WORKING|GAME_IMPERFECT_GRAPHICS )
+GAME( 1982, vega, 0, vega, vega, vega_state, vega, ROT270, "Olympia", "Vega", MACHINE_NOT_WORKING|MACHINE_IMPERFECT_GRAPHICS )
diff --git a/src/mame/drivers/vegaeo.c b/src/mame/drivers/vegaeo.c
index 5501ac77de3..ff3c3ab668d 100644
--- a/src/mame/drivers/vegaeo.c
+++ b/src/mame/drivers/vegaeo.c
@@ -331,4 +331,4 @@ DRIVER_INIT_MEMBER(vegaeo_state,vegaeo)
init_speedup();
}
-GAME( 2002, crazywar, 0, vega, crazywar, vegaeo_state, vegaeo, ROT0, "Eolith", "Crazy War", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 2002, crazywar, 0, vega, crazywar, vegaeo_state, vegaeo, ROT0, "Eolith", "Crazy War", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/vegas.c b/src/mame/drivers/vegas.c
index ba3ebe5ee0f..1c80c3730de 100644
--- a/src/mame/drivers/vegas.c
+++ b/src/mame/drivers/vegas.c
@@ -464,7 +464,9 @@ public:
m_nile_regs(*this, "nile_regs"),
m_rombase(*this, "rombase"),
m_dcs(*this, "dcs"),
- m_ioasic(*this, "ioasic") { }
+ m_ioasic(*this, "ioasic"),
+ m_io_analog(*this, "AN")
+ { }
required_device<mips3_device> m_maincpu;
required_device<m48t37_device> m_timekeeper;
@@ -475,6 +477,7 @@ public:
required_shared_ptr<UINT32> m_rombase;
required_device<dcs_audio_device> m_dcs;
required_device<midway_ioasic_device> m_ioasic;
+ optional_ioport_array<8> m_io_analog;
UINT16 m_nile_irq_state;
UINT16 m_ide_irq_state;
@@ -1172,7 +1175,7 @@ WRITE32_MEMBER( vegas_state::nile_w )
logerror("Unexpected value: timer %d is prescaled\n", which);
if (scale != 0)
m_timer[which]->adjust(TIMER_PERIOD * scale, which);
- if (LOG_TIMERS) logerror("Starting timer %d at a rate of %d Hz\n", which, (int)ATTOSECONDS_TO_HZ((TIMER_PERIOD * (m_nile_regs[offset + 1] + 1)).attoseconds));
+ if (LOG_TIMERS) logerror("Starting timer %d at a rate of %d Hz\n", which, (int)ATTOSECONDS_TO_HZ((TIMER_PERIOD * (m_nile_regs[offset + 1] + 1)).attoseconds()));
}
/* timer disabled? */
@@ -1442,11 +1445,9 @@ READ32_MEMBER( vegas_state::analog_port_r )
WRITE32_MEMBER( vegas_state::analog_port_w )
{
- static const char *const portnames[] = { "AN0", "AN1", "AN2", "AN3", "AN4", "AN5", "AN6", "AN7" };
-
if (data < 8 || data > 15)
logerror("%08X:Unexpected analog port select = %08X\n", safe_pc(), data);
- m_pending_analog_read = ioport(portnames[data & 7])->read_safe(0);
+ m_pending_analog_read = m_io_analog[data & 7] ? m_io_analog[data & 7]->read() : 0;
}
@@ -1708,6 +1709,9 @@ static ADDRESS_MAP_START( vegas_map_8mb, AS_PROGRAM, 32, vegas_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x00000000, 0x007fffff) AM_RAM AM_SHARE("rambase")
AM_RANGE(0x1fa00000, 0x1fa00fff) AM_READWRITE(nile_r, nile_w) AM_SHARE("nile_regs")
+
+ AM_RANGE(0x01700000, 0x017fffff) AM_ROM AM_REGION("update", 0)
+
AM_RANGE(0x1fc00000, 0x1fc7ffff) AM_ROM AM_REGION("user1", 0) AM_SHARE("rombase")
ADDRESS_MAP_END
@@ -1716,6 +1720,10 @@ static ADDRESS_MAP_START( vegas_map_32mb, AS_PROGRAM, 32, vegas_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x00000000, 0x01ffffff) AM_RAM AM_SHARE("rambase")
AM_RANGE(0x1fa00000, 0x1fa00fff) AM_READWRITE(nile_r, nile_w) AM_SHARE("nile_regs")
+
+
+ AM_RANGE(0x01700000, 0x017fffff) AM_ROM AM_REGION("update", 0)
+
AM_RANGE(0x1fc00000, 0x1fc7ffff) AM_ROM AM_REGION("user1", 0) AM_SHARE("rombase")
ADDRESS_MAP_END
@@ -1940,28 +1948,28 @@ static INPUT_PORTS_START( warfa )
PORT_DIPSETTING( 0x4000, "Medium Res 512x384" )
PORT_DIPSETTING( 0x0000, "VGA Res 640x480" )
- PORT_START("AN0")
+ PORT_START("AN.0")
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1)
- PORT_START("AN1")
+ PORT_START("AN.1")
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1)
- PORT_START("AN2")
+ PORT_START("AN.2")
PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
- PORT_START("AN3")
+ PORT_START("AN.3")
PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
- PORT_START("AN4")
+ PORT_START("AN.4")
PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
- PORT_START("AN5")
+ PORT_START("AN.5")
PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
- PORT_START("AN6")
+ PORT_START("AN.6")
PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
- PORT_START("AN7")
+ PORT_START("AN.7")
PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
INPUT_PORTS_END
@@ -1984,28 +1992,28 @@ static INPUT_PORTS_START( roadburn )
PORT_DIPSETTING( 0x0200, "Medium Res 512x384" )
PORT_DIPSETTING( 0x0000, "VGA Res 640x480" )
- PORT_START("AN0") /* Steer */
+ PORT_START("AN.0") /* Steer */
PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10, 0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5)
- PORT_START("AN1") /* Accel */
+ PORT_START("AN.1") /* Accel */
PORT_BIT( 0xff, 0x80, IPT_PEDAL ) PORT_MINMAX(0x00, 0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(20)
- PORT_START("AN2") /* Brake */
+ PORT_START("AN.2") /* Brake */
PORT_BIT( 0xff, 0x80, IPT_PEDAL2 ) PORT_MINMAX(0x00, 0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(100)
- PORT_START("AN3")
+ PORT_START("AN.3")
PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
- PORT_START("AN4")
+ PORT_START("AN.4")
PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
- PORT_START("AN5")
+ PORT_START("AN.5")
PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
- PORT_START("AN6")
+ PORT_START("AN.6")
PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
- PORT_START("AN7")
+ PORT_START("AN.7")
PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
INPUT_PORTS_END
@@ -2080,28 +2088,28 @@ static INPUT_PORTS_START( sf2049 )
PORT_DIPSETTING( 0x0200, "Medium Res 512x384" )
PORT_DIPSETTING( 0x0300, "VGA Res 640x480" )
- PORT_START("AN0") /* Steer */
+ PORT_START("AN.0") /* Steer */
PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10, 0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5)
- PORT_START("AN1") /* Accel */
+ PORT_START("AN.1") /* Accel */
PORT_BIT( 0xff, 0x80, IPT_PEDAL ) PORT_MINMAX(0x00, 0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(20)
- PORT_START("AN2") /* Brake */
+ PORT_START("AN.2") /* Brake */
PORT_BIT( 0xff, 0x80, IPT_PEDAL2 ) PORT_MINMAX(0x00, 0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(100)
- PORT_START("AN3")
+ PORT_START("AN.3")
PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
- PORT_START("AN4")
+ PORT_START("AN.4")
PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
- PORT_START("AN5")
+ PORT_START("AN.5")
PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
- PORT_START("AN6")
+ PORT_START("AN.6")
PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
- PORT_START("AN7")
+ PORT_START("AN.7")
PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
INPUT_PORTS_END
@@ -2111,28 +2119,28 @@ static INPUT_PORTS_START( sf2049se )
PORT_MODIFY("DIPS")
- PORT_START("AN0") /* Steer */
+ PORT_START("AN.0") /* Steer */
PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10, 0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5)
- PORT_START("AN1") /* Accel */
+ PORT_START("AN.1") /* Accel */
PORT_BIT( 0xff, 0x80, IPT_PEDAL ) PORT_MINMAX(0x00, 0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(20)
- PORT_START("AN2") /* Brake */
+ PORT_START("AN.2") /* Brake */
PORT_BIT( 0xff, 0x80, IPT_PEDAL2 ) PORT_MINMAX(0x00, 0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(100)
- PORT_START("AN3")
+ PORT_START("AN.3")
PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
- PORT_START("AN4")
+ PORT_START("AN.4")
PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
- PORT_START("AN5")
+ PORT_START("AN.5")
PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
- PORT_START("AN6")
+ PORT_START("AN.6")
PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
- PORT_START("AN7")
+ PORT_START("AN.7")
PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
INPUT_PORTS_END
@@ -2142,28 +2150,28 @@ static INPUT_PORTS_START( sf2049te )
PORT_MODIFY("DIPS")
- PORT_START("AN0") /* Steer */
+ PORT_START("AN.0") /* Steer */
PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10, 0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5)
- PORT_START("AN1") /* Accel */
+ PORT_START("AN.1") /* Accel */
PORT_BIT( 0xff, 0x80, IPT_PEDAL ) PORT_MINMAX(0x00, 0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(20)
- PORT_START("AN2") /* Brake */
+ PORT_START("AN.2") /* Brake */
PORT_BIT( 0xff, 0x80, IPT_PEDAL2 ) PORT_MINMAX(0x00, 0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(100)
- PORT_START("AN3")
+ PORT_START("AN.3")
PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
- PORT_START("AN4")
+ PORT_START("AN.4")
PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
- PORT_START("AN5")
+ PORT_START("AN.5")
PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
- PORT_START("AN6")
+ PORT_START("AN.6")
PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
- PORT_START("AN7")
+ PORT_START("AN.7")
PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
INPUT_PORTS_END
@@ -2173,28 +2181,28 @@ static INPUT_PORTS_START( cartfury )
PORT_MODIFY("DIPS")
- PORT_START("AN0") /* Steer */
+ PORT_START("AN.0") /* Steer */
PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x10, 0xf0) PORT_SENSITIVITY(25) PORT_KEYDELTA(5)
- PORT_START("AN1") /* Accel */
+ PORT_START("AN.1") /* Accel */
PORT_BIT( 0xff, 0x80, IPT_PEDAL ) PORT_MINMAX(0x00, 0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(20)
- PORT_START("AN2") /* Brake */
+ PORT_START("AN.2") /* Brake */
PORT_BIT( 0xff, 0x80, IPT_PEDAL2 ) PORT_MINMAX(0x00, 0xff) PORT_SENSITIVITY(25) PORT_KEYDELTA(100)
- PORT_START("AN3")
+ PORT_START("AN.3")
PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
- PORT_START("AN4")
+ PORT_START("AN.4")
PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
- PORT_START("AN5")
+ PORT_START("AN.5")
PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
- PORT_START("AN6")
+ PORT_START("AN.6")
PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
- PORT_START("AN7")
+ PORT_START("AN.7")
PORT_BIT( 0xff, 0x80, IPT_SPECIAL )
INPUT_PORTS_END
@@ -2446,9 +2454,14 @@ MACHINE_CONFIG_END
*
*************************************/
+ // there is a socket next to the main bios roms for updates, this is what the update region is.
+
+
ROM_START( gauntleg )
- ROM_REGION32_LE( 0x80000, "user1", 0 ) /* EPROM 1.5 11/17/1998 */
- ROM_LOAD( "legend15.bin", 0x000000, 0x80000, CRC(a8372d70) SHA1(d8cd4fd4d7007ee38bb58b5a818d0f83043d5a48) )
+ ROM_REGION32_LE( 0x80000, "user1", 0 )
+ ROM_LOAD( "legend15.bin", 0x000000, 0x80000, CRC(a8372d70) SHA1(d8cd4fd4d7007ee38bb58b5a818d0f83043d5a48) ) // EPROM Boot code. Version: Nov 17 1998 19:18:28 / 1.5 Nov 17 1998 19:21:49
+
+ ROM_REGION32_LE( 0x100000, "update", ROMREGION_ERASEFF )
DISK_REGION( "ide:0:hdd:image" ) /* Guts 1.5 1/14/1999 Game 1/14/1999 */
DISK_IMAGE( "gauntleg", 0, SHA1(66eb70e2fba574a7abe54be8bd45310654b24b08) )
@@ -2459,11 +2472,24 @@ ROM_END
ROM_START( gauntleg12 )
- ROM_REGION32_LE( 0x80000, "user1", 0 ) /* EPROM 1.3 9/25/1998 */
- ROM_LOAD( "legend12.bin", 0x000000, 0x80000, CRC(34674c5f) SHA1(92ec1779f3ab32944cbd953b6e1889503a57794b) )
+ ROM_REGION32_LE( 0x80000, "user1", 0 )
+ ROM_LOAD( "legend13.bin", 0x000000, 0x80000, CRC(34674c5f) SHA1(92ec1779f3ab32944cbd953b6e1889503a57794b) ) // EPROM Boot code. Version: Sep 25 1998 18:34:43 / 1.3 Sep 25 1998 18:33:45
+ ROM_LOAD( "legend14.bin", 0x000000, 0x80000, CRC(66869402) SHA1(bf470e0b9198b80f8baf8b9432a7e1df8c7d18ca) ) // EPROM Boot code. Version: Oct 30 1998 17:48:21 / 1.4 Oct 30 1998 17:44:29
+
+ ROM_REGION32_LE( 0x100000, "update", ROMREGION_ERASEFF )
+ ROM_SYSTEM_BIOS( 0, "noupdate", "No Update Rom" )
+
+ ROM_SYSTEM_BIOS( 1, "up16_1", "Disk Update 1.2 to 1.6 Step 1 of 3" )
+ ROMX_LOAD("12to16.1.bin", 0x000000, 0x100000, CRC(253c6bf2) SHA1(5e129576afe2bc4c638242e010735655d269a747), ROM_BIOS(2))
+ ROM_SYSTEM_BIOS( 2, "up16_2", "Disk Update 1.2 to 1.6 Step 2 of 3" )
+ ROMX_LOAD("12to16.2.bin", 0x000000, 0x100000, CRC(15b1fe78) SHA1(532c4937b55befcc3a8cb25b0282d63e206fba47), ROM_BIOS(3))
+ ROM_SYSTEM_BIOS( 3, "up16_3", "Disk Update 1.2 to 1.6 Step 3 of 3" )
+ ROMX_LOAD("12to16.3.bin", 0x000000, 0x100000, CRC(1027e54f) SHA1(a841f5cc5b022ddfaf70c97a64d1582f0a2ca70e), ROM_BIOS(4))
+
+
DISK_REGION( "ide:0:hdd:image" ) /* Guts 1.4 10/22/1998 Main 10/23/1998 */
- DISK_IMAGE( "gauntl12", 0, SHA1(c8208e3ce3b02a271dc6b089efa98dd996b66ce0) )
+ DISK_IMAGE( "gauntl12", 0, SHA1(62917fbd692d004bc391287349041ebe669385cf) ) // compressed with -chs 4969,16,63 (which is apparently correct for a Quantum FIREBALL 2.5 GB and allows the update program to work)
ROM_REGION16_LE( 0x10000, "dcs", 0 ) /* Vegas SIO boot ROM */
ROM_LOAD16_BYTE( "vegassio.bin", 0x000000, 0x8000, CRC(d1470e23) SHA1(f6e8405cfa604528c0224401bc374a6df9caccef) )
@@ -2474,6 +2500,9 @@ ROM_START( gauntdl )
ROM_REGION32_LE( 0x80000, "user1", 0 ) /* EPROM 1.7 12/14/1999 */
ROM_LOAD( "gauntdl.bin", 0x000000, 0x80000, CRC(3d631518) SHA1(d7f5a3bc109a19c9c7a711d607ff87e11868b536) )
+ ROM_REGION32_LE( 0x100000, "update", ROMREGION_ERASEFF )
+
+
DISK_REGION( "ide:0:hdd:image" ) /* Guts: 1.9 3/17/2000 Game 5/9/2000 */
DISK_IMAGE( "gauntdl", 0, SHA1(ba3af48171e727c2f7232c06dcf8411cbcf14de8) )
@@ -2486,6 +2515,9 @@ ROM_START( gauntdl24 )
ROM_REGION32_LE( 0x80000, "user1", 0 ) /* EPROM 1.7 12/14/1999 */
ROM_LOAD( "gauntdl.bin", 0x000000, 0x80000, CRC(3d631518) SHA1(d7f5a3bc109a19c9c7a711d607ff87e11868b536) )
+ ROM_REGION32_LE( 0x100000, "update", ROMREGION_ERASEFF )
+
+
DISK_REGION( "ide:0:hdd:image" ) /* Guts: 1.9 3/17/2000 Game 3/19/2000 */
DISK_IMAGE( "gauntd24", 0, SHA1(3e055794d23d62680732e906cfaf9154765de698) )
@@ -2498,6 +2530,9 @@ ROM_START( warfa )
ROM_REGION32_LE( 0x80000, "user1", 0 ) /* EPROM 1.9 3/25/1999 */
ROM_LOAD( "warboot.v19", 0x000000, 0x80000, CRC(b0c095cd) SHA1(d3b8cccdca83f0ecb49aa7993864cfdaa4e5c6f0) )
+ ROM_REGION32_LE( 0x100000, "update", ROMREGION_ERASEFF )
+
+
DISK_REGION( "ide:0:hdd:image" ) /* Guts 1.3 4/20/1999 Game 4/20/1999 */
DISK_IMAGE( "warfa", 0, SHA1(87f8a8878cd6be716dbd6c68fb1bc7f564ede484) )
@@ -2505,11 +2540,28 @@ ROM_START( warfa )
ROM_LOAD16_BYTE( "warsnd.106", 0x000000, 0x8000, CRC(d1470e23) SHA1(f6e8405cfa604528c0224401bc374a6df9caccef) )
ROM_END
+ROM_START( warfaa )
+ ROM_REGION32_LE( 0x80000, "user1", 0 ) /* EPROM 1.6 Jan 14 1999 */
+ ROM_LOAD( "warboot.v16", 0x000000, 0x80000, CRC(1c44b3a3) SHA1(e81c15d7c9bc19078787d39c7f5e48eab003c5f4) )
+
+ ROM_REGION32_LE( 0x100000, "update", ROMREGION_ERASEFF )
+
+
+ DISK_REGION( "ide:0:hdd:image" ) /* GUTS 1.1 Mar 16 1999, GAME Mar 16 1999 */
+ DISK_IMAGE( "warfaa", 0, SHA1(b443ba68003f8492e5c20156e0d3091fe51e9224) )
+
+ ROM_REGION16_LE( 0x10000, "dcs", 0 ) /* Vegas SIO boot ROM */
+ ROM_LOAD16_BYTE( "warsnd.106", 0x000000, 0x8000, CRC(d1470e23) SHA1(f6e8405cfa604528c0224401bc374a6df9caccef) )
+ROM_END
+
ROM_START( tenthdeg )
ROM_REGION32_LE( 0x80000, "user1", 0 )
ROM_LOAD( "tenthdeg.bio", 0x000000, 0x80000, CRC(1cd2191b) SHA1(a40c48f3d6a9e2760cec809a79a35abe762da9ce) )
+ ROM_REGION32_LE( 0x100000, "update", ROMREGION_ERASEFF )
+
+
DISK_REGION( "ide:0:hdd:image" ) /* Guts 5/26/1998 Main 8/25/1998 */
DISK_IMAGE( "tenthdeg", 0, SHA1(41a1a045a2d118cf6235be2cc40bf16dbb8be5d1) )
@@ -2522,6 +2574,9 @@ ROM_START( roadburn )
ROM_REGION32_LE( 0x80000, "user1", 0 ) /* EPROM 2.6 4/22/1999 */
ROM_LOAD( "rbmain.bin", 0x000000, 0x80000, CRC(060e1aa8) SHA1(2a1027d209f87249fe143500e721dfde7fb5f3bc) )
+ ROM_REGION32_LE( 0x100000, "update", ROMREGION_ERASEFF )
+
+
DISK_REGION( "ide:0:hdd:image" ) /* Guts 4/22/1999 Game 4/22/1999 */
DISK_IMAGE( "roadburn", 0, SHA1(a62870cceafa6357d7d3505aca250c3f16087566) )
ROM_END
@@ -2529,9 +2584,16 @@ ROM_END
ROM_START( nbashowt )
ROM_REGION32_LE( 0x80000, "user1", 0 )
- ROM_LOAD( "nbau27.100", 0x000000, 0x80000, CRC(ff5d620d) SHA1(8f07567929f40a2269a42495dfa9dd5edef688fe) )
+ ROM_LOAD( "showtime_mar15_1999.u27", 0x000000, 0x80000, CRC(ff5d620d) SHA1(8f07567929f40a2269a42495dfa9dd5edef688fe) ) // 16:09:14 Mar 15 1999 BIOS FOR SHOWTIME USING BANSHEE / 16:09:01 Mar 15 1999. POST FOR SHOWTIME USING BANSHEE
+
+ ROM_REGION32_LE( 0x100000, "update", ROMREGION_ERASEFF )
+
DISK_REGION( "ide:0:hdd:image" )
+ // various strings from this image
+ // SHOWTIME REV 2.0
+ // BUILD DATE: Apr 25 1999 (diag.exe?)
+ // BUILD DATE: Apr 21 1999 (game?)
DISK_IMAGE( "nbashowt", 0, SHA1(f7c56bc3dcbebc434de58034986179ae01127f87) )
ROM_REGION16_LE( 0x10000, "dcs", 0 ) /* Vegas SIO boot ROM */
@@ -2541,20 +2603,58 @@ ROM_END
ROM_START( nbanfl )
ROM_REGION32_LE( 0x80000, "user1", 0 )
- ROM_LOAD( "u27nflnba.bin", 0x000000, 0x80000, CRC(6a9bd382) SHA1(18b942df6af86ea944c24166dbe88148334eaff9) )
-// ROM_LOAD( "bootnflnba.bin", 0x000000, 0x80000, CRC(3def7053) SHA1(8f07567929f40a2269a42495dfa9dd5edef688fe) )
+ ROM_LOAD( "blitz00_sep22_1999.u27", 0x000000, 0x80000, CRC(6a9bd382) SHA1(18b942df6af86ea944c24166dbe88148334eaff9) ) // 16:00:32 Sep 22 1999 BIOS FOR BLITZ00 USING BANSHEE / 16:00:26 Sep 22 1999 POST FOR BLITZ00 USING BANSHEE
+// ROM_LOAD( "bootnflnba.bin", 0x000000, 0x80000, CRC(3def7053) SHA1(8f07567929f40a2269a42495dfa9dd5edef688fe) ) // 1 byte different to above (0x51b95 is 0x1b instead of 0x18)
+ ROM_LOAD( "blitz00_nov30_1999.u27", 0x000000, 0x80000, CRC(4242bf14) SHA1(c1fcec67d7463df5f41afc89f22c3b4484279534) ) // 15:10:49 Nov 30 1999 BIOS FOR BLITZ00 USING BANSHEE / 15:10:43 Nov 30 1999 POST FOR BLITZ00 USING BANSHEE
+
+ ROM_REGION32_LE( 0x100000, "update", ROMREGION_ERASEFF )
+
DISK_REGION( "ide:0:hdd:image" )
+ // various strings from this image
+ //NBA SHOWTIME 2.1
+ //BUILD DATE: Sep 22 1999 (diag.exe?)
+ //BUILD DATE: Sep 21 1999 (game?)
DISK_IMAGE( "nbanfl", 0, SHA1(f60c627f85f1bf58f2ea674063736a1e516e7e9e) )
ROM_REGION16_LE( 0x10000, "dcs", 0 ) /* Vegas SIO boot ROM */
ROM_LOAD16_BYTE( "vegassio.bin", 0x000000, 0x8000, CRC(d1470e23) SHA1(f6e8405cfa604528c0224401bc374a6df9caccef) )
ROM_END
+// I'm not sure if NBA Showtime: NBA on NBC Gold was a standalone release, or the version with NBA Showtime: NBA on NBC Gold is actually 'Sports Station'
+// it's possible the boot rom and CHD are mismatched here
+ROM_START( nbagold )
+ ROM_REGION32_LE( 0x80000, "user1", 0 )
+ ROM_LOAD( "nbagold_jan10_2000.u27", 0x000000, 0x80000, CRC(6768e802) SHA1(d994e3efe14f57e261841134ddd1489fa67d418b) ) // 11:29:11 Jan 10 2000. BIOS FOR NBAGOLD USING BANSHEE / 11:23:58 Jan 10 2000. POST FOR NBAGOLD USING BANSHEE
+
+ ROM_REGION32_LE( 0x100000, "update", ROMREGION_ERASEFF )
+
+
+ DISK_REGION( "ide:0:hdd:image" )
+ // various strings from this image
+ //NBA SHOWTIME GOLD 3.00
+ //BUILD DATE Feb 18 2000 (diag.exe)
+ //BUILD DATE:Feb 17 2000 (game?)
+ //BUILD DATE:Feb 10 2000 (something else?)
+ DISK_IMAGE( "nbanfl3", 0, SHA1(19a51346ce5ae4e06e8dff3eb4bed59ec1ee855f))
+ // these both contain the same strings / build dates, same thing with different user data / drive sizes?
+// DISK_IMAGE( "nbanfl27", 0, SHA1(da371d27e2fbceec493e2203055e0c1399eaf3b9) )
+// DISK_IMAGE( "sportstn", 0, SHA1(9442feefaeb5ae4a090422e937615f8a2d8e8f31) )
+
+
+ ROM_REGION16_LE( 0x10000, "dcs", 0 ) /* Vegas SIO boot ROM */
+ ROM_LOAD16_BYTE( "vegassio.bin", 0x000000, 0x8000, CRC(d1470e23) SHA1(f6e8405cfa604528c0224401bc374a6df9caccef) )
+
+ // also a PIC?
+ROM_END
+
ROM_START( cartfury )
ROM_REGION32_LE( 0x80000, "user1", 0 )
- ROM_LOAD( "bootu27", 0x000000, 0x80000, CRC(c44550a2) SHA1(ad30f1c3382ff2f5902a4cbacbb1f0c4e37f42f9) )
+ ROM_LOAD( "cart_mar8_2000.u27", 0x000000, 0x80000, CRC(c44550a2) SHA1(ad30f1c3382ff2f5902a4cbacbb1f0c4e37f42f9) ) // 10:40:17 Mar 8 2000 BIOS FOR CART USING VOODOO3 / 10:39:55 Mar 8 2000 POST FOR CART USING VOODOO3
+
+ ROM_REGION32_LE( 0x100000, "update", ROMREGION_ERASEFF )
+
DISK_REGION( "ide:0:hdd:image" )
DISK_IMAGE( "cartfury", 0, SHA1(4c5bc2803297ea9a191bbd8b002d0e46b4ae1563) )
@@ -2568,6 +2668,9 @@ ROM_START( sf2049 )
ROM_REGION32_LE( 0x80000, "user1", 0 ) /* EPROM 1.02 7/9/1999 */
ROM_LOAD( "sf2049.u27", 0x000000, 0x80000, CRC(174ba8fe) SHA1(baba83b811eca659f00514a008a86ef0ac9680ee) )
+ ROM_REGION32_LE( 0x100000, "update", ROMREGION_ERASEFF )
+
+
DISK_REGION( "ide:0:hdd:image" ) /* Guts 1.03 9/3/1999 Game 9/8/1999 */
DISK_IMAGE( "sf2049", 0, SHA1(9e0661b8566a6c78d18c59c11cd3a6628d025405) )
ROM_END
@@ -2577,6 +2680,9 @@ ROM_START( sf2049se )
ROM_REGION32_LE( 0x80000, "user1", 0 )
ROM_LOAD( "sf2049se.u27", 0x000000, 0x80000, CRC(da4ecd9c) SHA1(2574ff3d608ebcc59a63cf6dea13ee7650ae8921) )
+ ROM_REGION32_LE( 0x100000, "update", ROMREGION_ERASEFF )
+
+
DISK_REGION( "ide:0:hdd:image" )
DISK_IMAGE( "sf2049se", 0, SHA1(7b27a8ce2a953050ce267548bb7160b41f3e8054) )
ROM_END
@@ -2586,6 +2692,9 @@ ROM_START( sf2049te )
ROM_REGION32_LE( 0x80000, "user1", 0 )
ROM_LOAD( "sf2049te.u27", 0x000000, 0x80000, CRC(cc7c8601) SHA1(3f37dbd1b32b3ac5caa300725468e8e426f0fb83) )
+ ROM_REGION32_LE( 0x100000, "update", ROMREGION_ERASEFF )
+
+
DISK_REGION( "ide:0:hdd:image" )
DISK_IMAGE( "sf2049te", 0, SHA1(625aa36436587b7bec3e7db1d19793b760e2ea51) )
ROM_END
@@ -2678,26 +2787,30 @@ 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)", GAME_SUPPORTS_SAVE )
-GAME( 1998, gauntleg12, gauntleg, gauntleg, gauntleg, vegas_state, gauntleg, ROT0, "Atari Games", "Gauntlet Legends (version 1.2)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1998, tenthdeg, 0, tenthdeg, tenthdeg, vegas_state, tenthdeg, ROT0, "Atari Games", "Tenth Degree (prototype)", GAME_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)", GAME_SUPPORTS_SAVE )
-GAME( 1999, gauntdl24,gauntdl, gauntdl, gauntdl, vegas_state, gauntdl, ROT0, "Midway Games", "Gauntlet Dark Legacy (version DL 2.4)", GAME_SUPPORTS_SAVE )
-GAME( 1999, warfa, 0, warfa, warfa, vegas_state, warfa, ROT0, "Atari Games", "War: The Final Assault", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
+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 )
+
/* Durango + DSIO + Voodoo 2 */
-GAME( 1999, roadburn, 0, roadburn, roadburn, vegas_state, roadburn, ROT0, "Atari Games", "Road Burners", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
+GAME( 1999, roadburn, 0, roadburn, roadburn, vegas_state, roadburn, ROT0, "Atari Games", "Road Burners", 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", GAME_NO_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1999, nbanfl, 0, nbanfl, nbashowt, vegas_state, nbanfl, ROT0, "Midway Games", "NBA Showtime / NFL Blitz 2000", GAME_NO_SOUND | GAME_NOT_WORKING | GAME_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", GAME_NO_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1998, sf2049se, sf2049, sf2049se, sf2049se, vegas_state, sf2049se, ROT0, "Atari Games", "San Francisco Rush 2049: Special Edition", GAME_NO_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1998, sf2049te, sf2049, sf2049te, sf2049te, vegas_state, sf2049te, ROT0, "Atari Games", "San Francisco Rush 2049: Tournament Edition", GAME_NO_SOUND | GAME_NOT_WORKING | GAME_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", GAME_NO_SOUND | GAME_NOT_WORKING | GAME_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.c b/src/mame/drivers/vendetta.c
index e468f581e81..cee29989869 100644
--- a/src/mame/drivers/vendetta.c
+++ b/src/mame/drivers/vendetta.c
@@ -795,13 +795,13 @@ DRIVER_INIT_MEMBER(vendetta_state,esckids)
-GAME( 1991, vendetta, 0, vendetta, vendet4p, vendetta_state, vendetta, ROT0, "Konami", "Vendetta (World, 4 Players, ver. T)", GAME_SUPPORTS_SAVE )
-GAME( 1991, vendettar, vendetta, vendetta, vendet4p, vendetta_state, vendetta, ROT0, "Konami", "Vendetta (US, 4 Players, ver. R)", GAME_SUPPORTS_SAVE )
-GAME( 1991, vendettaz, vendetta, vendetta, vendet4p, vendetta_state, vendetta, ROT0, "Konami", "Vendetta (Asia, 4 Players, ver. Z)", GAME_SUPPORTS_SAVE )
-GAME( 1991, vendetta2p, vendetta, vendetta, vendetta, vendetta_state, vendetta, ROT0, "Konami", "Vendetta (World, 2 Players, ver. W)", GAME_SUPPORTS_SAVE )
-GAME( 1991, vendetta2peba,vendetta,vendetta, vendetta, vendetta_state, vendetta, ROT0, "Konami", "Vendetta (World, 2 Players, ver. EB-A?)", GAME_SUPPORTS_SAVE )
-GAME( 1991, vendetta2pu, vendetta, vendetta, vendetta, vendetta_state, vendetta, ROT0, "Konami", "Vendetta (Asia, 2 Players, ver. U)", GAME_SUPPORTS_SAVE )
-GAME( 1991, vendetta2pd, vendetta, vendetta, vendetta, vendetta_state, vendetta, ROT0, "Konami", "Vendetta (Asia, 2 Players, ver. D)", GAME_SUPPORTS_SAVE )
-GAME( 1991, vendettaj, vendetta, vendetta, vendetta, vendetta_state, vendetta, ROT0, "Konami", "Crime Fighters 2 (Japan, 2 Players, ver. P)", GAME_SUPPORTS_SAVE )
-GAME( 1991, esckids, 0, esckids, esckids, vendetta_state, esckids, ROT0, "Konami", "Escape Kids (Asia, 4 Players)", GAME_SUPPORTS_SAVE )
-GAME( 1991, esckidsj, esckids, esckids, esckidsj, vendetta_state, esckids, ROT0, "Konami", "Escape Kids (Japan, 2 Players)", GAME_SUPPORTS_SAVE )
+GAME( 1991, vendetta, 0, vendetta, vendet4p, vendetta_state, vendetta, ROT0, "Konami", "Vendetta (World, 4 Players, ver. T)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, vendettar, vendetta, vendetta, vendet4p, vendetta_state, vendetta, ROT0, "Konami", "Vendetta (US, 4 Players, ver. R)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, vendettaz, vendetta, vendetta, vendet4p, vendetta_state, vendetta, ROT0, "Konami", "Vendetta (Asia, 4 Players, ver. Z)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, vendetta2p, vendetta, vendetta, vendetta, vendetta_state, vendetta, ROT0, "Konami", "Vendetta (World, 2 Players, ver. W)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, vendetta2peba,vendetta,vendetta, vendetta, vendetta_state, vendetta, ROT0, "Konami", "Vendetta (World, 2 Players, ver. EB-A?)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, vendetta2pu, vendetta, vendetta, vendetta, vendetta_state, vendetta, ROT0, "Konami", "Vendetta (Asia, 2 Players, ver. U)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, vendetta2pd, vendetta, vendetta, vendetta, vendetta_state, vendetta, ROT0, "Konami", "Vendetta (Asia, 2 Players, ver. D)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, vendettaj, vendetta, vendetta, vendetta, vendetta_state, vendetta, ROT0, "Konami", "Crime Fighters 2 (Japan, 2 Players, ver. P)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, esckids, 0, esckids, esckids, vendetta_state, esckids, ROT0, "Konami", "Escape Kids (Asia, 4 Players)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, esckidsj, esckids, esckids, esckidsj, vendetta_state, esckids, ROT0, "Konami", "Escape Kids (Japan, 2 Players)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/vertigo.c b/src/mame/drivers/vertigo.c
index fb6377f1e13..87b297f5165 100644
--- a/src/mame/drivers/vertigo.c
+++ b/src/mame/drivers/vertigo.c
@@ -221,4 +221,4 @@ ROM_END
*
*************************************/
-GAME( 1986, topgunnr, 0, vertigo, vertigo, driver_device, 0, ROT0, "Exidy", "Top Gunner (Exidy)", GAME_SUPPORTS_SAVE )
+GAME( 1986, topgunnr, 0, vertigo, vertigo, driver_device, 0, ROT0, "Exidy", "Top Gunner (Exidy)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/vg5k.c b/src/mame/drivers/vg5k.c
index cd5ac5fb277..8cbf24c352f 100644
--- a/src/mess/drivers/vg5k.c
+++ b/src/mame/drivers/vg5k.c
@@ -418,4 +418,4 @@ 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", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
+COMP( 1984, vg5k, 0, 0, vg5k, vg5k, vg5k_state, vg5k, "Philips", "VG-5000", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/vic10.c b/src/mame/drivers/vic10.c
index 539bc69940e..d34232c93bd 100644
--- a/src/mess/drivers/vic10.c
+++ b/src/mame/drivers/vic10.c
@@ -675,4 +675,4 @@ ROM_END
// GAME DRIVERS
//**************************************************************************
-COMP( 1982, vic10, 0, 0, vic10, vic10, driver_device, 0, "Commodore Business Machines", "VIC-10 / Max Machine / UltiMax (NTSC)", GAME_SUPPORTS_SAVE )
+COMP( 1982, vic10, 0, 0, vic10, vic10, driver_device, 0, "Commodore Business Machines", "VIC-10 / Max Machine / UltiMax (NTSC)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/vic20.c b/src/mame/drivers/vic20.c
index 93f6e1b6d32..498e22c9b11 100644
--- a/src/mess/drivers/vic20.c
+++ b/src/mame/drivers/vic20.c
@@ -853,7 +853,7 @@ ROM_END
//**************************************************************************
// 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)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-COMP( 1981, vic20, vic1001, 0, ntsc, vic20, driver_device, 0, "Commodore Business Machines", "VIC-20 (NTSC)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-COMP( 1981, vic20p, vic1001, 0, pal, vic20, driver_device, 0, "Commodore Business Machines", "VIC-20 / VC-20 (PAL)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-COMP( 1981, vic20_se, vic1001, 0, pal, vic20s, driver_device, 0, "Commodore Business Machines", "VIC-20 (Sweden/Finland)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/vicdual.c b/src/mame/drivers/vicdual.c
index 3a1148fe2ec..f327a895cb2 100644
--- a/src/mame/drivers/vicdual.c
+++ b/src/mame/drivers/vicdual.c
@@ -186,7 +186,7 @@ CUSTOM_INPUT_MEMBER(vicdual_state::get_timer_value)
int vicdual_state::is_cabinet_color()
{
- return (ioport(COLOR_BW_PORT_TAG)->read_safe(0) & 1) ? 0 : 1;
+ return ((m_color_bw ? m_color_bw->read() : 0) & 1) ? 0 : 1;
}
@@ -266,8 +266,8 @@ READ8_MEMBER(vicdual_state::depthch_io_r)
{
UINT8 ret = 0;
- if (offset & 0x01) ret = ioport("IN0")->read();
- if (offset & 0x08) ret = ioport("IN1")->read();
+ if (offset & 0x01) ret = m_in0->read();
+ if (offset & 0x08) ret = m_in1->read();
return ret;
}
@@ -347,8 +347,8 @@ READ8_MEMBER(vicdual_state::safari_io_r)
{
UINT8 ret = 0;
- if (offset & 0x01) ret = ioport("IN0")->read();
- if (offset & 0x08) ret = ioport("IN1")->read();
+ if (offset & 0x01) ret = m_in0->read();
+ if (offset & 0x08) ret = m_in1->read();
return ret;
}
@@ -430,8 +430,8 @@ READ8_MEMBER(vicdual_state::frogs_io_r)
{
UINT8 ret = 0;
- if (offset & 0x01) ret = ioport("IN0")->read();
- if (offset & 0x08) ret = ioport("IN1")->read();
+ if (offset & 0x01) ret = m_in0->read();
+ if (offset & 0x08) ret = m_in1->read();
return ret;
}
@@ -541,8 +541,8 @@ READ8_MEMBER(vicdual_state::headon_io_r)
{
UINT8 ret = 0;
- if (offset & 0x01) ret = ioport("IN0")->read();
- if (offset & 0x08) ret = ioport("IN1")->read();
+ if (offset & 0x01) ret = m_in0->read();
+ if (offset & 0x08) ret = m_in1->read();
return ret;
}
@@ -552,9 +552,9 @@ READ8_MEMBER(vicdual_state::sspaceat_io_r)
{
UINT8 ret = 0;
- if (offset & 0x01) ret = ioport("IN0")->read();
- if (offset & 0x04) ret = ioport("IN1")->read();
- if (offset & 0x08) ret = ioport("IN2")->read();
+ if (offset & 0x01) ret = m_in0->read();
+ if (offset & 0x04) ret = m_in1->read();
+ if (offset & 0x08) ret = m_in2->read();
return ret;
}
@@ -800,10 +800,10 @@ READ8_MEMBER(vicdual_state::headon2_io_r)
{
UINT8 ret = 0;
- if (offset & 0x01) ret = ioport("IN0")->read();
+ if (offset & 0x01) ret = m_in0->read();
if (offset & 0x02) { /* schematics show this as in input port, but never read from */ }
- if (offset & 0x04) ret = ioport("IN1")->read();
- if (offset & 0x08) ret = ioport("IN2")->read();
+ if (offset & 0x04) ret = m_in1->read();
+ if (offset & 0x08) ret = m_in2->read();
if (offset & 0x12) logerror("********* Read from port %x\n", offset);
return ret;
@@ -1289,14 +1289,12 @@ ADDRESS_MAP_END
/* several of the games' lives DIPs are spread across two input ports */
CUSTOM_INPUT_MEMBER(vicdual_state::fake_lives_r)
{
- static const char *const portnames[] = { "FAKE_LIVES1", "FAKE_LIVES2" };
-
/* use the low byte for the bitmask */
UINT8 bit_mask = ((FPTR)param) & 0xff;
/* and use d8 for the port */
int port = ((FPTR)param) >> 8 & 1;
- return (ioport(portnames[port])->read_safe(0) & bit_mask) ? 0 : 1;
+ return ((m_fake_lives[port] ? m_fake_lives[port]->read() : 0) & bit_mask) ? 0 : 1;
}
@@ -1341,7 +1339,7 @@ static INPUT_PORTS_START( invho2 )
PORT_COIN_DEFAULT
- PORT_START("FAKE_LIVES1")
+ PORT_START("FAKE_LIVES.0")
PORT_DIPNAME( 0x03, 0x01, "Head On 2 Lives" ) PORT_DIPLOCATION("SW1:1,2")
PORT_DIPSETTING( 0x00, "2" )
PORT_DIPSETTING( 0x01, "3" )
@@ -1353,7 +1351,7 @@ static INPUT_PORTS_START( invho2 )
reads IN3 bit 3 instead of bit 2.
Note that the manual only lists setting it to 3 or 4.
*/
- PORT_START("FAKE_LIVES2")
+ PORT_START("FAKE_LIVES.1")
PORT_DIPNAME( 0x03, 0x03, "Invinco Lives" ) PORT_DIPLOCATION("SW1:3,4")
PORT_DIPSETTING( 0x03, "3" )
PORT_DIPSETTING( 0x02, "4" )
@@ -1404,14 +1402,14 @@ static INPUT_PORTS_START( carhntds )
PORT_COIN_DEFAULT
- PORT_START("FAKE_LIVES1")
+ PORT_START("FAKE_LIVES.0")
PORT_DIPNAME( 0x03, 0x01, "Car Hunt Lives" ) PORT_DIPLOCATION("SW1:1,2")
PORT_DIPSETTING( 0x03, "1" )
PORT_DIPSETTING( 0x02, "2" )
PORT_DIPSETTING( 0x01, "3" )
PORT_DIPSETTING( 0x00, "4" )
- PORT_START("FAKE_LIVES2")
+ PORT_START("FAKE_LIVES.1")
PORT_DIPNAME( 0x03, 0x03, "Deep Scan Lives" ) PORT_DIPLOCATION("SW1:3,4")
PORT_DIPSETTING( 0x02, "1" )
PORT_DIPSETTING( 0x01, "2" )
@@ -1462,14 +1460,14 @@ static INPUT_PORTS_START( invds )
PORT_COIN_DEFAULT
// SW1 @ C1, 6-pos (where are 5 & 6?)
- PORT_START("FAKE_LIVES1")
+ PORT_START("FAKE_LIVES.0")
PORT_DIPNAME( 0x03, 0x03, "Invinco Lives" ) PORT_DIPLOCATION("SW1:1,2")
PORT_DIPSETTING( 0x03, "3" )
PORT_DIPSETTING( 0x02, "4" )
PORT_DIPSETTING( 0x01, "5" )
PORT_DIPSETTING( 0x00, "6" )
- PORT_START("FAKE_LIVES2")
+ PORT_START("FAKE_LIVES.1")
PORT_DIPNAME( 0x03, 0x01, "Deep Scan Lives" ) PORT_DIPLOCATION("SW1:3,4")
PORT_DIPSETTING( 0x02, "2" )
PORT_DIPSETTING( 0x01, "3" )
@@ -1523,7 +1521,7 @@ static INPUT_PORTS_START( sspacaho )
PORT_COIN_DEFAULT
- PORT_START("FAKE_LIVES1")
+ PORT_START("FAKE_LIVES.0")
PORT_DIPNAME( 0x03, 0x03, "Space Attack Lives" ) PORT_DIPLOCATION("SW1:1,2")
PORT_DIPSETTING( 0x03, "3" )
PORT_DIPSETTING( 0x02, "4" )
@@ -1763,7 +1761,7 @@ static INPUT_PORTS_START( brdrline )
PORT_COIN_DEFAULT
- PORT_START("FAKE_LIVES1")
+ PORT_START("FAKE_LIVES.0")
PORT_DIPNAME( 0x07, 0x01, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2,3")
PORT_DIPSETTING( 0x01, "3" )
PORT_DIPSETTING( 0x02, "4" )
@@ -1838,7 +1836,7 @@ static INPUT_PORTS_START( pulsar )
PORT_COIN_DEFAULT
- PORT_START("FAKE_LIVES1")
+ PORT_START("FAKE_LIVES.0")
PORT_DIPNAME( 0x03, 0x02, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:1,2")
PORT_DIPSETTING( 0x00, "2" )
PORT_DIPSETTING( 0x02, "3" )
@@ -1943,7 +1941,7 @@ static INPUT_PORTS_START( alphaho )
PORT_COIN_DEFAULT
- PORT_START("FAKE_LIVES1")
+ PORT_START("FAKE_LIVES.0")
PORT_DIPNAME( 0x03, 0x03, "Alpha Fighter Lives" ) PORT_DIPLOCATION("SW1:1,2")
PORT_DIPSETTING( 0x03, "3" )
PORT_DIPSETTING( 0x02, "4" )
@@ -2230,8 +2228,8 @@ READ8_MEMBER(vicdual_state::nsub_io_r)
{
UINT8 ret = 0;
- if (offset & 0x01) ret = ioport("IN0")->read();
- if (offset & 0x08) ret = ioport("IN1")->read();
+ if (offset & 0x01) ret = m_in0->read();
+ if (offset & 0x08) ret = m_in1->read();
return ret;
}
@@ -2279,7 +2277,7 @@ INPUT_CHANGED_MEMBER(vicdual_state::nsub_coin_in)
if (newval)
{
int which = (int)(FPTR)param;
- int coinage = ioport("COINAGE")->read();
+ int coinage = m_coinage->read();
switch (which)
{
@@ -2377,7 +2375,7 @@ MACHINE_START_MEMBER(vicdual_state,nsub)
MACHINE_RESET_MEMBER(vicdual_state,nsub)
{
- m_nsub_coin_counter = ioport("COINAGE")->read() & 7;
+ m_nsub_coin_counter = m_coinage->read() & 7;
machine_reset();
}
@@ -2411,9 +2409,9 @@ READ8_MEMBER(vicdual_state::invinco_io_r)
{
UINT8 ret = 0;
- if (offset & 0x01) ret = ioport("IN0")->read();
- if (offset & 0x02) ret = ioport("IN1")->read();
- if (offset & 0x08) ret = ioport("IN2")->read();
+ if (offset & 0x01) ret = m_in0->read();
+ if (offset & 0x02) ret = m_in1->read();
+ if (offset & 0x08) ret = m_in2->read();
return ret;
}
@@ -3605,48 +3603,48 @@ ROM_END
*
*************************************/
-GAMEL(1977, depthch, 0, depthch, depthch, driver_device, 0, ROT0, "Gremlin", "Depthcharge", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_depthch )
-GAMEL(1977, depthcho, depthch, depthch, depthch, driver_device, 0, ROT0, "Gremlin", "Depthcharge (older)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_depthch )
-GAMEL(1977, subhunt, depthch, depthch, depthch, driver_device, 0, ROT0, "Gremlin (Taito license)", "Sub Hunter", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_depthch )
-GAME( 1977, safari, 0, safari, safari, driver_device, 0, ROT0, "Gremlin", "Safari (set 1)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1977, safaria, safari, safari, safari, driver_device, 0, ROT0, "Gremlin", "Safari (set 2, bootleg?)", GAME_NO_SOUND | GAME_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", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1979, sspaceat, 0, sspaceat, sspaceat, driver_device, 0, ROT270, "Sega", "Space Attack (upright set 1)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1979, sspaceat2, sspaceat, sspaceat, sspaceat, driver_device, 0, ROT270, "Sega", "Space Attack (upright set 2)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1979, sspaceat3, sspaceat, sspaceat, sspaceat, driver_device, 0, ROT270, "Sega", "Space Attack (upright set 3)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1979, sspaceatc, sspaceat, sspaceat, sspaceat, driver_device, 0, ROT270, "Sega", "Space Attack (cocktail)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1979, sspacaho, 0, sspacaho, sspacaho, driver_device, 0, ROT270, "Sega", "Space Attack / Head On", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1979, headon, 0, headon, headon, driver_device, 0, ROT0, "Gremlin", "Head On (2 players)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1979, headon1, headon, headon, headon, driver_device, 0, ROT0, "Gremlin", "Head On (1 player)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1979, headons, headon, headons, headons, driver_device, 0, ROT0, "bootleg (Sidam)", "Head On (Sidam bootleg, set 1)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1979, headonsa, headon, headons, headons, driver_device, 0, ROT0, "bootleg (Sidam)", "Head On (Sidam bootleg, set 2)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // won't coin up?
-GAME( 1979, headonmz, headon, headon, headonmz, driver_device, 0, ROT0, "bootleg", "Head On (bootleg, alt maze)", GAME_SUPPORTS_SAVE )
-GAME( 1979, supcrash, headon, headons, supcrash, driver_device, 0, ROT0, "bootleg", "Super Crash (bootleg of Head On)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1979, hocrash, headon, headons, headons, driver_device, 0, ROT0, "bootleg (Fraber)", "Crash (bootleg of Head On)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1979, headon2, 0, headon2, headon2, driver_device, 0, ROT0, "Sega", "Head On 2", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1979, headon2s, headon2, headon2bw, car2, driver_device, 0, ROT0, "bootleg (Sidam)", "Head On 2 (Sidam bootleg)", GAME_NOT_WORKING | GAME_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)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // title still says 'HeadOn 2'
-GAME( 1979, invho2, 0, invho2, invho2, driver_device, 0, ROT270, "Sega", "Invinco / Head On 2", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, nsub, 0, nsub, nsub, driver_device, 0, ROT270, "Sega", "N-Sub (upright)", GAME_IMPERFECT_GRAPHICS | GAME_NO_SOUND | GAME_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", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1979, invinco, 0, invinco, invinco, driver_device, 0, ROT270, "Sega", "Invinco", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1979, invds, 0, invds, invds, driver_device, 0, ROT270, "Sega", "Invinco / Deep Scan", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1979, carhntds, 0, carhntds, carhntds, driver_device, 0, ROT270, "Sega", "Car Hunt / Deep Scan (France)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, tranqgun, 0, tranqgun, tranqgun, driver_device, 0, ROT270, "Sega", "Tranquilizer Gun", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, spacetrk, 0, spacetrk, spacetrk, driver_device, 0, ROT270, "Sega", "Space Trek (upright)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, spacetrkc, spacetrk, spacetrk, spacetrkc, driver_device, 0, ROT270, "Sega", "Space Trek (cocktail)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, carnival, 0, carnival, carnival, driver_device, 0, ROT270, "Sega", "Carnival (upright)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, carnivalc, carnival, carnival, carnivalc, driver_device, 0, ROT270, "Sega", "Carnival (cocktail)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, carnivalh, carnival, carnivalh, carnivalh, driver_device, 0, ROT270, "Sega", "Carnival (Head On hardware, set 1)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1980, carnivalha, carnival, carnivalh, carnivalh, driver_device, 0, ROT270, "Sega", "Carnival (Head On hardware, set 2)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1981, brdrline, 0, brdrline, brdrline, driver_device, 0, ROT270, "Sega", "Borderline", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1981, starrkr, brdrline, brdrline, starrkr, driver_device, 0, ROT270, "Sega", "Star Raker", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1981, brdrlins, brdrline, brdrline, brdrline, driver_device, 0, ROT270, "bootleg (Sidam)", "Borderline (Sidam bootleg)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1981, brdrlinb, brdrline, brdrline, brdrline, driver_device, 0, ROT270, "bootleg (Karateco)", "Borderline (Karateco bootleg)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1981, brdrlinet, brdrline, tranqgun, tranqgun, driver_device, 0, ROT270, "Sega", "Borderline (Tranquilizer Gun conversion)", GAME_NO_SOUND | GAME_SUPPORTS_SAVE ) // official factory conversion
-GAME( 198?, startrks, 0, headons, headons, driver_device, 0, ROT0, "bootleg (Sidam)", "Star Trek (Head On hardware)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-
-GAME( 1980, digger, 0, digger, digger, driver_device, 0, ROT270, "Sega", "Digger", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1981, pulsar, 0, pulsar, pulsar, driver_device, 0, ROT270, "Sega", "Pulsar", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1979, heiankyo, 0, heiankyo, heiankyo, driver_device, 0, ROT270, "Denki Onkyo", "Heiankyo Alien", GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 19??, alphaho, 0, alphaho, alphaho, driver_device, 0, ROT270, "Data East Corporation", "Alpha Fighter / Head On", GAME_WRONG_COLORS | GAME_NO_SOUND | GAME_SUPPORTS_SAVE )
+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", 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_NO_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", "Tranquilizer 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 (Tranquilizer 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 )
diff --git a/src/mess/drivers/victor9k.c b/src/mame/drivers/victor9k.c
index a50c15802f9..a67c97c101f 100644
--- a/src/mess/drivers/victor9k.c
+++ b/src/mame/drivers/victor9k.c
@@ -598,4 +598,4 @@ ROM_END
//**************************************************************************
// 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", GAME_NOT_WORKING )
+COMP( 1982, victor9k, 0, 0, victor9k, victor9k, driver_device, 0, "Victor Business Products", "Victor 9000", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/victory.c b/src/mame/drivers/victory.c
index 979742639a3..fd1f7fcc1db 100644
--- a/src/mame/drivers/victory.c
+++ b/src/mame/drivers/victory.c
@@ -317,5 +317,5 @@ ROM_END
*
*************************************/
-GAME( 1982, victory, 0, victory, victory, driver_device, 0, ROT0, "Exidy", "Victory", GAME_SUPPORTS_SAVE )
-GAME( 1982, victorba, victory, victory, victory, driver_device, 0, ROT0, "Exidy", "Victor Banana", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/vidbrain.c b/src/mame/drivers/vidbrain.c
index 0cbb7d38969..7612dc337db 100644
--- a/src/mess/drivers/vidbrain.c
+++ b/src/mame/drivers/vidbrain.c
@@ -598,4 +598,4 @@ ROM_END
//**************************************************************************
// 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", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND )
+COMP( 1977, vidbrain, 0, 0, vidbrain, vidbrain, driver_device, 0, "VideoBrain Computer Company", "VideoBrain FamilyComputer", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND )
diff --git a/src/mame/drivers/videopin.c b/src/mame/drivers/videopin.c
index 4c5dcda15d1..36f089ed347 100644
--- a/src/mame/drivers/videopin.c
+++ b/src/mame/drivers/videopin.c
@@ -460,5 +460,5 @@ ROM_END
*
*************************************/
-GAMEL( 1979, videopin, 0, videopin, videopin, driver_device, 0, ROT270, "Atari", "Video Pinball", GAME_SUPPORTS_SAVE, layout_videopin )
-GAMEL( 1979, solarwar, 0, videopin, solarwar, driver_device, 0, ROT270, "Atari", "Solar War", GAME_SUPPORTS_SAVE, layout_videopin )
+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 )
diff --git a/src/mame/drivers/videopkr.c b/src/mame/drivers/videopkr.c
index 6d6d6b43452..d06909caa5d 100644
--- a/src/mame/drivers/videopkr.c
+++ b/src/mame/drivers/videopkr.c
@@ -1549,4 +1549,4 @@ GAMEL( 1987, videodad, videopkr, videodad, videodad, driver_device, 0, ROT0,
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)", GAME_NOT_WORKING, layout_babypkr )
+GAMEL( 198?, bpoker , videopkr, babypkr, babypkr, driver_device, 0, ROT0, "Recreativos Franco", "Video Poker (v1403)", MACHINE_NOT_WORKING, layout_babypkr )
diff --git a/src/mame/drivers/vigilant.c b/src/mame/drivers/vigilant.c
index b5bbe84a920..3539dd77587 100644
--- a/src/mame/drivers/vigilant.c
+++ b/src/mame/drivers/vigilant.c
@@ -1055,17 +1055,17 @@ ROM_START( buccanrsa )
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)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1988, vigilantg, vigilant, vigilant, vigilant, driver_device, 0, ROT0, "Irem (Data East license)", "Vigilante (US, Rev G)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1988, vigilanto, vigilant, vigilant, vigilant, driver_device, 0, ROT0, "Irem (Data East license)", "Vigilante (US)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1988, vigilanta, vigilant, vigilant, vigilant, driver_device, 0, ROT0, "Irem", "Vigilante (World, Rev A)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1988, vigilantb, vigilant, vigilant, vigilant, driver_device, 0, ROT0, "Irem (Data East license)", "Vigilante (US, Rev B)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1988, vigilantc, vigilant, vigilant, vigilant, driver_device, 0, ROT0, "Irem", "Vigilante (World, Rev C)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1988, vigilantd, vigilant, vigilant, vigilant, driver_device, 0, ROT0, "Irem", "Vigilante (Japan, Rev D)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1988, vigilantbl, vigilant, vigilant, vigilant, driver_device, 0, ROT0, "bootleg", "Vigilante (bootleg)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-
-GAME( 1988, kikcubic, 0, kikcubic, kikcubic, driver_device, 0, ROT0, "Irem", "Meikyu Jima (Japan)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) /* English title is Kickle Cubicle */
-GAME( 1988, kikcubicb, kikcubic, kikcubic, kikcubic, driver_device, 0, ROT0, "bootleg", "Kickle Cubele", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-
-GAME( 1989, buccanrs, 0, buccanrs, buccanrs, driver_device, 0, ROT0, "Duintronic", "Buccaneers (set 1)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1989, buccanrsa, buccanrs, buccanrs, buccanra, driver_device, 0, ROT0, "Duintronic", "Buccaneers (set 2)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/vii.c b/src/mame/drivers/vii.c
index 127e4a7a72b..1bca83b382e 100644
--- a/src/mess/drivers/vii.c
+++ b/src/mame/drivers/vii.c
@@ -6,7 +6,7 @@
Sport Vii / The Batman
----------------------
- MESS driver by Harmony
+ driver by Ryan Holtz
Based largely off of Unununium, by Segher
@@ -36,6 +36,8 @@
D - SPG243 - Wall-E
D - SPG243 - Chintendo / KenSingTon / Siatronics / Jungle Soft Vii
Partial D - SPG200 - V-Tech V-Smile
+ ND - unknown - Wireless 60
+ ND - unknown - Wireless Air 60
ND - Likely many more
@@ -1227,8 +1229,8 @@ ROM_START( walle )
ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-CONS( 2004, batmantv, vii, 0, batman, batman, vii_state, batman, "JAKKS Pacific Inc / HotGen Ltd", "The Batman", GAME_NO_SOUND )
-CONS( 2005, vsmile, 0, 0, vsmile, vsmile, vii_state, vsmile, "V-Tech", "V-Smile (Germany)", GAME_NO_SOUND | GAME_NOT_WORKING )
-CONS( 2005, vsmilef, vsmile, 0, vsmile, vsmile, vii_state, vsmile, "V-Tech", "V-Smile (France)", GAME_NO_SOUND | GAME_NOT_WORKING )
-CONS( 2007, vii, 0, 0, vii, vii, vii_state, vii, "Jungle Soft / KenSingTon / Chintendo / Siatronics", "Vii", GAME_NO_SOUND )
-CONS( 2008, walle, vii, 0, batman, walle, vii_state, walle, "JAKKS Pacific Inc", "Wall-E", GAME_NO_SOUND )
+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 )
+CONS( 2007, vii, 0, 0, vii, vii, vii_state, vii, "Jungle Soft / KenSingTon / Chintendo / Siatronics", "Vii", MACHINE_NO_SOUND )
+CONS( 2008, walle, vii, 0, batman, walle, vii_state, walle, "JAKKS Pacific Inc", "Wall-E", MACHINE_NO_SOUND )
diff --git a/src/mess/drivers/vip.c b/src/mame/drivers/vip.c
index 08a80b08792..f47528f5e07 100644
--- a/src/mess/drivers/vip.c
+++ b/src/mame/drivers/vip.c
@@ -806,5 +806,5 @@ ROM_END
//**************************************************************************
// 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)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_COLORS )
-COMP( 1977, vp111, vip, 0, vp111, vip, driver_device, 0, "RCA", "Cosmac VIP (VP-111)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_COLORS )
+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 )
diff --git a/src/mame/drivers/viper.c b/src/mame/drivers/viper.c
index 13409cc1e55..4abb7bd119a 100644
--- a/src/mame/drivers/viper.c
+++ b/src/mame/drivers/viper.c
@@ -2608,37 +2608,37 @@ ROM_END
/*****************************************************************************/
/* Viper BIOS */
-GAME(1999, kviper, 0, viper, viper, viper_state, viper, ROT0, "Konami", "Konami Viper BIOS", GAME_IS_BIOS_ROOT)
-
-GAME(2001, ppp2nd, kviper, viper, viper, viper_state, viper, ROT0, "Konami", "ParaParaParadise 2nd Mix", GAME_NOT_WORKING|GAME_NO_SOUND)
-
-GAME(2001, boxingm, kviper, viper, viper, viper_state, vipercf, ROT0, "Konami", "Boxing Mania (ver JAA)", GAME_NOT_WORKING|GAME_NO_SOUND)
-GAME(2000, code1d, kviper, viper, viper, viper_state, vipercf, ROT0, "Konami", "Code One Dispatch (ver D)", GAME_NOT_WORKING|GAME_NO_SOUND)
-GAME(2000, code1db, code1d, viper, viper, viper_state, vipercf, ROT0, "Konami", "Code One Dispatch (ver B)", GAME_NOT_WORKING|GAME_NO_SOUND)
-GAME(2001, gticlub2, kviper, viper, viper, viper_state, vipercf, ROT0, "Konami", "GTI Club 2 (ver JAB)", GAME_NOT_WORKING|GAME_NO_SOUND)
-GAME(2001, gticlub2ea,gticlub2, viper, viper, viper_state, vipercf, ROT0, "Konami", "GTI Club 2 (ver EAA)", GAME_NOT_WORKING|GAME_NO_SOUND)
-GAME(2001, jpark3, kviper, viper, viper, viper_state, vipercf, ROT0, "Konami", "Jurassic Park 3 (ver EBC)", GAME_NOT_WORKING|GAME_NO_SOUND)
-GAME(2001, mocapglf, kviper, viper, viper, viper_state, vipercf, ROT0, "Konami", "Mocap Golf (ver UAA)", GAME_NOT_WORKING|GAME_NO_SOUND)
-GAME(2001, mocapb, kviper, viper, viper, viper_state, vipercf, ROT90, "Konami", "Mocap Boxing (ver AAA)", GAME_NOT_WORKING|GAME_NO_SOUND)
-GAME(2001, mocapbj, mocapb, viper, viper, viper_state, vipercf, ROT90, "Konami", "Mocap Boxing (ver JAA)", GAME_NOT_WORKING|GAME_NO_SOUND)
-GAME(2001, p911, kviper, viper, viper, viper_state, vipercf, ROT90, "Konami", "Police 911 (ver UAD)", GAME_NOT_WORKING|GAME_NO_SOUND)
-GAME(2001, p911uc, p911, viper, viper, viper_state, vipercf, ROT90, "Konami", "Police 911 (ver UAC)", GAME_NOT_WORKING|GAME_NO_SOUND)
-GAME(2001, p911kc, p911, viper, viper, viper_state, vipercf, ROT90, "Konami", "Police 911 (ver KAC)", GAME_NOT_WORKING|GAME_NO_SOUND)
-GAME(2001, p911e, p911, viper, viper, viper_state, vipercf, ROT90, "Konami", "Police 24/7 (ver EAA)", GAME_NOT_WORKING|GAME_NO_SOUND)
-GAME(2001, p911j, p911, viper, viper, viper_state, vipercf, ROT90, "Konami", "Keisatsukan Shinjuku 24ji (ver JAC)", GAME_NOT_WORKING|GAME_NO_SOUND)
-GAME(2001, p9112, kviper, viper, viper, viper_state, vipercf, ROT90, "Konami", "Police 911 2 (VER. UAA:B)", GAME_NOT_WORKING|GAME_NO_SOUND)
-GAME(2003, popn9, kviper, viper, viper, viper_state, vipercf, ROT0, "Konami", "Pop'n Music 9 (ver JAB)", GAME_NOT_WORKING|GAME_NO_SOUND)
-GAME(2001, sscopex, kviper, viper, viper, viper_state, vipercf, ROT0, "Konami", "Silent Scope EX (ver UAA)", GAME_NOT_WORKING|GAME_NO_SOUND)
-GAME(2001, sogeki, sscopex, viper, viper, viper_state, vipercf, ROT0, "Konami", "Sogeki (ver JAA)", GAME_NOT_WORKING|GAME_NO_SOUND)
-GAME(2001, thrild2, kviper, viper, viper, viper_state, vipercf, ROT0, "Konami", "Thrill Drive 2 (ver EBB)", GAME_NOT_WORKING|GAME_NO_SOUND)
-GAME(2001, thrild2a, thrild2, viper, viper, viper_state, vipercf, ROT0, "Konami", "Thrill Drive 2 (ver AAA)", GAME_NOT_WORKING|GAME_NO_SOUND)
-GAME(2001, thrild2c, thrild2, viper, viper, viper_state, vipercf, ROT0, "Konami", "Thrill Drive 2 (ver EAA)", GAME_NOT_WORKING|GAME_NO_SOUND)
-GAME(2002, tsurugi, kviper, viper, viper, viper_state, vipercf, ROT0, "Konami", "Tsurugi (ver EAB)", GAME_NOT_WORKING|GAME_NO_SOUND)
-GAME(2002, tsurugij, tsurugi, viper, viper, viper_state, vipercf, ROT0, "Konami", "Tsurugi (ver JAC)", GAME_NOT_WORKING|GAME_NO_SOUND)
-GAME(2002, wcombat, kviper, viper, viper, viper_state, vipercf, ROT0, "Konami", "World Combat (ver UAA?)", GAME_NOT_WORKING|GAME_NO_SOUND)
-GAME(2002, wcombatk, wcombat, viper, viper, viper_state, vipercf, ROT0, "Konami", "World Combat (ver KBC)", GAME_NOT_WORKING|GAME_NO_SOUND)
-GAME(2002, wcombatj, wcombat, viper, viper, viper_state, vipercf, ROT0, "Konami", "World Combat (ver JAA)", GAME_NOT_WORKING|GAME_NO_SOUND)
-GAME(2002, xtrial, kviper, viper, viper, viper_state, vipercf, ROT0, "Konami", "Xtrial Racing (ver JAB)", GAME_NOT_WORKING|GAME_NO_SOUND)
-
-GAME(2002, mfightc, kviper, viper, viper, viper_state, vipercf, ROT0, "Konami", "Mahjong Fight Club (ver JAD)", GAME_NOT_WORKING|GAME_NO_SOUND)
-GAME(2002, mfightcc, mfightc, viper, viper, viper_state, vipercf, ROT0, "Konami", "Mahjong Fight Club (ver JAC)", GAME_NOT_WORKING|GAME_NO_SOUND)
+GAME(1999, kviper, 0, viper, viper, viper_state, viper, ROT0, "Konami", "Konami Viper BIOS", MACHINE_IS_BIOS_ROOT)
+
+GAME(2001, ppp2nd, kviper, viper, viper, viper_state, viper, ROT0, "Konami", "ParaParaParadise 2nd Mix", MACHINE_NOT_WORKING|MACHINE_NO_SOUND)
+
+GAME(2001, boxingm, kviper, viper, viper, viper_state, vipercf, ROT0, "Konami", "Boxing Mania (ver JAA)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND)
+GAME(2000, code1d, kviper, viper, viper, viper_state, vipercf, ROT0, "Konami", "Code One Dispatch (ver D)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND)
+GAME(2000, code1db, code1d, viper, viper, viper_state, vipercf, ROT0, "Konami", "Code One Dispatch (ver B)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND)
+GAME(2001, gticlub2, kviper, viper, viper, viper_state, vipercf, ROT0, "Konami", "GTI Club 2 (ver JAB)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND)
+GAME(2001, gticlub2ea,gticlub2, viper, viper, viper_state, vipercf, ROT0, "Konami", "GTI Club 2 (ver EAA)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND)
+GAME(2001, jpark3, kviper, viper, viper, viper_state, vipercf, ROT0, "Konami", "Jurassic Park 3 (ver EBC)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND)
+GAME(2001, mocapglf, kviper, viper, viper, viper_state, vipercf, ROT0, "Konami", "Mocap Golf (ver UAA)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND)
+GAME(2001, mocapb, kviper, viper, viper, viper_state, vipercf, ROT90, "Konami", "Mocap Boxing (ver AAA)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND)
+GAME(2001, mocapbj, mocapb, viper, viper, viper_state, vipercf, ROT90, "Konami", "Mocap Boxing (ver JAA)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND)
+GAME(2001, p911, kviper, viper, viper, viper_state, vipercf, ROT90, "Konami", "Police 911 (ver UAD)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND)
+GAME(2001, p911uc, p911, viper, viper, viper_state, vipercf, ROT90, "Konami", "Police 911 (ver UAC)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND)
+GAME(2001, p911kc, p911, viper, viper, viper_state, vipercf, ROT90, "Konami", "Police 911 (ver KAC)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND)
+GAME(2001, p911e, p911, viper, viper, viper_state, vipercf, ROT90, "Konami", "Police 24/7 (ver EAA)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND)
+GAME(2001, p911j, p911, viper, viper, viper_state, vipercf, ROT90, "Konami", "Keisatsukan Shinjuku 24ji (ver JAC)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND)
+GAME(2001, p9112, kviper, viper, viper, viper_state, vipercf, ROT90, "Konami", "Police 911 2 (VER. UAA:B)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND)
+GAME(2003, popn9, kviper, viper, viper, viper_state, vipercf, ROT0, "Konami", "Pop'n Music 9 (ver JAB)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND)
+GAME(2001, sscopex, kviper, viper, viper, viper_state, vipercf, ROT0, "Konami", "Silent Scope EX (ver UAA)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND)
+GAME(2001, sogeki, sscopex, viper, viper, viper_state, vipercf, ROT0, "Konami", "Sogeki (ver JAA)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND)
+GAME(2001, thrild2, kviper, viper, viper, viper_state, vipercf, ROT0, "Konami", "Thrill Drive 2 (ver EBB)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND)
+GAME(2001, thrild2a, thrild2, viper, viper, viper_state, vipercf, ROT0, "Konami", "Thrill Drive 2 (ver AAA)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND)
+GAME(2001, thrild2c, thrild2, viper, viper, viper_state, vipercf, ROT0, "Konami", "Thrill Drive 2 (ver EAA)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND)
+GAME(2002, tsurugi, kviper, viper, viper, viper_state, vipercf, ROT0, "Konami", "Tsurugi (ver EAB)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND)
+GAME(2002, tsurugij, tsurugi, viper, viper, viper_state, vipercf, ROT0, "Konami", "Tsurugi (ver JAC)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND)
+GAME(2002, wcombat, kviper, viper, viper, viper_state, vipercf, ROT0, "Konami", "World Combat (ver UAA?)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND)
+GAME(2002, wcombatk, wcombat, viper, viper, viper_state, vipercf, ROT0, "Konami", "World Combat (ver KBC)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND)
+GAME(2002, wcombatj, wcombat, viper, viper, viper_state, vipercf, ROT0, "Konami", "World Combat (ver JAA)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND)
+GAME(2002, xtrial, kviper, viper, viper, viper_state, vipercf, ROT0, "Konami", "Xtrial Racing (ver JAB)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND)
+
+GAME(2002, mfightc, kviper, viper, viper, viper_state, vipercf, ROT0, "Konami", "Mahjong Fight Club (ver JAD)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND)
+GAME(2002, mfightcc, mfightc, viper, viper, viper_state, vipercf, ROT0, "Konami", "Mahjong Fight Club (ver JAC)", MACHINE_NOT_WORKING|MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/vixen.c b/src/mame/drivers/vixen.c
index bc6f0230bf4..c4db7010fd4 100644
--- a/src/mess/drivers/vixen.c
+++ b/src/mame/drivers/vixen.c
@@ -874,4 +874,4 @@ DRIVER_INIT_MEMBER(vixen_state,vixen)
//**************************************************************************
// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS
-COMP( 1984, vixen, 0, 0, vixen, vixen, vixen_state, vixen, "Osborne", "Vixen", GAME_NOT_WORKING )
+COMP( 1984, vixen, 0, 0, vixen, vixen, vixen_state, vixen, "Osborne", "Vixen", MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/vk100.c b/src/mame/drivers/vk100.c
index a549d9904a2..376b54efbcb 100644
--- a/src/mess/drivers/vk100.c
+++ b/src/mame/drivers/vk100.c
@@ -37,7 +37,9 @@
Tony DiCenzo, now the director of standards and architecture at Oracle, was on the team that developed the VK100
see http://startup.nmnaturalhistory.org/visitorstories/view.php?ii=79
- Robert "Bob" C. Quinn was definitely lead engineer on the VT125 and may have been lead engineer on the VK100 as well
+ Robert "Bob" C. Quinn was definitely lead engineer on the VT125
+ Robert "Bob" T. Collins was the lead engineer on the VK100
+ Pedro Ortiz (https://www.linkedin.com/pub/pedro-ortiz/16/68b/196) did the drafting for the enclosure and case
The prototype name for the VK100 was 'SMAKY' (Smart Keyboard)
@@ -220,6 +222,7 @@ public:
UINT8 m_VG_MODE; // 2 bits, latched on EXEC
UINT8 m_vgGO; // activated on next SYNC pulse after EXEC
UINT8 m_ACTS;
+ UINT8 m_ADSR;
ioport_port* m_col_array[16];
DECLARE_WRITE8_MEMBER(vgLD_X);
@@ -244,6 +247,7 @@ public:
DECLARE_WRITE_LINE_MEMBER(i8251_txrdy_int);
DECLARE_WRITE_LINE_MEMBER(i8251_rts);
UINT8 vram_read();
+ UINT8 vram_attr_read();
MC6845_UPDATE_ROW(crtc_update_row);
void vram_write(UINT8 data);
@@ -286,6 +290,21 @@ UINT8 vk100_state::vram_read()
return (block>>(4*nybbleNum))&0xF;
}
+// returns the attribute nybble for the current pixel based on X and Y regs
+UINT8 vk100_state::vram_attr_read()
+{
+ // XFinal is (X'&0x3FC)|(X&0x3)
+ UINT16 XFinal = m_trans[(m_vgX&0x3FC)>>2]<<2|(m_vgX&0x3); // appears correct
+ // EA is the effective ram address for a 16-bit block
+ UINT16 EA = ((m_vgY&0x1FE)<<5)|(XFinal>>4); // appears correct
+ // block is the 16 bit block directly (note EA has to be <<1 to correctly index a byte)
+ UINT16 block = m_vram[(EA<<1)+1] | (m_vram[(EA<<1)]<<8);
+ // nybbleNum is the attribute nybble, which in this case is always 3
+ UINT8 nybbleNum = 3;
+ return (block>>(4*nybbleNum))&0xF;
+}
+
+// writes one nybble to vram array based on X and Y regs, and updates the attrib ram if needed
void vk100_state::vram_write(UINT8 data)
{
// XFinal is (X'&0x3FC)|(X&0x3)
@@ -430,10 +449,20 @@ WRITE8_MEMBER(vk100_state::vgERR)
}
/* port 0x45: "SOPS" screen options
- * Blink --Background color-- Blink Serial Select Reverse
- * Enable Green Red Blue Control BG/FG
- * d7 d6 d5 d4 d3 d2 d1 d0
- * apparently, 00 = rs232/eia, 01 = 20ma, 10 = hardcopy, 11 = test/loopback
+ * (handled by 74LS273 @ E55, schematic sheet 10, all signals called 'VVG1 BDx' where x is 7 to 0)
+ * Blink --Background color-- Blink Serial Serial Reverse
+ * Enable Green Red Blue Control SL1 SL0 BG/FG
+ * d7 d6 d5 d4 d3 d2 d1 d0
+ * apparently, SLx: 00 = rs232/eia(J6), 01 = 20ma(J1), 10 = hardcopy(J7), 11 = test/loopback
+ * Serial Select (SLx) routing controls are rather complex, shown on schematic
+ * page 9:
+ * VDC2 | I8251 pins | SYSTAT_B bits
+ * SL1 SL0 | 8251RXD 8251RTS 8251TXD 8251/DTR 8251/DSR 8251CTS | SYSTATB_ACTS SYSTATB_ADSR
+ * 0 0 J6 /RXD J6 /RTS J6 TXD J6 /DTR J7 URTS GND J6 /CTS J6 /DSR
+ * 0 1 J1 +-R ACTS(loop) J1 +-T J6 /DTR J7 URTS GND 8251RTS(loop) J6 /DSR
+ * 1 0 J7 DRXD J7 DRTS* J7 DTXD J6 /DTR J7 URTS GND J7 /DCTS J6 /DSR
+ * 1 1 8251TXD ACTS(loop) 8251RXD J6 /DTR J7 URTS GND 8251RTS(loop) J6 /DSR
+ * * and UCTS, the pin drives both pins on J7
*/
WRITE8_MEMBER(vk100_state::vgSOPS)
{
@@ -586,8 +615,8 @@ WRITE8_MEMBER(vk100_state::BAUD)
}
/* port 0x40-0x47: "SYSTAT A"; various status bits, poorly documented in the tech manual
- * /GO BIT3 BIT2 BIT1 BIT0 Dip RST7.5 GND
- * Switch VSYNC
+ * /GO VDM1 VDM1 VDM1 VDM1 Dip RST7.5 GND***
+ * BIT3 BIT2 BIT1 BIT0 Switch VSYNC
* d7 d6 d5 d4 d3 d2 d1 d0
bit3, 2, 1, 0 are the 4 bits output from the VRAM 12->4 multiplexer
which are also inputs to the pattern rom; they are constantly updated
@@ -597,7 +626,8 @@ WRITE8_MEMBER(vk100_state::BAUD)
d6,5,4,3 are from the 74ls298 at ic4 (right edge of pcb)
d2 is where the dipswitch values are read from, based on the offset
d1 is connected to 8085 rst7.5 (pin 7) and crtc pin 40 (VSYNC) [verified via tracing]
- d0 is tied to GND [verified via tracing]
+ d0 is tied to GND [verified via tracing] but the schematics both tie it to GND
+ and call it LP FLAG, may be a leftover from development.
31D reads and checks d7 in a loop
205 reads, xors with 0x55 (from reg D), ANDS result with 0x78 and branches if it is not zero (checking for bit pattern 1010?)
@@ -623,18 +653,20 @@ READ8_MEMBER(vk100_state::SYSTAT_A)
* after this it does something and waits for an rxrdy interrupt
shows the results of:
- * ACTS (/CTS) ? ? ? ? ? ? ?
- * d7 d6 d5 d4 d3 d2 d1 d0
+ * ACTS (/CTS) ADSR (/DSR) GND GND ATTR3 ATTR2 ATTR1 ATTR0
+ * d7 d6 d5 d4 d3 d2 d1 d0
* the ACTS (inverse of DCTS) signal lives in one of these bits (see 5-62)
* it XORs the read of systat_b with the E register (which holds 0x6)
* and checks the result
+ * The 4 attribute ram bits for the cell being pointed at by the X and Y regs are readable as the low nybble.
+ * The DSR pin is readable as bit 6.
*/
READ8_MEMBER(vk100_state::SYSTAT_B)
{
#ifdef SYSTAT_B_VERBOSE
logerror("0x%04X: SYSTAT_B Read!\n", m_maincpu->pc());
#endif
- return (m_ACTS<<7)|0x7F;
+ return (m_ACTS<<7)|(m_ADSR<<6)|vram_attr_read();
}
READ8_MEMBER(vk100_state::vk100_keyboard_column_r)
@@ -658,13 +690,13 @@ ADDRESS_MAP_END
* (a15 to a8 are latched the same value as a7-a0 on the 8080 and 8085)
* [this map is derived from extensive tracing as well as some guesswork, noted for the crtc, systat_b and the uart]
a7 a6 a5 a4 a3 a2 a1 a0
- ?x 0 ?x ?x ?x ?x ?x 0 W CRTC address
- ?x 0 ?x ?x ?x ?x ?x 1 RW CRTC register r/w
+ x 0 x x x x x 0 W CRTC address
+ x 0 x x x x x 1 RW CRTC register r/w
x 1 * * * ** ** ** read area (rightmost 74ls138):
x 1 0 0 0 * * * R SYSTAT_A (a0-a3 chooses the bit of the dipswitches read via d3)
- x 1 0 0 1 ?x ?x ?x R SYSTAT_B
- x 1 0 1 0 ?x ?x 0 R i8251 UART data
- x 1 0 1 0 ?x ?x 1 R i8251 UART status
+ x 1 0 0 1 x x x R SYSTAT_B
+ x 1 0 1 0 x x 0 R i8251 UART data
+ x 1 0 1 0 x x 1 R i8251 UART status
x 1 0 1 1 x x x R unused
x 1 1 0 0 x x x R unused
x 1 1 0 1 x x x R unused
@@ -688,10 +720,10 @@ ADDRESS_MAP_END
x 1 1 0 0 1 * * W set VG_MODE to * * XOR 3 and Execute (if GO is not active)
x 1 1 0 1 0 x x W KYBDW
x 1 1 0 1 1 x x W BAUD
- x 1 1 1 0 0 ?x 0 W i8251 UART data
- x 1 1 1 0 0 ?x 1 W i8251 UART control
+ x 1 1 1 0 0 x 0 W i8251 UART data
+ x 1 1 1 0 0 x 1 W i8251 UART control
x 1 1 1 0 1 x x W unused
- x 1 1 1 1 0 x x W unused? (may be wired-or to KYBDW)
+ x 1 1 1 1 0 x x W unused
x 1 1 1 1 1 x x W unused
*/
static ADDRESS_MAP_START(vk100_io, AS_IO, 8, vk100_state)
@@ -812,7 +844,7 @@ static INPUT_PORTS_START( vk100 )
PORT_BIT(0xc0, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_START("COL7")
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("6") PORT_CODE(KEYCODE_6)
- PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("V") PORT_CODE(KEYCODE_Y)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Y") PORT_CODE(KEYCODE_Y)
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("H") PORT_CODE(KEYCODE_H)
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("B") PORT_CODE(KEYCODE_B)
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Num 6") PORT_CODE(KEYCODE_6_PAD)
@@ -913,6 +945,7 @@ void vk100_state::machine_start()
m_VG_MODE = 0;
m_vgGO = 0;
m_ACTS = 1;
+ m_ADSR = 1;
char kbdcol[8];
// look up all 16 tags 'the slow way' but only once on reset
for (int i = 0; i < 16; i++)
@@ -1132,10 +1165,10 @@ ROM_START( vk100 )
* |\-------- Y11 (D out of ls191 left of hd46505) [verified via tracing]
* \--------- ERASE L/d5 on the vector rom [verified via tracing]
* data bits: 3210
- * |||\-- ? wr_1?
- * ||\--- ? wr_2?
- * |\---- ? wr_3?
- * \----- ? wr_4?
+ * |||\-- /WE for VRAM Attribute bits
+ * ||\--- /WE for VRAM bits 0-3 (leftmost bits, first to be shifted out)
+ * |\---- /WE for VRAM bits 4-7
+ * \----- /WE for VRAM bits 8-11 (rightmost bits, last to be shifted out)
* The VT125 prom E93 is mostly equivalent to the ras/erase prom; On the vt125 version, the inputs are:
* (X'10 NOR X'11)
* (Y9 NOR Y10)
@@ -1155,7 +1188,8 @@ ROM_START( vk100 )
X'2 inputs lend credence to this.
*
*/
- ROM_LOAD( "wb8151_573a2.mmi6301.pr3.ic41", 0x0000, 0x0100, CRC(75885a9f) SHA1(c721dad6a69c291dd86dad102ed3a8ddd620ecc4)) // label verified from nigwil's and andy's board
+ ROM_LOAD( "wb8151_573a2.mmi6301.pr3.ic41", 0x0000, 0x0100, CRC(75885a9f) SHA1(c721dad6a69c291dd86dad102ed3a8ddd620ecc4)) // Stamp/silkscreen: "WB8151 // 573A2" (23-573A2), 82S129 equivalent @ E41
+ // label verified from nigwil's and andy's board
ROM_REGION( 0x100, "vector", ROMREGION_ERASEFF )
// WARNING: it is possible that the first two bytes of this prom are bad!
@@ -1228,4 +1262,4 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 1980, vk100, 0, 0, vk100, vk100, vk100_state, vk100, "Digital Equipment Corporation", "VK100 'GIGI'", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND)
+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.c b/src/mame/drivers/vlc.c
index 10fbb98d550..099df75ee54 100644
--- a/src/mame/drivers/vlc.c
+++ b/src/mame/drivers/vlc.c
@@ -700,4 +700,4 @@ DRIVER_INIT_MEMBER(nevada_state,nevada)
/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS... */
-GAME( 1995, nevada, 0, nevada, nevada, nevada_state, nevada, ROT0, "VLC Inc.", "VLC Nevada", GAME_NO_SOUND | GAME_NOT_WORKING )
+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.c b/src/mame/drivers/volfied.c
index ae47407c0d5..fa5e6c2a55c 100644
--- a/src/mame/drivers/volfied.c
+++ b/src/mame/drivers/volfied.c
@@ -453,9 +453,9 @@ ROM_START( volfiedjo )
ROM_END
-GAME( 1989, volfied, 0, volfied, volfied, driver_device, 0, ROT270, "Taito Corporation Japan", "Volfied (World, revision 1)", GAME_SUPPORTS_SAVE )
-GAME( 1989, volfiedu, volfied, volfied, volfiedu, driver_device, 0, ROT270, "Taito America Corporation", "Volfied (US, revision 1)", GAME_SUPPORTS_SAVE )
-GAME( 1989, volfiedj, volfied, volfied, volfiedj, driver_device, 0, ROT270, "Taito Corporation", "Volfied (Japan, revision 1)", GAME_SUPPORTS_SAVE )
-GAME( 1989, volfiedo, volfied, volfied, volfiedj, driver_device, 0, ROT270, "Taito Corporation Japan", "Volfied (World)", GAME_SUPPORTS_SAVE )
-GAME( 1989, volfieduo, volfied, volfied, volfiedj, driver_device, 0, ROT270, "Taito America Corporation", "Volfied (US)", GAME_SUPPORTS_SAVE )
-GAME( 1989, volfiedjo, volfied, volfied, volfiedj, driver_device, 0, ROT270, "Taito Corporation", "Volfied (Japan)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/votrpss.c b/src/mame/drivers/votrpss.c
index 4356b19a520..1a3a6ada714 100644
--- a/src/mess/drivers/votrpss.c
+++ b/src/mame/drivers/votrpss.c
@@ -331,4 +331,4 @@ ROM_END
******************************************************************************/
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 1982, votrpss, 0, 0, votrpss, votrpss, driver_device, 0, "Votrax", "Personal Speech System", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1982, votrpss, 0, 0, votrpss, votrpss, driver_device, 0, "Votrax", "Personal Speech System", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/votrtnt.c b/src/mame/drivers/votrtnt.c
index ac05fb0e86d..7d7c007ee35 100644
--- a/src/mess/drivers/votrtnt.c
+++ b/src/mame/drivers/votrtnt.c
@@ -64,23 +64,30 @@ private:
Address Maps
******************************************************************************/
+/* a15 a14 a13 a12 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0
+ x 0 0 x x x * * * * * * * * * * RW RAM (2x 2114 1kx4 SRAM, wired in parallel)
+ x 0 1 x x x x x x x x x x x x 0 RW 6850 Status(R)/Control(W)
+ x 0 1 x x x x x x x x x x x x 1 RW 6850 Data(R)/Data(W)
+ x 1 0 x x x x x x x x x x x x x W SC-01 Data(W)
+ x 1 1 x * * * * * * * * * * * * R ROM (2332 4kx8 Mask ROM, inside potted brick)
+*/
+
static ADDRESS_MAP_START(6802_mem, AS_PROGRAM, 8, votrtnt_state)
ADDRESS_MAP_UNMAP_HIGH
- ADDRESS_MAP_GLOBAL_MASK(0x6fff)
- AM_RANGE(0x0000, 0x03ff) AM_RAM AM_MIRROR(0xc00)/* RAM, 2114*2 (0x400 bytes) mirrored 4x */
- AM_RANGE(0x2000, 0x2000) AM_MIRROR(0xffe) AM_DEVREADWRITE("acia", acia6850_device, status_r, control_w)
- AM_RANGE(0x2001, 0x2001) AM_MIRROR(0xffe) AM_DEVREADWRITE("acia", acia6850_device, data_r, data_w)
- AM_RANGE(0x4000, 0x5fff) AM_DEVWRITE("votrax", votrax_sc01_device, write) /* low 6 bits write to 6 bit input of sc-01-a; high 2 bits are ignored (but by adding a buffer chip could be made to control the inflection bits of the sc-01-a which are normally grounded on the tnt) */
- AM_RANGE(0x6000, 0x6fff) AM_ROM /* ROM in potted block */
+ AM_RANGE(0x0000, 0x03ff) AM_MIRROR(0x9c00) AM_RAM /* RAM, 2114*2 (0x400 bytes) mirrored 4x */
+ AM_RANGE(0x2000, 0x2000) AM_MIRROR(0x9ffe) AM_DEVREADWRITE("acia", acia6850_device, status_r, control_w)
+ AM_RANGE(0x2001, 0x2001) AM_MIRROR(0x9ffe) AM_DEVREADWRITE("acia", acia6850_device, data_r, data_w)
+ AM_RANGE(0x4000, 0x4000) AM_MIRROR(0x9fff) AM_DEVWRITE("votrax", votrax_sc01_device, write) /* low 6 bits write to 6 bit input of sc-01-a; high 2 bits are ignored (but by adding a buffer chip could be made to control the inflection bits of the sc-01-a which are normally grounded on the TNT); upon any access to this area (even reads, which count effectively as a 'write of open bus value') the /STB line of the sc-01 is pulsed low using a 74123 monostable multivibrator with a capacitor of 120pf and a resistor to vcc of 22Kohm */
+ AM_RANGE(0x6000, 0x6fff) AM_MIRROR(0x9000) AM_ROM /* ROM in potted block */
ADDRESS_MAP_END
/******************************************************************************
Input Ports
******************************************************************************/
-
+/** TODO: actually hook this up to the ACIA */
static INPUT_PORTS_START(votrtnt)
- PORT_START("DSW1") /* not connected to cpu, each switch is connected directly to the output of a 4040 counter dividing the cpu m1? clock to feed the 6850 ACIA. Setting more than one switch on is a bad idea. see tnt_schematic.jpg */
+ PORT_START("DSW1") /* not connected to cpu, each switch is connected directly to the output of a 4040 counter dividing the cpu m1? clock to feed the 6850 ACIA. Setting more than one switch on (downward is on, upward is off) is a bad idea, as it will short together outputs of the 4040, possibly damaging it. see tnt_schematic.jpg */
PORT_DIPNAME( 0xFF, 0x80, "Baud Rate" ) PORT_DIPLOCATION("SW1:1,2,3,4,5,6,7,8")
PORT_DIPSETTING( 0x01, "75" )
PORT_DIPSETTING( 0x02, "150" )
@@ -148,4 +155,4 @@ ROM_END
******************************************************************************/
/* 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", GAME_NOT_WORKING )
+COMP( 1980, votrtnt, 0, 0, votrtnt, votrtnt, driver_device, 0, "Votrax", "Type 'N Talk", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/voyager.c b/src/mame/drivers/voyager.c
index ce8d61375f2..02cd1a1c96e 100644
--- a/src/mame/drivers/voyager.c
+++ b/src/mame/drivers/voyager.c
@@ -518,4 +518,4 @@ ROM_START( voyager )
DISK_IMAGE_READONLY( "voyager", 0, SHA1(8b94f2420f6abb40148e4ba6eed8819d8e85dbde))
ROM_END
-GAME( 2002, voyager, 0, voyager, voyager, voyager_state, voyager, ROT0, "Team Play/Game Refuge/Monaco Entertainment", "Star Trek: Voyager", GAME_NOT_WORKING|GAME_NO_SOUND )
+GAME( 2002, voyager, 0, voyager, voyager, voyager_state, voyager, ROT0, "Team Play/Game Refuge/Monaco Entertainment", "Star Trek: Voyager", MACHINE_NOT_WORKING|MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/vp101.c b/src/mame/drivers/vp101.c
index c033473d48b..9506d756369 100644
--- a/src/mame/drivers/vp101.c
+++ b/src/mame/drivers/vp101.c
@@ -120,5 +120,5 @@ ROM_START(specfrce)
ROM_END
-GAME( 2002, specfrce, 0, vp101, vp101, driver_device, 0, ROT0, "ICE/Play Mechanix", "Special Forces Elite Training", GAME_IS_SKELETON )
-GAME( 2004, jnero, 0, vp101, vp101, driver_device, 0, ROT0, "ICE/Play Mechanix", "Johnny Nero Action Hero", GAME_IS_SKELETON )
+GAME( 2002, specfrce, 0, vp101, vp101, driver_device, 0, ROT0, "ICE/Play Mechanix", "Special Forces Elite Training", MACHINE_IS_SKELETON )
+GAME( 2004, jnero, 0, vp101, vp101, driver_device, 0, ROT0, "ICE/Play Mechanix", "Johnny Nero Action Hero", MACHINE_IS_SKELETON )
diff --git a/src/mame/drivers/vpoker.c b/src/mame/drivers/vpoker.c
index 3dc2a78efd0..2f7d6b5f7f0 100644
--- a/src/mame/drivers/vpoker.c
+++ b/src/mame/drivers/vpoker.c
@@ -103,7 +103,6 @@ public:
DECLARE_WRITE8_MEMBER(blitter_w);
DECLARE_WRITE_LINE_MEMBER(ptm_irq);
virtual void video_start();
- DECLARE_PALETTE_INIT(vpoker);
UINT32 screen_update_vpoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_device<gfxdecode_device> m_gfxdecode;
@@ -606,20 +605,6 @@ static GFXDECODE_START( vpoker )
GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 1 )
GFXDECODE_END
-PALETTE_INIT_MEMBER(vpoker_state, vpoker)
-{
- int i;
-
- for (i = 0; i < 7; i++)
- {
- rgb_t color;
-
- color = rgb_t(pal1bit((i & 4) >> 2),pal1bit(i & 1),pal1bit((i & 2) >> 1));
-
- palette.set_pen_color(i, color);
- }
-}
-
WRITE_LINE_MEMBER(vpoker_state::ptm_irq)
{
m_maincpu->set_input_line(M6809_IRQ_LINE, state ? ASSERT_LINE : CLEAR_LINE);
@@ -643,8 +628,8 @@ static MACHINE_CONFIG_START( vpoker, vpoker_state )
MCFG_SCREEN_PALETTE("palette")
MCFG_GFXDECODE_ADD("gfxdecode", "palette", vpoker)
- MCFG_PALETTE_ADD("palette", 8)
- MCFG_PALETTE_INIT_OWNER(vpoker_state, vpoker)
+
+ MCFG_PALETTE_ADD_3BIT_GBR("palette")
/* 6840 PTM */
MCFG_DEVICE_ADD("6840ptm", PTM6840, 0)
@@ -702,5 +687,5 @@ ROM_END
/* YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS... */
-GAME( 198?, vpoker, 0, vpoker, vpoker, driver_device, 0, ROT0, "Videotronics", "Videotronics Poker", GAME_NOT_WORKING | GAME_NO_SOUND )
-GAME( 198?, 5acespkr, 0, vpoker, 5acespkr, driver_device, 0, ROT0, "<unknown>", "5-Aces Poker", GAME_NOT_WORKING | GAME_NO_SOUND )
+GAME( 198?, vpoker, 0, vpoker, vpoker, driver_device, 0, ROT0, "Videotronics", "Videotronics Poker", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
+GAME( 198?, 5acespkr, 0, vpoker, 5acespkr, driver_device, 0, ROT0, "<unknown>", "5-Aces Poker", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/vroulet.c b/src/mame/drivers/vroulet.c
index c295ed9de3c..da860076c52 100644
--- a/src/mame/drivers/vroulet.c
+++ b/src/mame/drivers/vroulet.c
@@ -321,4 +321,4 @@ ROM_END
/* Game Driver */
-GAME( 1989, vroulet, 0, vroulet, vroulet, driver_device, 0, ROT90, "World Game", "Vegas Roulette", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE )
+GAME( 1989, vroulet, 0, vroulet, vroulet, driver_device, 0, ROT90, "World Game", "Vegas Roulette", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_COLORS | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/vsnes.c b/src/mame/drivers/vsnes.c
index dd753b6841b..14ed386f389 100644
--- a/src/mame/drivers/vsnes.c
+++ b/src/mame/drivers/vsnes.c
@@ -2807,14 +2807,14 @@ GAME( 1984, excitebka,excitebk, vsnes, excitebk, vsnes_state, vsnormal, ROT0,
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, machridr, 0, vsnes, machridr, vsnes_state, vsnormal, ROT0, "Nintendo", "Vs. Mach Rider (Endurance Course Version)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1985, machridra,machridr, vsnes, machridj, vsnes_state, vsnormal, ROT0, "Nintendo", "Vs. Mach Rider (Fighting Course Version, set MR4-1 A)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1985, machridr, 0, vsnes, machridr, vsnes_state, vsnormal, ROT0, "Nintendo", "Vs. Mach Rider (Endurance Course Version)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1985, machridra,machridr, 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)", GAME_NOT_WORKING )
-GAME( 1986, suprmriobl2,suprmrio,vsnes_bootleg,suprmrio,vsnes_state,vsnormal, ROT0, "bootleg", "Vs. Super Mario Bros. (bootleg with Z80, set 2)", GAME_NOT_WORKING )
+GAME( 1986, suprmriobl,suprmrio,vsnes_bootleg,suprmrio,vsnes_state,vsnormal, ROT0, "bootleg", "Vs. Super Mario Bros. (bootleg with Z80, set 1)", MACHINE_NOT_WORKING )
+GAME( 1986, suprmriobl2,suprmrio,vsnes_bootleg,suprmrio,vsnes_state,vsnormal, ROT0, "bootleg", "Vs. Super Mario Bros. (bootleg with Z80, set 2)", MACHINE_NOT_WORKING )
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 )
@@ -2825,7 +2825,7 @@ GAME( 1984, ladygolfe,smgolf, vsnes, golf, vsnes_state, vsnormal, ROT0,
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", GAME_IMPERFECT_GRAPHICS )
+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 )
@@ -2846,7 +2846,7 @@ GAME( 1988, vsfdf, 0, vsnes, vsfdf, vsnes_state, vsfdf, ROT0,
/* Dual games */
GAME( 1984, vstennis, 0, vsdual, vstennis, vsnes_state, vsdual, ROT0, "Nintendo Co., Ltd.", "Vs. Tennis (Japan/USA, set TE A-3)" , 0 )
GAME( 1984, vstennisa,vstennis, vsdual, vstennis, vsnes_state, vsdual, ROT0, "Nintendo Co., Ltd.", "Vs. Tennis (Japan/USA, set 2)" , 0 )
-GAME( 1984, vstennisb,vstennis, vsdual, vstennis, vsnes_state, vsdual, ROT0, "Nintendo Co., Ltd.", "Vs. Tennis (Japan/USA, set 3)" , GAME_IMPERFECT_GRAPHICS )
+GAME( 1984, vstennisb,vstennis, vsdual, vstennis, vsnes_state, vsdual, ROT0, "Nintendo Co., Ltd.", "Vs. Tennis (Japan/USA, set 3)" , MACHINE_IMPERFECT_GRAPHICS )
GAME( 1984, wrecking, 0, vsdual, wrecking, vsnes_state, vsdual, ROT0, "Nintendo", "Vs. Wrecking Crew", 0 )
GAME( 1984, balonfgt, 0, vsdual, 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 )
diff --git a/src/mess/drivers/vt100.c b/src/mame/drivers/vt100.c
index a55f37f0fb8..561de2441e0 100644
--- a/src/mess/drivers/vt100.c
+++ b/src/mame/drivers/vt100.c
@@ -848,15 +848,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",GAME_NOT_WORKING)
-//COMP( 1978, vt100wp, vt100, 0, vt100, vt100, driver_device, 0, "Digital Equipment Corporation", "VT100-Wx", GAME_NOT_WORKING)
-//COMP( 1978, vt100stp, vt100, 0, vt100, vt100, driver_device, 0, "Digital Equipment Corporation", "VT100 w/VT1xx-AC STP", GAME_NOT_WORKING)
-COMP( 1981, vt101, vt102, 0, vt102, vt100, driver_device, 0, "Digital Equipment Corporation", "VT101", GAME_NOT_WORKING)
-COMP( 1981, vt102, 0, 0, vt102, vt100, driver_device, 0, "Digital Equipment Corporation", "VT102", GAME_NOT_WORKING)
-//COMP( 1979, vt103, vt100, 0, vt100, vt100, driver_device, 0, "Digital Equipment Corporation", "VT103", GAME_NOT_WORKING)
-COMP( 1978, vt105, vt100, 0, vt100, vt100, driver_device, 0, "Digital Equipment Corporation", "VT105", GAME_NOT_WORKING)
-//COMP( 1978, vt110, vt100, 0, vt100, vt100, driver_device, 0, "Digital Equipment Corporation", "VT110", GAME_NOT_WORKING)
-//COMP( 1981, vt125, vt100, 0, vt100, vt100, driver_device, 0, "Digital Equipment Corporation", "VT125", GAME_NOT_WORKING)
-COMP( 1981, vt131, vt102, 0, vt102, vt100, driver_device, 0, "Digital Equipment Corporation", "VT131", GAME_NOT_WORKING)
-//COMP( 1979, vt132, vt100, 0, vt100, vt100, driver_device, 0, "Digital Equipment Corporation", "VT132", GAME_NOT_WORKING)
-COMP( 1983, vt180, vt100, 0, vt180, vt100, driver_device, 0, "Digital Equipment Corporation", "VT180", GAME_NOT_WORKING)
+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( 1978, vt100stp, 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)
diff --git a/src/mess/drivers/vt220.c b/src/mame/drivers/vt220.c
index 54788f85941..88984bf90f7 100644
--- a/src/mess/drivers/vt220.c
+++ b/src/mame/drivers/vt220.c
@@ -110,4 +110,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1983, vt220, 0, 0, vt220, vt220, driver_device, 0, "Digital Equipment Corporation", "VT220", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/vt240.c b/src/mame/drivers/vt240.c
index 0c41d298d86..80acf4e14ab 100644
--- a/src/mess/drivers/vt240.c
+++ b/src/mame/drivers/vt240.c
@@ -325,7 +325,7 @@ DRIVER_INIT_MEMBER(vt240_state,vt240)
}
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
-COMP( 1983, vt240, 0, 0, mc7105, vt240, vt240_state, vt240, "Digital Equipment Corporation", "VT240", GAME_NOT_WORKING | GAME_NO_SOUND)
-//COMP( 1983, vt241, 0, 0, vt220, vt220, driver_device, 0, "Digital Equipment Corporation", "VT241", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1983, vt240, 0, 0, mc7105, vt240, vt240_state, vt240, "Digital Equipment Corporation", "VT240", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
+//COMP( 1983, vt241, 0, 0, vt220, vt220, driver_device, 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, vt240_state, vt240, "Elektronika", "MC7105", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1983, mc7105, 0, 0, mc7105, vt240, vt240_state, vt240, "Elektronika", "MC7105", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/vt320.c b/src/mame/drivers/vt320.c
index 3cd2715cc1e..ee452a5852d 100644
--- a/src/mess/drivers/vt320.c
+++ b/src/mame/drivers/vt320.c
@@ -119,7 +119,7 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
-//COMP( 1989?, vt330, 0, 0, vt320, vt320, driver_device, 0, "Digital Equipment Corporation", "VT330", GAME_NOT_WORKING)
-//COMP( 1989?, vt340, 0, 0, vt320, vt320, driver_device, 0, "Digital Equipment Corporation", "VT340", GAME_NOT_WORKING)
-//COMP( 1990?, vt340p, 0, 0, vt320, vt320, driver_device, 0, "Digital Equipment Corporation", "VT340+", GAME_NOT_WORKING)
+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)
diff --git a/src/mess/drivers/vt520.c b/src/mame/drivers/vt520.c
index 8ee77e55248..9f4b0216587 100644
--- a/src/mess/drivers/vt520.c
+++ b/src/mame/drivers/vt520.c
@@ -106,6 +106,6 @@ 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", GAME_NOT_WORKING)
-COMP( 1994, vt520, 0, 0, vt520, vt520, driver_device, 0, "Digital Equipment Corporation", "VT520", GAME_NOT_WORKING | GAME_NO_SOUND)
-//COMP( 1994, vt525, 0, 0, vt520, vt520, driver_device, 0, "Digital Equipment Corporation", "VT525", GAME_NOT_WORKING)
+//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)
diff --git a/src/mess/drivers/vta2000.c b/src/mame/drivers/vta2000.c
index aee01072279..4f64a6ab490 100644
--- a/src/mess/drivers/vta2000.c
+++ b/src/mame/drivers/vta2000.c
@@ -192,4 +192,4 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 19??, vta2000, 0, 0, vta2000, vta2000, driver_device, 0, "<unknown>", "VTA-2000", GAME_NOT_WORKING | GAME_NO_SOUND )
+COMP( 19??, vta2000, 0, 0, vta2000, vta2000, driver_device, 0, "<unknown>", "VTA-2000", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mess/drivers/vtech1.c b/src/mame/drivers/vtech1.c
index 803bced5533..d75006d4318 100644
--- a/src/mess/drivers/vtech1.c
+++ b/src/mame/drivers/vtech1.c
@@ -548,11 +548,11 @@ ROM_END
// YEAR NAME PARENT COMPAT MACHINE INPUT 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)", GAME_NOT_WORKING )
+COMP( 1983, vz200de, laser200, 0, laser200, vtech1, vtech1_state, vtech1, "Video Technology", "VZ-200 (Germany & Netherlands)", MACHINE_NOT_WORKING )
COMP( 1983, fellow, laser200, 0, laser200, vtech1, vtech1_state, vtech1, "Salora", "Fellow (Finland)", 0 )
COMP( 1983, tx8000, laser200, 0, laser200, vtech1, vtech1_state, vtech1, "Texet", "TX-8000 (UK)", 0 )
COMP( 1984, laser210, 0, 0, laser210, vtech1, vtech1_state, vtech1, "Video Technology", "Laser 210", 0 )
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)", GAME_UNOFFICIAL)
+COMP( 1984, laser310h, laser310, 0, laser310h, vtech1, vtech1_state, vtech1h, "Video Technology", "Laser 310 (SHRG)", MACHINE_UNOFFICIAL)
diff --git a/src/mess/drivers/vtech2.c b/src/mame/drivers/vtech2.c
index d5595320b72..d5595320b72 100644
--- a/src/mess/drivers/vtech2.c
+++ b/src/mame/drivers/vtech2.c
diff --git a/src/mame/drivers/vulgus.c b/src/mame/drivers/vulgus.c
index e2145de9269..379b0dd12ab 100644
--- a/src/mame/drivers/vulgus.c
+++ b/src/mame/drivers/vulgus.c
@@ -373,6 +373,6 @@ ROM_END
-GAME( 1984, vulgus, 0, vulgus, vulgus, driver_device, 0, ROT270, "Capcom", "Vulgus (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1984, vulgusa, vulgus, vulgus, vulgus, driver_device, 0, ROT90, "Capcom", "Vulgus (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1984, vulgusj, vulgus, vulgus, vulgus, driver_device, 0, ROT270, "Capcom", "Vulgus (Japan?)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/wacky_gator.c b/src/mame/drivers/wacky_gator.c
new file mode 100644
index 00000000000..da8376248e4
--- /dev/null
+++ b/src/mame/drivers/wacky_gator.c
@@ -0,0 +1,178 @@
+// license:GPL2+
+// copyright-holders:FelipeSanches
+//
+// Wacky Gator
+//
+// Driver by Felipe Correa da Silva Sanches <juca@members.fsf.org>
+//
+
+/*
+ Most of this driver is based on guessing since I do not have access to the actual pcb for this game.
+ Once we get a pcb, please review the correctness of the code in this driver before deleting this comment.
+
+ There's a bunch of memory accesses that are not yet properly understood.
+ Supposedly these are reponsible for things like:
+
+ * controlling playback of samples of the OKI sound chip
+ * reading the status of the rear & front limit switches for each of the
+ 5 alligators
+ * reading the hit sensors for the 5 alligators
+ * reading coin insertion and start button
+ * flashing lamps in the backglass (apparently there's a total of
+ 20 lamps around the backframe)
+ * flashing the status lamps to indicate how good was the game of a player
+ (there are 5 different levels that can be shown inthe end of the game)
+ * controlling the 7-seg displays with:
+ - number of times the player successfully hit an alligator
+ - number of times the player was caught by an alligator
+ - final score
+ - highest score
+*/
+
+#include "emu.h"
+#include "cpu/m6809/m6809.h"
+#include "sound/msm5205.h"
+
+class wackygtr_state : public driver_device
+{
+public:
+ wackygtr_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag),
+ m_msm(*this, "msm"),
+ m_maincpu(*this, "maincpu")
+ { }
+
+ UINT8* m_samples;
+ int m_adpcm_data;
+ int m_adpcm_pos;
+ int m_adpcm_length;
+
+ required_device<msm5205_device> m_msm;
+ required_device<cpu_device> m_maincpu;
+ DECLARE_DRIVER_INIT(wackygtr);
+
+ INTERRUPT_GEN_MEMBER(wackygtr_interrupt);
+ DECLARE_WRITE_LINE_MEMBER(adpcm_int);
+ DECLARE_READ8_MEMBER(_0x6000_r);
+ DECLARE_READ8_MEMBER(_0x6001_r);
+ DECLARE_READ8_MEMBER(_0x6002_r);
+ DECLARE_READ8_MEMBER(_0x71d0_r);
+ DECLARE_READ8_MEMBER(_0x71d5_r);
+ DECLARE_WRITE8_MEMBER(sample_pos_w);
+ DECLARE_WRITE8_MEMBER(sample_length_w);
+};
+
+
+DRIVER_INIT_MEMBER(wackygtr_state, wackygtr)
+{
+ m_adpcm_data = -1;
+ m_adpcm_pos = 0;
+ m_adpcm_length = 0;
+ m_samples = memregion("oki")->base();
+}
+
+/*
+ * The read handlers below are only boiler-plate for actual peripheral emulation
+ * and may be completely wrong, so should not yet be understood as hardware documentation.
+ */
+READ8_MEMBER(wackygtr_state::_0x6000_r){
+ return 0x00;
+}
+
+READ8_MEMBER(wackygtr_state::_0x6001_r){
+ return 0x00;
+}
+
+READ8_MEMBER(wackygtr_state::_0x6002_r){
+ return 0x00;
+}
+
+READ8_MEMBER(wackygtr_state::_0x71d0_r){
+ return 0;
+}
+
+READ8_MEMBER(wackygtr_state::_0x71d5_r){
+ return 0xFF;
+}
+
+/* The handling of sample playback is also guessed.
+ * Someone with access to the actual hardware could help
+ * better understand how this is actually hooked up on the original boards;
+ */
+WRITE8_MEMBER(wackygtr_state::sample_pos_w){
+ m_adpcm_pos = (m_adpcm_pos & 0xFF) << 8 | (data & 0xFF);
+}
+
+WRITE8_MEMBER(wackygtr_state::sample_length_w){
+ m_adpcm_length = (m_adpcm_length & 0xFF) << 8 | (data & 0xFF);
+}
+
+static INPUT_PORTS_START( wackygtr )
+ PORT_START("INP0")
+ PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
+INPUT_PORTS_END
+
+WRITE_LINE_MEMBER(wackygtr_state::adpcm_int)
+{
+/* This looks almost correct, but I am not yet completely sure. */
+ if (m_adpcm_length > 0)
+ {
+ m_adpcm_length--;
+ if (m_adpcm_data == -1)
+ {
+ /* transferring 1st nibble */
+ m_adpcm_data = m_samples[m_adpcm_pos];
+ m_adpcm_pos = (m_adpcm_pos + 1) & 0xffff;
+ m_msm->data_w((m_adpcm_data >> 4) & 0xf);
+ }
+ else
+ {
+ /* transferring 2nd nibble */
+ m_msm->data_w(m_adpcm_data & 0x0f);
+ m_adpcm_data = -1;
+ }
+ }
+}
+
+static ADDRESS_MAP_START( program_map, AS_PROGRAM, 8, wackygtr_state )
+ AM_RANGE(0x3000, 0x3000) AM_WRITE(sample_length_w)
+ AM_RANGE(0x3001, 0x3001) AM_WRITE(sample_pos_w)
+ AM_RANGE(0x6000, 0x6000) AM_READ(_0x6000_r) /* guessed hw peripheral address */
+ AM_RANGE(0x6001, 0x6001) AM_READ(_0x6001_r) /* guessed hw peripheral address */
+ AM_RANGE(0x6002, 0x6002) AM_READ(_0x6002_r) /* guessed hw peripheral address */
+ AM_RANGE(0x71d0, 0x71d0) AM_READ(_0x71d0_r) /* guessed hw peripheral address */
+ AM_RANGE(0x71d5, 0x71d5) AM_READ(_0x71d5_r) /* guessed hw peripheral address */
+ AM_RANGE(0x7000, 0x7fff) AM_RAM
+ AM_RANGE(0x8000, 0xffff) AM_ROM
+ADDRESS_MAP_END
+
+static MACHINE_CONFIG_START( wackygtr, wackygtr_state )
+
+ MCFG_CPU_ADD("maincpu", M6809E, XTAL_8MHz)
+ MCFG_CPU_PROGRAM_MAP(program_map)
+
+ /* Video */
+// MCFG_DEFAULT_LAYOUT(layout_wackygtr)
+
+ /* Sound */
+ 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_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+
+ /* I have a hunch that this board may also
+ * contain a YM2151 sound chip for background music...
+ */
+MACHINE_CONFIG_END
+
+
+ROM_START( wackygtr )
+ ROM_REGION(0x10000, "maincpu", 0)
+ ROM_LOAD("wp3-pr0.4d", 0x8000, 0x8000, CRC(71ca4437) SHA1(c7d948c5593e6053fd0a65601f6c06871f5861f0))
+
+ ROM_REGION(0x10000, "oki", 0)
+ ROM_LOAD("wp3-vo0.2h", 0x0000, 0x10000, CRC(91c7986f) SHA1(bc9fa0d41c1caa0f909a349f511d022b7e42c6cd))
+ROM_END
+
+GAME(1990, wackygtr, 0, wackygtr, wackygtr, wackygtr_state, wackygtr, ROT0, "Data East", "Wacky Gator", MACHINE_IS_SKELETON_MECHANICAL)
diff --git a/src/mame/drivers/wallc.c b/src/mame/drivers/wallc.c
index 7db9f738a61..2d2c45d09ef 100644
--- a/src/mame/drivers/wallc.c
+++ b/src/mame/drivers/wallc.c
@@ -490,8 +490,8 @@ DRIVER_INIT_MEMBER(wallc_state,sidam)
}
-GAME( 1984, wallc, 0, wallc, wallc, wallc_state, wallc, ROT0, "Midcoin", "Wall Crash (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1984, wallca, wallc, wallc, wallc, wallc_state, wallca, ROT0, "Midcoin", "Wall Crash (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1984, brkblast,wallc, wallc, wallc, wallc_state, wallca, ROT0, "bootleg (Fadesa)", "Brick Blast (bootleg of Wall Crash)", GAME_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", GAME_NOT_WORKING | GAME_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/mess/drivers/wangpc.c b/src/mame/drivers/wangpc.c
index 4e30a408ca2..4ca371b4267 100644
--- a/src/mess/drivers/wangpc.c
+++ b/src/mame/drivers/wangpc.c
@@ -1191,4 +1191,4 @@ ROM_END
// GAME DRIVERS
//**************************************************************************
-COMP( 1985, wangpc, 0, 0, wangpc, wangpc, driver_device, 0, "Wang Laboratories", "Wang Professional Computer", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
+COMP( 1985, wangpc, 0, 0, wangpc, wangpc, driver_device, 0, "Wang Laboratories", "Wang Professional Computer", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/wardner.c b/src/mame/drivers/wardner.c
index d6c1d4232b7..2ab039143f9 100644
--- a/src/mame/drivers/wardner.c
+++ b/src/mame/drivers/wardner.c
@@ -579,6 +579,6 @@ ROM_START( wardnerj )
ROM_END
-GAME( 1987, wardner, 0, wardner, wardner, driver_device, 0, ROT0, "Toaplan / Taito Corporation Japan", "Wardner (World)", GAME_SUPPORTS_SAVE )
-GAME( 1987, pyros, wardner, wardner, pyros, driver_device, 0, ROT0, "Toaplan / Taito America Corporation", "Pyros (US)", GAME_SUPPORTS_SAVE )
-GAME( 1987, wardnerj, wardner, wardner, wardnerj, driver_device, 0, ROT0, "Toaplan / Taito Corporation", "Wardner no Mori (Japan)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/warpsped.c b/src/mame/drivers/warpsped.c
index a8534ba6460..a81261ac4b6 100644
--- a/src/mame/drivers/warpsped.c
+++ b/src/mame/drivers/warpsped.c
@@ -372,4 +372,4 @@ ROM_START( warpsped )
ROM_END
-GAME( 1979?, warpsped, 0, warpspeed, warpspeed, driver_device, 0, ROT0, "Meadows Games, Inc.", "Warp Speed (prototype)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_COLORS | GAME_NO_SOUND | GAME_SUPPORTS_SAVE ) // year not shown, 1979 is according to date stamps on PCB chips.
+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.
diff --git a/src/mame/drivers/warpwarp.c b/src/mame/drivers/warpwarp.c
index 69a95f87cd1..9a4e1ed7675 100644
--- a/src/mame/drivers/warpwarp.c
+++ b/src/mame/drivers/warpwarp.c
@@ -150,18 +150,18 @@ INTERRUPT_GEN_MEMBER(warpwarp_state::vblank_irq)
device.execute().set_input_line(0, ASSERT_LINE);
}
+IOPORT_ARRAY_MEMBER(warpwarp_state::portnames) { "SW0", "SW1", "DSW2", "PLACEHOLDER" }; // "IN1" & "IN2" are read separately when offset==3
/* B&W Games I/O */
READ8_MEMBER(warpwarp_state::geebee_in_r)
{
int res;
- static const char *const portnames[] = { "SW0", "SW1", "DSW2", "PLACEHOLDER" }; // "IN1" & "IN2" are read separately when offset==3
offset &= 3;
- res = ioport(portnames[offset])->read_safe(0);
+ res = m_ports[offset] ? m_ports[offset]->read() : 0;
if (offset == 3)
{
- res = ioport((flip_screen() & 1) ? "IN2" : "IN1")->read(); // read player 2 input in cocktail mode
+ res = (flip_screen() & 1) ? m_in2->read() : m_in1->read(); // read player 2 input in cocktail mode
if (m_handle_joystick)
{
/* map digital two-way joystick to two fixed VOLIN values */
@@ -234,13 +234,13 @@ WRITE8_MEMBER(warpwarp_state::geebee_out7_w)
/* Read Switch Inputs */
READ8_MEMBER(warpwarp_state::warpwarp_sw_r)
{
- return (ioport("IN0")->read() >> (offset & 7)) & 1;
+ return (m_in0->read() >> (offset & 7)) & 1;
}
/* Read Dipswitches */
READ8_MEMBER(warpwarp_state::warpwarp_dsw1_r)
{
- return (ioport("DSW1")->read() >> (offset & 7)) & 1;
+ return (m_dsw1->read() >> (offset & 7)) & 1;
}
/* Read mux Controller Inputs */
@@ -248,7 +248,7 @@ READ8_MEMBER(warpwarp_state::warpwarp_vol_r)
{
int res;
- res = ioport((flip_screen() & 1) ? "VOLIN2" : "VOLIN1")->read();
+ res = (flip_screen() & 1) ? m_volin2->read() : m_volin1->read();
if (m_handle_joystick)
{
if (res & 1) return 0x0f;
@@ -993,18 +993,18 @@ DRIVER_INIT_MEMBER(warpwarp_state,warpwarp)
/* B & W games */
-GAMEL(1978, geebee, 0, geebee, geebee, warpwarp_state, geebee, ROT90, "Namco", "Gee Bee (Japan)", GAME_SUPPORTS_SAVE, layout_geebee )
-GAMEL(1978, geebeeb, geebee, geebee, geebeeb, warpwarp_state, geebee, ROT90, "Namco (F.lli Bertolino license)", "Gee Bee (Europe)", GAME_SUPPORTS_SAVE, layout_geebee ) // Fratelli Bertolino
-GAMEL(1978, geebeeg, geebee, geebee, geebee, warpwarp_state, geebee, ROT90, "Namco (Gremlin license)", "Gee Bee (US)", GAME_SUPPORTS_SAVE, layout_geebee )
+GAMEL(1978, geebee, 0, geebee, geebee, warpwarp_state, geebee, ROT90, "Namco", "Gee Bee (Japan)", MACHINE_SUPPORTS_SAVE, layout_geebee )
+GAMEL(1978, geebeeb, geebee, geebee, geebeeb, warpwarp_state, geebee, ROT90, "Namco (F.lli Bertolino license)", "Gee Bee (Europe)", MACHINE_SUPPORTS_SAVE, layout_geebee ) // Fratelli Bertolino
+GAMEL(1978, geebeeg, geebee, geebee, geebee, warpwarp_state, geebee, ROT90, "Namco (Gremlin license)", "Gee Bee (US)", MACHINE_SUPPORTS_SAVE, layout_geebee )
-GAMEL(1980, navarone, 0, navarone, navarone, warpwarp_state, navarone, ROT90, "Namco", "Navarone", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_navarone )
-GAME( 1980, kaitein, kaitei, navarone, kaitein, warpwarp_state, kaitein, ROT90, "K.K. Tokki (Namco license)", "Kaitei Takara Sagashi (Namco license)", GAME_SUPPORTS_SAVE ) // pretty sure it didn't have a color overlay
-GAME( 1980, kaitei, 0, navarone, kaitei, warpwarp_state, kaitei, ROT90, "K.K. Tokki", "Kaitei Takara Sagashi", GAME_SUPPORTS_SAVE ) // "
-GAME( 1980, sos, 0, navarone, sos, warpwarp_state, sos, ROT90, "Namco", "SOS", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // developed by Shoei?
+GAMEL(1980, navarone, 0, navarone, navarone, warpwarp_state, navarone, ROT90, "Namco", "Navarone", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE, layout_navarone )
+GAME( 1980, kaitein, kaitei, navarone, kaitein, warpwarp_state, kaitein, ROT90, "K.K. Tokki (Namco license)", "Kaitei Takara Sagashi (Namco license)", MACHINE_SUPPORTS_SAVE ) // pretty sure it didn't have a color overlay
+GAME( 1980, kaitei, 0, navarone, kaitei, warpwarp_state, kaitei, ROT90, "K.K. Tokki", "Kaitei Takara Sagashi", MACHINE_SUPPORTS_SAVE ) // "
+GAME( 1980, sos, 0, navarone, sos, warpwarp_state, sos, ROT90, "Namco", "SOS", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // developed by Shoei?
/* Color games */
-GAME( 1979, bombbee, 0, bombbee, bombbee, warpwarp_state, bombbee, ROT90, "Namco", "Bomb Bee", GAME_SUPPORTS_SAVE )
-GAME( 1979, cutieq, 0, bombbee, cutieq, warpwarp_state, bombbee, ROT90, "Namco", "Cutie Q", GAME_SUPPORTS_SAVE )
-GAME( 1981, warpwarp, 0, warpwarp, warpwarp, warpwarp_state, warpwarp, ROT90, "Namco", "Warp & Warp", GAME_SUPPORTS_SAVE )
-GAME( 1981, warpwarpr, warpwarp, warpwarp, warpwarpr, warpwarp_state, warpwarp, ROT90, "Namco (Rock-Ola license)", "Warp Warp (Rock-Ola set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1981, warpwarpr2, warpwarp, warpwarp, warpwarpr, warpwarp_state, warpwarp, ROT90, "Namco (Rock-Ola license)", "Warp Warp (Rock-Ola set 2)", GAME_SUPPORTS_SAVE )
+GAME( 1979, bombbee, 0, bombbee, bombbee, warpwarp_state, bombbee, ROT90, "Namco", "Bomb Bee", MACHINE_SUPPORTS_SAVE )
+GAME( 1979, cutieq, 0, bombbee, cutieq, warpwarp_state, bombbee, ROT90, "Namco", "Cutie Q", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, warpwarp, 0, warpwarp, warpwarp, warpwarp_state, warpwarp, ROT90, "Namco", "Warp & Warp", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, warpwarpr, warpwarp, warpwarp, warpwarpr, warpwarp_state, warpwarp, ROT90, "Namco (Rock-Ola license)", "Warp Warp (Rock-Ola set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, warpwarpr2, warpwarp, warpwarp, warpwarpr, warpwarp_state, warpwarp, ROT90, "Namco (Rock-Ola license)", "Warp Warp (Rock-Ola set 2)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/warriorb.c b/src/mame/drivers/warriorb.c
index 59a03d31071..c93f3a6a4d7 100644
--- a/src/mame/drivers/warriorb.c
+++ b/src/mame/drivers/warriorb.c
@@ -776,7 +776,7 @@ 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)", GAME_SUPPORTS_SAVE )
-GAME( 1989, darius2d, darius2, darius2d, darius2d, driver_device, 0, ROT0, "Taito Corporation", "Darius II (dual screen) (Japan, Rev 2)", GAME_SUPPORTS_SAVE )
-GAME( 1989, darius2do, darius2, darius2d, darius2d, driver_device, 0, ROT0, "Taito Corporation", "Darius II (dual screen) (Japan, Rev 1)", GAME_SUPPORTS_SAVE )
-GAME( 1991, warriorb, 0, warriorb, warriorb, driver_device, 0, ROT0, "Taito Corporation", "Warrior Blade - Rastan Saga Episode III (Japan)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/wc90.c b/src/mame/drivers/wc90.c
index 947955c36a0..84a7162aedf 100644
--- a/src/mame/drivers/wc90.c
+++ b/src/mame/drivers/wc90.c
@@ -51,28 +51,6 @@ To enter into input test mode:
Press one of the start buttons to exit.
-*****************************
-* *
-* Pacman on WC90 Hardware *
-* *
-*****************************
-
-There is known to be a Pacman hack running on this hardware. It was done by Mike C. and isn't meant
-for inclusion in MAME. However the roms with checksums are listed below to prevent it being added
-as a newly "found" game:
-
-Set is known as pac90 (rom names may differ, but the CRC32/SHA1 values are listed):
-
-rom1.ic87 CRC32 8af34306 SHA1 1a98adca74f46da36e3648d37bfcb56a328a031e
-rom2.ic67 CRC32 bc9bfdf2 SHA1 869e4012e5c577e501143cbfd75cce8cef919c86
-rom3.ic54 CRC32 1c4d17fd SHA1 5abebf867de452cc3e85331e91b9110c26a8b050
-char.ic85 CRC32 70941a50 SHA1 283583743c21774d0097dc935ae7bc7009b5b633
-char.ic85 CRC32 0b906dae SHA1 0d14d6a7bbe0b8772143afb4c6c94c62313e4b9c <-- An alternate version...
-sprite1.ic50 CRC32 190852ea SHA1 fad7eb3aa53d03917173dd5a040655cfd329db32
-sprite2.ic60 CRC32 33effbea SHA1 dbf6b735f3c8bacb695caf5d15ac8b7961bffc74
-voice.ic82 CRC32 abc61f3d SHA1 c6f123d16a26c4d77c635617dd97bb4b906c463a
-
-
*/
#include "emu.h"
@@ -235,6 +213,86 @@ INPUT_PORTS_END
+static INPUT_PORTS_START( pac90 )
+ PORT_START("P1")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("P2")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_PLAYER(2)
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
+
+ PORT_START("DSW1")
+ PORT_DIPNAME( 0x03, 0x01, DEF_STR( Coinage ) ) PORT_DIPLOCATION("SW1:8,7")
+ PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( 1C_1C ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( 1C_2C ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) )
+ PORT_DIPNAME( 0x0c, 0x08, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW1:6,5")
+ PORT_DIPSETTING( 0x00, "1" )
+ PORT_DIPSETTING( 0x04, "2" )
+ PORT_DIPSETTING( 0x08, "3" )
+ PORT_DIPSETTING( 0x0c, "5" )
+ PORT_DIPNAME( 0x30, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:4,3")
+ PORT_DIPSETTING( 0x00, "10000" )
+ PORT_DIPSETTING( 0x10, "15000" )
+ PORT_DIPSETTING( 0x20, "20000" )
+ PORT_DIPSETTING( 0x30, DEF_STR( None ) )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW1:2")
+ PORT_DIPSETTING( 0x40, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Hard ) )
+ PORT_DIPNAME( 0x80, 0x80, "Ghost Names" ) PORT_DIPLOCATION("SW1:1")
+ PORT_DIPSETTING( 0x80, DEF_STR( Normal ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Alternate ) )
+
+ PORT_START("DSW2")
+ PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:8")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( On ) )
+ PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:7")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( On ) )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:6")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:5")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:4")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:3")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:2")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unused ) ) PORT_DIPLOCATION("SW2:1")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( On ) )
+
+
+ PORT_START("SYSTEM")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 )
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 )
+INPUT_PORTS_END
+
+
+
static const gfx_layout charlayout =
{
8,8,
@@ -332,6 +390,12 @@ static MACHINE_CONFIG_DERIVED( wc90t, wc90 )
MCFG_VIDEO_START_OVERRIDE(wc90_state, wc90t )
MACHINE_CONFIG_END
+static MACHINE_CONFIG_DERIVED( pac90, wc90 )
+ MCFG_DEVICE_MODIFY("spritegen")
+ MCFG_TECMO_SPRITE_YOFFSET(16) // sprites need shifting, why?
+MACHINE_CONFIG_END
+
+
ROM_START( wc90 )
ROM_REGION( 0x20000, "maincpu", 0 )
ROM_LOAD( "ic87_01.bin", 0x00000, 0x08000, CRC(4a1affbc) SHA1(bc531e97ca31c66fdac194e2d79d5c6ba1300556) ) /* c000-ffff is not used */
@@ -365,6 +429,7 @@ ROM_START( wc90 )
ROM_LOAD( "ic82_06.bin", 0x00000, 0x20000, CRC(2fd692ed) SHA1(0273dc39181504320bec0187d074b2f86c821508) )
ROM_END
+
ROM_START( wc90a )
ROM_REGION( 0x20000, "maincpu", 0 )
ROM_LOAD( "wc90-1.bin", 0x00000, 0x08000, CRC(d1804e1a) SHA1(eec7374f4d23c89843f38fffff436635adb43b63) ) /* c000-ffff is not used */
@@ -464,7 +529,40 @@ ROM_START( wc90t )
ROM_LOAD( "ic82_06.bin", 0x00000, 0x20000, CRC(2fd692ed) SHA1(0273dc39181504320bec0187d074b2f86c821508) )
ROM_END
-GAME( 1989, wc90, 0, wc90, wc90, driver_device, 0, ROT0, "Tecmo", "Tecmo World Cup '90 (World)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1989, wc90a, wc90, wc90, wc90, driver_device, 0, ROT0, "Tecmo", "Tecmo World Cup '90 (Euro set 1)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1989, wc90b, wc90, wc90, wc90, driver_device, 0, ROT0, "Tecmo", "Tecmo World Cup '90 (Euro set 2)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1989, wc90t, wc90, wc90t,wc90, driver_device, 0, ROT0, "Tecmo", "Tecmo World Cup '90 (trackball set 1)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+ROM_START( pac90 )
+ ROM_REGION( 0x20000, "maincpu", 0 )
+ ROM_LOAD( "rom1.ic87", 0x00000, 0x08000, CRC(8af34306) SHA1(1a98adca74f46da36e3648d37bfcb56a328a031e) )
+
+ ROM_REGION( 0x20000, "sub", ROMREGION_ERASE00 ) /* Second CPU */
+ ROM_LOAD( "rom2.ic67", 0x00000, 0x10000, CRC(bc9bfdf2) SHA1(869e4012e5c577e501143cbfd75cce8cef919c86) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "rom3.ic54", 0x00000, 0x10000, CRC(1c4d17fd) SHA1(5abebf867de452cc3e85331e91b9110c26a8b050) )
+
+ ROM_REGION( 0x010000, "gfx1", 0 )
+ ROM_LOAD( "char.ic85", 0x00000, 0x10000, CRC(70941a50) SHA1(283583743c21774d0097dc935ae7bc7009b5b633) )
+ // char.ic85 CRC32 0b906dae SHA1 0d14d6a7bbe0b8772143afb4c6c94c62313e4b9c <-- An alternate version...
+
+ ROM_REGION( 0x040000, "gfx2", ROMREGION_ERASE00 )
+ //ROM_LOAD( "ic86_08v.bin", 0x00000, 0x20000, CRC(8fa1a1ff) SHA1(ce624617ac8c8b54e41294cf5dca7a09c91f53ba) ) /* tiles #1 */
+ //ROM_LOAD( "ic90_09v.bin", 0x20000, 0x20000, CRC(99f8841c) SHA1(1969b4d78ca00924a7550826e1c4f4fa0588ef02) ) /* tiles #2 */
+
+ ROM_REGION( 0x040000, "gfx3", ROMREGION_ERASE00 )
+ //ROM_LOAD( "ic87_10v.bin", 0x00000, 0x20000, CRC(8232093d) SHA1(59bf9c9a858b47326cf0c64b1ee6ac727a15a20b) ) /* tiles #3 */
+ //ROM_LOAD( "ic91_11v.bin", 0x20000, 0x20000, CRC(188d3789) SHA1(35654a99a20735bae09b32f74255f8132dee9af2) ) /* tiles #4 */
+
+ ROM_REGION( 0x080000, "gfx4", ROMREGION_ERASE00 )
+ ROM_LOAD( "sprite1.ic50", 0x00000, 0x10000, CRC(190852ea) SHA1(fad7eb3aa53d03917173dd5a040655cfd329db32) ) /* sprites */
+ ROM_LOAD( "sprite2.ic60", 0x40000, 0x10000, CRC(33effbea) SHA1(dbf6b735f3c8bacb695caf5d15ac8b7961bffc74) ) /* sprites */
+
+ ROM_REGION( 0x20000, "ymsnd", ROMREGION_ERASE00 ) /* 64k for ADPCM samples */
+ ROM_LOAD( "voice.ic82", 0x00000, 0x10000, CRC(abc61f3d) SHA1(c6f123d16a26c4d77c635617dd97bb4b906c463a) )
+ROM_END
+
+
+GAME( 1989, wc90, 0, wc90, wc90, driver_device, 0, ROT0, "Tecmo", "Tecmo World Cup '90 (World)", MACHINE_IMPERFECT_SOUND | MACHINE_NO_COCKTAIL | 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_NO_COCKTAIL | 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_NO_COCKTAIL | 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_NO_COCKTAIL | 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_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE ) // made by Mike Coates etc.
diff --git a/src/mame/drivers/wc90b.c b/src/mame/drivers/wc90b.c
index f8664e80e9f..fa192ba4db7 100644
--- a/src/mame/drivers/wc90b.c
+++ b/src/mame/drivers/wc90b.c
@@ -512,6 +512,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)", GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1989, wc90b2, wc90, wc90b, wc90b, driver_device, 0, ROT0, "bootleg", "Worldcup '90", GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1989, wc90ba, wc90, wc90b, wc90b, driver_device, 0, ROT0, "bootleg", "Euro League (Italian hack of Temco World Cup '90 - alt version)", GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1989, wc90b1, wc90, wc90b, wc90b, driver_device, 0, ROT0, "bootleg", "Euro League (Italian hack of Tecmo World Cup '90)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1989, wc90b2, wc90, wc90b, wc90b, driver_device, 0, ROT0, "bootleg", "Worldcup '90", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1989, wc90ba, wc90, wc90b, wc90b, driver_device, 0, ROT0, "bootleg", "Euro League (Italian hack of Temco World Cup '90 - alt version)", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/wecleman.c b/src/mame/drivers/wecleman.c
index 9ae57ff0750..24a289bc04b 100644
--- a/src/mame/drivers/wecleman.c
+++ b/src/mame/drivers/wecleman.c
@@ -1231,7 +1231,7 @@ ROM_START( wecleman )
ROM_LOAD( "602a12.1a", 0x000000, 0x04000, CRC(77b9383d) SHA1(7cb970889677704d6324bb64aafc05326c4503ad) )
ROM_END
-ROM_START( wecleman2 )
+ROM_START( weclemana )
ROM_REGION( 0x40000, "maincpu", 0 ) /* Main CPU Code */
// I doubt these labels are correct, or one set of roms is bad.
ROM_LOAD16_BYTE( "602f08.17h", 0x00000, 0x10000, CRC(43241265) SHA1(3da1ed0d15b03845c07f07ec6838ce160d81633d) ) // only 17h and 23h differ slightly from parent
@@ -1280,6 +1280,58 @@ ROM_START( wecleman2 )
ROM_REGION( 0x04000, "user1", 0 ) /* extra data for road effects? */
ROM_LOAD( "602a12.1a", 0x000000, 0x04000, CRC(77b9383d) SHA1(7cb970889677704d6324bb64aafc05326c4503ad) )
ROM_END
+/*
+early set V.1.26
+rom labels faded out, all other roms match
+*/
+ROM_START( weclemanb )
+ ROM_REGION( 0x40000, "maincpu", 0 ) /* Main CPU Code */
+ ROM_LOAD16_BYTE( "17h", 0x00000, 0x10000, CRC(66901326) SHA1(672aab497e9b94843451e016de6ca6d3c358362e) )
+ ROM_LOAD16_BYTE( "23h", 0x00001, 0x10000, CRC(d9d492f4) SHA1(12c177fa5cc541be86431f314e96a4f3a74f95c6) )
+ ROM_LOAD16_BYTE( "602a09.18h", 0x20000, 0x10000, CRC(8a9d756f) SHA1(12605e86ce29e6300b5400720baac7b0293d9e66) )
+ ROM_LOAD16_BYTE( "602a10.22h", 0x20001, 0x10000, CRC(569f5001) SHA1(ec2dd331a279083cf847fbbe71c017038a1d562a) )
+
+ ROM_REGION( 0x10000, "sub", 0 ) /* Sub CPU Code */
+ ROM_LOAD16_BYTE( "602a06.18a", 0x00000, 0x08000, CRC(e12c0d11) SHA1(991afd48bf1b2c303b975ce80c754e5972c39111) )
+ ROM_LOAD16_BYTE( "602a07.20a", 0x00001, 0x08000, CRC(47968e51) SHA1(9b01b2c6a14dd80327a8f66a7f1994471a4bc38e) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound CPU Code */
+ ROM_LOAD( "602a01.6d", 0x00000, 0x08000, CRC(deafe5f1) SHA1(4cfbe2841233b1222c22160af7287b7a7821c3a0) )
+
+ ROM_REGION( 0x200000 * 2, "gfx1", 0 ) /* x2, do not dispose, zooming sprites */
+ ROM_LOAD( "602a25.12e", 0x000000, 0x20000, CRC(0eacf1f9) SHA1(b4dcd457e68175ffee3da4aff23a241fe33eb500) )
+ ROM_LOAD( "602a26.14e", 0x020000, 0x20000, CRC(2182edaf) SHA1(5ae4223a76b3c0be8f66458707f2e6f63fba0b13) )
+ ROM_LOAD( "602a27.15e", 0x040000, 0x20000, CRC(b22f08e9) SHA1(1ba99bc4e00e206507e9bfafc989208d6ae6f8a3) )
+ ROM_LOAD( "602a28.17e", 0x060000, 0x20000, CRC(5f6741fa) SHA1(9c81634f502da8682673b3b87efe0497af8abbd7) )
+ ROM_LOAD( "602a21.6e", 0x080000, 0x20000, CRC(8cab34f1) SHA1(264df01460f44cd5ccdf3c8bd2d3f327874b69ea) )
+ ROM_LOAD( "602a22.7e", 0x0a0000, 0x20000, CRC(e40303cb) SHA1(da943437ea2e208ea477f35bb05f77412ecdf9ac) )
+ ROM_LOAD( "602a23.9e", 0x0c0000, 0x20000, CRC(75077681) SHA1(32ad10e9e32779c36bb50b402f5c6d941e293942) )
+ ROM_LOAD( "602a24.10e", 0x0e0000, 0x20000, CRC(583dadad) SHA1(181ebe87095d739a5903c17ec851864e2275f571) )
+ ROM_LOAD( "602a17.12c", 0x100000, 0x20000, CRC(31612199) SHA1(dff58ec3f7d98bfa7e9405f0f23647ff4ecfee62) )
+ ROM_LOAD( "602a18.14c", 0x120000, 0x20000, CRC(3f061a67) SHA1(be57c38410c5635311d26afc44b3065e42fa12b7) )
+ ROM_LOAD( "602a19.15c", 0x140000, 0x20000, CRC(5915dbc5) SHA1(61ab123c8a4128a18d7eb2cae99ad58203f03ffc) )
+ ROM_LOAD( "602a20.17c", 0x160000, 0x20000, CRC(f87e4ef5) SHA1(4c2f0d036925a7ccd32aef3ca12b960a27247bc3) )
+ ROM_LOAD( "602a13.6c", 0x180000, 0x20000, CRC(5d3589b8) SHA1(d146cb8511cfe825bdfe8296c7758545542a0faa) )
+ ROM_LOAD( "602a14.7c", 0x1a0000, 0x20000, CRC(e3a75f6c) SHA1(80b20323e3560316ffbdafe4fd2f81326e103045) )
+ ROM_LOAD( "602a15.9c", 0x1c0000, 0x20000, CRC(0d493c9f) SHA1(02690a1963cadd469bd67cb362384923916900a1) )
+ ROM_LOAD( "602a16.10c", 0x1e0000, 0x20000, CRC(b08770b3) SHA1(41871e9261d08fd372b7deb72d939973fb694b54) )
+
+ ROM_REGION( 0x18000, "gfx2", 0 )
+ ROM_LOAD( "602a31.26g", 0x000000, 0x08000, CRC(01fa40dd) SHA1(2b8aa97f5116f39ae6a8e46f109853d70e370884) ) // layers
+ ROM_LOAD( "602a30.24g", 0x008000, 0x08000, CRC(be5c4138) SHA1(7aee2ee17ef3e37399a60d9b019cfa733acbf07b) )
+ ROM_LOAD( "602a29.23g", 0x010000, 0x08000, CRC(f1a8d33e) SHA1(ed6531f2fd4ad6835a879e9a5600387d8cad6d17) )
+
+ ROM_REGION( 0x0c000, "gfx3", 0 ) /* road */
+ ROM_LOAD( "602a04.11e", 0x000000, 0x08000, CRC(ade9f359) SHA1(58db6be6217ed697827015e50e99e58602042a4c) )
+ ROM_LOAD( "602a05.13e", 0x008000, 0x04000, CRC(f22b7f2b) SHA1(857389c57552c4e2237cb599f4c68c381430475e) ) // may also exist as 32KB with one half empty
+
+ ROM_REGION( 0x40000, "k007232", 0 ) /* Samples (Channel A 0x20000=Channel B) */
+ ROM_LOAD( "602a03.10a", 0x00000, 0x20000, CRC(31392b01) SHA1(0424747bc2015c9c93afd20e6a23083c0dcc4fb7) )
+ ROM_LOAD( "602a02.8a", 0x20000, 0x20000, CRC(e2be10ae) SHA1(109c31bf7252c83a062d259143cd8299681db778) )
+
+ ROM_REGION( 0x04000, "user1", 0 ) /* extra data for road effects? */
+ ROM_LOAD( "602a12.1a", 0x000000, 0x04000, CRC(77b9383d) SHA1(7cb970889677704d6324bb64aafc05326c4503ad) )
+ROM_END
void wecleman_state::wecleman_unpack_sprites()
{
@@ -1405,6 +1457,169 @@ ROM_START( hotchase )
ROM_LOAD( "763a12", 0x000000, 0x008000, CRC(05f1e553) SHA1(8aaeb7374bd93038c24e6470398936f22cabb0fe) )
ROM_END
+/*
+
+Hot Chase
+Konami 1988
+
+
+
+ E08D E08B E09D E09B E10D E10B
+ E08A E08C E09A E09C E10A E10C
+
+GX763 350861
+
+ E09 E10 E11
+ E08 07232 07232
+ 07232 3.579MHz 2128
+ 6809 P01.R10
+ SW1
+ SW2 2128 2128
+ 6264 6264 6264 6264
+ R02.P14 R03.R14
+ 07770 R04.P16 R05.R16
+ 2018-45 D06.E18 D07.H18 10MHz
+ 2018-45 68000-10 07641 68000-10
+
+GX763 350860
+
+ 051316 PSAC 051316 PSAC A13.H5 A14.J5
+ 2018-45 2018-R6
+ 2018-45
+ 2018-45 07558
+ 051316 PSAC 2018-45 A12.R13
+
+ A15.H14
+
+ A23.B17 07634
+ 07635
+ 2018-45 2018-45
+ 2018-45 2018-45 07557
+ 2018-45 2018-45 25.2MHz
+ 2018-45 2018-45
+
+
+Left EPROM board
+
+ E19A.A8 E19B.A7 E19C.A6 E19D.A5
+E22E.B12 E22F.B11 E22G.B10 E22H.B9 E19E.B8 E19F.B7 E19G.B6 E19H.B5
+ E22A.D9 E22B.D7 E22C.D6 E22D.D5
+
+Right EPROM board
+
+E21E E21F E21G E21H E17A E17B E17C E17D E18A E18B E18C E18D
+E20E E20F E20G E20H E17E E17F E17G E17H E18E E18F E18G E18H
+ E20A E20B E20C E20D E21A E21B E21C E21D
+
+*/
+
+// uses EPROM sub-boards in place of some of the MASK roms, different program too
+ROM_START( hotchasea )
+ ROM_REGION( 0x40000, "maincpu", 0 ) /* Main Code */
+ ROM_LOAD16_BYTE( "763r05.r16", 0x000000, 0x010000, CRC(c880d5e4) SHA1(3c3ab3ad5496cfbc8de76620eedc06601ee7a8c7) )
+ ROM_LOAD16_BYTE( "763r04.p16", 0x000001, 0x010000, CRC(b732ee2c) SHA1(b3d73cf5039980ac74927eef656326515fd2026b) )
+ ROM_LOAD16_BYTE( "763r03.r14", 0x020000, 0x010000, CRC(13dd71de) SHA1(4b86b81ef79e0e92a1e458010b0b9574183a9c29) )
+ ROM_LOAD16_BYTE( "763r02.p14", 0x020001, 0x010000, CRC(6cd1a18e) SHA1(0ddfe6a46e95052534325f228b7f0faba121950e) )
+
+ ROM_REGION( 0x20000, "sub", 0 ) /* Sub Code */
+ ROM_LOAD16_BYTE( "763d07.h18", 0x000000, 0x010000, CRC(ae12fa90) SHA1(7f76f09916fe152411b5af3c504ee7be07497ef4) )
+ ROM_LOAD16_BYTE( "763d06.e18", 0x000001, 0x010000, CRC(b77e0c07) SHA1(98bf492ac889d31419df706029fdf3d51b85c936) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound Code */
+ ROM_LOAD( "763p01.r10", 0x8000, 0x8000, CRC(15dbca7b) SHA1(ac0c965b72a8579a3b60dbadfb942248d2cff2d8) )
+
+ ROM_REGION( 0x300000 * 2, "gfx1", 0 ) /* x2, do not dispose, zooming sprites */
+ ROM_LOAD16_BYTE( "763e17a", 0x000000, 0x010000, CRC(8542d7d7) SHA1(a7c8aa7d8e0cabdc5269eb7adff944aaa0f819b6) )
+ ROM_LOAD16_BYTE( "763e17e", 0x000001, 0x010000, CRC(4b4d919c) SHA1(0364eb74da8db7238888274d12011de876662d5a) )
+ ROM_LOAD16_BYTE( "763e17b", 0x020000, 0x010000, CRC(ba9d7e72) SHA1(3af618087dcc66552ffabaf655f97b20e597122c) )
+ ROM_LOAD16_BYTE( "763e17f", 0x020001, 0x010000, CRC(582400bb) SHA1(9479e45087d908c9b20392dba2a752a7ec1482e2) )
+ ROM_LOAD16_BYTE( "763e17c", 0x040000, 0x010000, CRC(0ed292f8) SHA1(8c161e73c7f27925377799f67585b888bade6d82) )
+ ROM_LOAD16_BYTE( "763e17g", 0x040001, 0x010000, CRC(35b27ed7) SHA1(e17e7674ee210ff340482a16dce3439b55c29f72) )
+ ROM_LOAD16_BYTE( "763e17d", 0x060000, 0x010000, CRC(0166d00d) SHA1(e58f6deabc5743f6610252242f97bd5e973316ae) )
+ ROM_LOAD16_BYTE( "763e17h", 0x060001, 0x010000, CRC(e5b8e8e6) SHA1(ae1349977559ff24dcd1678d6fd3a3e118612d07) )
+ ROM_LOAD16_BYTE( "763e20a", 0x080000, 0x010000, CRC(256fe63c) SHA1(414325f2ff9abc411e2401dddd216e1a4de8a01e) )
+ ROM_LOAD16_BYTE( "763e20e", 0x080001, 0x010000, CRC(ee8ca7e1) SHA1(fee544d6508f4106176f39e3765961e9f80fe620) )
+ ROM_LOAD16_BYTE( "763e20b", 0x0a0000, 0x010000, CRC(b6714c24) SHA1(88f6437e181f36b7e44f1c70872314d8c0cc30e7) )
+ ROM_LOAD16_BYTE( "763e20f", 0x0a0001, 0x010000, CRC(9dbc4b21) SHA1(31559903707a4f8ba3b044e8aad928de38403dcf) )
+ ROM_LOAD16_BYTE( "763e20c", 0x0c0000, 0x010000, CRC(5173ad9b) SHA1(afe82c69f7036c7595f1a56b22176ba202b00b5c) )
+ ROM_LOAD16_BYTE( "763e20g", 0x0c0001, 0x010000, CRC(b8c77f99) SHA1(e3bea1481c5b1c4733130651f9cf18587d3efc46) )
+ ROM_LOAD16_BYTE( "763e20d", 0x0e0000, 0x010000, CRC(4ebdba32) SHA1(ac7daa291c82f75b09faf7bc5f6257870cc46061) )
+ ROM_LOAD16_BYTE( "763e20h", 0x0e0001, 0x010000, CRC(0a428654) SHA1(551026f6f57d38aedd3498cce33af7bb2cf07184) )
+ ROM_LOAD16_BYTE( "763e18a", 0x100000, 0x010000, CRC(09748099) SHA1(1821e2067b9a50a0638c8d105c617f4030d61877) )
+ ROM_LOAD16_BYTE( "763e18e", 0x100001, 0x010000, CRC(049d4fcf) SHA1(aed18297677a3bb0b7197f59ea329aef9b678c01) )
+ ROM_LOAD16_BYTE( "763e18b", 0x120000, 0x010000, CRC(ed0c3369) SHA1(84f336546dee01fec31c9c256ee00a9f8448cea4) )
+ ROM_LOAD16_BYTE( "763e18f", 0x120001, 0x010000, CRC(b596a9ce) SHA1(dea0fe1c3386b5f0d19df4467f42d077678ae220) )
+ ROM_LOAD16_BYTE( "763e18c", 0x140000, 0x010000, CRC(5a278291) SHA1(05c529baa68ef5877a28901c6f221e3d3593735f) )
+ ROM_LOAD16_BYTE( "763e18g", 0x140001, 0x010000, CRC(aa7263cd) SHA1(b2acf66c02faf7777c5cb947aaf8e038f29c0f2e) )
+ ROM_LOAD16_BYTE( "763e18d", 0x160000, 0x010000, CRC(b0b79a71) SHA1(46d0f17b7a6e4fb94ac9b8335bc598339d7707a5) )
+ ROM_LOAD16_BYTE( "763e18h", 0x160001, 0x010000, CRC(a18b9127) SHA1(890971d2922a59ff4beea00238e710c8d3e0f19d) )
+ ROM_LOAD16_BYTE( "763e21a", 0x180000, 0x010000, CRC(60788c29) SHA1(4faaa192d07f6acac0e7d11676146ecd0e71541f) )
+ ROM_LOAD16_BYTE( "763e21e", 0x180001, 0x010000, CRC(844799ff) SHA1(8dc3ae3bb30ecb4e921a5b2068d3cd9421577844) )
+ ROM_LOAD16_BYTE( "763e21b", 0x1a0000, 0x010000, CRC(1eefed61) SHA1(9c09dbff073d63384bf1ec9df4db4833afa33826) )
+ ROM_LOAD16_BYTE( "763e21f", 0x1a0001, 0x010000, CRC(3aacfb10) SHA1(fb3eebf1f0850ed2f8f02cd4b5b564524e391afd) )
+ ROM_LOAD16_BYTE( "763e21c", 0x1c0000, 0x010000, CRC(97e48b37) SHA1(864c73f48d839c2afeecec99605be6111f450ddd) )
+ ROM_LOAD16_BYTE( "763e21g", 0x1c0001, 0x010000, CRC(74fefb12) SHA1(7746918c3ea8981c9cb2ead79a252939ba8bde3f) )
+ ROM_LOAD16_BYTE( "763e21d", 0x1e0000, 0x010000, CRC(dd41569e) SHA1(065ee2de9ad6980788807cb563feccef1c3d1b9d) )
+ ROM_LOAD16_BYTE( "763e21h", 0x1e0001, 0x010000, CRC(7ea52bf6) SHA1(2be93f88ccdea989b05beca13ebbfb77626ea41f) )
+ ROM_LOAD16_BYTE( "763e19a", 0x200000, 0x010000, CRC(8c912c46) SHA1(e314edc39c32471c6fa2969e7c5c771c19fda88c) )
+ ROM_LOAD16_BYTE( "763e19e", 0x200001, 0x010000, CRC(0eb34787) SHA1(9b8145dae210a177585e672fce30339b39c3c0f3) )
+ ROM_LOAD16_BYTE( "763e19b", 0x220000, 0x010000, CRC(79960729) SHA1(f5c20ed7683aad8a435c292fbd5a1acc2a97ecee) )
+ ROM_LOAD16_BYTE( "763e19f", 0x220001, 0x010000, CRC(1764ec5f) SHA1(4f7a0a3667087523a1ccdfc2d0e54a520f1216b3) )
+ ROM_LOAD16_BYTE( "763e19c", 0x240000, 0x010000, CRC(f13377ac) SHA1(89f8d730cb457cc9cf55049b7002514302b2b04f) )
+ ROM_LOAD16_BYTE( "763e19g", 0x240001, 0x010000, CRC(f2102e89) SHA1(41ff5d8904618a77c7c3c78c52c6f1b9c5a318fd) )
+ ROM_LOAD16_BYTE( "763e19d", 0x260000, 0x010000, CRC(0b2a19f4) SHA1(3689b2c1f6227224fbcecc0d2470048a99510794) )
+ ROM_LOAD16_BYTE( "763e19h", 0x260001, 0x010000, CRC(cd6d08a5) SHA1(ce13a8bba84f24e7d1fb25254e2e95f591fe1d67) )
+ ROM_LOAD16_BYTE( "763e22a", 0x280000, 0x010000, CRC(16eec250) SHA1(f50375f207575e9d280285aca493902afbb7d729) )
+ ROM_LOAD16_BYTE( "763e22e", 0x280001, 0x010000, CRC(c184b1c0) SHA1(d765e6eb2631b77dff5331840ac2a99cf1250362) )
+ ROM_LOAD16_BYTE( "763e22b", 0x2a0000, 0x010000, CRC(1afe4b0c) SHA1(ce5a855291b443c1e16dbf54730960600c754fee) )
+ ROM_LOAD16_BYTE( "763e22f", 0x2a0001, 0x010000, CRC(61f27c98) SHA1(d80af1a3e424c8dbab4fd21d494a0580ab96cd8d) )
+ ROM_LOAD16_BYTE( "763e22c", 0x2c0000, 0x010000, CRC(c19b4b63) SHA1(93708b8769c44d5b93dcd2928a0d1120cc52c6ee) )
+ ROM_LOAD16_BYTE( "763e22g", 0x2c0001, 0x010000, CRC(5bcbaf29) SHA1(621aa19606a15abb1539c07a033b32fc374a2d6a) )
+ ROM_LOAD16_BYTE( "763e22d", 0x2e0000, 0x010000, CRC(fd5b669d) SHA1(fd5d82886708187e53c204c574ee252fc8a793af) )
+ ROM_LOAD16_BYTE( "763e22h", 0x2e0001, 0x010000, CRC(9a9f45d8) SHA1(24fa9425b00441fff124eae7b40df7e65c920323) )
+
+ ROM_REGION( 0x20000, "k051316_1", 0 ) /* bg */
+ ROM_LOAD( "763a14", 0x000000, 0x020000, CRC(60392aa1) SHA1(8499eb40a246587e24f6fd00af2eaa6d75ee6363) )
+
+ ROM_REGION( 0x08000, "k051316_2", 0 ) /* fg */
+ /* first half empty - PCB silkscreen reads "27256/27512" */
+ ROM_LOAD( "763a13", 0x000000, 0x008000, CRC(8bed8e0d) SHA1(ccff330abc23fe499e76c16cab5783c3daf155dd) )
+ ROM_CONTINUE( 0x000000, 0x008000 )
+
+ ROM_REGION( 0x20000, "gfx4", 0 ) /* road */
+ ROM_LOAD( "763a15", 0x000000, 0x020000, CRC(7110aa43) SHA1(639dc002cc1580f0530bb5bb17f574e2258d5954) )
+
+ ROM_REGION( 0x40000, "k007232_1", 0 ) /* Samples, 2 banks */
+ ROM_LOAD( "763e11a", 0x000000, 0x010000, CRC(a60a93c8) SHA1(ce319f2b30c82f66fee0bab65d091ef4bef58a89) )
+ ROM_LOAD( "763e11b", 0x010000, 0x010000, CRC(7750feb5) SHA1(e0900b8af400a50a22907ffa514847003cef342d) )
+ ROM_LOAD( "763e11c", 0x020000, 0x010000, CRC(78b89bf8) SHA1(b74427e363a486d4be003df39f4ca8d10b9d5fc9) )
+ ROM_LOAD( "763e11d", 0x030000, 0x010000, CRC(5f38d054) SHA1(ce0c87a7b7c0806e09cce5d48a651f12f790dd27) )
+
+ ROM_REGION( 0x40000, "k007232_2", 0 ) /* Samples, 2 banks */
+ ROM_LOAD( "763e10a", 0x000000, 0x010000, CRC(2b1cbefc) SHA1(f23fb943c277a05f2aa4d25de692d1fb3bb752ac) )
+ ROM_LOAD( "763e10b", 0x010000, 0x010000, CRC(8209c950) SHA1(944c2afb4cfc67bd243de499f5ca6a7982980f45) )
+ ROM_LOAD( "763e10c", 0x020000, 0x010000, CRC(b91d6c07) SHA1(ef90457cb495750c5793cd1716d0dc44d33d0a95) )
+ ROM_LOAD( "763e10d", 0x030000, 0x010000, CRC(5b465d20) SHA1(66f10b58873e738f5539b960468c7f92d07c28bc) )
+
+ ROM_REGION( 0x100000, "k007232_3", 0 ) /* Samples, 4 banks for each ROM */
+ ROM_LOAD( "763e08a", 0x000000, 0x020000, CRC(02e4e7ef) SHA1(1622e4d85a333acae6e5f9304a037389bfeb71dc) )
+ ROM_LOAD( "763e08b", 0x020000, 0x020000, CRC(94edde2f) SHA1(b124f83f271dab710d5ecb67a70cac7b4b41931c) )
+ ROM_LOAD( "763e08c", 0x040000, 0x020000, CRC(b1ab1529) SHA1(962ad45fdccf6431e05eaec65d1b2f7842bddc02) )
+ ROM_LOAD( "763e08d", 0x060000, 0x020000, CRC(ee8d14db) SHA1(098ba4f27b8cbb0ce017b28e5b69d6a3d2efa1df) )
+
+ ROM_LOAD( "763e09a", 0x080000, 0x020000, CRC(1e6628ec) SHA1(9d24da1d32cb39dcbe3d0633045054d398ca8eb8) )
+ ROM_LOAD( "763e09b", 0x0a0000, 0x020000, CRC(f0c2feb8) SHA1(9454d45a97dc2e823baf68dce85acce8e82a18f2) )
+ ROM_LOAD( "763e09c", 0x0c0000, 0x020000, CRC(a0ade3e4) SHA1(1c94cede76f9350769a589625fadaee855c38866) )
+ ROM_LOAD( "763e09d", 0x0e0000, 0x020000, CRC(c74e484d) SHA1(dd7ef64c30443847c638291f6cd2b45a5f0b2310) )
+
+ ROM_REGION( 0x08000, "user1", 0 ) /* extra data for road effects? */
+ ROM_LOAD( "763a12", 0x000000, 0x008000, CRC(05f1e553) SHA1(8aaeb7374bd93038c24e6470398936f22cabb0fe) )
+
+ ROM_REGION( 0x200, "user2", 0 )
+ ROM_LOAD( "763a23.b17", 0x00000, 0x200, CRC(81c30352) SHA1(20700aed065929835ef5c3b564a6f531f0a8fedf) )
+ROM_END
+
+
/* Important: you must leave extra space when listing sprite ROMs
in a ROM module definition. This routine unpacks each sprite nibble
into a byte, doubling the memory consumption. */
@@ -1472,6 +1687,9 @@ DRIVER_INIT_MEMBER(wecleman_state,hotchase)
Game driver(s)
***************************************************************************/
-GAMEL( 1986, wecleman, 0, wecleman, wecleman, wecleman_state, wecleman, ROT0, "Konami", "WEC Le Mans 24 (set 1)", 0, layout_wecleman )
-GAMEL( 1986, wecleman2, wecleman, wecleman, wecleman, wecleman_state, wecleman, ROT0, "Konami", "WEC Le Mans 24 (set 2)", 0, layout_wecleman ) // 1988 release
-GAMEL( 1988, hotchase, 0, hotchase, hotchase, wecleman_state, hotchase, ROT0, "Konami", "Hot Chase", 0, layout_wecleman )
+GAMEL( 1986, wecleman, 0, wecleman, wecleman, wecleman_state, wecleman, ROT0, "Konami", "WEC Le Mans 24 (v2.00, set 1)", 0, layout_wecleman )
+GAMEL( 1986, weclemana, wecleman, wecleman, wecleman, wecleman_state, wecleman, ROT0, "Konami", "WEC Le Mans 24 (v2.00, set 2)", 0, layout_wecleman ) // 1988 release (maybe date hacked?)
+GAMEL( 1986, weclemanb, wecleman, wecleman, wecleman, wecleman_state, wecleman, ROT0, "Konami", "WEC Le Mans 24 (v1.26)", 0, layout_wecleman )
+
+GAMEL( 1988, hotchase, 0, hotchase, hotchase, wecleman_state, hotchase, ROT0, "Konami", "Hot Chase (set 1)", 0, layout_wecleman )
+GAMEL( 1988, hotchasea, hotchase, hotchase, hotchase, wecleman_state, hotchase, ROT0, "Konami", "Hot Chase (set 2)", 0, layout_wecleman )
diff --git a/src/mame/drivers/welltris.c b/src/mame/drivers/welltris.c
index 43c5617115a..05b29b06cfc 100644
--- a/src/mame/drivers/welltris.c
+++ b/src/mame/drivers/welltris.c
@@ -830,6 +830,6 @@ ROM_END
-GAME( 1991, welltris, 0, welltris, welltris, welltris_state, welltris, ROT0, "Video System Co.", "Welltris (World?, 2 players)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1991, welltrisj,welltris, welltris, welltris, welltris_state, welltris, ROT0, "Video System Co.", "Welltris (Japan, 2 players)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1992, quiz18k, 0, quiz18k, quiz18k, driver_device, 0, ROT0, "EIM", "Miyasu Nonki no Quiz 18-Kin", GAME_NO_COCKTAIL | GAME_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, driver_device, 0, ROT0, "EIM", "Miyasu Nonki no Quiz 18-Kin", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/wgp.c b/src/mame/drivers/wgp.c
index 1efa83564ed..e8ce89b5983 100644
--- a/src/mame/drivers/wgp.c
+++ b/src/mame/drivers/wgp.c
@@ -516,12 +516,12 @@ WRITE16_MEMBER(wgp_state::rotate_port_w)
READ16_MEMBER(wgp_state::wgp_adinput_r)
{
int steer = 0x40;
- int fake = ioport(FAKE_PORT_TAG)->read_safe(0x00);
+ int fake = m_fake ? m_fake->read() : 0;
if (!(fake & 0x10)) /* Analogue steer (the real control method) */
{
/* Reduce span to 0x80 */
- steer = (ioport(STEER_PORT_TAG)->read_safe(0x00) * 0x80) / 0x100;
+ steer = ((m_steer ? m_steer->read() : 0) * 0x80) / 0x100;
}
else /* Digital steer */
{
@@ -566,7 +566,7 @@ READ16_MEMBER(wgp_state::wgp_adinput_r)
}
case 0x05:
- return ioport(UNKNOWN_PORT_TAG)->read_safe(0x00); /* unknown */
+ return m_unknown ? m_unknown->read() : 0; /* unknown */
}
logerror("CPU #0 PC %06x: warning - read unmapped a/d input offset %06x\n",space.device().safe_pc(),offset);
@@ -590,7 +590,7 @@ WRITE16_MEMBER(wgp_state::wgp_adinput_w)
WRITE8_MEMBER(wgp_state::sound_bankswitch_w)
{
- membank("z80bank")->set_entry(data & 3);
+ m_z80bank->set_entry(data & 3);
}
WRITE16_MEMBER(wgp_state::wgp_sound_w)
@@ -909,7 +909,7 @@ void wgp_state::machine_reset()
void wgp_state::machine_start()
{
- membank("z80bank")->configure_entries(0, 4, memregion("audiocpu")->base(), 0x4000);
+ m_z80bank->configure_entries(0, 4, memregion("audiocpu")->base(), 0x4000);
save_item(NAME(m_cpua_ctrl));
save_item(NAME(m_port_sel));
@@ -1208,8 +1208,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)", GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
-GAME( 1989, wgpj, wgp, wgp, wgpj, wgp_state, wgp, ROT0, "Taito Corporation", "World Grand Prix (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
-GAME( 1989, wgpjoy, wgp, wgp, wgpjoy, wgp_state, wgp, ROT0, "Taito Corporation", "World Grand Prix (joystick version) (Japan, set 1)", GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
-GAME( 1989, wgpjoya, wgp, wgp, wgpjoy, wgp_state, wgp, ROT0, "Taito Corporation", "World Grand Prix (joystick version) (Japan, set 2)", GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
-GAME( 1990, wgp2, wgp, wgp2, wgp2, wgp_state, wgp2, ROT0, "Taito Corporation", "World Grand Prix 2 (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_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.c b/src/mame/drivers/wheelfir.c
index 849248f035c..01fff467b11 100644
--- a/src/mame/drivers/wheelfir.c
+++ b/src/mame/drivers/wheelfir.c
@@ -865,4 +865,4 @@ DRIVER_INIT_MEMBER(wheelfir_state,wheelfir)
RAM[0xdd3da/2] = 0x4e71; //hack
}
-GAME( 199?, wheelfir, 0, wheelfir, wheelfir, wheelfir_state, wheelfir, ROT0, "TCH", "Wheels & Fire", GAME_NOT_WORKING|GAME_NO_SOUND )
+GAME( 199?, wheelfir, 0, wheelfir, wheelfir, wheelfir_state, wheelfir, ROT0, "TCH", "Wheels & Fire", MACHINE_NOT_WORKING|MACHINE_NO_SOUND )
diff --git a/src/mame/drivers/white_mod.c b/src/mame/drivers/white_mod.c
index 7b82c6518fe..8b9e783931d 100644
--- a/src/mame/drivers/white_mod.c
+++ b/src/mame/drivers/white_mod.c
@@ -3567,155 +3567,155 @@ 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)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2004, elvisp4, elvisp, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (4.00)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2004, elvisp303, elvisp, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (3.03)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2004, elvisp302, elvisp, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (3.02)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2004, elvisl, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (5.00 Spain)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2004, elvisl4, elvisl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (4.00 Spain)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2004, elvisl303, elvisl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (3.03 Spain)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2004, elvisl302, elvisl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (3.02 Spain)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2004, elvisg, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (5.00 Germany)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2004, elvisg4, elvisg, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (4.00 Germany)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2004, elvisg303, elvisg, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (3.03 Germany)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2004, elvisg302, elvisg, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (3.02 Germany)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2004, elvisf, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (5.00 France)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2004, elvisf4, elvisf, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (4.00 France)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2004, elvisf303, elvisf, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (3.03 France)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2004, elvisf302, elvisf, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (3.02 France)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2004, elvisi, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (5.00 Italy)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2004, elvisi4, elvisi, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (4.00 Italy)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2004, elvisi303, elvisi, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (3.03 Italy)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2004, elvisi302, elvisi, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Elvis (3.02 Italy)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, gprix, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (4.50)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, gprix_400, gprix, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (4.00)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, gprix_352, gprix, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.52)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, gprix_350, gprix, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.50)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, gprix_340, gprix, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.40)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, gprix_301, gprix, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.01)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, gprixg, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (4.50 Germany)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, gprixg_400, gprixg, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (4.00 Germany)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, gprixg_352, gprixg, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.52 Germany)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, gprixg_350, gprixg, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.50 Germany)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, gprixg_340, gprixg, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.40 Germany)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, gprixg_301, gprixg, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.01 Germany)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, gprixl, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (4.50 Spain)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, gprixl_400, gprixl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (4.00 Spain)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, gprixl_352, gprixl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.52 Spain)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, gprixl_350, gprixl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.50 Spain)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, gprixl_340, gprixl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.40 Spain)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, gprixl_301, gprixl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.01 Spain)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, gprixf, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (4.50 France)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, gprixf_400, gprixf, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (4.00 France)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, gprixf_352, gprixf, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.52 France)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, gprixf_350, gprixf, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.50 France)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, gprixf_340, gprixf, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.40 France)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, gprixf_301, gprixf, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.01 France)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, gprixi, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (4.50 Italy)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, gprixi_400, gprixi, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (4.00 Italy)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, gprixi_352, gprixi, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.52 Italy)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, gprixi_350, gprixi, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.50 Italy)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, gprixi_340, gprixi, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.40 Italy)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, gprixi_301, gprixi, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Grand Prix (3.01 Italy)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, nascar, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Nascar (4.50)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, nascar_400, nascar, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Nascar (4.00)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, nascar_352, nascar, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Nascar (3.52)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, nascar_350, nascar, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Nascar (3.50)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, nascar_340, nascar, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Nascar (3.40)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, nascar_301, nascar, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Nascar (3.01)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, nascarl, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Nascar (4.50 Spain)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, nascarl_400,nascarl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Nascar (4.00 Spain)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, nascarl_352,nascarl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Nascar (3.52 Spain)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, nascarl_350,nascarl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Nascar (3.50 Spain)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, nascarl_340,nascarl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Nascar (3.40 Spain)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, nascarl_301,nascarl, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "Nascar (3.01 Spain)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)",GAME_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)",GAME_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)",GAME_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)",GAME_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)",GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, sopranos, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (5.00)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, sopranos_400,sopranos, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (4.00)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, sopranos_300,sopranos, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (3.00)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, sopranos_204,sopranos, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (2.04)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, sopranog, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (5.00 Germany)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, sopranog_400,sopranog, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (4.00 Germany)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, sopranog_300,sopranog, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (3.00 Germany)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, sopranog_107,sopranog, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (1.07 Germany)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, sopranof, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (5.00 France)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, sopranof_400,sopranof, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (4.00 France)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, sopranof_300,sopranof, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (3.00 France)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, sopranof_107,sopranof, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (1.07 France)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, sopranol, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (5.00 Spain)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, sopranol_400,sopranol, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (4.00 Spain)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, sopranol_300,sopranol, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (3.00 Spain)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, sopranol_107,sopranol, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (1.07 Spain)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, sopranoi, 0, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (5.00 Italy)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, sopranoi_400,sopranoi, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (4.00 Italy)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, sopranoi_300,sopranoi, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (3.00 Italy)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2005, sopranoi_107,sopranoi, whitestar_mod, whitestar_mod, whitestar_mod_state, whitestar_mod, ROT0, "Stern", "The Sopranos (1.07 Italy)", GAME_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, 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.c b/src/mame/drivers/whitestar.c
index 77c35ba9b94..8237596950d 100644
--- a/src/mame/drivers/whitestar.c
+++ b/src/mame/drivers/whitestar.c
@@ -3170,185 +3170,185 @@ ROM_START(monopred)
ROM_LOAD_SND_8M("monopred.u17", 0x000000, CRC(467dca62) SHA1(c727748b6b0b39ead19ce98bddd89fd05fb62d00))
ROM_END
-#define GAME_IS_PINBALL GAME_NOT_WORKING | GAME_NO_SOUND | GAME_MECHANICAL
-
-GAME(1995, apollo13, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Apollo 13 (5.01)", GAME_IS_PINBALL)
-GAME(1995, apollo13_10,apollo13, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Apollo 13 (1.00)", GAME_IS_PINBALL)
-GAME(2001, austin, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Austin Powers (3.02)", GAME_IS_PINBALL)
-GAME(2001, aust301, austin, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Austin Powers (3.01)", GAME_IS_PINBALL)
-GAME(2001, aust300, austin, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Austin Powers (3.00)", GAME_IS_PINBALL)
-GAME(2001, aust201, austin, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Austin Powers (2.01)", GAME_IS_PINBALL)
-GAME(2001, austnew, austin, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Austin Powers (ARM7 Sound Board)", GAME_IS_PINBALL)
-GAME(2001, austinf, austin, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Austin Powers (France)", GAME_IS_PINBALL)
-GAME(2001, austing, austin, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Austin Powers (Germany)", GAME_IS_PINBALL)
-GAME(2001, austini, austin, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Austin Powers (Italy)", GAME_IS_PINBALL)
-GAME(1998, godzillp, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Godzilla (Pinball)", GAME_IS_PINBALL)
-GAME(1996, gldneye, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Goldeneye", GAME_IS_PINBALL)
-GAME(1998, goldcue, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Golden Cue", GAME_IS_PINBALL)
-GAME(1999, harl_a13, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Harley Davidson (1.03)", GAME_IS_PINBALL)
-GAME(1999, harl_u13, harl_a13, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Harley Davidson (1.03 UK)", GAME_IS_PINBALL)
-GAME(1999, harl_a10, harl_a13, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Harley Davidson (1.03 Display rev. 1.00)", GAME_IS_PINBALL)
-GAME(1999, harl_f13, harl_a13, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Harley Davidson (1.03 France)", GAME_IS_PINBALL)
-GAME(1999, harl_g13, harl_a13, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Harley Davidson (1.03 Germany)", GAME_IS_PINBALL)
-GAME(1999, harl_i13, harl_a13, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Harley Davidson (1.03 Italy)", GAME_IS_PINBALL)
-GAME(1999, harl_l13, harl_a13, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Harley Davidson (1.03 Spain)", GAME_IS_PINBALL)
-GAME(2004, harl_a40, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Harley Davidson (4.00)", GAME_IS_PINBALL)
-GAME(2004, harl_f40, harl_a40, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Harley Davidson (4.00 France)", GAME_IS_PINBALL)
-GAME(2004, harl_g40, harl_a40, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Harley Davidson (4.00 Germany)", GAME_IS_PINBALL)
-GAME(2004, harl_i40, harl_a40, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Harley Davidson (4.00 Italy)", GAME_IS_PINBALL)
-GAME(2004, harl_l40, harl_a40, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Harley Davidson (4.00 Spain)", GAME_IS_PINBALL)
-GAME(2004, harl_a30, harl_a40, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Harley Davidson (3.00)", GAME_IS_PINBALL)
-GAME(2004, harl_f30, harl_a40, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Harley Davidson (3.00 France)", GAME_IS_PINBALL)
-GAME(2004, harl_g30, harl_a40, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Harley Davidson (3.00 Germany)", GAME_IS_PINBALL)
-GAME(2004, harl_i30, harl_a40, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Harley Davidson (3.00 Italy)", GAME_IS_PINBALL)
-GAME(2004, harl_l30, harl_a40, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Harley Davidson (3.00 Spain)", GAME_IS_PINBALL)
-GAME(2003, harl_a18, harl_a40, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Harley Davidson (1.08)", GAME_IS_PINBALL)
-GAME(2003, harl_f18, harl_a40, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Harley Davidson (1.08 France)", GAME_IS_PINBALL)
-GAME(2003, harl_g18, harl_a40, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Harley Davidson (1.08 Germany)", GAME_IS_PINBALL)
-GAME(2003, harl_i18, harl_a40, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Harley Davidson (1.08 Italy)", GAME_IS_PINBALL)
-GAME(2003, harl_l18, harl_a40, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Harley Davidson (1.08 Spain)", GAME_IS_PINBALL)
-GAME(2001, hirolcas, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "High Roller Casino (3.00)", GAME_IS_PINBALL)
-GAME(2001, hironew, hirolcas, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "High Roller Casino (ARM7 Sound Board)", GAME_IS_PINBALL)
-GAME(2001, hirolcat, hirolcas, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "High Roller Casino (3.00) TEST", GAME_IS_PINBALL)
-GAME(2001, hirolcas_210,hirolcas, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "High Roller Casino (2.10)", GAME_IS_PINBALL)
-GAME(2001, hirol_fr, hirolcas, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "High Roller Casino (3.00 France)", GAME_IS_PINBALL)
-GAME(2001, hirol_gr, hirolcas, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "High Roller Casino (3.00 Germany)", GAME_IS_PINBALL)
-GAME(2001, hirol_gr_210,hirolcas, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "High Roller Casino (2.10 Germany)", GAME_IS_PINBALL)
-GAME(2001, hirol_it, hirolcas, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "High Roller Casino (3.00 Italy)", GAME_IS_PINBALL)
-GAME(1996, id4, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Independence Day", GAME_IS_PINBALL)
-GAME(1996, id4_201, id4, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Independence Day (v2.01)", GAME_IS_PINBALL)
-GAME(1998, lostspc, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Lost in Space", GAME_IS_PINBALL)
-GAME(2001, monopolp, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Monopoly (3.20)", GAME_IS_PINBALL)
-GAME(2002, monop303, monopolp, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Monopoly (3.03)", GAME_IS_PINBALL)
-GAME(2002, monop301, monopolp, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Monopoly (3.01)", GAME_IS_PINBALL)
-GAME(2002, monop251, monopolp, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Monopoly (2.51)", GAME_IS_PINBALL)
-GAME(2002, monop233, monopolp, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Monopoly (2.33)", GAME_IS_PINBALL)
-GAME(2002, monopolf, monopolp, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Monopoly (France)", GAME_IS_PINBALL)
-GAME(2002, monopolg, monopolp, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Monopoly (Germany)", GAME_IS_PINBALL)
-GAME(2002, monopoli, monopolp, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Monopoly (Italy)", GAME_IS_PINBALL)
-GAME(2002, monopoll, monopolp, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Monopoly (Spain)", GAME_IS_PINBALL)
-GAME(2002, mononew, monopolp, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Monopoly (ARM7 Sound Board)", GAME_IS_PINBALL)
-GAME(2001, nfl, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "NFL", GAME_IS_PINBALL)
-GAME(2002, playboys, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (5.00)", GAME_IS_PINBALL)
-GAME(2002, playboys_401,playboys, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (4.01)", GAME_IS_PINBALL)
-GAME(2002, playboys_303,playboys, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (3.03)", GAME_IS_PINBALL)
-GAME(2002, playboys_302,playboys, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (3.02)", GAME_IS_PINBALL)
-GAME(2002, playboys_300,playboys, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (3.00)", GAME_IS_PINBALL)
-GAME(2002, playboys_203,playboys, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (2.03)", GAME_IS_PINBALL)
-GAME(2002, playnew, playboys, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (ARM7 Sound Board)", GAME_IS_PINBALL)
-GAME(2002, playboyf, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (5.00 France)", GAME_IS_PINBALL)
-GAME(2002, playboyf_401,playboyf, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (4.01 France)", GAME_IS_PINBALL)
-GAME(2002, playboyf_303,playboyf, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (3.03 France)", GAME_IS_PINBALL)
-GAME(2002, playboyf_302,playboyf, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (3.02 France)", GAME_IS_PINBALL)
-GAME(2002, playboyf_300,playboyf, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (3.00 France)", GAME_IS_PINBALL)
-GAME(2002, playboyf_203,playboyf, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (2.03 France)", GAME_IS_PINBALL)
-GAME(2002, playboyg, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (5.00 Germany)", GAME_IS_PINBALL)
-GAME(2002, playboyg_401,playboyg, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (4.01 Germany)", GAME_IS_PINBALL)
-GAME(2002, playboyg_303,playboyg, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (3.03 Germany)", GAME_IS_PINBALL)
-GAME(2002, playboyg_302,playboyg, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (3.02 Germany)", GAME_IS_PINBALL)
-GAME(2002, playboyg_300,playboyg, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (3.00 Germany)", GAME_IS_PINBALL)
-GAME(2002, playboyg_203,playboyg, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (2.03 Germany)", GAME_IS_PINBALL)
-GAME(2002, playboyi, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (5.00 Italy)", GAME_IS_PINBALL)
-GAME(2002, playboyi_401,playboyi, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (4.01 Italy)", GAME_IS_PINBALL)
-GAME(2002, playboyi_303,playboyi, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (3.03 Italy)", GAME_IS_PINBALL)
-GAME(2002, playboyi_302,playboyi, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (3.02 Italy)", GAME_IS_PINBALL)
-GAME(2002, playboyi_300,playboyi, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (3.00 Italy)", GAME_IS_PINBALL)
-GAME(2002, playboyi_203,playboyi, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (2.03 Italy)", GAME_IS_PINBALL)
-GAME(2002, playboyl, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (5.00 Spain)", GAME_IS_PINBALL)
-GAME(2002, playboyl_401,playboyl, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (4.01 Spain)", GAME_IS_PINBALL)
-GAME(2002, playboyl_303,playboyl, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (3.03 Spain)", GAME_IS_PINBALL)
-GAME(2002, playboyl_302,playboyl, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (3.02 Spain)", GAME_IS_PINBALL)
-GAME(2002, playboyl_300,playboyl, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (3.00 Spain)", GAME_IS_PINBALL)
-GAME(2002, playboyl_203,playboyl, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (2.03 Spain)", GAME_IS_PINBALL)
-GAME(2002, rctycn, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Roller Coaster Tycoon (7.02)", GAME_IS_PINBALL)
-GAME(2002, rctycn_701, rctycn, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Roller Coaster Tycoon (7.01)", GAME_IS_PINBALL)
-GAME(2002, rctycn_600, rctycn, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Roller Coaster Tycoon (6.00)", GAME_IS_PINBALL)
-GAME(2002, rctycn_400, rctycn, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Roller Coaster Tycoon (4.00)", GAME_IS_PINBALL)
-GAME(2002, rctnew, rctycn, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Roller Coaster Tycoon (ARM7 Sound Board)", GAME_IS_PINBALL)
-GAME(2002, rctycng, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Roller Coaster Tycoon (7.02 Germany)", GAME_IS_PINBALL)
-GAME(2002, rctycng_701,rctycng, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Roller Coaster Tycoon (7.01 Germany)", GAME_IS_PINBALL)
-GAME(2002, rctycng_400,rctycng, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Roller Coaster Tycoon (4.00 Germany)", GAME_IS_PINBALL)
-GAME(2002, rctycnf, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Roller Coaster Tycoon (7.02 France)", GAME_IS_PINBALL)
-GAME(2002, rctycnf_701,rctycnf, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Roller Coaster Tycoon (7.01 France)", GAME_IS_PINBALL)
-GAME(2002, rctycnf_600,rctycnf, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Roller Coaster Tycoon (6.00 France)", GAME_IS_PINBALL)
-GAME(2002, rctycnf_400,rctycnf, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Roller Coaster Tycoon (4.00 France)", GAME_IS_PINBALL)
-GAME(2002, rctycni, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Roller Coaster Tycoon (7.02 Italy)", GAME_IS_PINBALL)
-GAME(2002, rctycni_701,rctycni, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Roller Coaster Tycoon (7.01 Italy)", GAME_IS_PINBALL)
-GAME(2002, rctycni_600,rctycni, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Roller Coaster Tycoon (6.00 Italy)", GAME_IS_PINBALL)
-GAME(2002, rctycni_400,rctycni, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Roller Coaster Tycoon (4.00 Italy)", GAME_IS_PINBALL)
-GAME(2002, rctycnl, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Roller Coaster Tycoon (7.02 Spain)", GAME_IS_PINBALL)
-GAME(2002, rctycnl_701,rctycnl, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Roller Coaster Tycoon (7.01 Spain)", GAME_IS_PINBALL)
-GAME(2002, rctycnl_600,rctycnl, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Roller Coaster Tycoon (6.00 Spain)", GAME_IS_PINBALL)
-GAME(2002, rctycnl_400,rctycnl, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Roller Coaster Tycoon (4.00 Spain)", GAME_IS_PINBALL)
-GAME(2000, shrkysht, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Sharkey's Shootout (2.11)", GAME_IS_PINBALL)
-GAME(2000, shrky_207, shrkysht, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Sharkey's Shootout (2.07)", GAME_IS_PINBALL)
-GAME(2001, shrknew, shrkysht, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Sharkey's Shootout (ARM7 Sound Board)", GAME_IS_PINBALL)
-GAME(2001, shrkygr, shrkysht, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Sharkey's Shootout (2.11 Germany)", GAME_IS_PINBALL)
-GAME(2001, shrkygr_207,shrkysht, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Sharkey's Shootout (2.07 Germany)", GAME_IS_PINBALL)
-GAME(2001, shrkyfr, shrkysht, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Sharkey's Shootout (2.11 France)", GAME_IS_PINBALL)
-GAME(2001, shrkyfr_207,shrkysht, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Sharkey's Shootout (2.07 France)", GAME_IS_PINBALL)
-GAME(2001, shrkyit, shrkysht, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Sharkey's Shootout (2.11 Italy)", GAME_IS_PINBALL)
-GAME(2001, shrkyit_207,shrkysht, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Sharkey's Shootout (2.07 Italy)", GAME_IS_PINBALL)
-GAME(1999, sprk_103, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "South Park (1.03)", GAME_IS_PINBALL)
-GAME(1999, sprk_096, sprk_103, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "South Park (0.96)", GAME_IS_PINBALL)
-GAME(1999, sprk_090, sprk_103, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "South Park (0.90)", GAME_IS_PINBALL)
-GAME(1997, spacejam, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Space Jam", GAME_IS_PINBALL)
-GAME(1997, spacejmg, spacejam, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Space Jam (Germany)", GAME_IS_PINBALL)
-GAME(1997, spacejmf, spacejam, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Space Jam (France)", GAME_IS_PINBALL)
-GAME(1997, spacejmi, spacejam, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Space Jam (Italy)", GAME_IS_PINBALL)
-GAME(1997, swtril43, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Star Wars Trilogy (4.03)", GAME_IS_PINBALL)
-GAME(1997, swtril41, swtril43, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Star Wars Trilogy (4.01)", GAME_IS_PINBALL)
-GAME(1997, startrp, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Starship Troopers", GAME_IS_PINBALL)
-GAME(1999, strikext, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Striker Xtreme (1.02)", GAME_IS_PINBALL)
-GAME(1999, strknew, strikext, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Striker Xtreme (ARM7 Sound Board)", GAME_IS_PINBALL)
-GAME(1999, strxt_uk, strikext, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Striker Xtreme (UK)", GAME_IS_PINBALL)
-GAME(1999, strxt_gr, strikext, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Striker Xtreme (Germany)", GAME_IS_PINBALL)
-GAME(1999, strxt_fr, strikext, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Striker Xtreme (France)", GAME_IS_PINBALL)
-GAME(1999, strxt_it, strikext, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Striker Xtreme (Italy)", GAME_IS_PINBALL)
-GAME(1999, strxt_sp, strikext, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Striker Xtreme (Spain)", GAME_IS_PINBALL)
-GAME(2003, term3, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Terminator 3: Rise of the Machines (4.00)", GAME_IS_PINBALL)
-GAME(2003, term3_301, term3, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Terminator 3: Rise of the Machines (3.01)", GAME_IS_PINBALL)
-GAME(2003, term3_205, term3, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Terminator 3: Rise of the Machines (2.05)", GAME_IS_PINBALL)
-GAME(2003, t3new, term3, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Terminator 3: Rise of the Machines (ARM7 Sound Board)", GAME_IS_PINBALL)
-GAME(2003, term3g, term3, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Terminator 3: Rise of the Machines (4.00 Germany)", GAME_IS_PINBALL)
-GAME(2003, term3g_301, term3, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Terminator 3: Rise of the Machines (3.01 Germany)", GAME_IS_PINBALL)
-GAME(2003, term3l, term3, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Terminator 3: Rise of the Machines (4.00 Spain)", GAME_IS_PINBALL)
-GAME(2003, term3l_301, term3, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Terminator 3: Rise of the Machines (3.01 Spain)", GAME_IS_PINBALL)
-GAME(2003, term3l_205, term3, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Terminator 3: Rise of the Machines (2.05 Spain)", GAME_IS_PINBALL)
-GAME(2003, term3f, term3, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Terminator 3: Rise of the Machines (4.00 France)", GAME_IS_PINBALL)
-GAME(2003, term3f_301, term3, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Terminator 3: Rise of the Machines (3.01 France)", GAME_IS_PINBALL)
-GAME(2003, term3f_205, term3, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Terminator 3: Rise of the Machines (2.05 France)", GAME_IS_PINBALL)
-GAME(2003, term3i, term3, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Terminator 3: Rise of the Machines (4.00 Italy)", GAME_IS_PINBALL)
-GAME(2003, term3i_301, term3, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Terminator 3: Rise of the Machines (3.01 Italy)", GAME_IS_PINBALL)
-GAME(2003, term3i_205, term3, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Terminator 3: Rise of the Machines (2.05 Italy)", GAME_IS_PINBALL)
-GAME(1997, jplstw22, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "The Lost World: Jurassic Park (2.02)", GAME_IS_PINBALL)
-GAME(1997, jplstw20, jplstw22, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "The Lost World: Jurassic Park (2.00)", GAME_IS_PINBALL)
-GAME(2003, simpprty, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "The Simpsons Pinball Party (5.00)", GAME_IS_PINBALL)
-GAME(2003, simpprty_400,simpprty, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "The Simpsons Pinball Party (4.00)", GAME_IS_PINBALL)
-GAME(2003, simpprty_300,simpprty, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "The Simpsons Pinball Party (3.00)", GAME_IS_PINBALL)
-GAME(2003, simpprty_204,simpprty, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "The Simpsons Pinball Party (2.04)", GAME_IS_PINBALL)
-GAME(2003, simpnew, simpprty, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "The Simpsons Pinball Party (ARM7 Sound Board)", GAME_IS_PINBALL)
-GAME(2003, simpprtg, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "The Simpsons Pinball Party (5.00 Germany)", GAME_IS_PINBALL)
-GAME(2003, simpprtg_400,simpprtg, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "The Simpsons Pinball Party (4.00 Germany)", GAME_IS_PINBALL)
-GAME(2003, simpprtl, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "The Simpsons Pinball Party (5.00 Spain)", GAME_IS_PINBALL)
-GAME(2003, simpprtl_400,simpprtl, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "The Simpsons Pinball Party (4.00 Spain)", GAME_IS_PINBALL)
-GAME(2003, simpprtl_300,simpprtl, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "The Simpsons Pinball Party (3.00 Spain)", GAME_IS_PINBALL)
-GAME(2003, simpprtl_204,simpprtl, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "The Simpsons Pinball Party (2.04 Spain)", GAME_IS_PINBALL)
-GAME(2003, simpprtf, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "The Simpsons Pinball Party (5.00 France)", GAME_IS_PINBALL)
-GAME(2003, simpprtf_400,simpprtf, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "The Simpsons Pinball Party (4.00 France)", GAME_IS_PINBALL)
-GAME(2003, simpprtf_300,simpprtf, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "The Simpsons Pinball Party (3.00 France)", GAME_IS_PINBALL)
-GAME(2003, simpprtf_204,simpprtf, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "The Simpsons Pinball Party (2.04 France)", GAME_IS_PINBALL)
-GAME(2003, simpprti, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "The Simpsons Pinball Party (5.00 Italy)", GAME_IS_PINBALL)
-GAME(2003, simpprti_400,simpprti, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "The Simpsons Pinball Party (4.00 Italy)", GAME_IS_PINBALL)
-GAME(2003, simpprti_300,simpprti, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "The Simpsons Pinball Party (3.00 Italy)", GAME_IS_PINBALL)
-GAME(2003, simpprti_204,simpprti, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "The Simpsons Pinball Party (2.04 Italy)", GAME_IS_PINBALL)
-GAME(1997, xfilesp, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "X-Files (3.03)", GAME_IS_PINBALL)
-GAME(1997, xfiles2, xfilesp, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "X-Files (2.04)", GAME_IS_PINBALL)
-GAME(1996, twst_405, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Twister (4.05)", GAME_IS_PINBALL)
-GAME(1996, twst_404, twst_405, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Twister (4.04)", GAME_IS_PINBALL)
-GAME(1996, twst_300, twst_405, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Twister (3.00)", GAME_IS_PINBALL)
-GAME(1998, viprsega, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Viper Night Drivin'", GAME_IS_PINBALL)
-GAME(1998, ctchzdlx, ctcheese, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Cut The Cheese Deluxe (Redemption)", GAME_IS_PINBALL)
-GAME(1998, titanic, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Titanic (Coin dropper)", GAME_IS_PINBALL)
-GAME(2002, monopred, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Monopoly (Coin dropper)", GAME_IS_PINBALL)
-GAME(1998, wackadoo, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Wack-A-Doodle-Doo (Redemption)", GAME_IS_PINBALL)
+#define MACHINE_IS_PINBALL MACHINE_NOT_WORKING | MACHINE_NO_SOUND | MACHINE_MECHANICAL
+
+GAME(1995, apollo13, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Apollo 13 (5.01)", MACHINE_IS_PINBALL)
+GAME(1995, apollo13_10,apollo13, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Apollo 13 (1.00)", MACHINE_IS_PINBALL)
+GAME(2001, austin, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Austin Powers (3.02)", MACHINE_IS_PINBALL)
+GAME(2001, aust301, austin, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Austin Powers (3.01)", MACHINE_IS_PINBALL)
+GAME(2001, aust300, austin, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Austin Powers (3.00)", MACHINE_IS_PINBALL)
+GAME(2001, aust201, austin, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Austin Powers (2.01)", MACHINE_IS_PINBALL)
+GAME(2001, austnew, austin, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Austin Powers (ARM7 Sound Board)", MACHINE_IS_PINBALL)
+GAME(2001, austinf, austin, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Austin Powers (France)", MACHINE_IS_PINBALL)
+GAME(2001, austing, austin, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Austin Powers (Germany)", MACHINE_IS_PINBALL)
+GAME(2001, austini, austin, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Austin Powers (Italy)", MACHINE_IS_PINBALL)
+GAME(1998, godzillp, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Godzilla (Pinball)", MACHINE_IS_PINBALL)
+GAME(1996, gldneye, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Goldeneye", MACHINE_IS_PINBALL)
+GAME(1998, goldcue, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Golden Cue", MACHINE_IS_PINBALL)
+GAME(1999, harl_a13, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Harley Davidson (1.03)", MACHINE_IS_PINBALL)
+GAME(1999, harl_u13, harl_a13, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Harley Davidson (1.03 UK)", MACHINE_IS_PINBALL)
+GAME(1999, harl_a10, harl_a13, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Harley Davidson (1.03 Display rev. 1.00)", MACHINE_IS_PINBALL)
+GAME(1999, harl_f13, harl_a13, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Harley Davidson (1.03 France)", MACHINE_IS_PINBALL)
+GAME(1999, harl_g13, harl_a13, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Harley Davidson (1.03 Germany)", MACHINE_IS_PINBALL)
+GAME(1999, harl_i13, harl_a13, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Harley Davidson (1.03 Italy)", MACHINE_IS_PINBALL)
+GAME(1999, harl_l13, harl_a13, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Harley Davidson (1.03 Spain)", MACHINE_IS_PINBALL)
+GAME(2004, harl_a40, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Harley Davidson (4.00)", MACHINE_IS_PINBALL)
+GAME(2004, harl_f40, harl_a40, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Harley Davidson (4.00 France)", MACHINE_IS_PINBALL)
+GAME(2004, harl_g40, harl_a40, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Harley Davidson (4.00 Germany)", MACHINE_IS_PINBALL)
+GAME(2004, harl_i40, harl_a40, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Harley Davidson (4.00 Italy)", MACHINE_IS_PINBALL)
+GAME(2004, harl_l40, harl_a40, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Harley Davidson (4.00 Spain)", MACHINE_IS_PINBALL)
+GAME(2004, harl_a30, harl_a40, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Harley Davidson (3.00)", MACHINE_IS_PINBALL)
+GAME(2004, harl_f30, harl_a40, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Harley Davidson (3.00 France)", MACHINE_IS_PINBALL)
+GAME(2004, harl_g30, harl_a40, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Harley Davidson (3.00 Germany)", MACHINE_IS_PINBALL)
+GAME(2004, harl_i30, harl_a40, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Harley Davidson (3.00 Italy)", MACHINE_IS_PINBALL)
+GAME(2004, harl_l30, harl_a40, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Harley Davidson (3.00 Spain)", MACHINE_IS_PINBALL)
+GAME(2003, harl_a18, harl_a40, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Harley Davidson (1.08)", MACHINE_IS_PINBALL)
+GAME(2003, harl_f18, harl_a40, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Harley Davidson (1.08 France)", MACHINE_IS_PINBALL)
+GAME(2003, harl_g18, harl_a40, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Harley Davidson (1.08 Germany)", MACHINE_IS_PINBALL)
+GAME(2003, harl_i18, harl_a40, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Harley Davidson (1.08 Italy)", MACHINE_IS_PINBALL)
+GAME(2003, harl_l18, harl_a40, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Harley Davidson (1.08 Spain)", MACHINE_IS_PINBALL)
+GAME(2001, hirolcas, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "High Roller Casino (3.00)", MACHINE_IS_PINBALL)
+GAME(2001, hironew, hirolcas, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "High Roller Casino (ARM7 Sound Board)", MACHINE_IS_PINBALL)
+GAME(2001, hirolcat, hirolcas, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "High Roller Casino (3.00) TEST", MACHINE_IS_PINBALL)
+GAME(2001, hirolcas_210,hirolcas, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "High Roller Casino (2.10)", MACHINE_IS_PINBALL)
+GAME(2001, hirol_fr, hirolcas, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "High Roller Casino (3.00 France)", MACHINE_IS_PINBALL)
+GAME(2001, hirol_gr, hirolcas, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "High Roller Casino (3.00 Germany)", MACHINE_IS_PINBALL)
+GAME(2001, hirol_gr_210,hirolcas, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "High Roller Casino (2.10 Germany)", MACHINE_IS_PINBALL)
+GAME(2001, hirol_it, hirolcas, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "High Roller Casino (3.00 Italy)", MACHINE_IS_PINBALL)
+GAME(1996, id4, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Independence Day", MACHINE_IS_PINBALL)
+GAME(1996, id4_201, id4, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Independence Day (v2.01)", MACHINE_IS_PINBALL)
+GAME(1998, lostspc, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Lost in Space", MACHINE_IS_PINBALL)
+GAME(2001, monopolp, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Monopoly (3.20)", MACHINE_IS_PINBALL)
+GAME(2002, monop303, monopolp, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Monopoly (3.03)", MACHINE_IS_PINBALL)
+GAME(2002, monop301, monopolp, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Monopoly (3.01)", MACHINE_IS_PINBALL)
+GAME(2002, monop251, monopolp, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Monopoly (2.51)", MACHINE_IS_PINBALL)
+GAME(2002, monop233, monopolp, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Monopoly (2.33)", MACHINE_IS_PINBALL)
+GAME(2002, monopolf, monopolp, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Monopoly (France)", MACHINE_IS_PINBALL)
+GAME(2002, monopolg, monopolp, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Monopoly (Germany)", MACHINE_IS_PINBALL)
+GAME(2002, monopoli, monopolp, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Monopoly (Italy)", MACHINE_IS_PINBALL)
+GAME(2002, monopoll, monopolp, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Monopoly (Spain)", MACHINE_IS_PINBALL)
+GAME(2002, mononew, monopolp, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Monopoly (ARM7 Sound Board)", MACHINE_IS_PINBALL)
+GAME(2001, nfl, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "NFL", MACHINE_IS_PINBALL)
+GAME(2002, playboys, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (5.00)", MACHINE_IS_PINBALL)
+GAME(2002, playboys_401,playboys, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (4.01)", MACHINE_IS_PINBALL)
+GAME(2002, playboys_303,playboys, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (3.03)", MACHINE_IS_PINBALL)
+GAME(2002, playboys_302,playboys, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (3.02)", MACHINE_IS_PINBALL)
+GAME(2002, playboys_300,playboys, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (3.00)", MACHINE_IS_PINBALL)
+GAME(2002, playboys_203,playboys, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (2.03)", MACHINE_IS_PINBALL)
+GAME(2002, playnew, playboys, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (ARM7 Sound Board)", MACHINE_IS_PINBALL)
+GAME(2002, playboyf, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (5.00 France)", MACHINE_IS_PINBALL)
+GAME(2002, playboyf_401,playboyf, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (4.01 France)", MACHINE_IS_PINBALL)
+GAME(2002, playboyf_303,playboyf, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (3.03 France)", MACHINE_IS_PINBALL)
+GAME(2002, playboyf_302,playboyf, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (3.02 France)", MACHINE_IS_PINBALL)
+GAME(2002, playboyf_300,playboyf, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (3.00 France)", MACHINE_IS_PINBALL)
+GAME(2002, playboyf_203,playboyf, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (2.03 France)", MACHINE_IS_PINBALL)
+GAME(2002, playboyg, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (5.00 Germany)", MACHINE_IS_PINBALL)
+GAME(2002, playboyg_401,playboyg, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (4.01 Germany)", MACHINE_IS_PINBALL)
+GAME(2002, playboyg_303,playboyg, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (3.03 Germany)", MACHINE_IS_PINBALL)
+GAME(2002, playboyg_302,playboyg, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (3.02 Germany)", MACHINE_IS_PINBALL)
+GAME(2002, playboyg_300,playboyg, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (3.00 Germany)", MACHINE_IS_PINBALL)
+GAME(2002, playboyg_203,playboyg, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (2.03 Germany)", MACHINE_IS_PINBALL)
+GAME(2002, playboyi, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (5.00 Italy)", MACHINE_IS_PINBALL)
+GAME(2002, playboyi_401,playboyi, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (4.01 Italy)", MACHINE_IS_PINBALL)
+GAME(2002, playboyi_303,playboyi, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (3.03 Italy)", MACHINE_IS_PINBALL)
+GAME(2002, playboyi_302,playboyi, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (3.02 Italy)", MACHINE_IS_PINBALL)
+GAME(2002, playboyi_300,playboyi, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (3.00 Italy)", MACHINE_IS_PINBALL)
+GAME(2002, playboyi_203,playboyi, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (2.03 Italy)", MACHINE_IS_PINBALL)
+GAME(2002, playboyl, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (5.00 Spain)", MACHINE_IS_PINBALL)
+GAME(2002, playboyl_401,playboyl, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (4.01 Spain)", MACHINE_IS_PINBALL)
+GAME(2002, playboyl_303,playboyl, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (3.03 Spain)", MACHINE_IS_PINBALL)
+GAME(2002, playboyl_302,playboyl, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (3.02 Spain)", MACHINE_IS_PINBALL)
+GAME(2002, playboyl_300,playboyl, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (3.00 Spain)", MACHINE_IS_PINBALL)
+GAME(2002, playboyl_203,playboyl, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Playboy (2.03 Spain)", MACHINE_IS_PINBALL)
+GAME(2002, rctycn, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Roller Coaster Tycoon (7.02)", MACHINE_IS_PINBALL)
+GAME(2002, rctycn_701, rctycn, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Roller Coaster Tycoon (7.01)", MACHINE_IS_PINBALL)
+GAME(2002, rctycn_600, rctycn, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Roller Coaster Tycoon (6.00)", MACHINE_IS_PINBALL)
+GAME(2002, rctycn_400, rctycn, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Roller Coaster Tycoon (4.00)", MACHINE_IS_PINBALL)
+GAME(2002, rctnew, rctycn, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Roller Coaster Tycoon (ARM7 Sound Board)", MACHINE_IS_PINBALL)
+GAME(2002, rctycng, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Roller Coaster Tycoon (7.02 Germany)", MACHINE_IS_PINBALL)
+GAME(2002, rctycng_701,rctycng, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Roller Coaster Tycoon (7.01 Germany)", MACHINE_IS_PINBALL)
+GAME(2002, rctycng_400,rctycng, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Roller Coaster Tycoon (4.00 Germany)", MACHINE_IS_PINBALL)
+GAME(2002, rctycnf, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Roller Coaster Tycoon (7.02 France)", MACHINE_IS_PINBALL)
+GAME(2002, rctycnf_701,rctycnf, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Roller Coaster Tycoon (7.01 France)", MACHINE_IS_PINBALL)
+GAME(2002, rctycnf_600,rctycnf, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Roller Coaster Tycoon (6.00 France)", MACHINE_IS_PINBALL)
+GAME(2002, rctycnf_400,rctycnf, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Roller Coaster Tycoon (4.00 France)", MACHINE_IS_PINBALL)
+GAME(2002, rctycni, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Roller Coaster Tycoon (7.02 Italy)", MACHINE_IS_PINBALL)
+GAME(2002, rctycni_701,rctycni, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Roller Coaster Tycoon (7.01 Italy)", MACHINE_IS_PINBALL)
+GAME(2002, rctycni_600,rctycni, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Roller Coaster Tycoon (6.00 Italy)", MACHINE_IS_PINBALL)
+GAME(2002, rctycni_400,rctycni, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Roller Coaster Tycoon (4.00 Italy)", MACHINE_IS_PINBALL)
+GAME(2002, rctycnl, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Roller Coaster Tycoon (7.02 Spain)", MACHINE_IS_PINBALL)
+GAME(2002, rctycnl_701,rctycnl, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Roller Coaster Tycoon (7.01 Spain)", MACHINE_IS_PINBALL)
+GAME(2002, rctycnl_600,rctycnl, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Roller Coaster Tycoon (6.00 Spain)", MACHINE_IS_PINBALL)
+GAME(2002, rctycnl_400,rctycnl, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Roller Coaster Tycoon (4.00 Spain)", MACHINE_IS_PINBALL)
+GAME(2000, shrkysht, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Sharkey's Shootout (2.11)", MACHINE_IS_PINBALL)
+GAME(2000, shrky_207, shrkysht, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Sharkey's Shootout (2.07)", MACHINE_IS_PINBALL)
+GAME(2001, shrknew, shrkysht, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Sharkey's Shootout (ARM7 Sound Board)", MACHINE_IS_PINBALL)
+GAME(2001, shrkygr, shrkysht, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Sharkey's Shootout (2.11 Germany)", MACHINE_IS_PINBALL)
+GAME(2001, shrkygr_207,shrkysht, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Sharkey's Shootout (2.07 Germany)", MACHINE_IS_PINBALL)
+GAME(2001, shrkyfr, shrkysht, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Sharkey's Shootout (2.11 France)", MACHINE_IS_PINBALL)
+GAME(2001, shrkyfr_207,shrkysht, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Sharkey's Shootout (2.07 France)", MACHINE_IS_PINBALL)
+GAME(2001, shrkyit, shrkysht, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Sharkey's Shootout (2.11 Italy)", MACHINE_IS_PINBALL)
+GAME(2001, shrkyit_207,shrkysht, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Sharkey's Shootout (2.07 Italy)", MACHINE_IS_PINBALL)
+GAME(1999, sprk_103, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "South Park (1.03)", MACHINE_IS_PINBALL)
+GAME(1999, sprk_096, sprk_103, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "South Park (0.96)", MACHINE_IS_PINBALL)
+GAME(1999, sprk_090, sprk_103, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "South Park (0.90)", MACHINE_IS_PINBALL)
+GAME(1997, spacejam, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Space Jam", MACHINE_IS_PINBALL)
+GAME(1997, spacejmg, spacejam, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Space Jam (Germany)", MACHINE_IS_PINBALL)
+GAME(1997, spacejmf, spacejam, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Space Jam (France)", MACHINE_IS_PINBALL)
+GAME(1997, spacejmi, spacejam, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Space Jam (Italy)", MACHINE_IS_PINBALL)
+GAME(1997, swtril43, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Star Wars Trilogy (4.03)", MACHINE_IS_PINBALL)
+GAME(1997, swtril41, swtril43, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Star Wars Trilogy (4.01)", MACHINE_IS_PINBALL)
+GAME(1997, startrp, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Starship Troopers", MACHINE_IS_PINBALL)
+GAME(1999, strikext, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Striker Xtreme (1.02)", MACHINE_IS_PINBALL)
+GAME(1999, strknew, strikext, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Striker Xtreme (ARM7 Sound Board)", MACHINE_IS_PINBALL)
+GAME(1999, strxt_uk, strikext, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Striker Xtreme (UK)", MACHINE_IS_PINBALL)
+GAME(1999, strxt_gr, strikext, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Striker Xtreme (Germany)", MACHINE_IS_PINBALL)
+GAME(1999, strxt_fr, strikext, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Striker Xtreme (France)", MACHINE_IS_PINBALL)
+GAME(1999, strxt_it, strikext, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Striker Xtreme (Italy)", MACHINE_IS_PINBALL)
+GAME(1999, strxt_sp, strikext, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Striker Xtreme (Spain)", MACHINE_IS_PINBALL)
+GAME(2003, term3, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Terminator 3: Rise of the Machines (4.00)", MACHINE_IS_PINBALL)
+GAME(2003, term3_301, term3, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Terminator 3: Rise of the Machines (3.01)", MACHINE_IS_PINBALL)
+GAME(2003, term3_205, term3, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Terminator 3: Rise of the Machines (2.05)", MACHINE_IS_PINBALL)
+GAME(2003, t3new, term3, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Terminator 3: Rise of the Machines (ARM7 Sound Board)", MACHINE_IS_PINBALL)
+GAME(2003, term3g, term3, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Terminator 3: Rise of the Machines (4.00 Germany)", MACHINE_IS_PINBALL)
+GAME(2003, term3g_301, term3, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Terminator 3: Rise of the Machines (3.01 Germany)", MACHINE_IS_PINBALL)
+GAME(2003, term3l, term3, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Terminator 3: Rise of the Machines (4.00 Spain)", MACHINE_IS_PINBALL)
+GAME(2003, term3l_301, term3, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Terminator 3: Rise of the Machines (3.01 Spain)", MACHINE_IS_PINBALL)
+GAME(2003, term3l_205, term3, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Terminator 3: Rise of the Machines (2.05 Spain)", MACHINE_IS_PINBALL)
+GAME(2003, term3f, term3, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Terminator 3: Rise of the Machines (4.00 France)", MACHINE_IS_PINBALL)
+GAME(2003, term3f_301, term3, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Terminator 3: Rise of the Machines (3.01 France)", MACHINE_IS_PINBALL)
+GAME(2003, term3f_205, term3, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Terminator 3: Rise of the Machines (2.05 France)", MACHINE_IS_PINBALL)
+GAME(2003, term3i, term3, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Terminator 3: Rise of the Machines (4.00 Italy)", MACHINE_IS_PINBALL)
+GAME(2003, term3i_301, term3, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Terminator 3: Rise of the Machines (3.01 Italy)", MACHINE_IS_PINBALL)
+GAME(2003, term3i_205, term3, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Terminator 3: Rise of the Machines (2.05 Italy)", MACHINE_IS_PINBALL)
+GAME(1997, jplstw22, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "The Lost World: Jurassic Park (2.02)", MACHINE_IS_PINBALL)
+GAME(1997, jplstw20, jplstw22, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "The Lost World: Jurassic Park (2.00)", MACHINE_IS_PINBALL)
+GAME(2003, simpprty, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "The Simpsons Pinball Party (5.00)", MACHINE_IS_PINBALL)
+GAME(2003, simpprty_400,simpprty, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "The Simpsons Pinball Party (4.00)", MACHINE_IS_PINBALL)
+GAME(2003, simpprty_300,simpprty, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "The Simpsons Pinball Party (3.00)", MACHINE_IS_PINBALL)
+GAME(2003, simpprty_204,simpprty, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "The Simpsons Pinball Party (2.04)", MACHINE_IS_PINBALL)
+GAME(2003, simpnew, simpprty, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "The Simpsons Pinball Party (ARM7 Sound Board)", MACHINE_IS_PINBALL)
+GAME(2003, simpprtg, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "The Simpsons Pinball Party (5.00 Germany)", MACHINE_IS_PINBALL)
+GAME(2003, simpprtg_400,simpprtg, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "The Simpsons Pinball Party (4.00 Germany)", MACHINE_IS_PINBALL)
+GAME(2003, simpprtl, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "The Simpsons Pinball Party (5.00 Spain)", MACHINE_IS_PINBALL)
+GAME(2003, simpprtl_400,simpprtl, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "The Simpsons Pinball Party (4.00 Spain)", MACHINE_IS_PINBALL)
+GAME(2003, simpprtl_300,simpprtl, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "The Simpsons Pinball Party (3.00 Spain)", MACHINE_IS_PINBALL)
+GAME(2003, simpprtl_204,simpprtl, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "The Simpsons Pinball Party (2.04 Spain)", MACHINE_IS_PINBALL)
+GAME(2003, simpprtf, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "The Simpsons Pinball Party (5.00 France)", MACHINE_IS_PINBALL)
+GAME(2003, simpprtf_400,simpprtf, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "The Simpsons Pinball Party (4.00 France)", MACHINE_IS_PINBALL)
+GAME(2003, simpprtf_300,simpprtf, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "The Simpsons Pinball Party (3.00 France)", MACHINE_IS_PINBALL)
+GAME(2003, simpprtf_204,simpprtf, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "The Simpsons Pinball Party (2.04 France)", MACHINE_IS_PINBALL)
+GAME(2003, simpprti, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "The Simpsons Pinball Party (5.00 Italy)", MACHINE_IS_PINBALL)
+GAME(2003, simpprti_400,simpprti, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "The Simpsons Pinball Party (4.00 Italy)", MACHINE_IS_PINBALL)
+GAME(2003, simpprti_300,simpprti, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "The Simpsons Pinball Party (3.00 Italy)", MACHINE_IS_PINBALL)
+GAME(2003, simpprti_204,simpprti, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "The Simpsons Pinball Party (2.04 Italy)", MACHINE_IS_PINBALL)
+GAME(1997, xfilesp, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "X-Files (3.03)", MACHINE_IS_PINBALL)
+GAME(1997, xfiles2, xfilesp, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "X-Files (2.04)", MACHINE_IS_PINBALL)
+GAME(1996, twst_405, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Twister (4.05)", MACHINE_IS_PINBALL)
+GAME(1996, twst_404, twst_405, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Twister (4.04)", MACHINE_IS_PINBALL)
+GAME(1996, twst_300, twst_405, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Twister (3.00)", MACHINE_IS_PINBALL)
+GAME(1998, viprsega, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Viper Night Drivin'", MACHINE_IS_PINBALL)
+GAME(1998, ctchzdlx, ctcheese, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Cut The Cheese Deluxe (Redemption)", MACHINE_IS_PINBALL)
+GAME(1998, titanic, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Titanic (Coin dropper)", MACHINE_IS_PINBALL)
+GAME(2002, monopred, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Stern", "Monopoly (Coin dropper)", MACHINE_IS_PINBALL)
+GAME(1998, wackadoo, 0, whitestar, whitestar, whitestar_state, whitestar, ROT0, "Sega", "Wack-A-Doodle-Doo (Redemption)", MACHINE_IS_PINBALL)
diff --git a/src/mess/drivers/wicat.c b/src/mame/drivers/wicat.c
index 534bc3b5de5..b9bba8cd301 100644
--- a/src/mess/drivers/wicat.c
+++ b/src/mame/drivers/wicat.c
@@ -986,4 +986,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND_HW )
+COMP( 1982, wicat, 0, 0, wicat, wicat, driver_device, 0, "Millennium Systems", "Wicat System 150", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW )
diff --git a/src/mame/drivers/wico.c b/src/mame/drivers/wico.c
index 9406f6c40e0..bd54277dc51 100644
--- a/src/mame/drivers/wico.c
+++ b/src/mame/drivers/wico.c
@@ -459,4 +459,4 @@ ROM_END
/ Big Top (1977)
/-------------------------------------------------------------------*/
-GAME(1984, aftor, 0, wico, wico, driver_device, 0, ROT0, "Wico", "Af-Tor", GAME_MECHANICAL)
+GAME(1984, aftor, 0, wico, wico, driver_device, 0, ROT0, "Wico", "Af-Tor", MACHINE_MECHANICAL)
diff --git a/src/mess/drivers/wildfire.c b/src/mame/drivers/wildfire.c
index 03dc325fd18..992fcbc544c 100644
--- a/src/mess/drivers/wildfire.c
+++ b/src/mame/drivers/wildfire.c
@@ -9,7 +9,7 @@
to create the illusion of a moving ball, and even the flippers are leds.
A drawing of a pinball table is added as overlay.
- NOTE!: MESS external artwork is recommended
+ NOTE!: MAME external artwork is required
TODO:
@@ -90,7 +90,7 @@ inline bool wildfire_state::index_is_7segled(int index)
return (index < 3);
}
-// lamp translation table: Lzz from patent US4334679 FIG.4 = MESS lampxxy,
+// lamp translation table: Lzz from patent US4334679 FIG.4 = MAME lampxxy,
// where xx is led column and y is led row, eg. lamp103 is output A10 D3
// (note: 2 mistakes in the patent: the L19 between L12 and L14 should be L13, and L84 should of course be L48)
/*
@@ -340,4 +340,4 @@ ROM_START( wildfire )
ROM_END
-CONS( 1979, wildfire, 0, 0, wildfire, wildfire, driver_device, 0, "Parker Brothers", "Wildfire (patent)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK ) // note: pretty sure that it matches the commercial release
+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
diff --git a/src/mame/drivers/wildpkr.c b/src/mame/drivers/wildpkr.c
index 8f4d785cef4..a325bde68b6 100644
--- a/src/mame/drivers/wildpkr.c
+++ b/src/mame/drivers/wildpkr.c
@@ -325,4 +325,4 @@ DRIVER_INIT_MEMBER(wildpkr_state,wildpkr)
*************************/
/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS */
-GAME( 199?, wildpkr, 0, wildpkr, wildpkr, wildpkr_state, wildpkr, ROT0, "TAB Austria", "Wild Poker (ver. D 1.01)", GAME_NO_SOUND | GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION )
+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 )
diff --git a/src/mame/drivers/williams.c b/src/mame/drivers/williams.c
index e185e12d46f..962167b527e 100644
--- a/src/mame/drivers/williams.c
+++ b/src/mame/drivers/williams.c
@@ -3055,53 +3055,53 @@ DRIVER_INIT_MEMBER(joust2_state,joust2)
*************************************/
/* Defender hardware games */
-GAME( 1980, defender, 0, defender, defender, williams_state, defender, ROT0, "Williams", "Defender (Red label)", GAME_SUPPORTS_SAVE ) // developers left Williams in 1981 and formed Vid Kidz
-GAME( 1980, defenderg, defender, defender, defender, williams_state, defender, ROT0, "Williams", "Defender (Green label)", GAME_SUPPORTS_SAVE )
-GAME( 1980, defenderb, defender, defender, defender, williams_state, defender, ROT0, "Williams", "Defender (Blue label)", GAME_SUPPORTS_SAVE )
-GAME( 1980, defenderw, defender, defender, defender, williams_state, defender, ROT0, "Williams", "Defender (White label)", GAME_SUPPORTS_SAVE )
-GAME( 1980, defndjeu, defender, defender, defender, williams_state, defndjeu, ROT0, "bootleg (Jeutel)", "Defender (bootleg)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
-GAME( 1980, tornado1, defender, defender, defender, williams_state, defndjeu, ROT0, "bootleg (Jeutel)", "Tornado (set 1, Defender bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1980, tornado2, defender, defender, defender, williams_state, defndjeu, ROT0, "bootleg (Jeutel)", "Tornado (set 2, Defender bootleg)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) // bad dump?
-GAME( 1980, zero, defender, defender, defender, williams_state, defndjeu, ROT0, "bootleg (Jeutel)", "Zero (set 1, Defender bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1980, zero2, defender, defender, defender, williams_state, defndjeu, ROT0, "bootleg (Amtec)", "Zero (set 2, Defender bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1980, defcmnd, defender, defender, defender, williams_state, defender, ROT0, "bootleg", "Defense Command (Defender bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1981, defence, defender, defender, defender, williams_state, defender, ROT0, "bootleg (Outer Limits)", "Defence Command (Defender bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1981, startrkd, defender, defender, defender, williams_state, defender, ROT0, "bootleg", "Star Trek (Defender bootleg)", GAME_SUPPORTS_SAVE )
-GAME( 1980, mayday, 0, defender, mayday, williams_state, mayday, ROT0, "Hoei", "Mayday (set 1)", GAME_SUPPORTS_SAVE ) // 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)", GAME_SUPPORTS_SAVE )
-GAME( 1980, maydayb, mayday, defender, mayday, williams_state, mayday, ROT0, "Hoei", "Mayday (set 3)", GAME_SUPPORTS_SAVE )
-GAME( 1980, batlzone, mayday, defender, mayday, williams_state, mayday, ROT0, "bootleg (Video Game)", "Battle Zone (bootleg of Mayday)", GAME_SUPPORTS_SAVE )
-GAME( 1981, colony7, 0, defender, colony7, williams_state, defender, ROT270, "Taito", "Colony 7 (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1981, colony7a, colony7, defender, colony7, williams_state, defender, ROT270, "Taito", "Colony 7 (set 2)", GAME_SUPPORTS_SAVE )
-GAME( 1982, jin, 0, jin, jin, williams_state, defender, ROT90, "Falcon", "Jin", GAME_SUPPORTS_SAVE )
+GAME( 1980, defender, 0, defender, defender, williams_state, defender, ROT0, "Williams", "Defender (Red label)", MACHINE_SUPPORTS_SAVE ) // developers left Williams in 1981 and formed Vid Kidz
+GAME( 1980, defenderg, defender, defender, defender, williams_state, defender, ROT0, "Williams", "Defender (Green label)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, defenderb, defender, defender, defender, williams_state, defender, ROT0, "Williams", "Defender (Blue label)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, defenderw, defender, defender, defender, williams_state, defender, ROT0, "Williams", "Defender (White label)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, defndjeu, defender, defender, defender, williams_state, defndjeu, ROT0, "bootleg (Jeutel)", "Defender (bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+GAME( 1980, tornado1, defender, defender, defender, williams_state, defndjeu, ROT0, "bootleg (Jeutel)", "Tornado (set 1, Defender bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, tornado2, defender, defender, defender, williams_state, defndjeu, ROT0, "bootleg (Jeutel)", "Tornado (set 2, Defender bootleg)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // bad dump?
+GAME( 1980, zero, defender, defender, defender, williams_state, defndjeu, ROT0, "bootleg (Jeutel)", "Zero (set 1, Defender bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, zero2, defender, defender, defender, williams_state, defndjeu, ROT0, "bootleg (Amtec)", "Zero (set 2, Defender bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, defcmnd, defender, defender, defender, williams_state, defender, ROT0, "bootleg", "Defense Command (Defender bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, defence, defender, defender, defender, williams_state, defender, ROT0, "bootleg (Outer Limits)", "Defence Command (Defender bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1981, startrkd, defender, defender, defender, williams_state, defender, ROT0, "bootleg", "Star Trek (Defender bootleg)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, mayday, 0, defender, mayday, williams_state, mayday, ROT0, "Hoei", "Mayday (set 1)", MACHINE_SUPPORTS_SAVE ) // 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 )
+GAME( 1980, maydayb, mayday, defender, mayday, williams_state, mayday, ROT0, "Hoei", "Mayday (set 3)", MACHINE_SUPPORTS_SAVE )
+GAME( 1980, batlzone, mayday, defender, mayday, williams_state, mayday, ROT0, "bootleg (Video Game)", "Battle Zone (bootleg of Mayday)", 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 )
/* Standard Williams hardware */
-GAME( 1981, stargate, 0, williams, stargate, williams_state, stargate, ROT0, "Williams / Vid Kidz", "Stargate", GAME_SUPPORTS_SAVE )
-GAME( 1982, robotron, 0, williams, robotron, williams_state, robotron, ROT0, "Williams / Vid Kidz", "Robotron: 2084 (Solid Blue label)", GAME_SUPPORTS_SAVE )
-GAME( 1982, robotronyo, robotron, williams, robotron, williams_state, robotron, ROT0, "Williams / Vid Kidz", "Robotron: 2084 (Yellow/Orange label)", GAME_SUPPORTS_SAVE )
-GAME( 1982, joust, 0, williams_muxed, joust, williams_state, joust, ROT0, "Williams", "Joust (White/Green label)", GAME_SUPPORTS_SAVE )
-GAME( 1982, joustr, joust, williams_muxed, joust, williams_state, joust, ROT0, "Williams", "Joust (Solid Red label)", GAME_SUPPORTS_SAVE )
-GAME( 1982, joustwr, joust, williams_muxed, joust, williams_state, joust, ROT0, "Williams", "Joust (White/Red label)", GAME_SUPPORTS_SAVE )
-GAME( 1982, bubbles, 0, williams, bubbles, williams_state, bubbles, ROT0, "Williams", "Bubbles", GAME_SUPPORTS_SAVE )
-GAME( 1982, bubblesr, bubbles, williams, bubbles, williams_state, bubbles, ROT0, "Williams", "Bubbles (Solid Red label)", GAME_SUPPORTS_SAVE )
-GAME( 1982, bubblesp, bubbles, williams, bubbles, williams_state, bubbles, ROT0, "Williams", "Bubbles (prototype version)", GAME_SUPPORTS_SAVE )
-GAME( 1982, splat, 0, williams_muxed, splat, williams_state, splat, ROT0, "Williams", "Splat!", GAME_SUPPORTS_SAVE )
-GAME( 1982, sinistar, 0, sinistar, sinistar, williams_state, sinistar, ROT270, "Williams", "Sinistar (revision 3)", GAME_SUPPORTS_SAVE )
-GAME( 1982, sinistar1, sinistar, sinistar, sinistar, williams_state, sinistar, ROT270, "Williams", "Sinistar (prototype version)", GAME_SUPPORTS_SAVE )
-GAME( 1982, sinistar2, sinistar, sinistar, sinistar, williams_state, sinistar, ROT270, "Williams", "Sinistar (revision 2)", GAME_SUPPORTS_SAVE )
-GAME( 1983, playball, 0, playball, playball, williams_state, playball, ROT270, "Williams", "PlayBall! (prototype)", GAME_SUPPORTS_SAVE )
-GAME( 1983, blaster, 0, blaster, blaster, blaster_state, blaster, ROT0, "Williams / Vid Kidz", "Blaster", GAME_SUPPORTS_SAVE )
-GAME( 1983, blastero, blaster, blaster, blaster, blaster_state, blaster, ROT0, "Williams / Vid Kidz", "Blaster (location test)", GAME_SUPPORTS_SAVE )
-GAME( 1983, blasterkit, blaster, blastkit, blastkit, blaster_state, blaster, ROT0, "Williams / Vid Kidz", "Blaster (conversion kit)", GAME_SUPPORTS_SAVE ) // mono sound
-GAME( 1985, spdball, 0, spdball, spdball, williams_state, spdball, ROT0, "Williams", "Speed Ball - Contest at Neonworld (prototype)", GAME_SUPPORTS_SAVE )
-GAME( 1985, alienar, 0, williams_muxed, alienar, williams_state, alienar, ROT0, "Duncan Brown", "Alien Arena", GAME_SUPPORTS_SAVE )
-GAME( 1985, alienaru, alienar, williams_muxed, alienar, williams_state, alienaru, ROT0, "Duncan Brown", "Alien Arena (Stargate upgrade)", GAME_SUPPORTS_SAVE )
-GAME( 1987, lottofun, 0, lottofun, lottofun, williams_state, lottofun, ROT0, "H.A.R. Management", "Lotto Fun", GAME_SUPPORTS_SAVE )
+GAME( 1981, stargate, 0, williams, stargate, williams_state, stargate, ROT0, "Williams / Vid Kidz", "Stargate", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, robotron, 0, williams, robotron, williams_state, robotron, ROT0, "Williams / Vid Kidz", "Robotron: 2084 (Solid Blue label)", MACHINE_SUPPORTS_SAVE )
+GAME( 1982, robotronyo, robotron, williams, robotron, williams_state, robotron, ROT0, "Williams / Vid Kidz", "Robotron: 2084 (Yellow/Orange 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, 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 )
+GAME( 1982, sinistar2, sinistar, sinistar, sinistar, williams_state, sinistar, ROT270, "Williams", "Sinistar (revision 2)", MACHINE_SUPPORTS_SAVE )
+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, 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, 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 )
/* 2nd Generation Williams hardware with tilemaps */
-GAME( 1983, mysticm, 0, mysticm, mysticm, williams2_state, mysticm, ROT0, "Williams", "Mystic Marathon", GAME_SUPPORTS_SAVE )
-GAME( 1983, mysticmp, mysticm, mysticm, mysticm, williams2_state, mysticm, ROT0, "Williams", "Mystic Marathon (prototype)", GAME_SUPPORTS_SAVE ) // newest roms are 'proto 6' ?
-GAME( 1984, tshoot, 0, tshoot, tshoot, williams2_state, tshoot, ROT0, "Williams", "Turkey Shoot", GAME_SUPPORTS_SAVE )
-GAME( 1984, inferno, 0, williams2, inferno, williams2_state, inferno, ROT0, "Williams", "Inferno (Williams)", GAME_SUPPORTS_SAVE )
-GAME( 1986, joust2, 0, joust2, joust2, joust2_state, joust2, ROT270, "Williams", "Joust 2 - Survival of the Fittest (revision 2)", GAME_SUPPORTS_SAVE )
-GAME( 1986, joust2r1, joust2, joust2, joust2, joust2_state, joust2, ROT270, "Williams", "Joust 2 - Survival of the Fittest (revision 1)", GAME_SUPPORTS_SAVE )
+GAME( 1983, mysticm, 0, mysticm, mysticm, williams2_state, mysticm, ROT0, "Williams", "Mystic Marathon", MACHINE_SUPPORTS_SAVE )
+GAME( 1983, mysticmp, mysticm, mysticm, mysticm, williams2_state, mysticm, ROT0, "Williams", "Mystic Marathon (prototype)", MACHINE_SUPPORTS_SAVE ) // newest roms are 'proto 6' ?
+GAME( 1984, tshoot, 0, tshoot, tshoot, williams2_state, tshoot, ROT0, "Williams", "Turkey Shoot", 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 )
diff --git a/src/mame/drivers/wink.c b/src/mame/drivers/wink.c
index a637bc2de7d..2de3c9ed844 100644
--- a/src/mame/drivers/wink.c
+++ b/src/mame/drivers/wink.c
@@ -447,5 +447,5 @@ DRIVER_INIT_MEMBER(wink_state,wink)
ROM[i] += BITSWAP8(i & 0xff, 7,5,3,1,6,4,2,0);
}
-GAME( 1985, wink, 0, wink, wink, wink_state, wink, ROT0, "Midcoin", "Wink (set 1)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE )
-GAME( 1985, winka, wink, wink, wink, wink_state, wink, ROT0, "Midcoin", "Wink (set 2)", GAME_IMPERFECT_SOUND | GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE )
+GAME( 1985, wink, 0, wink, wink, wink_state, wink, ROT0, "Midcoin", "Wink (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
+GAME( 1985, winka, wink, wink, wink, wink_state, wink, ROT0, "Midcoin", "Wink (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/wiping.c b/src/mame/drivers/wiping.c
index 91d28ac3c1c..f8ff06d2573 100644
--- a/src/mame/drivers/wiping.c
+++ b/src/mame/drivers/wiping.c
@@ -383,5 +383,5 @@ ROM_END
-GAME( 1982, wiping, 0, wiping, wiping, driver_device, 0, ROT90, "Nichibutsu", "Wiping", GAME_SUPPORTS_SAVE )
-GAME( 1983, rugrats, wiping, wiping, rugrats, driver_device, 0, ROT90, "Nichibutsu", "Rug Rats", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/wiz.c b/src/mame/drivers/wiz.c
index ab881a9a3e1..b2f673bc82a 100644
--- a/src/mame/drivers/wiz.c
+++ b/src/mame/drivers/wiz.c
@@ -1152,12 +1152,12 @@ DRIVER_INIT_MEMBER(wiz_state,stinger)
}
-GAME( 1983, stinger, 0, stinger, stinger, wiz_state, stinger, ROT90, "Seibu Denshi", "Stinger", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE )
-GAME( 1983, stinger2, stinger, stinger, stinger2, wiz_state, stinger, ROT90, "Seibu Denshi", "Stinger (prototype?)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE )
-GAME( 1984, scion, 0, scion, scion, driver_device, 0, ROT0, "Seibu Denshi", "Scion", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE )
-GAME( 1984, scionc, scion, scion, scion, driver_device, 0, ROT0, "Seibu Denshi (Cinematronics license)", "Scion (Cinematronics)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE )
-GAME( 1984, kungfut, 0, kungfut, kungfut, driver_device, 0, ROT0, "Seibu Kaihatsu", "Kung-Fu Taikun (set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1984, kungfuta, kungfut, kungfut, kungfut, driver_device, 0, ROT0, "Seibu Kaihatsu", "Kung-Fu Taikun (set 2)", GAME_SUPPORTS_SAVE ) /* board was a bootleg but set might still be original */
-GAME( 1985, wiz, 0, wiz, wiz, driver_device, 0, ROT270, "Seibu Kaihatsu", "Wiz", GAME_SUPPORTS_SAVE )
-GAME( 1985, wizt, wiz, wiz, wiz, driver_device, 0, ROT270, "Seibu Kaihatsu (Taito license)", "Wiz (Taito, set 1)", GAME_SUPPORTS_SAVE )
-GAME( 1985, wizta, wiz, wiz, wiz, driver_device, 0, ROT270, "Seibu Kaihatsu (Taito license)", "Wiz (Taito, set 2)", GAME_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, 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 )
+GAME( 1984, kungfuta, kungfut, kungfut, kungfut, driver_device, 0, ROT0, "Seibu Kaihatsu", "Kung-Fu Taikun (set 2)", MACHINE_SUPPORTS_SAVE ) /* 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 )
diff --git a/src/mame/drivers/wms.c b/src/mame/drivers/wms.c
index fa4bc031760..21f56ca3a3d 100644
--- a/src/mame/drivers/wms.c
+++ b/src/mame/drivers/wms.c
@@ -562,30 +562,30 @@ DRIVER_INIT_MEMBER(wms_state,wms)
// YEAR NAME PARENT MACHINE INPUT STATE INIT ROT COMPANY FULLNAME FLAGS
-GAME( 200?, wms, 0, wms, wms, wms_state, wms, ROT0, "WMS", "WMS SetUp/Clear Chips (set 1)", GAME_IS_SKELETON )
-GAME( 200?, wmsa, wms, wms, wms, wms_state, wms, ROT0, "WMS", "WMS SetUp/Clear Chips (set 2)", GAME_IS_SKELETON )
-GAME( 200?, wmsb, wms, wms, wms, wms_state, wms, ROT0, "WMS", "WMS SetUp/Clear Chips (set 3)", GAME_IS_SKELETON )
-
-GAME( 200?, btippers, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Big Tippers (Russian)", GAME_IS_SKELETON )
-GAME( 200?, wmsboom, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Boom (Russian)", GAME_IS_SKELETON )
-GAME( 200?, cashcrop, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Cash Crop (Russian)", GAME_IS_SKELETON )
-GAME( 200?, filthyr, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Filthy Rich (Russian)", GAME_IS_SKELETON )
-GAME( 200?, hottop, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Hot Toppings (English)", GAME_IS_SKELETON )
-GAME( 200?, hottopa, hottop, wms, wms, wms_state, wms, ROT0, "WMS", "Hot Toppings (Russian?)", GAME_IS_SKELETON )
-GAME( 200?, inwinner, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Instant Winner (Russian)", GAME_IS_SKELETON )
-GAME( 200?, jptparty, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Jackpot Party (Russian)", GAME_IS_SKELETON )
-GAME( 200?, leprgld, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Leprechaun's Gold (Russian)", GAME_IS_SKELETON )
-GAME( 200?, leprglds, leprgld, wms, wms, wms_state, wms, ROT0, "WMS", "Leprechaun's Gold (Spanish)", GAME_IS_SKELETON )
-GAME( 200?, lol, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Life of Luxury (Russian)", GAME_IS_SKELETON )
-GAME( 200?, lovewin, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Love To Win (Russian)", GAME_IS_SKELETON )
-GAME( 200?, mtburn, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Money To Burn (Russian)", GAME_IS_SKELETON )
-GAME( 200?, otchart, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Off The Charts (Russian)", GAME_IS_SKELETON )
-GAME( 200?, perfect, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Perfect Game (Russian)", GAME_IS_SKELETON )
-GAME( 200?, reelemin, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Reel 'Em In (Russian)", GAME_IS_SKELETON )
-GAME( 200?, sonoth, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Something For Nothing (Russian)", GAME_IS_SKELETON )
-GAME( 200?, swingin, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Swingin In The Green (Russian)", GAME_IS_SKELETON )
-GAME( 200?, wmstopb, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Top Banana (Russian)", GAME_IS_SKELETON )
-GAME( 200?, wdun, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Who Dunnit (Russian)", GAME_IS_SKELETON )
-GAME( 200?, winbid, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Winning Bid (Russian)", GAME_IS_SKELETON )
-GAME( 200?, wldstrek, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Wild Streak (Russian)", GAME_IS_SKELETON )
-GAME( 200?, yukongld, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Yukon Gold (Russian)", GAME_IS_SKELETON )
+GAME( 200?, wms, 0, wms, wms, wms_state, wms, ROT0, "WMS", "WMS SetUp/Clear Chips (set 1)", MACHINE_IS_SKELETON )
+GAME( 200?, wmsa, wms, wms, wms, wms_state, wms, ROT0, "WMS", "WMS SetUp/Clear Chips (set 2)", MACHINE_IS_SKELETON )
+GAME( 200?, wmsb, wms, wms, wms, wms_state, wms, ROT0, "WMS", "WMS SetUp/Clear Chips (set 3)", MACHINE_IS_SKELETON )
+
+GAME( 200?, btippers, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Big Tippers (Russian)", MACHINE_IS_SKELETON )
+GAME( 200?, wmsboom, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Boom (Russian)", MACHINE_IS_SKELETON )
+GAME( 200?, cashcrop, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Cash Crop (Russian)", MACHINE_IS_SKELETON )
+GAME( 200?, filthyr, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Filthy Rich (Russian)", MACHINE_IS_SKELETON )
+GAME( 200?, hottop, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Hot Toppings (English)", MACHINE_IS_SKELETON )
+GAME( 200?, hottopa, hottop, wms, wms, wms_state, wms, ROT0, "WMS", "Hot Toppings (Russian?)", MACHINE_IS_SKELETON )
+GAME( 200?, inwinner, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Instant Winner (Russian)", MACHINE_IS_SKELETON )
+GAME( 200?, jptparty, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Jackpot Party (Russian)", MACHINE_IS_SKELETON )
+GAME( 200?, leprgld, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Leprechaun's Gold (Russian)", MACHINE_IS_SKELETON )
+GAME( 200?, leprglds, leprgld, wms, wms, wms_state, wms, ROT0, "WMS", "Leprechaun's Gold (Spanish)", MACHINE_IS_SKELETON )
+GAME( 200?, lol, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Life of Luxury (Russian)", MACHINE_IS_SKELETON )
+GAME( 200?, lovewin, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Love To Win (Russian)", MACHINE_IS_SKELETON )
+GAME( 200?, mtburn, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Money To Burn (Russian)", MACHINE_IS_SKELETON )
+GAME( 200?, otchart, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Off The Charts (Russian)", MACHINE_IS_SKELETON )
+GAME( 200?, perfect, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Perfect Game (Russian)", MACHINE_IS_SKELETON )
+GAME( 200?, reelemin, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Reel 'Em In (Russian)", MACHINE_IS_SKELETON )
+GAME( 200?, sonoth, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Something For Nothing (Russian)", MACHINE_IS_SKELETON )
+GAME( 200?, swingin, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Swingin In The Green (Russian)", MACHINE_IS_SKELETON )
+GAME( 200?, wmstopb, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Top Banana (Russian)", MACHINE_IS_SKELETON )
+GAME( 200?, wdun, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Who Dunnit (Russian)", MACHINE_IS_SKELETON )
+GAME( 200?, winbid, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Winning Bid (Russian)", MACHINE_IS_SKELETON )
+GAME( 200?, wldstrek, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Wild Streak (Russian)", MACHINE_IS_SKELETON )
+GAME( 200?, yukongld, 0, wms, wms, wms_state, wms, ROT0, "WMS", "Yukon Gold (Russian)", MACHINE_IS_SKELETON )
diff --git a/src/mame/drivers/wolfpack.c b/src/mame/drivers/wolfpack.c
index 131c8444329..dbe21b838de 100644
--- a/src/mame/drivers/wolfpack.c
+++ b/src/mame/drivers/wolfpack.c
@@ -357,4 +357,4 @@ ROM_START( wolfpack )
ROM_END
-GAME( 1978, wolfpack, 0, wolfpack, wolfpack, driver_device, 0, ORIENTATION_FLIP_Y, "Atari", "Wolf Pack (prototype)", GAME_IMPERFECT_SOUND )
+GAME( 1978, wolfpack, 0, wolfpack, wolfpack, driver_device, 0, ORIENTATION_FLIP_Y, "Atari", "Wolf Pack (prototype)", MACHINE_IMPERFECT_SOUND )
diff --git a/src/mame/drivers/wpc_95.c b/src/mame/drivers/wpc_95.c
index 4d810604858..1adf3d64867 100644
--- a/src/mame/drivers/wpc_95.c
+++ b/src/mame/drivers/wpc_95.c
@@ -3017,65 +3017,65 @@ ROM_START(tf95_12)
ROM_LOAD16_BYTE("s2_10.rom", 0x000000, 0x100000, CRC(ceff7fe4) SHA1(ff2574f65e09d446b9e446abd58159a7d100059b))
ROM_END
-GAME(1996, tf95_12, 0, wpc_95, afm, wpc_95_state, tf95, ROT0, "Bally", "WPC 95 Test Fixture (1.2)", GAME_MECHANICAL)
-GAME(1995, afm_113, 0, wpc_95, afm, wpc_95_state, afm, ROT0, "Bally", "Attack From Mars (1.13, Free play)", GAME_MECHANICAL)
-GAME(1995, afm_113b, afm_113, wpc_95, afm, wpc_95_state, afm, ROT0, "Bally", "Attack From Mars (1.13b)", GAME_MECHANICAL)
-GAME(1995, afm_11, afm_113, wpc_95, afm, wpc_95_state, afm, ROT0, "Bally", "Attack From Mars (1.1)", GAME_MECHANICAL)
-GAME(1995, afm_11u, afm_113, wpc_95, afm, wpc_95_state, afm, ROT0, "Bally", "Attack From Mars (1.1 Ultrapin)", GAME_MECHANICAL)
-GAME(1995, afm_10, afm_113, wpc_95, afm, wpc_95_state, afm, ROT0, "Bally", "Attack From Mars (1.0)", GAME_MECHANICAL)
-GAME(1998, cc_13, 0, wpc_95, cc, wpc_95_state, cc, ROT0, "Bally", "Cactus Canyon (1.3)", GAME_MECHANICAL)
-GAME(1998, cc_12, cc_13, wpc_95, cc, wpc_95_state, cc, ROT0, "Bally", "Cactus Canyon (1.2)", GAME_MECHANICAL)
-GAME(1998, cc_10, cc_13, wpc_95, cc, wpc_95_state, cc, ROT0, "Bally", "Cactus Canyon (1.0)", GAME_MECHANICAL)
-GAME(1998, cc_104, cc_13, wpc_95, cc, wpc_95_state, cc, ROT0, "Bally", "Cactus Canyon (1.04 Test 0.2)", GAME_MECHANICAL)
-GAME(1997, cv_14, 0, wpc_95, cv, wpc_95_state, cv, ROT0, "Bally", "Cirqus Voltaire (1.4)", GAME_MECHANICAL)
-GAME(1997, cv_20h, cv_14, wpc_95, cv, wpc_95_state, cv, ROT0, "Bally", "Cirqus Voltaire (2.0H)", GAME_MECHANICAL)
-GAME(1997, cv_10, cv_14, wpc_95, cv, wpc_95_state, cv, ROT0, "Bally", "Cirqus Voltaire (1.0)", GAME_MECHANICAL)
-GAME(1997, cv_11, cv_14, wpc_95, cv, wpc_95_state, cv, ROT0, "Bally", "Cirqus Voltaire (1.1)", GAME_MECHANICAL)
-GAME(1997, cv_13, cv_14, wpc_95, cv, wpc_95_state, cv, ROT0, "Bally", "Cirqus Voltaire (1.3)", GAME_MECHANICAL)
-GAME(1995, congo_21, 0, wpc_95, congo, wpc_95_state, congo, ROT0, "Williams", "Congo (2.1)", GAME_MECHANICAL)
-GAME(1995, congo_20, congo_21, wpc_95, congo, wpc_95_state, congo, ROT0, "Williams", "Congo (2.0)", GAME_MECHANICAL)
-GAME(1995, congo_13, congo_21, wpc_95, congo, wpc_95_state, congo, ROT0, "Williams", "Congo (1.3)", GAME_MECHANICAL)
-GAME(1995, congo_11, congo_21, wpc_95, congo, wpc_95_state, congo, ROT0, "Williams", "Congo (1.1)", GAME_MECHANICAL)
-GAME(1996, jy_12, 0, wpc_95, jy, wpc_95_state, jy, ROT0, "Williams", "Junk Yard (1.2)", GAME_MECHANICAL)
-GAME(1996, jy_11, jy_12, wpc_95, jy, wpc_95_state, jy, ROT0, "Williams", "Junk Yard (1.1)", GAME_MECHANICAL)
-GAME(1996, jy_03, jy_12, wpc_95, jy, wpc_95_state, jy, ROT0, "Williams", "Junk Yard (0.3)", GAME_MECHANICAL)
-GAME(1999, mm_10, 0, wpc_95, mm, wpc_95_state, mm, ROT0, "Williams", "Medieval Madness (1.0)", GAME_MECHANICAL)
-GAME(1999, mm_10u, mm_10, wpc_95, mm, wpc_95_state, mm, ROT0, "Williams", "Medieval Madness (1.0 Ultrapin)", GAME_MECHANICAL)
-GAME(1999, mm_109, mm_10, wpc_95, mm, wpc_95_state, mm, ROT0, "Williams", "Medieval Madness (1.09)", GAME_MECHANICAL)
-GAME(1999, mm_109b, mm_10, wpc_95, mm, wpc_95_state, mm, ROT0, "Williams", "Medieval Madness (1.09B)", GAME_MECHANICAL)
-GAME(1999, mm_109c, mm_10, wpc_95, mm, wpc_95_state, mm, ROT0, "Williams", "Medieval Madness (1.09C Profanity)", GAME_MECHANICAL)
-GAME(1997, mm_05, mm_10, wpc_95, mm, wpc_95_state, mm, ROT0, "Williams", "Medieval Madness (0.50)", GAME_MECHANICAL)
-GAME(1998, mb_10, 0, wpc_95, mb, wpc_95_state, mb, ROT0, "Williams", "Monster Bash (1.0)", GAME_MECHANICAL)
-GAME(1998, mb_106, mb_10, wpc_95, mb, wpc_95_state, mb, ROT0, "Williams", "Monster Bash (1.06)", GAME_MECHANICAL)
-GAME(1998, mb_106b, mb_10, wpc_95, mb, wpc_95_state, mb, ROT0, "Williams", "Monster Bash (1.06b)", GAME_MECHANICAL)
-GAME(1997, nbaf_31, 0, wpc_95, nbaf, wpc_95_state, nbaf, ROT0, "Bally", "NBA Fastbreak (3.1 - S3.0)", GAME_MECHANICAL)
-GAME(1997, nbaf_31a, nbaf_31, wpc_95, nbaf, wpc_95_state, nbaf, ROT0, "Bally", "NBA Fastbreak (3.1 - S1.0)", GAME_MECHANICAL)
-GAME(1997, nbaf_11s, nbaf_31, wpc_95, nbaf, wpc_95_state, nbaf, ROT0, "Bally", "NBA Fastbreak (1.1 - S0.4)", GAME_MECHANICAL)
-GAME(1997, nbaf_11, nbaf_31, wpc_95, nbaf, wpc_95_state, nbaf, ROT0, "Bally", "NBA Fastbreak (1.1)", GAME_MECHANICAL)
-GAME(1997, nbaf_11a, nbaf_31, wpc_95, nbaf, wpc_95_state, nbaf, ROT0, "Bally", "NBA Fastbreak (1.1 - S2.0)", GAME_MECHANICAL)
-GAME(1997, nbaf_115, nbaf_31, wpc_95, nbaf, wpc_95_state, nbaf, ROT0, "Bally", "NBA Fastbreak (1.15)", GAME_MECHANICAL)
-GAME(1997, nbaf_21, nbaf_31, wpc_95, nbaf, wpc_95_state, nbaf, ROT0, "Bally", "NBA Fastbreak (2.1)", GAME_MECHANICAL)
-GAME(1997, nbaf_22, nbaf_31, wpc_95, nbaf, wpc_95_state, nbaf, ROT0, "Bally", "NBA Fastbreak (2.2)", GAME_MECHANICAL)
-GAME(1997, nbaf_23, nbaf_31, wpc_95, nbaf, wpc_95_state, nbaf, ROT0, "Bally", "NBA Fastbreak (2.3)", GAME_MECHANICAL)
-GAME(1997, ngg_13, 0, wpc_95, ngg, wpc_95_state, ngg, ROT0, "Williams", "No Good Gofers (1.3)", GAME_MECHANICAL)
-GAME(1997, ngg_p06, ngg_13, wpc_95, ngg, wpc_95_state, ngg, ROT0, "Williams", "No Good Gofers (p0.6)", GAME_MECHANICAL)
-GAME(1997, ngg_10, ngg_13, wpc_95, ngg, wpc_95_state, ngg, ROT0, "Williams", "No Good Gofers (1.0)", GAME_MECHANICAL)
-GAME(1998, sc_18, 0, wpc_95, sc, wpc_95_state, sc, ROT0, "Bally", "Safe Cracker (1.8)", GAME_MECHANICAL)
-GAME(1998, sc_18n, sc_18, wpc_95, sc, wpc_95_state, sc, ROT0, "Bally", "Safe Cracker (1.8N)", GAME_MECHANICAL)
-GAME(1998, sc_18s2, sc_18, wpc_95, sc, wpc_95_state, sc, ROT0, "Bally", "Safe Cracker (1.8 alternate sound)", GAME_MECHANICAL)
-GAME(1996, sc_17, sc_18, wpc_95, sc, wpc_95_state, sc, ROT0, "Bally", "Safe Cracker (1.7)", GAME_MECHANICAL)
-GAME(1996, sc_17n, sc_18, wpc_95, sc, wpc_95_state, sc, ROT0, "Bally", "Safe Cracker (1.7N)", GAME_MECHANICAL)
-GAME(1996, sc_14, sc_18, wpc_95, sc, wpc_95_state, sc, ROT0, "Bally", "Safe Cracker (1.4)", GAME_MECHANICAL)
-GAME(1996, sc_091, sc_18, wpc_95, sc, wpc_95_state, sc, ROT0, "Bally", "Safe Cracker (0.91)", GAME_MECHANICAL)
-GAME(1996, ss_15, 0, wpc_95, ss, wpc_95_state, ss, ROT0, "Bally", "Scared Stiff (1.5)", GAME_MECHANICAL)
-GAME(1996, ss_14, ss_15, wpc_95, ss, wpc_95_state, ss, ROT0, "Bally", "Scared Stiff (1.4)", GAME_MECHANICAL)
-GAME(1996, ss_12, ss_15, wpc_95, ss, wpc_95_state, ss, ROT0, "Bally", "Scared Stiff (1.2)", GAME_MECHANICAL)
-GAME(1996, ss_03, ss_15, wpc_95, ss, wpc_95_state, ss, ROT0, "Bally", "Scared Stiff (0.3)", GAME_MECHANICAL)
-GAME(1996, ss_01, ss_15, wpc_95, ss, wpc_95_state, ss, ROT0, "Bally", "Scared Stiff (D0.1R with sound rev.25)", GAME_MECHANICAL)
-GAME(1996, totan_14, 0, wpc_95, totan, wpc_95_state, totan, ROT0, "Williams", "Tales Of The Arabian Nights (1.4)", GAME_MECHANICAL)
-GAME(1996, totan_13, totan_14, wpc_95, totan, wpc_95_state, totan, ROT0, "Williams", "Tales Of The Arabian Nights (1.3)", GAME_MECHANICAL)
-GAME(1996, totan_12, totan_14, wpc_95, totan, wpc_95_state, totan, ROT0, "Williams", "Tales Of The Arabian Nights (1.2)", GAME_MECHANICAL)
-GAME(1996, totan_04, totan_14, wpc_95, totan, wpc_95_state, totan, ROT0, "Williams", "Tales Of The Arabian Nights (0.4)", GAME_MECHANICAL)
-GAME(1998, cp_16, 0, wpc_95, cp, wpc_95_state, cp, ROT0, "Bally", "The Champion Pub (1.6)", GAME_MECHANICAL)
-GAME(1998, cp_15, cp_16, wpc_95, cp, wpc_95_state, cp, ROT0, "Bally", "The Champion Pub (1.5)", GAME_MECHANICAL)
-GAME(1996, ttt_10, 0, wpc_95, ttt, wpc_95_state, ttt, ROT0, "Williams", "Ticket Tac Toe (1.0)", GAME_MECHANICAL)
+GAME(1996, tf95_12, 0, wpc_95, afm, wpc_95_state, tf95, ROT0, "Bally", "WPC 95 Test Fixture (1.2)", MACHINE_MECHANICAL)
+GAME(1995, afm_113, 0, wpc_95, afm, wpc_95_state, afm, ROT0, "Bally", "Attack From Mars (1.13, Free play)", MACHINE_MECHANICAL)
+GAME(1995, afm_113b, afm_113, wpc_95, afm, wpc_95_state, afm, ROT0, "Bally", "Attack From Mars (1.13b)", MACHINE_MECHANICAL)
+GAME(1995, afm_11, afm_113, wpc_95, afm, wpc_95_state, afm, ROT0, "Bally", "Attack From Mars (1.1)", MACHINE_MECHANICAL)
+GAME(1995, afm_11u, afm_113, wpc_95, afm, wpc_95_state, afm, ROT0, "Bally", "Attack From Mars (1.1 Ultrapin)", MACHINE_MECHANICAL)
+GAME(1995, afm_10, afm_113, wpc_95, afm, wpc_95_state, afm, ROT0, "Bally", "Attack From Mars (1.0)", MACHINE_MECHANICAL)
+GAME(1998, cc_13, 0, wpc_95, cc, wpc_95_state, cc, ROT0, "Bally", "Cactus Canyon (1.3)", MACHINE_MECHANICAL)
+GAME(1998, cc_12, cc_13, wpc_95, cc, wpc_95_state, cc, ROT0, "Bally", "Cactus Canyon (1.2)", MACHINE_MECHANICAL)
+GAME(1998, cc_10, cc_13, wpc_95, cc, wpc_95_state, cc, ROT0, "Bally", "Cactus Canyon (1.0)", MACHINE_MECHANICAL)
+GAME(1998, cc_104, cc_13, wpc_95, cc, wpc_95_state, cc, ROT0, "Bally", "Cactus Canyon (1.04 Test 0.2)", MACHINE_MECHANICAL)
+GAME(1997, cv_14, 0, wpc_95, cv, wpc_95_state, cv, ROT0, "Bally", "Cirqus Voltaire (1.4)", MACHINE_MECHANICAL)
+GAME(1997, cv_20h, cv_14, wpc_95, cv, wpc_95_state, cv, ROT0, "Bally", "Cirqus Voltaire (2.0H)", MACHINE_MECHANICAL)
+GAME(1997, cv_10, cv_14, wpc_95, cv, wpc_95_state, cv, ROT0, "Bally", "Cirqus Voltaire (1.0)", MACHINE_MECHANICAL)
+GAME(1997, cv_11, cv_14, wpc_95, cv, wpc_95_state, cv, ROT0, "Bally", "Cirqus Voltaire (1.1)", MACHINE_MECHANICAL)
+GAME(1997, cv_13, cv_14, wpc_95, cv, wpc_95_state, cv, ROT0, "Bally", "Cirqus Voltaire (1.3)", MACHINE_MECHANICAL)
+GAME(1995, congo_21, 0, wpc_95, congo, wpc_95_state, congo, ROT0, "Williams", "Congo (2.1)", MACHINE_MECHANICAL)
+GAME(1995, congo_20, congo_21, wpc_95, congo, wpc_95_state, congo, ROT0, "Williams", "Congo (2.0)", MACHINE_MECHANICAL)
+GAME(1995, congo_13, congo_21, wpc_95, congo, wpc_95_state, congo, ROT0, "Williams", "Congo (1.3)", MACHINE_MECHANICAL)
+GAME(1995, congo_11, congo_21, wpc_95, congo, wpc_95_state, congo, ROT0, "Williams", "Congo (1.1)", MACHINE_MECHANICAL)
+GAME(1996, jy_12, 0, wpc_95, jy, wpc_95_state, jy, ROT0, "Williams", "Junk Yard (1.2)", MACHINE_MECHANICAL)
+GAME(1996, jy_11, jy_12, wpc_95, jy, wpc_95_state, jy, ROT0, "Williams", "Junk Yard (1.1)", MACHINE_MECHANICAL)
+GAME(1996, jy_03, jy_12, wpc_95, jy, wpc_95_state, jy, ROT0, "Williams", "Junk Yard (0.3)", MACHINE_MECHANICAL)
+GAME(1999, mm_10, 0, wpc_95, mm, wpc_95_state, mm, ROT0, "Williams", "Medieval Madness (1.0)", MACHINE_MECHANICAL)
+GAME(1999, mm_10u, mm_10, wpc_95, mm, wpc_95_state, mm, ROT0, "Williams", "Medieval Madness (1.0 Ultrapin)", MACHINE_MECHANICAL)
+GAME(1999, mm_109, mm_10, wpc_95, mm, wpc_95_state, mm, ROT0, "Williams", "Medieval Madness (1.09)", MACHINE_MECHANICAL)
+GAME(1999, mm_109b, mm_10, wpc_95, mm, wpc_95_state, mm, ROT0, "Williams", "Medieval Madness (1.09B)", MACHINE_MECHANICAL)
+GAME(1999, mm_109c, mm_10, wpc_95, mm, wpc_95_state, mm, ROT0, "Williams", "Medieval Madness (1.09C Profanity)", MACHINE_MECHANICAL)
+GAME(1997, mm_05, mm_10, wpc_95, mm, wpc_95_state, mm, ROT0, "Williams", "Medieval Madness (0.50)", MACHINE_MECHANICAL)
+GAME(1998, mb_10, 0, wpc_95, mb, wpc_95_state, mb, ROT0, "Williams", "Monster Bash (1.0)", MACHINE_MECHANICAL)
+GAME(1998, mb_106, mb_10, wpc_95, mb, wpc_95_state, mb, ROT0, "Williams", "Monster Bash (1.06)", MACHINE_MECHANICAL)
+GAME(1998, mb_106b, mb_10, wpc_95, mb, wpc_95_state, mb, ROT0, "Williams", "Monster Bash (1.06b)", MACHINE_MECHANICAL)
+GAME(1997, nbaf_31, 0, wpc_95, nbaf, wpc_95_state, nbaf, ROT0, "Bally", "NBA Fastbreak (3.1 - S3.0)", MACHINE_MECHANICAL)
+GAME(1997, nbaf_31a, nbaf_31, wpc_95, nbaf, wpc_95_state, nbaf, ROT0, "Bally", "NBA Fastbreak (3.1 - S1.0)", MACHINE_MECHANICAL)
+GAME(1997, nbaf_11s, nbaf_31, wpc_95, nbaf, wpc_95_state, nbaf, ROT0, "Bally", "NBA Fastbreak (1.1 - S0.4)", MACHINE_MECHANICAL)
+GAME(1997, nbaf_11, nbaf_31, wpc_95, nbaf, wpc_95_state, nbaf, ROT0, "Bally", "NBA Fastbreak (1.1)", MACHINE_MECHANICAL)
+GAME(1997, nbaf_11a, nbaf_31, wpc_95, nbaf, wpc_95_state, nbaf, ROT0, "Bally", "NBA Fastbreak (1.1 - S2.0)", MACHINE_MECHANICAL)
+GAME(1997, nbaf_115, nbaf_31, wpc_95, nbaf, wpc_95_state, nbaf, ROT0, "Bally", "NBA Fastbreak (1.15)", MACHINE_MECHANICAL)
+GAME(1997, nbaf_21, nbaf_31, wpc_95, nbaf, wpc_95_state, nbaf, ROT0, "Bally", "NBA Fastbreak (2.1)", MACHINE_MECHANICAL)
+GAME(1997, nbaf_22, nbaf_31, wpc_95, nbaf, wpc_95_state, nbaf, ROT0, "Bally", "NBA Fastbreak (2.2)", MACHINE_MECHANICAL)
+GAME(1997, nbaf_23, nbaf_31, wpc_95, nbaf, wpc_95_state, nbaf, ROT0, "Bally", "NBA Fastbreak (2.3)", MACHINE_MECHANICAL)
+GAME(1997, ngg_13, 0, wpc_95, ngg, wpc_95_state, ngg, ROT0, "Williams", "No Good Gofers (1.3)", MACHINE_MECHANICAL)
+GAME(1997, ngg_p06, ngg_13, wpc_95, ngg, wpc_95_state, ngg, ROT0, "Williams", "No Good Gofers (p0.6)", MACHINE_MECHANICAL)
+GAME(1997, ngg_10, ngg_13, wpc_95, ngg, wpc_95_state, ngg, ROT0, "Williams", "No Good Gofers (1.0)", MACHINE_MECHANICAL)
+GAME(1998, sc_18, 0, wpc_95, sc, wpc_95_state, sc, ROT0, "Bally", "Safe Cracker (1.8)", MACHINE_MECHANICAL)
+GAME(1998, sc_18n, sc_18, wpc_95, sc, wpc_95_state, sc, ROT0, "Bally", "Safe Cracker (1.8N)", MACHINE_MECHANICAL)
+GAME(1998, sc_18s2, sc_18, wpc_95, sc, wpc_95_state, sc, ROT0, "Bally", "Safe Cracker (1.8 alternate sound)", MACHINE_MECHANICAL)
+GAME(1996, sc_17, sc_18, wpc_95, sc, wpc_95_state, sc, ROT0, "Bally", "Safe Cracker (1.7)", MACHINE_MECHANICAL)
+GAME(1996, sc_17n, sc_18, wpc_95, sc, wpc_95_state, sc, ROT0, "Bally", "Safe Cracker (1.7N)", MACHINE_MECHANICAL)
+GAME(1996, sc_14, sc_18, wpc_95, sc, wpc_95_state, sc, ROT0, "Bally", "Safe Cracker (1.4)", MACHINE_MECHANICAL)
+GAME(1996, sc_091, sc_18, wpc_95, sc, wpc_95_state, sc, ROT0, "Bally", "Safe Cracker (0.91)", MACHINE_MECHANICAL)
+GAME(1996, ss_15, 0, wpc_95, ss, wpc_95_state, ss, ROT0, "Bally", "Scared Stiff (1.5)", MACHINE_MECHANICAL)
+GAME(1996, ss_14, ss_15, wpc_95, ss, wpc_95_state, ss, ROT0, "Bally", "Scared Stiff (1.4)", MACHINE_MECHANICAL)
+GAME(1996, ss_12, ss_15, wpc_95, ss, wpc_95_state, ss, ROT0, "Bally", "Scared Stiff (1.2)", MACHINE_MECHANICAL)
+GAME(1996, ss_03, ss_15, wpc_95, ss, wpc_95_state, ss, ROT0, "Bally", "Scared Stiff (0.3)", MACHINE_MECHANICAL)
+GAME(1996, ss_01, ss_15, wpc_95, ss, wpc_95_state, ss, ROT0, "Bally", "Scared Stiff (D0.1R with sound rev.25)", MACHINE_MECHANICAL)
+GAME(1996, totan_14, 0, wpc_95, totan, wpc_95_state, totan, ROT0, "Williams", "Tales Of The Arabian Nights (1.4)", MACHINE_MECHANICAL)
+GAME(1996, totan_13, totan_14, wpc_95, totan, wpc_95_state, totan, ROT0, "Williams", "Tales Of The Arabian Nights (1.3)", MACHINE_MECHANICAL)
+GAME(1996, totan_12, totan_14, wpc_95, totan, wpc_95_state, totan, ROT0, "Williams", "Tales Of The Arabian Nights (1.2)", MACHINE_MECHANICAL)
+GAME(1996, totan_04, totan_14, wpc_95, totan, wpc_95_state, totan, ROT0, "Williams", "Tales Of The Arabian Nights (0.4)", MACHINE_MECHANICAL)
+GAME(1998, cp_16, 0, wpc_95, cp, wpc_95_state, cp, ROT0, "Bally", "The Champion Pub (1.6)", MACHINE_MECHANICAL)
+GAME(1998, cp_15, cp_16, wpc_95, cp, wpc_95_state, cp, ROT0, "Bally", "The Champion Pub (1.5)", MACHINE_MECHANICAL)
+GAME(1996, ttt_10, 0, wpc_95, ttt, wpc_95_state, ttt, ROT0, "Williams", "Ticket Tac Toe (1.0)", MACHINE_MECHANICAL)
diff --git a/src/mame/drivers/wpc_an.c b/src/mame/drivers/wpc_an.c
index 3f73469d58e..49cc252f52a 100644
--- a/src/mame/drivers/wpc_an.c
+++ b/src/mame/drivers/wpc_an.c
@@ -657,20 +657,20 @@ 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)", GAME_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)", GAME_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)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1990, fh_l9, 0, wpc_an, wpc_an, wpc_an_state, wpc_an, ROT0, "Williams", "Funhouse L-9 (SL-2m)", GAME_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", GAME_IS_SKELETON_MECHANICAL)
-GAME(1996, fh_905h, fh_l9, wpc_an, wpc_an, wpc_an_state, wpc_an, ROT0, "Williams", "Funhouse 9.05H", GAME_IS_SKELETON_MECHANICAL)
-GAME(1990, fh_l3, fh_l9, wpc_an, wpc_an, wpc_an_state, wpc_an, ROT0, "Williams", "Funhouse L-3", GAME_IS_SKELETON_MECHANICAL)
-GAME(1990, fh_l4, fh_l9, wpc_an, wpc_an, wpc_an_state, wpc_an, ROT0, "Williams", "Funhouse L-4", GAME_IS_SKELETON_MECHANICAL)
-GAME(1990, fh_l5, fh_l9, wpc_an, wpc_an, wpc_an_state, wpc_an, ROT0, "Williams", "Funhouse L-5", GAME_IS_SKELETON_MECHANICAL)
-GAME(1991, hd_l3, 0, wpc_an, wpc_an, wpc_an_state, wpc_an, ROT0, "Bally", "Harley Davidson (L-3)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1991, hd_l1, hd_l3, wpc_an, wpc_an, wpc_an_state, wpc_an, ROT0, "Bally", "Harley Davidson (L-1)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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_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.c b/src/mame/drivers/wpc_dcs.c
index 66ecd1bbe1d..e6c2cefe1ef 100644
--- a/src/mame/drivers/wpc_dcs.c
+++ b/src/mame/drivers/wpc_dcs.c
@@ -866,35 +866,35 @@ ROM_START(afv_l4)
ROM_LOAD16_BYTE("afv_su2.l1", 0x000000, 0x080000, CRC(1aa878fc) SHA1(59a89071001b5da6ab56d691721a015773f5f0b5))
ROM_END
-GAME(1994, dm_lx4, 0, wpc_dcs, wpc_dcs, wpc_dcs_state, dm, ROT0, "Williams", "Demolition Man (LX-4)", GAME_MECHANICAL)
-GAME(1994, dm_pa2, dm_lx4, wpc_dcs, wpc_dcs, wpc_dcs_state, dm, ROT0, "Williams", "Demolition Man (PA-2)", GAME_MECHANICAL)
-GAME(1994, dm_px5, dm_lx4, wpc_dcs, wpc_dcs, wpc_dcs_state, dm, ROT0, "Williams", "Demolition Man (PX-5)", GAME_MECHANICAL)
-GAME(1994, dm_la1, dm_lx4, wpc_dcs, wpc_dcs, wpc_dcs_state, dm, ROT0, "Williams", "Demolition Man (LA-1)", GAME_MECHANICAL)
-GAME(1994, dm_lx3, dm_lx4, wpc_dcs, wpc_dcs, wpc_dcs_state, dm, ROT0, "Williams", "Demolition Man (LX-3)", GAME_MECHANICAL)
-GAME(1995, dm_h5, dm_lx4, wpc_dcs, wpc_dcs, wpc_dcs_state, dm, ROT0, "Williams", "Demolition Man (H-5)", GAME_MECHANICAL)
-GAME(1995, dm_h6, dm_lx4, wpc_dcs, wpc_dcs, wpc_dcs_state, dm, ROT0, "Williams", "Demolition Man (H-6)", GAME_MECHANICAL)
-GAME(1993, ij_l7, 0, wpc_dcs, wpc_dcs, wpc_dcs_state, ij, ROT0, "Williams", "Indiana Jones (L-7)", GAME_MECHANICAL)
-GAME(1993, ij_lg7, ij_l7, wpc_dcs, wpc_dcs, wpc_dcs_state, ij, ROT0, "Williams", "Indiana Jones (LG-7)", GAME_MECHANICAL)
-GAME(1993, ij_l6, ij_l7, wpc_dcs, wpc_dcs, wpc_dcs_state, ij, ROT0, "Williams", "Indiana Jones (L-6)", GAME_MECHANICAL)
-GAME(1993, ij_l5, ij_l7, wpc_dcs, wpc_dcs, wpc_dcs_state, ij, ROT0, "Williams", "Indiana Jones (L-5)", GAME_MECHANICAL)
-GAME(1993, ij_l4, ij_l7, wpc_dcs, wpc_dcs, wpc_dcs_state, ij, ROT0, "Williams", "Indiana Jones (L-4)", GAME_MECHANICAL)
-GAME(1993, ij_l3, ij_l7, wpc_dcs, wpc_dcs, wpc_dcs_state, ij, ROT0, "Williams", "Indiana Jones (L-3)", GAME_MECHANICAL)
-GAME(1993, jd_l7, 0, wpc_dcs, wpc_dcs, wpc_dcs_state, jd, ROT0, "Bally", "Judge Dredd (L-7)", GAME_MECHANICAL)
-GAME(1993, jd_l1, jd_l7, wpc_dcs, wpc_dcs, wpc_dcs_state, jd, ROT0, "Bally", "Judge Dredd (L-1)", GAME_MECHANICAL)
-GAME(1993, jd_l6, jd_l7, wpc_dcs, wpc_dcs, wpc_dcs_state, jd, ROT0, "Bally", "Judge Dredd (L-6)", GAME_MECHANICAL)
-GAME(1993, jd_l5, jd_l7, wpc_dcs, wpc_dcs, wpc_dcs_state, jd, ROT0, "Bally", "Judge Dredd (L-5)", GAME_MECHANICAL)
-GAME(1993, jd_l4, jd_l7, wpc_dcs, wpc_dcs, wpc_dcs_state, jd, ROT0, "Bally", "Judge Dredd (L-4)", GAME_MECHANICAL)
-GAME(1994, pop_lx5, 0, wpc_dcs, wpc_dcs, wpc_dcs_state, pop, ROT0, "Bally", "Popeye Saves The Earth (LX-5)", GAME_MECHANICAL)
-GAME(1994, pop_la4, pop_lx5, wpc_dcs, wpc_dcs, wpc_dcs_state, pop, ROT0, "Bally", "Popeye Saves The Earth (LA-4)", GAME_MECHANICAL)
-GAME(1994, pop_pa3, pop_lx5, wpc_dcs, wpc_dcs, wpc_dcs_state, pop, ROT0, "Bally", "Popeye Saves The Earth (PA-3)", GAME_MECHANICAL)
-GAME(1994, sttng_l7, 0, wpc_dcs, wpc_dcs, wpc_dcs_state, sttng, ROT0, "Williams", "Star Trek: The Next Generation (LX-7)", GAME_MECHANICAL)
-GAME(1994, sttng_x7, sttng_l7, wpc_dcs, wpc_dcs, wpc_dcs_state, sttng, ROT0, "Williams", "Star Trek: The Next Generation (LX-7 Special)", GAME_MECHANICAL)
-GAME(1993, sttng_p8, sttng_l7, wpc_dcs, wpc_dcs, wpc_dcs_state, sttng, ROT0, "Williams", "Star Trek: The Next Generation (P-8)", GAME_MECHANICAL)
-GAME(1993, sttng_p5, sttng_l7, wpc_dcs, wpc_dcs, wpc_dcs_state, sttng, ROT0, "Williams", "Star Trek: The Next Generation (P-5)", GAME_MECHANICAL)
-GAME(1993, sttng_p4, sttng_l7, wpc_dcs, wpc_dcs, wpc_dcs_state, sttng, ROT0, "Williams", "Star Trek: The Next Generation (P-4)", GAME_MECHANICAL)
-GAME(1994, sttng_s7, sttng_l7, wpc_dcs, wpc_dcs, wpc_dcs_state, sttng, ROT0, "Williams", "Star Trek: The Next Generation (LX-7) SP1", GAME_MECHANICAL)
-GAME(1994, sttng_g7, sttng_l7, wpc_dcs, wpc_dcs, wpc_dcs_state, sttng, ROT0, "Williams", "Star Trek: The Next Generation (LG-7)", GAME_MECHANICAL)
-GAME(1993, sttng_l1, sttng_l7, wpc_dcs, wpc_dcs, wpc_dcs_state, sttng, ROT0, "Williams", "Star Trek: The Next Generation (LX-1)", GAME_MECHANICAL)
-GAME(1993, sttng_l2, sttng_l7, wpc_dcs, wpc_dcs, wpc_dcs_state, sttng, ROT0, "Williams", "Star Trek: The Next Generation (LX-2)", GAME_MECHANICAL)
-GAME(1994, sttng_l3, sttng_l7, wpc_dcs, wpc_dcs, wpc_dcs_state, sttng, ROT0, "Williams", "Star Trek: The Next Generation (LX-3)", GAME_MECHANICAL)
-GAME(1993, afv_l4, 0, wpc_dcs, wpc_dcs, wpc_dcs_state, afv, ROT0, "Williams", "Addams Family Values (Coin Dropper L-4)", GAME_MECHANICAL)
+GAME(1994, dm_lx4, 0, wpc_dcs, wpc_dcs, wpc_dcs_state, dm, ROT0, "Williams", "Demolition Man (LX-4)", MACHINE_MECHANICAL)
+GAME(1994, dm_pa2, dm_lx4, wpc_dcs, wpc_dcs, wpc_dcs_state, dm, ROT0, "Williams", "Demolition Man (PA-2)", MACHINE_MECHANICAL)
+GAME(1994, dm_px5, dm_lx4, wpc_dcs, wpc_dcs, wpc_dcs_state, dm, ROT0, "Williams", "Demolition Man (PX-5)", MACHINE_MECHANICAL)
+GAME(1994, dm_la1, dm_lx4, wpc_dcs, wpc_dcs, wpc_dcs_state, dm, ROT0, "Williams", "Demolition Man (LA-1)", MACHINE_MECHANICAL)
+GAME(1994, dm_lx3, dm_lx4, wpc_dcs, wpc_dcs, wpc_dcs_state, dm, ROT0, "Williams", "Demolition Man (LX-3)", MACHINE_MECHANICAL)
+GAME(1995, dm_h5, dm_lx4, wpc_dcs, wpc_dcs, wpc_dcs_state, dm, ROT0, "Williams", "Demolition Man (H-5)", MACHINE_MECHANICAL)
+GAME(1995, dm_h6, dm_lx4, wpc_dcs, wpc_dcs, wpc_dcs_state, dm, ROT0, "Williams", "Demolition Man (H-6)", MACHINE_MECHANICAL)
+GAME(1993, ij_l7, 0, wpc_dcs, wpc_dcs, wpc_dcs_state, ij, ROT0, "Williams", "Indiana Jones (L-7)", MACHINE_MECHANICAL)
+GAME(1993, ij_lg7, ij_l7, wpc_dcs, wpc_dcs, wpc_dcs_state, ij, ROT0, "Williams", "Indiana Jones (LG-7)", MACHINE_MECHANICAL)
+GAME(1993, ij_l6, ij_l7, wpc_dcs, wpc_dcs, wpc_dcs_state, ij, ROT0, "Williams", "Indiana Jones (L-6)", MACHINE_MECHANICAL)
+GAME(1993, ij_l5, ij_l7, wpc_dcs, wpc_dcs, wpc_dcs_state, ij, ROT0, "Williams", "Indiana Jones (L-5)", MACHINE_MECHANICAL)
+GAME(1993, ij_l4, ij_l7, wpc_dcs, wpc_dcs, wpc_dcs_state, ij, ROT0, "Williams", "Indiana Jones (L-4)", MACHINE_MECHANICAL)
+GAME(1993, ij_l3, ij_l7, wpc_dcs, wpc_dcs, wpc_dcs_state, ij, ROT0, "Williams", "Indiana Jones (L-3)", MACHINE_MECHANICAL)
+GAME(1993, jd_l7, 0, wpc_dcs, wpc_dcs, wpc_dcs_state, jd, ROT0, "Bally", "Judge Dredd (L-7)", MACHINE_MECHANICAL)
+GAME(1993, jd_l1, jd_l7, wpc_dcs, wpc_dcs, wpc_dcs_state, jd, ROT0, "Bally", "Judge Dredd (L-1)", MACHINE_MECHANICAL)
+GAME(1993, jd_l6, jd_l7, wpc_dcs, wpc_dcs, wpc_dcs_state, jd, ROT0, "Bally", "Judge Dredd (L-6)", MACHINE_MECHANICAL)
+GAME(1993, jd_l5, jd_l7, wpc_dcs, wpc_dcs, wpc_dcs_state, jd, ROT0, "Bally", "Judge Dredd (L-5)", MACHINE_MECHANICAL)
+GAME(1993, jd_l4, jd_l7, wpc_dcs, wpc_dcs, wpc_dcs_state, jd, ROT0, "Bally", "Judge Dredd (L-4)", MACHINE_MECHANICAL)
+GAME(1994, pop_lx5, 0, wpc_dcs, wpc_dcs, wpc_dcs_state, pop, ROT0, "Bally", "Popeye Saves The Earth (LX-5)", MACHINE_MECHANICAL)
+GAME(1994, pop_la4, pop_lx5, wpc_dcs, wpc_dcs, wpc_dcs_state, pop, ROT0, "Bally", "Popeye Saves The Earth (LA-4)", MACHINE_MECHANICAL)
+GAME(1994, pop_pa3, pop_lx5, wpc_dcs, wpc_dcs, wpc_dcs_state, pop, ROT0, "Bally", "Popeye Saves The Earth (PA-3)", MACHINE_MECHANICAL)
+GAME(1994, sttng_l7, 0, wpc_dcs, wpc_dcs, wpc_dcs_state, sttng, ROT0, "Williams", "Star Trek: The Next Generation (LX-7)", MACHINE_MECHANICAL)
+GAME(1994, sttng_x7, sttng_l7, wpc_dcs, wpc_dcs, wpc_dcs_state, sttng, ROT0, "Williams", "Star Trek: The Next Generation (LX-7 Special)", MACHINE_MECHANICAL)
+GAME(1993, sttng_p8, sttng_l7, wpc_dcs, wpc_dcs, wpc_dcs_state, sttng, ROT0, "Williams", "Star Trek: The Next Generation (P-8)", MACHINE_MECHANICAL)
+GAME(1993, sttng_p5, sttng_l7, wpc_dcs, wpc_dcs, wpc_dcs_state, sttng, ROT0, "Williams", "Star Trek: The Next Generation (P-5)", MACHINE_MECHANICAL)
+GAME(1993, sttng_p4, sttng_l7, wpc_dcs, wpc_dcs, wpc_dcs_state, sttng, ROT0, "Williams", "Star Trek: The Next Generation (P-4)", MACHINE_MECHANICAL)
+GAME(1994, sttng_s7, sttng_l7, wpc_dcs, wpc_dcs, wpc_dcs_state, sttng, ROT0, "Williams", "Star Trek: The Next Generation (LX-7) SP1", MACHINE_MECHANICAL)
+GAME(1994, sttng_g7, sttng_l7, wpc_dcs, wpc_dcs, wpc_dcs_state, sttng, ROT0, "Williams", "Star Trek: The Next Generation (LG-7)", MACHINE_MECHANICAL)
+GAME(1993, sttng_l1, sttng_l7, wpc_dcs, wpc_dcs, wpc_dcs_state, sttng, ROT0, "Williams", "Star Trek: The Next Generation (LX-1)", MACHINE_MECHANICAL)
+GAME(1993, sttng_l2, sttng_l7, wpc_dcs, wpc_dcs, wpc_dcs_state, sttng, ROT0, "Williams", "Star Trek: The Next Generation (LX-2)", MACHINE_MECHANICAL)
+GAME(1994, sttng_l3, sttng_l7, wpc_dcs, wpc_dcs, wpc_dcs_state, sttng, ROT0, "Williams", "Star Trek: The Next Generation (LX-3)", MACHINE_MECHANICAL)
+GAME(1993, afv_l4, 0, wpc_dcs, wpc_dcs, wpc_dcs_state, afv, ROT0, "Williams", "Addams Family Values (Coin Dropper L-4)", MACHINE_MECHANICAL)
diff --git a/src/mame/drivers/wpc_dot.c b/src/mame/drivers/wpc_dot.c
index 41ae6498fbc..959b7a1daff 100644
--- a/src/mame/drivers/wpc_dot.c
+++ b/src/mame/drivers/wpc_dot.c
@@ -661,21 +661,21 @@ ROM_START(tfdmd_l3)
ROM_END
-GAME(1991, tfdmd_l3, 0, wpc_dot, wpc_dot, wpc_dot_state, wpc_dot, ROT0, "Bally", "WPC Test Fixture: DMD (L-3)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1991, gi_l9, 0, wpc_dot, wpc_dot, wpc_dot_state, wpc_dot, ROT0, "Bally", "Gilligan's Island (L-9)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1991, gi_l3, gi_l9, wpc_dot, wpc_dot, wpc_dot_state, wpc_dot, ROT0, "Bally", "Gilligan's Island (L-3)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1991, gi_l4, gi_l9, wpc_dot, wpc_dot, wpc_dot_state, wpc_dot, ROT0, "Bally", "Gilligan's Island (L-4)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1991, gi_l6, gi_l9, wpc_dot, wpc_dot, wpc_dot_state, wpc_dot, ROT0, "Bally", "Gilligan's Island (L-6)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, hshot_p8, 0, wpc_dot, wpc_dot, wpc_dot_state, wpc_dot, ROT0, "Midway", "Hot Shot Basketball (P-8)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1991, hurr_l2, 0, wpc_dot, wpc_dot, wpc_dot_state, wpc_dot, ROT0, "Williams", "Hurricane (L-2)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1991, pz_f4, 0, wpc_dot, wpc_dot, wpc_dot_state, wpc_dot, ROT0, "Bally", "The Party Zone (F-4)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1991, pz_l1, pz_f4, wpc_dot, wpc_dot, wpc_dot_state, wpc_dot, ROT0, "Bally", "The Party Zone (L-1)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1991, pz_l2, pz_f4, wpc_dot, wpc_dot, wpc_dot_state, wpc_dot, ROT0, "Bally", "The Party Zone (L-2)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1991, pz_l3, pz_f4, wpc_dot, wpc_dot, wpc_dot_state, wpc_dot, ROT0, "Bally", "The Party Zone (L-3)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1991, sf_l1, 0, wpc_dot, wpc_dot, wpc_dot_state, wpc_dot, ROT0, "Williams", "Slugfest (L-1)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1991, t2_l8, 0, wpc_dot, wpc_dot, wpc_dot_state, wpc_dot, ROT0, "Williams", "Terminator 2: Judgment Day (L-8)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1991, t2_l6, t2_l8, wpc_dot, wpc_dot, wpc_dot_state, wpc_dot, ROT0, "Williams", "Terminator 2: Judgment Day (L-6)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1991, t2_p2f, t2_l8, wpc_dot, wpc_dot, wpc_dot_state, wpc_dot, ROT0, "Williams", "Terminator 2: Judgment Day (P-2F) Profanity", GAME_IS_SKELETON_MECHANICAL)
-GAME(1991, t2_l4, t2_l8, wpc_dot, wpc_dot, wpc_dot_state, wpc_dot, ROT0, "Williams", "Terminator 2: Judgment Day (L-4)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1991, t2_l3, t2_l8, wpc_dot, wpc_dot, wpc_dot_state, wpc_dot, ROT0, "Williams", "Terminator 2: Judgment Day (L-3)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1991, t2_l2, t2_l8, wpc_dot, wpc_dot, wpc_dot_state, wpc_dot, ROT0, "Williams", "Terminator 2: Judgment Day (L-2)", GAME_IS_SKELETON_MECHANICAL)
+GAME(1991, tfdmd_l3, 0, wpc_dot, wpc_dot, wpc_dot_state, wpc_dot, ROT0, "Bally", "WPC Test Fixture: DMD (L-3)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1991, gi_l9, 0, wpc_dot, wpc_dot, wpc_dot_state, wpc_dot, ROT0, "Bally", "Gilligan's Island (L-9)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1991, gi_l3, gi_l9, wpc_dot, wpc_dot, wpc_dot_state, wpc_dot, ROT0, "Bally", "Gilligan's Island (L-3)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1991, gi_l4, gi_l9, wpc_dot, wpc_dot, wpc_dot_state, wpc_dot, ROT0, "Bally", "Gilligan's Island (L-4)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1991, gi_l6, gi_l9, wpc_dot, wpc_dot, wpc_dot_state, wpc_dot, ROT0, "Bally", "Gilligan's Island (L-6)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1992, hshot_p8, 0, wpc_dot, wpc_dot, wpc_dot_state, wpc_dot, ROT0, "Midway", "Hot Shot Basketball (P-8)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1991, hurr_l2, 0, wpc_dot, wpc_dot, wpc_dot_state, wpc_dot, ROT0, "Williams", "Hurricane (L-2)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1991, pz_f4, 0, wpc_dot, wpc_dot, wpc_dot_state, wpc_dot, ROT0, "Bally", "The Party Zone (F-4)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1991, pz_l1, pz_f4, wpc_dot, wpc_dot, wpc_dot_state, wpc_dot, ROT0, "Bally", "The Party Zone (L-1)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1991, pz_l2, pz_f4, wpc_dot, wpc_dot, wpc_dot_state, wpc_dot, ROT0, "Bally", "The Party Zone (L-2)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1991, pz_l3, pz_f4, wpc_dot, wpc_dot, wpc_dot_state, wpc_dot, ROT0, "Bally", "The Party Zone (L-3)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1991, sf_l1, 0, wpc_dot, wpc_dot, wpc_dot_state, wpc_dot, ROT0, "Williams", "Slugfest (L-1)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1991, t2_l8, 0, wpc_dot, wpc_dot, wpc_dot_state, wpc_dot, ROT0, "Williams", "Terminator 2: Judgment Day (L-8)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1991, t2_l6, t2_l8, wpc_dot, wpc_dot, wpc_dot_state, wpc_dot, ROT0, "Williams", "Terminator 2: Judgment Day (L-6)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1991, t2_p2f, t2_l8, wpc_dot, wpc_dot, wpc_dot_state, wpc_dot, ROT0, "Williams", "Terminator 2: Judgment Day (P-2F) Profanity", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1991, t2_l4, t2_l8, wpc_dot, wpc_dot, wpc_dot_state, wpc_dot, ROT0, "Williams", "Terminator 2: Judgment Day (L-4)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1991, t2_l3, t2_l8, wpc_dot, wpc_dot, wpc_dot_state, wpc_dot, ROT0, "Williams", "Terminator 2: Judgment Day (L-3)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1991, t2_l2, t2_l8, wpc_dot, wpc_dot, wpc_dot_state, wpc_dot, ROT0, "Williams", "Terminator 2: Judgment Day (L-2)", MACHINE_IS_SKELETON_MECHANICAL)
diff --git a/src/mame/drivers/wpc_flip1.c b/src/mame/drivers/wpc_flip1.c
index 96294da4605..22f9950745b 100644
--- a/src/mame/drivers/wpc_flip1.c
+++ b/src/mame/drivers/wpc_flip1.c
@@ -257,12 +257,12 @@ ROM_END
/*--------------
/ Game drivers
/---------------*/
-GAME(1992, taf_l5, 0, wpc_flip1, wpc_flip1, wpc_flip1_state, wpc_flip1, ROT0, "Bally", "The Addams Family (L-5)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, taf_p2, taf_l5, wpc_flip1, wpc_flip1, wpc_flip1_state, wpc_flip1, ROT0, "Bally", "The Addams Family (Prototype) (P-2)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, taf_l1, taf_l5, wpc_flip1, wpc_flip1, wpc_flip1_state, wpc_flip1, ROT0, "Bally", "The Addams Family (L-1)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, taf_l2, taf_l5, wpc_flip1, wpc_flip1, wpc_flip1_state, wpc_flip1, ROT0, "Bally", "The Addams Family (L-2)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, taf_l3, taf_l5, wpc_flip1, wpc_flip1, wpc_flip1_state, wpc_flip1, ROT0, "Bally", "The Addams Family (L-3)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, taf_l4, taf_l5, wpc_flip1, wpc_flip1, wpc_flip1_state, wpc_flip1, ROT0, "Bally", "The Addams Family (L-4)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, taf_l7, taf_l5, wpc_flip1, wpc_flip1, wpc_flip1_state, wpc_flip1, ROT0, "Bally", "The Addams Family (Prototype L-5) (L-7)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, taf_l6, taf_l5, wpc_flip1, wpc_flip1, wpc_flip1_state, wpc_flip1, ROT0, "Bally", "The Addams Family (L-6)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, taf_h4, taf_l5, wpc_flip1, wpc_flip1, wpc_flip1_state, wpc_flip1, ROT0, "Bally", "The Addams Family (H-4)", GAME_IS_SKELETON_MECHANICAL)
+GAME(1992, taf_l5, 0, wpc_flip1, wpc_flip1, wpc_flip1_state, wpc_flip1, ROT0, "Bally", "The Addams Family (L-5)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1992, taf_p2, taf_l5, wpc_flip1, wpc_flip1, wpc_flip1_state, wpc_flip1, ROT0, "Bally", "The Addams Family (Prototype) (P-2)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1992, taf_l1, taf_l5, wpc_flip1, wpc_flip1, wpc_flip1_state, wpc_flip1, ROT0, "Bally", "The Addams Family (L-1)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1992, taf_l2, taf_l5, wpc_flip1, wpc_flip1, wpc_flip1_state, wpc_flip1, ROT0, "Bally", "The Addams Family (L-2)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1992, taf_l3, taf_l5, wpc_flip1, wpc_flip1, wpc_flip1_state, wpc_flip1, ROT0, "Bally", "The Addams Family (L-3)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1992, taf_l4, taf_l5, wpc_flip1, wpc_flip1, wpc_flip1_state, wpc_flip1, ROT0, "Bally", "The Addams Family (L-4)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1992, taf_l7, taf_l5, wpc_flip1, wpc_flip1, wpc_flip1_state, wpc_flip1, ROT0, "Bally", "The Addams Family (Prototype L-5) (L-7)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1992, taf_l6, taf_l5, wpc_flip1, wpc_flip1, wpc_flip1_state, wpc_flip1, ROT0, "Bally", "The Addams Family (L-6)", MACHINE_IS_SKELETON_MECHANICAL)
+GAME(1992, taf_h4, taf_l5, wpc_flip1, wpc_flip1, wpc_flip1_state, wpc_flip1, ROT0, "Bally", "The Addams Family (H-4)", MACHINE_IS_SKELETON_MECHANICAL)
diff --git a/src/mame/drivers/wpc_flip2.c b/src/mame/drivers/wpc_flip2.c
index 2de55ca4341..23249bc7e36 100644
--- a/src/mame/drivers/wpc_flip2.c
+++ b/src/mame/drivers/wpc_flip2.c
@@ -831,52 +831,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)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, br_p17, br_l4, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Black Rose (SP-1)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, br_l1, br_l4, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Black Rose (L-1)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1993, br_l3, br_l4, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Black Rose (L-3)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, dw_l2, 0, wpc_flip2, wpc_dw, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Doctor Who (L-2)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, dw_l1, dw_l2, wpc_flip2, wpc_dw, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Doctor Who (L-1)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, dw_p5, dw_l2, wpc_flip2, wpc_dw, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Doctor Who (P-5)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, ft_l5, 0, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "Fish Tales (L-5)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, ft_l3, ft_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "Fish Tales (L-3)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, ft_l4, ft_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "Fish Tales (L-4)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, ft_p4, ft_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "Fish Tales (P-4)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_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)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1998, tz_92, 0, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Twilight Zone (9.2)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1998, tz_94h, tz_92, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Twilight Zone (9.4H)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1998, tz_94ch, tz_92, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Twilight Zone (9.4CH)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1993, tz_pa1, tz_92, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Twilight Zone (PA-1)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1993, tz_p3, tz_92, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Twilight Zone (P-3)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1993, tz_p4, tz_92, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Twilight Zone (P-4)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1993, tz_l1, tz_92, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Twilight Zone (L-1)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1993, tz_l2, tz_92, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Twilight Zone (L-2)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1993, tz_ifpa, tz_92, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Twilight Zone (IFPA rules)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1993, tz_l3, tz_92, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Twilight Zone (L-3)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1993, tz_l4, tz_92, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Twilight Zone (L-4)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1994, tz_h7, tz_92, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Twilight Zone (H-7)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1994, tz_h8, tz_92, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "Twilight Zone (H-8)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2000, ww_l5, 0, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "White Water (L-5)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2000, ww_lh6, ww_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "White Water (LH-6)", GAME_IS_SKELETON_MECHANICAL)
-GAME(2000, ww_lh5, ww_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "White Water (LH-5)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1993, ww_l4, ww_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "White Water (L-4)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1993, ww_l3, ww_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "White Water (L-3)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, ww_l2, ww_l5, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "White Water (L-2)", GAME_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)", GAME_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)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1992, strik_l4, 0, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Williams", "Strike Master (L-4)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1996, lc_11, 0, wpc_flip2, wpc_flip2, wpc_flip2_state, wpc_flip2, ROT0, "Bally", "League Champ (1.1)", GAME_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.c b/src/mame/drivers/wpc_s.c
index 54794fefc9a..2e197dd7121 100644
--- a/src/mame/drivers/wpc_s.c
+++ b/src/mame/drivers/wpc_s.c
@@ -2725,60 +2725,60 @@ ROM_START(tfs_12)
ROM_LOAD16_BYTE("u2_10.rom", 0x000000, 0x080000, CRC(d705b41e) SHA1(a7811b4bb1b2b5f7e3d1a809da3363b97dfca680))
ROM_END
-GAME(1994, corv_21, 0, wpc_s, corv, wpc_s_state, corv, ROT0, "Bally", "Corvette (2.1)", GAME_MECHANICAL)
-GAME(1994, corv_px4, corv_21, wpc_s, corv, wpc_s_state, corv, ROT0, "Bally", "Corvette (PX4)", GAME_MECHANICAL)
-GAME(1994, corv_lx1, corv_21, wpc_s, corv, wpc_s_state, corv, ROT0, "Bally", "Corvette (LX1)", GAME_MECHANICAL)
-GAME(1994, corv_lx2, corv_21, wpc_s, corv, wpc_s_state, corv, ROT0, "Bally", "Corvette (LX2)", GAME_MECHANICAL)
-GAME(1994, corv_la1, corv_21, wpc_s, corv, wpc_s_state, corv, ROT0, "Bally", "Corvette (LA1)", GAME_MECHANICAL)
-GAME(1995, dh_lx2, 0, wpc_s, dh, wpc_s_state, dh, ROT0, "Williams", "Dirty Harry (LX-2)", GAME_MECHANICAL)
-GAME(1995, i500_11r, 0, wpc_s, i500, wpc_s_state, i500, ROT0, "Bally", "Indianapolis 500 (1.1R)", GAME_MECHANICAL)
-GAME(1995, i500_10r, i500_11r, wpc_s, i500, wpc_s_state, i500, ROT0, "Bally", "Indianapolis 500 (1.0R)", GAME_MECHANICAL)
-GAME(1995, i500_11b, i500_11r, wpc_s, i500, wpc_s_state, i500, ROT0, "Bally", "Indianapolis 500 (1.1 Belgium)", GAME_MECHANICAL)
-GAME(1995, jb_10r, 0, wpc_s, jb, wpc_s_state, jb, ROT0, "Williams", "Jack*Bot (1.0R)", GAME_MECHANICAL)
-GAME(1995, jb_10b, jb_10r, wpc_s, jb, wpc_s_state, jb, ROT0, "Williams", "Jack*Bot (1.0B) (Belgium/Canada)", GAME_MECHANICAL)
-GAME(1995, jm_12r, 0, wpc_s, jm, wpc_s_state, jm, ROT0, "Williams", "Johnny Mnemonic (1.2R)", GAME_MECHANICAL)
-GAME(1995, jm_12b, jm_12r, wpc_s, jm, wpc_s_state, jm, ROT0, "Williams", "Johnny Mnemonic (1.2B) Belgium", GAME_MECHANICAL)
-GAME(1995, jm_05r, jm_12r, wpc_s, jm, wpc_s_state, jm, ROT0, "Williams", "Johnny Mnemonic (0.5R)", GAME_MECHANICAL)
-GAME(1995, nf_23x, 0, wpc_s, nf, wpc_s_state, nf, ROT0, "Williams", "No Fear: Dangerous Sports (2.3X)", GAME_MECHANICAL)
-GAME(1995, nf_23, nf_23x, wpc_s, nf, wpc_s_state, nf, ROT0, "Williams", "No Fear: Dangerous Sports (2.3)", GAME_MECHANICAL)
-GAME(1995, nf_23f, nf_23x, wpc_s, nf, wpc_s_state, nf, ROT0, "Williams", "No Fear: Dangerous Sports (2.3F)", GAME_MECHANICAL)
-GAME(1995, nf_22, nf_23x, wpc_s, nf, wpc_s_state, nf, ROT0, "Williams", "No Fear: Dangerous Sports (2.2)", GAME_MECHANICAL)
-GAME(1995, nf_20, nf_23x, wpc_s, nf, wpc_s_state, nf, ROT0, "Williams", "No Fear: Dangerous Sports (2.0)", GAME_MECHANICAL)
-GAME(1995, nf_10, nf_23x, wpc_s, nf, wpc_s_state, nf, ROT0, "Williams", "No Fear: Dangerous Sports (1.0)", GAME_MECHANICAL)
-GAME(1994, rs_l6, 0, wpc_s, rs, wpc_s_state, rs, ROT0, "Williams", "Red and Ted's Road Show (L-6)", GAME_MECHANICAL)
-GAME(1994, rs_la5, rs_l6, wpc_s, rs, wpc_s_state, rs, ROT0, "Williams", "Red and Ted's Road Show (La-5)", GAME_MECHANICAL)
-GAME(1994, rs_lx5, rs_l6, wpc_s, rs, wpc_s_state, rs, ROT0, "Williams", "Red and Ted's Road Show (Lx-5)", GAME_MECHANICAL)
-GAME(1994, rs_la4, rs_l6, wpc_s, rs, wpc_s_state, rs, ROT0, "Williams", "Red and Ted's Road Show (La-4)", GAME_MECHANICAL)
-GAME(1994, rs_lx4, rs_l6, wpc_s, rs, wpc_s_state, rs, ROT0, "Williams", "Red and Ted's Road Show (Lx-4)", GAME_MECHANICAL)
-GAME(1994, rs_lx3, rs_l6, wpc_s, rs, wpc_s_state, rs, ROT0, "Williams", "Red and Ted's Road Show (Lx-3)", GAME_MECHANICAL)
-GAME(1994, rs_lx2, rs_l6, wpc_s, rs, wpc_s_state, rs, ROT0, "Williams", "Red and Ted's Road Show (Lx-2)", GAME_MECHANICAL)
-GAME(1994, fs_lx5, 0, wpc_s, fs, wpc_s_state, fs, ROT0, "Williams", "The Flintstones (LX-5)", GAME_MECHANICAL)
-GAME(1994, fs_lx2, fs_lx5, wpc_s, fs, wpc_s_state, fs, ROT0, "Williams", "The Flintstones (LX-2)", GAME_MECHANICAL)
-GAME(1994, fs_sp2, fs_lx5, wpc_s, fs, wpc_s_state, fs, ROT0, "Williams", "The Flintstones (SP-2)", GAME_MECHANICAL)
-GAME(1994, fs_lx4, fs_lx5, wpc_s, fs, wpc_s_state, fs, ROT0, "Williams", "The Flintstones (LX-4)", GAME_MECHANICAL)
-GAME(1995, ts_lx5, 0, wpc_s, ts, wpc_s_state, ts, ROT0, "Bally", "The Shadow (LX-5)", GAME_MECHANICAL)
-GAME(1995, ts_lh6, ts_lx5, wpc_s, ts, wpc_s_state, ts, ROT0, "Bally", "The Shadow (LH-6)", GAME_MECHANICAL)
-GAME(1995, ts_lx4, ts_lx5, wpc_s, ts, wpc_s_state, ts, ROT0, "Bally", "The Shadow (LX-4)", GAME_MECHANICAL)
-GAME(1995, ts_la4, ts_lx5, wpc_s, ts, wpc_s_state, ts, ROT0, "Bally", "The Shadow (LA-4)", GAME_MECHANICAL)
-GAME(1994, ts_la2, ts_lx5, wpc_s, ts, wpc_s_state, ts, ROT0, "Bally", "The Shadow (LA-2)", GAME_MECHANICAL)
-GAME(1994, ts_pa1, ts_lx5, wpc_s, ts, wpc_s_state, ts, ROT0, "Bally", "The Shadow (PA-1)", GAME_MECHANICAL)
-GAME(1994, ts_lf6, ts_lx5, wpc_s, ts, wpc_s_state, ts, ROT0, "Bally", "The Shadow (LF-6) French", GAME_MECHANICAL)
-GAME(1994, ts_lm6, ts_lx5, wpc_s, ts, wpc_s_state, ts, ROT0, "Bally", "The Shadow (LM-6) Mild", GAME_MECHANICAL)
-GAME(1995, tom_13, 0, wpc_s, tom, wpc_s_state, tom, ROT0, "Bally", "Theatre Of Magic (1.3X)", GAME_MECHANICAL)
-GAME(2005, tom_14h, tom_13, wpc_s, tom, wpc_s_state, tom, ROT0, "Bally", "Theatre Of Magic (1.4H)", GAME_MECHANICAL)
-GAME(1995, tom_12, tom_13, wpc_s, tom, wpc_s_state, tom, ROT0, "Bally", "Theatre Of Magic (1.2X)", GAME_MECHANICAL)
-GAME(1995, tom_10f, tom_13, wpc_s, tom, wpc_s_state, tom, ROT0, "Bally", "Theatre Of Magic (1.0 French)", GAME_MECHANICAL)
-GAME(1995, tom_06, tom_13, wpc_s, tom, wpc_s_state, tom, ROT0, "Bally", "Theatre Of Magic (0.6a)", GAME_MECHANICAL)
-GAME(1995, wd_12, 0, wpc_s, wd, wpc_s_state, wd, ROT0, "Bally", "Who Dunnit (1.2)", GAME_MECHANICAL)
-GAME(1995, wd_12g, wd_12, wpc_s, wd, wpc_s_state, wd, ROT0, "Bally", "Who Dunnit (1.2 Germany)", GAME_MECHANICAL)
-GAME(1995, wd_11, wd_12, wpc_s, wd, wpc_s_state, wd, ROT0, "Bally", "Who Dunnit (1.1)", GAME_MECHANICAL)
-GAME(1995, wd_10r, wd_12, wpc_s, wd, wpc_s_state, wd, ROT0, "Bally", "Who Dunnit (1.0 R)", GAME_MECHANICAL)
-GAME(1995, wd_10g, wd_12, wpc_s, wd, wpc_s_state, wd, ROT0, "Bally", "Who Dunnit (1.0 Germany)", GAME_MECHANICAL)
-GAME(1995, wd_10f, wd_12, wpc_s, wd, wpc_s_state, wd, ROT0, "Bally", "Who Dunnit (1.0 French)", GAME_MECHANICAL)
-GAME(1995, wd_03r, wd_12, wpc_s, wd, wpc_s_state, wd, ROT0, "Bally", "Who Dunnit (0.3 R)", GAME_MECHANICAL)
-GAME(1995, wd_048r, wd_12, wpc_s, wd, wpc_s_state, wd, ROT0, "Bally", "Who Dunnit (0.48 R)", GAME_MECHANICAL)
-GAME(1994, wcs_l2, 0, wpc_s, wcs, wpc_s_state, wcs, ROT0, "Bally", "World Cup Soccer (Lx-2)", GAME_MECHANICAL)
-GAME(1994, wcs_la2, wcs_l2, wpc_s, wcs, wpc_s_state, wcs, ROT0, "Bally", "World Cup Soccer (La-2)", GAME_MECHANICAL)
-GAME(1994, wcs_p2, wcs_l2, wpc_s, wcs, wpc_s_state, wcs, ROT0, "Bally", "World Cup Soccer (Pa-2)", GAME_MECHANICAL)
-GAME(1994, wcs_p3, wcs_l2, wpc_s, wcs, wpc_s_state, wcs, ROT0, "Bally", "World Cup Soccer (Px-3)", GAME_MECHANICAL)
-GAME(1994, tfs_12, 0, wpc_s, tfs, wpc_s_state, tfs, ROT0, "Bally", "WPC Test Fixture: Security (1.2)", GAME_MECHANICAL)
+GAME(1994, corv_21, 0, wpc_s, corv, wpc_s_state, corv, ROT0, "Bally", "Corvette (2.1)", MACHINE_MECHANICAL)
+GAME(1994, corv_px4, corv_21, wpc_s, corv, wpc_s_state, corv, ROT0, "Bally", "Corvette (PX4)", MACHINE_MECHANICAL)
+GAME(1994, corv_lx1, corv_21, wpc_s, corv, wpc_s_state, corv, ROT0, "Bally", "Corvette (LX1)", MACHINE_MECHANICAL)
+GAME(1994, corv_lx2, corv_21, wpc_s, corv, wpc_s_state, corv, ROT0, "Bally", "Corvette (LX2)", MACHINE_MECHANICAL)
+GAME(1994, corv_la1, corv_21, wpc_s, corv, wpc_s_state, corv, ROT0, "Bally", "Corvette (LA1)", MACHINE_MECHANICAL)
+GAME(1995, dh_lx2, 0, wpc_s, dh, wpc_s_state, dh, ROT0, "Williams", "Dirty Harry (LX-2)", MACHINE_MECHANICAL)
+GAME(1995, i500_11r, 0, wpc_s, i500, wpc_s_state, i500, ROT0, "Bally", "Indianapolis 500 (1.1R)", MACHINE_MECHANICAL)
+GAME(1995, i500_10r, i500_11r, wpc_s, i500, wpc_s_state, i500, ROT0, "Bally", "Indianapolis 500 (1.0R)", MACHINE_MECHANICAL)
+GAME(1995, i500_11b, i500_11r, wpc_s, i500, wpc_s_state, i500, ROT0, "Bally", "Indianapolis 500 (1.1 Belgium)", MACHINE_MECHANICAL)
+GAME(1995, jb_10r, 0, wpc_s, jb, wpc_s_state, jb, ROT0, "Williams", "Jack*Bot (1.0R)", MACHINE_MECHANICAL)
+GAME(1995, jb_10b, jb_10r, wpc_s, jb, wpc_s_state, jb, ROT0, "Williams", "Jack*Bot (1.0B) (Belgium/Canada)", MACHINE_MECHANICAL)
+GAME(1995, jm_12r, 0, wpc_s, jm, wpc_s_state, jm, ROT0, "Williams", "Johnny Mnemonic (1.2R)", MACHINE_MECHANICAL)
+GAME(1995, jm_12b, jm_12r, wpc_s, jm, wpc_s_state, jm, ROT0, "Williams", "Johnny Mnemonic (1.2B) Belgium", MACHINE_MECHANICAL)
+GAME(1995, jm_05r, jm_12r, wpc_s, jm, wpc_s_state, jm, ROT0, "Williams", "Johnny Mnemonic (0.5R)", MACHINE_MECHANICAL)
+GAME(1995, nf_23x, 0, wpc_s, nf, wpc_s_state, nf, ROT0, "Williams", "No Fear: Dangerous Sports (2.3X)", MACHINE_MECHANICAL)
+GAME(1995, nf_23, nf_23x, wpc_s, nf, wpc_s_state, nf, ROT0, "Williams", "No Fear: Dangerous Sports (2.3)", MACHINE_MECHANICAL)
+GAME(1995, nf_23f, nf_23x, wpc_s, nf, wpc_s_state, nf, ROT0, "Williams", "No Fear: Dangerous Sports (2.3F)", MACHINE_MECHANICAL)
+GAME(1995, nf_22, nf_23x, wpc_s, nf, wpc_s_state, nf, ROT0, "Williams", "No Fear: Dangerous Sports (2.2)", MACHINE_MECHANICAL)
+GAME(1995, nf_20, nf_23x, wpc_s, nf, wpc_s_state, nf, ROT0, "Williams", "No Fear: Dangerous Sports (2.0)", MACHINE_MECHANICAL)
+GAME(1995, nf_10, nf_23x, wpc_s, nf, wpc_s_state, nf, ROT0, "Williams", "No Fear: Dangerous Sports (1.0)", MACHINE_MECHANICAL)
+GAME(1994, rs_l6, 0, wpc_s, rs, wpc_s_state, rs, ROT0, "Williams", "Red and Ted's Road Show (L-6)", MACHINE_MECHANICAL)
+GAME(1994, rs_la5, rs_l6, wpc_s, rs, wpc_s_state, rs, ROT0, "Williams", "Red and Ted's Road Show (La-5)", MACHINE_MECHANICAL)
+GAME(1994, rs_lx5, rs_l6, wpc_s, rs, wpc_s_state, rs, ROT0, "Williams", "Red and Ted's Road Show (Lx-5)", MACHINE_MECHANICAL)
+GAME(1994, rs_la4, rs_l6, wpc_s, rs, wpc_s_state, rs, ROT0, "Williams", "Red and Ted's Road Show (La-4)", MACHINE_MECHANICAL)
+GAME(1994, rs_lx4, rs_l6, wpc_s, rs, wpc_s_state, rs, ROT0, "Williams", "Red and Ted's Road Show (Lx-4)", MACHINE_MECHANICAL)
+GAME(1994, rs_lx3, rs_l6, wpc_s, rs, wpc_s_state, rs, ROT0, "Williams", "Red and Ted's Road Show (Lx-3)", MACHINE_MECHANICAL)
+GAME(1994, rs_lx2, rs_l6, wpc_s, rs, wpc_s_state, rs, ROT0, "Williams", "Red and Ted's Road Show (Lx-2)", MACHINE_MECHANICAL)
+GAME(1994, fs_lx5, 0, wpc_s, fs, wpc_s_state, fs, ROT0, "Williams", "The Flintstones (LX-5)", MACHINE_MECHANICAL)
+GAME(1994, fs_lx2, fs_lx5, wpc_s, fs, wpc_s_state, fs, ROT0, "Williams", "The Flintstones (LX-2)", MACHINE_MECHANICAL)
+GAME(1994, fs_sp2, fs_lx5, wpc_s, fs, wpc_s_state, fs, ROT0, "Williams", "The Flintstones (SP-2)", MACHINE_MECHANICAL)
+GAME(1994, fs_lx4, fs_lx5, wpc_s, fs, wpc_s_state, fs, ROT0, "Williams", "The Flintstones (LX-4)", MACHINE_MECHANICAL)
+GAME(1995, ts_lx5, 0, wpc_s, ts, wpc_s_state, ts, ROT0, "Bally", "The Shadow (LX-5)", MACHINE_MECHANICAL)
+GAME(1995, ts_lh6, ts_lx5, wpc_s, ts, wpc_s_state, ts, ROT0, "Bally", "The Shadow (LH-6)", MACHINE_MECHANICAL)
+GAME(1995, ts_lx4, ts_lx5, wpc_s, ts, wpc_s_state, ts, ROT0, "Bally", "The Shadow (LX-4)", MACHINE_MECHANICAL)
+GAME(1995, ts_la4, ts_lx5, wpc_s, ts, wpc_s_state, ts, ROT0, "Bally", "The Shadow (LA-4)", MACHINE_MECHANICAL)
+GAME(1994, ts_la2, ts_lx5, wpc_s, ts, wpc_s_state, ts, ROT0, "Bally", "The Shadow (LA-2)", MACHINE_MECHANICAL)
+GAME(1994, ts_pa1, ts_lx5, wpc_s, ts, wpc_s_state, ts, ROT0, "Bally", "The Shadow (PA-1)", MACHINE_MECHANICAL)
+GAME(1994, ts_lf6, ts_lx5, wpc_s, ts, wpc_s_state, ts, ROT0, "Bally", "The Shadow (LF-6) French", MACHINE_MECHANICAL)
+GAME(1994, ts_lm6, ts_lx5, wpc_s, ts, wpc_s_state, ts, ROT0, "Bally", "The Shadow (LM-6) Mild", MACHINE_MECHANICAL)
+GAME(1995, tom_13, 0, wpc_s, tom, wpc_s_state, tom, ROT0, "Bally", "Theatre Of Magic (1.3X)", MACHINE_MECHANICAL)
+GAME(2005, tom_14h, tom_13, wpc_s, tom, wpc_s_state, tom, ROT0, "Bally", "Theatre Of Magic (1.4H)", MACHINE_MECHANICAL)
+GAME(1995, tom_12, tom_13, wpc_s, tom, wpc_s_state, tom, ROT0, "Bally", "Theatre Of Magic (1.2X)", MACHINE_MECHANICAL)
+GAME(1995, tom_10f, tom_13, wpc_s, tom, wpc_s_state, tom, ROT0, "Bally", "Theatre Of Magic (1.0 French)", MACHINE_MECHANICAL)
+GAME(1995, tom_06, tom_13, wpc_s, tom, wpc_s_state, tom, ROT0, "Bally", "Theatre Of Magic (0.6a)", MACHINE_MECHANICAL)
+GAME(1995, wd_12, 0, wpc_s, wd, wpc_s_state, wd, ROT0, "Bally", "Who Dunnit (1.2)", MACHINE_MECHANICAL)
+GAME(1995, wd_12g, wd_12, wpc_s, wd, wpc_s_state, wd, ROT0, "Bally", "Who Dunnit (1.2 Germany)", MACHINE_MECHANICAL)
+GAME(1995, wd_11, wd_12, wpc_s, wd, wpc_s_state, wd, ROT0, "Bally", "Who Dunnit (1.1)", MACHINE_MECHANICAL)
+GAME(1995, wd_10r, wd_12, wpc_s, wd, wpc_s_state, wd, ROT0, "Bally", "Who Dunnit (1.0 R)", MACHINE_MECHANICAL)
+GAME(1995, wd_10g, wd_12, wpc_s, wd, wpc_s_state, wd, ROT0, "Bally", "Who Dunnit (1.0 Germany)", MACHINE_MECHANICAL)
+GAME(1995, wd_10f, wd_12, wpc_s, wd, wpc_s_state, wd, ROT0, "Bally", "Who Dunnit (1.0 French)", MACHINE_MECHANICAL)
+GAME(1995, wd_03r, wd_12, wpc_s, wd, wpc_s_state, wd, ROT0, "Bally", "Who Dunnit (0.3 R)", MACHINE_MECHANICAL)
+GAME(1995, wd_048r, wd_12, wpc_s, wd, wpc_s_state, wd, ROT0, "Bally", "Who Dunnit (0.48 R)", MACHINE_MECHANICAL)
+GAME(1994, wcs_l2, 0, wpc_s, wcs, wpc_s_state, wcs, ROT0, "Bally", "World Cup Soccer (Lx-2)", MACHINE_MECHANICAL)
+GAME(1994, wcs_la2, wcs_l2, wpc_s, wcs, wpc_s_state, wcs, ROT0, "Bally", "World Cup Soccer (La-2)", MACHINE_MECHANICAL)
+GAME(1994, wcs_p2, wcs_l2, wpc_s, wcs, wpc_s_state, wcs, ROT0, "Bally", "World Cup Soccer (Pa-2)", MACHINE_MECHANICAL)
+GAME(1994, wcs_p3, wcs_l2, wpc_s, wcs, wpc_s_state, wcs, ROT0, "Bally", "World Cup Soccer (Px-3)", MACHINE_MECHANICAL)
+GAME(1994, tfs_12, 0, wpc_s, tfs, wpc_s_state, tfs, ROT0, "Bally", "WPC Test Fixture: Security (1.2)", MACHINE_MECHANICAL)
diff --git a/src/mame/drivers/wrally.c b/src/mame/drivers/wrally.c
index 3e26db79715..db729a6b7ac 100644
--- a/src/mame/drivers/wrally.c
+++ b/src/mame/drivers/wrally.c
@@ -354,6 +354,6 @@ ROM_START( wrallyb ) /* Board Marked 930217, Atari License */
ROM_END
-GAME( 1993, wrally, 0, wrally, wrally, driver_device, 0, ROT0, "Gaelco", "World Rally (set 1)", GAME_SUPPORTS_SAVE ) /* Dallas DS5002FP power failure shows as: "Tension baja " */
-GAME( 1993, wrallya, wrally, wrally, wrally, driver_device, 0, ROT0, "Gaelco", "World Rally (set 2)", GAME_SUPPORTS_SAVE ) /* Dallas DS5002FP power failure shows as: "Power Failure" */
-GAME( 1993, wrallyb, wrally, wrally, wrally, driver_device, 0, ROT0, "Gaelco (Atari license)", "World Rally (US, 930217)", GAME_SUPPORTS_SAVE )
+GAME( 1993, wrally, 0, wrally, wrally, driver_device, 0, ROT0, "Gaelco", "World Rally (set 1)", MACHINE_SUPPORTS_SAVE ) /* Dallas DS5002FP power failure shows as: "Tension baja " */
+GAME( 1993, wrallya, wrally, wrally, wrally, driver_device, 0, ROT0, "Gaelco", "World Rally (set 2)", MACHINE_SUPPORTS_SAVE ) /* Dallas DS5002FP power failure shows as: "Power Failure" */
+GAME( 1993, wrallyb, wrally, wrally, wrally, driver_device, 0, ROT0, "Gaelco (Atari license)", "World Rally (US, 930217)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/wswan.c b/src/mame/drivers/wswan.c
index 8a566a77858..be33de5b961 100644
--- a/src/mess/drivers/wswan.c
+++ b/src/mame/drivers/wswan.c
@@ -181,5 +181,5 @@ ROM_START( wscolor )
ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME*/
-CONS( 1999, wswan, 0, 0, wswan, wswan, driver_device, 0, "Bandai", "WonderSwan", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-CONS( 2000, wscolor, wswan, 0, wscolor, wswan, driver_device, 0, "Bandai", "WonderSwan Color", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/wwfsstar.c b/src/mame/drivers/wwfsstar.c
index 670c9af870a..017d732e739 100644
--- a/src/mame/drivers/wwfsstar.c
+++ b/src/mame/drivers/wwfsstar.c
@@ -629,8 +629,8 @@ ROM_END
-GAME( 1989, wwfsstar, 0, wwfsstar, wwfsstar, driver_device, 0, ROT0, "Technos Japan", "WWF Superstars (Europe)", GAME_SUPPORTS_SAVE )
-GAME( 1989, wwfsstaru, wwfsstar, wwfsstar, wwfsstar, driver_device, 0, ROT0, "Technos Japan", "WWF Superstars (US, Newer)", GAME_SUPPORTS_SAVE )
-GAME( 1989, wwfsstarua, wwfsstar, wwfsstar, wwfsstar, driver_device, 0, ROT0, "Technos Japan", "WWF Superstars (US)", GAME_SUPPORTS_SAVE )
-GAME( 1989, wwfsstarj, wwfsstar, wwfsstar, wwfsstar, driver_device, 0, ROT0, "Technos Japan", "WWF Superstars (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1989, wwfsstarb, wwfsstar, wwfsstar, wwfsstar, driver_device, 0, ROT0, "bootleg", "WWF Superstars (bootleg)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/wyvernf0.c b/src/mame/drivers/wyvernf0.c
index b510b8b8938..1a8aabe32da 100644
--- a/src/mame/drivers/wyvernf0.c
+++ b/src/mame/drivers/wyvernf0.c
@@ -724,4 +724,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", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_COLORS | GAME_IMPERFECT_SOUND)
+GAME( 1985, wyvernf0, 0, wyvernf0, wyvernf0, driver_device, 0, ROT270, "Taito", "Wyvern F-0", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_COLORS | MACHINE_IMPERFECT_SOUND)
diff --git a/src/mess/drivers/x07.c b/src/mame/drivers/x07.c
index 3c63ada1398..c676cb42a27 100644
--- a/src/mess/drivers/x07.c
+++ b/src/mame/drivers/x07.c
@@ -1565,4 +1565,4 @@ DRIVER_INIT_MEMBER(x07_state, x07)
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 1983, x07, 0, 0, x07, x07, x07_state, x07, "Canon", "X-07", GAME_SUPPORTS_SAVE)
+COMP( 1983, x07, 0, 0, x07, x07, x07_state, x07, "Canon", "X-07", MACHINE_SUPPORTS_SAVE)
diff --git a/src/mess/drivers/x1.c b/src/mame/drivers/x1.c
index 41e11b4e876..9bad6b21493 100644
--- a/src/mess/drivers/x1.c
+++ b/src/mame/drivers/x1.c
@@ -2552,7 +2552,7 @@ MACHINE_CONFIG_END
*
*************************************/
- ROM_START( x1 )
+ROM_START( x1 )
ROM_REGION( 0x8000, "ipl", ROMREGION_ERASEFF )
ROM_LOAD( "ipl.x1", 0x0000, 0x1000, CRC(7b28d9de) SHA1(c4db9a6e99873808c8022afd1c50fef556a8b44d) )
@@ -2644,6 +2644,6 @@ 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 )
// x1twin in x1twin.c
-COMP( 1984, x1turbo, x1, 0, x1turbo, x1turbo, x1_state, x1_kanji, "Sharp", "X1 Turbo (CZ-850C)", GAME_NOT_WORKING ) //model 10
+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", GAME_NOT_WORKING )
+//COMP( 1986, x1turboz, x1, 0, x1turbo, x1turbo, x1_state, x1_kanji, "Sharp", "X1 TurboZ", MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/x1twin.c b/src/mame/drivers/x1twin.c
index ee9841d1ae4..30d98a6a2eb 100644
--- a/src/mess/drivers/x1twin.c
+++ b/src/mame/drivers/x1twin.c
@@ -537,4 +537,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)", GAME_NOT_WORKING )
+COMP( 1986, x1twin, x1, 0, x1twin, x1twin, x1_state, x1_kanji,"Sharp", "X1 Twin (CZ-830C)", MACHINE_NOT_WORKING )
diff --git a/src/mess/drivers/x68k.c b/src/mame/drivers/x68k.c
index 6a52fd400c5..af0a91a4948 100644
--- a/src/mess/drivers/x68k.c
+++ b/src/mame/drivers/x68k.c
@@ -814,7 +814,7 @@ WRITE16_MEMBER(x68k_state::x68k_sysport_w)
{
case 0x00:
m_sysport.contrast = data & 0x0f; // often used for screen fades / blanking
- // TODO: implement a decent, not slow, brightness control
+ m_screen->set_brightness(m_sysport.contrast * 0x11);
break;
case 0x01:
m_sysport.monitor = data & 0x08;
@@ -1848,7 +1848,7 @@ ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 1987, x68000, 0, 0, x68000, x68000, x68k_state, x68000, "Sharp", "X68000", GAME_IMPERFECT_GRAPHICS )
-COMP( 1990, x68ksupr,x68000, 0, x68ksupr,x68000, x68k_state,x68000, "Sharp", "X68000 Super", GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
-COMP( 1991, x68kxvi,x68000, 0, x68kxvi,x68000, x68k_state, x68kxvi,"Sharp", "X68000 XVI", GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
-COMP( 1993, x68030, x68000, 0, x68030, x68000, x68k_state, x68030, "Sharp", "X68030", GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
+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.c b/src/mame/drivers/xain.c
index 6988ae5796e..5430585c9b8 100644
--- a/src/mame/drivers/xain.c
+++ b/src/mame/drivers/xain.c
@@ -850,7 +850,7 @@ ROM_START( xsleenab )
ROM_END
-GAME( 1986, xsleena, 0, xsleena, xsleena, driver_device, 0, ROT0, "Technos Japan (Taito license)", "Xain'd Sleena (World)", GAME_SUPPORTS_SAVE )
-GAME( 1986, xsleenaj, xsleena, xsleena, xsleena, driver_device, 0, ROT0, "Technos Japan", "Xain'd Sleena (Japan)", GAME_SUPPORTS_SAVE )
-GAME( 1986, solrwarr, xsleena, xsleena, xsleena, driver_device, 0, ROT0, "Technos Japan (Taito / Memetron license)", "Solar-Warrior (US)", GAME_SUPPORTS_SAVE )
-GAME( 1986, xsleenab, xsleena, xsleenab, xsleena, driver_device, 0, ROT0, "bootleg", "Xain'd Sleena (bootleg)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/xavix.c b/src/mame/drivers/xavix.c
index 6079e7aad62..36f5efe2fa1 100644
--- a/src/mess/drivers/xavix.c
+++ b/src/mame/drivers/xavix.c
@@ -176,4 +176,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", GAME_IS_SKELETON )
+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 )
diff --git a/src/mame/drivers/xbox.c b/src/mame/drivers/xbox.c
new file mode 100644
index 00000000000..b337b3a8a94
--- /dev/null
+++ b/src/mame/drivers/xbox.c
@@ -0,0 +1,254 @@
+// license:BSD-3-Clause
+// copyright-holders:?
+/***************************************************************************
+
+ XBOX (c) 2001 Microsoft
+
+ Skeleton driver
+
+***************************************************************************/
+
+
+#include "emu.h"
+#include "cpu/i386/i386.h"
+#include "machine/lpci.h"
+#include "machine/pic8259.h"
+#include "machine/pit8253.h"
+#include "machine/idectrl.h"
+#include "machine/idehd.h"
+#include "machine/atapicdr.h"
+#include "video/poly.h"
+#include "bitmap.h"
+#include "debug/debugcon.h"
+#include "debug/debugcmd.h"
+#include "debug/debugcpu.h"
+#include "includes/chihiro.h"
+#include "includes/xbox.h"
+
+#define CPU_DIV 64
+
+class xbox_state : public xbox_base_state
+{
+public:
+ xbox_state(const machine_config &mconfig, device_type type, const char *tag) :
+ xbox_base_state(mconfig, type, tag),
+ usbhack_index(-1),
+ usbhack_counter(0)
+ { }
+
+protected:
+ // driver_device overrides
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
+
+ virtual void hack_eeprom();
+ virtual void hack_usb();
+
+ struct chihiro_devices {
+ bus_master_ide_controller_device *ide;
+ } xbox_devs;
+ int usbhack_index;
+ int usbhack_counter;
+};
+
+void xbox_state::video_start()
+{
+}
+
+static ADDRESS_MAP_START(xbox_map, AS_PROGRAM, 32, xbox_state)
+ AM_IMPORT_FROM(xbox_base_map)
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START(xbox_map_io, AS_IO, 32, xbox_state)
+ AM_IMPORT_FROM(xbox_base_map_io)
+ADDRESS_MAP_END
+
+static INPUT_PORTS_START( xbox )
+ /* dummy active high structure */
+ PORT_START("SYSA")
+ PORT_DIPNAME( 0x01, 0x00, "SYSA" )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( On ) )
+ PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( On ) )
+ PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( On ) )
+
+ /* dummy active low structure */
+ PORT_START("DSWA")
+ PORT_DIPNAME( 0x01, 0x01, "DSWA" )
+ PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+ PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
+ PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x00, DEF_STR( On ) )
+INPUT_PORTS_END
+
+
+void xbox_state::hack_eeprom()
+{
+ // 8004e5da,4e5da=0xc3
+ m_maincpu->space(0).write_byte(0x4e5da, 0xc3); // remove audio wait
+ // 8006e654,6e654=0
+ m_maincpu->space(0).write_byte(0x6e654, 0); // disable boot animation
+}
+
+/*static const struct {
+ const char *game_name;
+ struct {
+ UINT32 address;
+ UINT8 write_byte;
+ } modify[16];
+} hacks[] = { { "chihiro",{ { 0x6a79f, 0x01 },{ 0x6a7a0, 0x00 },{ 0x6b575, 0x00 },{ 0x6b576, 0x00 },{ 0x6b5af, 0x75 },{ 0x6b78a, 0x75 },{ 0x6b7ca, 0x00 },{ 0x6b7b8, 0x00 },{ 0x8f5b2, 0x75 },{ 0x79a9e, 0x74 },{ 0x79b80, 0x74 },{ 0x79b97, 0x74 },{ 0, 0 } } },
+{ "outr2",{ { 0x12e4cf, 0x01 },{ 0x12e4d0, 0x00 },{ 0x4793e, 0x01 },{ 0x4793f, 0x00 },{ 0x47aa3, 0x01 },{ 0x47aa4, 0x00 },{ 0x14f2b6, 0x84 },{ 0x14f2d1, 0x75 },{ 0x8732f, 0x7d },{ 0x87384, 0x7d },{ 0x87388, 0xeb },{ 0, 0 } } } };*/
+
+void xbox_state::hack_usb()
+{
+ int p;
+
+ if (usbhack_counter == 0)
+ p = 0;
+ else if (usbhack_counter == 1) // after game loaded
+ p = usbhack_index;
+ else
+ p = -1;
+ if (p >= 0) {
+ /*for (int a = 0; a < 16; a++) {
+ if (hacks[p].modify[a].address == 0)
+ break;
+ m_maincpu->space(0).write_byte(hacks[p].modify[a].address, hacks[p].modify[a].write_byte);
+ }*/
+ }
+ usbhack_counter++;
+}
+
+void xbox_state::machine_start()
+{
+ xbox_base_state::machine_start();
+ xbox_devs.ide = machine().device<bus_master_ide_controller_device>("ide");
+ usbhack_index = -1;
+ /*for (int a = 1; a < 2; a++)
+ if (strcmp(machine().basename(), hacks[a].game_name) == 0) {
+ usbhack_index = a;
+ break;
+ }*/
+ usbhack_counter = 0;
+ // savestates
+ save_item(NAME(usbhack_counter));
+}
+
+void xbox_state::machine_reset()
+{
+ ata_mass_storage_device *devh;
+ atapi_cdrom_device *devc;
+ UINT16 *id;
+
+ // set some neede parameters
+ devh = machine().device<ata_mass_storage_device>("ide:0:hdd");
+ id = devh->identify_device_buffer();
+ id[88] |= (1 << 2); // ultra dma mode 2 supported
+ id[128] |= 2; // bits 2-1=01 drive already unlocked
+ devc = machine().device<atapi_cdrom_device>("ide:1:cdrom");
+ id = devc->identify_device_buffer();
+ id[64] |= (1 << 1);
+ id[88] |= (1 << 2); // ultra dma mode 2 supported
+}
+
+SLOT_INTERFACE_START(xbox_ata_devices)
+SLOT_INTERFACE("hdd", IDE_HARDDISK)
+SLOT_INTERFACE("cdrom", ATAPI_CDROM)
+SLOT_INTERFACE_END
+
+static MACHINE_CONFIG_DERIVED_CLASS(xbox, xbox_base, xbox_state)
+ MCFG_CPU_MODIFY("maincpu")
+ MCFG_CPU_PROGRAM_MAP(xbox_map)
+ MCFG_CPU_IO_MAP(xbox_map_io)
+
+ MCFG_DEVICE_MODIFY("ide:0")
+ MCFG_DEVICE_SLOT_INTERFACE(xbox_ata_devices, "hdd", true)
+ MCFG_DEVICE_MODIFY("ide:1")
+ MCFG_DEVICE_SLOT_INTERFACE(xbox_ata_devices, "cdrom", true)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+// MCFG_SOUND_ADD("aysnd", AY8910, MAIN_CLOCK/4)
+// MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
+MACHINE_CONFIG_END
+
+
+/***************************************************************************
+
+ Machine driver(s)
+
+***************************************************************************/
+
+ROM_START( xbox )
+ ROM_REGION( 0x400, "mcpx", 0 )
+ // mcpx_1_0.bin is bad, first byte (0x7f) sould be removed and a byte with value 0xee added at the end
+ ROM_LOAD( "mcpx_1_0.bin", 0, 0x200, CRC(f31429fc) SHA1(a9ecbf8896d10db81594923e485862aa3aac7b58) )
+ ROM_LOAD( "mcpx_1_1.bin", 0x200, 0x200, CRC(94ce376b) SHA1(6c875f17f773aaec51eb434068bb6c657c4343c0) )
+
+ ROM_REGION( 0x100000, "bios", 0)
+ ROM_LOAD( "4134_1024k.bin", 0x000000, 0x100000, CRC(49d8055a) SHA1(d46cef771a63dc8024fe36d7ab5b959087ac999f) )
+ ROM_COPY( "mcpx", 1, 0x7fe00, 0x1ff)
+
+
+ ROM_REGION( 0x1000000, "tbp", 0 ) // To Be Processed, of course
+ ROM_LOAD( "3944_1024k.bin", 0x000000, 0x100000, CRC(32a9ecb6) SHA1(67054fc88bda94e33e86f1b19be60efec0724fb6) )
+ ROM_LOAD( "4034_1024k.bin", 0x000000, 0x100000, CRC(0d6fc88f) SHA1(ab676b712204fb1728bf89f9cd541a8f5a64ab97) )
+ ROM_LOAD( "4817_1024k.bin", 0x000000, 0x100000, CRC(3f30863a) SHA1(dc955bd4d3ca71e01214a49e5d0aba615270c03c) )
+ ROM_LOAD( "5101_256k.bin", 0x000000, 0x040000, CRC(e8a9224e) SHA1(5108e1025f48071c07a6823661d708c66dee97a9) )
+ ROM_LOAD( "xbox-5530.bin", 0x000000, 0x040000, CRC(9569c4d3) SHA1(40fa73277013be3168135e1768b09623a987ff63) )
+ ROM_LOAD( "xbox-5713.bin", 0x040000, 0x040000, CRC(58fd8173) SHA1(8b7ccc4648ccd78cdb7b65cfca09621eaf2d4238) )
+ ROM_LOAD( "5838_256k.bin", 0x000000, 0x040000, CRC(5be2413d) SHA1(b9489e883c650b5e5fe2f83a32237dbf74f0e9f1) )
+ROM_END
+// See src/emu/gamedrv.h for details
+// For a game:
+// GAME(YEAR,NAME,PARENT,MACHINE,INPUT,CLASS,INIT,MONITOR,COMPANY,FULLNAME,FLAGS)
+
+// For a console:
+// CONS(YEAR,NAME,PARENT,COMPAT,MACHINE,INPUT,CLASS,INIT,COMPANY,FULLNAME,FLAGS)
+
+// For a computer:
+// COMP(YEAR,NAME,PARENT,COMPAT,MACHINE,INPUT,CLASS,INIT,COMPANY,FULLNAME,FLAGS)
+
+// 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 )
diff --git a/src/mess/drivers/xerox820.c b/src/mame/drivers/xerox820.c
index 6e9d4307fe3..bd7756004d3 100644
--- a/src/mess/drivers/xerox820.c
+++ b/src/mame/drivers/xerox820.c
@@ -826,8 +826,8 @@ ROM_END
/* 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", GAME_NO_SOUND_HW )
+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", GAME_NOT_WORKING )
-COMP( 1983, x168, x820ii, 0, xerox168, xerox820, driver_device, 0, "Xerox", "Xerox 16/8", GAME_NOT_WORKING )
-COMP( 1983, mk83, x820ii, 0, mk83, xerox820, driver_device, 0, "Scomar", "MK-83", GAME_NOT_WORKING | GAME_NO_SOUND_HW )
+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 )
diff --git a/src/mame/drivers/xexex.c b/src/mame/drivers/xexex.c
index c4456151741..0e1c6e594f9 100644
--- a/src/mame/drivers/xexex.c
+++ b/src/mame/drivers/xexex.c
@@ -677,6 +677,6 @@ DRIVER_INIT_MEMBER(xexex_state,xexex)
}
}
-GAME( 1991, xexex, 0, xexex, xexex, xexex_state, xexex, ROT0, "Konami", "Xexex (ver EAA)", GAME_SUPPORTS_SAVE )
-GAME( 1991, xexexa, xexex, xexex, xexex, xexex_state, xexex, ROT0, "Konami", "Xexex (ver AAA)", GAME_SUPPORTS_SAVE )
-GAME( 1991, xexexj, xexex, xexex, xexex, xexex_state, xexex, ROT0, "Konami", "Xexex (ver JAA)", GAME_SUPPORTS_SAVE )
+GAME( 1991, xexex, 0, xexex, xexex, xexex_state, xexex, ROT0, "Konami", "Xexex (ver EAA)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, xexexa, xexex, xexex, xexex, xexex_state, xexex, ROT0, "Konami", "Xexex (ver AAA)", MACHINE_SUPPORTS_SAVE )
+GAME( 1991, xexexj, xexex, xexex, xexex, xexex_state, xexex, ROT0, "Konami", "Xexex (ver JAA)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/xmen.c b/src/mame/drivers/xmen.c
index 213e92ec8eb..f0cac836222 100644
--- a/src/mame/drivers/xmen.c
+++ b/src/mame/drivers/xmen.c
@@ -83,15 +83,9 @@ WRITE16_MEMBER(xmen_state::xmen_18fa00_w)
}
}
-void xmen_state::sound_reset_bank()
-{
- membank("bank4")->set_entry(m_sound_curbank & 0x07);
-}
-
WRITE8_MEMBER(xmen_state::sound_bankswitch_w)
{
- m_sound_curbank = data;
- sound_reset_bank();
+ m_z80bank->set_entry(data & 0x07);
}
@@ -118,7 +112,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, xmen_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank4")
+ AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("z80bank")
AM_RANGE(0xc000, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xe22f) AM_DEVREADWRITE("k054539", k054539_device, read, write)
AM_RANGE(0xe800, 0xe801) AM_MIRROR(0x0400) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write)
@@ -282,17 +276,13 @@ INPUT_PORTS_END
void xmen_state::machine_start()
{
- UINT8 *ROM = memregion("audiocpu")->base();
-
- membank("bank4")->configure_entries(0, 8, &ROM[0x10000], 0x4000);
- membank("bank4")->set_entry(0);
+ m_z80bank->configure_entries(0, 8, memregion("audiocpu")->base(), 0x4000);
+ m_z80bank->set_entry(0);
- save_item(NAME(m_sound_curbank));
save_item(NAME(m_sprite_colorbase));
save_item(NAME(m_layer_colorbase));
save_item(NAME(m_layerpri));
save_item(NAME(m_vblank_irq_mask));
- machine().save().register_postload(save_prepost_delegate(FUNC(xmen_state::sound_reset_bank), this));
}
void xmen_state::machine_reset()
@@ -306,7 +296,6 @@ void xmen_state::machine_reset()
}
m_sprite_colorbase = 0;
- m_sound_curbank = 0;
m_vblank_irq_mask = 0;
}
@@ -501,9 +490,8 @@ ROM_START( xmen )
ROM_LOAD16_BYTE( "065-a02.9d", 0x80000, 0x40000, CRC(b31dc44c) SHA1(4bdac05826b4d6d4fe46686ede5190e2f73eefc5) )
ROM_LOAD16_BYTE( "065-a03.9f", 0x80001, 0x40000, CRC(13842fe6) SHA1(b61f094eb94336edb8708d3437ead9b853b2d6e6) )
- ROM_REGION( 0x30000, "audiocpu", 0 ) /* 64k+128k for sound cpu */
+ ROM_REGION( 0x20000, "audiocpu", 0 )
ROM_LOAD( "065-a01.6f", 0x00000, 0x20000, CRC(147d3a4d) SHA1(a14409fe991e803b9e7812303e3a9ebd857d8b01) )
- ROM_RELOAD( 0x10000, 0x20000 )
ROM_REGION( 0x200000, "k052109", 0 ) /* tiles */
ROM_LOAD32_WORD( "065-a08.15l", 0x000000, 0x100000, CRC(6b649aca) SHA1(2595f314517738e8614facf578cc951a6c36a180) )
@@ -529,9 +517,8 @@ ROM_START( xmenj )
ROM_LOAD16_BYTE( "065-a02.9d", 0x80000, 0x40000, CRC(b31dc44c) SHA1(4bdac05826b4d6d4fe46686ede5190e2f73eefc5) )
ROM_LOAD16_BYTE( "065-a03.9f", 0x80001, 0x40000, CRC(13842fe6) SHA1(b61f094eb94336edb8708d3437ead9b853b2d6e6) )
- ROM_REGION( 0x30000, "audiocpu", 0 ) /* 64k+128k for sound cpu */
+ ROM_REGION( 0x20000, "audiocpu", 0 )
ROM_LOAD( "065-a01.6f", 0x00000, 0x20000, CRC(147d3a4d) SHA1(a14409fe991e803b9e7812303e3a9ebd857d8b01) )
- ROM_RELOAD( 0x10000, 0x20000 )
ROM_REGION( 0x200000, "k052109", 0 ) /* tiles */
ROM_LOAD32_WORD( "065-a08.15l", 0x000000, 0x100000, CRC(6b649aca) SHA1(2595f314517738e8614facf578cc951a6c36a180) )
@@ -557,9 +544,8 @@ ROM_START( xmene )
ROM_LOAD16_BYTE( "065-a02.9d", 0x80000, 0x40000, CRC(b31dc44c) SHA1(4bdac05826b4d6d4fe46686ede5190e2f73eefc5) )
ROM_LOAD16_BYTE( "065-a03.9f", 0x80001, 0x40000, CRC(13842fe6) SHA1(b61f094eb94336edb8708d3437ead9b853b2d6e6) )
- ROM_REGION( 0x30000, "audiocpu", 0 ) /* 64k+128k for sound cpu */
+ ROM_REGION( 0x20000, "audiocpu", 0 )
ROM_LOAD( "065-a01.6f", 0x00000, 0x20000, CRC(147d3a4d) SHA1(a14409fe991e803b9e7812303e3a9ebd857d8b01) )
- ROM_RELOAD( 0x10000, 0x20000 )
ROM_REGION( 0x200000, "k052109", 0 ) /* tiles */
ROM_LOAD32_WORD( "065-a08.15l", 0x000000, 0x100000, CRC(6b649aca) SHA1(2595f314517738e8614facf578cc951a6c36a180) )
@@ -585,9 +571,8 @@ ROM_START( xmena )
ROM_LOAD16_BYTE( "065-a02.9d", 0x80000, 0x40000, CRC(b31dc44c) SHA1(4bdac05826b4d6d4fe46686ede5190e2f73eefc5) )
ROM_LOAD16_BYTE( "065-a03.9f", 0x80001, 0x40000, CRC(13842fe6) SHA1(b61f094eb94336edb8708d3437ead9b853b2d6e6) )
- ROM_REGION( 0x30000, "audiocpu", 0 ) /* 64k+128k for sound cpu */
+ ROM_REGION( 0x20000, "audiocpu", 0 )
ROM_LOAD( "065-a01.6f", 0x00000, 0x20000, CRC(147d3a4d) SHA1(a14409fe991e803b9e7812303e3a9ebd857d8b01) )
- ROM_RELOAD( 0x10000, 0x20000 )
ROM_REGION( 0x200000, "k052109", 0 ) /* tiles */
ROM_LOAD32_WORD( "065-a08.15l", 0x000000, 0x100000, CRC(6b649aca) SHA1(2595f314517738e8614facf578cc951a6c36a180) )
@@ -613,9 +598,8 @@ ROM_START( xmenaa )
ROM_LOAD16_BYTE( "065-a02.9d", 0x80000, 0x40000, CRC(b31dc44c) SHA1(4bdac05826b4d6d4fe46686ede5190e2f73eefc5) )
ROM_LOAD16_BYTE( "065-a03.9f", 0x80001, 0x40000, CRC(13842fe6) SHA1(b61f094eb94336edb8708d3437ead9b853b2d6e6) )
- ROM_REGION( 0x30000, "audiocpu", 0 ) /* 64k+128k for sound cpu */
+ ROM_REGION( 0x20000, "audiocpu", 0 )
ROM_LOAD( "065-a01.6f", 0x00000, 0x20000, CRC(147d3a4d) SHA1(a14409fe991e803b9e7812303e3a9ebd857d8b01) )
- ROM_RELOAD( 0x10000, 0x20000 )
ROM_REGION( 0x200000, "k052109", 0 ) /* tiles */
ROM_LOAD32_WORD( "065-a08.15l", 0x000000, 0x100000, CRC(6b649aca) SHA1(2595f314517738e8614facf578cc951a6c36a180) )
@@ -641,9 +625,8 @@ ROM_START( xmen2pe )
ROM_LOAD16_BYTE( "065-a02.9d", 0x80000, 0x40000, CRC(b31dc44c) SHA1(4bdac05826b4d6d4fe46686ede5190e2f73eefc5) )
ROM_LOAD16_BYTE( "065-a03.9f", 0x80001, 0x40000, CRC(13842fe6) SHA1(b61f094eb94336edb8708d3437ead9b853b2d6e6) )
- ROM_REGION( 0x30000, "audiocpu", 0 ) /* 64k+128k for sound cpu */
+ ROM_REGION( 0x20000, "audiocpu", 0 )
ROM_LOAD( "065-a01.6f", 0x00000, 0x20000, CRC(147d3a4d) SHA1(a14409fe991e803b9e7812303e3a9ebd857d8b01) )
- ROM_RELOAD( 0x10000, 0x20000 )
ROM_REGION( 0x200000, "k052109", 0 ) /* tiles */
ROM_LOAD32_WORD( "065-a08.15l", 0x000000, 0x100000, CRC(6b649aca) SHA1(2595f314517738e8614facf578cc951a6c36a180) )
@@ -669,9 +652,8 @@ ROM_START( xmen2pu )
ROM_LOAD16_BYTE( "065-a02.9d", 0x80000, 0x40000, CRC(b31dc44c) SHA1(4bdac05826b4d6d4fe46686ede5190e2f73eefc5) )
ROM_LOAD16_BYTE( "065-a03.9f", 0x80001, 0x40000, CRC(13842fe6) SHA1(b61f094eb94336edb8708d3437ead9b853b2d6e6) )
- ROM_REGION( 0x30000, "audiocpu", 0 ) /* 64k+128k for sound cpu */
+ ROM_REGION( 0x20000, "audiocpu", 0 )
ROM_LOAD( "065-a01.6f", 0x00000, 0x20000, CRC(147d3a4d) SHA1(a14409fe991e803b9e7812303e3a9ebd857d8b01) )
- ROM_RELOAD( 0x10000, 0x20000 )
ROM_REGION( 0x200000, "k052109", 0 ) /* tiles */
ROM_LOAD32_WORD( "065-a08.15l", 0x000000, 0x100000, CRC(6b649aca) SHA1(2595f314517738e8614facf578cc951a6c36a180) )
@@ -697,9 +679,8 @@ ROM_START( xmen2pa )
ROM_LOAD16_BYTE( "065-a02.9d", 0x80000, 0x40000, CRC(b31dc44c) SHA1(4bdac05826b4d6d4fe46686ede5190e2f73eefc5) )
ROM_LOAD16_BYTE( "065-a03.9f", 0x80001, 0x40000, CRC(13842fe6) SHA1(b61f094eb94336edb8708d3437ead9b853b2d6e6) )
- ROM_REGION( 0x30000, "audiocpu", 0 ) /* 64k+128k for sound cpu */
+ ROM_REGION( 0x20000, "audiocpu", 0 )
ROM_LOAD( "065-a01.6f", 0x00000, 0x20000, CRC(147d3a4d) SHA1(a14409fe991e803b9e7812303e3a9ebd857d8b01) )
- ROM_RELOAD( 0x10000, 0x20000 )
ROM_REGION( 0x200000, "k052109", 0 ) /* tiles */
ROM_LOAD32_WORD( "065-a08.15l", 0x000000, 0x100000, CRC(6b649aca) SHA1(2595f314517738e8614facf578cc951a6c36a180) )
@@ -725,9 +706,8 @@ ROM_START( xmen2pj )
ROM_LOAD16_BYTE( "065-a02.9d", 0x80000, 0x40000, CRC(b31dc44c) SHA1(4bdac05826b4d6d4fe46686ede5190e2f73eefc5) )
ROM_LOAD16_BYTE( "065-a03.9f", 0x80001, 0x40000, CRC(13842fe6) SHA1(b61f094eb94336edb8708d3437ead9b853b2d6e6) )
- ROM_REGION( 0x30000, "audiocpu", 0 ) /* 64k+128k for sound cpu */
+ ROM_REGION( 0x20000, "audiocpu", 0 )
ROM_LOAD( "065-a01.6f", 0x00000, 0x20000, CRC(147d3a4d) SHA1(a14409fe991e803b9e7812303e3a9ebd857d8b01) )
- ROM_RELOAD( 0x10000, 0x20000 )
ROM_REGION( 0x200000, "k052109", 0 ) /* tiles */
ROM_LOAD32_WORD( "065-a08.15l", 0x000000, 0x100000, CRC(6b649aca) SHA1(2595f314517738e8614facf578cc951a6c36a180) )
@@ -807,9 +787,8 @@ ROM_START( xmen6p )
ROM_LOAD16_BYTE( "065-a02.17g", 0x80000, 0x40000, CRC(b31dc44c) SHA1(4bdac05826b4d6d4fe46686ede5190e2f73eefc5) )
ROM_LOAD16_BYTE( "065-a03.17j", 0x80001, 0x40000, CRC(13842fe6) SHA1(b61f094eb94336edb8708d3437ead9b853b2d6e6) )
- ROM_REGION( 0x30000, "audiocpu", 0 ) /* 64k+128k for sound cpu */
+ ROM_REGION( 0x20000, "audiocpu", 0 )
ROM_LOAD( "065-a01.7b", 0x00000, 0x20000, CRC(147d3a4d) SHA1(a14409fe991e803b9e7812303e3a9ebd857d8b01) )
- ROM_RELOAD( 0x10000, 0x20000 )
ROM_REGION( 0x200000, "k052109", 0 ) /* tiles */
ROM_LOAD32_WORD( "065-a08.1l", 0x000000, 0x100000, CRC(6b649aca) SHA1(2595f314517738e8614facf578cc951a6c36a180) )
@@ -835,9 +814,8 @@ ROM_START( xmen6pu )
ROM_LOAD16_BYTE( "065-a02.17g", 0x80000, 0x40000, CRC(b31dc44c) SHA1(4bdac05826b4d6d4fe46686ede5190e2f73eefc5) )
ROM_LOAD16_BYTE( "065-a03.17j", 0x80001, 0x40000, CRC(13842fe6) SHA1(b61f094eb94336edb8708d3437ead9b853b2d6e6) )
- ROM_REGION( 0x30000, "audiocpu", 0 ) /* 64k+128k for sound cpu */
+ ROM_REGION( 0x20000, "audiocpu", 0 )
ROM_LOAD( "065-a01.7b", 0x00000, 0x20000, CRC(147d3a4d) SHA1(a14409fe991e803b9e7812303e3a9ebd857d8b01) )
- ROM_RELOAD( 0x10000, 0x20000 )
ROM_REGION( 0x200000, "k052109", 0 ) /* tiles */
ROM_LOAD32_WORD( "065-a08.1l", 0x000000, 0x100000, CRC(6b649aca) SHA1(2595f314517738e8614facf578cc951a6c36a180) )
@@ -858,15 +836,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)", GAME_SUPPORTS_SAVE )
-GAME( 1992, xmenj, xmen, xmen, xmen, driver_device, 0, ROT0, "Konami", "X-Men (4 Players ver JBA)", GAME_SUPPORTS_SAVE )
-GAME( 1992, xmene, xmen, xmen, xmen, driver_device, 0, ROT0, "Konami", "X-Men (4 Players ver EBA)", GAME_SUPPORTS_SAVE )
-GAME( 1992, xmena, xmen, xmen, xmen, driver_device, 0, ROT0, "Konami", "X-Men (4 Players ver AEA)", GAME_SUPPORTS_SAVE )
-GAME( 1992, xmenaa, xmen, xmen, xmen, driver_device, 0, ROT0, "Konami", "X-Men (4 Players ver ADA)", GAME_SUPPORTS_SAVE )
-GAME( 1992, xmen2pe, xmen, xmen, xmen2p, driver_device, 0, ROT0, "Konami", "X-Men (2 Players ver EAA)", GAME_SUPPORTS_SAVE )
-GAME( 1992, xmen2pu, xmen, xmen, xmen2p, driver_device, 0, ROT0, "Konami", "X-Men (2 Players ver UAB)", GAME_SUPPORTS_SAVE )
-GAME( 1992, xmen2pa, xmen, xmen, xmen2p, driver_device, 0, ROT0, "Konami", "X-Men (2 Players ver AAA)", GAME_SUPPORTS_SAVE )
-GAME( 1992, xmen2pj, xmen, xmen, xmen2p, driver_device, 0, ROT0, "Konami", "X-Men (2 Players ver JAA)", GAME_SUPPORTS_SAVE )
-
-GAME( 1992, xmen6p, xmen, xmen6p, xmen6p, driver_device, 0, ROT0, "Konami", "X-Men (6 Players ver ECB)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
-GAME( 1992, xmen6pu, xmen, xmen6p, xmen6p, driver_device, 0, ROT0, "Konami", "X-Men (6 Players ver UCB)", GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/xor100.c b/src/mame/drivers/xor100.c
index e3c596d61a9..8c2e544c544 100644
--- a/src/mess/drivers/xor100.c
+++ b/src/mame/drivers/xor100.c
@@ -596,4 +596,4 @@ 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", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW)
+COMP( 1980, xor100, 0, 0, xor100, xor100, driver_device, 0, "Xor Data Science", "XOR S-100-12", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW)
diff --git a/src/mame/drivers/xorworld.c b/src/mame/drivers/xorworld.c
index 486b5da9b01..ee8eff501d0 100644
--- a/src/mame/drivers/xorworld.c
+++ b/src/mame/drivers/xorworld.c
@@ -171,8 +171,11 @@ static MACHINE_CONFIG_START( xorworld, xorworld_state )
// basic machine hardware
MCFG_CPU_ADD("maincpu", M68000, 10000000) // 10 MHz
MCFG_CPU_PROGRAM_MAP(xorworld_map)
- MCFG_CPU_VBLANK_INT_DRIVER("screen", xorworld_state, irq6_line_assert) // irq 4 or 6
- MCFG_CPU_PERIODIC_INT_DRIVER(xorworld_state, irq2_line_assert, 3*60) //timed irq, unknown timing
+ //MCFG_CPU_VBLANK_INT_DRIVER("screen", xorworld_state, irq6_line_assert) // irq 4 or 6
+ //MCFG_CPU_PERIODIC_INT_DRIVER(xorworld_state, irq2_line_assert, 3*60) //timed irq, unknown timing
+ // Simple fix - but this sounds good!! -Valley Bell
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", xorworld_state, irq2_line_assert) // irq 4 or 6
+ MCFG_CPU_PERIODIC_INT_DRIVER(xorworld_state, irq6_line_assert, 3*60) //timed irq, unknown timing
MCFG_QUANTUM_TIME(attotime::from_hz(60))
@@ -237,4 +240,4 @@ DRIVER_INIT_MEMBER(xorworld_state,xorworld)
}
-GAME( 1990, xorworld, 0, xorworld, xorworld, xorworld_state, xorworld, ROT0, "Gaelco", "Xor World (prototype)", GAME_SUPPORTS_SAVE )
+GAME( 1990, xorworld, 0, xorworld, xorworld, xorworld_state, xorworld, ROT0, "Gaelco", "Xor World (prototype)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/xtheball.c b/src/mame/drivers/xtheball.c
index 6d67b7afa65..5e154202b87 100644
--- a/src/mame/drivers/xtheball.c
+++ b/src/mame/drivers/xtheball.c
@@ -391,4 +391,4 @@ ROM_END
*
*************************************/
-GAME( 1991, xtheball, 0, xtheball, xtheball, driver_device, 0, ROT0, "Rare", "X the Ball", GAME_SUPPORTS_SAVE )
+GAME( 1991, xtheball, 0, xtheball, xtheball, driver_device, 0, ROT0, "Rare", "X the Ball", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/xtom3d.c b/src/mame/drivers/xtom3d.c
index 41b2e458248..eba0bf581b4 100644
--- a/src/mame/drivers/xtom3d.c
+++ b/src/mame/drivers/xtom3d.c
@@ -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", GAME_IS_SKELETON)
+GAME(1999, xtom3d, 0, xtom3d, at_keyboard, driver_device, 0, ROT0, "Jamie System Development", "X Tom 3D", MACHINE_IS_SKELETON)
diff --git a/src/mame/drivers/xxmissio.c b/src/mame/drivers/xxmissio.c
index 934dec46bbc..b826848f1d5 100644
--- a/src/mame/drivers/xxmissio.c
+++ b/src/mame/drivers/xxmissio.c
@@ -270,7 +270,6 @@ static MACHINE_CONFIG_START( xxmissio, xxmissio_state )
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
-
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -282,8 +281,7 @@ static MACHINE_CONFIG_START( xxmissio, xxmissio_state )
MCFG_GFXDECODE_ADD("gfxdecode", "palette", xxmissio)
MCFG_PALETTE_ADD("palette", 768)
- MCFG_PALETTE_FORMAT(BBGGRRII)
-
+ MCFG_PALETTE_FORMAT_CLASS(1, xxmissio_state, BBGGRRII)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -330,4 +328,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", GAME_SUPPORTS_SAVE )
+GAME( 1986, xxmissio, 0, xxmissio, xxmissio, driver_device, 0, ROT90, "UPL", "XX Mission", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/xyonix.c b/src/mame/drivers/xyonix.c
index d491ef98cb1..35847a7f445 100644
--- a/src/mame/drivers/xyonix.c
+++ b/src/mame/drivers/xyonix.c
@@ -13,7 +13,8 @@ prom, the 2x 256k roms, and the 1x 6264 ram.
Dip SW is 1 x 8-position
on the PCB is an empty socket. written next to the socket is 68705P3. "oh no" you
-say..... well, its unpopulated, so maybe it was never used?
+say..... well, its unpopulated, so maybe it was never used? (another PCB was
+found with the 68705 populated)
TODO:
@@ -259,6 +260,9 @@ ROM_START( xyonix )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "xyonix3.bin", 0x00000, 0x10000, CRC(1960a74e) SHA1(5fd7bc31ca2f5f1e114d3d0ccf6554ebd712cbd3) )
+ ROM_REGION( 0x10000, "mcu", 0 )
+ ROM_LOAD( "mc68705p3s.e7", 0x00000, 0x780, BAD_DUMP CRC(f60cdd86) SHA1(e18cc598153b3e108942328ee9c5b9f83b034c41) ) // FIXED BITS (xxxxxx0x)
+
ROM_REGION( 0x10000, "gfx1", 0 )
ROM_LOAD( "xyonix1.bin", 0x00000, 0x08000, CRC(3dfa9596) SHA1(52cdbbe18f83cea7248c29588ea3a18c4bb7984f) )
ROM_LOAD( "xyonix2.bin", 0x08000, 0x08000, CRC(db87343e) SHA1(62bc30cd65b2f8976cd73a0b349a9ccdb3faaad2) )
@@ -269,4 +273,4 @@ ROM_END
/* GAME drivers **************************************************************/
-GAME( 1989, xyonix, 0, xyonix, xyonix, driver_device, 0, ROT0, "Philko", "Xyonix", GAME_SUPPORTS_SAVE )
+GAME( 1989, xyonix, 0, xyonix, xyonix, driver_device, 0, ROT0, "Philko", "Xyonix", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/yiear.c b/src/mame/drivers/yiear.c
index fe67bd0a36c..18beaa4ca3e 100644
--- a/src/mame/drivers/yiear.c
+++ b/src/mame/drivers/yiear.c
@@ -355,5 +355,5 @@ ROM_END
-GAME( 1985, yiear, 0, yiear, yiear, driver_device, 0, ROT0, "Konami", "Yie Ar Kung-Fu (program code I)", GAME_SUPPORTS_SAVE )
-GAME( 1985, yiear2, yiear, yiear, yiear, driver_device, 0, ROT0, "Konami", "Yie Ar Kung-Fu (program code G)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/ymmu100.c b/src/mame/drivers/ymmu100.c
index 479e2ceaee6..2273fdb827a 100644
--- a/src/mess/drivers/ymmu100.c
+++ b/src/mame/drivers/ymmu100.c
@@ -495,5 +495,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", GAME_NOT_WORKING )
-CONS( 1997, mu100r, mu100, 0, mu100r, mu100, driver_device, 0, "Yamaha", "MU100 Rackable version", GAME_NOT_WORKING )
+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 )
diff --git a/src/mess/drivers/ymmu100.ppm b/src/mame/drivers/ymmu100.ppm
index 7a826314f7e..7a826314f7e 100644
--- a/src/mess/drivers/ymmu100.ppm
+++ b/src/mame/drivers/ymmu100.ppm
Binary files differ
diff --git a/src/mame/drivers/yunsun16.c b/src/mame/drivers/yunsun16.c
index e3120aa766d..e84541e2a90 100644
--- a/src/mame/drivers/yunsun16.c
+++ b/src/mame/drivers/yunsun16.c
@@ -928,6 +928,29 @@ ROM_START( shockingk )
ROM_END
+ROM_START( shockingko )
+
+ ROM_REGION( 0x080000, "maincpu", 0 ) /* 68000 Code */
+ ROM_LOAD16_BYTE( "shoc_kor.u33", 0x000000, 0x040000, CRC(646303ec) SHA1(d01264f8495fdea882a9d75129665a67a9acfc42) )
+ ROM_LOAD16_BYTE( "shoc_kor.u32", 0x000001, 0x040000, CRC(6d9ac2f2) SHA1(2374cc053233940d5da610ec95539b43dfbeef3b) )
+
+ ROM_REGION( 0x200000*8, "gfx1", ROMREGION_ERASEFF ) /* 16x16x8 */
+ ROMX_LOAD( "shoc_kor.u67", 0x000000, 0x080000, CRC(e30fb2c4) SHA1(0d33a1593d7ebcd5da6971a04c3300c0b4eef219) , ROM_GROUPWORD | ROM_SKIP(6))
+ ROMX_LOAD( "shoc_kor.u68", 0x000002, 0x080000, CRC(7d702538) SHA1(ae4c8ca6f172e204589f2f70ca114f7c38e7cabd) , ROM_GROUPWORD | ROM_SKIP(6))
+ ROMX_LOAD( "shoc_kor.u69", 0x000004, 0x080000, CRC(97447fec) SHA1(e52184f96b2337ccbef130ada21a959c8bc1d73b) , ROM_GROUPWORD | ROM_SKIP(6))
+ ROMX_LOAD( "shoc_kor.u70", 0x000006, 0x080000, CRC(1b1f7895) SHA1(939c386dbef82e4833b7038e7c603d2ec67fa23e) , ROM_GROUPWORD | ROM_SKIP(6))
+
+ ROM_REGION( 0x100000, "gfx2", 0 ) /* 16x16x4 */
+ ROM_LOAD( "shoc_kor.u20", 0x000000, 0x040000, CRC(9f729220) SHA1(3206c87c7aebd8912d3486225ccae0a6e3b2061e) )
+ ROM_LOAD( "shoc_kor.u21", 0x040000, 0x040000, CRC(cde84679) SHA1(261a6570449bce22458c49edee427dda6dc504b7) )
+ ROM_LOAD( "shoc_kor.u22", 0x080000, 0x040000, CRC(61fe98ab) SHA1(745fe3b9d513b8e10c405d9ba2e055de1a261e33) )
+ ROM_LOAD( "shoc_kor.u23", 0x0c0000, 0x040000, CRC(50c29191) SHA1(bb2c22f2f452ca0940e98df6efc754c7522696bd) )
+
+ ROM_REGION( 0x080000, "oki", 0 ) /* Samples */
+ ROM_LOAD( "yunsun16.131", 0x000000, 0x080000, CRC(d0a1bb8c) SHA1(10f33521bd6031ed73ee5c7be1382165925aa8f8) )
+
+ROM_END
+
/***************************************************************************
@@ -991,11 +1014,12 @@ ROM_END
***************************************************************************/
-GAME( 199?, magicbub, 0, magicbub, magicbub, yunsun16_state, magicbub, ROT0, "Yun Sung", "Magic Bubble", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 199?, magicbuba, magicbub, magicbub, magicbua, yunsun16_state, magicbub, ROT0, "Yun Sung", "Magic Bubble (Adult version, YS-1302 PCB)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 199?, magicbubb, magicbub, shocking, magicbua, driver_device, 0, ROT0, "Yun Sung", "Magic Bubble (Adult version, YS-0211 PCB)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1996, paprazzi, 0, shocking, paprazzi, driver_device, 0, ROT270, "Yun Sung", "Paparazzi", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1997, shocking, 0, shocking, shocking, driver_device, 0, ROT0, "Yun Sung", "Shocking", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1997, shockingk, shocking, shocking, shocking, driver_device, 0, ROT0, "Yun Sung", "Shocking (Korea)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1998, bombkick, 0, shocking, bombkick, driver_device, 0, ROT0, "Yun Sung", "Bomb Kick (set 1)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
-GAME( 1998, bombkicka, bombkick, shocking, bombkick, driver_device, 0, ROT0, "Yun Sung", "Bomb Kick (set 2)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/yunsung8.c b/src/mame/drivers/yunsung8.c
index 1c0960187f3..282815bd235 100644
--- a/src/mame/drivers/yunsung8.c
+++ b/src/mame/drivers/yunsung8.c
@@ -749,8 +749,8 @@ ROM_END
***************************************************************************/
-GAME( 1995, cannball, 0, yunsung8, cannball, driver_device, 0, ROT0, "Yun Sung / Soft Vision", "Cannon Ball (Yun Sung, horizontal)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1995, cannballv, cannball, yunsung8, cannbalv, driver_device, 0, ROT270, "Yun Sung / T&K", "Cannon Ball (Yun Sung, vertical)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1995, magix, 0, yunsung8, magix, driver_device, 0, ROT0, "Yun Sung", "Magix / Rock", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1995, magixb, magix, yunsung8, magix, driver_device, 0, ROT0, "Yun Sung", "Magix / Rock (no copyright message)",GAME_IMPERFECT_SOUND | GAME_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", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1995, cannball, 0, yunsung8, cannball, driver_device, 0, ROT0, "Yun Sung / Soft Vision", "Cannon Ball (Yun Sung, horizontal)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1995, cannballv, cannball, yunsung8, cannbalv, driver_device, 0, ROT270, "Yun Sung / T&K", "Cannon Ball (Yun Sung, vertical)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1995, magix, 0, yunsung8, magix, driver_device, 0, ROT0, "Yun Sung", "Magix / Rock", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1995, magixb, magix, yunsung8, magix, driver_device, 0, ROT0, "Yun Sung", "Magix / Rock (no copyright message)",MACHINE_IMPERFECT_SOUND | 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_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mess/drivers/z100.c b/src/mame/drivers/z100.c
index cf60317f96c..016c86b4334 100644
--- a/src/mess/drivers/z100.c
+++ b/src/mame/drivers/z100.c
@@ -728,4 +728,4 @@ 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", GAME_NOT_WORKING | GAME_NO_SOUND)
+COMP( 1982, z100, 0, 0, z100, z100, z100_state, z100, "Zenith", "Z-100", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mess/drivers/z1013.c b/src/mame/drivers/z1013.c
index 955f50b6158..6c22545ed7b 100644
--- a/src/mess/drivers/z1013.c
+++ b/src/mame/drivers/z1013.c
@@ -463,6 +463,6 @@ ROM_END
/* 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)", GAME_NOT_WORKING | GAME_NO_SOUND_HW)
-COMP( 1985, z1013s60, z1013, 0, z1013k76, z1013_8x8, driver_device, 0, "VEB Robotron Electronics Riesa", "Z1013 (K7652/S6009)", GAME_NOT_WORKING | GAME_NO_SOUND_HW)
-COMP( 1985, z1013k69, z1013, 0, z1013k76, z1013, driver_device, 0, "VEB Robotron Electronics Riesa", "Z1013 (K7669)", GAME_NOT_WORKING | GAME_NO_SOUND_HW)
+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)
diff --git a/src/mess/drivers/z80dev.c b/src/mame/drivers/z80dev.c
index fa2afdb416e..aa9377a2ca1 100644
--- a/src/mess/drivers/z80dev.c
+++ b/src/mame/drivers/z80dev.c
@@ -124,4 +124,4 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 198?, z80dev, 0, 0, z80dev, z80dev, driver_device, 0, "<unknown>", "Z80 dev board", GAME_NO_SOUND_HW)
+COMP( 198?, z80dev, 0, 0, z80dev, z80dev, driver_device, 0, "<unknown>", "Z80 dev board", MACHINE_NO_SOUND_HW)
diff --git a/src/mess/drivers/z80ne.c b/src/mame/drivers/z80ne.c
index e135a03197e..1c0fcd7851f 100644
--- a/src/mess/drivers/z80ne.c
+++ b/src/mame/drivers/z80ne.c
@@ -595,7 +595,7 @@ ROM_START( z80netf )
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", GAME_NO_SOUND_HW)
-COMP( 1980, z80net, z80ne, 0, z80net, z80net, z80ne_state, z80net, "Nuova Elettronica", "Z80NE + LX.388", GAME_NO_SOUND_HW)
-COMP( 1980, z80netb, z80ne, 0, z80netb, z80net, z80ne_state, z80netb, "Nuova Elettronica", "Z80NE + LX.388 + Basic 16k", GAME_NO_SOUND_HW)
-COMP( 1980, z80netf, z80ne, 0, z80netf, z80netf, z80ne_state, z80netf, "Nuova Elettronica", "Z80NE + LX.388 + LX.390", GAME_NO_SOUND_HW)
+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/mess/drivers/z88.c b/src/mame/drivers/z88.c
index 2a057e1d2e5..4dcef312899 100644
--- a/src/mess/drivers/z88.c
+++ b/src/mame/drivers/z88.c
@@ -745,14 +745,14 @@ ROM_START(z88tr)
ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
-COMP( 1988, z88 , 0, 0, z88, z88 , driver_device, 0, "Cambridge Computers", "Z88" , GAME_NOT_WORKING)
-COMP( 1988, z88de, z88, 0, z88, z88de, driver_device, 0, "Cambridge Computers", "Z88 (German)" , GAME_NOT_WORKING)
-COMP( 1988, z88es, z88, 0, z88, z88es, driver_device, 0, "Cambridge Computers", "Z88 (Spanish)" , GAME_NOT_WORKING)
-COMP( 1988, z88fr, z88, 0, z88, z88fr, driver_device, 0, "Cambridge Computers", "Z88 (French)" , GAME_NOT_WORKING)
-COMP( 1988, z88it, z88, 0, z88, z88it, driver_device, 0, "Cambridge Computers", "Z88 (Italian)" , GAME_NOT_WORKING)
-COMP( 1988, z88se, z88, 0, z88, z88se, driver_device, 0, "Cambridge Computers", "Z88 (Swedish)" , GAME_NOT_WORKING)
-COMP( 1988, z88fi, z88, 0, z88, z88se, driver_device, 0, "Cambridge Computers", "Z88 (Finnish)" , GAME_NOT_WORKING)
-COMP( 1988, z88no, z88, 0, z88, z88no, driver_device, 0, "Cambridge Computers", "Z88 (Norwegian)", GAME_NOT_WORKING)
-COMP( 1988, z88dk, z88, 0, z88, z88no, driver_device, 0, "Cambridge Computers", "Z88 (Danish)" , GAME_NOT_WORKING)
-COMP( 1988, z88ch, z88, 0, z88, z88ch, driver_device, 0, "Cambridge Computers", "Z88 (Swiss)" , GAME_NOT_WORKING)
-COMP( 1988, z88tr, z88, 0, z88, z88tr, driver_device, 0, "Cambridge Computers", "Z88 (Turkish)" , GAME_NOT_WORKING)
+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)
diff --git a/src/mess/drivers/z9001.c b/src/mame/drivers/z9001.c
index 938abb39128..91ab13e2e03 100644
--- a/src/mess/drivers/z9001.c
+++ b/src/mame/drivers/z9001.c
@@ -309,9 +309,9 @@ 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)", GAME_NOT_WORKING )
-COMP( 1986, kc85_111, z9001, 0, z9001, z9001, driver_device, 0, "Robotron", "KC 85/1.11", GAME_NOT_WORKING )
-COMP( 1987, kc87_10, z9001, 0, z9001, z9001, driver_device, 0, "Robotron", "KC 87.10", GAME_NOT_WORKING )
-COMP( 1987, kc87_11, z9001, 0, z9001, z9001, driver_device, 0, "Robotron", "KC 87.11", GAME_NOT_WORKING )
-COMP( 1987, kc87_20, z9001, 0, z9001, z9001, driver_device, 0, "Robotron", "KC 87.20", GAME_NOT_WORKING )
-COMP( 1987, kc87_21, z9001, 0, z9001, z9001, driver_device, 0, "Robotron", "KC 87.21", GAME_NOT_WORKING )
+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 )
diff --git a/src/mame/drivers/zac2650.c b/src/mame/drivers/zac2650.c
index ee0b616a5e1..92097d8550b 100644
--- a/src/mame/drivers/zac2650.c
+++ b/src/mame/drivers/zac2650.c
@@ -317,6 +317,6 @@ ROM_START( dodgem )
ROM_END
-GAMEL(1979?,tinv2650, 0, tinvader, tinvader, driver_device, 0, ROT270, "Zaccaria / Zelco", "The Invaders", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE, layout_tinv2650 )
-GAME( 1979?,sia2650, tinv2650, tinvader, sinvader, driver_device, 0, ROT270, "bootleg (Sidam)", "Super Invader Attack (bootleg of The Invaders)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) // 1980?
-GAME( 1979, dodgem, 0, tinvader, dodgem, driver_device, 0, ROT0, "Zaccaria", "Dodgem", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/zac_1.c b/src/mame/drivers/zac_1.c
index 595e29a3257..358b63290cb 100644
--- a/src/mame/drivers/zac_1.c
+++ b/src/mame/drivers/zac_1.c
@@ -438,14 +438,14 @@ 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", GAME_MECHANICAL | GAME_NO_SOUND)
-GAME(1980, firemntn, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Fire Mountain", GAME_MECHANICAL | GAME_NO_SOUND)
-GAME(1978, futurwld, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Future World", GAME_MECHANICAL | GAME_NO_SOUND)
-GAME(1979, hotwheel, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Hot Wheels", GAME_MECHANICAL | GAME_NO_SOUND)
-GAME(1978, hod, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "House of Diamonds", GAME_MECHANICAL | GAME_NO_SOUND)
-GAME(1981, locomotp, 0, locomotp, zac_1, driver_device, 0, ROT0, "Zaccaria", "Locomotion", GAME_MECHANICAL | GAME_NO_SOUND)
-GAME(1979, strapids, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Shooting the Rapids", GAME_MECHANICAL | GAME_NO_SOUND)
-GAME(1980, sshtlzac, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Space Shuttle (Zaccaria)", GAME_MECHANICAL | GAME_NO_SOUND)
-GAME(1980, stargod, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Star God", GAME_MECHANICAL | GAME_NO_SOUND)
-GAME(1980, stargoda, stargod, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Star God (alternate sound)", GAME_MECHANICAL | GAME_NO_SOUND)
-GAME(1978, wsports, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Winter Sports", GAME_MECHANICAL | GAME_NO_SOUND)
+GAME(1981, ewf, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Earth Wind Fire", MACHINE_MECHANICAL | MACHINE_NO_SOUND)
+GAME(1980, firemntn, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Fire Mountain", MACHINE_MECHANICAL | MACHINE_NO_SOUND)
+GAME(1978, futurwld, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Future World", MACHINE_MECHANICAL | MACHINE_NO_SOUND)
+GAME(1979, hotwheel, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Hot Wheels", MACHINE_MECHANICAL | MACHINE_NO_SOUND)
+GAME(1978, hod, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "House of Diamonds", MACHINE_MECHANICAL | MACHINE_NO_SOUND)
+GAME(1981, locomotp, 0, locomotp, zac_1, driver_device, 0, ROT0, "Zaccaria", "Locomotion", MACHINE_MECHANICAL | MACHINE_NO_SOUND)
+GAME(1979, strapids, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Shooting the Rapids", MACHINE_MECHANICAL | MACHINE_NO_SOUND)
+GAME(1980, sshtlzac, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Space Shuttle (Zaccaria)", MACHINE_MECHANICAL | MACHINE_NO_SOUND)
+GAME(1980, stargod, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Star God", MACHINE_MECHANICAL | MACHINE_NO_SOUND)
+GAME(1980, stargoda, stargod, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Star God (alternate sound)", MACHINE_MECHANICAL | MACHINE_NO_SOUND)
+GAME(1978, wsports, 0, zac_1, zac_1, driver_device, 0, ROT0, "Zaccaria", "Winter Sports", MACHINE_MECHANICAL | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/zac_2.c b/src/mame/drivers/zac_2.c
index 021dd8fe890..76ddc1ea445 100644
--- a/src/mame/drivers/zac_2.c
+++ b/src/mame/drivers/zac_2.c
@@ -905,41 +905,41 @@ 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)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1985, clown, 0, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Clown", GAME_IS_SKELETON_MECHANICAL)
-GAME(1984, dvlrider, 0, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Devil Riders", GAME_IS_SKELETON_MECHANICAL)
-GAME(1984, dvlrideri, dvlrider, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Devil Riders (Italian speech)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1984, dvlriderg, dvlrider, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Devil Riders (German speech)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1983, farfalla, 0, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Farfalla", GAME_IS_SKELETON_MECHANICAL)
-GAME(1983, farfallai, farfalla, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Farfalla (Italian speech)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1983, farfallag, farfalla, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Farfalla (German speech)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1984, mcastle, 0, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Magic Castle", GAME_IS_SKELETON_MECHANICAL)
-GAME(1984, mcastlei, mcastle, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Magic Castle (Italian speech)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1984, mcastleg, mcastle, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Magic Castle (German speech)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1984, mcastlef, mcastle, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Magic Castle (French speech)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1986, mexico, 0, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Mexico 86 (German speech)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1987, nstrphnx, 0, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "New Star's Phoenix (Italian speech)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1983, pinchamp, 0, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Pinball Champ", GAME_IS_SKELETON_MECHANICAL)
-GAME(1983, pinchampg, pinchamp, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Pinball Champ (German speech)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1983, pinchampi, pinchamp, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Pinball Champ (Italian speech)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1983, pinchamp7, pinchamp, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Pinball Champ (7 digits)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1983, pinchamp7g, pinchamp, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Pinball Champ (7 digits German speech)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1983, pinchamp7i, pinchamp, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Pinball Champ (7 digits Italian speech)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1985, poolcham, 0, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Pool Champion", GAME_IS_SKELETON_MECHANICAL)
-GAME(1985, poolchami, poolcham, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Pool Champion (Italian speech)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1985, poolchama, poolcham, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Pool Champion (alternate sound)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1985, robot, 0, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Robot (Zaccaria)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1985, roboti, robot, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Robot (Zaccaria, Italian speech)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1985, robotg, robot, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Robot (Zaccaria, German speech)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1985, robotf, robot, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Robot (Zaccaria, French speech)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1987, scram_tp, 0, zac_2, zac_2, driver_device, 0, ROT0, "Tecnoplay", "Scramble (Pinball)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1982, socrking, 0, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Soccer Kings", GAME_IS_SKELETON_MECHANICAL)
-GAME(1982, socrkingi, socrking, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Soccer Kings (Italian speech)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1982, socrkingg, socrking, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Soccer Kings (German speech)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1987, spookyp, 0, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Spooky", GAME_IS_SKELETON_MECHANICAL)
-GAME(1987, spookyi, spookyp, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Spooky (Italian speech)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1987, strsphnx, 0, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Star's Phoenix (Italian speech)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1983, tmachzac, 0, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Time Machine (Zaccaria)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1983, tmachzacg, tmachzac, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Time Machine (Zaccaria, German speech)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1983, tmachzacf, tmachzac, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Time Machine (Zaccaria, French speech)", GAME_IS_SKELETON_MECHANICAL)
-GAME(1986, zankor, 0, zac_2, zac_2, driver_device, 0, ROT0, "Zaccaria", "Zankor (Italian speech)", GAME_IS_SKELETON_MECHANICAL)
+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(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, 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(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)
diff --git a/src/mame/drivers/zac_proto.c b/src/mame/drivers/zac_proto.c
index 3eefaabb33b..a9a7bf1e006 100644
--- a/src/mame/drivers/zac_proto.c
+++ b/src/mame/drivers/zac_proto.c
@@ -278,6 +278,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", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
-GAME(1979, spacecty, 0, zac_proto, zac_proto, driver_device, 0, ROT0, "Zaccaria", "Space City", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
-GAME(1978, strike, 0, zac_proto, zac_proto, driver_device, 0, ROT0, "Zaccaria", "Strike", GAME_MECHANICAL | GAME_IMPERFECT_SOUND )
+GAME(1978, skijump, 0, zac_proto, zac_proto, driver_device, 0, ROT0, "Zaccaria", "Ski Jump", MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND )
+GAME(1979, spacecty, 0, zac_proto, zac_proto, driver_device, 0, ROT0, "Zaccaria", "Space City", MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND )
+GAME(1978, strike, 0, zac_proto, zac_proto, driver_device, 0, ROT0, "Zaccaria", "Strike", MACHINE_MECHANICAL | MACHINE_IMPERFECT_SOUND )
diff --git a/src/mame/drivers/zaccaria.c b/src/mame/drivers/zaccaria.c
index 37a60df8b98..fbb47193d40 100644
--- a/src/mame/drivers/zaccaria.c
+++ b/src/mame/drivers/zaccaria.c
@@ -506,16 +506,16 @@ static MACHINE_CONFIG_START( zaccaria, zaccaria_state )
MCFG_CPU_ADD("maincpu", Z80,XTAL_18_432MHz/6) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", zaccaria_state, vblank_irq)
- MCFG_QUANTUM_TIME(attotime::from_hz(1000000))
+// MCFG_QUANTUM_TIME(attotime::from_hz(1000000))
MCFG_CPU_ADD("audiocpu", M6802,XTAL_3_579545MHz) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(sound_map_1)
MCFG_CPU_PERIODIC_INT_DRIVER(zaccaria_state, cb1_toggle, (double)XTAL_3_579545MHz/4096)
- MCFG_QUANTUM_TIME(attotime::from_hz(1000000))
+// MCFG_QUANTUM_TIME(attotime::from_hz(1000000))
MCFG_CPU_ADD("audio2", M6802,XTAL_3_579545MHz) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(sound_map_2)
- MCFG_QUANTUM_TIME(attotime::from_hz(1000000))
+// MCFG_QUANTUM_TIME(attotime::from_hz(1000000))
MCFG_DEVICE_ADD("ppi8255", I8255A, 0)
MCFG_I8255_IN_PORTA_CB(IOPORT("P1"))
@@ -686,6 +686,12 @@ ROM_START( jackrabt2 )
ROM_REGION( 0x0400, "proms", 0 )
ROM_LOAD( "jr-ic9g", 0x0000, 0x0200, CRC(85577107) SHA1(76575fa68b66130b18dfe7374d1a03740963cc73) )
ROM_LOAD( "jr-ic9f", 0x0200, 0x0200, CRC(085914d1) SHA1(3d6f9318f5a9f08ce89e4184e3efb9881f671fa7) )
+
+ ROM_REGION( 0x0600, "plds", 0 )
+ ROM_LOAD( "pal16l8.6j", 0x0000, 0x0104, CRC(a88e52d6) SHA1(32efecb91843d5d1bdace86cbcc94ebacf1b9389) )
+ ROM_LOAD( "pal16l8.6k", 0x0200, 0x0104, NO_DUMP )
+ ROM_LOAD( "82s100.8c", 0x0400, 0x00f5, CRC(70ddfa6d) SHA1(904347cc63e88413c393f14b5f1260a57ab72677) )
+ ROM_LOAD( "82s100.8n", 0x0500, 0x00f5, CRC(e00625ee) SHA1(88bbd020be67355dc0eb58b79f7deb77cbe505bb) )
ROM_END
ROM_START( jackrabts )
@@ -725,7 +731,7 @@ ROM_END
-GAME( 1983, monymony, 0, zaccaria, monymony, driver_device, 0, ROT90, "Zaccaria", "Money Money", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1984, jackrabt, 0, zaccaria, jackrabt, driver_device, 0, ROT90, "Zaccaria", "Jack Rabbit (set 1)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1984, jackrabt2, jackrabt, zaccaria, jackrabt, driver_device, 0, ROT90, "Zaccaria", "Jack Rabbit (set 2)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1984, jackrabts, jackrabt, zaccaria, jackrabt, driver_device, 0, ROT90, "Zaccaria", "Jack Rabbit (special)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/zapcomputer.c b/src/mame/drivers/zapcomputer.c
new file mode 100644
index 00000000000..bc5440de7ae
--- /dev/null
+++ b/src/mame/drivers/zapcomputer.c
@@ -0,0 +1,175 @@
+// license:GPL2+
+// copyright-holders:FelipeSanches
+/*
+ ZAP - Z80 Applications Processor
+
+ driver by: Felipe Correa da Silva Sanches <juca@members.fsf.org>
+
+ Based on the technical descriptions and
+ assembly listings of the book:
+
+ "Build Your Own Z80 Microcomputer"
+ by Steve Ciarcia (1981)
+ published by BYTE/McGRAW-HILL
+
+ Basic usage instructions:
+ SHIFT + 0: view and edit memory values
+ SHIFT + 1: view and edit register values
+ SHIFT + 2: execution mode
+
+ For more info, please check chapter 6 "Monitor software" in the book
+ and/or the assembly listings of the ZAP monitor software
+ avaliable at appendix D.
+
+ Currently missing features in this driver:
+ * hookup RS232 support
+ * maybe also support video terminal described in chapter 9
+*/
+
+
+#include "emu.h"
+#include "cpu/z80/z80.h"
+#include "zapcomputer.lh"
+
+class zapcomp_state : public driver_device
+{
+public:
+ zapcomp_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ { }
+
+ DECLARE_READ8_MEMBER(keyboard_r);
+ DECLARE_WRITE8_MEMBER(display_7seg_w);
+
+private:
+ UINT8 decode7seg(UINT8 data);
+ virtual void machine_start();
+ required_device<cpu_device> m_maincpu;
+};
+
+UINT8 zapcomp_state::decode7seg(UINT8 data)
+{
+ //These are bit patterns representing the conversion of 4bit values
+ //into the status of the segments of the 7 segment displays
+ //controlled by a 82S23 PROM
+
+ UINT8 patterns[16] = {
+ 0x77, 0x41, 0x6e, 0x6b,
+ 0x59, 0x3b, 0x3f, 0x61,
+ 0x7f, 0x79, 0x7d, 0x1f,
+ 0x36, 0x4f, 0x3e, 0x3c
+ };
+
+ // Bit order for the FAIRCHILD FND-70
+ // 7-SEGMENT LCD: . g f e d c b a
+ return BITSWAP8(patterns[data & 0x0F], 7, 3, 4, 2, 1, 0, 6, 5);
+}
+
+WRITE8_MEMBER( zapcomp_state::display_7seg_w )
+{
+ switch (offset){
+ case 0: //Port 0x05 : address HI
+ output_set_digit_value(0, decode7seg(data >> 4));
+ output_set_digit_value(1, decode7seg(data));
+ break;
+ case 1: //Port 0x06 : address LOW
+ output_set_digit_value(2, decode7seg(data >> 4));
+ output_set_digit_value(3, decode7seg(data));
+ break;
+ case 2: //Port 0x07 : data
+ output_set_digit_value(4, decode7seg(data >> 4));
+ output_set_digit_value(5, decode7seg(data));
+ break;
+ default:
+ break;
+ }
+}
+
+READ8_MEMBER( zapcomp_state::keyboard_r )
+{
+ UINT8 retval = 0x00;
+ UINT8 special = ioport("X1")->read();
+ UINT16 hex_keys = ioport("X0")->read();
+
+ if BIT(special, 2) /* "SHIFT" key is pressed */
+ retval |= 0x40; /* turn on the SHIFT bit but DO NOT turn on the strobe bit */
+
+ if BIT(special, 1) /* "NEXT" key is pressed */
+ retval |= 0xA0; /* turn on the strobe & NEXT bits */
+
+ if BIT(special, 0) /* "EXEC" key is pressed */
+ retval |= 0x90; /* turn on the strobe & EXEC bit */
+
+ for (int i=0; i<16; i++)
+ if (hex_keys & (1 << i))
+ retval |= (0x80 | i); /* provide the key index in bits 3-0
+ as well as turning on the strobe bit */
+
+ return retval;
+}
+
+static ADDRESS_MAP_START( zapcomp_mem, AS_PROGRAM, 8, zapcomp_state )
+ AM_RANGE(0x0000, 0x03ff) AM_ROM AM_REGION("roms", 0) /* system monitor */
+ AM_RANGE(0x0400, 0x07ff) AM_RAM /* mandatory 1 kilobyte bank #0 */
+ AM_RANGE(0x0800, 0x0bff) AM_RAM /* extra 1 kilobyte bank #1 (optional) */
+ AM_RANGE(0x0c00, 0x0fff) AM_RAM /* extra 1 kilobyte bank #2 (optional) */
+ AM_RANGE(0x1000, 0x13ff) AM_RAM /* extra 1 kilobyte bank #3 (optional) */
+ AM_RANGE(0x1400, 0x17ff) AM_RAM /* extra 1 kilobyte bank #4 (optional) */
+ AM_RANGE(0x1800, 0x1bff) AM_RAM /* extra 1 kilobyte bank #5 (optional) */
+ AM_RANGE(0x1c00, 0x1fff) AM_RAM /* extra 1 kilobyte bank #6 (optional) */
+ AM_RANGE(0x2000, 0x23ff) AM_RAM /* extra 1 kilobyte bank #7 (optional) */
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( zapcomp_io, AS_IO, 8, zapcomp_state )
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
+ AM_RANGE(0x00, 0x00) AM_READ(keyboard_r)
+ AM_RANGE(0x05, 0x07) AM_WRITE(display_7seg_w)
+ADDRESS_MAP_END
+
+static INPUT_PORTS_START( zapcomp )
+ PORT_START("X0")
+ PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) PORT_CHAR('0')
+ PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CHAR('1')
+ PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CHAR('2')
+ PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) PORT_CHAR('3')
+ PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) PORT_CHAR('4')
+ PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5) PORT_CHAR('5')
+ PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CHAR('6')
+ PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_7) PORT_CHAR('7')
+ PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8) PORT_CHAR('8')
+ PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9) PORT_CHAR('9')
+ PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A) PORT_CHAR('a')
+ PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_B) PORT_CHAR('b')
+ PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_C) PORT_CHAR('c')
+ PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_D) PORT_CHAR('d')
+ PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_E) PORT_CHAR('e')
+ PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F) PORT_CHAR('f')
+
+ PORT_START("X1")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("EXEC") PORT_CODE(KEYCODE_ENTER)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("NEXT") PORT_CODE(KEYCODE_RIGHT)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT)
+INPUT_PORTS_END
+
+void zapcomp_state::machine_start()
+{
+}
+
+static MACHINE_CONFIG_START( zapcomp, zapcomp_state )
+ // basic machine hardware
+ MCFG_CPU_ADD("maincpu", Z80, XTAL_2MHz)
+ MCFG_CPU_PROGRAM_MAP(zapcomp_mem)
+ MCFG_CPU_IO_MAP(zapcomp_io)
+
+ /* video hardware */
+ MCFG_DEFAULT_LAYOUT(layout_zapcomputer)
+MACHINE_CONFIG_END
+
+ROM_START( zapcomp )
+ ROM_REGION( 0x10000, "roms", 0 )
+ 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 )
diff --git a/src/mess/drivers/zaurus.c b/src/mame/drivers/zaurus.c
index d36a46c5430..0fe4724067f 100644
--- a/src/mess/drivers/zaurus.c
+++ b/src/mame/drivers/zaurus.c
@@ -1807,9 +1807,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\"", GAME_IS_SKELETON )
-COMP( 2002, zsl5600, 0, 0, zaurus, zaurus, driver_device, 0, "Sharp", "Zaurus SL-5600 / SL-B500 \"Poodle\"", GAME_IS_SKELETON )
-COMP( 2003, zslc750, 0, 0, zaurus, zaurus, driver_device, 0, "Sharp", "Zaurus SL-C750 \"Shepherd\" (Japan)", GAME_IS_SKELETON )
-COMP( 2004, zslc760, 0, 0, zaurus, zaurus, driver_device, 0, "Sharp", "Zaurus SL-C760 \"Husky\" (Japan)", GAME_IS_SKELETON )
-COMP( 200?, zslc3000, 0, 0, zaurus, zaurus, driver_device, 0, "Sharp", "Zaurus SL-C3000 \"Spitz\" (Japan)", GAME_IS_SKELETON )
-COMP( 200?, zslc1000, 0, 0, zaurus, zaurus, driver_device, 0, "Sharp", "Zaurus SL-C3000 \"Akita\" (Japan)", GAME_IS_SKELETON )
+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 )
diff --git a/src/mame/drivers/zaxxon.c b/src/mame/drivers/zaxxon.c
index fe3fba97f2f..8aaeb410837 100644
--- a/src/mame/drivers/zaxxon.c
+++ b/src/mame/drivers/zaxxon.c
@@ -1630,25 +1630,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)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1982, zaxxon2, zaxxon, zaxxon, zaxxon, driver_device, 0, ROT90, "Sega", "Zaxxon (set 2)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1982, zaxxon3, zaxxon, zaxxon, zaxxon, driver_device, 0, ROT90, "Sega", "Zaxxon (set 3)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1982, zaxxonj, zaxxon, szaxxon, zaxxon, zaxxon_state, zaxxonj, ROT90, "Sega", "Zaxxon (Japan)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1982, zaxxonb, zaxxon, szaxxon, zaxxon, zaxxon_state, zaxxonj, ROT90, "bootleg", "Jackson", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1982, zaxxon, 0, zaxxon, zaxxon, driver_device, 0, ROT90, "Sega", "Zaxxon (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1982, zaxxon2, zaxxon, zaxxon, zaxxon, driver_device, 0, ROT90, "Sega", "Zaxxon (set 2)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1982, zaxxon3, zaxxon, zaxxon, zaxxon, driver_device, 0, ROT90, "Sega", "Zaxxon (set 3)", 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, szaxxon, szaxxon, zaxxon_state, szaxxon, ROT90, "Sega", "Super Zaxxon (315-5013)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1982, szaxxon, 0, szaxxon, szaxxon, zaxxon_state, szaxxon, ROT90, "Sega", "Super Zaxxon (315-5013)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
/* standard Zaxxon hardware? but encrypted cpu */
-GAME( 1984, futspy, 0, futspy, futspy, zaxxon_state, futspy, ROT90, "Sega", "Future Spy (315-5061)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+GAME( 1984, futspy, 0, futspy, futspy, zaxxon_state, futspy, 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, razmataz, razmataz, zaxxon_state, razmataz, ROT90, "Sega", "Razzmatazz", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1983, ixion, 0, razmataz, ixion, zaxxon_state, szaxxon, ROT270, "Sega", "Ixion (prototype)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE)
+GAME( 1983, razmataz, 0, razmataz, razmataz, zaxxon_state, razmataz, ROT90, "Sega", "Razzmatazz", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
+GAME( 1983, ixion, 0, razmataz, ixion, zaxxon_state, szaxxon, 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)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1983, congoa, congo, congo, congo, driver_device, 0, ROT90, "Sega", "Congo Bongo (Rev C, 3 board stack)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
-GAME( 1983, tiptop, congo, congo, congo, driver_device, 0, ROT90, "Sega", "Tip Top (3 board stack)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mame/drivers/zerozone.c b/src/mame/drivers/zerozone.c
index 481f39ffba2..ae935149ed3 100644
--- a/src/mame/drivers/zerozone.c
+++ b/src/mame/drivers/zerozone.c
@@ -241,5 +241,5 @@ ROM_START( lvgirl94 )
ROM_END
-GAME( 1993, zerozone, 0, zerozone, zerozone, driver_device, 0, ROT0, "Comad", "Zero Zone", GAME_SUPPORTS_SAVE )
-GAME( 1994, lvgirl94, 0, zerozone, zerozone, driver_device, 0, ROT0, "Comad", "Las Vegas Girl (Girl '94)", GAME_SUPPORTS_SAVE )
+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 )
diff --git a/src/mess/drivers/zexall.c b/src/mame/drivers/zexall.c
index de961386f7f..553f65613f7 100644
--- a/src/mess/drivers/zexall.c
+++ b/src/mame/drivers/zexall.c
@@ -168,4 +168,4 @@ ROM_END
******************************************************************************/
/* 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)", GAME_NO_SOUND_HW )
+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.c b/src/mame/drivers/zn.c
index 13efb631d96..d6734c5c6df 100644
--- a/src/mame/drivers/zn.c
+++ b/src/mame/drivers/zn.c
@@ -4799,167 +4799,167 @@ ROM_END
/* A dummy driver, so that the bios can be debugged, and to serve as */
/* parent for the coh-1000c.353 file, so that we do not have to include */
/* it in every zip file */
-GAME( 1995, cpzn1, 0, coh1000c, zn, driver_device, 0, ROT0, "Capcom", "ZN1", GAME_IS_BIOS_ROOT )
-
-GAME( 1995, ts2, cpzn1, coh1000c, zn6b, driver_device, 0, ROT0, "Capcom / Takara", "Battle Arena Toshinden 2 (USA 951124)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1995, ts2a, ts2, coh1000c, zn6b, driver_device, 0, ROT0, "Capcom / Takara", "Battle Arena Toshinden 2 (USA 951124) Older", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1995, ts2j, ts2, coh1000c, zn6b, driver_device, 0, ROT0, "Capcom / Takara", "Battle Arena Toshinden 2 (Japan 951124)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, starglad, cpzn1, coh1000c, zn6b, driver_device, 0, ROT0, "Capcom", "Star Gladiator Episode I: Final Crusade (USA 960627)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, stargladj, starglad, coh1000c, zn6b, driver_device, 0, ROT0, "Capcom", "Star Gladiator Episode I: Final Crusade (Japan 960627)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, glpracr, cpzn1, glpracr, zn, driver_device, 0, ROT0, "Tecmo", "Gallop Racer (English Ver 10.17.K)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, glpracrj, glpracr, glpracr, zn, driver_device, 0, ROT0, "Tecmo", "Gallop Racer (Japanese Ver 9.01.12)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, sfex, cpzn1, coh1002c, zn6b, driver_device, 0, ROT0, "Capcom / Arika", "Street Fighter EX (Euro 961219)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, sfexu, sfex, coh1002c, zn6b, driver_device, 0, ROT0, "Capcom / Arika", "Street Fighter EX (USA 961219)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, sfexa, sfex, coh1002c, zn6b, driver_device, 0, ROT0, "Capcom / Arika", "Street Fighter EX (Asia 961219)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, sfexj, sfex, coh1002c, zn6b, driver_device, 0, ROT0, "Capcom / Arika", "Street Fighter EX (Japan 961130)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1997, sfexp, cpzn1, coh1002c, zn6b, driver_device, 0, ROT0, "Capcom / Arika", "Street Fighter EX Plus (USA 970407)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1997, sfexpu1, sfexp, coh1002c, zn6b, driver_device, 0, ROT0, "Capcom / Arika", "Street Fighter EX Plus (USA 970311)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1997, sfexpj, sfexp, coh1002c, zn6b, driver_device, 0, ROT0, "Capcom / Arika", "Street Fighter EX Plus (Japan 970407)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1997, sfexpj1, sfexp, coh1002c, zn6b, driver_device, 0, ROT0, "Capcom / Arika", "Street Fighter EX Plus (Japan 970311)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
+GAME( 1995, cpzn1, 0, coh1000c, zn, driver_device, 0, ROT0, "Capcom", "ZN1", MACHINE_IS_BIOS_ROOT )
+
+GAME( 1995, ts2, cpzn1, 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, cpzn1, 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, cpzn1, 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, cpzn1, 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, cpzn1, 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 )
/* Capcom ZN2 */
/* A dummy driver, so that the bios can be debugged, and to serve as */
/* parent for the coh-3002c.353 file, so that we do not have to include */
/* it in every zip file */
-GAME( 1997, cpzn2, 0, coh3002c, zn, driver_device, 0, ROT0, "Capcom", "ZN2", GAME_IS_BIOS_ROOT )
-
-GAME( 1997, rvschool, cpzn2, coh3002c, zn6b, driver_device, 0, ROT0, "Capcom", "Rival Schools: United By Fate (Euro 971117)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1997, rvschoolu, rvschool, coh3002c, zn6b, driver_device, 0, ROT0, "Capcom", "Rival Schools: United By Fate (USA 971117)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1997, rvschoola, rvschool, coh3002c, zn6b, driver_device, 0, ROT0, "Capcom", "Rival Schools: United By Fate (Asia 971117)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1997, jgakuen, rvschool, coh3002c, zn6b, driver_device, 0, ROT0, "Capcom", "Shiritsu Justice Gakuen: Legion of Heroes (Japan 971117)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, sfex2, cpzn2, coh3002c, zn6b, driver_device, 0, ROT0, "Capcom / Arika", "Street Fighter EX2 (USA 980526)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, sfex2a, sfex2, coh3002c, zn6b, driver_device, 0, ROT0, "Capcom / Arika", "Street Fighter EX2 (Asia 980312)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, sfex2h, sfex2, coh3002c, zn6b, driver_device, 0, ROT0, "Capcom / Arika", "Street Fighter EX2 (Hispanic 980312)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, sfex2j, sfex2, coh3002c, zn6b, driver_device, 0, ROT0, "Capcom / Arika", "Street Fighter EX2 (Japan 980312)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, plsmaswd, cpzn2, coh3002c, zn6b, driver_device, 0, ROT0, "Capcom", "Plasma Sword: Nightmare of Bilstein (USA 980316)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, plsmaswda, plsmaswd, coh3002c, zn6b, driver_device, 0, ROT0, "Capcom", "Plasma Sword: Nightmare of Bilstein (Asia 980316)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, stargld2, plsmaswd, coh3002c, zn6b, driver_device, 0, ROT0, "Capcom", "Star Gladiator 2: Nightmare of Bilstein (Japan 980316)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, tgmj, cpzn2, coh3002c, zn4w, driver_device, 0, ROT0, "Arika / Capcom", "Tetris The Grand Master (Japan 980710)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, techromn, cpzn2, coh3002c, zn6b, driver_device, 0, ROT0, "Capcom", "Tech Romancer (Euro 980914)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, techromnu, techromn, coh3002c, zn6b, driver_device, 0, ROT0, "Capcom", "Tech Romancer (USA 980914)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, kikaioh, techromn, coh3002c, zn6b, driver_device, 0, ROT0, "Capcom", "Choukou Senki Kikaioh (Japan 980914)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1999, sfex2p, cpzn2, coh3002c, zn6b, driver_device, 0, ROT0, "Capcom / Arika", "Street Fighter EX2 Plus (USA 990611)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1999, sfex2pa, sfex2p, coh3002c, zn6b, driver_device, 0, ROT0, "Capcom / Arika", "Street Fighter EX2 Plus (Asia 990611)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1999, sfex2ph, sfex2p, coh3002c, zn6b, driver_device, 0, ROT0, "Capcom / Arika", "Street Fighter EX2 Plus (Hispanic 990611)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1999, sfex2pj, sfex2p, coh3002c, zn6b, driver_device, 0, ROT0, "Capcom / Arika", "Street Fighter EX2 Plus (Japan 990611)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1999, strider2, cpzn2, coh3002c, zn, driver_device, 0, ROT0, "Capcom", "Strider 2 (USA 991213)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) // random hangs / crashes
-GAME( 1999, strider2a, strider2, coh3002c, zn, driver_device, 0, ROT0, "Capcom", "Strider 2 (Asia 991213)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
-GAME( 1999, shiryu2, strider2, coh3002c, zn, driver_device, 0, ROT0, "Capcom", "Strider Hiryu 2 (Japan 991213)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
+GAME( 1997, cpzn2, 0, coh3002c, zn, driver_device, 0, ROT0, "Capcom", "ZN2", MACHINE_IS_BIOS_ROOT )
+
+GAME( 1997, rvschool, cpzn2, 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 971117)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, sfex2, cpzn2, coh3002c, zn6b, driver_device, 0, ROT0, "Capcom / Arika", "Street Fighter EX2 (USA 980526)", 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, cpzn2, 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, cpzn2, coh3002c, zn4w, driver_device, 0, ROT0, "Arika / Capcom", "Tetris The Grand Master (Japan 980710)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, techromn, cpzn2, 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, cpzn2, 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, cpzn2, 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 )
/* Atari */
/* A dummy driver, so that the bios can be debugged, and to serve as */
/* parent for the coh-1000w.353 file, so that we do not have to include */
/* it in every zip file */
-GAME( 1996, atpsx, 0, coh1000w, zn, driver_device, 0, ROT0, "Atari", "Atari PSX", GAME_IS_BIOS_ROOT )
+GAME( 1996, atpsx, 0, coh1000w, zn, driver_device, 0, ROT0, "Atari", "Atari PSX", MACHINE_IS_BIOS_ROOT )
-GAME( 1996, primrag2, atpsx, coh1000w, primrag2, driver_device, 0, ROT0, "Atari", "Primal Rage 2 (Ver 0.36a)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
+GAME( 1996, primrag2, atpsx, coh1000w, primrag2, driver_device, 0, ROT0, "Atari", "Primal Rage 2 (Ver 0.36a)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
/* Acclaim */
/* A dummy driver, so that the bios can be debugged, and to serve as */
/* parent for the coh-1000a.353 file, so that we do not have to include */
/* it in every zip file */
-GAME( 1995, acpsx, 0, coh1000a, zn, driver_device, 0, ROT0, "Acclaim", "Acclaim PSX", GAME_IS_BIOS_ROOT )
+GAME( 1995, acpsx, 0, coh1000a, zn, driver_device, 0, ROT0, "Acclaim", "Acclaim PSX", MACHINE_IS_BIOS_ROOT )
-GAME( 1996, nbajamex, acpsx, nbajamex, zn, driver_device, 0, ROT0, "Acclaim", "NBA Jam Extreme", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, jdredd, acpsx, jdredd, jdredd, driver_device, 0, ROT0, "Acclaim", "Judge Dredd (Rev C Dec. 17 1997)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, jdreddb, jdredd, jdredd, jdredd, driver_device, 0, ROT0, "Acclaim", "Judge Dredd (Rev B Nov. 26 1997)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
+GAME( 1996, nbajamex, acpsx, nbajamex, zn, driver_device, 0, ROT0, "Acclaim", "NBA Jam Extreme", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, jdredd, acpsx, 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 )
/* Tecmo */
/* A dummy driver, so that the bios can be debugged, and to serve as */
/* parent for the coh-1002m.353 file, so that we do not have to include */
/* it in every zip file */
-GAME( 1997, tps, 0, coh1002m, zn, driver_device, 0, ROT0, "Tecmo", "TPS", GAME_IS_BIOS_ROOT )
-
-GAME( 1997, glpracr2, tps, coh1002m, zn, driver_device, 0, ROT0, "Tecmo", "Gallop Racer 2 (USA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
-GAME( 1997, glpracr2j, glpracr2, coh1002m, zn, driver_device, 0, ROT0, "Tecmo", "Gallop Racer 2 (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
-GAME( 1997, glpracr2l, glpracr2, coh1002ml, zn, driver_device, 0, ROT0, "Tecmo", "Gallop Racer 2 Link HW (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
-GAME( 1998, doapp, tps, coh1002m, zn, driver_device, 0, ROT0, "Tecmo", "Dead Or Alive ++ (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, cbaj, tps, coh1002msnd, zn, driver_device, 0, ROT0, "UEP Systems", "Cool Boarders Arcade Jam", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, shngmtkb, tps, coh1002m, zn, driver_device, 0, ROT0, "Sunsoft / Activision", "Shanghai Matekibuyuu", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1999, tondemo, tps, coh1002m, zn, driver_device, 0, ROT0, "Tecmo", "Tondemo Crisis (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1999, glpracr3, tps, coh1002m, zn, driver_device, 0, ROT0, "Tecmo", "Gallop Racer 3 (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1999, flamegun, tps, coh1002m, zn, driver_device, 0, ROT0, "Gaps Inc.", "Flame Gunner", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1999, flamegunj, flamegun, coh1002m, zn, driver_device, 0, ROT0, "Gaps Inc.", "Flame Gunner (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1999, lpadv, tps, coh1002m, zn, driver_device, 0, ROT0, "Amuse World", "Logic Pro Adventure (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 2000, tblkkuzu, tps, coh1002m, zn, driver_device, 0, ROT0, "Tamsoft / D3 Publisher", "The Block Kuzushi (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 2000, 1on1gov, tps, coh1002m, zn, driver_device, 0, ROT0, "Tecmo", "1 on 1 Government (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 2000, tecmowcm, tps, coh1002m, zn, driver_device, 0, ROT0, "Tecmo", "Tecmo World Cup Millennium (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 2001, mfjump, tps, coh1002m, zn, driver_device, 0, ROT0, "Tecmo", "Monster Farm Jump (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
+GAME( 1997, tps, 0, coh1002m, zn, driver_device, 0, ROT0, "Tecmo", "TPS", MACHINE_IS_BIOS_ROOT )
+
+GAME( 1997, glpracr2, tps, coh1002m, zn, driver_device, 0, ROT0, "Tecmo", "Gallop Racer 2 (USA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
+GAME( 1997, glpracr2j, glpracr2, coh1002m, zn, driver_device, 0, ROT0, "Tecmo", "Gallop Racer 2 (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
+GAME( 1997, glpracr2l, glpracr2, coh1002ml, zn, driver_device, 0, ROT0, "Tecmo", "Gallop Racer 2 Link HW (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
+GAME( 1998, doapp, tps, coh1002m, zn, driver_device, 0, ROT0, "Tecmo", "Dead Or Alive ++ (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, cbaj, tps, coh1002msnd, zn, driver_device, 0, ROT0, "UEP Systems", "Cool Boarders Arcade Jam", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, shngmtkb, tps, coh1002m, zn, driver_device, 0, ROT0, "Sunsoft / Activision", "Shanghai Matekibuyuu", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1999, tondemo, tps, coh1002m, zn, driver_device, 0, ROT0, "Tecmo", "Tondemo Crisis (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1999, glpracr3, tps, coh1002m, zn, driver_device, 0, ROT0, "Tecmo", "Gallop Racer 3 (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1999, flamegun, tps, 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, tps, coh1002m, zn, driver_device, 0, ROT0, "Amuse World", "Logic Pro Adventure (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 2000, tblkkuzu, tps, coh1002m, zn, driver_device, 0, ROT0, "Tamsoft / D3 Publisher", "The Block Kuzushi (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 2000, 1on1gov, tps, coh1002m, zn, driver_device, 0, ROT0, "Tecmo", "1 on 1 Government (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 2000, tecmowcm, tps, coh1002m, zn, driver_device, 0, ROT0, "Tecmo", "Tecmo World Cup Millennium (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 2001, mfjump, tps, coh1002m, zn, driver_device, 0, ROT0, "Tecmo", "Monster Farm Jump (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
/* Video System */
/* A dummy driver, so that the bios can be debugged, and to serve as */
/* parent for the coh-1002v.353 file, so that we do not have to include */
/* it in every zip file */
-GAME( 1996, vspsx, 0, coh1002v, zn, driver_device, 0, ROT0, "Video System Co.", "Video System PSX", GAME_IS_BIOS_ROOT )
+GAME( 1996, vspsx, 0, coh1002v, zn, driver_device, 0, ROT0, "Video System Co.", "Video System PSX", MACHINE_IS_BIOS_ROOT )
-GAME( 1996, aerofgts, vspsx, coh1002v, zn, driver_device, 0, ROT270, "Video System Co.", "Aero Fighters Special (Taiwan)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, sncwgltd, aerofgts, coh1002v, zn, driver_device, 0, ROT270, "Video System Co.", "Sonic Wings Limited (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
+GAME( 1996, aerofgts, vspsx, coh1002v, zn, driver_device, 0, ROT270, "Video System Co.", "Aero Fighters Special (Taiwan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, sncwgltd, aerofgts, coh1002v, zn, driver_device, 0, ROT270, "Video System Co.", "Sonic Wings Limited (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
/* Taito */
/* A dummy driver, so that the bios can be debugged, and to serve as */
/* parent for the coh-1000t.353 file, so that we do not have to include */
/* it in every zip file */
-GAME( 1995, taitofx1, 0, coh1000ta, zn, driver_device, 0, ROT0, "Taito", "Taito FX1", GAME_IS_BIOS_ROOT )
-
-GAME( 1995, sfchamp, taitofx1, coh1000ta, zn, driver_device, 0, ROT0, "Taito", "Super Football Champ (Ver 2.5O)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1995, sfchampo, sfchamp, coh1000ta, zn, driver_device, 0, ROT0, "Taito", "Super Football Champ (Ver 2.4O)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1995, sfchampu, sfchamp, coh1000ta, zn, driver_device, 0, ROT0, "Taito", "Super Football Champ (Ver 2.4A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1995, sfchampj, sfchamp, coh1000ta, zn, driver_device, 0, ROT0, "Taito", "Super Football Champ (Ver 2.4J)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1995, psyforce, taitofx1, coh1000ta, zn, driver_device, 0, ROT0, "Taito", "Psychic Force (Ver 2.4O)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1995, psyforcej, psyforce, coh1000ta, zn, driver_device, 0, ROT0, "Taito", "Psychic Force (Ver 2.4J)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1995, psyforcex, psyforce, coh1000ta, zn, driver_device, 0, ROT0, "Taito", "Psychic Force EX (Ver 2.0J)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, mgcldate, mgcldtex, coh1000ta, zn, driver_device, 0, ROT0, "Taito", "Magical Date / Magical Date - dokidoki kokuhaku daisakusen (Ver 2.02J)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1997, mgcldtex, taitofx1, coh1000ta, zn, driver_device, 0, ROT0, "Taito", "Magical Date EX / Magical Date - sotsugyou kokuhaku daisakusen (Ver 2.01J)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-
-GAME( 1996, raystorm, taitofx1, coh1000tb, zn, zn_state, coh1000tb, ROT0, "Taito", "Ray Storm (Ver 2.06A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, raystormo, raystorm, coh1000tb, zn, zn_state, coh1000tb, ROT0, "Taito", "Ray Storm (Ver 2.05O)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, raystormu, raystorm, coh1000tb, zn, zn_state, coh1000tb, ROT0, "Taito", "Ray Storm (Ver 2.05A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, raystormj, raystorm, coh1000tb, zn, zn_state, coh1000tb, ROT0, "Taito", "Ray Storm (Ver 2.05J)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, ftimpact, ftimpcta, coh1000tb, zn, zn_state, coh1000tb, ROT0, "Taito", "Fighters' Impact (Ver 2.02O)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, ftimpactu, ftimpcta, coh1000tb, zn, zn_state, coh1000tb, ROT0, "Taito", "Fighters' Impact (Ver 2.02A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1996, ftimpactj, ftimpcta, coh1000tb, zn, zn_state, coh1000tb, ROT0, "Taito", "Fighters' Impact (Ver 2.02J)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1997, ftimpcta, taitofx1, coh1000tb, zn, zn_state, coh1000tb, ROT0, "Taito", "Fighters' Impact A (Ver 2.00J)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1997, gdarius, gdarius2, coh1002tb, zn, zn_state, coh1000tb, ROT0, "Taito", "G-Darius (Ver 2.01J)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1997, gdariusb, gdarius2, coh1002tb, zn, zn_state, coh1000tb, ROT0, "Taito", "G-Darius (Ver 2.02A)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1997, gdarius2, taitofx1, coh1002tb, zn, zn_state, coh1000tb, ROT0, "Taito", "G-Darius Ver.2 (Ver 2.03J)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
+GAME( 1995, taitofx1, 0, coh1000ta, zn, driver_device, 0, ROT0, "Taito", "Taito FX1", MACHINE_IS_BIOS_ROOT )
+
+GAME( 1995, sfchamp, taitofx1, coh1000ta, zn, driver_device, 0, ROT0, "Taito", "Super Football Champ (Ver 2.5O)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1995, sfchampo, sfchamp, coh1000ta, zn, driver_device, 0, ROT0, "Taito", "Super Football Champ (Ver 2.4O)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1995, sfchampu, sfchamp, coh1000ta, zn, driver_device, 0, ROT0, "Taito", "Super Football Champ (Ver 2.4A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1995, sfchampj, sfchamp, coh1000ta, zn, driver_device, 0, ROT0, "Taito", "Super Football Champ (Ver 2.4J)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1995, psyforce, taitofx1, coh1000ta, zn, driver_device, 0, ROT0, "Taito", "Psychic Force (Ver 2.4O)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1995, psyforcej, psyforce, coh1000ta, zn, driver_device, 0, ROT0, "Taito", "Psychic Force (Ver 2.4J)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1995, psyforcex, psyforce, coh1000ta, zn, driver_device, 0, ROT0, "Taito", "Psychic Force EX (Ver 2.0J)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, mgcldate, mgcldtex, coh1000ta, zn, driver_device, 0, ROT0, "Taito", "Magical Date / Magical Date - dokidoki kokuhaku daisakusen (Ver 2.02J)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1997, mgcldtex, taitofx1, coh1000ta, zn, driver_device, 0, ROT0, "Taito", "Magical Date EX / Magical Date - sotsugyou kokuhaku daisakusen (Ver 2.01J)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+
+GAME( 1996, raystorm, taitofx1, coh1000tb, zn, zn_state, coh1000tb, ROT0, "Taito", "Ray Storm (Ver 2.06A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, raystormo, raystorm, coh1000tb, zn, zn_state, coh1000tb, ROT0, "Taito", "Ray Storm (Ver 2.05O)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, raystormu, raystorm, coh1000tb, zn, zn_state, coh1000tb, ROT0, "Taito", "Ray Storm (Ver 2.05A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, raystormj, raystorm, coh1000tb, zn, zn_state, coh1000tb, ROT0, "Taito", "Ray Storm (Ver 2.05J)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, ftimpact, ftimpcta, coh1000tb, zn, zn_state, coh1000tb, ROT0, "Taito", "Fighters' Impact (Ver 2.02O)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, ftimpactu, ftimpcta, coh1000tb, zn, zn_state, coh1000tb, ROT0, "Taito", "Fighters' Impact (Ver 2.02A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, ftimpactj, ftimpcta, coh1000tb, zn, zn_state, coh1000tb, ROT0, "Taito", "Fighters' Impact (Ver 2.02J)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1997, ftimpcta, taitofx1, coh1000tb, zn, zn_state, coh1000tb, ROT0, "Taito", "Fighters' Impact A (Ver 2.00J)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1997, gdarius, gdarius2, coh1002tb, zn, zn_state, coh1000tb, ROT0, "Taito", "G-Darius (Ver 2.01J)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1997, gdariusb, gdarius2, coh1002tb, zn, zn_state, coh1000tb, ROT0, "Taito", "G-Darius (Ver 2.02A)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1997, gdarius2, taitofx1, coh1002tb, zn, zn_state, coh1000tb, ROT0, "Taito", "G-Darius Ver.2 (Ver 2.03J)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
/* Eighting / Raizing */
/* A dummy driver, so that the bios can be debugged, and to serve as */
/* parent for the coh-1002e.353 file, so that we do not have to include */
/* it in every zip file */
-GAME( 1997, psarc95, 0, coh1002e, zn, driver_device, 0, ROT0, "Eighting / Raizing", "PS Arcade 95", GAME_IS_BIOS_ROOT )
+GAME( 1997, psarc95, 0, coh1002e, zn, driver_device, 0, ROT0, "Eighting / Raizing", "PS Arcade 95", MACHINE_IS_BIOS_ROOT )
-GAME( 1997, beastrzr, psarc95, coh1002e, zn, driver_device, 0, ROT0, "Eighting / Raizing", "Beastorizer (USA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1997, bldyroar, beastrzr, coh1002e, zn, driver_device, 0, ROT0, "Eighting / Raizing", "Bloody Roar (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1997, beastrzrb, beastrzr, coh1002e, zn, driver_device, 0, ROT0, "bootleg", "Beastorizer (USA bootleg)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
+GAME( 1997, beastrzr, psarc95, coh1002e, zn, driver_device, 0, ROT0, "Eighting / Raizing", "Beastorizer (USA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1997, bldyroar, beastrzr, coh1002e, zn, driver_device, 0, ROT0, "Eighting / Raizing", "Bloody Roar (Japan)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1997, beastrzrb, beastrzr, coh1002e, zn, driver_device, 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, psarc95, coh1002e, zn6b, driver_device, 0, ROT0, "Eighting / Raizing", "Bloody Roar 2 (World)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, bldyror2u, bldyror2, coh1002e, zn6b, driver_device, 0, ROT0, "Eighting / Raizing", "Bloody Roar 2 (USA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, bldyror2a, bldyror2, coh1002e, zn6b, driver_device, 0, ROT0, "Eighting / Raizing", "Bloody Roar 2 (Asia)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 1998, bldyror2j, bldyror2, coh1002e, zn6b, driver_device, 0, ROT0, "Eighting / Raizing", "Bloody Roar 2 (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
+GAME( 1998, bldyror2, psarc95, coh1002e, zn6b, driver_device, 0, ROT0, "Eighting / Raizing", "Bloody Roar 2 (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, bldyror2u, bldyror2, coh1002e, zn6b, driver_device, 0, ROT0, "Eighting / Raizing", "Bloody Roar 2 (USA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, bldyror2a, bldyror2, coh1002e, zn6b, driver_device, 0, ROT0, "Eighting / Raizing", "Bloody Roar 2 (Asia)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, bldyror2j, bldyror2, coh1002e, zn6b, driver_device, 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, tps, coh1002e, zn, driver_device, 0, ROT270, "Eighting / Raizing", "Brave Blade (World)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 2000, brvbladeu, brvblade, coh1002e, zn, driver_device, 0, ROT270, "Eighting / Raizing", "Brave Blade (USA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 2000, brvbladea, brvblade, coh1002e, zn, driver_device, 0, ROT270, "Eighting / Raizing", "Brave Blade (Asia)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
-GAME( 2000, brvbladej, brvblade, coh1002e, zn, driver_device, 0, ROT270, "Eighting / Raizing", "Brave Blade (Japan)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
+GAME( 2000, brvblade, tps, coh1002e, zn, driver_device, 0, ROT270, "Eighting / Raizing", "Brave Blade (World)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 2000, brvbladeu, brvblade, coh1002e, zn, driver_device, 0, ROT270, "Eighting / Raizing", "Brave Blade (USA)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 2000, brvbladea, brvblade, coh1002e, zn, driver_device, 0, ROT270, "Eighting / Raizing", "Brave Blade (Asia)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 2000, brvbladej, brvblade, coh1002e, zn, driver_device, 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, psarc95, bam2, zn, driver_device, 0, ROT0, "Metro / Enix / Namco", "Bust a Move 2 (Japanese ROM ver. 1999/07/17 10:00:00)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING )
+GAME( 1999, bam2, psarc95, bam2, zn, driver_device, 0, ROT0, "Metro / Enix / Namco", "Bust a Move 2 (Japanese ROM ver. 1999/07/17 10:00:00)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING )
/* Atlus */
/* A dummy driver, so that the bios can be debugged, and to serve as */
/* parent for the coh-1002l.353 file, so that we do not have to include */
/* it in every zip file */
-GAME( 1996, atluspsx, 0, coh1001l, zn, driver_device, 0, ROT0, "Atlus", "Atlus PSX", GAME_IS_BIOS_ROOT )
+GAME( 1996, atluspsx, 0, coh1001l, zn, driver_device, 0, ROT0, "Atlus", "Atlus PSX", MACHINE_IS_BIOS_ROOT )
-GAME( 1996, hvnsgate, atluspsx, coh1001l, zn, driver_device, 0, ROT0, "Racdym / Atlus", "Heaven's Gate", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
+GAME( 1996, hvnsgate, atluspsx, coh1001l, zn, driver_device, 0, ROT0, "Racdym / Atlus", "Heaven's Gate", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
diff --git a/src/mame/drivers/zodiack.c b/src/mame/drivers/zodiack.c
index f4c30deb252..2e1c0737769 100644
--- a/src/mame/drivers/zodiack.c
+++ b/src/mame/drivers/zodiack.c
@@ -707,8 +707,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", GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE ) /* bullet color needs to be verified */
-GAME( 1983, dogfight, 0, zodiack, dogfight, zodiack_state, zodiack, ROT270, "Orca / Thunderbolt", "Dog Fight (Thunderbolt)", GAME_IMPERFECT_COLORS | GAME_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?)", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE ) /* license copyright taken from ROM string at $0b5c */
-GAME( 1981, percuss, 0, zodiack, percuss, zodiack_state, percuss, ROT270, "Orca", "The Percussor", GAME_SUPPORTS_SAVE )
-GAME( 1982, bounty, 0, zodiack, bounty, zodiack_state, percuss, ROT180, "Orca", "The Bounty", GAME_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/mess/drivers/zorba.c b/src/mame/drivers/zorba.c
index be61e42f06e..2b0a9aed58d 100644
--- a/src/mess/drivers/zorba.c
+++ b/src/mame/drivers/zorba.c
@@ -403,9 +403,10 @@ static MACHINE_CONFIG_START( zorba, zorba_state )
MCFG_FD1793_ADD("fdc", XTAL_24MHz / 24)
MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(zorba_state, fdc_intrq_w))
MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(zorba_state, fdc_drq_w))
- //MCFG_WD_FDC_FORCE_READY
MCFG_FLOPPY_DRIVE_ADD("fdc:0", zorba_floppies, "525dd", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", zorba_floppies, "525dd", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
/* Keyboard */
MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0)
@@ -428,4 +429,4 @@ ROM_START( zorba )
ROM_LOAD( "74ls288.u77", 0x0040, 0x0020, CRC(946e03b0) SHA1(24240bdd7bdf507a5b51628fb36ad1266fc53a28) ) // suspected bad dump
ROM_END
-COMP( 1982, zorba, 0, 0, zorba, zorba, zorba_state, zorba, "Telcon Industries", "Zorba", GAME_NOT_WORKING )
+COMP( 1982, zorba, 0, 0, zorba, zorba, zorba_state, zorba, "Telcon Industries", "Zorba", MACHINE_NOT_WORKING )
diff --git a/src/mame/drivers/zr107.c b/src/mame/drivers/zr107.c
index ee9fffda9b6..38602795197 100644
--- a/src/mame/drivers/zr107.c
+++ b/src/mame/drivers/zr107.c
@@ -1162,12 +1162,12 @@ ROM_END
/*****************************************************************************/
-GAME( 1995, midnrun, 0, zr107, midnrun, zr107_state, zr107, ROT0, "Konami", "Midnight Run: Road Fighters 2 (EAA, Euro v1.11)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1995, midnruna, midnrun, zr107, midnrun, zr107_state, zr107, ROT0, "Konami", "Midnight Run: Road Fighters 2 (AAA, Asia v1.10)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, windheat, 0, zr107, windheat, zr107_state, zr107, ROT0, "Konami", "Winding Heat (EAA, Euro v2.11)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, windheatu,windheat, zr107, windheat, zr107_state, zr107, ROT0, "Konami", "Winding Heat (UBC, USA v2.22)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, windheatj,windheat, zr107, windheat, zr107_state, zr107, ROT0, "Konami", "Winding Heat (JAA, Japan v2.11)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, windheata,windheat, zr107, windheat, zr107_state, zr107, ROT0, "Konami", "Winding Heat (AAA, Asia v2.11)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, jetwave, 0, jetwave, jetwave, zr107_state, jetwave, ROT0, "Konami", "Jet Wave (EAB, Euro v1.04)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, waveshrk, jetwave, jetwave, jetwave, zr107_state, jetwave, ROT0, "Konami", "Wave Shark (UAB, USA v1.04)", GAME_IMPERFECT_GRAPHICS )
-GAME( 1996, jetwavej, jetwave, jetwave, jetwave, zr107_state, jetwave, ROT0, "Konami", "Jet Wave (JAB, Japan v1.04)", GAME_IMPERFECT_GRAPHICS )
+GAME( 1995, midnrun, 0, zr107, midnrun, zr107_state, zr107, ROT0, "Konami", "Midnight Run: Road Fighters 2 (EAA, Euro v1.11)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1995, midnruna, midnrun, zr107, midnrun, zr107_state, zr107, ROT0, "Konami", "Midnight Run: Road Fighters 2 (AAA, Asia v1.10)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1996, windheat, 0, zr107, windheat, zr107_state, zr107, ROT0, "Konami", "Winding Heat (EAA, Euro v2.11)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1996, windheatu,windheat, zr107, windheat, zr107_state, zr107, ROT0, "Konami", "Winding Heat (UBC, USA v2.22)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1996, windheatj,windheat, zr107, windheat, zr107_state, zr107, ROT0, "Konami", "Winding Heat (JAA, Japan v2.11)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1996, windheata,windheat, zr107, windheat, zr107_state, zr107, ROT0, "Konami", "Winding Heat (AAA, Asia v2.11)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1996, jetwave, 0, jetwave, jetwave, zr107_state, jetwave, ROT0, "Konami", "Jet Wave (EAB, Euro v1.04)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1996, waveshrk, jetwave, jetwave, jetwave, zr107_state, jetwave, ROT0, "Konami", "Wave Shark (UAB, USA v1.04)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1996, jetwavej, jetwave, jetwave, jetwave, zr107_state, jetwave, ROT0, "Konami", "Jet Wave (JAB, Japan v1.04)", MACHINE_IMPERFECT_GRAPHICS )
diff --git a/src/mess/drivers/zrt80.c b/src/mame/drivers/zrt80.c
index fa192a2050a..fa192a2050a 100644
--- a/src/mess/drivers/zrt80.c
+++ b/src/mame/drivers/zrt80.c
diff --git a/src/mess/drivers/zsbc3.c b/src/mame/drivers/zsbc3.c
index ffff88472bc..65efc05856b 100644
--- a/src/mess/drivers/zsbc3.c
+++ b/src/mame/drivers/zsbc3.c
@@ -124,4 +124,4 @@ 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", GAME_NO_SOUND_HW)
+COMP( 1980, zsbc3, 0, 0, zsbc3, zsbc3, driver_device, 0, "Digital Microsystems", "ZSBC-3", MACHINE_NO_SOUND_HW)
diff --git a/src/mess/drivers/zx.c b/src/mame/drivers/zx.c
index 0cd8108c615..467d515aacb 100644
--- a/src/mess/drivers/zx.c
+++ b/src/mame/drivers/zx.c
@@ -9,7 +9,7 @@
Fixes and additions by Krzysztof Strzecha:
07.06.2004 Tape loading added. Some cleanups of debug code.
Fixed stupid bug in timings (vblank duration).
- GAME_NOT_WORKING flag removed.
+ MACHINE_NOT_WORKING flag removed.
29.05.2004 CPU clock, number of scanlines, vblank duration corrected.
Some cleanups. Two non-working TESTDRIVERS added.
14.05.2004 Finally fixed and readded.
@@ -541,4 +541,4 @@ COMP( 1983, ringo470, zx81, 0, ts1000, zx81, zx_state, zx,
COMP( 1984, pc8300, zx81, 0, pc8300, pc8300, zx_state, zx, "Your Computer", "PC8300", 0 )
COMP( 1983, pow3000, zx81, 0, pow3000, pow3000, zx_state, zx, "Creon Enterprises", "Power 3000", 0 )
COMP( 1982, lambda, zx81, 0, pow3000, pow3000, zx_state, zx, "Lambda Electronics Ltd", "Lambda 8300", 0 )
-COMP( 1997, zx97, zx81, 0, zx81, zx81, zx_state, zx, "Wilf Rigter", "ZX97", GAME_NOT_WORKING | GAME_UNOFFICIAL )
+COMP( 1997, zx97, zx81, 0, zx81, zx81, zx_state, zx, "Wilf Rigter", "ZX97", MACHINE_NOT_WORKING | MACHINE_UNOFFICIAL )
diff --git a/src/mame/etc/template_driver.c b/src/mame/etc/template_driver.c
index 40d40704c9e..168bfc6c837 100644
--- a/src/mame/etc/template_driver.c
+++ b/src/mame/etc/template_driver.c
@@ -190,4 +190,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, "<template_manufacturer>", "<template_machinename>", GAME_IS_SKELETON )
+GAME( 198?, xxx, 0, xxx, xxx, driver_device, 0, ROT0, "<template_manufacturer>", "<template_machinename>", MACHINE_IS_SKELETON )
diff --git a/src/mame/includes/1942.h b/src/mame/includes/1942.h
index 7f07408261a..d8db88bc9d4 100644
--- a/src/mame/includes/1942.h
+++ b/src/mame/includes/1942.h
@@ -45,6 +45,7 @@ public:
DECLARE_WRITE8_MEMBER(c1942_scroll_w);
DECLARE_WRITE8_MEMBER(c1942_c804_w);
DECLARE_WRITE8_MEMBER(c1942p_f600_w);
+ DECLARE_WRITE8_MEMBER(c1942p_soundlatch_w);
DECLARE_DRIVER_INIT(1942);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
diff --git a/src/mame/includes/4enraya.h b/src/mame/includes/4enraya.h
index 3f41a8afb69..11708ed9189 100644
--- a/src/mame/includes/4enraya.h
+++ b/src/mame/includes/4enraya.h
@@ -44,7 +44,6 @@ public:
DECLARE_WRITE8_MEMBER(sound_control_w);
DECLARE_DRIVER_INIT(unkpacg);
TILE_GET_INFO_MEMBER(get_tile_info);
- DECLARE_PALETTE_INIT(_4enraya);
UINT32 screen_update_4enraya(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
virtual void machine_start();
diff --git a/src/mame/includes/8080bw.h b/src/mame/includes/8080bw.h
index 2c8da3f42ea..8dcbdef4fb4 100644
--- a/src/mame/includes/8080bw.h
+++ b/src/mame/includes/8080bw.h
@@ -127,6 +127,7 @@ public:
DECLARE_MACHINE_START(claybust);
DECLARE_PALETTE_INIT(rollingc);
+ DECLARE_PALETTE_INIT(sflush);
UINT32 screen_update_invadpt2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
UINT32 screen_update_cosmo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
@@ -150,12 +151,9 @@ public:
DECLARE_WRITE8_MEMBER(polaris_sh_port_3_w);
void schaser_reinit_555_time_remain();
- void invadpt2_get_pens( pen_t *pens );
- void sflush_get_pens( pen_t *pens );
- void cosmo_get_pens( pen_t *pens );
- inline void set_pixel( bitmap_rgb32 &bitmap, UINT8 y, UINT8 x, const pen_t *pens, UINT8 color );
- inline void set_8_pixels( bitmap_rgb32 &bitmap, UINT8 y, UINT8 x, UINT8 data, const pen_t *pens, UINT8 fore_color, UINT8 back_color );
- void clear_extra_columns( bitmap_rgb32 &bitmap, const pen_t *pens, UINT8 color );
+ inline void set_pixel( bitmap_rgb32 &bitmap, UINT8 y, UINT8 x, int color );
+ inline void set_8_pixels( bitmap_rgb32 &bitmap, UINT8 y, UINT8 x, UINT8 data, int fore_color, int back_color );
+ void clear_extra_columns( bitmap_rgb32 &bitmap, int color );
void invmulti_bankswitch_restore();
};
diff --git a/src/mame/includes/88games.h b/src/mame/includes/88games.h
index f2ebec8ac88..bdf62a239ed 100644
--- a/src/mame/includes/88games.h
+++ b/src/mame/includes/88games.h
@@ -29,9 +29,6 @@ public:
/* video-related */
int m_k88games_priority;
- int m_layer_colorbase[3];
- int m_sprite_colorbase;
- int m_zoom_colorbase;
int m_videobank;
int m_zoomreadroms;
int m_speech_chip;
diff --git a/src/mess/includes/abc1600.h b/src/mame/includes/abc1600.h
index 9e32684766f..9e32684766f 100644
--- a/src/mess/includes/abc1600.h
+++ b/src/mame/includes/abc1600.h
diff --git a/src/mess/includes/abc80.h b/src/mame/includes/abc80.h
index 253ed7e757d..253ed7e757d 100644
--- a/src/mess/includes/abc80.h
+++ b/src/mame/includes/abc80.h
diff --git a/src/mess/includes/abc80x.h b/src/mame/includes/abc80x.h
index 86a54269778..86a54269778 100644
--- a/src/mess/includes/abc80x.h
+++ b/src/mame/includes/abc80x.h
diff --git a/src/mess/includes/ac1.h b/src/mame/includes/ac1.h
index dff44d07d6b..b18cad87b24 100644
--- a/src/mess/includes/ac1.h
+++ b/src/mame/includes/ac1.h
@@ -20,9 +20,10 @@ public:
m_cassette(*this, "cassette"),
m_maincpu(*this, "maincpu"),
m_gfxdecode(*this, "gfxdecode"),
- m_palette(*this, "palette") { }
+ m_palette(*this, "palette"),
+ m_io_line(*this, "LINE")
+ { }
- required_device<cassette_image_device> m_cassette;
DECLARE_DRIVER_INIT(ac1);
virtual void machine_reset();
virtual void video_start();
@@ -32,9 +33,13 @@ public:
DECLARE_READ8_MEMBER(ac1_port_a_r);
DECLARE_WRITE8_MEMBER(ac1_port_a_w);
DECLARE_WRITE8_MEMBER(ac1_port_b_w);
+
+private:
+ required_device<cassette_image_device> m_cassette;
required_device<cpu_device> m_maincpu;
required_device<gfxdecode_device> m_gfxdecode;
required_device<palette_device> m_palette;
+ required_ioport_array<7> m_io_line;
};
/*----------- defined in video/ac1.c -----------*/
diff --git a/src/mess/includes/adam.h b/src/mame/includes/adam.h
index 1705011db88..1705011db88 100644
--- a/src/mess/includes/adam.h
+++ b/src/mame/includes/adam.h
diff --git a/src/mess/includes/advision.h b/src/mame/includes/advision.h
index 3aa523c56df..3aa523c56df 100644
--- a/src/mess/includes/advision.h
+++ b/src/mame/includes/advision.h
diff --git a/src/mame/includes/aerofgt.h b/src/mame/includes/aerofgt.h
index 47a77b6d8bf..194640f805c 100644
--- a/src/mame/includes/aerofgt.h
+++ b/src/mame/includes/aerofgt.h
@@ -35,7 +35,6 @@ public:
optional_shared_ptr<UINT16> m_spriteram2;
required_shared_ptr<UINT16> m_spriteram3;
optional_shared_ptr<UINT16> m_tx_tilemap_ram;
-// UINT16 * m_paletteram; // currently this uses generic palette handling
/* devices referenced above */
optional_device<vsystem_spr_device> m_spr; // only the aerofgt parent uses this chip
diff --git a/src/mess/includes/aim65.h b/src/mame/includes/aim65.h
index 724fe61cb4c..724fe61cb4c 100644
--- a/src/mess/includes/aim65.h
+++ b/src/mame/includes/aim65.h
diff --git a/src/mame/includes/ajax.h b/src/mame/includes/ajax.h
index f576bbefba2..e8197eea633 100644
--- a/src/mame/includes/ajax.h
+++ b/src/mame/includes/ajax.h
@@ -21,13 +21,7 @@ public:
m_k051316(*this, "k051316"),
m_palette(*this, "palette") { }
- /* memory pointers */
-// UINT8 * m_paletteram; // currently this uses generic palette handling
-
/* video-related */
- int m_layer_colorbase[3];
- int m_sprite_colorbase;
- int m_zoom_colorbase;
UINT8 m_priority;
/* misc */
@@ -52,9 +46,7 @@ public:
DECLARE_WRITE8_MEMBER(k007232_extvol_w);
virtual void machine_start();
virtual void machine_reset();
- virtual void video_start();
UINT32 screen_update_ajax(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- INTERRUPT_GEN_MEMBER(ajax_interrupt);
DECLARE_WRITE8_MEMBER(volume_callback0);
DECLARE_WRITE8_MEMBER(volume_callback1);
K051316_CB_MEMBER(zoom_callback);
diff --git a/src/mess/includes/alesis.h b/src/mame/includes/alesis.h
index 4d0cafc95ac..a0acc3db8f4 100644
--- a/src/mess/includes/alesis.h
+++ b/src/mame/includes/alesis.h
@@ -65,7 +65,15 @@ public:
: driver_device(mconfig, type, tag),
m_lcdc(*this, "hd44780"),
m_cassette(*this, "cassette"),
- m_maincpu(*this, "maincpu") { }
+ m_maincpu(*this, "maincpu"),
+ m_col1(*this, "COL1"),
+ m_col2(*this, "COL2"),
+ m_col3(*this, "COL3"),
+ m_col4(*this, "COL4"),
+ m_col5(*this, "COL5"),
+ m_col6(*this, "COL6"),
+ m_select(*this, "SELECT")
+ { }
required_device<hd44780_device> m_lcdc;
optional_device<cassette_image_device> m_cassette;
@@ -92,6 +100,13 @@ private:
UINT8 m_leds;
UINT8 m_lcd_digits[5];
required_device<cpu_device> m_maincpu;
+ required_ioport m_col1;
+ required_ioport m_col2;
+ required_ioport m_col3;
+ required_ioport m_col4;
+ required_ioport m_col5;
+ required_ioport m_col6;
+ optional_ioport m_select;
};
// device type definition
diff --git a/src/mame/includes/aliens.h b/src/mame/includes/aliens.h
index f4b32aa50ea..6e21270c068 100644
--- a/src/mame/includes/aliens.h
+++ b/src/mame/includes/aliens.h
@@ -10,7 +10,6 @@
#include "sound/k007232.h"
#include "video/k052109.h"
#include "video/k051960.h"
-#include "video/konami_helper.h"
class aliens_state : public driver_device
{
@@ -22,11 +21,8 @@ public:
m_bank0000(*this, "bank0000"),
m_k007232(*this, "k007232"),
m_k052109(*this, "k052109"),
- m_k051960(*this, "k051960") { }
-
- /* video-related */
- int m_layer_colorbase[3];
- int m_sprite_colorbase;
+ m_k051960(*this, "k051960"),
+ m_rombank(*this, "rombank") { }
/* devices */
required_device<cpu_device> m_maincpu;
@@ -35,6 +31,8 @@ public:
required_device<k007232_device> m_k007232;
required_device<k052109_device> m_k052109;
required_device<k051960_device> m_k051960;
+ required_memory_bank m_rombank;
+
DECLARE_WRITE8_MEMBER(aliens_coin_counter_w);
DECLARE_WRITE8_MEMBER(aliens_sh_irqtrigger_w);
DECLARE_READ8_MEMBER(k052109_051960_r);
@@ -42,9 +40,7 @@ public:
DECLARE_WRITE8_MEMBER(aliens_snd_bankswitch_w);
virtual void machine_start();
virtual void machine_reset();
- virtual void video_start();
UINT32 screen_update_aliens(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- INTERRUPT_GEN_MEMBER(aliens_interrupt);
DECLARE_WRITE8_MEMBER(volume_callback);
K052109_CB_MEMBER(tile_callback);
K051960_CB_MEMBER(sprite_callback);
diff --git a/src/mame/includes/amiga.h b/src/mame/includes/amiga.h
index 2858f47ce27..efefd00c58d 100644
--- a/src/mame/includes/amiga.h
+++ b/src/mame/includes/amiga.h
@@ -352,6 +352,7 @@ public:
m_p1_mouse_y(*this, "p1_mouse_y"),
m_p2_mouse_x(*this, "p2_mouse_x"),
m_p2_mouse_y(*this, "p2_mouse_y"),
+ m_hvpos(*this, "HVPOS"),
m_chip_ram_mask(0),
m_cia_0_irq(0),
m_cia_1_irq(0),
@@ -580,6 +581,7 @@ protected:
optional_ioport m_p1_mouse_y;
optional_ioport m_p2_mouse_x;
optional_ioport m_p2_mouse_y;
+ optional_ioport m_hvpos;
memory_array m_chip_ram;
UINT32 m_chip_ram_mask;
@@ -660,6 +662,8 @@ private:
void serial_adjust();
void serial_shift();
void rx_write(amiga_state *state, int level);
+
+ UINT32 amiga_gethvpos();
};
@@ -675,7 +679,6 @@ extern const UINT16 amiga_expand_byte[256];
void amiga_copper_setpc(running_machine &machine, UINT32 pc);
int amiga_copper_execute_next(running_machine &machine, int xpos);
-UINT32 amiga_gethvpos(screen_device &screen);
void amiga_set_genlock_color(running_machine &machine, UINT16 color);
void amiga_sprite_dma_reset(running_machine &machine, int which);
void amiga_sprite_enable_comparitor(running_machine &machine, int which, int enable);
diff --git a/src/mame/includes/amspdwy.h b/src/mame/includes/amspdwy.h
index 4cc765c7876..e851882d26e 100644
--- a/src/mame/includes/amspdwy.h
+++ b/src/mame/includes/amspdwy.h
@@ -48,7 +48,6 @@ public:
DECLARE_READ8_MEMBER(amspdwy_wheel_0_r);
DECLARE_READ8_MEMBER(amspdwy_wheel_1_r);
DECLARE_WRITE8_MEMBER(amspdwy_sound_w);
- DECLARE_WRITE8_MEMBER(amspdwy_paletteram_w);
DECLARE_WRITE8_MEMBER(amspdwy_flipscreen_w);
DECLARE_WRITE8_MEMBER(amspdwy_videoram_w);
DECLARE_WRITE8_MEMBER(amspdwy_colorram_w);
diff --git a/src/mess/includes/amstrad.h b/src/mame/includes/amstrad.h
index 9f60119ea16..40c798ccbdb 100644
--- a/src/mess/includes/amstrad.h
+++ b/src/mame/includes/amstrad.h
@@ -29,6 +29,7 @@
#include "bus/cpc/smartwatch.h"
#include "bus/cpc/brunword4.h"
#include "bus/cpc/hd20.h"
+#include "bus/cpc/magicsound.h"
#include "machine/ram.h"
#include "imagedev/cassette.h"
#include "bus/centronics/ctronics.h"
@@ -243,7 +244,7 @@ public:
DECLARE_WRITE_LINE_MEMBER( cpc_romen );
DECLARE_WRITE8_MEMBER(rom_select);
- DECLARE_FLOPPY_FORMATS( floppy_formats );
+ DECLARE_FLOPPY_FORMATS( aleste_floppy_formats );
IRQ_CALLBACK_MEMBER(amstrad_cpu_acknowledge_int);
diff --git a/src/mess/includes/apollo.h b/src/mame/includes/apollo.h
index 41b0f04e6ff..41b0f04e6ff 100644
--- a/src/mess/includes/apollo.h
+++ b/src/mame/includes/apollo.h
diff --git a/src/mess/includes/apple1.h b/src/mame/includes/apple1.h
index 220200ade56..220200ade56 100644
--- a/src/mess/includes/apple1.h
+++ b/src/mame/includes/apple1.h
diff --git a/src/mess/includes/apple2.h b/src/mame/includes/apple2.h
index ec8b9963db5..ec8b9963db5 100644
--- a/src/mess/includes/apple2.h
+++ b/src/mame/includes/apple2.h
diff --git a/src/mess/includes/apple2gs.h b/src/mame/includes/apple2gs.h
index eddd8445cd5..eddd8445cd5 100644
--- a/src/mess/includes/apple2gs.h
+++ b/src/mame/includes/apple2gs.h
diff --git a/src/mess/includes/apple3.h b/src/mame/includes/apple3.h
index 1d389c0b435..1d389c0b435 100644
--- a/src/mess/includes/apple3.h
+++ b/src/mame/includes/apple3.h
diff --git a/src/mame/includes/aquarium.h b/src/mame/includes/aquarium.h
index 19218015471..8b3bb94e32f 100644
--- a/src/mame/includes/aquarium.h
+++ b/src/mame/includes/aquarium.h
@@ -24,7 +24,6 @@ public:
required_shared_ptr<UINT16> m_bak_videoram;
required_shared_ptr<UINT16> m_txt_videoram;
required_shared_ptr<UINT16> m_scroll;
-// UINT16 * m_paletteram; // currently this uses generic palette handling
/* video-related */
tilemap_t *m_txt_tilemap;
diff --git a/src/mess/includes/aquarius.h b/src/mame/includes/aquarius.h
index 1375aa6015c..1375aa6015c 100644
--- a/src/mess/includes/aquarius.h
+++ b/src/mame/includes/aquarius.h
diff --git a/src/mess/includes/arcadia.h b/src/mame/includes/arcadia.h
index f7bf608bb42..f7bf608bb42 100644
--- a/src/mess/includes/arcadia.h
+++ b/src/mame/includes/arcadia.h
diff --git a/src/mame/includes/armedf.h b/src/mame/includes/armedf.h
index b534441aa39..4934f2d6d00 100644
--- a/src/mame/includes/armedf.h
+++ b/src/mame/includes/armedf.h
@@ -33,7 +33,6 @@ public:
required_shared_ptr<UINT16> m_fg_videoram;
required_shared_ptr<UINT16> m_bg_videoram;
UINT16 m_legion_cmd[4]; // legionjb only!
-// UINT16 * m_paletteram; // currently this uses generic palette handling
/* video-related */
tilemap_t *m_bg_tilemap;
diff --git a/src/mame/includes/ashnojoe.h b/src/mame/includes/ashnojoe.h
index 6cf2dc1748a..eb166ff953d 100644
--- a/src/mame/includes/ashnojoe.h
+++ b/src/mame/includes/ashnojoe.h
@@ -35,7 +35,6 @@ public:
required_shared_ptr<UINT16> m_tileram_7;
required_shared_ptr<UINT16> m_tileram;
required_shared_ptr<UINT16> m_tilemap_reg;
-// UINT16 * m_paletteram; // currently this uses generic palette handling
/* video-related */
tilemap_t *m_joetilemap;
diff --git a/src/mame/includes/asterix.h b/src/mame/includes/asterix.h
index 6bc29450828..62755366d58 100644
--- a/src/mame/includes/asterix.h
+++ b/src/mame/includes/asterix.h
@@ -26,9 +26,6 @@ public:
m_k053244(*this, "k053244"),
m_k053251(*this, "k053251") { }
- /* memory pointers */
-// UINT16 * m_paletteram; // currently this uses generic palette handling
-
/* video-related */
int m_sprite_colorbase;
int m_layer_colorbase[4];
diff --git a/src/mame/includes/astrocde.h b/src/mame/includes/astrocde.h
index fe2c249de99..9469edd8b4c 100644
--- a/src/mame/includes/astrocde.h
+++ b/src/mame/includes/astrocde.h
@@ -5,6 +5,7 @@
Bally Astrocade-based hardware
***************************************************************************/
+#include "machine/bankdev.h"
#include "sound/astrocde.h"
#include "sound/samples.h"
#include "sound/votrax.h"
@@ -37,7 +38,24 @@ public:
m_astrocade_sound1(*this, "astrocade1"),
m_videoram(*this, "videoram"),
m_protected_ram(*this, "protected_ram"),
- m_screen(*this, "screen") { }
+ m_screen(*this, "screen"),
+ m_bank4000(*this, "bank4000"),
+ m_bank8000(*this, "bank8000"),
+ m_p1handle(*this, "P1HANDLE"),
+ m_p2handle(*this, "P2HANDLE"),
+ m_p3handle(*this, "P3HANDLE"),
+ m_p4handle(*this, "P4HANDLE"),
+ m_keypad0(*this, "KEYPAD0"),
+ m_keypad1(*this, "KEYPAD1"),
+ m_keypad2(*this, "KEYPAD2"),
+ m_keypad3(*this, "KEYPAD3"),
+ m_p1_knob(*this, "P1_KNOB"),
+ m_p2_knob(*this, "P2_KNOB"),
+ m_p3_knob(*this, "P3_KNOB"),
+ m_p4_knob(*this, "P4_KNOB"),
+ m_trackball(*this, trackball_inputs),
+ m_joystick(*this, joystick_inputs)
+ { }
required_device<cpu_device> m_maincpu;
optional_device<cpu_device> m_subcpu;
@@ -47,6 +65,24 @@ public:
optional_shared_ptr<UINT8> m_videoram;
optional_shared_ptr<UINT8> m_protected_ram;
required_device<screen_device> m_screen;
+ optional_device<address_map_bank_device> m_bank4000;
+ optional_memory_bank m_bank8000;
+ optional_ioport m_p1handle;
+ optional_ioport m_p2handle;
+ optional_ioport m_p3handle;
+ optional_ioport m_p4handle;
+ optional_ioport m_keypad0;
+ optional_ioport m_keypad1;
+ optional_ioport m_keypad2;
+ optional_ioport m_keypad3;
+ optional_ioport m_p1_knob;
+ optional_ioport m_p2_knob;
+ optional_ioport m_p3_knob;
+ optional_ioport m_p4_knob;
+ DECLARE_IOPORT_ARRAY(trackball_inputs);
+ optional_ioport_array<4> m_trackball;
+ DECLARE_IOPORT_ARRAY(joystick_inputs);
+ optional_ioport_array<2> m_joystick;
UINT8 m_video_config;
UINT8 m_sparkle[4];
@@ -58,7 +94,6 @@ public:
UINT8 m_port_2_last;
UINT8 m_ram_write_enable;
UINT8 m_input_select;
- UINT8 m_profpac_bank;
UINT8 *m_sparklestar;
UINT8 m_interrupt_enabl;
UINT8 m_interrupt_vector;
@@ -112,6 +147,7 @@ public:
DECLARE_READ8_MEMBER(profpac_io_1_r);
DECLARE_READ8_MEMBER(profpac_io_2_r);
DECLARE_WRITE8_MEMBER(profpac_banksw_w);
+ DECLARE_WRITE8_MEMBER(demndrgn_banksw_w);
DECLARE_READ8_MEMBER(demndrgn_io_r);
DECLARE_WRITE8_MEMBER(demndrgn_sound_w);
DECLARE_WRITE8_MEMBER(tenpindx_sound_w);
@@ -147,7 +183,6 @@ public:
UINT32 screen_update_astrocde(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update_profpac(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TIMER_CALLBACK_MEMBER(scanline_callback);
- void profbank_banksw_restore();
inline int mame_vpos_to_astrocade_vpos(int scanline);
void init_savestate();
void astrocade_trigger_lightpen(UINT8 vfeedback, UINT8 hfeedback);
diff --git a/src/mame/includes/asuka.h b/src/mame/includes/asuka.h
index 9c0f1fdb8b7..f98fe0c9627 100644
--- a/src/mame/includes/asuka.h
+++ b/src/mame/includes/asuka.h
@@ -31,9 +31,6 @@ public:
m_tc0110pcr(*this, "tc0110pcr"),
m_tc0220ioc(*this, "tc0220ioc") { }
- /* memory pointers */
-// UINT16 * paletteram; // this currently uses generic palette handlers
-
/* video-related */
UINT16 m_video_ctrl;
UINT16 m_video_mask;
diff --git a/src/mess/includes/at.h b/src/mame/includes/at.h
index b9de9916133..63391195f90 100644
--- a/src/mess/includes/at.h
+++ b/src/mame/includes/at.h
@@ -18,10 +18,13 @@
#include "machine/ins8250.h"
#include "machine/mc146818.h"
+#include "machine/ds128x.h"
#include "machine/pic8259.h"
#include "bus/lpci/i82371ab.h"
#include "bus/lpci/i82371sb.h"
#include "bus/lpci/i82439tx.h"
+#include "bus/lpci/vt82c505.h"
+#include "machine/vt82c496.h"
#include "machine/cs8221.h"
#include "machine/pit8253.h"
#include "machine/wd7600.h"
@@ -158,10 +161,11 @@ public:
DECLARE_DRIVER_INIT(atcga);
DECLARE_DRIVER_INIT(atvga);
DECLARE_DRIVER_INIT(megapcpla);
+ DECLARE_DRIVER_INIT(atpci);
DECLARE_MACHINE_START(at);
DECLARE_MACHINE_RESET(at);
void pc_set_dma_channel(int channel, int state);
- void init_at_common();
+ void init_at_common(int xmsbase);
UINT32 at_286_a20(bool state);
};
diff --git a/src/mess/includes/atarist.h b/src/mame/includes/atarist.h
index 2e153b4a59a..2e153b4a59a 100644
--- a/src/mess/includes/atarist.h
+++ b/src/mame/includes/atarist.h
diff --git a/src/mame/includes/atarisy2.h b/src/mame/includes/atarisy2.h
index 17ed588662a..39b4e8348ce 100644
--- a/src/mame/includes/atarisy2.h
+++ b/src/mame/includes/atarisy2.h
@@ -25,7 +25,6 @@ public:
m_alpha_tilemap(*this, "alpha"),
m_rombank1(*this, "rombank1"),
m_rombank2(*this, "rombank2"),
- m_generic_paletteram_16(*this, "paletteram"),
m_slapstic(*this, "slapstic")
{ }
@@ -50,7 +49,6 @@ public:
required_memory_bank m_rombank1;
required_memory_bank m_rombank2;
- required_shared_ptr<UINT16> m_generic_paletteram_16;
required_device<atari_slapstic_device> m_slapstic;
UINT8 m_sound_reset_state;
@@ -112,7 +110,7 @@ public:
DECLARE_WRITE16_MEMBER(yscroll_w);
DECLARE_WRITE16_MEMBER(xscroll_w);
DECLARE_WRITE16_MEMBER(videoram_w);
- DECLARE_WRITE16_MEMBER(paletteram_w);
+ DECLARE_PALETTE_DECODER(RRRRGGGGBBBBIIII);
static const atari_motion_objects_config s_mob_config;
};
diff --git a/src/mess/includes/atom.h b/src/mame/includes/atom.h
index 62992b67469..bd7b2427897 100644
--- a/src/mess/includes/atom.h
+++ b/src/mame/includes/atom.h
@@ -13,7 +13,7 @@
#include "machine/ram.h"
#include "imagedev/snapquik.h"
#include "formats/atom_tap.h"
-#include "formats/basicdsk.h"
+#include "formats/atom_dsk.h"
#include "formats/uef_cas.h"
#include "bus/centronics/ctronics.h"
#include "machine/6522via.h"
@@ -46,6 +46,7 @@ public:
m_maincpu(*this, SY6502_TAG),
m_vdg(*this, MC6847_TAG),
m_cassette(*this, "cassette"),
+ m_fdc(*this, I8271_TAG),
m_centronics(*this, CENTRONICS_TAG),
m_speaker(*this, "speaker"),
m_cart(*this, "cartslot"),
@@ -67,6 +68,7 @@ public:
required_device<cpu_device> m_maincpu;
required_device<mc6847_base_device> m_vdg;
required_device<cassette_image_device> m_cassette;
+ optional_device<i8271_device> m_fdc;
required_device<centronics_device> m_centronics;
required_device<speaker_sound_device> m_speaker;
optional_device<generic_slot_device> m_cart;
@@ -95,6 +97,7 @@ public:
DECLARE_READ8_MEMBER( vdg_videoram_r );
DECLARE_INPUT_CHANGED_MEMBER( trigger_reset );
DECLARE_WRITE_LINE_MEMBER( atom_8271_interrupt_callback );
+ DECLARE_WRITE_LINE_MEMBER( motor_w );
/* video state */
required_shared_ptr<UINT8> m_video_ram;
@@ -109,6 +112,7 @@ public:
/* devices */
int m_previous_i8271_int_state;
+ DECLARE_FLOPPY_FORMATS(floppy_formats);
TIMER_DEVICE_CALLBACK_MEMBER(cassette_output_tick);
int load_cart(device_image_interface &image, generic_slot_device *slot);
diff --git a/src/mame/includes/aussiebyte.h b/src/mame/includes/aussiebyte.h
new file mode 100644
index 00000000000..0f798e1a99f
--- /dev/null
+++ b/src/mame/includes/aussiebyte.h
@@ -0,0 +1,126 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+
+/***********************************************************
+
+ Includes
+
+************************************************************/
+#include "emu.h"
+#include "cpu/z80/z80.h"
+#include "cpu/z80/z80daisy.h"
+#include "machine/z80ctc.h"
+#include "machine/z80pio.h"
+#include "machine/z80dart.h"
+#include "machine/z80dma.h"
+#include "bus/centronics/ctronics.h"
+#include "sound/speaker.h"
+#include "sound/votrax.h"
+#include "video/mc6845.h"
+#include "bus/rs232/rs232.h"
+#include "machine/wd_fdc.h"
+#include "machine/msm5832.h"
+
+
+/***********************************************************
+
+ Class
+
+************************************************************/
+class aussiebyte_state : public driver_device
+{
+public:
+ aussiebyte_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_palette(*this, "palette")
+ , m_maincpu(*this, "maincpu")
+ , m_ctc(*this, "ctc")
+ , m_dma(*this, "dma")
+ , m_pio1(*this, "pio1")
+ , m_pio2(*this, "pio2")
+ , m_sio1(*this, "sio1")
+ , m_sio2(*this, "sio2")
+ , m_centronics(*this, "centronics")
+ , m_rs232(*this, "rs232")
+ , m_fdc(*this, "fdc")
+ , m_floppy0(*this, "fdc:0")
+ , m_floppy1(*this, "fdc:1")
+ , m_crtc(*this, "crtc")
+ , m_speaker(*this, "speaker")
+ , m_votrax(*this, "votrax")
+ {}
+
+ DECLARE_READ8_MEMBER(memory_read_byte);
+ DECLARE_WRITE8_MEMBER(memory_write_byte);
+ DECLARE_READ8_MEMBER(io_read_byte);
+ DECLARE_WRITE8_MEMBER(io_write_byte);
+ DECLARE_WRITE_LINE_MEMBER(write_centronics_busy);
+ DECLARE_WRITE8_MEMBER(port15_w);
+ DECLARE_WRITE8_MEMBER(port16_w);
+ DECLARE_WRITE8_MEMBER(port17_w);
+ DECLARE_WRITE8_MEMBER(port18_w);
+ DECLARE_READ8_MEMBER(port19_r);
+ DECLARE_WRITE8_MEMBER(port1a_w);
+ DECLARE_WRITE8_MEMBER(port1b_w);
+ DECLARE_WRITE8_MEMBER(port1c_w);
+ DECLARE_WRITE8_MEMBER(port20_w);
+ DECLARE_READ8_MEMBER(port28_r);
+ DECLARE_READ8_MEMBER(port33_r);
+ DECLARE_WRITE8_MEMBER(port34_w);
+ DECLARE_WRITE8_MEMBER(port35_w);
+ DECLARE_READ8_MEMBER(port36_r);
+ DECLARE_READ8_MEMBER(port37_r);
+ DECLARE_WRITE_LINE_MEMBER(fdc_intrq_w);
+ DECLARE_WRITE_LINE_MEMBER(fdc_drq_w);
+ DECLARE_WRITE_LINE_MEMBER(busreq_w);
+ DECLARE_WRITE_LINE_MEMBER(votrax_w);
+ DECLARE_WRITE_LINE_MEMBER(sio1_rdya_w);
+ DECLARE_WRITE_LINE_MEMBER(sio1_rdyb_w);
+ DECLARE_WRITE_LINE_MEMBER(sio2_rdya_w);
+ DECLARE_WRITE_LINE_MEMBER(sio2_rdyb_w);
+ DECLARE_MACHINE_RESET(aussiebyte);
+ DECLARE_DRIVER_INIT(aussiebyte);
+ TIMER_DEVICE_CALLBACK_MEMBER(ctc_tick);
+ DECLARE_WRITE_LINE_MEMBER(ctc_z0_w);
+ DECLARE_WRITE_LINE_MEMBER(ctc_z1_w);
+ DECLARE_WRITE_LINE_MEMBER(ctc_z2_w);
+ DECLARE_WRITE8_MEMBER(address_w);
+ DECLARE_WRITE8_MEMBER(register_w);
+ MC6845_UPDATE_ROW(crtc_update_row);
+ MC6845_ON_UPDATE_ADDR_CHANGED(crtc_update_addr);
+ int m_centronics_busy;
+ required_device<palette_device> m_palette;
+
+private:
+ UINT8 crt8002(UINT8 ac_ra, UINT8 ac_chr, UINT8 ac_attr, UINT16 ac_cnt, bool ac_curs);
+ bool m_port15; // rom switched in (0), out (1)
+ UINT8 m_port17;
+ UINT8 m_port17_rdy;
+ UINT8 m_port19;
+ UINT8 m_port1a; // bank to switch to when write to port 15 happens
+ UINT8 m_port28;
+ UINT8 m_port34;
+ UINT8 m_port35; // byte to be written to vram or aram
+ UINT8 m_video_index;
+ UINT16 m_cnt;
+ UINT8 *m_p_videoram;
+ UINT8 *m_p_attribram;
+ const UINT8 *m_p_chargen;
+ UINT16 m_alpha_address;
+ UINT16 m_graph_address;
+ required_device<cpu_device> m_maincpu;
+ required_device<z80ctc_device> m_ctc;
+ required_device<z80dma_device> m_dma;
+ required_device<z80pio_device> m_pio1;
+ required_device<z80pio_device> m_pio2;
+ required_device<z80sio0_device> m_sio1;
+ required_device<z80sio0_device> m_sio2;
+ required_device<centronics_device> m_centronics;
+ required_device<rs232_port_device> m_rs232;
+ required_device<wd2797_t> m_fdc;
+ required_device<floppy_connector> m_floppy0;
+ optional_device<floppy_connector> m_floppy1;
+ required_device<mc6845_device> m_crtc;
+ required_device<speaker_sound_device> m_speaker;
+ required_device<votrax_sc01_device> m_votrax;
+};
diff --git a/src/mess/includes/avigo.h b/src/mame/includes/avigo.h
index b06dab92c65..b06dab92c65 100644
--- a/src/mess/includes/avigo.h
+++ b/src/mame/includes/avigo.h
diff --git a/src/mess/includes/b2m.h b/src/mame/includes/b2m.h
index 86bd3162114..86bd3162114 100644
--- a/src/mess/includes/b2m.h
+++ b/src/mame/includes/b2m.h
diff --git a/src/mess/includes/banctec.h b/src/mame/includes/banctec.h
index 5a048ee6680..5a048ee6680 100644
--- a/src/mess/includes/banctec.h
+++ b/src/mame/includes/banctec.h
diff --git a/src/mame/includes/battlnts.h b/src/mame/includes/battlnts.h
index 7caaedbcb47..8b65ea88388 100644
--- a/src/mame/includes/battlnts.h
+++ b/src/mame/includes/battlnts.h
@@ -23,7 +23,6 @@ public:
/* video-related */
int m_spritebank;
- int m_layer_colorbase[2];
/* devices */
required_device<cpu_device> m_maincpu;
diff --git a/src/mess/includes/bbc.h b/src/mame/includes/bbc.h
index 11bd1c13eb1..7559ce4b556 100644
--- a/src/mess/includes/bbc.h
+++ b/src/mame/includes/bbc.h
@@ -22,6 +22,7 @@
#include "machine/i8271.h"
#include "machine/wd_fdc.h"
#include "machine/upd7002.h"
+#include "machine/mc146818.h"
#include "video/mc6845.h"
#include "video/saa5050.h"
#include "sound/sn76496.h"
@@ -52,7 +53,10 @@ public:
m_via6522_0(*this, "via6522_0"),
m_via6522_1(*this, "via6522_1"),
m_upd7002(*this, "upd7002"),
+ m_rtc(*this, "rtc"),
m_i8271(*this, "i8271"),
+ m_wd1770(*this, "wd1770"),
+ m_wd1772(*this, "wd1772"),
m_exp1(*this, "exp_rom1"),
m_exp2(*this, "exp_rom2"),
m_exp3(*this, "exp_rom3"),
@@ -64,7 +68,6 @@ public:
m_region_maincpu(*this, "maincpu"),
m_region_os(*this, "os"),
m_region_opt(*this, "option"),
- m_region_dfs(*this, "dfs"),
m_bank1(*this, "bank1"),
m_bank2(*this, "bank2"),
m_bank3(*this, "bank3"),
@@ -80,7 +83,9 @@ public:
m_palette(*this, "palette")
{ }
- DECLARE_FLOPPY_FORMATS(floppy_formats);
+ DECLARE_FLOPPY_FORMATS(floppy_formats_525sd);
+ DECLARE_FLOPPY_FORMATS(floppy_formats_525dd);
+ DECLARE_FLOPPY_FORMATS(floppy_formats_35dd);
DECLARE_WRITE8_MEMBER(bbc_page_selecta_w);
DECLARE_WRITE8_MEMBER(bbc_memorya1_w);
@@ -104,40 +109,34 @@ public:
DECLARE_READ8_MEMBER(bbcm_r);
DECLARE_WRITE8_MEMBER(bbcm_w);
DECLARE_WRITE8_MEMBER(bbc_SerialULA_w);
- DECLARE_READ8_MEMBER(bbc_i8271_read);
- DECLARE_WRITE8_MEMBER(bbc_i8271_write);
- DECLARE_WRITE8_MEMBER(bbc_wd177x_status_w);
- DECLARE_READ8_MEMBER(bbc_wd1770_read);
- DECLARE_WRITE8_MEMBER(bbc_wd1770_write);
- DECLARE_WRITE8_MEMBER(bbc_opus_status_w);
- DECLARE_READ8_MEMBER(bbc_opus_read);
- DECLARE_WRITE8_MEMBER(bbc_opus_write);
- DECLARE_READ8_MEMBER(bbcm_wd1770_read);
- DECLARE_WRITE8_MEMBER(bbcm_wd1770_write);
- DECLARE_READ8_MEMBER(bbcm_wd1770l_read);
+
+ DECLARE_WRITE8_MEMBER(bbc_wd1770_status_w);
+ DECLARE_READ8_MEMBER(bbcm_wd177xl_read);
DECLARE_WRITE8_MEMBER(bbcm_wd1770l_write);
- DECLARE_READ8_MEMBER(bbc_disc_r);
- DECLARE_WRITE8_MEMBER(bbc_disc_w);
+ DECLARE_WRITE8_MEMBER(bbcm_wd1772l_write);
DECLARE_WRITE8_MEMBER(bbc_videoULA_w);
- DECLARE_WRITE8_MEMBER(bbc_6845_w);
- DECLARE_READ8_MEMBER(bbc_6845_r);
DECLARE_READ8_MEMBER(bbc_fe_r);
DECLARE_DIRECT_UPDATE_MEMBER(bbcbp_direct_handler);
DECLARE_DIRECT_UPDATE_MEMBER(bbcm_direct_handler);
+
DECLARE_DRIVER_INIT(bbc);
- DECLARE_DRIVER_INIT(bbcm);
+
DECLARE_MACHINE_START(bbca);
DECLARE_MACHINE_RESET(bbca);
DECLARE_VIDEO_START(bbca);
+
DECLARE_MACHINE_START(bbcb);
DECLARE_MACHINE_RESET(bbcb);
DECLARE_VIDEO_START(bbcb);
+
DECLARE_MACHINE_START(bbcbp);
DECLARE_MACHINE_RESET(bbcbp);
DECLARE_VIDEO_START(bbcbp);
+
DECLARE_MACHINE_START(bbcm);
DECLARE_MACHINE_RESET(bbcm);
DECLARE_VIDEO_START(bbcm);
+
DECLARE_PALETTE_INIT(bbc);
UINT32 screen_update_bbc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(bbcb_vsync);
@@ -168,6 +167,8 @@ public:
DECLARE_WRITE_LINE_MEMBER(write_cts_serial);
DECLARE_INPUT_CHANGED_MEMBER( trigger_reset );
DECLARE_WRITE_LINE_MEMBER(bbc_i8271_interrupt);
+ DECLARE_WRITE_LINE_MEMBER(motor_w);
+ DECLARE_WRITE_LINE_MEMBER(side_w);
UPD7002_GET_ANALOGUE(BBC_get_analogue_input);
UPD7002_EOC(BBC_uPD7002_EOC);
@@ -197,13 +198,16 @@ public: // HACK FOR MC6845
optional_device<saa5050_device> m_trom;
optional_device<tms5220_device> m_tms;
optional_device<cassette_image_device> m_cassette;
- required_device<acia6850_device> m_acia;
- required_device<clock_device> m_acia_clock;
+ optional_device<acia6850_device> m_acia;
+ optional_device<clock_device> m_acia_clock;
optional_device<rs232_port_device> m_rs232;
required_device<via6522_device> m_via6522_0;
optional_device<via6522_device> m_via6522_1;
optional_device<upd7002_device> m_upd7002;
+ optional_device<mc146818_device> m_rtc;
optional_device<i8271_device> m_i8271;
+ optional_device<wd1770_t> m_wd1770;
+ optional_device<wd1772_t> m_wd1772;
required_device<generic_slot_device> m_exp1;
required_device<generic_slot_device> m_exp2;
optional_device<generic_slot_device> m_exp3;
@@ -213,7 +217,6 @@ public: // HACK FOR MC6845
required_memory_region m_region_maincpu;
required_memory_region m_region_os;
required_memory_region m_region_opt;
- optional_memory_region m_region_dfs;
required_memory_bank m_bank1; // bbca bbcb bbcbp bbcbp128 bbcm
optional_memory_bank m_bank2; // bbcbp bbcbp128 bbcm
optional_memory_bank m_bank3; // bbca bbcb
@@ -225,11 +228,8 @@ public: // HACK FOR MC6845
void check_interrupts();
- int m_DFSType; // this stores the DIP switch setting for the DFS type being used
int m_SWRAMtype; // this stores the DIP switch setting for the SWRAM type being used
int m_Speech; // this stores the CONF setting for Speech enabled/disabled
- int m_Master; // if 0 then we are emulating a BBC B style machine
- // if 1 then we are emulating a BBC Master style machine
int m_ACCCON_IRR; // IRQ inputs
@@ -347,7 +347,7 @@ public: // HACK FOR MC6845
i8271 disc control
***************************************/
- int m_previous_i8271_int_state; // 8271 interupt status
+ int m_previous_i8271_int_state; // 8271 interrupt status
/**************************************
WD1770 disc control
@@ -357,13 +357,7 @@ public: // HACK FOR MC6845
int m_wd177x_irq_state;
int m_wd177x_drq_state;
int m_previous_wd177x_int_state;
- int m_1770_IntEnabled;
-
- /**************************************
- Opus Challenger Disc control
- ***************************************/
-
- int m_opusbank;
+ int m_177x_IntEnabled;
/**************************************
Video Code
diff --git a/src/mess/includes/bebox.h b/src/mame/includes/bebox.h
index 23f252911d0..d9909a67b44 100644
--- a/src/mess/includes/bebox.h
+++ b/src/mame/includes/bebox.h
@@ -20,6 +20,9 @@
#include "machine/pit8253.h"
#include "machine/ram.h"
#include "machine/upd765.h"
+#include "machine/intelfsh.h"
+#include "bus/lpci/pci.h"
+
class bebox_state : public driver_device
{
@@ -39,7 +42,10 @@ public:
m_pic8259_1(*this, "pic8259_1"),
m_pic8259_2(*this, "pic8259_2"),
m_pit8254(*this, "pit8254"),
- m_ram(*this, RAM_TAG)
+ m_ram(*this, RAM_TAG),
+ m_smc37c78(*this, "smc37c78"),
+ m_flash(*this, "flash"),
+ m_pcibus(*this, "pcibus")
{
}
@@ -52,6 +58,9 @@ public:
required_device<pic8259_device> m_pic8259_2;
required_device<pit8254_device> m_pit8254;
required_device<ram_device> m_ram;
+ required_device<smc37c78_device> m_smc37c78;
+ required_device<fujitsu_29f016a_device> m_flash;
+ required_device<pci_bus_device> m_pcibus;
UINT32 m_cpu_imask[2];
UINT32 m_interrupts;
UINT32 m_crossproc_interrupts;
diff --git a/src/mame/includes/bionicc.h b/src/mame/includes/bionicc.h
index 1fd57dd5e7c..67912af61ab 100644
--- a/src/mame/includes/bionicc.h
+++ b/src/mame/includes/bionicc.h
@@ -18,7 +18,6 @@ public:
m_txvideoram(*this, "txvideoram"),
m_fgvideoram(*this, "fgvideoram"),
m_bgvideoram(*this, "bgvideoram"),
- m_paletteram(*this, "paletteram"),
m_maincpu(*this, "maincpu"),
m_gfxdecode(*this, "gfxdecode"),
m_palette(*this, "palette"),
@@ -30,7 +29,6 @@ public:
required_shared_ptr<UINT16> m_txvideoram;
required_shared_ptr<UINT16> m_fgvideoram;
required_shared_ptr<UINT16> m_bgvideoram;
- required_shared_ptr<UINT16> m_paletteram;
/* video-related */
tilemap_t *m_tx_tilemap;
@@ -49,7 +47,6 @@ public:
DECLARE_WRITE16_MEMBER(bionicc_bgvideoram_w);
DECLARE_WRITE16_MEMBER(bionicc_fgvideoram_w);
DECLARE_WRITE16_MEMBER(bionicc_txvideoram_w);
- DECLARE_WRITE16_MEMBER(bionicc_paletteram_w);
DECLARE_WRITE16_MEMBER(bionicc_scroll_w);
DECLARE_WRITE16_MEMBER(bionicc_gfxctrl_w);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
@@ -58,6 +55,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ DECLARE_PALETTE_DECODER(RRRRGGGGBBBBIIII);
UINT32 screen_update_bionicc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TIMER_DEVICE_CALLBACK_MEMBER(bionicc_scanline);
required_device<cpu_device> m_maincpu;
diff --git a/src/mame/includes/bishi.h b/src/mame/includes/bishi.h
index 215d61962de..d07c2881928 100644
--- a/src/mame/includes/bishi.h
+++ b/src/mame/includes/bishi.h
@@ -30,7 +30,6 @@ public:
/* memory pointers */
UINT8 * m_ram;
-// UINT8 * m_paletteram; // currently this uses generic palette handling
/* video-related */
int m_layer_colorbase[4];
diff --git a/src/mess/includes/bk.h b/src/mame/includes/bk.h
index c40b6078e56..c40b6078e56 100644
--- a/src/mess/includes/bk.h
+++ b/src/mame/includes/bk.h
diff --git a/src/mame/includes/bladestl.h b/src/mame/includes/bladestl.h
index 6988eb2b797..5eac667b587 100644
--- a/src/mame/includes/bladestl.h
+++ b/src/mame/includes/bladestl.h
@@ -45,7 +45,6 @@ public:
/* video-related */
int m_spritebank;
- int m_layer_colorbase[2];
/* misc */
int m_last_track[4];
diff --git a/src/mame/includes/blktiger.h b/src/mame/includes/blktiger.h
index 46429897ed0..73f83ce0190 100644
--- a/src/mame/includes/blktiger.h
+++ b/src/mame/includes/blktiger.h
@@ -24,8 +24,6 @@ public:
/* memory pointers */
required_device<buffered_spriteram8_device> m_spriteram;
required_shared_ptr<UINT8> m_txvideoram;
-// UINT8 * m_paletteram; // currently this uses generic palette handling
-// UINT8 * m_paletteram2; // currently this uses generic palette handling
/* video-related */
tilemap_t *m_tx_tilemap;
diff --git a/src/mame/includes/blockhl.h b/src/mame/includes/blockhl.h
deleted file mode 100644
index a6b01c412d5..00000000000
--- a/src/mame/includes/blockhl.h
+++ /dev/null
@@ -1,56 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Nicola Salmoria
-/*************************************************************************
-
- Block Hole
-
-*************************************************************************/
-
-#include "video/k052109.h"
-#include "video/k051960.h"
-#include "video/konami_helper.h"
-
-class blockhl_state : public driver_device
-{
-public:
- blockhl_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_ram(*this, "ram"),
- m_maincpu(*this, "maincpu"),
- m_audiocpu(*this, "audiocpu"),
- m_k052109(*this, "k052109"),
- m_k051960(*this, "k051960"),
- m_palette(*this, "palette") { }
-
- /* memory pointers */
- required_shared_ptr<UINT8> m_ram;
- std::vector<UINT8> m_paletteram;
-
- /* video-related */
- int m_layer_colorbase[3];
- int m_sprite_colorbase;
-
- /* misc */
- int m_palette_selected;
- int m_rombank;
-
- /* devices */
- required_device<cpu_device> m_maincpu;
- required_device<cpu_device> m_audiocpu;
- required_device<k052109_device> m_k052109;
- required_device<k051960_device> m_k051960;
- required_device<palette_device> m_palette;
- DECLARE_READ8_MEMBER(bankedram_r);
- DECLARE_WRITE8_MEMBER(bankedram_w);
- DECLARE_WRITE8_MEMBER(blockhl_sh_irqtrigger_w);
- DECLARE_READ8_MEMBER(k052109_051960_r);
- DECLARE_WRITE8_MEMBER(k052109_051960_w);
- virtual void machine_start();
- virtual void machine_reset();
- virtual void video_start();
- UINT32 screen_update_blockhl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- INTERRUPT_GEN_MEMBER(blockhl_interrupt);
- K052109_CB_MEMBER(tile_callback);
- K051960_CB_MEMBER(sprite_callback);
- DECLARE_WRITE8_MEMBER(banking_callback);
-};
diff --git a/src/mame/includes/bogeyman.h b/src/mame/includes/bogeyman.h
index 2b21fc3b918..0be085af765 100644
--- a/src/mame/includes/bogeyman.h
+++ b/src/mame/includes/bogeyman.h
@@ -37,7 +37,6 @@ public:
required_shared_ptr<UINT8> m_colorram;
required_shared_ptr<UINT8> m_colorram2;
required_shared_ptr<UINT8> m_spriteram;
-// UINT8 * m_paletteram; // currently this uses generic palette handling
/* video-related */
tilemap_t *m_bg_tilemap;
@@ -54,7 +53,6 @@ public:
DECLARE_WRITE8_MEMBER(colorram_w);
DECLARE_WRITE8_MEMBER(videoram2_w);
DECLARE_WRITE8_MEMBER(colorram2_w);
- DECLARE_WRITE8_MEMBER(paletteram_w);
DECLARE_WRITE8_MEMBER(colbank_w);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
diff --git a/src/mame/includes/bottom9.h b/src/mame/includes/bottom9.h
index d038e07b4d6..66ace28ab83 100644
--- a/src/mame/includes/bottom9.h
+++ b/src/mame/includes/bottom9.h
@@ -25,11 +25,6 @@ public:
m_k051316(*this, "k051316"),
m_palette(*this, "palette") { }
- /* video-related */
- int m_layer_colorbase[3];
- int m_sprite_colorbase;
- int m_zoom_colorbase;
-
/* misc */
int m_video_enable;
int m_zoomreadroms;
@@ -58,7 +53,6 @@ public:
DECLARE_WRITE8_MEMBER(sound_bank_w);
virtual void machine_start();
virtual void machine_reset();
- virtual void video_start();
UINT32 screen_update_bottom9(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(bottom9_interrupt);
INTERRUPT_GEN_MEMBER(bottom9_sound_interrupt);
diff --git a/src/mame/includes/btime.h b/src/mame/includes/btime.h
index 592a18f058d..fbda90ffd2d 100644
--- a/src/mame/includes/btime.h
+++ b/src/mame/includes/btime.h
@@ -14,7 +14,6 @@ public:
m_rambase(*this, "rambase"),
m_videoram(*this, "videoram"),
m_colorram(*this, "colorram"),
- m_paletteram(*this, "palette"),
m_bnj_backgroundram(*this, "bnj_bgram"),
m_zoar_scrollram(*this, "zoar_scrollram"),
m_lnc_charbank(*this, "lnc_charbank"),
@@ -31,7 +30,6 @@ public:
optional_shared_ptr<UINT8> m_rambase;
required_shared_ptr<UINT8> m_videoram;
required_shared_ptr<UINT8> m_colorram;
- optional_shared_ptr<UINT8> m_paletteram;
optional_shared_ptr<UINT8> m_bnj_backgroundram;
optional_shared_ptr<UINT8> m_zoar_scrollram;
optional_shared_ptr<UINT8> m_lnc_charbank;
@@ -78,7 +76,6 @@ public:
DECLARE_READ8_MEMBER(wtennis_reset_hack_r);
DECLARE_READ8_MEMBER(mmonkey_protection_r);
DECLARE_WRITE8_MEMBER(mmonkey_protection_w);
- DECLARE_WRITE8_MEMBER(btime_paletteram_w);
DECLARE_WRITE8_MEMBER(lnc_videoram_w);
DECLARE_READ8_MEMBER(btime_mirrorvideoram_r);
DECLARE_READ8_MEMBER(btime_mirrorcolorram_r);
diff --git a/src/mame/includes/bublbobl.h b/src/mame/includes/bublbobl.h
index 61a18a94ca8..e1899c08086 100644
--- a/src/mame/includes/bublbobl.h
+++ b/src/mame/includes/bublbobl.h
@@ -26,7 +26,6 @@ public:
required_shared_ptr<UINT8> m_videoram;
required_shared_ptr<UINT8> m_objectram;
optional_shared_ptr<UINT8> m_mcu_sharedram;
-// UINT8 * paletteram; // currently this uses generic palette handling
/* video-related */
int m_video_enable;
diff --git a/src/mess/includes/bullet.h b/src/mame/includes/bullet.h
index 390aac07ad8..390aac07ad8 100644
--- a/src/mess/includes/bullet.h
+++ b/src/mame/includes/bullet.h
diff --git a/src/mess/includes/busicom.h b/src/mame/includes/busicom.h
index 5a589036db9..5a589036db9 100644
--- a/src/mess/includes/busicom.h
+++ b/src/mame/includes/busicom.h
diff --git a/src/mess/includes/bw12.h b/src/mame/includes/bw12.h
index 474d4b2ad70..474d4b2ad70 100644
--- a/src/mess/includes/bw12.h
+++ b/src/mame/includes/bw12.h
diff --git a/src/mess/includes/bw2.h b/src/mame/includes/bw2.h
index 563ce4b4acd..563ce4b4acd 100644
--- a/src/mess/includes/bw2.h
+++ b/src/mame/includes/bw2.h
diff --git a/src/mess/includes/c128.h b/src/mame/includes/c128.h
index 0a1ca6c9cb8..c32b2afd726 100644
--- a/src/mess/includes/c128.h
+++ b/src/mame/includes/c128.h
@@ -171,6 +171,7 @@ public:
DECLARE_WRITE_LINE_MEMBER( cia1_cnt_w );
DECLARE_WRITE_LINE_MEMBER( cia1_sp_w );
DECLARE_READ8_MEMBER( cia1_pa_r );
+ DECLARE_WRITE8_MEMBER( cia1_pa_w );
DECLARE_READ8_MEMBER( cia1_pb_r );
DECLARE_WRITE8_MEMBER( cia1_pb_w );
diff --git a/src/mess/includes/c64.h b/src/mame/includes/c64.h
index a9adca1291f..787fe5a6f60 100644
--- a/src/mess/includes/c64.h
+++ b/src/mame/includes/c64.h
@@ -34,42 +34,42 @@
class c64_state : public driver_device
{
public:
- c64_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_maincpu(*this, M6510_TAG),
- m_pla(*this, PLA_TAG),
- m_vic(*this, MOS6569_TAG),
- m_sid(*this, MOS6581_TAG),
- m_cia1(*this, MOS6526_1_TAG),
- m_cia2(*this, MOS6526_2_TAG),
- m_iec(*this, CBM_IEC_TAG),
- m_joy1(*this, CONTROL1_TAG),
- m_joy2(*this, CONTROL2_TAG),
- m_exp(*this, C64_EXPANSION_SLOT_TAG),
- m_user(*this, PET_USER_PORT_TAG),
- m_ram(*this, RAM_TAG),
- m_cassette(*this, PET_DATASSETTE_PORT_TAG),
- m_color_ram(*this, "color_ram"),
- m_row0(*this, "ROW0"),
- m_row1(*this, "ROW1"),
- m_row2(*this, "ROW2"),
- m_row3(*this, "ROW3"),
- m_row4(*this, "ROW4"),
- m_row5(*this, "ROW5"),
- m_row6(*this, "ROW6"),
- m_row7(*this, "ROW7"),
- m_lock(*this, "LOCK"),
- m_loram(1),
- m_hiram(1),
- m_charen(1),
- m_va14(1),
- m_va15(1),
- m_restore(1),
- m_cia1_irq(CLEAR_LINE),
- m_cia2_irq(CLEAR_LINE),
- m_vic_irq(CLEAR_LINE),
- m_exp_irq(CLEAR_LINE),
- m_exp_nmi(CLEAR_LINE)
+ c64_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
+ m_maincpu(*this, M6510_TAG),
+ m_pla(*this, PLA_TAG),
+ m_vic(*this, MOS6569_TAG),
+ m_sid(*this, MOS6581_TAG),
+ m_cia1(*this, MOS6526_1_TAG),
+ m_cia2(*this, MOS6526_2_TAG),
+ m_iec(*this, CBM_IEC_TAG),
+ m_joy1(*this, CONTROL1_TAG),
+ m_joy2(*this, CONTROL2_TAG),
+ m_exp(*this, C64_EXPANSION_SLOT_TAG),
+ m_user(*this, PET_USER_PORT_TAG),
+ m_ram(*this, RAM_TAG),
+ m_cassette(*this, PET_DATASSETTE_PORT_TAG),
+ m_color_ram(*this, "color_ram"),
+ m_row0(*this, "ROW0"),
+ m_row1(*this, "ROW1"),
+ m_row2(*this, "ROW2"),
+ m_row3(*this, "ROW3"),
+ m_row4(*this, "ROW4"),
+ m_row5(*this, "ROW5"),
+ m_row6(*this, "ROW6"),
+ m_row7(*this, "ROW7"),
+ m_lock(*this, "LOCK"),
+ m_loram(1),
+ m_hiram(1),
+ m_charen(1),
+ m_va14(1),
+ m_va15(1),
+ m_restore(1),
+ m_cia1_irq(CLEAR_LINE),
+ m_cia2_irq(CLEAR_LINE),
+ m_vic_irq(CLEAR_LINE),
+ m_exp_irq(CLEAR_LINE),
+ m_exp_nmi(CLEAR_LINE)
{ }
// ROM
@@ -121,6 +121,7 @@ public:
DECLARE_WRITE_LINE_MEMBER( cia1_irq_w );
DECLARE_READ8_MEMBER( cia1_pa_r );
+ DECLARE_WRITE8_MEMBER( cia1_pa_w );
DECLARE_READ8_MEMBER( cia1_pb_r );
DECLARE_WRITE8_MEMBER( cia1_pb_w );
diff --git a/src/mess/includes/c65.h b/src/mame/includes/c65.h
index e8771e83fc1..e8771e83fc1 100644
--- a/src/mess/includes/c65.h
+++ b/src/mame/includes/c65.h
diff --git a/src/mess/includes/c80.h b/src/mame/includes/c80.h
index d2b461fb0a3..d2b461fb0a3 100644
--- a/src/mess/includes/c80.h
+++ b/src/mame/includes/c80.h
diff --git a/src/mame/includes/cbasebal.h b/src/mame/includes/cbasebal.h
index 5c9428de199..c21728a45dc 100644
--- a/src/mame/includes/cbasebal.h
+++ b/src/mame/includes/cbasebal.h
@@ -18,7 +18,6 @@ public:
/* memory pointers */
required_shared_ptr<UINT8> m_spriteram;
-// UINT8 * m_paletteram; // currently this uses generic palette handling
/* video-related */
tilemap_t *m_fg_tilemap;
diff --git a/src/mess/includes/cbm2.h b/src/mame/includes/cbm2.h
index 41ba6707dc8..41ba6707dc8 100644
--- a/src/mess/includes/cbm2.h
+++ b/src/mame/includes/cbm2.h
diff --git a/src/mame/includes/cclimber.h b/src/mame/includes/cclimber.h
index 14489ef1f5f..3c8605bf2a1 100644
--- a/src/mame/includes/cclimber.h
+++ b/src/mame/includes/cclimber.h
@@ -22,7 +22,7 @@ public:
m_toprollr_bg_videoram(*this, "bg_videoram"),
m_toprollr_bg_coloram(*this, "bg_coloram"),
m_decrypted_opcodes(*this, "decrypted_opcodes") { }
-
+
required_device<cpu_device> m_maincpu;
optional_device<cpu_device> m_audiocpu;
required_device<gfxdecode_device> m_gfxdecode;
diff --git a/src/mess/includes/cgc7900.h b/src/mame/includes/cgc7900.h
index d5b6dc86548..d5b6dc86548 100644
--- a/src/mess/includes/cgc7900.h
+++ b/src/mame/includes/cgc7900.h
diff --git a/src/mess/includes/channelf.h b/src/mame/includes/channelf.h
index 606e0a6abfb..606e0a6abfb 100644
--- a/src/mess/includes/channelf.h
+++ b/src/mame/includes/channelf.h
diff --git a/src/mame/includes/chihiro.h b/src/mame/includes/chihiro.h
index 55f6e20ab8c..8c27277fe47 100644
--- a/src/mame/includes/chihiro.h
+++ b/src/mame/includes/chihiro.h
@@ -185,6 +185,7 @@ public:
memset(pfifo, 0, sizeof(pfifo));
memset(pcrtc, 0, sizeof(pcrtc));
memset(pmc, 0, sizeof(pmc));
+ memset(pgraph, 0, sizeof(pgraph));
memset(ramin, 0, sizeof(ramin));
computedilated();
objectdata = &(object_data_alloc());
@@ -194,6 +195,7 @@ public:
enabled_vertex_attributes = 0;
indexesleft_count = 0;
vertex_pipeline = 4;
+ color_mask = 0xffffffff;
alpha_test_enabled = false;
alpha_reference = 0;
alpha_func = nv2a_renderer::ALWAYS;
@@ -222,8 +224,10 @@ public:
dilate_rendertarget = 0;
antialiasing_rendertarget = 0;
type_rendertarget = nv2a_renderer::LINEAR;
- depth_rendertarget = nv2a_renderer::NV2A_RT_DEPTH_FORMAT_Z24S8;
- color_rendertarget = nv2a_renderer::NV2A_COLOR_FORMAT_A8R8G8B8;
+ depthformat_rendertarget = nv2a_renderer::NV2A_RT_DEPTH_FORMAT_Z24S8;
+ colorformat_rendertarget = nv2a_renderer::NV2A_COLOR_FORMAT_A8R8G8B8;
+ bytespixel_rendertarget = 4;
+ antialias_control = 0;
rendertarget = NULL;
depthbuffer = NULL;
displayedtarget = NULL;
@@ -238,8 +242,10 @@ public:
}
DECLARE_READ32_MEMBER(geforce_r);
DECLARE_WRITE32_MEMBER(geforce_w);
- bool vblank_callback(screen_device &screen, bool state);
+ void vblank_callback(screen_device &screen, bool state);
UINT32 screen_update_callback(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ bool update_interrupts();
+ void set_interrupt_device(pic8259_device *device);
void render_texture_simple(INT32 scanline, const extent_t &extent, const nvidia_object_data &extradata, int threadid);
void render_color(INT32 scanline, const extent_t &extent, const nvidia_object_data &extradata, int threadid);
@@ -250,6 +256,7 @@ public:
void geforce_read_dma_object(UINT32 handle, UINT32 &offset, UINT32 &size);
int geforce_exec_method(address_space &space, UINT32 channel, UINT32 subchannel, UINT32 method, UINT32 address, int &countlen);
UINT32 texture_get_texel(int number, int x, int y);
+ UINT8 *read_pixel(int x, int y, UINT32 c[4]);
void write_pixel(int x, int y, UINT32 color, UINT32 depth);
void combiner_initialize_registers(UINT32 argb8[6]);
void combiner_initialize_stage(int stage_number);
@@ -289,6 +296,7 @@ public:
int read_vertices_0x1810(address_space & space, vertex_nv *destination, int offset, int limit);
int read_vertices_0x1818(address_space & space, vertex_nv *destination, UINT32 address, int limit);
void convert_vertices_poly(vertex_nv *source, vertex_t *destination, int count);
+ void clear_depth_buffer(int what, UINT32 value);
inline UINT8 *direct_access_ptr(offs_t address);
TIMER_CALLBACK_MEMBER(puller_timer_work);
@@ -303,10 +311,12 @@ public:
UINT32 pfifo[0x2000 / 4];
UINT32 pcrtc[0x1000 / 4];
UINT32 pmc[0x1000 / 4];
+ UINT32 pgraph[0x2000 / 4];
UINT32 ramin[0x100000 / 4];
UINT32 dma_offset[2];
UINT32 dma_size[2];
UINT8 *basemempointer;
+ pic8259_device *interruptdevice;
rectangle limits_rendertarget;
UINT32 pitch_rendertarget;
UINT32 pitch_depthbuffer;
@@ -315,8 +325,10 @@ public:
int dilate_rendertarget;
int antialiasing_rendertarget;
int type_rendertarget;
- int depth_rendertarget;
- int color_rendertarget;
+ int depthformat_rendertarget;
+ int colorformat_rendertarget;
+ int bytespixel_rendertarget;
+ UINT32 antialias_control;
UINT32 *rendertarget;
UINT32 *depthbuffer;
UINT32 *displayedtarget;
@@ -441,6 +453,7 @@ public:
int used;
osd_lock *lock;
} combiner;
+ UINT32 color_mask;
bool alpha_test_enabled;
int alpha_func;
int alpha_reference;
@@ -649,9 +662,13 @@ public:
};
enum NV2A_COLOR_FORMAT {
+ NV2A_COLOR_FORMAT_X1R5G6B5 = 0x0002,
NV2A_COLOR_FORMAT_R5G6B5 = 0x0003,
+ NV2A_COLOR_FORMAT_UNKNOWN4 = 0x0004,
NV2A_COLOR_FORMAT_X8R8G8B8 = 0x0005,
+ NV2A_COLOR_FORMAT_X1A7R8G8B8 = 0x0007,
NV2A_COLOR_FORMAT_A8R8G8B8 = 0x0008,
- NV2A_COLOR_FORMAT_B8 = 0x0009
+ NV2A_COLOR_FORMAT_B8 = 0x0009,
+ NV2A_COLOR_FORMAT_G8B8 = 0x000a
};
};
diff --git a/src/mame/includes/chqflag.h b/src/mame/includes/chqflag.h
index 22127cce04b..79b9aca8f9d 100644
--- a/src/mame/includes/chqflag.h
+++ b/src/mame/includes/chqflag.h
@@ -28,10 +28,6 @@ public:
m_palette(*this, "palette"),
m_rombank(*this, "rombank") { }
- /* video-related */
- int m_zoom_colorbase[2];
- int m_sprite_colorbase;
-
/* misc */
int m_k051316_readroms;
int m_last_vreg;
@@ -64,9 +60,7 @@ public:
DECLARE_WRITE8_MEMBER(k007232_extvolume_w);
virtual void machine_start();
virtual void machine_reset();
- virtual void video_start();
UINT32 screen_update_chqflag(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- TIMER_DEVICE_CALLBACK_MEMBER(chqflag_scanline);
DECLARE_WRITE8_MEMBER(volume_callback0);
DECLARE_WRITE8_MEMBER(volume_callback1);
K051316_CB_MEMBER(zoom_callback_1);
diff --git a/src/mame/includes/citycon.h b/src/mame/includes/citycon.h
index 4204710e97a..aaf9a33e836 100644
--- a/src/mame/includes/citycon.h
+++ b/src/mame/includes/citycon.h
@@ -24,7 +24,6 @@ public:
required_shared_ptr<UINT8> m_linecolor;
required_shared_ptr<UINT8> m_spriteram;
required_shared_ptr<UINT8> m_scroll;
-// UINT8 * m_paletteram; // currently this uses generic palette handling
/* video-related */
tilemap_t *m_bg_tilemap;
diff --git a/src/mess/includes/coco.h b/src/mame/includes/coco.h
index a43af0d40f0..363fcff5d2a 100644
--- a/src/mess/includes/coco.h
+++ b/src/mame/includes/coco.h
@@ -153,8 +153,8 @@ protected:
void recalculate_firq(void);
// changed handlers
- virtual void pia1_pa_changed(void);
- virtual void pia1_pb_changed(void);
+ virtual void pia1_pa_changed(UINT8 data);
+ virtual void pia1_pb_changed(UINT8 data);
// miscellaneous
virtual void update_keyboard_input(UINT8 value, UINT8 z);
@@ -208,7 +208,6 @@ private:
bool is_joystick_hires(int joystick_index);
soundmux_status_t soundmux_status(void);
- UINT8 sound_value(void);
void update_sound(void);
bool joyin(void);
void poll_joystick(bool *joyin, UINT8 *buttons);
@@ -244,6 +243,10 @@ private:
// DAC output
UINT8 m_dac_output;
+ // remember the last audio sample level from the analog sources (DAC, cart, cassette) so that we don't
+ // introduce step changes when the audio output is enabled/disabled via PIA1 CB2
+ UINT8 m_analog_audio_level;
+
// hires interface
emu_timer *m_hiresjoy_transition_timer[2];
bool m_hiresjoy_ca;
diff --git a/src/mess/includes/coco12.h b/src/mame/includes/coco12.h
index c264ad092e5..030adc35b25 100644
--- a/src/mess/includes/coco12.h
+++ b/src/mame/includes/coco12.h
@@ -56,7 +56,7 @@ protected:
virtual void update_cart_base(UINT8 *cart_base);
/* PIA1 */
- virtual void pia1_pb_changed(void);
+ virtual void pia1_pb_changed(UINT8 data);
private:
diff --git a/src/mess/includes/coco3.h b/src/mame/includes/coco3.h
index 8ac863fa6b3..8ac863fa6b3 100644
--- a/src/mess/includes/coco3.h
+++ b/src/mame/includes/coco3.h
diff --git a/src/mess/includes/coleco.h b/src/mame/includes/coleco.h
index 7b91445e8e1..ab6e1379663 100644
--- a/src/mess/includes/coleco.h
+++ b/src/mame/includes/coleco.h
@@ -20,13 +20,26 @@ public:
: driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_cart(*this, COLECOVISION_CARTRIDGE_SLOT_TAG),
- m_ram(*this, "ram")
+ m_ram(*this, "ram"),
+ m_ctrlsel(*this, "CTRLSEL"),
+ m_std_keypad1(*this, "STD_KEYPAD1"),
+ m_std_joy1(*this, "STD_JOY1"),
+ m_std_keypad2(*this, "STD_KEYPAD2"),
+ m_std_joy2(*this, "STD_JOY2"),
+ m_sac_keypad1(*this, "SAC_KEYPAD1"),
+ m_sac_joy1(*this, "SAC_JOY1"),
+ m_sac_slide1(*this, "SAC_SLIDE1"),
+ m_sac_keypad2(*this, "SAC_KEYPAD2"),
+ m_sac_joy2(*this, "SAC_JOY2"),
+ m_sac_slide2(*this, "SAC_SLIDE2"),
+ m_driv_wheel1(*this, "DRIV_WHEEL1"),
+ m_driv_pedal1(*this, "DRIV_PEDAL1"),
+ m_driv_wheel2(*this, "DRIV_WHEEL2"),
+ m_driv_pedal2(*this, "DRIV_PEDAL2"),
+ m_roller_x(*this, "ROLLER_X"),
+ m_roller_y(*this, "ROLLER_Y")
{ }
- required_device<cpu_device> m_maincpu;
- required_device<colecovision_cartridge_slot_device> m_cart;
- required_shared_ptr<UINT8> m_ram;
-
virtual void machine_start();
virtual void machine_reset();
@@ -36,6 +49,21 @@ public:
DECLARE_WRITE8_MEMBER( paddle_off_w );
DECLARE_WRITE8_MEMBER( paddle_on_w );
+ TIMER_CALLBACK_MEMBER(paddle_d7reset_callback);
+ TIMER_CALLBACK_MEMBER(paddle_irqreset_callback);
+ TIMER_CALLBACK_MEMBER(paddle_pulse_callback);
+ TIMER_DEVICE_CALLBACK_MEMBER(paddle_update_callback);
+ DECLARE_WRITE_LINE_MEMBER(coleco_vdp_interrupt);
+ DECLARE_DEVICE_IMAGE_LOAD_MEMBER(czz50_cart);
+
+ UINT8 coleco_paddle_read(int port, int joy_mode, UINT8 joy_status);
+ UINT8 coleco_scan_paddles(UINT8 *joy_status0, UINT8 *joy_status1);
+
+private:
+ required_device<cpu_device> m_maincpu;
+ required_device<colecovision_cartridge_slot_device> m_cart;
+ required_shared_ptr<UINT8> m_ram;
+
int m_joy_mode;
int m_last_nmi_state;
@@ -48,12 +76,24 @@ public:
int m_joy_d7_state[2];
UINT8 m_joy_analog_state[2];
UINT8 m_joy_analog_reload[2];
- TIMER_CALLBACK_MEMBER(paddle_d7reset_callback);
- TIMER_CALLBACK_MEMBER(paddle_irqreset_callback);
- TIMER_CALLBACK_MEMBER(paddle_pulse_callback);
- TIMER_DEVICE_CALLBACK_MEMBER(paddle_update_callback);
- DECLARE_WRITE_LINE_MEMBER(coleco_vdp_interrupt);
- DECLARE_DEVICE_IMAGE_LOAD_MEMBER(czz50_cart);
+
+ optional_ioport m_ctrlsel;
+ required_ioport m_std_keypad1;
+ required_ioport m_std_joy1;
+ required_ioport m_std_keypad2;
+ required_ioport m_std_joy2;
+ optional_ioport m_sac_keypad1;
+ optional_ioport m_sac_joy1;
+ optional_ioport m_sac_slide1;
+ optional_ioport m_sac_keypad2;
+ optional_ioport m_sac_joy2;
+ optional_ioport m_sac_slide2;
+ optional_ioport m_driv_wheel1;
+ optional_ioport m_driv_pedal1;
+ optional_ioport m_driv_wheel2;
+ optional_ioport m_driv_pedal2;
+ optional_ioport m_roller_x;
+ optional_ioport m_roller_y;
};
#endif
diff --git a/src/mess/includes/compis.h b/src/mame/includes/compis.h
index fbb562b4b90..fbb562b4b90 100644
--- a/src/mess/includes/compis.h
+++ b/src/mame/includes/compis.h
diff --git a/src/mess/includes/comquest.h b/src/mame/includes/comquest.h
index 5b36a3efefe..5b36a3efefe 100644
--- a/src/mess/includes/comquest.h
+++ b/src/mame/includes/comquest.h
diff --git a/src/mess/includes/comx35.h b/src/mame/includes/comx35.h
index 93bc60a84e8..93bc60a84e8 100644
--- a/src/mess/includes/comx35.h
+++ b/src/mame/includes/comx35.h
diff --git a/src/mess/includes/concept.h b/src/mame/includes/concept.h
index c9759c893a8..c9759c893a8 100644
--- a/src/mess/includes/concept.h
+++ b/src/mame/includes/concept.h
diff --git a/src/mess/includes/cosmicos.h b/src/mame/includes/cosmicos.h
index 9941d4b732f..9941d4b732f 100644
--- a/src/mess/includes/cosmicos.h
+++ b/src/mame/includes/cosmicos.h
diff --git a/src/mame/includes/crimfght.h b/src/mame/includes/crimfght.h
index 2e3acc50625..70b96323d40 100644
--- a/src/mame/includes/crimfght.h
+++ b/src/mame/includes/crimfght.h
@@ -5,11 +5,10 @@
Crime Fighters
*************************************************************************/
-#include "cpu/m6809/konami.h"
+#include "machine/bankdev.h"
#include "sound/k007232.h"
#include "video/k052109.h"
#include "video/k051960.h"
-#include "video/konami_helper.h"
class crimfght_state : public driver_device
{
@@ -18,37 +17,39 @@ public:
: driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_audiocpu(*this, "audiocpu"),
+ m_bank0000(*this, "bank0000"),
m_k007232(*this, "k007232"),
m_k052109(*this, "k052109"),
m_k051960(*this, "k051960"),
- m_palette(*this, "palette") { }
-
- /* memory pointers */
- std::vector<UINT8> m_paletteram;
-
- /* video-related */
- int m_layer_colorbase[3];
- int m_sprite_colorbase;
+ m_palette(*this, "palette"),
+ m_rombank(*this, "rombank") { }
/* devices */
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_audiocpu;
+ required_device<address_map_bank_device> m_bank0000;
required_device<k007232_device> m_k007232;
required_device<k052109_device> m_k052109;
required_device<k051960_device> m_k051960;
required_device<palette_device> m_palette;
+ required_memory_bank m_rombank;
DECLARE_WRITE8_MEMBER(crimfght_coin_w);
- DECLARE_WRITE8_MEMBER(crimfght_sh_irqtrigger_w);
+ DECLARE_WRITE8_MEMBER(sound_w);
DECLARE_READ8_MEMBER(k052109_051960_r);
DECLARE_WRITE8_MEMBER(k052109_051960_w);
- DECLARE_WRITE8_MEMBER(crimfght_snd_bankswitch_w);
+ IRQ_CALLBACK_MEMBER(audiocpu_irq_ack);
+ DECLARE_WRITE8_MEMBER(ym2151_ct_w);
virtual void machine_start();
- virtual void video_start();
UINT32 screen_update_crimfght(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- INTERRUPT_GEN_MEMBER(crimfght_interrupt);
DECLARE_WRITE8_MEMBER(volume_callback);
K052109_CB_MEMBER(tile_callback);
K051960_CB_MEMBER(sprite_callback);
DECLARE_WRITE8_MEMBER(banking_callback);
+ DECLARE_CUSTOM_INPUT_MEMBER(system_r);
+
+private:
+ int m_woco;
+ int m_rmrd;
+ int m_init;
};
diff --git a/src/mame/includes/crospang.h b/src/mame/includes/crospang.h
index ab60e145d4f..a314a1347eb 100644
--- a/src/mame/includes/crospang.h
+++ b/src/mame/includes/crospang.h
@@ -25,7 +25,6 @@ public:
required_shared_ptr<UINT16> m_bg_videoram;
required_shared_ptr<UINT16> m_spriteram;
optional_device<decospr_device> m_sprgen;
-// UINT16 * m_paletteram; // currently this uses generic palette handling
/* video-related */
tilemap_t *m_bg_layer;
diff --git a/src/mame/includes/crshrace.h b/src/mame/includes/crshrace.h
index 4569196d4e6..f377019864d 100644
--- a/src/mame/includes/crshrace.h
+++ b/src/mame/includes/crshrace.h
@@ -34,8 +34,6 @@ public:
required_device<buffered_spriteram16_device> m_spriteram2;
required_device<vsystem_spr_device> m_spr;
- // UINT16 * m_paletteram; // currently this uses generic palette handling
-
/* video-related */
tilemap_t *m_tilemap1;
tilemap_t *m_tilemap2;
diff --git a/src/mess/includes/crvision.h b/src/mame/includes/crvision.h
index 0956119c4c7..0956119c4c7 100644
--- a/src/mess/includes/crvision.h
+++ b/src/mame/includes/crvision.h
diff --git a/src/mess/includes/cxhumax.h b/src/mame/includes/cxhumax.h
index 1fd1e4d7568..1fd1e4d7568 100644
--- a/src/mess/includes/cxhumax.h
+++ b/src/mame/includes/cxhumax.h
diff --git a/src/mess/includes/cybiko.h b/src/mame/includes/cybiko.h
index f7ac742808f..7bf4e0834de 100644
--- a/src/mess/includes/cybiko.h
+++ b/src/mame/includes/cybiko.h
@@ -51,13 +51,14 @@ class cybiko_state : public driver_device
public:
cybiko_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
- m_maincpu(*this, "maincpu"),
- m_crtc(*this, "hd66421"),
- m_speaker(*this, "speaker"),
- m_rtc(*this, "rtc"),
- m_ram(*this, RAM_TAG),
- m_flash1(*this, "flash1"),
- m_nvram(*this, "nvram")
+ m_maincpu(*this, "maincpu"),
+ m_crtc(*this, "hd66421"),
+ m_speaker(*this, "speaker"),
+ m_rtc(*this, "rtc"),
+ m_ram(*this, RAM_TAG),
+ m_flash1(*this, "flash1"),
+ m_nvram(*this, "nvram"),
+ m_input(*this, "A")
{ }
DECLARE_READ16_MEMBER(serflash_r);
@@ -92,6 +93,7 @@ public:
required_device<ram_device> m_ram;
optional_device<at45db041_device> m_flash1;
required_device<nvram_device> m_nvram;
+ optional_ioport_array<15> m_input;
DECLARE_DRIVER_INIT(cybikoxt);
DECLARE_DRIVER_INIT(cybiko);
virtual void machine_start();
diff --git a/src/mess/includes/dai.h b/src/mame/includes/dai.h
index 2eb2d403979..2eb2d403979 100644
--- a/src/mess/includes/dai.h
+++ b/src/mame/includes/dai.h
diff --git a/src/mame/includes/dbz.h b/src/mame/includes/dbz.h
index 7063cf4ac07..358b3a65e99 100644
--- a/src/mame/includes/dbz.h
+++ b/src/mame/includes/dbz.h
@@ -33,7 +33,6 @@ public:
/* memory pointers */
required_shared_ptr<UINT16> m_bg1_videoram;
required_shared_ptr<UINT16> m_bg2_videoram;
-// UINT16 * m_paletteram; // currently this uses generic palette handling
/* video-related */
tilemap_t *m_bg1_tilemap;
diff --git a/src/mess/includes/dccons.h b/src/mame/includes/dccons.h
index 47b47d72f6c..47b47d72f6c 100644
--- a/src/mess/includes/dccons.h
+++ b/src/mame/includes/dccons.h
diff --git a/src/mame/includes/dec8.h b/src/mame/includes/dec8.h
index d59022f0224..2c7d4a05315 100644
--- a/src/mame/includes/dec8.h
+++ b/src/mame/includes/dec8.h
@@ -52,8 +52,6 @@ public:
UINT8 * m_pf1_data;
UINT8 * m_row;
-// UINT8 * m_paletteram; // currently this uses generic palette handling
-// UINT8 * m_paletteram_2; // currently this uses generic palette handling
UINT16 m_buffered_spriteram16[0x800/2]; // for the mxc06 sprite chip emulation (oscar, cobra)
/* video-related */
diff --git a/src/mame/includes/deco32.h b/src/mame/includes/deco32.h
index a03efc5adce..71de12f7624 100644
--- a/src/mame/includes/deco32.h
+++ b/src/mame/includes/deco32.h
@@ -116,7 +116,7 @@ public:
// nslasher
DECLARE_WRITE32_MEMBER(nslasher_eeprom_w);
-
+
// tattass
DECLARE_WRITE32_MEMBER(tattass_control_w);
@@ -205,7 +205,7 @@ public:
UINT32 m_sprite_ctrl;
int m_lightgun_port;
bitmap_rgb32 m_temp_render_bitmap;
-
+
DECLARE_READ32_MEMBER(lightgun_r);
DECLARE_WRITE32_MEMBER(lightgun_w);
DECLARE_WRITE32_MEMBER(sprite_control_w);
diff --git a/src/mess/includes/dgn_beta.h b/src/mame/includes/dgn_beta.h
index 3869f71fffc..3869f71fffc 100644
--- a/src/mess/includes/dgn_beta.h
+++ b/src/mame/includes/dgn_beta.h
diff --git a/src/mess/includes/dgnalpha.h b/src/mame/includes/dgnalpha.h
index 402de4f846f..402de4f846f 100644
--- a/src/mess/includes/dgnalpha.h
+++ b/src/mame/includes/dgnalpha.h
diff --git a/src/mame/includes/dietgo.h b/src/mame/includes/dietgo.h
index 12c47ebf49e..3b3871b8ead 100644
--- a/src/mame/includes/dietgo.h
+++ b/src/mame/includes/dietgo.h
@@ -34,7 +34,6 @@ public:
required_shared_ptr<UINT16> m_pf2_rowscroll;
required_shared_ptr<UINT16> m_spriteram;
optional_device<decospr_device> m_sprgen;
-// UINT16 * m_paletteram; // currently this uses generic palette handling (in decocomn.c)
/* devices */
required_device<cpu_device> m_maincpu;
diff --git a/src/mame/includes/djmain.h b/src/mame/includes/djmain.h
index 975b2f34dae..9b1bb3a0b97 100644
--- a/src/mame/includes/djmain.h
+++ b/src/mame/includes/djmain.h
@@ -16,8 +16,7 @@ public:
m_k055555(*this, "k055555"),
m_ata(*this, "ata"),
m_gfxdecode(*this, "gfxdecode"),
- m_palette(*this, "palette"),
- m_generic_paletteram_32(*this, "paletteram")
+ m_palette(*this, "palette")
{
}
@@ -32,7 +31,6 @@ public:
const UINT8 *m_ata_user_password;
const UINT8 *m_ata_master_password;
required_shared_ptr<UINT32> m_obj_ram;
- DECLARE_WRITE32_MEMBER(paletteram32_w);
DECLARE_WRITE32_MEMBER(sndram_bank_w);
DECLARE_READ32_MEMBER(sndram_r);
DECLARE_WRITE32_MEMBER(sndram_w);
@@ -76,6 +74,5 @@ public:
required_device<ata_interface_device> m_ata;
required_device<gfxdecode_device> m_gfxdecode;
required_device<palette_device> m_palette;
- required_shared_ptr<UINT32> m_generic_paletteram_32;
K056832_CB_MEMBER(tile_callback);
};
diff --git a/src/mess/includes/dm7000.h b/src/mame/includes/dm7000.h
index 241ba0d31b6..241ba0d31b6 100644
--- a/src/mess/includes/dm7000.h
+++ b/src/mame/includes/dm7000.h
diff --git a/src/mame/includes/dogfgt.h b/src/mame/includes/dogfgt.h
index aa614bf9b29..ba6f48a99f8 100644
--- a/src/mame/includes/dogfgt.h
+++ b/src/mame/includes/dogfgt.h
@@ -23,7 +23,6 @@ public:
required_shared_ptr<UINT8> m_bgvideoram;
required_shared_ptr<UINT8> m_spriteram;
required_shared_ptr<UINT8> m_sharedram;
-// UINT8 * m_paletteram; // currently this uses generic palette handling
/* video-related */
bitmap_ind16 m_pixbitmap;
diff --git a/src/mess/includes/dragon.h b/src/mame/includes/dragon.h
index 6db0d5f86a2..7006d37e68d 100644
--- a/src/mess/includes/dragon.h
+++ b/src/mame/includes/dragon.h
@@ -45,7 +45,7 @@ public:
required_device<printer_image_device> m_printer;
protected:
- virtual void pia1_pa_changed(void);
+ virtual void pia1_pa_changed(UINT8 data);
};
@@ -65,7 +65,7 @@ protected:
virtual DECLARE_READ8_MEMBER( ff00_read );
virtual DECLARE_WRITE8_MEMBER( ff00_write );
- virtual void pia1_pb_changed(void);
+ virtual void pia1_pb_changed(UINT8 data);
void page_rom(bool romswitch);
};
diff --git a/src/mame/includes/drgnmst.h b/src/mame/includes/drgnmst.h
index 65e67b5ed1b..00ccb915410 100644
--- a/src/mame/includes/drgnmst.h
+++ b/src/mame/includes/drgnmst.h
@@ -31,7 +31,6 @@ public:
required_shared_ptr<UINT16> m_rowscrollram;
required_shared_ptr<UINT16> m_vidregs2;
required_shared_ptr<UINT16> m_spriteram;
-// UINT16 * m_paletteram; // currently this uses generic palette handling
/* video-related */
tilemap_t *m_bg_tilemap;
diff --git a/src/mame/includes/dynduke.h b/src/mame/includes/dynduke.h
index 4a8e84bcdff..43f75f66567 100644
--- a/src/mame/includes/dynduke.h
+++ b/src/mame/includes/dynduke.h
@@ -16,8 +16,7 @@ public:
m_scroll_ram(*this, "scroll_ram"),
m_videoram(*this, "videoram"),
m_back_data(*this, "back_data"),
- m_fore_data(*this, "fore_data"),
- m_generic_paletteram_16(*this, "paletteram") { }
+ m_fore_data(*this, "fore_data") { }
required_device<cpu_device> m_maincpu;
required_device<seibu_sound_device> m_seibu_sound;
@@ -29,7 +28,6 @@ public:
required_shared_ptr<UINT16> m_videoram;
required_shared_ptr<UINT16> m_back_data;
required_shared_ptr<UINT16> m_fore_data;
- required_shared_ptr<UINT16> m_generic_paletteram_16;
tilemap_t *m_bg_layer;
tilemap_t *m_fg_layer;
@@ -43,7 +41,6 @@ public:
int m_old_back;
int m_old_fore;
- DECLARE_WRITE16_MEMBER(paletteram_w);
DECLARE_WRITE16_MEMBER(background_w);
DECLARE_WRITE16_MEMBER(foreground_w);
DECLARE_WRITE16_MEMBER(text_w);
diff --git a/src/mess/includes/ec184x.h b/src/mame/includes/ec184x.h
index 7921bf5b97e..7921bf5b97e 100644
--- a/src/mess/includes/ec184x.h
+++ b/src/mame/includes/ec184x.h
diff --git a/src/mess/includes/einstein.h b/src/mame/includes/einstein.h
index c027a36701e..c027a36701e 100644
--- a/src/mess/includes/einstein.h
+++ b/src/mame/includes/einstein.h
diff --git a/src/mess/includes/electron.h b/src/mame/includes/electron.h
index d9623923f17..d9623923f17 100644
--- a/src/mess/includes/electron.h
+++ b/src/mame/includes/electron.h
diff --git a/src/mess/includes/elf.h b/src/mame/includes/elf.h
index d3dbc3d685e..d3dbc3d685e 100644
--- a/src/mess/includes/elf.h
+++ b/src/mame/includes/elf.h
diff --git a/src/mess/includes/ep64.h b/src/mame/includes/ep64.h
index 42dd9115e35..42dd9115e35 100644
--- a/src/mess/includes/ep64.h
+++ b/src/mame/includes/ep64.h
diff --git a/src/mame/includes/esd16.h b/src/mame/includes/esd16.h
index bf8ab730fa2..47cf740c227 100644
--- a/src/mame/includes/esd16.h
+++ b/src/mame/includes/esd16.h
@@ -38,7 +38,6 @@ public:
required_shared_ptr<UINT16> m_head_layersize;
required_shared_ptr<UINT16> m_headpanic_platform_x;
required_shared_ptr<UINT16> m_headpanic_platform_y;
-// UINT16 * m_paletteram; // currently this uses generic palette handling
/* video-related */
tilemap_t *m_tilemap_0_16x16;
diff --git a/src/mess/includes/eti660.h b/src/mame/includes/eti660.h
index 6298475d66a..0502bcd0cbd 100644
--- a/src/mess/includes/eti660.h
+++ b/src/mame/includes/eti660.h
@@ -8,6 +8,7 @@
#include "emu.h"
#include "cpu/cosmac/cosmac.h"
#include "imagedev/cassette.h"
+#include "imagedev/snapquik.h"
#include "machine/ram.h"
#include "machine/6821pia.h"
#include "machine/rescap.h"
@@ -28,28 +29,16 @@ class eti660_state : public driver_device
{
public:
eti660_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_maincpu(*this, CDP1802_TAG),
- m_cti(*this, CDP1864_TAG),
- m_pia(*this, MC6821_TAG),
- m_cassette(*this, "cassette"),
- m_pa0(*this, "PA0"),
- m_pa1(*this, "PA1"),
- m_pa2(*this, "PA2"),
- m_pa3(*this, "PA3"),
- m_special(*this, "SPECIAL")
+ : driver_device(mconfig, type, tag)
+ , m_p_videoram(*this, "videoram")
+ , m_maincpu(*this, CDP1802_TAG)
+ , m_cti(*this, CDP1864_TAG)
+ , m_pia(*this, MC6821_TAG)
+ , m_cassette(*this, "cassette")
+ , m_io_keyboard(*this, "KEY")
+ , m_special(*this, "SPECIAL")
{ }
- required_device<cosmac_device> m_maincpu;
- required_device<cdp1864_device> m_cti;
- required_device<pia6821_device> m_pia;
- required_device<cassette_image_device> m_cassette;
- required_ioport m_pa0;
- required_ioport m_pa1;
- required_ioport m_pa2;
- required_ioport m_pa3;
- required_ioport m_special;
-
DECLARE_READ8_MEMBER( pia_r );
DECLARE_WRITE8_MEMBER( pia_w );
DECLARE_WRITE8_MEMBER( colorram_w );
@@ -63,13 +52,28 @@ public:
DECLARE_WRITE8_MEMBER( dma_w );
DECLARE_READ8_MEMBER( pia_pa_r );
DECLARE_WRITE8_MEMBER( pia_pa_w );
+ DECLARE_QUICKLOAD_LOAD_MEMBER( eti660 );
+ required_shared_ptr<UINT8> m_p_videoram;
+
+private:
+ required_device<cosmac_device> m_maincpu;
+ required_device<cdp1864_device> m_cti;
+ required_device<pia6821_device> m_pia;
+ required_device<cassette_image_device> m_cassette;
+ required_ioport_array<4> m_io_keyboard;
+ required_ioport m_special;
+
+ virtual void machine_start();
+ virtual void machine_reset();
+ UINT16 m_resetcnt;
/* keyboard state */
UINT8 m_keylatch;
/* video state */
- UINT8 m_color_ram[0x100];
+ UINT8 m_color_ram[0xc0];
UINT8 m_color;
+ bool m_color_on;
};
#endif
diff --git a/src/mess/includes/exp85.h b/src/mame/includes/exp85.h
index b5a57422d2e..b5a57422d2e 100644
--- a/src/mess/includes/exp85.h
+++ b/src/mame/includes/exp85.h
diff --git a/src/mame/includes/f1gp.h b/src/mame/includes/f1gp.h
index 52e61091c95..ac790335d6f 100644
--- a/src/mame/includes/f1gp.h
+++ b/src/mame/includes/f1gp.h
@@ -54,7 +54,6 @@ public:
UINT16 * m_zoomdata;
-// UINT16 * m_paletteram; // currently this uses generic palette handling
/* video-related */
tilemap_t *m_fg_tilemap;
diff --git a/src/mame/includes/fantland.h b/src/mame/includes/fantland.h
index f998ff48644..bce1ffa5140 100644
--- a/src/mame/includes/fantland.h
+++ b/src/mame/includes/fantland.h
@@ -22,7 +22,6 @@ public:
/* memory pointers */
// UINT8 * m_spriteram; // currently directly used in a 16bit map...
// UINT8 * m_spriteram_2; // currently directly used in a 16bit map...
-// UINT8 * m_paletteram; // currently this uses generic palette handling
/* misc */
UINT8 m_nmi_enable;
diff --git a/src/mess/includes/fidelz80.h b/src/mame/includes/fidelz80.h
index 64f47809e4c..64f47809e4c 100644
--- a/src/mess/includes/fidelz80.h
+++ b/src/mame/includes/fidelz80.h
diff --git a/src/mame/includes/fitfight.h b/src/mame/includes/fitfight.h
index 3eab210bf59..6a19912d763 100644
--- a/src/mame/includes/fitfight.h
+++ b/src/mame/includes/fitfight.h
@@ -31,7 +31,6 @@ public:
required_shared_ptr<UINT16> m_fof_mid_tileram;
required_shared_ptr<UINT16> m_fof_txt_tileram;
required_shared_ptr<UINT16> m_spriteram;
-// UINT16 * m_paletteram; // currently this uses generic palette handling
/* video-related */
tilemap_t *m_fof_bak_tilemap;
diff --git a/src/mame/includes/flkatck.h b/src/mame/includes/flkatck.h
index e85534ab84b..1aaac47e1cf 100644
--- a/src/mame/includes/flkatck.h
+++ b/src/mame/includes/flkatck.h
@@ -22,7 +22,6 @@ public:
/* memory pointers */
required_shared_ptr<UINT8> m_k007121_ram;
-// UINT8 * paletteram; // this currently uses generic palette handling
/* video-related */
tilemap_t *m_k007121_tilemap[2];
diff --git a/src/mame/includes/flstory.h b/src/mame/includes/flstory.h
index 932efe566cf..31afbdde494 100644
--- a/src/mame/includes/flstory.h
+++ b/src/mame/includes/flstory.h
@@ -23,8 +23,6 @@ public:
required_shared_ptr<UINT8> m_spriteram;
required_shared_ptr<UINT8> m_scrlram;
optional_shared_ptr<UINT8> m_workram;
-// UINT8 * m_paletteram; // currently this uses generic palette handling
-// UINT8 * m_paletteram_2; // currently this uses generic palette handling
/* video-related */
tilemap_t *m_bg_tilemap;
diff --git a/src/mess/includes/fm7.h b/src/mame/includes/fm7.h
index 6c24829cba5..797d19657f0 100644
--- a/src/mess/includes/fm7.h
+++ b/src/mame/includes/fm7.h
@@ -73,9 +73,6 @@ struct fm7_video_t
UINT16 vram_offset2;
UINT8 fm7_pal[8];
UINT16 fm77av_pal_selected;
- UINT8 fm77av_pal_r[4096];
- UINT8 fm77av_pal_g[4096];
- UINT8 fm77av_pal_b[4096];
UINT8 subrom; // currently active sub CPU ROM (AV only)
UINT8 cgrom; // currently active CGROM (AV only)
UINT8 modestatus;
@@ -148,6 +145,7 @@ public:
m_joy2(*this, "joy2"),
m_dsw(*this, "DSW"),
m_palette(*this, "palette"),
+ m_av_palette(*this, "av_palette"),
m_avbank1(*this, "av_bank1"),
m_avbank2(*this, "av_bank2"),
m_avbank3(*this, "av_bank3"),
@@ -293,12 +291,11 @@ public:
DECLARE_DRIVER_INIT(fm7);
virtual void machine_reset();
virtual void video_start();
- DECLARE_PALETTE_INIT(fm7);
DECLARE_MACHINE_START(fm7);
DECLARE_MACHINE_START(fm77av);
DECLARE_MACHINE_START(fm11);
DECLARE_MACHINE_START(fm16);
- UINT32 screen_update_fm7(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_fm7(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
TIMER_CALLBACK_MEMBER(fm7_beeper_off);
TIMER_CALLBACK_MEMBER(fm77av_encoder_ack);
TIMER_CALLBACK_MEMBER(fm7_timer_irq);
@@ -367,6 +364,7 @@ public:
required_ioport m_joy2;
required_ioport m_dsw;
required_device<palette_device> m_palette;
+ optional_device<palette_device> m_av_palette;
optional_device<address_map_bank_device> m_avbank1;
optional_device<address_map_bank_device> m_avbank2;
diff --git a/src/mess/includes/fmtowns.h b/src/mame/includes/fmtowns.h
index fb521304d8d..fb521304d8d 100644
--- a/src/mess/includes/fmtowns.h
+++ b/src/mame/includes/fmtowns.h
diff --git a/src/mame/includes/fromance.h b/src/mame/includes/fromance.h
index e71682ca514..30e7b0ec204 100644
--- a/src/mame/includes/fromance.h
+++ b/src/mame/includes/fromance.h
@@ -29,7 +29,6 @@ public:
/* memory pointers (used by pipedrm) */
optional_shared_ptr<UINT8> m_videoram;
optional_shared_ptr<UINT8> m_spriteram;
-// UINT8 * m_paletteram; // currently this uses generic palette handling
optional_device<vsystem_spr2_device> m_spr_old; // only used by pipe dream, split this state up and clean things...
diff --git a/src/mame/includes/funkyjet.h b/src/mame/includes/funkyjet.h
index 08e8413ec54..c26956d5886 100644
--- a/src/mame/includes/funkyjet.h
+++ b/src/mame/includes/funkyjet.h
@@ -32,7 +32,6 @@ public:
required_shared_ptr<UINT16> m_pf1_rowscroll;
required_shared_ptr<UINT16> m_pf2_rowscroll;
optional_device<decospr_device> m_sprgen;
-// UINT16 * paletteram; // currently this uses generic palette handling (in decocomn.c)
/* devices */
required_device<cpu_device> m_maincpu;
diff --git a/src/mame/includes/gaelco.h b/src/mame/includes/gaelco.h
index bb59e7c009b..cf73224941d 100644
--- a/src/mame/includes/gaelco.h
+++ b/src/mame/includes/gaelco.h
@@ -25,7 +25,6 @@ public:
required_shared_ptr<UINT16> m_vregs;
required_shared_ptr<UINT16> m_spriteram;
optional_shared_ptr<UINT16> m_screenram;
-// UINT16 * paletteram; // currently this uses generic palette handling
/* video-related */
tilemap_t *m_tilemap[2];
diff --git a/src/mame/includes/gaelco2.h b/src/mame/includes/gaelco2.h
index 32d71355cc8..880937eeba2 100644
--- a/src/mame/includes/gaelco2.h
+++ b/src/mame/includes/gaelco2.h
@@ -27,33 +27,21 @@ public:
required_device<palette_device> m_palette;
required_shared_ptr<UINT16> m_generic_paletteram_16;
- int m_clr_gun_int;
- UINT8 m_analog_ports[2];
UINT16 *m_videoram;
tilemap_t *m_pant[2];
int m_dual_monitor;
- DECLARE_READ16_MEMBER(p1_gun_x);
- DECLARE_READ16_MEMBER(p1_gun_y);
- DECLARE_READ16_MEMBER(p2_gun_x);
- DECLARE_READ16_MEMBER(p2_gun_y);
DECLARE_READ16_MEMBER(dallas_kludge_r);
DECLARE_WRITE16_MEMBER(gaelco2_coin_w);
DECLARE_WRITE16_MEMBER(gaelco2_coin2_w);
- DECLARE_WRITE16_MEMBER(wrally2_coin_w);
DECLARE_WRITE16_MEMBER(touchgo_coin_w);
- DECLARE_WRITE16_MEMBER(bang_clr_gun_int_w);
- DECLARE_WRITE16_MEMBER(wrally2_adc_clk);
- DECLARE_WRITE16_MEMBER(wrally2_adc_cs);
DECLARE_READ16_MEMBER(snowboar_protection_r);
DECLARE_WRITE16_MEMBER(snowboar_protection_w);
DECLARE_WRITE16_MEMBER(gaelco2_vram_w);
DECLARE_WRITE16_MEMBER(gaelco2_palette_w);
- DECLARE_CUSTOM_INPUT_MEMBER(wrally2_analog_bit_r);
DECLARE_DRIVER_INIT(touchgo);
DECLARE_DRIVER_INIT(snowboar);
DECLARE_DRIVER_INIT(alighunt);
- DECLARE_DRIVER_INIT(bang);
TILE_GET_INFO_MEMBER(get_tile_info_gaelco2_screen0);
TILE_GET_INFO_MEMBER(get_tile_info_gaelco2_screen1);
TILE_GET_INFO_MEMBER(get_tile_info_gaelco2_screen0_dual);
@@ -63,7 +51,6 @@ public:
UINT32 screen_update_gaelco2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update_gaelco2_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update_gaelco2_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- TIMER_DEVICE_CALLBACK_MEMBER(bang_irq);
DECLARE_WRITE16_MEMBER(gaelco2_eeprom_cs_w);
DECLARE_WRITE16_MEMBER(gaelco2_eeprom_sk_w);
DECLARE_WRITE16_MEMBER(gaelco2_eeprom_data_w);
@@ -71,3 +58,52 @@ public:
UINT32 dual_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int index);
void gaelco2_ROM16_split_gfx(const char *src_reg, const char *dst_reg, int start, int length, int dest1, int dest2);
};
+
+
+class bang_state : public gaelco2_state
+{
+public:
+ bang_state(const machine_config &mconfig, device_type type, const char *tag)
+ : gaelco2_state(mconfig, type, tag)
+ , m_light0_x(*this, "LIGHT0_X")
+ , m_light0_y(*this, "LIGHT0_Y")
+ , m_light1_x(*this, "LIGHT1_X")
+ , m_light1_y(*this, "LIGHT1_Y")
+ {}
+
+ required_ioport m_light0_x;
+ required_ioport m_light0_y;
+ required_ioport m_light1_x;
+ required_ioport m_light1_y;
+
+ int m_clr_gun_int;
+
+ DECLARE_READ16_MEMBER(p1_gun_x);
+ DECLARE_READ16_MEMBER(p1_gun_y);
+ DECLARE_READ16_MEMBER(p2_gun_x);
+ DECLARE_READ16_MEMBER(p2_gun_y);
+ DECLARE_WRITE16_MEMBER(bang_clr_gun_int_w);
+ TIMER_DEVICE_CALLBACK_MEMBER(bang_irq);
+ DECLARE_DRIVER_INIT(bang);
+};
+
+
+class wrally2_state : public gaelco2_state
+{
+public:
+ wrally2_state(const machine_config &mconfig, device_type type, const char *tag)
+ : gaelco2_state(mconfig, type, tag)
+ , m_analog0(*this, "ANALOG0")
+ , m_analog1(*this, "ANALOG1")
+ {}
+
+ required_ioport m_analog0;
+ required_ioport m_analog1;
+
+ UINT8 m_analog_ports[2];
+
+ DECLARE_WRITE16_MEMBER(wrally2_coin_w);
+ DECLARE_WRITE16_MEMBER(wrally2_adc_clk);
+ DECLARE_WRITE16_MEMBER(wrally2_adc_cs);
+ DECLARE_CUSTOM_INPUT_MEMBER(wrally2_analog_bit_r);
+};
diff --git a/src/mame/includes/galastrm.h b/src/mame/includes/galastrm.h
index 5ac71d4cc79..64891abe259 100644
--- a/src/mame/includes/galastrm.h
+++ b/src/mame/includes/galastrm.h
@@ -1,10 +1,35 @@
// license:???
// copyright-holders:Hau
#include "machine/eepromser.h"
-#include "video/polylgcy.h"
+
+#include "video/poly.h"
#include "video/tc0100scn.h"
#include "video/tc0480scp.h"
+
+class galastrm_state;
+
+struct gs_poly_data
+{
+ bitmap_ind16* texbase;
+};
+
+class galastrm_renderer : public poly_manager<float, gs_poly_data, 2, 10000>
+{
+public:
+ galastrm_renderer(galastrm_state &state);
+
+ void tc0610_draw_scanline(INT32 scanline, const extent_t& extent, const gs_poly_data& object, int threadid);
+ void tc0610_rotate_draw(bitmap_ind16 &srcbitmap, const rectangle &clip);
+
+ bitmap_ind16 &screenbits() { return m_screenbits; }
+
+private:
+ galastrm_state& m_state;
+ bitmap_ind16 m_screenbits;
+};
+
+
struct gs_tempsprite
{
int gfx;
@@ -56,8 +81,8 @@ public:
struct gs_tempsprite *m_spritelist;
struct gs_tempsprite *m_sprite_ptr_pre;
bitmap_ind16 m_tmpbitmaps;
- bitmap_ind16 m_polybitmap;
- legacy_poly_manager *m_poly;
+ galastrm_renderer *m_poly;
+
int m_rsxb;
int m_rsyb;
int m_rsxoffs;
@@ -74,7 +99,6 @@ public:
virtual void video_start();
UINT32 screen_update_galastrm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(galastrm_interrupt);
- void galastrm_exit();
void draw_sprites_pre(int x_offs, int y_offs);
void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, const int *primasks, int priority);
void tc0610_rotate_draw(bitmap_ind16 &bitmap, bitmap_ind16 &srcbitmap, const rectangle &clip);
diff --git a/src/mame/includes/galaxian.h b/src/mame/includes/galaxian.h
index 500a419e203..6dd949f2b2e 100644
--- a/src/mame/includes/galaxian.h
+++ b/src/mame/includes/galaxian.h
@@ -158,7 +158,8 @@ public:
DECLARE_WRITE8_MEMBER(frogger_ppi8255_w);
DECLARE_READ8_MEMBER(frogger_ay8910_r);
DECLARE_WRITE8_MEMBER(frogger_ay8910_w);
- DECLARE_WRITE8_MEMBER(froggrmc_sound_control_w);
+ IRQ_CALLBACK_MEMBER(froggermc_audiocpu_irq_ack);
+ DECLARE_WRITE8_MEMBER(froggermc_sound_control_w);
DECLARE_READ8_MEMBER(frogf_ppi8255_r);
DECLARE_WRITE8_MEMBER(frogf_ppi8255_w);
DECLARE_READ8_MEMBER(turtles_ppi8255_0_r);
@@ -242,9 +243,10 @@ public:
DECLARE_DRIVER_INIT(sfx);
DECLARE_DRIVER_INIT(atlantis);
DECLARE_DRIVER_INIT(scobra);
+ DECLARE_DRIVER_INIT(scobrae);
DECLARE_DRIVER_INIT(losttomb);
DECLARE_DRIVER_INIT(frogger);
- DECLARE_DRIVER_INIT(froggrmc);
+ DECLARE_DRIVER_INIT(froggermc);
DECLARE_DRIVER_INIT(froggers);
DECLARE_DRIVER_INIT(quaak);
DECLARE_DRIVER_INIT(turtles);
@@ -312,6 +314,7 @@ public:
void decode_checkman();
void decode_dingoe();
void decode_frogger_sound();
+ void decode_froggermc_sound();
void decode_frogger_gfx();
void decode_anteater_gfx();
void decode_losttomb_gfx();
diff --git a/src/mame/includes/galaxold.h b/src/mame/includes/galaxold.h
index 81fcb07a20a..b7c8d1482d3 100644
--- a/src/mame/includes/galaxold.h
+++ b/src/mame/includes/galaxold.h
@@ -42,7 +42,8 @@ public:
m_attributesram(*this,"attributesram"),
m_bulletsram(*this,"bulletsram"),
m_rockclim_videoram(*this,"rockclim_vram"),
- m_racknrol_tiles_bank(*this,"racknrol_tbank")
+ m_racknrol_tiles_bank(*this,"racknrol_tbank"),
+ m_leftclip(2)
{
}
@@ -75,6 +76,7 @@ public:
UINT8 m_color_mask;
tilemap_t *m_dambustr_tilemap2;
UINT8 *m_dambustr_videoram2;
+ int m_leftclip;
void (galaxold_state::*m_modify_charcode)(UINT16 *code, UINT8 x); /* function to call to do character banking */
void (galaxold_state::*m_modify_spritecode)(UINT8 *spriteram, int*, int*, int*, int); /* function to call to do sprite banking */
@@ -149,7 +151,7 @@ public:
DECLARE_WRITE8_MEMBER(dambustr_bg_color_w);
DECLARE_WRITE_LINE_MEMBER(galaxold_7474_9m_2_q_callback);
DECLARE_WRITE_LINE_MEMBER(galaxold_7474_9m_1_callback);
-
+ DECLARE_READ8_MEMBER(rescueb_a002_r) { return 0xfc; }
DECLARE_CUSTOM_INPUT_MEMBER(_4in1_fake_port_r);
DECLARE_CUSTOM_INPUT_MEMBER(vpool_lives_r);
DECLARE_CUSTOM_INPUT_MEMBER(ckongg_coinage_r);
@@ -189,6 +191,7 @@ public:
DECLARE_VIDEO_START(batman2);
DECLARE_VIDEO_START(mooncrst);
DECLARE_VIDEO_START(scrambold);
+ DECLARE_VIDEO_START(newsin7);
DECLARE_VIDEO_START(pisces);
DECLARE_VIDEO_START(dkongjrm);
DECLARE_VIDEO_START(rockclim);
diff --git a/src/mess/includes/galaxy.h b/src/mame/includes/galaxy.h
index a115eb146f1..a115eb146f1 100644
--- a/src/mess/includes/galaxy.h
+++ b/src/mame/includes/galaxy.h
diff --git a/src/mess/includes/galeb.h b/src/mame/includes/galeb.h
index a510622818d..a510622818d 100644
--- a/src/mess/includes/galeb.h
+++ b/src/mame/includes/galeb.h
diff --git a/src/mame/includes/galpanic.h b/src/mame/includes/galpanic.h
index 19ebd232858..788ca087540 100644
--- a/src/mame/includes/galpanic.h
+++ b/src/mame/includes/galpanic.h
@@ -14,7 +14,6 @@ public:
m_gfxdecode(*this, "gfxdecode"),
m_screen(*this, "screen"),
m_palette(*this, "palette"),
- m_generic_paletteram_16(*this, "paletteram"),
m_pandora(*this, "pandora")
{ }
@@ -27,7 +26,6 @@ public:
required_device<gfxdecode_device> m_gfxdecode;
required_device<screen_device> m_screen;
required_device<palette_device> m_palette;
- required_shared_ptr<UINT16> m_generic_paletteram_16;
required_device<kaneko_pandora_device> m_pandora;
DECLARE_WRITE16_MEMBER(galpanic_6295_bankswitch_w);
@@ -38,9 +36,7 @@ public:
UINT32 screen_update_galpanic(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void screen_eof_galpanic(screen_device &screen, bool state);
TIMER_DEVICE_CALLBACK_MEMBER(galpanic_scanline);
- void comad_draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
void draw_fgbitmap(bitmap_ind16 &bitmap, const rectangle &cliprect);
/*----------- defined in video/galpanic.c -----------*/
DECLARE_WRITE16_MEMBER( galpanic_bgvideoram_w );
- DECLARE_WRITE16_MEMBER( galpanic_paletteram_w );
};
diff --git a/src/mess/includes/gamate.h b/src/mame/includes/gamate.h
index 0a662e60436..0a662e60436 100644
--- a/src/mess/includes/gamate.h
+++ b/src/mame/includes/gamate.h
diff --git a/src/mess/includes/gamecom.h b/src/mame/includes/gamecom.h
index cbac6041120..cbac6041120 100644
--- a/src/mess/includes/gamecom.h
+++ b/src/mame/includes/gamecom.h
diff --git a/src/mess/includes/gamepock.h b/src/mame/includes/gamepock.h
index 678db1dc9f4..678db1dc9f4 100644
--- a/src/mess/includes/gamepock.h
+++ b/src/mame/includes/gamepock.h
diff --git a/src/mess/includes/gb.h b/src/mame/includes/gb.h
index 714daafa832..714daafa832 100644
--- a/src/mess/includes/gb.h
+++ b/src/mame/includes/gb.h
diff --git a/src/mess/includes/gba.h b/src/mame/includes/gba.h
index 58637b0275f..58637b0275f 100644
--- a/src/mess/includes/gba.h
+++ b/src/mame/includes/gba.h
diff --git a/src/mame/includes/gcpinbal.h b/src/mame/includes/gcpinbal.h
index 57d0abf0eec..255b93ca4ec 100644
--- a/src/mame/includes/gcpinbal.h
+++ b/src/mame/includes/gcpinbal.h
@@ -37,7 +37,6 @@ public:
required_device<gfxdecode_device> m_gfxdecode;
required_device<palette_device> m_palette;
-// UINT16 * m_paletteram; // currently this uses generic palette handling
/* video-related */
tilemap_t *m_tilemap[3];
diff --git a/src/mess/includes/genpc.h b/src/mame/includes/genpc.h
index 08cc742aa7f..08cc742aa7f 100644
--- a/src/mess/includes/genpc.h
+++ b/src/mame/includes/genpc.h
diff --git a/src/mame/includes/gijoe.h b/src/mame/includes/gijoe.h
index 92ab66a86e2..8dd7b41dc8f 100644
--- a/src/mame/includes/gijoe.h
+++ b/src/mame/includes/gijoe.h
@@ -29,7 +29,6 @@ public:
/* memory pointers */
required_shared_ptr<UINT16> m_spriteram;
required_shared_ptr<UINT16> m_workram;
-// UINT16 * m_paletteram; // currently this uses generic palette handling
/* video-related */
int m_avac_bits[4];
diff --git a/src/mame/includes/ginganin.h b/src/mame/includes/ginganin.h
index 0a0b0631489..44ae01b5503 100644
--- a/src/mame/includes/ginganin.h
+++ b/src/mame/includes/ginganin.h
@@ -25,7 +25,6 @@ public:
required_shared_ptr<UINT16> m_spriteram;
required_shared_ptr<UINT16> m_vregs;
required_shared_ptr<UINT16> m_fgram;
-// UINT16 * m_paletteram; // currently this uses generic palette handling
/* video-related */
tilemap_t *m_bg_tilemap;
diff --git a/src/mame/includes/glass.h b/src/mame/includes/glass.h
index 8f2a5c5ebe9..0f77604513f 100644
--- a/src/mame/includes/glass.h
+++ b/src/mame/includes/glass.h
@@ -24,7 +24,6 @@ public:
required_shared_ptr<UINT16> m_vregs;
required_shared_ptr<UINT16> m_spriteram;
required_shared_ptr<UINT16> m_mainram;
-// UINT16 * m_paletteram; // currently this uses generic palette handling
/* video-related */
tilemap_t *m_pant[2];
diff --git a/src/mame/includes/gng.h b/src/mame/includes/gng.h
index a40e7c95188..e3f2585e3cd 100644
--- a/src/mame/includes/gng.h
+++ b/src/mame/includes/gng.h
@@ -24,8 +24,6 @@ public:
required_device<buffered_spriteram8_device> m_spriteram;
required_shared_ptr<UINT8> m_fgvideoram;
required_shared_ptr<UINT8> m_bgvideoram;
-// UINT8 * m_paletteram; // currently this uses generic palette handling
-// UINT8 * m_paletteram2; // currently this uses generic palette handling
/* video-related */
tilemap_t *m_bg_tilemap;
diff --git a/src/mame/includes/goal92.h b/src/mame/includes/goal92.h
index 8b816c303e7..cbe95e7346e 100644
--- a/src/mame/includes/goal92.h
+++ b/src/mame/includes/goal92.h
@@ -28,7 +28,6 @@ public:
required_shared_ptr<UINT16> m_tx_data;
required_shared_ptr<UINT16> m_spriteram;
required_shared_ptr<UINT16> m_scrollram;
-// UINT16 * m_paletteram; // this currently use generic palette handling
UINT16 * m_buffered_spriteram;
/* video-related */
diff --git a/src/mame/includes/gotcha.h b/src/mame/includes/gotcha.h
index 3eaf61b4049..755759df85e 100644
--- a/src/mame/includes/gotcha.h
+++ b/src/mame/includes/gotcha.h
@@ -27,7 +27,6 @@ public:
required_shared_ptr<UINT16> m_bgvideoram;
required_shared_ptr<UINT16> m_spriteram;
optional_device<decospr_device> m_sprgen;
-// UINT16 * m_paletteram; // currently this uses generic palette handling
/* video-related */
tilemap_t *m_bg_tilemap;
diff --git a/src/mess/includes/gp32.h b/src/mame/includes/gp32.h
index a3754f5b9aa..a3754f5b9aa 100644
--- a/src/mess/includes/gp32.h
+++ b/src/mame/includes/gp32.h
diff --git a/src/mame/includes/gradius3.h b/src/mame/includes/gradius3.h
index a0e8bacc159..0aa94e18fed 100644
--- a/src/mame/includes/gradius3.h
+++ b/src/mame/includes/gradius3.h
@@ -16,6 +16,7 @@ public:
gradius3_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_gfxram(*this, "k052109"),
+ m_gfxrom(*this, "k051960"),
m_maincpu(*this, "maincpu"),
m_audiocpu(*this, "audiocpu"),
m_subcpu(*this, "sub"),
@@ -25,10 +26,7 @@ public:
/* memory pointers */
required_shared_ptr<UINT16> m_gfxram;
-
- /* video-related */
- int m_layer_colorbase[3];
- int m_sprite_colorbase;
+ required_region_ptr<UINT8> m_gfxrom;
/* misc */
int m_priority;
diff --git a/src/mame/includes/gumbo.h b/src/mame/includes/gumbo.h
index e69653ed63c..3ee479e711d 100644
--- a/src/mame/includes/gumbo.h
+++ b/src/mame/includes/gumbo.h
@@ -19,7 +19,6 @@ public:
/* memory pointers */
required_shared_ptr<UINT16> m_bg_videoram;
required_shared_ptr<UINT16> m_fg_videoram;
-// UINT16 * paletteram; // currently this uses generic palette handling
/* video-related */
tilemap_t *m_bg_tilemap;
diff --git a/src/mame/includes/harddriv.h b/src/mame/includes/harddriv.h
index 5a1925474a4..7602b616330 100644
--- a/src/mame/includes/harddriv.h
+++ b/src/mame/includes/harddriv.h
@@ -59,6 +59,8 @@ public:
optional_device<dac_device> m_ds3dac2;
optional_device<harddriv_sound_board_device> m_harddriv_sound;
optional_device<atari_jsa_base_device> m_jsa;
+ optional_device<screen_device> m_screen;
+ optional_device<mc68681_device> m_duartn68681;
UINT8 m_hd34010_host_access;
UINT8 m_dsk_pio_access;
@@ -106,6 +108,12 @@ public:
optional_shared_ptr<UINT16> m_gsp_paletteram_lo;
optional_shared_ptr<UINT16> m_gsp_paletteram_hi;
+ required_ioport m_in0;
+ optional_ioport m_sw1;
+ required_ioport m_a80000;
+ optional_ioport_array<8> m_8badc;
+ optional_ioport_array<4> m_12badc;
+
/* machine state */
UINT8 m_irq_state;
UINT8 m_gsp_irq_state;
@@ -525,7 +533,6 @@ class racedriv_board_device_state : public harddriv_state
{
public:
racedriv_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
- DECLARE_WRITE_LINE_MEMBER(tx_a);
protected:
virtual machine_config_constructor device_mconfig_additions() const;
diff --git a/src/mess/includes/hec2hrp.h b/src/mame/includes/hec2hrp.h
index c30b7bfccd3..c30b7bfccd3 100644
--- a/src/mess/includes/hec2hrp.h
+++ b/src/mame/includes/hec2hrp.h
diff --git a/src/mess/includes/hh_tms1k.h b/src/mame/includes/hh_tms1k.h
index 27cf20279d2..edcea970b64 100644
--- a/src/mess/includes/hh_tms1k.h
+++ b/src/mame/includes/hh_tms1k.h
@@ -38,6 +38,7 @@ public:
UINT16 m_o; // MCU O-pins data
UINT16 m_inp_mux; // multiplexed inputs mask
bool m_power_on;
+ bool m_power_led;
UINT8 read_inputs(int columns);
DECLARE_INPUT_CHANGED_MEMBER(power_button);
@@ -48,6 +49,9 @@ public:
int m_display_maxy; // display matrix number of rows
int m_display_maxx; // display matrix number of columns (max 31 for now)
+ UINT32 m_grid; // VFD current row data
+ UINT32 m_plate; // VFD current column data
+
UINT32 m_display_state[0x20]; // display matrix rows data (last bit is used for always-on)
UINT16 m_display_segmask[0x20]; // if not 0, display matrix row is a digit, mask indicates connected segments
UINT32 m_display_cache[0x20]; // (internal use)
diff --git a/src/mess/includes/hh_ucom4.h b/src/mame/includes/hh_ucom4.h
index 79d51afccb9..79d51afccb9 100644
--- a/src/mess/includes/hh_ucom4.h
+++ b/src/mame/includes/hh_ucom4.h
diff --git a/src/mame/includes/himesiki.h b/src/mame/includes/himesiki.h
index 5fbfcf6ecd5..7ac93031082 100644
--- a/src/mame/includes/himesiki.h
+++ b/src/mame/includes/himesiki.h
@@ -21,7 +21,6 @@ public:
/* memory pointers */
required_shared_ptr<UINT8> m_bg_ram;
required_shared_ptr<UINT8> m_spriteram;
-// UINT8 * paletteram; // currently this uses generic palette handling
/* video-related */
tilemap_t *m_bg_tilemap;
diff --git a/src/mame/includes/hng64.h b/src/mame/includes/hng64.h
index 7d8d92f1459..10f025d8754 100644
--- a/src/mame/includes/hng64.h
+++ b/src/mame/includes/hng64.h
@@ -1,9 +1,10 @@
// license:LGPL-2.1+
-// copyright-holders:David Haywood, Angelo Salese, ElSemi, Andrew Gardner, Andrew Zaferakis
+// copyright-holders:David Haywood, Angelo Salese, ElSemi, Andrew Gardner
#include "machine/msm6242.h"
#include "cpu/mips/mips3.h"
#include "cpu/nec/v53.h"
#include "sound/l7a1045_l6028_dsp_a.h"
+#include "video/poly.h"
enum
{
@@ -21,10 +22,9 @@ enum hng64trans_t
HNG64_TILEMAP_ALPHA
};
-
struct blit_parameters
{
- bitmap_rgb32 * bitmap;
+ bitmap_rgb32 * bitmap;
rectangle cliprect;
UINT32 tilemap_priority_code;
UINT8 mask;
@@ -35,9 +35,10 @@ struct blit_parameters
#define HNG64_MASTER_CLOCK 50000000
-///////////////
-// 3d Engine //
-///////////////
+
+/////////////////
+/// 3d Engine ///
+/////////////////
struct polyVert
{
@@ -54,7 +55,7 @@ struct polyVert
struct polygon
{
int n; // Number of sides
- struct polyVert vert[10]; // Vertices (maximum number per polygon is 10 -> 3+6)
+ polyVert vert[10]; // Vertices (maximum number per polygon is 10 -> 3+6)
float faceNormal[4]; // Normal of the face overall - for calculating visibility and flat-shading...
int visible; // Polygon visibility in scene
@@ -72,12 +73,28 @@ struct polygon
};
+/////////////////////////
+/// polygon rendering ///
+/////////////////////////
+
+// Refer to the clipping planes as numbers
+#define HNG64_LEFT 0
+#define HNG64_RIGHT 1
+#define HNG64_TOP 2
+#define HNG64_BOTTOM 3
+#define HNG64_NEAR 4
+#define HNG64_FAR 5
+
+
+////////////////////////////////////
+/// Polygon rasterizer interface ///
+////////////////////////////////////
+
+const int HNG64_MAX_POLYGONS = 10000;
-///////////////////////
-// polygon rendering //
-///////////////////////
+typedef frustum_clip_vertex<float, 5> hng64_clip_vertex;
-struct polygonRasterOptions
+struct hng64_poly_data
{
UINT8 texType;
UINT8 texIndex;
@@ -89,14 +106,27 @@ struct polygonRasterOptions
int debugColor;
};
-// Refer to the clipping planes as numbers
-#define HNG64_LEFT 0
-#define HNG64_RIGHT 1
-#define HNG64_TOP 2
-#define HNG64_BOTTOM 3
-#define HNG64_NEAR 4
-#define HNG64_FAR 5
+class hng64_state;
+class hng64_poly_renderer : public poly_manager<float, hng64_poly_data, 7, HNG64_MAX_POLYGONS>
+{
+public:
+ hng64_poly_renderer(hng64_state& state);
+
+ void drawShaded(polygon *p);
+ void render_scanline(INT32 scanline, const extent_t& extent, const hng64_poly_data& renderData, int threadid);
+
+ hng64_state& state() { return m_state; }
+ bitmap_rgb32& colorBuffer3d() { return m_colorBuffer3d; }
+ float* depthBuffer3d() { return m_depthBuffer3d; }
+
+private:
+ hng64_state& m_state;
+
+ // (Temporarily class members - someday they will live in the memory map)
+ bitmap_rgb32 m_colorBuffer3d;
+ float* m_depthBuffer3d;
+};
class hng64_state : public driver_device
@@ -125,10 +155,7 @@ public:
m_com_ram(*this, "com_ram"),
m_gfxdecode(*this, "gfxdecode"),
m_screen(*this, "screen"),
- m_palette(*this, "palette"),
- m_generic_paletteram_32(*this, "paletteram")
-
- { }
+ m_palette(*this, "palette") { }
required_device<mips3_device> m_maincpu;
required_device<v53a_device> m_audiocpu;
@@ -146,9 +173,8 @@ public:
required_shared_ptr<UINT32> m_videoram;
required_shared_ptr<UINT32> m_videoregs;
required_shared_ptr<UINT32> m_tcram;
- /* 3D stuff */
- UINT16* m_dl;
+ UINT16* m_dl;
required_shared_ptr<UINT32> m_3dregs;
required_shared_ptr<UINT32> m_3d_1;
required_shared_ptr<UINT32> m_3d_2;
@@ -159,8 +185,6 @@ public:
required_device<gfxdecode_device> m_gfxdecode;
required_device<screen_device> m_screen;
required_device<palette_device> m_palette;
- required_shared_ptr<UINT32> m_generic_paletteram_32;
-
int m_mcu_type;
@@ -168,8 +192,8 @@ public:
UINT16 *m_soundram2;
/* Communications stuff */
- UINT8 *m_com_op_base;
- UINT8 *m_com_virtual_mem;
+ UINT8 *m_com_op_base;
+ UINT8 *m_com_virtual_mem;
UINT8 m_com_shared[8];
INT32 m_dma_start;
@@ -179,7 +203,7 @@ public:
UINT32 m_mcu_fake_time;
UINT16 m_mcu_en;
- UINT32 m_activeBuffer;
+ UINT32 m_activeDisplayList;
UINT32 m_no_machine_error_code;
UINT32 m_unk_vreg_toggle;
@@ -199,11 +223,6 @@ public:
UINT8 m_additive_tilemap_debug;
- // 3d display buffers
- // (Temporarily global - someday they will live with the proper bit-depth in the memory map)
- float *m_depthBuffer3d;
- UINT32 *m_colorBuffer3d;
-
UINT32 m_old_animmask;
UINT32 m_old_animbits;
UINT16 m_old_tileflags[4];
@@ -224,7 +243,6 @@ public:
DECLARE_READ8_MEMBER(hng64_com_share_r);
DECLARE_WRITE8_MEMBER(hng64_com_share_mips_w);
DECLARE_READ8_MEMBER(hng64_com_share_mips_r);
- DECLARE_WRITE32_MEMBER(hng64_pal_w);
DECLARE_READ32_MEMBER(hng64_sysregs_r);
DECLARE_WRITE32_MEMBER(hng64_sysregs_w);
DECLARE_READ32_MEMBER(fight_io_r);
@@ -274,7 +292,7 @@ public:
DECLARE_DRIVER_INIT(hng64_fght);
DECLARE_DRIVER_INIT(hng64_reorder_gfx);
- void m_set_irq(UINT32 irq_vector);
+ void set_irq(UINT32 irq_vector);
UINT32 m_irq_pending;
UINT8 *m_comm_rom;
UINT8 *m_comm_ram;
@@ -300,64 +318,54 @@ public:
TIMER_DEVICE_CALLBACK_MEMBER(hng64_irq);
void do_dma(address_space &space);
+ void hng64_mark_all_tiles_dirty(int tilemap);
+ void hng64_mark_tile_dirty(int tilemap, int tile_index);
+ void hng64_drawtilemap(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int tm);
+
+ void hng64_tilemap_draw_roz_core(screen_device &screen, tilemap_t *tmap, const blit_parameters *blit,
+ UINT32 startx, UINT32 starty, int incxx, int incxy, int incyx, int incyy, int wraparound);
+
+ void hng64_tilemap_draw_roz(screen_device &screen, bitmap_rgb32 &dest, const rectangle &cliprect, tilemap_t *tmap,
+ UINT32 startx, UINT32 starty, int incxx, int incxy, int incyx, int incyy,
+ int wraparound, UINT32 flags, UINT8 priority, hng64trans_t drawformat);
+
+ void hng64_tilemap_draw_roz_primask(screen_device &screen, bitmap_rgb32 &dest, const rectangle &cliprect, tilemap_t *tmap,
+ UINT32 startx, UINT32 starty, int incxx, int incxy, int incyx, int incyy,
+ int wraparound, UINT32 flags, UINT8 priority, UINT8 priority_mask, hng64trans_t drawformat);
+
+
DECLARE_CUSTOM_INPUT_MEMBER(left_handle_r);
DECLARE_CUSTOM_INPUT_MEMBER(right_handle_r);
DECLARE_CUSTOM_INPUT_MEMBER(acc_down_r);
DECLARE_CUSTOM_INPUT_MEMBER(brake_down_r);
- void clear3d();
- TIMER_CALLBACK_MEMBER(hng64_3dfifo_processed);
- void FillSmoothTexPCHorizontalLine(
- const polygonRasterOptions& prOptions,
- int x_start, int x_end, int y, float z_start, float z_delta,
- float w_start, float w_delta, float r_start, float r_delta,
- float g_start, float g_delta, float b_start, float b_delta,
- float s_start, float s_delta, float t_start, float t_delta);
+ hng64_poly_renderer* m_poly_renderer;
+
+ TIMER_CALLBACK_MEMBER(hng64_3dfifo_processed);
+ UINT8 *m_texturerom;
+ UINT16* m_vertsrom;
+ int m_vertsrom_size;
+ std::vector<polygon> m_polys; // HNG64_MAX_POLYGONS
+
+ void clear3d();
void hng64_command3d(const UINT16* packet);
void draw_sprites(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
- void transition_control( bitmap_rgb32 &bitmap, const rectangle &cliprect);
- void hng64_tilemap_draw_roz_core(screen_device &screen, tilemap_t *tmap, const blit_parameters *blit,
- UINT32 startx, UINT32 starty, int incxx, int incxy, int incyx, int incyy, int wraparound);
- void hng64_drawtilemap(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int tm);
+ void transition_control(bitmap_rgb32 &bitmap, const rectangle &cliprect);
void setCameraTransformation(const UINT16* packet);
void setLighting(const UINT16* packet);
void set3dFlags(const UINT16* packet);
void setCameraProjectionMatrix(const UINT16* packet);
- void recoverPolygonBlock(const UINT16* packet, int* numPolys);
- void hng64_mark_all_tiles_dirty(int tilemap);
- void hng64_mark_tile_dirty(int tilemap, int tile_index);
-
- void hng64_tilemap_draw_roz(screen_device &screen, bitmap_rgb32 &dest, const rectangle &cliprect, tilemap_t *tmap,
- UINT32 startx, UINT32 starty, int incxx, int incxy, int incyx, int incyy,
- int wraparound, UINT32 flags, UINT8 priority, hng64trans_t drawformat);
-
- void hng64_tilemap_draw_roz_primask(screen_device &screen, bitmap_rgb32 &dest, const rectangle &cliprect, tilemap_t *tmap,
- UINT32 startx, UINT32 starty, int incxx, int incxy, int incyx, int incyy,
- int wraparound, UINT32 flags, UINT8 priority, UINT8 priority_mask, hng64trans_t drawformat);
-
- void RasterizeTriangle_SMOOTH_TEX_PC(
- float A[4], float B[4], float C[4],
- float Ca[3], float Cb[3], float Cc[3], // PER-VERTEX RGB COLORS
- float Ta[2], float Tb[2], float Tc[2], // PER-VERTEX (S,T) TEX-COORDS
- const polygonRasterOptions& prOptions);
-
- void drawShaded( struct polygon *p);
-
+ void recoverPolygonBlock(const UINT16* packet, int& numPolys);
void printPacket(const UINT16* packet, int hex);
+ float uToF(UINT16 input);
void matmul4(float *product, const float *a, const float *b);
void vecmatmul4(float *product, const float *a, const float *b);
float vecDotProduct(const float *a, const float *b);
void setIdentity(float *matrix);
- float uToF(UINT16 input);
void normalize(float* x);
- int Inside(struct polyVert *v, int plane);
- void Intersect(struct polyVert *input0, struct polyVert *input1, struct polyVert *output, int plane);
- void performFrustumClip(struct polygon *p);
- UINT8 *m_texturerom;
- UINT16* m_vertsrom;
- int m_vertsrom_size;
+
void reset_sound();
void reset_net();
@@ -390,7 +398,6 @@ public:
DECLARE_WRITE16_MEMBER(main_sound_comms_w);
DECLARE_READ16_MEMBER(sound_comms_r);
DECLARE_WRITE16_MEMBER(sound_comms_w);
- UINT16 main_latch[2],sound_latch[2];
-
- std::vector<polygon> polys;//(1024*5);
+ UINT16 main_latch[2];
+ UINT16 sound_latch[2];
};
diff --git a/src/mess/includes/hp48.h b/src/mame/includes/hp48.h
index 70780f2817d..70780f2817d 100644
--- a/src/mess/includes/hp48.h
+++ b/src/mame/includes/hp48.h
diff --git a/src/mess/includes/huebler.h b/src/mame/includes/huebler.h
index eb49ae03f07..eb49ae03f07 100644
--- a/src/mess/includes/huebler.h
+++ b/src/mame/includes/huebler.h
diff --git a/src/mess/includes/hx20.h b/src/mame/includes/hx20.h
index 11fefd77b62..11fefd77b62 100644
--- a/src/mess/includes/hx20.h
+++ b/src/mame/includes/hx20.h
diff --git a/src/mess/includes/imds2.h b/src/mame/includes/imds2.h
index 2b7b20de074..298b808be82 100644
--- a/src/mess/includes/imds2.h
+++ b/src/mame/includes/imds2.h
@@ -79,11 +79,12 @@ class imds2_state : public driver_device
required_device<beep_device> m_iocbeep;
required_device<pit8253_device> m_ioctimer;
required_device<i8271_device> m_iocfdc;
+ required_device<floppy_connector> m_flop0;
+ required_device<floppy_connector> m_flop1;
required_device<i8041_device> m_iocpio;
required_device<i8741_device> m_kbcpu;
required_device<palette_device> m_palette;
required_device<gfxdecode_device> m_gfxdecode;
- required_device<legacy_floppy_image_device> m_floppy0;
required_device<centronics_device> m_centronics;
required_ioport m_io_key0;
required_ioport m_io_key1;
@@ -101,6 +102,8 @@ class imds2_state : public driver_device
void imds2_update_beeper(void);
void imds2_update_printer(void);
+ int floppy_load(floppy_image_device *dev);
+ void floppy_unload(floppy_image_device *dev);
// IPC control port
UINT8 m_ipc_control;
diff --git a/src/mess/includes/intv.h b/src/mame/includes/intv.h
index 952844a2022..952844a2022 100644
--- a/src/mess/includes/intv.h
+++ b/src/mame/includes/intv.h
diff --git a/src/mame/includes/inufuku.h b/src/mame/includes/inufuku.h
index c751434fa2b..ef0a7e407fc 100644
--- a/src/mame/includes/inufuku.h
+++ b/src/mame/includes/inufuku.h
@@ -24,7 +24,6 @@ public:
required_shared_ptr<UINT16> m_spriteram1;
required_shared_ptr<UINT16> m_spriteram2;
required_device<vsystem_spr_device> m_spr;
-// UINT16 * m_paletteram; // currently this uses generic palette handling
/* video-related */
tilemap_t *m_bg_tilemap;
diff --git a/src/mame/includes/itech8.h b/src/mame/includes/itech8.h
index efa9d1426df..a35d6ffbbf8 100644
--- a/src/mame/includes/itech8.h
+++ b/src/mame/includes/itech8.h
@@ -7,6 +7,7 @@
**************************************************************************/
+#include "machine/ticket.h"
#include "video/tlc34076.h"
#include "video/tms34061.h"
@@ -23,6 +24,10 @@ public:
m_tms34061(*this, "tms34061"),
m_tlc34076(*this, "tlc34076"),
m_screen(*this, "screen"),
+ m_ticket(*this, "ticket"),
+ m_an(*this, analog_inputs),
+ m_fakex(*this, "FAKEX"),
+ m_fakey(*this, "FAKEY"),
m_visarea(0, 0, 0, 0) { }
enum
@@ -40,7 +45,12 @@ public:
required_device<tms34061_device> m_tms34061;
required_device<tlc34076_device> m_tlc34076;
required_device<screen_device> m_screen;
-
+ required_device<ticket_dispenser_device> m_ticket;
+ DECLARE_IOPORT_ARRAY(analog_inputs);
+ optional_ioport_array<4> m_an;
+ optional_ioport m_fakex;
+ optional_ioport m_fakey;
+
rectangle m_visarea;
UINT8 m_grom_bank;
@@ -165,7 +175,7 @@ public:
UINT16 *sens0, UINT16 *sens1, UINT16 *sens2, UINT16 *sens3);
void compute_sensors();
TIMER_CALLBACK_MEMBER( delayed_z80_control_w );
-
+
protected:
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
};
diff --git a/src/mame/includes/jack.h b/src/mame/includes/jack.h
index c108a89eaef..8c713856539 100644
--- a/src/mame/includes/jack.h
+++ b/src/mame/includes/jack.h
@@ -50,7 +50,6 @@ public:
DECLARE_READ8_MEMBER(striv_question_r);
DECLARE_WRITE8_MEMBER(jack_videoram_w);
DECLARE_WRITE8_MEMBER(jack_colorram_w);
- DECLARE_WRITE8_MEMBER(jack_paletteram_w);
DECLARE_READ8_MEMBER(jack_flipscreen_r);
DECLARE_WRITE8_MEMBER(jack_flipscreen_w);
DECLARE_READ8_MEMBER(timer_r);
diff --git a/src/mess/includes/jupiter.h b/src/mame/includes/jupiter.h
index 03ffa92de5e..03ffa92de5e 100644
--- a/src/mess/includes/jupiter.h
+++ b/src/mame/includes/jupiter.h
diff --git a/src/mame/includes/kangaroo.h b/src/mame/includes/kangaroo.h
index 3c87b8866c7..c04c9e03f7e 100644
--- a/src/mame/includes/kangaroo.h
+++ b/src/mame/includes/kangaroo.h
@@ -14,7 +14,8 @@ public:
kangaroo_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_video_control(*this, "video_control"),
- m_maincpu(*this, "maincpu") { }
+ m_maincpu(*this, "maincpu"),
+ m_palette(*this, "palette") { }
/* memory pointers */
required_shared_ptr<UINT8> m_video_control;
@@ -37,4 +38,5 @@ public:
void videoram_write( UINT16 offset, UINT8 data, UINT8 mask );
void blitter_execute( );
required_device<cpu_device> m_maincpu;
+ required_device<palette_device> m_palette;
};
diff --git a/src/mess/includes/kaypro.h b/src/mame/includes/kaypro.h
index ef5d5ab008a..ef5d5ab008a 100644
--- a/src/mess/includes/kaypro.h
+++ b/src/mame/includes/kaypro.h
diff --git a/src/mess/includes/kc.h b/src/mame/includes/kc.h
index 46f1cd93d1e..46f1cd93d1e 100644
--- a/src/mess/includes/kc.h
+++ b/src/mame/includes/kc.h
diff --git a/src/mame/includes/kickgoal.h b/src/mame/includes/kickgoal.h
index 24ad168b4b2..dfbe3299d22 100644
--- a/src/mame/includes/kickgoal.h
+++ b/src/mame/includes/kickgoal.h
@@ -32,7 +32,6 @@ public:
required_shared_ptr<UINT16> m_bg2ram;
required_shared_ptr<UINT16> m_scrram;
required_shared_ptr<UINT16> m_spriteram;
-// UINT16 * m_paletteram; // currently this uses generic palette handling
/* video-related */
tilemap_t *m_fgtm;
diff --git a/src/mame/includes/konamigx.h b/src/mame/includes/konamigx.h
index 705d809b497..e9343aed5b6 100644
--- a/src/mame/includes/konamigx.h
+++ b/src/mame/includes/konamigx.h
@@ -43,7 +43,8 @@ public:
m_light0_y(*this, "LIGHT0_Y"),
m_light1_x(*this, "LIGHT1_X"),
m_light1_y(*this, "LIGHT1_Y"),
- m_eepromout(*this, "EEPROMOUT")
+ m_eepromout(*this, "EEPROMOUT"),
+ m_use_68020_post_clock_hack(0)
{ }
required_device<cpu_device> m_maincpu;
@@ -96,8 +97,6 @@ public:
DECLARE_WRITE16_MEMBER(K053990_martchmp_word_w);
DECLARE_WRITE32_MEMBER(fantjour_dma_w);
DECLARE_WRITE32_MEMBER(konamigx_type3_psac2_bank_w);
- DECLARE_WRITE32_MEMBER(konamigx_palette_w);
- DECLARE_WRITE32_MEMBER(konamigx_palette2_w);
DECLARE_WRITE32_MEMBER(konamigx_555_palette_w);
DECLARE_WRITE32_MEMBER(konamigx_555_palette2_w);
DECLARE_WRITE32_MEMBER(konamigx_tilebank_w);
@@ -254,6 +253,9 @@ public:
int m_konamigx_type3_psac2_actual_bank;
//int m_konamigx_type3_psac2_actual_last_bank = 0;
+
+ DECLARE_DRIVER_INIT(posthack);
+ int m_use_68020_post_clock_hack;
};
// Sprite Callbacks
diff --git a/src/mess/includes/kramermc.h b/src/mame/includes/kramermc.h
index 87222f7e578..87222f7e578 100644
--- a/src/mess/includes/kramermc.h
+++ b/src/mame/includes/kramermc.h
diff --git a/src/mess/includes/kyocera.h b/src/mame/includes/kyocera.h
index ef5e5737dea..ef5e5737dea 100644
--- a/src/mess/includes/kyocera.h
+++ b/src/mame/includes/kyocera.h
diff --git a/src/mess/includes/lc80.h b/src/mame/includes/lc80.h
index bf54ed9ed95..bf54ed9ed95 100644
--- a/src/mess/includes/lc80.h
+++ b/src/mame/includes/lc80.h
diff --git a/src/mame/includes/leland.h b/src/mame/includes/leland.h
index cc0ed2da506..ef8a4d2b585 100644
--- a/src/mame/includes/leland.h
+++ b/src/mame/includes/leland.h
@@ -237,7 +237,6 @@ protected:
// device-level overrides
virtual void device_start();
virtual void device_reset();
- virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
int m_type;
enum {
@@ -247,7 +246,14 @@ protected:
TYPE_WSF
};
- required_device<dac_device> m_dac;
+ required_device<dac_device> m_dac1;
+ required_device<dac_device> m_dac2;
+ required_device<dac_device> m_dac3;
+ required_device<dac_device> m_dac4;
+ optional_device<dac_device> m_dac5;
+ optional_device<dac_device> m_dac6;
+ optional_device<dac_device> m_dac7;
+ optional_device<dac_device> m_dac8;
private:
void command_lo_sync(void *ptr, int param);
@@ -266,9 +272,6 @@ private:
UINT32 m_ext_stop;
UINT8 m_ext_active;
UINT8* m_ext_base;
- INT16 m_dac_sample[8];
- UINT8 m_dac_volume[8];
- emu_timer *m_dac_timer;
required_device<pit8254_device> m_pit0;
optional_device<pit8254_device> m_pit1;
diff --git a/src/mame/includes/lethalj.h b/src/mame/includes/lethalj.h
index ed70bdf3453..390f889ef3c 100644
--- a/src/mame/includes/lethalj.h
+++ b/src/mame/includes/lethalj.h
@@ -6,6 +6,9 @@
**************************************************************************/
+#include "machine/ticket.h"
+
+
class lethalj_state : public driver_device
{
public:
@@ -17,10 +20,24 @@ public:
lethalj_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) ,
m_maincpu(*this, "maincpu"),
- m_screen(*this, "screen") { }
+ m_screen(*this, "screen"),
+ m_ticket(*this, "ticket"),
+ m_paddle(*this, "PADDLE"),
+ m_light0_x(*this, "LIGHT0_X"),
+ m_light0_y(*this, "LIGHT0_Y"),
+ m_light1_x(*this, "LIGHT1_X"),
+ m_light1_y(*this, "LIGHT1_Y")
+ { }
required_device<cpu_device> m_maincpu;
required_device<screen_device> m_screen;
+ required_device<ticket_dispenser_device> m_ticket;
+ optional_ioport m_paddle;
+ optional_ioport m_light0_x;
+ optional_ioport m_light0_y;
+ optional_ioport m_light1_x;
+ optional_ioport m_light1_y;
+
UINT16 m_blitter_data[8];
UINT16 *m_screenram;
UINT8 m_vispage;
diff --git a/src/mame/includes/liberate.h b/src/mame/includes/liberate.h
index 442c5ca5b70..c86a926b090 100644
--- a/src/mame/includes/liberate.h
+++ b/src/mame/includes/liberate.h
@@ -5,7 +5,6 @@ class liberate_state : public driver_device
public:
liberate_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
- m_paletteram(*this, "paletteram"),
m_bg_vram(*this, "bg_vram"),
m_colorram(*this, "colorram"),
m_videoram(*this, "videoram"),
@@ -17,7 +16,6 @@ public:
m_palette(*this, "palette"),
m_decrypted_opcodes(*this, "decrypted_opcodes") { }
- optional_shared_ptr<UINT8> m_paletteram;
optional_shared_ptr<UINT8> m_bg_vram; /* prosport */
required_shared_ptr<UINT8> m_colorram;
required_shared_ptr<UINT8> m_videoram;
@@ -59,7 +57,6 @@ public:
DECLARE_WRITE8_MEMBER(liberate_videoram_w);
DECLARE_WRITE8_MEMBER(liberate_colorram_w);
DECLARE_WRITE8_MEMBER(prosport_bg_vram_w);
- DECLARE_WRITE8_MEMBER(prosport_paletteram_w);
DECLARE_DRIVER_INIT(yellowcb);
DECLARE_DRIVER_INIT(liberate);
DECLARE_DRIVER_INIT(prosport);
diff --git a/src/mess/includes/lisa.h b/src/mame/includes/lisa.h
index c52c53fb833..c52c53fb833 100644
--- a/src/mess/includes/lisa.h
+++ b/src/mame/includes/lisa.h
diff --git a/src/mame/includes/lkage.h b/src/mame/includes/lkage.h
index 27bacd92fde..0df611aac37 100644
--- a/src/mame/includes/lkage.h
+++ b/src/mame/includes/lkage.h
@@ -20,7 +20,6 @@ public:
required_shared_ptr<UINT8> m_scroll;
required_shared_ptr<UINT8> m_spriteram;
required_shared_ptr<UINT8> m_videoram;
-// UINT8 * m_paletteram; // currently this uses generic palette handling
/* video-related */
tilemap_t *m_bg_tilemap;
diff --git a/src/mess/includes/llc.h b/src/mame/includes/llc.h
index c98a7484146..c98a7484146 100644
--- a/src/mess/includes/llc.h
+++ b/src/mame/includes/llc.h
diff --git a/src/mess/includes/lviv.h b/src/mame/includes/lviv.h
index 363948263e2..363948263e2 100644
--- a/src/mess/includes/lviv.h
+++ b/src/mame/includes/lviv.h
diff --git a/src/mame/includes/lwings.h b/src/mame/includes/lwings.h
index ef88429411b..51abcb98b5e 100644
--- a/src/mame/includes/lwings.h
+++ b/src/mame/includes/lwings.h
@@ -22,8 +22,6 @@ public:
required_shared_ptr<UINT8> m_fgvideoram;
required_shared_ptr<UINT8> m_bg1videoram;
required_shared_ptr<UINT8> m_soundlatch2;
-// UINT8 * m_paletteram; // currently this uses generic palette handling
-// UINT8 * m_paletteram2; // currently this uses generic palette handling
/* video-related */
tilemap_t *m_fg_tilemap;
@@ -31,6 +29,7 @@ public:
tilemap_t *m_bg2_tilemap;
UINT8 m_bg2_image;
int m_bg2_avenger_hw;
+ int m_spr_avenger_hw;
UINT8 m_scroll_x[2];
UINT8 m_scroll_y[2];
@@ -63,8 +62,10 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ DECLARE_DRIVER_INIT(avengersb);
DECLARE_VIDEO_START(trojan);
DECLARE_VIDEO_START(avengers);
+ DECLARE_VIDEO_START(avengersb);
UINT32 screen_update_lwings(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update_trojan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(lwings_interrupt);
diff --git a/src/mess/includes/lynx.h b/src/mame/includes/lynx.h
index 9d45fa13467..9d45fa13467 100644
--- a/src/mess/includes/lynx.h
+++ b/src/mame/includes/lynx.h
diff --git a/src/mame/includes/m107.h b/src/mame/includes/m107.h
index 2060595fa42..3772567084c 100644
--- a/src/mame/includes/m107.h
+++ b/src/mame/includes/m107.h
@@ -6,6 +6,7 @@
*************************************************************************/
+#include "machine/pic8259.h"
struct pf_layer_info
{
@@ -24,7 +25,9 @@ public:
m_screen(*this, "screen"),
m_palette(*this, "palette"),
m_spriteram(*this, "spriteram"),
- m_vram_data(*this, "vram_data") { }
+ m_vram_data(*this, "vram_data"),
+ m_upd71059c(*this, "upd71059c")
+ { }
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_soundcpu;
@@ -34,9 +37,9 @@ public:
required_shared_ptr<UINT16> m_spriteram;
required_shared_ptr<UINT16> m_vram_data;
+ required_device<pic8259_device> m_upd71059c;
// driver init
- UINT8 m_irq_vectorbase;
UINT8 m_spritesystem;
int m_sound_status;
diff --git a/src/mess/includes/m5.h b/src/mame/includes/m5.h
index 6d95a69a6c5..6d95a69a6c5 100644
--- a/src/mess/includes/m5.h
+++ b/src/mame/includes/m5.h
diff --git a/src/mame/includes/m72.h b/src/mame/includes/m72.h
index f0dab51ca7d..692d2485bc9 100644
--- a/src/mame/includes/m72.h
+++ b/src/mame/includes/m72.h
@@ -7,6 +7,19 @@
*************************************************************************/
#include "audio/m72.h"
#include "sound/dac.h"
+#include "machine/pic8259.h"
+
+#define M81_B_B_JUMPER_J3_S \
+ PORT_START("JumperJ3") \
+ PORT_CONFNAME( 0x0001, 0x0000, "M81-B-B Jumper J3" ) \
+ PORT_CONFSETTING( 0x0000, "S" ) \
+ /* PORT_CONFSETTING( 0x0001, "W" ) */
+
+#define M81_B_B_JUMPER_J3_W \
+ PORT_START("JumperJ3") \
+ PORT_CONFNAME( 0x0001, 0x0001, "M81-B-B Jumper J3" ) \
+ /* PORT_CONFSETTING( 0x0000, "S" ) */ \
+ PORT_CONFSETTING( 0x0001, "W" )
class m72_state : public driver_device
{
@@ -24,11 +37,18 @@ public:
m_spriteram(*this, "spriteram"),
m_videoram1(*this, "videoram1"),
m_videoram2(*this, "videoram2"),
- m_majtitle_rowscrollram(*this, "majtitle_rowscr"),
+ m_m82_rowscrollram(*this, "majtitle_rowscr"),
m_spriteram2(*this, "spriteram2"),
m_soundram(*this, "soundram"),
m_generic_paletteram_16(*this, "paletteram"),
- m_generic_paletteram2_16(*this, "paletteram2") { }
+ m_generic_paletteram2_16(*this, "paletteram2"),
+ m_upd71059c(*this, "upd71059c"),
+ m_fg_source(0),
+ m_bg_source(0),
+ m_m81_b_b_j3(*this, "JumperJ3"),
+ m_m82_rowscroll(0),
+ m_m82_tmcontrol(0)
+ { }
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_soundcpu;
@@ -42,33 +62,39 @@ public:
required_shared_ptr<UINT16> m_spriteram;
required_shared_ptr<UINT16> m_videoram1;
required_shared_ptr<UINT16> m_videoram2;
- optional_shared_ptr<UINT16> m_majtitle_rowscrollram;
+ optional_shared_ptr<UINT16> m_m82_rowscrollram;
optional_shared_ptr<UINT16> m_spriteram2;
optional_shared_ptr<UINT8> m_soundram;
required_shared_ptr<UINT16> m_generic_paletteram_16;
required_shared_ptr<UINT16> m_generic_paletteram2_16;
+ optional_device<pic8259_device> m_upd71059c;
UINT16 *m_protection_ram;
emu_timer *m_scanline_timer;
- UINT8 m_irq_base;
const UINT8 *m_protection_code;
const UINT8 *m_protection_crc;
UINT32 m_raster_irq_position;
UINT16 *m_buffered_spriteram;
tilemap_t *m_fg_tilemap;
tilemap_t *m_bg_tilemap;
+ tilemap_t *m_bg_tilemap_large;
INT32 m_scrollx1;
INT32 m_scrolly1;
INT32 m_scrollx2;
INT32 m_scrolly2;
INT32 m_video_off;
+ int m_fg_source;
+ int m_bg_source;
+ optional_ioport m_m81_b_b_j3;
+
//poundfor specific
int m_prev[4];
int m_diff[4];
// majtitle specific
- int m_majtitle_rowscroll;
+ int m_m82_rowscroll;
+ UINT16 m_m82_tmcontrol;
// m72_i8751 specific
UINT8 m_mcu_snd_cmd_latch;
@@ -114,28 +140,29 @@ public:
DECLARE_WRITE16_MEMBER(imgfight_sample_trigger_w);
DECLARE_WRITE16_MEMBER(loht_sample_trigger_w);
DECLARE_WRITE16_MEMBER(dbreedm72_sample_trigger_w);
- DECLARE_WRITE16_MEMBER(airduel_sample_trigger_w);
+ DECLARE_WRITE16_MEMBER(airduelm72_sample_trigger_w);
DECLARE_WRITE16_MEMBER(dkgenm72_sample_trigger_w);
DECLARE_WRITE16_MEMBER(gallop_sample_trigger_w);
DECLARE_READ16_MEMBER(poundfor_trackball_r);
DECLARE_WRITE16_MEMBER(rtype2_port02_w);
- DECLARE_WRITE16_MEMBER(majtitle_gfx_ctrl_w);
+ DECLARE_WRITE16_MEMBER(m82_gfx_ctrl_w);
+ DECLARE_WRITE16_MEMBER(m82_tm_ctrl_w);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
- TILE_GET_INFO_MEMBER(hharry_get_bg_tile_info);
+
TILE_GET_INFO_MEMBER(rtype2_get_bg_tile_info);
TILE_GET_INFO_MEMBER(rtype2_get_fg_tile_info);
- TILEMAP_MAPPER_MEMBER(majtitle_scan_rows);
+
+ TILEMAP_MAPPER_MEMBER(m82_scan_rows);
void machine_start();
void machine_reset();
DECLARE_VIDEO_START(m72);
- DECLARE_MACHINE_RESET(xmultipl);
DECLARE_VIDEO_START(xmultipl);
DECLARE_VIDEO_START(hharry);
DECLARE_VIDEO_START(rtype2);
- DECLARE_VIDEO_START(majtitle);
+ DECLARE_VIDEO_START(m82);
DECLARE_VIDEO_START(hharryu);
DECLARE_VIDEO_START(poundfor);
DECLARE_MACHINE_START(kengo);
@@ -145,7 +172,7 @@ public:
DECLARE_DRIVER_INIT(gallop);
DECLARE_DRIVER_INIT(m72_8751);
DECLARE_DRIVER_INIT(dbreedm72);
- DECLARE_DRIVER_INIT(airduel);
+ DECLARE_DRIVER_INIT(airduelm72);
DECLARE_DRIVER_INIT(nspirit);
DECLARE_DRIVER_INIT(loht);
DECLARE_DRIVER_INIT(imgfight);
@@ -159,9 +186,10 @@ public:
UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- UINT32 screen_update_majtitle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- inline void get_tile_info(tile_data &tileinfo,int tile_index,const UINT16 *vram,int gfxnum);
- inline void rtype2_get_tile_info(tile_data &tileinfo,int tile_index,const UINT16 *vram,int gfxnum);
+ UINT32 screen_update_m81(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_m82(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ inline void m72_m81_get_tile_info(tile_data &tileinfo,int tile_index,const UINT16 *vram,int gfxnum);
+ inline void m82_m84_get_tile_info(tile_data &tileinfo,int tile_index,const UINT16 *vram,int gfxnum);
void register_savestate();
inline void changecolor(int color,int r,int g,int b);
void draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect);
diff --git a/src/mame/includes/m92.h b/src/mame/includes/m92.h
index 2e4f9e22b09..a4a3969565e 100644
--- a/src/mame/includes/m92.h
+++ b/src/mame/includes/m92.h
@@ -8,6 +8,7 @@
#include "video/bufsprite.h"
#include "sound/okim6295.h"
+#include "machine/pic8259.h"
struct M92_pf_layer_info
{
@@ -35,7 +36,8 @@ public:
m_oki(*this, "oki"),
m_gfxdecode(*this, "gfxdecode"),
m_screen(*this, "screen"),
- m_palette(*this, "palette")
+ m_palette(*this, "palette"),
+ m_upd71059c(*this, "upd71059c")
{ }
required_device<buffered_spriteram16_device> m_spriteram;
@@ -47,9 +49,11 @@ public:
required_device<gfxdecode_device> m_gfxdecode;
required_device<screen_device> m_screen;
required_device<palette_device> m_palette;
+ required_device<pic8259_device> m_upd71059c;
+
+ IRQ_CALLBACK_MEMBER(m92_irq_callback);
UINT16 m_sound_status;
- UINT8 m_irq_vectorbase;
UINT32 m_raster_irq_position;
UINT16 m_videocontrol;
UINT8 m_sprite_buffer_busy;
@@ -83,7 +87,6 @@ public:
DECLARE_WRITE16_MEMBER(oki_bank_w);
DECLARE_DRIVER_INIT(majtitl2);
DECLARE_DRIVER_INIT(ppan);
- DECLARE_DRIVER_INIT(m92_alt);
DECLARE_DRIVER_INIT(lethalth);
DECLARE_DRIVER_INIT(m92);
DECLARE_DRIVER_INIT(m92_bank);
diff --git a/src/mess/includes/mac.h b/src/mame/includes/mac.h
index 6b0092501fd..6b0092501fd 100644
--- a/src/mess/includes/mac.h
+++ b/src/mame/includes/mac.h
diff --git a/src/mess/includes/macpci.h b/src/mame/includes/macpci.h
index 56f7d066431..56f7d066431 100644
--- a/src/mess/includes/macpci.h
+++ b/src/mame/includes/macpci.h
diff --git a/src/mame/includes/macrossp.h b/src/mame/includes/macrossp.h
index aa5ab298cc0..703a327b7e0 100644
--- a/src/mame/includes/macrossp.h
+++ b/src/mame/includes/macrossp.h
@@ -28,10 +28,10 @@ public:
m_text_linezoom(*this, "text_linezoom"),
m_text_videoregs(*this, "text_videoregs"),
- m_paletteram(*this, "paletteram"),
m_mainram(*this, "mainram"),
m_maincpu(*this, "maincpu"),
m_audiocpu(*this, "audiocpu"),
+ m_screen(*this, "screen"),
m_gfxdecode(*this, "gfxdecode"),
m_palette(*this, "palette")
{
@@ -51,7 +51,6 @@ public:
required_shared_ptr<UINT32> m_text_videoram;
required_shared_ptr<UINT32> m_text_linezoom;
required_shared_ptr<UINT32> m_text_videoregs;
- required_shared_ptr<UINT32> m_paletteram;
required_shared_ptr<UINT32> m_mainram;
UINT32 * m_spriteram_old;
UINT32 * m_spriteram_old2;
@@ -65,20 +64,18 @@ public:
/* misc */
int m_sndpending;
int m_snd_toggle;
- INT32 m_fade_effect;
- INT32 m_old_fade;
/* devices */
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_audiocpu;
+ required_device<screen_device> m_screen;
required_device<gfxdecode_device> m_gfxdecode;
required_device<palette_device> m_palette;
- DECLARE_WRITE32_MEMBER(paletteram32_macrossp_w);
DECLARE_READ32_MEMBER(macrossp_soundstatus_r);
DECLARE_WRITE32_MEMBER(macrossp_soundcmd_w);
DECLARE_READ16_MEMBER(macrossp_soundcmd_r);
- DECLARE_WRITE32_MEMBER(macrossp_palette_fade_w);
+ DECLARE_WRITE16_MEMBER(palette_fade_w);
DECLARE_WRITE32_MEMBER(macrossp_speedup_w);
DECLARE_WRITE32_MEMBER(quizmoon_speedup_w);
DECLARE_WRITE32_MEMBER(macrossp_scra_videoram_w);
@@ -96,9 +93,7 @@ public:
virtual void video_start();
UINT32 screen_update_macrossp(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
void screen_eof_macrossp(screen_device &screen, bool state);
- void draw_sprites(bitmap_rgb32 &bitmap, const rectangle &cliprect, int priority );
- void draw_layer( screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int layer, int line );
- void sortlayers(int *layer,int *pri);
- void update_colors( );
+ void draw_sprites(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ void draw_layer(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int layer, int linem, int pri);
DECLARE_WRITE_LINE_MEMBER(irqhandler);
};
diff --git a/src/mame/includes/madmotor.h b/src/mame/includes/madmotor.h
index 67f1a821fae..ec815c94bb8 100644
--- a/src/mame/includes/madmotor.h
+++ b/src/mame/includes/madmotor.h
@@ -24,7 +24,6 @@ public:
/* memory pointers */
required_shared_ptr<UINT16> m_spriteram;
-// UINT16 * m_paletteram; // this currently uses generic palette handlers
/* video-related */
int m_flipscreen;
diff --git a/src/mame/includes/mainevt.h b/src/mame/includes/mainevt.h
index c8b92ff3eed..f68af5e78b8 100644
--- a/src/mame/includes/mainevt.h
+++ b/src/mame/includes/mainevt.h
@@ -22,14 +22,8 @@ public:
m_upd7759(*this, "upd"),
m_k007232(*this, "k007232"),
m_k052109(*this, "k052109"),
- m_k051960(*this, "k051960") { }
-
- /* memory pointers */
-// UINT8 * m_paletteram; // currently this uses generic palette handling
-
- /* video-related */
- int m_layer_colorbase[3];
- int m_sprite_colorbase;
+ m_k051960(*this, "k051960"),
+ m_rombank(*this, "rombank") { }
/* misc */
int m_nmi_enable;
@@ -42,6 +36,9 @@ public:
required_device<k007232_device> m_k007232;
required_device<k052109_device> m_k052109;
required_device<k051960_device> m_k051960;
+
+ required_memory_bank m_rombank;
+
DECLARE_WRITE8_MEMBER(dv_nmienable_w);
DECLARE_WRITE8_MEMBER(mainevt_bankswitch_w);
DECLARE_WRITE8_MEMBER(mainevt_coin_w);
@@ -55,8 +52,6 @@ public:
DECLARE_WRITE8_MEMBER(dv_sh_bankswitch_w);
virtual void machine_start();
virtual void machine_reset();
- DECLARE_VIDEO_START(mainevt);
- DECLARE_VIDEO_START(dv);
UINT32 screen_update_mainevt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update_dv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(mainevt_interrupt);
diff --git a/src/mess/includes/mbc55x.h b/src/mame/includes/mbc55x.h
index d0578708939..d0578708939 100644
--- a/src/mess/includes/mbc55x.h
+++ b/src/mame/includes/mbc55x.h
diff --git a/src/mess/includes/mbee.h b/src/mame/includes/mbee.h
index 53ea3282d37..53ea3282d37 100644
--- a/src/mess/includes/mbee.h
+++ b/src/mame/includes/mbee.h
diff --git a/src/mess/includes/mboard.h b/src/mame/includes/mboard.h
index 9cf94c502f3..b6e8c5028f4 100644
--- a/src/mess/includes/mboard.h
+++ b/src/mame/includes/mboard.h
@@ -43,7 +43,17 @@ class mboard_state : public driver_device
public:
mboard_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
- m_maincpu(*this, "maincpu") { }
+ m_maincpu(*this, "maincpu"),
+ m_line(*this, "LINE"),
+ m_line10(*this, "LINE10"),
+ m_b_white(*this, "B_WHITE"),
+ m_b_black(*this, "B_BLACK"),
+ m_b_buttons(*this, "B_BUTTONS"),
+ m_mouse_x(*this, "MOUSE_X"),
+ m_mouse_y(*this, "MOUSE_Y"),
+ m_button_l(*this, "BUTTON_L"),
+ m_button_r(*this, "BUTTON_R")
+ { }
DECLARE_READ8_MEMBER(mboard_read_board_8);
DECLARE_WRITE8_MEMBER(mboard_write_board_8);
@@ -96,6 +106,15 @@ private:
void check_board_buttons();
public:
required_device<cpu_device> m_maincpu;
+ required_ioport_array<8> m_line;
+ required_ioport m_line10;
+ required_ioport m_b_white;
+ required_ioport m_b_black;
+ required_ioport m_b_buttons;
+ required_ioport m_mouse_x;
+ required_ioport m_mouse_y;
+ required_ioport m_button_l;
+ required_ioport m_button_r;
};
diff --git a/src/mess/includes/mc1000.h b/src/mame/includes/mc1000.h
index b39932b290e..b39932b290e 100644
--- a/src/mess/includes/mc1000.h
+++ b/src/mame/includes/mc1000.h
diff --git a/src/mess/includes/mc1502.h b/src/mame/includes/mc1502.h
index 28b38aca85e..28b38aca85e 100644
--- a/src/mess/includes/mc1502.h
+++ b/src/mame/includes/mc1502.h
diff --git a/src/mess/includes/mc80.h b/src/mame/includes/mc80.h
index 74699a2327c..74699a2327c 100644
--- a/src/mess/includes/mc80.h
+++ b/src/mame/includes/mc80.h
diff --git a/src/mame/includes/mcatadv.h b/src/mame/includes/mcatadv.h
index 5c7f5bf1cb0..81ddb102175 100644
--- a/src/mame/includes/mcatadv.h
+++ b/src/mame/includes/mcatadv.h
@@ -26,7 +26,6 @@ public:
UINT16 * m_spriteram_old;
required_shared_ptr<UINT16> m_vidregs;
UINT16 * m_vidregs_old;
-// UINT16 * m_paletteram; // this currently uses generic palette handlers
/* video-related */
tilemap_t *m_tilemap1;
diff --git a/src/mame/includes/mcr68.h b/src/mame/includes/mcr68.h
index 2115cbd2df1..86485c7ed81 100644
--- a/src/mame/includes/mcr68.h
+++ b/src/mame/includes/mcr68.h
@@ -28,8 +28,7 @@ public:
m_maincpu(*this, "maincpu"),
m_gfxdecode(*this, "gfxdecode"),
m_screen(*this, "screen"),
- m_palette(*this, "palette"),
- m_generic_paletteram_16(*this, "paletteram") { }
+ m_palette(*this, "palette") { }
optional_device<midway_chip_squeak_deluxe_device> m_chip_squeak_deluxe;
optional_device<midway_sounds_good_device> m_sounds_good;
@@ -79,8 +78,6 @@ public:
DECLARE_READ16_MEMBER(mcr68_6840_r_common);
void reload_count(int counter);
UINT16 compute_counter(int counter);
- DECLARE_WRITE16_MEMBER(mcr68_paletteram_w);
- DECLARE_WRITE16_MEMBER(zwackery_paletteram_w);
DECLARE_WRITE16_MEMBER(mcr68_videoram_w);
DECLARE_WRITE16_MEMBER(zwackery_videoram_w);
DECLARE_WRITE16_MEMBER(zwackery_spriteram_w);
@@ -129,5 +126,4 @@ public:
required_device<gfxdecode_device> m_gfxdecode;
required_device<screen_device> m_screen;
required_device<palette_device> m_palette;
- required_shared_ptr<UINT16> m_generic_paletteram_16;
};
diff --git a/src/mess/includes/md_cons.h b/src/mame/includes/md_cons.h
index b2904a4134a..b2904a4134a 100644
--- a/src/mess/includes/md_cons.h
+++ b/src/mame/includes/md_cons.h
diff --git a/src/mame/includes/megadriv.h b/src/mame/includes/megadriv.h
index 96cf8fa3f1c..b30205cb890 100644
--- a/src/mame/includes/megadriv.h
+++ b/src/mame/includes/megadriv.h
@@ -46,12 +46,14 @@ public:
m_z80snd(*this,"genesis_snd_z80"),
m_ymsnd(*this,"ymsnd"),
m_vdp(*this,"gen_vdp"),
+ m_snsnd(*this, "snsnd"),
m_megadrive_ram(*this,"megadrive_ram")
{ }
required_device<m68000_base_device> m_maincpu;
optional_device<cpu_device> m_z80snd;
optional_device<ym2612_device> m_ymsnd;
required_device<sega315_5313_device> m_vdp;
+ required_device<sn76496_base_device> m_snsnd;
optional_shared_ptr<UINT16> m_megadrive_ram;
ioport_port *m_io_reset;
diff --git a/src/mame/includes/megasys1.h b/src/mame/includes/megasys1.h
index 869ff11f182..073541652c7 100644
--- a/src/mame/includes/megasys1.h
+++ b/src/mame/includes/megasys1.h
@@ -135,6 +135,7 @@ public:
DECLARE_DRIVER_INIT(rodland);
DECLARE_DRIVER_INIT(edfbl);
DECLARE_DRIVER_INIT(stdragona);
+ DECLARE_DRIVER_INIT(stdragonb);
TILEMAP_MAPPER_MEMBER(megasys1_scan_8x8);
TILEMAP_MAPPER_MEMBER(megasys1_scan_16x16);
TILE_GET_INFO_MEMBER(megasys1_get_scroll_tile_info_8x8);
diff --git a/src/mame/includes/metlclsh.h b/src/mame/includes/metlclsh.h
index 0f68a1e300a..8885ff1019d 100644
--- a/src/mame/includes/metlclsh.h
+++ b/src/mame/includes/metlclsh.h
@@ -26,8 +26,6 @@ public:
required_shared_ptr<UINT8> m_bgram;
required_shared_ptr<UINT8> m_scrollx;
UINT8 * m_otherram;
-// UINT8 * m_paletteram; // currently this uses generic palette handling
-// UINT8 * m_paletteram2; // currently this uses generic palette handling
/* video-related */
tilemap_t *m_bg_tilemap;
diff --git a/src/mame/includes/micro3d.h b/src/mame/includes/micro3d.h
index 01b9a52dfea..ed0f05ee67e 100644
--- a/src/mame/includes/micro3d.h
+++ b/src/mame/includes/micro3d.h
@@ -39,6 +39,7 @@ enum dac_registers {
PAN
};
+class micro3d_sound_device;
class micro3d_state : public driver_device
{
@@ -58,7 +59,14 @@ public:
m_vgb(*this, "vgb"),
m_palette(*this, "palette"),
m_duart68681(*this, "duart68681"),
- m_generic_paletteram_16(*this, "paletteram"),
+ m_noise_1(*this, "noise_1"),
+ m_noise_2(*this, "noise_2"),
+ m_vertex(*this, "vertex"),
+ m_sound_sw(*this, "SOUND_SW"),
+ m_volume(*this, "VOLUME"),
+ m_joystick_x(*this, "JOYSTICK_X"),
+ m_joystick_y(*this, "JOYSTICK_Y"),
+ m_throttle(*this, "THROTTLE"),
m_shared_ram(*this, "shared_ram"),
m_mac_sram(*this, "mac_sram"),
m_sprite_vram(*this, "sprite_vram") { }
@@ -70,7 +78,15 @@ public:
required_device<tms34010_device> m_vgb;
required_device<palette_device> m_palette;
required_device<mc68681_device> m_duart68681;
- required_shared_ptr<UINT16> m_generic_paletteram_16;
+ required_device<micro3d_sound_device> m_noise_1;
+ required_device<micro3d_sound_device> m_noise_2;
+ required_memory_region m_vertex;
+
+ required_ioport m_sound_sw;
+ required_ioport m_volume;
+ optional_ioport m_joystick_x;
+ optional_ioport m_joystick_y;
+ optional_ioport m_throttle;
required_shared_ptr<UINT16> m_shared_ram;
UINT8 m_m68681_tx0;
@@ -145,7 +161,6 @@ public:
DECLARE_READ32_MEMBER(micro3d_shared_r);
DECLARE_WRITE32_MEMBER(drmath_int_w);
DECLARE_WRITE32_MEMBER(drmath_intr2_ack);
- DECLARE_WRITE16_MEMBER(micro3d_clut_w);
DECLARE_WRITE16_MEMBER(micro3d_creg_w);
DECLARE_WRITE16_MEMBER(micro3d_xfer3dk_w);
DECLARE_WRITE32_MEMBER(micro3d_fifo_w);
@@ -229,17 +244,17 @@ protected:
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples);
private:
// internal state
-// union
-// {
-// struct
-// {
-// UINT8 m_vcf;
-// UINT8 m_vcq;
-// UINT8 m_vca;
-// UINT8 m_pan;
-// };
+// union
+// {
+// struct
+// {
+// UINT8 m_vcf;
+// UINT8 m_vcq;
+// UINT8 m_vca;
+// UINT8 m_pan;
+// };
UINT8 m_dac[4];
-// };
+// };
float m_gain;
UINT32 m_noise_shift;
diff --git a/src/mess/includes/micronic.h b/src/mame/includes/micronic.h
index f55fe9bb586..f55fe9bb586 100644
--- a/src/mess/includes/micronic.h
+++ b/src/mame/includes/micronic.h
diff --git a/src/mess/includes/microtan.h b/src/mame/includes/microtan.h
index 29640649763..29640649763 100644
--- a/src/mess/includes/microtan.h
+++ b/src/mame/includes/microtan.h
diff --git a/src/mame/includes/midtunit.h b/src/mame/includes/midtunit.h
index 48973fb6134..98cd404aa32 100644
--- a/src/mame/includes/midtunit.h
+++ b/src/mame/includes/midtunit.h
@@ -24,7 +24,6 @@ public:
m_dcs(*this, "dcs"),
m_cvsd_sound(*this, "cvsd"),
m_adpcm_sound(*this, "adpcm") ,
- m_generic_paletteram_16(*this, "paletteram"),
m_nvram(*this, "nvram"),
m_gfxrom(*this, "gfxrom") { }
@@ -34,7 +33,6 @@ public:
optional_device<williams_cvsd_sound_device> m_cvsd_sound;
optional_device<williams_adpcm_sound_device> m_adpcm_sound;
- required_shared_ptr<UINT16> m_generic_paletteram_16;
required_shared_ptr<UINT16> m_nvram;
required_memory_region m_gfxrom;
@@ -69,7 +67,6 @@ public:
DECLARE_WRITE16_MEMBER(midtunit_control_w);
DECLARE_WRITE16_MEMBER(midwunit_control_w);
DECLARE_READ16_MEMBER(midwunit_control_r);
- DECLARE_WRITE16_MEMBER(midtunit_paletteram_w);
DECLARE_WRITE16_MEMBER(midxunit_paletteram_w);
DECLARE_READ16_MEMBER(midxunit_paletteram_r);
DECLARE_READ16_MEMBER(midtunit_dma_r);
diff --git a/src/mame/includes/midzeus.h b/src/mame/includes/midzeus.h
index fe30b8e4db7..54850ec49d3 100644
--- a/src/mame/includes/midzeus.h
+++ b/src/mame/includes/midzeus.h
@@ -79,7 +79,6 @@ private:
void zeus_register_update(offs_t offset);
int zeus_fifo_process(const UINT32 *data, int numwords);
void zeus_draw_model(UINT32 texdata, int logit);
- void zeus_draw_quad(int long_fmt, const UINT32 *databuffer, UINT32 texdata, int logit);
void log_fifo_command(const UINT32 *data, int numwords, const char *suffix);
void log_waveram(UINT32 length_and_base);
@@ -105,6 +104,5 @@ private:
int zeus2_fifo_process(const UINT32 *data, int numwords);
void zeus2_pointer_write(UINT8 which, UINT32 value);
void zeus2_draw_model(UINT32 baseaddr, UINT16 count, int logit);
- void zeus2_draw_quad(const UINT32 *databuffer, UINT32 texoffs, int logit);
void log_fifo_command(const UINT32 *data, int numwords, const char *suffix);
};
diff --git a/src/mess/includes/mikro80.h b/src/mame/includes/mikro80.h
index 99ca55e3692..99ca55e3692 100644
--- a/src/mess/includes/mikro80.h
+++ b/src/mame/includes/mikro80.h
diff --git a/src/mess/includes/mikromik.h b/src/mame/includes/mikromik.h
index 3565d77e8de..3565d77e8de 100644
--- a/src/mess/includes/mikromik.h
+++ b/src/mame/includes/mikromik.h
diff --git a/src/mame/includes/model2.h b/src/mame/includes/model2.h
index 034c6c05e98..64d7a7f6c03 100644
--- a/src/mame/includes/model2.h
+++ b/src/mame/includes/model2.h
@@ -1,6 +1,6 @@
// license:BSD-3-Clause
// copyright-holders:R. Belmont, Olivier Galibert, ElSemi, Angelo Salese
-#include "video/polylgcy.h"
+#include "video/poly.h"
#include "audio/dsbz80.h"
#include "audio/segam1audio.h"
#include "machine/eepromser.h"
@@ -9,10 +9,10 @@
#include "machine/315-5881_crypt.h"
#include "machine/315-5838_317-0229_comp.h"
+class model2_renderer;
struct raster_state;
struct geo_state;
-
class model2_state : public driver_device
{
public:
@@ -107,7 +107,7 @@ public:
int m_jnet_time_out;
UINT32 m_geo_read_start_address;
UINT32 m_geo_write_start_address;
- legacy_poly_manager *m_poly;
+ model2_renderer *m_poly;
raster_state *m_raster;
geo_state *m_geo;
bitmap_rgb32 m_sys24_bitmap;
@@ -219,7 +219,6 @@ public:
TIMER_DEVICE_CALLBACK_MEMBER(model2_timer_cb);
TIMER_DEVICE_CALLBACK_MEMBER(model2_interrupt);
TIMER_DEVICE_CALLBACK_MEMBER(model2c_interrupt);
- void model2_exit();
DECLARE_WRITE8_MEMBER(scsp_irq);
DECLARE_READ_LINE_MEMBER(copro_tgp_fifoin_pop_ok);
DECLARE_READ32_MEMBER(copro_tgp_fifoin_pop);
@@ -237,5 +236,179 @@ public:
void model2_3d_frame_end( bitmap_rgb32 &bitmap, const rectangle &cliprect );
};
+
+/*****************************
+ *
+ * Modern polygon renderer
+ *
+ *****************************/
+
+struct m2_poly_extra_data
+{
+ model2_state * state;
+ UINT32 lumabase;
+ UINT32 colorbase;
+ UINT32 * texsheet;
+ UINT32 texwidth;
+ UINT32 texheight;
+ UINT32 texx, texy;
+ UINT8 texmirrorx;
+ UINT8 texmirrory;
+};
+
+
+INLINE UINT16 get_texel( UINT32 base_x, UINT32 base_y, int x, int y, UINT32 *sheet )
+{
+ UINT32 baseoffs = ((base_y/2)*512)+(base_x/2);
+ UINT32 texeloffs = ((y/2)*512)+(x/2);
+ UINT32 offset = baseoffs + texeloffs;
+ UINT32 texel = sheet[offset>>1];
+
+ if ( offset & 1 )
+ texel >>= 16;
+
+ if ( (y & 1) == 0 )
+ texel >>= 8;
+
+ if ( (x & 1) == 0 )
+ texel >>= 4;
+
+ return (texel & 0x0f);
+}
+
+struct triangle;
+
+class model2_renderer : public poly_manager<float, m2_poly_extra_data, 4, 4000>
+{
+public:
+ typedef void (model2_renderer::*scanline_render_func)(INT32 scanline, const extent_t& extent, const m2_poly_extra_data& object, int threadid);
+
+public:
+ model2_renderer(model2_state& state)
+ : poly_manager<float, m2_poly_extra_data, 4, 4000>(state.machine())
+ , m_state(state)
+ , m_destmap(state.m_screen->width(), state.m_screen->height())
+ {
+ m_renderfuncs[0] = &model2_renderer::model2_3d_render_0;
+ m_renderfuncs[1] = &model2_renderer::model2_3d_render_1;
+ m_renderfuncs[2] = &model2_renderer::model2_3d_render_2;
+ m_renderfuncs[3] = &model2_renderer::model2_3d_render_3;
+ m_renderfuncs[4] = &model2_renderer::model2_3d_render_4;
+ m_renderfuncs[5] = &model2_renderer::model2_3d_render_5;
+ m_renderfuncs[6] = &model2_renderer::model2_3d_render_6;
+ m_renderfuncs[7] = &model2_renderer::model2_3d_render_7;
+ }
+
+ bitmap_rgb32& destmap() { return m_destmap; }
+
+ void model2_3d_render(triangle *tri, const rectangle &cliprect);
+
+ /* checker = 0, textured = 0, transparent = 0 */
+ #define MODEL2_FUNC 0
+ #define MODEL2_FUNC_NAME model2_3d_render_0
+ #include "video/model2rd.inc"
+ #undef MODEL2_FUNC
+ #undef MODEL2_FUNC_NAME
+
+ /* checker = 0, textured = 0, translucent = 1 */
+ #define MODEL2_FUNC 1
+ #define MODEL2_FUNC_NAME model2_3d_render_1
+ #include "video/model2rd.inc"
+ #undef MODEL2_FUNC
+ #undef MODEL2_FUNC_NAME
+
+ /* checker = 0, textured = 1, translucent = 0 */
+ #define MODEL2_FUNC 2
+ #define MODEL2_FUNC_NAME model2_3d_render_2
+ #include "video/model2rd.inc"
+ #undef MODEL2_FUNC
+ #undef MODEL2_FUNC_NAME
+
+ /* checker = 0, textured = 1, translucent = 1 */
+ #define MODEL2_FUNC 3
+ #define MODEL2_FUNC_NAME model2_3d_render_3
+ #include "video/model2rd.inc"
+ #undef MODEL2_FUNC
+ #undef MODEL2_FUNC_NAME
+
+ /* checker = 1, textured = 0, translucent = 0 */
+ #define MODEL2_FUNC 4
+ #define MODEL2_FUNC_NAME model2_3d_render_4
+ #include "video/model2rd.inc"
+ #undef MODEL2_FUNC
+ #undef MODEL2_FUNC_NAME
+
+ /* checker = 1, textured = 0, translucent = 1 */
+ #define MODEL2_FUNC 5
+ #define MODEL2_FUNC_NAME model2_3d_render_5
+ #include "video/model2rd.inc"
+ #undef MODEL2_FUNC
+ #undef MODEL2_FUNC_NAME
+
+ /* checker = 1, textured = 1, translucent = 0 */
+ #define MODEL2_FUNC 6
+ #define MODEL2_FUNC_NAME model2_3d_render_6
+ #include "video/model2rd.inc"
+ #undef MODEL2_FUNC
+ #undef MODEL2_FUNC_NAME
+
+ /* checker = 1, textured = 1, translucent = 1 */
+ #define MODEL2_FUNC 7
+ #define MODEL2_FUNC_NAME model2_3d_render_7
+ #include "video/model2rd.inc"
+ #undef MODEL2_FUNC
+ #undef MODEL2_FUNC_NAME
+
+ scanline_render_func m_renderfuncs[8];
+
+private:
+ model2_state& m_state;
+ bitmap_rgb32 m_destmap;
+};
+
+typedef model2_renderer::vertex_t poly_vertex;
+
+
+/*******************************************
+ *
+ * Basic Data Types
+ *
+ *******************************************/
+
+struct plane
+{
+ poly_vertex normal;
+ float distance;
+};
+
+struct texture_parameter
+{
+ float diffuse;
+ float ambient;
+ UINT32 specular_control;
+ float specular_scale;
+};
+
+struct triangle
+{
+ void * next;
+ poly_vertex v[3];
+ UINT16 z;
+ UINT16 texheader[4];
+ UINT8 luma;
+ INT16 viewport[4];
+ INT16 center[2];
+};
+
+struct quad_m2
+{
+ poly_vertex v[4];
+ UINT16 z;
+ UINT16 texheader[4];
+ UINT8 luma;
+};
+
+
+
/*----------- defined in video/model2.c -----------*/
void model2_3d_set_zclip( running_machine &machine, UINT8 clip );
diff --git a/src/mame/includes/model3.h b/src/mame/includes/model3.h
index f2b63678309..8279930e1c5 100644
--- a/src/mame/includes/model3.h
+++ b/src/mame/includes/model3.h
@@ -1,5 +1,5 @@
// license:BSD-3-Clause
-// copyright-holders:Andrew Gardner, R. Belmont, Ville Linde
+// copyright-holders:R. Belmont, Ville Linde
#include "video/poly.h"
#include "bus/scsi/scsi.h"
#include "machine/53c810.h"
@@ -34,17 +34,7 @@ struct m3_vertex
float nz;
};
-struct m3_clip_vertex
-{
- float x;
- float y;
- float z;
- float w;
- float u;
- float v;
- float i;
- float s;
-};
+typedef frustum_clip_vertex<float, 4> m3_clip_vertex;
struct m3_triangle
{
diff --git a/src/mame/includes/momoko.h b/src/mame/includes/momoko.h
index 93542aa3d7a..1278dcf07fa 100644
--- a/src/mame/includes/momoko.h
+++ b/src/mame/includes/momoko.h
@@ -24,7 +24,6 @@ public:
required_shared_ptr<UINT8> m_videoram;
required_shared_ptr<UINT8> m_bg_scrolly;
required_shared_ptr<UINT8> m_bg_scrollx;
-// UINT8 * paletteram; // currently this uses generic palette handling
/* video-related */
UINT8 m_fg_scrollx;
diff --git a/src/mame/includes/moo.h b/src/mame/includes/moo.h
index 0cf8b34c042..4ffd6548528 100644
--- a/src/mame/includes/moo.h
+++ b/src/mame/includes/moo.h
@@ -37,7 +37,6 @@ public:
/* memory pointers */
optional_shared_ptr<UINT16> m_workram;
required_shared_ptr<UINT16> m_spriteram;
-// UINT16 * m_paletteram; // currently this uses generic palette handling
/* video-related */
int m_sprite_colorbase;
diff --git a/src/mess/includes/mpf1.h b/src/mame/includes/mpf1.h
index e4d6a19b628..e4d6a19b628 100644
--- a/src/mess/includes/mpf1.h
+++ b/src/mame/includes/mpf1.h
diff --git a/src/mess/includes/mpz80.h b/src/mame/includes/mpz80.h
index 8802273b5a3..8802273b5a3 100644
--- a/src/mess/includes/mpz80.h
+++ b/src/mame/includes/mpz80.h
diff --git a/src/mame/includes/mrflea.h b/src/mame/includes/mrflea.h
index 527d52b01e1..5c8b7020b12 100644
--- a/src/mame/includes/mrflea.h
+++ b/src/mame/includes/mrflea.h
@@ -22,7 +22,6 @@ public:
/* memory pointers */
required_shared_ptr<UINT8> m_videoram;
required_shared_ptr<UINT8> m_spriteram;
-// UINT8 * paletteram; // currently this uses generic palette handling
/* video-related */
int m_gfx_bank;
diff --git a/src/mess/includes/msbc1.h b/src/mame/includes/msbc1.h
index 870e0d65167..870e0d65167 100644
--- a/src/mess/includes/msbc1.h
+++ b/src/mame/includes/msbc1.h
diff --git a/src/mess/includes/msx.h b/src/mame/includes/msx.h
index 0d7b3930508..d849693ec14 100644
--- a/src/mess/includes/msx.h
+++ b/src/mame/includes/msx.h
@@ -200,8 +200,6 @@ public:
DECLARE_WRITE8_MEMBER(msx_psg_port_a_w);
DECLARE_WRITE8_MEMBER(msx_psg_port_b_w);
INTERRUPT_GEN_MEMBER(msx_interrupt);
- TIMER_DEVICE_CALLBACK_MEMBER(msx2_interrupt);
- TIMER_DEVICE_CALLBACK_MEMBER(msx2p_interrupt);
DECLARE_WRITE8_MEMBER(msx_ay8910_w);
void msx_memory_init();
void post_load();
diff --git a/src/mess/includes/mtx.h b/src/mame/includes/mtx.h
index 5558e1fcd15..5558e1fcd15 100644
--- a/src/mess/includes/mtx.h
+++ b/src/mame/includes/mtx.h
diff --git a/src/mess/includes/mz700.h b/src/mame/includes/mz700.h
index 6558180dbbd..6558180dbbd 100644
--- a/src/mess/includes/mz700.h
+++ b/src/mame/includes/mz700.h
diff --git a/src/mess/includes/mz80.h b/src/mame/includes/mz80.h
index ac973027482..ac973027482 100644
--- a/src/mess/includes/mz80.h
+++ b/src/mame/includes/mz80.h
diff --git a/src/mame/includes/n64.h b/src/mame/includes/n64.h
index 4712299f75e..46f941beb3c 100644
--- a/src/mame/includes/n64.h
+++ b/src/mame/includes/n64.h
@@ -28,6 +28,7 @@ public:
void n64_machine_stop();
UINT32 screen_update_n64(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ void screen_eof_n64(screen_device &screen, bool state);
required_device<cpu_device> m_maincpu;
};
@@ -85,6 +86,7 @@ public:
TIMER_CALLBACK_MEMBER(vi_scanline_callback);
TIMER_CALLBACK_MEMBER(ai_timer_callback);
TIMER_CALLBACK_MEMBER(pi_dma_callback);
+ TIMER_CALLBACK_MEMBER(si_dma_callback);
DECLARE_READ32_MEMBER( dp_reg_r );
DECLARE_WRITE32_MEMBER( dp_reg_w );
DECLARE_READ32_MEMBER( sp_reg_r );
@@ -95,8 +97,10 @@ public:
void ai_timer_tick();
void pi_dma_tick();
+ void si_dma_tick();
void vi_scanline_tick();
void reset_tick();
+ void video_update(bitmap_rgb32 &bitmap);
// Video Interface (VI) registers
UINT32 vi_width;
@@ -113,6 +117,7 @@ public:
UINT32 vi_leap;
UINT32 vi_intr;
UINT32 vi_vburst;
+ UINT8 field;
/* nvram-specific for MESS */
device_t *m_nvram_image;
@@ -241,6 +246,7 @@ private:
UINT32 pi_dma_dir;
// Serial Interface (SI) registers and functions
+ emu_timer *si_dma_timer;
void pif_dma(int direction);
void handle_pif();
int pif_channel_handle_command(int channel, int slength, UINT8 *sdata, int rlength, UINT8 *rdata);
@@ -259,6 +265,14 @@ private:
// Video Interface (VI) functions
void vi_recalculate_resolution();
+ void video_update16(bitmap_rgb32 &bitmap);
+ void video_update32(bitmap_rgb32 &bitmap);
+ UINT8 random_seed; // %HACK%, adds 19 each time it's read and is more or less random
+ UINT8 get_random() { return random_seed += 0x13; }
+
+ INT32 m_gamma_table[256];
+ INT32 m_gamma_dither_table[0x4000];
+
};
// device type definition
@@ -298,6 +312,7 @@ extern const device_type N64PERIPH;
#define DP_STATUS_XBUS_DMA 0x01
#define DP_STATUS_FREEZE 0x02
#define DP_STATUS_FLUSH 0x04
+#define DP_STATUS_START_VALID 0x400
#define DD_ASIC_STATUS_DISK_CHANGE 0x00010000
#define DD_ASIC_STATUS_MECHA_ERR 0x00020000
diff --git a/src/mame/includes/namcona1.h b/src/mame/includes/namcona1.h
index 94d99cffefb..74b5fd888ee 100644
--- a/src/mame/includes/namcona1.h
+++ b/src/mame/includes/namcona1.h
@@ -85,7 +85,7 @@ public:
DECLARE_READ16_MEMBER(custom_key_r);
DECLARE_WRITE16_MEMBER(custom_key_w);
- DECLARE_WRITE16_MEMBER(namcona1_vreg_w);
+ DECLARE_WRITE16_MEMBER(vreg_w);
DECLARE_READ16_MEMBER(mcu_mailbox_r);
DECLARE_WRITE16_MEMBER(mcu_mailbox_w_68k);
DECLARE_WRITE16_MEMBER(mcu_mailbox_w_mcu);
@@ -105,18 +105,19 @@ public:
void simulate_mcu();
void write_version_info();
int transfer_dword(UINT32 dest, UINT32 source);
- void namcona1_blit();
+ void blit();
void UpdatePalette(int offset);
- DECLARE_WRITE16_MEMBER(namcona1_videoram_w);
- DECLARE_WRITE16_MEMBER(namcona1_paletteram_w);
- DECLARE_READ16_MEMBER(namcona1_gfxram_r);
- DECLARE_WRITE16_MEMBER(namcona1_gfxram_w);
+ DECLARE_WRITE16_MEMBER(videoram_w);
+ DECLARE_WRITE16_MEMBER(paletteram_w);
+ DECLARE_READ16_MEMBER(gfxram_r);
+ DECLARE_WRITE16_MEMBER(gfxram_w);
void pdraw_tile( screen_device &screen, bitmap_ind16 &dest_bmp, const rectangle &clip, UINT32 code, int color,
int sx, int sy, int flipx, int flipy, int priority, int bShadow, int bOpaque, int gfx_region );
void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void draw_background(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int which, int primask );
DECLARE_READ16_MEMBER(snd_r);
DECLARE_WRITE16_MEMBER(snd_w);
+
DECLARE_DRIVER_INIT(bkrtmaq);
DECLARE_DRIVER_INIT(quiztou);
DECLARE_DRIVER_INIT(emeralda);
@@ -129,16 +130,20 @@ public:
DECLARE_DRIVER_INIT(xday2);
DECLARE_DRIVER_INIT(exbania);
DECLARE_DRIVER_INIT(emeraldj);
+ virtual void machine_start();
+ virtual void machine_reset();
+ virtual void video_start();
+
TILE_GET_INFO_MEMBER(tilemap_get_info0);
TILE_GET_INFO_MEMBER(tilemap_get_info1);
TILE_GET_INFO_MEMBER(tilemap_get_info2);
TILE_GET_INFO_MEMBER(tilemap_get_info3);
TILE_GET_INFO_MEMBER(roz_get_info);
- virtual void machine_start();
- virtual void machine_reset();
- virtual void video_start();
- UINT32 screen_update_namcona1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- TIMER_DEVICE_CALLBACK_MEMBER(namcona1_interrupt);
+
+ UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+
+ TIMER_DEVICE_CALLBACK_MEMBER(interrupt);
+ void postload();
private:
void tilemap_get_info(tile_data &tileinfo, int tile_index, const UINT16 *tilemap_videoram, bool use_4bpp_gfx);
diff --git a/src/mame/includes/namcond1.h b/src/mame/includes/namcond1.h
index 3cc1d6c8288..d1681cbc7da 100644
--- a/src/mame/includes/namcond1.h
+++ b/src/mame/includes/namcond1.h
@@ -15,27 +15,28 @@ class namcond1_state : public driver_device
public:
namcond1_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
- m_shared_ram(*this, "shared_ram"),
m_maincpu(*this, "maincpu"),
m_mcu(*this, "mcu"),
- m_ygv608(*this, "ygv608") { }
+ m_ygv608(*this, "ygv608"),
+ m_shared_ram(*this, "shared_ram") { }
+
+ required_device<cpu_device> m_maincpu;
+ required_device<cpu_device> m_mcu;
+ required_device<ygv608_device> m_ygv608;
- UINT8 m_h8_irq5_enabled;
required_shared_ptr<UINT16> m_shared_ram;
+
+ UINT8 m_h8_irq5_enabled;
int m_p8;
- DECLARE_WRITE16_MEMBER(sharedram_sub_w);
- DECLARE_READ16_MEMBER(sharedram_sub_r);
+
DECLARE_READ16_MEMBER(mcu_p7_read);
DECLARE_READ16_MEMBER(mcu_pa_read);
DECLARE_WRITE16_MEMBER(mcu_pa_write);
- DECLARE_READ16_MEMBER(namcond1_shared_ram_r);
- DECLARE_READ16_MEMBER(namcond1_cuskey_r);
- DECLARE_WRITE16_MEMBER(namcond1_shared_ram_w);
- DECLARE_WRITE16_MEMBER(namcond1_cuskey_w);
+ DECLARE_READ16_MEMBER(cuskey_r);
+ DECLARE_WRITE16_MEMBER(cuskey_w);
+
virtual void machine_start();
virtual void machine_reset();
+
INTERRUPT_GEN_MEMBER(mcu_interrupt);
- required_device<cpu_device> m_maincpu;
- required_device<cpu_device> m_mcu;
- required_device<ygv608_device> m_ygv608;
};
diff --git a/src/mame/includes/namcos1.h b/src/mame/includes/namcos1.h
index 8a5296ca76f..049ef2ae85f 100644
--- a/src/mame/includes/namcos1.h
+++ b/src/mame/includes/namcos1.h
@@ -23,7 +23,10 @@ public:
m_spriteram(*this, "spriteram"),
m_playfield_control(*this, "pfcontrol"),
m_triram(*this, "triram"),
- m_rom(*this, "user1") { }
+ m_rom(*this, "user1"),
+ m_soundbank(*this, "soundbank"),
+ m_mcubank(*this, "mcubank"),
+ m_io_dipsw(*this, "DIPSW") { }
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_subcpu;
@@ -39,9 +42,13 @@ public:
required_shared_ptr<UINT8> m_spriteram;
required_shared_ptr<UINT8> m_playfield_control;
required_shared_ptr<UINT8> m_triram;
-
required_region_ptr<UINT8> m_rom;
+ required_memory_bank m_soundbank;
+ required_memory_bank m_mcubank;
+
+ required_ioport m_io_dipsw;
+
int m_dac0_value;
int m_dac1_value;
int m_dac0_gain;
diff --git a/src/mame/includes/nbmj9195.h b/src/mame/includes/nbmj9195.h
index 41be8fc1ad5..48ec4d00a53 100644
--- a/src/mame/includes/nbmj9195.h
+++ b/src/mame/includes/nbmj9195.h
@@ -38,7 +38,7 @@ public:
required_device<dac_device> m_dac2;
required_device<screen_device> m_screen;
required_device<palette_device> m_palette;
-
+
optional_shared_ptr<UINT8> m_palette_ptr; //shabdama doesn't use it at least for now
int m_inputport;
diff --git a/src/mess/includes/nc.h b/src/mame/includes/nc.h
index e640ee3927d..e640ee3927d 100644
--- a/src/mess/includes/nc.h
+++ b/src/mame/includes/nc.h
diff --git a/src/mess/includes/nes.h b/src/mame/includes/nes.h
index 49d8b51df12..49d8b51df12 100644
--- a/src/mess/includes/nes.h
+++ b/src/mame/includes/nes.h
diff --git a/src/mess/includes/newbrain.h b/src/mame/includes/newbrain.h
index 6819aef9729..6819aef9729 100644
--- a/src/mess/includes/newbrain.h
+++ b/src/mame/includes/newbrain.h
diff --git a/src/mame/includes/news.h b/src/mame/includes/news.h
index 455fd17bf70..e79b794a135 100644
--- a/src/mame/includes/news.h
+++ b/src/mame/includes/news.h
@@ -14,7 +14,6 @@ public:
/* memory pointers */
required_shared_ptr<UINT8> m_bgram;
required_shared_ptr<UINT8> m_fgram;
-// UINT8 * m_paletteram; // currently this uses generic palette handling
/* video-related */
tilemap_t *m_fg_tilemap;
diff --git a/src/mess/includes/next.h b/src/mame/includes/next.h
index 25bc09cdaa5..25bc09cdaa5 100644
--- a/src/mess/includes/next.h
+++ b/src/mame/includes/next.h
diff --git a/src/mame/includes/nova2001.h b/src/mame/includes/nova2001.h
index 7dcaa7817e1..497a337c4e5 100644
--- a/src/mame/includes/nova2001.h
+++ b/src/mame/includes/nova2001.h
@@ -42,6 +42,7 @@ public:
DECLARE_DRIVER_INIT(pkunwar);
DECLARE_VIDEO_START(nova2001);
DECLARE_PALETTE_INIT(nova2001);
+ DECLARE_PALETTE_DECODER(BBGGRRII);
DECLARE_MACHINE_START(ninjakun);
DECLARE_VIDEO_START(ninjakun);
DECLARE_VIDEO_START(pkunwar);
diff --git a/src/mess/includes/ob68k1a.h b/src/mame/includes/ob68k1a.h
index 4f0560273fd..4f0560273fd 100644
--- a/src/mess/includes/ob68k1a.h
+++ b/src/mame/includes/ob68k1a.h
diff --git a/src/mess/includes/ondra.h b/src/mame/includes/ondra.h
index f0bae4768fa..f0bae4768fa 100644
--- a/src/mess/includes/ondra.h
+++ b/src/mame/includes/ondra.h
diff --git a/src/mess/includes/orao.h b/src/mame/includes/orao.h
index 2ccdff38966..abd6a619529 100644
--- a/src/mess/includes/orao.h
+++ b/src/mame/includes/orao.h
@@ -8,7 +8,7 @@
#ifndef ORAO_H_
#define ORAO_H_
-#include "sound/dac.h"
+#include "sound/speaker.h"
#include "imagedev/cassette.h"
class orao_state : public driver_device
@@ -19,11 +19,12 @@ public:
m_memory(*this, "memory"),
m_video_ram(*this, "video_ram"),
m_maincpu(*this, "maincpu"),
- m_dac(*this, "dac"),
- m_cassette(*this, "cassette") { }
+ m_speaker(*this, "speaker"),
+ m_cassette(*this, "cassette"),
+ m_line(*this, "LINE"),
+ m_beep(0)
+ { }
- required_shared_ptr<UINT8> m_memory;
- required_shared_ptr<UINT8> m_video_ram;
DECLARE_READ8_MEMBER(orao_io_r);
DECLARE_WRITE8_MEMBER(orao_io_w);
DECLARE_DRIVER_INIT(orao);
@@ -31,9 +32,15 @@ public:
virtual void machine_reset();
virtual void video_start();
UINT32 screen_update_orao(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+
+private:
+ required_shared_ptr<UINT8> m_memory;
+ required_shared_ptr<UINT8> m_video_ram;
required_device<cpu_device> m_maincpu;
- required_device<dac_device> m_dac;
+ required_device<speaker_sound_device> m_speaker;
required_device<cassette_image_device> m_cassette;
+ required_ioport_array<20> m_line;
+ UINT8 m_beep;
};
#endif /* ORAO_H_ */
diff --git a/src/mess/includes/orion.h b/src/mame/includes/orion.h
index 5d6a57058be..5d6a57058be 100644
--- a/src/mess/includes/orion.h
+++ b/src/mame/includes/orion.h
diff --git a/src/mess/includes/osborne1.h b/src/mame/includes/osborne1.h
index 52d39a09461..52d39a09461 100644
--- a/src/mess/includes/osborne1.h
+++ b/src/mame/includes/osborne1.h
diff --git a/src/mess/includes/osi.h b/src/mame/includes/osi.h
index 735b511fc37..735b511fc37 100644
--- a/src/mess/includes/osi.h
+++ b/src/mame/includes/osi.h
diff --git a/src/mame/includes/overdriv.h b/src/mame/includes/overdriv.h
index 07274e54117..8296a6ec493 100644
--- a/src/mame/includes/overdriv.h
+++ b/src/mame/includes/overdriv.h
@@ -28,9 +28,6 @@ public:
m_screen(*this, "screen")
{ }
- /* memory pointers */
-// UINT16 * m_paletteram; // currently this uses generic palette handling
-
/* video-related */
int m_zoom_colorbase[2];
int m_road_colorbase[2];
diff --git a/src/mess/includes/p2000t.h b/src/mame/includes/p2000t.h
index 0548f661356..0548f661356 100644
--- a/src/mess/includes/p2000t.h
+++ b/src/mame/includes/p2000t.h
diff --git a/src/mess/includes/partner.h b/src/mame/includes/partner.h
index f5eba1168f8..f5eba1168f8 100644
--- a/src/mess/includes/partner.h
+++ b/src/mame/includes/partner.h
diff --git a/src/mess/includes/pasopia.h b/src/mame/includes/pasopia.h
index 80902e20682..80902e20682 100644
--- a/src/mess/includes/pasopia.h
+++ b/src/mame/includes/pasopia.h
diff --git a/src/mame/includes/pbaction.h b/src/mame/includes/pbaction.h
index 13fc38633c6..1e4537a74fd 100644
--- a/src/mame/includes/pbaction.h
+++ b/src/mame/includes/pbaction.h
@@ -30,7 +30,6 @@ public:
required_shared_ptr<UINT8> m_colorram2;
required_shared_ptr<UINT8> m_work_ram;
required_shared_ptr<UINT8> m_spriteram;
-// UINT8 * m_paletteram; // currently this uses generic palette handling
/* video-related */
tilemap_t *m_bg_tilemap;
diff --git a/src/mess/includes/pc1251.h b/src/mame/includes/pc1251.h
index d03a4524bf5..d03a4524bf5 100644
--- a/src/mess/includes/pc1251.h
+++ b/src/mame/includes/pc1251.h
diff --git a/src/mess/includes/pc1350.h b/src/mame/includes/pc1350.h
index b50758c5917..b50758c5917 100644
--- a/src/mess/includes/pc1350.h
+++ b/src/mame/includes/pc1350.h
diff --git a/src/mess/includes/pc1401.h b/src/mame/includes/pc1401.h
index 00797e2fe17..00797e2fe17 100644
--- a/src/mess/includes/pc1401.h
+++ b/src/mame/includes/pc1401.h
diff --git a/src/mess/includes/pc1403.h b/src/mame/includes/pc1403.h
index d40b2bb2bce..d40b2bb2bce 100644
--- a/src/mess/includes/pc1403.h
+++ b/src/mame/includes/pc1403.h
diff --git a/src/mess/includes/pc1512.h b/src/mame/includes/pc1512.h
index 218a3d5599e..218a3d5599e 100644
--- a/src/mess/includes/pc1512.h
+++ b/src/mame/includes/pc1512.h
diff --git a/src/mess/includes/pc4.h b/src/mame/includes/pc4.h
index 003669597b8..003669597b8 100644
--- a/src/mess/includes/pc4.h
+++ b/src/mame/includes/pc4.h
diff --git a/src/mess/includes/pc8001.h b/src/mame/includes/pc8001.h
index 524adfba29c..524adfba29c 100644
--- a/src/mess/includes/pc8001.h
+++ b/src/mame/includes/pc8001.h
diff --git a/src/mess/includes/pc8401a.h b/src/mame/includes/pc8401a.h
index 10e99652cd1..10e99652cd1 100644
--- a/src/mess/includes/pc8401a.h
+++ b/src/mame/includes/pc8401a.h
diff --git a/src/mess/includes/pce.h b/src/mame/includes/pce.h
index eccd9b4a123..9d9a7d34b56 100644
--- a/src/mess/includes/pce.h
+++ b/src/mame/includes/pce.h
@@ -40,7 +40,11 @@ public:
m_user_ram(*this, "user_ram"),
m_huc6260(*this, "huc6260"),
m_cartslot(*this, "cartslot"),
- m_cd(*this, "pce_cd")
+ m_cd(*this, "pce_cd"),
+ m_joy(*this, "JOY_P"),
+ m_joy6b(*this, "JOY6B_P"),
+ m_joy_type(*this, "JOY_TYPE"),
+ m_a_card(*this, "A_CARD")
{ }
required_device<h6280_device> m_maincpu;
@@ -49,6 +53,10 @@ public:
optional_device<huc6260_device> m_huc6260;
required_device<pce_cart_slot_device> m_cartslot;
optional_device<pce_cd_device> m_cd;
+ required_ioport_array<5> m_joy;
+ required_ioport_array<5> m_joy6b;
+ required_ioport m_joy_type;
+ required_ioport m_a_card;
UINT8 m_io_port_options;
UINT8 m_sys3_card;
diff --git a/src/mame/includes/pcktgal.h b/src/mame/includes/pcktgal.h
index b28c2bf4e81..b5abeba2e9d 100644
--- a/src/mame/includes/pcktgal.h
+++ b/src/mame/includes/pcktgal.h
@@ -34,7 +34,7 @@ public:
DECLARE_WRITE8_MEMBER(adpcm_data_w);
DECLARE_READ8_MEMBER(adpcm_reset_r);
DECLARE_WRITE_LINE_MEMBER(adpcm_int);
-
+
DECLARE_DRIVER_INIT(pcktgal);
DECLARE_PALETTE_INIT(pcktgal);
virtual void machine_start();
diff --git a/src/mess/includes/pcw.h b/src/mame/includes/pcw.h
index ef81c98bc82..ef81c98bc82 100644
--- a/src/mess/includes/pcw.h
+++ b/src/mame/includes/pcw.h
diff --git a/src/mess/includes/pcw16.h b/src/mame/includes/pcw16.h
index 2321267578c..2321267578c 100644
--- a/src/mess/includes/pcw16.h
+++ b/src/mame/includes/pcw16.h
diff --git a/src/mess/includes/pdp1.h b/src/mame/includes/pdp1.h
index ee2c5f7f703..074c907a489 100644
--- a/src/mess/includes/pdp1.h
+++ b/src/mame/includes/pdp1.h
@@ -239,9 +239,21 @@ public:
: driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_gfxdecode(*this, "gfxdecode"),
- m_palette(*this, "palette") { }
+ m_palette(*this, "palette"),
+ m_crt(*this, "crt"),
+ m_spacewar(*this, "SPACEWAR"),
+ m_csw(*this, "CSW"),
+ m_sense(*this, "SENSE"),
+ m_tstadd(*this, "TSTADD"),
+ m_twdmsb(*this, "TWDMSB"),
+ m_twdlsb(*this, "TWDLSB"),
+ m_twr(*this, "TWR"),
+ m_cfg(*this, "CFG"),
+ m_io_lightpen(*this, "LIGHTPEN"),
+ m_lightx(*this, "LIGHTX"),
+ m_lighty(*this, "LIGHTY")
+ { }
- pdp1_reset_param_t m_reset_param;
int m_io_status;
tape_reader_t m_tape_reader;
tape_puncher_t m_tape_puncher;
@@ -249,19 +261,8 @@ public:
emu_timer *m_dpy_timer;
lightpen_t m_lightpen;
parallel_drum_t m_parallel_drum;
- int m_old_typewriter_keys[4];
- int m_old_lightpen;
- int m_old_control_keys;
- int m_old_tw_keys;
- int m_old_ta_keys;
- int m_typewriter_color;
- bitmap_ind16 m_panel_bitmap;
- bitmap_ind16 m_typewriter_bitmap;
- lightpen_t m_lightpen_state;
- lightpen_t m_previous_lightpen_state;
- int m_pos;
- int m_case_shift;
- crt_device *m_crt;
+ required_device<pdp1_device> m_maincpu;
+
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
@@ -275,7 +276,6 @@ public:
TIMER_CALLBACK_MEMBER(dpy_callback);
TIMER_CALLBACK_MEMBER(il_timer_callback);
void pdp1_machine_stop();
- required_device<pdp1_device> m_maincpu;
inline void pdp1_plot_pixel(bitmap_ind16 &bitmap, int x, int y, UINT32 color);
void pdp1_plot(int x, int y);
void pdp1_draw_led(bitmap_ind16 &bitmap, int x, int y, int state);
@@ -302,7 +302,35 @@ public:
void drum_write(int field, int position, UINT32 data);
void pdp1_keyboard();
void pdp1_lightpen();
+ int read_spacewar() { return m_spacewar->read(); }
+
+private:
+ pdp1_reset_param_t m_reset_param;
+ int m_old_typewriter_keys[4];
+ int m_old_lightpen;
+ int m_old_control_keys;
+ int m_old_tw_keys;
+ int m_old_ta_keys;
+ int m_typewriter_color;
+ bitmap_ind16 m_panel_bitmap;
+ bitmap_ind16 m_typewriter_bitmap;
+ lightpen_t m_lightpen_state;
+ lightpen_t m_previous_lightpen_state;
+ int m_pos;
+ int m_case_shift;
required_device<gfxdecode_device> m_gfxdecode;
required_device<palette_device> m_palette;
+ required_device<crt_device> m_crt;
+ required_ioport m_spacewar;
+ required_ioport m_csw;
+ required_ioport m_sense;
+ required_ioport m_tstadd;
+ required_ioport m_twdmsb;
+ required_ioport m_twdlsb;
+ required_ioport_array<4> m_twr;
+ required_ioport m_cfg;
+ required_ioport m_io_lightpen;
+ required_ioport m_lightx;
+ required_ioport m_lighty;
};
#endif /* PDP1_H_ */
diff --git a/src/mess/includes/pecom.h b/src/mame/includes/pecom.h
index 0cbe6111337..0cbe6111337 100644
--- a/src/mess/includes/pecom.h
+++ b/src/mame/includes/pecom.h
diff --git a/src/mess/includes/pes.h b/src/mame/includes/pes.h
index 2130901cb3d..2130901cb3d 100644
--- a/src/mess/includes/pes.h
+++ b/src/mame/includes/pes.h
diff --git a/src/mess/includes/pet.h b/src/mame/includes/pet.h
index d4572a99c05..d4572a99c05 100644
--- a/src/mess/includes/pet.h
+++ b/src/mame/includes/pet.h
diff --git a/src/mame/includes/pgm.h b/src/mame/includes/pgm.h
index 920a9a8a194..f858005b86c 100644
--- a/src/mame/includes/pgm.h
+++ b/src/mame/includes/pgm.h
@@ -44,7 +44,6 @@ public:
UINT8 * m_sprite_a_region;
size_t m_sprite_a_region_size;
UINT16 * m_spritebufferram; // buffered spriteram
-// UINT16 * m_paletteram; // currently this uses generic palette handling
/* video-related */
tilemap_t *m_bg_tilemap;
@@ -475,7 +474,8 @@ ADDRESS_MAP_EXTERN( pgm_base_mem, 16 );
INPUT_PORTS_EXTERN( orlegend );
INPUT_PORTS_EXTERN( orlegendt );
-INPUT_PORTS_EXTERN( orld105k );
+INPUT_PORTS_EXTERN( orlegendk );
+
MACHINE_CONFIG_EXTERN( pgm_asic3 );
diff --git a/src/mess/includes/phc25.h b/src/mame/includes/phc25.h
index 482a543b83b..482a543b83b 100644
--- a/src/mess/includes/phc25.h
+++ b/src/mame/includes/phc25.h
diff --git a/src/mame/includes/phoenix.h b/src/mame/includes/phoenix.h
index 62483ff2f6c..815c2935a19 100644
--- a/src/mame/includes/phoenix.h
+++ b/src/mame/includes/phoenix.h
@@ -35,6 +35,7 @@ public:
DECLARE_CUSTOM_INPUT_MEMBER(player_input_r);
DECLARE_CUSTOM_INPUT_MEMBER(pleiads_protection_r);
DECLARE_DRIVER_INIT(condor);
+ DECLARE_DRIVER_INIT(vautourza);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
DECLARE_MACHINE_RESET(phoenix);
diff --git a/src/mess/includes/pk8020.h b/src/mame/includes/pk8020.h
index e73fa870187..e73fa870187 100644
--- a/src/mess/includes/pk8020.h
+++ b/src/mame/includes/pk8020.h
diff --git a/src/mame/includes/pktgaldx.h b/src/mame/includes/pktgaldx.h
index 02b1143ff21..bb9fe73ba68 100644
--- a/src/mame/includes/pktgaldx.h
+++ b/src/mame/includes/pktgaldx.h
@@ -37,8 +37,6 @@ public:
optional_shared_ptr<UINT16> m_pf1_rowscroll;
optional_shared_ptr<UINT16> m_pf2_rowscroll;
optional_shared_ptr<UINT16> m_spriteram;
-// UINT16 * paletteram; // currently this uses generic palette handling (in decocomn.c)
-
optional_shared_ptr<UINT16> m_pktgaldb_fgram;
optional_shared_ptr<UINT16> m_pktgaldb_sprites;
optional_device<decospr_device> m_sprgen;
diff --git a/src/mess/includes/plus4.h b/src/mame/includes/plus4.h
index adadf6e19ec..adadf6e19ec 100644
--- a/src/mess/includes/plus4.h
+++ b/src/mame/includes/plus4.h
diff --git a/src/mame/includes/plygonet.h b/src/mame/includes/plygonet.h
index 033cce2a1b3..f849a54556f 100644
--- a/src/mame/includes/plygonet.h
+++ b/src/mame/includes/plygonet.h
@@ -25,8 +25,7 @@ public:
m_dsp56k_p_mirror(*this, "dsp56k_p_mirror"),
m_dsp56k_p_8000(*this, "dsp56k_p_8000"),
m_gfxdecode(*this, "gfxdecode"),
- m_palette(*this, "palette"),
- m_generic_paletteram_32(*this, "paletteram")
+ m_palette(*this, "palette")
{ }
required_device<cpu_device> m_maincpu;
@@ -42,7 +41,6 @@ public:
required_shared_ptr<UINT16> m_dsp56k_p_8000;
required_device<gfxdecode_device> m_gfxdecode;
required_device<palette_device> m_palette;
- required_shared_ptr<UINT32> m_generic_paletteram_32;
ioport_port *m_inputs[4];
UINT8 m_sys0;
@@ -76,7 +74,6 @@ public:
DECLARE_WRITE32_MEMBER(dsp_w_lines);
DECLARE_WRITE32_MEMBER(dsp_host_interface_w);
DECLARE_READ32_MEMBER(network_r);
- DECLARE_WRITE32_MEMBER(plygonet_palette_w);
DECLARE_READ16_MEMBER(dsp56k_bootload_r);
DECLARE_READ16_MEMBER(dsp56k_ram_bank00_read);
DECLARE_WRITE16_MEMBER(dsp56k_ram_bank00_write);
diff --git a/src/mess/includes/pmd85.h b/src/mame/includes/pmd85.h
index 46ec61a52d9..07d9986994b 100644
--- a/src/mess/includes/pmd85.h
+++ b/src/mame/includes/pmd85.h
@@ -76,8 +76,6 @@ public:
DECLARE_DRIVER_INIT(alfa);
DECLARE_DRIVER_INIT(c2717);
virtual void machine_reset();
- virtual void video_start();
- DECLARE_PALETTE_INIT(pmd85);
UINT32 screen_update_pmd85(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TIMER_CALLBACK_MEMBER(pmd85_cassette_timer_callback);
DECLARE_WRITE_LINE_MEMBER(write_cas_tx);
@@ -148,15 +146,10 @@ protected:
void mato_update_memory();
void c2717_update_memory();
void pmd85_common_driver_init();
- void pmd85_draw_scanline(bitmap_ind16 &bitmap, int pmd85_scanline);
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
int m_cas_tx;
};
-/*----------- defined in video/pmd85.c -----------*/
-
-extern const unsigned char pmd85_palette[3*3];
-
#endif /* PMD85_H_ */
diff --git a/src/mess/includes/pocketc.h b/src/mame/includes/pocketc.h
index 5edc361dc70..5edc361dc70 100644
--- a/src/mess/includes/pocketc.h
+++ b/src/mame/includes/pocketc.h
diff --git a/src/mess/includes/poisk1.h b/src/mame/includes/poisk1.h
index 023b4d5afd9..023b4d5afd9 100644
--- a/src/mess/includes/poisk1.h
+++ b/src/mame/includes/poisk1.h
diff --git a/src/mess/includes/poly88.h b/src/mame/includes/poly88.h
index 1cdc53463b6..1cdc53463b6 100644
--- a/src/mess/includes/poly88.h
+++ b/src/mame/includes/poly88.h
diff --git a/src/mess/includes/poly880.h b/src/mame/includes/poly880.h
index b92ed0a92f4..b92ed0a92f4 100644
--- a/src/mess/includes/poly880.h
+++ b/src/mame/includes/poly880.h
diff --git a/src/mess/includes/portfoli.h b/src/mame/includes/portfoli.h
index e02a206f0e4..e02a206f0e4 100644
--- a/src/mess/includes/portfoli.h
+++ b/src/mame/includes/portfoli.h
diff --git a/src/mess/includes/pp01.h b/src/mame/includes/pp01.h
index d405563bcdc..d405563bcdc 100644
--- a/src/mess/includes/pp01.h
+++ b/src/mame/includes/pp01.h
diff --git a/src/mess/includes/primo.h b/src/mame/includes/primo.h
index ef58558bc7f..ef58558bc7f 100644
--- a/src/mess/includes/primo.h
+++ b/src/mame/includes/primo.h
diff --git a/src/mess/includes/prof180x.h b/src/mame/includes/prof180x.h
index 0c38e6d183f..0c38e6d183f 100644
--- a/src/mess/includes/prof180x.h
+++ b/src/mame/includes/prof180x.h
diff --git a/src/mess/includes/prof80.h b/src/mame/includes/prof80.h
index 5a48f376196..5a48f376196 100644
--- a/src/mess/includes/prof80.h
+++ b/src/mame/includes/prof80.h
diff --git a/src/mame/includes/psikyo.h b/src/mame/includes/psikyo.h
index 11b7d50507e..73c40d24440 100644
--- a/src/mame/includes/psikyo.h
+++ b/src/mame/includes/psikyo.h
@@ -32,7 +32,6 @@ public:
optional_shared_ptr<UINT32> m_bootleg_spritebuffer;
UINT32 * m_spritebuf1;
UINT32 * m_spritebuf2;
-// UINT32 * m_paletteram; // currently this uses generic palette handling
/* video-related */
tilemap_t *m_tilemap_0_size0;
diff --git a/src/mess/includes/psion.h b/src/mame/includes/psion.h
index 65d5648f601..65d5648f601 100644
--- a/src/mess/includes/psion.h
+++ b/src/mame/includes/psion.h
diff --git a/src/mess/includes/px8.h b/src/mame/includes/px8.h
index 22034809b86..22034809b86 100644
--- a/src/mess/includes/px8.h
+++ b/src/mame/includes/px8.h
diff --git a/src/mess/includes/ql.h b/src/mame/includes/ql.h
index ad2b14039ac..ad2b14039ac 100644
--- a/src/mess/includes/ql.h
+++ b/src/mame/includes/ql.h
diff --git a/src/mess/includes/radio86.h b/src/mame/includes/radio86.h
index 2dd9f3298e8..2dd9f3298e8 100644
--- a/src/mess/includes/radio86.h
+++ b/src/mame/includes/radio86.h
diff --git a/src/mame/includes/rastan.h b/src/mame/includes/rastan.h
index 09e2b4c4118..cf59b370e36 100644
--- a/src/mame/includes/rastan.h
+++ b/src/mame/includes/rastan.h
@@ -20,9 +20,6 @@ public:
m_pc080sn(*this, "pc080sn"),
m_pc090oj(*this, "pc090oj") { }
- /* memory pointers */
-// UINT16 * paletteram; // this currently uses generic palette handlers
-
/* video-related */
UINT16 m_sprite_ctrl;
UINT16 m_sprites_flipscreen;
diff --git a/src/mame/includes/rainbow.h b/src/mame/includes/rbisland.h
index ee221bdacd6..41794a7fdcc 100644
--- a/src/mame/includes/rainbow.h
+++ b/src/mame/includes/rbisland.h
@@ -24,7 +24,6 @@ public:
/* memory pointers */
optional_shared_ptr<UINT16> m_spriteram;
-// UINT16 * paletteram; // currently this uses generic palette handling
/* video-related */
UINT16 m_sprite_ctrl;
diff --git a/src/mess/includes/rm380z.h b/src/mame/includes/rm380z.h
index b3b47a23bfd..b3b47a23bfd 100644
--- a/src/mess/includes/rm380z.h
+++ b/src/mame/includes/rm380z.h
diff --git a/src/mess/includes/rmnimbus.h b/src/mame/includes/rmnimbus.h
index c857b808842..3d0cba8e05c 100644
--- a/src/mess/includes/rmnimbus.h
+++ b/src/mame/includes/rmnimbus.h
@@ -66,7 +66,12 @@ public:
m_scsi_ctrl_out(*this, "scsi_ctrl_out"),
m_fdc(*this, FDC_TAG),
m_z80sio(*this, Z80SIO_TAG),
- m_screen(*this, "screen")
+ m_screen(*this, "screen"),
+ m_io_config(*this, "config"),
+ m_io_joystick0(*this, JOYSTICK0_TAG),
+ m_io_mouse_button(*this, MOUSE_BUTTON_TAG),
+ m_io_mousex(*this, MOUSEX_TAG),
+ m_io_mousey(*this, MOUSEY_TAG)
{
}
@@ -84,6 +89,11 @@ public:
required_device<wd2793_t> m_fdc;
required_device<z80sio2_device> m_z80sio;
required_device<screen_device> m_screen;
+ required_ioport m_io_config;
+ required_ioport m_io_joystick0;
+ required_ioport m_io_mouse_button;
+ required_ioport m_io_mousex;
+ required_ioport m_io_mousey;
bitmap_ind16 m_video_mem;
diff --git a/src/mame/includes/rockrage.h b/src/mame/includes/rockrage.h
index 3d16d50d50d..c2ed6095460 100644
--- a/src/mame/includes/rockrage.h
+++ b/src/mame/includes/rockrage.h
@@ -37,7 +37,6 @@ public:
required_memory_bank m_rombank;
/* video-related */
- int m_layer_colorbase[2];
int m_vreg;
DECLARE_WRITE8_MEMBER(rockrage_bankswitch_w);
diff --git a/src/mame/includes/rocnrope.h b/src/mame/includes/rocnrope.h
index 9345b69eeef..44180479853 100644
--- a/src/mame/includes/rocnrope.h
+++ b/src/mame/includes/rocnrope.h
@@ -5,38 +5,40 @@ class rocnrope_state : public driver_device
public:
rocnrope_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
+ m_gfxdecode(*this, "gfxdecode"),
+ m_palette(*this, "palette"),
m_spriteram2(*this, "spriteram2"),
m_spriteram(*this, "spriteram"),
m_colorram(*this, "colorram"),
- m_videoram(*this, "videoram"),
- m_maincpu(*this, "maincpu"),
- m_gfxdecode(*this, "gfxdecode"),
- m_palette(*this, "palette") { }
+ m_videoram(*this, "videoram")
+ { }
+
+ // devices
+ required_device<cpu_device> m_maincpu;
+ required_device<gfxdecode_device> m_gfxdecode;
+ required_device<palette_device> m_palette;
- /* memory pointers */
+ // memory pointers
required_shared_ptr<UINT8> m_spriteram2;
required_shared_ptr<UINT8> m_spriteram;
required_shared_ptr<UINT8> m_colorram;
required_shared_ptr<UINT8> m_videoram;
- /* video-related */
- tilemap_t *m_bg_tilemap;
+ tilemap_t *m_bg_tilemap;
+ UINT8 m_irq_mask;
- UINT8 m_irq_mask;
DECLARE_WRITE8_MEMBER(rocnrope_interrupt_vector_w);
DECLARE_WRITE8_MEMBER(irq_mask_w);
DECLARE_WRITE8_MEMBER(rocnrope_videoram_w);
DECLARE_WRITE8_MEMBER(rocnrope_colorram_w);
DECLARE_WRITE8_MEMBER(rocnrope_flipscreen_w);
DECLARE_DRIVER_INIT(rocnrope);
- DECLARE_DRIVER_INIT(rocnropk);
+
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
DECLARE_PALETTE_INIT(rocnrope);
UINT32 screen_update_rocnrope(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(vblank_irq);
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect );
- required_device<cpu_device> m_maincpu;
- required_device<gfxdecode_device> m_gfxdecode;
- required_device<palette_device> m_palette;
};
diff --git a/src/mame/includes/rollerg.h b/src/mame/includes/rollerg.h
index eb982a3c5a5..88ddca6cc45 100644
--- a/src/mame/includes/rollerg.h
+++ b/src/mame/includes/rollerg.h
@@ -27,10 +27,6 @@ public:
m_k053252(*this, "k053252")
{ }
- /* video-related */
- int m_sprite_colorbase;
- int m_zoom_colorbase;
-
/* misc */
int m_readzoomroms;
@@ -48,7 +44,6 @@ public:
DECLARE_WRITE_LINE_MEMBER(rollerg_irq_ack_w);
virtual void machine_start();
virtual void machine_reset();
- virtual void video_start();
UINT32 screen_update_rollerg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
K05324X_CB_MEMBER(sprite_callback);
K051316_CB_MEMBER(zoom_callback);
diff --git a/src/mame/includes/route16.h b/src/mame/includes/route16.h
index 3651614638f..acc2c7ea9db 100644
--- a/src/mame/includes/route16.h
+++ b/src/mame/includes/route16.h
@@ -10,13 +10,15 @@ public:
m_sn(*this, "snsnd"),
m_sharedram(*this, "sharedram"),
m_videoram1(*this, "videoram1"),
- m_videoram2(*this, "videoram2"){ }
+ m_videoram2(*this, "videoram2"),
+ m_palette(*this, "palette") {}
optional_device<sn76477_device> m_sn;
required_shared_ptr<UINT8> m_sharedram;
required_shared_ptr<UINT8> m_videoram1;
required_shared_ptr<UINT8> m_videoram2;
+ required_device<palette_device> m_palette;
UINT8 m_ttmahjng_port_select;
int m_speakres_vrx;
@@ -36,14 +38,11 @@ public:
DECLARE_DRIVER_INIT(route16);
DECLARE_DRIVER_INIT(route16a);
+ DECLARE_DRIVER_INIT(route16c);
DECLARE_MACHINE_START(speakres);
DECLARE_MACHINE_START(ttmahjng);
virtual void video_start();
UINT32 screen_update_route16(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
- UINT32 screen_update_stratvox(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
UINT32 screen_update_ttmahjng(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
- pen_t route16_make_pen(UINT8 color);
- pen_t ttmajng_make_pen(UINT8 color);
- int video_update_stratvox_ttmahjng(bitmap_rgb32 &bitmap,const rectangle &cliprect,pen_t (route16_state::*make_pen)(UINT8));
};
diff --git a/src/mess/includes/sage2.h b/src/mame/includes/sage2.h
index a8138e3c716..a8138e3c716 100644
--- a/src/mess/includes/sage2.h
+++ b/src/mame/includes/sage2.h
diff --git a/src/mess/includes/samcoupe.h b/src/mame/includes/samcoupe.h
index 26519391978..e576e32f782 100644
--- a/src/mess/includes/samcoupe.h
+++ b/src/mame/includes/samcoupe.h
@@ -18,6 +18,7 @@
#include "imagedev/cassette.h"
#include "bus/centronics/ctronics.h"
#include "machine/ram.h"
+#include "machine/msm6242.h"
/* screen dimensions */
#define SAM_BLOCK 8
@@ -56,16 +57,35 @@ public:
m_cassette(*this, "cassette"),
m_lpt1(*this, "lpt1"),
m_lpt2(*this, "lpt2"),
- m_ram(*this, RAM_TAG) {
- sam_bank_read_ptr[0] = NULL;
- sam_bank_write_ptr[0] = NULL;
- sam_bank_read_ptr[1] = NULL;
- sam_bank_write_ptr[1] = NULL;
- sam_bank_read_ptr[2] = NULL;
- sam_bank_write_ptr[2] = NULL;
- sam_bank_read_ptr[3] = NULL;
- sam_bank_write_ptr[3] = NULL;
- }
+ m_ram(*this, RAM_TAG),
+ m_rtc(*this, "sambus_clock"),
+ m_fdc(*this, "wd1772"),
+ m_wd1772_0(*this, "wd1772:0"),
+ m_wd1772_1(*this, "wd1772:1"),
+ m_region_maincpu(*this, "maincpu"),
+ m_keyboard_row_fe(*this, "keyboard_row_fe"),
+ m_keyboard_row_fd(*this, "keyboard_row_fd"),
+ m_keyboard_row_fb(*this, "keyboard_row_fb"),
+ m_keyboard_row_f7(*this, "keyboard_row_f7"),
+ m_keyboard_row_ef(*this, "keyboard_row_ef"),
+ m_keyboard_row_df(*this, "keyboard_row_df"),
+ m_keyboard_row_bf(*this, "keyboard_row_bf"),
+ m_keyboard_row_7f(*this, "keyboard_row_7f"),
+ m_keyboard_row_ff(*this, "keyboard_row_ff"),
+ m_mouse_buttons(*this, "mouse_buttons"),
+ m_io_mouse_x(*this, "mouse_x"),
+ m_io_mouse_y(*this, "mouse_y"),
+ m_config(*this, "config")
+ {
+ sam_bank_read_ptr[0] = NULL;
+ sam_bank_write_ptr[0] = NULL;
+ sam_bank_read_ptr[1] = NULL;
+ sam_bank_write_ptr[1] = NULL;
+ sam_bank_read_ptr[2] = NULL;
+ sam_bank_write_ptr[2] = NULL;
+ sam_bank_read_ptr[3] = NULL;
+ sam_bank_write_ptr[3] = NULL;
+ }
virtual void video_start();
@@ -141,6 +161,25 @@ public:
required_device<centronics_device> m_lpt1;
required_device<centronics_device> m_lpt2;
required_device<ram_device> m_ram;
+ required_device<msm6242_device> m_rtc;
+ required_device<wd1772_t> m_fdc;
+ required_device<floppy_connector> m_wd1772_0;
+ required_device<floppy_connector> m_wd1772_1;
+ required_memory_region m_region_maincpu;
+ required_ioport m_keyboard_row_fe;
+ required_ioport m_keyboard_row_fd;
+ required_ioport m_keyboard_row_fb;
+ required_ioport m_keyboard_row_f7;
+ required_ioport m_keyboard_row_ef;
+ required_ioport m_keyboard_row_df;
+ required_ioport m_keyboard_row_bf;
+ required_ioport m_keyboard_row_7f;
+ required_ioport m_keyboard_row_ff;
+ required_ioport m_mouse_buttons;
+ required_ioport m_io_mouse_x;
+ required_ioport m_io_mouse_y;
+ required_ioport m_config;
+
void draw_mode4_line(int y, int hpos);
void draw_mode3_line(int y, int hpos);
void draw_mode12_block(bitmap_ind16 &bitmap, int vpos, int hpos, UINT8 mask);
diff --git a/src/mame/includes/scramble.h b/src/mame/includes/scramble.h
index 83ee95d4b87..b5d65e4b258 100644
--- a/src/mame/includes/scramble.h
+++ b/src/mame/includes/scramble.h
@@ -3,6 +3,7 @@
#include "machine/i8255.h"
#include "includes/galaxold.h"
#include "sound/tms5110.h"
+#include "sound/digitalk.h"
class scramble_state : public galaxold_state
{
@@ -13,7 +14,8 @@ public:
m_ppi8255_0(*this, "ppi8255_0"),
m_ppi8255_1(*this, "ppi8255_1"),
m_tmsprom(*this, "tmsprom"),
- m_soundram(*this, "soundram")
+ m_soundram(*this, "soundram"),
+ m_digitalker(*this, "digitalker")
{
}
@@ -22,6 +24,7 @@ public:
optional_device<i8255_device> m_ppi8255_1;
optional_device<tmsprom_device> m_tmsprom;
optional_shared_ptr<UINT8> m_soundram;
+ optional_device<digitalker_device> m_digitalker;
UINT8 m_cavelon_bank;
@@ -50,12 +53,12 @@ public:
DECLARE_WRITE8_MEMBER(mars_ppi8255_1_w);
DECLARE_WRITE8_MEMBER(ad2083_tms5110_ctrl_w);
- DECLARE_WRITE8_MEMBER(harem_portA_w);
- DECLARE_WRITE8_MEMBER(harem_portB_w);
-
+ // harem
DECLARE_WRITE8_MEMBER(harem_decrypt_bit_w);
DECLARE_WRITE8_MEMBER(harem_decrypt_clk_w);
DECLARE_WRITE8_MEMBER(harem_decrypt_rst_w);
+ DECLARE_READ8_MEMBER(harem_digitalker_intr_r);
+ DECLARE_WRITE8_MEMBER(harem_digitalker_control_w);
DECLARE_DRIVER_INIT(cavelon);
DECLARE_DRIVER_INIT(mariner);
@@ -69,6 +72,7 @@ public:
DECLARE_DRIVER_INIT(devilfsh);
DECLARE_DRIVER_INIT(mrkougar);
DECLARE_DRIVER_INIT(harem);
+ DECLARE_DRIVER_INIT(newsin7a);
DECLARE_DRIVER_INIT(scobra);
DECLARE_DRIVER_INIT(stratgyx);
diff --git a/src/mame/includes/segas16b.h b/src/mame/includes/segas16b.h
index 33c74ae4f99..c0b241368df 100644
--- a/src/mame/includes/segas16b.h
+++ b/src/mame/includes/segas16b.h
@@ -50,7 +50,8 @@ public:
m_mj_input_num(0),
m_mj_last_val(0),
m_gfxdecode(*this, "gfxdecode"),
- m_sound_decrypted_opcodes(*this, "sound_decrypted_opcodes")
+ m_sound_decrypted_opcodes(*this, "sound_decrypted_opcodes"),
+ m_decrypted_opcodes(*this, "decrypted_opcodes")
{ }
// memory mapping
@@ -68,9 +69,13 @@ public:
DECLARE_WRITE16_MEMBER( standard_io_w );
DECLARE_WRITE16_MEMBER( atomicp_sound_w );
+ DECLARE_READ16_MEMBER( bootleg_custom_io_r );
+ DECLARE_WRITE16_MEMBER( bootleg_custom_io_w );
+
// sound CPU read/write handlers
DECLARE_WRITE8_MEMBER( upd7759_control_w );
DECLARE_READ8_MEMBER( upd7759_status_r );
+ DECLARE_WRITE16_MEMBER( sound_w16 );
// other callbacks
DECLARE_WRITE_LINE_MEMBER(upd7759_generate_nmi);
@@ -169,6 +174,7 @@ protected:
DECLARE_READ16_MEMBER( sjryuko_custom_io_r );
DECLARE_WRITE16_MEMBER( sjryuko_custom_io_w );
+ protected:
// devices
optional_device<sega_315_5195_mapper_device> m_mapper;
required_device<m68000_device> m_maincpu;
@@ -205,6 +211,7 @@ protected:
required_device<gfxdecode_device> m_gfxdecode;
optional_shared_ptr<UINT8> m_sound_decrypted_opcodes;
+ optional_shared_ptr<UINT16> m_decrypted_opcodes;
};
@@ -237,7 +244,6 @@ public:
void init_tetrbx();
// read/write handlers
- DECLARE_WRITE16_MEMBER( sound_w16 );
DECLARE_WRITE16_MEMBER( cart_addr_high_w );
DECLARE_WRITE16_MEMBER( cart_addr_low_w );
DECLARE_READ16_MEMBER( cart_data_r );
diff --git a/src/mame/includes/segaxbd.h b/src/mame/includes/segaxbd.h
index 5dbf1da44f8..ee80f71c3db 100644
--- a/src/mame/includes/segaxbd.h
+++ b/src/mame/includes/segaxbd.h
@@ -13,36 +13,16 @@
#include "video/segaic16.h"
#include "video/segaic16_road.h"
#include "video/sega16sp.h"
-
+#include "video/resnet.h"
// ======================> segaxbd_state
-class segaxbd_state : public sega_16bit_common_base
+
+class segaxbd_state : public device_t
{
public:
// construction/destruction
- segaxbd_state(const machine_config &mconfig, device_type type, const char *tag)
- : sega_16bit_common_base(mconfig, type, tag),
- m_maincpu(*this, "maincpu"),
- m_subcpu(*this, "subcpu"),
- m_soundcpu(*this, "soundcpu"),
- m_soundcpu2(*this, "soundcpu2"),
- m_mcu(*this, "mcu"),
- m_cmptimer_1(*this, "cmptimer_main"),
- m_sprites(*this, "sprites"),
- m_segaic16vid(*this, "segaic16vid"),
- m_segaic16road(*this, "segaic16road"),
- m_gprider_hack(false),
- m_road_priority(1),
- m_scanline_timer(NULL),
- m_timer_irq_state(0),
- m_vblank_irq_state(0),
- m_loffire_sync(NULL),
- m_lastsurv_mux(0)
- {
- memset(m_adc_reverse, 0, sizeof(m_adc_reverse));
- memset(m_iochip_regs, 0, sizeof(m_iochip_regs));
- }
+ segaxbd_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
// compare/timer chip callbacks
void timer_ack_callback();
@@ -71,18 +51,19 @@ public:
// sound Z80 CPU read/write handlers
DECLARE_READ8_MEMBER( sound_data_r );
- // game-specific driver init
- DECLARE_DRIVER_INIT(generic);
- DECLARE_DRIVER_INIT(aburner2);
- DECLARE_DRIVER_INIT(lastsurv);
- DECLARE_DRIVER_INIT(loffire);
- DECLARE_DRIVER_INIT(smgp);
- DECLARE_DRIVER_INIT(rascot);
- DECLARE_DRIVER_INIT(gprider);
// video updates
UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ // palette helpers
+ DECLARE_WRITE16_MEMBER( paletteram_w );
+
+ void install_aburner2(void);
+ void install_lastsurv(void);
+ void install_loffire(void);
+ void install_smgp(void);
+ void install_gprider(void);
+
protected:
// internal types
typedef delegate<UINT8 (UINT8)> ioread_delegate;
@@ -97,7 +78,7 @@ protected:
};
// device overrides
- virtual void machine_reset();
+// virtual void machine_reset();
virtual void video_start();
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
@@ -115,7 +96,9 @@ protected:
void lastsurv_iochip0_muxer_w(UINT8 data);
// devices
+public:
required_device<m68000_device> m_maincpu;
+protected:
required_device<m68000_device> m_subcpu;
required_device<z80_device> m_soundcpu;
optional_device<z80_device> m_soundcpu2;
@@ -126,7 +109,6 @@ protected:
required_device<segaic16_road_device> m_segaic16road;
// configuration
- bool m_gprider_hack;
bool m_adc_reverse[8];
ioread_delegate m_iochip_custom_io_r[2][8];
iowrite_delegate m_iochip_custom_io_w[2][8];
@@ -141,4 +123,119 @@ protected:
// game-specific state
UINT16 * m_loffire_sync;
UINT8 m_lastsurv_mux;
+public: // -- stupid system16.c
+ // memory pointers
+ required_shared_ptr<UINT16> m_paletteram;
+ bool m_gprider_hack;
+
+protected:
+ void palette_init();
+ UINT32 m_palette_entries; // number of palette entries
+ UINT8 m_palette_normal[32]; // RGB translations for normal pixels
+ UINT8 m_palette_shadow[32]; // RGB translations for shadowed pixels
+ UINT8 m_palette_hilight[32]; // RGB translations for hilighted pixels
+ required_device<screen_device> m_screen;
+ required_device<palette_device> m_palette;
+
+ UINT16 m_latched_value[4];
+ UINT8 m_latch_read[4];
+
+ UINT32 soundlatch_read(UINT8 index = 0) { m_latch_read[index] = 1; return m_latched_value[index]; };
+ void soundlatch_write(UINT8 index, UINT32 data) { machine().scheduler().synchronize(timer_expired_delegate(FUNC(segaxbd_state::soundlatch_sync_callback), this), index | (data << 8)); };
+ void soundlatch_write(UINT32 data) { soundlatch_write(0, data); }
+
+ void soundlatch_sync_callback(void *ptr, INT32 param)
+ {
+ UINT16 value = param >> 8;
+ int which = param & 0xff;
+ m_latched_value[which] = value;
+ m_latch_read[which] = 0;
+ };
+
+protected:
+ virtual void device_start();
+ virtual void device_reset();
+};
+
+
+class segaxbd_regular_state : public segaxbd_state
+{
+public:
+ segaxbd_regular_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+protected:
+ virtual machine_config_constructor device_mconfig_additions() const;
+// virtual void device_start();
+// virtual void device_reset();
+};
+
+
+
+class segaxbd_fd1094_state : public segaxbd_state
+{
+public:
+ segaxbd_fd1094_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+protected:
+ virtual machine_config_constructor device_mconfig_additions() const;
+// virtual void device_start();
+// virtual void device_reset();
+};
+
+class segaxbd_lastsurv_fd1094_state : public segaxbd_state
+{
+public:
+ segaxbd_lastsurv_fd1094_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+protected:
+ virtual machine_config_constructor device_mconfig_additions() const;
+// virtual void device_start();
+// virtual void device_reset();
+};
+
+class segaxbd_lastsurv_state : public segaxbd_state
+{
+public:
+ segaxbd_lastsurv_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+protected:
+ virtual machine_config_constructor device_mconfig_additions() const;
+// virtual void device_start();
+// virtual void device_reset();
+};
+
+
+class segaxbd_smgp_fd1094_state : public segaxbd_state
+{
+public:
+ segaxbd_smgp_fd1094_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+protected:
+ virtual machine_config_constructor device_mconfig_additions() const;
+// virtual void device_start();
+// virtual void device_reset();
+};
+
+
+class segaxbd_smgp_state : public segaxbd_state
+{
+public:
+ segaxbd_smgp_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+protected:
+ virtual machine_config_constructor device_mconfig_additions() const;
+// virtual void device_start();
+// virtual void device_reset();
+};
+
+
+class segaxbd_rascot_state : public segaxbd_state
+{
+public:
+ segaxbd_rascot_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+protected:
+ virtual machine_config_constructor device_mconfig_additions() const;
+// virtual void device_start();
+// virtual void device_reset();
};
diff --git a/src/mame/includes/senjyo.h b/src/mame/includes/senjyo.h
index 7ed3af920b9..36c6bbebdb1 100644
--- a/src/mame/includes/senjyo.h
+++ b/src/mame/includes/senjyo.h
@@ -15,6 +15,7 @@ public:
m_dac(*this, "dac"),
m_gfxdecode(*this, "gfxdecode"),
m_palette(*this, "palette"),
+ m_radar_palette(*this, "radar_palette"),
m_spriteram(*this, "spriteram"),
m_fgscroll(*this, "fgscroll"),
m_scrollx1(*this, "scrollx1"),
@@ -30,7 +31,6 @@ public:
m_bg3videoram(*this, "bg3videoram"),
m_radarram(*this, "radarram"),
m_bgstripesram(*this, "bgstripesram"),
- m_generic_paletteram_8(*this, "paletteram"),
m_decrypted_opcodes(*this, "decrypted_opcodes") { }
/* devices */
@@ -39,6 +39,7 @@ public:
required_device<dac_device> m_dac;
required_device<gfxdecode_device> m_gfxdecode;
required_device<palette_device> m_palette;
+ required_device<palette_device> m_radar_palette;
/* memory pointers */
required_shared_ptr<UINT8> m_spriteram;
@@ -56,7 +57,6 @@ public:
required_shared_ptr<UINT8> m_bg3videoram;
required_shared_ptr<UINT8> m_radarram;
required_shared_ptr<UINT8> m_bgstripesram;
- required_shared_ptr<UINT8> m_generic_paletteram_8;
optional_shared_ptr<UINT8> m_decrypted_opcodes;
// game specific initialization
@@ -73,7 +73,6 @@ public:
tilemap_t *m_bg3_tilemap;
DECLARE_WRITE8_MEMBER(flip_screen_w);
- DECLARE_WRITE8_MEMBER(paletteram_w);
DECLARE_WRITE8_MEMBER(starforb_scrolly2);
DECLARE_WRITE8_MEMBER(starforb_scrollx2);
DECLARE_WRITE8_MEMBER(fgvideoram_w);
@@ -87,6 +86,9 @@ public:
DECLARE_WRITE8_MEMBER(irq_ctrl_w);
DECLARE_READ8_MEMBER(pio_pa_r);
+ DECLARE_PALETTE_DECODER(IIBBGGRR);
+ DECLARE_PALETTE_INIT(radar);
+
DECLARE_DRIVER_INIT(starfora);
DECLARE_DRIVER_INIT(senjyo);
DECLARE_DRIVER_INIT(starfore);
@@ -101,10 +103,10 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
- UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- void draw_bgbitmap(bitmap_ind16 &bitmap,const rectangle &cliprect);
- void draw_radar(bitmap_ind16 &bitmap,const rectangle &cliprect);
- void draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect,int priority);
+ UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ void draw_bgbitmap(bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ void draw_radar(bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ void draw_sprites(bitmap_rgb32 &bitmap, const rectangle &cliprect,int priority);
};
/*----------- defined in audio/senjyo.c -----------*/
diff --git a/src/mame/includes/seta.h b/src/mame/includes/seta.h
index 68b45917831..1f1c5d0a920 100644
--- a/src/mame/includes/seta.h
+++ b/src/mame/includes/seta.h
@@ -193,6 +193,7 @@ public:
TILE_GET_INFO_MEMBER(get_tile_info_2);
TILE_GET_INFO_MEMBER(get_tile_info_3);
DECLARE_VIDEO_START(seta_no_layers);
+ DECLARE_VIDEO_START(kyustrkr_no_layers);
DECLARE_VIDEO_START(twineagl_1_layer);
DECLARE_VIDEO_START(setaroul_1_layer);
DECLARE_VIDEO_START(seta_1_layer);
diff --git a/src/mess/includes/sg1000.h b/src/mame/includes/sg1000.h
index 47d9497f7db..47d9497f7db 100644
--- a/src/mess/includes/sg1000.h
+++ b/src/mame/includes/sg1000.h
diff --git a/src/mame/includes/shadfrce.h b/src/mame/includes/shadfrce.h
index effaca560dd..652979dd13d 100644
--- a/src/mame/includes/shadfrce.h
+++ b/src/mame/includes/shadfrce.h
@@ -13,6 +13,14 @@ public:
m_gfxdecode(*this, "gfxdecode"),
m_screen(*this, "screen"),
m_palette(*this, "palette"),
+ m_io_p1(*this, "P1"),
+ m_io_p2(*this, "P2"),
+ m_io_dsw1(*this, "DSW1"),
+ m_io_dsw2(*this, "DSW2"),
+ m_io_other(*this, "OTHER"),
+ m_io_extra(*this, "EXTRA"),
+ m_io_misc(*this, "MISC"),
+ m_io_system(*this, "SYSTEM"),
m_fgvideoram(*this, "fgvideoram"),
m_bg0videoram(*this, "bg0videoram"),
m_bg1videoram(*this, "bg1videoram"),
@@ -25,6 +33,15 @@ public:
required_device<screen_device> m_screen;
required_device<palette_device> m_palette;
+ required_ioport m_io_p1;
+ required_ioport m_io_p2;
+ required_ioport m_io_dsw1;
+ required_ioport m_io_dsw2;
+ required_ioport m_io_other;
+ required_ioport m_io_extra;
+ required_ioport m_io_misc;
+ required_ioport m_io_system;
+
required_shared_ptr<UINT16> m_fgvideoram;
required_shared_ptr<UINT16> m_bg0videoram;
required_shared_ptr<UINT16> m_bg1videoram;
@@ -66,5 +83,5 @@ public:
UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void screen_eof(screen_device &screen, bool state);
- void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect );
+ void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int y_offset );
};
diff --git a/src/mess/includes/sms.h b/src/mame/includes/sms.h
index 4f2efcdbbd3..4f2efcdbbd3 100644
--- a/src/mess/includes/sms.h
+++ b/src/mame/includes/sms.h
diff --git a/src/mess/includes/softbox.h b/src/mame/includes/softbox.h
index 2ad510fa682..2ad510fa682 100644
--- a/src/mess/includes/softbox.h
+++ b/src/mame/includes/softbox.h
diff --git a/src/mess/includes/sorcerer.h b/src/mame/includes/sorcerer.h
index 1a66cdd2afb..3cff01cdc38 100644
--- a/src/mess/includes/sorcerer.h
+++ b/src/mame/includes/sorcerer.h
@@ -64,6 +64,7 @@ public:
, m_ram(*this, RAM_TAG)
, m_iop_config(*this, "CONFIG")
, m_iop_vs(*this, "VS")
+ , m_iop_x(*this, "X")
{ }
DECLARE_READ8_MEMBER(sorcerer_fc_r);
@@ -103,6 +104,7 @@ private:
required_device<ram_device> m_ram;
required_ioport m_iop_config;
required_ioport m_iop_vs;
+ required_ioport_array<16> m_iop_x;
};
#endif /* SORCERER_H_ */
diff --git a/src/mess/includes/special.h b/src/mame/includes/special.h
index 56350a8bbc7..56350a8bbc7 100644
--- a/src/mess/includes/special.h
+++ b/src/mame/includes/special.h
diff --git a/src/mess/includes/spectrum.h b/src/mame/includes/spectrum.h
index 5795c1e3cc0..2706e8223c7 100644
--- a/src/mess/includes/spectrum.h
+++ b/src/mame/includes/spectrum.h
@@ -203,9 +203,9 @@ public:
DECLARE_SNAPSHOT_LOAD_MEMBER( spectrum );
DECLARE_QUICKLOAD_LOAD_MEMBER( spectrum );
+ required_device<cpu_device> m_maincpu;
protected:
- required_device<cpu_device> m_maincpu;
required_device<cassette_image_device> m_cassette;
required_device<ram_device> m_ram;
required_device<speaker_sound_device> m_speaker;
diff --git a/src/mame/includes/spiders.h b/src/mame/includes/spiders.h
index bbac41c4d5a..72e1b26fd09 100644
--- a/src/mame/includes/spiders.h
+++ b/src/mame/includes/spiders.h
@@ -8,8 +8,6 @@
#include "sound/discrete.h"
#include "video/mc6845.h"
-#define NUM_PENS (8)
-
class spiders_state : public driver_device
{
public:
@@ -18,6 +16,7 @@ public:
m_ram(*this, "ram"),
m_discrete(*this, "discrete"),
m_maincpu(*this, "maincpu"),
+ m_palette(*this, "palette"),
m_audiocpu(*this, "audiocpu") { }
required_shared_ptr<UINT8> m_ram;
@@ -27,7 +26,7 @@ public:
UINT8 m_gfx_rom_ctrl_mode;
UINT8 m_gfx_rom_ctrl_latch;
UINT8 m_gfx_rom_ctrl_data;
- pen_t m_pens[NUM_PENS];
+
DECLARE_WRITE_LINE_MEMBER(main_cpu_irq);
DECLARE_WRITE_LINE_MEMBER(main_cpu_firq);
DECLARE_WRITE_LINE_MEMBER(audio_cpu_irq);
@@ -42,9 +41,11 @@ public:
DECLARE_WRITE8_MEMBER(spiders_audio_a_w);
DECLARE_WRITE8_MEMBER(spiders_audio_b_w);
DECLARE_WRITE8_MEMBER(spiders_audio_ctrl_w);
- MC6845_BEGIN_UPDATE(crtc_begin_update);
+
MC6845_UPDATE_ROW(crtc_update_row);
+
required_device<cpu_device> m_maincpu;
+ required_device<palette_device> m_palette;
required_device<cpu_device> m_audiocpu;
};
diff --git a/src/mame/includes/spy.h b/src/mame/includes/spy.h
index 71ad18d5ad5..1bdcf2aaf1c 100644
--- a/src/mame/includes/spy.h
+++ b/src/mame/includes/spy.h
@@ -29,10 +29,6 @@ public:
UINT8 m_pmcram[0x800];
std::vector<UINT8> m_paletteram;
- /* video-related */
- int m_layer_colorbase[3];
- int m_sprite_colorbase;
-
/* misc */
int m_rambank;
int m_pmcbank;
@@ -57,7 +53,6 @@ public:
DECLARE_WRITE8_MEMBER(k052109_051960_w);
virtual void machine_start();
virtual void machine_reset();
- virtual void video_start();
UINT32 screen_update_spy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(spy_interrupt);
void spy_collision( );
diff --git a/src/mess/includes/ssystem3.h b/src/mame/includes/ssystem3.h
index 64ed29b7427..0367a8acb67 100644
--- a/src/mess/includes/ssystem3.h
+++ b/src/mame/includes/ssystem3.h
@@ -9,6 +9,8 @@
#ifndef SSYSTEM3_H_
#define SSYSTEM3_H_
+#include "machine/6522via.h"
+
struct playfield_t
{
@@ -40,14 +42,14 @@ class ssystem3_state : public driver_device
{
public:
ssystem3_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_maincpu(*this, "maincpu"),
- m_palette(*this, "palette") { }
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ , m_palette(*this, "palette")
+ , m_via6522_0(*this, "via6522_0")
+ , m_configuration(*this, "Configuration")
+ , m_matrix(*this, "matrix")
+ { }
- UINT8 m_porta;
- UINT8 *m_videoram;
- playfield_t m_playfield;
- lcd_t m_lcd;
DECLARE_DRIVER_INIT(ssystem3);
virtual void video_start();
DECLARE_PALETTE_INIT(ssystem3);
@@ -56,8 +58,6 @@ public:
DECLARE_READ8_MEMBER(ssystem3_via_read_a);
DECLARE_READ8_MEMBER(ssystem3_via_read_b);
DECLARE_WRITE8_MEMBER(ssystem3_via_write_b);
- required_device<cpu_device> m_maincpu;
- required_device<palette_device> m_palette;
void ssystem3_lcd_reset();
void ssystem3_lcd_write(int clock, int data);
void ssystem3_draw_7segment(bitmap_ind16 &bitmap,int value, int x, int y);
@@ -66,6 +66,18 @@ public:
void ssystem3_playfield_reset();
void ssystem3_playfield_write(int reset, int signal);
void ssystem3_playfield_read(int *on, int *ready);
+
+private:
+ UINT8 m_porta;
+ UINT8 *m_videoram;
+ playfield_t m_playfield;
+ lcd_t m_lcd;
+
+ required_device<cpu_device> m_maincpu;
+ required_device<palette_device> m_palette;
+ required_device<via6522_device> m_via6522_0;
+ required_ioport m_configuration;
+ required_ioport_array<4> m_matrix;
};
diff --git a/src/mame/includes/suna16.h b/src/mame/includes/suna16.h
index 3683bf6cc1d..572fe87365a 100644
--- a/src/mame/includes/suna16.h
+++ b/src/mame/includes/suna16.h
@@ -16,7 +16,11 @@ public:
m_screen(*this, "screen"),
m_palette(*this, "palette"),
m_spriteram(*this, "spriteram"),
- m_spriteram2(*this, "spriteram2")
+ m_spriteram2(*this, "spriteram2"),
+ m_bank1(*this, "bank1"),
+ m_bank2(*this, "bank2")
+
+
{ }
required_device<cpu_device> m_maincpu;
@@ -31,6 +35,10 @@ public:
required_shared_ptr<UINT16> m_spriteram;
optional_shared_ptr<UINT16> m_spriteram2;
+ optional_memory_bank m_bank1;
+ optional_memory_bank m_bank2;
+
+
UINT16 *m_paletteram;
int m_color_bank;
UINT8 m_prot;
diff --git a/src/mame/includes/suna8.h b/src/mame/includes/suna8.h
index 379250fae09..97067103bc3 100644
--- a/src/mame/includes/suna8.h
+++ b/src/mame/includes/suna8.h
@@ -64,7 +64,7 @@ public:
} m_gfxbank_type;
UINT8 m_gfxbank;
- int m_text_dim; // vertical size of the text layer (0 = no text layer)
+ bool m_has_text; // has text sprites (older games)
// samples
INT16 *m_samplebuf;
@@ -148,9 +148,8 @@ public:
DECLARE_DRIVER_INIT(hardhead);
DECLARE_DRIVER_INIT(suna8);
- void suna8_vh_start_common(int text_dim, GFXBANK_TYPE_T gfxbank_type);
- DECLARE_VIDEO_START(suna8_textdim8);
- DECLARE_VIDEO_START(suna8_textdim12);
+ void suna8_vh_start_common(bool has_text, GFXBANK_TYPE_T gfxbank_type);
+ DECLARE_VIDEO_START(suna8_text);
DECLARE_VIDEO_START(suna8_sparkman);
DECLARE_VIDEO_START(suna8_brickzn);
DECLARE_VIDEO_START(suna8_starfigh);
@@ -168,7 +167,7 @@ public:
void play_sample(int index);
SAMPLES_START_CB_MEMBER(sh_start);
- void draw_normal_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect, int which);
- void draw_text_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect);
+ void draw_sprites (screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int start, int end, int which);
+ void draw_text_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int start, int end, int ypos, bool write_mask);
UINT8 *brickzn_decrypt();
};
diff --git a/src/mame/includes/supbtime.h b/src/mame/includes/supbtime.h
index d38f7a66d46..dc1130efad1 100644
--- a/src/mame/includes/supbtime.h
+++ b/src/mame/includes/supbtime.h
@@ -28,7 +28,6 @@ public:
required_shared_ptr<UINT16> m_pf1_rowscroll;
required_shared_ptr<UINT16> m_pf2_rowscroll;
optional_device<decospr_device> m_sprgen;
- // UINT16 * m_paletteram; // currently this uses generic palette handling (in decocomn.c)
/* video-related */
diff --git a/src/mess/includes/super6.h b/src/mame/includes/super6.h
index 9367decda25..9367decda25 100644
--- a/src/mess/includes/super6.h
+++ b/src/mame/includes/super6.h
diff --git a/src/mess/includes/super80.h b/src/mame/includes/super80.h
index 30813f31015..30813f31015 100644
--- a/src/mess/includes/super80.h
+++ b/src/mame/includes/super80.h
diff --git a/src/mame/includes/superqix.h b/src/mame/includes/superqix.h
index f605e8372f6..ede28fa498e 100644
--- a/src/mame/includes/superqix.h
+++ b/src/mame/includes/superqix.h
@@ -89,6 +89,7 @@ public:
DECLARE_VIDEO_START(pbillian);
DECLARE_MACHINE_START(superqix);
DECLARE_VIDEO_START(superqix);
+ DECLARE_PALETTE_DECODER(BBGGRRII);
UINT32 screen_update_pbillian(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update_superqix(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(vblank_irq);
diff --git a/src/mess/includes/superslave.h b/src/mame/includes/superslave.h
index cfdc2f5d51d..cfdc2f5d51d 100644
--- a/src/mess/includes/superslave.h
+++ b/src/mame/includes/superslave.h
diff --git a/src/mame/includes/suprslam.h b/src/mame/includes/suprslam.h
index c691bfb902b..8c52558a251 100644
--- a/src/mame/includes/suprslam.h
+++ b/src/mame/includes/suprslam.h
@@ -34,7 +34,6 @@ public:
required_shared_ptr<UINT16> m_spr_ctrl;
required_shared_ptr<UINT16> m_screen_vregs;
required_device<vsystem_spr_device> m_spr;
-// UINT16 * m_paletteram; // this currently uses generic palette handling
/* video-related */
tilemap_t *m_screen_tilemap;
diff --git a/src/mess/includes/svi318.h b/src/mame/includes/svi318.h
index a699f6e9bfb..a699f6e9bfb 100644
--- a/src/mess/includes/svi318.h
+++ b/src/mame/includes/svi318.h
diff --git a/src/mess/includes/svision.h b/src/mame/includes/svision.h
index ab8ff9583e7..ab8ff9583e7 100644
--- a/src/mess/includes/svision.h
+++ b/src/mame/includes/svision.h
diff --git a/src/mess/includes/swtpc09.h b/src/mame/includes/swtpc09.h
index 222ffe5c11a..222ffe5c11a 100644
--- a/src/mess/includes/swtpc09.h
+++ b/src/mame/includes/swtpc09.h
diff --git a/src/mame/includes/system1.h b/src/mame/includes/system1.h
index c6d7e437841..038537267c5 100644
--- a/src/mame/includes/system1.h
+++ b/src/mame/includes/system1.h
@@ -13,15 +13,16 @@ public:
m_spriteram(*this, "spriteram"),
m_nob_mcu_latch(*this, "nob_mcu_latch"),
m_nob_mcu_status(*this, "nob_mcu_status"),
+ m_paletteram(*this, "palette"),
m_maincpu(*this, "maincpu"),
m_soundcpu(*this, "soundcpu"),
m_mcu(*this, "mcu"),
m_gfxdecode(*this, "gfxdecode"),
m_screen(*this, "screen"),
m_palette(*this, "palette"),
- m_generic_paletteram_8(*this, "paletteram"),
m_decrypted_opcodes(*this, "decrypted_opcodes"),
m_maincpu_region(*this, "maincpu"),
+ m_color_prom(*this, "palette"),
m_bank1(*this, "bank1"),
m_bank0d(*this, "bank0d"),
m_bank1d(*this, "bank1d") { }
@@ -31,6 +32,7 @@ public:
required_shared_ptr<UINT8> m_spriteram;
optional_shared_ptr<UINT8> m_nob_mcu_latch;
optional_shared_ptr<UINT8> m_nob_mcu_status;
+ required_shared_ptr<UINT8> m_paletteram;
UINT8 *m_videoram;
void (system1_state::*m_videomode_custom)(UINT8 data, UINT8 prevdata);
@@ -115,6 +117,7 @@ public:
DECLARE_DRIVER_INIT(seganinj);
DECLARE_DRIVER_INIT(gardia);
DECLARE_DRIVER_INIT(spatter);
+ DECLARE_DRIVER_INIT(spattera);
TILE_GET_INFO_MEMBER(tile_get_info);
virtual void machine_start();
virtual void machine_reset();
@@ -141,9 +144,9 @@ public:
required_device<gfxdecode_device> m_gfxdecode;
required_device<screen_device> m_screen;
required_device<palette_device> m_palette;
- required_shared_ptr<UINT8> m_generic_paletteram_8;
optional_shared_ptr<UINT8> m_decrypted_opcodes;
required_memory_region m_maincpu_region;
+ optional_region_ptr<UINT8> m_color_prom;
required_memory_bank m_bank1;
optional_memory_bank m_bank0d;
optional_memory_bank m_bank1d;
diff --git a/src/mame/includes/system16.h b/src/mame/includes/system16.h
index 91ad78b88d8..087258bcc84 100644
--- a/src/mame/includes/system16.h
+++ b/src/mame/includes/system16.h
@@ -125,7 +125,7 @@ public:
optional_shared_ptr<UINT16> m_decrypted_opcodes;
DECLARE_WRITE16_MEMBER(sound_command_nmi_w);
- DECLARE_WRITE16_MEMBER(sound_command_w);
+ DECLARE_WRITE16_MEMBER(sound_command_irq_w);
DECLARE_WRITE16_MEMBER(sys16_coinctrl_w);
DECLARE_READ16_MEMBER(passht4b_service_r);
DECLARE_READ16_MEMBER(passht4b_io1_r);
@@ -159,7 +159,6 @@ public:
DECLARE_WRITE16_MEMBER(sys18_tilebank_w);
DECLARE_READ8_MEMBER(system18_bank_r);
DECLARE_WRITE8_MEMBER(sys18_soundbank_w);
- DECLARE_WRITE16_MEMBER(sound_command_irq_w);
DECLARE_WRITE8_MEMBER(shdancbl_msm5205_data_w);
DECLARE_READ8_MEMBER(shdancbl_soundbank_r);
DECLARE_WRITE8_MEMBER(shdancbl_bankctrl_w);
diff --git a/src/mame/includes/taito_b.h b/src/mame/includes/taito_b.h
index 4f6d2eef264..c97e53a8c6f 100644
--- a/src/mame/includes/taito_b.h
+++ b/src/mame/includes/taito_b.h
@@ -42,7 +42,6 @@ public:
/* memory pointers */
required_shared_ptr<UINT16> m_spriteram;
optional_shared_ptr<UINT16> m_pixelram;
-// UINT16 * m_paletteram; // this currently uses generic palette handlers
/* video-related */
/* framebuffer is a raw bitmap, remapped as a last step */
diff --git a/src/mame/includes/taito_f2.h b/src/mame/includes/taito_f2.h
index 98c9f772fbb..6497d09306c 100644
--- a/src/mame/includes/taito_f2.h
+++ b/src/mame/includes/taito_f2.h
@@ -53,8 +53,6 @@ public:
UINT16 * m_spriteram_buffered;
UINT16 * m_spriteram_delayed;
optional_shared_ptr<UINT16> m_cchip2_ram; // for megablst only
-// UINT16 * m_paletteram; // currently this uses generic palette handling
-
/* video-related */
struct f2_tempsprite *m_spritelist;
diff --git a/src/mame/includes/taito_f3.h b/src/mame/includes/taito_f3.h
index c1bdc63b269..9ac68ef3290 100644
--- a/src/mame/includes/taito_f3.h
+++ b/src/mame/includes/taito_f3.h
@@ -61,7 +61,12 @@ public:
m_screen(*this, "screen"),
m_palette(*this, "palette"),
m_f3_ram(*this,"f3_ram"),
- m_paletteram32(*this, "paletteram") { }
+ m_paletteram32(*this, "paletteram"),
+ m_input(*this, "IN"),
+ m_dial(*this, "DIAL"),
+ m_eepromin(*this, "EEPROMIN")
+
+ { }
required_device<cpu_device> m_maincpu;
optional_device<cpu_device> m_audiocpu;
@@ -72,6 +77,10 @@ public:
optional_shared_ptr<UINT32> m_f3_ram;
optional_shared_ptr<UINT32> m_paletteram32;
+ optional_ioport_array<6> m_input;
+ optional_ioport_array<2> m_dial;
+ optional_ioport m_eepromin;
+
UINT16 *m_videoram;
UINT16 *m_spriteram;
@@ -245,6 +254,7 @@ public:
DECLARE_WRITE32_MEMBER(f3_palette_24bit_w);
DECLARE_CUSTOM_INPUT_MEMBER(f3_analog_r);
DECLARE_CUSTOM_INPUT_MEMBER(f3_coin_r);
+ DECLARE_CUSTOM_INPUT_MEMBER(eeprom_read);
DECLARE_DRIVER_INIT(commandw);
DECLARE_DRIVER_INIT(pbobble2);
DECLARE_DRIVER_INIT(puchicar);
diff --git a/src/mame/includes/taito_o.h b/src/mame/includes/taito_o.h
index 2b132d95efe..08225c21741 100644
--- a/src/mame/includes/taito_o.h
+++ b/src/mame/includes/taito_o.h
@@ -18,9 +18,6 @@ public:
m_gfxdecode(*this, "gfxdecode"),
m_palette(*this, "palette") { }
- /* memory pointers */
-// UINT16 * paletteram; // currently this uses generic palette handling
-
/* devices */
required_device<cpu_device> m_maincpu;
required_device<tc0080vco_device> m_tc0080vco;
diff --git a/src/mame/includes/taitoair.h b/src/mame/includes/taitoair.h
index 356801eede6..d9b56f4a1e4 100644
--- a/src/mame/includes/taitoair.h
+++ b/src/mame/includes/taitoair.h
@@ -75,7 +75,7 @@ public:
INT16 m_eyecoordBuffer[4]; /* homogeneous */
bool m_gradbank;
-
+
DECLARE_READ16_MEMBER(dsp_m_r);
DECLARE_WRITE16_MEMBER(dsp_m_w);
@@ -130,7 +130,7 @@ public:
void fb_copy_op(void);
void fb_fill_op(void);
void fb_erase_op(void);
-
+
void fill_slope( bitmap_ind16 &bitmap, const rectangle &cliprect, UINT16 header, INT32 x1, INT32 x2, INT32 sl1, INT32 sl2, INT32 y1, INT32 y2, INT32 *nx1, INT32 *nx2 );
void fill_poly( bitmap_ind16 &bitmap, const rectangle &cliprect, const struct taitoair_poly *q );
int projectEyeCoordToScreen(float* projectionMatrix,const int Res,INT16* eyePoint3d,int type);
diff --git a/src/mess/includes/tandy2k.h b/src/mame/includes/tandy2k.h
index 761d2f0cb37..761d2f0cb37 100644
--- a/src/mess/includes/tandy2k.h
+++ b/src/mame/includes/tandy2k.h
diff --git a/src/mame/includes/tank8.h b/src/mame/includes/tank8.h
index e953d955ca0..e94771dd870 100644
--- a/src/mame/includes/tank8.h
+++ b/src/mame/includes/tank8.h
@@ -35,55 +35,62 @@ public:
tank8_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
- m_video_ram(*this, "video_ram"),
- m_pos_h_ram(*this, "pos_h_ram"),
- m_pos_v_ram(*this, "pos_v_ram"),
- m_pos_d_ram(*this, "pos_d_ram"),
- m_team(*this, "team"),
m_maincpu(*this, "maincpu"),
m_discrete(*this, "discrete"),
m_gfxdecode(*this, "gfxdecode"),
m_screen(*this, "screen"),
- m_palette(*this, "palette") { }
+ m_palette(*this, "palette"),
+ m_video_ram(*this, "video_ram"),
+ m_pos_h_ram(*this, "pos_h_ram"),
+ m_pos_v_ram(*this, "pos_v_ram"),
+ m_pos_d_ram(*this, "pos_d_ram"),
+ m_team(*this, "team") { }
+
+ required_device<cpu_device> m_maincpu;
+ required_device<discrete_device> m_discrete;
+ required_device<gfxdecode_device> m_gfxdecode;
+ required_device<screen_device> m_screen;
+ required_device<palette_device> m_palette;
- int m_collision_index;
required_shared_ptr<UINT8> m_video_ram;
required_shared_ptr<UINT8> m_pos_h_ram;
required_shared_ptr<UINT8> m_pos_v_ram;
required_shared_ptr<UINT8> m_pos_d_ram;
required_shared_ptr<UINT8> m_team;
+
+ int m_collision_index;
tilemap_t *m_tilemap;
bitmap_ind16 m_helper1;
bitmap_ind16 m_helper2;
bitmap_ind16 m_helper3;
- DECLARE_READ8_MEMBER(tank8_collision_r);
- DECLARE_WRITE8_MEMBER(tank8_lockout_w);
- DECLARE_WRITE8_MEMBER(tank8_int_reset_w);
- DECLARE_WRITE8_MEMBER(tank8_video_ram_w);
- DECLARE_WRITE8_MEMBER(tank8_crash_w);
- DECLARE_WRITE8_MEMBER(tank8_explosion_w);
- DECLARE_WRITE8_MEMBER(tank8_bugle_w);
- DECLARE_WRITE8_MEMBER(tank8_bug_w);
- DECLARE_WRITE8_MEMBER(tank8_attract_w);
- DECLARE_WRITE8_MEMBER(tank8_motor_w);
+ emu_timer *m_collision_timer;
+
+ DECLARE_READ8_MEMBER(collision_r);
+ DECLARE_WRITE8_MEMBER(lockout_w);
+ DECLARE_WRITE8_MEMBER(int_reset_w);
+ DECLARE_WRITE8_MEMBER(video_ram_w);
+ DECLARE_WRITE8_MEMBER(crash_w);
+ DECLARE_WRITE8_MEMBER(explosion_w);
+ DECLARE_WRITE8_MEMBER(bugle_w);
+ DECLARE_WRITE8_MEMBER(bug_w);
+ DECLARE_WRITE8_MEMBER(attract_w);
+ DECLARE_WRITE8_MEMBER(motor_w);
+
+ TILE_GET_INFO_MEMBER(get_tile_info);
+
DECLARE_DRIVER_INIT(decode);
- TILE_GET_INFO_MEMBER(tank8_get_tile_info);
virtual void machine_reset();
virtual void video_start();
DECLARE_PALETTE_INIT(tank8);
- UINT32 screen_update_tank8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- void screen_eof_tank8(screen_device &screen, bool state);
+
+ UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof(screen_device &screen, bool state);
void set_pens();
inline int get_x_pos(int n);
inline int get_y_pos(int n);
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
void draw_bullets(bitmap_ind16 &bitmap, const rectangle &cliprect);
- void tank8_set_collision(int index);
- required_device<cpu_device> m_maincpu;
- required_device<discrete_device> m_discrete;
- required_device<gfxdecode_device> m_gfxdecode;
- required_device<screen_device> m_screen;
- required_device<palette_device> m_palette;
+ void set_collision(int index);
protected:
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
diff --git a/src/mess/includes/tdv2324.h b/src/mame/includes/tdv2324.h
index 7a2aaf91a22..7a2aaf91a22 100644
--- a/src/mess/includes/tdv2324.h
+++ b/src/mame/includes/tdv2324.h
diff --git a/src/mess/includes/tek405x.h b/src/mame/includes/tek405x.h
index f2a70fbd86e..f2a70fbd86e 100644
--- a/src/mess/includes/tek405x.h
+++ b/src/mame/includes/tek405x.h
diff --git a/src/mess/includes/thomson.h b/src/mame/includes/thomson.h
index 7aac073fa2a..19c07cf763f 100644
--- a/src/mess/includes/thomson.h
+++ b/src/mame/includes/thomson.h
@@ -113,7 +113,32 @@ public:
m_mc6846(*this, "mc6846"),
m_mc6843(*this, "mc6843"),
m_acia6850(*this, "acia6850"),
- m_screen(*this, "screen")
+ m_screen(*this, "screen"),
+ m_io_game_port_directions(*this, "game_port_directions"),
+ m_io_game_port_buttons(*this, "game_port_buttons"),
+ m_io_mouse_x(*this, "mouse_x"),
+ m_io_mouse_y(*this, "mouse_y"),
+ m_io_mouse_button(*this, "mouse_button"),
+ m_io_lightpen_x(*this, "lightpen_x"),
+ m_io_lightpen_y(*this, "lightpen_y"),
+ m_io_lightpen_button(*this, "lightpen_button"),
+ m_io_config(*this, "config"),
+ m_io_vconfig(*this, "vconfig"),
+ m_io_mconfig(*this, "mconfig"),
+ m_io_fconfig(*this, "fconfig"),
+ m_io_keyboard(*this, "keyboard"),
+ m_vrambank(*this, THOM_VRAM_BANK),
+ m_cartbank(*this, THOM_CART_BANK),
+ m_rambank(*this, THOM_RAM_BANK),
+ m_flopbank(*this, THOM_FLOP_BANK),
+ m_basebank(*this, THOM_BASE_BANK),
+ m_syslobank(*this, TO8_SYS_LO),
+ m_syshibank(*this, TO8_SYS_HI),
+ m_datalobank(*this, TO8_DATA_LO),
+ m_datahibank(*this, TO8_DATA_HI),
+ m_biosbank(*this, TO8_BIOS_BANK),
+ m_cartlobank(*this, MO6_CART_LO),
+ m_carthibank(*this, MO6_CART_HI)
{
}
@@ -347,6 +372,31 @@ protected:
optional_device<mc6843_device> m_mc6843;
optional_device<acia6850_device> m_acia6850;
required_device<screen_device> m_screen;
+ required_ioport m_io_game_port_directions;
+ required_ioport m_io_game_port_buttons;
+ required_ioport m_io_mouse_x;
+ required_ioport m_io_mouse_y;
+ required_ioport m_io_mouse_button;
+ required_ioport m_io_lightpen_x;
+ required_ioport m_io_lightpen_y;
+ required_ioport m_io_lightpen_button;
+ required_ioport m_io_config;
+ required_ioport m_io_vconfig;
+ optional_ioport m_io_mconfig;
+ required_ioport m_io_fconfig;
+ required_ioport_array<10> m_io_keyboard;
+ required_memory_bank m_vrambank;
+ optional_memory_bank m_cartbank;
+ optional_memory_bank m_rambank;
+ required_memory_bank m_flopbank;
+ required_memory_bank m_basebank;
+ required_memory_bank m_syslobank;
+ optional_memory_bank m_syshibank;
+ optional_memory_bank m_datalobank;
+ optional_memory_bank m_datahibank;
+ optional_memory_bank m_biosbank;
+ optional_memory_bank m_cartlobank;
+ optional_memory_bank m_carthibank;
/* bank logging and optimisations */
int m_old_cart_bank;
diff --git a/src/mess/includes/ti85.h b/src/mame/includes/ti85.h
index d77433eaf21..d77433eaf21 100644
--- a/src/mess/includes/ti85.h
+++ b/src/mame/includes/ti85.h
diff --git a/src/mess/includes/ti89.h b/src/mame/includes/ti89.h
index 83f83020513..83f83020513 100644
--- a/src/mess/includes/ti89.h
+++ b/src/mame/includes/ti89.h
diff --git a/src/mess/includes/tiki100.h b/src/mame/includes/tiki100.h
index e66d1a6ff65..fb48e7069bd 100644
--- a/src/mess/includes/tiki100.h
+++ b/src/mame/includes/tiki100.h
@@ -5,9 +5,10 @@
#ifndef __TIKI100__
#define __TIKI100__
-
#include "emu.h"
#include "bus/centronics/ctronics.h"
+#include "bus/rs232/rs232.h"
+#include "bus/tiki100/exp.h"
#include "cpu/z80/z80.h"
#include "cpu/z80/z80daisy.h"
#include "formats/tiki100_dsk.h"
@@ -41,19 +42,22 @@
class tiki100_state : public driver_device
{
public:
- tiki100_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
+ tiki100_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
m_maincpu(*this, Z80_TAG),
m_ctc(*this, Z80CTC_TAG),
m_fdc(*this, FD1797_TAG),
m_pio(*this, Z80PIO_TAG),
m_dart(*this, Z80DART_TAG),
+ m_psg(*this, AY8912_TAG),
m_ram(*this, RAM_TAG),
m_floppy0(*this, FD1797_TAG":0"),
m_floppy1(*this, FD1797_TAG":1"),
m_cassette(*this, CASSETTE_TAG),
m_centronics(*this, CENTRONICS_TAG),
+ m_exp(*this, TIKI100_BUS_TAG),
m_rom(*this, Z80_TAG),
+ m_prom(*this, "u4"),
m_video_ram(*this, "video_ram"),
m_y1(*this, "Y1"),
m_y2(*this, "Y2"),
@@ -67,7 +71,10 @@ public:
m_y10(*this, "Y10"),
m_y11(*this, "Y11"),
m_y12(*this, "Y12"),
- m_palette(*this, "palette")
+ m_st_io(*this, "ST"),
+ m_palette(*this, "palette"),
+ m_rome(1),
+ m_vire(1)
{ }
required_device<cpu_device> m_maincpu;
@@ -75,12 +82,15 @@ public:
required_device<fd1797_t> m_fdc;
required_device<z80pio_device> m_pio;
required_device<z80dart_device> m_dart;
+ required_device<ay8912_device> m_psg;
required_device<ram_device> m_ram;
required_device<floppy_connector> m_floppy0;
required_device<floppy_connector> m_floppy1;
required_device<cassette_image_device> m_cassette;
required_device<centronics_device> m_centronics;
+ required_device<tiki100_bus_t> m_exp;
required_memory_region m_rom;
+ required_memory_region m_prom;
optional_shared_ptr<UINT8> m_video_ram;
required_ioport m_y1;
required_ioport m_y2;
@@ -94,6 +104,7 @@ public:
required_ioport m_y10;
required_ioport m_y11;
required_ioport m_y12;
+ required_ioport m_st_io;
required_device<palette_device> m_palette;
virtual void machine_start();
@@ -101,15 +112,18 @@ public:
UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
- DECLARE_READ8_MEMBER( gfxram_r );
- DECLARE_WRITE8_MEMBER( gfxram_w );
+ DECLARE_READ8_MEMBER( mrq_r );
+ DECLARE_WRITE8_MEMBER( mrq_w );
+ DECLARE_READ8_MEMBER( iorq_r );
+ DECLARE_WRITE8_MEMBER( iorq_w );
+
DECLARE_READ8_MEMBER( keyboard_r );
DECLARE_WRITE8_MEMBER( keyboard_w );
DECLARE_WRITE8_MEMBER( video_mode_w );
DECLARE_WRITE8_MEMBER( palette_w );
DECLARE_WRITE8_MEMBER( system_w );
- DECLARE_WRITE_LINE_MEMBER( ctc_z0_w );
- DECLARE_WRITE_LINE_MEMBER( ctc_z2_w );
+ DECLARE_WRITE_LINE_MEMBER( bar0_w );
+ DECLARE_WRITE_LINE_MEMBER( bar2_w );
DECLARE_WRITE8_MEMBER( video_scroll_w );
DECLARE_READ8_MEMBER( pio_pb_r );
@@ -117,30 +131,42 @@ public:
DECLARE_FLOPPY_FORMATS( floppy_formats );
- void bankswitch();
+ TIMER_DEVICE_CALLBACK_MEMBER( ctc_tick );
+ TIMER_DEVICE_CALLBACK_MEMBER( tape_tick );
+
+ DECLARE_WRITE_LINE_MEMBER(write_centronics_ack);
+ DECLARE_WRITE_LINE_MEMBER(write_centronics_busy);
+ DECLARE_WRITE_LINE_MEMBER(write_centronics_perror);
+
+ DECLARE_WRITE_LINE_MEMBER( busrq_w );
- /* memory state */
- int m_rome;
- int m_vire;
+ enum
+ {
+ ROM0 = 0x01,
+ ROM1 = 0x02,
+ VIR = 0x04,
+ RAM = 0x08
+ };
- /* video state */
+ // memory state
+ bool m_rome;
+ bool m_vire;
+
+ // video state
UINT8 m_scroll;
UINT8 m_mode;
UINT8 m_palette_val;
- /* keyboard state */
+ // keyboard state
int m_keylatch;
- TIMER_DEVICE_CALLBACK_MEMBER( ctc_tick );
- TIMER_DEVICE_CALLBACK_MEMBER( tape_tick );
-
- DECLARE_WRITE_LINE_MEMBER(write_centronics_ack);
- DECLARE_WRITE_LINE_MEMBER(write_centronics_busy);
- DECLARE_WRITE_LINE_MEMBER(write_centronics_perror);
-
+ // printer state
int m_centronics_ack;
int m_centronics_busy;
int m_centronics_perror;
+
+ // serial state
+ bool m_st;
};
#endif
diff --git a/src/mess/includes/tmc1800.h b/src/mame/includes/tmc1800.h
index 43d9c98daca..43d9c98daca 100644
--- a/src/mess/includes/tmc1800.h
+++ b/src/mame/includes/tmc1800.h
diff --git a/src/mess/includes/tmc2000e.h b/src/mame/includes/tmc2000e.h
index e54fffa67ab..e54fffa67ab 100644
--- a/src/mess/includes/tmc2000e.h
+++ b/src/mame/includes/tmc2000e.h
diff --git a/src/mess/includes/tmc600.h b/src/mame/includes/tmc600.h
index 67855119897..67855119897 100644
--- a/src/mess/includes/tmc600.h
+++ b/src/mame/includes/tmc600.h
diff --git a/src/mame/includes/tnzs.h b/src/mame/includes/tnzs.h
index ee747b914a2..8cfde271a57 100644
--- a/src/mame/includes/tnzs.h
+++ b/src/mame/includes/tnzs.h
@@ -35,7 +35,18 @@ public:
m_dac(*this, "dac"),
m_samples(*this, "samples"),
m_palette(*this, "palette"),
- m_mainbank(*this, "mainbank")
+ m_mainbank(*this, "mainbank"),
+ m_subbank(*this, "subbank"),
+ m_audiobank(*this, "audiobank"),
+ m_dswa(*this, "DSWA"),
+ m_dswb(*this, "DSWB"),
+ m_in0(*this, "IN0"),
+ m_in1(*this, "IN1"),
+ m_in2(*this, "IN2"),
+ m_coin1(*this, "COIN1"),
+ m_coin2(*this, "COIN2"),
+ m_an1(*this, "AN1"),
+ m_an2(*this, "AN2")
{ }
/* devices */
@@ -48,6 +59,17 @@ public:
optional_device<samples_device> m_samples;
required_device<palette_device> m_palette;
optional_device<address_map_bank_device> m_mainbank;
+ optional_memory_bank m_subbank; /* optional because of reuse from cchance.c */
+ optional_memory_bank m_audiobank;
+ required_ioport m_dswa;
+ required_ioport m_dswb;
+ required_ioport m_in0;
+ required_ioport m_in1;
+ required_ioport m_in2;
+ optional_ioport m_coin1;
+ optional_ioport m_coin2;
+ optional_ioport m_an1;
+ optional_ioport m_an2;
/* sound-related */
INT16 *m_sampledata[MAX_SAMPLES];
diff --git a/src/mame/includes/trackfld.h b/src/mame/includes/trackfld.h
index 93df7e95d2f..bac83ad0c3e 100644
--- a/src/mame/includes/trackfld.h
+++ b/src/mame/includes/trackfld.h
@@ -67,6 +67,7 @@ public:
DECLARE_DRIVER_INIT(atlantol);
DECLARE_DRIVER_INIT(wizzquiz);
DECLARE_DRIVER_INIT(mastkin);
+ DECLARE_DRIVER_INIT(trackfldnz);
UINT8 m_SN76496_latch;
DECLARE_WRITE8_MEMBER( konami_SN76496_latch_w ) { m_SN76496_latch = data; };
diff --git a/src/mess/includes/trs80.h b/src/mame/includes/trs80.h
index e4ced5999ab..e4ced5999ab 100644
--- a/src/mess/includes/trs80.h
+++ b/src/mame/includes/trs80.h
diff --git a/src/mess/includes/trs80m2.h b/src/mame/includes/trs80m2.h
index 94a85e36038..94a85e36038 100644
--- a/src/mess/includes/trs80m2.h
+++ b/src/mame/includes/trs80m2.h
diff --git a/src/mess/includes/tsispch.h b/src/mame/includes/tsispch.h
index 25c7b088da6..25c7b088da6 100644
--- a/src/mess/includes/tsispch.h
+++ b/src/mame/includes/tsispch.h
diff --git a/src/mame/includes/tumbleb.h b/src/mame/includes/tumbleb.h
index d87e5efad48..3abcc4ed79a 100644
--- a/src/mame/includes/tumbleb.h
+++ b/src/mame/includes/tumbleb.h
@@ -29,7 +29,6 @@ public:
required_shared_ptr<UINT16> m_pf2_data;
optional_shared_ptr<UINT16> m_control;
optional_device<decospr_device> m_sprgen;
-// UINT16 * m_paletteram; // currently this uses generic palette handling
/* misc */
int m_music_command;
diff --git a/src/mame/includes/tumblep.h b/src/mame/includes/tumblep.h
index 67d64baf668..f09ac964918 100644
--- a/src/mame/includes/tumblep.h
+++ b/src/mame/includes/tumblep.h
@@ -28,7 +28,6 @@ public:
required_shared_ptr<UINT16> m_pf1_rowscroll;
required_shared_ptr<UINT16> m_pf2_rowscroll;
optional_device<decospr_device> m_sprgen;
-// UINT16 * m_paletteram; // currently this uses generic palette handling (in decocomn.c)
/* devices */
required_device<cpu_device> m_maincpu;
diff --git a/src/mame/includes/tutankhm.h b/src/mame/includes/tutankhm.h
index f183b0688eb..b5748db47b0 100644
--- a/src/mame/includes/tutankhm.h
+++ b/src/mame/includes/tutankhm.h
@@ -6,13 +6,12 @@ public:
tutankhm_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_videoram(*this, "videoram"),
- m_paletteram(*this, "paletteram"),
m_scroll(*this, "scroll"),
- m_maincpu(*this, "maincpu"){ }
+ m_maincpu(*this, "maincpu"),
+ m_palette(*this, "palette") { }
/* memory pointers */
required_shared_ptr<UINT8> m_videoram;
- required_shared_ptr<UINT8> m_paletteram;
required_shared_ptr<UINT8> m_scroll;
/* video-related */
@@ -26,6 +25,7 @@ public:
/* devices */
required_device<cpu_device> m_maincpu;
+ required_device<palette_device> m_palette;
DECLARE_WRITE8_MEMBER(irq_enable_w);
DECLARE_WRITE8_MEMBER(tutankhm_bankselect_w);
DECLARE_WRITE8_MEMBER(sound_mute_w);
@@ -36,5 +36,4 @@ public:
DECLARE_MACHINE_RESET(tutankhm);
UINT32 screen_update_tutankhm(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(tutankhm_interrupt);
- void get_pens( pen_t *pens );
};
diff --git a/src/mess/includes/tx0.h b/src/mame/includes/tx0.h
index b961a415224..98d111d72ec 100644
--- a/src/mess/includes/tx0.h
+++ b/src/mame/includes/tx0.h
@@ -136,7 +136,11 @@ public:
: driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_gfxdecode(*this, "gfxdecode"),
- m_palette(*this, "palette") { }
+ m_palette(*this, "palette"),
+ m_crt(*this, "crt"),
+ m_csw(*this, "CSW"),
+ m_twr(*this, "TWR")
+ { }
tx0_tape_reader_t m_tape_reader;
tape_puncher_t m_tape_puncher;
@@ -152,7 +156,6 @@ public:
bitmap_ind16 m_typewriter_bitmap;
int m_pos;
int m_case_shift;
- crt_device *m_crt;
DECLARE_DRIVER_INIT(tx0);
virtual void machine_start();
virtual void machine_reset();
@@ -198,8 +201,13 @@ public:
DECLARE_WRITE_LINE_MEMBER(tx0_sel);
DECLARE_WRITE_LINE_MEMBER(tx0_io_reset_callback);
void magtape_callback();
+
+private:
required_device<gfxdecode_device> m_gfxdecode;
required_device<palette_device> m_palette;
+ required_device<crt_device> m_crt;
+ required_ioport m_csw;
+ required_ioport_array<4> m_twr;
};
/* defines for each bit and mask in input port "CSW" */
diff --git a/src/mame/includes/ultraman.h b/src/mame/includes/ultraman.h
index 3b1cd3c9462..854f30d606e 100644
--- a/src/mame/includes/ultraman.h
+++ b/src/mame/includes/ultraman.h
@@ -22,12 +22,6 @@ public:
m_k051316_3(*this, "k051316_3"),
m_k051960(*this, "k051960") { }
- /* memory pointers */
-// UINT16 * m_paletteram; // currently this uses generic palette handling
-
- /* video-related */
- int m_sprite_colorbase;
- int m_zoom_colorbase[3];
int m_bank0;
int m_bank1;
int m_bank2;
@@ -44,7 +38,6 @@ public:
DECLARE_WRITE16_MEMBER(ultraman_gfxctrl_w);
virtual void machine_start();
virtual void machine_reset();
- virtual void video_start();
UINT32 screen_update_ultraman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
K051316_CB_MEMBER(zoom_callback_1);
K051316_CB_MEMBER(zoom_callback_2);
diff --git a/src/mess/includes/ut88.h b/src/mame/includes/ut88.h
index 757d1f7a98c..757d1f7a98c 100644
--- a/src/mess/includes/ut88.h
+++ b/src/mame/includes/ut88.h
diff --git a/src/mess/includes/v1050.h b/src/mame/includes/v1050.h
index 429f032c38a..429f032c38a 100644
--- a/src/mess/includes/v1050.h
+++ b/src/mame/includes/v1050.h
diff --git a/src/mess/includes/vc4000.h b/src/mame/includes/vc4000.h
index 529e1828404..f0d0c95cab8 100644
--- a/src/mess/includes/vc4000.h
+++ b/src/mame/includes/vc4000.h
@@ -82,6 +82,7 @@ public:
m_screen(*this, "screen"),
m_cassette(*this, "cassette"),
m_cart(*this, "cartslot"),
+ m_custom(*this, "custom"),
m_keypad1_1(*this, "KEYPAD1_1"),
m_keypad1_2(*this, "KEYPAD1_2"),
m_keypad1_3(*this, "KEYPAD1_3"),
@@ -93,11 +94,12 @@ public:
m_io_joy1_x(*this, "JOY1_X"),
m_io_joy1_y(*this, "JOY1_Y"),
m_io_joy2_x(*this, "JOY2_X"),
- m_io_joy2_y(*this, "JOY2_Y") { }
+ m_io_joy2_y(*this, "JOY2_Y")
#else
m_joys(*this, "JOYS"),
- m_config(*this, "CONFIG") { }
+ m_config(*this, "CONFIG")
#endif
+ { }
DECLARE_WRITE8_MEMBER(vc4000_sound_ctl);
DECLARE_READ8_MEMBER(vc4000_key_r);
@@ -128,6 +130,7 @@ protected:
required_device<screen_device> m_screen;
optional_device<cassette_image_device> m_cassette;
required_device<vc4000_cart_slot_device> m_cart;
+ required_device<vc4000_sound_device> m_custom;
required_ioport m_keypad1_1;
required_ioport m_keypad1_2;
required_ioport m_keypad1_3;
diff --git a/src/mess/includes/vcs80.h b/src/mame/includes/vcs80.h
index 7030bbc008d..7030bbc008d 100644
--- a/src/mess/includes/vcs80.h
+++ b/src/mame/includes/vcs80.h
diff --git a/src/mess/includes/vector06.h b/src/mame/includes/vector06.h
index 970965465ef..959842aa3b6 100644
--- a/src/mess/includes/vector06.h
+++ b/src/mame/includes/vector06.h
@@ -27,30 +27,27 @@ class vector06_state : public driver_device
public:
vector06_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
- m_maincpu(*this, "maincpu"),
- m_cassette(*this, "cassette"),
- m_cart(*this, "cartslot"),
- m_fdc(*this, "wd1793"),
- m_floppy0(*this, "wd1793:0"),
- m_floppy1(*this, "wd1793:1"),
- m_ppi(*this, "ppi8255"),
- m_ppi2(*this, "ppi8255_2"),
- m_ram(*this, RAM_TAG),
- m_palette(*this, "palette")
+ m_maincpu(*this, "maincpu"),
+ m_cassette(*this, "cassette"),
+ m_cart(*this, "cartslot"),
+ m_fdc(*this, "wd1793"),
+ m_floppy0(*this, "wd1793:0"),
+ m_floppy1(*this, "wd1793:1"),
+ m_ppi(*this, "ppi8255"),
+ m_ppi2(*this, "ppi8255_2"),
+ m_ram(*this, RAM_TAG),
+ m_palette(*this, "palette"),
+ m_bank1(*this, "bank1"),
+ m_bank2(*this, "bank2"),
+ m_bank3(*this, "bank3"),
+ m_bank4(*this, "bank4"),
+ m_region_maincpu(*this, "maincpu"),
+ m_line(*this, "LINE"),
+ m_reset(*this, "RESET")
{ }
DECLARE_FLOPPY_FORMATS(floppy_formats);
- required_device<cpu_device> m_maincpu;
- required_device<cassette_image_device> m_cassette;
- required_device<generic_slot_device> m_cart;
- required_device<fd1793_t> m_fdc;
- required_device<floppy_connector> m_floppy0;
- required_device<floppy_connector> m_floppy1;
- required_device<i8255_device> m_ppi;
- required_device<i8255_device> m_ppi2;
- required_device<ram_device> m_ram;
- required_device<palette_device> m_palette;
DECLARE_READ8_MEMBER(vector06_8255_portb_r);
DECLARE_READ8_MEMBER(vector06_8255_portc_r);
DECLARE_WRITE8_MEMBER(vector06_8255_porta_w);
@@ -64,12 +61,6 @@ public:
DECLARE_READ8_MEMBER(vector06_8255_2_r);
DECLARE_WRITE8_MEMBER(vector06_8255_2_w);
DECLARE_WRITE8_MEMBER(vector06_disc_w);
- UINT8 m_keyboard_mask;
- UINT8 m_color_index;
- UINT8 m_video_mode;
- UINT8 m_romdisk_msb;
- UINT8 m_romdisk_lsb;
- UINT8 m_vblank_state;
void vector06_set_video_mode(int width);
virtual void machine_start();
virtual void machine_reset();
@@ -79,6 +70,33 @@ public:
INTERRUPT_GEN_MEMBER(vector06_interrupt);
TIMER_CALLBACK_MEMBER(reset_check_callback);
IRQ_CALLBACK_MEMBER(vector06_irq_callback);
+
+private:
+ required_device<cpu_device> m_maincpu;
+ required_device<cassette_image_device> m_cassette;
+ required_device<generic_slot_device> m_cart;
+ required_device<fd1793_t> m_fdc;
+ required_device<floppy_connector> m_floppy0;
+ required_device<floppy_connector> m_floppy1;
+ required_device<i8255_device> m_ppi;
+ required_device<i8255_device> m_ppi2;
+ required_device<ram_device> m_ram;
+ required_device<palette_device> m_palette;
+ required_memory_bank m_bank1;
+ required_memory_bank m_bank2;
+ required_memory_bank m_bank3;
+ required_memory_bank m_bank4;
+ required_memory_region m_region_maincpu;
+ required_ioport_array<9> m_line;
+ required_ioport m_reset;
+
+ UINT8 m_keyboard_mask;
+ UINT8 m_color_index;
+ UINT8 m_video_mode;
+ UINT8 m_romdisk_msb;
+ UINT8 m_romdisk_lsb;
+ UINT8 m_vblank_state;
+
};
#endif /* VECTOR06_H_ */
diff --git a/src/mess/includes/vic10.h b/src/mame/includes/vic10.h
index 5068bca4454..5068bca4454 100644
--- a/src/mess/includes/vic10.h
+++ b/src/mame/includes/vic10.h
diff --git a/src/mess/includes/vic20.h b/src/mame/includes/vic20.h
index 1c900d91acd..1c900d91acd 100644
--- a/src/mess/includes/vic20.h
+++ b/src/mame/includes/vic20.h
diff --git a/src/mame/includes/vicdual.h b/src/mame/includes/vicdual.h
index 4c2fe9801a2..140e27b9486 100644
--- a/src/mame/includes/vicdual.h
+++ b/src/mame/includes/vicdual.h
@@ -24,8 +24,15 @@ public:
m_coinstate_timer(*this, "coinstate"),
m_nsub_coinage_timer(*this, "nsub_coin"),
m_screen(*this, "screen"),
+ m_proms(*this, "proms"),
m_videoram(*this, "videoram"),
- m_characterram(*this, "characterram")
+ m_characterram(*this, "characterram"),
+ m_in0(*this, "IN0"),
+ m_in1(*this, "IN1"),
+ m_in2(*this, "IN2"),
+ m_coinage(*this, "COINAGE"),
+ m_color_bw(*this, "COLOR_BW"),
+ m_fake_lives(*this, "FAKE_LIVES")
{ }
required_device<cpu_device> m_maincpu;
@@ -36,10 +43,18 @@ public:
required_device<timer_device> m_coinstate_timer;
optional_device<timer_device> m_nsub_coinage_timer;
required_device<screen_device> m_screen;
+ optional_memory_region m_proms;
required_shared_ptr<UINT8> m_videoram;
required_shared_ptr<UINT8> m_characterram;
+ required_ioport m_in0;
+ required_ioport m_in1;
+ optional_ioport m_in2;
+ optional_ioport m_coinage;
+ optional_ioport m_color_bw;
+ optional_ioport_array<2> m_fake_lives;
+
UINT8 m_coin_status;
UINT8 m_palette_bank;
UINT8 m_samurai_protection_data;
diff --git a/src/mess/includes/victor9k.h b/src/mame/includes/victor9k.h
index 89c5c0b1c4b..89c5c0b1c4b 100644
--- a/src/mess/includes/victor9k.h
+++ b/src/mame/includes/victor9k.h
diff --git a/src/mess/includes/vidbrain.h b/src/mame/includes/vidbrain.h
index 3bddb8542d7..3bddb8542d7 100644
--- a/src/mess/includes/vidbrain.h
+++ b/src/mame/includes/vidbrain.h
diff --git a/src/mess/includes/vip.h b/src/mame/includes/vip.h
index 9d2baf33491..9d2baf33491 100644
--- a/src/mess/includes/vip.h
+++ b/src/mame/includes/vip.h
diff --git a/src/mess/includes/vixen.h b/src/mame/includes/vixen.h
index 73dc628b12d..73dc628b12d 100644
--- a/src/mess/includes/vixen.h
+++ b/src/mame/includes/vixen.h
diff --git a/src/mame/includes/volfied.h b/src/mame/includes/volfied.h
index 8633ab5ae70..a978e36f048 100644
--- a/src/mame/includes/volfied.h
+++ b/src/mame/includes/volfied.h
@@ -26,7 +26,6 @@ public:
/* memory pointers */
UINT16 * m_video_ram;
UINT8 * m_cchip_ram;
-// UINT16 * paletteram; // this currently uses generic palette handlers
/* video-related */
UINT16 m_video_ctrl;
diff --git a/src/mess/includes/vtech2.h b/src/mame/includes/vtech2.h
index 9a7efd680b0..9a7efd680b0 100644
--- a/src/mess/includes/vtech2.h
+++ b/src/mame/includes/vtech2.h
diff --git a/src/mess/includes/wangpc.h b/src/mame/includes/wangpc.h
index 9a796d9524d..9a796d9524d 100644
--- a/src/mess/includes/wangpc.h
+++ b/src/mame/includes/wangpc.h
diff --git a/src/mame/includes/warpwarp.h b/src/mame/includes/warpwarp.h
index d50cf1cef5f..dd485ab1f7d 100644
--- a/src/mame/includes/warpwarp.h
+++ b/src/mame/includes/warpwarp.h
@@ -12,8 +12,15 @@ public:
m_warpwarp_sound(*this, "warpwarp_custom"),
m_geebee_sound(*this, "geebee_custom"),
m_geebee_videoram(*this, "geebee_videoram"),
- m_videoram(*this, "videoram")
- { }
+ m_videoram(*this, "videoram"),
+ m_in0(*this, "IN0"),
+ m_in1(*this, "IN1"),
+ m_in2(*this, "IN2"),
+ m_dsw1(*this, "DSW1"),
+ m_volin1(*this, "VOLIN1"),
+ m_volin2(*this, "VOLIN2"),
+ m_ports(*this, portnames)
+ { }
required_device<cpu_device> m_maincpu;
required_device<gfxdecode_device> m_gfxdecode;
@@ -21,6 +28,14 @@ public:
optional_device<geebee_sound_device> m_geebee_sound;
optional_shared_ptr<UINT8> m_geebee_videoram;
optional_shared_ptr<UINT8> m_videoram;
+ optional_ioport m_in0;
+ optional_ioport m_in1;
+ optional_ioport m_in2;
+ optional_ioport m_dsw1;
+ optional_ioport m_volin1;
+ optional_ioport m_volin2;
+ DECLARE_IOPORT_ARRAY(portnames);
+ optional_ioport_array<4> m_ports;
int m_geebee_bgw;
int m_ball_on;
diff --git a/src/mame/includes/wgp.h b/src/mame/includes/wgp.h
index 6f2416a4326..c306b52ba2d 100644
--- a/src/mame/includes/wgp.h
+++ b/src/mame/includes/wgp.h
@@ -34,7 +34,12 @@ public:
m_tc0140syt(*this, "tc0140syt"),
m_tc0220ioc(*this, "tc0220ioc"),
m_gfxdecode(*this, "gfxdecode"),
- m_palette(*this, "palette") { }
+ m_palette(*this, "palette"),
+ m_z80bank(*this, "z80bank"),
+ m_steer(*this, "STEER"),
+ m_unknown(*this, "UNKNOWN"),
+ m_fake(*this, "FAKE")
+ { }
/* memory pointers */
required_shared_ptr<UINT16> m_spritemap;
@@ -66,6 +71,10 @@ public:
required_device<tc0220ioc_device> m_tc0220ioc;
required_device<gfxdecode_device> m_gfxdecode;
required_device<palette_device> m_palette;
+ required_memory_bank m_z80bank;
+ optional_ioport m_steer;
+ optional_ioport m_unknown;
+ optional_ioport m_fake;
DECLARE_WRITE16_MEMBER(cpua_ctrl_w);
DECLARE_READ16_MEMBER(lan_status_r);
diff --git a/src/mess/includes/wswan.h b/src/mame/includes/wswan.h
index 42f8b2b0fa8..42f8b2b0fa8 100644
--- a/src/mess/includes/wswan.h
+++ b/src/mame/includes/wswan.h
diff --git a/src/mess/includes/x07.h b/src/mame/includes/x07.h
index 2a7cd1e40e6..2a7cd1e40e6 100644
--- a/src/mess/includes/x07.h
+++ b/src/mame/includes/x07.h
diff --git a/src/mess/includes/x1.h b/src/mame/includes/x1.h
index 13ab9b6ce2e..13ab9b6ce2e 100644
--- a/src/mess/includes/x1.h
+++ b/src/mame/includes/x1.h
diff --git a/src/mess/includes/x68k.h b/src/mame/includes/x68k.h
index b9d34c61d91..b9d34c61d91 100644
--- a/src/mess/includes/x68k.h
+++ b/src/mame/includes/x68k.h
diff --git a/src/mame/includes/xbox.h b/src/mame/includes/xbox.h
new file mode 100644
index 00000000000..253d903b675
--- /dev/null
+++ b/src/mame/includes/xbox.h
@@ -0,0 +1,321 @@
+// license:BSD-3-Clause
+// copyright-holders:Samuele Zannoli
+
+struct OHCIEndpointDescriptor {
+ int mps; // MaximumPacketSize
+ int f; // Format
+ int k; // sKip
+ int s; // Speed
+ int d; // Direction
+ int en; // EndpointNumber
+ int fa; // FunctionAddress
+ UINT32 tailp; // TDQueueTailPointer
+ UINT32 headp; // TDQueueHeadPointer
+ UINT32 nexted; // NextED
+ int c; // toggleCarry
+ int h; // Halted
+ UINT32 word0;
+};
+
+struct OHCITransferDescriptor {
+ int cc; // ConditionCode
+ int ec; // ErrorCount
+ int t; // DataToggle
+ int di; // DelayInterrupt
+ int dp; // Direction/PID
+ int r; // bufferRounding
+ UINT32 cbp; // CurrentBufferPointer
+ UINT32 nexttd; // NextTD
+ UINT32 be; // BufferEnd
+ UINT32 word0;
+};
+
+struct OHCIIsochronousTransferDescriptor {
+ int cc; // ConditionCode
+ int fc; // FrameCount
+ int di; // DelayInterrupt
+ int sf; // StartingFrame
+ UINT32 bp0; // BufferPage0
+ UINT32 nexttd; // NextTD
+ UINT32 be; // BufferEnd
+ UINT32 offset[8]; // Offset/PacketStatusWord
+};
+
+enum OHCIRegisters {
+ HcRevision=0,
+ HcControl,
+ HcCommandStatus,
+ HcInterruptStatus,
+ HcInterruptEnable,
+ HcInterruptDisable,
+ HcHCCA,
+ HcPeriodCurrentED,
+ HcControlHeadED,
+ HcControlCurrentED,
+ HcBulkHeadED,
+ HcBulkCurrentED,
+ HcDoneHead,
+ HcFmInterval,
+ HcFmRemaining,
+ HcFmNumber,
+ HcPeriodicStart,
+ HcLSThreshold,
+ HcRhDescriptorA,
+ HcRhDescriptorB,
+ HcRhStatus,
+ HcRhPortStatus1
+};
+
+enum OHCIHostControllerFunctionalState {
+ UsbReset=0,
+ UsbResume,
+ UsbOperational,
+ UsbSuspend
+};
+
+enum OHCIInterrupt {
+ SchedulingOverrun=1,
+ WritebackDoneHead=2,
+ StartofFrame=4,
+ ResumeDetected=8,
+ UnrecoverableError=16,
+ FrameNumberOverflow=32,
+ RootHubStatusChange=64,
+ OwnershipChange=0x40000000,
+ MasterInterruptEnable=0x80000000
+};
+
+enum OHCICompletionCode {
+ NoError=0,
+ CRC,
+ BitStuffing,
+ DataToggleMismatch,
+ Stall,
+ DeviceNotResponding,
+ PIDCheckFailure,
+ UnexpectedPID,
+ DataOverrun,
+ DataUnderrun,
+ BufferOverrun=12,
+ BufferUnderrun,
+ NotAccessed=14
+};
+
+struct USBSetupPacket {
+ UINT8 bmRequestType;
+ UINT8 bRequest;
+ UINT16 wValue;
+ UINT16 wIndex;
+ UINT16 wLength;
+};
+
+struct USBStandardDeviceDscriptor {
+ UINT8 bLength;
+ UINT8 bDescriptorType;
+ UINT16 bcdUSB;
+ UINT8 bDeviceClass;
+ UINT8 bDeviceSubClass;
+ UINT8 bDeviceProtocol;
+ UINT8 bMaxPacketSize0;
+ UINT16 idVendor;
+ UINT16 idProduct;
+ UINT16 bcdDevice;
+ UINT8 iManufacturer;
+ UINT8 iProduct;
+ UINT8 iSerialNumber;
+ UINT8 bNumConfigurations;
+};
+
+struct USBStandardConfigurationDescriptor {
+ UINT8 bLength;
+ UINT8 bDescriptorType;
+ UINT16 wTotalLength;
+ UINT8 bNumInterfaces;
+ UINT8 bConfigurationValue;
+ UINT8 iConfiguration;
+ UINT8 bmAttributes;
+ UINT8 MaxPower;
+};
+
+struct USBStandardInterfaceDescriptor {
+ UINT8 bLength;
+ UINT8 bDescriptorType;
+ UINT8 bInterfaceNumber;
+ UINT8 bAlternateSetting;
+ UINT8 bNumEndpoints;
+ UINT8 bInterfaceClass;
+ UINT8 bInterfaceSubClass;
+ UINT8 bInterfaceProtocol;
+ UINT8 iInterface;
+};
+
+struct USBStandardEndpointDescriptor {
+ UINT8 bLength;
+ UINT8 bDescriptorType;
+ UINT8 bEndpointAddress;
+ UINT8 bmAttributes;
+ UINT16 wMaxPacketSize;
+ UINT8 bInterval;
+};
+
+enum USBPid {
+ SetupPid=0,
+ OutPid,
+ InPid
+};
+
+enum USBRequestCode {
+ GET_STATUS=0,
+ CLEAR_FEATURE=1,
+ SET_FEATURE=3,
+ SET_ADDRESS=5,
+ GET_DESCRIPTOR=6,
+ SET_DESCRIPTOR=7,
+ GET_CONFIGURATION=8,
+ SET_CONFIGURATION=9,
+ GET_INTERFACE=10,
+ SET_INTERFACE=11,
+ SYNCH_FRAME=12
+};
+
+enum USBDescriptorType {
+ DEVICE=1,
+ CONFIGURATION=2,
+ STRING=3,
+ INTERFACE=4,
+ ENDPOINT=5
+};
+
+class ohci_function_device {
+public:
+ ohci_function_device();
+ void execute_reset();
+ int execute_transfer(int address, int endpoint, int pid, UINT8 *buffer, int size);
+private:
+ int address;
+ int controldir;
+ int remain;
+ UINT8 *position;
+};
+
+class xbox_base_state : public driver_device
+{
+public:
+ xbox_base_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
+ nvidia_nv2a(NULL),
+ debug_irq_active(false),
+ debug_irq_number(0),
+ m_maincpu(*this, "maincpu") { }
+
+ DECLARE_READ32_MEMBER(geforce_r);
+ DECLARE_WRITE32_MEMBER(geforce_w);
+ DECLARE_READ32_MEMBER(usbctrl_r);
+ DECLARE_WRITE32_MEMBER(usbctrl_w);
+ DECLARE_READ32_MEMBER(smbus_r);
+ DECLARE_WRITE32_MEMBER(smbus_w);
+ DECLARE_READ32_MEMBER(audio_apu_r);
+ DECLARE_WRITE32_MEMBER(audio_apu_w);
+ DECLARE_READ32_MEMBER(audio_ac93_r);
+ DECLARE_WRITE32_MEMBER(audio_ac93_w);
+ DECLARE_READ32_MEMBER(dummy_r);
+ DECLARE_WRITE32_MEMBER(dummy_w);
+
+ void smbus_register_device(int address, int(*handler)(xbox_base_state &chs, int command, int rw, int data));
+ int smbus_pic16lc(int command, int rw, int data);
+ int smbus_cx25871(int command, int rw, int data);
+ int smbus_eeprom(int command, int rw, int data);
+ void usb_ohci_plug(int port, ohci_function_device *function);
+ void usb_ohci_interrupts();
+ void usb_ohci_read_endpoint_descriptor(UINT32 address);
+ void usb_ohci_writeback_endpoint_descriptor(UINT32 address);
+ void usb_ohci_read_transfer_descriptor(UINT32 address);
+ void usb_ohci_writeback_transfer_descriptor(UINT32 address);
+ void usb_ohci_read_isochronous_transfer_descriptor(UINT32 address);
+ void dword_write_le(UINT8 *addr, UINT32 d);
+ void word_write_le(UINT8 *addr, UINT16 d);
+ void debug_generate_irq(int irq, bool active);
+ virtual void hack_eeprom() {};
+ virtual void hack_usb() {};
+
+ void vblank_callback(screen_device &screen, bool state);
+ UINT32 screen_update_callback(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+
+ virtual void machine_start();
+ DECLARE_WRITE_LINE_MEMBER(xbox_pic8259_1_set_int_line);
+ DECLARE_READ8_MEMBER(get_slave_ack);
+ DECLARE_WRITE_LINE_MEMBER(xbox_pit8254_out0_changed);
+ DECLARE_WRITE_LINE_MEMBER(xbox_pit8254_out2_changed);
+ IRQ_CALLBACK_MEMBER(irq_callback);
+ TIMER_CALLBACK_MEMBER(audio_apu_timer);
+ TIMER_CALLBACK_MEMBER(usb_ohci_timer);
+
+ struct xbox_devices {
+ pic8259_device *pic8259_1;
+ pic8259_device *pic8259_2;
+ bus_master_ide_controller_device *ide;
+ } xbox_base_devs;
+ struct smbus_state {
+ int status;
+ int control;
+ int address;
+ int data;
+ int command;
+ int rw;
+ int(*devices[128])(xbox_base_state &chs, int command, int rw, int data);
+ UINT32 words[256 / 4];
+ } smbusst;
+ struct apu_state {
+ UINT32 memory[0x60000 / 4];
+ UINT32 gpdsp_sgaddress; // global processor scatter-gather
+ UINT32 gpdsp_sgblocks;
+ UINT32 gpdsp_address;
+ UINT32 epdsp_sgaddress; // encoder processor scatter-gather
+ UINT32 epdsp_sgblocks;
+ UINT32 unknown_sgaddress;
+ UINT32 unknown_sgblocks;
+ int voice_number;
+ UINT32 voices_heap_blockaddr[1024];
+ UINT64 voices_active[4]; //one bit for each voice: 1 playing 0 not
+ UINT32 voicedata_address;
+ int voices_frequency[256]; // sample rate
+ int voices_position[256]; // position in samples * 1000
+ int voices_position_start[256]; // position in samples * 1000
+ int voices_position_end[256]; // position in samples * 1000
+ int voices_position_increment[256]; // position increment every 1ms * 1000
+ emu_timer *timer;
+ address_space *space;
+ } apust;
+ struct ac97_state {
+ UINT32 mixer_regs[0x80 / 4];
+ UINT32 controller_regs[0x38 / 4];
+ } ac97st;
+ struct ohci_state {
+ UINT32 hc_regs[255];
+ struct {
+ ohci_function_device *function;
+ int delay;
+ } ports[4 + 1];
+ emu_timer *timer;
+ int state;
+ UINT32 framenumber;
+ UINT32 nextinterupted;
+ UINT32 nextbulked;
+ int interruptbulkratio;
+ int writebackdonehadcounter;
+ address_space *space;
+ UINT8 buffer[1024];
+ OHCIEndpointDescriptor endpoint_descriptor;
+ OHCITransferDescriptor transfer_descriptor;
+ OHCIIsochronousTransferDescriptor isochronous_transfer_descriptor;
+ } ohcist;
+ UINT8 pic16lc_buffer[0xff];
+ nv2a_renderer *nvidia_nv2a;
+ bool debug_irq_active;
+ int debug_irq_number;
+ required_device<cpu_device> m_maincpu;
+};
+
+ADDRESS_MAP_EXTERN(xbox_base_map, 32);
+ADDRESS_MAP_EXTERN(xbox_base_map_io, 32);
+MACHINE_CONFIG_EXTERN(xbox_base);
diff --git a/src/mess/includes/xerox820.h b/src/mame/includes/xerox820.h
index 797e5689b6e..797e5689b6e 100644
--- a/src/mess/includes/xerox820.h
+++ b/src/mame/includes/xerox820.h
diff --git a/src/mame/includes/xexex.h b/src/mame/includes/xexex.h
index 2b03361443e..d0be3200057 100644
--- a/src/mame/includes/xexex.h
+++ b/src/mame/includes/xexex.h
@@ -42,7 +42,6 @@ public:
/* memory pointers */
required_shared_ptr<UINT16> m_workram;
required_shared_ptr<UINT16> m_spriteram;
-// UINT16 * m_paletteram; // currently this uses generic palette handling
/* video-related */
int m_layer_colorbase[4];
diff --git a/src/mame/includes/xmen.h b/src/mame/includes/xmen.h
index 692c653db45..2f87182fbea 100644
--- a/src/mame/includes/xmen.h
+++ b/src/mame/includes/xmen.h
@@ -21,10 +21,8 @@ public:
m_k052109(*this, "k052109"),
m_k053246(*this, "k053246"),
m_k053251(*this, "k053251"),
- m_screen(*this, "screen") { }
-
- /* memory pointers */
-// UINT16 * m_paletteram; // currently this uses generic palette handling
+ m_screen(*this, "screen"),
+ m_z80bank(*this, "z80bank") { }
/* video-related */
int m_layer_colorbase[3];
@@ -41,7 +39,6 @@ public:
UINT16 * m_k053247_ram;
/* misc */
- UINT8 m_sound_curbank;
UINT8 m_vblank_irq_mask;
/* devices */
@@ -52,6 +49,8 @@ public:
required_device<k053247_device> m_k053246;
required_device<k053251_device> m_k053251;
required_device<screen_device> m_screen;
+
+ required_memory_bank m_z80bank;
DECLARE_WRITE16_MEMBER(eeprom_w);
DECLARE_READ16_MEMBER(sound_status_r);
DECLARE_WRITE16_MEMBER(sound_cmd_w);
@@ -67,7 +66,6 @@ public:
UINT32 screen_update_xmen6p_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void screen_eof_xmen6p(screen_device &screen, bool state);
TIMER_DEVICE_CALLBACK_MEMBER(xmen_scanline);
- void sound_reset_bank();
K052109_CB_MEMBER(tile_callback);
K053246_CB_MEMBER(sprite_callback);
};
diff --git a/src/mess/includes/xor100.h b/src/mame/includes/xor100.h
index 63a63a21ea3..63a63a21ea3 100644
--- a/src/mess/includes/xor100.h
+++ b/src/mame/includes/xor100.h
diff --git a/src/mame/includes/xxmissio.h b/src/mame/includes/xxmissio.h
index 1082e830cd3..48564dba069 100644
--- a/src/mame/includes/xxmissio.h
+++ b/src/mame/includes/xxmissio.h
@@ -49,6 +49,8 @@ public:
virtual void machine_start();
virtual void video_start();
+ DECLARE_PALETTE_DECODER(BBGGRRII);
+
UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, gfx_element *gfx);
};
diff --git a/src/mess/includes/z80ne.h b/src/mame/includes/z80ne.h
index b6d77971981..b6d77971981 100644
--- a/src/mess/includes/z80ne.h
+++ b/src/mame/includes/z80ne.h
diff --git a/src/mess/includes/z88.h b/src/mame/includes/z88.h
index 99a26354f5a..99a26354f5a 100644
--- a/src/mess/includes/z88.h
+++ b/src/mame/includes/z88.h
diff --git a/src/mess/includes/zx.h b/src/mame/includes/zx.h
index c6165fd30d3..c6165fd30d3 100644
--- a/src/mess/includes/zx.h
+++ b/src/mame/includes/zx.h
diff --git a/src/mame/layout/4004clk.lay b/src/mame/layout/4004clk.lay
new file mode 100644
index 00000000000..e3ec9522743
--- /dev/null
+++ b/src/mame/layout/4004clk.lay
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<mamelayout version="2">
+
+<!-- define elements -->
+
+ <element name="digit" defstate="10">
+ <rect><color red="0.1" green="0.06" blue="0.02" /></rect>
+ <text state="0" string="0"><color red="1.0" green="0.6" blue="0.2" /></text>
+ <text state="1" string="1"><color red="1.0" green="0.6" blue="0.2" /></text>
+ <text state="2" string="2"><color red="1.0" green="0.6" blue="0.2" /></text>
+ <text state="3" string="3"><color red="1.0" green="0.6" blue="0.2" /></text>
+ <text state="4" string="4"><color red="1.0" green="0.6" blue="0.2" /></text>
+ <text state="5" string="5"><color red="1.0" green="0.6" blue="0.2" /></text>
+ <text state="6" string="6"><color red="1.0" green="0.6" blue="0.2" /></text>
+ <text state="7" string="7"><color red="1.0" green="0.6" blue="0.2" /></text>
+ <text state="8" string="8"><color red="1.0" green="0.6" blue="0.2" /></text>
+ <text state="9" string="9"><color red="1.0" green="0.6" blue="0.2" /></text>
+ <text state="10" string=" "><color red="1.0" green="0.6" blue="0.2" /></text>
+ </element>
+
+ <element name="dot" defstate="0">
+ <disk state="0"><color red="0.1" green="0.06" blue="0.02" /></disk>
+ <disk state="1"><color red="1.0" green="0.6" blue="0.2" /></disk>
+ </element>
+
+
+<!-- build screen -->
+
+ <view name="Internal Layout">
+ <bounds left="-1" right="67.9" top="-1" bottom="16" />
+
+ <!-- 3*2 neon digits, separated by colons -->
+
+ <bezel name="nixie0" element="digit"><bounds x="0" y="0" width="10" height="15" /></bezel>
+ <bezel name="nixie1" element="digit"><bounds x="10.3" y="0" width="10" height="15" /></bezel>
+ <bezel name="nixie2" element="digit"><bounds x="23.3" y="0" width="10" height="15" /></bezel>
+ <bezel name="nixie3" element="digit"><bounds x="33.6" y="0" width="10" height="15" /></bezel>
+ <bezel name="nixie4" element="digit"><bounds x="46.6" y="0" width="10" height="15" /></bezel>
+ <bezel name="nixie5" element="digit"><bounds x="56.9" y="0" width="10" height="15" /></bezel>
+
+ <bezel name="neon1" element="dot"><bounds x="21.05" y="4.35" width="1.5" height="1.5" /></bezel>
+ <bezel name="neon0" element="dot"><bounds x="21.05" y="9.15" width="1.5" height="1.5" /></bezel>
+ <bezel name="neon2" element="dot"><bounds x="44.35" y="4.35" width="1.5" height="1.5" /></bezel>
+ <bezel name="neon3" element="dot"><bounds x="44.35" y="9.15" width="1.5" height="1.5" /></bezel>
+
+ </view>
+</mamelayout>
diff --git a/src/mess/layout/abc1600.lay b/src/mame/layout/abc1600.lay
index 36ece9eb926..36ece9eb926 100644
--- a/src/mess/layout/abc1600.lay
+++ b/src/mame/layout/abc1600.lay
diff --git a/src/mess/layout/acrnsys1.lay b/src/mame/layout/acrnsys1.lay
index 84afbd9321e..84afbd9321e 100644
--- a/src/mess/layout/acrnsys1.lay
+++ b/src/mame/layout/acrnsys1.lay
diff --git a/src/mame/layout/aim65.lay b/src/mame/layout/aim65.lay
new file mode 100644
index 00000000000..b250dc48b35
--- /dev/null
+++ b/src/mame/layout/aim65.lay
@@ -0,0 +1,135 @@
+<?xml version="1.0"?>
+<mamelayout version="2">
+
+<!-- 2007-07-30: Initial version. [Dirk Best] -->
+<!-- 2015-08-14: Eric Roberts version. [Best of the Best 2] -->
+
+
+<!-- define elements -->
+
+ <element name="digit" defstate="0">
+ <led16seg>
+ <!-- Note: Peak wavelength of the DL1416 chips = 660 nm -->
+ <color red="1.0" green="0.15" blue="0.2" />
+ </led16seg>
+ </element>
+
+ <element name="static_black"><rect><color red="0.0" green="0.0" blue="0.0" /></rect></element>
+ <element name="static_white"><rect><color red="0.85" green="0.84" blue="0.84" /></rect></element>
+
+
+<!-- build screen -->
+
+ <view name="Internal Layout">
+ <bounds left="50" top="20" right="770" bottom="141" />
+ <bezel element="static_black">
+ <bounds left="50" top="20" right="770" bottom="141" />
+ </bezel>
+
+ <!-- bezel -->
+
+ <bezel element="static_white"><bounds left="50" top="20" right="770" bottom="141" /></bezel>
+ <bezel element="static_black"><bounds left="53" top="23" right="767" bottom="138" /></bezel>
+
+ <bezel element="static_white"><bounds x="63" y="129" width="2" height="10" /></bezel>
+ <bezel element="static_white"><bounds x="97" y="135" width="2" height="4" /></bezel>
+ <bezel element="static_white"><bounds x="131" y="135" width="2" height="4" /></bezel>
+ <bezel element="static_white"><bounds x="165" y="135" width="2" height="4" /></bezel>
+ <bezel element="static_white"><bounds x="202" y="135" width="2" height="4" /></bezel>
+
+ <bezel element="static_white"><bounds x="236" y="129" width="2" height="10" /></bezel>
+ <bezel element="static_white"><bounds x="270" y="135" width="2" height="4" /></bezel>
+ <bezel element="static_white"><bounds x="304" y="135" width="2" height="4" /></bezel>
+ <bezel element="static_white"><bounds x="341" y="135" width="2" height="4" /></bezel>
+ <bezel element="static_white"><bounds x="375" y="135" width="2" height="4" /></bezel>
+
+ <bezel element="static_white"><bounds x="409" y="129" width="2" height="10" /></bezel>
+ <bezel element="static_white"><bounds x="443" y="135" width="2" height="4" /></bezel>
+ <bezel element="static_white"><bounds x="480" y="135" width="2" height="4" /></bezel>
+ <bezel element="static_white"><bounds x="514" y="135" width="2" height="4" /></bezel>
+ <bezel element="static_white"><bounds x="548" y="135" width="2" height="4" /></bezel>
+
+ <bezel element="static_white"><bounds x="582" y="129" width="2" height="10" /></bezel>
+ <bezel element="static_white"><bounds x="619" y="135" width="2" height="4" /></bezel>
+ <bezel element="static_white"><bounds x="653" y="135" width="2" height="4" /></bezel>
+ <bezel element="static_white"><bounds x="687" y="135" width="2" height="4" /></bezel>
+ <bezel element="static_white"><bounds x="721" y="135" width="2" height="4" /></bezel>
+
+ <bezel element="static_white"><bounds x="755" y="129" width="2" height="10" /></bezel>
+
+
+ <!-- digits -->
+
+ <!-- DL1416A DS1 -->
+ <bezel name="digit0" element="digit">
+ <bounds left="65" top="80" right="90" bottom="120" />
+ </bezel>
+ <bezel name="digit1" element="digit">
+ <bounds left="99" top="80" right="124" bottom="120" />
+ </bezel>
+ <bezel name="digit2" element="digit">
+ <bounds left="133" top="80" right="158" bottom="120" />
+ </bezel>
+ <bezel name="digit3" element="digit">
+ <bounds left="167" top="80" right="192" bottom="120" />
+ </bezel>
+
+ <!-- DL1416A DS2 -->
+ <bezel name="digit4" element="digit">
+ <bounds left="204" top="80" right="229" bottom="120" />
+ </bezel>
+ <bezel name="digit5" element="digit">
+ <bounds left="238" top="80" right="263" bottom="120" />
+ </bezel>
+ <bezel name="digit6" element="digit">
+ <bounds left="272" top="80" right="297" bottom="120" />
+ </bezel>
+ <bezel name="digit7" element="digit">
+ <bounds left="306" top="80" right="331" bottom="120" />
+ </bezel>
+
+ <!-- DL1416A DS3 -->
+ <bezel name="digit8" element="digit">
+ <bounds left="343" top="80" right="368" bottom="120" />
+ </bezel>
+ <bezel name="digit9" element="digit">
+ <bounds left="377" top="80" right="402" bottom="120" />
+ </bezel>
+ <bezel name="digit10" element="digit">
+ <bounds left="411" top="80" right="436" bottom="120" />
+ </bezel>
+ <bezel name="digit11" element="digit">
+ <bounds left="445" top="80" right="470" bottom="120" />
+ </bezel>
+
+ <!-- DL1416A DS4 -->
+ <bezel name="digit12" element="digit">
+ <bounds left="482" top="80" right="507" bottom="120" />
+ </bezel>
+ <bezel name="digit13" element="digit">
+ <bounds left="516" top="80" right="541" bottom="120" />
+ </bezel>
+ <bezel name="digit14" element="digit">
+ <bounds left="550" top="80" right="575" bottom="120" />
+ </bezel>
+ <bezel name="digit15" element="digit">
+ <bounds left="584" top="80" right="609" bottom="120" />
+ </bezel>
+
+ <!-- DL1416A DS5 -->
+ <bezel name="digit16" element="digit">
+ <bounds left="621" top="80" right="646" bottom="120" />
+ </bezel>
+ <bezel name="digit17" element="digit">
+ <bounds left="655" top="80" right="680" bottom="120" />
+ </bezel>
+ <bezel name="digit18" element="digit">
+ <bounds left="689" top="80" right="714" bottom="120" />
+ </bezel>
+ <bezel name="digit19" element="digit">
+ <bounds left="723" top="80" right="748" bottom="120" />
+ </bezel>
+
+ </view>
+
+</mamelayout>
diff --git a/src/mess/layout/aim65_40.lay b/src/mame/layout/aim65_40.lay
index 1d9aa5b0421..1d9aa5b0421 100644
--- a/src/mess/layout/aim65_40.lay
+++ b/src/mame/layout/aim65_40.lay
diff --git a/src/mess/layout/amaztron.lay b/src/mame/layout/amaztron.lay
index 8b31f239489..8b31f239489 100644
--- a/src/mess/layout/amaztron.lay
+++ b/src/mame/layout/amaztron.lay
diff --git a/src/mess/layout/amico2k.lay b/src/mame/layout/amico2k.lay
index 7151895247f..7151895247f 100644
--- a/src/mess/layout/amico2k.lay
+++ b/src/mame/layout/amico2k.lay
diff --git a/src/mess/layout/amiga.lay b/src/mame/layout/amiga.lay
index 44428fa3392..44428fa3392 100644
--- a/src/mess/layout/amiga.lay
+++ b/src/mame/layout/amiga.lay
diff --git a/src/mess/layout/apollo.lay b/src/mame/layout/apollo.lay
index 06c90f31baf..06c90f31baf 100644
--- a/src/mess/layout/apollo.lay
+++ b/src/mame/layout/apollo.lay
diff --git a/src/mess/layout/apollo_15i.lay b/src/mame/layout/apollo_15i.lay
index f42e8329954..f42e8329954 100644
--- a/src/mess/layout/apollo_15i.lay
+++ b/src/mame/layout/apollo_15i.lay
diff --git a/src/mess/layout/apollo_dsp.lay b/src/mame/layout/apollo_dsp.lay
index 2ee7b0fced1..2ee7b0fced1 100644
--- a/src/mess/layout/apollo_dsp.lay
+++ b/src/mame/layout/apollo_dsp.lay
diff --git a/src/mess/layout/apricotp.lay b/src/mame/layout/apricotp.lay
index 95af108219e..95af108219e 100644
--- a/src/mess/layout/apricotp.lay
+++ b/src/mame/layout/apricotp.lay
diff --git a/src/mame/layout/aquastge.lay b/src/mame/layout/aquastge.lay
new file mode 100644
index 00000000000..939212ff98d
--- /dev/null
+++ b/src/mame/layout/aquastge.lay
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<mamelayout version="2">
+
+ <!-- exact ratio unknown, could be wider -->
+ <view name="Dual Wide Screens">
+ <screen index="0">
+ <bounds left="0" top="0" right="900" bottom="450" />
+ </screen>
+ <screen index="1">
+ <bounds left="900" top="0" right="1800" bottom="450" />
+ </screen>
+
+ </view>
+
+</mamelayout>
diff --git a/src/mess/layout/astro.lay b/src/mame/layout/astro.lay
index 978e522d543..978e522d543 100644
--- a/src/mess/layout/astro.lay
+++ b/src/mame/layout/astro.lay
diff --git a/src/mess/layout/avigo.lay b/src/mame/layout/avigo.lay
index 6db8cfcfd27..6db8cfcfd27 100644
--- a/src/mess/layout/avigo.lay
+++ b/src/mame/layout/avigo.lay
diff --git a/src/mess/layout/babbage.lay b/src/mame/layout/babbage.lay
index b493268fd4a..b493268fd4a 100644
--- a/src/mess/layout/babbage.lay
+++ b/src/mame/layout/babbage.lay
diff --git a/src/mess/layout/bankshot.lay b/src/mame/layout/bankshot.lay
index 8ddcf5c085b..8ddcf5c085b 100644
--- a/src/mess/layout/bankshot.lay
+++ b/src/mame/layout/bankshot.lay
diff --git a/src/mess/layout/bbc.lay b/src/mame/layout/bbc.lay
index 0d1e4479146..0d1e4479146 100644
--- a/src/mess/layout/bbc.lay
+++ b/src/mame/layout/bbc.lay
diff --git a/src/mess/layout/beta.lay b/src/mame/layout/beta.lay
index dc9af5cfbf8..dc9af5cfbf8 100644
--- a/src/mess/layout/beta.lay
+++ b/src/mame/layout/beta.lay
diff --git a/src/mess/layout/bigtrak.lay b/src/mame/layout/bigtrak.lay
index c74d1d04e82..c74d1d04e82 100644
--- a/src/mess/layout/bigtrak.lay
+++ b/src/mame/layout/bigtrak.lay
diff --git a/src/mess/layout/bitgrpha.lay b/src/mame/layout/bitgrpha.lay
index fa3235d9489..fa3235d9489 100644
--- a/src/mess/layout/bitgrpha.lay
+++ b/src/mame/layout/bitgrpha.lay
diff --git a/src/mess/layout/bitgrphb.lay b/src/mame/layout/bitgrphb.lay
index 8def87c47da..8def87c47da 100644
--- a/src/mess/layout/bitgrphb.lay
+++ b/src/mame/layout/bitgrphb.lay
diff --git a/src/mess/layout/bob85.lay b/src/mame/layout/bob85.lay
index 28e8392eec5..28e8392eec5 100644
--- a/src/mess/layout/bob85.lay
+++ b/src/mame/layout/bob85.lay
diff --git a/src/mess/layout/borisdpl.lay b/src/mame/layout/borisdpl.lay
index 2ca7ceae315..2ca7ceae315 100644
--- a/src/mess/layout/borisdpl.lay
+++ b/src/mame/layout/borisdpl.lay
diff --git a/src/mess/layout/bridgec3.lay b/src/mame/layout/bridgec3.lay
index 3fbbe99deb3..3fbbe99deb3 100644
--- a/src/mess/layout/bridgec3.lay
+++ b/src/mame/layout/bridgec3.lay
diff --git a/src/mess/layout/c80.lay b/src/mame/layout/c80.lay
index d12f973dfe1..d12f973dfe1 100644
--- a/src/mess/layout/c80.lay
+++ b/src/mame/layout/c80.lay
diff --git a/src/mess/layout/cc40.lay b/src/mame/layout/cc40.lay
index ea366ddc0c1..ea366ddc0c1 100644
--- a/src/mess/layout/cc40.lay
+++ b/src/mame/layout/cc40.lay
diff --git a/src/mess/layout/chessmst.lay b/src/mame/layout/chessmst.lay
index 40a623faf32..40a623faf32 100644
--- a/src/mess/layout/chessmst.lay
+++ b/src/mame/layout/chessmst.lay
diff --git a/src/mess/layout/chesstrv.lay b/src/mame/layout/chesstrv.lay
index 34e9509d990..34e9509d990 100644
--- a/src/mess/layout/chesstrv.lay
+++ b/src/mame/layout/chesstrv.lay
diff --git a/src/mame/layout/chexx.lay b/src/mame/layout/chexx.lay
new file mode 100644
index 00000000000..b8f8701cb4f
--- /dev/null
+++ b/src/mame/layout/chexx.lay
@@ -0,0 +1,75 @@
+<?xml version="1.0"?>
+<mamelayout version="2">
+
+ <!-- 7segs -->
+ <element name="digit">
+ <led7seg>
+ <color red="1.0" green="0.0" blue="0.0"/>
+ </led7seg>
+ </element>
+
+ <!-- Led -->
+ <element name="led" defstate="0">
+ <rect>
+ <bounds x="0" y="0" width="1.5" height="1.0"/>
+ <color red="1.0" green="0.96" blue="0.94"/>
+ </rect>
+ <rect state="0">
+ <bounds x="0.05" y="0.05" width="1.4" height="0.9"/>
+ <color red="0.5" green="0.0" blue="0.0"/>
+ </rect>
+ <rect state="1">
+ <bounds x="0.05" y="0.05" width="1.4" height="0.9"/>
+ <color red="1.0" green="0.0" blue="0.0"/>
+ </rect>
+ </element>
+
+ <!-- Lamp -->
+ <element name="lamp" defstate="0">
+ <disk state="0">
+ <color red="0.2" green="0.0" blue="0.0"/>
+ </disk>
+ <disk state="1">
+ <color red="1.0" green="0.0" blue="0.0"/>
+ </disk>
+ </element>
+
+ <view name="Score Board (No Artwork)">
+ <!-- P1 score -->
+ <backdrop name="digit0" element="digit">
+ <bounds x="0" y="0" width="1" height="2"/>
+ </backdrop>
+ <backdrop name="digit1" element="digit">
+ <bounds x="1" y="0" width="1" height="2"/>
+ </backdrop>
+
+ <!-- P1 goal lamp -->
+ <backdrop name="lamp0" element="lamp">
+ <bounds x="0.75" y="-0.5" width="0.5" height="0.5"/>
+ </backdrop>
+
+ <!-- Period being played -->
+ <backdrop name="led0" element="led">
+ <bounds x="3.0" y="-0.33" width="0.5" height="0.33"/>
+ </backdrop>
+ <backdrop name="led1" element="led">
+ <bounds x="3.5" y="-0.33" width="0.5" height="0.33"/>
+ </backdrop>
+ <backdrop name="led2" element="led">
+ <bounds x="4.0" y="-0.33" width="0.5" height="0.33"/>
+ </backdrop>
+
+ <!-- P2 score -->
+ <backdrop name="digit2" element="digit">
+ <bounds x="5.5" y="0" width="1" height="2"/>
+ </backdrop>
+ <backdrop name="digit3" element="digit">
+ <bounds x="6.5" y="0" width="1" height="2"/>
+ </backdrop>
+
+ <!-- P2 goal lamp -->
+ <backdrop name="lamp1" element="lamp">
+ <bounds x="6.25" y="-0.5" width="0.5" height="0.5"/>
+ </backdrop>
+ </view>
+</mamelayout>
diff --git a/src/mame/layout/cmezspin.lay b/src/mame/layout/cmezspin.lay
new file mode 100644
index 00000000000..41035bceda8
--- /dev/null
+++ b/src/mame/layout/cmezspin.lay
@@ -0,0 +1,262 @@
+<?xml version="1.0"?>
+<mamelayout version="2">
+<!--
+ Cherry Master control panel
+ May or may not match arrangement/colour of real control panel
+ Written by Vas Crabb.
+-->
+
+<!-- define button-lamps -->
+
+ <element name="big" defstate="0">
+ <rect state="1">
+ <color red="1.0" green="0.0" blue="0.0" />
+ </rect>
+ <rect state="0">
+ <color red="0.5" green="0.0" blue="0.0" />
+ </rect>
+ <text string="BIG">
+ <color red="0.0" green="0.0" blue="0.0" />
+ <bounds x="0" y="0.1" width="1" height="0.4" />
+ </text>
+ <text string="STOP 3">
+ <color red="0.0" green="0.0" blue="0.0" />
+ <bounds x="0" y="0.5" width="1" height="0.4" />
+ </text>
+ </element>
+
+ <element name="small" defstate="0">
+ <rect state="1">
+ <color red="1.0" green="0.0" blue="0.0" />
+ </rect>
+ <rect state="0">
+ <color red="0.5" green="0.0" blue="0.0" />
+ </rect>
+ <text string="SMALL/INFO">
+ <color red="0.0" green="0.0" blue="0.0" />
+ <bounds x="0" y="0.1" width="1" height="0.4" />
+ </text>
+ <text string="STOP 2">
+ <color red="0.0" green="0.0" blue="0.0" />
+ <bounds x="0" y="0.5" width="1" height="0.4" />
+ </text>
+ </element>
+
+ <element name="take" defstate="0">
+ <rect state="1">
+ <color red="1.0" green="0.5" blue="0.0" />
+ </rect>
+ <rect state="0">
+ <color red="0.5" green="0.25" blue="0.0" />
+ </rect>
+ <text string="TAKE">
+ <color red="0.0" green="0.0" blue="0.0" />
+ <bounds x="0" y="0.1" width="1" height="0.4" />
+ </text>
+ <text string="STOP ALL">
+ <color red="0.0" green="0.0" blue="0.0" />
+ <bounds x="0" y="0.5" width="1" height="0.4" />
+ </text>
+ </element>
+
+ <element name="dup" defstate="0">
+ <rect state="1">
+ <color red="1.0" green="0.5" blue="0.0" />
+ </rect>
+ <rect state="0">
+ <color red="0.5" green="0.25" blue="0.0" />
+ </rect>
+ <text string="DOUBLE">
+ <color red="0.0" green="0.0" blue="0.0" />
+ <bounds x="0" y="0.1" width="1" height="0.4" />
+ </text>
+ <text string="STOP 1">
+ <color red="0.0" green="0.0" blue="0.0" />
+ <bounds x="0" y="0.5" width="1" height="0.4" />
+ </text>
+ </element>
+
+ <element name="start" defstate="0">
+ <rect state="1">
+ <color red="0.0" green="1.0" blue="0.0" />
+ </rect>
+ <rect state="0">
+ <color red="0.0" green="0.15" blue="0.0" />
+ </rect>
+ <text string="START">
+ <color red="0.0" green="0.0" blue="0.0" />
+ <bounds x="0" y="0.3" width="1" height="0.4" />
+ </text>
+ </element>
+
+ <element name="bet" defstate="0">
+ <rect state="1">
+ <color red="1.0" green="0.0" blue="1.0" />
+ </rect>
+ <rect state="0">
+ <color red="0.15" green="0.0" blue="0.15" />
+ </rect>
+ <text string="BET">
+ <color red="0.0" green="0.0" blue="0.0" />
+ <bounds x="0" y="0.3" width="1" height="0.4" />
+ </text>
+ </element>
+
+
+<!-- define basic elements -->
+
+ <element name="cpanel">
+ <rect>
+ <color red="0.0" green="0.0" blue="0.0" />
+ </rect>
+ </element>
+
+ <element name="stop_b" defstate="0">
+ <rect state="1">
+ <color red="0.7" green="0.0" blue="0.0" />
+ </rect>
+ <rect state="0">
+ <color red="0.4" green="0.0" blue="0.0" />
+ </rect>
+ </element>
+
+ <element name="bet_b" defstate="0">
+ <rect state="1">
+ <color red="0.7" green="0.0" blue="0.7" />
+ </rect>
+ <rect state="0">
+ <color red="0.1" green="0.0" blue="0.1" />
+ </rect>
+ </element>
+
+ <element name="take_b" defstate="0">
+ <rect state="1">
+ <color red="0.7" green="0.35" blue="0.0" />
+ </rect>
+ <rect state="0">
+ <color red="0.4" green="0.2" blue="0.0" />
+ </rect>
+ </element>
+
+ <element name="start_b" defstate="0">
+ <rect state="1">
+ <color red="0.0" green="0.7" blue="0.0" />
+ </rect>
+ <rect state="0">
+ <color red="0.0" green="0.1" blue="0.0" />
+ </rect>
+ </element>
+
+
+
+<!-- define cpanel degradee elements -->
+
+
+ <element name="cpanel1">
+ <rect>
+ <color red="0.20" green="0.20" blue="0.20" />
+ </rect>
+ </element>
+
+ <element name="cpanel2">
+ <rect>
+ <color red="0.15" green="0.15" blue="0.15" />
+ </rect>
+ </element>
+
+ <element name="cpanel3">
+ <rect>
+ <color red="0.10" green="0.10" blue="0.10" />
+ </rect>
+ </element>
+
+ <element name="cpanel4">
+ <rect>
+ <color red="0.05" green="0.05" blue="0.05" />
+ </rect>
+ </element>
+
+
+<!-- define background -->
+
+ <view name="Button Lamps">
+ <screen index="0">
+ <bounds left="0" top="0" right="4" bottom="3" />
+ </screen>
+
+ <bezel element="cpanel">
+ <bounds left="0" right="4" top="3" bottom="3.40" />
+ </bezel>
+
+ <bezel element="cpanel1">
+ <bounds left="0" right="4" top="3.01" bottom="3.39" />
+ </bezel>
+
+ <bezel element="cpanel2">
+ <bounds left="0" right="4" top="3.02" bottom="3.38" />
+ </bezel>
+
+ <bezel element="cpanel3">
+ <bounds left="0" right="4" top="3.03" bottom="3.37" />
+ </bezel>
+
+ <bezel element="cpanel4">
+ <bounds left="0" right="4" top="3.04" bottom="3.36" />
+ </bezel>
+
+ <bezel element="cpanel">
+ <bounds left="0" right="4" top="3.05" bottom="3.35" />
+ </bezel>
+
+
+<!-- define lamps -->
+
+ <bezel name="lamp3" element="bet_b" inputtag="IN0" inputmask="0x20">
+ <bounds x="0.05" y="3.08" width="0.45" height="0.24" />
+ </bezel>
+ <bezel name="lamp3" element="bet" inputtag="IN0" inputmask="0x20">
+ <bounds x="0.07" y="3.10" width="0.41" height="0.20" />
+ </bezel>
+
+
+ <bezel name="lamp2" element="take_b" inputtag="IN0" inputmask="0x10">
+ <bounds x="0.75" y="3.08" width="0.50" height="0.24" />
+ </bezel>
+ <bezel name="lamp2" element="take" inputtag="IN0" inputmask="0x10">
+ <bounds x="0.77" y="3.10" width="0.46" height="0.20" />
+ </bezel>
+
+
+ <bezel name="lamp1" element="take_b" inputtag="IN0" inputmask="0x08">
+ <bounds x="1.4" y="3.08" width="0.50" height="0.24" />
+ </bezel>
+ <bezel name="lamp1" element="dup" inputtag="IN0" inputmask="0x08">
+ <bounds x="1.42" y="3.10" width="0.46" height="0.20" />
+ </bezel>
+
+
+ <bezel name="lamp4" element="stop_b" inputtag="IN0" inputmask="0x40">
+ <bounds x="2.05" y="3.08" width="0.50" height="0.24" />
+ </bezel>
+ <bezel name="lamp4" element="small" inputtag="IN0" inputmask="0x40">
+ <bounds x="2.07" y="3.10" width="0.46" height="0.20" />
+ </bezel>
+
+
+ <bezel name="lamp0" element="stop_b" inputtag="IN0" inputmask="0x04">
+ <bounds x="2.7" y="3.08" width="0.50" height="0.24" />
+ </bezel>
+ <bezel name="lamp0" element="big" inputtag="IN0" inputmask="0x04">
+ <bounds x="2.72" y="3.10" width="0.46" height="0.20" />
+ </bezel>
+
+
+ <bezel name="lamp5" element="start_b" inputtag="IN0" inputmask="0x80">
+ <bounds x="3.45" y="3.08" width="0.50" height="0.24" />
+ </bezel>
+ <bezel name="lamp5" element="start" inputtag="IN0" inputmask="0x80">
+ <bounds x="3.47" y="3.10" width="0.46" height="0.20" />
+ </bezel>
+
+ </view>
+</mamelayout>
diff --git a/src/mess/layout/cnsector.lay b/src/mame/layout/cnsector.lay
index 5bd9aaa0d48..5bd9aaa0d48 100644
--- a/src/mess/layout/cnsector.lay
+++ b/src/mame/layout/cnsector.lay
diff --git a/src/mess/layout/coco3.lay b/src/mame/layout/coco3.lay
index bebd45729eb..bebd45729eb 100644
--- a/src/mess/layout/coco3.lay
+++ b/src/mame/layout/coco3.lay
diff --git a/src/mess/layout/comp4.lay b/src/mame/layout/comp4.lay
index 5cca5e96dd9..5cca5e96dd9 100644
--- a/src/mess/layout/comp4.lay
+++ b/src/mame/layout/comp4.lay
diff --git a/src/mess/layout/cosmicos.lay b/src/mame/layout/cosmicos.lay
index 68bb3a05370..68bb3a05370 100644
--- a/src/mess/layout/cosmicos.lay
+++ b/src/mame/layout/cosmicos.lay
diff --git a/src/mess/layout/cp1.lay b/src/mame/layout/cp1.lay
index b5dbfbc1789..b5dbfbc1789 100644
--- a/src/mess/layout/cp1.lay
+++ b/src/mame/layout/cp1.lay
diff --git a/src/mess/layout/cvicny.lay b/src/mame/layout/cvicny.lay
index 9e41a6d4300..9e41a6d4300 100644
--- a/src/mess/layout/cvicny.lay
+++ b/src/mame/layout/cvicny.lay
diff --git a/src/mame/layout/dataman.lay b/src/mame/layout/dataman.lay
new file mode 100644
index 00000000000..fcfae353f4c
--- /dev/null
+++ b/src/mame/layout/dataman.lay
@@ -0,0 +1,78 @@
+<?xml version="1.0"?>
+<mamelayout version="2">
+
+<!-- define elements -->
+
+ <element name="digit" defstate="0">
+ <led7seg><color red="0.2" green="1.0" blue="0.85" /></led7seg>
+ </element>
+
+ <element name="lamp_dot" defstate="0">
+ <disk state="1"><color red="0.2" green="1.0" blue="0.85" /></disk>
+ <disk state="0"><color red="0.0235" green="0.1255" blue="0.1059" /></disk>
+ </element>
+ <element name="lamp_dash" defstate="0">
+ <rect state="1"><color red="0.2" green="1.0" blue="0.85" /></rect>
+ <rect state="0"><color red="0.0235" green="0.1255" blue="0.1059" /></rect>
+ </element>
+ <element name="lamp_slash" defstate="0">
+ <text string="/" state="1"><color red="0.2" green="1.0" blue="0.85" /></text>
+ <text string="/" state="0"><color red="0.0235" green="0.1255" blue="0.1059" /></text>
+ </element>
+ <element name="lamp_backslash" defstate="0">
+ <text string="\" state="1"><color red="0.2" green="1.0" blue="0.85" /></text>
+ <text string="\" state="0"><color red="0.0235" green="0.1255" blue="0.1059" /></text>
+ </element>
+
+
+
+<!-- build screen -->
+
+ <view name="Internal Layout">
+ <bounds left="0" right="105.5" top="0" bottom="15" />
+
+ <bezel name="digit0" element="digit"><bounds x="0" y="0" width="10" height="15" /></bezel>
+ <bezel name="digit1" element="digit"><bounds x="10" y="0" width="10" height="15" /></bezel>
+
+ <bezel name="digit3" element="digit"><bounds x="30" y="0" width="10" height="15" /></bezel>
+ <bezel name="digit4" element="digit"><bounds x="40" y="0" width="10" height="15" /></bezel>
+
+ <bezel name="digit5" element="digit"><bounds x="60" y="0" width="10" height="15" /></bezel>
+ <bezel name="digit6" element="digit"><bounds x="70" y="0" width="10" height="15" /></bezel>
+ <bezel name="digit7" element="digit"><bounds x="80" y="0" width="10" height="15" /></bezel>
+
+<!-- math symbols custom digit -->
+
+ <bezel name="lamp26" element="lamp_dash"><bounds x="21.5" y="7.35" width="7" height="0.5" /></bezel>
+
+ <bezel name="lamp21" element="lamp_dash"><bounds x="24.75" y="3.7" width="0.5" height="3.0" /></bezel>
+ <bezel name="lamp24" element="lamp_dash"><bounds x="24.75" y="8.5" width="0.5" height="3.0" /></bezel>
+
+ <bezel name="lamp20" element="lamp_dot"><bounds x="24.25" y="1.8" width="1.5" height="1.5" /></bezel>
+ <bezel name="lamp23" element="lamp_dot"><bounds x="24.25" y="11.9" width="1.5" height="1.5" /></bezel>
+
+ <bezel name="lamp25" element="lamp_slash"><bounds x="24.3" y="-0.5" width="5" height="7.5" /></bezel>
+ <bezel name="lamp25" element="lamp_slash"><bounds x="20.7" y="7" width="5" height="7.5" /></bezel>
+ <bezel name="lamp25" element="lamp_backslash"><bounds x="20.7" y="-0.5" width="5" height="7.5" /></bezel>
+ <bezel name="lamp25" element="lamp_backslash"><bounds x="24.3" y="7" width="5" height="7.5" /></bezel>
+
+<!-- equals sign digit -->
+
+ <bezel name="lamp47" element="lamp_dash"><bounds x="51.5" y="3.7" width="7" height="1" /></bezel>
+ <bezel name="lamp47" element="lamp_dash"><bounds x="51.5" y="10.5" width="7" height="1" /></bezel>
+
+<!-- "bulls eye" digit, it's supposed to be a segmented circle but that's not really possible to draw here -->
+
+ <bezel name="lamp86" element="lamp_dash"><bounds x="92" y="3" width="1" height="4" /></bezel>
+ <bezel name="lamp84" element="lamp_dash"><bounds x="92" y="8" width="1" height="4" /></bezel>
+ <bezel name="lamp81" element="lamp_dash"><bounds x="104" y="3" width="1" height="4" /></bezel>
+ <bezel name="lamp87" element="lamp_dash"><bounds x="104" y="8" width="1" height="4" /></bezel>
+
+ <bezel name="lamp85" element="lamp_dash"><bounds x="94" y="1" width="4" height="1" /></bezel>
+ <bezel name="lamp80" element="lamp_dash"><bounds x="99" y="1" width="4" height="1" /></bezel>
+ <bezel name="lamp83" element="lamp_dash"><bounds x="94" y="13" width="4" height="1" /></bezel>
+ <bezel name="lamp82" element="lamp_dash"><bounds x="99" y="13" width="4" height="1" /></bezel>
+
+
+ </view>
+</mamelayout>
diff --git a/src/mess/layout/digel804.lay b/src/mame/layout/digel804.lay
index 5e4f498b46a..5e4f498b46a 100644
--- a/src/mess/layout/digel804.lay
+++ b/src/mame/layout/digel804.lay
diff --git a/src/mess/layout/dmv.lay b/src/mame/layout/dmv.lay
index 4d5753fcb8b..4d5753fcb8b 100644
--- a/src/mess/layout/dmv.lay
+++ b/src/mame/layout/dmv.lay
diff --git a/src/mess/layout/dolphunk.lay b/src/mame/layout/dolphunk.lay
index aebc190f91c..aebc190f91c 100644
--- a/src/mess/layout/dolphunk.lay
+++ b/src/mame/layout/dolphunk.lay
diff --git a/src/mess/layout/eacc.lay b/src/mame/layout/eacc.lay
index b65f22a056a..b65f22a056a 100644
--- a/src/mess/layout/eacc.lay
+++ b/src/mame/layout/eacc.lay
diff --git a/src/mess/layout/ebaskb2.lay b/src/mame/layout/ebaskb2.lay
index 5a0a3d376f7..5a0a3d376f7 100644
--- a/src/mess/layout/ebaskb2.lay
+++ b/src/mame/layout/ebaskb2.lay
diff --git a/src/mess/layout/ebball.lay b/src/mame/layout/ebball.lay
index 48bcb51853b..48bcb51853b 100644
--- a/src/mess/layout/ebball.lay
+++ b/src/mame/layout/ebball.lay
diff --git a/src/mess/layout/ebball2.lay b/src/mame/layout/ebball2.lay
index 91d3427f5e3..91d3427f5e3 100644
--- a/src/mess/layout/ebball2.lay
+++ b/src/mame/layout/ebball2.lay
diff --git a/src/mess/layout/ebball3.lay b/src/mame/layout/ebball3.lay
index 3e6a5df9031..3e6a5df9031 100644
--- a/src/mess/layout/ebball3.lay
+++ b/src/mame/layout/ebball3.lay
diff --git a/src/mess/layout/efball.lay b/src/mame/layout/efball.lay
index f46120fae29..f46120fae29 100644
--- a/src/mess/layout/efball.lay
+++ b/src/mame/layout/efball.lay
diff --git a/src/mess/layout/efootb4.lay b/src/mame/layout/efootb4.lay
index 71266b11448..71266b11448 100644
--- a/src/mess/layout/efootb4.lay
+++ b/src/mame/layout/efootb4.lay
diff --git a/src/mess/layout/einvader.lay b/src/mame/layout/einvader.lay
index 81021899dbf..81021899dbf 100644
--- a/src/mess/layout/einvader.lay
+++ b/src/mame/layout/einvader.lay
diff --git a/src/mess/layout/einvaderc.lay b/src/mame/layout/einvaderc.lay
index 0916b783796..0916b783796 100644
--- a/src/mess/layout/einvaderc.lay
+++ b/src/mame/layout/einvaderc.lay
diff --git a/src/mess/layout/elecbowl.lay b/src/mame/layout/elecbowl.lay
index 1aab1670364..1aab1670364 100644
--- a/src/mess/layout/elecbowl.lay
+++ b/src/mame/layout/elecbowl.lay
diff --git a/src/mess/layout/elecdet.lay b/src/mame/layout/elecdet.lay
index 3024763cbcf..3024763cbcf 100644
--- a/src/mess/layout/elecdet.lay
+++ b/src/mame/layout/elecdet.lay
diff --git a/src/mess/layout/elekscmp.lay b/src/mame/layout/elekscmp.lay
index edea5e4c461..edea5e4c461 100644
--- a/src/mess/layout/elekscmp.lay
+++ b/src/mame/layout/elekscmp.lay
diff --git a/src/mess/layout/elf2.lay b/src/mame/layout/elf2.lay
index 935ea70cd4b..935ea70cd4b 100644
--- a/src/mess/layout/elf2.lay
+++ b/src/mame/layout/elf2.lay
diff --git a/src/mess/layout/esq1by22.lay b/src/mame/layout/esq1by22.lay
index 8667054f8eb..8667054f8eb 100644
--- a/src/mess/layout/esq1by22.lay
+++ b/src/mame/layout/esq1by22.lay
diff --git a/src/mess/layout/esq2by40.lay b/src/mame/layout/esq2by40.lay
index 26bba421d9f..26bba421d9f 100644
--- a/src/mess/layout/esq2by40.lay
+++ b/src/mame/layout/esq2by40.lay
diff --git a/src/mess/layout/et3400.lay b/src/mame/layout/et3400.lay
index aef0cbeedc0..aef0cbeedc0 100644
--- a/src/mess/layout/et3400.lay
+++ b/src/mame/layout/et3400.lay
diff --git a/src/mess/layout/fb01.lay b/src/mame/layout/fb01.lay
index f88d5f6de8b..f88d5f6de8b 100644
--- a/src/mess/layout/fb01.lay
+++ b/src/mame/layout/fb01.lay
diff --git a/src/mame/layout/fccpu1.lay b/src/mame/layout/fccpu1.lay
new file mode 100644
index 00000000000..0655960a266
--- /dev/null
+++ b/src/mame/layout/fccpu1.lay
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<!-- fccpu1.lay -->
+<!-- 2015-07-27: Initial version. [JLE] -->
+<mamelayout version="2">
+ <element name="front">
+ <image file="front.png" />
+ </element>
+ <view name="Force Computers SYS68K/CPU-1">
+ <screen index="0">
+ <bounds left="100" top="0" right="640" bottom="480" />
+ </screen>
+ <bezel name="frontpanel" element="front">
+ <bounds x="0" y="0" width="36" height="480" />
+ </bezel>
+ </view>
+</mamelayout>
+
diff --git a/src/mess/layout/fidelz80.lay b/src/mame/layout/fidelz80.lay
index c9e2907e5bc..c9e2907e5bc 100644
--- a/src/mess/layout/fidelz80.lay
+++ b/src/mame/layout/fidelz80.lay
diff --git a/src/mess/layout/funjacks.lay b/src/mame/layout/funjacks.lay
index 924c03af199..924c03af199 100644
--- a/src/mess/layout/funjacks.lay
+++ b/src/mame/layout/funjacks.lay
diff --git a/src/mess/layout/funrlgl.lay b/src/mame/layout/funrlgl.lay
index 7af9fb61ce8..7af9fb61ce8 100644
--- a/src/mess/layout/funrlgl.lay
+++ b/src/mame/layout/funrlgl.lay
diff --git a/src/mess/layout/gamecom.lay b/src/mame/layout/gamecom.lay
index 6cb50665d75..6cb50665d75 100644
--- a/src/mess/layout/gamecom.lay
+++ b/src/mame/layout/gamecom.lay
diff --git a/src/mess/layout/gjackpot.lay b/src/mame/layout/gjackpot.lay
index 84d57fc9745..84d57fc9745 100644
--- a/src/mess/layout/gjackpot.lay
+++ b/src/mame/layout/gjackpot.lay
diff --git a/src/mess/layout/gl3000s.lay b/src/mame/layout/gl3000s.lay
index e97b1544f03..e97b1544f03 100644
--- a/src/mess/layout/gl3000s.lay
+++ b/src/mame/layout/gl3000s.lay
diff --git a/src/mess/layout/glasgow.lay b/src/mame/layout/glasgow.lay
index 53dd35a623c..53dd35a623c 100644
--- a/src/mess/layout/glasgow.lay
+++ b/src/mame/layout/glasgow.lay
diff --git a/src/mess/layout/gpoker.lay b/src/mame/layout/gpoker.lay
index 25578e687f2..25578e687f2 100644
--- a/src/mess/layout/gpoker.lay
+++ b/src/mame/layout/gpoker.lay
diff --git a/src/mess/layout/h2hbaseb.lay b/src/mame/layout/h2hbaseb.lay
index ed35017c1b9..ed35017c1b9 100644
--- a/src/mess/layout/h2hbaseb.lay
+++ b/src/mame/layout/h2hbaseb.lay
diff --git a/src/mess/layout/h2hfootb.lay b/src/mame/layout/h2hfootb.lay
index 1bf59a074c9..1bf59a074c9 100644
--- a/src/mess/layout/h2hfootb.lay
+++ b/src/mame/layout/h2hfootb.lay
diff --git a/src/mess/layout/h8.lay b/src/mame/layout/h8.lay
index deb28c7690b..deb28c7690b 100644
--- a/src/mess/layout/h8.lay
+++ b/src/mame/layout/h8.lay
diff --git a/src/mess/layout/hh_hmcs40_test.lay b/src/mame/layout/hh_hmcs40_test.lay
index 0a7960cee0e..0a7960cee0e 100644
--- a/src/mess/layout/hh_hmcs40_test.lay
+++ b/src/mame/layout/hh_hmcs40_test.lay
diff --git a/src/mess/layout/hh_melps4_test.lay b/src/mame/layout/hh_melps4_test.lay
index 8471c1c4989..8471c1c4989 100644
--- a/src/mess/layout/hh_melps4_test.lay
+++ b/src/mame/layout/hh_melps4_test.lay
diff --git a/src/mess/layout/hh_sm510_test.lay b/src/mame/layout/hh_sm510_test.lay
index f960f795acc..f960f795acc 100644
--- a/src/mess/layout/hh_sm510_test.lay
+++ b/src/mame/layout/hh_sm510_test.lay
diff --git a/src/mess/layout/hh_tms1k_test.lay b/src/mame/layout/hh_tms1k_test.lay
index 691c91e1aa1..691c91e1aa1 100644
--- a/src/mess/layout/hh_tms1k_test.lay
+++ b/src/mame/layout/hh_tms1k_test.lay
diff --git a/src/mess/layout/hh_ucom4_test.lay b/src/mame/layout/hh_ucom4_test.lay
index 597af18b4e0..597af18b4e0 100644
--- a/src/mess/layout/hh_ucom4_test.lay
+++ b/src/mame/layout/hh_ucom4_test.lay
diff --git a/src/mess/layout/ie15.lay b/src/mame/layout/ie15.lay
index bbb21cbed10..bbb21cbed10 100644
--- a/src/mess/layout/ie15.lay
+++ b/src/mame/layout/ie15.lay
diff --git a/src/mess/layout/instruct.lay b/src/mame/layout/instruct.lay
index 302697dec84..302697dec84 100644
--- a/src/mess/layout/instruct.lay
+++ b/src/mame/layout/instruct.lay
diff --git a/src/mess/layout/junior.lay b/src/mame/layout/junior.lay
index 65cbe26b5ff..65cbe26b5ff 100644
--- a/src/mess/layout/junior.lay
+++ b/src/mame/layout/junior.lay
diff --git a/src/mess/layout/k1003.lay b/src/mame/layout/k1003.lay
index ea96db032d8..ea96db032d8 100644
--- a/src/mess/layout/k1003.lay
+++ b/src/mame/layout/k1003.lay
diff --git a/src/mess/layout/kim1.lay b/src/mame/layout/kim1.lay
index 65cbe26b5ff..65cbe26b5ff 100644
--- a/src/mess/layout/kim1.lay
+++ b/src/mame/layout/kim1.lay
diff --git a/src/mess/layout/lantutor.lay b/src/mame/layout/lantutor.lay
index 2bb1fb677ab..bfdf2189350 100644
--- a/src/mess/layout/lantutor.lay
+++ b/src/mame/layout/lantutor.lay
@@ -20,6 +20,8 @@
<view name="Internal Layout">
<bounds left="0" right="111" top="0" bottom="19" />
+ <!-- 10 digits (snread doesn't use the last digit) -->
+
<bezel name="digit0" element="digit"><bounds x="0" y="4" width="10" height="15" /></bezel>
<bezel name="digit1" element="digit"><bounds x="11" y="4" width="10" height="15" /></bezel>
<bezel name="digit2" element="digit"><bounds x="22" y="4" width="10" height="15" /></bezel>
diff --git a/src/mess/layout/lc80.lay b/src/mame/layout/lc80.lay
index bd07614e28d..bd07614e28d 100644
--- a/src/mess/layout/lc80.lay
+++ b/src/mame/layout/lc80.lay
diff --git a/src/mess/layout/lightfgt.lay b/src/mame/layout/lightfgt.lay
index 96a327b176e..96a327b176e 100644
--- a/src/mess/layout/lightfgt.lay
+++ b/src/mame/layout/lightfgt.lay
diff --git a/src/mess/layout/llc1.lay b/src/mame/layout/llc1.lay
index 3bd3a42669b..3bd3a42669b 100644
--- a/src/mess/layout/llc1.lay
+++ b/src/mame/layout/llc1.lay
diff --git a/src/mess/layout/lynx.lay b/src/mame/layout/lynx.lay
index b5e76dc6ec2..b5e76dc6ec2 100644
--- a/src/mess/layout/lynx.lay
+++ b/src/mame/layout/lynx.lay
diff --git a/src/mess/layout/mac.lay b/src/mame/layout/mac.lay
index cbefc6620ee..cbefc6620ee 100644
--- a/src/mess/layout/mac.lay
+++ b/src/mame/layout/mac.lay
diff --git a/src/mess/layout/maniac.lay b/src/mame/layout/maniac.lay
index a0376cfca75..a0376cfca75 100644
--- a/src/mess/layout/maniac.lay
+++ b/src/mame/layout/maniac.lay
diff --git a/src/mess/layout/mathmagi.lay b/src/mame/layout/mathmagi.lay
index eb4e745c77b..eb4e745c77b 100644
--- a/src/mess/layout/mathmagi.lay
+++ b/src/mame/layout/mathmagi.lay
diff --git a/src/mess/layout/mbdtower.lay b/src/mame/layout/mbdtower.lay
index 7dc9b1b61e7..7dc9b1b61e7 100644
--- a/src/mess/layout/mbdtower.lay
+++ b/src/mame/layout/mbdtower.lay
diff --git a/src/mess/layout/megacd.lay b/src/mame/layout/megacd.lay
index 5a787335b34..5a787335b34 100644
--- a/src/mess/layout/megacd.lay
+++ b/src/mame/layout/megacd.lay
diff --git a/src/mess/layout/mekd2.lay b/src/mame/layout/mekd2.lay
index 2806b919e7b..2806b919e7b 100644
--- a/src/mess/layout/mekd2.lay
+++ b/src/mame/layout/mekd2.lay
diff --git a/src/mess/layout/mephisto.lay b/src/mame/layout/mephisto.lay
index ec5cf8c480a..ec5cf8c480a 100644
--- a/src/mess/layout/mephisto.lay
+++ b/src/mame/layout/mephisto.lay
diff --git a/src/mess/layout/merlin.lay b/src/mame/layout/merlin.lay
index 32d5691e253..32d5691e253 100644
--- a/src/mess/layout/merlin.lay
+++ b/src/mame/layout/merlin.lay
diff --git a/src/mess/layout/minicom.lay b/src/mame/layout/minicom.lay
index 7c429bdeac1..7c429bdeac1 100644
--- a/src/mess/layout/minicom.lay
+++ b/src/mame/layout/minicom.lay
diff --git a/src/mess/layout/mirage.lay b/src/mame/layout/mirage.lay
index 58d6102dee0..58d6102dee0 100644
--- a/src/mess/layout/mirage.lay
+++ b/src/mame/layout/mirage.lay
diff --git a/src/mess/layout/mk1.lay b/src/mame/layout/mk1.lay
index 532bd44a27b..532bd44a27b 100644
--- a/src/mess/layout/mk1.lay
+++ b/src/mame/layout/mk1.lay
diff --git a/src/mess/layout/mk14.lay b/src/mame/layout/mk14.lay
index edea5e4c461..edea5e4c461 100644
--- a/src/mess/layout/mk14.lay
+++ b/src/mame/layout/mk14.lay
diff --git a/src/mess/layout/mk2.lay b/src/mame/layout/mk2.lay
index cf5b3fd7878..cf5b3fd7878 100644
--- a/src/mess/layout/mk2.lay
+++ b/src/mame/layout/mk2.lay
diff --git a/src/mess/layout/mkit09.lay b/src/mame/layout/mkit09.lay
index 47e6c0f6194..47e6c0f6194 100644
--- a/src/mess/layout/mkit09.lay
+++ b/src/mame/layout/mkit09.lay
diff --git a/src/mess/layout/mmd1.lay b/src/mame/layout/mmd1.lay
index 5479074ee90..5479074ee90 100644
--- a/src/mess/layout/mmd1.lay
+++ b/src/mame/layout/mmd1.lay
diff --git a/src/mess/layout/mmd2.lay b/src/mame/layout/mmd2.lay
index e108623f704..e108623f704 100644
--- a/src/mess/layout/mmd2.lay
+++ b/src/mame/layout/mmd2.lay
diff --git a/src/mess/layout/mmerlin.lay b/src/mame/layout/mmerlin.lay
index 4538a482149..4538a482149 100644
--- a/src/mess/layout/mmerlin.lay
+++ b/src/mame/layout/mmerlin.lay
diff --git a/src/mame/layout/monzagp.lay b/src/mame/layout/monzagp.lay
new file mode 100644
index 00000000000..12d9614ce47
--- /dev/null
+++ b/src/mame/layout/monzagp.lay
@@ -0,0 +1,106 @@
+<?xml version="1.0"?>
+<mamelayout version="2">
+ <element name="digit" defstate="0">
+ <led7seg>
+ <color red="1.0" green="0.0" blue="0.0" />
+ </led7seg>
+ </element>
+
+ <view name="Default Layout">
+ <screen index="0">
+ <bounds x="0" y="160" width="300" height="400" />
+ </screen>
+
+ <!-- best scores 1 -->
+ <bezel name="digit27" element="digit">
+ <bounds x="10" y="10" width="15" height="22" />
+ </bezel>
+ <bezel name="digit11" element="digit">
+ <bounds x="30" y="10" width="15" height="22" />
+ </bezel>
+ <bezel name="digit19" element="digit">
+ <bounds x="50" y="10" width="15" height="22" />
+ </bezel>
+ <bezel name="digit3" element="digit">
+ <bounds x="70" y="10" width="15" height="22" />
+ </bezel>
+
+ <!-- best scores 2 -->
+ <bezel name="digit24" element="digit">
+ <bounds x="10" y="40" width="15" height="22" />
+ </bezel>
+ <bezel name="digit8" element="digit">
+ <bounds x="30" y="40" width="15" height="22" />
+ </bezel>
+ <bezel name="digit16" element="digit">
+ <bounds x="50" y="40" width="15" height="22" />
+ </bezel>
+ <bezel name="digit0" element="digit">
+ <bounds x="70" y="40" width="15" height="22" />
+ </bezel>
+
+ <!-- best scores 3 -->
+ <bezel name="digit28" element="digit">
+ <bounds x="10" y="70" width="15" height="22" />
+ </bezel>
+ <bezel name="digit12" element="digit">
+ <bounds x="30" y="70" width="15" height="22" />
+ </bezel>
+ <bezel name="digit20" element="digit">
+ <bounds x="50" y="70" width="15" height="22" />
+ </bezel>
+ <bezel name="digit4" element="digit">
+ <bounds x="70" y="70" width="15" height="22" />
+ </bezel>
+
+ <!-- best scores 4 -->
+ <bezel name="digit26" element="digit">
+ <bounds x="10" y="100" width="15" height="22" />
+ </bezel>
+ <bezel name="digit10" element="digit">
+ <bounds x="30" y="100" width="15" height="22" />
+ </bezel>
+ <bezel name="digit18" element="digit">
+ <bounds x="50" y="100" width="15" height="22" />
+ </bezel>
+ <bezel name="digit2" element="digit">
+ <bounds x="70" y="100" width="15" height="22" />
+ </bezel>
+
+ <!-- best scores 5 -->
+ <bezel name="digit30" element="digit">
+ <bounds x="10" y="130" width="15" height="22" />
+ </bezel>
+ <bezel name="digit14" element="digit">
+ <bounds x="30" y="130" width="15" height="22" />
+ </bezel>
+ <bezel name="digit22" element="digit">
+ <bounds x="50" y="130" width="15" height="22" />
+ </bezel>
+ <bezel name="digit6" element="digit">
+ <bounds x="70" y="130" width="15" height="22" />
+ </bezel>
+
+ <!-- time racing -->
+ <bezel name="digit21" element="digit">
+ <bounds x="140" y="130" width="15" height="22" />
+ </bezel>
+ <bezel name="digit5" element="digit">
+ <bounds x="160" y="130" width="15" height="22" />
+ </bezel>
+
+ <!-- your score -->
+ <bezel name="digit25" element="digit">
+ <bounds x="220" y="10" width="15" height="22" />
+ </bezel>
+ <bezel name="digit9" element="digit">
+ <bounds x="240" y="10" width="15" height="22" />
+ </bezel>
+ <bezel name="digit17" element="digit">
+ <bounds x="260" y="10" width="15" height="22" />
+ </bezel>
+ <bezel name="digit1" element="digit">
+ <bounds x="280" y="10" width="15" height="22" />
+ </bezel>
+ </view>
+</mamelayout>
diff --git a/src/mess/layout/mpf1.lay b/src/mame/layout/mpf1.lay
index 22b0a8b42cb..22b0a8b42cb 100644
--- a/src/mess/layout/mpf1.lay
+++ b/src/mame/layout/mpf1.lay
diff --git a/src/mess/layout/mpf1b.lay b/src/mame/layout/mpf1b.lay
index 22b0a8b42cb..22b0a8b42cb 100644
--- a/src/mess/layout/mpf1b.lay
+++ b/src/mame/layout/mpf1b.lay
diff --git a/src/mess/layout/mpf1p.lay b/src/mame/layout/mpf1p.lay
index f697b7207f2..f697b7207f2 100644
--- a/src/mess/layout/mpf1p.lay
+++ b/src/mame/layout/mpf1p.lay
diff --git a/src/mess/layout/mvbfree.lay b/src/mame/layout/mvbfree.lay
index 29598b63efc..29598b63efc 100644
--- a/src/mess/layout/mvbfree.lay
+++ b/src/mame/layout/mvbfree.lay
diff --git a/src/mess/layout/newbrain.lay b/src/mame/layout/newbrain.lay
index 09df5730d76..09df5730d76 100644
--- a/src/mess/layout/newbrain.lay
+++ b/src/mame/layout/newbrain.lay
diff --git a/src/mame/layout/pairmtch.lay b/src/mame/layout/pairmtch.lay
new file mode 100644
index 00000000000..81282cbe448
--- /dev/null
+++ b/src/mame/layout/pairmtch.lay
@@ -0,0 +1,201 @@
+<?xml version="1.0"?>
+<mamelayout version="2">
+
+<!-- define elements -->
+
+ <element name="static_black"><rect><color red="0.0" green="0.0" blue="0.0" /></rect></element>
+
+ <element name="segc" defstate="0">
+ <rect state="0"><color red="0.1" green="0.1" blue="0.1" /></rect>
+ <rect state="1"><color red="0.2" green="1.0" blue="0.8" /></rect>
+ </element>
+ <element name="segr2" defstate="0">
+ <rect state="0"><color red="0.1" green="0.1" blue="0.01" /></rect>
+ <rect state="1"><color red="1.0" green="0.33" blue="0.2" /></rect>
+ </element>
+
+ <element name="segr" defstate="0">
+ <rect>
+ <bounds x="0" y="0" width="1" height="1" />
+ <color red="0.0" green="0.0" blue="0.0" />
+ </rect>
+ <rect state="0">
+ <bounds x="0.1" y="0.1" width="0.8" height="0.8" />
+ <color red="0.1" green="0.1" blue="0.01" />
+ </rect>
+ <rect state="1">
+ <bounds x="0.1" y="0.1" width="0.8" height="0.8" />
+ <color red="1.0" green="0.33" blue="0.2" />
+ </rect>
+ </element>
+
+ <element name="c1" defstate="0">
+ <text state="0" string="1"><color red="0.1" green="0.1" blue="0.1" /></text>
+ <text state="1" string="1"><color red="0.2" green="1.0" blue="0.8" /></text>
+ </element>
+ <element name="c2" defstate="0">
+ <text state="0" string="2"><color red="0.1" green="0.1" blue="0.1" /></text>
+ <text state="1" string="2"><color red="0.2" green="1.0" blue="0.8" /></text>
+ </element>
+ <element name="c3" defstate="0">
+ <text state="0" string="3"><color red="0.1" green="0.1" blue="0.1" /></text>
+ <text state="1" string="3"><color red="0.2" green="1.0" blue="0.8" /></text>
+ </element>
+ <element name="c4" defstate="0">
+ <text state="0" string="4"><color red="0.1" green="0.1" blue="0.1" /></text>
+ <text state="1" string="4"><color red="0.2" green="1.0" blue="0.8" /></text>
+ </element>
+
+
+<!-- build screen -->
+
+ <view name="Internal Layout">
+ <bounds left="-15" right="600" top="-11" bottom="805" />
+ <bezel element="static_black">
+ <bounds left="-15" right="600" top="-11" bottom="805" />
+ </bezel>
+
+ <!-- 5 -->
+
+ <bezel name="5.10" element="segc"><bounds x="0" y="0" width="75" height="32" /></bezel>
+ <bezel name="5.10" element="segc"><bounds x="102" y="0" width="75" height="32" /></bezel>
+ <bezel name="5.10" element="segc"><bounds x="204" y="0" width="75" height="32" /></bezel>
+ <bezel name="5.10" element="segc"><bounds x="306" y="0" width="75" height="32" /></bezel>
+ <bezel name="5.10" element="segc"><bounds x="408" y="0" width="75" height="32" /></bezel>
+ <bezel name="5.10" element="segc"><bounds x="510" y="0" width="75" height="32" /></bezel>
+
+ <bezel element="static_black"><bounds x="-1" y="8.666" width="587" height="3" /></bezel>
+ <bezel element="static_black"><bounds x="-1" y="20.333" width="587" height="3" /></bezel>
+
+ <bezel name="5.11" element="c1"><bounds x="0" y="42" width="75" height="95" /></bezel>
+
+ <bezel name="5.8" element="segc"><bounds x="102" y="42" width="75" height="95" /></bezel>
+ <bezel name="5.9" element="segr"><bounds x="109.9" y="52" width="59.2" height="75" /></bezel>
+
+ <bezel name="5.6" element="segc"><bounds x="204" y="42" width="75" height="95" /></bezel>
+ <bezel name="5.7" element="segr"><bounds x="211.9" y="52" width="59.2" height="75" /></bezel>
+
+ <bezel name="5.4" element="segc"><bounds x="306" y="42" width="75" height="95" /></bezel>
+ <bezel name="5.5" element="segr"><bounds x="313.9" y="52" width="59.2" height="75" /></bezel>
+
+ <bezel name="5.2" element="segc"><bounds x="408" y="42" width="75" height="95" /></bezel>
+ <bezel name="5.3" element="segr"><bounds x="415.9" y="52" width="59.2" height="75" /></bezel>
+
+ <bezel name="5.1" element="c2"><bounds x="510" y="42" width="75" height="95" /></bezel>
+
+
+ <!-- 4 -->
+
+ <bezel name="4.10" element="segc"><bounds x="0" y="165" width="75" height="95" /></bezel>
+ <bezel name="4.11" element="segr"><bounds x="7.9" y="175" width="59.2" height="75" /></bezel>
+
+ <bezel name="4.8" element="segc"><bounds x="102" y="165" width="75" height="95" /></bezel>
+ <bezel name="4.9" element="segr"><bounds x="109.9" y="175" width="59.2" height="75" /></bezel>
+
+ <bezel name="4.6" element="segc"><bounds x="204" y="165" width="75" height="95" /></bezel>
+ <bezel name="4.7" element="segr"><bounds x="211.9" y="175" width="59.2" height="75" /></bezel>
+
+ <bezel name="4.4" element="segc"><bounds x="306" y="165" width="75" height="95" /></bezel>
+ <bezel name="4.5" element="segr"><bounds x="313.9" y="175" width="59.2" height="75" /></bezel>
+
+ <bezel name="4.2" element="segc"><bounds x="408" y="165" width="75" height="95" /></bezel>
+ <bezel name="4.3" element="segr"><bounds x="415.9" y="175" width="59.2" height="75" /></bezel>
+
+ <bezel name="4.0" element="segc"><bounds x="510" y="165" width="75" height="95" /></bezel>
+ <bezel name="4.1" element="segr"><bounds x="517.9" y="175" width="59.2" height="75" /></bezel>
+
+
+ <!-- 3 -->
+
+ <bezel name="3.10" element="segc"><bounds x="0" y="288" width="75" height="95" /></bezel>
+ <bezel name="3.11" element="segr"><bounds x="7.9" y="298" width="59.2" height="75" /></bezel>
+
+ <bezel name="3.8" element="segc"><bounds x="102" y="288" width="75" height="95" /></bezel>
+ <bezel name="3.9" element="segr"><bounds x="109.9" y="298" width="59.2" height="75" /></bezel>
+
+ <bezel name="3.6" element="segc"><bounds x="204" y="288" width="75" height="95" /></bezel>
+ <bezel name="3.7" element="segr"><bounds x="211.9" y="298" width="59.2" height="75" /></bezel>
+
+ <bezel name="3.4" element="segc"><bounds x="306" y="288" width="75" height="95" /></bezel>
+ <bezel name="3.5" element="segr"><bounds x="313.9" y="298" width="59.2" height="75" /></bezel>
+
+ <bezel name="3.2" element="segc"><bounds x="408" y="288" width="75" height="95" /></bezel>
+ <bezel name="3.3" element="segr"><bounds x="415.9" y="298" width="59.2" height="75" /></bezel>
+
+ <bezel name="3.0" element="segc"><bounds x="510" y="288" width="75" height="95" /></bezel>
+ <bezel name="3.1" element="segr"><bounds x="517.9" y="298" width="59.2" height="75" /></bezel>
+
+
+ <!-- 2 -->
+
+ <bezel name="2.10" element="segc"><bounds x="0" y="411" width="75" height="95" /></bezel>
+ <bezel name="2.11" element="segr"><bounds x="7.9" y="421" width="59.2" height="75" /></bezel>
+
+ <bezel name="2.8" element="segc"><bounds x="102" y="411" width="75" height="95" /></bezel>
+ <bezel name="2.9" element="segr"><bounds x="109.9" y="421" width="59.2" height="75" /></bezel>
+
+ <bezel name="2.6" element="segc"><bounds x="204" y="411" width="75" height="95" /></bezel>
+ <bezel name="2.7" element="segr"><bounds x="211.9" y="421" width="59.2" height="75" /></bezel>
+
+ <bezel name="2.4" element="segc"><bounds x="306" y="411" width="75" height="95" /></bezel>
+ <bezel name="2.5" element="segr"><bounds x="313.9" y="421" width="59.2" height="75" /></bezel>
+
+ <bezel name="2.2" element="segc"><bounds x="408" y="411" width="75" height="95" /></bezel>
+ <bezel name="2.3" element="segr"><bounds x="415.9" y="421" width="59.2" height="75" /></bezel>
+
+ <bezel name="2.0" element="segc"><bounds x="510" y="411" width="75" height="95" /></bezel>
+ <bezel name="2.1" element="segr"><bounds x="517.9" y="421" width="59.2" height="75" /></bezel>
+
+
+ <!-- 1 -->
+
+ <bezel name="1.10" element="segc"><bounds x="0" y="534" width="75" height="95" /></bezel>
+ <bezel name="1.11" element="segr"><bounds x="7.9" y="544" width="59.2" height="75" /></bezel>
+
+ <bezel name="1.8" element="segc"><bounds x="102" y="534" width="75" height="95" /></bezel>
+ <bezel name="1.9" element="segr"><bounds x="109.9" y="544" width="59.2" height="75" /></bezel>
+
+ <bezel name="1.6" element="segc"><bounds x="204" y="534" width="75" height="95" /></bezel>
+ <bezel name="1.7" element="segr"><bounds x="211.9" y="544" width="59.2" height="75" /></bezel>
+
+ <bezel name="1.4" element="segc"><bounds x="306" y="534" width="75" height="95" /></bezel>
+ <bezel name="1.5" element="segr"><bounds x="313.9" y="544" width="59.2" height="75" /></bezel>
+
+ <bezel name="1.2" element="segc"><bounds x="408" y="534" width="75" height="95" /></bezel>
+ <bezel name="1.3" element="segr"><bounds x="415.9" y="544" width="59.2" height="75" /></bezel>
+
+ <bezel name="1.0" element="segc"><bounds x="510" y="534" width="75" height="95" /></bezel>
+ <bezel name="1.1" element="segr"><bounds x="517.9" y="544" width="59.2" height="75" /></bezel>
+
+
+ <!-- 0 -->
+
+ <bezel name="0.11" element="c3"><bounds x="0" y="657" width="75" height="95" /></bezel>
+
+ <bezel name="0.8" element="segc"><bounds x="102" y="657" width="75" height="95" /></bezel>
+ <bezel name="0.9" element="segr"><bounds x="109.9" y="667" width="59.2" height="75" /></bezel>
+
+ <bezel name="0.6" element="segc"><bounds x="204" y="657" width="75" height="95" /></bezel>
+ <bezel name="0.7" element="segr"><bounds x="211.9" y="667" width="59.2" height="75" /></bezel>
+
+ <bezel name="0.4" element="segc"><bounds x="306" y="657" width="75" height="95" /></bezel>
+ <bezel name="0.5" element="segr"><bounds x="313.9" y="667" width="59.2" height="75" /></bezel>
+
+ <bezel name="0.2" element="segc"><bounds x="408" y="657" width="75" height="95" /></bezel>
+ <bezel name="0.3" element="segr"><bounds x="415.9" y="667" width="59.2" height="75" /></bezel>
+
+ <bezel name="0.1" element="c4"><bounds x="510" y="657" width="75" height="95" /></bezel>
+
+ <bezel name="0.10" element="segr2"><bounds x="0" y="762" width="75" height="32" /></bezel>
+ <bezel name="0.10" element="segr2"><bounds x="102" y="762" width="75" height="32" /></bezel>
+ <bezel name="0.10" element="segr2"><bounds x="204" y="762" width="75" height="32" /></bezel>
+ <bezel name="0.10" element="segr2"><bounds x="306" y="762" width="75" height="32" /></bezel>
+ <bezel name="0.10" element="segr2"><bounds x="408" y="762" width="75" height="32" /></bezel>
+ <bezel name="0.10" element="segr2"><bounds x="510" y="762" width="75" height="32" /></bezel>
+
+ <bezel element="static_black"><bounds x="-1" y="770.666" width="587" height="3" /></bezel>
+ <bezel element="static_black"><bounds x="-1" y="782.333" width="587" height="3" /></bezel>
+
+
+ </view>
+</mamelayout>
diff --git a/src/mess/layout/pc1500.lay b/src/mame/layout/pc1500.lay
index 91d49eb7867..91d49eb7867 100644
--- a/src/mess/layout/pc1500.lay
+++ b/src/mame/layout/pc1500.lay
diff --git a/src/mess/layout/pc8500.lay b/src/mame/layout/pc8500.lay
index 67c7527e3b7..67c7527e3b7 100644
--- a/src/mess/layout/pc8500.lay
+++ b/src/mame/layout/pc8500.lay
diff --git a/src/mess/layout/pcw.lay b/src/mame/layout/pcw.lay
index a7d580b4d55..a7d580b4d55 100644
--- a/src/mess/layout/pcw.lay
+++ b/src/mame/layout/pcw.lay
diff --git a/src/mame/layout/piggypas.lay b/src/mame/layout/piggypas.lay
new file mode 100644
index 00000000000..07ea3b31307
--- /dev/null
+++ b/src/mame/layout/piggypas.lay
@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+<mamelayout version="2">
+ <element name="digit" defstate="0">
+ <led7seg>
+ <color red="1.0" green="0.0" blue="0.0" />
+ </led7seg>
+ </element>
+
+ <view name="Default Layout">
+ <screen index="0">
+ <bounds x="10" y="40" width="128" height="9" />
+ </screen>
+
+ <bezel name="digit3" element="digit">
+ <bounds x="25" y="10" width="15" height="22" />
+ </bezel>
+ <bezel name="digit2" element="digit">
+ <bounds x="45" y="10" width="15" height="22" />
+ </bezel>
+ <bezel name="digit1" element="digit">
+ <bounds x="85" y="10" width="15" height="22" />
+ </bezel>
+ <bezel name="digit0" element="digit">
+ <bounds x="105" y="10" width="15" height="22" />
+ </bezel>
+ </view>
+</mamelayout>
diff --git a/src/mess/layout/pmi80.lay b/src/mame/layout/pmi80.lay
index 5767c3d1918..5767c3d1918 100644
--- a/src/mess/layout/pmi80.lay
+++ b/src/mame/layout/pmi80.lay
diff --git a/src/mess/layout/poly880.lay b/src/mame/layout/poly880.lay
index fb90513ec1d..fb90513ec1d 100644
--- a/src/mess/layout/poly880.lay
+++ b/src/mame/layout/poly880.lay
diff --git a/src/mess/layout/pro80.lay b/src/mame/layout/pro80.lay
index 46ae2019bfa..46ae2019bfa 100644
--- a/src/mess/layout/pro80.lay
+++ b/src/mame/layout/pro80.lay
diff --git a/src/mess/layout/pve500.lay b/src/mame/layout/pve500.lay
index e7c9fbef38b..e7c9fbef38b 100644
--- a/src/mess/layout/pve500.lay
+++ b/src/mame/layout/pve500.lay
diff --git a/src/mess/layout/px4.lay b/src/mame/layout/px4.lay
index 3f4f3324e24..3f4f3324e24 100644
--- a/src/mess/layout/px4.lay
+++ b/src/mame/layout/px4.lay
diff --git a/src/mess/layout/px8.lay b/src/mame/layout/px8.lay
index e3d7df9ac9e..e3d7df9ac9e 100644
--- a/src/mess/layout/px8.lay
+++ b/src/mame/layout/px8.lay
diff --git a/src/mess/layout/rainbow.lay b/src/mame/layout/rainbow.lay
index bb72bbf21ec..bb72bbf21ec 100644
--- a/src/mess/layout/rainbow.lay
+++ b/src/mame/layout/rainbow.lay
diff --git a/src/mess/layout/ravens.lay b/src/mame/layout/ravens.lay
index e57c5e8ea41..e57c5e8ea41 100644
--- a/src/mess/layout/ravens.lay
+++ b/src/mame/layout/ravens.lay
diff --git a/src/mess/layout/savia84.lay b/src/mame/layout/savia84.lay
index baf6a6ab2b7..baf6a6ab2b7 100644
--- a/src/mess/layout/savia84.lay
+++ b/src/mame/layout/savia84.lay
diff --git a/src/mess/layout/sc1.lay b/src/mame/layout/sc1.lay
index c6ed82b9123..c6ed82b9123 100644
--- a/src/mess/layout/sc1.lay
+++ b/src/mame/layout/sc1.lay
diff --git a/src/mess/layout/sc2.lay b/src/mame/layout/sc2.lay
index c68cee7e136..c68cee7e136 100644
--- a/src/mess/layout/sc2.lay
+++ b/src/mame/layout/sc2.lay
diff --git a/src/mess/layout/sdk85.lay b/src/mame/layout/sdk85.lay
index 5822262a995..5822262a995 100644
--- a/src/mess/layout/sdk85.lay
+++ b/src/mame/layout/sdk85.lay
diff --git a/src/mess/layout/sdk86.lay b/src/mame/layout/sdk86.lay
index 9f77b7200be..9f77b7200be 100644
--- a/src/mess/layout/sdk86.lay
+++ b/src/mame/layout/sdk86.lay
diff --git a/src/mess/layout/selz80.lay b/src/mame/layout/selz80.lay
index 1284aaa84a0..1284aaa84a0 100644
--- a/src/mess/layout/selz80.lay
+++ b/src/mame/layout/selz80.lay
diff --git a/src/mess/layout/simon.lay b/src/mame/layout/simon.lay
index 2cb94ad8c01..2cb94ad8c01 100644
--- a/src/mess/layout/simon.lay
+++ b/src/mame/layout/simon.lay
diff --git a/src/mess/layout/sitcom.lay b/src/mame/layout/sitcom.lay
index fce04d7716e..fce04d7716e 100644
--- a/src/mess/layout/sitcom.lay
+++ b/src/mame/layout/sitcom.lay
diff --git a/src/mess/layout/slc1.lay b/src/mame/layout/slc1.lay
index 92d032c4a80..92d032c4a80 100644
--- a/src/mess/layout/slc1.lay
+++ b/src/mame/layout/slc1.lay
diff --git a/src/mess/layout/sms1.lay b/src/mame/layout/sms1.lay
index 3275da610d6..3275da610d6 100644
--- a/src/mess/layout/sms1.lay
+++ b/src/mame/layout/sms1.lay
diff --git a/src/mame/layout/snmath.lay b/src/mame/layout/snmath.lay
new file mode 100644
index 00000000000..ca1eb371aea
--- /dev/null
+++ b/src/mame/layout/snmath.lay
@@ -0,0 +1,68 @@
+<?xml version="1.0"?>
+<mamelayout version="2">
+
+<!-- define elements -->
+
+ <element name="digit" defstate="0">
+ <led14seg><color red="0.2" green="1.0" blue="0.85" /></led14seg>
+ </element>
+
+<!-- add our own for DP(display point) and the CT(comma tail) segments -->
+<!-- MAME led16segsc won't do, since Speak & Math has them on the left side -->
+
+ <element name="lamp_dp" defstate="0">
+ <disk state="0"><color red="0.0235" green="0.1255" blue="0.1059" /></disk>
+ <disk state="1"><color red="0.2" green="1.0" blue="0.85" /></disk>
+ </element>
+ <element name="lamp_ct" defstate="0">
+ <rect state="0"><color red="0.0235" green="0.1255" blue="0.1059" /></rect>
+ <rect state="1"><color red="0.2" green="1.0" blue="0.85" /></rect>
+ </element>
+
+
+
+<!-- build screen -->
+
+ <view name="Internal Layout">
+ <bounds left="-1.5" right="99" top="0" bottom="15" />
+
+ <!-- 9 digits -->
+
+ <bezel name="digit0" element="digit"><bounds x="0" y="0" width="10" height="15" /></bezel>
+ <bezel name="lamp14" element="lamp_dp"><bounds x="-1.5" y="11" width="1.5" height="1.5" /></bezel>
+ <bezel name="lamp15" element="lamp_ct"><bounds x="-0.8" y="13.5" width="0.75" height="1.5" /></bezel>
+
+ <bezel name="digit1" element="digit"><bounds x="11" y="0" width="10" height="15" /></bezel>
+ <bezel name="lamp114" element="lamp_dp"><bounds x="9.5" y="11" width="1.5" height="1.5" /></bezel>
+ <bezel name="lamp115" element="lamp_ct"><bounds x="10.2" y="13.5" width="0.75" height="1.5" /></bezel>
+
+ <bezel name="digit2" element="digit"><bounds x="22" y="0" width="10" height="15" /></bezel>
+ <bezel name="lamp214" element="lamp_dp"><bounds x="20.5" y="11" width="1.5" height="1.5" /></bezel>
+ <bezel name="lamp215" element="lamp_ct"><bounds x="21.2" y="13.5" width="0.75" height="1.5" /></bezel>
+
+ <bezel name="digit3" element="digit"><bounds x="33" y="0" width="10" height="15" /></bezel>
+ <bezel name="lamp314" element="lamp_dp"><bounds x="31.5" y="11" width="1.5" height="1.5" /></bezel>
+ <bezel name="lamp315" element="lamp_ct"><bounds x="32.2" y="13.5" width="0.75" height="1.5" /></bezel>
+
+ <bezel name="digit4" element="digit"><bounds x="44" y="0" width="10" height="15" /></bezel>
+ <bezel name="lamp414" element="lamp_dp"><bounds x="42.5" y="11" width="1.5" height="1.5" /></bezel>
+ <bezel name="lamp415" element="lamp_ct"><bounds x="43.2" y="13.5" width="0.75" height="1.5" /></bezel>
+
+ <bezel name="digit5" element="digit"><bounds x="55" y="0" width="10" height="15" /></bezel>
+ <bezel name="lamp514" element="lamp_dp"><bounds x="53.5" y="11" width="1.5" height="1.5" /></bezel>
+ <bezel name="lamp515" element="lamp_ct"><bounds x="54.2" y="13.5" width="0.75" height="1.5" /></bezel>
+
+ <bezel name="digit6" element="digit"><bounds x="66" y="0" width="10" height="15" /></bezel>
+ <bezel name="lamp614" element="lamp_dp"><bounds x="64.5" y="11" width="1.5" height="1.5" /></bezel>
+ <bezel name="lamp615" element="lamp_ct"><bounds x="65.2" y="13.5" width="0.75" height="1.5" /></bezel>
+
+ <bezel name="digit7" element="digit"><bounds x="77" y="0" width="10" height="15" /></bezel>
+ <bezel name="lamp714" element="lamp_dp"><bounds x="75.5" y="11" width="1.5" height="1.5" /></bezel>
+ <bezel name="lamp715" element="lamp_ct"><bounds x="76.2" y="13.5" width="0.75" height="1.5" /></bezel>
+
+ <bezel name="digit8" element="digit"><bounds x="88" y="0" width="10" height="15" /></bezel>
+ <bezel name="lamp814" element="lamp_dp"><bounds x="86.5" y="11" width="1.5" height="1.5" /></bezel>
+ <bezel name="lamp815" element="lamp_ct"><bounds x="87.2" y="13.5" width="0.75" height="1.5" /></bezel>
+
+ </view>
+</mamelayout>
diff --git a/src/mess/layout/snspell.lay b/src/mame/layout/snspell.lay
index 67e78617995..e84c2e9fdfb 100644
--- a/src/mess/layout/snspell.lay
+++ b/src/mame/layout/snspell.lay
@@ -25,9 +25,9 @@
<!-- build screen -->
<view name="Internal Layout">
- <bounds left="0" right="100" top="0" bottom="15" />
+ <bounds left="0" right="89" top="0" bottom="15" />
- <!-- 9 digits (snspell has 8, snmath has 9) -->
+ <!-- 8 digits -->
<bezel name="digit0" element="digit"><bounds x="0" y="0" width="10" height="15" /></bezel>
<bezel name="lamp14" element="lamp_dp"><bounds x="9" y="13.5" width="1.5" height="1.5" /></bezel>
@@ -61,9 +61,5 @@
<bezel name="lamp714" element="lamp_dp"><bounds x="86" y="13.5" width="1.5" height="1.5" /></bezel>
<bezel name="lamp715" element="lamp_ap"><bounds x="87.5" y="0" width="0.5" height="3.5" /></bezel>
- <bezel name="digit8" element="digit"><bounds x="88" y="0" width="10" height="15" /></bezel>
- <bezel name="lamp814" element="lamp_dp"><bounds x="97" y="13.5" width="1.5" height="1.5" /></bezel>
- <bezel name="lamp815" element="lamp_ap"><bounds x="98.5" y="0" width="0.5" height="3.5" /></bezel>
-
</view>
</mamelayout>
diff --git a/src/mess/layout/splitsec.lay b/src/mame/layout/splitsec.lay
index 80bc61a60ab..80bc61a60ab 100644
--- a/src/mess/layout/splitsec.lay
+++ b/src/mame/layout/splitsec.lay
diff --git a/src/mess/layout/sr16.lay b/src/mame/layout/sr16.lay
index 8488e83ee3f..8488e83ee3f 100644
--- a/src/mess/layout/sr16.lay
+++ b/src/mame/layout/sr16.lay
diff --git a/src/mess/layout/ssimon.lay b/src/mame/layout/ssimon.lay
index 38540fbfaf4..38540fbfaf4 100644
--- a/src/mess/layout/ssimon.lay
+++ b/src/mame/layout/ssimon.lay
diff --git a/src/mess/layout/starwbc.lay b/src/mame/layout/starwbc.lay
index 6469cb7dc9a..6469cb7dc9a 100644
--- a/src/mess/layout/starwbc.lay
+++ b/src/mame/layout/starwbc.lay
diff --git a/src/mess/layout/stopthie.lay b/src/mame/layout/stopthie.lay
index 8efd28b6f8d..8efd28b6f8d 100644
--- a/src/mess/layout/stopthie.lay
+++ b/src/mame/layout/stopthie.lay
diff --git a/src/mess/layout/super80.lay b/src/mame/layout/super80.lay
index 30bae4a87a2..30bae4a87a2 100644
--- a/src/mess/layout/super80.lay
+++ b/src/mame/layout/super80.lay
diff --git a/src/mess/layout/svision.lay b/src/mame/layout/svision.lay
index 1b82689e655..1b82689e655 100644
--- a/src/mess/layout/svision.lay
+++ b/src/mame/layout/svision.lay
diff --git a/src/mess/layout/svmu.lay b/src/mame/layout/svmu.lay
index f4419de1b90..f4419de1b90 100644
--- a/src/mess/layout/svmu.lay
+++ b/src/mame/layout/svmu.lay
diff --git a/src/mess/layout/sym1.lay b/src/mame/layout/sym1.lay
index ad90e2a3ec5..ad90e2a3ec5 100644
--- a/src/mess/layout/sym1.lay
+++ b/src/mame/layout/sym1.lay
diff --git a/src/mame/layout/tactix.lay b/src/mame/layout/tactix.lay
new file mode 100644
index 00000000000..63afeac12a4
--- /dev/null
+++ b/src/mame/layout/tactix.lay
@@ -0,0 +1,150 @@
+<?xml version="1.0"?>
+<mamelayout version="2">
+
+<!-- define elements -->
+
+ <element name="static_white"><rect><color red="0.95" green="0.95" blue="0.97" /></rect></element>
+ <element name="disk_grey"><disk><color red="0.65" green="0.65" blue="0.67" /></disk></element>
+ <element name="disk_blue"><disk><color red="0.06" green="0.4" blue="0.85" /></disk></element>
+ <element name="disk_yellow"><disk><color red="0.80" green="0.85" blue="0.3" /></disk></element>
+
+ <element name="button" defstate="0">
+ <text state="0" string=" "><color red="0.0" green="0.0" blue="0.0" /></text>
+ <text state="1" string=" "><color red="0.0" green="0.0" blue="0.0" /></text>
+ <disk state="1">
+ <bounds x="0.04" y="0.04" width="0.92" height="0.92"/>
+ <color red="0.30" green="0.31" blue="0.32" />
+ </disk>
+ </element>
+
+ <element name="led" defstate="0">
+ <disk>
+ <bounds x="0" y="0" width="1" height="1" />
+ <color red="0.0" green="0.0" blue="0.0" />
+ </disk>
+ <disk state="0">
+ <bounds x="0.1" y="0.1" width="0.8" height="0.8" />
+ <color red="0.2" green="0.03" blue="0.05" />
+ </disk>
+ <disk state="1">
+ <bounds x="0.1" y="0.1" width="0.8" height="0.8" />
+ <color red="1.0" green="0.15" blue="0.25" />
+ </disk>
+ </element>
+
+ <element name="t1"><rect><color red="0.06" green="0.4" blue="0.85" /></rect><text string="1"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="t2"><rect><color red="0.06" green="0.4" blue="0.85" /></rect><text string="2"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="t3"><rect><color red="0.06" green="0.4" blue="0.85" /></rect><text string="3"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="t4"><rect><color red="0.06" green="0.4" blue="0.85" /></rect><text string="4"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="t5"><rect><color red="0.06" green="0.4" blue="0.85" /></rect><text string="5"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="t6"><rect><color red="0.06" green="0.4" blue="0.85" /></rect><text string="6"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="t7"><rect><color red="0.06" green="0.4" blue="0.85" /></rect><text string="7"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="t8"><rect><color red="0.06" green="0.4" blue="0.85" /></rect><text string="8"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="t9"><rect><color red="0.06" green="0.4" blue="0.85" /></rect><text string="9"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="t10"><rect><color red="0.06" green="0.4" blue="0.85" /></rect><text string="10"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="t11"><rect><color red="0.06" green="0.4" blue="0.85" /></rect><text string="11"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="t12"><rect><color red="0.06" green="0.4" blue="0.85" /></rect><text string="12"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="t13"><rect><color red="0.06" green="0.4" blue="0.85" /></rect><text string="13"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="t14"><rect><color red="0.06" green="0.4" blue="0.85" /></rect><text string="14"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="t15"><rect><color red="0.06" green="0.4" blue="0.85" /></rect><text string="15"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="t16"><rect><color red="0.06" green="0.4" blue="0.85" /></rect><text string="16"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+
+ <element name="t_comp"><rect><color red="0.06" green="0.4" blue="0.85" /></rect><text string="COMP"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="t_turn"><rect><color red="0.06" green="0.4" blue="0.85" /></rect><text string="TURN"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="t_new"><rect><color red="0.06" green="0.4" blue="0.85" /></rect><text string="NEW"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="t_game"><rect><color red="0.06" green="0.4" blue="0.85" /></rect><text string="GAME"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+
+
+<!-- build screen -->
+
+ <view name="Internal Layout">
+ <bounds left="7.15" right="20" top="7.15" bottom="20" />
+ <bezel element="static_white">
+ <bounds left="0" right="30" top="0" bottom="30" />
+ </bezel>
+
+ <!-- bezel -->
+
+ <bezel element="disk_grey"><bounds x="7.55" y="7.55" width="12.05" height="12.05" /></bezel>
+ <bezel element="disk_blue"><bounds x="7.8" y="7.8" width="11.55" height="11.55" /></bezel>
+
+ <bezel element="t1"><bounds x="10" y="11.25" width="1.15" height="0.5" /></bezel>
+ <bezel element="t2"><bounds x="12" y="11.25" width="1.15" height="0.5" /></bezel>
+ <bezel element="t3"><bounds x="14" y="11.25" width="1.15" height="0.5" /><